From 295cc192fd8ab55d3f43d5b3ae717afb3425a50a Mon Sep 17 00:00:00 2001 From: YoonHaeMin Date: Sat, 17 Feb 2024 12:22:43 +0900 Subject: [PATCH 01/14] =?UTF-8?q?merge=20base=20=EB=B3=80=EA=B2=BD?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EC=9D=B8=ED=95=9C=20PR=20=EC=9E=AC?= =?UTF-8?q?=EC=9E=91=EC=84=B1=20(#26)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: chip에 속성값을 외부에서 변경이 가능하도록 변경 * design: 데이터가 비어있을때 보여주는 컴포넌트 디자인 수정 * feat: arrow-down 아이콘 추가 * feat: 수정 모드를 각 기능의 수정에서 컴포넌트 하나의 수정모드로 전환 * feat: category정보에 해당 categoryName필드를 추가해서 반환 * design: icon 변경에 따른 색상 조절 * design: edit 취소 버튼 제거 * rename: QuestionTabPanel 관련 폴더 추가 * feat: button과 menu를 합친 dropdown 컴포넌트 생성 * feat: 삭제 완료에 대한 toast 반응 추가 * feat: 값이 변경되었을때 자동저장 기능 추가 * feat: 빈 값일때 빈 값 컴포넌트를 선언적으로 작성하기 위한 helper컴포넌트 작성 * feat: 수정 모드일때 footer가 보이지 안도록 변경 * feat: 수정이 완료 되는 즉시 api로 수정 사항 업데이트에 반영 * design: desciption의 최대길이를 설정해 스크롤이 유동적으로 생기게 변경 * fix: 기본 길이 이외에도 수정 모드 변경 가능하도록 설정 * design: 면접 질문 추가 placeholder추가로 가시성 향상 * design: 문제집 etc 버튼의 menu를 왼쪽 아래로 표시하도록 변경 * design: header의 레이아웃을 body와 통일 --- src/GlobalSvgProvider.tsx | 8 +- src/apis/workbook.ts | 3 +- .../QuestionSelectionBox.styles.ts | 3 +- .../QuestionSelectionBox.tsx | 4 +- .../QuestionTabPanelBlank.tsx | 66 ------- .../QuestionTabPanelHeader.tsx | 133 ------------- .../QuestionTabPanelItem.tsx | 143 -------------- .../QuestionAccordionList.tsx | 23 +-- .../QuestionAddForm.tsx | 3 +- .../QuestionTabPannel/QuestionDropdown.tsx | 56 ++++++ .../QuestionTabPanelBlank.tsx | 38 ++++ .../QuestionTabPanelEditHeader.tsx | 175 ++++++++++++++++++ .../QuestionTabPanelHeader.tsx | 129 +++++++++++++ .../QuestionTabPanelItem.tsx | 149 +++++++++++++++ .../WorkbookEditModeDialog.tsx | 14 -- src/components/foundation/Chip/Chip.tsx | 6 +- .../EmptySuspense/EmptySuspense.tsx | 26 +++ .../foundation/Modal/ModalHeader.tsx | 1 + .../mutations/useWorkbookPatchMutation.ts | 9 +- .../apis/queries/useQuestionWorkbookQuery.ts | 13 +- src/hooks/apis/queries/useWorkbookQuery.ts | 21 ++- src/types/workbook.ts | 12 ++ 22 files changed, 645 insertions(+), 390 deletions(-) delete mode 100644 src/components/common/QuestionSelectionBox/QuestionTabPanelBlank.tsx delete mode 100644 src/components/common/QuestionSelectionBox/QuestionTabPanelHeader.tsx delete mode 100644 src/components/common/QuestionSelectionBox/QuestionTabPanelItem.tsx rename src/components/common/QuestionSelectionBox/{ => QuestionTabPannel}/QuestionAccordionList.tsx (86%) rename src/components/common/QuestionSelectionBox/{ => QuestionTabPannel}/QuestionAddForm.tsx (92%) create mode 100644 src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionDropdown.tsx create mode 100644 src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelBlank.tsx create mode 100644 src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelEditHeader.tsx create mode 100644 src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelHeader.tsx create mode 100644 src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelItem.tsx create mode 100644 src/components/foundation/EmptySuspense/EmptySuspense.tsx diff --git a/src/GlobalSvgProvider.tsx b/src/GlobalSvgProvider.tsx index 1e2115bc..14e664f1 100644 --- a/src/GlobalSvgProvider.tsx +++ b/src/GlobalSvgProvider.tsx @@ -21,7 +21,7 @@ const spliteSvgCode = ( @@ -349,6 +349,12 @@ const spliteSvgCode = ( + + + ); diff --git a/src/apis/workbook.ts b/src/apis/workbook.ts index 16c86071..eaa5a467 100644 --- a/src/apis/workbook.ts +++ b/src/apis/workbook.ts @@ -5,6 +5,7 @@ import { WorkbookAddResDto, WorkbookListResDto, WorkbookPatchReqDto, + WorkbookPatchResDto, WorkbookResDto, WorkbookTitleListResDto, } from '@/types/workbook'; @@ -39,7 +40,7 @@ export const getWorkbookById = async (workbookId: number) => { }; export const patchWorkbookById = async (body: WorkbookPatchReqDto) => { - return await getAPIResponseData({ + return await getAPIResponseData({ method: 'patch', url: API.WORKBOOK, data: body, diff --git a/src/components/common/QuestionSelectionBox/QuestionSelectionBox.styles.ts b/src/components/common/QuestionSelectionBox/QuestionSelectionBox.styles.ts index 399814f2..28df3054 100644 --- a/src/components/common/QuestionSelectionBox/QuestionSelectionBox.styles.ts +++ b/src/components/common/QuestionSelectionBox/QuestionSelectionBox.styles.ts @@ -39,10 +39,9 @@ export const QuestionSelectionBoxSidebarAreaDiv = styled.div<{ ` : css` ${showSidebar} 0.3s ease-in-out forwards - `}} + `}; `; export const QuestionSelectionBoxTabPanelAreaDiv = styled.div` flex: 1 1 calc(100% - 15rem); - overflow-x: hidden; `; diff --git a/src/components/common/QuestionSelectionBox/QuestionSelectionBox.tsx b/src/components/common/QuestionSelectionBox/QuestionSelectionBox.tsx index 617d4f1b..c6e5f2d8 100644 --- a/src/components/common/QuestionSelectionBox/QuestionSelectionBox.tsx +++ b/src/components/common/QuestionSelectionBox/QuestionSelectionBox.tsx @@ -1,4 +1,4 @@ -import TabPanelItem from './QuestionTabPanelItem'; +import TabPanelItem from './QuestionTabPannel/QuestionTabPanelItem'; import { Box, Tabs } from '@foundation/index'; import useWorkbookTitleListQuery from '@hooks/apis/queries/useWorkbookTitleListQuery'; import QuestionTabList from '@common/QuestionSelectionBox/QuestionTabList'; @@ -11,7 +11,7 @@ import { import { css } from '@emotion/react'; import { useState } from 'react'; import useBreakpoint from '@hooks/useBreakPoint'; -import QuestionTabPanelBlank from '@common/QuestionSelectionBox/QuestionTabPanelBlank'; +import QuestionTabPanelBlank from '@common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelBlank'; const QuestionSelectionBox = () => { const isDeviceBreakpoint = useBreakpoint(); diff --git a/src/components/common/QuestionSelectionBox/QuestionTabPanelBlank.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPanelBlank.tsx deleted file mode 100644 index f50d3cf2..00000000 --- a/src/components/common/QuestionSelectionBox/QuestionTabPanelBlank.tsx +++ /dev/null @@ -1,66 +0,0 @@ -import { Button, Typography } from '@foundation/index'; -import { css } from '@emotion/react'; -import { theme } from '@styles/theme'; -import BlankBear from '@assets/images/blank-bear.png'; -import { Link } from 'react-router-dom'; -import { PATH } from '@constants/path'; -import WorkbookAddButton from '@common/QuestionSelectionBox/WorkbookAddButton'; -import useBreakpoint from '@hooks/useBreakPoint'; - -const QuestionTabPanelBlank = () => { - const isDeviceBreakpoint = useBreakpoint(); - return ( -
-
- - 이런! 면접 질문이 하나도 없군요😥 -
- 다른 사람이 만든 면접 세트를 가져오거나 -
새 면접 세트를 만들어보세요 -
-
- {isDeviceBreakpoint('tablet') && } - - - -
-
- 박스 옆에서 손을 흔드는 곰 -
- ); -}; - -export default QuestionTabPanelBlank; diff --git a/src/components/common/QuestionSelectionBox/QuestionTabPanelHeader.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPanelHeader.tsx deleted file mode 100644 index da75dd7f..00000000 --- a/src/components/common/QuestionSelectionBox/QuestionTabPanelHeader.tsx +++ /dev/null @@ -1,133 +0,0 @@ -import { css } from '@emotion/react'; -import { Button, Icon, Menu, MenuItem, Typography } from '@foundation/index'; -import { theme } from '@styles/theme'; -import { ExcludeArray } from '@/types/utils'; -import { WorkbookTitleListResDto } from '@/types/workbook'; -import { useState } from 'react'; -import useModal from '@hooks/useModal'; -import { WorkbookGeneratorModal } from '@common/index'; -import useWorkbookDelete from '@hooks/useWorkbookDelete'; -import { toast } from '@foundation/Toast/toast'; -import useBreakpoint from '@hooks/useBreakPoint'; - -type QuestionTabPanelHeaderProps = { - workbook: ExcludeArray; - questionLength: number; - onWorkbookDelete: () => void; - onEditButtonClick: () => void; -}; -const QuestionTabPanelHeader: React.FC = ({ - workbook, - questionLength, - onWorkbookDelete, - onEditButtonClick, -}) => { - const isDeviceBreakpoint = useBreakpoint(); - const [isMenuOpen, setIsMenuOpen] = useState(false); - const { deleteWorkbook } = useWorkbookDelete(); - const { openModal, closeModal } = useModal(() => { - return ( - - ); - }); - - const handleWorkbookDeleteClick = () => { - deleteWorkbook(workbook.workbookId); - toast.success('성공적으로 문제집이 삭제되었습니다.'); - onWorkbookDelete(); - }; - - return ( - <> -
- {workbook.title} -
-
- -
- - setIsMenuOpen(false)}> - - 면접 질문 수정 - - - 면접 세트 편집 - - - 면접 세트 삭제 - - -
-
- - {questionLength}개의 질문 - -
-
- - ); -}; - -export default QuestionTabPanelHeader; diff --git a/src/components/common/QuestionSelectionBox/QuestionTabPanelItem.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPanelItem.tsx deleted file mode 100644 index 3036c201..00000000 --- a/src/components/common/QuestionSelectionBox/QuestionTabPanelItem.tsx +++ /dev/null @@ -1,143 +0,0 @@ -import { questionSetting } from '@atoms/interviewSetting'; -import { theme } from '@styles/theme'; -import { css } from '@emotion/react'; -import { useState } from 'react'; -import { useRecoilValue } from 'recoil'; -import useQuestionWorkbookQuery from '@hooks/apis/queries/useQuestionWorkbookQuery'; -import { Button, Icon, Tabs, Toggle, Typography } from '@foundation/index'; -import { WorkbookTitleListResDto } from '@/types/workbook'; -import { ExcludeArray } from '@/types/utils'; -import QuestionAddForm from '@common/QuestionSelectionBox/QuestionAddForm'; -import QuestionTabPanelHeader from '@common/QuestionSelectionBox/QuestionTabPanelHeader'; -import useTabs from '@foundation/Tabs/useTabs'; -import QuestionAccordionList from '@common/QuestionSelectionBox/QuestionAccordionList'; -import useBreakpoint from '@hooks/useBreakPoint'; -import { toast } from '@foundation/Toast/toast'; - -type TabPanelItemProps = { - tabIndex: string; - workbook: ExcludeArray; - isSidebarOpen: boolean; - onSidebarToggleClick: () => void; -}; - -const TabPanelItem: React.FC = ({ - workbook, - tabIndex, - isSidebarOpen, - onSidebarToggleClick, -}) => { - const isDeviceBreakpoint = useBreakpoint(); - - const settingPage = useRecoilValue(questionSetting); - const selectedQuestions = settingPage.selectedData.filter( - (question) => question.workbookId === workbook.workbookId - ); - - const { currentValue, setCurrentValue } = useTabs(); - const [onlySelectedOption, setOnlySelectedOption] = useState(false); - const [isEditMode, setIsEditMode] = useState(false); - - const toggleShowSelectionOption = () => { - setOnlySelectedOption((prev) => !prev); - }; - - const { data: questionAPIData } = useQuestionWorkbookQuery({ - workbookId: workbook.workbookId, - enabled: currentValue === tabIndex, - }); - - const questionData = onlySelectedOption ? selectedQuestions : questionAPIData; - if (!questionData) return; - - return ( - -
- setCurrentValue('0')} - onEditButtonClick={() => - questionData?.length - ? setIsEditMode(true) - : toast.info('문제가 존재하지 않습니다.') - } - /> -
- -
- setIsEditMode(false)} - questionData={questionData} - workbookId={workbook.workbookId} - /> -
- -
- - {!isSidebarOpen && isDeviceBreakpoint('mobile') ? null : ( - 선택된 질문만 보기 - )} -
-
-
-
- ); -}; - -export default TabPanelItem; diff --git a/src/components/common/QuestionSelectionBox/QuestionAccordionList.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionAccordionList.tsx similarity index 86% rename from src/components/common/QuestionSelectionBox/QuestionAccordionList.tsx rename to src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionAccordionList.tsx index 3b5e37e5..1287056d 100644 --- a/src/components/common/QuestionSelectionBox/QuestionAccordionList.tsx +++ b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionAccordionList.tsx @@ -2,49 +2,35 @@ import { CheckBox } from '@foundation/index'; import QuestionSelectionBoxAccordion from '@common/QuestionSelectionBox/QuestionSelectionBoxAccordion'; import WorkbookEditModeDialog from '@common/QuestionSelectionBox/WorkbookEditModeDialog'; import useWorkbookQuestionDelete from '@hooks/useWorkbookQuestionDelete'; -import { useRef } from 'react'; -import useOutsideClick from '@hooks/useOutsideClick'; import { Question } from '@/types/question'; import { css } from '@emotion/react'; +import { toast } from '@foundation/Toast/toast'; type QuestionAccordionListProps = { isEditMode: boolean; cancelEditMode: () => void; - questionData: Question[]; + questionData?: Question[]; workbookId: number; }; const QuestionAccordionList: React.FC = ({ isEditMode, - cancelEditMode, questionData, workbookId, }) => { - const listRef = useRef(null); - - useOutsideClick(listRef, () => { - handleCancelEditMode(); - }); - const { addCheckedQuestion, - resetCheckedQuestion, deleteCheckedQuestion, isCheckedQuestion, checkQuestionCount, } = useWorkbookQuestionDelete(workbookId); - const handleCancelEditMode = () => { - resetCheckedQuestion(); - cancelEditMode(); - }; - const handleQuestionChecked = (questionId: number) => { isEditMode && addCheckedQuestion(questionId); }; const handleDeleteQuestion = async () => { await deleteCheckedQuestion(); - handleCancelEditMode(); + toast.success('삭제가 완료되었습니다.'); }; const getServiceStepID = (index: number, length: number) => { @@ -56,11 +42,11 @@ const QuestionAccordionList: React.FC = ({ ? 'virtual-step-target-0' : ''; }; + if (!questionData) return <>; return ( <>
= ({ {isEditMode && ( void handleDeleteQuestion()} /> )} diff --git a/src/components/common/QuestionSelectionBox/QuestionAddForm.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionAddForm.tsx similarity index 92% rename from src/components/common/QuestionSelectionBox/QuestionAddForm.tsx rename to src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionAddForm.tsx index 7aa63c1c..ee5a7cb6 100644 --- a/src/components/common/QuestionSelectionBox/QuestionAddForm.tsx +++ b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionAddForm.tsx @@ -39,10 +39,11 @@ const QuestionAddForm: React.FC = ({ workbookId }) => { > + + {data?.map((item) => ( + onChange(e, item)}> + {item.name} + + ))} + +
+ ); +}; + +export default QuestionDropdown; diff --git a/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelBlank.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelBlank.tsx new file mode 100644 index 00000000..b5d52392 --- /dev/null +++ b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelBlank.tsx @@ -0,0 +1,38 @@ +import { Typography } from '@foundation/index'; +import { css } from '@emotion/react'; +import BlankBear from '@assets/images/blank-bear.png'; + +const QuestionTabPanelBlank = () => { + return ( +
+ 박스 옆에서 손을 흔드는 곰 + + 이런! 면접 질문이 하나도 없어요😥 + +
+ ); +}; + +export default QuestionTabPanelBlank; diff --git a/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelEditHeader.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelEditHeader.tsx new file mode 100644 index 00000000..42c93a00 --- /dev/null +++ b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelEditHeader.tsx @@ -0,0 +1,175 @@ +import { css } from '@emotion/react'; +import { Button, Icon, Input, InputArea } from '@foundation/index'; +import useCategoryQuery from '@hooks/apis/queries/useCategoryQuery'; +import { WorkbookQueryResult } from '@hooks/apis/queries/useWorkbookQuery'; +import useInput from '@hooks/useInput'; +import { useState } from 'react'; +import QuestionAddForm from './QuestionAddForm'; +import useWorkbookEdit from '@hooks/useWorkbookEdit'; +import QuestionDropdown from './QuestionDropdown'; +import useDebounce from '@hooks/useDebounce'; +import { toast } from '@foundation/Toast/toast'; + +type QuestionTabPanelEditHeaderProps = { + workbookInfo: WorkbookQueryResult; + closeEditMode: () => void; +}; + +const publicMap = [ + { + id: 'public', + name: '공개', + isPublic: true, + }, + { + id: 'private', + name: '비공개', + isPublic: false, + }, +]; + +const QuestionTabPanelEditHeader: React.FC = ({ + workbookInfo, + closeEditMode, +}) => { + const initialPublicState = publicMap.find( + (item) => item.isPublic === workbookInfo.isPublic + ) as (typeof publicMap)[number]; + // publicMap에 boolean 타입의 조건이 모두 들어가 있으므로 undefined는 나올 수 없음 => 강제 타입 변환 사용 + + const [selectedPublic, setSelectedPublic] = useState(initialPublicState); + const [selectedCategory, setSelectedCategory] = useState({ + id: workbookInfo.categoryId, + name: workbookInfo.categoryName, + }); + + const { data: categoryData } = useCategoryQuery(); + + const { value: title, onChange: handleTitleChange } = + useInput(workbookInfo.title); + const { value: content, onChange: handleContentChange } = + useInput(workbookInfo.content); + + const { editWorkbook } = useWorkbookEdit({ + onSuccess: () => { + toast.success('수정에 성공하였습니다.'); + }, + }); + + const EditWorkbook = ({ + id, + title: titleProp, + content: contentProp, + categoryId, + isPublic, + }: { + id?: number; + title?: string; + content?: string; + categoryId?: number; + isPublic?: boolean; + }) => { + editWorkbook({ + workbookId: id ?? workbookInfo.workbookId, + title: titleProp ?? title, + content: contentProp ?? content, + categoryId: categoryId ?? selectedCategory.id, + isPublic: isPublic ?? selectedPublic.isPublic, + }); + }; + const save = useDebounce(EditWorkbook, 1000); + + if (!categoryData) return; + + return ( + <> +
+
+
+ { + setSelectedCategory(item); + save({ + categoryId: item.id, + }); + }} + /> + { + setSelectedPublic(item); + save({ + isPublic: item.isPublic, + }); + }} + /> +
+ +
+ ) => { + handleTitleChange(e); + save({ + title: e.target.value, + }); + }} + /> + ) => { + handleContentChange(e); + save({ + content: e.target.value, + }); + }} + rows={2} + /> +
+
+ +
+ + ); +}; + +export default QuestionTabPanelEditHeader; diff --git a/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelHeader.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelHeader.tsx new file mode 100644 index 00000000..8f2d80bb --- /dev/null +++ b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelHeader.tsx @@ -0,0 +1,129 @@ +import { css, useTheme } from '@emotion/react'; +import { Button, Icon, Menu, MenuItem, Typography } from '@foundation/index'; +import { useState } from 'react'; +import useWorkbookDelete from '@hooks/useWorkbookDelete'; +import { toast } from '@foundation/Toast/toast'; +import Chip from '@foundation/Chip/Chip'; +import { WorkbookQueryResult } from '@hooks/apis/queries/useWorkbookQuery'; + +type QuestionTabPanelHeaderProps = { + workbookInfo: WorkbookQueryResult; + onWorkbookDelete: () => void; + onEditButtonClick: () => void; +}; +const QuestionTabPanelHeader: React.FC = ({ + workbookInfo, + onWorkbookDelete, + onEditButtonClick, +}) => { + const theme = useTheme(); + + const [isMenuOpen, setIsMenuOpen] = useState(false); + const toggleMenu = () => { + setIsMenuOpen((prev) => !prev); + }; + const { deleteWorkbook } = useWorkbookDelete(); + + const handleWorkbookDeleteClick = () => { + deleteWorkbook(workbookInfo.workbookId); + toast.success('성공적으로 문제집이 삭제되었습니다.'); + onWorkbookDelete(); + }; + + return ( + <> +
+
+
+ + {workbookInfo.categoryName} + + + {workbookInfo.isPublic ? '공개' : '비공개'} + +
+
+ + + + 면접 세트 편집 + + + 면접 세트 삭제 + + +
+
+ {workbookInfo.title} +
+ + {workbookInfo.content} + +
+
+ + ); +}; + +export default QuestionTabPanelHeader; diff --git a/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelItem.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelItem.tsx new file mode 100644 index 00000000..238270e4 --- /dev/null +++ b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelItem.tsx @@ -0,0 +1,149 @@ +import { questionSetting } from '@atoms/interviewSetting'; +import { theme } from '@styles/theme'; +import { css } from '@emotion/react'; +import { useState } from 'react'; +import { useRecoilValue } from 'recoil'; +import useQuestionWorkbookQuery from '@hooks/apis/queries/useQuestionWorkbookQuery'; +import { Button, Icon, Tabs, Toggle, Typography } from '@foundation/index'; +import { WorkbookTitleListResDto } from '@/types/workbook'; +import { ExcludeArray } from '@/types/utils'; +import QuestionTabPanelHeader from '@common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelHeader'; +import useTabs from '@foundation/Tabs/useTabs'; +import useBreakpoint from '@hooks/useBreakPoint'; +import QuestionAccordionList from './QuestionAccordionList'; +import EmptySuspense from '@foundation/EmptySuspense/EmptySuspense'; +import QuestionTabPanelBlank from './QuestionTabPanelBlank'; +import QuestionTabPanelEditHeader from './QuestionTabPanelEditHeader'; +import useWorkbookQuery from '@hooks/apis/queries/useWorkbookQuery'; + +type TabPanelItemProps = { + tabIndex: string; + workbook: ExcludeArray; + isSidebarOpen: boolean; + onSidebarToggleClick: () => void; +}; + +const TabPanelItem: React.FC = ({ + workbook, + tabIndex, + isSidebarOpen, + onSidebarToggleClick, +}) => { + const isDeviceBreakpoint = useBreakpoint(); + + const settingPage = useRecoilValue(questionSetting); + const selectedQuestions = settingPage.selectedData.filter( + (question) => question.workbookId === workbook.workbookId + ); + + const { currentValue, setCurrentValue } = useTabs(); + const [onlySelectedOption, setOnlySelectedOption] = useState(false); + const [isEditMode, setIsEditMode] = useState(false); + + const toggleShowSelectionOption = () => { + setOnlySelectedOption((prev) => !prev); + }; + + const { data: questionAPIData } = useQuestionWorkbookQuery({ + workbookId: workbook.workbookId, + enabled: currentValue === tabIndex, + }); + + const questionData = onlySelectedOption ? selectedQuestions : questionAPIData; + + const { data: workbookInfo } = useWorkbookQuery({ + workbookId: workbook.workbookId, + }); + if (!workbookInfo) return null; + return ( + +
+ {isEditMode ? ( + setIsEditMode(false)} + /> + ) : ( + setCurrentValue('0')} + onEditButtonClick={() => setIsEditMode(true)} + /> + )} + + }> + setIsEditMode(false)} + questionData={questionData} + workbookId={workbook.workbookId} + /> + + {!isEditMode && ( +
+ + +
+ + {!isSidebarOpen && isDeviceBreakpoint('mobile') ? null : ( + 선택된 질문만 보기 + )} +
+
+ )} +
+
+ ); +}; + +export default TabPanelItem; diff --git a/src/components/common/QuestionSelectionBox/WorkbookEditModeDialog.tsx b/src/components/common/QuestionSelectionBox/WorkbookEditModeDialog.tsx index 0768fdb3..c730cfea 100644 --- a/src/components/common/QuestionSelectionBox/WorkbookEditModeDialog.tsx +++ b/src/components/common/QuestionSelectionBox/WorkbookEditModeDialog.tsx @@ -4,12 +4,10 @@ import { Box, Button, Icon, Typography } from '@foundation/index'; type WorkbookEditModeDialogProps = { count: number; - onCancelClick: () => void; onDeleteClick: () => void; }; const WorkbookEditModeDialog: React.FC = ({ count, - onCancelClick, onDeleteClick, }) => { return ( @@ -32,18 +30,6 @@ const WorkbookEditModeDialog: React.FC = ({ z-index: ${theme.zIndex.contentOverlay.overlay5}; `} > - >; variant?: keyof ReturnType; children: React.ReactNode; -}; +} & HTMLElementTypes; const Chip: React.FC = ({ children, variant = 'contained', color = 'primary' as const, + ...args }) => { const theme = useTheme(); @@ -74,6 +75,7 @@ const Chip: React.FC = ({ `, ChipMap(theme)[variant][color], ]} + {...args} > {children} diff --git a/src/components/foundation/EmptySuspense/EmptySuspense.tsx b/src/components/foundation/EmptySuspense/EmptySuspense.tsx new file mode 100644 index 00000000..e46849df --- /dev/null +++ b/src/components/foundation/EmptySuspense/EmptySuspense.tsx @@ -0,0 +1,26 @@ +import React, { createContext, useState } from 'react'; + +type EmptySuspenseProps = { + children: React.ReactNode; + callback: React.ReactNode; +}; + +export const EmptyContext = createContext({ + isEmpty: false, + setIsEmpty: (isEmpty: boolean) => {}, +}); + +const EmptySuspense: React.FC = ({ + children, + callback, +}) => { + const [isEmpty, setIsEmpty] = useState(false); + + return ( + + {isEmpty ? callback : children} + + ); +}; + +export default EmptySuspense; diff --git a/src/components/foundation/Modal/ModalHeader.tsx b/src/components/foundation/Modal/ModalHeader.tsx index ef7a51ee..637c79bc 100644 --- a/src/components/foundation/Modal/ModalHeader.tsx +++ b/src/components/foundation/Modal/ModalHeader.tsx @@ -42,6 +42,7 @@ const ModalHeader: React.FC = ({ css={css` cursor: pointer; `} + fill={theme.colors.text.white} onClick={() => { closeModal && closeModal(); }} diff --git a/src/hooks/apis/mutations/useWorkbookPatchMutation.ts b/src/hooks/apis/mutations/useWorkbookPatchMutation.ts index 408a349b..12767ebf 100644 --- a/src/hooks/apis/mutations/useWorkbookPatchMutation.ts +++ b/src/hooks/apis/mutations/useWorkbookPatchMutation.ts @@ -4,7 +4,7 @@ import { useQueryClient, } from '@tanstack/react-query'; import { patchWorkbookById } from '@/apis/workbook'; -import { WorkbookPatchReqDto } from '@/types/workbook'; +import { WorkbookPatchReqDto, WorkbookPatchResDto } from '@/types/workbook'; import { QUERY_KEY } from '@constants/queryKey'; /** @@ -13,16 +13,19 @@ import { QUERY_KEY } from '@constants/queryKey'; * workbookId에 해당하는 문제집의 메타정보(title, category, content)를 수정하기 위한 api입니다. */ const useWorkbookPatchMutation = ( - options?: UseMutationOptions + options?: UseMutationOptions ) => { const queryClient = useQueryClient(); return useMutation({ mutationFn: patchWorkbookById, ...options, - onSuccess: () => { + onSuccess: ({ workbookId }) => { void queryClient.invalidateQueries({ queryKey: QUERY_KEY.WORKBOOK_TITLE, }); + void queryClient.invalidateQueries({ + queryKey: QUERY_KEY.WORKBOOK_ID(workbookId), + }); }, }); }; diff --git a/src/hooks/apis/queries/useQuestionWorkbookQuery.ts b/src/hooks/apis/queries/useQuestionWorkbookQuery.ts index a0d6e576..dc876918 100644 --- a/src/hooks/apis/queries/useQuestionWorkbookQuery.ts +++ b/src/hooks/apis/queries/useQuestionWorkbookQuery.ts @@ -1,6 +1,8 @@ import { getQuestion } from '@/apis/question'; import { QUERY_KEY } from '@/constants/queryKey'; +import { EmptyContext } from '@foundation/EmptySuspense/EmptySuspense'; import { useQuery } from '@tanstack/react-query'; +import { useContext, useEffect } from 'react'; /** * GET /question/${workbookId} @@ -16,11 +18,20 @@ const useQuestionWorkbookQuery = ({ workbookId: number; enabled?: boolean; }) => { - return useQuery({ + const { setIsEmpty } = useContext(EmptyContext); + const query = useQuery({ queryKey: QUERY_KEY.QUESTION_WORKBOOK(workbookId), queryFn: () => getQuestion(workbookId), enabled, }); + + useEffect(() => { + if (query.isSuccess) { + setIsEmpty(query.data?.length === 0); + } + }, [query.data?.length, query.isSuccess, setIsEmpty]); + + return query; }; export default useQuestionWorkbookQuery; diff --git a/src/hooks/apis/queries/useWorkbookQuery.ts b/src/hooks/apis/queries/useWorkbookQuery.ts index 35270b1a..64a60778 100644 --- a/src/hooks/apis/queries/useWorkbookQuery.ts +++ b/src/hooks/apis/queries/useWorkbookQuery.ts @@ -1,6 +1,12 @@ -import { useQuery } from '@tanstack/react-query'; +import { UseQueryResult, useQuery } from '@tanstack/react-query'; import { QUERY_KEY } from '@constants/queryKey'; import { getWorkbookById } from '@/apis/workbook'; +import useCategoryQuery from './useCategoryQuery'; +import { WorkbookEntity } from '@/types/workbook'; + +export type WorkbookQueryResult = WorkbookEntity & { + categoryName: string; +}; /** * GET /workbook/${workbookId} @@ -15,11 +21,22 @@ const useWorkbookQuery = ({ }: { workbookId: number; enabled?: boolean; -}) => { +}): UseQueryResult => { + const { data: categories } = useCategoryQuery(); + const findCategoryName = (categoryId?: number) => + categories?.find((category) => category.id === categoryId)?.name ?? ''; + return useQuery({ queryKey: QUERY_KEY.WORKBOOK_ID(workbookId), queryFn: () => getWorkbookById(workbookId), enabled, + select: (data) => { + const categoryName = findCategoryName(data.categoryId); + return { + ...data, + categoryName, + }; + }, }); }; diff --git a/src/types/workbook.ts b/src/types/workbook.ts index 507f07d3..7bbf2b7d 100644 --- a/src/types/workbook.ts +++ b/src/types/workbook.ts @@ -53,3 +53,15 @@ export type WorkbookPatchReqDto = Pick< WorkbookEntity, 'workbookId' | 'title' | 'content' | 'categoryId' | 'isPublic' >; + +export type WorkbookPatchResDto = Pick< + WorkbookEntity, + | 'workbookId' + | 'title' + | 'content' + | 'categoryId' + | 'isPublic' + | 'nickname' + | 'profileImg' + | 'copyCount' +>; From 214bd1c7bb273d60fa2e0e14e388ea8c6e474038 Mon Sep 17 00:00:00 2001 From: Sumin <57657868+milk717@users.noreply.github.com> Date: Sat, 24 Feb 2024 11:26:29 +0900 Subject: [PATCH 02/14] =?UTF-8?q?[NDD-413]=20=EB=B9=8C=EB=93=9C=EC=8B=9C?= =?UTF-8?q?=20=ED=83=80=EC=9E=85=20=EA=B2=80=EC=82=AC=20=EC=B6=94=EA=B0=80?= =?UTF-8?q?=ED=95=98=EA=B8=B0,=20=EB=8F=99=EC=A0=81=20import=EC=97=90=20?= =?UTF-8?q?=EB=8C=80=ED=95=9C=20=ED=83=80=EC=9E=85=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=ED=95=B4=EA=B2=B0=ED=95=98=EA=B8=B0=20(1.5h/2h)=20(#27)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix: VideoPlayerFrame에 props 불일치로 발생한 타입 에러 해결 * rename: 폴더명 컨벤션 맞지 않는 것 수정 * chore: 프로덕션 빌드시 production 모드 설정 * fix: 동적 import를 수행하는 유틸함수를 추가해서 타입 문제 해결 --- package.json | 2 +- src/AppRouter.tsx | 6 ++--- .../LinkOnlyVideoPageLayout.tsx | 0 .../LinkOnlyVideoPlayer.tsx | 2 ++ .../index.ts | 0 .../AddWorkbookListModal.tsx | 0 .../NewWorkbookListButton.tsx | 0 .../StartWithSelectedQuestionModal.tsx | 0 .../WorkbookDetailPageLayout.tsx | 0 .../index.ts | 0 .../{LandingPage => landingPage}/index.tsx | 0 .../index.tsx | 2 +- .../index.tsx | 4 +-- src/utils/dynamicImport.ts | 9 +++++++ src/utils/redirectToGoogleLogin.ts | 26 ++++++++++++------- tsconfig.json | 1 + 16 files changed, 36 insertions(+), 16 deletions(-) rename src/components/{LinkOnlyVideoPage => linkOnlyVideoPage}/LinkOnlyVideoPageLayout.tsx (100%) rename src/components/{LinkOnlyVideoPage => linkOnlyVideoPage}/LinkOnlyVideoPlayer.tsx (92%) rename src/components/{LinkOnlyVideoPage => linkOnlyVideoPage}/index.ts (100%) rename src/components/{WorkbookDetailPage => workbookDetailPage}/AddWorkbookListModal.tsx (100%) rename src/components/{WorkbookDetailPage => workbookDetailPage}/NewWorkbookListButton.tsx (100%) rename src/components/{WorkbookDetailPage => workbookDetailPage}/StartWithSelectedQuestionModal.tsx (100%) rename src/components/{WorkbookDetailPage => workbookDetailPage}/WorkbookDetailPageLayout.tsx (100%) rename src/components/{WorkbookDetailPage => workbookDetailPage}/index.ts (100%) rename src/page/{LandingPage => landingPage}/index.tsx (100%) rename src/page/{LinkOnlyVideoPage => linkOnlyVideoPage}/index.tsx (97%) rename src/page/{WorkbookDetailPage => workbookDetailPage}/index.tsx (99%) create mode 100644 src/utils/dynamicImport.ts diff --git a/package.json b/package.json index e1b623f7..081d8a82 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,7 @@ "scripts": { "dev": "vite --mode development", "local": "vite --mode localhost", - "build": "vite build", + "build": "tsc && vite build --mode production", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", "preview": "vite preview", "setup": "git config core.hooksPath ./.githooks && chmod +x ./.githooks/pre-commit" diff --git a/src/AppRouter.tsx b/src/AppRouter.tsx index f3099521..28c3dbd1 100644 --- a/src/AppRouter.tsx +++ b/src/AppRouter.tsx @@ -1,4 +1,4 @@ -import LandingPage from '@/page/LandingPage'; +import LandingPage from '@page/landingPage'; import InterviewSettingPage from '@page/interviewSettingPage'; import InterviewPage from '@page/interviewPage'; import MyPage from './page/myPage'; @@ -7,10 +7,10 @@ import { PATH } from '@constants/path'; import { QueryClient } from '@tanstack/react-query'; import { createBrowserRouter, Outlet, RouterProvider } from 'react-router-dom'; import myPageLoader from '@routes/myPageLoader'; -import LinkOnlyVideoPage from '@page/LinkOnlyVideoPage'; +import LinkOnlyVideoPage from '@page/linkOnlyVideoPage'; import InterviewVideoPublicLoader from '@routes/interviewVideoPublicLoader'; import rootLoader from '@routes/rootLoader'; -import WorkbookDetailPage from '@page/WorkbookDetailPage'; +import WorkbookDetailPage from '@page/workbookDetailPage'; import LoaderErrorPage from '@page/errorPage/Loader'; import interviewWorkbookDetailLoader from '@routes/interviewWorkbookDetailLoader'; import InterviewVideoListPage from '@page/InterviewVideoListPage'; diff --git a/src/components/LinkOnlyVideoPage/LinkOnlyVideoPageLayout.tsx b/src/components/linkOnlyVideoPage/LinkOnlyVideoPageLayout.tsx similarity index 100% rename from src/components/LinkOnlyVideoPage/LinkOnlyVideoPageLayout.tsx rename to src/components/linkOnlyVideoPage/LinkOnlyVideoPageLayout.tsx diff --git a/src/components/LinkOnlyVideoPage/LinkOnlyVideoPlayer.tsx b/src/components/linkOnlyVideoPage/LinkOnlyVideoPlayer.tsx similarity index 92% rename from src/components/LinkOnlyVideoPage/LinkOnlyVideoPlayer.tsx rename to src/components/linkOnlyVideoPage/LinkOnlyVideoPlayer.tsx index c8654910..5afe53f6 100644 --- a/src/components/LinkOnlyVideoPage/LinkOnlyVideoPlayer.tsx +++ b/src/components/linkOnlyVideoPage/LinkOnlyVideoPlayer.tsx @@ -8,6 +8,7 @@ const LinkOnlyVideoPlayer: React.FC = ({ videoName, createdAt, nickname, + videoAnswer, }) => { return ( = ({ videoName={videoName} createdAt={createdAt} nickname={nickname} + videoAnswer={videoAnswer} > diff --git a/src/components/LinkOnlyVideoPage/index.ts b/src/components/linkOnlyVideoPage/index.ts similarity index 100% rename from src/components/LinkOnlyVideoPage/index.ts rename to src/components/linkOnlyVideoPage/index.ts diff --git a/src/components/WorkbookDetailPage/AddWorkbookListModal.tsx b/src/components/workbookDetailPage/AddWorkbookListModal.tsx similarity index 100% rename from src/components/WorkbookDetailPage/AddWorkbookListModal.tsx rename to src/components/workbookDetailPage/AddWorkbookListModal.tsx diff --git a/src/components/WorkbookDetailPage/NewWorkbookListButton.tsx b/src/components/workbookDetailPage/NewWorkbookListButton.tsx similarity index 100% rename from src/components/WorkbookDetailPage/NewWorkbookListButton.tsx rename to src/components/workbookDetailPage/NewWorkbookListButton.tsx diff --git a/src/components/WorkbookDetailPage/StartWithSelectedQuestionModal.tsx b/src/components/workbookDetailPage/StartWithSelectedQuestionModal.tsx similarity index 100% rename from src/components/WorkbookDetailPage/StartWithSelectedQuestionModal.tsx rename to src/components/workbookDetailPage/StartWithSelectedQuestionModal.tsx diff --git a/src/components/WorkbookDetailPage/WorkbookDetailPageLayout.tsx b/src/components/workbookDetailPage/WorkbookDetailPageLayout.tsx similarity index 100% rename from src/components/WorkbookDetailPage/WorkbookDetailPageLayout.tsx rename to src/components/workbookDetailPage/WorkbookDetailPageLayout.tsx diff --git a/src/components/WorkbookDetailPage/index.ts b/src/components/workbookDetailPage/index.ts similarity index 100% rename from src/components/WorkbookDetailPage/index.ts rename to src/components/workbookDetailPage/index.ts diff --git a/src/page/LandingPage/index.tsx b/src/page/landingPage/index.tsx similarity index 100% rename from src/page/LandingPage/index.tsx rename to src/page/landingPage/index.tsx diff --git a/src/page/LinkOnlyVideoPage/index.tsx b/src/page/linkOnlyVideoPage/index.tsx similarity index 97% rename from src/page/LinkOnlyVideoPage/index.tsx rename to src/page/linkOnlyVideoPage/index.tsx index 74100a91..0db47cac 100644 --- a/src/page/LinkOnlyVideoPage/index.tsx +++ b/src/page/linkOnlyVideoPage/index.tsx @@ -6,7 +6,7 @@ import { VideoItemResDto } from '@/types/video'; import { LinkOnlyVideoPageLayout, LinkOnlyVideoPlayer, -} from '@components/LinkOnlyVideoPage'; +} from '@components/linkOnlyVideoPage'; import useOnlyRelatedVideoQuery from '@hooks/apis/queries/useOnlyRelatedVideoListQuery'; import { Box, Typography } from '@foundation/index'; import { css } from '@emotion/react'; diff --git a/src/page/WorkbookDetailPage/index.tsx b/src/page/workbookDetailPage/index.tsx similarity index 99% rename from src/page/WorkbookDetailPage/index.tsx rename to src/page/workbookDetailPage/index.tsx index 62277f63..d21f19d6 100644 --- a/src/page/WorkbookDetailPage/index.tsx +++ b/src/page/workbookDetailPage/index.tsx @@ -3,9 +3,9 @@ import QuestionAccordion from '@common/QuestionAccordion/QuestionAccordion'; import { WorkbookCard } from '@common/index'; import { AddWorkbookListModal, - WorkbookDetailPageLayout, StartWithSelectedQuestionModal, -} from '@components/WorkbookDetailPage'; + WorkbookDetailPageLayout, +} from '@components/workbookDetailPage'; import { css } from '@emotion/react'; import { Box, Button, CheckBox } from '@foundation/index'; import useQuestionWorkbookQuery from '@hooks/apis/queries/useQuestionWorkbookQuery'; diff --git a/src/utils/dynamicImport.ts b/src/utils/dynamicImport.ts new file mode 100644 index 00000000..ba4f92c6 --- /dev/null +++ b/src/utils/dynamicImport.ts @@ -0,0 +1,9 @@ +const dynamicImport = (path: string): Promise | undefined => { + try { + return import(path) as Promise; + } catch (error) { + console.error(`${path} 모듈을 로드할 수 없습니다.\n`, error); + } +}; + +export default dynamicImport; diff --git a/src/utils/redirectToGoogleLogin.ts b/src/utils/redirectToGoogleLogin.ts index cffe6138..deb1f460 100644 --- a/src/utils/redirectToGoogleLogin.ts +++ b/src/utils/redirectToGoogleLogin.ts @@ -1,20 +1,28 @@ import { API, BASE_URL } from '@constants/api'; import { PATH } from '@constants/path'; import { toast } from '@foundation/Toast/toast'; +import dynamicImport from '@/utils/dynamicImport'; const redirectToGoogleLogin = async () => { - if (import.meta.env.MODE === 'development') { - const { cookieGenerator } = await import('@/dev/cookieGenerator'); - void (await cookieGenerator()); - toast.success('개발 모드에서 로그인 되었습니다.', { - position: 'bottomRight', - }); - - window.location.href = `${window.location.origin}${PATH.MYPAGE}`; // dev 모드에서만 사용 + if (import.meta.env.MODE === 'production') { + window.location.href = `${BASE_URL}${API.LOGIN}`; return; } - window.location.href = `${BASE_URL}${API.LOGIN}`; + const cookieGeneratorModule = await dynamicImport<{ + cookieGenerator: () => Promise; + }>('@/dev/cookieGenerator'); + + if (!cookieGeneratorModule) return; + + const { cookieGenerator } = cookieGeneratorModule; + void (await cookieGenerator()); + + toast.success('개발 모드에서 로그인 되었습니다.', { + position: 'bottomRight', + }); + + window.location.href = `${window.location.origin}${PATH.MYPAGE}`; // dev 모드에서만 사용 }; export default redirectToGoogleLogin; diff --git a/tsconfig.json b/tsconfig.json index 871b2212..ba4a1309 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -11,6 +11,7 @@ "noImplicitAny": true, "baseUrl": ".", "skipLibCheck": true, + "noEmit": true, "paths": { "@common/*": ["./src/components/common/*"], "@foundation/*": ["./src/components/foundation/*"], From 02c9771b717a8e3c5670f13e2e9817d4fca9cfec Mon Sep 17 00:00:00 2001 From: Sumin <57657868+milk717@users.noreply.github.com> Date: Sat, 24 Feb 2024 12:29:28 +0900 Subject: [PATCH 03/14] =?UTF-8?q?[NDD-389]=20=EC=9D=B4=EB=AF=B8=EC=A7=80?= =?UTF-8?q?=20=EC=B5=9C=EC=A0=81=ED=99=94=ED=95=98=EA=B8=B0=20(feat.=20?= =?UTF-8?q?=EA=B9=80=20=EA=B1=B0=EC=A7=93=EB=A7=90=EC=9F=81=EC=9D=B4=20?= =?UTF-8?q?=EB=93=B1=EC=9E=A5=EC=9D=B4=EC=9A=94~)=20(2h/3h)=20(#29)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat: vite-plugin-image-optimizer 추가 * feat: 이미지태그 고정 크기 설정해서 레이아웃 시프트 방지 * refactor: 이미지 png -> webp로 교체 * chore: 이미지 압축률 수정 * feat: 랜딩페이지 srcSet 추가 * feat: 카카오 브라우저 곰돌이도 srcSet 추가 * fix: 리베이스 후 경로 오류 해결 --- package-lock.json | 600 +++++++++++++++++- package.json | 4 +- src/KakaoInAppBrowserDetect.tsx | 19 +- src/assets/images/blank-bear.png | Bin 778806 -> 0 bytes src/assets/images/blank-bear.webp | Bin 0 -> 68176 bytes src/assets/images/error-bear.png | Bin 766972 -> 0 bytes src/assets/images/error-bear.webp | Bin 0 -> 67406 bytes src/assets/images/landing-bear.png | Bin 927249 -> 0 bytes .../images/landing-bear/landing-bear.webp | Bin 0 -> 66380 bytes .../landing-bear_g8bwr9_c_scale,w_1080.webp | Bin 0 -> 76916 bytes .../landing-bear_g8bwr9_c_scale,w_480.webp | Bin 0 -> 20340 bytes .../landing-bear_g8bwr9_c_scale,w_734.webp | Bin 0 -> 40432 bytes .../landing-bear_g8bwr9_c_scale,w_980.webp | Bin 0 -> 59200 bytes src/assets/images/logo.png | Bin 359260 -> 0 bytes src/assets/images/logo.webp | Bin 0 -> 18888 bytes .../common/Loading/LoadingBounce.tsx | 2 +- .../QuestionTabPanelBlank.tsx | 0 .../QuestionTabPanelBlank.tsx | 2 +- src/components/common/Thumbnail/Thumbnail.tsx | 3 +- src/components/common/VideoList/VideoList.tsx | 2 +- src/components/foundation/Avatar/Avatar.tsx | 2 +- src/components/landingPage/LandingImage.tsx | 11 +- src/components/layout/Header/Logo.tsx | 5 +- src/page/errorPage/Loader.tsx | 2 +- src/page/errorPage/SomethingWrong.tsx | 7 +- vite.config.ts | 12 +- 26 files changed, 652 insertions(+), 19 deletions(-) delete mode 100644 src/assets/images/blank-bear.png create mode 100644 src/assets/images/blank-bear.webp delete mode 100644 src/assets/images/error-bear.png create mode 100644 src/assets/images/error-bear.webp delete mode 100644 src/assets/images/landing-bear.png create mode 100644 src/assets/images/landing-bear/landing-bear.webp create mode 100644 src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_1080.webp create mode 100644 src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_480.webp create mode 100644 src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_734.webp create mode 100644 src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_980.webp delete mode 100644 src/assets/images/logo.png create mode 100644 src/assets/images/logo.webp create mode 100644 src/components/common/QuestionSelectionBox/QuestionTabPanelBlank.tsx diff --git a/package-lock.json b/package-lock.json index d9c36006..e2f6932d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -46,8 +46,10 @@ "lint-staged": "^15.2.0", "msw": "^2.0.3", "prettier": "^3.0.3", + "sharp": "^0.33.2", "typescript": "^5.3.3", - "vite": "^5.0.8" + "vite": "^5.0.8", + "vite-plugin-image-optimizer": "^1.1.7" } }, "node_modules/@aashutoshrathi/word-wrap": { @@ -455,6 +457,16 @@ "statuses": "^2.0.1" } }, + "node_modules/@emnapi/runtime": { + "version": "0.45.0", + "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-0.45.0.tgz", + "integrity": "sha512-Txumi3td7J4A/xTTwlssKieHKTGl3j4A1tglBx72auZ49YK7ePY6XZricgIg9mnZT4xPfA+UPCUdnhRuEFDL+w==", + "dev": true, + "optional": true, + "dependencies": { + "tslib": "^2.4.0" + } + }, "node_modules/@emotion/babel-plugin": { "version": "11.11.0", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.11.0.tgz", @@ -1176,6 +1188,456 @@ "integrity": "sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw==", "dev": true }, + "node_modules/@img/sharp-darwin-arm64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-arm64/-/sharp-darwin-arm64-0.33.2.tgz", + "integrity": "sha512-itHBs1rPmsmGF9p4qRe++CzCgd+kFYktnsoR1sbIAfsRMrJZau0Tt1AH9KVnufc2/tU02Gf6Ibujx+15qRE03w==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-arm64": "1.0.1" + } + }, + "node_modules/@img/sharp-darwin-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-darwin-x64/-/sharp-darwin-x64-0.33.2.tgz", + "integrity": "sha512-/rK/69Rrp9x5kaWBjVN07KixZanRr+W1OiyKdXcbjQD6KbW+obaTeBBtLUAtbBsnlTTmWthw99xqoOS7SsySDg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-darwin-x64": "1.0.1" + } + }, + "node_modules/@img/sharp-libvips-darwin-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-arm64/-/sharp-libvips-darwin-arm64-1.0.1.tgz", + "integrity": "sha512-kQyrSNd6lmBV7O0BUiyu/OEw9yeNGFbQhbxswS1i6rMDwBBSX+e+rPzu3S+MwAiGU3HdLze3PanQ4Xkfemgzcw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "macos": ">=11", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-darwin-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-darwin-x64/-/sharp-libvips-darwin-x64-1.0.1.tgz", + "integrity": "sha512-eVU/JYLPVjhhrd8Tk6gosl5pVlvsqiFlt50wotCvdkFGf+mDNBJxMh+bvav+Wt3EBnNZWq8Sp2I7XfSjm8siog==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "macos": ">=10.13", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm/-/sharp-libvips-linux-arm-1.0.1.tgz", + "integrity": "sha512-FtdMvR4R99FTsD53IA3LxYGghQ82t3yt0ZQ93WMZ2xV3dqrb0E8zq4VHaTOuLEAuA83oDawHV3fd+BsAPadHIQ==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-arm64/-/sharp-libvips-linux-arm64-1.0.1.tgz", + "integrity": "sha512-bnGG+MJjdX70mAQcSLxgeJco11G+MxTz+ebxlz8Y3dxyeb3Nkl7LgLI0mXupoO+u1wRNx/iRj5yHtzA4sde1yA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-s390x": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-s390x/-/sharp-libvips-linux-s390x-1.0.1.tgz", + "integrity": "sha512-3+rzfAR1YpMOeA2zZNp+aYEzGNWK4zF3+sdMxuCS3ey9HhDbJ66w6hDSHDMoap32DueFwhhs3vwooAB2MaK4XQ==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linux-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linux-x64/-/sharp-libvips-linux-x64-1.0.1.tgz", + "integrity": "sha512-3NR1mxFsaSgMMzz1bAnnKbSAI+lHXVTqAHgc1bgzjHuXjo4hlscpUxc0vFSAPKI3yuzdzcZOkq7nDPrP2F8Jgw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-arm64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-arm64/-/sharp-libvips-linuxmusl-arm64-1.0.1.tgz", + "integrity": "sha512-5aBRcjHDG/T6jwC3Edl3lP8nl9U2Yo8+oTl5drd1dh9Z1EBfzUKAJFUDTDisDjUwc7N4AjnPGfCA3jl3hY8uDg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-libvips-linuxmusl-x64": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@img/sharp-libvips-linuxmusl-x64/-/sharp-libvips-linuxmusl-x64-1.0.1.tgz", + "integrity": "sha512-dcT7inI9DBFK6ovfeWRe3hG30h51cBAP5JXlZfx6pzc/Mnf9HFCQDLtYf4MCBjxaaTfjCCjkBxcy3XzOAo5txw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-linux-arm": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm/-/sharp-linux-arm-0.33.2.tgz", + "integrity": "sha512-Fndk/4Zq3vAc4G/qyfXASbS3HBZbKrlnKZLEJzPLrXoJuipFNNwTes71+Ki1hwYW5lch26niRYoZFAtZVf3EGA==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm": "1.0.1" + } + }, + "node_modules/@img/sharp-linux-arm64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-arm64/-/sharp-linux-arm64-0.33.2.tgz", + "integrity": "sha512-pz0NNo882vVfqJ0yNInuG9YH71smP4gRSdeL09ukC2YLE6ZyZePAlWKEHgAzJGTiOh8Qkaov6mMIMlEhmLdKew==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-arm64": "1.0.1" + } + }, + "node_modules/@img/sharp-linux-s390x": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-s390x/-/sharp-linux-s390x-0.33.2.tgz", + "integrity": "sha512-MBoInDXDppMfhSzbMmOQtGfloVAflS2rP1qPcUIiITMi36Mm5YR7r0ASND99razjQUpHTzjrU1flO76hKvP5RA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.28", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-s390x": "1.0.1" + } + }, + "node_modules/@img/sharp-linux-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linux-x64/-/sharp-linux-x64-0.33.2.tgz", + "integrity": "sha512-xUT82H5IbXewKkeF5aiooajoO1tQV4PnKfS/OZtb5DDdxS/FCI/uXTVZ35GQ97RZXsycojz/AJ0asoz6p2/H/A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "glibc": ">=2.26", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linux-x64": "1.0.1" + } + }, + "node_modules/@img/sharp-linuxmusl-arm64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-arm64/-/sharp-linuxmusl-arm64-0.33.2.tgz", + "integrity": "sha512-F+0z8JCu/UnMzg8IYW1TMeiViIWBVg7IWP6nE0p5S5EPQxlLd76c8jYemG21X99UzFwgkRo5yz2DS+zbrnxZeA==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-arm64": "1.0.1" + } + }, + "node_modules/@img/sharp-linuxmusl-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-linuxmusl-x64/-/sharp-linuxmusl-x64-0.33.2.tgz", + "integrity": "sha512-+ZLE3SQmSL+Fn1gmSaM8uFusW5Y3J9VOf+wMGNnTtJUMUxFhv+P4UPaYEYT8tqnyYVaOVGgMN/zsOxn9pSsO2A==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "musl": ">=1.2.2", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-libvips-linuxmusl-x64": "1.0.1" + } + }, + "node_modules/@img/sharp-wasm32": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-wasm32/-/sharp-wasm32-0.33.2.tgz", + "integrity": "sha512-fLbTaESVKuQcpm8ffgBD7jLb/CQLcATju/jxtTXR1XCLwbOQt+OL5zPHSDMmp2JZIeq82e18yE0Vv7zh6+6BfQ==", + "cpu": [ + "wasm32" + ], + "dev": true, + "optional": true, + "dependencies": { + "@emnapi/runtime": "^0.45.0" + }, + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-ia32": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-ia32/-/sharp-win32-ia32-0.33.2.tgz", + "integrity": "sha512-okBpql96hIGuZ4lN3+nsAjGeggxKm7hIRu9zyec0lnfB8E7Z6p95BuRZzDDXZOl2e8UmR4RhYt631i7mfmKU8g==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, + "node_modules/@img/sharp-win32-x64": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/@img/sharp-win32-x64/-/sharp-win32-x64-0.33.2.tgz", + "integrity": "sha512-E4magOks77DK47FwHUIGH0RYWSgRBfGdK56kIHSVeB9uIS4pPFr4N2kIVsXdQQo4LzOsENKV5KAhRlRL7eMAdg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": "^18.17.0 || ^20.3.0 || >=21.0.0", + "npm": ">=9.6.5", + "pnpm": ">=7.1.0", + "yarn": ">=3.2.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + } + }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz", @@ -2020,6 +2482,15 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-colors": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.3.tgz", + "integrity": "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/ansi-escapes": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", @@ -2620,6 +3091,19 @@ "node": ">=0.8" } }, + "node_modules/color": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/color/-/color-4.2.3.tgz", + "integrity": "sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1", + "color-string": "^1.9.0" + }, + "engines": { + "node": ">=12.5.0" + } + }, "node_modules/color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", @@ -2633,6 +3117,34 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" }, + "node_modules/color-string": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz", + "integrity": "sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/color/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "node_modules/colorette": { "version": "2.0.20", "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz", @@ -2805,6 +3317,15 @@ "node": ">=0.4.0" } }, + "node_modules/detect-libc": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.2.tgz", + "integrity": "sha512-UX6sGumvvqSaXgdKGUsgZWqcUyIXZ/vZTrlRT/iobiKhGL0zL4d3osHj3uqllWJK+i+sixDS/3COVEOFbupFyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -5908,6 +6429,12 @@ "node": ">=8" } }, + "node_modules/pathe": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz", + "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==", + "dev": true + }, "node_modules/picocolors": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", @@ -6648,6 +7175,46 @@ "node": ">= 0.4" } }, + "node_modules/sharp": { + "version": "0.33.2", + "resolved": "https://registry.npmjs.org/sharp/-/sharp-0.33.2.tgz", + "integrity": "sha512-WlYOPyyPDiiM07j/UO+E720ju6gtNtHjEGg5vovUk1Lgxyjm2LFO+37Nt/UI3MMh2l6hxTWQWi7qk3cXJTutcQ==", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "color": "^4.2.3", + "detect-libc": "^2.0.2", + "semver": "^7.5.4" + }, + "engines": { + "libvips": ">=8.15.1", + "node": "^18.17.0 || ^20.3.0 || >=21.0.0" + }, + "funding": { + "url": "https://opencollective.com/libvips" + }, + "optionalDependencies": { + "@img/sharp-darwin-arm64": "0.33.2", + "@img/sharp-darwin-x64": "0.33.2", + "@img/sharp-libvips-darwin-arm64": "1.0.1", + "@img/sharp-libvips-darwin-x64": "1.0.1", + "@img/sharp-libvips-linux-arm": "1.0.1", + "@img/sharp-libvips-linux-arm64": "1.0.1", + "@img/sharp-libvips-linux-s390x": "1.0.1", + "@img/sharp-libvips-linux-x64": "1.0.1", + "@img/sharp-libvips-linuxmusl-arm64": "1.0.1", + "@img/sharp-libvips-linuxmusl-x64": "1.0.1", + "@img/sharp-linux-arm": "0.33.2", + "@img/sharp-linux-arm64": "0.33.2", + "@img/sharp-linux-s390x": "0.33.2", + "@img/sharp-linux-x64": "0.33.2", + "@img/sharp-linuxmusl-arm64": "0.33.2", + "@img/sharp-linuxmusl-x64": "0.33.2", + "@img/sharp-wasm32": "0.33.2", + "@img/sharp-win32-ia32": "0.33.2", + "@img/sharp-win32-x64": "0.33.2" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -6695,6 +7262,21 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", + "integrity": "sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", + "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "dev": true + }, "node_modules/slash": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", @@ -7268,6 +7850,22 @@ } } }, + "node_modules/vite-plugin-image-optimizer": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/vite-plugin-image-optimizer/-/vite-plugin-image-optimizer-1.1.7.tgz", + "integrity": "sha512-KPJWndwqVi7Z2hYCudzKeNDw5U7w1DxAc266bqDBKV8taG8W3EtripFuUM4Y05IlFC19yBQndJCFA8+NJymH+w==", + "dev": true, + "dependencies": { + "ansi-colors": "^4.1.3", + "pathe": "^1.1.1" + }, + "engines": { + "node": ">=14" + }, + "peerDependencies": { + "vite": ">=3" + } + }, "node_modules/wcwidth": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", diff --git a/package.json b/package.json index 081d8a82..d93fdd80 100644 --- a/package.json +++ b/package.json @@ -50,8 +50,10 @@ "lint-staged": "^15.2.0", "msw": "^2.0.3", "prettier": "^3.0.3", + "sharp": "^0.33.2", "typescript": "^5.3.3", - "vite": "^5.0.8" + "vite": "^5.0.8", + "vite-plugin-image-optimizer": "^1.1.7" }, "msw": { "workerDirectory": "public" diff --git a/src/KakaoInAppBrowserDetect.tsx b/src/KakaoInAppBrowserDetect.tsx index 64e7d047..7979efa4 100644 --- a/src/KakaoInAppBrowserDetect.tsx +++ b/src/KakaoInAppBrowserDetect.tsx @@ -1,9 +1,12 @@ -import { PropsWithChildren } from 'react'; +import { PropsWithChildren, useEffect } from 'react'; import useKakaoInAppBrowserDetect from '@hooks/useKakaoInAppBrowserDetect'; -import { useEffect } from 'react'; import { Button, Typography } from '@foundation/index'; import { css } from '@emotion/react'; -import LandingBear from '@assets/images/landing-bear.png'; +import LandingBear from '@assets/images/landing-bear/landing-bear.webp'; +import LandingBear480 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_480.webp'; +import LandingBear734 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_734.webp'; +import LandingBear980 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_980.webp'; +import LandingBear1080 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_1080.webp'; const KakaoInAppBrowserDetect: React.FC = ({ children }) => { const { isKakaoInAppBrowser, moveOtherBrowser } = @@ -24,11 +27,17 @@ const KakaoInAppBrowserDetect: React.FC = ({ children }) => { `} > {'노트북을
_wVeoz=FgAOG%e>i_$FJwTJ?O(kUI%EG69_-60|=-JQ}PDIp;!ARr(O zcm3RZKi^;OA8_}@%p7LtnP<+-^PKZO?{j7&v@{g)aUbFW0D!NoB!>h5a4rB~ltQu4 zds5ePKLP+q+Cop+Qe7S3K<|PASRep^pe6JMy#oD@9A@)h*%n0nUl{-i0ATc?aP;y# zoaMj!m;SXE;1duOovl|2p`8_Q1&}BFe`H{GScFEjECOJ`@AJTmUrxIoAWUZm@st(H}hY z@=sfq|Ffn0xBZ_h|92Put0IUS{pJ6&)4iR_;(rZYk%}@vs@>^i=h2_9FjTmEKKiSJSHUA&1 z0N9jc!2Epmf@u`@U!BL7Mz6cjQo}-{z1%4_;IANeKls*<``;c@DIt=zGfXbD6y-Og zAQyl~d*}h+0(Jl?fW2N1+X(O-?C9hSxp>`~^1$eya@RNuU`cYco^*9YQ*>Z9(0&N) z{vz;D1IPkR0u9DT`hiSR1PH=)FL0jRY1PJCJ3t5^qz9VfmT>_j^jK4Bed&&(i!J2B zhtT(Y8Hk2$*$F+DEHqrp7(_BYIfySVH$%F(BnAM za9>Pgy0s5l&A=oejI9;jO&I#j2Y4zI-l-`UK!8=uLLpb?w|4fa?1?cw?q0T_3JGd& zuXXwF#wnNIiy%;0`1}U24~hoGCwA`ykXBv42J;+hW;8G zFZbPYp{#I#fz9lJ6L#v6LR)}06n4M7-+Zgem#4AW4534?~|6 zT73+$$8V_>q6h7|#?|`lX~ln|pUE;AX!bRz(FzrqfN_M|r9;R;+DF!9$F~4Cj@QG^ zOF$jNm2fE`#yGo>b2@%+)(6F;K#kqG$x697fP(|tlb|eyBJOX_J{=uzn_-{~k5p8P zfi6rsfZvu~0#&_dP`>vFxL`psX4B#ALr}|}gdYGN^mH@?5<>DkU(2`o6CI{(w7*-8 zb+?EVb@*TvrwnGpaN?w_HUQ=U|5%(G6+R~o6td4X=J)Y13i;FwMxsLcG2Sd5FcrsCR?t;xH^0|n z0}p{TE}!_#6MSm10W0|&Zr?hv(q-qcvortxeYm^7RaZS;fm^`>L~n){%z=TTDk*PT=6Mlh8T_pfYJ;?d8* zT_seCv+~;D$vH8zWQBQmy|4IKRugE=iemTYFG`f?wY^QLOGDxT zndP_JEoC&oPGB5d>&yY3!m}P;L?)w8hlQ9`!1q2XW=fn=?=fW;$A-yt1iW4l9R~5XO4km0>VL)U}B*D zw%WGLC3FZYP}U5XJY33|Q!fUF0BezhD1JaihD|bz4paqfgQN^tRV(UYFk&bq9_+gl zZp%F_@|#FD^!Q##IAlI(alZU1+Sn1+mwpuoh4s#-1y*$H8`@ryJt&$-D$o579CQ&8;N9jDV6JssaP zE}VZMJG$gvREyIOsy8P7Rs%;>+l9HTB!9p98(a58SpR7^CIz=X)sq%_T<+Q#5F*&U z;IRST69hX>H;M!p0x?#*$`ECz0M_&fTqucOa}+rv=%IKXJP+j4x_4`7Edxrxv!u$ zR<`~Z-^CLOQAkb@YH7+;mjcM+hZVt#KzMV7k0ZPN5#eDj?e3KV20^SJU#dyX5RfEQ zbd&rbspe^j&RxS`3xx&T+Xc`^`SHHt`EZG{zX!f);FUnyfH|QDIGzNP&Y?JT#wl`i zjjgfQy6X+X17>V$#$Q1fXHSjPO>20q&?Y=1Cfr|)Klo!ZZj(+qXqHFoV=)_uf;>+K zDo{hrgG{rRde_?evZbx<8BB&_*t7~RdOCFg1-ayeB!X3dSb!VVjbX5TLFWY?S>%;? z`)s(|)LZk|&l;ON18H^yRRL$nUeb=Httw(SVIC2G`)TuYSIQwOLb~f2CyDWj6AnS~ zQ-BSSY^X`DXvd{zVwl~{;;4H+)g4Z$!w!XDg5nx6Ivu?yBmKAwIk0+|A+LY=9JJCt z!$iS!{`}l^?ZdHI-_cmbPFDGR-k@zukLp6efgx;0CQRzUBA~z58~Y;dv2k~ofI1u8 z^BdLX+n@Zg$0zrAw2CT#eMX&v<&C7}!u_X9y+87ZG1Ije7CuT&^&7DxM>XSg^*=-r zP6_M2m>>rdi*IumO7T#HXY5kMYKs5ZITFq1#rHa z7p1j|UOrV_zWR&4RMr4E8D)+TN=MPjAP)=ncV)8TmkXxx*O4TAN@y@bUr^f(oz*%;*M6OrNK>EIG&t?+e0^>|uhUCAy7+Gw+lT~%to zOG!xjBTF3A6gD!~H1@aUVdwhKwSb&OJ5g`HHuIIN_UuD)kPv_fvPv2EVPo0kN^N|^ z2qRKvCo0)0eN0f~+(S6Nh_w58DM(b`WJdko7wFkvs^kZSzCdFgRk;9&gBf=TvDS)5d&q@j$1KLneX3feYNb9GD`P1qP+oYYT;Src#3NKXvlULr_?L)cekR9VGg+Z; zULj|2+

ia%e)Ui1n2+6%9(;#pjQ)RLZaGlHco~I*>I>=aXY^tRw$m*hc4l2JO75 z;LEO^7j=4l-ZOC?x}=tv2)9B(_wJ0_Cc`EqKU+uV0#I4VhNgDvzYw6wvszN-kRKW8xDFbTz@)vO-~)+QCIX(v zmg&6456KA1pWbYTv`f?(ijww#jU9E4&{ zlF)PUA;Cm5loCW6j+s@jrPAv|SaEsZaNz9!xnPO}mxa$8j2XmF+`F4LmUf9-42KJ= zt+{iTm4zg7yj8+k&9VeeFZij&6L+Jz26c6;B?Bjc9Qjwgff^yZGlf!gdWZ%Q$Z`mn6VFoR33CFo;*hx z?qP(@!2IMB?p$!1ExqTVNp$Rf|7=A?t+k2|@T;5S^n_F6k|?KoIYsaCA%BKK zgh^bo>$7?BpTu=YRfjFaHn%@OjHCWg(f?&=`MX!`=o;@g-^^%ssc{s6-67Qw){*MP zmf4_;2j{GjAdb?Fo8utgVI9kF7TpE#}Nm#N_OhJWVb!($4EE>ZBL*{cZe zXz614Ip!z#@I~_}$lArgnxbMhp$w2;EnT;_1S;&a?lC6&450|!lGT?(^>P@)U3nw@ZhVPzt8_xv2=(7nwnVI%AliUH0 zEN@3|Fa;Proo_)Hoy|0IM)3G`LzLINt6zNL-8xg}Hh#$yemg41HjVLn&n)2_wW80OwKGM>OsK&) zvU2u&x{eEbuD=#s@3F-((GYySMvf#{Ls@4QL)g}G(4IvMD}&h>#|`-gAF1NGLqtxA z!HdhE9caBo2K4RkyB-K>qY{Xp95pDoxERg3PsCya0vvuJX+*Dy zUQYjrKBK2qVj+t@Ts3JHUllhsuAwmasmoYiFuvO{G%;!V`Bj zBeprhKK|C}H`DPWoZkU+B1M;`N1!DNdKjb+gu1q@%RFoeZd|_R*_PE?uIkwz56Er2 z#TzvK(}V|){p$zy?XX~^;$sp14YcWvJn^d~v#=yLew}vu{gE8Eu;r#)#`#e2ZQLC; z?Hgf+i>!5WaA3G`v^11<6+6HFT|JorCzL@Nj*#=p#Sl?~6yRi)9L(4;tiGx@mE4U; zvtz?#UHrW~=a?}t+}o`C^m=d8s*0Tc${+1MG019td9%+yj5n8XeCZ=#DEfQJ=gJgr zy8X9s{0EaUGb0=O)R{yyKTM{}3)>#gqm}0Qo=_H{^)K+m>$ZWPKiOLqH*pyH zg!51^;yL}C{eJU@6^|Wd!GF5aX;!i1*W7O|!-85inK_Pg+GE)VHVjg~Oc`Bs%@0v^xilOI$JYj^Rbb(-$_etdKam zMF{Z6ZL+N=I)Btp3>IQe<7}%se*Nu35aFajcNo9`sY6zeOLL~24N9sF`jvJP6Ujt7 zFweQ=Af6uhESOPvY5+o7C|FRM#fFR7R262wiPwWWshYD+gSz~~MoeE?N}}8D20JOD zkf@fAcA$J&sEjfWLH!K1r~366lz8uh1{U8Do*YzC4))7f4YWfoCdmlFE#U= z7}q$yxqR^E303qav=ASR>1IS8_@UpjHn5gptgL%wg(k9Kh(OnFEJ87K;Oq?l$sWGP zHO<^7A@p2&Mm#P;VTO((`S64n->eT3si;sCPMu@m>Zm;xeb9$HtZ_ww8n@~kEFul8 z7s4Q-WN0%#7$qRdbQXNQM(&{n<7NX=Ira&Ju=sI#trn91gq>x; zIb=@sH*sE3&|6xWA!>W!rnRkE%XLBfq^#w(SEE#^?x+4aT_nD!=K}AT*0L7SW<)iU z`e2#1S9V=cnUL6NTfC=HYDfg(PbZwyaDCOibJJuRnOBsN&+VB~yeuz!cc#bu>fw=` zJ0{PC19KiVQ5|f$rdBL%bL^S}9O1Qw<0jk^f`FQ+q^YlA)6wf1j;V#Ky@xWmnD^*E zu*Z{0D+upe?zUnhB^_o{z$G^UEQrK6ome(x*c5-nEnu@J{Z}FA7W%ANjea4sqi>=tWB6JE%-o$v2 zNLN={Ike+&YL@h`eN+KkUUJABF^{MkU8?D49t5ZIFA0;&)B3HY0Oi?i%XqPB+2)rN zG3PJ2GTI^>F&3O3uOI2nxf1hMWt;@=Y89Tn3ti-8TPu(j$19!)IR40`Y5L>`!rq_x z&j0Fnel;~w_jM5_i6c;3r(Pz{9s*#BLUQ?~<5*+CDy{{uz_}5(kTjh1^V+&NPn3(= zd__tKA&Ir`d{;)6rRiHBC(o9p@M+;b1)WFr>ATvj<>0QTAQy(!k*tnfoja{BNwHNs zPE*7WI0%?nCG=d+bKf6te4!$`Jp_2V%_1UDGkQS+;2t75>iN(v_{xJm`_ynbZMM_k z?ctZ^+=I>`&m(c(Q|hD-5!rDk39j~1B&BPR4#z_z{h(}-;7wsh*p47vJ^{qlHQWR= znptrdJzHEO!YnE_@IBH(D!}&gi-M2>Kh)F2buw#PrbTp?kNHXdKVwD|_l(tLXvwV~r zPnoHI(IpyI#!+q8j0~TCxQVv5s+P}9gC_kOgV}MP>4xro;xrWZ4mt3MQjFtue)~4; zGnccwd*~Nc{{ZyEzrOZ?m#oLj;~6m@r6IO&ZzYP77v4PCy`~LiH_pZ^c51EX8`!!f zo=KEc-T(NO)D0lM(E!}#@^jUITN zVz}In$##igzklpXVDbc|xjf$E6oPRilI``mc{78RW(W#p*P2sc-AU<)izPB(kM;;j z=Aa8(mQut?p0-|=82LOp`XNe#J8;6c<5Fj2G&0DY`ibw_jQX3%sIP3qwM;3#I=P}| zuO9t4$^YJ2{qI-fDx6SQzwKsKaf#^ zvcuZK&iyk&#?zG8S*|G#zh?!XOA<4f{kB80&v{@4O^aT$Q=QNxBjb_XK4ArH0$!$y zSP7%=KPOv8n@7?pS{LTmM~c8%!cmob)dpX8TR|KO1UgdFwsW~9@QNt-3r-rmkF)#6*k)$L~VK{LbPbo{|i zRy?wR0}t!Eq+tti!x~YWg8S2__2eD2jE?M|`}_vxdi(U3zNGTjEWXit&$4t&Tf*kl z*glB1EoeCKt7Twp48N>Q1`0}z<8gNP3oT%qd@G@5q6L@7`Y`$}aT4BTRP&VM9Yx_=Vtb zJqxTjPY4eUboHNp)`4MKZ1ufewoHJb2z3q`L`aQNHzc~0c=?fEh|kty;!?J`u06wE zo(Sl45$%Wt4ymK3OeqxD@?96iVBKEWI%E_B{MVpE-&mPGSJ!X}{|1AK z>g9vao$OzTuRRD0@r%s!($h3h*E@W8Y$LdHq8Bjq^Wek7h-NqDR<+J@2Z*BQju`kd ze^JYf)*p2bT4Usw+3ML%xzjw!6uRmdv}~7YJ*| zFE1qZ4NHFG?Nj_+AADwNz?}uOw=xK$D{{7KpsSy24Lu0 zZR$QthBtYqPXY=XDSx>@Jqv_d$U$)|th^ksns(lv4{WSwlL5g_;Pt^@JT80)7xU-j3F+d( zm`bw^Okk<9-@AUmT9NIeaH9-6TXBhDxbx5^KB9DFxbe6)`<3fCD`Z0&!6~1S%iwNL zRfKeCZ9kXtxmf^Hi+90XAl0_qKu2!jtW9Bb?pGC|#8xb? z`*1&uXjLqs$AQ6<_5wp*JxtC7uiW+9Fym0Nj4?GAM3{O0Ov3j_uVQZDcf+Jgp@S`6 zFREkjJ7cDchevGX9)e+gYYWoY*tl@uaj`X{iMEj0=|e?c=!x07LNG3Z9*+P}+CT8* z|JDNhK0K^3sF-x8X*;>N_&Ml#d*x0b!c1e0TP)@C7cVt6RiCrvRmDHsdGes+eTfZy z$j~6ZvE=r6}aUeU_BBext z8L4vGOE0|Dx6~^Fh!JmgI@2+HPLfg4N+ZT{GbgHWpEO{AHGWCnf8Te%DJ;Y8!T7Pl zx&jgCl9&U-6W#erPJE%h>_eBAEN6mSXGE@At7dZW?Dwb-ISmu56dIngvjl6})2GNB zeFw~Ki}UM7a1{5=i3^1TO#&m-&5tNQpJZV4m>s2a=oZb(Ks}{I)@{0>eHL%orKC{V zykU%lLJbiTy8N^3d=?jvjzs3u|F}xvtw@`I3l3%D|$k z!>ssZx{p`=M`S@b$za6s>{7MmOe~vP;8d*O=ip_RX|qQwkBI&Vn^%nKvi|^x5aZbt zW(zdylJB>qkWh4{cg!-_gksWzoA$NjKfn1T6TfZ8*|^sBLKOa@*d~LN-t*ftWH&{M z-y9!a=_i-FB9Jl9(*n0wcHAO|J(r8@USuYO$dQh%znqXKx(F2?JRa;kKl%jPjnbG|B+6l?t-22Pi&5aGPfgRe9mz6o8$0=Ip`Ks5O zg>jNSwQJ(NNpU&mW9my!LVq7vYd;kVThi407l`;?{ro`P^SX*5#8|?nJKxXa2d?Z| z;m7ASWb9!KF;i^OGHY?^(qsCKg5Nzpvok#nn+r01&V*nziIv5a7NHkd z{{mdgCt70QO7xCV zbbt4V;Zd>N+BwlA+GJs6k6W%M1EptA4xgU&^3y8HPxc$|lgR$`8zgx|*=sTk_3HZsE;!2$@>@=B7WXueO&XmJpTS1UG{wqxb6-ZOP@?aAbw?BaFTwW@-IIbq-=6CgUz%uH>u`4P!IQ0Hb9 zXk&kgu5EeSaY5>L9}|8D>0({yS76{tbP;z}mkM)t;|n|(1gSW$1_3T$7-$#ky+6yl zS8{onfPszhp>QNQ%PS;1VyLvnp}B#l1V^JxK)Nrgthy-5MeJ;K`xmDQ2Ru}oUi8Ry z%(j0?XPrJ0?WljXNTv;m+D(-|j4s5~Mi}WrS9frnjOOW`V(dv$8|PFC+2Ab>sOO?{ zKm1#%Eh(@l?1w1uS!RBz$;m*GDkAu9jpxfRc33kF{%rk3XD%8$OLFgh?4)duD5ZA> z0gZr@8;e?lic!m2;?3Q>dNP1l$ObnF`)sy`_=GZ?@02MSsaG+-@Y|z$9F3q$^t;7! zQyU*It^fV~o>IGbo#sKly0&rWvNT6%)QPL`A^M63oTEAMbCCc3}Jea1Zfm#gr>VE5dY5>6QhV(ab-M2Y+FH7ZM?NrZBi#`0{>AtM!%?m8oAvHX@33!cp6d{*l4Vn82g37f^ zVO(F1^vqO%8;{7nf+2_x_xOIuV?2EVA_qEZSHU4I#8_?Bw~n(XkgR{shUTXH=BjNf z1WMJ%Q{yxfEOL6T%cXfuv*oZl2m^bXw;r`?=3lwRMI5M~e=L#-XK@Wj8p*$hGSlZQ z4ax4@6wsggaant3qjr_L$z_57))MC8y2K5jvW}s9GZJjYd~dDC#&|WcuJ#v z%Rgai)xP1k*4?Z`x37Vm)zwwUC#*ER=sw}zeMCW zk2cJVRSNKM7n*VS!?lCA7Z;mxAg9FX!Zb?9ivAC|{*f=LUIm6%FTOeY^!gT;F5rfL z{yKYy8Q5z$iVYIRW1@a};JhWZ%ZFK?s5!{*ZgxPROmA~w4Rm#wmj11WAD3ElIJ-l9M@ zh={@YXCg&CoR*ARmkY``l!j9%iGx9aq>5Z(v2N!NWm%GI3e!cwlx=pT(*Cjp+C@t} znAlElb4|xo%azu8B~i{6X_z@FVyX7bt;}^NgOMCKFGdp~pSet;$0=Js#*GR7$*vu} z>r)1I84LV0bDz!d&~CNN#)Rn?4(UDmk(7F*iyiEr#-B>~Q#LM<{fE71XR7vGJj!GG zhd{WNqi}je#Tm8>gp?D`mKCf=?QDU8rGO&SD;$QqIc&p` z^SSWU*>>Ovo^ZyD7>D}ISp~~MK{m`DHESiPLvc4C!ao z?-*Vfd{=W{9k8}k8cY_apd5xsZkOL)!h~&xe4xZ4wn%jJ9`jMdA+iVV>HUMGbocaCug9OT4m$dyQhASu zSvAdUO6bvn$-(+l^X18Pm|$cYjhn|7(){kpeoe9t?Ar&^5}p^C_R-^K2*hR3g3n zyGGw}jUcdSa3(wdk?qD?S~5RFvvH`P!>5SEgi1;gVRX zkNJ&%e`66}vI`}TFT$*`UT(Nw_8&uV7lN4biT z9JVy>=E5RvLQDLr{J<7Wmp~$zeyeX4G_;=;rC*6u85hUIpgxrNC5%HPv*pz4Dj75k zUcSB-Z`M}Hw|RJKL??R=mK4Op9oTIv;_5<_*gW^jqkG5jMf!r)l;{Eqo@xJ6@A~zh zsYyzjX}V9#9i|SkDW<5A`@vUJ^wCXcTI7T4ST|Lb?%0H5>$Wl#?`tuO4b2F3fwdP` z;-FiI3rQLte{&5RZU+y&;I~1p577((f$Yz6D}`?7Y7S@(?{6f3y#I>^_!Qb(!zz(( zMRv-0={-fQXb&Ky3Xau0i)|@7R7XbQv59-)MclGr%rxnP^KGJ?(@yhgJhLvl<@7h2 zTyfSP15}hG(J6-Z%<1t#bFmv2L8fiywh z3*-A_V5vKw?QuvNsV@OY67pTPtBhk(fv+#A1P8%9AW(bbV2a;7cGZ?_2PO=Jy7v$F z%Al!uIp_PLH8s(`XG=pqgA5Lb=%^aaJJvP`$YTl=(w?Q^aA8dxL}X|6`mdSR>YKH0 z|KU>Kw_-iG%Md@p8JTSQ1AK z!I_A!lXqBt{J1XK)7+p=Rx^5P)MMabfrWmL7vUe;B?`1dd_IN?XX9NEh{lkEL@BQd%ok^r za;jhAe<}%tBj!EODCGNITvCGxMfK{NG?iTS@#%%6tBB}LX??Qhyj$@RY$qxWKgO7< z(D&x{2oq+aZv4VM>4hrJTXe+owDWt(NyTy;?mya)F!ml!=!+*r0zan| zLKdtep!Vh6i}(_TP>TH_j5;Jt1yrN)0ZHt)+-*IVU2hcEVpAP!@@~apu>Vu>i0R&$ zEloF%AX($v#*2PlN!hjYrjCvQtAK4mv@XDwli|EOdUAZB-0i&jT2=k3Li?$E!k953D;is}J|Y!#d=R=Dp5v#9Y#DX5)q*1gkCfNXKhob4bP1uzWx@ll4jM(DY>>)~ca@i5h*c){=V0BN zO{Sw?637D9Bl_CxI>u@njN){4y1gUmyQBIzLe{nCNte(CSzo%~1c4^`MDR{`6+o@dB=qQ3vMgWGvH)=BsXT@zzZB@gK#B=7wwxU-wkIO1Qq@ zSze0zS>D$1i?kX+16#_RI@=Xz$_aW_%D+UTxGaZDYUpdKZI;_?BRB5Weap?n9%Qm8 zCb-!HVG~*BUMXZ6i1@4~*mX%1XEPf+NSdTt?cpwzR+*o4X+I^4 zvTV(|i6^c~l!SK`^}}@-XOq|axy(f;vLsZVy#1^!xs@G&p@-XNP&p<2p(6)n_g=c_ zjSc-CNGCWqbtOZL{rJd=4o`B&qis$6Ssc5oWJQ~0_u0F9@VCL+w<4?5=-eI;Y7kV) z^2KMa@PPr8A%@sRGNC>vB%b<~qA+*UsVQ_CtD7Y2tVShtOj}wr=M48JNWR@I+$E~p z0G)X$>anaH`1(~SBTeLYc~r}!zD;#gvV9qswk~OwJ3X%TIrnpZA|+@-;2T}nTvct= zLmEU@#A>-Pk`X`$27b#wc2RS<_RA*qwg_$4oYO+_2#aCErOrybI{PTylS`j*dJlZ#na&u-)<2@TQg$9`FkNHq4g6 z{95LdbKL_)3^bUMLdjNkUhj z;F+13(dVn^k$<}X4{X^y%tDWE_E2=VkRQ&;Xw=?ex>HVy_8;gpGT8p{t2WQT3CU}` zUcN2T=nxqHmx;nd?`V%cbe!yeyZ3sNyz>I{ZiDxZ(N6#H_wOTgfQV^el7@fb^8yOj@h&*|fZMrLp28+;&?9au0gQ2DDUC-Xx3R$Yf&k6X<=*b~ zQ_Ft29oMFpr%b_jh-BGZ>VXVgK_5-)jE8>nR%DL2AOCRq?P7<(TuRtrb}hCs9ea~~ zYZ;3*Huk4=-z+#XiF2{D%zl_Pu7KA?eXb>VHS+3vZf|ez36mxp(SIA4{GObM#Dr~uKjlI{M6Rb(k2C~kLOm@P(nX@((Umm zvr4L0vuLt|mzw>NN<^|dJcmzHd6-vQfy<_q z=l+#pt10VIM8kA>z3v0O4$Kc_xUS4+w+b=_+S>hldkubnCvhy`9@oWXg)!$=a`sgf$k^au1ZCAYfTAH&*u=8* zyWs^G#Sq{*?OAX?UyC7c2^|;K9>8uKJV=ogw$x$8%J67iH1^4_G+~UE!>hD)(~T~v zVh?7C$`gOw!m&lJ;y)W;yqvU4$VKB99Bi4bH-9kVWes`c?IdGiS$P{-6Uxd0WS&@$ z=Is32+GOIUMP}_PzR27scO@5NIurNK3$M)h>N2sjMksPvL8@1M{`y!AICMO-F0*uw z4{?Qz5(kT88~Uz|Zj_X&s=N``*i}|D6Mb|qRTHjwARt9mY;H+A)A7@>V`RqH8IXF= z%c>BSzR=5fYKyfs+d#b2hJfl3%|$UlMM80)Th>&)lKKqr&74r-GaH=o0qftSq6uZ2x;~TzGw^?Xn~Uc zJi?GA&?#Wz4PGrZW)%a~pxz!Anh07Ke`>At8z!&4zQ2#>x3+obAJq|69=QQt@>~0U zvro;+%9oa@Vn^KQ<^Y&Kc3fzvN7h_ zchNV3Yt#K9zWm(!AATCsoUy;mUZ#ulkrWMSX5y*uf~C&=3PTgbrj3Vb`GgE$+>W3A zyZQCRUCe#xIGfdzV(bmTTQhRTFoXNTPb#mH3T<+17~|^B&!h&qEisJK;C#@ION1 zs*^zY!?%`wJCsezKfvqsCOAN3L6<}01dcZF=a=foZ#ud!My)U7g-Qmjwc5r-Y9Hr5 z184D>#x3btDsA3wP3#CMn1!j}s4%DjV(H$3dPkw$0=aNaW!&Z^tiZuc6XPoILqGhuuWc1~-L3jH4XZ1V23R%Im|zVZ5=&SqteJ> z;=H@@Mf4HFJH++`kXJ2BV!5jMER^B3v4b6zgSPD>6C7WuF`I%ES7x(>4RxDWE8L&h zNe-HH*|satr4Bkg=XA4wAQEL;gp3^SB$MyfmguH#iB%rA3DSSh(t<|mWM0Qn$>HL> z{mEJATz42O$WvEV*?XFP4a4&h`jzB0Cz5N018j5!Sks9PU^Q1z0(*=DHBwqY1Vs(R ziK7(5EY$)JJW_>hJ?a3+QW~NtrrWz-Mv7qc{X-0BV1pexvu3BnaCC8;)C9(u@W9nE zUi*!%_N$Jh`Ina76fQXQu`YC_gfq&lH8#6SdY`gc9y59j;G$XNc%*6jt6rZtG~$|> z(LramZ*yoIRJM*+Hw#(mOj?&MOOnD>c_ae%v--o9qVXxjbg8NeGrl{Y^D7~KN9HE z)vFszcy9(+;E>| z(L2!%OdlhuUgfNSF`C+zCsMykJ&|MRsatqJ1oMS)8Eg;vxKu~PaH7k(u9@1 zy+$(uUiz~Id>dCk$kb=z>k9!-lq$W34XOJx!=e>AY&31R-oDvDk&aDv87JbFj3{>} zfP>4>es`*wmKfn7Y2S*Dh6*I7Xw9o9UI;1oXNAJ8Ush6jqSOAFnR{7KdWco+19sCt z2~up|2n_)e1!U;o zJ^0_h3ov3Qrux`D8&n*1;OXyoGT~OvoL5L7I_wEMi{oH#|^ zc{si${Go?py146Fe#^gWV+F%*H;+l|#5M1f7f-3Nwnu1ANY{|rQ_mV7S6E{>DI8f3 z>d_9;2>+OU_hUy>nf-*zCq)2{zkgihQi)cS16_4Fh@;|Mu~>zNu=-F~nx21=0bbv( z%a}&7g9J!x-fmEF!8O{n`nSIs`St@4qY+ZN7{PU9E6)+7%)y% z?GP=Qum`rbaGB1J8dgyG5b{x@Hv%g2I(Z|8!{qWEX=y-uWk`v z0WpPiQVadsr={rv7WJ9$%9}bNTffU>jToxoX;*6g3t%Xeg`JUY2dqs&8923DhXNrYsA zIE`99{70{TO1Me|1J`^>6Ur!M<9V(tVn~f~O4|+^@Kzwv&VS6MI!I7ZLPNvr>H2eW zGGJ)(Vo+DiXCqA#30j;jy2s4h_V*u5P5{37{mXY2{7o*@WYq+feWx|scHp`jt*vW) z@y*Q2k|H@~y?i>%F{`(A^7jvVd3n(`?ih%|o4lHq0)VHBygD%SU>#E_iB$Q**al6z zl_9ejqjVqTZnjRfx;U}1RKDqzgBglljpd{s#1zyXVj*nlxzwV%1O$Ib9c3cykEu^1 z;5d_V9DFxEwm&*QL`xva1Wt`>~LN8;U9jOpBLw87RmUpGyW z=8NN#;>T$43oz&`{@l3R+2@+VX-`{a2B5}|GQd5CslU%NkrLjEiXoHcB1=i4o&+yLBxhd z3a9(AZGntUMq=h->EEh;yC@PO&X*=c5U&*{BQLzAjlx-S*H5Iw600;(OPHLSFLhW; zb1TM;tJjX4qozuU;p*|iIt(gFU9K}zpToi)vU;8($Fq%uIS09E497>@B5h)xd42g< z1q-NpaZKyzKh(wKIh)%ku@-d{5Dji{iUO-N(~l{rCa^CMhSY6+FD#MR9gY7&kjr5K1$PD!HAuOrkvRy;{$Vq)wHNf4mP85NC>YcS@ z;b)s(>mHUuFCDwO6}o1Po6dICAuyv#I&e6r4BJ>e{)WG!r)dRR2Qh zXz}zw7n>3;A>KomP$0aHcx4!YV4;&6HQYt~c}pOgi?r<5T*;SI=USBmXs1<=>;n7D z<&6TSCKrhjO?WSTnc-TYuop=4c2_W85e?mET7u7SKC2$3BRjbrmF#@bb9E3==z;Zq z73A^p%?9w0x8UKQMp0xUS*ML@{vR}(!c;7@&ZHk@A2}^N%hgQ73t>XF>pUf%50??& z%JA26croSi*@Co0qP-yC1ilWK1s+jvKu;r3Y>|;uu(y_tjmX9!cnZJ$d*J4TvtwQz zEI3)H_~>c>SzlBdjpQlZF)6gb^s=znCxb4ZG>g`k^B3(`w8Y~4w=_%_6_9VV!oZr> zk;;nz*eoadx=G(OlO}VL*6-;RHYqJPSyE-sI^$o=?*^xNx^X%&blXmL0~WkrHhmtg z15a)P7Xj~rxKW?~{rlI{|J#JA{;a(IXeBa)k3DOxrBZ6~Zpq#ge*i;a-56g+G@znV zn7;V!uhppA_OBW+J)}BM83U4R7A3R z3FWAye9q4H@AlmM9=@20$G4Bmd;bCr0bq~YPfr8^51s+xWC0KSOsR7CU*E_?OltJE z_!|nQ2vh8{Gw1)ZQF9=Q$8qQILE(^ys;p3EWB5$|;)itod7*QiO7d2{FNR zl=RS7!%ADB`tS{xLVF@}UPO;zwyrxD(G&}a#%$auSTy*Wqnd)dOeqo=1ogl?qNRwe zsnE*PYD34%*VpLQ^(;r&a8U@*A+id+`DcEDvtxo#3VCdFTEr15f?bf4FH_jBap-ag zGFmcBlF)BSJvln7+~!4Gv4+&*!n9CiVkW_X2PE~QX`}@*xit1h&5r4ljipgHu+87% zL;Qnpb}BYsONVCP4W(u5ns@%bPufTCFAAt_;pz~h_isnPgQ7%a@jZ~ye|Vi4HbHF8_ecz_f;Jw5(sh^#!v6FM!!|m{f$r~v{dJjQ$+ z{75>dccIMszAx>0^J6)2p}pTK3eC?>Ad-HX5>7E(j(ku@8l#*K&#^}cGY}8};a+7fYq9)HtD~%K z<_yY455*we?37B`7b5sw#vqSX|FjDl*!IdT%nt_TCXR1B2zq;`6gl!R6iv;cri}jF z+-l9{b{9RMo0b4HqV3~ZT1jQbj~4q`({#x_?^q-MC)f*NKaq8=xej-;g8Ev-dPK_g$wn;rv9MSG<3k*Bx6Eeh<+`mfiDs-sHpN^xtmp)4;ypu%1 zyf0?3-vtCFhIj0LREok{PYCDmQeK5K5zjR4!0Zlj#=UX>v?%bnpdgUsGAtFA?sL1! zBbHLN=QugalrWfHqMTTZK0zk~<94K`;xXYOtG^0Vmq?73h))yyLgS8 z^?~DMd6fay~q{w+p1|O(&P`?w^L7s8$Q0)c$UCOuO+)nGEbR?%R*a zp9+VhD{6C6e3ygz+cjxH68}(wEhS5jsh~UBPpZc5^+vTy#@96i=kPs2>>0y906lN< z_3(7``(5~_qznzU$9;aL2be(NDLn>s8z!ctK54vZ-NbRH<;_0S^i558pH zAv1W=a?!o;r!n>#{*U-iWIH_kC{$rV`X)0>61_IIK?@+_xTW$%|8Jq9M`n7E$H~@? zmP%P9gkQZ?0L?($SstTBA0-Lx$AE$gHZ}eNp?9`xiOG%_PcF+S+cVSy?(*3S>Et9U z1okN}pP~w3n{la)9+}=B_dqVWc7?3ASbbeJqcM3n36%~4=?T8MFOc$KsM`I63}CT; znRH6++uBa&)_xU_Y}Y*AZweX{(OyEq7)pPC#yC&ya@mM-4%ny`=4KnCS);>(W5gH3O^vX_AX zK1cJW%?It;G(T*~h$NVoH%84rIKY*<(e8W5GoMfQ-7X=U2S*GEO(!M4MbmLCpr1i1 zwl2Axt5KUW7A0A&Y+q9}5kIF`i6U@MTAGlhRlt<~8Ib`l*&JzLzy@=!B%?a|_#qi=Ka*#S9 zu#oQy$3LIDJ1+NkN{O?$`~@fVz4(E(=<1I!ZKv1kmVby8*jTqkebGRNbEUb9>9WR` z%qevHm^l^<(HH;IPB;>}X7<{f_x;X+Q^`WRW-vC)6RsT+Hs$u=wg>{gO zHfsl_9l`R{-d$$xPz~|jI0a!KD`?Q!Ckg#aY_g-l;yh6*MBssGdJ%|Ji4MHhSyC0M z*eIjO;onE3A_nSs_j7!cq)*WR`#r4(ujqzkBLDOLal+iN^Bev#oYnp2uCq?zasxfWYc1!SnWgFC&u;P$6ih={9jiQ7I@>+Ow8o5YGF3-DyXEi zWLQLeNQRjz4OryU`JDxj^|=2S6;2`WOqDUvDd38wj>4Ya5vGoYx*;qi#u#UBZcsJ$ zEvwq3x48yIC^fb+pR1H$0YAp8+uIO2a2stM0@>%3w60Ht@ZXh+ZxvR1@MpN{6iz=i zFP`H3nFpi&1)~j(?k9F(G@wFv+0m$|J1~DxGc?-k0&D5I!|RH4c+;?2Ofu97?p}Y>y z!mm;#UI{#)rDIRiO%_`E?p?Z^nHx2uk>pCu+n&Wl->nX*rMpGxX zt9Z1TWT|Dqqx(p9Ox&xe&;DJ9N;!Y^S*o>};*04eTsE+oFUU3vE_^d5tQ_7Ff*wt) zfviqx8B)nC!NsOx%;}t+{@AYsQD&F$32Qku%i_8iA6=Cs&XGoL# zjgR=v>FsM|5|t}iB?>0aO(fIm(AFxP#6YHy51nJ?31KTSXqEPQ8HK+Ufb$w+oz*D2 z#PfnQI3A7D6sn339*4fPTP(CKTxR-s&HhT}2<&KfjgPsl6{f&>aC9OQC-G?nQ)@Al}(u^xO7E6XgGMdenX zgo-RAvd%zGXlY^ALkH1df^tO0X0>*52oqf1p?|RrxTS2^DlSTzU8_-5psATw_DDB` zj`AvI0WzZ`DNqKi$M*(rsQua2aoHTg3oU=sd<@m+_rZOgdHd*_tSCe0;pxL{L&ag8 zVU-r^U&<4iV;=l%&`3LkS5hT4^F6`*{JSyDd)CgO&Epi4L`hpX5tZ#^^|vP{=^OJ~ zi83cAi;WFKBVT`{ERiX*WhRNpD(tjJqd$LG&8ZAoi!LeV)H=6)pf2sA#q%}>f=6oO zH`x^mw0Mw})ZZ&N&ITHpUwB#d?DFFyw02*gCX+FRF+RqMwkA7ob?84XKCIb&^vDs; zUy32>bD?e#FeQq~19k{G+pS>S^(x6>+~Fl#u$ARS${b6Dk-9)>Ja#i&n0V75+g2WX zsYyM^!_hR}MD?SzVM>%;p8gV5q$xrb{2g75p<0w)wk-9E=)eT?n32zCu*3JbgbYDXWoAryDu8YmVurZJATf_=riQ$k;SudnPxoSYzX}E(W&XcRPP#u?%l(mzbw@#`&4TF(! z9>Z{h3^Ng1B{4C2So+4J&ANzRg0cDir9w*LPg%YPoui0M;?`UEC#Q*>{e4&y{GGR# z2Sa<(P>e+CP*uXo$w|5>%#V}JcP-G_r^l-jvg-A3SMR;PH3p^u6TqzlLy=b#5_>OX z$p)rm!jrRBSl~XqNt>3cakcTvuhL|6Or>W3<(*9h(f;qrMWTOFQny>y&LPNV$H~?f z_F*=p*FSDN%nR^_0exiW&OPqoLU_xGyzk%BQ(8qv?9#V}j;1(==vG+XBsJG;3pYMg zIWC15kSR;v?B68OU&?tui|Bz&X?hU@5|tGRfg%uMR4E8SDSS*Bm`N#DWC$O+zQoS??2@9J6x9b7wwoiMaQ@HC&c*g_M11Od~nkwg= zD6W|QPTr?KI$jWx5weQJqV`03C|2f5 zX{uC}-pqA-f6t<#p3{NH;fM)rl{VBKxXKa=8XkUoXCHZzymUULCMWK0{`I;$Is7r{ zx9%eOGaqV;tflEY>uCHT=w>rCyaQ_52jZDL)uol3CFhhRQJex+B`_0~5?OqpS%k3& zVZYFmJvu3XF_;f(FMJslIxlxN!k;>$(m&T-?1(!=bK}ylS=)9HgCa^5)zhHw`r)3;a1u{*1mE)d2JzJX$impD4#&2#HC73oVs2wX`~IB^;HA`>lPZ^B{4AB2@g zg4e^DVW`$UxM$O;$6Zwqhv>@% zHAnbyd(25nO6nw(lfW5lS$;S7W8dXiEqlt=Ds$!NJ|=LWB`eR&Z4d?%GjUr%<9-Y4Wd9`$itu~XL5=>5ojfxO) zfrXM26?4ljGvDhIkF?FkjtLcfpTZ4ZS@znoJf@|FVZwZaA{%hS>Fd%FsI>4Rl9V*uT z6@s5P+F;Q=im4sSOGEa}H{clbW~bkIvXg`{i5l2%t#2}x3@qQghqqiYKE$*Z(JElY z*E!5~mD@zIZP$Omw2~r@4iK`r~-aypTX1bRCAv_&VpMNgQ&Tjg9 z(t`VEp3o>er&^oEnJ)`)as4#i)D}C=85Zw+`WrX>qyE#CR?i1+j?GC8 z+I3y1)zN?8i5Nc)EEu1An9OL5l)INR`i&i4RJv{E`t&;*?1ATMAV{fOpG#KJc{Azv zyZu~Y8qE>8hyljowUdBp<9hxn-<-m3z<@kfSKpiC;8vuF?pN{6aHZ z=I6eEYs7QwrN&toYo%BUaTrWVj2oVRpNCDdAu4LZe#r%f44~^~_iC@UuQwx~66->+fdhjO9-?XhUOG@*^48UNNeyo)T|yaS z`^UOu0F3i@dTc{*;#pPvyBgm_Zq55S=2wQWt-1*&CCK5c_dE`k|rCFNss>Z?Tjx^Lv|Z>NLHPA5@ohxg6B_+!{E*)qOzm`{o~wY*;h|8hC9` zQL-wU@-CON#wj-O6-Cf;)gpdxx6lGr&Ww9Y5xmaEVIsA};+=FNzQU?Y3x+ds(Ye3f zZ|aI8=X7hq!>hTZeu{P>vTwBlHztS*1~0x$qlpjj2T(T;zFJ^9@kKQZ8hg)b>~ANy zB{u|Q8v$JVjC`-20)Bv4=@B&1M3PjL zb_)k=dO)#dr~J{og*2QdTyVWy6kx2_@U!MnMavl%D7^aL3y>!*-FGfQ?r5K1K0PmW zioDD|+nXQu8G2Z9bi@PK+Xa6ddWEJPU6FDM?0|F6m6Q151CZrMsh=d;-*@SL@*4o5 zczKaiy}X?=)-5!(wtmHz7*YlQ<{I#t3)5{$Dj_JeIa#ga_?;rBibWO&FCf%02#Psc zK|37}O9n0)+)yB@8nvGowE^4V_Z~d>a53%43{@eJ8U^kTq;(CfVY+(VCpaAklm(pA zyYyxk0&srcl~p;B9~l={&(F_cjVZ;EMoiQ!3QhcwRN281 zVWLN<6+cz~H9Wo&*2jO4S*wPsG78*A6}w&{>0?013_P&KMlTV1K@;q+mdJ7pXo%RC zbX>6Cs=FDmXkm{ffP1Eh$Qg^`Ekl4JYRISnlU1&bxqy1z?b%tZ!DNr28TzkX|PJaX_1FDWsK5bH6B05S%^B`;iSV_U9i zx4D9Q6k9NBx62K6XS-T3YVYb#8#6_qLbCU@s#V}tMQs}{^ikg^= z^!v?uF074<-|G9;yht-tyQ1a4Cz$eqdw8m7q0o5u5I;Fx8xYt&WDs?0VoQ8`<1Arb z$DNyL$)Q1FiVwIcEkS$jp8Y=0xENIY#X#kXTK2r^Q)$f;^cGC%7OE`r*tzf1bXAnn z!>3mRu+k|plwk?V*3!zF%w3Y0h#3oe6OV~OZpqi z4Iz-flwQRm>?QHG+91fDtd*-wiEf2v{I~CoLQTx1Up_vP3cuZAk&=-`+Rim-J92|a z;+$f4@~SjK*$`gw71GLzp!XI2^^(69KqqL{Vuh6dOc`X24A~eM+fYS;%4WQM=pu6& zN>4a}MKbvX&Aj&=+IZ9MQeeihNL!B4XVdJ-&Yp<6%X{BF@x5@4Q@QZ1Lvny zu#E|0;smj0_Cvo@vb&N;K3=6G(?`BFndoU0$2W**ts|fN4kVeYzx<;k=f2 z2uLZ{x2z=YYF^=irN2`Bih`{dO^$$m)P<~m5Ul%{d$Z=oQ$^9h+4K}my!ENAfL&dr z20=o%fm3OoBf6CQnsi%z<`ibG+bOWgoj>~lEo9ABg28N?XEdFB5&{z!t>4NLWGJ`OOl;t5OybN&M4h|6};(1xJU&duSZm!DrB z+mvtQ4np`Y1|USsGR`TSt2ORzc`scg?DJNQ-UjI~D(Rec)g6iweOR;bqLgoI#qFkmdk}tDRp7jGMSb1L}FOga!ny?f+>lp zuLlUfxgK8{WloDJu2g1?1D1A=j}bLAC=iCfGAVF6ZvNdQ+t_QKp*%pBGMB!LCGA2{DMvC77t?^}v>(CLHC6o&I50tupSrt!dwHFZ!Ep6b z_3175{;B>!hftDsG5+{V3{jMXtql^{hoCGa>BQtVG1U6peXG7?zjT@qlOrQF&N40( zXy+)eyeyg;c*NkY#>>`@o912fb#Ysp8Z;z!=Z2bZQ?ugv?bI@K>tV>b)H2g`s5_vm z6K69fVq#w#)oC$le&#xx^vB>L8{N2gSje=qDjuR7xX*~PGsVTe#UR~hpV0+6&LE@c zGE^&FIe%aDDa$#odMU!+sM$UEyY_J?$k4^Z#yj#}s{XTiLq4H=j%x?Zx-!WS3hR7 zvqoqX^I@BWQp&zHA>X6w758jZrsfxR$j)^SHRo`-qYRPnf^#E|$7 zDWo0B*Km7{jEqvNjXs>!{lJ$AU{#*ZO4Tmwv+-B6pL|7{^kz(4lUiv;RCoafi%DkE z=v!_=zB$MK_OCf2YefUI)=FdFWh%J>EsLIdb#%v$Z=P@W@t%x z4oCjMwSVN)cqACy3S(w>`6YBadoAzd+p>1!Iaf?eGeOuR>g6MTiFteFROwi8f~3-o z$+2i6H&?rZANNWqgPkXLf0%@_TtD~&U&?G!dqG8f5j{2>KIt@H2zI>DdLt@<4!Cxt zG%gg_oPZ5?k{Kqd4vfKX*#z_0oqa&k7wA1Ww~UJRX5Ix+C}5UrGBS<8GPf;I$Y2#B z);Hr|uT=I9QPS+RLu8EOX57IE7C@KmA_C;ae|5kh)7Dj=&H+1(yh=t8d|QBDA1D^+ zkS2>5^5x!{$1*>sK#3#2@k&JOB659s6C2VMdN&qZR#XTvR|cLjl?uGNEHj zsA{xrEpb0)#F=| z#~r$@P{k%GRT1cXFZfO^OuYnH@K+Vwy$m~Ms;@|IA~`0j4a&+LTPRTM@kY-Ln`~1z zS(0LZB`Syq*#}GtZv?3RP=-Nb=l?o0rZF=v-`)xL&snO|cHn1(J*al?_^W}maaecG z$CQeksYn}VJ>U$J_qWfvN0Xk4>Pr0)Ih_E8LQ;m(8BHfWSXCqXp#Ym&O?TRKn+thA zq(EkO9-k0v7i3HoJi)=b#cTcpJoR4m1WIXc18Lf}BLgy-uCbiRAhK-nC?7a6CAwV!X zSHwBf1iz=+isgx()(=EU{SDhK%Mjgu(c52OTu>}9)TIFW{ILGA^)20nljZn^ayy6o zf+y&DKeNyHWx-D%kYP_banqV`F0%LT>wKRIShC3?f#> zg{1&{NIv$%{iZ`opVfVGYah4ll@P))TResRbg{AR(h>OW39i9kPnmAabo(&4Jf=pA zDFs=-N^3{YivGEy;FJ7pHmPJ@BX>N$5#$lck?X?RKhkGXjLCq!nh3bOQ{5W-nHfQ< z+`zz8MWw~} z$*Jp)uAHb>Gbjgb>+}0{?cCnBBqV|sN>4_RwR8_+Ep#UAReOmDaNrC1ioHfE3lJ@{ z%&<0kqS%h!(DR*|^#QCZFIh}QmC-19vKRDtTSSNAEI{fkl#MP)0f@^2oip-q3agJE zT8Y#fAsag30EOVgtT}|%8(3_gz`ni08}3pqqJj&USOD?ZV1K!~`K|}bQUtmPPUn#Z zI&k!-ZM=H!bo1z3tShvW>w3D_vq$%5{Vmv%}g3cZy zc9(7h)FjLL%Os+2CQEAZ_NirphvkPjR$zu9jjyeJK zHSN3lgRyH&u$?&~`|o`2Xf6kS@p%6uWNO**P2_HM$CjhlIqu<)*OOKi zx{&ym;Gn{C<$KmLK@}VVW@?k`<0445*hc(-pl>`@*6{9*+L=^RKNnNUa+O~c9uAN4J7$cA1K7jNPxJ9#b0%9BR`4zwkIJwI#1ekNs>LSgokHV53J`( zUd`_R2z8I;Gmo8_C~FD3v^p)mg8kr9IBU%C3Ww~^>To8kro;2!Sm)D&5#4$q6qVkO zXWX@KUEMiOHFEL{h_lITyKtg|2jOnRh(-uZ0wGD*_QrUAW)3t6KJ=u1;&bO+k=<{d zn=jv&)1RD-c)oz!wtlRiwfZuC!<<{yhSolOK)?{feA^9s8Pjy&I1rcOSoQC&O2S;D zc!sU^pAE|Xq^9dV-}X>q!O#tg{w6?1h4ht-svN(1UX}vwt7q?5kD&V@tE$KwZx|;{ z*|(PuxZZy`Z_gSOITOtv1YHjh+`HzpCiuPn#6KF&)n~cO$b0~OE6k+p$*l*_c|i&c z2x6syLQ7>10@rDMh&#W;g>~Ue%SQgJ9#hv9QgV*R)6jQG$YmdzGv;GcBx{5=*u6p7 zd5M5)GQlbMHi`M?Fzw%fLMU(NPu1%VmrfsByY)f=@6m^cR@z_B!402Jsp&%JT_W?T zb4E{eDP+{BoujE0(8DNR(qOaAXfkCfVxoZ07@6rw9HFbR8cq}2N+(ue@~U<7EyA($ z4c9=5TP>;|N(K8mjGRGMEaW8!x0HO!%iq7-vi1s>52)<%^7ihxt(VkcxqQ08V;V_( z4Ed&mEkTjqGT_iCvFPFd6-S+B(zVVYYCOzk=mJ1$S_1k3ijcG-SfA%hy<`NTNT~|; z45b;3?bU`j7lU0n#{k1=CdWWo!|5DIK^8tJ{b;UorBch8_)kma&pLOU2)%th`rQb+ zSm$;_K~w5iWzjD$9a4$KAp(8uWo4%7LAWi>_|~;n*%)hjJ1x}YB~-9(U$uo2`~DMXfXHRGz#SfaPECaIH?5^5jl=j~+6i%VC78o{}icp7v!3;mo!%GW$%F`8^D zE>g2VVPKKcvKd7k;=}Zjb03t75aJ%IQzwCGSH`@Tt4^8^g9&rlAz<-g5fF zQFS2{v|NRt_CPp=$n%4+dGkubeiHzu2hce~W9SIDEO~K|i1Zl^+m|sz;lmNQA_Ivg zLcepb-^mL%V_Vt4kF`AL)rHst17qt*GVW@>78PXDpfkymVw3aySnK`;+fX&$h(@iG z$MIZVK}j66_wU%%mIb zUsH;Qkigl*gBYnd{fB>m*iUhuruzDvKa~6|%!qt(kU%uF=s|R)&Vl2;chE~Kf1h(S zP^_I^EULEn2w+iw+Gm{>b^re6D?S!u)5P4N%e-AKF&XNbVl^fE;)}HbkF)q+RsjI? zM^70WR%5gd`QAG!Pa!0@xhG~`E+cz&?(4bpjoE= zivT4VnH-_-J-fS9v4d3LHj!DbzTq?Y&Y&n&emPDqg{T_3Wj5i0A7M-o6HoaL_)-U# z%HRPIV1CEYp$S%Jy=Q%E4(YT^vy;qE!ZCdCEq6qDrB&3DNrZ7XpxW+nRY^H=&|OtU z+3@+PIJ?KQ!!i`{>TN;CfvX-?d9dwb#ucBRF>m(o4~+}{lu33of9d;&Z@i% zn&?6K;%laR=u~0tdejn&cNLMm>sN)fK!x|YlNX(b8_5q*n?_Bij++){aGRs`~QLj+$ zS=KJ+{YjPpz27CAOzW7p6#)P<*hwkau!vE&I z!nbwyBqHU)yt8-M=_1DMr;FYet*8gQ*?&cpM`&`0BJn->)B8B`G_OAK73iq5$!*JT zOS4b98byn@b&pQcb?L1RNy_^jzblCEEN0ZN z<*;MTnyF4gVlToy5xjS2EanCzrnD(D@8yDG`%>?3zQj()^ciXTp(Ff2ho0nBve~xs z)(hM;G@>eK3@vfLB-VrvZ?RFw4;x!9bdVpwE;b<^&iX+`#k$Do{PsyI#H8?BxHYr;}*{6u;zu6(*XLa)g<$S z^}vT)87*gL`!>zZQNpK4SHl6Ogy9p}bpGa~#QX2?hG6si0|`qiGEO~{+bS^jCo~x< z<9;Ru=t6tlTax9n0YvWwMR|qV1#(5x>s<@N9H+w1?aCdKyip?XXAu~^ykJG#e@)f$ zZ(C@J!ngjLxDb@lVtq0KacZQ!iGFyOoJdfzX;}PpdGSx|wj@v$^Ps5>j1Wk-++s+TX0GF*doJu2wtK-ZUvVrN1I|Cz#h(Q~q5*yW7uHOx(>g!y##%2d5_;Xio zVvAT+Nnm1*eEU`0lG))XHryyo6>;mOZKpnTc!&w7Awnb2cASSfo&}_(5Q-j^_pX*%Kt+5Ig!|?X)hEy_Gw+3-h-t%c+J`k3o7l*b;53*Aklr?YwZO569#K!eBA}WKLz3;(=BTR2Mlj!`IRf{{fBe67gP-T@%+iC6? z(1Z?Ia{y!=e>m&$yP9v}4jVjXxmSPPJ?vAW_XNQ5`3d<7*^E)5amu(Ly(K&}=(99G zs#s^hNyrRUl0VMemz2(=5&cfS4yRUGwmta8dyrzO6P8CN@F|JAo}ePR;ln;5qqtU^ zDb^GSd*>s#RifJ<9y^r~M-!`(?Avd=Pn%e#- z@Vv&7FhQITD`x1*$6E~Dx-nCOGfjtWTG&!>9r$%)hI?rA7|!s;geA9s2hB z;BC-a6gniIvK?Hvd8Q+G29J#5z)Ds5e7Wbn(}Z_->DXe##m`b1irM7gG&J79-F4riyf`Zv+ zx(ZoI;aE(f7R{s%RNe4&C6)ph6t{EzLK>OiwqI(IW9D=tWpqGQS#EOAwwK6io%Jsw zGZG5Moq2j>uoFs5b=xtVpAzb)%N1WLT{9pt2vA}`i%pA-0K2YT46t|u^W>S45k^gD z44oykqGh6bsPOCdC!jic!%J&MzhSikPs7bX?!uYlar|L3DQ0dz_{69Gx6)@=5(PR|f97pFf3Gz79uI~U!7Em!>TE+-e*i^5dx1mnAdR|;Uw}i99U2Fz) zU3um95se{;sqEp0lg@(j>EzlvI(FXQNnaMVCPD)4`hhHvHK7<=q`YB%CDFG=q7T15 zrc42)NTS6#RL#r|3duWFKb^x@7+kEYpk^0m;$5E(FC%`P$MPbNWb8A{G)d|w;=x@+ z36)1vev4{!2&FZ=`Wt2`bpb(%JZ5{6Kuq0;E+IT&)Aqt-C@!1?u8IE$9ALudB`R&6 z$Aa4?`Ukuk;}r$!BH{Uq3%5dYGfN~V#H-gu%L1eEY%=-))1)*pM@(tiiq(`|kunP| zC@c0gJDMl;6DUNK+stM=il^u@GizVFod_(7FPZJ{+^jFq(!72y5S(Pud`PZm2fR73 zL4JQK=-{>hcNSzidc$^mOG56N&1 zTaa57*vTH3X6N{E_#pvSK56zbbkE8%~ z`()~9|IO2BaabA(aI89kNdKCLsGXgLB%Lh^n*HJsjb&B=AwwcY+BX%sHPD`Dpd>8{|q_}%2g3G500+UnR2TG+7D9EckuB8kT< zb?Ub`i+r$0hw(=l&Re?aEXv5WWY2-}jgw>_un|vJh8LlupU~E=`q4#ThXF?@JIytf z=?`PvclOq-CHux7V7c@brQeCPm(-lynwOEH%ttUlj~`RC<{_dmP@1v}Lu;ntUg6ZP z-ciAX?`p6JW6!S}*w{*fd4DON7@~VsUN#X$3?PkB`%pmTkf~lcP{85&>B6tgBE`z^ z?aV80v}TUAVJ_>E5fM6MLYA6L^adu(bn^qZ8y~OSzN7vP&)PrX%TV!7ygH)s|uf6Q?bL`&_g z*G4NSPQIl^hrSwlECjFr4TL6ZKt|GWWL<9wReeg5HJl;%72h_VV0%;yt(<$LIv0FAlFrVzzy2#y4b zh3c;vC!NA0FCcO2j~Xc6;Oyts(Kp(HCf}|TxNgHUF< zq?RsudoRp`qT^RqLmB2w@?5IhX7-ZC4mX9>_h)?b_?F*KB>^ZZX4QlJ2iI$Kx9Iux z#OmL8;re`R6e<$8hZa}A>S;UAZ8}_(jD^8k-j0}h$2$b7*P@f?9YZYpA!JEHa)=b8 z;L@k5ZR^rEJ`*_iYc|$hTsxCktboyGxoE~z@<*MYjP}>2gM{M9vM7k+j#HmA z@2KF5xu|bNv!7=YdnX?OKLadp0xWFD{Y)}Dn?p_D)nFD&{%5(~Hw<>eV z;(nPNF22~XL2Qj^sSN*5=+LMQqbtQ0PEdZW=E zpz~!#*`w%;@dl;j6T~sg$Ob^J>++ikm{@1S5Ao=xY*h*=e_!4qhO@+glx&IMZLGPu z_kkF%q*6rtSh-mIL%_e4|6S)G+2-oadacKO^SjUf!%wk4o*&I z2aJ#Tp*ETDc0*PTp$WxvMp#}Dh>AP%yGuMxU#C`0Wr<=13v_tf5InYjbQJ&LIQ-d) z56eV7pwz%=1w{mR{=4n`FBE8#vimFW`-6)cw3v1WUd0X=<;k`Jca=qkG6W3w9zgX1 z49kewwpE@HOy^;*yK`i`hp%s_Gtsio6_$IeM9|TA$TILr8Sau}w$${(G(0Y^B8I8& zu8>;gS+vocqyt9({XL>^DB8cOi2J5YOUvWms#M3n2XAUyZRf|{ji$^SBDcsgt^X8o zbFNo+yJQ27;4+U`qwbWvUqku=Dig@%9xf=3fRJ1~ha`;oKTlR$TN@J&lwnzFZIo&R z=apJfr3wi15%`q*{D-TC3K>-{>nAflig}epo#QZ8Eg@?F8gY+87AAVW+L%$^C#2Z~ zm9p#nJaJ)ZIQKf)I#kr*w~E$m`0j|OH?V_vGQUl<(-U1!Z!NCWoE61+90sRCEzRU3T!*W-WR*;D}lX_cZFSa3vw z#SAp(jU2VFz<%`}xz+puJ-TkrXq~KiLpLg=3Qm6gH+Q<;x(I^jg4mu}Y|ycNLD8(F zGX28jRR~m6_%yrC?$%{hvCOmvCfn+kp?jN6y)*!uwYu1$))O$ z`UMrHaD<1fpRBZ!3iX)k>WsbA15WnJnuMRPJvA|J4-`pG6d#34{qFpS()&}P0j5%rc-Wt`Cy?sm$4gFp%C&#kvzT|&BN~aM@-jvt z2>)yGj5o;vD%^G(4i2w}jGp>TdrE5GO0-?mFEDD_FP@y@vrcf${iUm;Wp#Ug5-Gstq4C^ggyvMg!vp&JYh%2&YwxnDCl-uJ%Vk4}C4 zRDd*FLHeM)(rSc=V%7PvpU8(YGr`F~t@a}OpyDkZ*dQ!nM*~8k&`je)8n@wxpJPc2 zk|@>iUYXN#n16Jw|60~aUSX4?C-}@7kH%WbGb(nO-H5PMj#%;QTie`nq{0gb1ejUn=F_(~f6P2pfHz8sFt1a9=Jbm} z$HFz3E&#Tfii?9`ksk#%5>S` z1y#KC9oJir>l#-JH@5Tq2U^{Mbq(IRT;H$1vW`EI_CMh6saVNn)hk;N%2I5cZ&U5K zaXXDlC2e?kR#-wz8$RXS6JoWqNUOP!!Id?q7sGzC>?PL(3zUaxCE*+MQl3kk(n;Yz zrpx|1vifCzii1QgaabBr!yJwS$}wASy+PUG2fDmXv74H+q46lspyD=iii*FHl1PPL zFEIaVtLuHhv5)Bv!uNjj?z2NUF_msowAq^%A6fEA-&Gr@P=_(FehubJ!+%y;hss7PJC9bHG0=^D}Opc`M zUezd*SfWHl%6y|iR}s^%;{1Ae-B^LX}Q7vH(W#zTs zG$nR`O*VBbWrDequ>y>9J#0r(=u~6RrBGk{iz?Q-pYwK40tQtgpNev+Z}FHXyDjxW zF!P3=)La~9ChYN{UZOHKAn3Ju)v~p$*lgrdrJp<1A6Gm2Svq&CyHMG@y7b-t zIDFxGR2{D!*(Vs`y z_QUZYd1t4EQqi!7cJyv#SXl+{^7;&Tn(MxOpvDS8?cc%s@FGFJ5ZyS@;a$T|epQGf zF$N%|A(6m-Gi?FYNbySx!PIo6(K&fAqZC3lqv{8bK>KIx%;WHE%m_klE|8Y{-|9fWa zKeL7exf7@!4wR!dg2V4P5YmGX4l%lzAl3*4h}tWJhn`45R$M!k$-|_pRfdpep~Wa| zZ5=C{n-oS*+r0k`nFd)&K6}{fY9-8(@nE=@4CpDk{27jq#b1KcM#uCumX|0c;?kmdK8%ovQIO3 z+d{Z0aoACMwhLh*7O*!j2-gE3Tj$L5UEPTYO+&LC?}_R}4AyyAbYT}TeJS0W<+xPW zm>TZu@us^gjT~Dm{j6~=^&JsmM=YAPE|C^?9jM##n7LUUBkb=w``U+VSPfHaE1X;AGB_|T(G_WcPZ~Kk7>s9F0jRhp9s3PaCB)T z3agXoI1rbr+rQ17eBCC4Pw-|^66(h2r|UCPZnY5?(M?+u`F!1#t5V_X3;pxvpCX7R zS?bSZzo)7+=SrsX_H~KTX~+oZ{(Ao;${;TuN|j5%W0P0j9`31WoDHiG9gf^L6Ukc3 zE+szP=*wUd)9FI}Vr=t6Dn~QXO04wHUK)0t(;$W!RoToaV zE2o-khiqGfa3|)XEo1i)+V7#g>G+zi@J>GMORL53y_9vzWY;(5sq5kW1(Z#vZN0;% ziC)BSnu;zyum#7FlcB_p#XfaOl0;6=(0tqXnyNOK-WyDN>>-hF?ZK%SHl2cSw;I}TxC>&iJEs>SJRyeq2XzR@> zT(x`p^SRAi(Qo_#8i5D#tRqQ>GyjQFPJC*j&Ar$Di!*OF=z(fvCy~)DDmh7-eKAg| zNO5#ej+8giA2q93PzfYr7uMNpnO(Q1*RSN&neNzT9vy1OyLyviLZ$txHU*ek=;40`Q~3sU6qgwI*9|l?d@s zj*4*pxb8V=i85lnM1|Cm7C%V_)iiNaBGOV%sdgr@*Tfjm#Fg6hTLv02vBFm@ew&7r z<1YR@%`IkQe@!OdlPq9M&bF!<6_}MeFD44;aTu_n((os^B<6ZrtA?kxJcx}e`@ig+ zg2nx#d?y%%Vt_zCRx|`;yvH4XWt7a}`>u#mgpM#_7x7Zuvpz?<6Ttc}vDeXK!^w4S zn-QM!Y-yGzBnz?xm_ndl?N3VWKCO-l?Gz;Htx<}r=D{^VIC??i))_ThLYbznA$i+z zV$+}16WQqUZb*8;5fBWEY|tfz_B-W%1h$}Artee~!N zZCU;D5iW_a_W2wrUMxj&<-RdR37|w};0s612|DAJUo;t@2Fhxi%(dEwJw9d`-(Dye zV%QnC^3BWiaoiP?4KW|3nQR&aE9OrhX-@MWEMeQ%Fb1N9pK!w$ZO=L-omIRlV3F7qk1O#SzhtjFkwF{B##7QUvL zrTjc<6(eVKWbSAX^l(;qQB>jNjf^TeDdDzj**ozZv#*QYPy!F$?js&vg-VXUZgZ@y(#Gq8``+owZkDG}O8sCbi}%$3|Tl!z=&^LyKRWY<7* zK^e=e8{IpbN)4XVd*#_zt|rliOz24pZX>HQ4IwBLnBeDsct8#B&5iyUC(h}I5*&@i zrP;^tjBp_-$}>LO!^2*0;f>11Aq&}S4mheEyoOUVY3wp>wD86aqW9gcJM#zI!SoGn z+>eILzXG!gi13k|ARfd&)YPS8&PaL*HQi$4pPGm~fkd&y7EgOg4F+0dc%9D)2G2Rt zMWt@u_VRnU*hvuAunf~e-kR@ljZE;X-+!o?&p;sgE&rI|)Nv=5$yb?MDhr`hqazld zyX^Cyd;Q@_!bK6^ORHJVcePKdlJ|Kt{re>ajk)@02s^E=DPwC5Yxo0WMl8zCTSC=* z9hB#fd3kN+xqcvuE__hVFF)3nc#yuW`?FejMt-n^DavlH>G;mwccNdlmQeh3*+nL% zVM?2g(y4OE|Sxu&1;(P z?}C>6lyw{D3I1I^dtkM!7jv(*QJZv0VS?t3H@thAJMrbW-T6`M`q0+oYgkiJ-s2}P zA`1>+O(LXTG1L-y6X}D_h;J0g#E?>qssfReo<^~1#<0AuHTpp%oz!C~LD5ngPti5c zm~qSKYoG7QjR9pj&@Z;sVw}7#N+jKD!aduEWfcS-bUw0k^!x9IvxSAv)V%#+DF zY$ZH8!XbFqs|AM^UYY_yM(fC3a#VMfv+Q4c!`D?O8nVPp1oA<-Ry4C&giF7&c@ES$ zA_|F1ZPtczrX)G5^m-oy6K*EGr+AKzK6{sOE1*GVUcFg8d>~p^ad^x12iU{y?LVy6 zc~%ZNN8xXVcAfb`tE{|zeHC@IN1~1uq$cEbQek4!1i{mfB_AI}^)KVTg?bT+7dd9%RvKvM*f(-Uo*qJ^Z} z6DyJ|gf#@}Q14CfsFH@r=1U|_+k7-5M{y?=Bb|i`e@)f>s-9zkFrO#{LHOt-$+VcGut(xV`-gF$fIK@ghep%8bQCLOe3F?yXZQd`O z5bh`bX)>m7w(?lEKdxUD<~7o@1z9t#n@aMmOSLF~KumRe=s1#bfvVl|Oib0wQi#Ae z{PJjd-LkQ#x0e;bso%GgXDz&QvF9$1Pj7NMx~Y^;Y^n+#MFjw{J~-uaGN$4 z43k&+iA|U4!v?#9@7T-#zkPj7%m+##k5?>bcXgVE(GIuVJa$CEnt9 zQYES>g*#ctlto+gLdmOf)go|dKfN`EsAH95(LK=7Pdq+=TdqFai`P zx>`jC;|nCTJWI(iHPo7xORXfIHy*JF4Wh$VfQQr^ObVz!Twh~?O@zi4(qF(uA6f`W z*mh~L*`uZBV>|2%m0;G>HJP!qb22ilSyg9=IEE8jj9h~w zpOa(;Do2!^`wZ-RRezEFG!r{p4W4A9?gj@Yw%~^91cf`nWbiCaX z1Mc)q|3QJ&QFel4`@W8SP(?7=!~_0$S{ShHnXXX=dg#53e-B5@IyS6$b%H!B?6GYj zaz)vU&0e6FI6nBgymmcGg|;b9)U?RMu6hgsM7RQy%QQC+#HmN8Q9ZG&=qe!C;${t7 zekVsiSyrYD@QM(4#My3Dt%=D@`5xYAKk4EUB_LZo6V0WwSjPn++EmfRwCnn91=fMgf^zNo)?Byy~NUew}lM{b>D^N);|S zb?HW~pe#@4N3+-Pz?F&<8hBR_pV^z${Pc`sC8bxl^h)+W>J3tLg54-d^| z{5sC^*--gl=e9RPP6Q9x+p`2Z@{LS`Dhaxq+^F!%AR$MblU}dhCPbt3FjT#|vG9-@ z5t6&z3nhHumMh*CDzvV=crAw=u}fOozO+m1$RJ#+2e%GTOr-wSA<0 zESWc{zoT?QYNWa~%sq<`wiHi`Spk@f8gndPu~)Y9HBn=IRwDS%)I_`qazx zc+i;}MpTqkaJ8&)nE2*@p61eT>C)Qa)qD10=1XLs&l_hYdlB}(3}eGmEldo~Y)(qq z+1QCS$ZhS|-|e!Pwo;s%!{V<)-X#$!Vu^(}*9Sjf5(~>FnG?AEi_8C>P{B)l8Hg`7 zS}3Q0w}{HR?@d^((};NNnP`g}{p}o;b`*J|+hswP3FY2g7*cuNvhb|?lVjSBI7Jo0 zi0ARQLq9dDMsED2cFLBZ;;U~pWx^qWj51v4!@D6_Srm0KN^LsiOnhp--}YNle?Rs2 zpU5E=kF2dVmnio<=OL{tMKsvSRN&Vr>qaQ$Iw?$%lP2$ZGR*D^3$sc-f>Xb3|IIYv z+~$1=c!4vX4#{UAlnqb{tJj;DQ!XRBF0XS1wX3$?H_A;QTOd&`X9Y)Gat3Dc76+gb zsnmky*mq6Kxvv^d3!;p{?UVUPDwc(Q?&+bcyI{e6ONo86kR!la>!9*_WaU!hy6;b6 z9~W$wU>L>#vNT8avZW=z za7c{x#?XSK<1|)BJQD#|xZ78GC-sEQ7bs)f&TXD&SYRs{WNkhxLB2nWwE7Yu+uSBb zbc-&zyiWE8wU?g+LmFHNKFfm#2RXBy2$9Ds2??gU|E~q8`D;dkEX|xuXB~9{xsKp@ zs-}wBEtZn_Y84$c*&H8Vl}BIig2yW+4V;w`n@+gMhU4DL<@F`e<@`!DLav&9TJW8U zii!d>QS{T}Y)#yog7Ez*>L8_DX}}&kg1q*Y8WJp$sO*6yL8oei?RrpU4O}qlq+?b> zOObZ3pSXa-@2)ExF`r46M%7H2v%I`iFeGG>aBEs z6~0U*$FHOQpy1k5a*owHK*Xb@oQzViS4;e(U@G}wtF`7?+oU-J$wJ-E_C%vhk8KbG zF=zJ0AgSU{WkM~CWe&l<>(Sw1F8yh-e@ddC&IUMxmNtLT z&)dy@Yi{m7aR?dYH5L3o9N;CACC>$-Nl+%v#Mn0reLo%^HA>`&3t+jwwZF3WN ze&9|nBkL4GtRZikt3nf^>UDoT{LLi$mc{qV99xni59B21cF&*Ar4i-AX|-8hRV5C? zqPbPdv4iAV+{Q+~89L(|UP8==!lE&TheRH%-)Rg82#Un6s}THps+X@$bR~Lz+4j9L z?e5Tjd5FI2BZJG2%Tkr(kfqn6jj110m{9Kh^=w}t7CZ89Yc??F$kIu^x$J~RM^a>f_z?}di9 zpWM7lMGog;pmZ?ibK`sD)`~5#g^KN4sTHe&z}nlnA13l*V|Uu%H(;D*}Mp? z>8(IeY0i4NhUY2WBdOKfcL(%g_`mYfO9miFe0duFj{-)ev>F_qsO2*AM-nAJ{G;+t zF2FuB=y;ch@++?EJ)OWSyh9uVS7b$#ZEWcQIm%2!PUW6b;c&`6=FSZXIG>^8Q!Xy= z^J|oYn~=wzKyP(nDUSwEzVfQsH)}Qq;SD{moDLiqT{(_(qycYnC!vG@fS@*A5@HBr z2!mw)_iNqSqD-||JvqTW`rRIkm`eZm;oI}lhd1ALm+Dck~qZt8<0^OCtf2h zpBPTe0+G8h7nZ^EcA%!@u|ZSp>j91#jo>oTH>*A%n2XM}!Bk(=bgd)e1E(0&0`>#-bDJd?%3#FJ|u4j7-Uzou%?yh~}T9I23) zMYS0VTF|I5ogh&6*7gD~HS3hpM9KG z{mGJ*-%D$P!DqcJagFnGEn>w70vDF{wB!<08f6eMaW@h@mV~v#W(&iHw-Z(ixXX{) zQ*q9HYrm+WnS4b&W+?hp48ep6%756K%)!{*NaBqrij;~+Xe9qG+V+HMu0=H06^A4} zN7E^dl}L^RN1;oaCMs>3{L%V!D1WmvdO~y~_j4Xb>M&Dxj?B_ctAjOeDj^vU_KbWT zqtPWpx$sEYAxAp4;Y0$OJFB!K`V|*(^EKnc_NIgM;}zRD5PS1(;oFn+jkC0=+U_kZ zL9O8do1JmWe6zY$$7kp5=6m)<3i%7Egw}BoD*Xh3JBu;<mDtf=Q98`|JW79dSLeDB#DhP7UfH7-E08zA!7 zWC`5`!TXGgqQixUL$ZRU$sx9-0{F&4WKodN;~O<-%Hpjzq_+!n`b3a`I9S76fDiXv zNc!BJN4jKIF&p!y!5GNSeYLRJi0pJEX8;7Kv6#>OJOmlR!QGorSbV~wq(29tRu$cL zE#V&GH=3bP(vF(+5t+mGALMYZL@XXldVS|0Q!^r4dM0*RCNA|fjtYgUZLa7dn)%3# zjRMPkE=i&2NIWU~0zHYXJLXZg{*3iC5ydc@t>Crvr+u}@ILe9FpYeU$4b5qFa;2&- zP=OZ#B@|jxs%$b9A{Y6PcEoorYSzMLgg0!>HYa7u&A)1u+j7iH?(TtmGI;sD%Xrf9 zh1#-t*e``SE)~3xH+BC*JVc*a-EB=QT+>B9b$!HyMchC?)&}t?w5$Z&i^<#*KD8Oa zpz(PXvdYaY=#YqS3y5P;Zu6i@Hbo9DC_u(N~LK?7zY+o-7 znJ;b}k}2m2LUg+LHBuByw7z?$cJr&-ce@)sWw{ZabC&(=)&kzH!(K-^vq*X}0M!FC zFUq?YCsL1^*59@++YH{Zcg{=(9d?v8;01d8>wj~H>34OEUc~z=FJCDn*+ZN?eSC|b zM~@TNVmqZdA0J>*8J=^lQZGNTYnG9v=z84#wN0@I1Xy<50DtxrFG&%~Pl4y0Gfn#| zKjSnRPJ>ZCZQ|Yb<|=1csh6dAkzI9Ae!I;L-+UiBZV3Po&{U=ziry-YP%?R;k9nMK z==XAdC}0%bbEW)wFI4;EM-gm~n&@+%wc0mKE1IFhWrNOMO4N!lj>yB@_kUsqwFRqQ zYi=YZa??taOg&F*TRw7a33GAQ=$+(x=|`MzaabPnW$R4Ll^K!6hI;3o_9s=82mgS= zTzg-O>p2mwIE(?T4~8yv2^Zml!@3A%W2>ij2o0VXx4W7_J~ z)v=~o<5-}88<t3@3J(!GttAvsV~vN1H+y$i)SRe*g26F2!jZ zx$<2&_8fKRu*mN86eK72@yEaz9)VwK0+i_qZ9$&Iu7`zT+|2t(?oq=Q2UYSUvmFP? zwo5;{mqT3csq@H zGSQ@l$^K!sMPi1=x5^Z0{Y1xL;q2-AKet5shPzx*>Wamq+%`N(h3rQ&lbIvWv6WAh zJWM>)rhYXLo(NwjIOcq2^IvY_Ib4}EcrCs@*I#AYdn4;^E-@>SxfNOu$$5dB!4w9e zDdk4~z)ta_#?hk+p(?vz()5}#MhYjpz9J%@KA1Q|OSRa$Rf#d`INH_eWZPGvii;rO zU}KI@hm-Grs)^D>$#gfSEJ=N0+c4B}qFz^ZdjFFGc$ELyhX*n?)gB}P?ScK**MdXT92|chmG9F=!#H|Id}=y> z+llnre=YN!xpWj~|Ex}?L$2F&$JOoB7*s$`V!KDH6|V*K_(surbYzlJQr-LnY^sG8 zdT5$E{tSSDIJ-bivT z)W*=D_6H*5c`V1=NU!Fm;Z+lzo5%u8|Mm0Q3vtSFhoT>TGx0eA>BNjvs3TqCCJpL< zauh1t7$F67G_1681Gsi7GJbgotJX?sXo-ACk^@?l!FZAZf?^5E|^3rZx{eFwx8myOJUCL;30HQsm zy@koI``c>*m!{5>;V(8Cm3Iw8=TM=&5hXtnKVc|f9y)JEI~6iZ$(2Wv2z%LVdP53& zrwdZY69=lZQ~TP+>bM*KimH-QWA&GW{ZaDu^z9a1_USdxz*X!MOU7?VkG7$0oWk*I zHdyKMnmW6#$~pGx)6@UVgKwjh*GOI?;x6CPp}bPB^EBq|qR8(~|9BdIODWr2piKtG z4}i+2%~6e&>YdXEZt@_fixAfghPgHw;jjja?DQ`uGALVuBAn%&JFR$NW80@5Vc}c3 z4k4)Aryboyv&pn6zkmUqao5k9?H(wPZ|88SIvj)R%*IAuEJu^pH`R)!aF<-e#CEP~ zNRA*Ghxnd<$MNoBs1wop=`wZC?BwDC^YZeMmkaNqz1Wy)A}_1Y%5-G%k=~gl>t#A! zxsdcm(x-)YhB^hSyMU#ToPd5J%XchMD0^@`;hG4H$+Y;xdzn%IS^I1onU!Th-VN#h zW-)($FIKJU&US5to))3OCEb6*!)m*tYy1WqC*oxH)Lp4vX?&|b?+@dg(WEUhu^Yxt zV=`)>r*udv_2fs$v$%;D>SPJEtk1rJJ+YrVoGmc`Ha4GKqHr{Rp9jOj<6oSquDbmbh)4UKF6}!0}-O zYtWkxpH=_o9CdXNM{nog0><-P4(#7d$2yek{L|;pp{u%l+GZ)}$z0^%A^=jau%K4_W zp5~NWUWeQ$-DHjswATOE&qnfMNKpp^)hMepvXC2scIFWxl(DjVLIT95V9lM9IV|KB z9w|q>mXwwTdkYJJDr@D1T7Hj}NLDxhZmGKo)rlGE+}ZKP+#7T8BD0k-I`x?I4vfgU z#e;KeA)IpIyn4@ft@C?{-`zTc*NHzMLVBE3v9SKsn&dx)Et_#*?zao^;8xUC@ z(Miivj_;7rW|@Rb`6X+@*H&Xh84`8?nZ3^?w{Ba5#m!#en5sr4Aa@n;eKT3`-fGboL$tf`0|34Kql2&B9Hdw;P!bLH#8LLWadf18Jk zYBI+h#bUrgb1_o+!`y(jHf}+~S6WZGVa>6#Ypq{^yOe1-IG!c&3DP?9bOZMfLudg9 zVZuNp$^vn9RJ`ls zVF(NB)$EBFSSve=lt7T5-7VdMFcIp`o0;0rRzyeZ>*z$`MFWIp81^4Noa~-iWkxLh zdi!R=&94E%k4qApa$s-5$u zW9~bPOj0^T^XJMJiGR&&S;D~EGTvD=ef#h7WkF6X0O+M z6j|Plx~T%_33hAk_R^?ObVUMwx7rYhA^iVc`p1L9j~5o9F^d}}a{|15ec(SpHBL_N zVxXf??K_8`dRt=KBgmlVW~*%w?N`D^ZaA5#{ntBbioF+-0Lx6$3tC*1coLSC`nD_P zDr4LdkQ|!B8LRtW+%9WVH!7v`CV-|r7@j@^+jj>&S724pAr}MZAOMv?n+ZSKf6rYz zl_ImW|KNZJJbAYtNzob5Y-wCU6_C)B8fX?=JZtr=OzWz@)x9Ml zM~MVP5NtW$oUy4|tAAN!#zFfT*Sj!Dmdn5hw6M4nMG@lF^#8%b3+_ zNV3Ufj@$NxkFyl2y-v}z)b?6(e2lxu=hK|%)8Aszl{-D;;(x!F^4pGrt*SbzNdLK z{iu#+G)#lY!R*g04(lF&DVHnOZCo*1)4^nVa^OSm_PU4U+UhE5_VMf`{L#qn{JN+FRW->0 zdmS`E&|L%sp7F+im2m5IYf*Vj6U4g?kEEq2QW&5A5%j6W?FL_8*2T(+r=?C4qQ7m!j(bj)9X^&CyN4^N(Lo!CfYaG zd;`pRu3ucf3Dpp#V=c#1UDnJ}*qUrA207pF$17i-KJ4Z;^V{Q&@t|U-nZ2~#lF%T()>@JUv+4~8T|qv1Sgx;R<>j_;)KIDF|vGod;q75Q5J062yZwC z3vIXS@Z-<(c2jOV#(4ydf}V+*r<3uY)o;zzgmz3T_Oar%;u~hiEpdVZYNOFdoA~p_ z1>(20^W#e3Np02pUh3Jnpk|NwDn`fILAq>V=J%uExG1oBeQR%JC-htfLXf^QgXb2d zdU9qIih-L>!-u!4ob-3LjDa4~Ab)~x&`3zj*hmmX$?iK~8R6uGwh|$Be_5RCl@%!L z9e$=Nid&EVxTH?eebs!V>qCUHuza^A`tRa{|Lx+xlYb>Cx39eK?aVJ7>HhJ7QWTaQ z?4Q2R0P0F@lUjf`JSV1+y^)lDe**09Zk)=3w$Tk_CG10}@qDtg$u^t7G z7XnB2*WSow_UMl77T~qzr?z@aouct{(t5P6F)WjzQtkp06zxW)07PtHLJADZdObMI)F#9;2GO$Z(V$iL% zAK2_yLyaFbA-<@a$=)p0lnkkd`Hy~cZCzrCVY$lv&nyAFbtlxzGKQ%Jyi`}Gn?i*V z#gAJLC_5Ne#JaLm8FsWTPWt(BwFgFVucNh(hhNuhXNi6|UJYk-aCZ-fjuJaL&D>m2G$G8t7*GFv zFFh!r%Ab?Opz0FdgkT;mPgt@Oi6~S#(?kpo#4|nv)!;AxWmv~s)0x0Y24Oj*2S2IO zO06r4KiQ>Y*+mn;hXrK2?&P^T6!$&7-J^q&)hVN?%Qi49AblrjN6Vd7ndrVs((#y> z5#YQ|bb4rT2}H3TcUy$gK|c>3@X%YTYl@DZsqY^FT_0#~GcQw*HCIIvh$wR=HKpg4 zf$(Xtt?oE>#6bq~H7DoCAqAW)&lh#g-;Tsq#pMwWIInKXZIrS_Uo$sMsk zj1W-xkXz{FZ(PYvoHf|$j>*U}m8Rgys%U$|_1zHR08{`mc9oSED$F1v>s61_6e>-a ztdCZ27trS)pR6n2-=2wyEovaaFcmr;bg*j|w(AmgvHx^-{}m96%#7oahFdLCf;pxm z4DPWj+1}9s*eS3+0n-q!Bb_;h!`tG7-tuzE3H}@ItkbpeX6%h3*KC&2y{s%a1J zW8F#^q&>d|DFSvPkAd4WhkY~axoidb zXn{j%`l05>!i}`Qwobf z-1>K;K?a42Ix=t)4G~C zk>ck@q`vm0aF$FZx=Yo!9^!VHEz!cCLFZ0R4?h9ONBOUS=i=fczKgZt04xrt2nXz5 zM78)J{5ppTXU94H+piN5SDzAf$#*_>$BoW(-w{?!(!Ls*VN)u(cs~-6ze83l2ucPo zTj~R!Pr=U7ZIhqo)|)`X+2Wb3JgKo-K6ARH^yY0}()#_s7T{}z1qynjkw8#OExNM( z69|1ISCN~z9nza07O9Bx+jkjGt1(}oWtn76OF|zaaqm=~_PqkO9hfJ#vB|!m6`;=3 z_lD!8kRlJ!0;Ye4^^Y4F8SI86!U{bRlc0>G*j!TMD2}{IjWPY|y&KMxrkdwPCys2; zJekv49c><}Zod`Vt*Q|9hzdQ~0!A--G^Wsw9gm9M<@dwkLyA5Fx1fs)3Yf++(c@qg zptSZQek+pm-^b%Vw^aJWZ@*C-L4jgPrx02++TkH=#YlK2kVoBBi!D z(nw=~YPT^Ak{AnZLYR)ZXw!v{dQcxuH}QKS{-O!UjC82#W-+89Sf$E5JiOMtkut;G zbnCFSvokBR*h~(fQ>f$a1#+jMWI2?LWd{fc*|)y$;&H+ADM*Y@nMH{v($r6QQ1Odo zv_6yP$G%cDG;5tFrJCngW$CpXZ>db!#tiBLcd>lpHdJ=k$d{VMnJ0ER92LY%Ihf#e z<_jkteoA7k*(A1qEmGOiGrouQy>B%ywxx_^iRs5OYxm#Ux7ziITfg#0`-VzPz?$7eA5(Lrudi>OSvqt|Fv1_>NT(rFQ2F|uVL?=- z%+loU(uEWTJc4`liv-(C@UJQe00t?fQ_jD}rZ#dEN<*K)I{oT$xUV&u#?cu24neFhQw=17yA#P$C*PN~0=z4CzdzzBz^-{+<&L znKl3hB9*z;5m z=ML`P%8~3R*&C#uHOp^uH*t!zS*22RL3|0nMs(MRm}@==Ts71OGn7%i{znSQxfx65 zXo>AOc@($+@f7Z2@Nh)&;^J#C!kz8TDggb0Sd^Tc#tBYUlON1^O*5_*C>+Q)jqi{BZ5b3Z|3k|IM-#$rH5}ac{YTY+ND?E$-{klvQt&828 z;al-D)iQ%$r*nM6&hB(ZuRjV-js|83H=PPSUwb*hr7k#=^u3AhZ;i?J&23DP<>~a* z(xlk_>BELLJTp~C3nc-WacnKCQgg-)Y?}1&2LsWy8uRM9~q>} zu_U9(vOwGKLCg9r4>iUP#zLFNP>p*s5zeKrA7@7=ES>kZz%rbNgtCWyIoiMYIGth5 zGJip@_e@RmvEQraAn&<6?BqeiL#27&IQwFbd5JKlko`o)sa)0J+Aied-*>E!TH=fO9Vh;+nc_nApK%u|YSzXETCwxjL3@)NkwAZ4v z=>C}wyJ@`~P8VCn{X;-CfwCmXrUzeMeOstlF^=(>Z{OJ{e$=TM(~iUlX0ApVz{5B= z`EgpmAb@cpHfx4w%~M?zT}YOT#W}3&QNpGeoFg;U(C`HmXIYPB8B9j@|3}kVM@89% zTbvT5`#ax=T{JLqJkMIz~itkQC__5P^@zd%Snu|8%)nOPzV& zbDsU|{o8J@u5XVlv<$XA`t4gD<4#=A3Ieu9BAN}JPln5)Q1Jc;|nB!{d+YI2OgjJNxSJrg9lwMnk8&xpH{84lx1 z!L|qF5&hFzYRX3?A0Dr+cS0{zS!LCjNtvIm{wO{cA^F$jK^Rps8VZHUQc-EeTmu9V zIEtc6xC`VLUFN~!z#{a4Ox`?|EPIO*utzB=wKLk&26}){qF$Wj2E)>Umwzz}z*n%RE-fiksGTxVG1R8bbN-Cm6Ifk^0Q zu|CVr(gv@9$~meb=*5^R)Q`xOP3uAYh@?jApcR=Valibf{}87;`=$i`q8PCBCyx=f z+YB|Uffj7A2%{IKt#RJd8B|+nH~g|;$+WixI_;YbM=2-<7%;WGP)=fKPllPthFqd; zyvn)0+>$29C-xpq^Oi_!tfJ|&I3fpgO8et1n=*0jgzRtJNH|d*{3p(lpDudQR;`kV zG_*7Rg0^OM`Y-sdG6{Rd%!Zu?xL(XlYns4z*Z zq*u9c35aL6nw0|o`zZd^QE1?J!4?|AKFqYJ6H( zBCUIR`HNHkdgJEgi8%$@8_@>Es|;=#S9=r`+xoQ07!v*TPXaioB(g2?RLB+UYLK}f z6QrNI>Z5dU+FU+q$A8JN(ey@2z|DiMrm4RRU?(5lkvC!cTO?pvA=)32LhnDvyuR_r z{oUg|&iE{&i|ZzjJZj*^JM;X423XyK#d%6w$@-Op*8q1i4vT@yCKcDJ-4OTXqS<_v zRk;S=^)i-OMDbz4qXdg8hTKm&OAlGfTVwWHf&K1;pt9GK{74fYE6~^i&`lR+mIs&K z+sf!0S#5UhcjLtj5&CCs9j|nN<0t6xPt+EdY|z7hoE(VA)4S^jFy#MBO)?TsK0Kff zau3@-sGu89y&d?x)Zofvcig=tG`!T#DfH_na3+CREqzs)KJ!6|9TtIl6{xT=N+TAw zW%4FMsuwi*wnbsKuyqxBtq~|S$St$t101<7NTqR`PHo^w8fdCL=-2zsAMFVsXHnvw ztlCWtR!hT&{G7c1<)SM?fNbfqqQJbt%Ndp8ExwUaiKx+NH{l@ra&F3}qB!vk-FZVf zgX&tMS!{u4jF(3z9!ola3_UTPLyF-lLtGQu4>Bf~mLmBKQ`KkCL|eDo+%Bn%=N0(G zcy}tT4MuE+KOR2M27h%%(t2RaNC|0}-0ORCCjPeepx%lCSE>d&1){{j8B^=zR7Q<% zm%~!bq5mpUp4FMRZupy!8UknK7_ZW5{qcl0%h5|(o)L!hPuT{>WV40EW1q|i*Ibbf zGqlH;EoAWQc64-jK%RCFMfDwc-cEoBG0-WzrDxkXvF4GVgh=5HY-zW!;=Z*eI_erd z$h7QUJqt9p;>}$@-+TF`^H_r?wIZ1drwrruWZJVBFn-U`sOxeVya;-{r<7<}{#qMx>JM(_`M7a+zIQY&f3N_8`9`cVvx?dCxqKt5 z(TTtGsejAT^g)iG-&>Izkqp8l}#@H@hCN2&=)(s~tyz;AI2xREhS=P&{~;@15yu#MypA>~!h5s2Vz{Pej! z+I9R2v>hfNb1#3B$*Tn2H{i^mKWTgh!s5EMWW+Q~0=nLv;m?X|oPtx7dGTqC0~eEJ zYZR}p9P*-LQLQjmKBiUJqKvoTba)|Inb%l$-1qNkKhl6Xd($s`$O?ZApLLz?CG^jj zC2^`_uH;Oxitl05+EBCWYB2G3(t2h?lFa7l=~Jxd#hcx8R9ecY#JG7SU)C9lubdY; zs62D$O<_0{FR-Vp*K(&nQ57@%rW$9WIyq`oXA`J+d~@J{_)_3?>9^KE-3_| zbNk+*cE`MfgSh?JVYS*jtOnEaAejRxUO-Q!?4&_BvC`4nHaC)@uKZjr3Y&BvRAX$; z1asP}7Vx+cYD=ferb}}<8U<_OlCF3{i9s4hPCFJlvFIn~Ai7)?l;oE_)y0ba&^f#K zjtUnzl^DYs3r}W}`rWeEVGmyqUcUg7Xjv_L(Dj)j1pjGka7qkZ(c2Y&3Okiau`pto z8y6K6Dr>%-GX_+(Hodh{M*@{Cthb2mTODjrWH^;RBK%|riezJb91wz22OgzS??+iAp? z^2S){`4`&sSF<$KMO$%e92gz{7YICi6jrRSH`B>x-vG-y5X;`DqgheVCzAs*$I*hp z>IOjr&1%@|`|Ax<0JEcgM(gqScQLLUSoljX=v4ZW$b$ef47Oks zyl?z6G7N=zg1+s(f#5wwla|8sTp6`*38xE{BY&!e%>G_!W&vj_>;O8*jR$T;j2wu; zwTIO;;MeYh1JdQ)rAbdtsQ+Vx5p<+6^uZbU1u3GHYxvd6uv`Dd)vxgJ!8@&8-7I12 ztUqXkudqQ1TeMEVUyyJBjzWaet%0K3= zJJ9C}Q7!wYfOC9MC^0~`m6IBfG70-0FB{K*ob^vb3DQvJBZ&l2>rdT1Baa@%$rc(> zE-UHi4j)a4+#4Lh#3)qccm{qD9*Ol4@auvu|9hdqQ1Wqcm~r722Nqbh%7{7pU)`BfUvvBWsP)aNwM6Niql#2yv?JD)P z_oBz}{%E3Bz8#?qGXY|8_@jqd1||v8-^4=NZsNMkdBv4>9#0pS_CU+>>!mnns~+)E zS5fsP0(|f>OL>VAIVCc)F_QRni{k}iMH_NhlgLMbZu$V9%y2>X-a&wGJqo~OJ)C>E zwD`*}(4AzT8qdKr#S0`!5P2H)9CqrAaLipi#b>QWF}b= zNEJ!(b0iBew~a{l{ki)a@}QhB1=eD(wczLWkPYt#%cQUwDA3`|N$qO>lxiIvD}WY7 z7kK#5UF~tewtrkCf4=2b;!)S)@fC<3{x-!=5Q>I#O>TPwaS|91Snbvi4$?m5Hze%6 zw5UcE!TI-a4Q-YA)UznEi-@fa@hC$xO>)sm1%XYkYjo%Vb-7{0zDHVL-!C8_Vrx3* zq$uP{6DiE%;jmFFlR4d{G&giD^e-yX;ZMx1HxDW|Q=t1zoljy(qpifgVShj&Mr|jC+ zv4KU2tBI{JeJ=NtV4Cwl0~J zfnDk@Lyy>Mt%CAEqc7+t!oBwf9c05}yG;glILWaO8_byF3=_Sug1{-DU1jyoPCCJX z#Ob&mX+F3}gwXxx=Yfz=BqV{Mnf=rEME1@-OM@`X>z7a79jRT6nl`5?vtk9W(W{RA z(p$(53h>kgF=1FXbl#ocFkq4-GK6CNmX@5NbrG?cT1pQvW&;J(vmevW``DH914Rlj zD!-Y@DAy9L=4>qnl#y2Zt^mxXg>UO{D}!0dm~909vyfpY`Pg<{l``1cm6Z|L3!s8@ zJlLLcAj+-1`WB3}c&=eMZ?k09KGMvq%$C!s>JFa+O2!LXS`2a@z-l$-3{A&EKtKFM z8d>6?E~6l5D0)KG+0o>x>PsrVFarD^yFcW;%m#Vll4qJ-9@e&`CKoZgU)$X>Ts11$ z?58gB?IC8<(UsLutDB01@V0uZyJy=czEfyJ7qdMQ)9@K})>llC609_F_*_>UWx|dE zZr7ZWDqNj^WxFi@AY`K*cxp#;ta$A3Wtgc-zAI_$#Lh6a*V z`-)E-Boi6YW6OGHCSf=J$p5i48AakbM~6s;Q4Di+{t5W;6Th`r9bzl2eglRnvl;1C zTh7KY8uwfhjVivpU&lTi;hs>0PC4@(s&KnF7s)w;V%CnIS)&zje)c}(>BOd^8NEuC zNQeKOnrhU$HzE7?g$ektl2GFQ8u{E$gQaT0Kxy~xJo_cEhKrmvI39>h?7m5&4h#uV zAV@EKcsvQmk!l#vpruac8`zLyBA+@Zj7EMMmihkG_fl4+{Km|1kaSAf3;4j}SI~Nm zR8Tm@B%7xL><=RJ7_2NeO)F{MaF~`pbEOq%Y_k-_%asr`5&vf&YIofDCUQ@QGvixs zA`Sxk9M*E$Ujmap@Sptw?+(p5;A9RmD#cFCx?}JyK}}O5*+;Uciv1-%L_{dOe@1EtJJpHR7v?`9hEmaA*2V5`;5 zwW+(E+JZ@h>aP{P&#_PFyr0ZHeEQY9je{EX%|4h#K*ISpq~E}zM_!){bS1-wkmZdS z3a4Q4lVHhxc>A~HSlx$7wb`Ycv*WbYed60he(bj|91)j78)55$zZr#g4Q%gGrNh=! zi=-zpP|yaDZ^CN7#nwA~TNOFJJUlkpSceemP6hZenai`M#(wb-1+U$ zRqXiBVS9lflAY5eaN;dC%O)BRMm#Gj^v9ymzo#Ef8^Q1BBm2{6rrFb2USbjbq((>o z^;MVg_`o}2%r<_iNRm-q_usw@jvxdp9UT>LNnsr43ktcePblM11sSR{kmfFRtajGg zwv~uSNBzKzykDwgv)#b_oQrgY28dZP;8obn!A+HPIi|_H32azf8%R@EpwS7G!k7zE zJ*Nbd8v!mu(D?ze!Vf}S{~s*}iLF+NmNm6l2uhgS*0q`v-GV#? zT6HavoslIk^H9-mS)Q~r24|3^cGZdad zqaNIHg}T{en{uop2}}?4^x>ejPZ>pkI=E-$$FY7{KcF0Ucl&-Cj^v6%MNRvb5+HQUR1c>CQ~S%@z$h+KS4M{+2OvtY`9Gh6$-IKwsAPzCBU!F&7fuRS zC@CA_!BJhYxUa?U%Cl>!=j(|42d+@jdQ;v&hF+Hy&bHT{$|H}d4~2~tpbe(kMP{&J zvu{EaMeAC`hUln@t!=YJJ|`{px0|ogP3T||{1!L!$g)!|csU-KN;lyqN7xJ$2XF`u z`ib2*ZP&+Zl1e+}p${EBrDAF9>b=;@;=2ESDM*#nsWQe^-8Q5CeVakO zKIwm;R53$c`cPEsuS=f7cyu`vRT%F+tC6%(mMwH=6Y;Si)J_ZKOSt;jtE@+NB=U-V z%94xG5j0kFLkyLVx|l{X7&tMEbFeaeN+coq7`%LWZ3nRetc&WSX!ti8i1}Zz#Ptv> z6tZI*v=x!hs|3##VWk!C&k2^~-)=F@r4-9_IN;B}0Ah_Pn#Qzh+_BHw8HdD$Y;wbP zb(@=Jxsls_Fw>~L<^!8jwNc{FZUTmluapotAb`tT$bBRvZ$y-*4*ONJqL}U zp}}yptniesI~xJ#@i_6bmCsTyl4+EeeL~)pT6QQ@W-#d(=g6- zq0xXI83;VK6xqU;Obronv^Z;<)XOVnG8pEXH_MHt=GA>wTwVt0*T6W#|9fcvh)WyV zv6<0bD2P-E`+jYmPKvyN z06hv+?jgd|mAPtL%AmRJTl-lTz)DCF`LFFaJiNO@umgZ?0H8Zagg)7Z_f{@V<5ug( zXL5yl@Wwfsh`rD)@6j>sC}jn$-m&1`5oxY+f7uv1(ys>hpPO*(ZE-JEDchX^(0ZFTFF=Co$tDx6si{B>zG!wY@-Jt)=Xulbx zgk`>_l^@=dQ+?h#;}8p6?j#jH8do}{^-jZQ^7-M-nK)W1*>93<5)~Oi7e%ETH!Ts1 zENMJqiNs%<&Nk`2{m4zB2AfkJnT-IVTD|fMHkuXEOFFZKp`pg>Ey;V-KO778Sk`9f zB7f3Fnlq7FR$V~O6`%*axX|VnA8t!FH|HGq{tt8@38=@Trrh@%-KQR61qAZ+zEj4$ zZmq3xZ1V*KD9N&fAHE97S$koF9uy!kGDi&9#y7K=ec$lwUp)q8r*;$<1kF`4+Gm`0 zFL`o_zGBiL2Q9$9%#vg|?rWr3<+%4DxKnp>(e3NpE;J<{5^sVO3R=_ud}Gzc^xI2< z5l5!rkVs+fKr!ms!vA{#z_dO?7?)+|L=}c|;x5o=_+kEw-?<)#cEy#8kvTFbxyww} z?mR?hFP{^^kg}Qo@}&d=hYvtvSpu7szm+wiER8pIvDNCbp`9T=`Ec6AVd5-;d5$%{u3rSNQ}y=|AYc(PH%usTL&lQMdY@kZepgUd>U-O`tHoMZjxUAE;!V=fNcZc_V4 z+1o79^WAkqO5bq}PN()bJkkSlC=#oW>RZd=_gv}%3q;dY{z&?Np34U1qfq|-lhgI%p zLn)G*_C1x`Vud)sT~u1HMfR>TyIP~|P{h|PWyV&`3|1*D_d{NWXA>|K#&!g zfxxOk&Kk_*!I$ZY6N3l@F}OOw-%nGt9FSnzkf2IV&#a0+3jpW9mpeM)&4U0Z6N!F7 zT+@Y;8Bw^aam46lmZM53XR+WGpun&gnQRL5|J?k=CwZ0fqOh&%-fTDdF@!%#MU=A-@HN{3?qjByjmYo|!IbTPLgTa)I9a)@|qLYP#f~(qp z8N}pRD%c4Y?jp0FZg&4eS59}r-SzrNxB8s1AsJ45*goI@1!seCzPCtv_w0GlHswZ` z1Bp!4O*6;E#z-?Kj>4Rk2(69AVpRBtI=oi8nM7%rKD|~I#94abQZ>%crkU?kA9AR4vKG3pCgIjjpfolYx_9c?!u%T&!lYhXUDnB3<9U%lb5Az>uQfWS`^Ez zLsG&z6oNP`56B+|1j{y8^}-#vLFHJHl`+f7i5o#t^6y}SXVGdyVaV}cjzy^w8m~P9 zIj1m$u{w{8y5$h0>vw4J3VOFV zOn8KyTsTN_nz*Hlg)Q%wNlqnO%{9~#vy{V-%u({M{e?M*!2Vqdt)9H=5PRersmlBl ziu@b7zuq~(0?75NrCjQKdN5a|{(YpDBax4*r}9Sn4&564+?EuOq=k0Y7d{6c*8`wb zX*uHKz(r))6zd12Iv`ZcvIFiW<2}$P3J7W)wW2P*qAKgTQ)7l8x&@!7orc9q3mt4oaQ~D_8KpD& z1h=rf9s54&_*<#C!5O!gg}yy*DQI#gfk>dr3EXQCtvU3{Hj~p=8)w$?+L5^EZ^I{D zUJ5l&!_3N+Yx~L?jy*(*K-be)kMTllSfau&NQGMjxAG8Qt_Ik^)OVJ2uO^3tlJGp1 z$x}oD^*&p5aCMQehl|Vdu0e5ijv@sPtR~$aa}~NHY0F^%PyVkvXB%=M__(t0t-aT# z+S`m69c%jY7j6t~vL~gfU1xu(=fV!l#fqkvVJtP3))=>Kbgu# z4t1V_3BOjkRpxPMnms%6VZ`OF0yPC%vF0iWUH6se0J%E>&fT z;6YbI8yAlR9K>yg`tHa3*0-uOz1@-i{dWAEPex-|2$Fogo3D9&)+lKWr9HH6WW_%I z`Cg-P@zke_nm!Oy@;8VuH*3 zWwh;foRh3Jf+4&ZpiIj$0p$@u?~sfrYT$*|U>Lh&B#~7&n?5 zM|FHUHl5*Y{AC}54P2tL-GsztUTic|`{!k(h)xL|Qps&?;hr=SYXZ^H4iU`gj9=qV5-Wps+=O~T z2ga+h9M<%uRP@aM%oboD{ezh^Ni-#*W%HbB2~hK&zd9@=K!U(W5B!F~NII32mX$$c zwt##~TWP0KG1E?QHgeU~s!pHOF%$S?oi*~BtnX~=R6pp^0?ExbMcPd8l|H}1%kWB9 z=I)%N`Y%aL<8tOCqX$9uXt8Xc=_0KRh2Z2aof!unkL1aK$h=0h;mr6KXaWdDJ0G)nQXw*YVP;Ws8*)}Iy09BoZ5A5l4iTPR8 z6)K<<(c#iiIYj$11O{GVJ2U<_m^sW!a&1L|Wh zh*-U5HEPoUeo0|_pE6($h|az7_ft3-{~OXLvF7X21Bo*r$}1n?Nf~ zd0aA=-jpZ>j^z@W2Ar4$fe9<ktzj4-SS^jtR?Bs0f?>(p@>{HCE$V7klI^ZmE z5MxU7f4gt8cDkl@qT(Id{P;%J6zErNG7d7y>c)gh6qRlBRC}HFd2&42 zZ4n02U6U~ftfL>w=_1ew+6{qYthkK%oe!_NPNa5hJN>pYDEhoP=Nw1bI+NQf`C=+t zT^5gxMpf{ihy-^ZZ-l?W)1G!lv*wWkoy}2u(|dcWF1KbA1K5pz%)726LgvLLqj4K` z=HIVO)8-c$$``$(yJ{|%Rj*#qr?4kO_2lVBqSC$P%+|78ol$cRli9t~H`C2UN8Y{o zbSi45cOFtI3jZ2bUf8&WGHvhod3Kl`;HIDJi<2Ww=su~YXm#BbYd5u4|7MQEp;g0A1Sf5q6daE)$36=}k{6lu5aH?+vFL>STq4#B3fhrC z99?xwVN&MK)zHplR#rvfJre8r+>b9S^ch~wwtA!X7*<e6>69*MFii+im>Lh(PrIySyfCk|z?)ETKY> z!=V|cPPxJ!dC*B4TU$Tf&c7VZ%0%mX94zp+tM-kto(D}jTJ76J-qRhUNq9L@iZ8Y|Ln{l&pVGYhxumh@f*B=%%3+j}@D1yH`p-t;|nnCxwss3y`f3Y<9YHOFB@+VVu=*GP=?bw*;YP-nn z^g;GMskt_C&)>t;;6glUZgLMhylRgxQ$Mb&e4>#<1-PbX{1P>bBxY(D)qkH)N!oO* zl$-_xolgj&y;0XOCHe}vdW$r)q4YK^p}D-Yx$M=ahyh7S$*qF}<*L5cps!rx@vR){ zxGCYl%RA7_0U8+@I+^wZ4!tGBC9HbPZFq`wAAKq4B;bBQ0h@Ap$g7!}ngD7*4=*s| z;&E94b*IL~K_UhGy!4%>P`IkAguc;i&C?%d+?<=2!U9xeiFY^|2E{Jl3uCmNyTnzN zCQUbU>e*q^#}+I=Ipf7*GND=2a;Ow6BNf68Z!d4rL)Kf4Qi-$y0DvtPrcwsgB}aT^ zK3V2+m%{p`%EE;l{t(iL2$|a>&1v?RL zgC$?ho*0e#wZMK%%FF;*#urc8!4h--norOO`@o+zS&^6foqTw0gTLI|CTK!vGe=wn z3Gu#8!{T0eW3_^(QPrXluv+i_8;Es3e*P@2p`O!EBCHBq6mX0|K);{W2p& zPUpMpF65}c2Gdk5L;P!fMmv2MB_*L`)lAeF1+V{$ff5jipr>w9t}#)U%@B||%jx?T z2}HdY?swOH;+2gUxbiN=7z9?a0gu>g88J(h3i>$o-@Bj4kOsNS)qbUZ^My_n$6D$e z8Vg9Dm@PzY2b3K<+*hXe(s_`QNEs`QH`C{&=q$WbATs(^z)av<^=27!-R*#A7FFYG8WW^~u#F{^l(^(K{0}PZIG*4R!Tht*fYY zSlq=br&tPu`WSS>p*%H!3&CxK@8tEg#_nnBl+iCz^3N>KA_GU)rk9nBU(asW@YkNQ zMNC5-5bZA5FntU0m-OR$Om$rvI77p>yb2URoPQQJ(Aen6`hCCa4q#82Vo>%kDZ=b1 z-d|}HXhprzLFWwPR|5$Mj@MV3w2&pW2pE2eZ2d7)=^Iy zdcJwC8G4HdHPN4dD(m#IV%25O?u%k9oJSI%*LD%<>&G=5;bK@B3KR?iX@K=>y77Z+ z49B=<=PUCI>u&Cq0uuaqqhRytJ-4;`GLl z!?9jr#!n($HDbc&?Ml9h;d>uhF)rgd{Srzz&**!FnP#hER}(+3osZ_56b-7%Y;R+` zXyl~>dI1~g%nxU+3YYyQmRi-Y@`d5myElm-2_kYJXBH-d0l{xoZg}-#{#TBN+0z7J z`Vub8o$uWZ3EjTF!_up61Zd$3c*npln~fbG5fm_JD;D9p0@|W~i;*J^GF#!8hUs zF5W`4p1y$z3{!w7lGKxHw*Qg&ee@o?3uvTJB$} z|9@iu=X{WrLC{ux=F#r~WfFv~+3+&s)*o7TC#xEb$j8yq{SGO#!x$uZE&vDTQ~PQ4 z5jrwvP02Z^8~8gDZG~aV73b5VqG2lx{=b4WpQlY&224FI2<|AR=pF95_}Ftd=XeT|`Dwn|O^({%|h(WXAz z*wQ9Q%D5s(k!p;n;f?ry{cTq8u=o%cKQtG>BkWf7q?JX9s?HDQkWImelGx z%)?Xt4u^H>4HTw+)?XPlV2N=-1jyXIIa|Pb(Bwirz7vnH!6G&VTG(d)Jcl{7xngGv zjnXBul8(Wwa#&`WzT+Z|#h~zF&f1Q_AWV+&H!ks8XBaEZmKZXTpjitLKP8IVysH}= z#PxpsS`i)OIr;BjYZNj7kF({^xWFs#_@1XkTcy|ao{E}oVypbr9L?aF6|0IX+@s&Y za4E7w4U-zZNZjy18=~uZIPf0!6Pur@*4GCu?pB?qQYvGKXP8|L-wE@OE?S2PBICqp zG;hNyrY*A6aXF+s0`f}m8zTO$LeU!HHNyaP6ktk0OR_d&E!~^}HoOp+~IOA+S8mWDitI2hE%2}*eL4G^H z1ke5Y(C%6@VnMRqbsDf(S%FInQ@>eaU&xc{%q%TcIF7Gcyb`bNQW)EOjJD`QnR}t} z>`Z}j!Yad!Ctl|LdGgfzw>pyy0qii20G!?qRG^?xhwKz1G5CRO+p==&4_ z^^hpwrc7!AFILx5=a1&PUlYB`Ex00)mrk!f8Lc_|Nal{zP#306HlV6CP9cYv(TlAC zA<{BfyYcen+`)lgtA@=}yDo0E*{_fH=Tl(JqN;5ewGqzuhrksIGhS%V;3||6g2< zHduAKG+iiq7QD;!gcny=k@G7pw>ok6Djsr-z_fRDgbLj0lkP8}c7>N<5g6cgn+u)z zeKdsn{A&_Vp_)gsjhJK~LC&ft_!X}?^LDi$2X@stX2ufE)XSIUPsM3?C{w@-J!i5K zWD>smCjm(Xs2~hV!{p*zf;jQpdL!Nouv9v6KH+XrC?_*h=g$>-O*44L7>Q9<2q_OJ z%K7NOIxRtn_79vT_)OB08?reSdc!9Xa^3$lIbsM?2WJo?;{eU5aLc=V=q#X9&Med7 z!}m;1_kMhbH8LbJF*d3s#eh}7nk<`%{d16S%;%vWdA;LhwaasGuiqQEmX<{t*4x`K zV^`a+S7084AB+U`{s~npjle)&A($lyxcK>2;S@8>0*rQ-eGRvd2--f!JzbTXKGbVl z3hN(pAIwN9w8<(QR>%k{!w5>Vb%wL$w*9%fddbZxFs816kQ=de6G@jy5SccgM^G9; zWFK-pj=wM5_)5yMdu4OMA{20t{r*0pN(A|7Vw7B! zc>ctT+g>=pWM*dgW$OA#6txWX$WqK=T=_{zM`%$ZVSd2hr?6?dy# zvLvZ|va=ht4SAwEif3Q0Ktd%!yriRLuUu z`^QXXdgO1TtcUZaI=$+YIe*s{9xdB|3}G;f6A_x z*)bH{78xcT1#u5;McOCO8L_oVHold*GrtObu`l}JnUj+UjLbi|mgQSkJTr}^gWiWf zqZv%$+-PJ8!r)q1Tgy$Atd;pBpOUp@@lB(L!CT~m*b(aaVIP{Fk7&}xiVxmcZI?N3 z30|=P!h~D*_ZoeyYz8#5XLk?M-M0zNk!XHsD(h#Jt{|LwcKfHaY`)YXjANpD=x2L5 ze+vgF?E&n@w8BnDjCUi{?BVbjzkr}&Z;>dwCBG2=0njq0j`^SWbZjYxQJy1?&H@aG z@gOMBtF6*eMxP!-Hp}-*qcz6X8?`3{qW`(( zx29`F6KBO>U?>R9Sg&xeN|EZxP;}i@BvRHcmNmf2goDghoVEz9#-mx|AzM71_T3FJ zaGL(cryBq71*i(!I%?QB@V-9q`^M&>%q7?E=MUmkEV7mqrPV5~>Bz<1Mv%CMf*-Z{ z7|3St4fLO^RdDPzbSJAEU)U>Z+#vaz_n({My1B0;Q)Jc$KUET}hVE)pIKH)7~OUv{|=V(taQpS=(BJ(JnJx{ z`TB`mY(m@2B`$PTI{Mb=rV^%K;F(~PRKv`Cd8Ig7pInY|fB)$=`Fn}{*oSJ=;{opK zoKi#M!}Khd$ApMfh8J&w+mZ!(6}+SG{0cEHJ!2vr74+ca~cMNH{OFmJkK4C76#tL z&GAB#Elu$7Vi+madXT~uw`nlDMj;CN%F6G5bf7;yhFMV{%Yf9=x%Yr{+H2dyE|DA` zGhkm&02^J0{Hz^g)j8ZVm4ox93mA&j)5dCk4YN9y1?I0vir1V85&JhSBy@=4vkr0| z%f|yS$hm`(&pWVaHphJY8+czivRCwYQS}$EUr%KbW=5@!z_Q9IJ+;!)=bVKCl+z%$ z+J<5{x2tNo5ldlV5vB6R(9TEYmCNcIsE-)rGG`K2BfjR5d=A)+rx_)i*+rpN_eik! zXbCx>wiHyI+wu;8R$ZW8fC-~umNNl?%9Q+m!O7U0&|QEUKmk~>X0F6(B_!!EWPt$; zCq@?R>i*qo-ZUKnDLsmA^Xf_n{u-wg*=5CE{dtM2o7+6WpcKRcgxpZAuiFxrF)Vrd zpz2%>PJ^x&ruTWZb#!ASTb;?#6VcMuGfd)4?nHENP>W82))e&@9GniBBBiU{le-u? zL`GI}Q_~d!-^PlF0b>*&Xe9>sKQL_*{K355*`Wl%$}Kqlmu4K#Acb`>XYK-o6dm_H zlDzgGj2MOXcJ;2W`76|75=7ODFt+b8kPT)!w5;(b%MG#!El=V6sV}Uf0dy+OUqEkI zkk7+YX$<6Ws4_QIO6QQ$ZpGF??2XH$zFwt5G{U-Nd1yszBy52|f&^5bIu5Oi}NCGsISW}KOx zBL&c9)n^lv6@hBS^qNxhceDS%@hS~?jSmf>g3D4V>+I==+Wju-HzL{;=|d*Wr?!sq zngHi?a1eJBLj1W`=jwYiMqvXM=hD?@BdX;BiFI73Z>wKRSwCt0@}5ol`brSztL*a! z>&A>I9P}4;ZkFa`TK9@OKYUH8h<#nF@M(c3o|>FILD+gSnHC3K$n#Z8SI2kcvKr^b z_MsR!R^e%xD>aF{^44VKOxPaCqR_VqkF@`s&5z)w!%6;inaQ*{1&kss0`H(7S!8R* z3}pibDr+ux5$&9i7+V%`cL^(s(%PCAdf!RO&Z9KcyJ@khg9s|EWhyucEv7da)Lh*z zrXJlN0~>i%RH&W#;!w2;RAjfZZhK`1{!qe{p1&3v!|Q6;vi>HAn8U%Ys(vM+rE8t- zm}i`^X|$G9SG76n zu%e|Q+IH4XD`YVJqgH5?XQ@o#dwA_N$>8*eZq^?356q0_p+=&+L$6NIIBd3x>OP1> zX!@hS+To>UXY;w3EQx}L3wfm#QCr0+|FRlsRj_7bixpxPAmR>d2OsYKh3BL{co=ZB zu_vVCFVO;cA-J0VYyP6cXjPCtVJ zP5WRhS=NoD`4B9mc@U)iD|t_Lx#=$QZ|Xzrq;u8Q{)r^Wa$J#-qJSajCE%rwCL3K1 zO6R7gvvTiW@-&N)!w`ebG{;Qh?ViXaYfwzjIjB~CfBD74_FkPG;{rm9Sss9Z`D(z~}o1jhia zU->Z9CBpn)&<>R$y@6?c4Zqs z;_H@c&dA_UjZYanT@C1N+46BWLFiUeDYvQuFm)DUKxu(p)iK6;;VKfwuCyXppw=Y$i{IrsNaE-TZz3x(s3cZfQpzBQ{-g7Q{ahXj zsDh6L{gtcYs^gr^95HseB2Jp}8wFFZBdyBujf}EvL<-g~VQ=Yhpvapb$1?&*S6U1F zKSTXe7+z8sFs4>eD%kK+Z6{(cAN&4GF@EaK0nf- zf*-A;6>|SaR+^gah8CHPY8Q82LOgy#Yq1gs&A0F3*`-;r7$?N_mk$4Y?JvVolsEr8 z#<=|Ixgu_iZ1P3fL`bLUW|c+AfLAAzuA-{h-~u^S-(4X-{rBLrtUfhN2mEEi`imA7 zV}eLzSS_cn^ZV~gKM0^$zwXR!l1V*Fu zi@sM;nc*v~WrU-v{k)HIq{EP575qGQ>ph}9`A4k`_VdDzX1dO^ujHdS67b9BN~wBP z)FpRk5`i~qHnfe8lUSSLz}n(Jl~TIPpCw(k!p;+HTJ*&y9D*pUGP#R0`m6hW&dsg+ zH#fPs-GrtKBPSmHA$`v+?_zO!;RsAS?b4?NRhVbaD`Yd4VG|)S`70(6e5j)du*kUy zV3^{=j5ZDqC_&G+@4vk+XKZ(!wU{e>UMHouibWM6AjiJ$H!D;^NBkC7J9q&($bwWJ zQ<9F!Oj~<-WA~qLRt4c1-%N*UM6!84gbJA6K?<{7tXNhUs8w5p+9W_^npQGP{cpAv zLv|;SYvWH2WUJ*V_{Q2mX~U=EXuE$L+#UW8O=lfX_y50t-96o1(~j=$W@4C*aZESU z-OR*vPEGeP-6oHiVa!nz!_>U}p8Nc6-~Sf>;JiFvkLUHcuKOh>u;@X}sd!8o0y8*Q z-#`kP%jh-plX{orI^apKuF2fObMEV|pSQ}T#YdewvCSMstnc%kg^iYi^FlTG`%8k$ zOQdb3zi0tx{iYWj6@O*&l)o?eNMRtsc&65;CkLx*mD8}Nh1c5&)e4#VhCy~vZ$VWF z!@=7Kmw}LeoW7X8`+W`$`_#31YC!qP{JD)-(VQO4Tc4mf-&c}$$oFvnFEH}~GDs8w zFwfZ5uV91Bg~!_`+RO%a^N3$VLY23X)S|AK4d2W{2SD z>f`BBteG5^mW6sST!%W94Yv+Z!uro4*qYX3XP5!+VsFM_MWNmp6_dWGlvATYgxedS zybqhf$f^w59eL-2`j%jadQ7}qM}6|d2qT;8IV44)iPT=_qvC5@4+|9u)sU6O|8`Q} zMxAv5rxoM5WLbkDjB!c;9EfjZLWiyR1{^L+Hy?=)4;qCNz5N4}Z&}BhfIAVCIj>ia zxJvJ)W7v1l;g<(NxHHK_IIEi_6((qmrrI%HLpR9rRO06NHAi0q$aVzrhA?zLCLUnI zfI`GL1qcy(#8FLo+SV8)GT1(51v3uAB6|@(8)XhoEiGU;^9}s8I*^TYh`rPp`Jc}I zAeB3~MI!KTz+kvha{fu+!dNtu-rU7)V++!N)e-R-zKl_F$l{vqewomUwS?;g)#sI$5ORN=j2ohDKe)`p*ied~rnq4+g9hMR&UHpRlc_EBA- z)k14lve!N(YrggSQAkVtMzQurtF<{gBiPx^Fi}b)&EDkBHDcC^J~AUeUBrin=TL_Y zUtNzZb@Uot)hkM_>NuT+@xDWu<+ER1w%Wvz9XGz*LY<-YuqUn5?XKNgch#f0AdYL* zS0veJPkz@e>X&M$XB%f0)Ya;tH<_}TKb3kAo`Ylzi7SVUi_oMXMTXO!`Dj=Z@H{^)+@cRB` zGlgmL&X(xsu(JR@-0+rlWZY-K-96Q8B~S$`cgTZKd`97vb|LU}=8d}LJ%1DYH+uvw z6Hch{zMM}r@ddV-F%G!brNowbh!=fT=P=)TW=#ybgf6arM?j{&Y9zcdq)M7R(Oytg zao~J38e+4!-Z7ibH#AqeFGZ`)r-W{7?>p3IdPUHqAb>r!{3I<~%Fr|UZEr?F-Qit~ zqj5}bv%*=2){;x-kv-A=X0CKcLq)*Cv=T2!mw4L;-T*3j<#DBHV&%vn_0ikgS32&M z;&rm!J>6OBv?vfo&(;T5AV)KgW&AOi#;3e@>k8h0BZ6Gdgi@0YTj{tLkc^C6R_kr* zf1`uhZE5GU5>N`^)4?7VzRKlF|@d)Zs9!oSL zo_B1pOwH2Yb*PSfVJlET#JcMpLw6fzJGeI8xr>7^Pj7?r4EkMY?14ix*vP1Q%FM6$ zxO)Xtl~b+s2Y-dSD1ShbaKVhOF^g?(b{;byr5@a(>&LsLFF$NVG2}P3%9aUD#gn@S*muE`NYJpLXVTyViPZx_^|%NJC0>>6`R))WhKXXomRH zvPrZj1{&e_{wG-uM~lR3+zFw|%y=HI_^kO-H%crycj^^F>?pY~X06U4D(jxjBfa8; zpN7sNfJqGgLU{A|D23B!3HI3oht?av&_Kl($o1KYj~uG9c7cVe42JHW7?ChqHMxS& z8v_#I$pf!VHNzdsA*V3OxmFG}7Tdef;zT^uZ>K#eZ|i?+c$?p^-K9uBR&fup)+fS$|c=3^f*V7Hx{wkcO?lv0Tz3R zb#UZX%Z%pbEi4@)Cv&p5uctq0s@!+KD1h$AWsKe?uLV5%Ei>2lbFwe@zpBEc*xzD@ zF+W-yY3APxA{6VrJ?dJjrVit2UcM=YG}Q3*qJU)hG<}_*poNX80SO%dZegfV{t?LAiVio=$zJ2L!v@0XznPmvFwLvLScn;4H)t59f_G(MhbS+a-P}~B%8@#taM@f5=S7Kr! zPPGd;X03>FF7P-f)G)ez${SAiuC$iSEGyHl$jUO$(iPu&z&``)^AgQuK-U7m-mjzT zi+mu49yxQ2P09N6)|FH{1Lb%bs}No??FD>kpe^G%P|Mb1F~T;}TvoQ!o<^ABg6p%k znws0w@%4s{_l6H2iqB(wm^Ee8mZyJ6_=$D8d7}2C|kuG7`Nc#i{afPgqYe zV{c0Dvh@EeLWogX>vDb}-VV)A*(J}mkEbPiFPdGoi23f8{#;^E`Q25C0&=j+W}ns-qwI4dWjcsLATwW`XrqYH017I$r@vNIhuS5%j7rlESj zhcr~)bo084nfmLcAc&*eZ87zkgK5UftLLTIFiFy;j}*YqlB4l+9aoMziOQR1`-cR` zWy1lNE@c;(Y|>e)>cAFgnlYHtF)5b#Ol362oVOYn>LWZ`+A9P} zM4smBVVYC&riuwmKFFidt3@(irxExoT z!S>1{8h=TSq@>44i5JHkAl-6ar0i|4X7PzHDXlU-g{EhiEQ!q)T30;MU4}8x{FNw0 zRGKLPgSL0eKu$DQ_dhWUFEo(Q2iyAD3krK9>n=0vx5avkKxc!;&fT7a^?;1z_Mg*~ z(LgPQg#_j=ue%sM<&A74bGN}Tp2nn=T+^`KxVv^O>EAF_R5Ibr7DXyP1_C&nrH+R0 zolSEzM^}5@tn#vEue;X?eJ`?vvz>i>zVN{(h0jge)aaBC?2)6X$?Y&_rDXC zJu5^g=Pp0}P!t^HA2H#|?i?n&3P}ZH*kdRtHs2QK$(V|Uw6!N+vaICI_Ejm;Rm{}C zUhrb&$X!E=LC>qalT@;TL3G24L<^N9)Y2F{!6fn15)1 zr*MA`T`1rn2%R-E5g0KE-hBBXwO*C*=(5q3Gx)fYAr@faS1XvA;^Q*CstdyldKu8=mvzj2Q8usXfy?4O8cMXP_n``FbU|MqBbwMa^b=J%wlAo>z~UrJVT{ zGL4jxgK#t7?u9Opc(L z=kpMJ4u2Ke;qQM-f`nw6K|jY{D1akx=Zsa-h=vLub z3A;K#rUE)VscE6h^ML$K(&iR^yc*D z1VE6UivHvF*?qHecOr48GdQ4*WUbe(Og#odt7>d@2<=b`=e+pMP~P9A#6)4l1Vl(f zI~Ze^6jhg|j{NWKKQ=M9?+#p>&&+wdn&n72@PDs^g%LDTdy0$rXbpJngRasr(Df__ zv6_ht?>h!T`-|AKK42Yi&OT&LM^_MJ&52(e+>Um*} z5ycFfKcB>E-z_DJT1W@x_hl!XYoQ*z3)O;)y@G*{@7 zzCIN(HxCO4v}q0vxal~Qrjend{^UuJXVVAts(+b*ogG1NNdB7PrtJ^@@~`P_GgnX( znWO42pb<>xqSi7qfgN-0asr;tCn~Oe$fO>DGfm5+tvak?xDccaAv292m;6~^S1biw z;wDU|P(I@a(`7>!+d9mc<^+yV&`M5`o*OLt3yk{qvqZwYD-ERo38G)<2g6i$vo^H3 z%-<2%lUJscmnVN-xm$M57{EpXlyjgy?9zcyk@XrW>nHjjrwfK zpk=UUif4`SFS-bS6*}rJ%KZNEBI?4fPK4HevDci3TIls*klaXP3Y)EHdt_`ZI@s`` zScmZz^*cHC@22rL^e;eXE0?rD%@ld6^0{QH*A}+Ls2k^I#k&((&(Kezie4Sl>Dh)L9q~yI+vSV!=?t48DouBB8sF zjF-=ShDtzRAXgt_o-%TUOv_Z5~voj zO8HnAl+j~&%hh{#967$@Qc7Mm;{W7b#&VnzP0+~~G1XM?DM{0`@bLC^G^C8j`F6$Q zM108y8+KVjUS+D>cvX1};!qq1BlwU^?=DNG{RfMXeNb_m8>t?OB)WOX*`#odlI0a^@VJ*3BH<&pNW6LV)PdejLX{8j}Mk&<2#~08a~25Pz>0 zb-+J3<)vJcLsIm_N9Zy1h@;Wwi?mfBT8R@`mahWUbcs>HAaZzbo~nKLIclg1*NB~i zFMv4a;NeB;RZoM$=GQ?BBNF-jK+Zoe^|IY1@$D_jeo186E3rw2URmHXXwu&3^?Z(9 zD!T!En(ieA+GKXi6L-mCXUZfMg>U@dcl<@uti;c|o}Fyp^grQwP?xcfLw*ME6dZ8p zqt3sR4&TT-G_jH{7;2(nb_QH!wX#CyaQl~g%-?=}ZN)9+TTqUece<+7YlhAs7$uq+ z88IWfTX3!iEd2_g^$Sx&|M`IE^SCNY&(egkkxkuXO+eq3cIU$X%Bp3PNZJlky2yVl z+QKy!g`EQ;+AFm}04P#ZGq?#3s?bLxG82RxdzFt0Kt|xh@?lgWj}bq0C%^?umg|Ek zgkgpH!@~zWHP0`=?cgnGEnL*{J$qmlKu`ko20YB85Pu3i|5H3iWjQ_SAb`lUcGSUY9rR&)0mR&^G>K&LbNm)03<3?Wr@|KaemP z7-(ajNBJZ6ZXq%cq{7c+v$DKhdLzxa04K{xjDq89{+|~h zjmvT0QfWAe!uD!D$mP|LoqR0+m~W$b`Y@OhG1Wfgmw-_pW2V1Mk-tb`%C^Gd^^ZtDIu8CPrXWzmo=cQ1Y}jdK@H90RnrEQ&>!qJ0fAszsTh3GAolH|Uk$w1;C3~VBGu}IwvCVHBaS0*8fl6XUdljI)Zc|D*+39ilFi^aL0*kW@#lN% zajr*1hP-FdfA5-YLC2_)P92y1bf&#&9*h~aNbzCP`tvcGH`I|GClakWi9iVg^=#ZY z8+SE?VJIv#OjY-6kI%O|r&R_)W++ZSq0i8qw^;t^iIpbf{=HS+B7%c_EKTuV$Vu>5 z9m~iZ>!me$G(f}z7!6(rFF_OCik%twd7-T#u^>s3`$oJ#KAbThP)EE4StyTp)!J6qpJdFP1c(1r8Hx(d&#MQ{*}d zvR7c7jhS1gccWMjSou#lb@VNQ3ZKaD#<)dnSdGM`e8U6t6)8{`u@j0zbOd_A4>%AFi6e-8-8@^f4jhbpsqh+DM`gb#K z+ofFTWL?e=#`gBwS1P_SY-K25K{fT0=y-WjG^t|)x4U8Jfi865dM0^3FioLV#b91k z#TnfGc27?Mhxvbgkgi=O(xXndMh&aw>TE~GL5^uqICwbNAnj8rbD3xIwNPoY zk^IiVnLzxEriKnp)IOKvTYkHeh0&<1Vy|E<6NWRgQx9#S#yaWN4I(gq4I>q3j&}C- zDG$bjt{i}?+Xa<`5MCjz(~@?|s16q1ee%{CR%(qLdL|n;brTuhNBT_LkR<$8|=nr`y?b#${ zn~mIR9`gBY`Ne}eA=57Q)2_Q^yPe5~FmK#v4)sr;KK+ZK((k0aHh_h#plv96rlyQ7 z*f9rgD>nbM2_LIc@uh+J2L!Od&ge14Q#jZ$-k`dQyaZSjU@dv3!xF(Kn^%bufdHNt zow>id!IA22_TXH3+OZQX*%g}9eD3>RlRoL4`aALJ>(sIi zY^XUw&f6I39Fi3n{agd(^qDrsuQ~(YHS>@ct~*IXH-xvmfMe%x-(n8dQH*%=x5GW= znltPmQ{j|dq5Gj6@Tt}mJspRHdy zish2j_9U#yz1yFw_sIfdiP!Vnsg!^kW)(%a2ASTZs$uUWstmEP+&Y9NRGffv2~@70Bf^nVN^aJv7_ zW1j$DfNuMpQGHGKi)^j0nGI)ZTP81#{KY>G?NrxPz6dZaWygAFPq8qBXic0RADd~e zcqT}j%1@cen&wVHiU8Gr30yJ2aecmHOsAX80$zMhZrP<={8G^WYl-@f z8NH?aQzH9Z_|!2Pf1Q6!ot7pZ!iXC+@X9KVJA}3b0K&CJOrHqb4`zxBwBlsM;cTTB z=^ho<->d9Csd%6`ffgO=KP`9EGQDr{=WfzY4In-`Ban}O-&KMdpNuTA?nlY zwOrVveo=KJWvI-K4j*htD@Q)D@Op;Q^6x@iryT@8q_6>aHv<+^LY2$wQL+Mdp5(UI z&8m9uqi+)+-x;;$F8m>N!w@a4(_aI#FWqaRxUvk*ec7joYL_QJ(1xs7Ojygd)`LwX z5Cfe92l6}KoZl@ve*5;#s;Kgy8&3oVQ#F_@q|;#?$37~@K9HIc;CX>$kOZQ1;LexX z$ZW0>2GKJ0l_z3LYATs8Iu2NM{peD~g&jK-ex>B26x&-mU?*7_)VrrAF=is(ph3j| zVN;(+VkLa{)tjc`nZGFYfo>^Bj9Z(T2iv{VG{ng0i^H_a2E?7bV3*IAbxQD?`PTME zN6@0$?C%d_vci)YrO3dp7CZ;BS!GE{^$8NAHL50encRFkNZtuLjAp9(~``R zCgD+HaRSZRKlJ>wBFK=eyvIiEP}XmS1fw5PAa6XshKW}Zs5u&F$bFpUP}U#5vUu}* z2{C7naw6l*%yU73U%j>=-g976hJts2yu0M$xu3{KcScrrcOJ{9W?kIB1H`c?mv8*{ z+yp!OMgBU)+w^jkvS^{1XD!@Py5HqZeMw8`998W$hkd#57I^i1u4*^Pz@^b#F8B2J z9lc1-{H=WxN7Il#edc>BzVx)gRn%QvB@OW__#X34gm?-vZnET@Rud=8h#4~$^7DZQ z?9j$`5AB#0>^zY?@xl-x#AKTdQ~S$&1Bd=mXZMENH7yPXczT{XYUI&l<1C41U4@TC zjQLI6N8ef0lJXGmjV#i4H&_ReWep73&35fM>G?k*>QI`mJU*`gxQ-^v`mgQWcq&*K zpu0myC)NMyR4SpF4>Rg8bPlZt5uE-2mZX-ky*Q?$nC&5zG^$7=Mw1GBC*-N4s>+y^ z20xNwxSFbKDFK9XaUx4MzF}xFI$X;kE3}oUj6GHlsONeD5p*9EkR}rvbOt&r0}V+nPOMy?ghlo^f%xM3c^8wWr9nfZpIZo2x5 zoy4JymHp<}LBV{OU0#5aVe_nM!wq+LdWVrKiSh66Dc*B)GMV7p0ZOhBCFi6&oACBy zcS)Lb+Ui=6e4k&!1uZFm4ry`yWU{ANj%wshi5)!X#xS|+_1=rgZ@~$1bYUc^NYyU$ zm$9-RTUzvxw{|4TZ<8|9IkKs=B`zfCvh|(J)S+n&TVHRS)?=(DPBQ9ii2C4w5Cw{E z!E5`Z{iUJM#dDak%dp2_D{$9vzt>>WB@+!WGS1Pi%IY1qz!+n=Jqy(_8*X>e+dDZ& zXJA0_{y>I0Qj?51lm!=~n%%$keZuuIVoG^NIl>WL(=gx0UD?9H|I=3jMN%1Oh#=)S zrwI@&R)0<89^CbXhJ+ZE_7I8k9_M&l7;)k#40|L=&Z*9g!<0zvV&Fmk{=uN7m+vxV#7U;b=YhkIn*~* zGlr7}EnrGh1rdLeoElqU=BzeRN_mj!GN`%QMatAP(bL@a-0*1J zGN?wVH(=oWZrHX0ep4KJKglvp@Zo$6dj0Wi;T@Mx%8zGw)v~JsDDYKsGzDxXr=Kxeo6T_+2$ND)IqaBKgu;FApVwuP9t#UChc~VxD!RY>Z02_ zUKKx(f-vw@o6}N9QNE^0us!@~ho4bGujH{s|ML^4VVc8U`fHgo z#sua~VkPI!^!GGM=_vDa2i4?WvlhJb>t=N_CplW`=qdX>NZ0=2rNCMVHw8OCP(G||otUMVrF z##dt29E#mK>2M0t7BTAgmL1TI^R*<^AbC)Lw=IqrEE5LrJ~xMrccriiXvZQ_u;*9C z*qZKNI&ehC;PmJW6ysp>lbG$!LRF|ki+m1Dz$1iOWCtJ z>+>7teKw1a(T(<^eIyGE^oE?*ixnvbn@J%$gbMN zRNwBoUT}2Oab86_ND)~xnx|l%h(?cK2g{nW*CgP`Lt|@d5ZSv;X=2NsC7$6RHOryP zA&hxo3~U*Y-GKX4`Md|zw@y4~Zojj;dl0mZCzAx@1H`tR-dL;* z29#RBM+~Mb%TbjOeO$`(6}XgRqt_uXfG1IP@$+5JFHt~vRU{sX%OnSA;(a>~#QDVS zSBRs`3w~0Lul+D0Wa;qGsau}yUq*Muq8>b#_bnoW+hx(8Be$*TB7B*-Zc{5wOV-uy z&|0LQ!}iBXkS_li`fysnNQ|DV@yA&m1%1{j<+gA}u?i#Om1o2T+#>j{W8&#@Ac@PlzeDyHmWc+_+-}{5m!UXa>FWylyC#n0y?xkNRW4CPj2 zA;Rf$cQAD?q(CM&i^ap5VqvSjz#40R`uDH9$CA?!<-LTpB`48$`pU3xz=tips>Y_C zU>VyZX(LRTtbEY(UGzI5`B2!|1LS+(S1Vwcgm z365m_T5ZklTxerS&J)dz?vpF<70_R6x4o)Yq`8=84G_y-F{5go88FinlNEtRvNPLa z5lYQU&S=z^t$pCZQZjuwbm408$P<+diD`P3QW)e>_sSn5tVMY-$?X@m4lmE@htI`@ zv!BwL2}$$yOfuJQwsNVRFMa!hcq~*5@I0EPr0gwW(G6Fg<~*qHo2%L1={*jhJET9? z-O-R)^rgP~7X9Mee4nCoe7laWC97;$qSjsRfN3q~NZ(3nO9ebYyZ|t5s5=XRQ&lf3 z>J<~WU-&Nv$@1E4uI_S0pEyQ>1?Cm0gh$!#RqQ7Y@cvQ^t`Fv){@8#mqH~m9g zilR%VGw{T$TtVEYd#v9H)aA183+*urt&0E*u`d%B`&A+GsX@4F50|e9*me+HHwgE>t(EzpPb@ zcZjH)y+HY58Is`bNJu&rjWtMcxFZ{Oks|w3Ne^VkcJ}vUc-T9#Zi0?%X5iRd+1OXe z7ZX{~9k9h-^G8HppkcniIKEEc!&6G(PCeo}wW7{7VDC-?F2I7B^Iylt|0W|{1nJ;g zgbm;G>nYy90WEGU_T9k ztQapD)g57Fa+C}}%94)qltmg`@?p7-V%bw9z&@|}=Mp%GsK-WLe;(X%kJ{}72==`b z*O%;RJW0RjCBWCTcx}!_y6V~y$JqS>Tps-eO7sFi%C?}iPTgPHdWCu}+I}NPlMM`W zQBczy?)|-#IZyw-H+ZfA*|y{m(!^+wiZfpc<_Yql;+dSyAEy?Jt##-#x7RTGvcl9w z4koWy`?6{$+k{dK=R8WuEYUP_Mt-jemh00mXTNFco@A};u3Q*f^QH%Tu9bkzkYe-esuB$NIb0aT!ji-IU@Df0Xij?#u9nDi>-sq*#Yqp= zeTA<@?UQtuzW;wJ_ko6Y zXQh~*Aqys?CHZzgd{&k%apbymvoUlLmohC=pWHUwc@o?YO{R`B-#)v{Ag*?-KM^}X zpqDgS1l3U>-DUpGy(0~_TvI3dtbi5Ta16K`M2o+VCRL^P)|W`sI+@ip@Yl&ZsW4)p0qI|)2uy2$~TuzFW9 ztNFCO9}PoY4|n}LZ~XrbL5j?38=cK+p=K56^=Pyl>C&?bd9-yF-NqKMk9-Nb%kR|j z(Lp6&GQwfD(yv`?*U<~_VZcK@%A0;}X3)B`4On4dQG~F+%VaV1xGPxjqc4Y$gKs%PuSD;|I><5HwtW zY3D%Z-_uTm)Umg(aK65awh<`MhmSE@I%eBrAQcI@591gWDLb0iK!t zBX?B~$-?tpKtXmF{V`0#2rH@E0OQD_k{>lyh)i`26f52M5i<-lPAU@&is*yTXn z4Uf2z!=klBFt|TFen0TMd64?v_cpfOIh{ldqRLCk7g1Hi$*d-in#rimap)$9kkHM} zwUOpgG__m(Ga{pcnGmBm*}h+AhQU*k50Y~E7-y@e#vc`S0)>6Wt#S<<1EM)4GE)k(}yM^EP}k3 zp3fx(?XiQoBt74|XOR7eWKceSSzn2?EXTs_z8D3GP}isu6)S4m$~T`qf29#y@r99u zK3(#xh47Y{ygd(CJg3SOaf5ogh%A-`2Up3S2Dbry0$~I*HYrUnBCVQ4mQn^lbk(Qt*-Pu*jcospYafzB57|(dfh+37|nOL075`?l-K8}+r z>eG*Khk0Fbl5r@`I_b5PkNQ{)F}dZT*{gZ<7;Va$4u>R{VeIl-!~TgDq?K0dzkI7H z&<#O)67M)!E>cjqa3T z7A`S_@Ti%KLkS^+(KS0nS+f`MDp_;=7rmpZH}kuwFtg)-L($)krR1kLumQu|RxrRX zljJ=KJ>VMiH8foo=M^yYiQMHdt}<}AHmjw_G0cXGIW)RKyu!b^>Fn;4Cr-!X1)cRTo+l|Y%|ck4KEVSFE;S+?GXvW8X3hPE-Gz9=uYxG#l~D=VB1|v_?bo2X zlxrX5$EK^h&*#w@A!kd_<4Yae=sH#2(~0+GnCuc&xs3nM0}#?c%O)ScyXOzQK?EaH zij^%_X%$%e>MuWXue_Kf?jgS6LZwYJmn4HjS8h=i5_cnESoxKgB=wI{E6 ztH*SlMB&ST4oVHyw(CG>LIty$RX83+K=#i4J*Be&TGlU4rj zQ~JY-B(wX$eX_pddaX9(IVrCQbXB}NH25i5ST7VgqL%~X-@kX%WPPUiufH?4o72N9 zBr>IKNKF8#*yLfAA?4$P#_YYA^xMjBm(1Gdw^vSAy$QHIX;m{t*3gj z4y&Nbs4*9sMrSiTZzS|(toHbMnGC)>U2GP4 z3wE{u#^S=YxinwaRblnz_@_EfrNRm4q_lAHd7cO|r zDec~^X_~k(#|*6ngYeRxpyLl^?qi&|_u6z69f8k2ul~M1%0aF{d0TEhS{Eby)eDhz zpPYx5m!jGx@Cf}#eXVZi9pj0Bu%R+sJ|yjw0l`<TkZ^O9e;$-!S>tIk^ zJiXDiDE6tf^zTEL<_Xe9lgzghC9zJdU1}2vW#i*MiVJe_hIZAi>oLhaVGytTP}$`r zr+Y-oav8h`3@w%MiizOxJS`W2$?O~b&e1~n;LlkPaul%tR3^XuhfoGa|LJgpKQoIv z7^unDo|qdYbF!wyCR`50zq+>a6@?N8Xd5l{F9&Tg3x}21zJeZcJ(@-vE3i%eWmi+jU!*Y$S$f2$+KzMkbhpmH8sdF2P{v2=@mE9b1Xd*7DEz3 zy5Y~_5}UaIG#>o-uV37x*f!LEaAMyXOt?x9d5a6uji$WGp;2)}lar-74+Z8baLJGW ztD)e>-y`0x%!_x6@Hvb~g5zrvAOj{Z@fX`}ngUK%3pIW!J}3^iCbkwXAaoVQN&A;1 zL@$AtxV%2-d;iT4>8d?B9<5AC*(1M5+N$BK>=&Bh2Zyh|+(iVKJ%B`1%w?z*nf*qw zevZw9W1Jl~`iDx(vypeB9-6GRX|nr9O0$YzBxm4WK++m=PAVN29m?-!oY7OEf9mN0 zgmJ1?Xd>vrGX@PzJv0|us0E7DlbCo9$jw|s_-AkV%Jkz8Te&>xiT*ev!93z6)?4i| zeoL04Q@#Z1^_U8$yMw`xm%>6m+7E>UL=)`cVCU78_ymf{&$jwuD0W-T((m{L!Ot31 zE-XLa1&z)RvQVI{C9>Gety%TVn})=;;g}NbV|fO(m>}$D@>gp|hjciA>4Y_(Uo5JC z&6|yM6_4o#(X$2@iOfxI*ZJ!}T!dTr+y5N@p6{T$icnoCywM-vngX&Ma(AKdW5=5< zN|SyvUG)t31L#EA+2e^`b4{6XKo08;Erf$42svgLh~eod8+toX*m(S;)#01>88uW! zRVZ|HrzYc;P*5pLUkg({sS6DaD3P?LJ)0mu^q0)j){xP4yXyb%xPP!6`uEhYe+US4 zU8h}{EH{2b;Y98By8!#AM+}S*uEH-@+o9wY0~B_Jl^^GY-iWFck|*vdKZ1m!dq@Z_ z!hSKCr?(4n^nN3|tz1|)-5l>+&YaU<-pvs4JzTWZ40{T$F{Ka8#EWD3k>(0V<%C!x z?W(VtKCQL83OZE&NEiD+-9zra_vuGd^JoeLflm{+V%wACf+AX@^#PpjfX1 zaK0)Bv6o5QN&SBM{RV-aKfUx3#R`k_Fe^bg%j#xnq`V1!^D+ymb3jsiS$unQ`O}XwelVa&upBi&xwM5f`GbIek4C-S9KlupiEBcZvsFm- zZs*oW0FvY5vHhPONwR>sXoEo0fhh&7o2epOj~^d;g}dIqQ@UT#$V?BQCEL^$(|kvw zB>2q0ESHgs7mGTjoEIjCoC|z7qSSbm2-$8Qj=R|tGqjxR4~cuY z5?`BPS*Ih%?Byl0t~JGnbI0N8Lhn^zRA|%31f%^;z*g?TpEe^gL>ZNo>>bij}{jkDL2Sryy_pHh~EC(J)`Y;+QEN& zd!{{R^Ue1&9a^|OhsN6964!N7Bcn2BiQ_Ezi$Zt}RUnEU27AS1x6MT>NIs+q7RrW; zQ&3+7#O#>&NHnU(TgcqsD^Oc`lLqR7_$;6Zo&Bd^cz=rKL2h3>4+! zfTQ56k{pdw+i4%f;I_;RAIc^i)N$W<$dOGW>6e8gA}y#8EzM#0`MmGTUDm&ZIn z)b^C_6xYPUMave1UkHf8df2h{P?OVX#=d~|qn$LHK9hlFsBK&$lnR83fuqy`nFK{; z&Lnr<2?d}@b2ZPwO&Hwf)?D2nqqWOei6iFALQ18|dalKTOKL4~+-BK^nk?~ZYDBv# z1SluMY@0S?fujm}3;wp`jXDOv4lVNL`#;O!R$u7QzcylotWyXjOA?9K#l3opEC0mb z+uhVvsGkWJ904LZH+Fpd9K1A^uSxvqB>#>*-SX}&{E-CyHQP3`FCH|KQquhB2Eb5` zxO+jqJ5O$}l(=FiAdGj`aGc}H7moC`jYi@)9(7&VZb`6P@xLU_v@{Du_NfT$%XLM2 z%dKzZ*|pS3za!{p%L7<{nJq%Hyl{?Y=N!Gj9x>xo(~IF_*zOL7)YrI)n~>fK zc~n!Qg`WCfKRRT)>96vKUkfZG790$HtzEJUJMTO~HrkoVdi+C{epOWBwF)and68LC ztxbLPL2*O(iFZli`StL9SP5kFL@V2D+A1+@U>ofnBBI+l5+#h{&mwFKVpA167J>L9b7T848 z4(-T7uNssVefMq$z+#8M;%{{;;4>gFZ|`P&3aap_~;%4+DXU3;(1M zo7qunaTaAg4A}K~cgYgl!m$>|M3e{}$1K7&I4vn!n^e zUQy)o>*$Brpd=#Bx~UAC(=4UVj|SPfhMWlZVEO_26*yM>I{W}aAO;?AbbmB?Zi!ys zWX5C7!Fe>*JPbCfN8N*NJtIz%4%4XCam+r-`u=&9N_nSE=Jj9OnCCD=-;G{N3jTQ; z>_7Z#le-j1{{4}(5U>>+q#pqH|3N;8hg-Q6E_u2V%~4gA3dk(xQys0CW+$i8$xv=) z%HF{f#qc-}NCmM93U2wW=QK@l`)T zpS>?NkvyhtAza?SM4xX=4<+%sMP4$#EN<_G{g-`_F>1s6K0#|@b<^sa3=Wzlg_;^c zOAQwR(fJ$Plh#yK%i@0CPDRgR;zN%5M7%cdv8iTefrR56JD&Qst|z2|#N7Z-;w|3%M!8w!C@xh^_E217d($d$?o@`Zk&+Syr13jme0N^CT(0?_^PK(c{o9fq#-CEMge{gA z=n1Exca$RQ_==jwdO2NhHC)aiiF+GM-hc~!veq@QpT5}_&G38sfKq`(;|6Ui`Z#v> zafEc5t)2Z6P2q0C^2*@B7(T_=Q)5CxCRG)!k&u=I+&Xh9%0uM!I8|{CblS|4tijHh zg+OJNxxmlp{oegc|2^#Z)EKc3c$ua3oxMJ=OTy=mEb7v4aKX65pcC*w-P7<)Ld)?J zt7E4NO#x;5vya9ZUXDj|;a=mKH4OgoReIz~Of9!k4P5ebB#&)d*JrR$jQ3PLsB`P;Qo`~zyAcJmJj?}6k^X2S(OgS^*q0K z{$vuos3rLdw(#JG3$HVu*m}2Y^X#$nXr9kIeu8u=kKo{U$$W*omLho@zLLe9_(Ha- z$KD}vQ>n90$jFQQbf}y&xcCG__B-g!h>Kyb_d+qQz2=t=4iU?wzA}xwphhUyF3qOkIsAg;2UJo>CQ1BFql^# zDB)tU$69*^YAL0TU;ryxAl$mq4`if6Pu{a>N#mda%cY=hEMkF*!D+eIt})b#xXI>~ ze5j#kBQ-duK!1o1nOM->sj{IqFeC`XN+=fQ+4l!_L?4I)hgGFY=FBV@i~#OZatf&W zgFpoUFwuz9bZuM3LTiB>tI;T`8JScHfvAIa;BB&7PbvAM)9AIY zcmXkc|8>SoF0){e`v8T`yfC4Tx>1@;XC^2!_=&I($m?mp&&N{I%_=OY)&fCbta9!r zsh$!;2>#9`+~dE0j+Rf(U7JXJvej{8wC-e<_euaLj67O426jRcMUt>hfuF7zdmj{i z9bl<+ob^G}B9fTSX`BWy{Ph3#jt`6|Qd)Rp-mvSfzr` zjxE%BK7sGtD^Y&|*USXdT0NZ}qnS4ruSDsYG$~P&lvb82{ZQWV*T8ujJP+M2gO1DG zQx8IhL`4r3e^>FCk>Ipaq`PyKSLnC`wJ1p{Ym~DDn_slV~>!%Iu{?fIvnauus@5ARl9^@i_#&XEYQhO4Y?!6j|-@wIH zfvd+mI0G#vuo9c&?ZUYf^;JL0LJOVAvh1qo^k~?2#{xsrbfy6OBpyw#GUQ2;(t@*S zOj(S1aC9q}%#(ueSX|z@lw5=W7ja8T^Lz1}9v`VKPb?dQS@ns%TS7HQ-^92*=8&g2 zXk|WMyE^3h5=h_`Q!Tsg!;1vcqkjfCzxS(?f6=RxZ(;jVNw1g_dB5-e&Hj zVn*!$wWXBQJo6W%T~cq59Lh2e3O&IFzs;u5bGq3;C|_wrPK!hRvd+U{ z3<*R7{`jnFc#%Vps^snfDVWL;GK(J7GT>kTJV>1R40lTYU5CIG@h>xizb-RPbbv26 zYiOa(p%(VCHIT>GSWF{eB@xg#Oj zmC1`PtpMU{Nkv0vL8iEOyA~e`u6M7%MCH-KX72oj07P3NKh;axDG~aldXs-eQa}vH zEzTRf6P;=F=NZ9d%~7R*1*+jw;O;o|EgZFg>V-z??ZkBxbG=t`j%|fw)^cOn`n@sY zn|Bh;wnkUy*Mc{&zN4d0?(N7Uzd}|2;<<`&P-Qj4@y)wa(RA)BD@#R-vqQWTJpw#h z-t-w{=G2wlAwrA$$SbCuS|ysC!`JV2L{-FsCY$L%2G*)^HT!thM$R;Nxs-nkKu5rH zdE)tYO9gDpyAzX)7=sD;P?ZNBRA1>=fI4%~{2sB5TcxM8dRIts+yTQ)>K89A#Kr46 z$hm5VXlj!+Rp&9MO)!DDoChbKrVY;iW{+_{AvlPPGD|w9t$uiE6zKCnMP5JqUePz( zBDCag@=KwK_8I6j->2ZFS~Jfe_vt4KW0XV&aF0RO1J^|rDOGvx$liYtX32j1jO@A@ zv|N%>=JkI_a1*DS@&2S*2rZ)md6O6`0el_`d{DDR4LTKJ@;eGMGb!&4W?c=FhNIb0 z0LORQrqXq>oF#DuX}`EdSf5bJrA{dvkK9$y+HmT#%ZBmEjG{nDfmK!gv{XLnDACogYu9p5 z+)!Idob7;3bzB?(X+ST=`v5pi_#p_XMWL&K+?SKMwTAGR6W4*nO6n2ces4oFLVGl; zBHdo0*_qRsv&X=0Wi1Rkh1S!k`%7lX{Paqhtcan6fBh)Y1@1NKZQ?lHv+w!6^WKbH z-+^D7Dn>Z+_wxEfltojfoKEu2 zv8&4Brm|@~*t`TG(ZKSpUp4;Fvp37U3)GAw{_J37ayyV=f?h!fL0$^{!#Og2Kc&Yw zJqFAoxJ^zaC)kj}a9|NANf^&?bfm4;J`oJ^L%a%4y z-zaBT743WCIGVXWIq1PWFRovlRax7dSORU{N-Sll%SYaoFAVjc4pD&CMO_6q^(BVH zipT>?2;?Lv))fobP)KF3LtUMasCxi=R!)RyGp{Ys(XgNMS zE0sc%5-gTm9B7JfbpQF?eyzI19eG!Q);Bk;G>n#`Vvb>FPC6JQmSm`evlIq{jU!X% zuE9_Z#+F|lgYNbHoMk^5huk1xX|wi{NuDj{T>-MDaNpZM+%*koO-f`@b}18aX!=H} zc~8=#6p1e%aaHi;O%X?t6c*B_#18@w6G&}1%g46?`#VV5+bqT=Yu;NZjlvEZHla%1 zTOt+dSu`z*oKKNr2`PD%!k9I~=Do?RTq7JMJa^AkUzcWZQR%*`Z(`XnxolvhMt@#k zpqk2PmG#TJwa-eG=L~klXFiULpE>8%-T75shm7OnEZI$jnOkvs0yD3Q#37`7Y$u!) z#hTB9c4*}<3U$h_4z~O(=O+YNo^8MzrCjjy6bE>^cGfWLF?ca6rmWkUr${1D4+vDT z&U>T&yB6gynZBxTqkp?Q*oyJ6r)yI}HC{x~yYkCr5LzvNLnsKN3{C`k6J72| z&C;yUQG+BQ8C{@EHoxE0%5zQ}V`-IVL0!V^Sh4cU4NihfStBUqiGO@7+&Doj0jq+g z?ghQgp!mTvUi_Es6b+Tx7ZG)lWOkkjzFfRCa7)HMEFZ4{a?PoaqW*>*QGGrguR;i& z@V?ixX>7LJmtEejc#%K)9RHoSTT{I{%re#Ssbcv^bT|xaBX=IQVwz@8!11(IWtp@HVEowoHUtY;rXl~%YG}Q$PVE! zGcSHx*}1#^qRyPqi494=%lySz0zEw|vB-A${K3$Z`)2djk*!Yts*noDQN%v7_6BxJv~qYxMqCl0F?D@ zbHCj!w6pVd@#N<1Uj0WO+`YLMeAD+gd%L+V z-Bu#e`ca?7(cDX5^|-POk(EDckK;TLEqOX%z*@$UDmPdr1o9+aGUZ z8G^1tI7$fz!9%lf_X=6`Hy%_J4TL>@3oJu`eq`53J%}LTigSM@1Lzf?-t^*aq^Qq3 z5EM=U7NwJu`t_p?NTOSB1{ek!b;mo5YHu z=Gc}Q*#g@@jx09xL?$P-IK=n4Pp=FhNZWNos0=$2f2$eKVfT1R32|45P$`$A@t!?O zz~{#Q_+trjt&CgZS&j6Ztns452B8|@V-)4z@D*n!KChlhUY06LwwN^AZWR!N16JQw6rC4hQ^$fNiGK}mi1^P+Wz>>_q(_T0=&vh? zqx3cya*K~by-}3S&4VPWB1xl!cHB%!vEN9Dv@>Rawk3Wnru8y8`_^?%C1iEi!H1At zfQ-!3nS2*G*+gS?8fO2uBKVW@GE8j0tqyNVZXKnOwOeLxa{i>yk( z7@Sh>DP~Yehr`|_XLg@Hnc`sWG;-HVh-TAMJWy0u^Rb$6s!r!#h0+Ml)4Er{!BNWh zMi6B8a*nHZXHk{o}DTXt9TjIJw!boYUUaOibXqb^qW;K||UtC4NJ?ea0mb*^?4hy2@>;SD~=E z*J`Swlx}Hv_wK}`*o|261WH7?7Z*JJLgk_ObLbWGO(wqR8@}p8WLezd?Fl<+{6aKs zd*dl{#-UI_YI41jQYs-W_)DtPu9JGF9+8wv-D+Rh8}|lOerhh?(Z|CG4)34Q1=6EViUDn|@2O;gw-*-ihh(KdwlMDP74p*htkwv-;kyI3qt z85}m7S}K6Yf;c-d7MOfivGMsEA;iZ9TLS}U@ngA%`1!f`K(*JrEuh0 zyeaj=tJ-1XeW9hxtW;^jH6bINS1N1m*B^Ea^+tBvx6%x(ZGuwy=v2j%tGh4>_L#so zd(5v$S6>Ve^wd70YDgK- zwgBH2SB>-T_k+}E&2w5X@hASmSB!Vv51E9tv<(aD`6RcevWS>Ilj}?r>UgZjU7k1+ z!DbfqVdAtp4C|wxyDWcUCa0vsBkQ#)-Otx1;U1{DoD~mo-K9?HM;j;a?LW!LTl-69 zy69&Z$k=~8cn^V9nVXq^UOnO(^ZFE+TLU}M_lGc!;XQ4;E9D{?;5U}FTcF5{dx}<6 zT9(_w5fox8MkVBxpI$NjM{21ne9K;FtfhqO z2}qca36lARUgSawH0IpRZZTA8^AyO%yx832;P2Z*4#e#QU2-YhXmj9{H>k8jY*ifx z#Av-wO=ESxPZ)oiUvLuHDR(du;acu>(qyX&Nq_*fp#V+Uum`P{a=fy2-*2w5S+ZPX z$9`4yCz-a?JS)JY;7$QzlConBEA~#{IF^$MK_ftX+E6HG!~t0~J7kXPnnNdrEU_-_ z(rFBMDoc*x?%JdoxQP_;d%!}Dv|qu!=+Y8@v=pFD+;$~_h2hv(+~zbMx~^xAml0^$ z1VYKz<)hzcXQi;ZI{v)W6m~?P{KUZ*xI`3N9C#1FA7h~O@x0!{cGAV$4g>k2=D zT>Uwsr_akREQ%ck3y_gOvmf@0tS`^@{3Yr0NYsgE2bCW~J-#EDq>3G$)WXZDy-nc1 zt(}KLhjg-KiF+DGB1j_B>A!z(-mk?8o^Ii?@k{IrN*V|V1<$~tA$DI>9o!|@Q!?HB zWGuJNZvd!G#1Qm+{et5K6n=O^_|HNL{xO^4^bNqc?Hql!2tN>3bkk(FYYGYuPWoqs z7;J0K=KZWSGW-V=Tb5;{Uaq>)@zCJb%H*gMDE&I>Y=xAkztXZ+aJGRAAxMDk1{y4> z685}QbR=n#Cf=wVgjQn5Lvz&GKwQMLJe*O;kYQg^+^(^N*4NVStyJ>nQv&r%%~E3o zM_9IgN0(?ht}5>VHD#q3%iZjAR%>(qoNSGVGIq=aYcY|#kYmc36=7#R%h#u6^uuh_8M0E(BIELw6$m`d<;mM80fGF|B1Bk zXrP>Zw4bTV^i!6z*g-sMwMh8k@u%A6s6L}DQ}_&O+C`gH2Wfsb=Qx+*Fz1wDc?9hC zlD|Z_40W5B{lsx-s>CWVV7Zwi4o@0e6DNatO7M*ATnd*!;#UAPmKz6+rStkBkf!VX zyM1ATK{6%yyS5lSy7A5Dg%ShZ?r`PB=~1~wAuuX=t$#zJ(`qXF!lF46RUc9*L0Y@} z<_9oApJ4({WQ%;k1E%A|`q#j?dzWY+xD^H6kO0kZAox!w@c%=y`waCnvekzSKV@=^ zq1o#6)N={xJF7^~Edts!ucy|ch>{x`GyC+dfYqpyDLh6lm05vbBb@??8I}xdww7S4 zRj|>ufs{{H?JfXS6rPi{3Y(wDHIj7KO*Y0*j6lo zHpux)zFltNfBt%^?ulborGXh4RQgbjj_NfAeISO8{UBUk#-epOm*m7(a`68CD|J0+ zwkD-|!tvn2ubjE<+txhaf(ud?c4~6dZwHAmT1NX@+lIfn*`OVcob$ zEVnnxz3BDRy>M!GrMZN;^n>Hz)b!TlND`kn>>u&D&U$xZ*H>4;&YboSHh8vhD&$-5@bWVv~*%f1@+$S z6VypAVc36*+Zq=4>f>u5qPU%YQ{S=c4_-)#0lAg@gH+@gp3%>4Bi~Jbe`IEE z=5!Ux%9DZVAkDAxjJ+-EK^vk0oQj<=>4^EnAAYcT$2^R!HlERj2(-2MRU|X} zoUw}aX-CcH_koeRcqeP!$^-eYI8CA+X0QDM0~O(3SI3=`oqqB}KaazSEHCTkN~LG2Va01pE?90Z0Io1{2R> zEoeokUv)Y?KUcU+U|Tawt@PB2^NdQMYHe+u_w{`AhSCG--Lx7q(&7FIzrucYmIfOE zvE2B|ilbp*z|1>4V%qqOUGsq^g$^tm9VH6WCkl$~ZPYn}&24ylFlShtG_O~6H&m5% z#LaaHGFPr0^04@P%Puf1HuvC|+jU-f?vu2iKAF8VBc57;PmJcF5m}|U6yYL~lq4U3rn4jVOKm2H;;+(=dK8J5#LM`nB z^bTjPpQ#zY$F&w(usZL!A}gzNO6GBc)xOxVAj*=*`U#2ZYV~EYW}6RG6V1w%V*WVC z^@_R^6@j6y?HZ0^t7k2QrN7L~8*3qJS5F3ng9;57)6L^QSQ@JfrJx`i6jK(?V+YxR zD7ECux-~7fkXJZ(c7?ktIkhMS}}3MAmcEsU}E=oILd8b zq4>MRa3gVfvZ#f%l?~uL0vLn&=~K`J7=+^V+b8(a=U=hizeO7u9!qNR4zExJ-M&2? zPOEfqmDDEqxw=X>=+HZdV2Lj=J(c;3ESkQQ>bl-}0>DDWHE);6NmkeW8>4h-z~d1J zn`n#s{T+&tx3?0W8sUeZqxZ$fQ>h9+&WJp+b5N(#0^|*Kzj7V2q-XK`HXUa;1v5mR zX^;9atU2a}M{}Z$dZ5!M8WzkB(aSzAz5v_~|td;6?4EyOMpz8o!jn zpQMjS88J?-bRkv}(j+4ZTyK6y+h>RNHc?&}<@n_IQ;WegA2VZBwd_*PvX1ycd~Q^J z1DKX=b+&pc%PSo=uIW=DvSi8}RQDJ?$H4IPW)xz~#}7|Fy$(n`%>L$Ps$epn*cY?y z?!a%#94}L#IqxbLr_#Gb#doQ_0u!!`-S}xI0HGAq<>9lb1zmU~iZ5&Fh?F@{E`5AJ zc^;q&7qoYF>ba>~r`_e3AyO)IM``+9PFz08{)ZFroSIb?>PB1rF>^B6eMxK13)DaY zmXNACe;i7VQB4E*-!7wjRbZx& z-Iup~PN3(#*DZh({M8Ihnms+<;ux<5HCgzmx6s}uNb<&+WFD;BKOmha+&lKtMTm=Sa*z2vwQsDLgb9nQqL?$nXew(AJx>~E zy?oAYw*AtXeOAf8ik!5;tY@@ZhPNh!+y3))Zc3SKpiMexYpG6SHayLyl6;mq5k^+z zIbou%hRB-;WxQm2y<+kE6FeK zqgP#$w%^7!)QZ_`MaH-Cfu@G5)srCQyzfU8RfiZ!a2(7&w@HQCoQjB8OC^ubnpI3vi>KF$TQE9FrKvxpp)%zEcbPK!8R}uJZtr`Ch zsWvCXH0AO0np*YoYnDWB+S*tDy%l}e3IhL~tCLEtpo{0HU+BB8Yx_B-4p^(WUhJQM z%VSjMm1UnW1;e?-h2ykE~3v^nfXM=*!6ZQr}_ojgG1Ih^Qw;7|TM{?8Icoy$+W_ss`s z!s?j$J;ynpQ5Ju;4@6VA zP1f4#s`cJ`XxEqSDum>8j4%!w{nzMs?lp9ubliT;f%)WGz4XeG)kdS=F7v`a!6ElI za!N+8{=G+d!?T>D-PbL)`Ua2!0jpPuq`>*@|J6=&H_cXkZEdC4@ip)f%1IE?AD_&4 z(UtTEFz8SL=rPuy`fwcW#~(CZCyQIIwCoVr8|3#+SYu_5hk-GYAzkzVxl-= zKtD*rlQaTiz(7sYT*QsrMr-tpy5B^Z@~StSM5Q{s#P%(8BzYS5WA=<6{)EQ5NRvI_ z<|~HNpbkLg^HR+iJ}TrrZfMzkaTp4$tiM_ z@H1I3^&xF8mjvK@O7JhPF!+<5shV9%mct+NYyumwQN{`v-#ZN(~ zWM$3US&^0Di=(a+M>XLmUOG)n^W@rh3N1`Jw?fwqSN1|6N1y&l}E-o_d-^ zbIQasKbXv%(2QNbtrQ!IBLvOD@@}@|sgTv!<4^cmdTUj%x1NE@j~ioWZ?WcKqq`Zt zhoD_NVUW4CCYNfix1EeRR(DC${O9fQLInCWE7O=jre!j!*H48i2by-nE`e%|4c01( zRlc6*Off6~?}$so+gWfy7SG~Uj9^6_kLYp)h={m<8q=CC>$^E2P)CM7!%<1%{DNyH zFYk#0lk?fE&^KUU4gp^>%799w1FdW0;@0T_i*(@KFa~ZUYwZ3#`|N++U%nU;Jtv#K zc~;31TavNc8Bhl{B2yk}HBh-uSy#Ft1xp-wiDuVs#~@%EB#JbVfCHN}2APBId*|U* z^f%a3x*I*&W@vT-*;rVqN~iUPbbuca*Fa6}&Hjb{(|vVz2Q>SHLtkCL6l9xW9}*Yk zzoiNYn`ph~u1Fp?fQ^O$&c((FbQf&Yu!HiONtEj8)P(>t$dl(#|CFsTNK#c=b{E&n?TpziUK2ri|Euwu}=WBQZ*V zw1PS(_MEm5Uoc^BDYN5~Y)nlh;Tm7!p2V!qyuPzfqO;8J;ctepHH_jSrK>wv#;%+< zEVNSa#*{bG2*+QQEv7XfKQUF-(yfa(wv85txvo%qk~6hSH8>-#r)ZAw=jmv{jF+Xl z`Z9OObow^supwU7Tl}9(FK+v>19$=^ek~!8xx=(zKvK2B-sWLyg>$ zr2h^$N!`rrpU%~N(|?yX$Uj-t7WS^Pznn(nV?cHr+$hm%!ryLIL)h~tP zn?X^b+o(Xm-4%(KDPsE?Oq2OrKgKZwzn@a=9v>$HB$`O_cJ;5vCu>qYmw_OwwixZV zDv~Z>#|9XHD^e?I^}nt$!NF_x!gE4TXH7WbnK*sB-q@;&49=mQ%^r5;E3!YvBp9g{ zGhO%R+=+`Mfp8X86^~A{PqB1)mB0YifctEDf}-<&l4o!h^=oIRypir+=!uTb142v2 zs&P>p^}tUhl?t#wEfq{{LpNWv5~CPr;>OT2Y0Qc~ceNf~V1cdi5sJmxTk)YAQy>^)#*+9Y zif3@ZX^mvWNw!snt{~hBokp8ieTCx^(fz>1#~)8xyK^A;`4U4Y zwa0qm30C6nrj(;5o)`1mylLc9t%@HuCyH7Ibf>>ie4lS-+uHbgn8b(}6TnQ@7ahx;Un{ts@6dc`H`G^i zE3d__;P_t7`%ldx48a(0{pHvPl0_cIHwd9Fcj7SRg1h>j?X>gQ zIfOCGSbtrdzBq3C<0p77wbMw3TqFRmBOm~FX1$7F`XO~NfoBRo^WU^=HtF@CRp)yB z?Bf_tH|)Q1T+FWumcA*e3FXn0X=bU~OL?q;eolkr6L&(IEv}a)L@-2l5Bp%FLCCKE zpcgGh;qAee2L^f3-s{( zpJ=I?4y@wzpI6=lnp#x88mf30PDy1rovVcmHQ!SVxnEILkqEP7rLroeR#tz+Gu7f* z>VU;?8fF^AJ(ZN+q#^7Zj$xQB1BO2Jw0ITyF-$J%@q3Uc23oS~G6;j;(+{z5UxkG3 z+7kpuvl8$%Jz`$(gAj7W(T1MzhxPqF4s$6EVmwOV`aMfR=UcwvFFl$HDQ5CfOfTE~ zeeFtzea~0yVoyRLTDJjhVt&;E+4?C3?05+kwa@$)-fAEmhrDXFWo+Wp_ofN@-Ye73 zj8VnSs{4Bv&!OAan=q>C(KZt7>bayaML27V@J9|3mEY!7;sWahWNA|_X>i<6b~rC8 zEx$oesr^@1l2NXl8wrz9ckeZsK{@~6nlA{WwQ5_Fz+ZVe3k&j;MQ?G)$!M>2@DEZP zFzaIDB*@dDLXGpMc3ys_z|3v2omjG{=MCH8#HZn{^F7b8r8fAOp<(AA=qDU{@)11Y zBIrg-zrC(AfY@Q@YYGisgX0AlgDkt1d*jsvF5KK-s^`!5J%j+u>r4~3^xrdlk!5Z> z2WVYVk`fN!k^c+m^g*`zqKSTaif`Jz53ebOZ2+sOPznhf0n2fXUBqX#*w7BMIuchO zaSdIGPcdZ+(i`Q&m=<0GfO`X$nS-K)2w%U2`?xa6K5h2W)4;^tAAK>QQ%ZP3EL_m716VJRzc9&e{wojReI^1aaH)j=r zUx@Z~E?ZCk%FM?ty>lqD7qMW(7dRyGB`d$>Px$X^N2#B6UPWpoC9**e;%^>|U0A5t zPHL`5V;-8npzwK@J$sVv_?4|>Enl=lWrl3@L|bjqI%SG6m~CLY`S#}K^57%$4d|c= zNs)WkIRHPY6UOw^`@&Yxm{PC?r_tHZ9=rW(%;xs#RYn$H>%QS|3}9L3E3YGGybCne za|{coo5)yo$SRJS@ZPjJsDzulebW>V8kNXGq^Rbr8?uJ(8MEiIaW277ecdS)Q-n2e zMGnud={&hfh~wS)zHQic%To;vkKqA*0qmf*c6PwfV@QYumer}U;QfX=xFb+MvyNTf z{XRR7fSr7{#Dn%t4LH!~{3t(o_`N9w#^fZKyO8Kk2`=Af>T5WqJHtCB)C(F;WV0RB z*YvZ-Wehx=N~F=;I6)sie1N4|P%1lSk5GMbjWl+T|F1x6D0ElsukPt}93UDE7M#x*=~2Lsd7LdX*i6KBd;|ri!{b7zq{LUKN`i}~Pr0jeNfhae$(Azt z`2pa2u> z2?#E+-tvL#^~i$6_L~1VDoB*-$z6R+qbr?>*>U%IrHBB%b!s7x?>9ffX-QJXn#w^o zcS6?_jgwGP>E`F&ZJ|VhP+?3jj>g<)>gsO+BJvxzA^ebCG4kATTiSN2>D+Up@;v6Y z)*ONcYpf!VL)6b$8D&FFa_|-o$l|l#==qv&;#v0dQ&~gNV8pWgv_ti#u+riB^^*^z z9fpih6~u>TCAfFG&m^7DsAQEDBa|7;Po-RZ8l)~QqG}Ea%u{|ghs-wY#~|hg3TK9r z)_ahWAWvhARjs=*lM0%2Lr3E6#ZYY;{{iNKOjzy!&Fg%U-vBNu)Po;TXf8|Vt2n1G|)$2=M} z2T1Myf#2h;4*E&IM6hA}!eQ81y@`!FDYiXUGznUABevg0_VM@K_o17anem%*Q596W zN$a_1P)S6Uyio~~J&Yq5@o&k!A(W?r4`v!ITEOqKJg0>jNEY1O~6>n3nNT~xU^FC zpR8)xG#PPG%yXU~zkgFFja0=zRr*Fa^0hZt1&*};DrTdSN~SRf=FN>U#H+aX@nuvX zfEc9Z0TQ03U%N%m9yZRY&GLyTYSiwU@p6+Z=-Ost_=65`MU=o@VJQLXshax0ffI z{`55s{U9ap|$E78WP7RTM!V2xVr8B`yNvJ6}Q zBo?yaxs|fxOKm8q{rrhNMa1Wx^<09mm~0YrfJ(&lP06GV+2U!;-advS89V==r9!4{ z`3uWe*TAn#rr2T#Dj-E$UsLgj2d)pz7sHT{jjQkZmMq( zo>$I^h;6gG^xmb%4^`G|rcrx8J=KojN$=s3QO6;tq6( zzg-6m63N_I{EM}5D0q+8a_((zhGthKmc2dh0nmcG{b-rZ)xLknSl0>YYjc*%R-uA6 ze5T_amC^ic4Eud^^Y)Yxtjm74Emx7hASH0fZYry{n&4I3f9f4i7sY?a*mLTtApU}z z4GSf6tRjI;V++IWvB%*ama!vkqB7_7lxlII26F zzT>Vw!O;%+z^(TCc#{rr;9P_MhU|iQY2HzSB7ILL1ggewaV6XHI4{mGT12CKGtck| zJEs`okdA+$<6L)cM?Hz3B^5{=dP+H~EO!mL*E6!6`G=GyWTjl`Imh2@qNJ#`4#y)}7hX0mbi z9`lCB`l5?{F*5#od+I6kT(0W%Jtl&+ntg*A7X@YgQswag{G;bjhg{`6S?Z5T0ku{N zEI(JDKSY-dT`LqOcEET#)aje?{Z(W5tL9?IeGoBjRJA4wh03V`3TA1jjp=M!UArTK z;eA#dTdgiMcImS_&u{=LSF9JJ^h0R6FzzrQ3L$3SN$8fkf!yTv=O>LqiYb(BU)!0SgG?=H{pUS( zXH>q;RK_2WBZz&w5~YX+3705-r>f zVG*g5C_?AKRsQ?*As%jS9PrSId$n+>x6oXWMv2+LrH7U74t}8*V=i@FlG2=TqV(Nc zZQ~F3F4&*w2LEdN>}T6nQym91uDY_<_mMizg4hvQC2h3vfMt%?2eoZ!0(3>5GdcYq z7(70-(cWxY{if;s`mZc_jI&?8WqG1Zv>{ljdVhFRPdUJr-4tn~w+LFTZ>+MFLhx$lE=!Zd}R$Ha8SB~I;ocD({K+Ecf z?i*{7JpPB;;-8G4bbew+byZzy@#tz*r3LPh2&mKdE(zf6BE=+Sp05fe$Be*OV6_&> zV8Y?phidGCANm{>f~=gQYA~?MDvnA5_*dtj$%P-1HWhq@ieijfBR`Owtmt? zH-^o6!^0}RpJD8)D0MgoLA}hO^EY9_vLE`OSxCU{6(3es0^E}tG0T?4M!kz%bRquO z(Q=OSD3T9nt++}7$(iz{XL-uU^iGAgp{>OrH;Z%?N zi#AqOS3K7(e?d-@_5@!2?DdzeqiPd8r70Gcnq*mpU|j8b9vq=xjOI|M6p{E>WoNA{ z=QC!(FvP;4=OVEw`YERCyR`NzAHClZ)}~i|)5|VjbVsd%o90(umMDclww_8xvWn5h z2oTIWi8p-krBzP1eH1+v8nDj%s-*Iz?MW+Z;?YUQ%%6V6`DU|MW@mw_tU}G}bk7}y z0+U)!_|#b%1aq?US`hmc;WbRw)r=b1s*~=+COPiaXnSJ+@_w^Vb`hp6*lt6L65}J zB2WZep{=s1$2MPhR87+lj=>mD>MKn<#NYM8i12PIB>3q8k{4(PeClm7MflwZ{!$ug zvrGJbDIbeuf@Qr&n;0TSPvyME6Mv-_W!N{GO!a|G!m5Iq#n5Z8p79iayrldexZD6i zXX7*b*J=Yix6}pR7vd(}_jHz(L06~P@ra1NQxuL_(Lw=#Z9H9tjnyrbhx7f{kihxMw&pAgf#Y7 zzLR&p!`-!r|2FMY{cF^&#HSXOW+=t)BNI~I<2J-)c^-;T{32a6Woa=E?tY_`MfA>K zx{Ql5bn6&9BG0cBST?U|JLz)1fcpVta7K}|pk@=rqPYxMA8l6|QI@4Bj8wmg^?`NP z5EqLn`MRE;rgji#DeL4*-vp+(J?C+HV7n&4*nC<={h161;u=cjlC36lV4aWRnsuCJ zow+I6egDYIf?AQa{en4|xLmJr*YFek-*w^*?2^I7Q$fMe3=ik*gw(Ew;whD}KQdJz zkz~Ang|E>QPHvl+5RdZgMZsp$o>h&&iZ!0?Yk}tofXe_vf_G!{sx}jOd|GH|L+)_s z(1kIl$lcGE`KI-c9Ozt+7EI6b^Ny|dLYe!po=4Vr+6PXxDlzg?p;BVE#beUVNNc7Y zJwx>k7icK6dxSFBHFQzbNyxN;(d@CBab5?Db(H#W*Xi^Y7RR>l`e5A6q4?EP`jejn zt5m`4yY@0~$;nMEp+8>E>@&Xt>s()i^joDKBjLe8Gq26cF?yaNA8u?_$!9Zu7Ucx# zo2Zs>@``o4$HV^yeF`N*8|E|HQmt#Qa3?H(p27SFuE^(R!3$5_+f-y&dV~(mM?qqu z|3xjuh-dMW8fMXcJ=A3{@6e~stO|%7wqkV+QOSfIk-U;_Zl~|F%DM8C4Cd@;)Jl%9 z)UoVu3C*aAYaOW+zYz^_^|`k*^X#j*EdVuz_0+0kbl4U^?Jdlnd>>JL$$=btf`-k|LovnpIPjp zlTxnsyf>D~f<*50i^SQ%8JfZq>M7KH#p)|3l*4r0;0p%R?7y*a^P20slbVi%=%DGY zlLJdC{Y<*)KVRMHl>G{;21oYhuFH$bXBX8gRKq+95!d@UgNm{^Q!M;9;5%9tF(_ji zVMPcr|3(K!g3qcrU=+ZS=b|_-1~(TV84B5H=#{IYfw0-#8QLd0Fd_$B-()}wGCiLF z13x8h?-?!OxofQTXpM+uZ!vFle$eIRWrUA_=c$y;SH^hep5(@_HF&9b$myq`V}J%sAmCb)i6E~2vu4Z`BRxbERr;5-O+_k&}OZS?*%rL zeiexuz`jH~q*H~&vEn zxwnbu&z^Xrt$o$U@DTFjE#~^=(_b3bp+qvjXPOJd3N*ov^{e-fiG zymYT3Tk3a*fB1^ScoVHZPJzCX=nhz|-^i|KEqKU=p%cbHo+nNNpw_q@t02Ud8sH%k zhX_>Vir|-l>9(k!$bfim)n3eVt+1ptBdxZpOA!zl+0xKf=w@^O_T9D+=@StQam@n0 zS(Ue+YX3}9xt0hSp)~jB&Oh>kCGeLQSQGAeae92pI=o%e6k($uQFEVr`YVOr$*Q(f zvOhzZQ8qr4G(p{H#~#1OJnt>c@jp(oPnjek0;3d8ziL#<(C+cng7ri2d|sZvJ4+f{ z8Z@UY+K6u0<98lsepk4s&}a7X4{Pp$+|BG_x`(hSdHmL^zMWpl2yqAMDM55IPj${n%jEVq|dv^oja8S<@NTTfLHtniloXBHbFS zCBq%oSh>eTS^EVkIJ(A2g5Nv-uhIoAR`0u%SCJh5qvBGTP062iN^-{14qFOHrw``l}-|2mF%M+$`b;^%EQ z-Y+xtWqKoT3SlpiI#6`eoBP}22md?Ts`s9!KA`hlel z(2f!EWll^Hg@q77ER?Fopz)V)SVOfd*>z-ivZWu6f?J*!W`H!Uh z-F}={N&ZHsRcq+f9X@#j0{s{5^ls1|VoxZ38g7Wnd?)Os?Ov?;J;V4w2+H+!JU2|Y zdLbT9a}TXwU~qx=)&EitKlsmS};{@^OSAnn{!&KuKA7f5!7AC<>KTZ!hLsMD(( zj{a`-kC=PCxVR{1m$1GXJ*=aco=z}Q&hDg5!YRgo~{qw@Ni$7}hs z*spW2LWyws98_z~-Nj0K9@6Wlr{HL?XkiZh@R`IKtgv2xARLFl{?QTq z{36$2Arvj(CRCUXjO8_N-mO3se*ggi3zBlF!#|35^nkmT8*gmO{eT#om&$#nk`R8r zbcMdGLD_%eR+Mv0-ur50E;5e#2jRG>r$5_h;Lnl>^Ra2j$(CMxOvbNmGm5X9msMs$ zWRzYh9WP7l(5W;f5RXEh^3x%TJ~ z`$kfYeb8i!Ulw7igV_ghg+UprZ@F(IgT=kU%Ujc}U#Xqhmq6x4LqSxoFc$m#p&mr5 zaltFQTVeYX0XvcR5vTIO)GaYiz;Z@-z;kvI_|F%wL?m;2cqzIbJasvgO4nU5N*Nx# zccxt(Ni*gV^zq37N7041ivYBSRBOftw3SP#)pYTW;`Pb%*DXt8_BZ0DW9f)LT@f1| zKffZBaz|T^nvrJ;ej4PzM1afxc2yj8*bHyP(#l0Wi9vqJU+`1U+u8+6ictRG{oAn~ zPnOdx6dyG8T-_WSb$wJir59=1)}hC~JJ;!IHy)3qmMx@44K^fjX=XQlnQAhxueoZ2 zB_{=P|MMyIpSJU66j9>Nx2wJK$YQr7Awa`Nc6D_0Uk60$DN6hJsPK3rw%6|Oi9igR zrI6k`Mhe+)-@s1$isVC9@WZXyd*-P3ikX%z&-YrDmpzBlWA^-+Otin@rLpi`Vxw4N zx22v-$-#%+E!i4U%3aWFy)8^HzF*Sw!-22l4eBi(0XPSc8TbC_~Z?*IDx zAmZNt>6Q8Cf_?&`ZW~#lXW&oaRuSBIu986P`O8bkl7V^<*aehR8FeWrBVEz*R>U*J zb1f1fCsT7A1JABqUU8S!PJllCF}_v_o!4S^)2*NNVOQ&So9!!T zl%5dSQ|h+a>$Y;_hHzRC07HR`BvYlc){=%--5UH3AW~6usHL>XWAoRs6-h7vTbt@L zAMN_-_YS%D&+04G-CF+xh@g1HeznoNyzEh|epeG8)UR!Y+_kO7JU?#{DmmLa>gn7C z=4W8AzPc!}DNZy}F6?Qrp82j5mEs%N1p|fnPpZ#-JpA zi^zVwTqY2XMSjSJGOCt(sX(9u+wZvwc=55Xx<^p%fvsX%5vm)zeR1H!*iFA!l7|S& z{_-@btV{IHBr_rCZ!+OPSGZB~`RTqzQPQRDvCO2qT><}viHE(Y(QnZ})gY{9569vY z_``pG#!+q7f?FRaWJocGri6&lX<^N2^es%x=TCQcIZ`@SZn-D%#kmTUPHxk<#WG)t5sw{Qj7 zw0Rt!&##H~(K9jVQu9C`R8--`I%yF!-(0C&C2&RBsGjEX{HreSu&u6@WNln)A zE+8E8QOU7TsldE$H6DQF1_eU4%>+|Up-(d=NvX%Tb49!!G-4;;XKrq)EEBJ}X8ro> z4E%s|IopMYe$ej?;?xm{z1NJBVmRK9u0t8g-pmrpQ>@#)Dzyi^-Sz*9Eguj;UR5XH`PvC z`q3(+wcJ+#4a{>;yUz?l_OX*JE(f*r*G0ZkyF*B<3?-3f1GCWZqc5lT05P~~-Vz#~_(bstDZ?Z3TbhRTl~OulRu zedEWzIprf{`{M)3E4Ug>+(Rq1MsW@ugZ2%z0+}E_@p%MqUAR_sconm{$-=<(4h=MI zX0PLkA9dDT&Du988hi(fi>_JBT6Xe4sXdqF`~0V&;Fwgq|KL!0%TvLfPHAQ}@^G`h z5Grq)NYI{oeT}C<@}Y?5-`i)k*I!avY89wnhH49+=JaP1p(q)VSmr)^brwvea@D{T z$9l}#W(SX!D~_I+I^opkq@LlR=ng<$@-w8dL{L$x32&U4Q2)&59u3JpEWoAAMx+mU z;=kcS37r94Otq3s&YnbQ@6X+||Lm-DG_bg@14A!sYEeAZ)RWE0gBc}8m-8RI1V&68 zq&FvvGP$-DBqr#`OFgEnB;Vn(-?hT3+V8!2D)@drSFcQwH*QY-eMO%PF=06T1QVn* z_;lbQ=EWn38jJDqs$H5%th8YA<0Okxwkkp2v@`PJiwyaFnI5%Z_r-qCh5d`5z^sSl ztqXCivT;(v|H}e+GH~6#IlFz}Sgf?>x^BqrA(qe4)ZU3gRglSZri)#7q{Hu+jO(e* zDQ;m&Aza-W@#a!C-+evzkr@qrBVL5H1v(C$PAcWA==wf`>$wtz`V+y`qlh#Y?B1?= zTQl!05YHA{K49O_ICyzj`feHW@Vt~D7%cv%rqF!ZB-_@vwtANTJaQWnTW#|6U%6t= zRu0I!&GXLxlBlZzlS8=28+-?Kx!#tj zzzSEnt;U2|PH>4g{iPWy6OKVl@S^KQKq_<7?fVd!^~);2l|Ed)KYUM*b>Ch=_uwIE zH+k+!(O>RlEJ6T!W6v+4Rq(mT1Z*CGRd>wHa4p@uG6!KNd?Bs0Nov(uT1rj>Ol1BG zGVY%VUQSUQGP19}P?{uqc=p)~7k#fi*&nc{p4cW&9mTxweK>zqZK9)?2N?sN8HY2X zBFfVMZtlk<)@q%l!rZD8n_GAaQqlD@kX#&Ie`z4+xr>FwOnEaF z@CTd!jfzKma-_)3^oW|{aEoEkjN2QRMoC)&AAK&%?7&~eLP9WC zF=m(|N&oVnu!`jG``@0-ytbfG-EMhP1wbO;<$BgG`*=H5224eklEibr?apItPKDZDg-K!T4r@;Q% zIc;*d4#PZ;Lci_@X$vR7(2iG`I5VZLoC{E9BcP+#J~%p#wRC>JWDLO z_D*o}BnZ%xO|!H?s(Im%3M^2<$u7=fYk7eic&I|~!y9`*O6^RukY+=7InxcY=)gw=efndF%NlXT$98EYi zBWvz<=kdv(KdKYY|ADph_Q_Xn-?N6R8yGd815|i2dyP`&vF}OX&#dovP+n?$IEQCQ zA$Q;C=#v8OKI=NU*$?;EzkhF`%@Cs7z$*z!sU(eta&-tSY@S!C{|sf? zLV@XIB}$Twmjj{OsvxYKU7I**xZ9Sg%+!;VFAIu0^3nhtx?~ix z;F=b*10k_o>JL{?;`YQZ{jwf7dQx;eUiV)6!GD+UvC`t@evf`9y|2vU&&#b_TqU?B z_X4k$*ZV)PV;(nzsKfMI2YDe4592||y#igz>;rnI&q>r=NPj8RA&BMWU={A;QIujSm1m~E)k+Izy;WlqL_}; zh(vWh;bqpRCe}gf>Y6#*eHUvCMyRVLW4PoLDMgwhgu|5PFgr=G)rpxiVNFvy3=>#~ z0J?xA5p9hn8?~Ls2iC#UT`PGG`|BmODJ;v zbeB{?h6Z(DbmEoCh1|bqOxp|j%wLp{$o@qK!EY5Z=o(tW67-oy(%IR$dihZ7qg5mT zG=unl9FHgWNNvC@Pjgq>ApcBrCpTXFx~d0;#R+JEfx+O2iOj*W4&KWzqs?6ob{DUZ zlsBC!6cMVvvv4c;0h~SN(Dsv3Nbf1m^3}h{3#3F#1*#u)?!yck60>N53K+kEF(AWf$*Mo<8n?18Rigs0=7i)VDoq9Q3D8M`&j><4leseImvrPMnzNU0 zH!$l9olyO}y|FFg`(G^9eBBR_uG?QK_9*{i*k?xbuiZDx1HiC99Orxj0(#!Pzx{{% z&37{XCw_Q;xBlpK(R(`ak{x46)3|m!}sTxrY=EK^1HI=tK zm@@1XAJ*T92mEw(%+Lf6?WL|Zt0?I$edhqNVT3+w&~gy`KsT@hPhO!(mq?Rm-h zvxI{67dtJZT=PFsibZ31)Li6{-0X6cYNu?kUmfl|X>ubLB6ZeU6XtN!<$%c z#+s;eN+7kpzZh*cznYeK>n);W`0oSN{TYGLXvd{# z_KzDRa2={a+|6NkY7_A5Q&}9J-i!GU5c@7GN&(Zg-qV4$UfnL^u7N`0NlJt>^JLT< zQ2|75;c`gZref~Ng+k(Yw-AWhzwevmFPY%$S$1zR(o2iF#XN+4k!vXP3E&8Th{4d* zI*E%6j1@#w0bUqn{k6y>rAd=Ee*dQG-0r?6j}1; z*r%WGfSmSMGiYZa@PCW+++Ie*EZ`xuH%onLmS~d#c?cWqwE%1Nvj4@PLD}^{-+k*W z`{P@szcjTvkJU(d->%1;vfZX14AfnZ%jvX`<>d%7*+pD5-jtWauK%rTEnh(p@A?9y zRTz}Oca@3^3@8}`=VKRLr!J+m?=S%!v1lxcz7$u>z-ZAl`GbZJ19qrPU1!x}jSB*8 zD(}njal&Nb{^v3e;g8SThNuB(PGDer>o4H5gj#PT4hh9Rf=lWI!UJcHYdJmVJ(Dq|=sEEWol^GqVe zkOe$XZ+xXu3|LmCvbs0PT!u?0!{91pf(G#=om|v~fSK~q{BF2wMg@_+GJU;^7{rEl zz^uNEEYvqy(vk$3$M}6&O8@yusY#&)w-yM1;CfR;w%!QIw@k02 zd7fVLPMw9!r;?L^1YUz0*=nBi9RJPoWmfaX0yZEY5;*+^u`G9m-PLBpWam;lRhjv# z>;!X4t;)HdtS$fS$l#`7Xxb%X_^j1~1+MpJgd%d&J_HgwCGxa%MYH0x@LR^AHU8u| zxO6CnzAxr|f3ATP-0N=`sOV@eO0sMr~}7*L(|HH5hCR!poCh~tz046Bu$uUp?-2eXM>iu)2E$g^i*7g_*g+A*GqgNZOllYIjE!-C31k^&&LHmiM zUtpx54?>3#@@{e#qHSWjyn1??l#JMN_mD~wzhjevzEdp%79}UVv+8{Myca@yRZ*mb_ zyskd`4JLqD$nn#lCDk%TkzR|5QE1es#?Vl?uu#o{IwD_-td%b`(rm@2dr2A_YhsS- zPIr=6^}6DP@I`QXUUM54Y2@p-{IUp-=#QRUXP&`qIurm%V5FUMRnY-J1>Dhfpms{!@MWNyG;kukEWgh>t?f zu6(pH%kkK&IA4mzglZMZNj ztb-qH^SmR-hlVcDXXK&C(s8*!vD+4(tc9-$p@L?C0`( zmu`z1gr{#X(%F~M`Pm9z6mSu~f5RsCNgKn;mnF=!H%yZt94AHWN|qw6lQO`HBfr;22tPW%`5pN-=$aM~;eD0M zggZ9c1Zj*-&L|y}pS3*=WmZhJ`RrR0)c(HDxh;wbq<*7Y`AD(&9E+!$M0&czjv+f4 zR0s?5_zdds^O%DB*xJx_pU)YQUiEZ+rS*Won>wE&ywihKD3$JRNLwsp|~c_61$CfoZ<}kiN1x&xHI({MlLw zk)QXuGxW}8tpeBTA1TVGX8$_N8sD5=I{digAYCC54z7?eU~sFneWH2(+Uz|Wcy za$Jxj!Qwt+urf&ZcL5b#i%E~C9R=r#-!v~_#;^9iN)8ke4()#7O&m7ERM42W*&t&q z#sB!~a#0o)M8NL`v;jj z|A5=y;|vZ0s_MubomaF#a5-jJeJ<9qcL6=?P)k*a$f2pC3j#oYeT9S1Eu$>055-1k7@QE@C5X5xZP8Q3rcnWXO;lbZ~Rzh#ZGvMBE#=(C(kE@u{G$4(?Jt7uvXTQ|vgK&n)hwrm|3@mE?j~E^_oLq+YjA*C2wH z=;K@Wov^Uzw4AzYhRj2vRHwoU`}hI!AF#N^)nNX3-?~CgE^%$LW|#v( zTceekbSA4*?y4W(UhNvuP50zS+CHhf!?M6?~5zqr?Mx958~xWt}Y+7oEag`C@b*e^KYJDH-*K zbz0qU(MD9m@hv15_q&HUBbW}K+})v#Hl6@EXQM;SywkL2U&)2!BlTH@KtZOj#3q)z zxOnJj$Vi7LKPc+en{kRYvy4+qFjBT?BtyUFfG*rf`BwZ(e8BT2z%|i|QO79pG(kdy zxMpz^$8AYlnR?Mp3CWgEpzpe;8a+36EMFEJh+5t4_%i*LU+A8t+r? zwu=6u+fY5dM_Kva3CS8mZt+GuchZINli>1Ge7jT-q|CQLdGL{xr%|>wR*$NMN6ZHd zFrUpdTVg&Dxj+wPo*L1!Z(H0eFNX(T?YD+9cUsq_8y)mhIxWC_r@UX8dJEnt9>`bn zo83*XRzD+tiJCyHK>TTPw0qHt)((xoLV4Qq?1x%cR~P6#i@Y6Mg$Tzwmeci4Wm0gn z(BTl*J$}-shBoOwFZcW`5-fM^!bz-Ap8gC(nu%w+RqWE<{tcli#Py6>URu`O5Cdzf zyY_t48YAg8FQEnopUY#Zj@gwntgS0bgsVG^0KiAi*i4#@%YRlBXg5`KH--dn2nK6T zf8WEHariT}Yh)O3a1M3tDYYJ<`5+R5No|V0vh%%JXq;+&X7ML0|6+FjTVEZPTy*d1 z5D~O>KoZ%z>Jz-*YB)v>Mu*%ZJ?w0hN^-5L3(7J&pPDzr8$MJeG2;LVIj~&hyv+em zUXz6>f<-iw(D~hQ9&bbw@>w{b;S~c%TiW;*h>!&Y=*5m$KJ!B+_g=OBVb8#n()?21 zV+)`9Op?5Nmz2muFV|0eU(3zRdHPjs~j$p`pEs5l+elMN`xX( zC`t$=Hk2fk`wIjk3Dr=~OpejR$b)xHepdWV=~-_@N#RRpE`U?yykfKF>4~4sOzgk> zu~@s4&N3!{?tLACZz8*QwiskAjK<$zI-cPxD_+|8b={06KJG@mmOMD76b>t;$n6q& z`S<&FEz99e!253|Zt-M|F&w&ACoGR z&cJbqM_NCSY`jL5#o>&)d(_L%Jn9aB2f`Yz?rkLls1zKP-$kzFYqQ#VUVLkELSJaC zezTnMqNQ^`X_J<-kTk`kgd$!b(?XDrZG3_zfs7#?|LQ-H58h#M`}OFW@fK8PM$xv0o-)+qS_imm;j1}_MBg^mJj!#YsZEzo6acr z(m4Z=k;jr~Fxp-Oy;T2u`tD8pLj>{|bbppnIxT(4sjRG~we#h3s3AG}PjD0(WSD?4 zT76!$yhIm7TU|`B0m3J0oiyq%6L6rm7*0o2i2&`50|U8`Hs{kfQM(?>Ei0I9#VHtI zFfB*&A?+Dg^(EjY?k{B07J{v60MVk-e9TM)NQt+=Uvq!n)q8u}CRd2k?IEs^S~7G- z0H!RQ9OV5SP-tLZoxvDM>` z0(z(d+2bFq#quZ^kO~I+QFTrd^?`|LZEB4c^racSF-o;;1t$AAuF1?Wa~$F-Cu6{N z4Y{^a=Ls_bH+GLeC{l#r#a9uY;u8>TkU0@}J0WnJWf0EgtV_50W~e#Ma&gE4OrYS?E*m z_JPKd={%LISQQh*N{OC-SGa{>gnZmQQyj=693bYqiAsdm@I-Rz@WpO)nxXJOt`>mWU z=+B>RFsPVC2kp2@lQZqPNSaG$u3jDzp3jdtPT^4HU_cuM0IBtS42_xdD zUUpWEV|@-0$wcg%{JIG^zLln(%`?MuxMmF2_`1nYq#BKKW|OmxD(Ot63FTUOH=*j? z9QUIxOGUI4wtl9XE{cm}b4?fhOI60sXec&^M7RmK+f@=q?%h0;eK~&m(_s4T8?I-= zfln-PuiFv(9Zt}a>8Cv)v?+bTvyQ9|Jr}(q~ z6!7ZKePoe~cE~x25_@ZrO*@QE!Sz%vTFcm-j6y>NAu0*dy##14tj1gY_fl`nPzaNU zaib)j;PIwDp|FbJ9R>OVh|PxXpNn16%yF#Qc?z|x6#$CSr2%vG)yqvx;w$gyo~e~% zz)l`266vmS(zGE@{ja*yuQ|)YZjPYWRCGlt!>r+Tx;tNjuy3b|oGlJ>uWZUNKS8{r z)`ofDvV!2^Q_QFI`pCxBA22URWBocTy#T!RIxIWshw!fTOMlSO`Q_zPkui7pbB@-p zvb0v%t2g3tCG)NcpHYV;c3iNe1x33XZowuurT+J|ZuoNL}J zv&OQ)?q-0D?fNCgLy1!M7$qsS$(t46@})fArTFi^D)5$6O5H4Rr&Rj3H9<48cPqUH z5$LvUVFo*86e>Rs8nGyg;Ry$t7PqzB)e9Z^Oo33@{3trV=0?m(*XimnkC;0gayC`h z`XC)&A_oqvp!v?PG0bcURD$J=rpHaih(>B<$0C*@M7-5@fp0Hz;rp4Y6+E8#mntbN z)6oPevNCVR%=p>T3Z0)(I!TtGH@KFMdmv?Xb#NAJfcAJYYL*JoNr*gp#1JY?)~-Js z@!e6pcU6`6x8&&X={Ttc%2*3(H=msNHcX=$3UZPVJ%%sUkXc?1>IX*{BxYJzWNGP* znNaICSbnlH$~acZXh|J>jUHFU=*63oFDL$0YnDbxmnPCWpD}VNFB9|_9C)mQ&rJ!m zGWvh(Rg9nyHBthubRc#lMdF|Zh&1!ToY*Qq5Wy+1oEGw(=)ikJQ8&JmYv(U0)EKzJ zSM7~Q6q{5_n4wR2UJl{ZZ~kaZ6Pf?HQj<~Azx_P-!?qYWfajVVE})5jofG++Hx8CdzCZ3n8H|L6{OPk3VYe zJWCRpFUDnMw6?msl=n-yFliY2Un~Q7f2it@ROM=NfqU;xREW@qv5^ML)ZMggcsIUb zSbv6)&i14i1B8K=dlgI2{yYKyYQXkKd95HZ&F-E(jC#h8e{n4T5hxh`+1QKZNX#c& zzUg_05bieJhHMbC<|c)Pthw;CJcXH)mzGl$e*wrk3;Tl04x#>1Tdk_ab93qGjEUzI z%HK{m*HTRHvUmN&vq-oQfk~LQL{CYy+A)(ceGoQtssc}jHDbL!EpFBhW79O1eEZ1u zQ&8NP*1*dVo`U56urX}mR2o0c5%kR>`by-n+MB>-s4j*jx}O{$DnFYCYWCZGx#HQ! zN)3)CJMA9`6bnp>As>kkoZINf#&uO8+iS7pjMa}Y~grI8=@voi?5JViW);zjguIo5)>HtMH zU}GOaCpS&0l`_}+LkVPbPX40kzzyEb6P34q^%4I%+w?Crb#!!m^80t>ZJWRTATZJP zcz*svpE%gpFc;2o`}^<}?UXC5B`5y z07qE&m4Hj3GAEc7WHcCTc-75kO}u|jqi`D4JjOz$09QIAdm3Pl$$S#Ph!yhNWF~8Y z%15LMW35>*mF>Z$MO-*%P$x#L24=KCFUSIo1#y!Hn1YNYo2sYfFNQr8INl5;3| zv7L}Sm9`Yz)Q+j!+-IS)f#(0LqQdGYlMi?Ql{oNcPq_Gd$CcRq1Mq>k$cnYrbilvP zi?-i~#USFSxZGZ|=cg%FA>f}}G`1hVjsf+KsfjDVdH#Iz4@g&!`TX&b6ui=)w}rI0 zP#%{+18y#GOV??k3l?1qEaQ6YuHoflX2#vzxcnYZzwvjk8P-X%A)Sz3pJPM&?xa?e zd5`d36Io3zz|cp%e7!%rNRkF*-j6AhaSasbSf%g29R8uz`tj`fLIYN`v$5!Dn@Ec$-grn(+tixv{In%GuNe}0oLp2Vc7e{N(E`xi%7VIe(f*>PnbT{8 z2?xP%-@d)B<8o=~#ru#cjmL(b^C>jEmAUT~eZruNBbb>j{d%GoK7u~zsY=b04V1fo zu8OA-77JkQ(I^%4Zc(*nYj3k-wXJyA%svoUAkTF+Fn6RnTO|rXVn|ipy{m1pL=oiCkdx^gK7ZBfW&Dq>iUNd4uxb{K!?3 zX{?3na~n+(iv01IH9Sc(sqPys>0_+jxUv;uh1OR*f>j$6M3mND_h*EK(=^~}qCEJe zf%DvWcIDrxgIT2a;^av&kZI$#9znRj#18)9X$9qZ-%gqs&0rFbBdnAh*v4vw`++J7 zh_7p0TNXG{vik#IwXCxB?D<&}He)6FK+hU^`;3!X+9syQ?0vU~XunsRLh^@@N@sfu zNHQUtQx2VlAj-+talhSoF%)X2Mo-!@b)t3(Og&9N@SDXR6d?9edzr%8VD-r_bsM0W zJhhhDCf#4FRQV*!o1-93Q!O!31TfC z)$^<9sCuLStvBta|9zvoA7d!X`q_TZi~F{1#EHtQ`$1MiJmmhe+#9#QX}Ozg`mn{Q zX{p4y{(9>=T!UE4>Dw7)HMtqEOwPq5?49|gR&X*&cofV$n_ax(bM&j@)11O9uD)b% zGptaC4V3RpUIfSNGu)u&Y@1HdAD0(JDh|D%2bY!>qRr+yll~e;g1{=L(K%h3ZZBRZ z{p~tz%AA7R0A2OJT>s7!{08`^ORb#EBom>;tfqiBB|Gj{sR8@Dnt~7-gb*lZ41C$w6k+<^^_FT`x51`>H9yc|0%~y zU!V_K%+nm|%}rs^$^YIy6ldbPC@*z@^ZZokT@;9t=B>$r1ZrJ=jjkl%8W23 zmXq@DBBdgi&5L9ERHlffOUQz7(YP_Px|&2!_W3~oX}wLP)R=Wj&0xoGjHi$xRnqq6Jrw8HfJEN zKPA&NLVC5^>L>P2|CG%YaJ zGl93k)D>fF!A3%G4>t?%>~5BxSD+#;1khOG`U#Ybn5}!zIW9?xS>jpYn3Nr^6z)qR z*-emGp3ShfCV>72@TAGf|A2+1KEHw`RanI6)xf{akz!vbpakL%5{_VrcSbp8fpwy1D84wqp@ThG$HHn(>yfh((S!B9;FC?Mb(Qxna zPYQ;cIL1myY&2+HxFWNcf0yfj#vX^T{cIl@z%k9v!E}FPnZlZDMvk#?N3>zuD7_>0 z)Kg%`@RicEXNcEjmQYvMG<5F?V#ffL`}pbQ7bYxnLZ0I?kv4UfVZ}a-kJ^PE%>QM$ z-lA8(aT~T`JzqHXubhX&D>S?>)+a}BLX-E2t16SKC0XOrpb!FtN?ulI{msdEVLZe7*(Pd?8E0$%@x=1 z1{+BxhlNHRD&V}-xXpP6Y22fr%oYo#=>DR&_kOVJ^nX>70}2zbX}ye2@`FK`B)+p4Q6ZsE|=&Sm~^@5wS{>9Kzk}+$QHI&7vmHo|K5F6o@r9o#H-cU|n*` z#DZDm^QsFo;$A0i3kgWc(H_rU6IdCzd!$7)ZuX3y=TY)s2ouE=O!1E>KAHo6mA+b2 z-bR$DRJA-XJNJ?9j`k6-ZejIsk=oR5pVn;qMjI9W5GK5sDs-Y(9f_gnw0!MiX56?t zqLZ)qT90%So%NzAVX3J6v8C_8_B(U84kh~Q`+HdDv4FZVPEU85m-ZkzmJ~Aqw_CFL zcQO!o+4gGMQR%{$9ar`kPrAFsI2vPk8HwY8FI+7_97Q{|ql9Nja) z_L;R}P*#26@*KQP-REG682^oxfNecZhKYD+lnh)gXcCk`(-j1&IZpw>B27NWr;3ty zR6r2JtPzjXvc^yr4Sx+XaOx92M+fd;c7Dn^HYW^G&(bK~{Q(#1wl@F5w@0tVk1`1v z>&nYfKXkf^XM*YYftNAZ?|?^#e$c7ACNRqQdTC-f0+Pp;FYx611U!Snn7f^ugg%Q3 zIDruzh}RT4NdQzT%7-D90*V(}|Mt-UoWBqXbY!5($d{v5$DxFt?qFMCD-lk-;M|lp z@wx5#&!1o*kX*Q=TR2SpRaMc;`y}ROe~hzqy}3RA7&JSHZl%CAC?_XJQ$4kl?ydU8 z=R+M`)|%7;p;GzUXG5%$=hBcA{M7uZKzrJ#c3T-GDvO0i9@b=t0A}#6A0fJDpy@woV~K!Am;-jZSkTx!LE)5UJ0ebbuu%-2S2#s-)YzyM#!T=> zf*|tiO_OkmNBMt!!Dc&le^+J5t6M#o-|I`ru03ZQ6!F~&z#>3^<5aYEpKq(I(Lwin zg4j0Ze!ZQAN0PtVi!av_6?Rd2wrv`CbEhu+&VRrw;V6ANGDn4WAM{dz2)s+i)Ym<1 z(TsT1HP5ltJB(kJrvJwy7>1vXFWzDsiv^nsM$-GhemA+CnDX*yy|vaK&O_m1*;=c< zh;(7B&O~;Y7TLV@IShz(-5QF56Bdb_wCIzkZ7p3w8`n)GnZD{#f$8MW?m^su-!J;8 zXTR|1_3{^OCp+br*)#r;F0UoKePg(NQ8CgQS?l=SLu#+lU>ok$TRJ;jKgJUhF#x?? zT=HEsJccIw8Dn7QzF6iyaLrdA*F*Czg@D+R5bVNx#YjP2pn6W#jG5M z{edSmS=IJ5zJTQY_3D4XB1}H9Ewpux8Ou6o-V%QJ19)4ic$2GKy}fP3Wqp+qE5RYv zPWlD=j|re*tfTy~n&fZD#z?H zFp6!#@#^|c7T{|bB`}|YHLuCE9A-w-m7bqgm~fP~LCbtTI~M=PCadgz7FqS{kmGd^_~Bc-hc0?M z*&vW5`MN0{z8u94(p>uRJLeY+MPNU@H}CZK@7Q6>_yuFHp018enit6P58LT-w4~Kt z%mVESs@0(hdSHiQYYPh$yFZ*o4H2o|k{lh-1>a>1Fcg-TgSlZWa4`Cfep7srnw3Bx z{a){b%|A`AeUS(qf8lRX@&nth_z6T5#W%eg^cZ9JQY}!WCjTjsmX?+UE~J3kb!mC& zboZQ#uK0PWC2T_g;UT7k%-C*8`mP#P^$08FJEB39afq88V+<@`eBISV)BaSZG`Xl6 zqVv|?*n2m4%dKEtI1MEdR-pZmY1JgnZ(M!?nMg{T@{3rQ&50CE!VQd5IBt^zk zqFsm5$peW4F$L>bMd$}K<9X|?k_Eiu*A#v5T9ia2Tiwx(bof=-?N^GDHJJ}+^-gWX zH`=si#CP6)M;jx#-iQ6;Z(sH`7*IhR76b*UP_~+9|32T!i)f9UN1{-$Er-f zliOkvP=1qmR6Nhj^J=5jOEb#g9vUmcQ@+`ZFBKM_0x#hF!|^p_c$=p<9yR%XQJ_`B zsCP5av6E@@>ceEpz7~N4*@C^1=)*J0Jdig%L>xkf&KRUd<#(7^QUyrq#5a^C>{Nt9 zQ`O$mL_l)&!*#*z&8JR2p)`nQOu3Tp31~xt?6-|XC)ZvhNNlKbT3BLMeyQf}Udyub z@wrok&dt&y_Dw}I*=+3#8D3LNv>xY||R_QD-DT;a8oOM3ND^%?4WIHf<{#^3u{7?>U3#Bi)eYr6y$%k z6;Q?&{P0k&(t2W-ku1haK!771tMJAYtMJy%H^0<_2OFV4r#5Jfj*;2{U392S8d|v> z-551KtoQ;9x3v4COAv=XlAMI4`)*uDI^2wVt!ojf!M&~wy;qVz)CCJ-TRgKA6c~st zahm40(2cDrVX3|Y$Aza4ioTCu&S2ZokVnQy!BpV#m$q98TdBMue0QcEe#P##-O$OF zUV5;ZlAtvj;nHitxNDE!BpfdvUkd+wf1#*72I!2!T48`-T<6>DX!<$KMLIWOOiuZ= zz<(Q58nW#2AH~yN3{95k$CJfo!6}ma&0)NwxMm_uy{?Q0*UjPx>}9T~vRaCS?@pO+ zF;1W$*ZY0CzRm`iY;uaeh(Tv0)4O-?bktYx@0W^;lr%l=+;m%5N+DvKVI=y+yND-1#MMpq52V}AG1ciwampM9aX&#F<7pYGJajQ7W|9heXGd?B1zfS}>W*@nc*`)3L4~@FBIoF>d|rF3seuQw zA~We+E(dc%#>7GHFJ!OLMJ&cZC`urGN_>a^xrwE!lfq>9?DZHj1JjVo5vjD;$T>ZP zADtkPu1Px#2km6uEqn~Q;N183>N#P<;e>Ix6!p7fU|OI{ra%mz5n)PPfrysq7gzuW zZovJ;FnhqXI|YjHV9U&3`J3CCX|Gr!lQBg$<(GQ0eX{hJ2=ahs6&jaXg9UR2m7$3; zrUYf08zwNA)|$0V{bs8n=buyfbS7X9MH?juh?A@SNWA&qae`WLRVvAQKJs`}{<~IX zeJ$L{7_4YBOxk!tiicwLMB3d`7++4{O2l2y{QBkjJ*~!&VG!&l0D$M;smvrjGA^u_ zOySarNhbe*Z-9&i(1!eWN}bQezAPNh*~)#?8z42L5CZ@{@cKFhN$R^lvx)zr6371t zZ@`N%bWRY)iG-l$?n(gTNuR)>Hn^1W8Dd`qVouhqJf>$%^tXg7+F@eK)N6z}few4l z@w$ujS7Q0@S{FzTf4b)Q4`^OTas`V;VzkOmEhKhp(@$4O!g|gD)6BF8MM}Znm~XD6 z4p%BK^u(eTFEI{nS?Dwyt+tUdliX^Dg)b=!*{Ut}D1isIb1rXfZ?ChRLF4!vo2z1n zvygj@RPSB2GHgB1={1<~jyN?sHuHrX-{z|zy|D1>O)5c_@{DybNTnpt67DiRV@l%( zo+x)gb4{Z|QZenw|D)+FqoQoPC_JQeHv`h4ba!`$sHC*CbV*5f3rIHzI!X#dcQ-Pm zbW4MT0^j}q_}22@xLCv!_t|IfYuE0KT9`MO&|5}Y8D_A()@Qfn-kq z-o(E*m)WWnXAMZ=EcD4^idl5|QEn_wmB1F({+Wj=i8p6rG;DJ);KfKIPtG`juN1sd zG2`uE?XoA#9#uh_8wnSTMUUs)kI1Xn3+$$pmmqCfd@QfM_(fu36vZ{rBMk7-mVoI2 zHn=}tj)%OGnKi}&c7-NWjbT76Zl*O`{gqq}B4O-u8DFC#Q%rKhzd5wff=y_K&HC-_ zCviL8f1N#`6+5>V_+#uA`#skOL$)ny=;{}_I{-V^@&oAMS#gP~<-i@HUyI0wOVMiM z*jbbI5jHN-0E2bBrnX^rF?i0}dH^#c%$XM~4kTzb&YBjI$CvTt83;63fNinf;u#i5 zUV$-ubT|Dc2aP!UpJFiexrX%J)b|8wM@ry@CTkUXYK0#zoDPx{c9(Ieb7ZK8**{yb zX1ONjeZfCtpRU=VAr6Z>WUxyme2A!E)XSoX+~s)raDEJ-Jqg| z2Jhb)np6(ISJ@rEGAW74botISlI6)PirUIz=BnNkb;6K0ci62fmeARk<$3=I!=Ct1 zM&}-A^0w;@`BLZ4a!4lfpT#~d;?MZDrPW(3yjVjuC|q}1yx}oYxD{ zc$j8wcA)_^WUu-8qK_o-=8>SQ{w7MZ$=}`)m6t+R!-m$gOph8&>*;2&+zBNUq_qz$ z{f)#LXpE?JnokV-afIi_7rLv@qoqq0of=;8L!5&Qd-Sb`(+}f#CCu{N9xlT5{afqT zgFTbLMFWto0T2Js6jK;AC$c>3RPuH6N}_(LM5XGwV`>zp$!h#Am+f|2Z?t-Y6VPgy zx(`ZKe*2&3l9c+8-WH$ue=j8T&4*RR-nN$BreB3wgU+e1uuZ}1gN|3NEN@h#OZ@^- za63+(#BmdNiO~LJm#hYvV7UG4db;JLPIkm`DzY9zu#VkXpFmV7VeMSv?bnwfQ{nv; z+~2-ogh3eRvU316N#pRMeA;x8RZHmb-RzL<-_jY*_AvLZ*%; znU*Sp*zQ}wx5wC6LLUL5JQWp3(u7M!POBFa1;1ib{GhheQy}sy$@C0m`!2nB1=E}l z^g!%V5)_^0#_OarpBKwWP_3tzQ)riqRDAkydKVNDsY@kbR2HS5+glFSu|)P=m5ytE zwB6D3fym`Y@Lz=r(8#yy7NE)roE5%U9^hy!uxsS$pP)D>Xz;)`8MKH>x^!cUk4nQ> z;B2x1zWHw}QKIhiU08P97KQruhH#6nB6fX_B=CEZ+k;j5^I?aBr@gJism!GLyC5fz zb03m^5sNr94lAmx!tzUDRAr#0o?)A9#8lsEmP#@(o;A>15vBbUX#wES2^N*xHQHS* zM=(YqaQT$a2oSoy_oIA{EVJr$7a;W<;!lAt_=Y3?VZ7Ga7dDc-L(9DBnO!bR5nRw)qau#XCTZL4eS(3D?=} z#oJ%e_Ga_%iJv+w2?hPze?y3lG*?Ycg4Tz?N>um!>9vw&j{J;+1M)(H)CLoALExSm zHP?H==ob=opO|b9rdnMn@2O&(!`!5}{-AHjzHT*|zVX$_TuB|gKj}AxYY_Il6C2GH^SLm2Rg!{M7 zCrcIGS)ud+P8oMURjrnIJH@cY1{#xzmfkn#J{iXZMIkB&R>ouj6Z{hxYa6y5Tw))d z=hBn_JZ|h}zTjf*FRZkz+&yy2lw}`F5`MIaZAyo1dX%J9ZpY><<@bzFn+g{=@Yd}T zBK7j4xTqC_4z*7HjtiLfe(`k9g$D(*|Na(td5CBbe_V8BO3As*<61FHA&$oU4QCAc zYVh+_Uxkxa?>`Z{m=_;6(&~#042upymyWzxx{V=teq&vWAgmG(gBqeJ5#Bo1!p?)rqM}<2BJG+iRgM zIirB7XLG4~tUD$edgCQ2aiSD>n`WBs;>vmF0@b5luwDDJs09W61m6}KFA;M-sLK=3 z)Wp-kCfS|$nxs0t4{;@lwUosFE4c{c=Q0lwo0-|4EtDxuV;omrhx_FQbEz5xBGz3c z^ax2K?Ur6<+I$vpTmqTw5O+}dAFF&+WQMG z!sG1W4ojWA|y3$+K6$a`=^~IH^!NBHHdCnjl{8oSp{F&YX znn>{7ML}};r>Q+!yeFQfQ3C@5`1lN}YSec~Akymd!)LUBi86wu9pa_TOjE_7E=8W+ zF9;4VVtD{0HVRi%;hmVoScLWXN)(?-C266ovI+;L7OvryER+B6`SD*Xp6nQnyjxYv z@_y#*(-3Iq`FG6j&fb_mJt2gLLVa23Hh^3tL>-X#_lpbnN3|Pe(4jITR365f ztqab31!FY}$u&ie)QJVZUr*0`vechmvUZ?XN;?cS(osPep4S$U$TWX>LL~gmty^=Z zQ;%m~j!!A$m;%D+b89SmJYCazER#K6Jr}tdBTF5Ss25(95`!1vuXB*HDaPVYycU1g zq1CE@XjFP13`9zfkx4X2)}{)_Xg^7`(P781U1ny}e4i}0kv3(5y7JB4{Wiapr+9)^ z-DC13lP!yABtpi|&y@W8bOICW-GH1y5V`v>u>)q46X3XozFdR7eK-F3-}@N>+l?9b zu6*)lUYI@Z3qgB}>MDg?rhpZe9m-dAqN>L&L6aH<_PlnTxN@b2pjx9c!vY22-XLd~ z@q$|f?}_S**7f|_38oLbVxaR$_>j7_qs@wsB?(*z|3ahwzR#T@Cc6*?-2J6`SEnVF zZz_KcEyRj?`C`UP`^hz-_6(|yp}T%Mg~^yn!f)vrkJI&b77j%4Oa>yH+2c1UoLB6M z3|;Bsc04Lc>+u5Kh-X*?kU{Y1W~Ls`5U;LRgYJKATyPuy8l^$tPJ6hN?NcfmR?*@7 zUJ3eETijXLKvnpC<>Y4rFrcRie(Quc(g=8&?`TOj*baRWS=*v7g@s+A!%_KQ zn)34lz+sFY(78laAGHbJv3x`XGviW~Jz=|aj$mRq`~Ec~+<2o=F&k^z8tPPQ8tQE0Qk-hzgkJ!}~yH80Cw)_Qjlbxt0 zvx}*1mgl^_y5Xr+FeEa}EEI9s;eID{n#|@~B+bcm8o+2R)8wWh5IyPcLk+nM*oaW= zxv;;4JxP_vG0Lf7f^gMl<6}~H*KKK4;)OvH55fA2FD#y@UbCcBed%GJo?ZR7pMns+1&BGA*X>Q)>hsq2I=tl;RJIFQj7}!nFVIVL6f`PXN zaGzIT{{%#gx&<77MF-GzRU(u>tcXX#MrUfymrIQxEe?7{4Ry2d65@OMnoWNS0xvfg zY?F=>=)c1?&UR)1y3UWTnPbZP1SH|8(j3-~kIDY7(1MT~i$TAc6W4*ChObmbKO4Z~ zI5yU&;0(5@?!S9`(HUDjXtxy6O=qv7X882fM33jP$Gm^Z=nZ5Y68}NIKF=~AZ1SC{ z>dIe}ObkS({ED|T_71@A{=Dh3u2`p{<%**BDubP?j4s8u|8ShetDYk)i?F9O-gi4| zp;7*t302XHw;S?QSEf7~KFu|~D46V$Cb;MR#+2MPqYP)pu&J^>Uq|_fz{KxrmFao1ud(S5aBjt`0e!^kz(aR}G7yAMC}{ z*ufv`>|){#m_Z59rK+lW#~dQ=gOZkv9n6m!sr|?2V-t)m?MgQIapZ_^WaSwYgU}Mu z+YMpypI^Z$L{#^roY)Ixw_*%*DTrbRBbeIf^stIH_n5SF49a+E#S*JOH{0xYUf0t` zb~S$OdbuZ)H<55BuBrT=#G(vIYLO=s_Byot`ob_{?ku2IpuQ>xeV4<)YpKM6>gK~Y z&{ym7L)f%(a~)$9e-y?&f$eD;cXdZ*grDi=No3Xh+CB3tPk?mSb5HxycP>F|4Wjdlj zUuR@2HzkJYrh+=TX+@*hi>c3!>D!cib7IJaxI|$H=D0w=%uR+ph*xS66v789O9KvlD z=3Rb)qjW-yqK+x>qbD+!{9JVYp<)?3^p(o;iqtQW4hIZ9z%~c$TuviOd{h?c@!waD zAh_Uqoob{32z6Ro+BGH zab9u_;vdhrF1!4y&g*0PeQ4255-U@IiCyAbg?z_PYcui)HB%9gU@PZW2T+g8vZnOJ z9WS@%Cuk=5^oYm%4|)CuIuCQnOw`1Xr>S4Jyv7Ph5iS2ZV27G+2z-=h`BmNkCReFp zs$=kRf9H>>@?n@Z;k1n*gH=pwmWNnBwUBchyf|h{bOh8QoXr677+-EQQ@ypl%>r_I zdKz;7AQSNG3e+a#t2oq~r4b4x)~pg1bH-Yc_$7i>j;~+P&dnMsrMk<8NH@rnfPLId zs)UOKRacF3ZX&CP6nkPCmgABe+ezNGkfK&JR}y1w4^OYP1j|2tX`S7lj8?_r9RxJY ze6=kb0dqoD+-3Be@cf-ngXfZV6E*0NHgqw?zTFnR1L?IB-+R~wF{FO3;}43G!Oxbc zo~a;z|Hfin%d5bO;VL=9pH(#e;D~j9R#;f+2wb7|@BTsj%+^Nz2d|D6*W|$~4~pp8 zteAkvBns^e?#oh3vXt9bm1)L0iQpiJxhazBr zDVfaH?kMhg4`IU&LvN*%G5BdG&SxO#+_Pbuc@fKwg|~cWK$Xdq`oY()yDhy*n2;K~ za6xa_`Y!eO(A_H20Byi~4W39@Hk2i>(P~eb2JYuZM-B3e>@#-Za5Nk9?Glm5IY~aU z55`U}QlH3X?Am6EJ%GF6jbzU+Pjh|#dO}+|(rI(vn{-ihO(-AE)zr5ai7BtlufIH=6LW8~XvaYE%}T_2C%UUkaaHyC%c;kWE&uKYuA<({8~|rsZ-IGW(zUzmhfIyGv~iC0|ah4@1%l6 zR*mu(*8RHHp0M<6CI7W_La+7{5BRuw;f;N^nb&aiQ%6Ig>?&T2r|hA`-r!d10QH6z zbqm0eG1FgAA)V;lqbKqE#c&o>(M*n*weK|@0xD0LiFIELbHpN9MQ&GCLM<5Lcouk%F zeWVnm^Hd7ynI1DlPDfeq_t}rg-DV{gx`7yxIwXyXl(Y)i!0x3uzEa1&o7L`*!aGOY z&k9Y$>c>yMVv@2s_6R0wo1q*UE;aH`71Yy1Oa^4lNZ1Ue7hF>dY!>399Y1->=INxU zHfV;`vT1JBZQ#M;7pkku%ai9s+`rglZ)c5@S7uX5|J&xidHT5iGprE2b}h}kFAVF#fZFT=Cjx<5y5dA7g3D^zrRaA@mdkFF)%b;HC7y=nrMFoqSqCK zC2Do)COI6QV{zc%oV&6rnqQE=)`SQ20Hq-eux41z&v(J$K4mO0YSyFeYP3`@G;>CR$e41XC|W?Bl2smAFvnPOyWL@lQo9 zv#mZ9 zN3Ut+XjirQEs!(useG#<-f;O#G@X+2!XOw$IV9b*UT7X=dFiKMRz1){zeM?K! zi;deFuCYucZ!bN?%2pg?n{aaKK0QB12mSU{Up!Np2Ai@z<`r8R&;F!N0PAQM_!Cpa z=OJt4rN){i0C*t;M*tY@PNV7|z)$rBNDcUElw+Ye$KE<_sxEm0PD7%4^US$ly^JGq z8VeecSBK@a=^sgyhM}5yZ%!X-YL71!Gwinf8yd&n?=Q>~is$W~bp+j0_VBFzJ?ZF) zH_a^eBUvd@UNYZw!+dVQ;f)?>t)JG~qIfxSsdA)bR}tmS5FJ0B1nY zQ`C?ve`i`~IC@+m2h~h$&Ko8HREAftS7C(8gkZ09`sYsR8nA}h;=w*!vxwbFZGb*< ze`F+X9}X%ZK+ei4HCFDRQ4MKP0C(=Nfjv9A+F!vyzcAeM3y35_wZ94qsB}1phyNI^ z#i3MIeQ6W((;)(075|H$+g(7zI2reorzDNBkbgRxdYld5GZ44zMsmVX$) z`<>Xja--NxU8>)up`(?-d(y}&%m&-=G}dG9*O^n_x2A+OM`HB9PStt^zQgk5 zjTO?Aw-XOC^&wDv`jv!0sfc$OiQK1Qd1Cf+nXlGVuiBa4{e%0zzh+GtcuvOmKMSaz zVQdye774R3-UeB2Aer~i)b>x-)Q-8qT`*ol=iKfudU!go0~T@kvsJfVlN6YI8v9DJ zPP$P#?wF+?zC7N4%;s3T^WST7o8}8T6#IMvuPl$=_)wn{ z4*@NsD3!^a!$eC*iRIDpFG|Wun5XwY%vW{4XrE*-%B@Q;d(G83Gsr0Y{-ZNvG{e8k ztLGWQ!fcMu#!DZPZ4vIx-AU39;e7#J`U!xPsFba@@dmu;X`@FD|4M;7`E*zMeoDan zKOX+Q#lZCQ)FKY@-ZP-X)!oJ)dn|PUdqle4Yp%@iY=IcK$%L+9~x1$0{l*yghPMb132R_%CucUJ*#^wVMAPzH*ZX!kguN$Er0seOKo26@TV z;+ua1t-s$LR?%Ly{h1M{yQtMM%qVtnz|jE$u;N}}iMyXLyKgo~wOz1B%<=5=xsedX zKlpZwN~Uprcz(g5S!42*Cr@j1UUUL8hp}*WqM*ZEK#f3|mlQZKX3oNS;MS$FVOIfC z#7g0e8{lLx=(;ZQ!rZnLvnbRX+Or@I64RL07cQzK%s^Fg%2-`R=a}uc>L78i}w{4q_1`c?mSluZF zcKPj7in7DPnDq$h?PMVgg`fP@I;! zJ^2)KdvE^T@*lv9aJSFw;4c{JeJD(5c$>kYqr?qXJvYsRGsZQWDcWVWD*9l0NpO&*`72Vf=#4=)K5Qn(qAE z!isNUod5Vk&w6gZDbCNOFopNs6ZU8=TdJw5*!_dvtkP>bw_>uS-5j`Ik>88*c~Z#T z&=IG<4nK?Z^Hl2qP8wZx_SZW7P!Ip0zP_fNU@f$CiGsuAdW}-uS{C)1_s8wR1EWEd z6YMpmk!eiRY^0jdvVgXdNJ?!@o6D za_4uvH*E6x*OniQc=LFF`*WGBKARYpIrA zO+9U#$z1k>G-BbBz_~=$PlD*q>4$tUPw&hH|4!zsrr>~(Bay6$-CmkETyAb|AND;% zuTP|Ts<_KPSMOQ~wR8sGX+N@-&#)`?&^wKk@15|J3XU*;<@;2u%D;S=LiX@|RbG~U zWKe~jTH>o8EuN)$P1wP>M9+dh; z2m5H02&1n)K3sPUB!RlcIwpIc`NONTKS$aWc*+1)DQC7dswj~i8naeU8p|QS2Di(h zTCl)Zx4(g*4AekY|9DuU4852u}ym7&^hPOloj$PS#d&k70oUZ7%-4~lwXj^R?l2QGOcjexAVK-J*e0X%5Utl z$?k)mf`88e(hwFGt=!c;*Wi3WF^l^tNn%xah|DsJ3I{zNDyj%GY^8UHQiH;;WlRl? zqF0F7nvBFv+qx+{&QYww`g{*|8H&hChiA4Offpb;4wld!S~nk(%(#W93?~@n^E%IF zt4&!dwP(onQSDr8s6vkUyvaS@ zjx;qMxd2p2H(ZN?voKz@+DJ$3%ZIJ8Oi%8#9O*@UC7 zP0jwcvZY^N3vN9e4*2Q%J-pu?IQlp7M%tR+-DSrin@n@XT?Zotv#Lt2%io#rFmL>C z#?=JC;ZI`}*6<=weVMKHPNpQP214 zfK-=RZu<1Z+xYT*pnz9c(6_e|ETL0%PH~$bO>xlW6X%@PMe#yAg~!5206gmoz0E91 z=v(YDHaR&tB+3!8yjJOWWJDIA_1f}FAy;%*Rho!WYPbw9Q%mgw%-QE5TzD-L*1-qU zhwC$$6ShT3X{g(0(IDHdO!RFJ&UMhpyErH?24VB1-6#6nMvK=Xd2kR71CY!zap(xN z5v|uEB-BeIN(2bjhn6W379Mc8&kFjZ|Gl4vIR#*natwp6hguzh#_N%N~CW0g$ZZg%DQWGF&l_b zlUikzZHNdR|EsFvp}G{rzYKkqOfY{V*wLps#)k|G6T0eh$wBkOY!?1UEYgC+E)oiNIKnQX%JrQ zO#a^sP@&%%{D@>=kh5WUp1`_^nNiJ5OP)lL7+Jq=P2S|ZQg)6Les{gZi$YdW6t zeY%4j-5v@{8ZWRq02R-bHwUHg*bN#ZyB0dCe<&E4o5lA@tHy{cMrR#9cs@FbeE>(l z@c=Pun>-;k!+iO(epMk|zA~OuyCtcF@#)blE6~i={oOvLJe=^k?-wp5x&g0!QHhP* zVXxz+StM8$;~j@41#T3}XGgwIV7G;bcr|PP%gM(zkN-dcN_~-IW2l7CNc5d99D!T2 zqebW|(Am$c7#q_jefKk>A5|JDSBWr@Q!lHh9Cf0vVcoTsr0$ z+Dgvus{-4kP!1UQtVZ;0Ukq>mdO}B+4=rV?@k?3fkcyQ@RHl$iE#{tvvW^^d{OKDX zej9l;)9H{f;xF&xFNizGl>Or92y)H?6O4 z40OLj;X#ec5N0kF{W?}2Muo@COtJC2@Gq36WX?`Xkl4(@6CPIkdBn^>@F1I^bR;!i z8K720XWX;lyfG%F_RN==xyG7H#pdqvOFEk8ttLf?r{)a{$w+4p*kIg%Kw6H-R)el- zrhAY8NB_qCnzCdHBg1+9;TTVrfZ`Q=Q>2%&KqJA^N-S?Jvmm(Z=QgwEgp+$|TK@gV zqAkFjp8aAK92BI)kuoBYVt0Vvvz}Z^ZTfaAP*(+AVL@ZS4K=4CXXGc*2W2Fd_QS4P z&hYkcffEtCI>PfcG~u!!IuYV*m|aSn=nZYD`^XMvFYL0};INLhGe^>bN9vFhpTF=Q zX77F)ZY;6|CU2GSI6vt|h+BcidzrEX!GTw`D(chd1lyL9wNF;m$G z6{h7c>C|Y9Qr*$g($g0Z33vH!_HIhR`j5!VEro~kZEQ+c3H<79DnKeobhc_)nNDn- zsZ3Ocjv&{?VR|C;5X4lJ7d%UiiUz`972YB#nrz>-S83d7bsgOt;m+HVKVtP}aT_zY z*`B&&2B+t=4~^sT2aup6tlfXORiO^hw# zeK9N-2%@uJ5?TT#Pd*J!3yj3us>klb?R5}@#{7kZgX!_{XCilDvSgqb$(*F-0gE;qDYg^NZ$O0)$H89O{?;l4{h&)E^zFpV4jGGAs-=a5{9e#m>$Ii#fnj3(v|AdSs><1G z<6-Rkl|xFqt|}IFvX~H{IwkLJVH8a4CNt&1VGYh{vqkn)fP`v5A_@kj?d@E>!q{cc zCrJa0d9ND7qWVy3({q2N{;o6ny6z`coW+JO${HRsKGZnW{H)-_Jt!u=M4|=8FM3&e zf#r6+ja^Poo~6Nd{$ha)2K!bdp0MrU$CtroRC*yH4`r=9z>14Pi?ouH{yOK_^Xwxp zVsnN#GVH^?tCX}fW4u+kZuG!_GO$}k^&zhYKT765EdbJj(k5Z8fV^p1efdtJSqeFL z1kSrOQfT+9;783gd~V=%d96knraj;<5~62}9)?7QkKfb^7h@(B#ryNmq?njlik*}@ zqc~^oL$ED)QawB%r441tp)G=&FPp0cAUe+fDWX>H`mwSKbtt9m3VdA;=U(#rG|eI= zp;?aJt7?fsf4;hVR!nAP%{Fmw?NCdyKB-`&h(I*k?`n&`D-Qm6{TyLEqKF0I_xqmC zM`M`sE;=B_Yco$P4{|@|-~F&#${rOQAOii!@?48zxW26_83S0V(_wwOW{pP_ zPl{cc?6)i_3B@58yD$!Ht-IuUiYyfgS?=5Rx1LeG7ZMiw3MkAGCI&yteHnZTBUyHKU7oa6pBJrm~Mz0b`;HV}sc@>n~M(JadOvBxn4pn=C4&<<7~p zdf^r-dnrK9B7`XQ5XuQrBk@EeSj`BY|EotWboKIzfx~JRoT4`!41q}p5E#kIJid!2 zY-n+oO+LlJ5uWsD)Bn&VI^c{b;ut26aIg4q{}3`#tqwxrsiH78U=APR2O8=MUe7v# z1?J3~5tT>G--K0NXk*nc)`A|@n z&Z{uIXv2=3cO0)|V2#B`N$65Z60ob~>RznQkf4Z8kLN2QtyF>7#N+TWZK>nsbmeog~;(0xugp!BN`Y(;WmU2RAHR7H%PxqpI zVjN{Eb$IW7JDR$G|9(T9XSJEn%I8*+7bEcA=*SQwhGczL+T+gfaGO^uO$fsMspx#6 zZ|_R(`tyEsc&;4P{-~#wy`-f3^@W{CmX|3tG<#$BWHIA%L=C4iJK&kx`XJ4VuY&&f zNEy|nI~VFCHug9_G?y#|pnCdr>Y#rxjA4QoiYuDVFi`z!wbKm>8Z#g=(7vYT_CDLT zetJze>rizfR+8~9rjNyg39@c&MxPXlK~s1_O&m5Oaau9~0HB;)xpH88w6bjS20h&H zYk#%F;)CLiDmB_W;M}3qjSF~{1-jHWNhHLTs4NYKB6}hl7cV4_bh>p>+~MD3tgat# zC-So%hc_n*`hwRtpFW;Feau|pI<)^vGt%h13<;P}s~;Ul|$_Jd*D z@%>c^Uuw=!@23qZM!aQ&r1K@)vWxX;SY6LndE=hmq!0wo6!9|k>Q zy-4}{orIze#j-TYhc8S(71gu=Gaegvt?80`lor+!UiEe?kpW!)ddAE2GPT!}xS*gQ zWm~jDNq5(+!6X%0RMniO5MAD79^Hv=zLb75>$bkl%fLFq2PokqBkC&XB87ygQmh7s zz$x|J`7qs)Hr1M8g8gpnLb5yIBbbe}K^QbX9xrNk88qva9hRnH=skI7)&Y`Tucf#b z6td`4iGVSaNp;pvK=0&Nn|%IuQa7i&gh80{yS#6ah>SUGQ zofjjE&d5jxM`r{Q*ux>GqMEkK{`q(rnqp`2*%mw$M1JdiY=1{Ta!mTPb19Ule)oC5TtQ~wq-JJuFgGNV8s#oX{2ABP=QP%SW{7RBmZ@CMoY5~4qYOSo zLC@+$TvE5a468@t&ZCs%W1MAD+NoXc*N$fr6Q#&l+#1#H8speT`;*hV^kaLsyFxAj z8PMDgd{Hg3Lmllv`>cY%1%tB9N{;D&88)h2WSpv)Tl_p;jW$)7v?V;Q6#UzIYyrOM6K$;a{)#m}J4{ zoque-|D5RQVuaQ60BJwboyvZDDw%}HAv``gHdIrg9_hShZ;h&PT=S5OVVw0sOPb(b zsM?JFHYMfbM@-+tcy!#7A++I9!*{Bdch zUbTyZm&8l9D!qloYM~YyFpyc+gzVl`9f?VB7U5^O=Cv%lg*~R~D5jR;~Hm~vJF)ad}*k^k! zJx)UMx?BC7Gbh*UB3$6dSo6>4%>g~J0?u(gAEte5>nQ*8(#rj7vrEnT81C|xvZG-gfnb>Ms&h_PGILNof4_KL)nVq9E z3!CAl@(u+%6QMZxh2VyFV5Gm9k0Om1|F=|U&6RYQtQT4dnEGX z6T(^?wLg$rhQ_3Y6PU;9wVpF5Qz)SiF_nxnmE#hS-p0hRd(!-xw@bL)hH6htfS{Z% z3H@8!Lc3odrMwa?cOWCt_W(<8AA6eSfllzinZ%Fe5dh7YRbillu;F^pU@%Tw3iHcE zROM=0mZoaiElpqc*`_7zg>x?X+xu@ws}C3(4pTHj79psz=3?$fj<&2m%P9ddw5c+f zmZkZWDIAKu$yI!I&#;G?craa5=Rcjl@4ouT3vYcl;HHT%pvbcPU3AjSJ8--#xhl|L z;WB(nSFUK7xhdK;KIZ3aVYdhN z^!taNf?Vh$chVc@-$5!%!hZRhvBmMV9Cg`^1_lP3ub=*`ad}ZKNT!_>y@|R{Z(yYR zga-rpH{O%_V#X@9*`I`~fsc}4r?zoMm}pg!d3k!gB5t>`9`&?cnE>7Q?~E~tP0YG^ z$huuLFmr?&zR%2j1;T}33!4l@FsTA<$83*AL7o+!!NF)fVp#)nPXeq_O>Q#+J+>|K zpmtrRsj1Uj-4wG7!=+#sEzu^%EY%!HubinaLrAodQYTt_p-dhh29TYe=;n5Aqv`fn z8~Ly-gn9o>RP9afD>*cZSF#GDBJy6re#M&PJWh_uu7X6d6=f|FCvVuhjq3dkVyEw^ z`r=J4)2U>pSb>Sm&X*$(8n?q45+&@bx!wkoEJ-9QF=fb+ z%UdjVN>vmds)bfI3PT$U2`XI&HTjlDCVJ?+ZCxbABokauNHN2P9s`B1p)$?BWFUKb z+kL3%sTTPLgO&>(+U68PWKUeY>>(b2&C-|1n;`zPkbyA|$d98QapkIx?knoF&3dt8 zZ^CKCydwE8Q)$6M75I<=b&+yTYhS&%09X&1$6jgfeKb2sx91|PhwZLsz6t90{?W4? zfCuq?e2_#Bqc>~wj{qo)`rnmrzP$uH%{>5#0ck+MH1|z;H`z!9klTn?uY9l9CBgqp zurifJiQdGJ4*o|eEQ}B-r7VO@T)DdO_PICkIS!fg{D71e7}P)(@-K>Fr zhNZKwBYZhfOO24Vg`yDB%?8A0=&P~pF%f@WSOW)NvVBO6n_$xRM^&6EO2sXH&t*50 zG*T{mO{$83_q<7i{;YJrQw1N-;X9EPrTR{lU& zlsV~BIBHU!=FRQN+)Wp=iDKu4$rw2^6ab9Jrx_M-M6fz_6j%GVczj*CM8-tSQDXv& zrw$Oxq2I!cTDAh}U3nV&LAj77rD|LYJlpEW(p2DB*;;g?{n<*+J7B+)^KN}*5CO)n zEn-C9%qFo!MgvWfGPsqtzF6S*5cJ4C{cu9<8#E(8k*GxCnzp;QNLI3r0lFSt3s3VU zCP1Cqt*&PjUE%vUk)yw=_`_fZvq!k4FxAXuj~gf(is2w1iNKEGFO4&P`X#P>xXgEi zTm#1sAsEMAJ(tSC`}U_LKrh3~eg5Rdia?dU@ki2TwF{!Y8l4R1&1Bn25MBypXl$WD z?*X+OoYNf4_d9kncT@vP6sW#ILH+K{rCKV`bzhE@3(NV#>!ODKnHk3P+S49<=|X#l zfV=IqDWPpqdJU<7n-Ije)k0gJe=93A{hPcTBi+DIKcqsW3>{D&!bTv32Wv?TGt!2J zypU`xM4%Qu5s`YmbRTPg4Yz{WukHgfCu-`U)*=r6&l+%qtccSzTixd5{Ad$=ml{jt5(VFo zu0s0g4M~_imE$m*BR^Bi=jGyUPEm|P3`Ff^8fw#1dvkekcsB<5V(pl}uDOZ`VE;H2 zQ(B_%l_D7|VrRk5Oi)c7d-&HXa2Cbo^MW&u!J^FgOGD&p z$fz}Yi}~DCCFM7~w1@K?S(d__?-N6;90wU_d2eiLYU0uTI8cR3FHRJ2dyWRS;G0tz zEh~8VaZfb*iGf!W(&^rypfAi~Z{M;aN8}BI!8Cm8IMl%>z)2VaZ{gZEAMq42k}hx_+ni{9_~3S@oV{Jdg(PF6QJ zHjo9$XWU5EFLoz91Nmx-oCja~O3)UGFQ&&xr4EumF)=Zr!;uFn1vsU7N)Vn&kVl~~ zXMf312VaWnWHq>RI{?6Wn(F>X(^&^a`MzD8md-_LX(W_(N$Kux0qF)ox<%=fM!HkF zyGx`SL`qmfNK=eo~z&gWQD_%k?KQJOPq3H?oSr2vPFPc5RO z-Oy`WoLD|?Mp4Wn{+Pse8FY&5eTDCmGl8sDq6#id%O?m^LA(QVmm=c79ETAF4M-+h z(-D-IB~}}Y`JcNobY?@|P`Xp`==JMR-2Ys(6$eEfNpB|WQyUeEdFtYY!#Wk~B_i)g zFyw?LpA0lvP)mxEHW?LZU!j(ex<#{Je#3u5oK=E!+VMqGq0_lJM|6S$e};g8Wzm+E zBUAqT<}#v^WzyT&D>7aV(-i)PboA~0|FU6eyBgv4h8GkHJ$_s>~ZM5YLF>q5p) zmM`@P=`+rYo#L&?XutkNvQ!CSDWaQ(RP5IJui7?zS(=&!>jp6lBY@;IS~U~Qnki%z z-k7g=uk>-??&{=pvHQV(yZXOJ)R|w3kV&uh@wI7J%Q)As?K5=mlFA^ipxoQ5>T}O|1?L4iWf7!=UT5 z2Kat?RrX*u_qx1I-v9UTcZ_LE?`6oEY22AtWX`WH9;`4o)ZY@f7yF6R9TCNJliXHV z|Kh3sp%X_QtFwIiiCHYcWl(0yZZNy>GcTg`T$kef`6za2f%sY_uBp_IQ5tlW0_T+1 zYIKSHXw1XTNIL?mf~ufl(Cu?&i&p_fI%$5x!qPXsa5850Zr$faEWvDw`^9D2&|$%1 zH`;l3$^?E>qvxB+(AD@TgR49LrIbpBJVs1O8)bogQz?p+G}!?K7VJ>uSZCKIhE(;E z)S$om*@wo}C1{_65J87<NavD2D8NuF!HlD3BKz6K~&s*L}_DEr8`7#=lpfm&dOz;(tp7p(Yc+Yxb z|2Nz;EJX|(z4y_OZTMMof-JlFTGL@PqnhB`U3klN!_qf6KYMyHZ^kuAx(b^d^>D|@ z!k$?&i*aE~N}q<{1CAmiO7C1&OcqUD_+1?J+3mbNQE=i1i7yOZjU77S4)&aT=B@cHD}b+s8hFn4MBK+Y(EpINoatK? z2If*jBjesWRzI&Ns_jvfPAbQw0_M;n$V;bOe)gj45Ows`It<43#yuvC@`LalyAb1q z4msxX159Aw*`5wx9OMD^Q1E41beF^Pz3zJE2F{2LJ*sI%Gr2vnRam-rE_trKz+Yra zuPzVDx5!h^X;aA6HodDKCAvy(j-S}NFD^evP4b2HyBKQ61TGz^YbVcpWED9mT1p4C zhdtXtMO@J-D5ro{$T&7pxFU^Pxw@rucW$Q*&4Y7gc>O+n%_*wA{mp-`9o@yn%;-9a z6gVmN?Wup9fDS|*Kox3N9nY?>!@*_?a8rN}J+liGw}* zZ0GM^%#TiV$QWfx?L9sT&d6E!M zGKappNTGk_r&Gx}Y>DP{iPk~mH!4+LC1stxxekvU*}eDW!bpRW8m6{JHdz@c^7rk9JD#b8R{(}taeOU0GQS{R4>Ybe>x_#&p z4+AwCAOQ;WoqSeBaM*wisSCK`__%Ln@kS@9r}Vi=sJlfCej2E<`Wlex@IxxhO z6-sw3)l(&mmZAUP#ur0YF#})CT~z$x4(tIKE^~8UUV1dKbSPbM{j`IZ<2=7QeZ#5_ zoxQyy0s=q&*VgQFNe;q7L!RsYVe?io(_Yb6)S{gIO`+R@HV2wku9*y0{WP{Bt81}< zhEq()FC!_#P2Ba!3cm9+AR?b$YLv zrHwakYUVHqm}ZDpUn~T-jS2)Mu0a z={>C7@V5c&t(9=nmM)9s5A9Fo3CyNn6*A?Jl8%mjr6_W_u19SHB75cxGjrPV>#Sy1 z0u&$#@&2<73|M9tUj$bX_?5Q5Omd8ehEA(KCuyBwNnueKo-SoO{7_WtFCcRA!*8OVTeF=2|@=8f<#{o8=m<_l<^h9GJi*zSkhbA&)-n@g$bGX8b9-B#4&J^lx-q z1tD9z0lPA-te@T1la97Dg>ee|mxx*mc!%}UnpBg`SFtVog!op_&F2-1JntchNe}*j z<}O@x{S)!}{>k&~<^=J+Mm27mbv(1UTw6U!rzAN!wRPT&5?8-iNVLbNKBV}MY2)h2 zsB|R+Ap07S-i&Hshar1)#fjdJb(@IfY-Z>-lVXR0Wj6u>crSwJgmJfbjOgR$yD8iM zj66U{sDt%`0UPJuyM2u=(o9H%Jvvm~!{YEVQV_{Dbkq%Vl`&v343B!sgK{_3_5LhQ z6nIsRzfJFP#S#Gq+zi>}9%Gl@PfbL^P|_MFt&iUkqBoie)H{^7^=fJ*ue~vuQgauw zBFwa`vGSv_2OF8q$v5ldxm;$D^uawgB>Ye#UWU_s(T%j|BT?{Y)|dGYE{4xcH!||i z{kQ~DP;*iDrS@TjWta%+q@8lF2ujT3;ec#M<5ia=b4eJn0%J=rmRU{k&^&xi&~-@4 z^o=wWj3VZ5n20_n`0b$GArq^AVy7cgyy~NAFsPj3W>S;+8~m0|=UqxMq;VzFu1DZW>e>%2HIPS@A$R8+aFQ66>b!Np(~?KJKUbabw*YxzYNwRsC%pb^(3 z_4S*X{t9C?;BI3wOnvW_j^@<8mOtXE#Lo-*6Js$NS)TpMKYy9vQo8_JF&tM(%~u6N z%c>{?uO)sLBW349bF+H`tnffvQ$;eXZ#bCJV_P--;jth{u3bRBec=;(+I zT(J*|#k<%0`yY^5W!_clfKp`h-`=qx=JVeX^Z6IT*bZjuxxn+dIA?#n;d1T_iq>Ct zypN;aWGINxRW8O)tjha7%@E+Qoq_Sp21kFb1{g5lt<65nTR)*4=N`Ib{;Zhbdg3Ki z7Ze&Dq@VuPwW|Cjc9`UE2Rr^rR;HzvnDomWa;=|oOxpapY$YFq+B2%)U#~%iVYm6Y z)i*y}2R^bD_d)ONO8vz`wHG7pmTvKIs2qzMKLn|Yi2=J0?WQX(v)z|>*fhJ%lPNgS zPZW+JiST3O+As5AUU=d@8ehwSjKks^z~v_yF0TF<6&7u@^(bYrLfG{j>`t2^MU)$wML^k^_F zXiJ}svTh1epGSqxT8W7|uW)uSrynJHoI^_(LMjGg6=0?NI&UYU;D0PM`?!h6k1q=% z7TuJ@#1MroyoDEdj|_U-WeRAMKG`bi{l|Yr1T?frb8v|@8I+fe-3G2zAY*{1&%!nm z>??r7K|kG;H=}m(({ELEQqrd5TIN$QRk?Q4eG2Kb5R{&sCCZ znf{8kegz80tf1LV4ydyF;rC*9RV9?G2QX*c)OEz`(xls*)AwHYF9(?rY%15O>$VH4 zUivovENv^#;*2~3GO%qEGMA#@X?Q34ntY=!#Q^m(l-TVM_vLNR#7_n7^s- zM93JTqkTa123XrzCr*w9Ke68-HZE*4ORT}bVtC2PW9bBs6#H361&4q<3I|LHSnk0G zggr8#w#YNw+zSab6*JPF#y?P@KSi$R|GpFz$Hj)kPUcF!z>jGl@iRLCjh4>KTaHnX z4flE62OBpI^CTMdA6wg*oxC*6_=DTpaae*Gi840WTdgQPOcz>?Vn^x_;Gko~{L&%T zMll7sHFY(id2dY z$XBy)0#~t-+@ok5ZQ$*!FL)C@Ot0{*%pN)e$v(_4w|7{upX0$;u4d;TI6Ky|-*U$E zdiO&my-{JN^1$XtReO^*aGy7L|8)OP2XTg3Ao${e3WJs=U^UP;oU;~S%TCd-ncxoi z%-Q2nAF?e7KA%%VJpF76g&r>{p>bHj9Q%RWmtQTmbn%c(V<^P;*^$2N!>t>>and#vvI5mIC;YKP5921J(*{*9x-p!h^mEOXKFJk2bel?YbS68HW1v;@Ji0M<| z;CI^^XeniXIR29)Yavdm*cwdG$1xB!0jB=E`izJL7*S;X)D zBLm~#Q7`VHR1QyoZvtm_6Y$y^Z66#E>ZeE^;+~I@y>#Lqwfc1)o|{n2V%%L^8(_4! z>r1PFJD7zVmQ>elTxsf}`OW^VjmRQ{z`kCR5S!ijfPJeWxF~PiE;}_z`R-pTxyl{a zHd)ql^djc+)Gi7i-BI~1BCqI#1?2iq0y#zats305BI)+uWH#p$YTUc}>w9aQAEJR> zcq?crC*H@jX_BJ0Ff zHKv4%pq5W5ev z#79+o2@KY{kxF2T2#ty6QsVvzG_&KAldrvd9i$N+Mq%R~W79#rhavlCo@+c0#v0wMMl3%Lbv>?p>f2#_6qXtt*rv)@PrA6?sap)7v|c~!H@YJw?|I0 z>$Hk*3rTVMzO-rd)BerxapTUT!2bwSCI}^9FD7D5eKq5Ic~?qdw&Rm+?e-a@g7qtG z-lj}nutW`w{Pq0ApJ+zKKPVbG%8W@5lwsFjqv@N@z39die_nsf5`th1{ivNzC$wbX zGm<%Ka*r&TGkC3-=2akp9^d_DlBMLF6hxyU{860qqcVwkiTT(-nys#f?2@S?zGK20 z(QatLPe?i5E!5+-ZSQsTkNQ4cw{(P-@FUWOb<+Nlj(0bd`wZWgTFYOaKQXjtDv6Y! z|40=13&SCl*DjHt1+^Es#P!Z^3kZ(*(=}i@f2k%;sQ<2I+k^I))b2OKOru=FqFvm{ z1(S9ePsQ67854Ima*y{dBUh{LZ0_7UnY-q0-(K3_(CdQU0BvOr=rZfi<6`~@mgJ=E>hmr*Jth(~im(cPV9XJ8C^%x< z|4kCJf2s;F3#-S}ZNvuQ1}vBKk1=uYDz8yK>Kq1&q>Nt%G<%Ny-Amq?c6sPAu4-23 z*Qgjzm(f2YM(YP=os*>PmheO>!OGgTlhe)qXNK>L5fM@jiJ2zU^8VhA|2KT|f19Nn zSM5*FiNvSNY@;VD%@`*KMp4m+3nJi=&){3%g6D{mTS#=T5A&`2edc)ACHBe$ERWjP zYP#YPW`IcqQ+jpRNzZCVd|-}#VxQ`D^GLWRLEDy|cr)c;In*mV3RYCwH|>nRmh~LY z9Bl(BQNeOgDdGtJ{kzNR2;wOyjl#D4U0E}y6}fS`8a-S7xuQ#}B3uY=MS0g=6% zMKCj^T>W01j^a=tM!&r!NimP5UWtC>sF#Gf`?@6l^^mw;N)gvmxOpctW`nXLe+1$C z{UzR&P!YIQCz{xx+@O=uSRJ;ro{X{bEX|}V7(JtxwAt2E-8_f4&um$XSqHfC9G^#p z$d7?v!|W&|8*bLU=JH9y>B10h&Jdv-we_E#4`M%ru4Gv|BeJG8&Pv7jZ>vq0d9CWd z%70!y^00Zcb!B91ls8Kr7l(E3oA0<_Fnb+-8Rr5evQK_veRzpEoWBwM?iuK2u3s~2 zFZ#K~FK?oc8}PV8@_HflICKg+fZA<9AoFAE+s5L1V<1Zu=uX2dm{;ry@^dM3u7P^1Xg6pW4L5_EIReWc&iaUdBJ6N2E@v=V? zM^B^yNz7-h*tXV?&BfI>s;x}^M3I!}+ag81_?Oc8I#%po^053AOL}1_CzP$2CdtE_W37s$J8Z+OS1)}wuKNw@F$hS1b9*KF1`S6=?lBPpwW@I&<8Hg7w zDq_1!=zrf+W6Q|BBJ`l4h>L7*#U;_SO`qYiqo^k!UTcE4pcT0r(}k_pQ(>q;t1Bpq*9unsJy z11gwRU^ZdY1eZ!Syi1IYr6{^}u!H*eRNhpjnC>MjE>!*PnVTH`yDsXUbDK|EE=--X zE2rj%#i55SbJOn!vBdsZ$J=MUc__M0=4y}L*-1mjE)#tvv6FpK?JhE?v9Mo%nkag% zb|1%o{lzmXZ7l9o5NP3uiNSp1Hq7VO{E9aJf;9ezG!j+|hlV#HRYvcBI#pcdG zC*i>&9Z4jX&O7mZ`dkR=;d@;b#vi%C-{h2zCQeF&?l<~jF^}42(zT&NY4IFA7o|o^ z;bAfG-`EX@*M0e5$--^mZO66SN;S+KemdAuk1+^eRo z9m2{1YFxX1t^?alK+o)_>&(P`6mpo=!6hLmcz1jE8}%AY~1JYR@z%+=8FM{YZA|1^39yofA_D80CMvj+6MempjL z1u7Z*>o3Ge_|4g4EybNZjh*G*nUnS7i1{!KZ z63uv1jT`5WP}3q%K!6vQt~4C&**d%(ug*gtH2EUtE4;VK5eLC>_2qbAqG>8S)0WQE&($mFU^q%OuR`$=cG~Gt-sevt--9IbWWFC_EN43h0}ES z^d_9AK8<}&&2OS$^Tk-Cvhn-T9zW&J{i(M{rJi+FN7fBkwM)+^f?Z=!3RalVm^{fG z3^Z5_P5bjhYnB~M^q(g%h<7j2`|GQlbS~!tm(eg0f9$yTUwfru5|F;X-kIglLLcM` z&EzfS5x74rA2Q+pcsQfdUiA{jX3Gdqb>&T)W9EPNb4LpR$38{8f|TBSv;)phm?OC2 z|3iO30KW!hBlFJX9&=+RNQ`4flQhSEe7kG?pdYVf$(!$Xy3dEqZ*di@Fv3i2=u|&{ zS*pz#4|U3{vKKpX$u!~5XaBwSK*?_Px=+rrdCFiLC;_66r}Rx3Y)BqykyNaTng=Q* zbIF0gxZ~tB8gt@91@6>KJAcw8*p*-Vfu;F>&lqCfBs_IUI;)6fm&Da(4P?yB0|aEX zsRhVJWl5zO-q*55?*3+p&h-3k(yWX)Glv6~W4gM!0Ijq8Gd4dQ@n#M&V|*7RgZkx( zk+EM?xo6fOwK!}gOeEQ;rdANk^lyIMo!vQ%(TMpCpTH5&h~{&Tp_lv@M5Ocpxk1;= zlz*mj82e^jD`7orjh&h5OX+Ym?km_(I7#*RlUZ zNGex1BtfR)mDcl22IP0H7OPD`hd#S-L6t>K>#TP-RTGU_@KE~AmhUn%SN9~@&!$zI zl|QGf9sU(KXxg+5<<2^;W8Dlx)TwBc$9)w=&#-v{x)1|MH_vV`Is>Q=$I+_b=KY7$ z9_`YES2fE{XRFX-S22lWAGd2^ z6v4oOyG+ z4`HyMfYw2}PBy&?xehG^Es3PVG7c%e@lmkm3P zsy@e2?+<{Ky=}TFa2rcJaYo`Zaaj&nv$))bN=msz=ZHQ^eEQQNrmbu9mYmI?Ddy^A zy?|sG`Xozo?9^;o;vB>(oLfm=z;yu9`SqVonHc4dT!Qly3NULi!X(|hyA{OQ8ApU z6wx&JSGS~9lMEIlYU2)*h!gW-kXbFF(Lu=R0#s~6cOBjQT3^Pnh|yGNR3QT5DX}$NnBQuc0@u8nzfRKa3&{A%1p2ksg%mXLY7m`fj2d4435 zwifRHxPj8yB{CdY7ldY=+{Fxvnq9QFq-R|5=4^7W6gp@2n3BvcZf2QYucRu+!SB-E zO#puf(2yO5dA|uC%q$HBsdgAEq_{wb2gbq8m!U)8dmYqKmT#E`8%X+K;s;en5ZNV% zCRWotb_;hQ2~ROd=x=6EsNp*!GNwNtS|y)XJf*{ewhe z(uTc@O~Dil4oe^YJY_WV9mX?^Rb4LBdjDNEj~&UYtBW*psLLQkAw;@h*i$`}!0UTK zgGnR)rFmJGX9vH)_xg|1x!Xm}q=-|zbZ2S%3Wd~**Ytjzd~cd2f7$zw<;SO6np0Do z7@*zvEPlCd6EKeJA?TUNd8bfDZ{Dh?t5d{&tS8eyle_60JZM(-=BM8|pK{|_rLDw_ zyK22mhX%k0Ou6#}&W(cmLP2W|N7hb^49~Q15rt@(%tGjt2Kuqq-_L8~AE!c7j~ORn z*kW?%XNte^o>KW%zR@4Weiisz>qy=i`@v=Kq`*GbyDY5m%Hm_BY%#}FZKE3}Lf|n6 zQQY2Sw-EdAmR3x`s=<3fJ`8nm<&0rB`$Q6HUp5`uBaLR(3bRH~FuB2r9CN zx1GdvcORdnXm|v4&+_6@=KaqL@DOr~8APJ-I?HX)ZxJ_3OhdZT(q718@^9vZKe0$( zrpYg*9{eS0LKOAjhakH5)Yh&?PSm)vz~lkk$FJ`1&nH`2I@E4mh+?-*ZaUPiP@cIP zZH{LwUY~A${_Y-Fl!$Qm&^1&-z+zV2KCSHkTleYT`v9<)o{Y?v)Jo(;Z`}22U+ep* zb~*7p*c|)9M+S}M-5ry|YVnN6&x$Df1nC)^E-)}Kny)st#Id)2h2)-~$rZ>1ajv0ldP)704D zbdn+|FpX3iL}1hp-Lydmg9RjpeiSB!L8}-n9-+nAq*tzi zfpOK{kK{$%B?xwzFeuIBhs<}G_MHEK-sRD)xzEeu{(53k4e}xZHt5v87!?h7Pry)7 z!KXIsvs=Ptjq);V(8GX8<1RyQtmOUFekvJwdG$8W=`Fh(%8gcCnp;5a1(kX7&D`Wj zO7gIzwQWL8OSf+n8fW1Iq+C$?N{l*3ESF3gbmTO&7k~aTPjcdPMxjBXTk1<|&6~^O z-mb8-}{7rZDRc__h7b$UL1(mn-4yC+?$AbjS2_8sSzwH3`yUtC!nQn6Mj?V3+Y+cftR$Q)+3I?Bun|_Be$EEo85by6 z)(Im~#|>M2NPrx*>9LCWEQ?VX@xKoMJB4T)dbzZsY$_~QSz&BRe=sz}G=A!lERMWp zhy@i*GJ^WW5wJ1HUD7xmkM!(;0@%O0`3fmU^auBGWelTHC>6NoKg)F%l(9*xo7OF=*wrG@J<=;ji zAs-mLQ1W3@YmtWr18+E_^Vi2F3qgx3A&T(p^~)=p^wZBD8F|`XTkXZB_r$M`Zo3=% zl9CN8sZgu!oS!-ZELBqp~0}eLgElH&+ zPadcD>1Z|)a`nqqE-nGF6&0_5eZlYco*t(Mj~}7qj8wxJDV_;jZneC6iXH<^NK@a zIF3MEPnncm^3J4QDJF{jJK@?NCi9;|Jo#gW;EnaP? zBr9o+w-Vr8%?kJN|3Q+JJEIV>{73#YV)q8I2$$Jm)T8+`^)Wgmtqj>KPqk(Sn!U)n-DcPhu_=*p1>6Z`?OXt<%Impl~un<2BI$S<0k#}pko z>>6PVmdwaCWYrErxjJZ+x`!QlxIN#bG>PvGEfT{0OScZu+06eV9&7EU$t042;>iQT zg#;c4b&fut0{*hDY6ddglqgh7AKxyJb!fxiHBW^LZ1o4VW%maigwMka@Q^aIv+}Db zeu|1nD9rSJV5OvdhNUeXVqH7}!A|GER2VHiB>%iAw$2I0i-lJ+yPzUwQ4lTOb;oFN z(605<5r4y1PTRu9)uYBY%@rY_qIB=_4!ut;W@#`A|I@Th;ZQK~%*9CCcC1b1gzgrj zPWfAWKv2omf@{t4hTjUK(4XLde$`lQRdKSoKnZ>PFnf^KoK7 zeb~Vf&-(hAd^JNMY5hK#8ril=q0JO2lQQH{HG~pSh-~c;kl^tn8sk`R2^;# z4WicEl!e^h7I6<&zxM2$VBc#@`n8%3I9$CmPcRoDsi{F7HNR{h(E=^s$@kS;$1mS1 zFhdh?Y8ZlFAR!Qck1i_+MRfO7o}C$b!G3G-Vsir}yY8j-w2PF|{+4!k;LN?Nb@uRM z$O?mt9mJE{e|>RqcRF+K0KR+dtxst#)LO8739TVZanHSnJJpVB5S5NnK0t|;-6gZ$ zEGs}P^E7LeK3|jumzl991qpGeu}Fv|6t^WRz%vG{B#V37Y-?7jH*Q22KC({M#u0H} zTCgCA_RKoOg7D!c_0yr~mS^`9WqF;%T!Gh-0#6po#|n_o7Zx_{G|pQ**<5|!-FpO| z#Lu-2HGdNsN$*B)E0VMQ=Z{iOb&BoQ<{1?@fo`+cqI^Im@B*5GI?H)E@Z(BIEN?L~ z|KrihsSruk39Zf*EFdnOF>hkNoZ%+N{_TwUk*hZCssDaUl@_D)ek;2nQDtuY9U@A~ z6ZI*RNI=Zid3OWbFS&?OkJRfs{-*La;&V7ET0yNx=c4lG8wc=+0eP>+pc*wv#In^u zJ#WLehE*X$K=_R~l&RcZ*??~1dA1U>$HC?%qIdRxjnQEJ3qq&2yZ!M#@7KHji{$_U z3)pKr`}_a5NnN4FALbm>aPWL%;a!DUiV!tO2<-8pre@uuJuWr_o$E(7;#}C3XYm?l zo%;Pvqm=Ao`u*9m%hmcR2T=hqXrH@bfze+Z z{vI1xu=$%M>TuJRU*CvlB0b*w%{DkF##tkaia|m^4pu9;9G7CfBUqeO6XQ#(c;}>+ zz#~9AJGIYt^zp}9X2T^~hb)a2^BoNwntblrd^@vE0)8(q3zP%VrE@5Eeb`H)s^7q} z+M30dBgjt10>aoS; z7;`&6o!9>uYI3~Lo@2MKCWFH=#+e7@iSa93L8oeJM{GiID@LP*dWve=#KODxU z(bD^AhuW)u0WlLp{=Yb}Sv~DWgX8Mbv4^w60+mLIRr{(bKe<__fqh-ClWane&?G^K zo4-(3BiY+AiOelbmsV5=2LCu^jcmte^vL2SM<*Vq*hg70I{E5nLAXcCisa>qYVJCRpX z#Zl?2M)_jlZJjqjmq`&AAwxZSR06Wt*k4$Tt+;GoLlZP6l*WQhsn!m^-B?HxsOB%- z4^Rqa+aW+`SB?b#cE8pS!qUPeMl3x{W5D?IG51M2#g^{bq1nwe+xHf|ZHd_7W$YxT zxF?2Oesa`KlKkiLT971CM_5XOpp{kUq@Ui2Eu(|^9Z@s^t^AlWc9-7SK^TH zM@qk6v4{k8@J_=8J*CFFvCQsMdHKej2*EptXUazMi?uv_OYTNm z+AnbWzhuKldm3pGY(aPLGla>&gAvMW;z(75FB*>&A7_V$E$8I=N5{T19~dM_vqaX( ztiiTyc{Qup&8&?LjUyjSOoxGw>#(kv9W| zyQd%!?Rw0(;)mjb5IhkOpCpe?$Df1B18ZwIkot%M9&fDw>-|Pnn(bR#V>`-cC7Mkn z`uS@ec!;RraFSDG^6KgZ`wsu}=b&Q1UAzBE5>)FU(m<0e)4=Bdj^sm?Qn)Yk7?QTW z9Sonzz>6v-IYZ`*=SA-hC~l#*&nrL@(9L>}a2rK5%=*65Tz5FsQ@cZQXE5juq{9Z? z6c{;@sa&8tdb}~x%Lu(sXkwp>TCuFZGJ@RpnQ}) zgK`N{>AkDFHY|Rs7?YQ|o~sSu*NlK7v@U538PVTnM3`;b;ICS#X%M7xZC(cJyl5sO z2R@3-teoxH;W)2{-Iy6i%<+uM46xKNX#S~&%|BKm*M%wG2PrS(Upacdn^6$TA z_on$MJcAMSiV;_J)Z7k9pXXU<;cu9rL?Y};s4A2(BH`Npo!`sm)0I!xkX83Ezx8cJl94WTAnNE%D86@RWA9we^$daX*Q7 zMrI0la{?B)<>@qa=cCr)m$9)0d1m5)Ul|6B2At}9HF~a_lC>zecTPMk^%>}G8b4>n zEB`hT9WwMNLc7=3w_lZ3IP*X7@_Q#Z*PejBu;<}keqRs6&=C1F;kl43Tcf1ZR4GW3 zChu78R9@D)m>HV96JmAB>lg(aQ(uhv<)Emxl4hC?entGk!u@ugec*itcF9~{mGGtg z@9(;wD8TlmI?9OU1(4O)IXF(w`kyV~j{eBbrg8zJd2dZzIRj+IO9(jNKEr*T9f0LV z&hfe#q=nBmKb9^^lFkT!W5q%-mFs<771b#LSY07i4hx_}J_e9ohntGYdoH0NYV>wTje+m}u-(Gwv@-+6x=_eW&Kx3Hj9qLGQs~ zqmIKiz>)-6)0h4LBod#8m* z%j9^!*NGLJYX7;lU}IZ%uzRt!Fd;b~^je8f%r`r%&Czo2t`83h6~yCeDniUQ8%@!# z%j@^=vX4#NNw_|?naD$DTM*|gEk`(tyrLUaVz5kQCY`qwHtv#q3Wm0{oM)HXOO)P& zX%kGH+b#d@gc%e6%L6!!Nstm~&}$EJABNSz{Nszao*{yKd_ec&%~E`%T2vwm;8A@& zxRsMfdB$z1z2rEmJ}xh8DkhFe2u7=!2<>m9W~b+NjWg>UI~OyS6Km}T5!3YAXGq5dlir}P z`RyF$7Awlma$Kk+Io9yAM$^0u_1PvttWGC6lH%cH#{F7QR&!U~&1ha2*=#XhVfrO= z2Q*6zkB`3!Hbv=&ot|EQ0Z@5Z*a=gP9x@ja7NJA;cQo8~OwM|vq`44ojGh@V)dS*8i*NXA^pR510)ie*>CB|yhIo-_|g>noZDTLWT=_T3+ zvxnr$`qmnhimateu7&#k37mJmJ#{Z(&>+N`-}~9*-u#vrzIIvX8@B;(aC{rs{KID_ z|H}#Ay^z))N*vuk!Ha|W2Zcye_OA|oR#gzcKkb-5zEDhFr|y>hr!&HlEm@;q=_H8% zw0-rx;J(;)e&u~`vY5VRVu^;H%vcivh#{5t1q33Xa79pr?9tDfe3T+1Nn`-PA~*jk zKCknCYyeuUbC~>(n?E*&Gt&9)2H-%vB~QIx6bK3nhalhw!~ARJ(+PtS9ma;%j@VR+ znR2yi^)#&kt4jA>=itLpR`DwUgbOy!jTz8SNeGrzZdRI|yOLS?6Td8g{W(^*U_KPK z+%%&TLzvh$I8#e$yPV=iS;B)Yhh>99gUU%FanJLp6!#9)rK7i_Z0y=LkqyW@g{b32 zUCKbDWB662SDQZd?qA_ufr+WFLFt>$?{deLlp17RUC1)L9Vp85fX7%>#ZLP+Vz`9q zb_SWc*mCRK`X&21*i_%$`2w2WQHsA$I!k3ibyimB_s?+LLem+i`mL=W=g#4HplfYr z>OyET-WnA+J!wGzGwKGZVuui%Q$Viz0&iU)1{EUQV?io7gVI4s!IhhIQ3ayHlbR-% z=JCt0;ctdxbvzwwTJlss*S3vbNH@=OuzM}KU*dM%r@d;s3QFVDjQS%YHgf6W*C&J$Hm1Vl)iahMyFKt!qza-QQujZB=o}@WEAc= zx;}2yaw6>%Vj$F%r~j>+XGSw61q}1#PZBZ_KzRjsHaSc3X7Gv|uhnD4M}g#wrW+sB z5M%|B6*{h()&Bw&-Z&wu2`C`Fx$bvfxm#JKV=vLlkBeOtF_u&xDEM_IMs2g&%dic! zhXX1IHX8E%CSD*-=89YX=HIT9?VB4iLuc1C>GRgCGL!cs+Bqb8LZaJS z_fXpu(|;GiAiV^W2Z+G4HP7|Ds<)N&My$`neT3P@X|jupK2sX7#9KjJZm%!G_bnpD zyW^H;u?x7k(Ao*fL{E9#CDDU=nC3LP*B7TN!qVJ2VKXH$lP3Qi$HTz4+20RFVQ)oS zHC|LBVAcT%ER$NpQv1;Xz<7t_mQ*u8=Ir9PRbj2>`+YdJ!4xa_&7b(QP6_+ZNDN1o>j`H;b!y>SwNyF>%$iM1J{cs!L|69+a*a zZ~&jVvutd8WVHKMUy?xTy@?wsee#^Jnx|sx*kY3wzd+N&C!+60{Ty#{zmXN~SxN*q zDkG~>aF&CW6br+ON%vKalff>?X%;ut=d6^)EEv zYccRR-MzGzlTXUr*&@sKydc58_3z`iBAb|;JeyS&-KwbmWp^@AkwH-?Up^%#0=OpG z*62wCArtoHsD|#8C<<{|RxHqAG>TldsD?Tt~)%XN~J>2Y0H8EDFHZ9D)*79{rit|B6u zfg8)kJEFb)EkMTtm&_6x#~gnp;{ILOvm9lf z+>x{N#@ZdXxopX1!)qL{&VqhJ`ubgKfQ)46{-pi}`f=u}tx92+1snzl_-!v0HNCp3Z%Thozl@Y92sL2g(poED z_KV$j1C5zqm_LdH#geo|S(Q>&nvw!4G+;FcE^Xs8m1d9wH+e}(2{4J=UMlr7NXAKc zQ{p~52q$L*T+)}gczP8`z$E^S_|H10a^XwW+YzN?1A7#)m^BQ|+3(=SDn&vSePBv+ z<7CO^yIE=wFSI#ndJ73bhMw(&bEES$?R1AmDbN2@uw)fK1mP z7I!`VzH4?StM27xs0Vj8ej<;u*kW)@$uiM@a~B+y_ANH;>GkQylYnzdDk^HNlzPBB zh4p&@HLB_rz;98W9X#vu_-4)Gu2aC=_n~!QbQI&CFX%aGZf@ynQ>XBJRxECm6VP3a zWrXWv0xW$r>X4VSbhdlfw+Fi^?Nt@S$3}lqsrzBd`@2kKs{&anG$^(2hZ7@sFKd1! z?eIFT9&qs*lr6eEVjJF{`ivXc^WH3%_p4;|nqMUlPR61!8j~RQoX6Ru3yn1nB{3OP z&Y)(5=0#DlTP;uZX9xudf1t+7n#F-eNv+W)C7l*-D~=cB^wc^gV{4b0U6kIG`1Y%> zk4Ss2HgUkRI#fI_3p*w}zNWKQAU(QD61*e2_mBS;Euu*>J@4Lj9@rj}bbNO#6XOvh zhd?vu%N6_)ai!(VyQdDBO+8UbfKyEer!Mn{bY;@Wm;`NzP5Pn<KLX97rxHH#q?7 zri^(i5V0E1!lva<){?qQGi-oYC( zDrzbd{o+qc!-bm-4nIYIZru9iHdae~k@!St*Ju4SYD|>AX^Yl&5F7Lgi%8 z4Bi7}Ow7tzDR!xIeYcQ-onQe7H=QJL2o{2xtc z0Tku;cX3*}yFpq&z$K)lyOtEBdnxG>kdCFKyE_Ewly0OOen__<2uKL>UjH-i3^UH? z3_j?y_kQD?&)I%>psqRD?jMd1Y>#@nnp6M6sRi5M@XoE3zh9dG+Gj0JUD?-1Kb-b| z-&nW#y5#qN8p;vf6}-y*e=Pv*!3?*Be|t8>+P^+JF@{m;V}%@-;|u=a;uqR@!5aO+ zTplVyD@D*VwZ-AXgIYF*Aig&LugKOpyTAvO%q7Bag)e7&taPrh0+y;AWvS5+H99j0 zW_+9eM(RPv;-}eQX$xYGKy0It+b%qX3Y9mzziDITSDkyMKKjlmjAf){4|4IevYeN()f7#wB8#lV|j*?uR1tH&(7UD#S6VYB|yfCa{`%Wz0>Rli{ zh~1VE{_=w?5Kt-zhU*d&HF_N~NNMwEb)H3aMGHki_4xbPn4leIn^#xZ9qY7HQ&Y=M zf(T50Z>EW`j&EraOu+9@Yv#9R4Xe?~E&z-;i|xGJLL(=(oV3_1NjDDk#WTaTr%4pnj>qdCbDxNx?CjI8K_ z9C$aOUu4lspG1Sp{r8OR`8-(EkT)*sH zx7C*h`cF_!SY9tK^gxkEYaQP;FX~;+?~_rgbs<*aBrF_h&KfAsvY<64%~xbSa(f)a z(sh1!HN)!s7JVR}MrDWIeo-Gs5@_82whR_<@!h)t&9k)%DP3gF$mlqF;{?KaYupoG zQxN4d^>Aa9W4p9D7K?eGW8n4b&g<~Nz(|Jn`bj>QbzGwL-5;y}UUk#m`xLOEsIZv! z>*$1L`yMTGub`|TirodNt)UE`6A!5-3Ed6M$T%z7luYgW?+&o zoU?s&0ri(B6*%GVdaUa1qx*XfutF9nW|40mTHb7Wb^m#{?v76ghJS;A`04E7A?u#Y zBasXB`!#s?TKwVR72uSivNJoqf3vl}FZU|z>3HpZ9e|0?I7iCx*7WmCvzVx{QN_!R z%wl&Pz|uvPkJ!q?nB0SB^NXw8EA0r`7n&9`Q`sGZhES9c-XXL|MLzA3vHs2j7;_-E zD??iDjsLG30diRC`@9HRTp+7TIf>FZnHG3jq+`KshcbCO?8O;>cM3p0wpt^2a_cmYiIsRIsyVA&(vqa)RIfrZ00R@JS*wUaa zWRYxV%X#{fk4fxgtHh>kul6Cs;+qT9XVhMino5q0vmH9)GMU!*KLgXa6$O|sVk4pn zNg0qe;}_bgJB;U%B?5mrZ9gNE0lb$(B?QW3dvX@s3q%iDStKf|WyO!4o@(pb9t98% zR#8RGoNv26;>~L~*!=@{D;bLhe1i4%l?6-8IK?|c3JuzH(#rm4m6gN^J#zY~^^OKW zrR~v35qtR}Wp~$hLN9lZyz+7kf*lGizI5wnn_XAh9xmlc3DM(N&pK(pmopKJHNY+p zA-omu{g@J0Q(@mOz@A#^+qu(vY1XSES)Z_1L z@M7CGV5?i$GO4BWZI5+jGhW==vo+FQa_Q%yN|;T@%_61ZI3FaIs2Lr;$?th8EwG|D zIfiuHt4shBe{7OP(lqbUQF=QHbyNN->iap5cQDTR@!^lwo`ii8pP2-u(9s|LY2rQ7 zK8)R~N#s{6XzC@C9BH6_(S=!kKISNc#q~Nzu6ve!#epz1c=ShPOoB$j`({CedK-DQ zwD;(Uf;pU>0yl{YtSXO=Dz-ler%&1Z`*Tok?EKm`6wKhbHZb{kjr-=|_PJaUqH%XX zY+k@Ufh-gh>Dya>X*W7Q;thMAA6?pj6RPjhudoLDncbWm!4h!jL-7y8gMNNs8#8>4 znpMgo!0#if)`kCQ7$ zXjFwgY-Cm?J(U?(F-Dg#v%I)mil8cH;ovUY(9Q#6y!ng%d*=X`xK6h7hld!!_ZxjK z4j?@yJ1-C5|F(~g2+YXAfhoZ;u?BQ4U<*xOB2&B6KlSFRTG*Zej5aN?L`B8vkFWok zqJVazK*Kf^xU}Pj2I>8&z3jc~9J5G$QjrLcLmfP3W0Sdh$0W&=^;6In(0xU7^P!`R zqQ8aWI85T$mM4}_FI+Er>*A{=-Ki-_Ld}Zh7n)CdZoZQ3GjjI`9mhk`_~DFt-&Ca= zE?ddXUrRuVA@v%+!b_bZi(ur!Z?ZPJ7dOjq$4ea(N+^Uf8%~b-=i~B(Yiowu&{H@E zRNib{dysvCvZ!!wI>o^VOhuskaRJ@&Jm^rtPzYRV_Vr}mfx@;7QXt)}xeztuxMpij zk>+R3oTBmYXJY2HU?x`Q`NK`F1*S>+czM~tUEZ=r1LnFw>*Bk`%gz0gSG(=PVGN#x zl66f9OJ(;7E=c^y_A7p~M?jW^L-6@VH5Uohn8E8V$>|%N=P`^@dQDu3OtMBqo*{yG zF4?v@07DXfuU3)_Ryvi+8`8vK?OI9y@G|2Y|3L<`ztK^4CH^s5oCvU*2s6{aJ-RiKMIi_E^m}NI(vCV9F1ax7cn$b1@ApAv}|kxdsiw9dOK*X zoSw!yd#%Q*_4#YS<37LccnT$q)$Ubtr$XqK2Oy2pM-f@RKB9US5_I-fnLVL2ibXE_ z-}-315V~r)#a!8diwZ(*M+B>tCkS^C zW;A?P9{p}@+c}m}s%tu?XJDObhp`nEwV}sVdi|**Qw4S~oI;%&(r;b24BDwO7Wou`;+Hr*a?9XBsW>qXhDR zw^l%7!>ANS^v#>a=#(I9V2W$uY6O}H=f(+pwbCX%rULt`(n)*y*ncDH`&3!cyPPDyQ8mjB*l27}X|rv$MN^sgg>StuwKK$y0Z z@p`$Xpz`xIaO~Ud{TmJfPz?xx#a0NHzgd+lB4hyKeB^!}E2ETiLwQ$=0Z&8rP+NwX zb~H>xO9Wi0$eX7;+3!zN!?nhKNP)?}B8K;zl3DcG!eC@R%%S*Eh5&2B zsCRJmIF{ejlV3a#t7UCGpmm($f)w4lx7(mz=Rv9G90b=Q;B*4S^r^V1iXu)P-KLawZvHRL@3B292xcp~qygyd!9mFupqNCb#|0|d` zNzM1$fJ|H|WO!MxPfC-cwVTdyd+cTJ1t&QT4G%COz@OWdU*RjqUybBj!6XH4lW6nnlG#v$OZc5Ogc?&PN1JjZf zIf^iMOjD5i^B8DLY@-TR?g{3bbAqshE;D?+Sk33&&*(yfXkQ3=ga}1dNF;Kpsg+V9 zebr-so9bB6NSpZn+=ZUID)z`-2@RYf`TvC>xDSuIICv`+CJgZ6x>So~r#klQnIS-H z%dYbsoXl|u%pZ%i=zIT^K(QoBY^S|mWqUbc!LITor716MmU;cC{!e{_Q;q99VE82EyDN>Xi=cCZe z1HlQnH75XNKh)v%6RgmAGE^cZJJtXZK0P(I2alLhIYUG{q5(z~BmW!}*EGkyl$K|| zUh!}3TEd%L4;ljUCX{q^Buk3fRGFwI=RK&=e2HxJSwPAZ7$a}6ckGmCLsL^_SKU0m zA`aKR_uB6F*>XVN-X6R0SL%hbF?x>Z+3k)+NmnPJ<;$PPh?#3?=`7%fODrT{oGYZi z9nucuVGcFB4UpKVfN7X@ZT!3*irdlc$T3dbp1$b|D=Yc$Y*!z>Nju1UC<>GTxwQf_ zHC-<+q~!-wOU{xrb36!y+JCg+SEa0bP$+3{~aI`j(=?HP3d{^OgvT~2_=k= z{6dXKJDNM5!n^aEn(1OYf`*zhX`5DGh{HSdlDcXgFC^0?wl@5e_L;l0@YNiSGU0F# zJH7EtWTqrpDPr%i8#!P9LnqPu<09!4dA|P=kZmuVwbQJaL%!&!e%(Z6Vt%wm?6V zF3{)r7GqQ6XyzUimMeYM`&@-tw533HD~aE8ZJ3f|50fGJC@!FWVVfgJq5Vm){rLbI zi@+;wkI!}L4_%IbmT6KGmpvPW+TiGtGZjEr^PPdB7U}Wv)Kld2??P6H+SZQ`xoVZ8 zmxc+n4kV5l5@Wh#MRCXE>Bs-=TJ#w;wO2$vhfTM28gg&3bD2Pizo-zI5%=mTe5tQ= z_WBUf>^S`s@5+Xe+y{VRf=`{wJe~mR2Z`-~i*|>&FiSL3w!390cEi$+TaX z1!hQKB$^NI9FO+Wl2-OIWdOOkcwVn3_3D3TH@AKtqFdg7Kkf-+D^7SLKQw9Mrov(| z5b<^#4Mg<#Lg~~SSdY;=xM93p98R7cpZ|&m;M42vfQRJGn{e^>2)lErkspmgsZ4=H zu)L1vScf|;n&AVLWmPhzZ`WP+=Dq#kZ>9_sqvtw0_9L%tCItCU7)G1cx#TQgG|46W z*IiH=#Zv$hyb4{*%_}*Tk-k@5hs{|3FtwR{VTq++n}O+bi|*=GLiD}E!??6aF5o$n7*&!H0z;q;E`^-h=1AFDeqvZP3~wFAFSM;fqL zy2UW;AH4a?9Y28snMm;LTjDOcPd7N8IbGE(D$w-KCue0P{??b5(2?Y4*#4g?0=&l6 zPkhbu%I2tjx8r9-+|0|Q-(A!Zmqj&MCNcMS=}k0_YM=1NM(R87f_s*VFuD+#6)U|Q9M^1%@FlQhDrYTQ`+HgG$~tZ( z^Km#InrJ~c^7mp;gdAHV85Pd>%%Ua}=wVqsqcxuuFQC>qyvx~AaS*mWV9i1d<+)PJ z5>DX)bvzb}m%P#NLY;rM$ElDS>yyad_S;HgMl*6G#}{VhaR^>lLJhec*a(e90X)=) zydQLQ%Ey#w;&o4yOB{fsuqh+L1KP*KrYOgd123FrCkcnqtC>?;l$%R=Va&JnKW{Y7 zVG~`5HbmH!?kV4|i#xWSsbxO!!u$;|MT67Xo3|Mhawvo5phwsF5@fQ~vjNVR z`>GOk8OQO|e6&OE!3ZDW*eii?KCWyNLpE#6g6kl~O!{#?uv{LrWX_>O`0-l=1scf1 zq=`CC+u8uMztAP^9<-o%A+`DC`5r&A3wFxY zdh?H8Xd;FTix`lu@9q4He%zGFgFI&;fup>(opcUkQ!PO-xQ{!q)kL+2gLk&~7Y*6? zpr#2Cow(n?!U8h_CDa%c=s+`>>S!iJzIhad`HgcNV2OEiV|p(J?uQHoiz#%7NQXTm z^{X*4xLebK$Hx{sy#z8Er@9JDy#Xrc^wKCz$1kE&OD-MQm^S{j?+K~bB(n#c9pyc= zw8WZQu5Yt3p<0fFD}EN0YDRi`qhSPIZ(tnx*)v1RG%U`=AJ5-rNJCWSX3Lp8buWvs z3J#8Ny>RtkDxKJVF4IQ3l`TF@@KCzQG*t2Gm}IK0pI-26_}h?$GB1mB;Uyn{IQ!`y z^CR&K-`=!~^asBOVMAxW*4+4@gS&g1TTz=)LXKjI?x<1A zqg>p-(p_jHxQmO>sk=i;*QL^8<^8DVIHirWjQ!RjY$urdxmug@iG|hnpbk6rjF+Y^ z+Mv^zSy2M>OHe%g8;NMI-#wa@^%2?TsL!IL9UPzs<9m6vShDeP0k!GY`@j1ww>uvn z2x^_2+^H|YP8moZkxf26^8efB85(B8 zR*>hfn^qina@3$H%sI%pWh|Bg^zXoD|EiD{X(Iwgp4gqW<;;d!4EOUWv7($spbSZj z*_Vpk*w*uXC;@5QSUsbUJLYc%`OZV8R~>H9V&^F9)@e;w;y{s9+yr|E9Ile<)UM=q zjj;woLrJ^=w_DFpBm?R54_^+~nPrfI_NUkZh#~YsWq7dxGXOZ+#vIi_t{fFAu?dKv z%&x#aw&d$|Rg8WDJHo%$CQmvW=pcxrc-z8d_{EglNGWg)w?td2IS{SGLa|(jq9W$wcFLgxPwHql&#rvs%mSAL&qD^y2p@ z;tzIwcXGvo5NcwlSe#ozVfkXTeDCfH4V9UMuk;zyc?b@V8FAMLJ+7Y;1|$9x??n)N zSc&SHkDU3XG8`mYi+ z+H7>5EqYcMjq^qP7#8CDfXbt;24pcHO%bGffLB_Z>|NsPai00* z_eI0yq6C#EN@li^HytZZ{9H_M#zwnXAj2|P+xG#pJ=%Y$VA1idXX3L=L3Ai!T`6qs z0hGTB6F45j3*kU>pWO+2H&Qxt(YIbBLKa{&w`a;TZ4Kt6j7RMbO=vkuUFo%}G|~;w zkiSo)U38s?opqsb!6_a6Y;>&Cc7IF{qz z1_2EZOo=(3$b)ixX{Og-JP;i?)){JF-nUH@^+wFNce+&SWV6TDcAUAN)l=qpAR`cx z)b!j)raHPLu+MvEx8)&Rg~zu42S(*n7t8~>dqh_Uq~XWjZmeHn29B++G{=K}UJ~%iSsn`De8gZ<$ z2k5DRxb;(oTTUshGFTOfd42@D3wk6@wOJin~<#qh|p4Cb%wi&71aDBO+q2it!56M1!6YgsHeuiKk6p2i-vqjIj z;N`Cw1H2rlX{9#~$2n}H&s1WK?5v`h)UFQPsHyN9H}8X9rgUlC=GKzUYV$rW^R}*? zUfC9kz&zZ~5j~9UIncP2<%52es*jO&JmNy* zh00QVjc8d_ONqD~H@QoTCQkwCnwXiyox>Q6kHDb@_Dk9xCBrpoWNDair+&z(+ERLA zLviv*y^69as2ahL3+R)4J9;Oo>>DeKsMt_Qixm5KfI?UfBqGdG_s>LLI^w1VK>~pvV7q&meVI_N)B}ksU?SlOBzy|d376N&__(;GeGU8@_Q=gT+ z{?zEg=oOGX0CvpY-rhZWCjMc=W%4p+p$(U>L_z2i9vbmN<*b{~?*$j?We%K}y8^$n zPk-{r14Ye_uKxfl?Q@`-30ZJeT<76uu_jsrdYCN1_n-wV8%~bhMsE0%A#zr8!l{=2FpDem1CB~iIDcLd2v#i>^Mh{ ziHtGkQY$G}L=rd!mer?k*pL414x3cpCTsr9LvZ^0i1!9pey8pQLpEeQ%u&R=&al7H zf!K-*m?{rCfcXeG2KqdV!28`=qkIvy!;6&S00KFHCdxLM5@m$Xl|`f``s35h$Nn|J z+B%UR7oBgnTe=^qK>94u`#$_zD*T}fKtKSGuX54+4_LLfHpS7uI;6{m`(JS0L=>X8 zt7|YGop}DnPvGX=_7Qk~*o34$bKF%lBg&?#V=lSp-hSd!< z{en5xE#g*aqL8>$$_ZLXFFuRBGDi-}8@eMEbOIvTf-||J8l!ayC0p$zSmvs?G!{PW z%sX@v*KM)N`CBOu$}CfYsIRLLK=t|GbG5g+ZcgVU%Kab3bbGqSO)9ezK4! z_`v7twJ2G@;R{Kz^+vplprJ9$KLbX)qD8?kl?l_sqvjg4&>6lMYn7c{T@jbKj<2SE z7LF1CX6m6F)gs9g2R>H^DjikX%!3c@S(8*WbM>38#Xs3o0-~C{rOKJoN*7RZj@0Z= zOVjFQjrZ}T6xd79rQvydb*4Ar*#~Wy&&wODEn7CKcH}WMVNyAsi(9xliPKIU{iZ_n zWOuG%7v9x!9siO(BSBGed=5kRkjB=?YyS*OE!4f}%+?mjQM{U8RCQ?wG9mQPy@QWLD$J*kdyhg@RV zV(>!~x@bX~dFjD{O{f1KQmR4miFsZEDO+22{BVUNVt|_CQ3Z4X;6T&0SynI8f;fgS zsqy5-TpaDNc7C{t6Bgz`wCO0?$s|JsB-g;4#>$3;Xy1QI;`?JtptMV#E;an>LYU;) zBFuv0-}M-CWAYJrY{Pn;^S=d78<@y3aed^V#a9%*rL)>#+jV)w5qjrTuj8Xbm$CSr_28~E|cJBNhzgLk!&~wkIH+1TTw;SF+z8n4Q z80>ZuaIfF<`EOEdfZH{yqv-Q?`@XCs3`(E&;YHB3HOS0)9b6t!>4d=kX`m4%{`z$< zXoI)D4F7rm-J)byaPCM(y-{UOhLDcu@aE!TPTudI)t-Ar(>*za565ZI9`I1F{vdNW$vR zqNQlIH+QF0=nUuo61@RUD;OW78}ynyUBAD8WC3y&c*4z{GWCBusm@Lr9UU;+2Fg_6 zsgCI1dfGdi$fatlhfGcB-J5ztd$^LZ*(Xmc4^Tna_6JS;u(897?$TqYVNjeR06 zK(9fF^1mSIn(S{oK+@L9@`&HFEaCqKS{A;@!L6Iz50f{K;{UMgUyT*bd|Kwf;wtuV zJ3+Bz?iB2^zuCO<=FX6h94AxGWzK2Dfr!O7!fTL+T~IX{65e9REm*pvWW@=YC-E|T z){Wl$BeIbvR%}YMHkz6`4C>vb zutbmvW0^SP+fXBz727xYP+3gy$|m&{=~z9d?@J`Hf|E?q$4kZ6ii9#y>^TPoUABhX zWqJ)==4}Y+&b~Azdf6U=cJdufp6hV`IXc{MoSW9mUu;R5gNHUoyPoEmj(*|VNv{XB zb0@3ETV;y0A*$yc8h6*#f@{woU4WyJf$yVZ#_u`1rrpa6`x$qdKmM4tvI?aWzRy+E zEf38;T?BNe%@j9F?0g#kUg&ZeM|}{`!G)*k;Jjt4U_E4z`fqC;PLRkH{?n^i22AD( zD>+_I+O@2;cC~@jljIoY|90U>GlSUqu;MUF>`B+U9?y=XRb%OM0Utg92>;EF_!nm` z^rY?f{+bd2raoRt7^T2X0t>*3lW&Eft=U(iDVuhS2RuZQ9gvNwZRxbi@j^2JK0PR(F{Hd03KZ6=F0*OcT@jNwE}x#H8r*K>l3|B?+Ynm zYY>9Kk|f{x;RzQ=t21lHgLP5p@LT`>P+=MP3XZ?-hX*X+6U2bBZojX}oQ+wYc{o20 z1aQ5`&^fX|&fGYy$lEEf=lV)JnhiGnvY%Jus80k2#HPBVC+szUzMV6Zo`Y1dR*xx_ zl3j#!#2fDNDmO{pecSEF8|re2h{4zWc=nm(jL_zd-!!kdAkV_K*M(b! z{1V*c%@eLu;|Ol^ty^L#-^*><^Fg|YsFqP({b!KTyoMV##Fkepd^L?8YGmSoxKl>QRIa!ZQvr)$FsK!^f zXCBwQk@}2hzlad+bNuiy2K8{thaI~nAmgFfPN$@4woRQz%$GAt<+u2z9d_`!-|oQd=Ob*g09psY12fLVMt0F{ZN z{mQLdh4ZUWqIPM}@)x=+fdYw6ukTmj?df-I>+@|II$B`|hh86j=+c$xFfqZa zk)qUyA2IlM^*?vLIQ!<6EO-PRgI2}N{ur?;+>v=AXqzLzL#4TQ3M zF3L2JLGJ{^n1R(D=-7pAR}K2{IN%vR;%8+jL}!d`!#jLBoymN-<+-=J7n&XW>uAD~ zjLG$99R%WIEK3l+WoeS)hX&1?(+*wn(=WeAU@Bg#=R`4+aPsO1;=$Y!<_5R5(%~w3 zS^*VWE-jtnA69WURh>PCUN^B@8k3U)rR{?Ro>fU;DkV%mRyuJ!wL7)$E8 z3`#SLk&Dq%=x`9y(j^lYSP*W3M68AtY#`*-(HX;!f++IlOgg(Vl+97=t%DE zGKdt}*_->nbvJ9wuRi!=lzn%E{bxdonp>*X*$z|{J17S>#775Se#J0Gys}hB#RH)Y zR%!%%6vWBNNy|)9s_*1?5HK9cng}&CfBEyNlHNiSO6+Ra`zb(Kf!jN?PgMPTp#J25 zZ=d0pnAb|PE)EwfrP)TY?KQxp_}IzTMgBp~UMt9E4NmzH_bL< z3X2F1gOzhW22ICv+_>RECNCQjk}2w+|FPSgaZpI&lw*=5M&MT5zjs)xm$v5#uS}%( z;!yIq`0%R;m)V1hUnk|8y3Rsmz6R|sVP?-M;wPef9;TYz%d04% zzTJ8oWa>MDF`HlLi=SMF*C05%eeUHFP9OVNB};i{d!o5L2g7cIx-*N}W5T02r-1Dv z(LH{`GlG)iw|)>4GvBCnL&A-<@$R`lAIGcH!jYpt=H$X)xHtSBxjf8r0tD-%{Q2$F z60-5Tpdu98K_H9Aok%}3DzufFjEv0N&zJB-hcU*Rl)p^|dfXnDpFVHSXg?Mrrk?ax zdBVa^4P_oS^%*NjznCQ{yt3ME$s^xh=`%t~0C~#>JN%c|)3Nezn}CNBpb91*Sg|6O z$#KsUjytKCTQTIPNs0gJ*~f!@M?^p56@|J+n!CBEh)Bs& zlfK1QedVD=&#ytHm60emvFbt&+ZvLCH7D)A8ch9djFN^fh5FOQtBx}yqdbIkbo#Ch zUEmXgjQ-Q>6yX@CObV=z6TK?Fh z?f@NKwlPAGAfsB#9_wI8ou(7D&W)ed$Q^~(zBzVWcxkyde~nqB!6Qua<0eCeTKLVI zkeycY_~Bh&?$Mrw3;*DQXxTT4Bh=Tx|KUQo^ZPd%us@s%gsC59a>u-+T5iS}cKMP% zF>~T^lq)XQ@7dAsD_wL2VeVIHS?W)#HQDm=8-QYW@9Z31U;tq3!inDQj~b4**2uEP z@Fvrjnyv1;`YhLcp=4^ZF9sM5fNzz`LmX_`D9J8-<0T3kjHdi2uPzG%Vd;c~Q?@K!8#HN>nc*129(b?6OWCU^nqmfK4#irrYiKfwv5#qL@+LB+a%za< z)5UMb$I7;sG7wQ-a!!qKF4#u$Upm`v!jQ-iT!_a}n7B79dWs6e%lNA=E!#AW7BpuO zB;?YNKG6pMLPwgKdnG>Yj5sRCl=@=kL}(yrHu-d#*&|drH(IMp00E`%g$UDm1qZk_ zi%IoV{K*+>VeOne`o6u-$ORY($QBc7Blz1p@m$KX-&k<_RaGXc5?PyHqQFHO;e}(| zf^@pt387>%43sJ}f31QaAzY({#2Uw3+@h0kQ?!qzf)jfAk&tf8l4wELQRtsu0;8YB`d z>gX@Z<}Ro%RcO;!1u7u3jOFq6KX(7VjV8@QFiWc^WR=AC-nl4(iPUU)2_Jj^Dn4wl zVA95B3)XR(EEGlkGmrHa1AkuwlUh!J+aG9s0W@i8Yq zuXD?l?-;(PS6xE)(jv9REPpwuN;>VK>Mm|S>QWW9AH`S2Ug_TOeMH5D7Uv|BTR(J| z-j-I8OqN^i9CGhT^USz`U4$fT^SFfF(Y1KPjVV31P?DxRGnh$rl$dEKB-?~0G>8dH zs5yi!P9shJEs<>R(Fz4-0zbAyq0QTE)3vz&(p%O(&!cFy{09J0fk=0M%nNuiiz3_E zK2Vx9uQ?tC?{TME>1)`{%uMrxj|-fZ(&bk^Jeo>?D4Dr86SNEf3EMUjLC=zUGu?4BGzq8(N`O_V74XrAt4Vy+3q0o)Y$0s37N`!Q#5xvBGUx+W1S-xzqXNpQ*#Kf`w0>J z8f+n=9RrVDzwviL(5VA?d#9dtYnod}Eo%VIMIIM^`*8FMKm&jam6tmA-=5{P#i}KZ zS*d~DqlPt}=(g*nfS-{k^X2o95dhqlCodgQ(4-*@wo_nN928tNdJ@1J1{n*dycC!E*tgE%|Dlp4Ardwh_T9xM8gTmGd0 zu1E=&3TGIvw(mo7N4I4J!k#ZNxa4+DcLmYeQ-> z?zO4PK!6AI6DSO)tYECsKZ9?EzX?2KA;xrHjng1!r_BnXYtlN}GEk=BGoM^7>H}X{ zEk(rY1DI69N;0Lo-7a~3t3%5gkIYrgLEE(Kd}R$ZGj-Z;G0su>$GhBv!)xKDiu}nJ z^X+gXiBcqyPvan7K#y#1>ftt;EDu3r>AKr+Bc5iw{+V@u{TxKgt3zWHj)XI(4LaRH z2vxGur#%f1BOkv^pt}cLDdYOuw`I)+wLok04s=O2Y#h@^o*=>&-AE7QXoMB?^!bSo zgVn&N(hs7d8V(D$Ec``AEWJw;0iknr3l~#VC#Buorv092&Ux<@l{k*e_8{CoRIxxUv9rwf4 zP)R^(PJ0NKl=+CKt-l}XrZXQWTYahK0Hd7$$jWOC$6Yn#rIS*CKa_eDiqUZkDy`Ku z6=Eg5v^0f809jIELAn0p?>$k9a#dLg+(ysU|H$eq*zmvRRdkp%{Zr4Wv5-PN;oeR| z=#!=$DiF%TgDu4yFmJib5l@QYOIN^#m7zE38e!cK)m}5;-Sna(J#)I|mqOTUxsl)*=F zHY97df+EG4s-sCNC`w7KN{-YrWaI@0#^@C$ecOnrtf@1u-4cq6{Kz~jkH^K2aL6V288hVHxD^uxMt%B5^S|pFpDjUFum4o2BXY_9R5r z^2qqRh+=j=ArX_RPQnk1*Q29uh0@N$HN+7zvw}ZM)N()OmI)3YDGm>^+KZG75qbaK zXyw^0{MCAxj9QFYp}&jF7HEUUE{&3Sz9B+;ap~sVI}*WsCP3&cD*W&OofOleZT+$z z_uLCFT9j2KrBwNqUe!Wk7;gMl5nJlqOI02AdcN_)OQOi?ozjRJdreOl>P*)M+PJKj zq8FctXnB?1q@q!KIUNOX=YBQ$PE`f}O(twu$<)h(ovafpwEkS}w}uCe4wr^UB@5Qn z|Ddtqd#=pC325L_DA7)}5x~&8@pvXeATaa6^D_{G`!*%Uk}nm^v@Lv*;B;zlNf+!g z|;ttZ0#XbgqsxPX9I#eqpJB!H_$p=< zze43|<Zi64?grruLU!HbuPg=Z>5@r&Z)O}cA(@InpJ zXc7cAz}hvFHy|IjU2d*_`zi48_dY2?tS^vv))*UY9hd}!Tk%i-UIXQchPLVbRcO*y zl#1xx`4%$J<@NETS|fn_Fj7Hq>KXt$@uQIP*N&8^hvs&O!k?Stii?UW`1M)-iUiZe zAwt;_7pGJP!qL|g)EX{+@=9(0M5tUX_@b^Al#ivQy#&%3(-q<*VcIvF>uW7wr9+O5 z_N$>ebh2^X353SG)6c>uLQx`wasff;rHL_|Z5*)+JzH5v2lVy>AlD4g+?;(q!<7_> z>N$z-|Dy&?;$uMGw5895N>WB?g?q~zG4X$$Qj1rMxssOh*VV&h_tMH~PPekL`X4ra znyNaAw3tpe_VSmVpOpTJ6vCsU&+C&{$C4Fh%Q2&j=Smo*SMimVvc{Nyu3KH zfD`jaL&)z$E1fIq@O)xzQxqcLLl23H;y-X$R7xVwRL~Sb`$0!%7cH8W?c~J9Gr>$u z&>1eFcX7R`D8t?-)v91sO(I`Z$r!AC95KGlX3~|s<2PO(1u0--tD^LQGJOBZoAuIc zh3Q>Z3~PB6rVI5rt}q2BYKm9;iP1>v@biA2Dd8M=-}0#x1AG0` z!`8JO&KiS0lvvghMTZz-ga`Vd?CcVIN`ueVvF*WyZ2XUSKKcxHhmqRmeojvj03n`V zbMofV*MF(XZUNTh??x7Cm&pPzv{OphQ)-{m&}||dV#VVYRi71B=TAP!bz3t*z0CAx>huY?)W{`D!Til zLfz&dC4H-Kd=)tHcl68~pe;%1ewEYXmQ%w1#B|G_jOLYMX!sI}d)0pOz%A8)uov`< z5~|-`{e6TIk7_kJeX2=OmBG$p5fs6=azw1Nl4nJBxpUimMuB+f&(oN0qMXfC|EE{B z%2EFdCChdsE_$bnj2RO%j+IV9uWhj$^2xP9+yl*8xT8LLFamHjPq~8fh)am}%u z@^!%qMfbW>Nx68OdBT~+*fuXVQuX2sGtvTYFKGK4&c6?CE(`lub4$G%^)H$+jSYBU2R8$m@IjCz65~BJb zpn9NhEGNz5247eKo>DuL@zb-ix9{GT}>12ZR@($_XAbGTF?R1kr z>z8jRG}O3TzUX>}UAKxEUf5Hmr}yto-WyK?OzQGV%%U0g{mZc3k=4{NAw~Q!2Dzet zv=9og{~o!N%Jh{hdkzSX9Ls|C42Z{Y{)D0J5JXk8`63rf9bNQ33FD8)V;_EX@w!VN z7uLS7K@G|e-?#wP+4PBLnA2PtZo{pU!=m=5GDXZKx02tDgz5a<>#0;8y-Ql;^o|8k zG0z%3tEji+)2#?#mI<6*@X9_2c56-awKZ}HT8VWE>hC|;I{IVC)ni>V^2-(@2 z>=i=xUI)iMIC89zy)uqfR`%YR*&|N2GRxj0ki`vapmEfJFpy-&Me# zWn{>%qjzWs&#{HSvydzzO*W@!!=`wy)U(MFw2x=Gx;%3h$9oMu+7~0>_L4|P*XVH< z&0qJ@0ign?QHMpLX9*H7NC58xgel9`QW?z|vd440TcQ>!j8kY{+6VdC6I=r#1U8I3 zBvuUyBQ$#SEGX3HDt#880Yf*^>IB9YYJH5o%)R=stQ*p>mm@tEM~L}9H?JJ$wJ`HP zruNJ6@H)#-omH;d)FWExkCeFSc9Md>`pNS>*`UT?jX39N96*KD&zCV9g{lHCy2&5D zmey8tyUO2?ILlF{Z=*p{>Xo9}TWC4E<2N{WB_)Zb8ZgWxtXT?I4>VbV49Z*T1*=q> zRP{K~Lu=55z;YloyzkivW<^NA+f$AD-UpYxn3plYhP$VV*%=&7g2~Rh*ilFf#z|yx zl6+StNv9mVIBkMEn!HZ>F%hrg zkpubWG4-S1U;V=4lvTF9-c~gypOIHsY!Bmzw}a~GrK-XA*|pB>(YU$#mkjT@d#Qd{ zY$>YZ>TOwJMVddi3NsM|CPz(Z<1uHBy5uDiTtf#TI{9LY=tXb8vsO$eIH*s9w zMh~+o{fqt%-%xsSV;kwfc;}Y*vCfFS?!hY zby+_HS;A`iSIt@P2u3P#IaUtR?kxC0Q)|h)EBT1shd#OxItuB)zV1uzmPj&1;TTl9 zP@i0YY;}-od-0dMc1eUhx^z(W&)*PdRDuL&{Bs2taeGp`hLxPjnMHSeJv7+Xb4OAs z-u%T|2|1IyCFk`nF7oFQS;cDn+NV|RTP7JGuiw69oFK*f6?MQeWEC{P^&6`5Cb(VU zWNb0AV6p;;mHxCREo^6@=O z_s{;#NRR^1(no6p+P7HtlU#eVx!ys7+;%5MR+%~#X=m5$&x$0DP*ntj=IlMiLDtN@ zhwI7~n;pzn2@1Pd8js1mvufEl7c3<4k0Kp#ErW4l`?C*d7(LL8I3juLhK=5XJPqh? zLO;$L;+x*r@8K+)j+Olk{4f<=TD3bmXln_VkQo+^dJ=vh`V-0eAAi12u20>Xn&iq8 z_dsL#J|dS$AwXzkU)OC-sX#LWFVu_O;?;ah?xfT5Rz7-LTPEo3p1CfrA9aL(uVcZ} z?%ih+{g;L&vh=Uuq*Edk!~7<*N&FK;nMb(wI#8dY?e&xGY4JY-MCq*>7e4{c^hr-B zq-QBJwhBy0T}u{(p%^3!c(Qu0u0GC$q=K}-S=aZX@-lsYrfxe{`=g#EPY}lu)6BPlye|lIR{@ ze`9?)``jkkQvUueZv}>qB^XKVaELsJQMp;4nI;C*7XpaJ?dUtF{F2xRU>HYG<^u34|m`daOnwheag+`A`;TxYK zpUOG6EyZQh1Ivz`zFoSezLkK*x_?Z0sqTaIL6n(&cS{Nw2PPmzJp~|RPJgm=qK0sp zi6!a3yo%0SyQnl9$s<61snLl zxd_9FEz#noE`!CSQLWR>f?y6@c{b4M0rH{;y#-gK_UH$svp=ngLz`BdIE;&Q1zI6VPpVP5(}*om2wmLjLsVeQ9%_$#3&b@E=7E(ss_(s<$p-+{>tg;H%;83Bn2 zAUCpYB{Z=abts*ujP?txC$?zh*;N!?OJsiWyOxqztk*_*uuw$EL(*;ci&Kn4gHkU5 zO%F}bfm;qgL-nFM`7axKS@S8$2)3+d%5Gt&H%=g(Z@)El(LJFkjvO!iq{Y{A#qw#O z4-N!27X5v{wBAi#QDHpE+3`;6l46;(YQvHmee^U5E7*Nt_Qw5Q>Um^|sOKN=XID_X z{X^7XZMBYm*i*8!hh37Qq-O}0<5D{_Ko2t~uEHyYF!abbE5x z8Rz8CJ`F1t5_TT7Yi`y!BE#$YBiV8+zNqe0r3U{ly{$975o=%!dt}BM+fNlPsLhb6nRQQqFX(gq-rq-|Uhr!- z!w)=ZUY5a%E5`R&pubO#+!T;rE|dcw^jU51H^88;<2=RIs_E~JvOs=UvC{2d1~nxX z-M_r7-MjKQ8f*C1_7WRwbGwWs`6sq4Nn>6@u>ppZ{KL(~%8dv6_*^ZjwsG25eT)?W zD~pK$5__@JA9#A040;vv(SILS4xlmnfUT00m`J>k9bFuDfww{cE%sPK7T+HmT;~I{ z1RB~zJkZtxe{dO}27)#aY_Pz}3Rveq;|UR6UZOQWgkG6{qrwL&qi+vkk2yXjGFlaB zzQ;3wFvQYoiauZVv`Tp1C&nbP+`_19d^fyP@NFk*e6A&lxtFo`eHq^k@wIAdSljx^ zdDHTi(!8I7rH3hP$xj$Fs?L<@WJr}ife4Q0&}3OEx5G)osSYKAz+YKu71+?vEl3mG zQHGHZiCTZ`>_6J|y8AF@sC}IKlv=t56_ydx;FI4XBr}cD zp+=D&OXA~nY~NA!4(uk6-+xQ;8z@n=5d0fe#-S%r5T%RGY6^xFmEY#abNVGAG!}ma z=~Lb@;DW$vSqp#b=?vNvv22KHrkv*G4cfwn&s1^xbFuc`6?HIdYy|?_rcX~ z{{BmQ{e0;agtCPxmj{LVn*LnUpL`_?Sdyz$7o+VK@w)ybeo(gF$iP>K*#$WS0gZ{0UDH-OF23+_;NBbD)f-D zjka{h8m<&k=HwETfa6JY$=!2scR9^lXx%YfSY1F5Af33FpU1T~JwO>$JSnO>C@xas{(lTkv zuP5rXskYSGq~1XJghnP*Vbqy5`EZ*eF?YWR-Bk&FraPPIf+CeO*Bg;9}6X`17PLzOP2a@zQ_8^OP)TUicEN zvEu83D*1eugvCt&fmv{WZb(f7RgEbToT#)m`gslEpa@{C@%CQLL!s~oX13nVoXDHZ zzx+5RIISjHt)s_ha3QUopQz?(Y2v_5{2VSfiWeASo5`*ueVlV9>uE1Cl12Kl(>Cs1 ztEIR%^%#YM2Hx>Y2#i`8jtx<(t2PsS>}7Sgtt|k28&v35f1Of;%xk7TZ?bX%@K~CPOS6(7~}7bbIA7#JADZA4X}67hn2lEG&ER$aH;br#nj zPTyCow6?w;k*)>IMp#(W-2WXY>a8X4m%HTe_`NXF=bZcW6D2T)o4n+6?T1NJ$7}ba4nDkWP~>dLt=~`k%bK|`89j_v>NFdzkTsa zYCZHYuTc0!j=tuD5r!}mny&C91t_H&I{pUZ`W`T|cu5TKDZ4))o{2n}Ji0nt0msJ~ zyWbKpI8ErqDe-r3R|MnF{hM>n=GUD`*&b^1d}n8W_aqpT0qTLEY0yQkVBge-!3oW< z{2_s8+7FK-CgHvXvI^J>=S7C-^J(unRvzh1lOe6Om}g6E)v)Cf{g%@TXW0nUtE7%3 z{q!Qa&5s?R%G=`5G&;OWUP86l?Vx@S{lv$uD-%&Xib1{_AB34pA?au>_~rGT?Iud; z8j@uErt=iJkYBM=4 ztSNzE##AH5Cuhvta?;T^_}_BC`R;Zq2zkTtuC(p2j8ij=ux^W$W>+|$-{QWWxPKiE z>coJr0v{>@z=Zn3Wvg4Y9u*{w0Q2OCz5MV+A{~HvW_7ok+ln)TLIPGiV0s2|ZR|;^ zh6(Zb)4sq&IXc(~sx=2Yl+x1L8hBeqUo>I3KLQak#p=Z^eP-Z~WjjZrYyu~6Y3t%X z$m%i@WU!;kt(rT}wK^O;fzSRI5)?i~9 zuS187$$tp!tn-8yg(WPQwJXvYBnZwhTxDpmZi!3J5tncPsp)$r+m^toy%z?e9 z*So%8&7-=DO`sY>1nFB_eK5SAvN!tYzZKO@8A%2xvZ>X#bV5mOr|=T-GUOM&6O^_^ zJXJK*ay2c*|DoKQeSao6#QC9E)}qfly@s*u@}rI5fbXdt1e=2A=HlG#tJgv)@lUpo zdVEJtb622BkD;21BR~8cMa8(@%xLScm8{R z?7NDUES+$8ej4>mF*r@@1L$YQPPaU_PF-T&PCU3g-lYSsNUYweDG9~kb9`Vqlm;rO zg8-4dq}hX6t(9kOM?ltW-SD70Af8Vg+S#_WZ-}9h4b{}2Hm{@g8-ihou&g)(x@wsG z5NY2gTlc?;!#_(1U`5y1-L=8DslU8=?R>g4@&s~3h?NLG9SJEal$wlrRT1C4=x#FY zX4kUJpHNn2N{y>hO`jdTFRY%utxc}6a6l+oPcU48s>#)J@?vHJF-V1;cfrU5UY&=Q z2J71HiDgxQ8ViHJa<4Psp*k;2N%}H}Bn|tEE*7CDS(O$B0t!Qn2r1RlzNu@C=fQ77 zLe0{ra(qKLZn-?ceHNd^;khZzPW^7b(74;imm&V0z8o>z9jX(m zJ)8tMc}pIP*@8s60~Mc4RZ33OU~k8w$VQqf<=kMTuq6;AshF69X@fOFNiR{q(9U(P-m~@1z60_F^h;=Q&7s zLsP*m5}0s-glg8A%Q&TTSy-byU0EI*1peCcuWKOaF0Ky3QZIsq560$w;;%w)O>yU; zcS&bEjH&U!be;w)-egpA{}Pm5zTXBheXfHK`*lX`gm_iK2|VaxM|=}vH7pI}GY}7|_2a0m6jYUH`_V--kf7_ayWR2je#=;RW`tUOr;#Fxvjj0jSao!kU}Y z3EmGkhpYi@0fA@NEVsI5NAeLs-2&Z5dwY8?Q19JZ!ud!jhSKBir=$-Ox{qY9ly;{{ zfD#EB|G!s?Uml391by}{751Uj;f$|$Q{A>wc&hl5V@!aO@j#W!X}0w78?|nIbb)vZ zm^b+*LR-=|?3Q>Uor)aHo_zt|%_+xBFI@mvO5t`Kqa_q`r*%;7sCQ}Zy{O~KBxYAM z%@0@5^dZ>~ZgZ4w{+fH>iV+o(@Pw)d`^6?$xw->m){wqma3Tc?9q zOu>eC9Zb4-wA%vKr;fwF}Ey*-QsJ)mC%1ez**Y~_+a%Q7`pg6Dl-$?@G0y+$9e1oSe4G~ZI}==nY;gEG5PiEc2~G4X>b+z%3K$t;krRgF9WDvwSsu#2 zU@qNWKK7p&hS$kb-a4Nj<{u%}wqzl%b#>rpLY%f%S`idqmbhO=K65+9cF zjSf=A;2ua-m%RB*S$Z*xOpu;>B&HuXm)Y7cCl;m$SYq;knJ~kl&O@!wWjA_=l!YL&c93$? zatdnMPN3)aW{%JFOJ*Z*_4z1EM0e+xyV4hP4@rwsDGrZk92K-dFhE4^71@jflO@|nXsQt5(a^-?k}}rg)6U4$YUV%5Uq7H{|OvyI7mTBE$iA1 zVl9)7Dcz$_(fB+>M+rKtBk8==+gK!|?5ka;f+>xkRxG9S*GH*JW%I58jA`@U8r&`0 z>wV)+(fsp2ff_P3)c}CO)1O*}9zaz)Cv50SHUb)HzQR6{JZm$jd^X&%4T9Fh8Ercd z17{(k<2PjY!!D_A?Jy6Ybf*zE3f!iNNhj={AjeL{=}EZce1W?GoU*{aKQQP>_1La$ ziL_ae4v%x!lVt?Lqx*W9%ufwIOSl0wN~bD%yYbKLnWVEgBX}AzuCbMK}^pjL`FEV#I4ohJn27{y)A7~veX}p68T?mnzYx%ZJ3q4Y3Cdl zTrtOfZii!-#ht;W0wQ&EtHzpS3>FqnA&y$lL)9*&^w34Srty!hpbz_1ioCo)40}y{ z*@;Yek)Dlv>(*5R%GK*LkAeZagF4)5_6&;4pe|Z>g(&J1VH!QA1cF=|^$d;jm!JrJ zoe-yiX>pzuhg~z|JbrwB@uv7tD(oLH9g!+spL2F!{3mA_c9n2;ptSm?IJEy(xJFR; zx9PqeSkZ%*1xP$Y;UK#dE+={}>4MJ>NslAsc^-lwwIKS9<6~~He4Dyc#0A2c)yi>} zn)&eND9=bT1$EKYLK6}7E`Ert#@*=|(sEO36NjRl6pziXFLy8QT(hu-=?!g%ef{;{ zG8a^zv1%93wwexJv(s6R3yT5>=Q+Y3<96>g)Gv0&rXtk>XJBiUUecO*0mFC53+a#vZ0YI_yYwkiw{z$wf>S44I&j z+mxhh3h5Ss129kNJav;Rj=&QdJZ8+RF+~RiP+1xIy!0racTHFrS7lT<55ppdR48zG zTCpdwBE{sL6(2B6jW}}od$tf~jjZO)Jfw*j89{&$O~N!!eo?)oI-3FV;`+r|0_B9B z6HA*{?mE;aQD8&C&?{0?lDMvw|CR(D#hIl4VYFp~1xs)#Vo$nSUDB5x-zcG1`gJFY zLQ~YwE@RWCVx0J$x!$`aMdlpY;`%+d2_HnsD{epTW5LWZldffb*Is!H=VzmQ4#l~z zvY@IoF0Z{6KJX#9CSrua?roZZQ-u$OH zjvAiYuM@vSUXuCUPo%8#C;lfmpphGGqBr#XJwD2ul@GkPthOrebjB0yCe4xzuxDi=Q5&5`i6iD~%>r9zg^8b} z<7ZtZZKe2%9;I+BUY%Mp9zAQdkojs~VLWmM?)3n_W-g@NByeo`)5s;+q_QJgv-`~( zPJT_<;mgL_m!xUGObyWLwJ%VU%Z~1JQsjaY5h!KajLNtdTP1hN6juMmC%WiYKH&Zv zXBg;!81ETir@-Rsi%c}^E<$9hU?+bFI>uK1)`ldnXbR;c0Tp#-1*hmojfO)k#liyF{u$kIRJ!E@AjUIh!tSBko-( zDq^X?ZFc@i*(h;)QS2fTEXu6cZYvKsZ&#ris3ETg)8<|Ic`XsyYxDCD?E7o?7Fw${ zcMOMNy-L@+20O&-F(85doO)~N;LJg9wKGLa zULeFhP3$0P!A3wOUH=xG4Ej7;(|(H(3WTF{Tb)nLrX@Q`Y#okoxrN= zk`FR3fv_A1$ib=FUR?F{ARy0V9SD)|fKyv)rsiU)r7$ghVT$1<@V6OcJ^QfSKSOFC zq@fzj{7%6AohZ^OAx)2>Y2=)k(3_UrR%826Z;Dq<|2uzz-*tB&8HK8NLBZ*&mlV8x(xFQ|mdMPD;~`2WSQVD_RFVvDP45W~3HC{;~7{q)mibxZ%o02ps>rIx|>6Y-Mm zNDB|GfSK6aw8%lML1EhGe7`lx$03ALZaD~dUpht5dapA(-BVtFlT3QAm;U`=4EcZv z`H1KkBd(5NirfR$XN84Dwu(<|0LRZ<`ifj09_UH zq^GP_;56FBv1=JL6>GnKkx-S!itAB5Y3NafnOt72+$aFgD%keiBG4{x(Mg~W2Xvut zmQO%<7&FK;N!halTPQG>-BKNH4zYpSMD-6K=YjvA{o}`>e`g2jT!fahM^6N459O?) zIHJNww!xSVW4@!Bs6~~AOWN`heCffKfuXh+)?L5BHZ3;(k5`izv;K zY8ubET&0f~3ok|FMLTu59pE#3+f+bpks;x^6fI}7s7WoFIt|1&qiC+W%5J;=KWQu1H?5Z z7AuAhDuMiI5F1Oo??~+A^aenk%NE@;Xl1G--Ut#A4T>-sZTwu26mzZrY`D`~&-7fc zkDQS)=F|Ebsy@OaFeL-!V6*%{`9kh>vC=g~kqC!-n+2CQ zh~`-B5C&59z~ea6u4w6$(mh#5NtsmM4Z;qQ#9Nz%pOvjVtIns#=t{I`i-4Z@$uX2T zJgV{@eu#aBT;6zQcD>u2@}~6fM{P12uND|a@%RdDNEa7D-Ngm`#*5HjcEUgrNv%Sa z7NCcuhQl-e@`vgHFEYLEPrg=rx-^zZ2ZXkY(ld^%4;6MII}^Wcs7HKGwmiv3oW)9t ziY@3CQl;ZJBM1yVML9ETH6lp}y(2`3nt-I`tbQY4G*4he`JJfQ7nOfzw0O-|)=A&v z!?bc~SwKZ4Ck}bdCFaee2L>x_@}LnUN!4*4UBE5=Nq+C$;&E0m|=ZWWbRmYlQkd$SQ%5@mCfRZ zVk!7GJd)V9u`nafLvE-UjTQq^1ua72^nHH)`4imlZU#-MpcS(&2mS{+8$%kPC#*I7 zjBP4GTE0e*U!~(q>NIEkBSg5k0YHCR7Do?+nO+~4g+E<747m@6A<2UEsXeJ_T^OqB zHme-#ur2IF>il#!Qwyi8Y!e`J3^tbJ zdkV*E0y@FeU#?h&G=dm6Aa<8mRHV?TF`#J)|j!%d+mwv_wZ#jHuJG6b3;LMUA_;G|1|4V=m)kfPG zbfk*wnnBY1+H`NsxP8M}Ka@qxBwT@3qVN2|moHke=uNZ))-qdiumIVe&U#yJ+43x9 zb+_rMDN>Drba}7#dSc8UpkUIB{XsT_43M>|HPr$9A2L83HZVv%|J`-aD_RU5$R@MZ zf!MS2(~C#4-S<`wR!8pN#DTyPvI&`JjF)`Vo^&J2zY<7&&^;s2N(i>R)EKCxfk3hk zW}R~-G$k>9Ru;(`bv5DjWrpGEce1gDZ>(7iLNDiOz`uQ?iS_V+wdgM#E>mZ!Gj(i< zX!z3Tp*ePpvoU6JBxkj?>q1sOi{+Xb5$&Bs8xuS!`xccT9;q2ed~HX|P5AR;Rje*jYJ)E$;j5u607Fml+b4chH?*#Qz7fD^4#p9y2zG+|2|vf>kj)%-}HW>#d2 zAZE%o2+G73phk_=CFFMncqZUz*J>fq$tNH-(sgzK1R{WCkOg6XUwHY^RkC0Qxoh}} zrzUE(?E}yAkF2uY4_P(`Q!CSzK6l&!Pkb{Q<6-0Yg?PHs^nM1)?C!H4Ea{redES3x z5B_!A@8igAL%e$_kIRL(%Xd#w%| zFKG_Dx6>VeZ8H4+{d={YjCP_@gmN~rNJIq$e0H$KUW1M7nj~XcJJLPY1Fn@gQMmVx zLzo;me)J+;7`WHWw@C~_pS?}W83S$yT#!B7#4zVqn5U#|=Kga6bJ&&TC4P4AUZW6k zp(mZ2qinMf)junNRtd}PXY}}ba*O!kR3a!;l#6-sTKKudh4@ySQ`<=nN?`rl#^28& z`OPo#O*cQ7;f{)*nz$jF4@s~l+shLL&oc00)4KmOVTH)TH^13KGX`Zq>w2x=5bQHB z`xIM;P}_t+DO4B^70sHJj3`5u8E!j)Yp6+7cI8Zo018KMJ~vB8rAWc`P!CPrjHP|2 zEK3D){h@X>@3*`nby|^o>`ri~E9>*|L#}QSE1gsq?NnI{>&YY4EV|-g9lkM2S9w>j zlZdiN_^Z$ZWSd%FtMiAoC&D=#@7)xil-T|K%JC3bki4bK9DkwT7*wN(dM>vb4v#i8 z&9b9`1R~(s%Gw3p^wG(*(i#BXq&c`o8BFW%B22&Z;{sCG|7g=GPr*9yLs;0$lkF#L zw&s2anBsta&{S1g@{!#WxCwnH>;xK+z3((Vn_;n0{NKb@l(()rS5F%7QwRh=RO84KLZx7m3>gbLB^24~P?XRN z4yYYWT|psf$BlJkP;erq-mMzD$%pspJw30$CgaWM+-r(wP1MnzZ?}l=hK!RdT^?>d zp!y#Dwe^oWr6IfBo`7BO&qg6*wv7K?B(S=**XNEq1o2o71q+Pz6xV|EWkLf9_EJVt zXOe_xq9K%!|6nic++^KHVx~w4vMh??)JD!i0*mez(nS0__5N!)Pjf7&*@dq9%vsg8 ziC;fvpCql1Tan*$5M)gtd_PB^8pXj#kl~cIU7e^~$;;h|=28~{W(`?-M6qNe-f4rPmLo&1G|da$oVd2(Xs0*1y1de|K%0civ0;_L^=)OjY}QLu zUb+_)t|$!15dgVraI1~OL-Mn;dr2&vfSEK1O6LEZ^3)dLpvZNWy9G-Y+6GE%Oe9JFMj!ATEdAS=HF}p*qqU@blzZWO_ zl1lVvXUtQo6SU-hXZ-_Pn>yG$$ZAHFDZ^ixKQ^3DM%;OcljH#XJKxhx{qNxK-%P>( z8L?KTatb{2c^n%skFpahGqyV1EmDvnA-wOuTDf#3ixz$2S{6^E!J~#}{)ZsLoOt=Z zxYM(>@$)Z{A1N19o1j=e(uHx|@U{LMJ2R|E!%;S39+OV!5vW7wz}gzS>E3&-Lw1{{I}_sRPA_H=eqC0oTurKJuhFMiEr?@c z<+x%lD8d!*O6uPjA1l^Iz>i-sVt9074}F^Erdo7&Sox>_QD9V}*)Z;}R0pq-U!9tF zz1}S+00Q%jEJs`Jw;XQEAIR-*gY&N3Uyzn}KOdaMPcx3hW#U4L2A&0p3k4k?u0~rU zva1o;gKzLc6O-sBwldNLV}wbxU!Uc0@$1wk@co_jt0r)5Z`A#17WC!=iJH$BoeVQ> z^uGdPO}^BV7e9Yn3DT~Y7I29sG^70VGToPG>*vb&3|~65xe1hcL`f&$(pJrSL5`_4 zBLpKWZHn@%qNU@9I+F@As1Y$$dw?@r;X*xO-zr4BZ>qzVP#q|&6ls1k9laf?Brgw? z$|SL|aT^5t{;^hJ@o@wdEn;JXT197Gd>&y#U_ z`jcTcH-O>Ix=VVCFs}pM?8ZMgf9r zgD1g)kyzyeoPrVD#Mx|AGZ1G{RvKK+$h|G9VFZ!Y_*kS<`@lIoFp$HugDlPQBo1IV!>MnK$)X;=|GQ zL1Oy;i9ZyAW3yo*^1VJyX4Wea2;kqY<%ta?Q)b@v3`1MTS{W{G!)~P+!>79aAKEDxgVEgl+_V_s>GPF<8Ep~ zT99yw;M_{L# z*G2D`IvFSEn6LMp<+1oZOY^Fhed;q6d5CS3xe6C9Q74v~skd5|1KO!iP4nE#g{B@> zTBY?1K^cM+wj2fD;dVY?ZlaoVFLI#=#PtST$ zMwT+P3s?{n3!V5gm7>{C?&q9ivFR=fC>KL3hwnXQzJDJ`1LIC+T7~*DwwmvvMcl6C zc?qrIOjTrvY*&be6`YTTutS*h6(PsXR+x^$e=8e*cr8HtlR+>lBl<#UH`&4~y=&5pR}%vrRuTfeTe>U%qh5PcU85w3?47Z%=MbTR7YQ z^IR49U$Aie!7bq^?X4O11p80s1wm@6Q9OOOqh9y{RGl(@Itr z8-(A(0uAuqW2k$mhN80R$?hHPqIpTk@NwLiU5&51hWkmtEChBr8nK+ZRaA<8b#nVD zSz8PM;?Lw$dY^d}1aB)-L(b;|dis|Fo`FR??vEs*7j*YFnsWO`ypyEu3J5SmpqT*L zweUWh-rsI4p^1kYPlAu|LQe`-R(E!^8ufO+Ia7qNLudB?AYN_{h>!$#UPghgeg65K zSeN#Z4Z`m0zY@QHdwTo$sJhuFPreA!$hT5F%Am;~70TA(N)qa_ZkXNsFO7>Zcx6Nw zO2G@%DZ-9u1|Vlj10^B#kN<$3Y{QJ_`@yR_pLhH^!D_rO2ON5S9#ih?--YUGKr))8 z`z4C$I=rN))Vv>Z;NJyn1;?Mi&i>i$^(L}{;YCJ|qKe*FYLEf)Rk_n&eq}(wvUF)b zp>DMA5bLcMwo>rsRLbZyE z^04fW9A0K{MBh7Iv#KKm?t`5Bn?b@{#s(C6!K&ka-NDgQPi|zs$5R=$OLhy4)sEcM z=hsckIL6(`gwo=q#=L&>TIX7#xi+EZS7;C2G-wos| zV+j>~jLNo|M&9whDe=-iEh1YDvzsrFnDOPOMA}xKG~M~13?6=gsy|5jhK|7X>TUBE zTk)-}j*QFAD0Pazr*NI9(e*gKwpjpK;G59qqT6q=JWP~$wf@Y{%1KPnC%;Y3UlN7H5k@@ zS*D0*LA)PMj!Imx*{`qud|u}wMvW&Cu8l25x`0EklW{t6Q#SgSv-`Rt(IC9?el%>L z)#_P`wNwW3%~(e5kD!;$s7k>Hjqw~cd^K9yXD_6aW5f%mY;t*iB;qxf4SE){KXvN@ z+=7x}u<@#+Fo9PvVZ968yd2H74cSp9A+J}>e=YVj!G)fWSXIYM9QJ8&5@0D3P`!Z} zLBFLX_tyP!x>V4@odiLYuxvErP?N__40|K9H#6}Rsgtme9*5>Vi2Jx*J`ba(+P8`a zFcRPY*8-$Ir=ROPTvvm`n?f;Wldo~}^*cP(=#A|W5eIFJ=Fw$$UU3oD?*WgI*l{g} zAe$IV0*onL^R&AxmyK(M1-A4vW{)l5G>o2if>byHSu=<6w&brsGmMXH>$55gZf>`3 z;D^M}L;%C=#mtE*Xq9Y!Ad*-4e1q#4Ta(zP92m&qUiR=XRLA)c&Te=hlMZ+c1sx;SG1XjS?JokAsfVQLNr2}iL!6?T?$gRtGfB1!7%2vU zlL3W_K-KsSc-SxqRzA5tmILvD_YaSUbfVsp=M)PcO-Ze+g6-13E7tCVfoB)sNiX!j z+jF)24D>UzyN3A&Z0Goh7|6`I{Wywc_TK>;S7H}5> z1DTm1;Hi;;sQT!K-RBWjRD=u@l5Xi)E#`HDe-@4v=wm)H%I51jBJd-JjE&0epN?0B zHkYm2UWP|Tve!4%dtDFF;jmQHFy5B56S{3JN-?vqtyhC}!o)&MyjEIl!I)i!U6<)1 zCAuH710siOSDFA!KoJ_>q$Rgc#(-%CxDY$}(B9n^V=kA7W;S!spTyXb|4w#O3BqCC zPNp<&BPT?>766LKK0Qi?r+A>t;7S33k!5j=(kmxX|Nio;QH3vvjs0>rTC7NHm?s@j zrq&!?G-(ph8BNOLgW|Gn4>=*Iab%~7p~CzEi6BOfV3$xz`v^zCCf=xiBVme48Sjg6 zu6!|4G3X0SWul1gQX#Mtm80~4tq0S^jxm4xLOH zU&KKW$JM81_cbZA20p~3pXEZz)cGfB0o7b-?KJ$$(ThfbA1Hu3k>4~!HU~{gM zG6Z-Hl6pwy7jrWotsDQHephKJHXL@ZJELKb5zk`fj&jDYnbZ7!<3`~6Zx{YjK$=(~ zY=fW$SwQqUoj@lW*xmzdj3cr4?t^$kAgYO-b&g^qSo_C%EI$C=IY(2NC&sd{wnUJ9 zyRkvlD)fGK?+;*0%-H=O#^Jo*!PR|t9Jb5((Eap zHDKJ{Sybc@XJ>sx?a2oIjdHLcaZ}evXCFNJlq<9VsCB*G9$enK42vW#1LZ#h?QrRS zB&w$QX}pGyWybvMmN6>&Chb{bH>I3q8RvhHvNq^RT`paqGBm%m{ z2F!z51t~^SX4Vu#_$JS03|LG=s}*vVl=0D4Jw(4NaY5zk9@EKm?|uYUrnm)MI$d&u zT;hbk56nI+NhY{C`U8a*1$f@UeMp4O+et}Jt)_1^SQnZBQk9wNRK8JEy#Efn5kOC*xXu{+|oXp=V zZ17RL%SNso|&$tQZs&}j~`>w>H~g5_g^F(JzYa3E0KHc^ajHqsp$6CRPP3+`g`}DzAo?3p8xNJFAF;@=g$J!}3Qm}eKc=9+guJX(;+8WjCnNcPC6 zx=~k6J)$!iKO;9ZRfNO_(W)hAB%!DNB*UGrT*GWW%JlJ5CM;HzO1*8oUJ!qBV)?MN zBuTi|@3mbwR8_{LCQlx8GM}rhubM{p$tQ{7OWg&~>)tQo&G8-tue-AIO}w1pPY^|l z4ZTNq`!e;@dASu-cP}K=)@V$$9>XC{AGtUueENQG1v__Jl@FsS@yP2=9~`Y*L}k8f zClgF0Y4+Bo6dw@D{a~Le$oV>L$+=|f-}>}KGY(n|vGI^Ig-UcxD8W+QUm$^mbr&3X z;-t5V@VkAse{dE>4c6cV-_e@>@)OoP^qZ~_&r&c_S^Uq3>TGHTKhj@w3a*3^eT@|SyM9VTKD#Z{G;kVUzaH?-;)55j7$7P@za&25?L%7o-?i!&1p^y?gO=WE-Kk>R*&6uRN&ZoB$Hgwzw15bmRIT4VUpnB z{@L#;c3x5`c|(0^-#???&8H~GDC0LQtMc81f7YDZ#kx`F($nHCtpJAO<_Jgn1r3Th zz|ankF?|bS*#=%m3$U^d*EVv5*pkP1vCwr{0l}?!c$%v{1C3m(17V{l^NV1+66}X0LtJN1JZ_lMSUi@8o+;VULtM>#-EYrtnGZF=By~(p6ddYbS|U$f)B? z&)k5SOUL+3`hqyzb9u)}$5EQ;leA&NuCy^->JbV#E^U~N*D2)_t1i#Ty45qji3n*A z?z&(rjBTcIH103m&|Y2-IaKOt<)zN1wOl(b=(cJ6PME){|nmu@%|AEFiM` znpgt6WBt1#^&1k0{*R`w0E)T`_oln0OJeDUC8bM{j-{kax&#D7y1ONm?(XhJq(MNW zLF7fGyYAtB-<@I5aU582|K~i~k!kbnn#0uD``D@#WKi(>! zUcAoSPpV*(PLI>o7fKL<7N-gbO@-tX{6e74F8rhmfB4!@Wz0Cu+?%Ap3X{q#pZ%GV2`0see`I@OTO_#M5j!D(#ctiIY z(GZ(83eXwjt2~U}^=nR{!1KZ?XCC z9!Y-jM;Z8W5=;1LDpOHhyKeG#f{$YUFjP?!e`w4~_x^jy=-b;bN+_Yud^f6%tMz;I zM2U(7m?{zyJ>F3-KSNz&MW!P6Ca+%49fDGtC#>`JmmWD*`jQ&jeZC;2Ee#k7=y;4^ ztz_Cdp#99cLD;vr;PNd8zGfaXD=}t%u;@q6sOabqz!&2nR9nc66Dm{^E05@!l*?+L zs5)=^0Z5@{PCvmFE~_OI`i;M?HNA0qV)ZAzS6DNB|y%znKot(Xo z`0d_{R*34fQ%kLJ6+Sy6B{j~Nw_(b6EC?t#AwJNrG$h{_&zSa=0}g*R0yzjuk5jRg5~fA^2D=Z{6dtyZ(Sh5eSJHJ$k1fIRnCRLvOl%9^CpmWa7BL$2s5 zTDtsM(pRFRv@K{@` z*^-KW9>&4_dOtus5{{N#TpT5D+6^jHm=nVdcaiEpILtm->W3X1*z;_rSdn>WYslB+ zgN)4R3xTewR4?b7segA!QzoIbd{WxVaT})Gq%>ToB5~$GJ%#QO>(?_yy@pQQhXBm$ zg-H`znr&-|Y62|qN+S*eM5j37MO5)4+J@lB(Mw_(y?P5e%@7I(X^%ZrTpV$X7v0}1 z0PUWa>G~enp{fsnm%ibyrh4TNC*LOeGgnVx|5?SN*9TYH%rv0h0}GV%dKdkRM0OdC zF-IRTxBx$5jC?qN^U{@zL3RSD#go?95fT%7!Rb`3`+GQg(WGm5;Q|0O|BjCySD!$6 z5!*3dAUo5Uy2fnzGPm+HB!pTOpaXiGh>7AJA3ubr9c};qjRMF!7o+gal!)y%<0@_t zC-%>?)yqH7x#xlSh;*xL6cd0@UU!!W2@F`bh!Dk~y^?p&nnqr|B&o;~$W0-L3P{in zYP<2jSpDEdD#2Ya3y#WQ7~dEs>aUs~_JrPn7nwf}SDi>Ktjn>20poT{@IkOeVG9XJ zwyqqS{E!AcwzktsbI?URpUzcwEe8GvYY`P z`=$^l=C6d1>~`iif%)6=(%Sqy{u%lSs4qnwN8t^$&Jd!{zCYToQ4;GkuFrPl$ z=Nz=(b3K02a6wGQk|Y=+e|kt^O4hOSw6&VhUHPKxK+5R8YI=nsCMYb1LX*=czOo5! zoceqk6#|EhzB#Ch-Fd?oH?@N12Qx(TVsu7x1H}{j+qt&W*LX36cpDM!CO*Q>9tu&A8w* zxgIWAZt+38z>OCLStL9U`l+c-ELlmQxgU>_^i>&KnRdi3%y>dXmnPVCZQZbqD2Cl>Uf8uzDBLZDoMQGHnP!> z69|CXF<=^Jq@wB}+h!)vV;JBzugrpC^VDMtT5Vu zLEqKwyFtgD;sT;=#Y|$kxFkkRD+6Zk2N6&cbncfG@_S_ca37TO=? zz65NFyt{dO!dYLEUYMj=>7@-Ra}hD1k|7mLV*az{A1Y5LDd;fzMw!Z5C6ylhHGv!* z@v342Kh2jQ|DdqK;YNJ>4i+DaG>%{r%0`KWt6)C@_w)YKA`~0^2=ofRFRvY3sHcT; zn^@^jq9I15TOOk#`Y)weA&=xCfH-HG$QM8`;8_tHA{~dN7Wf} z=2D1I5911ny&7tGHziv>p7V#oFm4=0@Vz6| zLs4@7Nu>>%jwxtY6Y+ACKjLRmmbp-9_wi3hZH& zUQ9@6(7bNYx}oppMtFD|6+ptkiw2Bv0uQC!pke$&&jUwXe7vlW1}T!4r%%+gJIVjy zDOs5_Jc}XJvyk|Ul|3)Z!^Z-IM6M{ zW=)_3`@P&`mF)AAPaltn<(!q z`(mX=N4s;YOTD=ahu1KehHsjjVkmVMbXJ%(@+$Q`Q;w?SO%(Y?U8snq908X3XW@f` zcKOW09g%9b6SATXLOE4+Kk6KGNuhO?s|Q6|*fw7kCyxP$^~Joh_TEN7^J~K*g^K+>DUB1vt2c%3l5+Ck&zGS4<0i;4Byfk_@kpYC$j4qypOWk4APuSUVOfDk}7E*&C#B28d!m zpqY)H9C?vWReEzJB!T8sEMCQJe=R0C0%C(a)Tmjn5fpa7yUONFdLg3nLMSfSp{Isp zRdQhVzkK;BCFVJTk8k@3ds88bPX|5awYT)0kAJ~IG=T5%d-DUiAp>X>G zA!y?zVkZd%$^eLdT0SJS(njHmY?gh%oJ>-OKZVF@QO6_Jrh_QK4mMY-$G*|d2`1S& z;u*O~%-O7itdaB7p!V+lkYBA|Jt^w*(e7i)nM>ag6xwI9CcH}cvjOa~tl`(J^>{Ji zQoTv(I@8+NIOFar8F|0!#u?HwzJFQlSdAN8!wN36ZP!b!aNs9litOFdYv!n>2Y_fP zt4NA{M5kBw6Ap+FHp@AbqgBK+_3`%-A&~mYqLZA3)=Ke3&$U`eNO@cql;}Bq2ARNx zia`_Bn6WAZn7Vm9n!>1Weo>0(VAMxGPJsj#H)vnrZj`zb-*gV_jq+-DI=#A`Xc zNN?s_vlv{7muD*QwGWEb_|~!UCkOaQQ%;`6h_x+uSdp)g^9K(*u!7q(txRhZ0sVYt z^}vUmsxDyMec7;nG~@IE;L^|acK%OCPhyY1ogY!2X|8VH8-lrIEYqB`jt|aY zh0<8$zw~Bw%X=$cgyTBfI|BUIhoH0-*Z(?L61M9dXIwLKz8#{pH79N~2f%W$NV-JxAd++Q7!DA{tOM&H7T7DB zDXLaJ7=f(1n#6M+PxN1dBb8|*UMb8ZVuQiZ`S5UuXq+r*)ukDfq)y)!j&Yqz%bNez=fv{( z^cWdXto@F$P!obRR4!jtUA})UOq%NjA^|F zJ)xVa|NEMr?5)a+qh!IVdObuo1QOkRW(-R*;WJx`K`RuNW3H0V9Vz_ZJl>&+!70D3;Ej97QR@s$&DNAOlT4pUrkir2#~7WHtS-gh zBXV%53abITzt-^7J+MPc+}u=<({ZL@>>>svokKBs$sLi9vG0x&BwMKcNPG<6n&9-B!628(n? zqQ70nBppy9Yq{Jox^a*34|Q0A9^=mWOC(LUrKzlW>H$=vt9~pGi7#RvixzXNKv0K= zQBMaI*KK)uda-TU_^$M+sG0$%OnV)nib0Lww7bmDJ!H>2th;>a)@8UPgi+qMmGU<> z9B`S8H`(CGKMP}t0#SY%b)-WMVh3nWEVP2> zQZi}{W0@NLWRFE08W0{PDisqH7(Vqe;$+B0)k?*Edk*}|Q z{|=*`kBbf)(b@k#I3z(bX&1Y#U{fbF&i_vFm1xyaGe@hFi~{A41Ad(f^+NQM`>O{h z+~5alD~%|J{V^|umAV6xJ+4CHId-v_ktHXo22?+bAvcGQp`-j7C)AYzqEu%pQ zQA8NA1v%*g9HCW3yVtN!nF;~3&be*J&`pn)1(o7-!T>N56qpB_ZLKP3l3(q}h7 zh5MyPXe2!TIXybBjQm;ld_!I3t-rbPk=mTNn`XRz$-%wD2m}W8LsbOw3O zBK}d{R)yV9YXPdv^a9jwO|pzPhmu88#M=;Ym<`nm5GNA?K^MV7>&fdm4?^!r!()Cv zI+ib=nDMOVLtd-~XO-E|jVAjO>X4S1V^5Xj-^b(yBCTGDM*XN~htJw0#BSNFx0!m4 zy*+2ky7-l~oDL%asJnQQZN6oi@>+jVWuMVjf!hdOGuhV2v8?s}Z+1^kc-;yAvc?iy zP9Uc&H9-nq5eDG@Ka|SwGj)zR>0~Pwd-LB zM=%Q=;#|#J-48&J8%-D!g!TJ=qx|c8HoDH2M6d(lvIwNU_ePfVHJWrW2w`FeO+yyp zv&CV!YC+r~%*g`Sg(G+0^q(GUc?^r{^^Qdl}5oIv8)B{yvN6CB4{Fs}*5;s!Dh5rgv3?P9652jj&dqhdYujAoSo+vliX+*=68 zFD&lJ%NJUapz}IPT2(Fj+)30t@l2coTNkaLD8oI`uxC)0GfWldlsPV;)}tj~eLnp= zRE#LvecpqL7_rGdGftFAm4W2X*+uPvfT?~lvj`Zalb%l#$&yuoB}Q$54olid3tBZB z?vm2}M?Y8|Dh^5QdtE!@X_=uj(b7ze^)tB0_P5>Dkp*ZxA6rkPKX+UN?0GpP#z|pet`Nsi~07VoGY$3S;0r>&z=SZHBd*Nq|Uz7T3 z_XDdUScDc!oCGL;uqBd&?O6C59EPlqKpY-e{G&Kb1?6G#T{ z9GX_tiIB7R8uoP}!2L`e230{MXZQ1HGc@JR;I=l3L>a($O@iqZ-YzV0>1Qvhmp%@Id1RIthoY)?~1+Q4d@2c*ks^f%)8|`<}p6y28Tv zi>tU*npI&FC7!=KnfkY>p;rdmA3BVb_5V``zGXKu$vLRIh*6*}pgF*g$;*qh0ku7D z*NugGP!uCMYe|UD9n=qRCYBA?bF{`qgA;QpZv5DiP^#QEGhM+g6A`ZQm1CYil^Ua7 zm2~IrDbW^0et;naGk#Hd4#_(W{m>DRc9tSTU`1f_RDAkz=sDERr8m2md`PYGidKml z!NyHS6C1nOmS+5Yqwh=Lr2VRjnptf@6sG-)2P>&^6zN*kyxEKy{l#E2-h8e;nhb_C zI9=5V$to@kDjx?HfYUG%2?Eogg|DnFA8b24XWy|VtbVA}Z%Bl&%q5G>#X{RWz)p1CumgTPowD>SMR-Lo2&hA4ecYDO6En&c}^V zLqoLs2p&ywxPV%RnC(5z=NfzSLbumm8pnq2`uFVMB03Y`s-MceW_j-~m_=O`xlQUy zIRLT&lA86t=k1dljs)f>od}rsag<9(FsOEIq`=3G7o4R}@@LNu3rZB*Mg_e!j~$vL zd5wJ9|5#SIwa+$%$z0ADHO$Urt6i}mjTeT6yW8)4v?HBtbGG>kXx5=$j&G9oPMPM?_X z+mOswedh*S_~R}z3q*=2c~m-Cv4#660xM`ukb)#D<#(8W+5-W4v7(jchHOx^6c@Yf zi!;Z|^K}AjVBp?W9*{Iz00&)rxzr*QsS=H$a5Surav$Yq(JKP16=HHuD%HD(xTW0s zkOw~|YPxDAA6WyE5%BemTiyI2-F0%E?5zZh5OJ6jAQ($C zoH*X$+XH3j{@&aIVb1VLjO76LMmtVbEfJY*QdDr+jEjCHIay}k1*-iI9JWw-DN}n*@d!~1X)ugzIwdB|AOHrAiU(z?D8dSIw?#lAZz6L8;)dN}BYgs6lLT!8O! zywfoWQ)hT6c`nD8opHr{oF<{cn+bBIY5fVnybq9=!HzR#ZtR$Ivgn|tHz=8t*GS3N03xM+^p|q@I5=RNS$+{}(S$)}%|b-l7=D6Cwn<4c zw~rL3GV_HYn$(jj3L$n|k2LV|?kn?XcKa}V#Cz!^ND3^}P`Mc^Poio`V8p{{xTP}0 zI@#FmnCYXE7b?%GyitKU!}EJ%qN=4 zXcB2Rfr}qtE9i)`S9fAF9y%~|Ih|?SmZ8CZD0bj|ZqN)~xN#p{t2QhU;0w1f?g0X> zMlS?ZK{}Td8A7>QhuQt(eFT3zgEZ`sW_(9mHvj_i{YyW7NMlxQoe5#o$@Hp;&L^zC zgQ_eUya~=9m9~~lhGR{*fd*}t2wlaMkS};(uU`Q<3rJZgSsgxhVa6fPrc%}nA+T+K zVb8sxp*~4gY?~wiq12Q z)mr626pAG;JY1sz2mJMKoQd{gOVG!NKFJXD z?4yP-7U>=d$;3UIcI-s=b5Of_Qo>Hay?Q7c!p=l8@4;bu;;YqrG$j;ya{spt?j*b- zAwh*)B?*L{90QGYC*bHsV_t5wVyDPOPK0R&%NNMRjJ$}#>FzXVOf!Vi%;ypV%8bw> zvSE%dL@J_ShW39I)1X-e z#}{ua2F+}O)T0P@uDJcNWifzhKJV@71c9eB^GPZt<8!<{Wt#Md#wqHWHgJOg82Cp6aJA z&|Al65E2pFfRu&2eGxc=ocBMN-btMGMAu9Rm%Q+jJ)C*+gYLUHdJn}Y8@{+Xw{L6s z@;&p_JPbKL6mkqlY_tfJehL3PL6nq-QJ-@Y(pqdX(H}8gWab>cTq{L$GYpK&4l(fb zwyV}xU({so`#$c3EXa9I=liS z_y+QgCx{8JD6h>UB>P6LDr5MLt4gTEP!}v~7c^b4$UQ2OK%XIfj4!)<&x9r&Z$7Zg{87rNqIl#VcSw^8G27 zS0I4NOp-bazanh=7w*mjNl{DI7HYW}uUFR4`!`FKm1zk`j5rIKIsV_`xCy&tAZ{z; zEc3Q?c&jc)RMC=*eL3)rB5$#6KD$!le}hbIwwdNFN}>2sOk}QlzN9GXgcm#v!4HCQ ze3_~x{dr?5SU5@$viO%EA(nCkUy<<_#}wvy$&h2>9*{886^EXQsu5Bs63}DmGGiD# zxS>4)QxuqCst-tGaX`5^J`;M{cu~NsGk)`=L7-$HviONn==-}DeKLoh9n(;%JBRpBX;M0t%Ai=XJ6!cM^t%TP)WeuV$$|a# z8e}noukd%43K+zZF}O+HVX4e)-wFk>5KBtlp=E@%uiD8hVjFgTRHlo{=a`(#E~vH# z(QcdP=VU%z*?Mn*XXLM@UH&imV1iGRQ+dq1&(fPtp9`Y2apdY6=VPE_jh+g^ld%Ad z+S3V1PcN>-J={nhv>K3HfG*nvrF(Dza}9i*J*~MD!Nqx-?StNy8kwR!EA<>8yFG_f zB5&>=9uQd$rg%0i=Sq;~T65Y5VBkNxtk!uc%|R0(=%=D2)*(7s+*;uSv`J983YCi9 z2TnxExi9(bA>AKD$z;+X&!Ry9Bq-0x_NejXI2FLdv=aA(Gh-QtadCybJ%Nr~cY5rf!On>~KwF%Q4xpuu1!+o0xx6$+OAJwK6oz(O$B<2oD7t7z6x_Lu(|~6n zt6Umy`saG1avDHA34$odITJDn zOZB!@4PVD94nZ{_r(>1<LFX9`|C>5$=|d_m6J>9)ie|`<;ye=E~2X0 z1YAJA7I5;Fm*=e(lP+HPV9TY+$rN+z*ipVd$1)wjrluuFdHyF902A7@fOD7eK)nNx z13W2(&hWdpf=MkJP{%Z@1P0_VCvJ4z$K{N&Q4E2skzU-%t6$u{nTJAvn+L^cX|{B1 z7=0g_C^(}!bJ3PmalsVWY&Bpn0P>${8vj%uo zF#=0EiLh@^D06X0nNXblViWLWx|0jM$yH76oP}|;xEI19C?*--`)kQPtaLvm}aTk+- z7j23zH&<&leKF>au~J{BUz5j*p|gq6y=TT_5@FNA95wAAkb7W=R85P85U36)n(J;g z<~-2>&ki#d!8mT0vjz(`OvbdFSByl$ubSBp&coEq3_chhe(Tm zDG#i+5>CD224*bm98Lm<^pHK?k2Eg21=VwQtWnJo%aGt#*MMnD5362EiOkZ!J}NjM z2NTdJ@xPxF^~%bbH}8O9@!F5_%1ocQdFAlk^wW?pCjso|Ax>3X1;OXfy6Q0GL(kWi zt3c=t{8sde1U8whIx6#}vS`5pekfnX=@%K^{jmeRAAF!B8MBKJ3&2BIW^sc5)35nie%ELBHA7%8_5>K^8^c(f#!ay=u-(X2zMI z;zvi?I164(OTv+?L7p|=3vyf_xPWU}?p=Kl1L6=+h!ap14JN(kCY_$U_$PelwN5FJ zxpDqi`48kq2RIJ5kDeYu>qU)U=|yPW7+}>vFnvTbkIFQRr~($D zS`xkQ{st`z0$A%HL1sk)5a;}iGH==d9HKvNYJ|W#7(f zuLDypR76$-$dS;11S)z+Q=Lf&iJC_8)>oY5c5Q(*q}=wHEHZEO{dG1|Gj=E0&MetD zZ|K+_3#t|j#)GtRO^@?-F9HJ78hVE!C1S`TKdrMLue(zD|>eynKQb3OWIwZ}!7v0rjOYs%aV2{XYK!tz3F(U>U ze-GLcy#uD*?J@~UndE4NdP*M&o4zz3_U^O=3dL=H41}0OTm{3`Rj_VeT7F`FqSn4K z;NE8=imLWfZ?d1vA$ed=@2@@cohSDo_iA~omlm9otdK69E~2uCSAwoQ7u0X_$HR!^ zV8P(B?zIMz(OiNxnO#$PqZAs~k(LCfqu=P(>=CeT;1zSm&}p-Vwf3aum(S0@aZSEy z$tM!#p#7vZgwdP8b1Ct#_+9l$GrlK%Q%ls-?=(l?V4^{%!-yiDDavBy4Ia|>dUlBI zH(!Z>^8E-K?0BIuy|mBFeF>H!P{ldIvt0z?H-m~8BUM{|*8%KPn;*45G^KM{Zbw*j z=zZUt?Nm)ivr{=1!)=xmXPB|&6iv(T>-RXU`2lS#XY*RkWPC9ix81u({RU2xqp+Np z>hA9DK3`H)Y`nRMgnP#{&q2gpeh*O#Q=|dYiFlycF7;y+jQlUXZHKPcjWMp1LqPK@Y2WJl=*W`$)8hE zKZ`hO^2v?VAG9l2kh2573W9O^@%eAE5gxyb3X{!v|0mE1b&>g>czk@~yNt%Pb_g~3Iw86MBkgZlY({Lx z^5XtF^b5JZl#%HKG&KC}vjgr}Qu9HNIG$rCPnZw+{uGN_7gvz{R(r|m^unUisV~Qr zhO%16MkqOJf=WN;H&U5Q2JPlNW`f{d?-aZbRH)iHii`BFE>kxG;Q}m0-?7o6doA94 zb@A#}3ujeX+&t!|AJ0#7<% z*OYdZv}>mr6!a#&pBu|IeFytZx%7|b@@)lH8OjkG{;bi{FZUf*EP~AWxy9zQ0c9>b zbdhrS|22`HLKDRfwZG&^zGLp<<{-6b)0oM}7zlb`tD3lfy1kC30C^hh<7xvl^`J-( z_%X7J$~4QgmwdXco40E_nYnYgHgxRuss!P*60L>DdCM~m9R(wjL)Kid(kFk9o>IPA zf1N!8_a9IOy>B;D8F|r9E6d~A!QuXu)C@ell97;NK_a*i4Oz$6m-HcPXCDk#zZY(m zox#)zL&0w&sm7M`^t0))5cHa{7hPNHx9F$#=NI-H6VC{(dl3Pm-@of&%=6T)rt&)< z7;AboiZl}|irEV=WA;9ByCXjMsWIZiV2LD#BgJX71}~weCuszESn5%)zh zuzi9yGQtF0QGakzgoH!~OVnQSd{sU9yUb^48#dz-as*0TCv-4@J+uHT0}#&p^i3R? zf-NoJfC<@NYVGL>w_1KiO@M4iqhcX~#rxAhRv0U&Y@W)I7}?!r09%`?YTU`=z{kd) zj$giHZyY_w_Y5rG2+u-*C8&Sqgh#u32Cj6n)}VrR6BTio6s(P~C0FEw%z|X=Xk_*| zfNUkH2+r?)EtqrK2HZSX&kai8k<0?rtAh&Y5rxx@_uMhU!Z#Ci3(D^eHVUSaFL%gd z!FdK=j(3M5O*jcgN6P4Xk$F&13mQ-#O#><_*bERSt%bxzqzUB}`2I@;$?*W_0v}#i zmsI2zBAHc;)y_^XE?yBAcA*aspFoF?0-I!&&H#Xhnhc(GPkuMRhXT5JNpV0v^vUix zi9VDkYXTg4d~c3)E3}s>!j6N1#Wr_wRVLJ#0uJK=`!zk_7lEP-yC7-e=WTWt7`~Vzay>I1z9$p1=o*k)TM`2E*s+Untqmm5X z#C*$d3J+NK42w;SYB0O?31mvW2)~diQxF+3_9sIUuaXU!3xB=HIHkjuquuDtO)V{F z6`qV?;T0Vs#P|UQo;DQ!pF$}lp^a}D6u%uYQJ1)A7u~AH+CcwO7)o6TH~g%3Fh>7E z176WCCuaL=xWcIDO)ZV|9e<2?aqOV#PNr0v>f-XUC7)MtF=tvt$|YL2!tYp?kD@3u ziviQK^y`~-CZl@71Rz&wHu{wuM6}zv7!H zn~G6zKb(=45p!@)Cq)KKyS^QqYLE9+iIDAGPffXu{%jDS- z?6~Y^CGd4pz2=7(Y%Pu6YgDwyxCYJGu!c6y7P|mwK8z8`U)M}n z#0y@`YGRjcw{mm5$htsLd}G)t-!P_cPVu+1>fDzRork|cv_MOzO8#rN;g_o9iA-)Th7BwrhxQXTc8{G`6+#oTlHM3Xc-+g|`S@#+Zq(?W~ z$_9!Su;u_wDCF^-q$c{?;L}A*5n0MmmXZglr(}2i_?}G$J^0~aWUp=Y+iwyco1??S zlho`uP-g>Gxn>RFyq3btpDC5u{?)5m5)A5XbQdmss21#qCaks0ZNL)%I3Msd;^15| zXzR~G9YC$;oqo-tuX+pU6dc};)NUS15YCxO+#_>XNjz|@6Cf-(wM)ezb5%x+Qi#Dg zy9G7Ep099~P9@Xg4)P}zkyg9JbSf4Stn|GMUY*KTalX5bo=5#{F}usMJTJPO?( zFQ}lffr<1Qa$ISm(of39$K{QsDv5ST_rTDv;H-S&J=t+Y6stq6eR$H&c=kMRE2 z125s!S!DdV6E0(csRHH5&oBJVkmNgO+@rNF8Ssmua$uNz0s2T$?DKO^YH@vkbEeBa z4A7}E3=8hIpqg^>ejsRSkXrEI$(ni|dz`9k^6bbrzqWqX^mVFOV09Sj^MY<6I#Phr zh$)s_UnVCL9mKLoa9p2Pv_k#pR@N)IzxKw6HYj z__PB7Mi~5`D<6=uxTvdJ%P#T@tj^mJE5yE2ul@Z4a9@fieDn4QU4QxqT7b@`z~3Z| z1#7EFzl#tkqFQ>1bqtQE^V?5tK3|nf1+;w+ySl{M`ad{qNnr%|CPBbiUbq>(XdcJ( z;;%=k3(bZZPJgr*3e}LhDy$l$=SKnO>*}P8MnZcHE9>Sbs8RD%L=}OzsBK67`;XB} z0=sHq^XwCaBig&W)aAv}i|&AB<~JD=X{JxKB*!Jb4a5xvqfwPDGUB2uB_ONVC%hsQ z!i(+VOCfc{s6y84si?|z`AmO}h6m)nEw1MjDVH+LzS$8zn}>x z+8G`jnBD%&M}uRI^rR8JYo{e!pgS%sjr!HN97kVsV-7d(^^Zn{@A<9j&#w}VDu`G} zSpmp;bz*n!-1Ami{qC)7hWjctN5p=6mh7xrJ`NJL(oB>QM!d&3wk4u*Swg0C)nXT; zpx+W$FHO(1pM2X2uWGeITUPQG4+d5eT~Zj)31Oj=!ap*r>9M4N#x-n8zHOUy%~Mcsunv$!f`= zMWG(+?NoB^jX_o1%@>*`qzDzO-XcvNZgQL%2Yz&3N)!j+nUT_JSo+p{|r_E!nBCWCL<|Ki!`Msmpw$($}lfxf0JnB ziHjf7|7bO*5zUn*0s|1R$t#j8U6%F-p3<2@GWmnJA*BK>coEudwgzB#k<&QV;;Pd8 z?}D8F;|(okfB*&Qso9x1sDo z9xUqbWjYnJrd(mKj212D5)Rt+I6o8AS!Nb%`;3h%kujL2S15?!a#njO0j4T|BAV-VgUTd;r7N1#~s|_;d9Ud?qmB&zZs>neRP23%>$`2RG2^0>#(K3CrZ< zt;5iZ@=E(8j^_-jvD4+z`_<9hf8jsXv;8>$z|Y^onl)4QZ`QTrm3-Lk0g-1P-_~ zfOMR*CkNO{EneH5rXiiPUl? z>Lb6;?`7$i^euB-f?o2$J6mQEhLCrLn15UZ1gYF;t+!}pz8I2Eb9*r2BIR!fzI+Vq z@K)%{1PmK@(ngc@Sf(a5bJ6t)c6x>Twk~lJ@WWr zFvBevU;{C}pTgf&(ecE0!Y#eXDWht(0}R?zUp||l1s48Ja&!KJk_1g-mR2b+gTb^x z=P7v@d}ykALMp38QLzmJA_g2wX`9W3Gr!@vn%HB0IB^oLQttm! zNY+$fb09h@;Vim`n+J23Z`15Eh=53{L7rt#W%`)<;TJ-}>R3OPqkdt1d3lsja@&x1c%#LGyGjNt#8l-ZB-#3G^H@-xAR2_=}_o-HKit0pel+*31s(>$Z zl(dS3p+{*u44R4En8}ghYgqlqoi%|tQx)cHCOJ@(&nmmi!Q5;0s?*+hZpLQb%EzzE zSaCh0+WwE{$Jq{s_7FKu9jsFGUPw`jPEEVhv1frowNuGl83dCwtS`&JcR%{9wsBxF6M!gs0BQq#Z7SV{W_03}**A@$|19Yrq5R+*%KkH(u>W>C2jq{_=d zFh6Y+9VIn2XcM3Vc_AYfgNl%7G?2>Su+qO5J*8K*_$-Kt4&OusR`nCWsDn@qiKm;X z-3n(D08SX1tmn@C;~u9Qw(eOUFb+38E4DffOQZsxcv3B(3EuhHwO}{U%yEA_fD2TK z$f8rgJNGPWJ_+d8x+fMToUVyg;AkPhX?=MKJ7A4l-t~o zy*xrSH)W%}`@Y+=mxpH_;3xKlQIQUH5~67NN0qr=ngtauzU5*XPF8?olZapCh3zRb zqv*q3=yk3gEA-!I!e8o}U69Hzq!^01cvD8T5}~Kp^Xn`>^Jk&E*+V1$J`~s1RP!*r z#2ifE2vaj-ARw+NsgXDy6)HMtVns%?6D*Km`|$*4ML+nFbBfodU3KifGJ!)&E$6d3 zPjo#JDP&slB`Iipy=n)fsu)!z__Zg!>0A6c(|xZ|028CcYGjLaxurVB*M zpA7{y6VoPI7)&t!u*az7RUc2odw0q{VB8YS9Hai;-Y`|C^|$~&X5Iu`Zx%(>iCj7` zy?wh%_CUIrx%uip=m9Jdo1kWJ@4NWZ&zJru10`NDVHHm)MYc5t6+aeNn!rj;q%yZ` zUT4aH9q+*VHQ!u6Vw+Gg6IAHbX=>E2Ihg5I=yB@0{9+w0K<`yZ5_A;Vogl_^l4Ytr zcdG;0lIldaO{HSmM98j$0F_g!j8^b#j|&!x#6O1DIj`IE?sI*Wp^cp!qL-v>W+Omu z_!|J5$PVMO1;(%SiS?=?99aT-;jUR3Qty>F$>yP{x+P-G#p#S5lbA8elq1~8)?==a z0zO58I2GDPjmbskc)_UG7qrK=Rn~8b0lTandr#8~a-{l$^|yqJ#a}J>k;@xa z1#Rgtvj7klBXyW&Wzl3{-msRt;B?kZOU{cdKD_Bydr-j!jw&d*igpD|kx!jaE{rXT z?z5pro}0CP)R-mfP4*pPxeFG;%P48VdK$?0G1FRHSl)jcGygP*2?gqIem?#FO?+@c z4*Zf`elOFk%y=_^8{xSJXDIspydA92HVgm?0H4U6ao7;-xxwZXH=@A;IRVsLx4%)O z@KQjsg=Lsi%1iObAfKv9_PKsv@z4-fGv+?x8cj@H5VGi%Tv-&g^)JiumUh4HA{^T@x}^(h=^&q0QKe2YYvT#@;f z^V6lXE0}~qxkk9wO0$c*dyK@xzS=VoomuSVMML~jvU?uv9hEvt=RTieM(F3u`Hfdf za+yn8pY7QIy%rP{OtND04K6srm5=U4F557c6ZCChQEYEbHD_Hl#BNTaKw`+bC-+sBW-?XA6FGIIU+ku4({6hVk&Y~4ifk;V@5Zdhk9 z){B1bdD_~2&dk2>3~o5nauA^SPV)Xa{1Zw!794-js&`7vv{Ju;8YrrO(V>+6POn-A zps4YSNZo^X%8W1cGx6o{3F5{zThVAl=gl!?!o3*hhM(c&RhHZ zvw1D9FwNUnFP40ja?3NdwXcrpGH|Bv-(>>gGrr*5@OapRB=C_dhh9cQn?G`^Rs4k7Ok~N@cHZn~=SC9w8ywgj9Bj_+7r|{LXp)>Twk3{#>7Hyx*_)!tWu!717U)1HB<7 zknHxB88>!Q;;j~V__h#fIx7makB?3BzePEjBE@db_|oMeLay}EEOc*aOmR;MMVd_H z!*GOnpzvxPX%N*`z=%N_F8=kZSEd*DsQUN5(OsaWnq-C0OLPDE<~;o^K!PsRGOO6I z(s0g4++ls1|0M(FUN~u7K|K=Wg=~#E(cE08o>_LS^ZA&S>4l=oVS2=P<YSOZO%QjQvFrEx8MjQDZw`%7%L1ksS>YG_%d1h3?U6SE>go1n=aqW>!0G`m>H z6$YejDf0X~1_mruF@Im(v~)3)tlA7Ht=iOOXgh5;ZNTpRw1T5QuEHrB6^fJYI+z;9 zSQ{0HQWT6deS-U6#c0D@1j}vlTBX4?fqOfN_OlINd4BHh77jg57_hsAGJ#Kvkm|pR zX=g}Wzjo)-8)<6y8e@JdWn=3We5+L|IlByggU5`*`(kj;U7M}pR_BUqcuf1C^l8() zQeyQ(K<2YMj|vG`eRP`r>~n;JVcS1PIa1K)Db(X5jwKuC2Rlpanq=<65d-H-of^yP zlzl%guhcIevKi$CP^i2)*Y4GYZaGpNig$qAV^X$joeuvc3a6rsUc=P%IH-SJ)Mva{ zqyhX}cg6|KEi6WM@6%exF{l6FLBIqImh6jzQ57LG&0F>Ynm0>J**A{Ii0-Eq{X7Ze z9`&x6xxK>5>*3*HQaI5ycPngW^H8i^#{9)v*4A#(mvltJ#JJW9Q!Z$RAf5|ue*D~l5_v$%3jD@i@_j$OJhxhb z<*-ufb>^AG|OJPyPZMWQ28@f}19zTYS6CDkH zc!hGc_2(1*8r>XAgTQNmtyfi5)%7m7S-NCAC4AdHJg_iq!#2#YHF4kZIp`{(w}asd zc9Pc;q0p*CeGpx0Wpy`KgvuVL%o^sKOV+@c87ztC^ z)?0~16~qWJ=B_Sr75P{kdP&e@Yt<&7&*0w{-2T}@9L`^~7niRv<;!xzCXlcv}Fv8q7Gpi zqV4f2eNM2<$WhB0yduXyUku}|>ZDn!z%AB6#wGi{N?!IAxY#iHGvtj;6kkvg5r-5^ zlGn2~Wt&6GS-uqdy@rG9JpPio>4B99$;1xlXA>FRqQ6dNly%%MOt3T0X_ZpcXy3by zMwR@STyoxus;IEnki#S6r@x^uL>-?SM60Ajp+s*Uyrj~N<6775kjD0)T4WibZdv3i z4Wm)0$tjO)Hpyo)_joupK?&ji=jW?FX1uRT?UpLpIwb`^3{%<28#5EMKefLW{f5Vx z69Tp!SX~N_vL6n(MR5k7VZBP|Ir+{=X8~t9ktKEb@Yo2weoQ}+0iEN7<|L`^+ZC=-_^b@U+^B)wvytp}5zU9VMS^j4StkNMJ zU867f_O{p9ueU1Aqfh`A_>l1eC=mt_TYY?V_v{vhO#%GsMm59CDn}YZN;PK+ zp!&(4F)n|J6gS)vj{Fy>=*^L2ult3yHx{;SU#1-=&=T^Y3&)Mvhtn}0rF~o6b7|1QbQ_Gali0&x zP_oSXZU|7)0{(EPSNamB};6qVL4D{McoVvqc%v28^aQ8IwT z-hIeDsuyVK+tKmGH!($bS)G}LLG2?M!xnyqP>oZzG0UmTh6HbJMkYws-K|xrF0C=+Sl!7y`u1|K=KHH)_cUMA$rE-i)$U$Hr6d-$ zm6oJ$<^lts92=o7$JON#$!lR@#GxRm$+c19uf(lu=@wvLYUW%&x!>FV`{28YndDI=|jDO0}`?BWU1UZf}YZO*m{+AYjbI2t=j#RJQ>Mx zRe==UYyZ^t;RBK+mu@S&#HsaHl0ZofGv6zBeNtt-$pUL9Lq@H;_9kIM!^olx2MEg! zEwHX%=y}fr$>SPqcFsH|yz2-Wr5m6)1w9P8a!lk{VB(u{?N#)2@6Xu((u^Ns-Zko? z_I-|#a{Lsr9B^q=s+xht*~Y%;)iU@(yt5S{)iySy;I@^HxN(R;xd5 z(>(f!mh48$A+qCQKI}^uosqzwQDY-;`e7Q?hP&HF2fBHErS8Q=`s_+d6mP>Z{ByW- z{U7ZdW4jJ!RjSHSLk_k4jAHvMW}HJ4t9843Uv^|G@jzZaW zUg}7UEC=xNLE~Rxm|@%GX4dn=X@jAw5pOEr$<%57-pxkD5{ambc7)AVv75vv-?y0# zu^>!_%n&Fob)0)uN3e#0zG;?m#y9^RC*^&7vtPb{md`NNtvtT0hiv@fSa3IzFNKXK z8iGMOxXU{C>+9K7e{Ku8vrnpoN|a=NfGZGT)TlC@f1@|_TPFXrQag) zTfgWi=HK_rXKn-2jMi_r*O!(%>ppEREhM3733{fpC^eWy?&2IoIcJwB0*M7L9%B-^ zFqn||UujJ^lhJHn9Fd=#JQ+HC<49`Gv=ktblwi}=^Wy7g7?&T`4_uRnKnMjTnGjaL zr(9x_ zJ}hUh@v%0ih(WK~&Q4$paSAvlY-vIB|)G&1(l3br0qfWI4BZWDPI@swj zU+sSCGBTdFdkW1QJB|9EDPi7fpbG5+ihh}HB8r@u(o+@z{`iyaDMZ?`S)4(;qX9b7 z-eg?}H?CR*i~jk!9V^kL_E|A=m&!;f`VfXJFOKEkXB3O12A}dq|K%&0e3FW@JJ0|^ z%q%S2EoI$8QDCLN<9K12y{9afY1jQ+wSJ|$iFwp!YxR+0L@jldaOUJ6dj{)+&BC3) zcTR+A*}ap~-t7c&e$%`W6+>>Cc(-cMYA){^O7^c+`++;Fjyoiq_X|Eoc4A;}&e%f= z1rZ;QO@XQR#-z&JqXfw8Bq6>V{T!opWV(u631eBD%>^vjg=l6z+e`<;xoD+ zFSC`TDV%f78-f$s?csBBXGU2U7sOsW-4>>nvM&wswt}q0!dH{U?aZ^)Xi=PQf}^VsT;~Tkl(VzhTNZ zCKym#%l(?2>efL)irbyl_4{&#QAbQw{&8*G_dzEDGyMVnKHCj1-JAJTUfmX6&G!R&@J?3IIJBqOPsvg^q&i9l49L(o$0=7>LIvNiPGl;?HDZM;lHXK)nGhX49Z9m zJ)!KeNnck?ra}LGHfjV!&^qotr0V6THi}j^(47sIj_E z-=4%s7_j^(F|a*s>>xX^Hcf}5N=(qgTr2(-+`&$I7e1^gueW1)E;LEnT6GT%f58NQZycoeKI3f!2#jq`l ze#1})2ta@nQnMZ`@rMRY$}ZE~>0>G!yJl3cF>7ztX{5`GGiK^pPnO~KEw8*amo}>H zp~TO2Fq=FC-3Lu#NyP)o%mj$S_Ir@IkEhZXjRgVyw*CW&(= zQP@JIC)&lv?rVUAJjb@Uj(k*$Pw(=s7=F0e#a_qSd^7wO3or|i%Kx4JjwQL>Bgi9b zv)7B8tz}rx%x>jQ!|o_dvnOR$Fh)E7eFHm=FkKLvIy+pFOI_0_g+)w5fhWC<8}!Yb zq&Qym23*eQ%XjU5hFp%nvbp4uxkN>4?;}SKb{UkXTJm>%BWnY5GM&>()XCW6Ha>83 zsoMvHi4LchU>&w2l<-`i&=c7@B<wS`~P^6%hC!`hAVP;Bz~ML1$T zls&2}^pM9ubE9KC#pcky|NGuh}JUf%U9 z(8PSZolYewqJu$VqgD(Uuu;s}y`P!)qs6h&6k;IZjA7ki z$wa6i^qS}MjxQnhQ`2U?7j<(nhDDL)Rs`e8TY66{UVM1b)C3D@@DzTwop4s)FvcWX z70oi&J0Lw{Z6d6J4<8Ws_w0||H&dw+4+*yec;G=LL3eaK6fVIP$#lS*_Zlr2(zO?J zNvAOj?1=6vt$DHb6?uRTz7c5Bq;EFlCfU764w=E1qs}v|giDgZ05vc;R0gSOd8Q%R z3Xn8p-#ZrE!L}B6P`hfdDXCBMsYj3xA2wpOro15Ay8&+XXp&AwH8Pk2=*(yOmjKYd ze6)^P>319Knm|83-kG`fbVA14r?Q#-KMNA@!$PC60;pu*fMz+Y0RQySqepPD=}!%vOTayNLGz3e)z2a$~H*$52i#exGzIWNlC9-%%zI|nsWi}QU583QDd3b^{-HBnIWkbN zZ_g}qUrCE=gmG`e@mh-qJm%-~ug$hlamU$YN8+V-NJDEBi){hM;u-lkTxjf*vmSdp zL^}sFDCOLYdxvxsUMeQ)IVQsDMGW}{HK-FR4K}7ah<%S2Gk=C4`(;#VXm-GkHe^HC zwI&=Tqg|qtr&1OYrNyMBTa7DQ^;6hjjd6dFttHfm>w&2L9UuBf28NszV$TiB4LW{| zb&pg}k8qDd4oA-W!FPgkytC=3zD?cxZ*b*f-Ov$2G(-XXv1>2U6={?BJoPS~v5~CX z&ffnZV`V^}esuIL#+h02uT!?(gyM96V0%_4B}SHUbG+MI+#DrcmI&0U6xZLcz8%E{ zl=n9F@0yZ($54EUksQ@sFLu3pKoMzpbWsl>nO)R`mlsOBJ-&2*o5@+53{wnXIk!b& zK}HJdDaZ4v0>8oq;wYz{Ph4%EBQt#G>)zp&V-ij&QY+~Q6FJF;@mfsjOb~sz@Vyby z=#Z@=x5BUFphJPJiB?y^Eu5I?WSHfZmO<2-wjo=Aei!j1q4sK{(>vizxg%85HV* zp0cQ$?fZ1Eo$0Vn4J)?$B6Z9&hFp%e&IEXF<}{_Jb>Nc3q~}v-56Nop+!2t}?a_a}$YCtg1Z`F;Q)!oJoeO?LAs-s~y*rIFCVPJDGGwfUL{WP=Wow-~rOWE+N?2Of9c;brq z^on%RhN38X`PcjT9hAL9jmLVyaEH!N9!E&9)U~m zQ1W`;P(DqTsC={Cl4NGasBF4SQ>ANA((U{j#x0*(lXH52+;#7<4yuIO~$EmPo3*K&+&&4Qt1lKk)?QWqBgyi!Gkl@OIHby%~U=lkd2)S9x>oB zMKh$++lb)LC?-~uuimz8PPtqcR^c}&2MQ%tj#N<8gkwy%H3R4-u7gO~((xq6AsCtC zT38rxMkM|80(Zt&fR@-vXVTZCfGO}jR^u2yQbTFS0X2|VfD7h|F=Y%aq)$Ug4GE-M z^peOxnw)X?w?pp2ok?5hej=vo?}E!UOd!g#DZYSP>}%Xl>YfL=Y1|`&}?!tn#l&Z%51i)Gx%mj%voM=!;b#uV<86V|z@{9RoW{T|oA8=b|>XT2qEKA4K( zpPgp=!;`}3bUVH+CEh!M4lt;-!pCzhH-G;UoD1Y&Q1?Ki?clfY|XWM_)&UTDc^^DDFU$9N2kB+ zinvH1L_!iH*!OmOH?KBo&D}%rduj~Ig;B4^S_*broT*Fd4*g=*Ub3o1AvJX5ZNx&` zkf{z>;VGutZH#?i4vRR8oN4?d^eSlwiw)lN6gAys%rQ;tJL=}TpMll&;Y5`%-iCZ6 zzi!TPFS}Ns*tW;VgZi`13Qk9x&h(D&u;ZxMDK$bq=jRlW0}m?myVhOeUS^rEESGE^WL=5Uvwb# za!NF5qo#1rAZ^Uxz8>Wn|Bxdo73W)jEl3)3%IewR(0eCT^oo!j+F_wFo$?tpY_W?k z@Tk$!0%yzSbdT}DD`s4!%qK$YF~UFpo6l5H8Pq7FK%cC3;^b70d;)s@0u_PX;cMxKNy8oc%6?I$P=SH5`xA}jl z39?HB;o2ZXYb!**Vts`;R(?BEk3H-9rPyKaV;v8Q|KovoNJy9ZrL>Hg6c(Z_=)948 zl&sw{*MO6v0C7sMm6QzFozdi6-r0xk-2jfLJ@os~-rPUx(UCgx5ylFrn9?Da2_Q6y zsfOxmV@CP#@YWykprWBoF)%8^i1W_L#e)PM9vkZAh1MrqB!T=yfh2&wxj0Bo`wCsw zb)Vwt>4}iRWl3FyD9+QpQJi7B;*~^a(_H|m|7xlRtr=6V>FY6?v4{8RY1NLuI3U^8 z$Us*DDSoSapz zn^v@;8<`|LR;GgkWurskgliWN#B!3A>%;1hpd~IEtRKQU*G&}(nZPY6!!O`ZbIviA ziab%H9i)1XSCptpm-(l(WDo7Wunam@L%ogCKIoM8 zHWW5c7}yOcV37@$`unJxOVXD=GUX9Uy^PK4lvGY=e`(_Q?eOwLOLE+Z6q1D_n%HU% zc}*o?B`pH-HZmaWX zA4-GF^5>a5Ik-x{z6);sGGo=cH*Qi4tN?I~0x!Y74|a+3 ztSjC}Y5L?8hm4w=Tu9F{5AsOWNz8zT#3u`3B)7rl;c2cCzMGtsWIcBeeQD5MFjbSc z-JPm@;|Eu<7~vf!u=w4tQ#LAR1+!H0n6kp3Vz^JVSbxXj9(`VwUJ5Ee_1)67*_RrR zimRM7zLD2)_xrVSVR5(A&xDn{+Y7dByZ6I4U=~opFUP)@eL-!d=e{`Wuu|6TLrtUf z=^xeK0wY#bFOJY_O@LB$9ZJG}XinoUO|tHKfYaQ)DPcPJ90z2nEiP|Nv&OY`U0xzg za@KzTA%;IzvRwZ8lia~%^;hc?9SRB+mCs(%G>Q8^rn#DbOTg}QVSxwmzu_PgUSxofAVim2=YbGg$BrTDZO0?{n2B@!T+-@ruE zH`ur^!6|WCh2d)H=?NXA3~#5PTvYV}7jXWe>1*~LPg4k43~mqO6(E^6K2}0UCu^Xu zZ_$G}w)vP4Tk5$D<5hxFHh|@*lawXtGk!Q4h%TiHq2GS3IS z%n$bHZUX$ZZp^>MoY7BTIv9}>QRYvlh$D#rU-o>n;BO164iD{5cZG;F|FfZZohdoW z`ggd|mBzZxoNe16a(U--n%$_-hpta}yQO=7@0O_MvQP6&E#IejjRjH0zKZ5I!OP|_ zuOp_cU2)RiVkLPXFLb%*BW@%;`sSyK73;^xdbf#s5#(&U>kcvyhAPy|a+R>y-xLh<(bp66t+^%EztQv_>>8)48FF z#i@H$NFkdlL0=m`3{y9J%zZF|l_R=u^W|9o-v!w&zP2Q{LgfAD`Fvcw5GI(lKI_(G zjjvO#%PG0{6kH8)`MpA1$mZA%q<6Espk}&OvZNdzFS6$XnAwkpBaL}p2-4c%Zal~* zw*3(|6AS4EF$JVy3`3a&#rea}bBbZ@$3DVt#CSUq`)yjl?Wp_*3VO7Iv-9)koNxJz zgI0^qfnX7#TA)D7cvD=K-E&1#xS5I=ffZ1o!?s|csZ_7~!qRkrTo0?654j=y46HnH zJ>Y|e(0iIUH^rvdmRBNiaGA{qxia2XC^4+~=h+mp0&rI`pZ ze)_h8a1%bF$au2!ZSv7+dTc>nrDJ2hM2Sim2B1xx`k>0C#)^ z6MHH9o>Ve1?YAZeQ=uB80GDWn(+{UUVNejXN;MZ3#;^gS*advl5u<^b84*xIL0=Cf zi86i8jp~qNmwT_r5Qw0lAn?3^JpS6`<0Gy_db)AA$@g;E(6C&dgTNuu8P){rhx_|@ zkeA^9%PwlPobURO;cvDm+WVmK*>d5`j+(D~D}ZO+VWNS32<(DZpM2SYWQrz{Cja9f z!q@j5=UZQwRMJ?Un>jUg8|xf8B_LR8}Qd0FI@y$ocJk5rYHoXgEti9$(Dbv;6Cxyd1^IBig~TgHHvFWcofBKt5YPZnoVb$GD4F zq^KG~*yn8M@iR`RL>Y#0qBFYi+_iKwqb#oYLD5^FquPJS;;Wy@lrK4I?bveU{XHP5 z4ta_eTN50o&VO8LrE;oAv?f5Swo)j+c!C*_&rLw?us^+r|LJ?EXay&2mGz+4$6us0 zodc!T_{Ep;1u0`*%n9n#^_(ZM5A~2Ydb!%Qj+$c&ViC9SwwQ;^jgeA~y~q4QVbf0)bz=&+ zS7z^-&#aW3QAG7ltkH-k<#Td=#24U0vlgOdPO<~P5T@v{XpZVUw>*KkI3qy z?m8AM=VMexcF+wLAA0-y;~E(7(QtG;u}=d2gM%Y3Itsz;#O{{>Un^8=DHkj&M(9;`QQL*FtNoWk*5!HIZ{eocl;*C}* zQjE6(=`Bt}lwXF=;XlMk_+;z-yd<|CbL>s(l3^Ds67OZoAyCXk`IRQhg>=0`RM>3) z{+*?82=8s>_C?w1K~9GF@PI?I#Rt!Pd{_kZ;jGk&)c*&%6gIyMT}ZRxAi4BEqhW*%`f+Rx7UT8Y^U3KPlna_t15*d+-z^9Bw;>(UApf)+$pib>fEBif?Nxc$sA7 zIYgo=)@QJ#D`$ia-qY7Mw2*Qmuf*sNXem^9Vil#%4>N;3`a7vKeS6Y*OhJ(=MTJB= zXp?I z(pOx(>f2X_I$bB>zj7A`kuWN!ZIB?JQr_4TU(U&iHn)-6e|hSr%ct;q4?uQ(>d(;6j5&LluUxoybX@ z{$R#uE}LmG4OOzQbCVzg5)hu<)H_pa;fS6Pjf2<4?eCb%#VF6A+1R=%FMEVClA~kS zuG!q{x06bvF*z#%o$p&-A&c|~K16^Z)fG3o?&~p1AW3yT!=G|h^~l(1Mj(@tO44p| z>ag;(MzW~Q)|4YF7&=A`lgf|dj;)^<)8$*cCMn;!#mE(pt{j0CsWFwIepBJ@{%xvC z<6Z-DJJ5#+5$a2hb1by#j}r#Hg@eUzFcq&gR61eDS=a?`5;_D2Z#Q$X&Z`T{>c+U;< zSt#6FM5?Xe>j?okK3K}`E&CKSVn49&do#c?^~b-=pD~o&pW~`G476lFTzV1>ZjT%v z_4i{vJKLaw?a5O=Tnz#0qm{E9+V^R|PxPq`2v+R=H(5A=TeSnKIIlM*u`whn4#T*l zB{qz4w(re&Kx0>j{NzQ;O+~oC5=EEDUew>c@$*e&evZ^rP6Z?QXG{%~d-bH~^mqdr z4ColEqTeZUD1fz~AnNTv5{~Pols)_VwpL;O?Y%#=PuS9Sj{`0KB!W5Pb_y{4 z{6uR?n0}v-pFGL;#%F9Zw!lbHKrN?me(Oa>jgN1$B8;W(8W|gC(W<5EfAPVWZTlc3 zJ@l?XroEyFpEq0_F)!|9?(p$Yp0jCE!c@0rkPu^uiq*wpbzFD&fnl>hGq;G+Ffn%- za-<+F03l~Xii7y_vq;V$2JU|t|F^NXL1kqxjD;79bw*{He5T!gT^mNYaHm9C zEhHDPQYl!2(3M!31`#)uB0C9UJLA{0ffI7tK|uOF{RWB4%8H$i7xrxB%nl^?fV_Y4 zIGb02A6{Nl_7+`U@nQ=*^U+bOT8wp&d`GY30Fn+*uzf;{|8~bd@P7$F5E_`{2G0-KS zbr%Vy2*R{@RBcdkqctfaYNBgx?ao14m#y^R(UvNw$l5-j;$fR$^D#pWOnTRSfx%(fO^BxVMCxpL$+fYJvk_lXT3WevA!;YU zxSD#So1cjL`(sfpqsum2o8x+`XJ>I|=u!*@1`|S>*3>2MU1BmSH=E5(+)|PmWJWCa zyRAb3+;-hYTzyXtQJmSX3%Pu9MG2Q~_*Go*92VOGBI>yLw~jrZKE+b!fP`iO*y1E8 z-vLR#fYNb_z;5n9-lv@16=2axlcR;der>j0OtB-9|I(KhXXh9n9+9ZTxPo=*&+U?= z7M7N__ky~tKdBgG&bq()Tl(%}ICF{)GbTHIRl&r^V{@Okyr4`3LW_gh{r3bbqQsQ( zSP*~+g4D(Kkm$q1#~}9?YdZ;)+6pA9YK>eIeL4R9^!vQW-jueCS~*l_W%7PK;hp0^ zAUL#I#2A+2EuHAPe9rUA%;7K>ZobSNr`kHE{^Qo_oA1O)TS_qg7)+~f4Q53%zigWb zKLpA5^D>fTiLjfPJs zV(Q_YKDT$i=Vot`BpS=1B9&T)yz$%bvyf(*!$)z}uU`s~^0d*=Q4o)Xw{!mPbxJE( zudo4X+vAUhCYeL^w9o6#-7MG58|)&A-OLWoorP#V_TGQjcN5RY(u5Ky(27hoJlK~q zw8U-t;ZF@U;=NuSwxxtvB8%mD$aA?0NCT2xn@n|ZuT7Z4JYT*;VDp;WLoh}`yshTT znKzlnHHNaGL*WrZ4$;A3>6~2oU+Q*2^^bf$)RjEJ9~#H3Im?f1tBc0CUuf2tST}S7 zQ<^4Sm^zmQlV~LP!vOzNpJ@XF|EqQoPZG%(|Y)wsWRYUViB6bjh3kZ1?Q1+vx=tpZa!4%O$^z z_K8VrMGOsVY#J5T4mfA{!2%lBdrvv#IiFSx`( zjiHR1QR%DhRf0^DZ_{k)&nWAcY#20LiiZC|wxGgP!??l`QmmH;3*7)^OiUj6z#F*<0yVQP+=zwpgR&?~_(KjZr8s z56KaWAJQF~X`f32OFxp-Trz;!AnPm`d&U8O##1zd-st--^X%U9LugM>sJ_=C8pRUg z;^9uF#+6wR0>Joud9MD^=aZ*?{J6oQbkU%xG%cUryZj+FDJln%(xE|ob2QRv9OutE zlc6I4F*&X-gipsf%*FJODl+jCuH8*4M_W2Plikgq@`6&7mJtvlL0le1Zn?-3yK*K? zMsErT7u8Aqzy-w6^bzDo8kRSh-~1i`84-?YCH_4xbNe>iSD1M&;fASGIKc?DqorzX z2?U>~qcWFw;9YD~ZMpJ7#8r6lm+$`N5Bx`uN*NWqbFVHy1@dIcX7k)X*c=w2FC(=+ z92gj~=2%*;^2uCcWjWM7^VEb}?;g&@*?5R@@?)MUpX6U(`u&A^0F8N@(|>k-Wks%0 z1MhW&Y?6UN|p0NXDLS5vUwQ%Ux<|(vYIlG0c?^dC}F1X|5-j&3f zH@tZE>=`M=N^0GO(6>^jI3Lj4&)tFzbFM*vw@cXG?H}I?k)A36siWP{KdR-{RJlyH zaz_ciTKwVyVTN9BWFL^j+b*Nr2HyyGr=jI&h205#{J3cFHJ$iezIM?TxZ^CR9Ihm| z!mZ6Jk%Sv3m3zAip%eY%G@*nv6m7XV4eO3%#Vj3zB?}oiQ9=%^_zk9s&J|5LLJ3iQ z(r78tf4N8HoUo?q>~Y#))N;LjYd45$QA2m*l^37O8W zF(p&doj?CxRVXU?mte7J8K?d@7N7JP=dlp4R^+k2lhsp+(NZO6KyGSC!L6B(lh+pV zl0o@j{*tR>^7E9XE4P~iojE&AD~Hu>$l|N>wR>$J&irNcfQX-wspmn>vcTXuBzW3N zYV#(|CnSZVQ#3ZUC{}V|qwPO3(qrpP*UQ+Rl($K-;SZ<2TdI#}Pm>>K|A#Fp8<^-i z9}Y59$yx={-$gQd6=9KILH*o!#&0Ie>2Yzeo>QWlrg-UHj>3;Oa`=4`^h)Tx#!aoJ zcyN1(sx7-WfiUQ~to)QoR~bp@!WJZp)XynGJG!=3sBe!|pF-5f?RGtL`j5tj9>jO} z<&)78a~}hQ@{?;F#LbL}MrfyVsUW;lNFw%(BG!6)BWT@$$e?DY9?3L_yy4gku7HmRXYa_rcY> z3?4Uh6sqRgxv27s&L&;j39#g2SdWRV-G~^xg1yIZ9o%SghW03me-3<@{}r?51InX! zyFoE_C7uj)bWG!qi=5QM8N00cm&-`eWvrP#AmgmFHJYz+Rb$u|r65pPZl(w83N+$S zVkF1Y(cUDjf!CY~7o9L#;Y(k}W}X2|Xr6(Aac8z+K#AM;4~K^pmMHq)>c-+e)~xf;ynFGMQ|YV?>rtegbZm$P#B!aq*tcIvmH9{%iX}cY zs7IjHDwy|OmwmsqyAmX=uM{@M^xccRdp(*ppZrgt)JJ-HNZS_39hbwEYhCF6xq_xL zIEaih|FRE13sfH9*jSbXX-cB8JN`bQPln;1IY~p{+v_N4e7R+u_Z6JX>h#ju&mO4TP-8!^ zJ>l?^!;Ozd`f6^Pm1V5Gp*B#c-bT)@;6*txjvr_rx6uj|d7Gz|X|XWjo5LPPk}f68Gx-<&0DcJ(D;?nHp^Duss)+GYF=*5*tvnu1BH5(XoUVV=u+t zg>KN3SCy3rhQ4s%zBBR5_lAmqAU&~d1j`!F{h#zk;^nA}42-ZvvJN+ksr)j|lL~JM z8V_^ZU81lOl+gGsr!Z3e_L59AT!Q67t)Z*XrK+pdA)Qs^&C{=^a9aGR`%Tnmy9P zh&WUADSjP~&;Hb*9F>~bl48ny_@!`mv<$_Jo7Dj`<#cW5?0XmB9uT_NS& z)#MwI7gQjL#u!K!5T}dASa|%QYP30%$lYitzpUr3;iextL)NhDUr=8)8+WYBes4G9Mj|AG{*p)cqLI|&)P}RLvzNL)o#y9%J(lN$A`Git+|jl) z7bq%^gA*x8bz#lvpdNhhwVEVM{2302onupE({(B}e19kxQCFMiyAwMnpqjU#X7jMJ z`7zu3Q?4pMzOG1R?b>$h6>#<(qk zc3tm7;p%*GG^Oo-x!TN~L7Mw$BCwbg3yRyl-2C3B|7ljhqTXu#JIGDTfap|`fp=Btn|G63XUeFKMxt!tg2r(a-HvdA?$vv&TM^*rHP zUymixnRq1Cp9kZjk-I_E$?UMcNQhG4e&IUZIR}fSd_t*PZILR*GQs07KGgktHXg0P z9PN@Cn3S$qWee?O;N;9GHOfJEs7tMSrvKl9)M2GxtDqB)ju_PF@blX$H|l!Bs>6KO z1GG4b6(1Ntt4PC+cSC`+IK#s}8$z-LgKjs73mL41qus=7u~1nws{7gXYDBm>jnaWW z%K?oLZFqOn^^{EdLG3`6|DE6Oq-lu{K524sN}Vx#a#l#@_7t;@q!HyS7ox#S9}oZX z@ADR7*{C$?hsh>RUw<{epFpBGJB{R-ZbxCxT1*L<^q^TPjbIXef8d~Yq5V@wpzU%K zthHy0cNwKq!%X+3&~q=%8d25u%axYZhjMRf)HO2~>U;S6o^?h$neY>0*iftG-bI*n z4u}3L_!RkcVO-+J9Ja!X70y526lWKDr$J>%e4cnRLxpPk_PnwY&NqMF;v7`xrT@#_ zxt>LC!xA*av@-mKj?h{P)rjjo9P-FMwYbV1JF5ONBH$x|5k=jiA$(d0X{0Gkb1 zq720Pa5_68l;PQFsutTFaId8SbslBg5M`UUxck63i|6K75NXB97vT?oxuPI3(8h6uV3;}8XtyIB0BIN;!T3U`(e6G4{R{MA2w_J?F_l1hppj@7cYQY z#xs(ZANTdwJ&=AuJ*b^?-TN^2DgN-TcSuk?tYCntv35Nx^iJrYF0Y|vUv?VwX%uo^ zE$M@!`O_;JL(BMhJUPT7RNzb!2k_H()P$LV{@ZysWa zYpFuF))3>uQGW z;@3(y$x;lFv>)bqHg4bSk!~{kc|z+}RL7WHR_h>rs{J|>g|ugVs9DXFAn%^3`(Z;q zwTx#<(8jD$Bb(jpWBM+(;uA4MECw0V9WQHg7pMKDnut#3OcMc80_9?z9dh~}0nK=Z zHmSy>>KWGLyK#5sxcd-?*pC!%HjCZWyf6K@t`|-CEgf!O&AXkS=M-i67UcOzf~^Lc zkVM6*GvBwxJy-~2BvKZC(C@%x?KnA+eqJw!2csqW2BRvmI_NxGx;6I=11| zusoN%D*Z@t^|fj#YP@r$fZ|^WgUAGxlEL(sWV7Ngj<7QPS@06Gm6U?~Lr!wVkXl*^ z^n$`2=#Z(BL881Wgj3V-c$nd99ID1s!Ni8@x2zN1sO`>U1B2yeUh)D}WrrLFmLIBn z>}aZM&l0OupP#5vpZ4$FAuN8`6qq-S5Fm;3b<`_YYdF%EN4RNSkpGgNFeS8xz0& zkPb3sl@}jzqu!jFd3*X~J;J>}bnF%`xZ3ekhfm^{vl39^^&93T$1$rc<1oH)Vqcts z8yH;N#{5RjoT%m13BLmVI*A$DQ${T^+DURR@;j?;OpR`!g$&b+gGtz)_U}_bgqc=G zodqZT%3_^{U{b=~KIew@#ggpctpPO+_BFg)$toY3oBIR*sdoO2!wR5`7lUJvXg2-I zuk(}lDD~if(=&>gY}e+oKaYQix24m(UvRzwQ|6&z;=Ba-CGKFpH{FW}HIP@v1IYx= zb%r5SDX`MMOc(?!K{jf2ZH&lSm@dnq5b4cLc^@vF=H_qKz?K4#w(C&i>!Mljnj5{&xBj^<;rQ z-@d)HL}32;*2~V;)?S#xVDur>89!e3q0=`2zZ%DUtx)3hZ^MjLP z7xJcE)!tll&V{hX(=keLskU2^4j*HG4*@Ot?E&uFEAG*7kb%m$|FZbIu%?|&>o3DV ziD-rYqv^flsqX*(@ng@d>`lfY=_F)juVk-K_8!R|k?e7-%#h5iW0MitD^$`+NJ2<1 zn}kBY$9aE$pWE&Fqd%^z>x|cVJ|Bt^J#4TWEtjFXg4+aNppyHcf+Rw;CHI8iq*j@MS5v zuJ`mZ)Bbn}SY*L^oiTTPP=D5?K^@XF8y3jB zLPq!g;OPYVrgA#>JNpod@THZ>i^mqzCMV`IWGi{)V>SX(^p*z9*2dgfz`LNE!iTYI z2q3ID99w}zMb#^%{hNR4;JII8u2+uIf@{EAHT=Sb2g!{{lK69tVsKo~@}=Y8FyZ zKo~AOH);j935%IM?{|*U_(WX2a>wJRHvDFaeCg0G2j~(~*F2!KcM&$CCi;!5w0&)Q zp+>EHx6+OKfBVNymJo)&CnV3?qz(z}JQPi>2<(YTJnz7v4iDM^b!b~FUr=4|HpLqY z*ocU12)Lxi4+tjnNI#`+316C3#(-_AoPFhm#xR<*O&Emv?_9?-6)In6B|XV>V0zx0 z?W#qcQ_{2@w3jIGISfCvYhlN{2W9P!{vz$YT>6r3)P8ohdtqmFVdzVg$P5?x% zPHdmPrb&X*W5pdVr^({T~Y{Q)ia-0z7 zP0oLm#GuyK6|2qj@5DLwRte&4cPS4}9B=<-<(|2rsi}~k9VyNe1-7ru`cW5<=*Uzq zc|cg#JP-xCGw99@O;4B3c_rqi70>i?%?v_yaF6Ohm`R#I6+3=sm#C-wx5e25XXH3J zS6%(y=@1Y&^SI_8nEw0D&Nx7simlLF{Zd#p?$PdJ$&|7Ty@<@je_vbO!zoe8VH#-* z4D{-t`qL#JuS_#SCbK2^oi95K3opyoThY5D{!4F!{`G;gchRvr9e275h#T)XeF!&76ZS znHWu0PNn%$7mvw)h2Bn&@mQxWx@Z$GIN-vKzG%Tn1S2)&fGT^l zO#g`oxYX?P_gnVtx)mRP7=gJxzPt(&B=ZX~0|)n9@~B4E7nes;e;z)B)C4e!fBw%u z^leeXsWCy)!? z-g|_zOW~_-qd_U`1P%vU1`502{$K343x<81b`$4!c_~XdR>wI%tFHg;(@>o_Bu7c2?3@M~zMp zmR8kh#APkpT|&RKHBGu<8VMaEQxrz{Nbn;$xq<$q7V#Vc!Ql9lXW+?YA3P61@-!u* zh#gvp$jle=`#&v!o`2uHpbzqA=7{uLln6|D69N00>H&isQFv30zG1l}Yq^r2&Qs2? zwCgtR_PkT_dxyU)k{=b)`*3?O57)=)>0tFEv|>zO@(N+lnf8BG5$nEFM#r~q%MVVu zwOA7kMblZBh=kt0j24-2@J(0jjS*Zi2^+K8yN$w3?9Kg}SeS4(rG>Zk)Hx@#?6 z03o8O+RBVOTKKXmJ>njoN!9!7_Q6)BjwYO6lD|aK?Ek8N#vArOnO1C~;h)EU!uH1w z2ZnhrA6nAW4xkda2xr1+oHUfI zVQfK%pYWN+&DpZPujxKJRY3Ez{t}4m+-vdKg8)5S| z3+imnZM z*p&TZ$|r_T$2;JmFhdro03dtolbcL_N)*~Ks2~vtFq0|BKu3DaKfR2i%FiCLV-4z3z+EcGX2>sRVOz!*}QZ5z8BW|ftI$6Xb zD3CN`qv+PciUSioJ&Td#j#+`iONjdzBl4=4=VnzC$pYJq*HBj+;C3ikL9 zwh*w9$|*m_{&C;-g18iHpHp*M(mN?#FDZwhKfi<`xfcnNAsi!C3T-=^O_=bY?JlhT zi&r0?P=H9?0sVPx<7VJS$-HZ6`7}<*zs?HU{m_ZE=bst0sg$@ViT8JyHdeq}3LoS5 zAqsPDZewPhzbo&q>lmGHL-g}WDAimm+ePLRtMTjj|m4ia&!dc73lGmr*=ZBn&ob+r7J+n`FLX0q79d1Wl}x{Em? zVd_k{$wtM5e)Nk7QHCK_s;w#9F;|SNu9BQQ1@)hQ=Ld+V@|(D?=D!}p$d-q}gq2|u zu4EoB@IJaCSIDqtYSDUDE!mm=;Qg`8b8>!T1BUR@uf}Tpg?|mP;Ocn(Cir&PPaZ6@gld)E&79 z{-(2qvJHjWMtYq)Dv5Zkq@-h5z9$c(c&XBu`}XY`o#gy~H&`UkiL84r6h0nM6FN%; z5PN9&!WRZj=sOxZAn=iLh)>V-xW`2_;sFmST`Z6B_R&XihHO`8l?SdM%~vknajrqT zwYBN~Z2>Zq7|otEDKgeWVz3`=2*rN4(M(`Z!DewXdoP1bkU3UJ=Oozbjo&N%N{?qs z)5}uo^fAbj27&YE`U+qu84&;A@@cioyy5%c!@D(Qb6b+uv|_8jp;j%^P+P!AN|)qi z31}wZo`s1(N?JOt_6Fr2-BnCNRS+#YvW&JOLnvLm&u!>SIx&Iw*x_+i9xdT_r24e? zi#s3v+mPd0m?s&d%+u4;`t-y6pZqV()l!%k*yIq4%&Aw;$F2p#Jra#+GA)@6P04Be zrFh)Yv9Pf;d$7hGZSxzqL=2k72{ohsUj`0L)ZivLi-xeDEAT@Fa0=XC=Gl`;ZKPEg z@?;VUKTE;3HcDOv=$9KI10Seb-zU6^Wv~2fp6RT-ayUR>YWCpd^7i&lS$EJn<+cIi z-%{dLD}YlYY4Ab3*=1$lWwE^Six6aMzuhaaX;p3mE+FZINM^|Cuxqifg@tJ-aqUf0 zQnsVo@4sCyY2y{~j~G8J*dd)0(Az$ z*FwOZ!f<}R^N$l}X@m3R{#=f3DoiCdxgd7UC6OS-hb%!@U4T!8u@LMmQa5E|FzAN2 zkYsl6cWL4R!BR{n!Xrh5uG(;k>Fm>^cbwh-OFcs^QqPzPV0=?v(ek_&*8u^0_sI{o z(0^w*b!(=?lT1SqrrQw9vb=Tm!5(aA1;uGeu?|M^!TW@u_XKn@1F7tnFBy7%lSP0c z%LPNc;QVbC*k8HF?_CHe{XClmB(ULY55=NOH)MchAb}79m=?rMqFgO-Ef?h(LYw8u z&z`XnJFoFbBcKr^or-7IGLippK9z<_C5Cvy-b%mm5T-NonW8suXh7I>!Njpxx?=pe zpUheGaIDm(B&D)(g6{Ie6 zIh1~5tCtq{^-MlXtJ!Rppb)mfv<5;x(RZ^UYR5iWf{+fl{CPGK) z3J$*iZq_Yt;L_iqUik0_(ZRui77~_-5F?3Aw7(Uou z$)OI~;))9f4LpUo) zeQZ;?^u+ns>1L8y_K>m``xmPf=_V14Qmdyb+rn_;A6%>%3x4;5 zQE{1U4)V=(D^v(I8fIS_R8M(@_$C7G;#p4t&JITw$Wh7*$f&3^g4@^P!6%4ug?1ZU zS5&Gx=>UgScjzt1+yH$SE)Nu98bLMgxC{2UVk8b^m7;34Knfq!58a9k>!CI=*{e`E zBg3v|a#d;ppfccZi8FWrdy-u#cC8l@N&CVNr#k1ZXpg50h3S|qJ*?3z628n_&O<8= z8y9>rJ*;#(1FFn1aMmma*PVu#Kb83Ve9E5#)(a>MR7->UZV-e>=`z)IW)&Tu+w4}A zzD7=Nzr@im54z8Z!)SWF&7S`N)WfOSc1a-&VFAfq(L(`yKhh%#AX#U=8E_X1G zMWG?>YdC|0VjgK6bhA|kMYkt(O5_dI^HaP`}^_QmT znPqTz$h5&ql4Gu;w3~!wK+#&T=;Lk#-=-CzgbtM|Q@$P+#piY_=qA}x2K7weYY_@# zNB*;4=Gmn+T3SL`W!$_!TNZWOV2ETrUXyVLmoW^vYA)%fAwfr$C5CMLFX z(R@QeV#H+-Z+GjV5}n|Fps*MdDs_X3`RIsw>3tev<%@wR7uVz zPo`fPPO>P$v-0?SE$7O4%RSsovdo}9^w2s}M`30?vq?W~g9wD9z_I42d^wtpa5;5a ze#Hq1UFm%4`6wdwX}@)Y%ykv5)eD-Zc1^_8t%eiL1R))3j^qcs6Cu7Fcs z19~6ltiMGf2~EsPu-?r11@(L8Z4KlV8*fnfMk>yb2e$n=#+EfFNw5-0QMVEt0n;%+ zkak^G&4}z0O<988&so`ykYzLWDl8iBpFOl6U^ZlI-O8X=Eg6XxLVR+Q;EgQ#QepgTO|73`VRox(?dnp_}0&lwoyr zaWcrGbc`IczTw7sg~z(lXy;r3xZ>I=ydDQmXc95XaudlP{3p#p0z@oCG6y~Oj{> zAX4Z`pC=9${O;K%r65ay04fDu`}aS8STUHU$S7na28r9repy`5tsu~uh7PBrmc|y# z=GnoAEl!+$>-4yc!t>oYg*QAZpXQ+3XUi!Og3EiUpR9Ut2+?;#=;}kAxVq_;5E`{> zAO>GL;e@|Si3Va+NgphTvGu1sRu7alMeuMIloWQpp+I8rb--sp>Al<`3fm5l4N%!o zj=kj3#-?4Nku%|p$l+I)iw4nd{edGAxqz#g2N)I(5jcxg(pRM^th@tUroA1wm%)D4 z_FBtWj4gP#e0pQ)_YX$P?Sq@_RB%|H+6-ov^XaTUp^fEnlQ8w&@Y%R+(8L`#M60Et zq0vP4zSW!{54y#QsYA)fNUdEBvfHH;G^|$gFXI|`}s7ktzZI zqweK5Jfai6f2y=zj+z)d(bCAdY6;m|>pfL@LE4Hg>}lYL$1{k|knb7XHOI0HNG@w3 zJ0}`lVax@rSfc{_lhwENpFJds zr~e}jl!YgiM)||Wk%0kvD}X{v2uz5!7UlP@xOa#ubH$g$ABr;Z|8|A0DcWr)1dg$) z2irMK3@zu4R0!@lv!bpwr8s=}yuRLK@Kz*HqlisnDRwHw_(({e;~@uW_GAw zm$nUM^>aY-H$b8d3tTG%4F(UO=TuJK^Mw!F$hCB-;UKv*#Fi6w*bC+G{Fh10$h%7b zNqq2Z15qDL%%;`+5brRQA&8?k=jU-Qj7xvt-R9(+@oal-QkoD@{Z7ROd=e=JCZNpn zOyigd`L=WP!Lt>HjyM|e@gXKTBwmCl(yB$+(B?e9J$U|TRKLKFM$4~I#4}Ox*2G#?DTxt?W9e6J;;A1l! zr4yE!M>I4v(+MA+V+)IrgwQe53-r=j2f}eG73{dqkW${$IRNSKUQ*FJA#%pkKutPy z&f2`q3i^!rw5k~Ty_Xa5J?7@1Z)j8HsP1e-kBQ3=KcN}z{8vYLp=n<6|8*+URsH!2y46h8wS1- z8%@+TZHj+IwkUG-`niEn`4O)V8rd90bn5x>rKBlXrF7KiI!AL&tg0cUN5+K)Z^%bu zwfl{V!g@C>kr$g~xaFms_Oiw|ZH9vpX~U20P=-q^T;%HUm}%NqtMR6l#R=k6tuG0K z?)4aQcma?G0ua>85*!Tkutk|pFlg^oI&@;$HNf&q3KfgJv&_7x+`=XEf<9X|LOMeE zf%=v&;NLbA`B6D-{su{@(tmUJg@}2$_C7LLFStXmxazI)MRlG*^j*qv{s%H2+wrx8 z*lI|5NS8?+%|XEQL$=L~?M_}f<)&EE1YS8>x7+No;jZV{|S3b4TNI%0fV9rn}I4Byx z`#Vs8eBF9Ah4=Fx``q@E<21p`S5&=4E=K(wfRcDXYp8mh{;M!E`qPaA8^v!qAR}`B z^PSE9wC!g$PIPBrU+!r)8zS`3v2=PXf(F;(j1;~eb?0j#z2G%#u580xM{+kdkUYyx zyol(ws&9S~WYB+vD=nZYS%jyoqpr{Q=J4}ooHes{Jp4a!h1)XolHz~*#Tr}6L$B5s zumNghRIc{5kf895SI|B5p&kEHdUCeoa)Tai3@scFlPFe5*HWS%X@4CWS%PesmFK<6 zOs-l##jI6jitD}A9(eM6Lx~1Q!m}DAlh9DPl207kh_m9*0U&8K(~W(kceXtZ=*w!R z9j>Tdr&miDAHNNoEHZi#T(It6y*k?4rAFeYxu7|ipv!as^6%Iy5~tkAl<6V0k5e5B z)iIz3eHEk}ugoWCwD@AIY0>h(5Y{c_7k}wH>Pq|YK6G;TuAi_#@VDo-CvDs{;wX7( z2Nohk1-8%Q+KBCA#ZjJb@YbP%2lfnrDOOIf&VVddJP%+)m%vL+f9I6Qy}Q1eaT`XT zjS-EPd6Gatf|M*6D(b*4Gx>|Ot01c9^!O443cBy-zO%Iu;GiUScxCqeX3+ob5 z8OeTmQn;y?+z`CdvNqX4k)+=KJQ_C~a-3k=Di~5lEm4ieOdbA>{DfW9O@Tb+{(MRiDw}?NfIs>)LxBeQO0B9!7}d2t5S8Ro;k zS%zF>DRVz5)nudS&3DaR(siU^T?4;RsYdD(J~Bw6g-E#Ou|32Ssgc3l;muntpe!NsN_!lz76@l8{mn(+ou@yDzihcel>V>#R<*)%ig&ELNtksAlqI9~Xr zId)sK$Oi6&EW&UGg>qLhI{X{035vY?>~mYD0R)L^MglE(-^us>kr3)=co5V&!giE{~STYom_lMK(^5q&4|M*A0;7v@4WQGFOb}&rYnSY zN+b2;;30(UJ9^48dhd${bR#}Dk}HMhe2eKZ!(Mc*d0|@gkv`%^R9KOHaqs?{9pp$v zMvvUkek&EVX3K9T^Ib?@7-Zbgi7OW_sR{Bk`#dIjFXT)i_zezhmW>1cb zoToLS$w8|vjjs^i>2FX!#sB&)Y8BDi%=huF-PP?`Yz1j4 zDe$t$r{h15{)&;p?|o6K_0!#y5&NKm)Q4TVAQE5f5Z#lb29KX4vv_Do}iSUUcInDxg`_V*wJEVDWP@Gmfp5!u2f&dM$F0nD-M^) z8O+ghelh7{^MPye9koJ{MXgx1arXD~uz1flf)OF;Pn{IGeeEYT2*SxHjz)0`)r<_h z0)>ziNEiikQCMNw*^cK946Y#h11Lnr87t)4ChH=}wi~7BLjw3s5smnN7qkU0%02o+ zU%EuP@s73U&s05x9WHzaJAX6+yH0rj+dD1=xkX%i9|2eA8K*GUeR(;##r=J{RUa1Y zIy*we{ayL>+$Rb*9dje>8sCt!eIr{B=!6*`J}3xIWB&D!TQ$Od4yZ=yI~;lCWHgcX zq0yeqq){|wJ}lqDsOK7K)!w2UN%eyAiWPoRq$47^Ari{j8NZD=p-|6OGVdMp?^}d3 zGv^x=Z=H-Ni3wmDH}@mGUk);S{}8XXw{na`c<3Q~xd~jP+R+~v!hTW{&v;t$y}m9K z88%mYdCv-_uw->hj5N_~BoSFBX{7#kP$B~n0_CT|NNI&r!d?2G+X&3bjq@K4Edsi; z$IIBO{_A+Z%A6$gWX-rqYv_%`*X`;MeM|NGT!jRQLRSnr)y1Pds)D{NZ-UH zFPg6P>FDpD3^B3;Cea3@I#c2KV|EAF88eke7hc^I?XrYZqb~)hZJ#{U77|JHj%UD# zoGBsRhWC=x>L7{|g`wm3APTp1GBL?`64aMZ%$+E1g4M4!U5!zE(N9Lr%TaR4xzj@I zILAk~%JygcvTCg1&mlb%r-G`g2V^||#(QjY_jb-tULBv3 zQJ4MVy7O$&HUEbbJ(tAvJnfwK8@pG-50}%Se`WmTjG1fCr4HN0H-U}x$~1x+PAQ93 z8rj`g>9I?8`PUWy6UK^XRXO5Ap(@u%a|)5lgBKtCoyZf6J`*u?TPfHeJc`*V`k$QC zN*h1CX3ec@$J`MiKJE~ic}>KK^R>-b_ru!Qiira5-ACHx7f-c5o7XsREus{`s~j}y}oGH z-WFH4TKWrc*F1f`2|m024;SQu{}4{O>6Ax3TF|JTQihB+kIy1s`-{gw8yL47LAA5J z_Y^8Jhcl`~k=W}M|`~fZodC35Xs`4$s++? zVSVg-^;TWcJ6n5uzu~{he**D80O02^60A(SOC*h4lnXhh1oN-0oLbMq$o~{NB#8Hi zuT|;Qp{fvvQ?0L)EzJMT)S`-_=@_Pu1}8%IPO}~FZCiSBkwN=w8b{xbK5PXzet85X zS~$nd{1(T5$ugIZgN_Pg_$6!NG1F;@-dCpC857l_l}P6r;rQlztw4$ooSsM9UDyHD zNTFpX=<%6VlkAO+3&es1NnD(8Zla#)dWQwX{#~L06MwZ%g$IKT=m957HQ1ephu1-B z453Z&8D?S$sUxM@_&Y}-pV%%iDn4tl>oBdglX*63mr8>_Cxpj+927zVb@R-S0|?E7 zqe?AT*fQ2t3lclt)4jp{Er$;Q-2*G%eR;cg$I<0xA|;0Qb`kR_u8$-vM;;E<*tS@3 zB&%}_OvamzIrcXi`SmO;pMH;Y!Dt1tUz~PpiMM5L`f#o)BDL>IcR5GgBqM@LONes* z$@3BL``r757MA_yn!e9X8(8En(hl~PepEF6{-xDYR||H*k@okhcn?G!^xp{n77UT5 zH4jDWHfru)*S#MvrzeC6b6SfWxOLol0TBjc6Nj0W&_|J|_l-8+eV(tLIOps3J(Sn_ z_4H>ZI+f>F7O$&l*n-GyM}&~hbrxcLGeu1!lR>hmSq+1Dqyxreys3;NUOH|eU(^SFBLjjKGk9z@kJ=_D|FDH*jwBKV&+@vxW?e{ z7JaOvonDe5T#%+OK4V-Y^UP}R%yiWBLK@&#l3HjyqB0l^%E1qWwCELk^7gZUab>wF zx2*a26Wx0~3mNMRx)q5~|FN{o2@R6Zb)R}`-nra9SGyu5nWvL8#EW(^=neu&zB#%Z z8?kdD60Sy?SDQWfHYYnlBb5`(e(ldL1bpMn{L$Y2TCrHa7huPf5$K$_>Mh54?YXvo zmGK9+7O;-a;yLFTI&1XNKhCQIn1EM)@MnMw=|FgDxKC~!Jx8^;&hGYn$m#F49>sE>KE4mYaEm%NpLEJi5zW<>%=+c1|9skqP0qQg^_%wL!{tP6$@S}rqY!yV#JZn) z&uO}l{6hC53LWeRz+hr%8Bcu->rA~S%u}EzE7os&dt1MLdb0AyqNimg8l5;!LF`v= zI$1Nl3mlU{fHQ1+p#zlcn$2n(~N7uJLXW{WOsbOe?>^UF^Cx?;A@5}qlS{pHZ!$|(GEvqdMVKUEz^61A)WGN4)ahnke%e{?+VK^e zxJ=k$!GIb2?BfKa92mRZSe>vez#KxYqYs&>1|~0 z#IkCJ0-g)tan*Z4F)vm54l?+bazsodb!Pq*?ALkFx@I>%NpmVP6X)mD>YdYhuf*sg z-$e{{2~7`+guOm-(@$@aj>0i(O+*c~ytmea&>I99^dd z4~^Na-%_d?e6Eow^qajP*ck@=WCj2;(MJ`zVF;T^x~WT0g@1is4MuSBDJKR>seU*< zMooy(gle&&bw`|6V{uj<9Xc@0DBhqX zUi;C}Yt=&yeCNKW4U|}Za+g!ux~1ck&L<{a$hS$nA=P>sag{LJ))ggLbSo;Nm1t|NA+(Ob+ICI3O7ipjEh-@yqBzJr25j$gbE8s3E0O!mNi9E08jO zPC&7M?;Hr9{awP!pssH=Ef!0#3qT%UTU%RGd;Wwoa1ce(L(~t#6l+bLb%VZ1Fp!)= ze<5t(^X+UO@|Cgvlz(o99?b_9N$>tzzaG>*62%Zr^3g8yG6OvYk+!qZOc|ZA&d~dL z-j%262Zdrk3n+TlH4X!DE4nS9vBuDz{+tj*1mY3hm2bN#PEn~deJu*FNA!^sHN3C zJ2{qRuOx%o&t3}bI80aBUbx1j%#aMGq1a;IX1yd4M|T0Xz^Eo8C;f-t5@u^|fLaL; z;Ss29Ft>FG=dkR(dsh9_IXfMbU>j40Olglc*;nJ0t{Chn@;sxUZW8zqWZ-?ms)X_*F!`1&!kEa7 zAs;}#IeQ%)HwQG>^n=eq9cFzFVh|qpWT@rI&G_ru+|kVWg(u%kbOs#8MAKlNFIcl} zu~IUU`1GH|+w$wMmOXqJpamm`c$7tp*0L1O2r|8M!8H%u9YFeIYVjX;LnU$3qeoP~ zm?}$+>6Jo93JuAJgPi=xZIkFe{IzRD-YKAKjMBs_ejvwA^|9fS%)_$us7Q0gyfUz- zbrg@2T`bFNG{mwKoj;-*;wqDVRufcn(cMBoteawDWc`yjI~^g9u}Q=`T2qmB%vkEs z$DJA)V}_U*k7ctTdvDPVv~sxQ{h2*dTKz3u-eMZm zzG;n=kBff7^l$lc>SODPiJ>*UAmFFG;`hcVO8eg*nCR17O=?&;fol=%+T?f+C)k)u z=pZ`v5wpdm)y2CyqIuPFCsmc?q|>!(wAYVF=Tz7Qr8ueeO(NY|$Psjje7{TkQTU_~ zn*79>g_Dz0kv`I?bW}a0?(&i1f!v6lyhbNB!ZnY*|DDxfvbqXJaA>P(%B}dGsIAQN zH>wT8Q4HSfQOgl4IXZqS_vg~XA6QN=N;$S~6D!g5w_X7dz~k!$xN9iqZA$s~Z(Vu1 zwz>MuQQA(DiU0xnQ;5%!d$do#YRD2?02(yqDP}gG zWQDWH!5H^lYItZ!`oCo2&(&G%Y|u_b2$jH5{+2s&Dqw^&?IgmAdj~$IUO4#R*;0%l z*U*#zcn3mqP=)XIPEW3b7=PM7ZH)!MNyuk{Zp)~H12`9A+a4?|-GD*_Kb--emeVwn zId3h^?}Qoa(fBy={Mf44x2{KV7Nsfa%QkWa-@W2LY#l-XRo&vYg$#?@;mlGwR7I7rmTtl|{S31@ zRusb)E`F}({II_9o+$j|?H!f^B0~s3?fFyP6S)(DaQ+k^!vUf>03U2+a_zcvux@2q zh~5C^%GYKNk3E5vLS|{@XqO|xtE+D_#xJ(kfkY>-nIR3tZQ3x@_zL}`T<4u>HXrT~ z=-xSaFLynn<;(rA3k%Tlpmk_7DZ;xpzXxqtP&L8vQ;E5^kptQR`ifGebQgV9=qdWv z|0l#Jbj|J)VPyI4{#Jkyw%LPO_9!K;u*HE!j@kS6vMa*<+=}&cL%@AQ@Q?sD;glKB zA54kOatE;0BU|%VM6ZfAt~zUXS!JY?H{Q8ZWr|`=f$5Y+J#CYF>xk32SQ6(iyk}+U z&G(75MO`JJ8j~e_zB{52Ziohh)+_lUBsnOaz-t^Z$59{_j0beFaS^(KZ!Yf6s&Jy~ z9Au&C>cP|HHYNP8Wz?C&t2NAcNvY#3Ob^DFA>|0`{hZl2nsTO_sw4qI1`MwI5c4N} z^$%kAOs6%<97*r6C`^7Sm=jH*mwhcHy_gM|S5qWFpI#*r)L7E)sAdtH?^J}i6C|u@ z_*MG2`Ck=vdfjm80cVVx_<>bc+E++v?QKk z`J69dwNss&j3MTY@?FJ0Lt!l+GRTX%m^a+>-bbpTc{{7$9*@*KCd@nwrcqoaHww3n zL_Tp>Bwfs=*`MmMP1xi5{(qQD>fF|noE#?wJ-X?eN9Mq_VV@R(JWr%+-VzNL(cKi( zYb}P$^1th*Hl$QZ-~yI`zCS`5ikk~zJyGxP)0T__@lR@d^<#1;URfp^i#Uw8ALKM1 zqryutGh3}vs@h5d_j==02u%zOP~`DyAL5^J49>iq-nb;A3KKu{#~D0OT-Br=W^=G_ z_iVe|*Yo`V8)VmQTEF+`nWpHA#OKdYNjV&YHf`sCdU_0#hlkZ)&5bmmFJ8$6a1xSw zeTJ- z9I-wfx(XVY+53T{1Bg4RoRhsrjSKg0B~-JU_pSPfrwXW8{5`X>Fb%c(1aM@2;qy`a z7Z4~fo(P4Yj8KkMZXWGw(cT?)Rkn(0?X6FnMXdv=N_)?P9ZygSz-0()h7xI7z?E^Q z5dUo_f;n$};cGpC1#3v=nrFH}!cw4$Ts#)Y#h{ipoCBU|&-%m%VgD|0Dg-C3JD>sIse9qUy|R4pepgwF>ET7E}3Fd1#mY#oIFQ&=<229B=R!3T_R5Ixsr z0{QUvU19VX`@wd$ub4tvJJSIXrUgU!l_62!TaR;q&`6{Aqesc+XgA9)-Pn#7-k#RaigieelyJ|+!18B)_E#GcKs1cXeP!@_}{k}vj?AHzlZw_ zau=GU=-e+JoJ3Mc2`4e9m&x(v?taJ;>Up1ew>-M-CTZv=w@)Z0UKH*&VZXo;%4g(Qr|Jv=@Du z2A$-4g%Qz#HfnJuD;9ko3sK;?gAiG;+C9xqyGu3jaT_((OCnz{YWLnOP9SM95b` z=$)UQydkVVLwy`7uTrr3!c64*_Bm&a9bOgyx%_N+EFeF1iMLDRc`Se>YZbjLr^Ww6 zk1CYQHGA~E6FXO$gV0);LGEs~Nj2sB%?{Gg!qiu@DL{%rO?IWJJEAPqkNTVWmtJoV zQ$Kau@@64p9hK&(@Ag^7DdB9%GFrN1fN&lS@Mu#NGj$eq^yNG**zq2C0=h77Db+#| zZVae=8Z8>}>nv(Vt*=V?43#AG6;Wefz8ED%e6D7IS?2x3doTasm?68ARi7BcQKjmk zkDGI~U?~!OK6G?+WXLcQ_L$)o&dRNM5j#B3opN#AR5Ez!)jiQw`MdSgabOOtH6>Ny zg8arQ3!Sk0Nx2nE&~P9qC2cmvhoCknr3Gwl=QfDpvLp zVny380FG|o2JW66Ef65O&;PruueAp;>q=ANuY=C>LyvbOI8!xn zop`Rr$=x_OD%Wu-<)85j6L;@9U?f&ywh0~=}eF>t80=Yh? zE`d9Do|@Hup4qvXInFSXJtVUi>Tkc%K{`Ow6~=|1Y4FEeuNA&C+Z#TqEtzxKWh!*M{uB0M$fe)Z@K`e@CQd;SaL&x^JYgsOdsrX5nED`Mx+SR zNSdtxHYn>8Bjt-2y$9}e5t-&5XOx7xc&#HhSF$;bA znmh(SG}W@<{zzYE+XI8@X@jb%-Cb06jiFZ6*O2ZWE@iASkn7-rgDFZj)|Pqf(ddMr zXm9~;<%aKBiXD8TA;1sb4NMH{5sdilnhrfg?A=^;lFuLo_?1{6+M}^EXaCIkLy0-J zYhIt2j!Q?1$h)Fy)|8Q)xGVRAgB>sVFyz(o+%{qn_h}P-TS7M1=*Tk`S++T0;dcR# zd%|ZHBzQ#Rv}(0uc!wBqyQ%*qa?}LyX4~12s!Fw{_Led!wuvX(75DFoG4st7dsvh` zDtS)G1LJ9xF|8U8DNoZg5wu;otYi_uL=!LXJ2}~HSa1K^kYhp{@KDkI?LiC_@w@W& za88yvNL^v$Y^%xA;zyE?%f~wrBf4+o`wm|0gk9-<_cxI>`#_=;qjWVPgjx2xBP$j? z(^VgYjuDHuz(f(E2CG9)qfdjc)q75Wka-e8l;TOoV}1UNf%%_OL1E%V;jX@xLi=_x z2Pf}MIrb@^GG(U&e)HNJ`t&-|gBtC3pDwBOKk<;VL*BXwI2^MKo3%%qDEd@CPq#d& z=Z-K$pFt~S`EsU~zO)@Lsmc!>QE4f5Ubq3X{|jKZa_}_p(eha7optWV=TQ#`F1U2t z$ibD^#Hep38RJkY%}Gf058F zUFX!J5q$fD&oD)KztFwQzvy;3^rUl>(C^R9-$lKPU_?HW+x= z)erd7#KG}qnmLop*VxzWl#AZ^1r0;9qT^Ri<`gYZqJ6|bY)cD_L-0#kej zbN5c;*=JO=0ctlQu%M1pL1~c)gsxIO?T{Zo;3d^>cTJ<`MlV1MIP;C&UB>&6uM!Y~ zM5CQ2%)g(_J?M#XZOn>>_~%GleJ~OIe#d4g!iZvqaMyLA^X;8;h=`Z#gIKh0J&&Tm zp_swu`A|k$I;)*w#Cvf@@=z`nR>@yxf1ZhbQG`GGLfji=GftmWGV2D1D^<_g)`L|o zwXVtD!t-N|(7jbSpG<2m{mvbqLs0?@58TRI=j(nUH}$m|=eC$T4`HO^HEKoA>xEam zlDM$92V@i9{1W85w1XMDXL@9brg(n4!J)N$07-8nE17a_!$pEk=X6i+@n9m;)%GbZ z1~V>zCEyJKNdSqfQ)s2Rw!6fw^~S<*EJ~#$A3hvNHV|e!;Gf~QA=Q~Kc4x)3u)@Kk zt4nOSbhp-|(M$wnD*}g+G0G8*SA%=ijyt2cqwC!1ZrbMx#OB*S3=B!sZMzisgs9YD zHwaP=!0`R8r$_zOy=?a3tTgvFInJ%+QxngeDGTQ><~zkr_^KEO{p4{C>3(T3PCz> znc;B2hTSU%Z7eV$^PacyXhs^-4k+}?4AnxDyyL0Z$A{S$VTFtP8IB@1sK1k&6XmNo zq}%TG;@LgdyftabuX>_SjBn+=q3t5Q9;5VT^G>LUNV%8+Jx_(S+f<%N-q9R~pJi6H z#jSqDgObi$q!Hu(4FJPQm+4C{8_le$Y8WnE`NQwjzQhra()9{kCA6x6TL^}4EW*ukWocOP@z z@jm?<8YU|LxL-x6%St4`Qj6a5D)WEeDB?TkF6jtC8nJSp;`{9Y3WVyW1tyQYRDaN^ zYbk<sr=o?b#Pwbf z{(5&+)VU(_)I8@ki`{EB%uwVgIJSHIv-8teZi_Nf9NYFXcKNryOmZ=Bx(j)9LP)Bi0#SRo4JgCilU=f;C?MW*$z-9#V>tEX6>GBIru zby+m)f?{>bEg4ehrstucr}2qN72(2xtt?101Rw%QRP;R#x&h}ej9cp-x&z$3Sm%j1 zpa>}3+dT0FHN>iqTF4patFXrxrv2AfOD_YK3v?1{i`P^BUX&pkg!>?Oxs+lLDDhFl zm1n>HJYp{)P%otwnd?7rp1`3d2mc>U*By>!`~Gc`tR5rDCM$bpmz~WcdykA{?@(5@ zva+*7cF4|N**n>UY!X6#r}y}M|9l^h?G;sIt@7~*JD4^Q;eKuCG3U>z< z?O*gRPZC3E2$B12|XI-WC=sC z`jbunrv-2nybDLr^-1OAT$(OiHn@QeZ%*8R8`|$%BiLwniz`MP~ zm}JKZAMHm$3a$t4_!}ws{WY;nES%y>T&b#UngbXKwwMuTXg)7M9Mx5D*G?^Eto4Jc zbp3qg1FT?dsS#%9*2i6+TrY@nezm`1apE_OGnPZh+7rBw6Z&&5rX?d&trtvv%F}4Q z5wfiop_VKk9MMhS>o>3KT)o<}#sD3(Pm#jfr1jcPv_nT}Y>#Hv9cBdZN2H4G-|>k% z%x&ZliI)1RHMr)C8N|#J1Ko7?{f|@%)e;X4pCWeye#Spy_DAhH{B~q8N@YL$?mRWq zju(ks!I3hI?vG=5Ywj!{J|v-!N=Wai{euv2uPH~1bgTY3+unZC+_A;*91$mQVdc7|xqix_UP8`0Pg`kf~T(1@kw*c0!f z;SvKXmXT{CE3k{DQW(Vd1TGO_k8km&NzQeV@Rkbx;Bs|1-X}U0hr5Py)~fmRt6ZH1 zmO2i!+`1|UTFzD$zjq|bw9(}mU?%PDEIItT^arf@3+&+T)xRY{ zBa7Ms zsin~GqyPRZMjrC&F?sKtWIrD~Z-TrP+z~rm*e8i3SJ$4uXDX0bEQty?a;|Rp+B+60 zfH^7swlW9vnGrf4R)KN~BJ_oZ7jQZNH6b_4Wwf!=9ixUMfvnZX?-S~=R^O?M#E zpX!|T*mDGl1qeqxUMytku!FEKGKAhh%sYrVynJEr;9};cT8ay_yX=w#)P3+?;vXnNEb8H!`BcjA*E(;$c1DA0Hq zj~AwC@!eI1m^+>PV|qeSw%6#nx*^_8uW0s#g~U6SzIIhL@3mKg2Ak#~C7jh^ATi2n zGvoj(-=z{F`GQ-BkfCx(_@PPtW*{JLtwow%nn_ zTKeuSIeIPO5T>6sl|V&kV`<%@SP(R3Cv^^@z+lHA!J>tywfXe$=EZ*d-5d5~GV2GP zkS+s!Qv64@vCkiDSlxXH*4N2kX@Xp@zOf~6aWhHezJOi)#4D`#BU zOvqkvn+=UBrG!jl>f)fdX55`F^YL~kEb63)nF zq$!d2bt?*MG$>4tvY^9VhyR}LpvI=z_JbYxH%6bV-8qqM%)T8OMn{Yvo#W#s9@Ao2#yl&dS!OkCRd zg1MI{dpNW$mwP2_|8m6sAG$H}@%!%XQJO^&lEM(ilUhP3E%&ZKn26;MRA(Xv=tfSn zy~t%6pS(Azoojcpx0&O{Wyi2U;6f0fMs2U3CvUG|)jjN8hrkU-$-<65?Cv*% z(ZEWyv~Tl`2_K|1$`Ja2tm?~KJ_tD*H z6-MK)DDDbl;NMMqgoYPnz(9SVf{(T1kZ&NWQmh0xlQjU;1VscdFx1h+Wk z_@k!}{ah`(Drf=QSHAAMSm#0|v4#8aR|HF0O6hgjeMVYZ?54#d__6?V+TU8Zz=}K2 z`DFq+U)F^1AHpJHBJ^$K#~UN`-|D=2DuEQ5;|?6LXSz8CPloU1@zZO$&sNU{1>{#| zi1~M^JznGSjZwY}$C1@hvQpUjJXOBsvZK%kP#*A6ER9Uie@bMtGF8w71p}ngQ{68p zU?+Mhx(px)ND2NkS^X2EoCW1W``pe0cxB6V*cl$#HyP#3Zne&R0pal{^Hj~=ZW8mS zZ!KPUe4pNVIbRVTYjp?lh%0?ye|u9C#lGVUd}LO4N=rH3TGuI+FU&0*5r%Sf|3sPP z|BYUQRX+2@{=v!xTC};jK)RIrjM1*ypf-I_iIS^`jHwPQcYCraIRIzqC=g5xVV=By zrAne7Q|3(AK8bvrU2Z6YIwK)0+zRa|QY2k{me#7EHUumlK5Hs5?~XrshELt~pxYd@ zGf?PQHuqVbJp~}8YFiS8zbvbdY&aSsfE?3JY&-fxJl3^=Wk3GImOuH!;u0#psu}tx zld9+L9B;VGEcH=78Zdr$sIB~1`{h^;2i?9uv4hx2+$$rL&%9W@e$aihJs>LKfeJp+ zUlmyug{;j_AIJD_;kR(zkoQeomlu|jd?P2mka{7y+OhD$nG@;yS#v(ml`?e4%v*`% zf%|<_$E*571$W}^Lt?9xM7$c?6xJ!ipc@WVrhKs)g$xq;h%LrKq32Zhku-6_d~Un|wYRJ#4gCoHt$bOS#PQ?V7F z4h29*1OmCM`BYM;b=5(=FkZckcQvA4DE{ba^aC1d4n~78NY?M$a>1;Q?-6@~mg1BMu&pk>*hC@cH}mYg)Ep z&hPsJBtL^q_?q)8huR3vmJ4DScfgN~t}>(oa3Q#r&axh;iQIv^3$Oj_Si#T-R$OrY z2Z(uS14INf#0q3m0%8m;#r>QuQ0~(KPu)}Fmr)Rejf#Qmehx9Toe=95{G#~`t3>+= z+T@+(a3`jAuK4|5kFrp@SwN&{CZ2hFXtrwZi&2bg{XJkt(34dPKE0vECA~Ni6BcXr z6|fE!TNvqQ!DQawKI0{qMTLH?l>xbp`skL6<1%REfqVVW`E_=~s~GB;77-B<#)cjI ztqEL!d)t>{>r0>fTfh39xv{e&=h+-1)uIZaD11l=hHPJQ{CWyd%OljPGfLQYK>BmK z9Ki|kZ;8burJzT2aY65P%Dw*=TmfE*Z!aC>kh{6~?Sz4Gx52Jt@dG!W;RfpjZWjT; zGrldHHWa?0kS#Ba_1u=De`QM63EPl1tm+1 zmG@oHP}ffLy35YT2>h#y4sxF=qa3~B);W8%7krELcb`3+%`+&QdRDCuQOO`wRLuJ} zsaC`f`WufgkZ}c?l|DvcM$>gU3^fyQX26Qr;0AUJ$j1V;qIZ+HKq|lY97iIX_Isa< z?yu*jZy;{V+q-QLToRzQitEM5j=M$pZQbR!&&ym&f~Un3CbOglQ^8yHT*@~=e7AC- z6T%{xs_HWXX@dpn$&{!jOYaE;1rZ1!0WC!D&=2X>i;GiPE_O2`-~rRw|5ho5dfGhH zJ&jM<-P+zxUhlAvq;e-Bo0E6KN_t``fIr9!&GV-{#51z3vFC~Eh}O?ah?_E=J_J5{ zV=BKgGS?FngG*#@d?pq&v`GnJA5i1M<#{{!N5BRCFOEkzK)m+IjiC&<)DhFX&VQt< zh+~?rW)!Ke_*OGKsEmaW#RvZ{cEFq;=r&BrF&$QKnv!qZ@hXSpJ*32UE_uBF=nkD) zLh!?GLOSJ{@4=D_GU`FlMkS*@V@a!^!;@i5Q5hNRfGHb3lNdx1*F&iFu7jC0B8~8| zj+&s#hmXIkZ+P|HJHe>2WYLOXx2WZZ|Vs{V!;C5RbA3snQ9b>ZL60>lqJ zj)?XT9U4l9P3tksr9=!j6{hKU-;D>`V#XtU>69_tPPIN?Qtzps(Q+HJU(5IkHDn2~ zU&9WqZYkN!BP5^ zqM>~rS%>U$eNLg((}wXCo)Ac!jKF-tqMyhjQeR`<@7UWNL#@u5@I{KTqru~aX$ljSgw?au zrdsGvU-t2}%McwrI9z)I!L{WdWC=mAs8(1R{lm7p?dosl6)&4FHPs^aH}92ce1|;; zA}m_Jg9zir%LWhd=|CZAdnmyah-rX#Vqcrz;{9XV6b&K~=$ZLy{BI3Z!2dQgA-H5e z6=n>5k5C9=gK4pL%=G8&1-aTOnGE&o)Vpr*Im~33Rs=W~Ms97L^c>lOvC#y5TwQN*(rGH_Il|Rg9W^jm}9oqWjz& zgG1o|0L$T$44| z8Xa1k%kc)0_`IJqP+j!hX&MMzthQLjP-v51CnJOD@d4Zkpof~=y5%|$Fkpk%+|5Kl zw!TjJT%a3pbAi&Evz0o|^L+5@X)l%^HTB~*qrRp&Rj+(H#t)NLkKyE;L$?~#$p((- zGl9)1%fzJRWO&P6x4wBKw&(7vHpNltBB3XY*rtSSED0Y7U#C^x-0hnC%6G@QO1o^y zQK*NbIDd0`_s_?PEf8*Avk2GEN&e*85;Ic$fXgrTG?NAoxIBwf^~DPBmy_zZUZd=& zgoax3Y-(D2t3~aeP#HinKefb9|EB`5PE$s8E&g_*G~e5awN5r@NLIS>b@(%mHa!8dVy0bjnmpS$Aw{(6%e^6Ch+Ul4R=*fMaqEf zeA^Tz_k+Sx8=SUSocMQ({#5wbgOn3*nZm}2i*Xw$Q3I$khP9Bp$jY|@Z<8LN@T4W? zv)HF@@<6eTYm_=p$HUOhb{RDBt20jnSMlWZH!oGCpUI zT~FQ)uRIXBTkNl4Wjh)WzpiyC)9GnwP%bTqToW}q5N0!QW0k!`tIjRo!)9EKLjhg* zI?>m7!o$^t?B>&$-~Vrx^lov_kxk1BDcuUE#t7PZ!9*j?m_bH^M@NWcgb$@c531s{ z?A+L&KG{CmUQ4jL1AMfWvZd`qL+sOyRE_+n=wBpy?Mu`)=slpjsg zze{}Q-GOfmXB`_mck_bz!*saDa^@V+QGm@>%p1L5g{}GqJvLkb^_U+okgWL5kEs5* z{kK}0+H54-Cn9)q^kFuY5ANn$KALisrhG*^9cW7UNDz;Y!tLxOsfb#-%H0ITJ5Fg} zg`&lK#P`cBG1u=35;b|td=f#__hHT27G4vLH@-TU_6R9HG;BpS0;Js1#N_*(HCWU-&7 z>_8L;cE1~))cB#Emw)*YGM(3r`T0}UU5$-o z()9K(Nut-N0kGqMdLF&ph&JS`iZUHd@5SG-eEMA>*UIqJ| zO*~z_*pB}PN&inpy)MWZ3#6e_1g{u`>%-nTuX-)o;v)l5e^%WA`vsug!;5}rGxk`@ zQ@XY9^qatFP*+#?_MbgbjR~juErm3w_*r`De?SH-RM*5BiETCObviDf%P z`qcCM=dFix9FXkMF7&xR8dgwH+I$Ruy}~UU#%3u37||GDB||VTcx4fS0?@2U?|@A7 zl>=h6xxmC2*F#Xh+tk}|$+VUo`lMQqeDSbeo~;`*Bfv(YUd;XN7E0mhy_jy;oCCV0 zPBPY8Ka&Tl$KI7DZqaf!(Z5aFYA2`uNK$nBS5EP`o&MODk4Y*xFRtdW` zkQ2#RG1)j^z^^y`>O^UOhN-C23vieuYQH{|v2#*@eBP7}ceVYPUagNULf|&Q~?Ay3p!3{IPmjISO(ELSMz2(X%Xq(C)uVhu$ z7{BXQck|9Eq+Hh-$R<|O#SzjW%ONSrQm_18YU&O?D0`fbA5Cbzm$@Cv{AjQtxjtV# zI-94W;A)dh~tG#=FE^!zH*nmhD ze$0&;+v{2J9kV<-A2>eKT;?Ka3RDUFyO*`1YD6g{hI8!w$)3T4>l;8b6^7vEWBx0%wD}IlJ-66ACOB|PaKvrR6x5CC%`@9c_f^+^%a!j!r z)k8X7Ivx#cq~#5iU^EIz^J(S5(MVa|-Rf;IM+ejAFG6Go9o-uWLN`K4^D0>_b8$Aa zeu%ZL{W}%+K)I-R%wBgMh%RV{uEwlY;Cyl-vL`%5l%X0N^eZ3d4&P`i`Yu97`0rja z%RgbG7W~YX{qU93Ju{(Q0&66FD(?l2+SB3$p40)ydr5ga%(xFVTLH(y)D&vj09ro%w0Q!~VRe{34#PUwusP4O0AW1=5IhZl$PH zXwh+Ax+)AES=q(yYCkQ1eE&8;0^E3p+AEf;AJpC{XeK<8`ZO;6u|0RjK6krQI*)gN z?);UuDXE-c&scYIbCcmnTDd&QTt262+MTSQ%CG7e+4pZ`~_d{N%8${P}Rgh`z>DgnQ`LYXAwEN)v zD{+t5)lQPQS{o7-_3N=+b9V80;M0KV?$lD+*?WuB+|v>~+h*>X8VstZ2hMTJm0ngUztb51A9q!@{RILc#CB;VE| zl3r2O6vdzH=;zdmO)Yx+;ybg2U2(s6wb@#!#$+Zl8*_JFb}w*HL-YQ|pAQWd${QN! z$36O&9sM)Mj$E?2EMB~T0dV1PHb&y--=9!ST{vkg@w$Wmf#Gw3ROPilyBtO(+S@z3 zte34QH1pqoF(1|G5QIygpTj{Gf%-w49;ZXfo{z%C<>i2n>cW$_Il6NCi{S*@Wcb8? z-6HB3^ZW99!_{Gf9lxY#dVgdV0JVF5mI0v zIvgSO4&`-qy=LO7tqUQhCdy2%wY3%O5kk?rb#?-R`bq_)of>!S%s^^5`p?#I>b(-i z|x`DIS(Sp#&enW-BAhKf?AbW^=-f ziRGcMzi*Us5HU+y5O(-%cMD_-MUSFr@5f0Zi4FSJj|z>ebP$1O;6V_S=6soLdp`r& z9;-CmNq37s%v(dyu;Km}#svZ{o)Bq@(ovruTzI|Kw??$?J@z(7Vrm6VX{w*i>=#OY zY-J6}_{(PTkIeXgM-l;B41M>Jt=-TVLIz28R0l5z!_))q{7JN-qZ@5%+&q91`k=+@ zbBs~r;p7_koLt7coQ*B%_M!AVke1P?`2Seu%seGx3Vu#j*Vxu0BB_+Y2GGgzL8y>@7F|3sU zF$!~rnGjAkJKN5M2hi?_Ta=1*#KE(8{H(D;cw*OD1F;Pjet&5oDN)*MKEf|EYBm$1 zJltR6Zkn%V#`{v2HD>copwu9*4C<0-kbm@ReyqS=&|=e zXD6o5`8k~{;pvaLW3Rm?53kF=uTV~Y=~<|!U)N$K0kg(sgA`O(gJ8(2$vJtzO3}_dPKhZlM~bc+~`A+JdZ{V|{% z_5$tBEEHwidE~^d%GP{TrW>-qY`&2lcBr#Y{XxPOPUu^qO&!(su_#5`{-=vqr7YO8m z&QDiwdMUIK3Iv?_W=uZUwnM(AF%wNzE79(BJdaDP;ljf_pJwl&{Uk{q4AZm2i#;Jx zQKcP81@zPgy(%4!F>PjLWUr;PPwIM@Rj$22KP0^Y46|u^SYZ267jbXF2~qHoUWP~~ z$GMQbmilm!>J;oTi9AXM%~pR> zsbkn36_>KyL6NYE^2Y2ixRJQqiG6BHktr_h-W2li9SWM+7bPyk8}Ag~lGAcK-eDn; z$=&ZfQXJOaMx>P$(TVMSLF>)4`8%Xn`VQqS7*B4#)`Ko}sm0q020GcFRhi7&xZdrk z2fKRS@|CdcoxB?rKbC^=k5Bo+g;?otg`cpB)Pcf={8&f+uL8%5RjLEDta>KY(N!M@ zQl+deS+iSL3tYZTb|?SJ`qnvH{O*bSFOhT~P(MWtjR@A%yk)3gGFfCk8_ss1ShZ=O zjs#Ua95lKdNfyq+_HyO4K(vGx!O4Jwjyiu&m1*>GPTXgDM$|M5%(tKJ{H$U@^QPp< zh~&1=mu4{LDPo%3X}+k+5&F6NM_@;eGcg=4r_z<-U03GSBb_mpxP$j078?Uryjhj+ zWhe%if_*b+@RB3DZSE?K9*I=5zq-eL6QS(Hnyz!(xsLMgUFC3@+fz<5A21y$?<$YU z=)?JiO%##W)G>_N#vE-98^#la%=XSsmTmY)K`jKl@TP>0a}D{=Qnt5uK>|`>T>$4$ zyIhRM;L6m3?||*j0n7zFskjRkOy;rtJS+tqy4Ec)OB{PEw+7&;k znps_57Bw`l*1I+tRwN1RH6G!wuUor5)W4op;M~c1`>|OIk-*t}`Z`A9EXb&=8|n(L z2ds#*G*!QIeMky@Rm9wQG$?X$xo{;`lt21$3NyRl+2NlZeaMNJu}@6BJJJd15@##a zS6}1q?+rK9cezvEs1kUl;HyE7Vc{ZdCWDusZ!@~-dira%=>+qdovp8$DC7JRX1jq;*oYg5|?D{=wlk*hp(KM)wG@Xr63p9cd;hn`xq zFK;p)EJTk#@oEkoXxFlZ-G-!i>zq2c8cG<@?LkEuw(>qIifLse*1aHbXZmB&>j$Aj z9ghXmRaPEleL%o$f!IB#jjCs6{fM;N2+5$ER#6?AUXXx%pz?_wXD6o&9{F4Cko*ac zOL)=pw1EB`$I6I2K7R@xb(nNTHnSER$!jhPJ_>NpgEC!-;B8=Q0Q5u%@F;(}p`ZQ$ zR($RV8Q%r6z8a+}5r@|t#8PE?B`TD1bi-Q3n(Qe6EauCX9#|-4nPlI+V;28e3ALk0 z!scAjUb@pveV;GqjcrMvchk?RA#o@Ux+c^{Ntcx9<1CvEDxD4goSY=9TEha&ldROo zsSUBmV|7~#6`zw_zu$YM)3^TRZ9;0EhB~WjwkgCO682Xz*?fnx;A}$P)WKCI1u`9a zn;D$ISQ@+_OsUf16`kBo>#93{Mw!Ctzr9XoTDa}$o2Suw)D&+>Dd*Iv!@-==IexWS z&oOVSto)9U_>C`l&|!Jm?XIlsUaTeypIGLkkSuei8MF=xQJVyG1|MO1bVanJq@Ym0 z?|KZLS_!?{FQ#`Ea@GViOinSpftM=w0XL8GwS}c&E!`$3a_IqJ=qWFfZcUZSj z3kQt|OL5z{_wsm*?auoZA;tOGg`(sP84D zGxnr*4=pQn)Oyxu=I0a3k7=9t3f$}z9_ddVkLP&1xdj*5!W6yeMFq_#9b6sVnkCv5 zpKe5SzP2rS&7s;{pI=eiAV-b`zX1~Q&d;&8clIjEpBpv#_Cj@`hd;IQl-K#6crF~7 z%MFXjmOsMcev-h{SKI@5rBI6%Fe_lGWC%}}Ur~ir9_jivU3;5Xi^f%_EMFs&f<75^ zuZ^s9L*_T$<6PuITH~7k+0<3aRGATXhSD@lO>Ty}a}C|l&7@F8dl3Y>A%C-~YK0NR zbDieBm6G6hS|yWUB?C!6XeF=q39i0gBTLN}hir$!P62P)-pn=4X;~6spx;CU7wkz` ziW~2Dl4ZI$I>O1MdfM%OAqVpdwg1Hpsj~L(o_LG>`!%NOWPi8668a|_ zPkxK3s2JVMeNxylEBIm=wik-(hsG~2NnqdVnw%u%G-_r@<%V97Dm68$G2O(DLVJh;7|- z)M1ri>C8^{PUpQ-L8@xR1-tj$++4hXBTO(BqD+}XRdp4uot=!ZMQPjJo^^LLgkqg% ze81pys;FZbpXGW3Igp45rsy3LPRwE_Q6gj+oL!?aHp^#Q7@ zd-v5sJ#<#aqbKb!G#$|MA=j4=-+`kG{8!52_tE@bEHsn6XW{;$Srnfo7ch z?jBa4UnPa?7(bq&cD*WYLGnh8`~* zu_T5|n@TgcKT)U5bL+c7!4kiCVlVK7)>yt)3hl18yjWJJ2DiJWP=mY&wqI;W7@uML z$?ZP{p4gsJu~hTE3o$v&8o0r)Ek;W_hR~fT0?;%VHPp4vM32--WE!!vb(-&wfByWH zoz!xAFbkYck*|{4Hf2)Pm@X--c#<;hU|0o!nFY)6XnsA@@5GeHL}@n2@hkg-_i6=$h&=#a5z zr_;rp>ylggMA3&|DK&a!6V+^@Y0*2t`;Z_f;+TlnN*4-rSgTw+dL^* zI6ps{=M+(-*95ev7HA@5vgS6+^=_cJnuWxyygBfs8)hYT_H}h-cvyOl{;G^6;aRO7 zhADHbTu0$yol#lg)Gy|ucWop$_}KEx7Qqd$eZrvj`MI5E*^{vAVd3 zGUWsiD9VSKXJ*O|^2b=* zf|u?Z6atiXqh6&%`#MkJM}tRZ#L>;~JNS7TZ}XnJcsllE{`*Zp7e(C)m1zXgdj<1` zNcAu9)Y(t~X!YZVfs3na2dIF;=-H@@Mg3LsG%Ur*Oe@a`s0gu8R}O+8;G%qDvwXx> zof&Z*RtPUNkb;`U6Q?jY$rn#7Z~CZi8b+XZdy1;m6;4eF+CO&#a>hWQzt3=F$3dam z(0Zo?VCkj#%X6nfHMQo;pR=d!1QLLvu@+ccJLMQX?V#X^&f(G!5DdES_AtG&s%qfa zEyh;)v&u1C7Xku09Har{TyRduHJ^O3z9eBuo(_ zFFa|Sk0~*^q$FC4*v*NsbgHhA*aD!=Td^V5u&d|#t5Rm16SwF6dN`q%ux8fkDvPk`NYoCA14&$%hf2leySC4j6t88L~;i{5} zO}ullsDIo&vO#a;`wv8FN+%S*KZwA-BtB`u(<=Xh1frO(1f) z;6#)Fsi~>|rs(6dl*G?8or>%!QQ6EEb)UKM(rv4|yqmP!xZb?oU@#n4WHlx1dXv!T zyYNPq4*6huK6bdb*KHvdk&FtjG4@ zdu1Q14NA1(n$G5GOOPtJc&5T?g6YjAkFEToNrgZ(%)_MToekMQxLY|QRh?_7TpDhMjf3wP7H`Kc9+}^nnKL9<{b^cf4F;wEK zXAxvUre7QOnjcrywf1gJNvn4Z4&oPOJA1jw&}QCG>UWvgS`spg^7H&MG%-PP*&y;T zJsM?r79ZlHPyJ}Pg&HKk!NYd7)pG9PdvfWa#h`lpOYw9Qh@}4Wp$zVHm4la=QBlhO zR{a0QQ1-2!gO>4n!2-1s0}e*jgu6YIML}LYtblKO$+K@2jI07$0qv4dVXIp*g%?VH zT}8hl)aZ4dINPAVyU=jIF+=LB$AW*iZS~KU7>QOsol4x7K`6E~u9-%*lJ*%*psL)-Zs*ZVBz!La{+3 z@myEUy^wZP$Xt)?qW4``-31fwweTEgawQ}S)qV20S5+=%PKDkHglud5ZI@P6BRg73v>qVG1(Ggd^qBbE_ z=1Z+`%a)(?H!AjjAeyEuH6w04zcz} zVvMj~h3fGG+Ug7;EQV8~?5(zpdLh!9Z=>^V6g9%wY6RGn#yWY50!1Cz+HQtK?S_$WdlySPY#f_NIRk@N@kwzp zt;PyJwz4Cnm8}*dLU583*%QLqlLY)0tH8p>Sn)?*`#>E*)aO>bVNZs;*42fTQj{Wb&7wk3(LeL*Hap+^Gx<9i~?!70QgFczZ1!V`J_Hr(KlSUDZtetgV-tQWPj z^L*sZ=w4OqMtTBHni^jOb5UELp?dtYx4G2{pMJaqbJxLTz81=Dh+ia+>IS|(I)>WO)3pOktRU?NO8X94eW!kzu&5AhI@hp` z8bYRA;$A8+;o_%@==J*gkTMGCf7}CTF#SBb(XgdiHuYZF`ZPn%+AadfA(VduEoXuk z>sJ>ZFx;WE4||;*l5`VL?SnAr;KkKW%Ua7t(vXJ1(A9CM#C~r#^^^JRp@a5Ni0t2| z24)42W;o#<7iz_Sla*6D8qGgz$7xK1og8@E$TvqImi?cIbvr4)^t)QR{Idkd& z1n#q$Y)xw6g(b5Wp_wwUk_OT+Tu0Z({U%HZ;`$V}FE5yK%XWgI$tcFxC}>yuu>Mtp zo;ue}o~Gi0&__he!#E67R_5k`4YRXa12gv3LM=iCbGF>cI)F)8b_MXAPYB1|AGN3G%H&&hk8Wg~^g(qp}J z!51oAtFkOfx6wz&Q$}|jxKqO(uS`xRE{2CCMNWSpk2IQgBtZ6bRG4VJLC>i7$U96F+EVvezBy-z{imdF8Be z5GY9(A)We;Sxary`YCx3IZt~mO)v3+DzbOxa0$MP08~_M^>-s z&kPpV$qQC9%`w|(6`qmLb^m6Ii=obt_I%hDS8T6XD(^vJGQzZ~VCtWfce8l8c*LCqP4C`F23kwl+tYeNPvdPz;_; zy_-K7uiXGw{@T%yM1cW^%T=pb!0)xuU7YEfjrvJo<|F0IVS-^Med2r2Nw&Sad$>Kr z+YDOh_`<)xCfES->?wX)cD5R)3XU^OeSQ57^>6)8%RH|(&p}`Q&VZwP>?GqbRN~(& z=elp&*4IMv*Kh)7ed<9A0DK6x2Y6;rUk!oiAtJ&BH(#Nv$ML1hfU`|i^+fCNEv7`7 z#dAPV>t|AQD3Q?z7SVMz8A2O=A8laqYQBOxDfh0}Y9QDSQ+A^h2 zH%iUBK}Hdtb=UX!_$hS$MJ$=xRx~tpD|-J7ah9K1SXkNKPV*HX0@-P@o~DyA1y(|l z8h1&UOml3GULjX1Zi{}?d@S+}nx7a&6rgF_yE{&dURkdi<$&h%I{w9aGRPoiGcEd`oEDDfstzjGc!f27}U1{63EF;V9=9y%NBL;4g=g zpqLQGPsFC{0iq5vv8jsJJ3@~v-;t*P9p+Xh2Z~<=G zU+0IaiV7IoZ~G>z`2GF;($x^JtyAOeUh`!%da_?jeLY<`9q>PQdiU_!V?i6Co@18+ zw930)i_xEqG9UE=)F7^}v*J0Qp-Gyg0||0GW|9bi^T8wy1j|p^xOzP7L90hQ z3-j~&5*sT%RPg6ZvPSe~ie%pKQ9zS=%0Cj9ae5WEr+}7pwYeD2A4K7>AYiWy* z=T1mFQO(X9?6(~*kV{F~t-!@+Q`WF0#BRCI+*%#kz4Dn@9f^RN$2_yQ2I8ueGFoKz#&f;lHGJ>A8_ z<4N%ZT~a?U`EMIO3Sf}{F=2S1RIR5>J55GL1{yk;73c!?tk>xOC*SFVupnw;8*;2}ZOMM1=R59;jVweT79u zE&N}^B$XLmhb$^!H)xmUEGs zhxY&~DKl#Mxv?QnN&1Zrnsk=;H{R?upW|1leb6qh`b-9}Y(-ri9HnNl83U&qg481o zyLpOoOmRyl{;uJdtIsk&F}TPEp&U0Pe$HF%9R*hd{_M4ohRecM z_gPWbcqQbLep}~7)z@CSEZ94O)T6Ojw@*OFAK&KxqQ%Nh731}LgVuW8+9vCI3I5c? z4+<#O$9njQ{H7irNqP1K-)9$A{`^d&`Mu)c5dmhJ5Xhr@|E{KgaIlmoU5|(4flw$c zg|a!cI#ny&uz$(6XW`fkbf7{QSkNnz$KhWC`yu3z?`C|sOoclK0(w@**x#@Y8$_q4 z-z(+t`54YB*1UpX&G_`CojF^t@PnfO_v8O*0cdQo7Fx_G%b4 zg|zZ``uDt>s7fYdPM$+xol}QZr*7SHhKB*%R&Y~3CabxF)P%DW;E1vC!DMN3;nF8e z=7h3DlddV1(wAQg)L#r!@DS?L4Gpi~qA>}dO&OI2;r-R+^6%hMP|eA@n|(0oZYKHpjt#3if~B+}+|BTb zf1@8=CdWR2+nBvjqmXJYwE-q6=Zq0K?#-y;(bzg&#M*IePLjM}yD~^EON3RHc zC5}V>eSR!CXYq=_`VyS8cU)i2Us;j+Q8pC$D z77&~rZ|$GmEE9^(ESs{AD$o|VBW@@s>2a@HT?=WxDHNps4M4ZXulI2tll~z#6kp^+ zj^CO8F`xehkRoN;%%oz?R`FCl?Rp*}f}BUVYS?Ndm>$RU>|bJsa_(Yz)YdL%G7gJJ z(|u2m_Wc^IGyOy{j}CJzeqMdp^&aG>x+;smPl6~4cu}pgpaieOof0U$F;cp2_a3V% z&{4zQet7s=C>mt@0YXdlrSufhziz=JWF>|7Y-}ddHm_}IglOg9O%kWE8L1LHOb0Jf zt>=?I4MDuZMPBwJp`R_uwIfrP9Y&7sJVH^ z96h}-t8AxCBGWp|_dOjSCPheCik@pS`s z3M^@GDAj$QnVB)IFaUYAO|4#|=P}*YmcYcLjRu{wD< zDKt&W-z0_%^hMu3z3yBaW-llF(8u4hdqH^AO%MZ$4H(RUgkv&)#lZF+Gk+2RNi6nm zIKG@ny9>$2wA=rFcKu`m0)TR^fpfM7!&OX*k&yutIA9kSO^iGDxY-#`T*$){o)d4^ zefhH58+RWrvHX_A{$@koT2nWta$lzAoZP#`a59`p@XK!GE zd@-IpL}v5GS|C%i7{b0103-zb^Yl;Z-e};Qg_-H>lWgXn>GxGVUplv$RpiduuAEU# zO-*fY?}V8?Eh@V%eyq#~0hai`Q+nWrdp&uqipLa4mL?Rrf~Y0D*)P_k;|>!+5&&(7 zLuB`sp->WD3#>pXZ^D~_gmyexCZr$ZpPW_>LnyK)U&N0e^NZ(HA`P<`?@)_v75^T+ z{q&nRnY|-BQ2bTO{h=3jf9aF>je8KuZj`QMql7qoU{*{c6oea}88_ikYvgku z7|%aMSOe8&`pK@II7q6|;5$RR4M&n@t{GLoNg*BarkUfDa1r8am%7g^q{^E&qbxld zS&3xm!?6XOUL$OPYyVJa&5&3^w% zyl_Q}v6J?O3ua{18rUmIKW3R%vG8E+)_RCB?r>`$=g;oy9MU9Y(M3wI-p8s${0VOj37 zFawtB9DLC4^Ph<+ybEEQQhut|tGul6Lb=WBrY{i%&TAUXF`o=M@g#bj_TL@Jcsvgng^4+$!TBIkIv90EnZV&@L4dXb5i%Av@a1N)pJMl`%!{9Y1a7<&V8DwcKa-S z8X`wfv&_wW9f z>vElQoX`9H8jt7m8M_IDlkefI11Pvk%x)D$v^PgVNYGJt)y+dl3!z#Q%~L&lA_Tri)NowE+(Is2t_&l8 zofk-@CCc-E&)}y`Cl8xioFqL?V8}1coi=;CM5kX2E}Ny+73hxmt6@k~qGXkZxoT12 zo6X%3O~dla%D7T`NPSmrJU_ODEbQ8Jt;h{Za-%=|XMS1Uxjz@tH$!fpkks`Zzz`l@ z@U~y<3zM3Rp`24MwNW>ou zkR*&{YQ~Ay{wM_RRzBaqj|=%WP+gE?huEB@6V38$X6Ho5|bmxUU|@7`Sbww9WCTm~|I)52Ta zWH?YH)z{bO%u1^|=_N@uP>mPmMv>R-}iiyw+miuggP-s1Kc0Prb_@@>AH=Oc@8Fu06(KXw| zcTusMJ~Ov(yrF-*mG|Vz)1y+XX(aV_nmpJzlRn&*cKU4>0alCc<7JP+$C*^ri51zkD%*K&z>U{+)3= z_v0Wj8E&T25n$EwupG$I*1B;;SW$)cYz##53-^xVHL+gcAh(d6S-ESsQc?Jw?x+R1 zBH=hDQl+?Pwj)pUkD@b)BN}3&G?BDx=eCQL1@v8S{cYS2_m2O6QRMHa>15leMGU9T zijpul-k0N%{$^lu64`G;9}oePBE4O7D?)W(P27 zj&zC(%cebR_?EM;h(NqkrqR*Ee(TE`LV4q}p5}hjJ(90E^byk3IlOd+9odh(f78Xd z?$Yh0ix$z?yYas-;@sXQl&8hT-7lvj9(C=qS?nTkyya6XbGrqC4Ox@W?&QI5sV@Ct zWf3XZAuYdNL8y*ZjetTyVr%>z#ku9Iiy+=8zW+pir0P6X!wXe)snwH<+{jl6efw4% zrXXQCmxqoW_dGZwn)>@k!|3v&l+9K=2xs=}Ak##4Q(uLsXoZZ;KyZ0$>w~W_TMIX7 z;e@wdy5Uw@v~bRJlWFZ&fFup-f>RY)Tqk92LoQGM_9fe`SFo0whg_Y_mA>R9vwXLH zhG@mzl^YGP>_QsXdPp;JpvDe@6h|3XzAj`z}2QWyOsc5Jaw zNwMo+D(hSBPhW@@PsV;mi+-YkfT$7m?+pzlAWpE4VoZ{t{sqj`{B|<0Vyfm1vUc}% z&{=pniRG&#_@Pyyzk-?0n!!ua)`Dgc{StN68)`delrP(U6*Uj3lxS@GzA18gJV>I- zm>^M~_!&!KG_>)?jDwwB$3jyis?d5y3M08^MVCgzg1~o&_GZi%SA7J$aRKgW{LpR? zrtxuMdGO$RHMpEaO2_A?W*oBIrdGb1`l*q?Hjv@x+~}_yHAV=L;Hlwx7fXSM<~Tdg zI5b#aXD?^|d0Y}t`tP>gtLi@owTL_MU@_JtbM`;a$?kh?&0I|@!BNaV_@=}Txc$Kw`;g5n|Cc2iAP>d6 zL8bgai5=N2`il_qUK~B135T3D2wf9-P<^#OchXvwA&FN&ND_lnq&~X~(%L`4it0sE z06>7S3Aie);leM7WHezaMKF~y;km*Q_Ts^JHD(SHY?YgaBWiQ>duDAC+tG6VtObPT zjvc^BU+m!{Yk1{krLfzNtS^!;d#VK z%7nPAAJvNQ1q0>3g6p3SeewGXf=e071C>NBLT7gsmE*@ZKQKqz6{igMbslRu9UwWDceuz*I*RbW% z!yv^aqSof*h!891B_lTPVv)q{95`b_kKg4ys!=HkbNy~#;8)EX=14AmD3v51p%CnA zK%bY2lJk{jMgEdfZgnn)gTc<;9s*`0NEo*m61rhd8Rpo$$2D9S6!^oFdC5f&16mB1 ziz%UI`qpau#Qi|P!)z---wx#uAiMBC&YiTmr)a?4ZpWQJW;bMoP$CS9i{laW+Tq2q zf;>Jj46U-kL1I8xGDmOW;qb799bD@3^;ikoIY4dO>eMqhn5~9wT3x66&bZ_JTzEt- z0lJv3MXcUPI^gFPon^~BSRm$9(@&^EZ?E)=eHyfO=dd`_jA*Bp%7xXHa6YD9j_4Xj zKfe>R?HPOg@?kiTcckrj)BTs6^rZ|9G#&4b?Aja=bKAMnu;>Hd$FxU}0D|D8h-MF$ z1UAvfryj~1IrP(%2&&`Nn(A-0wHE(T0ziu1QY~aB!(Ex4oUJnv@^JI&l<;N^c}vw$ zEDvE`pD;EL+S4-|%^Q<18O7EL`sABECU~|s#>5JCJ}Ial@LKLu3b*c#!hWfceo0w9 zq5tCa;gtWyYxroVH+O%AP;LRhq~!1mS}llwZJIwnJMqkHH)1z}sTWMiR0=h$YIODV z(kq*q+I7xPtIchE_%n8X-tLzW*L(n>fvPVT%>)x|)Du+-JA8%b;iRT)ytvvj&`EMD z$oI{ni5PdBIi31^L@CpVT#Csc&7Es{(w-fRi?PgZ59B77EC}Q|kq|dly2hRs=6c%Y z=A;**VJj~BMU4FTwCc*5Er0ns2}Vu5ln5Qp7smnQI(XJ){I%D^7%%b@hCfZ7<7Y*y z;I%u!TEPsP}~#>e1|+)|=nWk=7o+wFvG>st-3!O-*In-r5}tOiL5sluG<*^q%oTpF7D? zFjFQc(6gE~@!n35px6UY6h<`=zV$Py1-BhUDvtIpe@qDGY5q_&#h+I--N2vd>dvJ& z`S{4!>g6aG6QIkDSmdktjZfeeL!la63ObZ6!Dt{?vsyy%(hKg@4fGDV38$pC5NXxttXvmsGWTHH|>P2zni>r@GFgs(uCVGu0 zuaFT^mY47yu z=7nM3U!qg^u6CgiWTVUeXqXZ@XSFRvBK2kjm{F9E?%gu}eF$ zlOhR*#pm-VDe9?4p?oa_)OL3?%oOQ53{l03+d21c#PePbUzx-#IR){+!|0GG3-p1uLzjjJKjA#e`lkKi|~L*oz33J@|)7iXKbb#*5E z8QTlnrk8Ud;Efm(GQv#X1-N=9UR{ADi< zhMVdMM7Q=*&nF)zIH$DaiUYV#`+#-j3o|nwI;Yc{c7VCA^m*ocV_a(oupa>uzT8>= zQUhH0WD#xHE9f^PZ}I19!xT|i(bg=SPiG#}gEscS9n{t~F8w?^`BvHuEWyFXtp7%2;rA7QLvf58C({K}Is!6Fm@gW93E75YfHe>#kIHtj@4{C8OC@$s&u2)hE$K zCYmvw69-yCPkpC*ChUjNM?D?*>>oa*)TW@WnsKIt-ns8lxhXKsw|Vj%iDVZGbb-Y| z-iQrD#!LV_)I8IID!=QVW-fCmF-YVPRjLdRIE6{t3z8B@<7LXN{+{>)@<7u45Vc~W z)JT3=d>Be8B8fa^y^+~kqQgoVl+HY#ty4d11S-qV-RR~_?zIG%_6ip+LMG(h0jYXu*)!`dL+IqlK`>PE0@n*C#YThu;)a8f(Lln22a;YWe_ zY{p;(_?ozz7LwlddDQ=Xp;-mDRWFO!WFw*hJFc;bi9C!z+*1Rj9*od=H!~_d%mJFM z`yP&tm8)e|xjSw7IQVNSQZ{X;b&KHeP3&0w4ao$$^u0bA*%fyldcyF3Y;0&56#h!Z zmph0%r%y2L#NnK7Va@N+&TrQ0JTuAPajqK_>ODo$7(n{p9B&kNW<=!|+!7=0-)5ZP z-*E+I8`m*z2xFhpDur$>rQxpg)|$4o()bZE=Hn#OVl3bXEF&o}@rftChqSKA+I6_n_wJG!m=D@&<(jQ;*$A{;p3XW zmTyt?%VCwj_erw0Zlf)+u>EIz{Vvu*%1;iy4I$1L!>o?P)G}F?s!?lFu{r&gF3iJ2 zLx@F4w{;_VgR1=Z+MYAz0WF79EIWB5J4^V84GXmfW_JB^QvJF_E@p9V?rC&U&p(80 z>_X6-%$wxO99!X}o^|Zh40KX$W;fWPfsUm_1B`zlY!H%0tQqO@R$RM01x-v%Rh2lf z1_{s{_4TpXvE>B%(u&0`KR@I*E%apwSQRNgpCd^uQNCp)Px?yMiJjs3> zrBfnTeI|;{CmXB8nsAfRE|m8>Mxgxw{ht{boiaHTgbWEZ2{27U!L(~iz_Kyf467BboL75P;g`%O6{h+M%V1_UppwmQ^PHOD@c~GgfOG_gj;gDly|1Bg3ns2Y7 z~A8M6}`}(KE-9qR;+j{MOud6`^y6bJ4xsBO_Sjs3jL1YZu_$3cPvSp6?HOCC` zwf0<&s5KP^O-Q1@!L%Zm^c^2U<663$t2KYwxPg`l{RID6>@`8=}d!{y6b>z-d#KNpooL};@md-1cjU=-zJ&j|KZ|4sSim@iUrB6%rzM1}I>G8&Y zJdfU35>zlpaSh|XC3lad>Fm6v-O=n^-pY<6h#`3BO}PAqBIOMOb%L28n@gYNq42!G zac57&?j$C$p^=%k6A|HinsJt5u1(_j;Mb+khU*R3X=LfzQG>Z|;?QmB z)^a5}PU|4^t}OF56tkB@xmK*TW+iVg4drCG#$G+{!Mf$i#%86wswbVkweZcVy!<*; z_UrZ)R?bm}_6;n~X$->tV7jL9FvR^#$=5HM2|3Ib5ZOKZIW>n*neb8NnBMLJ0+nHC zK#y1Rv(q|y(K$OM5pBjFw_*D9$t17r)@#EQ?$z2A8OL8cj;{*$GWgdxZ_t*Bkqc}j7!aQ;dVEl50a2fMTSl42= zv?6fGM?zsyGXuR0K;7Itw88z=cHA}GXeDEd0-M3W#@8oNaC86=0LpzXz^E@b)+09P z;ewZt=c-rl9tl?5FfP(8T?bb(&!aio$w*f4s-zORIO-pC6Jnzmfocar5pbcwxMT|GF#K0Z6GR8(1!DZ?<$v9~f1d!DS)R@*!IjhfazIJ^iQx^@4SIDY=) z@Lw;AEfHpJ%+a~YIjUw3n^>A<6kyr^91;(}(t7bSj;Y$i9X`a`xQm%pb%=onlY!Z+ z(|P}9PeijuP|x{KVMG5tA}a<6ViNSheJ5=H>~_ea{{yvB^y~1Sb9f zI>Khu`R{LaRyMXR!6d0l*-obI)x~?&+%?I)t+VGd^U+7ggVc~rm>^kVg#KR^prTbp zka= zk$&jwW{v1?>J?M#$s+M}6o&Wy0gE%h?cLwW~wW)Zg(+xZ~_zGR(nV`SRLsOq`uB$`82Gsp zoMYVU-PIZ^l=J{uv{FWa1}+zQvbht^gAJV1fZMo+ zO5sfq>(D@YwB;>S|JNf}%h{62Pd_yJZmz8KAJxn_mpOM!#b3mH2pOudQ;g<3%2w~G zCXRl$(3R=cXK@Z(IiZfCm7W7MF@a55%=phjS0~nLZy`?V*7kISP5aGbf|5U#I*`cW zeO|kjXpSe%fie$8c?otRHBuR*AQc0aE=Ts;DT1<^e3=cTt{;A3J za$0%h#iPb9pL5a^8;3{;$YbhzmUASCLHwN&Q5@OM+Sn7{J`yTLATRjelo(}jCxz$p zWb{Sm%v)K-c&H1t^s5^I_l zzS}(EqbF_MOO)IqEo!`7@L_ank%3C#_ zfx9`?wA?Oo&H;lV8pUre%iO&daTk9L&*fiDd}k&3gee>QJz-*N8wZE-&|h~3hU=4H zP;lvq2RTo=JPuosa#E^a-!>a#<~$7&Vj5XqVSW>T|Ez>fz`whCb$Psw*BPSb!N;ZD zxz=c)iEs*N=m?Kx7xMN_)elnFq+X6^RC7Om`94AT*THLW=!_do4!KY1?Byj}Ke+@S z4o%eE-1puk!E1z}^Y1GwGYPY3lWN1>5>94H2v|H$I`Wl;Xz*ISncHu!)kV`Mb&;St z#~=ValGQpE5KQ$~UtL$9Ki)FqY^%11-RkDlWAH>Edai~Q$2@(!{<*zGw={{410cGnEK ze1!*hg3AnwJ5xXXyBO2qCC70ws{ji5%YjazEwtmkgKLP=3cPFpNbG zzoWHz*w|8zZJuh9vf|2*W>~Ec^6V65S)9Zf=E&uCwxA8K%yWeOsXh!(?f4nUgFkkoEys6(20ekx^ zk=vem+U{@iHwiwEDxe5r5zvsl*=^&6-;uKgjrb#sP>A6whiJ3w^Jb>&j6bxN&%GxGeR-a2s)xY%U+$>2%eJ9Pr?*`~+v0es z?bdG4A9mz0#6o^j%MB;r1HX~@aqst=Y@o8}pdJ7*a7f6e%QJfj@WRc8AkMojv+uPQ z{~6R)ysXtT;U$U9V+cp5BV=I+Ohf!E-zX*%8Vwj=FRTm~9+Lh)p-@ZdxAfiVED%)vVk3^> z6Xsij(;_sFj+9?lcie+6l_q~_sWy_Hzz z*HGPDUd)#aYG(SvreV|cZ6nUKfmhrdh{Lg_W6flg;>BDb0`Kv}ClNKecp_Q+tKOx( z1Wf@_VTmG>!PXDT#0T8;`l*pIK4oeq<$4uW_1(UWGf)RY$L7g73*Y(x(a)8E%ZG>W zqJ>Wb+`d_`|Ea90f5!1e>_?lFrpdu*tho?5aOlTel)hWgd4|}%vSUx{2ONDi_r8c( zIpO!=zq&PBXS7Mn%a_bIoIrW8PR!kNBgIKzH3wa9I2!*-yW3WLj0J)`mX3qvW|AhZ zk;%>PkeZY~VuN>hwW@C6jqROYv2WqrAaHuJB|9v!)0Y%Jv6qRG?Ry+C{|@xYb*MTM z&qR7&^hBpFJt5@ZebgvfQkWW)NnZ&F9PHlBun&NOpH|KO>Vr>_-zQ&zDqEs*uz63A zgSix=mH6jj*?Q9f@u-=hP=LCT0P>(?|Ojgyc;Q;(78es{H%hYsS=wI7s`?Y^!T!nFO1 zXD2m?G`DJQo&lWDO>FU%(Z7acmbF@(DG_61zuPM8!R3C%b-cFpITr0}S&|+q*{7t7 zL4lF;#IzM7UwK6~7iCa(NH*f|Z&C8;tw%DA;9Hx!*ang*)|0@dp1l)!J~jB?s9zsK zJB!8A=wvJXa1r_%FBmn1U}5ey<4%KLLVj0ORaeM?oWT?rwn&^_DSA|AaMM4)xog4j zW_KGxA}$k83wyYOZ)6vpZba*~zUZu77h4x>p2{fM)8_Q}I4P;s=|zBlV3)5W>tEh3Pt5Q))b}N; zXu778$~Y05&6~B-RDAgT7s7s1#HxJz{>*Xq;c2F3D(dC!c}dM-YzM)NRWd7dPHtqo zY43esM6Z!x3K)&EW2@c^3<#q9qEqIm7o9s#J;#gEDB;wkE{cqdoDlt5UfX%%vAGq0 z;>Jr>4&VU#h;NO(wVFAxu`J@ALDWfSMfv0Q**^0`Qm9uS9JCM+n2%;ByfLG8Ar}n#-Uhs68Sh zaX{6A>6&qghLlX0gA^1z(`)elFt55X1q$TB84u7hqpY2l`yPW*G|GHTuePEcV<>XD z=bxW9h4Y}>|NP~7;I!Y7E|>!BD$K#at-jVM|6nnu)!a<+R1^_l$@jw`a)x)7q|Z&9kQLV-u`Z0hA3#&UAPN~Ll;+wY55 zu#-4C?lA(!$>x7T3ud;k+DvX~Irvs8U!r5qPJV@<*ZVQX$(h@jcr2B)nrx2@(8*b& zAMKR>5tKLn_4S##>N0|)yRY{V53iu_OOoJq{n};|Va<#xmbMnES?`1bM38avabuQ% zTgzT*FAk{-51HFiWvx^ys>)mcQFI$DjJw8T)`sv&+nMZL^Hq!=mzMwf^BaL9>Hi@L znfT-BQaNqunlh^<@8%x6Lfnh;4#e4Q2PdH<0 zb!xV$N|fm}i8=Cp6Wrl_1J6~qfl5|L<7Xc=zT2b`|HJp*BtZ&o1gT*^kIv5oAW+8D z|KW>!RtOylCmOnTn(WEHoMbP7X-E!6FD-G0goIrBkOBe)-0jgr5Sl;e9I&|zk6>4* z%OHM~L0qCi(9Qsnr~myX6!I<}$p3|*!%j2&bUj6{I}w|r57D;a36`WLZsbb z0zYf%L;erzPMAIRUu0aWGyx_*Q468261Z66d<(y9YX_yU>XRk-%7?XfMrlcHQ@k^a z!PP9WYo!r;VOjUM8xcxCv_@vFOqf6GT{05?OV(Nh!h(?n!y`A;Yfv-1B*8JyexRp2 z9iGX`;#=F0c>O{pKD00<5qnW8fUC}^LMVOoJoZVQOE;&Bfh#cw)1+Y*80j&O&VJCS zOjxe5O@*h0Imz$bfKIl{yQ)iilXRaUG|u%z2KLP+%e+)N{$(Mj2TXvJ04Z&HmN0S z&okG#;rH?G6ctK|+1c6qMd$9894*B0Xq91H>mRq7a*V6la)IAHgC?WZ58v{SlQvFp zzvT`ZRT;=Xl#Kl2OWU}gB#&kDcKzUlT(2R_IyH=lK`S-l4PS;LpRh2UY<`;cIJc@g zGlC3fh-P+c>w!K7o@P^a5->3<94QKXzjEL*H9s{)fi{T&8JfvrA8Ue~jjwN?8Rt(Y z@}B|>`q8NL;A;C_Sk-@L`WKgVdSjgRGFu>Z*Tt!)M!>%Akv{jx50%&i*E&3`gUmop>Tu7g;Y8rx%Y@yy9#q#p9@BWx&dRCUHE;q(u!ifEW z!YB;FfQtkxm?AliIwiV5E|@IEr62sYSB!cYN;4I8WY=fJo;UJ}pj7ie)X(jc127H8 zsa$y%K1FJcA0rXt$~8wa5RWG+^*1$9EOz9x(A#12=3|<7G?F#ULu$m1HEO6qJNA@5 zH9PB!agU9yxuf0m+#~4YE=NZDCF6oV=j7wnpW?gq^bCwr>Czsh**VzHc~KNU`RMN@ z3pTMH-|RsvO^S0%;hE~I$?rGwXv!x{Cl#R;YqO~7Hu~>b*eGDL=um|qK}TN+d}-@) zBkM(#(2C{qTx4XBjh?2^;`CE|NJKRLPd#dnkL^)e9t_un6@%FcK0#hr5b53R{y zD}Yd056ll(XUeBE0E@2y1PShKz!Efy19Ym2dgPI}-U=_OkjjMSyqA-_c9oIwig9i7 z@T;mjEkv2~A7kc-!>!2Fm=>9f?hg^x{1Hu6VMt0*ptG~L`(jX%M{TY1!N$s3?q>x@ zfck@vw4sECslnzthw_GV#5ivu)(YY!gtGu&y4#|}Zk{RqlXakJz0#lr^ir*I4$S<* zttA^?*dfgu=?Z4djKK^}Pjpc*5Xhx26f!2^)aZXjf<-yZN_dA*Ld3=9;o~Gs86e+R zozg#9p7QWUeTmKzdad|Phkzkot#}N0a}`z}_`uvfJpNmMrBtR7lx;muxPA>~Y{XP; znQc{BUynXN$IXvz@hWSF^q_$tJid&+FU;Azc`}T8pB7}AGyXY-;Vu`gjc>RnE7Dzg zxAp>4m@%4L{Oqc*Lw>1j6WFWx9wlMnO$JdnISZH4&495?Iu z$u*LWj7&Clq0bRVc1D@{HH)l@#c+yAZP(SV``55r1}elOtW$Lw3^4GZb7yd*C=9>& zIhvl6Tbo&2f?>jL5!JkDL=w#CVL;Cu%v!tDOh$yV3a078;u=QeYpEBChA+Ob{%KC0 zK{S+Tu0l^t_*PSD*E)7d3KjAB1Nvm&+fuGiS*n=1d2R3jbAn$d7xK!)xLi#m!)6jP=4wd|;du;8R7_V|X@**^e> zC@*pe$uI62iV$W^?;fA-_Fs%op}(k=sM{lul+n_u>73LoVboXaaw`o&ZWN0?XCV-| zqs96B}eL;cmg%Fs}RAjX{v-R~`SB*Ev-lMs;wXpC`v7p6{A6;QzH(5Gl)klSt zJT3d0s{v1^;f1WkcSwzE-leTQR`&d&2nPDm0)=R zz6OL?+^}ZJ8L@Nnb?$)>Cp0u~_bCLGewWfaEa8Lz7|Ox(YT~2P7q7D=E|j(7!G;jD zcyj&&%hBh5qW_ziP*x7ZWx}0*E2Gb@@_ z<@ebujCav0H|dkz-_ZDE1&BQGSzQs3SfDX1Vpl+(T3@1!46 zQqn8feKb~C;Cs3)E>@uhT<4u}P6jXBhAC1|zwn~3^=AQ7!aVRvolBQiX^)MqoP}V# zTC40@ST(X>@+sEMy&PL3T{>tC7>F5&?|s$~j+Dya#b)@ASZoH42o42?rzYw$iSqe^ z7V5()dKl$ff}!tw{+Zv@oxAU*ugNc>>HK*(9y+zg1 z!C|ePok@4MnjwRvK#N9Cn(!WX9UZom_{uI!+pBDlnf?jLM(~hUXI{3cLKU^01A64Y zGM^v_;R^jYlCidecqc^9%@XImM!& z5|n*|-_ES|H7B^0zR`C(_R>K0$NftclM@Yklkv_MmT-vut9p8YNWY5X^W!=7~a)hoN4HU5SvzTr-_I}fZ5i-{!LjjM2-$d78d^0e-1+G4ku z<&H0||BIjrwfgkx%eRrmliJb_1dK-J2TA((=ry|lOx0K;N^qv#{CCutRiK)nUgQ2* z!2s@W=lneUwTi%Ad{r_f`u||A2Aj+epN4g+y39ClA=XXAgrx_MY)Qvm1StxxWUkG4 z(P|VY&~=*Sf6vX3)%+gY?#SNCj;+_;YnsW0?0$QL^H!;K>bKH%8zRxvoE3i99x^7u zFu7}Cm0q>z0TME+-SiXXvlg8TCr%Dce{v)FA>Y_8B z^lNi;-a`4k0FgcgE92ycU3m|lIlW4i8>V3k<5G_xD*}h>(WCSD{99zfF+?A0$LMvX zZt|DqV^!XGa6OKaH*5Ohvah3nzD{KAzGYHU}IQz;xW; zJwLqr@F6Us8i3V%DvO^OPAf1z{sHx`&*yZI@^u?}krs>q=9&%*F5)XIpTqaxV`E}g zv+0-!3Zi+~F>^u`gU(;#xK6_Mn7~!=gc^~P3yxQ!PVI+JBnMFuAIw3CFP zbML|UW#9b(Ui?3{6GFQ*o7$dvhel(fLvqT;JJ4kK`itd#ixhdl-b;md35rLr^SPkaA~0(cFV$~S1h=j4 z9&H%{9-gNQq2EV!65I<|{*-oV(f(4~>HnxizjWZ!U{Ih__yy}4lrp(3;(n*OlmzW~ z00+>7mMg^BNY)h!2{Dw^*{81~X~ZyG=_YRw zQDalF69+wlMkLL@Cnn<4x3C{2*s~^bz9J-|WDiZiE!FDb=|&)}e?0;>62nS6dFvft zjtMVTWx_&Vdp<|=`4_U;cNu(QWlXJxCMy)e9UI`Q6mt!o6Cp|K&eKu<0)()pK~^u! zi=Nz6t{w$;Os<3$oK|z@Kbbv}{_6EJj6Rn9xI0|lrpiVb%f4zH!YlayR=3hWO>;%% z!sb6h`b7`DWg&kt7elOCBF$Z(h7TLFUW!6Tz=2JG9EMHl4Y41fO@BN4q0=n2TiH(c zYXH8>>cGlZ>tAW{azRBxcs}iHJ|^6912$v8h)zX3V7N@3f+0zURua+w*Ij^TwbhAPif-|d z)=ja@9iq<~Jr;o-&#|4}mZ?=YXfhf<#5$DEqL28bR_sX|z2aI#CrK-p`AjOGS4Gm0 zc+z%xJH47;FKA8an$~)tgcD<62=5G<03Nhz{SSYXTjKYW-L~C=6rA;wwzX8+Dli!| z3=9misY}jP>-`lQrKO`Uk@LELpOFTf3uL@>23bOc-|=wPdH)5KZKVGl%zgCo!MFcu z<%Zm__GUd-N;H^Sw)N~AaI0u!VTSEO9@6bcIe?fPNKq&_qPOACSZZG8joQ6QD{xj@ zdMQ$vyPXmJ3j+CfS>y;*4>tNC)+wJkU13l&Rv>@w7;H$RiN!`ujjTk+px$znd6 zwYccXs>u<6_@hb(r`-v-$D==!_kAk{`~QyDa45u;QNG6caT#+mHAOUQk1Gw~nPhHP z3vP?S0){RXwGCD&{291=ItjZFF5=jG>05=mw80a^EOt#%fOFFNkqaQ1_cuf!J_*9l zgI_)Pd@V8jCICbLB!F9w0nCcJL{2O(B9_@QpOZy`i^wv>Zl88$o!*6zDwGyI91Sh- zci{^T7~<+4Km3$97$nYv+n3xk_9wmK5#Ww7Ws>vNYC%6?D_QHdOT66Rf#u{aK^PGanxi zA)N-rN~)#sN6=!fjk4HO@jFb#Y1>5oFALCUUWE&w^c9$(5!EX}Qk_i#Tz(CIF=lS`KS}HV?gS!Dd8HxgI|1d z0!-_m-Kgx``-lBmPG9_kUi_qsdU5MaIKf$)Te!uDmRhs^9zT`8uhfMe>CI~t}zl1p;YkIWAV(! z-#t>mg*ESpj(UXnPdV!+NYMC(8h2z@c)0gYG|uC6Wo3YbDV@)GU@EHmU9$dzmTICwqqam0=zC1U&R3eL^~3gG#se}x)Mh}B5J z2=Ul#ESt$pj;!9@euLoz)dsDPpJH2|*-XuPK`H{a2cZr(?OUq~QXRA>bCF@7bQO zME^jtob&Y05Qm%o(;(*V=d)A=$$5nc**UE(e=;)TZ&Exo0z&E{3L2;89GOn>UvR~- z7j61KSZUV?JeLVg;nL7Y>TcX?on_O%;7q+Ghm}fj#dYs^q?I$RL!Kjg_0{TeQ{`dL z3t2AG+IE@d!TTSM{@)gE4J?l?Hl<9PQUgm!gA-^96~l-n@v8L)=u}DLKIE_v%ctkG zTv}rwxki(VakZa#C&kiyDyrT#7T>VnNjpSO@+J9zR#8@rVxe`!qTUJq`o&^}eurZ&P+ zK>rYZJ3%o#-2P#5zuCHBp&HH35Id~T;=9cgdVXn=H8UE2Lt)lpXzps3>KQw{bj<_n zlnG!P1)4mS+Kxz>Is{B!;+OW2H)j3Xlgr1*!8FE`iY)gL&{AG=|T zFCRkP;*E}6!>qXf{_aKX{k;1t$kjo<6H7DuyJ`)(oy1PFuFDY2Es)--(i2{KX@I)z z6w*=V9yT35B5$9a521WchI8rD_SgNM{xGaX@NVQ>%}^|WD&NBNOFAce%6nO031EuT z-u}$jar1iP`6}L{Nmj6R`)E)mFLlz%QMnR797oN{>O)gVcxNo1K_eISXh`2t2&+26 z0okp>*B3mOFIUjP$r2_hhVS+2Zg)lb-=_&Sk>I(t=Jo3l4)gc|cqkm1C}vx^{Qb>U zs#hC`vWB7v>cG-r$bL9GQPEJtIZm=WsKMuLQ z1*ZpU-j*J(_n1;k%0! ze{zK|-D4Gyi(IA_t864Tl_ZzXtac~iD}E3a+-m)%hBvP+s>m8Vx26zD!6WDF5a=M$ zm-4iU5BX+g-`%&@6F@dCKWoG2o^7sOE5$O7jWgL{O_Ua3&iHwU= zWhTB0oXZ{wZirX2LjKc?KS#d7#yXyvjy}t~Hw_9~y*2}-qZ@y^$OD5pwArl#ij`GF z=URomlZB=&5mD@u4BqkT-A`>a$OL!QurP$|?jP}4-fOa9<|*$6!!#WX%CSaUW#tIb zpD~d9Gt*Y}$cuSV%Hw(qJ1MSo*BxuQg|(koBfW*BTN30b&^cEB4b#A;;nJ!!sq6Ep z=-1sLS|qaNLqPPR%9=aB8k0KU@ReifG{{dHOoU-U-^H!8iGiJ3ac%SE&Q)WSr8X&7 zn!U;jJrNCZ>#Zm*anY5i+~iKPSVc=!SESUOGKuj+I~JG4wK~Nrl@YyuQ}E)B>y#*t z@Ak}m#!(pDnp64x8pz=}CZen_qDqHZo2mG@c0mcy^GpIR2pVbF6>nPZboqd?a+ zx#?YNff)YmzZUUJ?P}W69U9~bv1b

_Wf?diR1%%A5)&*;dDRbdQDqvo(vZnqR++ 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

); }; diff --git a/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelLoading.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelLoading.tsx new file mode 100644 index 00000000..e0d7d0aa --- /dev/null +++ b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelLoading.tsx @@ -0,0 +1,20 @@ +import LoadingBounce from '@common/Loading/LoadingBounce'; +import { css } from '@emotion/react'; + +const QuestionTabPanelLoading = () => { + return ( +
+ +
+ ); +}; + +export default QuestionTabPanelLoading; diff --git a/src/components/common/QuestionSelectionBox/WorkbookGeneratorModal/WorkbookEditForm.tsx b/src/components/common/QuestionSelectionBox/WorkbookGeneratorModal/WorkbookEditForm.tsx index 526671db..8cba94b4 100644 --- a/src/components/common/QuestionSelectionBox/WorkbookGeneratorModal/WorkbookEditForm.tsx +++ b/src/components/common/QuestionSelectionBox/WorkbookGeneratorModal/WorkbookEditForm.tsx @@ -16,6 +16,7 @@ type WorkbookEditFormProps = { workbookId: number; closeModal: () => void; }; + const WorkbookEditForm: React.FC = ({ workbookId, closeModal, @@ -23,7 +24,6 @@ const WorkbookEditForm: React.FC = ({ const { data: workbookInfo, isFetching: isWorkbookFetching } = useWorkbookQuery({ workbookId: workbookId, - enabled: workbookId > 0, }); const { data: categories } = useCategoryQuery(); const [activeValidationError, setActiveValidationError] = useState(false); @@ -39,7 +39,6 @@ const WorkbookEditForm: React.FC = ({ const { data: questions } = useQuestionWorkbookQuery({ workbookId: workbookId, - enabled: true, }); const findCategoryIndex = useCallback( diff --git a/src/components/foundation/EmptySuspense/EmptySuspense.tsx b/src/components/foundation/EmptySuspense/EmptySuspense.tsx index e46849df..c15f08a7 100644 --- a/src/components/foundation/EmptySuspense/EmptySuspense.tsx +++ b/src/components/foundation/EmptySuspense/EmptySuspense.tsx @@ -1,8 +1,9 @@ -import React, { createContext, useState } from 'react'; +import React, { createContext, useRef, useState } from 'react'; type EmptySuspenseProps = { children: React.ReactNode; callback: React.ReactNode; + trigger?: boolean; }; export const EmptyContext = createContext({ @@ -13,8 +14,15 @@ export const EmptyContext = createContext({ const EmptySuspense: React.FC = ({ children, callback, + trigger, }) => { const [isEmpty, setIsEmpty] = useState(false); + const prevTriggerRef = useRef(trigger); // 이전 trigger 값 저장 + + if (prevTriggerRef.current !== trigger) { + setIsEmpty(false); // trigger 값이 변경되었을 때만 isEmpty 상태 업데이트 + prevTriggerRef.current = trigger; // 현재 trigger 값을 이전 값으로 업데이트 + } return ( diff --git a/src/hooks/apis/queries/useQuestionWorkbookQuery.ts b/src/hooks/apis/queries/useQuestionWorkbookQuery.ts index dc876918..8d162fc9 100644 --- a/src/hooks/apis/queries/useQuestionWorkbookQuery.ts +++ b/src/hooks/apis/queries/useQuestionWorkbookQuery.ts @@ -1,8 +1,6 @@ import { getQuestion } from '@/apis/question'; import { QUERY_KEY } from '@/constants/queryKey'; -import { EmptyContext } from '@foundation/EmptySuspense/EmptySuspense'; -import { useQuery } from '@tanstack/react-query'; -import { useContext, useEffect } from 'react'; +import { useSuspenseQuery } from '@tanstack/react-query'; /** * GET /question/${workbookId} @@ -11,26 +9,12 @@ import { useContext, useEffect } from 'react'; * * QuestionSelectionBox, 문제집 상세보기 페이지 등에서 사용됩니다. */ -const useQuestionWorkbookQuery = ({ - workbookId, - enabled, -}: { - workbookId: number; - enabled?: boolean; -}) => { - const { setIsEmpty } = useContext(EmptyContext); - const query = useQuery({ +const useQuestionWorkbookQuery = ({ workbookId }: { workbookId: number }) => { + const query = useSuspenseQuery({ queryKey: QUERY_KEY.QUESTION_WORKBOOK(workbookId), queryFn: () => getQuestion(workbookId), - enabled, }); - useEffect(() => { - if (query.isSuccess) { - setIsEmpty(query.data?.length === 0); - } - }, [query.data?.length, query.isSuccess, setIsEmpty]); - return query; }; diff --git a/src/hooks/apis/queries/useWorkbookQuery.ts b/src/hooks/apis/queries/useWorkbookQuery.ts index 64a60778..2db95eeb 100644 --- a/src/hooks/apis/queries/useWorkbookQuery.ts +++ b/src/hooks/apis/queries/useWorkbookQuery.ts @@ -1,4 +1,7 @@ -import { UseQueryResult, useQuery } from '@tanstack/react-query'; +import { + UseSuspenseQueryResult, + useSuspenseQuery, +} from '@tanstack/react-query'; import { QUERY_KEY } from '@constants/queryKey'; import { getWorkbookById } from '@/apis/workbook'; import useCategoryQuery from './useCategoryQuery'; @@ -17,19 +20,16 @@ export type WorkbookQueryResult = WorkbookEntity & { */ const useWorkbookQuery = ({ workbookId, - enabled, }: { workbookId: number; - enabled?: boolean; -}): UseQueryResult => { +}): UseSuspenseQueryResult => { const { data: categories } = useCategoryQuery(); const findCategoryName = (categoryId?: number) => categories?.find((category) => category.id === categoryId)?.name ?? ''; - return useQuery({ + return useSuspenseQuery({ queryKey: QUERY_KEY.WORKBOOK_ID(workbookId), queryFn: () => getWorkbookById(workbookId), - enabled, select: (data) => { const categoryName = findCategoryName(data.categoryId); return { diff --git a/src/hooks/useEmptySuspenseEffect.ts b/src/hooks/useEmptySuspenseEffect.ts new file mode 100644 index 00000000..52705743 --- /dev/null +++ b/src/hooks/useEmptySuspenseEffect.ts @@ -0,0 +1,13 @@ +import { EmptyContext } from '@foundation/EmptySuspense/EmptySuspense'; +import { useContext, useEffect } from 'react'; + +const useEmptySuspenseEffect = (data: unknown) => { + const { setIsEmpty } = useContext(EmptyContext); + + useEffect(() => { + const isEmpty = data === null || (Array.isArray(data) && data.length === 0); + setIsEmpty(isEmpty); + }, [data, setIsEmpty]); +}; + +export default useEmptySuspenseEffect; diff --git a/src/hooks/useWorkbookQuestionDelete.ts b/src/hooks/useWorkbookQuestionDelete.ts index c93cac66..72ee692a 100644 --- a/src/hooks/useWorkbookQuestionDelete.ts +++ b/src/hooks/useWorkbookQuestionDelete.ts @@ -21,11 +21,9 @@ const useWorkbookQuestionDelete = (workbookId: number) => { const { data: questions } = useQuestionWorkbookQuery({ workbookId: workbookId, - enabled: true, }); const { data: workbookInfo } = useWorkbookQuery({ workbookId: workbookId, - enabled: workbookId > 0, }); const { editWorkbook } = useWorkbookEdit({ @@ -42,7 +40,7 @@ const useWorkbookQuestionDelete = (workbookId: number) => { return deleteQuestionAsync(questionId); }) ); - if (workbookInfo && questions?.length === checkedQuestion.length) { + if (questions.length === checkedQuestion.length) { editWorkbook({ workbookId: workbookId, title: workbookInfo.title, diff --git a/src/mocks/handlers/default/question.ts b/src/mocks/handlers/default/question.ts index 89f96a5b..065b8656 100644 --- a/src/mocks/handlers/default/question.ts +++ b/src/mocks/handlers/default/question.ts @@ -15,7 +15,9 @@ const questionHandlers = [ ? workbookIdMap.get(question.workbookId)!.push(question) : workbookIdMap.set(question.workbookId, [question]); }); - return HttpResponse.json(workbookIdMap.get(Number(workbookId)), { + const response = workbookIdMap.get(Number(workbookId)) || []; + + return HttpResponse.json(response, { status: 200, }); }), diff --git a/src/page/workbookDetailPage/index.tsx b/src/page/workbookDetailPage/index.tsx index d21f19d6..e6fc13c9 100644 --- a/src/page/workbookDetailPage/index.tsx +++ b/src/page/workbookDetailPage/index.tsx @@ -32,32 +32,26 @@ const WorkbookDetailPage = () => { const { openModal: openStartWithSelectedQuestionModal, closeModal: closeStartWithSelectedQuestionModal, - } = useModal( - () => - workbookData && ( - - ) - ); + } = useModal(() => ( + + )); const { openModal: openAddWorkbookListModal, closeModal: closeAddWorkbookListModal, - } = useModal( - () => - workbookData && ( - question.questionId - )} - workbookData={workbookData} - /> - ) - ); + } = useModal(() => ( + question.questionId + )} + workbookData={workbookData} + /> + )); const selectQuestion = (question: Question) => { setSelectedQuestion((prev) => @@ -70,9 +64,7 @@ const WorkbookDetailPage = () => { }; const allSelectQuestion = () => { - setSelectedQuestion( - questionWorkbookData?.map((question) => question) || [] - ); + setSelectedQuestion(questionWorkbookData.map((question) => question) || []); }; const allUnSelectQuestion = () => setSelectedQuestion([]); @@ -98,8 +90,6 @@ const WorkbookDetailPage = () => { return true; }; - if (!workbookData) return; - return ( <> @@ -163,7 +153,7 @@ const WorkbookDetailPage = () => { height: auto; `} > - {questionWorkbookData?.map((question) => { + {questionWorkbookData.map((question) => { const isSelected = selectedQuestion.includes(question); return ( Date: Sat, 24 Feb 2024 12:35:56 +0900 Subject: [PATCH 05/14] =?UTF-8?q?hotfix:=20dev=20=EB=AA=A8=EB=93=9C?= =?UTF-8?q?=EC=9D=BC=20=EB=95=8C=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20import=20?= =?UTF-8?q?=EC=95=88=EB=90=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/KakaoInAppBrowserDetect.tsx | 8 ++++---- ...webp => landing-bear_g8bwr9_c_scale_w_1080.webp} | Bin ....webp => landing-bear_g8bwr9_c_scale_w_480.webp} | Bin ....webp => landing-bear_g8bwr9_c_scale_w_734.webp} | Bin ....webp => landing-bear_g8bwr9_c_scale_w_980.webp} | Bin src/components/landingPage/LandingImage.tsx | 8 ++++---- 6 files changed, 8 insertions(+), 8 deletions(-) rename src/assets/images/landing-bear/{landing-bear_g8bwr9_c_scale,w_1080.webp => landing-bear_g8bwr9_c_scale_w_1080.webp} (100%) rename src/assets/images/landing-bear/{landing-bear_g8bwr9_c_scale,w_480.webp => landing-bear_g8bwr9_c_scale_w_480.webp} (100%) rename src/assets/images/landing-bear/{landing-bear_g8bwr9_c_scale,w_734.webp => landing-bear_g8bwr9_c_scale_w_734.webp} (100%) rename src/assets/images/landing-bear/{landing-bear_g8bwr9_c_scale,w_980.webp => landing-bear_g8bwr9_c_scale_w_980.webp} (100%) diff --git a/src/KakaoInAppBrowserDetect.tsx b/src/KakaoInAppBrowserDetect.tsx index 7979efa4..32959796 100644 --- a/src/KakaoInAppBrowserDetect.tsx +++ b/src/KakaoInAppBrowserDetect.tsx @@ -3,10 +3,10 @@ import useKakaoInAppBrowserDetect from '@hooks/useKakaoInAppBrowserDetect'; import { Button, Typography } from '@foundation/index'; import { css } from '@emotion/react'; import LandingBear from '@assets/images/landing-bear/landing-bear.webp'; -import LandingBear480 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_480.webp'; -import LandingBear734 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_734.webp'; -import LandingBear980 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_980.webp'; -import LandingBear1080 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_1080.webp'; +import LandingBear480 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_480.webp'; +import LandingBear734 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_734.webp'; +import LandingBear980 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_980.webp'; +import LandingBear1080 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_1080.webp'; const KakaoInAppBrowserDetect: React.FC = ({ children }) => { const { isKakaoInAppBrowser, moveOtherBrowser } = diff --git a/src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_1080.webp b/src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_1080.webp similarity index 100% rename from src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_1080.webp rename to src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_1080.webp diff --git a/src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_480.webp b/src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_480.webp similarity index 100% rename from src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_480.webp rename to src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_480.webp diff --git a/src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_734.webp b/src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_734.webp similarity index 100% rename from src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_734.webp rename to src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_734.webp diff --git a/src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_980.webp b/src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_980.webp similarity index 100% rename from src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_980.webp rename to src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_980.webp diff --git a/src/components/landingPage/LandingImage.tsx b/src/components/landingPage/LandingImage.tsx index 37c2eb2c..26588506 100644 --- a/src/components/landingPage/LandingImage.tsx +++ b/src/components/landingPage/LandingImage.tsx @@ -1,9 +1,9 @@ import { css } from '@emotion/react'; import LandingBear from '@assets/images/landing-bear/landing-bear.webp'; -import LandingBear480 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_480.webp'; -import LandingBear734 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_734.webp'; -import LandingBear980 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_980.webp'; -import LandingBear1080 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale,w_1080.webp'; +import LandingBear480 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_480.webp'; +import LandingBear734 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_734.webp'; +import LandingBear980 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_980.webp'; +import LandingBear1080 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_1080.webp'; const LandingImage: React.FC = () => { return ( From e8e0d4dbd5f254d9823d85f7627fcf79d2a4783f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=84=B1=EC=9D=B8?= Date: Sat, 24 Feb 2024 12:57:17 +0900 Subject: [PATCH 06/14] =?UTF-8?q?hotfix:=20react-query=EC=9D=98=20?= =?UTF-8?q?=EC=9D=BC=EB=B6=80=20api=EC=97=90=20=EB=8C=80=ED=95=B4=EC=84=9C?= =?UTF-8?q?=20refatch=20=EB=B0=A9=EC=A7=80=20=EC=84=A4=EC=A0=95=20?= =?UTF-8?q?=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/apis/queries/useQuestionWorkbookQuery.ts | 8 +++++++- src/hooks/apis/queries/useWorkbookQuery.ts | 5 +++++ src/hooks/apis/queries/useWorkbookTitleListQuery.ts | 6 ++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/hooks/apis/queries/useQuestionWorkbookQuery.ts b/src/hooks/apis/queries/useQuestionWorkbookQuery.ts index 8d162fc9..280834a0 100644 --- a/src/hooks/apis/queries/useQuestionWorkbookQuery.ts +++ b/src/hooks/apis/queries/useQuestionWorkbookQuery.ts @@ -1,18 +1,24 @@ import { getQuestion } from '@/apis/question'; import { QUERY_KEY } from '@/constants/queryKey'; import { useSuspenseQuery } from '@tanstack/react-query'; +import useUserInfo from '@hooks/useUserInfo'; /** * GET /question/${workbookId} * - * workbookId로 해당 문제집의 질문과 디폴트 답안을 조회허는 api입니다. + * workbookId로 해당 문제집의 질문과 디폴트 답안을 조회하는 api입니다. * * QuestionSelectionBox, 문제집 상세보기 페이지 등에서 사용됩니다. */ const useQuestionWorkbookQuery = ({ workbookId }: { workbookId: number }) => { + const userInfo = useUserInfo(); + const query = useSuspenseQuery({ queryKey: QUERY_KEY.QUESTION_WORKBOOK(workbookId), queryFn: () => getQuestion(workbookId), + refetchOnMount: userInfo ? true : false, + refetchOnWindowFocus: userInfo ? true : false, + refetchOnReconnect: userInfo ? true : false, }); return query; diff --git a/src/hooks/apis/queries/useWorkbookQuery.ts b/src/hooks/apis/queries/useWorkbookQuery.ts index 2db95eeb..b4022376 100644 --- a/src/hooks/apis/queries/useWorkbookQuery.ts +++ b/src/hooks/apis/queries/useWorkbookQuery.ts @@ -6,6 +6,7 @@ import { QUERY_KEY } from '@constants/queryKey'; import { getWorkbookById } from '@/apis/workbook'; import useCategoryQuery from './useCategoryQuery'; import { WorkbookEntity } from '@/types/workbook'; +import useUserInfo from '@hooks/useUserInfo'; export type WorkbookQueryResult = WorkbookEntity & { categoryName: string; @@ -23,12 +24,16 @@ const useWorkbookQuery = ({ }: { workbookId: number; }): UseSuspenseQueryResult => { + const userInfo = useUserInfo(); const { data: categories } = useCategoryQuery(); const findCategoryName = (categoryId?: number) => categories?.find((category) => category.id === categoryId)?.name ?? ''; return useSuspenseQuery({ queryKey: QUERY_KEY.WORKBOOK_ID(workbookId), + refetchOnMount: userInfo ? true : false, + refetchOnWindowFocus: userInfo ? true : false, + refetchOnReconnect: userInfo ? true : false, queryFn: () => getWorkbookById(workbookId), select: (data) => { const categoryName = findCategoryName(data.categoryId); diff --git a/src/hooks/apis/queries/useWorkbookTitleListQuery.ts b/src/hooks/apis/queries/useWorkbookTitleListQuery.ts index f1e51bb2..6fbed3af 100644 --- a/src/hooks/apis/queries/useWorkbookTitleListQuery.ts +++ b/src/hooks/apis/queries/useWorkbookTitleListQuery.ts @@ -1,6 +1,7 @@ import { useQuery } from '@tanstack/react-query'; import { QUERY_KEY } from '@constants/queryKey'; import { getWorkbookTitle } from '@/apis/workbook'; +import useUserInfo from '@hooks/useUserInfo'; /** * GET /workbook/title @@ -10,9 +11,14 @@ import { getWorkbookTitle } from '@/apis/workbook'; * 비회원은 탑5 문제집이 조회되고, 회원은 나의 문제집이 조회됩니다. */ const useWorkbookTitleListQuery = () => { + const userInfo = useUserInfo(); + return useQuery({ queryKey: QUERY_KEY.WORKBOOK_TITLE, queryFn: () => getWorkbookTitle(), + refetchOnMount: userInfo ? true : false, + refetchOnWindowFocus: userInfo ? true : false, + refetchOnReconnect: userInfo ? true : false, }); }; From 439b9b24cd8a0e8941c825f2ba51c6caccfd13f8 Mon Sep 17 00:00:00 2001 From: Sumin Date: Sat, 24 Feb 2024 15:11:15 +0900 Subject: [PATCH 07/14] =?UTF-8?q?hotfix:=20EmptySuspense=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 로컬 문제 추가를 위해 react query에 상태를 끼워넣을 때 trigger가 되지 않아서 EmptySuspense의 children이 랜더링되지 않는 문제 해결 --- .../QuestionTabPannel/QuestionAddForm.tsx | 8 +++++++- .../QuestionTabPannel/QuestionTabPanelEditHeader.tsx | 7 ++++++- .../QuestionTabPannel/QuestionTabPanelItem.tsx | 12 ++++++------ src/hooks/apis/queries/useQuestionWorkbookQuery.ts | 6 +++--- 4 files changed, 22 insertions(+), 11 deletions(-) diff --git a/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionAddForm.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionAddForm.tsx index ee5a7cb6..7402e688 100644 --- a/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionAddForm.tsx +++ b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionAddForm.tsx @@ -3,14 +3,20 @@ import useQuestionAdd from '@hooks/useQuestionAdd'; import { css } from '@emotion/react'; import { Button, Input } from '@foundation/index'; import { toast } from '@foundation/Toast/toast'; + type QuestionAddFormProps = { workbookId: number; + onQuestionAdd: () => void; }; -const QuestionAddForm: React.FC = ({ workbookId }) => { +const QuestionAddForm: React.FC = ({ + workbookId, + onQuestionAdd, +}) => { const { addQuestion } = useQuestionAdd(workbookId, { onSuccess: () => { clearInput(); + onQuestionAdd(); }, }); diff --git a/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelEditHeader.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelEditHeader.tsx index 42c93a00..b2f39e43 100644 --- a/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelEditHeader.tsx +++ b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelEditHeader.tsx @@ -13,6 +13,7 @@ import { toast } from '@foundation/Toast/toast'; type QuestionTabPanelEditHeaderProps = { workbookInfo: WorkbookQueryResult; closeEditMode: () => void; + onQuestionAdd: () => void; }; const publicMap = [ @@ -31,6 +32,7 @@ const publicMap = [ const QuestionTabPanelEditHeader: React.FC = ({ workbookInfo, closeEditMode, + onQuestionAdd, }) => { const initialPublicState = publicMap.find( (item) => item.isPublic === workbookInfo.isPublic @@ -166,7 +168,10 @@ const QuestionTabPanelEditHeader: React.FC = ({ padding: 0 0.5rem; `} > - + ); diff --git a/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelItem.tsx b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelItem.tsx index cb44a83c..2d7398b0 100644 --- a/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelItem.tsx +++ b/src/components/common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelItem.tsx @@ -7,11 +7,11 @@ import { ExcludeArray } from '@/types/utils'; import QuestionTabPanelHeader from '@common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelHeader'; import useTabs from '@foundation/Tabs/useTabs'; import useBreakpoint from '@hooks/useBreakPoint'; -import QuestionAccordionList from './QuestionAccordionList'; -import EmptySuspense from '@foundation/EmptySuspense/EmptySuspense'; -import QuestionTabPanelBlank from './QuestionTabPanelBlank'; import QuestionTabPanelEditHeader from './QuestionTabPanelEditHeader'; import useWorkbookQuery from '@hooks/apis/queries/useWorkbookQuery'; +import EmptySuspense from '@foundation/EmptySuspense/EmptySuspense'; +import QuestionTabPanelBlank from '@common/QuestionSelectionBox/QuestionTabPannel/QuestionTabPanelBlank'; +import QuestionAccordionList from '@common/QuestionSelectionBox/QuestionTabPannel/QuestionAccordionList'; type TabPanelItemProps = { workbook: ExcludeArray; @@ -28,7 +28,7 @@ const TabPanelItem: React.FC = ({ const [onlySelectedOption, setOnlySelectedOption] = useState(false); const [isEditMode, setIsEditMode] = useState(false); - + const [isQuestionAdd, setIsQuestionAdd] = useState(false); const { setCurrentValue } = useTabs(); const toggleShowSelectionOption = () => { @@ -51,6 +51,7 @@ const TabPanelItem: React.FC = ({ setIsEditMode(false)} + onQuestionAdd={() => setIsQuestionAdd((prev) => !prev)} /> ) : ( = ({ onEditButtonClick={() => setIsEditMode(true)} /> )} - } - trigger={onlySelectedOption} + trigger={onlySelectedOption || isQuestionAdd} > { const query = useSuspenseQuery({ queryKey: QUERY_KEY.QUESTION_WORKBOOK(workbookId), queryFn: () => getQuestion(workbookId), - refetchOnMount: userInfo ? true : false, - refetchOnWindowFocus: userInfo ? true : false, - refetchOnReconnect: userInfo ? true : false, + refetchOnMount: !!userInfo, + refetchOnWindowFocus: !!userInfo, + refetchOnReconnect: !!userInfo, }); return query; From 633e1056dc3eb024329533ac8ff3674df193fbd6 Mon Sep 17 00:00:00 2001 From: Sumin Date: Sat, 24 Feb 2024 15:16:43 +0900 Subject: [PATCH 08/14] =?UTF-8?q?hotfix:=20=EB=A1=9C=EC=BB=AC=20=EB=AC=B8?= =?UTF-8?q?=EC=A0=9C=EC=A7=91=20=EC=82=AD=EC=A0=9C=EC=8B=9C=20=EC=A7=88?= =?UTF-8?q?=EB=AC=B8=EC=9D=80=20=EB=82=A0=EB=A6=AC=EC=A7=80=20=EC=95=8A?= =?UTF-8?q?=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/hooks/useWorkbookDelete.ts | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/hooks/useWorkbookDelete.ts b/src/hooks/useWorkbookDelete.ts index e0edd262..757c3578 100644 --- a/src/hooks/useWorkbookDelete.ts +++ b/src/hooks/useWorkbookDelete.ts @@ -19,6 +19,10 @@ const useWorkbookDelete = () => { QUERY_KEY.WORKBOOK_TITLE, (prev) => prev?.filter((item) => item.workbookId !== Number(workbookId)) ); + + void queryClient.invalidateQueries({ + queryKey: QUERY_KEY.QUESTION_WORKBOOK(workbookId), + }); }; const deleteWorkbook = (workbookId: number) => { From f55422a9ea01e4ec6fce7060134206ce92734c60 Mon Sep 17 00:00:00 2001 From: Sumin Date: Sat, 24 Feb 2024 15:23:04 +0900 Subject: [PATCH 09/14] =?UTF-8?q?hotfix:=20emotion=20css=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/foundation/Tooltip/Tooltip.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/foundation/Tooltip/Tooltip.tsx b/src/components/foundation/Tooltip/Tooltip.tsx index b80b486b..71d811ad 100644 --- a/src/components/foundation/Tooltip/Tooltip.tsx +++ b/src/components/foundation/Tooltip/Tooltip.tsx @@ -49,7 +49,7 @@ const Tooltip: React.FC = ({
:first-child { + &:hover > :first-of-type { display: ${!disabled && 'block'}; animation: ${fadeIn} 0.2s linear; } From e42d41ba9b53cbf4ec922d93a7f15f659d9f7c23 Mon Sep 17 00:00:00 2001 From: Sumin Date: Sat, 24 Feb 2024 15:37:45 +0900 Subject: [PATCH 10/14] =?UTF-8?q?hotfix:=20srcSet=20=ED=8C=8C=EC=8B=B1=20?= =?UTF-8?q?=EC=97=90=EB=9F=AC=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 쉼표를 넣지 않아서 srcSet이 파싱되지 않는 문제 해결 --- src/KakaoInAppBrowserDetect.tsx | 10 +++++----- ..._c_scale_w_1080.webp => landing-bear-w1080.webp} | Bin ...r9_c_scale_w_480.webp => landing-bear-w480.webp} | Bin ...r9_c_scale_w_734.webp => landing-bear-w734.webp} | Bin ...r9_c_scale_w_980.webp => landing-bear-w980.webp} | Bin src/components/landingPage/LandingImage.tsx | 10 +++++----- 6 files changed, 10 insertions(+), 10 deletions(-) rename src/assets/images/landing-bear/{landing-bear_g8bwr9_c_scale_w_1080.webp => landing-bear-w1080.webp} (100%) rename src/assets/images/landing-bear/{landing-bear_g8bwr9_c_scale_w_480.webp => landing-bear-w480.webp} (100%) rename src/assets/images/landing-bear/{landing-bear_g8bwr9_c_scale_w_734.webp => landing-bear-w734.webp} (100%) rename src/assets/images/landing-bear/{landing-bear_g8bwr9_c_scale_w_980.webp => landing-bear-w980.webp} (100%) diff --git a/src/KakaoInAppBrowserDetect.tsx b/src/KakaoInAppBrowserDetect.tsx index 32959796..fe8f38ff 100644 --- a/src/KakaoInAppBrowserDetect.tsx +++ b/src/KakaoInAppBrowserDetect.tsx @@ -3,10 +3,10 @@ import useKakaoInAppBrowserDetect from '@hooks/useKakaoInAppBrowserDetect'; import { Button, Typography } from '@foundation/index'; import { css } from '@emotion/react'; import LandingBear from '@assets/images/landing-bear/landing-bear.webp'; -import LandingBear480 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_480.webp'; -import LandingBear734 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_734.webp'; -import LandingBear980 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_980.webp'; -import LandingBear1080 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_1080.webp'; +import LandingBear480 from '@assets/images/landing-bear/landing-bear-w480.webp'; +import LandingBear734 from '@assets/images/landing-bear/landing-bear-w734.webp'; +import LandingBear980 from '@assets/images/landing-bear/landing-bear-w980.webp'; +import LandingBear1080 from '@assets/images/landing-bear/landing-bear-w1080.webp'; const KakaoInAppBrowserDetect: React.FC = ({ children }) => { const { isKakaoInAppBrowser, moveOtherBrowser } = @@ -30,7 +30,7 @@ const KakaoInAppBrowserDetect: React.FC = ({ children }) => { loading="lazy" src={LandingBear} sizes="(max-width: 1080px) 100vw, 1080px" - srcSet={`${LandingBear480} 480w, ${LandingBear734} 734w, ${LandingBear980} 980w ${LandingBear1080} 1080w`} + srcSet={`${LandingBear480} 480w, ${LandingBear734} 734w, ${LandingBear980} 980w, ${LandingBear1080} 1080w`} alt={'노트북을 하는 곰돌이의 뒷모습'} width={480} height={480} diff --git a/src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_1080.webp b/src/assets/images/landing-bear/landing-bear-w1080.webp similarity index 100% rename from src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_1080.webp rename to src/assets/images/landing-bear/landing-bear-w1080.webp diff --git a/src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_480.webp b/src/assets/images/landing-bear/landing-bear-w480.webp similarity index 100% rename from src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_480.webp rename to src/assets/images/landing-bear/landing-bear-w480.webp diff --git a/src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_734.webp b/src/assets/images/landing-bear/landing-bear-w734.webp similarity index 100% rename from src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_734.webp rename to src/assets/images/landing-bear/landing-bear-w734.webp diff --git a/src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_980.webp b/src/assets/images/landing-bear/landing-bear-w980.webp similarity index 100% rename from src/assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_980.webp rename to src/assets/images/landing-bear/landing-bear-w980.webp diff --git a/src/components/landingPage/LandingImage.tsx b/src/components/landingPage/LandingImage.tsx index 26588506..10c4dbad 100644 --- a/src/components/landingPage/LandingImage.tsx +++ b/src/components/landingPage/LandingImage.tsx @@ -1,9 +1,9 @@ import { css } from '@emotion/react'; import LandingBear from '@assets/images/landing-bear/landing-bear.webp'; -import LandingBear480 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_480.webp'; -import LandingBear734 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_734.webp'; -import LandingBear980 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_980.webp'; -import LandingBear1080 from '@assets/images/landing-bear/landing-bear_g8bwr9_c_scale_w_1080.webp'; +import LandingBear480 from '@assets/images/landing-bear/landing-bear-w480.webp'; +import LandingBear734 from '@assets/images/landing-bear/landing-bear-w734.webp'; +import LandingBear980 from '@assets/images/landing-bear/landing-bear-w980.webp'; +import LandingBear1080 from '@assets/images/landing-bear/landing-bear-w1080.webp'; const LandingImage: React.FC = () => { return ( @@ -20,7 +20,7 @@ const LandingImage: React.FC = () => { loading="lazy" src={LandingBear} sizes="(max-width: 1080px) 100vw, 1080px" - srcSet={`${LandingBear480} 480w, ${LandingBear734} 734w, ${LandingBear980} 980w ${LandingBear1080} 1080w`} + srcSet={`${LandingBear480} 480w, ${LandingBear734} 734w, ${LandingBear980} 980w, ${LandingBear1080} 1080w`} alt={'노트북을 하는 곰돌이의 뒷모습'} width={480} height={480} From 19b2b6b818a85b4ec00073a86d636290818a316d Mon Sep 17 00:00:00 2001 From: Sumin Date: Sat, 24 Feb 2024 17:39:28 +0900 Subject: [PATCH 11/14] =?UTF-8?q?hotfix:=20=ED=88=B4=ED=8C=81=20=EC=97=90?= =?UTF-8?q?=EB=9F=AC=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/foundation/Tooltip/Tooltip.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/foundation/Tooltip/Tooltip.tsx b/src/components/foundation/Tooltip/Tooltip.tsx index 71d811ad..461d5757 100644 --- a/src/components/foundation/Tooltip/Tooltip.tsx +++ b/src/components/foundation/Tooltip/Tooltip.tsx @@ -49,7 +49,7 @@ const Tooltip: React.FC = ({
:first-of-type { + &:hover > span:first-of-type { display: ${!disabled && 'block'}; animation: ${fadeIn} 0.2s linear; } From fc603874a92d0ed6a5d32898addde3224af2b0bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=84=B1=EC=9D=B8?= Date: Sat, 24 Feb 2024 17:44:11 +0900 Subject: [PATCH 12/14] =?UTF-8?q?hotfix:=20=EC=9D=B8=EC=BD=94=EB=94=A9=20?= =?UTF-8?q?=EC=98=88=EC=99=B8=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- package.json | 2 +- public/check-ffmpeg.webm | Bin 0 -> 47506 bytes src/AppRouter.tsx | 2 + src/atoms/encoding.ts | 10 ++ src/hooks/pages/Interview/useInterview.ts | 27 ++-- src/hooks/useUploadToIdrive.ts | 45 ++++++- src/page/landingPage/index.tsx | 9 ++ src/routes/landingLoader.ts | 13 ++ src/routes/rootLoader.ts | 3 - src/utils/record.ts | 155 +++++++++++++--------- 10 files changed, 186 insertions(+), 80 deletions(-) create mode 100644 public/check-ffmpeg.webm create mode 100644 src/atoms/encoding.ts create mode 100644 src/routes/landingLoader.ts diff --git a/package.json b/package.json index d93fdd80..30d317b3 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "local": "vite --mode localhost", "build": "tsc && vite build --mode production", "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0", - "preview": "vite preview", + "preview": "vite preview --mode production", "setup": "git config core.hooksPath ./.githooks && chmod +x ./.githooks/pre-commit" }, "dependencies": { diff --git a/public/check-ffmpeg.webm b/public/check-ffmpeg.webm new file mode 100644 index 0000000000000000000000000000000000000000..32ca9ef69beb7910df92d04c7ab0c3f1a03e0076 GIT binary patch literal 47506 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

x|6EVqi<*1-fBN=H z!A%WQ_y#oERMrKX59uc;Yaqx{0W5<=HSdlEoGdV$+7OFjno9Qyuqr7!U7+A+4_>U7 z8T!9~HqkhW);__B>^oi6RvV%F(R_BV648(F52q}BuW;<5VnbI~xn%2ZLp}a%!nfqx z$l`8arr$9WzaK00=0${pAVTt?zqN}V(u62?J>aqB0*seaXEvE7K*BFar@n!Hm9V!5yrGoZYKTDFAoZ^A<;=*>n3e+WMP zHiBjcH_(_;Z3F6vK4Dxix7hC8eGGe4i!;V6FlNWYwg0r&S~a2H&hyAEXtOXe2?s5R zVIyb0_~^UCgIQ7a+90Nev2byiED_^Z@4EAJ6F@b{28uR#vZVzB4ie&G-$|_J>zL{+ zFc-Bi7}M$`?N*cJd51wo)WQ znjg9w@3vt3MYgyJbs~b?l03UU2HQ$MvYRRkS4m^gsXBxxfK)O(O2a_)OAQmG#ibbk zMK$G=<{;6wHX^4aNz`CQeCTz6UeI5mnoA~+jaXQEen;W}gLf&iQD#6^$lo31PKup5 zoT@}luG@oxtT~Ztm1*MiiKGscs!RV8@D2!!4kEz|4ifH7Nc(vTc_7pGSHlwt1J+Lx z%@UE>1~%gHUd9>G#^x{LFAW54{qOJXh3)3I^Y^fXY62x|)p1g1QuFnn-xKX88Inmf z4udQKH$^#kRJQ{n8(GK}2u<8=LI8LA?L;FcgJMs_X_RJ$Ht!4Y7PcX_b}|CbGMN;q z?bje)wZIq@BW(m@6`*@)cfdiHfwIX#1}gki!zD1^-s*@|p8pE|K*dg{^nm7$oDy1@ zOA>r6T}DhW!NMQ$&`$-zif1V)m4*7BqyTX5FJk3q70w0W*s>HANtc1CL|zQrkxt_V z?!I9GDv=`^d%{`FFmx}3dS+h$>X@WzoacYvR}mRgm(To9P{oS>v%b!y-%|UFi3Uu68r6O|ftz>x?rEG&rrg&GF zwVWnL>@}?)J*DzD;Hy&yQCackE2A1OZihSL09$*roT7=TA5o$6#zt9whq;XPPP68$ z-^gd)>icfsTRJ;}XD~MlBM9B*Swax_UFQL!p^4&$Ij>`G)#{O#2L7{yOR``}3U|)1 z(`CN9yG&Nixnnh2okdl?An6V^sWFw-#YJ3RKAYKj=L$pR3FWpHhz;5!j~9Jg%r@wT zf@X_gEG4&xJixyhB#LbOlalJX;&4%;DcWjEN65?OC2a>VfYg`r%K{i`93yYY=j73YyJDByhDWJwh<8p9t`MS+SI+S--U9_#>WGbjF#(X_qPsWGx z`utEV5Y0~T`l2NVHL!!OheE4ZdmG=v@joQHU*9JIs-K?0%E77XV#YXt8W z=LTt<(TJJsb)nCEkp=-Ai6rNMJmTXZ(9&!Zw0Z!-P<$AR@nEN<2pO5XYmtUVRM%xHDMI3);siO#NEWI-zD*BPQIeNG>OPE^y)2m z0d$vjoi@)~wm31wHo=H)MX281<6#`+a*#v+3cN(kK z;TEQ8oD!bm&#^!)HZd{*@`P0q-X<=@m}4JH<>?4uj1GgIyZnXbX9CnC)_-RclBg^% zU7Lr%W8FN)F(A#4ajav)GOmic9}Y0>wE94L!D1bT=`W3TFx_trqm<*_@{dg)dBwcA z&+#ECIt>I~{a@mM1Hkd}yZPHSF~tmXAcOTAKu1?*S-QJOSkwgTqirk7VH*niQIF;T zo;8Ha5i!fZ8026#1vny@r!*}k>l)iZ2fq+k%~iKqm8;b>s30yKLBg#HYOg&MdZ3lS z>le)h0>AzDNc?c!zejq8?zHcRQc{GH7LuPYZqsOHv$r#nWN3&35Zj7R+YTU`Q<(Rw z73}k_Kv;k)RS?Q$_Bh{QGM?JAJs!Xk3sV0dqxbnsA+F*;rYR8+*665z{4ER!X0f@v z${|W+u7R>f-?|7IOcY%6z%va%YODVa4dM*yJGIjGb1k8838+;FOOS5$7H~knqvb{k z#zqFGzN&+AIL{!=gqqyCFU~Q*K_TUHF=L0 zbtDHrGB1wml8`~|CATF~3q_FZ0eo!}o$Hed{It4*Z(hT-S<8$Yz!W);Qe3l_ip)>8 z#L0JZ`euT&dnbNKNOSTV)BUIr>0qLwjR z`e7s6QRy5g{7OoPu}Hd|P?9DjB6;fnZ;06OsIm+tW1;2W4GTdhDoC>%PytPn1 zh=@q38~~vbTG?q$J&xS`8z*rKYj|uwR{g3dx$abIJH9F8H?$-Mu3c~3X90Fp%Ow9_ zMC}f!MxGVNcG)FbirOEsktQ(Cakpq@Lsue1$%fRS#5*iTk712H4UtKmDQ+9`&GF_a zWC}&o3yQ-@9Pw3LH`+3$;k^DF^Xcn~Jhe!p+x{}gwI0a7T{?>B ze}2LP{!tS;%LPcfHt7SO$Uopg!lACiKAfli{Vad!jPv#7(%uRlnZgxJj<0u$q*3i zZ=yZlV@zS4eKv5F8mG(Xg80@mKFa|UG>DoCd%gQP%%l2Kmnu&1_Q_pu_%&^ijJA4N zz{Ed2Ywu}e>0%lX(~JY$bgr7-i;ve1nMwvyJTDEM9c484*vt5n90mrTsXKHuo#iF0 z;AZYJXp7~T8wR0gJ6f>AKAXjLzNIYEaIZr8BKCV8ZLH26T+}-Y<#%@Bw~r!U_oj4% zFf7tKu#gL}{_@sR>HxojHBSeWZ;VhW`ub5>#Rs_}?4Zfl-D7Qu(7u}>+d^xFLp7<- zIULq?nqUUNzpKz9M|j14flTsFeOde&;>4v8XdW@DaV6Q;ggfa z)Fp7Eyw}bIE856{fCK`0wma?On{S5dxZS7;NCT|nS^|-btEl11ERPB*sV~vSUcz-_ zMiQZoXU^Og{=G;_D&C|;{M3UL6O+Q+V2RUJ2`VFHEUz1a4D8V`nu5Rht)$5noT3CZ zMY`Qsk^9H>>ANpv`*2$&9+6JmtPtNQ1K`NDw{vBJOHpla6vepL*-=P;MZQIqH`hd- zWAUw;s!XQ?#;c@`dQHWuNFuVgG2X>V6N%U4kntt7V;^|mfus)qRldFsK;F9`Z)TU% z8%)?fb`@Xb$ZYdy(=%=L;1nv(d4j zxp-*xTJ_qfSNG3OhFW%HX0vz$hW`rEok3L*!tVqunEo;@aKo%AlF0(W*B>ewa$bC5 zS9|P`VxyIURwDfgv2Fs9CHJDzKoIW#%Dor zzbGjXME8F`2myfbA1-jD{|^S7|Fi3-4rp=0^2!y<=X&W^7+~R1?HZt6DLPN9dE@py zZ45gNN^n2#0sw&BS+sZP=$fpgj95D6WIpM8LYZBHD)Zjn8 z@L$4qLoO4VyM?8@775+z;8sXSS?kujk}mv83m6NCv0rxRe6@L1TYC!$g>7x~wyz_n zk|i}}B6gU=0EgV*R91E9^Do!9O!YYi*XHZX{Linh1i(6L9 z>#{F+2bYLEQbcndu;3M!6F{b^j!pt3=Xf@!ICPW0x$`zAD{nw`S=LmQU*U%r@wRh~ zFhW&mCB$8Cd>)dnMvJSEUZQI`U0XP^)$p2++P7y8S)ODDcxum0(kE7l$M#t+UFC)3j0gI*}E zGSBHjt&4hK#aU(WNr7f7dBbw&m{paIHpAt(tUU%F_AS%+*G8l2$)*yC`y;&wX^YvEB$m(|0M6tIF=u;kV&@JR8P{dbhg^UD6JyBP2b?JN zCgTK{-h!g;Cu)rz&$P2k@NRD}B0F1GYuQl`a$o@5Yp1#Ye16s45|BEAfO!x&6#HBQ zUqIXKee5fD8d7s$bB*Z(t@C;*FR&%~A7+A>+N1l(<0R>B5Z@#o6pevZqI?TpV+@nu^d{kjGmiN5N#8iT; zu}>*RSELtLx>3=^p*)gOPxBrzhS9cWyM=J>iu? zXnP#kx%Y6ZYalmUHfWxZ6VHRps#gm`s9S&O`Kqmzcgs~{iuXjW_eJ#dWz&RiNaShz z(k<=U7Uhe4Bf@*@v|rdzf6Wabf4vJ-j%^cKSOtbmqrj{Dp?1pf3d6yKE0zKO&ArDI zdKlYY4rtKCA7G9CIC#z9L8Rm@I;T9X@9F;n28?QRYj|fPA^yZNF~HV6LR|&XeY|yS zCW`oa{eH$FY;ZQf21{XDPypmM?Ur3+T=E7ON(Uw+V!JB;6sQ9V+J}f%cu2>^>vY`s z*NK;+L4d0RR28@_RL<^L0;2WyTq+4x8xGuwck^dwVi-{Bw4Ve%a&J=zp-hAlm zx_c4-pX3kzcM%c*>Hm}b<*($ixx`NmuN1;e8#Jn*US5GbDsQX31)@P$z8yzAaB;>n zgD!)3EdOe%_E~#qBK5uj1srb{$e3KL<>bZ+m%`uHyH{F0ano~Y;a|Nfg2+-IN`)4j zA@v?d#91;beibS65L9az(A&j)PZ9}$Nx)Tj$~Yts1w%#A;SDoNz=@@a3vo5Dexzwk zb)M{VJUcK1H#y#8%HuCLEN#~8B@l~*bxfq-RB^Yg1!`krcMT$3-ZWNMW@98to#y=5%tDV?J z?NcjDKvI8o!c;)T7y6U?v%f?v+U;*$11lvUw-bH17hIJ0MQq>N$U>n1#ad4>1bY46 z$Z*Z6!I>uz^cbO^m3N_KdMd#zbrTl^!DTFJk~XIk3D`DE3vHo6&9j1R&wDOX zUUhfXS*)C{PSW`{Zj!bn3yOUkpn;N6eW)a>TR-SaLZf#*7Rr%vfOIM?&{dWHPNgju zMir-Vb28_3_IwBowuYdk*mP1WH7gwb$l=k<(9+?7=?U6~vc{%KR9%T8p6 zwn$iKs|Gvvd9X13-i8dE@gz~`Vri~% z)EZwc1(?xn90!rAa%eC5HX;-w+zic~Z_M5~e<$YL-p1sRTrt6n_4Z zz-)=eC5d=&MDmJ&=v4F9Gqg-@%Q2z6l&pzL*p<=Rk+~{}9Tj(Yu0P~KLH^UtkN7|2 zK}r7$eUbi`JSh1;jr{{bt$wDFgpH+?{GMd^GQ?|$8*uceEe3 z3tKP!Eu)0#R}!-{J2FT|A_TNIU36f{Kg*#iUgTg)H4zzf157s@!F5o}onwF)hzq&T zT6)5j%FZ!JeziO*t`1SJH28eS{-wB+du%(NUd~jR(8F_1tAp66c3K!?LCSoT{bvpB zZ5tM)7`%%bir3n{+dOPwW>!!&7(DS;Zab>x!V6hz++=%6&p4TF01_ltYrpZ{gdR1ATam!n%+(LsZJ2Rl;uXh6#y>RS`h2$ zY+3k?x=5o5}1)T2BQ> zT$3%G@{R<$a#=(hPZVX1`2PImuL(}6I(G6^)m|Y^(Pjk8}k_I@x)% zNoN{H$Ap24sIBrr&>?4=_QR08%?$aZ7zChK5HhACD_7EI9=xHQ-V4JK>rf>%pqq0& zhlA*rY`9GrS&wV}gxd$RcJM&V|LU&GHq0bxf>9% z%;M-M!3+o|uoP9$?AKV&9^glhh2Q<$ovEFE&f4p3bATk@BCGLU9zCbJ;(JnfRUPr1 z+f9L(21<6^R)$j$cIIZA=gxd|M~GHkc5*7EM47v8-sRv2a_;3bOWX?`}xLXjC~4w^tOJ1qjSM)1;6nD7sI(f@S!ApJ}JXY~%$ z@JBaKQrBFsttYriziTV7Ym|BVo|q?RpMX6(m;X0KQ_s&?=}kCM^r3Z`jZ0ZP6Hz#NmOy_W#9IZ&Db zb}Fh-m^zW~y%_flW4M%3H8B`l<swkGN?RY^rKm8Sn24Hc%d+C2HAS8*7|r{b+=JV*Cu2`y z(fE-3&;kT+)qZ)NQ%E%-EkqVj4v$f4-f3&fjTw$BlWnZ2wXknTtb9G7DsOqA0sdh8 zXq$${=mT;#aF*pyX8GZ*-Yl{tV4?5P`t&(EP9@baPRqz?ZjNrz7E5(8>Pf`7Rz^kg zhnA1h-MQX0mRu-4p}7=i&F1hZd=VRrLdq`$!Z~CXH-q20-uEjzB6J;kZUDna`!sQ2 ztce3KvwYjl$Jv~w&+naY0`AygZ6aWeNL$sqYraeHc^co+;!PW1+^M5?{8L8K(6`58 zBjT{}AJRO%+LIK@AK5|MbB#0GVZ83|d$*m*kdfdRyiwoxqMLW9-wM`P`zJS>t^@=8 zs+)(ADx&e9v_we`%>WqakYDZLVTl3?=3B|;0|(W_<|XI~*u^a=WuWiWpPx7#SX0S4 z!~n+0wNYYPbd=WFaLU(<^6orazJn-ZjfL2Ts0vW}e*C!l*ZJvCE&#aoqnIm~QQRU7 zT`XGa@pwkW&rE?#nfcXnPub#ot**Ue7m!dl@z zp9`q|44t#I3Oc3gfXw&RGzN;E8)5>ub?97o^rJWp(ip$Q#nxiH&Rj*Y2Urk!R@hjYH6cD=>HH26m8t2q!KZwPS$R)k8p={Cfz@Hg6k~aG~+O z6t!d?bQA2Ig7+tI8x2rl*JmWA2iC@f_g!H9AKj+^>V^V9{`cAa6Ndd4@+1Er@;N`` zF~~O>cPC@@9wWH9L0dbc#oi2nd#CY=UR4khKF@*mLXbAp{8<&Ysw2F}_=fk8e7WZ* zv5*^JUCyb7|B~!T=PnhV=xG)nWe9Zy|7@d!*H|d>!Z!R3v=KZp%j(xqZwrvkpDJrOd3ft)gp^d0vV z?$GBL9?e`y=2Ztej+RK6rt?;heeDn2mWkO#>(pcS$5AS(A_G^h;;^6!qH>i z{o(ct1>!i?a}w~HQYP3GCv7bU{&f^VAW=IXPsWM`K(=p7%-up;tRP-(EzQSY;T*6+ z+{|tALQYz()#d^dY+c#tXS0Ga<{%37Y5U;t6D(!DlnB_42@4UYiuxKGuj0=|GzGj9 z(b|@ghpK)lJvT1Sd(P@kEK%&%4JqCsXj?My=-~r2kfWJRn^zjGJq7=4$Xp}-ywZ@^ z3@Ya9KDfJ=aBDapC+$JQ?lyNx+V}HoWXT4!s;x7}E~W*gK^Q#(k{VZZ=0w1)Z{f&|d1e%$#pJ zq?n2E(zNd`KpuW-uCcft_?vw(V$)=RPit(sxZU`U zB|@viOg8%2R_S`R8W{BdaP;{TZs`pxX87%=;hCOa zy$|!d6QoOF{R|i>93?=$q)AB~oG$F{kDr`?mg|CBo2kMPKzn;Q_-mQj?e;!%RPN#UV!5WO7g#7(+ZisGRX5Gtk0O4CF%U(MQe=62Oc0XEE02% zBVqA0;z)i@Bi5lFu1vIbrG_sUi-$>EJ(7L5#<#eC-m>6FaHa%Kf`eBcL-)-$W6xUq zQ%5iPpjRF$*QZbfh;-h*H!4N;!4(E2lQ4n$yE9B~=`kt%7RjNqvjtz!=2*R zRhe|AXYr6Z9NGt0EO}#e6}7>+OVug5&F@h3dkZG5G^xM=4~@4xP@jFP!!kP|uY|FG zotoOJyM6sm_S)Hgm0k}G$fvP}+QmXLfHi`=B!P(Jr0cEn$Ym9fB4;~N?Q5zeBf%DC zG?`*pnkVOd#u1hPrR<&EdxhyY@emM5FuFuyZ($qo6}5{;siy)it_63ArEDV5E z509uNh?Of|vXU@3$JU#YmmenB@bQ^6&U>c2H4%q3rliIB(4TzfwVMIK(oF&PPlj>16UcL{2A&ne%x0vl6OzrrZ1+loKDnsX>03h+u zG(QdI&SqrhJ6pC9x>8(_ElUwuz|8ur;~|2uxeMLsJ}&WId}zmxxFwgxxsb0V90`}` zxSxyAXxE(2j48in)nquN+x&gc@+&^sX-Ix#f-kxR3ES?aYTc)VgP#tPh!wgzIZ3}E zFHpA%DAi`rO-6t+2N6+>d`!C`A)Xr;a3JX!)1$ zt{Vh9NqFe1oHn9e5{ZR=k6K)FK|i{WBuvoqM8x`HVtA`?CstP0`tNRxK>i>`jgZ(e$NBv*&VCX;O6?sjdTtQ)} zR|!w}eWMUiEx6ml9MC8$uFU1F&2aSv#ckk4X9R9s`X#RAH``!9 zhnQ@YO?DhX$4?3PhZb%xot)zKK--`_ zd>QYy*^&Z%{yH^mg*wO1KB4 z^wiqj!n)9L%iQe%Oe0omdlqz_cpe@$;cW6K76q|VZ0WIB(V7Qc)y)@(3zStN^dt|$ zYitF~WFb=B0xN(|Ee84>rtIjkT04K`MlpKfA_(dw^*{Af&cvX*k<`#Xoo3g*%X4TC zE4HP*pAM7gEs>cH_Rb2h;0s-6NF$(5b%E@Zckn_j4+IgAy3fS*SI{a>+1pKmVw$))3->cU#2kx?RZc0+6k~`z2jZTXHyAg5(gA~bXmQHB+mAGVewIM z05s62InNi>%bje)7gxQvim!&xqug2nKo4S9E~?Xr9;mx}K_e2|@hgjsb-NYTpByMX zkk8(P#W}MtfH_oSii8dAf__LLbb@shFc!zTWM-zx9LJ#+et^Qp4d$?tNx3#Qp=LMo z+M%b$=s^c>KG+{JF*+1Zvg-HjXGjKj%$*##GQ3q8jE5p6Zr=%A!$qIA0`NY4A?AxxY| z%#2ElehGIP1JbGPyO2RS^Ahxh9MA>-x}7&o>* zmTDXm1K4w!l1cr3NRWKnP=*Vl$$o@o?52zrKTRtYT*EFZfyrK!LheBwbhdxO&Z^tt zSG?hb^CR3Hc(^%zBOvIRx z!`LGXzNjk{n$e)&>L2Toc=Wd;_WK&w!Q0VCFJX2up4QXwad(EpT3%a1X{b>V`A_;C z^KRhfSOU z-ZsvRHz2>d%d67>TaKP$>JND^`u}wMqWv#<`TxQmwEsh1>4!Y`t;TEYsixax@&vQ= z{*XQ-&_WEzBBJ)M0|z|VQAl>eFipQ5ARuZ*5UigwwSp(J;UTV$&Cb)LP}MR&AF%3j zd+%r()UR(gsVNF)A1q2Z{u0vQNckWm6{`?>H~L6T10((v5$WX%;KP>@N&Y?bb49w< zoVjm-)uY<5*D`Api>N6-=u5}?2Tk`@49H05CuiKybZG4=wq>_)SY6)o~$_}3* z4?<6mInVo_&(X(+vLJ`Gs^T($2?sR471@it-;%2Z7?XTZ)CE?Y&Y=17w`Qz|6sDv$ z@?Tsp$>74;QMVCn?Zjk{t&D}t&dU8`h0{zl_e$!^IAsC`N%jf_OH^owvm~fDXD-$8 zPAG!e0Yf5WZ4!wh0H=%zP7LsCVYvD|%#Q5t z2FQ;8?h-ThOMhjvLyOtW?jTx*f-ER77v<7L811M2aXK`C&xqv>uR313(UWQ zBjd(L@kD)Tq30=Nq1DXFz{t=s3M1gCI`eB*QwXttisLQ^>_DH2N}Ra*9D2oT(^Sw; zh{--~V^gbZP!PBk^K-!ATre^!(P8Jt7#TcGzQr$>Z&YzFhxjyl=31F&hVODy%5-At zc${-Vt%%A`j*9oc43F)W!zK9s5gf~VDjS)|hI`CC4I^%}Ys0RHMtv-d~TG10XP z*Bv}ikX?L#S1}dSFmxDxUyR)~vp2=^_!3^e(>|F2THN(N?H@D5n&B0UM$>CxA1sS%bvDX*MN+k4lI~ihW zSKe+lT&Al=ajdHk(fxKSxXD&_}SY2qgZoYuaBFej?>NN-31|iHn z{9ILXBFujgh9ne|Rssr(g;H~q%}Wo{2|Ak0T4xRpjo2;Vf?Vpv@k5u_4)jF+*W@t= zZ$%L(kdX~yjDYH*)%xl$9@1arGpyus`#MW@&K|rM%Rwsw^}|Q2?hcPfxKD7-08_&D z647!b1Bg`7m1_4ZzbnNuq!s?sP3l9TAA55dUqtb$tQPB+dh%uG(jPb8{F5B47EO_XAp6m zy=|i0>7tBh7;X17P!qY30B~(jb0{Tp+yel7M83u8BY3(1T0gWge_V_-szc`VNw@4F z12vNKB4mYwcZr+DT!UfE2<2!DQYM`I9`tAIa!YH1MNoN;NxsSYc@9Gey<*lM`@^QG z)lr}}0p*E`xtPB%2P{J`>x}@(1g46UuUim+0!oYmc1uD4YGi>(PXWQ*U~hblgQ0O8 zsJ3b~e$pO3t;Vo?X$tH5Fr?DhfHE#q-)|S655bmhw&8`A*6%P1b1!90i$?J|hVWr5 zOswk_2b|rgXv-g52D!(U<)V6Xf_YN-`!?lI=cyf|1DvB=P5CX}hJzjJ7ORKv`>-3e znYneJ_NGMsP~i1JK=c9C`c<%_7k9o`*hcby(O4CUH;g;JvT#Ck)PDb6;O$qkmi51x zH32=tHTp+)!hgE?(f@sR|AdYIg}xa7kze!!oA7-P_(1uB4@8uw@t<0sD>$B$o%c7y zMa`BnlfCPV%t^IX0|3Iii~_Sb((G_y#5;axi_2X4yh-n{)~e`@p8$`^G)8PZ%PqKI z;CfD)=zmC)#5REL&%g zeFpKWrV?25ROYLLe!Qj_I2Erc7k=&B>CHWp4(OhT{74|iZRaO?Zqs9OepJqTRm43x z8!|ZvBMb`BFvp$Mrz8P=h3fC$+m_XVS6EKp2HcF3H~?&j9gKV+rr^DwCpL?CCa7wyUj@2WLLI)9TNm-y6T}Ji)YB|2*hrJB>YNc-SBVgXZU@Kx)&G+n&m{G5G0~w?^jtU^ zX)1uzEEulZp|NAeb_rVhng80i^^|?6?RARf-FL}_9Y>c<$70i-=Sr+!*g^9MRml@! zt#!ZimU*vjoFwjJq%srDt%>^5_}O7dDi>e}{5T}$-BQ1SuN9n_iJ<1OYeJnaf0Sw4%^f+jXrqb>Sa_xcd*p2xiQ*wWQP?~`YIZwI6bg@kMHvwflc8rIe&Px4pDl71shot)n)~*v_Rkic{lfma2-Jpir+}S(HAX`R-vDo9ip6|KfV&;W-@@UlhztchC4E>&EY- zf+KLg{LCI3Jc?oL1*)#Y!KrdqC>=I}pt*-q?FOtj5Y#j`&oV*d%EG61-U_Rge4*NC zU{yL@M-Hddo6&Di3O(q!Y4HE_`=<9!+pT> zcb{C}`D`7q=Z$v$$?KxIalC}K9eeVL9Wk=y#>w|<>&eWUTm6BDArccn6B}s!kp54114;C<`1Xe9K{TfAGuCqu)n=Oe9gIp z4P?#l;7yW3ZVB^ljP0X=WhX=$*1qT&?siRtAwKWC97an^po(>V!BHEuT1tampS1x8 zDJ2jO;EBu4CfR?jdz>FdC$7>4Zb{XEk_6LN7DB2~xR|?y zc86V65rbSzP?o=;mi1;`hZLqk6uhOH;f~m&`1~~?a$GSXnloQt(_wfO+e7jp#DeZM zfT~F<%ZReNbZyR4-+zt6ccwFP^WE9gxaR!7C^Wczu=i~Sh0V?3vI7Y5G$ntOb#qEmZ= zo3PC*+XDnI*Qm;3>8Xj!=omTUh8o4#7}b1U;yXVa3yNQ_uOQHH#ypYjR^CTFlz8p7JwI#_=15OSRvHvdt3) z%go#UWLLKL+Le2|HS?{j5>%GRAp?C9`NII2?iYuIJj5lOk8I~znO7}KzVvFX{I|Mf zmm2qgK)~IB`@+<7T55-}7dqwbIBQqsv<@3_OONT|xya+Hf=ga%MGzfZ%Z1OWiqVx# zRwG&-;^CChDJnHwReg2XOtWd#y};|wMC`y+`yFNWgd5O+BEk+KheU|RXbI$yF>ign z%#^r9C&7X$qn`>3`;}km503F4Yktgstg8au0a@xA#kf>x$8;Bxltv|KyA>(48=C_0 z_~z&NgLD1&b6>1~s(>mpcLawX&f>*Iq?*hGAa2h;NA1Cdf8GT6=(;#15iW8W!t$r_ zH~I(+rJjZ^XHzjM8a@VEP`UK`T*(aJXDfOOmM%Q@{Ctl4Z=?^NXT3K>GoEO$(M)5@ zB)ORbIzgF&F~ba@`MDLwGW%-Z?_#t~ov4ad3F~*T_AXgf?wjUz-cpI-YRpZ2N`*wf zFDH}V@YyMF!nHNFO!&By`MYQo-EPjonXlgsob$)#pq0&3VqNnGVFR(zL450i53M=i z?O?V_Wl{f{H8`UP=d}U4RK$cPX{GVKP)VzvNuLXWnlHwk52^2U={n=3D`eu^WUBoGk7H~x0X z2{qoJ=6L3)i**i!x=T-5Z_4)t^uafQKDFkKv_qk|=3_k)v79@nU^vz4e5-($<8BE* zFe{IKosPnXyyAMJPK3wW^qgLP=4vDUdvB8xfhyWbon3H0@XZmZhj|5mbEj_mo3DXg zcycGzi+WaCPKObnzB1sOEm}f@652%yGal8)Zr~ANCIA{|Tv?h{*+6G!E>ve>FTaov{gZ^y(%w++DY9NbbmI^HAZ-8f)Gkq~;-1-_^VxUg5 zQ}-*+%+?CZm?Jn2g~XHZMMJlP7sH2Z!Y{So=u~0!7cZ&9yyA$-T-vxFpoFN_ zw2Qyg_8Lnlx{Mh9PU-3CTGf2c?TB{t56kwXcaRcPtRa8k94;-IDp_BH^DXpNAG0xW zEmI2zjT4wdN8yYxN1e@%mw9^umpOTKwGaUisI5#;s5Ieq+I z989b^LV>A(+^YeX%NGw|yT4??uoiw|1v&FwdiN~;>Fkd9oU%LIKJ9P=LB8E-L$C!A>vwMb z8^9QAdn519DHT- zml(S}UEV41pYKLLLFMHA!S)t&>jU0o35c(5N%;gq-9C=kz?W2H-rVi{A1!{ z_YI5cWlJ=i(Cx!bt zO zFI(SJjjYX!+w8Gy$nTla2YQ9@!kiFYfm#7tp)LyXMY zBRb%~_|%%Z<}ai?Q6o6=5c^f$8v}p}Cnz35?HTB(5~&aCNJjNcOW^W09h=6p%9Uw_ z7GHZ3Y?egR*`VPmX-`wnJao{NEgsp`CbI}PnfsD)Z5$N1`oK4S4@*_y7B)a+=rlpE z8vpOvTuntCyT(`HPVJpP525@3bhYVWn9sz9_$6_K502BQh=(8R#c@I)knYbgA9E`- zWt2?K8v!jaZz>8j)W){I?xE)UB_T-2iiih0v+Az4bWnFm0Q){-E4+p~Zgye1Nw?WQ zI)9^8ydNY@*}nFb_FCMyF9 zb%pf4u`wtEW1EmL0bg1mwQY}m`+G4oleQ}J&uNRA-t+3j9WnCv9>xNSv-*gm6D+O+ zwahk8l92DGWwK8^=ds0GWwG3#y|b*P+vAR|eD~T(3og|VWCQ%|+gsPIrVTvl3pa5Y z$~&D=-ZUG{x}(X0n{tPX0;h1j)$(>jqy9T=o8(T;A02xQXYmvoJ5%({-?z;{!pDuG zlF8!W61_jq$Y)+59V*HC=iFLt%=1_D(3_tEALt7uw*VrIuc@JsgodwA*9;jNZ*a&) zCH>G*06d-PG?ECugx#|0$jE_E0JQ^^jG7;Ni0})@Zrpm?Ojj6r4^G9$_^@~Pp5K}0 z({iouhWDQ9$AnRb>LX05dTXtuz9j1^kQGm7ME=$h!kO=!5#{E~MRK`jjt!i21V6+p zH-q4^uDmETkmqC)XJi0XJyyr6x7;tG!fG$SF+wBoD%!hCl)B*okMxx9=T%VspS#sw zub!3zK{zX9`_+y>#%;@ z*2*u;h`V7^w++98(lL8nZf!~D#4U7q-fjEi{}m{Mb)=h-cR(^dJg)c8 zw?W|9|J5db?0*ZE(5N4H$3LqS2;cC1C4!$&xUdT~0~;zFvGg3bnd$;YpU>6mn9r5& z3pD8i6r>z3r3NCo3I4Bs`bVk{V9qN)Bj>KwFjaFaf?{Airx;7aZhBV2a>8rh`UV40 zWO2DgXqM7nB}LN>KIAOrG|6l%aXA*oNVSyveZ%e63d}GFZioFbB)_ex7eEdb zuR+DCfJmlc%z$hP;xa#A<8u#9r2V>bp*zvV&6AaCFw87|1C{?Qcpn*!JXc-Zt8r)J zVJ~YK(BGJtpp4*UmXrC2peGJzRjLW|iZ#dkC^!FQ-!mV~=tBjHd4N{gW{Td{AA0Fk z@uBYGz-t1ljKif@-Z0j6Gp56F&4_l}yXj)$gYFLVmBv;sZqgYdjnxAySndJGlRAt* zy}kohOSGIzJ4lkKRQL`9l`z$WTpQfUkoS`(C@-sSA4cwB9~!bgyv6eaZc+9VX4@M~ znL`3{IINWU5lW`UGrO`nsB23%B>qmm9rKU>+995(-7lmQe!B%vp}ifiH;_L|{^E@Z z@J9+sd)w=O*!T>F-lJ8sa9+n3~ zsH+AK%7@(zHD+H{Wc)q~biQzai{wKn(3&x?(CFL5Nr0v0A%8rxL#TWRy%Ru~wRqcl z_2GFJ-s(^G`HJrkvCX);S2veLs|Dl2#1lTj?d<)!zWriU(z)#r$q8f1D9j}(=hv@H zq$v;-q92mIdZ_7AhA&xgdNk-Kd@=it*gSw{rj*>}rv7m)l|W6h$HcqGQ3Vk(O2O#= zy4pcUp$iiFm&)QQ@!c(uBG~h?ADUeVVIuUaJoL98!_mQUE=rQ$H27v0HX(zx*DVX) z@SgIV~e~SN7VqoRTwpA@A-VvsU?stbs#9WJ(MJFw0I{NLu(nuKfrtb V1MZ9SZ}agJ?*13{;QW8}{|_?AGqL~x literal 0 HcmV?d00001 diff --git a/src/AppRouter.tsx b/src/AppRouter.tsx index 28c3dbd1..d02268a7 100644 --- a/src/AppRouter.tsx +++ b/src/AppRouter.tsx @@ -21,6 +21,7 @@ import SomethingWrongErrorPage from '@page/errorPage/SomethingWrong'; import ModalProvider from './modalProvider'; import MediaStreamPage from '@page/mediaStreamPage'; import KakaoInAppBrowserDetect from './KakaoInAppBrowserDetect'; +import landingLoader from '@routes/landingLoader'; const AppRouter = ({ queryClient }: { queryClient: QueryClient }) => { const routes = createBrowserRouter([ @@ -42,6 +43,7 @@ const AppRouter = ({ queryClient }: { queryClient: QueryClient }) => { { index: true, element: , + loader: async () => await landingLoader(), }, { path: PATH.INTERVIEW, diff --git a/src/atoms/encoding.ts b/src/atoms/encoding.ts new file mode 100644 index 00000000..53375c41 --- /dev/null +++ b/src/atoms/encoding.ts @@ -0,0 +1,10 @@ +import { atom } from 'recoil'; + +export const encodingState = atom<{ + isEncodingAllow: boolean; +}>({ + key: 'encodingState', + default: { + isEncodingAllow: false, + }, +}); diff --git a/src/hooks/pages/Interview/useInterview.ts b/src/hooks/pages/Interview/useInterview.ts index 42403a3a..559c3d1d 100644 --- a/src/hooks/pages/Interview/useInterview.ts +++ b/src/hooks/pages/Interview/useInterview.ts @@ -1,7 +1,12 @@ import { useCallback, useEffect, useRef, useState } from 'react'; import { useRecoilState, useRecoilValue } from 'recoil'; import { recordSetting } from '@/atoms/interviewSetting'; -import { localDownload, startRecording, stopRecording } from '@/utils/record'; +import { + localDownloadWithMp4, + localDownloadWithWebm, + startRecording, + stopRecording, +} from '@/utils/record'; import { useUploadToIDrive } from '@/hooks/useUploadToIdrive'; import useTimeTracker from '@/hooks/useTimeTracker'; import useInterviewFlow from '@hooks/pages/Interview/useInterviewFlow'; @@ -9,6 +14,7 @@ import useInterviewSettings from '@/hooks/atoms/useInterviewSettings'; import useMedia from '@hooks/useMedia'; import useDevice from '@hooks/useDevice'; import { recordingState } from '@atoms/interview'; +import { encodingState } from '@atoms/encoding'; const useInterview = () => { const { @@ -20,7 +26,7 @@ const useInterview = () => { } = useTimeTracker(); const { isAllSuccess } = useInterviewSettings(); const { method } = useRecoilValue(recordSetting); - const uploadToDrive = useUploadToIDrive(); + const { uploadToIDriveWithMP4, uploadToIDriveWithWebm } = useUploadToIDrive(); const { currentQuestion, getNextQuestion, isLastQuestion } = useInterviewFlow(); @@ -30,10 +36,10 @@ const useInterview = () => { const [{ isRecording: isRecording }, setIsRecording] = useRecoilState(recordingState); + const { isEncodingAllow: isEncodingAllow } = useRecoilValue(encodingState); const [isScriptInView, setIsScriptInView] = useState(true); const [recordedBlobs, setRecordedBlobs] = useState([]); const mediaRecorderRef = useRef(null); - const [timeOverModalIsOpen, setTimeOverModalIsOpen] = useState(false); @@ -72,10 +78,18 @@ const useInterview = () => { switch (method) { case 'idrive': - void uploadToDrive({ blob, currentQuestion, recordTime }); + if (isEncodingAllow) { + void uploadToIDriveWithMP4({ blob, currentQuestion, recordTime }); + } else { + void uploadToIDriveWithWebm({ blob, currentQuestion, recordTime }); + } break; case 'local': - void localDownload(blob, currentQuestion, recordTime); + if (isEncodingAllow) { + void localDownloadWithMp4(blob, currentQuestion, recordTime); + } else { + void localDownloadWithWebm(blob, currentQuestion); + } break; } @@ -84,12 +98,9 @@ const useInterview = () => { }, [ recordedBlobs, isProcessing, - setIsProcessing, selectedMimeType, calculateDuration, method, - setProcessQueue, - uploadToDrive, currentQuestion, ]); diff --git a/src/hooks/useUploadToIdrive.ts b/src/hooks/useUploadToIdrive.ts index 7d46fa88..c7832fa1 100644 --- a/src/hooks/useUploadToIdrive.ts +++ b/src/hooks/useUploadToIdrive.ts @@ -16,7 +16,7 @@ export const useUploadToIDrive = () => { const { mutateAsync: getPreSignedUrl } = useGetPreSignedUrlMutation(); const { mutate: videoToServer } = useAddVideoMutation(); - const uploadToIDrive = async ({ + const uploadToIDriveWithMP4 = async ({ blob, currentQuestion, recordTime, @@ -25,7 +25,6 @@ export const useUploadToIDrive = () => { const thumbnailBlob = await getThumbnailBlob(blob); const mp4Blob = await EncodingWebmToMp4(blob, recordTime); - toast.success('성공적으로 서버에 업로드를 준비합니다.'); const { video, thumbnail } = await getPreSignedUrl(); await putBlobDataToIdrive({ @@ -58,5 +57,45 @@ export const useUploadToIDrive = () => { } }; - return uploadToIDrive; + const uploadToIDriveWithWebm = async ({ + blob, + currentQuestion, + recordTime, + }: UploadParams): Promise => { + try { + const thumbnailBlob = await getThumbnailBlob(blob); + + const { video, thumbnail } = await getPreSignedUrl(); + + await putBlobDataToIdrive({ + url: thumbnail?.preSignedUrl, + blob: thumbnailBlob, + }); + + await putBlobDataToIdrive({ + url: video?.preSignedUrl, + blob: blob, + }); + + videoToServer({ + questionId: currentQuestion.questionId, + videoName: currentQuestion.questionContent, + videoAnswer: `${ + currentQuestion?.answerContent + ? currentQuestion.answerContent + : '답변이 작성되지 않았습니다.' + }`, + url: `${IDRIVE_URL}/videos/${video.key}`, + thumbnail: `${IDRIVE_URL}/thumbnail/${thumbnail.key}`, + videoLength: recordTime, + }); + + toast.success('성공적으로 서버에 업로드 되었습니다😊'); + } catch (error) { + toast.error('업로드 중 오류 발생'); + throw error; // 오류를 다시 throw하여 호출자에게 전파 + } + }; + + return { uploadToIDriveWithMP4, uploadToIDriveWithWebm }; }; diff --git a/src/page/landingPage/index.tsx b/src/page/landingPage/index.tsx index fc33b645..2c6feb5d 100644 --- a/src/page/landingPage/index.tsx +++ b/src/page/landingPage/index.tsx @@ -7,8 +7,17 @@ import { } from '@components/landingPage'; import LandingPageServiceTour from '@components/landingPage/LadingPageServiceTour'; import { css } from '@emotion/react'; +import { useLoaderData } from 'react-router-dom'; +import { encodingState } from '@atoms/encoding'; +import { useRecoilState } from 'recoil'; +import { useEffect } from 'react'; const LandingPage: React.FC = () => { + const { isEncodingAllow } = useLoaderData() as { isEncodingAllow: boolean }; + const [, setIsEncodingAllow] = useRecoilState(encodingState); + useEffect(() => { + setIsEncodingAllow({ isEncodingAllow: isEncodingAllow }); + }, [isEncodingAllow, setIsEncodingAllow]); return ( <> diff --git a/src/routes/landingLoader.ts b/src/routes/landingLoader.ts new file mode 100644 index 00000000..ba4e82b2 --- /dev/null +++ b/src/routes/landingLoader.ts @@ -0,0 +1,13 @@ +import { canUseFFmpeg, getFFmpeg } from '@/utils/record'; +import { json } from 'react-router-dom'; + +const landingLoader = async () => { + await getFFmpeg(); // Root에서 FFmpeg module을 받습니다. + const isEncodingAllow = await canUseFFmpeg(); + + return json({ + isEncodingAllow: isEncodingAllow, + }); +}; + +export default landingLoader; diff --git a/src/routes/rootLoader.ts b/src/routes/rootLoader.ts index 258bea10..d376065d 100644 --- a/src/routes/rootLoader.ts +++ b/src/routes/rootLoader.ts @@ -1,11 +1,8 @@ import { QueryClient } from '@tanstack/react-query'; import { QUERY_KEY } from '@constants/queryKey'; import { getMemberInfo } from '@/apis/member'; -import { getFFmpeg } from '@/utils/record'; const rootLoader = async ({ queryClient }: { queryClient: QueryClient }) => { - void getFFmpeg(); // Root에서 FFmpeg module을 받습니다. - if (!queryClient.getQueryState(QUERY_KEY.MEMBER)) { await queryClient.prefetchQuery({ queryKey: QUERY_KEY.MEMBER, diff --git a/src/utils/record.ts b/src/utils/record.ts index fd88d82d..896d672e 100644 --- a/src/utils/record.ts +++ b/src/utils/record.ts @@ -2,7 +2,7 @@ import { SelectedQuestion } from '@/atoms/interviewSetting'; import React, { MutableRefObject } from 'react'; import { toast } from '@foundation/Toast/toast'; import { FFmpeg } from '@ffmpeg/ffmpeg'; -import { toBlobURL } from '@ffmpeg/util'; +import { toBlobURL, fetchFile } from '@ffmpeg/util'; import { isAndroid, isIOSUser } from '@/utils/userAgent'; import { FFMPEG_URL } from '@constants/api'; @@ -26,7 +26,6 @@ const videoRecordQueue: VideoRecordQueue = []; const ffmpegLogCallback = ({ message }: { message: string }) => { if (!videoRecordQueue[0]) { - toast.info('인코딩 과정에 문제가 발생했습니다😂'); return; } @@ -89,35 +88,53 @@ export const stopRecording = ( } }; -export const getFFmpeg = async (maxAttempts = 3) => { - try { - if (!ffmpeg.loaded) { - await ffmpeg.load({ - coreURL: await toBlobURL( - `${FFMPEG_URL}/ffmpeg-core.js`, - 'text/javascript' - ), - wasmURL: await toBlobURL( - `${FFMPEG_URL}/ffmpeg-core.wasm`, - 'application/wasm' - ), - workerURL: await toBlobURL( - `${FFMPEG_URL}/ffmpeg-core.worker.js`, - 'text/javascript' - ), - }); - console.log('FFmpeg가 연결되었습니다.'); - } - } catch (error) { - if (maxAttempts === 1) { - return; - } - - await getFFmpeg(maxAttempts - 1); // 재시도 +export const getFFmpeg = async () => { + if (!ffmpeg.loaded) { + await ffmpeg.load({ + coreURL: await toBlobURL( + `${FFMPEG_URL}/ffmpeg-core.js`, + 'text/javascript' + ), + wasmURL: await toBlobURL( + `${FFMPEG_URL}/ffmpeg-core.wasm`, + 'application/wasm' + ), + workerURL: await toBlobURL( + `${FFMPEG_URL}/ffmpeg-core.worker.js`, + 'text/javascript' + ), + }); } }; -export const localDownload = async ( +export const canUseFFmpeg = async () => { + let isCan = false; + if (!ffmpeg.loaded) await getFFmpeg(); + await ffmpeg.writeFile('input.webm', await fetchFile('/check-ffmpeg.webm')); + + const result = await ffmpeg.exec( + [ + '-i', + 'input.webm', // 입력 파일 + '-s', + '640x360', + '-r', + '30', // 프레임 레이트 설정: 30fps + 'output.mp4', // 출력 파일 + ], + 10000 + ); + + isCan = result === 0 ? true : false; + + console.log(`인코딩 종료!! 😊 ${isCan}`, { + position: 'bottomLeft', + }); + + return isCan; +}; + +export const localDownloadWithMp4 = async ( blob: Blob, currentQuestion: SelectedQuestion, recordTime: string @@ -135,6 +152,22 @@ export const localDownload = async ( document.body.removeChild(a); }; +export const localDownloadWithWebm = ( + blob: Blob, + currentQuestion: SelectedQuestion +) => { + const url = window.URL.createObjectURL(blob); + const a = document.createElement('a'); + a.style.display = 'none'; + a.href = url; + a.download = `${currentQuestion.questionContent}.webm`; + + document.body.appendChild(a); + a.click(); + window.URL.revokeObjectURL(url); + document.body.removeChild(a); +}; + export const EncodingWebmToMp4 = async (blob: Blob, recordTime: string) => { if (isIOSUser() || isAndroid()) { return blob; @@ -142,44 +175,36 @@ export const EncodingWebmToMp4 = async (blob: Blob, recordTime: string) => { videoRecordQueue.push({ recordTime, questionNumber: index++ }); - if (!ffmpeg.loaded) { - await ffmpeg.load({ - coreURL: await toBlobURL( - `${FFMPEG_URL}/ffmpeg-core.js`, - 'text/javascript' - ), - wasmURL: await toBlobURL( - `${FFMPEG_URL}/ffmpeg-core.wasm`, - 'application/wasm' - ), - workerURL: await toBlobURL( - `${FFMPEG_URL}/ffmpeg-core.worker.js`, - 'text/javascript' - ), + // if (!ffmpeg.loaded) await getFFmpeg(); + + if (ffmpeg.loaded) { + const arrayBuffer = await blob.arrayBuffer(); + const uint8Array = new Uint8Array(arrayBuffer); + // ffmpeg의 파일 시스템에 파일 작성 + + await ffmpeg.writeFile('input.webm', uint8Array); + + await ffmpeg.exec([ + '-i', + 'input.webm', // 입력 파일 + '-s', + '640x360', + '-r', + '30', // 프레임 레이트 설정: 30fps + 'output.mp4', // 출력 파일 + ]); + + const data = await ffmpeg.readFile('output.mp4'); + const newBlob = new Blob([data], { type: 'video/mp4' }); + toast.info('성공적으로 Mp4 인코딩이 완료되었습니다😊', { + position: 'bottomLeft', }); + toast.delete(videoRecordQueue[0].toastId!); + videoRecordQueue.shift(); + return newBlob; + } else { + return blob; } - - const arrayBuffer = await blob.arrayBuffer(); - const uint8Array = new Uint8Array(arrayBuffer); - // ffmpeg의 파일 시스템에 파일 작성 - await ffmpeg.writeFile('input.webm', uint8Array); - await ffmpeg.exec([ - '-i', - 'input.webm', // 입력 파일 - '-s', - '640x360', - '-r', - '30', // 프레임 레이트 설정: 30fps - 'output.mp4', // 출력 파일 - ]); - const data = await ffmpeg.readFile('output.mp4'); - const newBlob = new Blob([data], { type: 'video/mp4' }); - toast.info('성공적으로 Mp4 인코딩이 완료되었습니다😊', { - position: 'bottomLeft', - }); - toast.delete(videoRecordQueue[0].toastId!); - videoRecordQueue.shift(); - return newBlob; }; /** @@ -194,7 +219,7 @@ export const getThumbnailBlob = async (blob: Blob) => { video.addEventListener('loadeddata', resolve); video.src = URL.createObjectURL(blob); - video.currentTime = 0.1; // 썸네일을 캡처할 시점 (초단위) + video.currentTime = 0.3; // 썸네일을 캡처할 시점 (초단위) }); await loadVideo; From 95678ee48edc5c68318b8f674474809b88859476 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=84=B1=EC=9D=B8?= Date: Sat, 24 Feb 2024 17:56:45 +0900 Subject: [PATCH 13/14] =?UTF-8?q?hotfix:=20landing=20=EB=AC=B4=ED=95=9C=20?= =?UTF-8?q?=EB=A1=9C=EB=94=A9=20=EC=9D=B4=EC=8A=88=20=ED=95=B4=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/AppRouter.tsx | 2 -- .../WorkbookGeneratorModal/WorkbookEditForm.tsx | 1 + src/page/interviewSettingPage/index.tsx | 12 +++++++++++- src/page/landingPage/index.tsx | 9 --------- 4 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/AppRouter.tsx b/src/AppRouter.tsx index d02268a7..28c3dbd1 100644 --- a/src/AppRouter.tsx +++ b/src/AppRouter.tsx @@ -21,7 +21,6 @@ import SomethingWrongErrorPage from '@page/errorPage/SomethingWrong'; import ModalProvider from './modalProvider'; import MediaStreamPage from '@page/mediaStreamPage'; import KakaoInAppBrowserDetect from './KakaoInAppBrowserDetect'; -import landingLoader from '@routes/landingLoader'; const AppRouter = ({ queryClient }: { queryClient: QueryClient }) => { const routes = createBrowserRouter([ @@ -43,7 +42,6 @@ const AppRouter = ({ queryClient }: { queryClient: QueryClient }) => { { index: true, element: , - loader: async () => await landingLoader(), }, { path: PATH.INTERVIEW, diff --git a/src/components/common/QuestionSelectionBox/WorkbookGeneratorModal/WorkbookEditForm.tsx b/src/components/common/QuestionSelectionBox/WorkbookGeneratorModal/WorkbookEditForm.tsx index 8cba94b4..7cd796c7 100644 --- a/src/components/common/QuestionSelectionBox/WorkbookGeneratorModal/WorkbookEditForm.tsx +++ b/src/components/common/QuestionSelectionBox/WorkbookGeneratorModal/WorkbookEditForm.tsx @@ -25,6 +25,7 @@ const WorkbookEditForm: React.FC = ({ useWorkbookQuery({ workbookId: workbookId, }); + const { data: categories } = useCategoryQuery(); const [activeValidationError, setActiveValidationError] = useState(false); const [selectedCategoryIndex, setSelectedCategoryIndex] = useState(0); diff --git a/src/page/interviewSettingPage/index.tsx b/src/page/interviewSettingPage/index.tsx index 3075ce56..9d594a44 100644 --- a/src/page/interviewSettingPage/index.tsx +++ b/src/page/interviewSettingPage/index.tsx @@ -16,6 +16,9 @@ import StepPage from '@foundation/StepPages'; import { InterviewSettingPageLayout } from '@components/interviewSettingPage'; import ServiceTermsPage from './ServiceTermsPage'; import { toast } from '@foundation/Toast/toast'; +import { encodingState } from '@atoms/encoding'; +import { useEffect } from 'react'; +import { canUseFFmpeg } from '@/utils/record'; const FIRST_PAGE_INDEX = 0; const PREV_PAGE_INDEX = -1; @@ -24,9 +27,16 @@ const InterviewSettingPage: React.FC = () => { const navigate = useNavigate(); const [searchParams, setSearchParams] = useSearchParams(); const [questionSettingState] = useRecoilState(questionSetting); - const currentPage = searchParams.get('page'); + const [, setIsEncodingAllow] = useRecoilState(encodingState); + useEffect(() => { + async () => { + const isEncodingAllow = await canUseFFmpeg(); + setIsEncodingAllow({ isEncodingAllow: isEncodingAllow }); + }; + }, [setIsEncodingAllow]); + const pageInfo = [ { name: '약관 동의', diff --git a/src/page/landingPage/index.tsx b/src/page/landingPage/index.tsx index 2c6feb5d..fc33b645 100644 --- a/src/page/landingPage/index.tsx +++ b/src/page/landingPage/index.tsx @@ -7,17 +7,8 @@ import { } from '@components/landingPage'; import LandingPageServiceTour from '@components/landingPage/LadingPageServiceTour'; import { css } from '@emotion/react'; -import { useLoaderData } from 'react-router-dom'; -import { encodingState } from '@atoms/encoding'; -import { useRecoilState } from 'recoil'; -import { useEffect } from 'react'; const LandingPage: React.FC = () => { - const { isEncodingAllow } = useLoaderData() as { isEncodingAllow: boolean }; - const [, setIsEncodingAllow] = useRecoilState(encodingState); - useEffect(() => { - setIsEncodingAllow({ isEncodingAllow: isEncodingAllow }); - }, [isEncodingAllow, setIsEncodingAllow]); return ( <> From ebe0d48e25e40ace17eeb4795a6aaf83f1164e80 Mon Sep 17 00:00:00 2001 From: Sumin Date: Sat, 24 Feb 2024 18:12:29 +0900 Subject: [PATCH 14/14] =?UTF-8?q?hotfix:=20=EB=A9=80=ED=8B=B0=EC=8A=A4?= =?UTF-8?q?=EB=A0=88=EB=94=A9=20=EA=B0=9C=EC=88=98=20=EC=A0=9C=ED=95=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/record.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/utils/record.ts b/src/utils/record.ts index 896d672e..1ea66736 100644 --- a/src/utils/record.ts +++ b/src/utils/record.ts @@ -2,7 +2,7 @@ import { SelectedQuestion } from '@/atoms/interviewSetting'; import React, { MutableRefObject } from 'react'; import { toast } from '@foundation/Toast/toast'; import { FFmpeg } from '@ffmpeg/ffmpeg'; -import { toBlobURL, fetchFile } from '@ffmpeg/util'; +import { fetchFile, toBlobURL } from '@ffmpeg/util'; import { isAndroid, isIOSUser } from '@/utils/userAgent'; import { FFMPEG_URL } from '@constants/api'; @@ -191,6 +191,8 @@ export const EncodingWebmToMp4 = async (blob: Blob, recordTime: string) => { '640x360', '-r', '30', // 프레임 레이트 설정: 30fps + '-threads', + '4', 'output.mp4', // 출력 파일 ]);