{_E!SRq?V5`(zIZ~b zW-df%qK^&Nwdodh$)lZXn()!-nsivs=f?}j)jo(!G@(}Y`M?Wvdk@5KB zkH7iFFMjcrEnBv*G)2d{jJ@s-(}d0=tIZ>=Ex`z@Jo@OPuBt!tBPKoZ;c=BmloFWu zPpzJwo&>%O$6`0ZILqP$YC)LTf|G!Gcbd*QeteR<86o+)^Uptjxri}gXf@a2bu_dl zqGP}{d4tGumeJcrWa%R!N?Ib)zIlj>M_(UfVu ?wq;DRcmUoqZ-caz15HZsV?j=3=X%P+rd_4V~7P 6i2 +xH;d`Qw0$xMgCNf~kY{t%3 9S-uL=&-bz)b35Kl>QFuT)Ya>tlfumkL;KmF;OU;XM=Uq^(= zx#wI}YmSn+NHXJoK`ApEN-D^mt4o$Fku!UuL^WlO_GB=lgYfmj0VshnG`BWy-kfM@ zX-VXAxs +RIB4A>MvN(hZs+`)zxkW3 zP+69vsIV?bTvb!@mKkCzWiH_SETYCNm3e4rh=ivylgPe0*Jn(fqnMSMHKOEx_St8- zARnhDP9kJUk=RjkW1msVo#YTtDmMsjTyez}J=j*n9cnR76b!MU%=`ZFAOG>^n#?Rs zVP9d+%qfK;U0_8jGao0JVFFirdV1Wao_fl=;f5Q89(*yInDyy$w4sKu+Jq62Xl`y! zA^)aw(@Z1DX{70#JEaIN-Eur`q8yg}^rt_4`l+X$+8u}HF(w0DV}_H>e3=TX-Rv4e zY>saxp&>Q}7+!23kyB^4wY624GtYLIeIzv099Zm3d-BOA9X7DwZZea}a5Pv3p-z)B z)TDBYuz`iMacXjNJfZ!mPkm~|hd%V7(_&LC#*x68M()4={@1_x&2Mgpn2@NN%v5Mu zn!;`7%W}{KHY#&T8DJHy%$Hw&xp$&H+S7%Gn}?dAISn<2<%L4QLO3J|45VSGHQ~T! zR1=FPH`SXHGB7N+L4Ffq`JyYYyfO~WW7MHT>|1WRWjlvI3Y9O5urFI~2(cMzGt4f~ z$>xYEK8CGIGQ x0?KnU94=o?M>a&DgMEgT+!9!k;9ro}68ULpt@A zVOWmWF*N6BFy`EjTsXtB?9)y=t?8nRF6xd;Vha;g `22%Q8kRz^JS!XHH79Qu_Uva_ifIQSz}JE?W9X#$Z6y_?t=#pTKRn5 z0ihG@A!nBwUY1sQx4cb)YsZ|EHQ+W)HH*3Tg%@7f@$rv;{1iCnU2%9mH$heY+0TBq z_vV{#-m!1rzA}DeKQbvnRc&nHWC@A}Sea!hxYu0%wT$=FR<2wDMhdz0S%xb6oIVI4 zHc33|WvLUvTwk!wWN40@+d_H5!H?wNN8?N^RA`brr9yM&-bq}UGYH)iir`dkcC1;r zZC-u#)xA*gC2@G(_+XRBgAYFV`aSpDv*#y2`N<%DM_-kqNXDA#$F5S5alfRT>>`x7 zgrAzBcNLCyxxc@^1|ruGy# U!E$=X;Q23h%1R0taalmOJglDJUndU3Y>z9Gq+}l zo?>?zeq>2@6`sr7Tg}K~YjWcU&RlZIC5za#cFHNIbcq-Z0fyJlJ@?#Rgw}7u^y;G` z<6)1pi-?fObr+keEFxs)+nbu2sMHl~E>gG}C&kC+&nGf#%yp$63rTRAYOHnVa=8S4 zSeq)1AD>$);+m(_0FtB{{>ieKG}p{ iyza)9Fm2eT4CKy$j!=&(7t+%(g#%2-DGQ#?Dqt=+G0`ra3 z64Bfno2^}QgyJ&yCc#N=y66ne@fMcL |A@_``)+Y;)^d{ z9vf`a3!Nwb{onun4o;QJB$-nL;WwrCrAJEX_D!m@G`>VgY^l~r#VQD~tH_-_ A5a)}yT z#67s!HKbwzJHHyaQDi!>AV?j7oNfs}wuv9z2BB@7Knc~3n#4&VOJf}G4FyOj2b~0$ z(;Q<@wbulfYm9;5O~}E!;v9VPU}#N6{@T~R_9jB>s>+jfr AMmDgs-U@m1^w4Y zR`sN7ZnEwTLR(OAsmemBG!#5Z1y{so*II(Lafaz6H(OFgNc6hN#?OSo)(sV3a{B3~ zcP-RBoaLt%UU*^e4}S22J@?;#e}6=gJvA@3B(ezCWUi__S%=qhV|fbE6q`h9?DoRN zx3+rqYJcg{rP9Gx;Whue1*gj6VPRj=Mj=-LR4u6%r(U9ht8v~INS%n3$CAomOR**{ zRM(m^*b<81vNbiDhqDizPWoAAoz*qpn_U=Izx2{e{m7B~?z-!)K0FjCvuiAo-AJdG z96Z4=n;VWXhdj!fG8Gxh>>|}+XiY_CA9kRAvzW+Z5R-Zw=+#G*xh8XG8f?hh5}bw! zq~`#WgfiH;>9Cx6cv4NEC`)7{IR}^sMQ(0%(=WX6!nU`)?QL!Ee)qe3p*meqqB* 7YD}X`_fIp-CUK=IN5(8OPp;yk$ncu2owb&hmI@tfsItpWuXXFz`I|RymSdK+ zdp#FMNHqdtQcn K8p;E+(RAqEAvsNT%2xoHLGV|Zy&jUG$r@LYuIEeWnR4i&BE z;cCwX5t`09=bTn-T_>M>aw~Ikm_jqI=FEvn;#XdIrGM+ztwRqy@IXJvMiR?TEY^?J zG2y@oNoLg)BG)rljUiNDj(#d}J##MA%El0qnfWu07a#M~cxAa_1;;Ft& s_${rs>Qx&um2)+6tn#b#``UxJ?z=N#H$u_6%>|zI~Vke&(5HazFafkA}pk z3iD;mi)HCasL&W+o44iQ3FgWqDlTL)v<6|TDzvU~W8TbRknk%!95a_h#^1w%6!IdW z8iwXw>*h=%CiN76%`MzRT{%3IDsF%r&fdLyZJe|=LUfysI?2a*&uO;d oLVLj8 89s)K zS(OPgS9E0l%+Ep{zX}7=!`~lp$yU{`Kj%k9H5y`4Paz^9I&YXHI8Iu#x3`z0$4qP% zLRlLpx&tyfAURDmX|8btAta$y T#J9 nWfi 6xt?KBj{5V$Q8A43znMK$k5l*fsRUG9k z6Ct@A6OQniBg*6)Yl@Ikv6+9 @A%S@KdKpf8Q!m!&$F3j9qcD%7(P9lS#{Qb1yW~n`i z&QQPZq+??&&&|MRb1w;v*KjzRoFZ2(`X-5q&u96`Wm_ljXR}$C1kUAhF8l%)-^oYL z&XN;dYMF1Vp^QXK;#o#a>c)a3Id3TQP3GoW%{c&tVKqZ;cDxBy76aK$ + {/* 제목 섹션 */} + ++ + {/* 버튼 */} +
++ 2024.10 +
+
++ ++ + {/* 차트 섹션 */} +++ + ); +} diff --git a/react-app/src/components/Header.jsx b/react-app/src/components/Header.jsx index 6ada8d0..bd07bda 100644 --- a/react-app/src/components/Header.jsx +++ b/react-app/src/components/Header.jsx @@ -1 +1,28 @@ -// 웹사이트 상단 헤더 부분 \ No newline at end of file +// src/components/Header.jsx +import React from 'react'; +import { Link } from 'react-router-dom'; +import styles from './Header.module.css'; + +export default function Header() { + return ( ++ ++ + + + + + {/* 페이지 위에서 간격을 둔 상단 선 */} ++ ); +} diff --git a/react-app/src/components/Header.module.css b/react-app/src/components/Header.module.css new file mode 100644 index 0000000..a3210ba --- /dev/null +++ b/react-app/src/components/Header.module.css @@ -0,0 +1,75 @@ +/* src/components/Header.module.css */ +.header-container { + background-color: #0A2647; + padding: 12px 0; /* 기존 8px에서 12px로 증가 */ + border-top: 2px solid #FFFFFF; + border-bottom: 2px solid #FFFFFF; +} + +.header { + max-width: 1200px; + margin: 0 auto; /* 중앙 정렬 */ + display: flex; + align-items: center; + justify-content: space-between; + height: 60px; /* 헤더 높이 설정 (필요하면 조정) */ +} + +.logo { + font-size: 2.5rem; + font-weight: 500; + color: #FFFFFF; +} + +.nav { + display: flex; + gap: 100px; /* 메뉴 간격 */ +} + +.nav-link { + color: white; + font-size: 1.2rem; + text-decoration: none; + position: relative; +} + +.nav-link:hover, +.nav-link:focus { + text-decoration: underline; +} + +.nav-link.active { + text-decoration: none; +} + +.nav-link.active::after { + content: ''; + display: block; + width: 100%; + height: 2px; + background-color: white; + position: absolute; + bottom: 4px; /* 선 위치 조정 */ + left: 0; +} + +.search-input { + padding: 0.5rem 1rem; + border-radius: 15px; + border: none; + width: 400px; +} + +.profile-icon { + width: 40px; + height: 40px; + background-color: #D1D5DB; + border-radius: 50%; + overflow: hidden; +} + +.profile-icon img { + width: 100%; + height: 100%; + object-fit: cover; +} diff --git a/react-app/src/index.css b/react-app/src/index.css index 0d99185..b6b7d46 100644 --- a/react-app/src/index.css +++ b/react-app/src/index.css @@ -1,73 +1,13 @@ -/* index.css */ +/* src/index.css */ +@import url('https://fonts.googleapis.com/css2?family=Amethysta&display=swap'); + @tailwind base; @tailwind components; @tailwind utilities; -html, body, #root { - height: 100%; +/* 전역 스타일 */ +body { + font-family: 'Amethysta', serif; margin: 0; - display: flex; - justify-content: center; - align-items: center; -} - -:root { - font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } + background-color: #F1F0F0; } diff --git a/react-app/src/main.jsx b/react-app/src/main.jsx index b9a1a6d..fe7a515 100644 --- a/react-app/src/main.jsx +++ b/react-app/src/main.jsx @@ -1,10 +1,11 @@ -import { StrictMode } from 'react' -import { createRoot } from 'react-dom/client' -import './index.css' -import App from './App.jsx' +// src/main.jsx +import React from 'react'; +import { createRoot } from 'react-dom/client'; +import './index.css'; +import App from './App'; createRoot(document.getElementById('root')).render( -+ +Newsy
+ ++ + +++ , -) + +); diff --git a/react-app/src/pages/OnBoardingPage.jsx b/react-app/src/pages/OnBoardingPage.jsx new file mode 100644 index 0000000..ee8fab6 --- /dev/null +++ b/react-app/src/pages/OnBoardingPage.jsx @@ -0,0 +1,56 @@ +import React from 'react'; +import Header from '../components/Header'; +import AnalysisChart from '../components/AnalysisChart'; +import styles from './OnBoardingPage.module.css'; +import OnBoardingObject from '../assets/images/OnBoardingObject.png'; + +export default function OnBoardingPage() { + return ( +- + {/* 헤더 */} ++ ); +} diff --git a/react-app/src/pages/OnBoardingPage.module.css b/react-app/src/pages/OnBoardingPage.module.css new file mode 100644 index 0000000..dfdac7e --- /dev/null +++ b/react-app/src/pages/OnBoardingPage.module.css @@ -0,0 +1,76 @@ +/* 차트 섹션 스타일 */ +.chart-section { + height: 90vh; + display: flex; + align-items: center; + justify-content: center; + background-color: #0a2647; + position: relative; + } + + .chart-background { + position: absolute; + top: 8%; + left: 5%; + right: 5%; + bottom: 10%; + background-color: #ffffff; + border-radius: 20px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + z-index: 1; + } + + .chart-container { + position: relative; + z-index: 2; + width: 80%; + margin: 0 auto; + } + + /* 뉴스 섹션 스타일 */ + .second-section { + margin-top: 50px; + padding: 40px 20px; + background-color: #f1f0f0; + font-size: 0.9rem; + padding-bottom: 200px; + } + + .stats-container { + display: flex; + justify-content: space-evenly; + align-items: center; + text-align: center; + gap: 20px; + margin-right: 25px; + } + + .stat-item h2 { + font-size: 2rem; + margin-bottom: 6px; + + } + + .stat-item p { + font-size: 0.8rem; + color: #4b5563; + } + + .news-button { + margin-top: 15px; + margin-bottom: 35px; + background-color: #0a2647; + color: #ffffff; + border: 2px solid #0a2647; + border-radius: 10px; + padding: 8px 16px; + font-size: 0.9rem; + transition: all 0.3s ease; + } + + .news-button:hover { + background-color: #ffffff; + color: #0a2647; + border-color: #ffffff; + } + \ No newline at end of file diff --git a/react-app/tailwind.config.js b/react-app/tailwind.config.js index c89ecb8..215e176 100644 --- a/react-app/tailwind.config.js +++ b/react-app/tailwind.config.js @@ -1,12 +1,20 @@ /** @type {import('tailwindcss').Config} */ export default { content: [ - './src/**/*.{js,jsx,ts,tsx}', - './index.html' + './src/**/*.{js,jsx,ts,tsx}', // src 폴더 내의 모든 컴포넌트 포함 + './index.html', // 루트 index.html 포함 ], theme: { - extend: {}, + extend: { + // 폰트 설정 확장 + fontFamily: { + amethysta: ['Amethysta', 'serif'], // Amethysta 폰트를 등록 + }, + colors: { + primary: '#0A2647', // 헤더 및 버튼 색상 + secondary: '#F1F0F0', // 배경 색상 + }, + }, }, plugins: [], -} - +}; From b2602897b578345203a6e063e56ca2ff25dfc7f5 Mon Sep 17 00:00:00 2001 From: jink0228 <124790496+jink0228@users.noreply.github.com> Date: Thu, 21 Nov 2024 14:00:19 +0900 Subject: [PATCH 2/3] =?UTF-8?q?fix:=20=EC=98=A4=ED=83=80=20=ED=95=B4?= =?UTF-8?q?=EA=B2=B0=20(#21)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 504c720..72e0737 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,7 +51,7 @@ jobs: # git diff-index --quiet HEAD || git commit -m "chore: format code with Prettier" # 8. ESLint 실행 -/ + # 9. 빌드 실행 - name: Build project From 1be0b4542b2c0c4d7633229b08dbccdc9d3f9084 Mon Sep 17 00:00:00 2001 From: Dongyoung Kang <117520595+rokaf6444@users.noreply.github.com> Date: Thu, 21 Nov 2024 20:37:32 +0900 Subject: [PATCH 3/3] =?UTF-8?q?[design]=20=ED=8C=90=EB=B3=84=EB=90=9C=20?= =?UTF-8?q?=EA=B8=B0=EC=82=AC=20=EB=AA=A9=EB=A1=9D=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=20=ED=8D=BC=EB=B8=94=EB=A6=AC=EC=8B=B1=20(#18)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * design: 판별된 기사 목록 페이지 구현 * refactor: App.jsx 파일 구조 간소화 및 가독성 개선 * fix: 이미지 표시 문제 해결 * refactor: Navbar 통일 --- .github/workflows/ci.yml | 4 +- react-app/package-lock.json | 12 ++++ react-app/package.json | 2 + react-app/src/App.jsx | 5 +- .../assets/images/IdentifiedArticlesPage1.png | Bin 0 -> 637223 bytes .../assets/images/IdentifiedArticlesPage2.png | Bin 0 -> 116081 bytes .../assets/images/IdentifiedArticlesPage3.png | Bin 0 -> 125729 bytes .../assets/images/IdentifiedArticlesPage4.png | Bin 0 -> 465322 bytes react-app/src/components/ArticleList.jsx | 1 - .../src/components/articles/ArticleItem.jsx | 28 +++++++++ .../src/components/articles/ArticleList.jsx | 31 ++++++++++ .../src/components/articles/Pagination.jsx | 17 ++++++ .../components/articles/SelectedArticle.jsx | 53 ++++++++++++++++++ .../src/components/{ => layout}/Header.jsx | 0 .../components/{ => layout}/Header.module.css | 0 react-app/src/components/layout/Navbar.jsx | 41 ++++++++++++++ react-app/src/data/articles.js | 47 ++++++++++++++++ react-app/src/index.css | 14 +++-- .../src/pages/IdentifiedArticlesPage.jsx | 23 ++++++++ react-app/src/pages/OnBoardingPage.jsx | 6 +- 20 files changed, 274 insertions(+), 10 deletions(-) create mode 100644 react-app/src/assets/images/IdentifiedArticlesPage1.png create mode 100644 react-app/src/assets/images/IdentifiedArticlesPage2.png create mode 100644 react-app/src/assets/images/IdentifiedArticlesPage3.png create mode 100644 react-app/src/assets/images/IdentifiedArticlesPage4.png delete mode 100644 react-app/src/components/ArticleList.jsx create mode 100644 react-app/src/components/articles/ArticleItem.jsx create mode 100644 react-app/src/components/articles/ArticleList.jsx create mode 100644 react-app/src/components/articles/Pagination.jsx create mode 100644 react-app/src/components/articles/SelectedArticle.jsx rename react-app/src/components/{ => layout}/Header.jsx (100%) rename react-app/src/components/{ => layout}/Header.module.css (100%) create mode 100644 react-app/src/components/layout/Navbar.jsx create mode 100644 react-app/src/data/articles.js create mode 100644 react-app/src/pages/IdentifiedArticlesPage.jsx diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 72e0737..2cb496a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -51,7 +51,9 @@ jobs: # git diff-index --quiet HEAD || git commit -m "chore: format code with Prettier" # 8. ESLint 실행 - + #- name: Run ESLint + # working-directory: react-app + # run: npm run lint # ESLint를 실행하는 스크립트를 `package.json`에 설정 # 9. 빌드 실행 - name: Build project diff --git a/react-app/package-lock.json b/react-app/package-lock.json index 90939c5..2874b1f 100644 --- a/react-app/package-lock.json +++ b/react-app/package-lock.json @@ -8,6 +8,8 @@ "name": "react-app", "version": "0.0.0", "dependencies": { + "lucide-react": "^0.460.0", + "prop-types": "^15.8.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^6.28.0", @@ -3694,6 +3696,15 @@ "yallist": "^3.0.2" } }, + "node_modules/lucide-react": { + "version": "0.460.0", + "resolved": "https://registry.npmjs.org/lucide-react/-/lucide-react-0.460.0.tgz", + "integrity": "sha512-BVtq/DykVeIvRTJvRAgCsOwaGL8Un3Bxh8MbDxMhEWlZay3T4IpEKDEpwt5KZ0KJMHzgm6jrltxlT5eXOWXDHg==", + "license": "ISC", + "peerDependencies": { + "react": "^16.5.1 || ^17.0.0 || ^18.0.0 || ^19.0.0-rc" + } + }, "node_modules/merge2": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", @@ -4249,6 +4260,7 @@ "version": "15.8.1", "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "license": "MIT", "dependencies": { "loose-envify": "^1.4.0", "object-assign": "^4.1.1", diff --git a/react-app/package.json b/react-app/package.json index 18556e0..c97defc 100644 --- a/react-app/package.json +++ b/react-app/package.json @@ -10,6 +10,8 @@ "preview": "vite preview" }, "dependencies": { + "lucide-react": "^0.460.0", + "prop-types": "^15.8.1", "react": "^18.3.1", "react-dom": "^18.3.1", "react-router-dom": "^6.28.0", diff --git a/react-app/src/App.jsx b/react-app/src/App.jsx index 188f547..8cab92e 100644 --- a/react-app/src/App.jsx +++ b/react-app/src/App.jsx @@ -1,13 +1,14 @@ -// src/App.jsx import React from 'react'; import { BrowserRouter as Router, Routes, Route } from 'react-router-dom'; import OnboardingPage from './pages/OnboardingPage'; +import IdentifiedArticlesPage from './pages/IdentifiedArticlesPage'; export default function App() { return (+ + {/* 차트 섹션 */} + + {/* 흰색 배경 */} + + {/* 차트 */} + + + {/* 뉴스 섹션 */} ++++ + +++++127
+일주일 간 분석한 뉴스 기사 수
+++67%
+평균 신뢰도
+++86
+신뢰도 80% 이상 기사
+++Check Today News
+매일매일 판별 되는 뉴스 기사
+ + {/* 이미지 추가 */} ++ ++); diff --git a/react-app/src/assets/images/IdentifiedArticlesPage1.png b/react-app/src/assets/images/IdentifiedArticlesPage1.png new file mode 100644 index 0000000000000000000000000000000000000000..0f58bf67eaf2d4f610574ce620b32a7889e29c51 GIT binary patch literal 637223 zcmV(`K-0g8P) - } /> + } /> + } /> Px#1ZP1_K>z@;j|==^1poj532;bRa{vGqB>(^xB>_oNB=7(L|D{PpK~#8N?EP1> zZAo(HiN(?Ko~v(aQJGm p0pU}ml zpYtc+{LkCz*;$7D4V0YZBBT$zi*0dX* k1kQlGokg zlq&!r{&2^P=qb;u}ffy;*sbu3{ zT2_gq)3WlBO41l>5PfM0l?1AH^9m!mC}rOZs*SUDcyOe;J#9zlt8H`ZYP $3oeY+WhEfU$%78_V)JL-tLpO`(&?u{Ncy8hy7jI;IYz4vTEM-P1)C%(Mfed zwu?*Bcd4zeZM3U5Z?yG|&Gzcs@3hs`wYIr^Rqlq%uyDT64i5Gt@2K7V i_U3l`U;c}K(XQUO-mYH1-cHe9U)55> zd>0j7TvR7R=Lyg@{ze1htrnaC$0vk8cqm(lz#;)87O$vo9NCcCW?8njAX{7C+EF=H z6<%!%%WH~8fYLKep`+@Uam! X-L1IJ_ya) ziH^U itB1)!nK36yq!7+y4G;J5WD< zeE&iF>0ke#J$`V%{q+ytZTsrq`}=$9H%H>rc))zac!1cf1HPx4lU#P$kK2oQLF6A$ zyuEF@-K`fb8vZd!@kN~$oqipV`A@*}S29yh1NPd1CF@6$Gmw4(;|~2`S>x4}D_d<{ z Cu)^NGeA>g|ZIR6$?n zi72zisM1g1{$n3DrZ0#+TSYz@D`!RY&=Z*g{dml_H|hodsq>+3i3c-p0d-2-S9oSU zkhC89bkQE8ETCw>G<_e3e;$y3#a+fz(93!j@4Wb_eg#u`eV8@rv MlGB|+)YZH? z==}ksOrpFNW_~w0;+7O(ZduWIw6VI{R%MqPvP dwY(4roQL-Db~JTw`wfI zW&9$|;o+g?b*-1R?%CDcet3A$o;=pL_~3!oI8U@j{YdNTgLZOosCCH$rPq4Ma~pEU z{ss1s)2i3V6}6;wQNd!iHS-P#|0&}D?X$?7q;!dAqPvf4ZB)4|FKbLvfP5DgqTHLS zT7$|)R)t&ZOIn95wzYMIS2edQ?^Uf`y-wBq#yZ-r=KHWalo|DlwIv?^8q5b3lI(Ms z4YRJB^pJ|7 5666~GCE#<=_HTkpP!9>gY!(8KvpKdjE74~@3C3n zG*l$6zVKK}h28$L1J=Bj2~P?&U&$4ZV$i_hg1&th{ty4h|I-i}6cvm@Mx&rJ!_yBY zHSqOmfqAl?2JrWMQ+Wo}jX4xmIz>2m(WT;{K%SLLRj`0!Ay1>BH;qK&&6c6kRa#s& zVN9H8!KSPhAfAYnH=EnD+;p5C@4It>$80zhcdX68krpIuWDoZrdvogzt~x65Y!2we z&MOT8aJf1?yfF2&=u*m8x~k)e%;p>2JQy%gC}LS{wz|C1u57KejkV==>()lQb4LU1 zmCbhh)=h8NPL9vo-TMzU2yeDque{T?uia5kUv2;4-~Wg9(a(S0J`_HA_`tfJP#$e6 zyulq*MGrapVPU+YjmU~R=C(GR7%Lr?x|=Nv16$Ui{7eQ{Hdfp1Yn$y`-+V(Gm{o1W z*OV6HS4&}gmck$t>Gt 2adaJ@*5H$_N@ zd=?ofY ya*#4AzgxQqGfJRz2hS&fb%h=$8+OTlpK{j-BxbMZ=lP8Zo@G}W~ z@ZJZqts`%6j}&K{S~%5!%HXNNRRe73qP#VbE~*~aw86c8`?fak+wILSeMJMX>Qx)u zwe{`b)d;z-iRSqDpnde=2g>`<3-hy6ZIq;UEMRH3u; d(Z?we(ysqeh=CQvY$IQ?`W}crTrKG#s8+= zxP7Z#SHDoNq?MX#BsaL&;KdDYwcya6iiW0=MnngWPY8eTP&N|HY;XtO@MAYzL}7!w zq=|21>$>)LEbg_zUD+_txopHXEQ~r&)S}+)LY)gWSgEbp;Bs*UWP?lDqMh`kHbw^R z741mafN|r8PeAKfw&R1Ju<7Uo4;xTi%2f8R$@AQsT-hI+c5ht8r;f_vjtf>QXwVkb zx9F$v%kPO@bwE6m?>Rgvo4O=d+KaKswMZO!I`6+9sCx0ob)~V1x+I)!L|-{M(gyb= z#@W5y$8GQN x;RknwOa$ F6b5Y;a|x)>Fn;WgY5Iyo?D@eL>zbW8QZD$q$q+ Ou^(%m{=k4V`?*@19PN1*rk)N?X+IXI9FxJEh zbMY@?yuoEo#SXS)pKF@0*4MQ5y0YyHFgI`AXgfPQ3SVho`N~%`hh1wgzx--@>E+kk zrsmr1tJjrrjERf5Dfd?$qK*m!`nJSB#h%W3fOY^Gv&t>{fi|y4TElP?=+To$?NH%| z5AL@I_wKbPj~=&Av~D=s7mw(N2lthRv|PxYpKk#*OB+^O1Ix@S2}4`6cJn$+eTz9( z?X!> ocP(gLqWN6z#)fEGo3n0R6JkTL z*=3Ek?Dc!-Dm`;91xoL-O`!aCWt&lCrNIN%2G__27kgWa@+l2vS uT}II| zp3nI?`F4HM^Z;j<^~|p~xEdj=?wtmHp>;4Hbwk~;XJKENeG8$HEFArWn`6?DYeAJ) z`G%7q>Rba*4qlkMGmnEIU_}Mc`az;#8h&0N-4rvX^Cw@IFZz_86un@SaZw+|IF2-h zBY&n%9wQ6K!B{g5d5JxI dqx)+#2Zx#?-^&lh}`IWKO1b-Qf z^=L7p+>&iTKlCjm?BWVY%ZIjSVu;RH^w`vLN12YB?TeP=g?xlKSb3>#wCbRlB~8@m zDlSvjlXb|uU479k$`yAJ#`MuSt%qr2xr&A+Dt^{)r>E0JIOrxBdVep^uKmiFG?GbO zEX$U-Iv9gDn ;$M5vYZx|m(_xwEDl=5kC;_kEv zBPO`+aQV&psk;1ChOo*&bt#vRx <_x2L|0SN_P3jqX1+R>7tpY`jDB;3m$i zjj7F9*c>3eB8~9XCM|3eH~h6o4Y?&Q^6#N^DzHq;O5|dh(pr}D4LUuVO=a}r(B*^+ z1VT=%9NS(`N7 n= zW#yBZMA}Y=c~I$k=xHSbw`BD4;PW`!@%QQHLB&6d518_l9+m&|LZ2V{0= zY`+Yc%FbFfdhTQWAq;y7TVOqPs 0__Q5yW8vte?eFjVgxcdrkJ{sh4~?91Io#jX26s>OIc|)nIMu^V zC#bm6t9S-bm^GpK>SO;1wgQ(e+CO9=m+?UK{CIr`k{BICGZ1#ZLk=cqM9QAUDNJc& zIl?90(n2JZQJ&YjTKj2T$eNEEMvF_ULR{hEvTS=<>!?*Bt~SPrahj_9BYjC5bB}#m zclj>3`GoZ84&x#=>r6KEE7rkzNgpnD`+|4pS{G1x42b-m);Hql3%Jn03766PiiPL1 zrZ2cOUAlnfr(YSTXU1!|D5~ehPoqZTJ`eQeB3-4&oz<^LrRgR>p!YKlmVwnk4qT>_ zk9|7JGSrYg$n4UY-hD_{dEp=Rpd%{GMoz|K^rp@U5)}{PF$P2)qpXT8j-ZPNzT_!? zPXoeFJxE7ybkL!XFD#mJky8GcSClMY^&QgB>XNR$rdOn3h zYxDMa84y+R^Z1 6|!XAdSB&O^`eZ>YhHmE{2yh$sBuGC6T z9&rbq$;X>NEjA;r rs<*Rm&HF5NT&kUomtJga$R9T?~ph(k~T &XMi+Wv!-ZGz-Uv^S4YGEl<3`zhBeuL7+z6k6@;guPFzC)V-7_I>qV;0)4ZnFL z6TddtV_BoT))T)ryJC{7c-MjIhqib9MjgA#GDN-qt?T~p8mcVVpccaC^tBUh=tRQ$ znF@d!!d%Y8f*2QLd>^bl{R5l(09VhkdG!vt#KAZ47=kY#=ZpcV*FoK`zHyNqeqf;M zr#8jCA9UZ7?c(}WlG>JI*mb1adaAkA!zBm|!Q6R0(L$ILMjo5674bSvZYI2;NIm!s zceY#wq?-ptpNTIK2{pD*ze7}dNJiQoQKaMiTf>Y_34< hz-gDL|Xn?leu01@uuqP@=yE67KncJ}qYBl=gHv%L|LsgR>$GJ?(k>;+S_KF!GO4 z$kRMAto=bwxoVSY8t$^#IB}JCt+kQVB5_31MjSS>pm=@4%3(IX;hsAVRNjfCV{_`w zFmqSwWMm^;$a-`Zi{?!*ewAQu1zlEYMK70%p5oJBnr;f0 QFdz)S9uP+ z{8p0s%{+(H7LE^&_>3?cw)`2)^eL^%R4Ha<1 BNKbO*G&F&y!# z2hjmEr_a}zKm?mv9!ZJ2{fti#p-0^GVzU9c_DBkzj4rlvCso cYdWj>AKm=SvZ|9^qY+J*4!nkB-8zK|~DjyI239qb>r!+nk-AGD(*P6ctnHclMH zJT}S!E06L6y`Q#xE*lrilsB4be%}TVg*>8Z(@JmtAa*dDFHx|}K!z{N517V{#R*Rz zYn}3=(Uio(*jxt2h7n|47?^(6TRl20ZiIcBNWABA{ao+B*UP$ykzeJ1IR a zFC#$e2p26U?QXJkrLyrNXtm&pE7vi{*5uy% {?SJZtJGbcC&bb2?$Cp_ooG33}@s=Bl3p5YyM@StM9|MvW7Vtt!4456X`Z88| z;9&tn{8-%_8;x>1gyC|PhGzgk%ECsBD?jQyfpicj6_76Tvp?kcw}L?$!Ql{4RSYTW zK>iLZk0?Xf&Txk}Wz0h8aalcpwQ=-9jk?b^_lLhN`bg>d?n1d+ZF*4@B2M z7s1(!iL4aqqfWjH#D)w8LB?6v1d#$uzx+He^qeK@Qb4})4wP n1jTRZ0YX5oqaCkMuJEfmg=4n^xxG`ZZ_ZKt?#7dBAwGk0IZjk~lXLO(l|oDQ3H zKsJaTd+qFachG6bKhxH;!d}Esu5*>g8|1KcP=Nu5cIYZ{8U{wb5r0`=+0P|^mdA4p zN8`Br$aABIN4|rLDLWo^jmus{+rXiX +FvERZnt&;x0b z%4i#?w!md-kx=`2xzf=0EK}y7AD=vtYgsDYMGXC7z=}ssmX}xJ(G$i1^p;$27=-bj zjPU!y0RBSq88CI1zvgqoQNv)2d*(6yB19ZNNtl3Tl2HVPaOp~Y@bQ>wdk)^vWfVFM z_iY7K+&o%AFJqd%hl;x_zK34sJeZef(WY4Nv^d~d^eOcG72o^kK_5R)?;avvF8-jH z#_>$nCNZC`7zqQ6TQ$eTI9A4p>>hvhq3Q?hVOm$^$ECb=x3 -utxeJ$}><_MT{y%gbCf-!R{)&Pt2Qr`Mr$jJSv| z8vc1eYL#xbd?lN<>*gI;I<5f}>kmLYV-~?sEz(AM=VUIz!4T>2S9#2r`c&EhhmUwc z=Ee>z-9N0Mb8W{4vBj}q?+NTCvQbTpJG2}F=J;_O2aY4lE9nXs<5+X}xof+k?M1wE zgS)v#%ZhlT!m&wZy{WL$4tH~n9dBaXNe+xVxOqGo-BcO_71F~@BPJA2Uy08P&*J?o zvIaoMLP5xw>NYLM#c~0&X)e*HBUSvAt)Ga?NZ|<#PoxDCGF&o;v{^2o_eU9sk5Htp z_=p?41B`*tN&_z&MPXg-0Ef4~>Bs6a-f92{V#>%e%$B3eb5M+Q6<@(IJX@v?*nmiG zZRGF+Lv~6RX~PZO;ppWlJ 765o5L%x-!vwOSnx;v1z!xl5soqk&I4~6c~(`6MxI>;$2y84k#h{}%1;yY&`xT* z5<6-a{vH9l*4x2BA?s{kMMtRDxAgHHW-S)*!xsa;IYeXNmOE&avIq)E6AS97qs+#1 zrxDH1oKEVq2kYvzfxYfe1M-*$qpb8BCcLJTSJZ##m42aq2LFiK0CIJkw&H@saCDeW zC@$gL48sTi1 9yO_281~3R(-NAWbtOv)s RIdiS)zi!^>9M%>Vk)2VV6PQl|-`U@QH_)F%z^aXt$Pva~2EW8Dug?AoY zmVTZd^LUGIUR)17U(a7|4@H`ezdi5NUpNou#p5$h(lA%~{T8{g9E>JU)sKGUi>9 z*FO{}_4|71{RKtqvHEG%2b BXf+7NkDn43gD z(^{Kco|^@0(^(tPliZ9Z4*rN6d7pyH+ix&d-PxUy$3iY-Stn4N*w|c;;eM0rjV&@L zlVloQzQV5jwnyCh{Ral~OoXDHs=cXC1+fX+umY6P<-|@Bi`K`@@F1n*CEW7{{i2*g zFX{&W*fU)Hp Msf9t4 z;SO=11)Y|B(m%wpj<5aFK&MRQzZ^@}45ohiorQ~)6qPcs5qo+cKMj8_AW %^Tj9IF?}HlsjZa!h#s=P`)QeO{QOEh>0fhh0$?% zOD5o=@)NY!2&T^dn88@}TR<4}9hh!IH4m&qmv5zY8oPFa=J@c}ok(b+C_E1K9`I!| zOc-#$LpG{Tj|V{1ITJB=NmRcon~(i!GLANZG4*m8B-bzZ$<0JYl^p#9PJwt9pnS8f z%YM!6LJ_SRm1xRUP~K5$_?*OLL>FX9R}~I>88)mbJW3zGwkhHj$lN7Ifvn3o(m3`t z=!QwTT4q@+7}+p}-y2BU#Mrfc@|_ Dt)MO?{@GjFY1d;spDzDSbTV6Yd;G)#TifA zg0SMomsbh>lBqHOk_pDkvV@e&`DHn?%weAsq(TK#`acW^dy8>O{leuLKPt68K=dQ* z({84ly6_tHQ#BAWN4ml6nFd~Xk`Hk6D_rh8y=wD2gQV%=+@B~{&y!)s2*x0AYkj?K zu5Y$0TigDx^NkIKH#gg==qqb$ZTK%Q0cPn(B(Oo1!PL}|lN<2@IqW59fo2)}9+O;; z0q8Rif`eb-$ZkMZ4}@m(9P_;lim!*+^dlBbb$=EVZ>5`;zU0r#bILmprfGo7{PSQM zU$Tlm&)?HTy%0YS=9T4AezC$|Yk{H}YJFh3P|0hf3j)aW1=Jj~{^7&Z%TV>`GN)Uc zS?<_^{9Pu03k33i_Wb4HgL|L02cLe@?tl7m+k5mNjwSOKoBZt|a{#g=pGP37-(Oar zQ#!m);~zlr@Wfmrx5}DywX{F9b+{ua+T24L!8E^0QFOc54iWM@&%}axw17d{48|NO zmrx&NAWfvJ)OfsJGqSD{+NN1oJue~+j2mjTCo-C*c}>2;;GN14lIIlX@hClI!)F*f z;e41@-o?rcm|xMe@U(oM2J>ViX_i+0J`en3`NHsG@*Fq0Plrl-F{{4b%I%;lD}2ry zcR&R(96ZU>L-AGFtE_#v(oE9=MH8pp0zxS&bV}r!2Md0qK0H(G|E5liXTKuF1whw~ z8R9KAWaCtMdMMg}=8ZBB@kyJ90pa%oFewz!A_h5djnMo1yb2^ST|q>TP zBhS(?jwxrDc5yl7&Y 1pK^7Q5s%-~bcL)%lZ8P1p zQ;He&;ouBF>dC>2C(;j=RdfMOIn=LFVR$+O?9W6)TzX7R-NT qB&9M5Bl3lI&vOWW%= }Zl~)`g?rdE7+H{Oz19A6M@xIHQce82#tSj3B5Be|El{O&D z WI#-T*eNaLSLm3>yd?uuW`7&7*cff3)P{ zOzG5vt5D4TQ*)Ol(RyIpRi>y@%NYDhjJ%1=9>$o bGm5Gj+rBNyejgs)YgnJL_Xzc?VP;W84V^Sv17LK|e#-vT8wr> 8*75W0S71>L$iDVYW-?AwGwxCG-e%*na8t4+K!v zX!8tvEhMHs9@uRBFb2@4+z*IL7;IYY;y#_2Rb+bkgO~6~14rP!1JO^SUO|5yt~k*B zJL!ORqo2C3lK;p*_!FHb%TmwY@?xnKFpql1W*2#y%f#;gwN-!iJSG~)m`RU(FPyOv z@)EQ2alVmv>Co#u>ScmmkNpYox=fHp@{krJk$I%Y@WMO%P8;=ru642nD7iiKwDQlx zY5Y7W-Fl32j(X3F>tP;k9`roVk~1&w!s5a0!v#HkiUDJt)cj-|+G6yRW*VOA0o^h! zSM4bDyeVV@yQKI^TPk>St9a~J!Unl?9^|+aCE)Gx9|BO$z`ou`DEbtqo7)r30Y^v2 z ^lPQ9zTL^4wi!@<+QxM*D88O|HVr)WGQ8k% zYHWaJQ#{;53K9DB0We|@_@m#CsTeD +gDIQ(TdIlJA+A66WdiT5-e25r4lZKUak#9s6YygDFY a1U5)Q*OxwQVk5n@S03Qfsq#4y?L<^9 z8l%3nfD}PPh0_hsydiH{yvtf7NDiBo+WbTZ1&}XUSv L>Na<2unBd#-f?KJIBg^7uleI)IO7rlszgUZAu=warX)Pql`+c za!aaEAM|py(jK%B=vs7yQb`YD)ox;-hGBFS3(~Q^{*aehhzUQg6iKvliK!PhmE{OG z(6U4V(W^v_i!~;S9DunfVN}_&EmgbHnYKP_OUo(&FSnDRB^fWrl6~x23VQLoy51I7 zIQF-U))au;LYL~lxZbd+{H|vVFLVN3&+@994Z7kV;-T3qIn=pyiBkg%PSiL9UiLLy zdm!=f4N0Oh@OPCsILB_g>!Gf}R9{c3@J$8ZrTs)KmJ M*nb=JnBeU>lf&Q-EZ|914;zaw>*QpZ2mKn_u7=T3!}acRlF?vggI~BbEJV zi09443ugz$C50C`{wv#vXL1#PE?FwK+e~e$j_CH~?ks)A{VnZCMwR)2aa>p{4!H_* zv{-(4=$G!p$WStGyy?%>EvPbhQ|kT;ibfbeG-32@H G+Sb?B+S>YBTU}di zSFdfi+jnlXtJinh#>SebO&3|3F^)&Ag&Mg0=kBR&i;sH0c!hAOQH->K>qq?9xAdwq z6c6E8xUuMqajZ5}zEH@z!}A^qsXf&b!Au|Z?kJ@UbUx*u18$2Bp9YmrkMm$kpU2zh z^*nh4Q=ZH6pTews(ok2UzW{rU3%m?G#jiS+H>zAeiJk+JP7h>b%K8RrzHm0=m$^^} z>34hTLpuD+g{*}!G%=A{*4d6E=SX&StbTi J{!!oLxe}+L+uQHq6?X?J$I{a=|3RFsi%I2wN%mF zF0>D8=@n79;2)1}#YIQ@vygr*p18<{{V?8!+*y!Z8C(AW;96ALAqC{p7q>_*D0Z2) zZCODp4#Mm?7^i9t9OJnh{0VSY3dcEf{iH3{h)&$17HNFkf1U! Ib4+(TUj!&o5# CO?vb~l4G8TBWO6#z z`Y0YIKQUdj8UDj|tVI)P1}q*SZlC9g7C*l7KTOI|V3${z#R*jG?BHt31+2kmxUylW znm{HzVo6y} f?=xUEj?MP4r4WgEV>ok!{VpIb8Qx|lwF4h48)PdXI*yJEnd1U>V!{I20 z&E3pVH=s%u6NAF4%fNMJf#EM0yw0oi3sOjn`WqNZj*v}Gy`ebh zp`%~wgq2pD<8j$=vRTZy8Y9h5I%I}yR~Tg$vPmsFBJ4UhA8B!s4=)?kkT=GK+)|%# z&l7S(52NFvEUx#W;kSIs5p-O51Er^t{FF}uQ3ajX@U-?S=-cWSfiW-K9s?Y2(nzl> z`qAOp;6~pxNu`MqNIY{e>I6w4D`W;bNPheJIhhrPXhBx{*f9-Ybwfw2p_#9E@4a!>oYY$L&ZG8ch zi=C=Nzmq00<_c$SDBY@^`aGvdy(hQA;!XZ)k7#51Zeh_bVvV6QbW= |M`mB4)) zmrwc&MoxUvIX@v|q(wscvRq@%aP$&;x>F7)g+~-m(1X{y^`9zVhx0%&y{cVi>5$H8 z&1qsU3Auf;!fC#4vjoinOp&w19xysZW@uIzSd|#YdDadN58A_r588Y0{jB}uCqHgK z{NcOphd+3?{ovj28}U2*gYUO@-~C>D_lI&pg}+Z2I#_h2|G^J`VEq2~6fYjjOhnEP zJNzrj{%i5R_p_h24?p^#J$&>)9YqT|s*DQA8tZkAg>013ECbK9UNS=9j%2KKa)psz zd3ix1zKAu}+g|A$b;ov)(Pxv;*Ryp8LMhA8&zMYp56I?AUb& > zDFWi^rpl1V*6|N@m-_H2Am1svaCT8OxGlHrgb1%okOz&v6IV;&HHtCPXaP%kgt&Fp z-a4|7@Fva)j3=5rLFgf$_KCJZ_ppEH=Xt@5yN1Y0o^*>JoC2gNc`W<$L&*nc(?dg- zDyxvN_@XUJPtjG*_^-uS9K@Y{EfQ1*V(><{jtp12F@1;FuiJd2=|_CEInBDTOE|`l zk`tTY*a*k*V|3ukI~#7wz=EYP7BOHPO9rDXard`qDT}zw2ORDYV;rdy28B+Jw~n*; z_W?s+5TJuvI6m3dalwhcN}p8UTv-*a+0Gez>KLTBa%c`4w+-}VbNQyW7kNi?@QpTB zbk$nM+27YOBE7{fNco+-S^fyu*cWIa12`RS1PxB7H1xmy{k^ug8~=y-_z5qc*=@TD zAF=S24Nym<#%Ahh aDH6v8N z5rycP4GnQg<0XCiIvli+S#eqpgj*+PU~tLlE68Wule|UhMD+(fFP1y=4ywKjO7~v> zY4~YSvZivU(C0IiJ&)eY@&$-VnjZS}g++fBkPQec{85hV|EfP9G{STd1rNHgJ}XpP zfH7b8h#nz#E+`+{dZKN@sLY%uY%?(KI$|@!9l%60s~>kN8VUD6Z5H-?;01Ul!{-lW zKh^)s-}nDIiN(68-k7|%yRZKJq}{)#e*4KM?d~TZw?_{+qWriWX^(MqxZe)h@Twj` z`aW}j$CeuR6DnWuG8k=Ss$Zw4kTu89Mx;^N7#}SqF@4Y`d13~cR6siVGZ6$cf2WyE z2ZS93J`3O($CLo2j8E WrS+9PK6PVH)M}#hdev%A*7BF`4qKF z*U1Ddhi^E8Dg}`)0|Q(j7^ur3ACQmS7(@dr4iVL+&acvRIEAA7issBh61gcmc`ufP zy4Bz ~tnF5Kq#GHG2O4@r7${kG@!AfF41}yyktU(a z>jh&}rZH%tx6uL>rMMw|@iO`5hAudZdlm*+$Og?dkMnO2v+_-mH` `7;fZw`ejPhpl_bNIt@mXU1h(`zsw-;9$`EylNwEw2on`p%*S!=R19^fAHxi z5I;2HEU)J+T4Cu>dZ!;1yKvEdnUL0HD1T4u0eiMP^oPaR*b3c82aJWxV7hW6O< =GQ2)X!1IddWN2mA30JmJoc))j|&dJF%_NiJ*^ z?~72GPi&yLm>hYZsxKcL@cg;#Ou#dcVC7X<(EEXE4};@kjx~1mtz1oWyO@SQHYe3q zwegvWCz0gFX@|@80D4_7=!w7%o)!NzxQut6PV?Ytc|ETT_@0-ypz &9}?5^DRKAu!l)5f>EDm Gs~uScw4gO R9*UNOCLa%?Q=foNxdfw+j zAkszJq5jkuqdmY&Su-fG{pnjW=0gbR^NK`ro|fzqC>bS>U|@L0JOZXRJ&nHz#9x$i z8Bhm9|Hm 3NsFQ?9MV5OK+n0);P&ve0ji+V^Z!&&9zSW1A3yRDWA5+(Sp -T!k6yfci+UA!PRTG^0M*`Xfl5f!F-R z1SZ!E%oxElp!kY=kcy1*<0{*cCt^_A=~D)pX^A+L9UOEK4rOqClz&WH{vJv{7=l0i zp#w0RW|SLghy39~2Y4Jg8xKqH0g-;lu9MmO3zXWwfwdHg4bqI>1Eegw8K)$r%RnYw zMt7bB@&H1gaj+y=(MF5~+9+czYXNa%`U0gg)#+<+9|m^9z1%4Gi2Snn8jmH{LOSvf z9z*IkZXOidMH>dSqMj@xU1P+^pNn)aMk6lnTFLJfU*XeqPfS?>;`e8)YqLl$0Li-N z2MB#;ahND0f%$$VAa$V()xJRsJ)>zZjtKN$Q`)}Te2o>y+FWjFJl!aUmN4VYk9 zVS>Xm6x*Ij*dZUe^v&Af)*YpI55m}YBHieBcmmH`#^RHdL5C5^)6s(2JVx;@K;jhU z(K?WjY9r8nP{?!fN7@+F1#~vNwRklqKj5)Nbpv1u+#%wPtfV1-|A+2!{8dXq >Fp txJ>FV?m zFLO-625C_04EXuLC3=32KzkKVVT>F7^v@I33y&%uYD4S)z1`n!M{ mK77>y42| d21;QNQM|Ok*l8_)%bqpxe8~nZ?+#x{aJgZ_0f-e$3eE6{4yLY!eeDKg4 zZ)Z@o=_&}Br0EgH>O96sm=GGXcv8192CY!Pa=f eCCzNyr7&g_ zM =$OetoX s42cP61E83vafP@2?1Z(l8FOr6`6~7}u%M2QK zG)}ndkyne!qe@2`QAhr}4gOPDE-#mI9WL;e$5kJLWa8~1vIyDKfG9$wjXKF|Bv>?) zkWC(4+ndSpqYR_{L$qKlzjbimlAQC{jMswEj|)(5xuJ7E74pJ2UZ!P9mNWJb>H+&u zmJYj3d}Jz~=?9sBsaIGA-4jaQEMBBfd8^HPsBp=@kXL>vqwm~SIVp?fp=ZQ#49?Fi z9UtYf u4{F3j$(V!OQ4OS?WIJ*TomZiC!LRy}{&5#7>TrnHM$|`%MdMgn zyzotO(8;>x%c-p2MRXZl4*nlEU#um6ymU(8Gmcyf(OdZ$(S7ivQ`9Zcw?hxpFmM^~ zF9buoj%|w Zwk=h0Xc@qSmxuM*iDYzj77&<`0_3e<}ze2do1HW(w8J- zv7M;xk7RcThxtsOHoE+WE=aeZ2h)B>mjkT5{81{Q1eD*KS1}-y=PEtsD58)XbW6|{ z&V=V}S-2u*($IQfq?HGob*9LnE=?S;^y}NLhdx~Km*G5kR(!!_d_Aq#wcuIl3Tb =0BSSec&JN>U#?SwJb{NYyrk+ k{6j1D>>l{lm7ux9>*|9^Sv-9^AVpyxSf>y5IJ8A9$mCa&+iBxm+L^UqTDU z+Qyjm(B}u1?mev#eQJHwmk+3PfR9nL(N3D_$xbz3Hx3te;CMWy2ZJnA&d6+@_zC6= zPy`Ubm$GGPLa)3B&6o&bP{ySw$LrsTQ%LEbOup&xgLQ3Mzf?pNAI!+SB4YsC)~n zO`~>xL14n+it4X2u&HEHV}bSg!)$|2!Ld(g`P=|Am~SlUS`isRDl}Cq7NQtQb@WIW zMwaH1iAE_?2x{mtN0;Y>KKW%iT}CeG>p~?+-`@f*$)_ZCs!rfy!e@2XX9F@XFL<@x zl%pt@)@7C;VyUfa^S+b83HzKb#BD(Zh}|gNt!b =6Bel#YrAyMyCv&SO27N-LYx@CQIx}rOGgKRU3V59RqFt28#{x64$ zA4X9!SH6rT 4BRmI#*;j`71$R#QhxpF{kc7DE zne^LXlbe(&P<&Uxvy2M9=VAJv;JKjM9e1WTxv?_xX;3^EFjoh7D13i!?^1(?N(0tn zISgV1LNZsog;Rj`EF +2g9X%c3M+OdwyMVc? r90{#! z{FjyLjIek;pvWDh$W!Seukng3FKy_r$_~d~?RJ qiEdq z6k*T~J+od&E2zBPZmBCSf}A4d4|zTXh<4U}nt>hzZyl|zi6G?qJMiJJGD{=>hMhXX z3u(WQ%H?wbX8}Q2klm7 of?a9v1$+QW9M zvhyZnUe2<(ESXDcBfrE$i76h5Cg41fgE0ABhpIc|`6!w19A%%#4^VpcFotI7K=Fgf z>TP5mpjYvhJl`Fap3&z<)KADt*RrKE$VR|_v!gf#!iGuHVceO89`Yq5Tw|9{=XV~- z8+UEd3;PQ $)p2p#hv2>T;cblbu{3mW;9J3C39cwP$xT}p`=~5r$ zjZTU4;AwH67a*N1DwhlWO5qrr%1yt fs zEHv)i9vsF$EckD|DvdBS0^;tmNFpq{AG3(&!WA!9 x zAM^O<(Vxao{(byZrzuS3^x;ZZGUkaHWzWi}yS8pWTp=$SEC0~8IY$Q|D-crPC>OA7 zr62ok&P&)U?W=(Mjghfe%_w^Wp>tYlb!{y+x$4&vFya78n;%)mP<{#5m?_ zwF@v$j~*g@$Q$IAOI*g2SGc5c!a(JXt+Cc)d=}9dzkq&G z1w)YEcUFb9CQLO4D4Jcu11+$JS=yK*;4-Hln2km5D04u6BF~E{E{94#0}3;Z^oZbj zG@$biP#X0*7W8deZ8bcD+ec2rmqEqzEDVM@kKb}|`IUdF@bf~*nWGPR7IrWjB-e94 zxb6wWAlfiV%xX1Tj__AKs)_VFq2bPoNT>-v8l_+qKPH?SL+LQB)8d={&Q5nRi3EgO z(%m_Qbv(JR(=jXJ)OmBTVBq%iUu<-cWF2xqA0&qhzdy*&L4gIuv>X*KcQ97O;AW?< zE1GakWdOdb!3I1xvw-u@L9b7PKd|#VBG9~99Q)_O$m7kb7B0~wK_s0gHjd4ZKb4&H zk{SG&N784o;u7rTC*x-zWet!#pkK(4{8hiOR}u}W!l1wwNFNPe6peJ1KGK!^z%lH= z9GH>^eg_f- U<+*=gF}#b;f5Q#^#z zNuHr>xYS+Q{}4a0Dqd|?DhQDibG?2@gWaMxn*br3ULTiMdB7n~3!Nxi(uHm_Z*n7V z*MkST(hqO?o#m_x^znaZkS35;jZq9XGK_Ir0I#jDx3!H8KR&>Mm@(O#+Zv0#N 0Im~|($h$t&<}8qT zn=1U&gX<;HskMn%Smgh_<0{p;;( zU-@c#>kD6KFTeCsyK()x+Mj2IQ#Udpi>w=fxv%EG^7nJ%JeZcX_xG~@K4GfkX9F#8 zbK~I6hUBn X%N|9k!cekZgdt7@FfxLcZHa zc8UFMZ*TjtgT)2eXe1x7ymcKAzd;_}gnueqKHA-Dhr9djNSnhG`h;&%XzUzPkH}{X z|6
vo4hyDqj>JJW)Bg=;RIVUc4!NfA>keT#83hxRB{NK=Kf2S8_bI)L1`a zGLfxeHZH>DPUCvGz?U*{hqlOecfc4tK%@_}-2^pk3mcOCbP?enK=DIF!c6?%7DC2M zPQ4D(Jb_8vyt;ZS%n=EEMkxUkSwq_hW4*>&Ap93bzvoeWI^dMh%OPZz xTJ9M>f1Emf z_%l2t8wctFL=qjcgR##OQpE>GeBmH0)0kBBiVLxkp2g4r!BFKY7r2lI{y`u>%Y{xA zB05;3j-56lFXUnV@IVX~u$vbI(mxM^y%GgD&-4>VY+R{jz^y?yW9<*yD=6B)RM3Sd zF$ojuATsD^QnCxHew=^rS7JV-1P4Ao_K&p6$nyE1rx6EAz#zkEE`rldpm>$au7&bz z*`3E^@n|7G@H$FA3if%1mjr> `z$E=^I#~e+{^0d z=`f~2FY7CpOz|rqcSJUSVhp7UT@u-aoMGc?L~8j7B JCECaf3CG z3Z}mW)`l!L1(}92dEtVe$%?S_@38WTzE*Cb(iM&IC&PfKb^-Hs?i4Pg|FU4PhjeE# zHY|P?H=m2I4IB%2apY%|^(>f{k8tHT1JOjme`%FWBWPdJjA%ilhVe^Yb99Zoa=c8P zYSRYLFa0-VYUAhw+3tea& pxNawO54W73#c;(fZqq0pzWp!_)Y+GP_Rc@(Fk zlFnV>jg5`AY20jU+QjfuE1vl!9Q45Tb!Z#$Oz^tgwRO?fjB9I=4y^z0m3EO~2c>hB z9lo%UTz|}gqWAHa`R4)gg`WjJYnrF?MqJ4pdBYX}XuhL{9ng>5ZrOfWKP-gV h3K3~A} zSyIwwc`H0kUl8=b;+Wx0{~*Vq4w6u5ii6)7InRR6!dki{4)6>aLmQ=gVS_sb8&@}Z z6u8laVSIr_>sdp&nCu2w`qa9E$);rUJ4NDwp^$_VJFlU?)n77e^P?Z -l~@wOnpM9kU4@CwA{iOaDslo&Un$P{zLY-*t70p!S5GA86_KK z^>r;MD`AsCI~jkrq-~pwVVwH)auL`3IS!e9H<>%Q9kP) r8~^I~Oc|=yT#5 zj(j3eg3OogHH(>lhXrGJs{G$AV4mEy1>Nr0JDXZ S-|yt@2^aq93!tTw7f?u5`~g_WDG9Ew)wajylh{d7zr~r^Zgk7dEhLK#?KQ zu50?|?c2B7n{U3+{_qd~!1zah^at&$U;S#kcJ*re=}&&*|MUOzKl}6c$AA3q+MoQ% zzi;3D?w_^4`0k@BaCpw?F?6f7<^1&k29G{pd%3(;hs0;4$y5x84%I-L74`?z)J+ zK9;3`w&!l(l`B_#jC-_$YO9Ow(x>mk=)1fci`eW+m}LOS1l_k%X4pZ{SMs7$=%S?9xDZ?A zWC3GZ9j_X-%}{s_c4mbJOjtREi(VcfO!H%lT1K2ibd%cH85-_uF58_b=NIWJ}-w zlRs%c`pds)@BQH2cK_p#+WzCm?L>XVV=1=c^dp3{&ky=`okHI>Q)KR{zxm?sEibHn zEZzAx79J@)KIZX*cn;S##Qfqhgn4g7WEHJ!4eX((!w*zF(}q2iyn$B;pJx~Op%r=z zlg-ffg`Oi-@4VQo_zak3nzOz72^o=>X&OXo{Q^VjXfOlhj+Std7R=}qwi|BAHHXx~ zTWO_fd{Sql$7@%CCGz9-blUz@kNI#>-;zHA8N}&hO22ss%;+nuwwrC$gg#RXiDF%V zp05XGk&TXzPbw=hu`C-QWIN(=tay7zUCP^$%oln=WZ^_OX{H0xLL->pwwf(`j!_Ej zPp*_8b{VS;7VU#xv1)43 P(TX(n%;;mOZ)5S>MRy*tGc-&kI%wf}|*j%`G~_Q8T}kfW>an z^yA~#)XJjji3vg#VI7>g^rm7$!$EX(7JSNGRls =!LzICsp3O{v5k1&? zVokPYk)D)mvGJBsbmBsY@=0{v AJK`u;QXlB3{nm0==x!4-A8Nhe)B+;p^)H zJ*&Sfp7t@yZk6{UbR{XfIukv{l;}5pv9amZULny)cDC~|9CeYr{zQ5{=ogPdFeVWi zs6ve=!pa}?Ta|^l@rF#%)VGH>Dd(n_H!1VB<#UZo=i1<$)6U0|!8payJa3E{uSAzC zV~|{A$t54RgV4I5Ta44_61s)1z_cxZsFx8x51@r(Jd}L-!5EWdx41mRxvE~fvD#L) z*4hSdT;+LO^-bQ)YgE6Dg%N$0w2~s!Fy%4LdB~FK4J_nikxphZh%AT8giAp2xN(dy z7NJqzfg>UOGxZ^dygagL%)=!L8f7Ak{1|Mlxcp0M14W7EaZ)rk4!--z^T+a^sO{M( zoS&exWO=??l6^>5H8n+Ho;mTHKzp9G)zxKf_Sp1t_cO8u4v*rwT{ggMcviJRv628h zjPHyY)RVG_F(1EZLWdQ%tTE-KJ9pX_UVp9q *KNd+mGQ`>r>! zKmGAf+NU4iZO4bQ&tuuwvD!s?qdz)FKauq@c2Ndsnt=EB4%>tKkJ|e`|DfH!cVA^$ zX}50PY_Giha=UfwX1j6YTHD#V($?2k+t${GHo#Y Z%ozP=<}RDCfAl7?58k$%X_a)r<>kG_VCz*RA>WFE`1TQJ#Wlaxn(wJBpyygxuT zr;n_l9Wpk__E;5hv8Lu!<_K(o^;e9O(GJH)r|t3mC+)rO|E#_H-~MU)lmGX>Za@4l z|5f|ZzxuD+d;jKNwU7Swf73qvH~+f*{J;Mp0a>T|_>Tt~_gdxX;Fx|Gj1Ijk$?+s8Kd~tp3eZ!KM-` zq5c>*LVh5!`QPhf%?tkPAz}3^*g*F&+J> 0PZ9UDmmMTe)z ztT}B&9>?m!2eAd^4?D-Uz#x?;Aau$=!mKQ^noZL~tc^i(b3sjCkZubLyjO>DPw63B zZpP~qFzd5@Q*YFzg;EAVB{c>;kaS5)u&;C`zQZ8tqv%1cq)j2p6&ULmkaknMYeLZY z90Sj^f~o>dpN+Z{;2o9eQNPGYS jWKGPNYg_@VH{6yLC~zKz 5#m z4 W2M<3%i8zacD18XC7%I6&bHWqh*!b2*^eBv7 VN)vGfA;bC*VVQwr`-L65)vTBp zqmhIKl}=QVBbHwzM_kx&SdaA(+91V*Co1ZtopzKRh^3BZO- zd>PrH>r`&=j&9E%S>c}#$nRZ)yp)#@N)3MZ0H%A%1!*TMi_4~0?D7s5x)e9ml@azX zENMX#lE2d7M}gYp0w$$Ps`>;?pOn|fhB6tlEhx-4*rcvDQ*3fI_Qai8wS#Hl`u`BM z_;I}5^xF;8$_YUX6d^eEn8Et=etpE8F3H0E+@Nbp0E_fz(#D|eOPeX9R?$nVOFpW) zs?9AMvt=!weAh|n@kIt5HVKkGY^=tspw0Gu$_hdYpV0oquD*yJ>m%G=hQW@B`Xx{0 zN0_lk%t0e_4fJ+Lf8}ZY )*=!$u z^kIAd{hzn@e)iM$$tRz*M~@!2Gd8!{xnP!~{-HB-taUd+Yku+0-rm0d;*dLA98te= zWxHL!e$6g-{ 3N o zy2X;=sJ}qhB(mf)W<+)E7;6KIuTl~!dp61rM(F(k5nmY4r@=oDo$r8Xz@9{LjIhJn zj!y@Qhfp#I<2Z^4#0*05n|;8d6@B2t8%_Xnap4 6jpzX z0`%D5b}r)pie^C*T0zMuEGYh82$0cZ0sW*kfD&n9^63D%&G())ZEFaGnj)XWSJ?_r~{M^g+RoO2#@blb$s!$s8|$a zc_5NMu2P$Z3xUDo }D*TBu>!vX>z zrOOv0X2501a>Wru2L32t=?BDyyK)QthC2-CLRoQ>-< )zcdapeCtNleA(P9nAL5J#Vv4|s_RV3b8a5^*c6~c?2aR)5YQwKbQ z6Q~6o$Yy{vg5kL1a_HoN7|Dpn%;_WOCzt=g^>G$K PdM5k`l_=Fy2~DjM(HJ%AJJ46$qyR{(Y{bKywFI@&YML1cP6J4 z#4kiGggQz7a7CFH*c|L1v;&@V;_hI#V0;!tsiHjr>a^_Oa>zQsCwGbi;J2RP1P~}f z){)7Xp7ya#fsjX;{0`XBfeJ@D+_BHl?rwkEK$JD;*kRb>m?ymB-P(955N$=e;t9U6 z|G3-Xg^m|Ja#{HBw-FsiIODlv)!oJQB46!zl1Tp6A@j9iC{M61Aaym7_;&|U?`kz{ zgnpN}pmCG2lV|nT*EY0?*=kp>UTfRiSK^o~8(!amjEx|76k|MM(XF&>g6+m4oYPCg z$9V#{HVor9uCPf&rLf R_Z wVb`H12rEG1J%xiNhNg-m>fCtlB*KF0zQ*8>{Wcwe9xXzxnI!kACle-v0OhyZ>$b zo!|P+_U3CZwg2!Z|GxeEfA{a&AOG8b>*JQpuZwCQqsH7b>CDFFNR_9phw)Iga4h#k z^>fP26mF{c#)|3* YO9!KANn2xZ4`XlH-W7X|f?)uVI`$HbkF`3m PWWn T-m$ysbhCuHJ zo)+J? Uga7@zlc 47Ha1Ms4IdPVP{if~;Q1JsL!hwPDmz z*%eUZcEtfvm$-x2r1j~?aA83_9vCNLYF+GnY|9FpE8E2Bl)n2YYEpp6|Ca&S{AZCo zv`r%GjXJi@`ZQ|w5^#b4#{kb!%(2qvFgx<{W^p|}C6B1)V7R=_pA{bvqAv10zdb$= z dFekJL~iqPe10teb5D}E$uojU zp{{7ng=g3h@HBftwl^c0$JD-44Z}2!ydyp`z~4s)Ff~=o#n@RG6&<;u#n3jBf4U>z ztbZP$Ef;9|@?L;>w7&-kE#~V2)r*CUelC@t%A~l z;%D(v{i9rb<$rqFpQ~nm!Ri~e>Oe$_TQAd!K3ANvpyNWFpNG`KE&6!0Ddp!a%WK-y za%^{fjZN~ZHmKT=@RwmMT7_DoDi3d)hC6Ukf67;Kk->(RjV+rP>YNJ*Y`AaUxYk~M z`Nej1XUnoa{NMxMt-brnUBBeV7X{D-U26fUFc*egVYHDl^F=%g3gD!-s _cDZo#=+UG0Soq}86Tdj>^ys9WX@j@-XumzU`=I^&Z+_f9`tgt3qYvM2i-(Wf z^2u&nI^Jswr-yCv>{xi({8vF52Nz`%#}6O1gHP_Y{d@P?(UT{>5E$d)-<@sDohzRK z-gNl_f%>-kVYS~BY~>}t9J!`Pa0aHj^kL5e8b69+8Tz5S23y5UA@sUT$BGBW=y`lo znB}=#{x1ps4zv1YK+Fg9FO9)oxCyJlaeG?%d!8PqG{QaYvWA)R{bJA=0FM30PWiqp zP~loMVb+352aEj1Y+;K^KVVh|Lk3}A6-ge7V~mh_#!Ubnh?o%KiLde&kgn=DWCveB zNGu>8Fo%8yy%|jfC9BeL)n<^Dd6o?5C5O@2ej(AJOGcVO=!oEfyI(>TU+BYRq6Hab zUp0#I8iRX)J{)REE?3zz9T|E-A|xJ~7dMs_^5F7uAuoCqpK*XouQ2=o8KuSZHLt z!CvBn2Lg90;%Fukg|aC=aqI|)wkxcD)3@tD8~m|(LJl8PK$a(>@>_BuKj|mJ>pE`) zkeM4X& Jki~tU~Up`zl%7!Shv2=NWlhC-|Ii zxNK;>@m9QqI4^H
n0mpWD60_$0U=Y%S2?+-L-h?_$3jS%$*sp>kS zDNA5qmr)Oa@KMxJ9`zeg`4BVsg){BqcyY)zQVEH}U3_@V-|3JTSLQ>`O#D#C@DRq< z0_)DKpTh-DwW#L~uaRSI zr@$)JN2O&q;dtiJq(zbwFpZRXh& zRwcv4Vb}aM5JyqhH#hy4L4La~bj5QFmvL|WZ_l{P6pO~#6vnu!p5ZYMxiRK|hRiQO z<+T 4jUi!S8?nd+puteXsr14}ai0P@E>9 zl8{wx5&Cgwh$GSG(pz*+$Z(QIWmSWy60}*D%eZs~s&0%*Rh3421)TeCQ@xny;NZai z=sQudk>}+$8+D3ZF;)gZo5x@E+s9X%_H7GH!%u^GY4!V5w9To0um{_=(!}Wmj-hh_ z2phpx7{hr!R!F$w;ZO7&sI)Q9g&c`A-Ke6fx$+Q#a#q=q13!77Z=@wntwBU{{?M6= zr1lJ`ZDiA&VBt>t18qh>{P5%U;rk!8k3amV?LFCT$J+Fs9v!#)pWJUh`|F>yKl|_g zxPAYB_#fJP-~H3JvU|5J?|<4>j_$SPV>Y@6ZAIhU5*yvq };Kx5{ zd!KyLPWEM&io*sO_oTw5(6|589-bEN=>-+v^A(8Vx*qGF^@jQ)&&02+wN<(Cf>LaR zv4&^#=@&V#NnF@B`NX`=bGMp865t!{7U*@UIL|F| z(YHk)Z4~JC!ZxrA;nMH_!5{t0X(jZ^2VFQu4^Vtud18R=p_f (EzW(}a?Uh$vRk|HF#P05%c?iG#_S@q5LVM$l*W0VF zzSeHvzTIwIzu{+IO7u_$;m*$0w!Y4DDwJ8$GLAVJzWB_7E0IsS02K*9qeIA}FO{1W zeXhk773~EwFAh*V3ob3bSa5NiE?$BXi#N*|Iuv;@`8W&tf)@0GH1^ciUPYUa6p|Bf zlq1Ca$pFs_JC=QAd}D*F(Y%FoQM9!f7{tH7f7BK=u&ixeZ7b`WO1RWM{q$2!+)s?h zhiYf*%5kuOQp*$1prVXRN|7&D(LE4Ufhr-cuom5b*rd-=+uU4fFW MFXT?D#A;Y;1s_a*Ap4(^a)WhNYUmo7?~*f*A2?Wj&yQyzmC;)jYb*tS4sL8RbxECdaMhY2$R!Ipl>^`bmohlMA+ zkby 0Bd+b;4^8$zQDEjgWS4e61aBDK>f&z=+6<%H=+`4jAi|9@9%T9z= zM0hCqyuI{53#&SI3Z2?5p!lI%*)znT*#o!ZBaR~ZSc&?={reAn?C#(|3q?cLUDgLS z8P6fgPGwuvyUe_;Z|}4fEl6K_ u z_dxc;+ebML`PHv}#r6Y!`pL)cqu3SCyRCC1R6JofX@`Qo?7+~BIYIR>4HtKj`?B`D zLwr