From 5fb7d07cc1f836f3e1b382aed80869cf679141b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=BB=84=E5=BF=83=E5=AE=87?= Date: Wed, 17 Dec 2025 20:30:38 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.js | 31 +- src/constants/factory.js | 5 +- src/factory/api.js | 25 ++ src/factory/components/Feature/index.jsx | 6 + src/factory/components/Feature/index.scss | 25 ++ src/factory/components/News/index.jsx | 34 ++- src/factory/components/News/index.scss | 9 +- src/factory/components/Resource/index.jsx | 41 ++- src/factory/components/Resource/index.scss | 17 +- src/factory/index.jsx | 17 +- src/factory/index.scss | 12 +- src/factory/lessons/index.jsx | 19 +- src/factory/lessons/index.scss | 176 +++++++++++- src/factory/news/detail/index.jsx | 62 ++++ src/factory/news/detail/index.scss | 112 ++++++++ src/factory/news/index.jsx | 30 +- src/factory/news/index.scss | 23 +- .../resource/components/Search/index.jsx | 170 +++++++++++ .../resource/components/Search/index.scss | 265 ++++++++++++++++++ .../developmentTools/detail/index.jsx | 105 +++++++ .../developmentTools/detail/index.scss | 243 ++++++++++++++++ .../resource/developmentTools/index.jsx | 100 ++++--- .../resource/developmentTools/index.scss | 8 +- src/factory/resource/factoryVersion/index.jsx | 11 +- .../resource/factoryVersion/index.scss | 1 + src/factory/resource/index.jsx | 43 ++- src/factory/resource/index.scss | 10 +- .../resource/softwareProject/index.jsx | 30 +- .../resource/softwareProject/index.scss | 48 ++-- src/factory/scene/index.jsx | 7 +- src/factory/scene/index.scss | 13 + src/forge/Utils/utils.js | 25 +- src/images/factory/banner.webp | Bin 216714 -> 0 bytes src/images/factory/banner1.png | Bin 0 -> 4765085 bytes src/images/factory/feature-gif-1.webp | Bin 0 -> 3908902 bytes src/images/factory/feature-gif-2.gif | Bin 0 -> 579667 bytes src/images/factory/feature-gif-3.webp | Bin 0 -> 1526572 bytes src/images/factory/news/body-4.png | Bin 0 -> 101182 bytes src/images/factory/news/detail-head-bg.mp4 | Bin 0 -> 197550 bytes src/images/factory/news/news-default.webp | Bin 0 -> 84330 bytes src/images/factory/resource/empty.webp | Bin 0 -> 15132 bytes src/images/factory/resource/star.png | Bin 0 -> 590 bytes .../resource/tools-detail-head-icon.webp | Bin 0 -> 738 bytes .../resource/tools-detail-head-left.webp | Bin 0 -> 30042 bytes .../resource/tools-detail-head-left2.webp | Bin 0 -> 2064278 bytes .../factory/resource/tools-detail-head.webp | Bin 0 -> 38288 bytes 46 files changed, 1547 insertions(+), 176 deletions(-) create mode 100644 src/factory/news/detail/index.jsx create mode 100644 src/factory/news/detail/index.scss create mode 100644 src/factory/resource/components/Search/index.jsx create mode 100644 src/factory/resource/components/Search/index.scss create mode 100644 src/factory/resource/developmentTools/detail/index.jsx create mode 100644 src/factory/resource/developmentTools/detail/index.scss delete mode 100644 src/images/factory/banner.webp create mode 100644 src/images/factory/banner1.png create mode 100644 src/images/factory/feature-gif-1.webp create mode 100644 src/images/factory/feature-gif-2.gif create mode 100644 src/images/factory/feature-gif-3.webp create mode 100644 src/images/factory/news/body-4.png create mode 100644 src/images/factory/news/detail-head-bg.mp4 create mode 100644 src/images/factory/news/news-default.webp create mode 100644 src/images/factory/resource/empty.webp create mode 100644 src/images/factory/resource/star.png create mode 100644 src/images/factory/resource/tools-detail-head-icon.webp create mode 100644 src/images/factory/resource/tools-detail-head-left.webp create mode 100644 src/images/factory/resource/tools-detail-head-left2.webp create mode 100644 src/images/factory/resource/tools-detail-head.webp diff --git a/src/App.js b/src/App.js index 1fd2c8dd..44379970 100644 --- a/src/App.js +++ b/src/App.js @@ -58,12 +58,23 @@ const SoftwareFactoryResource = Loadable({ loading: Loading, }) +const SoftwareFactoryResourceDetail= Loadable({ + loader: () => import('./factory/resource/developmentTools/detail/index'), + loading: Loading, +}) + + const SoftwareFactoryNews = Loadable({ loader: () => import('./factory/news/index'), loading: Loading, }) +const SoftwareFactoryNewsDetail= Loadable({ + loader: () => import('./factory/news/detail/index'), + loading: Loading, +}) + const SoftwareFactoryLessons = Loadable({ loader: () => import('./factory/lessons/index'), loading: Loading, @@ -450,6 +461,15 @@ class App extends Component { }> + { + return () + } + }> + + + { + return () + } + }> + + - +

智能化驱动,释放研发新效能

AI深度融入需求分析、代码生成、测试验证等关键环节,大幅提升开发效率

+

数字化纳管,掌控研发全链路

研发活动及制品全流程数字化纳管,支持精准决策和持续优化

+ {/* */}
@@ -55,6 +60,7 @@ function Feature(props) {

敏捷化协同,实现能力极速交付

打破用户-研发团队-运维团队协作壁垒,大幅缩短交付周期

+ diff --git a/src/factory/components/Feature/index.scss b/src/factory/components/Feature/index.scss index 2a5b6dd3..3724a936 100644 --- a/src/factory/components/Feature/index.scss +++ b/src/factory/components/Feature/index.scss @@ -64,22 +64,39 @@ width: 787.5px; height: 506px; margin-right: 25px; + position: relative; img { width: 614px; height: 320.54px; } + + &-gif { + width: 108px !important; + height: 111px !important; + position: absolute; + left: 270px; + top: 260px + } } &-right { width: 787.5px; height: 502px; + position: relative; img { width: 770px; height: 291px; margin-top: 35px; } + &-gif { + width: 160px !important; + height: 120px !important; + position: absolute; + left: 180px; + top: 120px + } } } @@ -88,6 +105,7 @@ height: 313px; display: flex; align-items: center; + position: relative; h3 { margin-left: 50px; @@ -102,6 +120,13 @@ width: 1016px; height: 315px; } + &-gif { + width: 72px !important; + height: 57px !important; + position: absolute; + left: 620px; + top: 130px + } } } } \ No newline at end of file diff --git a/src/factory/components/News/index.jsx b/src/factory/components/News/index.jsx index 4ef762d5..b7a20058 100644 --- a/src/factory/components/News/index.jsx +++ b/src/factory/components/News/index.jsx @@ -1,12 +1,14 @@ import React, { useEffect, useState, useRef } from 'react'; import './index.scss'; import { Anchor, Carousel } from 'antd'; -import { getNewsHotList, getDocList } from '../../api' +import { gethomePageDocList, getSubDocList } from '../../api' import back1 from '../../../images/factory/back1.png' import back2 from '../../../images/factory/back2.png' import back3 from '../../../images/factory/back3.png' import { Link } from 'react-router-dom'; import KFIcon from '../../../components/KFIcon'; +import { factoryZoneId, dirId } from '../../../constants/factory' + const backList = [back1, back2, back3] @@ -36,7 +38,7 @@ function News(props) { if (contentRef.current) { observer.observe(contentRef.current); } - + getTopList() getNewsList() return () => { @@ -44,12 +46,18 @@ function News(props) { }; }, []); + const getTopList = () => { + gethomePageDocList(factoryZoneId).then(res => { + setMainList(res.data.rows) + }) + } + const getNewsList = () => { - getDocList(props.zoneId).then(result => { - if (result) { - setMainList(result.data.rows[0].cmsDocList); - setSubList(result.data.rows[1].cmsDocList); - setNews(result.data.rows[3].cmsDocList[0]); + getSubDocList(dirId, { isHomepage: 0 }).then(res => { + if (res) { + const rows = res.data.rows + setNews(rows.sort((a, b) => { return b.visits - a.visits })[0]); + setSubList(rows); } }).catch(error => { }) } @@ -77,7 +85,7 @@ function News(props) {
-

{item.name}

+

{item.name}

{item.summary}

@@ -90,8 +98,8 @@ function News(props) {
-
{news.name}
- +
{news.name}
+

{news.summary}

@@ -101,15 +109,15 @@ function News(props) { subList.slice(0, 4).map(item => { return
-

{item.name}

- +

{item.name}

+

{item.summary}

}) } - 探索更多新闻动态 + 探索更多新闻动态 ); } diff --git a/src/factory/components/News/index.scss b/src/factory/components/News/index.scss index a5b8aa38..d84c88ba 100644 --- a/src/factory/components/News/index.scss +++ b/src/factory/components/News/index.scss @@ -139,6 +139,7 @@ img { width: 610px; height: 334px; + object-fit: cover; transition: transform .4s cubic-bezier(.25, .46, .45, .94); } @@ -196,6 +197,9 @@ } img { + width: 360px; + height: 201px; + object-fit: cover; transition: transform .4s cubic-bezier(.25, .46, .45, .94); } @@ -210,6 +214,9 @@ &-title { margin-top: 27px; display: flex; + a { + width: 90%; + } i { flex-shrink: 0; @@ -264,7 +271,7 @@ background: #ffffff; border-radius: 16px; box-shadow: 0px 0px 6px rgba(0, 74, 168, 0.03); - padding: 50px; + padding: 23px 50px 50px 50px; display: flex; flex-wrap: wrap; justify-content: space-between; diff --git a/src/factory/components/Resource/index.jsx b/src/factory/components/Resource/index.jsx index 7116cde0..41789642 100644 --- a/src/factory/components/Resource/index.jsx +++ b/src/factory/components/Resource/index.jsx @@ -4,7 +4,9 @@ import gsap from 'gsap'; import { ScrollTrigger } from 'gsap/ScrollTrigger'; import KFIcon from '../../../components/KFIcon'; import { Link } from 'react-router-dom'; -import { getProjectsLists } from '../../api'; +import { getProjectsLists, getSourceList, httpUrl } from '../../api'; +import { factoryZoneId, lessonId , versionId } from '../../../constants/factory' +import { downloadFunc } from '../../../forge/Utils/utils' gsap.registerPlugin(ScrollTrigger); @@ -28,11 +30,11 @@ const Resource = forwardRef(({ zoneId }, ref) => { useEffect(() => { if (!zoneId) return; + getToolsList(); + getVersionList(); getProjectsLists(zoneId, { isHomePage: 1 }).then(res => { if (res.data && res.data.code === 200) { setResourceList1(res.data.rows.slice(0, 6)); - setResourceList2(res.data.rows.slice(0, 4)); - setResourceList3(res.data.rows.slice(0, 6)); } }); }, [zoneId]); @@ -114,6 +116,21 @@ const Resource = forwardRef(({ zoneId }, ref) => { } + const getVersionList = () => { + getSourceList({ id: factoryZoneId, domainId: versionId }).then(res => { + setResourceList2(res.data.rows.slice(0, 4)); + }); + } + + const getToolsList = () => { + getSourceList({ id: factoryZoneId }).then(res => { + if (res.data.rows) { + const rows = res.data.rows.filter(e => e.domainId !== lessonId && e.domainId !== versionId) + setResourceList3(rows.slice(0, 6)); + } + }); + } + return (
{ return
-
{projectProperties.name}
+
{projectProperties.name}
{ tags && tags.length > 0 &&
@@ -171,11 +188,10 @@ const Resource = forwardRef(({ zoneId }, ref) => {
{ resourceList2.length > 0 && resourceList2.map((item, index) => { - const { projectProperties } = item; return
-
{projectProperties.name}
-
{projectProperties.description}
- +
{item.name}
+
{item.summary}
+
}) } @@ -191,13 +207,12 @@ const Resource = forwardRef(({ zoneId }, ref) => {
{ resourceList3.length > 0 && resourceList3.map((item, index) => { - const { projectProperties } = item; return
-
{projectProperties.name}
-
{projectProperties.description}
+
{item.name}
+
{item.summary}
- - + +
}) diff --git a/src/factory/components/Resource/index.scss b/src/factory/components/Resource/index.scss index 3e5ff603..776ded00 100644 --- a/src/factory/components/Resource/index.scss +++ b/src/factory/components/Resource/index.scss @@ -68,6 +68,7 @@ padding: 25px 35px; display: flex; flex-direction: column; + margin-right: 15px; .item-head { display: flex; @@ -156,6 +157,7 @@ flex-direction: column; align-items: center; padding: 30px 35px; + margin-right: 18px; .item-name { max-width: 210px; @@ -183,6 +185,7 @@ padding: 48px 35px 35px 35px; display: flex; flex-direction: column; + margin-right: 15px; .item-desc { margin-top: 27px; } @@ -190,6 +193,10 @@ margin-top: auto; button { margin-right: 20px; + &:nth-child(1) { + background: #091221; + color: #ffffff; + } } } } @@ -266,7 +273,7 @@ .content-right { display: flex; flex-wrap: wrap; - justify-content: space-between; + justify-content: flex-start; width: 100%; .item-name { @@ -305,10 +312,10 @@ font-size: 14px; cursor: pointer; - &:hover { - background: #091221; - color: #ffffff; - } + // &:hover { + // background: #091221; + // color: #ffffff; + // } } } } diff --git a/src/factory/index.jsx b/src/factory/index.jsx index f4e21a43..37b46b58 100644 --- a/src/factory/index.jsx +++ b/src/factory/index.jsx @@ -9,6 +9,7 @@ import Resource2 from './components/Resource2'; import gsap from 'gsap'; import { ScrollTrigger } from 'gsap/ScrollTrigger'; import Scene from './components/Scene'; +import { factoryZoneId } from '../constants/factory'; gsap.registerPlugin(ScrollTrigger); @@ -18,8 +19,6 @@ const bannerInfo = { link: '/' } -const zoneId = 199 - function Index(props) { const contentRef = useRef(null); const resourceRef = useRef(null); @@ -77,13 +76,13 @@ function Index(props) { return (
-
+ {/*

{bannerInfo.title}

{bannerInfo.desc}

立即体验
-
+
*/} {/*
{ bannerData.map(e => { @@ -99,14 +98,14 @@ function Index(props) {

软件工厂 宣传视频

- +
- + - - - + + +
) } diff --git a/src/factory/index.scss b/src/factory/index.scss index a37c34de..4107f8ba 100644 --- a/src/factory/index.scss +++ b/src/factory/index.scss @@ -10,8 +10,8 @@ flex-direction: column; align-items: center; height: 52vw; - background-image: url("../images/factory/banner.png"); - background-size: contain; + background-image: url("../images/factory/banner1.png"); + background-size: cover; /* 确保图片完整显示不被拉伸 */ background-repeat: no-repeat; background-position: top center; @@ -22,6 +22,7 @@ display: flex; flex-direction: column; align-items: center; + h1 { line-height: normal; font-family: shuheiTi; @@ -162,14 +163,19 @@ margin-top: 83px; video { + margin-top: 31px; width: 1144px; height: 654px; border-radius: 20px; + overflow: hidden; + object-fit: cover; } } + .pin-spacer { overflow: hidden !important; } + } @keyframes fadeInUp { @@ -182,4 +188,4 @@ opacity: 1; transform: translateY(0); } -} +} \ No newline at end of file diff --git a/src/factory/lessons/index.jsx b/src/factory/lessons/index.jsx index 979ae57d..c9c79152 100644 --- a/src/factory/lessons/index.jsx +++ b/src/factory/lessons/index.jsx @@ -2,7 +2,7 @@ import React, { useEffect, useState, useRef } from 'react'; import './index.scss'; import { TPMIndexHOC } from "../../modules/tpm/TPMIndexHOC"; import KFIcon from '../../components/KFIcon/index'; -// import { factoryZoneId } from '../../constants/factory' +import { factoryZoneId, lessonId } from '../../constants/factory' import { Carousel } from 'antd'; import back1 from '../../images/factory/back1.png' import back2 from '../../images/factory/back2.png' @@ -12,13 +12,11 @@ import manual2 from '../../images/factory/lessons/manual-2.webp' import '../common.scss' import { Link } from "react-router-dom"; import Waves from '../components/Waves/index' +import moment from 'moment'; const backList = [back1, back2, back3] import { getSourceList } from '../api' -const factoryZoneId = 199 - - function Index(props) { const [nowTop, setNowTop] = useState({}) const [isVisible, setIsVisible] = useState(false); @@ -32,8 +30,8 @@ function Index(props) { const getFullList = () => { - getSourceList({ id: factoryZoneId }).then(res => { - setChapterList(res.data.rows.slice(0, 7)); + getSourceList({ id: factoryZoneId, domainId: lessonId }).then(res => { + setChapterList(res.data.rows); }); }; @@ -146,9 +144,12 @@ function Index(props) {

{item.name}

{item.summary}

-
+
{item.domainName}
+
+ +
}) @@ -156,7 +157,7 @@ function Index(props) {
{ - chapterList.slice(4).map((item, index) => { + chapterList.slice(3).map((item, index) => { return

{item.name}

@@ -166,6 +167,7 @@ function Index(props) {

{item.summary}

+ { moment(item.createTime).format('YYYY/MM/DD')}
}) @@ -180,6 +182,7 @@ function Index(props) { return

XXXXXXX标准规范

+

我是标准规范的副文案占一行我是标准规范的副文案占一行

diff --git a/src/factory/lessons/index.scss b/src/factory/lessons/index.scss index e84fe285..fb654661 100644 --- a/src/factory/lessons/index.scss +++ b/src/factory/lessons/index.scss @@ -285,6 +285,7 @@ padding: 45px 35px 35px 35px; display: flex; flex-direction: column; + transition: all .4s cubic-bezier(.25, .46, .45, .94); h4 { line-height: 30px; @@ -302,7 +303,7 @@ margin-top: 23px; } - div { + .chapter-tag { margin-top: auto; span { @@ -316,6 +317,41 @@ font-size: 16px; } } + .button-wrapper { + width: 100%; + height: 80px; + background-color: #ffffff; + align-items: flex-end; + justify-content: center; + display: none; + margin-top: auto; + button { + cursor: pointer; + width: 449px; + height: 46px; + background: #091221; + border-radius: 9px; + line-height: 46px; + font-family: alibaba; + font-weight: 500; + color: #ffffff; + font-size: 14px; + text-align: center; + } + } + } + &:hover { + .chapter-info { + height: 302px; + background: #ffffff; + margin-top: -73px; + } + .chapter-tag { + display: none; + } + .button-wrapper { + display: flex; + } } } } @@ -334,9 +370,37 @@ &-item { width: 390px; + display: flex; + flex-direction: column; + .chapter-head { border-bottom: 1px dashed rgba(9, 18, 33, 0.11); + display: flex; + align-items: center; + cursor: pointer; + + &:hover { + h4 { + color: #164ce4; + } + &:hover { + .line-1,.line-2,.line-3 { + opacity: 1; + } + .line-1 { + animation: wave1 1.2s ease-in-out infinite; + } + + .line-2 { + animation: wave2 1.2s ease-in-out infinite 0.1s; + } + + .line-3 { + animation: wave3 1.2s ease-in-out infinite 0.2s; + } + } + } h4 { max-width: 340px; @@ -350,16 +414,102 @@ white-space: nowrap; margin-bottom: 35px !important; } + + .line-1, + .line-2, + .line-3 { + flex-shrink: 0; + width: 2px; + background: #164ce4; + margin-right: 2px; + margin-bottom: 35px !important; + opacity: 0; + } + + .line-1 { + height: 8px; + margin-left: auto; + } + + .line-2 { + height: 12px; + } + + .line-3 { + height: 6px; + margin-right: 8px; + } + + @keyframes wave1 { + + 0%, + 100% { + height: 8px; + } + + 50% { + height: 12px; + } + } + + @keyframes wave2 { + + 0%, + 100% { + height: 12px; + } + + 50% { + height: 16px; + } + } + + @keyframes wave3 { + + 0%, + 100% { + height: 6px; + } + + 50% { + height: 10px; + } + } + } .chapter-body { margin-top: 25px; + display: flex; + flex-direction: column; + margin-right: 35px; + flex-grow: 1; + position: relative; + + &::before { + content: ""; + background-image: url('../../images/factory/lessons/triangle.webp'); + background-repeat: no-repeat; + background-size: 100% 100%; + width: 10px; + height: 9px; + top: -30px; + left: 0; + display: inline-block; + position: absolute; + transform: rotate(180deg); + } p { max-width: 356px; -webkit-line-clamp: 2; } + + span { + margin-top: auto; + } + } } } @@ -403,6 +553,7 @@ } &-head { + display: flex; h4 { line-height: 33px; font-family: alibaba; @@ -410,6 +561,21 @@ color: #091221; font-size: 24px; } + button { + cursor: pointer; + margin-left: auto; + margin-right: 88px; + opacity: 0; + width: 80px; + height: 32px; + background: #091221; + border-radius: 9px; + line-height: 32px; + font-family: alibaba; + font-weight: 500; + color: #ffffff; + font-size: 14px; + } } p { @@ -438,6 +604,9 @@ transform: scale(1.1); } } + button { + opacity: 1; + } } } } @@ -474,7 +643,7 @@ } p { - margin-bottom: 30px; + margin-bottom: 30px !important; display: flex; align-items: center; @@ -499,7 +668,7 @@ margin-right: 52px; display: flex; flex-direction: column; - border-radius:16px; + border-radius: 16px; position: relative; overflow: hidden; z-index: 1; @@ -544,6 +713,7 @@ } button { + cursor: pointer; margin-top: auto; width: 84px; height: 36px; diff --git a/src/factory/news/detail/index.jsx b/src/factory/news/detail/index.jsx new file mode 100644 index 00000000..969fdaab --- /dev/null +++ b/src/factory/news/detail/index.jsx @@ -0,0 +1,62 @@ +import React, { useEffect, useState, useRef } from 'react'; +import './index.scss'; +import { TPMIndexHOC } from '../../../modules/tpm/TPMIndexHOC'; +import imageBack1 from '../../../images/factory/news/news-default.webp' +import { Link } from 'react-router-dom'; +import RenderHtml from '../../../components/render-html'; +import { Breadcrumb } from 'antd'; +import { getNewsDetail } from '../../api'; +import headerMp4 from '../../../images/factory/news/detail-head-bg.mp4'; + + + +function Index(props) { + const id = props.match.params.id + const [detail, setDetail] = useState({}) + const [content, setContent] = useState(); + + useEffect(() => { + // setContent(Base64.decode(detail.content)); + getDetail() + }, []); + + const getDetail = () => { + getNewsDetail(id).then(res => { + if (res.data && res.data.data) { + setDetail(res.data.data) + setContent(Base64.decode(res.data.data.content)) + } + }) + } + + return ( +
+
+ +
+

新闻动态

+

实时汇聚前沿技术、项目进展与开发者故事,助你第一时间掌握社区脉搏,不错过每一次灵感与成长机会。

+
+
+ +
+
+
+
+
+ + 首页 + 新闻 + 详情 + +
+

{detail.name}

+ { + content && + } +
+
+
+ ) +} +export default TPMIndexHOC(Index) \ No newline at end of file diff --git a/src/factory/news/detail/index.scss b/src/factory/news/detail/index.scss new file mode 100644 index 00000000..e6717ede --- /dev/null +++ b/src/factory/news/detail/index.scss @@ -0,0 +1,112 @@ +.news-detail { + min-height: calc(100vh - 58px); + .news-detail-header { + height: 450px; + width: 100%; + display: flex; + align-items: center; + justify-content: center; + position: relative; + video { + height: 450px; + width: 100%; + position: absolute; + } + + .header-content { + width: 1600px; + height: 300px; + position: relative; + border-radius: 16px; + padding: 60px; + + h3 { + line-height: 47px; + font-family: alibaba; + font-weight: 700; + color: #091221; + font-size: 34px; + } + + p { + margin-top: 19px; + max-width: 594px; + line-height: 32px; + font-family: alibabareg; + color: #091221; + font-size: 16px; + } + + .header-img { + position: absolute; + top: -30px; + right: 0; + width: 600px; + height: 360px; + background: linear-gradient(180deg, #ffffff 0%, #f1f7ff 100%); + border-radius: 10px; + box-shadow: 0px 0px 18px rgba(0, 74, 168, 0.05); + display: flex; + align-items: center; + justify-content: center; + + &-wrapper { + width: 526px; + height: 300px; + border-radius: 10px; + overflow: hidden; + + img { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 10px; + } + } + + } + + &:hover { + .header-img .header-img-wrapper img { + transform: scale(1.1); + transition: transform .4s cubic-bezier(.25, .46, .45, .94); + } + } + } + } + + .news-detail-content { + width: 1600px; + height: 100%; + margin: 52px auto; + + .ant-breadcrumb { + line-height: 20px; + font-family: alibaba; + font-size: 14px; + margin-bottom: 20px; + a { + color: #1b58df; + } + span { + color: #091221; + } + } + + .news-detail-content-wrapper { + width: 1600px; + float: left; + padding-bottom: 60px; + .news-detail-content-title { + line-height: 33px; + font-family: alibaba; + font-weight: 700; + color: #091221; + font-size: 24px; + } + .informations_detail { + margin-top: 23px; + } + } + } +} \ No newline at end of file diff --git a/src/factory/news/index.jsx b/src/factory/news/index.jsx index 79272596..fc7af285 100644 --- a/src/factory/news/index.jsx +++ b/src/factory/news/index.jsx @@ -2,8 +2,8 @@ import React, { useEffect, useState, useRef } from 'react'; import './index.scss'; import { TPMIndexHOC } from "../../modules/tpm/TPMIndexHOC"; import KFIcon from '../../components/KFIcon/index'; -// import { factoryZoneId } from '../../constants/factory' -import { gethomePageDocList, getNewsHotList, getDocList } from '../api' +import { factoryZoneId, dirId } from '../../constants/factory' +import { gethomePageDocList, getNewsHotList, getSubDocList } from '../api' import { Carousel } from 'antd'; import back1 from '../../images/factory/back1.png' import back2 from '../../images/factory/back2.png' @@ -11,11 +11,10 @@ import back3 from '../../images/factory/back3.png' import headerBottom from '../../images/factory/news/header-bottom.png' import '../common.scss' import { Link } from "react-router-dom"; +import moment from "moment"; const backList = [back1, back2, back3] -const factoryZoneId = 199 - function Index(props) { const [topList, setTopList] = useState([]) @@ -69,10 +68,11 @@ function Index(props) { } const getFullList = () => { - getDocList(factoryZoneId).then(res => { - setNewsList1(res.data.rows[0].cmsDocList.slice(0, 2)) - setNewsList2(res.data.rows[1].cmsDocList.slice(0, 4)) - setNewsList3(res.data.rows[2].cmsDocList || res.data.rows[3].cmsDocList) + getSubDocList(dirId, { isHomepage: 0 }).then(res => { + const rows = res.data.rows + setNewsList1(rows.slice(0, 2)) + setNewsList2(rows.slice(2, 6)) + setNewsList3(rows.splice(6)) }) } @@ -84,7 +84,9 @@ function Index(props) {

{nowTop.name}

{nowTop.summary}

- + + +
{item.name}

{item.summary}

- + 查看详情 @@ -169,7 +171,7 @@ function Index(props) {
热门新闻
-

{item.name}

+

{item.name}

{item.summary}

}) @@ -181,7 +183,7 @@ function Index(props) { newsList2.map((item, index) => { return
-

{item.name}

+

{item.name}

{item.summary}

@@ -197,11 +199,11 @@ function Index(props) {
-

{item.name}

+

{item.name}

{item.summary}

{item.publishTime} - + 查看详情 diff --git a/src/factory/news/index.scss b/src/factory/news/index.scss index b6ba21fc..b8b95fd0 100644 --- a/src/factory/news/index.scss +++ b/src/factory/news/index.scss @@ -34,7 +34,10 @@ margin-top: 60px; .header-left { - width: 33vw; + width: 642px; + height: 230px; + display: flex; + flex-direction: column; h3 { line-height: 38px; @@ -45,9 +48,13 @@ white-space: nowrap; text-overflow: ellipsis; overflow: hidden; + width: 642px; + } p { + width: 642px; + margin-top: 27px; line-height: 34px; font-family: alibabareg; @@ -61,8 +68,11 @@ word-break: break-all; } + a { + margin-top: auto; + } + button { - margin-top: 23px; cursor: pointer; width: 116px; height: 42px; @@ -289,13 +299,18 @@ .body-item { width: 470.5px; height: 230px; - background-image: url('../../images/factory/news/body-3.webp'); + background-color: #ffffff; + background-image: url('../../images/factory/news/body-4.png'); background-repeat: no-repeat; background-size: 100% 100%; padding: 26px 35px; + border-radius: 16px; + border: 1px solid; + border-color: rgba(22, 76, 228, 0.05); &:nth-child(1) { margin-bottom: 25px; + background-image: url('../../images/factory/news/body-3.webp'); } @@ -412,7 +427,7 @@ border-color: rgba(9, 18, 33, 0.07); border-radius: 16px; box-shadow: 0px 0px 6px rgba(0, 74, 168, 0.03); - padding: 50px; + padding: 23px 50px 50px 50px; display: flex; flex-wrap: wrap; justify-content: space-between; diff --git a/src/factory/resource/components/Search/index.jsx b/src/factory/resource/components/Search/index.jsx new file mode 100644 index 00000000..6d9b17d9 --- /dev/null +++ b/src/factory/resource/components/Search/index.jsx @@ -0,0 +1,170 @@ +import React, { useEffect, useState, useRef } from 'react'; +import { styles } from './index.scss'; +import { getSourceList, getProjectsLists } from '../../../api' +import { factoryZoneId } from '../../../../constants/factory' +import ActionItem from '../ActionItem'; +import emptyImg from '../../../../images/factory/resource/empty.webp' + +function Index(props) { + const searchValue = props.searchValue + const searchType = props.searchType + const [versionList, setVersionList] = useState([]); + const [versionTotal, setVersionTotal] = useState(0); + const [projectList, setProjectList] = useState([]); + const [projectTotal, setProjectTotal] = useState(0); + const [toolList, setToolList] = useState([]); + const [toolTotal, setToolTotal] = useState(0); + const [page, setPage] = useState(0); + const pageSize = 20 + const totalSize = 6 // 聚合查询只查六个 + + useEffect(() => { + console.log(searchValue); + + if (searchValue) { + getProjectsList(1) + console.log(versionTotal === projectTotal === toolTotal === 0); + } + // getFullList(); + }, [searchValue]); + + const getFullList = () => { + + getSourceList({ id: factoryZoneId }).then(res => { + setVersionList(res.data.rows.slice(0, 4)); + }); + }; + + const getProjectsList = (page) => { + getProjectsLists(factoryZoneId, { + pageNum: page, + name: searchValue, + pageSize: searchType ? pageSize : totalSize, + }).then(result => { + if (result) { + // setProjectList(result.data.rows); + // setProjectTotal(result.data.total); + } + }).catch(error => { }) + } + + + return ( +
+ { + projectList.length > 0 &&
+
+

软件项目

+
#项目 {projectTotal}个
+
+
+ { + projectList.map((item, index) => { + const project = item.projectProperties || {} + project.praisesCount = 3 + project.forkedCount = 3 + return +
+
+ +
{project.name}
+
+
+ {project.description} +
+
+ { + project.topics && project.topics.split(',').splice(0, 3).map((topic, index) => { + return ( + {topic} + ) + }) + } +
+ +
+ + { + project.praisesCount > 0 && {project.praisesCount} + } + { + project.forkedCount > 0 && {project.forkedCount} + } +
+
+
+ +
+
+ }) + } +
+
+ } + { + toolList.length > 0 &&
+
+

开发工具

+
#工具 {projectTotal}个
+
+
+ { + toolList.map((item, index) => { + const createUser = item.createUser || {} + return +
+
+ +
{item.name}
+
+
+ {item.domainName} +
+
+ {item.summary} +
+
+ {item.downloadCount} +
+
+
+ + +
+
+ }) + } +
+
+ } + { + versionList.length > 0 &&
+
+

工厂版本

+
#版本 {projectTotal}个
+
+
+ { + versionList.map((item, index) => { + return
+
{item.name}
+

{item.summary}

+
+ {item.cteatetime} +
+
+ }) + } +
+
+ } + { + versionTotal + projectTotal + toolTotal === 0 &&
+ +

抱歉,暂无与“{ searchValue }”相关的数据

+
+ } +
+ ) +} +export default Index diff --git a/src/factory/resource/components/Search/index.scss b/src/factory/resource/components/Search/index.scss new file mode 100644 index 00000000..900fe2f7 --- /dev/null +++ b/src/factory/resource/components/Search/index.scss @@ -0,0 +1,265 @@ +.search { + display: flex; + flex-direction: column; + align-items: center; + + &-project, + &-tool, + &-version { + width: 1600px; + border-radius: 30px; + padding: 40px 50px; + margin-bottom: 50px; + + .search-header { + display: flex; + align-items: center; + + h3 { + line-height: 38px; + font-family: alibaba; + font-weight: 700; + color: #091221; + font-size: 28px; + margin-right: 18px; + } + + div { + padding: 7px 15px; + background: #f8fbfd; + border: 1px solid; + border-color: #ffffff; + border-radius: 7px; + line-height: 25px; + font-family: alibabareg; + color: #091221; + font-size: 18px; + + span { + &:nth-child(1) { + color: #164ce4; + margin-right: 8px; + } + + &:nth-child(2) { + color: #7d899d; + margin-left: 8px; + } + } + } + } + + .search-content { + margin-top: 40px; + display: flex; + flex-wrap: wrap; + + .content-item-wrapper { + margin-bottom: 25px; + margin-right: 25px; + + .item-title { + line-height: 30px; + font-family: alibaba; + font-weight: 500; + color: #091221; + font-size: 22px; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; + margin: 0; + } + + .item-desc { + margin-top: 20px; + line-height: 21px; + font-family: alibabareg; + color: #091221; + font-size: 15px; + display: -webkit-box; + -webkit-line-clamp: 1; + -webkit-box-orient: vertical; + overflow: hidden; + } + + .item-data { + margin-top: auto; + + span { + line-height: 18px; + font-family: alibabareg; + color: #5d6a80; + font-size: 13px; + position: relative; + } + + span:not(:last-child) { + margin-right: 15px; + padding-right: 15px; + + &::after { + position: absolute; + right: 0; + top: 50%; + transform: translate(0, -50%); + content: ""; + width: 1px; + height: 9px; + background: rgba(9, 18, 33, 0.22); + } + } + } + + .content-project-item, + .content-tool-item { + width: 483.3px; + background: #fcfefe; + border-radius: 23px; + z-index: 1; + position: relative; + padding: 25px 35px; + display: flex; + flex-direction: column; + + .item-top { + display: flex; + align-items: center; + + img { + width: 53px; + height: 53px; + border-radius: 50%; + margin-right: 18px; + } + } + + .item-tags { + margin-top: 16px; + } + } + } + + } + } + + &-project { + background: #eef3fe; + + .search-content { + + + .content-project-item { + height: 263px; + + .item-desc { + -webkit-line-clamp: 2; + } + } + + .content-project-btn { + width: 483.3px; + height: 94px; + background: linear-gradient(180deg, rgba(248, 251, 255, 0) 0%, #f3f6ff 23.71%, #f8fbff 100%); + border-radius: 0px 0px 23px 23px; + display: flex; + align-items: center; + justify-content: center; + + button { + cursor: pointer; + width: 413px; + height: 44px; + background-color: #091221; + border-radius: 9px; + line-height: 44px; + font-family: alibaba; + font-weight: 500; + color: #ffffff; + font-size: 14px; + text-align: center; + } + } + } + } + + &-tool { + background: #f3f9fc; + + .search-content { + .content-tool-item { + height: 228px; + + + .item-desc { + -webkit-line-clamp: 2; + margin-top: 26px; + } + } + + .two-btn { + width: 483px; + height: 83px; + background: linear-gradient(180deg, rgba(248, 251, 255, 0.13) 0%, rgba(248, 251, 255, 0.93) 23.71%, #f8fbff 100%); + border-radius: 0px 0px 16px 16px; + display: flex; + align-items: center; + justify-content: center; + + button { + width: 125px; + height: 36px; + line-height: 36px; + cursor: pointer; + border-radius: 9px; + line-height: 20px; + font-family: alibaba; + font-weight: 500; + color: #ffffff; + font-size: 14px; + text-align: center; + background-color: #091221; + } + + button:nth-child(2) { + margin-left: 21px; + color: #091221; + background-color: #ffffff; + background-image: none; + border: 1px solid #091221; + } + } + } + + } + + &-version { + background: #ecf6ff; + + .search-content { + .version-item { + padding: 35px; + width: 483.3px; + height: 216px; + background: #fcfefe; + border-radius: 23px; + box-shadow: 0px 0px 18px rgba(0, 74, 168, 0.05); + margin-bottom: 25px; + margin-right: 25px; + } + } + } + &-empty { + display: flex; + flex-direction: column; + img { + width: 214.66px; + height: 146.73px; + } + p { + line-height: 22px; + font-family: alibabareg; + color: #091221; + font-size: 16px; + } + } +} \ No newline at end of file diff --git a/src/factory/resource/developmentTools/detail/index.jsx b/src/factory/resource/developmentTools/detail/index.jsx new file mode 100644 index 00000000..0a7bed78 --- /dev/null +++ b/src/factory/resource/developmentTools/detail/index.jsx @@ -0,0 +1,105 @@ +import React, { useEffect, useState, useRef } from 'react'; +import './index.scss'; +import { TPMIndexHOC } from '../../../../modules/tpm/TPMIndexHOC'; +import imageBack1 from '../../../../images/factory/resource/tools-detail-head-left.webp' +import imageGif from '../../../../images/factory/resource/tools-detail-head-left2.webp' +import headIcon from '../../../../images/factory/resource/tools-detail-head-icon.webp' +import { Link } from 'react-router-dom'; +import RenderHtml from '../../../../components/render-html'; +import { Breadcrumb } from 'antd'; +import { getSourceDetail, httpUrl, getSourceList } from '../../../api'; +import { downloadFunc } from '../../../../forge/Utils/utils' +import { factoryZoneId, } from '../../../../constants/factory' +import '../../../common.scss' + + + +function Index(props) { + const id = props.match.params.id + const [detail, setDetail] = useState({}) + const [content, setContent] = useState(); + const [otherList, setOtherList] = useState([]); + + useEffect(() => { + getDetail() + }, []); + + useEffect(() => { + if (detail.id) { + getOtherList() + } + },[detail]) + + const getDetail = () => { + getSourceDetail(id).then(response=>{ + if(response){ + setDetail(response.data.data); + } + }).catch(error=>{}) + } + + const getOtherList = () => { + getSourceList({ id: factoryZoneId, domainId: detail.domainId }).then(res => { + setOtherList(res.data.rows.filter(e => e.id !== detail.id).slice(0, 3)); + }); + } + + return ( +
+ +
+ + 首页 + 开发工具 + {detail.name} + +
+

{ detail.name }

+

{ detail.summary }

+
+
+ { detail.downloadCount } + 下载量 +
+
+ { detail.fileList && detail.fileList[0] && detail.fileList[0].fileSizeInfo } + 文件大小 +
+
+ { detail.domainName } + 工具类型 +
+
+ +
更多热门工具
+
+ { + otherList.length > 0 && otherList.map((e, index) => { + return + + {e.name} + + + }) + } +
+
+
+ + +
+
+
+
+
+
+

{detail.name}

+ { + content && + } +
+
+
+ ) +} +export default TPMIndexHOC(Index) \ No newline at end of file diff --git a/src/factory/resource/developmentTools/detail/index.scss b/src/factory/resource/developmentTools/detail/index.scss new file mode 100644 index 00000000..1312062c --- /dev/null +++ b/src/factory/resource/developmentTools/detail/index.scss @@ -0,0 +1,243 @@ +.news-detail { + min-height: calc(100vh - 58px); + + .news-detail-header { + height: 752px; + width: 100%; + background-image: url("../../../../images/factory/resource/tools-detail-head.webp"); + background-repeat: no-repeat; + background-size: 100% 100%; + display: flex; + flex-direction: column; + align-items: center; + position: relative; + + .ant-breadcrumb { + align-self: flex-start; + margin-top: 30px; + margin-left: calc((100vw - 1600px) / 2); + } + + .header-content { + margin-top: 30px; + width: 1600px; + height: 481px; + position: relative; + border-radius: 16px; + padding: 60px 45px; + background: linear-gradient(106.16deg, #f7fbff 2.47%, #f5faff 95.98%); + border: 2px solid; + border-color: #ffffff; + + h3 { + line-height: 47px; + font-family: alibaba; + font-weight: 700; + color: #091221; + font-size: 34px; + } + + p { + margin-top: 25px; + max-width: 650px; + line-height: 22px; + font-family: alibabareg; + color: #5d6a80; + font-size: 16px; + } + + .tools-info { + display: flex; + margin-top: 35px; + + div { + display: flex; + flex-direction: column; + position: relative; + margin-right: 78px; + + span:nth-child(1) { + line-height: 32px; + font-family: alibaba; + font-weight: 700; + color: #164ce4; + font-size: 24px; + } + + span:nth-child(2) { + line-height: 20px; + font-family: alibabareg; + color: #5d6a80; + font-size: 14px; + margin-top: 8px; + } + + &:not(:last-child) { + &::after { + position: absolute; + content: ""; + width: 0px; + height: 60px; + right: -39px; + border-right: 1px dashed; + border-color: rgba(22, 76, 228, 0.15); + } + } + } + } + + button { + margin-top: 30px; + width: 110px; + height: 36px; + line-height: 36px; + cursor: pointer; + border-radius: 6px; + line-height: 20px; + font-family: alibaba; + font-weight: 500; + color: #ffffff; + font-size: 14px; + text-align: center; + background-color: #091221; + } + + h6 { + margin-top: 34px; + line-height: 22px; + font-family: alibaba; + font-weight: 700; + color: #091221; + font-size: 16px; + } + + .more-tools { + display: flex; + margin-top: 20px; + span { + cursor: pointer; + display: inline-block; + background: #e9f2ff; + border-radius: 4px; + padding: 13px 12px; + display: flex; + align-items: center; + margin-right: 15px; + line-height: 19px; + font-family: alibaba; + color: #091221; + font-size: 15px; + img { + width: 19px; +height: 19px; +margin-right: 15px; + } + } + } + + .header-img { + position: absolute; + top: 60px; + right: 60px; + width: 600px; + height: 360px; + background: linear-gradient(180deg, #ffffff 0%, #ffffff 100%); + border-radius: 14px; + box-shadow: 0px 0px 18px rgba(0, 74, 168, 0.05); + display: flex; + align-items: center; + justify-content: center; + + &-wrapper { + width: 526px; + height: 300px; + border-radius: 10px; + overflow: hidden; + position: relative; + + + img { + width: 100%; + height: 100%; + object-fit: cover; + border-radius: 10px; + + &:nth-child(2) { + width: 120px; + height: 120px; + position: absolute; + right: 127px; + bottom: 15px; + } + } + } + + } + + &:hover { + .header-img .header-img-wrapper img { + &:nth-child(1) { + transform: scale(1.1); + transition: transform .4s cubic-bezier(.25, .46, .45, .94); + } + + } + } + } + } + + .news-detail-content { + width: 1600px; + height: 100%; + margin: 52px auto; + margin-top: -100px; + + .ant-breadcrumb { + line-height: 20px; + font-family: alibaba; + font-size: 14px; + margin-bottom: 20px; + + a { + color: #1b58df; + } + + span { + color: #091221; + } + } + + .news-detail-content-wrapper { + width: 1600px; + float: left; + padding-bottom: 60px; + } + + .news-detail-content-others { + width: 300px; + float: right; + + div { + background: #f2f6fa; + border-radius: 12px; + padding: 35px 30px; + + h4 { + line-height: 22px; + font-family: alibaba; + font-weight: 500; + color: #091221; + font-size: 16px; + } + + li { + line-height: 20px; + font-family: alibabareg; + color: #091221; + font-size: 14px; + margin-top: 20px; + } + } + } + } +} \ No newline at end of file diff --git a/src/factory/resource/developmentTools/index.jsx b/src/factory/resource/developmentTools/index.jsx index 2d1dede7..e6b743e3 100644 --- a/src/factory/resource/developmentTools/index.jsx +++ b/src/factory/resource/developmentTools/index.jsx @@ -1,24 +1,24 @@ import React, { useEffect, useState, useRef } from 'react'; import './index.scss'; -import { getSourceList, getSourceZoneList } from '../../api' -// import { factoryZoneId } from '../../../constants/factory' +import { getSourceList, getSourceZoneList, httpUrl } from '../../api' +import { factoryZoneId, lessonId , versionId } from '../../../constants/factory' import KFIcon from '../../../components/KFIcon'; import bg1 from '../../../images/factory/resource/tools-top-1.webp'; import bg2 from '../../../images/factory/resource/tools-top-2.webp'; -import bg3 from '../../../images/factory/resource/tools-top-3.webp'; +import bg3 from '../../../images/factory/resource/tools-top-3.webp'; import bg4 from '../../../images/factory/resource/tools-bottom-1.webp'; import bg5 from '../../../images/factory/resource/tools-bottom-2.webp'; import ActionItem from '../components/ActionItem'; import '../../common.scss' +import { downloadFunc } from '../../../forge/Utils/utils' +import { Link } from "react-router-dom"; const bgList = [bg1, bg2, bg3] const bg2List = [bg4, bg5] -const factoryZoneId = 199 - function Index(props) { const [topList, setTopList] = useState([]); @@ -33,34 +33,58 @@ function Index(props) { getTypeList(); }, []); + useEffect(() => { + if (selectedType) { + getTypeSourceList() + } else { + getFullList() + } + }, [selectedType]) + const getFullList = () => { getSourceList({ id: factoryZoneId }).then(res => { - setTopList(res.data.rows.slice(0, 3)); - setNewList(res.data.rows.slice(0, 2)); - setContentList(res.data.rows.slice(3, 9)); - setFullList(res.data.rows.slice(9)); + if (res.data.rows) { + const rows = res.data.rows.filter(e => e.domainId !== lessonId && e.domainId !== versionId) + setTopList(rows.slice(0, 3)); + setNewList(rows.slice(0, 2)); + setContentList(rows.slice(3, 9)); + setFullList(rows.slice(9)); + } }); }; + const getTypeSourceList = () => { + getSourceList({ id: factoryZoneId, domainId: selectedType }).then(res => { + setContentList(res.data.rows.slice(0, 6)); + setFullList(res.data.rows.slice(6)); + }); + } + const getTypeList = () => { getSourceZoneList(factoryZoneId).then(response => { if (response && response.data) { - setZoneList(response.data.rows); + setZoneList(response.data.rows.filter(e => e.name !== '工厂版本' && e.name !== '学习资源')); } }).catch(error => { }) } const getBackgroundImage = (index) => { - const row = Math.floor(index / 4); // 行号 - const col = index % 4; // 列号(行内位置) - - // 偶数行:背景图索引为 0,1,0,1... - // 奇数行:背景图索引为 1,0,1,0... - return row % 2 === 0 - ? bg2List[col % 2] // 偶数行:0,1,0,1 - : bg2List[(col + 1) % 2]; // 奇数行:1,0,1,0 -}; + const row = Math.floor(index / 4); // 行号 + const col = index % 4; // 列号(行内位置) + + return row % 2 === 0 + ? bg2List[col % 2] // 偶数行:0,1,0,1 + : bg2List[(col + 1) % 2]; // 奇数行:1,0,1,0 + }; + + const selectType = (type) => { + if (type !== selectedType) { + setSelectedType(type) + } else { + setSelectedType(null) + } + } return (
@@ -71,13 +95,15 @@ function Index(props) {
-
- {item.name} -
+ +
+ {item.name} +
+ {item.domainName}

{item.summary}

- +
) }) @@ -89,7 +115,7 @@ function Index(props) { { zoneList.map((item, index) => { return ( - setSelectedType(item.id)}>{item.name} + selectType(item.id)}>{item.name} ) }) } @@ -119,8 +145,8 @@ function Index(props) {
- - + +
}) @@ -137,15 +163,17 @@ function Index(props) { newList.map((item, index) => { const createUser = item.createUser return
- -
+ +
+
{item.name}
-

- {item.summary} -

- -
+ +

+ {item.summary} +

+
+
}) }
@@ -159,7 +187,7 @@ function Index(props) { return
- +
{item.name}
@@ -173,8 +201,8 @@ function Index(props) {
- - + +
diff --git a/src/factory/resource/developmentTools/index.scss b/src/factory/resource/developmentTools/index.scss index 503a46b0..31ac3ee5 100644 --- a/src/factory/resource/developmentTools/index.scss +++ b/src/factory/resource/developmentTools/index.scss @@ -108,12 +108,14 @@ } &:nth-child(2) { - color: #ffffff; - h5 { color: #ffffff; } + p { + color: #ffffff; + } + .item-tag { color: #ffffff; background: rgba(255, 255, 255, 0.13); @@ -396,13 +398,13 @@ width: 1600px; display: flex; flex-wrap: wrap; - justify-content: space-between; background: #ffffff; border-radius: 16px; padding: 40px 30px; .content-bottom-wrapper { margin-bottom: 26px; + margin-right: 16px; } .content-bottom-item { diff --git a/src/factory/resource/factoryVersion/index.jsx b/src/factory/resource/factoryVersion/index.jsx index 9764e61e..d8a21fda 100644 --- a/src/factory/resource/factoryVersion/index.jsx +++ b/src/factory/resource/factoryVersion/index.jsx @@ -1,12 +1,11 @@ import React, { useEffect, useState, useRef } from 'react'; import './index.scss'; -import { getSourceList } from '../../api' -// import { factoryZoneId } from '../../../constants/factory' +import { getSourceList, httpUrl } from '../../api' +import { factoryZoneId, versionId } from '../../../constants/factory' import dot from '../../../images/factory/resource/version-dot.webp' import versionNew from '../../../images/factory/resource/version-new.webp' import '../../common.scss' - -const factoryZoneId = 199 +import { downloadFunc } from '../../../forge/Utils/utils' function Index(props) { @@ -18,7 +17,7 @@ function Index(props) { const getFullList = () => { - getSourceList({ id: factoryZoneId }).then(res => { + getSourceList({ id: factoryZoneId, domainId: versionId }).then(res => { setVersionList(res.data.rows.slice(0, 4)); }); }; @@ -47,7 +46,7 @@ function Index(props) {
{item.summary}
- +
}) diff --git a/src/factory/resource/factoryVersion/index.scss b/src/factory/resource/factoryVersion/index.scss index 458c3763..b19f841a 100644 --- a/src/factory/resource/factoryVersion/index.scss +++ b/src/factory/resource/factoryVersion/index.scss @@ -3,6 +3,7 @@ flex-direction: column; align-items: center; margin-top: -50px; + background-color: #f1f6fd; .version-top { width: 1600px; diff --git a/src/factory/resource/index.jsx b/src/factory/resource/index.jsx index 24f77d52..e8f4ee9f 100644 --- a/src/factory/resource/index.jsx +++ b/src/factory/resource/index.jsx @@ -6,6 +6,8 @@ import searchBg from '../../images/factory/resource/search-bg.webp' import { Route, Switch } from "react-router-dom"; import Loadable from "react-loadable"; import Loading from "../../Loading"; +import Search from './components/Search/index' +import { Input } from 'antd'; @@ -35,16 +37,43 @@ const typeMap = [ function Index(props) { - const [selectedType, setSelectedType] = useState(typeMap[0].key) + const [selectedType, setSelectedType] = useState() + const [searchValue, setSearchValue] = useState('') useEffect(() => { - props.history.push(`/softWareFactory/resource/${selectedType}`); + console.log(456); + + if (selectedType) { + props.history.push(`/softWareFactory/resource/${selectedType}`); + } else { + props.history.push(`/softWareFactory/resource/`); + } }, [selectedType]); - useEffect(() => { + useEffect(() => { + let matchPath = '' + for( let i of typeMap) { + if (props.location.pathname.includes(i.key)) matchPath = i.key + } + + setSelectedType(matchPath || typeMap[0].key) }, []) + const search = () => { + setSelectedType(null) + } + + const cleanSearch = (e) => { + if (e.target && e.target.value) { + setSearchValue(e.target.value) + } else { + setSearchValue('') + setSelectedType(typeMap[0].key) + } + } + + return (
@@ -56,8 +85,9 @@ function Index(props) {

资源中枢,共享复用释放生态力量

- -
+ + {/* */} +
@@ -91,6 +121,9 @@ function Index(props) { )} /> + { + !selectedType && + }
) diff --git a/src/factory/resource/index.scss b/src/factory/resource/index.scss index ce9789ed..48b1554c 100644 --- a/src/factory/resource/index.scss +++ b/src/factory/resource/index.scss @@ -1,5 +1,6 @@ .resource { background-color: #f1f6fd; + min-height: calc(100vh - 58px); &-header { height: 410px; @@ -115,12 +116,15 @@ .search-input { margin-left: 30px; - width: 400px; + width: 100%; height: 40px; - border: none; line-height: 40px; font-family: alibabareg; font-size: 15px; + input { + border: none; + width: 100%; + } &::placeholder { color: #a2abbd; @@ -149,7 +153,6 @@ width: 178px; height: 54px; border-radius: 35px; - box-shadow: 0px 0px 15px rgba(0, 74, 168, 0.05); display: flex; align-items: center; justify-content: center; @@ -172,6 +175,7 @@ .switch-item-active { background: #ffffff; + box-shadow: 0px 0px 15px rgba(0, 74, 168, 0.05); } } } diff --git a/src/factory/resource/softwareProject/index.jsx b/src/factory/resource/softwareProject/index.jsx index d818cbb7..1793ccea 100644 --- a/src/factory/resource/softwareProject/index.jsx +++ b/src/factory/resource/softwareProject/index.jsx @@ -17,6 +17,7 @@ import bg8 from '../../../images/factory/resource/project-bottom-1.webp' import ActionItem from '../components/ActionItem'; import '../../common.scss' +import { Link } from 'react-router-dom'; const bgList = [bg1, bg2, bg3] @@ -34,7 +35,7 @@ function Index(props) { }, []); const getTopList = () => { - getProjectsLists(factoryZoneId, { isHomepage: 1 }).then(res => { + getProjectsLists(factoryZoneId, { isHomepage: 1 }).then(res => { setTopList(res.data.rows.slice(0, 3)); // 获取前三个项目作为 topList }); }; @@ -55,7 +56,7 @@ function Index(props) { topList.map((item, index) => { const project = item.projectProperties return ( -
+
@@ -71,18 +72,10 @@ function Index(props) { }) }
-
- - { - project.praisesCount > 0 && {project.praisesCount} - } - { - project.forkedCount > 0 && {project.forkedCount} - } -
+ ) }) } @@ -99,7 +92,7 @@ function Index(props) { const project = item.projectProperties project.praisesCount = 3 project.forkedCount = 3 - return
+ return
@@ -126,7 +119,7 @@ function Index(props) { project.forkedCount > 0 && {project.forkedCount} }
-
+
}) }
@@ -150,9 +143,12 @@ function Index(props) {
{project.name}
-
- {project.description} -
+ { + project.description &&
+ {project.description} +
+ } +
{ project.topics && project.topics.split(',').splice(0, 3).map((topic, index) => { @@ -174,7 +170,7 @@ function Index(props) {
- +
}) diff --git a/src/factory/resource/softwareProject/index.scss b/src/factory/resource/softwareProject/index.scss index a0a1dc64..d9c7f87e 100644 --- a/src/factory/resource/softwareProject/index.scss +++ b/src/factory/resource/softwareProject/index.scss @@ -84,34 +84,6 @@ border-radius: 4px; } } - - .item-bottom-data { - margin-left: auto; - - span { - line-height: 18px; - font-family: alibabareg; - color: #ffffff; - font-size: 13px; - position: relative; - } - - span:not(:last-child) { - margin-right: 15px; - padding-right: 15px; - - &::after { - position: absolute; - right: 0; - top: 50%; - transform: translate(0, -50%); - content: ""; - width: 1px; - height: 9px; - background: rgba(255, 255, 255, 0.22); - } - } - } } } } @@ -223,13 +195,29 @@ background: linear-gradient(110.74deg, #f5f5fd 2.03%, #ddf0ff 98.5%); border-radius: 16px; display: flex; - align-items: center; padding: 58px 0 32px 0; margin-top: 25px; &-left { padding: 0 0 0 53px; + p { + position: relative; + padding-left: 33px; + &::before { + position: absolute; + content: ""; + width: 16.48px; + height: 16.48px; + background-image: url("../../../images/factory/resource/star.png"); + background-repeat: no-repeat; + background-size: 100% 100%; + left: 0; + top: 50%; + transform: translate(0,-50%); + } + } + .content-top-list { display: flex; flex-wrap: wrap; @@ -295,11 +283,13 @@ &-right { width: 672px; height: 516px; + margin-left: auto; } } &-bottom { margin-top: 40px; + margin-bottom: 80px; width: 1600px; display: flex; flex-wrap: wrap; diff --git a/src/factory/scene/index.jsx b/src/factory/scene/index.jsx index 8cdf220b..79bfd380 100644 --- a/src/factory/scene/index.jsx +++ b/src/factory/scene/index.jsx @@ -5,6 +5,7 @@ import imageBack1 from '../../images/factory/back1.png' import sceneIcon from '../../images/factory/scene/scene-icon.webp' import { Link } from 'react-router-dom'; import RenderHtml from '../../components/render-html'; +import { Breadcrumb } from 'antd'; @@ -27,7 +28,7 @@ const otherList = [ function Index(props) { const [detail, setDetail] = useState(Detail) - const [ content , setContent]=useState(); + const [content, setContent] = useState(); useEffect(() => { setContent(Base64.decode(detail.content)); @@ -48,6 +49,10 @@ function Index(props) {
+ + 首页 + {detail.name} +
{ content && diff --git a/src/factory/scene/index.scss b/src/factory/scene/index.scss index f7f708f8..3ae3ffe9 100644 --- a/src/factory/scene/index.scss +++ b/src/factory/scene/index.scss @@ -86,6 +86,19 @@ height: 100%; margin: 52px auto; + .ant-breadcrumb { + line-height: 20px; + font-family: alibaba; + font-size: 14px; + margin-bottom: 20px; + a { + color: #1b58df; + } + span { + color: #091221; + } + } + .scene-content-wrapper { width: 1245px; float: left; diff --git a/src/forge/Utils/utils.js b/src/forge/Utils/utils.js index 085bfd5c..0a559958 100644 --- a/src/forge/Utils/utils.js +++ b/src/forge/Utils/utils.js @@ -13,4 +13,27 @@ export function formatNumber(num) { export function formatNumberWithCommas(num) { if (num === undefined || num === null) return return num.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); -} \ No newline at end of file +} + +/** + * 下载 + * @param url 下载地址 + * @param name 下载名称 + * @param msg 成功消息 + */ +export const downloadFunc = (url, name) => { + const link = document.createElement('a') + link.href = url + link.download = name || 'download' + + document.body.appendChild(link) + setTimeout(() => { + link.click() + + if (url.startsWith('blob:')) { + URL.revokeObjectURL(url) + } + + document.body.removeChild(link) + }, 50) +} diff --git a/src/images/factory/banner.webp b/src/images/factory/banner.webp deleted file mode 100644 index ed27ab49b1c9e36165d760403f35ebf9a1b23254..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 216714 zcmb@ubwE^M(>_c}3rK@V34+qyB_&-FlG5GX4H8n)Eh&PON_TgcbW3;FcXk2wdEe*# z{q_B~?6T*ad+wQQuDNFJm4725;v)?Wp)4#Yt0c=#>;Sxu=q5;keCdT9ipU!&mLW<0 zwW2g5n$j2T34)=;<&U)f*ZnrXGH(<4E@@qkW>&B_CfL_TSHu)8kZ$M7SN#(wOZYsS zPj#1TM_t3FY)8nBhvNesYJIrtJv-ORFKHv|ytQ&=$b7a~&+E_mCS20?>%(t#uL3Xl z>Tj#A;V!yaZVhgkdg^ac-`%$I4R}~xg?bd-l-y>Y>2E4rX=SIe)^qH>wLH>L<{PSg z<2J{m>zSa}a3yh5ek&uT#d1@2;(EF?#3wuV`9@;%cBlU8n&3*t|29MG{Fdxyt*ZXw z_QrGeK=g=c+w<15?{<6#eQj>$)}{V<*K)M}@&d+P;Dqn?_TpOhcK9@NtbU!3;|79n z{k-UWf5Y}X{I;%PuBramrN?vsa%DU7vi?@9o)5Zy-SgZpR6d-;+Bwa_a4O+s)xGl1 zi}a*Vp`A-u3*y`>t^dCN=O5B6qE@PL{^Ls%l|gjn%orM>kDr(8915^Z)by7#ZTDQ- z#qs1OSKR+$%R7Dd?*AVz1cKj6g!EiGLY?dfuP->YI?0E#ZQ~Xp%B|7TF>Uw4V*fY* zKY@GHKdbb3YVFeAsW;~6|BCx-&n562OWIT?zZnE=77zdLhqH0++SkO)>{Hj2245Wb zB5fY{?+|Rt?O`Iii2uhDAu<3X$8pN77bwdhwY_Tk!cPQ8^{bw8t$;)p8`RraSmPPUHc0xWxfM;7G6 z7}Tejz+(R65vB*E9RB_j)Ao?}*QWpQl~W^^=~tTWeedWDCJF>Q}w0ymy{MAxw+ z?F=dUf0$Ds7$XiR=X!eyYtemZKX@rzQKiB@?+;e&$Ujc>H zzn;~(x(t3oTloX9vo$w6`rmK5S817FjZO`f*feP6TEpZI(Ur9PkIDbop4o@b8{Ut; zQi0Q~c4$8qao-Gz4&?Oztik~b6ua$elbKqp5LEvW-v5NLFDAuxCJ^WxHXvJO4BbVF z3ErA+0^(mlXkyl>p?1(@(7b)k4R~*t1aKb<4JgD@A8PJH@y5)O2%Yui27l~um?aJFLn zqs;o7!wemOt)@{zdvVhz;ZT52RX(wtKGdApUKAi}Uqt=SX zUCe@<)xu+89S$5A{}HzjmX?MEOat2S)>RGJKQ7b@skdj>Qw!Q^z^iJ>Z-ifiFxEc> z0N*ub%X{=zaO(;T$>40};b-971EEL_goIr>_3nLAxL=*^ki`aYEBiLUnM38HL9n}gXk!bP zzIrq3_K$Zy?Bzd+Ze8Gc6DUZ^`78{NP`an?@%%r{)?W|1r5E+x=18g-sxp`Ul8_t@^2Ku&&1u|Z~oi?GYj#(Xw4!M^3+zl{#{1yfwnnC z*{c78F!!;N81NT~nK9ov50QgED9)V%ne=Zg|IPAg7Dh-fXvRlzLa^p(+iQ?pZI zvzG%9g^2-f0Sdr1b3WK$KY{}%@j=TQ22dJ|)FuG@%lUrm6M2CJ^p`VJA3|UuaoOR5 z(p_55m#^iax+_eSVJrW~%|F4W00d(llOOo@M*KBC&(dM;|IIfHr=+;zw`%&eZ)xe6 zy>CO6WoTgWxmPA!3rT?6eXh9#0^{7kVG)R{0=ERP_fyHXvf`y>p#5=Qr^IS7OW?2$ zR4q&$6}njv=N-#WR03fRfH3V=|D=<<4Xxk{r9uJIqkT@i1@Y3bL&wmknuas5_u=(# z!v1Syz?WRJJs=I7p z;jf1cj)(u^09DAcDL=Rsg>ak<^}&0j-^l8AbxdVp3<{aF6$c3P+ctD{I_!NLby<*r{i4-2oSuS{D~Eq(&I|jIIg< zOr(Wi`%CBS2nPJve@e}AwjF5^+=dakJOM!W`yegcUKVI|JDk0h|FXot*67X$SZC~( z-L!M}Jx}}}ep0#4087yJs!jiyb}kqgy&oyLji|@`!${X@Tu0)XaZ&m}sDALkwSZ&} zHWLsPgA>G^(t@ABR$p~1gz-Y?ZBM21s(;F9jc zw;2%NW5SW&+v(0pfm~$V07gfPwXAA3`IPBU~}a0PZCe69^t+a)U3 z0KUzt0L0XHzdKI*IbHF!9f&m;D{X1;P}}~?^!}u9r^MOm=@}jV2YOM{-vfmNwxxx~ zQo#c^1@C^ZWxtTF=-Z|D3D=L%T*0WwDFlv$o=fESl^_HU1b}Ypq4v6U#sV6{K{^U)= zM>)|n@1IJr&7#npWzfW(|0)KmJ60iM0j~Ksmjgc8^JSnP?}~r4ZlDt!bJ4XdxObIQ z&+#=Q2#Vq%?lPSRgMs$YBgS(S3nR)ONLK(b$sEF<02K4xqZ0;_#Z*wi07l+gbfC!5 zU=87FmQZ)lwC4w6GH6G7{LK}Hyr(JNJlvZne#7Diilb9)Pi2@uMVtM}F3P6Xo5|1K z9JDpM{V}@BusoiUvAc0hJFVU8n|IL~2?1Q^FO}McdA76-o)iriUCDqt9xmYY~I%f|>hr>@+wfaHCP-i@peHZsznnfJo98^e6 zPyhu1JvGEyDy~x$uQTdJpVNjIkB%l{F`s7Rq-$!lRJ4KylH0aPd5q2E=b? z;mJcye$@cy|JU+=L9Sm-Ui6CnuDpMdbjS9le&WxB^gbHcyF<0_gSkDq2ftpNae&MF zURd0>pT7f-&d?@@TLgKXmcV~!j(-?`f#M~o3=-^Trd#bxx2<^6(zcUfn!5R1C2pev z{%B$1K-I!}UZv$EPXU}=Ubm;No9yQDx30PjLPE+EjUj^Ya#x}oaIHR%?p!EPmF`}3 z&#Ujr1dv_tUlpz2*XGmx+Upe{H`z2b2IbuL)&wAa?e=N|jnY`}ws6kp(=g~wC*-u( z>fkG!0U12c4oE)Qb8!_=Xs6!XIyEo1Ux5ns&gqraTQ%4`8?~)^r)pzslQd;R20p5u|Rxm_A`V+dV z5Zn*B7I68$g)rlW_XGXCFXT4YRn7r4ei5PpT2Y(M%Jy1sB@iqU!kJhLYDQjQwySxi zmO4BYyQOKQdLKcS7|ND-xZTqbRnd3*o(l~Xm;?buHv|=l^r2rM_?A4&(0%Si=etVj zbzQCA{6#et!}jPP%Ftl*SS!LOpM}H#_GtrWOMWfp#3LP7%8|;U$V!e+v(tb>i$?!U z1woL;a|=+-m3$q4w-@DnAf$QNmbn42oC7!lP3jCjN7Lw1&QhPcEI728#)dgdGdL{v z)|Y_=uZhFzR{X2C0r>;SB@cR%dsN1aEFfY0R_llcm@}x7io;2S>I9e9^6YeSa6bn5 zdHb2HEQAZ(_n+(R+n7kMLD$P5;p&VcRHgbhxLBF>Xx$#i(y zMbE)iAM>lf{$^oBQENPWht#3agxwBHh^}x_?FEhqv8G9&Jq5m8QDqdntQk{{v!Qnu zHtEp`rsYNXB6QB(aSI@#E2-%MDq+c)xphu6z zVHq<+a1*>c0T4;&HXKr5C%Vt-7DmV)L3Di+od(E>*Zl2^RZ)BrjjyZdS+l=5AI!`O zl~lwsM#+0lyujO-Q2GL*ql~aoNBY?u>fZDfg=8Y1%%_$euTN;iur&SV^6~1SaM;X< zi5;1LY`eiN7Cx=+Prl-!yJf{Ik1|14_Ui%`9g*Og3MMBMEVgmD)8QCbe%OY0a#mFn zs04oq#Hf{VD9g3qeJU^FSdUJxxcqVHiZ*!2W2O=eaHEd5b^>^4pl|y^NCY=kj zgb03nPW!)Sb(9zNu@;^V((Pg8V-#d?o8?@*+2SBRIL36!_(75IiY1)!96~?p>7d1t zVFBf^ed^O)&17?lPW47o0j#0rFUkDYpXo)zlrW*CpaKWvisd@yXc!2#=YNPTCKlJzrMJeSYRJ^h z{q{l^1c3k^VLJdRDq!h*4@kQjB6dk`$$ZUo!)PhHBrWPs0H5j=g?VD!Vk7l}lwQ#} zr=CHk8o8ao==}USDkaJr@}P?IRbrx*HoN(^0u9N<+@A{;n6BLRWJ|`=U$1x&E)aL3 zL^64O9cxAM7TV;0twW(+?vqA{r`sp>9sF=G<3O@mKx3~Z?{)ynXiMDU;Y@ofu)qh9 z4SL805VV1C1+auT6u2I_%lb^48`D6@;?D0or&;Lt0bCAXWOh_je?ShDWb>%v%0JGW zHCY^flS^?&fbct?WFuj-b5?4q4ajvD<<606w)ZXWq~$$8q^ zIh`6Pe!=PXZk@%%T^KXqYSlmGzAy!?1*l;?JiJpTc0T|R$e09VByg2H!D(@qUcsCX z#5X`>dZAPLYY*jN6BpKkm?W5(iD@I$J8-WE3-GR+c0de)$>|KVCq0- z1XTc46x*|J>>!`VCNG5{h18<0j2di9Q;c1C+n>PLP~?ic*_GDMhT>y4zNwETbpPSk z?L>xjQp6`LiKjz(yE?v~rmbEW8uiM{Il*!|SCh`N)39+|-$H<+ShcV&yhZVlFVXUm zhm{Wt*`;9{M!`@8MRZ*Uw~zKlCK2wPa}V2}y%1vqkr2>sOk?5}zXqee${k_*8xv!I z&w#vRPd*a5V;8pwA=Wqs>XS1^5*HpA3IBKwvnk(mQ2sAifOm_?4Da^WRELNqXtf^e zDZ38FluD?t~T_*E088I^cK^fVC`c*iEYQ09w6_t$?O;Lt4$XD7fH}O(+{V>|# z$Jwo;%dRjR!>!LakNDs(Q8gSS+pIDSOh4KgKV*@1wJ#s-N>9|-4uT5`YB#6m(+6Mw zxGrlGmS9+=!-q2w{&~P<7E>0S6@caL*!7if-FU|GC+F|!A3C&M$+8?5#iNl>DL8Qi zH8jTP!TSjSwWAVyx1KQz;2&7BSR;Ux=>hZk|D(L_FQ245>V-rGN>jTizozilD)o*- zgg}Vc3b2f8NrEUBP`uNDRK6i{7d=^cPVYlz(lso6F z;2`Z=Kb2(M)7t(a#iy6~Y9Q1p-j)hZ|L5a22j{~5sNIqQ{WNAs=Y+^*Vgi}ZpX)ex zY7fbj#GBjJzc^tRa4G9;M6ZXCZlg|S!Dv6zQ4%qb9_ox!C5W(9#t+|-)>z~rOaa;NEh9|U$A96-HDT=xI9 zUKqfZzKa)DF(6HVgC1lHS`dE*8*~+DB7*B*-k#LS`Hg~SZPCHjMD#2&50 z`92Gm67!7do^_a^_!Cc^hF<9X&vMnt-)NQn#wg5{4p&XRr1Lx^>tjb85Te%ra^>O+o%kr z_k@57=Saw3#30r_Z7=l#D2VR1?JtNjZ4c=9tqAjHKeJrOQACu@u)i1jstH*swCE;) z)oD_l!eOj^1`^Acmj@AGWyQi{h7ySztrbd7 zbNWWTeD`5|>ARDcEG67S76)PE zLGRnhPF2-Wg;=r+aqAVL5Y>cdD#QtU&kw%Qu}`4T-ieq%A0za>kp<`^_p$ONYw6+B zJ4pRQHuTG;vX`*tiADc9`<%jyBw2J&w+CR=D?tG}3csk`5jc_%1;?E!goh{B7Tvee zuvO8ie+O3wR)l5t*`=$+ZpA8Wl@Lyb#8q2zfy;;?gX(hV$Al_KkTK?kzt%syrM{4G zj)2<@cHN#Ixpfa(u_O~ljA`E9gzTk(a}tF_ktauftJf5lO{G?vKO+|(Eyw1F<<^E! z5Ll|u2XXep2RAek>)JuWkXOv*H_U#l^4b|!IVMzL8;{|FX948}r!0%@K|32pQn_-K z;cwfvVHuXUx+NEI#8MScGm(d#H#tEd3z8^~zpu%HQUmNPgKIxWKS<93%CLfe>btvK z0%8*xKrhW5&}3X{0WgUY0KNt49cpmXf%{MN?-OjZ1r}@I=9&~9zerdRcbp!{dWzo? zRbUF|bV6^IVu2{nCYn%$mIVr)_U=+p3LoKrvzIxna-cl62le!&#%XdQFBa9Vnm;xy z14Amkzz5A;h#Vh06Y0-~H7;_l8%a;vr-V_PooD=%ip1Z=_@WH46hfyA6O|kwQy#4? z!9iGXzI}o&cGJk+t(JI7JloC_#Z8ZNZs+_%H5$NrS4e;MkX_cUgk zDP1eQ+wDsz&ID>%H&vjKpm-&1_EH=qY5X#ZQ(LhGW&_AQF~RKOUKMCpO;3JwQI7!I zt2MZ4MuiN0yhM#1Ez)Tk3WsLO6iF%FycGrNFsRKTs7cIse^9C4K$C1`<-wzXWeWi2S+=5LM zT7zuLUlX)m;bMrTldXzG2HPmMNZOLs&79)r3u0x^Nh1gxx6_MX%4a+k_p4vLTyauQ ztp-UHIUl@0n&Yi9DkM8?3{LtqY(Xk>p%(f%`f zff0RVS^Q*2??e^!a@U36Le#y_kfJCt-Hl2QSTJ z_T>TrsGBiR!32t=37~b}CDA8(yo3$^{y{4Gk4OS(_>#dd0JItQ7PMJ4vbxnhuiv|gmgv@zRU5-^ z5v<=nBBP%Cp`-?RvE-v$Gw9qt*7 zCj;Ru9dY%1ML_lmnx_ zlDm-6hrcSmS-g4WlOPT$%!0Vh8QRag8xi=L=e$C9<9Zqe;&gT3^qX-6exxY5c~SfX zo=D#Ad%EQL9(MHRwrpRs3!4wECJa+Sn3`#%2@Z`w9?)x`Mopj> zb)e^&I!^rR?E3jB83!`%$Md+?ukwezn#;epYvH3ntU2Ah;(E+!$Ek!~wOo3zP9k|5 z6kehpWW3)^$K*)m{}bZF)-oP($;Tw>uWpAux?yH5(|O_A;XzrSbLLczizj*^5B0*tM?<>0!Ks->@!o4hH)oh*u~M@6<&7% z-Pi)uV1`q`B#%oyFr-ix(;iQC3h&*z8hk7@vGevS^>i7-)9$k`sot@Iz=7Hhs%%}h zJT;b^7bU`cpwyJMDelZ8>Kb*v(g9hhjKWtV(kUs!EL(;+s2`fNU#xBJ zs-a(%z5H4tD|Mv3IC~+CFIv&MP&alIp?Oqe9)#W6faM+)L?<`Rs%@Zac1)U0x?a<^ zf6fz~x6&mbU6{<|LUZDUEpkMEjY5i|!SDss#C&cZm2lj2>nFs>=ST3ct<~@|gy|j? zSyJ$4)$g+6YhCLOr7<#Hp8jtUa+7E1*%uUqX`eQ zFo~1kb}OiH-~h0DL?6>Ta7^z$GNse)GcnDA=jtlwvn=~Oja+a32+vsZ;l(QF!`@Z@8Uop*AfQ<_8V^q3)xRlOq}t_Xa0|`ApViK=%W`xkbqK%;xt*|DM8jj>Z$Na=_ne5>8WVImA zT&1$Y`6YdqFeCsKRwTGYeV66f8|e$y*H@Zk-Y?kC`DMoIA;0n$2$Ha}eei`<-9pqR znn8+lJ&APA#}WT6Cj7Dl)y!xUgGyb6ynEYj<_Rtq&OGJjAyf@Pu;(kg$^4%%(}OXG zhzCl^=oPXR5D5zW92Y|G z>|J5N74U!YGr&6F$-Q#01Ono*(8?ii5^?TA^d8MN^uRJ2s9!pu6O@DL+~r_R_l_#~ z^nxH=N@&hv8fZ;?G9Zl)8SCLZu}P=nlN{kTGIQ^{u5es#QfH=$o1HFgi%RNYp4sb2 z-9P?xa|-o(t5re*=?jW(vKV`Jkz*Qa``goL#>ASJP9H*4j8I@EU|>v1;@rNVon&ekE)|xis68sdEEq=BG%(CU)g{rDVt6qlp9NPnIzIc%V;uD@J$vyIvY zP#b|-V50JFzyQS1z*GeW516)Izng@JXF6w_oV^9aT=3v_7>M3tLXt0G?Gappm46Ov z7t2{dhsXL!x767KNDh-nhckvngo!gGsW!VB$yYw9j~5RULUb@ai;MyVlN+X1dJvYR zp`G}l=BT6Go#Sox&nu+@%ZVOW60^Tg?@^0QXKsX(HsWI<6(b#A%u!xoM=+$9=!D}% zhM1IM6obsT{Dk|_bS$`9FWojNOxtLYFGXY`<+37*QW8PSz>raF&hr3iR$jJ9g#o$QWCmAA}Hqn6>1(msn7td+93G|Jct2IG7i#{C;ZVtdoH*3esloZaNH}(Mqmr7BtQuSRG|Vstx~|9 zlUeH?w-sZI(CvVV)RgJZeT40$EzBi1WB+Wv&_C|oxIZjRkVCsX%!YU{Qcskoda@9w z(twFA!CXZcSu1WGdbKd8_2c7PCO9fFgNth_Jxca-9V#7~i^#W}*l zk|bF#y=4V=;lCqCkWmVujCdf`#bt7UwFjTve2Hri1j?qz6_xwXYa z^4iZii1+;(fU2^yGjTX0%+VzL$@ZuEbNUc5I7z43iWa}rImL-pOZS0G9@<}9PBe9` zk8o24Eo*L=()WioaM473M#>%3 zEZ+*ISuUC_kVdDM1d*u>RG&d;E5q??4_cALv8Wu=yqkb^nxXG-&)lqU`HfLa?5TL1 zNGy`K*;Vo=@72ZYEz&KqKA2|+5*dLyu>PbiJ#moPLa?py4Mw|Pgp7szn-HFU?w!Y) zY(ay%C_zHfITMGzYVC4LOCZDD$nA zB%BR&4uX#nquu9h>%a*A+}k$O+gc}wGT=|s>P19BBu&g!*v>?zZ!iW>ZOQd z(leWP9@p6X>zS5(EJ};$MLpGM7u+|W+jf#?*dn^{pk{=3qD^@g!o?jjIfsp3#wis$ z6i>rK(n7W)3Viv|GOOoj%yIj303qk`O=C91EIZ5;bS?>cs{*^%+jkdk@xRgpC0x!o z*JuL$+@8l#L63~4_O(1^G(vcsnZ@cZYBuby8R8$JT3_%yk2JuDk{o+vbNH!V0Zu8W z?!k*|9@A9Nv=hhz8HUzl#ko@nz#Lg{uNuxh`aO)p^{b%^UE1=PfvXXKSEpJ?s|T9^ zLKrZk{s5wPy=uTH;*SDYTy{ajQLmN2W64v6`8uqR&Rku8wN_X3JsZMEQ8;^><=R3< z=%nH>I3^22Y#fq_?p;zGii3QjE|{S7g%6D!-b@CK=o%`e-Z@+EQy>LWOWUm!X_x`4 z==ZJi&#?&1ScLSd~dWB)UD%c(>`2Uc>V1 zLG=-T`jA9SJmcpIgb*e#)gd9zSOnYO>$*2-e!n|$um@s^0*`lGK?J5d{}KB=gSm@Y zDSS7|13eOeKR*=xm1!0Y>UmP!wm@#la!Brwnyt76(ho2}-W?Z4tDy#TNwn7PvJTfW zb`x@(&LJOtC~%l!FIN@M)fuie=ej^E!5iY1rV^jiB`>SGO67Ml!pqju9_z<@#}UjH zj7ewnO{`yU``@!#O#6MZPT&oBgsUIt5x1M#r>@`~Mb;TQZ*-~Bvfmg+9Bws$ zYDzpEsX-=?|ILl{*b9$1{Q{~eqdx8g0&juHTY5qp+X&a?3n|5Y3k`m_53IehP3V;tF^EIl5=w-p&H_bBA)an`1MbL!#3BreGHyVPXtN*y@TX3i~nyd|w@^20+^9|A{2 z-#nn-GvIr|VW0d5GD~QWw-BbuZ*MnWOAom=cbEo?K#U5Sy{8qsdKwtKO)#{< zn4g);gy~_gg>ri%Nz|9F^W(zf>mbI?P{8G(WtUoYXqdTS@pr2BH@kv}`Kgt`Zt9}1 z7n$G+T#A`vJM`An%Wke=GG}ekFrMT>o3S__k(rCMzgyjaGcPeKZzbJMP3g3)` zr7yxQ5|TK$(KddlqoqEBJNZi$8ABOH3t2!zLL6!|w8O6Ub`6baXsa11#fpuek}Sh zrurBj^iy#RbxBun--N@i6OLg>YzrY8o8QRU!ZS$ai4{tJqkHFu{aB8m409xiiVV;@xV$aMYieNnS&2QUxvHwNu^CildC};XizT}P=vwlN^OrC%EJVyH99KVJf(_r zYOWv4F%(v(617Lq6_W5&%z|Fl+Z%MsHwca>EmhEnqVeC3Z29GkxR^x2EBbtvd9p2^ z(L%hJhCL-fS+2;w{qqIrVW@KmUTiw|-S{rq1*%_ii;Q=vc zzgXTiUjJ<5=|1LW8M`UbLN+sC*@vFVVSlN%t&7kKq$F@%rsY{ z)*F7L&h=I_c!9(htD|x+l4rmkk_AuYJ;D-Kk3kg?pNgFvbMzH{mXB>sqXw3wF`m@zGrYDSR*;8n9w9a0RSDhno z#r1Vk_Uq_v>|YYlR~7A^h!l)w@z_Xk*oTw!*2Vumi2BMb^x~k@B{DHT5LOoIir>Us zRHK<$?z3oKNx8V^w!xYjdki|^=+}b}@i5WZ^Aqu-NBFn=#W z=lI9~Vnmy;W}O=LP>?8}ax`WZ4r37N&q^t?}voQ8w9rX%DP z!m%2)dGUdn5s0Xq>E)(jul)(zEP;W*uBCT1Np09h_`gfxsS_^~1LhHkMdn(|jm@2q zthU!jJ=rbtNEhCqP)chyh6}1jiOC(qzWEuOzFegesh>bHs34xX8$xYOa?Dskx;q_Y z`9(apw>sKe*a*o<2u2-Iz%`d~yUR~LB_4`K6=_7*ZhSWRoxZ1|z8p6}0l%ni9L}%{ z1S|zA^28#QZq@qlygbapapO;p&sUjZhYug!%?W@{vEI88NDwV&0?*vEf=gb2zp?FF z;^uQZ&AQ#VCviCEp(n~|1vatiFYnlFxnjJ(AGQNra8Ev>{Yffgqm~dpq~^=x1GS%I zd@n*vCs;O%@i;Pe=o+4y|AeRyb!QxE@!P=MKf)-qD1slvW6$yaT~FWCoS2kK@3RA! z%6EvR?uf1mmCX@H*Ll>GwYA(s@Hr=9?yz8!&^vZ{Qb1ocn(u3e;&J#= zMuYnRi)8ZTTU)Vx2>i_NSaW&9&kQZ<^}>iqaq`>dvzJU5^nQPMO>l+Ui;JSMWV4tWh^Y+|f^@-*8LTHoHV|UnE1_D15FuCk$jGCT~gU z!VRbXfa5mK`fG~{kOq)yd{@Gc`)BTkxIkq3A!C4Fq&9+DiO45a3+2A24?a}@sEfeq)O26!Uu<=A zbj|>b(lKKp==n;i`UC`$2)E%kjR?hf@AkyXkOkQCL9b`PYlg*pdSM%ViioN=5POp> zm&s}p{o_J=Mt*@!p`PeHdaoqOyu)6%EvB<#=!js2o&1xRoTadjO0!X3kS4`6rSX!Q zk*fSM&S`-pVC2RpfPLnn);?j5R4J7lWn9I4ZtAWpDEMqkCtqR(DaR5?O$)}kMpry1 zy^$oM%C17FC?T}bpKNs|eo^OEEL5Snl(cXj3;ldXDae+`gWE{~e#2B)7V z=}jr*?~8~Ty=u0bPX&p@#5sKq8CV7pFXSSw_xQ99kaB_4)P#!@XDAW=Xg&fDq~YlL zp52{75l!8J`#byq_IGeC*X6uDw5!Vnj2>wya`L^yg?{1b!t8cYtP-5?z7OdQ<)<0Q zFaA5K;ZCkD5}&}G%!Cs#S6ct9RuZA=>eLTR%MZP8E4PU{6p;0r&cke7E8?}_;_S;4 za1A4{FOE;NfQk7LPun=dp@%5}84PpGyOIfG<9mp#HZ@naxHFFji;LU5fBWp@~VBHuB;9wghn z9q`ODGC93@% zU|Q%XKZx6-2Yuqvo81kJYYr-&I6sW#J)E?7aA@#(nY(i?Ai|XW+!dwaJmrV(k+v;X zZJp}d{ft`Ow@2qLMbD9`%0g?COocplhp3+|b^{$_i{jjAq9P0*2R7h1Du=aqOVTzY z)h=$)bL{%2=!&Jd>{5OKwhZZM|1$gRU5hG+?|Brz7Dv67RB@Cl8bq^wh;bswD`SFg z(lScAafBRn9TgEh3M8W6e%J4C(!L;wzV$WX^b2QuvHnY6tx9t6MG0E1Sbm%Z1PzQ3 zuF-F+oRaelPWdMea;>PN{m=V}%l4`0ea9kI=F%)ZsJ1YJa01Sw!}ONMEj`5%NXDYKme7Q9`a!6lb zq6D*l#1l~t7wA`k;G+Fq(|@*6H;t13Uce2SZI@I+NSSnoFvAYnmAS-(Ag_K*SH)z( z*4l;3xVov7*TzyqGQ3NFB5}JQ8H`MrW_y6Ee$BxuK3Tv6D5BA*mb~V`u<6~YSPR3F zsQK)7puzh?3vXHAc*}q^wD%>m=Z35henN`r^UhPU;6RoI+`0}d>{h7GHm`49VR%?S ziGMfSu+btEV8486s!Zz1=&2#v%xWZfCGDoDDl1BFu&I#kkpO|h!P$E~2zRN!MN-!9 z3`=p8tx_8A8xZyCN@%VT;ycM3?XOk!*Iw;Gy0BlfQ-!n<6DQyEkv2FDYTyzkezmQW zFzRN_ywU4I%zAP_8)PTrf95(wFw@STo${Dsa2H=N(n~$qIH4-nW~`wUl`tM6tA%5# z=SK!NKCVj#cbE;U*MPmW5hd@mc}~&ck(f9jY5)`XJJtIsix-A>CamelLN5JJt6hQCQzz)|c`N3P)-0Uz}qj#;>Pk58d`g@yF27Nv+)Am-I@x`&~%g7l5sOehIk^#+>s^uyg2UAw9@@#Luc}S|8 z$}PIzBvj_G1Gelt*<~9UndSZEotu%Ajz3B0xMPw@Dmck8U<)z77+BC3o4E^)=A(AM~+m1{~WZq>wM_uEcIU5w!L(h@RsD9BAG@@DNfxL z$*0^V)`*nt@T`bb9_ysnzp!NQwg`4y)TT6m4UX2O;4&!fw|X{)F@Dr~u$QO= z=GAt%>7aA4$z3Nk`aZd1nzvog^QdntJ`AmP{8lursddrv%V z`!0;Wc2(;mx)5N0SxdNlrvBFdr8{!)`)B21e$CPLmoJoWts%&WbbmswZR ztB^eCtrWLPFGD!l0tT1du?j^;hJ=R zMe&!?Obm`qZL_c96$4frfpf-Fr-vxU-3rK;hL|(`Gxa=;s7SU z9$zN3anc#opLD0IqcX@G0u9Fj2FY`}pQi>h7vM)Qzz2wElMyjIhERjor^T=QW*`Dqbls zKji7y*~Cy=>2FW0QPb}nEQr8m$AQI1{X`3$L7n=WI=oTVH=7q+Dbd(ZLyNBzuCNbu zGLdH~{p@qG$bacmDl}ueeC?Z*UOO;n?fXW7xZg)xEb~Jn%Ox(C)lsSlLgOn5`P(r* z{FRRx@s&o!(n%0Z8NHQn`ViPF#uUdN=lrm9MI}DzT_B<$1VHr>b*FqLVg_ksLos7o zwD2o5$YD2_imV@XL%-8GloHuW!a9xH`*F(o&caBnAs30~PYkuixzo0gF8;?sX*D&O`)RB+3-h1T zWZy4+v`56SzNZewY<2n=YcmmLc9|%>8+wP2;V)GR#mU^s2rt|FW!WDhi?)%yYZbF9 z;(X%$Da_#`8n(0Rdio+w$zjz$2~na; zqwvYoNu-O;PE=I2@7dqNuGAHCnROxgG26z8V4@2i(R&w?(0{t&Vz{kA4y(`ih1;yN zB7YyZV;_~GsBAx&nWp>xIGDKvWx(~Tv0e1gHwGNZi`OmLIQB*{5JR@a-=4RsHh9>2 z5?vbLH`I~;ZkK*CSi`^GR_o_Cyy5zkOKrJza4+K}iw%mUUL)zRtY=!pRF^t!)1hr% zewyJ=qk=-AV}p=9T66Q)f?$;@@^Qb-t8nnx4Lj= zADa2n>e@*k=||-Y3->I02zP#p8gJpUqA!YI$iJW~HKi#QWr?&3Iz> zRAiXe5yutfh}gqBIlARU=k1C4dW{%-ilNS-g(rC2Vu#=m4gw&vJrEb%rxG3f0-dSK zp-!h3?baP$$jm?7`NTuvMcsP4`>?m&2=|+-nGBy%k{&LQrjh9$n)A!8o#GLjABK3K zQ&d z#mOv5bu#MI@Ot6k_YdjcSm=}$sGr;<`RE&7 zOiPWZxgJ3ZGkY{JzG{#vLtCA3vn0G`cp~@MNg|P;I2~c;wD~ddE3GS{jRH9F>gSWr zf-oBKlicRzyP}ELgjn?-zZr`!qO5O2P1&W|Jg&jlgyoi{{4FP-X9HC^WBd7}3vuY}Xj#PY)A3^-3wg3(WU5+;KJNOC zd@EE1+YuN=!FfeoFK5wD5VH_Pta8id2+HZEgf&aN`OzZZH2^3NNIQxV@F)xVwlJ+N zcw%OVGR-Ps25lxqLi1Z#=UK|QTSE%NWkzX5)Q+~8@+3iO3`7 z_Ro-@*G~G^$P2y>@`@W}*AYKCL(2&SIRYPp8~OJKj6lPewojt=Yigz$7Wq4XpCvd= z{hsYpLv<-H+}5Ej+^>i3((D#MXbp*S%W{SN+lvGJ8_yBJC+rs^`f$|fL$BW|2&+f( zkACFFg8ekU!sb8dH0Zy81|f~RLM7?1n_c2vtm8VXla+T{z|Oi77aVzgTO_I|=_bwn z%gKP_cGUb=PT?hw#j@TW@Do0<;+b!ShcE0%-dUV>;H&&b=4cIj?j+xS+1JI}ueupq z7q#(DaV?n*!z_RECA)W~C@W&^1z~+;)`jx09_PD^@b|q=2qc!rfieT9;VIgdVKEtE_; zfsXLIfC?)(_A6!GwjxbopH?&x)GoC^+f9aNvcuLJXR%&NI3X!;fj9RZob&-41G6Gq z-nznmfcy%^rLoOtQ;4yLIDK?6nfHC7rc}X^U`R=5wyJ$b1-i<)DBpyeeCiYj!Pjl&r8Wm2!C(FOpZo{u^Qc49})Epvh}}w~|{geAWqV z2Rfs=aq2B<K2dtyFAMgS~o8gI$Yn7-UTPUTsp}yJSsK#y zIl;ppeKR+j!SNc!ijsMm$7;yq5$7>i6DS7{Q9QRfD^L?r&-aGKd|vQ#1*t^*@$NA} zvxXvU9wnskZc;RwVk)(c5f%!=9t>R*$*+ylN7EH1)IN{k?R5u}+3UJzpH4xEO_3>( zDXH3c_r;*biv9Y&q`v~$ieDvF*0VGIdfoo3meBSKMqc})oWz1<4Re0(EZUVfeB~3- z{>)tTr{Ux;?}niM`3)=Z9Jc-_6wo7d;0*jOvX$yGq2p`*|8ez>ft9Umux@PIwryLT zq+{Do$F^-d9ox2T+qTiU>9zJgXW#R0%-?g25A{|(#q9tt0ZZC$S0c3mnr>4bZ9J?a z2f-$rEI67Pga^iv0mEX*JC^7Y%RIG_yC7lK=`Kf)i+w^tWwhsZ^>3=?n{YJ~P-N*l(>?GJNcG;WO(Dn-uyN0b zqSu~H7=h=Z{TmWwaNMH~HMg#G)LC7Ahc-_+voO=r0KIBC>&{{=p1eCY((@TL4GlfZ z-o|ly8cp9}ZUHv^vwg*a1YX;6q;-lM6xh|bG11hT4B_m=cv>L|4hGDnLo^6uLx!07 z%CLt~j`-HVQg>{=&g8@(mfQC6V<9{kIM#s7ha}~9r9c&N_JzoC;cd>xF zf+L7Lm~9q6G*q{5r*0j|9qZj-8M~B;8Aa4duWT15t;x zC#^Mx&p!fZ@%sK!ADc$FT)VJ?`>n?)umj74XnN0-5uaQ{+!D)!=1$P+oGZ^hyXEW{ zj43u>2FB!Cu^f&j@_)dbDA#OC+x$x7)&QwcC4&V8I_oI%%CY4)athls_pz`i;2);v zr_?~giZj_=6gk_%#f5^#vS}FAZ;?>Tx#op{r8Gh8{hHl%%GQi~orRbdKLlpOGpUil zRC6KRV%joJCO0|&Nr}Si8`+Z{{ZVuwWenY}P+#i6a*+PzqvyfI(8i(hx{goSn81q)9Si1&18t?ag?D0A{1MZ>^T~cK7vmc0Jg3pSAeF=9(qnM2OS`FRXLes?LMP&2Y>TX#kGEX z1cI^peG*6F1eO%((vcbpq{a~Ont_7mai1!|;GA=_UufD*Q?lu8^%$HVWsM9_M)I)h zdHr#Q?U8sK)@u#WA+tNpGGm{AQ#_!Dach3Ot}et!{dNewh=3da|DqbYD&M4@z(K>DIfp@ ziS)gwA#u}Xa|xS3o}(Td2bUG8WDrjzo#C7o0jp0CjDAILK=;9hFm zVl~6`)cBDef%(1_~wnG3DwQLf)5^`j0g`Ll+MDL)1 zMsq|GfXV&?@=rL^Tkmfc@qcyv?=aoo{r4nux_&o8Z?0}7&i#@w*N9k@IIs+mxDY#t zv;Dz@bK{7;HvZfPloS)AW=~No2)Nz8YTGaZ6x=n^(o;6NKf5ebDv)5&))+|9^)ON= zfRuf@;0)y1R`EL)5eI;!)nHg$0%J8fq_i+qB-Hqk&l9P zR#ahalk$#~SWhU4n$sGghYV^OHd2Tv1U!($M!q{OEhNv$ z93W9_CNmS>Sg8IR`0hmsGBAa#YESSJd9BQes7J$xUs;s_7M1799Sb4YjoQ_<*Q>+q zT=5@ClosNGhY zgmIq}6b{?&ZUPEP;AeF{gL2r-VX8F`aX=R+{s)>DAie|({!1`%*VMS$sO;e=8fX=G zXPh}(h`{#Wm-%0w)&E?!{sJ*FTXF*^^{5#!QH%~l`n?O?o5Q~&nOMisvhWi_XN=^gN^|+xSyqyMg&vZXTW*m~%pbsrEA2I~}g%#Wi z*CjTnG^NEny6fAoI_*xl23dv)UCCpq(qs4}g}n*tHHSUWJ!R!3C!*g4&GFk#Cyv=0 z87Yo{eaxL|_S&rH3m5U*+x^I5g!ZZabF6J-^P?C=;*iy;Pu7(Eqw5&Z^@h5gH zjvQO|T)08KA9$xjS+$AQ7ojgDXc5Z{xot8;b=QpApxV7ZOd!TPg9zrQJ4Taq%`oWy z#S2gT2|&hd#lZQViAz$*Q1VPr7Hc8zkRV|W26HvaXxo+P2_^a&ZJhX?+plJ`zQm6N zTMR1jgTFThCX5rdTwX3ibOP^-HSGwEZPL!}qyX>GIwj1GG6&Y3^5s^BFa&?m$1eRd z3HwYi>!P>6oFkWPv!jrUe5V)8?d!~QZ>gC-LfaZ4D}#dOk;#Klv2hiQH>$IAYp29s z)fT6~S5qL79}nBUMT+>~hnj=LPP%$}a?$pTA5bOsP6t+VSiyL1ZRKLZVX`svm*WqF zBf`d*;TCW%MkaZ6GW&odkphplJfGH%}i^-AZN zSt3yd264R|HX(}}b&|jJH`jL4T1YjaRvahS{~4xoK76$zOJeJW5$J*xHrTC~4Vx;g zQZOaRxb;l3ZS%Pu>sOVhH%84a`MrEEU++};Jcn~oe-iwoM~D|qH0PK_zWew*wIRO$ zC9XV05Az6<5EWId9{Q@muyU1?6lp29BMr{mNooGvWK8Qg)ZH78=hqd-FI?1uyxY8h&w2dQIdiPMS(j>RB%E=!;^lI&@}_0f4`HcSiNb|?4M5t z?_xOP)@#^e@hC{-fDa3eA#Z?KNSAgnI;C0}G~aHb-k_8jhdGv-jB))_&x zvmZh!@qviOV7t*{K0!Bqh@6bpO*N+hR_0~09{{WQRoKF7yu}i@ARNNqdmXu2qbpd@ zuVn-zePtF|%`RgYWHAf=``#Nlr*XdS#{w^W82iIfYcwd-7ZH;f1i4Cx7$ee-_xQKv zQ1oAh$Uk1`o zbo*4>%?&5kpFrt<^ZNHA8895lgvXMLKMBo@ za074Bof8wq7c29B40&0i$iQZN4{+OJu zq1H9=etV9pA8Tp{QY_{!l2V@uDz?T;il=-wc@)t0=Ecj$b^)~|!LzRP_M;I92pKZz zA{1bBNp`%h$z@zEkYt9-zA0y}iDbUwZJh|hEeZ7COroB;y_$*4Q4Pl-pO*0#UIEs% zbHT}H0K{m z^IRGonMNw40O}`^#4oZ#zWc+iULIWiM#c%{X}Q5hO4QVv`-+J=V`U}w^g45}+(Oal z!8ib(kFLWV!<->HNtcuT3begH24}bEz)Mm?BP5*TDmLD59@G12I9L)u^pR3;*lWXNa;-otMYSIWXsgA*vWDFK1B*E=X(NBUHG`Xt zu{P#u5<>(gtPMN|HeS$_M$ZGhEffnYr=dHut0kt5@003C%#^Z>rKDksF+E~0x}HhI zFkQpSms@9!S!Zs`zwow8+-PokwUhKz$tJ-r#@jZqU2NYpE{~B^V*ZerWA}KReP_%n zH~_bGM68(vIQ?e^++DqWKRTasV*e9V`p39SI!e9}|E-aN4_mS3Nlf{svP|6+(SGZG zaONEjdvT>Dhsi7?jc@9IOs|ziEPUjfSc^(#$Y~gd7~sZ>WMJgo;YrHo{a@ngUZ_Oa z&x28RcMNO3ZF5&H^D&bMtZshbGyOc%XHkaVR{L@FfkP=C=G<1PJV&~9Ct@P}iRL2r zG0#VMT?$l@lyFMTEs-RmnmUu(MUv>rA4%wvpaY#>J|e_4%R`>FbMNSCnp4Zjg0I+F zo}lIP*n$fV87$?7e72}9q^aFPlj*qNb(zfvwCdUz2F@nL5IxR+0}aUevq?6^&$d?a zyilE6&@yjOYN)Ap7mfglZPwHEe3o)TY70*NYB0JY1*hOmrc(h>pKS z5A=lA@rYue33!53Y$4S(NbR;;?t_!EJKLlxfJQtqNRl!8pEXio0KnehFip%N3oKqV9K9^l;3CnNMJ)6PO6kMuwVh^$PHjbKJ{ZZRC9MX_kNzn1Uk3;gY zm!IjpqTUJD+~Fn6|6o&mZE3M0+8;q80gBjGnQ2|%0HOpZ!fTXS65tiO}xeO>GAnX3WC7lt1zRX0YsjiDvCGHPQ5}BWWQ(V54+=p$Q3I zW|w&1&S!1wDWg;Q)c9d@>t;QSXTV{A7!8sm9igDX)|E~ZDzORfqX?nxtvj=1mYVA$ zD3H838dkPq-$8bZ$(5yXjEbViYFSVanaU@!4PpA=4x{{S68P(`=i9Fs&-zY1V7TqY zFwMY?(n3roVvuOk2v4!p#{C!-g1|WW^(dTx6u2B{7H0O--zglVH)VkvM$3?JwstVW zh-2j}FBtOL&pmnHri|#$&hKaB1ezDlNv;}pWVwqNxLZAkeR$KOFK6hFeO<{tzhu~@ zXoW-8T)x{1toA7qeTPgPLC_EFyr(yXP+sRt8Zn>JD8S-|SBFP@R6T`$>td_L+5%QP zT{ykf!}|~BlxZ^)-6Ip642AhyMH>Sr>&pD}niaRG{e}YH93n3j-;Qld+b<_Nw<2{3 z{+&?YzAXtfO96z4$eWsx>V>Pv?5t74hrU~_L{ZSl^`c0rPn4UOlr(Pqiqx$q=M!TuUEA+8mAd)?(3&Ys z)idmShBGGs^k~fefb4`b$nZ6UKYsB2Yu@}`WxutCCGLa2Ee}nZP)K^_SKA_6+}|V( zq-%j9RO4BcN38-KTAFPRAzM*{Rgkzei4;V*b!)a>Z%`=mV#(#wW!_nY_psqeVd9EI zVrgXC$?ovCc-!u&jkOTt$eqUZTVFrxhy(#k>BPn433T@njD5 zy{MjUfzU1Xmym^bR3g8q1#?zW^?w3s;MB%}tUQD*BL%U(b|T~5n%S6;lTMCUpyv3s z0Gj%m!&MLwR*9S(<(f%5-jZz$T!;75NX~HD$Dgsut`0ctRP}z9bw#3|iSC*plx8yp zo@~CTtv#O~UQeKml!gM!Lo1cuP>02%CpS5iYO*u%Eib`w`txstmghLHFr$LHAp;PM zr2ydGJyyadbCI|~0M?)BX@R?FiwLMI+gxKxwVag3x?s_I9M6N+TkYYU&f2X zuD$@dtnN+r0{^BtzNM##m_fXM3SXLaf7GGqY*A+)%0%4UELxAHT)se~%MK?Dy_gj3 z$HBfX^}bI&*Rt#kZ}AjUWXMSdn>(SRceC5;{hD8!vd*2HB@fW0g_)u1tkqW8)rPT+ zFhK80PDt%&5qd}DkY68a@;TeQr!&1=X(EyuNc~Q6Ry#_PxlTimyk7FF=r;(X|3XWm zCDj{{QVUDytO5Vsj0+&Q(DAS-Y>}^aGJQ}ux6^Rv*X?R`eN)~FOkGz~>SE3VhP=4P z9SOAA>sh+q*bafYLosZ)4jwQ;-Y{yZ-DniM|r2_hnPxUUD5RZt7b(3qzq)Ds$~ z;Ep`y1#Ou9P9>u@)hQKBxipToXsEy{<3>Rv`&P{}lYF^gcUQybHUg>^yl${d1%y6v z-L+TMQ<)-Kdw>Js_@;s2G+pQ#9VMpQmFzkWV!06-7Vk2|;0?q{GUj&J8bL&+YkcRj zQwKSKybjpX(5~HBGa+Ea41#@4l`~^c(8;D|HGLuqI7Mdry5LL?ik(R?N}gTP$;@

+DJFF7tR^XR^Jlg|f7#?&KnLR8RU`dVvQ-8*b~}nf zopANsuOP*_0^^BK8(R*QpP9FZOcWN;N#+j5FtD`!g0gb`2bV4Y>^I->@5$<)+vE3x zCOzXy3!w;_DBc!Rug9)J&*vdm>dzBbDKw_v${W~@_<2s6A3cOqU5-|5i(y5usb-va z6c;L`AhYa(@D4*p`Zipn3JWNLb_Z^5YK!*GK)9w-H7y%BE7C?Z8eO72NPN&QzeT=* zv4!v)%;x{9J%3>&t6ER;;`AOf<+XD4k9DvR&wOF|8jF#hXgxjM`F}$7F+qTE z1S2`RtCh58> z#s%m*Q7DJ@noAgfTY+Vi^rgVB;PXz_{gbdP#Ng&J(IAF$@1yo%tQr@M2TE z(towVPoA(#6-8BYhF`EGAio2iTMVPnLI);8Tvpwl={0GQ#$cTBdKht!L$MWpoRIv` z#}_5|#}A=W$66@+9~(r0t6I;rpQBXzIH=HYWS}`kuZma{k}`bBzSMh@meIOsRC@Yd zD0QctEtsS%;z`gPl9;!u?)7c^|7&(T|2O>6Lm>wj4(9SJQDC+(*8D{KxLp96zh3Gf zEq|*PhL_Ph8x1L7ip>CgQuFX)B4-=<%Y(?&)cD~*c(lbGTC2??s_5nsS7lmx;n(p| zE)+i7DHJ$mjDwzChIUq}-@W$xeOSu3*_pCe{!|B5g~+jypfZ>2q&Tx>gytKp_FUl7 z!JNO)+3UI5)kT&O+m&kX%PHK18IcqEuzvbl1Z);_#ew@vIFOG81{~^~P9>hu-RhN$Ipng4=AL!OTA{ z6XTcvf|$)+@1Y1^QeG-90-b#lJJ&Na5@?QR-PvjAuZz?*7p@&#N{I#u`Pv&Z-LY!mZ9? zfddsP3EgG>rHcJ`=Fsue4JRmYFjsAhF_=sqr7d^%t9!SG$_CGP+&|%jw)h@*nrqCs z$ngbA#-nTkmN)?|Ty{17xgM1Xr!)rK^rW>0nlmrB5EdovXD!S0(G9VE!*Fj3UJ?!VcT@s7Zw(D zbnsMwm_;td)tbz^MhIT75Pk^GAMYao$hn}?l#&)pYYF7r)Idj9%W}(96=XS|?XFY{ z-3hO{A&Stc>SQJ{t$VFBu~0RyC3b%G{qRRP{k-je+&UMgxnQH>9IW!Qm9zP@5&@5? zOE+{+`a?gCz$pTG@vGB=!aes4Mt*=wqlTFvdQLd(K<~+m%JwFLsdiV_8pkARGUtNAvXr*WnmUdVGMv>yu4iGWGMLrwysG#vn0DR>76i^&@e%!&?yWREEU z7e_w{UW=N-WF{ROK%Ts``8mOp9P`a3=0tw5*iYCo8kNji)X25||1A375AEpm8szhO zWvEF1P5Oe{{2j-}Zf z#i1ouHYQ?)X68_<=j7ZjFguLV9uH`f+$!}~fK&#D4AUrXjDIHw%1Rt&Bcuw`9Q&72 z;CUM$cgD7%O6=HI;`JvuP*G!5`EEc-&@i*Ml6xvXbm)lnRA^J0>^g6#)Ji>kr^&=( zpTue=G5&A|xAuN858L>4awuzhOle0iwypK|n6~Pt-dgnH zB-mh~fMORz50N*p>S@Vu33uu**>TC_OM08zB*+JT!`%Ky!!k#D)JI@-^;?&?MLKzO z%?(P@H{Nes*5mByF?|ut#?x$!Ixlt?5>nsA8#-P(d5)cylXC`^ z%Zh8^5`ooZUa!*)HeJqZjEnb9L10pAA$k6qZ@;X-72I~%Ny3xVDGzrS&WF1rtM{kl z*2zR6OfB2*4I^u%&fn7BY)b$pdMP73*Slz=1LG*CfYje;_u!Zb!XV99Xiog$vRF9~ z9LfaA8a`*KU05=&Cv;AD;$*{(I-5JqbM~P=x{R3eUwgZ$q2T#1%2w(E>As55A(CJf z?$B3L1lFMu*&vO=@6%XFMip=HGeq1uf6Ut9!$$RR(5cm>4MT$gYdwkmMk9goy%v=} zn4sD6Qm?L838?Gpm;XZE{^z647D}QFzvVl19S)#Vjh_vJ<%zxM#eXKjoKw*`8Zz^c zD`ZbFr;r7*Fq8`FJayh2jjvNz5gY6^Oh#qTm)_gmrgMuxt;sLL{^(ryRbl|!ZmpUsUSC^Gv-Vtwz=TuiBscl-?W4h4E1m{g) zBnoBcXSUZBS!Sc)h2v5O9()3(pl|xnZ}##dyai`HR$K_TG2OE^C%!#tcO0oU@+RlF zej#if^#ZUr{MoG702(WI1hD(qycD}vQ5^Wk`Usq7h_U?B6(2Kfc&Cen+3rqC5{lGf zhUdisfQ24Hm(lL8M;}X@R*@6hW_6ej_vqenSin<~&_Zv1t=~TdxA_AELX@PF5voME z&$*Q5WKzoM>DcDj#`8c=noGa43AVy&9a%FHB?r*YmiHOxgf)q2@{m)Gnm9lG?_J?)F0RhI6H?>n zBLS%&3Po5E6%8oqYIw`Yi0^%ywSDVV0;g6VxgT3YX=LSv1X8+6N-^3Kt(^+F zrap9vTaaXWfpU|AB+)GHlgXO&!%3QaEEY^pt9(7w#?6w(v{)J z4z?2L$pj@OKc!D>SAWO?_8o+(>6J3q+FrOo%~fT@6D6iz#9z_yLKzO z7>NxANyy14oEA+AbxHmz&~YVOoQ~2p=sw~c&yF1AKvJf^J^|jK^_+8(g`lkx z8m&(wK@0#F#;L`!gG&CYp$Xk;d ze)L0_G{#>`USYp$)$mgX#T4Oa#l=g1MHb>-4`$eSYT72}IruoqCPY?NbFBf$a9t5) z;)HD9HDj`Sn?c@|Tj!g9*jH*=k#IDelGkNQkx-m4NHj;HoL)<0ujQNMo}tfeS5O>| zObV9N`I(@~vI1mLl?xYO%L41`Gc^|B8tM;+Ua9Y2(|VbAZ)*LC3Ma)0Z16uDPTxUv z!c`1Uhq5g(N$Rh!3O$?OLta%3On;Rtb%cYSeJgvCu={ENxx_?o%-ci2S$?bcWQ%oh z{TfORgkuqf(jKIhU#r6#%YOmTROaHx<0kEIo(j8V-tJs^O~DZ?XdVXr9(5IEB2O2Uk+J^-0$Av*!tCuf(NJ*@5sH+0Pf#x?T1?;9 z`+a|=bqzTf3y!Ia9%6O*jclO8iZ|DJG!s(1E^|kFlmBCij`zYrFrKwRCr3J^Hi5o^ zjcoMvdP-+L907mf7@qlok_oUvPNVtpD&-?4CZcy z7VWT3LNL8Ra1E{s-@8QDnA`S0{Xi=qbY)AvAKEfyMQj#J2MSn#>cO22WiK_Jb-?+& zdrwjaU4q)6vU0!IQ;TmkL00G0>4cub!n?DpAEPqE^e<%8R?MsH0cDaD_g51RI0TLR zu2)53avOi$pa&>OVUVOc6QHeHri{cGOMNQeGJ0_4_SoulVlcvh4N)GjTze^=yRVXB zugcpacGe3e{ci>AcYW=J&28$XfWmjDPEbuRkxkBxJOZ+4Zg>Sl#hJ^D&hnX%sq+pB z=FaX(@>-an4WD>5{X->J3^vkQI_p%T<4F`SGR6aU?gNP zALgARGMECz%c*D*KtRCDVlMKxHc|Cj7rX9={p2Bb)Tjai3yLsHY`~LY2S}sVIJ*85 z+q8~kw;4smT}8Ao7pZoOJB%g0eiIg-9wTUR^NIvCgK|IyF4;D!|&-%*B3N`XUy4R%Tt2Rw@+>{Q_jiaFa**Rqa+84^)iE0JPr{-e3nvee8b>CMAT1`LvKS9`kYPbGv%5Vx26w}nKGJUCor9g-KkZe?vhO3gS ze*5$<&I?d(hgO!7zAr2hN*R~To{Y3WUMQR2*P3gD>jFOE%?*4dviWt0HGya4+dU}| z15lzd5)2>C%qNkN@z{e?w9ERAEDK|MS71n7#MWxx%S#_ORbao^s^rrmNpLdHf+IN5;ZTc{xYb8(yoJ>Q?E2v-{p+l(KITbj4iBt zz1yY1a_Ajy|JbxYv|ZcNrt_ehMu3=w-hC&-LlzZjJKaV)hD{HCwzcT4i8Y%CHJ4cI zn9u<$6$4)$N0Vh!3O+QpQDn$PXD8K^H^Jwviz;)$9*9)MfrRG7CU?0y8Wr(Hr9%Fa zaF+{~Bo%>aiy`1nxB~#iYa)m0IgzC^m@09BC(kf-XSw*zXoECaf>hJtIeV z#XMSwyK-W97l?H@bZ#LzH!ym3BQ_X#+K($$ZFV5C{>Oskg#b{%wufO317yx3dr(UK zaV^hxxg3k$;h^%5{*w_S9N#b0$H^K=2KZW?`Iy)pFy8Ys8l zn9AaA*Ig4xA@1~GyP-P~KcC>t?)3HALVr;BzO%kfPvoGm$Tf=}{rcnRgbDX>M-;Sm zA&t!AiR5o%Nh9b3G!0R=^4cr1HJXh}}^rY`|oO zeK5nE0pHycMl|s4>vrmG68Jo$+ar<5=MI3MRhKEW!otw3 zVp%Ccywyft4MXX}ruy!M=i>ZZJg5-9jYuvF7{dbtT9@07gW!Z(5xA@7885|EjF5Kl zqaNF3zV{;=h{ZBi@GT2XvI8|!g(u|~nSnUiURaOdiZEmlZPmh|dpyLNfi%?VZmA8E zeJrUqqb=<*N*3(l?oc0Zh^irq*}eWX+6+=~?5`ly-Du`pfCxDlBcd^9pom_w znd(Kfd(M4d>$#A$KHDg9kuZl>hcZg>k)dnktCYWOZr{^H97&SNpuaXMej!56=`}T3 zy$*G(O;Ca9oeytpb@F*Dl-f;aI{y<3a7T z!EB&%!Fqy3e{vT}52>k|$;(j6_YR&g@ELDn`D7`rqLRQb+lDtNA`K#w+R@m8^8r9q zPyt|gR$Yv#00rXgu(6_^CNxCyVgiO&^n_6?;#)Rqi>W<@4(oWgU_*=-q1YgZo)r!B z6iKZ$(7%0X%O3GIpR=w_HQ>6ZZ5T?0z>k1(<_P2rY={f~ z7CYSY#62s)l_VeC@;H_=X)xNh!M#La6LBlbz;!9l1rvIu#nczbIxCKJpG zti6*Kfffdt3okH-fe9Wy>fU<2pmt$^Q@(N|RG{o$Xa zqKhF@HKan1ww|Hc!+89A;)}mVO~Uu(TeeF^N;R0@q>zdt10Be==T$JP3Gsxnf8i|x zrbe17)~6g_n-}qR&&ILCYOEL{!o4+Ao7NEV19ZDUS~Hc<_ij`BmXD;V%9f}m$5#B5 z9f^VLZROy)u?NS2FJ#N>Qjo!r;b=oryB8Mujb!{w(l~4t?z)d_hvMtT7Fe{)HUJ-c z9u4!xa;fw(RK}@O6m#N2ykAA#`}f5S*P%&rLG}iM9Kau}R7F-Ejs+NYcQAm}`SJEK zK@rVluyc(N9nnj5o)n21nCig2JQW>@7LL7#Y|~Zlyo+N4**P( zWjfW$lU@L^TPk$YneDQHpdzQ_(Q;7%@c;QV_LoC%8va}|e_>mPs z0Ro=%c4QGxqKG9{Q!%S13Le2*t%>5fbe_fAT(Ve7IBS9ONeoAwx2V zehy;5y)#2|RCwR)Ft+aPlw6#X=nr%LYD-@AFDD-pWRL*$F}X<(q1OOMX+C637bJPE zG@`m+K?vD1+0vAzBOz;)U_@fTwif;IM283aSc5+SUf?omG*1C6pHCn-)ZdYKq|OC5 zLYhg!lomp?n|Z;X-ek@CrDx;Tlq)}%9Xg8c14_DS9iYG;rEpf#yA5pYWNf_!8UK}muShi#NNsL`ZSs&>@3WJN)H@D_=1Yn{{Nt^KZstk1O>g=8s#DZ5_T z;Q1_$w1LX&Mh`V_^5r(Rtq1f?Lgsjc3q=)l)Ayz*QU9vH^l+*Le*=|>A}1U0IIIyG zGQj=#n^F0<)$JcXoM1Sz_bwUku5b2j6)y($&dt((o&?6uAHXN$Rj@EAF@SIw80)~B zd3zCvRY4g>%OUC;PF-F+njw(Gp*0cr2KI<5MUcoTtnU)7^RV)E+rV8Zfg;Fs3|CgE zzWb-(R%!q+Idu(|-j3$`4 z7BOAS-RxU-(QYK0vi&i$5K9p#hxoSF^TyIk+rjx5e!ZFpFcug17o57NF{TM+tva9L zugPye?;lVF+It`LD#V56LsrSnV0?JEJO%azUdC_s?0Lg@?NOnk8fW9-gq<`x{gZ9#cFnuMK)($qJLs+D8Kd z5`xYE4e);eeVmV*&$@3`KNz7r<}UH(Z?x8@W67eOsk-xY%4^6KUxoi<#1;<=Uq=6R zWMB;hR#K+g2d_4!2nLks(T8X}=My-}bO!CvW)al^z%L;>5li?b{MzyFfB$d8Vf4P^ z>?>f39{a&0ew`Z=ZNJ@b9xqV&hVEl5_&|rsl@Bxl+}vdBf&gknHDWN|I@>ksyg9Ff z(HL-pn@t27MK==Cg3wd(%#J0}mF`rOqE{1X2~=^rw)I%>Fu_NS0BQzbH#g`nxm*C4FNOmvWjX>V2~&ny%2T#-r+y3~a6sL)e? zhuuPINUKLw8V*?mek_1*h1)34U zgP<2#Bb&G2qQu60&;yj{dj)W?U2EQhdG|;WZ!_KeJ-Aa28Z8w@nSMLRib=cL`=-Cp zic}c(?`}r3p^T99dc~=h_HMT1BA6Tl9zRHAQYtQ1KHimD!z~CC8}zkk?`s&B*jU+0V0!x382{VzZ)F#c;*^pS zbQaY=y*Guw%CRm2%X#L}XYZf}YgL{Y$rI)I{V2enrucLl(y~rhN<1D_y>Nf!S4ewh z6ShwzwDB;1_oc_BkvRN1`WSZ`kLrzPJ)1&L$yNI`L7LK`)ddx`t_3>1FZHX-e zJZ2~jRC7U~+xMPI-KQP;f^+8pO#8xSKcm+;KreJ8jC|#;;;O1F(V}x#W$7~VL6^uv zZ?efB#ptH$W!~J$robIAF7BvRp#VEP7h2%h(WEXc*(q!II`?!4(0eFzC$T9yUtP|{ zVGG+s&;8s2i=YRPae1T`w~Fp=e^-Q`?9fpy=z{?I^+FoxOW`XaO&7OHI|C{xR-rYE z15dyfnIPTDIu15l?;1*LP%xdbS?m(%;Tf+guOF)290}w09$0;=v7WnE5ryKLf}-RP z^c_spCA*HhQBm|H#z{JD`PC$L7++x>d6B?vm5lHC?%=I>^wq@BKHy87ta86x>|9EO zK|j+$`DLM2K->NpD44Ux<_6?t#4z6(51Ox0u+qzuaHWD{Hyw>sQ?@g4f%RC@rln#3Q&KU|5nJ-G4Mwjc}U1PA3TIeFAgIbq$<(*?{R=YeZNH8&4O*1zoNCG=lt7e z1DEK;;H#c2M3i^(5E$MC390bCvsP4S{%r(0S267fzn$zBGl*;~e$CJz~ zR^s6Z3gjQ$a%myELVqrkSvf^^Mm~Pm3RTBT8vCAa$fW5P*kkTLtVC?aUS6 z*u#BWU^JOb1g@k$j!Un)5sXGG*Tz_vFq=R@*0R+^U6q&2_)V1tiu}lAUFN^V=Hu<- zs}d5I$haV7gnz=Q!Z6$bhxu@_w>2I0#voBL-EO)&d;RXvHd)gGs-`o z`!gdk?ka?fR82-m?{pn^3tyNSG0lg?w5>B^GUmA< z3DZ$QvW_DK&>F)=@LZ&PV?(Z&=a#2U!WM5rtBC{d|4@LpOqKg%e2w(fUkUI19!SpaQ=k+ao+)=<C^q6K~+)-<|!zMgu>P`GI*syEmZHg&z(t zpfC7(gBPXBLvfWDK?JM9^YDnCFGzYITfgHpE4dLIxXnQ5)$sZ%}WJ3iJAo?f=a@ z_+K}i@38l!S&Me;X?E6(s0!k;fcvuW*Pcv_KW3m`U>S%M0kHH!IPmL{b2s??rB`gs z+7$=LtTfOBY&1&%s>NHte_~l0&`ihs75gEXE#sJlc2wF>r(VM~jLC@xU+xQ_gr|K~ zX;kj=0vh>IO3jx21QZzZhChxjK%so`x@vowVOJ#ucK(1HF!q3ZQO=^N_x+F*EyppQ zVd@7LYw9!L|qp43V$ZmW3Uu&251re}dleQ4R1W0FL3H za(SGsG*+3OZy&h5al}L6Q|armB(FjBe$9{BY>{}r+_l|=JJ4RI zaxjH`R+^K~>QEGLz1wdXSb#;aWR;NyBJK3GbEW|6&CGKu)K41eNOy_{A@NW-zW0(G z(PcjtQUN!{JTGiDFfj_LmuYY zqYWA-jcwbuoiusBY0o*&?|T2vm7UC<*)yM6vu54BbTRENFU6{Ri;`=-%wWK*#0drg zLIZ95ol<387DIS4SwP+|E8fe zzd7W(9?YRZMqy(5`6lbRUoq^?S$GUshRI>V1-{jVT*l2k>$mMd@h_FZF2m;M$+f2L zrWZKa2_qCIS%Em)J>-u#NaIa+)lo?ptDL?qt%UX7^RU4{>h*Y1?mL(7IY+ zr;4dMRYj~YO?gyrLw^{npLbG{sQcJQm}gH+3Dd=D9pT;XGlDRvA?udTEBg_%t)sPO zN~F@@dp$?zD8;Hz8goi@WsX-gnLs*m7%!<4O5dIhwG8p*eK{X6tYL^%NmJzVn>SmM zDl%$tOQkxCftAde)z1|1<71k(lHX7wnkg|S@oxy0~%ax>%?aZ%qg+S%u(@UtV;hIqW9Eb?9XCHx_y(qCelIC zpl%$v2gAhF zTo#S~#*n&K0wg9XZRsQ%AY{zN9|dShYWJs}?2c323{T1UjOa@_lw3?G?Ha5Vy6Q9mH@8F3a3zk zj&?7&xl}dED12&Zb)3z9zAuU>Xi`v&ciS%$gaM_L;J`HoMe-lTSM#a>3NyhS+Dag+ zX}erN?Av%2TAB~mS4TBPYss_|D45Kx#DfFPL|-hv_IMf0JJ2|kpX7*?^FYscdo@4?Zv-KCil)1(Z8#|j&Q)Sou2E#3Glf0_%Jlz*_30q zmH=F+34Qq|?mpO7S*S7Vb|($pUNQ?@6TMG!vKJ=cHEQw|-M&sMFVGW#=1w{B$?G#v z@Env7F6zQ!=BJIhD7iccyG`7S5=ELdAukT+a_JC4k|PkT-sOWj6F!GCSt$dLu=sTk z5y%u@eTlB%i?N@5$ZVA)Ers$G@q~Yus#Xv2CkhOObFuoDCOA71F|3+_TUH7TB~u48 zT7ePugj%uO7E-HGp?{~KsQQ+1W~y(>qz@LlH4?Eyy5aqq8UcvSZQ{56iw})BS-aPN zGb5WeCFY2jI3fzt9?;V9M|4sGJBDqn^xH_Inpa+Bh?jpQdJB%rN8ge$JFSwTwlDw2 z*ntv(qV)><=cdYu74Jy;22O=Hpozm-o9d8Z91?c_Af)gvO()i}Orp7R6@>o6Xb={< z&WtD}6wSI85k!7Ua)W$)#x9E#l0+DBBZD7y)DQC^m#jIaVYFr1w(On-Ew3O9j?wIZ z)`qeSssc2H#%~>t2j=cDy^E^{sgVgNVkekFhXdplBRAMS3bfe5D`k2S3&lW{Y%MVo zDuY&|BK^DcHZ!yfup{!Q4obRFalLgu5`Eh_Q_eW!%ORf1dN^N}Dc%zhW3>ey&eIop#ZNlrjboO?25OI$IZk z^39i%nNvTW&dY2o>bEeG@b}PoTTw}`L)LhLlcaSYd#x0P8EHQ#QKh#@5ot8r{DrBJ z?>*_su7`91!twmzSeKpJ&K6D!p*8j!jp1jN+wt9jER-}t_4{e zLm`+e3lV(tx&`bYH$S8$w72dDWL-E3u8>VtUwTw_@kkEcFDWW*eBV!lFH$;c(sEl7~Le+5bbXhwk+R}mQGDf$To^iOkg+0;P zNS5&!@{2O{8tS(5zf8-mAACj&r9=lG#&y7K4V$T_pjKIh&n%ofTsC6hU1Art66diH z34|uLa@%1_spk3=mjUO6j+G!Rlk3YG9T<}N;H8wcG>R$cItw6l4O8l>x*2b%0>@FY ze;&!6qv#nmFmJ0n1?m%t2ht$^91c@!}+UL;EDcx{*yhc1Pee8Rr{rd>zcQA=xqjMlR_m} zvVx~;^&j|-%Qvxte?LaTO9xLq5TohEmCgp5pL;X*XoTmQwII#tBiv~bE3XRF0NHzv zA`&r7B(B#?_>l%7z*ZhTg-bvlu6uiK3+u!cqFfM2ojwms5JeY&m44Pc5U2-PfAco% z8|Q3Ute!jcA|tBXRD#GOLVBBIZ)EOCAmw$d1=XFM5)QXlRPb>0$JNH;R)yZP>Lx^} zUpwsOTJg!AuDEu*XkxGSd(dSqTp{jy({FZA^kEM8W#BxmB3;3`*xIcq26m|}(RtVy zxP8{j3U}+8QOk)RS|(H~$;dfnDig1PrAs-`m9w_c+S=R@!r< zYX{^OR-t8_VRAI!ojnn%VZGc-yU06&TGTLy$cc7@p21$}H= zA(&a1+1^+GB#-luLm25q%0~1OOz-pN8uP(mjBlbjm9rovJ{$FiE0fAoDz8qSXW4uu zn>!Y-+1NGwujURoI0x{kMVgE~iN*HQCgXFi!p)EuJZ}*1F!H8=k(`HZMMo$32}6NE zd#>}sqHti7CC4XLCs87?9%_;5W<(`wFa=-eB#y=Ns{s0pRPceaC-{)RK!8B^6V4{I zVIn_z|2rbRv^cITF?4+6Aj1@A{zC6|i}hX3?+WNAvfmfc(&w!uN;7Mjl&Uw-AYF_< zxpX0Z)=wqGrBwguYOk9IgY!zUuFBxpp3LgovT>4w8Q?!P3O21Rh{0JVTAnJZ7g1#S zEro(-oJ~lVHB$vnGVQ|NSwc2k>@e{M!Xq%H@do;vp;{pLi7NQSN6Mje%3_A0ao=qU zZ~JSYB4_%vHz7_VbW!ICk<+^kUH(d1PBUqsp|8Sg`U2(6sQN_yJOnvtwymE;)JF_@ zrv~tydvU+bNY{&zT_EZL??ZW$N*>q~2IT|6M|+fZq=Vwk9;$Cd!AFa$sdK^hLRibd zr3JCIP-`iN!GM<*oWMheiB$!Xz78&UFqk-pQsMg=L&JuK$QqVvKT4EGPKN)}t#|r4 zOnaW^VW@h=?G2O%83DTtR755X#l2h|;_Tj;m3HSGpF#Pz?}{h2y6ze=$$s0L5gyDp&C;~A-hLgJ@!vg@U3Do9`8-|e`CMuM7OE^?PB1QIeHvdg zgHb&}*it^ENBGj5`R$hJJc7ex$%g}N-qw=zhJC^uF4>HZp|im>YLKyzL6CYtgnw_* zW+x;_cMYAk$@*M7Xu@weQr#V2tV~aQ$Gvc^1_Rz-Nws2bG2Wgj8VGcl9%x}>DDLcC z*#pO(-dX1>Vlhl}dnXLf8b8N)jgI4LNu~tIJ=62wZQCfXu)Idu$ca)6q4eer zf(yM6Wa_4?>uIHmA(NzGoa&8I2 z*&DWcg*dxJd^w7;7za$9D@yciODA?K+3X ze1S^+&~Hz?$&I1`hWwia%C9c5vb%u%$lzQ?4?nr+gA=_N{)mw4SJ8E63bbiPs9g|d z5-CWsE+jpBi1Lz^65T)Rh4+JWB}h(C)ebE1s*y^T@$NAFEv}XPZrY*U zawX1AV}!xK>zm}RQ(RG4LxJJD&2c2a1eI%|aYm>9r>0tA9apLUCFvb+-AIAek@7yT z0dOf-8>oQ^Ew%~3%e+cVdY{1CT4?D7PEw+L1HSQY6+E*{7{wzDEbtENHHhgXkvLyw!D_vKh0*=b|jJ$Uvf4MkJ@3(#XK;@zWORoLJ?QkHnhEG#> zd4?oD{xO*Y&IPH@pywAHs1bLoxvclqRsw0ia>9sG?P~DdRMK7FTy_g$OMi=_t3g&z zR`-a(Sk80zG)Zdz03#{ioZK_s>Nd6dC7ij5pw8y!d-iUp41r z4^U%;35?Llc|XdFcV6&6xW~!q4MAChQ?9!tTzJUVB-1|?{S!^n21mT>h%$4cVnaE7A%5#ojgyb2c zP?&5jc0Y`tVUc|Cn;7DrbsL4_Rv0xbsO zTIweMjvsT#2qb??awRFG8a+%KKA-0kCG$30?cNvf2Ls}Bp?kOzVD@E@fI+Y?!f zZ(^Nsi>r2fSu+gg-(tluc0;9WfP3@}CQP*A)4yId2z-%k9t2kUT8>;r&jGD#M1n{y z2l2yS z8xFQiRIu|$y4{X}6}%muGOqy4K9U^f1D=}Cs*T?uw0f_=NVXTfY&zHZtIuK3zHk?^v(qhxuQ3Oi(0@D4Ja@d6_ z@>Di2umm0&q}OIhl)}u#uWZpNj!lq^f{g3uHpktR_6W_-OyG$Uf20aO9WWC2SPCRN z4O(321czA}^LEJS{UPp`Ms-8Ti+DKG?U*cW*fgCA!Mbg$HT%{FLGwi&*#NIe4ovbu zo}`W*io{m~+*^US0Bke;<)#tF$Nv}7Hf5B`VW#!OXlsRaK2g$xfVcWX*mMk$7#P_H zNd+>QyfyLGkha~ZH5XxgAVb-G$_DyI{B_hWmPUT!Y}3^`1~{G;#T$_Ewz#-B4M=|r zFa|4R(1{S5>E%P|*>xM3@1ANWxwjxD!bAOGpydUNYYo-5kjZ;C@r7@356!~e99tqiOnlh;Hx^flbDes{hTs%zd}b?mu9G< z{JX?qbeta++rxdUw3V}#Nl>JRBa`9-k%>e&v?)C_I5s*OB))*bg(s>SC8}R$n@>>i z6GDI>1q)iwdSBQy?r9`&U1SmLq8{5a?35M-ocB~pQeqN+TZ(&7Z2$wUquw_w%17ej z##ti)sM6hw5H`R4;*;pOlR<2bbcJ6dV*39tKI%#-!;?8{KG+pkOh_a+N5(rC>i|IX zquT-p%Lw2gWGr2rUjbhBC^OIMWT;a-H9I&Dyq1^v4Ra?uUb}uxetaPxy6oN`p^5J( zZ)s-5DnyiF@B}Dua1m%%DOmfsvca_Qksp#DTRRW z_QV$jVITf2N-BFtfR`WgB0?`};`rr_E;pG$t#}uQwGTMr zJ$C~#%bI&7+l@zNSPCQG4Y!XN9nOLxYj|*9RSt5Bk;I%E^0D0o!%|c`jh90il01_R zucNlPU;=sL*N0#SMO+iVDPSF4+A{?9SRpc>Wv8S$4d!4sCj>25jxGlws1`H9T;Y=E zX;$EVxBt1GUahdp6iEuyt*?ZN34x?;)}~Wo^5?}!fidH!@DmOv)RfxmB+}k=sG8sy zn=p`j5w0MFj-75K1tNf($InR|bNAG)O@h(?-_60qSIIKa00^r|isUV(mrLUcB-P^2 z9QWuOYw@eu3l+6?!#=$YCSAseOjxj77+w=^XQ8TOU_f96lb&s1Oo#%n_;N6MFVAPi zIcEB0B_gG6c}9!kQap&~o_Yz z!ZO(Si&;BztxK!DON5JJb&Bp;!qk)J2c*)q{rJ@Y`r2KML|&=Nt%wx?!^r--d!r@Q zrAaPX7lbexz59el=b3Tk#XgXf(5ur6P3w8vG+Ui|tY8b@Q;6}fI2N0V79@l>^wJli zEPCo7r|_fGiFrUU7d)gY(@wbjNhM%rHuEmlXpNdPb#Og)a4Av=C*v=%_3ybCAV6R< zu$1Yj)k@qgtg!DGV5>|32t=#3Uciof@>e;=&9{EIfaR!&lAYyz4R(!#oa{ly0yh!4 zVhjLk<@aZecoUrDET2Ex!EjtiEe0n?Tlt|v{c61aEzX~Ywc(6(%_Uq~(GG55lb6XrcsJyOC(T_fAlITaK3`owOvH8#|J zKHu|KbijRn?{1knQD&W?AS`v`cyGYIcDYoNN=d#w6i7unE@I==R?;qhQDn$xdFnXS z1i6WX-zpGxb67}GRF&ZG(IoWTsu*QxP!*~JhkjCTWN4r(5g*2ce8xYa1hH1uBasq_ z)Sx^QjZAuArG03APqIuSmM|xlqFf7FNK*Vk)Hd$w_oA(!Aac(()hAkG5RgG*^L1|W z{qnp`tk6Fk^M_~2YdxJP1;&yF*Rs7pbi7Y=-EoP(yH(!*v$*7Rd6sgXv`X|G9UJuk zbd^k}hf@ShdlOx*mvDQzPsqLVLpAU@P{?x)TbAOjuFL%PpJdc??*4}E= zgGx5Eq(eM80MP@uo;3EFSNCuo^=OSZ*Q}N#7u-IpNbFI<(=kv^Z&<}KAjtD$Qw7F) za7vdpZ5xM}GQr}hYK$a-p6?g1@UiHHN@~t8G!@l)WijTRaipB@MV0=ptttkH+yw|K zS&XoOl_IbP532Oe4Mw^}GkS{bP1zpDx^^_K%f9@9UGHMAz0uG5oe<@0M`!6Qy(VFH za|ojJf0B-QH&k141n!9Z(U6QO+f^2b(Npi8O}AS#DMXU^vmW9_P-EE+UL^A!fyA$n zFJ};jy+y?pUcABG`Q9}AF@<4Pg|~^^!F~=8_CD2;ls?&#F4ci1&#k+WSX@t?2(nB2 zfQk^lo0<yAZ>wWb0R1zJHCr4?sXSi2c(X+UGO?4gX`NAxiy?g?UX z6*!8OE=KtRR|OJSAX^y>M)Pb=MPbK}8+sz3pC(Lw4Kg>k%ARutzw}=c2ESR4N-}U1 zlP8=)HaWmTGWPN;N8;$!Oqs{-B;Pl{{4l>;vOA%pS9_C%qcqF0Ki$r|>S;ptaNx(J zAnVHfb>%#cl3U#Ufj0OvuC0c~l@dcOtsU~**_PiSJItWm@|GQ0trL$q@F)ud}CcyyJLsJ-GijQoawQdag zSonm}HCPTJ%R_dS*{CbL@(FvlJsE)=KLvH;Mv50;0xG3NyraoPI;xif+$s>G&a@F@ zge$7A>!47tYXY0~ahsWMY_)K?&2IdS#F`AnYiJ0J6@j8KaeIo^R@*A~2&#^OEKdZ4 zNbbJiHOd{;;x_J_s9_adMP? zpSkbO&^-XK@;0I)2V8sv9J5z)hv`qDqJ`WwGuK1E-L}T$k~^jV2?REJ#o85jNQjpq z%QFD({I8ld_9tUtn2ixM^Ib@0(tGoqg=o6@wZ_b2k~7%vv$R0McxPM%9E3!TwajEB z93C_uH_QLdcfvunSBlfPYK1^xVEJcJ56S)yUFHE;szPKhy-P{v7Uo$X!(vH|<#B$V zPRG(a-W^^+nfN`}$7%v0kY)b0I>diHQWkSg1M^~N6Ac?P3fmw1H`rqQnWG@WnYt3tRUe*G?MD&Bq8bv6QC>2l4W$x zb#abKCX0A(`d9oW;7)FqM|eK&ktzcu5a`Lphl|xoZ1bjk8@s}*4zWFt_*X zsP{XWZSX+Wi&^IZ&bX*#q^#pdcvNoE%?i+rX^>GKUY+;nGc6Je^J}xNLh&%=n7qy@*NsSwd_D>lWXb6 zQ$rTNSgb(a+(qnxOlYM+5ZAHsgFs!zqz73l0*ZG-O?^$%V)*$=H>Y$RTL7@vw}4n{ zP}i<0+7Ev_;RF`}Jc+SrR${tjT~zK|j|0C1@K@x(Jipuz9YiAO8l~<*%L5o!?t26Y ze0$!$*^k7jo(MO|-a9~A=YC(59B8ti0RiT*4lFa9F9Jn>yw4xTAnrN#xoQTxfr|p8 zjREP~Qf>r-`#}8)w;yoSBm!+Tsf!R!vQ+&a{!ih!p0sr~GY>!W*qz%s@|DmXx8Ra0 zcnIn2T8b|R&6{ttzHo@L=O0&t-fP!YhmHOh zDw;>PmJ5|lyQCCs76(Yb{(k1XOBH!l-kl=GCwvVV)E{B25aB)w-q9Z?7}@6MY*n;4 z>pwAuK-%P(f<5%!uoQU$MT4B@K4T9XA^F}gUztp{U-me<>hAPA>nG{eWtkYiyn;+` zfYTHQHTf?ggS4wQ1MvK`QT-bA9Zbwbk>+H@jhB9WU!DYl9s?#=XLz#WQj!%L-}j1U z7GmY5ZtMM1!|eQu>t5E`DFY9t9?p*LbO}W->l0!k5U35zGgpv6PxtZ0!oDe$>Y`cUEsg;XN zwR?dcfUfHg(?!5Eg9F4@a?BBZz3jmGOpXIPjMu-Am1oi22Chx_n;pUD=y)NA(}Q9k zs|R1}_Fx^x#n+(|Mj9X<0f-)xO&m+6=AO2~PPLW#IhbEx8CWj6r)4Ry8(S@hRWR!^QKV%66~SLo3{OmtMO|HB8jIFe;qPGi zVv&XO#_;-H@3;uV-VT+v$JUD7l!{&-XC*Zhqriws2c|=d3ke9EwfQ3%g$8}Zz%G_* z;#O6TzK3d!*gm;x^WETumu3uOm#`sZ==V!q=u@}(O_rb6V6sN!6_7MC4bId6LCrf^ zxu)u32MFC4n8TFi<{yeOp=ZXfA3$H2O8RRBK;k=0j)d&p(_(jkv`az8=U|&TnYy8; zjUse?EglQBou;^gtWZ7XXiOXf0y>l8O8dm@CyU6HuIR4?{TOPp{TsIgVm3mRI5w%B z)256Fe_X*PcNq08B2Q1got?7c7Mf7IG7+XdG5Dhr4g*)!z+H*KX(`PCL911b#6$S> zUdf4*8kj)_mtWH%)L-x$1!TdEjl-&_)SioGgmck*lQ+raVvMnph+5 zB2R9ELj#b<>ZA^4RpuLlvNM_1)cB`)Gk5}_O9A6Z#!MIy?Kf< zrp*1r?o{fcU0-lrvOBWeT7L3KNni|f>RFl>DR+JfW0ucH|n$cr(sq84g6r zDXg!*OB*@LAmX{It@)xgM7NPFUmy|YVyUFxUn!Owkb`(4p5@*LjV>J;wpV3J=TL~uSn!_)*pZh)Zn=J zHkD{D$dy5}`r6|kJ)S;;tPSJLe0Her^)Rp5XdSzmI`bVf3M{sr{0($Mx^RV5$H$m58k)|f~s(#f|@GXen? zBAP;=1MV$@l|2Rpoz0Vb|p4Z0Xb8vFK(5os3eP^aMc9heY9zMrd`tW#Y# z@coC#i*^XHa19w8_>ji@q)tJrsY22Cu%3shUrUOJ1VTX5A)I%z9S_0>P&-;K(?uN& zEQY)2hhZSES&~wPn4`oTiGC3H`pk{jMxMiZP}a-B78$Ny)+AJk%(JF5&@+@0|GfVy z@1~KA7S9RAIs@FEzUCsNXI790a5bA@-48?RH5==bb+A_pOckZPugLDH?R%I1vE$ub zokiNI;+?V7>Pk+0WV#yn3VLaID3m zbf{YYRMs6%P41K6wpadrK&xWHxJGftT}@%z7oLB*Sp5DToH;}ZZ4sGq^;CWe;X^VH zF$ykcL`6RN$cyY2_!*9Q47iGo9qWPs0pCn(4oQRR%_vClgPuFto+J)aXoz^iCS$o1 zZ_*#>+oRZe;q)ymyQk@kgkIEyn%-e)j^MQ(3)N8oqrkH4FaUEmTu=XLlTqn(QUKw?pj$d_zGI6&3TLqUGFf-aw>FyA_PKuutWVTTatFQI+-)5lpcw;G zaRU542l{t@u7E>mB(iY5VDXL3=M0@k;nj}dp>NZ87L_PgPy|q}OOZQyj^~4Xn1F(x zyHjPXds~c{r)ykyrWGgbnP4D>jgfjF7~Q16TqOReNw$iBh>5{u%$BA))x{ETy4g)S z;X;cu@67@a)AD4IVywqEE)xMOl94e_+D;$GY+wqF5xft7LDd&)DdW62Sj0-|y1}VX z=V_e<#X$MyR;_B35@tWGWV7Z_daQh_hA+WJE=TAEDWq9{ocf?aMe)ZV9eQ?zkO&y> z;~C}GH%j6_vt+TaaK|zD8;xo$52EqGd+egImh95M>baj>p0zNJmc*Bi{qWlRCR*s} z+3x!T$DT4O0uWko)(kzae9*p6g{g61o2DTsa!Ujv|3GT4KdHL%^YWZGz?IO)e}}G_ zw`$(0t&U0zKg>SOWSySnCsXH711eqptoD6Bu+4EhqZ*(`Q%q;9IgCE9h80l(>cPM` zf!!c(C;Bq9!U*%&=mZq%Ec-@RoLnT}_OpM|c)uRl^ zMZI7vB2s+-g%pMS2v4c#Yu}H2;-!1RBwef-$(XBqYF-F-x#a9ORR^wS{@eY8C?=ZB z{Zp=dgjBtJXIR}CenYlr2R`Z^TBH~SzxNtQT=7Gbe4wov{4{*RH`1r3?)@?0k|vJ! zIp`PJG0<0nQs)AdCL~&DsX`1xMK4i=c=z&3Qt2TAlA9p#+4$48>_<)JG{Y z&N;emUDCwdU*<2{>c?xmNC!c=1%t|Mf7aXsD-iLPDv)H(Cx%_1{>cJY$9^PwQbm{+ zAaa+WYU=;QkZf=irRW5Uf!4>jNfuXbp48xE3nEcN*Mzj63AdJB;?b3~~obwZhwwAwmKAXwa z^j9`zA+@toqh)p%(J@fR_oIGyW%PsPjW4!zqkzDbB`#Zl4SLqO4-m;EpW zcJZ4M+d8CY_N;v`>NUyTxgX;<`iKYTb;5G!b1KXE_MK9NkP|Cw*ijD@v`0a{;xYDb z*j~`@CmCdv$F$JK0#B(%xAf=GOu2vhi20FS$jwjf7QN?z7lV1lXu6D_1LM^8_bTsV zJM`+!lj0Ot%E(!(;Y?CUG@bO_?1jpqu4er%ACnq(RckqKak&|`QL2B$cdp@2G|~mo zm!^ihb(L6JHz-Bub`bTCuQH)>75W8K81pS+akWsk?FY(a5Tui>t)sO&N~~hR2V~w& zyH$tUny6ieP1*5Nj+{9AKFL?OPRDi{aeCs2Ix8Y4GQ)w0^f&tWBmBvj=NGj9;G=o2 z@+)_qKRS_3(5Rr53>NUJz+qJVXmUC5Y3=Q4;&+&5&HCob@bwU&$`vXE=jeRSK;%k{ zI}F+iR1v5pdCDYU2!ge<4tqldK2P$ktSKOW?Vk4qCQL$(`&{SP?N{-It)YPAD(5-U z&E@ikgF@BaHjEDH{-^;DcdQ*oL<3x{-=5CL83);B<7MX%3NZeBAbGbO^(YcxOv8TC zzhFgwuTg?!60I@yzo=Qa2w~_ZE70Gu?S(MCam=mE#`F>k;w}#1j>~x7k_F>Wf@cB4 ztsTy*MuAa#vQ9Y|7#<1V7-mJxk!uX&vc%o$K{16$u^yuXQOuC>qr1M8HI9~6k=HCM zI$=fX#M8b1G-FSX9F{i{qu&;~m7AH;^zCTPd%|OgZFSUwZ|NNE0U`FwfP^tm$ybTr zgDC2YxF=Xo0ol`ngtzQtCd{wG(I+&45w6bi$M{uhcnyA)PTlSCYm(}<0sV*Ig|(OC zmLL39!s^(oE9fB>t*EWS!Lj($!g2|#>+)1eVpx;^nN0!ENMbovch;u7r%9R*DGTY0}U4q&ct zk^}p*8|1HNEg7@ENjO{n`|46QsTLdgRRR*9h}R8jtf<86T~qn^An}GdaL+l zo{w=;W<_eCFr(Jny@IQk$z8QJAFnzF_s}uq#;L75ic{ZhuO9bTy_x!jQj~AgI_d?$er49l$wuK)KMrF!3zmOd!tH5W@!x^1zw;jz{aIxMPNuPbhGk@ z!!jdHVv}w!+jA`UdUfOWs;(h3lhZQY9lls@`Wgv_pII7cP!kR3%dw7E{^iyWo8?#A zmlc^=c(PN64X{NMK{dkZ_Nc3mE4bCaSkk|D?6Mrep&C!qIG`W%gYj>zFGb{}4!jb) z+y{cZnv8DwI?4e8i{jov$-f(Uf0^2V{i3K>wmjN?uz(xgc6Mqr#*Z@76=I=L2|1lY z@yw)FoPP8TY_C%?1|HE4KvTO z-xr|yZ7I8Tlw>_^z-R`%-y&5O>n3Z=k8pptgz!-*53NDZ(7|uUgxg0Mx0jP&)7)1w zr}_~FcC9dH*1!~fz41ufse|*)fg_{ur^)PW0S}m}0M4-l$sjEfasbm}ei{eC`!G|5 z9b_oCw?Y;fLYw#Gg}C28$YLn!@rwkG^I#b}MPpc`FS>vaKIyv|0`^kmYh-qgLqJs) z#OI3|TgC;X5!{IcfCR_$MRRZc{NC=&5BgX1GP6d&nPF z=jA%`PNZb8vHEjUJTY(yBa~)m`bs`x)D9tU@+K_$_hN~&RWUovBT8Q1mkN2NDqqJvLcHj#ELdrXjh5KVCT0H`N;I_W|Z|T|RJRv|%KY$qD ze0_2=3<6~<{$!$VhWqkJ6MXv1L(vL(fAbnx*$WF4`=K&%?<+Y8^ zvWGoit+^jkw2K)=5qmj&YE2zno#}s})muVhGleCTZjXhe!6nRXaU^r#FMJcAO#bGg zju>R%$E7s zuMG0MyXx+Z5bza6^b=Td!#!_HIRTxlZ_BUL$L@bc{0}G1*7ryzfqTaR8gEhkF^k;* zx7B`m+cpaD>Ba?E`2%!x&-ZjX0R6|jN&2t8+ZpTL?|g4L3NS2TP~EFyuB{QgIu8f} zB8{CMF824y1x+v3<}-cUYs5sP(P?{f=F#eON*&=+@+8`ykDu-~6s%TgWAo4*`9x2* zR7Gl@0mu_M7a-WW>4cK}@DWhZ>~&y#IS<#{$YQvghXqEkGqZ=ic-B6~8v)`kCPEn1 z<(K#fSk>^IU#XTtdQvFFkP8=hT{G{7x3RguRBDwB&a1n+zq+*F*n%hS!{(__B zz>#G>7we>PfWAFGGF8n_)G`{4K-yf%SZc#OjJNZ^atpSUas7ET0V}j89tDI&H{nnY zxL`0J_GVN0>Lixn>c_SA)@vZ?z%%&H=lTOGf~(5W9KHm-B5pUdFLm-AWdxlOrno1X z6W6JA9*UgP(8@X*hrF_Isg%!$RQ107mHu|D!X`m=OS6xLPQ5W!E6T#b63_XdFEa(0js51SK3Bcavbln?b7A$a~EmJGqQ$g#i|#C5h}QfZ5@5K7R&*s z4k6v$cWU~Vy%(sKEXBhfBz@`;Ix)YAcugmsu{dX=xd1eHym%h|iKLhCYUb}Q$s zW$pVXanU(p=STL$9UpAq3IS3VqCE;5?;`vhP2Fw6J8=FMAmDO-kst9BIoL3X*e>vQ z1pKR57*UuU693ZiUd53w{u`JUrk#(E06vSe@AdY3FijcbHyRk_0>TJrVv|u=>ECg5 z!3Z#SIROUL|M-LuQ&**%fdCC**&{csZ_g&;_6{BshmTXNbhTxEb%3t{&a*}+zV#$f zIR7W2A0xjh=-!KL|L;6;jf335Z?kk>?b}-{{`3Xyj`QLQLw7gpnx)YvSHfp4)0b6E z#EDQ;xelvT`Osb4w1sg~1*vRLw}qt~$Q;j`79&zJ;8Z_yyM=ismb!lN>2=e=XYwye zFyPt=rtLX6l|Ei-*{3pPIfe;4ib7NZq9HHNPpB1%w!ObU#~-h7pYqAxC8cDFxf`R_ zvWL(6#}V#PJlyk!2owErpFX3~oZ&Gr`AhHxtX*lq%oHJ0MxpBINiJoBHx8|`p>hvs z(&L0!yI=U~0K1QjI711vo>)abfS3mO7CwPLtEdm7voaU4ML`-o@ucM&{W_zE+P z#53BAaUjO#>rT>o%WoTOh7?;33!Gu9pwxstnEJ>*x5FCuyTf?9Nee?epJFPVkf7py z)ui`|bV3OO6_>*u4VjhAWvkPB{VgC~6IQ=NIZkuY?q9fhP#$;=JHLI&p)uZ>w7Eg|&(PA%ZikMc9Q&C7d_3<~Etuz+ zw{IH|26(`33sRXFRlPT<%ty?Pqd1*=2}wwN=w^XKc&HKy^;a89eJSHQrv$b?GGZ*; zwLs|6?}CFkEFMh-U{&(1X?Einb7|Xs39!lHca|`2gf{?13>mSU^@Zu(g3um zz0?i!?Hm5_j$tA9j@vMdYy~k|EhxjYdV59~%0)M&r47+k6V48#YKXgn~0(qDkcaXmsqhR5rhrZs-;C3jXGN56?h9z;47o?Bj_U7C_Q|wWJXQuz@4YETTZa*#Yq9+8ltBC_t&Dqi0%2 zm)4%iH9BanfbK4g2ow0N_LD>paJ0VBg0NguxlMN=G-bnFucK^Qmw--#L@yLycZUD! zM6|percxq+a`AA)B<|?Ab6lWZ>j@|Al16$}^0!3%Z(Gdo(_{_3sjIpHt-k07j9Gf{ zfPaNJ;E}k2R3YT$euVu|Z56wH`)@`Cd)*)sFFBhVBG@rbYd;(zIPxP$8hpmGl5Pi< zyfW)Cf86IL_`1lt5jKSmBKjwhllx7NXp1ldHZo&F6t!X}`owuIF-Myp`6vNzq9g4O z0_8!y#W)hkP~W>c_*-}#bYNvbtSN6tTebi5v9MFj=!Q@}YrO@uWx+3i<2$KtsqwIV z+m3E)^`H39L|R=T_IW7JZTT++OjqH5_YVFy(T>CN2(~u4>l84>;r^|v9~^yWJ}017 zHpr$u=-u?P<-uX(Jmz0?+a*G7V88t7C)6|pF{9VJO+rF@ zt(S1Nrh}{o>~;JIrT*fV#6%cf0jdat)0e!dFRm#q2;ZyrKfBYs#(B+yGZW@h6$$v{ zzyox{|CJ;EyHvrd!>=#K;0ewM7?GvypZD$n1KVo!@1qNqM2Bq_LgToMuXQ(pOVqgu z&PR)ct^6>pdkko$>860fV>eq0lDcZ@HffZ5^ic~_-KJ7}%UmMcy4rzT!n7^4iJX_L z;^sP*2=5Gh&pc+VsYsXyviZii7LeClJ~zBAxns(Y$u2Q_$_wFt@G0mSxK3V{{_{@& zzOH|o&Wu#|=Vx)2Ou`CS9!!6&7H>3vd|Jl-N)dl@hXH22zdM}3e{-eBX!04g(r2%% z)*AhpXOv(J_KA-2VQxHNpo^Ig(tncT;648)nC>HVbfR9ns&T^4w0z%0r4E(1w0DS46Z{OaJ z;M+z>%z29YM$ixPGcsDezmve{j{vfzG5n|Tac*oa-W2<uwR|;0yUigZY)0kdUIHAHj^(h4Y zZKkdHj}mJtwo^bipjH7~?97J%b*1&id{X59BkL=}>e`h+7w+z^#fn35EpEl#wG=CE zrMSCWao0j|cXxMpDDKYN?YZZ^cfXe(>&wc{o+K+{nItp+b1l^Ygfff8cXYEheG-@k zN}2WCq#7`;51tm#3&-JRKR~v8m;~wFSL2&cLxmZ^epIkLAf&(o7i+-47<($6eB!&& zz3!ha4zCwDYWql(7rp4H-2Xi31B=rDHutwL`>MXRYkztF|MQtEAzPt$LF{(A>#u3q zjoT#BqW_Q1^QX%o1rUTag1%aEtp0nS zG5gAely8r<(a4BxB3wD+7!GVM5E9}Gw97w>5Ki<~7OYFPQSu+IXRMPhr|A>fxuwyyJiW;=V z1Pb$r@t-9es1uAuf83fB-z3|Lol7-+i}T3TudLkk-)GI@;|lw$$o#L9oWI@ouyG-F z#QQ7y(qg>qZ3OJ5T2}TZsMi9S7^X4T2A$R>7kO>+|E@t=?46ks#?@~?;HOdCH;5Qq7%{`7CA^4-sq zPHDdMy+1tUv-}{#ERsu>X9n{x{!R~y9a!gS6W8|mRH%@+(IBKFk1yqM(I|#O)K|+B0FPlYj-2g3~*5- z3*@6r`d*WP=rA>Zy4P>=?w!*9g6fhZhz0+DJ^sHX$FQs*r(S=><)zy{TMwpV@$Qyb zXW{=a?f?Gw)(d1K>nTV2hn!6(p7Q@NdA{8~bFwweNstj}LaR9XMEj~*w@cWiT> zPfdn&_DjzuAEa}Gh;Yl1?e77^QE*SZgF3ovX1{;Pb1a;@P|xg)h+e-s-GL6^$GurP zrgzq3Pv0*4DuO-e{Fi%uUQV-u>$@jJI@Qm&{yeZ9*ga6Vnr(ElYxzIqeT)3#-_=dZ z?HB;OzWkEJs|5a}lZ_9;>5UJt8Q8G{9k6`OOdI%V08&VNH~M>QJT1ltTJ`&k4hV=X z;%<*fDdOpO{CL=`oHbYPZSY0f!NZhmuB`X!Z6Y#g0zc(mgg2<8^_z6Q8S_7E{DBRg z=lJRV7C@V2y%%dy(?+w`ZK4h34w{##rx{2X*0_BAQwdr)ikJv&5*mo#fb)Vun|{j# zP)|8H_Yz4b004IkfM^7TQga2+A#CiT|I`NnunYiD>4bW*^acO~g?`(=g*o0sT2EC1 z+3&WB+E+=T#a>pGeL4&P$g}ysKLfx3%<9`YfRvF8dKcs8U=Y)P6lJsJ5=-O20KtI_ zVS{bm_*<1FO|TUVltqL)pfjoIbyk*hzdP)_E*7Om+8+VqVMSu0k*4`u^Y25k+7pJ3 zr#qzJ5?Pui(+^bEV1+P;&N8_Yat?X{uenjevH{%*U0Z=z{jKByUPZSo?s2XV{ANoE zxPIC2XZzmsLJ?Y1@_}eH>Kn31t}wq zS`u}De&FK{{sahn55BhjsV0{Az%}h@3vTLTnwD2b_CyLOGQ*@6p+}~8!>qo77mtx_ z004w6q*)bv7b>?Ru1n`vU++jS?_|g2$wd zh&(g^AN4)+{!?1-)-DXsVZfFD*}Vf}r&GX2c^iypLOco}pi6qYEG7>Y1h&f$EOm@5+GyK zK_ejE88sgvb@=js<_(^*9X`b1Coy7% z;&7TbuS3hxVxpWcoi+(&&&|p&$cWVj06@W%6j~eI^lurT;FGme_UQu0BYw)hyIxmv z?VuL`AUZ)UU{QqFGcmX^ZGajBC5Vc;{d~IAXSLrLRg}N_SE8sD%ZPLgO%|#3Sf=YY`f`c$$;R~V`;8^1va(ND4PUsIf06=bjL#c?) zp!y-`J-h3!`z9JEQUp)Rf|Uq}VVpw!&FyK`Yqch8rL> zS~sJs&~IK{!<2ZhCD!o=8laus2PD$~Fh-UpL(TKl-u9i%A%y*fs)F8NlniYB0I<;C z0b--`9FWI1q1*{=<4zyRA2_6=GUNMhs&Km&hNbTCb1vq5T)l_s}4}WL?0F`IQbA{=Vg1PipzTYB{PXGWS z$Uli4m8-`CVwOoCEWTl64<6|gcs+<=;ON6xeLqCqBn{aG01>v%7-p0XrgHlgqI_4( zUnga(24Lm)pg(hyD*zBWlEVq!__3Xpf52e`!UMpF*E|7h&=N^*5;N=wPl$z$ZU5c%GaDxBz4%@dC|7fm1A{MEptg&KHJ23rX*Eg_>0ybL#B zl0Mo(F&PlW!@K2US;6-~FEWMKe?+G4b{P9iQea6Q9VY$GTXgjMZ{m)nc(si}i zAb2ELPyq}nNEVG`DSZuw@3li{2lH6Ltc}W$D~g4+VWtFD!EtvR$*8`0twf51kA-fv zh?m*UuEXZ)lVip#KwaIXPMd5nsdogIy`tSNnH zn}ru8?&SvnCb$z*eoug&6@L@u4HXA~b9aFHBP_9lZQ)O@13=_~-k^P=wxot2ZyeW1 z#_p^blneIqkc$BDAqKl=FjRLGZtXJ29}RUFwrpI+p$W%4^t=W z?uBI_eQNJwLq~d?00o#UtoTmY87g69}23HEDcvT zg~%o2MV`ijG}AL>Ffk~KelD0Dqy}ZgGETDRb1koYjiv94m^0i^e6k=NkkhJLAa?&9_nP=-FGuzD3dJ$BJ1;{MsU=}T(ub>BQ7=_5@`pgt zrgPbL@2rA4L~=!92Z{tYb^V_K)H&XH(}sgG;EfrsIXoVQTpz4Yn;OV203Ei?sbpb~ zi99VIIzwYWE$b9J8>A*1NqVz;Xry@DJ7oYPmDCL%wz*$zy`6(lmn&4$HxrE_LH+<8 zA1Wcp$SPgQ;d^!OZ5fN}K%d9zZaUI*?rF$=M4x`wJW^f;E}5NE?|X|=MX6a%@g@1J zW) zq_6-$SVJv^64U=KOR7=OR-X8<1%QGt%>y89%~fCbUH~z}T7w0n9IB~uo98H0CS3h6 zLDsL|2%z# zZW^3=;mGAa;P5V#{T-mhX=MT%JGNhse;VxCARmf~ceLUp<&z(-34^vj$Nv74z z7xXs0vwFk=40$erX-Y&g83-Qioqb6}hL5yAW*1G4ZP_zpw&2hnS%bjvvLm;;UO(UP zQq8s-zR@O2CdUE|KwHFs)mSwUfyT@eO+>r=VVxy+Fu3@l(JERBdw1zg&+{cM_@sR> zJ74|2PBrVG&>7}k*?gw+Oyv=EPU#6ztP}mo5)HinT({k%|M{Zoopa)s!;G>e+J`X6 zO9V>S`*}Osb2u1pNY0Kw^GpaUlo}9GG8x>Io=ifnf^%5utr0F-a{6OheWWpdgFG-u zk2kC-pov8zvmk|JT4}Yg-jX#N(x9LUl1Q9Qv*sLj>@nLY(hvPw{oGM&qZ3hBCN%KnKY^>@Ma z9!};JKQ1JtXYl0;J=JM^%ZK`MfwQAu`L!){?;=l;7FEtEl83)0KC>b5dH7FMs!y00 zUu<459fV`}OWO_Iwp`s3DV!Gz*>(Et>~jSxWXhwx>p;rfeOGBL#|e8gpS$?WcP`Sd zf2x3*8DLHZ0Lm^9pQ&aQIXhrOG}ch!|n&3D-cBq#DeNje6IT zw}$jb>0YH^L{s*u;r8AjK5jr_%ko`^R4I#8NB}+ucFdT=m^7q!m2JwZx42Ms%v>fi zQSH>a*HlIn!8)3S;?(y1yun8$&e)_D-u-7Ev$ht;Py!Vty1ccC8xe#GKhc-$9!~J* zVmvN^_3ehFPi91O0?%VZd?I9ge5_@zv(yZP&+&cndje zNw80|0gfqr||RO+Z(Zu-xT5s5ULtCe}51C34l$b zmz<~-0zmGfWNbD%G&op|9QJP|vj7q^FNnLSHrOL6LGQf|#Ks$kz;^XPw#5cQI zHCV1Vq1Z>=aXeg)5WI-Y)O=s7y%6KifvCYH@NN=AgHH=b`FW$+VuF0icCWdIPo7Z{ zV6Apu1M8B^y1ks;Z7cbE_iBqn3D8I6*Ca|`;639ak*CG&1Sd*iyyAlzZ-4E5|GI#! zyNPCS{?>cQVs(VSsb3a-yx9x!>m^0Vdf#@hm27ZGk6vrIkDf^nMrkFs$9`97!)!t- zI$9MahJGB+Ts18_DSnk~E`(vOjlqtw=NH@xanO`+$p(Y6k7q`HceR?R%?v{7M)hMK zuF`FZOZ4QAlU+trYu&9kPPJbc#n}C_*diK3cmX5io(fo+Er<$FSkG5R<@8xkO4u4V-wt!X-&^r_4(j(L{ zBLMT{1f=X>qIIQ&Uek<649-oMfnI zOcrn@+3FT1Do~ZYbz|NW9(aGqS?v`Q_0VAvIK6@(nlPS_uLA{v2{?;fw+6pExt+)$ zavPi^OmD0M&)b2K2iX%o!mw#eT|U}ZIWo4~yysTiN&7xgvV<;^FLx@%kwa=7uhr-x zJKDvekNkY>AD6E>^6xd4i{pxYRv` z82-@ls9KAc#+dP~JWM?;l-|Wp;r!AdgI@{fGdQ$bkSfylLnVNSQR%Iuy@~#3xdvAJ z=b_T-eoxV<=VAkVmeL?Z{Ic`1G}P+m(t6*-G%14E?!b2C6>LQpv?zoiX+8nKO+ey- zl+Esg^E$s_;xzWb0m4KS2o+Hl3MG5TU$~0NAJ$9-;`53i9AjVoKEYYhJ_wm?Fkm7) zCE@Q?-uHfLg$|T+u-;uYVxn?i)e2L2@5Xl4dWQRGuTIC~wI|@*_Mwq~b9p}c6K4)1 zpx(yey5h2R`D%DcXFpntW_69xXi{z-D!2hF4s|wO23uUaclTq8%2xzJSjtMNXm{7*KsZm2FKJ_!+qNPV4?j0g@MqN ziy`B!&S#6mjkM9dTeI$DRfkNPBy@fS+SY7~(&EQsJVebBYX1YHdjwN`6PA;O{z`C% z+xnrk^<}(Wwv-?DQ%oH4?B_Lh*z|j*EXL~T=~+(#{rX%yQmA3Xig`kjtqtk?cpW)T{{A!(=VGl z0K3t{LNJtw|H>OQSAP-=k4tY0n4+hj_GN;1a1pp4qc9IxE}P8ydn}h}sayiFcni;O zpdd78UK6Mw`_;W##<#gj{{UBDI?iQJUyYD!@g%f%z?<#%!~NYWhN01VOJ$xpTFx3# zZ%&R5Rj|GW+0N@x0@*^37}_r|4f}kw5^5>IT!|q?u}n=YiCbQ$ukZV{o^*o7Jk3PG zEmIKb+`-sgEmce~-gE}0M&R;LYw;y$6^fXP5ztW~mgjkP1=xI^2kj@+P`0gyCM-2_ z;XIbeG&A@mNyA^@Svq20*rNH0ng>f7*Qt?N9SpLh9Pd8fN?0W80aTd;3twvFDHn7s z($$jzwBM-)J1c5&y-)q4Uc#Q09~hWcBz{gTiMPyYS*kq6g|u3t49R-U4KQ-ZAH7sm z4vtfnA<^#@MPJkk5d0{OTiW^d-V4(Zr@~c8Nm=ZdUc2@zLOTc*rp>eU$0XEg zE_G@jy!-HGh)Zb7VY9N*c}s0RWA*;_)Cr|^x3w%0YWNadSNC&wA+pWbOkF35=SNjn zTwIBk0MAHpk@&~gUgi$N*+$@_>jhM&=gAKf1X|+kos@tWS16nVKYp>EuKVcd5X;TC z#tl^(Z(>K`Cy05U_d(N#vPwHYtVi#oHZ7yMBqQ{(DnsxTW@c=#Hq&J0oRUySE-^kUpIxdn_SJ2*E8!AzfVB6}I zwkTI3O3d#Ae$P-%9pBK`BpJKJrmWx2jzGO31VgsIQda#b)QazDmeob?Ajir>| zEZ?vX(ZW|-NioWYhubDGhuJkrxdXDx(?fpQN~=w_NvaWspJqXZ^!k?=Z!g$^0jRVP zKN)DlW$|Pg-|EO;jaY_?xLtTE674b!n>giro|Q52l5-Mb;6K|Op77|B1(-WiAXc}< zhTCU!C{H?>#a1}BKYiI$XkY(%7WHQ?|0bs_a4-gL;3?vr!SwfUP-pEB?VVhuTtLLH z=-lBtwez49bHJ$590`$B=bM#+IIX6Et>|RnxO{B{W&lg8bJMK?lDeO)w@Oej&R2H#>gSQRvTQ^nGK3SvY++$R0gx^4CaD1p8JtY*Z#oqUF zHFV$7_y&@bKewIWxvgfdRhvKC?BTJOi3dr2lmxH34=tk+K0apAZy(Cw1;yza;NUCKN)EC(pauA>2{HS!R}z`yoA| zQ;N@T+A)xMw1`n&2A^)siv^@`5Eud)0;*=jpMLJsu>mnRypZ9ss17Nv(atyQyWPac zfy8$FsYl?O;T>bHT7`t)-9siJaa_WtdYdh8%?L-03F&SX>2{!oL^1s?!?3>B_DLF@ zSVEy&uV<3YBAiJ?eGqlZPwHG&wt0!{xrnqR-CEgH>&%}a(n5&M8M;YK2qA%&80E1d z6y4_m+g@tydMsg6m!vnbd0&uB#_`K)-rg*I@s55aq|OEv;^SzzIX*AT81CxX5^tg5 z^Zvj+>?`>{~@U6N0#p>A!b&9D*hk=56(cP#TmgHxcW+G0zh{XT8&1 zlIyUSz2HMs161yua**oOo$)cB4jdeQS6T`Mk983|%I|?S6sklY_R#TnQkzB+q)RYj|7;dg}?yx==eLUBS6s0XZlpTlJioyyxZcMIv6ZY^qcdvzlYc z6Lx!yXIT$>#qC9`{mCcD@-6$DqD~Fq5Y34(XXM`CR*IjG%StLL##gbnzuiDqh2LL# z`$go6Jl{}ot3_zk`^=DMduQou5R*~gcx9PAyYZRcQDAhX)v)R8>`vbHRY z>wBiqlWv8oh8A34WDu*0zY|w3Mh|H8_F!V6u1OUB++5osAUm9Y^xB6r#f8#J2o~62 z(8cU6`NPN|V!|&t4o|JMf@yT6tkiOAaFnc=*qBEv(X)A!)yk!-Kj(}_xc+)4Pse?O z@Hg_)Z<_;h?|1!UW7J1Dy-ia0Y=k_7^WMb+n~L|+6|-yNG8^@nA_-tP#N)V|6h^jZ zm3py)@XR_oew}&_?Q~HmVUWoXA4D+EdR!QWylbQ4bt*Piku3>F>C-ddZmW5R>SnKS zrOSAU_M#W2XXVwzHOw@o7K`7H#*W$(4TC#VD8CU5)pGj!hdrlKKnI}(3#fO)ch z>5Id*baPBFz2?0dh~2n1Ta+2um~)f-a$F1bEa+ewgB&pZbpxA6*Dj4lhI`cnDRTCN zOfB9lHXyBo)W4*1tv`@DP~#CIdc@$z(D&bhm{bV^maiQ_>e64!^$WCnl0GcKFrusS z5yi{LxF3Y%NFVx-$7(VEZv7%A*WgMJdkK49e_o9BYMfsmxTt06(K^;9H0U#3NYt`D zONw0KolI}h(oI}-Rz^9vNxaL~LovE)25S=2_Iw{Ssjjc{ExlBheS@Qa?Cu?x=RMVi z1FA{?_Ldq*C6m136MBC>6V`}HT14Shl3*UGjP6%mbA;+pq9A#lf&_Ig|DQcbxW3=v z@g35L2KmN)*NTQP!ku`$zaPn8UliWW*Sl{=8w?N0`-;sIcm zVoH)W=g0&3Z9s-I^BGJR^H+t8@Jpp9-TM%(GN-OA=X#7Un57D|r)a4A5|qs;=^7aZhaM=_{womYhPKB$hwQ3ka?W=eU(@+;0iGJm~YR^$S+cZ zb2O~2a6VnwirI`fT0j22>3-M6q}RCPf-Ju^C-_66oxn(OieW$nwaEfb0#WO?883rT z)cmIDi_yE`!`AgP{!7@;wJ|TVXLc@@$M1y7z)E@b0@~AMys64PZKeqeF_tzYtJP7d zUgT+)Ol)=v&J8#}L2#_4rW(Af5l$RU&rH+9;4dx@=A9kZLQ@y;&qW$jyM;O4Xb?~P z-Y9cXab{P>58ni)DQ6X_h2jlPp8jVs21=s1&nST@%b5TqLgQNpa}Z+==8x@-8(dWl zQaRiZ2z=n7_z=3_Y%_7w8$hfB7zN7*B-iQ14P=+TnIq0=Pw$?!rB_Vlx{&%)S1Vn2 z@sDCmx1~V+JWfe+T+UpP<1*Fn&1`qF$!?xkn+G%3GEK)eZTQk*S8d0P&+&`P4Rx4i zs+F>(s&foZdw)<@ea}qpT82(R=L-d{_~)ny~)cl zG8h$6G*#FFOF$w>#Oy&A9tkGcD|W-drxA;`3s&r59{ecke2dkzK+xxCIK@qVn!vNT zinln$-=_7-RGw|89?8mKx8PP5SbO`HVls~&d96@*3X_n4>EZGA)t zBF%pJNk*ZVcMrGs&-4TCWL*vow6p-5|0kr5{sv|(*?!Eh!4*2=D$0*(=lBcB@8urq zlEq0uvPfHS>0n7ZL!J@>1+36rf;9of#B`bF!v&^*lP@bT>%*$C&efpPQeZzek@3p3wB(Ruj7 zw6*LL8Es?gDO7p#($!EpeB9~7cr2dlYx=U?43735UNxf}8y)0ruvH%F`poZcpVTvu z5+O<|o*c(|KTwS0(@(6Gd8R_&=fE{WD~;93fWJv`OQHII6PhoAc~;rcLE`w_w7>c4 zTF+xOi6e;M*HDtLsx9+u{=)zBI@F>x;PQYNi@dd!vL};ge+_Mqp>YP^NL9O(^YMWSiwaHq8drPYbzM)r2M$Qv3)vY;JlJ z?8?Lg)YJW7w@;c?cXL>cKI}IbZ|$xd1^Sj$jA9kh>%hj(Z9xX)s0yZx{-~txPZ;>r zn9t(ZU3laAA?tf3wdSgn(i#ON`_49oi8=D1>queZ-lsC9v#?eDBsn(o25n8ts3bL1 z>pd(mXNL_b1*6<&+SjWitAzfu6H16Yp=MZ~6^DB<#Dna?PH-Z`#iXJ8`YTT(eUp>X z0X~--p7_~EVqqF-8t5&B+6^4%4PY0tridtpVSH-iIk!mr-fl)_k69*$j*S&p7SUU# zFkQZF0=f3gR482hgaFLnjUmvs@#owO0KmkTB$>ULxNm4vf1-}<1-Zx!4xSvq5IP|~ zx0@kT$pSxIvCfjf1U?!~Tsz1fsZxc&5B3T#&gvTP3mkBLNItM(%Mtnk3*%99B%1&E z80^COcs)_dNKfq{?nM1H)$%qQr61fXvGN;^ zHOMbY=$&*!KstLX{9Y|uKqT`n7j(4JI@WqnJxi@+(=6({unWuBx;4*gh0iY-TU3%m zsPLnz7(!KO3l&3?A?Ck^;<{Zv2W{&g;751*jPHM}ShTLM9>8FQYU6+p!bUH=fS;73 z+o@t*Z%01rpXkB(p|eMio#qs#T}kzg6ktJ$Gu02lA7!z^Le0KBLD?-zo^aeidf+Zi zqhbQwV84DEcogN`#D{YdC%Vxw^5~#t+mh7JYlpyMlc3tKIlEDb2++ouDU`lspwHW4 zC)9`|kH4RS+s3{u1HkO%XpTH8!i z(LftqcgJ5wrQiW~H_64fTJcPI_goQ_;0J?1H*xF_?@-1$D()`lyk2x7eGAhl%>G;; zu!aJ}&!e@lGW2&DWPb=sy>rN^F0(1{1o!j_A&!#P>`f4IeSi23;IT)-*ylPJ6G|J>$HcDL63?iJO z($en4L4v)nWyL{`#RD#51i+!Rj25&Y%t$l|cId$dBTI^|*8 zFOBUaeeA>I1CxuUX5j12JF-(gs@jtrPl?F%4yY&&7_V@^!}|?21N7#FHLJahepHCpRiBPWm+JF%NPC;$mQ;>?~lS>mXp5xZX96V)-fM*JPrLA`Ps2A z@Mm?*t3Loi>D+(Ah}*?IMc^x2aoG=@rT`#8wK^1RLwA0!yv4x@8R;fX?kc3V4RL|J zgj&|pyAh_;&8;Qag&{G6*+SSW1nNBi(K{SMI99_C9@uWr1c9C3PTig4uzgFgse-^>HhI{ z-X*9j+8B@O{BQSdXmO30p)I3$66TAXW1M4Ilg1bkjgEj$GcC~Sh=60yi=@mhwf==X zjthMC-EM5*qSS}}F5w$@n_VACBh7EE#m5!uYaOU6G|=rja7gjc{kY+2kxZ*h6nHjc z;JUQ3tY#a#j#4`YiCYmos+&mOyb{s{(0Z=#mlh|7g;||{%PLI-l`J%kwcbT-t{IPC zZdTx#PMq0IUwSZ*8=}ONJO*3F3x25?jlZNx2ct%}N!wbBx4YBD*t;q_BA!rn!ZB)f zQ5@7{_nXVv7LURC*hx>w>A^GW{hMS4) zt&}f|q+L|Csjl_EC20pH%~rIk`Rar;4L$Zlm+mmmifCfD8!~IHZgfoa8*zTFGM)0o zCE9&c@JY7Ypnm-XPMu;~&m>qPaYTnS10mpD3Ub{)=|p1a)#CVd!+Y2Unh#6bdYs%{ zNhA$3sHMEph|&|?x~y6X=7k`u-ky$KE$jF5ub(DZ(m(QRp-U3q^(Vn+BS(b2v`yq; zJKSkH>-j3ZcedjR^6;!_Gan~4D{McYYo{x(a{c5o!ODy&2z|YQCGZz*!E6E?p*|V{ zK#T`*G@7&Gq*PFt#GYo5YC=E?y0HnG0;=~tszIpdNe9^l2a*8wd9R>ml}oA2&6Uao z9GJ7=PkAJs>}3rS+!OqvZwX0e4?&txXd=R22pE`OY1)McN((*HeWRVwNqZby4_>j# z1;~$7FWPFH-6c?=q0L?+5G%ga{SxTzbFdC-qzxZbk(2;lBj~YY{l&c)o11aUk@PCr zpwAObcJyxQcdt~>UtFiy3V^{*oe5P3}ypk1Uy1?E&iRuDo zT;U8|b20mbO`G8Ta-&|434Ej#{Q?Dk7cqb#i1u+j?A6xQNrl&e=hGVb9;m*m&`&cf1`#e5Y))`c6vR+@h@arPqg z%JV%sQ-g42;m&6o2b}78UjP@L&@t{eW}@!WI--r^C3|;ySpuD+YZMIDYr_wU)N>u& z9)4j+%~TPD(I_S4YN$2>wGHZLf}>ehJ!W-=0NeTw-;SYS(2^?t%lBkbU4r0c;{7nG z9UO7{w=qE};yBc)ue$!!n*F*XK1U}l8Oq7Yuf~0=k%0!aWme^%P-bbZFq$Zf!(<>b znZT0DL=M?2P;^4S3e}&%)Z~bS>xl3=>v+*ze>kcbzM!U3 zaAS!9a;87G=Ux8sPaJ9(^eBj{&gQ#+jCzKKHKmLBesvc@RTjL{+qdt-z1<|*%Z zD@V=~kU{HI9QpcAfggYz4?zX77JAS{ds{R4SHsrAvTX%PdnS=st@f#C$-dh5FXG^859(p1=Qz1 zn5wvkjTm`Lo#mjg zAdE=D@BILO=K}C-eVQnEqDaSA7PAOT9yJy&c!El^Jar%-CCH);< z*<}o0WT)CvQVZCY|Cl{i5SXSwOd-~p@}*h< zgSwEXvy~XzL(*)ua5K1ZsM`<4QMLWsY?{xDoM^0+XSo_^%HC#tob?p)A2u zdMv^IhA(3fM<2&uho1r{?16DYKgc_aDo!g3`NL$p1Y?^^C-HS}8U0KX?#h3(AhZI# zk6gyhjb`36d5@*XwG zXf>~|;C19KLx5&V^K_{iJ^AV>Ov$JnRLqnmmPwiV^t}W{|F;AbDKB*f@3lAg zZruKcj`el032JZ$Do=(otq5$ZON66!e7IHj1+m!cML7tdsO^Wljf>0 zVJIA>_WXWy0OTcQ;dmvXpuD*miEbmRW61Fxq!Lh978DGbr=t11;%oYJ&Lb+5RY73< zbe$qE+^#vkd9SzH6*1(HOg-)qw>L`wG<0CZCQU5j@x@7UDy)Z5YxFeboXra^=%7+* zMh2F9WJ(0f1PXfQh)&IfsTmfA_mvQ?cD`?A&p0?i_%Ly+iJwSqpji#cw>t3UCvR11 z{^ZiKuI%o|<+hJw*nD{`v?L*gFC7~2RBq^xWXwHnDt**Rm~kCmu?{-ej{$WlJ=O~T z{3zzVGzZYg`9AmsgFMIO6I0=YzYbo=Q5NhJr!XPn0bk4TYxnj<~2lQ-;;RPVB{*zZVevh ziVcPvO4nY~%86XFBO;S#G9SvBv=__{u6-3K^{Vfnq*sRw^Zr8vU|jkVjG$XI>K^@Z z`R|~_~aq;pkR_nO*A_f-876KeYRGPf+k`@^9oSb}3QUGdLjbrloW zb#oe3wMxIq-o{rLkFKb|z#O?8ZmZuTW)B;DlAMNQhc(}ewi^{K&iyk)EV;&>BrE43WjN^q%lKeghI&`>T^HG~ED}ir zbfaBN`;%D+=oYJ~CIbT*eBbCnv1IsC6# zwE|qaJQQ6piswH(9|{v%aopSHJYdFO^fThfuOArdJ=AQW)x^-y{O|k0htR%)ZzVO; z^9}8U{DK2F-GG=Ch!-GdV^J>x-|y;gvav9w`Q^pagp_jR!}>v(VjxpIgKkz1?L^4%>-Js{D+F)@LC}YH~DMLC|!b1 zxegJq*&4bTi4@L?HdQhP9{%&Op(D00$a1lz551n_5vhtp?H=bCj!BkHWgj+=_dg6p z9U)jNNK{`(G!s#4CAJn@IB?MdOfgS5r7K=SnGgMiIifeeE|RM>k<(~j4VfuiW{3*4!e~pRjd*kZ)w@&8u8&Ur#63*$M_zcI1eGy0m*lh(-7~@Ln)7o z^yH6r<6>}SWQHl9`_t>{z6Ro z?(QkY876APA%m)iSPvz6yL_M6i`){o`V{?APe0?%7veM6>pxTiItN190f>mpqIW-P zMz4kXSFCD2f1vv0o7Ny49FtS!dwMM|4crUWcoP*>nSjBmo})bg@r>o6!Tfyh&Mteg zM|>I{Ry{&cmX2CAE+Te9KD53mf`0*po&QmQ=Y%bRxD>`;xj|+kS_3(&%C~PgA5Pkd zl!@!Qe&mKqQyNV$Wa-LkOMF48<)}g6G|R6MbgRA=h@)iZl4=^E$bOY1S_0#KoDyb( zxngYY8%=`R+Qv|Lb8*k7cUnKMXR$(ZVtxHvDWE=oUVQYWPq5^>f0bavyK)+Cq;%=r z6YkA)tR4|!XwB%S<&@!6&7t?p8HW|jVPHivhNkkrWR(V$OsQB9jBfi3UI+PANQfZf zGDBh#$ym0to4G$8A#s7niw5J8flr~{NH;McR^W$1aJ*6Zp>l?G@Q<+?;yOr{e4&|9 z@Npom{gz2v4Ua0|C{^py=OT_0-)U_{$2i0pHHKBApk4z>9KD%Hb-ka@d(cz%>)}(o zlY*AcF6&_T(%6y$aT+(P_o1|cHHvUxqmo>U4rZS7x6!wt`l)usPfS1F;kfZ?u#Zk^ z*RpF5wxk))P1u2wc<1AaPf0v#HEc5aBh{nI-%C{kl=Zm#Je=$x$ zzU9tTrANk}LW!t={N-5r_mgA+PL*!JJz&I=X3JvfgqU;hfJ_D-={fP}Hx!fROL~qD zkCwOcJ-TsB8-PN|;xeb;7{s+QfVO~N0XrIFbe;Jaqr+?iVH2RYG!^E&*_&S4M)502 zY%Iq3XOEB12DYvc0jpXdO9!#KrrhmKY{e@xA=z+Chkhmol+NUPZ|K(| zSus60>Vj8P20;AMx`sJD?@L~)NOrW)#pQkH4g!SO!igMW>?ENm*0u28u8NO~7yDVV zOaHrbX9-ham4Z6WOdMe$LDB_raKM`fV1P>X()>{f2y)2B>2@dTgL%?~d%r6z*_=Lp z76s4)+g8V@&9UEwVazLpus~+YlipM)AV|&uL&JTR&lUN`+e;Smeu*qn6ga8%(Xt-p zx}v&Z9DQyl5@2|Mi5|X~wE`CZH7Y`SlrH)YhKfkw0`h+2zPx(Uoq^KSCp%@(6Zbr_kGo zVasG1B8tOSj1+V|BIbXU+Fs8wKckj3g4Mwide~TO$81I+pxZ+Cl%$5sSx}MplJsKUY%1SGC^s#u zeLdIG?|{~2>=1MKt|D2ZD)W|LLK%2^z+!tKPU}{7tP(ly7pAfJQfGuYS+)k5TvPN_ zNiDdN4Vd)MBO@V~i|*~UE@kiS^u2|MFsU&#FTf&2aQ9E!t=Ff*tZsXQ%VH_3$|!Sj zl(`tykK zqDce$JCC76#=GO7vCSU9*&)D5N;Df8a)Y}&u>0eR6x}y;{O0vK=nUowI*uvKA`P!% zGp{a0CgoKdU$Vt(J*eAazH_p4Gd0ev%lq)Y->5Ut_9k7lM?2(UG>6VHlTAPH_8R*B z`n7)5Cbt3AFgg_4vp-x8Gh~PlSBt>F?t%8vX*nG5)K#^C*6E7*c7)hhy|RjO3nG6j_=VuJYE9<8%$2u;)|I?!=D& z!-35l&vx#0t$U_eaB0fV(CP^7ET3>J93*_oUw@c8Ua)&a(xCT7kBkjG6YPJqlfmS9980^jw+Uk?@R<(A@O_je6gNB3@6+iX^?Pcsl2|M z5~2qSio`-avWiovlc{{Ds5a_kZB%Sa1zS(>DXD65PhrU+%QtIM)D>ihppCygqg((e z^Fc}PVGB&5U#iiM$Jl)8{jm99C=v+#|NQgB+J2ez2Txej29skO2z%$J%C*ypiv{Oh zg6QI7*GeKEV-3%7XYU=&V@_Bd_>E=Qn`dC%vr1EdV`7imeJ|allBkZ=z{P-XCouW?fHxoB3A1=m)_%-cJvh z>ArXK&4??LF#?gj&+F-t< zqaIB*s3Lo^La2`|gufWQsL)mSN@|=7akVuE<1$QJ@4GY2bz9`}cPozS;oFSDkoily z42$0OVZZ;;-TBq&KzyU4Wji>KZw))5qwh%Cc{^a0;3Nm}iid!f0|*4sc9CD;1E%J{ z005!?0tqsJ008e6!h9|&*X{n;>Wn4m(-S<4f?2p&F>)j8>pAFmmVf{N0?gY31gKyz z54xlfPAJaS8wd$PxO`~&F3@9z1pTIkfYzHa((scgA`L6p%TWBuWQ&a;2$!sgsv~&i zcBE*O*%j|p2>6i#ck>-OW}b1OPjh#rX8(C~@pXylN!jW&WL0Ly`Fz`y^35NN?Z4#h zI-v!WLo5N))SaqF7%#MaUFDc)1DD-bGZIyKUYvSngq=eI_Q*SB*NQDvUGV|1Cf|aB z?;5cYgc8Z3)NaiIgue(;WtY}~4sbW|dtf;Z(3-(eZZ{q@A@{H7Sz8cCR@!A5c1k8f zuPnZQ;BbDa_kl4!#I@dXyQbmc*XZcXP%Odrg7;03x!}=~)Gif$3SQmSrbEh|LS!5( z{!x{1Dxji@kd}4KC$`Wr7U`89Zd0)};UwL4^ROl}9aW}Iqm8?Nb6u#Y7o@+2G*E(fQ|57PZP!51k#if34b>kx3i^`)2)XbcJ7Z=FCQf-c)$7aPN zT~w4`X7jj-5FD6-Fd7Iz-8qAGa>jqgE~7hSX`&!U-mncxkM#a!dK4s8F}w$kl!N?Y zOTlg(=!lvz^D8Nl;Txg@fbGMyA*S*Ro;j$yJ{SEw1IYeL{)& z+Ys3J$#4}k=oJ6grvxoy!bx5|F>EYgB+I9B3a#r&0z zd^ix-I!?F-?Zto#tqM(R;|(G26C-raMr(x1YQ)}e{!#c;{GkMXi!fKc9G4XHY0nR~ zaes}@55J!4aE9E)V630#iU!?pS&5|ZlhBwLAqo){L!(=y z1u1^_fpq$Vh^W=0Piw>uAVCuw*gF~3i7FP;hAZ1+zHYo5ktLS9IP>R7|Dk_!7qLf3OqGtZFBWf|c0_zhlQU1X7%@$<2mvl&xsbnY9>&0X zxo|Hn1Ne~s8Lj{TJ-7e>8WDQD6fakR0|{uo#SD?}dMsc$w=^s_OC}iLq3naz1Kljk z?hJ8WfEptbPk?WOD!V)YZ_;Jq3+LkG7N7fC?=96(m((|EtcS+8@~V?zD|E?-0CYwx zkjc29Ct@at0J612x562a18Kc0Rl{oP=ob{TMk`4oGAoqU;TLHQR-_>4G<|KJ9H>= zyk$mZ4Qcyeyl`9p<#*Mx8^5XhNL1}Ib$}b_sdG)2L~@q+F=ON|xp^&s+Okas)cEe!_VpOcx2D1`5;wz@geS4tK5C<`eSeS>Wu(I0YB6@Yev6Wr) z5l*J!N@0Lx`Gg*V%!JgC!|dMdN=$~=VQBbu`(1pZ)?I-?zVjY!MNAN;=?Xe$~!XnaZ{27vWc|y)9Ogcvyoy_3eq=qYF1OE%B{!1|U zVJP^8q`8R_Y&7~7A(O?gv%*3VlGwCOF%aSwoYYlxF<&Llc2n1pFNDo&FsU!|Qtod_Qo&pn)CGzofAFFzSe3^{`94l#K$FHOAuO!G?5#EK8X|5OHD0uC@UB?kkKU_Z&?OA?mf zNdFz(tp3_|zv}^z;Am@L_V?W023-(KDi$!!?*B8+Wy();Kl89ljpK(PQYM^>A`q?w zZR39*T5Lu_{x>WIH?(2zJ$ZDrXV`qj{;VAua?veZIg zZ`Gi#nTo55?N5#_Za`#vQZ7eeqyPq7000A9 zLXnOD05$EzH3B{(@aPrVyGNl|%+Fq&*mWe2TIlcpdb6^C?JgmLEL$pMg4~dRc^SvJ zzyJUYc{i&FE5%NX0}X7;V)4;VBq@tyOrtJ$!)SF@K3NhqZWBDShQgWM?_pMX#%*Cd zYr5+q6>+a3w9#U^-23GwrRvO^+Og%R0qfzA^&?g@S`)&duf2j~g4?#Faq z#x)miE$38uwH{i4@h@FV9Np*JVTCmmv*SBo2R2cc&RqEQ|&+jvYZMRLO81vNG)Tah+aF6T@&9oTdth zU4t-Y8C~3v9&G;hR;`bvZm-ii#2sMRN@anrfAs;iFqe*gQ#}`~2jHh$XEnVg@P&C| z8bHNX8tv}+Jv#tARtFBQ37`NFZT>iA`o9=I2bNzdQrK(Jd&14KL(u~8K2zMmvV4;2 zSBh?)OGx<8=fCz@q-uMod=qBSo9YUMLbt1i zmkX}Mgk%D>h4O4C#5}R=>l{*AhvE}foV)ymYRx$_)Tstd(2}1-K^G*VWhK#r@@#!C z`&vbq<)erALH9iZSZ0n0jAS+Zp>R|kqoi4r`J+Xm@)IDgDfa8-Q*2I%NS}vML8*Iu zQ_Y2;xQSPf-XvjK20Po~!OSkXodlKf=3qj+t&;lOk-UaVnJRTndhg$ey&vApdK!}W>X zqyB)MivtMmVnC-ONJ5-^9>k*Q6D;CfZVJ-#@{BsGbwszsD*7aOn39=e9h%E)QWhmYI{m@Y66g06nJXT$~m3C=ujV@uE6Fx zKd8-*fBOLlO>ecOU+@dmS=R5W$pWXOWarSE&xbm2N>;x)@0FFa_yQy1vk#A{8g}Hb z<(LYAOurqwSb!9z*2j$x0_h4WYpe9T0EZkup&O2VK-Oev(%m#JLFaKw;vHw7+I59rgNi4nDuifOEOR1gXwwER=g2~G}H@kol_b2eQH~^PwwY%{p zmoh2cYwP0G{M=FWK3ZIHpXYp_#@&K=+jf?ehCgU_bl1B84{q1{dz2>0(;IEYyUioZ zD@B!6Jbv^Yw}cryArJ%|OY1&lu#%|xujy`~HQO}A_mjBhbD$n{7yPJmCz7us9VQdABX`whw<2szuhUJz&~SVW!M zte$?dE-#-~m!yB*W>HVIMph9Qbtf46qC8Z#X?viLD@K|cJ$m4=ky;wKUI334g#Gq- zQcJ9gG7pjmThPc?M(pOykoo&ri1t9B_VWS=iV8#~5Y=kKj2ZZjJc;qaAKlKlySmHa zA|Qd|QFqywwW55y2p3srGGUq5Q=-X)AgR?AT;%tC83jR;=?L$v(60ah1iF9#0Tb11oNU`@~)Ctu<`Mo`Pe+$ zho-i9@1e_RHcK=6Cf?GsuFz9ptJYNuxk5w8a{i!BpTZf2+3w84+FdW)zMj10Cm{ks z5RWBK55@p(_p73jRO|#wpc*Zw;NtsKZ`QNR8?##`$~y*MKPh9Y*qsfurv=*)17A=< z*;|ZsBkTHjvF%rocLzO06|(uwu_ryScmYJ%1CCQce}`+4`#H z8zT`zB(hjct~lequP^B>>mMaF()&<~y0Uf0e>z2zr8G#P952IN8uU7nv4Fo_dZriU zuif&E>pPvLOYSJlE2@*6&EpjeI#t$HdKSQCbb`7KV(KZAiDTBPIl>6>rp6KStw6)$ zlnx|6dq3{E*kyCBUjG8O@V<(psEnJ&nEG5LAJhdb~y~B zuenNx(kWN~0000KMIab7<^T*GhF;e6wZ*x5ueawkeOH7S!pHLni^FrPr-zvacq~c$ zY`2F3Y)Blt-&IZcOk93pi%j@^SAZkK+$J@^5;@`Ru% zXFcIWkPK*W>>>HD6Fuz!6)?%Xz80{f?`C_eq9JWwARTznl7MQyWklBv7#xAU(O9RR z5bx>oMJJe?bE6`QHR<^12Cw2%__^}JC{rUA(65@*N%(oLk4WX0BZ?BvuPkf-{Pbif z#hX2k;El>7-p98JO7l|^sH11zR8&Ev|<7`|0u6H(zfJDA7OQ%nu zO~y~Kww%VDuD{7BJ1s2Fdev^LB?8Ze7z`a7uoMvV4>+?zgqVeaD?;r0<^Py1emY1s z@@K6C_z)lr{4^xV?-)5wIa^M#XVGFF>8-31J(Z|pF%-lLq|;vSf=t& z7J0<>Sk$TrmJEL<9}ZEy*P^Mr+ms@co;fDUlL6gH-({bl;aDeevyf-(w)u8BO=YS6 z1`!ReOxGf@=d`f>59DY-2YU8O7Z6cJ0mWFCDPv1>xraD4$m19Jx!=+a^E9VYY9u9{ zLKk{i4~N98O`loX=%sRY*iY6bvCcqyWy#EBw8rXC`CPgiiMZ}Y$*601qqt?r7f2y} z_Wo3uHZWC(nkWl$Em6?t-&u7ynuJ4C4qjBA?3YEZqJ0%pL|&^bb+95JHlrz|vUF-! zUC*1CM;zkCgqS2JRMr!|-(t>b$xR;dw_u%cvs}EU*Y<+5r7$;GOo`aU10CUDsHw%Fa3Xv#l2yUJb}Fr~*p z2pR6&ld0aXCScdft`xV=qkA7CfTL5x>M2w~ni!7Ul9u&B34;OT9Yy*|>N|6|sRS#X zA>#l6aM%CAZVlEbOmH<#R zhkNHr8bN6>K?Bi%>VN*0{|7Cw=kXr}ryoUx)fh3@v2lms z66&<}vg|G$w>D+YP#Y|18HJ6FCi5w-h6XpRIb$g3sA)Ylj5UiaR`WjT=x$uQsk;SA zuoaP)*&|h@HizZ&^G{@cY8lrKH}o8QIwwv_L+Mi8M(H=E~#ia}Iha=Z)D(E91wJ`eFW`$|uR_Q!g>pH_7s|F)mN zQvWAdi(!XG70&@1r5~C@jyR5yAN_Vyo+#l&H1>4YGq#k*xZ$H;=6~eXz8S*E+R`we z(u`~SEkqo*`|JWd2V)A+BLARUp7*RutxNkyI-(O^10TRFYb>k|8QZ1BrY6?WHcCla zkRH!>&hl^Ve!OC$qwgY>P< z=gghM%p{vHS-7mQ8|W^2PA^b*fiV)3+yJccc?4)%jy6QGbR~ej863RGRfA9w znNyrq+FUUC&M-Q}{$I*&upj8sp{uqm@fd&+aa!Kb04^v63Fwq=u_N~+w5ngk7Dvky z+rpBRO}LQj$#p^P+TjClwo#%=ilQn!I3lA#9H#yL;5M9*uxxwb(}g(cOhes zCZ;_slBEZp!CAbiSIyrM{DDt5Aq}R}p(!@r23%F9&YHsXsp_gi3Rm`Ah3g$ zxU(IF;*HnSTc7*06CJ9|5pG{u8fdQBB{ij22VCu3+O^}Z{qD86Uwf4h$Rp48D~5}` z9$q*Z5}}jzpy|m;+0@YvLuiYAha>giq;{6z%t&C-ZoKFc3Ie3DeemIU{nwzaH!PTb zNq;GqS{%-}qew8h44JqfYK_mFzld!#4>^!*2<0KAoloEzm6=kg#lj13fQQvKhpvr9 zFU349MAffg5sC$|9X_K*Dd=f?gQ%HuPwt6Cc{~?=XG{>1E{p6@4J+Xj^j>M$dGQoXf(NLdE)c9MBFk zOkF`k<;&_5x`@V?nLj%#daQ52eZ}#(q!}W&R$G796rlec=?}uZc9=>mAP*9psk?}h z)iYT-+UR;J!M%Lif=I~r*WAe1^wmumf@(@#hxaxs8jgzLqeXO%hAeQTH2^gpFiVAk-(=f8p8%lLA*NhZ}1RwchS`#b48an}d{< z2pErpEr0+3004&sIfTE5OF@37&kA{gNFmry_&xi!^#B?bn|t(>Xcz9(J7~Wyp}7H< z00F?5B%e}$249_m=6tdZKT71$I!3e#54%mdOFbyskgzRAWZTJyczlMNAHq}PCQ7tw zb_INjveps{sb-(m9-9e@f-ED0!_4m_#`?lwXxi@mly&hB3zxo_P&YRxo!k-BwVtyY z{U719KQ}Z|79fZYC0pN>C6X=X(UQQMH~qrBmgr)VWykPzRe(GxryeY^r_ShWs~@Rn z?-)ami_Bd4W=46)3~7c{mF)2M<4eIHJDL00kFdBwwO?OU8ZWmuz>r`{ZnHP&s zW)iYt@5x7BX)or;Q<*z$GkTHcM1VB=9tB(x>_sD}eh~RJ07Fi4et8ti#HVaOn6TIo zUc4UgI6oTK#oBDwhjzT_!b&Q=_HPiJ5-+b6DYeH|371rtq&#_Q1p!0(b)I|_`h7Q1 zR0nJ>lpH;hNaxU2DCI(?=D63@E<4ewuFGRqOquWR z?4y1GczWEJs;?5%b3Kr2HzUe#suf`G*x?JiJ`2U%ab>KbOvg4Z>Jm`5Uej*(37sOt z*dnCcADorxbJd#vhGIMN>WZ#7EyT5#iTyhFV@9{3g%8ZXa71UFm$Pf8yc`Vz#v>+Q zP_%qDF^)rNj*n6UNKrBS-#Ow=y&JjLtpsjBeQaGEfFl4X?=S`mIeWi9b`w#eu@&^H zBx!DRwH#Wz0LH+=8h8}hI$oPHNvgX6eL0-emnW|oZcxSfq!=u^RZc>XJ&)hLAvx$p zvPFk^46>eCBtk8mfzytm@xvNSYqOpi=^j!wO0?Or(H+qjD!(A?Xf7dP)5$X6V&q#^ zA->zK`o&Y8ZlBT?ODj(FsW1w2FYz0OD+a?+N^!|L4XBPGyZmOOxG#iN!tOR%N5~)* zuSW|SNt$W?g4mWUBjMqn%+17P#aJQrCcySIGr&+2|3?BmIoX^)>%#Ssvf;c~GwJqx zVYT=YR~QA5WG6Mbq*Nb@y_&Cxu5p3Q3+A#OKrM{ccb3z~i`V`<0dxkF5{!7!K%DY6 zA&y4USh>^_)t7$o0!kgkLY}%#<&p$Q{LR*A5^Lu> zPatfh89Z~hn7;uzwYOj=Dv^G(NOsJz6|1J}Cib=lPQf(+O6VY= za2S+^mVz@cnw{jFHg>nb_?wc5M1VPpD1Kohrq0c<1y77yrW-3!z_ z3jnaOTQqT8u&)97(-xmY7AhE-5wSmhlPK(EUj~e~6RIiXiNkI(0SdFavnXeO4%^L4 z1^5~IFToaQzJ`XseXu>*(t1ot7ocYg0V6^@sk(HYc{cq*EU49OOAu^agzDWf28XbQ z>3p^Spk;~7aLDYYc1dswun*cMITi%P0fVH&pFv40A65GN(*3z$Q>ofrRlDi26;+>f z+aRD*a6Jy4`+gT}irDR-ONK$P^;It()F)4K&AKyBzzT8K)R~(Ir`7-tZU>Sbyr3ka z;z<2S2CCkDYs2VlkL5W|OF00r)kg`hn5n7wmTvz4qsD87JHNh z5G8%n@T!%;`0ic8YmtR`hW+TAYkFR(OputyJS9X6-S(lp6+ICkRr8^C*90JQ=;Kh; zF&u~N%HnLtGU8gag?lXf&v^-b_(huGmgmbmnje40DN zwJyw$OZX;@rg#BAmqZGKq+C9P7_cTQ?TNW~h@>+Dv4~s#|iE6Eww`4D|5=sN7VtTVi zAijx&pn1w;$d!5EmE?RVz96Dw$WOZj)IGb7F^VM6=dkwv2=?v-9PNu`Rmv!=#&$wf zOZw&1oo00`mzwiGkH-hrUsh~PggqRgxSD-Az;aKXHME!>F<{^>qonLjxOr!z%Yh^8 zh-nLCVUIhUH*{LdUWG7GlPPqL5RR|Ip-@R(p{>ZSgB^-Zm>6KbSsMsix?1o>|;%3uR$!VOKE~R%i!D8M18diZ6U@dl7{iqe@1d%c8;5gn0-LH zk(DNxINQ&7G6=6OerbtZLZ=vmM!7=!FKG}QFX9(FB{>6-KN+&@HP5m-M_!XMsbDs+fDyWYRb;*Mnic- zfN5W#FOLrfJRjrsVJYM1}|u z8<(8pRqRauR)`D_pE-g{l_ptt@+-F5HGU#dbKFlG>IvP=Wkc?dCTV)&^O*+RO4|D+ zo8o$hp9l`(ExJW(`MD9!hk}mZ?_A|{$S)Bhqg(pRiz}!j&8Dbaw0t(u#bxGD6uRNg zdyv(L>GZb=ir(`p8&pkT#;D>A`m_p5eNTp&%7c9u%wdwW+m?~{)ptC9@A`Q`hDOCH z65tK-SjwEw896$X1wkp9*N~*}eonW>3M+?66G#A9doY?E{QF=7gCz1F2U!@^s}3CA zR_QF%&}jc~i{HmiMDj_gUMum1>PX6hBmyN>@d%BDEX?(A%J6NFlz7Q)eMDm=!!LBU6E0#69mD!UZhNz3qdkuG#~k_tkpP5WgK}#pDIKXGj$xu*zz=zr3OU za6{wb9((0}uov+6!$(L0tn3X01$IUt^jQ5F}HTJc=D6Vt9lW?XT8_B;- zF4}DlP1QQlFcyVZ<8)Qg@_dL&>6po;;En7q;1X4H(rw(;%M2D*QFDJc^KUL~s6%9? zEL}lDH2`NH=N4z~WJ4Q`j05F(*C$WUhV-NZet?hGIW|{LeO6r{!0b{7{m}R*$EoJ` z$iIB+S-8As@WD|deJeCvyR4gkOTOlSt@4N#*H~k-r_wk=l;UV~^m8M}lYjsK0004_ z1K0JD@? zFBB;56=?>%5`J;dVt3e23&og&6P#gixkhNH->8h`&3UPx4*(Hr02$2C>Hw)3CAL3? zy?7TfAA*)$A9@J|JJ8&{Hwx?yh*?7qnb_y;T*wUCRb3bUob5d!ueBc;SRj`(QAd=07VIyYZC6ZJZ-O2&4* zcfeTnF<-OcjFka96tKY$y=Jlruf=#l?h`Cl+}#`CTyufx}AQ9%ycjVfTWPz`I2 zRx1P80FPQo$vc5sN~tqjgm!)>w+3Ra;;nIxDW)F~TR67=WE)}eqa-;t!d|{j)QUD2rRX-Fz%xR3o*Teo!=|#Khi>IZgw6Ms4tNnvh zO*seQf(#1P0dvux;q7_{ChsN|B&Mlq+2>CE6!V1uICb=4nF7Q;c}dd2$anUDSH$`{ ziyE)dwQJDq9Q`P>vIi~6*a-Qmz8;~J|1sI){bgQrAR<-y9X?|RHw_Pzr~YR5N>VcupdTS4wPLIp301Ze002GCA zxBvj4iGElOk&5XEJ2S$O>ofjscElyvs_f~xQI8Y|otJ4h+Vv@KhjWx^FdwTXmG((s zHrzn+q*|hLzP;9OPx#FX#M-ipL93sLv<-fEjB|V@K;*^*8QKOyz->r2{Ei=tv*9r` z8**#0-d61pQVne14&j?OYYo?NFVvi?r`S2b0IKv;z}LUxuz{K(-A4+{6VpzxDjELjYC;8_&y!M3kCdG`F2d`S0j!I78&~+HQpsTBKEQ!>V zXuA5;E4xX6t-5~;7;}|7^wvq?6(4-|oo$SO$Qsj7<^qh@%EDTi^c65W-VQ$l;+6_?yd2FQ<#qjz~D+2jz5e6wy zl+vQFc`#K>_C_-&>M$>^du}cXcyIBk17CEH&*v|)?q4)ms5lvC^Z~qNNrXAYbHcCT z%Eptk=Oy5%@{DEw48OCdr(CSm0n@!%bUl#O1hSLYOw~lb#Sa#hgwCGqd(}E9Nb;F3 zej+o@(6c|=sW~R2>3>Jh)Dn=2mJ4hI*3Jq4nLt{@bHYlMpb}y{NYVUf4;Xk;fcBl4 zBB($D@OlP!Rn*N%v%?A)Ds3bG6edlW)O2*F6O z-`$cCRaxuT4zkN#3G}~;ka21hVM#5hBBu|Pb>_Egxe%^!1`0p`03pCaIl+VbW-ju^ zq0_D0YDL1Z{zzd1{}bb#+t+TLvN>vLIl5Hq_{sn&KnvM63+r z=~hWCf&9voYXB=gZLmo5Fizb24JYLTKQ=DakN^Mx3IcXA*R(t7=IL(%Xl!DcA)lUt z*JKk>1SjH@;}!0w>EmAw@A|W&+bs|;Cy(YF&fAm)PVZbTR%3V<8|VHC&c!J-Qoh(5 zmumjt=*;+9wOB64#4#CLAxEu3CtE}dHI~?g#=x++XNpihadMafn?icbZca!zbS`>f z83eWyN z^kE3GGswGy)EADAx}%x3maibjY7J8jp`^vuNaz}i{3sPxt`JAz7XXQ1J$-}qKK8& zNkMj$0|tQ8 zV25oDr?Et!g4O0_WlC>q@T{8pJx)lPB*(rf0wV>TCE@<3F}yfCbRfu)v!$j=l(}Q! zMa~%*r}2+W>vf`C!NX3J8EiVW3{)-S=6&Y3+{Ec@T>y*pKX?J;YsRVM+g;_O~^c+_{9`@cV;5 z0}`A`a@=5zSN9q7`-Exr6VoUI*Sm_=RFPRWQyMU$%|7#+79(I2y$ouz6&R%nf_9&p z7YwdiQhi~-?n_>deGlfmL(fVQTu73v|b){QQN??M~D&0{u4J1ai>cRlekAeUW zKDDsoRsZaW-ZqwX?j`ze0+}@5qQcEG&GqdzJ=jQmli?EeE-(N8j)cjwWy>gv(1OGS zqwt?^7q(iq=onTD?_t66{aCB$LmltxW1v35CK+wANUorKDBs(q=5IL^+qbK9H22?z z6y+ZXU^d8PYYd>r@d_acf&9Xpi)8ZYTV=(?A;{Ub z!dIGnD`LhJ#I*Jx=T%!XY3CkY4D^KjH?PLuuFw|NtgOXuH=)ZZ(%C7ii$b0hZeU|--h%(AxrqT?YwJQmR_@d{K{ z;!QX&h@IqW$tPtHYXX4!KgH~4e7*NGb=S)_kGr?nNMtX!;AyRai=^u0@EwgY+j;%2AkaV<3OrpvkgV8A%Jv6= zSSYeZY9bx3sQyK^?yi}p?p<74GA~nBnVd5p$^cb60OhA87Jz43kY>HN^N}}c)EVFo z?o$ zR%+t<9_rz{>ce55?wR-NE-;9tu52~fQ|`9#Gwj=4o{-9zk8~s6n&H32&5MHv$S2C- z9^V8)uc|&*r^x{#c>M3C$3NFI54dBe9BzSE00$QnmCirR_m# z`4r-~gvvm}WwLx|9KNst&_9+GSxCpVP@S1%QhdC+a}l*Q_KHm!Wd}|2`_uJzAd}aaYRj&_mQh-2lOwpgba&ci?pxeT zZmT>pBYSk+ylQFTN)Xq?b^&v7qFt=Bt;rq>#%qhY-ldD$)@4pX;yYvp@n<{cIF(oxff&C8)O;HYC>vIY;OsY zWyl|~7`zmR0talxNN4FRj=k@}{Ff~C#46?swF=zRa#*3bNiH^onFp#TqU?ZF{u#Dw13JRI-Pb$lCAuD+U+cH^g8%LB zW5QR!l^)~mU@jk>hG|$DO*Zf5p|9dz$6tDUALat6^Btc?hF6=@G0dce}#qa?-Bf_nb*`d9eQt{1bY%P-7LwU*EomyKh+JBLW1( zv3WB%q{?iXxOPmp18>kWvpIG$t>!d+cL~uqr0b>*+70FP_ea&5B^i#Co(Kt(WdW>b zC?QcM&+xQk-gc~6TU5%>K-*p#wjPS5m}TFTZ5R^#K-dV)zo|0buy;t=-VgT@fQctq zazEjYSA5tK4vmS=+91KES4CBxf%uRENHdQjl^;@YZSA zGcVY)JJ8Y-^G#Ra&@98^3uYrR4GJV3>4iB==V9dDDk|T3_Zuj06D(V)CFGznSF-lS z$4LQ?I-xl{wDa@7pQU(N1L2|E0c^G&h*q-hI{K%6_rt&eO3CE}t)DuTs!_@yMb&|H zmfzzcJt-->%@n?B+!k2cnqqONnp}`JMFh&lI4_a>#|Zj8&kLC6xo}5^#XJwfsnr|} z;UX`?3EOkLQ-d#gY^(e9HgVvsAAp>K$zSg#3%GR$;uJ(g`u2JBoY48;5ihntSVg%% zR4HFMN6UbxuP^r2e~1ekohJxQlb)z3W_(r9?%JU7g70tst$@JoT+)* zU^9ckHYrb0_;MN%Y%*M27lY^^k`&o8XiKvNl#42W zfoOzk6R^Jj_o%K)V@N7=MCcA8%adiw%4L7m@tuB5$BE+Ze=&M2^bi+Xn}covRN~D2 zNd*|hSe$pf_y>fM*zocVbxvxBwmXJ0p4#aFz?iV~3%yUn+{)UATWpl8%ht;hFn*y) zJAw|5ii(4ZN6H|Um%-hGof3FUvlNwnb-EL9uS_KR(X1mk93~O1;~M8n)i7zAp(d@T zY1h5fAcs;gk6g5kWCg}8YhV&* zle*tNgOV(L30+`5LOdz~0jEP-i+kRsW86a>t?a47w*WFfNOm40O|$8dv$dC5rFeC| zfqajv0Nue@HU_H=UMl$_ypna2m$SrfoVpOOHUL(6&@`1?9oN7~S&OJ*F!De0mR3K2 z0|g)e000000*N2vz}P1#xCOxPl?1PaN^11?n1F3HR6Dqad@H-GA7ARnL~s*OSEj_+ z$e%~V^w`%>Y*9JX*%(-3Zn^32i>*y)gqixtavFQccl`vp-YXZAk>%{n^`*kmrLX%M z4n&Q^Xw-_o`*8#pqHpze*5%Y2+DLF29Bc4jQsc_tg}SapJ!~MXP>PzrGvP1b0jzFq zEa+W-NDvePKCzZmFHtA zJIbr@h0?FUJ75uff*`8Td^L+3Zx%vE{QBIySUgGycu(TGz4@S*-(*=8b^TE=5H_aw z6xtU76N!5&=mxW&8ekQgjsF-y0(psc!aCal(~x_eR0Ssr525uT2d%#^Xk?Txo5Omj zOlbP!pCI~a`=iCbs|m-8y3M05!RQiYt+Nxj8FCWFkEj3)-h4akRA5Lt#{!)FtPWVF zs355?BITysEJMCJXp!Woye-zn8_{)*%n)qbAH%EpHZCztO>_ui8{dvn6%-*l6$~v* z4((AAJ!1L+i6T5Cb*&J?sf`n~WX-Ph3h$1fBHc}&{aRQfO-eDm5P^0-c-FVW1`Y_k zUO>tfb&ToRA;I>;gHAuC9x(FLSDW#gL#;zJQ?cX`+gvJ1iEwR8k{<6-3P|wKdcHYD zXCnJPd_yFcsa~$-YWAJJZ;DqYgXf{X2XyeMb!PxiHkE?73EH0Omw@bw_)cDQvl76F z3{)@@J2@jv2TZB;aK}<*rp7&lX^r$#=1dCh*2xcq1P~sKZ?v{|*M?!3S=^l8#Or@% zn7rsGY>nm|9ud;swg}mPGSRT-FLHzbTba)~qP$xTw$i_E(C3$|M<4W*=;ym=Q*yw4 z3D&Fyod6y;VeUHDTP&X8SKu3OoPhxi=<-mBY=3W>%YBy)aXuw1RZrBXV@eJe zda0Xa8iBhtr)KjSG|)`=zR_Dz4Zw}Kh)=4Rd5MOf_Ruh#`-7GPm&Y59=HGi0000003fxe zB7(UO|MH*sl>z^oi%x`@IRco;zN9Ni7dA?O(B3fv%>WmmC9No7teR=`_YTQ6mN12XIrc zpXhe;P@@7CPDK11U|VJB6aWBk=Kzu(C3DTq!w3Y66TdnTL?|!d!;LMf82DA3VsUzk zv0Y9c6BoBsR3f2AD+-Se>OibI{+*zg_kikRkz|>mXPeYqM~xY5^b`mH7#U{g*zfxb z0ZID!U;Q$A=WO)S@HADvxjb(pWk9i!0FWbOt=+}jdh5%j_*Izt8LV=8DcqrbahU-# zkExsdE4ri_6i&RggR~@Ct2*zs6hGK9Q|?;&`ms=JQvOQ;UdXpiy8TI-I0h(sc<`h# zxVUikB#{+|SaSxbS>JuDR>zgwx z|13j|u4M-UzG1+Tb<(RMt(jPYvAI_9GX*0;R=7dH$v~lnssR+?A&VrI5Rr2Z=iYIM zdg2k_I6Cg-C&<#YJ4`e7InSGz2y3NcQTWc$fQ5g@7&;BoIx$>}HFPXx5%45>R@p}5 zBkq2cJxxVBJ*Z{5jdEXkbBrX#*id@^^>;WSTkxSA8Aq_wjhop62iuC>@d9Z!%CwbR zgIUmqHdx|fw3N&gb8#h1aZt(VDJyJzql~^FyA$LQ6`a0{E6Gh$@heMV12wu=zZm@(0m6RVQV+=-e) zpw+N;!`q)3)tTtbGv$GRaz^gsRny$mSJuxpgv0AIE)lEWCZeHajd99xU*ayFH+6HALWL@oiVqhA5@v@EE4&W{|T;Y+l*>^W|{AB1K3d8I;5=uJ{I$^ z!0*CiKTmlE*%)m6pKuQ_zk(dZJ_L28=(~dBhI8le@3Vl`4cmU+^-`7#a*eD}me)OG zG+x#I*coA1Tcp?Pwp}l|NVX30>@3d~n!Ds`kVjBca#Z&4nMQ!#J-ef_I4LS?9cG%p z`cSQur=>9-W=LJc?VZdZlez0F$p!X`H<$_7xY0$2zv8j`8qY%N%n5prQ_{)h?pisM zn2H&=>i6;PY$W8UypyQHX;3~KDz64hoNtQnTESwKQ>rFs(r^t!Twk(zSRuvVJLwR( z7u^#Z5mWNPX^0@PByz1;Y6xgCG)v6A;>6 zs69Y~3Pg6T8{iM}1M-Ht`EdCvv>32T!&&F!M1kCSh(bI8u!=wc003|>P3)n;anFJ< z{w)*Y>gNE$nN0NAy@#r{9>4lGvv$EQ13^?LF_j&7Iv>6O<$~}aojInBh~+~P(_-Q+ zVZ*$+Xs2Y#VR||Mmq-C-I!c&pvZ0^A-s1NR1RIS9zy1CoX(eU@uPBhgJ^i}FqKmK3 zP1pKrJp46ywjZP*-nf!-P{2FkO#WjjaOKET;lsQnU}-X>yz0 zJx@A@hfy5v61mskTEFtP4U)&aEEbxrL1$Mq3Du=sXZM2B{AlDEGLDWUmx7>k+1a&# zNDMFe7-1#{N!L3Z%8;WH4(CR{Hy~efEvw3`mj;5cIQR}Wgm~~+#x!z1g~pNv#~el? zS{4Z}0Dj2wjGauP6Qibp=zEzvc=b2E5`7r%0B{xi%0Qh--$5=q@W>>dqs~~##JD?C z4CB6xxP>ds_yHYc=Z&rusdxGlxfObS(ev0rWD_xy;LUX^Q<&uVb1Q5VsMNbU(mBU6 z=?IPy%cqATUya`g8`_INlJ*)*rI9Wf4juGTY5u15VwkJ$WhbPIrA-ENcT{~r>?I02 zbhd;hLyPE3lV843WCOk^>Y;h4#u-A!Zp&JRvc4@APjK@TpbnlONT*Gzw-Q`Hl!^l` zgdsr7A%A!6=lR(eA$-Q0r*&qDBtIjVvt|K%s6Rcn!~&$k{^v{O%ygObxHWqTHQc4w zMoHAq9wgRX3NfA=9%08i@g&iD!TkUyaN2#T(I#Z?NnIZ^!L(AtX$Zcdbcn~7KH8c1 zJdun??Cl+9B4~e3=U|z@xHxiSWB7uoY1fb<=(@CDKIu$tMyo8&2_(8{GuknzXOc0lTZS54h-=yW&wL7zT-_VaT>9z<%xV zI{*!3FGJ$2cPvru&&oj)AS3DN0a3)vh^dyFalDPMVk8nj9zfr$-ug{(Hc$Fx+*#*d zHhA(-jf>bhBysmZ8KYmoIcxv`0000suNO2`5wH`@1T*+p*bCYn!VPbZ>=%Wx>sPNw zTn96eZRgPh+dWp5q++oz<^mNfReqkQ!X085VtCl0ZRvjG;UGRTscl@#D zAI`uyR$~U#n%EvmDWo)+OZiS_xcViyKl_qMPn+?8c(M&P*>C-GrmPHqhjy&UNI$C= z>;yl)(4*If`qtM7tfL%DB~MmOcVbqG-uM|Oa3ZJzzmBUKU_M~Bx6XHXVOuD0gLfd2 zASGRbvjCTe{=(K#csq&^gXIM>rXP0dmF{5Zst4fk_<_EChy3|30=ex{WA;hO2AIAS zZVmzVfbnF7OUUlm;t~4c_OIvtU*0CW(p2mw@G(pyFhjyJiCzL5d5d^iyuMFI7d^>9 zro@8oletK|!(f$m@c<}82D_5izL&#++d>g#@l)!vxE9gL5kuYb^1O<2I<-5fmK-w- zCwAjG6FS~^moWvIla!ez#-tp`Uy5o%4_)xW-qSh)98%0rt&Q#^3#$tOXpEj<9rzEx z%<^DlyNSa7LBvi3Ad6dQ?)wFAw|V}-?AvY>CM4$Gpm6p|dq>{&6-Y%g9alF04R2{X zlKVZJ5Q$ykE-_OR0^#JT`5XV=K#xPAS}sLXkwQ3GUa7OW6p-f|MJe zFu%<`y|z(yKyA$IC=)9jZm`m6Brm)?C`BtI18e>}I^ zO1n2-HnPw>8=-%fd$8w*+CrVK;mZK023sO~bD7QrIo^pjVVxfMNy>22W5QvHa0=L; z|Bk^z#(^EXrEjPH%ihgxis@j$um=aK+g2gmHC6dgInkgf5iitKo%GZOlN|RAIGgv| zVy99;1ij3UfS~u@MCp4%n0;<1?CP1j8TV6m6}2wX