From d1869390583b517ca5741b81d5de5fb89888b6c7 Mon Sep 17 00:00:00 2001 From: xuhuajiao <13476289682@163.com> Date: Fri, 16 Sep 2022 09:07:40 +0800 Subject: [PATCH] =?UTF-8?q?=E6=99=BA=E6=85=A7=E5=A4=A7=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 19 + .env.production | 9 + .eslintrc.js | 197 ++++++++++ .gitignore | 23 ++ README.md | 13 + babel.config.js | 11 + package.json | 54 +++ public/favicon.ico | Bin 0 -> 4286 bytes public/index.html | 17 + src/App.vue | 16 + src/assets/iconfont/demo.css | 539 ++++++++++++++++++++++++++++ src/assets/iconfont/demo_index.html | 350 ++++++++++++++++++ src/assets/iconfont/iconfont.css | 44 +++ src/assets/iconfont/iconfont.js | 1 + src/assets/iconfont/iconfont.json | 58 +++ src/assets/iconfont/iconfont.svg | 33 ++ src/assets/iconfont/iconfont.ttf | Bin 0 -> 8772 bytes src/assets/iconfont/iconfont.woff | Bin 0 -> 4864 bytes src/assets/iconfont/iconfont.woff2 | Bin 0 -> 3732 bytes src/assets/images/num-img.png | Bin 0 -> 6231 bytes src/assets/images/star-1.png | Bin 0 -> 6523 bytes src/assets/images/star-2.png | Bin 0 -> 5583 bytes src/assets/images/star-3.png | Bin 0 -> 6880 bytes src/assets/images/title.png | Bin 0 -> 4307 bytes src/assets/images/top.png | Bin 0 -> 44714 bytes src/assets/logo.png | Bin 0 -> 6849 bytes src/assets/styles/_variables.scss | 97 +++++ src/assets/styles/font-some.css | 46 +++ src/assets/styles/index.scss | 242 +++++++++++++ src/assets/styles/style.scss | 81 +++++ src/common/flexible.js | 147 ++++++++ src/components/echart/lineChart.vue | 178 +++++++++ src/main.js | 26 ++ src/router/index.js | 20 ++ src/store/index.js | 15 + src/utils/index.js | 34 ++ src/utils/request.js | 46 +++ src/utils/resizeMixins.js | 26 ++ src/views/accessToLibrary.vue | 36 ++ src/views/data.json | 67 ++++ src/views/header/index.vue | 27 ++ src/views/index.vue | 60 ++++ src/views/lengingRanking.vue | 50 +++ src/views/newBookRecommend.vue | 50 +++ src/views/notice.vue | 30 ++ src/views/readStar.vue | 45 +++ src/views/totalLending.vue | 80 +++++ vue.config.js | 61 ++++ 48 files changed, 2848 insertions(+) create mode 100644 .env.development create mode 100644 .env.production create mode 100644 .eslintrc.js create mode 100644 .gitignore create mode 100644 babel.config.js create mode 100644 package.json create mode 100644 public/favicon.ico create mode 100644 public/index.html create mode 100644 src/App.vue create mode 100644 src/assets/iconfont/demo.css create mode 100644 src/assets/iconfont/demo_index.html create mode 100644 src/assets/iconfont/iconfont.css create mode 100644 src/assets/iconfont/iconfont.js create mode 100644 src/assets/iconfont/iconfont.json create mode 100644 src/assets/iconfont/iconfont.svg create mode 100644 src/assets/iconfont/iconfont.ttf create mode 100644 src/assets/iconfont/iconfont.woff create mode 100644 src/assets/iconfont/iconfont.woff2 create mode 100644 src/assets/images/num-img.png create mode 100644 src/assets/images/star-1.png create mode 100644 src/assets/images/star-2.png create mode 100644 src/assets/images/star-3.png create mode 100644 src/assets/images/title.png create mode 100644 src/assets/images/top.png create mode 100644 src/assets/logo.png create mode 100644 src/assets/styles/_variables.scss create mode 100644 src/assets/styles/font-some.css create mode 100644 src/assets/styles/index.scss create mode 100644 src/assets/styles/style.scss create mode 100644 src/common/flexible.js create mode 100644 src/components/echart/lineChart.vue create mode 100644 src/main.js create mode 100644 src/router/index.js create mode 100644 src/store/index.js create mode 100644 src/utils/index.js create mode 100644 src/utils/request.js create mode 100644 src/utils/resizeMixins.js create mode 100644 src/views/accessToLibrary.vue create mode 100644 src/views/data.json create mode 100644 src/views/header/index.vue create mode 100644 src/views/index.vue create mode 100644 src/views/lengingRanking.vue create mode 100644 src/views/newBookRecommend.vue create mode 100644 src/views/notice.vue create mode 100644 src/views/readStar.vue create mode 100644 src/views/totalLending.vue create mode 100644 vue.config.js diff --git a/.env.development b/.env.development new file mode 100644 index 0000000..6740be0 --- /dev/null +++ b/.env.development @@ -0,0 +1,19 @@ +ENV = 'development' + +# 接口地址 + +#内网服务地址 +VUE_APP_BASE_API = 'http://192.168.99.107:7070' +VUE_APP_WS_API = 'ws://192.168.99.107:7071' +VUE_APP_CAMERA_API = '192.168.99.107' + +# 刘力-本地服地址 +#VUE_APP_BASE_API = 'http://192.168.99.65:7070' +#VUE_APP_WS_API = 'ws://192.168.99.65:7071' + +# 许镇-本地服地址 +#VUE_APP_BASE_API = 'http://192.168.99.84:7070' +#VUE_APP_WS_API = 'ws://192.168.99.84:7070' + +# 是否启用 babel-plugin-dynamic-import-node插件 +VUE_CLI_BABEL_TRANSPILE_MODULES = true diff --git a/.env.production b/.env.production new file mode 100644 index 0000000..1d3db93 --- /dev/null +++ b/.env.production @@ -0,0 +1,9 @@ +ENV = 'production' + +# 如果使用 Nginx 代理后端接口,那么此处需要改为 '/',文件查看 Docker 部署篇,Nginx 配置 +# 接口地址,注意协议,如果你没有配置 ssl,需要将 https 改为 http +# VUE_APP_BASE_API = 'https://openapitest.aiyxlib.com' +VUE_APP_BASE_API = 'http://192.168.99.107:7070' +# 如果接口是 http 形式, wss 需要改为 ws +VUE_APP_WS_API = 'ws://192.168.99.107:7071' +VUE_APP_CAMERA_API = '192.168.99.107' diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000..0c290b7 --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,197 @@ +module.exports = { + root: true, + parserOptions: { + parser: 'babel-eslint', + sourceType: 'module' + }, + env: { + browser: true, + node: true, + es6: true, + }, + extends: ['plugin:vue/recommended', 'eslint:recommended'], + + + rules: { + "vue/max-attributes-per-line": [2, { + "singleline": 10, + "multiline": { + "max": 1, + "allowFirstLine": false + } + }], + "vue/singleline-html-element-content-newline": "off", + "vue/multiline-html-element-content-newline":"off", + "vue/name-property-casing": ["error", "PascalCase"], + "vue/no-v-html": "off", + 'accessor-pairs': 2, + 'arrow-spacing': [2, { + 'before': true, + 'after': true + }], + 'block-spacing': [2, 'always'], + 'brace-style': [2, '1tbs', { + 'allowSingleLine': true + }], + 'camelcase': [0, { + 'properties': 'always' + }], + 'comma-dangle': [2, 'never'], + 'comma-spacing': [2, { + 'before': false, + 'after': true + }], + 'comma-style': [2, 'last'], + 'constructor-super': 2, + 'curly': [2, 'multi-line'], + 'dot-location': [2, 'property'], + 'eol-last': 2, + 'eqeqeq': ["error", "always", {"null": "ignore"}], + 'generator-star-spacing': [2, { + 'before': true, + 'after': true + }], + 'handle-callback-err': [2, '^(err|error)$'], + 'indent': [2, 2, { + 'SwitchCase': 1 + }], + 'jsx-quotes': [2, 'prefer-single'], + 'key-spacing': [2, { + 'beforeColon': false, + 'afterColon': true + }], + 'keyword-spacing': [2, { + 'before': true, + 'after': true + }], + 'new-cap': [2, { + 'newIsCap': true, + 'capIsNew': false + }], + 'new-parens': 2, + 'no-array-constructor': 2, + 'no-caller': 2, + 'no-console': 'off', + 'no-class-assign': 2, + 'no-cond-assign': 2, + 'no-const-assign': 2, + 'no-control-regex': 0, + 'no-delete-var': 2, + 'no-dupe-args': 2, + 'no-dupe-class-members': 2, + 'no-dupe-keys': 2, + 'no-duplicate-case': 2, + 'no-empty-character-class': 2, + 'no-empty-pattern': 2, + 'no-eval': 2, + 'no-ex-assign': 2, + 'no-extend-native': 2, + 'no-extra-bind': 2, + 'no-extra-boolean-cast': 2, + 'no-extra-parens': [2, 'functions'], + 'no-fallthrough': 2, + 'no-floating-decimal': 2, + 'no-func-assign': 2, + 'no-implied-eval': 2, + 'no-inner-declarations': [2, 'functions'], + 'no-invalid-regexp': 2, + 'no-irregular-whitespace': 2, + 'no-iterator': 2, + 'no-label-var': 2, + 'no-labels': [2, { + 'allowLoop': false, + 'allowSwitch': false + }], + 'no-lone-blocks': 2, + 'no-mixed-spaces-and-tabs': 2, + 'no-multi-spaces': 2, + 'no-multi-str': 2, + 'no-multiple-empty-lines': [2, { + 'max': 1 + }], + 'no-native-reassign': 2, + 'no-negated-in-lhs': 2, + 'no-new-object': 2, + 'no-new-require': 2, + 'no-new-symbol': 2, + 'no-new-wrappers': 2, + 'no-obj-calls': 2, + 'no-octal': 2, + 'no-octal-escape': 2, + 'no-path-concat': 2, + 'no-proto': 2, + 'no-redeclare': 2, + 'no-regex-spaces': 2, + 'no-return-assign': [2, 'except-parens'], + 'no-self-assign': 2, + 'no-self-compare': 2, + 'no-sequences': 2, + 'no-shadow-restricted-names': 2, + 'no-spaced-func': 2, + 'no-sparse-arrays': 2, + 'no-this-before-super': 2, + 'no-throw-literal': 2, + 'no-trailing-spaces': 2, + 'no-undef': 2, + 'no-undef-init': 2, + 'no-unexpected-multiline': 2, + 'no-unmodified-loop-condition': 2, + 'no-unneeded-ternary': [2, { + 'defaultAssignment': false + }], + 'no-unreachable': 2, + 'no-unsafe-finally': 2, + 'no-unused-vars': [2, { + 'vars': 'all', + 'args': 'none' + }], + 'no-useless-call': 2, + 'no-useless-computed-key': 2, + 'no-useless-constructor': 2, + 'no-useless-escape': 0, + 'no-whitespace-before-property': 2, + 'no-with': 2, + 'one-var': [2, { + 'initialized': 'never' + }], + 'operator-linebreak': [2, 'after', { + 'overrides': { + '?': 'before', + ':': 'before' + } + }], + 'padded-blocks': [2, 'never'], + 'quotes': [2, 'single', { + 'avoidEscape': true, + 'allowTemplateLiterals': true + }], + 'semi': [2, 'never'], + 'semi-spacing': [2, { + 'before': false, + 'after': true + }], + 'space-before-blocks': [2, 'always'], + 'space-before-function-paren': [2, 'never'], + 'space-in-parens': [2, 'never'], + 'space-infix-ops': 2, + 'space-unary-ops': [2, { + 'words': true, + 'nonwords': false + }], + 'spaced-comment': [2, 'always', { + 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] + }], + 'template-curly-spacing': [2, 'never'], + 'use-isnan': 2, + 'valid-typeof': 2, + 'wrap-iife': [2, 'any'], + 'yield-star-spacing': [2, 'both'], + 'yoda': [2, 'never'], + 'prefer-const': 2, + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, + 'object-curly-spacing': [2, 'always', { + objectsInObjects: false + }], + 'array-bracket-spacing': [2, 'never'] + } +} diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..288c51f --- /dev/null +++ b/.gitignore @@ -0,0 +1,23 @@ +.DS_Store +node_modules +dist/ + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +package-lock.json \ No newline at end of file diff --git a/README.md b/README.md index e69de29..30a30ce 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,13 @@ +智慧大屏 + +```bash +# install dependency +npm install + +# develop +npm run serve + +# 构建生产环境 +npm run build + +``` \ No newline at end of file diff --git a/babel.config.js b/babel.config.js new file mode 100644 index 0000000..e763183 --- /dev/null +++ b/babel.config.js @@ -0,0 +1,11 @@ +const plugins = ['@vue/babel-plugin-transform-vue-jsx', '@babel/plugin-proposal-optional-chaining', '@babel/plugin-proposal-nullish-coalescing-operator'] +// 生产环境移除console +if (process.env.NODE_ENV === 'production') { + plugins.push('transform-remove-console') +} +module.exports = { + plugins: plugins, + presets: [ + '@vue/cli-plugin-babel/preset' + ] +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..43d6c46 --- /dev/null +++ b/package.json @@ -0,0 +1,54 @@ +{ + "name": "intelligence-screen", + "version": "1.0.0", + "description": "智慧大屏", + "scripts": { + "serve": "vue-cli-service serve", + "build": "vue-cli-service build", + "lint": "vue-cli-service lint" + }, + "dependencies": { + "@babel/core": "^7.19.0", + "@babel/preset-env": "^7.19.0", + "@jiaminghi/data-view": "^2.7.3", + "@types/echarts": "^4.4.3", + "axios": "^0.27.2", + "core-js": "^3.6.4", + "echarts": "^4.6.0", + "element-ui": "^2.15.9", + "vue": "^2.6.11", + "vue-awesome": "^4.0.2", + "vue-router": "^3.1.5", + "vuex": "^3.1.2" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "^4.2.0", + "@vue/cli-plugin-eslint": "^4.2.0", + "@vue/cli-service": "^4.2.0", + "babel-eslint": "^10.0.3", + "babel-plugin-transform-remove-console": "^6.9.4", + "eslint": "^6.7.2", + "eslint-plugin-vue": "^6.1.2", + "sass": "^1.25.0", + "sass-loader": "^8.0.2", + "vue-template-compiler": "^2.6.11" + }, + "eslintConfig": { + "root": true, + "env": { + "node": true + }, + "extends": [ + "plugin:vue/essential", + "eslint:recommended" + ], + "parserOptions": { + "parser": "babel-eslint" + }, + "rules": {} + }, + "browserslist": [ + "> 1%", + "last 2 versions" + ] +} diff --git a/public/favicon.ico b/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..df36fcfb72584e00488330b560ebcf34a41c64c2 GIT binary patch literal 4286 zcmds*O-Phc6o&64GDVCEQHxsW(p4>LW*W<827=Unuo8sGpRux(DN@jWP-e29Wl%wj zY84_aq9}^Am9-cWTD5GGEo#+5Fi2wX_P*bo+xO!)p*7B;iKlbFd(U~_d(U?#hLj56 zPhFkj-|A6~Qk#@g^#D^U0XT1cu=c-vu1+SElX9NR;kzAUV(q0|dl0|%h|dI$%VICy zJnu2^L*Te9JrJMGh%-P79CL0}dq92RGU6gI{v2~|)p}sG5x0U*z<8U;Ij*hB9z?ei z@g6Xq-pDoPl=MANPiR7%172VA%r)kevtV-_5H*QJKFmd;8yA$98zCxBZYXTNZ#QFk2(TX0;Y2dt&WitL#$96|gJY=3xX zpCoi|YNzgO3R`f@IiEeSmKrPSf#h#Qd<$%Ej^RIeeYfsxhPMOG`S`Pz8q``=511zm zAm)MX5AV^5xIWPyEu7u>qYs?pn$I4nL9J!=K=SGlKLXpE<5x+2cDTXq?brj?n6sp= zphe9;_JHf40^9~}9i08r{XM$7HB!`{Ys~TK0kx<}ZQng`UPvH*11|q7&l9?@FQz;8 zx!=3<4seY*%=OlbCbcae?5^V_}*K>Uo6ZWV8mTyE^B=DKy7-sdLYkR5Z?paTgK-zyIkKjIcpyO z{+uIt&YSa_$QnN_@t~L014dyK(fOOo+W*MIxbA6Ndgr=Y!f#Tokqv}n<7-9qfHkc3 z=>a|HWqcX8fzQCT=dqVbogRq!-S>H%yA{1w#2Pn;=e>JiEj7Hl;zdt-2f+j2%DeVD zsW0Ab)ZK@0cIW%W7z}H{&~yGhn~D;aiP4=;m-HCo`BEI+Kd6 z={Xwx{TKxD#iCLfl2vQGDitKtN>z|-AdCN|$jTFDg0m3O`WLD4_s#$S literal 0 HcmV?d00001 diff --git a/public/index.html b/public/index.html new file mode 100644 index 0000000..4123528 --- /dev/null +++ b/public/index.html @@ -0,0 +1,17 @@ + + + + + + + + <%= htmlWebpackPlugin.options.title %> + + + +
+ + + diff --git a/src/App.vue b/src/App.vue new file mode 100644 index 0000000..1c8a32f --- /dev/null +++ b/src/App.vue @@ -0,0 +1,16 @@ + + + diff --git a/src/assets/iconfont/demo.css b/src/assets/iconfont/demo.css new file mode 100644 index 0000000..a67054a --- /dev/null +++ b/src/assets/iconfont/demo.css @@ -0,0 +1,539 @@ +/* Logo 字体 */ +@font-face { + font-family: "iconfont logo"; + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); +} + +.logo { + font-family: "iconfont logo"; + font-size: 160px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* tabs */ +.nav-tabs { + position: relative; +} + +.nav-tabs .nav-more { + position: absolute; + right: 0; + bottom: 0; + height: 42px; + line-height: 42px; + color: #666; +} + +#tabs { + border-bottom: 1px solid #eee; +} + +#tabs li { + cursor: pointer; + width: 100px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 16px; + border-bottom: 2px solid transparent; + position: relative; + z-index: 1; + margin-bottom: -1px; + color: #666; +} + + +#tabs .active { + border-bottom-color: #f00; + color: #222; +} + +.tab-container .content { + display: none; +} + +/* 页面布局 */ +.main { + padding: 30px 100px; + width: 960px; + margin: 0 auto; +} + +.main .logo { + color: #333; + text-align: left; + margin-bottom: 30px; + line-height: 1; + height: 110px; + margin-top: -50px; + overflow: hidden; + *zoom: 1; +} + +.main .logo a { + font-size: 160px; + color: #333; +} + +.helps { + margin-top: 40px; +} + +.helps pre { + padding: 20px; + margin: 10px 0; + border: solid 1px #e7e1cd; + background-color: #fffdef; + overflow: auto; +} + +.icon_lists { + width: 100% !important; + overflow: hidden; + *zoom: 1; +} + +.icon_lists li { + width: 100px; + margin-bottom: 10px; + margin-right: 20px; + text-align: center; + list-style: none !important; + cursor: default; +} + +.icon_lists li .code-name { + line-height: 1.2; +} + +.icon_lists .icon { + display: block; + height: 100px; + line-height: 100px; + font-size: 42px; + margin: 10px auto; + color: #333; + -webkit-transition: font-size 0.25s linear, width 0.25s linear; + -moz-transition: font-size 0.25s linear, width 0.25s linear; + transition: font-size 0.25s linear, width 0.25s linear; +} + +.icon_lists .icon:hover { + font-size: 100px; +} + +.icon_lists .svg-icon { + /* 通过设置 font-size 来改变图标大小 */ + width: 1em; + /* 图标和文字相邻时,垂直对齐 */ + vertical-align: -0.15em; + /* 通过设置 color 来改变 SVG 的颜色/fill */ + fill: currentColor; + /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 + normalize.css 中也包含这行 */ + overflow: hidden; +} + +.icon_lists li .name, +.icon_lists li .code-name { + color: #666; +} + +/* markdown 样式 */ +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + color: #404040; + font-weight: 500; + line-height: 40px; + margin-bottom: 24px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + color: #404040; + margin: 1.6em 0 0.6em 0; + font-weight: 500; + clear: both; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + height: 1px; + border: 0; + background: #e9e9e9; + margin: 16px 0; + clear: both; +} + +.markdown p { + margin: 1em 0; +} + +.markdown>p, +.markdown>blockquote, +.markdown>.highlight, +.markdown>ol, +.markdown>ul { + width: 80%; +} + +.markdown ul>li { + list-style: circle; +} + +.markdown>ul li, +.markdown blockquote ul>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown>ul li p, +.markdown>ol li p { + margin: 0.6em 0; +} + +.markdown ol>li { + list-style: decimal; +} + +.markdown>ol li, +.markdown blockquote ol>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + background: #eee; + border-radius: 3px; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown>table { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + border: 1px solid #e9e9e9; + width: 95%; + margin-bottom: 24px; +} + +.markdown>table th { + white-space: nowrap; + color: #333; + font-weight: 600; +} + +.markdown>table th, +.markdown>table td { + border: 1px solid #e9e9e9; + padding: 8px 16px; + text-align: left; +} + +.markdown>table th { + background: #F7F7F7; +} + +.markdown blockquote { + font-size: 90%; + color: #999; + border-left: 4px solid #e9e9e9; + padding-left: 0.8em; + margin: 1em 0; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + opacity: 0; + transition: opacity 0.3s ease; + margin-left: 8px; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + opacity: 1; + display: inline-block; +} + +.markdown>br, +.markdown>p>br { + clear: both; +} + + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +/* 代码高亮 */ +/* PrismJS 1.15.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre)>code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre)>code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/src/assets/iconfont/demo_index.html b/src/assets/iconfont/demo_index.html new file mode 100644 index 0000000..8c2c212 --- /dev/null +++ b/src/assets/iconfont/demo_index.html @@ -0,0 +1,350 @@ + + + + + iconfont Demo + + + + + + + + + + + + + +
+

+ + +

+ +
+
+
    + +
  • + +
    通知
    +
    &#xe628;
    +
  • + +
  • + +
    no.3
    +
    &#xe629;
    +
  • + +
  • + +
    no.2
    +
    &#xe62a;
    +
  • + +
  • + +
    no.1
    +
    &#xe62b;
    +
  • + +
  • + +
    2
    +
    &#xe62c;
    +
  • + +
  • + +
    3
    +
    &#xe62d;
    +
  • + +
  • + +
    1
    +
    &#xe62e;
    +
  • + +
+
+

Unicode 引用

+
+ +

Unicode 是字体在网页端最原始的应用方式,特点是:

+
    +
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • +
  • 默认情况下不支持多色,直接添加多色图标会自动去色。
  • +
+
+

注意:新版 iconfont 支持两种方式引用多色图标:SVG symbol 引用方式和彩色字体图标模式。(使用彩色字体图标需要在「编辑项目」中开启「彩色」选项后并重新生成。)

+
+

Unicode 使用步骤如下:

+

第一步:拷贝项目下面生成的 @font-face

+
@font-face {
+  font-family: 'iconfont';
+  src: url('iconfont.woff2?t=1663123643053') format('woff2'),
+       url('iconfont.woff?t=1663123643053') format('woff'),
+       url('iconfont.ttf?t=1663123643053') format('truetype'),
+       url('iconfont.svg?t=1663123643053#iconfont') format('svg');
+}
+
+

第二步:定义使用 iconfont 的样式

+
.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+

第三步:挑选相应图标并获取字体编码,应用于页面

+
+<span class="iconfont">&#x33;</span>
+
+
+

"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    + 通知 +
    +
    .icon-tongzhi +
    +
  • + +
  • + +
    + no.3 +
    +
    .icon-a-no3 +
    +
  • + +
  • + +
    + no.2 +
    +
    .icon-a-no2 +
    +
  • + +
  • + +
    + no.1 +
    +
    .icon-a-no1 +
    +
  • + +
  • + +
    + 2 +
    +
    .icon-a-2 +
    +
  • + +
  • + +
    + 3 +
    +
    .icon-a-3 +
    +
  • + +
  • + +
    + 1 +
    +
    .icon-a-1 +
    +
  • + +
+
+

font-class 引用

+
+ +

font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

+

与 Unicode 使用方式相比,具有如下特点:

+
    +
  • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
  • +
  • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 fontclass 代码:

+
<link rel="stylesheet" href="./iconfont.css">
+
+

第二步:挑选相应图标并获取类名,应用于页面:

+
<span class="iconfont icon-xxx"></span>
+
+
+

" + iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    通知
    +
    #icon-tongzhi
    +
  • + +
  • + +
    no.3
    +
    #icon-a-no3
    +
  • + +
  • + +
    no.2
    +
    #icon-a-no2
    +
  • + +
  • + +
    no.1
    +
    #icon-a-no1
    +
  • + +
  • + +
    2
    +
    #icon-a-2
    +
  • + +
  • + +
    3
    +
    #icon-a-3
    +
  • + +
  • + +
    1
    +
    #icon-a-1
    +
  • + +
+
+

Symbol 引用

+
+ +

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 + 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

+
    +
  • 支持多色图标了,不再受单色限制。
  • +
  • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
  • +
  • 兼容性较差,支持 IE9+,及现代浏览器。
  • +
  • 浏览器渲染 SVG 的性能一般,还不如 png。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 symbol 代码:

+
<script src="./iconfont.js"></script>
+
+

第二步:加入通用 CSS 代码(引入一次就行):

+
<style>
+.icon {
+  width: 1em;
+  height: 1em;
+  vertical-align: -0.15em;
+  fill: currentColor;
+  overflow: hidden;
+}
+</style>
+
+

第三步:挑选相应图标并获取类名,应用于页面:

+
<svg class="icon" aria-hidden="true">
+  <use xlink:href="#icon-xxx"></use>
+</svg>
+
+
+
+ +
+
+ + + diff --git a/src/assets/iconfont/iconfont.css b/src/assets/iconfont/iconfont.css new file mode 100644 index 0000000..f75019c --- /dev/null +++ b/src/assets/iconfont/iconfont.css @@ -0,0 +1,44 @@ +@font-face { + font-family: "iconfont"; /* Project id 3646564 */ + src: url('iconfont.woff2?t=1663123643053') format('woff2'), + url('iconfont.woff?t=1663123643053') format('woff'), + url('iconfont.ttf?t=1663123643053') format('truetype'), + url('iconfont.svg?t=1663123643053#iconfont') format('svg'); +} + +.iconfont { + font-family: "iconfont" !important; + font-size: 16px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +.icon-tongzhi:before { + content: "\e628"; +} + +.icon-a-no3:before { + content: "\e629"; +} + +.icon-a-no2:before { + content: "\e62a"; +} + +.icon-a-no1:before { + content: "\e62b"; +} + +.icon-a-2:before { + content: "\e62c"; +} + +.icon-a-3:before { + content: "\e62d"; +} + +.icon-a-1:before { + content: "\e62e"; +} + diff --git a/src/assets/iconfont/iconfont.js b/src/assets/iconfont/iconfont.js new file mode 100644 index 0000000..385dd57 --- /dev/null +++ b/src/assets/iconfont/iconfont.js @@ -0,0 +1 @@ +window._iconfont_svg_string_3646564='',function(t){var F=(F=document.getElementsByTagName("script"))[F.length-1],a=F.getAttribute("data-injectcss"),F=F.getAttribute("data-disable-injectsvg");if(!F){var l,p,h,i,c,d=function(F,a){a.parentNode.insertBefore(F,a)};if(a&&!t.__iconfont__svg__cssinject__){t.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(F){console&&console.log(F)}}l=function(){var F,a=document.createElement("div");a.innerHTML=t._iconfont_svg_string_3646564,(a=a.getElementsByTagName("svg")[0])&&(a.setAttribute("aria-hidden","true"),a.style.position="absolute",a.style.width=0,a.style.height=0,a.style.overflow="hidden",a=a,(F=document.body).firstChild?d(a,F.firstChild):F.appendChild(a))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(l,0):(p=function(){document.removeEventListener("DOMContentLoaded",p,!1),l()},document.addEventListener("DOMContentLoaded",p,!1)):document.attachEvent&&(h=l,i=t.document,c=!1,o(),i.onreadystatechange=function(){"complete"==i.readyState&&(i.onreadystatechange=null,f())})}function f(){c||(c=!0,h())}function o(){try{i.documentElement.doScroll("left")}catch(F){return void setTimeout(o,50)}f()}}(window); \ No newline at end of file diff --git a/src/assets/iconfont/iconfont.json b/src/assets/iconfont/iconfont.json new file mode 100644 index 0000000..3059f81 --- /dev/null +++ b/src/assets/iconfont/iconfont.json @@ -0,0 +1,58 @@ +{ + "id": "3646564", + "name": "智慧屏", + "font_family": "iconfont", + "css_prefix_text": "icon-", + "description": "", + "glyphs": [ + { + "icon_id": "31804863", + "name": "通知", + "font_class": "tongzhi", + "unicode": "e628", + "unicode_decimal": 58920 + }, + { + "icon_id": "31804864", + "name": "no.3", + "font_class": "a-no3", + "unicode": "e629", + "unicode_decimal": 58921 + }, + { + "icon_id": "31804865", + "name": "no.2", + "font_class": "a-no2", + "unicode": "e62a", + "unicode_decimal": 58922 + }, + { + "icon_id": "31804866", + "name": "no.1", + "font_class": "a-no1", + "unicode": "e62b", + "unicode_decimal": 58923 + }, + { + "icon_id": "31804867", + "name": "2", + "font_class": "a-2", + "unicode": "e62c", + "unicode_decimal": 58924 + }, + { + "icon_id": "31804868", + "name": "3", + "font_class": "a-3", + "unicode": "e62d", + "unicode_decimal": 58925 + }, + { + "icon_id": "31804869", + "name": "1", + "font_class": "a-1", + "unicode": "e62e", + "unicode_decimal": 58926 + } + ] +} diff --git a/src/assets/iconfont/iconfont.svg b/src/assets/iconfont/iconfont.svg new file mode 100644 index 0000000..f83cb1d --- /dev/null +++ b/src/assets/iconfont/iconfont.svg @@ -0,0 +1,33 @@ + + + + Created by iconfont + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/iconfont/iconfont.ttf b/src/assets/iconfont/iconfont.ttf new file mode 100644 index 0000000000000000000000000000000000000000..cb8d0032bf9e8d235b1e279e9c9a56ffc916a698 GIT binary patch literal 8772 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 R`Q#~`wJ9k9B-ymc{{!DF5?KHM literal 0 HcmV?d00001 diff --git a/src/assets/iconfont/iconfont.woff2 b/src/assets/iconfont/iconfont.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..09ec2895ccd960c929abd5cf5800363ded44b7fa GIT binary patch literal 3732 zcmV;F4r}puPew8T0RR9101lJ@3jhEB03t*H01ia}0RR9100000000000000000000 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/star-1.png b/src/assets/images/star-1.png new file mode 100644 index 0000000000000000000000000000000000000000..d2f0f812b774d016d9fe774ac462fc5519b5ba02 GIT binary patch literal 6523 zcmb7}c{~&T|G>==IrAxUrb2RL&Rn^Z+>|0RBq3$aZO*xxo-{0@|`2F$QAKPo&>%G_e{W_oT$KtImjk(x`*cliYxJ<5IzQ(}7 z*hrJlvmK#5i}XtC(q5PY3`}g)XOWi`hT@MT{W`tAPRG_rA~6 z3tEpo>>6d`P7neG-?@a4z%b^+#o!*IqL%5){Gf}u)TcJ=Pf*Y8$PVh0+tlTu;3?Yir8xk0+`!sb3}pe*K$w5IV! zI(%dy=bhLPuJzxcS4SZIjoD_6n~0EtaZ;FM&GYKTJI(CcMXA>?McLqy&W>lz_ryZS z&~h(468vU2Re<)KZ%YlE@8ArYgmz{>H5WHwlZ!OJZEY%Vqte^`Y_uQR)peAUekZyD zH?(w}y*fWAwcGSCy_F*Oe)f{l*m@FnCC7Hv-9)>$rqgcq(z^Gs>T4%UbS7lY_}x~O zoTLYSf1UjEDgWfFf>xCclhwlIi;4B8bzi0Enh5$^G^u2zAXLr}Z71KV=ikvEw#~{d zd!4l*(6@J^XkEzJTH%%7m8-(-H@bcKL(WThcf2OW2e-%XH7tT7wz3xM<&|@Prh6{%9t6gs`l@{>Hfm=6AhKOm&<_=mK5L_0dfZ$_y?s@!G zV=EN)F7U~$5t>=j9#MRq{miQ>nyI+cO!-kjd zx?hFpX=W>pag!wbSHgzZ-BtbYW%DTOgO?VQ?8wwpU3?mvn(1kL+WV)bT^CgNR{R6M zpl%3Gr#VkKe)qF)Ye81O#&x72YgMJMdNjQjPGXG+cbc3ste_4SqW%d0r@GsAM<!L{~x zI^V&8p6Ns(by_ z(Z^cot|BTFx%Yf@$7gBuWweiu-}5Trl~IjLxGb{|JgQv5-;Qsn^@-#3*1jtJ&Jf#~ zt+E)>?Bht04Y#xbRpu6-u~J)tb}F0vcqyma&zRepMbaS6dv@4ODzBJVZQp)ag0y`E zR%)uaHzfT=G{>w}zKbBe-UnKUyX4q2j1M*tqux)Ml^X7k7$RR=S&ax1S;Gd-n9g~4 z&AwBinu}L_)=NHNF^>H;F*fXaJ0@kr7;`CNB;xZ8 z)#50~eYlR8QuZ^C{ky07lk>HkJ#`W>we>??@fFn@o2ES*e5>Z|VhVXFu@OQmCR2gi z_d+}{9+-{eJ6sS!WA$#x>E*EOKFSb4oq@H5rPVSiTV=@R_VbH*BHI?Vx^s^rgf^}N zhp1U%9qJ!_4dRAuLR-`q?l+6FLDohX``?Pz7Jo3pjRf27a0D+5uI2BUa$Uo}&{as0 zUdR&I&`f^XrX&TLH?BcOZR>x@|a#nekXdae1| z-=iQWyzgh;sRvbwDU{@V2+#*^I2_Yv#kHJ0moKuq{HD*JB_pKz`zkKa4rsav*!;*q z1aLBK-{vrw{v}ZGaR!xDAIdbtb-JDf!_htRTeiiQA$yWfVt#9IHGjP}J6SDy;<)uU zmTw;zdH|mRAPxC&gfv^fZa{3sS%F=WPCo+w_#!oU=C(00RfcKJp1{kBO%Iqz+45p)%?7ArkQ?QDRNfL0z(J@!@Jg= z5_%6~Y%yCmG|0ro#nGI=WShuT!mk=F+dh&&1)$feYqu;J zMjT&h#?PwPeX>9CA`S>{@_(JI)M8jT#R#DX*$O=`V~V2vwHe6Vmfm(gL8_{T=1_HoBbULnAGH za1^C?v%xM<&V|KC?B7)*?UB%M=C5WhcCEm!sOv7sh>&sjOz&JIp2AINev!)xL3YJ? zT!Wg=W!~TN&QoRy9C$RHow);NFJVkv-u>zg_%0vi)Z#UH#InU_K}yGF`t*j%(2Zl- zTK%YK%kWW;q0-+jCpiSA_D>9Ptr~D>PRp4Iz&SLLEk0S0w>(2!dFi^=+(Z4hBqjlb z;uiTvr}kwQ1yQ1sLuDD)W=0Ibz5C~e@U%snPozVOJl>q)D@SGNR0I6z0%DcB#I1oj zwjOBo^wtv)&7pNU+@~kvJ&Sj3D$&daj@F#!0dH0%SMSY0xgmmfvB!DY08D4kPfJDr zRTTwPnl&-_BU_f< z&QmW{3MT_|jGu}WoGQ4jPV5}iJxckZvpW+bk%m!33<`kUAxYz^biobwS0M5uptq6E zyAmyqV+WJsAlNU5#PR-m1itFXA1%8nu6BwL)|(Th*chM@quAI^0i8ooUD9{=lOok- zpkQvDo8_hSk7-ImAUq`#F{sj5G_J~p@`4fhxquUh@g?}^9_bYTxJ{7Wb_#b?Mo=$x zsQ%rA$e{V3mGUA3iL?z;s}vfOR6?!x_rSVv@n72eltHn;=Sv91M*hMxk4G)A-ZnyV zrZGldmFKzm3tQi)*uOy3OPFF+r1$4%!D<_0Y%rX2#IE1sKS|I#oG2r&Uoz(zn)nOH zB~&sF7d`Y;`fEI)H&0;vnvoammLz;=hmf6sO??{y4XNHy1XLR|IvgHH;D4OT0=sk3 z6ZWb>NOx<2e2`bL_=po_x95{S_Nt@n@YqS?wd#%hamY3)Ic`+jxH}{5?c$r`{Bde7 z(g|2$#VPkYu=$!zA^|?KIgu1;MRs2HSzdGRzlo39&Wxp|4XErd z9fWNJIIS&nagz7oTb^^(QHqU+`bDKHL-eH%93g)~JNDfD5nZCDR@6YOr!jVWOONQ` zA}+$u%0UmK`8TY81uzE|cc)W438UqlylJf3_>Nc}K-F)1)A3gW?=>h)&jro0Cg|eZ zKT(&BbnY)3C{%1jJ{`~QAcl+o%I1aF`(NozHsowh}NHYTlCA>0-3A7Im zcsCDrcyR1ui z@U2%V*^}XJu;aiCFPLz8+Qt7+|EQuyf0xdeer@n(^?9xawl>K=N=`pHhXWQ9QJ;i4 z3{8?51Dd`|Egq914i0D6qn$$WegA^~v#$lyXu^BE?H63n8O%-hEW3y_uwq=vJAqCA zi-B7oR;udGvCNjK1?Dfepil{oVbTU?vC(_}X<*=|SpWYU^$)!IXVW7zzY@;OYE3$? zqqb^$qC$fLJ8>55IdCceRgYc`x%a>oF5UXtEtlV5PLAT)BU@zW(G`3tvEfI;TRUUb z;5ueV%Esu}H^c$UdUJ!$DtQ^ak7|Ck)oJmJ;KXhcN=$qY&;3qPs7M>3?)9jp5WX#n zf2*JDsn{&DZ@C06oCP6NWZ9W`+2u?sQT4g`bT?=!2dwQ?S zYxAFW_%?}#`8MvKQVnRF?-%v@BY_n?0g2t8dFdmWNaCI4C%qX9Z-1NL49{KGjgTXa zXiJTM7@HnEo)I(lb06WeM4fDklZ<`V7 zvnY;Pz82uJv&iSu4&owLg4~H;oi|tH;TpZ$-}Hqqu4+E||5AR}P3*p}QH7t;H4s$e zZJe<{H;3KbmUWY49Lz{X^n{^W7T0c`@6ycBpFZ8Rz==X>VF_Iq_XD@LU_VT~Z7{Ob zmW2gcr%`PDD1d#%;_E6~eoF*ID-(JxaDeHpn(v3jt@NY%W%8m}9OgIm#~d_>8~$+o zC}wM(XU;P5Pnxw;CQ^H5AJfZNzNJF3vDL3r0QA!NTn{MYg9Le}NI;_}x-}AR!+G=; z|IB7v2l8RFRnOG|M+u+LNFCu@vsLiaP-17c@ce$*#5s4h$t~hz6~1S=RTYCOlhRg0 zMC%kerrBk0Ih}=K?UC4W!=|sXVaS8e)}Tsf(N4|X%W=xn_tL1D_oF%horRC6K{X`V z6~QfAs#P2P>_9E7Rz{!>d^=Za89J>tJ|BtPMAxc}rnXbIhgBNi*(lMAu}aymXgvI$ zAMAo@j28@mrI$@;hTs^odMzasgU&}q73&le^=@E7n^xlsa4v%rl*1DLccdK-D#gZN zA5OCSJy=%)CR83*AaC1aN~Zb9!aNJrP7ev8{V^NV2ShtyAgT&x#& z`=d#jnw5Kk9jZaQA&Dep#1G916JOrr!K@vsyZvuyU#4nnkUnf!?`{-N^hI^zN%6$t zRFZ?QEvY}tmI@|S*6mST9~g^q#MM&$?DKQWJE76o(Sf3G!+|1>u5xqsCz~5vT^F0Y ztq4fxCnfpAG)NN}$kEsY+Zfkg=l1qiFKc?j?ajfXKbO{VQmf3V&DCP>82C%jE-%%c z&S~l;<)o524E&hrfUk?AaISh;p?X=r_QJ&bo1~KTiOQl`rMBau1DhpG!rb0WA_Lrh z_KvjQ5S0b`+hc>S-M`C9Z<=afwB$^&g?*H&K;~uW!BWE1PQ?D63U=qrHsKuFjT3B2 zahl`|qm4TwF9j~3|B;#){aw%GglQE@2e_T!y-?ZMRd-HCqaM2#pDNbgLY~ z1FqbKlYCYpL$ML7$FHiMBUybsPBqBZ%=ePF18Z#*C&f+Jl&9l8Z?b22qnnC$m+QmC zc?Y0vq-QH{=aiF}C?Q>BpfBoSSi5VI-`bFE<r2g*Xi``Mz3vI6D@?n5{jW*W{#UL*skRk$!`<;4)1_OL>bt_EiAT@fte-pjp zGyPms4~nN{matgDA#%Jhf74D`;R&5s-gvC0RYwPrs5YtXLL)D0a&p_sr**k2@YC;- zqTQ0VkLBw>^^kQq)_MPPtMp}kac`lv8J_8=he`Z4d^un2DheXf(<@8^a$Sq*cj3aj zHMF}h%T^sIt0~atacab|oxa9Lp1QVddv##R*O|#2Pjj!I8c8USHE-aXp8!V$@p&x^i8wP#2S2nI)qb%`AFwC2l9?Wn?@~=^=_i-`~hZ zIt*?rJ}|hVn-AGTOuImOMg41 z=(5M5>2C|Pf%r7cK^PlKt9$o2RXUtO8{|CnB948GI<8^JEa(@U@bTPcO_u)2>X+H6 z$|YqkMOBOoH)z~?=gcR!tW@RG&M$FiFAIBuT92>a!ASWd1k9uMX858X05lAfzhvH2 zOevdqk#)xChqbXrjLyNW#r!lwx$i>Q9ibtXz;lt7ElVPwHCrm8yBSgdg*X@FRd!3N z?D;F~--%ie?H({m0ArlySe~MpA=AH9*Q%KzwXcxtTgy-@z*ruU=3c=}FB*DJ&2_(W z(xsObjg<2U?i#elMWb3F5HYV@l?$j`cs~T$x?w=#u&;2e{GRwu=od@;8y6u3d)22h zCR3&?;p}IR@3O|+R5#dgIeB6EEaPynKRZiWUc1QqfEuR9u>h_;fOwi8*Z0zm;^ce7 zJTBMgvm>vxfBh%?wc$dEHcO$|WjUAA(YIVC3h%;%kx5WEdb!wLFKi=JouQx1Zv+9R zA*^rH8|erPPx0>(#?A+2*t)^M!GP6F1U3HO-Qp=Z;vSpx%8kvJF*`p~=AnG^S7PC0 zJL>0?!tIoMU(C$0!UuvUbpPNM(36Hec*;Ni-)X6nHbCnpQ+Ht<@;l^W3}Gl#9P1dd z*_C^24Mm$?y<5JcbnhU|S_Q_21wa)sWM=_v=zweIpNj=Kp5js=ntUL5<3RS!&S{S? zw&IO)9^L)~jD!bUf%pp3K!X93uwl(>tH>aOo0W1Np7YY8Y1J%AijZ$&Y08oA-KV>z zIAyLMOOrkgJtop@fYE0vt>T#EZ1t1-CKzq#5NlXoR~IDV=;;M?et|$%C#<8R#*>zz z32;gN>_dLbJ?)`@I9cf!n$X)403BYZpHWs0`GC%;k}VZ97Uz$nRvCG<+)Ca=LxFwd zD=i5T_41?I{fA%+ZY#}3Szt@m;^?#2M*utjgXs|X4(U%Y(U*-2VL0NfY-;#im4xOd7utpFq#S{wW38Sc@<9qQio=8_a`u;fV-`E6B<8YE`ED zqjkZa6Y*yE!iguur3^cPH_N$pSRWYHftE%+C3-!I`fJS4&k_r|uH0-G5?w7nDU(V(({uvv9e_2ZVH-*8($ntW9flKs%0ZU6YKL7v# literal 0 HcmV?d00001 diff --git a/src/assets/images/star-2.png b/src/assets/images/star-2.png new file mode 100644 index 0000000000000000000000000000000000000000..c00d71382295cbb9e381e6c845c95a1691becc15 GIT binary patch literal 5583 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/star-3.png b/src/assets/images/star-3.png new file mode 100644 index 0000000000000000000000000000000000000000..82407a5c35621b9ee82ceeca18d93659f7d164a0 GIT binary patch literal 6880 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/title.png b/src/assets/images/title.png new file mode 100644 index 0000000000000000000000000000000000000000..b5ddaeae2a7bd4f3604d31829fb243c00dd6e58b GIT binary patch literal 4307 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 literal 0 HcmV?d00001 diff --git a/src/assets/images/top.png b/src/assets/images/top.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e606f926185f92b99c26e54cfba36d238b3118 GIT binary patch literal 44714 zcmaI7WmFsA7dA?Z7mB-EaVhTFphX%8ZY@r*;ts`wyIXO0_fnv^6bLRY?(TX+fA9aU z_kOvYwUU|4naO0%KKqe<2>qli`}PgV8#p+)xAJlTRX8|g3)r?U3KHzKaS%!kdqZ%P zk_Vx{{=863AaHP0aPk02kek6l2kLh+_0%iFk9MxZ6jYonCbS4~jJC}=JKMz(+^gtO zix09UaL(Vp4KNd<(6-gSV@DU-iCE*O6^i0!Kfev-qJp5%QKQL2=;&gwYPTyp)E~1Q zOO;*KUD=9Cl~;AWk1g9fclUIZI~ts3-N%l-LDHQjNH0xB9x2JoWqCf;`pHEas;mL( z11a@^K=BV<@-Dx7d4v)b>7UIz2GBQF4=|rWoGh6;DQ2U2Yuv3^_YsxxK4um11vVDSSb4fM*Bb`UO;=*aS>F8Rd&H|96bDmqE)Q_ zR%*LoSodB+yiQqMD3dMxBBeA*Qf)^spV)~K-IF4TV*x`r+GJ7v?QpDG&kFsR_r{EY za@}~)f>??fbh_d^FNxoiqP$39HgEO{HNDpHW25o7?DpV<&E)uLsRp*Z@QFc%S^4Gq zD!zxFT-3q3@>X{{euWsOyB(YPsM@bCUT))Jp~mjU&~YACT^acODTf({R?8$7mqjP9 zDBpO?3)ZrY5t=8Z6)Ow$OqngF^sP^YpZ8?4wseQr&U3%)(QTFA-i4fq&DwzJwkj;| zzI~zS>$=1+sj}Qq`bRrgFTs zH;D!{+dW;8VWnGTDM@TP!)qO>(D%^|dh7x21Ka8%p(aB!ttVpPyL2SPWse)H^n7M} zHxVLM`kl(4hjs#GiJNeuNuBG(rsNfH4FHY}HVQ%$! zHu{L9e{NyckFpM^?D|5X-y<}j2I>)UJNhKAtLUXnNPGV0OO!}Zth?0|y2#r&_rZ8t zgMq^SJM_fzXc7G1eAVuAcRND^9y?RSyML-@q_>LBCyQjQ(o;ej{gkV!qS>P@ort+8 zmlZnn-H7Uv>m1}4zc?3a4gYc6_L(elU9geb%Edgpx;t>0vuRoYH|6ELy?mrQkFh1a z0~p%1b!0o~)>qWS7dMXHIW;O-QLqHe@a^v#5C2|)xAJyrD>s%+D)2PQMmAa96#}=I z!e-jy%C!#r!PVpnji>h&>x_L}l(o&{%-s%w)s)3>#R_|W%V%=)R*tJ%;BZh!_Gn9S z1-xVR!{Ro^vY~9}p%*ktcsa?FGNYy1K~|ZD471-S?qJ@AjvRR8U0a1|)#AavbZ@f# zb76ej{^#@Z0`K{AzZjuu4Dm~|2uH8xm}s;px6U8=25WFCNXi`+>(Z@REw98c3(rP4 zwqyTwByuEvpGdvnEb+@`I?#9WSgPL8DkkibRgspQ=Zo~rb5G$Es*~sy*Oi0QAGpUd zOpot*EOO!>Z1gW2tuEwj-hXSzu=sCD*u00&S}Eej*1&W$p7BY*^o zta5G40zl=j_!{iVt-Tv;rf2Qm3gqaPZ~9~OR=3WTyUd+yJz`$*B#Cq7<#jm0g=BW= zbdtjh&cWdd)#f%TdEVEvjF73unqCHmhY0bNuQ~md7kr$Wv{>U^n8zd7-s?> zW5G{KD)RFx^oU{pBkVUc9B*LdHBC}TNHGXH9EuR`{772(jKe2T+^N)>Au1Q>Lb}i* z%|N3)1m}J%cv^ z$y*5Zu-0Lj#^HJNTbFL39fvCke6|2~Q$9>$MgLusm^Y-=xkeWd-X942^~hN@4SJywwxUVR#;a4`Thz{B?`=&fqb z@B+O092LG$w&=?)^%U%8xa3T?UAHiP8)u#HZZDA|(kNqn@h=Yx#Z^q9no1D>HUyz^ zMgDKEI}lZ9lz>5wP6{FQS1;;S*1rSi@9q6jac6iwW_+h;6|g=(0~=T?Y3LPWP!%(%dVX7X z2fSSQd)@pRLMGA|f17v=<2--A9U=-om`7>?7#d87S&Wgra;m1?~ATIsE(&Ul7 zC#8jtwS6wV;s&!H};%RYuxMdwQJotU7|#^EDflX@$`XX=WPw7)K~vCS){Lqt0A7Jm;0I=?S}L+W)iUWot&Eralu6dTsz7I&jp`DoZ>nd zzusD^KU;Bv&T9X zp7t95nZa54VIQvU%Y~B#v!r}2;#)6>ky+dH64nr|vumkB4dfc)ma45knqw9pH_Wny zHN^0@!{~biZsVRA`ng_*! zw8*Tc*l=FM_sAn;!Y}lFVxbbR=B=j<7%$TjgV#aY?{}$|EoLZB)rLPl++?wKSDcLq z3l93^L?oRtu>BpbGz~-HwN1fCBVmh9nMPT`_gul`i#_$sU|GwQB5*uz!gs1EPL99v zrCNmAQI&{`$XfyGx#T}SpbVSFY+4S|y{4qLktpYRo7ydef+9I7WAQd1&Y)DL(3rns z_ofP5k?N(a1K1wMvPN^9xQx9t68j+Oema(}aU9tec&*FUeVzgn&s>9?s*>0sU_mK{*_Utho!60u=BDs&;Wr0&W3C zb@ki6xeY)ED6VWe4pDSw#u6K=d_LBc=8IrHjy2?3mT| zf(~dBZ^n|r@Fl4K@3umGQkEuFrZ8QWriIUOz>Hb{Cdf2T%F0>`pH5Gmac9YdLgQ}$ zo86;BBa5LHR6z?7N9VN1V}5EMst8^z(KMy*N~##5bXs<4K+(7icxrE4kP|PnDKc;l zY)n_@saXV-El8EwPbU|t8|>YGR)?=S|12gmCe4Ms8VY{G^~@d<3|eXAcL|28QM{OC?W$$WQf$8Eru)P5P?>{G?Sg~_ z`x;gA`KuTP*S0i>DG*SaAG3SqGX-X>Z_3f&?Q0R!$O*K~u8an~FB$)sR2HYe?2?Gj zB0D3JukhwD=R4XI^4Bscbg?Sk+n8OgED-+}4KWvC%L2SS+o=y_`4i4_Hm+K?(`@eL zZx|~|V}6$AO)S^5%v5s4N!9I=&W5E4|uleWpI$WUS*A&?zhaTRl zY*v-tJyhB=V`{U@^q)Lg;Dn_MoBlldMOJPqZY)9gBK_v4Q5|+i$_Iwz7N0rdUzIs4 z-u#D8^QF%;AC6j2X2rkF5#u@6mDQDAVWL3hK8y1$;WJ%*d9r1l#X?5yU-i=y;YaYfyEH{k@)Mo*_& zmDHu)TW)o_qRj7=KhZPFo)~_n3y|?B%<+6xW5w+Ae96503r~Gl#J@Hr{=L9AH=n;U z)A78*%=%8%{;B&CWIw)Rqwf)c5~S!=ib%DIq7vUL=8_(V1SjZeDyxOf{J|p;uA8}M zhs+Zt#Er+=Qj>QY#q4uxNlVgA)m?}p)x=zz2&Gm*Bx!qB(R<8xsPMV83cg8_yJa(d z_sq}eqe5P6LNgUh#0mbm@w-C<$|;P!$@w`5qhR2B05VI#)W^!*>FY9oNd~PbTZWKp zr+Sp9NJ$nUk!iW!W}HdHkgG`pdaLR;OqyZ4^|Ep99@zU<@T9XfkIdkn$wOm$E*|(} z^^S<&WNuZ)LPD-P+jChmXX@P|M4$a%*VCzTu#?C7sKoAGI8OF`pm|uEunIV9fb4Wm zR>&b~r9j`57m`m6T3`vKd_yR;e>F&tq)vI~gob%#LB$YV4&sJqRJfJ0N6| zpEiv7F8sE3ZC-rb*AgZ+FhxVW_!euR#;h^nJn@*1{7tzG73u0;hjiz)lQfLjW;^rE zXFksGSlv6dHpo@1r%`Bo-s;G>HCG`46|v1~M%$($hnO81|2T2rbWZ7D?M!y^c~}A-^}(Y8Yh82|r+{;EnX1`Ws~O znY!@zVi+5E;$rf4$3ezsE|-_GRx!CJvZ+yQX-w{jq-dQlNd2=gWTquln3fpHG7jhP z%IOXfFcU&EcT@RuoX$#whRIf`ii0bYj0C-gPPdnzkhocXJCE{n>0_rt=lXk^I4_vH z(4-!h`G#0g3x$1OSyMATIl->q0T4mO&oiyjkD>~JCpyzE`NIN~rP)b--xzXTX#0oZ zb)!mPB$u~cUj*=HG&;UBG*K0GwSk;YsR8GBgQY40Ne3p{8)Tj$tIW%$+ul(XyUe>* z#FZsFF`S!>kTr6D^DAY_BC)Zo=R+<+bM>uc$GZndrzc#Vv}@&EI0;a-eN3#=R`I%}1T(-=%(e zALu+Zl>ASQ{n#1$F^RAH^rlPLwnxdg(sBGN?W3rVvzOUnTF}1iEX8ogi##J5CXRW1 z$S8gnUgfdNDq^=3yeuO6yE1L4>SVxqG)dT8Jl;a|>L*&&!fHI{U1bm9(HoIoXF9Fz zFCsF_KJ}#)KDS4yJ7UUDIu5sE+!D>pe&Opj@-xAd7}3UoOX{S@Y3G2r%K_6qvp>`0 z6_0^gOiN)a!P=FS9?+q?CsEx>x6R-8e4ci(F4cePv9JdT253b=e*%H(;X6;%dx6bF zUHTNMw0ZKVoGdh9qWC)tX@k2macLb*5HS8)6Dsx+3o}+7K4ji#?R$yDhz6Bee<(XP z8M6!J^nvXv(T4*9M)0*npUiV24ZRflkss00J|Q*pwFKyB6S7WaMj0T-#&u>rTjl-M z=tf{*uK&c)Z3C+V5i+NU9!+oL7`C#LPmcNO#Nt4Uu&<@};C)THcjZ+Y?g+&te<^z%#F9XnT-F=7F6Btzgf{d3o`qB5&;n~kIFq* zDq)mbA1>rF4=z2x!`dFzOgQ9V42!vmD;Y_zU|!7Y#n}p>;;*7+|7B0r^%V3ALrpsZ zESQei%m3YG19gc*=FWR5U^~@7WE=vC&Pm-sp`V9)g)k`6BQ|m2*$Q5jriH z*VLMne6~0oMiKi^tJ#s~FGH?hrg`n=!w$_qPvhJTKm)xuw$>R*-Jq?|^T3PP@tcRE zs6mic>+}@lNgYHaF592G+pYG=!%@s*Z=}bJ^-JPjAss6S}-pSuUc}(_$9C!m_Fm*Tt-KmW$$=Pt&mZ<u79iN1{X(CQ3>JFQ|mKcu9)%jj>kl$yoI5K zi2p79=gw~_iq5v5DlpUE^qM2m)K{Zm>-eEmpoE4f!uDQcw+hl^-^b3DWMJpkygt>! z#*ti;^wOY`LJP;r!BpJybT~$D`Gnfg!sA8@YVYAq_FB0E-9o3+) zOYsvx^BneBzIrJB0=6=cb5a0!FjC+AX7(uq{d`R+dub{^`Mr z1Fb=Y9p+CajAjNSkBK9}4jZ6BYt>{`xs^N*u%M?ehlS<$YCeGa-xZT4TVdwvz)3F4 z8KF_bZh-AuzL|-$jy&v|u>JXH3v4=G+S>Ss_r3^d*`ZxJc#LLEfN5L5l#Vy|**7Zx zPLzda!;c3Pv!JDk527+8D*=%R3>pfG98oCh!W@VZm?nG7x)fD6o;npuzCH%qjnID( z*|bXGsy?XQ-u|ZXgghtU6_`K zSc%jmQLdlF$&d@Y4h%}G3tCz=>7LyLY;*CR<9{sLeZB3 z$I&feGc+dnYPZDHsXG^M0(wCf`?^e$YZMy8ughwkz!5y#6`y?`YFekYMrn4<@gH&L z{2Aqh^`5+<=VImtpSzvDPq#f+68fHBKIh>@znWzKi?s#k3n9|MC?R{T%{IP>IA1qOSzi zMilHyNu%3(;)}{7J4gW`CuN0j6TAjwsxkbC?zmXQg3CnubiC3Id30KE@`p@ji{i+n z5_YymTKOq#-@e<@)l7W^h0~SDvH%ZHZD`~2mEnQQ^efYc08mj}{iF@cIIceEAf3M`5|EPG96Lg z2-y>9F9|nlFG=lhxG20jEr&&)vM`WsIz8=CgVHkh4x48~@qxFmK5X8C1-~CLY@w`L z?2GT~(7ob2$FFwlXCJeC86M7$?CSpn$RX-BkC+486Nbc8I?=JhT8!m7$X;8l`5e`( zZ88r%6Ud^7y6x>LF!{F8_1%um{uWBcvyk17jjT4@z4TM6ay@Fdx>g?546gi;h8xNH zlQI1`HCi%P=R3c%rg_Lh^rf?_GmAG>Lm!~F69cNA)VAyWpPv#&SL)tKIFl7T zKFHYRgah5BD@hG;)(PEnTXVdFfZ6T9v4Dn8aU_KJ`i5Z7erJ*K zy?WT3>?rBS0kXyA+Xl(PP6Wr&IWL5QRj}t(^tLjyG_ZAwZ@l(`d~2xU$5-+!7VekF zE4B=JK50}M)}1U)+ST!@To_pCw}aK#eFg5dQPx@hCa0CF=9hSV;Jr+j?MN=Oc-HM{ zw?EV*M6HP;>*SWTEy0H+TpO0!g~ENjV|d|vYU&cXI@cp!;Vl#9(r*h7L(0%kRjY2> z<;R1RbW&q!y)4=fuIa7ZX1hqDi}sum+xrGYg{l<<(T|^>3k{d%yUus>n0rMMq<;PB za;uS(1J!Hb{Z*Jrmi63=Rm*4l(n;2B@PKxDA|T2nQwlHN#z2gp7&EW- zHH+-Cj?)2SRy z!M~^PIRC!lyg%$ZUjH$^;ZJ|NUV$+DH`OGHg)8|virn`4uyBDDG|a$YFf(Ran*C#| zr}D42)VC}h29>*)T}oNbEx|k{FG@h*4U<&>Bc;|-Ii+UV&_9tH2+>!BjrO4CflhA8 zuZrgHW6I4{QXP)CFocXkXT7~pvd7~?T$TC2oY06E4? zkF*K#u1p)Jz=l|r@Qm43OR7)7hx1eaAFAPi1&*)|GJuB~;q)uhfdhn4u^;UP@iNo^ z=b?@g;WDZu=Q@@+S?4wnHEtTu3tTAgZ(_o7x>96C8HEt(96DZy>?ns7F@Up9M+tB& z9cNbd4{-G50y%&Ni8v1$IXNk_DWN5pW*}xFCs>?I_ZR}G3&L^f7Rxpy^Iy`b`=yk> zAGcgd(XazU=BD@4JQUVp@F@=pzbI60lWma8)j8mBw6fWyFO7aS%pOzLJ;@oy)2E&B z;0+hJ`S#Ox>cK#JRKMkP1^2pvhT9=?g;>jDx3P|Qsu>Y$s6^fY;N|~Tt?Q}Gu(?#UlCpbrC#y8h>RQdQ#QcB;ejt!Ko!&9vmw#*MT z<1!|0ieqJG!~PvN^}z&OIj)`%ttOn$nQ>SQ%vie~H|MIuQX|^P0j%(?032h1a5`w~)P9s*?Gtz~3sMeufg^ zSUM?)XS=Eb=o~YPsQ1_(13jxc4;fhToweD&_K(r}_mb~q0_SN_B)T%7rd*L5EvnLZ zSPZdv!ie^3`Mp!KCJ(%|=1kmc2A^1F7Jy1DB=j_6mF*#%1gEp6KT^ zM;)FPKCBMn1{?WowLrszE-;6W6kuQ(3k0(4lxg5zs(;Y+)#K#W3_U|tu1nsxWNC!& zEqw!5Gg8D!_xGQIA91bU&@+Ci29Sr#icX55o%uCB3SJ&$TI_6IWbsw2B7&PLzlZLDuuy_yL~@80q3#t`yHQMp zjTeLiom&yGK2G^TG@2*my)vzsk8x2C~RmW13Oyya9k0a{V|!$RR(v^$`XDf!}|*Z|Ou+0y{7tHAfuN_*+Bwq_dy8&!Ub( zt^RP|dnCWNB3e{}wu2w{`oxu2SQuu1q`&$?lV@rB9&{MKf2@C^wqk=kmTbf^Ynm)7 zF3VfLp%Glz@|KrK6DErPViqLk#MGIAssL~5^X^XGED1`ARZozGUR*>P6@ERx(k(h9 z{4I65(o)yEBm$iEeUZIsBqjS*Bl6W%pKeExnM-}vXN1k<&rc9S@fvnW*?H=uH|JTn zZ^z2im1wHxEqDi+ z5QO}ej17gh#~My!d~mYYYL>>QuS5V;;WBbT7GKAu=}u$NR_=qdP+r`ZC1bn?j3Sm} z8k9X59Ni^+>ab#4a{1Arct;$l0iClE=i>094i%7XGM!}Wk9%$BCp++#zUT-A6sr!6 zFX=oA8d6F_oJQlQq zuEbucAWx+EP&)Fex%cb8sZO%ly?ZyQ04jo}ll1dv0vg<2f)2*DT|3WniPxjDeZvd) zeg8hRB651p@st|sh;JtF4ly^-oRn!*GE>3-1jzI)S*Gn>?lZ8tVfAAsb<4wOt%JVL zAex#|g9kYPI{r6=b~iKZnrl=vIClk-AxbrV>&8SD{!!k~g_YtG;huE}nZVz;3Ji8l zY8Y#4T;WVa$5MX4*~|WWEUjjITwL-8bw#hjw0@C)iSPdF z!Q}vAkm={{{_Lzc%Bt14L42{d)bD#V(7hT##3Fag9ag?hUG_Hxep~=3D*(!fy};h9 zFP9iS3mf-`Nlqi=kL~Sryy5bag7$S%(%ad?60e+$OK#tb69Ea zmFeK;rTvKrBZBqHu=Em{Z)OBz*?X`o;;t4>R~i&I-CVqLhu{H%$yj%JFh;HpqrCTz z%Kc?Ukc#^=qUe;0*SNY)$jxM@yW|(I<7}!x|I9jpPY4*hVCG)F;v>!2*L8XVw zNpL<5Ewj*(to)DkFx=s58w2MzyQvBfI-N%Q+F{_8BtDMWAWfUyT_RNu*~QL37Yb3W zJv$~s=#HC`*QZG`5SfIVUKUV#kI0t?#@qIYOVgT_ z6RmD9;t@iunm#U_Bz)|EMl~yB**5YuS1!&rAUbjh`e|H}bYTsvc2wsh?WYj`1>{sl6+gWN#(vD4Nb2rud6zvTaV*uRcz{SM_Y;*Hw~+1z=%97|35~1lF~ub?Y}qG+^4R{24nnkdZNwL=KCfIB<~1a4#jsHT z@x5YRp};l8<#Qd4GsRt__}o3r_O!?_HsqpsBQ(_7Jk|m(fEARx4_!OX?kS)6(t|8? zH1J#_l;?B+w)iHMM`0~`1RFNQ8#Z!*BRc*|Y3re2eA5W$1kS54Y*Bq(W-&*|hz|`< z^bUHyAR2!22>zgbl&4;L@<)2HrnvmEA85qtbB`oD!Vy$|)^M2$WmyB;c`)EwsA>BS1KJg9@HL2ichgfL`}}i_Z;(= z5I!Wm_zE|BJ!Trw84kgP;f(KpM4v?t>;_n`-=Un4WY?5rM}x#d_FOIt%>Y+B45d~u z1|dvz`H$eo-a93nUs0Dr#T?t`D=6@Z0){+Po`*R)IA#Sm>F2y#?mFJTzia{9pVW~) zonCf@Ul6gIM`gc~G^m`8ngDg?q}`3eN;iZ?vdtH{;_RQeH`A$Zvfy9wG(I7`QZG+t zIY3E%5oYS|TmttpZU*^*U=?o(-VxGSALrP5+K6nq7CJ7h``5Aa@x))vBoZ)L_dZ*H zYnmkF_i=B0zkb^H*fyqye~y%KFojFT`&XJB-s=tjNBd6_%vL7lX(@rCI53RJp-L;JP@-$_op;@1`X|r)$cY{T7_8%T5&_Px zP5x)wt@F$3>e4bb6i}vj|LFcl;au6vhiiS&F2{ujVVKR!w_RXN@{2+Om4)AHefn6! z3~TR}{RD^Hv4jYA&GAOt0%GE8aCsZt^U=Ns*uT5((w|_Fu1J?QUrUSG0D$ zWP{d2>rozC$&xZP+NOSkZ{PF;MtvYpg;GNt)J-M1=o#zPTJznoHvBy178hKFY}5FRQoi z@B7{?uZiRx>yez8v+^wP@W9cv(&T#omvPNRf21Bu58voJs{af=e!J#-QKN|bxXIwJ z?NXsQvfAbvd@~##woz)0PN6?{pj8rHV-j8jIMk&Ya;adR34-)=)Lj`Pp#yKwS!3!; z<$w{EBlmk@HG}egIN+%CCt*3OguJLdNpe14510wKGR>YidS5tsb`M$Yu)cwSpBz@A z8iQA!g2Riq=t?BpbA33Gda%|y{UA~I22}E+JS!JCP^QbmUrh1^2h9}F(9pdvbR~}3 ziE;Ba(iR&fyAHprJ5x5>NRz`qg5uZvql^#TWbpO{2lhE7L5{wL4Ya^zg*Xxh3j7jX zHmUxLV%wk_vee=$-=j4`#KqKN0y$M~9N`8)1DrpMzQxLcW0strTwr!}+_WMq{Te4r zKg?9Y%LxeGGbliQzT~poo`5(kD-n$3kh*v#m9whjqyds-1**TzIYacNP}^FEyD^-p1oGxzniVr zeOKIY*-Nip_whDUc`POvs^dSVy)D}o#dX#e>>82ygp@DAG9H~|^6l;i$(HEn`eeF! zxIi7RFBY?6&xzWwLPntbcG$I_{>wrFJpC5JTOm>TF@WbbJvdxXOZ$XhrJa3s**!Vy zP@w8GJto8NnSm5#?*sO-3@?9z?#r<@h-qLkKL1Bk|ymhLFD`w@RGm-JJEWm}J=)G5l} z(xm<4_^>HdVTMXmGVg(a3(b&aneO?IiktO1gG2Wc;--msVgkS%z3C*^gE&XYYd64} zmFb7gZg;(fLHr=ivg0mGs*+R`3TAMKJBZfM@}kfs@)Ap4)%OJz}Rr`>bKf!ViWHoWd3@KzWdE*7(T1;E;Q-w}H^Cou}e#BjITW z%u)$_F~AA-l}6cjG{WayW<78@$+`6NQ$~jZqEY|T5Irv%BGTdiFaWvn-`(6WyFiXZ zJ~RFN*UyNi$II<{ul_e62fskOj<5d23JnjUd8!>}E%!;C^zUsP)L#)}ZEn7SyRZih zw}F@U+<$&6eyPUCG;6{ur>6X&dUNd{YSZTe2ULG0k)ZXwh#(jj9yN(Rjj$k?e3&u; zGt7QfxDeB`_q=r__h6m5OpY8sZZ|)Q1-3prH0h+inszpvY}=17l-X-#aa^+v^SX_X zLraWse@t53I*Mqc*mii`;fQ$uBMq$6;V8Y~&01yryNJT`L#OA@M;-cW4|9qL@Fq0p zgJ-A9=j9L2nBOz8b<2Ad+@)vUw3~3BB;XSpgIKPrY{|3(gBc?pPw|2zNs{AfE0Xrm zerx;P97OR+qQ$1h)dTZldQY*T@vBZ_!Vb6w*UImbv!%zo9d-*Q|8_)^d+gmu^Wn^9 z^dMH_G{V2qY?3<-z@EuUUr*rBl?Qo}jc*jK!nB;dh+s6uwU;w?TAp50Ha~AV1)UVk z)S22)8Xabo28t?P$I6Mz+>9y4Qb1u4J+Xxf%L*|3JS8btkHW}JOFI8`t%SO2 zC@9IPwPu<%)y`S)A5oZ9hQYTy3_sfKeaoYnh{f!{GFq~v%AbdSl*Y^b@@5`99+O+e zq~>;P3J556!KfqZ^>LM8S0RGt#90!g%sNfaDde_7*Blk&JgN~l+iBycpG>nmdVdff zcddEf9<8sGnbtDI)j^9B3|X%zZ+zQ)?e}{`)^Y}hyKy2@-4u;P?7&unFb##+%E9MFI7Nh=Df!{vp z3-(e|UWKpiXC78byST2gQ>9b=1cf-B#H@0xk8*U+_TzXiv%?6_ea69%0{9DPRJC-HaRhR z3{T@&Itf1hL??|b@qW8y@+)%$=Z|t=$S)AtHBG5;5*ndA$T5CeXeeD%{rFLWg8W{S z5icPphZ;uxnuPff`MiU+1JOck+V?!)RIQHyr#4H@TXvC+j@r&;4{$09!6hoyyWrPM#ouY$n# zJEd>0Ii4|(*ckht*@AZC*%?;n`1+T7?0!_r4=hjWk7&amOFxCQ9)!TV`d} z)h2f+lgoU8R#_a{Ao^ERiFX^;t}@H70*vwB%!wvOoRLd0vA3G_XDCVw5;9zxhLxmw z<2zQ;S++PZo1YE-_*r&!Z4&7>tOUJzZJQu!j~nFa_J7$Q4g5zQ8N;DxV|_wFcRvc} zg*5>y{RcwqUP5gE&Z?1(wyK|y-qSG=P?&d@SnXp|+5NSR4;w-3yxdnL`qZ{+u9?^4 zx{zOrB2kpfnV&?q;e1&nNsLTviD{iI%M(?iR9#X-gQ)DNxy-5g?)yeA-c7X@j*0_^ zofM%wN+sx5N0c6i1%&r5k6-M(1tFD^rWvF|!Yb}l*L2KEBmWIZ)- zG!bPb&>ahkEn2dU3nkO6m&5LLbQCd)_|Rw#D@PqDWiG*TBg}NPyDHwgDkRtflE(si z?IYdrytnNLvIPNKobn);1~bd*5d$$6A!OM?FqF$00up2G1AR&N-?axa|6RvdMwN#7S(A}Q4olaTFp?ZLUO8-X1KGo7 zD1m3W`uZ?)nfC6&Gdv(axVaL`NF=a0>$!%*_`TbhT860-H`Qe4$<%&Tq=M?W*KD6T zK0VpB!KAG9CH3t3r`667!>3#Qt}u}1Dz%h~&J!WGN0hjIPS*bSfP^xrB)Y1P<#3J- zW(Q4g-h!G}6s$agm#r;$On?ieM_HwExNGKrI@VrS@wit|8uuM=e`AdGn;LS*ZzIs` z)NmG~6X}jP&_`oJ1*?Aie6UlhF{p$s&YYa$%r}U-S2gN*b=@G0j7EPEEG=~r{8B;| zQsAyeUtmf30AkZ1Qx6BWXpMUNWa>9)iEf6GuXgL-sfAgtpeVSg8?#HyR!UVpyxmEB z-c~Y9^*mx6O4e1d_+C;x|-w^+X70Hy&`Rdu!#j1-6 z=Y(B}R5F20CED3;)@wIeV~dwwvn|b-xS_$Fiao5!$e7|zZao}b+|ylE;>KV`S?lkt zoaP`d1;l65>dH5;^<3(GS4#D?ticH?^mJf?LzX;mG3-)CAaBl!eQy}Hj>g;pqe(x9 z+c<31X7eu5(wC%Qj1CW{sl4%G8AIqhe_5=-Gd1PZ8OOCr{%&tX{PdG;NWY8dlUcHR7m@ov6CYKMwmOJ@u|1zRxstg~-j1HH ze3_;yvd#T!i(kK#d;9FJ5iF<2%2|2*o!khwGa#V=e*qJZ5SQJJrrQ@dQQ9!kw z7g$g}`A8S0eElfRV!jaf00`J8E^V1#p!ett?F$T;ZT^%M2aXmDu8D+m8KPdtk|9aE zNz<#I|C+{uN{TNCNUyb~Sck9BNZY_12sX?phaDPPO(w{9QmRq$k4{3c68g$?;Qy2; z#EJu3q%mdL=>I6uueP~D1ICLqrS7PE^T#b0&EHd=Sp{(4cJEf#+^D=kN@Pg5n@f5Mv(bU6*xNbj=-~ z^=@4h)2AJL6B88PCa3fc&)QEbS?~6)b~3qs>i4-Zsku{Vfd@N)COzgvOGBt=9N+O6 zxSxz!nmc8Fz039yOFw?#DHWW)&sVH70fk+^-3jpR@*dTVI=vDfxLq^<1}9{B>43lK z8-CwEwd2!jcDNUW**^~Q9_%aQ+dK=Y%a$%$R8UusQ$OHIv@0(3IfwlpYY^xFug2Gb z{4m?kG`Zs|z0j?1gz{`*Y2OW>s6Vsvv*)ttIVJV$Lm?FSk1VZ%v%{;7r-{NzmSL?) zZj-imXBnG^*(5EH+4RC1k0uR$<5<+ zh?uisE}RxU&o6SdR5IOgy$cg!iqs0Hvcx1?KB?<(kv7wf$a?st;-$BLkhc5ojthH^ z@$y*g=H|L{eBW94vV2^x!d#dDTEFtGS3MkF_v(4;Y0=$O66P-^tP`ge+tQ@yegK7F z&(3WBhJX!K_T*^ZHHJUC4XZ{|*n#P3U`ZaffFpIVS}q#gN%|GVe{5T+BG=2CmXrJ{ zE8cs%tz0^6B1<=dQI{*XRki#2^?(XB=Uad?w|wSkt`WkJog*%^IXdAh!yuwGXkp;X zCk3YWQ8>9eDg4gLOnGF^1i7BXxoyQMXf@w3p4wry2gnZ0S5EaO>7Ouf42dq@BFrYY zdE4>$mJm29uNvSc{b-c%>BnPo?1a2=@lAx6G~VEUtBt7NFq?Q|NuOr>M#OafzXBaM z`BFwKot-d&*nEvsHsi88-FA}8UDHyhOPHv)DU##i=5GJ&OMZiQYQ{~D)fn2Dj(=fG=&ha>C4eK&Z_pCnI?znBkv3_Nbe3>`}oEXZ62 z{wj&C>l1cxYZ6@xNyuApWZh$j!-p7nZPwiTjGNm1xDHRUV?R1(u?I9%nO`Por{3C$ zKUZBIg(l~eE&{eOKxKW;tm>u7wk>wI%AMr#j_-yf!aDT&?pN6#a%to%v=oD3Ihkm`uefx^ zwMIwPll5BSU7YM5&dBy;_b=B{Whu~7{hEmdZo~c`s@^&%$}a97R+JD#x&`T!?h=88 z1qoePP+Do0l5P+I>F$=LmZhW{q#Gm_qy?lKr0c!*etyrq^Zctb%y6!AzVRsxRD@9V zWNd$C9Hu{UTi87qIO~oy%DSB}-Kj_>-+hF4FrS#aDEVG#rFZ{LQpSCg;OR~Mb+xK_ zjv$_SO|$i34Mm&pW>B!-bYPdZY>eD|V6W3L<-lx@n8=wtp%>+G_^_$nqtHRw#VewQ z-j+3!7j};gxXf#ucV}MQyJ0@IV|^r$s_5(B)v@*BUXu@lk_Lm7!pfn{$UnjNPtl88 z#`>rHAX|jXWY_tCuEO+jBtibjxmK=#^WQQ1@@1lyCl1n=Efl5xOAf)OkN0}l zbSL=fKYm;)pVB8*(hnw{j0|*n08vvq_$iA$wV@ACKhXh*b+Wq4ZC)k^sA^RgUz?IL zET#q$vdwoa(SxG=p#&|@4MDF*v((SqeQu}+f~ULoaZGJbKDl^7fj!U!P^CF!x@|sQ zCsEXp1nuK6`fYyvQhQX;^PMfkoD5hoLQ)OKx}3?fuN5%O;0?_Y^7dl&-oO$d*0=pZ zln_u+vHfzc5PCc{=DGVNvw6eGu-kCt z)Of$IJ`A{4{RyKZ8b!|CU-zUV*jxye7wFALuYaOm2p+!1pQg{}UpaTRI>@!YYr#34 zJ^p?czQ}yMv*>dP9$N}oB*uT+tIbSc%X@cjAahLC)(P4X%Z`2k*#jGn`Yw@Kko9CA zDyWTSZSK1vOL(81`kr0dx2!2=IVp|A3q9gEb8K-Rbk^q+{eHb6H9xFO0clRQ+UF-d z?KzDnmwNC$jPyd~M)!Y}B|hQ)`SYD3fi&%J|DU)-&N zpHH&;1>5eW*6oJ*UTCYWt^uzisV7+(E7RCsL+G@$-anp`!@)>ln9nylC>t~vm|&_n zSCC_HAiG}@8^Lcx`J)0Gceq?Qw^4ANQ@1fi))&k*%bTSq==b#Ioe+v8+hbkuJKcLL z&u>@dKawGIx^6bT6K?0N&HF4d(vMRWZdd+7f)HkMdH|C2R8$@6n@Y#3Jg>tgdOOH*0@pU)(d=U2d$Z-}hyELPZO{TX*vf^k&@>bs2>u z(mU-CW!^-t+0S@|)Q~J)iE_~wtha>I%ys7>&5vrpZ8Z`lszOZ2x9$f^K3XV2%#Dyw zGO-yr)!1}8RUHZ+bG@NKA=1CgKRddJg>G*$yKEMHD8{DCL}-70&VBTQ;W%OI8EFn} zXs-+4kAC{^hbwfIBgj_C?zLyAX}jx_$HiE`lxCzZh% z^ay4QvV7`!q_?7GOEN>(D`*<=_BSQHH(g@0tvs9>{Ox4ZVf6irp$pEy4E7q+--~@qN|R z5)Gi@*io}3qhu$~B|=4>yp=l5J?S0Q@vTbgZ)x`+9EP1HA|d(>%R7T@Bv(W8tb#Aw zc7y6T%})cYY($XLLMoxIy$DRH#t0;T!DZdzXZeQ)!)vI3` zHaow5@XO*hp&&&rQ0K1=mLt~iYh?r#ds9VOa0L%Tn(WZy{_dXFSf8^DzMSm3|E?K5 zWvos%sI{f~CNYNW&Y`O=^#0Tv*=VI7O*1Ef;`0^4I%ac&06_utW>oa<>~=8v5|jZ7 z-n!Coz21^k$%<<~@=wO6(dk&|6szTz1HU42O0j)K`Bw?Km!E_Cpve;QUyC<$t)d<# zRi3;zUKliE^{}4l%Zus1o0=ym&k`-STJ1>~cR;Fax{DefQ6x&)f?G3a!89 zjA!-nOXo>8;B(S)$F4Pv`}W0+yX#OsNE2j;?!KVy%Cg|s7R+KbREvt*{c^KP=AzEr z>62cGJw1}G?PQ+UvO%39cF(PnI^Vw(`-RsZE@8&GWJHuhBUmb{lo=`Ay_dpV^IrVu zqvI?=wJj@B`SNqwPV{to+A!OAt}ZELShf$$Rs_+Z9|j47I!xiUHB!kJ-9G(_EJY>& zZO?$*t87>8dK$7;Ag}=%!o^&A1mYJ}Hu%<<)QuY)j9907IROZzZGODYlO;BNr||RR zH&8Fi$4|XfRJbWiAq+Bqjw7(j7dJ^*MY`g$z?_y#wVdlD)k_!xNP^x#*%*uX#UglQ zutEXNfJClto=aNDw%B7~rgDY&$qxqrqIuc9%Lkuz$hA4WO-|2KOh+K~*wC%u;QryN z&)X;5nUDADbg5_mjq}=!Ekw(_+RAk5U_l6TXJ9$jn( z&>A`VI3*blUA~iJ6~mM;0l0Ncbt)l^-`H2RJ}tB>tq*{49uNo^F$w}oq#S$H%388r zeqto*KioP~%XKAt6_RgE_PQq9=I(gjWzuVE^6se?m-ce4Pjz|8(2U3EJd-|mjNtzS zCRNivQh9H4$#o-OfIoZwFai6*7*8a&QHw|Fpl-scp{!~7-0|6^mf+QX# zkgNi==>*bjtmu+db)=$a> zCeOVsh4Tg6|DsI%ZaP^@1>UXm5G?%qGVc)nb~CHu@ZYRv)+$G(TkkB}K(LY2UoU~n zki;OWLBnZj>ltu>dPi$=)@}Q*GW;eo+GrXrIZxyL2Z_G(R(_6(%k>`FE8-Qwh6`t- zy|p)2q1Av^tb3q97IR+~qoQw{)wnVCyZON*B^WkjSo2OiBae03zWR8Z=$I?I+QIKip|QDhRZ1DY_}VTE3KX4-EnuSlEMs-) z(`7%`xuLeFHF6zTcXOJWscCMsn@$BTD)0~B^*Kd>U$}Q=YWu-GZz|76Gx?k@8#bAG zetT>qrb(msz4!f@^nA}W#FQh+CA!ue1V`N$0!fnFhOG}zmJQzC7r4#kUaxvW(}R>7 zNRl#JUQUSHVL5!~CU`z`vORHsS&~M@$))g|*Qgv;9jp2BZLz3}%Sv^}yr|#tjp{}q z-mgSxIhG}-7ETqxv!`?|#@BUA4cV*d4cz8BzFSGW%U#WcE4wT}bjy{jo{+AH22d|Q zPMUwb3@hE?`v~J0I>LCOYx#Vq=xfv8Fj@;^|NHNZwiAO=VO00ttMAue3BUwd-Bi(m zFQo!s(&vTiEexU^>A2`8eTz$}UsP3~-C{eEl5C6RqRF{4GVXuZu%FrApgKV%nha@a zgld`m9#p16joNowA5*oGakb|ji1hGAYyJ8Wp=qSpix}oIcH{9J)jK9BY}1m3*eCFUl?y#zzVKS>&!zFZeN585 z1NZn`v%_J3f6p`RNQ?JXT{>5+`n2!he$CDgo)(a2$0(E=H)-SByG0(`yvBfB@c1#> zl)~=$BW2-(h*Z6*d*H+?eKl5Q;r&O5)x`PqG!MWEi56W3(C1If1Sj*ir3_0I<$7t> zk)aiJ=5DqC_VF`4&Hc1C5V6i?*Dw&^6l&JKIQevp3;+%x>M7T5N>I22TvRw71*U?~ zhUS?EI2wCFdkGtu!e@p|YWd|RRR9CZ0euh-niGV@GD1Ik9J(8mvV5m{k|_j;0+KDG zYLBAFb4;Fq0KBKq?Em3C!y&NV9KejT=a&5kK<+)Eg;VKiiFoz^%Zm?@zHLcfdJvqh z`7+@7_}bj_$TuDnQQ1q5CePsY3K}OwsEN^wzfDf7g>8e@r2)Z4K7SA6f$2wc!e;!H zlhdM<*-CX#A?3^s$ZY@S0?vdH2ZrC zxAWShFFUT5SL8~(QtRV{rn*vb)XvBBwPKoC2e__#&0`xN&gKUJT^2IO(`j_fFye8_ zwM>X&1v#Jz2(hGLk(-Qw+=&bNj75xCv9&3noO)wz-WPXI4|o~5SNa`%TSzT%tW5&j z5Q-b@W$C9l&IZ5QVH>BG515OxxtZ}<%MHd3I1zXbs(HvLnei_Q1igMG#a91{vAF2r zbYwP;8jh9X8z%)hXGOWckEBZgRIg;-En`lpxVgySZ$mFvz6-2hxgv6fbIVvr)+ix=(Rwp~Q^RNa-pf$n6glF#x+<$RbDE zmvqw+cAV)_VIeR>BH}F?D!4>t?Rt54H+i-m05z(91Fq1?!Wa3U=0|`-APi9k$Q^z! zj)$6117$L1QbNk0cud;B;eI7{@>?e28F97>3k#k@^>YqluWz46k8ZkB4JH<^D!Bfs z`c_Q46+$@de77oIc#CU#TRljB-|=&;XOu1bENdoHlRT?vXM?|=4Vc5kG-UBl%vJ-k>b@zf+QK>xiBPKESy$hpc@I)+Hx>U;47-W+mT1?$ zf73!?+kDU67IB=;Ieaqvs>(=M&7~9YbejU6ZqJE%!x<4Ew#vUE(ckQsu2ya}iAjFX zBR)M$oDCpELgz=6`zS`wrC=%c-Rv+yj3f~SbnUeEvH!!B}HS13NdomJ)?7r)b-t#_7N8>JJcgrxcOsxtgBJ3mV zqG=gzWLVZ%BJ6`I^w~_HWg$GHQj!$~*Efc!bnPl)B_AA0Y^aG0_|0b~93=$so z2Db6((~ea&wU%P=L&#p^^Z3}w-K%9LWPtKEE5GE^wT(;f4@$79n9Xx>o?}{R-W-rH zw#T4?h9KkInp$QAB5K29XIU*X=y&AVlXEl|1`u-W*Xq&MfQm)A4}6XQEI4Y)Fv6NR z#5ccyE3|2Q0CKY6REUlFx?2u%HpVR@!kUvU|z{c8M~xx zF6h(EAKd*c!2S=S=sVS^Yz46DNM>QL>6y-*OeztQ53G?U(Gk-|xe~4`XjPhOUYPRI zth$cLu76&uf5k+4%09xK?SV&dJfQKfLE@1vz zQyYHWy3CB^r~Imaz-Ux+z`w4rKnecODuk^)xNebF02 zA_fTyQDxZI?-J=qKJMZpBAy-uW-}_ij3{P-+*1D&FnNw`9Cd(VrDgO^ecgOIHJpZ} zEwv;X*=W&;moQNOKvN!s_yL7z&#gU1aN4kQ}u0+n1pD zVyI&PqNDh1s6MnB&#{ETz9O`E4ZIF8G%!3S+tjb-EY@At{|S56uHLf8zH2H^SFEXX zc3wIs*uU8uMddgOzf<|5Wa5EfX1|^#E`KxP2!eD$coGO(jMYw-p)f)!om6v9bHO7~ zZBnkqhHe{`m(k2Huh?mq{yIRQMOgQ!fBOT-#aapGnz9us*LAt{L0u}88uj^ng$>y` z7|6yOJnt?2*wamM-?@7Fty2u}eI2cDlwl(7UxER}-^3?}-=Q$h5eGt4DE3bMD8`Ow zkQf$*rjoOPb$x{31i7NZC$n_qaEYF`=Cr{|t%9QbN?qxUzQ2 z`{^En+(M?^bJC}R$O2T~%Y-qZ;=`H>`3yTctxy&)WR`vh4WQ6#S{~OU!0hE;SbO!UbCSo$ zZusW@&HEkQi8O_5-xY()GKcead(&7aJjI%S1Ham7m&7YiX4triYW>-tl$u1;j7jwR z_LT}7C=`}wzqh$?u4A)hPa$UsvLad7^?py}@>f`YKByj-I9a93iZP$2e=CIUMzx~Q#~7E5*F%_*R^kVya3@<29(Y=G9{CPr0T(_S zoo7A)CW6pjTr*`r$iW)9PsMQFD{25M^rapLAS+v81SuxGR3h&sho~vcAk3OlfA3N- zh5w=hhT}o#OFMDMuuT1HDdl0}O<5>c{T->kA3qa7G9LY$a6A%c44)&0&n^KjKbluZ z`y>5TugZ63boPC-2O5w6{In3cpP2u!$y>fV#v45W=~c@tR>A!<@m zq8lXaD(tKZPGNId-QZwE&b6nfEldNPQ2e#V&`5W|TE?`FP+Xe9ckWY!T`T_K$s#v! zqXRs@B_q~>q>KJk_s?Hf&uCc9doSlt<82a%Q6uf3$ix>bt8xGd2MbgcY z;w=%YUQjlYI?eyw?K7h+cG24p>|q+u8dyLz-w#Tam}~T&2K0*wm6!(#wt!s1m0{n6 z&|+d@l~!`V*xgg}EC&!;Iwvp&_PUc*-Q;?3xa zXQHC3+PH0-*x>I} zosG&D6Xc$bt9FxknG`uBZQ-`hVnE~?;ccFO$=?;Rsz|1-TIa8ypdr0en-IfYoh*8ekAx6?j%@p-EDvKX8%( zePbCgqBsFdUyMSDePRL;iV2X?g^b6tA-kXT;IJwIMx3uLMcsgA?%+YxnL?v9U^snN z<8?^GLiSnq8hC0-ux*dGAtM)motZ*`olk^cOg^8k@eC1+b6&R$sN)my;N(kg1e|@} zrMv*9Ty}9%BzCw^D~t)Lrtimz)ezJRbX9Olp7|!4(Hz~0&xY8ML1>q2+w+W~EJ;vm zX7S*TbU=XH35?-APwCs4mH~6fi{-ygfV{3GqfQ30CyeN@|DmwyysZFipF4|_2JsYc z)2jcLkfnN$24^H`f3x~W-F??o94ukCc=L=d;}TC+LQUgLbC}n)d6U z;}K^iA6?{}*YT|y+H!8I0ee_;P0RVW^3$sOt1+upuf~I^Dua!mnMs@Qe?ev8Ik0>G z?B`dj6Eaf+kId{xHP#JaU?a!G0EG3go2OFGtqAclD=PF;PqUN;T!jU-Q6&tD#3~3& zW4Akx?!L@Sb`!9qv`!#mcwlNu!YaLc*OJQVx%Ki|1}Jt?b(fqT#+0q~m*l6zYpuNy zxJYn{0b3cMH+E;P@tGBlncS0y0*O}CoZ5#AgHjtSEp+anaUjw6EMzR=fd-Y$$1bFszM2-eb*vPhXUO0C-IYM(ibfAQS=QV8_hhrub~q(azgON zeC8U1DbcZWdAv{<;9V|GQUf_YEkIuMKwd+=e2$o3Qe^2yZ+|)}h{|cLG9d&uCwd3* zzPSsa17?yW;87@QYa$M7$?(gu+h$`>Nc6r6-J?|B61fMDqq5yX!;Q_#? zZA#OgE$aPqP7HpAxEY5-54Gzorc-o zZ~S}oB&$H92JtUd4YeE-`Cr&t&r>CTSIT&9Q5JM{1bpR9&O5`F{g(ysk`I0d9eyg{ zV%@p0ZVETz+M)l|0!Y=oOy~Ai8(bg#Y}e0+3=RXI`?k6DPTZUP8gW<&g?Z(EJ74~$ zHz+_Kr?7ElO;<7$p2#H8{XlAd=be3Vje7cH#yD&uoBn5GMl~aj&blIT->1ARM_w6M zEjjxF64lXJl|V(h#9t%4(Kk^*{z>1qDQ#0mgyA@*`X)t6>Kvq5jIxr=eelHc{D<{IiMHBsIY2@l}sUMXK!~7|TC@mKq zX2|euclS{X(U~OoF@5JhVpJ^7#W%g7L%_M*^#(|TSvR2l^Pjhpk+;O@;RyEphI>nK zLvs<;!+tRIBxICHUSl;dFS#lke2PPYW=UCLp1#A;k0G|PN08^!>e>*{0~DZvSw@iz&VA=tDd%RMi_`IC()gBZhvDpZb7C z7tGM_NPx2E=#XRCLP?U_ zY1>tYDE2d(ISg)PmJn`5E5!&(tEXeCvQ)p*)oRF5LO9?%+%mGfF606i!n-|fQ@m8DFt}beKexV3nCyF zzzXEbAg(^o4(EEGY7GI^yr)`Ep##*R!a~MZ9w3M$peTMm*5Q|+$|a2?dHT%?6Ef^Y zdl)lWf+2?&vdzp~6V)#L_ok2e%+730hoM700hPXg&CQIo);e-%F+cPnTGyft2cRnD zVRh`Ced{GQz@n}^iTJi8a037qK)NQgFbQ`LK%Q4q)iyy)9w~FzO4VyQyk~V-^N6(|xHLQ^s0)|iMZ9J6qC0>AA))lg?Pa;Kw01;(AsCJ)W{ z<95>+`IHUk$9y*RrywHoTq4c7m`Yv4<_GTV?SI zcx6F}P#Mg^WU(~OtMb66;l~AxxNxUpV6qLs{Qdo5a;98v3kE}tjTT>rm3FqU+2Ul$ zCwxu|lgo?s^D#e!d+0A9sD^4lQ-(4o&warM%9)JywPN2$3ivhx`52H>|_rZe@f`s3H~iLZ|M~- zg+th~0)|X{PNNUyfEg%|;LCh75QX^~iB4LB(mtD^M8DhEfuF}@dNSXPn&@G}*VCnj z)sA_y{26o7M;(Q|ZXC0Fp5TqboVaz^oX8N&YO{~`+SUFlmfsm+-ey?k7t zaBBGUeL3ey$Ot6ia$-!Jj2kO9C1WMX|5C_?Di48WEF>m3`S=skUkE>pZVQndWJfG2 z4tf#S_5fb4v-^zby>TY!)ixfWr%PC&29 zRFn#K`7T<+j4UnAw1~kgXCGY8<+8(s&}vSqHvqfeW+XPx45MlQxP}tmh{^0?`x%=n zJ?nJ|4oiu#cg~R^ffS?FQ%DE5!u&Fg`TpkLhdqnuJv-?uIzqLHR=Yz|Jk1yV5x@q&c+0Hq!z~)F6S51iIe7eMh zc$L?2oLhGGUdrKy*m+-k`KiEA&Ks-4)@dw5y@rFPgM;X!aQ6SR2>KI^0JRo;@t|*b z@P9VJ!@^s}>TYXDpS@Y^tU}xG?J+SeRR}@2Y7J*yg$B!mPBfRlr8qM-|dE zcjX%XM7VTc59JWx19A_y?dzfx;fiU^W;r%f#58-CQG(W4#;E4d3aJ|n&ilH}3~1mp z!g3o(12z9~$S7-<1sS9Bhkuw#23oG-u@XFJ{0^ggBY_Z=#VjnzYmoUH$n_wxTJ;Th zwh}TNnFVB7!dT_lUT&xzZygrYN+C%?z(CrDu0=yR@X<=v&w&?>6!#1UrbEj1w=KnU zk%*o@IR&x=kpcAZW;Y;&iQ^Rzv?M{Lymtn)*MpqQafq)ROM|_Tt09|g+pfrT8(2x< zK|1tVgrV7b>2a+ZT^V6cF`>WnKHA+O3>4m_lFCJ*5EyS<+M4u_8{d`)(P^JFiyyC{ zah^g%DBBIdpl(QTFxAH_eDs4{l9DM!DB?9#68PIUgo8kD>?TG53`kAoY2=FOuk%19 zfY57K_C;E~estS4&<9in#sEsRooE3%BH3|%bqGi!WHH-8F0bZdQ|tde@=K-h>nIe` z+9^A4|3l&GamaSNmZMVZx5Lc~{yhvG<@7Pv^l>*`{qOG(i2+t{+T};|qP*y#sP$=v zYj?4M=N8TYU2$PL(sirRYh5O;RXfanY~{r7K1wy`#MfYy8)&8os3EPy*>T&meUCe; zfVdy(4*UhbXFk{^gh@Z?{!rV@?W;5U=IMlXF#98664(=o04wM43CI$5*vu!hTpuM7 z`|^)3c>gHcf8;6u^XEnZcx(tXA@qfN!z0BUE)kfA_1ZGIaE-LefSLK=mJ#F}4dAW3 z)_{)o_lw?B?w<6tR68JotdRxe(ma=5jPW`i__#zr6=4ZP7KM%Bb)-I)YM1hOr!Trb=B_N{|`cP9go87OE}wLd96LfB!$)3O0_ zs=EWc9D0fdf#;@aS}>V`Fs|nKJ;xTRMam|v$AoUlc+n>#8#HN4N74NC_F=hJ7se#r^|v!rb%zyU58P)|@S z1`i&n889Jpm&^@3T*4kcgG(e_;B(Ef#URRDlCFtSH_SCfCQpgFtkC1L+XujaA1hjZ z@P6U^)o#6vqu1>0Vr>qYm;^W&n;0UI8V4jTck1 zOVcj&;I<*#+JKzkg_=U==29(|ggiJ|RM=MrQaKA@mC`nE9#QH|9aM=q9@@CcoaCGB z(t-pON7SPSVzUk)HjNfsefWZ90t46=f#pT&;4ot;AXP^y^j=~ zUCi-HtkUYgJ!9Z!rAn=Sf#r5)0bIZFZZXJ6?LQQ>;lL z*t?%%>=ovoyahs1!y#PL^jSJDOlR%;$cJP%F1E21hF9;EH$sX9r9fS+_9h@H5x6T|Cc5sIzB%1A@yWE&(QV_sYend<fZ$V9o9VxCxGdDWlpaaq zt~uSuE0ZdIb-)i$2LNIO#FWLtVnerG0ax5&>tCr=N~um@avt>PCCzLIfsM#21K~HB z=SKTuT#L-YP_g+3f^Pr`&_(?GmP;GnRis=90Cdy{YxVM=C=I?(mI1L${O&YAuy)>d`83PlC@;W9p7cVPR zHxiuQ9WWcs$xoC(-#j9qlb*W2G+6TMU8eNP8c@g^wc#WPw@E<1HyU&ho$cosQxY_u z1H_hT8nhbI4A61C2z=LMys#Z4^Hy_57nKyWA>*XWkbT_<==X*j@Fx&-v=Xj=maxz5 ze4nor_Jhd&U6GtVON$o#D(hNYGj&a9|Ng*dh1ATaOHZl^-kiF&Rb+Cl1*THHTAWUg z^$?PP7uyuc=h=~#iZ3=ztdqa(0NE~$76nFjjDlXirH&_8A<~OT8SeVrcKqjVO@#`w5dwT3y>+z(+-TUop1r{FoxgxW!oaqVt)IZOpXvR+zy1rAk4Rv40 zt+FC%r}JMxXw&n|Prr=aVZ}ml0F?X?n2gKXEuWyboJ>ZzZvWb3|H4dsOJ_I~UscsZ254aT8Ck zV!0TvF0as~)Vd#z=j-RnuyiXdWjW+%*A4h>sidl}jlux?n90SIcy};g2WQx3;%n2x zlMI*8QOYOwL?N49LBCZP2{?v8S_kVoj|G@w8*(>({t1B#Dt($2-^R#zI5E1|ryckHRurG_L+)^}i4FAs(^a>bx3{QA0F=NQ%b$t&;5=O%u7ALiMh-Rt10Rel}sQlYv z_5l5k)`MJV0?s{=Mm7^L5dGQfM1}6P+J`eB_5P^siT7bmD>#2HQr8CpiDAMqBN^8$ zk^zsVv#)QfCuR3ryJBhe6A1TrZ-b?J_v=ldPA>z{us#QYEqi)gN z@J!OYvKw7=Ie?W>rM89Q@iOcWW%Oz4Y}lUlI)&zBGr4d#kUjEwfee=OIkEs2uP-oS?Kp5T zIE(kejUvyUeP4+JhWf|nHLiyRu9^0cKP`s@c8X35=$Jq*IDi+pm52qo`d~o#dxHy* z%?x~j%Fdk)+gQ&@W7r)2}u7Na5c4|ExxZ?O|{0K6dL_fziTk^HX` z0>OUA#CcLDV|cQp%6l&fM!GuC%{E5VWgE!A0AhFFwWV%I71E)AwW0U#<%E|xZ_ubs zZ+gZOfq6}1o6w}&#JYWp13u3y(oZzBXe?YJDt8_aJ)StDi|3Zuvr01b=dsNK6ajWE z4`k}z=T5ADb19}+7+Y`ZMBQ*~+}3Uc+DzM~diP>}SFF;<>rXYs@)mfB%NsP)`sR}?u0Wr5M@L4ZDMZoKBKdPq=m-v+q5bU%y8RvZN znqXF>cnejxm!`=fE`W4UYUN%g9-L8itw`6iG>E!<5I?wBoZR&e=g9izp(zMWA+U1n zrw8Ob3q}v|9m&~37m48#KVI@#bU)+)miDz~Te-B@@lRtvgOKgt7{#I(;El>!r&KSQ zHN2luKHc!3nq=YYCHxKm1o1HwPXlctln31ck`r^G@;FIs}@3C7emjv84Kg+5EKvt z|6|WB!~|RYZqCBO!f9Ky+GZo0@LV!V;qOa@yig}IY7S`*~3n- ze^_?*53s;PG6BITn=JLZ`0%xOi&MAxUwwGt9B!gff^8AFMrD_r+x$8Kd*c+>E=bfx zKGj-l`RMCmgX8~NM9K1WzE`TTiL*^ltFF-w<#S_)+RNHcTf%WbO-L`ewAC5aaeQnwEU*PdxDD>f3 zO|9T{&-6&^zuWu0x=}^0sIe-8mA{^p_(M!zoz@Typ-7m5Q_bZ3_Z`Q@k8sbKv|GIDrJJ@ljK|oHNb857Gxb2uL8Ai$^OFFdF!*m5A`~`%eWmuLa143X;sB z6nxou=9*69`iT(keLJPNG~Vc6#Hh|Rwc#X1*HgPk^0lax1l1epKN;u z-u3WXo6kvO?GXKY_Vf8iZo4>IR{Mtsy3qLwMA0y^7Jr#b4!_!?Rp!#*b|-lHf0{~M_dGU zvu%~8^(yd2P(HpSyph2C445>2fu3hu$TG^fUbRyQRAvwsZH@!8@}B>kKya6lWtNF`wgT z3!}^BI*gQI&9qX!xwTH_yh59H#vpNMikC>;(EQq3a6Y#n!(Td${quncRRbN9-|FUD zUkho>J|Byyj9`c-GwF#hhuOsI$X&dq?F*yY&?s=~sZR2tBd*>%HTfL^!`xy#VjRAH zk1TOZL-gz}^*elI-x!WA%zq6{=A(j|Ibf1VB&rRott&7g^B-#h+3RVT;$rZ|@&cbE z1o==9kUL9cw)=@FKB|772&H5^`5GF&HWM4JRY}I^7#%F0t}6?lOBy9VtAmlCj_2@_ zLBc6b4pWvn+MZeRbT1G#+i+0LdhM`4dYZ-i_u}cE-Isc7$>nXEFQ#cs?1@?}E;8TG zo)jL)IJTc=BNwo{$u@&YKdb;}yi2_F5OED0E8l0#zVEd4fB*TTO9zzfx46r$NsaEU z=vQ4^n7QYPpDt43U7Pa5OpN5V>(ryraP_6R=jp#OXCTEB<)=-V6cp-h7cv`$w@2-W zA&$Y4fXdQlZ|mBi{!>NH&MGdS=L*jR4q4Q`I1-aihnXc%d8F05T{iKqY+ z8SD^SFz|1rJOaq@^qETq7Nz(w?(uhf)BOi1D%6Dy?6FQ5D-zGNzT;9!9oj@+bSe8u zTf-A8w7)!-5vdY8sgFK-;PN}d8=F&U4c&rX>}Y|;@Re$_N}b@knsoCZjq^}MPr}w3 znNWhQtHbO1i@ZFlri99(37tJ8C7#x$GgQZ=)oUkOPcm+HamcRJYw)s|r~Wv=(8;^_ zu%+XC<0fckwB>MM=e+q}pIV`Ndue8;*DX^QGC@y%J^3V; zKjCY4hkD^x;dA!ai7~aa%C!49jgI%e$i^%W*4}UBA85+zD9w4E3d=EOP7noHeVC?#6(Y)7K9swbaTmbzLSUn0gv#C=4$y z%}cHG4Z0p*5;h6tm~Bv4^D?I~y8>0aAG!F+oKqytbCDk+O*%6P{GgDhlibYCvJeH^0mYy4VFb#tLB-4E8*>s~YZxiyXt-bDgp?W90Edb(W#N;e{ zur{Ra{iVnY{Q@R&V`L>KJLPG>K+Vz8`na*bD*0i?WOGTGy{2a4S1Z>Y66urg3v^=A z-#7kjyq1xo1?i*d8bB9d z!dPNADv&a-l*|imSTe8OnupT^_A|sXh<*3oSi~hY0!Ail0Y<+GkJOuo#Hi+>R}nc^ zCFQI|ndX`&CvVdbu9oH}k6<5w^)e4DE?VpO%Z>-d{>u(>*FLP5Sn@Sx0|AAcK_SzZ z?iI5DP(IUb{aq8^**FI^Robs#EzM9hUA4pH3JKkES#BV2Ky>|U{AyM1ejEPT~)wnoraZq3`Vt0e5lxe-`psg)q3M1iFaQvDC#yn(dM@BaKbD$iw!gB zD@KA~6RBeAl@huol%ZR~E4gYPbW5^41{LpJY556aR z7JAAeu-1&1Nrk2a)`maH)9&@{UmMI#+ozG70^8@%|Yv^56Aq8@=!C-HjHk%haNs ze(l|S_C5Qz00x{DU`Qd2ClSXx2TXR0+LcGD3rv_w{;?Wgp3cTn^UQwG_(F<6Vn`N7 z`BiHZ><1s*X=0z*di+4%=AqvU+3&0NgVtQ(sad@IXgAygvWv{Ko2}jrBd??T$C*`C z@L}wv2Op^qB`XrmIAK+_8Z(tK{aAJk;37iXoAjjts^1?MlmzF?Kv_qkuw7AHP>w7tEvj-Wh7e zV!uG)nqsFY8DM@L?1QG@CMZ;#`P%y`Ts(7>4O1r;IH3v=qW81bbxKWi5iv`um=SH+ z+U-1{OPP>M7Yx>X{Bi0r|Enp}#sO8!nX@lo-Hg0iHY5%Ivfw*7b(Ks{e{c7Y#lE@K zfJZKnS}AUCHDxZgWsT&?N+sn1K~0olcM=LB!aX)Tkde6*wc#NzkyKjsHvx{Xlaj4< zlpol!>Qyr+FId25e}u3Y^=QVc4NKE9L2RY)&(z}wY+z#1fq^v&iZv59u-4xN$uq;` zW{2HWLAr&Y8oW3O)(SHUsLC%96;6p^gn2N>IqO*IstrshscDb8>hSbi3BthVRO75Y()%;E6~*B8=1jqu?(T8H~?h~S)uV~&X+je6Ny$acu< zNYyC0s(D9VH_K3%-La`2NawS{%povznHq*DB)YIt!iGUe1pE30w5gv-5lUb!a{7)K zMRf5#3Xxl*(mf=~Rv>nPTsgV98l}`sLY3Hi?@_Dv z`_bR``(E$xPjX4fmGhiu-S>T-6AP1WvPHgjVc^#gn$&LA)k=r)8Ni?jx4-rIs=}!S z)!dV5U3b(L89Zd{_TbFX0`kI*0hcPo414N0-Pj| z3NM_>%?e}o|2dTx+1e0rya?+(ZoM?DV>w{=2|KQ{2`@?RXV+*7yi#+Yan#LzaRT9N z%W&J!=J)2(aXN#PrP1l1=H=vQ4>3WKta?TV(X#(dJ8IU1U-p~jX1{A=6@RD%A8! z4W6Tn6wH|R=WcWL2tzg;KIX(o=%%NDER>Pg0-p#gxNbYA;eaks^*4r;0Qeiw1M98} zqEpe|!Xfb0F1Nz2Kr-_p1FAa^0@3f`hgjfD z5B%fJFc^bE6$zy1@gl`2ZK`eP$E#O6^R<(us1DfC4?tYIj+UCw zw9=u`coD&nK+UCJMV)sR19-^%9iZ!&aZ8CpU5BrJLM=lxum(2(nj?UnWWaxF2)hHK zKQpWl+P8W3MD3=M-RIMjW>maCaEab)lWrofz>~Yh(=bzf*d9yT zg@0xLaY4V~8}~!qS*N=CHT&8`+L~8&Er6C9cfvHNZqj=0^Q9AoG!2cyC#fN9$O&% z$x6!JFX~PBnArDdO~hDqK2M(mB8jZO#PtdDj|Pi zO6J|9fThgNxayndqedC!7VC#*g*ysqFvHN?;2j0!kvAe(SH?xu7h5_xL)IK7-^OM& zj;PR;nFVJVbZRoX280!}Yy9?$#xSY$ij+G`-KFn2>hh2u6af=Z!qZY~1Sw9=5JXZ*W?Q#|;bq=C^5YJ1 zW9KdIG{#?1KHVP++{YxJjcrz|Lm>I@9k0A2?IJz`y{OX96xTYzbJ(3gUa^Ru{7kXr zNy?>HoY0FY`X-#d{HId)O6TrfSa+=NCl{Jw!A=mniwnXnj*i)~EfpW6(VpN_4+Ulo z`MnLh*z3H^-TTQyX{E!PcPz@}cdU4TDybX;SSHjKc{grri&q)G3PB2XHgl_(E4hAc zv;a2WP*^$)3=9*fK>$g|N6-XY`|WM}lUQ7BC>KVNrd$*jX@nL|QxIF|!Vn77EHsmO zsbt;^_d8Zxl`^d74nhxBbGZ$ysi8+gk7*2tw_*yk6CgDwzAjQ(uTMxowfCl}!nbSV zCX;db!4u?kuyr=Hp5d9E=aHs4Ts%3$d7|8T!l!W1pjyngjq1wz<2k&H4|2cCe{YPz zK9$#XRmoqK46bkyoBmT>nLsW8zPNjCE20;SVhrft^xR_0n5yGP7c-QXhJ5zN1V~I373|voS8I8r^yISv*y-|E!em$RsP6 zchAD^>9o{n0*2++zp?d+~Z>#n)hy(toa)55F zA?QR}xc*twREfJHi`Dr!QF!&#zk~DX?Nqxtu@`6n6ZCE7G z60MpqRwa+3_cz);q>jtE~cAi(9rSf{_9m>3p)H z1~p7YiM;LN27d|(WpoZfQViAZO0sgl)+;R=J&@JXfH8~xvy3O1mwX|CFpU5w#0%?6 zD}4Z03Ahu(`|LX3IwO$p0c)0CG3h^}{W~K`0os|AE_L5=h;-Dk>VpJ+=Pg~|M;(Au zXEXjVP2??81)*|uxjj$*He+-eDK!7G$P9m~yxS+DGPeKZb$8204twNPFU@7eE_Pw` zUA#)liAJ>`5hW(x+P+2q_DZ^Mk}bkXL$V!rQ-v{WnAez@Mv6;B%10(Lsg+I7n||B8 zocOgZzvhwF-Kqn64s1nLa^x(E#Q|~OL?m!_km6&3ntzlta3KNxQx%P!cCMXEV#Qbn zI$VBK(v>@pZ}F#m#6*~^{+Y4}T~Wm6Q&wQ9!x7^WJsUydsP zBQ!tbUD#pkQMn8G?$1k~*UHo&y~E-cFoei4N^UCfCfKXYF^Mlt<6NtSS~c5Zk&DPNK=ztV^jqH_4Xc2teqXJ-gpiUT7Q|NUjQ9!%zUDLVX8 z(wnr|KkfWs$Zf&IgdPQ2Rf|w0R9Bgu32&(N{?>F{fg1`s9uk4fvwf!;4j{d1%WDCG zwc1CvNRqP02?xQg;z&(3Ck{q}CD3J>w0#J_*<}tF0K?KBtx~kp9SLeZey40K`-;O= zwYWJi`8>Hg(Kz@QgU|Ptwsn(GBo72|+rGDCTuyp>^<3Jf%3&)?^;Sx?OZY!ZH6i&- zG1hlr<2PuT%B+GD<4~^;L+iLfdlAc@=}v#%?0}CMW#A&8dT-#Z_1RGR1{FSj`B3YofjDiU|w95Va12I zfhguS8EuCMD6ygT3FDl*@d`fU5b3_rPdfIQhYJ#4o?QFJ<@X!Eta%=^6Fe1WMf)+i z&rCIjM@4(vCxxz4gngDCYBlpTvg2eb-|gX!r2MmKC1D>e;WU!+tH4lg4NefY6Jlo6u{Afwn(bkkO-3QGY?3y|CP zON+wz_!nX(Oqs%vJL@n9|DUu(+QOcO`YNy4W7c4f3ahyB@Ql;B>5!5So7KDWz*4IM z*(L8Z0NClufk+^^*on0#dR-74Dz5|A-DRDt7LUD6Q_ntlI=op~y2@~F{@+ZW=Dix5 z$SnT%)&AE#8^IT{v3_Nf>rW@sWls}Lrq|S8d%iGQfa&eOVl^q7uDQFxj&}hfkpBxHryNr z4owyCE8zjy5eHPdZnAi$Xxumx3_64<-7|3Is@!vxgAUB7vu{*j*fn(IzmhpcK7pmD z)RsQsc|4eow1XgJ&Xj0JNMMG+xeN0LLT^b?OZs<@mulabfeZ1=tz1~srm3?Q1^BAN zSM(IsE_(Yr zwfY3=Yah{SWIA2!`}yDmNd;ida|1E~2(eNgcm}{KFcP;7iR}Yqpe%)}=D8!n3)fg+ zC63Y04WK0{KKbRmSfls(Gc#cU7)K;3qO=~iv9?@tIDVLHN_LA2I-OyQGYovL&z=Df z8kRgYF#Icu?hQH@sdRFHX;5k_Hgmn_N8?se#Iee@D#5T@GtV6~`9NNpd;-ajDre^G zW)eFM8h`eyp@ww-z%(WpBDUZU=Y)Tzy?NSV3oG@m;)^N(M}blc)RL1cIk9GJkN3RwZC*dl-m_ywXGZM(v$2sgv8jU93rNxlj#;0KVEW8{UjN zrs?zz=tFEeLWcg6*(qvxPJ?kHD7`+*taPv zo9ETH;rDPi^Eq^Nv@@+!{CoBDMDZl*+yNxDZYb;bcO;%3*#}%A*Y)U`L`5Qt-pXAd zFUMSY2c&@ClyVma0+K_@nDdPIwEkw}hr@hnKrQE0Ff*RF5ql-?&d^yP2t1f9aBe$p zGxqb!vrO146AsPSd+Kf6XAz-dDVhla*K3 zdx>B8a)@8Ix+Z5eab)GBZOv=LXMJeA{6jnPFjGtj74|qI0)J+t0uM1KODa$zZv;$$ zB9n;Ilb>LU%AVkGqz1+cDs?U9u7{5PB)@qpn77=uudye#KkbVe>U3#a;r5@k08)Pg z1dvLwMdcXWZDMPim{3;ae4X^rvBmND8z9^MX4>a{awuZ+d^GqPf0u7>s(9x-iP>|3 zEB|n(=$hX5V15J-fPC2veznx**kiNM1kDv4v6<9&gSfK1vzcyW&ML3)-@EQ_sX2M}Gt1GCKr$Y{B6LiuE5H-L4%Y$1G0*V*zo^BT*)(t*6%pC^ zJD|LMkJ)s?0*TnnFL@kjugL%jY$j9PkUXi7D-v24t1oO7CzbT8J55eM)SL{SwN|t5 zZbgJgR1&Da3NkV@ebJE~ZT>8b1FLChRX4Y74~v|dH{P3qOZa~z+!7ZDW6Fw55WJ7| z$SLu7@NBM^g2&z%*>Pu^ktgJR7?2L9cW8D9ZsK@^7E|H<;A*#BEE|AY$hAZAx0onGUqD; zKe6s|q;tSkgYWDQywg8axXX2~WhBPMo~7I=hyhp*{j49k#sA_`06c(PFZb21Fi^j; zl3+8N_NCjwL9U_{#p<5{8Ewdc;kGT^k)kgv$x&X@z7*vdcJSW$!84o@mygnI{NeZq zhbo5dr=)%3wq37`T*X!5I8fnu)p!P>ZrQAZ@i|{{VSX%M)TEl+E>9R`dKgAH%T$8_ zZ+$5?i{#YfmVV}l*B)Lx+sjddGwzsHaz|nn#ZIuIfJJg)T8ahZ4L^-MI&HudXT=s& z3uZZw=E)r4y-lgJ^&Fn-(-M^ctZ#mRmbhSx{IspZ0vv;xj6iJ&1I@?73U7a*3gI`_ zArS?XRP4zduH|1q{sE~}_}5FSx(>YAlIhEQJQ>9jJ)k)$fe;%j06+l*CA_?BRu0dD zMFEUmT#(BpszCdm?8sZi`;8;E$oonGg+F7Y{0q9g*cp6D_ej5pU_~t3F1V6E)kD_i zwuh-I04_B-BbLhidvnTNN_O3a!Ed!ANb2BV^(=iN`OaN2fZ1^CSBj`kzS!!Q-2r53 zRZYbU^l#~vlmgS;ANY%_wyU?meczF8QEJuvKC_5;C*lTu3+hO~)OA3bIn{A>kw^-om|rqg78C>BDKYc!=^mt) zZ6K0veU77OOZk*mDOMFnC>JYh9SnL+sf>(A0izt~W*?=^8^rb3`+S8zo0~WKuKbWK zPeRDf>XwD(j$KlQc=@aVzXmtrO}NF>biJ+Qxn+jB)<8jY$rE?md5K2yTld8Ch(KGe zTGKai-melFO}y{9`mUAw#s7=dJ|oMdV-2F`qicxy7m-$Y08Hv{x}cT>g{Eesr{m_r zWRVfoMYSqVVo$*&1(xwG(Xm;(Jmw5V{9ZQyWiLCi{MctQs8jm~{+do-h_OfgJgZ@` z80go6?uZX`Du$p4Z>_p4>aA>pEZ5k-{*IJ_h5P}7Xb!4LuMefZV5#4k!Be5=*~Z=M zvXJi*_!ieQZ&{%q5?g?{YNDcHhPSFB<%{X}1z|P0M4MiJdo+vO8a0?01zCST5`yPMIrRV#2$uD)bk790jZ30b43N-zpgYNk^$`vpdR%=eOZmiA=fh?YV+#hg%x8=>VZf;5 z28fXOEwJ|p=ub-QSaW;(FxM}a?=s)`em-k&IbBw}c`h2T+$M=vS1h`|Dda3Gc*y&w zW}%(&yBJ5r@Aw8`2|V~?f`X`Aa+&AUB3F&30zb&P0^!y@21XA-XdGxdK9W_h=hYy~ z4WQ1Oy<@h)Ut^`+p2J0Uq$X$$XoxQ>Ku4myagst++p|fy5qx5g7J7Jy+$c78;gZ3` zH9>amJj^bvO?Xhrcp`W-xMe#Zk4cFW?okEagJewPurDp(_Baj$@$$xTqG} zm7z}&<%;oMCm-2rkt&|RO(Y)SWYom3IP1#E=EFf)$>$X+D*9EcnpRq){ zktAPJfBE}$zXNZ-&&N>NrFycS77j5H3OHX3=c`!CFJnf`sVJ1K_OuYrex9*-0sK-1 zXI}kdP6BV$e3DlDf#SwFiHxLmkt%P+;XU-ryMKhuG(c{5+I+el{*o6Pw533RITr_mnJPEY!q@(^`P&0Z26W{VGpyZb{Fptpd#K z1CZ>W+xK<4uQF3-OWu2h+r9;5BV;g!53tkI&e4Y#l$3I_Sb)O=VZ44$}U5rf`0`F1y(Ip&On5>1-{y zFG}{^1ZCExR|F9g%e9X035-=D-r}1I^&|~|Xxeu46mJo!ckqxE>F_eyC8+F=&G-gv za?`KSXtn!DkaQz(FURhKgkIRPxhP!@#(O`A*9E`wu-zJY)9Hr6^pKd6Dh;lK<_G65 zT3;UZySdjMFfP39E3!g<1`5fiqGPI3v{GKu$8f=-3Iy2yu~-EsbMpAm`&@o`xHFvE zG-)o>h7MLFr3^Uj)X}9JP^ocnd7-p3&>~Ywz#`GkFJk&nBIzRwl=eLDDf2B-zl=GYHmwU%=8cF}FT_{(6o`#42 z>fFQ&F~ds=kZbUN^1teY?+ln*l|-S){T#oWKk0VRy{pDWGK94hB*;*L@vDK0l zbkWd>Q+(tr@BvKFZZLr24=Jnlrbq*owCrn=;@Z`vQGj-laa1aymSHTfX*!X*d+jWK zuedP=_t?x_GuT8J{f$R6JUJHH)rswRWwY^-PARII9I^VNUZL8HR#IG->7#}9^)|5R z$a}Sg9O68?_kuIMA=uUkS?b;Ji@Hx<>4F}lQj>b6t?5E&Y3J_4W&mte&Wm>i12O$w z5y+ihQ%&X}fZljtkd)H9e07`?mM&w=-4%ulLqfm7Sx9Ab6~y%Q*b$MdzT$_((hg7Y zbPFUJR-|w6n<~5ZCL|p@yeWy+<6caE_`*z- zesDtED3S1G`)9PA3u$N$_)TTQzx+i0`tp9>mHhsV0H16OssVkr6Cmpc@w;byNS-?R z6F)qsaxmWR5J=oT5At0O{xZd!oco0R*Rq{E%jqZ~Se#;m$l1Jb{l`7_zPiA3c#tOv z{?1L%IkYHgIbx`LY%UAx#@sXY{!xtyjp;{LE=JGVC%+PWSt-$;lHfEKZ75e=ib9fk zjnaG+0rA>z)og}epI*lX2@FnC(<=-`vO@^aqqEyYPm#J%M+s4=%C6!>X;|)pMRVW$ zkMNlOdfTry*{QVs!_~@4u0U#n)k}01B&D0gw%fSHl7O(i9AW~r6O*8Yr>R!-~S#ZQwrS=oJ=m zo~$DX0Dmc!k6-ug(FcMs2L@dHXSplZ>ukIIi>Co!ZywMXL&| zg*;j0IABr!v9%f$`M=LE)g;VlSWUnd7`YNYJvKhBb|q3na42Sa`D4b@4wrw0po+a5uW3^K&SCnhv5DiZq; z*~2Hl_?i3s$*y`l+6n?8T{jg7n~v_HvdK|@>vNw931|X$OU65S#Xl5w_@UKSg-=sJ z_2@e5nJImSLbCAIbMqr#3rETWO{6+p2_iQ5l3prJM9ZC@#&48D=GAt%Mt>%RZ_qBg14ISx5fcZ98n`3{WEqPd!(11)%sDK*)$vIv2qL%3VpP9J}s9 z>1Y{6IBw$EOSp(83XP-Zle)~@U1*g(lEP!efo3X3JL=Wwoy2z}6YRAz=IEpUQ%ouw zxavB5r6|*5@7IUCdS7tg5$u}(`~Z;K$rbflLBDvQ2UEXZ?j|!k`2->tyD1q>V%a_M zc1hOA{oY&LO994!E47Y~rPlQdNf$ya3mxlwL_ z5r6_)QvodRMbY<+x72R1%!WB~L?G)t!05H|W#y*&TT9823cu*%96HXpx2o0C|K8nl zdJq^^B!-IgX1wozgX`O;n&G8us*!w{cir%g=uW6E7=;HVmhth9S+WJrF2+L~1EjWsS$Y3By`2dbm_h|>3x($o>u(4q=AAfat>&{0RM{j2&P#a{|=bE$^{5_!*Bc5 zvzcUie7?ULb1Q#I_mq$cJ7`NXo{x-dyt>h=op;W+JpVTc02s*R6&c5&T-Aup zmf{hZ+wvq2!tFp#%il=Fuu+xpK(rv%@j!xMl3w+Tq3?{Q;QHQWk3oxOsTOlme26b? z+g@&+`n^c^F2chCiKH&O*$>Tg9 z;*bIneriMEDqU9r;Ycd_m$t%QCZJ>R43p2+gKF%wG6<>#E3zMc4mXD%0F!c*R|-62 z($+Fbo@-17@3nu3K>9$gR%f&{+G;lsz3IS3FiO)5_tS_->X$wLW(6p~7ETxH8OJjK z!ntotGN1KAW$_v3rEj6x9&TVBTfz=NpSaS4VvQ8y^~0B}M$RXM$ZZSpmWI}E%Qkvb z$FkPPx{OV1?p@%In)-llqF5z}4a*s> zKIQSDj|YB5=%>KzwP2uZn`Qd4B^=CeN1gtSM6*s=*YPUM(5Bc%P4(o>xQzkZM8@^c zCu;7KSsC^XHT%j9HvXTV`wJ-pHSZiNF~5iHe*y_BNf*Gn+Idnev-}Gz7tF_Z?j~)y zmbCFm!N8+iQw=^W2*iCfYJ$8mCj+Kqa$Ibd>=Ah+AHdx}i|7~@6}wPKTrBkeevr?) zX#>+-{{DNi`+O-VA?sKW{VU$@-GkfB(Gc z0y%K|^|5d9U*h@Czr4-6H6Yz%G>CQGZ<*_KjkuhB0qOixWBljAr0kB#Hcj9IpCbKD zpQWwug`W(+tY`Lc{`V_hcq9+^GtEF1(*#WPe?RS?pnPq}b=UCI;(AEpMl!`-@b9+& z^OK*E!8IB~lb!g7zivL~(8?0H1pGi0)f9@Ko4os9 D;%tNn literal 0 HcmV?d00001 diff --git a/src/assets/logo.png b/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..f3d2503fc2a44b5053b0837ebea6e87a2d339a43 GIT binary patch literal 6849 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 margin top +//spacing +$spacing-types: ( + m: margin, + p: padding, +); +$spacing-directions: ( + t: top, + r: right, + b: bottom, + l: left, +); +$spacing-base-size: 0.2rem; +$spacing-sizes: ( + 0: 0, + 1: 0.25, + 2: 0.5, + 3: 1, + 4: 1.5, + 5: 3, +); diff --git a/src/assets/styles/font-some.css b/src/assets/styles/font-some.css new file mode 100644 index 0000000..336f426 --- /dev/null +++ b/src/assets/styles/font-some.css @@ -0,0 +1,46 @@ +.chartNum{ + display: flex; + justify-content: center; + margin-top: 0.25rem; +} +.box-items { + position: relative; + display: flex; + height: 0.6rem; + text-align: center; +} +/*滚动数字设置*/ +.number-item { + display: flex; + justify-content: center; + text-align: center; + width: 0.45rem; + height: 0.6rem; + line-height: 0.6rem; + margin-right: 0.125rem; + border: 1px solid #2C75E0; +} +.number-item span{ + position: relative; + display: inline-block; + width: 100%; + height: 100%; + writing-mode: vertical-rl; + text-orientation: upright; + overflow: hidden; +} +.number-item span i{ + font-style: normal; + position: absolute; + top: 0.1rem; + left: 50%; + font-size: 0.325rem; + font-weight: bold; + color: #1AC9FF; + transform: translate(-50%,0); + transition: transform 1s ease-in-out; + letter-spacing: 10px; +} +.number-item:last-child { + margin-right: 0; +} diff --git a/src/assets/styles/index.scss b/src/assets/styles/index.scss new file mode 100644 index 0000000..1f9771e --- /dev/null +++ b/src/assets/styles/index.scss @@ -0,0 +1,242 @@ +#screen-container { + width: 100%; + height: 100vh; + padding: 0 0.175rem; + font-size: 0.25rem; + line-height: 0.35rem; + color: #fff; + background-color: #010326; + overflow: hidden; +} + +// 头部主题标题 +.header-container{ + position: relative; + font-size: 0.3rem; + color: #fff; + .header-title{ + width: 100%; + height: 1.125rem; + background: url('~@/assets/images/top.png') no-repeat center center; + background-size: cover; + h2{ + font-size: 0.6rem; + line-height: 1.125rem; + font-weight: bold; + text-align: center; + letter-spacing: 0.2rem; + background: linear-gradient(180deg, #FFFFFF 0%, #1AC9FF 100%); + background-clip: text; + color: transparent; + } + } + .header-text{ + position: absolute; + top: 0.65rem; + } + .header-weather { + left: 1.25rem; + } + .header-date { + right: 0.375rem; + } +} + +// 主题内部部分 +.screen-main{ + display: flex; + justify-content: space-between; + height: calc(100% - 155px); + margin: 0.0625rem 0 0.5rem 0; + padding: 0 0.325rem; + .screen-left, + .screen-right{ + width: 6.375rem; + } + .screen-middle{ + flex: 1; + display: flex; + flex-direction: column; + justify-content: space-between; + margin: 0 0.5rem; + } + .screen-item{ + margin-top: 0.25rem; + } + .common-title{ + width: 100%; + height: 0.475rem; + line-height: 0.475rem; + padding-left: 0.525rem; + font-size: 0.325rem; + font-weight: bold; + background: url('~@/assets/images/title.png') no-repeat center center; + background-size: cover; + } + .module-content{ + border: 1px solid #2C75E0; + box-shadow: inset 0px 0px 38px 1px rgba(44,117,224,0.5); + } + .small-module{ + height: 3.75rem; + } + .medium-module{ + height: 4.125rem; + } + .big-module{ + height: 6.675rem; + } + + //排行榜-推荐 - list + .lending-ranking{ + .module-content{ + padding: 0.1625rem 0.25rem; + } + } + .book-list-item{ + display: flex; + justify-content: space-between; + align-items: center; + padding: 0.1rem 0.25rem; + // background-color: #09194B; + .book-img{ + display: block; + width: 0.825rem; + height: 1.075rem; + margin-right: 0.35rem; + } + .book-info{ + flex: 1; + margin-right: 0.35rem; + h4{ + font-size: 0.25rem; + font-weight: normal; + } + p{ + font-size: 0.2rem; + } + } + .ranking-num{ + display: flex; + justify-content: space-between; + align-items: center; + .icon{ + width: 0.5625rem; + height: 0.5625rem; + margin-right: 0.175rem; + } + } + } + + // 进出馆人数 + .accessToLib-container{ + display: flex; + justify-content: space-between; + text-align: center; + align-items: center; + margin: 0.375rem 0 .25rem 0; + .accessToLib-item{ + width: 2.75rem; + p{ + height: 0.85rem; + margin-top: 0.125rem; + line-height: 0.85rem; + font-size: 0.325rem; + font-weight: bold; + text-align: center; + color: #1AC9FF; + background: url('~@/assets/images/num-img.png') no-repeat center center; + background-size: cover; + } + } + } + + // 视频 + .video-box{ + width: 100%; + height: 5.075rem; + } + + // 阅读之星 + .read-star{ + .module-content{ + padding: .25rem; + .readstart-item{ + display: flex; + justify-content: space-between; + align-items: center; + height: 0.5rem; + padding: 0 0.25rem; + font-size: 0.2rem; + margin-bottom: 0.125rem; + background: linear-gradient(90deg, #0C2157 0%, rgba(44,117,224,0) 51%, #0C2157 100%); + .icon-star-1{ + width: 0.35rem; + height: 0.3rem; + margin-left: -0.05rem; + margin-right: 0.2rem; + } + .icon-star-2{ + width: 0.375rem; + height: 0.3rem; + margin-left: -0.0625rem; + margin-right: 0.2rem; + } + .icon-star-3{ + width: 0.275rem; + height: 0.3rem; + margin-right: 0.25rem; + } + .star-num{ + display: block; + width: 0.25rem; + height: 0.25rem; + margin-right: 0.25rem; + font-size: 0.2rem; + line-height: 0.25rem; + text-align: center; + border-radius: 50%; + color: #1AC9FF; + border: 1px solid #1AC9FF; + } + .star-info{ + flex: 1; + margin-right: 0.25rem; + } + &.star1-bg{ + background: url('~@/assets/images/star-1.png') no-repeat left top; + background-size: contain; + } + &.star2-bg{ + background: url('~@/assets/images/star-2.png') no-repeat left top; + background-size: contain; + } + &.star3-bg{ + background: url('~@/assets/images/star-3.png') no-repeat left top; + background-size: contain; + } + } + + } + } + + // 通知公告 + .notice{ + .module-content{ + display: flex; + justify-content: space-between; + padding: 0.25rem 0.375rem 0.5rem 0.375rem; + .icon-tongzhi{ + margin-right: 0.15rem; + font-size: 0.325rem; + color: #1AC9FF; + } + p{ + height: 3.1rem; + overflow: hidden; + overflow-y: auto; + } + } + } + +} \ No newline at end of file diff --git a/src/assets/styles/style.scss b/src/assets/styles/style.scss new file mode 100644 index 0000000..a8c581c --- /dev/null +++ b/src/assets/styles/style.scss @@ -0,0 +1,81 @@ +@import "./variables"; +@import '~@/assets/iconfont/iconfont.css'; + +// 全局样式 +* { + margin: 0; + padding: 0; + list-style-type: none; + box-sizing: border-box; + outline: none; +} + +html { + margin: 0; + padding: 0; +} + +body { + font-family: Helvetica Neue, Helvetica, PingFang SC, Hiragino Sans GB, Microsoft YaHei, Arial, sans-serif; + background-color: #f1f1f1; + margin: 0; + padding: 0; +} + +a { + color: #343440; + text-decoration: none; +} + +ul{ + margin: 0; + padding: 0; + li{ + list-style: none; + } +} + +.clearfix { + &::after { + content: ""; + display: table; + height: 0; + line-height: 0; + visibility: hidden; + clear: both; + } +} + +/**滚动条的宽度*/ +::-webkit-scrollbar { + width: 4px; + height: 4px; +} + +//滚动条的滑块 +::-webkit-scrollbar-thumb { + background-color: #13439E; + border-radius: 3px; +} + +.icon { + width: 1em; + height: 1em; + vertical-align: -0.15em; + fill: currentColor; + overflow: hidden; +} + +//浮动 +.float-r { + float: right; +} + +//文章一行显示,多余省略号显示 +.title-item { + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 1; + overflow: hidden; + text-overflow: ellipsis; +} diff --git a/src/common/flexible.js b/src/common/flexible.js new file mode 100644 index 0000000..92de84e --- /dev/null +++ b/src/common/flexible.js @@ -0,0 +1,147 @@ +(function(win, lib) { + var doc = win.document + var docEl = doc.documentElement + var metaEl = doc.querySelector('meta[name="viewport"]') + var flexibleEl = doc.querySelector('meta[name="flexible"]') + var dpr = 0 + var scale = 0 + var tid + var flexible = lib.flexible || (lib.flexible = {}) + + if (metaEl) { + console.warn('将根据已有的meta标签来设置缩放比例') + var match = metaEl + .getAttribute('content') + // eslint-disable-next-line no-useless-escape + .match(/initial\-scale=([\d\.]+)/) + if (match) { + scale = parseFloat(match[1]) + dpr = parseInt(1 / scale) + } + } else if (flexibleEl) { + var content = flexibleEl.getAttribute('content') + if (content) { + // eslint-disable-next-line no-useless-escape + var initialDpr = content.match(/initial\-dpr=([\d\.]+)/) + // eslint-disable-next-line no-useless-escape + var maximumDpr = content.match(/maximum\-dpr=([\d\.]+)/) + if (initialDpr) { + dpr = parseFloat(initialDpr[1]) + scale = parseFloat((1 / dpr).toFixed(2)) + } + if (maximumDpr) { + dpr = parseFloat(maximumDpr[1]) + scale = parseFloat((1 / dpr).toFixed(2)) + } + } + } + + if (!dpr && !scale) { + // eslint-disable-next-line no-unused-vars + var isAndroid = win.navigator.appVersion.match(/android/gi) + var isIPhone = win.navigator.appVersion.match(/iphone/gi) + var devicePixelRatio = win.devicePixelRatio + if (isIPhone) { + // iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案 + if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) { + dpr = 3 + } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)) { + dpr = 2 + } else { + dpr = 1 + } + } else { + // 其他设备下,仍旧使用1倍的方案 + dpr = 1 + } + scale = 1 / dpr + } + + docEl.setAttribute('data-dpr', dpr) + if (!metaEl) { + metaEl = doc.createElement('meta') + metaEl.setAttribute('name', 'viewport') + metaEl.setAttribute( + 'content', + 'initial-scale=' + + scale + + ', maximum-scale=' + + scale + + ', minimum-scale=' + + scale + + ', user-scalable=no' + ) + if (docEl.firstElementChild) { + docEl.firstElementChild.appendChild(metaEl) + } else { + var wrap = doc.createElement('div') + wrap.appendChild(metaEl) + doc.write(wrap.innerHTML) + } + } + + function refreshRem() { + var width = docEl.getBoundingClientRect().width + // 最小1366px,最大适配2560px + if (width / dpr < 1366) { + width = 1366 * dpr + } else if (width / dpr > 2560) { + width = 2560 * dpr + } + // 设置成24等份,设计稿时1920px的,这样1rem就是80px + var rem = width / 24 + docEl.style.fontSize = rem + 'px' + flexible.rem = win.rem = rem + } + + win.addEventListener( + 'resize', + function() { + clearTimeout(tid) + tid = setTimeout(refreshRem, 300) + }, + false + ) + win.addEventListener( + 'pageshow', + function(e) { + if (e.persisted) { + clearTimeout(tid) + tid = setTimeout(refreshRem, 300) + } + }, + false + ) + + if (doc.readyState === 'complete') { + doc.body.style.fontSize = 12 * dpr + 'px' + } else { + doc.addEventListener( + 'DOMContentLoaded', + // eslint-disable-next-line no-unused-vars + function(e) { + doc.body.style.fontSize = 12 * dpr + 'px' + }, + false + ) + } + + refreshRem() + + flexible.dpr = win.dpr = dpr + flexible.refreshRem = refreshRem + flexible.rem2px = function(d) { + var val = parseFloat(d) * this.rem + if (typeof d === 'string' && d.match(/rem$/)) { + val += 'px' + } + return val + } + flexible.px2rem = function(d) { + var val = parseFloat(d) / this.rem + if (typeof d === 'string' && d.match(/px$/)) { + val += 'rem' + } + return val + } +})(window, window['lib'] || (window['lib'] = {})) diff --git a/src/components/echart/lineChart.vue b/src/components/echart/lineChart.vue new file mode 100644 index 0000000..bd59c05 --- /dev/null +++ b/src/components/echart/lineChart.vue @@ -0,0 +1,178 @@ + + + + + diff --git a/src/main.js b/src/main.js new file mode 100644 index 0000000..eaff4f0 --- /dev/null +++ b/src/main.js @@ -0,0 +1,26 @@ +import Vue from 'vue' +import App from './App.vue' +import router from './router' +import store from './store' + +// 适配flex +import '@/common/flexible.js' + +// 引入全局css +import './assets/styles/style.scss' +import './assets/iconfont/iconfont.js' + +import axios from 'axios' +Vue.prototype.$axios = axios + +// 引入echart +import echarts from 'echarts' +Vue.prototype.$echarts = echarts + +Vue.config.productionTip = false + +new Vue({ + router, + store, + render: (h) => h(App) +}).$mount('#app') diff --git a/src/router/index.js b/src/router/index.js new file mode 100644 index 0000000..f9ef8a9 --- /dev/null +++ b/src/router/index.js @@ -0,0 +1,20 @@ +import Vue from 'vue' +import VueRouter from 'vue-router' + +Vue.use(VueRouter) + +const routes = [{ + path: '/', + name: 'index', + component: () => import('../views/index.vue'), + meta: { + title: '智慧大屏' + } +}] + +const router = new VueRouter({ + mode: 'history', + routes +}) + +export default router diff --git a/src/store/index.js b/src/store/index.js new file mode 100644 index 0000000..332b916 --- /dev/null +++ b/src/store/index.js @@ -0,0 +1,15 @@ +import Vue from 'vue' +import Vuex from 'vuex' + +Vue.use(Vuex) + +export default new Vuex.Store({ + state: { + }, + mutations: { + }, + actions: { + }, + modules: { + } +}) diff --git a/src/utils/index.js b/src/utils/index.js new file mode 100644 index 0000000..c7d190d --- /dev/null +++ b/src/utils/index.js @@ -0,0 +1,34 @@ +export function debounce(func, wait, immediate) { + let timeout, args, context, timestamp, result + + const later = function() { + // 据上一次触发时间间隔 + const last = +new Date() - timestamp + + // 上次被包装函数被调用时间间隔 last 小于设定时间间隔 wait + if (last < wait && last > 0) { + timeout = setTimeout(later, wait - last) + } else { + timeout = null + // 如果设定为immediate===true,因为开始边界已经调用过了此处无需调用 + if (!immediate) { + result = func.apply(context, args) + if (!timeout) context = args = null + } + } + } + + return function(...args) { + context = this + timestamp = +new Date() + const callNow = immediate && !timeout + // 如果延时不存在,重新设定延时 + if (!timeout) timeout = setTimeout(later, wait) + if (callNow) { + result = func.apply(context, args) + context = args = null + } + + return result + } +} diff --git a/src/utils/request.js b/src/utils/request.js new file mode 100644 index 0000000..99f050b --- /dev/null +++ b/src/utils/request.js @@ -0,0 +1,46 @@ +import axios from 'axios' +import { Message } from 'element-ui' + +// 创建axios实例 +const service = axios.create({ + baseURL: process.env.NODE_ENV === 'production' ? process.env.VUE_APP_BASE_API : '/', // api 的 base_url + timeout: 1000 * 30, // 请求超时时间 + headers: { + 'Content-Type': 'application/json' + } +}) + +// request拦截器 +service.interceptors.request.use( + config => { + // if (getToken()) { + // config.headers['Authorization'] = getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 + // } + const token = '' // 登录后生成用于识别用户身份,项目不需要直接去掉 + config.headers['Authorization'] = token || '' + return config + }, + error => { + console.error('error: ', error) + Promise.reject(error) + } +) + +// response 拦截器 +service.interceptors.response.use( + response => { + const errorMsg = response.data.message + if (response.data.code === 200) { + return response.data.data + } else { + Message.error({ + message: errorMsg, + duration: 5000 + }) + } + }, + error => { + return Promise.reject(error) + } +) +export default service diff --git a/src/utils/resizeMixins.js b/src/utils/resizeMixins.js new file mode 100644 index 0000000..dad2526 --- /dev/null +++ b/src/utils/resizeMixins.js @@ -0,0 +1,26 @@ +// 混入代码 resize-mixins.js +import { debounce } from '@/utils/index' +const resizeChartMethod = '$__resizeChartMethod' + +export default { + data() { + // 在组件内部将图表init的引用映射到chart属性上 + return { + chart: null + } + }, + created() { + window.addEventListener('resize', this[resizeChartMethod], false) + }, + beforeDestroy() { + window.removeEventListener('reisze', this[resizeChartMethod]) + }, + methods: { + // 通过lodash的防抖函数来控制resize的频率 + [resizeChartMethod]: debounce(function() { + if (this.chart) { + this.chart.resize() + } + }, 100) + } +} diff --git a/src/views/accessToLibrary.vue b/src/views/accessToLibrary.vue new file mode 100644 index 0000000..96ef201 --- /dev/null +++ b/src/views/accessToLibrary.vue @@ -0,0 +1,36 @@ + + + + + diff --git a/src/views/data.json b/src/views/data.json new file mode 100644 index 0000000..33aeff5 --- /dev/null +++ b/src/views/data.json @@ -0,0 +1,67 @@ +{ + "ranking":[ + { + "img":"https://qiniu.aiyxlib.com/bg.png", + "title": "大个子狗与小个子猫", + "author": "高小定", + "ranking": 1 + }, + { + "img":"https://qiniu.aiyxlib.com/bg.png", + "title": "森林大探险", + "author": "卷毛老师", + "ranking": 2 + }, + { + "img":"https://qiniu.aiyxlib.com/bg.png", + "title": "家有喵星人", + "author": "查尔斯", + "ranking": 3 + }, + { + "img":"https://qiniu.aiyxlib.com/bg.png", + "title": "奇妙的冒险", + "author": "李小飞", + "ranking": 4 + }, + { + "img":"https://qiniu.aiyxlib.com/bg.png", + "title": "豆豆龙成长记", + "author": "卷毛老师", + "ranking": 5 + } + ], + "readstar":[ + { + "des": "读者张山上周借阅图书30册", + "date": "2022-09-06", + "ranking": 1 + }, + { + "des": "读者张山上周借阅图书30册", + "date": "2022-09-06", + "ranking": 2 + }, + { + "des": "读者张山上周借阅图书30册", + "date": "2022-09-06", + "ranking": 3 + }, + { + "des": "读者张山上周借阅图书30册", + "date": "2022-09-06", + "ranking": 4 + }, + { + "des": "读者张山上周借阅图书30册", + "date": "2022-09-06", + "ranking": 5 + } + , + { + "des": "读者张山上周借阅图书30册", + "date": "2022-09-06", + "ranking": 6 + } + ] +} \ No newline at end of file diff --git a/src/views/header/index.vue b/src/views/header/index.vue new file mode 100644 index 0000000..2a99eb4 --- /dev/null +++ b/src/views/header/index.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/src/views/index.vue b/src/views/index.vue new file mode 100644 index 0000000..3348132 --- /dev/null +++ b/src/views/index.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/src/views/lengingRanking.vue b/src/views/lengingRanking.vue new file mode 100644 index 0000000..72ec875 --- /dev/null +++ b/src/views/lengingRanking.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/src/views/newBookRecommend.vue b/src/views/newBookRecommend.vue new file mode 100644 index 0000000..4021d7e --- /dev/null +++ b/src/views/newBookRecommend.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/src/views/notice.vue b/src/views/notice.vue new file mode 100644 index 0000000..1901d96 --- /dev/null +++ b/src/views/notice.vue @@ -0,0 +1,30 @@ + + + + + diff --git a/src/views/readStar.vue b/src/views/readStar.vue new file mode 100644 index 0000000..c5e898e --- /dev/null +++ b/src/views/readStar.vue @@ -0,0 +1,45 @@ + + + + + diff --git a/src/views/totalLending.vue b/src/views/totalLending.vue new file mode 100644 index 0000000..b66ccde --- /dev/null +++ b/src/views/totalLending.vue @@ -0,0 +1,80 @@ + + + + + diff --git a/vue.config.js b/vue.config.js new file mode 100644 index 0000000..41930c2 --- /dev/null +++ b/vue.config.js @@ -0,0 +1,61 @@ +const path = require('path') +const resolve = dir => { + return path.join(__dirname, dir) +} +const name = '智慧大屏' +module.exports = { + publicPath: process.env.NODE_ENV === 'development' ? '/' : './', + outputDir: 'dist', + assetsDir: 'static', + lintOnSave: process.env.NODE_ENV === 'development', + productionSourceMap: false, + devServer: { + port: 3000, + open: true, + overlay: { + warnings: false, + errors: true + }, + proxy: { + '/api': { + target: process.env.VUE_APP_BASE_API, + changeOrigin: true, + pathRewrite: { + '^/api': 'api' + } + }, + '/auth': { + target: process.env.VUE_APP_BASE_API, + changeOrigin: true, + pathRewrite: { + '^/auth': 'auth' + } + } + } + }, + configureWebpack: { + name: name, + resolve: { + alias: { + '@': resolve('src') + } + }, + performance: { + hints: 'warning', + // 入口起点的最大体积 + maxEntrypointSize: 50000000, + // 生成文件的最大体积 + maxAssetSize: 30000000 + } + }, + chainWebpack: config => { + config.resolve + .alias.set('_c', resolve('src/components')) + + config.plugin('html') + .tap(args => { + args[0].title = '智慧大屏' + return args + }) + } +}