From 62cc754b3cdffd36dcbea817c8cc4e1f1384e274 Mon Sep 17 00:00:00 2001 From: Guilherme_F Date: Fri, 3 May 2024 14:21:52 +0100 Subject: [PATCH 1/6] Started performance fixes --- code/client/package.json | 53 ++- code/client/src/App.scss | 7 +- code/client/src/App.tsx | 31 +- code/client/src/assets/imgs/background.jpg | Bin 0 -> 1067775 bytes code/client/src/config.ts | 2 + .../src/domain/communication/communication.ts | 12 + .../context/CommunicationContext.tsx | 13 + .../communication/context/useCommunication.ts | 7 + .../communication/http/httpCommunication.ts | 51 +++ .../communication/socket/operationEmitter.ts | 57 +++ .../socket/socketCommunication.ts | 60 +++ .../socket/useSocketListeners.ts | 11 + code/client/src/domain/editor/crdt/fugue.ts | 388 ++++++++++++++++++ code/client/src/domain/editor/crdt/types.ts | 9 + code/client/src/domain/editor/crdt/utils.ts | 27 ++ .../src/domain/editor/hooks/useEvents.ts | 23 ++ .../src/domain/editor/hooks/useFugue.ts | 8 + .../editor/operations/fugue/operations.ts | 9 + .../domain/editor/operations/fugue/types.ts | 5 + .../editor/operations/history/operations.ts | 125 ++++++ .../domain/editor/operations/history/types.ts | 125 ++++++ .../editor/operations/input/operations.ts | 62 +++ .../domain/editor/operations/input/types.ts | 21 + .../editor/operations/markdown/operations.ts | 85 ++++ .../editor/operations/markdown/types.ts | 19 + .../editor/operations/markdown/utils.ts | 25 ++ .../editor/services/documentServices.ts | 22 + .../editor/services/useDocumentServices.ts | 24 ++ .../src/domain/editor/slate/CustomEditor.ts | 33 ++ .../editor/slate/handlers/getEventHandlers.ts | 32 ++ .../slate/handlers/history/historyHandlers.ts | 30 ++ .../handlers/history/toHistoryOperations.ts | 225 ++++++++++ .../slate/handlers/input/inputHandlers.ts | 152 +++++++ .../handlers/markdown/markdownHandlers.ts | 21 + .../domain/editor/slate/hooks/useCursors.ts | 32 ++ .../domain/editor/slate/hooks/useDecorate.ts | 30 ++ .../domain/editor/slate/hooks/useEditor.ts | 9 + .../domain/editor/slate/hooks/useHistory.ts | 25 ++ .../editor/slate/hooks/useRenderers.tsx | 19 + .../markdown/operations/applyOperations.ts | 32 ++ .../markdown/operations/editorOperations.ts | 188 +++++++++ .../rendering/components/components.ts | 27 ++ .../components/elements/Blockquote.tsx | 19 + .../rendering/components/elements/Code.tsx | 11 + .../components/elements/Heading1.tsx | 9 + .../components/elements/Heading2.tsx | 9 + .../components/elements/Heading3.tsx | 9 + .../components/elements/Heading4.tsx | 9 + .../components/elements/Heading5.tsx | 9 + .../components/elements/Heading6.tsx | 13 + .../components/elements/LineBreak.tsx | 14 + .../components/elements/ListItem.tsx | 19 + .../components/elements/NumberedListItem.tsx | 19 + .../components/elements/Paragraph.tsx | 9 + .../plugins/markdown/rendering/elements.tsx | 38 ++ .../plugins/markdown/rendering/renderers.tsx | 47 +++ .../editor/slate/plugins/markdown/rules.ts | 38 ++ .../slate/plugins/markdown/shortcuts.ts | 21 + .../slate/plugins/markdown/withMarkdown.ts | 38 ++ code/client/src/domain/editor/slate/types.ts | 33 ++ .../domain/editor/slate/utils/domEvents.ts | 17 + .../domain/editor/slate/utils/selection.ts | 79 ++++ .../src/domain/editor/slate/utils/slate.ts | 82 ++++ code/client/src/editor/crdt/fugue.ts | 142 +++++-- code/client/src/editor/crdt/types.ts | 4 +- code/client/src/index.css | 16 +- code/client/src/main.tsx | 11 +- code/client/src/pwa/inject-config.ts | 12 +- code/client/src/pwa/manifest-config.ts | 90 ++-- code/client/src/pwa/pwa-config.ts | 40 +- code/client/src/pwa/sw.ts | 16 +- .../client/src/ui/components/error/Error.scss | 30 ++ code/client/src/ui/components/error/Error.tsx | 35 ++ .../src/ui/components/header/Header.scss | 16 + .../src/ui/components/header/Header.tsx | 14 + .../src/ui/pages/document/Document.scss | 0 .../client/src/ui/pages/document/Document.tsx | 41 ++ .../document/components/cursor/Cursor.scss | 21 + .../document/components/cursor/Cursor.tsx | 25 ++ .../document/components/cursor/Selection.tsx | 12 + .../document/components/editor/Editor.scss | 80 ++++ .../document/components/editor/Editor.tsx | 81 ++++ .../pages/document/components/title/Title.tsx | 54 +++ .../document/components/toolbar/Toolbar.tsx | 83 ++++ .../src/ui/pages/notfound/NotFound.scss | 18 + .../client/src/ui/pages/notfound/NotFound.tsx | 13 + .../src/ui/pages/workspace/Workspace.scss | 90 ++++ .../src/ui/pages/workspace/Workspace.tsx | 69 ++++ code/client/tsconfig.json | 12 +- code/client/tsconfig.node.json | 3 +- code/client/vite.config.ts | 7 +- code/server/package.json | 22 +- .../src/controllers/http/documentHandlers.ts | 33 ++ .../src/controllers/http/errorHandler.ts | 20 + code/server/src/controllers/http/router.ts | 16 +- .../controllers/ws/document/onCursorChange.ts | 22 +- .../controllers/ws/document/onJoinDocument.ts | 10 + .../ws/document/onLeaveDocument.ts | 10 + .../controllers/ws/document/onOperation.ts | 31 +- .../controllers/ws/document/onTitleChange.ts | 12 +- code/server/src/controllers/ws/events.ts | 6 +- .../server/src/controllers/ws/onConnection.ts | 21 +- code/server/src/controllers/ws/rooms.ts | 20 + .../src/database/firestore/operations.ts | 82 +++- code/server/src/database/memory/operations.ts | 61 ++- code/server/src/domain/errors/errors.ts | 12 + code/server/src/server.ts | 6 +- code/server/src/services/documentService.ts | 71 +--- code/server/src/types.d.ts | 34 +- code/server/tsconfig.json | 2 +- code/shared/crdt/FugueTree.ts | 95 ++++- code/shared/crdt/types/document.ts | 14 +- code/shared/crdt/types/nodes.ts | 6 +- code/shared/crdt/types/operations.ts | 8 +- code/shared/crdt/utils.ts | 12 +- code/shared/package.json | 9 +- code/shared/types/cursor.ts | 4 + code/shared/types/styles.ts | 12 +- 118 files changed, 3977 insertions(+), 387 deletions(-) create mode 100644 code/client/src/assets/imgs/background.jpg create mode 100644 code/client/src/domain/communication/communication.ts create mode 100644 code/client/src/domain/communication/context/CommunicationContext.tsx create mode 100644 code/client/src/domain/communication/context/useCommunication.ts create mode 100644 code/client/src/domain/communication/http/httpCommunication.ts create mode 100644 code/client/src/domain/communication/socket/operationEmitter.ts create mode 100644 code/client/src/domain/communication/socket/socketCommunication.ts create mode 100644 code/client/src/domain/communication/socket/useSocketListeners.ts create mode 100644 code/client/src/domain/editor/crdt/fugue.ts create mode 100644 code/client/src/domain/editor/crdt/types.ts create mode 100644 code/client/src/domain/editor/crdt/utils.ts create mode 100644 code/client/src/domain/editor/hooks/useEvents.ts create mode 100644 code/client/src/domain/editor/hooks/useFugue.ts create mode 100644 code/client/src/domain/editor/operations/fugue/operations.ts create mode 100644 code/client/src/domain/editor/operations/fugue/types.ts create mode 100644 code/client/src/domain/editor/operations/history/operations.ts create mode 100644 code/client/src/domain/editor/operations/history/types.ts create mode 100644 code/client/src/domain/editor/operations/input/operations.ts create mode 100644 code/client/src/domain/editor/operations/input/types.ts create mode 100644 code/client/src/domain/editor/operations/markdown/operations.ts create mode 100644 code/client/src/domain/editor/operations/markdown/types.ts create mode 100644 code/client/src/domain/editor/operations/markdown/utils.ts create mode 100644 code/client/src/domain/editor/services/documentServices.ts create mode 100644 code/client/src/domain/editor/services/useDocumentServices.ts create mode 100644 code/client/src/domain/editor/slate/CustomEditor.ts create mode 100644 code/client/src/domain/editor/slate/handlers/getEventHandlers.ts create mode 100644 code/client/src/domain/editor/slate/handlers/history/historyHandlers.ts create mode 100644 code/client/src/domain/editor/slate/handlers/history/toHistoryOperations.ts create mode 100644 code/client/src/domain/editor/slate/handlers/input/inputHandlers.ts create mode 100644 code/client/src/domain/editor/slate/handlers/markdown/markdownHandlers.ts create mode 100644 code/client/src/domain/editor/slate/hooks/useCursors.ts create mode 100644 code/client/src/domain/editor/slate/hooks/useDecorate.ts create mode 100644 code/client/src/domain/editor/slate/hooks/useEditor.ts create mode 100644 code/client/src/domain/editor/slate/hooks/useHistory.ts create mode 100644 code/client/src/domain/editor/slate/hooks/useRenderers.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/operations/applyOperations.ts create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/operations/editorOperations.ts create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/components.ts create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Blockquote.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Code.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading1.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading2.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading3.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading4.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading5.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading6.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/LineBreak.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/ListItem.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/NumberedListItem.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Paragraph.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/elements.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rendering/renderers.tsx create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/rules.ts create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/shortcuts.ts create mode 100644 code/client/src/domain/editor/slate/plugins/markdown/withMarkdown.ts create mode 100644 code/client/src/domain/editor/slate/types.ts create mode 100644 code/client/src/domain/editor/slate/utils/domEvents.ts create mode 100644 code/client/src/domain/editor/slate/utils/selection.ts create mode 100644 code/client/src/domain/editor/slate/utils/slate.ts create mode 100644 code/client/src/ui/components/error/Error.scss create mode 100644 code/client/src/ui/components/error/Error.tsx create mode 100644 code/client/src/ui/components/header/Header.scss create mode 100644 code/client/src/ui/components/header/Header.tsx create mode 100644 code/client/src/ui/pages/document/Document.scss create mode 100644 code/client/src/ui/pages/document/Document.tsx create mode 100644 code/client/src/ui/pages/document/components/cursor/Cursor.scss create mode 100644 code/client/src/ui/pages/document/components/cursor/Cursor.tsx create mode 100644 code/client/src/ui/pages/document/components/cursor/Selection.tsx create mode 100644 code/client/src/ui/pages/document/components/editor/Editor.scss create mode 100644 code/client/src/ui/pages/document/components/editor/Editor.tsx create mode 100644 code/client/src/ui/pages/document/components/title/Title.tsx create mode 100644 code/client/src/ui/pages/document/components/toolbar/Toolbar.tsx create mode 100644 code/client/src/ui/pages/notfound/NotFound.scss create mode 100644 code/client/src/ui/pages/notfound/NotFound.tsx create mode 100644 code/client/src/ui/pages/workspace/Workspace.scss create mode 100644 code/client/src/ui/pages/workspace/Workspace.tsx create mode 100644 code/server/src/controllers/http/documentHandlers.ts create mode 100644 code/server/src/controllers/http/errorHandler.ts create mode 100644 code/server/src/controllers/ws/document/onJoinDocument.ts create mode 100644 code/server/src/controllers/ws/document/onLeaveDocument.ts create mode 100644 code/server/src/controllers/ws/rooms.ts create mode 100644 code/server/src/domain/errors/errors.ts diff --git a/code/client/package.json b/code/client/package.json index be709eab..2384ec24 100644 --- a/code/client/package.json +++ b/code/client/package.json @@ -20,54 +20,53 @@ }, "dependencies": { "@notespace/shared": "file:..\\shared", - "@testing-library/jest-dom": "^6.4.2", + "@testing-library/jest-dom": "^6.4.3", "dotenv": "^16.4.5", "eslint-plugin-playwright": "^1.6.0", "lodash": "^4.17.21", - "msw": "^2.2.13", - "react": "^18.2.0", - "react-dom": "^18.2.0", - "react-icons": "^5.1.0", - "react-router-dom": "^6.22.3", - "slate": "^0.102.0", + "msw": "^2.2.14", + "react": "^18.3.1", + "react-dom": "^18.3.1", + "react-error-boundary": "^4.0.13", + "react-icons": "^5.2.0", + "react-router-dom": "^6.23.0", + "slate": "^0.103.0", "slate-history": "^0.100.0", "slate-react": "^0.102.0", "socket.io-client": "^4.7.5" }, "devDependencies": { - "@testing-library/dom": "^10.0.0", - "@testing-library/react": "^14.3.1", + "@testing-library/dom": "^10.1.0", + "@testing-library/react": "^15.0.6", "@testing-library/user-event": "^14.5.2", "@types/lodash": "^4.17.0", - "@types/node": "^20.12.7", - "@types/react": "^18.2.78", - "@types/react-dom": "^18.2.25", + "@types/node": "^20.12.8", + "@types/react": "^18.3.1", + "@types/react-dom": "^18.3.0", "@types/react-router-dom": "^5.3.3", - "@typescript-eslint/eslint-plugin": "^7.6.0", - "@typescript-eslint/parser": "^7.6.0", + "@types/uuid": "^9.0.8", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", "@vite-pwa/assets-generator": "^0.2.4", "@vitejs/plugin-react": "^4.2.1", - "@vitest/coverage-v8": "^1.5.0", - "@vitest/ui": "^1.5.0", + "@vitest/coverage-v8": "^1.5.3", + "@vitest/ui": "^1.5.3", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", "eslint-plugin-jsx-a11y": "^6.8.0", "eslint-plugin-react": "^7.34.1", - "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.6", "jsdom": "^24.0.0", - "knip": "^5.9.4", + "knip": "^5.12.0", "prettier": "^3.2.5", - "sass": "^1.75.0", + "sass": "^1.76.0", "typescript": "^5.4.5", - "vite": "^5.2.8", - "vite-plugin-pwa": "^0.19.8", + "vite": "^5.2.11", "vite-plugin-qrcode": "^0.2.3", "vite-tsconfig-paths": "^4.3.2", - "vitest": "^1.5.0", - "workbox-build": "^7.0.0", - "workbox-cli": "^7.0.0", - "workbox-precaching": "^7.0.0" - } -} + "vitest": "^1.5.3" + }, + "packageManager": "pnpm@9.0.6+sha256.0624e30eff866cdeb363b15061bdb7fd9425b17bc1bb42c22f5f4efdea21f6b3" +} \ No newline at end of file diff --git a/code/client/src/App.scss b/code/client/src/App.scss index 5509e46b..01824197 100644 --- a/code/client/src/App.scss +++ b/code/client/src/App.scss @@ -4,12 +4,17 @@ } :root { - font-family: Poppins monospace; + font-family: + DIN Next, + system-ui, + sans-serif; + font-weight: 400; } .app { width: 100vw; height: 100vh; + color: black; } ::-webkit-scrollbar { diff --git a/code/client/src/App.tsx b/code/client/src/App.tsx index 6dd9c501..14afea60 100644 --- a/code/client/src/App.tsx +++ b/code/client/src/App.tsx @@ -1,17 +1,30 @@ -import { BrowserRouter as Router, Route, Routes } from 'react-router-dom'; -import SlateEditor from '@editor/slate/SlateEditor'; -import Header from '@src/components/header/Header'; +import { BrowserRouter as Router, Route, Routes, Navigate } from 'react-router-dom'; +import { CommunicationProvider } from '@/domain/communication/context/CommunicationContext'; +import { communication } from '@/domain/communication/communication'; +import { ErrorBoundary } from 'react-error-boundary'; +import Document from '@/ui/pages/document/Document'; +import Header from '@/ui/components/header/Header'; +import Workspace from '@/ui/pages/workspace/Workspace'; +import Error from '@/ui/components/error/Error'; import './App.scss'; +import NotFound from '@/ui/pages/notfound/NotFound'; function App() { return (
-
- - - } /> - - + + +
+ + + } /> + } /> + } /> + } /> + + + +
); } diff --git a/code/client/src/assets/imgs/background.jpg b/code/client/src/assets/imgs/background.jpg new file mode 100644 index 0000000000000000000000000000000000000000..498bb8c632b7004bcbbf4659d40fa582abdd7d5c GIT binary patch literal 1067775 zcmeFZ2|UzY-#>n4jC~z@g~lMV?_1fov>;2Rl*Sm6eP%3`N>W6NRJ174rnFLt3W-wM zH;S^iNVYab`JM9}r0c5dzMlKJ|IhRM@B2GmX3oBS&v}2=^Bt-iYUVxf5E~Q#z^qw7 z9RQv@AWQ&&3jjcnNQPeoPFR=+hKX1h%j0fDP9r%Bm zFkv)&fuJ^~t{!Run85#Xf<6|OgyH^#omf}|Ru@VN0wkD*S|1PpeE=W!2MC(Osn{=* z784N^%LoA=oV6r8f}*ddtxHjxMWY9Wv0=(&ikgjoxF3V!wj>gEiu&d?A5ImD4sN+joS zjf92K3czJ0a1GBHt>fsr5RUy=7ec|pe%|D6Vg$^n@V1cMwd0u>O+1THdR=sBFE zz)&T@3XYPSfPLVA(T5A}HWD`vFCV{vAmNXh1VH2($rJ+w5`l|IB69Qc@Nshq8Nf_3 z7fDfEkK1N8O@bP^MxRG=>;5ygO3G61SNseNnF;spcvaFpdYXIbEF`@wZ*cT_%V`*7%7)#LV$a{{8*XB<9%?a9keCQfq$ zW0EqD6kV@<^_dKaL^xU!HYQ#kZX;|6ihANCID$y31h@X0t&(U2SKROS7%2NSGZWJ7 zJf!F>!(J60GyvX7Mimd>AP&g*J9rth87-qj`27e}e+*&h84%*a`XmD@(04H1S!J?v zy7P2r<#hLSXXWj`O>iB$_g^Y~|G!lF!EosTk4|UlDm4!wb=$K+J~on)J+m(xe&6j` zw9%;P;O1aAmZJK!G_?mVw*E4I8n)HY!@koht8m_D1=GVadB;_QGKoo_ulUpQ~JN{>ysd#S&8 zUjlvlJwr9~gUwP`jXtvWPUqf!LiI`h)A_M$4fTsNJmWhuHtonUKij;iNa%!)vySup z4-daCoz~+2d46g7qV#ibj(m93TX8Dt;8M4!rM)NkA0Lsk6g;ps_v<}{>bZ^cPtm1j z)}7T#o;CFNm2U5c@mg_lVTNA1xx9jb;|;%BrJNIy+3|Ao0?Qp8RSy%RTfS&W*+&n0 zt-s#4TFSJ!tNm7c+4i#{Cg~Er%|Rtr+xm076`Y?@Rdu?Gw;UFmIR9Qz+p(v8(>wxr zR@ymqdUg6;47@S-jPv+VdQ0d1g0nJnPFip`s^~U%)vw76C_0>WVnUaT<@6Q)4y?Sf^5!kll-%~GCxdNQE^YpzXw|k?QQ$dy=0(Gh6JF<1ZSSV%hu?6&qv$l} ziGlXrp{GC;0^fg)K8awo#1sOz-@kxX@k4m}iB=J&VC_S?#k>2j=$35=jUG%1p!qZW zDS=Fye-I;#P4RxkgU$|TQeuMGODKLJQ4ES-IMbiO1S6D9n;srY(V@5n zg@u8k=J79=u-OsjIyzx2Z5pC%C|f6%7NG+PpAML66&nGYX22d8fk9yw)b5LAR7#M) z1$C~`EZtcVc8n!K)0Q(C9?M-k>C1!ZX8u$wOUl$(^VracPzIYui46@2W0}WVP_f3% zVHhRrP$^gucCZB%qcN0uv)m|l;Y*^Wn=o;wg znQG}7n(IRPYD5|SP+@OO{{VA$d&l9vV9bI#JgJzN80{DX?QmwGj-HvBnU1c$j=sJY zETP3(7RIKbEt z_D8dSZXJ$lZ22e_BLXI2Qwf0`z-RVTc^DsC{LkBCWZ1CatXY3uG&FQ{>@2oBC=GTQ6iN$Z=q!z31i}OG;{lu7F&XGVdqnwphKGlY>}Tg6C4MgM z!KN|UQ4wy;@PMEYh6UA@#tNcS+?{Nx6!?(MVY+`5odNd^=UlkKeH{|y$D}crQS^+o zb#-B}k!O#(_78$X`^C|Q#o(hgw+oM0hD`=`%l_-9A01Ao`RUksXt}w&qScPz%#2}A zW5Z!0{#HxZSWDN`6Y{r)Cg%Ev8oDOtXgs4u!v`%K znHw6L>*P{6XWMMt{CSn9Dw-D&Kgus{o{3D(W5S?2cP^eA)|o$W2Ca7^0% zLH_23bQ;~v%-BeaZb&!LGBltYYWe9KnQ0lB=o%Z-%nbbe3~3|vox@mcS{R)%Qa=dR zXPB9o_%moUEfX_+x|Si`)L6^Z(AZSV%->9(K{GJ$ryKf>)OUpo9TY|j89R=sDAtQ|{4MgB!;Ed4KgqlbrtGyhx@ zOa8|d1ENCyL7|9czncmjLdkDtiEXN&=wHnAcaMUT{+DAJE;3AD|2*a4{ND`8AD%@v z?XPD$!ae=D?U9@@1N_C7fu$mr1krz0ox%9U{tFFd6B|RHLHF0E>FR1R42{jS3~BmCS~N3#Gx%j}X5w!M&!2(W$T|7t#`syO z{(sIzj}H7QYjoo97+}Zk;+1GZa<_{MIkXPG)Be6DGqhR!>UshCn0ks3h;1DmMBQ(1piQz z8`F29e6c@jK2f3smiV)>6Qv6v9VSO7hNAqVDoqsQ8_{B-2+xm6kvYLXj6h^Kbyz)# z>Ie-dVH!!4ApU11B-YW0b`eD+MY-GD zADTj}CZ-(3GJfa-QIvQ6*@=q$`uro#CoDN>- zjRnsU=bVvH7yvPp0=J?y=O1v&3&K~LKnwT*8lXdz4FpUO4x&I9@Q10oFc*F6!SV=+|M(e` zhT0tVd>vD2Oo7qVVM2l8VNoH_c^7k~f@}nIh+?_=Ev3Vh;d<_LHtHHq;_#mri#Xel zX&aLF@TiENl6W{47DiZ9D6Avo;DK7_I2FLSFfEE5?!*X#Dnn=_fC&Kk$P5=2;1otF zD91T8kOF`Hzn(uA^n>zrnCA(*8eUwq_&=x2Vg)jOO5ve}usvykKc$J#8L%F-S30w% zdCr>Y2mNSJgM1^&KNaR*63$$169O&#!;=@~On%x(GOWov>}&vo{K%^Ei{f)el7B8P z=oe^*OzdM8m&|G3)@d{YRsk;IVQ8)S+2IkcQEV1t?8XrYfg9;hsX~6?Y`CHRlrD&w zLjRDAojwKB5ofDnaYZaX7k)!N2>?-G1CLZVJZKC+0d8Ok471@s3kyMk0!aRY5)^n? zb+Lc+2(dm?us*~Rv`Z?gx*Jc_M|}|P)JvdXd6Td_=uJQJv5Ft&$<(kE#A6YydN{dQ z4Rb8q4!?gKQNai%bf$;%jfi5y3~p4!jm7pDdF;SBj6Jfku`nuN7s5oRLKLg(5fqC` z*aopt9hA*!lfiU>I`yA+3#S6~stOPAU_igC;X^6}mkXg%I0%4C=K&Xx4G{`082|#9 z-wjq8#?V3o+Yt81ZWHp03JQUqM_7|Eiytd(H_LklXZ@z2@62pMw8K5QAPU&?!FN$1;nA23FDpZ?0lg^o}=?j2kg*K5D1}% zvWU6>gu*8Z9~)(!_k0TPBPcxy10hIlcxZH1#4Ha-gvtPwMZZ6PK0V>|@lfm6`9GKb zLrlm&Gz^j-f+S2|3MF1hS_$zmyu?4$AEm!W;TU!VeEd+hgb>7p1B78jvLyXD;aC(7 zl#J&GC4X^(_{xZ!RVg+yo^Pyk9m4f1{Z@Q&6LU=19= zbl?g+fj3wLdBi0k6rynqhy!cDdXNgzzz(n*WP^j?C^!iUKoPhEu7GQx2HXRWK|N>! z?cgow0iVDCyzRqF5GF_v#t|kGR0tXbeS#^$lHfp?NpL546BZK!31NgNLL6Z&A(fC$ z*iG0^I7&D}C?;GX+#uX1JS8*}-Vpi-Ux{2qA)+Kvo;Zo9Lo_AY5N8lQi3^E=#7N?D zVj^)faVIgCc$|2ic!gL)d`xU2z9oKym$3x7q`4Hiw75*U?6_RH=5qybF}YT8rEq0% z<#L_mD&e}$^^mKHtCQ;siH9UXqL8#mQ%KWDUL-mxlC+Ank+hqXM>dligt?ei%k-<6QhZ(65AtIELJP_kt{*hBfFAA$s5VX$T!HZ#d*aii93kJyPOQhEj8+Vx{&-U6yK+ z=8~Qy?JON4y+yh}`ib;c8F?8S8HUUTnUgXPWIoGIkhPX&$fn4il6@@ubsS}!!?@sa zTgMfRdp@2tUVZ%R@iF7~jjtNtIYDy5lnL|+DH94NJd-2Jsmr;`t&lq)cT4W0yn?)w ze1!Zi`K$7s3epPJ3QHBXE0ij{nJ6*Qa$?ZL?Gwu;c2J}!Hk1&`PD&-EM^R33nqrjV ze#JYA15{P27d3%;iuznhK*>}oKxw;Dg;J05MCDn^amxA1&s6wTOjVYsWU5?O`8-K= z(%eZ&lZqz2R+UwCR$Z=|uiBs{tY)Pasg|quXfn@a)5*b;_fEd2PERvy%`nYe%~~xXEgP+9t$eL!ZE5Y9+6mf4+Fd%zI`eh5>Ri|Pu4|+l zqI*!cUQb+ax?X}_iC&++x;|ZhkNzVAVFO2l)dm*~dJQ!U8HW1|>x?9fW*H?JRTzCU zHZf)zpEQ1BqHMC*B+I1MRMOPVbfamt8Mm3O*=n;(W?#&W&DrJ!=G{}YrUXwpHs$qH z)v1iB2dB1LP%UT{`z@L*DVB>Zb1a*z6s>4hxmGRKO4k0?hpk`POtx8SbKIuOR@atk zd(QT=ow?mgyK;Ljdnfx8`#TQe4qgts9bPz69RnTn9ebRNoK`rMPvf38W7^hfwa)U+ zbmybaJ=0C5ubf^vLuiJ_jNLO@W~$F*&McWloHc#cwpk4>DlTCzMXtcr*>#)ib2nAD zNVki#d1kxK-ZT59yPkWT`*jZq4_}XC9-lmIJ-2w)d#QOvc~#62o#Qj-=$y}U?dPV? zZJMVuZ{@ri@A2M2-WTTc&Yv^?@cfSp92V?Y(C%a8v)<>)Le+(_3vVnMzbItUWnWQW zns4D^?!|K#A6q;~bEW0dKKeQPW%>2c?dX~GxBk}t+x_1#EEwsGR{<6Q=>e|;EdsX% zzFA_mBx6ZukX_L3px&j^mS!*g9PAo=BzP!fZpf)nzR<;?#bM%M!C{r*3gNNg_aihS z)<-l&nn&)4>|xGe9%d0(3t1P~l8{K>ic*VO7u6hX8NDaEKW0u$VJtZ|EcVti^<^8D zy;|Vztuh#MSNbPVsqb1l9zvxt*Y!ke={i z?cB8`iSmi@iLL9L*5$7kSKMzNh%7+)UL?%}5>GNZ)vK zlisGCn}#+AY`(L_c+0*tp0u#ECtIzy=B1O}J+^yJWyxi2$ojn3fA52R*85Io%V(!%f6WQXsoU?g z|9tMG+>8S}2ci$WJUHjz^+TqIjvgL=IQ8(iBVk9H^4#+(kD44kdQ9%vmV9Di&QbG&x-y3O^nYK!ViH_UGo-!#2hRAXFo{+7|LbGMCdpSxpx=lorh zyBF@6-7C32^?vCCs|Qye+CRMZ$oWytW0%MGpLji~tM#dEs`IaV{WRoh@3ZJ<1NHF@ z+zlzu#hz!pkb9BaIJxmulX27KX8Yz_EgmiPt@PHnZLGGz_QaRMFEd_Ee0B7-{_9I` z9N*mQSkTe_Hsb9-=lXZ#cUfI(U1z(kyKnW(>uK+0_73%Jd_V5}kq?F+Dn7b>eDNvt z)4=DH{&D?zUrfJT|2p^UtAUt7-oc&UCVwmWKI41CQ0UMQ&I{nY0L}~Gya3J%;Jg6N z3*fu}t{1@d0=QlP*9+i!0bDPD>jnOU^#Yh32XX^kh$A>q3mq9&Knvb&0HE(Im=pl* z3qHtK5#@%3Q;?4)W+2z3!1t9<0-z^k$TIl4uX2&Ao23TL=t>88&MDt$V72Pz1cRj z$gTVD_i#zLuQ_w2nd+CWpZlQK)`OYQqEtZNR`F2s0IAi$uJCFfYb|U?p3?`K#YjH{ z^jb4MULJm!Z9_(HKqGOJh^QC%`Z)L+G%}IXOON;(_(n6XEBBivdfln|wtmd?gxm*8 z1r;rJ9`ruaHUrk$13$kMYzRQ(zC9pW<6rn1;QIhS1~?SpNQfgLj)XW8;z)=iA&!JN z65>dRBO#82I1=JWh$A76gg6r7NQfgLj)XW8;z)=iA&!JN65>dRBO#82I1=JWh$A76 zgg6r7NQfgLj)XW8;z)=iA&!JN65>dRBO#82I1=JWh$A76gg6r7NQfgLj)XW8;z)=i zA&!JN65>dRBO#82I1=JWh$A76gg6r7NQfgLj)XW8;z)=iA&!JN65>dRBO#82I1=JW zh$A76gg6r7NQfgLj)XW8;z)=iA&!JN65>dRBO#82I1=JWh$A76gg6r7NQfgLj)XW8 z;z)=iA&!JN65>dRBO#82I1=JWh$A76gg6r7NQfgLj)XW8;z)=iA&!JN65>dRBO#82 zI1=JWh$A76gg6r7NQfgLj)XW8;z)=iA&!JN65>dRBO#82I1=JWh$A76gg6r7NQfgL zj)XW8;z)=iA&!JN65>dRBO#82I1=JWh$A76gg6r7NQfgLj)XW8;z)=iA&!JN65>dR zBO#82I1=JWh$A76gg6r7NQfgLj)XW8;z)=iA&!JN65>dRBO#82I1=JWh$A76gg6r7 zNQfgLj)XW8;z)=iA&!JN65>dRBO#82I1=JWh$A76gg6r7NQfgLj)XW8;z)=iA&!JN z65>dRBO#82I1=JWh$A76gg6r7NQfgLj)XW8;z)=iA&!JN65>dRBO#82I1=JWh$A76 zgg6r7NQfgLj)XW8;z)=iA&!JN65>dRBO#82I1=JWh$A76gg6r7NQfgLj)XW8;z)=i zA&!JN65>dRBO#82I1=JWh$A76gg6r7NQfih|BsQ-rKBNha>Uszf*2r2FFH|^mYL6N ziy$pTKPnv!#c~802K?b)UZm~xTeuUcd0fooyMX+DKZ%zYWKvS&JK>Mg z8rVKSo#0>i8vNVs1Kx#UfZE~S9Ax_2GxEEPg|Qxm&$9p(5GnWtDR;z2V0g|ESX@;;DvF5;s$8`(X)sPFkuxOlJ3 zinouPXZlLyQC|;}2l5#gA76cI>ZTNC%a>Hi_Nw>F#La<4*BaXHqZ~cItP7?7@h*Q# zaX)}^{Hn|%<8FWyF!JDPpBwP~Ib z7|fNBO*&2Ue?u6WM3HyCP#f=1v2=a!#Vy6pf`V$UJ7yct`&o@47pkI} zderN~33GN}QM`TB!P4xRBHvbri>Hwne*AXHW!5t7OE)(WY_!4{ms1Wu_wMmoS5nwi zEMDlFnkpUK8%dM%i4rjGxSPwZ zlL^yzj8>)+Cy#bQrBKIaXlPUofpe=nQ|_F9VR?O6K0{cOe)_%7GLjqVxL2mstsO}_ zrgXd{&k+pKY!q<{`Sv)R?F^|~Tfu@f2Wy>m=?$9`y>C2kTG2?o$KfITFJ6wb zoB876U z`}UD3hQ7=~{rg$};zXqvOIv%U-1b?;A8Nj-^<|ah{?YL}U3z@IDQ5SDL7sTJb;>2l zE}shZa)M;b#>PeVh*$&?6*cs<4i{YMrsCrGzn3`vf0(Lp6*=zOSMsLkj|(mYS*MO! z*DmotoZ+&_-0;ikiiz034$AytJe~>vQ$x8Y_xk$0*_EF< zoOaHM@D4at#Qd&|7~bQ2#`OzNm1xT#EKQTl4~5Uu@7ax>m!3o|UPb>RYCL&iU|0S! z1w^=fed{aR&uweIMQz6j;hcqGS^btyjNpbZBu^qX6{Y8IoBJSv)SP;>ajt%Oswtp~ zV-ht5?s#RBgpiI|O^23VOf@A^c-_OfEkbQ%fY=NE)3`zmR|@`XbsqB5eY6y1{-m0b z5CitgdEpbz=XySrxwvm#`@z#x5UISKl6+Wa!z1<&dABuavj4*Arw#=@JYaE&IN2=q zj2gtfMcd{T_f0q9CKY;wI?Ehu-#!Gqx~E!}%6rmQ4FvLjI~BgiGOFJ_ z$`5Ka=RB;;NI-0q{skyQLiQDM$KjvM^AVy3hCa;ZtzMV3yS4h=?$YNq{fQAvoEBOx zuW`8zS?oKI<(AmGDEO4pd4xEUkwVkj7S(r0W4M=`i7;jt1>#*jIl9cRFrnXDtNQiq zYr0+5=f1ojS8@kwrF954o3Eby=n1>^KR&fq!68Sj)hx91>wAptlmKciHx;s%V#+fN z(9-y?OAV0B5P={#NzR?}ZCSB3a5AxQ1CoCs#O?}w*u8L<7?|L4Aoj}{N8>5qHs=B1 zBeO5X)g721|NXirXuFgx;y>9hqM_8u>mGBFYm&ji!unlYH}$H6YuY3Mk6F}2wWpg) z;yxK$1A6A{zD+yd9=S{R|0#nYfKkV3$s1#I*57wTm|Oic|6N1bhQ$K0cQjYiTTiZ; z4M|OwAvmsdQKXF5@~TnRc!AE^mX?as$#T}O`iRG+W1wm<4GHg=G84XS&R^FEq3$5J zdOf092Bv%`QkW}_O+i$Gp?m_#F4RoKR-W!VveM`JvivPqP{ExJZiaGD0!UCNVANu3 z*TEj$DDemyUEf-cBramK z@4D|Z(j34KqrymmG>38&{G*-O{Gp4iL-~*5cnJ5{`8ysvvhie~d3fjLh7USgijv}? z6`CbG4jukDb?%N@34)lMhfHOM`4}C5h;e#`!=qzg=j=5%s4vfhBwcZe_R&}unW#RO z-Si+zVT$6U6P<$LDz`p1> z23kv8`P8^@>+QQ{Eh6S5Alh+dp#9@hxkhF`A5h6XyYO@T>&@ZCaU{T#azEw;SFTxU zdykA_@QW{d!TOZz``w(4lsn>yv3^B~)}Sfn`SqI=5aAHk+Aao6sYQ`}$v`zhb1UGU zSNFjlh{0HzdD$5OJJB;c?=IX0NSwtWbQ(QoO3z@L1CPq6M_g^{2#l&B7&DqQBD1X9 zYYYbNt;-rO0(ozn1)Jp_gL`u^mQ8WmhIfw|b*)09=3#nJft%fs3&tem2t#$)^g>HY()x5{s+GXk;)C?&Sm!u!AEK;>%R+k<`;BiCN{_T zs_c6E_V}Inf)-6j$$J!_K1Q7VxoeEGF)MC-%|-|&&Zzqc_AA$t(5W6ZK>RVJvT2LG zHDRjWf(i=Q$5${uJINl1a782o<>fIJCa1Et0#c9QzD7QXAc{py2oLMY@vp4Z;z7mL zTnb3HKFZ~3P2f>;RJxmJO^|bIgy<4!w^}WpP$fK=3wV)SNd{aR!*Az1!|SD3<&CbbwUNHAUA zUvQzL+v68c7q9lSUg+O-twaujR1A22$alXA%}BmSq>vs9x5iA2NKwyd2%49H?3{aR zX>#BATg>HD7)$OEBselin z(6#FjC-%v1=FPg43;3H-6_55qcxp0{|4s&^EiSJPe|(<~3lI>tB*@)4(u@$NLRan; zWKgUQ&SOL5G2Jh_*>~C~eCS=>)!tVfPZZ75<;^Oc4M?kIUi=0-Yc-bt4r7s3tF9tg zX(^+@fha=ODj5I?>zIMh_CVr_)Wt2^tqCNu8_a?;!i==d`cl043$)hW76UWOHoQH& zU?m*dCE1GQ+qz(2s@3%&;FkLK9nv7WE6LWBovt&ppp>Zhu6pDJrO9=RZT3(2_A$L#1DU0$#2qoU zpL#LVh&n-f?N*l=Of?8=t2&A>DNqHP$EJOTMhwynQT3R|w~n7jI=1O^F5iV#BTSR1 zZ}FmZBD6#oT)nyXBTM5K1V-hO59HPfGV_BPw`}{bJ7E457yeuJ9MAX*+2wy@aXQ2A zN1K#8l*jO{9GG~yRmk+vn^=ePzconZqoJ3_hi@-wo4%WUF=J8pHch_$0XtT-ip@lL zb|HPPO3bMRl-I+oIM-&{HFKg;&}2rGmu?0L_E54rq)}f|oI9$~%b9t|L(k;pG;TZj z;>I24tbzAmGf@=qKvvJfayHYvuxG^=B$bVN@NWR}Yl8Q#phD3r5Qvw5 zY~Rs%#2t{%tSoBu$Cx3+>JfeRzP5nFhOE|z4hOk%RzhtKryn20-snM4SdXc=MtxC) zLhEDXZMC_OIkJKy2XO#WrFYee`(j)L?^o0bC$D~SfcItf1wc5nYW|>=A>e{ii>9Ha(lc|MYsTG zM@wED*KZG`+y!Y31ICt5b^>w7gCd8YHBDs#Vj>_-IP{)(C0sTP+ICSSizSs=vym~w zAVVRz*S_3cDcSF9_wu~?t9Y+(ot?u?rA!uOt}OJv^1}oo&=B#`Xrjnb?qeDICZ8~u z|JvK)*v<9g3-?qz{@0FksRR0M+F!rFP@!mOj4>!^H2W7RWgwNMJ5gf_G~l{iy}9XD z_XuwCA_(ENy9A>#mNq4I+HZF|o(So|QWb^sHGgesTq?|@-Ow%#K zrO4Tb>mx|kE_plHnk}YFsSgjU$_E*BLlv;t6Lkpp|E{dfe+C2hubCxRk^kqDPDBb) zo?xC^O_(PZ=H^+UmJsdtsq6muX#HxaF{kDrZS5kWdI)m-K-%6Li~07`0{WTCM`w`O zn0j#&5@AU0BurbM=GNrL>rYx$R+Nlw+XE>R2Ku8Ym=4E!c)=E8Nm)YxwSgkf)2rM1FbQO~>LK~8#b+rY0iY0}Nf zP0MQF;UASYd5&9$8$+p6mfP=50ptRQz>y*tRkN?Ou-nx3;L zs68)|yDaK!ZGao;ot4DkTzy@LbISa>s{+3k}@)f?%EC8SkT2Ug}`R_(&Q z5Y%ckk%by_$+3=at)IQM_*J?%_l)p&h>^_FS$As1OBR%Rw_VxQrtr+qRYlH@Xm;Tf zG!9$68(ig({pq`va>RuGnyGhZRzwPydWX&3;f5$m|0?q#Fo}scQd5zYn+g@azcjtJ za0v7tbAd83|op|Ik!EJ%$(#F2&3gJnLq9#|e4GG%)Am~OhbvG8tHyX=8E zLtxu^1m@95k*P9hGXyr8acw?YmGeY#M|LP1QuXg=*e;sQL!jsZ;AaiG&VGOL)`5*a zG5xgx)&Rx(vSO5mKuAGt0pQARS-xd&w12CNyoh&jy%FZjBo5ryd=(Tr-G7MU7^x&A z;yN>X-!wof>aVKnSGV`R`e=(Hb58JbOfe8hgT&|q=`GHc%`jsd1Q{sHjrAjfXSXyN&m;00uAjm0!!Rm93mMzC@RK->d z*mYa*86l;FFxYZEo1wF_J}^5X57D;qU~t(d_rksC(&0i4qs#I{L5GK*QqAfMR@748 zc%OLPj(i2y@K1bZ(|*f$QSw-qg3Wv<&9f6d_wJps1#uea0OYNRzBd?>i@C(6pZ?h8 zTbqXu2N$oo32}owe9kT(c*MU`5y9WwxJk(%| z?h?e>5NJ~6RyhU*6i_B9%{99RN@TbBa}uEvTZDW#y;9B)!h>#LZN^uj`+$2USqNr` z-Cnh!THd!V5r`dM07SC9eO~y6lmoY~A0M_>r2#S&703GGXU+EM{`j(8ARt?`i&3t@ zx2{C`oOhwc4l#7bZK|Db&MxSZ<)+DIz9wERywuZm3_HMgp@MtbF^stgq#oF>@Gj!G zhfE9m&irGZ-*g=Jj(gW6dGhg$r7B^;&v#sP`S9R2tNfhdqXQROZ%z9A)$?jt+q2v6 z%QrAGwjciFyCrje6Y@32n1RV&sj<%w2q`?j@VWu($#f|}On#}#RCX|8D`Xh{7vAGi z*8hf#gVEOi*{>Zb1uezvNNe1Aj#02McEkldZ8XqPpMrc*`EoF?Puq&yJ#FN<(XPwe zBF^9JId!8CGYdmIO2OTy0~;!!#YPGsb)`8O8J+k3>N<%R$FM)uXZA2lAw759D%Y*L zWXyPd2e#p4?SL@>Q!tA=l5q%PZ6{V_E9Fp$R?x14xdx~y3#1vjpB)t4qEt9H=`+<@ zUAEJ_+Y@lRC}pO4pC~rOKrfA8y6NshlY(jJK*G#FS=oM4S#w1;Hj4q0l57&yWVIO; zaM`d*r^OQ&5v&KZA(OFLagaA0%0aEhQ2ksr?we4-ttflIv$5g*xCyV9L%9yhD#Dvz zTI_|w4ZIn>L5^B@zrB?vL#QuYk!g@94Jm!C1=354VT=Zul;B`u@`)o=$z|`)xeD#u zE>~|ywmCxTFXYG@+GlpdnsV>t!Xpn>-qZ9n?7i7;@>K-+BE`B+wcFtRYD+<+;FlMZ zpL^}KN;gA~NfWu?W;Q2!ehv=bmy+cKW;F!Sk9s~GIQk+QH9Q~L-INmj`n|6AKKV8y zKs9-{u_U$S9n;9G4&gu2_w1^JWbX~d)~a$ZSCa_EmknIBZmo$ge0xg`QwJgbPT$(} zJMZ`XuF?@hp#BZ^;4n|Gbncz=*aBtSw1>cSj>eogPXI`+vZGzzyCK;Q3Oqa2eTqKp z%WWD6Z4c9nyw{#_xzO$Od*2jkBz;{G{(j{9v%pN+%}Y*SwtW2-T&RY;JvfpXC1dgG zKJ$5PuMA0kPT!TLUwEb2CqRadAXK;aac1(|@x*@5H}uSNlCm3jZcez`5M5~KcS`1+ zE#eTSiCt?PsOs6QGXxG=sbeFHhCF~$j$ZW=LxY_Uol5pi`tIbhzevj{Q}Ja#Q>6qtATP-nfp|==ptRw?SNci(6NdsFWD0{yPK_U8G6@y?e4gFq69$L zf7YTXx#P&!lgr=iqXCdnzE`y*Pi)Vcqp!Ne#Lsxl>al_s`{LV_PZTN6}zkoWoqzi$&8C}2Zfl$8L3buTUl zxGFvxR4%mOy$SgDY2CkkGoj8(|N9j{lG(;9v7C7sb;JoN}2a`2`RVKb9bWnK;x00OAJpY2yH6-$J{V`LXL)e{IiLn55>tNa~BFeYrAExv-TT!}Lzc`g0rZX4?Z^tICfP z%{y;4(8Z^~otV~k{K*G)n`TCvjq>UZ?~~6IzV|0v%(R%+XVhun3^|lHNH%&yY1pXt zWyRjxrkg?3ILO^FImV%A#9LM8R}HwCReTf8a8r6%cG|SeA3H9GPetsl>v(=(VdVhw zhZoRI1>-AaUZ3^861;z^_FJ9TCk~e#>E@oPJU4G|QGzxQ$mP&!!D0Qg@5XswK0{qh zgIku9*)pgIw>AP$;iJAdN$+kuWJz2PM<^lfHTN_nqFLG7kYoa~_A@-!R~D%*97es= zO{%QPE(1Le_dHxt^ZP>>Lp=eU5I3D1^hMSjwl_o6Fy@ZEz5Ew49+ zk32Hmdn@PibYG7}SqW;7azCEe%lL3@N#4E4qmMpVs8Nqih?(>xd>?6s-`zJJreC5S zSJ_}_4Yjl{HUn~0Uc?>wpd-u8A5B%7qbO-p%erWHq3QST5dR_M_J5YR|Lc025*^Nb z36)Gy#VkR;xy!QnF0L*8w&g|ddO7zGmzsXo+4Ij^9_Ic0Rsj?(Aaj7Z0wc-}xr2hc z^|dcu2A{mTMa>xx9A+WjgCkPxIK^sXt6}hR82N}*p{z`B$O}=nDfE2bkD3HYOqk@5 zc0S~?jcLi?MOk!e$M`Rji(KL+Qc|qf9chYNCWrj3`Ho}m+JWev1yO^r@Yvu~+1;1e z-98B#1ni~>cEg76BsX?N$DVpmKoMGZYXqT`2yd_-+o_JO!U&@KI!-e3wrAHNUy@xI zn<8+DJ~8ejcO$J8-Q$>ETR*48T2IIdcu$xYB zYO5)Eso^TwFAvmvSx*8lU0nKReGYJ&@w}J$y;1FFGueXm8nIAOJZuybqMi})C~Ab( zbV5!svX6=K9kg(L2dz}^_$IU^gJIPML6ltCpC1(YSPbwbdrmZ-$dyY0$0#7}x^#C_ za9uz$#+K;Yd4JRj>H59|y5@O_foaNaxfpXIm$~P~oneiEy6n9059Sn7Y1zeOi84xm z_wF5H7@wjEohR*ks_12ndnDbs&mdV-`G%OK()RD0tBlqrg61&iyu|WUgTv#y!X(zUk*6>xzEM2ps zy1cAzPx25@Soet;XDKFL_}Sx9 zGNA3~qh7k`E!TMPL@2L4sdUT5H9CVU=PQ;UoD@Ai?qd{bo4d=g(*%EO@1{dYl3a+MPxki#h1-mrdM+eIFgf2x^A{ zyN<+S{V8r52l@oa5=GvP(_DrW-#0-J+mU)z(WW-ZXjW}UtfRs`=+^uM! z^N4Dn+5MMSCwIN+T|NX!-e!8}z6KWO7W_RlYYXCmqMdx>@W3z*1SkcZCJH>f)P>%S>y6 z+UM-x6+Dmy^5uECpe`>%=l-_}sDTJO)hTvf^p;7nH9=(ch7QZ9r`u0|x7*Lr4bkh{ zWuczPn!s5|sBMi<=^r*w`8QFIH~M#Xe)}8 zy|utH8Je4f`PAZxvh&!`0;4M=7rqjzTOwF5Z`XC7fn10ZSJ|_)1%XIqvR@#(BW2(C zh>PO)r1oz()_Hs9-Dqh+Q^Ro;k7U4eL9eAc*B|9^YuLz4k7;_pFz)SSEw8+?iEb(9 zci*ec>U9z(Eu7p@M|Kw}nP0VBe*Nn1BgSW72<=z(Zr# z>;L9zh(8g5Hb`+#<2^Bs`Ja8r_UVT%lh3!*7@ko0elTH4PTrkw)7zi49^2vSKDc3c zZ}K4@t2?t6na7;8k&3@V)B>FUAJ#aG#LV+9l}kvHk#~RCV>uP$6UZYZeyjf7Q%^2R zm|p0RSpnGvUgYCW!)U$Y+>P|7chgK7u^R~4U(5^U@jnOW2U^@5wHn*c_p65@|M(3# zVp)stMNyVbd0DvDT7ctQGKa~z|0*easZ9Aw*nTt3ZErNA&3ZbzbV{^2CV)7pL zYHdt)=pQd2w>$GmbbtMJ&gBEB%b+rAKP{sGr9J!de&!KIjDZs_6+PzoUvl?TtCy~l z7Xz+Bx{qpo{h{K5xVF3(9$P!I=>TLX0DlhDV?ui{y1{>5OMjSa7Apy8Z2Aa{mDGHNfph>3=y|x zm09D!D;AvfKp~daWo6&r7CBZBOp3)`_tu1hqW(ty9mq@@4&JHDnW) z4SY0sl$B`%h3AT^Iq)jTbfT}*^YRUp%hxVGb&Ch7XP>)Yoaw}s_~x)X^KpO2$G5~e z=%O^&xKxoH3hpU6*quB7+-&YC+4{ZY5&MeP+yCWH|)*T3YjFbFPBFOFG5;Zl5H{g2shX@#hhftAww6 z0hg<_#j6!*ZyU` zigMU0d#utd8q@P6*6moawfacafH#lQB(7atATqcpZtJy`{N-{A9h8EKnf`nbAzEe@Ymk4t+G zSVdr0p|6vRY^18nZ*_$!X6kEex&)>lm!9YCRl3g)Yg<%my-bbf-4(Mcjh_Z)(;0k_ zWH#quJW9F?p}YQ_^+vk(G05)hsz)q>X5nYAOWx3MGAYb#<4IxFhq?#0xFqS6rd&k1 z(&{xSFTK$vLZnt(Z=!VA_wA{f4>z{oYu|U-z^iWgXPq`pixrt1)!k+??H(iT?#WGZ zfppi)5AsD9wGVFghT1zHq_`7$6qe9(Rq5_&$H?9zMSG>@tm=r_irus!D zH_6Phx&sDuLh1w%njhOB8-uI&tpo%9xv9x$^U%kubcqFY?~m zg_S$ysGEvK7iT#RqM##NoLsTY zBIkcZY6{=BC9u@c~D}-ph>DqyOBDfFyf?%?A24}$Wzhg zi`{>rBNy|K#mv}zr|KMfi#j4BAKN3$x+5MHUiXdVo`k8J_*=d*E$a7k6wlJgvNugU z#p1c8j&BPSDZOWoeSy-???Z2u%wOXw$ROU1#CjDuksTSDs2<>L*XD( zHvrNT9jdxE1n9?*b06HasaLXFWnMJ;G2u`#lE(Yclzhim?I@|!0={!$nbj4^X48bp z4V!fOQUGz7s&HS(Ekjl^`Rl8*q2Vk{Z=lgP0=iizgUOPjdP>32J4XnLqx0YK*-L^+RGxV0_=?GPsTtdZf@XI+WJ!1#KL~qg%Gd=CS}HZfPVmQ=I`^R}j|8?Djn!^)f+}PJl7}_hvIDFok(7Th0(%5H9Gd``h znSLCz4gfN-qrU~%bIAwJ54wt8AeHdWa$8qCU%cSiudXG0@!YGcaUSshm=k1)5hR~K zKNWstg-B2%)`wg0+v-R(|;6iOy@yeh6jzr(-z$4ioeEj-6Bqp}1U{b2r)= z88$T`NmM>M{hOks6m()f`q(i%=B6e=Mr!in&B%9Dj3~XWLe=+rj)U%;V@Hoj&lx!P zMuT%Be+S$}nCPpUlcsUG|(g6=J4*B-$Z{G#dk!tmZvSukRab5KodamoITS-iTR8mI34p-E9m>WVI1oAt=7%z6GZk!0*9 zmjIcZHw2CnAFsS{FQ1EV{}4Dm=~3u~@j2l1$|zcs{72nb_C1OC;)^+82eiXm^COz( znH<^WTx)oydH>b-C0h}~d2+O-9b6%_aqrj=*ceR*y( z$9o8D$#+;R*1vT>ls(nfW#skr*h6id!Ffb%ZNLj($^bPP?S?N%BchypT)GZ2`Sl~xI|Q4&^ciYZ7jY}o!fG%~^dsQZg`nR{<8FMs#Kr1-s>;FOeY$&xhHkU{m{ zSvzm+b9Buy4ZFv=&bo65yj4wpR!82bB<~s)rlq@|S4_9IAQ2J*q%=g%3~wf}wT>vY z-p*fS5Ly#=-5jOQQMg?5MSA+}aHnZv8@H%2YZkwEqo>?Hb6L~~(U9oLy{n%1@HO53 z7z>f?CH0cVd!HIerWB#VQ$!+j&uY~xuj`nRLWA>fuYGdW2)&%o zEN0!R;9Wu0%Sz=oG}qfjrrl-gQpfQP7(y2sCmT&oldtlU z*nJ`&XhKUw>RKM@3ExDLU%pzs|30$tq9oG&>lPN@j&okdL6s{rD#orb-pj>CagRXq zBtsQu;@?HG;cGiYLLRRtyv2ihPJX&b=JIOlVx;X!a8y0|Y3g>4<|wl@ZrL`jMDMei zi7h5?t<*7#Bveqs>){a_zwTN4u6Qz;9JaPT_ZZ@Um>kuT*cykak^V=&Ua~sJ#8^Ea zKC$d}8Q;u?Z5x|FUE>UOv@h4kd%Hq??;XKr&NBr4MOx1v_6f>&cHWG~M1lXu-djgi z)xH0si|$Sp1U4W_ilU^_f*_%^l%R;9w9+j|DG~yTq=2NPf*_%ErwE92BO#zPc;;N& zH_q>O@3`aMbMLwTe8+h8MQX1-SIp=6)ME+ZC|L~_@f<%Jco)vW3SSFo{TcMF&XJ=g z#Q^!Blm28Oi-PG26r`_njt-PeDjy}T(E7Zw{oR)^+D&&^hd26t6`l9RsDrWRkBZbK z`rO6TPW{Me`w&;9f)MAnotpZY$ld8jegymm_*#YmC!T;DGo z5a3rMRsuar5T-^#LjB#U0v{E7>eTDr;}!E1tFq&Hg}{daM%IIsSo+A%>CDiHcSO7{ z%klF_j3xAsXZ^eO(9X^_iA!Y$w_GLtIFrDx4`cqd%Tp6ot)1AE5tPeM_2)(zqGz_kXn&z>Vnt-sbV2pZH%|FueB@ ziEVaB*mLvB=YQ#-O|n&fzAp^*y@T`bzWQqW=Js&HOTh9+cH=(70%9o7gL%#YW4|PU zk45g}mxSE6N?F?HUZ2*q-mF8ShQxUalV`EUM9J1@n1+1Sq`+hKCh#UvQc|QZ`^`OV1rJ(f*M=cq!o#bma(`R_g5Xi{ zXT02EK8>_^TlydDd6dq((z)@5Dk z2{rAhadspY*Ovg2E?EG3fgoSrZ=|XJRdE}jSun+gm1AL~aSJu}WB}6m!?HMnUWerz!=xnQwB`@Tl8Oa3o%u3a+>1Pe9XVQguq!y=J(CB|yll^>%GI=wkAL-2 zg*$Hbcp*iiN8D%_Cta`p=J5$wc%eEKRWgdhAVob<$pgx;2q=X?{$@kDlfE?{2UiR# z`+H%2UhJ85vr)m114jhxrw0x_Mi0(I{8SBy?sXz-gqlsv>dV{(oekdGMKX#wH z4Pql0ltfgAMaLUTVY-xdqsMIVAZ!X4_~*<(=0N0usPr$k{YXvc<8Qvdu!&1P9BZDI z%KFxF80lIeZ?_}aextuTHz?PAmSb_WJkIyWZv?!o&6$Dx;4JjB(4Kpog+r?I1=;a( z%pZh}mICh{2HnFUeW{poQT}x@YsY5|!DRO(^1JgAj(rL@%koDpTdEq-p z{2S5QXb$B4z;|v(Xp%oOFmq1hjE~arM>Ww*GLeL2kQUJadxRwg zRKtfDpo^Z47NEgH1_doX)OeGG1!3ekb5SR8ok7+k=Jc0S1sED^Ksw6S(;5=ZnhpXJ z;=h|C+WKxdu{|SGAle>uv=0%GS?y(cLZj(60eQxbm z@?#!2?yC`}ctyqap1ZOHUG2)nnfy30TXl&+1tK7xo>|E!>pV#3UhUBA(@%TkpObx; z>`R7^81hi9Y+1z@QFk5Gs)(?6BoyJyT!Mf@t_NN56LTs1w^MAq2+&tsYvxK5+=od+RZl^`7DM!%HkRD&i|@mHiNOtCQi| z-dNtuumpgG;UU5EPyI8hTX)iE{DwWl9TgF9VdE*ATOGY&6FFv0jp)}kyy-y*6=<|& zPmNFG()*9xUu^^NJ=ZXplJ(L3oihk-H}w$dtqv`vB+?8mn-eR2j|?J2kaXl!AH@Ox zczkwgw2M_8e=|N+@YZp{A(i;N5n6-02Q_h@lt~@N1fv)8?`P(kX@lp5fvWXF#&4wc zH*)E+$Tyw~mcCcbV(m`sG+Jj_jm8_~yV3~USC5;W&VF4)>Qa%yP4OZ6u4or72fDj4 zU9}-0fa&eMdJTV910U$^SbpkpKLa|HmsSaMZ5u^k0ZY6-dnr z3sI;N@^5R7z@f%_lAhU(ndd_#C84#Db3*wh%M%5xk^`7R8Wk)fZ&1+C5QSP~a_b3T za@9=BH45b96yt^BuG@O|rXh-{n8KT^IZhyHU8uI{cl$g88JrO z8kmgPaZ3~sMl-W+@XV1q-T!dr2Z&h+MPn9l$#0UZipU@rQ$8Md1eFHO&Y9Jp!3fc3 zF`P~x09=qe+!FT$8v1atf#6Z}t#M=)(p7-&&| z$fUHfX8y%7%98CSC&)iRVmtC9%gEnM66!0|p@cF5J-9JhM5=2%P-qJlR1z5O(iDm< zFRHdF@SI8B-hKO^Pwey9Ggj@4veO*w-RI4^WW0W8nj@w@)(WfwQ`&Dr=m@5r=H`}l zPd{dlK8EBTNw)-V_N&)FOxHg| zO2Qi9w8}|HGNQP{3w9a=pO85^+v~G4R`IKXS|g!kqM18BafP2^HzE~_)M7a_>f!=N zj!tnSADVE>uQ_6m=nni=XJq~m6}&&R%AF|hji?nDN!2=#mq!S!yFJoL1i!3hD6OG^ zE+&371b=c+b75ob#Y0wRy5^bnuVoV8E&Kr?{P8&%rGgswa@G<`$GqHfK$m(3FjQ+6 zDSpU+8>`24+q16|@+rL>6JX9S@Tq*!hxG=}qbKEcOZ3F?<<6XgTz{!0?-zO+#;z=i zc$IzFl#ePg?CFC-*(8eM3&}4}QiQD!Ozh-Gpv)XTHHG}@0uUKxUSZXLBbxj6Y(N&a zmxslK7|=PfmNlb_8()9~;RPL}E{3w>jy=8D>|1(V+x8Z0#}$~(qAyWl1lHZH8(?1v z_F9Wr(?>9KA zR7(Tj*t98~Lftyhul4j$JujB#z_i_G@YO#PBWQFz^?qGIba;(MSUOa?k=|1=Q53H?uY|V4n1rc!em>(0;H5w6bMp9NMflC~+^kupsjjlG;V>Wc6iXZs!_5KUkkQ0v&xakKtz{vEx$dx(Csh+u z9u%G6GDk4v1~~cad)D9hD}N)KhYEh<6k4gC9PgQH+)v9h-uTsKv`PA;p!7{GDxVAT z?{RKh%@1kHJRIBC=AOH>3IAMy5Rty(0zjgCw)c-`COCxMm$)T;Gk#hpnPDH4Xw!== z50baMrFr1xOcHTN_6zmtM@_U2RU`N}kB@n*-;J9zjXLDAk){Pf_#rON`+R=G^sd(X zdKg*y(~tRxnQKqK+1b!&=65M6;q_U6a0?=OR;Vv822CQ2qDU3HTHL$$Qt3#c{-=D{ z@xUTdK2&JZ{lIdzL1UUxa%d=4<}R#vSs?&P#k96Uw{9_VlMqb^WzWt%a{2q=bFQar zUR2#0Epa{>O5o%r#w8vbvVn)r1xkGk&cprGGH`@-fhpNd~nIxmc$?0pY}+DJ&6tmD{|j|y_Y87*uO_9s#;!o zHm13NB%2^H;fk5c1q&r5((|a$35JkI-r-O|1zMf(b{fb0`{O^v(Tn@=e#iX5Z6JyK zTv3_7sJ~zr-OtV_-;?cGf6uf?$}7t!{Xnu4LiwPOF+h7SRD=d>%P_qUZHq2LB=4lZ zE<|i$x5mMQwwU16|9~sR5_F$`@s)W-6{Li!!5u)$**I^YPS>+>{&v#fqvRvI%POY*TVulFgD0~Pl~ zNctTO1sR-F+!Gn~HP^(R2E0PZuW*5_Q_gY^L{B!30v_T=WAE9n2l64@{t~!vc|yLC ziw^0jslE3$3hf}GRi(1eYo9jnO^HgOt1f@8`@nrH%U8zq>QzhKoET}<9vGcW8*ie) zPl{+&{nRzEQn9nx-g%HuEYerK(9uO7cFM+Bq-Mu-zO(E~U0BJ^drbacT5nbXp^U2J z9(@J;)G|k#+dJbh4UOYOOnNL;ei_Jfq`RLL@A<{#;FipPt2h2r#s2SK61@B}eEH(f z=__?sAO9eU0@`z@3p10->X5K({`~IvD$6HZ5W#YI`>ZhdtBQfFMgP?OyFHnEe8)hP zLKRo+(f$4W#qpF_E6LT7`v@afHFAggpX}4A7@GLRC{1H+qvRb8+=#MA4>f3Iu;?y_ zK+%d^`cXtjxD=W9ex@U`aCNo?VIX&4F;uHSaC80-n-LP~Xc<_Pme16r%iyHp$e@=E zDf7qlJr7{AVxAPg1FR1K2EvLFaX;0BZHSW#P5)v?#11*LcLvOFA=JtrMNRL^kf0L} zV!DK%7l|h+zrs0XaMF5ZXgm&Gsi z(-G7o`ir8;ch%ENG%^oQ>=6}k|3#mq`>V;aymazzzIpq$1QQT*MusD&88$1~+}?ZJVGK1_N|w9runGapl!?)*x=g^K~qH~Q?vj1!_+GZf$@a9 z0jlVr1=>(_`%p#|b+p=_e_rbEU^wBIxZGM9KEgr@<=^_F?{2>Tp259qY~oo?6h)d2;Kr>-);QJ0H z*<{3A_C#zPnVLCZ)qy%}UW^ZO4($~C4%P^GvjJKG^S3YOK2bxt?Ml?A&C%7Nzws|r zozD3(@etUl@c&?Ogt)%=T=7v4K>wkJ10<=~EB}FNaD(-)9d0t-EsXY!%{`38`xiCo zPL!d!LbbmU?q(=S36lZQPlTp;_d;{wzQ~7yeK50t5f*xDBy|Wd!*d9B6s~ML@PeP^s!_U14=0>{33#F~+!Ru0&t{b_<`u+%& zQ_oa$iSlD^DjVH@-e9n1`Vq}N4)dL4uBBo>jfWGx0g8%u?;7^_$NQml%MzB%itk?? z@_0tCTZ}DeF<6i33B#ANIDp(}9;_dI3<}8e33dCjz4#jK%~JX%N*V78HEwS(!m`>5 zcB|;XF|${{5tDd}*uk^m{1tY$riYfWwOknbOVEk{b2j*>DsrMuh?iWUKRm^gSJo3O z5~yi7>X_CqsIQiAE_8eH;{2CSp7fHSn3$abIG=`-AT-!TT#!t9Inb$M^z9e#pR@yu zIWthy`7oD{cGgdHa{X%eC_AqWm|ze=T>T?+RaGIhZM^!cL{r>^ zl?M8qNyJXytD>XDg4S7G%zCau1XB{0*~ajv(KL+aJAx7iX<^~1TJZBI?3)LLMfwHH z`^jq*3*R2_)Me6(vg$a)8;Bn+VR3_x-83lK1mS&ULiG!<;oHM3Nn)urF=~H@=L^9m z2!)TS2!am0pE=Yet1Yo4g~0{|nq8UxZWo^uvJf3scs?n4Khbd&e1#bBsMWB)>2$dd zUWT_k{Nz1%t6#%h063`DISm+#UYK+Z>%^Mfq=)=J2YIF0i$*)!vj}}v6F8*W42@@# zp)FHY9Ma#F)N4M+C!|jpLqrX$+CN*k=>5m2+4uKCwE3|O99H!`9(373^;+TB6%fSR zT_v904tvtaz~W%h=fQL0^`EytjMkED1Fq_+Z_FwtwXhe;XHeDwJoH{~;p>>`AR2~% zQpNtDY==Jg?G8&+!+!x>iYMaaT#c*tUNQ3R`S9#3yHdzIVwynUA`fG~C0c@GPqwko zqk_hKnFs-zPlE}0j*>X~$3$<&x1d+_CAbD?jDRnO@j~Gd)}Kr?kp`Qa`l;a3Y4PR; z(5*2%-JB{W#|&rOMwRI69+mhpgmbJ%G;w2u!%ezY(u6=pNt>ySVIT@OrxV{0?+s#i z2)He+GX79*KX|b@2}d>+8( z4b3N}wF@FU#OW~UffjVuU72-zrWi5vL!MN{p}(G&^BjeoCMK&x)HL8&@Pka^J+~`R zukH&nx`&sij=1f6ekE2+1hKS+7CIi!)(?A#u4L=Y-M2{lA|7y+$i6|mhj-aYiqe7n zP~sJWds2elD0Owc<~V`PxlkbrwRXPX=Da4a>5_!|nc;_3ZN^6=e?>eh`e4(#Tt;nl zMeEpl?A{w3!k}2*e0cH0ZO4^c0MILPtl~y{>bmnoJfSSL&F6_{3~bYbRyhb(VXUob6y$kg=nh3fgol9}u zC6JdL-9n3U)o;^vf0HV#!4w8lX7y%vQld!zfByP6#qs~kYLHo7PX8MF+4e&ZzR~Mv zpFd24u`@W0z1M0%`r9qRf@5hWPoxJcDs7**i~L3`ZhDLjAwriYzg13MGTbDAm`%N&4Ld0`4S$^~7<*K59b4k-CAaqI$+ z72vV*=K4+wL>3bd293&DIB0C1`1GJd1#tv@uJy)_g71K(5Gw6H8v*WA{(J72ah{*E zWjgJ!`U#m36Yj1mYaUN+ys4>J)#h~)cMvMZAl5486jacQyVuP2Kp$kpH1(&UhCj|A zG53R0I(68mpAf-s1l^)1-R|!VnBV{NP!xm@O#mM#A%`Ysc2>kQ<20(Ac_7IOhS{*` zhLJ*Bv=RwDE>G^;58sDaNFz(XtY+%mK;8@4D)y7#@(DS*zPIFP6a=I(^Ei3#<)!As zj=v^rZZoz4(>zYcORXQ2d-DGczcn^xxqRa!f=w+ifv*(WOz?wKvpFnxDnwFZ-rMdg zG3(_@YKg)lyVzYu1S5wEvK;b;9ksnhWE(_tR@sbGza&9}z^$`@mQ` z&hpdRNlGXpyR7NUa+xneZM96N8&ObU804TBPe&g&;4dyS z5uyt0bO|g(dA(P803Nn9`|6#j|iM0%nQN}Z#6I4H4dn(8VB z?76N7B#hB05+V3fXG`IfygGutfXPQwIcczIiGgKS)VrZ=KmjYFW9dwAY;Pp!d)nsseU#Zr0bvv5R3c zVFwx<5u=Y&nl9nx2Yq{@#QpbywfVYsZTn?=SXGCLb@-!rSqrpV#^P$QP8@4zAQUTR zsW!f9vHd~lu)le!?=abFyV~NTFJ~jW8+mo-^rYCPz+I~mEZh02;OE$!2Ihys)Ab8P zjUVWUgS)PIV;zmtK5IQY1I@+Ypy1BR!u1=8oZ&M}`feh$3DV6t9n8;skI#n^brk^6 zbA#p+7R>h1`r*S!Lrh#11uC~^92-fufmKgK2GpSPWM zrrDh0-xvBHm#20xpM%xYqXoD0pE6f$qU-f0 zrG~O#G06Vf(%HXU*I(s?L?7~GZQT;CbLeO)G6)9`CyVj8^NZfBVoeKOv0FQTL7J{~ zuhPxlL`T4Ig%RCO<`&m=crJFcf^xHLeCC#?8_IvJdys8yCkS%?&`S#oGk&PqP z;#phQb4Gs1_BmM@sEQ|hai_$J&P(~PR-`-*?aKN{{%bZHy|+$0EIrjMVb6Qdhjs#I~y0~NMR1YhIqblzJ!dkqt;nYXoVy>C5Dfk??C_q|su zau2V3$m<4u2Fj-JuiWW;Q(Ufu>kM5@$64g>Qp&DgcGha5^b##}^h9q?SZMR>zU|%5 z&K+Tac6@NVHW@D^#IN2Q)5vcL&{b_l{Zoh^>!>MoYkK3jSA%V7iFoG*g!nA5Tdgy~-2n2UeQy+&IymBo0$ zeRNL#=_v_4)qp;=MitK&=cCK(`ko#OWmZmNqOY6w%#IN~u|q1*z3RQNzsA0BS7E8L zIKwH>JHwktOZ}&w$4Z7K8SAO>_^%0`?)TXH^iZPGp*M*~M&`O1bYdrnP~YbX995vE zWN3K!2Hz#tV=P8f0;oRx?H)S0ca>~hXD6}%Ph^tNYYSO57lIVYU{8w9Gt(!-pn`I& zBj*~}KfMq_1^U;hHo9TKf@^yEW)|O z>Q$|G^m+BsPl-fF6E);}gU>j9vH7Ke7XzT~M#~K2;`G-Q;5gq`($Gt(owv)#>7*>L zJ=z;{;Fcf^;!ZH9f$Jm-!%=RB3oR#H;`C@#91Hg$R03!<}R%R-@u=41!2Nr3FqBG>O#mo%*Ysrwa@)j(~rNec|Zd6I=Zt zub$(9>&VfcR)@{~I=Qci1M!G*y}NN+uVt%NE!RCwDkoOeAP`Bjb$=^#g%dA@;F;o3 z)~POc0|ZCspNjr}{z$a&Pk{w0>wTJA=cFltEsCAF3q%P5RRk@8@=>6z1km;F(_1n) zFM<=ifSL{_+2e?;13`f6J5aqs{g0#&S$^$Ib1ah=Vcfl4OUyVDVEjR}+zDpz!6;U& zJgfyR(UEw(nz4$L*vW$9R@;qS+dEiM;%NtwRYhOisNK;KCK*h&yS2BTU>UBXj|Cw+ zZ#ofc3NF=>heY<{#}e<~eQbA;gGgiq_q!oB*4Dp$9&&XZ-Y1uICJ(YA*yRXzXfJ$r zV5uN4Zfn4*wBrMl6ACz)RGUT=rR^|fBic)e-k-g&}aO(fGBLA17 zf^WH`uoKAWkPDV>vmdgDhlJA_9$=>MUl_;zfgEK%UVNOJcYm_(<)okkLe-dbB z#6N1scK@oj*6ZJh*tSBx{>ksxWYG2tyS9wH$Df;A233bo7+<}`!3E`G%Ypr_fxF^A z1k=F7GpcyaK5A(Bct%PT>uZaf#yVmhkKRwHCAFRh3HMP*1oHaFrnaL?$|f;>=EDdY z_!n(=T$H@WO0XjcxsU9jV*YSCEFzXfh%@ECG<{3_0G$mu!7CD#fB7mJ>)vT|xrD7=I&zH)d6MLq?`NlFxJ#WsOaJ+dIRX z2Y_BBbSKAA2idtuvxlv6nuV3k@;%t7yud&l88H{(+K|9Ra6&~wXvt)a@3`1+MD55Z zgsmCFTjO-zTy0e4hlP+cg#?S)-QP&vl{GOc&{dpr5(o<_q4KQ^QzHhjwSnZvQ9Oreqv?S9q$ zQw2ARj#-rV&$|3ZKq?#CiU7EK>%oW)x7BCF){|^RLV7jnNc9r?v(L<~kk9C{S>S-LN64 zr|@g7lt1EhM1OXd7ZgTV(~uE~Yt2*pv|t~O?w6JoH+0Yn4_$}%RNvonn!eI(qO^=_ zt_%)Y-)s(CgF9wQZKS_@eLfboXN->9@iP4i}|PJ}fLT za$~^`$T`&jl6;!hxOo_wby*|0CNokA7L4G z)240uuO1SK}D{F50^9Q`=!2cTKIyuG4r=| zGaCoiuUKNtq35xblU5UL*LF>3xFzv~Kfm(5uWwezPUw(3h-p8(TYcVYT}OiDM&iEI z?(nPA;5{(;ef$}G-v^(M!t_$};Adw{UdcmK=SmR=_W8>P=eTDV$DH3N5{nV_WT^Bm z=Vnc^?0)??lC4?dul~FN=qTRZ{$3d@5Pa_yxsr*>#{{qlPWN}B9~{+C(_cz^oi}Z z5Pqdg&|wnAFjEPf4LbWI%m4gG$GGAq7`p|vSZDUo&Xuzev?=oR*AAaw3OBiNlhI2h zNvce!y6r-ar|JXK`Wcv8&a`#k^=jwh5OUU<$ z&0iOsG#t5`31sC(M2gzKk(jT7Nzy&iJ*=k>4F>&Oh!oAJPh9e>?V?_>ecqiwe@t61 zwC+thE5+UKd0aukI+LvRzNs_4cV&+u#B*_SxoSe|8h2$yRy15rR0ZqEtI6ed(13^D zC*M1c=8_%^u2*t)2aplZ$pQ`wonI!Irm;#EBExl85}i_;p1q*%C)o2^DLCczHOkhS zGUnABo#huc!_W?V@A%9sR(0X}5gFG=B#zep$_iEhL8RCq3>=`e%Ylz9WdKis>3YPS zXO~L+7o!?Rj_Pv3twQeoW09E_T~z%~JaN>DU$##17D5Z70x5Vxx^*TQs4_Vu?hcS* zpZ4g5Wx!}}w2;Z1oi|xh$`~5uc3>15?AK;+F_g`V&w4WJPkItzd;{aP_YZb0GEEJ` z!JMjcy$eUrh|xG?yq@oSXyQ)!@X3kPNEOkL)wG*|pa-ZguhEU=am|mBFpPaW?;=&| zAOQ7fxHys0<=*AM-uKA2kS7@uBkXMOI@T+Cqua&lCqHT&}USOSX;mEN*f4AdLYgKI~Ch=+f;s0g7|Ia`Fw*dYUZ}ScqR(ouL zEe{AeaM=lRo_(RXU7mSSmL3eAgQ6uP2d;c2Id&q}%jOX2x6skCp7*!S(CdA>(33Pu zAS?4}aqKNp(dzOx^NPwAvFdrZr;ZGl&rf}>L`p(=?2nXzOs_0#-+?wCxIb!5%nj?l znl$_3$tj3mHw9NAt!WA?-d{Ejsvyt+ND1qM=y1kAgR5{bDAK>q$O;bg56F)X2HAnx zFq(~OcrG9sn8DobYUeX=<46SY=bL5&%>-;7u;Lc1qWlq)t&&jni&tpma5&XM`8=33 zgO6c_G3(%dJsVKoW%Fz3AH@Ip&6_<;IFbaM^ER4|6$05%I@htnrbho8`7K)O}pg#Nr0gtgWvSN>B4_nFYAOAFl z_bfJ%QNh8IO4H$}#~u^YZbSRAu#1*aEX8k)i>FeG+Z$DHe3|yeO=$>bdD=3>(v$iz zGOM@F1X$lx8_Wh4K-=viI1Y+c|=%U5XW5tx25Dy(Xv*FDAJnapL3X z4Ud4Uf7&B3ed`q9Mqi);7ZzXy`Z{&t7kf&yD`&uPuA+dOC#zSYTHF0YWukhVPR}2T zEvYv$?OK`)yQ4;$(fJlAp25O-WYKhi!AjJhTa99Ic!L0{>y(B3j<)%j(d*DJ)O22? z>8GE5SGf_BnI(bKUp^~sv;j^C%J%-PUzg?oyy|en?sFhk!j6&vOVHm{aOC3y_Ulh8 zSRxxMa6JXVL)lV?VrjsItjz)lgEE2%vibc=b1wqNxI2SR;LCl3I|y=WbwwqcYhalF z(cU_MyChJ*y)r7e=6<+bHCD_5xRvk(fNTf+u!&sSAHp-=f4A*@Hw6if4XBJl@KFmN z345qN;EDcX1OBL*K%XJV9z6cFb&UPhI9I-{kea;x&&BpcP^!il1ray06K4rtBCp5Y zS+{(lNCrfm&1j+^7R>*qNlIZTBYdw*L=(~oW}2g-?kfWLii@=ENAfPan`+!LDtS{Q zx=bW{4AAMJzY%Rc0mo(8r-CndF0^@m_Jf}dp`;6=xb^eQqQomyLmc$L#E1=}3suCJ zeO$JcGyHw`%-r$(+9oUIrc%$3R#2A<)z@(Et4zQW2j4yn2-9hNixS2x^qz8jo{4C` zI||Y73K%cCfLi}J!#QR1l4)X1bgn3jOW@tjLN)TRj}G4gXnh2}&vJj|@=psr>1@NP zy#C+FVdu-#^k=-u>G_52J*ZgVH?p+Ad(?zyKCI2hSm1Hym$oFaCVH7z^Uvpx9pvOm zGqA-=qHuOBGMc&0dNJ1X=5fxiU!*?YgTjy*wC=w`$z1bd{>=7@ZQ4_yrZ@Lx4Fn(} zF`=MKRR>j;^YP*C>F?OjB{5SlZ%Ff^6X)KO0R1`+$~Z+5X9ZZdR$jfa-@-Vs`HIBL z$A#wC!8hf}--vz%(9bNydJCQOHwA3~_zJBNxB)(UrY#IyDOq#lu-IFeR)`7RKj$q3 zj0w7P`@THXBc$Q%yv94jXI=K*D8PhEi_l6>JrL*q#G_`(;K@@(7L5QSzvhmQ2iDmT zh>(Owp%@FXQk7K-=_gXb6OS!_BjK@60zC2S~Fzr;~%?-TzXv~s0=$s;O$uU9aiKdKS$S2PYzO=}1xigq%vbqP9)|)S@ zWzkNEig=IR{M41E`vmi|F_`hT=eF^@OYlU%h$aKDWa?;~HjSK5BS-e`a4LVF7skWL zNV+$0^r+8KH?m5RLy>hzltrLt=;d#uKU$@M($wqhHF8d-jLU5twzcbVuySYp`lF}b zPg3>cdq?hdRuOP+v+Et}N_^H>`#zW)6^jH3sx8+|2tbetT=R#KvLpksmqxly(HK|Y znT0TJfTXL?vtDk*X`%y>cFjJ)pv?S@Ocpfqdw6Dn0feCkLA9AIdP^5kJODLXvZEbc z^JEw<(INY=Dy4s`Shz7!qx`F72ub@Qii}*20aPz3L+TypFP>pVe-JiMEck!o#wW$^ zvmF5l6>qAuuIkgXzQ`1`ae9pi0p;xKBv#v1_cq1+^v88ZPh}qZ{>B7%$k( z!&KTrCph-2ksGzD#n8LekQ7S9;Bn9yx2j@Y7j0f^J#qJ`xJ~KfeHGbZ*7X~Ziq3Hn|mo2 zRUL$u0hd%Rs+?bWr}JSvg13n{_=~s81-i#GV|+ArV*kc+_-%Ke`iqXbb{g7MSN8u4 zmmv9eUz*qFZ#oK!=!Nj(K9$FAp5&}C+br>iVyFd5o9_MMBw^bc^%DQXWmi)=^cH3V zH(UV->zxXiD)(H`P!?Jl2wX$Qxll#^Mh1Q(QAuKUa}(N*IXWu5*D5ynA-_b;*2fT9 zDETVwZ7Nq@_hMY?jnWKBsb)p1hF{h$7tcCmO=U=Fx(03eXrAah((0W0@lHOcb(fS& zm7~O+?%s`LM~ZWy8*^#hG1?-ZdCNQ>%&J}SGPdcyV)7j4(~<7Sr?;zfHPwky^;J*V z$6LK`(TEl~r}`;y2sB~9P4r1$ktBLY6AYva7?*O@HHPJwJ<<^}C+YR88T0UU z?CY0hO~-b7weMi&HONXio~^r8uSF;-!@L_cQ7bO$Y_0@3cg$RYl`zP*@Mp1fUfa7a zqaS%*WYkvDND%P<96AD}UlJ+j;yV3xz0<#xk35xLio|yi6CpItoTDOL4wn}A0h+z+ z#0>S=qD!}FMXKjB>=79*Ef70&4@2;Lfc)x{>v~`c4z*(mm1t|QFWy;_BO`?aU*~;s zv%U5}C_gGzXOBG;T|x-VXpSuUB5wn#UsbIBr0%?PvO4Y!fk=#o((V4jZ6kz$cTS~& zE9tRbn&RnMj?U{qLhe&;)gU&}jLD-d(bZr2pb@7GI#Yc4Hyyhs7alCV2Z0%roB1{5 z#XsHE|I-!yyDOr!85jhzw10o<|BD48oeNl$WKy4A8&31K#O3&s`U&_0BtDA~zgK^@ zalbLoa-a*>I$k$q*bVqxCh2C7Aouk>C2980WbjtyOvrEA^Lk5CUpC&%CF}BZbhG9|GGg+XC%7EpJ68G#@ z5y1Bop;NGMvX0Lu*JnE`qU_4Y?ZK-AQ1XOHCNNAEu1k;#5%as(&Gdf2gSYSw2LyPz zKH3Wn`(SN++EBMF0HWPdOhpOjQ^z#*g^M= zrL-ptB$6%tx@@6OJ6J+ZDMSS4 zO|xjZ&eZwE`-Mj~q@M8?knSgQ)<7DEojkZNi0|A}EoWR)X7!Yr*blcKLl$QVbZBQ& zVhg=4?+x=-wcQ~q0S;HS%QJ!{C&x7@ofg=A5j=DCjPAIP6nN|i2s%oB28#q@gq(l3 zt5v*whL7qNnt%?Ky%CelZ6>A{@1@E>uC0?c811>9OVIUw3s6Pd1IXmJ1_wmz)mBis zjG&1eVwsZQN;W;yB9v zNB`j!RA4wMhLU0N66WLbjx1)%X33)p*O!OkR@pU2n7pN3Z%+Y25m;GPl&5~qeY{Fg zss;YJ-zN@w4AmFPYDJ!AJDM0GG8fLdQtQ7?=_fAf`D4af>&GaTmejLyxhtZ9PZflR z-vC2)E`P4(oKQN_Y}F?9Qc=4n`g{8`7+&Ga(HDV7?Nzz%aJM}=Slj?1h|$DmU%_~) zaNi?^wpacVZT&6c`YWH~c7I?&)?zS8ZEF<}Iv4*mnF1c!Y13jbz7a-AK)aclZ^KWj zyOCZ!45z_$2aDKJRDekPBUHxxLqY@d&5L=VaI=hg^ftdTO!+G?W#WM1^A4V@bM8u3 zx!G(Dy$YOV0#(obLBr)$&{aj>k>X<+ ziiL9X9CIEvJJQZiyjs0+=~`+#3of!Y6(!^4l$~)SW0Uqtrm8jS9b&O)%fg6zg5q@T zJq`b__mcFRg%y58pHC~n>DltnfjI%;@<7A{oe&`gCPzgJrZq_F{jL-d&Q5_Kdf$&k zcYO+qB<*uoO#^LB>$3(%3Mg2VK_c@lKiAZG@74a#c*JQ$?SsdTMYd%y^8M)Fu9j=? zK3c=n+ygtt$WP!h-z(l;64zjDo_B0BX+6)owr1L_pWD>ngXw~#Ea8FU=BDJxhG$r{&nJs8L!8U4}Tr6<)40$6WC{^f1R(n=-xcFL$w?2%lx<$ zM0`0Yx%zz1Y%*)9KMQJ7{^BKZ)%m^mWbgCAln4>H|5fP!oo}*i*}% z6ZnlVu^J^tx4QbKbG}TLoX_}kG}QYnyjbNQc!;d0!3=+1bi7hX-4ADvoLLp7(1OM& z{bQ_drjEtF%I`<7?|iaEI}M9Mn5^^8ROh0?lir=k>a3E7it!Q|PWYHkv?*%~ha)t> z)HBePSd?1*c=O8#j4PYLwn5mQDBRyv{h_N{x#rhjl64)ef4=qvl9P%xAU!%*s{D>< zZpvJjY?ZMbmUz>IQB-mKmMl+w>6=kn{fRr(hC_d^a0F8o{|%wZJHOP0lZIEH&tk_Oa{mB}O$^?2$oPr$jhVw?o8$O5G;wOS z=LV;L;wc8kNG{B}EcWj>`y3ju90^y8HQ%$R3$M$*Yf+$fJxqFK-}|!9CgZ{N8o{pL zNSnBIb&h8ku}tIG;fXo6^OglP{NrYaaz9?)awfAZEY9?jYQb7d49#5i05)^TbB{lJ zOydkbC++Db;fSH5xenil57atu8r=9U2IH1PQ@6!*+Oq>5B|d2TwiFB0c7bo=s=pOK zK@ZHSBC~$0Z$FH`;OInqAo{5zIc)M7AqCaJt50vg+Y*j`Jp1td1xl%&t7jO>s&h|^ z=o@HNCs~5i${y-#3i$LaaIgBS#|b`5WAZFGnRs^vtF%P2|ntMiVe<%sq}(wBYey?ivses3*6sFadx*F>;ya$Uws9FCJSx zx^ZfXX`WJVuI(Hdw0Uuk3`|(0*yG8GP85TSUo#7W>d<=KoxkTjlaEZYQ zZsOcu{@%c|{W%`aE7g!Ho4$N`+io?3{qHSbLBzCCa7=usNQ-Y%+yX>zYYMC+)ii8~ zLmSpHJ4!uHyrG;FMUvkL`?=9yItkglNqX}=-@gzfj(9U(`V~4FJX6)8%<+v{xo9-e z{*BO6u4W9?)4&A7H zbw9S^dJo?l=1BHhzK~j*NKBAWZ#RqVs1JeL%o~ZK-J4yp8#>xK&$Kfh%xalhT1aHu z+75@-iVK~oUyHzy6WWr!^Lgug^!rujGno(MGxF@)TWualm~sEynX365s(nGg<}jrI zUlVM$!g!Z^-6VBi9DQRJl6W{R8k#D0cTr8`)tu;!RGYp6jN{9&r2Hz93d{@Jou1bs zrpyh?mE;*$FuX6uj`)6)eSVt!n1le%q$Bs$iKhd-6&WP8LD{CE&5_1b``2ro1vGM7 zTEpTEId@N*aSHn}FZah`;-9U3`t|Wm??Tl?ywCB5k2(C~i4ZmlQ!}a+go3@lyvZD> zL+v!Zzam#Ij472cP+|> zpR_GTxtQ|rOs_XL79^QTtmeE2ef z22euwbIz`AqQu$Zk0-=6hN^mBkMyYkcKl1eFx)Fm4l$Yb- zgjIeHMlm1z-srZf^hf85x(_(O1hef|H;T|Hj5@*z+?AjC!3?f&bOt+a-XPoFxthV{ zM|Z&V&8nKuHjk{&!^bv^!IL1ldB@!HE+m1$n&bH*kPfGycmb z4yijVE6mhTlV_g*`$eILPNP{LP;MmxbPg?w?pym&MPF|N*DnU)qzSy-tXgx1Mw`qd zvtZ4$0p{iw^M=8BT;Z_L$L22K`@ZR!8-CG_M=kB{s`H>0rQ<8fOa*Iblb}r0Zd20r{u-K1j0RyA?+dLP1#^m( zU(`MFfLlH+JdJA}@T zpQj1c9^v=vfc5BAUhJZ(x=Is8nR{fdx-cuZF~NM=;{?24Wi{_&fJlGM(!78`GVV;R zfb?467frnYQfUFju_K?)Th(8t|JU87J+80>5~)ygZ0Sbk1EVmU#iKrI!V^BrYn*W>6#3AwCt}6xW&Q1s zi1yNsTuG2$DDf|#{upklVL8`v1%?dO`{4yKN%?N+O!ZYY%3o-1grP%9u&hp9Ks9Y#C$T&N`%8`Tq$XBl~rQ@)^x zb?7hxX9v3&0Z+@4K+-h5w1A;dY(Ez0Dl&bP+_282%(HKHq%zN*^P=L~)dq@Bz1|Ec zJAoZEOd{nHV0T*EA?)}VFC6KH&6-dq6svbbgpUmoz83u$etT-kNi!(s*o)IdNJD4l zL@7PvCi;I{N|0u)cFdAr3U40$93U=3%4Z z%&P+Mv*-ks0Pti$tZBs)#8*OH!#}q1`{#F!h9v0K%c{zjap9h)rsfe6v{68XuW zjHS1J>P()fQqixw>hFpvv(Me(sGiv1EJy z;p*!<#M57_u=%`N3suG4N*E5yTFI;d~g((x@w$L}&+)jf;Tj z<~z6jz6fGY^kRp)O^4#PZf{{694(yAg$^F1RwS-ZG@Y{0#qv3DEAa<(*x;XNcBs4b z4;OPJ=mMednvdh{LS|FgDS~+$`P4QxCYZbrX8^F`7Z#4q z-@k?uwOS|6DTb zL`p(Z1nHJ;5D*biS`lfaOF}}Vl}-^*I+YSo0qO2kS`c{t_ssT*|9j3^-+R7u*80|Z z9@GuYo;`bJ_I>@XI=pfn!J*1IS|9pf`sBa@$-Z@6<3`*W5v$blZdV_}f_Xx^cbs*g z@8-Ut*5F*+5M3Xj$Yf_>q`R3gZzB49_EH9Aow)-;AKS00^trskBIJ~OkDT&sS}Nz_ zN8O25JoP*~##8H?MH+Fi2d%>B2342xlq0ykHF~WI-RutFokz#D>A3Hjg8r-2icQ)o zC%;Dbjo{&x`Yst{0;3PV8q4R`FS68s43`#-YNU0_hUXc~wqho=T9KwZ^*P5Beu^E_ zeNQthVo92Rif68H`Jq2X@!-I#09v)>;E0PE%ut|qL{JO*BmF3+C8>3z2=h$Zsv+$KD#I;iGeM8rV}3F3MKc=7!Wd1}-eH%bgpQMZ zaPgV2oQ#@f(5}x7x9xR*k8}Cjd$Xk;57%Yz1*o2g652-kvnTO4kG6$yZFQVy^Vs#^ z3}4$AYw1omGxmDJ>o%k^@J>Tesz`17)u0#sB#5w2=DAAE;0ctOhiXD*DWL08#q)qd zjMIqS`t%8jzVjC0o>8cO=g83FZUkMzLv34AycNeUtIxJh&a-F!$$|1hRmCt3^ zTeR~M?NogXWC&wTELCVRn-TidM%)6_eiT|58=fG~90>)W09seu`O32d<=io~$-MJ# z8Sinb4SsddJ=wpGd*wZ$3`qp-9V`t_EC|xOxvV-fuNU=!ks19UUjHNYVp*>4-QqW+ zk1}{-P+gbm>7~{GQ}hJw0HvZdR=-Ai<3mO$<0Fsz+c*3W&ODX)=m_XDmAdNMuyqey zU`+j`2kNR)&`gMA-KgkQ2=hk-VF3652a&LCd8hK`IHihy=%27qZu8%cEDUt&Sj)~o z)0h4x)c>8oVZFB$VQ>Ls;6EeoTPRK4%UxU`$ZyUVSgSHRG8`+V&~8LpYCHqxK=9F2 z1LA23sUIxDg@?!|4iM&rLM*|w1ZVXVfb-*%NnYMr@k4KVCOHjW(Rm#7({~`smL=ed zJJ?@~(A!=h?Tq4oM!VAT@r9KC2!;3=pUwad^XC5;&;B1bfHrI#-J=y>N03Eo^gM0k z0qhvVlqsLH-01sSA}ml=Dk-hayV_XhqaZ&c;I- z_oLu~r66yXeM5;GgcbMKDODbrTGinIk|zR)1%!cm&_`j_Zdm<&lEz zbI)(1o~I5!iRG!<;W#Er=zvZK|Ab(vTq&SnL4natZFjHa$nEr{h!@M>L=kPO6V75& z))z!G*%PO{pvo7Y#Jw4-4bPgMh6$Fr+=D`BCWCHxetcbpv3h(ZOj)gHj(5B`i9VC` z69&y48x@lK8*k^1? zvoz~%jSa7@%vUgYCdMNQ^WMm&^qpV(0>i6KxNJN|W==jRR+bX!CANY?1)l3B!iCQC ze+4(8;A8|Gv?gbb%rs$e4B_5eJQ{J7xgB0pX7)V*5N|IYlTy;ZGg~P_Rxc<{@Y2n; z+g^mB$WV<9X(49yTe>E{&+-D*m?9^6&Rz0041eXESKP!qm$HpTpOsOUqCYYZI#Y=$ z-`_It^qY(JT{vttF2w?U*=zi7r~A%92&#$%za||T9N$>u87F2rtH}5{>g>1+IN5=z zP5kaNDssip5#JH(l4;jyrVN>+zJ>iX7*c;QJLk@W)BsCA=}w|-bXm!4ztc>QKQ5&QnFgfR9y40qH&FC3u0$XLwfJ4%GK}0Gx6eG&zKs+CP z_Z%O9ukEmrFA;Xb-zL7%POl^q#r0%IP6t#lMjOD90?u7Vhmx|NzCvz6+YIy8u}JkR z8>}Q?gA=Dr-+?5;#K^_5Z4c%{| zo&WTL0Jnhsj61>Hhx{K|aU=*V4ui!6N{@e7Cu)V?J91P7p-C%YzB_i=^lzV|117Zi@{n-9y0= z6_>GF4o*&ji$HSw+&N?PlVL@}n^a`u&mNBcd_45277iCcf!o;->aK6RaXP?(m?MSQ z1fvZ>PBvQeWl0T-`-hBKdhpbS3$Y7^C4MDrHrPF);dG9uep?mY7s!c3Lm(o{N}_cT zg17onV1>U)y@moAmBX#0*=?wJ2I_f|1*qNe4$YYqCy{5a+Sg%~;W4J9}EWLk}Ot6c$AdVFt8YzX%`PF2Xt; zl4NhpSTKYMR3!(a?rGlaXr^BY4G}w)-|P`yRA_zjhtav18$E*<3X~1*9#V{-&ySEf z?o;2eHixyd_4*-MFtO}2=(j^ zAo4SS5;cfh0e4qJnVuufH9*%DLF`1D{q}8;!b>wHZOrJ;@i}r|Cv(fqm0v_xSxYf zcd#ga^@oK_Jmi{(k!E@7&G}L*Pu72eN!a4?`?bKA0l9Mog|v0biHRY6Ph8QxTF198 zevxIWvh;6&YlI#xkQ8AM;i;uu2jf?m5Hmn`rlY=xEi>+-I|8@Y+T2Ilfz>(6YCwrE z5`-xLBfZa{c5N*L-1?Yrp@c}SLDb-hQ2KZzQU^B^4;D%U!E_L_AJX8ABqEahbFX2} z77XqX_{)ik9f^R4ZMX$kKfpa1T+0ERXh<4K9Cz!3L4W%-(Jo4-dsv!q{sgQysV9}D z*ddD2L`;fE{!EWQE^@~Zh)ziiK5&a@RyXs}b20}YkpzDCF?H#{RwL*y2ra)VW4@}V z;fh-XKTZd;Qe0@p;a7g@j)FdggcL%N0S4zS^3dK3t4h|rzp*u}__)~wi#$NDFPJ%S zRhfr8y+SW`S5mC%d4O9E{>aILB={2{=7c_dttJkW@6=8b{cT!&Qu8>c1q^({a$%Kp zH9Ty%)yz9`hrgqD-D2(H{Ir_u>dO=x1ae>D-TJ1oW73C$uhM~ux#dw;RPpy)6hny? z9y0%YI4NsN)vInh%-v!9h7-P(w*7D_dO@1UIC=jnI>)`80yxYE#6)uOs%;1 z?!#xQ<|ti0Sl++{@A>;Q7_RcC>%dQ+3~z#e{v9xxOH-gk z5xOa9T?1mar#wH8vmB4u9%(#Ta4sU;&=cT)b-ypaLsOD<=g8sXeJ9P(Muxq^j=0jC z+#3rup8e?oZ>4qNCyPHXd$$byUt}x(;#|J6sW4mCk9FqSrrRQ%?mZSKaw9LY&tPT=-|D7bg6>c#I71A;u6zh@O70PJ$SvM zy4X8F)h;0^`XZSo+R?XREoU^Cowi*0E^kLM5>*w4MV_y#91)+Ub-Zpt3pYnaNXfzB zQ%;`|O*x4Ua>+)clnW#Pg(0AdP)N<-_0CTlDLFNrkJOU2yUb=oLYDD8vkAJY79sDA z+Q`a<8qNll(+DhliCjKQowrsYQxV=YwZUA=WoG-dA3WKPhqVN@b){@Igq3l10AD`x zY6JI;&9AD&QbN>kCIM=tESE-b}O)uDuRmGt#ZN^(QOl;r^PMzH^aGSh>*D_aT zUm|=ID@Z=-EWsNul4WPuf5~+!`Cg7JytXosmAh;u?vl|<`Sf^QGql4j6cQw9b$;OC zwZWNeN$r*b;d27ofi7a{bW8ZQ8wKA@rw7+M5n9*4ej4EFLKqVghdKH6Qvu&~HKgVB)1= z<73jo=VwJG^|eoA1#^?c(srZG##{ZQ89?S-&ed;dV%g?NuckAZ{UBzvVSPr_!Ton& zE0X5%=NHHWkbT8`lP%OIw_Qs){Loka;TZgvxEORi5uDX6ko@c$wkG*-G#0|XlqWj% zRu;m(cKzJ%<~OvcXE#Hk^B}Sh!k}dcB8I3(_Bi~Yj~!Y6@?+6|)y0ASw_q0kWnS>) zkC{8|d;nGwA?WZ81jrc$gMF#nGcLm4WqRidqiw$NZbm4b`o1uj)rLZBe{<*m*54HV zMBapdZh?+(#BqNKfN~Lw^6B+nuyLn0i>Be1K<7Ri+~!**%;AUDMi2}ZRSudE#-CvQ z_skdu^uPDy|Lu10z=09_UmOt|BP11^Ve*88QD~vUX10}J>^i$fo4-^u_&j+Dm_@ddGtZlAP16K^!$oQlUxdx{z$bv6~ zFbJP3w4Qb1Q}85l=da_xxxz?ntE6Efs#17aS1pZSmaH&0t#4Dw8B;6YK@W?~ur4~wGmvZ9Us_1@(-uUpsROsC=$}ZC5sk9- z2p@2xfdNCCXW7e;N2wn^XBHfp4v_CnFoIzAc+mLkaw2c_uZ>#7BZ_yc=}U96(M)4bK+g4 zhW%SuX#kl3jU3P;5@R!hiHaZ6!KX~AyCs*IgdP*^`cqCvH*Qkt3f}Fp-Jh4_5q6d2 z?6Wk%X+=5teXnd(APps=>(*D!n3D=#kSXf3YHRF~4m~%&zw;VmIdo8K7&YlgVYNA)8|IPdEpoN4@w zhc`0u_^V*3-?>)e?SACqkP7b4dy8e3Yg5V)6}10_f%v>GqyE7AtkER@bFKXAmPO8X59kmkeI2J_s*#zp~e3_F24eXXc2~^+e+ueb}(8 zW;-@Z?7;LgmLVMQWH`B&hh&>mS~^WMD(ITA+cIQY5qd*n*u4;V@KkP z+s=MPlBwa;fd#$2(a>tX*9B>9ZC_=b&4%sd8CRr@=r$eSZS$MfsyiFx)Y%uaxqUqE zEgc_Z9s*{Z{V5*;Jz8uTl_gz$Q`iMS+FD2Z-xv94sN6zH4#QZI^HA`sJo!3fV_ zUNTLGh#F@*>3;u?O}X=RtgMWai%E8G3Uzh4sAkOya|s zj&UQwkQte57)C=bLSB%OKzFGl+xa}27G$f)@2X^?PvDT^Y}opg zJj_5?#AKMj??c0w6JPK?e2UmYR3SR-S&a*4k}e?l*bnmzgu&;7iixvZh|Y-!rZMJ4 z{3ndZJGH^SR=g`v`h0`IyKx|zOKQsx&y1#tQ#o0&Upl)yYE9g~L~(Qtv$!$Aygf`; z;#R7Hs0U&iL2jsw6#j2khi3{i?(PXK51ruFGNd@{IJ$Q|#w}>tJPlOCfrp84Xg6MM ztmLEa;at}*f6Ogix5X{^8&<;yEy#hRY*rJwsj5MjPeO<#yozTKrAsGlnh$aiaiw_{ zatm%x*@O)a_(+>8Mbqn%!=sAjM-}FAOD-3mzMa(Pmx?AyVjOw8;857-p#FM-cA@4U z7?yuVI*^v|=KQ=HKQr@E0z22?&?BJ({`6O z(njZ(K!~sTLJh6*?CrV4%J~EkJI|XMOU`(!y8iX4or_-Zm2e?3?Hu&J_?(^`jt|pU zy3Ml;y>;e2%k1qQU-?OYStiQ}LnbnM+pxtxgi7%F={56rhtYR9bF>l;S9>y4-$zG_ z)_zt{pqsq4VvqmRGuF0Pn^$Btx7bAC1va%*{7!O9@>QE}z2S9VQ~XqWgc$UOZaIH` z8EIx;)I(2j`9*&T>$w;?nah{~GZndorXu_KVcDCU`o{X`LXUiCt8~6kK0A+Vgxlt4 z=iEk=Afq(#)!xV~DdFHbo0@vyKF8_HJq4Ov=ZZ&)@fJxyguHnn46miIB9cGd0G`DB)BY`eNEwlS5;(Zu^b ztYb9i%(nG&+W5SKoHZ`CMN9mP04I_2K;`W5bR>fAuH-jA7u~f@`}E9|#{w*PWUX_d z_@`ZNByXv8zKwsIlf5j3s%Azt4WgmMNQf&Mje>}d2CO4qJ5_MY=0C0;2zf;1p-$rS zGF0$eaCM*woWw4tt26rL$_*P|+EAM7-Gu-QZ%3Em8(4YJ%w~-F>*}=2)*LK)+~brc zl-=S@?mHYZwZTfzrYcHISkg0~N|s$Otsj9dwUQLr8XT8gUTe!$L}yU82z%GCixZd2 zrf#I3YOkKkW?8LHotC^ui+|gE!m+9qxvxom))`#3^~v2bwWgl4A?NC?^*J6Dp6}-- zhp_E#K@?e$k%zgX5Z2EzEy>otmc>MmD-g5mRUdByeKLXDbO1bKlrnc5vdQ3G7#Guc zFNMYl;}dLW>Cn|5uPH|ln80ShBSaCU47GG@%n=?DKfW(t#4b}-zKxj0T4zj`i1MaZlqo7pzWI? z^4|kC5QGyW3(>R@OprYLh$A)!%AS53-WW69`q3T&)CcT2yD=*Oj3x^ zooCezxi0BRE(Hn+gR1H3Ia4{X9!6 zerPR(_x#Y|J2?0@wP7y1hb0K)!FsIpdJn8Af%h7hIWr3E+rP0#|Hh9H?{N5GaAetr zKL+GC2*v$Z<@x`bjW{IIG#MaZbO3`Xzy1kHneG;skNRXt#=3DaZv?P{FMep`^vY#9 zwga!O*Prvl4UPu!k_x1Oi3&ISMDno(Sh8>-d_l06XpExvKtAnvdmM}&Vr8W*zR69- zLRgSXryqn*WmA2q4{}c%jFXtS%;P=0eKcJqjyqW1z6Bn791#`DKOrkWiSwl&@CQ~B zYh2(X?Ut_0faRp;&iV<%h@yjnBw8Tr#~NO%0S6aee7SGYu8(rC*pC49xFgNn1od|> z81bR6_{?V3`ub~sKoNWSYgt^5<2}E`^)e2IHk?79XIDeK`wJ7*^oNyMlMB_40?FiQ z>Kg|;Ia%mzWM&7+FgufC9}un-kjrbaSTJ#sLzwNaANW~(o7Iy)>6A1Ec=lFG$oDS{ znYR`l@<|`GLTThogD+d?#0u>R85_?ZWzPz0t6z4P&!frR!Lg_(i>{mqWm-?I)o_&(~fn? z^I>*Wl5idwXlhE{VYAkLqE;1>8>mXwdPUo%fBrnz+pA=`%=7)ihfYv}jwrlJC84s8 zd9XLlYNAXTRUp5cd5(#fAD&XN25{mI{jFe#8@a)M*79dF8kB;GNV^f4GbV{S- zG#mG_5X65Q1JT3?4STvU?T=o(9-dDHC$Av99A$HSzN2gUryMP$(fu*n8=~G=o8Qoh zvRPPodW>`9q5T<>=U-0t!AVpGx7t{s?m6rS{!P&^#@Q(i5ffKec!|cd2aXq@4-dM= z1xOW05sKY=%$feJ6H@DOVa;&Jo6PLM{jk@j`xOp8C55grray=dk<(rS&Fj3+MRj>U zHqB)Sp87Osra_Mv}*_sOFD#W zykNgAQ;X{>JFK_gAx4VhGV|_8M%>^`E7;ZlDxiPMZFfA`&8C%A>NOkemi)Q?~SLyIJ zH_!_P_DyfPtJbDy2O4UXH{L($vOtJZgvVi&!m@mcNZ7owv^QFJFN zepIDdz$>i0+VLAm{2E`>2UiY4%%G9n7{~1&`=$vhsTX^U4|P6B@{V=E)NNQmFT+(r zzh79|)XfYfvxkL<;4=>Lhdz40tS!4RZk?Ey@*jYrel(XN4c$kX!@^KD;JlPWMGx69 z$E3H8jyEq7?z0q)uUCZfywQIaekNO&aOg92Cx4#$*P;{efSwLQOu{&8a;kB_z4OiJ zzOH%uQ@r-r*TpshPDSmQBLvVNkaogxufA2~kFzlk5}-&f`>-Q~_!2qK6Z8wjHil&T zU!W$`ns|O+cYdxZcAVTElw4Tq-#z3(T&Hs(XyitMuleiFCRMjtU5RJ7*f*ITGJH3; zty{=|!+l`?s``jw(}y^s<0?+m)h#0CLKOkxC$nw2O!Pc23k$Edny%|%B3i;woJ%F~ zK0yHirnx76Rbdr~8I=fNQG|-AKvu$h{aT{V_y%cD7DzU5tn7FBe?B<_$QoYm@{fRX zE@AZgdJI~=V(wMz2DUirXRAS#<*V7B{^2c!E)Z1H#)XKc`8NpaB1t(YQLq$nnM&~P z{1itB9w``9vr2jeTWL&{W*fSSMl_m?ZPmcK{8{7z<$-md_)fIfURyiZxR%i|=e?n% zUh*z7lFmjX&LqfYWc(&LPJm>fd+h9+%Pp8zGDkLHf$bf%>%FIW#PGB+2X_Ih^d3&*;h*AW-Di<&sr@vZuWvOh)DCB9wI*n&iD}Lki zWNUB15XKvksyjVY*5t$7tj29j0;SPf}B2q}_)(U3uha=(I5GvZ!=zNHY&IA+% zvPNP&JXAnEavqch;)?w87<@=2r4HW>Kqw2{cOQq(%-ADVj}EyDA-q{p0>$?XYxQ@> z6OW>Aqe)L+E}A7@CJL(tN3% zNOaF*hwrmvUn;@1buqhdXCM>dR-*zE6%iq$jT0e< z`~`5F6|Wi)C{gxY8&>kS3(h+vAbO9Zr}GzU{DmfQt=-PJh~@YX==t?V0s33=4o>ZV zK&2khN1UFuJLb<$72M5Kwm~f(Vu?pw-0UG|H})@zyT*%TS6*-WSy&8x)CqpRSj>Fpyi8QEkd* zC;b8KGJoHGFj*GNNYX;kulb{RFOL!DU6M57vGAiKp4h*5A-a&f_>mb;|IQy!*2lyU z@#W7mbi^R(*dsEia*bb3Exh_@_h}3~jDWRIi4jMSE-IU>D=$o=*_jwca3+@ z2)aIdE!Pw|%Q*L$=_roCk=~3__hojitq~6|6O7iao1vd%c`Mm{z|QvWfQkg3U-F>| z0*3w@NGgv(`IY2!;VPV1Wbj$neAp-p$BmzRoK2nXx|5GojUeM5coNf`7r8jV=lzb& z6jmn~W@0h(^D*!nw!rm`F7U($NY~%!prRQ>VJ#D02cg}og7%5jB}4e1m&mCZ{ zE#$j(43<7&Gi>UbDnAe*><+baoB8nvGTBN>(#{7gvH$z1CZxhlzSL`l}zlwRD|rj3Db+A*@$4( zdGj1;nu5y3Yp*1HYsQ#+hoqx!{Y|7jfS8&+jSpNl21` z*VYvO#Oy4izyw@<@|hk77r14mKJUk_6cklxET`=8Gx*cw>zZvnR{qG}b(BZL%frGq zb0mH(&JiDQ*!|*OM+P#=d2YpJTJ^I$By0CdL(~Wccm&zJ?3#SlY`CQM*+o=Yf5Zl{ z?@t1jd~Z>6_gCR}+KHo7oyzYyRfT8ORHT(l;Cem%db;-qB=04!L3lerky+R2&L@n= z)_HX8Ii)E!qq;~QqxyKBBvGt(SdIMW0fX#Zk_gK3``A*m6KiGt?L$op*(6#6 z>caLS=HLPJ#FU!N^-#G_ZhkNfDJ^8)573|A(Ytr0Ftp)z!q1bS*H>?QTy(55JeQwy zS*_2|VtM(L3{yaqLj1IZ(#cf!a+|)$i+B)T%y#LpA9Sg)Z+861#oq5{qx-ttqj0Fv11Z1mxFW8qJ&=A-<oW4s9LznHj^s8u(U=i9|hFv-oH1mzqrIvn-+U_jlGe3A42?_;~|8VgfFxJb}LW z!^&I6a5w>$c~!&Vj-QlbcHuFfZC`QyevIG)#;-YQ!a~bylrbNi1)??%7S=K$BXF4h z;bP8jFwLeIsGBH$saKYwpK22|5=1WEDJ)Q1D&w#)*1OvrcIPiHyt_3)SVdoUVfYn@ zXpkgo}SQX4ha3g8;!i?g^rh}jZ+9{NcANp=4l697=zEEG(VLEK@a&-orGxWRu2 zpbVkDTH}G%E0iXV?>r85FRsa$hV?fS)q;%LLny zW`|C%e}T~Yx34So)$ubzaX*Fmr@(lCJ>sG7?cY-imOz`qlLawm2(Z@l;EgUPN4+pU z_)px~3;Q=j2}9u>MO9sb@x;<3Q75h+gx4+%_pJlO$-fw@ zski{BNTF%s2|Cm|#)9Aa*a2AR!2erFkCuAN^0K}6WAG~P{@!u03;%n6!*XqXh-q58 zDOx5W*00$NU!tHFo=vqWkKlg4K{QJgZdY?pcP^PlhASI~%a3rkFi)&8<$ z=QBg*%7IA+L74ug0}DKU=AV~POMICCby zcY;zd6CEf6e{R9J8Q}O!_ZVwd!a2KJN>*Zxa=#`{G`!^Jny)MeZ2;J0d_}d>vm_aWdF^toe&$+{h~YC>|*NY38~Os3HxH0 zif(W&4yy~@q#P7X?_(&Bzt1qrf5b1bbg_YO6m5vi2M6y~ZMI|c415|Az6NC^!P|wW zCrUZzL_JyQM5yvuHFemcPOf+P!PgC`&b#bu`x|O(Dy?~?JUd@+kzH0)>T*whoqI~e zrcK;>x9!&TK?f#wFF13J0G{u z^}%L?11oXWq*6aW))KZSCBt97ft`y?$9#%^nHUW%cAVR%46b+O&VVdA* zIq-C#+eJ=&e{LMu)k*Z^O-CbFc==!440Aqc5>^E3jXOFppYsBa1B<=Kgyh1bxZq|v zT38N<@=8a+A^T(ku7lYzP>?n`3(0aTgbwQ-A$aJ3Md!3sO9&E+Y|s(KCcZt8K=a{o z`#Cr^RbdPGIsE!11*b>c;XqPQXHfiZF_;YGjETH{9AUc6=;d~68GTIU<8fh&quc%& z?+c#A^{LQV(T5kjqAH3a71#6LKGMNZa4vh+3^ScYU@2NQhsk>;rSV}sJ_H;k4 z57zt&9vT%){!oX}J`J7a3Ze1nIS~~7`xcHRiwn1H$XWKq?=e0174)OHuRRouZ(J8H z8_#vFPYah2Ji8J@a-PZVLXu+@ouyW()pC!Qw#6S%9te^#HE&0fO;kylLqDTsE=C`7 zQg`)O&5s)(tG93QA1+ncX>$B&K8U8ywh^EfP2e21yXaDA`Rc=~jC21mOrv26hR!OG zL&n}+hz<9*Rympji^<#kO2cswQIB5ghv=?z2p3GE5phs4gT#74_`*#U)P4oio=9ax zn4bpTjY;Aj+Vd4l`QFlg5{o;2r0?{+sF)vHP+V8xOrC3byBXUnO9~J;s|t3r@TE6X zcBN`6yIzvVb^xFuDZ)1HX8=wgk_pmlwB-YNN&LIcaZZ3|!^jj|8o!T!idT|L0BcZt z$1;CakNCWerGk%G7%!m_0=J3XQ^3HQ4tY3vMc^635@g16aYCUd`EwCyMFf&!_tubh zkq!q$cMF4AW|gPX#KU9C%<*b}Ks%myE}$g2q$toYPJZ`zhvm2_!p^N++&({P#~WjY zM`883L+_SJA9yMfgiAs(w!xR)Fld$cjmK!W4+ib01*_Euzy{z53Q%=t&ioe&CvMBo zb}p&A(=C$SQi~tOJ({PNKy;IaL@lFRMK2ghV9f=h znsh>i=nAv9-*M+Ml%5zTNneeiPD98tSaOi)?)J06H;kFOWY8x4xbOU};0y(k@aoZB zoq(;a$Tc86L5O2!SsY5*Y01K-nA>>Y^m-(-Y~WFf%Ho~(yCMcsBk5WlrU`V8XV-14 z>X!p&CvT8WHN{RLX$7o!v%yokkF(EAAO%PRdOJl{uEdYcmE)P=$s;c1$5QAw<}t^OZIlz5bUi$-Cu3EJV>GR zpUIW~(SZqNc2LSB^%QP!6@nloJvc)`5vDuIkp`gX*QF>n_TlHahRI+$!65v~+f5UH zK>OC9j-flqgE2FPQ)&o8_*+F02J4OM?^vCkn?}~&Lr|p5KJMHpyS<%QCKUT@FS)iS zTZB65UFQx6dbtG|12fmfD?9=g)7-ms%?QJqj^W(ZTk*!XpkV&m#Jf+f5FYV)4UPJ~ zNd<(l&9H`#D4GNdb=VUBFi$5-4fBifnSGH#e9QV_Guiua;s7B&;Tv;4;UOKgFozoJ zGRa)14nzaGoe6^23;4L)mLmxLZoe{q-Xd&exu2+sO;Hfsy=-U+M8;3N%P-vL z_ZwS5MaBY5FA%R0o%TJJnd8~dE#sx1>U2JNju{VA(-1SWDLg_U|LVC*GSj!?+PDnp3Gj5;`;j@{$0nD~kXQNfS zw~(qGq@zm-v^Q~_WNbW1P;gfWBHT*NSk&jgjVqO16VCEXiNoj*=-?RzZPS|0J+#ow z3-u)yWddEQSD_tHHln4S-3tH*J)A@qZ2*UDx$t@8&+%X#>N?Z0bL+{^?`ypr_f5UV zb)DD6abyS_k}(M#2Y}=>Z?X2tRI~kfe*w?598$eXcArD(P5H=sol%GVCzI=#xjAQ7 zx^CQsg=b-Ij-&|-CkakZQaTxv+fDDN)S9t1xUkJpW8`LUrnhj?5iH@n*MZM; zybmCmCH7I_$APKthBmY$25@vP=)us(R)hot1#0{#}ZNa(dC>EW)9*DANa3a+d zIxr(3%QO(hQxgB}4`^#fk;q@nCp_Wzpn^C832H+f9^k?P&1jcW*G?|-BPo*N_-2Qn z-r>DjaRK(Z%bjU7^PX0+18L?@mk(hNu1nJeIy$uy+}t^LpGGHW1yjsMe*XIN zS;knVRl!QvW|Dg>yNc1N#8i~WU0H54XO@AFONFQsErJ`Wg5Q!`gdWlI4g}+H-P0Fs z*%(fzl8@}B=JK-6b6qIGDbQckyGv*i_k@TucyZb%)b3ih?0v)IgkuV^yN|sR4Ijz^ zBI7-;i;}Rnu299wIBq`XM4eh`zknVoMVB#Xz)Ws8ld{`0h@g|uP07n_Tzsb=srnel|vE}Ji@qqKhJp2(^O{i$b6 zDU0oeVbb^q1dx+;l3{dye;*WmIWMWb7A*?3mjrmY;g+ynmj0 zH-7SRg1#)fu7I7yL0-z}D|PH_;d}>|Wv2Ai{KyO1wLN5R>LZ6DE53`omo-<(GS`~$ z56p}jbDj*8rB{Ru%%-ybn7=ug?72~b_TZ-wQCvHLxqieU&mDTfVqFQEsnW~szLBPa zN829vSTNrZ+;^YU8ZdxWo=G|djyN=IJyUUeVhVJk`6Tbjai|hmOwJ##BLe*Dv92FW zI;IAscC?<`0gZZ(LA|7o?1$~>>C16(!)m#cWxg)KknNS8EyWWd)`+nQM!27OJ&J z7R5j#H1vP@Wy7}a$=(aZ2aUqYXpB|0+OkrRw-~`JtV9R#JRpWs7Qz|GoMHf~bIg!y z7^G4OlA?X!n|2tMkEZE?Og-J^-N%WAc8Ku5_>=hK^1D_>IIsOT?M~d;E6)uu5dnZ7GZkYGXduWWjEjB&ru;7n z1caUrL=JrAD`3Qs{pYJkhyzME`*#ARTtEbHx)8!zARHzp2_3EJcO7T%o&`?-JK8fv zu1mjTtzix!aKY1SGg`wy5K%YSfetJTcs5Pxg5(K*R`jzpuiz{Oiy*}IYJ`Wf{|jpH zWIWkWrvzp~mROB|lKvOB=~y7K>t!)p`|>qD->R+ZG!YH*Zr@iBet+T5>}PqHZ&AS1n`rc;BNq|bGG{47S<)D#F?Ft;4Q8T7 zAgH7Lmrw+p^7u0oJwUI423H>Vg+frOj2jpaooB(OOCMbX0RU(LWQkx51ML5uf4l#$ zw5qY^@uq(S4?VVgGyT0c92gWnST#+*B$t9_!#jMNuE7Qc3gD>lxepr@uF#*IjAVmR zkDmDH(Hq#HQ0)F|*Ahro{#1^L{CBp4NBllDwA)7DdOy`a1srIKSsvkYyobw1G0>g= zy&28FjC(fjh1flQc$)Y%%l>hosWPv7W2sStTN=bn{E)LTAx}N>;0NK~l~`buK>%Sr z*F>LG%wvVH;Ikf$k<{xYGeppA3;ymOnzkP-?WRn2%ULlw2W%JzOe!@w!&l zT^iUg2Ew10PrqIv94O^5CR`7@&STb=XEF2Me8maAU*YJyH&_TBCkHw+Q`@}rGib!< zZUZ9SJIh^h7z;OaD1_wDKd875PW4JCaq5b@va0w?tEzy6-3YjR3V1az*(00_rcd48 z>Ji7^rcWKf*%1rUCZ_)G+6$SP*?A{3Rue^eTIO4cT1YJVf_v^O;ER-j1=?ScYgp>i zv$stm9Imc|`RILc@44)++KRHBycZJe7wq$o9_mxk>p}w)H!$WuxnI#c5Rt!nQ}m_3 zUoVoM4HkEnuw~9&rTty0ETZ{Owm84g&nscJcISS?rqf$)9NT{ou|?B5l&NRa`Ha zDr^t`9PUhVsdBWQi6uGXo0TGDo>}dWixx;6|6V4f@vty$8r}8}NTU*@_01Si_hOZQ zJ})@VF(-1sZErj2(kn^PShk>P^#>FJg4?}P0NT0=KGdJjMli4xhtv!HJ+gKS!3hk%kX z$~O-jWA2%WUCLi8-*sUVaE815 zLkE+t$(Iu~X$W#d+v~7P4Vu1)LBe!ZS<}VBuXFB<2NO2WW~RYKWo$njy{>1ZyqY|i zYE?;G>kn9vMaCd$Z}pEIADVPBCOV#7dlR+H#c79Y``B&apk6;QNQw$&nuP`MY`VH& zyrGza8txD`Yd3NAH81k0S?66rb7)bh^8mqT^f2NHunq{DzrJf)$KK!~f+queX@ySj z@zDs*{ZdoAj;XT_I1@I z=Q!KxFF7S=k;ck;YVx^(BL-*IG+82MzR{ih=o^FK#1>fqIjQK;%T z?7n+{SaSJq2G);bUexW=#RpybNR|ewbxn$6PWZaIIlU61`$i%>48W-t5Cj>*o^YhI zmIN6P!twFZfv9OM4^UCWH7jBcbfSvFIlus5g^3taWW4>Png=KYbRa}}5fjZb*3-k$ z)=62&Liw%Z$0L~J?IENyPuwvi#Y7-dP)P?60f+WY1QxLUtNKN;z*0roRK1L@u zgp^<{!x#A5?9Z6S!5dd{S1y&x80H2=z<1IGPP`U(CtS5EMvmxj<{~O9xNdwCL^5_* zFZ^`n+_ulh9-DCO)gU?T?>YDhYRtOQZbaQ^hg&T8P5U3DfFV&>kC69x(l!A}^KL@0 zM2MUwu^=Dl&1&scSL;F|hsB$kK&3By5fVR*_&VP?ToGSpX1KGOEdwUXb+sp4e(X%6m(88s=({%O71wK{XsiKZ};n;2Ku#SQLeHbV3&o^%J+NRlc%LE(O*f1KbXI>~Jw zz9bvW+qszhMY$C2_WtVKOLLeAlqIs;L~}%!jt=C~!H=_nV~_$ctU%EFO+4|Xq7SJo zFHanmma+X9c;_ce4$DnH5S$dBqGl`R_Ep>5JwMZ+(5S}>>^p0@94g}NgHHI`Gp>|q z`j%z;oHOq5Y$8C!>OGB0vo>512G?21ikJ4ceJr*1d*erw9G$lcOh<0N=jPNF?djH1 zp)=5Dn>W4xaABN9R*$czNa#x(nJ1+xhjJmOY6q;_yYc0$A>ncF-1mg^Q`3LMfV|+@ z!#t=OC$cXLoo$buZW&D&LuJ|_j*qsCxhKz_&xc6LETZm)KNR+T%N|~gqm>(^y(6&U zf;#=K5OKN>eJUrVna6$j|4R&zs(~#KF zXoYnR|B7rRj3F6$Bg{y zJu=+FLcx+TiP{m9ReSTimtV@bI)fNvULlxk&0? z(mqZB;c-*3%g!_fF9H{Dzxfhh=Q8C6TmY?d9UqGO*di8sM8yiSOGpUs5005l@O;6l z(ke9i{?T~|e>hAxY1VjphkuqYMI;gXNR$D$fii%JjEd>CJhtV=jz?vApO81_ue9!= zZP6UEnso)d(cd#7*XWlU1Fu5%e@K(xHj;9s!TI>O%Yek=?TfF`2LrltPb3r6uY1^w z3@BMtNjBhH=4lM)Y4nl4Gr0-dyu#@TkFKD9dLU%@F}@~IS5@fTWp}IZuX?z)812uS zsBiB4avU3@POsp6C$DwT(PEe>Sf^y07xeRbQX{o>X7R0%SagFIN(~WnYbFG|Uux@C zg;JlsYI~-C^ssbTPDOU3sqE&Z`}d3S$Z%$gXBrB^k~Ijh96&w;2qM63DXuy?<+R&a zE$CeM` zplAL=ZkC(d0C&Fo#O!n_pTUDB+tgueQM+ORv!*Y&pSRAcZ*X6jusOXoNUA#86J?!J ze^oGYw_`uoPH3bE`?MNXuIr+-_75mlXyPf`-g@s0eWyZY578()(90+s|(&=5lX!dp$^uMjXTw=I) zrHxi`;Cy2ObD_z?H=?rS81x|RT71By^H-9xe7_M2l`c?WK^P@%<&--m0ZAJT+Ug6f!Id?wI&B;1G zrn;7}v8s(LB+x$haFy4ih-(JnNI)_ZIJ^m=K|mO835o@3v!Qcf62T*w609|#&%X<5!_R&G(3YixKCG-%SvDQj zw{b3DkSbXU(h3?-Z3|nD-~FtGe#Ly?Nz13c$nr0XOFC+Kx@-N~@-k6->2lptZ+0Bim#GgNN4 z1b$L1WRhYWc>F69x{Mn4;2HiZm?9UU{Y2!HjU>4uM3J;q zG+Bgw!^%J6bYi6PeWyYkQg2N-0$Yg`8EiEM8SEXg7PP*hi@eY0g6F}AffJSC2CwA8 zfI0VAox?#G3>8q@LHdiLZ|r~HOTBrDcI{}L?YE^_u5FI?C3p)z*4V zrEvfHKOTNE$^aS5i!YgjU`hG{GW{{YcP5&{kqK>-+T|4AwKs5h&iNkc=t_Wvfv~L= z4&}m>p_X3V?xi)qRySVr!3_icXq2$|c{srJ|Izl=aaDZp+VG~Nq*Fo>>6DZf2`TAr zk&=>BBt<|{kp^i{YJ-5FbO@4yfTW0YhqN^KteNdM-t&8&^Eq$*1G?FJ_RN}@HS50a zD^5+}c&(BEToN)xb@Sr0udus$Jc6u^YFpC3V)x$b2-+6_CCNf0MIJ^q8C%A6(24F% zHg|nQ6DQ1{f!a9n2-4R(`1I@RpJ5E?oqptg4$uk)zh`p!8^2zY zdM3$D+LQNBzHPd$ssUbERK%1<2fYeRY1}b)Z&xwiqnC`hj`Rltfq~K`XMN1*pX~-t zOBY619g)sTm1TSV;nBUVLmruR&)Jz3U&j}?w#{q6q2GyyC4YM#N<)d@D_mEcHqIbV zD~4FjLb;Wotm~Eg=nUvTFUM>EsG89WaOkX>hjQO%|H`o}6uFVY)UlUY0C-x^TAE2l zH6-`#PGoQb_Z(;UF-w7wGmFYoX+qm?jyVyzTq3c+cn6#A({m3@Q`|4htIvP*@)A<@ zw#Kw5Vo*sIh|YzPcU58?Y zNcQ#b$z~5t6TYeAwC@b9tPeb@yg^X&nc}dRvcU>87p``vUf5B&Y%+XDTFYwCWbAfE zpZEth5(S%up>emjqE5M&xRVRHF-euk?_LZTOjX`DOb&m`#k}j-kB~uPAQQLbBZ5mk z8)+k5!bOSL5la_8Qs0ZnGPZuKKYxS|!8KO~gEGG12i366-+sHU3?~qPX6|F=nRC|C zkstG23xk`c;e!yP+7{~n%V*)dc$x<^CnRA)Hj8QPos)0ek)O9q=(->?wD5q7x1$6T z`5!rbk$tK~*wMXPrUCm1K0C*1aASeZs~=kmWxTPv{`I(EF8H2Ln*6VI$7;eBfOEUJ z$j3fiy=Wfoh&4{?4MHx_+J_bns&J3EZtymCFkv>L61ACJK#tXUlYLY4cRId7u5NpB z*zodJ{zc)PG)?msdMKis6(V*3XOjokDc9889;P<%=e_3YlYMa&0#=d^bPh9)pFlQk zVWg!=Wo6y3G_Fx&_X~xNG6?97L4N6S>#$UYfex?cHzI7HqN0i!5vNC9BKW!?Q%gt# zHnMo9dUFo6S=D&g?jvL_c=vIiC*0Ab^HzeXJTYYDyFTBNKVCL^Qr73LK})%)UN%x= z(Buz@L8KdSqPO^4-3NzE7-1s!RLd{9ixw~`g)L)Mh`Ng+l>m4}I?fAtQl7aBc8 z=tY+UKH#joA4*cdzGjBDXH74=7+BpNG9AGp4oET+^N|D%qRE%*LDABb#H~(4KGu?< zrNn*N-3$8^(hXn7>e4nqPzkF%`H#WgwZjjRPOJgZ_~CnwIE_o9`a81sYi*=_i`yzW zdS8xrCUY@hkj+tPSTZN06>np+48t-g*M%TD(F}90Lik;*koFEQ?}iP% zt>wJWNCM>GfO2do!=h8*rL0Wv{4WlEfP3|qVF})!m`r5=9pON5V=v6fbNRn&USQr2 z#A;fBU>P=7*I^fgV)_wwhwo4p?9YHExI@7h{wld?^xal98uX?Zz^5qLx6Xas%iu}5 zze9ytN??vE?59p&0VBjyrMsL|vf1y3?7p_TW}ce}mt|II6+%3nMEKhnFVmrkow={) zuvMq%92@om_!tT;`O0QkA`uW?fbG8d#DN0|5&7~RA+g62R5e-+&gJ{eE0SEK)%$!} zvlum%U&Wn9n$cU3V5B6$@$Bu~Bbw3yw+@Gtna*_j1d?A`OAcn_vS+5}P~RXmjz@Dy(1>%y3&^}!bbxd%T9=efIc64Dw+9cGP_ zw#Cr+u57OgR!_0&vXGgP711e-Dm2?d)RII6r@8#C{KG`V*R=QC79pw88utQ*qq4u> zJM+3Oi@CsN`?^t2KAN8|(>12a%xr_cE0)v$DdpOb`ck9P3^ z&~U&BYML`=AU>1d1P|l$mEqw#p0l4rrhYnG!_ZspY2rcWG7IlEP0i&tkr0VjJHqca zWB(O(leyXvT6nqb*7Lh_8s~G8;luv~o8Zvt(-VYP`e9Q4TIKIN@xg)SHh9(e3erTn zWX^-O=r2$D_JxBnSo_gs_!_A%03G+&7J*f_Lt1NXI{CauQ?#UX38n7y9)AzPCt2H7 zry`{qE0SKztjf&1VY!7P&@r@zfaXmId$IvM9l{47ZWe{b#BQu?d;dldPdi_iYtJ4L`Ee%iZ4#Z^p9hj+U%IWqC|5AJ97)D~&k`Oy%kChH3Mp03_>EXD z!va1Z4ZAu37qun8rco!)=r5L3iHZm?0g>djI}FR-bX$jem>3#_$WKF5*Ge-J(CH^` zw1j`2?F0inbCF97%a!C~MhQf&iUJ$4o_=)~F&Mr7BO%!K(msHmLOoTta@?xJzdgK( z_rp?hR~O6&wjBB8$}8!39PT6OScx3J5n3gf04cq0aRGVD_x@0O5>=&g?wH<|zRiqJ zxv;$fOC|rb&PQh9(dfpB;^IPxm8yCjj6k` z<7%^$3y(9Wj}jEd_06}hg>YiLruFj_WJ<=QdCZvvHCdXp8*=G9%X?=4q&Md8d>9XQ z%rboUYI5ECkPF(SlH`HA)Fi>nM^Y3=CayQ`IJA=KYQ4+#KHe2MN0u0@?tB${9E3}t z`Sv=sxMio+dy)vMT!+zLi<%6}27^%syj<7(TOO?Jht`qfy(|A}D^BK9V|zK~j7m(q zjTo8oPVJtBXu8JPgKs1n%SJpyWp$d^4tVK}n zD!@x650PcU(6$!tMI{nZmnG8N@8a7EcfL#0R>&1f+89t2RyCNCsi7H z@oYx;TupeBzY#Ixc($jmgM747mWDEn+@G~CiCfDIz5lU{gO+|2WQUs}YdDMCDBP9= zvLHsh$jwK-0{I@j#$U*bl)JTQ_Z{{EkqOH43kpXpnV-J~c7|NMm^bX3ne7#B!*nr- zpWt@0vpV8)@erG$Kr;_;q7Jtqfez= zV`GonVu%*=($vIQmm|KkNzLTgN(G&sv58+`C5o$hS$J!BjrjjkeGpkQ#iTAz_l;o}0 z3$prp|6-P|xgbaBm@$QS*jTIDC{eOj1FYT;Za=pj>T!CHJTqAHKW{UO&BxtwnHvEj&9Ck(<460q94K%C!V@YK@9GNhhLE*#JWZ`#U3TJOwhf~7#g0}Q$mRKv|{th z1J8hqx(Oi5qWB7tgfjzBOTBU{&3MCD3~IzR5A_0^Y+byfjdX&-D7J!r*MSUnr-4eW z$Ch@NUg8D4U=8o5L?R2zN3Neq{_-UTIgHMz$PHQFDr0wf1mf1o7X+Hh`;Ke(E*(5@ z0058}p^$G;X36j<=B>_~E%kgiZ9ZD@ixFy>av%Zn_j#uu=R(~$H>Jy??yil4^C)UQ z5bX}Lde8^u5VSHTwowP`q3jF@_~nbUK_r7Sirf|JGKh;q3<#Ekrfj@e{oE&c)t?Gk z(4!5GdJJu`ehTMU@&|kf;o&}GKyZT1)si(yl=>|1U|*mnc2YpaX~-uZaWd$U z&Wm7+;9*ISibhaqAXLbtmH7lQvk+wgb3CiF7|-jn5KWk(>FS?2U1VPko$@2_IkQmX z3=cN^qw1mpMz5Lf9gXJ-nK%e8AeKQ|maR2tAk0HZ0+w!ags?@ib_63x;pCFP$L4viO8gfxqc(KlNT&pwI#s!GB;V6f^Nn z)s`8&B|zTB^q_It0}y4d_yD8b3rxasmcD?C^5?YRCEprZhR_)#qnN;Hy$;MEy8Mk-(mSd75%X{@Ip~bs81nmp+%vX7q zE&2B_ctTbv6J^##&qQoPqOZ$8#7)&eQ-6-DEo1)HvWOrSAcN5D!&F$f{Gup@A<>R> ze_&mK`O0{Rx6+&V32m>AH>bVjRs!K&WnLD!*X=O8xq7@*8Zjvuc3iSz zwI8Z3U5?uo>k5j^AmEoqm-WzLUK-l_`5+vkS)(${FlG^x2mIVDtfF=YFT0?Ao(H-P zlf=FCk6;f}D1GT`a?l755~c3Ka2i|c4~N!hTrR1QT;f&L>2Rcg&$ZFF^8+eq4BvK= zCf#sy0JyTp0sxX&z?z)1Gxc$nX+Yy@@K zC2KdiWMpzcM@~sbpPbiFqa@*=Dc+m-$_+K1CT>nH5vrJX3LwkRjiKENVG(^v=hccf zGM~0uusd$_u?^F$M;=`4W}e4g*L5|&^rN@QAIuaT^ER_GKXc|W#>2%J7s3IvV9IOp zeM)qZus82Z%|pN)Q4l~MrfL~F{E~X-Yl%vji71zVPQ-P5#FAdcWK?zhkEcT9=efLG z-su%jF>c|Y2kaPb$11s9xT1flN(Yf9kvScJc~4AO`OVe+6Vz8*;6VjU&ZN_9jvIVUk7Nno?A#Y&e;A_WHS)EPC5UG zr+)tCd%%99KFQ8}Q(5RIl^KU5^@%?ZE1 zV)^o6WJ6s7j2?;PH>)l6px^l}V`#TMR2#+UAoVRMBx43nJr4thpHCuLC+e$pPs8Z+ zuobR|Y`DE#si7x$-!Z0ze}eQ?_q*Bo6OLn3p_8WDt21$Ad+Z`9Yb?>ytK8;K1ERmH zFI*_?th_ddM3<+1J=f@DeHrrXz(vtk(0IN*Om7sU)EL`K_)sO&g(9O+a@d~giaSql znB7IUZi;$ympF#7UDhnB2n!k3o>vi7%H@}SgI#siyraJ?V5PnWnW;r=WW7#k&dJ9H zC%B=^Dis5lDwC#Mih$*wYeV$i0&knsG-Q=~yAp@vVWos5Vc;w=`>6K=`!}(>Z*NoE zCVl_2PY`w>pn<*e17k+^M_i!~QIxd{r6GVcV62?9sQspPWztWtKd}K&iy<(I?_Rcj z6VU}I0k0dOGi#3!AD?SjEGjE60)gz1uHh8}`5(DZ7AydSBLiBVp%4`%jl_nkV4YZ) zE(3ua%knUD2@V%cW(wr(OX^)jgP$b5Euf8m3)Z^g5oS4@;J{EvS@5j%s1N_3z@-XD z6Z)9GfbtH#rd9Q|?S?5P<+JyLQm<-pI#0q5jAdQ0s%ZB{CP09mRFZ1>tIq4^1 zy9>h<8es9|e12!;)b5;dLUhYFc=SBoIFr$g>#Ea*knfknxq$1*M3W<=$iW2^v2_^f zP=JH;MAVoF)KaD=Vx(SHJ++3Qow$uU$tN!)dJT%sl&ddX>GS}am(ERpZ=z903Y1r_ zxMTHTPZPuidAai5w0u;c^ga}kTO^s%_!AIFpjxn*;WvW%VT^F^<`_Lv`kVLCdWC`4 zK4=4dgSJYEZX}L2$bEm}z3yDd{LbLjQj zjqqgQCx}iS9K-&%Ow@?iJC{#(?preTd|L>|yhtDKr8+j*8YMxx-fbf`rJg@%dbH2s@G1@v(= zXf95P^VwgzhEjuk6Qp4&C(MWHLaP*Pmfi3oa_Z6qCl&`>d|#mx3<7>+yd6GwXqI~U zd9Q5Geoh8=1qy~hWW%8sf6!#cQiuwf=Lx{Cd$pNF4*b)YFBMcRL=Paz6EftfblISOPqS z4|YVqTK+t1g4Ig$S-|$y>0mS^55hZ?zg*^FD}x??WRU{j=dK2wr-QgkAP*$b4@~cV zbr(-0Nq4>9nZ(-K4R$zb|EkykeXtAV(+c!H*$s&n6oC^Qskh8-Jb zI*u^$NMvPDb<9sa=`|O$4J;0b#S{yc>aQN-RHQ4_lejC*-tJWv);R+4C3X@jJ|Kle z5r88W6c2*8YJO$ujtLbppWRr#gJnT3d%5Bd_+q3k^DUu^0fJv5uk&mSwromSncECa zrW#tzx0FSZB_d&Nk|n5W*BH@&HGzTLE@p=9BVG8mCWcWUJ(3v9@piLr5m2Scfl~xp zLUCud@5HwwDIiXom@%ZfGtIZur7_jmR5MR80&vv5$5GGD0%PcyJ`fT`twxHYi&CAMjqqUlv3y?kkU!L)9gZ8(}Y|qWU3#KGwPoywmmTw z54&30QHVBbB6R(k~ObFJr zdrMZiS{0vy6=7e)RuoF)>)xWg)r#e6w|Ri<&AzYd_4eDtEJNoD!(x^r553i>;&eV7 z7y6s6k)qwd_~Y(i4E^OMU0tMBV<}r);a}RScUs6==6e40F`#=%R@1|$za(D8z3^B% z>yaH^+Lz7(x`e~DcU<;6Ts^JWaY=rZkK$Tc1)Mne<2QGlr&q)hC@fV}EtEAjL2C2N z)iA*rdYkX_W*^_G%G>ObE9f=`M^%kD{GE1FIyywD8DWOgAIG8L!Y|hMT9j)Gb1R1@?AE>{)EaeM?2h6bUZcO5ffk;&8@cmkrx^dj)!p9Nu}MAX%C}x3b;mP$QI!uoS1mxj z&G_uQK-CSQ~9PHlw0B9@nR{%Jg>w>(hgwkk}Kf}^XJ zun0Pe+rhdwZj@oT```pT97Lm{XP-@+;Iz<1C7|$#pb}7?-M?pKYL!>XC(E;qE^}Ylwt}mI+hXHN>gZC#@`-eI9PFDIF$=_~ZqT|WskW-CKQR7vx1=h1Xv1i7hTv`}wkykjSUOKG@V@ zO56=S4~?@B-!3H5A58&F=YLlm{}*u-ChYxSK?N_2Y?mH>|meyIHY z1K*|9MPgw=rwymoYYS`vKO-VfoUm>ffz`^O!9g8fxW5gIWi|fmD51CDL=lu602&2Q znNI;yg7J1_`uh5v00aYd&E$a~luNoa>ch$c-tbqD$+bYb<4vpiRs_jmTkrlO7HKpy zoN|!g(@asto6!MuG#77UJMD-9Rs-t6_h%okrKX>U%7Nv8rpYGAQ$e5^M{z|X$X{yB z<^9@D`IE!_(6|d7<&?|t+(vwS^NS8-ilzXIWk1f)tSas3Y-2>)3tX{m#6d6{5Z}N3 z8{uaafHDd*zp!ZhtxyZo5rklnKx7%#=d2%|wnm=JW)a)f`wcyXtDoyvh<{9=T}bVi zK(S%MVCqoW-yyKye~Ewk@)=&>alyTF7uihH^|V(KwSH^wB&PfEAOrM5&>Sd%Ar^*@ z-=dsd1Zp{&QPMOwSp9|D;_X&vD!VgWe&nQs2Ge!XaTv3!_H+LO6bZcYJ+}9L0OE$Z z3vl2;BQgT{`#l;{I@Vb63t^07cw*@slg6kg72;%w>dH@26x_&TR5Ens8u%(EQY}3s* z(rC$C_X!IEh$Lwa9=h03dB*wdKPZTi(htCaf~?z?NT1(zaAe7G&&6$U%17f z^As7*tg0^OWb$>KNOm%1+DP}gd{4k@n*O2t>?6u~;(XsUl(;E`;!P@9cdJNknL(Ix zZb<1d?JHKHS4_jd#0Yi?LzyLLY}J?&and(y!_}+4ue8QC(|?3VoS^Y<7ow~6u7&egL80QD`` zGtPW^B`0r6)_V_{y07Tqz9tim{w^#r{CH+kylsqqVAY3Ib8%_VEE>VQg`v7B6vI@% z7J`GgDudpptUt6dERpZ}P_S|#FW#=EDunt?skfk9A$Lo2mjkZo{LC!|UA;QtQjem!u8TaT)sSb;ewnu1eX_pKV_q+Hv(*McOqSA#il0NmFCs(W*{t?X+FzaLBu# zW2j2~-NftR&#An~@!o^jj@z_Kv5Xed2Ldbd6r{{A-snDZd^6}&ytmwZd*CBpp)|#z zdD&0FDh_Q2@oGkCzfOD4F+H|mp_3x4Hh-#h@_{mUoiBaZcpk@=c`jl@cT;vM{0pjQ zvH~vlT6CzME?V;8D(dO3@mi0AL<4~UN}_Q8JIH`{`wt$x*jK z_p`!=fM|#z45TPI6Wal7g3=AKajwhCo+`-mQte3ULxQ5J$9AW7^C)G{-9w)r#*%d$ ziQ^{b!e`}S+!5&;thd8<^CVkx_zH{Xin?7c8&>Q+c}Qnjr|i3O(yT*3DK3R9It)a~ zdVqNfk*Klx_dva-X6}-{cWtuf$e*gJV^dPk%P5J%O{}m(bY~f3SG`5~VYUVTg9!GT z{PfXnd++ZqG>NgFLZsJ>`yTgCC5{s)a`g|gL7gL#d6^0pP{F*8XaDy4VSLN7 zrGTHneis!3%MeinS)z&+d@1FY^hykfC{R^B>==|f*n1BtPZXpz6e$?&0}#O%>a zXmoU*yfMQF%mCGWFK4i(3CZ?R9!tYRNrKf0x;;N+ob$3$pEc@XOIfA_z+H5>j+PK{ zb!YIQxPnSyg;P?)eVD6Xfc%`WFGN@Q${z^pU`9~D99BDXh`+%}Uuj~uNZ0m^ zOOX10R_pq_)jAc+3jkONC$hqPAKu@HFLTD3{5XyltA04SFRt?Qv+kHl2>l|EPNJ3(@EV^Q6SC-2<&)y6I1oBK zQ<(vg7U^g?A_8uei2&ovZha|*8q_opK%_V=5>0XE-W~c4qcPfFlmN?sA|ZjRFCcB* zzrfo!=caoaJYW*GgR*sohEjnTz$drrE3UjXPREoRZqHYLwD_$PR_{TdRYALZuNAE` z%}sn&UL=Hstp6U*g=5%ODGJ4ZfkQ?VaD^fa@86grpW{!AbMT)+c(=m5UsS}<)!?PR zpZXD8%+Y8%kIbBXxFH;aU#?R_@1tk#DKb`7NvyaZuqxP~^$i*P*c1hLLZTVBm?LD) zgNmWW!h`D0KQSyQcJEJ!z8i~)_|~*c)c9Ad6Q&evj1}zFea#xgFM{580qmqxOL*Yi zQcd{tP#*zzn1BT?en7nT>{&6yY{o@@Ljd`~Qa=srVGDdj>AY?0{}TH*qSz!1YwMcE zMGur+GqCLrErq?ZSsaZyp;&D_HsQq{=tZ#rVk!pd$n<#akjf zepfhKcqk;tw@R?#1F6O`13o$`HtC z?^9LJJ5{>?e-V9CdlipWXB%h=1%~!JNFdHxCU#8V7h!0@Y^ihJ@BJ@8AxS8B5IA;` zwdd}FBGe^=O`60I@*U6CrXEhV`qb7t@8$z4h$44=^S&n3XfiOnGNHc9gzidvV)P}z z`8@&)=PwdEe49qzd??<+7O3aH>Y1Lx@8=b)fw}lR(+pU&8-q0L0O;|Fq4}`)`t$26 zpfSNJXmz{`!d0Omm1Csqz$UUjdDTzi#?!!AW^nw5Chath9*vxX z%Odk%-2Vw@1j*?p+)SC*hyILHB(|b1|D9W~a_(h})E~?vSsowqe7lB2VcQ`Zn-}!p^BnYmY z={xaKXulBRWuYu<`^3eW(yMQZ=N~*P_~9jQoV?Ch?y&5m5cJu5x?T>UZ# z|H(@o!_Za9ee0j$e7nAa@&3P99tB9oWpAoedwsLthz{kQeI}sK$hq`|dM=+f|5=+_ zM54O&j2SwsXyVjEyvAH#HP?Y*WpZ15 z@x!}3`yY3DZXpCLLl4|OI4E(A*f(-GsqsmeVbtcg9t@sFP9z=2<>RkUZI0j+_OImS zWizD$mgk!8#>Ne~1iJ`gqo>J~0*(d8ML3z1x$@?rG?G?4xM*4lxi+aYJsp^(-ltJQ zHoQ%j&4LGYnAvZr4YBh{CX4SCK6MvLzamefUas|B!^ys!fEF1UCt$SkMu^C$^7v4+8!Swnt$$M5+@lwU6f}4f>@B|$oTcuBYePpAT18@~^?B#@Wqp?+MN19tY~0SB5~SmD zLS{wNi?-K4IB}kf8KUA@K_U$Uj^7|($`HU>KqQTfGyjFa+QQV8AMe+}a?HSu$@rSW zsJM`uRuO_U41wFQIloK;=47FuvfIF!1(%BdusDXz)vaFa#?<)i$Ht;m<2a7!AD!9#dRrY#YP96 zfk3|J|6Fgu9-b{n0FZvqK;<^H+i1nns%S$9($SZSc!FXpjQgQ-D9yxqU#!^R+vdJl z3H0LE{xHavK?XpbFilVM1@P>!L@tZM?!1LA>EF$J&1zd>a9JlfkfVcY8Dbv4HVx1m zF%-2Q0^-4cE$tCuF#f=ZVs-poqx|7zyn3t?!D4d{q?UHHKx7OU|HW&H{^o3Z&jVl< z_aK4>^vzfjutB`XCx{*gIhRu?@d*|>j!%7tcMR$ZalCsswf@i)K?=Z&=K#Y1Obn5- zMWUbz&JV$uBSxDx`gal4fh0kz>J^;8t@i&Glfy&?3oKt#GM#CFp~l~jvcI%bTnu5; z-#5K;5cpvro4x^5%mxUyf4j^4VT{0DXCJ}k`Dc)%g%GP@h--g^wc>3xyP`mjDC#HC zt2g|@qYU{9~B5Qe_isuTyxD~Xp`s$M-e3Zh1FDl4C1VIRt`#9 zSN~RX-KRt0JSbnB|L*O?g2W!(suGWm_}|^K|GsynL1%5d1{rVxKp4;fqvQDTQN7=? zl17Wy*m^$&?l^#1!0eAew2PX6E<)@}3wr+mVff#$O#bJuVHe1WQ>ldpeI1z#V5AS# zYm#!D5!3!MNb@e!Tmqeq5=ohQCVEV&Ozzqv9GfW}4*FYk4^njG`()PU=L&WA-imqH zRz1~Fah_UG9ob`>m2S|AZyOwW1&j<-)02wvJa8oYO(SW4q{>2<1doy~eOp^l*lsKTCJ1nj$~ zN+J`I33qhvZpH`?VlQzbhl%doywSOuU0m%m(2eGfFMvDTHCVdIeCtx{hwFpBy(-Zk zHho(mW(R41$^%Xz>kF3Cc0v5$+vND&IF?AKy{3QwiVO@iEoy%)TlO z-y3YzhW0OsFewNZ=Pa8-yLez9PKJOxJ?&0m$7kgnKOuJx4i4|iByvoZg!k>kq_|S)%dN;V61{V$4rw7GE?we$I8(0-~P=w0vM&x~dtTT0L z=wNqm;5%t#!|Nw}c%=4PJu)=SYi0?eUyj(AdwvACz{bM3#(FA;2>sE|@s!j0#RQE{DDMHK*1(P!!2U;ia5|rr)wqD>?{ z{QmgyV9z&bipEQ`X}(u62I##f9D<&vnV~OCx{IOeNggEIv;>ieWW4@{m0A5-47l2i z+R8KomkX#mS2LY4Pgzt+R+Q@C=;m9D)16}pKCDbuU+*RVYArAL!FQ#j&w_9^6XWd1 z7b`AE!4T~3F0q;oOFp2nP(kR-Q7842%>Rss91McB<0dq(8{8sk{xAuGU*EB20e_ou zwl{?%yGk`Pu8i)t)k_6nZh8;q2;;-d+WZCkkWm^y=C);|xLX0WiPNA?UND{d?LNs> za`{!_K|k7SbB?;#D@?rTP|3FQg=$~A)Hn`K{1T40nPhPR$y|tg1L-HjrnERRS=!Cb z&KmrdxP;Zh9=K=3I5u6OsUcyZN~gI)KTam)gBK%bWzxvA8!ghEADBH+Pw&4LWR-1I z#n|a}vzfH)!-FTC<%MBsc6TK1Q|Q6iO013+(t(I6pL5AfK79mP<;P#Jy*(Ce_5{EmDQN0KA=;4B*xTw>dA z<~OF~>AXB|(2iZ8gt{X;YEoAEYXbxhA>flr(ykRjkE>2xztR*6d3-=tpNc?p+YF% z+`D*r{4R7$VN&C<$nLGCE;n&Vxn+PJC6JVAlIjE2?tho|ouIl-fP@lI(kc>#6s$v* zw8g;x@|F&ig{6aEter&FvktBk)-b0RytB&%s6;J5jfm-w_~%&^5CLm#DH|l`Xi>uT|6V1dHt!h=DhK{I6dez4zA!@L1F!V%uAm}h@2%bXd z-)>%?T#)JG1Vw%*gg%v#wtT%j(mCrBS>PwOvOBvb6g4XJDQ0rDwn>Qw#EMNr5^QurI4(ayHoqXIt9xr*y282ahTi zMuiNxp_K+bJoY`m!qf4eg_@hp{Y+-xuK5E?{uI!uKR4KGeq^>=B} z2Cs$pJ=XktHk^f#Aw_H)i$$~V=P$+-7DTGQRrptMWc+=u*C1K=Bve@&T??bZNW|ui zM7sWn8_=nozksC)O~uzOeW$iwGY z(dCmfM+l?6FA*&s)GR|$QD9@7nUGI8fl7sIoxbkFx=`^BgIlow`ijwHUq*GuKSu2m?t?_+!3GiMNR2-o9`2Z#(5F{c;PRAP7ft6Pw2Td+rjmT?`!W(XK}n?4+01|C?5U={ zQ}pUe(I@jIb$*T8`-`7QGV=393=Fj!Gi-gTW=!w_tYFvRE()tSNyMWv?b`CdrDYK= zjwJ&Lt$JZfOyIH?P%RyCZ^m%c+n)JEnndo4a6pc-_qtbfPgNM9ZkPp-$L7DharW|8 zD7FSn{bvYm-NIZcxO@^@N-`FC_36^E{*#c*_7YiWBL0~$<1@O$LQTI& zRHk+BF7;sF}1f1dg)Azt3aHVz6GHfdsR*rA%QYE)2D0Uo1d(QA1=?%nw? zO3WsW^0AR8hOHglfGNRN1Vch*ZTc+gpYek;XFc)oB9=rCAGUZDh*N7A+F{kFdq0RV zyDDher|#@ffWU!j9W+mOea#*=kQ^%nI3zrrus;re??(M9NPsE-jTkbIJ--F({0kuT z>JikIGoP@}_iTo|q@sbs|H!Zyx@#Q2&d$EjgxZD4>%J5ZfE7BK>X(Kg*GQ=--vHz> z#fZ^xXm!fNjr^F`zY$j=k}BUc;3!y57dR{l5Q zQuSnS&mV(;0F)!;O%~Jh1W;xrLp405VK5tTTI7OnjYFy6 zoT&SPP0y|l{FjOY?fObH^-%uvrT5#zCyLj@44c!Nue6=q)GJUEF2vB{_a^ZE!8I{B zde~^|I6Qq8c|_$YSsHnudm8Hg{jlkwd1nEG2HG9f8DU{@+b9OZxlnvFvZu7z3H0zs zxS(M$?E}KbE60hRe)-44{(`Yv&o5Acq`C}0QJQo0efsw6X;(#VUYF^BJi{&P@@bWB zS5|*``Kqeswb^dN@Ff?Ma3;Kux3dez2r5Q2Bu!?=9X4g-j?RX?C296Wt*hL2Uiqk| z_t~B2Oz7{hA!NyBl5Fd0|G9n+5(55KJ8 z*(k+3Yiap%QS@z{Q+iTE71qQOl9{ zh5M_(!|_<9p7x?Q#rGp(sgOc;WJICM$l96Y z7ovA*97VmkYxw=)dXIeB20m0=dd#sEZFei=n)^4yE@e;gw7S`|7i{TG%;~v;d1X24 z6z8560v}6|9J!yg-LflS zpWM{V`c&RD-L9puSL^s|Om6>jgIN4(;%VMSS$$Ta1ULICEv_~L8!fi}-Xi^v>mP>$ zgeo-q*s*9xpA<5eNY+j(e||g!B#>6&)u8{IC-wHy?F7#}<_8glH99lPZ8y1CetP3D zh`vdgSB<*x>Z!Mq;S?zsbBxHP-sDjsU7cE&kVUejmq~qbj2rDgbHj@{l!S_=NgMuc1>kae%#-(pLMJr(TdA2CntDxc!R217-gSUkWieM2uR|QAHdtLdQba#az#g z4=M-3Bp`!!yARI_v3<|y@lUsn z%uePZ4z22--4||$4*IcMX4KMm5tw&IEME0KaC}={4w1N`QdI>vqP+3Bkk&T@N-T9x z_g>8aGFLEhUzm$LQP2=p(YD4r(%f6NF}-nJ#&%rngeBy}AeW;P6v)=B#LZ6qn;V;+45ZGqq zlK#%H**#lQU7xYQe!paNLk7fc-R}6lS|xX$@FcTKGiy$1_QuJis91T{nxR?68oKVA z97-#62DJ5nK<}BNY;2YOsZ3ll^KZkF~RZ1k})mm*#Z396Ewa#k?O=+~Rt; zy29=m&O19_b~k~hT|VeBW)+|dIm^N#FL*ANzLuJi3s?GWa6b}_?#HkHSo-|y;|ez< zl~L>^sFTEmE?Tpy;|ML1P>phuFMV47^7}zI__oIeEuNq)KuznIegj$JtPP&?&c!7p zL`;SkOBvK9!edtCqBT>?9*|LHF!+N9*(Zv2YP;=m{-_6@$MkTUI1#Fa6bbQ@=J`j_ zYU*ohR-woT9B47mg}AgjW*xnp{iXLeLN@2`O(U=;RkuW6Lu@SAg<@WJ_N*ZKqF{f_ zj7sJ=?9b1k|3k%?$Av59>hbP*0Yv!GU_ZOz!@~uK`(F<)YdPO&cZm_kNib(4mVCxh zI+JnKfVj%L55ty-D7;dQt;F+q*A0eeP^$O<@RIj`Jp)i24KV<;dISC(08H}_hy=R= z@#Uie{vL#@;E3tLS=!ta`-fN0FU<~4YZihHpp4g0=UIUVFIF&1N5N%X=;x)m z?v%errfM#d2Q1y9kdM`O=+(?k%capQFwH;nyozk>yLOjoSDbNveTM;!k@DPBO_tEq zLkmHjc|sS0tp;q*$6?-_S|+@fyNfuzw**v<{<0Pg>EQtw+l$_Ijh3k}?e7kPNAj9e z=d4;6o=7if5%dGT)2WzKd3Q~%D}AFOh;Bn*o|E{0;*DBdX?=8Ln*{C?%2N$vx5Et` zFp^E9sqv8ag}}35;s_ZrHb{X5e7^t41yP|>VZhi))+=ZFZ)a-!@4V3u$cm(tAi zz$OS5mre@T&gBBGV?_5Y)Z{={Kdf-zyZKP^NoVxG!?iHstN+jK_dogr%IXyK7s8=) zX$vZ#Ygv5nmNox%pJHyo3`p{S-Fxboh7W;j7i`gmlEL9zZ@n(%%LqAS&HKQ7h>MQi z{ z$TSI5IKu=_$mSg$LuiKFqBih=?9G7l0487%LL-Q3bQ6QC8YHSPW>K|tJ&*yHJ~IWP z7AnZ#IVc7Mw8;HCrj+jbH)p`1q(F%}+@alc`DF2x;x457rEwq^u_&8b`|_Cwqwq$c zhyu<>*}lZ48juO7eo>hA3`!0l{0}lG#dU*Ulc2pJ!q{E1PpAfL`~R|om!+i#vJH3l zrvBvsbnY}z2O$J<> zCVusVn=m^^nkMyChj&eTSurE_hQieh!2=VI{FmsIwzw)A`!BGv3WG_P4(>Q{u+x=0 z(=Jy8-7?jYUvV;tpvKAe*FMlH!b}(9CIe+&EVCkG)(cGp77F-fK*Ys^2Z|g9rDVg- zDhMGUIc&!~I+R0e58u_?XwJl~Sdl;jFB8M9ia)~y4D&x(KsS~&nl?f(>4}Fln#@HZ zXDP5%&HtI)`X5O#My+!~hOZ0{{doG(N?&*n-#j`?@o_zU!{St`tpzFsg2eq&-R6@Qr@d)T%u>M0zBJcv@U>(;I!{%C&QW>veLP%rBu|3g z`U1f_{lz;$eu`rJGHFewCZdAQfo6xGJ2De%k6w=K(Q?NNz8ynRlcq^u-7JezF@PP0;_sp54~8dL+LjR6KCoB z6pu6B5xX#^eRRHg7Z*YbgFdLm`QQ`O=yHdKRN73KN|OTfQp~rSGt)sIt_pPG`~Je# z#f;NZL*m|W6H!hzpBp)ef<71N;YjkxE+2o&$cyB|{$O=^idGxz2bWbsaKXzXsQ75> z-nV-aWpz=w>Kbg0*xhRh1TX zmFvjpr!PPPmCiGTHDP@avr4V4&M`CQM_xxhzY`?&y4dIOBV7(-fa6tuH=7L$7+Π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

EAgZ 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

A|$f0@v}z;Hd<< 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 CKLeOt)AYMzv=W z^T57tTgFz-r`!aUm8E+OR|0onsxLX^wyqf02lYIa^9|d9)ZK`@=SYjOHXf+Wdst}j zOdaCZqFNnz{Ej-L^(~bW3?AI7pO-GmW7LpxOPFFQpyKro^PY{*tB}XPe6J8{F2Uy5 ztYfdH5|qOs4c2oGFBod`mwD_i$c5#QUZlBm>-AWoyVr*+e$CM?*sJtvVw0BjV%cGj zqaK&@f=*0Vo;cf?ppd5gvPGgs4VFU9)~nSwwIY8Klp5N{3m>P9v!cNI#5V^~=N8r0 z8_$it{&c716z62iA@mwDR&;aQUE`YrT|n(~@TtuWt!Z9q{}v-ez#7=zhU1?~G6)zU z+r?k*q`AB(>pgHh@Wt7(XLP2zPM#-Wp)j2%9Mp8FPEoyf!!4=$@^yZ4xXbwHlj%W^ zh8o_)HB3>mzCwXEv#CcVE>2Bjk#OE8Kh1xcxlw^n1Vc`H+0N}+h5XG)LR-#Z*-4w@ z`T=G1Tn6zjeI}usO7m$>&K{dt-Uy~T8$F&LCqyP2Zk5e3Azu*#U9aTMpV8=aoDpv# zxX?lA4>B@q4>C5U$G&&04I<>Jx772FE_!LJ5{@dlBAX%JmtzljWWQgH(A&CcDN2?# z;5D!`OZ;BUmwrR+w=3oOFrVqi*{j4(EUjM6W)&(GfU2t@eD7d} zRlHYFk$3MrlXVI&F{A2XTw&{;0$#B#_yhM_N( zlc{%1sD=Wh|3@_{)ScidR%#*>Sy*|9=Dvp3FE5B|Sos=pgce9mgKRmNI7MAJ7^$Zi zV|yqrnZZM>?xe5n*rz0*$qL0so%=YeMOvbQXlPs_qoeVUees--M3LV_kgswfeU=N( z<#hMfeI2zXwpWxtVo5k#k6BYPCc3Hq2@p77pJj8$Qpf zq=Z|=TguU-3uGII(0acm3aP%V;dv-W_q}dd{2jVMn+$a1w8OO2c&k&j-#E)a--JHX zK48<@|42m?j@zhvJaQ<)tlPhi%;Ir?T1a+A6ozrQQEW%FJCT#{d$kCTJ5jc;`({!@ z?HQHa+V>%ySXXK{%9}!e(~Vj53-1S=V+wpGAM*@EJ)m!o{>^W(K+&p)`Ew`SF>D}7JFzG6HOmG{F?>(C5p2yI0KI~E$G29SpDs2baUj8Tw zrLi5uopbXI)u7|qO$YkC#Cm*cJ3=1#9h`Lj8=T*tykA%YD#mWLt7YREd~w`kSz=SJ zbWD~F&$e9eW0PkC8z$3(sLt`R&Sa9A*DQqu4D}m!;2}k2+p<)uoV&8m^rHxo#xQGc zm<)rFMAmRz@$4nFbXR|DX{x4JjPz%!z*-$LYEGLA-)e3Us<~LyYa~<5C~eu=DatKw z5LsQ)d}WKwPP;nS5mBd_dxd7-5Yb$T5@y_YW5STp45K~uBK2fBr#_o+dk9)SR8Sbz ze^fEL?e_@)4;Z4^@|rnmu(Rf=4P`x5cQ?l?`j$wCmkZezd=wZ5t%Oj@?Fy~b7lQvFp%naQ&soq2eCg$`5h#FuQauz0w#HoCl9#r!lee$D z5pXLT#&%dpo0CeBM=g}l)(slcg&@qu_@hPK+zGQZ=oQ@t0o;6kp*%FLpw6_SMng^P z#O_b*NWR;zCn&-7m3_XJv1vv{))SUp{m$hv^T}sPx$@eE8|dHN6fbio6(?jOUK5j%3He$u6~zp33+ZvwJk2s)rwt2{v?&wlm2g5cf@G9hGD=Kkja{^ zVp%B_^o0RV(pqoOzeO)dZV;UC4)X}<$%6)ol9qFo_3d1-5#Mwe5wPVpG0qcNj5T?7 zij476VG_DWT_7M-A{_K^>li8ti;xK@F_0?RafFH=o18NCT;l@gxI+10ZBif zOEMxS8?$DMuYzDurT@6a+OPl+-$%vU4A)U_Wl5p!e~@k%?!hN6KC~m>g4btbg1uwB zwTqk1YSZ~F{~+niIN~dZ%jnd0%#g{{*+as5>yCeG0ndR1l;uR|GZ`g#ku4F0(sVdD zil3TTM?*j_nHb15{ESN0l`1rtx_5;Uc@9$-}L#$I8v>w@fJtcjz z3J1NHBzn;FvBsMd=0}G}A}Qsa@|b!r)X@cNrQkM283ib$W;_gjZQgqV7+4wjvPTWF4u2&;f)gU{k&Hyz^leL~3^ zGlNuyJ>wf1CevMIr+O`x9w&a|y}RbeAxTzE1}Tm-44jR`CHcsG*qw#`_4Gu8$b)3T zRn-*P4xnR=AACGEEdvZ(qkupj^r^bv3GpD0c)8`bCmS|pr(L^g4120xiOCArv!eZG zG{hsdY0J!O1?&S9=85zurfHsmAYZ`$`Co05`AOJgB-GB2{I~G`$(r_mU-&n(O8Y^? zUl9c|KOW1K7S@o7%G_K1iG?c^b#z?I-C}xG_9ec6gGt`saIsWSt!!?X==!r(9lg>Y z^+?_3{W*=XltV{!Zf&vp$@j8Ci`1|xeLJt`CtlNr$PR2(H`4&7xw`3^9`O|W_W_rs z4W-2?Jrkn&h^^F=wfibgIC9p@dx{rS za2kk_p1h(09nRbT&aD#vdUh+VE$9{DcSJfGs}}!r7bfkWKe<6@}~Yzv3XODy?K9p6uUns& zU!e=K-+?9vAlmA!X*=ueyw=jaVDB&B89WtmTvGqhQY00#Ia(eA?;Qnr!zGe@=7%n$ z$!H$H7!9CV6t#cUz;WCrSN!;O2oDg`6to<$xj61IO5`y082JdJF#tSk(CseXs1r{S zkid$rsTnEFxOy79`IDhHWXL>K~hHi3wbY{j{flJ5~-%uqQugL0Dv0(I1GFP zLfB%7&v#t4pCK}4=|Bk#J3>$ULa#8Hs(gF`)jFSmtI`DM3MqivDYR;ScgX?i!?Js+ zFnxnD!S*?jz7=2q770EeUE3#zqds%*oMk-O{pj~#8QW%HP@Na^8=wH=fzr^c#{lA) z(~fH)D=CfEmJeQ^y#*7Cy=U&sko6k50tv0pn4c_fgl%CgofXDsi^`Nl~FDEt|8Q` z?gT)w@FV`ktEt(wIh*2Ci(kq5&R(tPev7#q{V>;AwYO05i4&(PNw4YhR^naY;!spH>o z*Ak16;FwMUI$B9^n1R-a2{``(z$u;_A=-u!?}?1@YgM9c5u-dGOKF*p(R<1=9{`vy zfUI-L7IOc<$hB_myIvnL!>Y@I}|ch$OIeg)=^<>LaPH($O324`H8_ZBCpA5*PglEc}u zT!H&HESw|Q@_mS@i~tlwlH=iEX1QFbtSUvqL9_YWR|CWs(CCm)29huP$l_M^hx5YS(4GM0Vi7 z+-4&EarZPrbmLFrJfI1|4N`jhazxj2n7CEyjpITR?*7bnS_-;-BKorR#YoL|~d(SFrG54)^1oL`X zzeNn6$7GyxqM}Xf#9OaxR{h}SMFucO111qVIFS(+J3i~%eXE!+KjVA*&q5t5ww`=x z0<_M^cbw0}KTPV~#eLWXE}uQj?}JX${lpXy5&vdOkrXJl?a@Xuv^c(d-)Thv^jngd zh3ni)2Uc(tom_kgd>N6orijy?R_Ahc04@unRMpt00=G5#mOz?S>93byJx~mZ>8qma z+IMfVGZu>Lo7lBvdQ(8vd}=N3F;tof%oaLeTkCzTz+@?{x$KZm#oCUEKA>_S&vs0R zx(2UUd^`42l^8-Pahl^}>{vApZ3OMz`hJJ|I$2a2@8p4Es6j1OC zRex^g0CKOkOjYxe)Oqyh7jA-o1E`~`+r)bw|9(nTh330r?^j>~#Q|HjG6OsS6E_ty z3Pg0YsJ31Ti!DvWF+)qghI2YGTM8%v%`WLkDM|gZ7t!>{Li;;Or^;)Th6NCP33tq$ zqj^HWe@rI`6NdaKMnygx|CCw$Hxf@n!*Iz*%}LhZBMHgK0#$`P*vMnxgJl6k2cn;g z0RRpZto8$_nL8@*FrC(?e^@;)bV6512FHQTr2#0FQDl4N<8jgz34|D4@~HKH&0+RW z3ym^@EhM>_#1`zgbhp^28y|WxJt=O8{r^0_+S#gWGSXt2SNl_S$9X=O_)cu0V>mCu z?Y^>kIHyMsVDMNDYO)8MDf8rH$>G2t8k-|w^S_t{8Rc+9H95qP{)qod_1~J2C{f43 zNlkyOgw*?HdSeV-sCC9^?>tK-Zu6Mlii9u<9(%sg4?t&)s+wo$rBZA!F!U0lw<3S=$yV}J_Uja z`8;^MZ}H#)wyH6<4F-nDOZacXDIBAG2h~<5wvdt3D~C~a3tGz+)9ekmME`eRg{sZ= zH*f`Lv+a@82pgJ`bO$ab3a^cfN}rj^ z-*|n=p{x+UHdG{W$J!!3YOi%Z*y(E8^}=ydeMHta4%fd^_W8AHp2DumS;rZ+Xq;JM z)9R8{-=Gj$Ua+NTzGPpeOO)xrwz$37YXt?-b60w2T7{k2`Pb~@griA0hV-dN-hHBO z7Gs4U88U`O3_IEVE!rfp2v_xEH)R>2U9ld?BIv&>TA0Tk*xn?6=!24*y-$Iq^7XhT z>1i%;@AmE)OnbCPD?wje8Ei#y#K2hn0fQ4y~iQbH= z8m;(iMV@+++g#DKul{Dd>2%dvuIn?laIL-BsNAyb3DpTX%BHwv-;a8^FV~+%??sx1 zIUsigM^WvLk{nH{xVUiqoY&S4w{$mu#hpZ}lq-AM9sW$Wfl&9hZwsQL!KlCG;NwmV zWOfr>QLQ5FMBwpwluESAN$PFBoR$fpx|8n2`I;VjJnO^(k%h@NQoV4Q6j$TqMiuOD zWJ0z2ecNz`w{6Z&&Gv!yKB|FGK$$nCF;KX9bdRI@#Ta4d6kD1^k3`>%&&G3U!xwur zaz=;4$L_!t+CF+8jU_esgNxi6CDW_wp;sBb>2&CPpDhDc^bD?zQjTf+64Bhb{`y@m zPQ#vtn(WkB@rE zDWkNu5X)=L5w4eRZoUm0P_XOdQi#vKGNyjxEX;Z>BTMhF9LKZt%~;o)5Be z`!4&n^6WX!JKdSn(_F{o;|Om&Oyi*JE*E=yX?OhYyt2WU zSb#bc2_{@;FeSys!%A8=l-VNFBN2Hvi8A`kBlR&nFr}HvlcmqRis@j_$e237@1S`; z79U?w$Cg=DHiWM6PqAHLN9?&1bFLxFbH{Urv|@JAOlYPZchQI;Ts$Fc#6w+ru4Xsqi zh6q8n^$>Pk{xc{Z-pjHzygX$`8M@Bh#?zJX)r_&z(L(h}77WOX?bUBU#A2n4^<&!t z3PDV}&;@37sD%uGy2W4;uyf1)v{=Q=Oh#T)YHW2RZh`bkwo$Z~HkmzaOJ@5{)k|oA z4qm_Q`Bq2UdXgYTIYasFPGC{(_UNUgeyR*!<(a`@tX1FRJTZ7NOt(VDC&?L#ltzC1 z^u{kaMC?(AeofCTiJXEibbTO)yq=+KyLHX`U>YzV*xb?a_86`2E_tl1(`DSlQyjV|PTZyu-(wVzQT;{R_Y!XUKRdQ#my&RCYTY-~= zJhQH*Fs)i9emj17=GC}4fj-Mj&ZZL1KpaeJlc($!;{Fu0<`af^c4Ym_8g#j`8k<_5 z&LRjQatnvscc~wwl`0mrVYYAkpHHSTf1J0o)s!H8Slk+-#ncz&!ZAHt-={od85-Nj zdrded!RD3f$-{d_qX<~fMFMR54`eS>9%+AQw^@NlDS8rPeJ!1RgnxqW* zGc^{JZ=cM^!!at3%R*RR485V<^Lu_5r=8t^!zpQVWwFy;sWMwf2J5`_MguU+KI1Z- zENXc=Wb6U1q#+fl2|;`mr%UyV;!t{(sY({vyIX(;{L692ixB~TZEa~+(7e2ZPcZ$d zb!mjsKkvLJUHxT)}bqe-clCP_Jy1AGmYXFsc+D-})U7DZX;_VbpSJ%;}p zKrbo}dBeHOIeRk+bMo|&m%A$K%#}T+gxO*2Rw_Z8<>&fP#8aY8@0fVm+6qpxWQiJO z_<6E4Fa}hCkF16Gmp0q6>{cp6MqYYGcgXXxtQ=a?6jWg^^UnlN{&7cv2pt*dbt#^KXe=F)0H z*+KdS-Vrj{k~SWeJN?lB0C|VpRaZZGrZMaHWBs=d6Sc-_-8x))o37LcVleJ6H1Y%o zG6cn1-nLEed}Aa;-@z6W;Y<0cL+>L}7jgoAZ*&|Z0K`;*Y?zQEh3yohq1g>LEz9is zL#-ISWQ8*!xk;2qPhz&6ZyFu6I<_ZWe&Fw%B*9!&3+suStrhmtR=0AvcD7h)ZkifuQpeP%q( z^7>;cr3zs=9Z@jI7`sX4H_8o|VQJ+O)?|6)_xNd?*!FY1Al|c<(}@X?efTC%@iu0V z_m&`9wK}9;t~XWd%!9tc!JzXWq)&0o{v|5++bOmhETb;sLa~J%ra%pX{6P`S9Io#Wn)?QhuS#jb)=dvJbJ}IsiU7MtE7C$}Auy(kP)_gq_@if7uy{!BPQr+? zk&$k8){PrUPEbzoEVDrT5G?E8Zz#d~YJqyOD51~3?CClwi?B@d0KUQI%^UYuA!>UN z;wkbLocG45o#FS?D^=1R__vIAvw-Aycy9zI&folNp_F?VF!!P|pcuP31ebQ1`_&UI z%W1Q+Tf6UUrk9JPW_f_bZ;o(NHb3HZ31T^4e48T0{B?zFMEO5f#S!p-;8TVHf&Uae-DNHUsDBlJ8|JP)-V z+G6l2QHtpGDu0SZg#5LtmhToYXnq&B?cB;1GyntaUbJrr$g^M76@6S=TXkiT;@kbT zKUs*|M_VQe0Zeg;PrqO6*75-4pj$tGG{et*x;NX#!5^f!iNaZZ`UEDH?z#~Zobc~w z`~{l5b-$VkXkYE+n1_9Mw=NOEa4C9g}}%XYWi?C`r`VRc65Awk+))1?PMIrW%n!;bbm8~ zca8v2F8K$k{^$ywQPJ8IcZ!iY>lo{N59-0ynhTCcghjn?7l3DU#4qVA9#g(M#d)UA zqj*%(eI_vX!N>yx<80&S&VO#F9w_|+_P++%3T{7_kf~h8U3{K0LHS?jv-D(uZz>xw zXda1Y04KzOElK-kpiO&(u(JkznkPKyt-_mS$7lH<+JPTbXn`0$uXRVz(Kvw4CSAks zu0Q$F03JaRFLIdwclq!`r@1v+YCipP_fiPfEj0GhlncSJO;H8PjG97Z)g@VBA1%}B3;!Y`27wM3 z5uT2aAE36VFS~tsKhaHlo9LzmXp?WjHI@7Z6r`yT*mBClWQo50=UHKERW~~W2*WJG z-%6qQ-$NiFQ437(rLN==8Fh9Drt2b*3H`5?lb8`S|9`xjuw#C>f+YggI)lb7hiv#3 zb2D&)cHIrIRFDHo{!ZXcO)`2?Qdv&$5*f(xywn0KP2$CeKwE$>__02OW^S@;$kC#! zx!eUC;rW(NnmI{61Rp}snMn}VTY0cBvxc~SxnXOIYX~nt7!rD9dJZ}c9TB6_*T5E5 zcFS_C3*zuh&xICe4?%M|YNw>PWB+;~E6)vEADp}ZtzXSZsP_Q#1 zk%6J3vn2PsiKQ`Yw>%ng>u<2yFNFU%)$g${DZbTAdI0&(BUxl)m~8cb0{IRBB5*rE z(q(O30Sw*jhKp+ua9Dwem?XxL=$-oqz=2R&vHn=DY-wN8(|i*)TTp1^w81B>F~98_ zN7DUUtGOfT<6WbV5$NkqMO{P1B1`Mxe)h<`qkyxm)|37tX!=GRqDzv1uJSA>_kMW$ z{eF1uem40-p0QO2_S83JPyh$vGnkV33|$78M!>R0mVB$DnKb^vVbsRseFP)P7C(vh z9YaVa?cudA4xYQW@V8IE(g@5Ka`F5YIt3|a-H6I%3Y6=VaxRiKJte5j-TOW8!es(Q zJRYs2Fy2qtaN~`P(Zl24s?#8qnvbps_?0SrBhzMp&cYm0rUOIu*0(<0NjN_?$y*WP z=Sqm!{>#0Q=^(!F{Y_7Ax_(g(v7amFc9DMW>|2{82k9WYFH!aM!Q#t|8cc-*hlErA@*fbaKwbtjx) z2w^BI9ugf6vM6iDXuCxj==Tml`0_bZfH%LSQGDBL?d6o}}> zFHtzJZ9kQ3WM`DP@$FN zV-m4lyKJbtHQrPd8n}6L@#!m0g@EQ^D0U?pqgSr=S+kloDa8kpE8&{FbWq&!}$NGdh58TqP6`S z6+xt=LqNJyx)lNG9=cOfh6V}gMx`48>F)0C?(PneF5kV!bI$L1|MP>)FtherYwva4 z-}|~ungBceXEX$b$9})9k2l{>2xqC}aN0fAo5p=m*XvjemDO%#6FEl8k`zQaJ>f6t z*jI1-#U#TJ=sd%aE}$&W6Ih~*sE3?`*`V4b+?KwQ?4iy1(Ul2RkyK%3sBKl zIR>^AQ4L|6rKLxr3yrcS^Jaeo;JTBbiqCsw*-TYl^h%sHxO`aa_9c*hy}fy#ev&G7 zP?2XOlas9(=3vwsIB{i5R`E=OW5Jbg)Gd*y`zkW0A+tSp;6YK%ao#2BFI?1>#Nuv_ z=ARuZYw_qyc2x_!$c*y4D$&rHRue<|1kLDjwz{G(lZ&Yv zsVf@)-Q#}joa~UjUYLE7Gd-fKkKv7QSb}2A%B(GLK;7$XG_>;i@Q;l{{|!C2vr~(l zpy@E5Qqz1vFyK))Qd3@g@kE~?I<&8Tx~abtIsY)y8M1{BC0m-xc#|j}%JhKHQIo=T z@SfnQxVo?Lv;>H2sVTj#dK3m+Q=+9Vj_9$tS-rTwjX&ZKmiBd0bDAa&T4TQ{N7Kv`&FOgF(Z?{8)4VQ9GXmvA!4_E zpvZ^yL2}(LUwQHm&6mSU#8=LZxO{mQ_fC!u#|#cRBPEB^0AyXCE03H8*B;KmME333 z%$AXPj@uUp3|Nsb{nxQEF$unA(33nlv&@t}hYzo^cq91}jLvc`5=-1TI`yhbA`^4- zc$7WPO6op!&s;eH2Gg3Dp3rIFL09$=^_{UiIqljlLy*5V5^uW2m-6mCxm&MhEx{KY z(-vxIm4r)3Yt9;+`}aZWd5e2jnk99@hrWA_ow=9QJI9q6KQtm9R9()(hE41zJVR@b zQ*70D`%Xp~IgSIW{=#X8ypSH`aYsw3H#G+Qg-O)&=`#|4%L<%YLLS3)JfEXC6zv@@ zv~QW=kM+Qpxm{{N*+#4!Ykid+@?&Q6(&S~_gI^(JHoVdaI(+ZS(EhGq^Sx>EX4fgB z6_nxi;k-&^zDgC-oZ83z1}3`Ny21n`h{_aQVXTnkUi0B)BEOiXmn?*#5u(@BaKC}_ z(jufZyI;+NoyAgpuX%5Lk-TGq5)YF-fX0@YoRdcluQO&0UbKw*Q1_kWb+PRhb$e_U zmCmtEn1gO5kvZg6MVwFIXZf$a5c=2>zr}87^h)tM64!bRmV-*9+K#e$PtrG8c$DpT zlcIm&#@K)n=a`7H`nxCIMp?<$_ObjC#tLa^`?-Sa2P?*(Cm$lI3 z6Q}XLqXV1hzK*&V9tqMP0rs{6+{MiIver^QIJ8YVTR;kGJ$9r9EfauvoVwCyG`q63rfZ;+@!o!txWusm+m{;W`-1@V{LZt)iK{TopOGD zUe&>=ljN15G@fr;QHN8{pf)89Ew)K!wwj#|ws?E>kw~?^&L2ulTquoaF1zx^B!oGs zWQ@Bghup^8QjTI+xW<2H91p4E1Jxt9n|mShC5`X-S-(E(sG5)D^Up|-zYCA zlMO)R21DX99^w+|D}-fwmasZj*OZ^BkeEaea7weURt1oAly!Kjnnrcu@DbCS+8^9< z)+;y1Uow~%D!h`gqdLgpz0?fy#wo_HeJG5fo*K%@xTb&*svg&0jf1w!1Gn^GvDt>H zm9^bIwWPp~LoI-uaE1S@AV0c9PT=apMzFFKQjc!x0xX?MquDwPU=sL z?r1zt`;dBUF1XXDL+Fd--{wfGpByZXne4V`HUae=P1z3zBbeEkC|e2XS?H_|njZ)V zA~rTY%$Wg~7Ec6<2Ti3K4&*k7{<95*HOf52k3cPqO;+f4JSskA;1Eb%=N3>sHz(cI zWZszm-3~?J)7r683G#l+zWf(X%*`U;rEx0}`9_nFQ5OA1_vMeqNv{aX(q|l~cFV zm{(fAh_Dr>Vd09)Yp&<#i&jd{agv4G;KoO|SMVWFu4)p=$<9{kf@3jy-naq=ZxDKW8%7`52b6LitYY z33}euNU3O<$%Iuu{CXe^V7KjlhgPyPmgeYy7$2n&vD|-sZE=76CEWqg{ z0(Ro$Q0``gkT%q7JnlmzSR>}?bb{6iUpUk$~W= z{5TS6;J^LAa1QZB5D;0{*ScXp>$lggcwFh(+ybvoJ$Nqr7bRrizli2{*8QQ}n>d5m zzZntgr~~#hrvL*LJX^rb0Ob0BIVz*?y^M^41`JDqSRu2W_>nZm7%ot=(ZIeo2l4LC zn7|nR{cT2pJfL}66g7BL;?%4m27%lBBBf%ata1Z{343AELoayLCI2T5RRW%)gGkx~ zS$`Ce1hYr(t?X&+eA8*mQ;$V0vT?44Mv5zAdluyNexsM=)u~&W5AJn*yenzYXe5dM z8WfDiCl@afTDMt<47csfD0r#>Jsynh^f zTAc>uM)_XuO1kwg9Hp)ufJZZTrdeybPePL$?zgtLl$ThZ-G4uh^L~^79Y|ZjosX#v zr{P=l2CwtYz)=5=^GEMTy-NzS^3$f18)5*crGQCVHP1(!sx__~GlLc{g!%2GoEtKM zKf!W`1DmO!s1BTZP0|DXw~v#7;K3V>;5kpc8)mVlrAFp(q4@#EvGw)PAj!K)bdMN& zVth;O#PH^u!WQKFIC77b1+}feaK}Tq;MJ0-{krbP)=4BTJER6^PCG2z3?MJLQ9u0` z?j<1S72>T8UgDPG8gB?^4^Z3*#0Yi~Of}gNck$_HP5gyB%~+N2-=$N)H?iKu{*REY z_7^U5BI!PFQ}}@-d1XtUd{pmuvc#X$WJSH|gsl~|kwsunt9k6Gy#oZ|hj6%2IH9x8 z-b3<4YKKC&o*O3*Etkaqal`DyAbPEHq5`v^_|MCF)XcP3=6NO;4>Xv#S4tc40x;RE z;)y;BFKF;&%)V{|j5+sLRegRC+?1D{bb^HC(lHpX7HNOft zDvb{Gzi3>rkm&qpM;h@e`fxV5jJ#)|-(H;7ti)BX0Grpuo0lnAOt zp-Iye^0EeMGGsL#+~X5Nz)lDP)yXUuE^57Lk1Q7q8~4)Q7;Sle8YU%HI$A-YYwvM- z<~DKu9b?Z33+|zYJH|r2=;=*@Y?_5-XZYe2CboV7v{VJ zv*nlt44@Uj-uCARkFl_osxvgDpOUqz z&5H||4ZORBzHIk8LT^ulq4Yvp1#N9!Sg~=z$9kP%j0KAkT_hwEfxkIOlBtX7WO|!x zEzN!f5aVkt^iY6NXqhS7#lp|PNf(}0pRyI0vv=?p&LC8eH3X_!bOF%ud{>#Ez7-0n zv3&tA#3YiGNM5Vf;9fKL4>#?4GXOsxzH+?QfVR_Gde-S+n;6&r;gR|`zUn0%YU?+c zq=C%FTYm&!zDNvgPNOKcAWZ|}6q5f1y)lvw6R{Df>(q_QBx_tv2=W_epaJ_CDB06| zC9F|2_)$yDj9rIK(^av6rVWR6ot|`wlB}qG@$QLU`*pSVQC5AN>IT;fIJ#@Y7HjsA zvNr9HNL^LS=i0#59|S6X!9FzNDk=2YMEkihl&TCc;8GjtVFke zF`&l*^!V;w4HRma<7Mjt%EU(bLk3OPt zW4@#TcxI&i+iXLu)Yb}qyN9=y(cJsaZ56%tI0R7T@;`+WYg+q{A7x{lR3JX(f7Cv! z3!!Vs>V!+3AK88>Nu%NW`l?ETH_{f5M&P5rC#y!E`=ggM6R6O?2IlM#jxt0zPjt=q zoB{lLtOh)<#4{ZuCqE_#qE?n2K>6Nh@z}?j$XA3Wt(~a^4}N;MmH6|roh_`P#Y8=6 zLr%2tVe*7xCP5jF*SyKmJ*ExOmFMi$hH_R>#Iq*tb%)F>8C*e6AH@ikTi_Wrc&fon z0(*@oWF@Xw4EEqmUk>bfUo`rc>z-!g%RTGyHy|Kr8VNU>GXpy#;y`^muf}dy$9+tO4h#(9+A4|XXD-4N0sFbxC6iGzzRM-y>IC_R7Fklav00u6 zThJ*y|DRz51jJ)1s=NJ1SzmpgxL>h-7>S$|6^{jax+T|xARhyrS)$S=&lhgf5i&&d z?es-2HY+in(G!oUz6Xvaj&bKQM8DlcC3-hPqj=-Y59k^gd_+5Az}ryA2W5LQ2$mlO ze!4j>>B*0D%@@n%zw7syARh@K+E<&7bal^oe!2z=e_XPJI6_o9MVr~CHc{bq==MDf zjYFbhl=2moVrCLdz`B^X#LrIE6>O7VY(I2szs00g9vcOOd~nh9d6;bbpy zKnVCWN;i};{=!jDET_j{Abk4Dq8$A6o6}7F;zw_E=bC2D&cghHdAs?~&%gb6%jv}A z8E0|NEX#y9DClCb)hvK+Gd)r#-=ac?Wv>qkH3C$v-Mjm>YTwj2?NA)B%U3JzJr z8rj_07YObva%K}+F&03e5J7$g(WDOeXzyDU-kd;1|? zX?EF(E`mk(RJ#!Lw)SFU%Zw>mDvV6K@f~6ptQtHBgQnkgF>QK4GJ6aX8l6T#2>N_4 z(vYFd;Q-133v z8MvJbK_LP4r|-J9`Kx&gKH#B!Zb=GTV(5U ztn4$k8bN|+fsJu=MKxbk)vjyyCdG}(HvhuGi{(i7U3fckN_S}h@UJfWt3}t}jiPK( z97%7YHW8JOW#o?G6T;2twkGKv_%9;A$a-Yr z4!>n@p*bBiM5nmrAlR5w$K5oGXME&jiTw4Un|bgct5A*;kNp|)q>SPz@22%>6+EF~ zg^#1cG**#00_7|9UVnyL(R535dB%FNN$PCX;#!<6mZ{B8QkoiR$*pWvc!31%7ybQR z=S5hkM?My&hYs*ryP7L+hlk@V4t3aHTS$IxaQzgNrOr##;aREuJNb>CL1RqxXjWG7 zRcu6TDj{ZUB$}a5`gK~Wk6=Gl zuKl}HSEef=QS?oKDqRQ9h8tyGejHENl~6*zu+pD%jtN<;WhvYLWl0`4A#dKC@3Wk4 zye8X3PV`>iNaQ}|7U>7}Oun?5bmd^uXA(iw?|=q! z)(Q@>jtZoZQcs@s?r}JmG^eTP7FpJGh*R~}?%wanTl3Pw@e}8Pi40sttf{5Laf`(B zm4VsPmKT>OYyN&)k`)5UlJ;F#{8Pi6zbap6>?bt5v9@>m^U+Mid~rO5TdpaQ<5iYO zTxhqf)FE@|erL#ad^8{F$UYd7la?z^hu30Vk_9N~mJ?R1nh zaw?woP_R-oW#m*&>Jl07M@*d|gtQe*b$RO#v67DIbUsok%v;5Kvv`b(4c;>wi~>?w z(l*5Nt5u@39q-3gMwjU^&z7L1nCgtdPYWu?6YbgA9LEAM#>e2t{qc_KABNpJBh^IK zJO)=A@~y+<5-mWHEongqt&K3165aN{U&`>ni# z#Y)icyZAyEijoSEDQU=fo#i1+D=PFP0m+S9MiF6z@?x928U3-_g_)=&f>G6Hx8_Mp ze`bPMe|WwJ-m^@S^3L(3@^;$gEdK`kJMHX*I^2Av=|7Zt$+)wAI$~_-co`g4-;~fb z2n_rN7M4R(S(NHjUT)twM22$|vGZZ;Y!8@clktY#C-pqlS#XwGA+li!lHB0dJ3aY+ zB17*U;EZrGW@uz(A%_j6=B#x!=bes}=Iz=!)skhu%@I+NR~->4jqxe%M@G|RHO z8gs<1F7Yq39OH*GVD>U&UkYg#R)BL~qt4!<)>i2n5D&EX)Ru;@mb6Sb*KvyKNTpcH zC+(D`aEP5i8KS%81b$OLSY?9lvG-9hl)BHS9n)@RR;6(89b!U*!Enkruf@_=wKdO< z($hfaRDR^V!z0<43aJIJtZSWLjjUh0%RNvktf_`fjks;5AsT_G+|lL-a*A zUp@~MQAUPFo<)d-ge{*$YA4E!CVb@;{F0CPT&jpNWuQ-oKNN?cX@#~-nTM(D1wc-7 zpI$wEv#H1UMl4!4m%y3FVMn1rvJn}uSN1};>ymaMpOWR3n>rllcydD^W%^B^0PxoC z`_*{yKtIJ?$TumgEEjsevs$Ojy;?1L^XaT1m`D0Ni?^=B{mZ(hK|K2^{cPP20tW{6 zSI^51IfbhsS59ROlYsy9%lq^5VV|Q}2{?_1*KpNS9;Ev6=Wpu+gG%JIDEKQygVqa4;|UWJN|7&6C6)^5Mu)Cm>#1deKc*FeisL(>4-cv2JHLST(rBni!< z&xgP@_(4FMt&M(NUiw7>-*ym zzpy`X0+U!yhm723W}u-c%qqe(MogZn>KtY|nI!VwX|?0d<33zYs!?HOrF{ql(fDDQ zBFq(4v@pk??gm%E==D~UxJ}-z0J2xx00@C{!VdJXgSN{3PpxFpbv~=rvRTjPJ=bx{ zvT6fR!q*LYc`#~^0cJ3Y*qS0Nrpls1=tM}QxnPnC<9`4OQ9RS%0U^7|(gy|CGb&wuabGm2n zhS7pA)1tLWj98lM7+3WCZT`Zg(`wd~Y=0`P@Cu~@5mc)4KbB1m$vE=4gX5z_B~fdhmt6^? zq&7FG_X_;zRnKdDRn6lm6299bvn!@gWJ!JNweC9~kV~Y8pqoxVY;MIKOBRKWud7|B zUfg#*(lmLozlX!QH>;`tF58X&=HljeJSad7gH?%mu)qFW=JBe!m;5CHK%$a}3 zf8_DHOb(#5%#PXwz(w}2gd@1S%Uc?7pfcd64G+^5HvyCso2Pca76~>tcuF{DzAG5w zW6Z4L$o!uI6`(L_yCUGeen1Ox={Y;enUR5!cpy`FyxpYLd*x`{LhtIgj)*b1=c&sI z0p@;DAYP7seI%=BzQBPufISapwSr!Qz$r(uBC-ez!FVi zL^B6m!M`%Yf9)~;pUDZ*zyC-CmIg0qxPkz4^~MF~BG%b!)Wbu0rvHJ_oU@=0FL;Ee zyAN18Uy+ul0{;(0`oeVIB9}ttKH-a&wqAK3@ac$Q>m(jlpIOHgZU;J! zgMQb`@DN)d76e4{>l=t!s+bx?o)Vf7&#_dKHkvcU4xyAONCN z#fc6~doadbByglTO(*sXxF5hIqOX}jUS$7@Z^q!HmWER>^fMH=hWyXv7S`m@nl?ER z@%mEuWdruX7d={Bkij>GO`*h9`_Ji&&gvV1oS+#oAO?vZg2M_)k`@x!&+p< z!u%Eaw_M=2CY<;pw?dKltg+|09^HULZSmq~z`)LTXI&n4s&rGVZ7hY|D_uB7cH&(OWLhf9|-mOuJX zi;ojn<^khfK}m*`i)GY7KNI*piWz5O6Lu2j z^%F|3eLZ9fE?7cfr6IE@sof&t?t1D7li>$1HL!nK8=-^gd0hXr?pNRiH1HuoNV;ACxw>s`ZGR z4(xK(Fbp>i&MP>OSFmEh)S^)hgT%EXPAIzq=8B(n`RTM}V0DjFs+F%7#mDVOe;3Pec#nvN<|VZ42U6CQr;; zc-+n2(-*%b{PE*zmOjswrOoTcsNR#R$&35|ly_n5woe3^H?e;OzDr-k7m$=S@n6@9 zJ7oe#oEN;4A$1}3*f4VosmyBD2yZ&|?ocw8@HH$ z66&$u?Kk^JvDH%4N7cV@nAT7`ej4l#Si_zW7*x*+klzDsP(Dn8QUa4W)wUQvGhF@^ zp-|4^5un_sL&Fc2NI9Rrdv-3Ez%%b_SBj7Nb$|+7rp}h#HA3PQ-vP9i-sOx!g!%0X zG_FCHv+j%-^#A^m4_rZB@D^y4aP+%|mp$TMC%m$HbM6bU3?;ygJ)sxuv zDQ|kK!CerJ2jBJ=>3pa9O`G5Et~kJ{Y!imdvwsKHS_Wv89$4VEt&teH`L@DrN|>y6 z;d5#zTX$3!q1DV3OFU?iqyLnRm~d{^N>bv2*?M%o+#-6F_M1mJHj`ehsnb}&he?Y|Ac-?(e3}jb;+TUt zdV+bTTS}A|Dr5o9a;frL_wd*gXWI{-Xn42QHzx5TqIUFBAaaSSI96RJ7Ggl1Yjf%4 zp~?l1;5F=V<*kckJDzPPCX$oT5Etp09GiV|fSw0nAP05achK|F(H9xwQW+@VTC~!v zJz@@->MI&M9ImoYE08hRfcI$og_NO*{7aTm@8^vKrtD8<;x?nW{LCMDnM%0{DZ zBf};200SX_VhGm1{#huVCdd13<|`ywrZscZpgp4?SL4pI$PcX1pvoWE zZ9^+?vqPp8k%1}P0>{3w_93Y)IqpVNTgU#w(hj>rcNlxHOpHhJ`<0IhG z?I#8ZLCDUY(w`)wzYW1}!)Lh?3|k~&ZygM7N-OQ>F=C}?>bga1YwnG13@Ovy)M?%O zXT?3Xbk2ND)(wd#3|xF1m2)F_m&42ZCyuT0m8$o-K?eY&op}o#}P(D-;8w^=oV%UkX#L z5Bo?0B}S|pslw7!lAmO)4_pcJLeruqQs$2v$0x?q5^$r`jwnCymJOm2^!Mn{R$(Lv zbe**@KTPxExSG4+j^oh9xLs(57pHJ6UM5Ej*G52|0bnBUdb$_EutF#}Ym7V|;D# zExkpiC|7FEp|TFvt<9WsYEGJRsV}g_Y#c)dX=HFmJ3rvdB5w^c;wbFOX-`BO`6NSi zOjUOsa}1r#=gKMMDI8UHEsja#vz671mvKJ0+3rwvirmux9RTOk3-9+A%iJo%>ETXT z!W^l%bNJtsX=N3%XuFR!{W{4{N>ww89?_Jd&*s9#(EmWvBl}0|1Ad5#&}Hw|lF9Rw z`O$|P&?yLr_HM9|RyX2CO!NiX3YZxj>OZfCqs4JEu4~30U{ay5X`Ek|nEVXE`lg|^ z0}%0CRX6}gV_Kg(;M|9h-bPNKM`QF3id7=3`n`L+ShX7{B;`F%BVw6wSSsjUY(%MSf z#ir_B)=;1kf3aJ($9-s`Jhtkd!-M3YMT5i2zWfWU^vqEb<)YTmyg<)?!d)RcGL_?30uLEw&-l? zADrZ$u3R`ErE58acf^9FtSvA z$Z%LyKE!vJ<4L(>evn)o=A_>-bBpsF(&XU&^_}>DzHi=|levf3xg;hAH1H1@f~$eo za9nQdI|ibLRp_lb5*v(DU`Nv)F&5Qcs$g>DOJS`)P^_`@-5o~@daz3;z=w7IwruJf za|OZ^Zz1c9@*zWiCqihOso40;bx!%j6$eCARJzgI0GYq6GP{tRd`E3ygJ`oNMY0hK zuw0Xmtla?htWj3~mMq`&d;4T*v+W(7nOYtHNqxml>gXS>2xbs?*t zk?NGyv;Y91EpkL=kQ1PK~;js-YV*b_Y%xVkVw^wdfXxaSMk*pm3ah zQ=I(xt1)ey*v7PZI0bKfiPOx|RV=lhK z6#332mQy)4&s@h2B3e|D8uu$$0GERGJ-kx6*=TH+y4b6(<3qOx+WN=|w*vz$ouuwK zVA|T2I4{|KX3W;U-J=h-ZOle~fgq?W9-ZDKF31%?gGO~UBzDPgZz&I1ydBKbQm1KH zt;Hn8FT?!tEVU#BCz$$IewIg4{-#*vsp1Y*gn!0SEzVrtC(q`u?_d0+5c#Oez9S0n za|}Kzw}RL)B|;79@)n2z;ynR11emTB2_)Lk`t*MqpY9qdJmv>G>+#=BJd1q}t`srv!6XO))U33WgIiS+HrV z^@8PW+t(2Q?l^78FK2Wy1o>}5ku*R(v-<_1Q98K0T8{$ZMd^3j1>g}4mqg{HAVHs{ z{W-n`$y}&oBFuj_0z@)bOW{XpDPIm4m^}x&3BQ9!*fko2$-U+&tO%aZb?%ou`G;U{ zFe+TxS5sarOB)M#{k6p}-}C)rzWm^`_KN;;v%4sP_p18r4RJpZ!9H6IXbB%--!oA* zPs;5ErW6YGmL3_#K=tz%j;Ij(Tk2jUT{ zcrWi=r(X32I?nIhg}!)$$@%6BT^DMPN{yWR8*)JaxqIF;02nnKd-a|;s@AGSHnSOM-^wlE6dj0s91mfOoej=s8Se$QN=~G$9 z^HcKREETlL1Lkqxgm`Q5}cd^=*L0(};=|CXdpHBVAE>I)hm zPKp*n{9|6Lr7s`tsP6N|J!#dqjS{0bk(_SLL*&<<%e^5+kOD30hKUV{(MxKY9qzH^U+!^ zY)vPfUnRA2xeM7M8i32Q6Xc_69?r5|Ew&fKoOu1 zbQ&4>fnoF@RyP$vI;~<%y_2^r1p}F3OC%Y1HL&@=UBoa>|A)uH4t>eTyQdkw|AD6c z;2~Xf48#|mbYDnrJ)9s{4lau9rNE_VUw{2~QHjocepbqZ+`=s86G4cbAd0 zZa3%&KTCT}%ceX$Z!YD_@0^hSnYuGRH0i$6ZFPj7RS3QU?#mT*KVp-{Cc*Il5nFIS z*!oJHD&q65#K+wt7x?hQgfG+g@8A5U31D!3Lrad3ir)Sew%Fd{g5Cw~h_zGSx^MiS z^2jk2UuArSx%I#VA*Oaz?Q@XBUJrOw0b#R$`XWrQCdbW8G&5)!PbIq#guqz+@5i5J z8tZ{6#-si0ktIc}*<-g5ChVy=BX?d=G{JhRwUKSREf!}N+{1SSfEYj(m{n{rGI6nG zAcX{_h!t;HRlwjyDo?q_UA-O9lK!Fo&gDMwiD{jn;hRS>o?-19jS7J&*gO}lhmnt% z`fG)ZSGa)C(TVn^lq6K&36!8@A)XiIBK#zaEipFMC!gMCEbB3G(IHy!_#WGT- z>`v|tv2ZoLOf!?7P>cFz=+g3?b^meIIIA1Y<^z#t@`*Pj8tnDwbe8VCYS~l+J_;Vn zr}q=8I3_NJPY(Rwlek_gmNzn-xd#F1j?NordcX#gOyjqZj<6!MOTq1Cc-b)NItKR1 z{9DSa|2j{Sp6le_3lO|1IbMgof*zg=u_dmpffnP*BZc+vX}2ls&DuY>phb9@nokPg zJOS>fYXldiH4#f64F)3e0 zK|A7P@R<&#o$2);<*rYAzItJU&i4KCHN7hE2i_tA`{LXFyrgNN7OM2~bhy*@=R}-d zN=K0btW`AM#66p@>vORjCNi?NXG+@efJQlT772nM%;NKv^$mIOB+i>2GjIqrWBQtn zeS1{2YHB88>bY|cM~Xx=8v5+33c( znf)-)c0tyNp~RI8M0}x>NzR5PW5*~cNKn#0-w!x*2ylcDC@zLfd3l$rdE;QSu4k^U zsct&?w}}LK`X`D&;@y$u{hy1=*US>p^hwRb3)j^!aXkXj{MoN=0_2z8j4{!2Dydim zJ-qv9%VmlKL!>ILj6;D^=kHc)-%&Bl$HY9g=Abi4uOkp%4<)&Cu}zZcsEn6F1XHiu z%%YF4KH;$bNC`^a){vllr581$v!rNJXf)y5LWYhHO~&&nyk+NJVR1Ad=oGp-t?=p3 z%hJ#PBKX^fIiTvW(HEYNA;`OL_pD|(AABs(O5be>)Edy4U8+7&FvI(`fu>Z$T>Bh~ zfh}~mnddMG3T=rmCZoD{$Bpo^5)ct%A_%Pl)i6de2Ho8qRD8hBTT&yu9NxaOSkL}d zA0k?ah>OU%3Djf!qJss2O{6P`sH53HY8aV5i;Dh4-bvM1-^}p3ntwTq@c)9Y4RU?s zk1@(xR5@8Zo8_ZJ`Wb+mcvoC1D&$fs*P)B)Q;@t9hG!tPLRA1we2G7x%D&3~hPHRU z5z6>nhSUciFLylA0;f~dP;=qv&V9A%*Kb;|n^o>p6Ja2Hzqs5b3-5T8rq2sof19w> zxyR5aBiL~IogR?wnJV>yr((Fax-eac%DsAnf&vX*uwwL{NmPH+IV3Pg1CY;#FcB2r zYm5F`=)K4&&j9!8PwQ$BZtAGXk}vjuLc@9yDy%)DeZ+7~94{Sa@^(mS<*UyRpQBI{ zw0n9^f4_}(eZ4kh1OybI+>|&ua+?oL79@8qdoA;$ngCzWTC}r1uSq%(122b-cO!z6 zi74aA>{rc*k#G|V@7DT-;J zr9|73v6em@LNrc6-D;w4ICF~VK-oVMM&<-}pCf-3=WE$jCemk0X{j+ch79&n$e=y9 zL{X0jT*=5DXeZj?cKZ?y`7e!XZ2_6#W_|Q9a9ve4Swpi=Y7!ilSj7ks)YR_}m_Zdt za9~Vdl&d!w4%~mY5ri)pKv&bas9LlMQ5O|ATv)RCsvYZp__F9df`Qs?G=ILX@=QsB zhC5w+3wx35U_Xm|i1DBnA$#-NV(-l?Q!T;;qPbBt{B+j{!@qDQufWk|K@_lsR?d}w zagMU5AMI*C%kLj|7H}{X%Mshl;o&%)NUxf{OLP_P=Aj7x;2Yh@{DM;GEnaL@(WYwa zpdi8GrEwZ79um#sx5D5|G0U+87f<_--iG!Y_WkrcB1#K z@F7p1m_N)T_Rf719LEw#NP7^ zpp3jp!zPO3fU2yU1C(i=`KL>r_u2lQc+3QjM^q}nTc>9y8d!RWx}HR-KSNnsbV`Hf zuZPuHN~iMospnZwaL=dlbU7wiB+(n{<_3-V{FxRHBUyZVuwd?%eZ|M(&-b}Owku9J z4~t+eHjUIdBLzDP%hz@}Ayg_p;N+}>hb4Iogh|uf@EdF~fY`?h8c+heG z4$&kLrE8*9DX*4)ac!*yAtr>@GYy3#W!1)f0Oij_#R=>UU`Fo6L0{>a&>CXHRAueaF1J zH5KO_^4u!pvY7EMDnqjI3Rp6dxT~1xz6kNvRxQg?KvCkKr72BlV{}fusR$;!H_nn} zj*bhBcwI@DD@CX#U~PCYyeuS9QjzVM6;dbv7cMX$Z}L+P67);TwPWFTBvRS1bHB<| zGlT(d?XfP6k!F02I{o@cDGZZ1B>nxAfe-WI(MipY;&E|`mCcD(Vv0S2VLkdDu|4=!aGqzkChg20Ywy0~l(?5Q#rCSq`d6fzZb2$S@vy(l)T{kw za>g8wG$tMyhG@(>qmYVJb(0u39;NIUSvuOF7OnB~jo;ps!_&0wQpmigmi-l0y1ELx+I0bf<`PN;e2N#L!&=Qc?oK(4Eo^()jH?9?yH$_lL{1fSK9(%zl2)bzk?% zk1F<<;n;p-f)|+ky1D6W3W4zh-hFt^k_Mvsb?z~_$&=#=^E8{!HQD&`N~-4b(Nr_c z+*sX~lRKtw0XTg&<#_FQxifd?-V=p}@ntR_h zOvG|$dUSoCw=X>bR}%XAH&z1I+#^UDjIVf}e;)6*u6a(Stg&K> zefH|{#r%qF#=vThn$?sZl*^%>wG1OcOnLR;$Z^U2v^XPz>I?gTz$ltc3uV^x#Y35A zWvto$z&zeorPF!zOi{z5rBZ`$rHtd2-X2U3GOBK?y*#WPbD;v)-5)Mhv{IBepLEhQ z%9E=%Cbgctj+LQ%D6W0$-5tmGZ^}a%90M}+f-0U>sHRbdEm8F|*tE-ctm|GKn=|Jo z**?_d%eHG29@W5kiT5-jwBx(!@Gm|1!Mut)6mqJoQrd95Mjk)a$0#GvWJc_K9l*yl zW0pAtC;GGnglwvqt&0>Z9aU`*K<) z1QrIWgC!6uIq34(pau!{VB`Bi+%svbFsJ~wN zWK4E^Sc}wF$(M@0*5|3ax^F(A53C8_UAbqE=FD^lKZY_Ao6bLgvs(8#Ld6j}=W#II z*gYim=sa$Ayin-i=1{O8VDre^oJ9@ptMCW70l5&G=Jhw_S$W zCKiuFve=ePfo}G*HyhH1yGXG2!bIp?M52kEKpRXa< z4SmJ%&+gOY%Tf}!g0h;jXBj4U`5d~6%{Oy5Wcu9Tj=C%5F4p}p{RAi-21UulyRK6< zK?I3!*C{hcsXU=&`efnojCLb=Y{8dIZTk$9Dy8zUD&~{s(vzx~Zy$74W#4E!WAQRQ zZ<6k8nyg+w{u!&CCE+xcdzDjs!Go`3R&qC_Ol+n>d#&U3darh8_;@&gR*BY;PzKGFhv(t8Bew!Q{!TbUfM-#Jl61|H)qTu%S0U zoY6Dc%;~s6Bkh9TN|r;`nYutu+*4(Re*g_DV%@r9v~OtMxt2>I8Dh zgM|*u#^H3pyry52u%41adJV(mbeczE%ZlwR)uD9+#sP2PZ6bZHp%ZU^Cr8}zKPUM7lE4*!kd$~~JP!B!QQ)kf zr5LmIfpw3sG5ye7%`N?+S!NRcCeQNRB%I3-Q)xc zxr;4#jZ*~sL8!&R=??nl_EGwn>tO49MI^2m&eH;4wmvNT>>n4yHN-XCvDf@+fL^*Z zzB>h87|-JF+>}CWI)+!OQF>`TT9wAUF|WAK{qcgbrHJU}hu~;y(FRZS2{z^RW$5*) zUTQCKVx<7+%^Ni|1$tb%bh6!_Pg$|RWDkv{6stSn!Av9a*z7_huur|00?7iqW%V0h3YTd2Dfw zt=_>*1=&Dqi1*HRZzIS6F@dtfw?Kj=qcn%*-g_bmIS3zB2k9+mr7BhVO&Q{np3;%L zx6MpHBf!#2bN5AYX#sJ28_SmH^;!L~SwbU_9~;hxFSJ;qVzAZ^ogd}Vm;s#}nR>6- zQ~nRX$46CBJ0{x}PPd-v)-eQy*eZH>b5$WpI<`-THOb4y7-}4%cd_d;RXJaqW+VmW zU|W{_D#e&pq)i{y8a<~u1NF9Y5c{+SZv-UjdKwyg>Qlf=95S)omG< zdhQY7pNT~&$m#*v%8m5H*ubAV;Ys5i&Z6Avw4-_oN_8y#j=RJpLK{b*`#g&PM(PJ*na~@r*0)Nn^H%yf>M>6whTzm#+ z3_zR)4DP7MOC&3zfOhd2<~=9BWHmnAJVyyNKqO8wME3~E60>p6xr?~)601IZq8RkM zS*iwj84Aat*E+cvH?r?abWH5>)=vh?$g_FP0W5m=ock2E+ImPi>Tc&19AC?3ztkUeH1+VFjDZH}U|zU~v+rhboF|EuDNLc%(yZ;wYJ6#)>ISsAGH)s4^t zUmxPCjhNjhxY2okYLSp0PhH#SLv}{FTMcVm$S`gJ(&^*n&_8I`^Qvwe(Et6P}BT_wJYW9MS@hJ$cuF7J~b)Ef#|MILR8+FHy*-;a#Cm zPC-F44M4WK(G(l2hJkWsqE;b@6!=RgydWP?>kGm9*aSz9FqJ73qaJ-SrvpFE@Fky! zV(;L8Ke?X>3@=fl3rJEHNt7s&&2CZRsv-w?X>x1n^Ry?=0kr0)Gzt8PFxw=s-h8PO z4B|@uaqKT&fo166i2#HxI-9@16cZ23+0hj!q%%7-r}aBut(46)Us5FK1H?OiZWxc5 z;^P&U?TnM|3>?TSjSfxB$FBYShY!RZ`n>;c4~qNM1D7x~-NkNdyQAAb1SJjc7>}ov zt_V1cctsZSxe9s{7ow>6e8AeEi~){-hRignZ^$1#i1)PoDI#u9Sy4wkOUMgSwtWPf zvx&y7 zs|#CKV1@4r*ZdLx_h-)Zlh!FaD2y728f||cvfX+`LL?Z$DR6ADteSOQ*nim#uF??s z`U$Q2xDHI{t4*T9QfB1Bb<{aATADF-XF0KTPy*q^_LW#o$t%wW;pa){B67{deR}Tq zls5-?zg-AmX(31wOb>r~_<6QsjDh zWRw$19&vL8d|#`B7Y`~*4CEDglt@e|9*hcE2}!4j(u`Z#aVxB1hwC0Dl(Rd|pNL=GtQc&!{QX?e+Gr_{3xkJVxMh9i8He*jBT9BqEIP%<{^BhCUe( zC_=`uywC&;s8u;Ucj9i1g; zHTXNtZVd^vH~fL&S-tc=^yU>xF~s1%QB-`iqs0iU@xYY86{)$6tt$ggT*a{8Ws`S` zBqkzG6Yu*I;;91;k=XxRos<+i5FV_BdZv-#z%)!xS&abjG}#(;e7SFx-BBEl2Z>UY z`2DYcLRlHO$I;!JDZ+r^09z6uq^Tp{J60c45t+ODT+~wr0o-owKXFw6Tf@|zt)+}Q z=o0z62>2WZ+!nUWhtdc&*-S>qF%#cf>}vd{zGIDJDnK=S?=jWwtl^oNsfi0oN+#Lh zUZR^SGHt8lI!7+9?>BdKlzHg(@^}5&i zJTfNW*F1)#wk1%4QV<*^l!+f<`ZZHNcB9o0&=Q&bLVr-atM11{8FAWg)@V8Ia>yDt zQ&@AYvqmX(qLfjbi6h%{-k_=}-MRCnqAqedWp|K^WnKAl7?*JC*=jb~Sl+qNzKTyXU6@rw*Yh&D@KlP5vo2 z-kSPGjm;Kp&4k&UG4E&$woV@xwLRLPYu_B9!B6)PkWp>)e5h2-A-|uNKO=1d0VrVC9gxM9nR0rBm@6?3)k zb0BJJF$$IuJZh=m?Rj96`4>h(VaOIXHh2DYEB&@MbVDB!iPYGYMh6T{<2#qyZsef` z^tL9E$bDFI)XM9h>X+Qd)noa7ZcPN5;X3NGZ6MWx#xrRe`WJ&)p;BZ5qqM%R)jYm|+v8@zkC>r(@42;b%_~y`onh=?3sIa zwe?&Gg3JAn?vgW~FbVFaRbpQvYFV~YrDz@(8+_^F*Gt|~ zM1Fi`afksZXJS}D0z#!ZjfjbHw6s_$ZXe2m7kAzY#N0y=9~eVhE9{!v_uIjdW}lS;L!2xm$7kKjVxvv?~xlcblxY zY+~||i^k}80<&#&t`UsydWT7Jx#9|Z?-hLbtOiBoeo6V6mKVRl7{N7+C`=9K=HXa5 zGfVc?OJ~tVda9kdSPkOTPty_P`r{Ojh;hXq`*`Du>&FBGc zM%4Y?IU)p>xpwszJ4eGR=KRBMpKI>@BC;%~_UIa4K~UiwwcXf%8`-eXdmocgL)c*b zX0gDrZKu|Va4|UWew?Sb?LB$!Wrd=vU@iDOM$aJwmQl)~09L+A0(@+z)e?hyhtG0- zlaCH(PLM(G#>6}CEdmf1Yd>L?LKf5<`d81KF)}%;mCKcKiQ-|jISH73@DRZ*81~=1_(UQ*huN~2&@D5luhp`Qbp7ALVy)uCr<=l`jh@l z`S7Z!{h|3_w03Z?b?B|a-ja%moOZ>fdVtvHzNLyACFpI!7mNN4GU}g!I2>tuL~!OR6h|`@Tb@h8N!(&>YqQ# ztD8v_JlE*#-;g8qaF5q?#Ft;?yC6eAd7zxxE_zL0_1BSDdPJof{2|En!J^ks;aU%8 z%HBivJ0vqSiW}7vH9L5h<+fx{dd}j)skW>Aqq{f*d~C%5pM%M4JzLLSB86<4Hde=m z`*?UDJkCh|5eum0`w?tx$Vac#cl`_TcA9+y#wAulsYl}(6}3{Ql2)-gaA9RRpqR6| zl&Ut4DqM2auB$S{Tz2ZQN@qj_=0;7AsjIQebkpmq)Mgih$I~vcQfi1ePDDW^ylRd7 zs)pza?Y3^`Cv!#D2l;D(ZS2VCozi4iZmlVcb|$AHZ4VQR^ecu~Bn(ny>Zov2-6{!G zXv&L*aRh&~dufwRt^SjPE*mak!2VtmGBdWy6hEu4ww@b*+>T_iI2rmpT;Tj>YVp_V zYaoY-czV3(U+0a1W36=99grXQA&0*y4f1FTzBJ`tD6{!pj%_$)+HpY&$+X#}9AbA*19g^e}OR}Y`sGVs94uqFsq5V({~gAe;^U3t5w`JI(yRFmt+NZNk0xuZ+@oaDJH7X+Y;>@ zv+y8J{D$HY4A;}NAskDz1_wOqxX~$J!enNajHM%UH(0z=e*$Gg-Z9z?Z!2<;{K2XB zaWbw9n&n;+Fp!?M>6Fq*K>0Ve_|0k7;hPhR=oY@G*eoy;xfb#@PDFm#Do@Q#O{-^C z5nV|`47K=uv`uJN>p}Pz$yeX65bSQ!Nj@pv%b{}ssvH8eePo*m<1$EQ=p7?zefL;Q z2vQ4h`MG+!J@OWjXgF={*_A_U<;7nR*RVIku8Y{K87jXGQlIMK#pV_$Y^y=fJvP4% znNk!23B~|NYK_s;BDGsGhHO){6zxin$dVteK@+rk5kX#RUrSDSCiB=d)*TS0Cz0`) zdR72*!GN2rxs@ZeV=Ul_3!Z2?XNakGv7F5{-@46d4*Aiuz|M1AtF5KYUDv(^CpECP zD0oyN6RuaAjB3#14@~{hyk7Ab5=an_d;U^?gCcv%Sq8KT3}X6eC3*NRsd7OL{Xo6r=0A@2JFfdRfXOq+kkyR%?Y!nxtJZLF9+j0J%`CW<+t&uzKwi-Cc z1IwFvH3EDTqpd-xFb&M4sgi!&98%O5;A)-@cO|ryfEDJ%W~^(GUN;Z@+Q_j#oGMt# z(8EuU5xZOal}+Ooi_3~!Fpfup-uezxATTFEpztlB@VVCCDHb4rI^{9|b%4`W>Zez7 zQL)bt88qQ|Pn)DpAEpLEjAT{>W5^fO9+Csr-P)HMLOv4K zJEyv9s9xF&BOWiv?swrsIH-B8fnsRa3-BdIz^UU_#VTkob@boINaLG0p;$)MSS$Qv z{1!59Ib?pCur)Js`p@69-SfTuLF{SS+(5_C#~05Y#GSu$fApSS?)X*eY@&4cKp zrXd!;wcfq^S0C>4VfLq9Q=<(=uR?Ec430KH>)t0Pi-!|Ycf zAVWq2tBt_r?bFFd0YnccTl*{RlE<}#3O%cI@TzV$I(Vo6MQ zEDg^?C>0UaJMbe_KGGC)L&zT{0455EoX<_#1UP!CizZz5Kdr2-G7^brS^CQ-$UeW}P ztF=RfZ)(6B0oZhGsk(cEw*Ii&UCUR=*=Rd7 z#k=aeqRJ@Z9k_Z-y7JtSckEpApVvKXA3YOWk_F#W*W<-cXF>AR?H4}T)W57>Y z>RIHM1CT`XBg12fxLZu%92J!Ynv0M`@V`>tG2ISDRehrP*nbt^hU>8*WFIE8!x|YK z9Y+w`U;ywARk@AaZ@uYK-M<}80gig3rj=7?>L*vhr`{!shr0c5>ilpH1KqtqAm8;| ztLS$#AyCm=3UGlQs1KDyzsuvVNS|Ah`Dy7vRD9rHYbi?EIt$#5D5#L@h1f_&1EA#Y zYiI@YNotP-^8@==@4#)?k9{H7)Z*=cQVje;Eg0aBf*A)MFoK6Hcr{+xHXgn&b$$T~ zyTJ-@9p6Wut41v2(prdHU~ea9mPbS@nCxkSGJMN@J?=H0PbhUV4<46!K%iC%i49ao z!_R@StNY3r&&#XuAWf)z|90oBM&g6+RnUzvr8WE8=8~hy4vPPc*=2eyJ9<;sN&mk? zUjJa32bp&1iC^<>3kI#PZXtRWf24yJ>Vuu4x-w0Co(D3dT@|fZBQqa#Bf)qDNT|?R zJ$xcPIcuLBq7@xh?|MZhhz?}dzwf!Mk!bK?XgXv#n5Y)3YdOICR4>R;uYucUZ>@oj z0stSD>hFDQxdvLzyj^hek~(B9$^+h$Q1AE6p~IEjp+Uz^X-#qGdlD9gVd!-_TJvHn+<*=)JmNEcFhGvxix#CIFjlyyRa@zTF>kHb(UB=Hl4DpTh&cGPVc zGF6Ec09&XxRobL(r$^}4V)+yUa!UKWi7)=(&B^W0smI#rA1*vU1QRR$HI9TtA9uG1 zXou>O;V7X2sN+YDcH%sJAWnN?ChG20-pPTBzFOKJVV{3_L)q!R41mZ=`r!sEBLE+qTAjcAPz--E!1MZ!Ll7BX}^p_Q^HjFQ-gx!AhIf7x%r(x`sM+Oww{_HBXF zl;x^0kRM6$tb~?7;>a1Au&?^7{*!91aM&!t*VCie$l+ncVM{Oig5B=ywck%kEYa^5 z5Zj?nubdM4RSK_$5ry7^5{hop{TgkY2_5=(aeJPJYK99XlUS?|TO=xg@(W~y>~}sf z6-??8#_^>|3Q^~Ev@E|aL;!{;9h;oOE|v#Q*>of3?7T3>2XXX#bzDiVzU2+Gd!Xll zh84JPcb>7_wM)~1-6mA!D^85PZ~yH$t1X?dmAX!A>gVb0HCY6`4U-el>_Fe))yAho zx^s$5f!+%i!(fWYjRP1StN&iRA+_VD>8#pW>_>gVJfXh&8;W>I$eelBDt$8o>ZR{y zjBc&O=o(Ty9sLv1UmfW&%cnoHuvchIHUPm)q2fkdX}z$j`%FS%Z`6yvDHnC4UPM81 zgAp$a*Ebf!kQJ*B&8O)=*BAmPoEOv|#jEaxg%k2Hv1zD2gWiQ?2|pFR&*35N$SQY$ zAO1z+wYtrc!j`7d1064j?*ne1pSwdY8X|nz|Fo%190ZHeT+b5xDRkxi9K80`*@JT- zR=yho%VSRJK!p?R!iiI6Ah-OLf_YXE$NfHB6PdPm;$0F$RQCQSQRNKsbE#0nXd3RZ zr5|&1ngg9H_MO<&mUBMut!hZ>GSp0Ta-WO_77P98=Uz-jsHBe3;p!frgFSlgC~k%BOgdg0I|1LL)kYfri8g-tHu ztUOa`*w>jIrbI5jqCK{bEa0#`qrOAH$*iNSkO|rHy_4|VO+h-nS^TL4y!des@yEw1 zw@BRUYG|L7I=j(WkUfC}rq~Uj*?+>AnmD<@PL_Jo&q+pyGNVWD5@&FW)vY?L*dx8uG( zl$de9FNNk?G{B6RkT5t8sSa5z57Jzy7(iJeiVh9wN$V|d36)X{#FHjt!=c4f97otN=gJ(Q=bb#sYe= z(d?)MlX?VKwK>5_U=yk#vw(|TIYF@u_QLBkMVMZy4ko+L8j>cblde*;DvGLp-PzuN zd0QLc62_m5qy$lkTYCrZa)4Ev;HLob}Ha)x~~|6bQ2-Sc@yy75yR( zAtf@j9VJ^yBUo33P0^jdEJ?BEZ_?7pJqY^Mb4J4p?aC7 z>lz*F`V^*AKgyapxP!Y>*d5-Fq+zI4a|1Z*>x)W^@(!owFFiY~a4qOY$f4C^F*c!K zWw}JvCP})0(|Mti5sNH3mL`2av=@#l!+1F1Xe7LREA_Ntm>g%TYhQ=`69kW*#a;II zsWsuRFsckUUxit~B`qxaMsrX7zE!M7GCX_3Yak`~T*0X{M#UX<%U>Q-;dyfUlw}&oDG?zOLDer5>L!PTaWs5B05HjMf z{TlPc3K&nAV%l8f-({{7DJvwd4i?vAjmz^L^-!2>346#Hx}+GLu2f8y7AHJglfSU? zVms%LGiJTc(9~<>+_VUr-IHU%q-UZ0`r1q^?Fo9e%}yg7BORHIt=LvkUqMdiSYwF* zl*_YSd~kW(RL~+vZg#MQ|J|MY6~7`mw=oaI$a@@8Oiu$NOhV`!1Z7jmTg3%Cro)(fmiHh~*uF(t%k)Hb5~0h$qQ8bk={ZA$EB(}r zi_a%_X4I+J3Uw3YV~9Alpstyr%& z3Qrc{z@rExZ;0UT-*rDhvdD?+OU4rlGnyPDom5-M^!Zw>f0kpAWZ#a3a1W6TVCxFS zeBa>%Vyw-$w1v3{^iAcph@Vc(G+_cUT;Hd}pg3C9P71|A7I{zwf~5o!@c{3M1cb4w z8y`TRJFXRSj-Z8p&AwaZo8zko$N-*Igwkvu=TPmbmi`!d7T+^qt*4+N?9dn|L+7Aj z5b43z_2F5%!NK8Rr08}{it#-*MVl$N}eYM`(Y5_QRtE?XNL_?AVs(gz%rH=MOGeC!IlMO6QW8avSNRHkp*LPop zo=a^_J*ju*mTM*|P%cy)IUXS1CiuC;n6@f)xeGAGa1k~!;V=$NiMQ;S)&jqDq{5Xa zrasDFEYpv1t7QG?gBl!f4e^-|&P`cVEyYt>zE0C4XZ70+b~^ObbM~18ePDy%Wl-()TX(%K@rP%tSqZspNuuP znP*>-M@M`=!P|MRkTbw7$s4y&rMF{m2>_{p^V6>5&WF9k_~>9PySTF7LLCWm_RnRy zHYfL?%53+m<(v4gIGu*F+?&p-zYUA~z3X_iBEMR+1&a>ZwD8d_yDp(4Zk%&}*Ikps zJsPMfCfqO~n?ii~HFqaq)4#lF9}SNljpWwk9$ch6YUFm(DqQp&GRiWOKqWa!x_iE5 z;Q(*KtyyyV3D-^!EAseSvBnWA;|@dUw7!8Vr_LVg7TELXR$3H{yBWT}E!ta_%Di>dIB|4iKkKjS2n4t4=ZHtUC1znK6T7xcMKBR?v_l z9Mv$)7chzAo76Q*j>f`jd^PQaU-^f}A@iOGP$8hkT&Bj|*7R-&PE_K>vGWU&g z|19yJ)f^2&9xuBX3>m>0gi9tLz8s6~WT+|#*?O8VQDk)T{1>cyxGp)3a(G&9BGU1I&7NGZ)G z6@4N%1`VJBzFHh%R}ey$g)AG%4S21iW}AOz_W6ize!=Fny$NMXh6cQ4l>IV8#%iSkOY+3nxe&v)D!U5yM)X(8S3J?vzyCWgnc^j+e6 zE!P|w$;&Shlh_3##^VY&@2!9CVwb_je)iUa)hmvWuV#d~BuYWwBrY#YVfy+lL|3=u zP;%RJcQkzWnfM)9lL?Y=7|o0O_g2~|J{FyQe^7n_)5@c3T!?kdVhP27aTilr)Azsy zRi?&&%PA5A&2E)~a9>bnD!}9AO}{oo>*+v>_JNtKURoVg_p6PFcLYwQt~(xBeLIZD zAoSkKHACeh9rN9QqF0Nzz1k_vB6(sS2h}W>9&j~v9?_WyGiI{+RxT5XvLp|d^_zlW z2g1^W*1Gc>fYf+A7tQ*H?RW-5=q_UD!h~|ZplqH{`h64(W)hT#`z_kOBnWH4IFxD6 z6^6oRx0ZJ+XX+&26gLoZd1*=$v0lbhG4MWbe_ zPz9>#cZShE@~57Ykt*Gah3;EI4%*9HBUcJRvu1jw*wQI{Gt7uJc=Q8kXQ)LJQ;aTP zm^@ZKzmK+uh=|+Ibz%H1=+cLDsr?HMF;AJWOh69O(C&CV_d_LND413DBZU^W0c*j1 zl&DQG-|CTZ@!N=pNd5QK6lUkHq~6X0?pa^)&EAb1iwQMBc_AY;%_=CMOrDy8DyfEA zbH29}r^Q>e;cexAxzcFFzvxZ!Lwr8fcQ3W*cFwniZhuSpGyeTjIv+@7wxtHVde9~o zZzKTXmU+bIrOkycd<-Rn{CiZtRW?ODr{U$D9Jc@dj!+$dt7w}*nDHkVL@@tBYdkoo zE4d1x+HCnW+dyt*KlY;#MN;m$d}Ryq4!z>OVT-2P{8}d}iHK54=@>b{_Bj961fqXW zL60NbE@B|F2Ya(<Dt*mX_;T!;v}L{#P-zIx}eZezFHWUm;MAg)Hj`rmDgADKbZzo(&Q$Cv{NVGtTfVTBS zK%H`;mbdCFuCgnp1A}g!)$(^?*9FTz4F8}lCrIQLL*tiAgSZk{G?OG#0KQ3J##y5V{6?=l)b_eco(_n%cQ?i zuM=+@tp^@Pp{S&dGauyLG?HvCEn2kZwM3`hq^WIvM4>ik@Pf}P6NnzD7c&HsLOMA zXT#?z2t4c5;v7MPF^)SHU8JpnA5>9rV;JgUK^^!{XY6A{r%%2nzrt-%!Yci|#`9M~ z!c_*WN!YyIocl(bngLhBV*i^P_MnbJ))8RgHTge5bQleB%Lm8Y=0+qgCV*($?qg#Wu3;IJKZewf{@4aw(46hTOVVYv&3eZc91|j!KGl2w zHHor-{4Hz$uI@L-8$C185pxr4fJxf=sR#Aov!8f)7WAwu*51cq+ z*vUv2k;btyvr%e1|e%K>4h#`OMhjyMfzrIQ* z*74Pr_XA72vIwKBas{`>;=S6ip|tLz_laE?62ecfP@IdCMBg>zDQ*~El615Qg;h@u{lN(mT5Uw zdX=vA-NXb_kK4vDTEj)y06FNGk(}OTzQ=t$% z;=xIY6>8(xE9JZy(9*>*uN!vdicp2?CbZa;vpKO41J!mbdc+D3&q~~lf|njVT>pJK z-E-GSRmdjFL&nU>#3wI`VeA>16}~KVA-FoL@T5p^>17}V2B}=0ut$%%h;(#j`qn7W z);W~PN$kKAdE7WLe93deXE`)>h$Rv3g7b!^h==JV4)=N`a3{ZgSCG_FOhWb=Cb{UU zd2;>D|134irty((D3O-lW2wu;dQ{`&k#)-}7lZL=qPf}9O9tO%mOIz03|;q`UXt3O zdvTrZ7ZxyhGj0d)pfaqW&*ga370H zU8&(JRk1_!;dS`TIPs5<+tY3Nhl(?i=r5n~I~;Ogm?f}9jD9dp)$4gzAQBLt=WkHq z&B1R8Dj^2)KHQJ}e%Aid#D4QNfDe_oxvJeB*jZCJJ9%B4TmER_qj(*tQ;^U!XrHON zXNXI%4#PS044oz5!HyeK(B>Ic2n-e-Frrh)T}fz+R3W=5DiIMUiTqpzhfbP$XDGU> zN7VB#J6YF_n!>X#E-09(-Ro#o59sW-cyupS*>CK}3H8!h@pFrxXglTZC+sC0rRaQr z2(aU(au0;o#%@a3yi+U+3S>i|vXd?}{jw*j_BrC?Yl6;FD{Z7RcVs!<*$eE-DgKbV zMT{+p>(5E(l?p$CNvSb93C`5QRE9^%vWbF^i#u5$=@;ZmH$?T3^ye^LWLK|Cfv$ok zd@g2WDz%1ldqnUKJ7a)JQCyT#U$CWQqy}CYR?fXZB02j<`JKfx_3x$gCh5ZWbc10M ziW?UR7;=kifzOUt(E6|l7f%>y$I0ZTw2G`59HpF9V&d6Id%5CDHgaH24XK4hGfgHo z3FY&jS%Zzgtf^3qk{)Y?&NAvx7cl3|OE1d-Do?LRQ&t3k@xqk3VpLK$i~B(Cf_h!0 z)c)h32HW<8+D7UIa%4`e4O=T*K;+CP5Oc8#_!2fUvmX$EVPrY#DBF7Yr4 zjlyxNhL2FS{>|e9J+rSRS8iK(Z&UCZ?m}QngGkIUp>k;^mFH@~EyN$(gH(kB`G2Nt^lBLM1yJX%0pF9&a6slde zmK9rdnb`}Vdk^|FdNAzqgLbU@5Fum*FzX+&P=3Sw`hYiD!2$tt@M0@YVzo-?V5Je= z-gJJggxU+|?dkL1U@!S`%$rLHB$rLo!+ER$0T)pebx#TP)XJq~67Xzxi@B3PQhcY* zs8eaf@*>p=wioF~sQLs>e=H8&Z&r^aC5FNuwtH~zu83FbF;2>SrBKCkXZm(;>c!U& zuIs*vm{f)_!WoOoN4?K_hPxzS z63Ac2Li=;|pDgkoOEW3z2l#G7g~*7c~$1^Lpf znO_F13bOC)6Lv_y{E$}KH))0lv)M}BQoqL{sLS)XC~N>Gi`cAkCi9TC>yXC2XTkc# zxJ0#7l7qzR`m=J{Nr6^6WBq(-NwtbalW83;A|AF!(V-N3{eqwO%vIRG{GHR%FKn6| zoe{H`-gQNchHgK2HRP1z-flvTxf$6IM|r7EZ;}z=T^@b)=E9e_c*8CvTQyqUqq2o~ zy#-F&Kf>f5rsrqiYio|zx%6(mF@O1k@=VPDs#LD&9@@wQ8+-?hl*VDnL!-Zfhw^&) zeo!z!r5@1q6N)(1pvsCSw44{ zb21jIj2^1YF5vLx%i6;!74OB9hiKf>6e%`Gu06&Ug(=jR07RUlA@kJaW6gK*V1V~1B zs0Q=Z#ULj;@SSR+*17dqF(Qvq-M^$xwKjB=Lxy6n%yO^md*7Ogr=1m#IZiHdLc zgEMTJf~=dAya7N%0-_zU+Z(R%$HLw({Ad#jHN90uY3z)d(=UX}J&U~iix~}Z;5?pf zJ8Yt+ZopI52{=2G(o76QqxiH^!#kca!_>YRbB4S>Cwy1}Daa*^*ZG6yp%|sF?RF`c zIK1vIDVi4_&e|BJ7*C!hHID6KE^$YZfnY%;qCEpjO~)F_fsx zoauzHnDx@1);zD2$W6^oYPpJ^bNl49t}xK$nqn|1j5C@vhiACeCUK;Fdq*qW`amlB zH>`i8wtb{%-ZDN+xtfMY8LH8ygU6g~wOvkWd07_Hyr&t{H8IM_w5F<`zogcnVr{FE zSJ+M6^JT)s3OhibB;k%0QABF*%U1~72((t5k{yd)O)sL|D3Ph*`H76gGk&g=&r5wGSBRE$X; z03A!)ZYrqFpTf9+5`mKH*S=pbJ}P8szIxaPlarbEaFeyO|564QW4eBb5`YFhyfRwV zm6E9=-3a~(S^I+)74$7P3U4Cpmg=q6DC1^Jw=Zpq$*lzfUUK(zau`|`{CPsHy6d?| ze{4w6a6U7e*lWnjEqQBT2KgZ}z6#*VCE*!=(EOoQ<%HR_x?vPCgAUNYWXC7I@7pGyp)B6LHjqIvv7)jkG$JfPUmDGYq$by&4~oeQ6{ zT;7)+pH^4|>sIj%H(LE^F=fiTyf*O0_04ifeJ%jSQ+p`mEJpFra~|?Pe3v>1mniwqbdD8xz>SO%Avv&Vky1V4 zrK}(g+vXeqC7o>dmy!NL!3t#os$1l^f6x+M=rH`M3~qK>KoKnb>+m_a-NHWe(_5SR zE1fHGS0B2{Yz-GqO_b0Q82+Fw0&vi8znRfbcglcShCQ0til9&J5P^wlZ5A-k0}Dt& zm80TP5V2r+jh3^@?}Vi8$42gmO{Ls8)2KV>_%u1tC?mg# zJ}UiJUzc!uztx4?`dE!)C{6F%CG5X3z&G=!p(Cq9Blev>?Ti20xE>udGElc!Q635Q zfXM@%h$|^O3<2k4VvHJ}R~v62o(cMf0{nIOvdEq@DlU))3j%BY75qxi`!UOl43@nl z?TkDf%@X*E{jruuZR=U)EL4=ah;_Nmx^(3lt;^^4a$OUA`!Ebp~Y z2>d=%;4++FHQQ~T6MOde$9H^n|MOFm-A3I%X!h3Nz*~il?x?_Dfoh_IYCu#)v`9qx zpsf_Qe$xjgR~hhdv2X?KuoFgSTANdu!{*S2C&%$iC|?bXJO1__TF`u9e{`&@3Kl%S z1%c|6m-#`sn1{s1>d1<^h?WkA#NGicwCIQ2TgX)aENmGb&;h>!=&|11C$__=HiHf> zRfn=NlO_@}zKQg;`flD@Jah`rQ$r(bqoKyf`1k^yDA`dWP$YyJtbFBqxzYCI!Z4%U zJr8oIB&U;n2lsL{W$}A#eLC1ED23hBLb=T9IS1P0R)RWP@0RZt)O_Kr_YCjEM%V8n zx#9f%yM`$XLTu`*-6(fJz>`?kKWMVlajHw#MXQrdeaSQ=k#{Xy6$uPF_F@+3PTbyG zuE?S~gt1cdN6&94;=}5RYZ4zwX);$T&H{5TTvQADgvG!))nKy$_4CupF^t836L)hF zegrjFPn>-i;s3;CrHjE6mU*LQ)mM#XJm5k{lc{z!8?fx>Wv0z0p?dvzU&J4}WZ05X?!81D*yfbqTKpOnN2_@0O z|6}T`!=h;4w~wMIASo>f(y^oylOLvEKBe8^(ba&_T z&g}DikKg+baO^I-vorVHGxvFYuJdG_aem=d?nY9xiO_LFZ~XhlZ>ttXqF3id7MhIr z%B02{4q42b@U9y1xp^N>H-!qc;N&y-F5qDMzQd5D7%Cfo*?Rh%w)_C#GS1@XVf(Nv zCu;q`7qL7W-#%hAb3AEN;u-WyaDg9%k(7S;?K7#ImS!KA&8>qeTg1Tah&U+!VKBzG zN6mTZle-3FR0Fr_cDKP7P_9%xw|K?)(60(evO1B}xnm*0k$btK1&Sa)w(=7mn|&@` zBfFpVYmn_k|DM^0>O&E^JL)8;boM~cNZ~0@n0NthW%I#XH9`&v(A! zF-;E@x%Yy*hf!;Pb!uB7B^@Q%?mp6Rz~!u20^cz^IP{#Ha;8a@8BVxl z#+OrdsdipGl%D1J>tLpdDgN+--+A{tOcPpX{x#SJ=Rz=mt@Bp3CdmULZ^@~2s~qXS zQ-8WJdZj%riP<>NoWjHVm8T5V&8l!fCa}Q)_VIh(yA&a7I z{AU~?pv`jm#>2c8kP%LlNXhN-<5-M);^#NW;BEQ!2oEt`OSdjt4N zbE7lvcBNJ1dEPL4)?PuD!>)vUc%x|_Lb~+g0S%322fK8TR;L zdlNU2Z@f3on_>Eex2J1w8WcHS-n%qmSp3uU6oo?3v>bQ3G2-|q$N>578}fUyoSkoW z844c%QcGy= zPhO&Cl`r0x-LtV8!QRy|dGw09)A^D!K5GTvfOEY@M-yi>zjw{4FCxBE}w`u zb?sw5qi^bC)txLtw2U@ax~2S#TS+U`56d>14_MZ$Vl?O9+$V@%`>)BOEc1>zBKQph z{1hoNZC@W!c=^699iMoyXS*G$d&EAJK0}U{QNMvdEV+1Qhb8&okZg54gH4O%TXV@F z+8B|HO5rr6r9?i2dVhx-t7aJ-axZgN5U~*-&G!7)3^MvQD2`M3hZYHT2sJhRQ}qc1 zU){Y3qwImbOTqG00>Qmc6=7)pGSZj!!K8tRgLLT3n7_ayn!5V+p`7u2MwZIi-c0xB zC7gn^R?Zcr3kWPr9z{j?m_Gw-wRPGlCX1&1C3oo+>?=Qbnc!-+MK?6^E#;#`rY)9q z%=xVkzM4zXw7=4PHiiB7$A&~;+sLmpki81aDr zu^$HPPT3PWi?|9QIMO64r|{F{xKxT-j!y=i(Rxsmu*6pn>^sRB86`XR2Q32Wip-N; z)SeaAa3r}^>pC~R)A=NjN@8c~J+{{_CHmENqZsl1wQHrp*cG2l*w2$q-oh~JhQ5`O zi4~7OeZR*zhNo&q{{RWmi9=#+AH%4;UvBA}P@hk0iQ^WqJeGzfuFuG$Y}r4pclNuu z%l!y+M#X-gRWS7QEnv$aV^$(60;nN=!AN@e$;S6(`C*zekJgs>7cQIFKUTvY(-Ax$ z*XMVD#Hk7QNsaX7P8kTxSGd|XCdH$Cdr~DON;k0+&_J(W4~b|DZHy(Kfcqc$9;(lT z-n$7v$F=1{2)(mZEnsXcrs?~<&Y_t2<&!Y91(g+>Y76|!=9D{jya?;tv_ndo(4;I{ zD>a?8d(6s}K_|xXEh=hYV<^iphe~xJ$^rR0O$>G-Drp2wXJ84*FA|xv#!e1Fg6OpZ<43UbVn9ii@F9bCovG}p@c1<$@X_}4KoAvT>H|Hbl3z1_CqXD%Z6@!Sy_*RS@`h{>N|pw{;Ub#z@3H^ns2Hw zK1%kx$TR1SfkBQ2hiay1|KtuRYXxq~LzT7x2f`Ym2vob zorW2zwPaN>TIb~-<&TADgguXAAT^7jsqa}^nr~y9?QpQzlA(0l6+g|UO3>7~j>vG` zEg>6{M-?7Ck!C6Iei|h&lFTt6IBDp+yc}K6SBAAikQDkJ-6N}>wG>iet_$mWG;|a9 z{r%#dg*Xz&<3nz^Z@ijYeB=`8C(Drv?iVaGX&h(+ay?RK z$C}>#TbJ^yx4xK0g~y_!JZd2JkZ~_6)hP8fc;3w5{dFt!N|Fnn)o4+j)g=6zyuMd5 z?5bwx%q-)f-<@dTutAPn3RczGp}ExCUj%ByY=r{5dk2omEt_Z?de?q!JCvyyaQ=)F zJfCqT@i>6#ujm_+T)W*0z6yQdh;#Ewza&;p*rCv;H}Aq@*`<1j!n90vs=a+2P|TVF zAB7nRLrke79OX>TOwwfop&H(D3KjlZ7JxhWt}uhdJuJZfSk*MjZS1Ns^KK5r#ePOy z0^JZvS)0z$(xh>?G?tO3KAbv0V{uRH@h~o@T3{g?<;t;nbXKx&2ftR$NW9sr#Xg+o zk|m%nlwwA;NnUB11s4+ab1J}kVQP9@P=&8=Wc5=X zJKQw;jqrF0D%o`KrLOzT=Un`90}pkk)^y0rHgzbiN#x{vw}8iw#NdhGqHH z%URws!BOsAbsfDMRRWyT7+$zNzTI-b!G2+KZ6|!0pr$BhT=8zcy!=V8S;GymeS(7n zrymd*2cPP0+|AZq$aLeUzCwHPkGgv};!{%M#mu)wkE0REs;cwcG#9hiF1NnePG~)^ zq0k@dREdhYUFvId-jnRy#In1mjV~_7Ex3_FqkA&WT&TTZiCy6MZP3I@-PM|=(7>Ro zyQTdjL|rgVLmpw@VC=8JwcyPYIs&cY7Jqu7p>+H#laDDId=;>1K&A?WwG#jdYBhhe{=pJo2Wkf8$N6!Bz~%XVZL+g!?cozA8S1bP zy-$~Vy!;~t;Z*{EEEO+`XIwoJ^emvb;`8;qtp(oV>j>UY%b6}?#>Ql>L&x9D+7-3f zvV`@g>h$ATC>dzrh*%dzg;m*>m)_W-7Vj0ry4rA-gG4HVKd{DzFSE|i)bx&VAaXpk zxONk#4)kcq8eo*0lFyoP7@J9$0yf!6MPyIPxQo+hPYi9}-Bi+>F zL8KPJ6w^d3r+hP+O9PwJ1mES&%WM*)nPn?}Hhyb==a%TZP!WobclZkF?A>nP;=L6M z%-dbVSmcw2XaqkBj>yZwqr$$+rb_O4jyeJi>xFLTJ2PJuxB=w|G%q&H%oII0#%HP2 za2B%?#jW>Tn?ON9wFXLC0L?o}901(~I4#>@dES?R^KPr2nY>sXQEtDz_47UpU1~mpLQAZh3aVm&3Tt$x) zz<^Rs=1_CJ(@j+y2^EsJG9_}$zWk$`tKyVEV~j+P9cbb_3C&OobjvDG^T>cpa_eiy zgl4e`KMe{U@%gDp_F8V!tzii*B)+4Y!T#a%)_~&o3?G|PesMPYsJ0k1j-;Dm8O0)DHEP{;gDGmPAMk?TL7D~s!WTz9-@1l~`A`C0mN0{$* zsSNr#mV}85r)#cVpwQg&^~s1-wZuUp@o*b-WI`o zL#%71j32k|76-xj2}-@HOvjck)@meD?jo6-!?;O~3c0Acyz79&_~9?1-PF(r?^j>& z_(gVhWzh249LHj#M-9vNvBk5vrB*@vK!m39Tg2&%Q)2he!b6w)00%4d`qND3bY++z zcfs)}BU(y(t^x};r>YBJc?)b%h%~aSKb8t)DJO@={(mfFlD&|I?O}mOwfgnR|6uLy zAK#XJwZ5b#953+8j1t+K#GE>za95G)W6Rn+0Hd>Td{g;l_#@ce%{sKct2XuRouwp!w+FEa|42el{V;{129ff=7n%b$q)5ub5Gt7}7=j z`^Hzjy;0k(U#w`uqZZ{5VaOLUPcC5HQ-##09Qdr$ zkaN$*))-{%dI_ZkW{uxl>kYzrFUm6{sgK=4mr{tMp_8Fp_afr+&y|0$ejrNa z!IJ8+)O}*>J86wrHYc+jX?loCohhgl?zX$1#qcf^?-n7&f#c7f%;U!&8nx#GIV5}V zLWk>%mRyG7{xmA^x-n06n+%|=TAmqDx-aOzJTR}5Z&RsJ!iQRPNO#kf&WQ>XCTm(1 z$t=4Icu%2e9L&C!=DcxViCuadM0^ilCIWFp)y9$ZvsgWh?~rYB>D>8H_f~^O_^erb4`s8F?3FlR> zL4rjTd#?!r?=c|1L|^JD&ww%UD=B7Xg1LtS_KQWoPw~P*LW)Hin(uXkA4gCJBo%&D zSE|cHk(3Snd2ezkIzrO_D&m2xOMb4Np$!rdgm`$kj&aAM0Cg%LbJvkYEn>a*O{YPh zhS^$hN%)JMD<6d|3@%~*gzULwdGs6uy+8jGj%=$)1?HkfNUsD>zldv*YsVU?LEUGqP|J9BDeEuQ~R6ew4&XzHNV~8C_97s zs5h~5Moh&A*T;_B$pYT)X_yyw6GsPE1Rg%-Q{*?DT2>?Cozr5Ji3UF+vE<|=<7>02 zZSN8rttbi(=#}`OYS*QsRYO|ZG*aZW@|OB>Hl&QsQKf@->RpFt5(fD+ikUtC|Mmk* z_%X~Ri2utW(GEF7Y5xn?)hiG#mF8Ha-fldPvc?3}!}tD8-3rJ3%h#MLYw>*k%@T$9 z;o?X}@m&dhwxM2&>PSgLhv|ZTct)QT9X)n0yA`Of{u&#HB&*?VOx9fVv z_4)maj`7xDiC_)-Z_}>5UPn5CU#m{8X!2hW?c|-Of}c<9QDj$Z?mXV;vwfz89shi8 zYR?jU+!2HGu|!4z6$MmAH)2ZSGB6z+e0MSL09GqPJgN#m3|<#^zALxWOgXR|S4v+@ zw+7jD3h-?{Vu-)$&!%Mbm-OLL$POC{(0-HzC@#@}0b8jM$tUDYt~R*MmUfYrO&G6@ zwbC)NiY5CI5Hb@arZoXLvkq^In#p^}Z({U+{y$9cwo(pmUU~*K8+GyS0j8vbvB$Io z!S?j~ceSl_Bln*5)0!{ZHhOSw{g2nxBRgxdW>lAAETjlxe{mV=foFcK%p@%F>#?k! zV>X6oHU`z?p}=5iCnq$f;TjWJ23EopZoRx6?2)jV)3sIo|2ZiFIeyY$s#&)Tbz{B1 zNZ-1+o|f{RttR}d1SZt?J-G%AzU&a6ke;%d2@Q;wWd4iWi&qNbfL{5H{$=g9K@0e2|m;@ZX5q5Xq{U+wAWN zc9V6n)9=Dmd|s+Dg_vCIdY~>rJ{$AU7J!j5J_Ku8dEhio1&j}~zZ@i~+PhvCoHpR6 zY8SO?Er2$x=D$FPmuP@DRk+yw9uzk_vGrVH4pWsG0vEl`>NKkgDNt+u>n{1K_XFXQ{) zZUGN3IKUxy^$8vBdx#Qk_rC@5s61CO;a#bMwBTO3b4P0=9H1=g`+-<_F_;l`KDaTx z;I|Oe26N52iiF0aUqr}UXT>dqXWJ(hgufpQY+?zw(jD`vHG`ZOMeeU)P>3 zkg)APlc|ld^}ZJf>rQdB{_q&u%ZS1xiUGl1^Ieq~(E2stU~&&}Z@=~OJ@HVUzyU#Q zDziTqN!NPXRRwdk7TFo+^m+X4Hqy}*!OQ*RZ@SlSJ9$i#QHJXFE3#X&%YF6a^P-0~ zK_vJ#{o1k<&SDQCy9pK1f)KKRQ_f*Skk`7= zGdYU_7^EO4+(;Q#)Ddl-y0Lf_dSxHhagQl>oNdJ>BbK|T+0GeX6gk zh0!&Nv~PP|iYu4mxuYWF>vfjSJWvV@N(5de!$m`S;B(CM(GN02Gq~9w^-}zH`;#?n8msvgXf32VtDP4z4B#2&F8l&|k^JmF5v*ACY%w0OxU|;R;AC_eHRs%8gO50=ibuyNQgJ}MRIy3UJHpiLFG?QxsvU@)IE{`8gHme ziJY10j+$xiX@ZQy!;-=XLUM>Xg>J5kELZR29}Ah5O&*c$Xjj`Jc8ogg%KKah^sU3Eho@yueBF}u&uOd>DbqqomtGyp*F(Oy`*CmP z*2jX=AI$bFj+QWK+VEW8T9%0$9^<@Up3XkHA0De^uyGz;qTt5!V(5WYdttkkq(YQQ z+F(!DTKDdmG+@PK<=jNT+kaX9GSL22)&RZ%?z|hlBM%T3Jj!)HBy-u{4>OP0CS>N6 z8fA$BqdulX^=S?)8vT)ps<){WK0HRR+L^cNDjp>xWT~X#Q(EO54j#IwxOshgGC$Hr z8^>zeCi&@?Boki{?*23`I`rlhg%xSu-wiy*cJ=uWc%7GhFN-`!UqJ50g(sIA`0Dk3 z77(NUZBXJ%iPypoe>zZ2y<6cVrrW})yVK;`6pb(R;glvH$h>`_HWNyb#zSrQi1cor z^?LE&30Vh|vcf{8(a2;ydCHh&cf`YXxkqFThF&|6d?qS?@%+J3%NEah1HdbnynKuu zU~i9o6Dkc}J>vX{hH~xs{=sYh!dE7KY$Hna+WKq3mBI#Gf@f3lE-=F-YLbvhRmj*@8&NyV36Tq~_kB5(Kpu$yT zJ7=8EY#w!Hn?3sb2Rz0-T6a=$?#@Lc!n3G$`TZVlZVjf6$s?_GH%SSU3=EQxh*ZGA zFMMn*-OJ}b9|`}nlNBRJUH_50YWVVSyQPp?0nZ!!ThOz!eY4!CgZ-w!xD&g)b?qIG zk!B=_uPEDwH>Q-&<=D)Pm7;PLFH--(s_0!T^Ar2RS^Trz>^H4@L1ttkjT=6HTe6DA zw#9*-k@>nkydcf`2}SX>BFvL-ef!Br{61nFHe&B&Sht!6iAO?i!OtDD6W^(`t5jz; zZYhuNHYsPnlKfg*mC(lny(*91CJg3?59Bey3q0?OX~#M#wk5Jj^mrP6Z zCDjmrYYy=<$Sdb-APL0SY)Au7}m`@KGRUpRxk{-Wea0y9%j@z$fSP; zrzq}ZyHinsK9zK2v4xV=KxKwv8(g+5)W`NK6sO(f3JZJS-a@0}!K+F{0LVFgT4aue zb<28S{5SWT+_4m65uMt>w$j5HT!}HhVmDL#snDJ{AsO{N(GE(30Ir>(s1c|^n6_B8 zLF)t(F%_n(hdX-%lxH5iYwse57x&GN+)e(uZYxAU8&No6V8BJ`Y!Tm5i*y$8fxd4U zdnjumNx-I-p~L28Qwvr=1ePnKVW&YgDs+{Cmj6=3t`>dIo#k=9zsoAsf zP-<=HIi;AI6V=*jr{YX?b$B+L81K+Z=~2spG%4wmtyh*0aBna1w_D-+CHmqEsaK@v z)Yv+-_R8H}NqeF2y<8)H{QG>ip++q%AS2oGe4uoJ_)eQd;0G=b?o0vG&r8jOhbinW zpO8Qmtikwax!_2U!aY)=XInSDuSo9wxvU)+UG$0*6KJx`{Jk6KZ29Tf@Ad=YZ*6aJ zXzl`qv7<7yVsL{;R)T`!x{qv?EQOt?j;iWnMtRa6$ty@>PJUdQEFC0QUSD2MpZkm! zf=YpN9T?HPZHKnH<@b7y9wBNUM&n;w8X`tY|b57JvHLeEaFx6ws$kH;da@VmI2`|b-IZLM7 z+V_=_VmFwPOHa=DJ+rZn0i0(fz7AS$Y*JcEAue>?W=9rL2bD!N0FA?$+s?L>P$HvV zt2H9#Q7ft9+e$VQ&`ML+qiZf`KrHi8F=c7H#pTw2*;`q|Yl_V^n@+#cZDaQV5i78(a3HY9;Jo zU1)icp2X3Ty}chCMbC557`DKAN+WnI{!3;!odqfs>W(*x94=bHy8XS4`V0CrYs!6j z2MO$><4~|Q?xS<9>qo}XTn{75Lb}AYm(H-%hO^?1|3duwaJuOD ztm>h4Z_+&tE7dY&ue-%+S6OWw=Z+-ofU9(jn>#=Hj##S2X{2TrgF|?hh@sN#j|0=eNJr5+U6iQ@ajy7uPTuRm2#lT4&Go<2UpcRGM>F zMbmmvyyO&Jjl+nU99|`Hg!W4u;-va{97m6tMuVImBK`|+er>%m3j^sH`LSSy8S$l2 zpt&Sr0-aU0`n+uG)zOa^3zPm*buISh?fvbgKGrM-v8YO92T*!eP|mVz*c!OP)}aHz_-Jd0m0gFz=Vp8?G46XPAF=iu^NbYPP43o&TYh!Srni;!ZCjR%wL2*r z=_&=5GZ2KTe7~XqJjjtnjL;KRuEH1n(8l$c&fr6dQBYC)0j34-nLp4o%X~=fy?6jF znf1Usel~FR;lFYpYD`Dm0c9DKk%^nn_PBX9JjPzXD7T>V`Nu8g7%MrnGA^f;$K%zl zq+Yrlznk3!J%7%wLu#*c**+I)BV{3%=3B<=sc-3EIYJJ%M55HD6F^Zb98f`+epFKu zXI#CU5oxw~RjDmRxOWco<=s%SK{xASSNrstF_pcfN*CuMVuPWIN1mYUnlMv(XCh z>S}RDxld8315pyM>$a{mZUljr<5;5$7dx+z(~8yhL%fmZ%770xF6%v-;DXPsF0bQM zqYE{ov!@?Pw*y>-fep3usQd@(ts!(U7r4RToHIv{jp%TVtvbjR4)5{MM(mS~rVGE| zc-hjom}h1)_d^Yr;oSqyTb{eK-!N?8Jh%cu5>9%3+1~a4HWBl}b2`khpf|cj6I2H= zfgInk5PK)8jMzBvD5fW-eYGJF=OO}ye$PrBC^vH|Yq|WOr7?bTr1Um?)Zv!q%A}=n z*P-aYyV*8)-ssDUBDf&yz2SFs7pfSEx2iW;d{AIsyc@!;kxbj7T|O^!bCWX34y-)W z!Ya>;J~CQAU}bD6eeiDJQF+{_)Od!^Xl@RDYK7Rf=`c+WUS^P!%i-;Yd4-4EX+jU(|Af87gtBM6O${}u*j<03-~b{tkw6H*hm_e_p3O;bw7r7WW{gA zSLrQv_;+g!0^{`7SHuCGL{9h8YFf&AyzVambuu2_j$<(6A^DLm|0$~}5R>w=j^eT1 zaBR?d&-;Lu`Ju8wvAsLlLfCb13yN#JX$fG*7HSf(-^vlS-lu%;ZieCMW?7Ab;fsWNZfvw9FB8kM7e6#^uc=EoB<7G?6*>`|v=DL2+E)LnZZ* z4jT!@8qf3KcX3XJKt4d3R`4m~zgVO7y`QgZ0{jPB!@G>NGKby}3ljHCm-P;Cke_+` zhGM)?d2s6a!d~D12dm9)ljrGsOiC3dZ2S{%D>)cjhL-{ok`&-6sE_X>68Wg64W=qu z-5=~52L;C^roEi!ZonN=T#;&@Sc0$C&<-2%D-Jo!*xR-XbK+|Xx#%i{^7Zkwk?!!pd zo~wmDI#&kKWC4K#FVPr=+wD`$mpgoT-JpiPcDHT)zF;%HPC+W%js4meM*0SL<&w2k0O!|;F{DZ|PeW$K^l#Tehx7YRTKTAr?1a1C> zr|ILuVy-fvA%PyNI$+23xkk8YsLzykN9jo97)fAEG7 z@`yGv7-i_i@z{A_hEW$d!XS5jDKAbhmH$s~{mASgY^?CeEJ3R-d;K?zNSG6&{DDI` zrde;VHAE5`bo2pp+R$R&0ei1Cg1al+B0*K26BG{L{>zzio!RJay*(dv7A0fmOe2zR zD3(E#$o#dJ@nej`^1H6Wxeo2t3*$P|L38UPJrf0Q%i1?2b=)q{DiV5uajQ+m+;d_q zDLz2Jb9%4kEmAl4zzxq zsC7^|46H0cNZb%k={%?He4x2kAh|2U4utf50My-us6W7rfw5r)GuSxpM0j7ViQ%(g zv_>Yo)U)Sr%*?B@s3Pt!Ia2i9y%Vddh~yG#pc4guJPBfOwz+%mO2vrfNYSvH$Ut+> z)De=)?W}s_QifgG_@|0kL)5M4TzHW5_e+Iwyo6?2Ax-|6e%3*yz)qksbEoHeA`asv z0cP_p#=X{7KVg$lxugGa%l_Up*K2CXeXrBxZjEOq=P|6EvP!-!TqP$rbN)eC2i&nQ zYO6!ksZXc>^ol@GksP-AwFg{J8NLYphzJ{$@VVqcj1dxISy1LYkQOn|lUuii*yM|t zm@-VfHQ`!J8>PwQ9n#;`r@u`Y79Tq4ZqM#5;&&5szcVDEmGNlWlri`P<6sjU3&f za(Hry{@PN^tXzs2H@Uy1diNV8`m&EQA-~FP%BWrleKg5S(YPVnRn_#gW@}9n=$v$g zU1{bOPiUFL5y|z#USV(6v2J}4zB3jv$ZbyH&u)_aC7q{5Hm*+V8+K?_q>x&L>B=Md zllR69B@e&VP2d!GB5fp;S^~Y33lK9}>;a<=iZ^eIYI9ouz_!klZ{1eSB_lKw7Fiya zmzIX{dDqXF?QjjG?MBNr{2YPGf69*6bn$Wd2kXf@bGu2O^B=Qg{hYYw%NdSU&NU|L@V%FcFl?9*;nL9Scg@ZrHzhOqSsdS6bX^3$RF8VWAY z(k3{PB8pibnD`;s;$K+3Vl@8G29`q4jcwH-2`h*TSXdm-+T=N-vdkB%6m;3lmYZ8% zyc6#)`mHpjuj$YDltSm1_(K8%RQ@NDkZU=3SyDF{PJzB9hgNO|t4l7!?}PSN!^w?n zoK}K4r3XNu6uR5WcPNyUA-E?@g8@KO)3{<=34BQen20&`lhpsd%)I`nZ>gS@H`3{~ zaV#)CDQ3coOyzKs{xJKzqgdl@NF+c0AP%aIMlabQbyWVK;SEBLdILT@zx}6d9Ed;n!q+!WzKr6`)?8BENSuY4VOGC|>L(pF>nj3EgZ zT9bAQCqxSMuw}J5QM8Yum(FOawwRd`FDSWf-cxQtLxaD#@AHQ@Oh#t;{MgYmLMp&o z^yf($4!@N226-G$d`%XsKMENV>SdbOLrmZ^>i;Un59nlO|Ky+~RFsd4&4e4QuoJFr za<}-|rOvO};jc)|oSpDlVxaB1k>7&w)87aDcNF)cjj}^}su*83coOHKA_WU_dliCm z2t3#z4Fv5Ps>l%K+H+Bp;M>fWHGQtS7d|=oUxdwh3%tMMZNQoTXwxC82;*nQn;=Jn zknTj{_9%Shd!&v-Xsdy<+ELzoMMX!N@M1=E-0-^n=+m#GUjnLcM)FIakIOXUq)|GI zd!RcXl(~)f*PI{zC$(ouwr6*adUt~#@{g6J1_koZ2CzAvK3lu zKS)_66(Sd2VpYcj1a1JHMsFy7>|6|OzDY!2{mNT0Qjn2;UV&X8czo<3GO9lS(Do*X4b| zt0CMefYK}cR%u+OfjkgFverq8zF1HJEvLN^xuV`>{g@ZdoOLWX zyI_QNl;fJY5E#=;7%ld&YZSKbY7Dd0u=+VKsD`D-@YpPSqtLukO#3F)m>l(SLCvR3906*@bks5;<4^p_prmo(#Vw%bWAR|y&jAb zs~3#fucwcUISY+cSp`yS1nUN!HPzlR$6XvXn4>JqpcCrXf=#w+4n`L8NqGd1lj)VU zW9>-Kbgy@~Ir#5{^4(~Os#VVs6Un}-G>6b{axJU$4?YdYET<$i>X349y zoTBuGf>Nt#d9#wUP&54o&{;JCV@h7p@oENQs{c_!ZqP3oO*q0<d;o#o0f4dlxj4fip#}7cL(ckXct%`cRKcNEHXoHL78nbO~i|Y+UV#DH^R3Oi& zVf@1!NPTbQOIv0vA_n%|$a9{zSxE7&CoY15^F=5(kL}bDmDe!*^oSe5Zlr2lKhSO6 z-O7zWDED--V{|4#&|xtOyOVRnrcOSfFgQm-r>tyihNH>_D)=1{Q_H3gq|HmFQEW6F z<-?}yuUU`&PQ3ilq0#6y&W5BQ(n-&*I}~`QV2OCBMCtNpN2Mte@ONF65k9W2WwVQH zY+I|rbyR|qA>qPQ%;l6L3VG`G)34O<$a?3NtP#M{s>J=#YkbYJr4PfIPfD`m^9q66 z^d46qrQ~hFyp^@UOml;vAM#;zE;@Q1hXFc{GQ`2uXPeH51htxH@#12=a)@MGaYV0` zSA5=as`?z+O&saM5&|}Z(q9ugaaJSXTG7;~n`cMe-E#s@E1TP(oBhnbQ#|JGDp`W7jG_Z$UAW{t@_GI)B~E zt@R2iC+8+1v8P8oay%Y}ziSpE4=8+jTIEe@p!}Wh&*9$%Ru;a-E z@R{gpmAL5ZY4W1Q9;H6BuIqhel7lm)xKu7>M^P_WQ*#~z*NHE&V&grzidC;I`sLye zY5TfP@^s@ar}n)i3UjXX!}Y3m$5WSG$R~;s*?y=(4g0G=o)KciP z{d6^v_*|M~z&*Mi z>Gl=bTONCG<1i;V^wwwlWE9Yw| zIl@s?^2uh?JHIL#W{Q@xE-Vx91Pu?g6&fz$y&uuKTe-4UFCGiIeycRsQQiDLlF3ui z1kv#pY?0@kJzd~XaZEWpTXJKsv2Nr+yKdk4EQjUBs{9X@LadY3NRfof(^+q)P7j{) zc+y46>>`P_XVXSS%dzrfD91sV*84IDA`;iu>tbM0Sz4eye-&?meG4CJTe+AyDHiRZ z_5#%tSseF=_lR5FqHZZpkfmVjNTw&^)GOvm1M}}Nr}~|%F_nwY%Gc{90izr_Qp#nU z6b4XXgJbKrCCXDFrPb~(4vugI_34r(*=YrykJ+rHkB}N_??kOFw9Y9eZ4FZfwA2bW zLr0`gX#&%V4Y(hp3VE!GPG1jrWz+rqta$I64%MI72}GF&3RV%YR=ZvQI8tO*7g^yY zV_gn)@C=)jhw@%j^M zua=pnyw9>@&0H0bbZH(3<>#asSlzGI$%86&zarc@@JNrLqrX>emUN6&JpO&z#{E$i zoV&p|y6azJRlq73v90^|F7huuS30k9eNIxRvodS0haLJSKvONG)IqOyco2a%T3hQ_ zxIgB4y4tYr)bDi~Ysk=0rfmA3o0Shy)*XL5=T`3xQ|GqjF_mgP5f}jg#mMeh>QETnCDmaiBdQd_gIt zicX_fbCH}pFE9Rmhq-V1c}%6QaKr|&an(i^YKHBV6QM|Zrt-Z7!bqdK@=fAAA z&hsVZP^zsy-(qx`l#*;$N*7?;@f9sKy;;ohcQ8~==#P40hv!&=Yiy314$`m9kHH1z zhb{GDhm~^*l-}>|!U3bv;Q`*GI>`RB$06h)2XT+)rpS|y1qlLe1AU?t^KgazVHTYw znXc-lR<7sPfGeXqb7`vD{4<+AyJJ>TLToJTv6tux?;ef85KA|&;-T}1mi`$aMiZf@ z(jX^1Q4yXdCn`jzURkKcQ|sRxGtH>}lr_?cv&V@Ba@Mba#Z|fywJn88+L}${tDhMh z6x5FosE>k+o^zav)1)P}^UCfnDB(hur#@X?_8=I|>Y0y)VjI32*OR4%bWr5%KW`g1 z2imB%bvA_V$af_Pcmyl|bYIN)>KM#(UZQzdS~f898@Ab+Na ze#gzZ?LsD{ogYk0G?~%9!M6S|46oGm1jTjM7`Hs5uieh|8H5%#=u=*nt;B$eTfbJI zLA*MLoVXtCa|#EWS#Z_akST{=Ug(sa5ZK_K21l4)&TyVR5xbN3zm1MY1X`tP4QwhPb}pl0-X zYb=Fp06UYTW6K8deLHT=>WS~RsqB1!zmtS$f}L?>}%>q{z%G<{CB-{SQ1fPYjNOlbzBl~@1ak37lo!JBKY7+rf9 zMx@dA8jvLM>djl5da}R=+Y^TK&XO_e`4ULCg5Z=|#B#4nVJaE~*qGu$Y40P(L821$ zO~tYD7uVzV2nS@mOL}idbvNM1#9*vkD_h5Fe3>dOFRNZGyd^x8#NEq?E?!$1^EzRZ zR*Ric4s-NG@n9?fcR>{o)|mk-zY1#g6n}^UI4}w=zZ;@x81M{6_@e*%e9rQmAn3%E zO&t)`EOAx4%t*cQ!xkWF zy|EczSm@@%LZ|(rYE>-gGym-^uh!q_L7S$DI{_RFj77uv{_CqKzD%jw3AHu(e*iy3_h@Z zhP<9@!vrz`p-LbAH#jgKybMaPz@xAV3FT=Qm4AbDK-Dtw%KhXL=;xLS!HhK%a42*? zj$QEGgabsgN_(e|#og-QFzLC@ zzb?P?W0itW`328>odnxGPOn0W0JT1*89(D6EF?)qR(}N@+rjJVp8gju2EJW77!ch$ z`M|(Ebtkvie@XipLH7#=ird-|rBv=z0{zCD(@oLX7A~^-luvMd!wxb%H8$jdLl8^%yoUNpu)g)JH!D}2av$ji;R z1H0WYRHt>E_>H2QhSinj%E!PW&lT6!o`Pei`%Je32z8ALi!3!}cpuIJ-b1})XJ<`I zdd90pkHOLmTOrYJHRO_15mk-EQ4O_ow-yEaueb?PSeqs^OU@_ODd~ z&wBy$wYvpy6E#JFW7$cXOyHZMWOAIs!~JHs5aLuPr-z0OMuG5*3&%-~0L zS4DGvAfIZ_u^{Y_@(5OoqMU3v#JDL_0vAn-+tJj`UuLIPI~%qIdKv@+buWgWZye?nc58HO znvN-#n!aJqdv$=F7l_(ELji-mIB+vwJABE@;Ew0o&2^ls^*>lkK<4{1u08ZwqihP1 z7_h{=>N-_wJ8gU&d>zbq<`*{?bN_Vc`V!KH$RGj;Cr|x30Q-F;nG<-U?)aqa5iGr3 zTbiIYqP)p83uU=?vm!lWl0Ub-B=!7{2N0dkNZIC?R#2mBCDK7p(b!NR^p+b_m*Q$^ zV(UuBPVmYnxcZxF`n+YF@j43chk?a))7P%Do4L*|YVQV_CJpb97yUWabxI*o=LvN^iGtZTQlY}`R zoC|+r?31 z42EMg{8S}-$_^AT_2Y`1mYh@3$#ZWH^>SCp_UU@Ytes;bz>6&(z!!^vFK3ylZ}PtN z_L$~}i& ztgU;4UPS}o+-z7hoeG}OzhCmtzu0#Oeq!aFf^GU6HD?h!H~2Sje?G6f;l;(e5AH9ftb5eFUqL1ln=Oh0z`^p;z6mjdFJHqCo0 zBvMViI`Sd$#d7(V%r(yswfXjCc|~bI<%bPiUk5TW3Rlj=5ePlxQaXOD<3X!+HM5Bm z;m{~(8ia1SUkfO_V{MhcB$$2e!yb|1JH-Mqay$3?!(khnTwAk2=|`^+C9*+jB1N*b ze`J2{%WXevA*GFuI0NzzN$H*K8jk+fch!@E-@=W8eh6^ z5`1Nn*45MbJhQwygxcLgd?(AHP1OGXarM?=QT6-xH!3NDAkrZz(o)hW9YaVA-8!Un zw<294FmwnqLpMlwcMKuYCEcC(vuEz}J?D2lf9a(IGkecx*Ltt@TG0VusH+CSmXVsc zdtZM#7ddPbdR^^h&jF~&L8gRpjT!br)jLYQP_PEi&#h^vRSJ22L+-CWK3V&%qZ6g> zKKAr`5KxqgJBBGSdXZ5reu=^;`w&7aL~t(tA2eyZWE~E?oW-_m80d~0f5Yd)Ug<*) z{`}3%&n4J=H@d_8puX;Vj6L-O>o;@9jl~P=>Z=x9X77AmhngnF)HnTC{Xiu@ipGdN ztmo>|!mYcQ%MVqbz3U8+&U4}G!Ehue&U}3{Ev}o6vrLo)FFmP~xiC)FhatkP=AXiP z5$1jc`ZJR!8|YLmlj8nNft(b%q<948=7sp#0UCOtY5ewIFtwdt{f;CNm}xmmEL_a% zEMbuLlmG}V3Gr9PWd#Mc2K&t$J<|vVnOfS>KJ~N0s%07o7(rUZCzv#3F%^5Ete6|2 z_snQ{{2)k}Gt5YPYj~-I{&lh{yU6MUdxAz&;rTHgm@u$X#-+esTSffO2`$NCk0fpc z6;Hl-+ed&0@?qy>s{c>$lx&TpJ7VWm{&+S`M0N2x{g=ONE#foKGTO2C65Zcm#oQ3j zdBXe!eK2bp(*|6)&y%f}FGCD?BEls92hAaViI4s;<#)iiJ0ypj-wN>bg6CQ^s>_Fg zBI!g)55qN`EgR~KwhrSC49D)@rtm|gTUWLKte4?yrnTi9*!c1vG=qpV(dVx^0!_DC zBzoN5s`&D~5A%O-(bl%vIj5{6E$e~Ro_2*HrC!<=U#~Zl3>!<>V;lAw47xU)k$j?v z{%E+cGiV8m%U(2U1@N-k=#o@hjSPR{CnyMOC(V6$Cc}$A-pmyw@=`3kEoeY`$oG?U zu~euV@f2A(x%<-iw8;DwAWbVsD~&6dBROao>~5|v zv0ZceofVUp@>0hd&LpD@;1poCX=hgiF6xJW>rVuPxg3=_#2W3{3Zn3;)xQ-K<^h3f zE?Gg@5F8eM%XbgCcAg;2WO-~ox{9mw*7*Rde=sV+tElpG#@Ix*)js5{_qc7Ohw z>Lnhf?^Ut1G&jaQ(;=~4{L!m|ke~~bX#=sS*TAK(=a=HIi@Km9?z;HUjBCK1Zg-lo z@dR*(1J-gdjJXH)I? zVb0uZR+>e6`c1HG{A3NKsw%b>FKtqS&#ZXaL4R>6Re$o-Mp}$Z(M1pAvLoS;CBWh$ z+P1b5RRe2w6Va>&JbP3g*ZAe7MjVby%5>z?L`-pd`G@_A@4%uUnsz$ro!G2)-LBf- zi57WG&6%bl^Ms!0oj#o`TE8dO0KBXx^n3Namb>weAk zL`Q~w$id=DUy2&t&|bA}cOCffBoNtzlrBPm1J2lv{r$4lbR=27gA!-ZMD}7O04T#t z4mQ{VcG^qVv+o1QyRTR1k|tErxdjs>No)*RztV*CGN|o4Aa44$L*hz*v^Ev5t@NMy z4SAXCgm6l5MKaTQxdC+6Ix{v%G&jKGLOygQ2-}LNKvv0AmbShjoX?E>q#dX%vaVj> zni4)TUwo2hBeg2bYlB}-2d1H3Tr`>%*6ds;b#@x-4CLS|HU6moSz(S+P~=800Q+1M zI4IkgGQLV>S=N3<@{^8Q1qNUue-v9|4A_VG!vz6`C{ZALe-b{?-oarBgD1IpWj#@o z!KK~KL^3l-6?3X2jgX%HBer?WUbFSmR~cNk_KVUrsj6M5Ho|#w$9J9sqX&>P9z0iN z7E^6r=r@G#me=b!NKOo6>a;rKOeE%}?IO4oGZ^wqZKsDVoXh zqS9J1F3g2yMu}c2zjw$QesMkh`2 zA%WBR_^mZ$4}A)7+shkNtMHTh=>Qwv>SFfrGy8|rl4I^Il+mmd2ukK9Y)}}n1@`*O&DKq@GW6xh%Cqf?~U`}YH%F&;v(ftyqmL=gBOX=tx4n6=8t9(;6mZW-PD zv8my_%=WDg)h*PjgVpKmT@9@Tyl}{yXxSl8@s=ekj7~-qyw{k4{_Gjy{-}`X(M3w_ zE&hr2i?1deZFmitPyjOsAR1FRH1uHuuw`(P22r$5vB0{gBjs}st6Ob)$H2b}1-FSOT!0U#4=L;=5{O}M%Kch*SrPEFU_ZZp zWAvX_h|F^ldr#AE0#8kmMN_Bpfq&Rv$x2~$X0*fPquFsfo_(71Y4}*_uIXQ>`gF~p zfl2CG|HNb6mzzdi2Pc>$Ik|&lzrX`vD%$ezckSEE-Y?$;+y`KV&i zm!F9PJ>A6*nhTOpH}CpvK>6`=w~=|RW4+@8d$T)ept71h!H)Zlt5k8mCPH|gw}BWz zx1derW8veK;BIXHBGzRzot4V5eZQ2`<6R7mL-G~A6d;_#*S-UzW04+sV_%DIUpmA3SFaYix=R_jDOH>kWknGe=RI+pO7ou zCZ1k4$4Gk26YnR^epz6oJxb!-N?BE^X(3~-zC{7a`y&97PgJr+(#478BkWXSQVw2_ zlSLUhXW;4;_JgQHF1-~^pSyuJG^9sECXM0&va8)u#vfM@m4S>n>?9+T_eARymjJt< zxkzkDN?+!&KNz=LJVsmB1aMo3T$QGjGnZXVIJVs7=Tq7@v?iRhuC&03XlYW0uP(*P z!z`h~jm744JoN@VCp@9|RD}q81wHm})iTG+_ys#3lJdw#Sh-e`@pNa`^vG|m`*a!@p+yOV`3vYkOZ7U7$QYJiF1X?7aDMZ{fzJ2 zk`(H;j&yyac8Y>o&F8kkGVe%G1cD0}3$69RQHPYH$68vwbEgn0hmFzolix)bcZ+4~ z$h0Qv(U%%AecAl+%ht-qy+*5!>yY4bgU!HtHTdDe*3PXlZ`0yU{V`V;K6P-WA)jg= z-UZOsvV}^r8mG)%rN0R#aEy4|ZhB%M+q4mCoJT)B;i)@-{JudCOwoul?OpyO-=S=+ zkjq7ykHg3xjBDo@t*)dvZZdek*uSp%M{QfSV>q+B^sfrCA_>YeF|OT2x?Y?RjBUo4 zDo#J0(8QVjs*~@-=;!JA39g$KQ~KeZs>7q)r2Pifrxczk*d}Dn=3L{0*U9a|-t|R9 zzEJB6RpLQl&+0nJqC0&GY2D0f>$=($$C7yz^B*t*ip?4uPVjHeJ`Cw1MB!#%w|Dqw zjZw`VoC?1JBp*2ilq=FOdX|&#gsY8&HcH}YPWYwZ5H_mF`f_MH*eTwTHim(i(nU18o|tEceAC3789 zF?k_f9WwOJlBHA{W8QYxf5{fEUHq#oqK;#`*N{8J$c3ijfR4sYDc4uE%}#4mif1Ym zPkcmZjZu|1FK?l8=X7 z_K*E(%l8r&m8RaKs;VrIiicDHoBLyr!s%25cufH^oC3 zp#I__$25!&{Cl=#-b0+16&NSt3ea$9zU4azWtxPdy`hOmQz5vV%w%RFpl%STLt&@w z2txo|U)R^|Hd54HLJD22K5_yLy3bAj|7Lc(hn5mMCXVE}#M#I?D%9JdqT)!myP*7+ zZFxAwi|?f}qH1#gfxcoce9iRcL)&q_k?@728^12uy)l+Be8sj-p-NI$~a5tT_* zF8@v?MLO+0iK0J?v@`&IY(}(KSVE)CoN126WtaamkkYlY3uBo6>m3D(Q;-f?F_a6K zA%N=o;N#lVO7Oj=bkFJH5A+xE3a#XaNy<`#AMe01XsYOM_SLXit-MI%?7t(8qZW!! z<)0o$DCpoqRs{e@?JIW|4>eqVPOF|GQYs*@@%c3Mwpjbkxl<861L>6YXG5U0$rA|b zURKOKI(4ZPO7Hg=-mv8ri>G%{jsNa~i2q~|hm4?vc{c5S#fV-%_huoSvop4+0P1!e z*JP0=Pjm+&*}p3@lo=m#j=oJCVzJdQrTu&Bi3+O^0E4<10xCJTa}g{iQHRBHO|UY* zAB?+Z)|3WClS$5P&~4g@LF$-qs7>GY3|^DQlQLk%Hio#%1rg*P zKan^&EbjocVOu0Ob`15K8PeO2#Ciz;5I`aJa_9E}|K@^krTZ%s&aNExKFWsO%_IJ8 zx~4ev%E3BMQc|;HBywgw3aB|O%@Pm|Dv<-d!W=^2F~1P-eULmKeJ$Z$cxK75!LLK> z`zoSJ0YM+qe2}tPVB^C1`!-qVPJ&l9G^~w3J#QzFfLU41xnnd=ligQ0IWS=Gpx!gB zQV;u2WzF0qYVAoDe86x!0cE{KjJPpDu!G5ZpXlCfh#5dR1#gZnwD_HkD)e>k%36-=y`U(5nmB=%$2nYMA$wv5!bbdhW zn!KYjtIre75~jy5CTqt3L34UqsmJ8spLfOql-9Sy$yKP}V%s^=5)S$b_yHjH>HBp3 zOooa|{jr?lbIrF$`hQN%<;Ff&iV6$)lGM5w3zglk}$ zh6>KT${M|tdh4nhQnfg9!e_AlA*!CM+S}G z%iHWpb|86pcJY`nWGn3j{jUQ z>B)A%(+k{mF2@@s(Q6FMQLZQVay+mKsH}b}^&6Q_phsd3*1nBzdk(8yiGGfA)|VpM zrpy?rSO&q^4LskpG@fTKImbvx!Xi6w&+03XG5vOJ>7Aazd|1%Xr!%GDSB`NhU&4Al zrRfYGH`*1-=rlsMG&Ta`Fl~=c#6xkF*ukTl)>o=n!DRD=#qZxt%ZO!bxEQ5#iB(3; zMozkc5!n_UT)y-6)KLj#op?&O1-hP;^*pX2T-`K^f}9=WGG*N;D2DJ}MXg{?|VOEo5Wn}?RFLwe2;P?0|dy^*KD z21|NK9(VQzI{@ZpBw!bfT;{>^r2Q&27f}6nu3QUGoCK+&*DuNQS5g6-? z!u0+5xl!EQ<*VgV8T%YY`(USywac54 zO^7z-?~{`lO$90O!#8TUK~T;EDGi<6@?@JVHLq?WRhuY|v@yx!EJ_Gs%PU$C6!&Fd z3na~#3H|Fg9##ThH%(9!Bvtf~u39y)$i1FWgt6=(d~eQeJ6qf7zvFj@JgTTM@QVb9wkOnBExZ)eEj-Y*0X5Sh}`_7*0FE@nO%Bc|Hh- zX;21h1;6|&w`lw4^FL@(%FN&k#PHwqkEcu66TA6g&G@YSJErt_P}+1g7TKq=(CEUe z3QWHuOj^#D?44n0pQ}lhYF!^60uK~hGu=MnS?kdhLl^{q>2ITrXarUSwW$@lnqS94 zTVG>wKhX)M|B+2Tgu$7Rfwv>Sezwd*D-wI9F_NZLMv7;?*l$uK{+d_pu?^foS-fVSZ;a!Q`^{-d$LMVa8u^iv5FrlDo%XR`mb30eA#vAf z9!M{v<~fYR-^2I|9LmXOb$oxBXmFopYA{mqD_na#`@GZ(jL0=tHV*1KMVP0u-u$%F zppkLuaCTw$b8H+_Or2va-!WFVMRQPSQql5Csp0Q>uAB@PQ+A1|s0dtUCW@U>jE`py zY#LwP_{K-370kl_t%Og;3Ls|zL?@x9dgph+8ulH{0(Q`S`W=sddRpyZA|mG zpbVa3@T%@W{hTm62|iW*RM2BTIP0&jB$yur8(bviOYr2tvunnqqo>Elr+Z1L&?{>D z@r896Bxbx=GWTiiaRRi#ZM(Q$QJ#?Jt*>Xaa+{8oyTa_U2^73 zV#iz($0$K{tP@?(M&ZBF=aTo>7=|I=cfQ#3LVcf z^-I4q{cE|Kr@CXeZA7sj((}|N^x1P$>(}QAN-V%9W=(t8oI=bKYb%uSCv`s}wtmG* zxtC;2iDmo_XCayM)e2+G?a4H!hB{1|18?DQM*@Ol^rxOgguCU5U>f|wLez+xbZ_d6 z6rpI#&UvZ~>up3M$^npQAeQ+=QAgh8)Mfg6ne~+P=L4x{=I13f6#4I~8|6pK{R|!0 z`A@#>gQ5kuy&g4a^RrsH@+)>Fj^@{?Mg4!ufOR_%utprl#oOMmVz& zUOgkUcRMVK+iUz_w7$c1GFRQl4yb77228LKxY*h4Gb=0E!SQu(46>6`=cjYx2S&5K zTC3Ui6@*d~fBnoC&afAl3h0uII2!UM2_U6idUCjxF~^=AR$%T~6EJ_==J+1rR;3uW zewV1Bw8|o<=y1lQOkuR|QHxNyXDSju54t3ZZ5Cl5z`<<$p(d(OX9h2Mi7pby?D(lkR&^S=uwCUHzZEu~Fb)0bgRNlEBWVOL^R}-10D8z9t+WZt)Fa0DZMZ}8o!wn(O&?1W zv*LJ}y_>;+72Mv#>ujo6`ZF4D2u0sY=!(_u@BnspK8rGMbVvyQTH<#vSd+dC-!No!si#ms_>NXviF;;v2_V}G`19RxL# zjIT>+2yXsWY=2eG{P)+daMpyYMloD4D@1j2r9oA<#j`teGDEz4N_rCKgZGYvDenD! zwAY6WS$d}zr9s4?f?E=iWBvNta>jUuT55$F+@YoV)x2@CchfJ55@gvQQ7uTORph0x z>Z|{<{q3s$_sk7|W@;kd!Y!WvQ9JmV?3K;g)w$i{>41~n{c4uStEwK4Ej%1Hm$e^s zsPM`|PZhIvE*Iv=SPti$n&{3cYpl;0E@&=diL`boSqwTpoOWcVGaD&US`N+GITFR` zOz>00Xv#F-)=;mgJ}o=`vsA4%Gn%euV|&>(Ml)W@xK&U9Ysr2+@-q91Q2NT*U6VWb zUMOV%ji$2eS=KA<%_f0ew;`}!VKt}YM4aZ(L~cIY^;BO0W%s`Ly3axOM#KcCUShb# z(p!CkAIk3+1RO6o;DK}M+0M>Q2_-{T_PuW|nu7r3E!-k`p&g#$!XeZ{2DntsFMI%& zsz$&rz+sr<2F(_4yuqSKffynKp z!Tnx?H4WAjP?+LHYejrMjNKSxYg<7>qfg9cb_F*S^X<>b9vfD&jNH;+`V~oi^AA+Y(vYi7mKtR_K@qc666 zFaK)f>bY;Wlm7@NpkW<&cX0*RiCj6u?klh{r`LDYgWJJu>Pe`L^M0jRx_5Zd)h^EdYv%l9T~+2eS2TQwD5k7Izr0*JJ!o~Pkd*}+GpimGU}6klU$T4%+$|j zjS^Rx`YhkqFqCst{WQ{p#g=RIx#mmcyw>cBpcF&@Jmc`2m8|@wg;H^!X8w?R>45C6 zwtSkU@>_u&O`@`jLSNCo8O`M#@!cA1ba_<*bapAl(l;ja+|RkAoDyWc3k$a3g)7NG zu9Vk)K+Z_!T-{h>{*Fi!K`J%v%!&3aZe`Z5Ak6|tbUljyvL41*rr=4mzdhtR!l=u| z)O3u~uZm~r>d9Jy$@l5caGj}D)BaL)d!LxyJ^QXo*oxbbs?_P(<6se2QTQZ0ZTf)- zGDqB{=w-Zem-A}1*P>-{P$g%+Hzms|v4Cr7VNKc1))=qJ>i92)T(u`_($K6rPw%I{ z1t<=w7RvmnkFpK{^0CTs>o>qXG?dqBBKlZ3EBv#n)Q{#MMXb zKyl&!yOz-eR2`HrDd9=|aPT_*=Spklsy18%|CI;?P?Kb$2LyV)Ly#(D8CR&VA3(X~ zG@~wt->kW4mcz0QCv_253w#>tg%!rphk!B@&pY;_{f z`p54IpezEBTWKo4Z~X1sQ1R__B*~Hlt&Rykfd@+Dnu#a-lQTjB6jE~#6P(!_3?oZv zjN)tCcA%wPYV$>jE5P1k4d4#7^V}Lzv$$LQ);FoNSxKQe5e?bvR)Wl;=3{YD~hZ27} zStC}>_XyD{)NKK=+kpHl%yw5lwMg6S8w1~*1X5uqMt7J$^$&{uS6fg1UkBNu;TOZ;<*ZawZT(q8;R?8dK58<#jKe zOEyw7?Dt8_8)<;2M8Yum+YcRblY*9(RbQuhx|92yPnLH9ynsF(U2t=Td7cse^An+Y zMC`2<;OZ?AR4d`C=|e>7H~jgNkqEcJWvxLBqD;HfNV8xc&DJH${Cmf5B;=;}`U#u? zuifE^yNW|dCWnPL@PU-ISPu`4Tfe#7KHtx4_ z?4e^}%>LrnD1!(P=ZvpgpWIrAIaTE#d(;0J&?o;(B4`yc6U`+n-#e~APT`^f{WA`X zOt}LtOTo!rpbgXefy-)$_$Tg1L`k~H51|5BDr-vDtWdu{2o;FWj4|E)WN$lx`u!*u zwrm4ZI|dwpmrgi6_%?4{Zb4r6C|{xS8)P~9FQl3avO%b3lB#fD<9#0S9Rg+w|Hs+< z2W_>mlt+t1^B^~wF1ybBrygNrD$mbjsS2JE@d^Y7@=eo`w9fayN@JGM_1iZ7ai3P# z&B^io;AhV|$%}JxpCY6Ji82ZE{nw){`ZD;*npus)qp1_MD_O(i#mxe`OaIe*=1&~@ znaBUybc51;JSmh+uF)t0>}1<|S??7EEdD`L6JA~lhswDY6fa@{IyOC$v=H}8JLtf; zx1w}yFk`BYEabo`A34hUy?b3yy7I5)4!o51=dn&FA4ljp-YmJADMaPkGXlj49!13s z-qOto`FK>F@TVA%4?O?d;?4kqZNX|MMLwIi@TkV$20oDuDsFKO_NLARgKt%kZdzm> z9Qad0{_O3VE0=x9v@QfG-%_I{n`8g|UVC_4?M4<4@9bL0)0z`-aPwcFJn9S$ zeyslPM;z^3PX(*W$j|=%@cMcs#y#j)|F;5p7~=WP>vHvHSfI{?8H6$apbaPmKb@Ab zA4uBfxfFBKl_>aEI!4kmqbiq6 z)%x3czx`4@m{fZTYyxtmk78jD>j1~;XLPgIKgfOe0=`o({^+~AE(q1}EbaQApH-^I z#6{R*!04ba(NzX{4b?Rwz7m(Y1CEG)a|5ErJR|$C#1w`Wmv@g9N>EurELikw#?$kcWgkCc|fn<3V$8upD`>>zf-fD6)=jI05Ne zMFm!#?v%}1lqyX)rqxqbPB?+7EBV#a3h(SVP>gSv@pR4H*V`b{jB!1-Z?_T$ox%d` zU#WEQjX4XE-xF2YajvhyP&!JBm#Zxmc5jvreUL|hpdr0Sd=Xyr#7K%X@riU_|A^G- zMUdwK%YSEl&_n{sw{;bk*(8m+&1o5P(&O}={|`7=!jAx$iCl@S755O|V1SVuy7m_9 zab4m=U=qQ*XJfT6uDMW_Rg-Nl$dD=b#r~2@2=Js5vAL|5?jEa%eC|6zsrd0Pv}f(S63{W;FoER-Vz3RYKEQH-rVLdR{xauiK?-Lvt@25`WarKA|$8d|xdc zEm(BM?5$kPEnpBT47q!K#_Vq}q>^HI>2TIsGL#Pj^nzo~B6_-tBX%a)7JeyI+2OHc z)uGzKW)1zcjPa@sF0+R;PvOE<78cm9>s;LcD`f#9kTHi@mAOWFY z5aR4ZZfKaU$68QaE$sja#AklO(^;2KQa1dvB!DFZubAm+O9?501!XdHv`-;^I4-AB#!e;!9K7#(FO%2M|YZ@e`IuJwgG+=hBzoUZFM`lOs z3-pqr6sH>kIFN8D0#htJ3atel0HoVfw3R?v0TkcyuQ@d397$UP@8a_W_^z%l_e&Ts zGPHl)x`Q98{O1kyMyKPXf|rgzRX1x+=7t&w2=^};FKlxrtAWacwm2y0SGaI*6pbd8 z?>>n@E;EfF4!{-46w|&J;@;{}wI+>+haZCPWnSpgMBF|MU)B1i&Z2c%U0r3F!sDlX zEx@F#L8hW6u+NT}&WFOmekpp;#JTWsS=$;G@r|ih00dyGXEZJ{AW)gUoU>mEdqPzE zlghuHsylorB!W^EJRtNeDtbz$R^co83QX8R*6DBaO;&DeyNkO%Lw~Rv`Fu+z)txIm zweaV1B31*urQ%Iqdg(0lWS(BcU@0AC^|GL@v+~FbpwwJEryHxh4{|zEYBjF4Wpi3X z4q6_Vtkj2zs$t1on3l>JLF5^3%(+R%JIX3KJT@Y?pZtmM{>IAgW+8p$ilG7x4haGg zr*)cUd{eGgBdwbSc{g({X>Gw@ei}(k;}@4{MaSfg`%2G~zF0P9`$Q+4iY8>Es6v;T z;KZx^&-nd!{p`e)8OP#t*H?<_Em(eck8jpW3V7y^ZQA*SoErY9CKpYWT_+D;^E;&H zJ?sS>yVsAmvmu3<`1MmZHvCP_tVowCkVHJ}#!gN@WTQ-S`g!-;bzd7yu%B3QIqfF= z0k4K)8>U%0_C;B<>a2A9)Gp1ZDPW2$xthzWriXpA@~ezt;+6XDR)~OS{yarE4L6>3 zvnSM#Zct>9evDNn!O(GX~j;k!|j9U?^cR zCzm9>A@|{+i=^m1Us$l=RW|$DWHaMdEX*(As=x3J4AK}s(%_l7Lu$v3cmh;t}H;4SmlX_|E~E3^-mi+-o(4Z^G`wdtQ{G1ka$ z6gFn;KuZmf$wmt?RrPh!Yqyk6i54|&gmR2e@SU|B9T)7S%GX=LIzj{%_V4PhO!OuO z6xuWtq=!`5?+iN+(FQ@v%ZxFW2=_SSXY79@9WtIh6?zau%5+>GC=6Ro<49bdJa&L? z-En;sI{hsjL-yujCdu7e6?M++LTs8LGD?sSFR>XAhpbt{MD3;r6Ns(CDaEv6fcC|s z(~5eYmSQqTHt+M40ys@EhDzXJ-QkX@{Eu$JgpR=?A>L(OR3glUZTWM!bDsV+&>XW$^UwkkwiHWo;jrUwtKKIybKEic-TK zeO2$Gs+J&Qq_u?tB=yAE(m6Bq!JUL#BJOT<&D4<8YJzwZv|JImQ+ z4v#AajGPLmzx_d5M@M4@azba-j9Fk-N^O~SFuS_7v(l){7-)=AI3Q{{6+hygyw&(O zU4d3z12JM|@(=5U)}u1xh>Nin32$Y=u5Gq_E|^Jai{wuJsCF>@l4->7*C!4+J2FrN zDT}>|p=Sjizq4#gezJm~hrxB{SH-C9Jv8(6r6vgr87WJx7*hKO>Ne zy6*iyXk0#`<$_zGfeSWd9b|trarz1)0$wh+vJ071;Zxl2FeQ{{3Z4sZ!l7=df9%et z2&-4w$4EO783N81XF_0(RaTD!c2l?h6Tj_SNH^)|dTjR%h4qo(Ks=wCHU!N1%+?&b z({JzH7}b(Lci`x4Wh9+oO+r#~P}oqM6&bv?w6W@BtDwYPn>xZC;%0kOjY8A+--ko%}vLuM{9wO#2&xcdVuCllkQq7qgl0|P$m8m z2c5#N+K`}=9v}C{1_B*VzxH)IV{&svv@DH*xd}Plj4Mk;e*h5GLES$ZsaD~Q+=S}- z{v~#m)sNLRem>nTD6kLm+1Ljx7(PP8V8wi2&V!?7YrXxR+zL49CuWA%h^PENLMg;& z>TX%tC$q$cjs=Zh$IlnOko;BVFtL`dx87!kjh4V=#*TN=0xpYQmAxyl&NdvaW}-<8 z1uI#pPCGimpEK2;wfnjf*40)9)K$BUsKmUMUXhN#C$x_Bv53v!9-zwWfj+IziGZgy zB|hu{Ak()1Kmc$RpT9J?wnP8=mj~_AXI@A8HGer`O+jKj{XWo;0z5Nt(emA-!&t9h zX6wrvOuJJ-m-I?kQ$jrPsymPO1@VV<*S9;gTQ*e8FCsyq9XI|jV!EqHGrOCfhla){ z8E?&K(>6{oSc8s~}O5OwH~ zd|s;9)8;r`iV)ZQ7OJWEDKR6t!px@ih(^2qOL5Z0hGkHqxZMFaVIgSj*t zL;CHwCMD5ngQhQ9t@v}z56i;x$07Lw-DwF9`p+9RZ5v!SSbw(Hp8V~2)Yx{8D?!k$ zH~!7Yy6k}|4m-fDx=LXtaPzh_#IDzh_+=nZ)T;X1J`-k2LVJPOR!o%AFf;FoyhxBvpsgC(REmIyOJI@yMqIFeADdYy=F4Cst~UIJC+D5w zm4Qkv9-9GA4l>(4v=ajbm8lspwK<@TJ;doBv4Ic_B@#>CkWHRLo{WCV)5X_%gBLZu`^E}^} zoccr4NQJdPh*6Yr%a6=<9q2h~?=L<*LCSuNpE1xDcZ$ZeWaotreIk&0r;H)0hg{(F zj+1$XP;zkGqHw|zPV~SXFpjYBWw5#}Xl{CulAp^YcpE=nXo-n0xAKgSK!lSxYUgY& zvP#eglD3joM>(v4wb;TcRz-dsxc<2$U5lblR~X%Hf9bLWKVXg@Oh_m2dMAngjz|v+ zeS#4!QZ%{I7K1!TS)F_sp!~;y}K67&z6rgu?7;J6Op0a)4xhD`*eB7$^L>KatA*c%jx$R3ZC`l5dAk5EcvhGFo#1J_i|y;%)WQ>QAwt6u`p6z z4F2-`l4b5HF);Q3uY~{5YpsI&K}Lv78WN#u-sK_BZuz5qLQ) z;a2OcaH;M;UTfETcX7`!f3-%6s#FgX1WK`}QH5D;mLAf}LHV!I$~%m@-o0L;NazXK zuoZ5De5^V-K;xTFpatq`AHY6p!@%%=$UlSd{+OOtbmi4zhLE^sdIj%)29Xwhw7}d znpxx@^IiBRfR26o_%bhtQkE53d?@Gc`7>S)T|ZWsO0c&W zBnHnk?5CwMx31q)v{2OHKgb*s7?OL!lyp%n;4aLfUnq|IozOqHw7cY8Et=`L;&Pdt zJpP3}^Og9=B2;OUj_<25%NDqFIH?&X79Rj0kn8`<47oI318TyM;;ZcH_?M&*YYLiA zBSRC8c;6E|&jne(Kv0ZdP~FWIADYRNUA|7STgo8gK5Prxw{KT%eGeh>T>FV(_6E@x z6qmOo_c0>`LTIW-o$AF(#yHw1IPy_C+CjIc=?M;&`}{|jBFKX~qVbuVXnDfJcf_p*o6 zgro}!>~y^1_JMerR>q6ob+I&r?IgrF+fG|WXrAnVkD%Sd%)-KA-Qh`!rd8kM0wy}q z`(sYS{FjVY8P$*E953z{Z%8=%I1TYN>M(#J|LD63X7L|4w7^85ce%OC9Ch+VsY*LfS=}cGQB#4Bp{8Wwl`3?<21IWtSB zp3#t5M+S^M8rOi?l#ZmHiZi3=#(sF=eBo0U< z4Harz<`~HDKX*uL2FxObca%xjL#BqSI5xaYAC*N%YF@^HDXORV!ucx#VyeS)Ym-#v{r7D$1WSMWuzJH*^rsop|Aj>$oyl7xU)KyI;t*IhN?vP#N!X5k z>Np>@C;;PYVt|g0%VVI9Ya0cwCG8)wmwpRKJe8C*L6SuzNTDwVc})v_@N+q=t7XEt zYYf;JZt4tGSH|on?|T&#Z-c<#RQg(cAB&-~Z$Af6NzDK~mHD&5`K8S7-9{>L`I+6@ z7xg~@;W`O$O6=W;ohVla319=Q{Eql2>dMaf^w2R=q$3EwCv=+ev7TZ&LN1HSTz zPUi5KcT5-WeW8ICBn!v7ZLUa-95vR!BvX0R6J#goOz|xQ{2jGBk-|f}AlglOGY}wK z`hCilpgvmq`>IU|d9K4D_#!v#3iEOo0Qwnt;n&`}YQPSN{nuZe`Ar;<2KDWm8zxwBqmN&_-(7fo!^DN&C>@nk@3)^{~a0Tce$>)KQ27o|geA@3%w%`?t3VGXH@t z;0m+=Z`tm3d?S*U&>C0D)igNSVR5mKi^Bgz1(p|%dG%pF@3d-lTRu#wh2OT(BPn%f^R_3oa-e;T z6?L4l_zW>h zdP?C@S+1@dNaM@)=PI+2TrWr<)JN}pafkU*g5S4_Q_c+mnjk=p6}j$vk5dm8TohNM zJXw-~WsSsT)Ca%`9q?&0BK2$}$b@W;Yn_I;Bu`Hnfx4O??AmRC*oxxODiMH*fvmYQ z!ltDX;QGub1Kb;Fj8W1NxX9Y8HzaGI@g;Oqh<$&z3J?k7kK`nzaPSm1j{6i@Uznu{ zQ`sg8ANbJ1>bLIHf5CeHI2C{uS=H+i;jc_FYO^qPI+hRhI<{ll={kAwZ#WPO?G58&o&t^e#hVEE8!8 zm5toOsPoMujVn%b5fn_AK9EWWM^kILbSldhE6?%A5ASLb*P$VPMnt|?lcgtAB=-fo z2Ox_u33^jl?O%SRW?9i}UGGqB_AXd>hD*p@U+@m|CBa9(i7XJ@u&=u%cIgAbhoyP> z&=5#k?M_cOr^LH57w1djT{O5eN`}@NP_v__@ zynZhX@VVyXH4rh=7AxOrn@5fc>6s+61*s2^{$+|z_1s|RW*KS0UW{5j1 z%*xZ7{ibd>&JI)7oB`&W(R>B(hb@;oo$ve-3cfF zr^kB%+>|k7!G1T7T?dr~b5DyLJv@g`m|S$5j51R9C;g3XfMkBoUqd#Ky`A7@MsjE6csA2d!LmH1#kC9+!`%v|g^{52n_lq;xv zlO>kYpJLVVI-CUR$dj|~BP%vJjfO><{}gBT;lf?gBtRelY0ppHbwTzNLvpf#wxfa< z&mFzW${ikQmhq6%rzD%~=-@WQs(AYb0=wN)l!WpQ;t z)cVif`b<8;9d9!F_1Wn?F7MnX?)AhFJyuO zRsyl1+z;k?e-e=e8A(L!yi|W}vfkl-jeNv1X{5?Un002%`0lEj7>G?@@Uh{{6W2C# zd7oMu1#K~=Ou7|rgy~%uB$Q|~p6>0?|8_Tw##*C&{czw4J0elU^zaRFJhSg_`!R7H z3d>x~Qd^%Gn4vk8U(~?htmo{nWtKro_qLUa>7Z1b3MXCFU&r<(v6+D_cDP?6b3WnA zk>Jm&g*D@QJnNmHehX=lbK}6=>{S_-cJ;D^pU=;l6Tcg>)Wxr)B8KxOT?%XL#+3J8 zH#2B!U;XruNNwmX@2n+yZZ!&sYIWHRm}0mZx~e6D^bs(_2tD|H<(tuxw0;p*rhyLP zsr?_bGQuwGq=qW(6ngLNpTY*VWgpnQt!i|ys7NvO0yw_vaOjKt4`eEdUL7*)eCpda z8dpntRf_J5C2vc9G^PY=-)jS5t%jhDZUv@+Thj?&NOrh2OaPQlA;z_X$8`D%?%>MS zSfC%O4$C#)Bi+h0thM8V3I2l?2}@PW?VI=ecvuzKhi=jyZP;Nt)4vwYu5=`tTxMOl zmQ$kWbKVl`g3xd%SGm*Mr?-UZDEr5EM3HazIoAFrF?*C0Ar(U`{MgW`hwwpX-xZNh zmAK{>9APIOpW4l-ND?Opk%Y(p3C|E(bsNamy2Ub2Nz1=hx4v1)&lLDMI3{VFzu7UM zs@FgKG9ae&L9v*irE3J`YmD~Q=$GUQA>VirOc0=;Cep0bIhTD1M-oKO_o`{D!@?+V z6IOE}YHXxqHq>g4=KCN>_)*$4BjiikkU-2POopXlA7BpJy;dvvKm;L$x$f`8iz)7@ zeF5|3lzI3S{sEmWmF)QTF~;hj(0@}j)q3%VpLb%Vj)5yfELdpd#|GqieX4e+=*ol$ zM|E&g&#R`CaoBk5`-*|0BQJS3OC3-*YxREe;aV2#Zlv$CFWa{*BzIKC0bhvsg+XT-<9&ZRD@jds!VEk` z>+xC*XBF`%tkIUGfy2QDCOHlJ`w2Z5daZRhx81@MVe@Rqb8c6|!B>!|*upMmu(012TgMQo6i4?*P+_lBs z-HR75?oiy_y*NdS1&1OD?ob?xLveQ~?(TZtNqX=7z5kqk4w0G6-m{avp6|2PS?L^s z1+KCz{65W>#ok^0lX8k?p%G?x{>$gA#=B+FFX^qj)BcJ>Odji9sMJf|MU?mo;J04a zh^B!dMYbkI>KSs3%o7^gqMbDPzuSDm$SxdKsOc>0io_<8@8oE2+WV^*Fq&71{9e=2 zNHe&%`jYKiPDU$^4trORb?z`&&B-Kb_Mp8Kz(^w%ZQY4H5Ez`M%fPfXWbdfMobF6B zx{1xPf|&9uO11w=_zDL>0`V-ZTyq>zCAgF-_ikUvxS1Y#`f`*KPeyTfm2DR0s5m#< zW%E}aNE_wI?F4#J3zcJQrhF@zkXkz$m#WFz3u7`ha9vzY$V>(GT_cW*xiUjkCL^>L zH7wlaw}OjFl72c;BWq=wMkyI7M%AV>O^P2VN+y%UF-wEpTqZFpWJpVDCjGcq>oEY5 zk-_&V(h|(cXpkd6w^tD(5)gFrkL=={H!^e@VhC=RJ^{{-Wv&FXwwr# zvO)mi&?HZuS@g@4ufnjlW6|mMpvB>Sxx+;#P{Z#SX{Q}$&#P%#_Lt}B>Uk8@XvKqA z)W}Oq{JE9E;aNMxQM!+2&tbR*nW>~yP`CInLQt4 zfU?nvs;H=TPukvx=v1OO#1(S=q%oqUE3drrPGxS%wy%)N?7|Z1onSS!+V_~rP8YkH z?TG{$Iu795X!#68a*S9^t-g|oLuYj5J%XLYj$SmH$|(DMl@|VO^x|2^AI0Gmk3F}TEFe9O?WkpirZ+s z^|SKTvHoG<=k5zC^Q#9X=@xWKvGmhn*F(+1p8WI1ySC zjKcXrwYaD?(zFncp&ssnN%>QT+$6R0g|Q4~efMJq)%hm#$v-#y19Una6!jO$c*#bGpMSb>e+Nx z2FD|o1kpy}FAp3uYHcb2hQ!6wNTQ&NeIzyH4fpc(9-05(u*(ky=DpMmq8{=-8@@!Q z_>>x~tf=c`V?d7IsqcqHt8S-KQS!ahA?fH?|6;2<9x^#@W=J_;UZ4p7M~$1R{Ez

|J(d7mu9fMvqD1~&bxg!ANVWo%S=cA$*Um$($kP+nA#YU2R-XYxb} z$JFwsEPRVgPY5Z><5pMOZ66T~?VJ`jxn64B+=pb4`*XW%#Q*Hp>rTsh=+H3TaA9N@ zig*38kbZ3_WFO}WI=1Xh(euH~4R77;yt|m(dV2jiw=aJulyW#mla8UVm3Er7Nu$aZ zbm~%HzXqC@Ut=x-(Viu&r&8gA68eK`wZ%ol_c7J z_cjCC9+*X&Rms%pru5%3bLDqO9wfM{3jIvRTF6im)bw^uE2cYhkoteX9h4QFDuUbI zp5?ywqH_$A+9X6*f2l9?(_py*XtvKoPRA3)zW_>Dc`WW&21S_zfS#Mj*%{cfcawYv!oQxa5^1d1ray# z`AUVQ5>%~%g`k^7!c340i-qMZnzp(dkQXr=aH(-`(u%G=Juuq34KlkYG1}A(WkTyE zX)uf~8OjUsm(Q!-&&O=ftV*Oo#S(X@3OH_--R%5K@ldzsBU*G7@WIZcla-nR{&jrXPUb9gl5{>yuN7PaUr z`fU#p--hZwFumCeW;sY!#iumERAL_Ew&!R~l zQLA0BI3RhBPj`1AH8()+J>R`DWB3g2ed&9a=_qxt2&|G-BPZ3Tj<+0umL?^Q78d}N zRE&^EdM*2K;7R|317#nL>d!M&ynD?4M~hm$3V-wQ${)^hmMoAaTGxM5;o0Dg7Sz=M zW@>5uDqJFr?7H8yh8MlZFXZUQpqVH1!GF*x)KQeQ3%R8ToiJeGoC%2gKv2`^y*r%B3qHN0rIux$ z=o{wp#?ouc2Y2ChCqS=chKYTZ01Zoq)X9=(`aJL6PrCulqU&2`G>8CV6@dYt{a+973z0^3zDPRkE8t( zO=fSd1OSOFFN}lI(0PhBB~y`99A)}-t(W5GX1-Dt_vH<_bkcf*pV!( zHeuYuuk0Na4Y!(|!XEw2pT0x+(NA&jS^k4VJJKgtKo8>{;8|<`MRw%ZqhVEAy!NOd zq4-uKqulfdFh(?hc;3v>dU;vZj zO(kA}y$$wKTJj1QW^In65$&+82MD;~z?;xGI=0X47sI-3dSHbUJ(xSI5ui{@Pxmo$ z{Jw2+M2abH_&XJA{;(Vi(z4M-MSgoP=!@K z31LwDw5dzcGa0`kvO)drw-?iD&O%lH|CP%zj}Oi!?}S7YiF>zh=9QtqH$&9| zV8icD#=2mtzaQureLl%rsHU0MrMTXR^v^VF<+vS*7qz3a-0<@i$$HARfH#Wj4Xjkx z_pff(^dTrjcVrk}sO7gedWC^Q{(Wk~sNBUqzS%L&NZCOg$;Qc3`!&aM`ch+LjdwB- z;JFsw1C$F5mo>c_uWZ`PbF`Xc+kr-mxmZVimlL08ce5KN^S6jRb_V2Me_qw>3-Q@t zXE!|j2WS5j1}jDpAZh_EIf}@G)`L6F=3Cr?9E03*S`QKIC0?6aMzP4k5t~|2b{FIK z%W$Bjf~{e&V?g!3F|)q!%U#MG?86aDQ!QvTWI8%AGnny$%92)tfzPI`%YHa8f0j<+ zSX-f{?NXGm)|hj;a4o-kPhu#f%>)#9Mlf8-3mWJi%@w@#E)Hg3qyrvcm2C#SRsV|M z_r%#v*{NNh-T{2^j5AOfN_BxU)+7dP<>E0ub%fIivCO#mQ4fU0IsYaesB7?M zx<5MYQCEwB5r<@zvhJO@qM@SA@TfITFfe&xApiqCp5-kuP#pU^TBO9BCmm1p+OaKY zFF*}y=#)CL=8?6jgYD671q(n9X79hSH+{qIIGEHIlHOR+w@=Ke5~#E0De5;g3C#5j zYcYMf_!kxN0v172ydTD%F2+qFtfaebf<*v3x;uhpOgw4`_DVM~vY~$*-8yT)#|)|( zqwCFyE3&CQYr|YjAoN^hJYn?|=STN6^=O(A?`B~om}6bwX@pPZ!FAWi&|yv+Ksa~c z$HY1_nThrQTv=c*uMnh?Q;M~@C6(sW&tKJSy8`YOJ|q7mVDbb4PMwH5dsg6YBMfb! zcbTeH7#u7K4;UmrbW>%RT+@krJ71Khtf;5~f-6VFdt_Ku?hU=BI+;h>+&3LNiSL0ftuRmhVReFutoiGfQpQ*IVhRoFmpxy0y)3h7w?*=k_NIFt zJqa>7zh>}u;WhyNeQ1x#4I1bfvF-kLGRZO?KoQyY;W-{9wC=E_bz+9U3tZ|R0#7Ey zr@X?Z6~mE5GX|hzoNk_?7mCZ3<>VNignz5~=(MkiEKB8?K)^@n2c81}+c+LtjGY)` zEkEm^S6UQ`G-C&g8)=U=(;cdmxt7c9=YrXer=8c&nh}^^SdgQz7?v(^>{s#8f!BB} zE?V`88K2YWWF>}2QN>(;sQGnJIru_aGscy=KyUnG`@|i_?)rK{S#*Eh)gcK!C38| zGkd94TQ_=Ve&x7wbOmDCXLk&644e2CpBTS&ik1aV;4MfRH!R+2^-oK178WUvP$sG1 z$(cFQI@AUs$>ETB`g&~sdW+^)ccYb7J>kB2ZRu09KqPo>mID>5%Ne4AbJzh5`Ar1vfm@8 zw|f$+=LujA0>r9~V_?JWc|$a|oWy9^IitCKoXXxF$P6b||5r=OfN_^nr{}ekC5efQ zrK0f0Rw1*dX08g=k&-2Du+|{`6+}7Sj!s>_7Q#NCr}Puf-P<&wt-Nwx>;G9d2ta{iF4X(>Q0@{f4k3ATsQY zoER%x1@BwrO?|v7FAaDKDuUdK*r2pxHCD`m56pU$c8OPlsN}l5;q7GgvYnu7*;vN> z@O)BoGRt4n7usDU7)EnTv)OWXcbW9v39SHcKX7%fuD_RrI&d&-CX(Nl%$l>OD6{9R zgl1zR-fa6Hob@MX%C6cBL>>ILK&`P|MWlv@B!Xga0pM$NqKuMwCZRcR{odUPnfYee z#KjcJ<}oQv+Zsz`B5Uax(b(!_*$NT!wYe3u?0e;o<12Dyg?oE1drk9Q1668Q{+*Cb zHMS-3K9r`07hI(a+GQTS9|L3;yB2&wGDX49>DLB(ac^b(!GjaEo`OPVeKHpSxjXe#m&B*-zLu>YS`5Ij zPV^KVFW5sr_<()~of%bYi1io;McH{(H0#rp4Yn5eS{+4m6|~yZvPQX(?~{-sbnjHQ?J@kGK39dlKa!L1UwfVKolYM2t+GAE^bb z`=+(5FIZW8ER)-i*rf|iU6t@;Ir!8uIrUE_n(n3%tg&C%AnfNJFKz>G zP$eIpVt^`ffhD~X{`+Gu9th8#9I!@buqqI3?6}dLkmUgbB0DH^P*Mqe7K`2k4O^X) zD`e1raB_98(AJcl#f1d{WuksG16bi4JuIJZk|N-xFwyC8Z02{2`58&Srx1ALIjN~8 z%847*%(vq$#7Kg+ETiuI`hOAhh`g2Y5Ou#h+CMUrL>y6gwQY#~yv-aPjXaaNlG$!8 zs9KmQsa>M|=RddUq$5~chGPlU3Aa%o_Mk^e<- zrUlv8zIT`c;;jeYRO?WHHiHM%=K@SWK3ol)CVeJ-NACmwDqQE7rUQ(=Ni#QIaSBUa z)8oNUmMr#0LysV*wB4d7RZctsGPiD1H?yX_RBNIddSLN>TYwnyHxR+tN__Jj4+Se< zooCtF_kx!%jsLU@QyRGzIO|(IT=S5sv0kY#itDe*9j;qfR6`2Ku1srQ3Ig$wAU=}F z0_OwiHz-5_p75VJerK@joC)+uh;$o2%&e*L8dM{wnNlMvq{w*1sz|7Mc+L9un6NO8 zu?qb;?WT~d8~S{ClQuHN+r}Zk(6Y*glA*`M1!xcF`nz7tUTb%&m={0GuOeKILXJN# zzBvk9LX*(l2-vI4-4D4kE>SpdM*g)to}*urIvku-Z#f1uYy=6<8vPC5G&Vp zQamylnZc*hOjO=piio2oKB(|;uiNk=asydG(Cz@f6ZiMIO>4|{scgNV=kb0zy6<>d zyQXMjx@F0EtKN*yAn<#Kjgcy+B+l?v$9qYmtFFsZayGwKp%E)6FG z(nxj6qqyn=2V;X@XmS{0Y*-}Ib;e%ui zMV3^438gu>mw8fBYZ+hgKRAT)KakDRz3^Cean6WuGuB=o#l?%cTSq$C=!J#7(?-@d zSc~TU|H-5>uI2-nV#T(PnLD7Q_Ap*W)ZJMA*tJx5 zCzmbqBL2mj3UhbNbf+hvZ{)|{go+cd36ylksVW7-EwHETCR8ht%sNhM7cI^xQ(il$ zg)og0{>&B1p7tX!w?i+%zhcBf6TWP7ChPO9R2CFGCfU$Giv8MGyGjrqV-kFaJJsJ}wRZWd4+Ig=Hy!QQMme zF)AMos>_YK&iwu~CO;Z8KcFVA<6jEn#}rc#bAVY}+v8yZ9}Wq+n+E24a=0mHw)rF` zCcY5G@#JHJ{v&ALXy(1DK!77+A-wxm!9h#$A*_YptfC%3;l9Pa=xJW^=A(nP=0mMC z^%4K#90d(59H1M_hN6EqBnm7^&ngar?pJJ~0uu})gnv=!XY&(-wz0jsFw9*+@w_B8 z_y3qL&6h#9-9E8UEIBrJAMdLx)u{vs$0ki1ql>KbWi)8g#sYr{42O&pOO@&v05LMI1;Meda!lk#gMXYwUgb^@+*eGywU7WI_Xivi zO+f^G@uBaM5UhEVBS&=1O}VFo3~57zyYLr3M3Ph)+6gy? zwEVdHQWsrzI?iFRu&$S5nyBaCAWdeU*m*P5=GPR*N^| z>!B(hw(qc?u+q}(#uW#A3#+aRJ{P{*OOAE2l;5T>!z?7V z^qOhbd0jrd<1&aToASrtqC4|{Qv45&r4r+n$BPMcpkbB#lI@m|QnH7Hz#qF`3vj@f z-j^0u)cFno_2$e#?$UIBWhjGmVM6nM&V`?subUE(JVXZDtOhtDhkXK{6Ze!l?Mr`x zN+CQtfx;WOPe3#~u3Uc3WV}mT?e^y}(GVml5FxVRSP@R4WxB zR`)8bt=kj2OExPAVZ38Iztbw)oxrdf%OqN`lQue;7KvK@{Y%Gj6g%RP(~mh0YW=vh zpc!W?h}BYIKLN5J3!lKS`JK#`7!n&Iy|uouGiL@hH8o3DEYLW|0U6u_F;0|y5ToZ^ z%?JTChYt_ZIe2Sw`WmL&H#K3($w<;&hOfweeBZKP_{f*wK_&yunL5 z_6Xlj?ghen%S*ueb`tk5fJWc z)C2?P6?y)C%D%_50%*p~m0b!ar(mpiby8WYYpBIzy#A3YO8L zJ2jG`?yL=Bg_atv(h8)N_P9Zy;E*TvPu5DFy*^_Sp2{EzLN7mewI4KccAAS?AKr@= z2U(*&aks`mt+m;n_oEt^BtpK$?4*Bi&Q_2?EfwSDB`P->aw+ax)<}Naf8wlPwp|1a z?Ve%JcVg5DKZ`@&Xzo#oow32s*caII@2sDs$Vv3lYxv4-S2* zLV)BO_4hqw#y?%8Y_mHutR z?6Hqc070dHjc@qGZ8)l4TG%7 zk@^PjYXWbz7&|7i=w$sR(o?UgeP%Ko_FA%irr~O!)eoqU#Y4&=*rEJ)EU>{z-P(%} zx}s2jOUw3w`?JEXoJY^uN(>EvXL}E?wtI~`byZCRlorH^vA~hKzUU?#m440#9^~Ja z>_Kf#%7}PbzicNd5tZJ;g#P{sc}%Ej9`vaRfVGuhumI)_hg*&jWxHQr#d z=ukP2WU-9963VnE)HIvO<_N4ym&2Qm6i;d}h?) z+R9AKqLJk_G^S3D5^1AH!HYZITDGhQ*ow~)VCCFI5Z}r0Dzjf6`+Mp)6F_nMhfdou z*XZ`FIFIxQ*gesP)C`<+e@_5#xHD6;MGHkP4c@A}^5#1&Ip6*oRF4sS*(l?!=S+o^ z8>;SgNps6WAepEp^*gj*FYP-KIA&;a@X-4o1~3Y&vC4r)gc6;pHE-#zY5+DCgZuqr zmK6L(XtM+%yg-iEcoqA%YqRF0Y}6zmEG^Zh53l@jkT9H;s}W?^Ko6p`ciaBCJ8*If zQwbwqD3B20LjhwN&##40@8j!)9`xeW@Q|*tp!d`$@!AL-<{%II&O+kqHBO%`Zd)Fe zZ+}GyS9ZRNCoHJ%rSCb{SLkj1%z2AGr6!XDsS=S)jg}aub|%}kfAhGMw1&sc za^09jc!{oxD51KFPKfa1D>B{njRZj#D5{B25TkZm0h=_5yap8&#wA3f7 zU`SO9_B+3b258NEkp+LB)8l${_}N=?yW)V*TzQH_UV8?CmT|)6lNc%rRwK@L{px#> zi}psKC+WY5eeum}*5-1#!QZDmlo2uK2c}U#Rf=U6Yd^sgTlrZPC#6wCA7@Yetv?&P zyWzFHgC0>%5Ubt5L?6ZDiI3kzlH>NY4jnyPaE&qphfk%$)^4^@)jmAsz;WOMxJ4O-98ldW7rwPp3R0whQov8qN@;%b z^jpKS&e6DsxNw}bQLCMS*%|ecTzY08{xWu4OE#}x)&BNvudWP_>PgN*dQccBa#?eq z0JoI)I`@tJOe$n%@l7U>7o#r@@6@tjjh%emPfUMv1oZiz3i_!#Xzor_4N8HCE$DfT zLZW^TqF>jFVt>iP6?)YX^`$Ba`3;@O#|Etqx}xeUHfn({RfDcNZ`j|Z0sreI5S~Vm zo+>79VI7NQh{eb%C(%|fQOf#-M8C^Vl@2V}gfIOwT6JVHjmASkGEzcX!*YH>W{9fR zO#3}qNNQ0#oe0Yh5hENc-Tc%2m(qpyX6~+WrY>M)y~D@HD{Q%+MJ#WmQ%tlkiMvj9rEuj(6glyIp>q}o@8>^P0PxCRXD ze}Wqxz;Jhi$Hnv!56=_}as3R}@xn5gRQZYioq4RbdjijdI~#&ybGw_47%tkV_hK4~ z0gqm)sny-+V*aP?tB>w@F&oar*gv9G7qrJeI!L_?B`2(jsEHh``N_yq6ZmIuvVE~4 zz9xdSQ`;Ri{PziV0~4`mld4SP-h8%}z_?P*o@O~}Kg=fV4;q3I5z)ID1YlbdqpID* zSvwjuaK?ddrMstTJ$*3UhvjhEZO9IHg=cpl@fq!S_8V_*$oKc_HPuRvkeP;Y=Zu7z zjxj^LkUn&#H}6T3+?|dD;b$=9;mmWWRPzhxzBKP?NUPu) zUv@2BE+^go$dOe->88qk*d{?|M{%L7Y*jAKl$A<|j5fq@WB*vi@K^4u_PTm!i^=ea z(51R^g{(|FUTZ1yRDmkaL{7={wD-t5Rt1>rsveygm;Zz*H}Pba;8*K*{tyN=O;eSP z39ZUu<2u9kgw5TAon^$NXd_Q+DcA1)g|f76o0i(UC)M3cPB$y7OxnVQ%OAoJ*RKde zm4ew!vO&|~>{{P(KTJ5xZqSa!XBScOG;h4x=CqnR<4}2*$z8kXO*EpJM9KZPB00HD zve>lFIfUIWlAlc_s8^PwANA=I%gV1S!XY@1J7>)RYJI49*=Wn;=){}dJ|B)j9f zT)oN9p|C}GG1rdHN-SSp=c?=2!=`{e`yoav*RrHmV%~J(nqyo(wK#EER*?P4F#}x! zt1!e@_O$O~XbcoOH9fPw~S$y-emyS=HwB9zLVxv%Qj+rbt9a zcFmGLu4s_N#S9!xtMmSGd3NuPuT5jPs6`*JsxvE@=bYLwa#NJ2pX``(BbAqyaVbu+ zYPQ`XIBItuRUN(Ao(JQ~!I?mG zCp-|(F4!rHr-+h?b~3}Lz|pE{i+jlW!IJ?VGCW(*BdEZQGgjNm+8I%fA>9d(?Fi*a7UZxbKd>i`N~ zn!Mt7wkp^xg8`#w!-x57ymnk>(mT~!QT2zkN~n;^p#>x*8N55F#9&GX!p}?!R(cV- z^`I>K+I#(3VFC=!Hdx7(RxJ*pE%5FnF9BupRpeEvwpU@&)o(k`1|q9s_&o*3=6P**rtnj(HsKmp86 zxv3DLlG?^|e9aw-g2^5CX6K_|C8j1`Z#ixFHf@Yuqh&)A=(H6B63y%`WH7#95xIO4 z;K~6>cP`Pl-q~zG>s%r$Mbc2|Z{B9Aq72Gx4c%>);D$`CI_BzI&8IV*@iVD9)$kXeoiNx;JJd%d^+@!!H zIfV?i)e)-oeajG}p&z%i)VgQlud3{e?bDeX8jOEb$v=(Zd^CvIgvA^-k~L^ce= zKw4Yyb=3(@0HJqGjT?PcOxZ{IdwPKxG;S`}Y%HOU;>x0{d+a%&ar z{lRf|y4XLrs0hTk zoJ==}C9UW(5yiZ6B)#r??T$F=1G9eR_RM#IS}L_qN=V8XRqF%qb$a)r+d7PVWfhWE z83;MG50f+-v^r%!FrI6fHaHgGqJKDI2!TA+C#X&xYgoH0Doyu%!*;WAPW)C{0md<- z&*cAtB15;8(+pnaHlOT{2OO;Jt|*E;YFA42cm0Z)sV1zRTaltnh?KgB<$*Ca<5xKO zlX%M1P*fnQpC7;}=CQnQ@qz=ThLuxMZ}+D{mqC$Xgyx+EwLGn10nZf!B=N*R-6_{+ zHu;P0ry=Rn1Ww(apk6`5A;v%FK8EODNHl&wXI8Y9ZP((f;%T{ZyM^edzcncQBbK@)R*`Z zQs5@8?1yt{sd=!XH>;U;Z&V->gSz5QPmU>V3m8v6P(CWBdR;I$6^A&fWm-JchtQWh{10gZ?CA&&p*i4nZZ4&_ zPVZlT&Qi3`N~<2a|H*ya*LBVu-?!X;xw?M$dcNL`cCV;F(2fhHTEeVO8Q-(SZ_|c$ zlJSfB=JV3Us-5lid}ZrvE3JV-uixDj4FJ-VDmjD^kfqSu`EG>Fa&Zeui@LR^*39#- z5@^sf;6js7{QGpS$XV!*XG6}QTLiDe6;@?G#W{CQSEAu>cn+Cx{eKnslrJkbgVjmH zzBxEXKg-LcWqIqZtc1fnb3rgl%rruP(~mxmu3*ZDeUL>MWG$H8l(~5b=(-X!P%*nW zTw~Br|3+BQ*pu#qdcso4PAaaNikQKMU;fhoos~mFojU@vssiSnkU3N((3~p;gpit4 zjbvSKH5F*DFpf$m(6YNeIL#hZ;NQVHKbEMaFN3qkh`^q%0_WV9%!ci;050NnF6Rjy zKGiB!^B-4RpmgFZiai70wYv-+sy%~skr*bgkNvwFfeB*CJ&s+uBt8FL=#|JJ7y=Q$gRBSy@U*qH1h? zY08oC*g%Ia{ePS8(->yg43axmjw^5r02j~KpZ|mVmA!9w@2ckENM3F<>d!^02AwpN zP}N3)o}ixDdteUWNK+Zs?Ib@TeE|t3;&o>Z=g+-}{0cvM>Dz+RIoo={6!zEu$sX`t zG(V=y!CQbVQU5+MQ(%#rt8BI$q=b^RP^@;>@9lqZGj|zj&IJIBSAakIj`x}RMYgFt zR5vjMp78MD(baXEzf8^U_T!tU7k^(p2C+`k6QlfGubJ1Q^AE3XQvDAOQzG`6ujzu< z)IaDm``#EPpTq_}@XHN6`U0iE#x*SMeO+EdGatmVDM{JX{6={0uBklf&J* z^ET$l!vJH*#-a1W)u3LJpUCs#&X3)q;}ykopZ>W5&WA<<)rzbYujQ!9_O>DZ=nIFm?nN~tg zNaqXq8vcX(m|-lG?RBUC8~=aCmq>v2SGk8{aFDV{O`-$xx*k^fKVoSxfH8gV%U?G8 zVgGJHTwe;(@up}P4jhFVzQDs=x8bNaxd`Xyvb;aoAKl^ztuCHgyby*3j9x%J!hb^v zX~6d4pQN7#3>S2n$R~J-SQKSV;(xlTOnq*;x@Qi3S^&&OCIt{pp*4ZE zm1O|txGeO;PeLyy)Io^lMK7U-rhEnEhaYQ9CX2EtfrA2oehCBdhG9eD23@>0Up|r~ z`Lx~7{f`5!%m1Rc3G&c_AgtVFWI;-d0)J95{JB>iVN2k3?>%NZR1byKC1J^wu-1aF zV#L391&~Ky@<5Aw(91Ug$f?lDE%t5IX_fR(MYgX{Gs7wHz#w$(;OOnWuoQyc8ASNU z+B@^Fq+X7d0+0TH^6@s%Hk3uEsp)q#^yro#n^>Ev#>V|(aws3j4E+Lwd20}{>RwF> zjLJ<$kbd70rVB6Wc~ByQ8g;}$1!`S*;sL(rsk0ux4s}@cAgp>u=P?}SpQH&Z>%u^} z4j;l)d!r1q4(Pc+&l^fU14C<~&{cG+a>sUZnFlOK=*PRKxnGk6jC$Z+@T?7M7~bx$ z0u`7KF=bc&WSwomG2_K_kzMT_GGL~w1<;p3&l97av+;r)mZw?SOFA%IJ)g87?vSCQ zcOroVbc%ux`nN*X`~$b;m6Y8%+qkdZk^xw>6hikR=5qlY%lWKIHxu897o81E*o7^+ zj4%uHaA+0iM_1O4cM+En@I|bro@k(_bQ-3__@h=azr1J6!pp-e#zBd*5vw_oIbd zJPvSxsC0h6TF3h#G`HpLA`4y4$qbP6Z-#b&`UyiZ`D9OB`=@&~0LzR6MlYK33-ldA zSbDE)m>n1!&D7MPiag9Y=GWoM*3eP*jh`^7R&U4PCLI)c7Cm{na)&z)u=e4wECVSf z!>0(Ih8=n$S0sVSwWp!#f3-hYrDEcxRum249IabV#G~CVykBaXJM}`iRa@I5TKVDV$h?hOoD0e8TB?%a3KXdTverk2fa43?RVmHlW@vIFBM_*~4sC zpVvHe<8>_g2d~;f3r}q2d$(CP{j#j3M?Yp+x^%?$gPz5eYq}BLg$uM`UoQ0jDl*)2 zN9=hwPLxJvie(O(V%;prmdydJjqO{wVddH0m=~q6;>-61gS~OUfT15ibWMP7DN+R7 zSkxor>HhWv>4Ht44`MkhQsoLewRaRMDiXk$_3^34m;e~MvVYC`ygt3~9_loy*c2fzTKZSc^h57}| zwk#5Ax&vfkp^t_y?C8}<5ox)s3=CAmoMjaE?HVsewelJt_ED>Iy6nKLQ4DScgzKE> zWJ4!bmp1p;>g!%taDlXu2jk|ds#E#ZGLF-Dr)0Vh1e5pnb8Clf?+&M<)AD$H!qs2l zrU<6*Y>5Ddx5QBPj9*dZT?Or6EHExjFweb zY3Fo(@Gb8L$kw4})@2H9z(r)-4vl6bdoaYo#>?qmwMo0vAZaC^0KDEbUQx*G(u!P= z*nX@anq5AcV0l%VBp`+1ZwIQM?7)`T|ffs##+r z4~bUkF!lGh^X+Ht>IrITRJ-1Um$x5xt&wh=Np&TM`aXI3qA!#%2xRT_bJePlI9VvM z>}4c0?jL;rQ>4U1ut-vst%0%hOUUg&36HYK=4ScJl%=9^JQrrukc~#}c3N+mKdw;J zk+f=+)~H;JpC5KdJsaODSPiwt8d-S#L~+2tJu9$27c9qwyWL9kK#C;;{C9^%%R`rF%nUTdG1r zEJsj>*D0`GLRP;^T!q{4hNA#8Cc`q5fcbp7;PDWxl~#BYt=BJt59aaK1J%DW z1*VSu$4L(r(w=X~Kdz%H6o*00{6tD;u7<`#a}YO3d==Jzw!O{i*ECY=HpeghW$7j8 z8zTfT6A-%r?(I}au}X*5Mt?CKu---cVepC>gWhs_7`-JoZY(b447$=C(NpbVMoL?w zN7aaPsX*C&+FUb4=oIOW6n`3&B^cJkQJog`(67nP7Q?%DU|Gzuir=RXR!CC2 zTrPQib}S}i=8i#cNW9N_&1*nlRo$em(WPgkzNe_(rP7RbGJO~aAcbIC@gddEV~-a# z+kZ}bO#?W1h!-!b#Zo2%pyea9%Cq$Q$r|;aU)K}l6n<7Ftd9QnYt) zI&p<2X3&%Y9!Z89R)gc|QRG~;Cbl(dOgi?2S*Rw4Gp~7?%eB|M^cu#*#a?=4@Q38H z;wBY;pha^&=r83W?NJyU*h+Io?GKXYu`EbvOfSw&%bo(4)D~3l-qM!Tv}xPxPF?Ar zF&V+z{T)w}`-Q&zAggdSU}mKX6jD^op75)0ke}!d8!cBo`z|*eSi;lcE&bAqXYj(! z`d$tq{VlXA2Bi!ew}eRZNJ}W#k8KFm<4h&$sjc8&wg=!PqX?YRky=2slfu5QD8~`- zfBh94MbYyc0ypG55y`5jO6@D)Qbyu~td2cv(+5%Avoq5x{dkKe4 zEd>;`z`NI%%r4Y^sKHkw?;Hze3dH5IKO1!9rbx~M^09-$a>h^?@&5? z&K=Y+=N@;OWMpc(fB>Xt-2}w#R}HChZi|W%n9^k@>Mu?pqx=Ut#O3onwYZY)8#k2A z>yj?%^+=ofC)IlHLd6ZiFk)6jS$lVVzZ_c_oLfDt#_H8IR$h$RdE8Q;miAq7sJPhp z)$)V!5~D~rb`qpY+-9ZteCpUo9vP^q6;15*-7nD90rpI58fqNVt}^Zq054u2k&-D) zxmMJeg!Y4eN;a@p-?2)(qux?-<4`>U!LzJ@@aQ7ijXe$ z4JB$TQqKey%oqDBj*e;%27JVn-W^?vjr{QoohNR}u7p@stjStYC7bgg^H$esuxLR; zMuR_tQQwQ5i_A<| zdKKd}V)z?g)-0)d)54Eo@4{1qSGB)J0YB%p)X@F3)@xk@2$`9b>fuF515hY>rz+X< zxanj>hMP4XVmyoKz(W*krRsqI`7Rk>FB)dr8?7{bFCFpbW0b-xS?4;@8N6f7zkYt| zQu4B5-a=m^r3tkHKj=Aq7VB2x{sT<)Ww`P71n`E z@@Bsm6@9tQ1i7e zlq<<|Zy_^@DR_0-&^3>9hd@E7GZVS2YB1FqEZ`oTBTDVPn;{W|Kc2!a>uVX!a_$|W zhb#=S(#pTxdP-08;8|%{-B;f&@=IG5j+S)`l_m7nG)`6D*s?ZMN4c_Ls@AgXQaH$< zy2Hd&&jB*{0LMyyF&Pej~&mL8L`3vm*@ zQM3?O$P?45021K3imDFhp@AM{VjniMT`e@cYQ7&;e$n~^;0~HXl#`S#85w2TZAZ%} z_KzRrRGbq9xVQ4i*PT|j$isCF6|`0fm^lj@gVP-%R}EE{_AVTI zd9kq35=4Ntvn&Oz5B)04a z)xJdP>FxIL?4vh075JDnEYqu$EZy(3LrL|?W5mr5|1|9uH}6O**>@pQ2gg%>6#E{)t57|J9DhgOcLS6@vQJc5E1R@m;F6LjN^U`G;a`z9kJcYdl-?TduQX=DHZi|n23V?l zyfJ#8KYB``HZ5Pq=w&wqbEs_U9DZhq64aSxlm1E&|NiB4tiQW586!Cl9gKw;HtFpV5u>9QFikDEdY zIxK>9kc~j)7-sr11_w_wZM08DwD}K7uNs|lpm!e!c8}1zdLh$98eoqL^Mb_opj~Q= zhoWGW!3&IWZlhll)rtw*k@K6OtkgUdAf-y^eg6NbI?J%A0<~)+rKBKTDlIM2Eva-4 z9fEXshk_uD)X*ReLwAGHFft1yvc#-0}M;d`L zbhvGansBEhg2SK#{8xB*@EbLutw?)xo@u)KORE8hl7S0o){vwv03K*RHp?r8*V;6q zjxpimhwYwRp9&`u!!^@rc*d;p*~`!kNG4b8(oK;EqUcE|_1uA7qe#hN;P*;P8x~x^ zTgA7}pG&b%VCG-#ush@l|A*Cu`<)%A-8BG{+^5$l-$pl@itj?Ye1r)4;9r*S-Mq5V zF_T}McJBo#<%{@Y`~_DXC_zosMXLyVtcQ!T`cRCER(MvAGm<@U=S55!6vcYG!@sSu z0Aq2&EYTJ#;r)wL{%Un^-b$`@Ex+UdTLx#Kl439vm0hfOgjBEXl`s38AzD`~^2knW zqv$)Uy(>^O^_XzFW=bwxph2j~NzXGz6?eDjl?Pwj=W?|7 z(Mx1Ejn$Q0KC8ZSh0N-quBD|gKt5de~)t^ajrwBmBf`^*HNa-T2 zJAx4=QQbU zk?-yH`8<8sH$b2q0QP-j!0f$(PVS_1U?tY>{?^vp?TYy|T)gZKu)F!c7A2CEbDD&a zlie9YhOOcyIeg_SNCV@aaZ}LhJzzOD{9#RPB5wPpvaO~73DQP3EOzHy#aQtQ9&?TE z0w^UM0}j5?aied&LVoCkbxh ze%dX%+L;E<7|OQ}Gr!=192iBFP)0oe1Df*>D+LXwZd(EWDIs{lV&8v#r*gv%GGml zY<&I4G+{>r=%MH}-a(ex4TK;6X%@wM zL-+_dpyvOjsekKz`c0ACZ(I+q_Z)t^`+d~T3L%4<4C{E4pok+8WbqCz^tn+V;|#;_ zfVXvt!&$J7T@K73BzV^sT=L7qLq4HS{g&K3qOocI{Ts`=59E;>!cYkhsC0bZCKYbS z_@&x|bNeD#74Da@o-1K~#5&~+~m z=cBZ3uvZN8w|~WMLUn6;Su{h-3%CmXCdlPHH*P9yaE%ckfyuR`a<*xy@YAQ!NLENoFm|=00BGGD;JKR4{eDZ756RW|M=V^vtH~ker$P_ z#QcOh(D$V{^eQPPHww%T*2q}P{zZ!Q6>nF+XaAMU+%Pk=-|)M_`9TVS5?^m!x_E!~ zl$CMlIX(YMi}RIR#yJ1PB^UgRG)(u;yQ{w4O%Xz4e+X8!uv$#9rsX@hXj$1D zA`*elv|+%*1ClMdoe{~eCR^e-iHRSZ7UQS;Sc`n#HB(i)>FALu)>psgK?uHDE~J{% z9*hUdNKIWIcN{bRZ_MzLVae7bnY=_K1`zj|;WrHL zn{{U@8wu|?K2sedyZl^6Gp5uYwm=X11{`KtYkd2KRmW})0LuO?J6ta10>js=7^ODn zRx)Yb)Nxm85iuOr5x&=I!n?R59!L$4eYp8WC_yERsj+zc=lV!^;zX#{rJs=TL0T64 z{HG6tJ2#F6y3PCKb$ea1c|Z;x???1Y0X_VjQES(UyJG)7f(#rx6(Cbvq3h7R)v)$i zJ*SPh-l%K6_zPw2bIor@srXnm=P2k+7K!Y!@=XQjLaG_3?k6Jon6(ulnVfvW8gj74 z^ui#8^3c%-e2L zDmiE~fb{^7VZsNA-*{+?ztrEQ{M;{R{)=>s8QY=Bjq;Rk>B&k(?H=_o#(u$dhHL|V!GYIaS37t* zq{)Tr^|w*xp%i0lEus(l{3@u3<~ogt&%;qMK)xS8h9*jwzOc%z5qjuJDMqCp*oM#{wsbnqJ<~z|XJhsElmHfiEq!o;0h&YKrJENoo2|ug#bn z6bvh-Cj7jJQgOL6hO)8E8N>pf6o&?AZsx8g7BJ}EY^y64uanc4sJn5gPlmO4wPYp$Cvu9z2=A6Pz zB7;*fbVeR>4wCJrg9O)g2Jjn%k?Sc@@2dJQH4!t%tLN$rQ{sygd|K(kquczPzQ!=I ztB&y{kbzEoX>jmQ17LF8j$q&7Q!tz|;xCPBk}Ds~JJ5^|wK24|pAV_g>7CH31*dd{ z#ReQ3$7cE6DU)@zj*yGZ{Wydb?6$F={3x3=zhoPdAz9{%IAevITCq83Rl_dZ?VG8i z@+{HxM&t#5CFw?Yx1-h3gAPh^*=u()P|16WZ6veU_|}|azeM)Aw>$>h*KM?I<{-U! zE!>5jYV;oBm!2QwZSj;Pe9oKQ$#s|en`<*9rB5hRoByKc&l~EWj}_Cw-}(g3FU*%5 zn1P<1rFughwd%P(-3iBDemZG!g4@NtTD0VtUm7}qW}VJW*sSNl+6Kz80Vx);T~~EEl})QX_zZX{AU6dj=#z zCT65c9fr4=)JZzM)60(9uvfoG44rzPNKd5R(yQ0W*Ju>Rr6073ylIe+`>pz(jsy!$ z1129HZ7qJsq4bHPz<9M8tsFT^OWq}{$wLGIcjA{+Az%>d> zVOzo~H9@aErZWpf}TjgdR>`fhPT{<$d<%DEo29gy8r^zp_aj&us1X`}{Qj1mPnluUkFk8~K!Df6Uc?*UZ zDN#4J?yriqHtoudQ_ac8>e+^w`8N0CxPredvvmLlVz*U?reUzgM1q1`&-#sr7dexx zkUR;yeY4_s5&}BQ=eg`>ZUbbA3&c}g%Jg)ZBnn-Fj=qWp85q2i>1sgg`(DP|-X&an zrC?uXj_FHrinrkm$AIOOw#)i+?L_DfaW{^PV|b&6rSFWa#Tez_@LWb5NeoT`{8QI+0IbNKxt0xB^9P)|hHf zUM9$-GO;Q|t0wL#;8vzN;=ab5LP9y+Y|IUvA()#Vc;8S{h?$QUHEXU+kqetVt*5)u364~<(T`DV6lsEnTDv{goCrosgGjvrCYB@LXNEmdAG_=i0NVsN`4Uh`em%^|xA@7JEsyw zF)!J)t8K73*n0rLVoqeUq1EQ|ZRfW-rbS_x|KaHZZ#L1gl0S$(fTrlmZMLmJH)0wi z_`Q3k%_+hB$5S#%)|U#ef}Iz4gT5F^<3iHA)gDT&^v}B5jX(0gcj=~l9=}iDN2s2j zTGRbL3nizas$lq#JQ2DdmR8=u=pALYZk7MajzyKAL_*cMg=SD=GZ(A&#tUiR1`GQI zPv4G|>~PomRE443pjAx+x`868m`_!U=KRUaghpNY3A-(R_GX!HkJEIbN&J5qxb(jN z#aBAU7CwM8o6lMDB|1oac1zZ06q&dacD<)xA8v3kkWf1D=DUaM zX)TtSXC+;JwpMyQPwG~y7S|56sQzS`wrY&>Jgct+jQL!##N}r#)vG<0>;-B3Yk!AMCJSaw*GY{AOrsdq2#{(=P{RI0)m*+1rr0ZOk()R@;#iogrZ?`I?+he^Kf% zK1Dn(C9OoI$a126?qtj^CDLQH{2g%IF48fG=k6cp>~k|a*z8Q)z+zsp10M9^soJ{2 zW#EMSc~I+Gn1sq8KyzGjp90b(FEQfKM>@QnmhrQX?+=|>#AZ`YcwP$1{W}t;ds;4u zDa^T7R&&L3C6eG3>r6dPZe~J7r9J9}Wm)5|$joVKFz7qB)GP8=>gNK^31uX#&lXO` zWOK&{$U^W&X$(!3wAuM{7@X8JphyQlMma1eiWP@y=e=)EPffUugk_oadN2aHFBHwrCdtiOEdsZ% z*GWyB`^0$@w&naz=`=q5+oX7fQ`DT-wG~slVAS zn@a&;vbl0VRJCi^Y{ZV-^M;r>PdA!Wy&ehO?CSMO2V8b;`YGLQ=0oe zvOT2lQM??~$rnwBTIJFmPF#c4XS|C9ty`i1`qf?$)_a)1&^>U(}nyX#@-DYOKE}O+olm6~};y2}Ay; zHbtt>x8nrrXOsRjJ<274%-{u?2`Gl}Y0}pOqfJFNLa5xHh{-`kyQ1;gT!F%-i|@ci zLU;u!VFt^|eM&~ZN+sBb%vyF(&P@nneRy?t#Hfhx)3%W$T1N~3h(G9sB9C?6P*x@Y zY6EGT>|#w4^QnpkeT9P&eK`1>bpZ0L_rA5G8Yb^uKX}0y4DA{7y*5iw6>!#@3tEB6 zeW~hj;Mi+YS>kiL1iaNH3D>efvz;`6KW4LOE@%FT;bj$-xgKY~&I$wg0EFWfl3(+U z1gx=0bFHSbASZU3K0Ka=n})>&;4Pb)r^}@gPWQ~v>70Enu41(ct=*oZ3p#AlCX=p2 zg&(oIx~!{FCr?8}+M8cN^xE>ks?Wb&R?9)ha!vfB;usa5K59p@iBXO(5eN06mkDrf+xm-G&S;v^>KD?0F# zD#Qw4)7Vhj=&#NkZt&lTp?i-yS^mh>gorWi5Pcm|kjTfftShf&3L6Hkr>#9LV+em0 zu}bliBN}x(wB>1l&}BSz8gI8|8+jYh$BCP5tg1W+)6f^E-hjM~0 zO3qQOCR2e(ccVXUAAMq&e)CtFlYV9_sEHSzwwMa17KqGD(QGDB1*F>Ok_UMb^JT4r zjn|55NqjTe1biZwN>Ex-va2pCHZui40(C?nSO*9?4N{HM$+#9TXV)TaW{b-M+yo}P zmvv)bc@y|(c)vN9A8U(c0m>3%Cq%?9V=XL=gZKI0UY4f3TZgu%*ud14&Cg~7PC8uR z_FEFT1{)mi)?O!WN&ULT@vAj5lQ1p!5}Hb!(^A(?ad3strfd7)p!@QUQrFSs)p&n% zF&}Np7vxD=aYZMnZN|oioQMffv4lY6sBSc&{qZO0C zCwwGMo3+Fu~T=SIe*jU7@5DsAIq zJoy?tq<9os+REZ<)QC@0vHVzVD3-+t4gj2xYn}->X9*x7mHEf)tGBb5U#EzLf5Cgd z-pGB;=it4MKuFREX_|`;ULjPq#FU@@J34guDl(8(Clfx}h?R|LdxSqM z$+cD4=Rqc1Lt$dcNFg1rsB^t{agxW<6R^}RFS~xVQS5L|id}D|{0~%6&B(!i6`hhT=X_#CkXA>uL;FkxRxB$yoXRiM zPbhG|ZoDP&(1k1>Im7WM1SgaY!x{+15dktLh-OWETMvJQwKeJKZ$f{`Z}*YcF5?C=vOX3vq{ET4Q$_{L&|8~gu{036c4Up?BmxyDQN08)WBij{Z+ z99X_CgsJn1489)aO3m70C2qQTSH~bwpS+vW2{(yuv*D~z?PvU4w?|YpLa2c$S}5Rn zGpi4nzq$*(wc3543n4%<{w&tLO{cj{jPH{rn$y{7wLl7zAgM-t4Mz%qaMeF;0TTufp{f+y)firt$wwvj8}? z)Aw~?Ou{er%QfOJQorQv9plEN-RXj^*M`l)HC1&hkv}0I0V9@Q_@zn*Z!d*?a!ucc zH=l32&-yMm@Lrj|Uw@GTj(OqZIDYNdxyIT9-Prtoo1GHxMdU}4Ui7WI)da`=`y*x% z6u3lYER0S__nTdbd&)$`J7>Ck!=rJxSQ~dSeyNE95#5KA89M#76+8B(c^7)7-``sA zJ}}yf_#~b1+y^+|pWnAi_{-zN_Fa;EhD|Ha0f3N>KT#Vn8!-hI2tG$cILr&z`5v2e zn@#t8MEuDH+>yzE@Z};7N(q03KGmdU1LF5UHzZ)Sy{a(+oSyU_>jpFaBGEU>J}mEa zJPEC@cv4XvGmyOVrsdZu3kTrTtcab}y%d#6qbk=pycSq!^BJEQ2T-7Q#%H%J2FmNC zJxi3;Gu5O1@;->cNE8*IY63-z+zv+lDQkp|yH|x{cA_u<*3k%3L^yPT_Ej9CDE&__Cp~YA)))!a9u-_e{xhUXHGGq8TkP0h z&O93afLh0z?F&1RfbNi)+Qm2gZkv;%Snpx7CRnF72~&v|BEbCtriZtmeMHI`7v z9qK!rZvY=(#D?FAc68ShyB)8~u^e^uJ#>AUJ@QyBbQB(bt))_%5R8`E|zizer*EG{`eEZaNjfpTI|QW@CU7-VN-hk`z=AeHv>} z=i9yi<|o*{ULFDjVjV}Lp;+{H58u56a6j{(P`N@yzn9Kj5uf)<3y8qT0qwux_!?oo zp#B0hlT+6I@Kh51st%R}pv?7v){NjZA;9~=@RNEC{#|od(vMkY{?VH=p?k_K5qMWG zfRj;gg(2|vj5HZO+nd(r6C$`qdyW_VVQcfev|K@_W@*hZrNhsQ)`cEFOW<~R_@FLk z`#9h{;4czeb=E*e#Y2Z5G6ME50GG?n)BamijL-7?okDc$l)pkt=}yW|wY#0QSg6>+ zoxl7dkLg`IF8unDA~vCi)mX-sU3ML|MsCeT?E4~(^#XpCkxO-Oc^YHrv0wxr5evbu zrf*liG*ZdmK3zDE0fcoOihoS!+yAvzE~x69lj|j!A@hd_twY6ti9~<6ut?$4RRoCJ z)L|lZPTK0}JE-3CCPuObKhdX#wZO)((C;{o3d{MekCl8>*K2+_WuPs?>C|>0&tG{` z;-?Q?0XXdS*0&8DtMXg{I-Qk&k-D{4mG_rCS30tSGy7~3g&vfE*%JaR4BxiD=AExG zJwG=nioScJ`5t~wXZ$zvfc$3&hbi^$F>p&m)HaU>{vV>t8os+y!tWn2rObctLU+ps zM-hevc=P43Cftni8o1D?(N>bGo(!#=)Z`UVL|0D1FYdSStOx3+D@vxKi-5@zr-EMDZseZI-=*S;`{MgWc4oAYiiMhr6mVZ5Skxn^FENb5Z_Qu4ard=Emk_JStk` z&ukhd@X+Y(r#7OM$VhQ?yJ#FyDIYmU*NJ1GSvn$@v15f8S%K~Y`EN^6z^90!6aq<& z*IpKsTg2G$u3WHkDxlRNFHR2C7r_U804$Xt9Aod@8S@GBBzf&v*OCo352GQL(7BpX zpOc!}%vTZFmMvi}Ii=gmAJ0_YHemdW&aw;OWqB)}O?K$Y46bkrvETY~y!{iSM2az* z1N+R|D^(xlw&Tmxp;yuM48ZaC=&V710aW`5MNVS$HQ&xwI?SN>Dw{bA>aY4okg>@b z*IPSNa+e@$XY0MnlU2h>?VQ&+G4ki9D{Ppt%EM4UngVZAG z-VUWBf)+Rnbw-m-*e|CeRb`iYa$k`=2MR3`kTv+3O>rDJ4B~Q8w6XG8 zZkSrlXT7Z3Mw_NLoQ5(vuvD*M)f=E!e#Xy2)%gB8w*Lu#OD1HbvrH^xS=vB0AhNNO zGJgtRqk%oqijC8QA|m6aUSE7t>uTyW%yVaV$p6jABf?S%`|j6B>o<|GZk=-%hZYMr z$$ViYkRtO%>g<#^IV&)imSQg8NC8_KzZB5KM+qO<9w^*QY9f$SmIC^MCD_z8LuYVg z?mQDLipW0h)0<@guD^(RS&&AvUzF0Y(rZK?c_cHNO-;`g5hPm6YYPiLg*k3qdF0(?#iKqa8&y4{xLC&Op+m z;FH*CWmrK4wv_pO?UnZK-s;0}Uj15h62+U0Cpr0Q?Rir}N)>dqX*;r3igwE0+k~)L z=Bnb6q)e?3xf(WLS4j-E*V6hS(ROO1Ax&k!qvKKahfam7GSHY}YBinm8@<&HJ(cvv zA1f>?NN!EK!u9goN*D5TC62fy($EjsM^y!c zxK1RSTs_y0G2XYIQlWfkby)8|{y4v$XWqGSY7B061Il^g zzzKEh73=Ssivim5;(gr94jSy}xRY8HtJNLlk6C}BTp8NIi5zz(=M`kT+Ei{QvVjSS z+DK<$qRi+D?00H$N8jnnZtJJ4dlFCswq+%eciM@KoqSyv+_jTmeVqJV3R6HDEpsVQ zQGPovT}g_RlXBgA7oD8~>f$JZz%J~yJn^E7hblv}L(-7i&Mw#bTPm1)pSp7IxoWmBmtfLiOg3Ji0*U^ zTPH?3buc9|2AlXB3bMz;;BUQG-@HZRb+Vh9U0TZP@U1yKO|~Q5&SP_lVp1=<^NSoU z2w5MYE!7VMHZo|}@9MLt1{RcX5KjJzTXaHC?cu3+b1NBY%R7F@T;Rqt_2$uv7dj6` zACD6SSG#Fa!+bPYgFE%>XHZBLB$H)Yk%%r$c5vK#Jas5q>}f2Pwh67obY5hsqmE4u z_#vWAaF>SI+F@tg%ps#27UELm(RJ`SIb~^0AA` z9?RI;URC?Z%yvYzN>;YIqDd6u_Navi{@{1oAwE-L}$@VkJ4%=pe0&I(1G{NK@tsd?vM zHKsR}Ot+kotdLf%PhVZ+G`?IVQdM&+QbaPI|&HHkPmn0P)w?3Pv&+HYm#&LsW|C3b8VXx+~Xz%!ne^FDP@nY zWbGb%R!-yIWDH#T`V%8`!yDxD2a|R}o9ssTuKRx4rBVRe6rX5m2wO8j+NQ}iC8ze; zA}l*>SB2rdbLNI)#r0+WWtX&xY|qB5 zmXU>`M@y#7qVZwr$Sw1fgo6jy2m1bOYOANkgl`ClMW>G!KV~n@WC3)NKiO-F90TOK zK-dv+Le56_biOZnP@*~gl71`P${JHSShl<57f!{)YE^RVA95PS=ztm76kMJNSH zhK?nzyJaozJ1aMv%^K}s@6#Go18&$CrGmy&o>)ktW?_ojqj>bmpIzr>g_K>;kGSvN z?IL=4MrJ|6^eZGI-h!=wANpt=V5~MJg^SlB>1`s9S&w5lsaHA-mv_*kH1ddnBhr-AR*U2?!d!iYI zr3Q-=ZFjiRO`dvVNOd1vGOK+}25F$~6wH!cRS&yrO1hoStRvqYs;E$)|N`XN!6x;8`sdh)hn z$ZL19z;ll25k)Yix%Lv6c=%?Ah!^g0ZiDkLBPKjbSa4Wg2%p$&04*&}-%&BHDlvMU z=l#w%AqOSUpmib0$?t1oIO7qDq{zp6soF+`gzeAj( z;$T&30&kSh{rGY`ajY6rY)yTnfByvjP*)H4;Y!JnJ=+|beGy$$(xB-}LPI|d|1B$H zFxw&WD?^pcw}Qo?*k`n?ry5|D_!K$fWW_tMhsKuj`aoW3OYNUva8d=!fD1af0Qh_IVY3)m|*d<19J6^=s8wEee z$4-feDFlQHjzSw)OKT}KHy{jKq{cKT`%C(N)+_O5j~|6bR2D2e!U84_AfMU5dvIC=Rg(-T$jp@H|hz3u33` z;^G3MxadGW+x<6|ABDgbp2N;;Hv-IdKn|7zK4lnnDf2mg|gtr01|6?rL*k$WbfbDXrVhKR`{^rh&a zN1fg$w?Y{SkL=*ZS@2YS9Q7A+DIBrdpjN$dIZARo4Y>Nn!PgcKf82!w@aem0AB|-t zvX|g3Val_D-YlorkHFo0QK$??h53}Cyt~qr68DU2AU(zU6Dr#{qH67 zoJWzDRZW!oZkR6<;o?*TJfzNwMEZELC$^_gCC90@%B0UGb)|oIuf+4$vMN&#P9Lau zN{PjHhkD6+?MP>#qu~+&+rsr6R*o%>_S9FaA!`90ye!;+UaX8rMeF@X8y?LS7is2k6+<9nbtW^#@56jjAB>`ir9IKP_~ zS+kz5%k?nTDdHGJE*wrT3mpwkRsv%NRV+Nilt(Kq9nIO1i!FM-XF3r=&DAAs{{@z8W%Q%4lT^c}cHNQp=T{5Ak;v9gDO)UG7Z9tCi= zErqavLDNfZ*C#iZ{l2!WKj2ntL3v7jo1zv62v8n^m^A1DZ87Y2iJ2#9v$hBo%yM$!GrxCQXi2tq`$ zEuB82H*d&U8;`*A?ux%Xli?M*kA}cG9R`4SPVx|S`^i3H1}5kx_L6i53as$z<0o;5G1O+eRX_4s>8*p(Cm;eqax&mN-4~? zst;L(Tp7dUmr1}0)B?+qGW9mgOzfL}bhGCk5mo20NdMNq0<=fQk9sQmUf-wNz@9=( zySJzlPn;@1NsSeK%Bz40d-N~TyAqyjQ2#X66Qm-)x0Uz%&{OHyU$?t)T_znkMiJ|* z2!ue?k4#cqL8iN{t7r%>{KO2OxWP^D6H>fiziZs3_~_{yRsZKLG%-X*;Sc6e7Qqfd z;4@w#C@(hG*`qymJ=f+?g1z|wMIP%q#bg*4nUQN7sxd$}8G~;FblWDY{k>8V$=Je% zEVr#7xxM0I`TX(fg84Z}!M@G`%`Nfr#Dp%J(A|nSCCzB*5z4IIiDa0amoLPA;7~sl zL9Fm_oAdOX9EyUkzi5&l#I=HYl6pHA0DBq)A4i75kxvoXz()oJ;y=7}o}8@*Wo6bh zbXnE}iBrI1A(XTRUQa)i(tO49{bgpn2q#jcGs1OJTHvPyfNCuMq>~LQ)F3>AYZSM1 z{S3b3DBCHJq`hRN$ZGnw|e_UTumQemBgZT-Pt6ZLjBWzTw1PqR9auWiyO zHs>y*DlQ(39vcJ06e6{=cX9G%8^Hl&KibRoc=m#i?0sMo(BpRD!6;PvEtv~`T-xl3 zqdn|dl+}d>4-oRK;p3|uVz`p~{*!jN9>;sLr?2W`^j&9 z`~^MQEStejT9+-#6OCr_nd%dUK-F1Ke&27#p~e%|okGzOBJg#U4nIJs7N3*%BPM*L z+SlE>lovyJGB~|ue(*tDO6R|WD@vp8ORXfaJ2m8%v>0E)5~LJvSoQ^R=$FD{IbrIk zU+CmtZ{`x*Bv)$TOTE%`)c=#e3SQ+=W!K!}_V!7BA>sTc!|OHGrZbpPoK(Q3&71iL zx~jL6#0ZPkxB(IxK1f$vCu}nNpv5pmE zJH<+OWQu<2ALeu`Gn`1yzvJP&6)Zu)R={z=ow|KfqQb6ZRl#%?pOKFXF%bBDtVHf- z1`d2j&#G%^hK+(e*RHv#QH9eLyfB+4yY>MJ2B+xRXM`|7jEZ>#3JQgtcy-e)eF|Yu zD!LndiB=}4WN9BUxTy23?;K^4hqx06D*oj0FzFpkE#BL4z7-u8(Kt=#rbi=kXHT@Q zC^Ju6%pRGq)J`j7V=8Olt3Ka!*HBnYk;I`tpajOt;6^5Vyq}pVQ|QRQ>TBapt#cf- z#ME-9_JxF;e5L-RdzePH4Xg6g#y`%gSY=kws^m2c>T|$ z{g};TBhl1==~QaYhKS0V--3`dItz0rNnWcC%K>UCKL@X(QEM|Uq^PU#bt99a#Iwn` zoF!6}v*98Djr%Ctgl*cRb4q%Jq=i{pKW+to^A358{e%b26oHIpNgaLz0;=VeCo+`O zd!UP?A48H)F<&gE+Q*IZX_`*n(s*zK{`rjI1QuJ!_hCx6dnGBvr{~ z^ykmZI53RM{MWizS$5&tTqcmgA{jX&w>!-hf+J7tGGg54ijU9A9pG3Mcqwf)OqE)& z*`ZdvT({^h=hO=Mmj(=?<=t&Am;e#SJ>pUC!(B>h5sU1cd}D5! z6=)YXBu$k`D)G}D%xT`9C?6f?5wY&BAJzfFCj*4+jPCik*D#<^h`pwc9c3l63KED|_m)IH)jYq?ZBh^nb8S|Bo73JSHtt@?CUn|X zNTK-?*o=LjcTZ1Y=8tv%;nq8=Byd|GbEKg|_TeF^jw2+3AXP3WKuU1D$xJ^c^(?JP ze9=4$EVlG98k_Xcm_$CmNn=?DBdbc|D4M5<6}cyf2nOgn6E)Z8^HHC=zsA0xw#7i} z9Ko28(<&8g{X9%bN*?aBvJa{Ru2TXw{zcBcQ#>1WmzgTW29B^WHeWanX*}h4qkGY5wusF@h&YLc;kj61d zovY*kBsfNLrLE}55z7_dlrBo3pVPW|S`bLaPLALE;B&w+6>K~%0yM$3BGp&YUEc~! z?nVM3N8J31}GY&I_LF$ILVBwrWQOS(KA z5lRlQwiPw<4kmMHBc{FtI-xAj#Wk^L(|qUYl77}cN#3#Y7b*LL^+fMkds3n4MvN*M z8#Sv%(lEBoqq}S3z#*JU@;d^Pe%T32zv6JuJz@&x8Kd* zI7X~T5A(*2D_u-n7|7a*6)TbRHeI!g(n>QG1|@-JdUhqX`@qt*YVpM-37sb`vusqveVCsn)A+bpy%jC@w%a!sfHOocP633N1DaI@ zVt%IUx2$57lQq$BQ~iU0Wh$MTP|z2xYe(wG+E>1(L)cYZS{E!k4tmYEIZjIvmiZkJ zdo3Gpb{IjSc+U;Hy47msmxJZQqW08)UiLo4k-O7fq>%%xrgf7?*_m&j&DfG)JIQGe zo*_|Twg;arlKlCL#0o9~=Bo`OT4PBQmD)BB_k(}rUjJ-dh;_@#hqZu?^c5>Pu%Cve z&)Eqo9_wdjr-@SMhf&Q7cQ#ZPFxHl!Z9cepc^OIbrrKYeHXqW1sovm7<^;Pt31u^xb`AtWVFShVGC)y)13qD#qdIBI9(De%Gno_4ak? zNZ?3WP8#>55qLDZ7rk8a40mg@8IqK8oOF3ud&1bc1eO8!OEeb8Ua_v~f1$yZO z%QadrR2VPCon7_6Ol4(kmFHc;LrpeA+)tJR`+JPtE|Fdc(`3tJ#h>z2S1XT(3IYQR zJ`S`;j_(MX*x$|`4l9MLrGy+Q3dN78=A;_iOvt2ak~5v8$X-h?<$rd5M>vepvrqk+ zr!Yagh&3le@WAliZg!AK$w0QZOvKg~E6&YYyA|vahY}n4hXt0lMij>J#{000GADm3 zm#|jMRx?PNdnB(pxO9Vii2m!7bt6R<)NCsU)Vlhk}BY)!Bge5r84F-%|BGJrxSa4)Qi6TyNeE`2&~7#d|JnN)6nbX-VN1{fC( zXWhfiFIrP)y-a3bHm9-;@wRZEt)0l-L4%Uy07$blFtWrs&aYJ?0P-aWHhbni&+u1_^tcSVv-MtPF*>+7>e ze~}soetnqm+Q3KAf0OU!v*^YOZb^DJXBDv|n&DP%osia4dN7}}>N*Bd=PRhsI!rRaH2clW$>$slYnpKZw9v=1>(@E4~)N>rKOc^H&X z%P;&=vl-^xgvmSa3VAv=T!))EzGlqWx2gjMa+19Wt3r7_g3Dd~4Yj_7qzb(Y}p%0CZ#_54cGofQrGJ46A^dmd-3G5 zdu-61=f0fT8v4Ao4O*Pd=*tKBIG`SIo-$`8XRzH$i<9cK7A*})s0j1dXDol@+(RaS z>Gl(NN;NGAZCfs3H>({Npf5NBH`?!Sfw(JR8hc;&_ac%k*bSzx9A@yq$^uiw_}-sX zR;(vJWzlGX)QbNikyGj1bN$h75pV&?n+@A1pLHRhCGydMJ3}2%XFZKq{dEs_N~`gm zgoq!NaDCd4*|v)A8Y?t=2oC>eF|J}|Edi5w{n@lPrp^p0d?e!yn|nK~aq~&dYs|PK z5z{it!JNummIE_wn)yYhSX0YMYjrBk#o@5Q3=IHh{?K5{*8Rv*@>koXz)D;%hnjOr zfi@-c3pwWP{5AEY>G_*kll(g8792F-^V*J1hU!$+VYQhg9Qb1>;>Cxly|2=n*go8D zLNw^34!?rU>Y1nN+tqXwu_PR<{bPGEi1R+Jv#5w{?s8GJJWPRDBr+htbXz)1`H!7I zyS;b%pD5MR43TspSXrY(*NDHVs0eEnXQaWN%~z$`Ki?~iq-RI54tIRFl+BZNl*+<* z4tMFNU5kvGMAoytx|K3kOh3K^1s``7`r+$%oHq3WDtutOYbb;_!dA95mV z!DK-~@;V8ffEAt8IKxZMhQCe1iY<~U#F{ywa!K}85C5=HA99bRM?OvfG(e$AosBu; zP-=}s#0Pp5&p9>bkwhOGiV=4|vaO%+Y`|VWY*G^P1{TA1MWQ;p%tM!;4^HWw@+OI= z&WaRR{Nu_(dT*YZ3Qj?2I)WaAs+OllfFZ5HO|*XMH87*YdcRHQ?sp-y2{qU z&>9&Z&^E#YZ&&ZHal$}$@UyXWax$2>)qWtjZ3 z9okOsHMq0({sXf9+t&GzX9}N9es50Vz_j4*QPAxCmi&c6M!1Ww0KviTqyY*!vKxAQW|XQ%&Q~WT8fr)CRSkazn4R^KXx!BuOElUVICv~% zbO-9JB!91!RqANOhpj7R>0dMd&vKmN1m_7bA3svVO|KC=aMe-9O#6!z!HN*}cL_51 zejoaK(6%jdMr5%!q8Ywsw{o!Wc%)V&YXnTp3M;VIZUprZc+qS?j(FRD(poj*sSD|d zjmEWC{&4B-!%W3w;4&F`6Au^bNa)TOA$S^m5Z(%ju}&HfFTUnH|7`4GTe<~?xS2x1 z+h(_;br-mutoj{jt(dm79?DpxnPmQN1#Wi73pa zptaSG*rk2b4*H=cx=On;#l|~XiLs>Ai^e*e+$vJ6_*D%MCnc79<&VS4?}>1$DLuql z*4lskfO_-7PdGP>EqS+aG>zE_D;iP)*KOJ0zV|>P{!62nfJ{kXIz(+o!G0E0xr9;e zZuHsVnm#jTa%D2c&)KroDhPK2jBK4Jrw@Rle4IeM3 zRy2D(?1Uk38dTLMK2dnR_JY_IX)f!KgCc0)x(7T~Zwsm!O+aY;&o;LLvd6Vz?pyx6 zUQ~p+TOE}lIL&ZNI4ykr1RHYR#rXXeWF7&4n$rLKH6tb8=}{5Dip_>&wD12PUw;`_ zMf<&R!-Oc^B?1y6-5?DjB_PeFLqNK_!JtcNBn7Fx>F!SHM!Gwt`?_bg*YEm2&x`wh z;|JNp#GZ53Ip?vC^o z|1xOUK)sd%4&BC|r>aQuKUAdNiOqoido&f`Xn5czWH!a|Vx4gL&=HgN?niszfgOwY z{6Gs;-JE&#sQG`#_070=5PJdFy0AGVY~EI7J+)+3=oX7UYJ4Ik_1{U|f(~0SX%UJf zw(i-AocFF^805_0E5hUu1x~=T>VEgiwI{Eyy|G^#j zgARYc-e9!;{ObW%MSkaXl5pX%JQ&5j9^KL8tCCj z-<&S4v>q%P%%0xe|6+3GzBfAWFL^i0oyX%Ittj~Z>rh`hzXBq86svoSCb4!e2*-(} zSTb2FIPnQ~|9!Q4mq9ZR$j##lC&KH}+#Pq~Rp*=SD`p@LiId1`Nt0X29Z)^*DBu7g zl;o9jT+<9T<6qa>*X2hgG5Z%9@bOns=GA?&|Ob;J!f%C0E6t8)@eiymr zyxT$VC-Fd!2Uu#g3tg=r@<7;%bjbe6PuCY<=I9a!?S3XTw72jMj4!Apq5!QKP1~Gkswi|>E@p*JI-CO$iAj0Cnr47c zXnanh`K^DbJLnSy2MJ1~j7j3O&xGG=E5mB4l`=hIUG^N!KLUV~o$MXIdS3~U=D~dy zmOVNV@DVd`zx%vAHX~B871IwU%S`reYmz z?wyx$nD1^aSfe>G9@TnAkIP|wXe$#iGKbminQoinL^g8Cw;i?*`UTsJDT}h_MT2QC z3egC;d(IoI!B`XtdTnEo15A7ItjQa7-oNcx8v631d>u&M05OL)4~XR)^4!7q;adl= zV4J#~qy0>#3u;<@s7#uN(?ba;-!pVbDQA$?4}y@X?~UyhogBP{Ob9$L34P?&o@At_XPL#X$Ke# zG|0GsU&Bu#+@sT8mDm`btg)im$=NnY4{Uh~fZiVx8n`lgIVt}^zz_)ou<+5~IDyBa zC~#tnZ6j(3v;(?w7ES?&rUvsKJm9s2%s{vO+`Ybu6Fp1pRqMp2Ryp_Zw_0}sT@kSU z^vJ)P{U#%j&EL7|jFRXH-TIX? zTj{A`7%kC<8dYlSe-Orub1+OYiv$W#qx4#d$JxF!9Rb{{fW{1LQ>emWT(#VMWjNS& z)#804p3!}JHVKhOqX9EQA#LA8TE*Ok@U#ceQ8=yQ!f(}my{1{R5Z)%@$Jt6}&qTQO zd2d0??@uKMD&VmGAfH(>$qk*{`QZyxyR^v#Z&{5Nj4-MX{DUCt^_Mrr0E{y~{y@{R z)2X*KkAs_o=WOx?{H&cfwapR(4U}@WfyrsL&mpz`YifIGM8x_1(RauakPV`sGd+Vn zyeMpj{!GG6p;SmPLAv`UEmiN-rUvwNc1Q*SRDtulK1P?)nryGb4}yY9QeyGqFZE>Gf$G)K<)2U;Wg+_0T(J}m%d z8PHt*M1h@5Z8r9tr@1dD(Do>8Ow)+PFzY;4Iv`r0){c_CL*zmeFMQ}->yb}9uZn_Z zz1p~-d%0gH&|<(6CqZ7&cc$X7KUwwZd1|RH0v*;V zWlnFyK5poK=G--x2pf@+tu~KG{Wb8X%gizli|53hLmxr};cehyNzDcLD8W8-K*@67 zEi>CLv`rr(3+X1%IqbJN4t*P{@TstBui!hY4D18iqwgP1deY9Baw~a*f-0k3#^Y@C z5}_}X9mbUaClV=(*Ae7L1c!S%Kg)1=k)eWGwc7lKBkBCOj&b&MQFm-4eHaU(S12zz zIqSE?&V;Db1WAsn!ZGdVW|e$f{xsFeT_OX&!Iqs=fMvU{or{?_fk63aPo1cqm@8p{ zba~J&?%YO_0?UZq7~`$4oI-g^wGt!&>M{O|Kn4rXPlvr@kO(4Kl5@Ry!As$YVPS%g zIf3k7WiZ5bf8SeA98B)pua9NCqifhUhqXMeBPf-EME{U;5OB(S;~4ZLgtwPw;u})! zaBL-d3Up2B$v|ChnG8lct@7(%Q8Za@WyK{l)Ko`ak>^hZ)T04_F z0|mTRHntZR{INjt(u!g#rPz8{$aFin+-^3@gKWuEzTI*r&r&~F5v?il1aAP1q%HU5 zZJ#BPas;DZAu_1=pQdLV*;~H4z?OdPBuNvji>+XZC|S7-6G; zgkPfTx}rvy#>M?;`@C{;&_+(B?K7$OiY6x9c72Ho@{;>IM3a)c)`eJXF8n7k_4&s; z^;}C)Lvas$KcnxmW$eyqQ~{dvVz%9tJ*HFTEp~=D`I$piOz!tGcHX&OKx`bg9KKo}&41 zSng0e+smCuk3gW)WrUYJa>JmxwS;b88jjRWx`-W5y^(yCT1R2sH=yGYbt@ z&$9;T9ZGG8>-k%Au(=eGi0HLssT!|VdPO4%xI0AA=6o$F^ z5$r22XJ?C$aJLCwue!0bX3|}ri4;xSy@^1}NoPgPYc-+Ty)mu!1M2)}!ZK_OD}Wu1 zdd+Tmscoga=197Pr7)JqcrxkeoLl9bYpLR`Tt7^axTFh^*Aq%#`su)0%N*2oAPkng zB?ak?@8aDcsw?!WBV!k8lpe_|CSO95)F{2zkh6w$C?lgWY_#E+S z{?7B|6Rxx#5-zT%m6ZxBQQRM&Z27eT4Xh0zd!9CG?jp0JX?pL(9Lc8`{J2J5R_|zZ zI=5&NBH6DZs9tamw25h|O(=zDgKo8F)eE0>pXJ=R#&0nJ-u)c?n(x*M{N`-(s%c2} z3f#J=AxZ2|2aBbu1em#+PFS*KN9XL0lAY%@;iO{F=P}Yx)6WYNbf6H)?Iv6`$sxS2 z$`!Fv>Ro#{0I)z;Hs1p!n-edmnTYp7wm@CKKw_grI$I4wtfxLU!#+2K^~y#_&Z?fq zXNwhYE0hVEn_rpB(dC5#)CW9Ult&w4W&24wohO2FpJ#4H!B~~|&Y=~Wn<_o<2dinu z67!w>>X6bA4nZu}ih_C-Zkp_|zIbMiTHNH#v)}|$QNfodFG3!@ZwRuxsTf;$YJn=a z%89|Mo?DVqbG?vXlo*BDmcKQxx`dq3hqPhiB@wOy zuGI{v7;h2(stw?Zq;pka6x2O&xLNzA6Y>dhFS35?q-;{oqc3#l8!RGz#@`FeAKIl} z*Ug^hML&_7gR=v*4je87D3&2+TtjJ1%^GI0P0*!%phSXVb9UREh0@j}h?TI4k4y5! zo(b)O{Ud+lS@&tWRGzbcn8tGZUWjR8C$MPB$9>tmquO%brh;m~CF~a1Rv*hJNXEQ1ow& z)%F+5^SZRhrA(A~*>^_BH9SW*NUbATBEUvfk5L#anJDoN_XNDpxLld(ZrzFYW5W<` zc158uApgAeW74RR%+DW1!AM?dP>i0>v*lY=5Eq@sK3&~pd-j^_{I40?`HZwqS;WD^ zPBGW~SFgm#7zF9&*VKLDh5pDp{`dmq!O!NEu&HWy!cCfoJxuC0%OUTqPg+B>$hu^7 z@$}WDcHO+c`BDeGc&FZs)O~n!_M6kz>crBm@bs4ogmEd4Wi29}H}#KnQp=mu2EXDG zYL0VZSLrm_5=$1UfH%hzAD4$UJc+$3CLX&MzTk;`_B0fWa}g<~Mov>EV`8me*lyC( zSDgjFDUZoxX|faEH$@Wn>BnJXDZ1CXKe~69qh-ds=U@YK_iR(OcEnJX-az%bhO=#j z0jp8B{xxl1b%7f@9crj1D)?w&YXr%B)jW2bHe>>qb-Fs z+cLBNNZEz99mVf!NulKQ4NwBY~SE{9eG$Dp*>{zwJ><8yN*#s;}CaO}HAg zkc{Gav57ge?gU=1_Q8)E4QJ#YfKo-{w%*;r z#JzJ<6EpSIc?0)Cg*kpZz3fm3?lKHnHvCpiH2;SwIew?JyS78!i)gz;QFKw$o*jUB zJGHw@=EOA%{=)sp;`BnaWpdo08gI#u^B{Zsx8sXasi>gRmfi^A^wj|cM5g7>FFv^Q zs^v@^SU5%uwS@OACdE~nS)9t-+`fDRBd)ygwpb1!&k61(kFO2yt=2)DMuV*Y#eA&v zVXUQDwhTju<}9y{1B(W{k7KmXZ$wx0Wc(VIm{g1}BlO971@+l?6&%tcCh{$Nt`_`@ z#@8vh!z-%{W>eEcXA$jerMV8fbVG#r?<>4($6x(2W(N(avFO=z?l6V0s&xUKC+o3le_;Q z7&<-rs308ZVa#QWO6Iv$S^;2Ofd(k-u()$iV+e#TDG;K@&lnORYyN|)Ao>`9>N$xD zz;^f3_zmiJuTGhG)Mn`w5^DFpca(6kjy~|zM9gPo8truM8-<>jOnFA_y)_AuqdJJl zYl>F~OpFc<4L=2I*gk+QccfO%mQ!LZhWLH^CoCt6X`k%l**gDm#dKj!?7@`-3+acn z?Y6zkB6G7ysh@y{Bn1hd9DC@IsMM z6((YMN6UvfU~n1a7x12r|GJWfea(uu%REsnIg0wzz8%+e3e)~%ZvPznZ#6lqbN|%y zbuA232O7%F>1$vlE3(_za^1oJO2geHK&K>}VgV<9vbHr^N3<>)6z2-x$QlRN`FgB+)T^7M$c5Lmr@eECUk-?tK|UB)L;Bb8s3 z8$T8mj$%r_S1Z6W4S4d@`N{?IQQ_gsTJ2tdT;h=WF}b}H#f{C-6!9I> zFJ(yYPU1@Q6AVb(d=Lb8MK5X5cU&d)BbJW0Zl+Xk1s6u;<#pHmgf0@L+zpCHKQD(S zOFU9WcpETfvv2zF4m%DOO zqjMuY&Be+)aYeTo1vE^KntDuQ8-v}cXy!S;anwD;98UdwHU*K88_+rCfXba+n%~y;G=J^YZQf$%j_X8Adt$|n06Trh z_laE7@dN`MpEk1qgkwzdr)3rvhhxzj5Mezor1|w{HPzOMz#{d{UBYGWHXBX&)ulbt z-&S&K#)SD>?=BAPW7032#C+xQ^Mn-WjZDr>= zZUJ?nzhx|&47JJHMs;rKkAQ&zDS4yvXEN8vAA>CN^qkNeUw?1E!N0vBWfC_{P7MB& zA*a|reZ{_N#c%WjaUa3+BV$RtJJLtR`SRh}9Dw3M+|uTczqkhxYQ}gH_AyzPcv!Sc z{2akN_TDt338V1Gq)7z;E-G0VI7k*7_ik2@M1Fd%E(+y&>@8X>-eAvHCv^fu=t+T7u@|B_T#IGGPsAvUe8ka3 z$Po(p&GXU6CEicZSZh&TJvOXd7fNq_Sl~(f)|Ua}9|YyFxLA!s1>ZQ*?N;Y?r=E^{ zU+t!eQvtGC|J!m0kSv}efr{Na%;gj7YQPdih+vFOM$xMY|5yXgGhb)*Ug8!<>Fdr`A&XduuNVY8g@p)Q#(mJ zP-F!AWYkZcP8;z5RTQKet{|aGBk2DSm|6oM@+yMI+;sV3NgN@4Sn`O}ZyU6lk zc-4v$KRc*7IZ+xm7faPjr6`DBXsi(*a^22VQB^ZcwybZ&Px7A974y*^doivNi||}O zGu2`Ng)jlrE5r3V5?uVwr+9pi6yG6F3(4|lw$vmn(dhvd22P-c2uP!VBI@h!jz5pI z)m1KV@f7OQqt7*8!gO2jW6;w16};*1=|7VX<*mf!UxK_G=^o1!Kx}0}sa0q>7x3|@ zT=jIhoi=v81V&FPoSssN-?^;Biqp28W6pNC2x!le0c!DvDeE%G0ODfX>57t2$t$AU zJ35OP5Cp41LD0}FBGK?zF!SBS&aw=Ko^$Ve!^gj)|0LxsA%7X~)n4Fz53PG2qh*tK z19uARt*iv=EJ3@@^`I*8-04-Fu~=cemu4#xVq$F~%2vEIsI(Eg0aI`%yv>R$x^w8jH>T6s?-*2`t^}mQV>ra?O5H!Dt0+!fU ztxk#Mr)^crl{xE64gA|4gGDV%waddbvl+h<{d1y6vnH9iJUzWYe)c4&H9CQBCcPZw zd`gWRgK>^2qCHD`3Cg-)jf3DVeU^#I)fqWinAU6$(p@Ffox{GpiB$4`g$DPNo?a)^ z!0SqEThijNVhkz|t$%a5Ht_9F2ngf@kkR6v+01$f`<64x}VPh9OV}z!;dfK-)06M6#^7gw@d^RZk3Ie_umR> zsmsvwfOcn7l2}iO7zN}`f)G}6$`otke}s@nCb-LaWcR`L7nz<7v7e7vxbT*k)6k*P zWLnVBQp)%dI~a_4WDzN+;}r>u3>cqf@*t6Sv?Kt)<;UfJn&nE}$VR4-gJecS`#DJo z=v)w<;!25=WkrGyZQS$>;7Uxp-E=juc*HD0uAJ!f0RYdkxs08$E4?8aSvb>&9r@dE zd0~i?(nVD892`S!g)Ix*fA!kVFEBYcRnKc3b|2&sD4t0m%6@2#;NbF zm#vP?S>21ovNdFgfkJ{l*I?iB(pOApAFw$otim^7h)< z-K8n9->zO3?%%bHfEOPMAnLq4{JVpK(meuMdT@@sO#@#Z z%U}USUbi?7IjNyj%|~IBT1?{1U`Cn7OsYraqy*FDiOlu&ejSiJ#Cm$z@_U=%eZcsQ zi;;b(wjQpav-HflrZ4hLNiy-gAoQo|_e)T~$b+ULk}WUj&Ij zT0zYlxgB4d#zFuylfh#w@fNBMR6Ifk8Jg8i=;B|NHM>M}g+2ax*(@>a^62xb^d1p$ z0$LT6Z}Vp{N@(5}sdME5<-2sfyMdAlSjs%ZxEMK4>O)>O?TZ#Pv$%zi2&tDbJ9rYi zVpm;MDA#La+R*mzft&=nT&Yp13c}c_(QhQ$CCJ5N0=H73EKCh*^=H<;@q|#9NyrUd zGwx5jJG{7{xPXAvPn;ozr6sP7oWdQEr-zvk^g_oOIt9SHD_zf{mzN;JZRs6Toy1VZ#`)>6@FNnV=nM>oUU z0X_abJD4~}BE^)uygM(u>T1~l89D`Y3hnd@AJ1JUpm2UlL9kzhLyysA z2(3FFvUr)b?A){S$E00a(<(v&-7o56v{JFVc8ol7PQuGuwT-X%wbn#WUMP2Au0rX` z91xOtXl#8FvZ&nG=p+=MX<7I=IE+9b+`jx)d!Igi$~R zU<<1ljaaN%A>HAcR8W7&Aqc`5nSWEySp3qiop&wi$2fpH$D>suW0BNHt0J-Jc>cy! zb;se)@|3lvRw{QCf?0d)b=zr@cX0?!+ul3hGt*QO5P?uArxX6YW7o?J|E@~xw-dz)gWIrBKY9 zcvm&PLZ6a{y8OPM;t=&6xdRa=0Ta@NZQ(7!;tXlN#{^%vhZADHO}VJ615UB{X;vX( zu~8{2^&Nwt@?>cE^v*D4{h0I3H>B&yI;HjP8f|gG9XV>Ny-?)1AeIn_swVH3-PJK( zsKSmE4K@}adokXzET_42UEh4;?=|j0sbza^yk`ee0K?R$ojX#bT(68Z%8{z0FSuAFLBo!5Fpd9D>y zX{>gCw5B(Q!J!NylR8{iQr@1IrsUIXmJ^Chf_O-Z;Cnsk)ct|e-%N)=b4bgU=fY(` z#ND(K7Vl)>zCGSLIWvwXHHzUoOp%R$C@~+3v-8OEokR8?1Aiznev029W2CM=lOWZ zHfuAYG+rt4o_RZ`v%fNquH^Z6s($n8u7fTfnO&g!j>5L>^1Ro2|E(bFr2mfAQl00G z!cHqPxfyo$8%2$rX+jmDSb6*Ex+030FnmYWSCiAZhxUCU7{r1;WhimEIXvTDJ{2s# zS3+Awrb+VkPT9@54~}4E0`31GytK&i534sfy=+9^)@os^C1X%d*(K4#XyqK)2}yrs z%#D#a5t_}By{puDTVRpn$-G2t;K-o8dFmxQE;pkf8u~txgwPD~J;UE`WwI$Ae`Vae zZDV{~@Oyo-x{bRuDSK2|ZXoX1y`si#qV{$2jz+35o5Jo?<;rJ_;K|4tsA#!=P*xh@ zW{HQs*J$-a8ShwD(s; zJh_1CmkNx@>hg|0d9Jtk4d02}%UlWDr_L-Ve=fe+42j*WL9Az_W2HlLIsD3XV=1>@ ze?_an$xaf$7QdOy*mtpp!+*I$)`6i>mG)Y|C~WhbHV!JCLXaBlRaqt(qiI+o#?>WZ zcP+2ekfDWcnWA1f_LWuBUni1hEOjX4lC3V({H5<$vaP}K`5xDLio<6$r-#sSdFbz- zgU6#kQJh*n0PN||fsG=BVP_i@AvsrG1;UvuWA+Ny-EjjQRZYofjJbAM=UHqD7L$Gq z8-#SOOaz`g;}P4sFUph6ESm&EwM=n*zLKuj(MAZpdGUhs#K~$CLZ=NBFyL57{>xalACbVQfX;vVJfHBD9nO%v(A`zFzU0kQ&+llm22m? zY}YJ*mO9iD5PkXM<`dhzWR3C&EZ)EPJWoXuK=z4!m%FG)L_WzBpDMkXrr`Sz}lYxVE zNL;>Ve)GMExGm2R4ko$R{%jXdeX$+BkGsXG=^4G3CM$;)I@+~pKWdgG`qfW$-K;P* zC#i}2snZLfzk^Yf-Q`w5ObAfm);LS5<0{JM`Y8laRQt|es=Z6$WJQ{?{B&glDK16s zCY_C4`#ND<{wC#4wb^AQs)me>rR?Qq+tJ4*2$@B_KI@P`i~im;#!fD8Q+gVWtYBKQ zeF2+55!wzfXgGdjIW>8(cvsmIf5`JjVZYd84d2b3e?;!XGWY&ZDfCeL-4cz!Q~t&k zebxm9&Z0)cax}W&iyNuRac;(eg+D1*7%^gMVd8W6R!%m^D^UP(I%17g@1EAa&6TGk z*gHJ;{^q7vO(Lj71ut>v1RN%tVH_{+77E3^*~S%_^q`5tyi0AKiE8qiyu9jpMc-CL zW>E;c(G48OmOgpqax`s`G*LTs5!rCn0H<*7#3GxoUIN`sVeZEw;C9ob$PqMR z-gBt7_1y73GxViM&ePY?85Lx22)wE!;c?tuwA6zdW&_aacYQfEKS_TXj-Rl!8Tu!d z^T)_$A4PcHvh#n~(acVnJDLC%ff7ng_?*=1j}cp)j`w#sM1cMcz1n~JeY zIM%e2f*Xrj%g@?JeY<1B>DTG3ngt_hS)4!{@+vj8(Pwrqp?O4pi%s$n zf%&Rjt;gA+#Lk7iNIs1$S?36Oj=4x4WrG^fJjPKkzpv2@&VhT7?X*xiY7?=7enNc( z^fauz_*1`viuRMX-qZ|)LtZYe=c++w<-#@LClKxSfxKK(zMzsfE*F-5*}K1E4Iaw% z!9@@q2J_mm|1Tcxq+SB9W)b&M=^^D7pxaR<^Xdcp;BA^HvIN^6-4 z>9yn?v6@65Ti*+oUv;}KH~TPk^RGBu8}bFJ17)i557}dhdB0?7X+vzVS=?o`lMbeL z-XyC|-L#gerKlhD*x;-8?1VbM%5`dx(*wwDFEVqA#7u>;s2$b4ZtTX3skM-v4(G}xtGTJ``)1#*$%n*;FB&xPDv~sLk)&lUmzh2O zj;csi5u?-E0qbU0M^k#$o>VsUX@{fWXNB#oqg+UN<-sTr`E|!+U&PUU7F0|&XH06g zo4e;wV(g0-VX0e-_@4Y2;XTR|`FJFkvAHgW-#2@GR&kZ|RRnGC@TS%gQ(;MkqbpX6sKuyBb$_Jr zV1iZu+!QH@qnvm>8FG?1I4K4cnj5}a+Kvwc7q+^DS1r~&Qljj$Ltt_A$9U9r%69+B zx_G7jho0P&JM zI@(5U^}aAI{vpjfgG-#|Yd?|1?z8krqi}r{_`Xy_*AsK;76!d)(#pzgOYa3@+YdOd zIA8vLvqtWSk`KYj=N4R1*cE`$a0G7LQ?RS6=1v%{$Y1mS%{ZBjwBb6mWp}^Ei`Dg< z=yphSeJg9FZzXj=pzNv*ItKb`vAvTb?#UmwC0V1 zlubCZ`WJ+=>*Mw!uoKXo3ip=EW$xtquN{XL4;94sI~n|gu=wLPu@4&Y4+7hbPWk+l zWI{mPwf!}`XO$C6D0=- zrn*g#V*lv>bYOwpl?Ze&Y9&aJ8elU&^1DnvQ0|OSYtWf`d zf7+J5k&V

Kmt{Ynu&MB&a? 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

oa?;Uf`6$;6hi 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

ve;tptsW8rH7+y^|DlDwm9&? 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

o`|JhqfQwEvC;x$-=x~60 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 Y{QtA`TD(communication); + +type CommunicationProviderProps = { + communication: Communication; + children: ReactElement; +}; + +export function CommunicationProvider({ communication, children }: CommunicationProviderProps) { + return {children}; +} diff --git a/code/client/src/domain/communication/context/useCommunication.ts b/code/client/src/domain/communication/context/useCommunication.ts new file mode 100644 index 00000000..f24b40a2 --- /dev/null +++ b/code/client/src/domain/communication/context/useCommunication.ts @@ -0,0 +1,7 @@ +import { Communication } from '@/domain/communication/communication'; +import { useContext } from 'react'; +import { CommunicationContext } from '@/domain/communication/context/CommunicationContext'; + +export function useCommunication(): Communication { + return useContext(CommunicationContext); +} diff --git a/code/client/src/domain/communication/http/httpCommunication.ts b/code/client/src/domain/communication/http/httpCommunication.ts new file mode 100644 index 00000000..48bcc61e --- /dev/null +++ b/code/client/src/domain/communication/http/httpCommunication.ts @@ -0,0 +1,51 @@ +import config from '@/config'; + +export const BASE_URL = config.HTTP_SERVER_URL; + +export interface HttpCommunication { + post: (url: string, data?: any) => Promise; + get: (url: string) => Promise; + put: (url: string, data?: any) => Promise; + delete: (url: string) => Promise; +} + +async function get(url: string) { + return request(url, 'GET'); +} + +async function post(url: string, body: any) { + return request(url, 'POST', body); +} + +async function put(url: string, body: any) { + return request(url, 'PUT', body); +} + +async function del(url: string) { + return request(url, 'DELETE'); +} + +const request = async (url: string, method: string, body?: any) => { + const requestInit: RequestInit = { + method, + headers: { + 'Content-Type': 'application/json', + }, + }; + if (body) requestInit.body = JSON.stringify(body); + const response = await fetch(BASE_URL + url, requestInit); + + if (response.headers.get('content-length') === '0') return; + const result = await response.json(); + if (response.ok) { + return result; + } + throw new Error(result.error || 'Failed to fetch'); +}; + +export const httpCommunication: HttpCommunication = { + post, + get, + put, + delete: del, +}; diff --git a/code/client/src/domain/communication/socket/operationEmitter.ts b/code/client/src/domain/communication/socket/operationEmitter.ts new file mode 100644 index 00000000..8d9cc0ca --- /dev/null +++ b/code/client/src/domain/communication/socket/operationEmitter.ts @@ -0,0 +1,57 @@ +import { Operation } from '@notespace/shared/crdt/types/operations'; +import { isEmpty, range } from 'lodash'; +import { socket } from '@/domain/communication/socket/socketCommunication'; + +export class OperationEmitter { + private readonly operationBuffer: Operation[] = []; + private readonly timeoutDuration = 100; + private readonly chunkSize = 100; + private readonly maxBufferedOperations = 20; + private timeoutId: NodeJS.Timeout | null = null; + + addOperation(...operations: Operation[]) { + this.operationBuffer.push(...operations); + this.resetTimeout(); + + if (this.operationBuffer.length >= this.maxBufferedOperations) { + this.emitOperations(); + } + } + + private resetTimeout() { + if (this.timeoutId) { + clearTimeout(this.timeoutId); + } + this.timeoutId = setTimeout(() => this.emitOperations(), this.timeoutDuration); + } + + private emitOperations() { + if (isEmpty(this.operationBuffer)) return; + if (this.operationBuffer.length > this.chunkSize) { + this.emitChunked(); + } else { + socket.emit('operation', this.operationBuffer); + } + this.operationBuffer.length = 0; + } + + private emitChunked() { + const chunks = range(0, this.operationBuffer.length, this.chunkSize).map(i => + this.operationBuffer.slice(i, this.chunkSize + i) + ); + let chunkIndex = 0; + const onAcknowledge = () => { + if (chunkIndex < chunks.length) { + socket.emit('operation', chunks[chunkIndex++]); + } else { + socket.off('ack', onAcknowledge); + } + }; + socket.emit('operation', chunks[chunkIndex++]); + socket.on('ack', onAcknowledge); + } + + get timeout() { + return this.timeoutDuration; + } +} diff --git a/code/client/src/domain/communication/socket/socketCommunication.ts b/code/client/src/domain/communication/socket/socketCommunication.ts new file mode 100644 index 00000000..b15577ce --- /dev/null +++ b/code/client/src/domain/communication/socket/socketCommunication.ts @@ -0,0 +1,60 @@ +import { io, Socket } from 'socket.io-client'; +import config from '@/config'; +import { OperationEmitter } from '@/domain/communication/socket/operationEmitter'; + +type EmitType = (event: string, data?: any) => void; +type ListenType = (eventHandlers: SocketEventHandlers) => void; +export type SocketEventHandlers = Record void>; + +const OPTIONS = { autoConnect: false }; +export const socket: Socket = io(config.SOCKET_SERVER_URL, OPTIONS); +const operationEmitter = new OperationEmitter(); + +export interface SocketCommunication { + emit: EmitType; + on: ListenType; + off: ListenType; + connect: () => void; + disconnect: () => void; +} + +function emit(event: string, data: any) { + switch (event) { + case 'operation': + operationEmitter.addOperation(...data); + break; + case 'cursorChange': + setTimeout(() => socket.emit(event, data), operationEmitter.timeout); + break; + default: + socket.emit(event, data); + } +} + +function on(eventHandlers: SocketEventHandlers) { + Object.entries(eventHandlers).forEach(([event, handler]) => { + socket.on(event, handler); + }); +} + +function off(eventHandlers: SocketEventHandlers) { + Object.entries(eventHandlers).forEach(([event, handler]) => { + socket.off(event, handler); + }); +} + +function connect() { + socket.connect(); +} + +function disconnect() { + socket.disconnect(); +} + +export const socketCommunication: SocketCommunication = { + emit, + on, + off, + connect, + disconnect, +}; diff --git a/code/client/src/domain/communication/socket/useSocketListeners.ts b/code/client/src/domain/communication/socket/useSocketListeners.ts new file mode 100644 index 00000000..ac81c70d --- /dev/null +++ b/code/client/src/domain/communication/socket/useSocketListeners.ts @@ -0,0 +1,11 @@ +import { useEffect } from 'react'; +import { SocketCommunication, SocketEventHandlers } from '@/domain/communication/socket/socketCommunication'; + +function useSocketListeners(socket: SocketCommunication, eventHandlers: SocketEventHandlers) { + useEffect(() => { + socket.on(eventHandlers); + return () => socket.off(eventHandlers); + }, [eventHandlers, socket]); +} + +export default useSocketListeners; diff --git a/code/client/src/domain/editor/crdt/fugue.ts b/code/client/src/domain/editor/crdt/fugue.ts new file mode 100644 index 00000000..c0c81ce1 --- /dev/null +++ b/code/client/src/domain/editor/crdt/fugue.ts @@ -0,0 +1,388 @@ +import { type Id } from '@notespace/shared/crdt/types/nodes'; +import { BlockStyle, InlineStyle } from '@notespace/shared/types/styles'; +import { FugueTree } from '@notespace/shared/crdt/FugueTree'; +import { generateReplicaId, nodeInsert } from './utils'; +import { type FugueNode, type NodeInsert } from '@/domain/editor/crdt/types'; +import { Cursor, Selection } from '@notespace/shared/types/cursor'; +import { isEmpty, last, range } from 'lodash'; +import { + BlockStyleOperation, + DeleteOperation, + InlineStyleOperation, + InsertOperation, Operation, + ReviveOperation, +} from '@notespace/shared/crdt/types/operations'; + +/** + * Class that represents a local replica of a FugueTree + * @param T - the type of the values stored in the tree + */ +export class Fugue { + private readonly replicaId: string; + private counter = 0; + private readonly tree: FugueTree; + + constructor() { + this.replicaId = generateReplicaId(); + this.tree = new FugueTree(); + } + + applyOperations(operations: Operation[]) { + for (const operation of operations) { + switch (operation.type) { + case 'insert': + this.insertRemote(operation); + break; + case 'delete': + this.deleteRemote(operation); + break; + case 'inline-style': + this.updateInlineStyleRemote(operation); + break; + case 'block-style': + this.updateBlockStyleRemote(operation); + break; + case 'revive': + this.reviveRemote(operation); + break; + default: + throw new Error('Invalid operation type'); + } + } + } + + + + + + + + /** + * Inserts the given values starting from the given index. + * @param cursor + * @param values + */ + insertLocal(cursor: Cursor, ...values: NodeInsert[] | string[]): InsertOperation[] { + let { line, column } = cursor; + return values.map(value => { + const node = typeof value === 'string' ? nodeInsert(value, []) : value; + const operation = this.getInsertOperation({ line, column }, node); + this.addNode(operation); + if (node.value === '\n') { + line++; + } + column = node.value === '\n' ? 0 : column + 1; + return operation; + }); + } + + /** + * Inserts a new node in the tree based on the given operation. + * @param operation + */ + insertRemote(operation: InsertOperation): void { + this.addNode(operation); + } + + /** + * Returns the insert operation based on the given cursor and insert node + * @param cursor + * @param insertNode + */ + private getInsertOperation({ line, column }: Cursor, { value, styles }: NodeInsert): InsertOperation { + const id = { sender: this.replicaId, counter: this.counter++ }; + + const lineNode = this.tree.getLineRoot(line); + const leftOrigin = column === 0 + ? lineNode + : this.getNodeByCursor({ line, column })!; + + if (isEmpty(leftOrigin.rightChildren)) { + return { type: 'insert', id, value, parent: leftOrigin.id, side: 'R', styles }; + } + const rightOrigin = this.tree.getLeftmostDescendant(leftOrigin.rightChildren[0]); + return { type: 'insert', id, value, parent: rightOrigin.id, side: 'L', styles }; + } + + /** + * Inserts a new node in the tree based on the given operation. + * @param id + * @param value + * @param parent + * @param side + * @param styles + */ + private addNode({ id, value, parent, side, styles }: InsertOperation) { + if(value === '\n') { + this.tree.addLineRoot(id, value, parent, side, styles); + } + else { + this.tree.addNode(id, value, parent, side, styles); + } + } + + /** + * Deletes the nodes from the given start index to the given end index. + * @param selection + */ + deleteLocal(selection: Selection): DeleteOperation[] { + const nodes = Array.from(this.traverseBySelection(selection)); + return nodes.map(node => this.removeNode(node.id)); + } + + /** + * Deletes the node at the given cursor + * @param cursor + */ + deleteLocalByCursor(cursor: Cursor) { + const node = + cursor.line > 0 && cursor.column === 0 + ? this.tree.getLineRoot(cursor.line) + : this.getNodeByCursor(cursor); + + if (node) return this.deleteLocalById(node.id); + } + + /** + * Deletes the node based on the given operation + * @param ids + */ + deleteLocalById = (...ids: Id[]): DeleteOperation[] => ids.map(id => this.removeNode(id)); + + /** + * Deletes the node based on the given operation + * @param operation + */ + deleteRemote(operation: DeleteOperation): void { + this.tree.deleteNode(operation.id); + } + + /** + * Deletes the node based on the given node id + * @param id + */ + private removeNode(id: Id): DeleteOperation { + this.tree.deleteNode(id); + return { type: 'delete', id }; + } + + /** + * Relives the nodes from the given start index and given length. + * @param selection + */ + reviveLocal(selection: Selection): ReviveOperation[] { + const nodes = Array.from(this.traverseBySelection(selection, true)); + return nodes.map(node => this.reviveNode(node.id)); + } + + /** + * Revives the node at the given cursor + * @param cursor + */ + reviveLocalByCursor(cursor: Cursor) { + const node = + cursor.line > 0 && cursor.column === 0 + ? this.tree.getLineRoot(cursor.line) + : this.getNodeByCursor(cursor); + + if (node) return this.reviveNode(node.id); + } + + /** + * Revives a node based on the given id + * @param id + */ + reviveNode(id: Id): ReviveOperation { + this.tree.reviveNode(id); + return { type: 'revive', id }; + } + + /** + * Revives a node based on the given operation + * @param operation + */ + reviveRemote(operation: ReviveOperation): void { + this.tree.reviveNode(operation.id); + } + + /** + * Updates the style of the nodes by the given selection + * @param selection + * @param value + * @param format + */ + updateInlineStyleLocal(selection: Selection, format: InlineStyle, value: boolean = true) { + const nodes = Array.from(this.traverseBySelection(selection)); + const operations: InlineStyleOperation[] = nodes.map(node => { + const { id } = node; + const style = format as InlineStyle; + this.tree.updateInlineStyle(id, style, value); + return { + type: 'inline-style', + id, + style, + value, + }; + }); + return operations; + } + + /** + * Updates the style of the node based on the given operation + * @param id + * @param style + * @param value + */ + updateInlineStyleRemote({ id, style, value }: InlineStyleOperation): void { + this.tree.updateInlineStyle(id, style, value); + } + + /** + * Updates the style of the node based on the given operation + * @param line - the line number + * @param style - the style to be updated + * @param append - if true, appends the style to the existing styles, otherwise replaces them + */ + updateBlockStyleLocal(line: number, style: BlockStyle, append: boolean = false): BlockStyleOperation { + this.tree.updateBlockStyle(style, line, append); + return { + type: 'block-style', + line, + style, + append, + }; + } + + /** + * Updates the style of the nodes by the given selection + * @param style + * @param selection + */ + updateBlockStylesLocalBySelection(style: BlockStyle, selection: Selection) { + return range(selection.start.line, selection.end.line + 1).map(line => this.updateBlockStyleLocal(line, style)); + } + + /** + * Updates the style of the node based on the given operation + * @param line + * @param style + * @param append + */ + updateBlockStyleRemote({ line, style, append }: BlockStyleOperation) { + this.tree.updateBlockStyle(style, line, append); + } + + getBlockStyle(line: number): BlockStyle { + return (this.tree.root.styles[line] as BlockStyle) || 'paragraph'; + } + + /** + * Traverses the tree in in-order traversal + * @returns iterator of nodes + */ + traverseTree = (returnDeleted: boolean = false) => this.tree.traverse(this.tree.root, returnDeleted); + + /** + * Traverses the tree by the given selection + * @param selection + * @param returnDeleted + */ + *traverseBySelection(selection: Selection, returnDeleted: boolean = false): IterableIterator { + const { start, end } = selection; + let lineCounter = start.line, + columnCounter = 0, + inBounds = false; + + const lineRootNode = this.tree.getLineRoot(start.line); + + for (const node of this.tree.traverse(lineRootNode, returnDeleted)) { + // start condition + if (lineCounter === start.line && columnCounter === start.column) { + inBounds = true; + } + // yield node if in bounds + if (inBounds) yield node; + + // update counters + if (node.value === '\n') { + lineCounter++; + } + columnCounter = node.value === '\n' + ? 0 + : columnCounter + 1; + // end condition + if (lineCounter === end.line && columnCounter === end.column) break; + } + } + + /** + * Traverses the tree until the given separator is found by cursor position + * @param separator + * @param line + * @param column + * @param reverse + * @param inclusive + */ + *traverseBySeparator( + separator: string, + { line, column }: Cursor, + reverse: boolean = false, + inclusive: boolean = false + ): IterableIterator { + const selection = reverse + ? { start: { line, column: 0 }, end: { line, column } } + : { start: { line, column }, end: { line, column: Infinity } }; + + const nodesInSelection = Array.from(this.traverseBySelection(selection)); + const elements = reverse + ? nodesInSelection.reverse() + : nodesInSelection; + const nodes: FugueNode[] = []; + for (const node of elements) { + if (node.value === separator && last(nodes)?.value !== separator) { + if (inclusive) nodes.push(node); + yield nodes; + nodes.length = 0; + } + nodes.push(node); + } + yield nodes; + } + + /** + * Deletes the next word by the given cursor + * @param cursor + * @param reverse - if true, deletes the word to the left of the cursor + */ + deleteWordByCursor(cursor: Cursor, reverse: boolean = false) { + const iterator = this.traverseBySeparator(' ', cursor, reverse); + const nodes: FugueNode[] = iterator.next().value; + if (!nodes) return; + return this.deleteLocalById(...nodes.map(node => node.id)); + } + + /** + * Returns the node at the given cursor + * @param cursor + */ + getNodeByCursor({ line, column }: Cursor): FugueNode | undefined { + const start = { line, column: column - 1 }; + const end = { line, column: column }; + const iterator = this.traverseBySelection({ start, end }); + return iterator.next().value; + } + + /** + * Returns the string representation of the tree. + */ + toString(): string { + return this.tree.toString(); + } + + /** + * Returns a node by id + */ + getNodeById(id: Id): FugueNode { + return this.tree.getById(id); + } +} diff --git a/code/client/src/domain/editor/crdt/types.ts b/code/client/src/domain/editor/crdt/types.ts new file mode 100644 index 00000000..237a38ef --- /dev/null +++ b/code/client/src/domain/editor/crdt/types.ts @@ -0,0 +1,9 @@ +import { type InlineStyle } from '@notespace/shared/types/styles'; +import { NodeType } from '@notespace/shared/crdt/utils'; + +export type NodeInsert = { + value: string; + styles: InlineStyle[]; +}; + +export type FugueNode = NodeType diff --git a/code/client/src/domain/editor/crdt/utils.ts b/code/client/src/domain/editor/crdt/utils.ts new file mode 100644 index 00000000..ffe519dc --- /dev/null +++ b/code/client/src/domain/editor/crdt/utils.ts @@ -0,0 +1,27 @@ +import { range } from 'lodash'; +import { InlineStyle } from '@notespace/shared/types/styles'; + +const BASE64CHARS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'; +const DEFAULT_REPLICA_ID_LENGTH = 10; + +/** + * Generates a random replica id + * @returns the replica id + */ +export function generateReplicaId() { + let id = ''; + const charsLength = BASE64CHARS.length; + range(0, DEFAULT_REPLICA_ID_LENGTH).forEach(() => { + const randomIndex = Math.floor(Math.random() * charsLength); + id += BASE64CHARS[randomIndex]; + }); + return id; +} + +/** + * Creates a new insert node to be inserted in the tree + * @param value + * @param styles + * @returns the insert node + */ +export const nodeInsert = (value: string, styles: InlineStyle[]) => ({ value, styles }); diff --git a/code/client/src/domain/editor/hooks/useEvents.ts b/code/client/src/domain/editor/hooks/useEvents.ts new file mode 100644 index 00000000..28d9a84a --- /dev/null +++ b/code/client/src/domain/editor/hooks/useEvents.ts @@ -0,0 +1,23 @@ +import useSocketListeners from '@/domain/communication/socket/useSocketListeners'; +import { type Operation } from '@notespace/shared/crdt/types/operations'; +import { Communication } from '@/domain/communication/communication'; +import { FugueDomainOperations } from '@/domain/editor/operations/fugue/types'; + +/** + * Hook client socket listeners to events + * @param fugueOperations + * @param communication + * @param onDone + */ +function useEvents(fugueOperations: FugueDomainOperations, { socket }: Communication, onDone: () => void) { + function onOperation(operations: Operation[]) { + fugueOperations.applyOperations(operations); + onDone(); + } + + useSocketListeners(socket, { + operation: onOperation, + }); +} + +export default useEvents; diff --git a/code/client/src/domain/editor/hooks/useFugue.ts b/code/client/src/domain/editor/hooks/useFugue.ts new file mode 100644 index 00000000..9cc55b53 --- /dev/null +++ b/code/client/src/domain/editor/hooks/useFugue.ts @@ -0,0 +1,8 @@ +import { useMemo } from 'react'; +import { Fugue } from '@/domain/editor/crdt/fugue'; + +function useFugue() { + return useMemo(() => new Fugue(), []); +} + +export default useFugue; diff --git a/code/client/src/domain/editor/operations/fugue/operations.ts b/code/client/src/domain/editor/operations/fugue/operations.ts new file mode 100644 index 00000000..aacc181e --- /dev/null +++ b/code/client/src/domain/editor/operations/fugue/operations.ts @@ -0,0 +1,9 @@ +import { Fugue } from '@/domain/editor/crdt/fugue'; +import { FugueDomainOperations } from '@/domain/editor/operations/fugue/types'; + +export default (fugue: Fugue): FugueDomainOperations => { + + return { + applyOperations: (operations) => fugue.applyOperations(operations) + }; +}; diff --git a/code/client/src/domain/editor/operations/fugue/types.ts b/code/client/src/domain/editor/operations/fugue/types.ts new file mode 100644 index 00000000..846aff60 --- /dev/null +++ b/code/client/src/domain/editor/operations/fugue/types.ts @@ -0,0 +1,5 @@ +import { Operation } from '@notespace/shared/crdt/types/operations'; + +export type FugueDomainOperations = { + applyOperations: (operations: Operation[]) => void; +}; diff --git a/code/client/src/domain/editor/operations/history/operations.ts b/code/client/src/domain/editor/operations/history/operations.ts new file mode 100644 index 00000000..e3ee88da --- /dev/null +++ b/code/client/src/domain/editor/operations/history/operations.ts @@ -0,0 +1,125 @@ +import { Fugue } from '@/domain/editor/crdt/fugue'; +import { + ApplyHistory, + HistoryDomainOperations, + HistoryOperation, + InsertNodeOperation, + InsertTextOperation, + MergeNodeOperation, + RemoveNodeOperation, + RemoveTextOperation, + SetNodeOperation, + SplitNodeOperation, + UnsetNodeOperation, +} from '@/domain/editor/operations/history/types'; +import { Communication } from '@/domain/communication/communication'; +import { BlockStyle, InlineStyle } from '@notespace/shared/types/styles'; +import { getStyleType } from '@notespace/shared/types/styles'; + +export default (fugue: Fugue, { socket }: Communication): HistoryDomainOperations => { + const applyHistoryOperation: ApplyHistory = (operations: HistoryOperation[]) => { + const communicationOperations = operations + .reverse() + .map(operation => getOperation(operation)) + .flat() + .filter(operation => operation !== undefined && operation !== null); + + socket.emit('operation', communicationOperations); + }; + + function getOperation(operation: HistoryOperation) { + switch (operation.type) { + case 'insert_text': + return insertText(operation as InsertTextOperation); + case 'remove_text': + return removeText(operation as RemoveTextOperation); + case 'insert_node': + return insertNode(operation as InsertNodeOperation); + case 'remove_node': + return removeNode(operation as RemoveNodeOperation); + case 'split_node': + return splitNode(operation as SplitNodeOperation); + case 'merge_node': + return mergeNode(operation as MergeNodeOperation); + case 'set_node': + return setNode(operation as SetNodeOperation, true); + case 'unset_node': + return setNode(operation as UnsetNodeOperation, false); + } + } + + /** + * Inserts text + * @param cursor + * @param text + */ + function insertText({ cursor, text }: InsertTextOperation) { + const selection = { + start: cursor, + end: { + ...cursor, + column: cursor.column + (text.length > 1 ? text.length - 1 : 0), + }, + }; + return fugue.reviveLocal(selection); + } + + /** + * Removes text + * @param selection + */ + const removeText = ({ selection }: RemoveTextOperation) => fugue.deleteLocal(selection); + + /** + * Inserts a node + * @param selection + * @param node + */ + function insertNode({ selection, node }: InsertNodeOperation) { + const styles = Object.keys(node).filter(key => key !== 'text'); + if (!node.text) return; + const reviveOperations = fugue.reviveLocal(selection); + const styleOperations = styles.map(style => { + const styleType = getStyleType(style); + return styleType === 'block' + ? fugue.updateBlockStyleLocal(selection.start.line, style as BlockStyle) + : fugue.updateInlineStyleLocal(selection, style as InlineStyle, true); + }); + return [...reviveOperations, styleOperations]; + } + + /** + * Removes a node + * @param selection + */ + const removeNode = ({ selection }: RemoveNodeOperation) => fugue.deleteLocal(selection); + + /** + * Splits a node + * @param cursor + */ + const splitNode = ({ cursor }: SplitNodeOperation) => fugue.reviveLocalByCursor(cursor); + + /** + * Merges a node + * @param cursor + */ + const mergeNode = ({ cursor }: MergeNodeOperation) => fugue.deleteLocalByCursor(cursor); + + /** + * Sets a node + * @param selection + * @param properties + * @param set_mode + */ + function setNode({ selection, properties }: SetNodeOperation | UnsetNodeOperation, set_mode: boolean) { + const type = properties.type; + const styleType = getStyleType(type); + + return styleType === 'block' + ? fugue.updateBlockStyleLocal(selection.start.line, type as BlockStyle) + : fugue.updateInlineStyleLocal(selection, type as InlineStyle, set_mode); + } + + return { applyHistoryOperation }; +}; diff --git a/code/client/src/domain/editor/operations/history/types.ts b/code/client/src/domain/editor/operations/history/types.ts new file mode 100644 index 00000000..817095d2 --- /dev/null +++ b/code/client/src/domain/editor/operations/history/types.ts @@ -0,0 +1,125 @@ +import { Cursor, Selection } from '@notespace/shared/types/cursor'; +import { + BaseInsertTextOperation, + BaseRemoveTextOperation, + BaseInsertNodeOperation, + BaseRemoveNodeOperation, + BaseSplitNodeOperation, + BaseMergeNodeOperation, + BaseSetNodeOperation, + Node, +} from 'slate'; + +export type HistoryDomainOperations = { + applyHistoryOperation: ApplyHistory; +}; + +export type ApplyHistory = (operations: HistoryOperation[]) => void; + +export type HistoryOperation = + | InsertTextOperation + | RemoveTextOperation + | InsertNodeOperation + | RemoveNodeOperation + | SplitNodeOperation + | MergeNodeOperation + | SetNodeOperation + | UnsetNodeOperation; + +/** + * Base operation for inserting text + * @param type - The type of the operation + * @param cursor - The cursor position to insert the text + * @param text - The text to insert + */ +export type InsertTextOperation = { + type: BaseInsertTextOperation['type']; + cursor: Cursor; + text: string[]; +}; + +/** + * Base operation for removing text + * @param type - The type of the operation + * @param selection - The selection to remove the text + */ +export type RemoveTextOperation = { + type: BaseRemoveTextOperation['type']; + selection: Selection; +}; + +/** + * Base operation for inserting a node + * @param type - The type of the operation + * @param node - The node to insert + * @param selection - The selection to insert the node + */ +export type InsertNodeOperation = { + type: BaseInsertNodeOperation['type']; + node: Node; + selection: Selection; +}; + +/** + * Base operation for removing a node + * @param type - The type of the operation + * @param node - The node to remove + * @param selection - The selection to remove the node + */ +export type RemoveNodeOperation = { + type: BaseRemoveNodeOperation['type']; + node: Node; + selection: Selection; +}; + +/** + * Base operation for splitting a node + * @param type - The type of the operation + * @param properties - The properties of the node + * @param cursor - The cursor position to split the node + */ +export type SplitNodeOperation = { + type: BaseSplitNodeOperation['type']; + properties: Partial; + cursor: Cursor; +}; + +/** + * Base operation for merging a node + * @param type - The type of the operation + * @param properties - The properties of the node + * @param cursor - The cursor position to merge the node + */ +export type MergeNodeOperation = { + type: BaseMergeNodeOperation['type']; + properties: Partial; + cursor: Cursor; +}; + +/** + * Base operation for setting a node + * @param type - The type of the operation + * @param selection - The selection to set the node + * @param properties - The properties of the node + * @param newProperties - The new properties of the node + */ +export type SetNodeOperation = { + type: BaseSetNodeOperation['type']; + lineOperation: boolean; + selection: Selection; + properties: Partial; +}; + +/** + * Base operation for unsetting a node + * @param type - The type of the operation + * @param selection - The selection to unset the node + * @param properties - The properties of the node + * @param newProperties - The new properties of the node + */ +export type UnsetNodeOperation = { + type: 'unset_node'; + lineOperation: boolean; + selection: Selection; + properties: Partial; +}; diff --git a/code/client/src/domain/editor/operations/input/operations.ts b/code/client/src/domain/editor/operations/input/operations.ts new file mode 100644 index 00000000..b2b28526 --- /dev/null +++ b/code/client/src/domain/editor/operations/input/operations.ts @@ -0,0 +1,62 @@ +import { BaseSelection } from 'slate'; +import { Fugue } from '@/domain/editor/crdt/fugue'; +import { InputDomainOperations } from '@/domain/editor/operations/input/types'; +import { Cursor, Selection } from '@notespace/shared/types/cursor'; +import { nodeInsert } from '@/domain/editor/crdt/utils'; +import { InlineStyle } from '@notespace/shared/types/styles'; +import { Operation } from '@notespace/shared/crdt/types/operations'; +import { Communication } from '@/domain/communication/communication'; + +export default (fugue: Fugue, { socket }: Communication): InputDomainOperations => { + function insertCharacter(char: string, cursor: Cursor, styles: InlineStyle[] = []) { + if (char.length !== 1) throw new Error('Invalid character'); + const operations = fugue.insertLocal(cursor, nodeInsert(char, styles)); + socket.emit('operation', operations); + } + + function insertLineBreak(cursor: Cursor) { + const operations = fugue.insertLocal(cursor, '\n'); + const styleOperation = fugue.updateBlockStyleLocal(cursor.line + 1, 'paragraph', true); + socket.emit('operation', [styleOperation, ...operations]); + } + + function deleteCharacter(cursor: Cursor) { + // don't delete line if it's not a paragraph + if (cursor.column === 0 && fugue.getBlockStyle(cursor.line) !== 'paragraph') return; + const operations = fugue.deleteLocalByCursor(cursor); + if (operations) socket.emit('operation', operations); + } + + function deleteSelection(selection: Selection) { + const operations = fugue.deleteLocal(selection); + socket.emit('operation', operations); + } + + function deleteWord(cursor: Cursor, reverse: boolean) { + const operations = fugue.deleteWordByCursor(cursor, reverse); + if (!operations) return; + socket.emit('operation', operations); + } + + function pasteText(start: Cursor, text: string) { + const chars = text.split(''); + const lineNodes = chars.filter(char => char === '\n'); + const insertOperations: Operation[] = fugue.insertLocal(start, ...text); + const styleOperations = lineNodes.map(() => fugue.updateBlockStyleLocal(start.line + 1, 'paragraph', true)); + socket.emit('operation', [...styleOperations, ...insertOperations]); + } + + function updateSelection(range: BaseSelection, styles: InlineStyle[]) { + socket.emit('cursorChange', { range, styles }); + } + + return { + insertCharacter, + insertLineBreak, + deleteCharacter, + deleteSelection, + deleteWord, + pasteText, + updateSelection, + }; +}; diff --git a/code/client/src/domain/editor/operations/input/types.ts b/code/client/src/domain/editor/operations/input/types.ts new file mode 100644 index 00000000..dfbe2f2a --- /dev/null +++ b/code/client/src/domain/editor/operations/input/types.ts @@ -0,0 +1,21 @@ +import { InlineStyle } from '@notespace/shared/types/styles'; +import { Cursor, Selection } from '@notespace/shared/types/cursor'; +import { BaseSelection } from 'slate'; + +export type InputDomainOperations = { + insertCharacter: InsertCharacterHandler; + insertLineBreak: InsertLineBreakHandler; + deleteCharacter: DeleteCharacterHandler; + deleteSelection: DeleteSelectionHandler; + deleteWord: DeleteWordHandler; + pasteText: PasteTextHandler; + updateSelection: UpdateSelectionHandler; +}; + +export type InsertCharacterHandler = (char: string, cursor: Cursor, styles?: InlineStyle[]) => void; +export type InsertLineBreakHandler = (cursor: Cursor) => void; +export type DeleteCharacterHandler = (cursor: Cursor) => void; +export type DeleteSelectionHandler = (selection: Selection) => void; +export type DeleteWordHandler = (cursor: Cursor, reverse: boolean) => void; +export type PasteTextHandler = (start: Cursor, text: string) => void; +export type UpdateSelectionHandler = (range: BaseSelection, styles: InlineStyle[]) => void; diff --git a/code/client/src/domain/editor/operations/markdown/operations.ts b/code/client/src/domain/editor/operations/markdown/operations.ts new file mode 100644 index 00000000..04f3f83d --- /dev/null +++ b/code/client/src/domain/editor/operations/markdown/operations.ts @@ -0,0 +1,85 @@ +import { Fugue } from '@/domain/editor/crdt/fugue'; +import { BlockStyle, InlineStyle } from '@notespace/shared/types/styles'; +import { FugueNode } from '@/domain/editor/crdt/types'; +import { Selection } from '@notespace/shared/types/cursor'; +import { MarkdownDomainOperations } from '@/domain/editor/operations/markdown/types'; +import { deleteAroundSelection } from '@/domain/editor/operations/markdown/utils'; +import { Communication } from '@/domain/communication/communication'; +import { Operation } from '@notespace/shared/crdt/types/operations'; +import { isSelectionEmpty } from '@/domain/editor/slate/utils/selection'; + +/** + * Handlers for markdown operations + * @param fugue + * @param communication + */ +export default (fugue: Fugue, { socket }: Communication): MarkdownDomainOperations => { + /** + * Applies a block style to the editor, and emits the operation to the server. + * @param style + * @param line + * @param deleteTriggerNodes + */ + function applyBlockStyle(style: BlockStyle, line: number, deleteTriggerNodes: boolean = false) { + const operations: Operation[] = []; + + // delete trigger nodes + if (deleteTriggerNodes) { + const cursor = { line, column: 0 }; + const triggerNodes: FugueNode[] = fugue.traverseBySeparator(' ', cursor, false, true).next().value; + const deleteOperations = triggerNodes.map(node => fugue.deleteLocalById(node.id)).flat(); + operations.push(...deleteOperations); + } + // apply block style + const styleOperation = fugue.updateBlockStyleLocal(line, style); + operations.push(styleOperation); + + // emit operations + socket.emit('operation', operations); + } + + /** + * Applies an inline style to the editor, and emits the operation to the server. + * @param style + * @param triggerLength + * @param selection + * @param value + */ + function applyInlineStyle(style: InlineStyle, selection: Selection, value: boolean, triggerLength: number = 0) { + const operations: Operation[] = []; + + // delete trigger nodes + if (triggerLength > 0) { + const deleteOperations = deleteAroundSelection(selection, triggerLength, fugue); + operations.push(...deleteOperations); + selection = { + start: { ...selection.start, column: selection.start.column - triggerLength }, + end: { ...selection.end, column: selection.end.column - triggerLength }, + }; + } + // apply inline style + const styleOperations = fugue.updateInlineStyleLocal(selection, style, value); + operations.push(...styleOperations); + + // emit operations + socket.emit('operation', operations); + } + + function deleteBlockStyles(selection: Selection) { + if (isSelectionEmpty(selection)) return; + const { start, end } = selection; + + // Remove block styles if the selection is single position at beginning of a line or multi-line selection + if ((start === end && start.column === 0) || start.line !== end.line) { + const newSelection = start.column !== 0 ? { start: { line: start.line + 1, column: 0 }, end } : selection; + const operations = fugue.updateBlockStylesLocalBySelection('paragraph', newSelection); + socket.emit('operation', operations); + } + } + + return { + applyBlockStyle, + applyInlineStyle, + deleteBlockStyles, + }; +}; diff --git a/code/client/src/domain/editor/operations/markdown/types.ts b/code/client/src/domain/editor/operations/markdown/types.ts new file mode 100644 index 00000000..d7eb3ae3 --- /dev/null +++ b/code/client/src/domain/editor/operations/markdown/types.ts @@ -0,0 +1,19 @@ +import { BlockStyle, InlineStyle } from '@notespace/shared/types/styles'; +import { Selection } from '@notespace/shared/types/cursor'; + +export type MarkdownDomainOperations = { + applyBlockStyle: ApplyBlockStyle; + applyInlineStyle: ApplyInlineStyle; + deleteBlockStyles: DeleteBlockStyles; +}; + +export type ApplyBlockStyle = (style: BlockStyle, line: number, deleteTriggerNodes?: boolean) => void; + +export type ApplyInlineStyle = ( + style: InlineStyle, + selection: Selection, + value: boolean, + triggerLength?: number +) => void; + +export type DeleteBlockStyles = (selection: Selection) => void; diff --git a/code/client/src/domain/editor/operations/markdown/utils.ts b/code/client/src/domain/editor/operations/markdown/utils.ts new file mode 100644 index 00000000..cac6f066 --- /dev/null +++ b/code/client/src/domain/editor/operations/markdown/utils.ts @@ -0,0 +1,25 @@ +import { Fugue } from '@/domain/editor/crdt/fugue'; +import { DeleteOperation } from '@notespace/shared/crdt/types/operations'; +import { Id } from '@notespace/shared/crdt/types/nodes'; +import { Selection } from '@notespace/shared/types/cursor'; + +/** + * Deletes characters around the selection + * @param selection + * @param amount + * @param fugue + */ +export function deleteAroundSelection(selection: Selection, amount: number, fugue: Fugue): DeleteOperation[] { + const idsToDelete: Id[] = []; + for (let i = 1; i <= amount; i++) { + const cursorBefore = { line: selection.start.line, column: selection.start.column - i + 1 }; + const nodeBefore = fugue.getNodeByCursor(cursorBefore); + + const cursorAfter = { line: selection.end.line, column: selection.end.column + i }; + const nodeAfter = fugue.getNodeByCursor(cursorAfter); + + if (!nodeBefore || !nodeAfter) break; + idsToDelete.push(nodeBefore.id, nodeAfter.id); + } + return idsToDelete.map(id => fugue.deleteLocalById(id)).flat(); +} diff --git a/code/client/src/domain/editor/services/documentServices.ts b/code/client/src/domain/editor/services/documentServices.ts new file mode 100644 index 00000000..f38dbe0a --- /dev/null +++ b/code/client/src/domain/editor/services/documentServices.ts @@ -0,0 +1,22 @@ +import { HttpCommunication } from '@/domain/communication/http/httpCommunication'; +import { Document } from '@notespace/shared/crdt/types/document'; + +async function getDocument(http: HttpCommunication, id: string): Promise { + const { operations, title } = await http.get(`/documents/${id}`); + return { operations, title } as Document; +} + +async function createDocument(http: HttpCommunication): Promise { + const { id } = await http.post('/documents'); + return id; +} + +async function deleteDocument(http: HttpCommunication, id: string) { + await http.delete(`/documents/${id}`); +} + +export default { + getDocument, + createDocument, + deleteDocument, +}; diff --git a/code/client/src/domain/editor/services/useDocumentServices.ts b/code/client/src/domain/editor/services/useDocumentServices.ts new file mode 100644 index 00000000..786248fa --- /dev/null +++ b/code/client/src/domain/editor/services/useDocumentServices.ts @@ -0,0 +1,24 @@ +import { HttpCommunication } from '@/domain/communication/http/httpCommunication'; +import documentServices from '@/domain/editor/services/documentServices'; + +function useDocumentServices(http: HttpCommunication) { + async function getDocument(id: string) { + return documentServices.getDocument(http, id); + } + + async function createDocument() { + return documentServices.createDocument(http); + } + + async function deleteDocument(id: string) { + return documentServices.deleteDocument(http, id); + } + + return { + getDocument, + createDocument, + deleteDocument, + }; +} + +export default useDocumentServices; diff --git a/code/client/src/domain/editor/slate/CustomEditor.ts b/code/client/src/domain/editor/slate/CustomEditor.ts new file mode 100644 index 00000000..325eaed5 --- /dev/null +++ b/code/client/src/domain/editor/slate/CustomEditor.ts @@ -0,0 +1,33 @@ +import { Editor } from 'slate'; + +/** + * Custom Editor for Inline Styles + */ +const CustomEditor = { + isMarkActive(editor: Editor, format: string) { + const marks = Editor.marks(editor) as Partial>; + return marks ? marks[format] : false; + }, + + toggleMark(editor: Editor, mark: string) { + const isActive = CustomEditor.isMarkActive(editor, mark); + if (isActive) { + Editor.removeMark(editor, mark); + } else { + Editor.addMark(editor, mark, true); + } + return !isActive; + }, + + resetMarks(editor: Editor) { + const marks = Editor.marks(editor); + if (marks) for (const mark in marks) Editor.removeMark(editor, mark); + }, + + getMarks(editor: Editor): string[] { + const marks = Editor.marks(editor) as Partial>; + return marks ? Object.keys(marks).filter(m => marks[m]) : []; + }, +}; + +export default CustomEditor; diff --git a/code/client/src/domain/editor/slate/handlers/getEventHandlers.ts b/code/client/src/domain/editor/slate/handlers/getEventHandlers.ts new file mode 100644 index 00000000..d40397b3 --- /dev/null +++ b/code/client/src/domain/editor/slate/handlers/getEventHandlers.ts @@ -0,0 +1,32 @@ +import { type Editor } from 'slate'; +import inputHandlers from '@/domain/editor/slate/handlers/input/inputHandlers'; +import { Fugue } from '@/domain/editor/crdt/fugue'; +import inputDomainOperations from '@/domain/editor/operations/input/operations'; +import markdownDomainOperations from '@/domain/editor/operations/markdown/operations'; +import { Communication } from '@/domain/communication/communication'; +import markdownHandlers from '@/domain/editor/slate/handlers/markdown/markdownHandlers'; + +/** + * Handles input events + * @param editor + * @param fugue + * @param communication + */ +function getEventHandlers(editor: Editor, fugue: Fugue, communication: Communication) { + // domain operations + const markdownOperations = markdownDomainOperations(fugue, communication); + const inputOperations = inputDomainOperations(fugue, communication); + + // event handlers + const { onFormat } = markdownHandlers(editor, markdownOperations); + const { onInput, onCut, onPaste, onSelectionChange, onBlur, onShortcut } = inputHandlers( + editor, + inputOperations, + onFormat + ); + + // return event handlers + return { onInput, onCut, onPaste, onSelectionChange, onBlur, onShortcut, onFormat }; +} + +export default getEventHandlers; diff --git a/code/client/src/domain/editor/slate/handlers/history/historyHandlers.ts b/code/client/src/domain/editor/slate/handlers/history/historyHandlers.ts new file mode 100644 index 00000000..17e08dfd --- /dev/null +++ b/code/client/src/domain/editor/slate/handlers/history/historyHandlers.ts @@ -0,0 +1,30 @@ +import { Editor } from 'slate'; +import { last } from 'lodash'; +import { HistoryDomainOperations } from '@/domain/editor/operations/history/types'; +import { toHistoryOperations } from '@domain/editor/slate/handlers/history/toHistoryOperations'; + +export type HistoryHandlers = { + undoOperation: () => void; + redoOperation: () => void; +}; + +/** + * Handles undo and redo operations + * @param editor + * @param domainOperations + */ +function historyHandlers(editor: Editor, domainOperations: HistoryDomainOperations): HistoryHandlers { + function undoOperation() { + const { history } = editor; + domainOperations.applyHistoryOperation(toHistoryOperations(editor, last(history.undos), true)); + } + + function redoOperation() { + const { history } = editor; + domainOperations.applyHistoryOperation(toHistoryOperations(editor, last(history.redos), false)); + } + + return { undoOperation, redoOperation }; +} + +export default historyHandlers; diff --git a/code/client/src/domain/editor/slate/handlers/history/toHistoryOperations.ts b/code/client/src/domain/editor/slate/handlers/history/toHistoryOperations.ts new file mode 100644 index 00000000..67370c6e --- /dev/null +++ b/code/client/src/domain/editor/slate/handlers/history/toHistoryOperations.ts @@ -0,0 +1,225 @@ +import { + BaseInsertNodeOperation, + BaseInsertTextOperation, + BaseMergeNodeOperation, + BaseOperation, + BaseRange, + BaseRemoveNodeOperation, + BaseRemoveTextOperation, + BaseSetNodeOperation, + BaseSplitNodeOperation, + Editor, + Range, +} from 'slate'; +import { + HistoryOperation, + InsertNodeOperation, + InsertTextOperation, + MergeNodeOperation, + RemoveNodeOperation, + RemoveTextOperation, + SetNodeOperation, + SplitNodeOperation, + UnsetNodeOperation, +} from '@/domain/editor/operations/history/types'; +import { pointToCursor } from '@/domain/editor/slate/utils/selection'; + +const reverseTypes: { [key: string]: HistoryOperation['type'] } = { + insert_text: 'remove_text', + remove_text: 'insert_text', + insert_node: 'remove_node', + remove_node: 'insert_node', + merge_node: 'split_node', + split_node: 'merge_node', + set_node: 'unset_node', +}; + +const getReverseType = (type: BaseOperation['type']) => reverseTypes[type] || type; + +export interface Batch { + operations: BaseOperation[]; + selectionBefore: Range | null; +} + +/** + * Applies a batch of operations to the editor + * @param editor + * @param operations + * @param reverseType - if true, the reverse operation will be the same type as the last operation + */ +function toHistoryOperations( + editor: Editor, + operations: Batch | undefined, + reverseType: boolean +): HistoryOperation[] { + if (!operations) return []; + + /** + * Converts a slate operation to a history operation + * @param type + * @param operation + * @param selectionBefore + */ + function toHistoryOperation( + type: HistoryOperation['type'], + selectionBefore: BaseRange | null, + operation: BaseOperation + ): HistoryOperation | undefined { + switch (type) { + case 'insert_text': + return insertTextOperation(operation as BaseInsertTextOperation); + case 'remove_text': + return removeTextOperation(operation as BaseRemoveTextOperation); + case 'insert_node': + return nodeOperation(operation as BaseInsertNodeOperation, true); + case 'remove_node': + return nodeOperation(operation as BaseRemoveNodeOperation, false); + case 'merge_node': + return handleNodeOperation( + operation as BaseMergeNodeOperation, + selectionBefore?.anchor.offset, + true + ); + case 'split_node': + return handleNodeOperation( + operation as BaseSplitNodeOperation, + selectionBefore?.anchor.offset, + false + ); + case 'set_node': + return setNodeOperation(operation as BaseSetNodeOperation, selectionBefore?.anchor.offset, true); + case 'unset_node': + return setNodeOperation(operation as BaseSetNodeOperation, selectionBefore?.anchor.offset, false); + } + } + + /** + * Converts a slate insert text operation to a history insert text operation + * @param operation + */ + function insertTextOperation(operation: BaseInsertTextOperation): InsertTextOperation | undefined { + if (operation.text === '') return undefined; + + const start = pointToCursor(editor, { path: operation.path, offset: operation.offset }); + const text = operation.text.split(''); + return { type: 'insert_text', cursor: { ...start, column: start.column }, text }; + } + + /** + * Converts a slate remove text operation to a history remove text operation + * @param operation + */ + function removeTextOperation(operation: BaseRemoveTextOperation): RemoveTextOperation | undefined { + const offset = (line: number) => (line === 0 ? 0 : 1); + + if (operation.text === '') return undefined; + + const cursor = pointToCursor(editor, { path: operation.path, offset: 0 }); + + const start = { + line: operation.path[0], + column: cursor.column + operation.offset, + }; + const end = { + line: start.line, + column: start.column + operation.text.length - 1 + offset(start.line), + }; + + const selection = { start, end }; + return { type: 'remove_text', selection }; + } + + /** + * Handles a slate insert or remove node operation + * @param operation + * @param insert_mode + */ + function nodeOperation( + operation: BaseInsertNodeOperation | BaseRemoveNodeOperation, + insert_mode: boolean + ): InsertNodeOperation | RemoveNodeOperation | undefined { + console.log(insert_mode ? 'insertNodeOperation' : 'removeNodeOperation', operation); + if (operation.node.text === '') return undefined; + + const offset = (line: number) => (line === 0 ? 0 : 1); + + const start = pointToCursor(editor, { path: operation.path, offset: 0 }); + + const end = { + ...start, + column: start.column + operation.node.text.length - 1 + offset(start.line), + }; + + const selection = { start, end }; + + return { + type: insert_mode ? 'insert_node' : 'remove_node', + selection, + node: operation.node, + }; + } + + /** + * Handles a slate merge or split node operation + * @param operation + * @param offset + * @param merge_mode + */ + function handleNodeOperation( + operation: BaseMergeNodeOperation | BaseSplitNodeOperation, + offset: number | undefined, + merge_mode: boolean + ): MergeNodeOperation | SplitNodeOperation | undefined { + if (!operation.properties.type) return undefined; + + + return (merge_mode) ? { + type: 'merge_node', + cursor: pointToCursor(editor, { path: [operation.path[0] + 1, 0], offset: 0 }), + properties: operation.properties, + } : { + type: 'split_node', + cursor: pointToCursor(editor, { path: [operation.path[0], 0], offset: offset || 0 }), + properties: operation.properties, + } + } + + /** + * Handles a slate set or unset node operation + * @param operation + * @param offset + * @param set_mode + */ + function setNodeOperation( + operation: BaseSetNodeOperation, + offset: number | undefined, + set_mode: boolean + ): SetNodeOperation | UnsetNodeOperation { + const lineOperation = operation.path.length === 1; + + const start = pointToCursor(editor, { path: operation.path, offset: 0 }); + + const end = { + ...start, + column: start.column + (offset || 0), + }; + + return { + type: set_mode ? 'set_node' : 'unset_node', + lineOperation, + selection: { start, end }, + properties: set_mode ? operation.properties : operation.newProperties, + }; + } + + return operations.operations + .map(operation => { + const type: BaseOperation['type'] = operation.type; + const operationType = reverseType + ? getReverseType(type) + : (type as HistoryOperation['type']); + return toHistoryOperation(operationType, operations.selectionBefore, operation); + }).filter(operation => operation !== undefined) as HistoryOperation[]; +} + +export { toHistoryOperations }; diff --git a/code/client/src/domain/editor/slate/handlers/input/inputHandlers.ts b/code/client/src/domain/editor/slate/handlers/input/inputHandlers.ts new file mode 100644 index 00000000..35b8d98d --- /dev/null +++ b/code/client/src/domain/editor/slate/handlers/input/inputHandlers.ts @@ -0,0 +1,152 @@ +import { Editor } from 'slate'; +import { ReactEditor } from 'slate-react'; +import CustomEditor from '@/domain/editor/slate/CustomEditor'; +import { isEqual } from 'lodash'; +import { getKeyFromInputEvent } from '@/domain/editor/slate/utils/domEvents'; +import { getSelection, isSelected } from '@/domain/editor/slate/utils/selection'; +import { Cursor, emptyCursor } from '@notespace/shared/types/cursor'; +import { InlineStyle } from '@notespace/shared/types/styles'; +import { InputDomainOperations } from '@/domain/editor/operations/input/types'; + +const hotkeys: Record = { + b: 'bold', + i: 'italic', + u: 'underline', +}; + +export default (editor: Editor, domainOperations: InputDomainOperations, onFormat: (mark: InlineStyle) => void) => { + function onInput(e: InputEvent) { + const key = getKeyFromInputEvent(e); + if (!key) return; + + const selection = getSelection(editor); + const cursor = selection.start; + // if there is a selection, delete the selected text + if (isSelected(editor)) domainOperations.deleteSelection(selection); + switch (key) { + case 'Enter': + onEnter(cursor); + break; + case 'Backspace': + if (isSelected(editor)) break; + onBackspace(cursor); + break; + case 'Delete': + onDelete(cursor); + break; + case 'Paste': + onPaste(e.data || ''); + break; + case 'Tab': + e.preventDefault(); + onTab(cursor); + break; + default: + if (key.length !== 1) break; + onKey(key, cursor); + break; + } + } + + /** + * Handles keyboard shortcuts + * @param event + */ + function onShortcut(event: KeyboardEvent) { + if (!event.ctrlKey) return; + const { start: cursor } = getSelection(editor); + switch (event.key) { + case 'Backspace': + onCtrlBackspace(cursor); + break; + case 'Delete': + onCtrlDelete(cursor); + break; + default: { + const mark = hotkeys[event.key] as InlineStyle; + if (!mark) break; + onFormat(mark); + } + } + } + + /** + * Inserts text at the current cursor position + * @param key + * @param cursor + */ + function onKey(key: string, cursor: Cursor) { + const styles = CustomEditor.getMarks(editor) as InlineStyle[]; + domainOperations.insertCharacter(key, cursor, styles); + } + + /** + * Handles enter key press + * @param cursor + */ + const onEnter = (cursor: Cursor) => domainOperations.insertLineBreak(cursor); + + /** + * Handles backspace key press + * Deletes the character before the cursor + */ + function onBackspace(cursor: Cursor) { + if (isEqual(cursor, emptyCursor())) return; + domainOperations.deleteCharacter(cursor); + } + + /** + * Handles delete key press + * Deletes the character after the cursor + */ + const onDelete = ({ line, column }: Cursor) => domainOperations.deleteCharacter({ line, column }); + + /** + * Handles ctrl + backspace + */ + const onCtrlBackspace = (cursor: Cursor) => domainOperations.deleteWord(cursor, true); + + /** + * Handles ctrl + delete + */ + const onCtrlDelete = (cursor: Cursor) => domainOperations.deleteWord(cursor, false); + + /** + * Handles paste events + */ + function onPaste(clipboard: ClipboardEvent | string) { + const clipboardData = typeof clipboard === 'string' ? clipboard : clipboard.clipboardData?.getData('text'); + if (!clipboardData) return; + const { start } = getSelection(editor); + domainOperations.pasteText(start, clipboardData); + } + + function onCut() { + const selection = getSelection(editor); + domainOperations.deleteSelection(selection); + } + + /** + * Handles tab key press + */ + function onTab(cursor: Cursor) { + const tabCharacter = '\t'; + editor.insertText(tabCharacter); + domainOperations.insertCharacter(tabCharacter, cursor); + } + + /** + * Handles cursor selection + */ + function onSelectionChange() { + const styles = CustomEditor.getMarks(editor) as InlineStyle[]; + domainOperations.updateSelection(editor.selection, styles); + } + + function onBlur() { + ReactEditor.deselect(editor); + onSelectionChange(); + } + + return { onInput, onPaste, onCut, onSelectionChange, onShortcut, onBlur }; +}; diff --git a/code/client/src/domain/editor/slate/handlers/markdown/markdownHandlers.ts b/code/client/src/domain/editor/slate/handlers/markdown/markdownHandlers.ts new file mode 100644 index 00000000..6c58c7c7 --- /dev/null +++ b/code/client/src/domain/editor/slate/handlers/markdown/markdownHandlers.ts @@ -0,0 +1,21 @@ +import { getSelection, isSelected } from '@/domain/editor/slate/utils/selection'; +import { Editor } from 'slate'; +import CustomEditor from '@/domain/editor/slate/CustomEditor'; +import { MarkdownDomainOperations } from '@/domain/editor/operations/markdown/types'; +import { InlineStyle } from '@notespace/shared/types/styles'; + +export default (editor: Editor, handlers: MarkdownDomainOperations) => { + /** + * Handles formatting + * @param mark + */ + function onFormat(mark: InlineStyle) { + const value = CustomEditor.toggleMark(editor, mark); + if (isSelected(editor)) { + const selection = getSelection(editor); + handlers.applyInlineStyle(mark, selection, value); + } + } + + return { onFormat }; +}; diff --git a/code/client/src/domain/editor/slate/hooks/useCursors.ts b/code/client/src/domain/editor/slate/hooks/useCursors.ts new file mode 100644 index 00000000..81fd59b4 --- /dev/null +++ b/code/client/src/domain/editor/slate/hooks/useCursors.ts @@ -0,0 +1,32 @@ +import { Range } from 'slate'; +import { useState } from 'react'; +import useSocketListeners from '@/domain/communication/socket/useSocketListeners'; +import { Communication } from '@/domain/communication/communication'; +import { InlineStyle } from '@notespace/shared/types/styles'; + +export type CursorData = { + id: string; + range: Range | null; + color: string; + styles: InlineStyle[]; +}; + +export function useCursors({ socket }: Communication) { + const [cursors, setCursors] = useState([]); + + const onCursorChange = (cursor: CursorData) => { + setCursors(prevCursors => { + const otherCursors = prevCursors.filter(c => c.id !== cursor.id); + if (!cursor.range) return otherCursors; + return [...otherCursors, cursor]; + }); + }; + + useSocketListeners(socket, { + cursorChange: onCursorChange, + }); + + return { cursors }; +} + +export default useCursors; diff --git a/code/client/src/domain/editor/slate/hooks/useDecorate.ts b/code/client/src/domain/editor/slate/hooks/useDecorate.ts new file mode 100644 index 00000000..0bab41e8 --- /dev/null +++ b/code/client/src/domain/editor/slate/hooks/useDecorate.ts @@ -0,0 +1,30 @@ +import { CursorData } from '@/domain/editor/slate/hooks/useCursors'; +import { BaseRange, Editor, NodeEntry, Path, Range, Text } from 'slate'; + +function useDecorate(editor: Editor, cursors: CursorData[]) { + return ([node, path]: NodeEntry) => { + if (!Text.isText(node)) return []; + + const ranges: Range[] = []; + for (const cursor of cursors) { + if (!cursor.range) continue; + const editorPath = Editor.path(editor, path); + const [start, end] = Range.edges(cursor.range); + + if (!Range.includes(cursor.range, editorPath)) continue; + const newStart = { + path: start.path, + offset: Path.equals(start.path, editorPath) ? start.offset : 0, + }; + const newEnd = { + path: end.path, + offset: Path.equals(end.path, editorPath) ? end.offset : node.text.length, + }; + + ranges.push({ anchor: newStart, focus: newEnd, cursor } as BaseRange & { cursor: CursorData }); + } + return ranges; + }; +} + +export default useDecorate; diff --git a/code/client/src/domain/editor/slate/hooks/useEditor.ts b/code/client/src/domain/editor/slate/hooks/useEditor.ts new file mode 100644 index 00000000..96757b8b --- /dev/null +++ b/code/client/src/domain/editor/slate/hooks/useEditor.ts @@ -0,0 +1,9 @@ +import { type Editor } from 'slate'; +import { useMemo } from 'react'; +import { buildEditor } from '@/domain/editor/slate/utils/slate'; + +function useEditor(...plugins: Array<(editor: Editor) => Editor>): Editor { + return useMemo(() => buildEditor(...plugins), []); // eslint-disable-line react-hooks/exhaustive-deps +} + +export default useEditor; diff --git a/code/client/src/domain/editor/slate/hooks/useHistory.ts b/code/client/src/domain/editor/slate/hooks/useHistory.ts new file mode 100644 index 00000000..096d5f7b --- /dev/null +++ b/code/client/src/domain/editor/slate/hooks/useHistory.ts @@ -0,0 +1,25 @@ +import { useEffect } from 'react'; +import historyDomainOperations from '@/domain/editor/operations/history/operations'; +import historyHandlers from '@/domain/editor/slate/handlers/history/historyHandlers'; +import { Editor } from 'slate'; +import { Fugue } from '@/domain/editor/crdt/fugue'; +import { Communication } from '@/domain/communication/communication'; + +function useHistory(editor: Editor, fugue: Fugue, communication: Communication) { + useEffect(() => { + const { undo, redo } = editor; + const domainOperations = historyDomainOperations(fugue, communication); + const { undoOperation, redoOperation } = historyHandlers(editor, domainOperations); + + editor.undo = () => { + undoOperation(); + undo(); + }; + editor.redo = () => { + redoOperation(); + redo(); + }; + }, [communication, editor, fugue]); +} + +export default useHistory; diff --git a/code/client/src/domain/editor/slate/hooks/useRenderers.tsx b/code/client/src/domain/editor/slate/hooks/useRenderers.tsx new file mode 100644 index 00000000..eb68034a --- /dev/null +++ b/code/client/src/domain/editor/slate/hooks/useRenderers.tsx @@ -0,0 +1,19 @@ +import { useCallback } from 'react'; +import { type RenderElementProps, type RenderLeafProps } from 'slate-react'; +import { getElementRenderer, getLeafRenderer } from '@/domain/editor/slate/plugins/markdown/rendering/renderers'; + +/** + * Returns the renderers for the editor. + */ +function useRenderers() { + const renderElement = useCallback((props: RenderElementProps) => getElementRenderer(props.element.type, props), []); + + const renderLeaf = useCallback( + ({ attributes, children, leaf }: RenderLeafProps) => {getLeafRenderer(leaf, children)}, + [] + ); + + return { renderElement, renderLeaf }; +} + +export default useRenderers; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/operations/applyOperations.ts b/code/client/src/domain/editor/slate/plugins/markdown/operations/applyOperations.ts new file mode 100644 index 00000000..e359519c --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/operations/applyOperations.ts @@ -0,0 +1,32 @@ +import { type Editor, Element, Range, Text, Transforms } from 'slate'; +import { getSelectionByRange } from '@/domain/editor/slate/utils/selection'; +import { BlockStyle, InlineStyle } from '@notespace/shared/types/styles'; +import { ApplyBlockStyle, ApplyInlineStyle } from '@/domain/editor/operations/markdown/types'; + +/** + * Creates a function that applies a block element to the editor + * @param style + * @param handler + */ +export function createSetBlockApply(style: BlockStyle, handler: ApplyBlockStyle) { + return (editor: Editor, range: Range) => { + const line = range.anchor.path[0]; + Transforms.setNodes(editor, { type: style }, { match: n => Element.isElement(n) && editor.isBlock(n), at: range }); + handler(style, line, true); + }; +} + +/** + * Returns a function that applies an inline style to a block of text in the editor + * @param style + * @param triggerLength + * @param handler + */ +export function createSetInlineApply(style: InlineStyle, triggerLength: number, handler: ApplyInlineStyle) { + return (editor: Editor, range: Range) => { + Transforms.insertNodes(editor, { text: ' ' }, { match: Text.isText, at: Range.end(range), select: true }); + Transforms.setNodes(editor, { [style]: true }, { match: Text.isText, at: range, split: true }); + const selection = getSelectionByRange(editor, range, triggerLength); + handler(style, selection, true, triggerLength); + }; +} diff --git a/code/client/src/domain/editor/slate/plugins/markdown/operations/editorOperations.ts b/code/client/src/domain/editor/slate/plugins/markdown/operations/editorOperations.ts new file mode 100644 index 00000000..b11589cf --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/operations/editorOperations.ts @@ -0,0 +1,188 @@ +import { Descendant, Editor, Element, Point, Range, Text, type TextUnit, Transforms } from 'slate'; +import { type CustomElement } from '@/domain/editor/slate/types'; +import { shortcuts } from '../shortcuts'; +import CustomEditor from '@/domain/editor/slate/CustomEditor'; +import { isMultiBlock } from '@/domain/editor/slate/utils/slate'; +import { getSelection } from '@/domain/editor/slate/utils/selection'; +import { TextDeleteOptions } from 'slate/dist/interfaces/transforms/text'; +import { MarkdownDomainOperations } from '@/domain/editor/operations/markdown/types'; +import { RuleType } from '@/domain/editor/slate/plugins/markdown/rules'; + +type InlineFunction = (n: unknown) => boolean; +type DeleteBackwardFunction = (unit: TextUnit, options?: { at: Range }) => void; +type DeleteFunction = (options?: TextDeleteOptions) => void; +type InsertTextFunction = (text: string) => void; + +/** + * Returns the point before the given point, offset by the given string offset. + * @param editor + * @param at + * @param stringOffset + */ +function before(editor: Editor, at: Point, stringOffset: number): Point | undefined { + if (at.offset >= stringOffset) return { offset: at.offset - stringOffset, path: at.path }; + + const entry = editor.previous({ at: at.path, match: Text.isText }); + + if (!entry) return undefined; + + const [node, path] = entry; + return before(editor, { offset: node.text.length, path }, stringOffset - at.offset); +} + +/** + * Handler to be called while normalization gets deferred. + * @param editor + * @param match + * @param apply + */ +const normalizeDeferral = (editor: Editor, match: RegExpExecArray, apply: (editor: Editor, range: Range) => void) => { + const { selection } = editor; + const { anchor } = selection!; + const [text, startText, endText] = match; + + const matchEnd = anchor; + const endMatchStart = endText && before(editor, matchEnd, endText.length); + const startMatchEnd = startText && before(editor, matchEnd, text.length - startText.length); + const matchStart = before(editor, matchEnd, text.length); + if (!matchEnd || !matchStart) return; + + const matchRangeRef = editor.rangeRef({ + anchor: matchStart, + focus: matchEnd, + }); + + if (endMatchStart) { + Transforms.delete(editor, { + at: { anchor: endMatchStart, focus: matchEnd }, + }); + } + + if (startMatchEnd) { + Transforms.delete(editor, { + at: { anchor: matchStart, focus: startMatchEnd }, + }); + } + + const applyRange = matchRangeRef.unref(); + if (applyRange) { + apply(editor, applyRange); + } +}; + +/** + * Adds markdown support to the editor. + * @param editor + * @param handlers + */ +export default (editor: Editor, handlers: MarkdownDomainOperations) => { + /** + * Inserts the given text into the editor. + * @param insertText + * @param insert + */ + const insertText = (insert: string, insertText: InsertTextFunction): void => { + // if the insert is not a space, or there is no selection, or the selection is not collapsed, insert the text + const { selection } = editor; + if (insert !== ' ' || !selection || !Range.isCollapsed(selection)) { + insertText(insert); + return; + } + // check if the text before the selection ends with a trigger character + const { anchor } = selection; + const block = editor.above({ + match: (n: CustomElement) => editor.isBlock(n), + }); + + const path = block ? block[1] : []; + const blockRange = { anchor, focus: editor.start(path) }; + const beforeText = editor.string(blockRange); + + for (const { type, triggers, apply } of shortcuts) { + const match = triggers.find(trigger => trigger.exec(beforeText) !== null); + if (!match) continue; + const execArray = match.exec(beforeText); + if (!execArray) continue; + const handler = type === RuleType.Block ? handlers.applyBlockStyle : handlers.applyInlineStyle; + editor.withoutNormalizing(() => normalizeDeferral(editor, execArray, apply(handler))); + return; + } + insertText(insert); + }; + + /** + * Inserts a break. + */ + const insertBreak = (): void => { + const { selection } = editor; + if (!selection) return; + const block = editor.above({ + match: (n: CustomElement) => editor.isBlock(n), + }); + const path = block ? block[1] : []; + const end = editor.end(path); + Transforms.splitNodes(editor, { always: true }); + + const type = (block![0] as Descendant).type; + if (!isMultiBlock(type)) { + Transforms.setNodes(editor, { type: 'paragraph' }); + CustomEditor.resetMarks(editor); + } else { + const { start } = getSelection(editor); + handlers.applyBlockStyle(type, start.line); + } + // if selection was at the end of the block, unwrap the block + if (!Point.equals(end, Range.end(selection))) return; + Transforms.unwrapNodes(editor, { + match: (n: CustomElement) => editor.isInline(n), + mode: 'all', + }); + const marks = editor.marks ?? {}; + Transforms.unsetNodes(editor, Object.keys(marks), { match: Text.isText }); + }; + + /** + * Deletes the text backward. + * @param deleteBackward + * @param args + */ + const deleteBackward = (deleteBackward: DeleteBackwardFunction, ...args: [TextUnit]) => { + const { selection } = editor; + if (!selection || !Range.isCollapsed(selection)) return; + const match = editor.above({ + match: (n: CustomElement) => editor.isBlock(n), + }); + if (match) { + const [block, path] = match; + const start = Editor.start(editor, path); + if ( + !Editor.isEditor(block) && + Element.isElement(block) && + block.type !== 'paragraph' && + Point.equals(selection.anchor, start) + ) { + const { line } = getSelection(editor).start; + Transforms.setNodes(editor, { type: 'paragraph' }); + handlers.applyBlockStyle('paragraph', line); + return; + } + } + deleteBackward(...args); + }; + + const deleteSelection = (deleteHandler: DeleteFunction, options?: TextDeleteOptions) => { + const selection = getSelection(editor); + handlers.deleteBlockStyles(selection); + deleteHandler(options); + }; + + /** + * Checks if the given node is an inline. + * @param n + * @param isInline + */ + const isInline = (n: unknown, isInline: InlineFunction) => + (Element.isElement(n) && n.type === 'inline-code') || isInline(n); + + return { insertText, insertBreak, deleteBackward, deleteSelection, isInline }; +}; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/components.ts b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/components.ts new file mode 100644 index 00000000..00216fe0 --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/components.ts @@ -0,0 +1,27 @@ +import Heading1 from './elements/Heading1'; +import Heading2 from './elements/Heading2'; +import Heading3 from './elements/Heading3'; +import Heading4 from './elements/Heading4'; +import Heading5 from './elements/Heading5'; +import Heading6 from './elements/Heading6'; +import Blockquote from './elements/Blockquote'; +import ListItem from './elements/ListItem'; +import NumberedListItem from './elements/NumberedListItem'; +import LineBreak from './elements/LineBreak'; +import Code from './elements/Code'; +import Paragraph from './elements/Paragraph'; + +export { + Heading1, + Heading2, + Heading3, + Heading4, + Heading5, + Heading6, + Blockquote, + ListItem, + NumberedListItem, + LineBreak, + Code, + Paragraph, +}; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Blockquote.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Blockquote.tsx new file mode 100644 index 00000000..9a20becf --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Blockquote.tsx @@ -0,0 +1,19 @@ +import React from 'react'; + +interface BlockquoteProps extends React.HTMLAttributes {} + +function Blockquote(props: BlockquoteProps) { + const styles = { + borderLeft: '3px solid #ccc', + paddingLeft: 20, + margin: 0, + }; + + return ( +

+ {props.children} +
+ ); +} + +export default Blockquote; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Code.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Code.tsx new file mode 100644 index 00000000..99ba3068 --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Code.tsx @@ -0,0 +1,11 @@ +import { type ReactNode } from 'react'; + +interface CodeProps { + children?: ReactNode; +} + +function Code(props: CodeProps) { + return {props.children}; +} + +export default Code; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading1.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading1.tsx new file mode 100644 index 00000000..ae3849aa --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading1.tsx @@ -0,0 +1,9 @@ +import React from 'react'; + +interface Heading1Props extends React.HTMLAttributes {} + +function Heading1(props: Heading1Props) { + return

{props.children}

; +} + +export default Heading1; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading2.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading2.tsx new file mode 100644 index 00000000..292020d7 --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading2.tsx @@ -0,0 +1,9 @@ +import React from 'react'; + +interface Heading2Props extends React.HTMLAttributes {} + +function Heading2(props: Heading2Props) { + return

{props.children}

; +} + +export default Heading2; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading3.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading3.tsx new file mode 100644 index 00000000..54b29b2e --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading3.tsx @@ -0,0 +1,9 @@ +import React from 'react'; + +interface Heading3Props extends React.HTMLAttributes {} + +function Heading3(props: Heading3Props) { + return

{props.children}

; +} + +export default Heading3; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading4.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading4.tsx new file mode 100644 index 00000000..20386463 --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading4.tsx @@ -0,0 +1,9 @@ +import React from 'react'; + +interface Heading4Props extends React.HTMLAttributes {} + +function Heading4(props: Heading4Props) { + return
{props.children}
; +} + +export default Heading4; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading5.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading5.tsx new file mode 100644 index 00000000..e2fe6a9e --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading5.tsx @@ -0,0 +1,9 @@ +import React from 'react'; + +interface Heading5Props extends React.HTMLAttributes {} + +function Heading5(props: Heading5Props) { + return
{props.children}
; +} + +export default Heading5; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading6.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading6.tsx new file mode 100644 index 00000000..4d2bf567 --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Heading6.tsx @@ -0,0 +1,13 @@ +import React from 'react'; + +interface Heading6Props extends React.HTMLAttributes {} + +function Heading6(props: Heading6Props) { + return ( +
+ {props.children} +
+ ); +} + +export default Heading6; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/LineBreak.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/LineBreak.tsx new file mode 100644 index 00000000..e16d35fd --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/LineBreak.tsx @@ -0,0 +1,14 @@ +import React from 'react'; + +interface LineBreakProps extends React.HTMLAttributes {} + +function LineBreak(props: LineBreakProps) { + return ( +
+
+ {props.children} +
+ ); +} + +export default LineBreak; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/ListItem.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/ListItem.tsx new file mode 100644 index 00000000..e582be3f --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/ListItem.tsx @@ -0,0 +1,19 @@ +import React from 'react'; + +interface ListItemProps { + attributes: NonNullable; + children?: React.ReactNode; +} + +function ListItem({ attributes, children }: ListItemProps) { + const styles = { + paddingLeft: 10, + }; + return ( +
  • + {children} +
  • + ); +} + +export default ListItem; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/NumberedListItem.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/NumberedListItem.tsx new file mode 100644 index 00000000..521940d7 --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/NumberedListItem.tsx @@ -0,0 +1,19 @@ +import React from 'react'; + +interface NumberedListItemProps { + attributes: NonNullable; + children?: React.ReactNode; +} + +function NumberedListElement({ attributes, children }: NumberedListItemProps) { + const styles = { + paddingLeft: 10, + }; + return ( +
  • + {children} +
  • + ); +} + +export default NumberedListElement; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Paragraph.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Paragraph.tsx new file mode 100644 index 00000000..954abcda --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/components/elements/Paragraph.tsx @@ -0,0 +1,9 @@ +import React from 'react'; + +interface ParagraphProps extends React.HTMLAttributes {} + +function Paragraph(props: ParagraphProps) { + return

    {props.children}

    ; +} + +export default Paragraph; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/elements.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/elements.tsx new file mode 100644 index 00000000..4c57e4a7 --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/elements.tsx @@ -0,0 +1,38 @@ +import { type ReactNode } from 'react'; +import { BlockStyles } from '@notespace/shared/types/styles'; +import { RenderElementProps } from 'slate-react'; +import { + Blockquote, + Code, + Heading1, + Heading2, + Heading3, + Heading4, + Heading5, + Heading6, + LineBreak, + ListItem, + NumberedListItem, +} from './components/components'; + +export const ElementRenderers = { + [BlockStyles.h1]: (props: RenderElementProps) => , + [BlockStyles.h2]: (props: RenderElementProps) => , + [BlockStyles.h3]: (props: RenderElementProps) => , + [BlockStyles.h4]: (props: RenderElementProps) => , + [BlockStyles.h5]: (props: RenderElementProps) => , + [BlockStyles.h6]: (props: RenderElementProps) => , + [BlockStyles.blockquote]: (props: RenderElementProps) =>
    , + [BlockStyles.li]: (props: RenderElementProps) => , + [BlockStyles.num]: (props: RenderElementProps) => , + [BlockStyles.code]: (props: RenderElementProps) => , + [BlockStyles.hr]: (props: RenderElementProps) => , +} as const; + +export const LeafRenderers = { + bold: (children: ReactNode) => {children}, + italic: (children: ReactNode) => {children}, + underline: (children: ReactNode) => {children}, + strikethrough: (children: ReactNode) => {children}, + code: (children: ReactNode) => {children}, +} as const; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rendering/renderers.tsx b/code/client/src/domain/editor/slate/plugins/markdown/rendering/renderers.tsx new file mode 100644 index 00000000..1a0a5dc5 --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rendering/renderers.tsx @@ -0,0 +1,47 @@ +import { type RenderElementProps } from 'slate-react'; +import { ElementRenderers, LeafRenderers } from './elements'; +import { Paragraph } from './components/components'; +import { type CustomText } from '@/domain/editor/slate/types'; +import { type ReactNode } from 'react'; +import Selection from '@/ui/pages/document/components/cursor/Selection'; +import Cursor from '@/ui/pages/document/components/cursor/Cursor'; +import { Range } from 'slate'; + +/** + * Returns the renderer for a given element type + * @param type + * @param props + */ +export const getElementRenderer = (type: string, props: RenderElementProps) => { + for (const key in ElementRenderers) { + if (key === type) { + const k = key as keyof typeof ElementRenderers; + return ElementRenderers[k](props); + } + } + return ; +}; + +/** + * Returns the renderer for a given leaf + * @param leaf + * @param children + */ +export const getLeafRenderer = (leaf: CustomText, children: ReactNode) => { + for (const key in leaf) { + if (!leaf[key as keyof CustomText]) continue; + const renderer = LeafRenderers[key as keyof typeof LeafRenderers]; + if (!renderer) continue; + children = renderer(children); + } + if (leaf.cursor) { + const { color, id, range, styles } = leaf.cursor; + + children = Range.isCollapsed(range!) ? ( + + ) : ( + + ); + } + return children; +}; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/rules.ts b/code/client/src/domain/editor/slate/plugins/markdown/rules.ts new file mode 100644 index 00000000..a8558362 --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/rules.ts @@ -0,0 +1,38 @@ +import { + createSetBlockApply, + createSetInlineApply, +} from '@/domain/editor/slate/plugins/markdown/operations/applyOperations'; +import { BlockStyle, InlineStyle } from '@notespace/shared/types/styles'; +import { ApplyBlockStyle, ApplyInlineStyle } from '@/domain/editor/operations/markdown/types'; +import { Editor, Range } from 'slate'; + +const escapeRegExp = (s: string) => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); + +export enum RuleType { + Block = 'block', + Inline = 'inline', +} + +export type Rule = { + type: RuleType; + triggers: RegExp[]; + apply: ApplyFunction; +}; + +export type ApplyFunction = (handler: ApplyBlockStyle | ApplyInlineStyle) => (editor: Editor, range: Range) => void; + +export function blockRules(style: BlockStyle, ...triggerCharacters: string[]): Rule { + const triggers = triggerCharacters.map(trigger => new RegExp(`^(${escapeRegExp(trigger)})$`)); + const apply: ApplyFunction = handler => createSetBlockApply(style, handler as ApplyBlockStyle); + return { type: RuleType.Block, triggers, apply }; +} + +export function inlineRules(style: InlineStyle, ...triggerCharacters: string[]): Rule { + const triggers = triggerCharacters.map(trigger => { + const escaped = escapeRegExp(trigger); + return new RegExp(`(${escaped}).+?(${escaped})$`); + }); + const triggerLength = triggerCharacters[0].length; + const apply: ApplyFunction = handler => createSetInlineApply(style, triggerLength, handler as ApplyInlineStyle); + return { type: RuleType.Inline, triggers, apply }; +} diff --git a/code/client/src/domain/editor/slate/plugins/markdown/shortcuts.ts b/code/client/src/domain/editor/slate/plugins/markdown/shortcuts.ts new file mode 100644 index 00000000..84ec6860 --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/shortcuts.ts @@ -0,0 +1,21 @@ +import { BlockStyles, InlineStyles } from '@notespace/shared/types/styles'; +import { blockRules, inlineRules } from '@/domain/editor/slate/plugins/markdown/rules'; + +export const shortcuts = [ + blockRules(BlockStyles.h1, '#'), + blockRules(BlockStyles.h2, '##'), + blockRules(BlockStyles.h3, '###'), + blockRules(BlockStyles.h4, '####'), + blockRules(BlockStyles.h5, '#####'), + blockRules(BlockStyles.h6, '######'), + blockRules(BlockStyles.blockquote, '>'), + blockRules(BlockStyles.li, '-'), + blockRules(BlockStyles.li, '*'), + blockRules(BlockStyles.num, '1.'), + blockRules(BlockStyles.code, '```'), + blockRules(BlockStyles.hr, '---'), + inlineRules(InlineStyles.bold, '**', '__'), + inlineRules(InlineStyles.italic, '*', '_'), + inlineRules(InlineStyles.strikethrough, '~~'), + inlineRules(InlineStyles.underline, '=='), +]; diff --git a/code/client/src/domain/editor/slate/plugins/markdown/withMarkdown.ts b/code/client/src/domain/editor/slate/plugins/markdown/withMarkdown.ts new file mode 100644 index 00000000..702414f4 --- /dev/null +++ b/code/client/src/domain/editor/slate/plugins/markdown/withMarkdown.ts @@ -0,0 +1,38 @@ +import { type Editor } from 'slate'; +import operations from './operations/editorOperations'; +import markdownHandlers from '@/domain/editor/operations/markdown/operations'; +import { MarkdownDomainOperations } from '@/domain/editor/operations/markdown/types'; +import { Fugue } from '@/domain/editor/crdt/fugue'; +import { Communication } from '@/domain/communication/communication'; + +/** + * Adds markdown support to the editor. + * @param editor + * @param handlers + */ +export function withMarkdown(editor: Editor, handlers: MarkdownDomainOperations) { + const { deleteBackward, insertText, isInline, delete: deleteOperation } = editor; + const editorOperations = operations(editor, handlers); + + editor.insertText = insert => { + editorOperations.insertText(insert, insertText); + }; + editor.insertBreak = () => { + editorOperations.insertBreak(); + }; + editor.delete = options => { + editorOperations.deleteSelection(deleteOperation, options); + }; + editor.deleteBackward = (...args) => { + editorOperations.deleteBackward(deleteBackward, ...args); + }; + editor.isInline = n => editorOperations.isInline(n, isInline); + return editor; +} + +export function getMarkdownPlugin(fugue: Fugue, communication: Communication) { + return (editor: Editor) => { + const handlers = markdownHandlers(fugue, communication); + return withMarkdown(editor, handlers); + }; +} diff --git a/code/client/src/domain/editor/slate/types.ts b/code/client/src/domain/editor/slate/types.ts new file mode 100644 index 00000000..f2373ad6 --- /dev/null +++ b/code/client/src/domain/editor/slate/types.ts @@ -0,0 +1,33 @@ +import { type BaseEditor, type Descendant } from 'slate'; +import { type ReactEditor } from 'slate-react'; +import { type HistoryEditor } from 'slate-history'; +import { type BlockStyle } from '@notespace/shared/types/styles'; +import { CursorData } from '@/domain/editor/slate/hooks/useCursors'; + +export interface CustomFormat { + bold?: boolean; + italic?: boolean; + underline?: boolean; + strikethrough?: boolean; + code?: boolean; +} + +export interface CustomText extends CustomFormat { + text: string; + cursor?: CursorData; +} + +export interface CustomElement { + type: BlockStyle; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-expect-error + children: Descendant[]; +} + +declare module 'slate' { + interface CustomTypes { + Editor: BaseEditor & ReactEditor & HistoryEditor; + Element: CustomElement & Element; + Text: CustomText; + } +} diff --git a/code/client/src/domain/editor/slate/utils/domEvents.ts b/code/client/src/domain/editor/slate/utils/domEvents.ts new file mode 100644 index 00000000..069767f2 --- /dev/null +++ b/code/client/src/domain/editor/slate/utils/domEvents.ts @@ -0,0 +1,17 @@ +const inputEventsKeys: Record = { + deleteContentBackward: 'Backspace', + insertLineBreak: 'Enter', + insertParagraph: 'Enter', + insertCompositionText: 'Paste', + insertFromComposition: 'Paste', + insertFromDrop: 'Paste', + insertFromPaste: 'Paste', + deleteContentForward: 'Delete', + deleteByCut: 'Delete', + deleteByDrag: 'Delete', + deleteByKeyboard: 'Delete', + deleteContent: 'Delete', +} as const; + +export const getKeyFromInputEvent = (e: InputEvent) => + e.inputType === 'insertText' ? e.data : inputEventsKeys[e.inputType]; diff --git a/code/client/src/domain/editor/slate/utils/selection.ts b/code/client/src/domain/editor/slate/utils/selection.ts new file mode 100644 index 00000000..56bd1c1f --- /dev/null +++ b/code/client/src/domain/editor/slate/utils/selection.ts @@ -0,0 +1,79 @@ +import { Editor, Node, Path, Point, Range } from 'slate'; +import { Cursor, emptyCursor, emptySelection, Selection } from '@notespace/shared/types/cursor'; +import { first, isEqual } from 'lodash'; + +/** + * Checks if the current selection is active + * @param editor + */ +export function isSelected(editor: Editor) { + if (!editor.selection) return false; + return !Range.isCollapsed(editor.selection); +} + +/** + * Returns the current default slate selection + * @param editor + */ +export function getSelection(editor: Editor): Selection { + const { selection } = editor; + if (!selection) { + return emptySelection(); + } + const [start, end] = Range.edges(selection); + return pointsToSelection(editor, start, end); +} + +/** + * Converts slate points to a selection + * @param editor + * @param start + * @param end + */ +const pointsToSelection = (editor: Editor, start: Point, end: Point): Selection => ({ + start: pointToCursor(editor, start), + end: pointToCursor(editor, end), +}); + +/** + * Converts a slate point to a cursor + * @param editor + * @param point + */ +export function pointToCursor(editor: Editor, point: Point): Cursor { + const line = point.path[0]; + const children = Node.children(editor, [line]); + const cursor: Cursor = { line, column: point.offset }; + for (const entry of children) { + // If path has only one element and it is the same as the first element of the point path - same line + if (point.path.length === 1 && point.path[0] === entry[1][0]) break; + // Else verify if the path is the same + if (Path.equals(entry[1], point.path)) break; + + cursor.column += first(entry).text.length; + } + return cursor; +} + +/** + * Returns the selection by range + * @param editor + * @param range + * @param offset + */ +export function getSelectionByRange(editor: Editor, range: Range, offset: number = 0): Selection { + const selection = pointsToSelection(editor, range.anchor, range.focus); + selection.start.column += offset; + selection.end.column += offset; + return selection; +} + +/** + * Checks if the selection is empty + * @param selection + */ +export function isSelectionEmpty(selection: Selection): boolean { + const { start, end } = selection; + const startCursor = emptyCursor(); + return isEqual(startCursor, start) && isEqual(start, end); +} diff --git a/code/client/src/domain/editor/slate/utils/slate.ts b/code/client/src/domain/editor/slate/utils/slate.ts new file mode 100644 index 00000000..a739a8b3 --- /dev/null +++ b/code/client/src/domain/editor/slate/utils/slate.ts @@ -0,0 +1,82 @@ +import { createEditor, Descendant, Editor } from 'slate'; +import type { BlockStyle, InlineStyle } from '@notespace/shared/types/styles'; +import type { CustomText } from '@/domain/editor/slate/types'; +import { isEqual, last } from 'lodash'; +import { BlockStyles } from '@notespace/shared/types/styles'; +import { Fugue } from '@domain/editor/crdt/fugue'; + +export function toSlate(fugue: Fugue): Descendant[] { + const descendants: Descendant[] = []; + let lastStyles: InlineStyle[] = []; + let lineCounter = 0; + + // create a new paragraph + const lineStyle = fugue.getBlockStyle(lineCounter++); + descendants.push(descendant(lineStyle, '')); + + for (const node of fugue.traverseTree()) { + if (!node.value) continue; + + // create a text node with the given styles + const textNode: CustomText = { + text: node.value, + }; + + node.styles.forEach(style => { + (textNode as any)[style] = true; + }); + + // new line - create a new paragraph + if (node.value === '\n') { + const lineStyle = fugue.getBlockStyle(lineCounter++); + descendants.push(descendant(lineStyle, '')); + lastStyles = []; + continue; + } + + const lastDescendant = last(descendants); + const lastTextNode = last(lastDescendant.children) as CustomText; + const nodeStyles = node.styles.filter(Boolean); + if (!isEqual(lastStyles, nodeStyles) && lastTextNode.text) { + // append text node with the given styles + lastDescendant.children.push(textNode); + } else { + // merge text nodes with the same styles + if (!lastTextNode.text) { + lastDescendant.children.pop(); + lastDescendant.children.push(textNode); + } else { + lastTextNode.text += textNode.text; + } + } + lastStyles = nodeStyles as InlineStyle[]; + } + return descendants; +} + +/** + * Creates a descendant object. + * @param style + * @param children + * @returns + */ +export const descendant = (style: BlockStyle, ...children: string[]): Descendant => ({ + type: style, + children: children.map(text => ({ text })), +}); + +/** + * Checks if the block style is a multi block. + * @param blockStyle + */ +export const isMultiBlock = (blockStyle: BlockStyle) => { + const multiBlocks: BlockStyle[] = [BlockStyles.li, BlockStyles.num, BlockStyles.blockquote]; + return multiBlocks.includes(blockStyle); +}; + +/** + * Builds the editor with the given plugins. + * @param plugins + */ +export const buildEditor = (...plugins: Array<(editor: Editor) => Editor>): Editor => + plugins.reduce((acc, plugin) => plugin(acc), createEditor()); diff --git a/code/client/src/editor/crdt/fugue.ts b/code/client/src/editor/crdt/fugue.ts index a41b8e10..e92684f1 100644 --- a/code/client/src/editor/crdt/fugue.ts +++ b/code/client/src/editor/crdt/fugue.ts @@ -1,4 +1,4 @@ -import { type Id, Nodes } from '@notespace/shared/crdt/types/nodes'; +import { type Id } from '@notespace/shared/crdt/types/nodes'; import { BlockStyle, InlineStyle } from '@notespace/shared/types/styles'; import { FugueTree } from '@notespace/shared/crdt/FugueTree'; import { generateReplicaId, nodeInsert } from './utils'; @@ -9,7 +9,8 @@ import { BlockStyleOperation, DeleteOperation, InlineStyleOperation, - InsertOperation, + InsertOperation, Operation, + ReviveOperation, } from '@notespace/shared/crdt/types/operations'; /** @@ -26,14 +27,36 @@ export class Fugue { this.tree = new FugueTree(); } - /** - * Builds the tree from the given nodes map. - * @param nodes - */ - init(nodes: Nodes): void { - this.tree.setTree(nodes); + applyOperations(operations: Operation[]) { + for (const operation of operations) { + switch (operation.type) { + case 'insert': + this.insertRemote(operation); + break; + case 'delete': + this.deleteRemote(operation); + break; + case 'inline-style': + this.updateInlineStyleRemote(operation); + break; + case 'block-style': + this.updateBlockStyleRemote(operation); + break; + case 'revive': + this.reviveRemote(operation); + break; + default: + throw new Error('Invalid operation type'); + } + } } + + + + + + /** * Inserts the given values starting from the given index. * @param cursor @@ -63,8 +86,12 @@ export class Fugue { */ private getInsertOperation({ line, column }: Cursor, { value, styles }: NodeInsert): InsertOperation { const id = { sender: this.replicaId, counter: this.counter++ }; - const lineNode = line === 0 ? this.tree.root : this.findNode('\n', line); - const leftOrigin = column === 0 ? lineNode : this.getNodeByCursor({ line, column })!; + + const lineNode = this.tree.getLineRoot(line); + const leftOrigin = column === 0 + ? lineNode + : this.getNodeByCursor({ line, column })!; + if (isEmpty(leftOrigin.rightChildren)) { return { type: 'insert', id, value, parent: leftOrigin.id, side: 'R', styles }; } @@ -81,7 +108,12 @@ export class Fugue { * @param styles */ private addNode({ id, value, parent, side, styles }: InsertOperation) { - this.tree.addNode(id, value, parent, side, styles); + if(value === '\n') { + this.tree.addLineRoot(id, value, parent, side, styles); + } + else { + this.tree.addNode(id, value, parent, side, styles); + } } /** @@ -98,7 +130,11 @@ export class Fugue { * @param cursor */ deleteLocalByCursor(cursor: Cursor) { - const node = this.getNodeByCursor(cursor); + const node = + cursor.line > 0 && cursor.column === 0 + ? this.tree.getLineRoot(cursor.line) + : this.getNodeByCursor(cursor); + if (node) return this.deleteLocalById(node.id); } @@ -125,6 +161,45 @@ export class Fugue { return { type: 'delete', id }; } + /** + * Relives the nodes from the given start index and given length. + * @param selection + */ + reviveLocal(selection: Selection): ReviveOperation[] { + const nodes = Array.from(this.traverseBySelection(selection, true)); + return nodes.map(node => this.reviveNode(node.id)); + } + + /** + * Revives the node at the given cursor + * @param cursor + */ + reviveLocalByCursor(cursor: Cursor) { + const node = + cursor.line > 0 && cursor.column === 0 + ? this.tree.getLineRoot(cursor.line) + : this.getNodeByCursor(cursor); + + if (node) return this.reviveNode(node.id); + } + + /** + * Revives a node based on the given id + * @param id + */ + reviveNode(id: Id): ReviveOperation { + this.tree.reviveNode(id); + return { type: 'revive', id }; + } + + /** + * Revives a node based on the given operation + * @param operation + */ + reviveRemote(operation: ReviveOperation): void { + this.tree.reviveNode(operation.id); + } + /** * Updates the style of the nodes by the given selection * @param selection @@ -208,15 +283,13 @@ export class Fugue { */ *traverseBySelection(selection: Selection): IterableIterator { const { start, end } = selection; - let lineCounter = 0; - let columnCounter = 0; - let inBounds = false; - for (const node of this.traverseTree()) { - // new line - if (node.value === '\n') { - lineCounter++; - columnCounter = 0; - } + let lineCounter = start.line, + columnCounter = 0, + inBounds = false; + + const lineRootNode = this.tree.getLineRoot(start.line); + + for (const node of this.tree.traverse(lineRootNode, returnDeleted)) { // start condition if (lineCounter === start.line && columnCounter === start.column) { inBounds = true; @@ -225,6 +298,9 @@ export class Fugue { if (inBounds) { yield node; } + columnCounter = node.value === '\n' + ? 0 + : columnCounter + 1; // end condition if (lineCounter === end.line && columnCounter === end.column) { break; @@ -246,6 +322,14 @@ export class Fugue { { line, column }: Cursor, reverse: boolean = false ): IterableIterator { + const selection = reverse + ? { start: { line, column: 0 }, end: { line, column } } + : { start: { line, column }, end: { line, column: Infinity } }; + + const nodesInSelection = Array.from(this.traverseBySelection(selection)); + const elements = reverse + ? nodesInSelection.reverse() + : nodesInSelection; const nodes: FugueNode[] = []; const selection = reverse ? { start: { line, column: 0 }, end: { line: line, column: column } } @@ -286,22 +370,6 @@ export class Fugue { return iterator.next().value; } - /** - * Finds the node skip-th node with the given value - * @param value - * @param skip - */ - private findNode(value: string, skip: number): FugueNode { - let lastMatch = this.tree.root; - for (const node of this.traverseTree()) { - if (node.value === value) { - lastMatch = node; - if (--skip === 0) return lastMatch; - } - } - return lastMatch; - } - /** * Returns the string representation of the tree. */ diff --git a/code/client/src/editor/crdt/types.ts b/code/client/src/editor/crdt/types.ts index 15a89720..237a38ef 100644 --- a/code/client/src/editor/crdt/types.ts +++ b/code/client/src/editor/crdt/types.ts @@ -1,9 +1,9 @@ import { type InlineStyle } from '@notespace/shared/types/styles'; -import { Node } from '@notespace/shared/crdt/types/nodes'; +import { NodeType } from '@notespace/shared/crdt/utils'; export type NodeInsert = { value: string; styles: InlineStyle[]; }; -export type FugueNode = Node; +export type FugueNode = NodeType diff --git a/code/client/src/index.css b/code/client/src/index.css index 8f42e924..9a4d5e9d 100644 --- a/code/client/src/index.css +++ b/code/client/src/index.css @@ -39,19 +39,13 @@ h1 { } button { + background-color: black; border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; + padding: 2vh; + border: none; } + button:focus, button:focus-visible { outline: 4px auto -webkit-focus-ring-color; @@ -71,6 +65,6 @@ button:focus-visible { } ::selection { - background-color: gray; + background-color: grey; color: white; } diff --git a/code/client/src/main.tsx b/code/client/src/main.tsx index 884f2e35..c61720c9 100644 --- a/code/client/src/main.tsx +++ b/code/client/src/main.tsx @@ -1,14 +1,5 @@ -import React from 'react'; import ReactDOM from 'react-dom/client'; import App from './App'; import './index.css'; -import { CommunicationProvider } from '@editor/contexts/CommunicationContext'; -import { emit, emitChunked, off, on } from '@socket/communication'; -ReactDOM.createRoot(document.getElementById('root')!).render( - - - - - -); +ReactDOM.createRoot(document.getElementById('root')!).render(); diff --git a/code/client/src/pwa/inject-config.ts b/code/client/src/pwa/inject-config.ts index 71cf901b..e9d59b82 100644 --- a/code/client/src/pwa/inject-config.ts +++ b/code/client/src/pwa/inject-config.ts @@ -1,6 +1,6 @@ -import { CustomInjectManifestOptions } from 'vite-plugin-pwa'; - -export const injectConfig: Partial = { - minify: false, - enableWorkboxModulesLogs: true, -}; +// import { CustomInjectManifestOptions } from 'vite-plugin-pwa'; +// +// export const injectConfig: Partial = { +// minify: false, +// enableWorkboxModulesLogs: true, +// }; diff --git a/code/client/src/pwa/manifest-config.ts b/code/client/src/pwa/manifest-config.ts index b8ca5d1b..03809e63 100644 --- a/code/client/src/pwa/manifest-config.ts +++ b/code/client/src/pwa/manifest-config.ts @@ -1,45 +1,45 @@ -import { ManifestOptions } from 'vite-plugin-pwa'; - -export const manifestConfig: Partial = { - name: 'NoteSpace', - short_name: 'NoteSpace', - start_url: '/', - scope: '.', - display: 'standalone', - background_color: '#ffffff', - theme_color: '#ffffff', - orientation: 'portrait-primary', - icons: [ - { - src: '/android-chrome-192x192.png', - sizes: '192x192', - type: 'image/png', - purpose: 'any maskable', - }, - { - src: '/android-chrome-512x512.png', - sizes: '512x512', - type: 'image/png', - purpose: 'any maskable', - }, - /* favicon */ - { - src: '/favicon-16x16.png', - sizes: '16x16', - type: 'image/png', - purpose: 'any maskable', - }, - { - src: '/favicon-32x32.png', - sizes: '32x32', - type: 'image/png', - purpose: 'any maskable', - }, - { - src: '/apple-touch-icon.png', - sizes: '180x180', - type: 'image/png', - purpose: 'any maskable', - }, - ], -}; +// import { ManifestOptions } from 'vite-plugin-pwa'; +// +// export const manifestConfig: Partial = { +// name: 'NoteSpace', +// short_name: 'NoteSpace', +// start_url: '/', +// scope: '.', +// display: 'standalone', +// background_color: '#ffffff', +// theme_color: '#ffffff', +// orientation: 'portrait-primary', +// icons: [ +// { +// src: '/android-chrome-192x192.png', +// sizes: '192x192', +// type: 'image/png', +// purpose: 'any maskable', +// }, +// { +// src: '/android-chrome-512x512.png', +// sizes: '512x512', +// type: 'image/png', +// purpose: 'any maskable', +// }, +// /* favicon */ +// { +// src: '/favicon-16x16.png', +// sizes: '16x16', +// type: 'image/png', +// purpose: 'any maskable', +// }, +// { +// src: '/favicon-32x32.png', +// sizes: '32x32', +// type: 'image/png', +// purpose: 'any maskable', +// }, +// { +// src: '/apple-touch-icon.png', +// sizes: '180x180', +// type: 'image/png', +// purpose: 'any maskable', +// }, +// ], +// }; diff --git a/code/client/src/pwa/pwa-config.ts b/code/client/src/pwa/pwa-config.ts index 892b03ef..b73af2ef 100644 --- a/code/client/src/pwa/pwa-config.ts +++ b/code/client/src/pwa/pwa-config.ts @@ -1,20 +1,20 @@ -import { injectConfig } from './inject-config.ts'; -import { manifestConfig } from './manifest-config.ts'; -import { VitePWAOptions } from 'vite-plugin-pwa'; - -export const pwaConfig: Partial = { - mode: 'development', - base: '/', - strategies: 'injectManifest', - srcDir: './src/pwa', - filename: 'sw.ts', - //injectRegister: false, - injectManifest: injectConfig, - registerType: 'autoUpdate', - manifest: manifestConfig, - devOptions: { - enabled: true, - navigateFallback: '../../index.html', - type: 'module', - }, -}; +// import { injectConfig } from './inject-config'; +// import { manifestConfig } from './manifest-config'; +// import { VitePWAOptions } from 'vite-plugin-pwa'; +// +// export const pwaConfig: Partial = { +// mode: 'development', +// base: '/', +// strategies: 'injectManifest', +// srcDir: './src/pwa', +// filename: 'sw.ts', +// //injectRegister: false, +// injectManifest: injectConfig, +// registerType: 'autoUpdate', +// manifest: manifestConfig, +// devOptions: { +// enabled: true, +// navigateFallback: '../../index.html', +// type: 'module', +// }, +// }; diff --git a/code/client/src/pwa/sw.ts b/code/client/src/pwa/sw.ts index 4594fdcd..0fa5c2d9 100644 --- a/code/client/src/pwa/sw.ts +++ b/code/client/src/pwa/sw.ts @@ -1,8 +1,8 @@ -import { cleanupOutdatedCaches, precacheAndRoute } from 'workbox-precaching'; - -declare let self: ServiceWorkerGlobalScope; - -precacheAndRoute(self.__WB_MANIFEST); - -// this will clean up old caches that are not needed anymore -cleanupOutdatedCaches(); +// import { cleanupOutdatedCaches, precacheAndRoute } from 'workbox-precaching'; +// +// declare let self: ServiceWorkerGlobalScope; +// +// precacheAndRoute(self.__WB_MANIFEST); +// +// // this will clean up old caches that are not needed anymore +// cleanupOutdatedCaches(); diff --git a/code/client/src/ui/components/error/Error.scss b/code/client/src/ui/components/error/Error.scss new file mode 100644 index 00000000..183be69a --- /dev/null +++ b/code/client/src/ui/components/error/Error.scss @@ -0,0 +1,30 @@ +.error { + position: absolute; + top: 80px; + left: 50%; + transform: translate(-50%, -50%); + background-color: white; + color: black; + width: 20%; + border-radius: 5px; + text-align: center; + box-shadow: 0 0 10px rgba(0, 0, 0, 0.5); + + p { + font-size: 1em; + font-weight: 400; + } + + span { + display: block; + background-color: #fd5c63; + color: white; + width: 100%; + border-top-left-radius: 5px; + border-top-right-radius: 5px; + + > * { + padding-top: 1vh; + } + } +} diff --git a/code/client/src/ui/components/error/Error.tsx b/code/client/src/ui/components/error/Error.tsx new file mode 100644 index 00000000..cc54a226 --- /dev/null +++ b/code/client/src/ui/components/error/Error.tsx @@ -0,0 +1,35 @@ +import './Error.scss'; +import { MdError } from 'react-icons/md'; +import { useState, useEffect } from 'react'; + +type ErrorProps = { + error: Error; +}; + +const ERROR_TIMEOUT = 5000; + +function Error({ error }: ErrorProps) { + const [showError, setShowError] = useState(true); + + useEffect(() => { + const id = setTimeout(() => { + setShowError(false); + }, ERROR_TIMEOUT); + return () => clearTimeout(id); + }, []); + + if (!showError) { + return null; + } + + return ( +
    + + + +

    {error.message}

    +
    + ); +} + +export default Error; diff --git a/code/client/src/ui/components/header/Header.scss b/code/client/src/ui/components/header/Header.scss new file mode 100644 index 00000000..1e7b62cf --- /dev/null +++ b/code/client/src/ui/components/header/Header.scss @@ -0,0 +1,16 @@ +header { + color: black; + background: white; + width: 100%; + padding: 1vh 0 1vh 5vh; + box-shadow: black 0 0 1px; + display: flex; + align-items: center; + + .title { + font-size: 3vh; + padding: 1vh; + margin: 0 0 0 1vh; + font-weight: 500; + } +} diff --git a/code/client/src/ui/components/header/Header.tsx b/code/client/src/ui/components/header/Header.tsx new file mode 100644 index 00000000..7071a2be --- /dev/null +++ b/code/client/src/ui/components/header/Header.tsx @@ -0,0 +1,14 @@ +import { Link } from 'react-router-dom'; +import './Header.scss'; + +function Header() { + return ( +
    + + NoteSpace + +
    + ); +} + +export default Header; diff --git a/code/client/src/ui/pages/document/Document.scss b/code/client/src/ui/pages/document/Document.scss new file mode 100644 index 00000000..e69de29b diff --git a/code/client/src/ui/pages/document/Document.tsx b/code/client/src/ui/pages/document/Document.tsx new file mode 100644 index 00000000..e488e718 --- /dev/null +++ b/code/client/src/ui/pages/document/Document.tsx @@ -0,0 +1,41 @@ +import Editor from '@/ui/pages/document/components/editor/Editor'; +import useFugue from '@/domain/editor/hooks/useFugue'; +import { useEffect, useState } from 'react'; +import { useNavigate, useParams } from 'react-router-dom'; +import { useCommunication } from '@/domain/communication/context/useCommunication'; +import { useErrorBoundary } from 'react-error-boundary'; +import useDocumentServices from '@/domain/editor/services/useDocumentServices'; +import './Document.scss'; + +function Document() { + const communication = useCommunication(); + const services = useDocumentServices(communication.http); + const { http, socket } = communication; + const fugue = useFugue(); + const { showBoundary } = useErrorBoundary(); + const { id } = useParams(); + const [title, setTitle] = useState(''); + const [loaded, setLoaded] = useState(false); + const navigate = useNavigate(); + + useEffect(() => { + async function fetchDocument() { + if (!id) return; + const { operations, title } = await services.getDocument(id); + fugue.applyOperations(operations); + setTitle(title); + socket.connect(); + socket.emit('joinDocument', id); + setLoaded(true); + } + fetchDocument().catch(showBoundary); + return () => { + socket.emit('leaveDocument'); + socket.disconnect(); + }; + }, [fugue, id, http, socket, showBoundary, services, navigate]); + + return
    {loaded && }
    ; +} + +export default Document; diff --git a/code/client/src/ui/pages/document/components/cursor/Cursor.scss b/code/client/src/ui/pages/document/components/cursor/Cursor.scss new file mode 100644 index 00000000..8790d9b6 --- /dev/null +++ b/code/client/src/ui/pages/document/components/cursor/Cursor.scss @@ -0,0 +1,21 @@ +@keyframes blink { + 0% { + opacity: 1; + } + 50% { + opacity: 0; + } + 100% { + opacity: 1; + } +} + +.animate { + animation: blink 1s infinite; +} + +.cursor { + position: absolute; + width: 2px; + height: 1.5em; +} diff --git a/code/client/src/ui/pages/document/components/cursor/Cursor.tsx b/code/client/src/ui/pages/document/components/cursor/Cursor.tsx new file mode 100644 index 00000000..b50be253 --- /dev/null +++ b/code/client/src/ui/pages/document/components/cursor/Cursor.tsx @@ -0,0 +1,25 @@ +import { ReactNode } from 'react'; +import { InlineStyle } from '@notespace/shared/types/styles'; + +type CursorProps = { + children: ReactNode; + color: string; + styles: InlineStyle[]; +}; + +function Cursor({ children, color, styles }: CursorProps) { + const width = styles.includes('bold') ? '1.5px' : '1px'; + const angle = styles.includes('italic') ? '11deg' : '0deg'; + return ( + + {children} + + ); +} + +export default Cursor; diff --git a/code/client/src/ui/pages/document/components/cursor/Selection.tsx b/code/client/src/ui/pages/document/components/cursor/Selection.tsx new file mode 100644 index 00000000..34be8d47 --- /dev/null +++ b/code/client/src/ui/pages/document/components/cursor/Selection.tsx @@ -0,0 +1,12 @@ +import { ReactNode } from 'react'; + +type SelectionProps = { + color: string; + children: ReactNode; +}; + +function Selection({ color, children }: SelectionProps) { + return {children}; +} + +export default Selection; diff --git a/code/client/src/ui/pages/document/components/editor/Editor.scss b/code/client/src/ui/pages/document/components/editor/Editor.scss new file mode 100644 index 00000000..dee748ab --- /dev/null +++ b/code/client/src/ui/pages/document/components/editor/Editor.scss @@ -0,0 +1,80 @@ +div [role='textbox'] { + width: 100%; + height: 100%; + color: black; + outline: none; +} + +.editor { + display: flex; + flex-direction: column; + justify-content: flex-start; + align-items: center; + min-height: 120vh; + gap: 1em; + overflow-y: scroll; + + .container { + min-height: 80vh; + width: 40%; + justify-content: left; + padding: 2em; + align-items: flex-start; + } + .title { + min-height: auto; + border: transparent; + background-color: transparent; + min-width: 100%; + font-size: xxx-large; + color: black; + margin: 0; + + &:focus { + outline: none; + } + } + + .toolbar { + display: flex; + justify-content: center; + align-items: center; + gap: 0.5vh; + outline: none; + background: rgba(0, 0, 0, 0.2); + border: none; + z-index: 999; + border-radius: 5px; + + button { + background: transparent; + color: white; + border: none transparent; + padding: 10px; + font-size: 15px; + opacity: 0; + animation: fadeIn 1s ease forwards; + + &:hover { + background: rgba(0, 0, 0, 0.1); + transition: 0.5s background-color; + } + } + + @keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } + } + } + + .editable { + } + + * { + // caret-color: transparent; hide cursor + } +} diff --git a/code/client/src/ui/pages/document/components/editor/Editor.tsx b/code/client/src/ui/pages/document/components/editor/Editor.tsx new file mode 100644 index 00000000..093f1be6 --- /dev/null +++ b/code/client/src/ui/pages/document/components/editor/Editor.tsx @@ -0,0 +1,81 @@ +import { useCallback, useEffect } from 'react'; +import { Descendant } from 'slate'; +import { Editable, Slate, withReact } from 'slate-react'; +import { withHistory } from 'slate-history'; +import { toSlate } from '@/domain/editor/slate/utils/slate'; +import { descendant } from '@/domain/editor/slate/utils/slate'; +import { Communication } from '@/domain/communication/communication'; +import { getMarkdownPlugin } from '@/domain/editor/slate/plugins/markdown/withMarkdown'; +import { Fugue } from '@/domain/editor/crdt/fugue'; +import useEvents from '@/domain/editor/hooks/useEvents'; +import useRenderers from '@/domain/editor/slate/hooks/useRenderers'; +import Toolbar from '@/ui/pages/document/components/toolbar/Toolbar'; +import Title from '@/ui/pages/document/components/title/Title'; +import useEditor from '@/domain/editor/slate/hooks/useEditor'; +import useHistory from '@/domain/editor/slate/hooks/useHistory'; +import useDecorate from '@/domain/editor/slate/hooks/useDecorate'; +import useCursors from '@/domain/editor/slate/hooks/useCursors'; +import getEventHandlers from '@/domain/editor/slate/handlers/getEventHandlers'; +import getFugueOperations from '@/domain/editor/operations/fugue/operations'; +import './Editor.scss'; + +type SlateEditorProps = { + title?: string; + fugue: Fugue; + communication: Communication; +}; + +const initialValue: Descendant[] = [descendant('paragraph', '')]; + +function Editor({ title, fugue, communication }: SlateEditorProps) { + const editor = useEditor(withHistory, withReact, getMarkdownPlugin(fugue, communication)); + const fugueOperations = getFugueOperations(fugue); + const { cursors } = useCursors(communication); + const { renderElement, renderLeaf } = useRenderers(); + const decorate = useDecorate(editor, cursors); + const { onInput, onShortcut, onCut, onPaste, onSelectionChange, onFormat, onBlur } = getEventHandlers( + editor, + fugue, + communication + ); + + const refreshEditor = useCallback(() => { + editor.children = toSlate(fugue); + editor.onChange(); + }, [editor, fugue]); + + useEffect(() => { + refreshEditor(); + }, [refreshEditor]); + + useHistory(editor, fugue, communication); + useEvents(fugueOperations, communication, refreshEditor); + + return ( +
    +
    + + + <Toolbar onApplyMark={onFormat} /> + <Editable + className="editable" + data-testid={'editor'} + placeholder={'Start writing...'} + spellCheck={false} + renderElement={renderElement} + renderLeaf={renderLeaf} + decorate={decorate} + onDragStart={e => e.preventDefault()} + onDOMBeforeInput={onInput} + onCut={onCut} + onPaste={e => onPaste(e.nativeEvent)} + onKeyDown={e => onShortcut(e.nativeEvent)} + onBlur={onBlur} + /> + </Slate> + </div> + </div> + ); +} + +export default Editor; diff --git a/code/client/src/ui/pages/document/components/title/Title.tsx b/code/client/src/ui/pages/document/components/title/Title.tsx new file mode 100644 index 00000000..26960157 --- /dev/null +++ b/code/client/src/ui/pages/document/components/title/Title.tsx @@ -0,0 +1,54 @@ +import React, { useState } from 'react'; +import useSocketListeners from '@/domain/communication/socket/useSocketListeners'; +import { ReactEditor, useSlate } from 'slate-react'; +import { Communication } from '@/domain/communication/communication'; + +interface TitleProps extends React.InputHTMLAttributes<HTMLInputElement> { + title: string; + communication: Communication; +} + +function Title(props: TitleProps) { + const [title, setTitle] = useState(props.title); + const [prevTitle, setPrevTitle] = useState(props.title); + const editor = useSlate(); + const { socket } = props.communication; + + function onInput(e: React.FormEvent<HTMLInputElement>) { + const target = e.target as HTMLInputElement; + const value = target.value; + setTitle(value); + } + + function onConfirm() { + if (title === prevTitle) return; + socket.emit('titleChange', title); + setPrevTitle(title); + } + + function onKeyDown(e: React.KeyboardEvent<HTMLInputElement>) { + if (e.key === 'Enter') { + e.preventDefault(); + onConfirm(); + ReactEditor.focus(editor); + } + } + + useSocketListeners(socket, { + titleChange: setTitle, + }); + + return ( + <input + className={'title'} + value={title} + onInput={onInput} + onBlur={onConfirm} + onKeyDown={onKeyDown} + spellCheck={false} + maxLength={30} + {...props} + /> + ); +} +export default Title; diff --git a/code/client/src/ui/pages/document/components/toolbar/Toolbar.tsx b/code/client/src/ui/pages/document/components/toolbar/Toolbar.tsx new file mode 100644 index 00000000..3a0bf6e9 --- /dev/null +++ b/code/client/src/ui/pages/document/components/toolbar/Toolbar.tsx @@ -0,0 +1,83 @@ +import React, { CSSProperties, useEffect, useState } from 'react'; +import { useFocused, useSlate } from 'slate-react'; +import CustomEditor from '@/domain/editor/slate/CustomEditor'; +import { isSelected } from '@/domain/editor/slate/utils/selection'; +import { FaBold, FaItalic, FaUnderline, FaStrikethrough, FaCode } from 'react-icons/fa'; +import { InlineStyle } from '@notespace/shared/types/styles'; + +type ToolbarProps = { + onApplyMark: (mark: InlineStyle) => void; +}; + +function Toolbar({ onApplyMark }: ToolbarProps) { + const editor = useSlate(); + const focused = useFocused(); + const selected = isSelected(editor); + const [selectionBounds, setSelectionBounds] = useState<DOMRect | null>(null); + + useEffect(() => { + const getSelectionBounds = () => { + const selection = window.getSelection(); + + if (!selection || selection.rangeCount <= 0) { + setSelectionBounds(null); + return; + } + + const range = selection.getRangeAt(0); + if (!range.getBoundingClientRect) return; + const rect = range.getBoundingClientRect(); + setSelectionBounds(rect); + }; + window.addEventListener('mouseup', getSelectionBounds); + + return () => window.removeEventListener('mouseup', getSelectionBounds); + }, []); + + const handleMarkMouseDown = (e: React.MouseEvent<HTMLButtonElement, MouseEvent>, mark: MarkOption) => { + e.preventDefault(); + e.stopPropagation(); + onApplyMark(mark.value); + }; + + if (!selectionBounds || !selected || !focused) return null; + + const position = { + top: selectionBounds.top - 50, + left: selectionBounds.left, + }; + + const toolbarStyle: CSSProperties = { + position: 'absolute', + ...position, + }; + + return ( + <div className="toolbar" style={toolbarStyle}> + {markOptions.map(mark => ( + <button + key={mark.value} + onMouseDown={e => handleMarkMouseDown(e, mark)} + className={CustomEditor.isMarkActive(editor, mark.value) ? 'active item' : 'item'} + > + {mark.icon} + </button> + ))} + </div> + ); +} + +interface MarkOption { + value: InlineStyle; + icon: React.ReactElement; +} + +const markOptions: MarkOption[] = [ + { value: 'bold', icon: <FaBold /> }, + { value: 'italic', icon: <FaItalic /> }, + { value: 'underline', icon: <FaUnderline /> }, + { value: 'strikethrough', icon: <FaStrikethrough /> }, + { value: 'code', icon: <FaCode /> }, +]; + +export default Toolbar; diff --git a/code/client/src/ui/pages/notfound/NotFound.scss b/code/client/src/ui/pages/notfound/NotFound.scss new file mode 100644 index 00000000..cdca3983 --- /dev/null +++ b/code/client/src/ui/pages/notfound/NotFound.scss @@ -0,0 +1,18 @@ +.not-found { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + font-size: 2rem; + font-weight: bold; + text-align: center; + padding: 1rem; + margin: 0; + + :not(:first-child) { + background: black; + color: white; + padding: 1vh 2vh 1vh 2vh; + border-radius: 5px; + } +} diff --git a/code/client/src/ui/pages/notfound/NotFound.tsx b/code/client/src/ui/pages/notfound/NotFound.tsx new file mode 100644 index 00000000..880f5955 --- /dev/null +++ b/code/client/src/ui/pages/notfound/NotFound.tsx @@ -0,0 +1,13 @@ +import { Link } from 'react-router-dom'; +import './NotFound.scss'; + +function NotFound() { + return ( + <div className="not-found"> + <h2>Not Found</h2> + <Link to="/">Go Home</Link> + </div> + ); +} + +export default NotFound; diff --git a/code/client/src/ui/pages/workspace/Workspace.scss b/code/client/src/ui/pages/workspace/Workspace.scss new file mode 100644 index 00000000..ffd9574d --- /dev/null +++ b/code/client/src/ui/pages/workspace/Workspace.scss @@ -0,0 +1,90 @@ +.workspace { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + padding: 2vh; + + .header { + display: flex; + justify-content: space-between; + align-items: center; + width: 30%; + border-radius: 5px; + background-color: black; + color: white; + + > * { + padding: 0 2vh 0 2vh; + } + + button { + display: flex; + justify-content: center; + align-items: center; + gap: 1vh; + margin: 0 2vh 0 2vh; + transition: color 0.2s; + } + + button:hover { + color: lightgray; + } + } + + ul { + padding: 1vh; + text-align: left; + width: 30%; + + li { + display: flex; + align-items: center; + justify-content: space-between; + gap: 4vh; + list-style-type: none; + margin: 1vh; + padding: 1vh 2vh 1vh 2vh; + background-color: lightgray; + border-radius: 5px; + transition: background-color 0.2s; + overflow: clip; + + div { + display: flex; + align-items: center; + justify-content: space-between; + gap: 2vh; + } + + .doc-title { + display: flex; + align-items: center; + justify-content: left; + color: black; + margin: 1vh 1vh 1vh 2vh; + padding: 0; + border-radius: 5px; + font-size: smaller; + } + + button { + background: none; + color: gray; + margin: 0; + padding: 0; + transition: color 0.2s; + font-size: 2vh; + } + + button:hover { + color: #fd5c63; + } + } + + li:hover { + background-color: rgb(180, 180, 180); + cursor: pointer; + } + } +} diff --git a/code/client/src/ui/pages/workspace/Workspace.tsx b/code/client/src/ui/pages/workspace/Workspace.tsx new file mode 100644 index 00000000..88f44af4 --- /dev/null +++ b/code/client/src/ui/pages/workspace/Workspace.tsx @@ -0,0 +1,69 @@ +import { useEffect, useState } from 'react'; +import { useCommunication } from '@/domain/communication/context/useCommunication'; +import { Link, useNavigate } from 'react-router-dom'; +import { Document } from '@notespace/shared/crdt/types/document'; +import { MdDelete } from 'react-icons/md'; +import { IoDocumentText } from 'react-icons/io5'; +import { FaFilter, FaPlus } from 'react-icons/fa'; +import './Workspace.scss'; +import { useErrorBoundary } from 'react-error-boundary'; + +function Workspace() { + const navigate = useNavigate(); + const communication = useCommunication(); + const [docs, setDocs] = useState<Document[]>([]); + const { showBoundary } = useErrorBoundary(); + + async function createDocument() { + const { id } = await communication.http.post('/documents'); + navigate(`/documents/${id}`); + } + + async function onDeleteDocument(id: string) { + await communication.http.delete(`/documents/${id}`); + setDocs(docs.filter(doc => doc.id !== id)); + } + + useEffect(() => { + async function getDocuments() { + const documents = await communication.http.get('/documents'); + setDocs(documents); + } + getDocuments().catch(showBoundary); + }, [communication, showBoundary]); + + return ( + <div className="workspace"> + <h2>Workspace</h2> + <div className="header"> + <FaFilter /> + <button onClick={() => createDocument().catch(showBoundary)}> + <p>New</p> + <FaPlus /> + </button> + </div> + <ul> + {docs.map(doc => ( + <Link to={`/documents/${doc.id}`} className="doc-title" key={doc.id}> + <li> + <div> + <IoDocumentText /> + {doc.title || 'Untitled'} + </div> + <button + onClick={e => { + e.preventDefault(); + onDeleteDocument(doc.id).catch(showBoundary); + }} + > + <MdDelete /> + </button> + </li> + </Link> + ))} + </ul> + </div> + ); +} + +export default Workspace; diff --git a/code/client/tsconfig.json b/code/client/tsconfig.json index eb47869b..fa24693c 100644 --- a/code/client/tsconfig.json +++ b/code/client/tsconfig.json @@ -7,6 +7,7 @@ "skipLibCheck": false, "esModuleInterop": false, "allowSyntheticDefaultImports": true, + "allowImportingTsExtensions": false, "strict": true, "forceConsistentCasingInFileNames": true, "module": "ESNext", @@ -21,12 +22,15 @@ "baseUrl": "./src", "downlevelIteration": true, "paths": { - "@src/*": ["./*"], - "@editor/*": ["./editor/*"], - "@socket/*": ["./socket/*"] + "@/*": ["./*"], + "@domain/*": ["./domain/*"], + "@pwa/*": ["./pwa/*"], + "@ui/*": ["./ui/*"], + "@assets/*": ["./assets/*"], + "@tests/*": ["../tests/*"] } }, "include": ["src", "tests"], "exclude": ["vite.config.ts"], "references": [{ "path": "./tsconfig.node.json" }] -} +} \ No newline at end of file diff --git a/code/client/tsconfig.node.json b/code/client/tsconfig.node.json index b2c981eb..04d68eb3 100644 --- a/code/client/tsconfig.node.json +++ b/code/client/tsconfig.node.json @@ -1,9 +1,10 @@ { "compilerOptions": { + "target": "es2022", "composite": true, "module": "esnext", "moduleResolution": "nodenext", "allowImportingTsExtensions": true }, "include": ["vite.config.ts", "src/pwa/*"] -} +} \ No newline at end of file diff --git a/code/client/vite.config.ts b/code/client/vite.config.ts index 78731adc..0d94f182 100644 --- a/code/client/vite.config.ts +++ b/code/client/vite.config.ts @@ -2,10 +2,8 @@ /// <reference types="vite/client" /> import { defineConfig } from 'vite'; -import { VitePWA } from 'vite-plugin-pwa'; import react from '@vitejs/plugin-react'; import tsconfigPaths from 'vite-tsconfig-paths'; -import { pwaConfig } from './src/pwa/pwa-config.ts'; import { qrcode } from 'vite-plugin-qrcode'; import { config } from 'dotenv'; @@ -16,13 +14,14 @@ export default defineConfig({ server: { port: Number.parseInt(process.env.CLIENT_PORT) || 5173, }, - plugins: [tsconfigPaths(), qrcode(), react(), VitePWA(pwaConfig)], + plugins: [tsconfigPaths(), qrcode(), react() /* VitePWA(pwaConfig) */], test: { globals: true, alias: { '@src': new URL('./src', import.meta.url).pathname, '@editor': new URL('./src/editor', import.meta.url).pathname, + '@assets': new URL('./src/assets', import.meta.url).pathname, }, environment: 'jsdom', }, -}); +}); \ No newline at end of file diff --git a/code/server/package.json b/code/server/package.json index 0f1329e4..2f6dc0d7 100644 --- a/code/server/package.json +++ b/code/server/package.json @@ -17,32 +17,36 @@ "cors": "^2.8.5", "dotenv": "^16.4.5", "express": "^4.19.2", - "firebase-admin": "^12.0.0", + "firebase-admin": "^12.1.0", "lodash": "^4.17.21", + "uuid": "^9.0.1", "socket.io": "^4.7.5", "supertest": "^6.3.4" }, "devDependencies": { - "@babel/preset-env": "^7.24.4", + "@babel/preset-env": "^7.24.5", "@babel/preset-typescript": "^7.24.1", "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/jest": "^29.5.12", "@types/lodash": "^4.17.0", - "@types/node": "^20.12.7", + "@types/node": "^20.12.8", "@types/supertest": "^6.0.2", - "@typescript-eslint/eslint-plugin": "^7.6.0", - "@typescript-eslint/parser": "^7.6.0", + "@types/uuid": "^9.0.8", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", "babel-jest": "^29.7.0", "eslint": "^8.57.0", + "express-promise-router": "^4.1.1", "jest": "^29.7.0", - "knip": "^5.9.4", + "knip": "^5.12.0", "prettier": "^3.2.5", "socket.io-client": "^4.7.5", "test-jest": "^1.0.1", "ts-jest": "^29.1.2", "tsconfig-paths": "^4.2.0", - "tsx": "^4.7.2", + "tsx": "^4.9.0", "typescript": "^5.4.5" - } -} + }, + "packageManager": "pnpm@9.0.6+sha256.0624e30eff866cdeb363b15061bdb7fd9425b17bc1bb42c22f5f4efdea21f6b3" +} \ No newline at end of file diff --git a/code/server/src/controllers/http/documentHandlers.ts b/code/server/src/controllers/http/documentHandlers.ts new file mode 100644 index 00000000..dec18769 --- /dev/null +++ b/code/server/src/controllers/http/documentHandlers.ts @@ -0,0 +1,33 @@ +import { Request, Response } from 'express'; +import { DocumentService } from '@src/types'; + +function documentHandlers(service: DocumentService) { + async function getDocuments(req: Request, res: Response) { + const documents = await service.getDocuments(); + res.status(200).send(documents); + } + + async function createDocument(req: Request, res: Response) { + const id = await service.createDocument(); + res.status(201).send({ id }); + } + + async function getDocument(req: Request, res: Response) { + const document = await service.getDocument(req.params.id); + res.status(200).send(document); + } + + async function deleteDocument(req: Request, res: Response) { + service.deleteDocument(req.params.id); + res.status(200).send(); + } + + return { + getDocuments, + createDocument, + getDocument, + deleteDocument, + }; +} + +export default documentHandlers; diff --git a/code/server/src/controllers/http/errorHandler.ts b/code/server/src/controllers/http/errorHandler.ts new file mode 100644 index 00000000..4f2af3b1 --- /dev/null +++ b/code/server/src/controllers/http/errorHandler.ts @@ -0,0 +1,20 @@ +import { Request, Response, NextFunction } from 'express'; + +// eslint-disable-next-line @typescript-eslint/no-unused-vars +export default function errorHandler(error: Error, req: Request, res: Response, next: NextFunction) { + let statusCode = 500; + switch (error.name) { + case 'NotFoundError': + statusCode = 404; + break; + case 'InvalidParameterError': + statusCode = 400; + break; + case 'ForbiddenError': + statusCode = 403; + break; + } + const message = statusCode === 500 ? 'Internal server error' : error.message; + res.status(statusCode).send({ error: message }); + console.error(error.stack); +} diff --git a/code/server/src/controllers/http/router.ts b/code/server/src/controllers/http/router.ts index 6294508e..50ac1a5d 100644 --- a/code/server/src/controllers/http/router.ts +++ b/code/server/src/controllers/http/router.ts @@ -1,20 +1,26 @@ import express from 'express'; +import PromiseRouter from 'express-promise-router'; import { DocumentService } from '@src/types'; -import getDocument from '@controllers/http/document/getDocument'; -import deleteDocument from '@controllers/http/document/deleteDocument'; +import documentHandlers from '@controllers/http/documentHandlers'; +import errorHandler from '@controllers/http/errorHandler'; export default function (service: DocumentService) { if (!service) { throw new Error('Service parameter is required'); } - const router = express.Router(); + const { getDocuments, createDocument, getDocument, deleteDocument } = documentHandlers(service); + + const router = PromiseRouter(); // automatically routes unhandled errors to error handling middleware router.use(express.urlencoded({ extended: true })); router.get('/', (req, res) => { res.send('Welcome to NoteSpace'); }); - router.get('/document', getDocument(service)); - router.delete('/document', deleteDocument(service)); + router.get('/documents', getDocuments); + router.post('/documents', createDocument); + router.get('/documents/:id', getDocument); + router.delete('/documents/:id', deleteDocument); + router.use(errorHandler); return router; } diff --git a/code/server/src/controllers/ws/document/onCursorChange.ts b/code/server/src/controllers/ws/document/onCursorChange.ts index 7621c439..19ba911e 100644 --- a/code/server/src/controllers/ws/document/onCursorChange.ts +++ b/code/server/src/controllers/ws/document/onCursorChange.ts @@ -1,25 +1,35 @@ import { Socket } from 'socket.io'; +import { InlineStyle } from '@notespace/shared/types/styles'; +import { getRoomId } from '@controllers/ws/rooms'; + +type CursorData = { + range: any; + styles: InlineStyle[]; +}; const cursorColorsMap = new Map<string, string>(); function onCursorChange() { return (socket: Socket, range: any) => { + const documentId = getRoomId(socket); + if (!documentId) return; + if (!range) { - deleteCursor(socket); + deleteCursor(socket, documentId); } else { - updateCursor(socket, range); + updateCursor(socket, range, documentId); } }; } -function deleteCursor(socket: Socket) { +function deleteCursor(socket: Socket, documentId: string) { cursorColorsMap.delete(socket.id); - socket.broadcast.emit('cursorChange', { id: socket.id }); + socket.broadcast.to(documentId).emit('cursorChange', { id: socket.id }); } -function updateCursor(socket: Socket, range: any) { +function updateCursor(socket: Socket, data: CursorData, documentId: string) { const color = getColor(socket); - socket.broadcast.emit('cursorChange', { range, id: socket.id, color }); + socket.broadcast.to(documentId).emit('cursorChange', { ...data, id: socket.id, color }); } function getColor(socket: Socket) { diff --git a/code/server/src/controllers/ws/document/onJoinDocument.ts b/code/server/src/controllers/ws/document/onJoinDocument.ts new file mode 100644 index 00000000..eda7e9f9 --- /dev/null +++ b/code/server/src/controllers/ws/document/onJoinDocument.ts @@ -0,0 +1,10 @@ +import { Socket } from 'socket.io'; +import { joinRoom } from '@controllers/ws/rooms'; + +function onJoinDocument() { + return function (socket: Socket, documentId: string) { + joinRoom(socket, documentId); + }; +} + +export default onJoinDocument; diff --git a/code/server/src/controllers/ws/document/onLeaveDocument.ts b/code/server/src/controllers/ws/document/onLeaveDocument.ts new file mode 100644 index 00000000..e6b9fe75 --- /dev/null +++ b/code/server/src/controllers/ws/document/onLeaveDocument.ts @@ -0,0 +1,10 @@ +import { Socket } from 'socket.io'; +import { leaveRoom } from '@controllers/ws/rooms'; + +function onLeaveDocument() { + return function (socket: Socket) { + leaveRoom(socket); + }; +} + +export default onLeaveDocument; diff --git a/code/server/src/controllers/ws/document/onOperation.ts b/code/server/src/controllers/ws/document/onOperation.ts index 70128eef..7ae8184a 100644 --- a/code/server/src/controllers/ws/document/onOperation.ts +++ b/code/server/src/controllers/ws/document/onOperation.ts @@ -1,28 +1,21 @@ import { Socket } from 'socket.io'; import { DocumentService } from '@src/types'; import { Operation } from '@notespace/shared/crdt/types/operations'; +import { getRoomId } from '@controllers/ws/rooms'; +import { ForbiddenError, InvalidParameterError } from '@domain/errors/errors'; function onOperation(service: DocumentService) { - return (socket: Socket, operations: Operation[]) => { - for (const operation of operations) { - switch (operation.type) { - case 'insert': - service.insertCharacter(operation); - break; - case 'delete': - service.deleteCharacter(operation); - break; - case 'inline-style': - service.updateInlineStyle(operation); - break; - case 'block-style': - service.updateBlockStyle(operation); - break; - default: - throw new Error('Invalid operation type'); - } + return async (socket: Socket, operations: Operation[]) => { + if (!operations) { + throw new InvalidParameterError('Operations are required'); } - socket.broadcast.emit('operation', operations); + const documentId = getRoomId(socket); + if (!documentId) { + throw new ForbiddenError('Client socket not in a room'); + } + socket.broadcast.to(documentId).emit('operation', operations); + await service.updateDocument(documentId, operations); + socket.emit('ack'); }; } diff --git a/code/server/src/controllers/ws/document/onTitleChange.ts b/code/server/src/controllers/ws/document/onTitleChange.ts index c2f053ea..f6475c40 100644 --- a/code/server/src/controllers/ws/document/onTitleChange.ts +++ b/code/server/src/controllers/ws/document/onTitleChange.ts @@ -1,10 +1,16 @@ import { Socket } from 'socket.io'; import { DocumentService } from '@src/types'; +import { getRoomId } from '@controllers/ws/rooms'; +import { InvalidParameterError } from '@domain/errors/errors'; function onTitleChange(service: DocumentService) { - return function (socket: Socket, title: string) { - service.updateTitle(title); - socket.broadcast.emit('titleChange', title); + return async function (socket: Socket, title: string) { + const documentId = getRoomId(socket); + if (!documentId) { + throw new InvalidParameterError('Document Id is required'); + } + await service.updateTitle(documentId, title); + socket.broadcast.to(documentId).emit('titleChange', title); }; } diff --git a/code/server/src/controllers/ws/events.ts b/code/server/src/controllers/ws/events.ts index c6008380..91e25f7c 100644 --- a/code/server/src/controllers/ws/events.ts +++ b/code/server/src/controllers/ws/events.ts @@ -1,7 +1,9 @@ +import { DocumentService, SocketHandler } from '@src/types'; import onOperation from '@controllers/ws/document/onOperation'; import onCursorChange from '@controllers/ws/document/onCursorChange'; -import { DocumentService, SocketHandler } from '@src/types'; import onTitleChange from '@controllers/ws/document/onTitleChange'; +import onJoinDocument from '@controllers/ws/document/onJoinDocument'; +import onLeaveDocument from '@controllers/ws/document/onLeaveDocument'; export default function events(service: DocumentService): Record<string, SocketHandler> { if (!service) { @@ -11,5 +13,7 @@ export default function events(service: DocumentService): Record<string, SocketH operation: onOperation(service), cursorChange: onCursorChange(), titleChange: onTitleChange(service), + joinDocument: onJoinDocument(), + leaveDocument: onLeaveDocument(), }; } diff --git a/code/server/src/controllers/ws/onConnection.ts b/code/server/src/controllers/ws/onConnection.ts index b3e4d1a1..097560d4 100644 --- a/code/server/src/controllers/ws/onConnection.ts +++ b/code/server/src/controllers/ws/onConnection.ts @@ -1,35 +1,28 @@ import { Socket } from 'socket.io'; -import { DocumentService, SocketHandler } from '@src/types'; -import onCursorChange from '@controllers/ws/document/onCursorChange'; +import { SocketHandler } from '@src/types'; /** * Returns a connection handler for socket.io - * @param service * @param events */ -function onConnection(service: DocumentService, events: Record<string, SocketHandler>) { +function onConnection(events: Record<string, SocketHandler>) { + const onCursorChange = events['cursorChange']; return async (socket: Socket) => { console.log('a client connected'); - if (socket.connected) { - const document = await service.getDocument(); - socket.emit('document', document); - } - Object.entries(events).forEach(([event, handler]) => { - socket.on(event, data => { + socket.on(event, async data => { try { - // console.log(event); - handler(socket, data); + console.log(event); + await handler(socket, data); } catch (e) { - // socket.emit('error'); console.error(e); } }); }); socket.on('disconnect', reason => { - onCursorChange()(socket, null); // delete cursor + onCursorChange(socket, null); // remove cursor console.log('a client disconnected', reason); }); }; diff --git a/code/server/src/controllers/ws/rooms.ts b/code/server/src/controllers/ws/rooms.ts new file mode 100644 index 00000000..853fc7a4 --- /dev/null +++ b/code/server/src/controllers/ws/rooms.ts @@ -0,0 +1,20 @@ +import { Socket } from 'socket.io'; + +const rooms = new Map<string, string>(); + +export function joinRoom(socket: Socket, roomId: string) { + socket.join(roomId); + rooms.set(socket.id, roomId); +} + +export function leaveRoom(socket: Socket) { + const roomId = rooms.get(socket.id); + if (roomId) { + socket.leave(roomId); + rooms.delete(socket.id); + } +} + +export function getRoomId(socket: Socket) { + return rooms.get(socket.id); +} diff --git a/code/server/src/database/firestore/operations.ts b/code/server/src/database/firestore/operations.ts index e7681048..7c762c93 100644 --- a/code/server/src/database/firestore/operations.ts +++ b/code/server/src/database/firestore/operations.ts @@ -1,31 +1,81 @@ -import { getNodes, getTitle, setTitle, updateNodes } from '@database/firestore/firestore'; +import { cert, initializeApp, ServiceAccount } from 'firebase-admin/app'; +import serviceAccount from './firestore-key-5cddf-472039f8dbb6.json'; +import { getFirestore } from 'firebase-admin/firestore'; import { DocumentDatabase } from '@src/types'; -import { Document } from '@notespace/shared/crdt/types/document'; -import { Nodes } from '@notespace/shared/crdt/types/nodes'; - -export default function DocumentDatabase(): DocumentDatabase { - async function getDocument(): Promise<Document> { - const nodes = await getNodes(); - const title = await getTitle(); - return { title, nodes }; +import { Document, DocumentData, DocumentStorageData } from '@notespace/shared/crdt/types/document'; +import { v4 as uuid } from 'uuid'; +import { NotFoundError } from '@domain/errors/errors'; +import { Operation } from '@notespace/shared/crdt/types/operations'; +import {firestore} from "firebase-admin"; +import FieldValue = firestore.FieldValue; + +export default function DocumentFirestoreDatabase(): DocumentDatabase { + initializeApp({ + credential: cert(serviceAccount as ServiceAccount), + }); + + const db = getFirestore(); + const documents = db.collection('documents'); + + async function getDocuments(): Promise<DocumentData[]> { + const snapshot = await documents.get(); + return snapshot.docs.map(doc => { + const { id, title } = doc.data() as Document; + return { id, title }; + }); + } + + async function createDocument() { + const id = uuid(); + const docData: DocumentStorageData = { + id, + title: '', + operations: [], + }; + await documents.doc(id).set(docData); + return id; } - async function updateDocument(newNodes: Nodes<string>) { - await updateNodes(newNodes); + async function getDocument(id: string): Promise<DocumentStorageData> { + const doc = await documents.doc(id).get() + if (!doc.exists) { + throw new NotFoundError(`Document with id ${id} not found`); + } + return doc.data() as DocumentStorageData; } - async function updateTitle(title: string) { - await setTitle(title); + async function deleteDocument(id: string) { + const doc = await documents.doc(id).get(); + if (!doc.exists) { + throw new NotFoundError(`Document with id ${id} not found`); + } + await documents.doc(id).delete(); } - async function deleteDocument() { - await updateNodes({}); + async function updateDocument(id: string, newOperations: Operation[]) { + try{ + const doc = documents.doc(id) + await doc.update({operations: FieldValue.arrayUnion(newOperations)}) + } catch (e) { + throw new NotFoundError(`Document with id ${id} not found`); + } + } + + async function updateTitle(id: string, title: string) { + try{ + const doc = await documents.doc(id) + await doc.update({title}) + }catch (e){ + throw new NotFoundError(`Document with id ${id} not found`); + } } return { + getDocuments, + createDocument, getDocument, + deleteDocument, updateDocument, updateTitle, - deleteDocument, }; } diff --git a/code/server/src/database/memory/operations.ts b/code/server/src/database/memory/operations.ts index edfec5e0..27570b4d 100644 --- a/code/server/src/database/memory/operations.ts +++ b/code/server/src/database/memory/operations.ts @@ -1,30 +1,61 @@ import { DocumentDatabase } from '@src/types'; -import { Document } from '@notespace/shared/crdt/types/document'; -import { Nodes } from '@notespace/shared/crdt/types/nodes'; -import { emptyTree } from '@notespace/shared/crdt/utils'; +import { DocumentStorageData } from '@notespace/shared/crdt/types/document'; +import { v4 as uuid } from 'uuid'; +import { NotFoundError } from '@domain/errors/errors'; +import { Operation } from '@notespace/shared/crdt/types/operations'; -export default function DocumentDatabase(): DocumentDatabase { - let nodes: Nodes<string> = emptyTree(); - let title = ''; +export default function DocumentMemoryDatabase(): DocumentDatabase { + const documents: Record<string, DocumentStorageData> = {}; - async function getDocument(): Promise<Document> { - return { title, nodes }; + async function getDocuments() { + return Object.values(documents); } - function updateDocument(newNodes: Nodes<string>) { - nodes = newNodes; + async function createDocument() { + const id = uuid(); + documents[id] = { + id, + title: '', + operations: [], + }; + return id; } - function updateTitle(newTitle: string) { - title = newTitle; + async function getDocument(id: string): Promise<DocumentStorageData> { + const document = documents[id]; + if (!document) { + throw new NotFoundError(`Document with id ${id} not found`); + } + return document; } - function deleteDocument() { - nodes = emptyTree(); - title = ''; + async function deleteDocument(id: string) { + const document = documents[id]; + if (!document) { + throw new NotFoundError(`Document with id ${id} not found`); + } + delete documents[id]; + } + + async function updateDocument(id: string, operations: Operation[]) { + const document = documents[id]; + if (!document) { + throw new NotFoundError(`Document with id ${id} not found`); + } + documents[id] = { ...document, operations: [...document.operations, ...operations] }; + } + + async function updateTitle(id: string, title: string) { + const document = documents[id]; + if (!document) { + throw new NotFoundError(`Document with id ${id} not found`); + } + documents[id] = { ...document, title }; } return { + getDocuments, + createDocument, getDocument, deleteDocument, updateDocument, diff --git a/code/server/src/domain/errors/errors.ts b/code/server/src/domain/errors/errors.ts new file mode 100644 index 00000000..9858dbe1 --- /dev/null +++ b/code/server/src/domain/errors/errors.ts @@ -0,0 +1,12 @@ +function error(name: string) { + return class extends Error { + constructor(message?: string) { + super(message); + this.name = name; + } + }; +} + +export const NotFoundError = error('NotFoundError'); +export const InvalidParameterError = error('InvalidParameterError'); +export const ForbiddenError = error('ForbiddenError'); diff --git a/code/server/src/server.ts b/code/server/src/server.ts index 21d5d300..b46cb4df 100644 --- a/code/server/src/server.ts +++ b/code/server/src/server.ts @@ -2,12 +2,12 @@ import express from 'express'; import http from 'http'; import { Server } from 'socket.io'; import cors from 'cors'; -import databaseInit from '@database/memory/operations'; +import databaseInit from '@database/firestore/operations'; import serviceInit from '@services/documentService'; import eventsInit from '@controllers/ws/events'; import router from '@src/controllers/http/router'; import onConnection from '@controllers/ws/onConnection'; -import config from './config'; +import config from '@src/config'; const database = databaseInit(); const service = serviceInit(database); @@ -16,7 +16,7 @@ const api = router(service); const app = express(); const server = http.createServer(app); const io = new Server(server, config.SERVER_OPTIONS); -const onConnectionHandler = onConnection(service, events); +const onConnectionHandler = onConnection(events); app.use(cors({ origin: config.ORIGIN })); app.use('/', api); diff --git a/code/server/src/services/documentService.ts b/code/server/src/services/documentService.ts index 2d643e8a..af8b4054 100644 --- a/code/server/src/services/documentService.ts +++ b/code/server/src/services/documentService.ts @@ -1,75 +1,40 @@ import { DocumentDatabase, DocumentService } from '@src/types'; -import { FugueTree } from '@notespace/shared/crdt/FugueTree'; -import { Nodes } from '@notespace/shared/crdt/types/nodes'; -import { - DeleteOperation, - InsertOperation, - InlineStyleOperation, - BlockStyleOperation, -} from '@notespace/shared/crdt/types/operations'; +import { Document } from '@notespace/shared/crdt/types/document'; +import {Operation,} from '@notespace/shared/crdt/types/operations'; export default function DocumentService(database: DocumentDatabase): DocumentService { - const tree = new FugueTree<string>(); - async function getDocument() { - return await database.getDocument(); + async function getDocuments() { + return await database.getDocuments(); } - function deleteDocument() { - database.deleteDocument(); + async function createDocument() { + return await database.createDocument(); } - async function insertCharacter(operation: InsertOperation) { - await updateDocument(() => { - const { id, value, parent, side, styles } = operation; - tree.addNode(id, value, parent, side, styles); - }); + async function getDocument(id: string): Promise<Document> { + const { title, operations } = await database.getDocument(id); + return { id, title, operations: operations }; } - async function deleteCharacter(operation: DeleteOperation) { - await updateDocument(() => { - const { id } = operation; - tree.deleteNode(id); - }); + async function deleteDocument(id: string) { + await database.deleteDocument(id); } - async function updateInlineStyle(operation: InlineStyleOperation) { - await updateDocument(() => { - const { id, style, value } = operation; - tree.updateInlineStyle(id, style, value); - }); + async function updateDocument(id: string, operations: Operation[]) { + await database.updateDocument(id, operations); } - async function updateBlockStyle(operation: BlockStyleOperation) { - await updateDocument(() => { - const { style, line } = operation; - tree.updateBlockStyle(style, line); - }); - } - - function updateTitle(title: string) { - database.updateTitle(title); - } - - async function updateDocument(update: () => void) { - const { nodes } = await database.getDocument(); - tree.setTree(nodes); - update(); - const updatedNodes = getNodes(); - database.updateDocument(updatedNodes); - } - - function getNodes(): Nodes<string> { - return Object.fromEntries(Array.from(tree.nodes.entries())); + async function updateTitle(id: string, title: string) { + await database.updateTitle(id, title); } return { + getDocuments, + createDocument, getDocument, deleteDocument, - insertCharacter, - deleteCharacter, - updateInlineStyle, - updateBlockStyle, updateTitle, + updateDocument, }; } diff --git a/code/server/src/types.d.ts b/code/server/src/types.d.ts index e949153b..e936b942 100644 --- a/code/server/src/types.d.ts +++ b/code/server/src/types.d.ts @@ -1,27 +1,23 @@ import { Socket } from 'socket.io'; -import { Document } from '@notespace/shared/crdt/types/document'; -import { - InsertOperation, - DeleteOperation, - InlineStyleOperation, - BlockStyleOperation, -} from '@notespace/shared/crdt/types/operations'; +import { Document, DocumentData, DocumentStorageData } from '@notespace/shared/crdt/types/document'; +import { Operation } from '@notespace/shared/crdt/types/operations'; type DocumentDatabase = { - getDocument: () => Promise<Document>; - updateDocument: (nodes: Nodes<string>) => void; - updateTitle: (title: string) => void; - deleteDocument: () => void; + getDocuments: () => Promise<DocumentData[]>; + createDocument: () => Promise<string>; + getDocument: (id: string) => Promise<DocumentStorageData>; + deleteDocument: (id: string) => Promise<void>; + updateDocument: (id: string, operations: Operation[]) => Promise<void>; + updateTitle: (id: string, title: string) => Promise<void>; }; type DocumentService = { - getDocument: () => Promise<Document>; - deleteDocument: () => void; - insertCharacter: (operation: InsertOperation) => void; - deleteCharacter: (operation: DeleteOperation) => void; - updateInlineStyle: (operation: InlineStyleOperation) => void; - updateBlockStyle: (operation: BlockStyleOperation) => void; - updateTitle: (title: string) => void; + getDocuments: () => Promise<DocumentData[]>; + createDocument: () => Promise<string>; + getDocument: (id: string) => Promise<Document>; + deleteDocument: (id: string) => void; + updateDocument: (id: string, operations: Operation[]) => Promise<void>; + updateTitle: (id: string, title: string) => Promise<void>; }; -type SocketHandler = (socket: Socket, data: any) => void; +type SocketHandler = (socket: Socket, data: any) => Promise<void> | void; diff --git a/code/server/tsconfig.json b/code/server/tsconfig.json index 8f1f2601..e7b1c091 100644 --- a/code/server/tsconfig.json +++ b/code/server/tsconfig.json @@ -24,4 +24,4 @@ }, "include": ["src/**/*"], "files": ["src/types.d.ts"] -} +} \ No newline at end of file diff --git a/code/shared/crdt/FugueTree.ts b/code/shared/crdt/FugueTree.ts index 967e3bf5..e142eeff 100644 --- a/code/shared/crdt/FugueTree.ts +++ b/code/shared/crdt/FugueTree.ts @@ -1,15 +1,16 @@ import { Id, Node, Nodes } from "./types/nodes"; import { BlockStyle, InlineStyle } from "../types/styles"; import { isEmpty, isNull } from "lodash"; -import { rootNode, treeNode } from "./utils"; +import {rootNode, treeNode} from "./utils"; +import {RootNode, NodeType} from "./types/nodes"; export class FugueTree<T> { - private _nodes = new Map<string, Node<T>[]>(); - private _root: Node<T>; + private _root: RootNode<T>; + private _nodes = new Map<string, NodeType<T>[]>(); constructor() { this._root = rootNode(); - this._nodes.set("root", [this.root]); + this._nodes.set("root", [this._root]); } /** @@ -17,9 +18,9 @@ export class FugueTree<T> { * @param nodes */ setTree(nodes: Nodes<T>) { - const nodesMap = new Map<string, Node<T>[]>(Object.entries(nodes)); + const nodesMap = new Map<string, NodeType<T>[]>(Object.entries(nodes)); this._nodes = nodesMap; - this._root = nodesMap.get("root")![0]; + this._root = nodesMap.get("root")![0] as RootNode<T>; } /** @@ -37,17 +38,40 @@ export class FugueTree<T> { side: "L" | "R", styles?: InlineStyle[], ) { + // create node const node = treeNode(id, value, parent, side, 0, styles); - // Add to nodes map + + // add to nodes map + const senderNodes = this.nodes.get(id.sender) || []; + if (isEmpty(senderNodes)) this.nodes.set(id.sender, senderNodes); + senderNodes.push(node); + + // insert into parent's siblings + this.insertChild(node); + + // update depths of ancestors + this.updateDepths(node, 1); + } + + addLineRoot(id: Id, value: T, parent: Id, side: "L" | "R", styles?: InlineStyle[]) { + // create node + const node = treeNode(id, value, parent, side, 0, styles); + this._root.value.push(node); + + // add to nodes map const senderNodes = this.nodes.get(id.sender) || []; if (isEmpty(senderNodes)) this.nodes.set(id.sender, senderNodes); senderNodes.push(node); - // Insert into parent's siblings. + + // insert into parent's siblings this.insertChild(node); - // Update sizes of ancestors + + // update depths of ancestors this.updateDepths(node, 1); } + + /** * Inserts node among its same-side siblings, in lexicographic order by id.sender. * @param id the id of the node. @@ -66,12 +90,25 @@ export class FugueTree<T> { siblings.splice(i, 0, id); } + /** + * Deletes the node with the given id. + * @param id + */ deleteNode(id: Id) { const node = this.getById(id); if (!node.isDeleted) { - node.value = null; node.isDeleted = true; - this.updateDepths(node, -1); + } + } + + /** + * Re-enables the node with the given id. + * @param id + */ + reviveNode(id: Id) { + const node = this.getById(id); + if (node.isDeleted) { + node.isDeleted = false; } } @@ -80,9 +117,9 @@ export class FugueTree<T> { * @param node the node whose ancestors' depths are to be updated. * @param delta the amount by which to update the depths. */ - private updateDepths(node: Node<T>, delta: number) { + private updateDepths(node: NodeType<T>, delta: number) { for ( - let anc: Node<T> | null = node; + let anc: NodeType<T> | null = node; anc !== null; anc = anc.parent && this.getById(anc.parent) ) { @@ -96,21 +133,25 @@ export class FugueTree<T> { * @throws if the id is unknown. * @returns the node with the given id. */ - getById(id: Id): Node<T> { + getById(id: Id): NodeType<T> { const bySender = this.nodes.get(id.sender); if (bySender !== undefined) { const node = bySender[id.counter]; - if (node !== undefined) return node; + if (node) return node; } throw new Error("Unknown ID: " + JSON.stringify(id)); } + getLineRoot(line: number): NodeType<T> { + return line === 0 ? this._root : this._root.value[line - 1]; + } + /** * Returns the leftmost left-only descendant of node, i.e., the * first left child of the first left child ... of node. * */ - getLeftmostDescendant(nodeId: Id): Node<T> { + getLeftmostDescendant(nodeId: Id): NodeType<T> { let node = this.getById(nodeId); while (!isEmpty(node.leftChildren)) { node = this.getById(node.leftChildren[0]); @@ -128,7 +169,7 @@ export class FugueTree<T> { updateInlineStyle(id: Id, style: InlineStyle, value: boolean) { const node = this.getById(id); if (value) { - node.styles.push(style); + if (!node.styles.includes(style)) node.styles.push(style); } else { const index = node.styles.indexOf(style); if (index !== -1) node.styles.splice(index, 1); @@ -146,22 +187,28 @@ export class FugueTree<T> { /** * Traverses the tree in in-order traversal * @param root the root of the subtree. + * @param returnDeleted * @returns an iterator over the nodes in the subtree. */ - *traverse(root: Node<T>): IterableIterator<Node<T>> { + *traverse( + root: NodeType<T>, + returnDeleted: boolean = false, + ): IterableIterator<NodeType<T>> { let current = root; const stack: { side: "L" | "R"; childIndex: number }[] = [ { side: "L", childIndex: 0 }, ]; while (true) { const top = stack[stack.length - 1]; + if (!top) return; const children = top.side === "L" ? current.leftChildren : current.rightChildren; if (top.childIndex === children.length) { // We are done with the children on top.side. if (top.side === "L") { // Visit node then move to right children. - if (!current.isDeleted) yield current; + if (current.id !== root.id && (returnDeleted || !current.isDeleted)) + yield current; top.side = "R"; top.childIndex = 0; continue; @@ -183,13 +230,19 @@ export class FugueTree<T> { } } + reset() { + this._nodes.clear(); + this._root = rootNode(); + this._nodes.set("root", [this._root]); + } + toString() { - return Array.from(this.traverse(this.root)) + return Array.from(this.traverse(this._root)) .map((node) => node.value) .join(""); } - get root(): Node<T> { + get root(): RootNode<T> { return this._root; } diff --git a/code/shared/crdt/types/document.ts b/code/shared/crdt/types/document.ts index f8de4ed9..bd778144 100644 --- a/code/shared/crdt/types/document.ts +++ b/code/shared/crdt/types/document.ts @@ -1,6 +1,14 @@ -import { Nodes } from "./nodes"; +import { Operation } from "./operations"; -export type Document = { +export type DocumentData = { + id: string; title: string; - nodes: Nodes<string>; +}; + +export type Document = DocumentData & { + operations : Operation[]; +}; + +export type DocumentStorageData = DocumentData & { + operations: Operation[]; }; diff --git a/code/shared/crdt/types/nodes.ts b/code/shared/crdt/types/nodes.ts index 0dc2a8d9..816d87dd 100644 --- a/code/shared/crdt/types/nodes.ts +++ b/code/shared/crdt/types/nodes.ts @@ -29,4 +29,8 @@ export type Node<T> = { styles: Style[]; }; -export type Nodes<T> = Record<string, Node<T>[]>; +export type RootNode<T> = Node<Node<T>[]> + +export type NodeType<T> = Node<T> | RootNode<T> + +export type Nodes<T> = Record<string, NodeType<T>[]>; diff --git a/code/shared/crdt/types/operations.ts b/code/shared/crdt/types/operations.ts index c5b75783..b9eeabc8 100644 --- a/code/shared/crdt/types/operations.ts +++ b/code/shared/crdt/types/operations.ts @@ -29,8 +29,14 @@ export type BlockStyleOperation = { append: boolean; }; +export type ReviveOperation = { + type: "revive"; + id: Id; +}; + export type Operation = | InsertOperation | DeleteOperation | InlineStyleOperation - | BlockStyleOperation; + | BlockStyleOperation + | ReviveOperation; diff --git a/code/shared/crdt/utils.ts b/code/shared/crdt/utils.ts index 19ded136..c7ba3949 100644 --- a/code/shared/crdt/utils.ts +++ b/code/shared/crdt/utils.ts @@ -1,10 +1,12 @@ -import { Node, Id, Nodes } from "./types/nodes"; +import {Node, Id, RootNode} from "./types/nodes"; import { InlineStyle } from "../types/styles"; -export function rootNode<T>(): Node<T> { + + +export function rootNode<T>(): RootNode<T> { return { id: { sender: "root", counter: 0 }, - value: null, + value: [], isDeleted: true, parent: null, side: "R", @@ -35,7 +37,3 @@ export function treeNode<T>( styles, }; } - -export function emptyTree<T>(): Nodes<T> { - return { root: [rootNode<T>()] }; -} diff --git a/code/shared/package.json b/code/shared/package.json index c8be5c7c..14e08dc6 100644 --- a/code/shared/package.json +++ b/code/shared/package.json @@ -1,6 +1,6 @@ { "name": "@notespace/shared", - "version": "1.0.6", + "version": "1.0.7", "description": "shared code", "author": "notespace-team", "scripts": { @@ -13,8 +13,8 @@ "devDependencies": { "@types/lodash": "^4.17.0", "@types/node": "^20.12.7", - "@typescript-eslint/eslint-plugin": "^7.6.0", - "@typescript-eslint/parser": "^7.6.0", + "@typescript-eslint/eslint-plugin": "^7.7.0", + "@typescript-eslint/parser": "^7.7.0", "eslint": "^8.57.0", "knip": "^5.9.4", "prettier": "^3.2.5", @@ -22,5 +22,6 @@ }, "dependencies": { "lodash": "^4.17.21" - } + }, + "packageManager": "pnpm@9.0.6+sha256.0624e30eff866cdeb363b15061bdb7fd9425b17bc1bb42c22f5f4efdea21f6b3" } diff --git a/code/shared/types/cursor.ts b/code/shared/types/cursor.ts index 640212d6..9ded179a 100644 --- a/code/shared/types/cursor.ts +++ b/code/shared/types/cursor.ts @@ -15,3 +15,7 @@ export function emptySelection(): Selection { export function emptyCursor(): Cursor { return { line: 0, column: 0 }; } + +export function toCursor(line: number, column: number): Cursor { + return { line, column }; +} diff --git a/code/shared/types/styles.ts b/code/shared/types/styles.ts index d8168cca..85867e5c 100644 --- a/code/shared/types/styles.ts +++ b/code/shared/types/styles.ts @@ -18,10 +18,20 @@ export const InlineStyles = { italic: "italic", underline: "underline", strikethrough: "strikethrough", - code: "inline-code", + code: "code", a: "link", } as const; export type BlockStyle = (typeof BlockStyles)[keyof typeof BlockStyles]; export type InlineStyle = (typeof InlineStyles)[keyof typeof InlineStyles]; export type Style = BlockStyle | InlineStyle; + +export function getStyleType(type: string): "block" | "inline" { + for (const [, value] of Object.entries(BlockStyles)) { + if (value === type) return "block"; + } + for (const [, value] of Object.entries(InlineStyles)) { + if (value === type) return "inline"; + } + throw new Error(`Unknown style type: ${type}`); +} From 8b8d00d05dc7602c4f47753e4350f89c95d174ab Mon Sep 17 00:00:00 2001 From: Guilherme_F <guilherme.ferreira120703@gmail.com> Date: Fri, 3 May 2024 14:24:17 +0100 Subject: [PATCH 2/6] Tests --- .../tests/conflict-resolution/crdt.test.ts | 128 ++++++++++++++ code/client/tests/editor/crdt/fugue.test.ts | 165 +++++++++++++++--- code/client/tests/editor/crdt/tree.test.ts | 18 +- .../domain/document/fugueOperations.test.ts | 108 ++++++++++++ .../domain/document/historyOperations.test.ts | 7 + .../domain/document/inputOperations.test.ts | 100 +++++++++++ .../document/markdownOperations.test.ts | 73 ++++++++ .../tests/editor/slate/SlateEditor.test.tsx | 24 +-- .../editor/slate/handlers/history/cut.test.ts | 125 +++++++++++++ .../handlers/history/delete-text.test.ts | 137 +++++++++++++++ .../handlers/history/insert-text.test.ts | 143 +++++++++++++++ .../slate/handlers/history/line-op.test.ts | 73 ++++++++ .../slate/handlers/history/paste.test.ts | 71 ++++++++ .../editor/slate/handlers/history/utils.ts | 97 ++++++++++ .../slate/operations/Deletions.test.tsx | 10 +- .../editor/slate/operations/Inserts.test.tsx | 14 +- .../client/tests/editor/slate/toSlate.test.ts | 42 +++++ code/client/tests/editor/slate/utils.tsx | 14 +- code/client/tests/mocks/mock-handlers.ts | 1 + code/client/tests/mocks/mock-server.ts | 4 + code/client/tests/mocks/mockCommunication.ts | 19 ++ .../tests/conflict-resolution/crdt.test.ts | 52 +++--- 22 files changed, 1341 insertions(+), 84 deletions(-) create mode 100644 code/client/tests/conflict-resolution/crdt.test.ts create mode 100644 code/client/tests/editor/domain/document/fugueOperations.test.ts create mode 100644 code/client/tests/editor/domain/document/historyOperations.test.ts create mode 100644 code/client/tests/editor/domain/document/inputOperations.test.ts create mode 100644 code/client/tests/editor/domain/document/markdownOperations.test.ts create mode 100644 code/client/tests/editor/slate/handlers/history/cut.test.ts create mode 100644 code/client/tests/editor/slate/handlers/history/delete-text.test.ts create mode 100644 code/client/tests/editor/slate/handlers/history/insert-text.test.ts create mode 100644 code/client/tests/editor/slate/handlers/history/line-op.test.ts create mode 100644 code/client/tests/editor/slate/handlers/history/paste.test.ts create mode 100644 code/client/tests/editor/slate/handlers/history/utils.ts create mode 100644 code/client/tests/editor/slate/toSlate.test.ts create mode 100644 code/client/tests/mocks/mock-handlers.ts create mode 100644 code/client/tests/mocks/mock-server.ts create mode 100644 code/client/tests/mocks/mockCommunication.ts diff --git a/code/client/tests/conflict-resolution/crdt.test.ts b/code/client/tests/conflict-resolution/crdt.test.ts new file mode 100644 index 00000000..2564f159 --- /dev/null +++ b/code/client/tests/conflict-resolution/crdt.test.ts @@ -0,0 +1,128 @@ +import * as http from 'http'; +import { io, Socket } from 'socket.io-client'; +import { InsertOperation, DeleteOperation } from '@notespace/shared/crdt/types/operations'; +import { Nodes } from '@notespace/shared/crdt/types/nodes'; +import { FugueTree } from '@notespace/shared/crdt/FugueTree'; +import request = require('supertest'); +import { Server } from 'socket.io'; +import server from '../../src/server'; + +const { app, onConnectionHandler } = server; +const PORT = process.env.PORT || 8080; +const BASE_URL = `http://localhost:${PORT}`; +let ioServer: Server; +let httpServer: http.Server; +let client1: Socket; +let client2: Socket; +const tree = new FugueTree(); + +beforeAll(done => { + httpServer = http.createServer(app); + ioServer = new Server(httpServer); + + ioServer.on('connection', onConnectionHandler); + httpServer.listen(PORT, () => { + client1 = io(BASE_URL); + client2 = io(BASE_URL); + done(); + }); +}); + +afterAll(done => { + ioServer.off('connection', onConnectionHandler); + ioServer.close(() => { + client1.close(); + client2.close(); + httpServer.close(); + done(); + }); +}); + +describe('Operations must be commutative', () => { + test('insert operations should be commutative', async () => { + const insert1: InsertOperation = { + type: 'insert', + id: { sender: 'A', counter: 0 }, + value: 'a', + parent: { sender: 'root', counter: 0 }, + side: 'R', + }; + const insert2: InsertOperation = { + type: 'insert', + id: { sender: 'B', counter: 0 }, + value: 'b', + parent: { sender: 'root', counter: 0 }, + side: 'R', + }; + // create a document + const createdResponse = await request(app).post('/documents'); + expect(createdResponse.status).toBe(201); + const id = createdResponse.body.id; + + // clients join the document + client1.emit('joinDocument', id); + client2.emit('joinDocument', id); + + // client 1 inserts 'a' and client 2 inserts 'b' + client1.emit('operation', [insert1]); + client2.emit('operation', [insert2]); + + await new Promise(resolve => setTimeout(resolve, 500)); + + // get the document + const response = await request(app).get('/documents/' + id); + expect(response.status).toBe(200); + const nodes = response.body.nodes as Nodes<string>; + tree.setTree(nodes); + expect(tree.toString()).toBe('ab'); + }); +}); + +describe('Operations must be idempotent', () => { + test('delete operations should be idempotent', async () => { + const insert1: InsertOperation = { + type: 'insert', + id: { sender: 'A', counter: 0 }, + value: 'a', + parent: { sender: 'root', counter: 0 }, + side: 'R', + }; + const insert2: InsertOperation = { + type: 'insert', + id: { sender: 'B', counter: 0 }, + value: 'a', + parent: { sender: 'root', counter: 0 }, + side: 'R', + }; + + // create a document + const createdResponse = await request(app).post('/documents'); + expect(createdResponse.status).toBe(201); + const id = createdResponse.body.id; + + // clients join the document + client1.emit('joinDocument', id); + client2.emit('joinDocument', id); + + // both clients insert 'a' + client1.emit('operation', [insert1]); + client2.emit('operation', [insert2]); + + await new Promise(resolve => setTimeout(resolve, 500)); + + const delete1: DeleteOperation = { + type: 'delete', + id: { sender: 'B', counter: 0 }, + }; + // both clients want to delete the same 'a' + client1.emit('operation', [delete1]); + client2.emit('operation', [delete1]); + + await new Promise(resolve => setTimeout(resolve, 500)); + + const response = await request(app).get('/documents/' + id); + const nodes = response.body.nodes as Nodes<string>; + tree.setTree(nodes); + expect(tree.toString()).toBe('a'); + }); +}); diff --git a/code/client/tests/editor/crdt/fugue.test.ts b/code/client/tests/editor/crdt/fugue.test.ts index 61269451..1c066537 100644 --- a/code/client/tests/editor/crdt/fugue.test.ts +++ b/code/client/tests/editor/crdt/fugue.test.ts @@ -1,13 +1,14 @@ -import { Fugue } from '@editor/crdt/fugue'; +import { Fugue } from '@/domain/editor/crdt/fugue'; import { InsertOperation, DeleteOperation, InlineStyleOperation, BlockStyleOperation, + ReviveOperation, } from '@notespace/shared/crdt/types/operations'; import { Selection, Cursor } from '@notespace/shared/types/cursor'; -import { describe, it, expect, beforeEach } from 'vitest'; -import { FugueNode } from '@editor/crdt/types'; +import { describe, test, expect, beforeEach } from 'vitest'; +import { FugueNode } from '@/domain/editor/crdt/types'; describe('Fugue', () => { let fugue: Fugue; @@ -16,12 +17,12 @@ describe('Fugue', () => { fugue = new Fugue(); }); - it('should initialize properly', () => { + test('should initialize properly', () => { expect(fugue).toBeDefined(); expect(fugue.toString()).toEqual(expect.any(String)); }); - it('should insert values locally', () => { + test('should insert values locally', () => { // given const cursor: Cursor = { line: 0, column: 0 }; @@ -34,7 +35,7 @@ describe('Fugue', () => { expect(fugue.toString()).toEqual('abc'); }); - it('should insert values remotely', () => { + test('should insert values remotely', () => { // given const operation: InsertOperation = { type: 'insert', @@ -51,7 +52,21 @@ describe('Fugue', () => { expect(fugue.toString()).toContain('a'); }); - it('should delete values locally', () => { + test('should insert multiple lines locally', () => { + // given + const cursor: Cursor = { line: 0, column: 0 }; + const input = 'abc\ndef'; + + // when + const operations = fugue.insertLocal(cursor, ...input.split('')); + + // then + expect(operations).toHaveLength(7); + expect(operations.map(op => op.value).join('')).toEqual('abc\ndef'); + expect(fugue.toString()).toEqual('abc\ndef'); + }); + + test('should delete values locally', () => { // given const cursor: Cursor = { line: 0, column: 0 }; const selection: Selection = { start: { line: 0, column: 1 }, end: { line: 0, column: 3 } }; @@ -66,7 +81,7 @@ describe('Fugue', () => { expect(fugue.toString()).toEqual('a'); }); - it('should delete values remotely', () => { + test('should delete values remotely', () => { // given const insertOperation: InsertOperation = { type: 'insert', @@ -88,7 +103,7 @@ describe('Fugue', () => { expect(fugue.toString()).toEqual(''); }); - it('should update inline style of node locally', () => { + test('should update inline style of node locally', () => { // given const cursor: Cursor = { line: 0, column: 0 }; const selection: Selection = { start: { line: 0, column: 0 }, end: { line: 0, column: 1 } }; @@ -103,7 +118,7 @@ describe('Fugue', () => { expect(fugue.getNodeByCursor({ line: 0, column: 1 })?.styles).toEqual(['bold']); }); - it('should update inline style of node remotely', () => { + test('should update inline style of node remotely', () => { // given const id = { sender: 'A', counter: 0 }; const insertOperation: InsertOperation = { @@ -128,10 +143,10 @@ describe('Fugue', () => { expect(fugue.getNodeById(id).styles).toEqual(['bold']); }); - it('should update block style of node locally', () => { + test('should update block style of node locally', () => { // when - const operationHeading1 = fugue.updateBlockStyleLocal('heading-one', 0); - const operationListItem = fugue.updateBlockStyleLocal('list-item', 1); + const operationHeading1 = fugue.updateBlockStyleLocal(0, 'heading-one'); + const operationListItem = fugue.updateBlockStyleLocal(1, 'list-item'); // then expect(operationHeading1).toEqual(expect.objectContaining({ type: 'block-style', line: 0, style: 'heading-one' })); @@ -140,7 +155,7 @@ describe('Fugue', () => { expect(fugue.getBlockStyle(1)).toEqual('list-item'); }); - it('should update block style of node remotely', () => { + test('should update block style of node remotely', () => { // given const operation: BlockStyleOperation = { type: 'block-style', line: 0, style: 'heading-one', append: false }; @@ -151,10 +166,10 @@ describe('Fugue', () => { expect(fugue.getBlockStyle(0)).toEqual('heading-one'); }); - it('should return the nodes in the given selection', () => { + test('should return the nodes in the given selection', () => { // given const cursor: Cursor = { line: 0, column: 0 }; - const selection: Selection = { start: { line: 0, column: 0 }, end: { line: 0, column: 1 } }; + const selection: Selection = { start: { line: 0, column: 0 }, end: { line: 0, column: 2 } }; // when fugue.insertLocal(cursor, 'a', 'b', 'c'); @@ -165,17 +180,41 @@ describe('Fugue', () => { expect(nodes.map(node => node.value).join('')).toEqual('ab'); }); - it('should return all nodes until the given separator', () => { + test('should return the nodes in the given selections', () => { + // given + const cursor: Cursor = { line: 0, column: 0 }; + const line1 = 'abcdef'; + const line2 = 'ghijkl'; + const selection1: Selection = { start: { line: 0, column: 1 }, end: { line: 0, column: 3 } }; + const selection2: Selection = { start: { line: 0, column: 3 }, end: { line: 0, column: 5 } }; + const selection3: Selection = { start: { line: 0, column: 3 }, end: { line: 1, column: 4 } }; + + // when + fugue.insertLocal(cursor, ...line1.split('')); + fugue.insertLocal({ ...cursor, column: line1.length }, '\n'); + fugue.insertLocal({ ...cursor, column: 0, line: 1 }, ...line2.split('')); + + const nodes1 = Array.from(fugue.traverseBySelection(selection1)); + const nodes2 = Array.from(fugue.traverseBySelection(selection2)); + const nodes3 = Array.from(fugue.traverseBySelection(selection3)); + + // then + expect(nodes1.map(node => node.value).join('')).toEqual('bc'); + expect(nodes2.map(node => node.value).join('')).toEqual('de'); + expect(nodes3.map(node => node.value).join('')).toEqual('def\nghij'); + }); + + test('should return all nodes until the given separator', () => { // given const cursor: Cursor = { line: 0, column: 0 }; // when fugue.insertLocal(cursor, '#', '#', '#', ' ', 'a'); - const nodes: FugueNode[] = fugue.traverseBySeparator(' ', cursor, false).next().value; + const nodes: FugueNode[] = fugue.traverseBySeparator(' ', cursor, false, true).next().value; // then - expect(nodes).toHaveLength(3); - expect(nodes.map(node => node.value).join('')).toEqual('###'); + expect(nodes).toHaveLength(4); + expect(nodes.map(node => node.value).join('')).toEqual('### '); // when const endCursor: Cursor = { line: 0, column: 5 }; @@ -186,7 +225,7 @@ describe('Fugue', () => { expect(reverseNodes[0].value).toEqual('a'); }); - it('should delete a word by cursor', () => { + test('should delete a word by cursor', () => { // given const cursor: Cursor = { line: 0, column: 0 }; fugue.insertLocal(cursor, 'a', 'b', 'c', ' ', 'd', 'e'); @@ -206,4 +245,88 @@ describe('Fugue', () => { expect(reverseOperations).toHaveLength(2); expect(fugue.toString()).toEqual(' '); }); + + test('should revive nodes locally', () => { + // given + const cursor: Cursor = { line: 0, column: 0 }; + const selection: Selection = { start: { line: 0, column: 1 }, end: { line: 0, column: 3 } }; + const selection2: Selection = { start: { line: 0, column: 0 }, end: { line: 1, column: 2 } }; + + // when + fugue.insertLocal(cursor, 'a', 'b', 'c'); + fugue.deleteLocal(selection); + + // then + expect(fugue.toString()).toEqual('a'); + + // when + const operations = fugue.reviveLocal(selection); + + // then + expect(operations).toHaveLength(2); + expect(fugue.toString()).toEqual('abc'); + + // when + fugue.insertLocal({ line: 0, column: 3 }, '\n', 'd', 'e', 'f'); + + // then + expect(fugue.toString()).toEqual('abc\ndef'); + + // when + fugue.deleteLocal(selection2); + + // then + expect(fugue.toString()).toEqual('f'); + + const operations2 = fugue.reviveLocal(selection2); + + // then + expect(operations2).toHaveLength(6); + expect(fugue.toString()).toEqual('abc\ndef'); + }); + + test('should revive nodes remotely', () => { + // given + const insertOperation: InsertOperation = { + type: 'insert', + id: { sender: 'A', counter: 0 }, + value: 'a', + parent: { sender: 'root', counter: 0 }, + side: 'R', + }; + const deleteOperation: DeleteOperation = { + type: 'delete', + id: { sender: 'A', counter: 0 }, + }; + + // when + fugue.insertRemote(insertOperation); + fugue.deleteRemote(deleteOperation); + + // then + expect(fugue.toString()).toEqual(''); + + // when + const reviveOperation: ReviveOperation = { type: 'revive', id: insertOperation.id }; + + // when + fugue.reviveRemote(reviveOperation); + + // then + expect(fugue.toString()).toEqual('a'); + }); + + test('should delete a line by cursor', () => { + // given + const cursor1: Cursor = { line: 0, column: 0 }; + const cursor2: Cursor = { line: 1, column: 0 }; + const text = 'abc\ndef'; + + // when + fugue.insertLocal(cursor1, ...text.split('')); + fugue.deleteLocalByCursor(cursor2); + + // then + // expect(fugue.toString()).toEqual('abcdef'); + }); }); diff --git a/code/client/tests/editor/crdt/tree.test.ts b/code/client/tests/editor/crdt/tree.test.ts index d86e5d13..45e2baa2 100644 --- a/code/client/tests/editor/crdt/tree.test.ts +++ b/code/client/tests/editor/crdt/tree.test.ts @@ -1,7 +1,7 @@ import { FugueTree } from '@notespace/shared/crdt/FugueTree'; import { InsertOperation } from '@notespace/shared/crdt/types/operations'; -import { describe, it, expect, beforeEach } from 'vitest'; -import { FugueNode } from '@editor/crdt/types'; +import { describe, test, expect, beforeEach } from 'vitest'; +import { FugueNode } from '@/domain/editor/crdt/types'; import { Nodes } from '@notespace/shared/crdt/types/nodes'; describe('FugueTree', () => { @@ -10,7 +10,7 @@ describe('FugueTree', () => { tree = new FugueTree(); }); - it('should add a node to the tree', () => { + test('should add a node to the tree', () => { // given const operation: InsertOperation = { type: 'insert', @@ -33,7 +33,7 @@ describe('FugueTree', () => { expect(node.value).toEqual(value); }); - it('should delete a node from the tree', () => { + test('should delete a node from the tree', () => { // given const { id, value, parent, side }: InsertOperation = { type: 'insert', @@ -52,7 +52,7 @@ describe('FugueTree', () => { expect(tree.toString()).toBe(''); }); - it('should set the tree to the given nodes', () => { + test('should set the tree to the given nodes', () => { // given const nodes: Nodes<string> = {}; const rootNode: FugueNode = tree.root; @@ -78,7 +78,7 @@ describe('FugueTree', () => { expect(tree.getById({ sender: 'A', counter: 0 })).toEqual(childNode); }); - it('should return the leftmost descendant of a node', () => { + test('should return the leftmost descendant of a node', () => { // given tree.addNode({ sender: 'A', counter: 0 }, 'a', { sender: 'root', counter: 0 }, 'L'); tree.addNode({ sender: 'A', counter: 1 }, 'b', { sender: 'A', counter: 0 }, 'L'); @@ -94,7 +94,7 @@ describe('FugueTree', () => { expect(leftmostDescendant.id.counter).toEqual(2); }); - it('should traverse the tree in depth-first order', () => { + test('should traverse the tree in depth-first order', () => { // given tree.addNode({ sender: 'A', counter: 0 }, 'a', { sender: 'root', counter: 0 }, 'R'); tree.addNode({ sender: 'A', counter: 1 }, 'b', { sender: 'A', counter: 0 }, 'R'); @@ -116,7 +116,7 @@ describe('FugueTree', () => { expect(values.join('')).toEqual(tree.toString()); }); - it('should update the inline style of a node', () => { + test('should update the inline style of a node', () => { // given tree.addNode({ sender: 'A', counter: 0 }, 'a', { sender: 'root', counter: 0 }, 'R'); @@ -135,7 +135,7 @@ describe('FugueTree', () => { expect(node.styles).toEqual(['italic']); }); - it('should update the block style of a line', () => { + test('should update the block style of a line', () => { // when tree.updateBlockStyle('heading-one', 0); tree.updateBlockStyle('list-item', 1); diff --git a/code/client/tests/editor/domain/document/fugueOperations.test.ts b/code/client/tests/editor/domain/document/fugueOperations.test.ts new file mode 100644 index 00000000..ba2870c9 --- /dev/null +++ b/code/client/tests/editor/domain/document/fugueOperations.test.ts @@ -0,0 +1,108 @@ +import { describe, test, expect, beforeEach } from 'vitest'; +import { Fugue } from '@/domain/editor/crdt/fugue'; +import { + InsertOperation, + DeleteOperation, + InlineStyleOperation, + BlockStyleOperation, +} from '@notespace/shared/crdt/types/operations'; +import getFugueOperations from '@/domain/editor/operations/fugue/operations'; +import { FugueDomainOperations } from '@/domain/editor/operations/fugue/types'; +import { Document } from '@notespace/shared/crdt/types/document'; +import { Node } from '@notespace/shared/crdt/types/nodes'; +import { rootNode, treeNode } from '@notespace/shared/crdt/utils'; + +describe('Fugue Operations', () => { + let fugue: Fugue; + let fugueOperations: FugueDomainOperations; + + beforeEach(() => { + fugue = new Fugue(); + fugueOperations = getFugueOperations(fugue); + }); + + test('should apply operations', () => { + // given + const insertOperation: InsertOperation = { + type: 'insert', + id: { sender: 'A', counter: 0 }, + value: 'a', + parent: { sender: 'root', counter: 0 }, + side: 'R', + }; + + // when + fugueOperations.applyOperations([insertOperation]); + + // then + expect(fugue.toString()).toEqual('a'); + + // given + const deleteOperation: DeleteOperation = { + type: 'delete', + id: { sender: 'A', counter: 0 }, + }; + + // when + fugueOperations.applyOperations([deleteOperation]); + + // then + expect(fugue.toString()).toEqual(''); + + // given + const insertOperation2 = { ...insertOperation, id: { sender: 'A', counter: 1 }, value: 'b' }; + + // when + fugueOperations.applyOperations([insertOperation2]); + + // given + const inlineStyleOperation: InlineStyleOperation = { + type: 'inline-style', + id: { sender: 'A', counter: 1 }, + style: 'bold', + value: true, + }; + + // when + fugueOperations.applyOperations([inlineStyleOperation]); + + // then + expect(fugue.getNodeByCursor({ line: 0, column: 1 })?.styles).toEqual(['bold']); + + // given + const blockStyleOperation: BlockStyleOperation = { + type: 'block-style', + style: 'paragraph', + line: 0, + append: false, + }; + + // when + fugueOperations.applyOperations([blockStyleOperation]); + + // then + expect(fugue.getBlockStyle(0)).toEqual('paragraph'); + }); + + test('should initialize document', () => { + // given + const root: Node<string> = rootNode(); + const node1: Node<string> = treeNode({ sender: 'A', counter: 0 }, 'a', root.id, 'R', 1); + const node2: Node<string> = treeNode({ sender: 'A', counter: 1 }, 'b', node1.id, 'R', 2); + root.rightChildren = [node1.id]; + node1.rightChildren = [node2.id]; + const document: Document = { + title: 'test', + nodes: { + root: [root], + A: [node1, node2], + }, + }; + + // when + fugueOperations.initDocument(document); + + // then + expect(fugue.toString()).toEqual('ab'); + }); +}); diff --git a/code/client/tests/editor/domain/document/historyOperations.test.ts b/code/client/tests/editor/domain/document/historyOperations.test.ts new file mode 100644 index 00000000..17b5e415 --- /dev/null +++ b/code/client/tests/editor/domain/document/historyOperations.test.ts @@ -0,0 +1,7 @@ +import { describe, test, expect } from 'vitest'; + +describe('History Operations', () => { + test('should work', () => { + expect(true).toBeTruthy(); + }); +}); diff --git a/code/client/tests/editor/domain/document/inputOperations.test.ts b/code/client/tests/editor/domain/document/inputOperations.test.ts new file mode 100644 index 00000000..932da32e --- /dev/null +++ b/code/client/tests/editor/domain/document/inputOperations.test.ts @@ -0,0 +1,100 @@ +import { describe, test, expect, beforeEach } from 'vitest'; +import { Fugue } from '@/domain/editor/crdt/fugue'; +import getInputOperations from '@/domain/editor/operations/input/operations'; +import { InputDomainOperations } from '@/domain/editor/operations/input/types'; +import { mockCommunication } from '@tests/mocks/mockCommunication'; + +describe('Input Operations', () => { + const communication = mockCommunication(); + let fugue: Fugue; + let inputOperations: InputDomainOperations; + + beforeEach(() => { + fugue = new Fugue(); + inputOperations = getInputOperations(fugue, communication); + }); + + test('should insert character', () => { + // given + const cursor = { line: 0, column: 0 }; + + // when + inputOperations.insertCharacter('a', cursor); + + // then + expect(fugue.toString()).toEqual('a'); + }); + + test('should insert line break', () => { + // given + const cursor = { line: 0, column: 0 }; + + // when + inputOperations.insertLineBreak(cursor); + + // then + expect(fugue.toString()).toEqual('\n'); + }); + + test('should delete character', () => { + // given + const cursor1 = { line: 0, column: 0 }; + const cursor2 = { line: 0, column: 1 }; + inputOperations.insertCharacter('a', cursor1); + + // when + inputOperations.deleteCharacter(cursor2); + + // then + expect(fugue.toString()).toEqual(''); + }); + + test('should delete by selection', () => { + // given + const cursor1 = { line: 0, column: 0 }; + const cursor2 = { line: 0, column: 1 }; + const cursor3 = { line: 0, column: 2 }; + inputOperations.insertCharacter('a', cursor1); + inputOperations.insertCharacter('b', cursor2); + + // when + inputOperations.deleteSelection({ start: cursor1, end: cursor3 }); + + // then + expect(fugue.toString()).toEqual(''); + }); + + test('should delete word', () => { + // given + const text = 'hello world'; + const cursor1 = { line: 0, column: text.length }; + const cursor2 = { line: 0, column: 0 }; + + // when + text.split('').forEach((char, index) => { + inputOperations.insertCharacter(char, { line: 0, column: index }); + }); + inputOperations.deleteWord(cursor1, true); + + // then + expect(fugue.toString()).toEqual('hello '); + + // when + inputOperations.deleteWord(cursor2, false); + + // then + expect(fugue.toString()).toEqual(' '); + }); + + test('should paste text', () => { + // given + const text = 'hello world\nthis is a test\n'; + const cursor = { line: 0, column: 0 }; + + // when + inputOperations.pasteText(cursor, text); + + // then + expect(fugue.toString()).toEqual(text); + }); +}); diff --git a/code/client/tests/editor/domain/document/markdownOperations.test.ts b/code/client/tests/editor/domain/document/markdownOperations.test.ts new file mode 100644 index 00000000..bf708ebf --- /dev/null +++ b/code/client/tests/editor/domain/document/markdownOperations.test.ts @@ -0,0 +1,73 @@ +import { describe, test, expect, beforeEach } from 'vitest'; +import { Fugue } from '@domain/editor/crdt/fugue'; +import getMarkdownOperations from '@/domain/editor/operations/markdown/operations'; +import { mockCommunication } from '@tests/mocks/mockCommunication'; +import { MarkdownDomainOperations } from '@/domain/editor/operations/markdown/types'; +import { toSlate } from '@domain/editor/slate/utils/slate'; + +describe('Markdown Operations', () => { + const communication = mockCommunication(); + let fugue: Fugue; + let markdownOperations: MarkdownDomainOperations; + + beforeEach(() => { + fugue = new Fugue(); + markdownOperations = getMarkdownOperations(fugue, communication); + }); + + test('should apply block style to line', () => { + // when + markdownOperations.applyBlockStyle('heading-one', 0); + + // then + expect(toSlate(fugue)).toEqual([{ type: 'heading-one', children: [{ text: '' }] }]); + }); + + test('should apply inline style to selection', () => { + // given + const text = 'abc\ndef'; + const cursor = { line: 0, column: 0 }; + const selection = { start: cursor, end: { line: 1, column: 2 } }; + fugue.insertLocal(cursor, ...text.split('')); + + // when + markdownOperations.applyInlineStyle('bold', selection, true); + + // then + expect(toSlate(fugue)).toEqual([ + { type: 'paragraph', children: [{ text: 'abc', bold: true }] }, + { type: 'paragraph', children: [{ text: 'de', bold: true }, { text: 'f' }] }, + ]); + }); + + test('should reset block styles by selection', () => { + // given + const text = 'abc\ndef'; + const cursor1 = { line: 0, column: 0 }; + const cursor2 = { line: 0, column: 1 }; + const selection1 = { start: cursor1, end: { line: 1, column: 2 } }; + const selection2 = { start: cursor2, end: { line: 1, column: 2 } }; + + // when + fugue.insertLocal(cursor1, ...text.split('')); + markdownOperations.applyBlockStyle('heading-one', 0); + markdownOperations.applyBlockStyle('list-item', 1); + markdownOperations.deleteBlockStyles(selection1); + + // then + expect(toSlate(fugue)).toEqual([ + { type: 'paragraph', children: [{ text: 'abc' }] }, + { type: 'paragraph', children: [{ text: 'def' }] }, + ]); + + // when + markdownOperations.applyBlockStyle('heading-two', 0); + markdownOperations.deleteBlockStyles(selection2); + + // then + expect(toSlate(fugue)).toEqual([ + { type: 'heading-two', children: [{ text: 'abc' }] }, + { type: 'paragraph', children: [{ text: 'def' }] }, + ]); + }); +}); diff --git a/code/client/tests/editor/slate/SlateEditor.test.tsx b/code/client/tests/editor/slate/SlateEditor.test.tsx index 65bbddcb..30f524a8 100644 --- a/code/client/tests/editor/slate/SlateEditor.test.tsx +++ b/code/client/tests/editor/slate/SlateEditor.test.tsx @@ -1,27 +1,21 @@ -import { describe, it, expect, beforeEach } from 'vitest'; -import { render, screen } from '../../test-utils'; -import { CommunicationProvider } from '@editor/contexts/CommunicationContext'; -import SlateEditor from '@editor/slate/SlateEditor'; - -const EDITOR_PLACEHOLDER = 'Start writing...'; -const mockHandler = () => {}; +import { describe, test, expect, beforeEach } from 'vitest'; +import { render, screen } from '@tests/test-utils'; +import { mockCommunication } from '../../mocks/mockCommunication'; +import Editor from '@/ui/pages/document/components/editor/Editor'; +import { Fugue } from '@/domain/editor/crdt/fugue'; describe('SlateEditor', () => { + const fugue = new Fugue(); let editor: HTMLElement; beforeEach(async () => { - const { findByTestId } = render( - <CommunicationProvider emit={mockHandler} emitChunked={mockHandler} on={mockHandler} off={mockHandler}> - <SlateEditor /> - </CommunicationProvider> - ); - editor = await findByTestId('editor'); // calls 'act' under the hood, but is more readable + const { findByTestId } = render(<Editor fugue={fugue} communication={mockCommunication()} />); + editor = await findByTestId('editor'); editor.focus(); }); - it('should render the editor', async () => { + test('should render the editor', async () => { const documentTitle = screen.getByPlaceholderText('Untitled'); expect(documentTitle).toBeInTheDocument(); - expect(editor).toHaveTextContent(EDITOR_PLACEHOLDER); }); }); diff --git a/code/client/tests/editor/slate/handlers/history/cut.test.ts b/code/client/tests/editor/slate/handlers/history/cut.test.ts new file mode 100644 index 00000000..a58ac31d --- /dev/null +++ b/code/client/tests/editor/slate/handlers/history/cut.test.ts @@ -0,0 +1,125 @@ +import { describe, test, expect, beforeEach } from 'vitest'; +import { BaseRemoveTextOperation, Editor } from 'slate'; +import { Fugue } from '@domain/editor/crdt/fugue'; +import { + removeText, + mockEditor, + toBatch, + applyBatch, + getUndoOperations, + getRedoOperations, + removeNode, +} from '@tests/editor/slate/handlers/history/utils'; +import { toSlate } from '@domain/editor/slate/utils/slate'; +import { InsertTextOperation, RemoveTextOperation } from '@domain/editor/operations/history/types'; +import { pointToCursor } from '@domain/editor/slate/utils/selection'; +import { nodeInsert } from '@domain/editor/crdt/utils'; + +let editor: Editor; +let fugue: Fugue; + +beforeEach(() => { + editor = mockEditor(); + fugue = new Fugue(); +}); + +describe('Single line', () => { + describe('Single style', () => { + const cutSingleLine = () => { + fugue.insertLocal({ line: 0, column: 0 }, ...'abcdef'.split('')); + editor.children = toSlate(fugue); + + const batch = toBatch(removeText('abcdef', [0, 0], 0)); + applyBatch(editor, batch); + }; + + beforeEach(cutSingleLine); + + test('Should undo cut', () => { + const { operations } = getUndoOperations(editor, 1); + + const operation = operations[0] as InsertTextOperation; + + expect(operation.text).toStrictEqual('abcdef'.split('')); + expect(operation.cursor).toEqual({ line: 0, column: 0 }); + }); + + test('Should redo cut', () => { + const { operations, editorBatch } = getRedoOperations(editor, 1); + + const operation = operations[0] as RemoveTextOperation; + const editorOperation = editorBatch!.operations[0] as BaseRemoveTextOperation; + + expect(operation.selection).toEqual({ + start: pointToCursor(editor, { path: editorOperation.path, offset: 0 }), + end: pointToCursor(editor, { + path: editorOperation.path, + offset: editorOperation.offset + editorOperation.text.length - 1, + }), + }); + }); + }); + + describe('Multiple styles', () => { + const cutMultipleStyles = () => { + fugue.insertLocal({ line: 0, column: 0 }, ...'abc'.split('')); + fugue.insertLocal({ line: 0, column: 3 }, nodeInsert('text', ['bold']), nodeInsert('text', ['italic'])); + editor.children = toSlate(fugue); + + const batch = toBatch( + removeText('abc', [0, 0], 0), + removeText('text', [0, 1], 0), + removeNode({ text: '' }, [0, 1]), + removeText('text', [0, 2], 0), + removeNode({ text: '' }, [0, 2]) + ); + editor.history.undos = [batch]; + }; + + beforeEach(cutMultipleStyles); + + test('Should undo cut', () => { + const { operations, editorBatch } = getUndoOperations(editor, 3); // remove node op. with empty text are ignored + + const editorOperations = editorBatch!.operations.filter( + op => op.type === 'remove_text' + ) as BaseRemoveTextOperation[]; + + for (const i in operations) { + const operation = operations[i] as InsertTextOperation; + const editorOperation = editorOperations[i]; + + expect(operation.text).toStrictEqual(editorOperation.text.split('')); + expect(operation.cursor).toEqual( + pointToCursor(editor, { path: editorOperation.path, offset: editorOperation.offset }) + ); + } + }); + + test('Should redo cut', () => { + const { operations, editorBatch } = getRedoOperations(editor, 3); + + const editorOperations = editorBatch!.operations.filter( + op => op.type === 'remove_text' + ) as BaseRemoveTextOperation[]; + + for (const i in operations) { + const operation = operations[i] as RemoveTextOperation; + const editorOperation = editorOperations[i]; + + expect(operation.selection).toEqual({ + start: pointToCursor(editor, { path: editorOperation.path, offset: editorOperation.offset }), + end: pointToCursor(editor, { + path: editorOperation.path, + offset: editorOperation.offset + editorOperation.text.length - 1, + }), + }); + } + }); + }); +}); + +// describe('Multiple lines', () => { +// +// +// }); diff --git a/code/client/tests/editor/slate/handlers/history/delete-text.test.ts b/code/client/tests/editor/slate/handlers/history/delete-text.test.ts new file mode 100644 index 00000000..cac19563 --- /dev/null +++ b/code/client/tests/editor/slate/handlers/history/delete-text.test.ts @@ -0,0 +1,137 @@ +import { describe, beforeEach, expect, test } from 'vitest'; +import { BaseInsertTextOperation, BaseSetNodeOperation, Editor } from 'slate'; +import { Fugue } from '@domain/editor/crdt/fugue'; +import { + applyBatch, + removeText, + getRedoOperations, + getUndoOperations, + mockEditor, + removeNode, + setNode, + toBatch, +} from '@tests/editor/slate/handlers/history/utils'; +import { toSlate } from '@domain/editor/slate/utils/slate'; +import { + InsertTextOperation, + RemoveTextOperation, + SetNodeOperation, + UnsetNodeOperation, +} from '@domain/editor/operations/history/types'; +import { pointToCursor } from '@domain/editor/slate/utils/selection'; +import { BlockStyles } from '@notespace/shared/types/styles'; + +let editor: Editor; +let fugue: Fugue; + +beforeEach(() => { + editor = mockEditor(); + fugue = new Fugue(); +}); + +describe('No style', () => { + const setup = () => { + fugue.insertLocal({ line: 0, column: 0 }, ...'abc'.split('')); + editor.children = toSlate(fugue); + + const batch = toBatch(removeText('a', [0, 0], 0)); + + applyBatch(editor, batch); + }; + + beforeEach(setup); + + test('should undo delete', () => { + const { operations, editorBatch } = getUndoOperations(editor, 1); + for (const i in operations) { + const op = operations[i] as InsertTextOperation; + const editorOp = editorBatch!.operations[i] as BaseInsertTextOperation; + expect(op.type).toBe('insert_text'); + + expect(op.cursor).toEqual(pointToCursor(editor, { path: editorOp.path, offset: editorOp.offset })); + } + }); + + test('should redo delete', () => { + const { operations } = getRedoOperations(editor, 1); + for (const i in operations) { + const op = operations[i] as RemoveTextOperation; + const editorOp = editor.history!.redos[0].operations[i] as BaseInsertTextOperation; + expect(operations[i].type).toBe('remove_text'); + + expect(op.selection).toEqual({ + start: pointToCursor(editor, { path: editorOp.path, offset: editorOp.offset }), + end: pointToCursor(editor, { path: editorOp.path, offset: editorOp.offset + editorOp.text.length - 1 }), + }); + } + }); +}); + +describe('Block Style', () => { + const deleteBlock = () => { + fugue.insertLocal({ line: 0, column: 0 }, 'abc'); + editor.children = toSlate(fugue); + + const batch = toBatch(setNode({ type: BlockStyles.h1 }, { type: BlockStyles.p }, [0])); + applyBatch(editor, batch); + }; + + beforeEach(deleteBlock); + + test('should undo remove block style', () => { + const { operations, editorBatch } = getUndoOperations(editor, 1); + const op = operations[0] as UnsetNodeOperation; + const editorOp = editorBatch!.operations[0] as BaseSetNodeOperation; + + expect(op.selection).toEqual({ + start: pointToCursor(editor, { path: editorOp.path, offset: 0 }), + end: pointToCursor(editor, { path: editorOp.path, offset: 0 }), + }); + }); + + test('should redo remove block style', () => { + const { operations } = getRedoOperations(editor, 1); + for (const i in operations) { + const op = operations[i] as SetNodeOperation; + const editorOp = editor.history!.redos[0].operations[i] as BaseSetNodeOperation; + expect(operations[i].type).toBe('set_node'); + + expect(op.selection).toEqual({ + start: pointToCursor(editor, { path: editorOp.path, offset: 0 }), + end: pointToCursor(editor, { path: editorOp.path, offset: 0 }), + }); + } + }); +}); + +describe('Inline Style', () => { + const deleteInline = () => { + fugue.insertLocal({ line: 0, column: 0 }, 'a'); + editor.children = toSlate(fugue); + + const batch = toBatch(removeText('b', [0, 1], 0), removeNode({ text: '', bold: true }, [0, 1])); + editor.history.undos = [batch]; + }; + + beforeEach(deleteInline); + + test('should undo remove inline style', () => { + const { operations, editorBatch } = getUndoOperations(editor, 1); // remove node op. with empty text + const op = operations[0] as InsertTextOperation; + const editorOp = editorBatch!.operations[0] as BaseInsertTextOperation; + + expect(op.cursor).toEqual(pointToCursor(editor, { path: editorOp.path, offset: editorOp.offset })); + }); + + test('should redo remove inline style', () => { + const { operations } = getRedoOperations(editor, 1); + + const op = operations[0] as RemoveTextOperation; + const editorOp = editor.history!.redos[0].operations[0] as BaseInsertTextOperation; + + expect(op.selection).toEqual({ + start: pointToCursor(editor, { path: editorOp.path, offset: editorOp.offset }), + end: pointToCursor(editor, { path: editorOp.path, offset: editorOp.offset + editorOp.text.length - 1 }), + }); + }); +}); diff --git a/code/client/tests/editor/slate/handlers/history/insert-text.test.ts b/code/client/tests/editor/slate/handlers/history/insert-text.test.ts new file mode 100644 index 00000000..c0b969dc --- /dev/null +++ b/code/client/tests/editor/slate/handlers/history/insert-text.test.ts @@ -0,0 +1,143 @@ +import { describe, test, beforeEach, expect } from 'vitest'; +import { + applyBatch, + getRedoOperations, + getUndoOperations, + insertNode, + insertText, + mockEditor, + setNode, + toBatch, +} from '@tests/editor/slate/handlers/history/utils'; +import { Fugue } from '@domain/editor/crdt/fugue'; +import { toSlate } from '@domain/editor/slate/utils/slate'; +import { + InsertNodeOperation, + InsertTextOperation, + RemoveNodeOperation, + RemoveTextOperation, + SetNodeOperation, + UnsetNodeOperation, +} from '@domain/editor/operations/history/types'; +import { + BaseInsertNodeOperation, + BaseInsertTextOperation, + BaseRemoveTextOperation, + BaseSetNodeOperation, + Editor, +} from 'slate'; +import { pointToCursor } from '@domain/editor/slate/utils/selection'; +import { BlockStyles } from '@notespace/shared/types/styles'; + +let editor: Editor; +let fugue: Fugue; + +beforeEach(() => { + editor = mockEditor(); + fugue = new Fugue(); +}); + +describe('No style', () => { + const insertAtEmpty = () => { + fugue.insertLocal({ line: 0, column: 0 }, ''); + editor.children = toSlate(fugue); + const batch = toBatch(insertText('a', [0, 0], 0), insertText('b', [0, 0], 1), insertText('c', [0, 0], 2)); + applyBatch(editor, batch); + }; + + beforeEach(insertAtEmpty); + + test('Should undo insert', () => { + const { operations, editorBatch } = getUndoOperations(editor, 3); + for (const i in operations) { + const op = operations[i] as RemoveTextOperation; + const editorOp = editorBatch!.operations[i] as BaseRemoveTextOperation; + expect(operations[i].type).toBe('remove_text'); + + expect(op.selection).toEqual({ + start: pointToCursor(editor, { path: editorOp.path, offset: editorOp.offset }), + end: pointToCursor(editor, { path: editorOp.path, offset: editorOp.offset }), + }); + } + }); + + test('Should redo insert', () => { + const { operations, editorBatch } = getRedoOperations(editor, 3); + for (const i in operations) { + const op = operations[i] as InsertTextOperation; + const editorOp = editorBatch!.operations[i] as BaseInsertTextOperation; + expect(operations[i].type).toBe('insert_text'); + expect(op.cursor).toEqual(pointToCursor(editor, { path: editorOp.path, offset: editorOp.offset })); + } + }); +}); + +describe('Block style', () => { + const insertBlockAtEmpty = () => { + fugue.insertLocal({ line: 0, column: 0 }, ''); + editor.children = toSlate(fugue); + const batch = toBatch(setNode({ type: BlockStyles.p }, { type: BlockStyles.h1 }, [0])); + editor.history.undos = [batch]; + }; + + beforeEach(insertBlockAtEmpty); + + test('Should undo insert block', () => { + const { operations, editorBatch } = getUndoOperations(editor, 1); + + const op = operations[0] as UnsetNodeOperation; + const editorOp = editorBatch!.operations[0] as BaseSetNodeOperation; + expect(operations[0].type).toBe('unset_node'); + expect(op.properties).toBe(editorOp.newProperties); + }); + + test('Should redo insert block', () => { + const { operations } = getRedoOperations(editor, 1); + + const op = operations[0] as SetNodeOperation; + const editorOp = editor.history!.redos[0].operations[0] as BaseSetNodeOperation; + expect(operations[0].type).toBe('set_node'); + expect(op.properties.type).toBe(editorOp.properties.type); + }); +}); + +describe('Inline style', () => { + describe('Empty line', () => { + const insertInlineAtEmpty = () => { + fugue.insertLocal({ line: 0, column: 0 }, ''); + editor.children = toSlate(fugue); + const batch = toBatch( + insertNode({ text: 'a', bold: true }, [0, 0]), + insertText('b', [0, 0], 1), + insertText('c', [0, 0], 2) + ); + applyBatch(editor, batch); + }; + + beforeEach(insertInlineAtEmpty); + + test('Should undo insert text', () => { + const { operations, editorBatch } = getUndoOperations(editor, 3); + + const nodeInsertOp = operations[0] as RemoveNodeOperation; + const editorNodeOp = editorBatch!.operations[0] as BaseInsertNodeOperation; + + expect(nodeInsertOp.node.text).toBe(editorNodeOp.node.text); + expect(nodeInsertOp.node.bold).toBe(editorNodeOp.node.bold); + expect(nodeInsertOp.selection).toEqual({ + start: pointToCursor(editor, { path: editorNodeOp.path, offset: 0 }), + end: pointToCursor(editor, { path: editorNodeOp.path, offset: 0 + editorNodeOp.node.text.length - 1 }), + }); + }); + + test('Should redo insert text', () => { + const { operations, editorBatch } = getRedoOperations(editor, 3); + + const nodeInsertOp = operations[0] as InsertNodeOperation; + const editorNodeOp = editorBatch!.operations[0] as BaseInsertNodeOperation; + + expect(nodeInsertOp.node.text).toBe(editorNodeOp.node.text); + expect(nodeInsertOp.node.bold).toBe(editorNodeOp.node.bold); + }); + }); +}); diff --git a/code/client/tests/editor/slate/handlers/history/line-op.test.ts b/code/client/tests/editor/slate/handlers/history/line-op.test.ts new file mode 100644 index 00000000..034cdba0 --- /dev/null +++ b/code/client/tests/editor/slate/handlers/history/line-op.test.ts @@ -0,0 +1,73 @@ +import {describe, test, expect, beforeEach} from "vitest"; +import {BaseMergeNodeOperation, BaseSplitNodeOperation, Editor} from "slate"; +import {Fugue} from "@domain/editor/crdt/fugue"; +import { + getRedoOperations, + getUndoOperations, + mockEditor, + splitNode, + toBatch +} from "@tests/editor/slate/handlers/history/utils"; +import {toSlate} from "@domain/editor/slate/utils/slate"; +import {BlockStyles} from "@notespace/shared/types/styles"; +import {MergeNodeOperation, SplitNodeOperation} from "@domain/editor/operations/history/types"; +import {pointToCursor} from "@domain/editor/slate/utils/selection"; + +let editor : Editor +let fugue : Fugue + +beforeEach(() => { + editor = mockEditor(); + fugue = new Fugue(); +}); + +describe('Insert line', () => { + + const insertLine = () => { + // when + fugue.insertLocal({ line: 0, column: 0 }, ...'abcdef'.split('')); + fugue.insertLocal({ line: 0, column: 6 }, '\n'); + editor.children = toSlate(fugue); + const batch = toBatch( + splitNode({}, [0, 0], 0), + splitNode({type: BlockStyles.p}, [0], 1) + ); + batch.selectionBefore = {anchor: {path: [0, 0], offset: 6}, focus: {path:[0, 0], offset: 6}}; + editor.history.undos = [batch]; + } + + beforeEach(insertLine); + + test('Should undo paste', () => { + const {operations, editorBatch } = getUndoOperations(editor, 1); + + const operation = operations[0] as MergeNodeOperation + const editorOperation = editorBatch?.operations[1] as BaseMergeNodeOperation; + + expect(operation.cursor).toEqual( + pointToCursor(editor, {path: [editorOperation.path[0] + 1, 0], offset: 0}) + ); + + }); + + test('Should redo paste', () => { + const {operations, editorBatch } = getRedoOperations(editor, 1); + + const operation = operations[0] as SplitNodeOperation; + const editorOperation = editorBatch?.operations[1] as BaseSplitNodeOperation; + + expect(operation.cursor).toEqual( + pointToCursor(editor, {path: editorOperation.path, offset: editorBatch?.selectionBefore!.anchor.offset || 0}) + ); + }); + +}); + +describe('Delete Line', () => { + test('Should undo delete', () => { + + }); + test('Should redo delete', () => { + + }); +}); \ No newline at end of file diff --git a/code/client/tests/editor/slate/handlers/history/paste.test.ts b/code/client/tests/editor/slate/handlers/history/paste.test.ts new file mode 100644 index 00000000..f1ea8a6e --- /dev/null +++ b/code/client/tests/editor/slate/handlers/history/paste.test.ts @@ -0,0 +1,71 @@ +import {describe, test, expect, beforeEach} from "vitest"; +import {BaseInsertTextOperation, Editor} from "slate"; +import {Fugue} from "@domain/editor/crdt/fugue"; +import { + applyBatch, getRedoOperations, + getUndoOperations, insertText, + mockEditor, + toBatch +} from "@tests/editor/slate/handlers/history/utils"; +import {toSlate} from "@domain/editor/slate/utils/slate"; +import {InsertTextOperation, RemoveTextOperation} from "@domain/editor/operations/history/types"; +import {pointToCursor} from "@domain/editor/slate/utils/selection"; + +let editor : Editor +let fugue : Fugue + +beforeEach(() => { + editor = mockEditor(); + fugue = new Fugue(); +}); + +describe('Single line', () => { + + describe('Single style', () => { + const pasteSingleLine = () => { + fugue.insertLocal({line: 0, column: 0}, ...'abcdef'.split('')); + editor.children = toSlate(fugue); + + const batch = toBatch( + insertText('abcdef', [0,0], 0) + ); + applyBatch(editor, batch); + } + + beforeEach(pasteSingleLine); + + test('Should undo paste', () => { + const { operations, editorBatch } = getUndoOperations(editor, 1); + + const operation = operations[0] as RemoveTextOperation; + const editorOperation = editorBatch?.operations[0] as BaseInsertTextOperation; + + + expect(operation.selection).toEqual({ + start: pointToCursor(editor, {path: editorOperation.path, offset: 0}), + end: pointToCursor(editor, {path: editorOperation.path, offset: editorOperation.offset + editorOperation.text.length - 1}), + }); + }); + + test('Should redo paste', () => { + const { operations, editorBatch } = getRedoOperations(editor, 1); + + const operation = operations[0] as InsertTextOperation; + const editorOperation = editorBatch!.operations[0] as BaseInsertTextOperation; + + expect(operation.cursor).toEqual( + pointToCursor(editor, {path: editorOperation.path, offset: 0}), + ); + }); + }); + + + // describe('Multiple styles', () => { + // + // }); + +}); + +// describe('Multi line', () => { +// +// }); \ No newline at end of file diff --git a/code/client/tests/editor/slate/handlers/history/utils.ts b/code/client/tests/editor/slate/handlers/history/utils.ts new file mode 100644 index 00000000..0f8f8f65 --- /dev/null +++ b/code/client/tests/editor/slate/handlers/history/utils.ts @@ -0,0 +1,97 @@ +import { withHistory } from 'slate-history'; +import { + BaseOperation, + Editor, + InsertNodeOperation, + InsertTextOperation, + MergeNodeOperation, + Node, + Path, + RemoveNodeOperation, + RemoveTextOperation, + SetNodeOperation, + SplitNodeOperation, +} from 'slate'; +import { Batch, toHistoryOperations } from '@domain/editor/slate/handlers/history/toHistoryOperations'; +import { buildEditor } from '@/domain/editor/slate/utils/slate'; +import { withReact } from 'slate-react'; +import { last } from 'lodash'; +import { expect } from 'vitest'; + +export const mockEditor = () => { + return buildEditor(withReact, withHistory); +}; + +export const applyBatch = (editor: any, batch: Batch) => { + for (const operation of batch.operations) { + editor.apply(operation); + } +}; + +export const toBatch = (...operations: BaseOperation[]): Batch => { + return { + operations: operations, + selectionBefore: null, + }; +}; + +export const insertText = (text: string, path: Path, offset: number): InsertTextOperation => { + return { type: 'insert_text', path, offset, text }; +}; + +export const removeText = (text: string, path: Path, offset: number): RemoveTextOperation => ({ + type: 'remove_text', + path, + offset, + text, +}); + +export const insertNode = (node: Node, path: Path): InsertNodeOperation => ({ type: 'insert_node', path, node }); + +export const removeNode = (node: Node, path: Path): RemoveNodeOperation => ({ type: 'remove_node', node, path }); + +export const splitNode = (properties: Partial<Node>, path: Path, position: number): SplitNodeOperation => ({ + type: 'split_node', + path, + properties, + position, +}); + +export const mergeNode = (properties: Partial<Node>, path: Path, position: number): MergeNodeOperation => ({ + type: 'merge_node', + path, + properties, + position, +}); + +export const setNode = (properties: Partial<Node>, newProperties: Partial<Node>, path: Path): SetNodeOperation => ({ + type: 'set_node', + path, + properties, + newProperties, +}); + +export function getUndoOperations(editor: Editor, n: number) { + const editorBatch = last(editor.history.undos); + + // Then + expect(editorBatch).toBeDefined(); + + // When + const operations = toHistoryOperations(editor, editorBatch, true); // undo - true, redo - false + + // Then + expect(operations.length).toBe(n); + return { operations, editorBatch }; +} + +export function getRedoOperations(editor: Editor, n: number) { + editor.undo(); + + const editorBatch = last(editor.history.redos); + const operations = toHistoryOperations(editor, editorBatch, false); // undo - true, redo - false + + // Then + expect(operations.length).toBe(n); + return { operations, editorBatch }; +} diff --git a/code/client/tests/editor/slate/operations/Deletions.test.tsx b/code/client/tests/editor/slate/operations/Deletions.test.tsx index 723f13ed..41258d13 100644 --- a/code/client/tests/editor/slate/operations/Deletions.test.tsx +++ b/code/client/tests/editor/slate/operations/Deletions.test.tsx @@ -1,5 +1,5 @@ -import { describe, it, expect, beforeEach } from 'vitest'; -import { userEvent } from '../../../test-utils'; +import { describe, test, expect, beforeEach } from 'vitest'; +import { userEvent } from '@tests/test-utils'; import { setupEditor } from '../utils'; const EDITOR_PLACEHOLDER = 'Start writing...'; @@ -12,7 +12,7 @@ describe('Deletions', () => { editor = editorElement; }); - it('should allow for text to be deleted', async () => { + test('should allow for text to be deleted', async () => { const text = 'abc'; await userEvent.type(editor, text); await userEvent.type(editor, '{backspace}'); @@ -22,14 +22,14 @@ describe('Deletions', () => { expect(editor).toHaveTextContent(EDITOR_PLACEHOLDER); }); - it('should allow for text to be cut', async () => { + test('should allow for text to be cut', async () => { const text = 'abc'; await userEvent.type(editor, text); await userEvent.type(editor, '{selectall}{cut}'); expect(editor).toHaveTextContent(EDITOR_PLACEHOLDER); }); - it('should allow for text to be selected', async () => { + test('should allow for text to be selected', async () => { const text = 'abc'; await userEvent.type(editor, text); await userEvent.type(editor, '{selectall}'); diff --git a/code/client/tests/editor/slate/operations/Inserts.test.tsx b/code/client/tests/editor/slate/operations/Inserts.test.tsx index 0d5784d5..7bdfa5a7 100644 --- a/code/client/tests/editor/slate/operations/Inserts.test.tsx +++ b/code/client/tests/editor/slate/operations/Inserts.test.tsx @@ -1,5 +1,5 @@ -import { describe, it, expect, beforeEach } from 'vitest'; -import { userEvent } from '../../../test-utils'; +import { describe, test, expect, beforeEach } from 'vitest'; +import { userEvent } from '@tests/test-utils'; import { setupEditor } from '../utils'; describe('Inserts', () => { @@ -10,29 +10,29 @@ describe('Inserts', () => { editor = editorElement; }); - it('should display written text in the editor', async () => { + test('should display written text in the editor', async () => { await userEvent.type(editor, 'abc'); expect(editor).toHaveTextContent('abc'); }); - it('should allow to have multiple lines', async () => { + test('should allow to have multiple lines', async () => { await userEvent.type(editor, 'abc{enter}def'); expect(editor).toHaveTextContent('abc def'); }); - // it('should allow for text to be pasted', async () => { + // test('should allow for text to be pasted', async () => { // const text = 'Hello World!'; // await userEvent.paste(text); // await waitFor(() => expect(editor).toHaveTextContent(text)); // }); - // it('should allow to reload the page', async () => { + // test('should allow to reload the page', async () => { // await userEvent.type(editor, 'abc'); // document.location.reload(); // await waitFor(() => expect(editor).toHaveTextContent('')); // }); - // it('should allow to undo the last action', async () => { + // test('should allow to undo the last action', async () => { // await userEvent.type(editor, 'abc'); // abc // await userEvent.keyboard('{ctrl}z{/ctrl}'); // await waitFor(() => expect(editor).toHaveTextContent('')); // fails diff --git a/code/client/tests/editor/slate/toSlate.test.ts b/code/client/tests/editor/slate/toSlate.test.ts new file mode 100644 index 00000000..f904709f --- /dev/null +++ b/code/client/tests/editor/slate/toSlate.test.ts @@ -0,0 +1,42 @@ +import { describe, test, expect, beforeEach } from 'vitest'; +import { Fugue } from '@/domain/editor/crdt/fugue'; +import { Cursor, Selection } from '@notespace/shared/types/cursor'; +import { Descendant } from 'slate'; +import { toSlate } from '@domain/editor/slate/utils/slate'; + +describe('toSlate', () => { + let fugue: Fugue; + + beforeEach(() => { + fugue = new Fugue(); + }); + + test('should return empty descendants for an empty fugue tree', () => { + // when + const descendants: Descendant[] = toSlate(fugue); + + // then + expect(fugue.toString()).toEqual(''); + expect(descendants).toEqual([{ type: 'paragraph', children: [{ text: '' }] }]); + }); + + test('should return descendants based on fugue tree', () => { + // given + const cursor: Cursor = { line: 0, column: 0 }; + const selection: Selection = { start: cursor, end: { line: 0, column: 1 } }; + + // when + fugue.insertLocal(cursor, 'a', 'b', 'c', '\n', 'd', 'e', 'f', 'g'); + fugue.updateBlockStyleLocal(0, 'heading-one'); + fugue.updateBlockStyleLocal(1, 'list-item'); + fugue.updateInlineStyleLocal(selection, 'bold'); + const descendants: Descendant[] = toSlate(fugue); + + // then + expect(fugue.toString()).toEqual('abc\ndefg'); + expect(descendants).toEqual([ + { type: 'heading-one', children: [{ text: 'a', bold: true }, { text: 'bc' }] }, + { type: 'list-item', children: [{ text: 'defg' }] }, + ]); + }); +}); diff --git a/code/client/tests/editor/slate/utils.tsx b/code/client/tests/editor/slate/utils.tsx index 76bfe43b..821df7b5 100644 --- a/code/client/tests/editor/slate/utils.tsx +++ b/code/client/tests/editor/slate/utils.tsx @@ -1,14 +1,15 @@ -import { setup } from '../../test-utils'; -import SlateEditor from '../../../src/editor/slate/SlateEditor'; -import { Editor } from 'slate'; +import { setup } from '@tests/test-utils'; +import { mockCommunication } from '../../mocks/mockCommunication'; +import SlateEditor from '@/ui/pages/document/components/editor/Editor'; +import { Fugue } from '@/domain/editor/crdt/fugue'; /** * Sets up the editor for testing - * @param editor * @returns user and the slate editor */ -const setupEditor = async (editor?: Editor) => { - const { user, render } = setup(<SlateEditor editor={editor} />); +const setupEditor = async () => { + const fugue = new Fugue(); + const { user, render } = setup(<SlateEditor fugue={fugue} communication={mockCommunication()} />); const { findByTestId } = render; const editorElement = await findByTestId('editor'); // calls 'act' under the hood, but is more readable editorElement.focus(); @@ -19,7 +20,6 @@ const setupEditor = async (editor?: Editor) => { * Cleans up the editor after testing */ const cleanupEditor = async () => { - // cleanup const editor = document.querySelector('[data-testid="editable"]'); if (editor) editor.innerHTML = ''; }; diff --git a/code/client/tests/mocks/mock-handlers.ts b/code/client/tests/mocks/mock-handlers.ts new file mode 100644 index 00000000..d6d1738d --- /dev/null +++ b/code/client/tests/mocks/mock-handlers.ts @@ -0,0 +1 @@ +export default []; diff --git a/code/client/tests/mocks/mock-server.ts b/code/client/tests/mocks/mock-server.ts new file mode 100644 index 00000000..ab15ce3f --- /dev/null +++ b/code/client/tests/mocks/mock-server.ts @@ -0,0 +1,4 @@ +import handlers from './mock-handlers'; +import { mockServer } from '@tests/mocks/global-mocks'; + +export const server = mockServer(...handlers); diff --git a/code/client/tests/mocks/mockCommunication.ts b/code/client/tests/mocks/mockCommunication.ts new file mode 100644 index 00000000..08edd448 --- /dev/null +++ b/code/client/tests/mocks/mockCommunication.ts @@ -0,0 +1,19 @@ +import { Communication } from '@/domain/communication/communication'; + +export function mockCommunication(): Communication { + return { + socket: { + emit: () => {}, + on: () => {}, + off: () => {}, + connect: () => {}, + disconnect: () => {}, + }, + http: { + get: async () => ({ nodes: [], title: '' }), + post: async () => {}, + put: async () => {}, + delete: async () => {}, + }, + }; +} diff --git a/code/server/tests/conflict-resolution/crdt.test.ts b/code/server/tests/conflict-resolution/crdt.test.ts index a5931fa7..2564f159 100644 --- a/code/server/tests/conflict-resolution/crdt.test.ts +++ b/code/server/tests/conflict-resolution/crdt.test.ts @@ -39,12 +39,7 @@ afterAll(done => { }); describe('Operations must be commutative', () => { - beforeEach(async () => { - const response = await request(app).delete('/document'); - expect(response.status).toBe(200); - }); - - it('insert operations should be commutative', async () => { + test('insert operations should be commutative', async () => { const insert1: InsertOperation = { type: 'insert', id: { sender: 'A', counter: 0 }, @@ -59,12 +54,23 @@ describe('Operations must be commutative', () => { parent: { sender: 'root', counter: 0 }, side: 'R', }; + // create a document + const createdResponse = await request(app).post('/documents'); + expect(createdResponse.status).toBe(201); + const id = createdResponse.body.id; + + // clients join the document + client1.emit('joinDocument', id); + client2.emit('joinDocument', id); + // client 1 inserts 'a' and client 2 inserts 'b' client1.emit('operation', [insert1]); client2.emit('operation', [insert2]); await new Promise(resolve => setTimeout(resolve, 500)); - const response = await request(app).get('/document'); + + // get the document + const response = await request(app).get('/documents/' + id); expect(response.status).toBe(200); const nodes = response.body.nodes as Nodes<string>; tree.setTree(nodes); @@ -73,9 +79,7 @@ describe('Operations must be commutative', () => { }); describe('Operations must be idempotent', () => { - beforeEach(async () => { - const response = await request(app).delete('/document'); - expect(response.status).toBe(200); + test('delete operations should be idempotent', async () => { const insert1: InsertOperation = { type: 'insert', id: { sender: 'A', counter: 0 }, @@ -90,13 +94,22 @@ describe('Operations must be idempotent', () => { parent: { sender: 'root', counter: 0 }, side: 'R', }; + + // create a document + const createdResponse = await request(app).post('/documents'); + expect(createdResponse.status).toBe(201); + const id = createdResponse.body.id; + + // clients join the document + client1.emit('joinDocument', id); + client2.emit('joinDocument', id); + // both clients insert 'a' client1.emit('operation', [insert1]); client2.emit('operation', [insert2]); - await new Promise(resolve => setTimeout(resolve, 100)); - }); - it('delete operations should be idempotent', done => { + await new Promise(resolve => setTimeout(resolve, 500)); + const delete1: DeleteOperation = { type: 'delete', id: { sender: 'B', counter: 0 }, @@ -105,12 +118,11 @@ describe('Operations must be idempotent', () => { client1.emit('operation', [delete1]); client2.emit('operation', [delete1]); - setTimeout(async () => { - const response = await request(app).get('/document'); - const nodes = response.body.nodes as Nodes<string>; - tree.setTree(nodes); - expect(tree.toString()).toBe('a'); - done(); - }, 500); + await new Promise(resolve => setTimeout(resolve, 500)); + + const response = await request(app).get('/documents/' + id); + const nodes = response.body.nodes as Nodes<string>; + tree.setTree(nodes); + expect(tree.toString()).toBe('a'); }); }); From 1646e0828a49b9ca915c41eba5d8d822eff1a84c Mon Sep 17 00:00:00 2001 From: Guilherme_F <guilherme.ferreira120703@gmail.com> Date: Fri, 3 May 2024 14:53:36 +0100 Subject: [PATCH 3/6] Fixes --- code/client/dev-dist/registerSW.js | 1 - .../tests/conflict-resolution/crdt.test.ts | 128 ------------------ .../domain/document/fugueOperations.test.ts | 27 +++- code/shared/package.json | 8 +- 4 files changed, 24 insertions(+), 140 deletions(-) delete mode 100644 code/client/dev-dist/registerSW.js delete mode 100644 code/client/tests/conflict-resolution/crdt.test.ts diff --git a/code/client/dev-dist/registerSW.js b/code/client/dev-dist/registerSW.js deleted file mode 100644 index fdeaac12..00000000 --- a/code/client/dev-dist/registerSW.js +++ /dev/null @@ -1 +0,0 @@ -if('serviceWorker' in navigator) navigator.serviceWorker.register('/dev-sw.js?dev-sw', { scope: '/', type: 'module' }) \ No newline at end of file diff --git a/code/client/tests/conflict-resolution/crdt.test.ts b/code/client/tests/conflict-resolution/crdt.test.ts deleted file mode 100644 index 2564f159..00000000 --- a/code/client/tests/conflict-resolution/crdt.test.ts +++ /dev/null @@ -1,128 +0,0 @@ -import * as http from 'http'; -import { io, Socket } from 'socket.io-client'; -import { InsertOperation, DeleteOperation } from '@notespace/shared/crdt/types/operations'; -import { Nodes } from '@notespace/shared/crdt/types/nodes'; -import { FugueTree } from '@notespace/shared/crdt/FugueTree'; -import request = require('supertest'); -import { Server } from 'socket.io'; -import server from '../../src/server'; - -const { app, onConnectionHandler } = server; -const PORT = process.env.PORT || 8080; -const BASE_URL = `http://localhost:${PORT}`; -let ioServer: Server; -let httpServer: http.Server; -let client1: Socket; -let client2: Socket; -const tree = new FugueTree(); - -beforeAll(done => { - httpServer = http.createServer(app); - ioServer = new Server(httpServer); - - ioServer.on('connection', onConnectionHandler); - httpServer.listen(PORT, () => { - client1 = io(BASE_URL); - client2 = io(BASE_URL); - done(); - }); -}); - -afterAll(done => { - ioServer.off('connection', onConnectionHandler); - ioServer.close(() => { - client1.close(); - client2.close(); - httpServer.close(); - done(); - }); -}); - -describe('Operations must be commutative', () => { - test('insert operations should be commutative', async () => { - const insert1: InsertOperation = { - type: 'insert', - id: { sender: 'A', counter: 0 }, - value: 'a', - parent: { sender: 'root', counter: 0 }, - side: 'R', - }; - const insert2: InsertOperation = { - type: 'insert', - id: { sender: 'B', counter: 0 }, - value: 'b', - parent: { sender: 'root', counter: 0 }, - side: 'R', - }; - // create a document - const createdResponse = await request(app).post('/documents'); - expect(createdResponse.status).toBe(201); - const id = createdResponse.body.id; - - // clients join the document - client1.emit('joinDocument', id); - client2.emit('joinDocument', id); - - // client 1 inserts 'a' and client 2 inserts 'b' - client1.emit('operation', [insert1]); - client2.emit('operation', [insert2]); - - await new Promise(resolve => setTimeout(resolve, 500)); - - // get the document - const response = await request(app).get('/documents/' + id); - expect(response.status).toBe(200); - const nodes = response.body.nodes as Nodes<string>; - tree.setTree(nodes); - expect(tree.toString()).toBe('ab'); - }); -}); - -describe('Operations must be idempotent', () => { - test('delete operations should be idempotent', async () => { - const insert1: InsertOperation = { - type: 'insert', - id: { sender: 'A', counter: 0 }, - value: 'a', - parent: { sender: 'root', counter: 0 }, - side: 'R', - }; - const insert2: InsertOperation = { - type: 'insert', - id: { sender: 'B', counter: 0 }, - value: 'a', - parent: { sender: 'root', counter: 0 }, - side: 'R', - }; - - // create a document - const createdResponse = await request(app).post('/documents'); - expect(createdResponse.status).toBe(201); - const id = createdResponse.body.id; - - // clients join the document - client1.emit('joinDocument', id); - client2.emit('joinDocument', id); - - // both clients insert 'a' - client1.emit('operation', [insert1]); - client2.emit('operation', [insert2]); - - await new Promise(resolve => setTimeout(resolve, 500)); - - const delete1: DeleteOperation = { - type: 'delete', - id: { sender: 'B', counter: 0 }, - }; - // both clients want to delete the same 'a' - client1.emit('operation', [delete1]); - client2.emit('operation', [delete1]); - - await new Promise(resolve => setTimeout(resolve, 500)); - - const response = await request(app).get('/documents/' + id); - const nodes = response.body.nodes as Nodes<string>; - tree.setTree(nodes); - expect(tree.toString()).toBe('a'); - }); -}); diff --git a/code/client/tests/editor/domain/document/fugueOperations.test.ts b/code/client/tests/editor/domain/document/fugueOperations.test.ts index ba2870c9..ecb788a3 100644 --- a/code/client/tests/editor/domain/document/fugueOperations.test.ts +++ b/code/client/tests/editor/domain/document/fugueOperations.test.ts @@ -9,7 +9,7 @@ import { import getFugueOperations from '@/domain/editor/operations/fugue/operations'; import { FugueDomainOperations } from '@/domain/editor/operations/fugue/types'; import { Document } from '@notespace/shared/crdt/types/document'; -import { Node } from '@notespace/shared/crdt/types/nodes'; +import { Node, RootNode } from '@notespace/shared/crdt/types/nodes'; import { rootNode, treeNode } from '@notespace/shared/crdt/utils'; describe('Fugue Operations', () => { @@ -86,21 +86,34 @@ describe('Fugue Operations', () => { test('should initialize document', () => { // given - const root: Node<string> = rootNode(); + const root: RootNode<string> = rootNode(); const node1: Node<string> = treeNode({ sender: 'A', counter: 0 }, 'a', root.id, 'R', 1); const node2: Node<string> = treeNode({ sender: 'A', counter: 1 }, 'b', node1.id, 'R', 2); root.rightChildren = [node1.id]; node1.rightChildren = [node2.id]; const document: Document = { + id: 'test', title: 'test', - nodes: { - root: [root], - A: [node1, node2], - }, + operations: [ + { + type: 'insert', + id: { sender: 'xyz', counter: 0 }, + value: 'a', + parent: { sender: 'root', counter: 0 }, + side: 'R', + }, + { + type: 'insert', + id: { sender: 'xyz', counter: 1 }, + value: 'b', + parent: { sender: 'xyz', counter: 0 }, + side: 'R', + }, + ] }; // when - fugueOperations.initDocument(document); + fugueOperations.applyOperations(document.operations); // then expect(fugue.toString()).toEqual('ab'); diff --git a/code/shared/package.json b/code/shared/package.json index 14e08dc6..0e9dad3c 100644 --- a/code/shared/package.json +++ b/code/shared/package.json @@ -12,11 +12,11 @@ "license": "MIT", "devDependencies": { "@types/lodash": "^4.17.0", - "@types/node": "^20.12.7", - "@typescript-eslint/eslint-plugin": "^7.7.0", - "@typescript-eslint/parser": "^7.7.0", + "@types/node": "^20.12.8", + "@typescript-eslint/eslint-plugin": "^7.8.0", + "@typescript-eslint/parser": "^7.8.0", "eslint": "^8.57.0", - "knip": "^5.9.4", + "knip": "^5.12.0", "prettier": "^3.2.5", "typescript": "^5.4.5" }, From c56cf6cd6fcbaabab5070c26e8e5888662a99142 Mon Sep 17 00:00:00 2001 From: Guilherme_F <guilherme.ferreira120703@gmail.com> Date: Fri, 3 May 2024 18:48:16 +0100 Subject: [PATCH 4/6] Updates --- code/client/package.json | 8 ++--- code/client/src/domain/editor/crdt/fugue.ts | 6 ---- code/client/src/domain/editor/crdt/types.ts | 2 +- .../editor/operations/fugue/operations.ts | 1 - .../domain/document/fugueOperations.test.ts | 18 ++-------- .../src/database/firestore/operations.ts | 35 ++++++++----------- code/shared/crdt/types/document.ts | 1 - code/shared/crdt/types/nodes.ts | 2 +- code/shared/package.json | 8 ++--- 9 files changed, 28 insertions(+), 53 deletions(-) diff --git a/code/client/package.json b/code/client/package.json index 4daafd29..cff271b1 100644 --- a/code/client/package.json +++ b/code/client/package.json @@ -20,7 +20,7 @@ }, "dependencies": { "@notespace/shared": "file:..\\shared", - "@testing-library/jest-dom": "^6.4.3", + "@testing-library/jest-dom": "^6.4.4", "dotenv": "^16.4.5", "eslint-plugin-playwright": "^1.6.0", "lodash": "^4.17.21", @@ -49,8 +49,8 @@ "@typescript-eslint/parser": "^7.8.0", "@vite-pwa/assets-generator": "^0.2.4", "@vitejs/plugin-react": "^4.2.1", - "@vitest/coverage-v8": "^1.5.3", - "@vitest/ui": "^1.5.3", + "@vitest/coverage-v8": "^1.6.0", + "@vitest/ui": "^1.6.0", "eslint": "^8.57.0", "eslint-config-prettier": "^9.1.0", "eslint-plugin-import": "^2.29.1", @@ -66,7 +66,7 @@ "vite": "^5.2.11", "vite-plugin-qrcode": "^0.2.3", "vite-tsconfig-paths": "^4.3.2", - "vitest": "^1.5.3" + "vitest": "^1.6.0" }, "packageManager": "pnpm@9.0.6+sha256.0624e30eff866cdeb363b15061bdb7fd9425b17bc1bb42c22f5f4efdea21f6b3" } diff --git a/code/client/src/domain/editor/crdt/fugue.ts b/code/client/src/domain/editor/crdt/fugue.ts index c0c81ce1..0c8ca5a7 100644 --- a/code/client/src/domain/editor/crdt/fugue.ts +++ b/code/client/src/domain/editor/crdt/fugue.ts @@ -51,12 +51,6 @@ export class Fugue { } } - - - - - - /** * Inserts the given values starting from the given index. * @param cursor diff --git a/code/client/src/domain/editor/crdt/types.ts b/code/client/src/domain/editor/crdt/types.ts index 237a38ef..103ae281 100644 --- a/code/client/src/domain/editor/crdt/types.ts +++ b/code/client/src/domain/editor/crdt/types.ts @@ -1,5 +1,5 @@ import { type InlineStyle } from '@notespace/shared/types/styles'; -import { NodeType } from '@notespace/shared/crdt/utils'; +import { NodeType } from '@notespace/shared/crdt/types/nodes'; export type NodeInsert = { value: string; diff --git a/code/client/src/domain/editor/operations/fugue/operations.ts b/code/client/src/domain/editor/operations/fugue/operations.ts index aacc181e..bc8d1714 100644 --- a/code/client/src/domain/editor/operations/fugue/operations.ts +++ b/code/client/src/domain/editor/operations/fugue/operations.ts @@ -2,7 +2,6 @@ import { Fugue } from '@/domain/editor/crdt/fugue'; import { FugueDomainOperations } from '@/domain/editor/operations/fugue/types'; export default (fugue: Fugue): FugueDomainOperations => { - return { applyOperations: (operations) => fugue.applyOperations(operations) }; diff --git a/code/client/tests/editor/domain/document/fugueOperations.test.ts b/code/client/tests/editor/domain/document/fugueOperations.test.ts index ecb788a3..b77e3022 100644 --- a/code/client/tests/editor/domain/document/fugueOperations.test.ts +++ b/code/client/tests/editor/domain/document/fugueOperations.test.ts @@ -95,21 +95,9 @@ describe('Fugue Operations', () => { id: 'test', title: 'test', operations: [ - { - type: 'insert', - id: { sender: 'xyz', counter: 0 }, - value: 'a', - parent: { sender: 'root', counter: 0 }, - side: 'R', - }, - { - type: 'insert', - id: { sender: 'xyz', counter: 1 }, - value: 'b', - parent: { sender: 'xyz', counter: 0 }, - side: 'R', - }, - ] + { type: 'insert', ...node1, parent: root.id, styles: []}, + { type: 'insert', ...node2, parent: node1.id, styles: []}, + ], }; // when diff --git a/code/server/src/database/firestore/operations.ts b/code/server/src/database/firestore/operations.ts index 7c762c93..1670ebfb 100644 --- a/code/server/src/database/firestore/operations.ts +++ b/code/server/src/database/firestore/operations.ts @@ -37,37 +37,32 @@ export default function DocumentFirestoreDatabase(): DocumentDatabase { } async function getDocument(id: string): Promise<DocumentStorageData> { - const doc = await documents.doc(id).get() - if (!doc.exists) { - throw new NotFoundError(`Document with id ${id} not found`); - } - return doc.data() as DocumentStorageData; + const doc = await getDoc(id) + return (await doc.get()).data() as DocumentStorageData; } async function deleteDocument(id: string) { - const doc = await documents.doc(id).get(); - if (!doc.exists) { - throw new NotFoundError(`Document with id ${id} not found`); - } - await documents.doc(id).delete(); + const doc = await getDoc(id) + await doc.delete(); } async function updateDocument(id: string, newOperations: Operation[]) { - try{ - const doc = documents.doc(id) - await doc.update({operations: FieldValue.arrayUnion(newOperations)}) - } catch (e) { - throw new NotFoundError(`Document with id ${id} not found`); - } + const doc = await getDoc(id) + await doc.update({operations: FieldValue.arrayUnion(newOperations)}) } async function updateTitle(id: string, title: string) { - try{ - const doc = await documents.doc(id) - await doc.update({title}) - }catch (e){ + const doc = await getDoc(id) + await doc.update({title}) + } + + async function getDoc(id: string) { + const query = documents.where('id', '==', id); + const data = (await query.get()) + if (data.empty) { throw new NotFoundError(`Document with id ${id} not found`); } + return data.docs[0].ref; } return { diff --git a/code/shared/crdt/types/document.ts b/code/shared/crdt/types/document.ts index 6ae9bacd..bd778144 100644 --- a/code/shared/crdt/types/document.ts +++ b/code/shared/crdt/types/document.ts @@ -12,4 +12,3 @@ export type Document = DocumentData & { export type DocumentStorageData = DocumentData & { operations: Operation[]; }; - diff --git a/code/shared/crdt/types/nodes.ts b/code/shared/crdt/types/nodes.ts index 816d87dd..ba4027a9 100644 --- a/code/shared/crdt/types/nodes.ts +++ b/code/shared/crdt/types/nodes.ts @@ -19,7 +19,7 @@ export type Id = { */ export type Node<T> = { id: Id; - value: T | null; + value: T; isDeleted: boolean; parent: Id | null; side: "L" | "R"; diff --git a/code/shared/package.json b/code/shared/package.json index 0e9dad3c..14e08dc6 100644 --- a/code/shared/package.json +++ b/code/shared/package.json @@ -12,11 +12,11 @@ "license": "MIT", "devDependencies": { "@types/lodash": "^4.17.0", - "@types/node": "^20.12.8", - "@typescript-eslint/eslint-plugin": "^7.8.0", - "@typescript-eslint/parser": "^7.8.0", + "@types/node": "^20.12.7", + "@typescript-eslint/eslint-plugin": "^7.7.0", + "@typescript-eslint/parser": "^7.7.0", "eslint": "^8.57.0", - "knip": "^5.12.0", + "knip": "^5.9.4", "prettier": "^3.2.5", "typescript": "^5.4.5" }, From 0a8e246c58e6477b29ce274494b05233fb185cd8 Mon Sep 17 00:00:00 2001 From: Guilherme_F <guilherme.ferreira120703@gmail.com> Date: Sat, 4 May 2024 18:29:54 +0100 Subject: [PATCH 5/6] Fixes --- .gitignore | 1 + code/client/package.json | 6 +- code/client/src/domain/editor/crdt/fugue.ts | 30 ++--- code/client/src/domain/editor/crdt/types.ts | 2 +- .../editor/operations/fugue/operations.ts | 2 +- .../handlers/history/toHistoryOperations.ts | 46 +++----- .../domain/document/fugueOperations.test.ts | 4 +- .../slate/handlers/history/line-op.test.ts | 102 ++++++++-------- .../slate/handlers/history/paste.test.ts | 109 +++++++++--------- code/client/tsconfig.json | 2 +- code/client/tsconfig.node.json | 2 +- code/client/vite.config.ts | 2 +- code/server/bun.lockb | Bin 0 -> 324857 bytes code/server/package.json | 13 +-- .../src/database/firestore/operations.ts | 16 +-- code/server/src/services/documentService.ts | 3 +- .../tests/conflict-resolution/crdt.test.ts | 12 +- .../server/tests/conflict-resolution/utils.ts | 39 +++++++ code/server/tsconfig.json | 2 +- code/shared/bun.lockb | Bin 0 -> 73375 bytes code/shared/crdt/FugueTree.ts | 27 +---- code/shared/crdt/utils.ts | 2 +- code/shared/package.json | 3 +- 23 files changed, 206 insertions(+), 219 deletions(-) create mode 100644 code/server/bun.lockb create mode 100644 code/server/tests/conflict-resolution/utils.ts create mode 100644 code/shared/bun.lockb diff --git a/.gitignore b/.gitignore index 008a032a..f12c7031 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ pnpm-lock.yaml *.env coverage +/code/client/bun.lockb diff --git a/code/client/package.json b/code/client/package.json index cff271b1..f43c5a9b 100644 --- a/code/client/package.json +++ b/code/client/package.json @@ -20,7 +20,7 @@ }, "dependencies": { "@notespace/shared": "file:..\\shared", - "@testing-library/jest-dom": "^6.4.4", + "@testing-library/jest-dom": "^6.4.5", "dotenv": "^16.4.5", "eslint-plugin-playwright": "^1.6.0", "lodash": "^4.17.21", @@ -39,7 +39,7 @@ "@testing-library/dom": "^10.1.0", "@testing-library/react": "^15.0.6", "@testing-library/user-event": "^14.5.2", - "@types/lodash": "^4.17.0", + "@types/lodash": "^4.17.1", "@types/node": "^20.12.8", "@types/react": "^18.3.1", "@types/react-dom": "^18.3.0", @@ -59,7 +59,7 @@ "eslint-plugin-react-hooks": "^4.6.2", "eslint-plugin-react-refresh": "^0.4.6", "jsdom": "^24.0.0", - "knip": "^5.12.0", + "knip": "^5.12.2", "prettier": "^3.2.5", "sass": "^1.76.0", "typescript": "^5.4.5", diff --git a/code/client/src/domain/editor/crdt/fugue.ts b/code/client/src/domain/editor/crdt/fugue.ts index 0c8ca5a7..507f6af0 100644 --- a/code/client/src/domain/editor/crdt/fugue.ts +++ b/code/client/src/domain/editor/crdt/fugue.ts @@ -9,7 +9,8 @@ import { BlockStyleOperation, DeleteOperation, InlineStyleOperation, - InsertOperation, Operation, + InsertOperation, + Operation, ReviveOperation, } from '@notespace/shared/crdt/types/operations'; @@ -32,7 +33,7 @@ export class Fugue { switch (operation.type) { case 'insert': this.insertRemote(operation); - break; + break; case 'delete': this.deleteRemote(operation); break; @@ -87,9 +88,7 @@ export class Fugue { const id = { sender: this.replicaId, counter: this.counter++ }; const lineNode = this.tree.getLineRoot(line); - const leftOrigin = column === 0 - ? lineNode - : this.getNodeByCursor({ line, column })!; + const leftOrigin = column === 0 ? lineNode : this.getNodeByCursor({ line, column })!; if (isEmpty(leftOrigin.rightChildren)) { return { type: 'insert', id, value, parent: leftOrigin.id, side: 'R', styles }; @@ -107,10 +106,9 @@ export class Fugue { * @param styles */ private addNode({ id, value, parent, side, styles }: InsertOperation) { - if(value === '\n') { + if (value === '\n') { this.tree.addLineRoot(id, value, parent, side, styles); - } - else { + } else { this.tree.addNode(id, value, parent, side, styles); } } @@ -130,9 +128,7 @@ export class Fugue { */ deleteLocalByCursor(cursor: Cursor) { const node = - cursor.line > 0 && cursor.column === 0 - ? this.tree.getLineRoot(cursor.line) - : this.getNodeByCursor(cursor); + cursor.line > 0 && cursor.column === 0 ? this.tree.getLineRoot(cursor.line) : this.getNodeByCursor(cursor); if (node) return this.deleteLocalById(node.id); } @@ -175,9 +171,7 @@ export class Fugue { */ reviveLocalByCursor(cursor: Cursor) { const node = - cursor.line > 0 && cursor.column === 0 - ? this.tree.getLineRoot(cursor.line) - : this.getNodeByCursor(cursor); + cursor.line > 0 && cursor.column === 0 ? this.tree.getLineRoot(cursor.line) : this.getNodeByCursor(cursor); if (node) return this.reviveNode(node.id); } @@ -301,9 +295,7 @@ export class Fugue { if (node.value === '\n') { lineCounter++; } - columnCounter = node.value === '\n' - ? 0 - : columnCounter + 1; + columnCounter = node.value === '\n' ? 0 : columnCounter + 1; // end condition if (lineCounter === end.line && columnCounter === end.column) break; } @@ -328,9 +320,7 @@ export class Fugue { : { start: { line, column }, end: { line, column: Infinity } }; const nodesInSelection = Array.from(this.traverseBySelection(selection)); - const elements = reverse - ? nodesInSelection.reverse() - : nodesInSelection; + const elements = reverse ? nodesInSelection.reverse() : nodesInSelection; const nodes: FugueNode[] = []; for (const node of elements) { if (node.value === separator && last(nodes)?.value !== separator) { diff --git a/code/client/src/domain/editor/crdt/types.ts b/code/client/src/domain/editor/crdt/types.ts index 103ae281..3d292cc9 100644 --- a/code/client/src/domain/editor/crdt/types.ts +++ b/code/client/src/domain/editor/crdt/types.ts @@ -6,4 +6,4 @@ export type NodeInsert = { styles: InlineStyle[]; }; -export type FugueNode = NodeType<string> +export type FugueNode = NodeType<string>; diff --git a/code/client/src/domain/editor/operations/fugue/operations.ts b/code/client/src/domain/editor/operations/fugue/operations.ts index bc8d1714..a10c609a 100644 --- a/code/client/src/domain/editor/operations/fugue/operations.ts +++ b/code/client/src/domain/editor/operations/fugue/operations.ts @@ -3,6 +3,6 @@ import { FugueDomainOperations } from '@/domain/editor/operations/fugue/types'; export default (fugue: Fugue): FugueDomainOperations => { return { - applyOperations: (operations) => fugue.applyOperations(operations) + applyOperations: operations => fugue.applyOperations(operations), }; }; diff --git a/code/client/src/domain/editor/slate/handlers/history/toHistoryOperations.ts b/code/client/src/domain/editor/slate/handlers/history/toHistoryOperations.ts index 67370c6e..7ca5a9cc 100644 --- a/code/client/src/domain/editor/slate/handlers/history/toHistoryOperations.ts +++ b/code/client/src/domain/editor/slate/handlers/history/toHistoryOperations.ts @@ -47,11 +47,7 @@ export interface Batch { * @param operations * @param reverseType - if true, the reverse operation will be the same type as the last operation */ -function toHistoryOperations( - editor: Editor, - operations: Batch | undefined, - reverseType: boolean -): HistoryOperation[] { +function toHistoryOperations(editor: Editor, operations: Batch | undefined, reverseType: boolean): HistoryOperation[] { if (!operations) return []; /** @@ -75,17 +71,9 @@ function toHistoryOperations( case 'remove_node': return nodeOperation(operation as BaseRemoveNodeOperation, false); case 'merge_node': - return handleNodeOperation( - operation as BaseMergeNodeOperation, - selectionBefore?.anchor.offset, - true - ); + return handleNodeOperation(operation as BaseMergeNodeOperation, selectionBefore?.anchor.offset, true); case 'split_node': - return handleNodeOperation( - operation as BaseSplitNodeOperation, - selectionBefore?.anchor.offset, - false - ); + return handleNodeOperation(operation as BaseSplitNodeOperation, selectionBefore?.anchor.offset, false); case 'set_node': return setNodeOperation(operation as BaseSetNodeOperation, selectionBefore?.anchor.offset, true); case 'unset_node': @@ -172,16 +160,17 @@ function toHistoryOperations( ): MergeNodeOperation | SplitNodeOperation | undefined { if (!operation.properties.type) return undefined; - - return (merge_mode) ? { - type: 'merge_node', - cursor: pointToCursor(editor, { path: [operation.path[0] + 1, 0], offset: 0 }), - properties: operation.properties, - } : { - type: 'split_node', - cursor: pointToCursor(editor, { path: [operation.path[0], 0], offset: offset || 0 }), - properties: operation.properties, - } + return merge_mode + ? { + type: 'merge_node', + cursor: pointToCursor(editor, { path: [operation.path[0] + 1, 0], offset: 0 }), + properties: operation.properties, + } + : { + type: 'split_node', + cursor: pointToCursor(editor, { path: [operation.path[0], 0], offset: offset || 0 }), + properties: operation.properties, + }; } /** @@ -215,11 +204,10 @@ function toHistoryOperations( return operations.operations .map(operation => { const type: BaseOperation['type'] = operation.type; - const operationType = reverseType - ? getReverseType(type) - : (type as HistoryOperation['type']); + const operationType = reverseType ? getReverseType(type) : (type as HistoryOperation['type']); return toHistoryOperation(operationType, operations.selectionBefore, operation); - }).filter(operation => operation !== undefined) as HistoryOperation[]; + }) + .filter(operation => operation !== undefined) as HistoryOperation[]; } export { toHistoryOperations }; diff --git a/code/client/tests/editor/domain/document/fugueOperations.test.ts b/code/client/tests/editor/domain/document/fugueOperations.test.ts index b77e3022..5697c1ef 100644 --- a/code/client/tests/editor/domain/document/fugueOperations.test.ts +++ b/code/client/tests/editor/domain/document/fugueOperations.test.ts @@ -95,8 +95,8 @@ describe('Fugue Operations', () => { id: 'test', title: 'test', operations: [ - { type: 'insert', ...node1, parent: root.id, styles: []}, - { type: 'insert', ...node2, parent: node1.id, styles: []}, + { type: 'insert', ...node1, parent: root.id, styles: [] }, + { type: 'insert', ...node2, parent: node1.id, styles: [] }, ], }; diff --git a/code/client/tests/editor/slate/handlers/history/line-op.test.ts b/code/client/tests/editor/slate/handlers/history/line-op.test.ts index 034cdba0..a5010e9f 100644 --- a/code/client/tests/editor/slate/handlers/history/line-op.test.ts +++ b/code/client/tests/editor/slate/handlers/history/line-op.test.ts @@ -1,73 +1,61 @@ -import {describe, test, expect, beforeEach} from "vitest"; -import {BaseMergeNodeOperation, BaseSplitNodeOperation, Editor} from "slate"; -import {Fugue} from "@domain/editor/crdt/fugue"; +import { describe, test, expect, beforeEach } from 'vitest'; +import { BaseMergeNodeOperation, BaseSplitNodeOperation, Editor } from 'slate'; +import { Fugue } from '@domain/editor/crdt/fugue'; import { - getRedoOperations, - getUndoOperations, - mockEditor, - splitNode, - toBatch -} from "@tests/editor/slate/handlers/history/utils"; -import {toSlate} from "@domain/editor/slate/utils/slate"; -import {BlockStyles} from "@notespace/shared/types/styles"; -import {MergeNodeOperation, SplitNodeOperation} from "@domain/editor/operations/history/types"; -import {pointToCursor} from "@domain/editor/slate/utils/selection"; - -let editor : Editor -let fugue : Fugue + getRedoOperations, + getUndoOperations, + mockEditor, + splitNode, + toBatch, +} from '@tests/editor/slate/handlers/history/utils'; +import { toSlate } from '@domain/editor/slate/utils/slate'; +import { BlockStyles } from '@notespace/shared/types/styles'; +import { MergeNodeOperation, SplitNodeOperation } from '@domain/editor/operations/history/types'; +import { pointToCursor } from '@domain/editor/slate/utils/selection'; + +let editor: Editor; +let fugue: Fugue; beforeEach(() => { - editor = mockEditor(); - fugue = new Fugue(); + editor = mockEditor(); + fugue = new Fugue(); }); describe('Insert line', () => { + const insertLine = () => { + // when + fugue.insertLocal({ line: 0, column: 0 }, ...'abcdef'.split('')); + fugue.insertLocal({ line: 0, column: 6 }, '\n'); + editor.children = toSlate(fugue); + const batch = toBatch(splitNode({}, [0, 0], 0), splitNode({ type: BlockStyles.p }, [0], 1)); + batch.selectionBefore = { anchor: { path: [0, 0], offset: 6 }, focus: { path: [0, 0], offset: 6 } }; + editor.history.undos = [batch]; + }; - const insertLine = () => { - // when - fugue.insertLocal({ line: 0, column: 0 }, ...'abcdef'.split('')); - fugue.insertLocal({ line: 0, column: 6 }, '\n'); - editor.children = toSlate(fugue); - const batch = toBatch( - splitNode({}, [0, 0], 0), - splitNode({type: BlockStyles.p}, [0], 1) - ); - batch.selectionBefore = {anchor: {path: [0, 0], offset: 6}, focus: {path:[0, 0], offset: 6}}; - editor.history.undos = [batch]; - } - - beforeEach(insertLine); - - test('Should undo paste', () => { - const {operations, editorBatch } = getUndoOperations(editor, 1); - - const operation = operations[0] as MergeNodeOperation - const editorOperation = editorBatch?.operations[1] as BaseMergeNodeOperation; + beforeEach(insertLine); - expect(operation.cursor).toEqual( - pointToCursor(editor, {path: [editorOperation.path[0] + 1, 0], offset: 0}) - ); + test('Should undo paste', () => { + const { operations, editorBatch } = getUndoOperations(editor, 1); - }); + const operation = operations[0] as MergeNodeOperation; + const editorOperation = editorBatch?.operations[1] as BaseMergeNodeOperation; - test('Should redo paste', () => { - const {operations, editorBatch } = getRedoOperations(editor, 1); + expect(operation.cursor).toEqual(pointToCursor(editor, { path: [editorOperation.path[0] + 1, 0], offset: 0 })); + }); - const operation = operations[0] as SplitNodeOperation; - const editorOperation = editorBatch?.operations[1] as BaseSplitNodeOperation; + test('Should redo paste', () => { + const { operations, editorBatch } = getRedoOperations(editor, 1); - expect(operation.cursor).toEqual( - pointToCursor(editor, {path: editorOperation.path, offset: editorBatch?.selectionBefore!.anchor.offset || 0}) - ); - }); + const operation = operations[0] as SplitNodeOperation; + const editorOperation = editorBatch?.operations[1] as BaseSplitNodeOperation; + expect(operation.cursor).toEqual( + pointToCursor(editor, { path: editorOperation.path, offset: editorBatch?.selectionBefore!.anchor.offset || 0 }) + ); + }); }); describe('Delete Line', () => { - test('Should undo delete', () => { - - }); - test('Should redo delete', () => { - - }); -}); \ No newline at end of file + test('Should undo delete', () => {}); + test('Should redo delete', () => {}); +}); diff --git a/code/client/tests/editor/slate/handlers/history/paste.test.ts b/code/client/tests/editor/slate/handlers/history/paste.test.ts index f1ea8a6e..b91d8779 100644 --- a/code/client/tests/editor/slate/handlers/history/paste.test.ts +++ b/code/client/tests/editor/slate/handlers/history/paste.test.ts @@ -1,71 +1,68 @@ -import {describe, test, expect, beforeEach} from "vitest"; -import {BaseInsertTextOperation, Editor} from "slate"; -import {Fugue} from "@domain/editor/crdt/fugue"; +import { describe, test, expect, beforeEach } from 'vitest'; +import { BaseInsertTextOperation, Editor } from 'slate'; +import { Fugue } from '@domain/editor/crdt/fugue'; import { - applyBatch, getRedoOperations, - getUndoOperations, insertText, - mockEditor, - toBatch -} from "@tests/editor/slate/handlers/history/utils"; -import {toSlate} from "@domain/editor/slate/utils/slate"; -import {InsertTextOperation, RemoveTextOperation} from "@domain/editor/operations/history/types"; -import {pointToCursor} from "@domain/editor/slate/utils/selection"; - -let editor : Editor -let fugue : Fugue + applyBatch, + getRedoOperations, + getUndoOperations, + insertText, + mockEditor, + toBatch, +} from '@tests/editor/slate/handlers/history/utils'; +import { toSlate } from '@domain/editor/slate/utils/slate'; +import { InsertTextOperation, RemoveTextOperation } from '@domain/editor/operations/history/types'; +import { pointToCursor } from '@domain/editor/slate/utils/selection'; + +let editor: Editor; +let fugue: Fugue; beforeEach(() => { - editor = mockEditor(); - fugue = new Fugue(); + editor = mockEditor(); + fugue = new Fugue(); }); describe('Single line', () => { + describe('Single style', () => { + const pasteSingleLine = () => { + fugue.insertLocal({ line: 0, column: 0 }, ...'abcdef'.split('')); + editor.children = toSlate(fugue); + + const batch = toBatch(insertText('abcdef', [0, 0], 0)); + applyBatch(editor, batch); + }; + + beforeEach(pasteSingleLine); + + test('Should undo paste', () => { + const { operations, editorBatch } = getUndoOperations(editor, 1); + + const operation = operations[0] as RemoveTextOperation; + const editorOperation = editorBatch?.operations[0] as BaseInsertTextOperation; + + expect(operation.selection).toEqual({ + start: pointToCursor(editor, { path: editorOperation.path, offset: 0 }), + end: pointToCursor(editor, { + path: editorOperation.path, + offset: editorOperation.offset + editorOperation.text.length - 1, + }), + }); + }); - describe('Single style', () => { - const pasteSingleLine = () => { - fugue.insertLocal({line: 0, column: 0}, ...'abcdef'.split('')); - editor.children = toSlate(fugue); - - const batch = toBatch( - insertText('abcdef', [0,0], 0) - ); - applyBatch(editor, batch); - } - - beforeEach(pasteSingleLine); - - test('Should undo paste', () => { - const { operations, editorBatch } = getUndoOperations(editor, 1); - - const operation = operations[0] as RemoveTextOperation; - const editorOperation = editorBatch?.operations[0] as BaseInsertTextOperation; - - - expect(operation.selection).toEqual({ - start: pointToCursor(editor, {path: editorOperation.path, offset: 0}), - end: pointToCursor(editor, {path: editorOperation.path, offset: editorOperation.offset + editorOperation.text.length - 1}), - }); - }); - - test('Should redo paste', () => { - const { operations, editorBatch } = getRedoOperations(editor, 1); + test('Should redo paste', () => { + const { operations, editorBatch } = getRedoOperations(editor, 1); - const operation = operations[0] as InsertTextOperation; - const editorOperation = editorBatch!.operations[0] as BaseInsertTextOperation; + const operation = operations[0] as InsertTextOperation; + const editorOperation = editorBatch!.operations[0] as BaseInsertTextOperation; - expect(operation.cursor).toEqual( - pointToCursor(editor, {path: editorOperation.path, offset: 0}), - ); - }); + expect(operation.cursor).toEqual(pointToCursor(editor, { path: editorOperation.path, offset: 0 })); }); + }); - - // describe('Multiple styles', () => { - // - // }); - + // describe('Multiple styles', () => { + // + // }); }); // describe('Multi line', () => { // -// }); \ No newline at end of file +// }); diff --git a/code/client/tsconfig.json b/code/client/tsconfig.json index fa24693c..9178d651 100644 --- a/code/client/tsconfig.json +++ b/code/client/tsconfig.json @@ -33,4 +33,4 @@ "include": ["src", "tests"], "exclude": ["vite.config.ts"], "references": [{ "path": "./tsconfig.node.json" }] -} \ No newline at end of file +} diff --git a/code/client/tsconfig.node.json b/code/client/tsconfig.node.json index 04d68eb3..8501422e 100644 --- a/code/client/tsconfig.node.json +++ b/code/client/tsconfig.node.json @@ -7,4 +7,4 @@ "allowImportingTsExtensions": true }, "include": ["vite.config.ts", "src/pwa/*"] -} \ No newline at end of file +} diff --git a/code/client/vite.config.ts b/code/client/vite.config.ts index 0d94f182..ec28d47f 100644 --- a/code/client/vite.config.ts +++ b/code/client/vite.config.ts @@ -24,4 +24,4 @@ export default defineConfig({ }, environment: 'jsdom', }, -}); \ No newline at end of file +}); diff --git a/code/server/bun.lockb b/code/server/bun.lockb new file mode 100644 index 0000000000000000000000000000000000000000..ab0d3bb574b71883279570264ec025718e79b119 GIT binary patch literal 324857 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 By5Il+ literal 0 HcmV?d00001 diff --git a/code/server/package.json b/code/server/package.json index eb75f9ec..b193e087 100644 --- a/code/server/package.json +++ b/code/server/package.json @@ -18,11 +18,10 @@ "dotenv": "^16.4.5", "express": "^4.19.2", "firebase-admin": "^12.1.0", - "firebase-admin": "^12.1.0", "lodash": "^4.17.21", - "uuid": "^9.0.1", "socket.io": "^4.7.5", - "supertest": "^6.3.4" + "supertest": "^6.3.4", + "uuid": "^9.0.1" }, "devDependencies": { "@babel/preset-env": "^7.24.5", @@ -30,7 +29,7 @@ "@types/cors": "^2.8.17", "@types/express": "^4.17.21", "@types/jest": "^29.5.12", - "@types/lodash": "^4.17.0", + "@types/lodash": "^4.17.1", "@types/node": "^20.12.8", "@types/supertest": "^6.0.2", "@types/uuid": "^9.0.8", @@ -40,14 +39,14 @@ "eslint": "^8.57.0", "express-promise-router": "^4.1.1", "jest": "^29.7.0", - "knip": "^5.12.0", + "knip": "^5.12.2", "prettier": "^3.2.5", "socket.io-client": "^4.7.5", "test-jest": "^1.0.1", "ts-jest": "^29.1.2", "tsconfig-paths": "^4.2.0", - "tsx": "^4.9.0", + "tsx": "^4.9.1", "typescript": "^5.4.5" }, "packageManager": "pnpm@9.0.6+sha256.0624e30eff866cdeb363b15061bdb7fd9425b17bc1bb42c22f5f4efdea21f6b3" -} \ No newline at end of file +} diff --git a/code/server/src/database/firestore/operations.ts b/code/server/src/database/firestore/operations.ts index 1670ebfb..4a7a7f0f 100644 --- a/code/server/src/database/firestore/operations.ts +++ b/code/server/src/database/firestore/operations.ts @@ -6,7 +6,7 @@ import { Document, DocumentData, DocumentStorageData } from '@notespace/shared/c import { v4 as uuid } from 'uuid'; import { NotFoundError } from '@domain/errors/errors'; import { Operation } from '@notespace/shared/crdt/types/operations'; -import {firestore} from "firebase-admin"; +import { firestore } from 'firebase-admin'; import FieldValue = firestore.FieldValue; export default function DocumentFirestoreDatabase(): DocumentDatabase { @@ -37,28 +37,28 @@ export default function DocumentFirestoreDatabase(): DocumentDatabase { } async function getDocument(id: string): Promise<DocumentStorageData> { - const doc = await getDoc(id) + const doc = await getDoc(id); return (await doc.get()).data() as DocumentStorageData; } async function deleteDocument(id: string) { - const doc = await getDoc(id) + const doc = await getDoc(id); await doc.delete(); } async function updateDocument(id: string, newOperations: Operation[]) { - const doc = await getDoc(id) - await doc.update({operations: FieldValue.arrayUnion(newOperations)}) + const doc = await getDoc(id); + await doc.update({ operations: FieldValue.arrayUnion(newOperations) }); } async function updateTitle(id: string, title: string) { - const doc = await getDoc(id) - await doc.update({title}) + const doc = await getDoc(id); + await doc.update({ title }); } async function getDoc(id: string) { const query = documents.where('id', '==', id); - const data = (await query.get()) + const data = await query.get(); if (data.empty) { throw new NotFoundError(`Document with id ${id} not found`); } diff --git a/code/server/src/services/documentService.ts b/code/server/src/services/documentService.ts index af8b4054..ae583276 100644 --- a/code/server/src/services/documentService.ts +++ b/code/server/src/services/documentService.ts @@ -1,9 +1,8 @@ import { DocumentDatabase, DocumentService } from '@src/types'; import { Document } from '@notespace/shared/crdt/types/document'; -import {Operation,} from '@notespace/shared/crdt/types/operations'; +import { Operation } from '@notespace/shared/crdt/types/operations'; export default function DocumentService(database: DocumentDatabase): DocumentService { - async function getDocuments() { return await database.getDocuments(); } diff --git a/code/server/tests/conflict-resolution/crdt.test.ts b/code/server/tests/conflict-resolution/crdt.test.ts index 2564f159..e10f9110 100644 --- a/code/server/tests/conflict-resolution/crdt.test.ts +++ b/code/server/tests/conflict-resolution/crdt.test.ts @@ -1,11 +1,12 @@ import * as http from 'http'; import { io, Socket } from 'socket.io-client'; -import { InsertOperation, DeleteOperation } from '@notespace/shared/crdt/types/operations'; +import {InsertOperation, DeleteOperation, Operation} from '@notespace/shared/crdt/types/operations'; import { Nodes } from '@notespace/shared/crdt/types/nodes'; import { FugueTree } from '@notespace/shared/crdt/FugueTree'; import request = require('supertest'); import { Server } from 'socket.io'; import server from '../../src/server'; +import {applyOperations} from "./utils"; const { app, onConnectionHandler } = server; const PORT = process.env.PORT || 8080; @@ -14,7 +15,7 @@ let ioServer: Server; let httpServer: http.Server; let client1: Socket; let client2: Socket; -const tree = new FugueTree(); +const tree = new FugueTree<string>(); beforeAll(done => { httpServer = http.createServer(app); @@ -72,8 +73,11 @@ describe('Operations must be commutative', () => { // get the document const response = await request(app).get('/documents/' + id); expect(response.status).toBe(200); - const nodes = response.body.nodes as Nodes<string>; - tree.setTree(nodes); + const operations = response.body.operations as Operation[]; + + // apply the operations to the tree + applyOperations(tree, operations); + expect(tree.toString()).toBe('ab'); }); }); diff --git a/code/server/tests/conflict-resolution/utils.ts b/code/server/tests/conflict-resolution/utils.ts new file mode 100644 index 00000000..f22fb231 --- /dev/null +++ b/code/server/tests/conflict-resolution/utils.ts @@ -0,0 +1,39 @@ +import {Operation} from "@notespace/shared/crdt/types/operations"; +import {FugueTree} from "@notespace/shared/crdt/FugueTree"; +import { treeNode } from "@notespace/shared/crdt/utils"; + +/** + * Applies the given operations to the tree + * @param tree the tree to apply the operations to + * @param operations the operations to apply + */ +export function applyOperations(tree : FugueTree<string>, operations: Operation[]) { + for (const operation of operations) { + switch (operation.type) { + case 'insert': + tree.addNode(treeNode( + operation.id, + operation.value, + operation.parent || tree.root.id, + operation.side, + 0, + [] + )); + break; + case 'delete': + tree.deleteNode(operation.id); + break; + case 'inline-style': + tree.updateInlineStyle(operation.id, operation.style, operation.value); + break; + case 'block-style': + tree.updateBlockStyle(operation.style, operation.line); + break; + case 'revive': + tree.reviveNode(operation.id); + break; + default: + throw new Error('Invalid operation type'); + } + } +} \ No newline at end of file diff --git a/code/server/tsconfig.json b/code/server/tsconfig.json index e7b1c091..8f1f2601 100644 --- a/code/server/tsconfig.json +++ b/code/server/tsconfig.json @@ -24,4 +24,4 @@ }, "include": ["src/**/*"], "files": ["src/types.d.ts"] -} \ No newline at end of file +} diff --git a/code/shared/bun.lockb b/code/shared/bun.lockb new file mode 100644 index 0000000000000000000000000000000000000000..d105b6be97786856979f9c09cfa8f36cbc0935cd GIT binary patch literal 73375 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 literal 0 HcmV?d00001 diff --git a/code/shared/crdt/FugueTree.ts b/code/shared/crdt/FugueTree.ts index e142eeff..df67d82e 100644 --- a/code/shared/crdt/FugueTree.ts +++ b/code/shared/crdt/FugueTree.ts @@ -31,15 +31,9 @@ export class FugueTree<T> { * @param side the side of the parent node where this node is located * @param styles the styles of the node */ - addNode( - id: Id, - value: T, - parent: Id, - side: "L" | "R", - styles?: InlineStyle[], - ) { + addNode({ id, value, parent, side, styles }: Node<T>) { // create node - const node = treeNode(id, value, parent, side, 0, styles); + const node = treeNode(id, value, parent, side, 0, styles as InlineStyle[]); // add to nodes map const senderNodes = this.nodes.get(id.sender) || []; @@ -53,9 +47,9 @@ export class FugueTree<T> { this.updateDepths(node, 1); } - addLineRoot(id: Id, value: T, parent: Id, side: "L" | "R", styles?: InlineStyle[]) { + addLineRoot({ id, value, parent, side, styles }: Node<T>){ // create node - const node = treeNode(id, value, parent, side, 0, styles); + const node = treeNode(id, value, parent, side, 0, styles as InlineStyle[]); this._root.value.push(node); // add to nodes map @@ -70,8 +64,6 @@ export class FugueTree<T> { this.updateDepths(node, 1); } - - /** * Inserts node among its same-side siblings, in lexicographic order by id.sender. * @param id the id of the node. @@ -190,10 +182,7 @@ export class FugueTree<T> { * @param returnDeleted * @returns an iterator over the nodes in the subtree. */ - *traverse( - root: NodeType<T>, - returnDeleted: boolean = false, - ): IterableIterator<NodeType<T>> { + *traverse(root: NodeType<T>, returnDeleted: boolean = false): IterableIterator<NodeType<T>> { let current = root; const stack: { side: "L" | "R"; childIndex: number }[] = [ { side: "L", childIndex: 0 }, @@ -230,12 +219,6 @@ export class FugueTree<T> { } } - reset() { - this._nodes.clear(); - this._root = rootNode(); - this._nodes.set("root", [this._root]); - } - toString() { return Array.from(this.traverse(this._root)) .map((node) => node.value) diff --git a/code/shared/crdt/utils.ts b/code/shared/crdt/utils.ts index c7ba3949..50a1c72a 100644 --- a/code/shared/crdt/utils.ts +++ b/code/shared/crdt/utils.ts @@ -20,7 +20,7 @@ export function rootNode<T>(): RootNode<T> { export function treeNode<T>( id: Id, value: T, - parent: Id, + parent: Id | null , side: "L" | "R", depth: number, styles: InlineStyle[] = [], diff --git a/code/shared/package.json b/code/shared/package.json index 14e08dc6..aab48126 100644 --- a/code/shared/package.json +++ b/code/shared/package.json @@ -22,6 +22,5 @@ }, "dependencies": { "lodash": "^4.17.21" - }, - "packageManager": "pnpm@9.0.6+sha256.0624e30eff866cdeb363b15061bdb7fd9425b17bc1bb42c22f5f4efdea21f6b3" + } } From 260c7c97ecaf4d0ff9b52c7b5e637f1198e4b4e7 Mon Sep 17 00:00:00 2001 From: Guilherme_F <guilherme.ferreira120703@gmail.com> Date: Mon, 6 May 2024 09:48:53 +0100 Subject: [PATCH 6/6] Added reports --- docs/reports/monthly.zip | Bin 13022 -> 0 bytes docs/reports/monthly/{ => apr}/April-report.md | 0 docs/reports/monthly/feb/February-report.md | 2 +- docs/reports/monthly/jul/July-report.md | 0 docs/reports/monthly/jun/June-report.md | 0 docs/reports/monthly/{ => mar}/March-report.md | 4 ++-- docs/reports/monthly/may/May-report.md | 0 7 files changed, 3 insertions(+), 3 deletions(-) delete mode 100644 docs/reports/monthly.zip rename docs/reports/monthly/{ => apr}/April-report.md (100%) create mode 100644 docs/reports/monthly/jul/July-report.md create mode 100644 docs/reports/monthly/jun/June-report.md rename docs/reports/monthly/{ => mar}/March-report.md (96%) create mode 100644 docs/reports/monthly/may/May-report.md diff --git a/docs/reports/monthly.zip b/docs/reports/monthly.zip deleted file mode 100644 index f5b1928ca383301fa7d4971389d82c20e5d4712f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13022 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 H|D63VvWEn_ diff --git a/docs/reports/monthly/April-report.md b/docs/reports/monthly/apr/April-report.md similarity index 100% rename from docs/reports/monthly/April-report.md rename to docs/reports/monthly/apr/April-report.md diff --git a/docs/reports/monthly/feb/February-report.md b/docs/reports/monthly/feb/February-report.md index 9d4008a4..f506367a 100644 --- a/docs/reports/monthly/feb/February-report.md +++ b/docs/reports/monthly/feb/February-report.md @@ -38,7 +38,7 @@ This socket connection will be used to send and receive changes to the editor, a Research on conflict resolution algorithms was started. The goal is to find a suitable algorithm that can be used to resolve conflicts in the live editor. -> More details on the conflict resolution algorithms can be found both in the [March report](../March-report.md) +> More details on the conflict resolution algorithms can be found both in the [March report](../mar/March-report.md) > and the [ConflictResolution](../../features/Editor.md#ConflictResolution) section. diff --git a/docs/reports/monthly/jul/July-report.md b/docs/reports/monthly/jul/July-report.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/reports/monthly/jun/June-report.md b/docs/reports/monthly/jun/June-report.md new file mode 100644 index 00000000..e69de29b diff --git a/docs/reports/monthly/March-report.md b/docs/reports/monthly/mar/March-report.md similarity index 96% rename from docs/reports/monthly/March-report.md rename to docs/reports/monthly/mar/March-report.md index 6018e943..da260d21 100644 --- a/docs/reports/monthly/March-report.md +++ b/docs/reports/monthly/mar/March-report.md @@ -1,7 +1,7 @@ # Notespace - March Report ## Introduction This is the March report for the Notespace project. This report will cover the progress made in March. -> For detailed information on the project structure, please refer to [project structure](../project-overview-report.md) report. +> For detailed information on the project structure, please refer to [project structure](../../project-overview-report.md) report. ## Project summary @@ -17,7 +17,7 @@ The following tasks have been completed: A draft for the project's proposal was built and research on conflict algorithms continued. In the end, a CRDT algorithm was chosen, and we started implementing it. The algorithm itself is called Fugue. > More details on the conflict resolution algorithms can be found in the -[ConflictResolution](../features/Editor.md#ConflictResolution) section. +[ConflictResolution](../../features/Editor.md#ConflictResolution) section. 2. ### Fugue CRDT implementation diff --git a/docs/reports/monthly/may/May-report.md b/docs/reports/monthly/may/May-report.md new file mode 100644 index 00000000..e69de29b