From a1fe42b1581d6367f987f4c95cc7406da23c3978 Mon Sep 17 00:00:00 2001 From: Juri Strumpflohner Date: Thu, 7 Nov 2024 16:03:04 +0100 Subject: [PATCH] feat(nx-dev): add video course page (#28736) https://nx-dev-git-video-course-nrwl.vercel.app/courses --- docs/courses/explore-nx/course.md | 7 + docs/courses/explore-nx/lessons/01-why-nx.md | 19 ++ .../explore-nx/lessons/02-run-tasks.md | 14 ++ .../lessons/03-cache-task-results.md | 12 + .../explore-nx/lessons/04-generate-code.md | 13 + .../05-automate-updating-dependencies.md | 13 + docs/courses/pnpm-nx-next/course.md | 17 ++ .../images/e2e-splitting-anim.gif | Bin 0 -> 149153 bytes .../images/implicit-dependencies.avif | Bin 0 -> 8517 bytes .../images/nx-cloud-compare-cache-miss.avif | Bin 0 -> 16145 bytes .../pnpm-nx-next/lessons/00-overview.md | 16 ++ .../pnpm-nx-next/lessons/01-nx-init.md | 18 ++ .../pnpm-nx-next/lessons/02-run-tasks.md | 23 ++ .../lessons/03-configure-cache.md | 13 + .../pnpm-nx-next/lessons/04-task-pipelines.md | 28 +++ .../lessons/05-implicit-dependencies.md | 27 ++ .../pnpm-nx-next/lessons/06-nx-cloud-setup.md | 13 + .../pnpm-nx-next/lessons/07-optimize-ci.md | 20 ++ .../pnpm-nx-next/lessons/08-remote-caching.md | 13 + .../pnpm-nx-next/lessons/09-debug-cache.md | 15 ++ .../pnpm-nx-next/lessons/10-nx-login.md | 23 ++ .../pnpm-nx-next/lessons/11-nx-agents.md | 19 ++ .../lessons/12-playwright-split.md | 15 ++ docs/courses/pnpm-nx-next/lessons/13-outro.md | 7 + docs/shared/getting-started/intro.md | 2 +- nx-dev/data-access-courses/project.json | 8 + nx-dev/data-access-courses/src/index.ts | 2 + .../src/lib/course.types.ts | 22 ++ .../src/lib/courses.api.ts | 92 +++++++ .../src/lib/duration.utils.ts | 17 ++ nx-dev/data-access-courses/tsconfig.json | 17 ++ nx-dev/data-access-courses/tsconfig.lib.json | 9 + .../courses/[courseId]/[lessonId]/page.tsx | 51 ++++ nx-dev/nx-dev/app/courses/[courseId]/page.tsx | 58 +++++ nx-dev/nx-dev/app/courses/page.tsx | 41 +++ nx-dev/nx-dev/lib/courses.api.ts | 5 + nx-dev/nx-dev/tailwind.config.js | 3 + nx-dev/ui-common/src/lib/default-layout.tsx | 16 +- nx-dev/ui-common/src/lib/footer.tsx | 235 +++++++++--------- .../ui-common/src/lib/headers/menu-items.ts | 4 +- .../ui-common/src/lib/youtube.component.tsx | 8 +- nx-dev/ui-courses/.eslintrc.json | 18 ++ nx-dev/ui-courses/project.json | 9 + nx-dev/ui-courses/src/index.ts | 2 + nx-dev/ui-courses/src/lib/course-details.tsx | 89 +++++++ nx-dev/ui-courses/src/lib/lesson-player.tsx | 210 ++++++++++++++++ nx-dev/ui-courses/src/lib/lessons-list.tsx | 66 +++++ nx-dev/ui-courses/tsconfig.json | 20 ++ nx-dev/ui-courses/tsconfig.lib.json | 15 ++ nx-dev/ui-video-courses/.eslintrc.json | 18 ++ nx-dev/ui-video-courses/project.json | 8 + nx-dev/ui-video-courses/src/index.ts | 2 + .../ui-video-courses/src/lib/course-hero.tsx | 18 ++ .../src/lib/course-overview.tsx | 69 +++++ nx-dev/ui-video-courses/src/server.ts | 1 + nx-dev/ui-video-courses/tsconfig.json | 17 ++ nx-dev/ui-video-courses/tsconfig.lib.json | 23 ++ scripts/documentation/map-link-checker.ts | 9 +- tsconfig.base.json | 5 + 59 files changed, 1408 insertions(+), 126 deletions(-) create mode 100644 docs/courses/explore-nx/course.md create mode 100644 docs/courses/explore-nx/lessons/01-why-nx.md create mode 100644 docs/courses/explore-nx/lessons/02-run-tasks.md create mode 100644 docs/courses/explore-nx/lessons/03-cache-task-results.md create mode 100644 docs/courses/explore-nx/lessons/04-generate-code.md create mode 100644 docs/courses/explore-nx/lessons/05-automate-updating-dependencies.md create mode 100644 docs/courses/pnpm-nx-next/course.md create mode 100644 docs/courses/pnpm-nx-next/images/e2e-splitting-anim.gif create mode 100644 docs/courses/pnpm-nx-next/images/implicit-dependencies.avif create mode 100644 docs/courses/pnpm-nx-next/images/nx-cloud-compare-cache-miss.avif create mode 100644 docs/courses/pnpm-nx-next/lessons/00-overview.md create mode 100644 docs/courses/pnpm-nx-next/lessons/01-nx-init.md create mode 100644 docs/courses/pnpm-nx-next/lessons/02-run-tasks.md create mode 100644 docs/courses/pnpm-nx-next/lessons/03-configure-cache.md create mode 100644 docs/courses/pnpm-nx-next/lessons/04-task-pipelines.md create mode 100644 docs/courses/pnpm-nx-next/lessons/05-implicit-dependencies.md create mode 100644 docs/courses/pnpm-nx-next/lessons/06-nx-cloud-setup.md create mode 100644 docs/courses/pnpm-nx-next/lessons/07-optimize-ci.md create mode 100644 docs/courses/pnpm-nx-next/lessons/08-remote-caching.md create mode 100644 docs/courses/pnpm-nx-next/lessons/09-debug-cache.md create mode 100644 docs/courses/pnpm-nx-next/lessons/10-nx-login.md create mode 100644 docs/courses/pnpm-nx-next/lessons/11-nx-agents.md create mode 100644 docs/courses/pnpm-nx-next/lessons/12-playwright-split.md create mode 100644 docs/courses/pnpm-nx-next/lessons/13-outro.md create mode 100644 nx-dev/data-access-courses/project.json create mode 100644 nx-dev/data-access-courses/src/index.ts create mode 100644 nx-dev/data-access-courses/src/lib/course.types.ts create mode 100644 nx-dev/data-access-courses/src/lib/courses.api.ts create mode 100644 nx-dev/data-access-courses/src/lib/duration.utils.ts create mode 100644 nx-dev/data-access-courses/tsconfig.json create mode 100644 nx-dev/data-access-courses/tsconfig.lib.json create mode 100644 nx-dev/nx-dev/app/courses/[courseId]/[lessonId]/page.tsx create mode 100644 nx-dev/nx-dev/app/courses/[courseId]/page.tsx create mode 100644 nx-dev/nx-dev/app/courses/page.tsx create mode 100644 nx-dev/nx-dev/lib/courses.api.ts create mode 100644 nx-dev/ui-courses/.eslintrc.json create mode 100644 nx-dev/ui-courses/project.json create mode 100644 nx-dev/ui-courses/src/index.ts create mode 100644 nx-dev/ui-courses/src/lib/course-details.tsx create mode 100644 nx-dev/ui-courses/src/lib/lesson-player.tsx create mode 100644 nx-dev/ui-courses/src/lib/lessons-list.tsx create mode 100644 nx-dev/ui-courses/tsconfig.json create mode 100644 nx-dev/ui-courses/tsconfig.lib.json create mode 100644 nx-dev/ui-video-courses/.eslintrc.json create mode 100644 nx-dev/ui-video-courses/project.json create mode 100644 nx-dev/ui-video-courses/src/index.ts create mode 100644 nx-dev/ui-video-courses/src/lib/course-hero.tsx create mode 100644 nx-dev/ui-video-courses/src/lib/course-overview.tsx create mode 100644 nx-dev/ui-video-courses/src/server.ts create mode 100644 nx-dev/ui-video-courses/tsconfig.json create mode 100644 nx-dev/ui-video-courses/tsconfig.lib.json diff --git a/docs/courses/explore-nx/course.md b/docs/courses/explore-nx/course.md new file mode 100644 index 0000000000..14443cc1fb --- /dev/null +++ b/docs/courses/explore-nx/course.md @@ -0,0 +1,7 @@ +--- +title: 'Introduction to Nx' +description: 'New to Nx? Then this is where you should start.' +authors: [Juri Strumpflohner] +--- + +This course gives you a quick high-level overview of Nx, how running tasks works, task caching, how Nx provides code scaffolding functionality and how you can use `nx migrate` to automatically update your workspace dependencies and code across breaking changes. diff --git a/docs/courses/explore-nx/lessons/01-why-nx.md b/docs/courses/explore-nx/lessons/01-why-nx.md new file mode 100644 index 0000000000..13868e98ce --- /dev/null +++ b/docs/courses/explore-nx/lessons/01-why-nx.md @@ -0,0 +1,19 @@ +--- +title: 'Soo..what is Nx?' +videoUrl: 'https://youtu.be/-_4WMl-Fn0w' +duration: '9:28' +--- + +This video gives you a birds-eye view of Nx in ~10 minutes. It covers topics such as: + +- What is Nx +- Nx Architecture +- Add Nx to an arbitrary project +- Why would adding Nx be useful? +- Nx in a PNPM monorepo +- Why use Nx Plugins +- Setting up a new Nx Integrated Monorepo +- Abstracting low-level configs +- Automated Code Updates + +Read more [in our docs](/getting-started/why-nx) diff --git a/docs/courses/explore-nx/lessons/02-run-tasks.md b/docs/courses/explore-nx/lessons/02-run-tasks.md new file mode 100644 index 0000000000..abd42ceb06 --- /dev/null +++ b/docs/courses/explore-nx/lessons/02-run-tasks.md @@ -0,0 +1,14 @@ +--- +title: 'Run Tasks with Nx' +videoUrl: 'https://youtu.be/aEdfYiA5U34' +duration: '4:19' +--- + +Learn how Nx provides a powerful task runner that allows you to: + +- easily run multiple targets for multiple projects in parallel +- define task pipelines to run tasks in the correct order +- only run tasks for projects affected by a given change +- speed up task execution with caching + +Read more [in our docs](/features/run-tasks) diff --git a/docs/courses/explore-nx/lessons/03-cache-task-results.md b/docs/courses/explore-nx/lessons/03-cache-task-results.md new file mode 100644 index 0000000000..9491d3b21f --- /dev/null +++ b/docs/courses/explore-nx/lessons/03-cache-task-results.md @@ -0,0 +1,12 @@ +--- +title: 'Cache Task Results' +videoUrl: 'https://youtu.be/o-6jb78uuP0' +duration: '8:50' +--- + +Learn how Nx's sophisticated caching system ensures code is never rebuilt twice. This: + +- drastically speeds up your task execution times while developing locally and in CI +- saves you money on CI/CD costs by reducing the number of tasks that need to be executed + +Read more [in our docs](/features/cache-task-results) diff --git a/docs/courses/explore-nx/lessons/04-generate-code.md b/docs/courses/explore-nx/lessons/04-generate-code.md new file mode 100644 index 0000000000..72d96151e4 --- /dev/null +++ b/docs/courses/explore-nx/lessons/04-generate-code.md @@ -0,0 +1,13 @@ +--- +title: 'Generate Code' +videoUrl: 'https://youtu.be/hSM6MgWOYr8' +duration: '4:11' +--- + +Learn how Nx's code generators help boost your productivity by: + +- Allowing you to scaffold new projects or augment existing projects with new features +- Automating repetitive tasks in your development workflow +- Ensuring your code is consistent and follows best practices + +Read more [in our docs](/features/generate-code) diff --git a/docs/courses/explore-nx/lessons/05-automate-updating-dependencies.md b/docs/courses/explore-nx/lessons/05-automate-updating-dependencies.md new file mode 100644 index 0000000000..4f6231e105 --- /dev/null +++ b/docs/courses/explore-nx/lessons/05-automate-updating-dependencies.md @@ -0,0 +1,13 @@ +--- +title: 'Automate Updating Dependencies' +videoUrl: 'https://youtu.be/A0FjwsTlZ8A' +duration: '4:45' +--- + +Learn how Nx migrate functionality helps you: + +- automatically update your package.json dependencies +- migrate your configuration files (e.g. Jest, ESLint, Nx config) +- adjust your source code to match the new versions of packages + +Read more [in our docs](/features/automate-updating-dependencies) diff --git a/docs/courses/pnpm-nx-next/course.md b/docs/courses/pnpm-nx-next/course.md new file mode 100644 index 0000000000..0676563ab0 --- /dev/null +++ b/docs/courses/pnpm-nx-next/course.md @@ -0,0 +1,17 @@ +--- +title: 'From PNPM Workspaces to Distributed CI' +description: 'Learn how to transform a PNPM workspace monorepo into a high-performance distributed CI setup using Nx.' +authors: [Juri Strumpflohner] +repository: 'https://github.com/nrwl/nx-course-pnpm-nx' +--- + +In this course, we'll walk through a step-by-step guide using the Tasker application as our example. Tasker is a task management app built with Next.js, structured as a PNPM workspace monorepo. The monorepo contains the Next.js application which is modularized into packages that handle data access via Prisma to a local DB, UI components, and more. + +Throughout the course, we'll take incremental steps to enhance the monorepo: + +1. Adding Nx +2. Configuring and fine-tuning local caching +3. Defining task pipelines to ensure correct task execution order +4. Optimizing CI configuration with remote caching +5. Adjusting the current CI configuration to enable task distribution +6. Splitting and parallelizing Playwright e2e tests to reduce execution time from 20 minutes to 9 minutes diff --git a/docs/courses/pnpm-nx-next/images/e2e-splitting-anim.gif b/docs/courses/pnpm-nx-next/images/e2e-splitting-anim.gif new file mode 100644 index 0000000000000000000000000000000000000000..a174c78bb38855886f6283b7d897960e58e77c0f GIT binary patch literal 149153 zcmV)1K+V5LNk%v~VbB7V0rvm^0000001X2M76S(u0|*xc3L6LuCIt;52@Na@4IBp! zDGLrW4G%jH4?z$QJ`fK=1rQ$#5hMf>B@q%m5)woW6GIXcOa>Gy2ox;|6f+AHI};RB z6BQ%|7C{FVG6xnt4Hiok7F!q=Tn-md78ha|7f%=$R2Uax2^cRB7(WFWEf^V22^usJ z8dVY+L>n4p1{*XJ8!QzYOc@(g8XIgI8(aq*LkS!^5*%Cx9XbjfLkb;C6CGm}9cvsN zEC(J+2Odxh9#a+`a2g(Q3?Ew!A7T$5Xc-?cARlQCAX^V0HV+_Z10gpBAv_5oJq;mK z4IyI@AzT+BG9V#m3nD}dB1;e=MiU}z79w#NA~YW&YZ@b58zXcbBV-XIIuRsH5hP<8 zBvc?IY$GHx1SLZmB|0D_auX&~8zw^pCrAV+M+_)L2q_{8DNGS5P7^6r8!25JDLx=6 zZUibz7Ak5JD_k8bbRa8rDJwY(EK?LLV;L-D8!T)EE>R6GTMjN^5iW8dE_eqoSsyQW z2ryP4Fn0toRSPj(5iwmaF+LPBWEnDS95PBWG9C&uVH7iR95ZwtGk63vTPieRGBhJ7 zHAn|GVHGxOG&e*8IA01mWEeSg1v+FKI(s`kNd!J>1VL>tK~)VxbU8w38bg0ULr(-n za|T6c9z}};M|cBCc``|WNJ>^9O_x1RWKB<73Q>p$QhOs)q*7B}Ay$46S2a*qd_h=q zR9IssTC5OTI$B(1DP6S?UqLEjyJ2H&5N1nDW`AI2gA8Y&Eoa0?XN+WLa!P2DWonBr zYs_nGbuw_&ZE!kMafuLeUUGAMG<4inb(eB@g*JNTZF)(2e1tiE?>mC_gM^E1g zoJq5$&6_Gck|a=o08gJ7g9;r=w5ZXeNRujE%CxCNj~jLB#7VWP)vH*uYTZh+<4FQe z!-^eCwyfE+XwyQ}C{-%gw{YXiolCc?NRtA5f>q16uiw9b0}C$5mT<_ zov{bvkVNtY)q7`utSf-eUcIxS;ppxkudE1Ey>8Yq1^xlJZipSlZn8yDqD@>e*YU{1I3aVkN zrl#sEkqEA;n{_PCYV5Hw)tc+F%r=W?WN1pL;IGsgD5~0$FyYPbRn|mXgYp-SwmfG&V+m0FUzX0F*Taxz{+!t=wQ938T3|q=) zzz|0)aA^=GSeU^WmzCSX4R?I0#2|+}@oDsBY_e0r66^8Gc|I)i%P<#8@teJ#Y;&X* zyVWAgJi{3C&p_)M8E+ldcJt8}+1K;ZR0i$z)1s0l(zHldy%u6jXKkUfP!lQvj$bny zw%0(H30Z?yr>!b|SZnR}cU_ZxK-d!0J@?mj<8AldG~)lwx7~U39cJKT&mHp2HLH!Z zZu-9M_-|Z4O*i0qS8jRbeN%q7-j@?@x!{Ip9`R!n3aR+bjGqMS3F z*KYgmxNnYmz~Lch`sw!$+xqa3IgR`A$S1G-@_om9Hm|_joI3H;*A?^f*k`Xj^LxK5 zb;Z$Rym9s9zh(UP=%=s#<=&rNdidqKRsQ@j1{!bS>*ue3{(pZvbi(lamCEQxK&nLU zUz6LP0vEVGZ*8eDstKR~BUHc&-sEKr%%BF<=PYs6B|lV?Ae-7|!4lF+VjE1M3eo33 z(t%HeYm%P{XSfnD0c?dhyxj#Vx5K>kFoP|Gpzr@+2qLzri-t&a*9|$B!zN1L0#J-% z52g6T9Zu1QPt2nBnwKlbs3vhlOb-c@h(vz{%!v%Vq7SWDMJZCzjc|-(73WC12y_l~ zUHqW5LKw#6(5p#g3?!EzHaj#T?}t{5;~N#p$VNI6igdJG1SUy42Qr3ceN>JSS0~5{ zM$C}Pd!#5wNy<`2F>jN!W8GBwxn&7)Bu2~RYzElL8Qw5+pwuB7P07n%LJFd=v#HHtQZkiyWY!0dq|D7Qvzhcm zpzfsU#x`2>oxa>AHo2M2ZAx*T*c@ghb%*~eFOsvIftemUiTBBM8WNK5OlU&u`O6Dn z)1mU@CPe26PUVH}Q*-$u9|8K8a}Kn1W&{@#*{RTy!jqv7O({O@xl#;xla;sYr(8;x zOpcz#qaStKGn-Y&CL+|NKs{+o@d?q1PPC;Fa4AeJ>M6P$sirm+3r=&|vz_wPiB}A& zRu?)?qYhQ2UtOsqYll&%1}my*86#D-M#zJ1^{omOYgp$>SBWZ;tTLNvqc)1xrl@tT zRkdFPVjzXWN+AnbKmlSG%h<*`_OXzStYjxk*~&(?42Ug*W;e^(&U*HH#K0iSpjgnObUT_WuPj{d@g-%FQ%u(tXMhDzeldih4C5G6ImS82at>gyiGD_RyC9q$~!nv9vT0x@uhGS<=o&p+xgD$buuQXl&8o}srYziO+ zBOUR~vT_--Fc1T;k@U?$y|b?2tLr%T+RqqRaj>83=RX6Q%2~dFvXz~KCd@(6riiw* zr#)>@d}7g(=!2vwZD|O@v6VL-j;bRPj8qpT7_LZ840dZ4VZqv1X|`1iFd!&5_7P?$m$5LX4YCvFN*Sp4GG&i1w|-Q@>= zdv`mENd)m?U4ujeDb4>#P6Rm6ZVJ9zPw~zbcX65Ad-Iat|IWG2{~hq23p?08KRA>X zu52eb!P%U6c*K`Z@oHcE>7U3rq&MDik7qh?A-~C4*^~04bbZw^(3odljwc=24`6Ff zu5xY8$U4t?=WvhvoqbOCfWKJi%+5j4jXsB@t0EOk54^;i{&b8-J?hw=`lKrzV-;Mz za9RfmPlWV!fdqgemnTT&U$bAb$cgMe!(iRgZe+HPQtqfv{oL!$`Y7X_=tif4B$O`r z+BZGgg+KhY8O;etYg-MJX1t3(-o2V6h5%DjQ00B_3|vGc0C=cIDKxK~R!cQ1pwH0t zI!F2xn!b^$55NET8O-{+yZ+cj-@6mq@QK>HpXn6Oz3zFx=uA91(u*fFgdI;sta}h9 zd65?g@^uNY4&^Wp(pL%!SPGahZey^33it~15DxX=2?MctuVH;*@oL#895MGT$dd&s z^nGxIbK}=w6Lx|;SAGU}es?!?>E{GgKm~cAbhP(=f=76Uhj{eYXpg3C8^>`j#($?& zUQ{6vU*`k$kOO!+{;>8$Yu= zBDg>#7)N%tV87;u43>iAhk__LVG-7Ea;R&0IEUoNg2onTFPMHsH-obGa5sp9wl{I| z$AdkHZ9o5rf5F#n``3Tn^M5f>dD1Ws@Q?@u!2$BXi2|_>yO4PTkO1IN59{Cq7pNR! z=vO^fhL7=q@G?>%s6cC2f^+wVZn%ehXooSThYm)Ez}RnoxMD(gcQ7D`3r7WHP>9op zi0`L^7WWC(#)v&=36A!N+ZKscM}$8Fc{Q^-qd#f5KImn79^hoU#*eGFV!jxMz8GUE7-0rUkOBE%EFg?^wva5~heCI7dKZI) zID5|sjnSxxP-l%jXn)zLjg!WWRY!?NC=*~<5D5SecyM_Eunx1Jjt6m)ngNe)@{04g z6(RqJLSUmo_n19XWOEOdXMO084OVP)m;o=gU^3=nRfdpG`HKkIVgkuvFlKB$M`cfT za1W-8%EpW{Xpzzeco>omhDKRu0Lfwk*_2XdWly=8ocW6m zR%M_0kXd<^5lLlSc>{z<1${7ae>axy7k@j*k&KoJX{nZM8EM&nk+z(GdKsIaC;XymSrh_XIXzAX`5?#o4C1n zaM^L*SYO505;FM?zmNbN5CI7=p$V{Z9H4}lfDq1U8PFLNDZ)u*2q@RNeV8Ln+ete= zWnyBLXX06GPzI3n31c#vo>F#YPwAfPxt>%;3eaE;*YKl28l*xxq(oYzMtY>zFb%`7 zbi?2c<6sU@8l_S?rBqs_R(hpanx#-W4&I;&CvlPm@D84kd7i)x*kBCf1`pF0ldO0Y zWcYGjGNSb;P0DkkJhXON<(>5eo^-d5^BJQNS)+kUkT$BL@9C7sMhZx}sEq&Gs7RU% z5H}23I;oUesg^3GURn}h`VMO<0Pj!^>o5-lp{5$zrbQu-?TrWg)*z;2{E5Ymc-rW&2t2V$x^r?kjEu3D#;lcEMzPr!7m)2%E52Iu6h(0AmoUqc{-N8UW7_4gf$7^`H+K zDgf{>rUDQEJ^---u%Uy|p-J(i4e+E7qbjO73MqVsB_rP-dx zsG0lvvs{*J%Qk3wN3?^cY*6L_1iQ2YYjFzuv`{Ohe$os901n(x3i*%@TAL2}V1XQ) z4!^(w;7|?&VVqiPh2KyL^S}WlD;OqA5h!a*uTw|{1+&^2t0rc%f10zp8l&}EpHX%L z-S)G|X0%5uxQ1)A3b&9<+qlH)v{4(m3Hv8h`wZ{^4)U-In!5`X$S4(?57;mdswfcf zfDM{E3*d0M?~nj(8yIiv95(4pvgj>-W4GxVMOnah;d!fj%eTHOkvFiF6N$KqOSE}c zyvDn1jO)0}i=>b%xzKy5p_6h6@C@KE1_6-00>BPy8UP6}5BmQQv7|eu+N%uUK!vRf z7_WOZaa%nsyOS?#y9Fjixr=0e+IsT(yZQ^b^*OZ3OT5UdxB#5EM7O-nd%#2bywSVB zS{gWAr@h`m1SoL)m|ek#njr%WEz#z%|13Ab!Gtiw6X!#=#mP&!9o+OgStc^tr! zag4!8yuombn8O2t@jJy+oR5uk#aoqRS!{6myTvi;!d?F?!!ew9HLSP+EWqh^#%O%N zYRtwyEJZSz4&lHGui(kA5XzwZ3-v&SZ2FECF;zY zjBrT1$XqG3f-A-Z9LZmN!%b2B01xXh&H6A8>!1$KSE{I7 z5i;aBP@J8x9Kt0<%kT7$L6^&=$-*tn%cps`!u-y|Ow7e>$;X_`Yx%Bd9;y| zEBUc536l^EuG^f)P3$qV3%}tU&L&09)CLUI(|;_>>E+W8eZPequeiL$ihR_(JiN+C#!CIpiwv+%-MH3ZaR(dK z(K`+uw_z230c1ThQpP!4m9(gJPV&oB?%z?`1_ zCY!OuhtbWyl`ExvyG4k%%!S&eRFrgmm4E-M!ml0Pzueb0JdyBh(S5C`xJ|IK5N(p$ z+t3>eT=rlmInxW#45fnBN*vmW!87qz-FC~;1*E7t{ zFhB~+5U}gbsMY`tt>AE~018cd*znz~Tq@s$mc$N$-}!CdY60DF(!prf)&P!1YE;Fy z2t@?0NO%~G=O@t(-s9w5yZ}tw@$BHlcxNuAWrj8f1G?mi7NAbtU0&*5{^gMt=48I=!H4D?r)6x;5N-}VY0bnR#xS5_=PSgnc>YLw z-fMSAqeBhpkY2Qj>*zON=*qtA%x(jYt^ZtAEG=B!@kW=^!Re&112Dl~2DF0L(~qU##e>(->*|E8J4PVB|5=!Y)w z&kpU)e(;4}@CuLYIl$=BPSFK#?bx2}+kSYQ?r`2dc+n=7;U01Qd3fa>pyyud>5iLY zzV5Alpjk$;5#S205O!_85}*I=7jk~kv1Tjyo=mu>5>M%QAPJVRXce#N-R|w*E^QqTaiGqTv}x{3j_xHt2PePot`6%C5e(hX z4bd=egUJ%kz28h6Uia>@IlnzSUs84E^LhyMK|l1=?(hqL@Pm)^%Rcx^FZjsLl}=9u z*FN!5PxVz#jfIExhIojr$)D0@cp)$HVc+FrpXz15>Sw?54xtTe-woX*>n$+EuwdVo} z17+Z=K`->bzsSqq|H=*!Is^)|VPjxHgb5MqP&m-xLx>S0QlV1C;+#Bv1WDr5(c>qO zAwhy7S<=)=lqprNRFz8AOPDcbsw@f8W5-OAbncX7$fuz`LHo=hTGXf-GD(##ZPL_f zlN>pk37}fls?`FOLK(Q)wQ92hVa1LeJHYG!uW8k;W!p7N+p1*c&ZS$|?p?fj?;haW z*Kc15fdvmHT-fko#EBIzCVb(71jmsjPo`Yi@@34KHDmU0!NX_JpJ8}_F}if=GN)m% zVBOmFYuK?{-=P0p+xBhTxpnWpA&|C2;J^(MRJgEs!h^#fDi7XV2Stlj+GOk_$p%n(RM4)!8sv*H2qTnmLc=P9Y%>fq)NsQKRFJGQ&p=acL=sagjkVQeQ*lM!T6D2R z9eQ(aMu!R_?l^{yvoSe|n4=LQ=q$=3Bb~0pF1zix>y9MwnndX(m&z+IC6Yo?Z@r${ zdoMnt(x8ti`=F9)K>hmD>pwEnT&qC17IgDXIOlTkF9{By@J>AQc^`S&%~}Ygs#=HTmSg zrsc3&46mikWPOBI)kBzM3 zcU1p>0S>rH^9C+BJ&#~zPgbECp5tMNpNi_1U?}F8s$hcQOXFbI7SQ9hM7A4Ql1oN; zZ#`A^Tjt4V23%&rwXGRv#J|ni#GYjX`sbzTZOG`OCqF3iiS8A$52*L$*WZw=z8dR+ zRoVJrkFaddy|5c5yFUANMf(=oYq$M&+;hKWk~-f`@GQCK-tTVW-OQVBFTUAa%#|(TypgAPAZ+% zDqoEiY+7r*71uC{X;(Qw++_&kpx*&6c>1B6T8j5Tz2r@A$)jLnm?s&+{i$%!lV1M^ zXGT5ig%D@5*jc|-( z_>$Hx^Wg}FEnK1IEb@dQX(Wf&(czKe#~nd}f{>#NA`$b4u>B=*OSSS6B%A-ZE1YS@ zFjGX(#y07dPFf6Qo1kRC>|ymrv`X`x^RCh{jKJ6Af4*jTlX7!lzbDG@F>d;SMLL z!)EE&MkS*t0dn9WFe}ZZORoY`tjM%@$E)eH{A4YiCbnjW`)Ol!7S#Xl-JlFa{oYX{ zh1IJjm8w4&XjGRPRenx&vr84NQU|&&ttNCxQER9}IZ@0|9aExYEvv!Kic$WFjciT) zMm{Q`4o18qxCB&vbh$Z{S8Z(q^)hWt3$%rCHJDm!P2KFKG4q-~1}oIXg%#Fjsqs zVLJ4y4?SiweMs9TJu`KU9Q=#XgNMv3AxU}2* z4DcJSu!mfwv5!!Uh#cfl$2Npf=t_9O9=I?D3*K=7Tu1}2Hoh??spwY%@wmsy8gGz= zyeH=!S$ax#Y^8aV%$#dX1DU29qwT;T*Qa}^A% z&;+a5wXij2lF-w`2OFD+isS@Zr^zKX{Et3O6jKvmKtSRaiX4Wn2O2J5Qp!jG1sJ%b zU)tT>cWYYSZ|ZctD|GLCckncf-8U;yRIXRnCcf!XH9Z9m5rV#Y;j!+re?`0Hsbg8! z4SzTv5$si9OB}4k2ADE6juMW0T%+>AFtk&CGZi=i7r3YdW)8z{xcL>{0@!(+mgV!q zG%x7WBYM%>d35&@wdvk_I@GiN_^M+)zg30&R4uaW0&~?5hd^-HTl-oaQoQ2Yxj4o% zPFp!on8K{nZQJvV%_nB)?%VyH-gVx0Wzie(Ki~h%;Dv5@eyfqmCR{pw7mvcm3*@ww zue{Yid-YpGK027E;lq8+d9ZsP^q*%i*)i@+2rH72%yymY2MGI{+12jb#Bn!wY#`h# z=E1^)JSI$z-@E<`bxgcV!p?#HP0d~=p#VOYdDANwavpm&x=6N8#^8{ zz4<{s)EU2zyEE65q)CcB44FOJbH8ueyZB3x`J=y-vA_G%zgAie7;G{bRFU`cKPW3I z0aQK(EWph|IE33l(b_r&e1fifz|M<6U|X|bqd-!zK$AGVs{sXQLZS_f4?J_b56q?z zEDSrrJB=y9+dDxnau5|#0zQ$3w<#0xXO z0lI}~Xa-|EMr2GzWn9K+2!>Kxw`Fk?oU0fU7fuq>B`+H~Y(}H1x*9(;5HTD86t!p~Xu@9aP11{4#W;ypMdvA#6uqGs1Xe zs6nL1l&nR21f;6TN0}@Mf2^?93rM$%hD~Y)E{sNL%tX1V#)cdjPlU*A#3@mu$WhEl zIgB!n9Kerkz97i2Aec(&%e8fkj#zZSKs~wi`Jt z%#Q`)$(p-F|8O^95z3(qrJ^LSGepD0Qc8EaffHd$|C=mw6hMNDO33S{svM}stjfm} zt;U=xtIRcq%gSFeNj^f!uM|tMv;?x$zL$(BwA@8kX~aglNu2aRxTJ~zNR!v(kDm0& zOAE>{Y{+s7vc5bozziW7q>cX^xPjm#%vBSJGI&bG1hdDSO6G*jAOHgAj85rv&K;o6 z>a@zryv%{Z%*<@Z&3r&d@Ji40OkfMmBz(zx44skqm(uJ<)FeNU>nM-n6{_%oXTSvk z2>?8(hEkACgrv*51WIbWO-|fP-OP-9>rLORLEzvN#giZ|I zP!5&O34H?Y)XG?tMa~>g69r8aWhk)oD)el#KvEK2Ohi{%OACun`HaL}fy)F~hjN$) z{wxI`Ed@+a8vz)DAO+G_c&>Wzgs=F|gv7*Y>=*()!G|oY-b+vgy_o?L&IScI=YUWu zlTgX*P%?eaGCfnsd;uznd~?^ zV@sld#2gSHxb%T~NCa-k2X=S|NQDP{z=NtNhkAfiNSz0J-~e_ohS-$Lxdc$W@TR+* z()csbnnF;CM6WFE7U3MusOVCndX#_*4luPWF{Mm2-Bn&qQ|FAuAdpjGb<<%TQ9$fU zJ55%3)YCjwGd>k7*^1Hbn9*Of$wyjENoq}LmPdnS23(ob3#xo%~zC@L@xDL#;etJ30TY_*y}9VgI!t-mD6BtSg2*# zV+GHMHBs!tzKUHasWHSI%2=QI*9?Glm<5;h3Q%=dn|qUZ zB@>*b(gyLldks1T-B-WuSD|eb88X_XAy^A#TEuPIVtv}EZQQA)+NuppuYAX^%i3X@ zz>EFbul3k0AyknQ+4(fvuJ8doNQ8QL1w2Sycz6ap7z1Ci#CIK4yA+;Hq}ROlG|TAO zR`uIg?cM*tbrGR4s_-G)A3<8jOkCuhPGM!-#%*5j{7!g`+{vX}1jAa(T_~=-SnSvi zB)P|%u!Ln3+oA|L`P^5MwTfA&2Y8T&dXNWrc;9*8)_DMjn1x%!$QwARTiRtv+pX7B zr54`oMp4{X+}P6JtwVt$-Wf4orA=N3KG+duQ>cAh>aAc4zTkJf-h=@wXE=v=_+Su@ zhjVZSkLchK9$`_*hI{CTez=Eh5ET;+VG#xf_fTPeU}1i6VWo%#Zy1Mh@P=4$3Rvi2 zZ-9jyRf~7{g#_S$2uJ`YPJjsD01i-8Oh}8kg+|)^$tc~AyX`xjt)RXA%f9{F0~XvI zRN()JVBq6@U<_>qXt0KBh+{dPV>+&5JHBH)&SO2^V?NenYk-DU*a;PG;cVau6GmZ9 za0VG(WD-{7MUDp&&IT5qh3? z2TzDiPv8b@Fa{!phyJu*Cyia%-D0@tVtGSVF9KjO?oBej0VgP9-grvmT;PE<+y-Xj zs%(Wmj%I0|W@@fxJPu?|p5#K7giHQlXOILB#^et^2XMw@a$ez1zK3!a=X00?bnfI9 zCIfFcWl{Eq9GK@*_J-0p-*|h6S{8tJD2H{J2dkiED~4TM&SiNu)gJR@Qp#P#(kcIn z{96M~7bm#rV!n-wej{2H-c(dzHC|(9=1^#`W|KZ?ls;)_FobtzVRc?-5IzS(5N8l> zhnW^(^Wey(Lam&gj~pYq}QP-|%Q; zPG*S+>5(o|I8JH79&EyZ9K0A|2>*tqOk@fB<-gZ~y>us0V$h;;e3E)Aj+;7J#n)v5Ywu{oQ4T7A*h&-C1Bp z>!PFRU3rSO-e|ZkZn!?~*fGctWx8@M$;WAZ0yc%ltyfLUhGAV?8gT0 zN1lVs7H>?(?93)=&Nc_nrssVQ0C3=jQpksNsPA;h2PVzxbod1h0Ecp@iubK=OZ|pY zmORx!)@~C& zaX#kmP7aFke(Vo6Zy6?U%7*bpMsLbiZ_aM-Q-1GffCq4phg}HrU071SL+yOPhIwFD zs(=S<2=Z9~2Oocj1VC^JN|xDW@ZAO_hen>WW+wqovH`+Ts2KAL-*EpkKl9|K2#278 z55KJA3~7-b@eVC<6t8nTm*b#@XBPi%7mo)ThwSopaT_1%CRlGBA7#)^fM)=QF$e%h z7XWss!ZB99lP9mtvVJ~(f7Z-s~J->K%uH{CM=ZDDC>xhjh3Kt#-{%o!PIBlTg2+QQx8m_w5Kr^?m!mZ#m(XC}&|?pRV{dqeANKzsSaylm?q;XtJ&*A| zmv%p=cA8d$%#GeAjn0rvh3Bc%m=*TKD&Y*RO+*%7j<=hkyEpkNAn7`oXUFNuGme=ksW%X&HxS zji2`P7J2t3`OY?ZPlAU`e@zZpTSpIoa(8)jr`ebfYu&EhO|yBM>T-S4`FbaFo^J}E z5Bh#LdcrS!HMgf_2D7C%$EJ6BsE2x~r+UdZX);J`7A6X44{xsLcyaFfp%(icCwulb zd#^}`aA1X3K>b%(ebxVkdZ1KW#$u8YnJZ^^yKm^;rXc^l|2@9{`!EUoGdFzUAO3;Q z^<2*!f$!_ATl_n0e8+!$$e(=aujb14dKy=QjNkkjkM@rbc|#X{&`ygn2#0lG2YrBt zbx41Gn1^*x2mCx}+5dEqk@>%(`N7J4E9aFCjti&ENJlHKq^$6C~WBP zA;gFhCq~p^@gl~I8Fz5(=GLPhphAZdEy|M&zkW)W&Y2VMDb#psqEe0Ov?|m&OSksBiZv_Ot^9JBD{HnajB#ht z!e}PoE!+SC2Ea`K50Bgc>t@M?DZR*jR?CskmZkt+_ZGjIr%DBaOM`07DML=_uSlO(6FpL(K^}B#{qUq>x42 zDY=7oOL_zzlu@!oL`>vaX_I;EX}Kkr>AC;M6?|3IH(xtrRy9XbT=6qUJNmVQCV%`i z@gG`htu-KA9LV#`Iut(h=QH@=;b1w+09s8w%FHthTo)Q9frg8n*x`pGS|*~UZ%w-C zXDPDyX=*OI79*)On!1~BIqFy(aXtcxT#>QL+FTX2?qJ=mx$5eqM@{l7C9qLmIV_ge zba^bY$>wCums^DyRhj4L7tc9!NQ+gq_k?wiwfbet-#ty(dDb`ql8fhC94s0RJm9$N zE;by%h0D9{mSayT@a)o;qlQJA7^k3BnrUVPYZ@@Zj7176!!3%s8mTd!Ix%m*{l=p} z#JvjZtR2e=U369GPz4pWntU>@yoUdz@(#he>=Kn#5<4@M&?tK|&gns;hPGRA+ig_U z0y8Zza}13YFnwebRyKwl{Z-OS<3~*s-u&kc3|60obz6STB2PISLE zEx&wuO6AeKd3mkm{5j}Ap)vg6?IN8H`!Kkh+bS-HuVV{q%HOnmwnU>J2L2efzBf z;HL_{qpOB;nls2*MC=cNix!CW+mf9xMM#1jQ(-Xo?r8B5kfXqg1hvRbBLA;=%|&k~Kt+X1vwOs$;8? zM6OqAWMdGXASEhM^Nnwmqa6Jg$8B!&2}yVYIKwHqkG8X$K{iTcb2xX3d$(1c2OxBR6xZ)1C6P zr#fZlIsYJ3NBqGNMm?${4w2MDFtw>peJWI+N{Fc%VycAjXCv?F$bWM6k_G)LSYPPL zIRFxrz*#5|9XkJ_A*ymitW2U3M^sVHTog2-(dde%h|7=CXnj2TB}q*hzmyVorQ2C% z8lm|znqHG80EFXAd@9+=QZ|l26)I+tiqxobwzEyODrgDe&e%OtpQbf!S2G#b)e`ie zWCf&f7Ru1+#bB<~!%$l#3fH;8vaX@ID_&1yOI)Ilue$N;76A)P!78q>&V3wr5StyA z#8j~`VQgb-Iuj^hv$EcuY!tXz2X7Be~jKCL)8yVo$4WueB^irkIAOqs+0f8$qqsp%9wO@CJ$Ox{-(;m zn`uUXwNZdC`^$(2o~T?EeCEdh*TJOWXcgOR8(v;4IC7@5tnhs2kL($-;!H`3(E!eu zku(21g??j;!yV%oGrHW1P6Cb5{oNf?y3%!c_jog{>CJMQ$fCWsJ4H*+dY-!9vHN$b z10L|E%=*gx&9bFp5R7KTfxx{EvzUP$B4H03MT#-D!^+3zHov*qadzKApv|0Gkx|;y zP8rH}aP4ik`&l&!cep zBwU`-<<|qe^`L(B%lq@5R z*wppuoJ@#YqS+YF@f`Topp1b54(6cvmEX~=pAYK69{}OJH65qDpQq&k)Y<=^{hikS zHR0*?A89=jz-iqgl^Q;Eo!8w+ZA8PaAs}WHKr|@e0!G}~IUvOioA?;p+j*3P4Ild` z*Kv4Y$$cOQO4}2d%m|L4OGKaFrQmmn;1fial`P)3Js#xIpbXle4dx&tUY-s{!4Ixq z5DMWCrq@%w-yvWkQ^j8rDxnfOk`soa{+-&tNugFT5&&8uC}JV(X<=>LLNIip7y3mo z1cMmf9`2RlWjr8UL|_55T@^c9{odDAx$ zqIM;oAdUw%+5`*I1Pnr+B97ytfdLdWB0A!r9)Lk4N@97P*HM{QCSL#IB^n_TdLrrZ zTO)}gKaQ2v{i7doFVSq_Z=EJ znp--iV>|v}5c-&A{edQC;yEd$Ql1k&dg4Cyqg0M!J^`dva-CUaVU2hIM_#~+kliX( zoJFGD87`PcZlo|u3^8J$g^A=bid;$B;Yp&T^yOho2;NJkWH=3?cGXl))}-R~<(1In zP9~a9avvi8q|XH@)2rDlfWRhs`E!6lSd(ufDZ07rf$ z*{z+#nIT559Wd%mS9&C0v8AfyK;gV4oy8?H&ZTaq;4?~N^hsk~?qy8Kj5j)#O+6M( z3TDnNCpH$QVfv(DD&}I|U}G}kIy&ZKvY!wt0#W@~Q(+=dq0>EL<~+5*W}c@%@?U2% zVU-ai0d8e!vPf>B=2)sG!DQrF1|vsCOx&^Ma>1oC;$}+irfvdWZ?fdesiaD9BV_$0 zWEJOwGALkbpH3nsPja7(@#JAjXE{=5bv9yl66H|+nEY*`Wwui%lIJ_Mfq9~*i#j1b zEf6Tm*8?>nXjYg(?nYP2=X}y<171p5`c{7Gr^dnN1ya93}^}k<5}Z>61RHpD~}|CFn{pCzcW- za^_@~Mpkm_B$ryKmu@JSo}-uwC3cdjBsu~mqG@=l6Pvavi^A!g&MK|mD2}>fZAim5 z+`u;2#=}U1F}R3|V1pF&s94sgpRQ)b1!~@;Oc#)Desu|rOq-HD2t(<}W z8O&v4;)N^Dbt+B@BA0gQxpv>EdT6N%C91Y#QDOhqQl4mdzN$OLs+-cPzSgRHwj!>= zz&GrJ7pMaoNCOP?s*B9SJ6r$?NJBV;g9NxjIN*W=2!pPofH2qtIY>i9`C^~K1uq`V zvN9{f;Hg>`s&5>sw2mZmS!)?-E6hr&g06(%(VR9~A73(_Oxj#dyx?}ox<=l* zl4`pK<+~20yv}Q@is!51E57cZtV(4Xw9vl3XusZS0p7+pq=PW10}Q;wI!J?yR027? zLmc43#)bn5*n=z70}IH5FnohCltDVULKbvv1b%G6C@UIXoSK>J$sXxKN$a!%Nyu%O z%g#?YIcdxiXmA3eG+JX4ph3?XCwbhYPG$eDUnbs*32la|Yr4kZx*qMACT*FrpPDwU zy|%%%Kbz4kS zF3vLOacb(Ob{9>^AQ2!Ys79yIlG_Xxt?8aF>O!U-C_>Yw)6>E(15YhKl0h1fRT^NB z?OHAFPG!FyoNatVCA`BsIKezf134rt3!uR}Y(qJ4L$J;RpP+#BQttt5132J+4mOwO-N zC|bIPF1mW37XRcDgz*ww!4>3S84s{J7VuEMTLL@f0yi-1isA)rP+9#E3yIJLi=unx zNRGllD0o37xB?oC!Uf=hi@3sSxI#GygYU*c+E#)Dl!645K_wgj3gCh()Uc0gZ{ObM z$dW9J2=3s1lx*gJ5WkN}rEjeyF)No-99bi$#t|Ak@f1^W=kjcX+9b~IWd8!KIF70q zld&)lGZ_!C8fPaPxA7apanv?p1mAHTN3#auaUSbm25&8ma1jb-AE1F7tqQ*CSEL`a# z4s$OnfpRE|^54WJj+CWQdMK`l~$|?(Gv{_TIe!XZ%&%rZK z@BnJCj&hWqf~85HG+FvBpt5vJyR;P%Zs8tkZw&EFyK@+&@A~dEJ@XVk=kv|pY&O#J zr9xIX0xAyVO@oV3) z>yZ@*VNe>lwKQw(zupE{%Jp39tqt3?eb!Am^Dr%;^C(}DY)Y#s4|WlQkt!cHVkfb8 zJ+bAEYlB8H79V0}b8%9CY77=8K_j(6b2dVQHhL>G7|?99%h; zJ5&KwxtD(rn1^{@p>sO-b!--H%69mNLwBRLIm})oq&?_O&GMYrIj=)j_We4IbMYa9 zcZ~aa_o1s(7lDo6xKtaup(DDFzxU>KwO2dsQ$BhdR6(}4!9!HKw^urjisqApS%DV- z1{gr7dtm~^K&dzX(U~m_k*c~nlQIUP`6+w2nh(>g)B2OvGvz{>PXTpLS+TGG`cl() z7jJPdV`u>LxeTl=+RyS6*Tw}(8XV>71vwm09RhD1gT zfO@*0(x|t)MZG(!hl;ANI+@dZ5ZgPNCxooyCci)GD+4@b3B2`1abFs|qOAf#Mg!9~ zz0*HE)JJ_Z6vHZ9C}jsNvvW4ZZ~etve8y}1IaT|7KYFcjdqapk+9x^5=SHTN4}p&% zW3YS6BcK$(JY5MXyvO@%cGS%)_h0M0b9Z3JAo0)ZW;fZo&fFucJI zfB@xJzU5#4KIUis4!}V)9K*st^;2j4#5eoaqj%Sz{?~)Ot9HD{O9a|C!3?E+Mw1ez z2e`>Y`JO_C+|Pa3)qP4=_!0d}57&GymHDd!{wWK7w8f=P7rrb1d*b_)Emtn%>FhT3 zFZZoNG-N*acfa>jJuff2=udp<7y9XYeF1BHkh?MKGqbjD`x+2aw}U(EvkyVaJ{InF zZP>o1Z+f`{M1cY^1QaxQ5Me@v3mGPqQZP$HgaRp6w0IF?#sUX8cJwF#WJr-CNnS8{ z5@kx2DpbI5`4VPKnJ;tHv{~~;PMte>I≠Xi%X;i4LuD6lqeWOPMx3`UGlJsZ*&| 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
PfTLtYnoOu;Nd5 z_?AS{Z1XK=NldrVbl6*(J;O=A)pjYtxG96>C$j7AM7p4^q;W5y%fYu^-A1F}KnRdD z$d287H#!o7uA(db3ZgcVLbl`i+Rl0=lf!ncFWbYmKvg^v*4V7tYDJ5va)L0UeWR_> zJk`0^+r{~(`{my689W!W?GOY!ktsEI_h>va9j%5>`*M?&#j=ej8UUq*^=8}kf&3Tm z(~{vxU4@)J&p)Kum9BFF-u@eHu9J=R{yy8tgI92>a+|(^v0qmd=lUSN^U)PRVF&?< zd5RnrDu_~=4|Bk6Z6|W9Tz2XZz_pl@qiB;?6$oea#g&Cv>O#q+3O$ZX<9M+pN__;< zOs+%6kXp|DYn!L)Je>zfoUFKdRhRXzkW5MtVfZ~mgYP^B%(C?&J?>&qShLr8AlS?t zhHS*)Ja&TlzNf`mwEp4wG3@VUa1*?{aaeRGc6F^XOf()&3iaMb3zMQ;dSY@E(ahXz zxCv62O`*3`@cc1Faq!*pct5z9gj}h~XO#CTiprQj2V%3E-ozPIK;&@}|`q?PJIb zIQR}nTx^y8f!1yMD*{%aiN0-aw#gElp1CIW5Zp)1oj*iMaVYu+g(={%c%alt4?Iq9 z-CUkJ2TLq?!zaYw9X~@@)c{b?8GU9N3Jk`&M(*o4Io3&9^V}wWiUyIn&?XGz$@mJx zWdPLaD>(3YFi8B_tfGtxYzWK^TRey_-zxzSKwlZ%0!$H)-H$-}@_lF_eZgQUXkQwL zXv>;1Y$N7*g#Ebmt4JJF=%^xWAuGaC?1?L&ZLXp0ywOe002e=P+9@?kO_{pjC#p=- z2>$vZn+B967Z^>kdwM2gRO4bir1jfdxk;?8^8M^g>Pq*ol|cbX4|I9DuUBw|_-Q>~ zPZ5s-WDEW7{UXj23YQ|k1sr~zEP(fp`8gY&yDeKNg?Sa}Zhg2rLM#w@T{K}$O&d68D z2pbRwJVijIqYiR-RV8}?%1%xMCHjPw`8_X2Le6ALc`zfBa)6%3pEomQ7!BNscJySG z;+my%J>B)ph(krshEcsAq42ghCI!=$nt4W&vniRfl}_v?7gHw@!2_)=rSsr(^DVIAW1SiBO5Mp!pQ}BwHzPHBYAII zK!XuiZc}f(7&!VyGnu&R$)T|_-h}opzO)$ztcv@5Ti;BD>w?Lu5WX}34A|&@Q)ds|2s4e)|jdP9W z+_h&jBUBAP83AU;-o9_S-H`|-d&K8iSGvmUoSNr~aX;S?xcjDh=PPuG`omBn#})ay zJsBp5&s1auZIj}|!9xC1r7^dL9mMsE6@k&6}4k;-pNva5d5hNdMsS(8S z$U`?aM8PqYHpZRI0?~V-4avUA*YcDBB?8~1vIYv{;2j@>BU#xn`x*fUI|&#+^y0{S zP2XDNbL?N}-tpgkA$)?IXvzLP9dMp&`X*8<_HG?oX`qotgg)9{O(_$>(@L=uA}2+S z=$@;0Yr&GKtIz2@o%Fp{HlzBsKj~ZZXNpst2gs)ZN&>np;o8)UD3=+pj+^{m4?VWb z3jMhdF4aucekxDcNPntntEp*O!G2IB~7X*-#0- zYfg?ovz16%)41ZwWAha-ZuBfSUXp`H3(;&bFU{Ggx$vk?A#rib{V>#g^dSJy*XC&Mt2d`aKNFj+}f#%i9TOAsEPAw)?^+Wbg_4aa0=e zB1AQB&oz#AVCLq`qcn1tq!M#Xob*cjrFM^om%rJf@6Si9pZg?ePczCR?WqfShb%1= z(AryPE}ce876XX0!K7~dYkA-ySo7w#@ov?N__IO_>b>G09gm>%PpFf-mzv*8f&c)D zCukTb00_Wr2QdwR1pff=umBLkD<1m)yYzow8i6!=ulMhgK22G@0ic8>POsVg!GQY&>$b{;U!!p+U?@2U>*2t^ z=|DjmgUKL*!NkFIxTMvJ#6xP35vl1f3K=zPV%|#IFYzUu@87$r>|!$b0-sk&u;diM zs24ISp0=u+&0$!*(xv5Y7IXiF3IS>MZ&Z>0g<1hd1y2iR(JZm!->i%$XK=oF@0OH{ z%^M8(g}kisu(ZVy+_t&v;iH73@bMQlVO*7(nb?2i27<5zLn48RO8plk{yABF7?k{< z6`3TRHp`PU3gis;ZOP#Av!|8HhO8k=%5(ct8ns+O&v7~NGVQo>3AGYzL}d8?0KY-l z{_he{D@q{1hF8EDaDkRi#tfe)71tbJ#QBMbOi^X`d>d`J;aoTva3F_(ji*7(5_-Jq zWh95RDiQp*T%REvz$*HOt`b;D&|tX^2NsHvaAz%UiH0MOf5(zWU#+ohyT?&{OibhP zzh4Y^rcO!&3wV=+OHSb*0mn3Z+BO=pM}b)FnY`_H=`@gFV4?p*`w_zB-?XK{@_3Q@ zM{z~ShzGaTL?UX1VoL_nj;0(TWo_Lrl?gj^8V9etSh9-bEMD*T-Ap#i`NE##nD12I zlz-BM=g2W&HC|4^Iu`9KI$(_gYuoDghUci1l zIdm-)cFuWEzByVjZc4g5^D4!;Hf=M@#GcT4WF!9%*E{>TR4M|hP5V%94{gJ3lAz^1CQbbC&Pr=-an@P6xMNR3+9ACEg; zzbxg3@ipvkW#2;hf-&I0WEcP}`g^yHW*nX{NDem-Xe4wY$Zz5MVc@D0_Za4G57`-w zVeJ&mcci}zkQ@>L0tx^Pz8f7tCG{97yWJZ2^yO{l`fm}ELBc`6fFA;YCj(Hu5Vyg9mxs+p-)u7&TkCC!@&M+A|#M75dV@97x<*pqihm+gL4-U`*S&(semQM zJIU80)$P_O(AMvtx;0|KfrCcEFO@(txI`GFFVue<1Q8?@#J|)h4B*&}1~!@v8=nq! zQ|dKg4+Pv#Yct|o77PY#wBR#GvXON_!63el-qkD*m{NeoqttfN#X}iP-?8lf7CJs8 z00QBEnwSEBYA5=tu}BCrt}drU}5d& z=Y!x;OLj%!z?ZIc`zq9u7I-*hLasxH!dfUe#MhaS-Js@xbi^v=tdyVA5uB1duXG-V ze}`Wz$ftjMwj!Xs=ux(5N7Sf`QJ&**A#1?z8#@ZM9zvmL;5DN>IllSUz~?S@{MU{K zqkeoiRP?blnvgy(ObuKia+q!2Y%V4YE&fzG$vhAw4QY}U#@Fk9e`w_KJ#2%9x|24dNRm2ER0y7Rne55fTi<+2E&5gDr z(AthL?|V~)%73jtD3I6xrY{X(l7IS#zWIimc8}R&mZ<;kmtuN7`+tHPEaq5{YoSOe z^k4vzt!fN30yNY35b%N|A{B;4E*PGRmNW_4F=UnCuegB-dHHXt%L16RCH_&W(QZd~ ziUnBee*Z{4tk^8u=lwptc9q>|;PX#4qa-z8Cb!Z{Ts*bD3?i)2i-J74zFS3G1gz~| zo&3$;?hX%m_HS%Sz>?g*SdS=-b3Cf%4Ep^v0<->FIPM9BP%_ntMpl7@hnT|DsX~gF zM4>33tieVi7mA1bj-(Hy8O`Pa!Tc3PVIfcc9ht-dOKIj;jb`FT8*$o{zUX8FA4e9k z>$n#RMZMAyOVlb|3z=~7SYK1`&$9;4I1{@E>aeo4nJ<9jUSp#3L>u)sJ=S2da-Kx8QiQ___U&4%cqDJ&+j9~cRQ$r-m zhXbj!|Mp{O$m4&cpF&&?b3?d=k7&AxB z#14nxF%$m1QvSdF>Hn=Qc?g6AU>%?U0e}aAcN5_AeMQ5e@K}sSQ%$==MCc?6R#h=Y z)zOe#){OM>m=l5QLZ6A{Tgtws(qkMdd~GS8$z-=oNb^#!n9Jq!IAMlIS)DHw3q^Fc zi(gqRl}kOG)zYkNf56MIhm-yslI2595*YW;m%ySWWwoSmN6GwHnXm zvWZ3%XI38tmJk#M{G2|v$0<{7{C%*(<@CLZ?RYKT{6P$jQXKbeWwNMve+s4ieCoAu zLMhK~z3%PRPbQvJ5K&8{X(8_t?pqZILoOn2m{u9{FbG4C!haJ}mp4uYm>LjTbWMhQ z)^tCp+JMrQEaedwW+Ki{4PU78%yPUFiY`Ns%{VD%XRbD0R5}+A^CM<_qGk&Sv6%MP+0BArrX6K%XaYKRd_(UDoI@5UijetpTa9KM zEd;554(<5C$ywW~j^nxf9BNv7_+Y8w% z#?=DJ2f~^O;a@+>U`65EH8n(^bQEC+!L#0zhUnjjfI~2vKcPpUgLTnI>G(gRPmp1J zz7WMCvbq{!uy;bA#P|E`G6fSaq$aqZF9kb9B>BoQgR}7Rah7)Om0g}OH`ZgE?#3u( z;R6)ORhuLeG?#*0q0`MYHd`2{yt=7S`=YjBzQ!6gQ-H@hf^mG(JZ$jW_1Zd*afct$ zc&N8H9F=E+#9a?>hm_j`hae_qB!ygM2TTc$3WnV-m z1CB%vr`s>T^hET5MBb|QO$x60k4fy^w>V6nqbgu$7|zJXC{!d;Jn}-QC;5=W%-*P% zMU$8>wJtPwCV8fYQ9l7g$&riUW#vXNbAVy=O2vq}QzN)Nz;O1sVq{ynQNka<2)@~3 zRG+C)(q~|#7;*_ZC{k{WlJF`@4m{#Kb83uM;3`@zt^~VMZk*BJDn@U%1htK}=&`N`Nvfkso?O?$r+6 z7@$Gkqb5fQ_c2_6HVlr1J69f;D|v+bIy6lPJexR0J~FACLO19DO^`oHm2@l(8KWFc zo&jA8SBeQm-MYzz3R~wLDg$=-x5QABlriR5CbW1tb0WM_Fm`J?G(iPMqTj4xOhl%F zRfPm1aMpyjEW0br1~ZpmIm8Ytdb6*ho2ME}_dSJrm%4;|oL|L;dMtypS{lN^9o=ua zwcw9cI`pPKh+u@e4EMdSQVhB$$q!em0EV4j9KB{y7cv!&?-34_R$(bxX17FrV+5D8 zMm^pJyOg}YN^D+CBjodLnJIk~PF)cC(H{UMd-xx5y&=fxqMZuZ=r|YRJ=NgHE6A{5 zF$t_6nh3~uRch6W#t90zzVG`0gf}<{c=lB&@O*g9{@;2&f7_8X1H%@d{^b{HDWQYa}hr*2pt1%;DmnZq0A#y3PMgwi1x zW#iLuc2Ke;zKIoEhve1+@yVtgSU=c@bGpYWr;@wjqQub`<4Nb>?1#o z-Nama7nEInC4;v#>UfEVP}o?9n&X)l@rakBhP*k{P~3uidi8f;{YDKDZfksc%fSs3 z*o)2FUZK!--(dKfFhYSMP{a%HY_Ltc+du)|Q2=gpusCu8^dKJbrW?>(+Xw~0^oTw50Qq+Li8egMh8sx@|?H}`-)n6LG!+oTBT`>YFCdL3=M4?CWDTSMN z3^d1SbfdV_hb}OxHqYAZA#r;qA=DYRAau*62yjN12wltwQHd@#jLTBHR^5v(WFI$iEodXYZmtS69wgG5eLvSj< z5Te%|c-5{Eym?@R;Oj1WV%Hd*%2kZv>mL3>*97nURf7NPJ~>+Vl&s2iO780cy|!xi zwC?;hqfGB_cG;PldcGTFnh~xKgR67AsW)=x#9YEY*fHg=ALH=)$r1RTRXks?Xz9x_ zDiNNgAjR%#G==GO7M@jGTz2 zDPY^7r;e%ANIklNcNz%A!=D*EDwMN6xaNdS$X71p ziz-UYV7FCG~b=O5{5L8MMPS8co`3?#$L2)Vf1x9=)72nr%So%0$@p z-`kx6dPtCX8O@4hNIbAcw5z;{51pDAhPjV z_T%L%^xkpoHYi8?qja3~BQwH2H&`IM4~P=Vm73gw7ChNC>s zHT$D{-^1#og3tGVjtYZd8IOy?a2<||qiAc6OX7G=j!Tnd82^-|={Wo;&$0nG0?+e4 z`BPaG!FW(xT~$$|&!l_Li^7rH1zL>>e-Ov2RWO{kS7xO%ch}1wsPdGqMa0#? z#2sC;caj6QYuag{pi!i2BbOJX<6zITs?Qs+a$N3k^{%aNg@qMlZ5l}-D(c>@`AODG z6FfuPN27jP#KxFcCf(qA(Sym@Hs3i*!(<#B(|fGEk2K5{yt@Mf?0zdW-fEj{TgMV(3_you*d`EsLFw(*&(dM^3PjWPrOK63R!V$bKB zxvpDc23i5j6fRy4ORVY{E=fj|#RL~guhMO|(VGP&$>(WaX3>}#-fvQjv%J$%j3~Ul zQavcVjm#t->xo~^JK_h^sEE@>hOXJ%@|ajf~8i&19y9MM;ng z>Zei_)+pb48@ov;;i-Gzf@H*Z+5#cto}eGGP{^V;QmzVV1>3)w@1Y2 zm~dgkBFWt;%r}zJ1mPafi}gf(5S(g%mcaF@{o6~zR=4lnc{-kCCCk8#%kh~YStA*L z_wyS`<(wY`qHT)c9L^&V%bsUxk=qa8!;am!93O=>vViZdO_`MCZbXbd+@8&^Cf+@B z(v*)S7Q;nYb1^YqlBjW!(Xv$LwOzhc=1=Ecy5Yblx%EJaW$73mVccjP51fXQ1B0av zOEmrl;qTvgG=8KOr5iIW#|y9Vf3?;-faan#h{>xy%yH`YLn|%c7D5=eCPo!Y%rsS{lLbXqKEPmbANqWid__M+#k~%jJ)>df&NXI91=J7vn{^#) zPP6U`ICMAe9c$E3qf_+S#LQibb#*B-dn!<)irkToT=Tkpujlhz4@Nh0;xA_`i_}Q< zH*->jX*b)x@!Z57orIv2*Q8ykX|iJ(v!i z_;s)x8m)zmFV?T zEDi_?pS7l0BoN09540D=dHm4GEL4j9x5I~l-@FR}Gyk9U&@KsPG!ncX=E*gejE6JJ zvEf$$||zQ6b3a_67*Q1uIC&Gj+U^0GH`|4Y>5*!U+^Q*#dYyBjj2M&-f4 zkmJ{*LWa?(m4cvW`xUZ~yX0%tAmlY!MP4|WM-%Q}dXEK+4@)J*{#ZJX=6+Z4Q3doQ zIZ*{XOI32D3^YA_q%3>bRQtY&Tl6Mz0$+HG@QM4o2QN;s|_9CiLpJANrs2=a*#3 znqiacS|XR$s|gqOq@gQTG>GaxTJhC7qfcq{GJndCKw>f3%n{7-{}VIQ&~~BoV$yfI z*6!Rn{l!18=gYa_W#z+1L}1tJ`-!V6+^M2#Khhxf1u=x^nadcNvQcv*x*=2D#Qyvb z_u)wvsFne#G6D9llf`>Z17{93CqqZ~70mKgRY)F2@=meKsDiIhw~OMF+T%;wT4k`~ ze&{9on2rL@e^#}0o$tQs+1B5!8Tp*wt(!%%+;3QAI^Tb{tE|8O;naD4|I=-f&HqelM4)v7&SbsgL*X=*W(gUM(7{L;*09o5}#E>5D;^>GK}k&|7&J5`q@V@H;QNUD96A zU8+$P;<2FV>TvMuO2`3qm-xjatJdO_G>H~q1l=0~88SKq*;=j|2_8C>Z+B$108b2e zZ_!;0nKJvUL^Ch$js?+(Teu`J0^wsC74d`^)D~lN{KwBwc#3_w+)WfHmTBUy>2Bd1 zO=OicIX>3!RRu@*r7|)#O9c0h z@mI<|930&W{twYjI-FOHC3nI-N8FLT-uM;2rSz-)qE$5^IIpM}LLi8W{Df&C=SXXq zUGue-P7)VfK>Z50d?cAe5*=({-&U<&v>1Wwm4nVOX`Pp)@#_a>m3**fH*T8%O07<_ z9o<&fReIG_8&|A1H&Q3-SiAG+2#w-;!*-Z&`9S>)@9Fj^ER+Ydpl{=5Z3Kqmd*w!{ z;b8cJ%DrJW$Kj+kmFxS@rb}4!(|0P+xdItmV?GgWoaoPYmMeSSCU3E?0+xKwU$3&hh@<6(V-> zk*I}qtV-32joxin?!n>vR~Y)8AZT2>BGoqHsvYS`aNfZIDM@bY}!$vVmFbv8uEo@Kh-#Uyox za}OSJraNurVWO9JCRLu_p7&Qq&-?5gT9Fh=dbe2Y*6HFekkfV!Wpx_IrMdijmfXP_ zpEekOcurSV1j3XmbJsFM)>zd-OCr)`c^<8VR zC|by^S$XuEep@l>@7PfD&E*_KkdCNja<(_;97-n4kIH%07+j@e}uDvNA|gEj}zLlL%j3UVGY`3~OpP}KO3RZ0*9~1{lP&|gJK@#wA zS=ONCUyukFs#mgL+eQq{v30URMmW|GlEsfBjA z4IrS<2Fk+Wzmg;0QA!dvB!yr9R6_-EOj2MKEJk7=mms}(QBd6{M%+T|L1%Ui!tf_M zsVVJYM?Q|A8oS%*zZPM3Pe~yKxLcUlA>eg2Nh5hTM{x-4eg4!k!IN?juN=3Jbu^VK zfVdQItyM(YJSF>~;VRJw`5<)Ou8DiVD&9!!KrbpwmUNmUCQ+yiepFi;hC{TbBaGUJUwVF;yU~nC+x#TFGHJNWD7hUEog|4691SaWE_!x_hv}j}{~| z^ce#5>+r#*oop8MV2+ori2|Uw{EAf}Pp5n}pO%Gx@lZI^fS)jqmIVF?y9|AwTR-0p zWq$D#DeECWB7+ecjJud5jZtt~^!a&e-iD+&y$rATB-+a zr6%7<;n*p@o#A}=t4bjf9H{gD4}p3-f?19xbfTH6&7K_2pw;_oTh5VOl2B<)LHjHC z0}!g!a7n6cI+ZmearVcYA?qfs?p67=DhXVIC@tnddKm;b@qJBHT*uG^w*Y}>Yz#XQn={Fr zv6{xV-Kd>+uC>qEcRhFSv!8v=J^#Po<9pxn4v_HPO>%Um9Ob8!)@{$i9;?@Q-`^FG z7|nyHx1J-W+nnu%RPvOy4esJaY#tay0zr9w$dc5uFiM2JYszkaKrDZP`r8-10hGW@g zE}Cbps#Lrc2XX-7|666ABzdME7a`*&Z;`^x2C|5*NRmWOQG+_MNT-Mip~_HKRG`hA zwauo^B8#D-&8AdTK*}MH0aZj6$s zLu7TQQYjntpigr z*EEF4PB68ylql3^2{a=x#`sJyTgC8GftrAHwHM7(UvK~|^$yb8txI0Nw2V)y<(3p2 zKcClsGY>4GaGQk-R&0Ybn&-4vyS^oMkR6tQI=j**NxL63#)yKRb<`_Q;TpyC!#p z>iaK5y|H{AKAR!*Rf`~p4Z-iHakwGBozK$-ijx?2;T+p@MiPedu#S_3!npzMN88u~ zXz}F=sYsFYh%lvvC*3BW90~40pN=EkXM~K_Tf*u4?C+)|CV4$DWQdRMMhE{0-;*$! zM{qC6P%Cp8FEVkBQ$~L1@Lc-xw$V667M=fSY3(i2yhdZYk-W~kod@$vs1h9iux6T= z?`6s_hHJydN_VY` z)~^M6C9*&aHxnm?_f&4C1zFZ+#Z|NP2k|Z4t$D6y5-vHiFpRs6W$DYE-g_j8?>e|T zts0|ZKP!U+CEPs{d+%mxDZdr$fKvln{t46<9oK)~ZpPWc?+?G6!GE5Q8^M3ye_w;a zA5e-uz{?Lp5#0nKC>KHD0|(&*Z-Ox(VGs23Lr8`A*kp{pn=9^@z~V?n?)f3f6CEpln{++SMu!s zh{F+xD$z3Y2{%@c^%h{6N6jbTGLv={mo27ZZ{TmsOg`~8Mj=EgBakKdVj71#nSnL1 zTt9m16z@P2LjYnJCn}y#&={d6cs!BikEu)Kc-=pSiXP`R+l>z}{zY0+9iFML3cO*kR*1uM1U0E!;ffSj&DK3U`dfzccU%Q}Z8 zQX7ED=H8`L3T)0CxIm){U!5?PEX|S;s9>kIRl-GWiJXh0U9bA^^gIzfiZDjKW#=Gt%g#@Dvm!`vAO&1E z5p>g7F^Zj|3CiEI<+cn;WK17>!m+bK7M7=AOc#f*k2&Ei%I(1nRSu@GMymip4!CrY zL8F#IeK@kB=1fZy3s&USnYEv7h4pnG$q)?5ad3j#>pV?91|+S+5e>qV1noFN|BHGk z20~C~|0n!CP!hAz5+f5aOcryk)fTGW*4RdUUnUN|n3cFf5qBIyP}Ue%C&`e0#b6Fu zvWcga%fYADOtYLQn}#R_+$@Gdw41Z=z&~;P7S={%=2C*0K&>@8xhz~oG4h!E3$+OO zs-fL+*g8!%i$qi1xYc@Xq=k~x9(WC#wS28^DzA?X`c-o$uf0n8C#ZOinVvd^`qdjT zA;e1U*?hNq{a)aidZ8}v@sW%d-er{Rmg7ZuiR(b4ES^zdl{vBYWrpkdc%#Z>f{M|P zlXY`G^exu6vG}<<#GVK`1wPl=vE+5#gtxEvyR&L?kc)iYD_N)(4V+QmQ>J_>(`FPNy=+x|R(O733gNN3H0B@bMdkP6gYEA@8fnTwTB!0S z=6na@B=jVIp%vBeArn1Xioowhda8=5y%?7Elf77u2y3%A9yT8Hcz!&K2{FE-6Y4~~ zzt84s5=bxRiLzsmk3t!%i#k=74Y52)Q&pghNzE|ZJl$~FCWb-A3$z!h9}~TwS(0Ty z4OtYRVsdzzvuX3#nzQNhIhv!b3yONXtYZrwUg(PgOZZP>f?s`YVxrk~&bum+hwe>#) zsO+nIujry{hmdMPl%xOrD0uz#FeJn&mAF`BR&-Pe=e2QFhy&A7+m^9HV`w7fv8Y-V zTJO+9E~pR)+Bf>?4SK;o#Jk;P@+H^dCuBdb2Gl<dLMARO6G+H&Cp zyc5N50UcJnlVI|T?f#hY|NQ3WB}OgpKK6v!$F=Zcfa5v~_#|=VbvJTd&i4@g{@v?{mYM!TKiB z&UHxZ_Cl$v5xWxtoqP0d7>4A|nza0+;3UFfgHWG@gflyYZjGhjESpLm7aPTv7nrfV zr1*=55Iw6+4BZy|P2yyhQ;zs*yio3TERz34Orb6fd8s*g~~gr zlLg(VinfN7*GDQmDoRYY2@CJWkvswrl}yXwAfioJED<#)#x{(D_ooHCo3l=ouLSh) zzRJiLje~OMGC*b}k57aaq=Bvq`(>EO#wHdxf1YI> z=WS9vNGusKtL50rnv>7{Xehp}vMOSwq-C|nvUWAehMX*YYV3@A+Vo3W+cRhQAugQh)+xbuKv z$y}f;u!>*JV#Wo)`V*;~>NlvXywflxKIqr+fPS08J7Id{GsHQ6UXP;d_s;^;(KFFC zi)dS|Hq4xYKSE@2@;Pp*4Dl3M`TSDKI6|#i&KZzPXtaylTSxGQR!4&aI4hvv5KIoL z5z?^eDz^fnB&#A>+5htRp#|>A9vT2u${s4ben88&6@|0;Jl2|A4vPWKeu`XtM02SM zHH6244b3Z-VS0{4+Ve}QHN#~yoMy&1>vKWG=u9E>X))HM^{fD}#~3@xqK#gz8J zGm$v>%8d_dTF2D8_T2b71HWhQlQRejE8J1=^rNk18L5mG%6N}MyM!URZ~*)&m%JM$1bX7e@Zk-mjfY> z&0+;=EAMVAseZMS_IP^Zpj@NKW}8#z zFBwVjwo{M4(}L#5#P_oN_hVv?s)6<|0S7+6CrtHqP*l#hSEw*Y$lRVWy$IADvbD7} zPaF@hl$7UbQdkO6bc@``U#OPkr5F)X#ZmFfaFkWjEzG#O<~}Wl6Z}p6D9M45CMBCf zk)}YGcff$bP*DfmOB4vEvXH327(+~wr>j0lQRY28NL80THAvRftyWLehD7g)>pPtu zihcfOYnf%HyK0_oZWV2nX59d)$Z--xw9Zp*SFld?+UlZ7^y6hb$P4_-Z&BnQB3YG! zOBO@pU&zpHQm3d@#Tz+KHE<5OM;wVw{2C4Q>A%zMM?~lOHl*SW_80d z*eaT~evApyTD4-AOPjJ&Q)}1xlylx#IBiJ%qej7vrFn|?{Gw$J2?x-s*4j)Nxe{Zs z*G~I~dohyYHFG``y1Z;bd7~m1g|m#L zsTdo#y{N7v;yLmBne=uc(irHuB(-k*Xl-`A;l2usl`M^AvsmY~f_|Q-ye#?^eB!Z5 zw|)6#-9L4DZzIT>h2J;q9@Tr%!@uv@E1vku`#@7|%VkT!2+em7!G4SLSl>TkdqbKe zuRRjQTbZA!q9^jTw|3ipX-!_lM|*(0(O-eg`D;RF+ZX$u`VOvO;)c+@y9Tzt{-g!C zn?R|*-Wb-GMSlz&5thb&gM-xOenYsb_g(N*{kKJq?A!+?8>9f%HpAFFwD=0ciQiqI*PDz{itFeSg2SjK z#ey;%xq-D8GVIAcOQAtAv$#H|4jD^$Ou2;Oq^EIs0qjs9(=P(i4$G3`f(@hid<@h? zU4wGkdCC%w7iPgbD`_8AZJmzFkjxPf zRz?#qryvn=X_q5SLoc)n>HHi(^c2SX=#eVR(pm5Ti5{g^#nd)BjDD<5`~ zUh7x5kEju>s$;Gj%5 zs`VfF1wRr2DXgJzj%(ufNcGk4)_3F}OO8z1+*9NXrf58f`WYAkTb%&OMR<>Nqt{4V ztdIy5;Qpmjs?Pj0m4s~5oFY?-)mou##bws7ob6ZB#xh($#_!iF$XaWVp)~OA9VX^t zy$3w!WgLskZk$bVy7p+K+xWBJr)Pq8teQ=A*wT3ea-@NzhQ~3zLh|5afrS5DgPX|Peqf8GwvZ9D;Xy=RloRkdFHRQQG?+(`d+;w3V&L4T;>RwUmr6oMri!(^r$lKdfS5$6CEWM zcyG;6rzdQ~GTs2C058XQB; zvo0Nr+b~F+JcMB{4mVtWKc4@nYCl2v2~zST4##+qB#mc#ko>RT3FBd!wyy1Ay1rHQ zVTQ5S>0zcx1mjVbMTYHBwoS#qi7t+EUB(!Xb0wAtVMx1z%8m>C?D(;j+0uE^!m+E< zbTk$F0BME9ZqFdfq#R3YtmYut-E#71o`o>BsCf{5GVJRsq6;tf;zjvN7)nWV95Z8Y(SkoX26tA(@_LAIXuE1*cCi_7w8Ff+J z12=!(k}kts`+aGxTaOr2f`p5yCj5i712YEaB5s%H9Jy;nG93m}p=y#%eG7@%s25|w z{z_GPCl}DY0mXdj{UOolic*7?@^eEK@AjZ1TE&1JR%}vLxt*|rMBhjbZ zAxiKXdv7!z@y!V4cjH?ifwvXc_$MWlyMF$Wyy8ycQsE|5xE7R$NvbR5mT}STsfRjF zJs~Gz##$E6TBV+zCQqXKg@}1ldyyY3pZz~;Rtl06ar^qWad|BZsVKt~U|xaP3n^{E zL^hhRhXFVeB?;XGg`^-ic`^(8HZDxhjJ6RpXpIIfVz5bpz>%X(!Q4vcLcKXwSo*a3 ziQH`U>sejL)$4iFINSf$l|m%d*rG5{(#yknJTBkcNgY>5UwTyRn6FF(-|GN$^2W)E z%}@zPs$bS2Ps}xHz$@%&9i>ZRsubgWfqi`lN%udWnW|PdxYt@_~b#- zYnov*59uskh|piC7SZZYOweF|GBRHs1i$1Kp#-`jI=MBb22|moZC6&Su-?!NDMw3S zl#33^oZ9AR?!hv4cPWK?ET9Dt0Lh+Ql0;5+$vvZNBxg*L*crl*plFnN%3sh4Fw#nq zPYYQ3ekF+v4k`YttR)>n6WM<#`Ts&HO%|n8x^9=-ZO%!oezWCVg$lL}s_FQ5BCv!} zMjg$MR6sLw2j(-5`^>4#tL(y+q=?=d&{5k36x=S2>oAwgnB_v4I zxR8vlrrK-hVHMrYbz7@7o<_7c?+{^0A`$srAw3*w8rvMO)Ij`+5*_xh5m|G4!$SzKc@99%4O?+K6{az*kJEPE&UDgm#hnM_T%n%ag6Qbwcko(`uE}vD}=G!)u3cv`~vlsT~ryd z^aNB&&!@0B|9Eg?xt+ibO z)SanjB5A1AX5O@KG)s(kDc8`lzzo%JRAf`5z=w_dw%DEC@cKvCIt#2S$&B?&p}8W87BCp;YC1=>*)%E__+_2;=`2 zr2hNiw~!X!D{OXDH-MxJK2f{##7xP!mHZoxcL|M{A}#CwvDy{um-^3Pe;*S6U}>gR zAyqONP*4SGyM!pMjf)T8GHN|97P=Ds5|e_R!=HQAVa7Otfn^E{-dThyFg&arTaBVm z;?{!;q>X*>oC`%XHF=hwe^Lrjf zhnq+HOi+v(9zL>mq8_dEu#1j*CoP0>>%ccPkDCqzpwX4Zen~UKtnJLF8{9c2gvFI8B3(umUM2gsiYe!0 zyi0~H0ODD0O3ngM)1WhgRJj&Xf<0*3krZI1@8;9eQOp_0qepeSH7UQv9nw0dfl$_( z(-2On$UU+r3>vUfIsk{*kuM6`M9H!Y0T%kY49J>WCQ`@-R?K!$orN|NTG;RMu+-M+ zG!0F-4S))+Py|FFL>ILvDNFeeZDJt|Y~lC;29)me>@j>EHjHeTbdpcvbN4@Y$u**& z{GNdd)gQ*BEQ7;HjhiEbmv&1$eL^K>Ov?UMDxV9%P_zGtp%AVdsYbV%>S*tfd6mm% z5yp_a)74PcW-0y(6Z zqi~B?Nfcd(cnbR6^0i^ps&z6@L`c%pADATU)dEpdkz#6owIH@QUB=+C%o=NoWy>gK z78#a-isn6u(=RrJL4-9cYX-ie^d&URHLO zqi_tuG*n3b+-t~FC)232RoPg_Fus+Kt4r{qEWr>$5xOPOz*wdr(&u5Mk%wVsJVz_i zWc)kTKE|;B{{usx>H(*I*>x)%(l{C$18TLyvy~?*?Z=Ir0Dj$aYLXI^CL(2?8Kv~rU*L=Yo z1MO#3wN)_vDP75e4pUyWCX?2eMVp#6pJv%s1+umROQwb{#a3q7{s=e+?G~&_hU)Ty zoVuFHr-{v$E@`7Wy$-|Ni<(~ESi+7i)pH#za9Va)XIIMPMf(p)=DOC{g>*pwO$Ae9 z`$Dn*b%);N?rim~?Og^^(l86W?gG^Vi$fbu<9Qbi2;Tv?WXAQ82s zbq!`t$^~~a`d~=vU}_UPBBVv``SM&n?+299yN0!8h#VbeSvR~K<#}Jd97CE8UQfz0 zonB9?DjWXGv9vLX6o5Tzc?*!^(kPhPSC}fm`^>YWXEd;Bw;uk@j(!-k%?%NECv*Vo z4$v{&TRz{B(-!b^8>g!1mo@vH#=|dk4dPubPSLx7y3ffE*UXr8{dCB0giW}f!0o>= zzXpU1kb+o3bOOIAk~$@Q7fmxonEwROEmDsZl9op&C6Ll% zb+w}9*~N}uk%Xh0j}f=n!#Mvi%0OljLl#hkH4-&Smx381_dtdFok5&)tqF}U$Q(cV z*N~#lkHC0B6V!2pQKZXxw7~ZrqVtt8PQPPL*MoihkB9^kNb||eVF#4h)v_F1Towkc z6lCOt3eu`>5%I0Nkdg>_vO6^$+uk%yhAw=e9GCPm;WE;r1Bq;)o8Lt#ZIR$Yb)#o( zv^LO^gwhmpsc!Z?_9rW>sQe_3N@HJNLaZ9 zo6!Fup=Prf+Jj@%uIHNAlW`zywS}+$1C8it0NK9-5T{@#)0lLy%qMWhxjR+hAV~0^@LSX4!%1a9E`Jz&mTnm{p!~mpPs!=(y=b=+;5Q4*9 zL^aB@`YYSCI)&Bm$w8)#pwB8^sNLan3yw(9#JN|ac1`yC-)Tb)j@=Hf7rKg`=aYEi zgmuXTkY38(1UI|&GV-HKEl6J?a!gpi#q>u3V{HOs_b1z?3iHYW)>|&*^>8IMM_N#t z(iT@B^fn78o9lj0vRE&Q`HQ{5Y`oHS;QsIZ^Hmi`@bT8qQw{q$b+cIu<9DB^Ovm=& zQ&%GQFpBnM!RV*u0WuW_56sTdyvo!`Azp5+^rD@;n=e zm|}sYh{Ah9p;Ja;c0y^h{3wlKCJI%V+YD(I=9&wz*bWpv)LT&KJ=m+Dj;!&`$chua zJ<07_K}4-ERDs3`b@~E!JE4qe_N~dS)|{}@ZGgkICu>Q7Xb$hIyU#WHhI8g=2g#T& zvH*Cs=MEshZiki#(RI2XT@8wtwae|p4oz0HoEP<*WcJ!^11YsSST{Muj@{d@e)T;D zqs;6bW6QM;%rPcP_Fby367RyZ8}a;LdrLyJ@>4Y|ldN-n(^{>(r6J|G8Vj1ble zX$_NdJKz92Wc@g7X!P!je;Fu9cW!Hd%fBwPUDDVv!ZL=iio?U#Xf)SRm4Sqo4Qx6wcz<^ za9W5Wcv&IgtL^+pYGvK^QMUhprrF@cHD=S~`8W}Y>P+h+=2Jit_WQx_f>+E^+xoe} zzc}*);6H3ZZWB3jN0qqHRO-Pm<|fdDP~tTJg%G0k1la4yp&=XfzzhGPML7N;DA~gx z8Wu`0Z)XzP7t}DEsR;yZ{oy~4v)@UyDZRk@1d^vqiME`89hBN*@okBl&|CXmp9G&F zvY9zVZ5K&w^WV}`M>oQz)g_PzFsv1G(PR%L$mLYBw3>}^mcrEddQl^vsFEYO!ptEK zQ$%@>9|>A0=2*B<2qITMB7U5ke?Y_;rJ{(W92QE&9P7!dZVcN-N2n--+ev*Bb58qqI&*O4jX~IWViCWN@1Q z#7S!kAbx*Q4$|p@WTveZ_w)-2h8~+FG?We{Anwv+Y!arOLwW=}XV0-!53{_cavCC1suPrlj zBHi#DR+|{LiotuA%KBHQOYCyzj)5siS9mj7Dm? z-b1;bsq^Ko1X}cKr?{b!KD)*d3HX7fI~U6)DvTsnugEq{u(^Kf^#a|<{HjRYfQbpuZTsYM z5vwsQy%_uRJc~OpT4~hTVYN8EGaalcF50aI9j~ca+wMf{p`!AP?>uiTKp&+4zer-vmq|JJ8jFN zZ((sOLv-|A8WVE?09Ofzc0`*L?+BJV;M7(Wb)t~2M!2{V`=&avuXH}VBpyESLR>-q zlSlmjw#URL)C;Fzj?7(?oJQ?iKBjcOH5e6#h39i&5@TE(nL*ykNvebh_ImsE@kHgsLG@=9Ml~&lF>l1stWF_` ze9y(i_#fo~LlEW=Xn_Og77-FKgoMDkBTmBz`kt1O2D?kG;n0Z?e6uTlPc2VQi}f#v zRRcjR<^Ox4F~R7MoGCK7cipcN%htSuA3`A63$=O|8(Zi2-u$0r+wa zZ`V#Vc3YDGZf#iQ&E>NZeEJNAOELP>k;^HEk}^nX)!JgEL?{z`3*{v&scbT^ia!;r zO<>{LVm_7VYFCN+q9Q+yt<(aVnPlEh8I7u)YO&(&y`0wCyuTmywd!3hcYlTMATjQ| z-c5@M>@Hs+*jsH)qHf7k?yR#M$m6n)01D7;&l*YP5|RFBwJs}?X@NUy-?NWYuq@UQ z$>ot*bn`6T+gvww+(}@^VsDtMr&^SArB5w4=DiQ+y94AQvc3-GQhSDiYkFS&++*_D ztTt9|&4D-cU{r6zt#>JU3mio(VDzH+-4kQk$meBPoBwmfg3yPb)ehw6u)QHWEVXDt zhIv9hj;#f~O@3M|JLr96UTiD);D8H|=Ap@KQ|tz$6o;x_Nm6@vwMec9mSFO1`c`7d z+vrBqGUmFRnkVt2y#TZFfoW4bCI;AKT4lgfOB0hVfr~qR$k#$P0$Qv%B63q7koR*sBD&T#9D?TPOr^$V{|mx zj)-+^>Q~oe>sZvRy{eoRU1#Xnj7Yz#d$2lZYq%+4W*=yiq+#j5)tzK7)O@LCWz0Va zZW;uhaaLy&m)kD;3yAnf13qfy!4#a*X2({lBH>ud&(ZA1sv0=?I}IyP@L1r2ciz>> zd`S)>$tmgeTg0V=cy8n6>FXaBl=&_n7S-kc(d_qMyW*5=;3WeH$|A{F`ZO?RVcUwm zO}tjXL-6Fu#*EJ(08QwT$}$bng4kpy3b$dL?6+hp9qopDwLtK+TuSqer1BUkZa|V8 zi4o$hj0}>6FRr#p!OM1@KT^EeoCnG=UFUv*`=NI0mDYCSct8CmsdviTt@h28ztZ4a zp8%7k-^9)5wsVX3+fMrJw>y?k=t2+q=;Zp3^(KWqPklXP!p{rXjj1oI&a;8iTVmvW z&r9CDAgZHDF)`___0XG&alE_B#_xA;h%{g5#h-Q?gI@Q^pWZ9`2M{r+cd1SEQ5Yl+ zXy@pWJ+@%4D?al!L#ipo* zB2iKpXBZJ&FngL$e1QAyU{GCC9q1%F|>pU)Y0~cxzY=qlr>FJtkET~_{rrg>7WFgVd^R?Ioicy zv~RgS&?H7~fZ!!cBxr#VLWDb5X8mG{4fhc2zm$ra8JcOO!iP_?h#3QzVNRx98&V7K z8UISxH9{~;=09K-+W){T_+}FcnfY>+e_)oZ3sI|OuVJ*b<%BjM6~lR>DwLCu#~x9H zZZcd^TOo}fd&^{q>sM>!oKLbQ?3vX}DYCEA1neSZtFcsUjMt50mtjAvms@NHYP4y1YgZdwwPr2>_I1O}Mz=?SogIyvgEsKk{l!s@ z+hIYwOv~#lO-7m}{D=j0sXxqnviaOa^`AM1n~Sj%W%Y?#t$x;`w)f`=whs@B*$%XC zW;d{8R>1qw(8Vs%gL)P8y5yNkB@!nC+9YLSaOkT+m}k$Gp)ryQPy(pncWs`YUurNC zf3O|<`yfl_{$!!rK>we&=lk>R*?|FwfF17Nyl($X%rXs5;J-_ZOckNrBTr0wmZxXn z9Y^K_i>I!OFZ;lta&{@}efEs>SSdE6im@?^&Tk!_lwE|;Q;(aY!PfNrc7kB`MMU&= zKe`#iyi9TtV-bll_h6SMQRJ_W0{y^e!qg07ziR3%(HwrOY<|nGLpsL*0sSQEH>uEL4e_vuw!h0d&xVfZq{NZekfE&JgX%OPME5nSG(xnpydp@@ zEy_$mIN7eirG$pQI%W)QrNI2*7*W z|AD!?W|}Z^XIEE04_CWi9s0??KHXLEw{_hV7BQ$r63dn$g?qZXqB<3`c3kYZAj^!o ztLbDfdG3X3GUKQ1nOwq#ZZ1HAN;FN54Ekjk;^hD3-6R=_^G;bwY*lwVM&f;OJ5CV^ znVx7e9qvF3m34O$EFBjR+sio1{S?nHhx=*%neTQ+@ zXN^>R)rs9K_I`om0y(tqxiowgLCtLL{+I1)^qKCHMtY~$i~MoNx66jFXb{(%yGpos z3VJ>K)$nMEIFN;O6Ve^fAucX}r?+_v-*-2wVZYzYE{hLMMvs9f*B@r9CeF z8hA3)lDPP^G4lQIwSQFMpFf8!^6$?by|3vrfi1))cf)#vkEH5e*IGMgua%KwJjdVZ zf56FObap+1&}r+=x5;86*v+aY9sZ=iGT{x0$WTaz++&-Ps;8A49Y|7Jv_znJJ||Yn z$b}ml0@m1zj{B~CWy1Wbq)1CJV1x65DZV~O;$rND1^e8@a7ZJ;B9{R8d|WBiv=JW7 zu>WQ534>7n;s25HH`c$27$FAh3x_edlmG-XdE2O-oO8tO!5N2CGF<7^-)l506cK96 z2Q%0RC-M|pjs~Ln$+voorN(CjiHn1I_)&8jb(@sSjbkt>v?_T^72C48k5wT1*476k zM^mn{B288u%bV)eEUm?wPx`pWV)Y`VP>)qNwG66eTD&62p7q;pj`UwHt34Zj>3ZL% zY);}YZ;xvsiY-lGQ|)#d8O^KM;5Y82S`rIIDCZnm)@Awj_p#{R?*e=cV%Su2cWswN z^nRBu_;C-<#Nd;Mz05jX?jtxCwoeJRT!#*hm*9xb{dlYdwqR?2GweXy5LR>Dnf8NqT|6X7na0mM_Q_;cihc=1f3u(t!r_3Sxub-pl z>6blVxiX5rAwN})e811;+6h}=~GtR=czfY_q$ zn{@kaYDt!{f4qgsi9@D>b#-*aM0cH z=Av*mp?6qQO2Sh@okQ*FDzxQ`&ry`tb>pL!L~-BiW=rF@5pXB__ut%y{k+e8><|7o zxw(bSw~+`YhDZ2fzj1E@FS#isPBJmvU=zIO_P2NA^n`n0Z~QbVciwp!1|X~!rFN3g=4rI2vEBEryAKuwVn5L43El zP>z7&Q>QGcaF}UNM4@f;KC2{TvpG5<9y2_18vsqvM-<)w7_|FiK%HZJ0M3Q6WJJ~w zp51)Bv33bQJ7#B`W1Ttt3jvQLZ!`BRM|`1B6t3RN*l$GX;HbD=O4QS#;2?>>rH~LZ zG9a7x%O3gdYvd>Xj5y=g66{(^E<(BzlbyUan93XVvHDKnz`ETD1)S0-r6O7K2=F0O*7QeoQ8@IGf{s)DxzH0|Vf zpSy!n$v>_z5qHF!1@rGx?;7A8(1 zp&tCVv?vx*K`11FrQJ$}57=4Zsgsy54x_QCB3PwcYHJa0r9_9+aS4NOH4>4^kR0Vt z#nsm$nCc$XbZQpFEtry+1cE6Zrz%B%gBA5`3^fzmgUc9o7?o;wG(!M96&&fO2F|bOZ12#8K|Zx={(=bk zP&!pUf8=PM{Fch79?6w{LemsX#40zd+QgWoinr$IBnk4?nS?tif)tmt3v}vj`s&0x z2g3s=JR8LRoQnPR)$5g&Yz%m`*ZerSG}K-`h{1f zA9l&IanPXPTSlcPZjJa&jqzeZMx(!uql7_iq8H-!(IDovB(Vf=(NruBpZ)zvEA+zu; z?M97p%6Q=mLHF-)fX;o-*Nd|xoEB70b1_A;rjqADrZ1e3Zi+oPv8+Cyc-MIQxZUG5 zy*8yymqZbi129q+py#mOM=S4ucKv}|#i>b6jCr3?ixAwcn{XxZC&!Y^yK_KNDl8K^ z&SOBwF9E*;fR8MLhWiqNdHU(gt%H4F{Zz7s8}$hxOeVyzM8zAoLza|g1s%*oro z%rv%p)D5v5L2nZc@sWNCh2=i{%AM0#P3NVVX?QHN6g={-@>Gt04#&sQv&{C%J$qKz zE)pUXyXI|c+l+IR+b38+sOKi{zdY+0B3g7dX^)1qd{{TOjdsg+>eQfK5dC@^a~tbO z=t5ly3|${regAD{jcU_^WufBdjkM1==E;=Xgo{P@@ReAuu)0eHE|CnXh7q`0kA5dS zUjp4Ho|Gpoq8Nr|AmdJd=P;KI&u*#tS&QgvxA}UlLfYu5zx3k0WGHE-3eL{y=4D#$ zaH)67e>>XNYcc~(aK&QOGw3^-!c`D;H0_46oH(hlXxnTl`KKdE*CKJOS97A<^RnnN zY&PZ-um7CPr1(0~B(4%3TSQ1U zLC8&F>w73X{@enLqR6=k2`o>_updQB z#6S}wO=MM;5WiUjZ@U{0PottHNoZ;8yYd9UUibXDLd+M}hNuar0v*pzGecmJ`7@9( z6U`Lu5xt<`w5d{0`j1pNIe9YHg1FP`0umEVjwFd^m`pm7J;RzUJuY}^J`y5Yqrz}S z;ixD@hYP(U#sYH+>t zqQvj`2QgnUN&X#8dgDi0@}H)>>|gMCP}$4UK6@QTW^F!EI{ri2falGoxXJldr*k)) z+41320%yx_OPBpin|S_GFc&*Qx)thS285tK9{A1{uwIM~=F+Vs-|EYxLLcW}DbK;C4Uv%k!>0H<!}+0ccci8+a?`NbT5gfz+pp#-h+xtH@!{Tq63Nzj!X zVA2&cPVr#_a|j5ifl%ERy~Tv?QL-ZXoKaF2pPz&9$J>*Y6T&@=NNcf1g%w>R6G-Ig z-?K!-_nh6MV5qVF@Qu%~a?yj_4+sh=6csczog$ zQd`p4dMhfma|SfN%depc@S3&9V}PZyITdu3pti7Vr5Wbh9eMULSQ|7}eGsW)))zs-sUM6$WJzFNN7ab@QbE%Nx2F1r%n4hzl8q zOt>(`3L@AgB=k=bJOX&X6WDfzTSNRA&FI(2uS1t8!qKX&Z2sO~eR;mcobfeby&~E2{F{8q2#IkiX(o zbZ;vlk0Y24`|+L%gY+wxUi|!Zphu}E%c(q=0MnD71I6W%P}1^sCTFWP{l(-^E!J=; z_{xc1c@v4fG>4+b>Jc(+o*NYUPPcj82fN235ac0Jd5(D$NK9FqfA?FW+mfnQ>!S&k zCa!%d=dH86gmJL;2X-8_by#X;eofU!-p_FBibXwXrZk#7cX}e)+>Fr~G3t+La&EJX zKk{!8_$9W5sdhK#EDD_m@Y~`Z`eS^fUTU;y2{vzUS^t07d#k9n-?d#A3&9C4#odaR zLV-eXFHqcFi@Out3GVJvio3fMr&yu5Q;K`Z=D+q>W6ZJUJovt~);`-KhdIm0FS+06 zeeUbZIS!N8-Tu+t9Cza9P@qhTQ|E<PS`8Y)k|a+-IqX5_!!?pB*I@b>PWrKJ@FJotH`L_uS-q{b*ZH z_q#GXd2`o35;|pB|CwaMlF@BEjeW4Y^?A!7z+vq!8l`ecXsP+4S>qfFr_jjw4+8Ld zX2RgQx2S7@N?Tx_+$^4hz zhwcySea;NyOC>k3*3ONuZ+r@q(rsDX`3v*i`tl6W2C}4|)$3oV>8S_| zK)7&+?Rkp3BmM$+gI6J>2I#RG=X5utoO^OAFCqPb^O(>wb&X z3p)ZC!$%LuG`%?wigUk)D(q3XR(5CWrjO!_cU{aJd@4>x_{R(+_b;7@wl!e*3B za{+{lU^^=!C}#+aDqKe#Lyre{0%V%f;08wnLRvIM8n$zzW@>;i<7&S?RQ;h2`JwNr zBJCUziDr?#W{}y=vDwZ;y{N)a`T)g;dVIz}&CkjoTJ_@dm5NyfNh+$Kjl@UBv>Fvd zSUFa4W_2~2cK!?6FI2vz4ZQ)-l~C65!s-YVZ#?#iPkg<_^9F7AM01g`F91fs*LlBh zGMwXt}NHuy)LDE zZ(Gh!z>yQe_Ph@xdkyG|u+#@V$Fu$p#m^$qU4O;?NJYO%L#OQAhwQ+9@llfheH`p< zV>AMvH!%<~ulWsT`b~~C;@QuU>?Z~o!Sip1A`qY~K~Sek$XvDsfTTt^-D)P@k;V}P zVV8aj#(q?|$$6HvzbsZmN=rPFqKN88jlUFg64Q9Si;JMO#yK0^2~7HXzZk@|%}5iH zPtLq-CC~k!5nXJBV(!VUWSyJ9$dDnQiohpJ2^9;IrArCYuGq=2YA$1N{vyRZ6SH?D z&EVkjil9yf)|YOE8_7NFr>m!W78}E(k?Q@E-bQt^IL*~cv-0r?c<0psm|Xr%m#CUw z1N(o-^VjPTDzp7GvtnZ?9g5$jY;k@Fx_$9%s_k#l7KZCF(GxVl+lJCX-LwBHRQDg|^u-Xd z<$rB5uf2Z}Pl-mZIzugrzS}SzO!N4f5*Ee-5$ z+{!`1;h&3muXI26$#-&sn?~InQ&z|C?VW5$RTYcCYQPlBm2EHdntk}=Tjb-*e+N~#XhJR|F zE;=s;I5>PMpR4zLuXaVc2X1quVfWWx)#5>azKhg!J+EPZ8a*CojPG8%FY|xdnZVOO z&>Q)9M~>v*pGCQauhlcM{>?WeEBFO&xd;C2j|V7*ax2%dW34M*eMO!e@r_ohkQ!%@ z4QkLGf~VLI70%#p)_fo~iWtr+G$fwK7+IIP@3mv&ONc>p0b?Kiu;B#t<|$UhJQ|VM zc~A-$V_QTDM-iuL=Zum%&A+*A90dHDiL42xfvGNuH)*K^TMfPzkq+Bwn>ix4k4&_s z_{Ell>q2XBDRC}Zg$U1PVv*Ih&kwbF1kcX7>V2r+a2$>>H6uVBlM~2v!7^tga|scy z`ZOaEW5O>g(UfGnL;|woxR*|Ev)JTWqCJPDQZEzoiwl^t_&ephaoy@{3;w7cjq{2* zN5e#oPzbc;bW1NNw|Gq1t6INf9@od#;TNB$z8BN*#tn?;B4dd-7l;s=$_kOs-dDar z8VQ|uERG<%VX}l;D+CjBaOofLGrkw`J)L`Jg-M!jcfnMCaz<)g*$vo*r$4*TrlLAra@br=S<$6u^jnGO`T!=aaoRF7YV^zJL>0uI?q zSVOJNB0wRTFTp4X71oN8qMvhqsg>~)jN%2Ihd?k=%EkPGRMXnkAaoEaNkx=ttiFbv zzXO&+Rh9Bry+3lCnyNx(GUQRIp+eUM*e1UR$i`7fvXR}Wgy=_g57gE30lzD4sZT@) zD>Z8h2`mFKtBrv2%l)LcwGoQdCPWj-)7*L3NkZN zO$aJW_esT>^O6nr8N0r6A(fn6e?MVOiWJjjY6*&&M7^hS_9!pS+n5M!x+#aiALSpk zW9)d;aZoCnRYQ?~ruXyRLW6}}^C^1vkewmm0xNVA96{EhATXCzvd}gQW}2g$XKwTz z?oI$`fbMJUdh8oA$~vBtAgW1i!ut8 zl{3L$=fb4ULt4R=SylhKVn9$zvRdXuYH4jLaMD^x_-NiXb%;PB)=Hc6fuo0_iHvgH zM4iZNt|rdS!$s&sVaZ#ug~7GP1Jm*|N83U_Aw^vP(UEC`j_bE>*ErhKQ!A0I#lx2f zG||6AHax4V#og{r;W;)TR2>9c!(7#EYhT2Le{Q@m3;~wE+8PA&FZW3`HlNrXI57Hb zq#--BBTiWd?vM_ig|*cB#oC2-*#EqJ=boY)>tG%*vUUWkX&Tz&K96bnxw)*=n(%Sz zTpbp?`(VJAMn7d*q)ax$8ZgmYhUwxpqC3QDQ7kW^w3ihuxcKq*J#FW6}lG$((4@h|0^x|ui&o^JICEcj&K#$W&4 z5H%581Mu8`q3ql#&t!OM7k2)%m%ZkTEwrgplOKTp@>^2mLv2T{s{qGG5=A1PDwT_S z;M4sdk&T5FW)4Tlp(Z+<)Q13-p>TEcA#H?YUGg(oG=xupIE@D&hk_Uyi^P3@S~q8@ z{YMbes#hQ8<`-2!bm54yW-u1Um;9)`Cvd0VoN9 z$mxL~PY~NoFdHX`^VJwn9fIxzPgHA<(FY(zA&Gun2AK5+)&(JK1#ymoZrp-}f88MpTO0L`kEmY8*L?`EMEqDcEWvn#jz#W~Gr=sL-?^b4^3uy$T#j3uW;P-pq4k&FC!hRbL#SP+ z*H?hhJdMAE$QQp8I~c<;U)rvI?$4fR26T0~XRM*_>T6Ei;OE-iZF!{oA70!My2B(1 z^8&|kvXTm_;b$j>ze{N7NtgYqrN%4tAPupbWOT-Xh&$N|zczptdpR;;g%y1$>{>;RacDeI zG^x2>RlYtVaYC^z;xdw{1dDcDWboFknn^sezq;z%BPt?>01DE8IA#Jhln&WxVvG^N z>C(3vS)jQpqAMp0$MOBsEHS1g*ce86QSoA(~VnO^q{-OM*@7*Df7 zeS~5&hf{~J$C|^upSy}0Htg@GjZB1JXq)xVUvt>NDD0l4@^7XlL^|nA6~S6ZdlQ?f z^RezL0ha6&YmUJ+ZHIY2{%Rqery%OWYRU4)fN!=VA5JQ4rBk3ZFNm>wUo6k0_w~%D z(9Z`DKcQUo=7r*b%0~>=jwd^?{$|fkNTh%@et-1+lX?K(d6(gm=YBa7p7(r&^TOG6 zS}uy|@U04m*x7vCm5yca-6Xcp?ZCzz zgH<=01y&$oBiZ9iQ8yx=GUW1!3K4wY`)KXpi@#=wtm4@RhcM0b9o_g@LQ4=B1$F;M zi}tt1q^Ew5BlM%*77V7B-iDcY9tKDrL$K5oCKq$`0DsSZx#pH6l$v!W-d%q{VH&{k zt_zdSE+9@}!eh)-juyR^BzQ{eWHV6VkfJLBj-W^h(5U!Z>{8=@l^No#$MLk^ExP1P zl;GH|jaC@kxtY3`diR(Rp%p?$)@C)pMNyv^_GO#qCPIq&qiO`?+K`MA*u%l@7+JC_ zNig0zmU^uWRo5$`3uhWsVVFq_mDnRQuOHw3J(J>dZOBG{)FbeHjtOjK$ZYK~@xg*y ztZQL{L*z!z*uOq0)pmd@I#B_M{c{HFXrCO0H(9&M?z4Pa#He{FVz-$1Pr56?zsu{t z!F0M_nA$wHhVgev*gL2EeffoL*2W(tO@RbxN zPO6cS_ia)A>n;jIWq2-F5hu-at;`pU_Eq`XKB_l!-|WMD$E+G*Tx*3A4qiwwQb8Fa zHG(n>UabJvjS9TnhxHoi80p+95LfzSycZi1P>L;49x^B|dw&Gn_f_dl4rul~#`E2u zTH0~iYR(_?i0v9ot$=A=MZUCn8u0pgt_5T7)eYYP8FS z9D)CCj{A>O!@{0Cwu`*6o;Sj2HTR+vWq-gN7Y5NcflDlQ0{xKRI z?rLO+s3&!$j06o)p^okfRe?df{x+^l@Mn$1In=D}*M(A$b1mgsT2OvJ7hz|9A5*Fwvil? zP#r51V&fM+CdxhgQ&l%53)P;$hcevXTrPtGiVzRQEntBNiBGc*4TF6GYX)MChhNz zOAxS3KluCJmgRZDAHvqC#6rUG3b6<*HZfXeS0Oh6ylhE)KilWFNhmBi-*$d*cx2DH zwIsMz*efYGTPUSyEa=1_kf8lQ#B#`06!3hg^G$%q$FrftBj>30xm~cYd!x39?6}}T zi(!;qsj_YD*u8;%wSHf+Galn8SEij~W!TNg^(}?L{0jF5p>ivw^p^lqL9rvLmimt8 zQi~o*K(9)lXIX5!%|Hh6-I;7RF*_Y2z6GKlIMr5!QJ;Y{R6KN)SkB^9)V9ehk-=7c_}rw&37pKDjrR1 z=KY@8J3_LaOD((Mg=svlf~VOGg5#2J@28S3kEorVIwX5MZQp;Ct~lUdYMJw<>8Dt( z$L`D*{KRD5P{JJU|Fkgq#f<-_@Cj+W?+oO?8=Zo3ZH$rvwweaZ)8(VQBcByk!`(RD zQr+0D3|Bk%`uP0attV-NQgG8&3jZ8p9<*k{oaIR@57Uma!XZ2B2 zO2r*nEtPL5DImbowY=H9iqLpSg(*1Ee;P=}bWR9la?zQAkV|1uE#keE!D#CRO1m>r zGN5l4D7)eTP=`zg;V^SAnJ1tonKY)WD$J5HrV{)iiV(E&Uc%y;5ao+^andHMqtA6QZoSq5+V%)+#X=^(YMg>zZEJzpeVR=*iTg zeKVi%RChv2Sn3V$%ti4fuA3?~M@UOh-9@M2(n3fA%kwGkjVI3-yts@d7W|{jwGTnz zA{vQ;`RhEl#So7|B-4hnr7+a$t(CQLgV9o!)hY*bRlim=R4ru-DTamKJG@q*V5I~x zZTPEcdl#-sBz8Qv?#>U-nda~&SIj#&Vyh%$k=x}N}{wv?+yjeHF zp8l>{Bfn`die$-+ENyu`#k)YmVEyh=Ytjny>hGPG!{JErNoHJjJI~1mzkYb=s|QpeoEv2hA5-8#Ls_<}#M6osbthma*|3t*dY+wZ+i`MlJR z51oENM=K*((b>(HLl;MU8~T;&mPY<3BtVsb_4P$9PedilO}_``@(rhkcdcuxlVD;J zNVlRExv?>7v!T-nbIMkLb6pdW%S;3?!yqrhiXu`dV-zoL_3bi^2iw#S!Wiy3Y4un> z)e%$G(BCc8&_8eYO`3r3tfF`L6eNaPW(+ZN+FD|jn zds*gj()qepFR6$s^`IenWHCUAmIf02j;g}ovngp|wq8>jN1Pa9g@NK8Dw#B{3Vwp< zC!^#M5iiHxXxd^j`Z>mKst-`>$i-Hx!l+6ZsclSZ=@A6TiIEIOX2Td1`-X7jD2|0l zVgjXuQL%y&voRJ-ZD-r>Dql=###t7oU{19VCnkzAnNM~LQW7;1~H%~*GGgK zO~@+{{uLjYm>E=PnB+v4kgn{WsZ*Kqo;i)C0FUrCeiwojNwXq?=f@c;o1e={sAAD|B(OYV&U^Uox$e#dt2V%CTw>du<`Qe_TaTu z<+yLwz4xfQaeAgH*o*@8;mV-=Q?Duds%P~(`)P`o$^mkwkhD_XtI2`{9>G%a~!xKaKa30EsZ>*qHE`s)p4uv%a6&YqKBT8nW z9JYu^jp%YOid6^=|DaHy7p6tOJsa};BnRT)?`H3x3AETH!%Rz; zV!Q>BDw`GJJE#u9HRJfQudNZTL`ZO?p1V3NY-%2t4+!d9xPsSA|2%pQzejfV3KlXX zA+eUAVPQy+(=)?aCze!t1Tls@)6hiUOTV?ajD3?`>_Krv{!U^p5X`nm|AR<=jATeK za+h3HXh~Kz&VdAyyhdh++tU0X!8KwQEqU$EXZiupAu-8>jOj${1_;`Xi$BVd%OGskJ3ob?0Lu7!xlq6kJz?jDHr~lVNw(QRrM(^a++v{^QAIFbIev^2WpU7d?pP$iB-M zkFnsvJWQ%xNMjW5-UztfbT#74xmcb9{K5C^b!VnI%r}k&{TK=~Ct27?Ed0o* zz~3)0j*ZS|N=T7CHGpEk$&27S0Ep&CL$H{zMB$E|W(q?~z5aR2!r1kuI9#6S7)M96 znwVn5tnZw*jtJu0&Qr|Kz^W7%y@FuMJG|`hUO6wcHN+IX0*;5}+)1HP!R!yp14LgV zCIKhg48|tFpyJPA>;i*oZ z2k8o{KN8rv^WLpn0=?Vmj!nVkI5}Ij$)q%824O|f4abvBq@>@Z+^f4>jwmfxr;$3} z?RjG2*u;CcR`@Gc_F!1N&?@oriXH$Dcm3 ze;0|P$$aBCMJF9SmiCo6=S}tjt0wnM&KJ>wtHD*mN4G(9B|KD`Tar`T7tx|BjW|(dNo?pN+c^G&QCdr4O+9UCN$%O*lkiw7F3BK>zC> zEo`@U%Ahm!5bR$>qly&QpwIx<<_1d{5pehUYu90mRmrhm)Sgo(=-K840iLiHtq_6W zyoZX&5uU~bh*XDCl=gaq3v#FpM7r>IIQQ4C4=~sYNX7L>{?~-{|Bm|p9m(m*DUKY3 zO(LgfHNG$y{i+ETx(``yv>tqMdzN9F?hzWRrsv5Rp&fl6k%+2L%Ji!6LQK;hV0K)Y z%oTw>WDmO(%@$!qYU|oerm2=v=T$y4s+W9+jHz-DwVh^a));g#oRGSIS+r);caG)1mPGb_$mf|c8H~g5*_8od$uzRjs z_Lm05eblEZo^DGLhr&tx7MF?0{1-`(X)`s~{7E107JU@lT9bX{N$?9Dh;$+-7?~MHwt}Z2Ok44&xgLaZ0`{#Y=IlC% zJNig+2*t6=VUlJE#qXAL6DiTuGLm?ay|&+dRvpvQW!*QQH1OX_DUESa^kguoqt__R zUSeagFy&Mml2;$}q$1!FP)kveK@7c4Rd_ASsydEYEm~<=ueUAAP@(SPa#=pRNXcoc zNX}6|&!&Et&N)_FD4*90t*ivgu4-XX;KO#o)yQ?q%6JGjT(6PJEC~7y8AsMEtR~7! z9IXCa#0nlH{D<)T-&+v;uXs?MT3oB;Mih$YRGfz2lzCr>WTP!Oag*u_T@Iy%JP*lzp$pd1gjji=VI9)^pWX07K5ujFH>ad%P^f2M!s=S__Z^O)58LwZlxB94X91HGRIjL^vMI|<~@JqUJl_8x)#t$oVD1<`r1Q*JS$_D`5RYFk*aP%ZI} zwcn7Br(2+Dpajw|Gz24g19iiBkdXZ%biT+qW-gV1=V4db?ZhNwn2Dcuds5gqTmH>= zUKZ~D$!HtfZK?5QUW0`T8$nSW?#p{Z!P^TP^_ikYlDNseMMvatgWrY&LyYe=FIRpAwz)-!t(j0 zI=Nmgnh6~@gdAls4F<=+39Jv+e{=?Z0!4BH3xk8{qSMFZf@F{rznckvrc!TZ0AFr~ zzxEZf?1&@yV6Wi@Wsq){_ke6)6lz`izg^ocDDR6=sEuwA@@`=5;ZX zVuhUM_*`oHbqQx|g@UEreCFzPY2x;P)GajIk#87P$q2(NihCiq^?)*gsZu2}leb8T z9#`i`P0hFhSH`uFi8qTyJ+c6$GU7L7L@PcGXKGB{aBuSevQSp%O@ro7F~?WNP+|GZH@s18aiA^y#YFSydM85^`c} zkeyeE`&D8bTz8Zfkb^s`?G!cZk+JNF`%3~LO_u4^=W0cgKVj?n%{8ClLs%MC+3Gpa zs++3M8zm%CTH^qH>g11}S!*qDODzPaY>$U{k`?O6Z4P~B$PM9i+ubECKh@V=1|~ip z(MUwg>qfadX^Eam4R8K4JW?=HXzSm`jnl=5iB zVK9t{wiU!}xMOD=u8r32G@9|`7yBfX?BnqT^UWWk5vCXW_>P$!^!qBOlS~-73E9qrnDX;~#P_b;rLa6HYt~S%rOj zmkqbg{>`(e!mk0MEq_pgzdGTW8}I*s(MD3$7Gb}5<^L|tfHy^@Kb0Xbn4^n;Z*j8G zSw6E2{8ZYWac^U!MQU)786zBM_rpW2Iu}Wj2?9#3^Q)F)zi-qky;&t~J0H>wT9+Ys zKBDZmkfYwqi~%dFGx*LNtGSWZTRPlOMnxRc6xM2q35OE9X-SkFpNBaRvD8@EA?m=k zkXyR@G}yJ9IX==jc$?0DozA}FO%(=lo(EFt93l|+azfcLB+8KA-;11zf^yJ`v0`_u zcUs?qq9}LKk?Q(Id8eRn)~L#n1PH~xq$Hp-NdN%Y;0G(>xNL>Jh}~GQmna+@^#c+B z5e^2&_K!OG2b>%{9108$hDs(=o8K3Vg2(cD9rzCzCjYSNyoXpihHD?A zbqts)(cU;^C3Uu$FLz+o?-Dq%ZOJ*gwfEs{wjT%5k$oEfS$mb$ceM)m+uFRl7f8=E zV&B-dfAG1e1-7oYe(QE-M(-;jGWVo^4jXJ))O!)KyEXl>Lv-ZN;rr?^O^I~7`5nFh zI3eLDwt)8s>VN6_{Vv}Nz@nuVMEG%G!}mq_FeBJQMMf`7S|1KEl9Zcx%ZCCDXkZ3N z4Wp4^n0j5YW*r7@Mc>706~uxn9BH6vTlX7rRQ-oLi4tPGW=SYR^vZfmGfjlyv)V;k z8jCXh^lrDY47ABWVcC6E?T1Tz1%#6fg=f&47;G8)KXj%4`xNHi3)dtD^3dzVdu?(>OY*^jiTuti_kDW_$Q;m?X6%a)o>1S^JD z%ml02^jA&mkvPsCYZWUnw$xh5cb<4D)_bGITe9v}b6AC4<*lnx(o^X>rcJNmh)TOg z8IRzIZ9O{Ui0=L!-*O6xHLF1pA~;ECV zcIk}pf~@AF@`-Jk((P3dZGhkz;*I?RSqG(=u*|a~h3D~rv_t1|1?wM^E1|fr-B-j+@F-?so(FtSL%L&i5n&sA9UN{(D~D3@iQuzzO1B;X)i5ltvm5Hq+oA z9H%&nG*SN6MV}ZsA#7RI|OUdsK@x52w~`QnSC2_K)U zsaEnS#4tQzP&?6#n_MdC{l0R z2cqPXsrpohz?R|fOK5l-h9=d{8+b89fN{v&XU=DMI4xNNP$%p@fI28m$`>< zT1T72kY7k;J6x3-kIF*=o0Sy=Il-hslIq;$#+qT!5Nh{5Rzras8kkX~=944NSGlGt z%^YzJE}BILzbakYA#6;JazqAPq_j_?!3w0Rp?t3taW!Jp&lSgNvCpPhAw!2EEKya% zCTg_AZ4puo9g6`n?)7~0EaqH-phxU^v3}-#*RhHD&2vQl*Jb8i=b_>^@1==fx9xXb=ds^>59BuDe8 z-u1v?)dm6;HWA(|8@rVw_KJq)%J7>hBvvMe?C?Mfz(M^8+Jp2Md%U5&5@l)yXa%^d zMdBnjgEVo>>iLN#xJfbqm=R|X5`t;)xt)XCj;<}TjvCqY?;OstD0P$|f{IpI7A2g^ z%+qUZMzuX=P>y1jjTIHLtqu777DRMuW#*&1HlwS`q3?cukE3_PcdKsI_mf|e4FU&Y zEQ_cVOXzrV>xY_H8aiNJa9!x(&#rxn}=>8?$=eN zo1cxm$Y`Vig?<&YHK`8v;35F*o}m0!!GdRXLB{5~xTy8SpmcZ{LFKmY^X`eIgZ7WE z-2KKXSsP>B2JYpT@aBd|J14{TpT%oNttB}&M(CWs66CL)7QfnuE|V^GhImwL5&m|L z^Lg#UzOTC&aPYr-GmRY3(vjs?EF=BAv@q4wbT{y4jY>ig1Z(c9(!aQxeY3L*Q{pdt zyWkWsLAr@6($->Z>ICt}+`6Nu`lsC!!adt^X4X!}i^KvU zN&_K>@f=3veaZM;CiIYN#RuR!+{Cl`!)>^B{?QXt4xe~Kcq`Ex&QIv|K=Dv5DhFkJ zE>#mIKvjq`%u!qp$}tb=ETE%fSb#=S|DD$~97HYYei!Bo`SAt`yu3IBi?QYaU2;eu z?88P*=;5A%s(b!^Ja`mo&kqe=pk%fzk01bD0`v$&{$M#FqQWCO-da#N!LKF+^4wyh zqz7V+27=1T#|p^4mf4@)VFQ%mfUni`a8i42dt48etj4MuqDlWy*={ zkIoO`+R}yXlAAt^zn4yo5Gmbzlh?okEkcIU{tnEd}z(*p3Bbk!y ziDU><5A}|Q!%gcVCx1jNrAJg~=@-dFeYFC)w(@+_!Y?TY)g5wI z-AAm_2PC#egSNs`QNm%OF-XQS%t>!b(%-z{52BI*(GthDL_kPn;E*9KRIadZ5jeyiBa!?0_u_*>8T`}Fw7*7)b;_?P>5 zI1(s=02E0ZitGhN$$+A@K`~aKSPxJTNdm4w0={+vp;rQNMgnPD0@+Fe#X|xWNg|Cv zBAs?3gI6L`Mj}gFBHKzL`$HlpNfNg}5^qJqs8$lMVn*~$NfK@_>UMt;&Q8)6LNbUp zc}y%BI|&64mTcJ?`Nc6QH6f@Jtdj~x-RV!pqK4CHOVME_)_X`vxk%Alp<9grZI>JV zCXRjkuTwZH_;EOd*B2ZL@@v9=Ci)jr$^ZY>|EHhEKl9JU|8TbPgaXk2nSTmd+2pgR zk?xDrBI^CGM(FVPMn0YF5WCzl+!|zPvgu&z;^X;>JHnnDly%1c|KK~FBeulq5aD^4^> z)^d5+k_mGn)NkyCUyNHaXnwQI3;tfAIY4;q{oZf|CbLxP`=$xJ-W@;)h3auQZZ!jS zuj?yit|Cra3#PT>-y-+OiLFx^bgtz)Ewvgru_?$!CzaQTq{{`X!_ zxUz6$f#P31w0xcj?$QE~l<16t)kv6Dz<$2c>p?r<(V1Y<8l>!yBuupep9W)o&2Ti# zh;49%U-=LDnS}dKp68enb5ST25vCf*IEZ?xsPy8>-1F4+@pkx1ejwCbo_N+VvZg?L1=~nu+>=#u6dbvX&!r4 zhC;CfdGjG9Nm!3zk^ZX6c1J> zDnS-OX&O)!@glnE6RYr3f*uByx$|#5%ckn=tVXenR|EBOqlorim%f$5-pUc{=_xi#F;{oyJ? zFy241;f;hac(oy<3w+@-`1g|p*{<+445Ozfau?m`QOy#>QvJytNoe!9_&xLvvzR;w z0gZ$+P52i)eE{-GmRRq5D6HaBV7aXU0;-AVXr!YrVx+!JX0IrOUzrMoF^=TXlK51I z6bzU(660qAVaGXAjmR6s!gMVA;R~S=h%vvwhqv*>a?qgbhFAM*q4*}rV8Awy{)3Wd zH%qQ7wKP#uu|Nf@UZEJ0wlMR{Zqn<;J`;&7NHxqZ1tD@*B&0%!gQhm#JZ2rd-8Xnk zzDtHyrz`e>Bw3H)g3{@fo&&foZ%F7u)lat%Vjb(zl#|F{2A3(9uQZVbDe_bt?F$+v zXLP&ar4Ojl6Ww{jCK+aEX^*cXNR>4}HoTwhJgTB*a7|+A2tty_&PybyniHmrI}9e37+Pe2szSjCvR1QB^J#;Y~B5|}Pl z;(9Kd8c8q>t8azeMx-H(W3)k9lcLW8Uz z=onk#Vz>F>!uV$8C|(1KVXJCE>9M3s@93c2w~He?!mjn zaR&jo@Q{Gakz!z8eO%VR5)&8#6ggTn)}lvZ(5>=BYacZv|W zOse#288&TI%J}^76+pr*S6+_2uZG}q50)|RJ5v?>&8we?sCOdcejs1kkPSSqScw@$ zklR4RN}GF26Jv7=^-@OC9EbW|5Ax2vGN{_06p`+5a`1({;XSX6+xz{Be497@dK`>_=036`^3xzUbYADyu z)377Kr1)+rmfR`mT=!^Fr9%`6+eN#hYZLs3e>Bzr+Me`$p!cb83BBHu?mMRszYaXYWws6L?`q>4)&i!V4fwu65j-ib`3(PxxEgrFVeMYq zKR?uBE2VV>GrguwL}I zTkJtcAzCXHV4V%_mIH1t2I{Pm2M4dq-5l4+MlGM_y(j44!nw(j0tN~}fDcEX z4F>cD14P4-jKe*dTx`M-`QecDMPKVKfIxnb?hGL87CXG$%y-jF2^MCd!l|aRiE9Z0 zBr)N2Xa*r%0GMO|XehGCyGZXhk+d!Ni(daO5*QJ;KxG36p+yL_td;4#S?1V+NOrzxR<1-jjZ~#|ApS9(CZ5;9`I?F|qKmN(ZEq_c1dl zu~VKPo%2{J!T?w=(24=HX9YyZ2}O58{?OussuG2|g>-q3trsRV;zHQm>R^lF^VAxT z2!>#QV?Fp|IW=QQHDlIWiEQ01L}%l~Z~ynsHYOANX12>F{V@I{a%MPO!a#3oMPv;) z5EUsBoH1&K``HLck{L(-$VgfnU$G6OGG_Ei7XNbwNVCF7T>xJ@(pZ-nU*8&JEX%2Q zmjdQWMbk)?ZNs(7FtYI?SX?%?K*e_&Gj@5vb89oU9ZR)~1c|P2`c&Y0MS}dsI6cO2 zLnDoXmfk26r33qtrprN4)C?qW1^|)N36<2NHC9O)^z%N$3pEyjGqY$V8L2m^=mEQ& z8BX3Sv&uRHnHDOo9fP=)zUrCsb2PI|Af-?{OmE5z3 z+;ft=OM$#=?YvvBy!(v2$F{uZmAsdSJUG&PgvY#EfqaC_bndYHvqY52!u;R;`A*yU zrw9f1GzBL?K(I#sOho}w0vuT;;Xo>p0u^cOIV<5Y4m`AwC9}|~u8_Twh`qg#)HxHS zFY`TeW_~2+znc9*;Dg{kz?uEe5?1=IN|{o8;xnr!C$)HpECqvaKj&8OKbsl&%gh-~ z0W-?NNB3NGve0s+FfwM4P8H)D(_uPy935N}N&x#nYs3B|gwGtU3k7L)$W}IHaj-nu zXx^4HT+WW=9912P_|3S>Dy3?ng1Cd7p!}wCxzaE^v+L3Iq_+W9SQ^`wYOT?tUNN4N zRcEEu>~Ye)*TEHGln;S<(`V1tZr8!aKT1sy7n#-sj%~+Qwbbtoyu~v$I3>BT8cqE4 znVnq6?PN4->+CJ&s@-u*j&{$KttQXmO0ExD_N~Nyk9q$$>K>Uj{`2wrWSyNGx^_|9 zwrce6>^bc>N7E$YFzcZSO?Jr6#KBxraSF%P>3SB72q}u~$~EY)yW9{aLURp}F$_S& zA)XC<;wlA!(HZ{RGJ#h#_kWV5ifW;R3?<5A4GtwCu27edtC;Z8r>IS(n6VGi4an2! zx%1N$6{=xHZEOa*9MES zv2gK=QYr81V>pqFp2aYVc-k;aBlx>! z$pq=`w>b+saj69~v#-|e-dS(W-o!@F5@_Z;Wi}iKRef#Ub&h858d~*HDI;$4!Regn z_aphlFsN>)Oc6esYY$qE3&CujI&9 zDzr;J%t#YqUx!L{?jqq*3ScK=D4G4O=HZRLPsHPe!o7vgd<+Oh%Ux?1Uprmm|?1F8ZZq5=iOP@%Pi3%cb!MIERh*a+=21 z5OWNiwa}MN2y?u^-qvC2ZY6ZcdYb;JJw@Io>T~LZLl)Ms?`a*)=KLU%89?wa6O<5m z$m@e-{y!h2dycWZVA)(Dt_Vl!oN!c<7ui-2b>HiQWbjOjzS?Bn_9AM%hqGH0N9mHo zMv_R&3k?Xe%C5jk83~}&{oCP%Ny?G?(M!oz(q^?O+uMqTzT9QANu#_5vvEI~N1(L_0(0suKTnsLtZ+rFWG&+s|fWKtF+}+p%7$+s&_%BSKE? zHrEWSTy3o{o3E;Z7q@Cpr{Q7mS5t+MfQ$JA@zu*u^ar+sL3ePt)Z|iQ(^L^xA-|DUOkYIT#J4#z^Z7vk?XDE#AMDNh~;V>y0+-gJMnbwFbmpcr-y7jBGHfKLx0J4bkJ$S&< zZi0c{f?`BvB*L1eVNh%g4>l$3m*Pxsaxu`b8l3c2Y_0F@ILlVX#;n7B{g_MV_28J` zmjgc^u-p8BW?I`__n~Jq#)9L|PHZ!KVc3fJp^)~eC^xd}7wMDC&qt=K9|s4;yJq_7 z)nw-oScbB?pEyv1UPI*J<4sT@bY7Sk!`NNZ2(oCrc{KFfozCRo$!fD5YC6AZg8i@B z%RU7eImqmv#9HAI<{EC_cE-s3)>)Cqa?J}YUqRw9Q#O)|d3jIb%LQd6{}(I9Unc10 ze9ZDl#Lf0qfHbBfzGroV3*$0@I%UL@Ih#mbX>t)pmA)BQ3v=yc-463fB32fFN{24b zI(CWxM6aF>GOvp>q9ER?om^fUj;DT9e?bu5Nq3sMk%^-x z*zE7l_)&q+aA9);40t9I1X&v(TtCK-sl}_Ho!dvp!g98l^84Kkx4Ym|p*A zaSZ~T6dYdHt#!l}bNa{Aod0<1l}TFu=h?a4t2Zl_q)&|M_afgb&=G633GWP5;FKE) zrs2Exl|Ih%_?9CMTM6}+5&9z4^fR(YkSx`#>-sEw#1?D*8}qLhd!MAh3$^A~zxKL5 z{Y258+)D+Xk6Xuq!&k5LmV$i<0H4Pf?p#NXO3OK(uUY+2_HCL~$l#zb=m2WSY2$r_1FUFSxhV)mmNEA!CfSIygHi$3q>0a1vdJxdSin&c$Drs#i%z_>ZU5+@oc3j$;0qci8vw1R7_sTdZw=Gf4wC<-xnPlQxLdQwfjEwYJayd z0+(;ED2CQ$uQ=WzVW7mA7~xck@?zhI`Wq1Heel1tt%8jxpOcvqTYC?bqGS_e%PPwg zoy%*Qma74w=;yYfa1s$|IDdOd9}cbmTH+yF`VC_Opm!9Vf0#?VGTKmZvrGW$-7rN$ zT5Uw&LK)xYMrrDx{ge=vApRxgC7~HY)^CI$P41r*N*+p{F~KUJDibAQ`apJ^6h}d8 znY1q!r+I9x{IzfAXso~H12x}@-KV!cp}scZNHSX3Iw$YL=9T?vKGuTK zh)~j#Weua(StT4|k-0`ri_vlrk{;b4TXC3eR#bpJjr`F-aH`RSxYm( zO7%r}1pc$uci>X2KorSKG=Ut)oO|+Xguym!Le%u<_^(MzChRK(8&)lUB!6K+o0zMT z;NvNCdQ{lOs>MRe)mNQQ7RZ&rU+#~?4Asor)&xB*0%zIP4kR`sngwsZ1u6`e`ABR+?J+>}WQJ29H*eeF;9a-MtI!Pp`T6J;v3#XoJ>vYX3f=y?%ZD z6PrR7xzeSaC}UEpbf+`ev>M?5b7srpk45u+Grm$CtLm&6Vy$8PHX!H6^x$qOD~`Up z#n*0u6D5u$qC!?7B%5A>F@FymkrRZI?rJHgGtis<(Fr>p$@oANH9QeR2#dy%o<#|` zo}PCKBl1tf0n7KrX$LAtg~rF=%MIhf<8^717NZG**n8#L(_U3pMw5n>#0vSsh|J03 zX$6BN5ypP(Mwsa|tfIfjI0s$Gf)}HyuZ#M5j)Vm(HHfH~n(*ZzjcmcE>VFq3#Xbtd zkiu~Pp9%7Cr+$toLJO8yxts@*p4F@2>lu#IBxv(LM+B<;R+<71CU9|73oN?iw7Sj* z?!&ez%RibUEeGAIW)_}g&xcMCH0j%uTY^7Y7hp=%0hz>=&T4ek{fL#=EbgzU>kxG9<2C0*^ zo`+zzPA5c`7B{UsQFBogyN$@b!v>_v`lwUFWFu`7iTBfi0OBw0Hssv$C3qoZ`i>^# z%Aoa9d$NakjwA)H;w`G!vjy8!6c4X`nm!@O{*C_p0LL2*)u8QcE7Pj7wFcbK9L5{PpPB&V%y`>j)BjzIC%)cVhw)iU zSE;P;+P0GGiubudnUbKLQ4v#}y8!;@E5wg}mXA+gizf*Xy@pLC(t&m)L%MvUGz=d; zC(S5~v;fEK=0QpxqCylgp0JUIV3jD{4jB_usT3NjVI+^N&y!4dqx3H`JDR#f#^&kY z#ZIK#W+N9s{ikMxhqcv{BlHr;!N(z?FD55#G@msgRs2upWwgE^$HR`L@&8$DidkI8x^Rf7r&vT_u>-J{#?ca0$97{gQSChM4^!Qx1M)HJx^s z(jY3j>wE#PP;UD(t01{ZALHehUzN7uombmG%&Y*As{(6$EKh&pUWaPaOOd2&#)$7BafyPO=OGfeP08f$(0U=Peto zc{jyW0lvy60vpk|Q;KwLm9dddjYP6r{VZ2Kc#)Th$@X_~^h5ALIdnaZXvikRBsor} zSEO7LbPhTQPm{LtX8ZfH689(=LjvQ)f1swQ2Y{K$^W@)9Ln41WLtt2;Ny2Lyx>fO% z-=q$xRU3FVGOV4-sA_(js$K8AP2LIHZBnI(j07Zx?IUv} z_#K`sdAknRa6g^=(0{rINyz|mCD5GXaE!?E zI)n2I%V#hEgxjXoDYIwa>Ax0{r@#i3HN1Q7AY=CyJ6*+r7D1{G%*jb@GgL!l8ML({ zv!0oDq$#2V>~hnd`ghnT z4yr24tN&Fb!G}`8gKe;D5QDI9xp_cH>KNCOG&?j$lc=+jp~j%RTBteXuoi$^X4gdr zl4u^c`k(fyHDFV?9x04+9UirRwQ)V^Sn}Yn{e%;ngwwHA!vC{%*++)F6Ps5C&fjqg z9Aldx1rmX~TB0;k(ia;&|7rrc4e2}t&w2_~y78}m8EE@cuhnPhghvM@$s>kt2*~ zo5T?dQTaHvR6JnW4-C`d?^ecD2X$KCw~T+&*Gii+{yBh0Z~p0+dNExv>d?SpNSSc? zx*8=%zLI`6g%jfwuJ!(@KNZW5@A{jykLjM_$+th9p{{@WE#Udn+l|m4M-t6xbVBVL zQx+^18(F*VB%96(EJ41d6)ZXXA;t9_2esGt?X)F2FaI3HJ-7X{)46@p(KvA~B()zh z^*V3|q0{;aR!Ef@`g8m%;OT)D5%$ZNne! z(2ISg_J;#wZlz?fpJczn+O>ob&&QWp9feoI6@Lv_PcY8FUjeas(j+2IB5WA|maoJ* z8y>w1Ax$QoD~nQcT}^wg?Mv7gr6QGc@8#*3UPM9ECo-|EXeQoEAd+tkG$=c= zZ$e|q(k8_|Vj_XxEQX;jvft>=HYxm1oc7%>GI{(hjykqjHRv>f7z?p#67nqzNgG~j z4?ZPY6vt~t4U(l*CVDp;#fno>ryYF$?ETgji>j1{B$`|4$y*FYLAXS@6{dd$!?{t7 zcpKQ*{~_p3c=QY-8zbj$(E7We8}Kp_-dHm5kJIAnaAWCEDq7IZtlm^MlF9QA(L>XR zv20=6f3)BHBNhI|!RknJ#n*omJ+%B&(9LHt+EO)BpJO z0JC2sAJkGWW!W`F)%h(EK61h5*fi#r1uSQ#ZR5|l6+Aa5wQRB%%-d+qV4eOGxgQk@ z-kP{RNnY3(?6R})zr%ZD=Zd(zTZyFKAbp<9VD@y@Mby@5O#iv2>XWus%_eiRkjv7` zel{7Gv3U;7tCq#8OwPm)W@$)aS=>G*F7FXL4~FagGQcBvpy|Ab6TfYb-*orp7Ms_<(bbO32s zl_k03=SsU|@}_bJMQg=9uD6b(QoAo<%u9;}_P-Zx_(K?#vBSHJ`&l5tEus_tVZ6)l zzzIUtczm(6%7|j$({mn3ne3UG(2O~j7Jv3liIZra`NqCNkvuA0xg6V_F{U>BCLKE* z21<{q*SS1!ZTPa2i*3Ps(y?FMb?)fej5udJuG0a@>^3b59Uiu=`mfZrE>Napx2+_~ z)O^}I(Woh3ddNKKT>0K!4{N5}I)q+N)}RC7uMU6yg@Gr4uFRryJMG2iu08D|mO!`P zkgExt{Z|Ct|7y@`*3nlS$Kyo{+Py#sp5Lh@1yJS$mD;?I==ql ze9?;s@?H7HX%fsmiL;hmLqf0|MP}JP7r>!?#g=X-4_|)gcoGD1cKkjv<)lQZ&Rtsg zod8tuWb&7Bwi)hop&~LH)=}!*z@#4r1732?p12ATwXB&Y9*k*R?90^ z%*~o2D2uqbca+XIll(Uv-fu*H#wfY^S|F{mm&IdkRerwW??^Fie zyyMg_ZCv26%5V@CBXTc>CRC}7uW2e?Y^#K_aSt|Fq$mR;q~z`H8EU+xh>ZxfCB;kV zpDl_~t!5u!V5}M>emINpa>L;y3QEx&9b!znBw3c0>eaCn&MGZS<^Aj3=(K=#N>w8e zw9heOJ~%DYJPzV89KrcBteUNvHNlk1pt)o|E#9g;zMMG1dWTM;sEC;%H`O__={3Hh&I6kky^l#Dy3^O;`^wL!DPgq59 zs-SBlh9CpgHiCmfii>7e+QHgGSv#Cr-G)%>@$oy0$ZmqeyUfrH1(XD zwk0o=H#;xL2SxE^*J|2JwMF?KFSnR`WSVq3Owctt$JT8#ng=p|1eLutX&xNYu}T>s ze0DYC;%)5|qe4X_7@S*ZUS79A(YVrnf7(|!q`@q+pj`5L@EL&-^T153Kx1Ga(lKnbU4)* z{YB~ebRZzb9dLR%KRc4Al4G$z z3XV?IgwkL$8kKnz7x*>n?x+ptIGsD|8rGjU=?Jv3_$;RWB`6(13cEpfY54g{@hgUk z9|{!yCC(%mF~+5gUATaIcG#*cn~t#jal(1hK5Aq}PO)d1r~LVlFfXRQFN#UXWILB% z_w&uppVS7dj!sX?Kg+Il-6-<)lU{sQf&W7&|9h>W?Df&bS16v~B~qEr{c`Hxs#rPf z@L&l1n8d)hkGPt^WofrxbC?74_e3krmD0d~0Q47l8MU(i0uE>9)uR2U`zt8S!%ZCK zL1*x3Fn|n|B>@X@T>S(Mp8-gGe?deY=xz=fXSo4_-+BY7g zPHtx2qCb#!{GlZsfcy)Q8-+qtbD&j8o=4|?jVmd^Zc@9@r|-q7FaI1@(|wdatowNu zeAFCZ7y?47iNl=6BySd7bVFE_ZZoktplF~=JND7prgr^ zh)`2_&_)w4hE#SqzmpRl(`#-@3;OjJfs0U9(FS1{GcbqPmnTvHOEiwaVk;lNkLNr- z5!tX2$i}YBvgFLr(f(-ZJ=TzfZZFLC&dR!oN5!c~FQvq~l-A6S#HQU!CY}8iuzQVl zB;7mJA-^PI`bKHWZYl*+V~`HPk!#PhL7XzaNpc%FsE$dQ6ijc&Ro6439wwTlHOoQD zv9I>js7W}jGMZ1PedH{VGV92@OhBD?1nd1dV_HPN5K$(v(QlvhhR`hmv?$38_%!F8 zZ1H0mf(fg{^Mq0U461GyKUMF6%s0N_NXoC6_r1{OlX_@pF=QE{M zWng{=H3_Fyw5G*;W=<_4MP7T`7Go1D)FDt7sFZgv#{iYEd}!m`dI`Q-RD_i z+xSL&NxN6_<$7~;x`qrUv(|;Ai7}P6jmZS6^;9+9#1?^#@p1wsG=H59a2>FT*^rmg zL~FbX=(Z}i8}>^#-qt<5Nt2#CvnKPycLQAY#Hrk2HAKka6r3zthhCLyji8QC!enob)^#f` zP}3e^RJX3En8}CT!#mHP?|T)#o!Q<6tzgRWe^qF|57XZr*_|buCD~$lxpl0@;)&Zm zR2ZR^u)y}RnO8D5eCyE=E8mogF8=fWi6 z2Oir@Mb#=`(sOy*jW;0Nj_ovy`gcUi%UT!1T;(K2j6ox(iWRwK&`Ww=FWL?uU&_5L ziAeAsEZKh^#Gz@MFw#e_oOIx=?woGfq(ttGn~u%bb(1m1F(a3e1nx@9z~=R7MU@Ou zmE|5d(-drFBn3IVcitlFc@W+vRno>22%FKWh-Ts7+EfEjOcBf`&KjZXs`%x5ZD0t{ zW16;E7bcR%oTJyC2Mi%D~U$8P&`$=<`g! zUkbKF2I8~W33XzN?iKf6mu+GNCB9iN-M1}y|3m?3S@(Y(i|Ls!TDPxb0qP|;{Gl6? zAnY^tj;(?ick=JDH1+M!B=AG(W=izK?N-*I+>LIo=l70{)K3pLz|5a|9cy-_-M^1t zb$V~iIL9n!xvNocJ`-nukihKe=O}>Yk{FTZZ zfuK6`LOD=|5-=OADEL_&PzLo(0VfiFXcst;SAD|$YSVK9GEJqy%{G-dz4wtSV+;pU z{^*Mxxe{%fBo<#NESazk(^Nr^Sp@qR{qa(-4u-id|4k9}+_;n~WHI`4c_go^)eiA- z5WI}`ES8w%B%m1|a8^zm)1JlZ5$5@-TWQ8bW}yA1YMjW+RhS?>2&p*j2gD*%KF_rDC=1 zs_gUYDMHD%l)J`iqUWTk!CM^6O*{h%eP^;hcG~PAKJ7B^z2ia*Hi1iv!_t*CN$(Tv z(09-gCCiM&oXd5t`@IpUqEA`|h*O6z0se$9BR%MDlN*O%u=k12+j8m>!8v0*bAQF` z`b(gIn)8rpNk;0xmYt9p!6=8&Og6ekRPb9S+@@SLQ7^tvh}}8Xa#|#Bxh0x2wz|6JGcNP{74+0~PX|&aoxXtOBYqZWuTiH|Dc$F_T;hP})U7!LX7lDFPc@1mj&cZ=fk* z80R9*CC1%xW-M!n(v(w5mTvIn$qpt4B#%tl@wz8whYd>l&frF?ln*8HS)r zw81xhT;lCRR9dMKU27^r@A%TR)1s&=*#?sIZ&Fo!OQ?3(@j-6U3)f-Auaep)foXl6 zmoRO%h8MPg%Z9i}9&ti?>S2Zl4HNx&B%zvE;vuo9aU{lTw)8rUzoS1Ljeb{*&i@tt zr^{lm$p25!pMiWy`2UK2PWPjmXZAyjO(_4x%5%6;y-{{Gvp^E9%Ns33kznSwV;rj` zvWVgk;hNj(jJRBz8@v8d*wuA+H?wY_CmOd<-n!g7maF87D7S8#KWI{#kd6o4u{Ffae@1 z%+gPrXM@a8C}!Ww^Mh}tU>wim=fBR$qCYFthdf*{T@}_m8~rZteKSmOX%cop!M!Fn zw%G7o|DMKpHT01pyeJTltDQ|><_=>e5(VS=5pgVKTpabonZ6_t<0bq@!gWgEx*kc% z-g@Mccl?h~+Lsc5q~;Is%^1Orz2#sTANWc#<#}MK62a@%_X(=M-<73sh|*w_tI!65 zg3z*p^)&TI6bRoL=HaooLxMBko$Iose&o1XW+szrzmnntAZiJ;_@%dirVd?OL913l zpFdTQb_a^52>1%oAWC&)`!q!nE$0X_^{tF2qFsCJydqt`=LpVBqu(*4;hdRcR1Q+V z_ueV+pq%>27zV4?$l6CW4#}h!p%o@QAMCel5VW1qjYINhh<6UWowX(~NyDR-S;d2+ z)-g+d_tsULyt+@L9%F*7I(N~>HIwp$hK-npf9jfjiCc&Pz5-ZNN_x(&9xd3MSo8l^ zt}=f^KRk_Ec@&6txhM5>lOr@?xj08Zp$K|V(hRnW1#%WcK~VR@v!^6}{5X*Xev5Xg z_kK$#7s0eetVWWz%cyq1rv>-Y`?hZ{@+>4^J|QTaPpe@8za+lD+yqEIi@vxAv*O-j z-fW-*+p}8xMMs{H+Ea|;uR6ibTi0{T2WCm_2ekkl#132cNshsNJqXy1;ZM8cAnBQK@oOBhQ{9y^%(;ND=xNtVeJ-q{QE(^b*~ ztTEf;FJOIiktVnz@JKm*3?yCITH%gvI`LOFHQM*l*jB_BF!*VtaQo8CtIVT1Fz7Zixu$Id%Ji;Bw)Nx5 z2=v7%XaFbxeMyh$&xD_b+HAWi5%MqUa_e7yWjX4Jvs)aKuS1rEeKy9EW1Et_(T3X0( znY%7UEdBB;y2}_HF%lQ1nCchBB<`{9?YCd;le0=_3%Frwrm6Jcflv(;OfZSx@#^4c@tE%P$ao()FNF{xig){3$_8U?Uhy z4*{fpBpbE&sHK*3n2EgClu5+JpBsiH=!6&bS(=(G1dG7(9M?w{or+fau2s>YP+#uX zTrr#DjhZik&tNqDGoHVnk+L4yV?4%q|F0=xygic1C*w~qd-F3vzy@I_M`3(A@;aQ5 z1jzi4+y1MLauc)p{RCG1v07LrCsA&z>kQ}>TGW|XXoM^(&b?{eg__LN6Il2=Q$dOs ze1Kox67x*k2g3ncpGPVTpMzsfJ7=A%rYnroO=qHAoVjb{+;2>SQ)(8floo_IU9WJL zUn|Tu`6XStnz#9l0*}i!PkLg|h%}sS1+Th}Q4^7vqdQ<@Tu_4cwI)uJlWAd*-Kqg- z8)X312{}n_^GQC0m1Ua96g^@@bZ_Iu)LH(6)adWj>_?M2F-=E80-*yU6+N^Z4e>Q)H*S`MxE#&^! zu|?dsmqjBBfUy2YPPq}CCNoP$_w4jJ(SOCN(MJ=UDY8FFw#Qi!Eutv3cAUX}`$mke z`%^zzWtne^SQq*j;{;ZPywMiy#@?h#1=*&EA@(B8eSXVDY6x`=m#8Ub5BF&baTfPY zYpVjQwnzS@p+JB3fPf3BzAmi4mm;TRX<1_tFM%-l}u?6`7f%=bKm)I1XUCe z?C)a!BLB`sR}@IoHu2n!eGt19&sqK<)uWAg16z4kZVSCqA1rYd2ckV^Yd zAq4u@gXDil<7?{-J~n|`6OU-E05i@Ie+XcET93c)H&9p&8}E?lFMPW3hDIU|rn5#W zr8}=i8rx8jMurz%XAOYpyR-VxKqY66}kcmiU?8%o04y?gzm9V*P85l|=CJ3yS&pmqL>8x0V^q5kc?)24CJE?<4M zO}~~tB5<9qU>YDA`}=h2%+|{mfw3o>UErj5-_(tTg+#@Sa!oSFxl%T_O!yV3Sld&> z3OriCzX-)rPC^1dcK_1eq?dcT3of5+jKzSfV8*W4oKG!)_Gq=FgS)bnLThlgU7&F%pfyP>5WU21J{ z8EDOdb>$JWpo_hy9Y|te42znwUf)7lR`$8N*^oW1U8nPC&jI8P#X&<8$>Z?*KQO10 zg%q(nnKmj@h&OtpyP;?d@PT~9BGD?c8^Ft=0Zf02xWpSw`a-8z5!|U{gD0CTH$AGH zqTV7t*g)(<_#k-A+b0Rh!MegjE%czr<1HJ_mJS?LwDgKkNM2|8(>@^K!IfrR76m9g zkJSX~r|0`_a=gITxJc_mr(Kp&3DYMiH*F{S6|L*H2jYS;^)pmL?FF)%lELGYnPXN& zpi3`t%ZAwO?ijm!&@ipOZX{tT?~Vx8r+7Od`<#i;a^}*J(cf}AjPuM~yvIJU$UrLI zweb&@6(*|tX&~ZldqBanbZ=xySg_c=_(*w-kAvOxr4N% z+OBwNA7vc#BKEHEc6eA!F{a2{AR{;AG7!8mz(}z`V6!(&7o4^Ue2qtfMT*T0&QTTm z?lqxRrW}&z6{Rk7PEO%&^CG^cpUZTL&_G$AEpZW>SNyEGI=!T-V66(;-4L(stN2{W zeNO>`*ZLanlgpgrz$=A0#?(%e$Lw8Wwh1E74+8nJn7FDPIQ4e^{gF2N(Q^z4M%BMS zURlZp17O$il!^W`b&KPnW@C4nQzfWcR?lwgE0z9Ok)YDAn34f$nFqPX!2JY7HkAyl z(;;P%OCc{*s}r|wuE`Zz?3baQx%h#v;3c6S0hJBF2I_oXojGPYYiCs27DYH~TF+GpbO`XhzJOZl*i?c*;>WUOZLLBFruhs<6=zt9x~&KNp=BU^SJWYOxTX=k;@ z|6O5avV*g?7D4`5!aDTg%}`PBjo;#O9L=kDbpFB0PAOo|(+oqcd#&iiq%MPX2Hmkc z$8V%MH+B=Y1#Gc2W_56JEumoi+eI$vB2g+xC7S`0zYJ)KfVY6zUWq2#tpi;Rh?d%N zyxcoQaGA4w;L6K0u>Rm}d}7sKV9er(sVKUrmB3)PIG(GT=WQ(G=e^Q2 zn}tgE1r?Y5;uPFSC-PiNKIZ~Et=~H2sH2{$s(hDf=c+~TgUYIpIa}rNj0;eWeRn3?7J4FY0*CC!>#>kBSl8YUny8e z{`SYa&M!f8FFYp#_iR$-)4tmUWZ3an8k0(b7&g1{=R@402>A-^j&He|wtz&ueybLE zyhwgv$bR}T<^%*u9zFV_4)h|-#qe+{0j$KOG`f*Qo;fF47Gn{Y(ZwU$xh2{+Asx%(z+0d7t5C)S<9?`%myV<7=k)t(`Et)GQ$y{9P9os6_I5#z75=E|EW zLZd)ayPY`5`>I#rdLg+kMeI;HyEHW;{JbIAz-aR79YJmK_$@Z;K0H1Pv4C)C2$;P=27Xi{&CH;Cz{ zi3UQe^N~0f1`~AsH?*QcY0i%3xHN}sf6;vQO!87Lq4UHTWO^+Ur*5Xqa=oY~Fo;Yc zBetXbcs8I(e~v3r$;=X6IaDns%9HxU7_9Zp!KGj;ZC)_`Z z;(L0|iO@G6h%3){kH8u3H{}m}IMXfKPE`4h@CuGz-buWSOzIs(nQUs#+(IM}u#-tE=qSMV-CU9<~WWHS`(N^(K9Es4e`NslsnS zpRU5AND&;Uq||MN16Z|sOVWr*gIhBnX_bK!-&#r~ny{Fvec(;5cW4aonaTb;>2n{M zqDkNUFVe$fN1*^5zq^?;L~5ZdA>Bbd+^YyJ#}Pa@ZBC%BQqy^Fe!f`sn&tUStzc(M zBUM!fs#^BEeP4YrkM91o$=@Aaz?N)FW3rx<9h6=-(@_r zvsW|q%G%YtQSp!3;;9(I4<+azpf|Lcoz*b6YV8j>v)^S6Zm9~$@x89Q z>L>eiTfP?lZAq;thMEh1B@{zilFdV!dU!rY0iT8uQXtzmr!a;t?Q$B4$H`|Y=%Sfd zW_~D&6F?eoX0qy-i)jfJF#Ant_+dDcKq?K+Vgyje{h9z-pH~~CFVW@&7Q-h7vDv|( z#(pZl*+=Q5>S+vIO2K<)%5P0e;OimMM@73K;!lPvNPhP+X(bBS((9$K6$z`#P)9|T@88%kqIZ2C>HQBy8P$AM<)mBtr1iKcKJwDWKIxj; zx}EC7`mX;@(hGMyCd7Wz`ke&ZtclEQYfNPtCex@wArsQrKjk5yJ2(-1M>ag3_~g8a zD41h*U$MEDtXE)E6^mK&LNewJEafMvQUa+hShHG(-~bg z!C$k3iZ;LI=*}94=FP~mb{4dWe9;${tozt$%z`?98U~9nKP2W^@vr${;`^@)&r=2c zmmEq_byq*!J4r@>FtDh^H~&qGA*N)RiE9Rziu(W>Tx*czI*fI)b;B=fLUJY*CHQ*@ z2ggHfC&slKZ?{0<>eF=^Tl5GJuX| z=pv{@fxa#k&wva~QIYb2U%<*6H1o%brh@>L!}wbKe)$%0y0RvlL>ERpK3N(xM3>@e zR)RAGKSS=sNNx(EV=|hW5}N&h@G|ECx=J>pGJ$PYHIz zAE+ida4;J)i1;Lnql~@#Oux6`QFFyo>s3a717W2|gce7$60hTD>i03VpEB}gt*xPG zy)#zKqp3$~`rVqEh?zFX`PuHG@Bx7-EDxu+{0MW3?I;99kb+UGs~E4iQi;!WDqg}W z61(-LUx@Ea+$v_3Ds!5E&)7QAN2=6(nulDRks@K_j}859V2bp2?>NJ>wD#dH+;sA5kv8vNQ&d-0RI* z&6-@?GtpKnxnNy@ltMSE3SN@N6syUuFyVhr3$clPhmv#e7k%^orG$coTsQmH3v)y8QXn?8ZK@ z8F@=j1_b#Jc+%%&`M25-Q=k(?OCQiKo!E&yn)*$t;&nWG5+CH32Vw;q zG#%F#Tb7O^A-oN3h#$bO-ma&I_CCQAo#|`B@uDp*prP%o=_LiR{fFE#|B(@fI7ZjM z^Zl-(|0|b%!KH!TY{G20tRY-5uPvGSO;mw2?{u+}PQSLFFELtfxdjCj6j?N@jbmmA68Vlr)U zB~{VQq&&=Oby+N{o3zX{tk{{5mip|E!{q0-RH66rL(1s9Af(+#Yqv-#rAdM7HLK)GhVQENCu-3R-Rj=<8ij)dmiYWuNmPcfdpgZqq-%Ui5x zH77}ozHX7tde58Pjan@yDucpb-OIG^+kHxZ@%>wy#KmGXc#7ra=l0W<*YZ5} z$#Gvo#e-0o`>*XS+dMUt>}T)Oksp7hum;Ot{{F6&T^M+JkGmR#nw$R?jJceZ^s-y5 z0xOJ=E1oH2J;jj?CcZaiVA$n$zAiR%BdX|%Dty+kH18%gMkwqA@< zm4R$YG|PrXNfPR2r#4f&dGrT#B#QM1UMV2k`>C?sni3SH1?)Zmb##M9ICb`*AKtLr z2dQ&s%M#dU$q?`CbF#+KS^O=!Skb^XKr)7=7 z$9Qax61&Ut#}dZOWltCFvfZzioGR+XKPR=IP23^L21Bd9FZ>3-1(ID3d=CvriICGo z;C(k-N$UEdwu;%S7Xa|=IwSj@Ml>t&!_fFlXDy0OMRGNcs6}!!K!Nm@;U((v?e~c1 zucc_RskX1y8-AVzZI*6+`Ltir+%3Js<^HlAeZN2Zy5TwdGT=x1wMEB4r_5ByN*p*t zk2`4(7O?3DRV3s^QHKvQnPxWO?}u+)B+mB80LjXTrNfTj-@8I)KVoEMpRgf`T@_!zC;5^lOKO147o_i$qeK_t>KP&IU+OmB_^Kd>)aG z_Q;`(C_>ut(*RNGF}leH#8=@{TqtCmJPE)5%~lkSVV5dZ0Z-Zwh7n1`A`>XNIho&K zN>suNlP=a)QJB#&8EYz<<49$RpWC9CVj z5OmotEmqc!+_Pvn+_&+yb?BDD)vy}GC?h2X0s^itj_AA;$r51O$#lPF5OF6|~Qm%dIS-w7`8&C2g`QR`-I0 zLk=(s^m;)={vBV9R0m>sjFl~Q*^!aS%~U~W12E29T}7c58WNQOEtcG*cDw@zEU~U+p?Acs?tECzhV*V{g)wKx+zG z?yCFamQ4RibYy}v4x!LlFS?AiN-288(ezP!shu#x@qq#i|g1g?<@Wuru; z6L&m@t40oG6VT*>H4$xF3{5Ax3@eU$z8E9mV@(m+(n8a88Vj~-Od$M@K~XmxE6_4e zb1JAvVNStLBgru4{~ZdVxf>ETWYQ$I!ocB#JtDkh%)7y5sBDQO!2gfY@cxk=+CDV+ z@1udbvR|h_I>^^R%D5u&HQH$Ar(d?oN)xT)yJ{SGI?{ty;=ihmO3VgZmQlNBY>z#w z(X2zyh@C@9^~^d(k5RvjS*CQT%E2D!Vi{stX)4(40C_f*Qx|XfkNXdkiKw#&;i#Y0 z8>6QcLi{7XT#XG+Uqq5<)=n-}%}a0ZjkYEVv>t2PLE0f=8{M22=*5Oq_SckKZbiLL~D=TGTQgYi-eCC>&`n>2dm96!+-x$==%t+ zp>v94WoD&)8^yM7aENv)fc@4J&FWB}}R} zZZ%r7kf8hO#;#*G_xc_bcKH)Apz}rEu>Lk&d{LLx_q!I|d+$H#3x%O$IFeQYeT~_y zQRTdWDd9U(PR}DL_0`zJ=|tP}USX?B=EcpM#9K#Wj@oDil%1Y`ODaOUd6P;hN=xFa zac*cJVwBD5{4>69iA2Db&BVNw7|vM&lW$s+fwDHVRTdZUZcE~Mcubtj>Yi@NV5`}-YT^9 z8OX?6n%qaQM)uCZrJqb@5xGxV%gTlW%Tn3DO;p;T1_{t>rvw{SItq=xcGlh{mMU;_>H{H>uR1h+&tuyg!?zv~3pa>&a%YB&bOtBQ|XRe9P%^c%F8quJ9&%XWh zFdusT4<&xYiw{F<#F4&(>+wXF0~^U9DzP*M%Gv|abQ$Yg67%CmymdU1OWchjRR7Ih zqS>R4t#mVkj_tR2V(l!%BEEyWMTH{2kCO^tN*~n7cw_C<|D^Z>Ygs_Q^mbl+@BH~! zCuzu0^Mc2pvyQy?vNYMK_xC?1;t)ZABoK`upeWp1m0OHzbB4|{O|ebDQ~Bkaw%mrGa9);$2V#Q`#(p zenU?EBBj2UACGaytZ5yCNeuskbN z?J3S5o+@}{L(~xVh0L2Ja&VHIY z4F?wrlo3cAz%f|dFo>U0;R~IDSTox)6nhWy8d1b=y(o3oU&E9d)a5E`*mTWEM@I@$ zB(QZ(Ib^ zfV@BFh=0n-KeeZ!Ldf;@^{TC4MZ0Q0Ks&omxeVM(KWg>5Da%=aOUOO$G1tkt*q1wy zFsqcN%A!^V{mmwn^g7n%WH(^ssEo8_>4}H`U|t(>g~(XKpj}aBcD(tnT^sN9cwv!B z$}}~;l)ZRPNXft(3AO=w6J7cM{eirf=>s^Jzf<>l`@mOSFrm9B-PnhWV%2>|Wp2id z0gIL*)Z!kD;+8D+M2(GvW?w;_FC$Y_uasV;jLJMwElt{2!;`*BGWLqv^>ibkE}~eB z8b77Zt%PTOcmVIkR1ZyGEPcFJzi6K*iGfu_$!4-TR&2|t^i~NRS-B)?dWJJ4mcZqC zv&IzK*kk|1wkq%D8`oP=5)<9^8kjRHAG}v|;LCc0hwiaBV_u0B7mP2+9Q3zx5Nm6ZNG`F#1;%o{;lhl6ENx51L9 z3qmO}zdV|-zV6`4ubiI_OHm6woA@8>y=71w@V4a}+}#}-m*5@}+}$O(TX2HAHQtT8 zyF+jf?!hetNpOO@_Um)*y)$RtovQbyX72m+ijVz`s$RYSd$09dSzcETed0)7lq;=b z6!Y=*5T}5TU5-1ydQN6T4DP*8>dW&F&R)9`7#9*9*g1kem=fQ6*))0P}hLXVvUNlZ9$wj?2Oh#7Midl4RQkJ?W@G(}^^>_YEBYIqlKok~6vGLdY8-}Gl3&%* zqG@r9%9aBp{AK zRrfl0v>`=V*n`e-StkC!=l|`QaJTN*cKWr$FH`U{6#xvhPY&SEof0O!LahY?Oez)!AV#6tOSNMw$lcjQVl#yBOJeU#9hR-fQ$(jjL^d zA8f=Bz>)La(#SO|vXwCzEQ2XJ8}A6{nnrj(!C`2Kaq^g419!{Z<8{=`@R&N$6QMGq z?_Wm1CN|7R%`cXr$H|u{9)kEfB93IOCLnQHfYK8x0i7v%7QAbHb)a#FIU!_uAz!emQWo)DaLL0B1<0c`YmSX)fw3uLVuL>lnaI z3jA5Ah^h~HOcwJhLHk9C{zK?Eo_!MZa!ZG$E*7Jzz@1_&R3fV|KB&pgl^QZ6#yZ)a z!V`lFmqtFeZ9fJpz|WoD6=%u8C^Vrc?3}>L#(_oRv%{-wL3%(QP;m&RM z+|$1(%--;LS`A{nPWmH?EQjz~7fe86Z&cV(w|L9LbB`bv12!Zx>jO?ZjD8QLO9aIfVfO?;}`8tT=jz=ML z{1vW3qXftXWKr9L?M!$$t5!ZmK~;M<)dbL>7AHV|aQs)USTT$|RIiu*V{MNNH_{)3 zh{a+E1VL+&;5?ZC5iwd6Ea__6Q>btM{QF>@@^#i9oyGdUV%(H=i z?P>F{D*|_3_g8h+3BPBF85;fTmLMlCJbt6}+k@dk8Z5fpYQRCi^F{^FYwP7@ zT|oYMUf9Qn$#Wtv00&i%<9uK<(Wa;IDbd!~YZx0zOqk86Y&%4jl`VHP{`L&NWeOr1 zqdixo987*aIr2bF9PjDKW!q81(59n;Fsg37Zy6l5VsP0U+}v&QaiPk|>Io}!no&WZ zHB(7~k{e6t#@=vX^7F#31S%J|3auiAyaC=Gp6~WQASPO_gYN9d(AzBOm#c6od~lI0 z0W-L1Ka-_H5QimKgo`0U=2&b!AMGtO3{wF4xTt`ZKw;e-?$&O%7__d&08CObur5vJ zeo`&T`6SF-l4?XyJElpU;*07$=I!flps zlC4=|D4j3+Qql&w>r!-_ZPB%XDyn97tUrydX%s2bAA6#&%Ab1@u0sTSs(0eWts(Z% zpXbLXv~ZsKk8R!D4bm(AH}&#pmfvPYSX1KSk$P}iB)TvxJsWTZYQ{vn=&$*PkpF$H z^H06L`{^?JUZB{-eh*?x0JW3Fm%ZnRlVx@jhP zm)RsIFn}fe%1X;@(Gx^`Z<1-|01IQJ#6Pt8>q)a9RNl=3WL%sugc9%AS2_F=VYO4n z?*8DhW1XltA9@mj)o_G#%M1tXS>8#p0$o(v;ubMDoKYG?L^ZK?4nuT)5|IR@k zf?#}FbZT4Uu{5*>H5&XB8Z^j78`KCI7HRU022-_I67Q;kn+QaWZNwx6@Er#7O3^rS zHVkp3&a%#W1Gwm@hr{6KcxQ=!yEYuA3fSVrL21uKeE=C0&fT~Mbz0=a)e(Wfh*&rH z>1B2)nE~~kXuD>>@WY|FC_5ZTDd*2SO+7iDz#WjbAua8%ZCP8f`Pk4BOSDQ(InLuo zV7A9DV>a@LhR#TWCY=?-eLJB_s7q>+#~v{Tvm$hikE!goBGP{(FdERHiE+0A@aZdR zWAdaI8Om`hUlV++i-=!o*yE#lOci>waBx^F<&_sow`Z|tU)`k>?vS50Pt(kq_m>n} zXa~BL;o+PZnhVS^=l=Lk?oQ);XlkW5%hS##$!5ZAf}~v`UaursFysv<5tI}g#8QHK z07uKLcY)ZZ7e!lA}&TgK_bYaa=E4nm{A!d}+uD(w}sN4;Im& zKBICf7-Mki9}sA+#Eg|&z+e}P;Ae(K;GqEGRe(D3Q7yl+nIfa=JV>H@6Tqpz$dW)@ zVNfy%bebK;bw($Wg5Ul3ZA%G^>^s4C>;JCU-RjbFrHalT_}wLk(|s)I{9mfB6AQiz z3$StfyGs`QgL@DN9g#_zt(w>i6%a8D>XiSvZBfLLPwsZC6Jf5#M1yWyHrwgk873?j z>Ws3}st>1hq*7HJN|`eGN@opxkSCV@U}z|m@?$9S)XW>^PF+2vYgO{q8g=Z?!tnoX z4pNzXL(8tNo6q@@IuMWM!Ok3FUPx1Rq<+*l=vNPu;Qxhl2NX%hqurhE`llC2&)P}0 zcD0w7iQ{bi_v8=XERZpM)0fopxTpF<+Z(!1y<=&U?aH0EpPlA%o!K)bh46#Rq6Z(< zN^W(zSGb|y#Qq8(~FG9(n61}^VA9Mox@B%mPq1<9-E8hpM8lOTiv&3 z_ooDTfq%vYwu0^g7)=Au2yCgn?rMk0{4iujwp{pE#nSnJ;bnL-Gz9CQ&n%!jc@5#7H4_w-)Sx{0G5TXY)$O#cYs77i#LX%Fm>V?3B z?t-gufa;Y*45pT#K0Sc|695{4@+b;RQd|cOW^vXWF`$3xJ%SQ)YlLhtN%pqIvq_jU zcc5gss=`QNe1nRtNWv_zk8K$wft8r zc4t6d#qk6ssMqc-Td4Y#h@pHzt|~Vy(XvI+vV@nxpFw#8Sjzn9Aq{JlYic z7d%D@Ca)gHa<759D*HaV=>n>yL4pTfMpYk`ZN6FxnZ+_4s{c4({=a?c~ zV8wdD;es!BJn4glGE})uHCC0F=Eg;^Myjt5lzOc=ue##NT$F$KR3ljS}np>usyzl=;6+MSQlmVOFF z27EAv!(d?>q9fqKCM!n8HM>ziZez@gBQEh>0yQBqT_F@8d#4g5?V%?!x;bt`%xTG<0u_G%1-7FwF=8 zc{@I`0*DCb9R&eiSgvYYn92=1Qo?W>Io^AaEvCdxC5HyzhDn;m z+9ggmP6?NG5bga)ZPfc0bFwI=0n#+CsITxSq$U|KA4k;U0*3(9A@jos=KUZubQ*HS z3ORa2T)KGl9a@w2Q3M5Qup6(%h6hLnAmJ9{|3XK?DnF_i7>+8eHiRZ1PjVJvh0{b{ z!1Cvicr3g$AV|>yTm^%*yhJb6L+~-ICWxMxJER@Waqu6<$*|`@YdzN(D%i*b zGU;6C4clmpRv}l%7l?$0!3fR;%mi;cs&zN->ApV$AxsZg=!V-ButLWOBDf)eZXVji z$j5eB$KZbz}Z-V^VrEY~+sS@LX|2JH1G+CuYj=59Z1y3RdjRW z1MzIc>6J2_$ui~ZrOKsdhh?A%@LJPpB1DYQn)nuWMy$rYDWi zxem>F2MW9PAT=`~zcy~lUS8kq3lSapW!ZMIGvs@~--;&WHaec#XWW{d`FFqL%f}!} zrDZpVp%NkooyoOY`;Y>Z*uZ%GR=f3zFIzLeeD8m)#)Tv+2apLk)JOWz=AR0ByC0-@ z%8Gt!<2Bh^$q<0_71H`$o-Uhu2|#+D+;*zQzj;mPvT@v%Z<$c(ed6`Kz1u;`^KKir zS>YWijmiu@i$Kb^5lU(M#oHmqLliOhY7x(tu4Mx?E9x=LMq~=(-ZnTeGl7jyl#we|SmdTjofk;}B z5`Ii=Ss0O&PM>42K8sTrC&O}7lA>dORGML3bySw~_4uf~;D1KX`adYhWbeP>&{2G6 zJqASkq)b)#w+ood+5jhHWdUwC(ybmDU8B`VU0IwuI>62bRg9=77gd}v;Y(S9Am2t= z62DGYSqiTwE?F9P;VT(>=gz2JnUKGnH8)OLqoVhyB}iR@2Q}9-|2O7Ay+)yjPSC*P z@PcYo&CMddw$ZJa&bNZwWkdHQ50U zFsF&oW|NpwKRT5oRY*vUBQaxZWqXOkoTe+O}Cpe(}QKIyQn+ z9ydb@GNY(yKOpvHTVzWitNlyRpf;e`3kT}W*em&%C|0NoDHApgN|gBkyn<;6*@hz0!PR%PVHXY_ zEn^JGftMt~{)OKMIz=qVy(A1SD3Y+522&qdoMGZ3S|SdBqunln*$Rr{aQqG5Xxon$ zn20L93!G12N};2?h#+n^N9ePWDJ)Qr5H>A->#dLyoM;R;kTN3`C<RotC5Gu zjnJT8(c;w*s1a;MU!#PGYAJ-zvYM1qv#S_W28*%wXo)v2hOmD@_XiEn5MO$!k@YLLBl8pS^? z`O-d^Exz$utRb{LZuGaj_9|66K?c9#OZ{D?;yCx8L1m-?%f|N^M)4>s)Q=&uJr(=DpT& zK4(ZDBF3T7=9bUbr!Vm-QHKI*%5YsuguD&2meWMuCZ8b6GlpbLZ7! zFhp=aquAqvf)`x;r%1hGF@Aizuy`5L%E2U7_M;Na58^0$Dw6hEyE3}=%_V7{t#5v$ zX-6{eXIQ4$?f;)*p8mg(Qf+oxP`&3BOihiSrPWfdFR@}_6GRWkrimi{35Gt38 z1C=$+WLD4nt*a9#?0J7S_3LEVfly|^iBpPG&H?I8UF)fRWnJ*pOji}hxYAD>if+XJ z8Pkirf|{oY9|+s zEz&bzA*wC2eM3f*`P>Lx#!tFJ0CZ1{Qg4X7myGbi?}f}w1g?-<5^!~By`Dq~o_-OG zz+}f%=8jC3lI}Cj&0P+7P{&Loi#{n3QuW;ZO~jRv$lIZv_NR?XHSzgY+GX1JOqb&4 z<*wqoji3X$XoCc4DzD`q8|q2oCK92SMDiOzxBZ|@t zh6_3(1~rGqbeW;Zf1Ss3P{WFCMOPG86h&2z%|d2Vu}zihQ92u)AYiK zOz;%gDe3S{)W&UV9vu(-fdHk-`;4(}z(Db{& zyWjt&U%$L*C)4Y7w2_~FN2u+Hvj`mHO9?hmOR_+?|EXUx#>;g^VaqJKW8hk`7`jJQ zdU*;Kb>AGJZxhXND>XRTU*8wcWD6#1Hxe#dtAfYbXAQG(WK!dW{p{&lFW0%_1nU)E zZBm&v%hf8K@T)J6Wxm<;uuorV6{{pz@)V`Uw$vD8ISvl&3ErES^m*Crdy?Io?DPhu zBisqD+UyK^zRDnWXIT6Ravr^k&uMSkYfZS%+Y`}mw22qWJ6!T7Y_{wzSFdJZ>#RAM zX@ry-e@s0;o$uh8!JJ;dvt9ijWfAzdi|=YYH>o{VpLwFavI%}SbvD<=P=H`R(}57bB|mY>PQB7ZWKsTz!7?H2Rm=Lz!AU_ z+ERzc@Dk@Z30Y>)M3P#2he7!=H)fb5Ldd@(_)99lF|5Z0l0e96!JrbR@hTWYaoYAz zg2>(BpF}Z4=3S5!q1`T6j-e8oP3J$_{Xa#0|4$%QJJ7g?$4HW|_bo!X@uNU#f=*J5 zWw}zOFI|;TXjWBqEem9vMY)Pp=tQZ7(5G6q1GmFLwg>YOS|g7t#FjE@ujL3Dw{B+3 z&opK^ZT=_tWYxO*6v`w#Ic?jHWUVWKez%J{XqpPnI{!9-aJraG8&U|gW)%@+?lpF# zI!u_F#sHpw9U=hf_+zjHZ#oau0Q4qooG_(;%Mn1fW6_wX)=k$q0NDPW(z=&P0)b_= z{a|QR*eKL(>>la~1}FxIU%ADqg>Z9~WTdIHI|tifaF~D&nr1t&b17wYr~%C!PKP4D z^qd`2;>gsb$tY#V#_#%gw=6U}(a^vSFRsb|sg)lUyvg(r31=RB{J z{=4mDP9p1LekI)(NqC=@uN&ZkgtwJh&gmnw!7wZ#}ylPOO~w93dEp#3UqdqT&Yg-J#@5Fi$iJ zuNu@#T2n%hF+R>Mw*#LJDhgxNM`RJPjmPnIp(`E13NGuVkW1PvHD z%Z+34LDVBsE`CRu$VFpel}Tw7Z1WNW0f=fBQl*B$F_89PLcXT9p4TvEf3&!+Mcn!c z4=}^OCZH>!m97o{toTYS4e6cL5guw89u0G))A8;Vc@NNXc1XExco7K^KqvnnJF z&4LO+_}YeI(YP{sme9ln9>%!{i_C%$8hEw+a92^YOk6$R@Eg3umHuxeAdC z-(ghgQZ*6%RXO^M-m>cEX@5rv{@$%cKlTJ28@VAM|QM8P#NQ)C})2pg=2zr8jEF$&ImU8 za6Dw6Mlv>S?J&OZPQV`131O|;zpv`{ME`ppAEV?5dkUOF?|VtwKuuJsDXI2777Fyq zw`57>FnUdCf={o1-nadhSgO|Cof!&Mhkdo5B@@72S`<~G*^8n@r2n=iQS{dV)YlU| z0P07poX>12FzcGdfcFXhf{7uz;nFJ5zuh2)Eub`qAwWDNF-i$34#R}yyZk|3@HRNk z*zO7&!|cI~glfdqsYAo?T-m7T;p0u#-c10{&dKdsC@+&4vD4Sq7>$u zffSz(Kl0)w2Au;&(~5~AQiIsiu~MrT(!p0ECW{4P+<61>X*E0#UCY5=u)pHl#DxDs z;xD#>k=P%$!-?FV(wXWjQ_&*%L}94{9`M9wdlV~q7LS5pG#FW0l* zcw5C57KG>K4YZALx)5E@^JyQrcgJYZBI>Suw8v8&Vfq8$zC9`>1I+t$Qw+F#Kof;%Jdik~ zj79)>@FdN>B_-A>MU=yTV<`?uhQMF)xM%#9s%s|*%uy4N$w9^ix0lm%mtZI~7bdEd zNr#bti7glhU`IR*Z-j$sER_Ce&Q!>TNL~7V!5pUJhe%nKtfGy2V>qt}e@G(>f2FO5RUh(ZS0@NFGzVNg%bF8_qlRMYv6OQL=K!CVg(_g|Gw8!e zQ>>BYi6!im9kMKC0g{tWtyr{|HFlDd`tuSx7#_vh8%*4~VGyy|2wGOuEsxngI?kas zh+nAYTRM`cR%y^MpQ-jwwWT0vu)ORg3a!lc z=E3AIUNna-a`u{vtf;!)19vvH7bEr2!DuSnPB& zeSlspbtoWWSOM|mkbS5!SPRcCN$jmA73NN6O8*fy+JDXli>Pk8K53SudEPKhFoY)k z4!s2CG}GA8Y612Lp^)*nU2Mt|%U-5O5mS+Mw-TKrQwLs&>=$feYCg|B^_wcj`C|nk zaHK0UeFdYNW*_nm$7P2?lTgwL7gxzj-^`5E?(aD>9{8e3Yq^M~q%SFs&pgwcx8Hg^ zYD{&rX(l5pf;wLlogF?4?0jOZ9uHs&QOhm^8_RXR4mo*cBX8o(wRHO^pVx2v+$=4* z6-^3&@vM)gedCuKdc{2_n(pu|T5c)n`0XZE|SXWpO2o>dq@UDi86*pQRi>fs=!5Hk9v$RzvEX3$avAb-zDL zG(fEqCmYn6cby9dn70Lrxh}po^1l%V?oFPJHqcPI>-(IX{0BEKp4jh_s(Mq0A;p*Y zYr>LebUvf1ehOxgy;Uw}5ZZ=;OHMuTAbK!12e0f7&Fn@Z3Fga&1q&UiP4ob>8;reP z_^;QwVHgi_oIRet$8T+{rUZq@F~q_o1zv+>=^dhL^OpXWREBO?N0Ui?=5yjkdiR!D$Ra)uyydgp}{ql z3br>nt&af6j`JNH5+k$Q90RGK?HxZ0D-AP?D-6Cy=#gwFeMTr+TPQv(HB6}gsZJ0? z?Hz*4J9fRGCGjwbOPG*c7_V(upgNK>wspL&HQx7Ng2Lb#dTg9_dX@_tW!#8E!U(Mj z(o2{y+^8^mCTv05uy;+^#>A0&FupW2zD8doZ8IY6+an!UBb^>1U5KOH1fx9kqP}`Z zd1plVwnzD|Mg=}Z1rq~91%csuz({Xk&=^-tJ0IID&<(N!1RVmI8eExzVbXvwIw29Q z76>{8!I*LgDh)tqZ1(YY9L0k8Y}<%KF2q|+F%U8IA1$H{Occg~AGFkvoM`Yox8d7Y z34h8G5B0{n-gTg2`i?FH|=gSKmtc18n#lwOTok# zv&4r(S|cmKD-#WZnh;DS@r`#P+z|*7B?t#8Jh&0W76MK#c4cD(9cIt~xxhLrRHP)h z^dv&$%!#;Wo6E=k8V36z{f`ABdF1#3MreWA^y&-)`CtT(C&;0s zy{TvDT_#3b#DhX$DkKt@U0|vJFl+7T4LIzmxPInBX^7%kakO!cG%ISytvCtjRW>Xrb+}9fqhnf>uM!GH2}U1K#XX z&V)QV&SB0_Ki4V>cl1hzDRK^e2)G3Dm;e#WLo>^Zp(RSsNSFb_d;nmxffVd`z6Uq{ZCA#k>Z^{JzD4S;fMg z#Uks)pPq`vNJ}JyOQZ}+WPD5HvPu*>OO)12RGv!INJ}+@OSKG2b$m>rn2#5WL1W8ZR;#Y>ax$U4nmR@$7$t%dz_NXH5B|u^~R2jW15TyH$ zhWwYB1F#r8#w^6;mSGeQzp0sBm%6*BQ++?MG4c1fH_=nHI($$V9w_kF4xNQe+G!O`8D zMIp;B;~%{}&-WL9Ci7MMdS9O(u1~gp^z}g??+}@`gW(Bnw?mK_Dz-z>`TrMMeIFxa zL2*bFvT9U}>H>gxc6B(5prZG?vT`I~t70W#dk^LCOE#@Md1aQ8+?1Cc?_|;!>P1Y2 zS0y`BDjnSBJq11c@zQjSmdiyqg!oF0Or#DHjdX{~Bm8XhPWW-|S1g_G~ zXY_<*9hdVo3RBfEjIWnfajn@WRqO2d&L$%tWii$gwBr4exWx9uCb_5fNRUuxfM*Gt zbn{(k$-v2YuVDY6hs`$w&~g&rm>8N=?Wd%xlgwsFF>E||;~DKn`SoG63;z486dO|M z$t*qmlKQ9u^i0Mn>F)oGMKUq`+~8)(`+dlBg^MefG=O+MigY1j1AeHPkGzRAvP2|m z4B&3)HcV`iPS?p3uQiNEyC)?l$#B4V)gw3{@~h`=W^QB7o@wP$l!f)+W?q@qrkF-W z_v7dyP82$Y;_;m0Jjj9G#$z5nwH$HC>G1GzKv<_RXFvJ;+6!+WAF+ z{Fh#^@XTe**PB8jtgDC+wL%|CoO}uRwfaC5M{1V#enV=tQQ=l~j`+9|joHvNIqT9G zxSBtr$YQ}Vl-uvJcIl8CVJDQ`l9ID{XA$6wM`STeQXBlO#5pU)71yy+(s*O(?lV9< zvuEl3=w+Ny@>Axd*BN6^qyN@E25x{sFPfD)(emp<{KFrp1Rte3~8jLNO`Q zRN*|0DmbB19qkEu81JR(XS!hFo~Oh{RO)N%riElA{1x9>! zpZcD(-JfpjgE4AMkrY=4Nbeee$~ERhldB`bca5O<8cRmSwF!f}ri|$tYk|qN8Q;5a z1sJuqvWn~TS$EA9%C+{olk3Z!cP$Oj=#h=$&vnK1yH;8QR;O=AnxnU0rJ^qmwn7zW zcTiWHy$^GoRND+g=?XeTVK6i@)KX=pcH0=x8;whaFldy+Kiho8AWL=BEt9DQ^t8_XEw8}&!QFz|=xA6km`w9Nn#bOx zS?>Psmh6F5yEW{Omv^zgY^UigZjEVc5$dY=#rDiIwBCC1+o?0##XfDCaj-W&IoamNXtHKv zR<_5tVJBuKg2?N`ZIi=_3YuJ^*_3_qealUY0 zYNX4>ZH?e~k-AkBz0k%CQ95K4h2bou#8INcre^2!(7Vey4Q-3?M145*2k7gjS?xJ+ za*%lFDuYw^loS_;ZsscP=nG=6^)-1VfVB)Jlo}^;np8#*PxDo&GXCi$h^0|0P@wgr znYo3<5>1G$-$5~-p=euS%#|6WoNBG}Qty5@u+c*CjBi$B_daqZz3>p+j7 zvgY;l(zd(qr;dHNr&`KC;LqRS=0HdZ$vf15x7Ociuz~kS+2w%(CpeumUp3JXX+9j@ zxNbfuwV$Z?Y%xBmbRH+5nRFgFP+{d9O0aYE=*{q`igli)bILWQ(UfbEg(IVKJXGM^*&~sK&`5oy9<*)| zr;Tb*CRi6^M`K`(V!VQrfFSQQ07x%^a!N(G>0?6-!k5u%aYgv$a>FbJmoa)%MTBi* z!|cA7v8L$7|LD8q&bo}VRVpT385`m6yo`5=EB-1)&?vlqNd-EDSKtq++$D!L!=jcH zYK?)#ztX9{r;`I931y{rOnuNC$5LPC#V=e%;goHpQ(?(W%M*$5D*he=FW!-VV(P@L zT%DvBy4>P@m+69upbY_K9qjLoYSOn>HS~L;RH3{HkqCe=Nh&tf)g!jn+Oo*D+F!CfJ zRntJtQZRusZYEw0i>QzBt6#4wsrdi-_oc%dTWXx3wa#CA$8@e`Rsfq$#pZNZ{f? z?;3C$-zPW+TlB%U8m51oL*N88jNkohMD`!2J+pUz{>>zS5)K1Bcm2m{PlAx`pQpVd z>5wWdqY}M{l_sn1DvuXpH@Yzvh)kr?(IuT?64U28t;b#ZG2!eq6hj#WaDCzsIzw2R z5)*F`Y!u+Nyt(3g8kM`a5yLI*c#xWpSqrLL^-`5ii}mf(Wxh(-B=G$Q;rF&pb}q5F zVIMF^8#_FrdrD965m%anmfrX#Q#n`ALmZgKNIvkdzfwYKzy-hQg5Zkz;>T?j92(= zez=IAk}JOotn5^UeQq;Y7nIzU6&ip+K81a5vXMNJoz> z@esz>^wf%@oAFUQrSag$1E}{_u&p%!XYB#XL-k)TcB}$~D^D((_1fGs7bQP#UH+ z;#~rwq8ZswdiFuF2~wLm%FI3PNG}Ka)s<)D%LRJi7cinu5Egon8XV;MvkUK*C%hpX z0h3yzEi6s=GbmEcdzniyNjb(Cg~X4@ttWJt>MpO9Hhn0<57Y?*U^@+ zY1MPAlkPgSLoCVa`e0$Y)i7akYRtaFXxv|G6Ve;PmF-NNHNSUv8K5pw!D{L$CjA z;D<(J{~5Wu-|$%Za{uqR1PJ6swt4pADvC1rxd>@TmgEhK;^FBkk+N0|O_?=&8!i41 zL{BA-2?A{5ILLEgonU-R$a}w^uXi@dSjm`BF&<1ctoS!%p)PeVM79^3*Fky&?JWJC zOkb`4S;PM_iX1|^Pmjc9);g#vSXoUU2`kGS?vN^{3{OzjP$ zyX=NqH(1($MqZ0CD;`YvwGWUj5LKy{;cb3ng1d*Jud_FYa*oZ@!l{vma$(nCr0vZ? zEQ=)!OgJl|XB`j_e~lvmy7{KM+Wry9ZHWmDKS)64qCTto55R!RbmBuZe}cr<-yy zj4HJ#g~cM$+X^}5Dvk7s#WLaBO11bZ`Nw{w0&y)Ht%89cDqbp6?{MJ@ zk#I5{R4IUIZA(bvM5Gau3%L=Z({J9N%(1PnHpCPG@8VobIC7+Cc!znv*Y z^7Xn8ut3JZX_GFYEGC|17^$Uz?2mA7)*o=*v*5JB8IE9hS2M1_rY8*4QoAw=j@(XZ z_zG}txlJz`4p#&NvW$!w7r1}@(kAj=UaD)hEUj4fCF*XVV3&@IHQumJ_o7;3&zmU; zy;q^@9wq1Cnt1NJHr7qWbky?edQLxo^O9)pruI2tt=(PL_0=|KFMc}7K#KK>!ee)e z!1^n;`&;+Bo^UZkSUts`SH;ECC~w%+=)emDv)srQi8mQP~J}XazT!7T1_n zhwDRhY#N)`rqL}oOEV|EKXIjg*faV#oJr#w%o%wpfboNSJVcAQwmAH+F)eH5hYxwk z7csY_je?vclhie8Lqvi#a-wqus%n^^$39d&3O(PvPi*A&~% zc?d=2qE#&C0?SRc#GD`+C{BHag``_zhVm`5H97Ju=lkcXhncqC`|0z*=jW|=Snd5t zDi@(-FWbnf?E^$J7m*)ccCg!+QOEWXGYd+7Q@ctkgy$|pX9^gZ{90-3HXvlY zW)vF3dtpm5%~F?#ok*$tT4vQPq7gUHsLd(nE?R#_%hY~3RjzZL&p~@A#Gw+vKI<+6 zvp+_mfS6iVW}^0yLW>wVX%WoUQZ+hp=$Dr|UA}o+bi#b1&e*j$HN(_QWqU$l-1Xx} zoo9=zG8b36knYACPH!y5nRZ%NnqJp^-$U-l-~*Kf*BOH1=hq8`gU;<*ZkC?&7Y?F| zuHExb_XCUpd|#uo%t4f%atjChb@rv5E=^GiCN>5#sniTAU=IbI`w=CDrXxS#?=i z;Ls?QY%lU9Lu<*oMVLSZ;^Bm}pLq4Gip8aC3xvWMPBd7JyWJ|?4r4RwgIGUzTFN`_ zi)M0AynWNdCir3a35{ignfJG9u|x zOsyYLJzq~G3?5u5i34}Kc@HH!s!*jxVYzyG+E0F6g$dz$&t z)P6mU4H-?($vL~aY?(aBqZD3y8aivS&hj64h06>0Jx#c3{G`0HW;29-m+ya$u$mXV zRTysSh-!{N!L@(dY7(BW>`fEERQ8bVN7l7`LNd4p+ z3-&Rb2^DsusEW!n&1BOuH!_O(g^pe9t5R*U5gJ{NF>Z|@(L^S0PL;Mr0RcX6nH`{k zYE|=ASh&pET~ljTwijQ=rfm{W>I(Ju->3}-bMEC^0>(qXC^y;e#WD+9Ng->4@bq zXp4EUckHl)I5Ce^zYTVZjv=%SMp6c8b? za@;9DU86hwYgg$1&K&e_*r@;678&bp$VgSGE_u)B!&M6#)A-d7s+?=UBvpae+vq`# z-y1TAurd_s^&E3H#`xgizedCy~BaboYBe;O)%e$b5X3h&B>l=j2=^IQ){ z)ZfIu(`UbE2&`T+b#tQXw50q?jc(@CV<^$Pjr`YUf$z^4E6v-|GMe8)F4yZa~V zsJrgE&bq4iL;OJoH$*+cgX$P{p{$JAKOnl?(-7{aLxMcUHH@&w9P6d?HS%yW!iedV zkkCv9k0i;)Zsiz>Y-3{cjax)esWcRrO-^F2F(#sy6q|X!N4dW`h8g4(WoAP$muE0G z9a;|?qe2nGg)__@H}4G+Q~JWkJ)sqKm1gTRMx^=0dqs52P}wA6ix!hsW{H$<4=G?F zz>!dgMal9^F#C3_AR|hMmOYlDuaW^Hs&8eVv4Bp68@b$l%wFYrxy70Y(x!m%fOpclwmvHL4w)@nR2733~?R*B79!=NOtl zCZ%v6Z<|CZYF-#SzVy#N@jNXSc=+NyQS$ldp@&*1?GF$Oo-tvb<4 zRXWE~E1l~PwH{MddQamkz5m-3xltBLiWMNYp1@8;jDXq`JVEM36)pO{kDAk@%aGPD zU~y1{##kfVb4I*z2>jSbcmUNRl$(bwFe|C-vlSM@C)EjVE`+)59G!Lo!PeY~FX$$Q zWUE%}TNVVP2X59p=Bz|rwib0wtxI~un^GFYw#f_&#Y{g3q>|hgA*uutf6xkVRSvEQ zY)RYtDAQ5W{;E@%c2%r&N(6&1r7-u-kYgl~(0$b#=+(W*J0aivE)z5Y6FcqzfZwdk zp=r;BuVsiiNr$(+ErLZabAV=!8E3Ivl{XcXi*bG2r4Hi~T%mUKQS8>e+5vmSW|`f zWVwWT=X^KneRgOO=#$S{T(`$VxiP^RY+jS5U$07-yvRx8z1R1?tCD(09UBZNx;3cZ zEk3Xx7i2{16j!+%#j-XR;Oji9vFoi(zP=~odCebJK!~Kbfiq}fy=_JP1GWVh=RZooaut(qCZ2h zBEk`J?Rq!~Q(Gj2&Y)|5of^h}6|m4MfXqK8ur{lgotQs^u0F;!_dy{vrNwq1P|3fH zYk%Hm%yb`d&b&-}f8G@!^_+;yzs_fW-dD)?7;0X(9axo|?HfVU;upEr4#;6v7<8{W zY`Acm9KcEMN{V$&>EJ%K-}c4ub0z;9798_?mn%(>*SxL52^AN z&EDPv&&@i0`si29Tj?8F{ZQqksAuglUe%lYE|YC_w0+>T=J`)(=0ZQrgZ+UJ_!vcg z-z+%tQvHAR`*$7rKS0@<7rR@LQhbUBuHT>`o!FWyTcTH3Lqw1P&HYUV0O);(0_~uyEJeJNcbl^ zg4~S!xIPZKPWL%`K&uddDdyF5Cj`pSl_qUvZex{}qS*TbY2e z+mWmgEfksTbHVXzFF=}yI_WGV(TFOJhtlq>nWjWM0gcgj&_kF)iXdAe^a@lNu|S@^>57LBhZ-J8vy*D zS%7OILvUH_LCXanZJ@eExW*H8Z#4aeccvrU3J znpXAJ_7GTHYBj346;jGt(E{`q{G3H0F5HRX2QA>p2;p&2M~ zuof-my;P57zel_3D+8UnDXX>J2YT%7DOS_@{N2S;<%;sMH(_r}Am% zjxbsOR^P!*Q#8nU0*ve1oQ)IIGR@6YErTIUw6TIAOPB2D-gk5fT3yUFK^-nP^)tdbiDtI5utyZ+$T<5-mysrKVv3wWv(W^m`$U^o#>ajhAE2Nm*r;=6#*mSJjFe6#X3= zv8+ZTHLI#AN%1<&s%Ygt$*zuryznl7uQJaXS$6|eZvfV+3sT)q>58OLTS~0Jhuk7N z8*H7xw60p;7!1#qIRDC8y(})XIgEws(dDm-qEmySu`lKj!>TRF;;gBl%5W+QD$8U` zz&FTX@@{^O#gtPhQ1Q7YB@6I=fNRl}1sIJhPy?H8bs096q-ZNg=@k*7*vS=yd4SHs zh}`$@&a=F%WcH-*+v5Ho zSitF>zth9xhW@uItk!$QnSc@|Vp@O$3w95*7?24`5fnO082g$CcCrBEdj=mYtQaZo zfgUKrsKBg%f**>`FgU_0EWZs?$fhv~6mUeSiR3zr+-3)igt{LLcQ*7Cj1&RLJ1Qjn z3z^Lr3=dJBP! z5rPb5NH&rd#+ZT&gULT{LL4M_VfC>G$r^7Wh*Tu-<2A%*Bj!RB7x!^$o`w0BkrNzJ zjN$t%ehCXD#zd7Ek!^8}aSEZ@q+OIyBXEnM%O!?dx*S08zqBYY%m=3pl9{taj>}Fv zCVK3azz9~3-w&}QmN!$7xxR?&LZXuPz#G%tVNde$+@%e5A2MSk$tVSdVf|t&rp)Ia zw}^Aff~ov^#ze}>aG=Hh_BkYrwG=jLOvqXGFu-{lox+S_MXFALzM5|X@@-|xyI<}P zz3q);TFL}tKb#YPD(r@T(<As!%yI8+IY z(suo~Y~a5y6I`x5f1Q(<1B#1 zC}}^luM1YGDriMOtP;Y&7YhwFtTx6t$5yZK#5zN8U}z)`(}w0ru$CFnU*sLIcjw*S zNllkJP=#|{Ut)OJqoZFOx+F7gh_N2D4__e`1M_Xv{sdj=J86N%un{(p%(dWv-W7J$ zgwEoDFYSF|m++Gf6Z}kj>iaAO_3TkK0NsH7!SFL8=x{;^YGI|fF{Ox+8h!`U99vb* zQ7GJWsOW=SqnD74IYb%1A0t?70Mo5OUV_BzXkOLAp z&$bEIB^M5OdF144?^vpxj+Ti_8HIRy0r(lN$}b_kD`#FW0zf9!pkD z_0d*i=2Yu0OSrm-xz0My_#_*vLT$`0J6YINdppF>RB=b4B| zw%7?1JPeJjT={7>B#fTpPejjlW;jc0-s@MAzB3B^wKFYb07VPl1*ZK~})>^g^-#5ciZ{y%0b-)}C` zb?SAtWo?W`ALf(27aB1{U4GCTGs9_|lp?Qe*Oid~%c2>ZyKpR!!P*y{EAa#<(GFQw zIxw7n|1R1{t>)^7Q4O@6VZ22y&=)Zm3?C)jQ3&UOA3OyzUGh&mKn7K)kw|=(aCT*A z$OrC|fSs-hY7iqg0)ru#3RDV#Kr=P4g5=55XoqwgyxYbL*7ubFUwN1CY9R zpyZ!_<9%L7$an8y%{&kDe%>U+|Emqmt2a_7n5Jm07lj^#iLM_d#okMjPWU8?(%{|e z-Kl3(Fzi5yjy;~+dzsZ1MQLq|AVqJ$USyP8%wB!YPL;XN7Re$flJvVq$8<2#XG-3KpyCi+2$YN?3-kU0c`WdOY}c7cYMY2{|Lu^fHJ=<_d&97 zJb^MVZVVu5Kv`G`$Y%0It_VaO4IB`M#aJZ>p7X{!381hDidgs_oEAjaj?z5m4c^Yc zT*1W#ZPW=85GUx%iyb_{84S%uD?}Z@$Q2-V5-gb!BqZTWmf?>%5=_w^IA~59i(;7_ z073>5Om65HeH{`-<_%2nE~$r(62OiM0Bs#X!T#m_5)K`u5aj9*j$8rF2klk#g#4Yv z3qjG#tQ^(I(amc#yusAbo+~_tE&?RB*bTfNlsW*^s?9Ay!VSAV5-bn|>pBu>5P(9= zomq}d9l!x;!S%n45w|LCk7QHv{v}2X`$c7+$7SN7K-?b&WKin{Q7roPBZ|Y-s>No# z&wsh#=2bi@g<2V?)Su;f`)4u}pt2Q`>Rb-ULWaZbu1K&L^cRfBtw~ZmQ7D%oS*}bz z7R%#FmyqjHyZh6U(xEW72{S>t)?{vd!?e~+D_LPE(MprgH~U%2 zjQY9j?i`mqOm@In-;So)688@|QO0}f?rnX}N{*N1N3yUt^cg0R z?F)i>zO5g7`yYzoT(u0VY6OWLuX)+SJa1Qgj}5>3t)p!`gg7xnf2^WLEo0WwHbWN} zIrH3z=3NQANJ6c2Bae|53qmivEAZ?{_M_)q*B`y*TM+_U5m`#(cOOq5BUdl3>6UX*a7}P3vQ*9r)j_n*F&&mq|YO%@l zEVRbV)9g4pi*rJPR>=(_uxSq^&Ce>2QZ?L8N{U|vUr+LrX_YK9KMga?Vsg@4lZYsP z19@_*ia)*D z#{e9LFB+!j^R9T~NR+f)yUOYHrK)GehD{gMl$vUjeMJ?R{^glKC{enLP?Q?G=^GL) z!?Mc)KNAkjK0gn^`+^5@eh9J?qAPpD5Qex;au-lR5CUf(2bGz+KqS1LhI%EXahQE= z=T?$&!y%~)zscs#gPpaMnTkEoiPZ^-HAi`tAItWBPJ*iDeqQGPpBPb`fxGEI>;l>; z&ctv2Fx^=eiXeT~5%r{yUz&%&>qIcTucBE9o~=R_41wA3!#R>D`=EF1C_AAM=D6oA z&-1#-gh5Jr2)I9b!+;a-b1a(dCwVfjU-Wvvz+W^%R&vk?&lZdkcFEH5p6pHac}3X$ z_oyx8{gr_^{+<6e`Bw6y2>WA@>|Os>;-PS0`<_P;%Kzp!?n?WjWi2y;UIM7^iT4iw z`ypRi`;0r5izK9^q2N;_sDBa@E>KJ&{8JVw0Q`c05!HicQDYzw`Cgq0F|i-972FTE z+7R-51y%UI*n;dp9|kCnEdWHQ4=A~YfFpav&>Lk6Vx1&LV2lvPPcn)k+}xQ9dhR0* zi;D(l+d(B+9;6yaj{Yu423grI$bOrE?u%@Q94;ZkMCup{W3mS~^(?>+Xo#}i+=bkS z9^`hK^B06SMjf#z`^kqK#nEj92|^<(XqJ$`zfVf=W-jhe!yIqoVgg_6(a$gElw`M9 zgfHpw1+(l=j=7(K(`J$4S4vDOo!p^U$h z)_XsM=0%y5Z$(yaVlyLR%$UU6Mom?5DSLBUnGh##jQbUG$Ygr@OMD(Rvkc!HW3C;> zQLWxWGJ%q6Arc5{eb$hxaB&1rbHe+4$dIt#O!anMDev5=l)G{-#X-_83ya9+0i|k& z0TbB2>1*WM!K%eqEIDu4+nC=#KPgfeA$q^YR1C58Ma(^$48FPw=ftC-Ll~O@t8HRJ zU^~Kr;Zg83Q*pl~2Uj}pSbWE^P0r8Wrvx_iT=_Ek(1t?3@Q@@y+wCC}L!5IlGB0e( z)>Wqy4^kMtM#i6Ap@~cXMizaF@AxExiD=F{qdwuW$QYzs(12t%354C)Mf5#jBT@%C zLf4;Nk(+D{QV?6K4Sx>QB==N{C#Qu>Q|^-IeO&1N^hPyX5-~?1TOpBaT%V|MYpKRq zu}0br9|o?cwbWCHXhRD|_@7`VTfPk(v8-^PkRY^H%huY%7)ESMU3JXH*1D8SZ=Gp9 zb*@g;y0uMgU3ooq?I6^7j7V?aW<7PE$kutSOl&`PKJ{G3*7+Pu|9M@1>V2N7^Lv{3 zBRZIXR3%JAPE3;Ie@%)r`%Pcn3=0#6mXv%!d9cC56-KnV5CMq;LwP*_8o@nAtL!#| z2stpqIkDZzlez)zb2kJ%-g*cH&y<{$SxV*lcO7&{2D?dHk}PqN`>J>SH`W|Ok@w;O zBo3A&qDd^&e6At6X<@Viojv2kRUKTs(lp7yC=>WQtqjtzmowrdVz~O>B7WEW^W8_J zyf45h2aa2koC_#|Sh@+VumXwB_ru>IYd-c&)*<0JX6)seu$FO6Me!F0$a7*ke!raa zctKzoyt#|u(C6O-pVwz4As@3VtIzP* zc+^M29!k<>t<9;R)^j*mTim~&>09%T+b_#ki7w=}5NB77n?1@a-d$LncaDbkx>f8W znAGG=>%=@<~(fgE>jnq0VdLj61oh|ijfjce=IoXQTtB1fXNXs;%bxH1!e-~0sX zasJxKHHks%np5djb^lR&?ai2d@LJ10PK9_zVZORT?#4|j*K?`*=ZrN8=EdWgX*`=3 zf6pwby};Yf(H$=L1i+VQ4=d!HARKf0GR(dBLG~c0+_NR;Ce$sjYo%nZ%PI-C3#V$%|EP?M-h}LF6_V;RgTEe)2U2Tr6>@7JcMBw)o=-L6G?T z-f()ZCEwnSFzwzNi+hr-e!uT4^O;?-yT5`bydtuXo_grM7}kcKEEVrL*sAs-Ys>vY z8p-PY$fFE>)cNzKN0b$B~YXDEZJ)R>fd;!&W8K_&V-Ume^SO z^-*mSkygSGj&3HMhG9+55f#uF?bH#e&vtoAQNJ@h9s47lpCf}TVyww*^jUmz45Ra& zW9*P)g(EoVC2R_Bqnjg0S2Mz9Mq{@;IQ~dPEqTP&L17$u#BGjplt5EH8OBbu$2zq~ zsno~bwR0>pw>+H6k(W^m|R3pslkCgnYcw`)Mm zRwNNua&RL1IQ2*B*P{zjqsz?2Z&*ZdygP zL#PCRU<*K~DnOX7Fd%7$ zzf)1zWRw}sN6U_cR`Il4jE}|=)@{AE*dB?whu6Mj+gg5Y`5CdRc9-29HS`4o^MB&B zD$>q-M_1>0FmGP0>$}ZJY5zF%&%D{F`}^{_bK3j$OXJOi;JzetGv%)A3%{LCWc$hv zP2k1zP6iin4zrqP3H@8$Kz5S`yD$Xl43Z=gZ7+N@^enb)*EI$QI$xHAHexT5GL5>> zlSiSQG>qXBOovt^?`YSOv{Gr`hw}`ZAdXk-h%CAYhMPE1bo|6HiPUP*Bo2{hY$rk) zl;$8hCnLx-T)cPXFhce>jCm-vm;^*9X4Y7qk(JR4Qn>B-%3-=8rqxM?(q}MX>SCd# zR6b2h=2mtHAIwqV!8HbwY0P2KsgLtfKd3x0Q*IJcyqzQtgQX=RCRer^Ng+zyvDzT$| z7##x+u!K2WHp!$&u~piPy|Vq9He#FK_N$>Nw`$dF+wEdH@we|A)PKfoqyInGpKgY* z&8u&Q@!c=}!EB?y9sNh0ag4gW`gWYY?c#Rge^Y0?dlx~Kp}HBIm$h!bCrelP80D`R zMYUDNm4%aK>24O1qB7y#i;ytOuTfmLYU*jFG$Xp5A&L8S89|=3X#3a$!TFE%Cz*vC z=%sica0KP=aYyXTjb9#m0-H3bpLmI31YIt6n z7rpN(Q~Q2nY2W8_1ODgJ2NhR!>g}HM!L0La6$`23X>-8d?Ql1q=;7-4t=8}QGXI0` zDKR;JVXqLcVG>F4?)A<1p&^fm!erIgl-ud zqUvI|33H)DfEE{kxT_D4)*^+kE0dz`f0=Gfcv#kE0}Q-U0s7avP^ry4w3QQ)V8Pv3 zSuir}56m9%7-j*}3nHi%2~LjJhFE z$fz*}--0C|SGpE1k#JY=wlQZaL?k~GlY*K}D3ZU0#YNOQ5DV%Q*EX~dM<#_6T@=!M zKo13?D3MkB6pIxUg!?O8CTJu>NPPCQn-MbLbXbT|aqQA}YF>ph|ihZ9+KbK_RSa20(>9X^ErR zP)}Et3IkA2FWN8;19Skb%DRrn&tZoGj#tXP1SrQtKR7HiZ5d{PA`B-MSw*kXsQxif z1z4#99&Q0fKoqsc#r{7>DmNn8(r;wIL+x$|0s(zF=$>5K$crW)B|nL zdVuPP&|{00FTLpmE@KA}lA}K1TEhI{Rr4`at-0iTwIxdS>SAqcOP#D88tL15`Kj{s zgE+h62^cYQe(4{ZsWl}i{B^;QBzOwr=o)0NHR_Ard}C2>HNX683WPHNx#JK%WvwUO zv0l0?N^8+Dt+pokp?P%sH0byh`8^>Uoa%8&$j#L|pj8{xv1AO^_4FIhc^RSWKeoD< zHiWKa?=F$-wc&*^#@f>FLGEjGqsUpu=Y9(&vQ9%1a$`<3wlN{sZmB0UvrWEyJ9t-X z?NcsmOr489#H>pP{^~XSlPDa$1@PjkB5`xdoZ2*|$;YO#Mr_Q6iVHkzI~bI1^+ z-$VWD+2<$Lgck9e5yO~!!k)n;uuJBcv%Mc7db-Kl98P=mwtWWttKGz=v8flkDXt(4j*=v2l^-3FK&|5JnW3jH+nvbWJK9WA?{|g?!igN*o%2 zyc!u>e8d!pFG{3J2n4kT4o2^BFf2z{JCSo&t7b2@uEfuP#+n%;N(Md*}u9eSZI@PA8Z z;XcCZIr4lB2lX8BPh@vYboYa<@Plm+0ACGAehhdqcVFcU#4hj+HuvxsM8QZ5oCycP zRzQJW4WuhJPNsBEaYJzm4+1&_xx0g42?S#s1Y;+FP*Q`?L0f1h`X)FA)Bdwf1AN&u zw|_(H_G3fu=L>vYonXpv&F%gl@y)Km#OupeKeU}uk%|>c(iCm zp5<4jm*J1IRRAcbvH)ghn;pu9GlBF5;G!pYe+Fa3sf#xmkL?1NVJPwYfqm(j6>= z?TxJahhrUo%hQ3d6X-v)Tr^kfRmt3A-}TQHr%h+_B;L5;M6#VMIX1MH{-y_-qXI`P zH!qwHCo%`(K683(PGz_B|CabZO<(;94kyt6^mxTTsY%cAmO~lUQj{uWU zYF-2>ss(A(qi#!4$gjZR+!0vYnjwJ&CoiU+=(ltNd|5bN4cha9mJ`E(~Ef7cCFCmvd%mz<+)};ndNyF zk2DMUwwN>(n&{J>78xG2S;r{?cCDlZNpfB$g<)T2p$vjyoH{?R7RORXzXvF3Wm&dt zVGs{+@=~uVskcO~ZkYDcs8Qg7`2t4rjTF!;m%bpW%_5V*(d7H=&DZr?(Ok&L)*cl$ zTyQVu3GT<8>tPTkf}*l5B-~#}PCU=U(v~FrhM{KlZMp1yKXVC21SS|J{Nk0oMWTY% zuCnce=e)QcfD-=y#HRgcG3my;2(tVSLxmMx;LYeN(8Z{=vl|&~ihtpUm8{y_5sQ7# z1EJF@i5oEZY1@MrNIv$*6ZqjiWPqjjylUb;56d`F|0SO*-8HFF53h!++g^85ZQDWa z+uTE8;c@MPxuZgp`%i|VGIS+2Nh60@BX&Tx+JR(XXn2rmI&uPjiO1 zqvj30uH%mL?T3>ds=KcI{ldJ02Naix4y=fkS?jPJ#U zcf9xW9=~Ak%L2dF2jvQ{i^L;j=GNQmaN8ksyx(3|{@+=s9}h5f{$FUMqZlf#7u{-W zAX5(LjC!6mcpch%w81+hHb2;Oyo3J67TKp_FNE85Fv-_sF9nz2RHlOi-d)zm=&}$Z z?np2qI0-m#OMKwUu-46Epm5lwz5ksXJmNgs@Ed`m2pQ_NGvUTAZ1J(kD0hPICte}= z{zwO!6g`YtAmJyrL=Ul4VuUI>@zFbEZzRQT9HJl@F0fDx>(jyigH8`0W;D4EC&wqwz(y63E zFK63iVti1PxuABR5*ocaND(!@OiP_wX>WQaQ$oAsudxJkrYYaouEn7;`WtKZ>nq^_ zt4_`4H*vbe1;zTTTH7#tB`}~$=0t0ydXF9I&+W3F>iS9_|fEiv0c3yf&JLW8OS zy>=q5W{1>cWlD{8>@7gk4_N6^l6y^OV2i8OlkiAHAZV*iLZ>-4oK`#CL2qWbpHXuQ z(pGX!Z~sQN{s&aOy~@ykoM#9IVtlR*xl!{(3afeXp~esab+g4xy{q={%5m(T z;)tW9+cf&hZtm^(T_Ub89sgTw8!^9Qt>@F*4i!NCcT_=rD5H)6X4|T; zh-STQKAsV7{AwpR;&mL6v?>^xh7>_qL&B5m2C0ARa01y)2yf#-yIFgeQcr)fcyrpQ zjHkA$U47z0)givKCvdDL^m~S?Xm-({N1b=ZO=|qRKBs=sMB>zS)G2Q17(4~FX>XnF z(>EjbznN1Kax6L7w8s?ySW<|7wxYk?Ct~MMb04uTaqjrXokHyLl4JLUXg$b&hnh%~ zN?5TC_#G+tYf~kdE-HzpxseiKEM|}ORd?M`X)MXuvDR4ro@CsXMMfwWQ_Q4Fn+Lkl z9WvrC4+=rD+kS@~h-SRmolYo8nXT4T)Hk8@3Lw8lzuaPktWC~wmLYRA98XK+s0lm^ zdN_2Kp%;@SdXYm|kpJ!uWP?xv72T08-BbyyXRsiwUq&0lj}q*e_F>NHn>g?HePX1J zQE|E3r0n+tYM^|_xcc;MTG#s_Q+&sy`IVxxt{7QcVT_={FK75?9rFYV^`gAr_GPP- zq}0Cz=KbSX=|)pmcvjcGj!5p!E*av{|Eyp}b)9&|iEPSoXjmmSko zz@0xh%-dq;>-+*c&2^!8W>X?!5TC}cH_xzs1#GS5x%WJE{`C>}npx6&f;*_b4hu)x zqXItF!}Z?8jc7I^=0C5$>t4DLy-#uEo1?6d!L;V~++beJ6UJX!?|M zuADqiw(}e|{(Lm%>FlLixZBnzyvro|d8O-*4k+il4+Qocm6H1m-gTc1hkrtl6NBuy z_q^J@yz%kp=|4@t<-Kj?`*{QSeQuKb-jBumo-B=DW3IhV_szR!68n6w{$3o3raM2X zyE?bISso)-Jt4Us`?LJBrK^hspgwIV9MU`q*1T{(T+G13?nDq*(UiM?6My*;`b<6)%j8>O*UWLmR*(N3O>WB&QxrbLXrL`f-2=I`6gWqznadp?^10# zb4m!-oD_QPUQ3U%o~M_Zm6oT7Vwzlxdp$Xr;w2}m)VN2w5KGR78`S z)!Y2rEKfyitz6DEjGQ{p9(P=t#hetD+QF7X>!>)fEak*4SPPe`%(=|cydd}Nl)9ww zll!bFHOq?z;O7N|psosu^Rz0Xww1E1vAL8auV@%&x2_EBjiO6WMzyYLs2t}xtIfN8 zsYvT*IHjm8aru3&;e~BgA~s4BsgO?e-FTrW-G(xaufZ%Km8XKZC~uR^=OWt zcrDsq)rQhGk<_?_8jf)=KzhHyiQ*+Onb*u(F$$ACRx0s&ITAxfZX5lO(xO;4YQ?~u z=26Kce?xNJML95aVWGE1Ws`I2QI>PvjWM)sV`|=0cCF?;*KJ1%LC&_tpR|^1$KC&f zZ8u?p_JuUcxFvkw>+hiZUJme*`y{ly!}D0$*Kh7HKHm4aBRfUz>9p=R*Xw|zP>J_k zs$<*j!ePcv<+8Q-($lp*oWXLfmyz`2vW6&B>aNRroA-8%QGWcP)0~0+ep8vKTXe^m zf%j!zzRu_TL?1Esu4C9&>%}r1%crZR`}uBh4GlWkDTMJLv(`2GIx#-#ppTN|RK^HT zE3UD%Wz2RD!KN}8@*Fvo^{X$UPaJ{q+20-%Ax1pR8q@sgANcNLzMt{RG;~p-~IYJSHZb?w)F2P0z|3oDdHBf4sWD|FFRneTt zIY6ULZ|71cuL!^~V^EMg#Za?+MBk_IgvX4`aW*q4&$Iw^nCJWSq=lvX`3nmQYekT_*yRtm$afUb2o~3&Xc13 zx-4rqZx2oDiW;TNT48f(F0!K7Hc|->hF1@gadDvP1c-Gz780yq4eiy3rzMOT-i3%<=lN~ZU6c}K4>zn;SlEGM z*Xy<`Y=?bBAI_ytgUH<#0#2l)=tNuGr*Ip=NM$OuPM>7Ql=0%z69=;@(<{vZcH5q@ z`O1D}hZAXtl*fXCaXcqQGoqd6CBHtCF5c#QUr%cGYrCYorE9$!cc!Dgugc#pd2f#a z9q-pD82-j5eH(<`=ZnH7A9o?vRo&N98_;~``_B5G4=q)$U9Sz|(|(Uv_WE8=NWT6) z&n>0?{$E-^^vWdO`|N7&H|w1W{1(a|e%((hD@Y97b456mKyptHkov=r)alm~>t`Rh zF-Y%`c4$~l;f11K{A(Q%8$YUymg*jIM? z)ds8vTHg-W8ud1Vp9N9gZdZeyx~#i3fOJN!PAf2^GOg8%-M+|TDXkyP4LUW6+AwAC z3r_lzIuy=V-75|HkpZSHSwFl;qvz8X!t}P**)L`qSLSO8P=+r@Dp;G2rmkCd7f_V{ zQchpfDjjgw2nttvvEGHUXwO|dqjU=9l68CnZI&K+=Av;poy6N0DrfQmqO$Dzn+9=| zum}h#Cb?+k@&&V4a|jTs%qjt(|81Hg(=hdZ4BN8Bek|8f#eN(o!+2}dNFpi)FpXg5P;I+PE|m0ZYS_z5Kv?!1t_a8qNS^eTtB0&%{jwe zu1;w@v(~7C+=wEr3>rEw^(|YfXq=SOvZ%qcnU~5WH2H?2t*~Eq zFWU-OJSkHwYq^!Oq5E-;CF$5Z$Z0&kyds(q?BXpVlR8L~0Pnl9v#@G&p)(%z;qKiK z4ByS5fUt5YOZ5bIqWJZ^~QzSthDxj1}1uOMbYA<}o+ zoI3?ErreUO9zg6OZCcTLy^J}^TfQ2+zv?>wB`wlrRg$geV-2{gUB8`#%HO`8Ey|<0 z9XDp|x|H>G_49UL{QgJs&AwcZoK8pn-`kahk4$+# zU{(G%LvevH?0WwNX`*iw!+bZE@&224`QR8Dg6};@!SljI<^c0PM8xYLsKp&r#gs1kq4@3!NU3DbZ zr;fmQbVH^>4~eyT7bgbMM8>S&feiE+BRzPG|H(B9b<7m4*9F1-p_nFSH-HC!o zce2%SawL;|;vi?`#&jS;bb$O4hw@|;pss9Y)4_DG*g(=)8;j#+x7EaZ$1!>8E`r@J z?aznM(e4=0pL-T-#fwF|IfF5uVv1JIev0I)1*G##!q!(bZDK8He<%`*BNWF)e?cqt zEL2hCR-Z`-1^RzB5Gx=uNhV2Bf;ko$c)eG){^8FT;Xom5L4i zI-X;@6%0l8CC>y`k$U#6q@YpB3mq4ASPkSf&j8ph0J@5iM{?`R#vEMwrfME7`s(>t zo~p_gK8ot1!7Eyv#=ao$?@fn7(HNb7)bJRJR$Hwvy0$2*t{N|Ry1v)Fl+pd|tXiMA ztN_)HUP60#wYD?5R;s#Ig@3BL9PksBIi|QHT&gcl*!Es3*;blp$obfV(U%O!;?DI5 z1U1zwbopFpQ1sFmyh<~0DlyL-E_y-oWNA`4Npo>af+BJGd0HaKD?;!fzzeP7DyUAU zGPDeA-gRBE#ZDPnHMV~qL<7r>O(g<8f6WTZ41fRcpJ7cS6Xj5ejPQGtr-`qgD;lbi zu~rVoak-WAig!K==KmA;&?1fz~qv`n@-MT*o^)UsUF{~aqI^^3bFnCnQlN>I{H z?B$-pb6s4#nMs_aWNZ}p`|;!|FbMU)`P1viZPKgBJPWHk@Z&8aLcaIm*u2iqGo%yP z`xL=-lYn{0nqM)C1$b+)S9^QY0}`_IGVDhBfi?f}xHhi@zn$@4a5i`mI%0^}V${S8 z*#>3B#$pmwP(jT}`=rO_hlETB29H?=7sURp7BUlx`@;~5^|4=nX*TS3qVQX{q6Plt zOMTea7#gDV^DmMsCSTScM$q;WzjAIBqMRm{k9Wo4j8+#HNP&sAzfvIOIJ|{}vE+UY7tI$VF;_Hs2f_OZ zM$=d#@TA9Y8{D+we=KPKZi{UZ z0tMX1Q|0STr@t;b;)9%OX_gs~DxxU*=$V4z2W@+NBq|?DJ}*ZJ0*TF7vYHw~Zw^U2 zmu2f!lBnwhz*6`3x-E*-mP~+26i)HuP?XUL9nMhVtf5lN%oZ4jD=ksup=JxS71!~~ zdo?j%=j=l~ro z<@CjUX%B<^W~jWE4a>JtwwdWJmdlwfe%hCSy+(7h4l}{P+UD}0iCXrWUh7)*TQ}*y zB8yJA480R)c=iQAQd4{Tl}_oaUe$+<%lb1|ANyV;B7EwhhuR5;uHLwDxNcL)ANCEf z-a6U?y%Yq9s|?Gq~h+fj5t2}^-cXMNx0%U|?9C{T3**!O$RvGq0RN*Ie}m_!m1MbSHeR%?Uh=_y+Kb9>^H2@uBc8 zhA=C}8E}NSgW<5vhRBXwg9Ot|fuuS{?LlH9WSHQQii5;3l_w&h1`T0YG5POVqk?p( z2hjqHMaUf*!&G6&F`PL?-!4~%LaqbDEYZo#og_v$Xb<8PLdeSR+v(yL>r5?43g~kZ zQ2Clk1NDSe3%jX?dR;^mAB<-pNiz6S1%hPeq?1>yJQAy%Qy?Dpa^+z3)SkX?Dwo-TKLOwab$iOP8MJ8vgWJ^v&YAi>dO;N5kzfD4y6s_Nbo^VuWUJ^65GHfUk(;c<~3EpKQ z13HCH(nbGI&D(#|x>t5(o2jNgyPIj2|KjFODk<_(H0;`C;TPLX%G2O~o(jaA@wL>F z=`)&sBr~Iug&D&v$oj365FNT^~a+l zAZPaf-NjjwBS=?XDwc>cE-UNUn7}pBs*K?XaTniPD81C*%tbhrm4jW{!fu$VS@CZT z9yYzdfYuD$8zxqCr1m?N-AlL5*3XP5SL)8YG#*wiDTq=v3^Xq6*Vf>G4O{vmz=tIp z-CX*0=Moi12EoXd^48(*7QUvhTiTVKmG5u&0=8cgCN_af1yBCr1W9dRUY^A`+mpylx05ZF_QNvj#sWNJ3EbgjSb|X z%be)_su0`JD^Cm1J`*zmCa>8Fc8R%VlaHAc(J9d2`gu~AeE;j2TzknMC&=as7 zC^nM_Dyc8k29ZK;pgdLOZ;)p-#_1D5Ibntpa0sv zB6F@ypla)+6`o2g4_<6e?>bgpB$x=x+JN$T7=4wmS$H*b=L>m2a`H}iC^rsZpL#EV z48446ft647grLPW^aN}vgO%Qep;8SI7a^U|E3TktffBN0}G~! z&ETwo9MhN|OGsB)rzr-_k5g|I~`KyMID}deKAM z*@HoK*OO_i9V#p!L?wFC#p*_*L;`k767SeO=myh}VmD#7HO1gp(V47eg2$3F|rjf%GOkk!$R@6|ykVa0ynpkcKW$-$>dm*?v2QxGa_|8EvJ>P`c zBf$zDJ6HreyyktqPjzI{{5ohsJeGQY*#^#ZBTh);I9~=m|0G}OS2Ne|g&WLMdFf_7 zVj(~n(PmV;J)D;k^X?$6ZaF?rtE8j3h1a3#6Z=3;dwrwb_hPG&E$4|V=kjLKWAvwR z3f^Cf1Y?Tin6sIjrc0N)t?Y@7%-;HQ~`p(tlbi>KS)K1isN zJOfYLj>gvpPErQ}ZR;r%#n#vXTI=}9lbYPWN(>F&ZcZ8)V(Dy1<1qN0XhuF-wi%R$ zC8z({-=gn&iY?REVkw*P{yIJTyT0{*B7MbWTbWLcyIWb35);Frc(cvq;eOqe%us!G z=%k)xkvFA|-#RTLr-irmHXOfO2#`x697P}eTR9yV7NyfiSm1L>2>|mMr_6!z8U@#N zvVF?)^k8R~+oehFsA&~Oy&~h1k`MQ@OBIm*mWj%Sg@uW7WcW=^a0lDeFnt%nVyR}I z-5^(O@_V0&v}%Fcw6-v7uJVCaVs##!_Ny6S>TGgqK8KfvWfeZ%@Y6) z*M={XZmm>YJvNbp!ml)lc(mj~?F{oE@8XyQ(l(^^$vhidoectb z2R*gk$>7vODa>0+`3mc;e(K0!p%u>Zcr}IOC6QjEy8c~KjgO4y=tTc_f3of$ z6tTYqv>5{DP{iB+ltrT9=-#()%+fn>5ZJlXxQL@I9WJkNH}zJw^hAdvoF7O^tQsnz zuGfe2Tlm>b50@Fc0HQt-$<)1VbXSnT`{l$=N0V5$b{r1VV!;z^ch3tx;&4PJMYE#r ztbci6%9MUDe|mMef89~^FhBRfW*P)y|Hqpi56atg+`4-v)(}j3CZZ$51k63n(8`-- z|9kfOYdNhDetss5rf}&+dpARY{TV9>JQ;Fxw;)jU_*Y;?bQY@ zzUYV0z@SljkAtY92NW2v;&qZYaE>{Y9-f6IpgNaHyc_F|SOv}3C@AwmoV{wa{D3UF z<&!wW;VlP%BewtY_26@H_8Sb~7uhJP7AZArlHPQjP}xWK7(%s8$*^SNmZkFPdJ&IrAA9vr4_q=WwGF#&0EKBJ5N!mW8)}eWNs4B$fJt5JQ~S zv#>H&I?0hGC5~MvX*L8TKR9VTl!%0dW)6E>;pj2R%jnO~Sk6>DNplB{G_KB7Yih!r zZ|hhW5;JxtgZ8~Dms<=L-i(>@2iZhe2Ma1=xHY2`~i zuIzGleVz44o9oz*8o{bJH&Lux4tsWs^X7Ar{M23`ma-ZTbtgjdf9$pF{dv% zUMz*|Gc14qb-FVY9&6g)cB4>SQpAR0&!nZRnOGLs^D?I0lsuI#g7K|5I^V=UlI{i) zJ}c_Y=NJ-7R~njbnhB!YT<9|H1 z`*-qJ9H})38x659j-HX^|F~gp=4smt3*_z7%gNlz7t{wJMhjPRZ%?<`q&+7Mb|hVJ ze5egZ65x6O^*=zI2CPFs_At-!0S+aE8jT(R7NN5HD$RNU;P0@Trpl-sN(ag-Fh&Jf z>zBHe?9n4S2)L9B#{>4f-i0L-e#+guc~hyK62OS)yccoO(){em{Z{kB@o}B6i0Xm5 zw2~-K?TLSsv)#hhOP+=lw*88%`DI7+aU&>e`EwaTE04xD9PAwZbHTAn=a&v!Y0KRG z!qFFHZ2IGt2Atc8I{fWcx2^-&zDw`P8HlTo7{xi#{#^bB(T^3JUIxE-H%%}o-0)bS z*0qD$#nH<#(?c+=x{{pSHl~s*=W$Jj%c!8MSE&?`FJ>#ZH$hO5L4_QxcY4QpX(X>G z3S|xT@$~xUP$B9_dYhz=xXilbr=;Xg=m>M}_2LN$$XbKCZNTTu~%dSCQRV2GvFvn7OAh zO49GWxua!zlZfJXL0z+d`3kY{9(vW1isBXjbx_+)W!hT&90uLN)~G^ucE zWKUlXN^YE1i;Su!hsdS#$;YTOUb^t&wGqfOmpvsOfrNP0)2mPr(`{m1+x>VIP@f z3U*Ez`@!t09rf3w8}+u;*67o8eoTQVZnLvEe*}EY0cn##H|$l4n<8x`%xW~fpl#nQ zrM~2N#))*GD)LZ&b+J=#n%iHlzH?zU-GDd3AWztI)Y-_@6+j8Tf=@JO-^}*i8dO_U zgb-J;RvMOCHw$}W8;GU4zZy=ERw*{6b$s0s^i=cvsDH&~dpb%X$FybFVIV?2*LG>4 zYWfVpG)>yu3Sy`EmFxYQTi3gn=RZbCO^V{jpR%5$^38Ri z(Dxg5g4)K-$3Kx;ti5NC`0Rv4rr<^i$f(5idcEJ{^bFT&Lm?=)Gv(m>3vbLf#Z2j| z5HbZ0^k2Eb|BuzfpBnZ7@q$uY?aF%^rn=_*Y+2GEz-uLqbmAEhblm*L&O2ZNx*6CX zkDHWY_Zw52H&ac1DdSC;4Qm#K$8@6l5l`JC-I3MklAK4UoK``j%$v)s5&YQD{K#6p zL^!!1!A?Ptki0`qsxgEUnz=rJ1_cH>vcc2BQpfg=oaGgT-7RG* zX-H$PPt8X|`;a(6_KIrJB^4+0miIB0RmJ6ngY=~mvBfo1sSDX}=jc1Zm9cN$>r{nE|fLz&U@#~RP7sN{F8rg z%-feB{$T>#rww4bMVC+VG4Q8tn&UhA^H+Q$VrOX>^A$RRr8LmtE+i49V<7y^ukypE zC`Ud{EVIN|mD>H5w8KYs$)a7CfGJVFk0TsU-O(U~3B!uI4?rphC zyVN(|j`ozL;OlnBX-T1b$xU!B^%a_vE_OY*NZ50II*@a7e(?i&gOqQ-y7<8KfaqH| z&NqJN-;m(>^ISP-ngpo;f8eFD`S~iOC}FbmlJMKsa`8w@ARt204;CHz%~2~rF>c{ zH|Q5I15xBRIo>rsXs-@~v`%r~yqSZ#9=H1Ldt3!;Z#a{&lzcCx2PM+k#!J1cV7KF2 zKTzfgZQE0{)p`)YL35U1@=b;kkTDo6*OeF)-c>7KIXs14Mn02SMc8$E_;5=Klh|6*-F~$#Cjve4%v2y0!6gX zGOM7`*%*LKp+W3JwYFWc4>j*8cF*#aKVUp-6x6TV?tM69?UOAs$=;JC`wW0-Tff`= z5D5({+!bQhNuWz}FCU&+Rd_F3=ELLntYo&v{>wULtbyfx@YHzYX1TD_M6;Z2|5D7H z!%~^=cE{4O}*&#lZ9OpA_U-_tj#`4mZ) zFNlw7)k@5YBidSC?|-g-T^CpGj@UuJOFIi8-dZD>rh37>ugnbeSx< z)_~7D9`O<)cV4r+n3h-i3d$FQ(d1y)uX zK=39TL2w1iZ+~0@D!q?JA8)j{7(12A{@yF`OBYmis;TF-2RA(2{PRWw^!c!KR_4a( zGyeNlr=~FjmWsli$EBaDH(iF=%1<>!0eKeEb;_;4hOomdIYa^&cyy(91hvqMrmw{t zBdl1&-6QKZtjl?u_*~z)1Y+>Kut8xI?@q(%-Yg50BlFh%y^^T|{SbPmi+)@cd=ihk zsT{d)>kyqMU$+}A?phjaz{}v{F9m?MeVRQNvGPI8m6u1rmtU_>8#FBfF8VA;gD&B^ zn)w$SXCx8>-OpEoe)Ub}+?}m!D&6m{e5n%ePpi@lE;&+VyubW0#n?W|PPVz^>bDNC z{NW`?hIvmKT+KCnv@j=Sugw`$sJn`>bVZ76_+&|&yn6o9wj@-^#a}Zl&xij_%Wvgj zYHyk-Di&(sqW%FB_kjwDNMon4G=w_J?E}%{);~q%l-cB35didvAU9i$21zL`)t{ho z%y>Aj#FYNJjSNT2M%cfVjT*R=&PcJ*qW#!v!-qL;1}x>XCj$;6HqoX-FiZCLkFdj> zI1^b$9T4_=+3C!*Y8lMF3fcHcG#vR#z<`j;^Ob=@(r6FUOZ;;EFa{wHtN{J|>G+Ws z-tCzUyHhn!a=VFQsT}7K8jwcT>lwPmW|<=kDJV zz~rLlBI#9D4Z5tFjjx*B*L$)!`PjId_;!%liYCJGw3T+#08wf?Vv(l@F{)#!{U*=n z_ZLY$uc4w@zF=_2JIpuNfTPz7bCxo)`rgfQG#>@KZ4R0~E5T5WxhS=Wm?X}93Qxa~ z9V_t#wTu@*7~Tx+K@oZHsVam2Uy-^0O*XLM@Q;2{F5CLb$WTMAgjqFAbq$_;K{}ZF zAJ39PlDNn*Z4;LKaV=A%c&8$nxp?YW6U>ejHj||^p5kUu{n0g@A)``e7ovb8 zqR7ZKrd;BwK$Xs(;CSMoP4@1dcIvh7yCJp&n^E`D>==xfMR^}$sCV_w z3W3-YWhD*_9D6=l44FH*Wpt>|AT>nl4d`Qyb$~%agN~PDQFBBlXGP({-Yz_kv zyT;E7co#^N8_{>;$X4!C{_;>^N{CCF%-DLQv~px&6CtM&Gh$z`qwi4US9;K_Lna}C z?<{i!*Vie~fi z*;I!kpWKHYdsX@&PvB8fhH`+T1a0>8<5pb?&kG=e|D(Yi(U$0i!qjisMo;V@V&+n? z>oj^^#Oh8Re-%USY^U|6tnfSZ9bOt%Uw~CtZa;w3ND}6@q0Ft7Cvvh!tlv=1{?Kf zuMfGrcco;KR3Cwe3gxLSS3_h?ETp1+UF#tjTSp(rYX1rHwlevQQ0kn0n2iV`h4Z5n zwVi!KqODd8H)06GyWXKI|Aptv@F?Bck}_SR`k0st=5YhVR)(2j{mSkttFb+nSY2nC zdY3sD=ZABvh8o^)YM*7MtuA$NT)o5MKH;-U^85u54*X`l-W6-q*uD78eSVOE-LO%O z+EZ~XixY52^n!B-32=rTjZkp!MF#|$*&QaPa}-yx&JGm`fHv|vs*JL>RHsXFn^^yE3o_G8SRNWTJCKD)t!50dNG zA0uRqDdhn2bh{rTprwCI!qh=*49PlSy*4R4iIJ>{rYg495!zuxwh3LE(h(W@@ZGFT zC*fT?J!oZ_Z94r}G)1=WdKtTFps`*-t~t&d^*kU#X(zoy8p0v}gg2lt0#QHlLz#LZ zswBx<-+@>tW!#-p=}+IU{Bq|+6AdLLpaE9vptQ+p!Q+VoYH~z=T;Xk(d;3+LI9vzS zy;R`;lv2v(D_@*t-LxA&%PmVFUEqzk(#Bxqc`RwjQn2fEdj?h)rf}FjL#2M1BXS12y#*7f z5Zq6zvu8sQR_!01#Dz&;tTJhR_j<|^Dn0I zSL+Ib=V;J2d4f*Ji1Ml9cfaZ>q4!ME8em%xx;U_&lEp^V+IEA7q?)tKCNPCkg*?q6 z{hTFV!-a!yHaP3;yYdvwWJZ#OI46tQ(`0yVyg*8220;d6<>Xv*875yeeuAiMzts{B z!HNBScw`z}o;Svuknx(ucpekfSEMl$*#}Xa5oe$9X>?=w3d)NK45;*DT3tf9C!TBu zPiY0U9LzEIcFtAu$Ue(B@21D(EA2Qr#)z1)&G5j`pR7NGHns; zY_C~|?T>z2W!pJ{m%H1!AvmC&JSaL9C_jp=d;l2R7EXO!Wwca>ya`)4SDF9Jg es2tcK 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 SxM(j^MQC)Rp@@eFasLl;Sw#E* literal 0 HcmV?d00001 diff --git a/docs/courses/pnpm-nx-next/lessons/00-overview.md b/docs/courses/pnpm-nx-next/lessons/00-overview.md new file mode 100644 index 0000000000..0a0ff22392 --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/00-overview.md @@ -0,0 +1,16 @@ +--- +title: 'Course Intro' +videoUrl: 'https://youtu.be/VJ1v5dktwwI' +duration: '1:01' +--- + +In this course, we'll walk through a step-by-step guide using the Tasker application as our example. Tasker is a task management app built with Next.js, structured as a PNPM workspace monorepo. The monorepo contains the Next.js application which is modularized into packages that handle data access via Prisma to a local DB, UI components, and more. + +Throughout the course, we'll take incremental steps to enhance the monorepo: + +1. Adding Nx +2. Configuring and fine-tuning local caching +3. Defining task pipelines to ensure correct task execution order +4. Optimizing CI configuration with remote caching +5. Implementing distribution across machines +6. Optimizing Playwright e2e tests to reduce execution time from 20 minutes to 9 minutes diff --git a/docs/courses/pnpm-nx-next/lessons/01-nx-init.md b/docs/courses/pnpm-nx-next/lessons/01-nx-init.md new file mode 100644 index 0000000000..d8430f5c13 --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/01-nx-init.md @@ -0,0 +1,18 @@ +--- +title: 'Initialize Nx in Your Project with nx init' +videoUrl: 'https://youtu.be/3hW53b1IJ84' +duration: '3:42' +--- + +In this lesson, we'll explore how to add Nx to our existing PNPM workspace. You can either add just the `nx` package to your `package.json` and then create a `nx.json` [configuration file](/reference/nx-json), or simply run: + +```shell +nx init +``` + +This process will analyze your repository and ask you a couple of questions to properly set up Nx while maintaining your existing PNPM workspace structure. + +## Relevant Links + +- [Adopting Nx](/recipes/adopting-nx) +- [Import an Existing Project into an Nx Workspace](/recipes/adopting-nx/import-project) diff --git a/docs/courses/pnpm-nx-next/lessons/02-run-tasks.md b/docs/courses/pnpm-nx-next/lessons/02-run-tasks.md new file mode 100644 index 0000000000..9113099901 --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/02-run-tasks.md @@ -0,0 +1,23 @@ +--- +title: 'Run and Manage Tasks Efficiently Using Nx' +videoUrl: 'https://youtu.be/CJLRkzRrcjg' +duration: '1:56' +--- + +In this lesson, you'll learn how to use Nx to run your PNPM workspace's `package.json` scripts. So rather than running: + +```shell +pnpm --filter @tasker/web build +``` + +you would run: + +```shell +pnpm nx build @tasker/web +``` + +We'll cover the syntax for running both single tasks and multiple tasks, helping you understand how to leverage Nx's task execution capabilities. + +## Relevant Links + +- [Run Tasks with Nx](/features/run-tasks) diff --git a/docs/courses/pnpm-nx-next/lessons/03-configure-cache.md b/docs/courses/pnpm-nx-next/lessons/03-configure-cache.md new file mode 100644 index 0000000000..3162df96e1 --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/03-configure-cache.md @@ -0,0 +1,13 @@ +--- +title: 'Configure Cache Outputs to Handle the .next Folder' +videoUrl: 'https://youtu.be/t8lOa__TD7o' +duration: '2:07' +--- + +By default Nx captures common folders like `dist` or `build` and automatically restores them from the local cache. However, it doesn't capture the `.next` folder by default. + +In this lesson, you'll learn how to fine-tune local caching to ensure proper handling of the `.next` folder. We'll configure the cache outputs to make sure the Next.js build artifacts are properly restored from cache when needed. + +## Relevant Links + +- [Cache Task Results](/features/cache-task-results) diff --git a/docs/courses/pnpm-nx-next/lessons/04-task-pipelines.md b/docs/courses/pnpm-nx-next/lessons/04-task-pipelines.md new file mode 100644 index 0000000000..77f63564e6 --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/04-task-pipelines.md @@ -0,0 +1,28 @@ +--- +title: 'Automate Task Pipelines to Build Before next start' +videoUrl: 'https://youtu.be/_U4hu6SuBaY' +duration: '3:07' +--- + +All Next.js projects usually come with these `package.json` scripts: + +```json {% fileName="package.json" %} +{ + ... + "scripts": { + ... + "build": "next build", + "start": "next start" + } +} +``` + +Running `next start` will only work if the `.next` folder is present in the project's root. This folder is created when running `next build`. + +This is a very simple use case of a [task pipeline](/concepts/task-pipeline-configuration), which defines dependencies among tasks. + +In this lesson we're going to create a simple task pipeline such that whenever you run `next start`, Nx will automatically run `next build` (or restore it from the cache). + +## Relevant Links + +- [Defining a Task Pipeline](/recipes/running-tasks/defining-task-pipeline) diff --git a/docs/courses/pnpm-nx-next/lessons/05-implicit-dependencies.md b/docs/courses/pnpm-nx-next/lessons/05-implicit-dependencies.md new file mode 100644 index 0000000000..125c7b9c49 --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/05-implicit-dependencies.md @@ -0,0 +1,27 @@ +--- +title: 'Link an e2e Project with Its Web App Through Implicit Dependencies' +videoUrl: 'https://youtu.be/-iUHY27qUfE' +duration: '2:38' +--- + +One of the main capabilities of Nx is that it builds a project graph behind the scenes which it uses optimize how it runs your tasks. You can visualize the graph using: + +```shell +pnpm nx graph +``` + +{% callout type="info" title="Install Nx Console" %} + +You can also install **Nx Console** which is an extension for VSCode and IntelliJ that enhances the DX when working with Nx monorepos among which there's also the ability to visualize the project graph right in your editor window. Read more [about it here](/getting-started/editor-setup). + +{% /callout %} + +While most of the relationships are discovered by Nx automatically via `package.json` dependencies or JS/TypeScript imports, some cannot be detected. E2E projects such as the Playwright project in our workspace doesn't directly depend on our Next.js application. There is a dependency at runtime though, because Playwright needs to serve our Next application in order to be ablet to run its e2e tests. + +![Implicit dependencies](/courses/pnpm-nx-next/images/implicit-dependencies.avif) + +In this lesson, you'll learn how to define such dependencies using the `implicitDependencies` property. + +## Relevant Links + +- [Project configuration: implicitDependencies](/reference/project-configuration#implicitdependencies) diff --git a/docs/courses/pnpm-nx-next/lessons/06-nx-cloud-setup.md b/docs/courses/pnpm-nx-next/lessons/06-nx-cloud-setup.md new file mode 100644 index 0000000000..f7ed8ab2fa --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/06-nx-cloud-setup.md @@ -0,0 +1,13 @@ +--- +title: 'Connect Your Workspace to Nx Cloud' +videoUrl: 'https://youtu.be/8mqHXYIl_qI' +duration: '4:00' +--- + +Nx powers the “Smart Monorepo,” while Nx Cloud brings “Fast CI” into the mix. Designed to extend Nx’s efficiency into the CI pipeline, Nx Cloud ensures that even large monorepos stay fast and optimized in CI. + +In this lesson, we’ll take the Tasker monorepo, push it to GitHub, set up an Nx Cloud workspace, and link it with your GitHub repository. By the end, your Nx workspace will be fully connected to Nx Cloud, ready to leverage its remote caching and distributed CI capabilities. + +## Relevant Links + +- [Connect to Nx Cloud](/ci/intro/connect-to-nx-cloud) diff --git a/docs/courses/pnpm-nx-next/lessons/07-optimize-ci.md b/docs/courses/pnpm-nx-next/lessons/07-optimize-ci.md new file mode 100644 index 0000000000..ae1fdf1d41 --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/07-optimize-ci.md @@ -0,0 +1,20 @@ +--- +title: 'Use Nx Commands on CI' +videoUrl: 'https://youtu.be/ywlilx9-jNk' +duration: '4:43' +--- + +The Tasker project already uses a CI script on GitHub Actions, but in this lesson, we’ll enhance it by replacing the existing `pnpm --filter` commands with optimized Nx commands for a more efficient CI pipeline. + +We’ll cover how to scaffold a new CI configuration with: + +```shell +pnpm nx g ci-workflow +``` + +We’ll also take a quick detour to discuss `namedInputs` in `nx.json`, ensuring the cache invalidates appropriately whenever the CI config is updated. + +## Relevant Links + +- [Run Only Tasks Affected by a PR](/ci/features/affected) +- [Tutorial: Github Actions with Nx](/ci/intro/tutorials/github-actions#create-a-ci-workflow) diff --git a/docs/courses/pnpm-nx-next/lessons/08-remote-caching.md b/docs/courses/pnpm-nx-next/lessons/08-remote-caching.md new file mode 100644 index 0000000000..34e686b39d --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/08-remote-caching.md @@ -0,0 +1,13 @@ +--- +title: 'Configure CI to Access Remote Caching' +videoUrl: 'https://youtu.be/vBokLJ_F8qs' +duration: '1:45' +--- + +Nx Cloud comes with powerful built-in [remote caching capabilities](/ci/features/remote-cache). Security and access control for such a cache is crucial, which is why Nx Cloud provides [various controls for managing read and write access to the remote cache](/ci/recipes/security/access-tokens). + +In this lesson, we'll create an access token in our Nx Cloud workspace configuration to enable read/write access to our Github actions. + +## Relevant Links + +- [Nx CLI and CI Access Tokens](/ci/recipes/security/access-tokens) diff --git a/docs/courses/pnpm-nx-next/lessons/09-debug-cache.md b/docs/courses/pnpm-nx-next/lessons/09-debug-cache.md new file mode 100644 index 0000000000..9759885033 --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/09-debug-cache.md @@ -0,0 +1,15 @@ +--- +title: 'Debug Remote Cache misses with Nx Cloud' +videoUrl: 'https://youtu.be/zJmhW1iIxpc' +duration: '0:53' +--- + +Understanding what causes remote cache misses versus cache hits is crucial for optimization. + +![Nx Cloud UI to compare cache misses](/courses/pnpm-nx-next/images/nx-cloud-compare-cache-miss.avif) + +In this lesson, we'll explore how Nx Cloud enables you to compare runs and identify what changes led to cache misses. + +## Relevant Links + +- [Troubleshoot cache misses](/troubleshooting/troubleshoot-cache-misses) diff --git a/docs/courses/pnpm-nx-next/lessons/10-nx-login.md b/docs/courses/pnpm-nx-next/lessons/10-nx-login.md new file mode 100644 index 0000000000..718a181f95 --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/10-nx-login.md @@ -0,0 +1,23 @@ +--- +title: 'Enable Remote Caching for your Developer Machine with Nx Login' +videoUrl: 'https://youtu.be/vX-wgI1zlao' +duration: '1:38' +--- + +Do you want to allow your developers working on the Tasker monorepo + +- to benefit from remote cache results (read-only access) +- to also contribute to the remote cache (read/write access) + +It really depends on your use case. Nx Cloud uses Personal Access Tokens (PAT) to give you a fine-grained control mechanism how local workspaces should access the remote cache. + +In this lesson, we'll dive into how to configure your Personal Access Token permissions on Nx Cloud and how developers can authenticate with the Nx Cloud workspace using: + +```shell +pnpm nx login +``` + +## Relevant Links + +- [Nx Cloud and Personal Access Tokens](/ci/recipes/security/personal-access-tokens) +- [Blog: Better security with Personal Access Tokens](/blog/personal-access-tokens) diff --git a/docs/courses/pnpm-nx-next/lessons/11-nx-agents.md b/docs/courses/pnpm-nx-next/lessons/11-nx-agents.md new file mode 100644 index 0000000000..83622292bf --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/11-nx-agents.md @@ -0,0 +1,19 @@ +--- +title: 'Run Tasks in Parallel on Different Machines on CI' +videoUrl: 'https://youtu.be/lO_p4tA6IZI' +duration: '2:08' +--- + +While remote caching is powerful, it may not be enough when core packages change frequently, invalidating the cache for large portions of your workspace. + +Nx Cloud comes with a built-in feature called [Nx Agents](/ci/features/distribute-task-execution) that allows to automatically distribute tasks across multiple machines. + +In this lesson we're going to update the existing CI configuration to enable Nx Agents. Which mostly can be done by adding the following line: + +```plaintext +nx-cloud start-ci-run --distribute-on="5 linux-medium-js" +``` + +## Relevant Links + +- [Distribute Task Execution](/ci/features/distribute-task-execution) diff --git a/docs/courses/pnpm-nx-next/lessons/12-playwright-split.md b/docs/courses/pnpm-nx-next/lessons/12-playwright-split.md new file mode 100644 index 0000000000..8493f5aae2 --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/12-playwright-split.md @@ -0,0 +1,15 @@ +--- +title: 'Split Playwright e2e Tests for a Faster CI' +videoUrl: 'https://youtu.be/42XnmzxEXM8' +duration: '5:47' +--- + +Running e2e tests on CI can be quite a painful experience. You want them to run on each PR to get immediate feedback, but then you don't want to wait for 30 minutes. + +In this lesson, we'll optimize the existing Playwright end-to-end tests that currently take up to 20 minutes on CI. We'll leverage the Nx Playwright plugin to automatically split the Playwright tests into individual runs per test, allowing for optimal distribution across Nx agents and significantly improving CI execution time. + +![](/courses/pnpm-nx-next/images/e2e-splitting-anim.gif) + +## Relevant Links + +- [Automatically Split E2E Tasks](/ci/features/split-e2e-tasks) diff --git a/docs/courses/pnpm-nx-next/lessons/13-outro.md b/docs/courses/pnpm-nx-next/lessons/13-outro.md new file mode 100644 index 0000000000..19bb3afa3d --- /dev/null +++ b/docs/courses/pnpm-nx-next/lessons/13-outro.md @@ -0,0 +1,7 @@ +--- +title: 'Course Outro' +videoUrl: 'https://youtu.be/a_pfLrvf88E' +duration: '0:39' +--- + +Thank you for completing this course on optimizing your PNPM workspace with Nx. You've learned how to implement and configure Nx, set up efficient caching, optimize CI processes, and improve e2e test execution times. diff --git a/docs/shared/getting-started/intro.md b/docs/shared/getting-started/intro.md index b5a2522751..aece323ba6 100644 --- a/docs/shared/getting-started/intro.md +++ b/docs/shared/getting-started/intro.md @@ -53,7 +53,7 @@ Also, here are some recipes that give you more details based on the technology s {% link-card title="What is Nx Cloud?" type="video" url="https://youtu.be/4VI-q943J3o" icon="nxcloud" /%} -{% link-card title="PNPM Monorepos with Nx" type="video" url="https://youtu.be/ngdoUQBvAjo" icon="pnpm" /%} +{% link-card title="PNPM Workspaces to Distributed CI" type="course" url="/courses/pnpm-nx-next" icon="pnpm" /%} {% link-card title="More On Youtube" type="video" url="https://www.youtube.com/@nxdevtools" icon="youtube" /%} diff --git a/nx-dev/data-access-courses/project.json b/nx-dev/data-access-courses/project.json new file mode 100644 index 0000000000..5440d255d0 --- /dev/null +++ b/nx-dev/data-access-courses/project.json @@ -0,0 +1,8 @@ +{ + "name": "data-access-courses", + "$schema": "../../node_modules/nx/schemas/project-schema.json", + "sourceRoot": "nx-dev/data-access-courses/src", + "projectType": "library", + "targets": {}, + "tags": [] +} diff --git a/nx-dev/data-access-courses/src/index.ts b/nx-dev/data-access-courses/src/index.ts new file mode 100644 index 0000000000..f33606d8b9 --- /dev/null +++ b/nx-dev/data-access-courses/src/index.ts @@ -0,0 +1,2 @@ +export * from './lib/courses.api'; +export * from './lib/course.types'; diff --git a/nx-dev/data-access-courses/src/lib/course.types.ts b/nx-dev/data-access-courses/src/lib/course.types.ts new file mode 100644 index 0000000000..a060cee6bd --- /dev/null +++ b/nx-dev/data-access-courses/src/lib/course.types.ts @@ -0,0 +1,22 @@ +import type { BlogAuthor } from '@nx/nx-dev/data-access-documents/node-only'; + +export interface Course { + id: string; + title: string; + description: string; + content: string; + authors: BlogAuthor[]; + repository?: string; + lessons: Lesson[]; + filePath: string; + totalDuration: string; +} + +export interface Lesson { + id: string; + title: string; + description: string; + videoUrl: string; + duration: string; + filePath: string; +} diff --git a/nx-dev/data-access-courses/src/lib/courses.api.ts b/nx-dev/data-access-courses/src/lib/courses.api.ts new file mode 100644 index 0000000000..694a62830c --- /dev/null +++ b/nx-dev/data-access-courses/src/lib/courses.api.ts @@ -0,0 +1,92 @@ +import { readFile, readdir } from 'fs/promises'; +import { join } from 'path'; +import { extractFrontmatter } from '@nx/nx-dev/ui-markdoc'; +import { readFileSync } from 'fs'; +import { Course, Lesson } from './course.types'; +import { calculateTotalDuration } from './duration.utils'; + +export class CoursesApi { + // TODO: move to shared lib + private readonly blogRoot = 'public/documentation/blog'; + + constructor( + private readonly options: { + coursesRoot: string; + } + ) { + if (!options.coursesRoot) { + throw new Error('courses root cannot be undefined'); + } + } + + async getAllCourses(): Promise { + const courseFolders = await readdir(this.options.coursesRoot); + const courses = await Promise.all( + courseFolders.map((folder) => this.getCourse(folder)) + ); + return courses; + } + + async getCourse(folderName: string): Promise { + const authors = JSON.parse( + readFileSync(join(this.blogRoot, 'authors.json'), 'utf8') + ); + const coursePath = join(this.options.coursesRoot, folderName); + const courseFilePath = join(coursePath, 'course.md'); + + const content = await readFile(courseFilePath, 'utf-8'); + const frontmatter = extractFrontmatter(content); + + const lessonFolders = await readdir(coursePath); + const lessons = await Promise.all( + lessonFolders + .filter((folder) => folder !== 'course.md') + .map((folder) => this.getLessons(folderName, folder)) + ); + const flattenedLessons = lessons.flat(); + + return { + id: folderName, + title: frontmatter.title, + description: frontmatter.description, + content, + authors: authors.filter((author: { name: string }) => + frontmatter.authors.includes(author.name) + ), + repository: frontmatter.repository, + lessons: flattenedLessons, + filePath: courseFilePath, + totalDuration: calculateTotalDuration(flattenedLessons), + }; + } + + private async getLessons( + courseId: string, + lessonFolder: string + ): Promise { + const lessonPath = join(this.options.coursesRoot, courseId, lessonFolder); + const lessonFiles = await readdir(lessonPath); + + const lessons = await Promise.all( + lessonFiles.map(async (file) => { + if (!file.endsWith('.md')) return null; + const filePath = join(lessonPath, file); + const content = await readFile(filePath, 'utf-8'); + const frontmatter = extractFrontmatter(content); + if (!frontmatter || !frontmatter.title) { + throw new Error(`Lesson ${lessonFolder}/${file} has no title`); + } + return { + id: `${lessonFolder}-${file.replace('.md', '')}`, + title: frontmatter.title, + description: content, + videoUrl: frontmatter.videoUrl || null, + duration: frontmatter.duration || null, + filePath, + }; + }) + ); + + return lessons.filter((lesson): lesson is Lesson => lesson !== null); + } +} diff --git a/nx-dev/data-access-courses/src/lib/duration.utils.ts b/nx-dev/data-access-courses/src/lib/duration.utils.ts new file mode 100644 index 0000000000..d6341ccbda --- /dev/null +++ b/nx-dev/data-access-courses/src/lib/duration.utils.ts @@ -0,0 +1,17 @@ +import { Lesson } from './course.types'; + +export function calculateTotalDuration(lessons: Lesson[]): string { + const totalMinutes = lessons.reduce((total, lesson) => { + if (!lesson.duration) return total; + const [minutes, seconds] = lesson.duration.split(':').map(Number); + return total + minutes + seconds / 60; + }, 0); + + const hours = Math.floor(totalMinutes / 60); + const minutes = Math.round(totalMinutes % 60); + + if (hours > 0) { + return `${hours}h ${minutes}m`; + } + return `${minutes}m`; +} diff --git a/nx-dev/data-access-courses/tsconfig.json b/nx-dev/data-access-courses/tsconfig.json new file mode 100644 index 0000000000..95cfeb243d --- /dev/null +++ b/nx-dev/data-access-courses/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "jsx": "react-jsx", + "allowJs": false, + "esModuleInterop": false, + "allowSyntheticDefaultImports": true, + "strict": true + }, + "files": [], + "include": [], + "references": [ + { + "path": "./tsconfig.lib.json" + } + ], + "extends": "../../tsconfig.base.json" +} diff --git a/nx-dev/data-access-courses/tsconfig.lib.json b/nx-dev/data-access-courses/tsconfig.lib.json new file mode 100644 index 0000000000..461061d0b2 --- /dev/null +++ b/nx-dev/data-access-courses/tsconfig.lib.json @@ -0,0 +1,9 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "outDir": "../../dist/out-tsc", + "types": ["node"] + }, + "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"], + "include": ["src/**/*.ts"] +} diff --git a/nx-dev/nx-dev/app/courses/[courseId]/[lessonId]/page.tsx b/nx-dev/nx-dev/app/courses/[courseId]/[lessonId]/page.tsx new file mode 100644 index 0000000000..8e55992726 --- /dev/null +++ b/nx-dev/nx-dev/app/courses/[courseId]/[lessonId]/page.tsx @@ -0,0 +1,51 @@ +import { coursesApi } from '../../../../lib/courses.api'; +import { DefaultLayout } from '@nx/nx-dev/ui-common'; +import { LessonPlayer } from '@nx/nx-dev/ui-courses'; +import { Metadata } from 'next'; + +interface LessonPageProps { + params: { courseId: string; lessonId: string }; +} + +export async function generateMetadata({ + params, +}: LessonPageProps): Promise { + const course = await coursesApi.getCourse(params.courseId); + const lesson = course.lessons.find((l) => l.id === params.lessonId); + + if (!lesson) { + return { + title: 'Lesson Not Found', + }; + } + + return { + title: `${lesson.title} | ${course.title} | Nx Courses`, + description: lesson.description.substring(0, 160), + }; +} + +export async function generateStaticParams() { + const courses = await coursesApi.getAllCourses(); + return courses.flatMap((course) => + course.lessons.map((lesson) => ({ + courseId: course.id, + lessonId: lesson.id, + })) + ); +} + +export default async function LessonPage({ params }: LessonPageProps) { + const course = await coursesApi.getCourse(params.courseId); + const lesson = course.lessons.find((l) => l.id === params.lessonId); + + if (!lesson) { + return
Lesson not found
; + } + + return ( + + + + ); +} diff --git a/nx-dev/nx-dev/app/courses/[courseId]/page.tsx b/nx-dev/nx-dev/app/courses/[courseId]/page.tsx new file mode 100644 index 0000000000..b85a916738 --- /dev/null +++ b/nx-dev/nx-dev/app/courses/[courseId]/page.tsx @@ -0,0 +1,58 @@ +import type { Metadata, ResolvingMetadata } from 'next'; +import { coursesApi } from '../../../lib/courses.api'; +import { CourseDetails } from '@nx/nx-dev/ui-courses'; +import { DefaultLayout } from '@nx/nx-dev/ui-common'; + +interface CourseDetailProps { + params: { courseId: string }; +} + +export async function generateMetadata( + { params: { courseId } }: CourseDetailProps, + parent: ResolvingMetadata +): Promise { + const course = await coursesApi.getCourse(courseId); + const previousImages = (await parent).openGraph?.images ?? []; + + return { + title: `${course.title} | Nx Courses`, + description: course.description, + openGraph: { + url: `https://nx.dev/courses/${courseId}`, + title: course.title, + description: course.description, + images: [ + { + url: '/path/to/default/course/image.png', // Add a default course image + width: 800, + height: 421, + alt: 'Nx Course: ' + course.title, + type: 'image/png', + }, + ...previousImages, + ], + }, + }; +} + +export async function generateStaticParams() { + const courses = await coursesApi.getAllCourses(); + return courses.map((course) => { + return { courseId: course.id }; + }); +} + +export default async function CourseDetail({ + params: { courseId }, +}: CourseDetailProps) { + const course = await coursesApi.getCourse(courseId); + return course ? ( + <> + {/* This empty div is necessary as app router does not automatically scroll on route changes */} +
+ + + + + ) : null; +} diff --git a/nx-dev/nx-dev/app/courses/page.tsx b/nx-dev/nx-dev/app/courses/page.tsx new file mode 100644 index 0000000000..359c401117 --- /dev/null +++ b/nx-dev/nx-dev/app/courses/page.tsx @@ -0,0 +1,41 @@ +import { DefaultLayout } from '@nx/nx-dev/ui-common'; +import { CourseOverview, CourseHero } from '@nx/nx-dev/ui-video-courses'; +import { coursesApi } from '../../lib/courses.api'; + +import type { Metadata } from 'next'; + +export const metadata: Metadata = { + title: 'Nx Video Courses', + description: + 'Master Nx with expert-led video courses from the core team. Boost your skills and productivity.', + openGraph: { + url: 'https://nx.dev/courses', + title: 'Nx Video Courses', + description: + 'Master Nx with expert-led video courses from the core team. Boost your skills and productivity.', + images: [ + { + url: 'https://nx.dev/socials/nx-courses-media.png', + width: 800, + height: 421, + alt: 'Nx Video Courses', + type: 'image/jpeg', + }, + ], + siteName: 'Nx', + type: 'website', + }, +}; + +export default async function CoursesPage(): Promise { + const courses = await coursesApi.getAllCourses(); + + return ( + + +
+ +
+
+ ); +} diff --git a/nx-dev/nx-dev/lib/courses.api.ts b/nx-dev/nx-dev/lib/courses.api.ts new file mode 100644 index 0000000000..b14b1d835a --- /dev/null +++ b/nx-dev/nx-dev/lib/courses.api.ts @@ -0,0 +1,5 @@ +import { CoursesApi } from '@nx/nx-dev/data-access-courses'; + +export const coursesApi = new CoursesApi({ + coursesRoot: 'public/documentation/courses', +}); diff --git a/nx-dev/nx-dev/tailwind.config.js b/nx-dev/nx-dev/tailwind.config.js index 5ac8e9c374..2e5639de39 100644 --- a/nx-dev/nx-dev/tailwind.config.js +++ b/nx-dev/nx-dev/tailwind.config.js @@ -94,6 +94,9 @@ module.exports = { }, }, }, + screens: { + wide: '1800px', + }, }, }, plugins: [ diff --git a/nx-dev/ui-common/src/lib/default-layout.tsx b/nx-dev/ui-common/src/lib/default-layout.tsx index 2f3c27c3a5..67e131d9e8 100644 --- a/nx-dev/ui-common/src/lib/default-layout.tsx +++ b/nx-dev/ui-common/src/lib/default-layout.tsx @@ -6,10 +6,16 @@ import cx from 'classnames'; export function DefaultLayout({ isHome = false, children, -}: { isHome?: boolean } & PropsWithChildren): JSX.Element { + hideHeader = false, + hideFooter = false, +}: { + isHome?: boolean; + hideHeader?: boolean; + hideFooter?: boolean; +} & PropsWithChildren): JSX.Element { return (
-
+ {!hideHeader &&
}
-
{children}
+
+ {children} +
-
+
); } diff --git a/nx-dev/ui-common/src/lib/footer.tsx b/nx-dev/ui-common/src/lib/footer.tsx index b63d85a81c..3170c0e000 100644 --- a/nx-dev/ui-common/src/lib/footer.tsx +++ b/nx-dev/ui-common/src/lib/footer.tsx @@ -3,124 +3,127 @@ import { ThemeSwitcher } from '@nx/nx-dev/ui-theme'; import Link from 'next/link'; import { DiscordIcon } from './discord-icon'; -export function Footer(): JSX.Element { - const navigation = { - nx: [ - { name: 'Status', href: 'https://status.nx.app' }, - { name: 'Security', href: 'https://security.nx.app' }, - ], - nxCloud: [ - { name: 'App', href: 'https://cloud.nx.app' }, - { name: 'Docs', href: '/ci/intro/ci-with-nx' }, - { name: 'Pricing', href: '/pricing' }, - ], - solutions: [ - { name: 'Nx', href: 'https://nx.dev' }, - { name: 'Nx Cloud', href: '/nx-cloud' }, - { name: 'Nx Enterprise', href: '/enterprise' }, - ], - resources: [ - { name: 'Blog', href: '/blog' }, - { - name: 'Youtube', - href: 'https://youtube.com/@nxdevtools', - }, - { - name: 'Community', - href: '/community', - }, - { - name: 'Customers', - href: '/customers', - }, - ], - company: [ - { name: 'About us', href: '/company' }, - { name: 'Careers', href: '/careers' }, - { - name: 'Brands & Guidelines', - href: '/brands', - }, - { name: 'Contact us', href: '/contact' }, - ], - social: [ - { - name: 'Discord', - label: 'Community channel', - href: 'https://go.nx.dev/community', - icon: (props: any) => , - }, - { - name: 'GitHub', - label: 'Nx is open source, check the code on GitHub', - href: 'https://github.com/nrwl/nx?utm_source=nx.dev', - icon: (props: any) => ( - - {/*GitHub*/} - - - ), - }, - { - name: 'X', - label: 'Latest news', - href: 'https://x.com/NxDevTools?utm_source=nx.dev', - icon: (props: any) => ( - - {/*X*/} - - - ), - }, - { - name: 'Youtube', - label: 'Youtube channel', - href: 'https://www.youtube.com/@NxDevtools?utm_source=nx.dev', - icon: (props: any) => ( - - {/*YouTube*/} - - - ), - }, - { - name: 'Newsletter', - label: 'The Newsletter', - href: 'https://go.nrwl.io/nx-newsletter?utm_source=nx.dev', - icon: (props: any) => ( - - - - ), - }, - ], - }; +const navigation = { + nx: [ + { name: 'Status', href: 'https://status.nx.app' }, + { name: 'Security', href: 'https://security.nx.app' }, + ], + nxCloud: [ + { name: 'App', href: 'https://cloud.nx.app' }, + { name: 'Docs', href: '/ci/intro/ci-with-nx' }, + { name: 'Pricing', href: '/pricing' }, + ], + solutions: [ + { name: 'Nx', href: 'https://nx.dev' }, + { name: 'Nx Cloud', href: '/nx-cloud' }, + { name: 'Nx Enterprise', href: '/enterprise' }, + ], + resources: [ + { name: 'Blog', href: '/blog' }, + { + name: 'Youtube', + href: 'https://youtube.com/@nxdevtools', + }, + { + name: 'Community', + href: '/community', + }, + { + name: 'Customers', + href: '/customers', + }, + ], + company: [ + { name: 'About us', href: '/company' }, + { name: 'Careers', href: '/careers' }, + { + name: 'Brands & Guidelines', + href: '/brands', + }, + { name: 'Contact us', href: '/contact' }, + ], + social: [ + { + name: 'Discord', + label: 'Community channel', + href: 'https://go.nx.dev/community', + icon: (props: any) => , + }, + { + name: 'GitHub', + label: 'Nx is open source, check the code on GitHub', + href: 'https://github.com/nrwl/nx?utm_source=nx.dev', + icon: (props: any) => ( + + {/*GitHub*/} + + + ), + }, + { + name: 'X', + label: 'Latest news', + href: 'https://x.com/NxDevTools?utm_source=nx.dev', + icon: (props: any) => ( + + {/*X*/} + + + ), + }, + { + name: 'Youtube', + label: 'Youtube channel', + href: 'https://www.youtube.com/@NxDevtools?utm_source=nx.dev', + icon: (props: any) => ( + + {/*YouTube*/} + + + ), + }, + { + name: 'Newsletter', + label: 'The Newsletter', + href: 'https://go.nrwl.io/nx-newsletter?utm_source=nx.dev', + icon: (props: any) => ( + + + + ), + }, + ], +}; + +export function Footer({ + className = '', +}: { className?: string } = {}): JSX.Element { return (