From 6e21bca02c691b47a5994d4ba7a2fe006125f08e Mon Sep 17 00:00:00 2001 From: cclu <1106109051@qq.com> Date: Thu, 10 Aug 2023 19:04:12 +0800 Subject: [PATCH] update --- pages/commercialBI/formatDetail.vue | 13 +- pages/commercialBI/formatPortrait.vue | 59 +-- pages/index/index.vue | 495 ++++++++++++++++++------- static/public/font2/swmcfSKy9zYa.woff2 | Bin 4052 -> 4324 bytes 4 files changed, 404 insertions(+), 163 deletions(-) diff --git a/pages/commercialBI/formatDetail.vue b/pages/commercialBI/formatDetail.vue index c7f1776..ecd08c2 100644 --- a/pages/commercialBI/formatDetail.vue +++ b/pages/commercialBI/formatDetail.vue @@ -13,7 +13,8 @@
-
+ +
@@ -180,11 +181,11 @@ export default { }, handleShopDetail(item){ console.log('item',item) - if (item.COOPMERCHANTS_ID && item.COOPMERCHANTS_ID!=='-1'){ - uni.navigateTo({ - url:`/pages/commercialBI/shopDetail?id=${item.COOPMERCHANTS_ID}&COOPMERCHANTSID=${item.COOPMERCHANTS_ID_Encrypted}` - }) - } + // if (item.COOPMERCHANTS_ID && item.COOPMERCHANTS_ID!=='-1'){ + // uni.navigateTo({ + // url:`/pages/commercialBI/shopDetail?id=${item.COOPMERCHANTS_ID}&COOPMERCHANTSID=${item.COOPMERCHANTS_ID_Encrypted}` + // }) + // } } } diff --git a/pages/commercialBI/formatPortrait.vue b/pages/commercialBI/formatPortrait.vue index d2b093c..01be0d6 100644 --- a/pages/commercialBI/formatPortrait.vue +++ b/pages/commercialBI/formatPortrait.vue @@ -12,23 +12,23 @@
-
- -
-
- - - - - 安徽驿达 - - - - - -
-
-
+ + + + + + + + + + + + + + + + +
@@ -50,7 +50,7 @@
- +
@@ -64,11 +64,14 @@
{{item.BUSINESSTRADE_NAME}}
{{item.BRAND_TYPENAME}}
-
- {{item.MerchantName || ''}} - - -
+ +
+ {{item.MerchantName || ''}} + + +
+
+
@@ -193,6 +196,14 @@ export default { url:`/pages/map/index?page=${this.page}&chartType=${true}&serviceInfo=${JSON.stringify(this.serviceInfo)}` }) }, + handleShopDetail(item){ + console.log('item',item) + if (item.MerchantID && item.MerchantID!=='-1'){ + uni.navigateTo({ + url:`/pages/commercialBI/shopDetail?id=${item.MerchantID}&COOPMERCHANTSID=${item.MerchantID_Encrypt}` + }) + } + }, //返回上一级s handleBack(){ if (this.backType==='userCenter'){ @@ -336,6 +347,7 @@ export default { width: 100vw; background: url("https://eshangtech.com/ShopICO/ahyd-BID/brand/headerBg.svg")no-repeat; background-size: cover; + background-position-y: -5px; .box{ padding: 0 16px; position: absolute; @@ -598,6 +610,7 @@ export default { } } .suggest{ + display: inline-block; min-height: 25px; padding: 0 8px; background: linear-gradient(90deg, RGBA(222, 231, 255, 1) 0%, RGBA(241, 246, 255, 1) 100%); diff --git a/pages/index/index.vue b/pages/index/index.vue index ac907f8..863726f 100644 --- a/pages/index/index.vue +++ b/pages/index/index.vue @@ -4,7 +4,7 @@ + :style="{height:loadMore?`calc(${(776/750)*phoneWidth + 260}px)`:`calc(${(776/750)*phoneWidth - 10}px)`}">
@@ -23,10 +23,10 @@
- + - + @@ -159,52 +159,87 @@ 查看更多 - +
- -

{{ showTableData.Different_Price_More?$util.fmoney(showTableData.Different_Price_More,2):'-' }}

-

长款金额/元

-
- -

{{ showTableData.Different_Price_Less?$util.fmoney(showTableData.Different_Price_Less,2):'-' }}

-

短款金额/元

-
- -

{{showTableData.TotalOffAmount?$util.fmoney(showTableData.TotalOffAmount,2):'-' }}

-

优惠金额/元

-
- -

-

-

- {{showTableData.Revenue_Upload?showTableData.Revenue_Upload:'-'}}/{{showTableData.TotalShopCount?showTableData.TotalShopCount:'-'}} -

-
- 门店上传 -
!
-
-
- -

{{ showTableData.TotalCount?$util.noDecimal(showTableData.TotalCount):'-' }}

-

商品出售/件

-
- -

{{ showTableData.countave?showTableData.countave:'-' }}

-

商品均价/元

-
- -

{{carInfo.Vehicle_Count?carInfo.Vehicle_Count:'-'}}

-

第三方未传

-

日均入区/辆

-
- -

{{carInfo.Entry_Rate?carInfo.Entry_Rate :'-' }}

-

入区率/%

-
- -

{{carInfo.Stay_Times?carInfo.Stay_Times:'-' }}

-

停留时长/分钟

+ + + + 126.32 + 年度累计/亿元 + + + + + + 11.07% + + 同比 + + + + + + 对客营收/环比 + +19.54% + + + 自营收入/环比 + +19.54% + + + 外租收入/环比 + +19.54% + + + + + + + + 入区车流 + + + +198.54% + /同比 + + + +198.54% + /环比 + + + + + + + 入区率 + + + +198.54% + /同比 + + + +198.54% + /环比 + + + + + + + 停留时长 + + + +198.54% + /同比 + + + +198.54% + /环比 + + +
@@ -273,7 +308,7 @@ - {{showTableData.compared?showTableData.compared+'%':'-'}} + {{showTableData.compared?showTableData.compared>0?'+'+showTableData.compared+'%':showTableData.compared+'%':'-'}} @@ -301,7 +336,7 @@ - 节日特刊 + 经营品牌库 @@ -313,8 +348,10 @@
- +
+ +
@@ -687,8 +724,9 @@ export default { { imgUrl: 'https://eshangtech.com/ShopICO/ahyd-BID/index/car.svg', path: '/pages/commercialBI/carPortrait', name: '车流画像'}, { imgUrl: '/static/images/index/guest.svg', path: '/pages/commercialBI/guestPortrait', name: '客群画像' }, { imgUrl: '/static/images/index/business_icon.svg', path: '/pages/commercialBI/managePortrait', name: '经营画像' }, - { imgUrl: '/static/images/index/trade.svg', path: '/pages/commercialBI/businessPortrait', name: '交易画像' }, - { imgUrl: '/static/images/index/brand.svg', path: '/pages/commercialBI/formatPortrait', name: '业态品牌' }], + { imgUrl: '/static/images/index/trade.svg', path: '/pages/commercialBI/businessPortrait', name: '交易画像' } + ], + // { imgUrl: '/static/images/index/brand.svg', path: '/pages/commercialBI/formatPortrait', name: '业态品牌' } detailTypeList:[{ name: '分润门店', unit: '/个', value: '-',yesterValue:'-', add: '', imgIcon: '/static/images/index/store.svg' }, { name: '驿达分润', unit: '/元', value: '-',yesterValue:'-', imgIcon: '/static/images/index/yidaFenrun.svg' }, { name: '订单配送', unit: '/单', value: '-',yesterValue:'-', add: '', imgIcon: '/static/images/index/orderDelivery.svg' }, @@ -697,7 +735,7 @@ export default { // { name: '经营模式', value: 1 }, { name: '区域营收', value: 2 }, { name: '经营业态', value: 1 }], - selectTab:1, // 选项卡的指针 + selectTab:2, // 选项卡的指针 monthAmountAdd:'',//月累计 yearAmountAdd:'',//年累计 mobileData :{}, // 移动支付分账接口返回的数据 @@ -844,23 +882,21 @@ export default { onLoad(option){ // 顶部显示的时间 this.single = timestampToTimeMonth((new Date(this.lastDay).getTime())) - // 拿到当前真实的时间 - const realDate = new Date() - // 获取手机参数对页面进行适配 主要是用于拿到胶囊的位置 let systemInfo = uni.getSystemInfoSync() this.statusBarHeight = Number(systemInfo.statusBarHeight) this.menu = uni.getMenuButtonBoundingClientRect() + // 拿到用户手机的宽 用设计图的宽高比去设定上半部的高度 this.phoneWidth = systemInfo.windowWidth - console.log('systemInfo',systemInfo) // 拿到昨天的时间戳 const date = new Date(this.lastDay) - // 拿到今天的月份 + // 拿到选择日期的月份 this.nowMonth = date.getMonth() + 1 // 默认选择的月份 this.selectMonth = date.getMonth() + 1 + // 设置顶部时间选择器的开始时间 因为不能选去年数据 所以只能从当前日期的年份开始计算 this.startDate = `${date.getFullYear()}-01` - // 顶部卡片滚动的第几个 + // 顶部卡片滚动的第几个 月份减1 就是卡片的index this.selectDetail = this.nowMonth - 1 // 设置顶部选时间的显示 结束时间不能是大于等于今天 this.endData = new Date() @@ -1118,17 +1154,14 @@ export default { }) } //判断是否从推送进来 - console.log('option',option) if (option.ProvinceCode) { // 从推送进入 this.theRequest = option option.time = this.$util.cutDate(option.time, 'YYYY-MM-DD') option.month = this.$util.cutDate(option.time, 'YYYYMM') if (!type){ this.lastDay = this.$util.cutDate(option.time, 'YYYY-MM-DD') - console.log('this.lastDay',this.lastDay) //修改时间选择器里面的时间 this.single = timestampToTimeMonth((new Date(this.lastDay).getTime())) - console.log('this.single',this.single) // //显示当前选择的时间是星期几 // const date = new Date(this.lastDay) // this.thisDay = getThisDay(date.getDay()) @@ -1235,7 +1268,8 @@ export default { this.showPortrait = !this.showPortrait }, handleFestival(){ - uni.showToast({title: '栏目建设中', icon: 'none'}) + this.$util.toNextRoute('navigateTo', `/pages/commercialBI/formatPortrait?time=${this.lastDay}&serviceInfo=${JSON.stringify(this.nearServiceInfo)}`) + // uni.showToast({title: '栏目建设中', icon: 'none'}) }, handleSearch(type){ if (type ==='special'){ @@ -1295,10 +1329,8 @@ export default { Statistics_Date:`${y}-${m}-${day}` } } - console.log('monthDate',monthDate) request.$webGet('CommercialApi/Revenue/GetRevenueBudget',monthDate).then(res=>{ // 赋值给data中的这个对象 在请求完之后会进行统一的数据处理 - console.log('res.Result_Data', res.Result_Data) this.plan = res.Result_Data this.plan.percentageMonth = res.Result_Data.MonthBudget_Degree this.plan.percentageYear = res.Result_Data.YearBudget_Degree @@ -1504,7 +1536,6 @@ export default { request.$webGet('CommercialApi/Revenue/GetSummaryRevenueMonth',req).then(lastData=>{ flag3 = true let result = lastData.Result_Data - console.log('result',result) let progressAll = 0 result.BusinessTypeList.forEach(item=>{ @@ -1528,8 +1559,6 @@ export default { owner:Number(((this.typeList[0].value / progressAll)*100).toFixed(2)), other:100-Number(((this.typeList[0].value / progressAll)*100).toFixed(2)) } - console.log('progressAll',progressAll) - console.log('progressObj',this.progressObj) // 计算百分比 this.regionProgress = result.BusinessTradeList @@ -1640,10 +1669,7 @@ export default { const realDate = new Date(this.lastDay) - console.log('this.lastDay',this.lastDay) const realMonth = realDate.getMonth()+1 - console.log('this.selectMonth',this.selectMonth) - console.log('realMonth',realMonth) if (this.selectMonth>realMonth){ isOnRefresh = false }else{ @@ -1858,15 +1884,16 @@ $iphoneHeight: env(safe-area-inset-bottom); margin-right: 4px; } .uni-input { - font-size: 24rpx; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: #ae664e; - line-height: 36rpx; + font-size: 32rpx; + font-family: PingFangSC-Semibold, PingFang SC; + font-weight: 600; + color: #2249A2; + line-height: 44rpx; } .icon { - width: 24px; - height: 16px; + width: 12px; + height: 12px; + margin-left: 16rpx; } } } @@ -1928,6 +1955,7 @@ $iphoneHeight: env(safe-area-inset-bottom); .staticIcon{ width: 32rpx; height: 32rpx; + opacity: 0.25; } } .revenueBox{ @@ -1947,8 +1975,8 @@ $iphoneHeight: env(safe-area-inset-bottom); line-height: 56rpx; } .moreIcon{ - width: 28rpx; - height: 28rpx; + width: 12px; + height: 12px; display: flex; align-items: center; justify-content: center; @@ -1957,7 +1985,7 @@ $iphoneHeight: env(safe-area-inset-bottom); color: #A69E9F; font-size: 12px; font-weight: 600; - margin-left: 7px; + margin-left: 6px; position: relative; .realBox{ position: absolute; @@ -1992,11 +2020,11 @@ $iphoneHeight: env(safe-area-inset-bottom); } .revenueNav{ - margin-top: 4px; display: flex; align-items: center; justify-content: space-between; .leftNav{ + margin-top: 2px; font-size: 28rpx; font-family: PingFangSC-Regular, PingFang SC; font-weight: 400; @@ -2105,7 +2133,6 @@ $iphoneHeight: env(safe-area-inset-bottom); } } .messageBottom{ - margin-top: 4px; margin-left: 20px; display: flex; align-items: center; @@ -2154,55 +2181,154 @@ $iphoneHeight: env(safe-area-inset-bottom); width: 100%; .detail{ width: 100%; - height: 200px; + height: 290px; box-sizing: border-box; - padding: 16px 0; + padding: 16px; border-radius: 8rpx; //margin-top: 12px; - .detailItem { - width: 33%; - box-sizing: border-box; - padding-left: 16px; - height: 42px; - text-align: left; - float: left; - margin-bottom: 16px; - .itemName { - font-size: 14px; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: #782717; - opacity: 0.8; - line-height: 40rpx; - margin-bottom: 2px; - .prompt{ - width: 12px; - height: 12px; - border: 1px solid #782717; - border-radius:50%; - display: flex; - align-items: center; - justify-content: center; - font-size: 10px; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 600; - color: #782717; + .detailMessage{ + width: 100%; + height: 100%; + .otherDetailTop{ + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + .otherDetailTopLeft{ + .yearAll{ + font-size: 40rpx; + font-family: DINAlternate-Bold, DINAlternate; + font-weight: bold; + color: #6D1301; + line-height: 40rpx; + } + .yearLabel{ + margin-top: 4rpx; + font-size: 28rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #6D1301; + line-height: 40rpx; + .unit{ + font-size: 28rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #C5846F; + line-height: 40rpx; + margin-left: 4rpx; + } + } } - .itemUnit { - font-size: 28rpx; - font-family: PingFangSC-Regular, PingFang SC; - font-weight: 400; - color: #C8806C; - line-height: 40rpx; - margin-left: 2px; + .otherDetailRight{ + .otherDetailAddBox{ + display: flex; + align-items: center; + .otherDetailAddIcon{ + width: 28rpx; + height: 28rpx; + margin-right: 6rpx; + } + .otherDetailAddValue{ + font-size: 36rpx; + font-family: DINAlternate-Bold, DINAlternate; + font-weight: bold; + color: #E83944; + line-height: 40rpx; + } + } + .otherDetailAddLabel{ + font-size: 28rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #6D1301; + line-height: 40rpx; + text-align: right; + } } } - .price { - font-size: 16px; - font-family: DINAlternate-Bold, DINAlternate; - font-weight: bold; - color: #782717; - line-height: 40rpx; + + .otherDetailMiddle{ + margin-top: 42rpx; + .middleItem{ + width: 100%; + display: flex; + align-items: center; + justify-content: space-between; + .itemLabel{ + font-size: 28rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #6D1301; + line-height: 40rpx; + .itemText{ + width: 70rpx; + height: 40rpx; + font-size: 28rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #C5836E; + line-height: 40rpx; + } + } + .itemValue{ + font-size: 32rpx; + font-family: DINAlternate-Bold, DINAlternate; + font-weight: bold; + color: #6D1301; + line-height: 40rpx; + } + } + } + + .otherDetailBottom{ + margin-top: 40rpx; + .bottomItem{ + display: flex; + align-items: center; + justify-content: space-between; + .itemLeft{ + width: 140rpx; + display: flex; + align-items: center; + .leftIcon{ + width: 32rpx; + height: 32rpx; + margin-right: 8rpx; + } + .itemTitle{ + font-size: 26rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #6D1301; + line-height: 40rpx; + text-align: left; + } + } + .itemCenter,.itemRight{ + width: calc((100% - 140rpx)/2); + .itemValue{ + font-size: 28rpx; + font-family: DINAlternate-Bold, DINAlternate; + font-weight: bold; + color: #6D1301; + line-height: 40rpx; + } + .itemText{ + font-size: 26rpx; + font-family: PingFangSC-Regular, PingFang SC; + font-weight: 400; + color: #6D1301; + line-height: 40rpx; + margin-left: 4rpx; + } + } + .itemCenter{ + text-align: right; + } + .itemRight{ + text-align: right; + } + } } } } @@ -2222,8 +2348,8 @@ $iphoneHeight: env(safe-area-inset-bottom); .monthBox{ display: inline-block; position: absolute; - right: 0;top: 0; - padding: 4rpx 22rpx; + right: 1px;top: 1px; + padding: 4rpx 26rpx; font-size: 28rpx; font-family: PingFangSC-Semibold, PingFang SC; font-weight: 600; @@ -2410,7 +2536,6 @@ $iphoneHeight: env(safe-area-inset-bottom); } } .messageBottom{ - margin-top: 4px; margin-left: 20px; display: flex; align-items: center; @@ -2452,7 +2577,7 @@ $iphoneHeight: env(safe-area-inset-bottom); } .searchIcon{ width: 25px; - height: 14px; + height: 16px; } } .otherDetail{ @@ -2877,6 +3002,37 @@ $iphoneHeight: env(safe-area-inset-bottom); background: linear-gradient(134deg, #A6DDFF 0%, #BCEFFF 100%)!important; color: #025B93!important; } + .otherDetail{ + .detail{ + .yearAll{ + color: #013F66!important; + } + .yearLabel{ + color: #013F66!important; + .unit{ + color: #649BB9!important; + } + } + .otherDetailAddLabel{ + color: #5E97B7!important; + } + .itemLabel{ + color: #013F66!important; + .itemText{ + color: #6199B9!important; + } + } + .itemValue{ + color: #013F66!important; + } + .itemTitle{ + color: #013F66!important; + } + .itemText{ + color: #5B95B7!important; + } + } + } } } } @@ -2898,6 +3054,37 @@ $iphoneHeight: env(safe-area-inset-bottom); background: linear-gradient(134deg, #B9CEFF 0%, #CADFFF 100%)!important; color: #2249A2!important; } + .otherDetail{ + .detail{ + .yearAll{ + color: #002780!important; + } + .yearLabel{ + color: #002780!important; + .unit{ + color: #6786C5!important; + } + } + .otherDetailAddLabel{ + color: #6483C4!important; + } + .itemLabel{ + color: #002780!important; + .itemText{ + color: #6786C5!important; + } + } + .itemValue{ + color: #002780!important; + } + .itemTitle{ + color: #002780!important; + } + .itemText{ + color: #6786C5!important; + } + } + } } } } @@ -2919,6 +3106,37 @@ $iphoneHeight: env(safe-area-inset-bottom); background: linear-gradient(134deg, #FFCDA3 0%, #FFE8CA 100%)!important; color: #783F0F!important; } + .otherDetail{ + .detail{ + .yearAll{ + color: #572800!important; + } + .yearLabel{ + color: #572800!important; + .unit{ + color: #B08C6B!important; + } + } + .otherDetailAddLabel{ + color: #AC8766!important; + } + .itemLabel{ + color:#572800!important; + .itemText{ + color: #B08C6B!important; + } + } + .itemValue{ + color: #572800!important; + } + .itemTitle{ + color: #572800!important; + } + .itemText{ + color: #B08C6B!important; + } + } + } } } } @@ -2939,7 +3157,7 @@ $iphoneHeight: env(safe-area-inset-bottom); width: calc(100% - 64rpx); margin-left: 32rpx; height: 378rpx; - margin-bottom: 32rpx; + margin-bottom: 16px; .firstBox{ display: flex; margin-bottom: 18rpx; @@ -3038,8 +3256,8 @@ $iphoneHeight: env(safe-area-inset-bottom); } } .typeImg{ - width: 120rpx; - height: 120rpx; + width: 52px; + height: 52px; position: absolute; right: 0;bottom: 0; } @@ -3070,8 +3288,8 @@ $iphoneHeight: env(safe-area-inset-bottom); margin-top: 96rpx; } .typeImg{ - width: 104rpx; - height: 104rpx; + width: 52px; + height: 52px; position: absolute; bottom: 0;right: 0; } @@ -3125,6 +3343,15 @@ $iphoneHeight: env(safe-area-inset-bottom); justify-content: space-between; background: #F3F4F4; border-radius: 16rpx; + position: relative; + .san{ + width: 16px; + height: 16px; + position: absolute; + top: -8px;left: 108rpx; + background: #F3F4F4; + transform: rotate(-45deg); + } .funItem{ width: 25%; display: flex; diff --git a/static/public/font2/swmcfSKy9zYa.woff2 b/static/public/font2/swmcfSKy9zYa.woff2 index bf074aafd09dd10abeffe197b10a7fe27d1271ed..cb882e842f66bae0158dde9e8637d88b87def331 100644 GIT binary patch literal 4324 zcmV0D=qwHUcCAJOl;>i693c7bF-w8-f>61RDncNX-ezeiXRv411zN zSE!H)nV+1nXQCrGl8*m|r@8%mx83dSE%H_j7@>|BWj699s%3MCv>CM3l$~|p@qy<* z?%R3yFNK>H`8xiA!ob78cY!AHB56F&s$AJi)e6mper59-7-`n#L!vBgw)X$lTAjgl zD>CnGB_&Frl;!W)pE(ouuzi;h_tyzYOAzs7iB4&hP9}s(CmkVoR&yD+b8q8}tSTkT zjjUWo9uU2D2*hmxEJzPF=UP&sZ+K3TUuJGZuIYtVFsKLV;oK#?qC#l5;G6{^ZZ;7& zhw}!LxvcCVP6=D~Z+z?9z)lBxKNfZf?e#W=LPuKw;7Vc>&a&W9*lF70ByFZ z-njGZoP)-6mnZ4C>AJdRusJs^H7JDosxO5sI@IdnZU`vM@UWU612KJip?U1cztgDd z1226rS@qa3ezmgkpORvE3(EvbiyG3z$f8M7>QJ31II$vQC8|8 z^5ggCNAM@`SKt)9KrloUD;gypC~cFSkY~x86$Q#BT1%hg00;nJ3l@~akpHdqt+tPE-JLg{_kTvayS6?~l<8w9W^N?Al@(K?Sj8d2~E2A3B&^gRX%%{DqKTv;k z#YxoGN33y=nD~@n%UqUQ=OXEgz9PByZSwt-Jf?@bk@gcGOI&o>()f zdqRz@s^h{+4xEF(?|62oYGT!d%8AA>f)S)vgcy+6=&>WqS1w(R5G1P>O$sL<2D6`j z3T|TuegS;XPCTY}YF?Xa zjPRYIu@z|qR4gk;FDv;Js+=ru|F2SP2hS*!2}PyE_K|#r(bc%rbz9QD!}qtnt^X2< zR}3nRDM&0mz5ept+X!1B<_?sSW+}xKLnpF7E5|-w(fc;q}%Z z`!JfxAs6Lo^l1($gZp4efZ(+I$mntFQ6+-#*guWmZJ3)k%QC}?xQH^u$nbu{(i|<7 zF#_&0;_qL9EW|BYO-Voll~^g~O&IuIvin-~wjH__a&iB<#m!3?ejjumiJ+OoFzHie z&(^#8|HF5FeT*SP|AQLWFD7lExhsBk|EZ>fn>J-{&)sA0o>z7Z>3Jb;qDrw$#*RtJ ziL=CRNZFdX3&nYA3sIJ3^wtdu-wh-+UdVI4DcLEhCsc|C+spnWLQKlMWcoyNPF@c3v6Nds4x$?s*oI^H0y+1~b8kNN z?!)&HM6h`N^VIb8e1VFY`rO)kxVU-*wVx>EI~>>)V!s}C`=CJYBCKf;!9jK%uU%QY z5>0;fgB6UhsCUW}cZvY{lm3uDheyrv^FDqKiJ+~1+3}?c9iuEdAA|#X7QumJG-PZ$ zM*RS`Cq%G-P@EwF1qf_}m>b_>#zV;QKT%Pwro0bLU``P5nOuI_A5ZN|GMWM?q$M@M zND8sG9eYM%>sLXsTrOT&ySZuG)y{=rBeX&46Cd{c-T+kCyJ04#%ev+PohiT~xr$qX zuM;o!?-ZPi0mGWJG}7^h_v_i-QRUeIj6XwB6?Rn7t~?cgvLhWi(*vvaCN;%&2Oaaq zge8SXM`#%bQz%GTHlaMHGzY~NRDs4|x%=Gq6Pr&xW4}T$2~9YB|K}Ei_fC-Gy%bMLH74t8Pyo)h*zE@-YU^w2(ZAHHl8dX1X@KJ7U+Wr8OVjVIrQ&}vYQ;1g&1ue$ zHd0X*LuD?0m4D_wJhedZ-HFFnoLF`Wok{ybg`qG*Ni(EKYG25UWKVY9j=CMecs_;G zNsc8q#2Lrjw5P)I3oWh+K6#S-XP4|^8*!4R+CiNA(}9QQF`bI3+#31L?Hgh!%vPQn)fe}>LxO$}(iQ+z6R?{zL2qROqylY%F61Ik2J{b1 z^T{lUQSl`s0u2I_LOROQS>wl!FGQW?SJ(uI0gs`tQrDT;5+kDm4Vk&i+r9hZw$BEj z-lM@~Pi}5p--Jq{?Jw`*?9F4h7yDq&mg%*l+71p!AY0bO^rjTvj)5su5Ot!m!t^!K z*z8AW%eujsU*$9|){G{@SC2f{d1B*v^n+aPzBBSjB4P!7YvS0h)lkzy!-Xc3uZ}#e zf3V&mYCNN1VZ-tev#D`@UA~=K))(C{mkcHG85K~o0!yh$D_yJQWNabHEcNEE-C%Ni zMUQ|Rpvlb4k|R$Kj28DL{i*bmLMf;JUHo?qIN>L}1-^wd`Ui}KasVcf;)LGJXbOCq zu=^^C#?T?hv`{NnPz?ptFhEGdh094?A<$u}e)fJN*Al)i{(qKykkkTU#u%0gG=$hG z&mS0xd#)gn{5(`W(U}B0k99llRPL_ci%QFes>>L(h*g%0c0F5ru=+5{vP3vwVsDJT z*8;?2j@oWWY55jGkTU2ssyfk&Qh3#7tZd~Y#dQuJ&dM@vN>=1pa})Hh+Es z8_E@e+;QNmPrY#KcGC;3ucj1-q;*5b0km5X@>NHg;dd^_&IoV{G@-yAkK5xhRr8N9 z66|b)X`e4w9J<~o;-QHou2HJ?9uiJP0Ma1w>nTAD16V5YrTszp-ly9hZFquSk#X!B zSby2jnPeY|u|rPbOyG^O|54Jc5T-)ed8B4p&2nUa7%@rt72{jt&h!j`IqV&(+HgOm z*x$BIOfkIN1UmGhwh{HAHQ9Q78$;Z*wq%^gO=c?J$nn?uMGHHT+?T#eDkbGXuD~{x z*!iiLrJ!O2MW#_wM!NVdW7{V;XH*{|YI&z*$eH{eRjn9hK31|E@IpnN&xFP@@m|(( zcfc-GqDl7I?jSua@t=&hvMxD{I+y-trs;odN-_*7K#0kAl*7-`h#$$Q?xMi#6b}L8 z@35*-EHHn0@d6%S>)pg|r1Nk6Kz-cy59Ilo*s71&ph3JiZ)7`~(YS$!VphdAFc1R@ zQ7bKpy5t7z4>+b}H-}Cn(WNU~Mu+*1&*-Pwhr90_M9juaD9ObU+Y6poK7$7!_~01> zfF3+b&0r4*4fNpy5_r(3O-UXK+b84L{;-5XYbhv&mZf+^9UpNDwU{dY<`w$iwqn7e zL73Cro2_vC8N$coW%-IR(T3b<+a_=66upI!H<&?JnCS4bZ>&xgtiv!BBw0@t_%fCL zW7+;4ICR?m!IwK7OvQ1|Nya@pg!~Gj;NN&7CDh_=_z7J1BulsD*aW2^ygZ`oNyB9~=yQ zp+5|P(J%pK!9q9%R>Nhm32uRV;A!{(K8J7NUxFkMp(30JFT`q`05STBj7tefMp(-v zGymz@gxZb1&RR%DUkwY$QAqY(tg=pL^^QnCm^b!keUX6jWh|tiWt2DFGEqP?WOwX9 zvFQ_|v4GydR`>xRrh$v6PJ`87ejCyZrxY0aA6W2QJv+^&k?AFo3{^l+zo}ICnDKX zGCD2-S2A*lJtjoJ=RUcfWxykY8~vB`4Kw;rOAdT}&fhI>JuR6@QLG<*+050)Fung} zbC=O?SscJYYNI&FK*gQ1=X&^p%-e=CmI@#MFg-oE^9_gq2p0gLqXPh#)49zH;xHhg z%q3y~0RAY0d*I{W7;Ywt&cL2wZS;m}RImh#E7X%cP74@BX zZ8B%d$Ej1Ncbc73QD5cQ(Shtc>E*MfWy@b%#%ylhG`wkhLznvEm6^-#EL*Y6xb*Gf zdy7LB^shQwwQTN#DZY~x6HOBqjr(1)v#`A2AAr`u-WL{yUs!)8OZxpm9L{?H0C@g+ z7J+)luN`_~2qz3cJcPiguI0I6;Wz(q!bD(DAtkODh zu4+s9GWGg983u#^w#Nzod+fMce$1|H>=48DueuQ&4h)8{GRvT9jncU=wLZM~IGd@i>dH{g-GNFyp@W~zUlbB*4sYoY z7WickO&gTW2LW;w3ALeeurbwW?k&s&1u&EYQsjc>#|oHjX@E$LJS)k_h}3i%gQ*TJ z2&~OLRk4x7=F2Eyi_L_iR!odzM4`%PnZ-qH4qJFDGGLiNMM|qhH={SOEv?`LX0Gb6eb9F$=rdBAEuzAR+1)K=iPWbJ4jBs|- zap)4&7X^EeS~UZ28G41Kj`_VLZNRu1HOXTsDv6krygw^h%g%$S=mW;MfGUY{eRTIMz$-SOI*T1t$Rh S+Jyjc-=Of{{8Dq2EiMSf0Y0Sw literal 4052 zcmV;_4=eC@Pew9NR8&s@01wmv4FCWD02bf?01t-%0RR9100000000000000000000 z0000Doj4mF93BQ>0D*J?HUcCAHUtI*i693c7bF-q8}}7a1RDnc3e8Hgp9PLdam`Wo?6P-dhbxL?SZzd+qOB@08N}^8i(WTB%W^gikC2 z0So{irT_&PvMpB)Ov9e6u*MoggVZ?7iN4HVcLJd`NaniBN))*`SXMl7xV$8xMEXK2 zs7y^*wPgpX<(t~#g=;afXo(apRWC3{6FsA`{5|#GjJ~%?Tu%AkjRVHi8c)zRucRn; zC7@&{6`40yWxI7_35Jc zbI~;}pSutDJIu!$eCvD5{-4qA>CLdNpzr8?kNf!DV-Alu`t~^CVRs_jh@hpVNXd3f zQ*%p0J5ps*zxB84uI{|E=@AVI^Uu5i>-NoNu-~Z@bgIdiJVW z>iIo0oC_VNqbVF}T==#7+2NJ5R?b{8%Ql`+*-^AYgG^TGvS|RQ1ed(A7(b z4zbQ*Shc1wgfff*g{IL5l$s-fOVjLsL?XI%h6R4hh>sE<3D?2aW;I84X6^62-}$!s zOB_BTbxO*(%qgcAU0!w@K?iy2<`l7-BA$5E#ptcpdpyKR84-n1lacJ~>xS>W?_IbW z_E84HoslYgLO)5u#^H4!EHS3@+ypgspVM0?uU32Ryu4!L4Hng znj*D1r$fFQ@p^_4>x6(wc+jAFke0A&>zt~t?LogY1r9aQrW)hDsNCbg6B91jy|}En zv>4S?=|_M<z7F8b^%J)b-A6EpipqVS2-j3`L4oA{T>0P2%1lhdItvqr zRkg;NHi7s&Fre>HvU&kbGn}4tY}*ClwwpOdJ+qvxc^MoiMCVENWfr_LQ?iV__LkpCU70nRe&YN zuEb&+GI%Xw(uAY<^%2K+DjmnxU*PPyHkj+4p-B|^F^;T#L*h1Y7~$?^E`r$B*jH{? zwSMJ#1X3L6IMJ^n0+stKS)yUoI`vEQgVT^TL0AiRcH7CO-s=4qi0xotA)qa+3hDL_eLUS?*- zPfjXNvBlT)ZaZFe7Bvtl5v4aUm9g8CYSYZ|k-O--%w1Bkm1mrLR;1`5hwxr*?5Nqj z^ML3YP~;HxXKA93y<%w@hOCJQIa~?q$Xcoy{3BhjOaIWlw_L2SZ`F?e|@{We@gegZwl%!Fm#w7 zV>I7XV}f>=I?PP9@@n{z`}tHEMXp_OblZt7r%-LbKLreD8Tl%st|4ols1Cw8UF*8n zc1PmE}?D%T&cx0eR?J@+wuN*+0!&I?-7aJxvQhs|7jPj3>;V|8TRW`1V^_8iCi!OL)80tq3_MB)rkKQpY(LISrGLe>R=xki# znlq~uQK*ffhp)Cit$xsCh8HgPncy=GafyUh8~b8c7Je}jYtyDQKf`hwYB@Jc*sZY8 zS#+Ud5)0bw!P%Eu2pMcLgz2?xW zUerYi8BV(k=6?gc;EK0g7?6NI2|3V!v(x!t$xUWinyq|3ty^D$2*;scOg4QGM7vK3jF z;1sY@15NpO2;RoAVk_vdXK5_czP`iZ+x@T(?@03+(RJl}(9t|bGLJg7NjgkXq^6+U zR5=Pi@VN6)^AmK5krV$EfjD6#EkE(tjcPbUt88(8FRd)6cBhRqx31o@dMi@?0iJ05 z3Nx0#D--8LtcZ7rU>R~ix;(I~iYFdjYzJbt77;B(Oq!^RCcg<`wp#>UdYbJbCvTV? zR|4>XBWUgKUiGa&KZp7bIOYjkoyWxvjFcEMpVBJY%3Dg(HG6RodLPad z5oO3moYEV)91B9*aC6Fz)EZD@&|o6Mk_4^N9eE(~n22~7twhsiRj}I{_06AQA9p?6 zbLS8uMO;L_GneXCT`WANJp1Gkik#{LVS;R`@L# zc?X2t0?EzIs@j=E!14{T3`DD10&=k{8MQ45T!BD`EAFRV9&soG^Qtbq2Ml-9XnoD# z_ougc0#a@RTbJ_)0-E!X(FTL~G z4{yHXFl2&RiYTT9Z7HQ2y&1r84re@bsNhu2=L&9MEnC>dWGUh0r7O4XW`5G)ExXe&zxv#bBU!6VF>}$PL>XcaT&WOVu>Y&N<&>UP#**i&66b= z7t`1yfnO!E>|if95_mzaE2z{pJ3u|qx-X)72PN)6hL0Q)oKrsx#M0fKj-X8KrI|b7 z;!wOjxkzg{RP}_?>vqWq8K?GHrT0OwB+z*%ys{#%IE2o&SZYvKKoQFG<6HY*B;(SY zx^el&jj4DGC!)E(Sj)39HIZ=<@!AR#U-#&G7f^>ct{t_>A7%fgEauQ!{I~M0ibdWA z7k}_PkTX9-`2FWWob0d3q(n2!g-Iz>pdQ%d`fKf4*V$+Q2q1)o(Q17IkqH!n{{DJc z%p`EJRu9q(8oq2u3Mh;k6{q3m-z0Lrzjci-*pb?`udOuKIQv(DMTnXJ$h1GiN-rqX zPzQ!oVO9znSrhl+b`tejp552taeO+yT9%WZocSWJUhXBYkiRLkE%qrsUV3}n)QSGH zuFcVy`#f*n0;?s(%d1zK5Bx)eo7}jyD@%WswrQ)c>#VWfp1MQjK3b=pI5=?5~^MEDX zDn2dYL8OUA>tg^GlV?V{Cl_#F$DTVmH)2k@&KWpQC^Lp^Mc9fZ)iA|SQhTU{2-Fm+ zoOS&#|08q&U~7oCjHu~EZ13^(xITcqXQx2GMLq*|vAw^tjOo@pk z!WEmATw^#|C`XPM7Xnh0V0gH4#3G=PB6q77CYb^vH(jLAT%y82(C(PZ!4R=jK@NLr zM>u+D4mgKpiYJq27pYwcnPu*9jVKeD*0QMO#w$@YIgKSKB%vXOdjcmvk@2TX10lTlPsDdo?hr^?w`X<}xOs_VV8V`VJF*(B0(( GsCfb(gvLz(