LR7G+^F8)1aWWB|mWd^-=p#X?n zM%wR))oee;n=(QGP$2@SJ;9OTCxJ+I4-)uN5tZ1y=#=I~yhLv5>cjzH$ILJhQiy@& zgpz6QZAD)8{0d7*515VHb(>Pc0Z?6VMMG(H3%rzk^&fHc)`MT4YMUx3Ma|(MC6} zH5C?sxZ+4OQb3NMoCD#e^TC4B!!;`8X2)O1ggrug_52^ZaT{)uM`!?c-joBeY!(Br zK&FwbKB&*~45`dkexpBl5A(_pAZ~lMeTQr^$ zokqy-;AZ=TXg6CkVDvQr)rF3E^}0TxMDgulQMnUteK&!lLr$zKbtBP96xQ|@{91CR zu=SNqx4!qenavilZq98~Qjf@Hz)sx>n{}OtL^nGp0N#6`sb3-!>5m($;|I*P7rB1U z0Z>b9bo~Necn^rH8DQp1{}PO_yTkT_acC)#*-Nq7ruT)Nrp<}vGypqk13Ot>H~cDz zN~2)Gqkub(g3qoLMN}t6E5XO#w!q(85=7qeR@Js$qL|BUVk~R(`~YAY5{z7P%>_j* zJx0S#dIW6rH6Y@y20&irCb8AN(K-Q&^<7~9{s3&V@s@6 v9;#!IcW$>F6gIMp0{eUXu1bo&4pS8ee z@EiUn^fZY7)9~4T_`ORe@-7;pyJELB1NefXQsDmq;z%Eh{30Xd00000NkvXXu0mjf DvWWNI literal 0 HcmV?d00001 diff --git a/app/src/stores/app.ts b/app/src/stores/app.ts new file mode 100644 index 00000000..82bdc1ec --- /dev/null +++ b/app/src/stores/app.ts @@ -0,0 +1,8 @@ +import { defineStore } from 'pinia' + +export const useAppStore = defineStore({ + id: 'userStore', + state: () => ({}), + getters: {}, + actions: {} +}) diff --git a/app/src/stores/user.ts b/app/src/stores/user.ts new file mode 100644 index 00000000..4a821b83 --- /dev/null +++ b/app/src/stores/user.ts @@ -0,0 +1,12 @@ +import { getClient } from '@/utils/client' +import { defineStore } from 'pinia' + +export const useAppStore = defineStore({ + id: 'appStore', + // convert to a function + state: () => ({ + client: getClient() + }), + getters: {}, + actions: {} +}) diff --git a/app/src/uni_modules/vk-uview-ui/components/u-form-item/u-form-item.vue b/app/src/uni_modules/vk-uview-ui/components/u-form-item/u-form-item.vue index 9111eea5..34d2944c 100644 --- a/app/src/uni_modules/vk-uview-ui/components/u-form-item/u-form-item.vue +++ b/app/src/uni_modules/vk-uview-ui/components/u-form-item/u-form-item.vue @@ -429,7 +429,7 @@ .u-form-item { @include vue-flex; // align-items: flex-start; - padding: 10rpx 0; + padding: 15rpx 0; font-size: 28rpx; color: $u-main-color; box-sizing: border-box; @@ -485,10 +485,8 @@ &__slot { flex: 1; - /* #ifndef MP */ @include vue-flex; align-items: center; - /* #endif */ } &__icon { diff --git a/app/src/utils/client.ts b/app/src/utils/client.ts new file mode 100644 index 00000000..f030591c --- /dev/null +++ b/app/src/utils/client.ts @@ -0,0 +1,57 @@ +import { ClientEnum } from '@/enums/appEnums' + +/** + * @description 判断是否为微信环境 + * @return { Boolean } + */ +export const isWeixinClient = () => { + // #ifdef H5 + return /MicroMessenger/i.test(navigator.userAgent) + // #endif +} + +/** + * @description 获取当前是什么端 + * @return { Object } + */ + +export const getClient = () => { + //@ts-ignore + return handleClientEvent({ + // 微信小程序 + MP_WEIXIN: () => ClientEnum['MP_WEIXIN'], + // 微信公众号 + OA_WEIXIN: () => ClientEnum['OA_WEIXIN'], + // H5 + H5: () => ClientEnum['H5'], + // APP + IOS: () => ClientEnum['IOS'], + ANDROID: () => ClientEnum['ANDROID'], + // 其它 + OTHER: () => null + }) +} + +// 根据端处理事件 +//@ts-ignore +export const handleClientEvent = ({ MP_WEIXIN, OA_WEIXIN, H5, IOS, ANDROID, OTHER }) => { + // #ifdef MP-WEIXIN + return MP_WEIXIN() + // #endif + + // #ifdef H5 + return isWeixinClient() ? OA_WEIXIN() : H5() + // #endif + + // #ifdef APP-PLUS + const system = uni.getSystemInfoSync() + if (system.platform == 'ios') { + return IOS() + } else { + return ANDROID() + } + // #endif + return OTHER() +} + +export const client = getClient() diff --git a/app/src/utils/request/index.ts b/app/src/utils/request/index.ts index 12c13d50..57fef43b 100644 --- a/app/src/utils/request/index.ts +++ b/app/src/utils/request/index.ts @@ -32,11 +32,11 @@ const requestHooks: RequestHooks = { if (!isTransformResponse) { return response.data } + console.log(response.data) const { code, data, msg } = response.data as any switch (code) { case RequestCodeEnum.SUCCESS: return data - case RequestCodeEnum.PARAMS_TYPE_ERROR: case RequestCodeEnum.PARAMS_VALID_ERROR: case RequestCodeEnum.REQUEST_METHOD_ERROR: @@ -47,7 +47,8 @@ const requestHooks: RequestHooks = { case RequestCodeEnum.NO_PERMISSTION: case RequestCodeEnum.FAILED: case RequestCodeEnum.SYSTEM_ERROR: - return Promise.reject(data) + uni.$u.toast(msg) + return Promise.reject(msg) case RequestCodeEnum.TOKEN_INVALID: case RequestCodeEnum.TOKEN_EMPTY: @@ -63,13 +64,13 @@ const defaultOptions: HttpRequestOptions = { requestOptions: { timeout: 10 * 1000 }, - baseUrl: 'https://likeadmin-java.yixiangonline.com', + baseUrl: import.meta.env.VITE_APP_BASE_URL, //是否返回默认的响应 isReturnDefaultResponse: false, // 需要对返回数据进行处理 isTransformResponse: true, // 接口拼接地址 - urlPrefix: '/api', + urlPrefix: 'api', // 忽略重复请求 ignoreCancel: false, // 是否携带token From 95e1c837eddaf29a98f93753e3b9d81ffbb97638 Mon Sep 17 00:00:00 2001 From: Jason <5340635+wen-jason@user.noreply.gitee.com> Date: Wed, 7 Sep 2022 21:00:03 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E9=A6=96=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/api/shop.ts | 6 ++ app/src/components/decoration/decoration.vue | 27 +++++++ .../decoration/widgets/banner/attr.vue | 75 ------------------ .../decoration/widgets/banner/content.vue | 31 -------- .../decoration/widgets/banner/index.ts | 8 -- .../decoration/widgets/banner/options.ts | 15 ---- .../widgets/customer-service/attr.vue | 38 --------- .../widgets/customer-service/content.vue | 38 --------- .../widgets/customer-service/index.ts | 8 -- .../widgets/customer-service/options.ts | 11 --- .../components/decoration/widgets/index.ts | 14 ---- .../decoration/widgets/my-service/attr.vue | 38 --------- .../decoration/widgets/my-service/content.vue | 58 -------------- .../decoration/widgets/my-service/index.ts | 8 -- .../decoration/widgets/my-service/options.ts | 16 ---- .../decoration/widgets/nav/attr.vue | 36 --------- .../decoration/widgets/nav/content.vue | 35 -------- .../decoration/widgets/nav/index.ts | 8 -- .../decoration/widgets/nav/options.ts | 15 ---- .../decoration/widgets/search/attr.vue | 20 ----- .../decoration/widgets/search/content.vue | 23 ------ .../decoration/widgets/search/index.ts | 8 -- .../decoration/widgets/search/options.ts | 7 -- .../decoration/widgets/user-banner/attr.vue | 75 ------------------ .../widgets/user-banner/content.vue | 31 -------- .../decoration/widgets/user-banner/index.ts | 8 -- .../decoration/widgets/user-banner/options.ts | 15 ---- .../decoration/widgets/user-info/attr.vue | 20 ----- .../decoration/widgets/user-info/content.vue | 23 ------ .../user-info/images/default_avatar.png | Bin 6093 -> 0 bytes .../widgets/user-info/images/my_topbg.png | Bin 142469 -> 0 bytes .../decoration/widgets/user-info/index.ts | 8 -- .../decoration/widgets/user-info/options.ts | 7 -- app/src/components/widgets/banner/banner.vue | 29 +++++++ app/src/components/widgets/nav/nav.vue | 29 +++++++ app/src/components/widgets/search/search.vue | 9 +++ app/src/pages.json | 3 +- app/src/pages/index/index.vue | 21 +++-- app/src/pages/login/login.vue | 17 ++-- app/src/styles/public.scss | 6 +- 40 files changed, 133 insertions(+), 711 deletions(-) create mode 100644 app/src/api/shop.ts create mode 100644 app/src/components/decoration/decoration.vue delete mode 100644 app/src/components/decoration/widgets/banner/attr.vue delete mode 100644 app/src/components/decoration/widgets/banner/content.vue delete mode 100644 app/src/components/decoration/widgets/banner/index.ts delete mode 100644 app/src/components/decoration/widgets/banner/options.ts delete mode 100644 app/src/components/decoration/widgets/customer-service/attr.vue delete mode 100644 app/src/components/decoration/widgets/customer-service/content.vue delete mode 100644 app/src/components/decoration/widgets/customer-service/index.ts delete mode 100644 app/src/components/decoration/widgets/customer-service/options.ts delete mode 100644 app/src/components/decoration/widgets/index.ts delete mode 100644 app/src/components/decoration/widgets/my-service/attr.vue delete mode 100644 app/src/components/decoration/widgets/my-service/content.vue delete mode 100644 app/src/components/decoration/widgets/my-service/index.ts delete mode 100644 app/src/components/decoration/widgets/my-service/options.ts delete mode 100644 app/src/components/decoration/widgets/nav/attr.vue delete mode 100644 app/src/components/decoration/widgets/nav/content.vue delete mode 100644 app/src/components/decoration/widgets/nav/index.ts delete mode 100644 app/src/components/decoration/widgets/nav/options.ts delete mode 100644 app/src/components/decoration/widgets/search/attr.vue delete mode 100644 app/src/components/decoration/widgets/search/content.vue delete mode 100644 app/src/components/decoration/widgets/search/index.ts delete mode 100644 app/src/components/decoration/widgets/search/options.ts delete mode 100644 app/src/components/decoration/widgets/user-banner/attr.vue delete mode 100644 app/src/components/decoration/widgets/user-banner/content.vue delete mode 100644 app/src/components/decoration/widgets/user-banner/index.ts delete mode 100644 app/src/components/decoration/widgets/user-banner/options.ts delete mode 100644 app/src/components/decoration/widgets/user-info/attr.vue delete mode 100644 app/src/components/decoration/widgets/user-info/content.vue delete mode 100644 app/src/components/decoration/widgets/user-info/images/default_avatar.png delete mode 100644 app/src/components/decoration/widgets/user-info/images/my_topbg.png delete mode 100644 app/src/components/decoration/widgets/user-info/index.ts delete mode 100644 app/src/components/decoration/widgets/user-info/options.ts create mode 100644 app/src/components/widgets/banner/banner.vue create mode 100644 app/src/components/widgets/nav/nav.vue create mode 100644 app/src/components/widgets/search/search.vue diff --git a/app/src/api/shop.ts b/app/src/api/shop.ts new file mode 100644 index 00000000..0cfaf8ac --- /dev/null +++ b/app/src/api/shop.ts @@ -0,0 +1,6 @@ +import request from '@/utils/request' + +//首页数据 +export function getIndex() { + return request.get({ url: '/index' }) +} diff --git a/app/src/components/decoration/decoration.vue b/app/src/components/decoration/decoration.vue new file mode 100644 index 00000000..d1628b94 --- /dev/null +++ b/app/src/components/decoration/decoration.vue @@ -0,0 +1,27 @@ + + + + + + + + diff --git a/app/src/components/decoration/widgets/banner/attr.vue b/app/src/components/decoration/widgets/banner/attr.vue deleted file mode 100644 index f731aa65..00000000 --- a/app/src/components/decoration/widgets/banner/attr.vue +++ /dev/null @@ -1,75 +0,0 @@ - -+ + ++ + + + + + + + -- - - - diff --git a/app/src/components/decoration/widgets/banner/content.vue b/app/src/components/decoration/widgets/banner/content.vue deleted file mode 100644 index 9dd347a4..00000000 --- a/app/src/components/decoration/widgets/banner/content.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - diff --git a/app/src/components/decoration/widgets/banner/index.ts b/app/src/components/decoration/widgets/banner/index.ts deleted file mode 100644 index c776bce3..00000000 --- a/app/src/components/decoration/widgets/banner/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import attr from './attr.vue' -import content from './content.vue' -import options from './options' -export default { - attr, - content, - options -} diff --git a/app/src/components/decoration/widgets/banner/options.ts b/app/src/components/decoration/widgets/banner/options.ts deleted file mode 100644 index e33d9211..00000000 --- a/app/src/components/decoration/widgets/banner/options.ts +++ /dev/null @@ -1,15 +0,0 @@ -export default () => ({ - title: '首页轮播图', - name: 'banner', - content: { - enabled: 1, - data: [ - { - image: '', - name: '', - link: {} - } - ] - }, - styles: {} -}) diff --git a/app/src/components/decoration/widgets/customer-service/attr.vue b/app/src/components/decoration/widgets/customer-service/attr.vue deleted file mode 100644 index 6f7dc7eb..00000000 --- a/app/src/components/decoration/widgets/customer-service/attr.vue +++ /dev/null @@ -1,38 +0,0 @@ - -- -- -- -开启 -停用 -- ---最多添加5张,建议图片尺寸:750px*400px-- ---- --- -- - -- - -添加图片 --- - - - diff --git a/app/src/components/decoration/widgets/customer-service/content.vue b/app/src/components/decoration/widgets/customer-service/content.vue deleted file mode 100644 index 854deab4..00000000 --- a/app/src/components/decoration/widgets/customer-service/content.vue +++ /dev/null @@ -1,38 +0,0 @@ - -- -- -- - -- - -- - ---- 建议图片尺寸:200*200像素;图片格式:jpg、png、jpeg--- - - - diff --git a/app/src/components/decoration/widgets/customer-service/index.ts b/app/src/components/decoration/widgets/customer-service/index.ts deleted file mode 100644 index c776bce3..00000000 --- a/app/src/components/decoration/widgets/customer-service/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import attr from './attr.vue' -import content from './content.vue' -import options from './options' -export default { - attr, - content, - options -} diff --git a/app/src/components/decoration/widgets/customer-service/options.ts b/app/src/components/decoration/widgets/customer-service/options.ts deleted file mode 100644 index 3a5efda8..00000000 --- a/app/src/components/decoration/widgets/customer-service/options.ts +++ /dev/null @@ -1,11 +0,0 @@ -export default () => ({ - title: '客服设置', - name: 'customer-service', - content: { - title: '添加客服二维码', - time: '', - mobile: '', - qrcode: '' - }, - styles: {} -}) diff --git a/app/src/components/decoration/widgets/index.ts b/app/src/components/decoration/widgets/index.ts deleted file mode 100644 index 20bf4bff..00000000 --- a/app/src/components/decoration/widgets/index.ts +++ /dev/null @@ -1,14 +0,0 @@ -const widgets: Record- {{ content.title }}-服务时间:{{ content.time }}-客服电话:{{ content.mobile }}-- 保存二维码图片 --= import.meta.glob('./**/index.ts', { eager: true }) -interface Widget { - attr: any - content: any - options: any -} -console.log(widgets) -const exportWidgets: Record = {} -Object.keys(widgets).forEach((key) => { - const widgetName = key.replace(/^\.\/([\w-]+).*/gi, '$1') - exportWidgets[widgetName] = widgets[key]?.default -}) - -export default exportWidgets diff --git a/app/src/components/decoration/widgets/my-service/attr.vue b/app/src/components/decoration/widgets/my-service/attr.vue deleted file mode 100644 index a29d8943..00000000 --- a/app/src/components/decoration/widgets/my-service/attr.vue +++ /dev/null @@ -1,38 +0,0 @@ - - -- - - - diff --git a/app/src/components/decoration/widgets/my-service/content.vue b/app/src/components/decoration/widgets/my-service/content.vue deleted file mode 100644 index 6317bb52..00000000 --- a/app/src/components/decoration/widgets/my-service/content.vue +++ /dev/null @@ -1,58 +0,0 @@ - -- -- -- -横排 -竖排 -- -- - ---- -- - - - diff --git a/app/src/components/decoration/widgets/my-service/index.ts b/app/src/components/decoration/widgets/my-service/index.ts deleted file mode 100644 index c776bce3..00000000 --- a/app/src/components/decoration/widgets/my-service/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import attr from './attr.vue' -import content from './content.vue' -import options from './options' -export default { - attr, - content, - options -} diff --git a/app/src/components/decoration/widgets/my-service/options.ts b/app/src/components/decoration/widgets/my-service/options.ts deleted file mode 100644 index a69f3558..00000000 --- a/app/src/components/decoration/widgets/my-service/options.ts +++ /dev/null @@ -1,16 +0,0 @@ -export default () => ({ - title: '我的服务', - name: 'my-service', - content: { - style: 1, - title: '我的服务', - data: [ - { - image: '', - name: '', - link: {} - } - ] - }, - styles: {} -}) diff --git a/app/src/components/decoration/widgets/nav/attr.vue b/app/src/components/decoration/widgets/nav/attr.vue deleted file mode 100644 index 3128196d..00000000 --- a/app/src/components/decoration/widgets/nav/attr.vue +++ /dev/null @@ -1,36 +0,0 @@ - ---{{ content.title }}------ {{ item.name }}------ {{ item.name }}---- -- - - - diff --git a/app/src/components/decoration/widgets/nav/content.vue b/app/src/components/decoration/widgets/nav/content.vue deleted file mode 100644 index a9abc8ac..00000000 --- a/app/src/components/decoration/widgets/nav/content.vue +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - diff --git a/app/src/components/decoration/widgets/nav/index.ts b/app/src/components/decoration/widgets/nav/index.ts deleted file mode 100644 index c776bce3..00000000 --- a/app/src/components/decoration/widgets/nav/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import attr from './attr.vue' -import content from './content.vue' -import options from './options' -export default { - attr, - content, - options -} diff --git a/app/src/components/decoration/widgets/nav/options.ts b/app/src/components/decoration/widgets/nav/options.ts deleted file mode 100644 index 3e626feb..00000000 --- a/app/src/components/decoration/widgets/nav/options.ts +++ /dev/null @@ -1,15 +0,0 @@ -export default () => ({ - title: '导航菜单', - name: 'nav', - content: { - enabled: 1, - data: [ - { - image: '', - name: '导航', - link: {} - } - ] - }, - styles: {} -}) diff --git a/app/src/components/decoration/widgets/search/attr.vue b/app/src/components/decoration/widgets/search/attr.vue deleted file mode 100644 index 93f92786..00000000 --- a/app/src/components/decoration/widgets/search/attr.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - diff --git a/app/src/components/decoration/widgets/search/content.vue b/app/src/components/decoration/widgets/search/content.vue deleted file mode 100644 index db2a07a5..00000000 --- a/app/src/components/decoration/widgets/search/content.vue +++ /dev/null @@ -1,23 +0,0 @@ - -- -- -- -开启 -停用 -- ---最多可添加10个,建议图片尺寸:100px*100px-- -- - - - diff --git a/app/src/components/decoration/widgets/search/index.ts b/app/src/components/decoration/widgets/search/index.ts deleted file mode 100644 index c776bce3..00000000 --- a/app/src/components/decoration/widgets/search/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import attr from './attr.vue' -import content from './content.vue' -import options from './options' -export default { - attr, - content, - options -} diff --git a/app/src/components/decoration/widgets/search/options.ts b/app/src/components/decoration/widgets/search/options.ts deleted file mode 100644 index e02e2983..00000000 --- a/app/src/components/decoration/widgets/search/options.ts +++ /dev/null @@ -1,7 +0,0 @@ -export default () => ({ - title: '搜索', - name: 'search', - disabled: 1, - content: {}, - styles: {} -}) diff --git a/app/src/components/decoration/widgets/user-banner/attr.vue b/app/src/components/decoration/widgets/user-banner/attr.vue deleted file mode 100644 index 98b4d2ed..00000000 --- a/app/src/components/decoration/widgets/user-banner/attr.vue +++ /dev/null @@ -1,75 +0,0 @@ - ---- 请输入关键词搜索 - -- - - - diff --git a/app/src/components/decoration/widgets/user-banner/content.vue b/app/src/components/decoration/widgets/user-banner/content.vue deleted file mode 100644 index 9c3ec86d..00000000 --- a/app/src/components/decoration/widgets/user-banner/content.vue +++ /dev/null @@ -1,31 +0,0 @@ - - - - - - diff --git a/app/src/components/decoration/widgets/user-banner/index.ts b/app/src/components/decoration/widgets/user-banner/index.ts deleted file mode 100644 index c776bce3..00000000 --- a/app/src/components/decoration/widgets/user-banner/index.ts +++ /dev/null @@ -1,8 +0,0 @@ -import attr from './attr.vue' -import content from './content.vue' -import options from './options' -export default { - attr, - content, - options -} diff --git a/app/src/components/decoration/widgets/user-banner/options.ts b/app/src/components/decoration/widgets/user-banner/options.ts deleted file mode 100644 index 4adc70e7..00000000 --- a/app/src/components/decoration/widgets/user-banner/options.ts +++ /dev/null @@ -1,15 +0,0 @@ -export default () => ({ - title: '个人中心广告图', - name: 'user-banner', - content: { - enabled: 1, - data: [ - { - image: '', - name: '', - link: {} - } - ] - }, - styles: {} -}) diff --git a/app/src/components/decoration/widgets/user-info/attr.vue b/app/src/components/decoration/widgets/user-info/attr.vue deleted file mode 100644 index 93f92786..00000000 --- a/app/src/components/decoration/widgets/user-info/attr.vue +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - diff --git a/app/src/components/decoration/widgets/user-info/content.vue b/app/src/components/decoration/widgets/user-info/content.vue deleted file mode 100644 index dca207d9..00000000 --- a/app/src/components/decoration/widgets/user-info/content.vue +++ /dev/null @@ -1,23 +0,0 @@ - - - - - - diff --git a/app/src/components/decoration/widgets/user-info/images/default_avatar.png b/app/src/components/decoration/widgets/user-info/images/default_avatar.png deleted file mode 100644 index de31d02adfced125ae228824df009132f2a5085f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6093 zcmV;;7c%IHP)- -- -- -开启 -停用 -- ---最多添加5张,建议图片尺寸:750px*200px-- ---- --- -- - -- - -添加图片 -Py1he1RCr$PU3-iqM|uCgn%RELu6NgWw&ehJARt{5J5fT;55Tqv=O7+Z!WnEJ z0TU9(wnAb>c`6`9;SVFBAfd=gY@9fO7_f8a#2`h%l6{u!fQ7LUaRN$WV+9+?;m6(W z?(J?rW~M9pmFrvA_RZ|{>~v4}-d#(r*`4V}RsHIFfAtm94mh;dOhhdr(#+g TK_i@{SOg+Piy_Z zVHh4B^gbd&d-}|*n?8JKXd{ndplYrCG)?zpS+ |%uS< zm>JhK=4cGS zmKwl<%>Zew=h8IYmu1=2N~yPLt#{*V0A>L(695w;%QChn_4|Fwvdnx6Ncm5DKOSU& zz-Oz~BBj*Er&3DebO3AH=SUllWLXA~5BR?SATxvFO?zw`H;IzE5U(BJJg`ZUT&T6a zo`|j{qH`TkF<=@4*zfllXSds>Uaz+S<^ZbOG_C?@k?REXcDqe8Gcy2Q M%)K`h<<{${}vp|a#FjW~nRe OjH_t$4=ANR>UrK{@_pX) z8a1&d`F$z?yHvZrzWz#P{v I3TPX!DgeHJ; zF?qk(>-GM4c6Rn~UOZLV&dLGSTDM{H0OTY|ev6rJwi@v!U;!@J@J<3Y4~zf}jT|65 zKpTo?<|A6`kNLiTJGhmM&5i_E92EdJilQH9<~uAqHmn%47}UDHzHWeR8VjCu&;d4p z?sPf^XxQiu>wZ9MeO(xa&j92qy<(M6u*;H@B>7dX^ SIc&kNCcSSCuTgbbv*Xg6v6> GMj9DbUa-vv)tnIM+}urw%+ rz+KM1vFUp z>@0#{#sdbBm$laK4#V(JSs+ggutT|5X|3-fA`dP`I4q7IKW-GM)8Gz<85|7?*coS> z0lOJ28_tmgJ_6tO?=1u5i2#-cL{aoXX8xSjh;_f;S1T(k#uIfK+^uzOfD8x8{QNx3 zD)EBBU3;zX`(Kz8 $@e!3KIz6B4l?O+);+qOTUZF43MqzCFbM%eBVDf z3CP<5*pa#KB%&|DBm$V-ZkJDkTMX1e8a5(U0NL8hzy`AUSArn;%635>8(`S7u+`Eu z-J50EAt+RkxxHRbEiW&hrrhn}yFtkSd0}BeC>b(&MJe?b&-0KvWX67+SBwQPlmLLa zzP^6GQtDwMf(x?W>-Acv!5wGVhhGbJ?SO2;rbq(Jvh0dZr-Q^mgF(@^6$Ti7RO>_b zlOzG 6p(nW46& $wb73j>|8i8>K+sUR(!oksTo&;2e|N) z!!ZN%uI@gGb`5VA>}0JqWG}Kke 4f@>9RfLk*RLj-Gp*Afw35(L4MMdWc2fQ{^p &}P%(51_|cm{&Csl8W@bd`dLRgbUn(Mtw*=U+cW)x1zif)! z74OfkUAv5ot@6M`1~u0SGWv^t0%S)X-xLJFEu&cVP=JN}qbNdD=rLyA1xj99TVu$o zx>&P-d)8TJnT&~P91umI=DI;fEO~Zz*05@%|6ut}7=~C!HPmz}0`M2%{B8nk7V`n% zLQ|gR0V;- Go1!fun6xsjvpeTE06*jMUgR!>YBmOZecE1IaCL}#xe533oq0f zB?HJ9hcFC{lZl8P3WDIx!xXL)0G64MB*}Yil*q&>>-1KM+&%m3vumRsnNhI&j~+c* z+eCN0T-Id?_I! ^dzk2BV>ZW2e z43i5!0EdeA`@a9Bye!TGEKUss6W#*Nd3}Ao1v8;8#R75 {PVT?;4v;3 zlTN22&W}Su5L}s;#Tx*Ns-33kMOl`8Lk1JnTj$CH%v4bCv~1p@lL#gg&blT(+KG2# z@{6cYN?qi6-s7&> J`(d30^C70D}lc!sZS)iiklyu!-v=fI;3ZW`3{l`v-)I zHvt?)(E(<@8UU}Yt(kR1by2U((A~Rt%jF0gT4fZ7#_eSs%4w(^~6)48!n!8vqL_ zV?9x;)%p&C3SiGmOG{jLUNfi!&JAQ{H1Rlc OM!h-R=c;os(Ip zYZhonQS>2Z{;bWIH1Xa#8!muC!D=eN@MwX{)u~AjV$)jdYr` ?jJ}rYsO|O@K z7hnD2;v&*%kzM$V@B2T+%#i^&P1DzBS@un^59wLXo?fd@E zBZ2OfN-4M}7qcug_HPs9uXF%%7_7%;_>YT2CD%jlBAV2saY9EShhYyZrA+>Gzu&(A z0AGfMWN=)9a_i1_9yBu%NkT-aDeSNbS(d|Qu1(6r(@lv9Hz6-;7`Tq2Wzwve`PTsO$C>%hB)DH^YR*>t6x0h@Tz6c!331@907hU& zk^q?b&jIj8fZ_P@ COFlRn^o6=Rfq^MH1z-lTTOZ+@PH!Qk7%vm02U1m zy2({>>P+8hGHaFzCreHj78ayp&(~0w`9Fy0XPRmv4N|%gBc5i4B?b ?QFO0RBHB`mv_OfJb#=n)Wg5 zU4RS9ZHkGu)%Z9;2Lbqp02m937m(BgCkJHBPC3w4B;~<`D%;ZqSL9ABEaR+tFbP?3 zb^u`1Vlo>+)tTVFok@j0Ncjev=|AzRLr^Q$V9CO7yrXFztF6Y$Nr=Z~T>#v*1*&%x zz`|*yiVoPRl+uR+h9E^za}Tj^017!PMauD9slqd;O3!vC kBxs@@G zP5?xJ0JkB45E&`d2C%`lWn(Lu2>2bRRM?Syn55q>uwehNE2TPp)8+607QMWqlq@N@ zVk^O!IRJnFGC&Y^EtD%@twKT|tbQAE1=r90& ziilp 9mc9%*^1|bVx3JiPG}Cmh2qteM7u!%+gcu? zMSm9nKS4x4+f+vffI_V(*u6#l&{EtC@)W?k742kDWUD$1i0oiilm)|I51{j$VHz@a zl$m4!mYDDpa8-UyYyC#JDpyuku(wfR<)rEk$qKqjQ+7n|y6v4*al+(*cdJQdlhIFb zq51jwmtB=^u%RjGvH+rqf&To226q6+O~^nMUEzdaLleV=bp{p2 >^Fsc2Eq zA&=`wnivoZ{*FnTMZ=RM!AdkF-_?@%4%vlZ0c_o!egIs6JZ)C(r0YoH`<=e;Uuyu4 z y!&I9^@= z?v!x27Aw-GS;7GgtFt`tC{{b^@6*z#F^;f*J KNyDL=cR;$si!pUA}qpIz@DeA zaZU 4T|%v8V=PJUY+|YYvRP@_rT;~9 z-uA{=InNfhlf|~OCR4u5t?f>h431F~qRfi4PS%EjY1>=dxn@%oMR%i2eA#9Gh1I~D z)zo^>qre;WI|!oeO|(ndoH7USYl!IaDz=ve$Otr`ie1z8MH&U(R=-1Y2DoLGeQ +nvy9L2C^t@SZxz9a~Or?%P{TAn?0_fhxdPS(eVnfdRCsL#x1SF|cC tZ`{jEU|{PwWjz6ZT?9Dq$A0vVWTnqo`wOCgW33w4=Zt}+H@ z&@)`HHrSV`H1zV(6y?tKR$=#b3+N-B=RpUGi^$%wShS-EnUG=>MXzDzhl%J_0J+!e znSGY(UR^io bE02kuM)*+EiC%>NhUthmeDFw}X4xo3t zT~llNG|1zQ=*!pVz?D_{$CXn1Y@GLmE!;=FtuTuoq;$n`{L4gyox<^AXq0>! NWs2S@qAN$fXwsVsslV#sSY{~OE0lDAr8<3k)yJC_)R(&tPgt-UGZM9ke7np#8 zKeUm&zD;l^1~^B_S8J`mKtwZ;$yt^ekgLqfta|XPe!iGONSsqjiOlU{uLa-t4{nz& zPo!iG>a;W@j^lR{(E%drK)Z%Q25(oD&XB4>sOtFu7k+m*F=VWWXpM-j34-8X%K*0& z3eL0ZG);dY%d&fk=sY+>n7Ivr0d$!T_^JlJ>gUQBNMJ>4El!MQl~V7*euHI!TPnaV zyGGrQR;zW7*7_0)atj(ZA}yyf%a&jYz-_m&y`XVFLXUa0-|xSt)9L)6OmIsF*n(_q zHLbOmB*`sAbUoav)(d8~jYs6=RHA0-E23oZE!**dGKH;RZ}WZsChSW#jtjCVr -Um%gsI$Ab>hPI6pKpO=i7wsu|a+mfv@jS_v0x*AEV6EfgZmsnn zbvm6NLe^HrlJlLK3cwCEqhm(lT3=s(qf+XVM0A-=0mb*AXzad*I@ZP$<_7#rL!^WU zx$S}{3ZQzPhpk=3)o3O)5q&kwvOno`I@n>(C{|$CB{ZSXBc=*)o|@6&G)?zsS@x&Q zyw|oE%7$^0^m;w~ZcM8tfSm_biiyMIahw&h=K3+E)F(X8`?6RN)1q1z`Kbe(qh_Ny zTKW7ABKiX&y26?dVA0Sj@%tvQ-L#o1S-G1ekgpIgprWnTYCu!aUc|{i<@^3uq;FzT z6e78jFRBgTL2Mh}rD^(eS(aT#L|4g MNpA`SA9+G6rAs%Wp_|SHsYUJ>%}xpugtP+KQmuSM6VV$F85o|!6L<; z1eI<4Z2y-2n%K2m>;7%Q1KZ6v4T=#`X1=bJ`e)Dc4ly&f1vH1XXQ3#T?yQ((5;P8A zXTZdjXPgAi_g W?s=+1Hj|VysEXvCw5_d5}@|`{bz~j*)R-$ls9RtD8abFes3hG?%4f5Gb65d T*+R{{00000NkvXXu0mjf-T0C1 diff --git a/app/src/components/decoration/widgets/user-info/images/my_topbg.png b/app/src/components/decoration/widgets/user-info/images/my_topbg.png deleted file mode 100644 index 8984438323c87a2ddafc2a593322309292fa5159..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 142469 zcmZ6SWmHsO*!Dq6Ns$y7Kv0nokd#Im6h>m`5NVK(A%{@9L{d`e4rzvzMj5(>fuYkG zI)`B%{?EIfFYlLg);gc|+UH*Ty082C?dbPfsuZM5q&4zu^J#|zS@Ty@fyLfo)c pJVL*}J!GF(xR1M%!(sO4*uXf xZSoQ=2n$c6?Q$KT4daohG37j*|>u2 zkmt=4jD>5i)zAr{jSJaUD;C#9$hNduu%60t5^$y}d=CIm;)OMrb*Q})X}c9{?U5wv z&}zmms)0KWpZz?hlE}UBeq87L?CtSzo_DPJ5l(W)TcVAJCucmbQsO5><@>JXR90md z|L<9a(~9Um JGo;_ !vQZ2z?$K*aQ%aG!YUQ&7(`_{Q5j1Lb&< z58z1rfLxQ9r#u$Bf~R(clADRuGzL$()@&UKK%yE&8!Dj3ms~56;-{+=vXzG$8a1w! zV{&r$(0d48fx@xBw-9))3JTUD=gtcBJ8J0Q9Rsed|F`Xl1TCKK4}yj-=*g@bq)_wE ztQuY=;^s@dpWn)Ar{MAW?S(k@Ss)n?FGhM8B=fcm57~EKW>BA0Zt<`eaB60>5Te BmB;g@LmWs|2Oj`_HX7;~JpmYnfaf>oR=~41tWmS8vx0)tg-Pl|k?tTp!_U(I9 zDoJvh C>&b;YBdNLq=lYTry!LW0 zZaq7(xsvl+2Tb0IfNTR-PPy!6fAaY+cg#Fi_U9^vQRl=UFryckG593{(;Wo16IwL; z>+>8crEFFSN5jy?`F3`jf47cQFjAgB6mQE;9v@j3QQ^R1acUOS+%8T4?aqNVj*nN{ zdGwZ_FDO4eNzx$+a({m2-nW$hm9+c8hqZd;FBSH$#mVXWfl0RUN~E1m(n3s3!GYvR zzBuyYeapskvh_zxhEP0dDgWK1W#vBX*RyB8_fHF?&fb6B;bM6d3YsCu9?>ucu;=7n z4y!j(3w7G}E#jLF-Shvm2~kda`HihDD2LHa^UGE5E=|D{C8UO?V&8gjd;0XJRNZTa zM?fczZ=+{xH; aKRPxQ7X&GL-7XhaVhIH4mTRIPZVD|j|e5+Z=$>hYO-`uMkudF zI76cX6bO>4X_i8L(Poi<^Z?B=^Ti}zr zkKH4Obl^%lKV&z#ufvzslVh>Mo3G4^beXd*9KTZ*Ajvwc(lm_821GOuIH)*Bp9lHf z)=8SZ*cH9^Xvd>L}SmfAXcUCj6JcoUKkS;tdz`NK(wWOolk9E+T_f*d94i@z#=9 zQr5%AzCmXIgbThnm+j&@na3aIl}!_KFPV^2OLIM3DLFk-%A@!6B}N!X#U;T||J-b4 zZyW;n_40F|v95$( j7*q!xTq4eQUF1!@WM? z#Pd(%^BmL-Bj!@
4=fE}3L1yPC1`gSWqIGV!~`$4)We{in?xF~7hP!xOh7IaD6@ADpXmI`xuv z-oQ2B^8Jlryd<(|dhjJRF?!EqcU8{K7DdWewrfU7Y>BT-m`RFYY&qMnh)+f}9XK*; zP||a3K2iP*`(z))lxvmQCLJ=iXFbi{RL}AJ0*;I4@t&<&BR{iT7@2HaC7B?H9+k*y zoRKacT}?<{_gQ2F{?QC*6hqct0I>(UI9vmkAIs}^V}0|ZWrq^d`k9UPBJOY=Nkk>v zpB%Fp)n%`Xqn1E_B(yX9aJ|Tkl}4=}EJKJ+!Qs7X&_?x;Qjf!1v$`Q+wbA&`o2l*} z`piORh00aAxCTBgG%5TRdl2@Wc7{f}s#1Rih6KF#UUMG^dgMMw%R;xJX$HPlOnbQZ zLN$Zk=#9xGk{U2y`xG1Mo}< sY|G;Jkf`Y ;uNR~R}OEs2GVXz%Ic*kH4(eoYI;tG=KIa>Lq8@Dx9V&zjUH2vz3V zy)RMPn(1AdFK-_#_Xm;gR8Vh%+>JRyCeGb;K*i3CwdO{EtqeXInUBd )GhcDM~4G% z?lwH4xdQVZ8m K3*!o+OPM~6pvl51ePJ_<83!7YsBz2f}5hP*0{iCM_A zSRq%$W#iM}hxoYCr5N*}+9`0d^1TL*28U?`Cbx1l2~8AS n zrABS(^{dXu22_#LG;JWc9e+@o2{?T4kz;<7M{j)VW-b9ffb3$K2Avot`hDg2VVA z_b7myD=|k6c_k>W_8amRFwv4k+beSa3U8Xp|IC0ycKGIgKtX8FA0kPfarQUw>1(cF7*N>d~cjUjzuC zwrl{N3I(%Vms5jB2Htq_`60a)7`WG9d&*ax=S9VJ^gR~u1ZPW>5Q |e~T9LC8Uhno>n5RMy6FT>V`|mb1 zY50q+_6b@ %)hJoeZ;`CeU#mTGC#wgcvYzySf6sb+!Frs=&c>Ynl^^mMia+{Nxm zu!bBFX1E24GVt{Moaj2_36>Qe|3GJ5J+%9s1}>QPWaiv)MgaTR~x4?*x#h5;~C^ z>n!s}@l{m@oj+CI&d$50R@18Rr#*d~zdzmMDdaMw34T~4+V(`eDtXj&KPv7T@m^O- z)%@8Sni{sma?$hWYjz$(D;HHw^PxflC3)|L+0_ rDf%+~vBH<-?G;Kqy4cfd z1*g2dmUW8Gui>s=bP}MO(Yk$n_mLX!bzD?aS&&~?oN;YF+%fScd9XY^5HXnb-^SB} zYtO>2qgNjLHDHN`YGo2DP4VLF>?$q!e3f9n+8cfIgDjt&a$Y1eIP79Ros7aPoNco6 zm|?}{tEo`n$I`s(*roIO*7ntlX_uh2!7e7b%8e^xHlNKp=#gJmA}{Ovl2kTmRun+C z^A&EX_0sTK`nHn_QSsnuZ?mwX- GNtFJF`WzKbG1 ziy=ek7k)k?mBSYiF4Il%B_cgTmB-~Y9ZE{RJz5@}gjnIOiUfErYR85RcKPKmj3i&m zQYo`-JTL$J?Uu!t236;7jocC4#qI1i?bNNO>^Tb&z~l8N!RQB{9b#Mh^Z^&4e7dwI zEDmjKPdxeeTiC`7+1OOOlJigFmSLdC@sexFZxy@nsu97Ig5nOkrfOX~Hk!antv`~? z`a=<@kJ-%ocBN}T%q6rL*KL>D9yk&yzT>OW3vLenOd?m5D6p|9yn;?BxCU?C$2J2O z$KbmOuB%_6jzUsUj!EEWX^iPaT_%q5<-Mo6nY|^bnF$!Jo5*c3%YC@icDQVQ455dL z_fCp13&^HgdWs%(oPA->=bCT5LG8*FzbBe0Oy2r!iB%Y|$s;@{bLACMC_G>6YBm!E zRnpMiYiJ~jC$u2!a?a*FE|dJ*#cQ;0`~uxF@Ot{fk%h$cFX5zSa--9X&tw)ib*PPZ z?j|5wa&0-{sHt=(>8-}?^*T@~w*JOBF?3H5^`#qmxp#FWmM8T7SysI8$4b|QcCB0m zY2RLf>6<`5hU`q$(W&C+9#^plf2!d>%15+i+qN(tt+ $KUw*t zFcrXs_1hTnA3_E)uJ=3=0%BS!G vSH+B{3ta7m?J=n-_?Rdk4YP8b)cu$?V_eaRm* zpSt~y(zTl8oG3u^(*=18gI0iO^YMiM;yWULn;T$#TornBsLRv|#R6Clg&bekzFN1} zJuMT6ZK*GRSNFsApH`BRYK?6+B(Sf;gWXGnzow^u_H<|H&C&!N^5F;9pGg6!L`JZ; zP$qY?O$MrpkxGwb^$LQgfBj6r^Rt6|*3?cPQ`mqjFtaRC78QiIGbJ46MlWEn@0q8B zV17&ARGnP$M{zeD(&pkkN_?p$wJe?W>!l}xE5x=qayOTv9-a%wWH}wGULTZ5`@(Nu zvYgiNX=&Zk`bih9lP$^-pj{8X`h<%ygB$-8ZC<57_@@^ry_LxZ!Q1aFYv8 >M(9(7B7V>pTJfXAsR-6F~u+>9Spm=HmHrzLnR$ 8T^vo!+~a%c$+KTDIn8vJc$WpxZ)uaO&u; #8$hoADC-66_-OM{uP)Cl@Gt(DA(tdJ0uQFs$t zZ@Dwc<7>%)p!`zD4yoU)T1s@91X_#Be!8h*D)ZNIbUaqOVfoGaM?ktqid3HsLq!zk z1EMMlBi~xA?YR>qdaB>o!FW*+1$AY79@`~s(dqs|>|1li$cu4&MYIxv6SZ45cKOky z>({0wO*1Qt^r;u6Ny3NE-6dYq&Nw}WWqX_o8}RC|0Slan{7)z^#C;5 ^W}5@8=2 zbstx?0vEMw+oU=QS}KkVr0--hm2v<$?#hjua8rM zG>@0HOZlfY+WzpZv7VfcrtT~W+GSIND{=f`FH7FH-RRO4u4rpFI%KSyZ){|FfVj9F zx4a9|H*67S|Acy3f5<)BU5eMjC`yIBlev>%4H5!*mpF3pMcU~Ss$J`G(eo* z<0U#9x?51X#x;HWP98(J?SFbjuQ`#S5+YF(V8;+eCSu)DwC*B!OEYpGF zdei0U^TFCgLpYU8MFzhra_fzjJVdm}qt@;52tvl`vbr2(zx@U!Py2iNYNs9o!DnKE zcFsAbEW99rSI3p>Dr~#YUYzL)#)_2uMrWEFl#ndvY}k{$KWmMsl6)KhG8xGV*Qv^0 z{%=*r4YOUYBJAX2MZhHg^jF@~;?}moM&adw0)2RgTwsw>%0j787f*@U7UrPoE-@6{ zP8nmM9Vd3$;$KtVRh9TnZdiTuQ7;&S1Kh}y|N5+|@0mGlGjl$CS>O(y?R7MriFIU^ zx^Cg5I@gs+6m@57NxYAw{!1Pr>(IsfV}_BppxF^e3;;UZ{SZ#pd7Ei6H(K$Dm{Nz@ z>>8tz37b ABmg{F73O4037IlTwFUh0FlB95Ij z?lmFlRaX<&OfWi08Plw3fc9Z9C%Oqg@Z(8dLlI#4DBfZd7yO%L`4H=RdX&O|T)L%T zy-AVn{F*)%f&ngCf==Vc|JX-%)c5Lq?%(O&IWd!D$*%e$7xO{d;UETBD q)jZZSh*$E+U5>Rh %?`LuWr-=pa~+FM z@x?Uv;y(zlX<;Uw>$V?s<3ly|M_v6b-|w)XAtHdfu2Ea1R0if?jhYix^!;oh5&s~> z>6YH&yW?<;d}KU}-$5@ot`nZ{uensgGEdsTY?F}+%0dQ+X`ayl @={P+yKSvhe+)QuSepZ2W9M@s-@j_ z> rb{_X?)8To`BUc2Oz_XA!-pANV5J`sl -E;WxJz~7?i z_DKsG71avq#f2|>`EHg66+Tabe|EhU$YRW|O;3HY{-<64_D!$_Q&&7?-uV&O6(;~` zN!cjlLw3J+9bVrx?X1NLugEU8R)_dE>Mqg2KbfMyU#3;0HgnAQ>DG4>FzOi6rxlzg z+*ElurCd 44+HvX3f>TerZRG=aAK!7+IJ`KX*W`Q=O~oASOun(0+N zX F+WF0ApWtf1o|`2%WSQ0UCMjH z*r@x$-ww3>RHDAuyC^(;2%8B#BsMa^8&s=?liKQ{JCzWg@t)BiFp|F?^c87+7C%=2 z209meYqRW$jN}AnPbQ`B@~hp)cV(O%lIA$AUM`SgdZ_@>>v+&QpK~wUt&g$?C>TdP z7m6;Vo~h-}NfN*0VCMg1sD!|@-)RPB2nPx8sJR&cUk1<7H3BvMP(m^$a8p=ZagK8$ z$Tt)UuNk1)IN`dqYQ~b!U9nvKB~P!Koh>;rY$OO83z4GpRh_V-flS_(jMwQL=Saw+ z)*S*~j{rO($5^~Bv$R_USEk#V>W4~RV;vDD66-rZtc)!Gk~90Pq^_7aXn5D{zWaCb z(x1q>q|W+Y12lE)uIXoVXOoZ>u#nXi4~YoonNMn}XMQAS)t47imp_iBcdC7I!Q1OU00{y!15K|Q z`i#@pUD_$?DEC?h7uDW$sSb~n3q>(*ow+A?fjWkgu(aRP(pOWMeR2g0( fZI z9JXX>+@J+6t+%%-Ffp)_DV<=;f%y0OU#d|C_&$eIFZjen)h+HvR5=qEPJ7S1ny4D- zD^z7%U|CKa3ba>*BN`;tCIM_OcoJ4%ipj_tx!VSSkzVy V>^fSbDN z?Nz-xd;XLJv7m5y4`0M`a;Ujn_N#-ZJb`{84;`i?93^SIMC@mCGqk=_8@#z+QQB%w z`EDgZq% gT -t~@&TZ 6mUa@@-VqnG0q?OOrwZ%ng-#YF3%|Pb7$crc3Jl;|!$HB&QL% z*;_5G&&(>xIp(BF7eV}7+JB?9p%VU42vNl|#may;@A0N?MTh9&pmC+vy0*$aak2u) zBX@zBTHp1L{so0ersaA1e?r=8c<3Hk+Rel&*gEgx2^R6Nis( g!wYp7Gt6 8Pj~|C%IPUrE7f0XGUh~ct7f~d()m4GIvRpdmr>Cv26Vh$ zRz}3*;*ss@{}=?~e}e9o5IgNj<*(^dwJbBoNf0>LOE}TVAM2=pMOa|)(HjVndxkz% zEBfiCtWGip(Y4`oCMl?+K(w}eAp00pB|oMcT(<~u3VQ A+vpkUzcRrxt*8@T5}m!)wkcjZH0Bpt5qIhx?YaeU?@l6rpc`^*8*VV>^TVCu+= z^-fC}nSaRCX{7uj@H{`{+1t=+(^FKA{T<8kzHz%oWn$K-a26of(ZV ZMj(O;Y%xLRm1{pAaAeosA#fd zMhANupT9^ACUP&%EAal-4aUEgjc*ayMSVTw{<0{6u06`zXrZCeKhS gpeHi?H*7U+2xrZ5%?)dFwDu<)}0+3T6qkdQhw*2eoMY{lcvV z3)e}$+8GA}y3%^%!S~=#@ Z{N>M~W74*N5x9=+9)RT-xFXz4uMXVQ-n#`DtrP01M< zvo@$OTCG6|@qI5 H zl7h7F*_AB8r1ftD#7IW=b#HzUn>!!nNYvJpT>i{=>WeM8F7@KQ#Vq;W&GR%ERDQAS z3 HtObGp`%TiC){6xX@P0C?WV-3;7v2JvSUGE~Pg5^)^p zH%&pM$62nb2s)9MpG=-5&**4U+e~Z|ejytGdduUJEY=+F@v81S`3wF0k?zFc#kYIr zGd|{`_#*IyjpQW$&yK8^=88{al`kOy&(^Bh$52&?^*ZGX936F(7xCLFC13|g03~qn z&KQ!j;3EE2s6t|-b0?3&@9OJf#I1tUklIv+O0|Xdq7=&ykV2&^sTIXJ+BL(EU_0+s z8}W!yc9XSE?{Y_`0C1d 987H(COQW+Rp()?2ZZaQvS7k76pkGP(JA*+iyiCx-Jl!yherr}1&fu(dE+1f3 z!9Mmhm@UE8?9BU-ybcFiIW>*9KYz|UcrJ9mZVED8d7%awV*2~;Lf)5&`r1n~-svd^ z#s+Ya0NCENI4qUMuV=xUg0_sgddr3U8I*edp;#{VU)EWcywiF`VL=HYx#tx6R&*m& ziuAAdph7C&XQ!oNNp$<-=g{AjsB3dGXey2=l;_&fx%t?y!ac9S4r%!`R{e$_*Y*41 zouLXsNVUHsrvHKioT@um9Dz1}6;MgF7s5I^_@fRerS9k@sq%@s$u{QSX5NiD37`N{ zmy3lY?d$4uz1)L*OWS|8B7QOC*`8cF-;qRt*MAZey 7x*aNnM7F< zPqkeZ$NWmo!q&r!R0^F>lvv~4ghd4O`L@Q`u1WO}>bOh&AO!53qTbgbOr_p^lI=-S z>+pO$bQk{bYwc3b$~DuA1oM~ 6N(VW4>bG7y;T<{40orW%k~+{- z54SyVZbwCTMgNWN%{lPrdKsVW8PavH7x?3j8M^)A_s+hB3gK{SCzZO8Z`Npna 3ey5r`0TzSl;8J=!-ebo}ti<7aM zC?_RCPUT>22Fy^=?Vm(iemt*Vlviy9-cLTnr@n^U?a-j?K9TA>LH}qD0thOh73B%e z3GY}bKSTtsE^?Xh!OH>haUBy`9tatRrOmAyYik3YD46>Osx_BQVCXhGMtP)hB=)Fz zR9K87%@w97p9PdF?!>3#(wGh?QJ44pbS*hvEpd%Ciye<&@7teiEQU|UmbP|!({bsZ z&n~u*t?WzA8d#`;#64KH85^SK4k%X|xQpk~eu6^h%9ZqTYd7_` fQJZ!!&O~L+Z(IHO=OhR)2<43;ew{3pZ$t@xj>BJ zV^j|0;CKZO6&||N)^pSFuAumF+@uW)qgbTDr;JYN!JM1kOW`!{#&pY_;tA2zRJ {4R$uS*v^ z%=HVkYw6;4rc5VWIBV-lj~|^BBJ63NCqFJOpevJE`ZaN6${LfY{ICf73zm%KJ_S#U z!9gOc%5ORK4;4 qv0aN{W)K_#K)Ynm|Mj$b6>IM4vk)(hctOCWr zkElDm{mB;n_PosK274Ua7pDBEI$X5f))mXwU1Da@4>LOT_P<@wiiB6kwB(hzVAU19 zjZ?H-9=azAmE^>$K%{|YF)SBoN5cJc&sN4@nculO9q(GZ^N;@YwGcPY6;zVK6F|Y7 zKgO0$0l@`W)Jn)gesRI|mxPjaWWNk}ORk}2$2#)Xj6DC^iy>0RK`vAEff8xB??`0M zIdJpIf6_DY(e&llg##ei54b4h47}EUf6OhHJ6>B+>N>P$n4!9>no`Oeczu?7SW;0d zA0R}K7_1JvEH$%qqjl2SO=SawJY}~U`^&M-ZD)9&vB?VM3HDgCE~dT+M?3V%m_O_- z-5p9QThFb``JxUg_F5L7)i{;FYah{_t3Pj9@A~34)?@cejZ3BwBu2I=!v9wS)4J7N z==?YGI@BCu-IpWDel41zk``a>@adik&-8Gr $x5?g<$anENuF9MTA8514+K+M$EK zk*Rn``ie(fzQ?uFN;Gy=^{5vFBE4FG0ilX+2@3`mF%B5x@iU@D8hOU6!zu%K^2Y*} z>)6pZ3=0Ct5V$Jh 2A`ITox!}n3iYw&z-XYl @t%#gu>I&5n)8Ql) z3jiI44U~$nR*g=- ~$ zJG)=HR6TCHz6Wd0w<^I#bQmp%nL88f- 0~m7WGE*fyj*|YhQE>0e=h>vrmZW;5!^tDq z5nDuC(5)K fgWgBf1Gf2=3B zs$@ATz<{Esj<1ivB+D~`SM|Kaq`{(qhzXog-?!3ZpO@hHe+pe`8^HYE^-cAXXiDin z$%&x8j(cVtgGsk3CC2B6d^NH=o3HPSyz@LJxmFXD@p{>oT-%jA%2fGtGD6}jTLZUd zZQ|~}xx-rK_ZLb=S!_-(s+uXF)0zCKU`xbZ0L3kGLnwL6-5w~Jm^XeKxju~P#>N9C z<8zc9#FpVts&?k_Tis;MC=Xl$Bz2g+rXIKVL`oeu{3#v9)oO$h5JiiX>>el~;?qc3 zMD%H?#q{C!?2;Q#T2BwPxlnTlJsyYomF7>p3m0!5CfS_wlqoAURV|C*zaCWTPp4f~ z)M}D~S10(@^~i0DCbrZ|s&Fb#G%;xt0k{h@IgbNHLcf%m=gB>9>@y=I3E{A<;Q4$9 z`QBsIcJBYOJn%imi(E#42U05;z3=Zp`PFe#+k7r{fHRA4;SmTpG?~H{tn87+w5L9H zI9f5}J}1SNNrME`swp#7iXRJ(t;dl1Ty4df{$b%?)Q;OVyJk*JJe8PI%*`+IMmdMg zDTBUSM{3JNaRqs7Km7-+bck=+&OUE(?H#3Dgx@QHa6$E**{Si|WEjJalRD-!``x%i zUMKt%$h_*1y0umAO~6%L&pR|9cTA_2ccmWG1m0Q;`!bWDhE6DCOQpRL0NLw}PO`)x zA~xBc@QN#8!_&ml^-d=d{aE!kBYS>WEOe3P6j_uLTjCh-VwBq1U}XztFn~7HKD5;{ zvQ4Gh=N2r| *I?-A}>d6nt zxWp)0m2m &;odQO=-NTG!6bty#TM>_kM6BgY8r+Je1PW}N=)ljPL@d!=?M7Z1>*&Ix z(X#7v*s!r3TqA4k2k}k07eWgWufTswzsbBxb7ezg7F rFQQ+73`7_l^5Afg>tbPY2l@F8OI-7!4yrBH@JW$)>i+VGPMu(3x5;y zoQiM!)>Yh|spOzwc`MmNgMH>U9i+m{ypM3URN{zR9uL3;5U#15n^TOF$L(a!b%6t) z$Lnqm+6Mi*9HWEmP`Fh4Hy(HJUgtFhOX2{25K+hnoa `LWZI> *;*YhV(JW%u61Tw@v|ffkA!wN)vkcFk`N}o2-J?a%}yCV zufK%Bi``%78zr%~W^>`@g}FuW9bx8()7*1I{Be!NLCtBUIlHz(F|h&h4%T=nGh^P~ z=6e3SK {yLH(RkApK|he?5C1C=*mo}+)^1DFDwTzsVhmW zB2(8-#L3>Gq5Alj=hMWTBQuEyw>*BA;d 9%Ujw zHYrN#w1kj&`5~T|bBi91keq8KcenihjlW*`2suze>nfZ@2Dh;3aX6(B?Q=m8m#8~l zD6t+J6<`dRd4RuZpKJs1Ft(sLb$^nbOu96Y`~-iZ=WSkz0i^ hp@Y~1D&?EsK%#<>sGybHffl_9kVfbS61mo{`0$imzDD5-yuszbo& z-2h%k=y$aAhkJF91gdchO_~$kl&_pXY8u5Dma`G6c$S1}%QImq$Q0(5K`uM{avE22 z*~}SR(@jNJJwH=I8eAE2sVjZafIXPB8#=kOp!kaq0j{^TI<+}2x#ved7=i|_v6trI za#sHm$oVNl%Dl)XI&t4vE|mM6`kOXh^iOCmIw~{CwhtwuJz5^{(8JO=bQ_sRY{l1H zU=d=$UVC(7J3ll&oMA%hxCfU2NG0$$+;8QHKms4_4~m> kf0-c4!+Kl8&XG*+;4Bcz=MB<6r?Pz8i@#rTa+RmfsobDMtiW4O zFX?C$IgP3$M BUZn)B}V2i@pPH)1ol;k@aNx zdFZb`@B=l-Y$8F-f`UKX{Hlnws~+#s^*6W2y4Fl`9?#OE+>A2@E1IEl=({UGB8=2; z^}zC!SN*q9CQFq(p0LfBOpDgt%C044nne-kci;%tj%U7P0&$X4=pQc~8F@ZPC)fuP zb-yh4-?(UArFM7COU&T)RFdwR7k?9XKfrl6+XEuI>v~PjR1F!cA%;F6^)7C{eCgo{ zc%l77$GXU1+Q}lH`hx7J>1Ry#wk53P=rE;Ad1u|ZFxmf~hr*QgNPTE3!PZPqm^n zTq;9Y{^Mp{h}>zF`an`$Rex#ba;_ES&B9TUtwDIoEG-ue32tp+fEKY@8+9}R$2sLG z )2AF&DJ9;dTsJT@>pm>RgcRE$4bq0Fp~!A^kSJLX&kD{rkz_Ly_#qD4DsV zgs!lEW{HOCynvIARXNq5n^-n2SRfrlP0RhsP?GF3jO^}RNa};-u3mI#{#+C_=yfZF zaveJH>kA@&2d1wH8(R|NsRhCvvPwL!(C4nl$8KskgDy4hdD{`g8TSJ gn&83YCC9t8}riBa)0f=sprDvjh7$H-`g;lnK&E#75y}-kr>d!`NLlST>8_Cb-9RhPtA&lgs^G4lL-Gnj|9Dr|x64`pmq9 z%7{GNJ}2C3kx0y!y`;8FWC7>Zsv385l@SXWvpQ!!a!>SM{rfUE^wWka*g;EG>M;W9 zC?ARC_mbL8%2UXudCi%ZdLwgSGMWEKeZ>xKcSNigqN6)CZbvMJDHrmX)CKjpe~1)c z8}MH(i=K5SQG`P2?zlC2ck$xO2eD(()Zm$dhO0NARIgujr;eb k)R-Mt+J4EW~ZDke 7FfpAJgCYOiRGa~mTis6*1psfhfA zqt=GSFKhGJ+W#}G?9H4hGan(7szf5Py9W+($R+chiAd?oaN6%K8bp`ym==bH4*fwu zY{Uvwv+L`yV5Z??d`xv*i`0t6VQcKSi5{R=aRCjA$uL`~vSecRx0=614{^MKzv)g$ zT5IKv#{ pIdD*W3ZkJx4R@Rfe5?NbL zF%!#T|7eTplvy+9J4`|Y3oa`fJCC0L7rQp<^{rj7w_f~rG!fU~F*nsMx98=WAA$r8 z1k*!Nc9eIf;9HF~zM`<=^2^&9N(Y;l`Y3}RcZm5TGoywMydnt>#P R#Ze>5kk_$F0Yg6bt~rY?haO)@&(NN=drXL4OUJdSYKeNp zhsxCqWm}RK2zZRO?hmjNrgApEPnDZU=`a!v!Sg_r1>cxfJ!azJlz(NMPEfI`gs-Wk zGtm1v3L09=;{6ZFFc3hj{r!IHahtW2ggFVTO<#wrT&qbB3mE_7t7?@UE30R&v@^X4 zwC;n8o>l9Gc4e$mo~; z%&bp(f~6C zo{i$iLotZ?YXwhtfMq3m6&KLij7-6G{F9H=8L}|R5k`G7=k#$c` p zOt!ZnP99j>`tfk2mDUOE0Qx@Ar1khPZL~+yLIuHaUKKN0?FEBYZY;og+ sBexjHEW3abLc)98m zYGk|WUw^P-!1d3ZD_E`{Pa^L8+;wN&
hDtCkZ5W(R2!@0)YtBjDHdw)6zr4$0W0A7Js16$AjOkukDnfu@RQhY z#LTv1PuP$Z2co{9uI5~cWdYN;S*bQc%3{l#X ho?ll<`f7R$+nMgS2>;&i z&PnHPjsCro!*bW0DP096z4mn(GoE2hHmGFYzIa9ND;7ZDn9RkyCf}WN#p{7s6g*$y zTZ1JF6J<{4q%2k&2$Di8vWTh$wx4Vx+t@o)f;TenP`S-$?<6l7(9~l@>ra_(mTw5X zG+1C|Y=e^ROqF%jQQr$x;wSP(b=2ei-nr^O64NnOdSn&HikvtTiO5k=K*OXt;%HHW z2D@Ye2`IVSKPeO)W5Q+gF|OjO2Hq9Vrhodkc0P)J=i=cb+0? d<%JNPj} zZewqNithcqJ$+&zIKV6lY+n;MA>QcPisB|WFN{i_BTVSOx8KKMQHbz8ooOq#CM8*5 zH6ZzcBJF+F`&0`!W3QLE6x#nxktqBBSb%r7l>jZ-ASUJ(jeX4-QC?WbPUot@Xqhvb=P|Thwplxea_kYvkyFx zFgQ1+x@L(u@A$T#v!SgPzWGQO5^sI5f4dKdpV{hf#zae9tT`n|ApVHat|t&kN>2Jv zx~|c#S8<3KdQ@fv_*iJguxzh-IlFwhB<|=Ebn49-d@1DDlGdKo%vFdRPXlv_I&dc# zvs7Yx5P&mK!yXzmg6ubO*;B!2j>5<9no!?@iX&=YO5ur6pWW2pMkyHb-%|KB*HMg> zNEs3&jA?mf#XN95r<^ 5f_ zAO@ia-;s^Z_Vse;bK;#LN$uEOWuP%a5NGujT(~X!{G>c!r`xPTd&4E9cD{q-z1U^U z#av4>q02nS;`I%})z qBObdC`n;STgaio# zLRxffHrq*sV`7=A{sE)5;&(~l_@A6F8ZPupIyqbMg0S+9Y|qUe=feu>#ds`m&R%)& z?s#d`bZ|7&57Hl{2W4r5Y5TIb%{*;6PPh*;*w3`z&jiKVNt*d<^ev)-RKYfRIZMl} z2p{GnpXJIR;QZ|Dq~_J4hP3hi?b%)*B>DwSw3Q+JY_A6~h;H}&jC$-`!)X`9f%~A( znt^KOV5aq4OG_N_RS-xB7Q9utp%y7q9jhlUolAuOvo6Edd5f-W {E@7+cLgmSE-Up_Owh g44gKQM>qQ*2WmJN$0f3~8lx;x2Eg0JsFz+7p!k9dFkw=b7F+L{c2QFuzl60NO )WmR zT$f!m_2<;y^7;MY7hgnB&iF;~F1uT$1rSN*a|h(N%mqX2|Dfnjx25y|+)i+W5Lr3f z%_fB3i`cSG8A5Eo-!#Q#H~EjyHPvnu8ZUyosh42D^ewLK8~=-`=#P^qBKT+EWan3i zQH5jwm>)V-vbByhK?TFHv;YkDha`%wpD3p`qO!=ayOq3+dv*JyfVQY+FW u+b%;QPKJk~m0E<)&QP<~=_^yLiXn}&dkcHU+3P l}c`ch5Gc1fv@D3k=g_1Uae% zm}y{t8je2`nwa4^Qv8)#jOJr$5h3#64r}C_{v36mG4_r8= l7mYTpDl06J6z>-mi{yAv;HS69K^~A`4wY i9g3x6t8iAd6V-g$xVle-D>`*rH5{Q3fQ?h3{_9f|J< pZ0W6i1F~iCt;8Jp;_+s@QURDmPcqfUX#(D!4d1*k#pBpjYda9NnK=c}Tuh4H8`G z@hqy*NmZ>m)bj7-M)LSLHB62q%wJV|5})_SW}4ZJ6|KTi`?8`@++Eq^%MybQy{hvA z3&Abl(>gFyopD}b0Pg&hJ!v<6jR-#c7q|44p!AieB>YdHCB`!Ojs6}UcV(=>b#>+M zFdl$2z?&y!o>q`~a)1?{k4vAen@-=|8)e+_qe636`>n^{sDttO!v+NRKZ1@zOjGEu ziW!_ghYDwC4_h*2oLM_tWO(Kv7f}?wbKQ|&kw$%DE*U1WQ;H-+Ip|T3UZ%FD3r V^|Z)V!6efO}}!_%8{%4 zP>}D+A+YL>L^*vJr6)xuxtgQTUL0!h*1_&amWbOo9NM+WM#mi0NJsIqsxNc|x6Tcp zPx1oIc~I5W$ufLg?1-e)3)r=b_rL4rxAXagdDXVt?leArx7EG(h^VU&fW0d#Am|#B zyV|u gf1-Uk3C=UdhCM0=|e|Xl|1rh648QG^Ue{ $k}9^SUB1k0>^a6KPAOBu-y!L+9@ zG|#;zUyki%Tis%Cd(02 FITHkxw-@jv8KGo_hDKI zXutUsN%#DmTO2W+ukd$DmBVd->YdkhZJ6@6amD__UonyITSPm*ZCgBi^+Abu=cu$6 zEt;*KZuutJv~uOYp4UFTG_l9 *<(Fg%i9L#f7rzmuWQHf11ZXoS^F07s4Rvl znaCWMOm4-Foy_Mo^nFj0UQPUjlIPEIUZ;7qq;k*ewLBy8jCCqnYaH4FzGttl0#HZD zWc)80!(Xrh^h5}Hu$YMz#hHHI_m!y_A;tc78Uur|BVJ_ }O*kAezWX zq2p1DkZWAHX>S|P`5@!PdW(+B@#EVPgx?W-?8RA0dg;_IpUZd1t!hGh>rpQhr^vWN z^2m#Rz4Pi$HoHWhH=I;m08^1O{u7e~|EkeS-ddB}M5%{ZN8UYiEI1jw6GP(ojO^rej z_=}y!23yQXi<$VDbN4uD4(1$z>Hb40m4<7RA8AoyE>u{yGjhEKfwE6VWrAYX)UiY5 z&cPB5hFLO90{QhVr_*`cK1L1wvvuFHjXmjhcQmb*F*Qt*({O3M^Tz#2xYn3*u7!}v z2H|xSkj2W{c5?+Wi8!2RStsVShshg@>yLJC1jYm2)yz~T1IdVnzw-5f%L@mgiw+&9Tr zQXc|28MypSJtG#P+4O4Py)D*hbHvdjGP1(GGmm`o+`YVcwnvG;I#xHO_z>xsNd}GZ zfKjG-{5{Iahl+Zj5Ul_eH{+q?y2xM8QHS~}w(mBh2R)AVhlMf(kmzQP PzCA6Yt0QZpo1fIrjx;0ZIt4g;y& z*_d*suHSQ-*2?trhuI;iGq%;-{VmV&m^%FTRZR5S)XORL31WE~w8#_1j|BT|= FZw zpS!|I*Gxy&gN{CKKfT9Bx}