From 12467edda7a144cd22fb59b4c4f99f1fa053c9ae Mon Sep 17 00:00:00 2001 From: alex Date: Sat, 31 Aug 2024 10:28:01 +0200 Subject: [PATCH] auth --- commit_and_push.sh | 7 + package-lock.json | 65 ++++++++ package.json | 1 + src/App.css | 38 ----- src/App.test.tsx | 1 - src/App.tsx | 60 +++++-- src/core/components/Header/index.tsx | 1 - src/core/components/PageContent/index.tsx | 4 - src/core/components/SideMenu/index.tsx | 5 - src/core/store/appSlice.tsx | 9 +- src/core/utils/utils.tsx | 148 +++++++++++++++++- src/features/Auth/SignIn/index.tsx | 120 ++++++++++++++ .../Auth/SignIn/pexels-photo-380769.webp | Bin 0 -> 78118 bytes src/features/Auth/SignIn/styles.module.css | 18 +++ src/features/Lessons/LessonPage/index.tsx | 4 +- src/index.tsx | 16 +- .../components/MyCenteredSpin/index.tsx | 4 +- src/shared/components/MySpin/index.tsx | 6 + 18 files changed, 432 insertions(+), 75 deletions(-) create mode 100755 commit_and_push.sh delete mode 100644 src/App.css create mode 100644 src/features/Auth/SignIn/index.tsx create mode 100644 src/features/Auth/SignIn/pexels-photo-380769.webp create mode 100644 src/features/Auth/SignIn/styles.module.css create mode 100644 src/shared/components/MySpin/index.tsx diff --git a/commit_and_push.sh b/commit_and_push.sh new file mode 100755 index 0000000..554786f --- /dev/null +++ b/commit_and_push.sh @@ -0,0 +1,7 @@ +git add * + +read -p "Commit message: " commit_message + +git commit -m "$commit_message" + +git push -u origin main \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index ea43cbc..5baac9c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,6 +19,7 @@ "@types/react": "^18.3.4", "@types/react-dom": "^18.3.0", "antd": "^5.20.3", + "buffer": "^6.0.3", "i18next": "^23.7.6", "i18next-browser-languagedetector": "^7.2.0", "react": "^18.3.1", @@ -6293,6 +6294,26 @@ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", "license": "MIT" }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/batch": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", @@ -6487,6 +6508,30 @@ "node-int64": "^0.4.0" } }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, "node_modules/buffer-from": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", @@ -10403,6 +10448,26 @@ "node": ">=4" } }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "BSD-3-Clause" + }, "node_modules/ignore": { "version": "5.3.2", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", diff --git a/package.json b/package.json index 38a26c2..7661372 100644 --- a/package.json +++ b/package.json @@ -14,6 +14,7 @@ "@types/react": "^18.3.4", "@types/react-dom": "^18.3.0", "antd": "^5.20.3", + "buffer": "^6.0.3", "i18next": "^23.7.6", "i18next-browser-languagedetector": "^7.2.0", "react": "^18.3.1", diff --git a/src/App.css b/src/App.css deleted file mode 100644 index 74b5e05..0000000 --- a/src/App.css +++ /dev/null @@ -1,38 +0,0 @@ -.App { - text-align: center; -} - -.App-logo { - height: 40vmin; - pointer-events: none; -} - -@media (prefers-reduced-motion: no-preference) { - .App-logo { - animation: App-logo-spin infinite 20s linear; - } -} - -.App-header { - background-color: #282c34; - min-height: 100vh; - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - font-size: calc(10px + 2vmin); - color: white; -} - -.App-link { - color: #61dafb; -} - -@keyframes App-logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} diff --git a/src/App.test.tsx b/src/App.test.tsx index 2a68616..1f03afe 100644 --- a/src/App.test.tsx +++ b/src/App.test.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import { render, screen } from '@testing-library/react'; import App from './App'; diff --git a/src/App.tsx b/src/App.tsx index 4699d5e..8d01df5 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,29 +1,65 @@ -import React from "react"; -import logo from "./logo.svg"; -import "./App.css"; -import { Button, ConfigProvider, Layout, theme } from "antd"; +import { ConfigProvider, Layout, theme } from "antd"; import DashboardLayout from "./core/components/DashboardLayout"; -import { darkMode } from "./core/store/appSlice"; -import { useSelector } from "react-redux"; +import { + darkMode, + setUserAuthenticated, + userAuthenticated, +} from "./core/store/appSlice"; +import { useDispatch, useSelector } from "react-redux"; +import SignIn from "./features/Auth/SignIn"; +import { useEffect } from "react"; +import { myFetch } from "./core/utils/utils"; +import MyCenteredSpin from "./shared/components/MyCenteredSpin"; const { defaultAlgorithm, darkAlgorithm } = theme; function App() { - const isDarkMode = useSelector(darkMode) + const dispatch = useDispatch(); + + const isDarkMode = useSelector(darkMode); + const uAuthenticated = useSelector(userAuthenticated); console.info( - "\n %c LMS %c v0.1.0 %c \n", + "\n %c LMS %c v1.0.0 %c \n", "background-color: #555;color: #fff;padding: 3px 2px 3px 3px;border-radius: 3px 0 0 3px;font-family: DejaVu Sans,Verdana,Geneva,sans-serif;text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3)", "background-color: #bc81e0;background-image: linear-gradient(90deg, #e67e22, #9b59b6);color: #fff;padding: 3px 3px 3px 2px;border-radius: 0 3px 3px 0;font-family: DejaVu Sans,Verdana,Geneva,sans-serif;text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3)", "background-color: transparent" ); + useEffect(() => { + if (!localStorage.getItem("session")) { + dispatch(setUserAuthenticated(false)); + return; + } + + (async () => { + try { + const response = await myFetch({ + url: "/user", + method: "GET", + }); + + if (response) { + dispatch(setUserAuthenticated(true)) + } + } catch (error) {} + })(); + }, []); + return ( - - + + {uAuthenticated == null ? ( + + ) : uAuthenticated ? ( + + ) : ( + + )} ); diff --git a/src/core/components/Header/index.tsx b/src/core/components/Header/index.tsx index e5ece8b..f6a2531 100644 --- a/src/core/components/Header/index.tsx +++ b/src/core/components/Header/index.tsx @@ -14,7 +14,6 @@ import { SunOutlined, UserOutlined, } from "@ant-design/icons"; -import { editorActive } from "../../../features/Lessons/LessonPageEditor/lessonPageEditorSlice"; import { Link } from "react-router-dom"; import { darkMode, setDarkMode } from "../../store/appSlice"; import styles from "./styles.module.css"; diff --git a/src/core/components/PageContent/index.tsx b/src/core/components/PageContent/index.tsx index 13f12e2..3a107b2 100644 --- a/src/core/components/PageContent/index.tsx +++ b/src/core/components/PageContent/index.tsx @@ -1,6 +1,4 @@ import { Layout } from "antd"; -import { Content } from "antd/es/layout/layout"; -import HeaderMenu from "../Header"; import AppRoutes from "../AppRoutes"; import { useSelector } from "react-redux"; import { isSideMenuCollapsed } from "../SideMenu/sideMenuSlice"; @@ -18,8 +16,6 @@ export default function PageContent() { : 200, }} > - - ); diff --git a/src/core/components/SideMenu/index.tsx b/src/core/components/SideMenu/index.tsx index 8939f5f..44e6564 100644 --- a/src/core/components/SideMenu/index.tsx +++ b/src/core/components/SideMenu/index.tsx @@ -1,8 +1,6 @@ import { ControlOutlined, - GroupOutlined, MessageOutlined, - PieChartOutlined, QuestionCircleOutlined, SettingOutlined, SnippetsOutlined, @@ -12,7 +10,6 @@ import { import { Divider, Flex, Menu } from "antd"; import { useEffect, useState } from "react"; import { useLocation, useNavigate } from "react-router-dom"; -import { useTranslation } from "react-i18next"; import { useDispatch, useSelector } from "react-redux"; import { setIsSideMenuCollapsed, @@ -21,7 +18,6 @@ import { } from "./sideMenuSlice"; import { ItemType, MenuItemType } from "antd/es/menu/interface"; import { BreakpointLgWidth, Constants } from "../../utils/utils"; -import { useDraggable, useDroppable } from "@dnd-kit/core"; import Search from "antd/es/input/Search"; import { MyContainer } from "../../../shared/components/MyContainer"; import { addLessonContent } from "../../../features/Lessons/LessonPageEditor/lessonPageEditorSlice"; @@ -30,7 +26,6 @@ export function SideMenuContent() { const location = useLocation(); const [selectedKeys, setSelectedKeys] = useState("/"); const [openKeys, setOpenKeys] = useState([""]); - const { t } = useTranslation(); const dispatch = useDispatch(); const componentFirstRender = useSelector(sideMenuComponentFirstRender); diff --git a/src/core/store/appSlice.tsx b/src/core/store/appSlice.tsx index 7664306..8cdc465 100644 --- a/src/core/store/appSlice.tsx +++ b/src/core/store/appSlice.tsx @@ -4,17 +4,22 @@ export const appSlice = createSlice({ name: "app", initialState: { darkMode: false, + userAuthenticated: null, }, reducers: { setDarkMode: (state, action) => { state.darkMode = action.payload; }, + setUserAuthenticated: (state, action) => { + state.userAuthenticated = action.payload; + } }, selectors: { darkMode: (state) => state.darkMode, + userAuthenticated: (state) => state.userAuthenticated, }, }) -export const { setDarkMode } = appSlice.actions; +export const { setDarkMode, setUserAuthenticated } = appSlice.actions; -export const { darkMode } = appSlice.selectors; \ No newline at end of file +export const { darkMode, userAuthenticated } = appSlice.selectors; \ No newline at end of file diff --git a/src/core/utils/utils.tsx b/src/core/utils/utils.tsx index 412fd9f..908ea56 100644 --- a/src/core/utils/utils.tsx +++ b/src/core/utils/utils.tsx @@ -1,4 +1,7 @@ +import { Buffer } from "buffer"; + export const Constants = { + API_ADDRESS: `${window.location.protocol}//${window.location.hostname}/api/v1`, ROUTE_PATHS: { LESSIONS: { ROOT: "/lessons", @@ -12,7 +15,150 @@ export const Constants = { SUGGEST_FEATURE: "/suggest-feature", CONTACT_SUPPORT: "/contact-support", }, + STYLES: { + BLACK: "#000", + }, }; // used for sideMenu -export const BreakpointLgWidth = 992; \ No newline at end of file +export const BreakpointLgWidth = 992; + +export function getUserSessionFromLocalStorage() { + return localStorage.getItem("session"); +} + +export function EncodeStringToBase64(value: string) { + return Buffer.from(value).toString("base64"); +} + +export function DecodedBase64ToString(value: string) { + return Buffer.from(value, "base64").toString(); +} + +export function handleLogout() { + localStorage.removeItem("session"); + window.location.href = "/"; +} + +export const myFetchContentType = { + JSON: 0, + FORM_DATA: 1, +}; + + +type Method = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; + +interface MyFetchOptions { + url?: string; + method?: Method; + body?: TRequest | null; + headers?: Record; + contentType?: "JSON" | "FORM_DATA"; + fetchUrl?: string; + ignoreUnauthorized?: boolean; + notificationApi?: any; // Passen Sie dies je nach Bedarf an + t?: any; // Passen Sie dies je nach Bedarf an +} + +export function myFetch({ + url = "", + method = "GET", + body = null, + headers = {}, + contentType = "JSON", + fetchUrl = Constants.API_ADDRESS, + ignoreUnauthorized = false, + notificationApi = null, + t = null, +}: MyFetchOptions): Promise { + const getContentType = () => { + if (contentType === "JSON") return "application/json"; + + return "multipart/form-data"; + }; + + const getBody = () => { + if (!body) return null; + + if (contentType === "JSON") return JSON.stringify(body); + + return body; + }; + + // abort fetch if it takes to long + const controller = new AbortController(); + const signal = controller.signal; + + setTimeout(() => controller.abort(), 30000); // 30 seconds + + const requestOptions = { + method: method, + headers: { + "X-Authorization": getUserSessionFromLocalStorage() || "", + "Content-Type": getContentType(), + ...headers, + }, + body: getBody(), + signal: signal, + }; + + if (fetchUrl === "") { + fetchUrl = Constants.API_ADDRESS; + } + + return fetch(`${fetchUrl}${url}`, requestOptions as RequestInit) + .then(async (response) => { + // if status is not in range 200-299 + if (!response.ok) { + if (!ignoreUnauthorized && response.status === 401) { + console.error("Unauthorized"); + // TODO: check here + //setUserSessionToLocalStorage(""); + //window.location.href = "/"; + } + + throw response.status; + } + + // check if response is json + if (response.headers.get("content-type")?.includes("application/json")) { + return response.json(); + } + + return response.text(); + }) + .catch(async (error) => { + console.error("Error", error); + + // ignore errors here as they are handled in the components + if (error === 400) throw error; + + if (error === 401) { + if (ignoreUnauthorized) { + throw error; + } + + handleLogout(); + return; + } + + // show error notification for all other errors + + if (notificationApi !== null && t !== null) { + if (error === 500) { + /* notificationApi["error"]({ + message: t("common.request.failed.title"), + description: t("common.request.failed.description"), + }); */ + } else { + // other errors + /* notificationApi["error"]({ + message: t("common.request.failedInternetProblem.title"), + description: t("common.request.failedInternetProblem.description"), + }); */ + } + } + + throw error; + }); +} diff --git a/src/features/Auth/SignIn/index.tsx b/src/features/Auth/SignIn/index.tsx new file mode 100644 index 0000000..38f3644 --- /dev/null +++ b/src/features/Auth/SignIn/index.tsx @@ -0,0 +1,120 @@ +import { Button, Card, ConfigProvider, Flex, Form, Input } from "antd"; +import { useForm } from "antd/es/form/Form"; +import styles from "./styles.module.css"; +import { + Constants, + EncodeStringToBase64, + myFetch, +} from "../../../core/utils/utils"; +import { useState } from "react"; +import { useDispatch } from "react-redux"; +import { setUserAuthenticated } from "../../../core/store/appSlice"; + +type FieldType = { + email: string; + password: string; +}; + +interface SignInFetchResponse { + Session: string; +} + +export default function SignIn() { + const [form] = useForm(); + + const dispatch = useDispatch(); + + const [isRequesting, setIsRequesting] = useState(false); + + const handleSignIn = async (values: FieldType) => { + setIsRequesting(true); + + try { + const response = await myFetch({ + url: "/user/auth/login", + method: "POST", + body: { + email: values.email, + password: EncodeStringToBase64(values.password), + }, + ignoreUnauthorized: true, + }); + + setIsRequesting(false); + + localStorage.setItem("session", response.Session); + + dispatch(setUserAuthenticated(true)); + } catch (error) { + console.log("here", error); + setIsRequesting(false); + } + }; + + return ( + <> +
+
+ + + +

Sign In

+ + +
+ + label="Email" + name="email" + rules={[ + { + required: true, + type: "email", + message: "Please input your email!", + }, + ]} + > + + + + + label="Password" + name="password" + rules={[ + { required: true, message: "Please input your password!" }, + ]} + > + + + + + + + +
+
+
+ + ); +} diff --git a/src/features/Auth/SignIn/pexels-photo-380769.webp b/src/features/Auth/SignIn/pexels-photo-380769.webp new file mode 100644 index 0000000000000000000000000000000000000000..ac077e4ec2fc8f09e0b1cf58137065efa6162505 GIT binary patch literal 78118 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�-y)g{}=76f`7D<-Fvr_k#SEtJd%`i^B=!s-$SU2@^!SWPT1D`j_ zd9MY^%lD*zENL)Ah&nYf`ZSxKat9mM5N-^7@2Fl;Enf76;jW1H)5VVm*nd}go4Jzv zJpFAoeM4@-pWr08cgg|j&9FsbhFA&N%FCgbRUzh@K67Z1$0G4^IfWqPIawjpHAxe) zP60=~Jz-!?7sLBXq~4-UI8fC7&1$we@iMLwI9P7ZOnd|lEF{gv6>_<+_iHPo2S%hu zH3s8hDH`5b?Ls^;;hOZPz1?87ebRgD>smg4UP`?%VsSKJKp4IkG_G}!?^LfV=hM~% zaVTuk-rWqx@Wv8RgC1X66|1F94My=TrDl8_U~3j8WeD8-V(b*h*C-<>$|k~wQn zxf66MR~G#}<)6*_#FB?{J^`YbQzr1C`B|4-n!Oimq{PwHT-?nTnL|ShF8`T>5|GXS zz1D-;ho`R@rT_07w{<@}hu>f~a*SR)XJc?T|?0ZnoS72^7m@eDS@F^PlP4XS>r(IN}h^sNg28V4L#vd)@!jEMkcr5H@ zkD&sl(>)|iKb!z1fY7)o_$nZRIv<8h^|v`wZZyacGd+d(B3F-IFbM!NfG7hTa_|OH zdqwl4n&kpdnN&s?mPpZs#@*K{21-M_B+ZXHITZJcUI*oukT%zU#rCfUJhiKYfIEGc z=cw_)j8DK0KA$>Y-DQ}ReTco!)`|*&C>78+H=It@*hP(x+iKS(DLL-5b5$5CpS0M8 zs-Q>`Lg9~O&r2IYLjzen&)~VLqi`PhhulF~_1ksSo(Ynh^A%Rf&&zsYB&INWTEB9A z2qfC{gUWfubk(cyl~Ufk3!6BDhVaX0#$4a5(N%HR&%N)uVePwTqJ27W_@8m68?!vs z_elBm6NG@8AXbp+6M2?EEH=zqUvH!IOip546{eTyFrvf_!o6JlGB0IBzC~IAkU(Zd(2xMEOtap zr*YcoVP zF7vGzl~~pJ4@fjj9^1}V1gup<8fz7q87@BsS(P8GV7^$RD*&bL&;b$+ygM6n0-THD zFDLXGAZ6FJ=j2@&>-}(tVH@{@W*Dh;KPFaVQcs^}@8)uD(7_TOwlMEzc$o_fmSx;i zNM~E_GH;8a-b}ZRAE>q*B!bLMLQa<5cyCw{a91&FNoE+-z%pFo z>-ay=O~Xh~5Y2jiQHy%Xb(tAW^)3H_Itx>OqpNw@&IuIl*SIfZ%3g@f&thI! zK$J*U5n1PI87At<1D_+QOx-J+YJhat>XAUJ7Xy#;bPt17*e|f?&`v_LQ72c@ znk)uElpf;SXZB%2adWkA0k@8v5~R^}x9{Ob6Yzo0zzdO2tQ(7*J2G@`lU?D!&eeVp zJKupuNQnt=uI`>G+3Rdbz-FoRF6qRSTHBJD%4FL8_q*A$*qnx8BRcowy+RsHf|uxQ%E zErC|ZEIatF8mODQj4~#KOgHQ`g)OOaxcNPsK~*hNMfT78$x$GyXLZXSe_d(WI$C`{ z43%o}$KgFJFaDt>w@^iJ#)s2KQa1}SX`;43$NyLSd)wE(unu9$COpiwFyh@qN#BW3 z`UNY}uRcuM^k#8Uc<4l+dVWW!vPCdG$zc*B<4u}%f#)l8-@}jpay;ff>dJa!wv^(w zFls@ilSBQMV^U+i?&9s0^t><%1LZU`yMVlN-E+7nt5q0#8&v38ZyI$x+{lPNQh=uX zTlDtgN)Revq$}(l4H#gzvriXKu_DoftLveeXWD{J#^U~1)o0#d95FtOUdD5>&Q zC<*wO@B*CgJ8V`D)5PrS!?bLxH#8r`3_Bo!M0Z1jJC}>5Zyn4aZ8SNN8=FGO03Wg3 zH$vVSN<{c)qrqY9J4JCAJ#S}~gqqi1%AO?B!XC6^$J|x|yNA(!2tQ2EW3f-Oh;kE% zEYkn6Y-;2{fF~0A!KJ>gO*1&ii~oq-)njz+HpMjk9T2E80~w^J82xl4%4TmgaCUWl zVpIsB5G7f~*3&pI;2O!VO7^OqKl5zh@KPoHrxjirsL?IWtX8IFzhyq4VIl!)C4#b8RJHtP(Vp&;*+hQgz}(!VyXw1=KHZ}`Xlg&C^W z-3^O6?aqwCQXKdURXMqZ)q)pfb_CJVzO^82oxr02ro^N<%i9<@e{hKX>@HC8-(cV#W{9I#fT>VR9ItTe^pjDVZm`A&Ly%5l1Fcry zWY5{^*-~pGyR;%uXvlR5_CZ`i91 z=iQ~4Pjhc4#~sTUzoQ834ya0ee=6Hdni3u6y;^QPArG{e%PImzf?9^DeURsYPSxYN2n*PW+5`{ zcI(qfM@Vt?To9YcxZy>=Ok?AM)jrk&DaJ)a1kfgwQ){Jn@vx^8RKk@7V13amVS5)N zHweId-MAKE6f}xje>Jq3ucU4SUP!ol-kV@v-W*V3;z$mF)nc-ci@9oSy9N*(ptv&c ziD+uURLE2jU3l**BUj1PcALaURtJhe7)DZg34pXJ_xH;ghei<-GAp96pL43P@z|ZO z@&4TV{#Cts_@+fDp@3jGSHdbMm8|<4F;5L>vMmI8^Y?D=uqO}McvGCy=ZnZ#rKGJUgeU&aO(fOlFbqt3GQlA1xuCAWO z)c2BHK`(O5jao=-LFoW{VhbQI$Fp7K@t=@Sq>1^RGl(R>T6oL%q(WYytS|>rC{Wyx zCX_R{Y+39l%#u^S#+36xlBy)MX?q=ajY>6Zx^L)%s#cnNVB@suysO@IGe#6ile2o|PguvZ3YzdQ@oHp5W_8(xbRloJ|A zE~ss6#<@4`{yE6VwgHO^vxWK&1v^b5uCIz_>6WGZ^3*@?oBvtsNJC z%id9HZfU2_v*lX$286 z^wD0;_46|@PqaLS-7Q-FvNV8nUC->FC|?AjmIu|s?M)ZrgEar3DT=Muz}Ps}y)RT5 zvBk{5*W+_ZGTO+%ufDg|Ssh&iT=!=_6M-bP=IVMwcz-J`7YLwuHcXK`0_)(9pD4JC5XWpPMK^P9#}|Stx>q zisnF-Y1-HJc015TKCy>}WA}XRcWV>*cFHyyAZps6qqB)735u%;iy??b;D#0->w z3qMxq**w}?%q&}#Z5Z&t(#>-t>kiK~0xwkt@EpVgYUPJuL6=T`-$&xCB=#n)xxzPx zVddC1&7&GtpCKN^FnF-!xb2ZqI$HVWIp15+jaFXa;J{^7tEU^V7O3=J3X zXi6VhC3!mC1OD#V9en2aiazgDDi!CmDfLxyk~!D-RLf9N+hSfC$j6~Z_&_( zvwv$?XK4)cO~9QLnrLF;N<6c(-B+PVpDG@H)_a3OjA{6KzoR*V2U%(c4(2EazvfUa zaIxk9#(qMA0=*@F3lPUP;nsci45HAYwwiWZSmoaV&a99?le!Llh0Md4{#ZB%@;H&7 z=TY8d^RAZW4e_u|gCrpxVj^!Iis>|Xc|G$Z?f7XKbB5UJU>z?`L*-E%wL7?cVslQO z4SJq1h9NQqwEFdUzWjuBa&V8hv6hf)>vp>lh_&lHZ-W3=(!GS}+J}w5Swh$}?_*=n zytw2Yp2Ke$hx=(RggxLmtMIzr9iXpDSTB}ilLUNo7tcOe3fM|bc4U^ZKWwn=D1gFS zV6f`N1LaME3fUlj?6xE`L-Pls#NxnBKth7$^flF-_qT#U z6}3nQG-7E=>TQU3L^-V;N1@kN^}#8+@nyoYK8-i^$A(~ACGV3L}$_GRAe(^uU&z;U@igCLw`4i0Zcl~6-ifs)l@X;IW8aW>3zgp~iC4TQlN%h8X-qo0Bm2zNrp4;poyN18Bc{MJ^C zlv@(f^%GGRR1tJn7G2wkeU)+)M%{=C)Jxvd3_a_zU3DF2*v@w%wL!P44lqEyiOfO} z6^cLR>k@LO#Mfp#uX5vR0pb6Cf@veG2>3qU>KwQ9pF)4_yh2NK4RvBo^a$R)962Pj zk_*v4lcgJAT(U^$QAlhmK}n#c5yhR>Mt`(tcKKg_RY#MS`qpb|J{dOanltSWgx2ht zGX-k`yY3Hrg0$xb1Q10R`C_~98nbeVgNww)n{Psu+05s2A33}I7}bpRa8IV)ql0xA ze%`F)b*@$R&q@#^oFT1E@nU_IzFX2Du_FPAl*gSb7(!43cyuAscquGnj@Dn6v4IvwKK~OX&r3L zR)o-&)imJrw&;5Tt(Pi(ug1gf7ER?3QTo!XL0Kp8F%|Iw!Pvjys*(pl9=7*HM4H#= z`qri!_A{dUrsKe~NanRHwpf0Mt!I1&IFhJe&j{*_dH*XE4c!ISpG zz{epnO|wWj#WyhtzI+$yT&f0pZknsi8R94U>nTi9i{Z%q+zh~+jTw2oi>F> z#!A5}MT#ElYZ9(|1Z+};(Ea1zqE0l_W`<-kdbCZVHL4VUX}jk$noF~_$_NZ3?9z4W z(H+9~8gr%w!t!*KS=7ZHI84A&w*c9lb_5^J^1Y)i$tZf-kk3p7#zikpuiu zbHoQGxVMNs?Ww^-vg(k$-Uc32*|*@04hUso190{HR1;PvctvNz<#*48n5u-o%vDz4 z7DaZGGz!L-QMAr72EFIlx}&Of7fQ2I>!#=m8d*+vt#;@U(H6ko*b<>g&N(4ox5sU8 zTkXc#BqT3kKs$R$g-j}cDIF_Bf^e}uZTA9FX`V+nVvG}*m}GL`^l(QbAa$I*N#t9h z4y%R>xo_!G*$;-Zl UL`-@VpVHaxqRXb{o_~76-ZzZv;*(dQjQ^)4Gfz}rXWqcAN8WV!g|vVyZ=OR@w4A|S3L#?9?63Q(&?vzJof#u_rx?B&?QiV z6?Og1esDek?YKlYiX7RM;LDI+6fseJn?oPG0Lzd@5X&& z3{SFg1YCUCF?YAmQ*)P2uWcMv3a8A$WT6cg+(9)yN&?tBU|$s}@7 zE8?`RLl2x-mVcZXiRGD2)oujo&SyRa(1gT1ipwCbc7vHcc+YvsG9cK*JM<@_*X%v7 zlD+8L6aK$y?`E-cp36T_NJ_uf94X$a;gwXP*vSEpm}Pz^)-t-1%?NPPF!`E4cLW8cZUU_ zVmmZipc_ADm!(WEw%Ay}sC8WVgLpI-BUg((;)JBLM=-Hz?$URzhhBzOG#Bo0@+bX2 zPtp-Rk+daai=3rFK#bz@F!lcQ>7_yZw~U#=GQQun}8)&*>oY5U{5J||I(em zPsbdBZpc3`yzVQ=WEszWIFqEFKX$~8B-M0tpBhIf0=4Xhy^*O1aJIGwtyD3GEB~w* z0583XCf)-26fP>luS*v`tTC?eS|?}vdKd{ZuVOIB>u?xDmUT<^6axUdvja)F=3qTZ zJG;PCiATfSk?nmU-x>N>1!svug91! zf7JqdPF==f!S?Ni5KBdZr6#-ZV>;iaFw%D^4Nbp}>TL)B=9^7OI(pVraS}e=fMgAqbd5!Ew~< z0PAF}rHFPil@chvIzmY^z)y(>i`tG#(q>UKOw%v}hO;#e4SZ1@MNCycvC=^6IDV!k zv3;G{Gcp6KzE69oX&19(Gvwa(Y{{+zy8u+)G*z@)B6%3eA_>&t*~f>-@AG8?-&Pdv zdp7qn25GZopHSrgQ4Wfi(WjE<3|3t#E*{A~UZL`)7B@@oaQc8+iq>W<&E++yo18oj zN*Hs7Z%oya76Cl@!CzL}L-W83GWK_kxHI7^sQqZ1*Spzib42RJLR#1H~B z_0$hqu1wZ9SvvzM>E}ALDI2R~ctU|>T)G@8BaVKDqJAQ9bZ(V2jEv@@CTvkLMrI>A zO@}&rjm?nCx9?&i5s+q{T%AJScoiE1b#ony-NEI)>L85d{-4Fi0DSAnKbl|9F* z&ODtvOI->M1|3$q4w0=H$&F{CnOo_&1W5aQutBMG?$XgmP;Zm;8YsNyQeA1bU*b8X zWGa&~C&+mVK<-jdLu-`N<07u(cKztwkG8WtEj$I??QgV9y$cc~J3;m6$?yQ2?ha$^ zt|p^SIZhQXPNJ(9X8Lyr?qUNzGX?$M=qZUDKQd`kOZA5oc}ntQIL20U16Xum?U{TY z%e(OMi==J~2@HRqpBmNq(cdp6dtrUO=`LX~JBJ8fDFM)1Da3hYk#*K|A3OmmVzRTdW(z2Ef1JN%07_QYtdcq5I8pL zC*E}-an(y2#XJcvnAX)h@moP9z?UM`*jIw#oag`fbZWk4-~KaTQB>+3cu-hSeHWZ$ zsro-qjcrAX^RaIG->S{A9Sm+X2Q56Tt$xlWAZHZ1u)g&k|I!r3lA8qs$W|flz!`e@bn8U zp%8Ynh|7s$v_5j4tAh|j^O)oF32oySNtn8h3N9;iph#!9)`doP!t-=s_;&IfJuZu# zGVDZRb^>OdC)lG@mg_M~ZH}|>jDSK%CXc^`Na-%SQ=BQ{iL%7kD~`@Qmy~Vg@=X#b zI1rLIt;KI>iHM09h$q$9Q-s}<%38ArfOvYbH2+{8PMjS7IEJNP><-heg6v=uI+a$8 ztU4y_q_GZi`V(1tPBJ(csIIU?i*MAkKjYbn?{c=NQ+b%1WD_nVuX8*ASs z`s4;*DWQ_jPs6aq^=>QzVOm+42WW}xz;u0HwePsNy8Oi({>wcf+CWY2cLTW9ua*H5 z-PAS4FveuV39knGRknb z&^>l1ZXPM=)!?<^(u=$hDVdB1S04d`&VUzG;pq~G<(pheY`f+O3$oggIZ;Z87a>Yh zUt~B&LhATD)49f~qopSWbUgLNA^;Sh!dc!Obmn%zMr>Ja2bgkmSjRJaw{<5RLd{+2 z61sM#HKPVoLt7L+xjBKX*&Ztp#uvrj1p~M!El}$pet&;bK5t6R57@83D~cg2Jmb83 zA}*c;|5$NncQZ#>O{IjRZbzYr?I#r@_8(^Wk0D50V1N=vtHCi+CCS99I8%rI_Rx7G zfvMVeDX_Rnk1iz?bdjZ}@ADV_fA#WSEYV|QM>w5$(FY9Xkj76|IT|o+fkmJLXZsv& z-jRMF8=jr8DSgmd;q*pYYg(x(V3i43U0QWo?DfXh4Azb+nqyNkL8Y+*q^LX6RWnm0 zTR0PWgCe-RxI`XtR9va-<3l_SLtp6I3+^?(v(P1F2;5`|W*qLt^WRo1E^497nbvDy zD!h?E*pHY($P1DSDxnXvaF0&0_M5)znnvX6VoYT---+rl_AVA#Nv zkU|H>E;B_QTLzUHZ+DB3zB$^l<*9_!l;UhWyLls!SEs6IE_cJl0vJI@GC&a$F5H={ zH<%{)Jnkv;FDbNdv3xb0r<7-t;YDSHFvt0rmHKOFA?p}L2A#!N;)XxwW<1+^SOxz( zmQGZ`@9TJHE*Ru&l@o2|)jen~Wm5=i!cwcnQk~*-tt|`mL}KLP_t16J-AhCRY7YXi zd+Kor=Zf2@b>R;`7S(rgWKtocHp01C@4Yf#09dlW2y10qPBc>UcbPlH*=-f{E!fcBRf1cD^GvnE4K@z9l3&Jjoz<(}W#Z9DWBGf6AqwpxA>#?er04cvVMnsx z{bHpwB{TZld{;&SL=`>-I)}FrkU|hC7uD<1o^BG5kjyd}$rG7$9mfCLWAH?s=1^;K z=-I(}dK^sURP#H@RD-oS4n%!=cYCCkNv^4xT2gD$mPn-?z+AsdoOc3+$7lpMcm>9T zqqWW2tU>LS17CR!I>e%>_#z4Go}fMup371t6jf=wE)|z(zzl&O!rjel3wNImUi+t`h@FTd>^jE&C zb63`$e^Dj2eG*7G*;fCg*b1jLMe8x5hcglversBjfW<K}hVnKj#w)}6i0<@(m-4hf8(b>vVMWdy)1{`fP{aLmr zxI>l0kEA*>9GYwf^*9Z)WC4=|;wVYuR|%A+_YvsmZEFCjNQZW!C_2t!|Utpwfn{rzoEh8R7KYC^t7HQitvU{Qlj0kED@y zcj40IeQf`EH7avhb`sL46jm6TciWZOc2&d01)aH{px`x)Rjy_WMLz9Xr7Hn~>zieN zZRV`y6EkL{VI6djy)YgI6pC0qdv^A#XB^n#0C zAP$hSL28ruJX||Fo1%C;*Jilc_p4DSsQdEfRke(Zk7LBYt-yVBSRK18{56*i&As^5 zg5jVsJSf4Y~sS-t^0D`jso*gDZW4~n)5Qo3Q zuEweEIiB8{`$F;tdovS1RDs08Gu%;VY*O2h+o|})XpQ>Aca{6${vU~rO5c=nQHMV| z%|aMICq}Ll22i1@V&rP<+HUWzbLCIr|DSy~AeT3*rl2pS!4RX5Wgy@deO9rV_O45n zv9$bC6Je5n^tA*o?P-OGEd?iKeh1DMSwDO8-5;TYnBOh^m?M@sBF4DZz$G7I$p35t zuDsA+|4MJ{Nl+{Fycc>4Ywm$VR%41aa2@pu7q=X$S`U0jUk=_kII5BI!iF@Fxz=#2dG0U1 zP6sQ3nGiBbF0gXi6bg;A&(5%Y`E_~G*x+}L-hzeNGNq%?rc=>VR3c{*wS~((|naf0lJyXdgrTdQ7JLUS8r^(jx|H) z+St@7LmB(I;Np$eul_4RMe4}AOHX>AkW*NqAEBC`mHG_GDKE@+lN37ssEEaj=?N|< z71v#B7xPf(fBT=H218M^_#M*%hWtB`=(geM#n0I7G787Ap)6p{^QF^BsMoQi;Q&s* z3sj-uk-@IxRN9(3l3jvQ+W1M0j}0Q%+41&2{PunvL{_+LCWN^R@k0rwD~_6_okMxE z!cqyHp)TLuY9LXd1Ky!8H!r+)DBSm(-3maEo3y=z&myu#tKL-*QOf zQUM-wI8FEm+ZZG!UHM&s36{8Kja|0Ye@cs{ympXirN}FDm^H-+fG_@{Bf1?uAp#ND za(*+N35thmVk#d^T+@wUWT?6os@(%S0GWmpv!2VnDB4m;oLB1l@#aFeLbF(xtRHHa ziMrhLDYjf%&qtf_UoBIc6axJm(vW?XkNAAhz3)i_gmTk|t^XJ%g+RKn3by_Oh&s4p zFiZ`kxBm+*Nh*Vn2-&}LQvJ*GnGt92IFSAh)i2VyB zj`wd?T77kj?Tx11xAuLl+OvvU^grIO%^8(5n%nEPH1iJ-^oz&GU_|w~>Ae57ht=Yh zMk4nGX#vm&w2>j&>5_Buk_w9J!!rwwUhV_K!L{;Az==2bi2fh#RIQORm=$3hI9@nM z_<|7=l|aoF8p~@X)`D*>0u`e9#OaA92VOu^x;OVET~Eo6sZbu7=5J~Kzrq9}4(&jy zCAX8Vxu7dv+pEko! z1n$^*jpLR&7A15r!$@;D0pA;6HNZ7jUvvt1VDBbc2ws4#+94D=`8J1lh}V#=S}~B- z;PlCM2sLOiyZi*N&f%#VKJ(~pITyMnGdF=&1qBmN$OMAn45np0A=39TEz{mJ;}Tn{+G`4K#$>LCjdG6?4}kU z6N&lP;LM3w_I+>cBmQ=(7xsTfY`VKEYKIc+-?PHWg(ZtSk!5O3vr7X%cai#4S8Ax^ zUsi_Y>GkKWp1sZMCS{2PWljBAR@OJCy$mnPQnF zUs}zZ`fi_obDx%V%wGQ^y#?tjYs_FS3DcEFs0ps^Z?9%yguAp~V^UE4Xr>_dYOp;xx`y+u30eJC zv)nFvlb2KywYk z(!V3cpD_dM6d@_@cjcqh5MdAD+$(2-I(ZhHWlAdS+Br;%srin3Cnh#9ilwL6e%z4d zz-P&dCD@dp!wlM-&Up{0pIyIV(uNq_7(ys$%pC_iY>*pI9b{qnL|wyCA%9&e1RIs0 z5bz29x}=SsN)Z!*O!#*Z*0HAqf{bfI|3yNWC187{98R58gmV7f7HY<{P6LG6F7b?c z$%!~dTa7jcGZ~u~BUPs`GvxR@$Wg7k)s`LyY^Gllo@pP95Io7GoD*3=!|e!?4PtgA z40XES(9Ynv-h0(LANwyG?{A&NhoB!@zbjA3B4MEvl64z&F1O9Yx^t~oBU%&&FcFL% z{poCw%d@Pr9Poy!QUsWNX0;JzQAzD!$+FQ3Pj<BZiZlqpp+E~`{FV4SFv@{eBkS$ndfn?JDdKy?&iDz*Oun1rz%VK1s zsKWPcV64WyaPWL^3&M$xStIzSR)xz-cikbI8Vy}XTb=V%de-cRYduK{h=^aAJ7-zK z?&f>3P;1QxF(H@<6g}bU>CACEi&1JV+Donu`E`vL0BSEhP_dR@%0q0*>xMhEqnV+8 zN~2AStu#WN%qwsVQi{37%VE7RyCPi@Zqybq&B^|D!!|LQW>STKks1eL#wZA4-w0wk zSiL1dAkCXSS(Ak_Sz$xL46n7v9L_M(>jFYuFLE5JeTx=X@WA-228eI{TeXjd3(=~u zwf6!VyqS&3H9`8H4W!hD!fVxVQDg&V;Uoo|BFI?8-59j79WBB2G!!p0m~Z>?)hqOIHsH{1-(s>{nG=QxWx9%UmY^0G;KUeQD-_4l>aWRaVR`%pzs6g}BH z<9jt9)$I+?jL}wrX!E7D!rG!?ESKn=ot(?a++>{kH@#q{nW4tBK&JCM0m52|>~H2C zk`%M?irQ+lCS~lw53a+dJ2|h~OT79V9YOF?d({F-dRe?G^sRWe!M{PtPuA?aS{ucv>?}{U#<=TwpK( ziH2+|dQ#TJQ2w;KK9|H3tyd(?omVkDy{YJT2@y*ULgN$7!$0Ucq_g^dpn$5HV`s5+ zjWXNFKkMgn#L)zh+7a=IfCxUa-i_%66Pqc@=jY%~S4*wQc~~T#!9mtG7nuY#dhG*p za#i>QLj2L{n%8dBqV)x6q)7jW{j&*w?q@v|0j-p}k)6qU9mt;o7*wjC?*KuJ$mgrp zbBCVhLRna};_%OohGlDL$*p*G4{5fk-VFRcqr3FrB5xB>EDYRuKJ*(|yZFUB1-$MU zNRPt^B;F=L4Eb`X(P+oSQ>-OtE$xr2P2w`#<{CSVo~`7U&k#<)8{}#ZoM){(_&bAB z`rYI{|Ii!}$1Y%Wocb)-)bY9boScVpR!>aHxa(OM0}gKH^JZ39zKd8ADu~0eAE|>C zztY*LQ&aA>Wu+D-2s*jjfN@wjMCxSon}+Tc2ep6Q-D7z7c&f3(vE*G1EnQtJYA-M1 zefdV@hX9fBzneC&2?jn7;0-GkE?8u+BYNf1e}H{wvdsHdYz3{vg*q1!B}AtWLL#X> zf4nR%LFyOI$XtHQJ2j3)^*mKlhwZ{yt!-zLhQDU%DOj4IwH03$o9wNX3-c~4yIuNL zs9*M8P0yvMdQ-Fy;WE0hr~N6i#`P6_$G?vB_gXK83K1UQ1MX;j3; z6<(u?N1ZdnV(&fQG)`cgV$YY7Fn|WuqBTs}rYs&0|0VevG6HqnYm^}|-4Eqna&(&E^ryZQ`?H42w{00TW7QaKone4*2A8aj8+4i&hW*gU#1GwaF9&J0_ zqVZ1H%a=;+WkV<3O&}Z^Yy^c?kpeArcHdLT{+0{=L0HvJl>Kz=n3lTrmzd8_I7 zecQ#HJ#I-(U2w@b32mY+>*0&{wo8Ri{y-o_ecVgH21By;bXeGcYaR(J^pEueOeU12 zON7m~g%hfzDkn*oyQd3Vj%UKVDwS9UB~BxdM!yJL0i)<3tYT+hf9x^UK{IlVClzxw z8A+m*aBQGk|5Y|cKiSfbT^h}opbj4KC1#_h$Z!qefQ`t0s+{*-AYL9JK=D;n6Od*T z%FOPyN}2N6P(Sx*AfM7(-c@4?R(w?cdw!f}6SPeR|l5Ztp(6{1TzZqxBAS$pMt z>$t=sELcE6i}BxK{}b+$BZzdVU`qJsCg6<(E2dLtpuRK?THtZ74KjMHv4LUUm5v#F zH|owIIdAzgdY}Fa_BV$kV;hWQaN)}>lm4Drb2dxst7qxmU}paL9iIs8d!XlFE)_YB zpQe!dUiItMU0v51XpiJJUAawD0xl6W*Lzazaac0MVNGXd?VSAnK>NuYcr!*g zZmqg*#|m3MhUug`Ff-td3-G+!r+-_e3l$sRm>o_hGG~VGY~t9mmYkYfC)TLsk+&|< zwMT8g{>PEISC`1UJr5GPx!M~V2Zg!~c9)&*Ahev@Cptb1%F(d=F!<^-?1z@5ez$W< z_FOvjG!j!F_S0F>IV_(Uc2unWC2$(dn^|`$EUp-kKN9EmB<{ow`2L;6R*y_a;upoV zR@`j8@)&@D{f>~TST`3AWa3FB00)Qnc(CxfDXdu%1VL;JO|#RKV$3ZL_N)fGPl%9BPeZ6WXF@D2L$Uak$gtlWiu6Go<(b@;8@ zR$kKRZ(LK?+bci+oQim6AL!Xy$3DRX+r=mUtG{FQ9{mA5_qYzZZJb<XP|;=5r%!Bcq|yyd<=0Q*r1 zPCrCKk?3h9MEA_utync_o@ALbnZ>d&>t}AgEFt+Rt7n@GMoLS33+-Z^BLre~2L~y( z3zKEQtK_K{M6OeZ4QXlXz!7z0Fx}Xg$3Q_CiqHK_=b3q5pB=x|cfJTA$at8P7ikoT zE-*XjX?@i_4{_-_G%(fimi#cR{Yj;M$Zxm@qG40?^=s~ZFagn0>LW~dS&9hTQYs_F z0(=v=)07JZod@A&6#adxqMG}9HUK1%i|I!UzfCkato|pikRTCZUR;H*Cj_dqkYe7O z+)d%Vt7s3fiPf97H%)AZ=#qo5hV)RE86A(otVW#mlq-91x!I39oY}1&Z~dRIEE;Fw z48}OZxU@y|XymS;28(18jNySk{D9MpdmQKl<)Akm>e&Tdr+U-~ZbN*91{cuSyEx|? zdjb15mE7G8S{QZG4HXwJUTF_}8JM{xkbW%cEf2I=pTB18R6<>HQ8}D^w+GD*H&SBStBp@++Wl0zmd zumTZG=(8HeE5V0)X*k)9hXC}whm&rHLR!ozhBoPy^nOam%lx2&qAI93uh&*;H&km0 zU?m*ttI=*knNTMMv!7vWDAmO-oT%x|Bbaprw|9eIBw7CM>SCZ$R&YJaMYplq+aXh! zM*B7Z0{|?bquppO?71sjrF)^=XU)LziwzM#;lT9ZeN5l^(E1SioqIk5U1dihQ#7D8 zCx_Ti^xEObO#~+TOLO?4bk5%w&H7GkQE$O0nwN*!B{=*|uykGp55=mm^^qj9)HoYJ|5Y*m;o(DBx#(Tjys8w#y*dogzc@H5 z{qE17-i5qf0GXzSNs5}*dUuQ5_uaaaV}N*Q549glp$(81;#))ayn6s}z@yci2fTTH zQ!T!>k9+003llrUD0ufsGyp?DYlf)1UePmyYukc1`akLOhV78pFUYG-1c3_Y%$JD)&#alc zKttv(=Y93orR`;`styfEm*F5veo$vA5ez-DSrasO%vfl{S8q3zaUT8pV|naC*i(k_ zoEzD_JYUI&K>OW{kfWnmX+?tm*?hK-aVi}K9`Yk;;4jy6Y1Z014wu}5F8eG|=)HIH zhzXST|H0Uf>>CC#Iq`K)GI3)_bWL;u|8jB*GMMq5`!v)(7r{4lcFf1QyM`$PT^ZMs zdA{N5s1Dl&3;LaZBzwe;77Od(ZY#CzKleXG3mi`d9#OUP2C z#*t7T>Ttm~#Y72&Cyl%Y=FJekobuqAlZTG2l#YFO zy`g(J80F z_9Bd=RUdjy!K>CBN0XU`75wNqFpb7eDCdBh*GG07GQ|_ zEuz}LKCSZ9@t6;?t?E$NrQRPmKayuZ5`5NSDA51eK3_8;pQ+DSi|`mCdy&aPN1hjv zR&nE*d{^1eB&}aL?THvaPz^2Ggn+1x=xUDLDP%LLS(Igq1E2jzhF1Q%w4?+IYU;VQoT$F?8geE^OGXoE38%r8YIw*wtF{>)42ZF5Lf| zv#r^7)Xs*KRvfCEW1cM<`*t-|>cF6C-a@vZcsv36jY@X#|93%e;PbdF&DnFps_ zD+uL%`de?k@e>Y$Se=(QiAfY8o#nnxKSx~xTS`4&j8q;voN=QeI?HKbeqng`37m&~ zJ+!o$`zp9!Mj%l|vDUVSBYS!rk|TZ(kybc9`Y$S}Hqib0qxNKFkhv2T;r08Y2T`ti zGi7@mjakuoPiS&HXIkbjOxShRlI98pZ@C4MT4e^2LV1}3d9{>Wms3>sF= z>P&Q8K5<(+h{$pQWsa9XMLl!*FAE(%5wO`GFrEO5CM$g(=Ym7`e@9&WV8v*ws1@<1 zL_^6UwV4j-SLIpnPE31t-o=&aWoQ|LGxsdpaz9x|7i8!X7h@ zF#bxvIu0g}{+56A6MhG@`qK;`+|&9?z_3B5DYEDD<{O_qS^N`TJt8+YP)VT$s?h4}0mA$?VFJ(tVYwZV*(iIEm#o z&?uV%fGDUIXij5$ClJzq9SF>J3oZ3$CnhdmlLJINumgtv5Hc4X<(W$IXznZItd(2W zRP&NG#T<^w$3a-R^3I;}97ibD8>(EZ0{HutsN4KXCCuIpU`uANQK0 zIqFyact*xvL%tw&cGrg+BI^U{8#5FDYBhfdMr(}$crQ1ANgupbYG>XoK=YfiP?7t% z1HFHD%*@1XyFv_ZgkvMpx<&Mr(znaoLi?aqibQEH+jwD+1r7Ot&*E_ovga{H6ofSH z`+i)i)8h@SzbrjS7^ApJ7>@Mv`A!wTSvoD3kByZ=5o>pJ?85 zftXX+owKzVxBv0MchxIQ{5(P9;Z(4bI(0o8-SHeQnzb8e+wZ3j8;&YTQa)_vFz2$u zU|xdkC9ENZl#2ULo5FNgm5ZS(qtAb#;o;iJ_T{bN<7 zE+pt=?^71O!-OEq-go$$(hl4y20{HxF-+`ADJq&Mfonq~K^V2i%~QNFeQWV_A39#5 zBvCcxf4htyQ-NW6jO=VGE z%rJ!p0VV1vTMVRG7O6PX7*TinCiBQ#{Zs0#1~HRA(q3b=%>SqpY)IQR^bAe_s~ozV zziGn{KA(q|8%D(OQ9Z^Pm zh#8T>y0Fq2lafHT-^d`Utx=R*v7_q{w)WG*)uxrVcF`ACHTwdp z1@b{sh_G94woCm4Oz18D!DO$Sex>Cxm3I52+jFXW0K^PXa6(H4^ux1nl`VoS9-CJp z)RX-fr!=xXf}NdH@rZsX79U7rPh>=PE^(!X=m`*B&*3;Nx4yobd7U%eaV}+GLm-iU z)9kT_|Ngv-E#qq$-)z19R`++K!UCyZA(1&Eh}#*Wms(m4l-lLZ1&so$?*XPUg&_UT;<9`dTA)Ifg~~$fl=| z`)jMP`9jZyujxIJ^70rXL{csh-9AXX0HX;9pPaZX7*{_Ocnl?do7O$eK@C@6{Voh@jwYZYcI9A#~dsUcck|; zd0M3lzU>R)o7d5BwFBZT0U#*4fhPhLYNfNv?AT6Gr^__`05QTA(F+gE;h7x-z#sXW z&y!BtXVtiImP}uSf7cM(yURM(TxMx=2>5g=PB?Hv z2v<23pD&`JdoNS><+|2&4y}TFDdSDsQL(HpHGze*r?g}YPc_mwzy5#R=Y;+Q9f43| zA0odo-)k(1W-Uo1s;%6Ni~Y|3Ih=;l9mXMo3G}7mz>q3vB$!L1%SFtM9(;L00fHe_F4KZinjOTjNb<`&gSH$4n(RObi`olBw2Vu+W>@{bX&n)JV(v?%B{vV~z$h6=2(0D7vnRz@TDVmRKg*8fNIkzO%%Ur{=)3+YBmnV?V_4ReF= zsiTex*<*j`;)D1!D#Q%(-7*wT3>&});QEcuB}w;(J5-CE2$$nO`?TvbZ8er?!%z_kBZ+5@9B4iBMUBeA_b^}4FZ`r(8f=Bm(BZh<0BPX zh}AHU#i0!|pfPT0aEHh*?60L zxz6UJh)^i^CKxtYK*IL&Bw3i`IQu#Ks2Wu>(U$>6JbWN4bM#o-&5(>-;s)}ced-pChC) zM%FVDBNTJ#eg!{sz6$08FI-FI7V4`=X0Z{MbDe4*^LKXPN5Bf32r{=Zv!p}sFJK8L z+2v$G(4I_)pr*+WBg8vmx7e|E^a!#%Q9M`r~cibaYG_CTm4(MV#%Dp5pLc z3aNn-txOe3ll#DHfo`uKdO*^DU)}Q}csZS145An&SYTIEHj~Q-$HL$Z2I>Fprq+v97a)@Fu z{67Vgo1)X$v&Y`}1dz=hk{GMuKk7e#^8)yj1Zk!n)NoZl&GDIf^v-x@d}9_s7R@M) zIljkm(2ur`n|Z>?TGLN}m%5g#jkF*((TY~osrPZ!47D|Y63)EcfCDWfGd z?fGhY7S}O_N`vcc>Q&$>sbYgDC)k*1zOos$-yg_u4z!!*H_X($|CN zl~>czKZd-86_HyfixU%>s|jIHus&%PvupJJh1fKc?>psxS=RH5qWyNtWS|lC`jMLa zn}Yp^D6RqvkJ|EpM4o<1Ms6c}9t-dZNnJ9oVhXbN+wxCR;1?IpHs_V-e@lAV-;t1p#qYf~ zn2}CufNL?f>+tqC);2hK6Z^I@P}5S<6{Gb(N+d{TxGK#<)Yf}X0?~r70D9o`3A+60 zL#sWueLI@;U)UImW*xe5J^Uo?rs8;gK@Zgq4`$-KrJ~XEb1{mHK zf>G|C_P)OqOw1=`t(=ctL(QlIHRe!Vp0KjT3Y1RnEVq8ynh6m_sC zWMQp$kHIpW^VA*i45oLU zZQY_BQU_l5er|9-@-lX{6VMP6#;nXQV-={Uy1ym3xT;YKUzr)EzWgC7hhMwC2vtfd zZA6xk4^A^HSS20#5RZiCnA-{nA#$FzqiKfAurlA;aQ07^@d$@zyX$8+ZPhNFA z-fD@7qV|9)Uhpe+CJBuH6Hw|1ha-NiJBL z&{dhqL?ff^ypE~nsFCa|pSnJ%xMcNPmm&lFE~J|F5+tHs zWE|`Gk`>f<>GEa>STAPh^50}cN)+14$>`}gW4+>nTLJ-nc@GSJ|IJc zwCsd)MH*ZszFJdh1MGsmEl?x^@!t5_ zoQq4;Y22cL>F-5X-wnbF41<}c4D{6d%$hY{&mFkK%9-}j2Cf*EhVqmc_G9>~>0Y4Z zmhb-;q||Mn6XF!Sg2PjnhL0x`XQ`+8A$5arkY}JaTCC8HsD%CWLHngnHjQvjo{T3m zNRfTxMw#B7T$IdRSU}-N-OzKqyKe!pZAbm*rOB@nHyM^Vx^Sb5gLmWhzt8sNSjPei z5jo^g4JK4BsHAc-jzQn-wz{QXC04Xi6gof959aAH3PEn?G_eOkoGMN97omcj_9e_{ z#pr^{$|Ff@X3Ed3j(@o@ci+!78!LtqvC1g1lGb#O;WwmW{)36VACD+YxJZf}z&Kh( z@L@2D_-hcW2ek&*@1A6Y?$N2yeJfz~bYkXP|K6FQO#r`AA3uN9n7gLW111B3?Ho%V zlz)V{iC&JOXHqe9BoNA>XgJpQe%@%c6xP-yW-eUo^2Q8vdWMmlj-Ju%;_zmLd8G<9 z=1_Ye)!Oe(|H%lN`${_d>xI}A9!i&*@qI2YMIs+R_cOTp8=epL3Fh6P%$2DP#I<=P zu$aA~Nc<E5MC=`}48Y5Z^ zM*P3U4jfYfxW3|M(mvI~O4j=e<$t*2DK3>?0M=Bgb?>T;<`1De5}zRV#?DG=faLnU z;89%!lh`cc^6pl({N^+-1#*mMG@G|R%)YH#8!LI+?v-Bn(<1gqQlQ(Q8f}d}C4Vro zU$^!BGkm~O9*d~1659XGr9rQV_lvI?<>iNlab+MsOkSsu`GlW>rmBUgnnbiO1Sx zP=>QSNfwNnCkP%KH%bkkdESI8uG8RRv;*fS?lD>}PDc7j0)z~E;#$~?6`^sAy`Mho z#Pcys8wLApj(D*;{IeucK)D|S2a$uzz1NN6#Bk#hT=xB1r6UK0;<=?P3jhDT<4rw^ ze=Qrkd+s!NH4KiJqrFW?%qJq0HchR!xBGy`NosRTGQc>V%ccH`l8= zhKF5(7c{r%Xl`)uFD&%Nrk7|-br$`F+>?i^y1bdX0H{kTM5%I{29AfJV*r@`d&fOx z_q82gyE-MD^5n6j|5Dnb{<%aGe^8X@3vAwerpo~n2G z9RK)&4vwe3XHR+WNN=sz6YbOOmESfX^NlyB#*86SFg|LKr_fXo`NY?jF2q~gU zR3lRKf2Y_@#g;_~Y@7?DJxpLBd6nQx`2!a4mF%lhMtvnx6J_f=P!e`}rUU4gd3B-} zWij+vmaJrB@jBi-rf0V&W<~ltcou7a(RBNVgpX2wo4mcZsF0%xnAGIu9v$>!kC)%m z>2UeIy9~`L=!9Na_W?W1_ieA<+9dwIk*A%=zZvay#0UPm@ZMD#-Ry24AEqb9xS{LgHEXAI^7C4 z&_9l1Egj`S$}Q@j7Xb%mJDGoyTR+IG~#6x9hKH(w^9Rc+LDycR)|`rI!16iy5Ps# zA&REwH8%^Rt_PKZ`g-^|o`=V~!Y~TKzp-GMDukogIA1RDRudOMOoMcgPw(wZ4IzV- zz0{+t&D<6I396_hq~DOq+`I>Zj^UptYk`?(Z{i)JVna_q_L%L;s9&QrgjlD9seVBxaDq_mz%XOR*rip0tqki zzoHDWIQ{Qk{F3@vI#~@$_8wQ21tseqn#wkl=PJFDJ40CV8jWvv_$CZL0j-d1#n=Ue zsmfv^7kr;fBo9Rbbu&;^uf}XB1JF8e%h5=|IaJt_u-o zc9?u6ABLjU3}>(je4DVB#&9a{`YuuF#VmB}n5^(YH>HoJZw8%3A6iKLVPt}?Rq0Je zluc7UU|muKe1bp?lRw)d`eqt?*(X8XZ#L^gj#NR|FOI*RE!ToN!tbA{yPLn2S-DST zw;>9VC%8MDw4=_5rUmydcCb6k77M@}$e^KuREfGPgyoZ*m1v7+7Q+b*ZcMO!rZt`t z1sN-;Uy-nE?WHdadu;Z98)6Z*Wh~0&|1(o!6swHN1OTR_T*6r{+4M_sEqlbPsDt#(%Zv3%JhW+2& z=G7nL5cL^(sSYsclCf|{D(wzTIdMxNkj+c+41*%7H%0v+i~5xTrUL0ZJ`*qS6~6t` zs@eM;K0|%q^AAoLNMj4F4H+ul%Z34h5g{{MPk8V{4cP}DpM-_==zYWy6CCtrdbkWW z*#=wF`5+>p70i(;qadd@$1y`~|J_LUk&e;16FvYkc?_F3@CDhEU!oR5{#?DJ@Tve5 zP;2P3Sm3jmFUd@je*vWtmEy||s8 zNj8pCM9V$oT9r#Gbq=4yF1Y{rG6_Lg>27*p3Ai3oysmVtj)$M93b~Q^9)Mu;#TiuO zXgi^>@eJ=wS`cc$n7jzD7d;_(D_i!V$Y{%1ID;YTyBacl`H6~K_gk#?aHckdk=_O$ z3uHk&P5a9l9|AFmydT$ybiki)gH&)WEv8EWVaA-XD7#p!Nm)zylNHXF>7qpmJPJM2HOB}&3oqI~j^;6XoB~mc6dYY;no9*~( zf6+zgur=W~Vhd{>WJDUGuK*Z~3VsqtfKf$D^r#&uxPY^{w6Q}0rSiBhpANE}R zXzp+2Zo+sKywVLMImmeA6-Nyp73iJ6ekZ=&2!nG9_3AJr!91bJ=(EEGeK=LX1-4KA zDbfFR6(vJJQrNcvQuMY^PWLf_5KTgnmZAaGYh=!IyyX}VrdB~Q^M%6n3Qg4Z8>Gvc zm5Nm;f*POzAlnRc$sk5?cjGhHm>6b^HSOaZ{Hx!HoQ0-LqzK0;NlBepwkXZ1E;lv` zWHkIo1u!;Y+eGSCjGiO+JSK_U^%c|?0-pc~D;pP2eZt&~I5j@>t@U3v8PN@beYOWm z$0EZ8v=6@C*E1egN>khdja@oG1jRAnIU%>8(zQ~j;rom-3SBA1O(M`!SvUN z`qwB~-c|h#zJRDjNu`ihThWVLQhl0S-INxZKSzzu-c~G=067eUy~uuZj*_6XQ&U_` zZBca-T?rm7Vy7CyVQx{PVH)Ag;u%>TuRhx{Q9AIpX3*|U@?`B13CWB9-_F2|y3Atw zikh&K%W`TdBl4n}vDBiM5nl+Jxe9#&6aRAQ6CmYya{3Z2jneY`Bw{@Q{(((ba2=E2 zI!ywzlGcP-U(Nz1w z9xZ2%rN_cVd-L1OcgJ=>bdU1Q8u^`Yl;nzwpWO182k#kG{KwYzz9J9ym2*8LI6_G` z92f%Dl^|$#&D{3yZT{Z2$ngEBnO~6eA4_c_^fMTjt4sum8;hRj6znr@gn%K?I2p8O zyM=Wntsnj1b0@rf5Q(*5EIBBlPV}gI=B=BTBx!!+y0h8M=_OE_M2N`&Q82F0#9AIe zqk#D1#*kB)f~Wq@)Y8t=o{W|{Zde8tCY{HxHUgca3TMYx7-qa-1Oshhc1J%#$&*NT ze|1Sjw@EJvb~E@&ueDbAC47hE>RrWY;HHdI2RY9~|KYHkZYW}tKg!OOdB2u$1zPAl zPhJ?>`oPBFcD~p}EMPJUs)J3THr}&U^v)QO<$rpt`qyn#_?XNo!hMU>F3@uZo^@9; z618VnzQJ>9!J7Zj0r?LrMxk8tDeRyrx%!)K@iS+0h7i)C<78;`#El41wnv(T8>R<5 zBt1lV+xqW<(e-;qNnbM+tG3qeiX}M2%p~_78#seAq^)EM{YSsDj_NSgtTkks{%s)8Pz4@J7*4J-y%K;5mU!#7?# zIl>&ulM{PhxvXH+0VJ=@)B>~=AKkLMDgC*-t3U_`2KryPy?>F)BgpeF(ye*W2+MV; zF!JpLy05+?urU%Yxp#pP9YTup-fAPT+aI_uh2tYrT=l(~0UHj$7`^5+@a&hUwShyn zIX8VFR$Ddsu=x`de5{UDBWoH#+BrL`xc#e{AX;pN$f&&k#)IC3leEKgq&Rk&44hf%v&|fxUo^M`H+oXRCPj}LeYSWc z@!gT&Z6_J?e;cuT(P)4N!f502^1WV{e4oXh{6~C8ptgiTai>@X>Er|5mS9|I{ZE~` z{jZJ$nyC1tez0U)!=S@O5@*aqD5lOTKv$fz*_8}!Cf-@DYh)qv2IJ|9a(y-MZZ3+= zhb=^4Hpa#{2j%`tVGN#cvNC{C{!#lqzR2@Buc55Rz^uyu#C7^HmlF2(Nohpd4@BBA zK_S%_1e!pLe%dGNl`r#{lCniLfF@Pg>%cJE$HArE#@8L7r^GV7>8E4zuRg^Apg&Rc z%Du)d5-EQ?ct2GR1Iaa<*-NL; ztT79&Oio3};+w!2`SjLe?xOd!%`cEbgyO+lV+gZmG|nI6nt|h!^beaL~9`@>q9gGjl?1_EwEBs9((Vy3?jM8+p-%vHP58$_eRh z606=;G-y+$Xw1S(qLv(A-hbkYAm2l6FFW^3hkG@zIhpuj=4JuIJkj?Q%?SKOP8LTa zb=+IJ&XWTi!rHOMa%nN5q-ruKo@}_Db!!JzqoalndSHBibzfU)BSV@$hC+bnPr}qjU zoi4$>lysiEr`iaAaB9%!SLq$7Ih9tI%Q>!7n)DD)aEnJk*T9iZKAuVTt$%dCZN0H1 z1lYhGHUdVvxe#4SL=6ssdGW5?FN7(_o|@J?b-SgT>lBmD=qmpTq0<>hY)T;HC%h~C zPq9b@%jgYt&HL6Z-mPVO))^Nur2LIi%7c1Hbz}s1BCLvb+aiNQ+Tg9NI9{%FJQSTA zcu88B;!Fqc21$d$Z6v>5$cH$hLuz_Iki#>j!tz}%J}xDMi&b9CSJOMeq}W8n8Q3** zFL%TM?@%Xe`X(zUYnM@FZEiTP7M&OnX}46Zr|S%pd7~Z8s+aP&nD`1Q|@*uavc!O z>DEJj{~Y?7zqc&3tFsKiGO9(QdKo5ufo7_tjdkNB4sJTN8Mn zsTRN8*HEc#<5c5r?hJ-Yr4y5%&%-3?0evQI(u&zC5v4qM`Z60-vadEzTK~*mr={QP2;F6Q71z&CoB%~ie#P+W&u0-KDG0ljn4&6!K zS;)>?m^}bJ1;dcw!TSV9An(|>hVI-WvJ>%!Q9WL{^BLWrBVnGM1xg>6Yz%Q5*a{?) zYK6brWOzM>MLp|MJ~ojTIkE7`4RI_)Ed?U^!TTRlVR3k`4}RN^H)iD#hNf|0LCVRN zk{YgThSUmdP4_W=euU5Ye!Uxk$F!qA$yNB@N)iLC=JRqQ*F##}SamS2U8=BKNO zh2PyMNEtJ5&){;#&jjz6gp}YZ7w=Dg*@eHDUIa3_)d@vm)Gb3Dy z?T;Bt;=I(59=*jC!SqOOYyKkqitGPLo)97KY?|tL^1N72E7;r2U}XcyOryoPXzWgc zXY?6_6O-E?hP-M?mDs1yF^LhvnjbOwQYlX)_0}AzMEaPIE>Q>+GOSIuMpOeLrrNS& zxx*(^)2eeX*n&-+rlDc;q?H+33k~8d#-W7DrvH#JiW2&HJB!m2-%Y8793HopIWsE{FSjNvQKQ5+xobGAo>p6){pcT@@{M&Us#I(sJ0X{bGd;=jW2ZVfy9-e2Xyt z5ONYAfG8}U&f`JmaveZZPDwm9dmsBlG)RixhxjdQ$PyxVa}f)bfU`7TS1Brz_;k^l zD%s!we6k#qx|%LhniL#5NU0a~9+nS&wGm#-a?^)4AR33xmm@~m0!ZNgz(Bl*1k_T8 zLt_U|*U&OOXpWlY&D@wEGpO*@po$hfC90pLw=<5Ym6(soj`*5oBWv zmh9~HU`!lBs ziurP~Y+r;~-)w-0JBFe>l5R_N6;|iIubk>L)&Q0(13bTM5@o`NkP?ZQ{0_an27#jd zg>gB^ftKH~?HI??^;f2rM9$L1kKs47xz$ge=J-xq%@aaJoE|BzSHMP!Cr%4nH#Vac z6xdkKGm5Q<)X#Qyy+Vqijm6!2YN-n`?Mtt*}nlr|l4A@d|D zZq$8y8%=#nbE%6wgI_Sm+x7&SD#*P#{EBk>I+veCeu}M##Q+{x%!#lwKEvW;!^U{$ zHu8T2$$Q9smz3H6dHXTl2hT6(6w@#r=*tCi{L|9$G1j&I_@PZVjg1#9gCd^PmROHYztq3=3)Zqu_J4px?wL`kgymuxC z?Awls%rO}V?nb2PO@I2MiXF$;bDHbwrtPL^bY5lq7Bi&A<~Uybip(sp<@al7`6!K; z?I3oVwpfq;3g)r4Yy6~?GIlL(rEzyWL^ICL?skdc%`OOFk|)dCmqVw@G~FbpIMQ!b z=hZKLdH%c?y)mpvMLwhukG)myJF0gO{pu;o0UToT6i#N3QzRER*NpFZ%5LSQ83U?8 z+OVQnT&8T*$tS=-L(#yhJvb|iPQ&-;X)^Q3Nwt<^f=9gqqqlJqQovJ0EsEA%roURj zF?2ze=W5=Y&Wyckfo@T-_t!`%1jELVrQqAF3cy66$`Pp2yP%GA598%4J8m6mhc`9v z$5eo=Q2U$D8q!jTpGS0FPx{V{p{z-@(3nTt;ONvYudO<`h>ytA+JMXE&UJOQRH|6d zWl~r@L2}dISfCQx7^sq+F|Y?W&E&Y-zeeJHl&j@Y)da;*X2EfS4x5wr`bl{wXG6?# z6Cwryf}Nc8qn4$ZfSnEuWS0UYP(IsxHB)Bk(jU+nQ+@g`s|%kzw3Z#ha+jQM@N|+$QOv!Q}I0Hk!*gx+nFT zbWh?6ImBH9#d_)+oXF-Y=BMzLts!-QM0C3@($Fa4LeX$ol<1R5mkszACG^+1>9wMChWQ+bgVD!dL3>xSz3}*oL za5=2BwX&Cw$$-ywT|n*1_uew?wlIIrhaXX?L71Mm3ti zAEXW=#^O&M`V4^sBZH<5O*4@-zzVzrf-!X~_sXC+4BaMQ&v#4n8j6`<#mJZ*B$NfB z&u-Q!a@-%stN&M-&$`%UY*sM;lW-~0;59TdyqJSl-8>MaJ?7qs3X5Ri*KwG5fus=M z9qNxBjO;TJnlyOj6(pv;(^knf8|B=;&$$lcvYKHQdG4#@OF3Qrn>v!3LjKdO0V~Vr zA2<)w)sBRt8#_PzkTF&HDiGt$(%*bT&w769MBAy)b=RlMWdWEDL%406I}uNb>|A5p z0k^uBi6l@#uv&KI1nYsLv3o_?!SG1vQsK3z<_Bs9}p;>G{>REUQ!l=TygyxxhR+c*AMBp|( zTd@>im^ZT;192JjKE!h6Ju&VnJrCN`7oQ|L1N-DxYP6a#kOsuHd6)>QDXNh)sX%5b z>LYncO1u%D^%;G!4jENp72V#ptxQO(JR`}_sOs45VJSHpgn0Q|b^UDu$TW_GE}?AZ z(8b_WUD?{KFjV@QDmh#yi}!--*|9oZ^VP07bd0n&p<6vhR31-p@Hw!ecttM92iAJc zSG}VRcFR`-nO^i4+cl7%w%)VJ$@TG~fUc1gk=H9VQOacWih|a33V9;6?)LIU&Fga= zQb_r8ND9wmtPRzcG8SjCt}*GJ@kyLL0qZ@7%hQg|g@ccwXR~N(5w1md)mjCbnTG2b zQ_Sn*+xqXJ5&davqFGzE%)*Tw+$h##JhBrW!@F$9*9su@2RT3jr?3r7 z7W39%SzedcBA}}+FPR^(TZIuMfnTEbyA@4RYA10Ltt$j5HX!VTk7Dy!+G2Jn724B} zLD@0DD0>8l>38eL0{|zwn8y{)S#3ayVpQz%=y=6Yf7f{NsI24kF`uJc8mj=0;sI`! z8D=rbDqYb`GPb%L74GVziJ2d0Q2>`n$&=)aQA^+<)J&`R`>rh zpIfw}pFC^JT)3yq3C`Y{qZUhc+7i6E$bCUpW``fAkqF$g3wUCouH2GD9v% zz;xNVt5>|UeTypm`00F6s&bON%?yLXwA$U3F?ZP`1nU&}?SEN!zOr<-y73Mx4Q5iP z&%sO?+ZS6SV>%*6sVVK;xb}=sQ6T#SpOo$|@?@Zn%EH1;>sU3Io}KgII0TyKeYhjd z_$6Y=W?=Sz!YJFsFB0j5ZZ^ZT6+csvvz&}Q!k5){;3vwopdm@}&qFtfngK$JYS&_D zI>q=Kkvh_XD$D2*;fDImISuH!0Nt&42-j~~%I<%Po}PB(=crqp@E%)Aa=_9C{Dw07|fgS(J z+zp?~7ZJqUtoN^*-ge483MG!8i>#$`idJJSwxt4y1dt@bV=?YjOzIsO`3L&!yxfz{ zWGB^D7KEgVmA?ivg@_>Gl zWeEyGbNp!LKE2~*$BNn!txO9XKAYH35%B2SVwKn7!C)ODBZc&o+J9=NI~B!9$UfT5 z#d@Ca!%tBqX(Jv(iHT|aEFb_c1X_7@o_liAkU#SVe$zlU-I1&@On0?t6{XAZa zbWy5r1zz%9YMlSe!1%Sq0l}eJ4ugKA-Wnbjz!;Wbmse)71wq&XOS5P+Hz65P*LC?&!u6f_dNZW}AJuNWf=`gVHyP~aeW z#DDDnV`iPSp|ni{gt7Y-ZA(*It58A+n1@E2LC$r8a2elt`mC932%YmM?;qktRLH|A zU)I*c?s8D(x(cBX(1Arc+?YwQ2qv1QGWzfd|3X9m-bx~C491n|?de3u*zrXT9ePT| z4~ymfu$*l^ojX7^^o6z(I$|YO&!!y#8(RhFZ(<4-zjOb zPfZrHE8-UTj9?>8AB=I{gGI5r^3#&vuVv-3@SONH(m9`u!c+kp|H-xLtoCUU%$MB1 z(GN=2sJuU0H7spd(>@h|NG`U3XHxT6*^om>g_NnaQqx}!kr`ih9)A7-TSJ3@8I^C# z^qaF%UofUQ$WaNwAz$N+Vw+G1a#%GH_s}(fG62;5BvQBzXBfqM;hX)0B4(l&H~;;u zUuLrNEVsUS0tRoRfY423Nj6_Ef52`MKX=2vCdrMqC81 zGJYYt8n=TY96jKq1r!={`W}by0ASJ^g8%>;E?IL!@RYvhK&6#mO!@P`AB59_FW{+6 z=XvN*HUXc~S*Rt6yk6(&t>!V&_THosns7O*sjY}z;G6wQ)Cs1Tx_be6Ri}#?Q@rOm zQi!8Fo-6l07w(9%{G!so{-VWI1u3mED-8y=gMsbzg0B4A3Eq?7I^Ht`-fd7jfIFn7 zQ1BZEq1KAW*+1`IdtcShL){G>zVHk<)(e!FK`T;>i`|lonYa9KW&z#xQB8 zfR=R_V5U086zjD*kWMuLc&|ac1r@8PuDFXi9zRD*XC**I|$fhMBs|) zGlR;@Mt9XW;sLv4QA&kS{8sIL1o_dg^+<`)(elN$L3;A_)3$Im5glqqx+GIN$@ehP z(F*L}F|^>sw22mPI7Y3kjiVk-Y?Au^qY;1~L^+&;yrg(i3H@JY3F5S0nvTkS-k{bp z2-}@a=!>qn#a{RJaviszZ)+}e>p(rB2rltR-Px>=0gdp3k-d>n1voHB)x9>+crfhZM;gVbQB__X zf<@6aL@KjIP`E2n!zJnRJtZM%zGvkM2o5~=RAjZHJ))%?&BBNQ1AT{LHlINQ^xm2+ zR0?F8AP{e~lbN3)DU9|P4Qtm%J2%5W@CMUNp(4vF1OWSn-POgMM3B<0YI^8)8>p^V z#}y0RTDwTO^rKx0;yqR(4-a3pBx+H&J!u{{gRey7dtOjDPB8X}Kqp1R6WWBBD?qP8 zY!A8o^rCE@HXdYAq4Cm?Rqz*>bv z;?JM}(-MIGT-q8(InZ?0g>-6~J;qgaAol$nvW?xbbqq(=Z+41(-$xw0yPACjYX45g zcfrW1L>N@iSCkk94Un`v?;hL^3`2Vs(F(b$m83Z|eBMRYjBM1hy6g2z2JE@=;_*sb zI_v_tC-{#5nLyY9^)^R;6-UQcO%Gq}=;8Rw;ur`Ci3o$Y!dS%WlJwIaw5|7VV10%? zb?F{417o!gsOL}6UI_@?i_WZu#X&dc25XVuYr6pKqmDB zQox3#Cug1^;!Cw>3*kD-ngA5ImT*U1xIJ?J4eWq_v+0zLGMiILsGLEkg1Gm|SS;f- z;mV-#IR64HpGx7<1@gjUbKQG$lT3e4$s@%nDy*aMVX-*akaDAdgD`u?7BfWvgF2oY zQ$?$Zi@8JmUQha_u&5BD?6)R?Kqzm!*1imguktj-4$?w9?ly4BIxEJ) zCgZv03;5FeRkPj~Yn4q&>EHo@f4v=-?HG<<(;@<6=0>|5x!_>8(TgniE;t{se5FKp zkI%(kmVilKsm`yMtpi`MrGs_Iy!eMhDa55??yC3yO)TOSEGn-XHGhYIjU_Uwzpi7Z=Sc5x?jn8~OVnyR%Rr5=k<{lC=1bxt&dX<9uj zOy#_V7b|9JKV>>SfeY9k>Nnq(n&F7(t$p>v*;E)Jp>-c`>EYX9CRl60*B&}4{vIyb z`;6+wFe{I~$XDi&zAr;}ufiZ#RB{yB8)WMbG!)s^x{sZ} zTB5@$fXB`I=_zhd=23|0Jc~%K|LO`J0TSibO(9+4hbNqe*l@u#4SCyO2@=K;0gN(| z$&01zcQ;#ZzkM*v_Dp1F?1BzOwB*Cy3A)t9?6ooPVe zkq)u>k&%ENgqncvnJH?s(oHgMM-Ezx9_Uv8C~EVq zuv>d~z(I6@(Mo*Q{BTAF_rBgzO!qpBH5%@JT)-s8t1v!hoHngDDO+3vb!zBnt1@dM zRF=d%n3_~R0KQs;-Y$sMt_cjXvUuR!y9FUdNh=^q5!`aQdRyEj9a9-WG@7K&98JG~AC3d3f^_F;b+z zY7I5|<^0-op*-%ggIP$|?+oancIUJL{eZ%*4EA_NDdvztdsE3u5+l~W!19jYfs3u; zr#Bq6+nIzUlH}ks^r95q=;=3Fkb^2qY{F=7k3R`06d)h%N%52R11jXCMLkaA;o7a6KeKn;7Hj>2j8XJWjn=c;1M;~U%t#q9B_(Qio%b=+Z;^_-igm* zqC%o>FmuuwAf|r+0Lwfk6!$9Cc~*b)X1C?M1YMPCKY>z8T9AOG0|+Hhh_!@WO2K7+ zL5|-sS8ST=WnVQKd~=|Vij8dxDmAkkne}(9&`0`FQ>EMqSSAQgnb+9V0oFD)O$T2( zX8(4(pX9)zFhRbkK~|J0w9{GZJD-M#yTgJs9FnIIcBiKpptoHQY!y`OM0$B6&HRPV zx|2~lI?fsb&W>{Tn0Y*DA$V-aj0YasxFKN%%ZS-@nag?<$|4mT5F{98?%)_3s%T5t zqve$T;8itWF$}WN2St1cxWa!k zzTbB)=NY?fgjcx)?G3r5B9dfV_qHmsLLO#|)tWxQZY@Gt2Uz2MvSem*i2PniH=q*4 z3p?AE>TKU^V{P2Xtw40mH}7xKv+jW{s_C<8?Zs(dT)a#d^51no_dS5r86br@iV?aB-QN>$j+^& z(Q-r~()I&}P5P)}g5a3(*=W3jsq#anAEf1mrk!vzSYGW5)uwH@q?9s)Pg_IVxe>=l z{rfJ&Jo|;BzKSZ`UBEgdf8=to?31)HSd(np(x5ZK+yoWJrl;(1CMJR z)w5ZNC4e(lq*6!m@$cY&YRirNw>b~0kXWbzdWB#LZYtFJz`716s*SwEO1|+JpF;Fp z7AxqprDry6Uc6_of^rRe4_x6r({E3!&H!dQ=!ma#{vTLcZlFIy=S2Hen>WyL(p`~R zABGcD=w2RglM92imnF<@4t8P1znTAHMUcU`RtLZp>W~6Wb|+#NOXGWvPKDs972CSm!y|LY)et& zIwI$`IR^*E#-Z;&qD<)h4O> zV#-upL_Dm!u0LF`6;xCAqy8HZ__~gAq~2~1omCFDIp{1Nh%TrhP7*vGBVB2J(wFm) z7YLUO5ZeBUOTnF)?#0b^vw)>UuP|UR)_n*xBMP){F~8h8pSa6hRE&-${Y0}UdGpDQ zqL?OJlm#1fZ# zOE3N=0j_&3stX=}sU?UgbW~yGA0uz;+&}lf6O>n0W_0W$sZnyMSi&tjh@u~kp^%N> zrG>oPPuZtXT{~g~D(w!EBcl8~)9Sfh(@<$mGh8dpU{>L3l+N6&|ET~NXa=4-eV(Pi zmM#U-JgIGg6mHT zo%`66H zsKB@(_R_Sw*Iyj@#iI*ybamH)q*5NDj~m6?$pAWfBGFxKm}2`T>cJbN3vqq@%4rBxIo z?G|gL^ex@!&SnePC-#0mGouC-qELH=^DH4jq&4YYq61?qz*3`Q{@dB!hyr#$-HMb? zE@5^xj!r!hBIQ#nHb#`l2coxP9>ji|=};;(-Og7DbaDBnK-XSQO5dty(WBQ6ZO(x} z)90z?L*RnvhD-<%+UBMD`_dT&>!WET#i92)fM{yluRem15;56pi}wa(i`*)CA2~Y` ziKMhOQQ+>ZP^}$^q;&si+N*Ag%*zGkYY(3+0#pm{01MR4R#F!Jt=oMZ4^G7m*pGOi z#LYY~Iy}%%N7P;-K8S}y+PCR6tcU2#Xv%=<*c9&8`859}up+SWl-K%=@>=&vW!l_X z)h)1>bRTkhQJPl?8Y|pfl)=HJ73n*2DWn|AFaVpy@*HoV*2+VB*K<7?(y`luOm$WY zz19oHsi1Q@i9FawL(C>8U|@*$xa_hS*`vh5B#i6Ck4DS;?WX;c^dXXb*JsxP{vZMl z2oMF4&(QNiZugsu>*ExO+K)?^()@qhVZdH|4 zuB!oy1lc94S^ZcLzduz6J)1Jwz>Ur16Q&0-mSS|Ga9!G5nA7*-DchO}heb%Hw)wGV zgQNG-Uc-LE&LtY@4<6~5KSL0MKD{Tw^Pw8S50GPWGaHH&^(L(9%X3b^p+Guu7%<`? zfa9eL<&~X7*0OR8!JE~yCdF(mTW<9I*d9HSoxKw>;6o8phv|g2hgC1|n|gqA#*`c9 zs{LC8V_7ywRjY-Z0iJ&aHvb0F3~6|1J`oMiu`2r<6OgSz(Ar02W%Uxuq+nf18Z3-G z1T_s8Jyp{p^a#uRF6LKwxXUq0hpq&K&3au?1gij>;uEH+HE3%wj%+*NBg?8KS0o7Q zVjv4qz5vM5+9~47h>svMAaXeiUxjgRk6XH+3^HT@eYW%*6Mtm_!u79!td?OntsS#% zC0e3Udx?O#J{nL!6%;bL3#Lw4cC5D+RGDkWx zC>vyXUh-X7-IGjT%>b66rGBZgl$aIFofZZoX~QlB0V8*^#lS|lL{^yyg-5FK7d&z0 z-yi{6%gk8^31o>2jx4b-5Mcz?sAYJFL2zC*nef5AJ6(I@l*s}UPcjc8V ); - case 3: + case 4: return
{lessonContent.data}
; default: return
Unknown type
; diff --git a/src/index.tsx b/src/index.tsx index 62699a1..e0aa384 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -1,21 +1,25 @@ -import React from "react"; import ReactDOM from "react-dom/client"; import "./index.css"; import App from "./App"; import { BrowserRouter } from "react-router-dom"; import { Provider } from "react-redux"; import { store } from "./core/store/store"; +import { Suspense } from "react"; +import MyCenteredSpin from "./shared/components/MyCenteredSpin"; // import reportWebVitals from './reportWebVitals'; const root = ReactDOM.createRoot( document.getElementById("root") as HTMLElement ); + root.render( - - - - - + }> + + + + + + ); // If you want to start measuring performance in your app, pass a function diff --git a/src/shared/components/MyCenteredSpin/index.tsx b/src/shared/components/MyCenteredSpin/index.tsx index b0212d8..e65dc93 100644 --- a/src/shared/components/MyCenteredSpin/index.tsx +++ b/src/shared/components/MyCenteredSpin/index.tsx @@ -1,10 +1,10 @@ -import { Spin } from "antd"; import { MyCenteredContainer } from "../MyContainer"; +import MySpin from "../MySpin"; export default function MyCenteredSpin({ fullHeight = false }) { return ( - + ); } diff --git a/src/shared/components/MySpin/index.tsx b/src/shared/components/MySpin/index.tsx new file mode 100644 index 0000000..a13cf70 --- /dev/null +++ b/src/shared/components/MySpin/index.tsx @@ -0,0 +1,6 @@ +import { LoadingOutlined } from "@ant-design/icons"; +import { Spin } from "antd"; + +export default function MySpin() { + return } />; +}