From 1b28a2cab7cee37845c3673113c9e55f14e8117b Mon Sep 17 00:00:00 2001 From: Gabriela Ueno Date: Thu, 16 May 2024 06:25:56 -0300 Subject: [PATCH] ASAP-446 Add manuscript (#4274) --- .pnp.cjs | 31 +++ ...-form-npm-7.51.4-e976742d97-b3587c2342.zip | Bin 0 -> 306989 bytes apps/crn-frontend/package.json | 1 + .../network/teams/ManuscriptToastProvider.tsx | 34 +++ .../src/network/teams/TeamManuscript.tsx | 38 +++ .../src/network/teams/TeamProfile.tsx | 113 ++++---- .../teams/__tests__/TeamManuscript.test.tsx | 104 ++++++++ .../teams/__tests__/TeamProfile.test.tsx | 58 +++- .../src/network/teams/__tests__/api.test.ts | 79 +++++- apps/crn-frontend/src/network/teams/api.ts | 47 ++++ apps/crn-frontend/src/network/teams/state.ts | 42 ++- .../src/network/teams/useManuscriptToast.tsx | 5 + apps/crn-server/src/app.ts | 18 ++ .../src/controllers/manuscript.controller.ts | 34 +++ .../contentful/manuscript.data-provider.ts | 62 +++++ .../src/data-providers/types/index.ts | 1 + .../types/manuscript.data-provider.types.ts | 12 + .../crn-server/src/routes/manuscript.route.ts | 43 +++ .../src/validation/manuscript.validation.ts | 33 +++ .../controllers/manuscript.controller.test.ts | 63 +++++ .../manuscript.data-provider.test.ts | 105 ++++++++ .../test/fixtures/manuscript.fixtures.ts | 37 +++ .../test/mocks/manuscript.controller.mock.ts | 6 + .../test/routes/manuscript.route.test.ts | 116 ++++++++ .../20240510095040-create-content-model.js | 25 ++ .../src/crn/autogenerated-gql/gql.ts | 16 ++ .../src/crn/autogenerated-gql/graphql.ts | 249 ++++++++++++++++++ packages/contentful/src/crn/queries/index.ts | 1 + .../src/crn/queries/manuscript.queries.ts | 21 ++ .../crn/schema/autogenerated-schema.graphql | 48 ++++ packages/fixtures/src/index.ts | 1 + packages/fixtures/src/manuscripts.ts | 8 + packages/flags/src/index.ts | 4 +- packages/model/src/index.ts | 1 + packages/model/src/manuscript.ts | 22 ++ packages/react-components/package.json | 1 + .../react-components/src/atoms/Button.tsx | 6 +- packages/react-components/src/index.ts | 2 + .../src/molecules/FormCard.tsx | 6 +- .../src/organisms/ManuscriptHeader.tsx | 42 +++ .../react-components/src/organisms/Toast.tsx | 6 +- .../__tests__/ManuscriptHeader.test.tsx | 15 ++ .../react-components/src/organisms/index.ts | 1 + .../src/templates/ManuscriptForm.tsx | 127 +++++++++ .../src/templates/TeamProfileWorkspace.tsx | 57 +++- .../__tests__/ManuscriptForm.test.tsx | 106 ++++++++ .../__tests__/TeamProfileWorkspace.test.tsx | 25 +- .../react-components/src/templates/index.ts | 1 + packages/routing/src/network.ts | 3 +- yarn.lock | 11 + 50 files changed, 1810 insertions(+), 77 deletions(-) create mode 100644 .yarn/cache/react-hook-form-npm-7.51.4-e976742d97-b3587c2342.zip create mode 100644 apps/crn-frontend/src/network/teams/ManuscriptToastProvider.tsx create mode 100644 apps/crn-frontend/src/network/teams/TeamManuscript.tsx create mode 100644 apps/crn-frontend/src/network/teams/__tests__/TeamManuscript.test.tsx create mode 100644 apps/crn-frontend/src/network/teams/useManuscriptToast.tsx create mode 100644 apps/crn-server/src/controllers/manuscript.controller.ts create mode 100644 apps/crn-server/src/data-providers/contentful/manuscript.data-provider.ts create mode 100644 apps/crn-server/src/data-providers/types/manuscript.data-provider.types.ts create mode 100644 apps/crn-server/src/routes/manuscript.route.ts create mode 100644 apps/crn-server/src/validation/manuscript.validation.ts create mode 100644 apps/crn-server/test/controllers/manuscript.controller.test.ts create mode 100644 apps/crn-server/test/data-providers/contentful/manuscript.data-provider.test.ts create mode 100644 apps/crn-server/test/fixtures/manuscript.fixtures.ts create mode 100644 apps/crn-server/test/mocks/manuscript.controller.mock.ts create mode 100644 apps/crn-server/test/routes/manuscript.route.test.ts create mode 100644 packages/contentful/migrations/crn/manuscripts/20240510095040-create-content-model.js create mode 100644 packages/contentful/src/crn/queries/manuscript.queries.ts create mode 100644 packages/fixtures/src/manuscripts.ts create mode 100644 packages/model/src/manuscript.ts create mode 100644 packages/react-components/src/organisms/ManuscriptHeader.tsx create mode 100644 packages/react-components/src/organisms/__tests__/ManuscriptHeader.test.tsx create mode 100644 packages/react-components/src/templates/ManuscriptForm.tsx create mode 100644 packages/react-components/src/templates/__tests__/ManuscriptForm.test.tsx diff --git a/.pnp.cjs b/.pnp.cjs index 698dded8a4..9f8be02c8c 100755 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -9027,6 +9027,10 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "react-focus-lock",\ "virtual:e6a8db757cc098a75c904148222816291a2c8f0db104c23d146b3871bbe2ec45c1c89b53bd4b464eaf2679a6a005df432c7d8ffd613f302ca3d3d067c7147c15#npm:2.9.6"\ ],\ + [\ + "react-hook-form",\ + "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:7.51.4"\ + ],\ [\ "react-input-autosize",\ "virtual:800831ff2f901e956a697d9b1e4c860e9a81b33987ce32b240eaf4789b550513fb78cec1003e0d146a6c72371a991e42f4d5d1f2d9f8b0787115f0606f260b91#npm:3.0.0"\ @@ -12093,6 +12097,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["react-app-polyfill", "npm:3.0.0"],\ ["react-dom", "virtual:70ee702ae21962651e36bbfc38610149cb09f8829834f72efabf6ff499ef36bdf828f0ce38bc9269076bac68bed4fbc3b604042ba63016aed4c3a27d5308300f#npm:17.0.2"],\ ["react-error-boundary", "virtual:e53d29e2e4020291f2a68ca0ab4738c8fa7bf760678e5dfc54ff2f07fd5e64d6c5cee7c34f69b3038205c44d115808fe3f1a764fb932cd2f98c9b82b17d8a3ef#npm:3.1.4"],\ + ["react-hook-form", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:7.51.4"],\ ["react-router-dom", "virtual:70ee702ae21962651e36bbfc38610149cb09f8829834f72efabf6ff499ef36bdf828f0ce38bc9269076bac68bed4fbc3b604042ba63016aed4c3a27d5308300f#npm:5.3.4"],\ ["react-router-last-location", "virtual:9d902e8fa3d0aec40e001519f3af8204bbaacbb7348be367280bb310f9537e3019252456410d2b71e7b1075fd4a7eb26825f777fb5c7d4d6219fc027ca539fa7#npm:2.0.1"],\ ["react-test-renderer", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:17.0.2"],\ @@ -13109,6 +13114,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["ramda", "npm:0.27.1"],\ ["react", "npm:17.0.2"],\ ["react-dom", "virtual:70ee702ae21962651e36bbfc38610149cb09f8829834f72efabf6ff499ef36bdf828f0ce38bc9269076bac68bed4fbc3b604042ba63016aed4c3a27d5308300f#npm:17.0.2"],\ + ["react-hook-form", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:7.51.4"],\ ["react-router-dom", "virtual:70ee702ae21962651e36bbfc38610149cb09f8829834f72efabf6ff499ef36bdf828f0ce38bc9269076bac68bed4fbc3b604042ba63016aed4c3a27d5308300f#npm:5.3.4"],\ ["react-router-hash-link", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:2.4.3"],\ ["react-select", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:4.3.1"],\ @@ -13197,6 +13203,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["ramda", "npm:0.27.1"],\ ["react", "npm:17.0.2"],\ ["react-dom", "virtual:70ee702ae21962651e36bbfc38610149cb09f8829834f72efabf6ff499ef36bdf828f0ce38bc9269076bac68bed4fbc3b604042ba63016aed4c3a27d5308300f#npm:17.0.2"],\ + ["react-hook-form", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:7.51.4"],\ ["react-router-dom", "virtual:70ee702ae21962651e36bbfc38610149cb09f8829834f72efabf6ff499ef36bdf828f0ce38bc9269076bac68bed4fbc3b604042ba63016aed4c3a27d5308300f#npm:5.3.4"],\ ["react-router-hash-link", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:2.4.3"],\ ["react-select", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:4.3.1"],\ @@ -13289,6 +13296,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["ramda", "npm:0.27.1"],\ ["react", "npm:17.0.2"],\ ["react-dom", "virtual:70ee702ae21962651e36bbfc38610149cb09f8829834f72efabf6ff499ef36bdf828f0ce38bc9269076bac68bed4fbc3b604042ba63016aed4c3a27d5308300f#npm:17.0.2"],\ + ["react-hook-form", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:7.51.4"],\ ["react-router-dom", "virtual:70ee702ae21962651e36bbfc38610149cb09f8829834f72efabf6ff499ef36bdf828f0ce38bc9269076bac68bed4fbc3b604042ba63016aed4c3a27d5308300f#npm:5.3.4"],\ ["react-router-hash-link", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:2.4.3"],\ ["react-select", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:4.3.1"],\ @@ -13381,6 +13389,7 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { ["ramda", "npm:0.27.1"],\ ["react", "npm:17.0.2"],\ ["react-dom", "virtual:70ee702ae21962651e36bbfc38610149cb09f8829834f72efabf6ff499ef36bdf828f0ce38bc9269076bac68bed4fbc3b604042ba63016aed4c3a27d5308300f#npm:17.0.2"],\ + ["react-hook-form", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:7.51.4"],\ ["react-router-dom", "virtual:70ee702ae21962651e36bbfc38610149cb09f8829834f72efabf6ff499ef36bdf828f0ce38bc9269076bac68bed4fbc3b604042ba63016aed4c3a27d5308300f#npm:5.3.4"],\ ["react-router-hash-link", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:2.4.3"],\ ["react-select", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:4.3.1"],\ @@ -68098,6 +68107,28 @@ function $$SETUP_STATE(hydrateRuntimeState, basePath) { "linkType": "HARD"\ }]\ ]],\ + ["react-hook-form", [\ + ["npm:7.51.4", {\ + "packageLocation": "./.yarn/cache/react-hook-form-npm-7.51.4-e976742d97-b3587c2342.zip/node_modules/react-hook-form/",\ + "packageDependencies": [\ + ["react-hook-form", "npm:7.51.4"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:7.51.4", {\ + "packageLocation": "./.yarn/__virtual__/react-hook-form-virtual-f640f4dd3e/0/cache/react-hook-form-npm-7.51.4-e976742d97-b3587c2342.zip/node_modules/react-hook-form/",\ + "packageDependencies": [\ + ["react-hook-form", "virtual:3a393e218825bde954376ca1a828a8b21ca2967b8d720dd56f28d8017fc081fa726c0b293069a94a55394c33a36ded19a9a4675c0d537b344c90f8add76eb926#npm:7.51.4"],\ + ["@types/react", "npm:17.0.65"],\ + ["react", "npm:17.0.2"]\ + ],\ + "packagePeers": [\ + "@types/react",\ + "react"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["react-input-autosize", [\ ["npm:3.0.0", {\ "packageLocation": "./.yarn/cache/react-input-autosize-npm-3.0.0-c2fd3b468a-cc3309ddc8.zip/node_modules/react-input-autosize/",\ diff --git a/.yarn/cache/react-hook-form-npm-7.51.4-e976742d97-b3587c2342.zip b/.yarn/cache/react-hook-form-npm-7.51.4-e976742d97-b3587c2342.zip new file mode 100644 index 0000000000000000000000000000000000000000..9b682ec07adc7b80614e808fa16c968f9e37e2d6 GIT binary patch literal 306989 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%0AfFxh9zY7A4LS=3{6 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 m5NFrn5V^MjgdZOp)GiAsFk&B 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
K`c5=%$QzVkYH#~+`{HJqYm8TIG#lF@Wm)N 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

<8PLP^APZVWTM>j_8H#QuBl zQZqDCLVl7pC`WG15vBUtWTDW{{7V#$zg+wNvKwPoyI^>O>9bzuUq%#$TKod~6(mS; z5uzaC%7{l?1MwGL;@6#NuU8wZ;NSR;O7F`CRAm%u;Vbz|Obye$A8@mnya+mPjm0PN zqYdNZX5EZtFXc?=ulRG;f(NmWr1gN`QES{jqn>t#ok-9LqK6$S-i>#At?odLZxZ!K z>OpMZWC)884oA=xUM}M)q=7WQQm?h^0Wdp}z}(pGVRS71UUvtb;kEc-1o#$Dond>* zKMkWG_#n7&>h=$W2wXhbY4}_wWoeKwGZiv`3@$b}l zLu)%!Q*BLPiA)kyJd&XWtl_BFo#2bkv`y=#yDA-&cJ>?4`&M%g23iZ7jbF9qzW5z( z6n4rb@x#%gLf@Ed6n{{*QT$2#0{-N%tKxU72g9%I>^Ap*84c|J8hiUZQL_1_i0Ji~x?m+!uPkaYGEi`9*u{ zP&(MSq3R_VfR@PV4z|cgoSG9T5@F;5tO5bvzppjU*}`DBZ_NP58fF+oXR&aE=o{($#+V7_E9 zkPEC$U;tAR$B|c-_O9>_B_{)(9bp z*(mwFfCpBr<{_89k}Vmk9J$E)n8@1{emfUF4x)-@17w0YLzu|^aFwH%BqSh(q5){OVri`X<92gk|At>6a|B%W!Q} z!O#P^Uruwf5lLsO_1ad8a3YJGNRasjhXq#&o8)~bH8w)N(X%g#}nhzi3%v_V!bXw7^P@~{s!V|9K-lZT;v(GrP6mDmS2`7Ca!UNx!@KfEH z@IdDce&KQv0YcWSbXkjfB_^!!fJ)5V>(X`ZGb&MlvBM~#bu9L@)Ef70HF}mH1hJs? z?UJ+@l8xb8wOQR5s2WLmY7rVf*d){NdVnB|e~X%al2>aty2e`D3I;h}wr+hdI>jXy ze@izbU3X8CIS4!IN$iZw_^eQbymwj?0R+d>39gH31_*Deh&{_%kdd=HoW|B}M{-#N z!8^WHpQce^(9v_ysw=*}Eekjp2qYBMm?>#;#;a^l%u-c>=$rG+mct_-N_w^lX0hWdx1=2D|0r3om=OXSJSbre$ zQJzy!Zp>(p*?=}fv}(w57M2$-;dH)sbs@TT@nby1&H$!?yD^;dWE%zfBOn4Ul8j1> zTw%A@QN%Ez9lqX=TX9sD?2QI2IZx@}A~BL8KZsdqC^GWb@K~&f*w+}FO8$o7Ok?Ph z0DO1c6{uRAKEw$uf>T`9lKSB)c`@{rWu=(cDN+#ea5`=?k8WYb7@ZLC zuxtqiatdI2K12j?BB-g3JVv7-e2Fi*BL}G}Z5YD0X&o)$)q*>|C2BqbLH3nU(O|tE z-%mG+;M2gz5KNe2JLaT2ya6v>0O8Zuj9)&m_ zw!7f+qb_#7jx63ox`x2fvK&DW{rXcUYnruUb4FsYr52(+gTW~b6euy*Dt4`5!X0ly zsANj91A^2VQch78iOV}0FauElveHnZ@{U7^D?J6BYJJJBeXq&ilRduX65b*V?5cfXj&AShG( zd905b9X$c#G%C4uf+_2F zn01Rd8O_Wsjh)Zd&5|%xS0Xi(hn(vBpkd4Dq8pSx41P+&rFf#K0-|*k*DdDFyyLq5Dc^3!h;KF< zwH+l=>z?2mw-mpiXC=QQ6o|v8*itcokyvj$ixIIS$HUGo3nFohiUlGfM|1Y;Y%sli%!JI;+JbLUmq4qg+gBZ z|1=2ma%n$bDHIA7_<9j;iidC^DB+W6s#*wpK^5zV`MMa!4iq@SwpttT z`CAcxixGue#Txt$aqyi@_}!>L>xXJqwL*9n9>Y^NIFc{xh46h))I|z4e0L@KH{R`w zQG`oDT})|b2L}-4L+nlboD+q_z*a+SX1kQHgj+TIT*SfP0IH>YvruTl&oVY$En~~L z7=5uarDEkOtU$GkK&(V*~p*5Hn|sm49Rzw0pB1NgYH1uvRaDqn`)>l^e?5vvmpip#hbhqz*mTNq4x9N;uz zbq;pLi*=e>jpqO(sKU_U7>M6T2sG_O@w>c=tr2imVc4}TSc7l0*E_hXxU&fNvBK+I9!Vis@Hl3CY zDwp>aU=|t&h%4$0-0(i%7VAZ4EW`tWt6%>LJGOhq(DxbPF-Y-Gt+hWe6;2Wc&GdP=txR}3SWE2+0 z1hicQvj%Ly2+$kU6kxUk=S!^Vp@2rB?%f-zbE8xC2cnePI2>Hjc0j z1fW`>Oy_z>bY9#>tO!5X@n^Xp%5ETHuE5Vt{8?QW&1{w6=XO!FyA#4s0Yisk_B%Wx z0y5ZivFBnR1Y~R%PQx+5Ll@w;xZD5rd9oR~2#YwZ*pIt#WLX5rAR1PmfLdePQ-Sfh#pCO2q< z_>{t*+Oep+RiRe`_C!x&bBoY?a~#lCL!aTO*l>yfTyG)hovDIVak7hu1Fs2b4#nUq zu%~4}@Oy|C2*PRoaOA6jgs+?6WR4qKDIxMl$ZTxFfDW%qSRC<1b+v>T;hlIFR+nhI z%%w(r0*#7)zriXO_|C#hMGP61Vo-v%1SE)m807Xsr*of0~R zIfpB>#{zG{szZBR<%nN^CM@3J zG95x6LJ;c94a1#}Lxx(VQn6sEy@14;5$!Q5{`By<2_ zg!=>y@DnK{u{tF@qex4MpC=(+Ar~+vLC_$sh33OfXf^_CFXmF(q=8-)lTdO7U@{bk zMLhMw!W5x#dlDeLoCCa;&VsiHc(_GhYjCF&%COv}Q5pAP5i2#m0c`BUzJ(>kvfNI% z^Bzyeb_*))+yeNQ)_1Yo0-deb*urIS48_O6GU4NkVqR=}>0rbs9=7FcN3MBWTzGe7 zXlwTZaECkv^?nh75vDIlrlq1E*bmj1kw6XyK}(OJP#+?^94^qx2`tx!1rW2H6cK_u zX7!LzbLkFoa)?x42`TPy%e=j=L)k?GDH^f3n*z3P%0zCxW*l}0EK5Q3DS4K#vJx(C zXvFlsjLprJ6ZfOoG0}B}HmtE)#wF`wdq+f^l=+kcDLdF8!j1^yN*_xconcRKQC14& zmEbBg(B?KGIwt#&9Xdb)DBMix0&(Hd&AQnE5FpisB3}0`s!}5wMXc{lAW(BS+}OaS ztszj~gfq^2xam9Zv`u$}Vk+W(Y{`O0VqqJSY8H3CK+=0~_`?z(e(`gcZjSU5Q(6w5 zdQ?IWY_{R*S`N;LBxyv?c5oF6^;_BwMtVoE2LOKy>%WFo*{rz#u~XWC?RSJ+i_8SU`0&kP59qAY39_tnD0LwE;LvD;UeF5F_UIZq#qBD+ zCnAw*w#1V@cOr1d2A$io!CwJEAXo(~ zj7`=h0Xq!#@v!49Q0XicQ%-xYXk6QZP}3Ls`yln=7dQvdDBbUu!EzC=%+ed2O0-fT z3h}zA&r6~9mPnOlT!)+DF`bu+Vl~FW8G?Rcg6FG%=%vucNq<`m>M!(Q!mGY7xIT2xZreLb>v$LY&pgx{IjdkOkK#KmhM(XL*%fUheK0JvAe!YG_U zP`e38boi}cG7(R1lMtn&pAhw2;_6)-Vuv(j+Yi(X##Q2RY=$Yi@d}q5R27m?~Yn# z-#m@0b!0j3iYPlMcCn4ha>=vH$3(QpxKu}FvoQpfLhBCi)2q;KMSrAL#Cr8YlGz|R zE!drnDGW5M01YCD2wv&aGIO{B6qZ6bm!)<7bU|GA4a{EN>OUBl@WzahWvvs2rka9J8f@ZOLyTM_ zCeQ~7f-b>7<#Ql2N;d{e(ZvRvqjfnMG5%xddF#zOEhhZ#$$pFz(Z!3QMVEMUE}(1B zI2!s3oEao1df4;k5=mmV4ekNN+~M(A6&XWX{7B#>K)qK?zlQ)T?^(1X9(GXNQA2Ta zn+0OXBX2`rrM(mU-7hlz)dV&V=X^!9#Vs{eb4T$FwnJPZ#t?2aPqGrMCWc_IyoOG` zF;a#ExL6K}s0UvE{kV*T0aB49%|$Uxea2Z|2rh7o8;3~Vel<>f9UDU;xkOtE&jg7m z6FislGI&o^X$f`{m?%O?xVk-(po*)O_^gob&XA5YRz|j1oHUL1t$h&aLa})6x^_ zzrjvg=U9I!oK}h02EwcOgz9gRy^MNTeI*>CmZlBWzg;|~`*$JUz!$*)TUZFMtNOI9 zCmX0B2zlqfU8o95Eeywkl;0Mxy?t9HimnzGc948DL|RK#;w|aVm^jTb-N&aOx-Svu z2i=BM{4V$gq~Z?VR3-F;#fka?vYxoC%N1%=u0APwUIMTq33XOl-qQ494f`$t?3Sh8OD~ zj5qPHZ&=?DrHtWQ9R;!Gw<;1~p}3{s6mD7HD*2;uN8FB^8j5=)jeSSF{^dGKAyJxG z7;D}++}Sl)?=u`trAVp?{7q~`jZhM@^x?@OV(oB5chj2^5(U>#7eu{C-;_vfjJUXZ zxs9#Ul{kR0?k^L4c4-h#E5QoMBKV{gwe+;0rSSvYyV?Z`!+{LfQs2dOV!v>2u<)LF zBfKL4{}_n#(h@27-jc|Ic*$*f8<2>)Mk4BNfXqC|hRcZbp)I`ESm_5!(zr;+xhS8i z5+M!f9^0@!K*cdmq|rz4M$L0bA4b$jT`B5hZM=J`IH&RmA*6YYo4kN0xWHm$+^}{J z2Td}V=2?|k%N?TOH@pQy(0G;cGa$raQJ=vv0nr7a!ka4X39Q$fZQ_IQl!BNC?_Q!n z5%HCg5)hm{5vQ+NVNQe^UFbIm*&{{22C{aEIuNk-RXj1%cNUyXSuM7@L(2b#tNeev zLj{((Kwrwk!tFQsDO}khO*O3OHHtDeheHF`-!Y>Zq?ZB0WVy|!+IrP%| z9l$c-TT`)#w_AH%|2`UT<10{$0V*wpdz7A?L>lD6 z5KD$VR`Ub2E^HYBfOn*#Vpd2U4>*A}#{IC5;e_}kW(!UctiGKgeOd40vK$t)p0y_S z0H|Zy)!GE~8{)*wkp_NR=JN3Ess^;$QXuIB2GiOQL95lqSSwbMtI#^`DJjTIr+xh}F z9N}e6aUrlZI2E^;K!$3g!bym`8LlJt+|pAcm5Bhnm4H{jN~STmAK}%8mjCxQB!^f= zePUq|AxxA)xmj|@!vosp@g~X;kz{#;>()fJZGYxwHh=*@^0pf!1~IM4eXRkr{TkO} z2Zhz^1;kcFq?Ab@y+Fjm8@fW4tAyQ;K-L6;+6$aWbFhV@x-kXR(@@*r)K2NbLP^3T zJfo=qmklf$V9P)gq6>JR17QeP_C-9g52~h=zWP%<87ZI8Bsx!wB*BzWiO0zsvZ0L;kMI-)P;LZ56B1KXcgX#tdQDuV6)E1W0Ixj6HGLb9*5`c*S+bjuq+pG+b!PL3&}qIy z{78gtfqnu_RGKT9)j`u$DsR(36tTY=++wLF@`Q!f4N7hWO@~u#4OrCm7P6(fSUNE$4)A&QSxf8Vqn^M+qPYT-pO%$Qbbw8H7Rk z8my*xbMgicQ+Ty&9G`d>KCx!@@I98Egu^WwB#ES2Z-6Qc(VikKOm^s9 zB#HJ}ap33GZBo3wW8&leHURX1&|06ig4XAVYw+Io)+NCqW#->V+Ayta=~@#DuLR5M zC@kNB>azNBu!gC!~-`5^lpQSKHLy__kEjM1)hYP#Z(<0Oe z2gQ|b;>EXR17*12kf)4Lm@c*&h56fKMe^XgTC_BE~Gd?XDpGqgMiS)cch zi$GNqK)q7zqr#?eg&$jy{I(58`YoL^oWlxDd9kiLEuTv&xKC}a*h4`}h@<+9p=`)% zo}ruu@?+XqUe|T?(gg6-dDsVgys$^~^bi}|SmqtPSVsd@veg0V9=a*eo-Hv{+^YFC zU<#MiD=tfWUoTwgJY?2rQ4Ins(Blyr?@hvpp)6;;cqyicpyxm9~uexz`Yuzdg=O!>uo9Lx{N~aBR`Y~R2g&R_M^(%B7 z_KC`I(P0G*dlfdi44S9VzuEeqc zJkxFUbsNyxBDS${!Js5_2QOUv$sIns+Cg(;oE$w3Aq&MhQ)WpsNZ4A*TEAO~8^G zAQ{45`H9Heydeo~pEBC+Jqc~YfG&|4Fy(CXv?=P?G;yns4Nx{A2diq zeuhfdY8S;j3nZ*TIcK;&vgZLL>zg_fA&42m;uXuvc1WiWV)(LWx89WH_XeDBp20S$ z0t=P%EwVe_Rih@hxpEpRvZf&U2PM$DLCTzcio#E?yya(Iw@ZygH+>8(fI%Tp= z=$4Je2s^YGHzbE$+%XpAj6^GfA%c(P(vi(Zkx- zCRVcK08TPEOlU5Wj7~^Sch0@mnOYWWSY6(;y&Ecp$_ZWRc>7fQcpVM`LZyGaSP9faWq#ikG+||i@LZ8fw z4YE|;Br^a+Gu17eagU@pByTShqgFr@EBag~B`1!0`vy&u8+5{Je2N9dxlK}!CETr0 z!s8o6hr{4@lgK^gxq}S0)=5?ccRDGB2C&n*%+;luVH<>7XLuh}=Wr;E1==@3I93Qn z6=Z=^1pkIr96X3_gN2Z7h+!_Hx^!X!i6YTNG})zw0cV%2_awmuksV|K#o{3(l8UAU zROu^`MraOJI4A#^?Q@hzMkpy>4wi8!UAF(Fon2w$auT2P@z0^O-U75tk}^;fgnWOq z=@ejM%;I4WprpJ?;R0SQ;4&I`XW@(uS zf;SDKwnn7tA0nQagv;ixEJB%;V2r2=>GXVa44_BkRM+W9vfLmGFQ%*wQsRl!# zu~yFa$o)l0&%Y`w09cL7;4-|}gVkt(TS4hP-S7-Yb=vanRdc&4VDf!amG*suA{)6H zc!Y_!FTtcziS&Ris~`lg zGvW&i=uQz9M?0eWRd6)I#s8+)ZgC&QgD7S&w!GnJ>1%BJiglnHcwz<^ysdL6%Q`h zgN>`gKQKh}eh6>EjVjUTtNSR5G@Ke?DCEHiN(u5Nc!v}{i9g7uv5j`oSo@MJG{;aHxNWTnQro-2PCyN%FElMBNljN@MPn&4wybs=EVcxZ z_Mkz=Ax6`%Jg{{n48{BVoSGa`Cp%=JDBA=j(17guE}JCMpaq*E1vUtKP12^&M_SFs z1%6x(#8MkVdz@HfVc&R%)dY8ha70!|Byt6itT2^bI+lmKbU^w-rC*T8bt#PWSqqn% zq`U%C1XFues$Sr64zKV|=v)`2%oF^VR;yap8Lr<1b12ab7w}JuEQ44`$rd95ryhxt zA;IBlLo2WoUXP5|-fa<^x5e&_6>EDG5<{x8*uhP_Z4ia{9`~oQh%ok!s2CCtTvkcm zdDTpKloA75A>R;i>4Y_%L-cQ=;H8EdX{mD)*v-&L@gTof?a)im@?JNHBwlT(lBKgE zsn}~{^66alHpxz7CJbR&(S<4`cCU_TQ7@&vHXFV* zV(e@8Y@ckvNn3FNgm#q#0_*=)ODQg;_oNy)iq{eKck#M9B8&AnSOJ(T^};s|^*n36 z!xjH3(`m&?B)-G-8N5bJQaamLmBKB#7mKXOCG`V<_Yxkjv!XF7LH{oW)^njwyifDo z9LeIkY@s4{k(>eFG>ly|Zq$(IXA-a$2_1D&_g=apUL+>X(;Vx(7sN!vUTG8zcQp5M zc7Qcr@1oaZ)JM0>R=)&~V&==lwU8Eak0{I6s6+s}(Zazpc?Mme17V?e!0vN!YvaG` z?}&mJZz?@I$`yzb(D!ZkfW=}k{c~*QE7%U~Ul5DeKfqP)q2_Z$HxZFBd&*3sgmRL~ zo?-P-vyDSyIv1l7TMq#iyFp8uqwA7==MHaK<=vy?6#it~QCd<)Y$d;q$fni`+U)m%? ziA{Z7S~k`|xy4(8bPfy4O=VVExh9(ylG_wsm-24{@NEENz6}&#ge7uZ8W2U>-#0-1 z3b(sH-B9nq1WynyTN8ABY+NG9?(1?;;_d*7e7!x8Pe`-U%c6c4?m`KH6n9uReYL5h zLezVx*4@1zy6d!vUY=(~>7WFfT{3s759x_and;pl+TNWPrFR}Y^^~O@c%akT*990g z!<{2MXBVu~zeAR}@RmfZxF38)ToXe@z8HqpktXx5i5Fn@YGs268ofE!s0Ia#rh1{W zsjbxNY+;Q?xg*K$x5$hd|Nf0J*NR{2duL7bm>NZ@Fk^DFyJBZeJ z-<(66td)sSK@8Pg+B7bbTNIWxdt@LuL?P2^sEuAm8=y>~s1)4;t(!PJ!!Qra#tK9z z(4{7Jh6J~_uxgdBJ#wY(!(75$2dsMlJLrYD%oHEtMLMBpC^IRrli1s;(%x1IcgP14 z+NlD9DV53aKDycD>*oj-hIX(;BHUwkH6XjtD>SR5=onSB>wF*Lr5akrCTL;V+Ta)u zEf6+=C)i1)zp2GZOSC&Hn?%>dfnmsYijY-Z!F8^6$qnwbMhaE+tsGvgpAr6>9uQU} zXP;%nG~1R@=p+zaI2wZ!ZNWC5XW_esbj>Xn%9|X!L~KK6884T2D9w8h|HfhE4ZNF# zg{5t>q!n{Nn4-;4f#g^u8Ye^5n^2(cBk2shvTJ(!f;kkKcpkndYb-&LN1%6lZ8!&? z?rLY^y6H1KM9X)gyl#w!H_-B%ZIt226=?wS#Yu@xyVaXffF`E(MUuWOA)q(a=hdJ` z%qRI@HCBpvHIZ%FT#+@K(w1TjzAV7Lv)kP5rkvU-_S&;v-+@(F*ejCP*%6r`(mIH( zBtrry)IePeG>g^SM9wvK(Wv7}Pi1|HE^CYx5`KHLuKd5gvX>#qAJ?@p-iW0qVlrDB z%A-kO;c2KZjRBgQe|^(riyx56AkTJuyP-?np;Ywi+`4|X0DOFT|7}wWy~rqLo2WfB zr6xt2+P#wA?ULm$Ueu1{rCF}yVj`Qkm_r7@HtubI3vY#mO)_D^6SsRtHf(5eRoWma z=-XgiCFR62fx{b=X5JNv!Fm%+?9Z3m94H6}z1bsy%i^?wK-fc zzAnaGa!Mg--tB606h7djQD9HE#&CxmvPHcH0ASo8ZQ8;vST>!9r*+a34|b%7uwY*B z472q8utBP%3LBK5B$MnK>27I*Dhf!Sav7!iV3h;%)0;!KZYblzgcEjkNB?%vSMu{^ z2#!($@uAB-04rYndnAe?`?x9XS|8=+jT^)!S7a)_K169%g&n=g1Lv@&{W8#>n*`wD z+bu$j+ioF}=LjNlT!kvFzD#v9kbmNUMhf;+P-7`93Xl7cCNdYzA-v zx_XkK)&Ybz)I*_3y8ar;Oq=l@$;dZJ(tsTeIqr!l(g3E1Zgt#?O^!E%I=Dh}yyw~N z+B=FxP^^$i7s^7r0nh!E+^VbEt129nVkFZRQSd94kwVVML!^qLnH3wz^C>jGq39fJ ze^Fmo>+PYybW0TzfMffML z)=Ck*4Bl1AKdH#vOFfBhP}Wfz6j{Ec{Oa-UF89K!c`9xQgItpTL%+nqj;bJOM+^2H zqC8fu^=L}BGf+>3eLPZ|*4+}GF%1H-6@Yk?w?UIljL&z->gzH zmi9@xhDZ10bX%Ea6EwUHv_-`Tyi-J_@N}C%k_7TiGSWU|-vp*%!m zx?xZ^E5R}`;7smz!4NduCvj8h4kb!;_7a zb_hersx56Q&5GyRHyyziNl3W@r%Z;1H2uJE>6lie%ZDRDY?Ethg{&FDX=@wKqTB#- zv_6!wa;eI`M7>Zy=vB$E;GAg=Vy16t37E#E1ueV_-fog%0gSt{j?oHM1Gk&fd2o3| za?M@sMkbI^_lOm3HOV3rrTVk7fs|lra!8V|LlQ*p8Z$ZzhDQ`wW{ZL|l{FZDog+fV ztWesrZ!$WG??PFkN{e8R69S?ZyN%=t*7d-Sg~V^-8Wy12z^=DQ0!>5@%| zH<*sloO|X-58DmMpc;>$!2EqQgfEhsR8Rtf*6X|tlZ)POvOgUn(b^Ei+ody##wK8r zBtzF*6tVz~QR`P#sp*Dz76|erFJ70Datg}?<*RBkuWRxhK9SQ>7p)*y16o;*D1%r1 z{xWR|23{#NPRRy$3?aZu;^ch8##WIv9)ZUquKx8mqu=w8yIdtF?z@UI9k~k#Q_4^8 zHZjCRaDfK7WwII(wE?og?Ah?2<=Rw8f@i5%@dW}`n;pASWgs-r zct_VqeSLY88xiE_sR}z$sJ}m=OB4v(yW-pt*}I2@>RGUGWS?u>$@&(RKu4?J)B)wI z30I`hS|)_}_8Y~4Ss|NaGPFXYx%%lhiq}H&lBDb#0!k3U?_8BdBCW_i;vM3-Z!0_6 zn+~~M0g6511m7UQ98h4H8xkHY?h*uoIHEWX*|K(d&-qwF6MvwS$XIp}5%T-+{96L$ zH5JA?Fc4ndhw#QhOi*^S;hi0t<6e9tpDx;wm4L+k?O(G?n%y^)w!U+wWqWgcf-xM>lM2I9DWIXDJ}R zAfin9-V}4FLBQ;@y0wi!^$=FR2oRD=V-{mc83rxW5n3%5&*VlT=-MAEy%1|O$qg4` zpH&ohVb7%^74Tye7N(tFAVK0yb=RVAE0m+_btQPSZZ0!OVd0QbSW0n2E>bYOJEXYB z;pf1<`LSA|bhVCQHHq3% z+9m<*;2{C{wNh9QPsz&Va)AW~BYUY{zImUrh9n@spuWmrr6ckc&47^$8 zE<~=4PVVaf@21jKa2YD)mb5wCCMC#HiEfjmeN|XpY0`CYC%C)2y9GPAyZgc2HMqNL z2u{%85G=Sua0?#X10*Eqf9US%?queFrt{53J?DZO)~qHi9J>Lvf$}vD>Sj4))`m3>z(9>rPpq;G|7jDuVazP$a@y1!_Uf!tG%d~8kqT#;EocalBx6NVyrV!Kms<@cu4MXH<%bI#1x2UtG zoq_t0E`FjNV`L?Zf<@39Q%o&tEuMx4Z?S)F`o;JJp!$kTo9?k!;Fcw zZLF*@YQ;Lvo1beC~3#LrTae>vdi_Pm0pY5j}v~oY!S+4g#{7XIPy^@;C-vcWoqdqCi}+lqMAX5JO4#lN(LcEh3??QA}pJg z&mr+mW&@n%Ub~{6;7l0?&ASdI@kVl7EJun6p|~5!im>gOMPUj0l^6VE(V}>Fl*<_^ zc{b45blSKwQrkhA_!wNuG0wa>VrXs=Bk!}fdbn}lR_S!fiEQp3Kxbtuh3p(opMtT+;KPZ=qzDQJWfXdneGhAygqbwASR**g<>jTpDXtq&fgy$Av z75tK0u^yi~Ij5A3xPXfu8@kEjNT@-iBcC8v(|Q8JmUZx*5JO^+k=R`GG@O3dmj%wE z$q)1xUy4mOTG0y(n%R`m%wpCMeS2L z=Zr;ufkfzh8=_K7L9>32NInuqDFN@mO68w^oIfB>i}FUaPwL(G0@J3b;{q$~kX%Vi zMYYq=v-3Psj1XB$jpd*7Yi&8fnf7rdtnX6XoMP zcjip1*Sl4%e2DZEKk(Bn-YIFJ+Ht*DHEuO0DF*cSR3h53546VnI3&=hiqhgeq|K}3 z^}^jm<`J*8KDd1>cu9=`<0lnW1IFUJuwko3FBb%kFhz@(B`V=)S65qKSIW;Mz0h9M zkel~xUf(((0NTGgZ{MAgVPjW62?gpzL`hVCjZ)0bD+`9g_{^9k%5;0E_Y2-20iZo} zd9cT)Pgx$hFU)BPl6;iJ*>*s>7sqDjlH@^#-r3_#u=>n}Xd>QPDoO*V(EJ#{%6G$c z#*AEICDti178SdDEr{TYOt4+i^F_KFjH+x&jOxgk>4Xthlzv=7T<3*kph0%Frwli`JxGa(!VOT(p6+ z*ulob#le0blBgZ3NcS$hci%pWKprg6Gjq$2nJC%#gjGmnA6)A>O;_k%f{)-q>Tz&E zQEq7OjKj#J0OHx#yS8c?yy-RCG964igK?Z&-;NZYZme}(45@79>T9#sMTB(Tg`P56 zAq^W}RKliqvz8N#MK$khyO6D3g!Lhz&YjEQPj zdk$TS^Vq`;-^)dtdNbf8R(M@$jQG|OrWlIXm^-l*t>;2g!J)-Vqv3-Dm#th#@WjGltGvT z_hLRbWWUUoEf-ws4Ib|_xp$zq6HeMVN{yzxiAc7&FdiYlqWO@`NDbmMYghKhDKVIy z>X(#W+bYpp_Kp!Uar_cl-CwN|LnhtO{5TKDoibOSWiLv!S|q;-w^stIFaT5E)7vGq zcIL-8)kVn&FKR{PMZCo7pdMWc-2CDdJ`qqw7!1@xilD1MVZH?$Hlz`RDTbibRaW5Z zFGq>N^hWOlec(KGk{jDN3cJHjK?)~0x6I6DHSM%O3jUCkDbM45|9paxO`y9md1|Y! z#()emk_Ky>%j+r{tT@|v(mff(bkXZvGdthKTA^9mRj8|;>IKi$y7Wy94{^x6fcgN(F`wVgVOMvv{xUXlqEF=I zLIMjU&Yf8?u+@+T>;siLe@}}qWz+fRauxY`n0Kkk6RIr~h(+!ayY;std#35!-wKQa z7{0-B#GbsxXCkWTU%&Vqpot?N)VBiDJmOK*{=RfJesg!O6)h5O1aucjK$shNTH~IG z86p}BhrW;L#Q<)`kwL2ou_N&^z6wCNzDLBu#>1Dul^vne8?;Po=WU>ztA-8|*7cB0i(Ke)RPi+MIs@`AdIx604@&z; zxCM}vHO6EqE=lB$hTty7woqWB%^!&xuSJE^+|8{02#6QmG_yh)ZuvD{&S(yxbuPuxIH4(#svSsFPfUFw&3!l(kCO4YVZ6kiPl!5<9(?R8#Y9_aRK6t%(FZYdHeh zE2G{nO>xBH+Z&Cd&nc0Fy@bRAv$-oc;m@30F#U46VqOuQm1BukC7QI#y-NuoA*lek zG{}41@fHrOs5qiu#e?-DNo;;h5PgjOXqMfUPbPo%fpfKekZ+ZGfUP7r$THJ;8nZZ) zK^!X>^obb#ynzGrE`lrY9rm-JONAutsS3?Rp<0SlNmDbCRg_2t$l#MBP9h~ zE7PWoC(B}ABF%>@ZY!k@TU3#et*x>p25gI#gYF0?x=d~pm+X$z_{G0p95eAqY@8=V zxcj_pg6qB9weWH^;>P$;uSTSeB{8;&Iya}Vj1+lmRhBW)U6YgLg1r<5*oN?j0XvCL zP*IioM)l@qdwDYCYg-}9DQUF49T<_QRfKlW`WMk5MQEJ*$#raeHZ8Dc^L3*N>`lvqid-nc+S9z(D4lBdSa)%rIL3fROGn177gxYpmiu_N!JCVsLhh6&w_R10HU2m;~60jW_yqm7M5hUSg|^^I724F zMm8zD3@MtTgl{2uuA4ojO`|C4n8m9s;Xt3n+Z^b(K}rq_H9B_E(mDt&HL{GIjtHhG z)PI?!8&}pQQh27a*@|5dFTL{$b-XgKFf&l1GH8A=*FjzeJmCh(qkv1euWh{)ksX3y z2@Dh5N&%=N<6x}iTlobjuz5@H+S{wwvIA)X7U&OQx70;iXAb$GOAg|{dCl=HT#}IyBM!V%h+hlFIi)W9-hc-3ah2s2brlWA_00q*g@fH6_VU^1f z+q2HoV?Ez~<(HwVP-P@|+n6AO=eZv5ti(yNqbEL;W3{c0{6%DFmgm3WJLmZ~NNpa>IFrVs;p} zo)_na&{`7wWNAKs^Z56nu~Tn-_eIg@TZl_EnM~4~=zLticSGgX+_P1R!BP|h`WuV% zU6dqY9YUjVn83->#;p_0shjVa8}tL9Ru`>bSe4u=XoP_Hxmpf9>$8S4OQ~Vm$GP66 zh;Ym7EFdvC<@=OMr_UT(?`g=q{N*i7;f*|0&BxEx@!AFLfr5f6on%c6Aqn>Rq9!P~ z(t+)okVg7gR!T$nuvo!h1@HMlssn!}pw-Q=X5l{cIKqV~ou) z7@coXy*P%#iNCx1=U%?W@C@L%)t6&`(HJq5?h z2UXP|mF6x#jyjao^{_S-E{h`GVw1MtjEr-{S)6t}VvPdQ3wpJg|&CR&a)4JmJuP?N)sY^#dn zr+~?CBB%n+DXF*)q4Oyyie-05a(eeMg|q5f;DxKAkl!!oa3yKW(ok}siJkS@=ka#V zBq-pQBoSjzZL^6lpy@ovoucr^{x z%Mw}UQ6s$`mUl?x*OhrAF2$aHqBYadi(8dv7HmgtOu8kmG6BrktOpm?=Oxl#tL(UK zeDj;M$ne6%x)SNSn4BfvB?SSFA1#NiiYG)8u)r@k*K;?_xre##7+M7Li)|AxAqHc& zT-Refm#(5+b`wa4UnMqnLYKXuQ3phPKk1j&smd7R#iAq5Nmo0Lek(sc10m@nBXV1< z)Y)>6N8nY?hHeR^bu-1y>ncaQIIT8>naF82yJk?8O;^OuXCfBg%#{u7)Pb++)R=tnAOv3dt|nyG5u{DJd4T2b(%?~uI3XoAs85T6V#>O z8-k?%)J3vY)@uH}gB<=X6lIzy2HW?7#viOAdL(V3x`7bjH`w+^8%Xo?sxKEHZ^}HB z@@1ycUq$8aBot={kTFYhP->xJf*)+*aDZp5) z>THRF*^fo!^n=7>S78;q7n`PPP=f?h*%`6M;5Y8-);)4TipnW&7ld#0uv6)5rqQG0 zT~?Dz{u;#*HcQase1018tQ~kwC7J7_O5!h!FD&qD4SyYKIxDQSiZ_`X_U_yO8oynvk*LY_uVU|8pI6G_6%hr! z^Ub>4j8PuqY%I_khOuXE(SC3m7GU=3PSdFU?VF-T52}1Z{mr*Rm7L%b5?5eIm6%tav&8F`Bpw2jf9u9XKsl? za7}UpOY1nO+u*;=P{K|_zH&Ar9ZonX#V^38Z7W2?jaE*Q6`W>YmO_~}QmHh8%ZDYQ z$r=#9=!aZ`s>XJ^$-YYj6W3A091`*rK6h6x>1)Uyqsr6gy>&>5X=o2=)LiP03R)`Q z-uoIPZP^8Iss|t`<*urx=tz??0C@Bf_pxe*5S%DGdnackUHHv-uU>}Bk9Tv2I|B$3 zeYn#19*OSw)V50@ls4KG&$4yFs*ja}$^;xfjx zp9wO;Qx2p?Pp{5XVu4@f`g|>@oV_YoDPS?f?}ZQHzZup`Ig&TPIGoVO=&tA)npg$! zt^Yc3 zea!3Rn&!UJlc!2Qq2@U4%*5u^SyXyPa(<`papk27;llUD`U&yAW=+2%-;xEdz=iJv zZ4-V5dvmjHVUPe_yq>O$J1rjqy#vt(3W z8h9r+9jCXIvZv{9Fv45$Id}UQmpV$)&bfBQsBFUD+PywLVZ}q z=DNeAJwpQ+csm#rD_WzyJZwFE zB+r}9VcR)jS72kQ;y6EB?)Pfw7<%?>mYkb#*41b74Bnz4E#nbdxaEt!*5mP^YG8ci zYT!gP(xn~2l&qA|+mX5GbNB$=VGqN-H3HR9Ebl=+i>zc2$F(OThRx)JUY1H-dUw5X zRF&4*ASU~Mg5Ey>!Qb1gnyh*fpQEG`DJ_o1>cBS41Bx~_@yI!D*;3}9Y|fC1dVUMt1oITK%6Er1Yymq_i&ZAEi|2ZDM^@{iTm*7NsA*V3>|g0-bw8}Vu^7_N z>$zg$DefEW6+59^VaUv02XKc`!B@$c;!OrbtaI0B?j+wSw_JR|=p&z-kROeTh||Pl z@@SY%L}PRv@bi<)_n-Y(VuZvqXC*GdSlFeJ%OT7XBA{GW@JUCr@!)F-F8ixH-sb+= z*nl;^j_Wa=gId%KKdXhvM50!a+1`e{18xdIvZXi3S)CNYCFJL}$rfnT+|P#=9cMD3 zag5(8$q)qEMqhB!=y(kG6}W{%(^_<&)cTsKJC)PNVZE;WqjG|cScy|w%c$(N{wxj zDdbCg4SvW(>s1QNA4tRiuuCe5W}qO;Wbta9-D64l2-~9&WW(Rq&m5K_oq?>AsTN3vCPFX2;f#IPD`=!EprX#a#W_z=O6LjZC@sQ!C=1I9@m0V2b<#j`j3RK# zMfOI7O8QL9xh5F;*#MU-6ze-Mn8N7cK;-)-_!Q~v%Q(6B`7l$RP53(B4zDr?LXN&~ z=EGlWwO{SxUrb=^f_2XEcnWyrDUyvAnY-3F$nq-FO(9^-%V&b`0h9sO6h0^|v7?`{ zr>}BhMgei!3=0<=V0b$3v^+21{#~XGFmz~*f5$q zINLFsS-H3}ySZA~x-eVWy8xYCnar46U6|~Q9b*-`;e&)R?$SLBR>Vq=IT*>v$jovJ zf;0PrTI(wG3;Z4Q$r)jT{Ngj0aCcV^G_1(gWgnuZ0P~pNDRfm2*7$uoNF^kYS}WaU zzI;6zNBRzPAz=S{ijvq{8~*`*c`;F0mtz8Gtm^v8_H7y}N&uyB4K~tjX)wUU8H7I>WD5W2IT#wc0$p5P3=NsxT!0c*KwC2rXJ=!te?6I}KmPf6FLB`}WkXri}_fn2oyF9E1$_7x;O4CbC=K3h~H({x+in>th?;$;|| z4x*RA+&zJIa|Q}kO9TGd5unZe&it>W#rORwJu(MTa=pr&FM8fjdk*&J?|vs=Jj_Wi zo=t4K{Q~_Xx|a%UxNaa+i6G%)*7(fp0d_TMJ)`IF@hK1tNj$p*zEd8nknlYnOq)F` z12?9D9ileuWNxe-#SFV=$d@HbcQ=A@tv7a{xrwL%s#~dfffrdpp(?W^#)rihKZ4mv zuuo0_f#?I7@GpT8vjm#jh&p&m+dI1bqF-oAd3>~H)j;B$;o7HcVdt5J6A$N0f|*IU-o!V!#*xQ? z5nm-3!Yp}BZ-2s6GjauZI&9q_6Z$1g06RxluYUt2f&j`tA&;Z{FXqKcuQ=?9_##Lm z!uO4umcm-MssZAU9pNIAEaAA{IW$$)Y`L=ADOq3&uzEF* zRnfje5WVXx{U$5}Pm&1Hs*QbjZC0Jv*HMqhNFf{dGg zE3K~{)rYZ)7xsBuFX?`Pe8)nCF1e4z%!bWn?7_~7S+2>jNwd57dTlYABZz=oxEE8& z3C7j1JTOZ)4~VqCRjn-lQ7;0OvGR_qkm||ecmp(yaq_mYW zbFq*NDNs`~3~8K9fdXkO;s~GDk+6asqu5z4dwMay@`}8LJQd=x^jv#|?1Qi8S~imX z+xe3_&2Tvxh{wGFr&T9Tmu@_SsCevL&LC1D(6^cr!q`w!4@5I@c^1- za#A`C;O^6P z#n=M)Czc;e+kiE>2_?)z6o6*|rA2nawjlJ|88kvD?Jn!3fv00)2KuqYCYD7QAO$`8 zTh~o_g|LV-J$gLvLg#~)(TB<9E2&Jm3MZ^fk2Wu5sh8i0eDv>H2Qc_Zj}I1e@FKzp zQSDxN^A+5J{d{~xQtnNYKyU^?Ch|*ek$1CowQ{rtsse5Qp6-Eif=?d0V|I916s*ht zD&LfrhA@gJB}<0I&LruO$r4<*RSOfz1)A=@K`Y}4yUg#^{J1>teQ zNq=<+jukLM8(~fESnuU687$>Xm*;*9|5n>XuxIuPKtOjuCiag2+d5cSnKE0sC>Yy; z660UY>rY48#k@cWX2IxtKblSKv|loV%fO>myP?JxQGzzvM`a~Tdw&{x^YW8 zYH;<4mmN|ueo1mJMsd-7b+)=yla4$@&e5p}N;i6PGxkD7M?R<#;*`GFvd-I}KrWV+C6SkT5Qq7^iiFJ6gLK`!dfn5Djm#@@2DytO z$N_Gs6Vs%ZeCZ;!CQVH*7T`jkOzd3k_r)}$|DP&-%S-{{)9Gvh8SgK_`>Du-lFjp=-;zzX;m8K` z3}%cI2?f;v%BKLWV%U`PDCB`hdmzcX&C|BF=N)4d^GFyD8K+I`7|E$y%UR16*%zX6 zTf1dkFnhi<3k(>qrORlfO8BxmPAGKVZh9KymA_nq`l$KIGF(y$^0*6{h6l!(DKII% zD>C|p3!YUWFVysQrm-#~57?yH-TdN*tj?b@(Pm4oI&WHAaK z4$!rg4IcV+(71jVijrR^IGSf(#yVN219nNdL@_`V8%oI$X?9%=oDxK0@Fth?oKCMz zu_8?;J`i~GP2EELcno(^5BHwpv=d~%#aXiN~YCTJfCz46elP(y=PF(!ng92O3n}*m0+&~ zIie0S*h$-WEs*_24t}owQHjrVp47xJ$bK#5{DxK0`8O$L;^6sL%8?rfbpSvr>g=wT z=n%yl4_lEmXhWnR_&_7OmA*|!Qz3Xk-bPCpX6j!nvdIk@mcJkmU6JwrITf8P1O+_l;8>9Hfb5@>9u=Sk z@Gr1G(4NVDo{k8Yd>bbkJ4BG6_lkty^5=%dv~P)TJBtk;MNzKGrzPC;i-PFTk(`uZzRsKcdg4zPbbEF>#iEc z2I++ie~i|;RX3lfXzc>oukq5~3Bu3e`uBrbGQ$Z9*ZeJ#;^0M^{46O0+wkefHKX6d zwG&%V4&{h&2c~3dBFwpNI%5g(^Y%Prd3F>iy*9IC)L*j-zSO6ApP-^$7ee~6;1%WV z9=adU`M&P8s@{!TqrFUQLLaA+3tY+y*ebWWa6jW@9ki>{0?nWw6B*&)P)mPMsVzTHA8Q)T3}*o@n{R}I44Xz)cbQmg!OR-L|Ds( zu}ctKE@xRiEX;+xZajBCVXhPZh~<6R66%wfPX*bpDZziQ^FJsgGO0=~BR>+Y$bP5c z;hxpqvE3($WJ%hCaXJ10{aP)hzRLkoA{R|SOA&2mD5)T}i4KwDEl_GO$L7et^4vn} zD60X{zDl6%*1!3zU-;%bzn%MOdg#tFY@4tvLJ9fdSMdg<-Otj#skR3PAsY$=U)MsO3VQXoKVZ5Uo@Siq1;B5M)1){hEZ*1e*LAk`)?svW#>SV;@xO*yfdG zM#rSp>r_SpWvA$AHKvv6CYTvz6p%(fFoTVBeeajin3D1Kz7bZ_OQ|%}Ny=2M zd_Dy;i&;^alAeK}0co~Ng@s|ZTMXePGao0Mr+T`*pLJ5HhVT!?lO_QF?1p6TWs;2S) zO`AKbC{*QU{Z_6)uz@sO+I%g2n7RX>xDvlCi=|_^TM590w=TinY`zHdC6GxbZxI{R zR WRIT!NI&F2sDDtyC_dh3b9U@F8F}Ot^)kl$Xo`pCWvfWd|J9jnXbY)k6YtGC zu&l~T@X8TyForrE2%9x9{`r7h@X=db2j-aV9N>QCH@KTTwhGP3=eQ)bc5zh!>fmPN zP{}&*EU_yGm2Vke*85vijt&La-^EJ6d%9Iy#d0F9DoW@X4>Xn2S1SzyrpPAFN{a*2# zF4yZ|a{1u(SFL57XsU=Gr`xDP)WiJaiEg3w+JN^!ZxmOV)Chg|}gF5*d))NFO?iaz?IsA?A z{pa8wXO^A&_t=*C&#^rZJ&W;2Y(xAlwk4S2as&A~fBwgBBp6QoaNlq z%b|XX^~=)wJ|_^2r}7~Ovi~0I|G(z`Z{U7t?E_-|)r^}kb~#VW#(t5fnTWEi4lb|a z-VC69XsZ$p)aS7}LfS*vvW>?2!o^U1uFUp2Sc)YK_kR{A?ooaOT~ zL{K{*zH11b#p(H#FVw`<&z#hAhIr~F2u2>reua}d{MO%=GIo*pxq%3bX+s7l#Q-%* zt-(Vhp)@?WZH}dEW1-0K#+Xo;T0%dsQ(|#Zsg4Z`7Y&;xK10zy^_G62Z_dkp@bEB-{M=IrKb>7`+8>-LwPvirNv4>HPm zQ0uND*&;(`9l*27PI{p%?&}d8ob1@^=Xl-WcpWK5kZ%E=KIvoGH#6SWUfV89Y53ab zBR2B~Hg-s!wCy{t0ln}S=KByuYMePabi7xU57y<|G%U-Tw`FcMGZ+KaXsu!M{Sj$z z^wFkzBEs{{JO2&l?V0YS1qhxu$bKar9Y9L)&v^XLS>wYv!_@zpHU6lGIQ!-QRuCl? zxE-57|8)?kAS(VN2Z54=mm}~g8-Rv@hKA-=o~~}rz^93zqp_>yPt3DXaTLBs81XJW zM@-POE_Xn^C<5CDgSNQ3brQQx83WY!)kj4Y!0Tb@O^|jjjsDW@##n4x5?sMpJe%%3 z(%<$q;}{*T52LmI?QzKw=oJ^_6nk1}iQ3?|5&+WXwJ0PN3_9dfItz#3sCYT~71l-| zJ0y+WNT;S4rbx7AR}^SQ0g(aAn{bJzWJ{fc~YbOt&C?f+^|{YU@O(a11Ljm!QA z7msxRN76F`H;es8VSxTyVVIALtB&K_QHVROmTCN{5a8N;`t~&Ced6B#*vJ2I%KI-! zKhy&C-)aF)@H*w*G*SDPUEuQ#^`ev$4~(X!y9065^;HEC6mV&h@3}3JY^jL;EG;E~ z4Q2K6?O`tC`c+tnGjX&mu2hyg4eBI$IlGe$dk zB(0ZxvS-VVJmzDHYNxq}=f(6gC{C{9pD1PTvdJsj8TMu4W$ZLt*rFQmb0b%LQPy`b z=TQs21vM?((p;duD=$n&>oh7V)%T1HXbuCL*P9WlIpG5+=RkgU{ zx(-{9)w$&n*IDrZD1ZS0+TOp=*K!rKt9ul54Dc{%FS3;w7?r4=1nCZc*bgZ~br_ ziPTB!2D_<=`q#krU|IyBp#(&i#B@kM#a>6cAYa_Uo(pd!N%~8tK}WiUXxYO7W1BG3 zv|i`qY9H$t5Nd>YcD+-5*Z-VNC}a(nW$OYW=<`N~q@R^{S0UNmaV(JLJMJ`;Z-M9m zrE5<^(_~c2QdQ#`8-BL3{EH*inouyjPkS21I?;jYXMI#1$PPp@YqDcSyMo`aWOrO; z==AgVOY1-vY(OmC78T;WhZD@lkQXDrVoD;R#ZuLBA%yszd>FY9JdN^Z14WFXO1FPl zFNccg{2ZL_GCXzw%$ZOb?jwP4(1(O;ODrEl40`p|Oa?rqq#;Zi+Tkho23!7W&GOYO z9^T<%+nz0bn(P1qE_WC$o<%t)!&X4hRc)iT&2#+rw>kc)^tZ}ch1%;&$;2bq`zEx~ z^C}-z8&COI5<`s7s~yyQIXFLy;3>}Q6k6X)>#`AP;v_eth6x!^lU3>t2}ai((GaJ% zyifZGow$K8mz_^?omv)0c1#{-mnyFF#iUZ1h3Te|N=!N@MgGM8!;qj%Ag<(5W@BA& zcxRbx)F=l>s28oK^~F#oXEYFb$esULdW9IWsjj73P2)SWSIy5F*+06c@M$s58E64ojRTd?pXk8fx4w3s5p`8b(R|Sbr+R<)9aE&;M;A&Y zqaSh1hgqOctC5@--2MyG5KAVVK11u|Cr&<8VSU?_aJ3F+vqxySHY8lCz~fNV}J+q`8~c`2!1E1HBqog!353W)3eHmg_QKAR?AIQTR5Sm zcsSQ|%60HCN@>*$b~&;Q!-=bEXh=PEDb3xYdv%W*EK@WBks8A zmIhloI3(WF5W_E6F((l{e6aE!T*@#0ZmM;ZGeC1vo_+W83gS}SS8iJnzG#q1g6#ix z%v^x3KjQjvv+`eOj2A8j5_mRF5F$dVo88S;WX-VcI%2ma$M!)w^<~=`=t!_k`QM-MWeO3RHmRL{< zsdxCpVgHw=((ic#1n9R`>W`@Of7ln@c_tX3o2YcC2`>L~_zBgjT7Gm-*H~A(*C*Oo zZTc-xQ^`U^96bt2dpDaq|GRw%gqvM*j(U~DSA{-=_UHb!@}$MFCNjpwh|4lOM0kcR ze6zK8=R~6|4DW4gy`a6`=lv;IArQS!6NFi`vcbZAZafT`A@aclemA{f&Lwd%b(qeSXE;i z(E8my^LGNBfdtn3D{l>2vMuo({9C0~dn{|+EQN&H$IdIA?8(sw*@U&OOT5nr@VTQ+N&+%XUg&Kasp*t;>A>}2Wa zelfOC>*VqEr;+TS7yoyGD zF4dkdLB4L?0P|I23s1`s?LI0?%)o@iyolCV$2ldl%uhZ)bQg=?7E zb5J<@A$eGNF2Je3>AR{oZZY|6juAngI4;&xRfVq%`uw?@6accY%)>s+2eH+SwKB~Zv5+To?@A(U z-72%$SS7ME=SyX=kAv2dNGh01%CU8>$GjKP3Xq^ghK%JgbH9kFZ@!1&w}om1eu6~I zt~*lm*@)^=+!kg+BSDolI+%jjx-Z~mxyFDSVoe}49Je^JThZzdi1J$~2B&FPhA#>( zCg|9HEl3OtIXak;>QJfhC+(;chZQWtc%cc!jMc|Z3c zMRUU~o_gS2Amaepf6u|clY*zL`>#!Zc~HwSSomrA^k|1++KO`|l?=L%tO&&=4B|_l zU^3bEdc6d!c2maE5;wDVi@I+HtspDXOV^a77E607cvk7f`L$PK5#Enp`B$O?6s>h% zhq3Nyh81XCfLUz^w*}6JY5gBO+#m_71ELs>-a##kr3w!tO*(>MWHKuuOX@*LS6 zY>G*H&D*px{WCz;dWfk1HFbf&{uUoUr>;Nw0V%KNsQ!zt3Mm@5)PUi%S5>gn{>|zr zA-tf3eBC1!qt1W9w4rkrgcx-;K3jkwXi$I-HoGLjTYhu%&5rCfis?-lSBVN&RB=(J zvy#n$;hygn!DRT?z=h>7tMdB+P-ph1@hZR=9P_Et{4Wd@gzER!@lOev^=Tay^j?D7 zH`-(8XU~m{$ELE-rUGgx0-Ys5RaDg#G>`lm(0SG1a_LzX}YIEysy)UtKHl}SR zDTVM^My`F^V`es~`0O{M>!&n)Dkvc@bEKY6~B$nw)=t+9f70d;Bu z_<5k?>967b#F1+MPftbF&BVpj*~$bc>h-i9`PWm4dD_!`nyZgX^0o9I9Oe;Pi=aX} zSZsMnycXw(!6?d?RYV?%0?RsU#L*Mq!#~wM?jpuU;LLkgGx3`(P(nV?Df_}JEs%%fw zy+2;rp%j6P*0O8p7|>vdW0xUGM_S6k8oX~45y>ziVt44LSBp*B{2C%D2Zo#_O0#R9 z6_i&uORFcYWB5?%sEK3h)1csP#aednwc3h$!Q-#kF=0x}`htIRBeQ>|OMoELYwzIX zJB5YqPd*lKaqoK?eU*UhR~GABe%svvU8Mt>ru-Sn>d}G-zo8kOmsMHpw`PV$;6G|7zbGGAx(@}(03>Gu zZr?J~O3odA&C5N6ACJ^%xZ_(SP_F3(fA&lX1nF;4w4uuS z4xk05JLcQ}$J#pwSE6-!py?PLc5FKx+eXKB(y?vZ?AY#D9dvBlb~?75yp#Lk&h433 z-<^3cRl82r`6G4K+Ka!1?a>*`!?ZPR!yJH_cab;81k2Bjg}DRi{EbEG&0VIVSCD|@ z7XxR_$jT2L#V~;a2BNp9Ngi&)fwJFiq#}2y@~GLB;lOd@xMXTr6%a?d6Fa^M^YyTGoX~>? zpv4Cr?dxEaW+OGK~VJW@M zhE?LAWe7Boy*d2k%M90vw}_pbHR&hi6B?(LlQ!P$cXZ9;JXMP0Fg6pU{yN9IqjUap zwm_w8D5sBTs5`hU#Wj8R+hkC>O4!hQaP}@$;(wR*|E2i$o-hL}g0b;`Pb>c&o4vPS zz@LM(gaydYBbfX!bf)sVKeI#$=)yMAU31?aG*jZ3qS%ll6Y(>r2~0>IJ&?A7q*HVF z6&_+8{Kk?`6|zP9U4O*2kb18HJxf@FYhgvZ0qi=*bFsYsYo1`$SB| zQI5lnW4Z2yq8NZHh+~H5FHSf|Egh z_}8Y74DnOiwLgYbDR8h$YH-{PvG46q7ZQtCna8zMSUAf|Z}&qs{1otajG&nmP<_t7 zfv{Klpp5%qknu5y9d9zq$4QHwFQ||2KdBY`hu&;&z^xnJ7;gFJB}YD{DsiVL9G{5&&vdP#jhT zyVi_wZ5n}a^7^k4M4X!O3wls1XDAu)>9z-TI<1MiJ}2|z@fTZg!U-CU6r#|G>Vt|n zN1Ins$IKZV1<>6ol!RqG8roh7LyE1h49_ooZ!vu@fM z`uti2NeYLdMpG!!oQuFTL7XA9bu)}alKIf)hnn9g>+%ARf2V2_a99B6KYM_GB*Bh= ziT6L#;CJcs|K|)Qb-Z>`yZ`VpeVTR(x(G0Mnva<+PB{g6Yg7AVGUDihRv7mCJPKg%!s&Yn zAOmpt{uZJC2(AAh^p7FiKL*Yv94Y$~E)af&eDRuCWOcbb16>2txHp7u>;fsNa*M`n@t{M*vCh&6oe1>V~5Y zAYb^?g#6dYn4&gp_Aqpo88GqJ5RNoJLZ48T^d1?X1qM@XDFiGcRPeB&*S0Ji z&g7Q(;1?$>N>R-6yr}7p$x7Ubr8t)IguI4oH6!F|wO4AZq}4?Klx~0@Sq6z5*^Wx- z<{RhEiu!NUH6lz*;{X5b9r!10e+jnU!J2=D{(qwWn#xcsBwwA0{y_ah=z2d!yUMJn z*4Bnq**C_ZgIlq)2XNTMqQ}&sprWmqU^vJXkA|;%(nfp})xTAZK1_6LUYe zPhCgV2ucl$R?U&zXdf!E-W|dI)rtUVp3AoZ?uh7bd&hr@;2-z&=V+h2we>$inSa4h zjuHIk-EGWHT-V}twdirjENTCtBq<2IZLO4veF4)5mimcRiAG54X?VF$okcgxOSf%gH zR+5h<_a3>ECh!gtYZgkj7xyqZ0mK7N9k6yAs18_t*y(S9Q8wNh$u59Pl>jdN&9*9g zLqTgR2RmyE3qUaRZ=T3Ved*={0MqukNcq{xnQKu55;R~`GlaMTkt8gGL90UWTi(tq z%qTgh2dyc0)mQx130HL|^se7)cI3Jtti}z ziGOqZ`Q>eC=DKGl!E%D!Vz{lcxs?HUZUd!i3%i%5GJ$I7%oW6D%B)+|2rIFVo3c6GdbmOjbV=*9Y|nktmSpKu?+hH@IdejavRv#Gh> zWFT(kWGK*~QBAs{=ZaU_fN@W1O=p{T0FBat1CE!6(>Wv__VcgOOVvDN$E>wtoY z7wNA6V$T0J!tkf2{970zWu;`g{t$-Dc#y)bgA;W#1t@-`Saf))=5GS+Q(%$wug<~6 zv&k;HGS*IO^QRE4O>0S(f;AM=U)0!BCl{NA4@!VNvsxj9Z7zF$E!$@`Kh<+XZ5!V* zx#!|1-}7WWCxq^&6c3v1K$g{1P^Gm>g0^6sL#x^bTu0gCqs1cw?icNPKokT!Qda|` z!m!A3|0At0iM0=`M#q@%FWp_0boBDbKr3stt!mcv4=KqD#hW-)Sdw)DAA9sMu+*J= zu;!L-khsKbIotOd=uXJ@fcK3dw)r?r%au4-k?+&{Hw!W(OAB4rSti)k;vOxSeqwIn*<& zxh{!hJ@DODSa`WaWkh(mpA1lh%0tBiOt?x{!)X)G`;j)f8jdmc=5yBVQty>I?iqso zS|Uk`XGDxFK#`8iyIOm%g}Pv^5$pFUq6Z=|-#q|Hxd1U?0DS(9Cx)1rJ?kvUoY3vQtq7A4(goR z4mc@ABxOdwNP%g2c+NJnEE^lkNVc^%Xn8K*8J~FC%k+X6s-3QW#zS>@jx8=-T2NY0 zE>xJtiASsgrLD7rYTSgak~27SfwAy+8b^@@tK9>u+F-6S`d|RPV9fZkrxp=8OW(N5 z3W6;uffT|>fuGtdTWTfPA{n64K^a=z^PHE8J$hCk<}Dj)$FR*#2d|f6*X11?rx?DA zR8bwHITh+XDs+v4_2gHLGrGV18=|J%^s&|wz^-qABlfr0_GeuFzUJqhf&c85{7n@2 z-$g<2?3?3*R>RQ;E-T1bx13=N-la= zsfb7YVCb{Tfe?`8m70u^=do9cm~luC!6UZ)8saYY8@D6CV3;Vp*mcjDYJF+8ZTI+n zrqNr_n8_4C$~(fw|9>RuFSPv6-MKWEJ=vsB_VpZ|vzT}q#;@PxA5gzM{T-=YR` zHC`Uv`~o%}ZM@!)Z(Gm>syGELJ(^YE_>8R8+4zjKt>^~IG{0GL+%nmQR>1E!0!Z}V zobmg|g}mEvLzh28^Mt6;_rw{nHl*@13L@9cbpFg6;evmN3na5d2g{TYMaY?z#f(2h zC%Y#IV~u-WX-PQ?O0Va4e;$gk1HIXS8ACnFLQJ$1BID4()Gt~^3G`#4JZthT1>}cI zP5WLq>6Rw_ii1C-T&Z^+%1ZN`L20#tzhr{gkNHq9fQkk2Eq&@N%yfk<12O$zf~X42 zAgeL%`>d74a&Vs1haOTrPVz~4oa%({19BPK0M>=8{_Wcc_<{|YzsKmr?;{avv@XN% zKwLK9$NWyZImz3B<3Zn*_OzNRWI*}nZZ|TC z#i$e=?!(=);z!jYGV>jiSx3j5dbm(3Evqen=$gi5j<#&KOMOHO>A|h1_+CpTN%6|= zP|*NBQ|)o1J+R;uexw2#D4O4U4Qj=~m5$oq zNVibdf&n!BVVAK}BB-q39I1IL<{8H9D`ZZGPJVMW)x$mNivXHj0aE-oGn0Qv@n5T0 zo-+Ja02zKB&Q#g-nGs}*j5MbVi%A6$R)R-l9*F57XGxHqZFkm>S3b#cPrVq6Fy`G~ zy_pP-8lsq9V~vt%5^~0Ste0@K>(z)Qr0=yka6Y97AojDyE%wOCP44kxeb_-7r&3V) zsYX~;K5o2@696#JmA=ea`=V<=Sp2sst-vjq+R)Vo6 zn>-MfE(h4~nuj1e<<~`Er{ip_?k~m8pD+Qd=DpG})b{iH!@Qj^=Uo{cn654)1_z%a zz!5#Yegm4j+`|jrqqiu)`Fkb6|0du6;M-sB-w<&Bf2nF_7l=U~sQ?3tn%=@Ot<7pM zX@L{~eBo)MAfr(!z`vWD7v%%Y&4L@d1_O#h>PinJM16sbo7rgJQG2M3ZwTJkERP7R zF7%f*eUI%!Ko^%>ULw=GL_^Kf{x#nTfQ-l=0MHWhzq$Q?*X;i7nzdy3q2FgkzKrD% zW|kE$D&>TT-4Ji_AC-Vvewm;3zjxM$R(8kuHaJ4;I<-2>LkklIA=&@DMgDzbmGanA zdCwgUCpV3ZR40hTe)vaA=*F^p7%Q?cw~lcuZ<0&BWbbJS5=CWm$xwKl1E^#NjBe*A z3hxqjx;1H%7i%&6i&gIf2@cyu@swpOibB;pV;NKAMs3Z2-*YY?djK+Iyflpr5sH%Xc{ za@vyOd8NG!Uk$TmfD)KHOH8lR3Z6^ygE-lxxZS}>Iu#O0JigcK96^|ZY}k`feZ0#S zQ~a292)eI52C_9$+`i$Wep#tuBLm1S`vYAz+>92+ssgF6|hDQJYly%^8Nk%`C$ zgnbj~Pr6;PPePvAS^g;5OMK2W%goW?VomAFKd<}lsEJ{H3DAlar;w9(r6l#yY{IE# z5^`}Bb`dh1RIZpzJk!{zOwvHo7%b3nb@o1~x2)pkCY5A6`pg~3?rI)RaSf{P&dAVh zIp&z{ET+?pqoeN~Oa)udV>)R0h5yVbsn=qm%NlW@0oNHWIovI;!nyl0)O5!y`vx)M zqBYm38zDBv(iJcl;x?HQS@(-P0E@*sDoy{0I=CeM?Uj+fJuXZxLEMFTrj2`gy?I)n zeirIO&mP)eMH|ET67xOG2m+kH*KzX~RsF|3{zXld{;H-Qv0!2mwp2i@ei*!l;k!H6 zpmqT|66wx7&!@(wD7!j0l{3S90^KAM@c_tXDf(td{dE}to#1*+gES7gN4!1OUjZPS zcW~QSXu+x9@#qiZcN=FoSr;FF>-Xh>0%|q^5b+)_{k?@l07Cu*q~F27KhRm4Kj)dG zA~@gYCjo5~buE-r2k53!2wiKSzBl~MECCzM8cv8G6#x^UcinwbdV@Cb{?3}{aHV~L z@xs9=M)H6)Wpz@|)WT11>%gpj1Gi#nWp|I|9)4@f&G}T?;OzO~`^h6=zF5&fEmnz3?e0yVEI99Qd4H0mb*ak zWtv&I4S}gGkiju?{5*ywz*H`Kx%0*#aUTyKKjE3;N)Pumfdqq3`+ zK}G`MdQM!_VcKS`D6&)TPcNdA2M!lmIH;@7^Ij>AFx)ebq`gjU1O%E^yH77>Pax}{ z8#2;BqzqtUJKPZr*L6R0JvI*QUDQQfb~mk&J46E46o`TEWG_bV zBEDG~fa?_LCc?*6pmarykChrY1D^@lUsZr)^i zmT?+;tIQ%Wsoeax0TW4HT@?42&Z%uH&7eaz8}>`OBtn&_v%3Dfkcg-f-|8`Dg*lBK zw(%~5xEgyO_QKWBYsK1nwW?jgbl{*-&CPra8pz9s215hs!H(A;I-ISj*Ztlh6scMk zvmUC}YW9bGQ)K|W_x5PRVs2XTTO#l^u8Ls3if(c?{hAF@_zjd z+V>U1=zCwVhzRg9f3NED54h3kAB`mcSZeTZ%}|Pvf&uK56n-1l;6;Wev~V>35$UOb zEChI64SWVs)Ex2UPFsZk9CeT9v=P23rB6dejtTHMSC_2N&)O>2rPLH=VccK*N1=nw z6@w#ljmntq#}piL2my9&gI!%(mZ+~!dRZwYwa3GLhU)Y6O%jBB{(wMBf1jO#? zE64xh7A*hl#DDL!gSh{oEi525|0BleixUl?nk$9E1qH$ga8T zq0qv?s3eY6{;C@pjxt(%pHNT#_9)CH@NSdpge2cVHdVfe!5+#RS1PN4y|%^U9xXmi6+DkV_N@Vw)?I~=C1qgbl2Fk|MPJuE1LW>!jT zq0G8!GbJ03Yg15n9CdFd=V6tSQTINbxh_qWM0z}15}tZfMbkp63V8mml+j*I5NiG4 zrZxA4gCd*P6UL_07>IEd!)HwO0dqs076=vd!+Cneqhd06C@jEwrW4GO&qM=7D^rHH zGQ9z3h~2vTxKr7Jez1eE*#jw2a3ACa>*+ZvC4JAA-Wvq} z4`}y0d`0X0zH;ZU_2u^=ir>*Id9zu+6TDPjN4CRFy5;tT}%N zw^~~WN-B0QB*Y5ZI6M+#%90RbD*G}NvbZZ zQ9{T1uiD1Gt)IaI0R*&!1_VUf_iTaCUBbzAvy6rDj3%uv}TMAvE zcqA`&kf9%x056PgvFjR?=`PSlM~dGtN}yCtDE7-smk1W?(Z<`Rpj&}n4|^}LUowux zs<4Tc{EFx=2KpwmaFZ%2r_}Q?X)p}4Fsz>_SE(U4e6$6Tb(?yCsYsUaXOC*+5w%r> z{&!nErf)gl1)}nkNb?x1rdEg_zzbtdUl$2u=%z*b9yoK^*Gg-lw5s6^g9|{yNV%vJ z;8@gtFu5>@O(hH2B|;7ozSw$K^R84C_G1g>bAP6&$eoOAb#dcxs~E+Gjp#1H5MGSRQjYy`hHF*iE1QZR1}n#MGYq*;3C0$ zC8iD?80LkN5gUnvoX_m>)gv(Zru#Vs_~GHD()tpVQPn7UXLH@wj#Jc>a`#IowAnok zqYxZa6A{!e6-7(k{1ppn+w;wM$S7*$-~>(NAxNevVT_|&H!VlUrSheZW%&r%B`3Bo zUzSU-(t9N#b06BPKw*9mBgI4+cBmm{aD3WzUD6SJ5vK!LQcTZ55(h`jj}eLqh)VxC zK)TjA=IoqUP^=jA@pWh_(skqc3wS6v$N1Ec0>izA2v*Y9`wN4Jjnr2vqUOu}q&ExA z!Lh>Gt}gk-Sgi;qKGVD(6Bfu@)SZ~QdfmI|Gm5lH8V5SW>*UNv6uk4-nwKm1Afbgt z*NG3(U+8;h6IS?TVu5fa2bCx_yj@;>%b<2ky~o*7yEv4JuOF`V>|g2v5|%L^{d7+p zKe&kpK@V@OVRo!V7fjK85!m~>AN_=4=PNO(Qfq4ssua}#TUuzvWHiS<_5**H^iA*U z*hjZ6Mnwn-@q)pEj3(ljz{i)NXeU}|x?`jtXTRVyHwK9N4|U22&(5}etDz6@I4I?P zg4x;LR2wys&p|Tt(P_~#_h`gU&tTazXEji}wRh~)j#xjVl&L--r%>I0vjv-E^dp1) zWvBE=xSseE0l&HV7e2R#zn~--+wP;pT8-)MrG^?AM3iLMvTcC=c1T1YVMNC)7?i?p&uCrIz4KtSO7hIpqD}TW`B&ripjRc=vAd{x* zDj4RE3KZG;HIB2_#wZ}z=Z5#nRQb^RX$Mo3>%1aE##8Stx?68vikOvkUufs7-G(sY zrr5S0{~VfM7RKF{t|g=Q4`BHc$kN@UTa8}}CD#w1T7j1z=|px0RXlpgQnxNltb|=7 zKO~fi0-Ta!_8qVP2s*Al)p7s6&iq$qv~P6Z_vr3s*U!TldIxL~T8zqTemH4*V%b?1 zR<(>vW%H>w$~DgL(Dei#fk-1bBP>-($>xB?@{-lR31;Y`m>1wll=ba4^k)%l zUxslPhF%;v;DGpegg$}R7Hv#3VKRdw(%N^<`IN9~I1rz@p4fA09|l7`q|Q7Ce5>28 z*XhjO3mnYiHmY2{=qV}BsGljR*P^7R8*LcPG>d|5cXh-Ji8o})5NEb!8Yk?M<%(S> zPG}5#ZlzO~?65!YZ$;#Gj$wD)BA@PC&V5utxLQ2F4BNiyRq+(5Zt1*ay?TW(-no&0 za0aQN@B=MMa#P7kYHrQ__$^Cu5b}%@vr^r5=o@=4v$z#w%NA%BuG=7rGxX-wydBu_$%%8E7@Mn^+sX(Pa1v@ zDUBzu^l|kS@QnQOF~vUSMo>vpcz4m>?oY4L(`a~WS#6#ty_35c>)Vxi=6#ls)EH~> zyY*GQltW?sZeEsXyqGE1!ICDb>U-XQ^}xf_0bkn1fq>#2KLFAGClCC`10be=!3&pv zEekpEG`GiM|F+@$686p7N^$l(x%1iaHu*5-1M~K()$-o_aiF@ng5IEBnx3s%KJKtl z&uij~>C+dufgYkyVu~n+<2{l+w?Yxcz%gP#p+bbQ(HA>qskA>>cg`(hGsa7YEsQI? z&yKAvwP5!a8@%k~GCf^2S6hUh)lzV&FMY>zjdcr;^EOPoOUGTb(8MVB5QI^>#0(JD(Ua zR-#@qs8*0&B(gBd$rm&?zh4Yz!5C-+#*Ff9AuV9tDIkF6`NaAs!_E5bqz6ySNwoPr zD|!Avz{!4kG6Uo3_|Dd1Lh1y3NO9^h73VB!_RID1y3u)QJNlRsqmKuAg^F}3vMj{W zh!%9Z6+$rF#iZFH5AO6*Yuex>pL4|*nEOM#7dKaR+THDgy=VS$4~pQc znsAS^z1Q))r-$(u9dCtW6ye*WO4;KiotF!}M-NSD5xQnnhe%ybc*i$A)jdSg5RuJ} z*36In3he{omv%wkAF@$C!iAc!RH7z)Pa>O@ygMwt&FS)RtuNYjyWRQL22uqtySJmq zo@Lai!87-Pn&>IF|LV}~(M@}F=wXXxU2b6cQe}_RP12mTj5nbWQ#k+h=)yr!%Xm4p zB`MLsnR>EX;)S>E>7d`Z!C3<{qNJukQEJnsEj^Q_Z?Sl*_dYBEMfJPdPb z&9Wy$yU|bb+J{qLCskXI%+4$V>ndGD^s=$qmLS3<57;*y=|lN|Yh_DNj2KE&pPGzq zk5aI3U7k$E!qkB7v+@48%YNHd@|Csuw;d-qMHo@k30nePBPu+jeljzVin*r>@NC0j z6z%1R30N`USiV_9+=-8PwV7PR>l|Hq>sm)zst_F!)MUUaFM zJX~R*dcpRmpQ7DFBe=RYaE&j&)JiIX3KeM6VA0T8C6zEflev&0c!8BxnwxMe0VK(C z(PO#u6Pp8)jpd$UIrI(X#=Sjklg>Elws4#C3g_!XzPH_*?8V`03pUO85LZ7cw-m~5 z0QC5mvK+D@KD=bSsvoT*8$)a)DfIJzg&nztq_7&X-4QIEUHXyF;+^}yVx)kmFb!%k z*deM_hU`WOe-5G*s#^9#k&W|kxj&qin*|MD-uK^GgO@BBu&*CH6w+k78QMqg zTp!McFR&+m@=ArOS5)gky0IL~UDruQG$D5R9H|!2fU_{STk78QF$2n=p)~6SFw|O6mC}$RU+)9MMFk3D`IIt zqf^QgKfy9*+yKmsmHH|*zgRUEqz;;LQ{&uLcvQVbRk|+IH%*%&B6)FHdQp^K`D7OF zmffC}l+^u@r2fXkFn*f z^7!7=RqdhPSR$-6csjO;@4A0h8wYr~^-=VB9%!*ui&}KMYdc>}%u+2h)t$3?(Xg?h zNTjY@ZS5niah&|y>-E8OZrfygI-fmL+D->wyZ!NGt%{H?{%)$}gI%-v$YM#O-)C9P zY~ErX&c-cH3;hCtXR2Y`DfTht7q9i}pJTX-93`j|5hn+_hKEJlP8_N6_slo_vGv2LjXj7V9ZWKcGpzZJya3wMG)r2hwZl+)bq7t8Fu>0D_0!hq(?^-5%Z44YKN@ z)1ts}Y;2((#oN^?M@0%u-%wdZ?YU_I?38USPd9%!M!;v;9O1V_q|HBp3AwISSye%A zBN(&S!c+P4^Z~{O0Kji^j?@eQrj4dsxZxS+VSxMN?n#$TOU6 zlw6USt=~87^Z@MclKirQ82d>A%FHIDmuGodeG}qoNy%??G&KN|odKSm;8w>QwipNe z%sd%t02ikUx)V~X&dJ4$Hu7?1El+Sr2#K9dw=|P=+LYfFeg$YZ+!@7$RvX@$Y?f}K zXio|nu6)7=j|@!1!I5v)`0B#+;Xbj%+g*+Ol?z8&yUW^90E_vk{&Q_j^~uqKjBJ_p zxNR&Ou;S&dx#Q^IRn5){rFRbFCF^wS2M%9tpShhE2z6ljY8~33E8!P1z?$DS9wOYQ zEZXmpuE zgml3nDZYmQiEg{OaLCz_q)ayOmft|EO%*G*JLyMa+$v_&`d8(=E^JfBR7p3t27U^L zmAGJeboOSy2|=*gbx@lVUmsM)LnLkRAH!o3$&Rr;32^er3|Wv}BM9VYxSaH2K_71$)}?>m zpbyB<7J6kyA)(+f`PKN;;8l`j7?S}{=D0|-?yczOr>89krFK+g;VW?}R6L17l^qJb z{per%jWVJw>B^OPuWHUiK$dHZ5eO-U{c6*774P9b9ZruafouR}5~&N7*D_SmL}l0) zR@y=C;|K;R_mv1sL02{;X@dYhCU-0XmyM{^2SX9h0OwHEIoTB=(zQ%QSb7*@gtwoF z76awW9>q^}!KNxdrEtUNfM~}>#QaOvWLDfVb~0V&pqbLcJXIMy8T255{$%row0dD z9``-NphUa}dRkf`I@f_Z$ci+yOZT)4RA;6cwePg|4dcyIjcF)y^FwLJ;*aeb)ms8VC?~gEKJYEW??{rKi)8kBXT$9`AqMtymwh{cAME+bD3)z zt#SsqY<$vSl7}CUdSRxUi`&yMs4Hmu;uwa{)c-(Exh$co6ab`67hGHMUZ8&0k3GaEjNfmvrv8nWMPAs-j;tbB=SDlM5rKD3l>Rqsc< z{XS{F?iBk&{*rdLt(X-t-$0ozZPM%^;{B;>iyn_xuA2N+HOdG#gqCeu>~+*eO)>gLXVET?RW0zCW9Ooli{B8z#i4Tbgd+-ujH znf;BzN1sN!GJ2@&@i~f%`Bwx6w_oD9SL2LCu}%n^hUusJA?tT#!)=JgmefJ}CoOqu~DA&JYflcg5P(l7C(@@458 zzt&x+>O*W^r-ZbgiB59Efz|U)OUtbWlq7QI&8D~OntagRDKd-!v*t2qqlFH4uO7Ub z?2l=o25ao4f4uP$3O+=KZ9jpSkduBMG({Ty6>y1Q?O;W>feebtB~q!F>Z2z<5d=Kj z0*_=s9R?~;Nvm6g)dGSOajKfhtM;v0BOK=0AjYXA@C5<-(DCTCkh zswBzTuHDd4qtpETl5hFj-{)Y`*I0qofgXVZ zhsn~i){*;}75UpuPtY0ZkFaTYcsEQ?g-=A3*W<4BdvjroZuC7~s3GB(*9{-;DcEt_ zNmdb|qoVIH&l9V=2Y)%Z+>(&Ng+24xW11|htGZs(ViSL?d%ko{5}VeNvG6IONkN^v zAS)-vMQ@MbX;Ky9@LZ80n+(Xd52V8xWz0$Q?B!yjo3-X8S`s9o#|yZ3jdXS8nSkp` zirn=|%j`L30&iDY_2p7K)m1K{^B*Y6b*ioo3We6iSyj{8{?iJTutg$UMJ+w7+$@C^Sp3B}4>xwK;|&1T^_^)9Uf$RvxR7WdUG z2NN`oOyxNWlXkXUQw#N8Dz_Xv*H^iwR?94cn88h|k_IwhH)q5Gdo2p&9_2VR|qPO(B=8Jaq?L3>&8tfD^@ z@+_Y#VICYFc%y&9L-qGSw|e*qS3fV2m;Fvk9d@W$C>L&`#p~nLeL)8)2PegZLU17X zKIDe3Ys9x@%EPWo?Gi54MIG}Ka`_|$L8MegUBQFXf?G_bRrNO*%feZK%^YvroU-w0d8%Q*19 z+I9WJ6q61UdGl+EnF0qorRt{{+zYbq#hL$UDDb&KK)*W$#60s_UBP?e%nM zh=*4_i^$jAFmRW~2-wy8Ad1sZOimbOgI}$<=W7c}=@|~5|Jc1KS#ExcMy0k~y}QCjS(9xTT#cpn@(qx3=WvsW1(~ii{8nK~1w=j>63=gijvE>gIl{D zFkZ96igkOxU@W2uyrHqT`;!Nc`v;_t2@Vr@RL!vu0$)d3laIu72^-u~X;!CWLB7vI zpal+ymkz8!_$snjNv_&We?TF#yeIYdL&Nm90X2~cxg2C{F`j^M;M*}__&~E7_n@i; z+b3aDZN{jY5@A-QU@6HZVN~TKdoCX6vP_;l$qxzvT?}XDeaR|>UG9iKe4l62gMIWZ z&bL?7UaEqv)~Q%yO*+aIx&^)QobDQz;c^qrct^9cBu$T&ef#>sTXUWF(wkEV!NDjEdhD)ot}wXfsQ1+OG<%XEm869O zUW2wgn4~4nyMIZg&Uh$6Cw)kl? z&C3Vu%`Hz&VIwfy$3`#tDpUH>mIL|BBjUsaT6&eB1+D5K9q4C#HQ(+ISgGhBkKT+( zeEnJa^sXn+r{I1xIIO-I6dCkC#ZmLH&F;vkpOiqj6?M(rh*@uo|9C`~Xi1G6?2t<5dJoSL4Tdbs5Z?bEEZ?#~ko=f4jAR z+dF#dgT!8z>N6v2BJC4vA`i*@!YFzY3?7XiZ5=%p;qPg+&Py}i->$QD{86U#VQbNb zr;)^+6LKMUwapVtN*yrZfQ(Yz%j_9Z$F|Rhtl7dQlZIFRBYMwfCE3`DDb05Q>rusm z;`)LMg%df;l0S-(HyRIUuU~xdMf8({Jl5VsV{C7Yg5#~%0a8P6uN(7O|JQNu$hjGW z?w@CBK?L%W(qzj>qu}zySmiZ_g?zn7-5Iu_`n5|$UH66@{_;40x%%lw6i$hmgvNpK zYe*hvsSGxKEgB}N8VFv0B}>x`rXxfA#M9)lh}Gaqna%55=|<{MN7Ei09LNTJpc{Lo zSqK?#E9M-U*GOgkLyakf@iO{QTo}Yiusgn7f_wtK(j$tZ`)VDm7t}VMy05tq7-;&J zbR*61y?z_lo?>q{yP?~c>RG=wSy5};Vq)7}B#*NqLeM~281$g+=P>52gYs-=ZNKg| zRb;KR?iimtnueKF9&$COu=T0EMzh`_vM)+DO0WfJ{_zudo?b8H5~vglLg+CBvM;@wq^{dW z{cap%a5#YrYD{ySGw>np zfUIk0RMK``YX)os5B(Np1kyn>DO?_hWY)1f%UiI{@6514mdUGWhMtTb-GvxHuaObb znt150%Ge^sb4as6VJCBFjCEY}H?8<8|B#+fQ3}OY;2t2*xRU%29BYlTqo^5^_qN69&X*dBUWzU{d&K$glVRJZrt8Nx%U%Sq*DX% zF7A}w@-wQm6i-ey(l9w5xLO1gR7_jVr$xnELP6`&{>~JQMA2zP-n$X4>tfH`yx132 z3_EDHk**&!Kg?HEO7Rz=i~Q#=(VO{~Z5QK~J{R76q>m1pGmJoQ_&zJ&m)ZJRrzEpd z!W-hucf`<;i2#{gHnC0eTGQt|6P|nRDzJ%!0e*CsCAcXYE7v#U!pWJ#7`9@aIfcJH@Wp;-gB~ox z2Qt%ITT!w3wq;}1VhX2dkny}H;losEW5O_(gQCOYZVO^h$;@ypqh2@ZsoRHEdL=NK zLYuX{;*c)POnf43F;J_0u*H3L&L=f2i51zUj#TmXf!LLGWAv* zx!QMA1P3;X&BQ|TXDL9#p15v9MT_tO3Kj@{;2sdD_7^ecY~2xVyy`tIjY-t?VLwN# zvO+*Ik3Pv6b4pppaFXP+Bz^#u36_0H5(JvlB|Ac3bt>)Z`}iq$;)SFSnnaSel}w%n z2W@J$J1uLi*6}NdKmi{<9>YoN1SS*ebqJL?qZyPPtj8z}2V3M<2~@IUYwI}sg`tmD zm-D{(c*ERn5EYF~&sHcJiDcw!3Z8nr99%#3@?d;#Gjt-jlY3(HF04$BxZ_%d=Bm3K zIeTA_qLQJk;|(0ll1E?Q*i$0Lpzea#s06~e>sCjJUUE?V8 zX?D>1hB@HL#a+}^54xxeu{UC}v>`S+TEIK4kj|3t=JTHS)3Cn;N*#}{b|3RRnDa#$ zbo#4g+F~~%ViEgYXg>MmJdwkw|4i{6?3t*0yI|UX`-)m?b%%>udv1V{nY+%b26~^% zh_*!SF!&%$#}amP|HDHC!{$NHA}f;``A(3xk_XJ4U_uLZ@x?;)<;)A*G9S0E4&17W zsbttfRAoK3^sSh>Jz%zS_9xC@_woj!d|=!yuUHEU;Mpkp9EUKY5X*E?0oM>o0kQxh z%L%DiPb4`j{~tpN;A$NRg)BpNj93%ydnsUtZ(%8(5-7*tzAD3Yh+KYunZSi7|m+j-wp(45|3_B?H+Wi1MI9C$BZaXPEORB4|( zerY!xp0>~U=W`hREWBUDYFrn6zb);t zs6iQlLX98-^&#+fp-&r1QRFzR9U^?w_}Oi!4K`x++pA}1{UBzq8PI3uO#(tjpE|8>zyqRz`TmMQ--#8=%iA#p5kI-Q#Ux|8 znjs3bSIiglcYQ9_D4~z#B6Ni0-cU2joWk?pNJ|9zeahdE_3PCwpc0ijt9u z$yYNciFa$F57lhmu=f!cGanOt+n@B-#%xI{eI_1jQMBg7%^jJK2Jns z=6xkhGT!$=Pm}6^dSB2j93gHS@w@AAg+ahuI#DAD3Bbfew#WsZ3c;dD;47YaT4VIk zp?ajCEK{ufh^_zfJADqL1`LLefTt3hojW1rVt|$4kAQCTWFQO6xEw2R;6qpjIpEaq zI!pkp+u!89GQvtx~I0 z8toD=Z6?(=$8C$0pQ$6gTrLZ=Gfh^b@qv8-@*c zI3+r(m!Nr`54~_$NLM-^(S#z%KtZ&&$`%|T(CugY%hqGaYY@c)_%G05HMpgNXj31r z1zPw2xH53Pbs=IzuK`EG$_2A27^Fs>1dQcVkEO6Vwuv`nK#mZigF{po35>vmOkI>c z+1?u(cqJsY%|km&VuWQ5h6raAM`I8@;T>&`SAE}NB!)pU(_E7^oq|aWz3nG2^lYJtq;tWW{>le z+HRhRiA^_lc(^1ItUxtsTA1jbI+>U>w*o??KhL&WdRB|L`4SQLbVakm$i{n}Kzw!> z90NkOxHU}+do>O^V-#3uPvV+7IQX!t!%X~jDoq#K?q_eV=Mo++j=gZeZMa$z`B!@T zSj|ix7@@TRk>%@W2GfLZcIpH0g10RdX)kQmZHrEBMt_R7NsN}{GQ&S*)7B;iUlo7) z_26tY+&JvU1#Jc9c@%~2-;A{oB$3hdfHtjoY{sP~-Y^vOQP4}wG5P}(tMlQqf0h^m z>)kC>(U*zppD#JkcE9Yg`k%%l96uj*T55*Cr8Dl+1UPWGqLa{@l{H75prqT`VT_^5 z;CLg|5o9W1SfK{wi+Co@pt}Bu`H5kc8)P2lgAc55s}reEsKH3&gU)Rn@-Z>qo}rz5 z7sLfeoyvZ=>Zs7Ia_7xCAyZrPxmS>NL`N2y)<+YAk+bx`eXS(TTatg^pCm zI}u#x<`Fyg2*JqtCp^$->l{$<5g7BtvGE zs&nm~o41!kroa_yRm_A}nqd&w_Df5gCCPlmh^AW=z8}(ox!M;KjnL&Lp`H8&k zc7u|Z$!|g#k|J+8`_AhB44D~HK-Q%&yYqc08;jNy*EW%}C9`4p%&1O7knZuv;nMe& z5jTf)rS!TEk`6Zb&r|MYg*>*Zr1;zCvuh~ct^#4|86!(r$cWD^+=$sLDL-iiH}&TY z694{$t2p@vT7iFj)=>)7TV7w))@Fb}OR-_%YiAw;3Vwf)O|K33Au)rffxK)ojSV*TFkPd_gL;6H%|#d_)fQcqKh@^Zn(>Q~O9bW* zmdJ)205Yi*t}#VRa6@)$K=T1%c-n)5W`HTNFbfGj;dWZWBrTgN0fM;_3*0rZ*3Y*F z6QA9ROLlM<<=ggPUIb1;@M;DEp0=oi3?-1GGbNfA1cd{t7?3M2fT|M; z0!sKkP10N}p}LmanO|69J_`z84?l=xfb z7UI*_f+a;gp|x1sp|;f-%%9xB2Us33tUs;`u?MS#;O|8MYs2tJ$P4JZ+zOX=fdD_j zV%Pg{YDAeO-r8_7hRPX{Jj$^ytaq_Y^4{2A(bSWLl!MqJf&4k>W3#A~1z=-*A8nBX z?N#P4KSc>}&1@ED_=!`0@*&VXv62r)O|tpXr%*O#6|&w8*19y6!pTec9S~%ya1~nDPLQqI(ii69f23HU_6g*ftsv7U>n8A)&2HsaU z5M0neL-rgL?hmy$3Tu4{ZB{QXf=C|(8LG+y)v05X5|)-yl7R8Sp{BE6(iGBVh1QBK z>JRM6TSJ$tCcNiY8=!c5D*t4l9n{+{Kq}veb5|W zdI;@J+c?TmxVRti`O#<$SPucoaVo3o%dzm1fqh~ZgWOX&7BKIMLvG_7Q^mqwVxwSV=rmWB4RBf_@QTj2p|GC zBn!MqJkqy)bjp1vWqPt%v>Mf$6-1^G_^|W~JuQ{7+{3ANL*0@+)hTxk2_6gBgyCxJ z{(_LdlqVE`G4`84c6`{or&P7|!F(7iCHf->C}V%d>Lk1;ets+mk&^GFS>+!{oH7qe zB=L6WXCVD@&WB~7Kxuo{O2S{(KLfJM=TluwJ)AIU+;^UMgl=*`q(SO^1}XQOs0t*_ z12)#O&0>O68`|a#W+CJM8h%3n%A>i>?w0v9ATr+((ymM<%3O92GMv;aze(b^SUs-x z(bkC{J4t8IP(-#YLNFy`@L*E`tR=4UydgNS`hu#cR`R3^$OJn7LZUSoT)dTCf=kW8 zd9dW)A>XI1=9D_0F4x$aK;W@?eu{Vo)pmS)e~XwZ%2q z(_cgNMdXsYA7b@q!~De-x|iS4``SzTxlvNa;}aigR%D7RQ|_&iHZTc|9#)Rmmq+@> zlNy z2@M<^^DcMK$Uce}H=@~TS-0T&{4pXq);d28oRG!hHvM^lB)09lsZpUN%7EKcJf4Bo zt&@|T?Bdg%1);Ks;)9R^)UxSxXV^hhqj9h_4qd&0P^4%TaBu{~cM?6BzwZ*P+?eaE z5my-4wh!imJ zD=RH%U`ezu^%MvGj$v*?YzW%cHaGGIU(*2Q3%JP*ocWgOt*NvFphxMN4=Q~mW+7{( zQDH-f(?q3!dWbRSjAB97!_OgWF8tJp85s^tG}Wb5Z%3_ZmZCzZCVVbHs0oF1T9AvH zQX^7&c)Mh7C*|eERduf)t;Va^tHFvZg}2IxoSs=(n4ZE`Xt-SL&c10$18u$))hW>8 z9)h%ZG?z=ySydJ4eqAtrkZcGGMN_4*EHFdpkQUH^ItC4zh{&vK-lRt|b(^BL;Qi6b z>wOuc{r=DaNCt5;q=#6|46u0gBZ)(iWu;(01qczbh1>D9(1~dC@o~5{R&dd6=G2VjY)SyYp>^JPL zisXQEo({C-k^v0_UD#KwuKUqwg>@~`)=8{cI&qqVu6*huE}V!n-yqHf{Z^gNf)zx* z0}~fn8=;hmAsNmj9L|xm_Vu1)_Am8ZbEs+d9BnB^ADvN)`UV^xnRC^HGhM8vm9Pr8 z3JJm!f(FwW-$>C(OjA8zuSN_)O%_;j6ALT&`Q6PeU&VYL8~NAvhcma&#|GRgN0~Hk zS)V9;%_)!OaKI)it^p@chQb`3o0W{6ibFl1Y*gOaR*T*YhIA%Dde3e64kYXQG|@wd z(KgW`&Dgba13lx7SnpGk1GT%m=1Q?D1d+hk_OX_W*_lUExE$OmDM+2r;o{S>MO8sv zv0rcz#nR?S9Xu%U+FY$6N{QNtiSA`@DFC#f_du1pW;=el6?n+OT8x_MwNBP5gLCzosCty14)9|^3!KOpJd}aQRM~TcH@2# zd9Q;9u?g(w-In(@ClE18*{tLj2N`LuR|vv2S`_3#crAsL;`24G2&X+J1LNr8ge zl3E82?WLsFbct{0Y=30GZ>1yWTr#WxLh#%B!&6r`y28XJ9)b$92PX5?cJY%y?AHPX zt5*zeS&Ww* z_=cjWUUX_O84IATH&Q#lu-C)ZkQ>OfV-oWJg!C7<5kv*Kd{a1A4&-PR zR-3u6Ma~}5x+Tbz4VsYw%yXIH>){-m(*iYtQb&82smw>{%lpqlo`O(jWVN(nM%G=5 zhZb$S49BddQiSMzJef#(9x%*&+6a%4vLX^zLgul&=7td9FIV@sBbMqOu{ylGtuCn@ zORgQS-girxJp^Z@=JX_TEEe#_8C92t>lTjz0*hox8I`% z5mr8FM~B!T-6Y<%i{!uyn_9xFN23FE*nyD34Mg0XyYN|gK}l|M=q}HNoQhHg=+p|U z;4EiB80{a;CvwxIRHQAw?-U`7G9cvu7n2pA=b4TyLt$@AdV|6E#02}vmvH!M2~_Nd zHN!U~dl703Y|(X}Mc`E+0rB|-*#P(Ppq~Fm31wc`$Q-;EgrI#jd3@g2s|gwb*)<_S zKSX6bx4P#Zy4L)>gjb@u2cgzJfz44Eg@&lZLfMA*((u~A_-&|I7$q0aId(mIlq6Hu z?oODkSx$gV13s&x0eZD2hxfB!pg9X&PKbFoNTE)>rXky;TFMGW`gZaN)|rU{{231d-A8f9-94HUBgTnd4kM0EZJZ=J(H)zcmnUwY%+uRFgVR z3s=++h*HIvs^rD|qZZ>5V2h#2gN-yfmHgbgOU~VFP04Vb-BN8vPhefGe4K!^N_HF} z*i*b++>4J>5AT$rAIs{087&2EV10P~3{i?NK4pPFI9WG9jEmAmIX&(XP8R11Ob)`U zrovU);(=<1kh8NFK8e9)oN)^EiY|-91rI63iuF#?yEH5)F=S=QU<2J*B$8^#$t}3U zL!Fm|6qW@{TCr7AX;js4F+gtzL;UoUOHVt6eiEGI7FA~OzQAcAAWeG)oZW<s^ z0onG{!)__{Na4{Z(wmIcb>7XiGkg=oHj%y$m?`MqaA>NmL#oqa?RJ7623RfbsY*7# z6u#loroKHQPmB{D9G-2i@x0<{2Hbi&+E=SAIuISe! z;)M3w)DO$LpNN$kveLC>jhaKZ0p2{4T+ByQ6HOFV_Y0 z+#pppCO4=V-XHR#kO`yKtw%fP%AK*t+PVQq^@iM@&GySNFNpezgldlw2!ipWeZ=yZ zcU>x(LwS{CUQMWOYJdgCR(B%=6<>)!)4rg=_?f_jB?Lmp#7CM<@-`x}EBQW5iybtd zem2zGEag6S=q`|KTX++|CaY2OK-rbAvoIj-q84~0K8-zw2qXR2G|m6Wm_o(p8ZtKY zNiRrujVw-ioJ3R@AIeooh)Ir02vD#FvGvhW#2_Wn-R7McSF$$T_ecqFWd>fV*0!d_ zU@w|TCc#HFJ)lO&?^W%dizlD#ONYDyQyuIY)FCnel16iKvMU&*#JaY4Chjheo5F5! z2s;D&!Lh0Atphg)@N&-=E^;`XW!>L?gok0=SB&4tuld8Gq>PYLKuQs4IJUB*^Jgbz zjdi2k?X83Zq9VH$^4G5R2tDs;o)7-lftzFX=2w~^D-n7O^Wmq$>G(2f!JzmhGM4p5@(gwn7Zg*Y8Q!-)7l$1!A0vF-KMPk| zv|ryB6QAt(x;?*Sfv#z@JTMY%(9*)j6=mwTHwfZiP^7U<~?iI@%`9FXKt@kO<*}(FYqJ~(^_PIZonkTYj2wNF*_+2J&ce7{t~PpXvOCb4v#JGdBM^V=SZc#JOK;WKE9FJ7-hhgE#lpo@CO zHrZ(zEkqdzr1M)In%E5`a*{a0C_u=nP!ern`;c|)Y1tbdn?jf_;%U4E8L)a|Y?rVpGNq(jx1iHBWjg^d0YBjnQvxAiu$mLZVc2eF~p{gf}%aTvlGUYwzy3eca2M9dGY72 zrwCR?LEKdudwuvlxY-|Ce5GjXetccuaz1a%7J_rOYP|;HxULPzc|gNBK`&xntBM32 zS?LpT!nbGB{b%AY!Z=6Rg$Fui?W|w2vAl$ULMHoj6i3NYM~RVlqg96|11NgTb{jZN z3eeb0v1KcE6r!{T*min$h0|7Y z6qk^<4SK5Sq>wsD>pN(LnPc>EfhLuxHX{A<4R&je7Y|$MT=a{x2ug*1C>1WHo+2>2 z$>$=UT^hoOUQ?PE?*Zhdu});MpxbTi%_DeiC4}U-3vx0a8Oaa)i z_`!)%>X$G)ZheZU9mr3T9o1%2s8ML}iAcgny0}#;qrKeIMC@IIxw~*^G?e)vup^b= zlaR~)iUb%`yv*LYOG!3I=A?AXP#adYwt5XrEK9|hnB7y%pIrr?!@=Bj(`84!<&arY zGI5j++^k^l>v=oBKV0N`N}o*yPO>=w47J`?deVRx=~6EBg?ZG8*bK2Ng(s>BEQu)M z*)!8v8wP;Yc<^FK@|=vwv7jI+9R{?#q8`v($hGD^SJgVSxRD2d49!sRI$g5ewc)*G zqZ_Gus^%xq9B6{@++9y}Rm@&#g3Zf<<@^YrS)9Og!a^Yw7MdVv>bKyO&?*|b6-H6} zUkUR|-Jy(0+DAEGhKKB$d6yR~IT+lBEf_1Qu#9P<}nxWoLf1AQt;@*$ur{2n*;F6e`jt*5sYj+iJ!Fcgf5i5jBOy3Xchh_QSvF|@RT=mef?J0 zE3uwxb}dP=`DcP4wRTIIqlY5emr4%_JW_El*)2ya@n(U1hNjnEKIQ7uP;>a@R$2W% zX00~mu5MsQa`pZ7xT9~RuF~SWIg^FMO?<||4|}?Y8Tj(jY_HHe$5titFXW*Xl}xnl z>J#6~`m8IL>TUrcZfLU3ox`)wu(T%D4Cj}?c25VJMlrA3K!3A`-t|Je>^zg25uW7f?S})s`1ts+GoxEQo+fmYO!7s3L<{9Q*oCigsV(7N z&*~Yp#wilF{lV8nn-b+HzUS3(8XqBSf{Bdo>vdk&`6n8!dpo%NKnrh zXWI;d4)Z(9aEPaLCN+|6H@vMr>6tVHK%X)~EIT?d)>LC|HkzAMDe04URkr9D=P!U7 z7XAjHG%<@0%g22o%NP>Z6J7I>*8G8lxREO49cd6qQF3d(UVkQDV<8h8jSa$NcS>_w zxlUN?vkU{;pG1NuBuu~IiY49|Lc&bgI5F0MBD6)qaH{s)?kwT3u%lFuR=BpflaVo> zO2DIP{#ibGw*`XYItS`2Hf?dq{x6A2%kp68#-zi zguwuXHS;!g7pn*g@|ek!F{ZMuFlbB)^Sxb2%n`o5J1TVx#W9o2Dw<3P=56~}wi$#L zl8hL*NB5%h+@H0K2Dbv9UuQ_ZJDeOA&-W*l+|8MIB_R(b8SoRyz9id}d*q=@AYAUL z|B080*7K6^0w>{c@}e<1E=yTu-%Vg5Tm<);aStadD2+6iy|#k$%t3}jAr)zuNfC#z zPPx@l4BZyxqn3Z)L`A!Z7;1g>Iyi5Rn_u;pRe1fnj8XgN8AX?sfHVa2D0vMsiChQH zjDkCq&G8WAO(9{Om*616<$B=?qYKjy8>1O?(`Tne%6cia*j-qGPyrocVn?I&8P~Ow z!sOaU=?U)G1XV6G9&PnRkMoD0j#r+lo-FBM=t8X-aNlR^XD71703l(<6T&-<8kk;C ze%3iaGc_S5ED^YPX>D;}Q#P&~stO-g)er_3qh1g6Z+ReW%||zB(3C)S^?E|_&pV~I zhYCNXDR&-Rc4n`$@R~dm4AG#AA{4f!F8Pv(k1eiPV(PXRvK%iJSFw;|V7^Tn)8G^_El?Oyd<3uJdw zeqtsvJ}}qzsMh8|2|-)=UZXlK_HI@SN@_WUvY&e7KPaDO!!e@k?O%NVU$TOaSD@k(;qz`JLKC#TbDgW^lWF zL`o0yv8b-Fo~PF?aLk{xzHPifrgJ5fpTjc^2|9Ig7u*wLgw1y;1YN35hZwoWR_e~D z*u?Uf#2!NOkx@C)B7J7Qbr9<-NyoED>sGFG4!A<Oos(~8`foYP1fgpDv{-ghRZ5sYd0jVqrqU~&xbQNv9H$}Io{9e+Q2l} z;{mA!N7Ig9CaR?$FVA<5F*h8jk|bopU=LEPcdY5)UC?LJKHa}Wu_oNPu=JwE#&=16 zuoo!dN>khiIZ8FZei(CqBy`p6x_bieETMUNFn4CjNPfJ{m&!%HihkA0Hx#bIxE;9- znvNlYldA|7@MiV5@mwC|HHQ>RP#qa9CSU!?1_Ek5Bf6B9$LEzG% zLtDH@jCt72d6}P_$;lzQBd?xWlMjA1vm2ic(h(uC>?EjewYhk|g^Xw{e~#WV^H~(v zv2?T@KHIXIcZvCcC4nZXMP5UYD^bDmB#s;NK#2M^6MlQ3XxJb>exsPSMi;Q0M;hmh z#Z*7*R?UkSmEFR5((Q-b&X}g@Xg!lsRypA@O#`DsERS`hXaaDWmz15etrLqGu)NFt8D_c(T-GWryOv^66b~!8qr?>XOgB7!| zpn>*=CdWyo61iu%m_-+in!9E^3;`Fp9sN9;oF4`<$Bg~9iDiQ#t&Wy1w+n)io{#np zS~_XQIJ{IL?)&x)tmWbEVplS6lCAt9N!iOJ7fB_zYY47tW@fw*rSAzH^pyb|Q)mQ!F`0vveS&fU$fTC)8YLh?efswWC zAf5Xft?B5*Mj&Mm)}sa-K*QXamGh!t_fb&m9~Y1%!z6{7_9P@9kjiV8qhODZXDx zPc5iy9(2>sZ|&2MZ$-wxhsJX>F)(tb{TExp#L0%v#?r|}MaOQ90mbK7EzKstxG4Np za#;R}RAzn6!txD?X)F-h1v_EX)m&k>=lYeJBk2~P?N*yR7)NbUF0TOpze7h9c0Q}n4g%KsD*WJi2y`LK%5L;@9-YNx8y+Mt6UCe zgiNX=;!puwo^xnLNYi;|U`(I?{j1K@z#lm>%?e*M+c`brz^F9q!d3Vd3@)$BW8>T| znc(t)&3vI#bJ>|LS!~6^$g_JV%hrhOzD6q-=>vgY!ygPJx4axcGbD{>+=hvaF0-I@ zkNprRr7}o_y~>v;5t0&dQL#I(P3`MyS3O9eK~Y?DDqj-`RCuYgpY#B8iuG~xkdhqX zGD2pwc5c+b5;})!=_lbPC^)c<##a$J+eswn(F^RF`ub~~T(uo-hl2pLp8t|{M!2}l zp^h+uV5ZXWu^6FozG}oqS&A%t6`<&bX`g;ESHCQ zhC$P&%nuagiKJ)l3!Gew5kFaTX>ZNzTI=$XE}xEUKK=FV@`LM(n~x5X6oQyXUGb^k zi!KjZmxzw)8tjTrSwo(nAC=G%A!MtWn+)5Nx5lXPy9~}p(|emVLi;*vO3d|~STR5X zFfty3C#xQ3mkmKKHmIkz_q-LfOp`|Q-L}XNFQ7@(ldj>04Rd|+ggxtLXg@_OBSwCx z0zirq6JG~{KHpg;aGRIvBufw6HG-DGNx65js`)YQAgF{6pq%UvHhT6KVy`I+QtM#- z0Jr3xhr5+8Z@Aco@gFY)Z}v)U%tyCo&Y<&U;$Bii?}8E4VIK|4Ixc0-sMPqhoaw|{ zV;6fn!1Qx%t)4G@rYwE@q-0ZYvfnAIZY7z{Mt3c`Y8QuRHcU96MN}C${sS$*;luvZ zSC(T3lM}g@z1Ilg+}($MkG0C{>wf?)Zd09NtiDy%yua;lG7rA><(=pa?Crn#_WzKg zmXeT}lAw`P5uci-rc(%$laP_3nWU^!tc9$b7nh)sXjFs1 zG`Fm#N-;%GD=GURLqjn-Aq5Y6TL)UNc&B(TsTe7B@26a+YikJjKU|y5R7mUnc8l#> z==<-ng8nIE{ZB_k93AZ(o&FJAo7iznAOQrCr#n+H}V`^}Hfe_QAPv;lS;7Qd2bP#8MwvwlhkwTFy)QB{9bKn6~yi zCkExpiS*&dYpNlhq0%!W1emTNaOxRYyn=uyZWHsP?~XrD18h#!7iwc?5ks&}EQ+?R zcvD!#O|fHG-I4l?Aazyv4A?@?tEx`ky*=(<(XA^=()|Ygy)=y^gCEwbOb-hf=qL;8 zDPm9m!Pqcee* z&krbidSU`6I~PYI6PfR5TG*PYC`$AEe-5IvF|hwXXOvA7E`{>9Upn9RH$jL0SPe$j zcD5#RhL$Eq|D-(qYyOD;b15i@Q%_3KjZI7|iBFA9OFhW_mXx8Z`}gXY1u?Xu^YJkW z-g}=bI8fdm3<#L$yq_V!*CK)Sr1T^m@@xwS{T~yIzOD?n`#Z2Obbr^=f3g+qzftw{ zMs_wfcDDbRUz1omPV22Vn>|3xU6`9D=A1q%C@&k*rf2QPme!o~Sd-x?1d(PD#*n}3 zWM_X~U+o0~K%NXp{FoG?3FwF%@-<2wD<2(?uvu+t{mq8>-gZdeY5b#^;tuuPxdZ*2 zNCq*9BE@=Ys8SlQO`lQf&Vwf9*y46V z15r&%m3G|wqtV!5_;!Tvx$=ytYkISkF4GmwW6LLM{L1V3YkCT0OFQdE&9J&3Hl0k}y;jqJfAXDFq3U9QEKx&9fCo>J1dY z6loFn3KYVweu%iPq;~&a&5h(oj%=wj0b_s5heNY2&#fa909}RSuvi*v)c;nN#1DJNI;hvr};A{k}CbKT$#+AXfAb%ITbP6SIE0L%2#Y?TgusjHHwX zlFYm1M~CQN+Hm2q*xiiMS@l9TQFICt(`HtFxX^uw_LyqFM72qSsepkuHsi6H6xP6z zYd7%oo%wnKRHn;6DFkN(A`3Ngx(K8qun%sWZBY;@^FJ!19S1aRFhmhktzYL|8#4oj zA27YS>VQM|#0dnYZ%7bP$I*Ya9FV5h>@S$gId>5T!k}}2#N8YylVSmtme-5kQ!I2^ zmo0W$P_vIwMVT=lIAxQ1sE$N=O|90KL(O)ys{bkXl)fva)6*jWfNJ?Q1-ak(dm0wg zz1uwN6mUw|&p+{{_(*D&TS%#iBfM%x0B5~(c>93jR9(^r1SqiqP{EPdJu0}1@5F>DpYXMxU! z3&XGVwBERM4aJyUn@ZndRO7B_Y`u>B?)FSfmUBpGjG3J)lF)N+HXeAuJ5s+;$uhA_ zyI!faqm6rKPt68`+WJp{t*Z&HRlm_A_;_bTnKe9EW)Gv1(1&TI>>@<0c|!(+SWhxH zaW3g}M~-J>U`Y6 z^}iLn<#vo(k>#0Dpm_Sb4ZOK-Br@GB+9*optMdR^fGQUkHeH7I8*%0J;Ttk~$&_49 z!a6*TL1TZO1lE-wrwk0_KHWa$0s`rTvp@##kp(Qr#RYAj5wY=R!oYPr^WBm(6i{(J zzwmL~N8`~+~|eHwy@Ev0f(6qgyIM0Z+A7JCTk&ugUlQ|DL{CLpf- z8SLWZ1>X_WiYQ-3NxxONk8^?4G2D8B# zC(A_v^NJeqN26Y}UV1xFRzK-jX!w!{Brw0Yg86h=(coU5`tpLK%EAQpQH8J^CzOdq zrVa?fJg0<3w24(}$27T|(10;7c6$$~R^;cKZmQW2?khA98#GN3KhXjtS1BZnZ9m~S z34Mnk(vD7o4Hz<>Rw%=O?I!3yt5MMTR@Wo2??6D#a62C{YUfPI^2t*#0UPqF>h|&H z%I4srK#em-wa$1&ESp#3Snp>o=<=vRIo7+LgS2JSdmQJOBd!J?IqX% znsvPp%Z?O3PZtjYMfdLIaI_$);s>L+CZ=}l`^JqQdlqspV#Ebv$WhvX)~p0_2%N(^ zYSC z9m1spX3eNur;+#cx0Xnk2&=&&aMK;qPV%+&PMM=^LYvG09)CcMu@N1s!a6c*Sf>CMU~L1tCF4iCi7ia= z;H-W!oJL^1%*RPiYwMR?0IRq<7G@hU$4R5&z%hO4r(a_N%+PIH>y?zoBB6G=&BvN- z$c#V4PAN=nM}N6WtAF2Kv)*o1>D*?0UPTU4L{GvknHVbIwsoAAsv9ndP*-#wP;uF?FQc;G`^8Q zY#$~<#~oFPWp?8OSch2kOuAkaibP_ySV+b7vD!MJw9~xd;BJ0;uw!(+Aoxl?`<-2K z9}Ge@qPNJYKk`~grDD%)SvC7ITqvP)sVM+$rBx%21@5AVyVNA>c(aZd1_1TINs2n; z&~Fke3%grKEwXzNrVoZ7p;4NMpBcS{bRH9HxScovb5$JZeVQUKP>JlA^SvEMu)S>W z!U7}Ohp%TRVHL~{#T>(++o<*e7iTp6Q2jBs`lz$;r3~i}MY}jnnb8-cPHFjs2;df; zp&Sa{D~DgU!bu42OlTiUa-((@kNo{Egd z45X&&Qrd`@SsMZzx_*_f*^A|RC8FP)lMUo>NC`ZGl+OFk1(LnVdT~8r+-TSWBnrD~RV^*g z*+&m(=a!-VA#t%+EX{nsInxtlC^$Op6gTIYVAgE)1Gb~?uh_jEy~-B8^d9`Nvlj@O z`(GX0v&R?>-sIVrD~8r~Lph9yYp%ztcu!!PIo!IQp^;zOvu?JH^PlaXrehntn|?Q3 zbwaOc3=RDgKJxGCV#D9s=&!EOU-q|QjsFIx{by?YS7Grle%k+9TKqGa{*Mv=@45o+ za|PPu+bf@M`>R_0-+4s;V4(e#sM~+{ul|=Z8}hHpx@n#QSV0vE!PdF5B%lg6%jj>E z*O^(lT5)OG1*rvUij}FE>i@IAt|XT=NBOQ`BfeX141ddQBRg9sX9HX3e-^Jk34L~f z1Q5(6tst3uVQA z0R`cr6Bei`fh@Bh_f3MXlu*Se@5s1BSywZ!{n47&Us`hEu?<9hZ4cWdjM*$}ChzF< zzHl`BmI$a#k59fLc89rL6x^O3X@f(QoM4fW;tsWLwd6AWunGP6$fCWu12`nisUfF` z=?6$-#e}T1Vn^jV5F9Pd*>1YX!!;cApPiIL3bocP{#$q^rJ1t~j2O~1Fek)RR625R zWIjeu^ek5BmI7AgA!!wkfFj$lN=E1n&hhX&l^{HgyyIm_mydv}UwIHb0_#i)yDXkK z6@d92GHrE*{*U1QXTd4fV;Obd8sAz_bQ z2!5y#AxIDw`>#4lgo|oXWEs}qgR%mHiJg_n%`<&X<&~-;{;#SPYcxATF(RJSHb;|U z8Z74e@Yq$7?&uIB4_A&vbaZ6)0wBUF1}3`_SkeM2wYD%ZomQhso`4m3DzBhx8>VqE z4V3A4_z2j@zBP48uS2yTr)Q7He5UD5O&XB9b9zkcj)l&c2+BoNi~)PN7)=L ze9!m9DVD|($`PWfr-^G|ZAeG7m$wfchvIdOrY~w8ZygWXu^tg(#y0CTa@$&L3W% zUOIO~Qe_LpA||;isusejM@b($0U?w=P*R2jHk<#5JaI^bK~0ONZcjbl&fmOz-o&ca z491|n_+Sl(`{p-2X}{?1^NWgz;D!&uV)Um^-5_%h4#7~gHPrf>n*ASObrx69`O}@% zr(s{;(>tJ(7VriGiP5nUVi69s)srB?wqJL{pY92ZF(o+Oo);xn2?a6j8p~E9Ws0PF ziAmGW5aqA==J$pi$n9#idK{G3>Jl|I4Hm!%Lq=1)^UwF0+#V|Ik5%Y!0)@7ki!*=^yV-qOh|LeBqUty`}vt%n1S~SkyECXHHwen=q92|M~Bg5z2rMn-!PM+E1@@X6v4puw9r5YS#{SZ7A;9__#vXy&HB(R4>Lv9!W*s$m!y!Emaft1{P)I>f1KfLB1Xs z(JQR`0JG4Sk^lYrKlsN_Lh)@=-_Nrjkbjqd{LjY8_mk~E*WHk+)L&G}?qf9sjM}1L zgY9gwmhSIE`o%ZSd=V-S1xXYA2pYyX zN)3KJjds3^L)|8_L+)j;MH>r8N)~I&0R~N`oYD#LMb@6Ueu^>R)~WbXHAxATdAA7~ zt^?qG)TPcs7XWs}6hM;+I*j9Enit&Ou3@XP2>cMttb($n6J`EzheM>yW2DRtoaD$e zZ+)0^ycu%z>Me|%qJz=F8L0m_HM89A@kZD* zZ>-Ipgw#1(&??94BOF6fDjT63USiWo@XT!se%Jkf9F6qO({guWtu#!FZ?MT6&?75X z`ETNVoMBR}JAUpJYK`TiWam8Ypm;;ZsSwq%gGL1@j+x{TrGc{f)UtAH1;dTazWORu zgTS)T%bpKom{%+PMxWs*Wl_ROjVhX&55Mr>Ul(llw;zf~C@jXu$B)+4h;X#(SjaY; z;Z&Is6g+o_QE3?qOfBMVf%;eboQ|mx&Ui+vEP^g`hY|-lK7QKuY z6SD0rbFpLzOS7!7zH5_|a`np`k`;@H9YKU(6M=aX8P&gioZQ}w{HsIzm+^nw|DI9(oACG_KK}o4?!U+UmskJZk*I>C zo%Q_oChXe;|CU$(mFL;Inm9Tu+X*;28hFSXcv#yR{Bv`KXY!l0&42(p<0E$?5a*hB zrKM$GLx7}KJQ^28G)N+yXxKY&F38=xufY}*WDuZ-RGng%q;pm~Z`74Az9GPlA-aI2 z6-Ph6u><@6koJ!8d1l?>aBQ<_)HYUQG z+Ni`tJ|IN*%x_|_%o&NJ)KfWL0{cg+Jhd*yFMe;v+4Dv$2 z=yI8@;#(^u6>Fkq?eV^EKY|juSe2zF9=GXB!rLExtp^`%es!w|uhnZr{!JY| zfJlh*CFJsHe4Zqe1tF^-Y@5KInQ$$#TFu5I$hUMSNFI)lU)X^lg+Ie|GCD2F1Y+)| z(2c%f!}qxQC{lr`()i1IW3|w(vn2paase!1{T*R{X9-}b`d{e+`-nk+)(0ec?t;8{ zqb;_Y<#%E4Jekz}Wb}+t_I^t$dl^K$6V49B8*Y zqaz}8^3p7Ydx=7ym~(Swe9$P*@FMVWqx_-^Kgi<%ZK}k@^U2#Q1mnmK_Cp>Msihi& zo+0b}spGQ2O_mkny#V?kHHV0JEgKMEM%~+Krd6E~^we?}0TVQ;)UHA7FiE1)nr81)!+b?B>K6; z@h?=!2zTTUNV%N^wbJrpd1X92BusSD7~@-7s(7tEjHPXgEOmHz3^ZJfBEqSbkebn& zqjZ{=x(}mm9=FlNddMs0#a0< z(4w#qaYh}pz<$x-H@t5jRJ_AM;!;K|f#c`+>?(#-Prng>CUqwSRFB%%pu6(Koa(%` zt_WBQt!(afK#4zHbsWK2HHXrcmEZ2Z`kH9DGvsDVJ3@S_52kuE%rlz?&D?|JP!aV6 z(b%lOV=?lo^w?=$} z_I^GCrD1ZnJ73ev@P~&`;CWSVp$UnDIALf{@+>*WRK_UVI#wyjwlA;l% zeFA@zQSp_GcND=GxGb}Uz!j_i#Xh4Z#M(OOe6q%2ua-WArZ+!D-0RyR@wT((2;Y6T z6(xB# z=8$`aVS6tGY$jT6yDu|_K5ELojX>TpTG48kH#Ah}$|O{u^1`@-BPU+c-6+>`@xBtH z3$Jkj4>#>q0S#h{!O@u&h~AB!LO`c3ART%1dMooi?ee-7lp*oGIsfH!3hPNHH{oRznc>y&K4 zq#g|qK3OlQW3b`tLfp8k`Y6r5o9I{bh&V!94F+TjJOP5++PcWCC({#RDmAt_851}2 zi`b|}f+W#4+fjMp?$k8c}mJ#eA8_-D}eZJ!zm@Ld6x*!LGU@nB;f*W>N}C8|SCy5> zRrnK#sCkLy>hltLUyi_KKZWM`Ph$Aw?>K2V+k3-*!cd2Vq-VNmvx{py@T1HENf4D= zWu7F*-c9P$N83d6u_bRFIZ!KUG?r9$ntxI|okBs`0dJM&9eCde^z;o3?;=}J=9@q@ zT2uu>*RJ>n%)%KC`P>qHN&CVxq9s{fv8Pkg>7<5CUoUnOg{vI_15NqDL$)_ly;hSc zvOH17Hpi8P zGH(q^bV5?(O|Uz;H+oM=FW@?_jLI^lmMkq*9vJn7Nj{Q;-N!IAC43QU8c4{(8}OYd zez!_KIhfg>n|T9O^c6mua2t|1=(VfPBZ{g}!P_hX>wfvOGRC=ksrQCc77VDMoPiTjDQE@83X|EuME^*f{{N|?SDiT z|0x#vUmyIpi7L&Vq=y3Ve-8or|KAn-{P2JEf7Ya=$^rB~4H`i2;}}mm^{?UbjuolP zjZctexfVv4^g*BP%q1S%350xGiB3Qw(UY%XC%U?QySw$tIgY}79Z2(C&=w>rcoI-q zt^ieH0Y*G!CyLr@aeb3n&iqfYSQ=$g9s4M0k8#5^3w}jWgOIBIB z8yYr5p!EXHeBs3vYSjfgOV)fJo0d>Kk0PkjXo6{zc$E>Sh^8QR#E2MRE{q9!(pGTRkfQSjE$%olD161wa}ZtL(RmuF${Jac(a&c zK{SS_bunt(YCloas3`|pJV<5+ywkSTGM#GLgvyk}?S3TLOWjjCA-wkz_5nF2cV)M` zT1D~rmafP>-O2UKW?swCw$lSb2>AturE*$y!2OMZKl&mmmNNZ-(i6zDdGYh;2hnGB z{27Pm`Te8+$4UF0WB=o9{>K;peeR)B9sEkDnV){ssfQ_rppq1epx_CN^d45F z;7hcaMCzUV^0;AHo11avRL#x)l^ya~G??YVNw=pG6n&=COkK)FyxJ4k`V`J#e`ROyuwQnq(vC*v z8UhrCMU7 znB}L%8-&OJg8eu!$UgU8E#p<{3m!&s(hH(tEL8T$)We6yJ^pc)2)`PKb4U1k4bmGw z{%TS>O@1D8>Pcz35Rngg0_HN%7^|6Tq2P>E-|T>Hf~~{qjyeLd8tYz4G&j)QFV*e0 z?Y^ZISagUI;v=^Xs>%BB)>}mrV|Ap%jHg#b%!Rpb{u3ooI*mCeCQt9%lCPGe_AR4p zs`YwL?uO7W25HL#^v=9`96u7<%4I1 zQhk@92)2akNe&^(J(AC~HGPG7W#Tr42nb$)Y!enG7o&#(lD0kVsB zp9D@R>7XLyYgy=}j7DI+KHj{%43?+mWj_Y&aIY@l)A2rU3$51=8i)u(5ji6J3=6lN zWKt;sX;>v7eCfn(eucE9@IuWQCPSdI?7Q}4h7_Y{9C{_GrrRti`QuXMcARS>aen-1 zDy2|v%bOakdZ((TqqI9s56FSd`&|aG!vmwx7UWV_D zqW1QeM8~*8$udp0F2Mkt4mhv13E8#|30CYmGE*R~s8LI89oa0uNS(Y65;-Ybtw7Gcz`i$0o{rQ1f$&<+Ix&%rQqcx})8P9cJ4_=AnuK)wXxviWeYs zgJnln(7$@7 zOy%!`RIdY94qQ3d_Et)r7FR!%^h}ym7_wO&0+)!bF!ii7ewmS|Q1z*+Q6#0;GOezw z35sJg5?VLU7fFO@N_0-pEk3p7a0=M;iPQ_ZjHQJIQOY6^rXRizgO zO#n5URrc0LeR#5Cao<*~bzZp%Z$z35tvjZXg;=0d7CKS!P9^ zZZs5v;@uY$2&Ax8aV9!a*k7!IZ;Kfh0|#6h~tD1Ez^WwByge=DmpFAw2%AUvx5MOWQ9i0mc<$i271Ti0v^x>X4c@}dz!vN2t| zl8v>BnxQ>JFt{~{r@BKolItB$6=2Cw8WpK=z!Agr7pf48_hg~7cI3TOngP)t`t-%E z-<8>CZ(NO%A21!o`Iem6yMMh z%aVl%ClF?>t)rtMo~98Dl7cba#H=3~^>j4&dC*PcHb}wB!uxoUi@tVh7h?K&C>z(U zIco*&1>Ia2o-Z*@0MUOc`lOnlWB^WvR$1Nqg6ov#i@&q>ipQ-WSo*?#$_0G3%P*lu z1!zJ&X8=i|0ATw~(ge({?3{lR_W#x4@V%{}Mg~f{K>E4OL9U`kmUI}j2+$}X9vB85 z)Zsj%R)`LMD?kJz^=Rc&(r|GZiym|?8XP6-jtUDycRs=A<7PHVXKSNo3oAm78yti} zaS3QG2)eXEh5a6f{ApLW#P^^)o379Bf2p4T%SfX(u++7;efw7;vWK3*h@dI?=szUlu)9qASxy3&bH}W1ZtgrLj+- zV$Mcr8^hP@gwNP}jBFlpNE0pJk=-_D^Dax7i!3j(%=(PveOdrQpl?e7KN63-70<6( z%ST`5owBKl9O2RXK~ue5hq>*^eH^`^Rm{yYA(hIp-~R2{*Sm46G*-Ow$KDKV^WgWK z#g!9Lr)C;inADymVJ!ip_vd%5G!K5n5_=hxGyPrA@ye}Ohv!ql@k&{0WdWh+;Z67( z8rgxMt3#&@RAzMb!S@Ltyw+Y8ohDys%x@l^PcjWlOnLjzOnm!A;wFjjXu>gpfNaeF zZ8^`6;L2ZeKjv7pS!Ag?xrK=to#{)9+Ug$~`Ql%jyQylx9vCf`rDrm*EkX)Y^+Gm> zSE{NetZ1a}DE~M<s$TxtB)9V<4oqH{E1JtfGS zwwr5#)La}Dh`rR*BVn$X<(lrF-P|2UFp6}Vnok5Wg_dZL4IUjQpA5eciMt_b97&>Z z!3--*b|H4PK;jaq$uljc_gbU1<|&9@E$y~@iVPV>dM)nCX#ppErP&`QSt{|hZkzP@G|1JnC42(6v;9l~E<8|EH5cV?8)gGdcAUh5e z26AsD!R44&egFyFlX_yGI@=gLHoZWw%vr z^{cdZg1Pi`(u&5{}2R;+w?!2uTne6^{!yf9u>WBp4 z@V#`~^69HbD-^NKsEx@;?3L3f#9kgLnT6oIl|E96pRoB!Qg6&%)21lTU}clWA5C- zO$vQ#jE3-t-NqeUn*v1}lsCmVAf7h4-Am6Uv6HI_^N@Dfgn7@*%wBeU=e#8@01rpz z9n{6oP3X0g-4$xd^0{GM?Tx>Af^QYSCx8af62y`wM>M`l*8HYi|NszTrTn0qL=5qJ556_TIH$p~%L_BHZAT zdbMRNqh8!~97DQABrhkJ`q$?`>|Sfo;GXiinN|rBqT}M{m=tHXB{Eo>n9t4T%Ei1g zgi#1AQX&>|q4Xvh@Uw})(Te7V4dxTrtGnSa1S?O|$PevLwv|ylsZbQLnocBHO{so( zHM;L>R7lf|sJnd{`vKztU8xpp)J&~xg)qzlNE_JRMw7kslqC*p;v8bBoF^fR7f7f=P-D0g1VJ{XW?D z9LcZ!vkE&aky;@|Ua8_nyu`a~P6VY$M|?<2@Zq%0CQR;k8*I%ABiJpf1>9zN=FyDi zH}^fqn#;~j|)6BpS2$Po&o*Ajb%&Y ztPmbbI)QXYcZ?V$y*zAHP3-Xl6)Py(W~nedDIm`?-nSF9le$xd*(0 zZn0zT4@XDX59Fv`H0S78#wA~zSFLzNm_}xAQ%X}8#>lHVYbI-yalLp_ z*Gj0Z^P$Fac1VQZb8@Bt6sBtA}}g5%*R^TH7k0jDu}kZ-3a>+;FCMWP_?1Wu{`J- zj=qYsaJa}w$AAHfTU!MOW_4-%#+d8H6-;Zg=v%5MIY_D2s4M-EPtI-sXy;f)mY%vh zwInp)A&U7^B17`vkyRk17wkH@qa)Ip=HZK*+77C&3FsB z#N0L&IU4EVONsc2CdDd+3Vjt)pUAfLNTT0AdTk;5ji)H)uoXD+s~0MF6u;I3BI3u2 z7K)nl5*Nw<%Aq=KUd)CJ$%K6X49JLuEGL$cKnQf@7vv3t?Kkx=BtBc6NmC9Wr=~UDFVRIKE7- zE;m=zn}%ts5x4OnI!RnVEDnDYd|8{~S78%Ly0}f8Yxw~)ZNPrIPpP2ty%?BAiI9WB zRu-e3o;2#0cMWzSCWbjFZ0&p*I59>>BYrp6J5tqK-I3$*ueux>&P3=j9^D&l zAE~v+ig6PaeIF+#q3xCwf>kRi8tg6I9nc4FE)P^}C`%%B(D(HeY2ZM+7_De9wxfc` z=auZrhATuzt&~sPP8GJ@yjvMg4WEEODQ%d*1-S&0)d{OK(z6GdQXnR5M%#%55t##b zUq}LnLU`(=kJb<5x2K@h3@`(day>+deD!=vnUciTTQ1pDPTe%F6JL8Q6rx`i3m=|` ztgdiQaMixSs1V{tFg<{Wc9XJJfKif?Q^~!d4CZQcgPzY_Qp0NCC8C2)te)KkwIxcL zv9lUa^}9_b$5^Qby{h2v7BE>bQM_AbCTF1-e93a>@6alZm4qs)#={_uO4ZgR3U@J= zLL$$dtUTLea}R=hvxfl*Gr4@t_jc1;c3VmJ(rk=RcelT!(u|T~O?G$Xn;z3@ZMf!6 ze|~~}YS3|In1C2z@isA) z?@osfE01~0i8Pqsr8+P>iFq(34-l0OJ-rv(W-UuDGq=FvBQS-;+NBvq5}oT^_6H@!+7t0V>+f!oa4y)p$1T~`&BdD{ zNGZ(|$g>cCYpSg+y&F|Jba7R6@(s(wXZqr#>q%89T670-8=`9Kmh#}1t;8L6=<|Wd z4Q=p_BQX~RQ!Si*V>g8@8$Ie{dgn~q2&(xwLAD|8eNKjh2*0jRJN@#@jeg?<`Ke*k z9By_&IFmb-(0frPpo;;ua-AVgjKYvUB>k39Gw?EFwvQHau|7xV9d6QF3-ZpR#w7lW z-l_;w%aa|2btZ>k2Ruz_6aLQTy?NIloPVqwH#P}dWnzL$ym4$$>1UIoZEQ3}R4mV|80G=5 zg3sum&QpkmlBX*UjUm1wwpU5*%i;(K-%BFWm0Ny=My;wW&^ANFo=4GlwG(F$ecKe6 zz2Bvjv#XmO-sd9a@WJ+KnnvZr{r#u$M;C~FKpW_$to7YFVkclqooq`9wZe0TWjAjH+@b>>Vaj)^uyA0%UjN#Bqq=eJ_sMu3qpSnmd*`_s2XOesR- zrYSC{??+T6!)7h3DL5);S}A*;KQI24FC#p4RH3jVZd)cH4GVnu|OZ6CUvT`N?v_a7A+zNZhgBcX+pZ$sPsV9 z5wk3z^8HM@W$W(wWsK0t+5D&E@N$pGulb9X{!4x} zt~$pqP3kCojC@z_RHe~K_a-+`HYmXO6P{$cmP6N2=p)otP{b6=pc?d;+q}XTR*u)T zJGWKS`lOpZTuUOij7Ghk51DMI={CKKdu~o&tdv!Vf%D5}3LC2BWJ<@iS1Tazx6~c` z`I(7A>DJey1 zR4#0!IC7ZN8P`f|m@eXnBxE|p6;DPt}+Rbxb83@lo$xV-g{A?-@a4ReXI=3ceW6Jh zuKlZaa*j&T((EjtPIeOV$fMEYYIzSt6^Qr=h1%shCYX${5L8Zaa!NbPZWMh(BLbTk z4dAOcp>8{hXu~CQP`!EX)YD4Er8EZfX-><-5*&+>1!yM*Uf+Q1JmjUV*FtMgFR2iS zR0zaZKq9(fU$tNimdyy^bxxg%Ix8@!ifgS)@=Q7Ul!Qc#7WUkUij~?YWm&oh7auM` zFQz-$yhio!Z<|{610KM#96H>a)|J%9p9D9v&b>CY{%$GXK#i& zTceq+kMO;V3+F8a$yXyIoxdT~Z9L(#zgf+6O`K+qwG`9I2#TT92VosiPs|xqFW(B| z^jR-G69@`vJESZ=A(p#*X@^ zv2_64#y9fa<{sP1z(|-1*|KiBK7;8_4GncU@)uaM6*xGb=BH~6oNE$62{b(1&2NX& z3RV3Ih&>ZuwI<2PIo!t>gM{8AAxaO~?vy7_syG$iSU{w*@T&HKHqAALN!C3L1clnh zQUbkGP(9l2Z#!vV1|NilJ*qsUagWOEO8%53j)g(wTNmo);A*s7LswLVlh{C8_ zB;3(RblIO&ixUD3F`c_6o1U$17)?n0o53*G_=S)*z@oiFT5w?#Rd#zi z4@a}?7aDK3-^P#!sC;<=Tx`uCX4!z*?ZcONHzmj1uz*Qz8^b(h+r-Q9qE%JPx|J8n zWWymbp$#Rf7^jF>HQ}lLNrZWIa?C?Yb?0P4XwIo{B@xkX|R@w#gIGa;MOB@)DD zJR%q-wa>sK*=`|^_cP1OsUjl5paq~*dN5-zs;jwxvF7s2WAsC}NiXlC+b;QTMNuFs zM&H0-$4R@iZQ9>|>*i+&&70XL#<7 z`sZXRpy%jkN$2+<|9{k|{d3k0kPP~d-~X9*``1R(MZ|E>e&XA{(4*nH17 z8JmBfpGD$mq;2PDNM)dJr)xy=zs%D5`I z-$_#b*C&7C_OnQ$!t2^l6@ZuFANc*V2!G6FGt{@xw*jCd{6|;TKqZXlD?p~ZxtztQ zu=}d(DkCoA9YQl9DPVCdXRE)F$7m!+B(xcvvX*VN?z`N8JaBq$3{LM^^kuTDw)_v1 z^0U(sy4s@jc^518i6QyiA-vhL62c0YdB60BTZQbnPXcg#PONeR{{3Bi6}16^l(e_A zvi~teKt6m>1dJBYgz^X&Cnxwi=X!ah9(g$gv8$I?uV7zp6f9aqhOsj1Q&%rSnD z>ml?0k4ZJ=BjP?gv zLX2@i(HXo==D)YL6xxrJJ!kzR0Pycd7W^n^Fx3CSAdV1Pgbo@wpzD?n6j&ko#=2@Z zAPhOBNMSKA2sRNM;8qgQid2bwTRjdz5Q-EuiLkc`&9xPH0l6tBda&V)U{i;AemP%z zWZ_qjK61*ACmP0)lxN@r-7d>tz@S{lKh~*FGr$S~`bKg6r8EK_Ytw~7>63;)JAaY; zrr9OrbGsc7K<@vpF5}O0YR6}!uWPDf>7<}-X8%X$QCQ`3U55WPd$(8cTYJj_ge=mj zTq8`fC?-Sr9zq68=_yBM5&N^e@NZ$?I2+&j&LbzwnwP`+sbK8+5cjQ(yb3$Z9TUlu zQZ1H#@gz*m3n|tvn=b|%j^`lX_4HPT1_f~-W9z6tu}d%*A+xdv^=MP1i;E1dlmPvc zG0fmFt0oqvQQ6lJe}`$Ps(vnxk<$aS_hYjUcP!Z9kZb09FV$dov!-kNK4I)H%CtfSi6e{ywu2jq|NbEe9NRDA z;JL`VWue*jM}kx1p?)?xA=uD=MFr*f3*Pd*ouHxawfui3UIm7g|}7$Y%-J? z;+f~{CG|ckJbVkE3K61dObXK&?!TA{uCH*&!8o2!W%|r&J`#~-B*&7YCV3lr>6^Ms z5j(ed?Y*C|>p|j-6}2tGC%jM7=e*Jr9}**`#isfE%V5sH`@FShEoBdYf2Z63qF3O# zWcjD~|F`OuF(E3^VbF^YDs|b0ZQIjsNF~sKHsX)B@!>O4Q7i zzfNlzKNDW60+4bC0CoWUGt2)vF+a)S`Ef<`!$biMx@dmaPeHI$lo8hDWKiQpYQ7DD z5&aDVp5fX%)-RK$<#&+B*6pD53A>k_)zJX!{ZExN>#<`FN26Bd4 zOXwkrGUT&bTCl`6Z%1_J3UMIF4#9-hM62c24xcV(k6{ivYsFP5HvA=PUPw5ZMjEjd z9s9~p9W55GpuCu~E!Sz-T0gXcv}`w0(3t1jvfJe9$)-sLWbofP^ZP>!`cJEI{Gu%+ zxuby#|KP>5b@V&Dc&?55&JYQ0^FI~nAPj&T{@0w{UKkjC^@@}WP&|TQrMfm@j5N$6 zI6Q$X9FbPChu_ZJ7a%0zs0$ch){sQ$`aE15h;eqoA%sPyFxa|9VXVXBI>Qzsy$c7{ zRUw8^C4kPnd`q{4=1|3~*0vz-vvExTdW?nuUca&uNq6dXS-p(@jgd*p{575NH7P2N z!6vm{W~^{p`K!A$6*E03*=v_~3W!?^b?$0&ywG7C1E;^JkgWZ#{bv>80)XFSf`p}> zzLd5NK#%;z1ddQz7*84`Fjq}$t!(il_&X4E|k4obEI^QzMpJ;2L`+}(1|G9^PWP0(~#c1Slre{ zjYOj+W2nsm;XO3dV=?|*P(r1B#GX8~Lsa6hIJ|Jz1>1o~g&&4mVDN!VW^K5s?bQB3 zPev@C;Nx3AjJkn)wTg0P`2cp(BuU*&*f4?ehhLhTLnF#|l>o`&fZ31jYXk|+sHwja7kP^w zaQ;Elq-Lt{+Rp3b%Y7uOb7rU?2RpX*I26+)4&*7h)Y-eiQS%V2)CEamQM>R!8>enP zP(M&T!QHXT$IM5vh{nub+Ss92IVzEUjJ+YT6A&~i)egX4D9I&`AEl{_@#LuTfH=p( z%Ag2tniV2TAS%iXeQK|&w@=7!4C7nu$!?>pMoQ+gqF>b?R@?MZmlDx!*Nbdl!1{eg z+=RNqt2ZfcURuC|3RjYMHO|rSMItJGX+MLfTLh0E$;fLCLDEvLcwMX+Si`H8U~;}7 zlhfsh6C@m7M91Dk_Ed3Ou1sbePN4mX92Q-Hb@sQL`%Zw>*b_F3G=OHAt=*EFUkc|) zB2+@3^)(zoaKBSP3V7>f?9KH5oCjrAn%@MTrEP{}fIG|lvc9AD! zp$>P`<}!)Yn@9KzUDoTbifu`K-0(7z(-V9Ij9`@5V)gGAx7e0eCsdi+0cuDanM#-mV%%yI3Y0D ztxl)rIc(QJ7#lz^C!I}wO+<7_oZ7ATA}QntIAjKjLoCi`qUcfAdoq#nA*u;mzf!85 zmyE&c0~6=BRth&v3UzoGG2flQr`1DP7MD;e3TbcoOAz-UI+TSk>We57311So{PHrf zUMvbe&q!$oz;E8sKgb2#PjSE-_2Z734+9K(8Z^K4=GF~wK6Ju)?4o4ZCaA^%q6T;` zx5y>$H&2c=A78PgtviRqzC-tC3+W%j7}-nZaUg5CZqF_~^(@Q*Dn*L21e7woK{4~ zyz0*xA+1ek@@tUx{Hp0N&AwgtA(r*Y$qq5o&*Udyy{&j}$XFGsT@tnik&nYsl5=#! zEUiqIX>5}Ko%aH!lV=jTcoT1B6!tDOB>l0q3{lB)?M+4@5yhnx%c9mAOy(WIwm}#z zYsc7I}={x@pa|A$Zh^ay_97Gf+8_WW)>g9rfr z*=+o8uf<5)LeESeFy6)7*zVs)um0z+{>1R7LG;;6J#iC&**V}){mu(-q;322=6pX- zxzaq(LuWqUql>y&f$+5SN?7z4HoRC6CDYa|#r2|uE(L=Y{-!Z+uS%Mmd%;A>M$g7p zV@dFYZZ?DU1=uu^*)^H4Y!NIzxOgVv5S zSHItly5w_j<$V1?5M2fggQHRL@AvU7<+_>*fOU}o5d62o{TaU1)HE=5va`3*x7F07 zHnz~yclyr8KSuqJ$^7Z^Q43M_L%k&%7!p+kxP1cgRAeHQqEzG(Vgth6>M5hhjm) ziGoCeL{71*6xxkYGkw+XH;6t_R}M}h+_-Yx`3*nDw`+q?u;UeLA)Fxb1zrIg{+j0d z9H}PPl$1hXYG@ny9k{yXBFnWeZHp9<8Y*5rDfs5#Qcfh}pA3v{GUnZidPXd{$n4Ru z4Czj%$QoFhHN%60F@mb2KEbh;{#_!Q%QG>O09u}%6uN&!(+^YaCuM&)-a?e5Lc^lg zROAEH0uQ09_pgg$ikBqgV;iH?ao*uO+ zOxeP{uojZIm;0$AHi+>J3SqQ~#dbj-$$`Bs1~Q8BC=*%Ky>4!c9VDenJ`1?3zAJ!5 ztlBM2n)gM1mtSz!jNLJAuS`41Q5$!7cw4V-BVK*GRdbKB_MN)Yo71D#00d+LC+UO#UqXKgEhXeTC*7d&!{M=W2& zPPpVj2N(P!pfVaNKbJT!9|KrD@9#Io&I2&3$=pCg#Kcb{NJIF4+PzX>Vg4WkAkYK= z|4wW_Lcl+1{PR>vQUO+X{0QVgR!x^S(7i_K7DDOP3Y>ze;Aa#HM^I{+NfOo6RL*2+ zttNdp&0LxBik_O|AMY|?3}LlA06QH3{5xy+2X27DVLz8yJv+4jrF=&FB}c`c!%YJ5 zq*VPwWDp{IhZGcOyYU!A`FF$^XnH%j0T8!y20OVq3VZ0e#KiG?82K2nxfuKZ+manm z7*s}20G`ir*XPEwe?B&UauYDb??+5MHRSsYJD?NyZtr*u5f{m6%sqjP!ix$fZ0KrX zA%|Q@e9JL>r&KKeD>Ql^qJSzo7HHV}7i|H&iQzj-Dtc2|c@5=b6J@Xat}>R4jo?4? zklS%a9OpTk?VV^MQmgqD6-^d3Su!wnT6v-nQQLLLxH+v@#!p)2muzG)iQzxr>Ys1C zE?L6upIN;B%Nzf*i_X~MJBk0gjqcaq|M%-2_bv$W`Pe>do!=RcW^DUMGv@aviDU2& zb>A%c)hGDv{)!Bwp}OygjkpAKPg8{GR4;Wwy~io|RUk}fu~IkDX{<^SXsx73C?rEe zaEo4maX8}Zml)Gsgu1;aCAk}QPwq!|9-xy7?CGStq;G7y}j^t94l!MZ_~#SlqgmBo!~79 z@{JFeCP*ooBevD>oG72Q%Et>*d4j{%;B_wmQ)^9KAjISc(L@N|cwf9lRznYagKeS} zxGH{5Qj(#{N0xz#Gs5@5?zQYbRi`oM+Yv-FWp(OTw>U%yZ@`W%;$>I&tDCdk%pMph z)T~98f_@FG)k>N@n*AZBe|LZXB$OZEsQt&Dp#PQ>$$J4(mchgnl+gHyrh;(lpdXSV z?=+O|q&-bksRAB^%R(JpQ*%C=2H zo$S=;LVDTJFu38t7rB+c%Zg5TnZ*}CLKy)5ogMin3Ez8T|APkc&}M+gjV1`lE-d5acV208L>raR(=<&oM}Ve66*J?9GtJ zjXAEO%akz3Z&*c*T0~xbAk^eRK2a~=vGRB~O8eHo%PEst@3K9LVAM%hqCGRJYR51~ zt%i3}PyUTqyJ3&`WC_L~eC@?D1Hf-v#>;Kf!=c`^I01(H6Aev+( zNBi5K2tM2{&{^#|2 zexG08mwVplIpaCcdCqg5$IadhGHv}46Cj)o+3Uq?Bjn5{&M$C`jUz9;-jN-tU!Z11 zH~VG1Uf;$V&HRVjstwjsXDbff+GDyH+G`as6FJ(-zQgzeg;I%&wqej1;-pr^aQ`nq z&WBFx8K=TFl-z6R>v5`OSbQ84XjRrcM+P6BeC4r5N6_>TK!i;_RRb+eC0h$SV3tPf z-fLu@>s)%2E%3OlqfP8d5A-OTh+5E`N!T;!+mEt$$agvK5{|iK8#26QP7siDYltky zo#*ZG4(0BGwW8xs1gL+q06ajv5Ts|gXjq_MJFj^&hiO0R7|{ncU-i+GCu&;lcfdsw zDm9(|jbNMGSdAunPYvm`JLa?tpRT3T?j(sm3yCftK!oiuD{T=nZKxexc^E{c4NR?2 zn-`fSb>}VMgOxvaLmt$__hjhWEv1&58KOF*`B^FYe-Dg znmzkG^Mx62F>9_y-?gy96wt?Ex5PER6RwS@jAy;UyYsZC(Co!uPbp! zyxvh2j?z+=wRQ8-5M}7P`zatoj7L^3(1nefJ?a8$If8*jhXk;YZCd{tSjg%!sbW7B zij+~TchkK(YFk97Dmok+p!9R<<#y4I==tiiCZA(pQ;P7@DOc_?pWVz+PksK&2IuVX z-DKfj30CiSP|1(&<14d%?^K*0#Op^@60|G(@z$pWrr~YB!x*2^zN)$(WMc94%B>4s z=_f6eO8m#kC&vA^vDBQ>UU=E0cFyZz>2@ihLVbe`jaZg@OpOjc1`)aEg>TX<^@X~IXFGYWlfL0Gr@Qz04Q*EG zywjF`xn$Gp=jvO(BwGuRJoBJRAU7yiztBR~!<0^Oa+@S6NWJ>*|jPkB?1i+d0K|>muKlnQ4-UT}qE5yRkU>u4`l(47lk61O)=be*s%jqsDj?EFdP2$;& z-$O!r_n#*Jkn8UCLepbf?4_KnTshN*3+pUqgr$yGjejf)EF`|l+G^{l?iwg^;v zEb5-{A zu%Vr1fx+bgdv5zR;U_^GbGFDx3m);|6&m2$!J50PzDZZ8D3Nc#WU?gfp3T$i!QP?K z#f@dn0d=FNwvfsswLLK=3DmU?q%+>*`c%-V>_o@K%WXH*g>5dM%oT%=i*|%KE2Q~U z0U}H>MP2{lP<^WZs6GtA?t*_*AGtrOPuHGrEuO=9t$BglG@`ydq^njEIn?+>F8`B| z(w)nf#l4eQ_9|U!4>7i#sI>YW#PLH$9ic6C;^FW|g?HVR;hZ0woP19om3&OrIwsX4 zpxF7zH!b93uA0!~Q3Zi|wPUPU6EEqu({Lo-*g$4Y2N z`{x%>2X}{ta#d@PG6x5?ga{o|-f~0Md;Md!gAA?#i}^MiMa@(0SJX|gUtJv1JKPQjs)Y+Za%;v3;MJPk8c|CU9HDu5yj|O|VTAXF|NBEM3A4#*n**lQYZ&A}(d#WaHR- zth;HqUkGD`wZ9I2n<8wMlnJU-e@KY}e+4|!{K6?nq?)&e*AIdJ60#S1G z#8O@AlPmZWu!Mz1O13oAc*xj5m~FnuM*na@xxO&f z^d)tMjPtKk3US9p+I30M)ClfkwyYu@%{+KD6SVyWApBI>CF`*Z$}4tBO|XmF4>9WLG)04pPZoBE~UtN)lSbO7HcID_Yhv1fjirNXTCqEHXXSoP9Ekg8`+15D+WPA7-qE?TROv#Xp0jK*Xjz~{lPNf&jB;_}iIDlo7 z77gdiJ`5N>0f?|e$5D$je?2skiRNre&>LF8&n^nD^3!z)54vn039&9*_+S)zXR2J0#rI`J| zklH@p<6iVAV-gi;IXY$eo(PI}&_aVq70|zDGyF<;*<6g`4sT;I{I4;l;^lTFsGKl@ z+5-_G6UE-a!4V|~mY$!0Ba|g z1BdIH6P=3Rc`f0Um3v4eAYE$_39#E^3?>XpW5*u^Ya3BW z&⪼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 |%6o-w}ba!DN63PngB@Yr45nTmF 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 +}; + +export const ManuscriptToastContext = createContext( + {} as ManuscriptToastContextData, +); + +export const ManuscriptToastProvider = ({ + children, +}: { + children: React.ReactNode; +}) => { + const [showSuccessBanner, setShowSuccessBanner] = useState(false); + + return ( + + <> + {showSuccessBanner && ( + setShowSuccessBanner(false)} + > + Manuscript submitted successfully. + + )} + {children} + + + ); +}; diff --git a/apps/crn-frontend/src/network/teams/TeamManuscript.tsx b/apps/crn-frontend/src/network/teams/TeamManuscript.tsx new file mode 100644 index 0000000000..cb5795137f --- /dev/null +++ b/apps/crn-frontend/src/network/teams/TeamManuscript.tsx @@ -0,0 +1,38 @@ +import { Frame } from '@asap-hub/frontend-utils'; +import { + ManuscriptForm, + ManuscriptHeader, + usePushFromHere, +} from '@asap-hub/react-components'; +import { network } from '@asap-hub/routing'; +import { FormProvider, useForm } from 'react-hook-form'; +import { usePostManuscript } from './state'; +import { useManuscriptToast } from './useManuscriptToast'; + +type TeamManuscriptProps = { + teamId: string; +}; +const TeamManuscript: React.FC = ({ teamId }) => { + const { setShowSuccessBanner } = useManuscriptToast(); + const form = useForm(); + const createManuscript = usePostManuscript(); + + const pushFromHere = usePushFromHere(); + + const onSuccess = () => { + const path = network({}).teams({}).team({ teamId }).workspace({}).$; + + setShowSuccessBanner(true); + pushFromHere(path); + }; + + return ( + + + + + + + ); +}; +export default TeamManuscript; diff --git a/apps/crn-frontend/src/network/teams/TeamProfile.tsx b/apps/crn-frontend/src/network/teams/TeamProfile.tsx index 7be5a93929..74ebb5fd97 100644 --- a/apps/crn-frontend/src/network/teams/TeamProfile.tsx +++ b/apps/crn-frontend/src/network/teams/TeamProfile.tsx @@ -18,7 +18,9 @@ import { import { useUpcomingAndPastEvents } from '../events'; import ProfileSwitch from '../ProfileSwitch'; +import { ManuscriptToastProvider } from './ManuscriptToastProvider'; import { useTeamById } from './state'; +import TeamManuscript from './TeamManuscript'; const loadAbout = () => import(/* webpackChunkName: "network-team-about" */ './About'); @@ -134,60 +136,69 @@ const TeamProfile: FC = ({ currentTime }) => { - - {canShareResearchOutput && ( - - - + + + + + - )} - {canDuplicateResearchOutput && ( - - - - - - )} - - ( - - )} - currentTime={currentTime} - displayName={team.displayName} - eventConstraint={{ teamId }} - isActive={!team?.inactiveSince} - Outputs={ - - } - DraftOutputs={ - + {canShareResearchOutput && ( + + + + + + )} + {canDuplicateResearchOutput && ( + + + + + + )} + ( - - )} - /> - - + > + ( + + )} + currentTime={currentTime} + displayName={team.displayName} + eventConstraint={{ teamId }} + isActive={!team?.inactiveSince} + Outputs={ + + } + DraftOutputs={ + + } + paths={paths} + type="team" + Workspace={() => ( + + )} + /> + + + ); } diff --git a/apps/crn-frontend/src/network/teams/__tests__/TeamManuscript.test.tsx b/apps/crn-frontend/src/network/teams/__tests__/TeamManuscript.test.tsx new file mode 100644 index 0000000000..df6f6b213a --- /dev/null +++ b/apps/crn-frontend/src/network/teams/__tests__/TeamManuscript.test.tsx @@ -0,0 +1,104 @@ +import { + Auth0Provider, + WhenReady, +} from '@asap-hub/crn-frontend/src/auth/test-utils'; +import { network } from '@asap-hub/routing'; +import { + render, + screen, + waitFor, + waitForElementToBeRemoved, +} from '@testing-library/react'; +import userEvent from '@testing-library/user-event'; +import { createMemoryHistory } from 'history'; +import { ComponentProps, Suspense } from 'react'; +import { Route, Router } from 'react-router-dom'; +import { RecoilRoot } from 'recoil'; + +import { createManuscript } from '../api'; +import { ManuscriptToastProvider } from '../ManuscriptToastProvider'; +import { refreshTeamState } from '../state'; +import TeamManuscript from '../TeamManuscript'; + +const manuscriptResponse = { id: '1', title: 'The Manuscript' }; + +const teamId = '42'; +const history = createMemoryHistory({ + initialEntries: [ + network({}).teams({}).team({ teamId }).workspace({}).createManuscript({}).$, + ], +}); +jest.mock('../api', () => ({ + createManuscript: jest.fn().mockResolvedValue(manuscriptResponse), +})); + +beforeEach(() => { + jest.resetModules(); +}); + +const renderPage = async ( + user: ComponentProps['user'] = {}, +) => { + const path = + network.template + + network({}).teams.template + + network({}).teams({}).team.template + + network({}).teams({}).team({ teamId }).workspace.template + + network({}).teams({}).team({ teamId }).workspace({}).createManuscript + .template; + + const { container } = render( + { + set(refreshTeamState(teamId), Math.random()); + }} + > + + + + + + + + + + + + + + , + ); + await waitForElementToBeRemoved(() => screen.queryByText(/loading/i)); + return { container }; +}; + +it('renders manuscript form page', async () => { + const { container } = await renderPage(); + + expect(container).toHaveTextContent( + 'Submit your manuscript to receive a compliance report and find out which areas need to be improved before publishing your article', + ); + expect(container).toHaveTextContent('What are you sharing'); + expect(container).toHaveTextContent('Title of Manuscript'); +}); + +it('can publish a form when the data is valid and navigates to team workspace', async () => { + const title = 'The Manuscript'; + + await renderPage(); + + userEvent.type( + screen.getByRole('textbox', { name: /title of manuscript/i }), + title, + ); + + const submitButton = screen.getByRole('button', { name: /Submit/i }); + userEvent.click(submitButton); + + await waitFor(() => { + expect(createManuscript).toHaveBeenCalledWith({ title }, expect.anything()); + expect(history.location.pathname).toBe( + `/network/teams/${teamId}/workspace`, + ); + }); +}); diff --git a/apps/crn-frontend/src/network/teams/__tests__/TeamProfile.test.tsx b/apps/crn-frontend/src/network/teams/__tests__/TeamProfile.test.tsx index 2ff681e3ea..cea1ee9f3a 100644 --- a/apps/crn-frontend/src/network/teams/__tests__/TeamProfile.test.tsx +++ b/apps/crn-frontend/src/network/teams/__tests__/TeamProfile.test.tsx @@ -9,6 +9,7 @@ import { createTeamResponse, createUserResponse, } from '@asap-hub/fixtures'; +import { enable } from '@asap-hub/flags'; import { ResearchOutputTeamResponse, TeamResponse } from '@asap-hub/model'; import { network, sharedResearch } from '@asap-hub/routing'; import { @@ -31,10 +32,20 @@ import { import { refreshResearchOutputState } from '../../../shared-research/state'; import { createResearchOutputListAlgoliaResponse } from '../../../__fixtures__/algolia'; import { createResearchOutput, getTeam } from '../api'; +import { ManuscriptToastProvider } from '../ManuscriptToastProvider'; import { refreshTeamState } from '../state'; import TeamProfile from '../TeamProfile'; -jest.mock('../api'); +// jest.mock('../api'); +jest.mock('../api', () => ({ + ...jest.requireActual('../api'), + getTeam: jest.fn(), + createResearchOutput: jest.fn(), + createManuscript: jest + .fn() + .mockResolvedValue({ title: 'A manuscript', id: '1' }), +})); + jest.mock('../interest-groups/api'); jest.mock('../../../shared-research/api'); jest.mock('../../../events/api'); @@ -85,7 +96,9 @@ const renderPage = async ( network({}).teams({}).team.template } > - + + + @@ -151,6 +164,47 @@ it('navigates to the workspace tab', async () => { userEvent.click(screen.getByText(/workspace/i, { selector: 'nav *' })); expect(await screen.findByText(/tools/i)).toBeVisible(); }); + +it('displays manuscript success toast message and user can dismiss toast', async () => { + enable('DISPLAY_MANUSCRIPTS'); + + await renderPage({ + ...createTeamResponse(), + tools: [], + }); + + userEvent.click(screen.getByText(/workspace/i, { selector: 'nav *' })); + + expect(await screen.findByText(/tools/i)).toBeVisible(); + + userEvent.click(screen.getByText(/Share Manuscript/i)); + + const submitButton = screen.getByRole('button', { name: /Submit/i }); + + await waitFor(() => { + expect(submitButton).toBeVisible(); + }); + + userEvent.type( + screen.getByRole('textbox', { name: /Title of Manuscript/i }), + 'manuscript title', + ); + + userEvent.click(submitButton); + + await waitFor(() => { + expect(submitButton).not.toBeVisible(); + }); + + expect( + screen.getByText('Manuscript submitted successfully.'), + ).toBeInTheDocument(); + + userEvent.click(screen.getByLabelText('Close')); + + expect(screen.queryByText('Manuscript submitted successfully.')).toBeNull(); +}); + it('does not allow navigating to the workspace tab when team tools are not available', async () => { await renderPage({ ...createTeamResponse(), diff --git a/apps/crn-frontend/src/network/teams/__tests__/api.test.ts b/apps/crn-frontend/src/network/teams/__tests__/api.test.ts index 90faaf0315..64e5322e32 100644 --- a/apps/crn-frontend/src/network/teams/__tests__/api.test.ts +++ b/apps/crn-frontend/src/network/teams/__tests__/api.test.ts @@ -1,22 +1,29 @@ -import nock from 'nock'; import { - createTeamResponse, - createListTeamResponse, createListLabsResponse, + createListTeamResponse, + createTeamResponse, + createManuscriptResponse, } from '@asap-hub/fixtures'; -import { ResearchOutputPostRequest, TeamResponse } from '@asap-hub/model'; import { GetListOptions } from '@asap-hub/frontend-utils'; +import { + ManuscriptPostRequest, + ResearchOutputPostRequest, + TeamResponse, +} from '@asap-hub/model'; +import nock from 'nock'; import { API_BASE_URL } from '../../../config'; +import { CARD_VIEW_PAGE_SIZE } from '../../../hooks'; import { + createManuscript, + createResearchOutput, + getLabs, + getManuscript, getTeam, - patchTeam, getTeams, - createResearchOutput, + patchTeam, updateTeamResearchOutput, - getLabs, } from '../api'; -import { CARD_VIEW_PAGE_SIZE } from '../../../hooks'; jest.mock('../../../config'); @@ -243,3 +250,59 @@ describe('getLabs', () => { ); }); }); + +describe('Manuscript', () => { + describe('POST', () => { + const payload: ManuscriptPostRequest = { + title: 'The Manuscript', + }; + it('makes an authorized POST request to create a manuscript', async () => { + nock(API_BASE_URL, { reqheaders: { authorization: 'Bearer x' } }) + .post('/manuscripts', payload) + .reply(201, { id: 123 }); + + await createManuscript(payload, 'Bearer x'); + expect(nock.isDone()).toBe(true); + }); + + it('errors for an error status', async () => { + nock(API_BASE_URL).post('/manuscripts').reply(500, {}); + + await expect( + createManuscript(payload, 'Bearer x'), + ).rejects.toThrowErrorMatchingInlineSnapshot( + `"Failed to create manuscript. Expected status 201. Received status 500."`, + ); + }); + }); + + describe('GET', () => { + it('makes an authorized GET request for the manuscript id', async () => { + nock(API_BASE_URL, { reqheaders: { authorization: 'Bearer x' } }) + .get('/manuscripts/42') + .reply(200, {}); + await getManuscript('42', 'Bearer x'); + expect(nock.isDone()).toBe(true); + }); + + it('returns a successfully fetched manuscript', async () => { + const manuscript = createManuscriptResponse(); + nock(API_BASE_URL).get('/manuscripts/42').reply(200, manuscript); + expect(await getManuscript('42', '')).toEqual(manuscript); + }); + + it('returns undefined for a 404', async () => { + nock(API_BASE_URL).get('/manuscripts/42').reply(404); + expect(await getManuscript('42', '')).toBe(undefined); + }); + + it('errors for another status', async () => { + nock(API_BASE_URL).get('/manuscripts/42').reply(500); + await expect( + getManuscript('42', ''), + ).rejects.toThrowErrorMatchingInlineSnapshot( + `"Failed to fetch manuscript with id 42. Expected status 2xx or 404. Received status 500."`, + ); + }); + }); +}); diff --git a/apps/crn-frontend/src/network/teams/api.ts b/apps/crn-frontend/src/network/teams/api.ts index 4a5c19b535..45805b78e5 100644 --- a/apps/crn-frontend/src/network/teams/api.ts +++ b/apps/crn-frontend/src/network/teams/api.ts @@ -6,6 +6,8 @@ import { import { ListLabsResponse, ListTeamResponse, + ManuscriptPostRequest, + ManuscriptResponse, ResearchOutputPostRequest, ResearchOutputResponse, TeamPatchRequest, @@ -154,3 +156,48 @@ export const getLabs = async ( } return resp.json(); }; + +export const createManuscript = async ( + manuscript: ManuscriptPostRequest, + authorization: string, +): Promise => { + const resp = await fetch(`${API_BASE_URL}/manuscripts`, { + method: 'POST', + headers: { + authorization, + 'content-type': 'application/json', + ...createSentryHeaders(), + }, + body: JSON.stringify(manuscript), + }); + const response = await resp.json(); + if (!resp.ok) { + throw new BackendError( + `Failed to create manuscript. Expected status 201. Received status ${`${resp.status} ${resp.statusText}`.trim()}.`, + response, + resp.status, + ); + } + return response; +}; + +export const getManuscript = async ( + id: string, + authorization: string, +): Promise => { + const resp = await fetch(`${API_BASE_URL}/manuscripts/${id}`, { + headers: { + authorization, + ...createSentryHeaders(), + }, + }); + if (!resp.ok) { + if (resp.status === 404) { + return undefined; + } + throw new Error( + `Failed to fetch manuscript with id ${id}. Expected status 2xx or 404. Received status ${`${resp.status} ${resp.statusText}`.trim()}.`, + ); + } + return resp.json(); +}; diff --git a/apps/crn-frontend/src/network/teams/state.ts b/apps/crn-frontend/src/network/teams/state.ts index 57790e920e..d6540645d5 100644 --- a/apps/crn-frontend/src/network/teams/state.ts +++ b/apps/crn-frontend/src/network/teams/state.ts @@ -4,11 +4,15 @@ import { TeamPatchRequest, TeamResponse, TeamListItemResponse, + ManuscriptPostRequest, + ManuscriptResponse, } from '@asap-hub/model'; import { + atom, atomFamily, DefaultValue, selectorFamily, + useRecoilCallback, useRecoilState, useRecoilValue, useSetRecoilState, @@ -16,7 +20,7 @@ import { import useDeepCompareEffect from 'use-deep-compare-effect'; import { authorizationState } from '../../auth/state'; import { CARD_VIEW_PAGE_SIZE } from '../../hooks'; -import { getTeam, getTeams, patchTeam } from './api'; +import { createManuscript, getTeam, getTeams, patchTeam } from './api'; const teamIndexState = atomFamily< { ids: ReadonlyArray; total: number } | Error | undefined, @@ -132,3 +136,39 @@ export const usePatchTeamById = (id: string) => { setPatchedTeam(await patchTeam(id, patch, authorization)); }; }; + +export const refreshManuscriptIndex = atom({ + key: 'refreshManuscriptIndex', + default: 0, +}); + +export const refreshManuscriptState = atomFamily({ + key: 'refreshManuscript', + default: 0, +}); + +export const manuscriptState = atomFamily< + ManuscriptResponse | undefined, + string +>({ + key: 'researchOutput', + default: undefined, +}); + +export const useSetManuscriptItem = () => { + const [refresh, setRefresh] = useRecoilState(refreshManuscriptIndex); + return useRecoilCallback(({ set }) => (manuscript: ManuscriptResponse) => { + setRefresh(refresh + 1); + set(manuscriptState(manuscript.id), manuscript); + }); +}; + +export const usePostManuscript = () => { + const authorization = useRecoilValue(authorizationState); + const setManuscriptItem = useSetManuscriptItem(); + return async (payload: ManuscriptPostRequest) => { + const manuscript = await createManuscript(payload, authorization); + setManuscriptItem(manuscript); + return manuscript; + }; +}; diff --git a/apps/crn-frontend/src/network/teams/useManuscriptToast.tsx b/apps/crn-frontend/src/network/teams/useManuscriptToast.tsx new file mode 100644 index 0000000000..ef755831fa --- /dev/null +++ b/apps/crn-frontend/src/network/teams/useManuscriptToast.tsx @@ -0,0 +1,5 @@ +import { useContext } from 'react'; + +import { ManuscriptToastContext } from './ManuscriptToastProvider'; + +export const useManuscriptToast = () => useContext(ManuscriptToastContext); diff --git a/apps/crn-server/src/app.ts b/apps/crn-server/src/app.ts index 61659e864c..c9ce51bc48 100644 --- a/apps/crn-server/src/app.ts +++ b/apps/crn-server/src/app.ts @@ -39,6 +39,7 @@ import EventController from './controllers/event.controller'; import GuideController from './controllers/guide.controller'; import InterestGroupController from './controllers/interest-group.controller'; import LabController from './controllers/lab.controller'; +import ManuscriptController from './controllers/manuscript.controller'; import NewsController from './controllers/news.controller'; import PageController from './controllers/page.controller'; import ReminderController from './controllers/reminder.controller'; @@ -56,6 +57,7 @@ import { EventContentfulDataProvider } from './data-providers/contentful/event.d import { ExternalAuthorContentfulDataProvider } from './data-providers/contentful/external-author.data-provider'; import { InterestGroupContentfulDataProvider } from './data-providers/contentful/interest-group.data-provider'; import { LabContentfulDataProvider } from './data-providers/contentful/lab.data-provider'; +import { ManuscriptContentfulDataProvider } from './data-providers/contentful/manuscript.data-provider'; import { NewsContentfulDataProvider } from './data-providers/contentful/news.data-provider'; import { PageContentfulDataProvider } from './data-providers/contentful/page.data-provider'; import { ReminderContentfulDataProvider } from './data-providers/contentful/reminder.data-provider'; @@ -74,6 +76,7 @@ import { GuideDataProvider, InterestGroupDataProvider, LabDataProvider, + ManuscriptDataProvider, NewsDataProvider, PageDataProvider, ReminderDataProvider, @@ -93,6 +96,7 @@ import { eventRouteFactory } from './routes/event.route'; import { guideRouteFactory } from './routes/guide.route'; import { interestGroupRouteFactory } from './routes/interest-group.route'; import { labRouteFactory } from './routes/lab.route'; +import { manuscriptRouteFactory } from './routes/manuscript.route'; import { newsRouteFactory } from './routes/news.route'; import { pageRouteFactory } from './routes/page.route'; import { reminderRouteFactory } from './routes/reminder.route'; @@ -244,6 +248,13 @@ export const appFactory = (libs: Libs = {}): Express => { libs.labDataProvider || new LabContentfulDataProvider(contentfulGraphQLClient); + const manuscriptDataProvider = + libs.manuscriptDataProvider || + new ManuscriptContentfulDataProvider( + contentfulGraphQLClient, + getContentfulRestClientFactory, + ); + // Controllers const analyticsController = libs.analyticsController || new AnalyticsController(analyticsDataProvider); @@ -289,6 +300,9 @@ export const appFactory = (libs: Libs = {}): Express => { ); const labController = libs.labController || new LabController(labDataProvider); + const manuscriptController = + libs.manuscriptController || + new ManuscriptController(manuscriptDataProvider); const workingGroupsController = libs.workingGroupController || new WorkingGroupController(workingGroupDataProvider); @@ -318,6 +332,7 @@ export const appFactory = (libs: Libs = {}): Express => { eventController, ); const labRoutes = labRouteFactory(labController); + const manuscriptRoutes = manuscriptRouteFactory(manuscriptController); const newsRoutes = newsRouteFactory(newsController); const pageRoutes = pageRouteFactory(pageController); const reminderRoutes = reminderRouteFactory(reminderController); @@ -382,6 +397,7 @@ export const appFactory = (libs: Libs = {}): Express => { app.use(eventRoutes); app.use(interestGroupRoutes); app.use(labRoutes); + app.use(manuscriptRoutes); app.use(newsRoutes); app.use(reminderRoutes); app.use(researchOutputRoutes); @@ -418,6 +434,7 @@ export type Libs = { eventController?: EventController; interestGroupController?: InterestGroupController; labController?: LabController; + manuscriptController?: ManuscriptController; newsController?: NewsController; pageController?: PageController; reminderController?: ReminderController; @@ -435,6 +452,7 @@ export type Libs = { externalAuthorDataProvider?: ExternalAuthorDataProvider; interestGroupDataProvider?: InterestGroupDataProvider; labDataProvider?: LabDataProvider; + manuscriptDataProvider?: ManuscriptDataProvider; newsDataProvider?: NewsDataProvider; pageDataProvider?: PageDataProvider; reminderDataProvider?: ReminderDataProvider; diff --git a/apps/crn-server/src/controllers/manuscript.controller.ts b/apps/crn-server/src/controllers/manuscript.controller.ts new file mode 100644 index 0000000000..a54cda1746 --- /dev/null +++ b/apps/crn-server/src/controllers/manuscript.controller.ts @@ -0,0 +1,34 @@ +import { NotFoundError } from '@asap-hub/errors'; +import { + ManuscriptCreateDataObject, + ManuscriptResponse, +} from '@asap-hub/model'; + +import { ManuscriptDataProvider } from '../data-providers/types'; + +export default class ManuscriptController { + constructor(private manuscriptDataProvider: ManuscriptDataProvider) {} + + async fetchById(manuscriptId: string): Promise { + const manuscript = + await this.manuscriptDataProvider.fetchById(manuscriptId); + + if (!manuscript) { + throw new NotFoundError( + undefined, + `Manuscript with id ${manuscriptId} not found`, + ); + } + + return manuscript; + } + + async create( + manuscriptCreateData: ManuscriptCreateDataObject, + ): Promise { + const manuscriptId = + await this.manuscriptDataProvider.create(manuscriptCreateData); + + return this.fetchById(manuscriptId); + } +} diff --git a/apps/crn-server/src/data-providers/contentful/manuscript.data-provider.ts b/apps/crn-server/src/data-providers/contentful/manuscript.data-provider.ts new file mode 100644 index 0000000000..9a02cfd0bb --- /dev/null +++ b/apps/crn-server/src/data-providers/contentful/manuscript.data-provider.ts @@ -0,0 +1,62 @@ +import { + addLocaleToFields, + Environment, + FetchManuscriptByIdQuery, + FetchManuscriptByIdQueryVariables, + FETCH_MANUSCRIPT_BY_ID, + GraphQLClient, +} from '@asap-hub/contentful'; +import { + ListResponse, + ManuscriptCreateDataObject, + ManuscriptDataObject, +} from '@asap-hub/model'; + +import { ManuscriptDataProvider } from '../types'; + +type ManuscriptItem = NonNullable; + +export class ManuscriptContentfulDataProvider + implements ManuscriptDataProvider +{ + constructor( + private contentfulClient: GraphQLClient, + private getRestClient: () => Promise, + ) {} + + async fetch(): Promise> { + throw new Error('Method not implemented.'); + } + + async fetchById(id: string): Promise { + const { manuscripts } = await this.contentfulClient.request< + FetchManuscriptByIdQuery, + FetchManuscriptByIdQueryVariables + >(FETCH_MANUSCRIPT_BY_ID, { id }); + + if (!manuscripts) { + return null; + } + + return parseGraphQLManuscript(manuscripts); + } + + async create(input: ManuscriptCreateDataObject): Promise { + const environment = await this.getRestClient(); + + const manuscriptEntry = await environment.createEntry('manuscripts', { + fields: addLocaleToFields(input), + }); + + await manuscriptEntry.publish(); + + return manuscriptEntry.sys.id; + } +} + +const parseGraphQLManuscript = ( + manuscripts: ManuscriptItem, +): ManuscriptDataObject => ({ + id: manuscripts.sys.id, + title: manuscripts.title || '', +}); diff --git a/apps/crn-server/src/data-providers/types/index.ts b/apps/crn-server/src/data-providers/types/index.ts index 130724aa2f..4d4be3e8df 100644 --- a/apps/crn-server/src/data-providers/types/index.ts +++ b/apps/crn-server/src/data-providers/types/index.ts @@ -5,6 +5,7 @@ export * from './discover.data-provider.types'; export * from './guide.data-provider.types'; export * from './interest-groups.data-provider.types'; export * from './lab.data-provider.types'; +export * from './manuscript.data-provider.types'; export * from './news.data-provider.types'; export * from './pages.data-provider.types'; export * from './reminders.data-provider.types'; diff --git a/apps/crn-server/src/data-providers/types/manuscript.data-provider.types.ts b/apps/crn-server/src/data-providers/types/manuscript.data-provider.types.ts new file mode 100644 index 0000000000..4901565dc2 --- /dev/null +++ b/apps/crn-server/src/data-providers/types/manuscript.data-provider.types.ts @@ -0,0 +1,12 @@ +import { + ManuscriptCreateDataObject, + ManuscriptDataObject, + DataProvider, +} from '@asap-hub/model'; + +export type ManuscriptDataProvider = DataProvider< + ManuscriptDataObject, + ManuscriptDataObject, + null, + ManuscriptCreateDataObject +>; diff --git a/apps/crn-server/src/routes/manuscript.route.ts b/apps/crn-server/src/routes/manuscript.route.ts new file mode 100644 index 0000000000..c1b4d48922 --- /dev/null +++ b/apps/crn-server/src/routes/manuscript.route.ts @@ -0,0 +1,43 @@ +import { ManuscriptResponse } from '@asap-hub/model'; +import Boom from '@hapi/boom'; +import { Response, Router } from 'express'; + +import ManuscriptController from '../controllers/manuscript.controller'; +import { + validateManuscriptParameters, + validateManuscriptPostRequestParameters, +} from '../validation/manuscript.validation'; + +export const manuscriptRouteFactory = ( + manuscriptController: ManuscriptController, +): Router => { + const manuscriptRoutes = Router(); + + manuscriptRoutes.get<{ manuscriptId: string }>( + '/manuscripts/:manuscriptId', + async (req, res: Response) => { + const { params, loggedInUser } = req; + + if (!loggedInUser) throw Boom.forbidden(); + + const { manuscriptId } = validateManuscriptParameters(params); + + const result = await manuscriptController.fetchById(manuscriptId); + + res.json(result); + }, + ); + + manuscriptRoutes.post('/manuscripts', async (req, res) => { + const { body, loggedInUser } = req; + const createRequest = validateManuscriptPostRequestParameters(body); + + if (!loggedInUser) throw Boom.forbidden(); + + const manuscript = await manuscriptController.create(createRequest); + + res.status(201).json(manuscript); + }); + + return manuscriptRoutes; +}; diff --git a/apps/crn-server/src/validation/manuscript.validation.ts b/apps/crn-server/src/validation/manuscript.validation.ts new file mode 100644 index 0000000000..99cfa131a7 --- /dev/null +++ b/apps/crn-server/src/validation/manuscript.validation.ts @@ -0,0 +1,33 @@ +import { manuscriptPostRequestSchema } from '@asap-hub/model'; +import { validateInput } from '@asap-hub/server-common'; +import { JSONSchemaType } from 'ajv'; + +type ManuscriptParameters = { + manuscriptId: string; +}; + +const manuscriptParametersValidationSchema: JSONSchemaType = + { + type: 'object', + properties: { + manuscriptId: { type: 'string' }, + }, + required: ['manuscriptId'], + additionalProperties: false, + }; + +export const validateManuscriptParameters = validateInput( + manuscriptParametersValidationSchema, + { + skipNull: false, + coerce: false, + }, +); + +export const validateManuscriptPostRequestParameters = validateInput( + manuscriptPostRequestSchema, + { + skipNull: true, + coerce: true, + }, +); diff --git a/apps/crn-server/test/controllers/manuscript.controller.test.ts b/apps/crn-server/test/controllers/manuscript.controller.test.ts new file mode 100644 index 0000000000..a7adad3f8e --- /dev/null +++ b/apps/crn-server/test/controllers/manuscript.controller.test.ts @@ -0,0 +1,63 @@ +import { NotFoundError, GenericError } from '@asap-hub/errors'; +import ManuscriptController from '../../src/controllers/manuscript.controller'; +import { + getManuscriptDataObject, + getManuscriptResponse, + getManuscriptCreateDataObject, +} from '../fixtures/manuscript.fixtures'; +import { getDataProviderMock } from '../mocks/data-provider.mock'; + +describe('Manuscript controller', () => { + const manuscriptDataProviderMock = getDataProviderMock(); + const manuscriptController = new ManuscriptController( + manuscriptDataProviderMock, + ); + + describe('Fetch-by-ID method', () => { + test('Should throw when working-group is not found', async () => { + manuscriptDataProviderMock.fetchById.mockResolvedValueOnce(null); + + await expect(manuscriptController.fetchById('not-found')).rejects.toThrow( + NotFoundError, + ); + }); + + test('Should return the manuscript when it finds it', async () => { + manuscriptDataProviderMock.fetchById.mockResolvedValueOnce( + getManuscriptDataObject(), + ); + const result = await manuscriptController.fetchById('manuscript-id'); + + expect(result).toEqual(getManuscriptResponse()); + }); + }); + + describe('Create method', () => { + test('Should throw when fails to create the manuscript', async () => { + manuscriptDataProviderMock.create.mockRejectedValueOnce( + new GenericError(), + ); + + await expect( + manuscriptController.create(getManuscriptCreateDataObject()), + ).rejects.toThrow(GenericError); + }); + + test('Should create the new manuscript and return it', async () => { + const manuscriptId = 'manuscript-id-1'; + manuscriptDataProviderMock.create.mockResolvedValueOnce(manuscriptId); + manuscriptDataProviderMock.fetchById.mockResolvedValueOnce( + getManuscriptResponse(), + ); + + const result = await manuscriptController.create( + getManuscriptCreateDataObject(), + ); + + expect(result).toEqual(getManuscriptResponse()); + expect(manuscriptDataProviderMock.create).toHaveBeenCalledWith( + getManuscriptCreateDataObject(), + ); + }); + }); +}); diff --git a/apps/crn-server/test/data-providers/contentful/manuscript.data-provider.test.ts b/apps/crn-server/test/data-providers/contentful/manuscript.data-provider.test.ts new file mode 100644 index 0000000000..404616bdfc --- /dev/null +++ b/apps/crn-server/test/data-providers/contentful/manuscript.data-provider.test.ts @@ -0,0 +1,105 @@ +import { + Entry, + Environment, + getContentfulGraphqlClientMockServer, +} from '@asap-hub/contentful'; +import { GraphQLError } from 'graphql'; + +import { ManuscriptContentfulDataProvider } from '../../../src/data-providers/contentful/manuscript.data-provider'; +import { + getContentfulGraphqlManuscripts, + getManuscriptCreateDataObject, + getManuscriptDataObject, +} from '../../fixtures/manuscript.fixtures'; +import { getContentfulGraphqlClientMock } from '../../mocks/contentful-graphql-client.mock'; +import { getContentfulEnvironmentMock } from '../../mocks/contentful-rest-client.mock'; + +describe('Manuscripts Contentful Data Provider', () => { + const contentfulGraphqlClientMock = getContentfulGraphqlClientMock(); + const environmentMock = getContentfulEnvironmentMock(); + const contentfulRestClientMock: () => Promise = () => + Promise.resolve(environmentMock); + + const manuscriptDataProvider = new ManuscriptContentfulDataProvider( + contentfulGraphqlClientMock, + contentfulRestClientMock, + ); + + const contentfulGraphqlClientMockServer = + getContentfulGraphqlClientMockServer({ + Manuscripts: () => getContentfulGraphqlManuscripts(), + }); + + const manuscriptDataProviderMockGraphql = + new ManuscriptContentfulDataProvider( + contentfulGraphqlClientMockServer, + contentfulRestClientMock, + ); + + afterEach(() => { + jest.clearAllMocks(); + }); + + describe('Fetch method', () => { + test('should throw an error', async () => { + await expect(manuscriptDataProvider.fetch()).rejects.toThrow( + 'Method not implemented.', + ); + }); + }); + + describe('Fetch-by-id', () => { + test('Should fetch the manuscript from Contentful GraphQl', async () => { + const manuscriptId = 'manuscript-id-1'; + const result = + await manuscriptDataProviderMockGraphql.fetchById(manuscriptId); + + expect(result).toMatchObject(getManuscriptDataObject()); + }); + + test('returns null if query does not return a result', async () => { + contentfulGraphqlClientMock.request.mockResolvedValue({ + manuscripts: null, + }); + + const result = await manuscriptDataProvider.fetchById('1'); + expect(result).toBeNull(); + }); + + test('Should throw an error with a specific error message when the graphql client throws one', async () => { + const id = 'some-id'; + contentfulGraphqlClientMock.request.mockRejectedValueOnce( + new GraphQLError('some error message'), + ); + + await expect(manuscriptDataProvider.fetchById(id)).rejects.toThrow( + 'some error message', + ); + }); + }); + + describe('Create', () => { + test('can create a manuscript', async () => { + const manuscriptId = 'manuscript-id-1'; + const publish = jest.fn(); + environmentMock.createEntry.mockResolvedValue({ + sys: { id: manuscriptId }, + publish, + } as unknown as Entry); + + const result = await manuscriptDataProvider.create( + getManuscriptCreateDataObject(), + ); + + expect(environmentMock.createEntry).toHaveBeenCalledWith('manuscripts', { + fields: { + title: { + 'en-US': 'Manuscript Title', + }, + }, + }); + expect(publish).toHaveBeenCalled(); + expect(result).toEqual(manuscriptId); + }); + }); +}); diff --git a/apps/crn-server/test/fixtures/manuscript.fixtures.ts b/apps/crn-server/test/fixtures/manuscript.fixtures.ts new file mode 100644 index 0000000000..70cb62cf8e --- /dev/null +++ b/apps/crn-server/test/fixtures/manuscript.fixtures.ts @@ -0,0 +1,37 @@ +import { FetchManuscriptByIdQuery } from '@asap-hub/contentful'; +import { + ManuscriptCreateDataObject, + ManuscriptDataObject, + ManuscriptResponse, +} from '@asap-hub/model'; + +export const getManuscriptDataObject = ( + data: Partial = {}, +): ManuscriptDataObject => ({ + id: 'manuscript-id-1', + title: 'Manuscript Title', + ...data, +}); + +export const getManuscriptResponse = ( + data: Partial = {}, +): ManuscriptResponse => getManuscriptDataObject(data) as ManuscriptResponse; + +export const getContentfulGraphqlManuscripts = ( + props: Partial< + NonNullable['manuscripts']> + > = {}, +): NonNullable['manuscripts']> => ({ + sys: { + id: 'manuscript-id-1', + }, + title: 'Manuscript Title', + + ...props, +}); + +export const getManuscriptCreateDataObject = (): ManuscriptCreateDataObject => { + const { title } = getManuscriptDataObject(); + + return { title }; +}; diff --git a/apps/crn-server/test/mocks/manuscript.controller.mock.ts b/apps/crn-server/test/mocks/manuscript.controller.mock.ts new file mode 100644 index 0000000000..5afb8a9eb6 --- /dev/null +++ b/apps/crn-server/test/mocks/manuscript.controller.mock.ts @@ -0,0 +1,6 @@ +import ManuscriptController from '../../src/controllers/manuscript.controller'; + +export const manuscriptControllerMock = { + fetchById: jest.fn(), + create: jest.fn(), +} as unknown as jest.Mocked; diff --git a/apps/crn-server/test/routes/manuscript.route.test.ts b/apps/crn-server/test/routes/manuscript.route.test.ts new file mode 100644 index 0000000000..c2622769db --- /dev/null +++ b/apps/crn-server/test/routes/manuscript.route.test.ts @@ -0,0 +1,116 @@ +import { createUserResponse } from '@asap-hub/fixtures'; +import { UserResponse } from '@asap-hub/model'; +import { AuthHandler } from '@asap-hub/server-common'; +import Boom from '@hapi/boom'; +import supertest from 'supertest'; + +import { appFactory } from '../../src/app'; +import { + getManuscriptCreateDataObject, + getManuscriptResponse, +} from '../fixtures/manuscript.fixtures'; +import { loggerMock } from '../mocks/logger.mock'; +import { manuscriptControllerMock } from '../mocks/manuscript.controller.mock'; + +describe('/manuscripts/ route', () => { + const userMockFactory = jest.fn(); + const authHandlerMock: AuthHandler = (req, _res, next) => { + req.loggedInUser = userMockFactory(); + next(); + }; + + const app = appFactory({ + manuscriptController: manuscriptControllerMock, + authHandler: authHandlerMock, + logger: loggerMock, + }); + + beforeEach(() => { + userMockFactory.mockReturnValue(createUserResponse()); + }); + + afterEach(() => { + jest.resetAllMocks(); + }); + + describe('GET /manuscripts/{id}', () => { + test('Should return a 404 error when manuscript is not found', async () => { + manuscriptControllerMock.fetchById.mockRejectedValueOnce(Boom.notFound()); + + const response = await supertest(app).get('/manuscripts/123'); + + expect(response.status).toBe(404); + }); + + test('Should return 403 when not allowed to get the manuscript', async () => { + userMockFactory.mockReturnValueOnce({ + ...createUserResponse(), + onboarded: false, + }); + + const response = await supertest(app).get('/manuscripts/123'); + + expect(response.status).toEqual(403); + }); + + test('Should return the result correctly', async () => { + const manuscriptResponse = getManuscriptResponse(); + + manuscriptControllerMock.fetchById.mockResolvedValueOnce( + manuscriptResponse, + ); + + const response = await supertest(app).get('/manuscripts/123'); + + expect(response.body).toEqual(manuscriptResponse); + }); + + test('Should call the controller with the right parameter', async () => { + const manuscriptId = 'abc123'; + + await supertest(app).get(`/manuscripts/${manuscriptId}`); + + expect(manuscriptControllerMock.fetchById).toHaveBeenCalledWith( + manuscriptId, + ); + }); + }); + + describe('POST /manuscripts/', () => { + const manuscriptResponse = getManuscriptResponse(); + + test('Should return 403 when not allowed to create a manuscript', async () => { + const createManuscriptRequest = getManuscriptCreateDataObject(); + + userMockFactory.mockReturnValueOnce({ + ...createUserResponse(), + onboarded: false, + }); + + const response = await supertest(app) + .post('/manuscripts') + .send(createManuscriptRequest) + .set('Accept', 'application/json'); + + expect(response.status).toEqual(403); + }); + + test('Should return a 201 when is hit', async () => { + const createManuscriptRequest = getManuscriptCreateDataObject(); + + manuscriptControllerMock.create.mockResolvedValueOnce(manuscriptResponse); + + const response = await supertest(app) + .post('/manuscripts') + .send(createManuscriptRequest) + .set('Accept', 'application/json'); + + expect(response.status).toBe(201); + expect(manuscriptControllerMock.create).toHaveBeenCalledWith( + createManuscriptRequest, + ); + + expect(response.body).toEqual(manuscriptResponse); + }); + }); +}); diff --git a/packages/contentful/migrations/crn/manuscripts/20240510095040-create-content-model.js b/packages/contentful/migrations/crn/manuscripts/20240510095040-create-content-model.js new file mode 100644 index 0000000000..0ab5d5b5cf --- /dev/null +++ b/packages/contentful/migrations/crn/manuscripts/20240510095040-create-content-model.js @@ -0,0 +1,25 @@ +module.exports.description = 'Create manuscripts content model'; + +module.exports.up = (migration) => { + const manuscripts = migration + .createContentType('manuscripts') + .name('Manuscripts') + .description('') + .displayField('title'); + + manuscripts + .createField('title') + .name('Title') + .type('Symbol') + .localized(false) + .required(true) + .validations([]) + .disabled(false) + .omitted(false); + + manuscripts.changeFieldControl('title', 'builtin', 'singleLine', {}); +}; + +module.exports.down = (migration) => { + migration.deleteContentType('manuscripts'); +}; diff --git a/packages/contentful/src/crn/autogenerated-gql/gql.ts b/packages/contentful/src/crn/autogenerated-gql/gql.ts index 58313314ec..e5d9f6d703 100644 --- a/packages/contentful/src/crn/autogenerated-gql/gql.ts +++ b/packages/contentful/src/crn/autogenerated-gql/gql.ts @@ -67,6 +67,10 @@ const documents = { types.FetchInterestGroupsByUserIdDocument, '\n query FetchLabs($limit: Int, $skip: Int, $where: LabsFilter) {\n labsCollection(limit: $limit, skip: $skip, where: $where, order: name_ASC) {\n total\n items {\n sys {\n id\n }\n name\n }\n }\n }\n': types.FetchLabsDocument, + '\n fragment ManuscriptsContent on Manuscripts {\n sys {\n id\n }\n title\n }\n': + types.ManuscriptsContentFragmentDoc, + '\n query FetchManuscriptById($id: String!) {\n manuscripts(id: $id) {\n ...ManuscriptsContent\n }\n }\n \n': + types.FetchManuscriptByIdDocument, '\n fragment NewsContent on News {\n sys {\n id\n firstPublishedAt\n }\n title\n shortText\n frequency\n link\n linkText\n thumbnail {\n url\n }\n text {\n json\n links {\n entries {\n inline {\n sys {\n id\n }\n __typename\n ... on Media {\n url\n }\n }\n }\n assets {\n block {\n sys {\n id\n }\n url\n description\n contentType\n width\n height\n }\n }\n }\n }\n tagsCollection(limit: 20) {\n items {\n name\n }\n }\n publishDate\n }\n': types.NewsContentFragmentDoc, '\n query FetchNewsById($id: String!) {\n news(id: $id) {\n ...NewsContent\n }\n }\n \n': @@ -299,6 +303,18 @@ export function gql( export function gql( source: '\n query FetchLabs($limit: Int, $skip: Int, $where: LabsFilter) {\n labsCollection(limit: $limit, skip: $skip, where: $where, order: name_ASC) {\n total\n items {\n sys {\n id\n }\n name\n }\n }\n }\n', ): (typeof documents)['\n query FetchLabs($limit: Int, $skip: Int, $where: LabsFilter) {\n labsCollection(limit: $limit, skip: $skip, where: $where, order: name_ASC) {\n total\n items {\n sys {\n id\n }\n name\n }\n }\n }\n']; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql( + source: '\n fragment ManuscriptsContent on Manuscripts {\n sys {\n id\n }\n title\n }\n', +): (typeof documents)['\n fragment ManuscriptsContent on Manuscripts {\n sys {\n id\n }\n title\n }\n']; +/** + * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. + */ +export function gql( + source: '\n query FetchManuscriptById($id: String!) {\n manuscripts(id: $id) {\n ...ManuscriptsContent\n }\n }\n \n', +): (typeof documents)['\n query FetchManuscriptById($id: String!) {\n manuscripts(id: $id) {\n ...ManuscriptsContent\n }\n }\n \n']; /** * The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. */ diff --git a/packages/contentful/src/crn/autogenerated-gql/graphql.ts b/packages/contentful/src/crn/autogenerated-gql/graphql.ts index 7e749f290d..f318b2b9dd 100644 --- a/packages/contentful/src/crn/autogenerated-gql/graphql.ts +++ b/packages/contentful/src/crn/autogenerated-gql/graphql.ts @@ -3387,6 +3387,69 @@ export enum LabsOrder { SysPublishedVersionDesc = 'sys_publishedVersion_DESC', } +/** [See type definition](https://app.contentful.com/spaces/5v6w5j61tndm/content_types/manuscripts) */ +export type Manuscripts = Entry & { + contentfulMetadata: ContentfulMetadata; + linkedFrom?: Maybe; + sys: Sys; + title?: Maybe; +}; + +/** [See type definition](https://app.contentful.com/spaces/5v6w5j61tndm/content_types/manuscripts) */ +export type ManuscriptsLinkedFromArgs = { + allowedLocales?: InputMaybe>>; +}; + +/** [See type definition](https://app.contentful.com/spaces/5v6w5j61tndm/content_types/manuscripts) */ +export type ManuscriptsTitleArgs = { + locale?: InputMaybe; +}; + +export type ManuscriptsCollection = { + items: Array>; + limit: Scalars['Int']; + skip: Scalars['Int']; + total: Scalars['Int']; +}; + +export type ManuscriptsFilter = { + AND?: InputMaybe>>; + OR?: InputMaybe>>; + contentfulMetadata?: InputMaybe; + sys?: InputMaybe; + title?: InputMaybe; + title_contains?: InputMaybe; + title_exists?: InputMaybe; + title_in?: InputMaybe>>; + title_not?: InputMaybe; + title_not_contains?: InputMaybe; + title_not_in?: InputMaybe>>; +}; + +export type ManuscriptsLinkingCollections = { + entryCollection?: Maybe; +}; + +export type ManuscriptsLinkingCollectionsEntryCollectionArgs = { + limit?: InputMaybe; + locale?: InputMaybe; + preview?: InputMaybe; + skip?: InputMaybe; +}; + +export enum ManuscriptsOrder { + SysFirstPublishedAtAsc = 'sys_firstPublishedAt_ASC', + SysFirstPublishedAtDesc = 'sys_firstPublishedAt_DESC', + SysIdAsc = 'sys_id_ASC', + SysIdDesc = 'sys_id_DESC', + SysPublishedAtAsc = 'sys_publishedAt_ASC', + SysPublishedAtDesc = 'sys_publishedAt_DESC', + SysPublishedVersionAsc = 'sys_publishedVersion_ASC', + SysPublishedVersionDesc = 'sys_publishedVersion_DESC', + TitleAsc = 'title_ASC', + TitleDesc = 'title_DESC', +} + /** Videos and PDFs [See type definition](https://app.contentful.com/spaces/5v6w5j61tndm/content_types/media) */ export type Media = Entry & { contentfulMetadata: ContentfulMetadata; @@ -3995,6 +4058,8 @@ export type Query = { interestGroupsCollection?: Maybe; labs?: Maybe; labsCollection?: Maybe; + manuscripts?: Maybe; + manuscriptsCollection?: Maybe; media?: Maybe; mediaCollection?: Maybe; migration?: Maybe; @@ -4282,6 +4347,21 @@ export type QueryLabsCollectionArgs = { where?: InputMaybe; }; +export type QueryManuscriptsArgs = { + id: Scalars['String']; + locale?: InputMaybe; + preview?: InputMaybe; +}; + +export type QueryManuscriptsCollectionArgs = { + limit?: InputMaybe; + locale?: InputMaybe; + order?: InputMaybe>>; + preview?: InputMaybe; + skip?: InputMaybe; + where?: InputMaybe; +}; + export type QueryMediaArgs = { id: Scalars['String']; locale?: InputMaybe; @@ -10677,6 +10757,9 @@ export type FetchDashboardQuery = { | ({ __typename: 'Labs' } & { sys: Pick; }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -10808,6 +10891,9 @@ export type FetchDashboardQuery = { | ({ __typename: 'Labs' } & { sys: Pick; }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -10951,6 +11037,7 @@ export type FetchDiscoverQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -11097,6 +11184,7 @@ export type EventsContentFragment = Pick< }) | ({ __typename: 'InterestGroups' } & { sys: Pick }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -11161,6 +11249,7 @@ export type EventsContentFragment = Pick< }) | ({ __typename: 'InterestGroups' } & { sys: Pick }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -11225,6 +11314,7 @@ export type EventsContentFragment = Pick< }) | ({ __typename: 'InterestGroups' } & { sys: Pick }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -11412,6 +11502,7 @@ export type FetchEventByIdQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -11486,6 +11577,7 @@ export type FetchEventByIdQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -11560,6 +11652,7 @@ export type FetchEventByIdQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -11780,6 +11873,9 @@ export type FetchEventsQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -11880,6 +11976,9 @@ export type FetchEventsQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -11980,6 +12079,9 @@ export type FetchEventsQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -12239,6 +12341,9 @@ export type FetchEventsByUserIdQuery = { | ({ __typename: 'Labs' } & { sys: Pick; }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick< Media, 'url' @@ -12356,6 +12461,9 @@ export type FetchEventsByUserIdQuery = { | ({ __typename: 'Labs' } & { sys: Pick; }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick< Media, 'url' @@ -12473,6 +12581,9 @@ export type FetchEventsByUserIdQuery = { | ({ __typename: 'Labs' } & { sys: Pick; }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick< Media, 'url' @@ -12766,6 +12877,9 @@ export type FetchEventsByExternalAuthorIdQuery = { | ({ __typename: 'Labs' } & { sys: Pick; }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick< Media, 'url' @@ -12883,6 +12997,9 @@ export type FetchEventsByExternalAuthorIdQuery = { | ({ __typename: 'Labs' } & { sys: Pick; }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick< Media, 'url' @@ -13000,6 +13117,9 @@ export type FetchEventsByExternalAuthorIdQuery = { | ({ __typename: 'Labs' } & { sys: Pick; }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick< Media, 'url' @@ -13293,6 +13413,9 @@ export type FetchEventsByTeamIdQuery = { | ({ __typename: 'Labs' } & { sys: Pick; }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick< Media, 'url' @@ -13410,6 +13533,9 @@ export type FetchEventsByTeamIdQuery = { | ({ __typename: 'Labs' } & { sys: Pick; }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick< Media, 'url' @@ -13527,6 +13653,9 @@ export type FetchEventsByTeamIdQuery = { | ({ __typename: 'Labs' } & { sys: Pick; }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick< Media, 'url' @@ -14199,6 +14328,18 @@ export type FetchLabsQuery = { >; }; +export type ManuscriptsContentFragment = Pick & { + sys: Pick; +}; + +export type FetchManuscriptByIdQueryVariables = Exact<{ + id: Scalars['String']; +}>; + +export type FetchManuscriptByIdQuery = { + manuscripts?: Maybe & { sys: Pick }>; +}; + export type NewsContentFragment = Pick< News, 'title' | 'shortText' | 'frequency' | 'link' | 'linkText' | 'publishDate' @@ -14228,6 +14369,7 @@ export type NewsContentFragment = Pick< }) | ({ __typename: 'InterestGroups' } & { sys: Pick }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -14313,6 +14455,7 @@ export type FetchNewsByIdQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -14431,6 +14574,9 @@ export type FetchNewsQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -14526,6 +14672,7 @@ export type PageContentFragment = Pick< }) | ({ __typename: 'InterestGroups' } & { sys: Pick }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -14623,6 +14770,9 @@ export type FetchPagesQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -14909,6 +15059,7 @@ export type ResearchOutputsContentFragment = Pick< }) | ({ __typename: 'InterestGroups' } & { sys: Pick }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -15128,6 +15279,7 @@ export type FetchResearchOutputByIdQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -15379,6 +15531,9 @@ export type FetchResearchOutputsQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -15767,6 +15922,7 @@ export type TutorialsContentFragment = Pick< }) | ({ __typename: 'InterestGroups' } & { sys: Pick }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -15901,6 +16057,7 @@ export type FetchTutorialByIdQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -16068,6 +16225,9 @@ export type FetchTutorialsQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -16741,6 +16901,7 @@ export type WorkingGroupsContentFragment = Pick< }) | ({ __typename: 'InterestGroups' } & { sys: Pick }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -16904,6 +17065,7 @@ export type FetchWorkingGroupByIdQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { sys: Pick }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -17097,6 +17259,9 @@ export type FetchWorkingGroupsQuery = { sys: Pick; }) | ({ __typename: 'Labs' } & { sys: Pick }) + | ({ __typename: 'Manuscripts' } & { + sys: Pick; + }) | ({ __typename: 'Media' } & Pick & { sys: Pick; }) @@ -18940,6 +19105,35 @@ export const InterestGroupsContentFragmentDoc = { }, ], } as unknown as DocumentNode; +export const ManuscriptsContentFragmentDoc = { + kind: 'Document', + definitions: [ + { + kind: 'FragmentDefinition', + name: { kind: 'Name', value: 'ManuscriptsContent' }, + typeCondition: { + kind: 'NamedType', + name: { kind: 'Name', value: 'Manuscripts' }, + }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'sys' }, + selectionSet: { + kind: 'SelectionSet', + selections: [ + { kind: 'Field', name: { kind: 'Name', value: 'id' } }, + ], + }, + }, + { kind: 'Field', name: { kind: 'Name', value: 'title' } }, + ], + }, + }, + ], +} as unknown as DocumentNode; export const NewsContentFragmentDoc = { kind: 'Document', definitions: [ @@ -26383,6 +26577,61 @@ export const FetchLabsDocument = { }, ], } as unknown as DocumentNode; +export const FetchManuscriptByIdDocument = { + kind: 'Document', + definitions: [ + { + kind: 'OperationDefinition', + operation: 'query', + name: { kind: 'Name', value: 'FetchManuscriptById' }, + variableDefinitions: [ + { + kind: 'VariableDefinition', + variable: { kind: 'Variable', name: { kind: 'Name', value: 'id' } }, + type: { + kind: 'NonNullType', + type: { + kind: 'NamedType', + name: { kind: 'Name', value: 'String' }, + }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'Field', + name: { kind: 'Name', value: 'manuscripts' }, + arguments: [ + { + kind: 'Argument', + name: { kind: 'Name', value: 'id' }, + value: { + kind: 'Variable', + name: { kind: 'Name', value: 'id' }, + }, + }, + ], + selectionSet: { + kind: 'SelectionSet', + selections: [ + { + kind: 'FragmentSpread', + name: { kind: 'Name', value: 'ManuscriptsContent' }, + }, + ], + }, + }, + ], + }, + }, + ...ManuscriptsContentFragmentDoc.definitions, + ], +} as unknown as DocumentNode< + FetchManuscriptByIdQuery, + FetchManuscriptByIdQueryVariables +>; export const FetchNewsByIdDocument = { kind: 'Document', definitions: [ diff --git a/packages/contentful/src/crn/queries/index.ts b/packages/contentful/src/crn/queries/index.ts index 3c9a877672..4709797f36 100644 --- a/packages/contentful/src/crn/queries/index.ts +++ b/packages/contentful/src/crn/queries/index.ts @@ -7,6 +7,7 @@ export * from './events.queries'; export * from './external-authors.queries'; export * from './interest-groups.queries'; export * from './labs.queries'; +export * from './manuscript.queries'; export * from './news.queries'; export * from './pages.queries'; export * from './reminders.queries'; diff --git a/packages/contentful/src/crn/queries/manuscript.queries.ts b/packages/contentful/src/crn/queries/manuscript.queries.ts new file mode 100644 index 0000000000..f72eb7d7f6 --- /dev/null +++ b/packages/contentful/src/crn/queries/manuscript.queries.ts @@ -0,0 +1,21 @@ +/* istanbul ignore file */ + +import { gql } from 'graphql-tag'; + +export const manuscriptContentQueryFragment = gql` + fragment ManuscriptsContent on Manuscripts { + sys { + id + } + title + } +`; + +export const FETCH_MANUSCRIPT_BY_ID = gql` + query FetchManuscriptById($id: String!) { + manuscripts(id: $id) { + ...ManuscriptsContent + } + } + ${manuscriptContentQueryFragment} +`; diff --git a/packages/contentful/src/crn/schema/autogenerated-schema.graphql b/packages/contentful/src/crn/schema/autogenerated-schema.graphql index 4a9bb1acda..40e8176ca7 100644 --- a/packages/contentful/src/crn/schema/autogenerated-schema.graphql +++ b/packages/contentful/src/crn/schema/autogenerated-schema.graphql @@ -2455,6 +2455,52 @@ enum LabsOrder { sys_publishedVersion_DESC } +"""[See type definition](https://app.contentful.com/spaces/5v6w5j61tndm/content_types/manuscripts)""" +type Manuscripts implements Entry { + contentfulMetadata: ContentfulMetadata! + linkedFrom(allowedLocales: [String]): ManuscriptsLinkingCollections + sys: Sys! + title(locale: String): String +} + +type ManuscriptsCollection { + items: [Manuscripts]! + limit: Int! + skip: Int! + total: Int! +} + +input ManuscriptsFilter { + AND: [ManuscriptsFilter] + OR: [ManuscriptsFilter] + contentfulMetadata: ContentfulMetadataFilter + sys: SysFilter + title: String + title_contains: String + title_exists: Boolean + title_in: [String] + title_not: String + title_not_contains: String + title_not_in: [String] +} + +type ManuscriptsLinkingCollections { + entryCollection(limit: Int = 100, locale: String, preview: Boolean, skip: Int = 0): EntryCollection +} + +enum ManuscriptsOrder { + sys_firstPublishedAt_ASC + sys_firstPublishedAt_DESC + sys_id_ASC + sys_id_DESC + sys_publishedAt_ASC + sys_publishedAt_DESC + sys_publishedVersion_ASC + sys_publishedVersion_DESC + title_ASC + title_DESC +} + """Videos and PDFs [See type definition](https://app.contentful.com/spaces/5v6w5j61tndm/content_types/media)""" type Media implements Entry { contentfulMetadata: ContentfulMetadata! @@ -2902,6 +2948,8 @@ type Query { interestGroupsCollection(limit: Int = 100, locale: String, order: [InterestGroupsOrder], preview: Boolean, skip: Int = 0, where: InterestGroupsFilter): InterestGroupsCollection labs(id: String!, locale: String, preview: Boolean): Labs labsCollection(limit: Int = 100, locale: String, order: [LabsOrder], preview: Boolean, skip: Int = 0, where: LabsFilter): LabsCollection + manuscripts(id: String!, locale: String, preview: Boolean): Manuscripts + manuscriptsCollection(limit: Int = 100, locale: String, order: [ManuscriptsOrder], preview: Boolean, skip: Int = 0, where: ManuscriptsFilter): ManuscriptsCollection media(id: String!, locale: String, preview: Boolean): Media mediaCollection(limit: Int = 100, locale: String, order: [MediaOrder], preview: Boolean, skip: Int = 0, where: MediaFilter): MediaCollection migration(id: String!, locale: String, preview: Boolean): Migration diff --git a/packages/fixtures/src/index.ts b/packages/fixtures/src/index.ts index 75b1b031f7..8cb76d5e0a 100644 --- a/packages/fixtures/src/index.ts +++ b/packages/fixtures/src/index.ts @@ -7,6 +7,7 @@ export * as gp2 from './gp2'; export * from './interest-groups'; export * from './guides'; export * from './labs'; +export * from './manuscripts'; export * from './news'; export * from './pages'; export * from './reminder'; diff --git a/packages/fixtures/src/manuscripts.ts b/packages/fixtures/src/manuscripts.ts new file mode 100644 index 0000000000..86a6db20e8 --- /dev/null +++ b/packages/fixtures/src/manuscripts.ts @@ -0,0 +1,8 @@ +import { ManuscriptResponse } from '@asap-hub/model'; + +export const createManuscriptResponse = ( + itemIndex = 0, +): ManuscriptResponse => ({ + id: `manuscript_${itemIndex}`, + title: `Manuscript ${itemIndex + 1}`, +}); diff --git a/packages/flags/src/index.ts b/packages/flags/src/index.ts index df0d1616d7..54174eb54f 100644 --- a/packages/flags/src/index.ts +++ b/packages/flags/src/index.ts @@ -3,7 +3,8 @@ export type Flag = | 'VERSION_RESEARCH_OUTPUT' | 'DISPLAY_EVENTS' | 'DISPLAY_ANALYTICS_PRODUCTIVITY' - | 'DISPLAY_ANALYTICS_COLLABORATION'; + | 'DISPLAY_ANALYTICS_COLLABORATION' + | 'DISPLAY_MANUSCRIPTS'; export type Flags = Partial>; let overrides: Flags = { @@ -12,6 +13,7 @@ let overrides: Flags = { DISPLAY_EVENTS: false, DISPLAY_ANALYTICS_PRODUCTIVITY: false, DISPLAY_ANALYTICS_COLLABORATION: false, + DISPLAY_MANUSCRIPTS: false, }; const envDefaults: Record = { diff --git a/packages/model/src/index.ts b/packages/model/src/index.ts index cb00ece4ed..bfde0fb8fc 100644 --- a/packages/model/src/index.ts +++ b/packages/model/src/index.ts @@ -15,6 +15,7 @@ export * as gp2 from './gp2'; export * from './interest-group'; export * from './guide'; export * from './lab'; +export * from './manuscript'; export * from './news'; export * from './page'; export * from './reminder'; diff --git a/packages/model/src/manuscript.ts b/packages/model/src/manuscript.ts new file mode 100644 index 0000000000..725799d86a --- /dev/null +++ b/packages/model/src/manuscript.ts @@ -0,0 +1,22 @@ +import { JSONSchemaType } from 'ajv'; + +export type ManuscriptDataObject = { + id: string; + title: string; +}; + +export type ManuscriptResponse = ManuscriptDataObject; + +export type ManuscriptPostRequest = Pick; + +export type ManuscriptCreateDataObject = ManuscriptPostRequest; + +export const manuscriptPostRequestSchema: JSONSchemaType = + { + type: 'object', + properties: { + title: { type: 'string' }, + }, + required: ['title'], + additionalProperties: false, + }; diff --git a/packages/react-components/package.json b/packages/react-components/package.json index a6ca4f66b1..7a4d2fea71 100644 --- a/packages/react-components/package.json +++ b/packages/react-components/package.json @@ -39,6 +39,7 @@ "hast-util-sanitize": "3.0.2", "ismounted": "^0.1.8", "ramda": "0.27.1", + "react-hook-form": "^7.51.4", "react-router-hash-link": "2.4.3", "react-select": "4.3.1", "react-sortable-hoc": "2.0.0", diff --git a/packages/react-components/src/atoms/Button.tsx b/packages/react-components/src/atoms/Button.tsx index 43a01ca39a..c221286024 100644 --- a/packages/react-components/src/atoms/Button.tsx +++ b/packages/react-components/src/atoms/Button.tsx @@ -42,6 +42,7 @@ interface LinkStyleButtonProps { readonly fullWidth?: undefined; } type ButtonProps = (NormalButtonProps | LinkStyleButtonProps) & { + readonly preventDefault?: boolean; readonly submit?: boolean; readonly children?: React.ReactNode; readonly overrideStyles?: SerializedStyles; @@ -54,6 +55,7 @@ const Button: React.FC = ({ linkStyle = false, active = false, fullWidth = false, + preventDefault = true, noMargin, theme = defaultThemeVariant, submit = primary, @@ -67,7 +69,9 @@ const Button: React.FC = ({ disabled={!enabled} onClick={(event) => { onClick(); - event.preventDefault(); + if (preventDefault) { + event.preventDefault(); + } }} css={({ colors }) => [ linkStyle diff --git a/packages/react-components/src/index.ts b/packages/react-components/src/index.ts index 83d9b96e77..0e030ea210 100644 --- a/packages/react-components/src/index.ts +++ b/packages/react-components/src/index.ts @@ -134,6 +134,7 @@ export { JoinEvent, LeadershipMembershipTable, MainNavigation, + ManuscriptHeader, MenuHeader, NewsCard, NewsSection, @@ -226,6 +227,7 @@ export { LoadingLayout, LoadingContentBody, LoadingContentHeader, + ManuscriptForm, NetworkInterestGroups, NetworkPage, NetworkPeople, diff --git a/packages/react-components/src/molecules/FormCard.tsx b/packages/react-components/src/molecules/FormCard.tsx index 660291d10f..9cb4218308 100644 --- a/packages/react-components/src/molecules/FormCard.tsx +++ b/packages/react-components/src/molecules/FormCard.tsx @@ -8,6 +8,10 @@ interface FormCardProps { description?: string; } +const cardStyles = css({ + paddingTop: `${14 / perRem}em`, +}); + const descriptionStyles = css({ paddingTop: 0, paddingBottom: 0, @@ -22,7 +26,7 @@ const FormCard: React.FC = ({ title, description, }) => ( - +

diff --git a/packages/react-components/src/organisms/ManuscriptHeader.tsx b/packages/react-components/src/organisms/ManuscriptHeader.tsx new file mode 100644 index 0000000000..29d031fe5f --- /dev/null +++ b/packages/react-components/src/organisms/ManuscriptHeader.tsx @@ -0,0 +1,42 @@ +import React from 'react'; +import { css } from '@emotion/react'; + +import { Display, Paragraph } from '../atoms'; +import { perRem } from '../pixels'; +import { paper, steel } from '../colors'; +import { contentSidePaddingWithNavigation } from '../layout'; + +const headerStyles = css({ + padding: `${36 / perRem}em ${contentSidePaddingWithNavigation(8)} ${ + 60 / perRem + }em `, + background: paper.rgb, + boxShadow: `0 2px 4px -2px ${steel.rgb}`, + marginBottom: `${30 / perRem}em`, + display: 'flex', + justifyContent: 'center', +}); + +const contentStyles = css({ + display: 'flex', + flexDirection: 'column', + maxWidth: `${800 / perRem}em`, + width: '100%', + justifyContent: 'center', +}); + +const ManuscriptHeader: React.FC = () => ( +
+
+ Submit a Manuscript +
+ + Submit your manuscript to receive a compliance report and find out + which areas need to be improved before publishing your article. + +
+
+
+); + +export default ManuscriptHeader; diff --git a/packages/react-components/src/organisms/Toast.tsx b/packages/react-components/src/organisms/Toast.tsx index 6d7cb76ac1..31518bf802 100644 --- a/packages/react-components/src/organisms/Toast.tsx +++ b/packages/react-components/src/organisms/Toast.tsx @@ -139,7 +139,11 @@ const Toast: React.FC = ({ }) => (
{onClose && ( - )} diff --git a/packages/react-components/src/organisms/__tests__/ManuscriptHeader.test.tsx b/packages/react-components/src/organisms/__tests__/ManuscriptHeader.test.tsx new file mode 100644 index 0000000000..75c3df5555 --- /dev/null +++ b/packages/react-components/src/organisms/__tests__/ManuscriptHeader.test.tsx @@ -0,0 +1,15 @@ +import { render, screen } from '@testing-library/react'; + +import ManuscriptHeader from '../ManuscriptHeader'; + +it('renders the manuscript header content', () => { + render(); + expect( + screen.getByRole('heading', { name: /Submit a Manuscript/i }), + ).toBeInTheDocument(); + expect( + screen.getByText( + 'Submit your manuscript to receive a compliance report and find out which areas need to be improved before publishing your article.', + ), + ).toBeInTheDocument(); +}); diff --git a/packages/react-components/src/organisms/index.ts b/packages/react-components/src/organisms/index.ts index fc4c2555f6..924f697ff3 100644 --- a/packages/react-components/src/organisms/index.ts +++ b/packages/react-components/src/organisms/index.ts @@ -28,6 +28,7 @@ export { default as InterestGroupTeamsTabbedCard } from './InterestGroupTeamsTab export { default as JoinEvent } from './JoinEvent'; export { default as LeadershipMembershipTable } from './LeadershipMembershipTable'; export { default as MainNavigation } from './MainNavigation'; +export { default as ManuscriptHeader } from './ManuscriptHeader'; export { default as MenuHeader } from './MenuHeader'; export { default as NewsCard } from './NewsCard'; export { default as NewsSection } from './NewsSection'; diff --git a/packages/react-components/src/templates/ManuscriptForm.tsx b/packages/react-components/src/templates/ManuscriptForm.tsx new file mode 100644 index 0000000000..0d16b97576 --- /dev/null +++ b/packages/react-components/src/templates/ManuscriptForm.tsx @@ -0,0 +1,127 @@ +import { ManuscriptPostRequest, ManuscriptResponse } from '@asap-hub/model'; +import { css } from '@emotion/react'; +import React from 'react'; +import { Controller, useForm } from 'react-hook-form'; +import { useHistory } from 'react-router-dom'; +import { FormCard, LabeledTextField } from '..'; +import { Button } from '../atoms'; +import { defaultPageLayoutPaddingStyle } from '../layout'; +import { mobileScreen, rem } from '../pixels'; + +const mainStyles = css({ + display: 'flex', + justifyContent: 'center', + padding: defaultPageLayoutPaddingStyle, +}); + +const contentStyles = css({ + display: 'grid', + gridTemplateColumns: '1fr', + width: '100%', + maxWidth: rem(800), + justifyContent: 'center', + gridAutoFlow: 'row', + rowGap: rem(36), +}); + +const buttonsOuterContainerStyles = css({ + display: 'flex', + justifyContent: 'end', + [`@media (max-width: ${mobileScreen.max}px)`]: { + width: '100%', + }, +}); + +const buttonsInnerContainerStyles = css({ + display: 'flex', + flexDirection: 'row', + gap: rem(24), + [`@media (max-width: ${mobileScreen.max}px)`]: { + flexDirection: 'column-reverse', + width: '100%', + }, +}); + +type ManuscriptFormProps = { + onSave: (output: ManuscriptPostRequest) => Promise; + onSuccess: () => void; +}; + +const ManuscriptForm: React.FC = ({ + onSave, + onSuccess, +}) => { + const history = useHistory(); + + const methods = useForm({ + mode: 'onBlur', + defaultValues: { + title: '', + }, + }); + + const { + handleSubmit, + control, + formState: { isSubmitting }, + } = methods; + + const onSubmit = async (data: ManuscriptPostRequest) => { + await onSave(data); + + onSuccess(); + }; + + return ( +
+
+
+ + ( + + validationState.valueMissing ? 'Please enter a title.' : '' + } + required + value={value} + onChange={onChange} + enabled={!isSubmitting} + /> + )} + /> + + +
+
+ + +
+
+
+
+
+ ); +}; + +export default ManuscriptForm; diff --git a/packages/react-components/src/templates/TeamProfileWorkspace.tsx b/packages/react-components/src/templates/TeamProfileWorkspace.tsx index 45807fff83..ae1de6cc4a 100644 --- a/packages/react-components/src/templates/TeamProfileWorkspace.tsx +++ b/packages/react-components/src/templates/TeamProfileWorkspace.tsx @@ -1,12 +1,14 @@ +import { isEnabled } from '@asap-hub/flags'; import { TeamResponse, TeamTool } from '@asap-hub/model'; -import { css } from '@emotion/react'; import { network } from '@asap-hub/routing'; +import { css } from '@emotion/react'; -import { Card, Display, Link, Caption, Headline2, Paragraph } from '../atoms'; -import { perRem, mobileScreen } from '../pixels'; -import { ToolCard } from '../organisms'; -import { mailToSupport, createMailTo } from '../mail'; +import { Caption, Card, Display, Headline2, Link, Paragraph } from '../atoms'; import { formatDateAndTime } from '../date'; +import { plusIcon } from '../icons'; +import { createMailTo, mailToSupport } from '../mail'; +import { ToolCard } from '../organisms'; +import { mobileScreen, perRem, rem } from '../pixels'; const containerStyles = css({ display: 'grid', @@ -19,6 +21,24 @@ const newToolStyles = css({ display: 'block', }, }); + +const complianceContainerStyles = css({ + display: 'flex', + flexDirection: 'column', +}); + +const complianceHeaderStyles = css({ + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', +}); + +const manuscriptButtonStyles = css({ + flexGrow: 0, + alignSelf: 'center', + gap: rem(8), +}); + const toolContainerStyles = css({ listStyle: 'none', margin: 0, @@ -48,8 +68,35 @@ const TeamProfileWorkspace: React.FC = ({ .team({ teamId: id }) .workspace({}) .tools({}); + + const manuscriptRoute = network({}) + .teams({}) + .team({ teamId: id }) + .workspace({}) + .createManuscript({}).$; + return (
+ {isEnabled('DISPLAY_MANUSCRIPTS') && ( + +
+
+ Compliance +
+ + {plusIcon} Share Manuscript + +
+
+ + Submit your manuscripts to receive a compliance report and find + out which areas need to be improved before publishing your + article. + +
+
+ )} + Collaboration Tools (Team Only) diff --git a/packages/react-components/src/templates/__tests__/ManuscriptForm.test.tsx b/packages/react-components/src/templates/__tests__/ManuscriptForm.test.tsx new file mode 100644 index 0000000000..86dad8800b --- /dev/null +++ b/packages/react-components/src/templates/__tests__/ManuscriptForm.test.tsx @@ -0,0 +1,106 @@ +import { fireEvent, render, screen, waitFor } from '@testing-library/react'; +import { ComponentProps } from 'react'; +import { MemoryRouter, Route, Router, StaticRouter } from 'react-router-dom'; +import { createMemoryHistory, History } from 'history'; + +import userEvent from '@testing-library/user-event'; +import ManuscriptForm from '../ManuscriptForm'; + +let history!: History; + +beforeEach(() => { + history = createMemoryHistory(); +}); + +const defaultProps: ComponentProps = { + onSave: jest.fn(() => Promise.resolve()), + onSuccess: jest.fn(), +}; + +it('renders the form', async () => { + render( + + + , + ); + expect( + screen.getByRole('heading', { name: /What are you sharing/i }), + ).toBeVisible(); + expect(screen.getByRole('button', { name: /Submit/i })).toBeVisible(); +}); + +it('title is sent on form submission', async () => { + const onSave = jest.fn(); + render( + + + , + ); + + userEvent.type( + screen.getByRole('textbox', { name: /Title of Manuscript/i }), + 'manuscript title', + ); + userEvent.click(screen.getByRole('button', { name: /Submit/i })); + await waitFor(() => { + expect(onSave).toHaveBeenCalledWith({ title: 'manuscript title' }); + }); +}); + +it('displays error message when manuscript title is missing', async () => { + render( + + + , + ); + + const input = screen.getByRole('textbox', { name: /Title of Manuscript/i }); + fireEvent.focusOut(input); + expect(screen.getByText(/Please enter a title/i)).toBeVisible(); + + userEvent.type(input, 'title'); + fireEvent.focusOut(input); + expect(screen.queryByText(/Please enter a title/i)).toBeNull(); +}); + +it('does not submit when required values are missing', async () => { + const onSave = jest.fn(); + render( + + + , + ); + + const submitButton = screen.getByRole('button', { name: /Submit/i }); + + userEvent.click(submitButton); + + await waitFor(() => { + expect(submitButton).toBeEnabled(); + }); + + expect( + screen.getByRole('textbox', { name: /Title of Manuscript/i }), + ).toBeInvalid(); + expect(onSave).not.toHaveBeenCalled(); +}); + +it('should go back when cancel button is clicked', () => { + const { getByText } = render( + + + + + , + { wrapper: MemoryRouter }, + ); + + history.push('/another-url'); + history.push('/form'); + + const cancelButton = getByText(/cancel/i); + expect(cancelButton).toBeInTheDocument(); + userEvent.click(cancelButton); + + expect(history.location.pathname).toBe('/another-url'); +}); diff --git a/packages/react-components/src/templates/__tests__/TeamProfileWorkspace.test.tsx b/packages/react-components/src/templates/__tests__/TeamProfileWorkspace.test.tsx index b6cc0f97dc..6b0f22cec4 100644 --- a/packages/react-components/src/templates/__tests__/TeamProfileWorkspace.test.tsx +++ b/packages/react-components/src/templates/__tests__/TeamProfileWorkspace.test.tsx @@ -1,14 +1,17 @@ -import { ComponentProps } from 'react'; +import { createTeamResponse } from '@asap-hub/fixtures'; +import { disable, enable } from '@asap-hub/flags'; import { - render, getByText as getChildByText, + render, waitFor, } from '@testing-library/react'; import userEvent from '@testing-library/user-event'; -import { createTeamResponse } from '@asap-hub/fixtures'; +import { ComponentProps } from 'react'; import TeamProfileWorkspace from '../TeamProfileWorkspace'; +beforeEach(jest.clearAllMocks); + const team: ComponentProps = { ...createTeamResponse({ teamMembers: 1, tools: 0 }), tools: [], @@ -16,9 +19,21 @@ const team: ComponentProps = { it('renders the team workspace page', () => { const { getByRole } = render(); - expect(getByRole('heading').textContent).toEqual( - 'Collaboration Tools (Team Only)', + expect( + getByRole('heading', { name: 'Collaboration Tools (Team Only)' }), + ).toBeInTheDocument(); +}); + +it('renders compliance section when feature flag is enabled', () => { + enable('DISPLAY_MANUSCRIPTS'); + const { getByRole, queryByRole, rerender } = render( + , ); + expect(getByRole('heading', { name: 'Compliance' })).toBeInTheDocument(); + + disable('DISPLAY_MANUSCRIPTS'); + rerender(); + expect(queryByRole('heading', { name: 'Compliance' })).toBeNull(); }); it('renders contact project manager when point of contact provided', () => { diff --git a/packages/react-components/src/templates/index.ts b/packages/react-components/src/templates/index.ts index f3ddc30ae0..51a17a2e46 100644 --- a/packages/react-components/src/templates/index.ts +++ b/packages/react-components/src/templates/index.ts @@ -34,6 +34,7 @@ export { LoadingContentBody, LoadingContentHeader, } from './LoadingLayout'; +export { default as ManuscriptForm } from './ManuscriptForm'; export { default as NetworkInterestGroups } from './NetworkInterestGroups'; export { default as NetworkPage } from './NetworkPage'; export { default as NetworkPageHeader } from './NetworkPageHeader'; diff --git a/packages/routing/src/network.ts b/packages/routing/src/network.ts index 154199e8d5..50a66e9a22 100644 --- a/packages/routing/src/network.ts +++ b/packages/routing/src/network.ts @@ -91,7 +91,8 @@ const team = (() => { const tool = route('/:toolIndex', { toolIndex: stringParser }, {}); const tools = route('/tools', {}, { tool }); - const workspace = route('/workspace', {}, { tools }); + const createManuscript = route('/create-manuscript', {}, {}); + const workspace = route('/workspace', {}, { tools, createManuscript }); const createOutput = route( '/create-output/:outputDocumentType', { outputDocumentType: outputDocumentTypeParser }, diff --git a/yarn.lock b/yarn.lock index 1fa067b928..470a34bc24 100644 --- a/yarn.lock +++ b/yarn.lock @@ -956,6 +956,7 @@ __metadata: react-app-polyfill: 3.0.0 react-dom: 17.0.2 react-error-boundary: 3.1.4 + react-hook-form: ^7.51.4 react-router-dom: 5.3.4 react-router-last-location: 2.0.1 react-test-renderer: 17.0.2 @@ -1681,6 +1682,7 @@ __metadata: ramda: 0.27.1 react: 17.0.2 react-dom: 17.0.2 + react-hook-form: ^7.51.4 react-router-dom: 5.3.4 react-router-hash-link: 2.4.3 react-select: 4.3.1 @@ -39603,6 +39605,15 @@ __metadata: languageName: node linkType: hard +"react-hook-form@npm:^7.51.4": + version: 7.51.4 + resolution: "react-hook-form@npm:7.51.4" + peerDependencies: + react: ^16.8.0 || ^17 || ^18 + checksum: b3587c23425025cc4ab9d4de71420aeb9b28809a9183691584ecbbf5bb3d85ab8c232afb01424efed11a761c9c726521a230d4e092c7ad6bb70a011a7ba0acf7 + languageName: node + linkType: hard + "react-input-autosize@npm:^3.0.0": version: 3.0.0 resolution: "react-input-autosize@npm:3.0.0"