From 4a0e8d661fd5219e7194e313d721f9563ca30a5d Mon Sep 17 00:00:00 2001 From: Richard van der Hoff <1389908+richvdh@users.noreply.github.com> Date: Wed, 8 Oct 2025 10:49:11 +0100 Subject: [PATCH] Playwright test for history sharing on invite (#30948) * Playwright: `getCurrentRoomIdFromUrl` Helper function to fish a room ID out of the URL * Playwright: use updated `Credentials` class from common lib Pick up the extended `Credentials` interface that was added in https://github.com/element-hq/element-modules/pull/80. * Playwright: use `routeConfigJson` from common lib https://github.com/element-hq/element-modules/pull/81 added a utility function for building and routing `config.json`; we should use it. * Playwright test for history sharing on invite Fixes https://github.com/element-hq/element-meta/issues/2920 * Avoid use of CSS in playwright locators --- package.json | 2 +- playwright/e2e/crypto/history-sharing.spec.ts | 59 ++++++++++++++++++ .../e2e/knock/create-knock-room.spec.ts | 9 +-- playwright/e2e/login/utils.ts | 1 + playwright/e2e/oidc/oidc-native.spec.ts | 16 +---- playwright/pages/ElementAppPage.ts | 29 +++++++++ playwright/plugins/homeserver/index.ts | 13 +--- .../shared-history-invite-accepted-linux.png | Bin 0 -> 50000 bytes yarn.lock | 8 +-- 9 files changed, 102 insertions(+), 35 deletions(-) create mode 100644 playwright/e2e/crypto/history-sharing.spec.ts create mode 100644 playwright/snapshots/crypto/history-sharing.spec.ts/shared-history-invite-accepted-linux.png diff --git a/package.json b/package.json index 012b477c92..eadae62f4b 100644 --- a/package.json +++ b/package.json @@ -186,7 +186,7 @@ "@babel/runtime": "^7.12.5", "@casualbot/jest-sonar-reporter": "2.2.7", "@element-hq/element-call-embedded": "0.16.0", - "@element-hq/element-web-playwright-common": "^1.4.6", + "@element-hq/element-web-playwright-common": "^2.0.0", "@peculiar/webcrypto": "^1.4.3", "@playwright/test": "^1.50.1", "@principalstudio/html-webpack-inject-preload": "^1.2.7", diff --git a/playwright/e2e/crypto/history-sharing.spec.ts b/playwright/e2e/crypto/history-sharing.spec.ts new file mode 100644 index 0000000000..cdaa543bd9 --- /dev/null +++ b/playwright/e2e/crypto/history-sharing.spec.ts @@ -0,0 +1,59 @@ +/* +Copyright 2025 New Vector Ltd. + +SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Commercial +Please see LICENSE files in the repository root for full details. +*/ + +import { createNewInstance } from "@element-hq/element-web-playwright-common"; + +import { expect, test } from "../../element-web-test"; +import { ElementAppPage } from "../../pages/ElementAppPage"; +import { createRoom, sendMessageInCurrentRoom } from "./utils"; + +test.use({ + displayName: "Alice", + labsFlags: ["feature_share_history_on_invite"], +}); + +/** Tests for MSC4268: encrypted history sharing */ +test.describe("History sharing", function () { + test( + "We should share history when sending invites", + { tag: "@screenshot" }, + async ( + { labsFlags, browser, page: alicePage, user: aliceCredentials, app: aliceElementApp, homeserver }, + testInfo, + ) => { + // In this test, Alice creates an encrypted room and sends an event; + // we then invite Bob, and ensure Bob can see the content. + + await aliceElementApp.client.bootstrapCrossSigning(aliceCredentials); + + // Register a second user, and open it in a second instance of the app + const bobCredentials = await homeserver.registerUser(`user_${testInfo.testId}_bob`, "password", "Bob"); + const bobPage = await createNewInstance(browser, bobCredentials, {}, labsFlags); + const bobElementApp = new ElementAppPage(bobPage); + await bobElementApp.client.bootstrapCrossSigning(bobCredentials); + + // Create the room and send a message + await createRoom(alicePage, "TestRoom", true); + await sendMessageInCurrentRoom(alicePage, "A message from Alice"); + + // Send the invite to Bob + await aliceElementApp.inviteUserToCurrentRoom(bobCredentials.userId); + + // Bob accepts the invite + await bobPage.getByRole("option", { name: "TestRoom" }).click(); + await bobPage.getByRole("button", { name: "Accept" }).click(); + + // Bob should now be able to decrypt the event + await expect(bobPage.getByText("A message from Alice")).toBeVisible(); + + const mask = [bobPage.locator(".mx_MessageTimestamp")]; + await expect(bobPage.locator(".mx_RoomView_body")).toMatchScreenshot("shared-history-invite-accepted.png", { + mask, + }); + }, + ); +}); diff --git a/playwright/e2e/knock/create-knock-room.spec.ts b/playwright/e2e/knock/create-knock-room.spec.ts index e21b30a3c2..d53271ef3c 100644 --- a/playwright/e2e/knock/create-knock-room.spec.ts +++ b/playwright/e2e/knock/create-knock-room.spec.ts @@ -27,8 +27,7 @@ test.describe("Create Knock Room", () => { await expect(page.locator(".mx_RoomHeader").getByText("Cybersecurity")).toBeVisible(); - const urlHash = await page.evaluate(() => window.location.hash); - const roomId = urlHash.replace("#/room/", ""); + const roomId = await app.getCurrentRoomIdFromUrl(); // Room should have a knock join rule await waitForRoom(page, app.client, roomId, (room) => { @@ -44,8 +43,7 @@ test.describe("Create Knock Room", () => { await expect(page.locator(".mx_RoomHeader").getByText("Cybersecurity")).toBeVisible(); - const urlHash = await page.evaluate(() => window.location.hash); - const roomId = urlHash.replace("#/room/", ""); + const roomId = await app.getCurrentRoomIdFromUrl(); await app.settings.openRoomSettings("Security & Privacy"); @@ -70,8 +68,7 @@ test.describe("Create Knock Room", () => { await expect(page.locator(".mx_RoomHeader").getByText("Cybersecurity")).toBeVisible(); - const urlHash = await page.evaluate(() => window.location.hash); - const roomId = urlHash.replace("#/room/", ""); + const roomId = await app.getCurrentRoomIdFromUrl(); // Room should have a knock join rule await waitForRoom(page, app.client, roomId, (room) => { diff --git a/playwright/e2e/login/utils.ts b/playwright/e2e/login/utils.ts index d74300908a..e9ff05bb69 100644 --- a/playwright/e2e/login/utils.ts +++ b/playwright/e2e/login/utils.ts @@ -51,6 +51,7 @@ export async function doTokenRegistration( await expect(page.getByRole("heading", { name: "Welcome Alice", exact: true })).toBeVisible(); return page.evaluate(() => ({ + homeserverBaseUrl: window.mxMatrixClientPeg.get().getHomeserverUrl(), accessToken: window.mxMatrixClientPeg.get().getAccessToken(), userId: window.mxMatrixClientPeg.get().getUserId(), deviceId: window.mxMatrixClientPeg.get().getDeviceId(), diff --git a/playwright/e2e/oidc/oidc-native.spec.ts b/playwright/e2e/oidc/oidc-native.spec.ts index 2fedc0c451..3d80c7d56f 100644 --- a/playwright/e2e/oidc/oidc-native.spec.ts +++ b/playwright/e2e/oidc/oidc-native.spec.ts @@ -6,9 +6,10 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com Please see LICENSE files in the repository root for full details. */ -import { type Config, CONFIG_JSON } from "@element-hq/element-web-playwright-common"; +import { type Config } from "@element-hq/element-web-playwright-common"; import { type Browser, type Page } from "@playwright/test"; import { type StartedHomeserverContainer } from "@element-hq/element-web-playwright-common/lib/testcontainers/HomeserverContainer"; +import { routeConfigJson } from "@element-hq/element-web-playwright-common"; import { test, expect } from "../../element-web-test.ts"; import { logInAccountMas, registerAccountMas } from "."; @@ -242,17 +243,6 @@ async function verifyUsingOtherDevice(deviceToVerifyPage: Page, alreadyVerifiedD */ async function newContext(browser: Browser, config: Partial>, homeserver: StartedHomeserverContainer) { const otherContext = await browser.newContext(); - await otherContext.route(`http://localhost:8080/config.json*`, async (route) => { - const json = { - ...CONFIG_JSON, - ...config, - default_server_config: { - "m.homeserver": { - base_url: homeserver.baseUrl, - }, - }, - }; - await route.fulfill({ json }); - }); + await routeConfigJson(otherContext, homeserver.baseUrl, config); return otherContext; } diff --git a/playwright/pages/ElementAppPage.ts b/playwright/pages/ElementAppPage.ts index 816583fd49..82497317c3 100644 --- a/playwright/pages/ElementAppPage.ts +++ b/playwright/pages/ElementAppPage.ts @@ -69,6 +69,20 @@ export class ElementAppPage { return await this.page.evaluate(() => navigator.clipboard.readText()); } + /** + * Get the room ID from the current URL. + * + * @returns The room ID. + * @throws if the current URL does not contain a room ID. + */ + public async getCurrentRoomIdFromUrl(): Promise { + const urlHash = await this.page.evaluate(() => window.location.hash); + if (!urlHash.startsWith("#/room/")) { + throw new Error("URL hash suggests we are not in a room"); + } + return urlHash.replace("#/room/", ""); + } + /** * Opens the given room by name. The room must be visible in the * room list and the room may contain unread messages. @@ -197,6 +211,21 @@ export class ElementAppPage { return memberlist; } + /** + * Open the room info panel, and use it to send an invite to the given user. + * + * @param userId - The user to invite to the room. + */ + public async inviteUserToCurrentRoom(userId: string): Promise { + await this.toggleRoomInfoPanel(); // TODO skip this if the room info panel is already open + await this.page.getByLabel("Right panel").getByRole("menuitem", { name: "Invite" }).click(); + + const input = this.page.getByRole("dialog").getByTestId("invite-dialog-input"); + await input.fill(userId); + await input.press("Enter"); + await this.page.getByRole("dialog").getByRole("button", { name: "Invite" }).click(); + } + /** * Get a locator for the tooltip associated with an element * @param e The element with the tooltip diff --git a/playwright/plugins/homeserver/index.ts b/playwright/plugins/homeserver/index.ts index 0571cd9615..993853a3a2 100644 --- a/playwright/plugins/homeserver/index.ts +++ b/playwright/plugins/homeserver/index.ts @@ -6,7 +6,8 @@ SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only OR LicenseRef-Element-Com Please see LICENSE files in the repository root for full details. */ -import { type ClientServerApi } from "@element-hq/element-web-playwright-common/lib/utils/api.js"; +import { type ClientServerApi, type Credentials } from "@element-hq/element-web-playwright-common/lib/utils/api.js"; +export { type Credentials } from "@element-hq/element-web-playwright-common/lib/utils/api.js"; export interface HomeserverInstance { readonly baseUrl: string; @@ -37,14 +38,4 @@ export interface HomeserverInstance { setThreepid(userId: string, medium: string, address: string): Promise; } -export interface Credentials { - accessToken: string; - userId: string; - deviceId: string; - homeServer: string; - password: string | null; // null for password-less users - displayName?: string; - username: string; // the localpart of the userId -} - export type HomeserverType = "synapse" | "dendrite" | "pinecone"; diff --git a/playwright/snapshots/crypto/history-sharing.spec.ts/shared-history-invite-accepted-linux.png b/playwright/snapshots/crypto/history-sharing.spec.ts/shared-history-invite-accepted-linux.png new file mode 100644 index 0000000000000000000000000000000000000000..9f2d1e23e47f093a9436218f0676182857448534 GIT binary patch literal 50000 zcmaI8Wn5d$7x-BNTAX6Vp|nV`;u54d6nBSG+=3*y6$+)e6_-%lU4uI`#ob+k2X{8~ z+28Kxzc2Px?!7aa$()%pbI$jin_y){X)JV7^e0cAV9Clzs6Kh}T>r_FXTvX_A)jFQ zZw5Shg8M{PLR8%?b#LL7KEcKV+L5%G4z(+u4mSTUISJ)KT-w0^s+DKS@Mm0>+Ria znz#98Qc~dEk+->d&i&oRl3}w490ynfN}?~=p#^37wh%puW)C;`S($R@D~VzQUsSbs+pzbVK7^XzNBiBeq0-03CBZyQk^=27D; zpK_NIjeq=3ThZ7qVy*WqGC8j;0W*-WJCgOVG2Us#Wu+tro6Lr^2%Cy?`u@3`dtA$7 zmrp$O%VuY1dv2$=UbZ+eWIG<+MvnO2#ZwoTdY6)raHwWAEmGc$$ViAI>wcr0G-r4> z1i>)k!{*T-#xl^HKGXO```FAdEtHvHa#9dmpZGIA4IKU9q9w3*YEX65`{iRXSVV>4 zox<@_XgIZqhccY^=3?*CYt$Lc%-w|3I#nmK^G^~BrM&J|k%5t}Lp!SyG9xGlN%%6v zijUvVNU0%42e_YfEP0E8N?je_7RM4MNdK>_d2gVo?9%9AS9vN`din#@0gC=lj0*)9 zFfW9oBqA&0Y)h6G(6S;X$qspJ?^B(7!J)8lBTJ>`@c!2At0J4BL#V)Ak>jIGmPsP1 zL|U8y0L~kr%Bu@wlvb@W!@G5z!aw8&`+nkQ&ex~#-ziC^-5WVSEEeS&lpdlDn^8$| zhAWh*b~1|We&5@!`BI5AkhswE{?4%SyjFtg+f8q`H{XBlN+t8fBsMjPw9uC-z{E=Fm=*Evx^q`TRacGnxY)46qSvF z`HbfQ0^hl0TvtI%7k{lzGW96r!X@u1Z8z#j^Bh1h-?RIwv~#LUg-uJwsPwbdxQ+*J z*PLdF=^V?7qrFs^u`1t=v)l`v%x?XRO$F{xqnnYt)6}WGQ7m1ClQ}wA`KRk)JC*{F!lyCxMHy`N$;$ zp{w;Qby=YPA`JtAM%OjoCEL?TmO@~2;4;w3ba}A*kdFW28S;z+!8jyzRq(OnAi>e9db5r7z^0=xyWfuGcM{VKw`J4$(`4CX?@~VlwkhTn zJBq}~$S;r9MQ{pBFO5W+c5E$X(Te%TI;UoZO9)0=dD1DEfzEF=z(IPc8d9_L3>dCA z0!;|3*b&o}vvT|S%oCLClkJ`D&l+eT0o#J>#Y4%%J60cUid_@C69o>?eER9KT;bzUU`E)u6v zQxln!{q6wJR_Sygq;;Izpe(K+X_FxU7lmOTe&8byaJV>|iLrUnG6@{C2Q#N2;M67d{SLvL* zuym6vmY+K=c5%<=qCw5yPV1Xey0bCVw@}%f(r@)pz59MypohfL`s(dzF0f5L2(cvX zfFC3eO9UmSI@L+I@~?qX^Y)<>PE=C2_ml$>bnva%?lMev?sA@edU0JcT3|kQ$SSEp za>B`cTcfkh2SwqBlhu>oztO~fFJ2SlQPJHUrFZ^0$%L4?kHGR=289So5f<7c9d^9A;F^c(jih{hD6r^roQ+2Br)R{v{t z*u_mh2<1W&VuatrA65EMMvaA*GY`S|on|7>mDo#UCiM3!+ixMN0IXw-P+uV@e{fCp z+>D^lu2#Iv+3%aIGm7JK|AhEx?s;VhIIz+aN3T&eJF=%k2jY{{O^su+Nq)()4uKX3 z*xLv)Z`N6|b=u90u0SSg@^bRG=R!AP!v?wv( zY#i8*L#TWOzz`9eGY&KbRQIPPdo_deh2@#+cyPxiRvjyq?H)odygzgH&0Y^Hok15S zwGnDG-G0Jk;-M0OfQR9)9o0*YyT&TOgU%Zos$@)#D0gl3lAUw$qeEd$dD2629#m0N?FL-c{F!mm^9o@qVJM*2&vmmT%Qb>S#B8&N_FF6Dhz7u1Z&zx2zwCHR-R) zj(!I_MD@0J9S7kQ9U9$_e@-{Ot^H~ei~l;5D*0f*Tl=&;wWaT!>kwKlfE>n{Ib`B8 z4a0Zh9T(wAK%USx1^J0LRlZ*g-tLL%CM%(Rvbs)U-&nA)2@;Yj%xY{N{`(o)zE4+C zA1H+8o7dPpKvLx-OWdzyx8KLXFBQxECRtP|O$txbL{ zpTqIDO?%-uStg>SKkN7RjSSS-?nAvW-8jX4i~SlzbMuy~xx_7H@=dyy^Y&rIvyN)r z6*X6us=`ims=6im2bTmzHm9mmy;16*3-Yd$WGMd|FZ_h!ulsZ@^u5@YqH|~T7#0fFP#~qx)Oq}P7RrqE> z@FdLG!k3{6WR`ZEqcTSPCm!jRZMxq1PMbANlf>$(UVwKsm)13d>&As8&FN{%ACs&7 z?6^EDRPIcStyIMd%3I?Kncdmhv>klj|1M|x6FY&_EUtoAZzbtbC!@LXAxsQ~n6IC2 zNe+IuL^&A$lJHc#?7W8% zW`hw6?d7#!@L6Fiyi-~exy~y|nB~ulvi1lcl>1}3(ZV3FK}@TVv~wFZerd_7GU72; zYj1F+;P|Dr7TpJP&N1a!WGO`eX1?5+Xy8~Ur^~ZFe`i=&NqdjUqFnCkI{b^4Z4-ql zP*uKQHW~Q98hb#4tuNl=y=^;NW>val@#O>5r;~}V|J2oJskt4mf~1=y+Ruje`Gp60 z=#j5dQOU-Hk+*)@`tFxzo&(_Pfp}+FNhz=ljRK53_A^)}uOR`Busm| zF7GNAZ4tPPxd$lJfLJ7Mw)k9(12o5@S`)llXWsGjc13sQvqHUNQ;cGaHq8nTb8{{& zoGQLK9L8gy)ReFWVN;>m!ItqN27Zk27)8KZC@;0ltA0*QhAF6<8DUP79QXB^l-?{8 zm*BTJ>cm8T5S+7=$_v1wzOoOzFM z%yNd2pXtg+Q}A?w>j|Pq63MUOwc@!U0e#JO*=3Bgl7S>S$t5`0Q&?0M@6e1|U*AXl zcyedV67*~?wSw|t6K>@C<4D1RCDkV9R!l2#+_PP|PtzUcce$Kqq4mBwi_!~6PjBC{ z#@}+z&<9Uc-P}PYe^61V7%@rT2TX?}JfmHjEHi6sY5{Bx=kK-74|vt?q>%U%bT-|g zJlMV8Ae+hZviWB<IHFdGpIB+N_jLT$ME{OKAx<swo1ne2@WS(?|Hw5Iby;&;YMe~)%H{CfJL%t2CC$pfVi-D!< zn#-v{XG(*dJEt#zarHP^ViMEbNv~&WAi;2~8p+=KI$y=*bbk7K!Hb`LHaY@MmQpQ{ zMHdEj%@J4j>(;Z_+}5c`b&(G+8y#X>HUe}Q{&QbMBiLx-PrGXEJ6aanHAR{WN&C+y znZJ)T)X^JFb2w0eWZrv8>%e7wHJ0bkOMEKDw@}UJS>EdE7G`>)2#jUNBdS9E{0eFc z{0d-0B$;xOMEqoZKR^5CqJm#J+N5Ds7ektres5>DNixwD{QMl+axXiG$0_U0+3;jKQ@?ZRz)}+tK-AWUow+~sFiP)H&LGrVgor{Fda#`U^Cpd8ee?0!L1Jbx==DH^(1*KrAS$6rBs#= zn@DZu9kaJss_~gyKQ?j+4q_?-QvOE&&jxvN;IEVPIDnO0w_Scp{36{>~X*}N7r&qQULD`|hPrn|E z@r9r-QvIbiSocufX$XxT;)XSv?6b&+$t29S9(A3G0QBfiggMqM%G!E61`XpEgGO$u zj&LS04IPSa-J6$>*s&}=Ktr<8MkZ+Ro;_(}GPOA)C%$qb@Z7$!&dI)(PvZlI>}vBA z4a6232F*<}d^iP_Q;0$b=W?au%{w7Q-U;+#e?Yxmb=R&t{!1+(PT;>|cPH%GW0q@_ zaslgsL6MAEBOcv4X4!d(5x!YFi%1U(l2ul;!9Md|;6Uotg{XppC;bWNnh9+8WG5=x zZxL5$KYu!4+a`F(r`eu2Pz;tRSI`-*ITTpx)veB7{yAoXZMQL zqSU!-oo-uqNhaanVZ9#sPD9J>5zQ?g@3)j^GuAQJoWGFCAa`y zN$IufiYm>QD2L2!?RF8`=F~mHit6y(iB!)k*AsM%g9O3rpu$2t^a=I2El;*5YRs@4dK?c<7rJ z3%5}0Pn+2F8qv_KI-rGx`4Y>A72)FLF~~)c?`;Fl{SF&41_{dzoZp+GKZf@0-EO6_ z_EyNlnF-{F;MGO9eauXeYnjecs}1iB{{bluvY97r1)<_J8mT%i#upRFGqJBVwOq z7aEPEj{a>3Phzl^yfGgO-w2~Ve*B*`asPGv?f<_E<049t`#LG@n@gi;dL?A{ZDd(m zY@>~?hr-RCa-7*nvZe5ZbeT*+w~**13bzrYT#C9*$(@zYxr|bRrVWiKIwKJ)F zxk!=qUIw072h<=X@agR<>m!<%e0k-f`zE*1$S1FN*gph*Q=Z;Nn53#8<@g%CvsZ{Q zcRl@KKR^#hZuF1bwwgGKS*On*(AiS0>g2mJ0-&r~nZJ=NQXKE%1mz+=@fKZOAg*_b zTa>PLjYf|szkEgo zH=E1L_L@TuA2}=EY_#ktJ9U;m<P#8$Qqh{MClG_-vfnP&J$?AN^JUb(ck) z9AhzBnsp^5_yBvY*``#?I|rn~PjrbL!sifl80eYjW$6O#$u2(Y0f7)(oG@#ssi?76 z+fD)4FSEHqq^Txu6o?iKWzqHje$z3~4i5*!da^j2h`B<0rJ!tgbj2Azkm3S=SEE@8 zW~>vO*RO4m-(A;=>pPFW-dwO6ql=J}`7A`?k#tHO&@m<7!??775Og-duSu>9g8{rE zLx*UW z&QJB*f3;CPYp`}T`{^*KIjFG6bNhuaCRHo??JgwT`=+WVPh6PK(bnwlOG&lgMP%zB`V6wXWsl36)S21Ql^`+n;N%lm5nq6A+GZM@*6S`a@tIF&io}TH_XpRr&XH%0vhg8P zoonJT4G~%V)jh--GTN-bT7kdGZU}T{t%EzA>SxIl@k&?B0?d5#Hx@(iF*Sd2ju)t` zCka0X8P|mrw42tKI}u)Ao17vayzrqv{6R2tFDHIJ>OW&$Ii-QgYYF#80H>eS0EdxZ z15>e`s`Xj$F;xH5s5Y2cah=G;((dn0g0z-;@5%Y+z0W)HBFk++u~?YQLamD?{Tte| zB;|1AzNjYLkV+2eBr|IL65qc{<$F$GCw1+IV{wa1^_qZtX)?NcyEYS6O1l*7LSk@! zO+uB9&Ik5xiUd12e8y5axjo2;q}X?EZx}N7e(kS~6um)iZm#)-UsmX5OYhE&=319h zm^8{(Zg<>f4QE#Paa&yHJ}G3!(rPe`|0)QA8CcfpGsT!k^pIZXGgMJzd7Q@c?sl_Tzw@FkDB@epCD<+ z1?Up8l9y@qp_=n2PK&10SoYjY0gH%BXKvkSlS%GsFps&UG_fhc@vFR&baZsJ7z`^Q zg`I_R9jY@vG5+Mn(djO~R|2$Q9BaHQrDNT)2-N2+44FD*BYnzyryIe5X7A$d35tcI z%>R&|o2A3=(9~MXHo}}ZS zmy`fz5VlpNDqM`UHL5fjS0I5s56Bzlz@>=^AGsEM@}#NVGW;m-x%3os+SFGMh+%VC zy-)qhb>N}uy~nxKq_@XeW`SdDpc-V;$cuT%{EFG=XkhRTCUW{K8opSBhl_3$c+Se@ zUa__SW{uczlipYBEen)*4-#L4{jA*rtK3^vo!=fy!q0D*v7M|Bz3v0^Tw<$iXLh*8 zH>$Y-k=XaF^F#)8LR}+f0Tg#e^+umQH!@kqO`etsJF9p?z3BAxR0L8V_o|fUd%w`F zmZ=@N(dHX3&W>&cSl@$-*mY-2D;2@T!30c3)ZJ2Kqv6_KkI|;K=C343X#1-cbFw%T zU(DFzY?o;)$^1CY=3HNUHXgNjczgY5{TVUh$WgKUFoGd>!Rt`Aq}GB=$%)+QwykFE zDGJ;RPJ`Tx${{U@WQ6hTOI1mu$o|(8IIrr$9Kxi37KZyjBh|u~p%d8u`)-*obhQ}qhxY!YTf8f% z!*%%Xs9IFP!%aORsCK(1bvqxd5~rdLv=!V^R9N!eg0AEwxZEG$usfyXa(z+s8^v_sz~F${W}L3F2; zMJIslIcfrz`0DCk&-6-DwPqB_x_z9|>Sbvtyr~lBZQ4 zKky~z0;GARRr+Ic28^Rq*S}E!Ua*ek>G9~q2XB2%D954!#Ip^!j2IK?W3=e^aNL7i zEK9+ouWU^s;r2mZAn%h79mE<7f75BX+7!k_s;iCwX>~)tJn4dEt{l!e#&W&YiI~ex zPIX_A|K9W6c=NDfni=D~Rhyrr3w}EaVl*rX+eQqH|6>7)5UzK74t?}h^(qmlwm!!V z!@oGVhrYYG2=oAf;{L9tFNzHZDeV8Q_Vm)b(#<1nTrf2<@KIQ(YZHYEM}^KNJHG07 ztvtk@B$0rkiLHP>j%o!%)5i?Iw?CK3`z47+5#e*K9&Rt#U)ubK#Iq}=S)^*pxAw+K z8Fe6CoX#6+5saoF>d*6)L~YJ7rXLxO@v@TR?cL#Huj} zXj$38O?`QVgLFA8P2}QAUH#bhhDn0Yg{kFe{TkJ95iw)dO>bo8G(pcIf}|;MGFG(r?F4@935kIze+O?ZLUcs- za4>OR$*5G_ed+hA*-vp)q(SZ;#d6W?lt9+(xv+{le#i5#7l9qfh_>=66@s|%)cR64 z&QPJnC})c4x-^bbv%PFjzN)pOmzQy3VbFTM6z-b~qla>vah)YZR1> z!oOS@A3#{2L{RFOb-C6%4 z2c2=qqDd(0q9JG@vb^VHSDsSWsE^Z7S7s(H9aoN{DlE#Ret_Qkb;DkXRIfRp8j~n3 z9Z$Ue^#a)l)WFP4L&rTZ7y1Ei{+(+)q`_=r!vCON2`t$(lou5Kn?R>Au*YI>tH1!O;&Q70}Mh50HaC z{Sk@m=ZWE;yVcj7G()ZxR`On>-9L*?{bD<5$>hcchx&d+vwo2J=UBMi2_mDqhk8To z_muA3!W;rEN)X{w_V6Fb{Ds=8+U@nG;=0AvhZ7t)>VNJe+eU*Jje=jb{B)j@ePn-T z3hBMivHqozV@)I#U^-&^?_P0>J%Y+vj-iYHpZ_WJ?%f_+@=MQ)++c^M^z%>G_OtIS zu226=>^f)lm*M_%S=;1(n~CW%@0II#tqxq0`CjZy*dTckDcUX__Q;qMWLbiKv^+5? zb#_I}GO7ITP}9fw|Nb>OvA@f;*hbRsEnkoqF72tBArlv3mng)Ib{2wfo*X}11)XWu z1&F1pArJc}N2;j#3|bg3D0n>Qz;Eu5XF}%>?A!+#dUY)fWJxse+h^mU)gNUbQs8=^ur0dw6z`YVHc$hYxAp4|@kB+B-d;=~9VU&n9yBy*Lhz2lq9Vk7%FAGZ zS90Qz+px0i=14`3Oc&kh8F7T(o5Wa9M9YkSrO^;ozNU|Wu1&mGThRan5PWNuDI#sC zHWe6*&Ao8%%qf+uGbAv6&o+SV!|1HzJ9~E8+jQc+y=QOWmX^=Jl)E%YC*)r$BN-?T zeJW-=6dTWqi6iTKz1u{6Kh7--zqT)ezm@0Ki{uCP>`*u>N8uB?HSG_1a5Ph_Wf~{QwylMfHFH;1?A3Hn0j33Y4G(xnoH9_DqXI$gXYAN(K z(e=EJwMp^Ewv~nHW)x*~bP_;9DHQxXpo6k^w3d@@N=$V}jpnX~P&32C;%~tNB9AH! z4e5fF^N_(?Jfs)OI7LM-&jU**%{xod%g& z6k1q!F}J^A;1U`?6LBqJZCJ@G_6nB5ZJjAOMB@Wdr^ipxp)d38>hIs+DKvdvAaD;$mQmbn%mM zk%0x*|`dl7r#a{}hlpeR9iYD2(WyLlG4P zO92xhM$p=!5m>ae)^;}9&z*?*?Qh~FsaKw?`h52dE`JUdR`f^Sz=)PUPToR>j4s{N z!RnSAM#DWHboIX2Sl2VE=)*Kb9uRBficZ5Tmpw+RwsMdxPr>l;EsAjAhCcx<8a8eu zjDn4tx-r<38l3}-$`|LY4)++1$sd=Luo0=P!tPh=Q?YJAllH<|)X9x;!33?;LG@m) z*L$w9=q_yM3a;uqO=TrTaCg|@;8V*_lG#~n9kC=zQmFiG>JJ!mO$>i zIg@)bX7`n+H2kaCP~!r`v+GCeP65*7QcKO%Fd`A)!?F6xQ&D zL?8%DUn)P8DDL%ZRw0YSnJTm`kl6MyM)lU!jqevLLHJhU&$9hX;}$*tq}UdK`+b)d z>#aCsFXL%WmN4&ECroDk`Ae`$u57DjpCj01oG6=~c(gek#1iyod}_#ThLInY1^Y97 z9h3xkT3|EFv`uy_&HGk(wWJm6#cA3aSt*b2VIYQd{2PfYpG~a`zokEW6y$*x5guf6 zz+usc?rGF4JDr)8{?$4Fo6tIG1(@C33~h>HevCN6t{jHY+b5n_aX1|tlt@2kmq8fZ zb#hZ0Ec$(ENgE1=S@@(5V$5r{k_@%5kVR%db3&i86&~dI^Mrm-&T4%!U2wS%9%++PL?DJ7dM@Ads|O~jCZWUZ`tUGwWcj19tGVbHsr%u88<_-0*z zvE%5Su^5-!{-nZ@5yB4R`S1AtU-aa$CoQnaP zU=?N8f5kE^>6aWNQ78&Fk&%g zZ*il|$r|1HYG*6&oMk~_LP8YI+gt*(iGzs5!>?_|AWZ%EzbZ;N!K{5&cA48+`PERw z+^j9>o4vhp!WtGVKKa_gm(tIze5yVyRC&q@mifU1c}J=zT@}~n=YI{G!jS|`ejNTs zdWdqUKmR7tY^UCBG*}=Wm>!Yp|BL+TU1AuK_FxK7I>F?l$Gxo_qLf$zCZ&^@gvHBQ zl~~T24Ts##|5BU!dE&(@2Q^I_IoTv54hYyf(yh+>y{rGbpIiw*fi1l-I?$O&MWrEQ zgCj9AY7&zcA+R44^t6AFacxAY7tD)8cPz?en;5|>yS%e7Y>NS)~=agNw*GedesXwGFb zvrv~^x7Wy~P2_p1MH`kqQ7FdhchGpQXGo*Ps-X7^PJZU*>hHq5?dqKD<`%tM4h{T> zK>6qR&+!4=Dl+SFIe8~w=3UOGH%Z?|XG(xAJhdB58kCu9Uzb<+f5+p$HX5FtqvpNS ze>vpDzF^9uw*Z9JrBOo<%F-+>>@OGuQ?}jgSQ-%Yxp((d_JOro?*T&c`fvptCF2MO z_Afk?`q+94U3S4_H?swo*w!iv0-dHQZU=(run;`k>%r-bhXp}^v(?*@zTdLV8KoF3 zOYsV|3f=(>gi@jRdkh&#%HB;BMH%7E?L3JG{IlN{CL8@s1ZO3p$kS;^LuIgs%mK3` z)%>~lf7x>UYq6iIEyPoD3do4eehR<;T=3AHDRn96Lnh~gFbcD~)3h3Ir~Eb*Trq;H z%gDSTOudj>AE2kLKij{nV)&#~*oQE2)+KA=JAAA27w%mHE+{Y_VVycOrHd{lYgj*dVM{SMW*A~*LHc*m*+o@BVL`L9dLMh{ ze=J}+8}VGK+VmPR>45$;&99$nIfiH-g)uOYM3kxpe|#FSFDrYt%rptnRLUDR zpkFX$D*$N+4xG!7rO1kW-Nhlr!;*h#S%-e5v?LZVfQKS%IK~~Kx?-uQtnKwXOB75n z)HW8NHswE4&k&zX8fzp2n00X5j^4;Mx;NcBQX z7Ehn2nf1T=sW?P~(07LY05zoxF{CZ*Y%*oRtftlDp#m!)_}uYKUAxFdgHj~lf*W@{ zbs)^%&ZQ;ed)Dx(fqti*NxxFf+(VDIRH$Q0hiW}t@sa7*N~f24Q6s0z96Hv_ue&!U z@?%}9w=wl@W!joI>kg_q;qu(h+|a;hXFn*bz4UnYD}zJZ@4wmbk7bW_Vt`ZOMz7&^ zQ`v1k9}BG54yw335wHIEwCtPK*x-lh0b@oz&N8o1Sh3AD2)v+Mo3_cbBirb+L`vCzz#+(0+9Hg2*_G7i!JMj^1JO z-HKiJ2D2|j^%S?Mu3NUAOhh)$C%?cI6?JIz2L7=7Qb5Z`NGSPYHWn=5i}{A^qj=V8 z7RGe^$($f>>zLjGIV43qGBo1y6A=M!eDK?%xVooo4a;ym`f%gqo4q||bI&`glDX8$ zgxl0J~}^nE+tA|nq)!N7)HGmU_{mdTj3jY zFJ00tq4M{qY*ubPTl(O?$MEby0U3jXyH-|#PQcY%vRbge4NODk+>6Ihz?aL*iHw5b z?u?IpY^kyjH>ckrb{`j`37tQA;iDi7=$l;LB@m_R@!G(BM%p5{LOZ{P-0uxy>vNen zM_J+q_h+gl{%w&*Fmg(G{csxooi8T3z(BUE+vdjr{U~5cKw!XNX+kL2&WYjW2jjJp zlxW+U0*@Du?W)#+IG0fmh|{p>7=AAL=C`$VYjW)z?{y9OV1Lw`ksGLng3??5vZr%p z()B5MIb*P0wTWFw`jr^rwC6T|orEm*hU4&&FG;l-SIH>&bd(ui}8|zjPR?Rb*vp zln&abM6U@_Z)_(!C`N{gqYHrW{6VZ&x!i|{9;~GD+)qtj&?}XvXfgbQE?^sEvS8k; z$OH6|=$r+7qnWnw*#mCpvxaA*Qji7}G#)z~D|i3*u<3|cO7he}5@YJmbGCMX=Z4e2 zEx&##p4?3Nja)jZ)btWwi$&WZ0c~P-0)mUPbKk5!E(RL-Zj!U{PqT$s?Y^b#^>R7i z+QVrqd0#iRwRhCk7Oy4CUSqef4d3!tOY9lUq&YW7eq-31QmmJ| zs`I-T#|t|bsVK_&9vgVN=?H{}dv&i5h7G_??4VEUV0U5PgaB~=P7px?ul=Q^=L={e z=>D!Rt8wAa*4+NKdPsP^+pTpiNb37nZvwvb;RwP$GJ^nbZ=f5}`w|Hh-5Pf{g!(GH z+4_V;{VPQs>?HR6(UU-gO<2T7pNc;m3-<9fBXerlc)a#X&)+*Y^2cf$!}h~}%(=v8_tzAP`Qp_h#TfJ8hpkO3o`DMrPAV(#40KBLR z?*Yp4l#iR&RG{;m%%BLnCPhs?2!?}r!c)o%?#3nnt*nEV5c{oiCGTxh;|Jp>Nhcdy zYZG&c(>gmPdpVnFHfCE~3sSH+h-Xo^ebN`6`OQw;h~BRWJO@A9c@X#3IikmO7PKb? zLD^PqHfL(7CVQLx!McJjJrSl~8;*+zXH|C7idmX&>mwk(@Z7P_2=(555Eb$LJ&rVK z65s}D-a+i=t_!y0&k({!(CALX$k2Ks-ll7{(scw$@GHP&I=(vc=9%?~(Vt%kypOKdhG-Q|`-t*1no{>}bL4%*51 z&a2Mwy{Wu6f6tL&{@O*0r@R2c;(M|9+@ke2iTNj2zCWE_`NZ?i=eZ6ICO4DR^=c-&-xryXCkPpj8_;1E~^0+FN%1 z{+Aiw@-3v6;8cVze}55t)%RumvAzFJxc)Gap9MqhXJktG7)}-O#sXgH(j?Vf<#l;tDxT+`iy&|z3REO=i zGQ)M`rHzIMw^zgGGP^qNtmV35Kc1`8IMI3vu|GC?aA4xAv$ZN;a1~LUa{tZZo-~6p^Hff&xAE@y*;MLr z=@skwn(d{#56q!GT({Msb#+o2fRVM)vS>%}2o z#QeqfH#T?vYN`4uk)zm1;i#CMbG3VAMz2`H06Rk{BSR7lKm5f$_EwSJ4mF;b7QO># zhiak=YmXbqna0N$HNk<8&4~;soIr1PyY~s2LCw#cwzhrTvv8~%ML{(-^K(cP|6&d7NSJtp0+W^ID!#*z;gc3XiVv z(hM8NAr?@jQTo>=H|)>D2GUVYCM!D(&XI6Bwo0{$USDqqjgwBAKJ4R4*YgcU-PLpR za0T?yi=j9CW+G!IEwmgoO+ZuAL?)sESy-RIb?;2fD93SXh+MsN1f;RiA)?KF%tIOnIVjq{ku^^Qc$7$>8j4H;0%571Npn%Xj_C;vx!SO$Ggt_2ZcLP)77>&j>z z@>RqU5kfQC=LW~0S9aDs>aUTZhj%2U!Us?Nlat#-#F0e2|IeRsGf{yGRtil`&4gc0 z$kgJGZ-h?o-Vb$5&EIJ`l5a#W@*Dq%LGD*hV z)6)DL*1mtwLVuB#I9>8TZmvO;nw5h4YXLFaV7!|KTkA3lqxxwsXHy1I;30qV zC6!!iRwrrK3TN*op8QUlYBaD$d8JA3!X~Py zzU*ja*Nc}rSQcZp%rh5jHN0WeJ4c9?S>SSW^_C17Y$>Bne!2EK##@uwGB3O|eiIsp z5t(*L$ z+|^7}zi87Tv-^*n_CIEvY|S&EVX z3^g<15pX{ebMqChwb-`Y8>9*t7C=?jF6Ni^<=05m7KJ=kiC&!U6#g6Bd$3!w9UKIX%&R~&WsT5lB@NqcndPm&;j-zM z6TY1}H(iTE8!{BEl-P$J=3Yl|6<0bgC4Ypheae@<@^SjPb$iwiqi;>`0#y5)@Rwf8 zQT{wX$K);can_>sP4B|EG*u(8FpI^qFH-MgV*aAAqzn4}r zU)~(pLjQR1nEIX(JZw@aw>9Tk-|zx8D2g&jd3ue{o(++1+F@LjBABJEj+)%LF|PH}7uXATAgcB2Wqml@oGFmQx01wWksvw>cGHt$(_vrycD@9>_RzcHl_1ODp*^Ef6Xj4fp5b57-jmc07K<^wd)%Jf%uK? zK-y}4ayvkstaac@KMJ>!h2?x5OSLccHiNrBuZi$Nk!^$@EQWsvPBTK0U5t$*0r1>} z?g=4o^@2D$VjthV zcRND{V$t#$tZ+sxQ!BToOn6mClWQBIQ>Ey6geN8_^Z&wqcU_3!I>==|dO z3tMdI=yxC#?vT@0YP$MvuN^S19vR3~V!x_MGy`i{^T)T#365iIz8o%>^jK;H2AACH z?vBh`WpDO9zrZw1-a zQs>CpTi5G9)yrEU;HQ%ge=oBVlKF0d9k33Z}zT!BL6D@Z?oqVUPH$C+gRnn z!fvEGyg2Od-RkJ?Yax$V(twV1P4TSf2|qBdjR)48U@t>EZIiXrH{Yq4$+fW+524!; zdnYnWMw|nT?&@JBV_VrFntkujf<>wG@q%!4GmfuR)aN&)ysN-tM779-$9=ZIgi2p& zzTU0V?vWjNQN`s^GsGF&kyUxgp$KnK?|OMUFoR10(DV%0SxEN!NG`5Ao8Nk;=cMJ% zJd7P`tLKdBDmnPQDE?DeZJqfp^Zt0Fr9t6Vny>3yjqU&&I%{h6pNZtr)9p9|vh&|Hv0KXAm+8;RPy5+fJ6?)acZ>bVa!lcDRe)0RCsB4Cw($_?s~OrMx{yS%$jL9^GJ! zzUU_ywQSH>38b= zWarMdt{H#3n!;c)ug-XIJ{woS+R{X8V+}ysiBS`DSmxV zO_ps&QC3!hm&ft*ZE-Ffr)(O4F+mH+UAh)2z@|#*vn*x|x;TlB+;07m!KnnJrt$idyk>CUuSt$!tRVn`n#tYVi85bY2 ztK@;aNb+Cb9;g6#2O+_i(ce>l(Yt`P5a<8|euB>d5f4{qv^|Dz)D&pqp7^sh>>eX< zst<~({JDhSWYHK`eo>SWjD*1ikSsH|v=6sPZ%$kY5D!H0p8pU-=-+K;k#Yu)Mjt5> zmw7!^em+wKQ*Ufyb=t+iG)J>va;e_Sn-55)@3X5=uY!acqW)??(HQ?ggZ|-DK>YLL z`~MWR<*m&S|A{?w?G4(223HmWVrX6>zY6Tesov(?Psq* z{$DE4Kkdz8K+!(|t920HW3v_BGD2+0Et;o%trvXzf9RLQzbdib?t%RFB-+vn9{;VX zKX?9J`%Y3gi8s(cL@aaySk(k;#Gti-x4#6{|Ed@>Ca(zd-&U!W0~CXQ{;i;Vp6%M- z=Knb|_?zog;NNY7`^RU|&&R(^rr)&*0)|3wNud4T78JMuJQ#Vh6S>`?)IF zwkP1E#$b8?hdO0BEjPdGYuF4lX5m#mu*I+Sb3qaM|+ZUhV8j`sg+Z>dc;3 z`;k}Tm$NFR{C!_>BuI#~S&O%$n*Q(rs^?S4bkxE;fmmxLF2It#vXjGEjQX3-TPXW$ z$ho?Fko5;|G^(-+Qtco@;_G!4^pz#!w|@DCM_9kYq&25``fNP$H8t<%aZw&$y`KMZbP`NAdh5{2FaF(y`jMp14JXWp zhzg^;KwzrjA#eEKyr0~Wzm7ys0IP+>=3wyf@6HWXwD8{Mkt-YlN@zSf$a#WS#C)#qF3sR8Gd3MP%MZR2Sgs0b!Yd^Zi8sDJLf2EQFeu5UolA z1m@Ikh`i0wpQ;kmf_myY!iy8tI|(q4qzxzQf^U-U{7B55g1h-%!D`F^Bmu4jU=>LO z{2W3DHv~RlY2gytS8>SVr*rQ4JT-PV*scN*O@wqZF}|>$92)rxU#8KkV~w;8?6Xs#v*6ZUI&IA0LV^8}nOf09dm-bwL zrSvulGl~id-*CJ9Ik&@8+@+?g%%!;Hz{Nu@N9grLiG%kSE-Vm&8+4r{LfGB2(%))j znTQ{p+u09VaLRcc+k<_gKtLSWAz{H>zR;0X=ARr-D0jZq{s0S!({q&CO-M(w(&}y5 z{23!F-bd-ESURpheOs7qOJLJlyOOff+xq(n*0%24`Twq99cbwGNuf~6sSO|$_|>GZ zf1rTdZpTjj)w1&&gKymuT-p*P!!2jxisO&>V7>1~wRrOTU^PSAzL+e?1|L=LwUgy+Jz%)aOt4ST~t8f;y?w~0`R zC!p8PPX@`m$dq!Gb?YKM{Y`=JElcIQkPf%&+M0^p`>~g20ElWDObCs>=6%9D$i#2b34>eSvp}A`dc-t}x!>He8=L zo3@AjyL34DDJ+rU0ti=LhoxyqwDqEkQ%5AYW-dPc?Z9h4xy4^As=#SeS8B$zHVQxa zF%y8Oa{9FQ=|i*GFrmXJH9rWU$J!V4nZ?w=cPZ z$+HuMU;^rN^VL(`R_K;!oBm4=5wF+x!jaOe)52l>(y9YUI6+iSDVhb@zasxh^j}oa z7^1g!5M2DTt3dq2HvQk;QvV;y2$nH>8Of(LWWEa_i7iZ#^M)1k|F#7{`Ir&Qwxkd^ z9sApP)BsZG%JVEtt$Fm8PoT#|B;L9_%j1e{vbMy=5}Qj-)$hf_#7jyzXv{*QHg+8U z-o9gmVj%(@RPr{Jzq>@wN)UP+)Ft3!C4N2vzKVu& zp$Or)xGqUC5KTRrj@jrcmSKoUXFKe7sn$-@Cnk2N#f&z1tRSwT^#J z&U>mDQ6#A@UKoXweskSbKI4cTnvr3n9+l*zf9h+ne|d~;()VIxp#SU7BwECFSmKlX zWR)b?Db5|omXwzFpDxlp%eOIkwJSn#E+f%Tll3ApOlfwvdh%YG?*lFeBWDs^EIvg= z8HaxHnoBWhJS&p*moS!D*R@%B30M#kOgwNiTb*~}GDyy4#p6UeuUGV9SHh~d+o&9X zd|f;!nR+p0p{Hi8r<<-$i0>`rQYpmKUP-=8#;L6a$~dshm5&(v`feYiSw$63{LHXf zqIm7DzU0oZ3tO;xUA9QK)*i__#h=i=7JavJvR1!gv%)@7@*-f$Km7u!3VJ(tJnd&I zEXEwwZF9+l((}s$+JQyDrWPT#K8JM_{3rx?6GZ-#uAjY>X_kv^Wz^SGV<$a5zbwLq z_-%%-)R}NSJ0rdxB(H=||DZNYr8bMEz7Ak%Xo;!!>Vfw4Wt|_Fj96{H*nXWel5V(0 z!Ir0>i8x=;^x?zp!F(6g;aPYF+Z$T9_NBlwqMQ&++u@RtVoNI}pSe$zRvB(s#`2t0 zl#S;lU&f}h({$*F{|suDFlfYiH7h9Et%HUaaUici{Dqd9C@kh*ZRd~7=jCRXhwUZ@*yG;Tp`&6dr-_R_Ci zq&>?XG^DNtI7|FKu^cJ*yLpg&70`Q3&Z$XhA}U~Tnm9Z)NLaC=%{A*Z?0k+rdYWBq zN)8?j?rlnL(UkpCgHXBh!%)p9N9QqhwXo`nF=fjw@8{PuvrfOv8|)*Q?}m&l@hL*g zJ0shTQf2RT#GjprElF8xFKORIs~Bs#;^Mo83YoPK|9dm>dt4vtjO6gZn4b81Y!_T! z)FiA9EB&>nw%(cQ`-yuNCkfU|G>+N1%jw87UPT`+K}=HIh?eXhI?MNU#x5{rgDpsL z$_qAd#H7ains3LUXv@z5xX}wvHN~y8lFL)i=&9>QEmt57a;7l(icG+VRSML#yz{#U zw;Ay5dzmr5jD;mxF2iimrWUV8lLf0M%^zhKW=7gvHa)O2sf(V}&z%{Fq+3D5f!k#q zTcWEoT+TXlW~SOPu8X%n)-tM>jFCrKk|(C#iYCDhjN&4)VfD$MIgFx9M0z=lBG1dr z{N|MtN0^3f=L-BKHkFYsIn$JB*>HfvLv|}-$r=%Ke{3uhp8U-#y*`%U;_0Hcun(Oc zne;ehe#^BeuXL2m%<+Krb*ta$*uaq`oNPSZa8`xJAZ<*O`7HdP;2X)SPwQ*4#kLih zY&?$X$BXWy9FMU)+)KxiOjhS2Bt*l$Om=_@acW30(~5`hoy6vNwW*;W`jCEkBl0$Gd~z7t8186@oc8KCfv1U%zc3lIG>@zS#jM|n=xMBut}qP*+Rw~ zlfTrOBNj4&nK#sC-xCe4_&wV-SXMqaV#-OI!p7Wvi&joWhPUXn?nJL089p^y&bPbZ zBP;H`dZD|WI-1RUdfZ-Wc~nVs==t|BX^6pl21|+!Y~S~DsmNd%mP#U(aJG!huAi|4 zWbF4u(N)WvPoJ0yeYV;&G#D(7(vXTAE4v=(iK=jLT|UX6kNkAUK1Ux4&%KX+zO2c$ z;(1i_fQ&3zd2$nm3RoJPbzHRN-Wj~<1BT9%YDCusRvh*s%tQGD)}~IeoAy14!C`1Sa|<`^YL1^j4z`-NKGUZ;LkJ8bG(0^p!?2C)C9c2S1+ zcGTs?tOOZ-yk6l)G+RU!yYv2y2LX#|cc2lOuxN|EWWcWKvk%7*(~Zta4zXxvTr@U%)o$JFiR`{w&5%z@ zbQ;^FVSoM`<8ZRp}FYX1o#J2Dne_#iv_v7J~5en2{ zvIYmcCS1JFrT5Qw5H0a}LEXc?{z@INnho5PgcIte39_~#ufI64Je5&X79Jr3@H=hx zH%l0>(KH=ea&o&@qsu)M9QWwcc$(H^P1Qf*!m;G!pRW$>C&bL*Fl`%LQe{Vf#wYoZ zA!V>4D|5uvTIG?7hVgr+QV{?Zh8$qOHtl8m+39 z7`Aa}*k4gtB9w6m{5qu4M_(E{ZC6vvregZ?eq_`jJLTY4G`7?EW!A~^3z|+T8N%UK z+x&ukVq??6-~{{g@omx>x^|eD(`2<030Sj58-fpLJ1I?3E`cW#(Ga>28J^R6`P!41 zTh#p&4D=3H^zuo$gA{S)+nr7cGb?tH3@Cfo6HY4dgS3N1p^TY&6%^aIE$eAz^rw6X?bMR z2a2+$INLo1$LS0O9a_C(bvIXb&6+d(^_!6dsH?d@PWXU1K!;^>2BTRmpR$`>l8gw6 z2@1D9#qr7tB{bmB@L3eRFY;NpOm7@*vl#SZyV5(pj?Z%4y45@WLYrwPOP+#5hwFGv z)qCn%4uQn%2K7cWnQR?kmF6GJb2N?HPsi9)8&3VEz%-*vaHowJsnKm87OuTnpNp1^ zsRJl0lxRE@z#C{`-)I_ncc(-z=8d*7=46$du=g8<=LeR#(yUB$j!r6ZMTk*s+MsX@|^%cNOdD_l2JEKV0do^?M$n?(8N87Fa&=5FTa#>Dre+l{q~KqIIFEhMMQq0cg?`J_*=`pM%!9_N$oa~0CB7h8g~gP z<1%qN&uY0DY59Gt{IxcD@g-ri^g1l= za;#lfg_PL+xTPtQ!H}Vsn$wMpit?7XGF0UqDs#}XyHuTi;cTa>xbkwxH81&TI~!M> z8iAz4!S_B%M>9|Bgo81<2k1~Sv3y*#8|ArahI%L4203J#xT^A`Cg`Asr$m)}>tmzw zPLvoGrBde6dAAxjE2+W!(#Eq(3>cAynKrVcC(-dNuw_ya5P{8xB(7|CISm+kjdZlb z=#Qa&u#sOwJ*vi8e_ zM5Bw$XkV3-o1z2Ud}jdq&67P*lF{J~yRpBF?#pS_rTA`YPeelUn94%`i6d&v6kBbn z(nbc4$9(eU(X;yo&+|ydc~Gi~!TNLOrXNQB0)0T?JlLKR^UB88Zv$*@#c4IOel@wh z`61Gu@S6WEFoOB9b4sP;KBRGRo6U#SB>YCx%iroID9!fi@n@Rh0YxK2Vh;*_pH6VA z>YV17XI_AWf$HNRTpb3NQgUoBllIf0iDIAwMozmOEmPFO#Gu=%Sndl8M=|AvFetGA z%l=g*ub(8bIQepduM+vBCJ@CTDwm!+tpv)O7uGB;`*Sy=u{IgMDe{j)RXih1Nh zolE&As*wcYv!z#$Uv0alK@2v>gUYLsPaD@rPRLBC1ywYg3;0omj6so3SSYH)BY9#@0;Qg%M7rfTr`zw>OeT~a%6|7{D{UV&f# zdZf`3j%!vRaMmxZ(?o4zUea|mW4N1eJAT54Mmp(`#$xe60mm;g`x@(x8ReXOu;@tp zYQG%`{M@#-Fg<5bmY*=C$>9^w_na%tH6OHawPsqza`j3EZ}DJk+JLaaE@ezC(y`4c zK=~+A0IG}X)c6+pa#H91feJ{fEkpaNs$!6LI@v<1x~H?)eEGDos^LZ}2$|sXg{k(X zBlE>{(ssKsbmHWdmgX_$yUL7X@~1dJQk)xCzS3N`RQ*Kmbb73W07|%sni?j;+>s{Q zt*XXS=X9z~6iQ_h02i0vgrvrN9-b_eG|Bmd_tgavE|Jkv#7JG-&e+~w-UnF`PM!ZO zfK|5z;7QtCmk4mV^p?g~xSZf?%Q?v_YN~5X<@Ne7=L@zboScaINsXqywt+o;?u*&y zS3TWCSZ3F(eM9}E2m1}T#F3J2(>X;x4N|Hbly{)CDYp>CL(_}@Lom=3PHGrE14cOo z8~yUfpQ}EH0n=ceD&~2;r27D!)_wEEogDuLlR^w3P< zBjM2kId_sWD4~}OKEY2_X}$!6$VDnAxhdTbT@==axx%N8J+2!2e4@@5*&yrDZa;qf zQA9tof#ewF_z8FWGL<_VEx#<>3B!A%&uCv+9SraG@)zLM9mFyP8WK@y6-&)vz64ik zwz>+dI9v&p5>n;NsjfFW=KHg_U%(>Js@w4e6~VYbi4@ugX(+7)kNr@iDbghNGCP2% zc~;wrP>>{_V$6?+%MgXdBoO@+jv42^y)fJ5ObkUmg1E~-hj!tiz=)@$PSw%d2cun| z?^Iqo?B;J|XkjEWl8!~Ut}&0Q;KdbQ21}XGpu@B(+}hWzlwr99@M>)umP!Pm#L%*J zJKUcTZrvt?#JHCOZJ@>b&>)#p^D350U^JXr8f)3|SX7Oo`Z#k-^Mrz0)uofWs#B}o zOlkeJZ{cyotn*JsXv@AH*=n?5YmP2>Zig;&OVO*8?V1RYOxhQeJVWs+ewr>Zx-sM1 zki4zbk-+1T{56sbmv@y>Kx>;7aPGkdRI;mcWJblTXjr=NNdg%{g{L1-aTZpUS<6Rl zMcwUIi_=!N1=E+1)LheCEzMz?Ab~7GPUP4C_w$e#%9!Nd_q-r)1tH6I+t$$F1|9oi z`o7_#37uUIh3b|L_!3^@H#gsU&VO!nyCsGl81Dt_gpncsbV}L_W>0M3M%V~FvvSjTDAqs%k-J%g_?@HH3tYkwPjgh`=*Y`=}?l$ z(z{wZI9~+O34(!;1=j9HcFyB|pqh;ib&zIUz)+3pN54sCdCg2m1}b1zZq3t4cPUm&h}A;>bZMkJ>LG!~KguC8I<}r7~q~D3K-ep4t3Z zMxZKt@D{pXxm+hKQD1ZpqD0AN%7LQ#qI2ls6fJ6;VxuiysmvNChTC@l>f zR}79}0yDOAn5%)sp+|^Pf-wpo)iC$nPg@dH0GU>F&@4#u@^}LAwA2Q8w5i{Xxc&v1 zR#(Eob!`ZvCKZjdB<40OwDwXW2&MiSN!L`V5knmB=2Q^`CNyE)f1t~c|hBkEMPip7yk8Sk|G+wGMnq!66l%M>{uX51e zFCb9{G?L3;6hB=ZOv(~GOlih|_HSRH1!$3HvQt@mBCKGDp6Pj1ea>Rg;iYh`z6jb4 zp2+e!jJIc?prfOCv63-%JI=>`obbX2EM(12*J}>T;T>LAn=Q4^V%sI<5Jzc+!PZ_s zEp7(@{}AVM>Vq6FJ7m!(qK!%$DZ+-$IX$c9+DNuly61}g`J#F=LaKDzXY<{@l?}5$ zm+A^NmsE!oXND9v2bf&}$nm39%T?0L^6Cbp9Of*f@?itheG9lHt#4|i_sqn7OjgGy zMw$>a9EcxAC!tICSLzW5`^Xv16EdHs=$M$(jY$ELL6r63{gXat;A@cQZiO>t4a&L< zZ;Vh4b5K%^BEAxwL6||rx%@cpvXz0f^9B{qM?Gd-%*H>nxOh67W4;=~EAQ(1Q$%&@ z_m>s)P?J=tE7>QfLtfIN5t}Ub%j%EJrv*3KEq>(@tIf4dvY zcMsQy3N(PeQKLUh5bqwKy{?Fp8aT$MSqqq%4|{P?Pwe73Ekwkt3iJ6;>0ixRK7MQe z9OzpR3hO2}RvJ6SfZ|j}#KysU8;))#h(GB^|8f$ei%0 zYQ-Jepc{gK0epc66J|58kA&-@DcMuF@c9esNaZ>^HbB7~IJ-=#5BqV1K_%vK;)ILR z5wGHR5pBCWBXfP{rMUs__#{Jxd*_D-{8D>6jC|4rbg%hWh3s(}8=F!xbb>}6j}f^d z)04CKs>_{hzcvQCJ@f9>;2wTEa?3M-7j;h6bg`m`WQ^AOc#NoT}^TY?`rLW#PWv)t7qvjNx$Qr6liXx>U86 z7EXjy%^MdXDZBD?9Vq-ldky$;_eO+Ae3MoUv*G#aW*Os}ll?T?1A>e>jF~2bmlwt} z_y&s=dR6?6MxF8C;LtoMRI=Hq#{Q(ksv;%Zm~V>8`xW3FbYCGOQqndX_sb+Mcn+jo zAzk?yEiwPzhA*>Rk85O3qxMEeO^7uryI|P715G`VNV9~7^sJ=Wm$H?cg^KP(#i?8Z z``GHn_y>zRs$lI{&y@fMOu-FVcH`D?4x}f3vZ-W3-b=hRoq_1vW zc7CGeQpSq%m2_oJZjb&qf5?M7EA_e4-}o*YI80V&lg453_(y-ZDQFL@%?!o5DQH{u z=nTTGKNhaTyyzR`QRS8#@Usv~JqJvTYtZ8KL$r)@-++;(3>jv=MGFA z_+u>S9sVLnQ!fB%LxRq+SkIZZ`iEg1i2O?2<&o3J);C#mZQqE5eu^S84k96s!hac~ zkLQiUJ#Tn~!c(EO5uceqndoHOCJV$XvFxiAuK_4Xl-Ie@xOdqO_7k@X6AdCV1-#5b(}apA8w;b3C0={KFD?~NGcSP!;Q zxCw$u*vmbH175-_g!x4#ER8QbGam%aW--F@hzB|rg`jwnni|@zAJ8;jc$ZvATo>y9 zJmkBvH#UjF3Qid&qQ4FfNqRJdjE}@A&%0!@EGal{=M`9}^R5`!uWvH(^I0PhF)lZZ z=SBblG}d1EV;iszsoEje(?P`_-Fl#TC82_WU*f(BI^bLUUXiK5YcRi>_z-nJgF#NO zJtozv@Ev=&D3!~jISdIqhRLp8dL2DQ^_qa5ytdBXG;F<8y+zIcG=h30oZVr>FuVHN zH$S{bbX<#`0v+|eI%h7=k+_wuSh*;^Z&c`=^0mT0` zX2Q1%4u}u`BTvQu=T&v4pr?O5c^%ho$MOJU#6Ur)p1isgC`fno2H!Af&?K{UJAe6o zT8^yCJU?@VgL4A+6~U4_j~mGUyM_01`+lQf5Pl+G8R9&*_Y?guHhJ(j^7Hc_Z&j0z zSxhc+0>Gy1?+Sz{4f+%7x(yHBBZiEnB_*H5K5=kx{Q6#HeVU4ZK28p9W-J(Pm$DPz ziB6-XrStODPL2^wrJ(|}#G(c{gl1USLEDH1MB=X%R2z~_aKUQ}Cq%;O@+ z2Zt}wnThgMXa07>YvxV?pOP{V#qYNdj#r%L^)(x~#eX8mnm4@K3nbNNt1`o5vifc^b z@Y|>0NSpUjG&GjhJ9UM0;?vVtmuAQT?Joqx+c&1<=)%In&t2}HJ_#1crq#HOEHJ~9 zk&(t#^s_pq8cz(h*s>CZ$?EV`y4_|bwY0cvjlMZ1KM#zZ+}v(!dkR9J9+X_X8B>); zCIn0rZqoA*e~d=y`nN5>VDRg+UQhV&@UXuAwsk>)veNm1p9(Ue;`Z9wLM_PVb<>JM zS_eYWYjv15ZQi?iZbc)cjfy6%lK2vspP^$pY6+pL^H zt~B5U(~{CK0hsP@Ylu3k^j+NFNx|Jd`D&SJ6WL0cdstegMpb9X+ad5Gx;b&Sj9et--07#lnN3@+h` zIHNPuwY1RYF#%o?R4)&3|LQS0*T)-N5E9ObXnk@{Nr}K~rv^bX!%S^f*5qt2`=80m zm?U~U1Wxc20&;2*D7y69Y1D+}0@M`e<8B=+%_71{&^egslNfblAXR zHRCqyQ^rIYiy|_@nsLVKsM&Z2wMiS?VX6CNWWij7C=&;3ZNmqDp@Q|?`rm_>kGzEU|dd-EQ$3kMng_(ok^N48T6?CpcR$Nr$5?K#t zVW&z{jq>NiD2x{9MuQ0-z8*OxVZ%9>i22ckrbYaH<+GQ_O!5J-z!Kg3ncxmMBYFG{r z2QR@inbSq}k2e)*rekywa6ACD5?x%S`8sqMx&bo5Nrof;xT zrpu}I;E--3{T?d?X2$NLPsx|)`Zd8ZJ*%g>6U>%IA2eL1EiH`a1G1Q^-C&PdA7|uM z6L9zF7?AV&$w16w+@0$lcZI?tZN16Z_d+SW+OOO_yJNO?`1W8dlLHvPR#xO%Tq>2x zgC7HrX0j?F-ePC9qyXggdSLcCZ`&308Byu>(m3MtzNJ@aI0va|A)1LGQlhQsL?cMU`sho=A35vNLF_ZzBScNzhj{6-eIqTGhNt_d9hlvU`+jl z!{q*#(z_V8x~bErkfgD;oj!5!O0HyjgROlTY4@n?i_hDM*F|_i`)W(Vu?s|_-`z!z zmf6}ZOoTb``Ix_SpF@O`Hf9J@Q;{CJi|AGxVvJ=8R~lk$set6c$*Mbfqo0f=IL7ih zhC$Os!jbRv$-@q+U}|5Al*f66xX_XZTiZ>5I!yJb28;ffi1rY1S4Oz#sh7lV;Qqe& zqoXxh>wV~lHtfPmLnM7>psCOm{=1DzOp_v^59RBGjC?EwbY~4S`1SCu8rrGKMBc@| z5qmJI$?vbW_jo+C_FbTyxrq! z#{%J)I6V&ta3v}{+)p*Q-Mmrr2(O_*#E}Du?BV&ugL{_b4sHte50*l_(n_a7*cXzd zF}ja<77B8Co5gd>S_nl$omJk;d11)poJ$z+EcjfP86ixnYm3Jm`zy&NoFoL5mEO-g z|B}em0imJKLz3Vbo41(?j^x-U9w=TMFlMyLyBw+f4sX{_M^`X82%keK+(> zKjv`U)8)Xn#7cxr-DI+851OVpFZIn+K-fNguQ8I7HXIsaU9$8fiSGrYK@HXC8QayO z7RBeq78%wSX7z$T!*<75Lwnc(nH1wOiAznsjh?xFD@m!3F$_4nStI5ina&T2ixJvZ z=s`ViutggR=yDYJ`I)i7CTSfd6_uNdZSn$HKx%Ak?8frJc?MUC&#TwW>gvgPj6rd+ z*$!y}S!U#DD({MWEF579lq@-~=5`)&Za%92K{MTo#5mp!m&aXHuid(_Bz(rVa49OI zBld76#fo4pOt*%6?o|b>oU5`V&x`!&&2}idC(paUYotpS??+ezP)O$U2M0`@(MUj_ z@(`=45NAL!o85g&h{RlNVR{rT0hS7D-Bw}>O5Dcynz?z+^2r3T&Wg5CYRp+~Vd>kY zJ$O?BTLh}UnS8_8A@yv~BbN3~OtgUlz}Dbj`$+4$4|KhZ9>y^vf_HJ7M4K0~Nv(mvH!P*6xrMEjRq-|&(e@c@S7sVXZA z>%31JTfXkOVKBfs+yE4J{A-SykAH-e^*lS z_7!Q8?CfYPJu6kU#gDp1rP}kpxw%e6B*ELf zV-|l+<$Cpd+}$yR{*G-*dp~Id1wQ=$PLr7y%zW2u#Ts>Uf44 z85x0wAbfrpqQB6obDesNG(vz$@+=TnAd?QO)4BQO?QA=A1KvBWE}zY(NmSnwFudXH zy&lKgK86hsJJRrQN*L@Dcp^oTN!cJ4Qk8Blbr+Z?Y1QRUjfR ze&{uk^5tJT0Zeuk4-LPmGr)(!T+n|Hr{u-q!tpX0ZI9YgOQWgMj#7h&c2ARf#GpN)uMRyXnZbo+YYFDRhR#1=-Vr8Laa-FiqT$+dQ zvn)6qT`TmAm8p@NdjJjndjUJw41m9Lp-+r~Th=Y&9drm2O|w#?h6 z1Y6KBY2RJaD58XvvUm0kN=qG z6U(l^NFoUe2->WUZw{GauQazT!z)^58vE~t5E5pyP20QDSQ${8pi?uU7M~!uKG`QQ zTL6u?e>Brw;}NHM9ZKyaXfB~DKnAKuq@3t8|D?;UA>k#t8jYwU;?+A|@)*Nn^7k=2 zz7fN+w6R&S?Q=f+6h+v*x)@iO8)q*m?(-Z&H(r5eZl5Dfg)-(!nR_~dK}#NxTaF< z3`SsRPEz+vhbkf0kL2bxL-e?JuzEMpon8o1BDWJA_NNV|zv!5Zql$Q&Pm`z-4(vhB zRuZgUuLkr>{a$osO~~kCZ0B^kIurWw5}OJ7aYkX~B{IO}+aKW*?~&a&k?EIg9!YO# zfJ+)rlC9p&L~L>mcg~sdeIVsHWywsJ{m(#A+*PD_=?&5jUg)jNuL_z8=q}uKeY|F` zSzjbGPsO*n2By1~<|J0*_8zV3!oXhY(I_Ps?+s8^JPCjz_Mhaj4v);$QC%2GI0{RK zmft~S)k+Amjb*%o0n?M_t4h>5%Ly|b_<4J$934(4O$iqLeHE$f$6!*(R|s(-ekG31 z?UA1O6Lh=hjp+RWKERk*xgcE}La<^hxn}kM2JA zd(X00CUshp>(+TDHN*Sy!-yLv>Jh$Lqtc3$i0l+=Z!MLb30`lND^lb2rFw@%z&JV9 zyv#PU*xoNIvn#)Jard8Kw$PYfiCI$Z5uT*k(bD3LVmzSEoZCyqYI~9Xu(4)2(0F2W zcp_2~xrFQ30Ua?0HyN=e{p}?Xd4Jfp$b~^R@3& z$G2ori9=uKY9?nFwD7$($+TQQWfFZ^C6CwU5w1PaI8V_En9>2H)<{-l!t&Z1XGJBA zEKjI$-I8FB=^o^CWoa+(;};$u>pU9=Fv)>qyyr^%H1MbE-LZR3yK164ta8G1_hRdj?U&BR*c~EufpFmeIp|3 z@!UI!&=kqMSyBCQd*S&7tAlz5>(;HC_tlgm2{R3y`ZE*pQ`C-fQCjqk5<05n80f(@ zFY!HPrnz;fY4NK?Jw>wknZ0(rUu*c#68KSRuae zU)1O;x(P+!U9x*|a+Z~516vpx0zZS8+#Ek76|-G~uRx~T>hfsb1$n!N5dDB8W%9Ue zDFg+M&mYx6!~*(qd&WT$Si`o#P!Z93w|JB}fj@~KmwYkG~;X07D z#*)lx-jkP*jfrrZ-)+uDSNpZxI&^f7YrKahleT|W<-7#bGS%YwbjkNemAeU0 z=cRZslL*79Tt}zAA)}_O!+-g%b@NdPgC_C-b&8xzP$HDjT3NlXl0tl?o_F(*QH>F` z-m#AJXmC@K?Y<`c1;&yxHN7PBP{D0!V_=?^Yo1-)+0==&vc&hwN{jfkHpgxA3165h5ekhO$LjhJn zayguX_NFRaU<0a*WX)nmExk+=a^Ub80naK;qtQP82Y3^`oA8}p3V@Fp__O)H{S>rSK` zC#mHc?lF%qE7@q7O-9Ct77kpc{JV~+ z31@MByCTW8=wrn;LpM;7U4%etM2UHtmCSDYBz)p(-D??qV*iig;n;BfRO6#z*Y407 za}Hs&H43|{Vm>3;yR3Lo!(A?_k^05&&Bl*y4Iq9eL4jDL`FWUtEg9%O1Tpl}beSKH zj+1~x@tN|kAaK-Q(FocV&rayl5xm)9s+n*#aFoWZuqqZQmSl8fNw?v^`Mn$^HTUhS zKB+x9IC=f;HTD`k4;qHF-F%!wANQH0?NMi$>9Q#Mw%#x{5Si(8A*xw+^+$hOX2&Jp zGGxRM7Ds}+tBw@MyCx!INx6Zf@NWrM2g@+l=}{wq5^5}787}NpVfR3Pczi`;AeN`2 zB^fOl&m&TXm@cCo=CpoG6+3N*+WesB4?&tAaG2TjNr339KTGjla`iRSo?oB$BapK1 zwAfxxTc5Wj{4FzL{KOT+dZnj+n=1GB>CSumkmc44c{+Y~rVxh<8U7j}p=y-=;xtk* zc`|GqmZ;cR6Eg-6Cyo|@tAZwS_UL`NIUCyYo0x7>d9N@d#57r4B5^N}(N0@pZdjn6 zeQPJ8TS7i5*5`iDgU>EWj;*`B>*0aVV&EBiYOj2dYbC84-g1b8;xD(tVxVw9T2G^o+cPN~~A-Fq*OK^Ahv*G=|{`=zG^z)qV zzJp>@du>^3jXCF-V{qu!Cwz>7WDMlG9&cTckPFBjYMmdCR)shGnJ7!+l<_?xW*@lS zilJxosxVjx@)#5RQYEiyJdM>vpV`!Y(PgAFJlvutlxOl@0p_Zqe@1K$bR8SdZ7zt> z>ERAdx~U&VjaM+}J>mcij)KJsM#0Y6{*YuI{IVM{(@)z){6>jj5Yr$>`~0R9$~(@} z)m*Kru`H{-y@QcEflo8K2ZRF%oM=~rHy&P)*!p7&dSmst0jpUd8Os45)6j9SlO>n3 zGHDLigi}RGb0eO9RfF&%YRf0^Z$)o>1zOTNJzIA4^At;kh`mR%>cuJ~L?JCMG&>7R zEwF_aZ@`qJX@IEMR#d4+updG$vT|@4T>Ec+$j-+OH6NAWaWCh3>x&|qjHbu$Cy$W}*B9$k66p;O_1aoNK%sL# z25<%%m&+k>M@eqByP2ZqX=8G@H-HSI^L|@7kcLNly)*7H*(m6{IB{MyBs=4x+ds*y zjLRx?S`NX4Fon)N?3M#wIPDYblE5~e;V*JciQ6Kkx$S;(mCKsPDn&k&x@+@y^EYxs zI;ZX~QD*t--)%&46o$YtRvGT*u2MAHlXdX}XTtU*nfQe@1VbRIKlqM%+RG6U(^x(? zbeNVY{xJ8YUjD5$maf{#GD&Zte)2wie_W1GO6V#zmuVjf;HLd`a|@Y(>cfOXv*$yT zQQocT`@O|oKaJv&ej@a?B;RmQM0p=FPsP0~pXa2?l2;-a!o&pRfgI!~Q#95{9h^;e zt^U(ur1)Qe@!ghtew=7p3X{gSPEV;2Rb<6sLe+-OeRl5mDHp0Q3g&rXJV|vxQ*^QH)+~rzg za|34HK!O79C&8#zMr1fTp}G?l8-;%(MK=m0*9u3nI~GXn1NW_RG22~p5%ZEMC=%h3 zGn~%v>C>;5yK&!LsEKbQhUp{0BAC%Qsn5xn^dv`53UuYEhn;(4@Oz1I|2ybjY*}Gk zqde^L@XdoO^}z%6!IM10*URmj?^qZ17MrE42OmnWMnOv@F$X~H4Lxt+ebPecv+_TVD*@Niu!+oCUB^B~LKsB2IQXuSxvlSRM&nDfA^)(~<&THYkvY&^xIJ}|2MH!KZFK+7lNoM>D<=cJJ@<_Tk2lyBKCwjK8x7oX;g;S5{ zHEGPMF(|TfDs94hYhPSRdhuLW&PODi>2zwQz>M?HzJ@O10&EgI#A@*6^d8 zKJ&)w+xHcHCNa;O246_FxQK-j)8mYCwYZn)*44?@l4Oyv>}zq%$HYxfp>{84ojj65 zuNXYFNt+U)mb;0J)5B)xGJ1UHR6LH|?@lE@fm6cWkvrH@3>=hY=M^7AAtqSR6*IE| zN4Y+E2bM8qukFs}-?Q@_XFWJfJtpbBpQ~+sZzD6^e-%7BF!VptNnP=*kKpSu_5BF1 zRYl`zZC4eS92_?&c0KVocowX>7xLk#RC5jCcNK_L6hz8y7W<|CTg!iQ z0sk2~+luwzx>lAzOEWAu> z!YD(Ut0qNo6UgrX>yH-v(ube$ukA*$-rSQc4sBG7-0iSB zKVW9^C;wQEi9*gFOdhCou%@u?rn`AJhH z*^Lc;Xn< zJDRLvQ7B?E`?V!yfPd8J-`#6=4Z?5Au+>O9kk|GiE7z=fi7{;Lz?aGQjobV1rZ{yx z^nOD2^mA;b{r%yai-a0lR*HDZ-}Cv$PVgJJGa*CY6kWVe6=8pH8|W4gfw%EnwzNos zcXeA2T-H;$^+;!AR~+miY3n;tHbA(8MOYUS&e6WgH zyR4<)VU=}g5ulW=Au5Du{UsV#aqD?Beb%DdV$;&3%zl{1b9(4D8FTEStxmbSewI~( zTgVNe_K)qCXlM?$%MKY4t}DLbf38t16zmET;q#^Lve&85pPXz7Z0tMcwRb-~SGanG zsX&3g9y#YR;CAd|%|}{lIFHHY3tb+sc@GF0|3_F-f2CzdOaj)H!A%i{mK$ zMh7Nl@9F9E&fU-*>hssR30(#VP#t@3|KcM8WPwsFO7kiC9s4;doss_Ceqyaq{3rC6 zTc#ew-Yq%P0wPLIiKfUZj`7B(r>Ulgd|I|3gr{*isLT4biFjD84~Ep(#~fhhf=9d^ zf@eRFR%cMD=e`W!+^*!%aw5TfI@X1b7w35o|9k%BdHeag@~>nZ+>^8$P~Cc#)cS9! zX3SH^{<2W-siJ%*c=Y@nszriY+a()3?J$nEP{B> zw+?&?(&64Ud!Jgyt@QQFSI3PR`rL>y{Csn^M>RL)n(2Eyu3H;r$Cv`w?#;w7 zO>}huvEJ8&#zp10B$7|(YGiu6US4e(w@O1s^1i!T%0-i`McHbZ-tCo__ax)uM#kl; zh0IWo4T-E(vP`Sx$>a^PF~yKuL&x5>&<08lD&JRiwhpMroc)gO7!Tq>LNeOfroL8i zJU2)+{WHnH&hkYB=UG~#bilh={z}$RDMV-*9fHmWxLNMkxtivc#^TVauNNi}x)MWt z8kY-QbFTkE+QqH})FMoo#3Lwzc(F;!bSlPzQXDTll+D*wvD>%jP;O+#K~Hz`sISp< z6P+(Dx+8sBz9~osd7Nx3PMZ^?I;&2?b;H?baRdDc3F%UQ4^$vJH(m6M23kSmqS(k2 zpZG2DKCK(3Ez{6rMYoC$GJ;O}iK))IWt~!ezN16tJDmMQ`^wo1jl?;$CEGj`9ZL$dpvYuGDz5 z6FvPi%w9_r`4dF%rs5v;8aBx8i#&z16QPCMKg@OVYxL_vxtA#{Gs9kCs(Q{N7pRx8 zobzc>?TlSFQFm&wdKmXLhKcU7XOygWWi_ZsGvM+}Sd3Ntj4#IRo*MS*jtxiDkX1*w z@twLMC>e_2ND&(#i&mut1`bxyC8oqF%qi+-zHU!Un&LAxb#|83jm zB`~f28j3kk(1`P(Dim@LNeQY=^{HjWc7fSs%+X@WQp4mfxIWl9U0Q5hN94)OqZ>D$ z{1Cb-EqZ?%aX5`llnPn9i<=?DADoD<02EqqHxm%(iqmQiOvt3^V5Wgn5PmJQ`kfK~ z_&@aBQ6acf_&MSwT&Epf(xRshn+M22JdgKMPAgE5S2@eWdWtsl;cBIit+^9C0q4Uw zvD4ZO$SWvQRW-%w@2aqdegZPJ^TDHA9roeY1@p|gT4>2iRvj+=2i!yJOYat=dXbBZ z*Y-7CEQn@_$r>eR4Rl?qjmD*s_t(~9(T zrDG~(&^*)as&B&iatM@1lI(zo(90%BWK1OD9rdvJz??H9nT>DQXS>_*N>_+s)y`P$ zc+fv2@Cwp~g2v`fliQX1VEv-gp%SgKI~MEw%_;Yb$Ex|_vyRyasNaU8*?;cx39YGw zzD)P=drZzPrtP=6?HmgWfwGGf*t^B^5(>}*Khnx#R>R*L#fE4R!(n9)Hkn~1JfkU1 zb_WHV07__E*tR)fCQHBu-tV7EJB)W=2ru7aVVk zd0eIH^Ubuq-i_MC^Pb|9uraDv%~|{tQ6RJl%4_Y{{u65)BABG>I54UdB%T8^`f_aY zJ@KGXkb5d2WT@F5N+`jTOYp(D)TcSt8hSjUEz5hHexyq6v>m(9tq-0KRXX@VF18!4 z1vN;{$RCDXe+w*q+huihs~4PWvY?OuKA{p54@oS!qWAm!*hBja@(Sc4)s^ZbeQ}TS zaElVPiLz)TC2SfssV}Ku#tu&PEBv}b(2Tk{sX%-HnkZ#ToePy^U7fUsF$zKj9bTwz zz4hZmzjMdESGPsJs{tSWmRArGu(YE^UlcK`yBBwXlA-X@`Yx*wvk|Yda+}4!H>@w5_W- z4AD(OLH{Hnz&;GeH?=Y2R7h|%{UQN#@hh+lZpA)&Q0$Q}wF(y%QYBB4A)e?Bcg3E# zCUxytx^aO#dFZT*12#g|-s1#kBN=N`A?S2 z?w5}}%?H+5$t+v8BEeX;%Uj3o+$#4skY)H5f<=?K!y1#ta2npJcgSpLcw{oz&Mt$K zV>h3wDy?$6@~d@Ru*=i5`PvM2%^Ju4D5f|bD-yRTmUS8ZP0UkpCD)VKOG&G2zI3zt z{6sWa<0nKouVOWY6{?T88SLD~C3nGrl(q9);M&YDCCJxr;)y6YANObZWrWsb^9i#& z=q$8IkT#HB^!Iet(;X>-zjUopoBlS_^8xhcenpoIRHOfQG4;S2-6&`XrZLyD?` zjvV7{{0i8?G4|DrQ2T6Ge#vIzK)leekATwvn#Pm}xQ=&2d0TOzUR5*d6Sz--i9LIi zI)sP)oBG-e4HPz8%FkjgW(T__XS2$DJ*(Vb9vdAM7Vy``z^wPxdVPv&6b4R0sfA_f zC@JpKCTw{-tYbnRnhQ}$5q%`IJlZ?kxua%5OO#FG9BQ5I$~{QCuXVK_ObE&& zsnlMpP{v*`x;JzK>apnrKz?rAGdXd zT!xyi)mz}5uFN{l$q09JbtEs`AJ3CElb^oQs`>@opb;qh@{Yc}z94w?aVk%?(sFyD z;j%%0A1QDP$|b41Hlvt3BXn!j9>FA`j5a8Asp^%XD7H2@wfA63ciI+U8a~NpwQEf= zIDbEmgR6cpo?LdE$GVXty4f&2S4+#UX;!;)ON+*uaKdKp1hK|dpLNlV7W-J>zY2X9MYtb$9wsgYQgX2(y)QH>gqOQ|7liAf{_lvm0KGk zQf|lrf)`(iCG%+E%-8bJl6E1%Z^Zbu*7^*ZGhVCBma8tJ;DH2I%hosro+3a3EFrsh zukd*pgg!G@TuIR9={cPlPrS;v?zoi`cLq)y$YaCcOUk|(1QE^ z?3Drp*Z=P&wMv7(f2S@k1VtYR5>8F>81+an#+TA0{R_Fzs=NvLT~7{MyserQW7XmS z_K(acUP)mwgk!(I+z$}3%){KaZA#^F6?htMdfrGQVbFhb0X#HriVk^a@RvW8b+pbm zlV7~)qY1~`R%?1rL7l~RS3hDbSTUo@&yf>SNzoJWYF7(B%YvqF@?h|3XI>};4ql*J zZ^0Tw;iE|JliT`&cgmW|0io61fK%3hf}KVP5X4j`H@*j;7~Gb86_)cxQqNG;-IB8k zkVlhsW5AGbplEcZWd6~)4M;(TDOd>`jC;$yVCV6U=dcKUR*&7{@)2cq^5B#(S>ZR^LWbKP_-o1K6A(s;6w5+$8N+7%RUFl)0Undp58On z>vKvaB5i&o-`>rGHNOBuVCjqn#HK=QnV0VluitB+c@FZ)>g>RZ0!vw=fNFRAQjCkV znO_A4RMJ;;H}=cEEoX|RJb%Yt)&u^n16h z_>H^`$UOdl?5nuemHI9yyhUN?`{nkrj}(OC7YU0 zWE!e1Wv@WDqCa8X?vJq_8YwG&JsOwd-k!!0rgZm}_g?Qoc9+^F10PxGBum`6G$g9z zUHvUu(nwC<)iqhRf10bqV#F4ISwQyJl4>s0+6&2X@yU_P(94MW3V`|qAvjxu{`*^YL+cLyx?w(a32PG;x;X&iU~(`6t> z*Np|*)*j&jtj{fNU`$W*w@t;Rpl(MqyLPb#*9elIthG> zF_s$a6$y4`vPPrD6%{UEOJePOW~?M_nQxEJ$DxC#COJyWI3}0)quCv11L#|(c_dqC z)<&9ZKN2l3@wn3D|483mkp&E!!+FJz_&=sh8KH)!Iqx=SwkIPM@rd>)A>UH|#vSSvw}#TDJBr*D4__%}bAfD5d+GLL|YS!uoqdwxIEvEF+&^I72iaAHOywt#s0se z3aAcO6+`|iF;64dA?4_BLVZjg;O~OrFJqwA2%fX@-|~V>iq1bW`pS97166tvNaPz@ zPDezA$?~Fvh|nsgm5^KYdb6=#vy+9Os+a4A-h>)8d#bBnW-?%)#zKTKl_V|iIs92c z;ThwlcbWDGO)7OeJ*Y&b4BIPdzudzmX;TJFpu+E=!T)3xCX=H(rnD+s^~A|rIL0xg zEnQGP$&P>A>5U<$mUTNYx!r(G^zm=r-Cl_kQUbb%x2DJn(hbR^ZXK~xX~n{A50{;{ z?>Yy*F$?lqkQHf**J{8s3aFU4rSGd?SN~Xg1(z!)dj%_dYfBLL^2S;pb*d($o zllI4m3ODZ5V^L+dmKQ=(P9L!>SS85=uUdx5K23$2LWKpi85f9I*?bj)Qe#=N|EO!f zNF(ZY8yy7pa2Ngas2xaVQSI81dxP=gqM2_*_~7?Rr9BeZczYe7lzqpt|Bgy;ap_^( z{at4jM^A&h!x}Vf_fVO4uK1mno%!z5jk&&0oMa7Kd99aE32_~}b>5C$ZFMP|M?R^3y>Q)V~?9}!35SemhFAuKjp|dkbSiIi511ascTT!XuwgZ4Jgj6O&}L!^$}P>Xo%cMH zD(_0qm3^J~#Z1&aIqCRk5~lB>1#jfy=SOhemnWA0W9NrqVe-)c&dv~JXo+{%7#^>A zZqpmzZyku)8tAG+Tc!FtE8AAW++RsDV^_W-?$7HN0mbWBM;dasdfXNtc9y3aiohYC zgGnuT&N$qs59f_SY`33}dTz16gof2((A=L#4`hZX^uC69!xCXVCQJ=URZk z*zD9iEJ|fNq_plyY&(c}G$XRGI3IZqH_4NiU*|4`8K+&*ad8r>sYhK#I{-KYPVBun zivQCOU%y-kJZF85LH zAW}VXNn>-tH4PY9VHkHwzgh@fe^gsEpZ}ape0!R8cR@}e^Y{Zw6w;XA$L)PXuq><1 z+8w%Jpyzc0)5KONBEkz`xa}zMMCrPsVTgKaEdFfkh8CoFU3ODrm^W)J81nluR;BtO zQBfyLE$v`&{Wj!~${OB3IdawbKrsrFJj>K-)1s)|l!S%pW;X&y-?(7(oMaZ%*{eHR zc?#{!aVi&HGGz`iyXlJ10>6;bP$QGV_q)Vxb^{A|k%Q9q{?VRyq2$5;9qm)o+clrHY(LvFHp+M@lM7;)W zsWGc(TxEib+^4#7a#>OG^|H;2~AElOb4y4GHK6Sy9Y1Y|3ahSD?2AuLW#JX~rqg1R6Rm706j985-LgXs#a`Tbh zg7T@+4HwanQ_5TWfB)aWR=IpYL+hkU1aBuRTMkMd52T18`5xYZ<^-goWB_9D?7-j7?2Y{B;Pe*E_`i&IWo zwdeio+8b@(AN9c}N$e0R=_WyuA?*s?Q7jk$7IAaV40UabTfFhw%>X3C|34^&>M&)- zn@4<7_qvOoZJ4b-{CHu@auh66NYg_%hEr(~cDc7KUx12= z&4M@Xe+5roZqdYltGBBMe*xjYOetB)CDWoBE`p_1Z&V&OhOP1xJ3!za{H1^cF(@Z?V|gKh7j*6 zWt!d=E%`a+$~-f|9D-}3UZynvezxm33sVku*adWwE;G6{zoSBY6W&OMLyWeWL|Ujw znG}*OvTu-anY*H8RPZ>)I<;fcJgU>HmyL8?%^aY`pvtC;<_7>3-Nf<8OT8`ao9MlteH<=W zlbL8vnyjY-iH0qSMgfq?Jj*`Jh|FSYu2D?<%o?;>x0?{5VL8b~#7|FpGY}>p5bTqj zIh3FAh4l-SFM0O3wRWR}#^kiNtOr`ctSB~^ZhO_*9iFb9qDPTnLC?|LqYl zW<(FQa4cLADBVyFqI)I&?%kjYmMQDk5?>hxMF@>z2#L%hMKOAcPW)Xz`_gSEh@px` z%CK_SFWb(4g<6KV!gY8^yvU&nLv?N=bA1A0VNfY37%i+n4f2n=ZC>)=sLpIkRW;@N z{ctK0^xdH)$uDL!!eLK}V}B1DxI7nLF_RpdSa2smNKrX{wO` zC|}r~f?12(i$;9-&{`bHOx`jRtI$72V7AV>q#XFBo=T2)bWD@V;Wj|)t{G>;Nn0D5 zXsOuCff3Wxn-lYEDXqBSX4*UefD5rv7mUw|a)M{T~9D4o5jmxW6DwjUmkTW~@ZIyRR@?F>qGKX%u`|MxOUl89t8r zW;edx1rVm0=`Di-{$fA{lHkkb1}x}N@^OYbKjlpbiferBdm`Q!?BT#e{iz})5EwxT z6l;O~TR}VLu#$c>=qx8y!jA=wuaCNbxPpnJ8?b%_Uf7_A1O38^OfCy+i;MHSyCmVW zf-VN7lp0nM`ii)i!<$kR)0DEiorjdb5J#R3*~+O%QsDpKN`0~epE1nmkM92(II;Nu z+sH?chrnn8z(TmAH~(6_{GUr<-SN9$;-IgCHf`^O>Y1Ga1K@%wFw578)4zVD^Fc7% z{Yos-E7X;bTgfU8N|=>aGRk$@7*wPxfb<%O*03}fNi6)7WBJ{RDDxTNo%Aaq;n%_z z3`jl{HPCip^{vT0(-A+c0pg_C4iA1ncw=~beE1YEqmOWNY10+BoPVWV{FyN4Xk=4Jom*@mXuv+_H>_i?heBx zw_i@qw>fU#-aTA$-s-_T53}1mK+~M#D(TOXwM#onVjbq>;P_o0{PeU5)VTS0Z0fdm z9%pEO)E|~Aq+#&C3R&M6Y6?`J<;r!bE!9k2%eH0FdX$GcI9`6~5*?06qU|cQ1)$kq zIhHmd3Ygbuq$h*UT}$tY!_C1x6Y7nddx=K1CYiv@*2c|RWiR4-NQk2dV?bEYtdp^z z@Wbe;F+Hmz6`7eYaZL28aXn=xO1mAO`Dt80JbzQ_*1h09K%onDy@`$?k@E93GYiY3 zrWf*i9Wu(~JyW;Z?rSIVeRsEs>U=u`q*qEwa57`?ARnrW;+Z=#D_4HIKUnu>xst*W zCfTpoNc(Ay?O;Nu9N;nhl&c#xr=;U1CHStbTRv!nmNll!)Xyo9@b=}shmOlZf_pRf zvAkcSM zJercZKPA+L$(-ZNZZ?F~SS?I~`D|iiOQ2QvvKykjfUV+{d73v{LCX@CgI0)CFlS&y zA0`uhFrx)cY=ot3txxE2$;BZj@m5=8pYw-sJ--g!ZHLDA2g%`d^A06!$u7plQE*O9Md|i599La`HWfA{MuN* zg6oM%C)VdaZ5%LTYcNT*Qa0~*lACd(FUs{&ikF1dxe6Q8U%nk&%QqY@4N71-LX}hy zmeZC~IybCTVrFDu;Unc#=058FdI(xoQ@g1gGzzh7Owv&`n;pv+KS7%`{}jl4S{P=@ z%LeMNO7~->)^FNxKV*x;T*p*OwLT~hIv&rA8I#wq-mxBn?j@HS{`hX2$&<%c8@ zeF&-RHC?Pxw%aRWvIvg^`;omhb zka)!9RaDj&7gsdTd1{{&t|PW7Ag<@PARe7vgEnCJZs0dvJC-m8OfralU{EQ zu#va;aW)SLZrZxzUf%QGi`5*SOk}?vt*r9gv`54t6B;;EM%kZOvV&IbtvDL4MOPOf zzOV64X9-)u4j(iQPi1ip2y`tJHdeae-p+%JXGMcMcv;0Y>81$l01x2H zu`|{Ut0nv5Ve9K181<(6Id=H{>YhGxmIn-Zar=|Y9U;~co}th?Sr&j+8o zzw(i}Xp)hN)KXkgst4^n4Kr@(DD0h+95Qm@Ag$4{z=8$6oX&%q<1Lctk{{>85Hd#l zFGv#q{TR2%tcA*bRx3SC*TN4Et6i_~{7z zmgPN_WwbkIPGxWgUrmvVPBWPSbNM?b(TP91C&{_%>+1v!ME^ERv#*MPQbBfux~fKB z1Zy2xBb3k821>)zlViU6Fot9A;x{i}J2*xve8YjrNF)MwDB;>1s~+m0+zAMdnbN|5 z=zungqEj+`a#h)_Xde!AVSJ{gj~dY<94In$^$C*0AS`uD+a#8P0R94O*@z?JKyoh?2u^x~OLTHFP2C=kGGRxF}}}Wwon_$r;Z) z`W>J2VXp-Jz;w4dga&~#aLSy~`JJ?w$AE&}X`FDGsnNL7m-@qo}Wb6*51%%QyGX-+7ds@kGbT;i45qfUJJiv;L}Q zsVpz7I1>_X4Ts>b)X@6}=Nj3oR6gwU?*uwsnBa$=B7kCcWcK8!6si2H`^`!#*mU-l zuKj8Y56+Zj-yhr2SmIxlLCMsLELokQT98t6rrwhSn-+Kpa!gnXVWvPqWT5=~!q_x* z%}IQmlc2e5f6f_yGS&@ecN|^P(a9+3jRjZL`LI$9Z)5JOSN_7nCi~>;*a_$kx>FZO z)u{&rF^z)6#92P@mxWbMS`@Tq7TZiUELi4qRtU1LGS2X z>uaX`=7$~L50XMj8M&Efs+|u5C-a$pOOGMRR}K*xmkl-w`sdpxJ|8_d-g)ZY%`WAb zY9KeYVfOuBrcs|3@A**|WG7ATtYbe)|5g-I_>CaQ%) z46>!+R^4oK8|q=5y@R@C_CZlHfz@?tLS*zP?>ZYRDFYLQ)9L}wz}s6$gsbDw zUWLK8yT1sa&Y)uwYwYSkJOl`&o86LU9`~^?E$(`L&`P<;@bgQ`Zg&?mp)i|MBs>~I zMDwJKgWQ-HiFs$kim_gp@C;1VbAf5x^t1Q{RE0g>aw*6^1pqi0X%kaZWYb{J--~au zEGLRml;{>qg5Bm^4*#~EluIRt1?(pNa%7&=R)~Q0dKyVpcw{T>dr@aySR~2pn(l5@ za5h{E(Z)ppb_0V+W^`5YEHI_12}W}rNnDz{L|RfPw{IfLv6ruW{f$e0A#EY$uU2Q} zUI#WTbw#=%8o-zJF4PncmZHV0W8HjIl*817GA-V$$+G2?E8dt#n*H)2$-Mdpqp`%)s9e{6Q(it zy&m3~8_(mx8Gf?)>Lvyf?$S1!2LZ#y#revG_AffsF(Q_x6PQ{iObKD1gw+U@szOgH zgkJXNfIIWeF05x9?>x+%MHi0GE}>SvT$2;je0by*oqEj`mY6D}q~ z###>n-b+U{#Ryrw^NLE^s`?m-L1v(?L2=zeDzNXq3F{Vr-yo!p(?x!$xm>Qqh%?^@ z@uCKSsq);?8RY;Yv3|OVa?|%L3-(ffre(Y7EHtZY=$9dv#$&yyxogt>Qva-SV)-_G z0~Plhw#4v#FMGiYaWwG#3pk#{yXs~^_De!Ovufm1{`)`D!Ti{>AGg@0Lqm%(`;Ad9 z-&KQg+}vp^eO?+6vuK)4HyxHq`DGCO8qT3HHQl}Xy!*pgrRIv#Wouo3a9~13TWP^=@qMmNZ{D;HG?WTXF$?a{9>EWaeBvbA%XMtVN+I%{X>z8P#q=6O1w08)@j|a#gcIH>*EBLb#)(! zrSN#keAA)TJaw0B2*6x)qcuL7ia*(Vb097D{ib5}^<6UmnFnb_-AX95rizk_2C!Tf9c#O0 z`~-sO(6g7%@6DBwY7Nc3mb$#Jmz9Pb|LJ}$*q%wlMcySEarD6qcGcVrI9fEx=I>|Z zJe+_?082U*#a>?#zt{9y(Jt#|{Uv+zt;F3#IzTk|kK>bGK*c<|{-XXR&2TH0VYMpA zS*3BBKE0N*J@%^G8xU+_0?a$xDS2&kzv?*2u3jCt*w{MNJKjQ*n_{94Qk`QQPqR`J zDMdsu{OKpL;ah}iJvW<+Xq^jP$}8LBXntEa>OHDwz|24j5ySkq{Y3rWx=I2)Qv^bV zz(n^ckFzSwLmIo=7UmEt?uwS$1;Y}V&C+E(KRCGe{d4wq3a700##19AN&9iha}A^B zb&k7}y!XB@^XO$l(MZUQ5sC_tPCn=|8xJ6(017)rGfDYSIlLgRglyhnKn*ni2^AZpl?X-A0$LPL(J#8&ZPVoJJ zT-dmfuE*i(Y~@ucWsCv-jKM)Mk9Yarni^x-Dtm@|z}S$q>g04$#(Pb)^ipdgv{got}eR zhTMZEV*1ZOzvl@5xr*@rN4yL7|1kI-djv-P`1toF&J+;ozIl29U&8IdAAc7Y`$r%6 P1WsI7MyN#KhtK~4xs)+b literal 0 HcmV?d00001 diff --git a/yarn.lock b/yarn.lock index daafc56d1b..d3d6b43319 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1738,10 +1738,10 @@ resolved "https://registry.yarnpkg.com/@element-hq/element-web-module-api/-/element-web-module-api-1.4.1.tgz#a46526d58985190f9989bf1686ea872687d3c6e1" integrity sha512-A8yaQtX7QoKThzzZVU+VYOFhpiNyppEMuIQijK48RvhVp1nwmy0cTD6u/6Yn64saNwJjtna+Oy+Qzo/TfwwhxQ== -"@element-hq/element-web-playwright-common@^1.4.6": - version "1.4.6" - resolved "https://registry.yarnpkg.com/@element-hq/element-web-playwright-common/-/element-web-playwright-common-1.4.6.tgz#a94d5d4ea94627aec430dd904c43f509a2e6c4b2" - integrity sha512-LJ4V6e6NrF2ikNCsxR93PFwDfcRUTY3b2reXwlFJeo44pj8vTYFxkuJwokibFx6+x1zkXWAIMh/0saTMRUXdSA== +"@element-hq/element-web-playwright-common@^2.0.0": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@element-hq/element-web-playwright-common/-/element-web-playwright-common-2.0.0.tgz#30cf741a33c69540b4bc434f5349d0fe900bc611" + integrity sha512-axrWlPzP/OljYq53cefo9hha0SGDDu4HeM+sgevgbZSFSms8LsdMsMCyRyUcVBiGYb1xdKmM3RUsWOw5//eE+A== dependencies: "@axe-core/playwright" "^4.10.1" "@testcontainers/postgresql" "^11.0.0"