From f581a093d17d14a1653443a5d92c919a167efd4a Mon Sep 17 00:00:00 2001
From: haml-707 <845831435@qq.com>
Date: Fri, 28 Jul 2023 14:22:58 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E4=BB=93=E5=BA=93=E5=88=9D=E5=A7=8B?=
=?UTF-8?q?=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
fix:删除 登陆相关环境变量
---
.env.development | 1 +
.env.production | 0
.eslintrc | 33 +
.gitignore | 142 +-
.npmrc | 1 +
.prettierrc | 10 +
.vscode/extensions.json | 3 +
Dockerfile | 21 +
auto-imports.d.ts | 5 +
components.d.ts | 49 +
deploy/nginx/nginx.conf | 141 +
index.html | 16 +
opendesign/_utils/common.ts | 1 +
opendesign/button/index.ts | 8 +
opendesign/button/src/button-types.ts | 37 +
opendesign/button/src/button.scss | 187 +
opendesign/button/src/button.tsx | 46 +
opendesign/button/src/var.scss | 90 +
opendesign/card/OCard.vue | 46 +
opendesign/card/index.ts | 7 +
opendesign/carousel/index.ts | 0
opendesign/checkbox/index.ts | 13 +
.../checkbox/src/checkbox-group-types.ts | 28 +
opendesign/checkbox/src/checkbox-group.scss | 7 +
opendesign/checkbox/src/checkbox-group.tsx | 28 +
opendesign/checkbox/src/checkbox-types.ts | 27 +
opendesign/checkbox/src/checkbox.scss | 38 +
opendesign/checkbox/src/checkbox.tsx | 102 +
opendesign/collapse/OCollapse.vue | 52 +
opendesign/collapse/OCollapseItem.vue | 16 +
opendesign/collapse/index.ts | 10 +
opendesign/container/index.ts | 8 +
opendesign/container/src/container-types.ts | 18 +
opendesign/container/src/container.scss | 31 +
opendesign/container/src/container.tsx | 17 +
opendesign/container/src/var.scss | 17 +
opendesign/dialog/ODialog.vue | 37 +
opendesign/dialog/index.ts | 7 +
opendesign/drawer/ODrawer.vue | 54 +
opendesign/drawer/index.ts | 7 +
opendesign/dropdown/ODropdown.vue | 140 +
opendesign/dropdown/ODropdownitem.vue | 11 +
opendesign/dropdown/index.ts | 12 +
opendesign/icon/OIcon.vue | 16 +
opendesign/icon/index.ts | 8 +
opendesign/index.ts | 61 +
opendesign/input/OInput.vue | 42 +
opendesign/input/index.ts | 7 +
opendesign/package.json | 9 +
opendesign/pagination/OPagination.vue | 145 +
opendesign/pagination/index.ts | 7 +
opendesign/radio/index.ts | 13 +
opendesign/radio/src/radio-group-types.ts | 26 +
opendesign/radio/src/radio-group.scss | 7 +
opendesign/radio/src/radio-group.tsx | 28 +
opendesign/radio/src/radio-types.ts | 22 +
opendesign/radio/src/radio.scss | 54 +
opendesign/radio/src/radio.tsx | 73 +
opendesign/radio/src/var.scss | 6 +
opendesign/search/OSearch.vue | 80 +
opendesign/search/index.ts | 7 +
opendesign/select/OOption.vue | 26 +
opendesign/select/OSelect.vue | 189 +
opendesign/select/index.ts | 11 +
opendesign/select/src/select-types.ts | 10 +
opendesign/select/src/select.tsx | 16 +
opendesign/style/_animation.scss | 0
opendesign/style/_color.scss | 167 +
opendesign/style/_font.scss | 26 +
opendesign/style/_shadow.scss | 9 +
opendesign/style/_spacing.scss | 13 +
opendesign/style/variable.scss | 4 +
opendesign/switch/OSwitch.vue | 30 +
opendesign/switch/index.ts | 7 +
opendesign/table/OTable.vue | 70 +
opendesign/table/OTableColumn.vue | 11 +
opendesign/table/index.ts | 10 +
opendesign/tabs/OTabPane.vue | 11 +
opendesign/tabs/OTabs.vue | 53 +
opendesign/tabs/index.ts | 11 +
opendesign/tag/index.ts | 8 +
opendesign/tag/src/tag-types.ts | 25 +
opendesign/tag/src/tag.scss | 99 +
opendesign/tag/src/tag.tsx | 50 +
opendesign/tag/src/var.scss | 49 +
opendesign/timeline/index.ts | 8 +
opendesign/timeline/src/timeline-types.ts | 18 +
opendesign/timeline/src/timeline.scss | 73 +
opendesign/timeline/src/timeline.tsx | 148 +
opendesign/timeline/src/var.scss | 22 +
opendesign/tree/OTree.vue | 23 +
opendesign/tree/index.ts | 7 +
package.json | 52 +
pnpm-lock.yaml | 4927 +++++++++++++++++
public/favicon.ico | Bin 0 -> 4286 bytes
src/App.vue | 54 +
src/api/api-login.ts | 68 +
src/api/api-quick-issue.ts | 187 +
src/api/api-sig.ts | 71 +
src/assets/category/quick-issue/quick-bg.png | Bin 0 -> 263798 bytes
src/assets/category/verify/img1.jpg | Bin 0 -> 52967 bytes
src/assets/category/verify/img2.jpg | Bin 0 -> 37718 bytes
src/assets/category/verify/img3.jpg | Bin 0 -> 47672 bytes
src/assets/category/verify/img4.jpg | Bin 0 -> 37395 bytes
src/assets/category/verify/img5.jpg | Bin 0 -> 11503 bytes
src/assets/category/verify/img6.jpg | Bin 0 -> 59142 bytes
src/assets/footer-logo1.png | Bin 0 -> 2458 bytes
src/assets/footer/bilibili.png | Bin 0 -> 3612 bytes
src/assets/footer/csdn.png | Bin 0 -> 4243 bytes
src/assets/footer/cto.png | Bin 0 -> 4926 bytes
src/assets/footer/footer-bg-mo.png | Bin 0 -> 52605 bytes
src/assets/footer/footer-bg.png | Bin 0 -> 36420 bytes
src/assets/footer/footer-logo.svg | 34 +
src/assets/footer/infoq.png | Bin 0 -> 2812 bytes
src/assets/footer/modb.png | Bin 0 -> 3056 bytes
src/assets/footer/oschina.png | Bin 0 -> 4853 bytes
src/assets/footer/wechat.png | Bin 0 -> 13569 bytes
src/assets/footer/zhihu.png | Bin 0 -> 2341 bytes
src/assets/logo.png | Bin 0 -> 28250 bytes
src/assets/logo.svg | 29 +
src/assets/logo_dark.png | Bin 0 -> 5683 bytes
src/assets/logo_dark.svg | 29 +
src/assets/opengauss-logo.png | Bin 0 -> 6574 bytes
src/assets/qrcode.png | Bin 0 -> 18178 bytes
src/assets/quickissue-logo.png | Bin 0 -> 9073 bytes
src/assets/svg-icons/icon-add.svg | 4 +
src/assets/svg-icons/icon-arrow-left.svg | 4 +
src/assets/svg-icons/icon-arrow-right.svg | 4 +
.../svg-icons/icon-arrow-traingle-down.svg | 4 +
.../svg-icons/icon-arrow-traingle-left.svg | 4 +
.../svg-icons/icon-arrow-traingle-right.svg | 4 +
.../svg-icons/icon-arrow-traingle-up.svg | 5 +
src/assets/svg-icons/icon-browse.svg | 4 +
src/assets/svg-icons/icon-calendar.svg | 4 +
src/assets/svg-icons/icon-cancel-solid.svg | 4 +
src/assets/svg-icons/icon-cancel.svg | 4 +
src/assets/svg-icons/icon-checked.svg | 5 +
src/assets/svg-icons/icon-chevron-down.svg | 4 +
src/assets/svg-icons/icon-chevron-left.svg | 4 +
src/assets/svg-icons/icon-chevron-right.svg | 4 +
src/assets/svg-icons/icon-chevron-up.svg | 4 +
src/assets/svg-icons/icon-comment.svg | 4 +
src/assets/svg-icons/icon-copy.svg | 4 +
src/assets/svg-icons/icon-delete.svg | 4 +
src/assets/svg-icons/icon-dividers.svg | 4 +
src/assets/svg-icons/icon-doc.svg | 4 +
src/assets/svg-icons/icon-done-outline.svg | 4 +
src/assets/svg-icons/icon-done-solid.svg | 4 +
src/assets/svg-icons/icon-done.svg | 4 +
src/assets/svg-icons/icon-download.svg | 4 +
src/assets/svg-icons/icon-ellipsis.svg | 6 +
src/assets/svg-icons/icon-filter.svg | 4 +
src/assets/svg-icons/icon-gitee.svg | 11 +
src/assets/svg-icons/icon-home.svg | 4 +
src/assets/svg-icons/icon-link.svg | 4 +
src/assets/svg-icons/icon-live-streaming.svg | 4 +
src/assets/svg-icons/icon-login.svg | 9 +
src/assets/svg-icons/icon-mail.svg | 4 +
src/assets/svg-icons/icon-map-pin.svg | 4 +
src/assets/svg-icons/icon-menu.svg | 4 +
src/assets/svg-icons/icon-moon-outline.svg | 4 +
src/assets/svg-icons/icon-moon-solid.svg | 4 +
src/assets/svg-icons/icon-more.svg | 4 +
src/assets/svg-icons/icon-pulldown.svg | 8 +
src/assets/svg-icons/icon-refresh.svg | 4 +
src/assets/svg-icons/icon-required-fields.svg | 4 +
src/assets/svg-icons/icon-search.svg | 4 +
src/assets/svg-icons/icon-setting.svg | 16 +
src/assets/svg-icons/icon-star-outlined.svg | 4 +
src/assets/svg-icons/icon-star-solid.svg | 4 +
src/assets/svg-icons/icon-sun-outline.svg | 4 +
src/assets/svg-icons/icon-sun-solid.svg | 4 +
src/assets/svg-icons/icon-tag.svg | 4 +
src/assets/svg-icons/icon-time.svg | 4 +
src/assets/svg-icons/icon-tips.svg | 4 +
src/assets/svg-icons/icon-toggle-off.svg | 4 +
src/assets/svg-icons/icon-toggle-on.svg | 4 +
src/assets/svg-icons/icon-unchecked.svg | 4 +
src/assets/svg-icons/icon-user.svg | 4 +
src/assets/svg-icons/icon-video.svg | 4 +
src/components/AppContent.vue | 47 +
src/components/AppEditor.vue | 72 +
src/components/AppFooter.vue | 463 ++
src/components/AppHeader.vue | 261 +
src/components/AppIssue.vue | 1506 +++++
src/components/AppPull.vue | 1272 +++++
src/components/AppSlideVerify.vue | 236 +
src/components/DocAnchor.vue | 138 +
src/components/HeaderNav.vue | 225 +
src/components/ONav.vue | 95 +
src/components/SigLandscapeFeature.vue | 163 +
src/components/hooks/useClickOutside.ts | 20 +
src/data/quick-issue/quick-issue.ts | 54 +
src/i18n/common/common-en.ts | 250 +
src/i18n/common/common-zh.ts | 284 +
src/i18n/common/index.ts | 7 +
src/i18n/index.ts | 25 +
src/i18n/quick-issue/index.ts | 7 +
src/i18n/quick-issue/quick-issue-en.ts | 67 +
src/i18n/quick-issue/quick-issue-zh.ts | 66 +
src/main.ts | 31 +
src/routers/index.ts | 42 +
src/shared/@types/type-quick-issue.ts | 35 +
src/shared/@types/type-sig.ts | 9 +
src/shared/allow_sensor/sensors.js | 567 ++
src/shared/allow_sensor/sensorsdata.min.js | 5 +
src/shared/axios/handleError.ts | 54 +
src/shared/axios/handleResponse.ts | 17 +
src/shared/axios/index.ts | 222 +
src/shared/axios/setConfig.ts | 17 +
src/shared/index.ts | 139 +
src/shared/lang.ts | 4 +
src/shared/styles/base.scss | 130 +
src/shared/styles/element-plus/_message.scss | 42 +
src/shared/styles/element-plus/_option.scss | 14 +
src/shared/styles/element-plus/_popper.scss | 7 +
src/shared/styles/element-plus/index.scss | 19 +
src/shared/styles/index.scss | 7 +
src/shared/styles/markdown.scss | 301 +
src/shared/styles/normalize.scss | 351 ++
src/shared/styles/theme-dark.scss | 87 +
src/shared/url-config.ts | 31 +
src/shared/utils.ts | 46 +
src/stores/index.ts | 32 +
src/stores/login.ts | 8 +
src/views/TheQuickIssue.vue | 19 +
src/views/pull-request/PullRequest.vue | 19 +
src/views/submit-issue/SubmitIssue.vue | 943 ++++
src/vite-env.d.ts | 23 +
tsconfig.json | 24 +
tsconfig.node.json | 9 +
vite.config.ts | 86 +
232 files changed, 17622 insertions(+), 18 deletions(-)
create mode 100644 .env.development
create mode 100644 .env.production
create mode 100644 .eslintrc
create mode 100644 .npmrc
create mode 100644 .prettierrc
create mode 100644 .vscode/extensions.json
create mode 100644 Dockerfile
create mode 100644 auto-imports.d.ts
create mode 100644 components.d.ts
create mode 100644 deploy/nginx/nginx.conf
create mode 100644 index.html
create mode 100644 opendesign/_utils/common.ts
create mode 100644 opendesign/button/index.ts
create mode 100644 opendesign/button/src/button-types.ts
create mode 100644 opendesign/button/src/button.scss
create mode 100644 opendesign/button/src/button.tsx
create mode 100644 opendesign/button/src/var.scss
create mode 100644 opendesign/card/OCard.vue
create mode 100644 opendesign/card/index.ts
create mode 100644 opendesign/carousel/index.ts
create mode 100644 opendesign/checkbox/index.ts
create mode 100644 opendesign/checkbox/src/checkbox-group-types.ts
create mode 100644 opendesign/checkbox/src/checkbox-group.scss
create mode 100644 opendesign/checkbox/src/checkbox-group.tsx
create mode 100644 opendesign/checkbox/src/checkbox-types.ts
create mode 100644 opendesign/checkbox/src/checkbox.scss
create mode 100644 opendesign/checkbox/src/checkbox.tsx
create mode 100644 opendesign/collapse/OCollapse.vue
create mode 100644 opendesign/collapse/OCollapseItem.vue
create mode 100644 opendesign/collapse/index.ts
create mode 100644 opendesign/container/index.ts
create mode 100644 opendesign/container/src/container-types.ts
create mode 100644 opendesign/container/src/container.scss
create mode 100644 opendesign/container/src/container.tsx
create mode 100644 opendesign/container/src/var.scss
create mode 100644 opendesign/dialog/ODialog.vue
create mode 100644 opendesign/dialog/index.ts
create mode 100644 opendesign/drawer/ODrawer.vue
create mode 100644 opendesign/drawer/index.ts
create mode 100644 opendesign/dropdown/ODropdown.vue
create mode 100644 opendesign/dropdown/ODropdownitem.vue
create mode 100644 opendesign/dropdown/index.ts
create mode 100644 opendesign/icon/OIcon.vue
create mode 100644 opendesign/icon/index.ts
create mode 100644 opendesign/index.ts
create mode 100644 opendesign/input/OInput.vue
create mode 100644 opendesign/input/index.ts
create mode 100644 opendesign/package.json
create mode 100644 opendesign/pagination/OPagination.vue
create mode 100644 opendesign/pagination/index.ts
create mode 100644 opendesign/radio/index.ts
create mode 100644 opendesign/radio/src/radio-group-types.ts
create mode 100644 opendesign/radio/src/radio-group.scss
create mode 100644 opendesign/radio/src/radio-group.tsx
create mode 100644 opendesign/radio/src/radio-types.ts
create mode 100644 opendesign/radio/src/radio.scss
create mode 100644 opendesign/radio/src/radio.tsx
create mode 100644 opendesign/radio/src/var.scss
create mode 100644 opendesign/search/OSearch.vue
create mode 100644 opendesign/search/index.ts
create mode 100644 opendesign/select/OOption.vue
create mode 100644 opendesign/select/OSelect.vue
create mode 100644 opendesign/select/index.ts
create mode 100644 opendesign/select/src/select-types.ts
create mode 100644 opendesign/select/src/select.tsx
create mode 100644 opendesign/style/_animation.scss
create mode 100644 opendesign/style/_color.scss
create mode 100644 opendesign/style/_font.scss
create mode 100644 opendesign/style/_shadow.scss
create mode 100644 opendesign/style/_spacing.scss
create mode 100644 opendesign/style/variable.scss
create mode 100644 opendesign/switch/OSwitch.vue
create mode 100644 opendesign/switch/index.ts
create mode 100644 opendesign/table/OTable.vue
create mode 100644 opendesign/table/OTableColumn.vue
create mode 100644 opendesign/table/index.ts
create mode 100644 opendesign/tabs/OTabPane.vue
create mode 100644 opendesign/tabs/OTabs.vue
create mode 100644 opendesign/tabs/index.ts
create mode 100644 opendesign/tag/index.ts
create mode 100644 opendesign/tag/src/tag-types.ts
create mode 100644 opendesign/tag/src/tag.scss
create mode 100644 opendesign/tag/src/tag.tsx
create mode 100644 opendesign/tag/src/var.scss
create mode 100644 opendesign/timeline/index.ts
create mode 100644 opendesign/timeline/src/timeline-types.ts
create mode 100644 opendesign/timeline/src/timeline.scss
create mode 100644 opendesign/timeline/src/timeline.tsx
create mode 100644 opendesign/timeline/src/var.scss
create mode 100644 opendesign/tree/OTree.vue
create mode 100644 opendesign/tree/index.ts
create mode 100644 package.json
create mode 100644 pnpm-lock.yaml
create mode 100644 public/favicon.ico
create mode 100644 src/App.vue
create mode 100644 src/api/api-login.ts
create mode 100644 src/api/api-quick-issue.ts
create mode 100644 src/api/api-sig.ts
create mode 100644 src/assets/category/quick-issue/quick-bg.png
create mode 100644 src/assets/category/verify/img1.jpg
create mode 100644 src/assets/category/verify/img2.jpg
create mode 100644 src/assets/category/verify/img3.jpg
create mode 100644 src/assets/category/verify/img4.jpg
create mode 100644 src/assets/category/verify/img5.jpg
create mode 100644 src/assets/category/verify/img6.jpg
create mode 100644 src/assets/footer-logo1.png
create mode 100644 src/assets/footer/bilibili.png
create mode 100644 src/assets/footer/csdn.png
create mode 100644 src/assets/footer/cto.png
create mode 100644 src/assets/footer/footer-bg-mo.png
create mode 100644 src/assets/footer/footer-bg.png
create mode 100644 src/assets/footer/footer-logo.svg
create mode 100644 src/assets/footer/infoq.png
create mode 100644 src/assets/footer/modb.png
create mode 100644 src/assets/footer/oschina.png
create mode 100644 src/assets/footer/wechat.png
create mode 100644 src/assets/footer/zhihu.png
create mode 100644 src/assets/logo.png
create mode 100644 src/assets/logo.svg
create mode 100644 src/assets/logo_dark.png
create mode 100644 src/assets/logo_dark.svg
create mode 100644 src/assets/opengauss-logo.png
create mode 100644 src/assets/qrcode.png
create mode 100644 src/assets/quickissue-logo.png
create mode 100644 src/assets/svg-icons/icon-add.svg
create mode 100644 src/assets/svg-icons/icon-arrow-left.svg
create mode 100644 src/assets/svg-icons/icon-arrow-right.svg
create mode 100644 src/assets/svg-icons/icon-arrow-traingle-down.svg
create mode 100644 src/assets/svg-icons/icon-arrow-traingle-left.svg
create mode 100644 src/assets/svg-icons/icon-arrow-traingle-right.svg
create mode 100644 src/assets/svg-icons/icon-arrow-traingle-up.svg
create mode 100644 src/assets/svg-icons/icon-browse.svg
create mode 100644 src/assets/svg-icons/icon-calendar.svg
create mode 100644 src/assets/svg-icons/icon-cancel-solid.svg
create mode 100644 src/assets/svg-icons/icon-cancel.svg
create mode 100644 src/assets/svg-icons/icon-checked.svg
create mode 100644 src/assets/svg-icons/icon-chevron-down.svg
create mode 100644 src/assets/svg-icons/icon-chevron-left.svg
create mode 100644 src/assets/svg-icons/icon-chevron-right.svg
create mode 100644 src/assets/svg-icons/icon-chevron-up.svg
create mode 100644 src/assets/svg-icons/icon-comment.svg
create mode 100644 src/assets/svg-icons/icon-copy.svg
create mode 100644 src/assets/svg-icons/icon-delete.svg
create mode 100644 src/assets/svg-icons/icon-dividers.svg
create mode 100644 src/assets/svg-icons/icon-doc.svg
create mode 100644 src/assets/svg-icons/icon-done-outline.svg
create mode 100644 src/assets/svg-icons/icon-done-solid.svg
create mode 100644 src/assets/svg-icons/icon-done.svg
create mode 100644 src/assets/svg-icons/icon-download.svg
create mode 100644 src/assets/svg-icons/icon-ellipsis.svg
create mode 100644 src/assets/svg-icons/icon-filter.svg
create mode 100644 src/assets/svg-icons/icon-gitee.svg
create mode 100644 src/assets/svg-icons/icon-home.svg
create mode 100644 src/assets/svg-icons/icon-link.svg
create mode 100644 src/assets/svg-icons/icon-live-streaming.svg
create mode 100644 src/assets/svg-icons/icon-login.svg
create mode 100644 src/assets/svg-icons/icon-mail.svg
create mode 100644 src/assets/svg-icons/icon-map-pin.svg
create mode 100644 src/assets/svg-icons/icon-menu.svg
create mode 100644 src/assets/svg-icons/icon-moon-outline.svg
create mode 100644 src/assets/svg-icons/icon-moon-solid.svg
create mode 100644 src/assets/svg-icons/icon-more.svg
create mode 100644 src/assets/svg-icons/icon-pulldown.svg
create mode 100644 src/assets/svg-icons/icon-refresh.svg
create mode 100644 src/assets/svg-icons/icon-required-fields.svg
create mode 100644 src/assets/svg-icons/icon-search.svg
create mode 100644 src/assets/svg-icons/icon-setting.svg
create mode 100644 src/assets/svg-icons/icon-star-outlined.svg
create mode 100644 src/assets/svg-icons/icon-star-solid.svg
create mode 100644 src/assets/svg-icons/icon-sun-outline.svg
create mode 100644 src/assets/svg-icons/icon-sun-solid.svg
create mode 100644 src/assets/svg-icons/icon-tag.svg
create mode 100644 src/assets/svg-icons/icon-time.svg
create mode 100644 src/assets/svg-icons/icon-tips.svg
create mode 100644 src/assets/svg-icons/icon-toggle-off.svg
create mode 100644 src/assets/svg-icons/icon-toggle-on.svg
create mode 100644 src/assets/svg-icons/icon-unchecked.svg
create mode 100644 src/assets/svg-icons/icon-user.svg
create mode 100644 src/assets/svg-icons/icon-video.svg
create mode 100644 src/components/AppContent.vue
create mode 100644 src/components/AppEditor.vue
create mode 100644 src/components/AppFooter.vue
create mode 100644 src/components/AppHeader.vue
create mode 100644 src/components/AppIssue.vue
create mode 100644 src/components/AppPull.vue
create mode 100644 src/components/AppSlideVerify.vue
create mode 100644 src/components/DocAnchor.vue
create mode 100644 src/components/HeaderNav.vue
create mode 100644 src/components/ONav.vue
create mode 100644 src/components/SigLandscapeFeature.vue
create mode 100644 src/components/hooks/useClickOutside.ts
create mode 100644 src/data/quick-issue/quick-issue.ts
create mode 100644 src/i18n/common/common-en.ts
create mode 100644 src/i18n/common/common-zh.ts
create mode 100644 src/i18n/common/index.ts
create mode 100644 src/i18n/index.ts
create mode 100644 src/i18n/quick-issue/index.ts
create mode 100644 src/i18n/quick-issue/quick-issue-en.ts
create mode 100644 src/i18n/quick-issue/quick-issue-zh.ts
create mode 100644 src/main.ts
create mode 100644 src/routers/index.ts
create mode 100644 src/shared/@types/type-quick-issue.ts
create mode 100644 src/shared/@types/type-sig.ts
create mode 100644 src/shared/allow_sensor/sensors.js
create mode 100644 src/shared/allow_sensor/sensorsdata.min.js
create mode 100644 src/shared/axios/handleError.ts
create mode 100644 src/shared/axios/handleResponse.ts
create mode 100644 src/shared/axios/index.ts
create mode 100644 src/shared/axios/setConfig.ts
create mode 100644 src/shared/index.ts
create mode 100644 src/shared/lang.ts
create mode 100644 src/shared/styles/base.scss
create mode 100644 src/shared/styles/element-plus/_message.scss
create mode 100644 src/shared/styles/element-plus/_option.scss
create mode 100644 src/shared/styles/element-plus/_popper.scss
create mode 100644 src/shared/styles/element-plus/index.scss
create mode 100644 src/shared/styles/index.scss
create mode 100644 src/shared/styles/markdown.scss
create mode 100644 src/shared/styles/normalize.scss
create mode 100644 src/shared/styles/theme-dark.scss
create mode 100644 src/shared/url-config.ts
create mode 100644 src/shared/utils.ts
create mode 100644 src/stores/index.ts
create mode 100644 src/stores/login.ts
create mode 100644 src/views/TheQuickIssue.vue
create mode 100644 src/views/pull-request/PullRequest.vue
create mode 100644 src/views/submit-issue/SubmitIssue.vue
create mode 100644 src/vite-env.d.ts
create mode 100644 tsconfig.json
create mode 100644 tsconfig.node.json
create mode 100644 vite.config.ts
diff --git a/.env.development b/.env.development
new file mode 100644
index 0000000..b60c2cb
--- /dev/null
+++ b/.env.development
@@ -0,0 +1 @@
+VITE_SECRET = 8484ffc0431e4fc4
diff --git a/.env.production b/.env.production
new file mode 100644
index 0000000..e69de29
diff --git a/.eslintrc b/.eslintrc
new file mode 100644
index 0000000..a8024f2
--- /dev/null
+++ b/.eslintrc
@@ -0,0 +1,33 @@
+{
+ "root": true,
+ "parser": "vue-eslint-parser",
+ "parserOptions": {
+ "sourceType": "module",
+ "ecmaVersion": 2020,
+ "ecmaFeatures": {
+ "tsx": true
+ }
+ },
+ "env": {
+ "browser": true,
+ "node": true,
+ "es6": true
+ },
+ "extends": [
+ "plugin:vue/vue3-recommended",
+ "@vue/typescript/recommended",
+ "plugin:@typescript-eslint/recommended",
+ "@vue/prettier"
+ ],
+ "plugins": ["@typescript-eslint"],
+ "rules": {
+ "no-console": "warn",
+ "no-debugger": "error",
+ "no-var": "error",
+ "no-unused-vars": "error",
+ "no-multiple-empty-lines": "error",
+ "eqeqeq": "error",
+ "@typescript-eslint/no-explicit-any": "off",
+ "vue/no-v-model-argument": "off"
+ }
+}
diff --git a/.gitignore b/.gitignore
index 5d947ca..d6211aa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,18 +1,124 @@
-# Build and Release Folders
-bin-debug/
-bin-release/
-[Oo]bj/
-[Bb]in/
-
-# Other files and folders
-.settings/
-
-# Executables
-*.swf
-*.air
-*.ipa
-*.apk
-
-# Project files, i.e. `.project`, `.actionScriptProperties` and `.flexProperties`
-# should NOT be excluded as they contain compiler settings and other important
-# information for Eclipse / Flash Builder.
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+lerna-debug.log*
+
+# Diagnostic reports (https://nodejs.org/api/report.html)
+report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
+
+# Runtime data
+pids
+*.pid
+*.seed
+*.pid.lock
+
+# Directory for instrumented libs generated by jscoverage/JSCover
+lib-cov
+
+# Coverage directory used by tools like istanbul
+coverage
+*.lcov
+
+# nyc test coverage
+.nyc_output
+
+# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
+.grunt
+
+# Bower dependency directory (https://bower.io/)
+bower_components
+
+# node-waf configuration
+.lock-wscript
+
+# Compiled binary addons (https://nodejs.org/api/addons.html)
+build/Release
+
+# Dependency directories
+node_modules/
+jspm_packages/
+
+# Snowpack dependency directory (https://snowpack.dev/)
+web_modules/
+
+# TypeScript cache
+*.tsbuildinfo
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Microbundle cache
+.rpt2_cache/
+.rts2_cache_cjs/
+.rts2_cache_es/
+.rts2_cache_umd/
+
+# Optional REPL history
+.node_repl_history
+
+# Output of 'npm pack'
+*.tgz
+
+# Yarn Integrity file
+.yarn-integrity
+
+# dotenv environment variables file
+.env
+.env.test
+
+# parcel-bundler cache (https://parceljs.org/)
+.cache
+.parcel-cache
+
+# Next.js build output
+.next
+out
+
+# Nuxt.js build / generate output
+.nuxt
+dist
+
+# Gatsby files
+.cache/
+# Comment in the public line in if your project uses Gatsby and not Next.js
+# https://nextjs.org/blog/next-9-1#public-directory-support
+# public
+
+# vuepress build output
+.vuepress/dist
+
+# Serverless directories
+.serverless/
+
+# FuseBox cache
+.fusebox/
+
+# DynamoDB Local files
+.dynamodb/
+
+# TernJS port file
+.tern-port
+
+# Stores VSCode versions used for testing VSCode extensions
+.vscode-test
+
+# yarn v2
+.yarn/cache
+.yarn/unplugged
+.yarn/build-state.yml
+.yarn/install-state.gz
+.pnp.*
+
+# mac
+.DS_Store
+
+app/.vitepress/.cache
+app/.vitepress/.temp
+app/.vitepress/dist
+node_modules
diff --git a/.npmrc b/.npmrc
new file mode 100644
index 0000000..fa4e095
--- /dev/null
+++ b/.npmrc
@@ -0,0 +1 @@
+strict-peer-dependencies=false
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000..dc54040
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,10 @@
+{
+ "printWidth": 80,
+ "useTabs": false,
+ "singleQuote": true,
+ "tabWidth": 2,
+ "semi": true,
+ "trailingComma": "es5",
+ "arrowParens": "always",
+ "jsxBracketSameLine": false
+}
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
new file mode 100644
index 0000000..a7cea0b
--- /dev/null
+++ b/.vscode/extensions.json
@@ -0,0 +1,3 @@
+{
+ "recommendations": ["Vue.volar"]
+}
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..57bc258
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,21 @@
+FROM gplane/pnpm as Builder
+
+RUN mkdir -p /home/quick-issue/web
+WORKDIR /home/quick-issue/web
+COPY . /home/quick-issue/web
+
+RUN pnpm install
+
+RUN pnpm build
+
+FROM swr.cn-north-4.myhuaweicloud.com/opensourceway/openeuler/nginx:1.22.0-22.03-lts
+
+COPY --from=Builder /home/quick-issue/web/dist /usr/share/nginx/html/
+RUN chmod -R 755 /usr/share/nginx/html
+COPY ./deploy/nginx/nginx.conf /etc/nginx/nginx.conf
+
+
+ENV RUN_USER nginx
+ENV RUN_GROUP nginx
+EXPOSE 8080
+ENTRYPOINT ["nginx", "-g", "daemon off;"]
diff --git a/auto-imports.d.ts b/auto-imports.d.ts
new file mode 100644
index 0000000..08908ed
--- /dev/null
+++ b/auto-imports.d.ts
@@ -0,0 +1,5 @@
+// Generated by 'unplugin-auto-import'
+export {}
+declare global {
+
+}
diff --git a/components.d.ts b/components.d.ts
new file mode 100644
index 0000000..0f92669
--- /dev/null
+++ b/components.d.ts
@@ -0,0 +1,49 @@
+// generated by unplugin-vue-components
+// We suggest you to commit this file into source control
+// Read more: https://github.com/vuejs/core/pull/3399
+import '@vue/runtime-core'
+
+export {}
+
+declare module '@vue/runtime-core' {
+ export interface GlobalComponents {
+ AppContent: typeof import('./src/components/AppContent.vue')['default']
+ AppEditor: typeof import('./src/components/AppEditor.vue')['default']
+ AppFooter: typeof import('./src/components/AppFooter.vue')['default']
+ AppHeader: typeof import('./src/components/AppHeader.vue')['default']
+ AppIssue: typeof import('./src/components/AppIssue.vue')['default']
+ AppPull: typeof import('./src/components/AppPull.vue')['default']
+ AppSlideVerify: typeof import('./src/components/AppSlideVerify.vue')['default']
+ DocAnchor: typeof import('./src/components/DocAnchor.vue')['default']
+ ElCard: typeof import('element-plus/es')['ElCard']
+ ElCheckbox: typeof import('element-plus/es')['ElCheckbox']
+ ElCollapse: typeof import('element-plus/es')['ElCollapse']
+ ElCollapseItem: typeof import('element-plus/es')['ElCollapseItem']
+ ElDialog: typeof import('element-plus/es')['ElDialog']
+ ElDrawer: typeof import('element-plus/es')['ElDrawer']
+ ElDropdown: typeof import('element-plus/es')['ElDropdown']
+ ElDropdownItem: typeof import('element-plus/es')['ElDropdownItem']
+ ElDropdownMenu: typeof import('element-plus/es')['ElDropdownMenu']
+ ElForm: typeof import('element-plus/es')['ElForm']
+ ElFormItem: typeof import('element-plus/es')['ElFormItem']
+ ElInput: typeof import('element-plus/es')['ElInput']
+ ElOption: typeof import('element-plus/es')['ElOption']
+ ElPagination: typeof import('element-plus/es')['ElPagination']
+ ElPopover: typeof import('element-plus/es')['ElPopover']
+ ElScrollbar: typeof import('element-plus/es')['ElScrollbar']
+ ElSelect: typeof import('element-plus/es')['ElSelect']
+ ElSwitch: typeof import('element-plus/es')['ElSwitch']
+ ElTable: typeof import('element-plus/es')['ElTable']
+ ElTableColumn: typeof import('element-plus/es')['ElTableColumn']
+ ElTabPane: typeof import('element-plus/es')['ElTabPane']
+ ElTabs: typeof import('element-plus/es')['ElTabs']
+ ElTree: typeof import('element-plus/es')['ElTree']
+ ElUpload: typeof import('element-plus/es')['ElUpload']
+ HeaderNav: typeof import('./src/components/HeaderNav.vue')['default']
+ ONav: typeof import('./src/components/ONav.vue')['default']
+ RouterLink: typeof import('vue-router')['RouterLink']
+ RouterView: typeof import('vue-router')['RouterView']
+ SigLandscapeFeature: typeof import('./src/components/SigLandscapeFeature.vue')['default']
+ SlideVerify: typeof import('./src/components/slide-verify/slide-verify.vue')['default']
+ }
+}
diff --git a/deploy/nginx/nginx.conf b/deploy/nginx/nginx.conf
new file mode 100644
index 0000000..78aa59f
--- /dev/null
+++ b/deploy/nginx/nginx.conf
@@ -0,0 +1,141 @@
+worker_processes auto;
+
+error_log /dev/stdout warn;
+
+pid /var/run/nginx.pid;
+
+load_module /etc/nginx/modules/ngx_http_geoip2_module.so;
+
+worker_rlimit_nofile 4096;
+events {
+ use epoll;
+ worker_connections 4096;
+}
+
+http {
+ include /etc/nginx/mime.types;
+
+ geoip2 /etc/nginx/geoip/GeoLite2-Country.mmdb {
+ $geoip2_city_country_code source=$http_true_client_ip country iso_code;
+ $geoip2_city_country_name source=$http_true_client_ip country names en;
+ }
+
+ geoip2 /etc/nginx/geoip/GeoLite2-City.mmdb {
+ $geoip2_city source=$http_true_client_ip city names en;
+ }
+
+ log_format main '[$time_local] "remote_addr": "$remote_addr"'
+ '"x_forwarded_for": "$http_x_forwarded_for"'
+ '"true-client-ip": "$http_true_client_ip"'
+ '"$request"'
+ '"geoip2_city_country_code": "$geoip2_city_country_code"'
+ '"geoip2_city_country_name": "$geoip2_city_country_name"'
+ '"geoip2_city": "$geoip2_city"'
+ '$status $body_bytes_sent "$http_referer" '
+ '"$http_user_agent"';
+
+ access_log /dev/stdout main;
+
+ autoindex off;
+ sendfile on;
+
+ keepalive_timeout 300;
+ keepalive_requests 100;
+ proxy_read_timeout 900;
+ proxy_connect_timeout 60;
+
+ proxy_send_timeout 60;
+ client_header_timeout 60;
+ client_header_buffer_size 1k;
+ large_client_header_buffers 4 64k;
+ client_body_buffer_size 16K;
+ client_body_timeout 60;
+ send_timeout 60;
+ server_tokens off;
+ port_in_redirect off;
+ limit_conn_zone $binary_remote_addr zone=conn_zone:10m;
+ limit_conn_zone $server_name zone=perserver:10m;
+ limit_req_zone global zone=req_zone:1m rate=1000r/s;
+ limit_req_zone $binary_remote_addr zone=event_zone:10m rate=20r/s;
+
+ proxy_request_buffering off;
+ client_max_body_size 50m;
+
+ gzip on;
+ gzip_min_length 1k;
+ gzip_buffers 4 16k;
+ gzip_http_version 1.0;
+ gzip_comp_level 5;
+ gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/javascript application/x-httpd-php application/json;
+ gzip_vary on;
+
+ server {
+ # listen 443 ssl;
+ # server_name localhost;
+ # charset utf-8;
+
+ listen 8080;
+ server_name localhost;
+ charset utf-8;
+ limit_conn perserver 50;
+ if ($request_method = 'OPTIONS') {
+ return 401;
+ }
+
+ location / {
+ location /assets {
+ # publish every two weeks
+ expires 14d;
+ add_header Cache-Control public;
+ }
+ location / {
+ add_header Cache-Control no-cache;
+ }
+
+ location = / {
+ rewrite ^/$ /zh/issues/ redirect;
+ }
+ location = /zh/ {
+ rewrite ^/zh/$ /zh/issues/ redirect;
+ }
+
+ location /api-issues/ {
+ proxy_pass http://119.8.32.82/;
+ # proxy_pass https://ipb.osinfra.cn/;
+ }
+ location /api-omapi/ {
+ proxy_pass https://omapi.osinfra.cn/;
+ }
+ location /api-dsapi/ {
+ proxy_pass https://dsapi.osinfra.cn/;
+ }
+ location /ip-api/ {
+ proxy_pass http://ip-api.com/json/;
+ }
+
+ root /usr/share/nginx/html;
+ index /index.html;
+ # error_page 404 /404.html;
+ }
+
+ location ~ ^/(quick-issue) {
+ try_files $uri /index.html;
+ }
+
+ error_page 500 501 502 503 504 505 /500.html;
+ error_page 401 /401.html;
+ error_page 404 /404.html;
+
+ location = /401.html {
+ root /usr/share/nginx/html;
+ }
+
+ location = /404.html {
+ root /usr/share/nginx/html;
+ }
+
+ location = /500.html {
+ root /usr/share/nginx/html;
+ }
+ }
+}
\ No newline at end of file
diff --git a/index.html b/index.html
new file mode 100644
index 0000000..9170f28
--- /dev/null
+++ b/index.html
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+ Quick-Issue
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/opendesign/_utils/common.ts b/opendesign/_utils/common.ts
new file mode 100644
index 0000000..9a855ca
--- /dev/null
+++ b/opendesign/_utils/common.ts
@@ -0,0 +1 @@
+export type SizeType = 'large' | 'medium' | 'small' | 'mini';
diff --git a/opendesign/button/index.ts b/opendesign/button/index.ts
new file mode 100644
index 0000000..ad4db8f
--- /dev/null
+++ b/opendesign/button/index.ts
@@ -0,0 +1,8 @@
+import type { App } from 'vue';
+import Button from './src/button';
+
+Button.install = function (app: App) {
+ app.component(Button.name, Button);
+};
+
+export { Button };
diff --git a/opendesign/button/src/button-types.ts b/opendesign/button/src/button-types.ts
new file mode 100644
index 0000000..4deb21d
--- /dev/null
+++ b/opendesign/button/src/button-types.ts
@@ -0,0 +1,37 @@
+import { ExtractDefaultPropTypes, PropType } from 'vue';
+import { SizeType } from '../../_utils/common';
+
+type ButtonType = 'outline' | 'primary' | 'secondary' | 'text';
+// TODO:status颜色规范待补充
+// type ButtonStatus = 'normal' | 'success' | 'warning' | 'danger';
+type ButtonStatus = 'normal';
+type ButtonNativeType = 'button' | 'submit' | 'reset';
+
+export const buttonProps = {
+ size: {
+ type: String as PropType,
+ default: 'medium',
+ },
+ type: {
+ type: String as PropType,
+ default: 'outline',
+ },
+ status: {
+ type: String as PropType,
+ default: 'nomral',
+ },
+ disabled: {
+ type: Boolean,
+ default: false,
+ },
+ animation: {
+ type: Boolean,
+ default: false,
+ },
+ nativeType: {
+ type: String as PropType,
+ default: 'button',
+ },
+};
+
+export type ButtonProps = ExtractDefaultPropTypes;
diff --git a/opendesign/button/src/button.scss b/opendesign/button/src/button.scss
new file mode 100644
index 0000000..2eb0a2e
--- /dev/null
+++ b/opendesign/button/src/button.scss
@@ -0,0 +1,187 @@
+@import './var.scss';
+
+.o-button {
+ display: inline-flex;
+ align-items: center;
+ padding: var(--o-button-padding);
+ font-size: var(--o-button-font-size);
+ line-height: var(--o-button-line-height);
+ color: var(--o-button-font-color);
+ background-color: var(--o-button-bg-color);
+ border: var(--o-button-border);
+ outline: none;
+ user-select: none;
+ cursor: pointer;
+
+ &.with-prefix {
+ padding-left: var(--o-button-icon-paddding);
+ }
+
+ &.with-suffix {
+ padding-right: var(--o-button-icon-paddding);
+ }
+
+ &.is-disabled {
+ cursor: not-allowed;
+ }
+
+ &:hover {
+ @media screen and (min-width: 1100px) {
+ color: var(--o-button-font-color_hover);
+ border: var(--o-button-border_hover);
+ background-color: var(--o-button-bg-color_hover);
+ }
+ }
+ &:active {
+ @media screen and (min-width: 1100px) {
+ color: var(--o-button-font-color_active);
+ background-color: var(--o-button-bg-color_active);
+ border: var(--o-button-border_active);
+ }
+ }
+ &.is-disabled {
+ color: var(--o-button-font-color_disabled);
+ border: var(--o-button-border_disabled);
+ background-color: var(--o-button-bg-color_disabled);
+ }
+
+ //primary
+ &.o-button-type-primary {
+ color: var(--o-button-font-color-primary);
+ border: var(--o-button-border-primary);
+ background-color: var(--o-button-bg-color-primary);
+
+ &:hover {
+ @media screen and (min-width: 1100px) {
+ border: var(--o-button-border-primary_hover);
+ background-color: var(--o-button-bg-color-primary_hover);
+ }
+ }
+ &:active {
+ @media screen and (min-width: 1100px) {
+ border: var(--o-button-border-primary_active);
+ background-color: var(--o-button-bg-color-primary_active);
+ }
+ }
+ }
+ &.o-button-type-primary.is-disabled {
+ color: var(--o-button-font-color-primary_disabled);
+ border: var(--o-button-border-primary_disabled);
+ background-color: var(--o-button-bg-color-primary_disabled);
+ }
+
+ // secondary
+ &.o-button-type-secondary {
+ color: var(--o-button-font-color-secondary);
+ border: var(--o-button-border-secondary);
+ background-color: var(--o-button-bg-color-secondary);
+ &:hover {
+ border: var(--o-button-border-secondary_hover);
+ background-color: var(--o-button-bg-color-secondary_hover);
+ }
+ &:active {
+ border: var(--o-button-border-secondary_active);
+ background-color: var(--o-button-bg-color-secondary_active);
+ }
+ }
+ &.o-button-type-secondary.is-disabled {
+ color: var(--o-button-font-color-secondary_disabled);
+ border: var(--o-button-border-secondary_disabled);
+ background-color: var(--o-button-bg-color-secondary_disabled);
+ }
+
+ // text
+ &.o-button-type-text {
+ color: var(--o-button-font-color-text);
+ border: var(--o-button-border-text);
+ background-color: var(--o-button-bg-color-text);
+ &:hover {
+ // border: var(--o-button-border-text_hover);
+ // background-color: var(--o-button-bg-color-text_hover);
+ }
+ &:active {
+ // border: var(--o-button-border-text_active);
+ // background-color: var(--o-button-bg-color-text_active);
+ }
+ }
+ &.o-button-type-text.is-disabled {
+ color: var(--o-button-font-color-text_disabled);
+ border: var(--o-button-border-text_disabled);
+ background-color: var(--o-button-bg-color-text_disabled);
+ }
+
+ .prefix-icon {
+ display: inline-flex;
+ align-items: center;
+ margin-right: var(--o-button-icon-margin);
+ font-size: var(--o-button-icon-font-size);
+ transition: all 0.2s linear;
+ }
+
+ .suffix-icon {
+ display: inline-flex;
+ align-items: center;
+ margin-left: var(--o-button-icon-margin);
+ font-size: var(--o-button-icon-font-size);
+ transition: all 0.2s linear;
+ }
+
+ &.animation:hover .prefix-icon {
+ @media screen and (min-width: 1100px) {
+ transform: translate(-4px);
+ }
+ }
+
+ &.animation:hover .suffix-icon {
+ @media screen and (min-width: 1100px) {
+ transform: translate(4px);
+ }
+ }
+
+ &.o-button-size-small {
+ padding: var(--o-button-padding-small);
+ font-size: var(--o-button-font-size-small);
+ line-height: var(--o-button-line-height-small);
+ &.with-prefix {
+ padding-left: var(--o-button-icon-paddding-small);
+ }
+
+ &.with-suffix {
+ padding-right: var(--o-button-icon-paddding-small);
+ }
+
+ .prefix-icon {
+ margin-right: var(--o-button-icon-margin-small);
+ font-size: var(--o-button-icon-font-size-small);
+ }
+
+ .suffix-icon {
+ margin-left: var(--o-button-icon-margin-small);
+ font-size: var(--o-button-icon-font-size-small);
+ }
+ }
+
+ &.o-button-size-mini {
+ padding: var(--o-button-padding-mini);
+ font-size: var(--o-button-font-size-mini);
+ line-height: var(--o-button-line-height-mini);
+
+ &.with-prefix {
+ padding-left: var(--o-button-icon-paddding-mini);
+ }
+
+ &.with-suffix {
+ padding-right: var(--o-button-icon-paddding-mini);
+ }
+
+ .prefix-icon {
+ margin-right: var(--o-button-icon-margin-mini);
+ font-size: var(--o-button-icon-font-size-mini);
+ }
+
+ .suffix-icon {
+ margin-left: var(--o-button-icon-margin-mini);
+ font-size: var(--o-button-icon-font-size-mini);
+ }
+ }
+}
diff --git a/opendesign/button/src/button.tsx b/opendesign/button/src/button.tsx
new file mode 100644
index 0000000..116b113
--- /dev/null
+++ b/opendesign/button/src/button.tsx
@@ -0,0 +1,46 @@
+import { computed, defineComponent, toRefs } from 'vue';
+import { buttonProps, ButtonProps } from './button-types';
+import './button.scss';
+
+export default defineComponent({
+ name: 'OButton',
+ props: buttonProps,
+ emits: ['click'],
+ setup(props: ButtonProps, { emit, slots }) {
+ const { size, type, status, disabled, animation, nativeType } =
+ toRefs(props);
+
+ const classNames = computed(() => ({
+ 'o-button': true,
+ [`o-button-size-${size.value}`]: true,
+ [`o-button-type-${type.value}`]: true,
+ [`o-button-status-${status.value}`]: true,
+ 'with-prefix': slots.prefixIcon,
+ 'with-suffix': slots.suffix,
+ animation: animation.value,
+ 'is-disabled': disabled.value,
+ }));
+
+ const onClick = (e: MouseEvent) => {
+ emit('click', e);
+ };
+
+ return () => {
+ return (
+
+ );
+ };
+ },
+});
diff --git a/opendesign/button/src/var.scss b/opendesign/button/src/var.scss
new file mode 100644
index 0000000..9c99238
--- /dev/null
+++ b/opendesign/button/src/var.scss
@@ -0,0 +1,90 @@
+.o-button {
+ // 文字颜色
+ --o-button-font-color: var(--o-color-brand1);
+ --o-button-font-color-primary: var(--o-color-text2);
+ --o-button-font-color-secondary: var(--o-color-text1);
+ --o-button-font-color-text: var(--o-color-text1);
+ // 文字颜色 hover态,注:只有类型为outline的按钮hover时有文字颜色变化
+ --o-button-font-color_hover: var(--o-color-brand2);
+ // 文字颜色 avtive态,注:只有类型为outline的按钮active时有文字颜色变化
+ --o-button-font-color_active: var(--o-color-brand3);
+ // 文字颜色 disabled态
+ --o-button-font-color_disabled: var(--o-color-brand5);
+ --o-button-font-color-primary_disabled: var(--o-color-text2);
+ --o-button-font-color-secondary_disabled: var(--o-color-text1);
+ --o-button-font-color-text_disabled: var(--o-color-text5);
+
+ // 背景颜色
+ --o-button-bg-color: var(--o-color-transparent);
+ --o-button-bg-color-primary: var(--o-color-brand1);
+ --o-button-bg-color-secondary: var(--o-color-secondary);
+ --o-button-bg-color-text: var(--o-color-transparent);
+ // 背景颜色 hover态
+ --o-button-bg-color_hover: var(--o-color-transparent);
+ --o-button-bg-color-primary_hover: var(--o-color-brand2);
+ --o-button-bg-color-secondary_hover: var(--o-color-secondary_hover);
+ --o-button-bg-color-text_hover: var(--o-color-secondary_hover);
+ // 背景颜色 active态
+ --o-button-bg-color_active: var(--o-color-transparent);
+ --o-button-bg-color-primary_active: var(--o-color-brand3);
+ --o-button-bg-color-secondary_active: var(--o-color-secondary_active);
+ --o-button-bg-color-text_active: var(--o-color-secondary_active);
+ // 背景颜色 disabled态
+ --o-button-bg-color_disabled: var(--o-color-transparent);
+ --o-button-bg-color-primary_disabled: var(--o-color-brand5);
+ --o-button-bg-color-secondary_disabled: var(--o-color-secondary_disabled);
+ --o-button-bg-color-text_disabled: var(--o-color-secondary_disabled);
+
+ // border
+ --o-button-border: 1px solid var(--o-color-brand1);
+ --o-button-border-primary: 1px solid var(--o-color-brand1);
+ --o-button-border-secondary: 1px solid var(--o-color-secondary);
+ --o-button-border-text: 1px solid var(--o-color-transparent);
+ // border hover态
+ --o-button-border_hover: 1px solid var(--o-color-brand2);
+ --o-button-border-primary_hover: 1px solid var(--o-color-brand2);
+ --o-button-border-secondary_hover: 1px solid var(--o-color-secondary_hover);
+ --o-button-border-text_hover: 1px solid var(--o-color-secondary_hover);
+ // border active态
+ --o-button-border_active: 1px solid var(--o-color-brand3);
+ --o-button-border-primary_active: 1px solid var(--o-color-brand3);
+ --o-button-border-secondary_active: 1px solid var(--o-color-secondary_active);
+ --o-button-border-text_active: 1px solid var(--o-color-secondary_active);
+ // border disabled态
+ --o-button-border_disabled: 1px solid var(--o-color-brand5);
+ --o-button-border-primary_disabled: 1px solid var(--o-color-brand5);
+ --o-button-border-secondary_disabled: 1px solid
+ var(--o-color-secondary_disabled);
+ --o-button-border-text_disabled: 1px solid var(--o-color-transparent);
+
+ // font-size
+ --o-button-font-size: var(--o-font-size-h8);
+ --o-button-font-size-small: var(--o-font-size-text);
+ --o-button-font-size-mini: var(--o-font-size-tip);
+
+ // line-height
+ --o-button-line-height: var(--o-line-height-h8);
+ --o-button-line-height-small: var(--o-line-height-text);
+ --o-button-line-height-mini: var(--o-line-height-tip);
+
+ // padding
+ --o-button-padding: 11px 28px;
+ --o-button-padding-small: 9px 28px;
+ --o-button-padding-mini: 6px 16px;
+
+ // icon margin
+ --o-button-icon-margin: 8px;
+ --o-button-icon-margin-small: 8px;
+ --o-button-icon-margin-mini: 4px;
+ // icon font-size
+ --o-button-icon-font-size: var(--o-font-size-h5);
+ --o-button-icon-font-size-small: var(--o-font-size-h8);
+ --o-button-icon-font-size-mini: var(--o-font-size-tip);
+ // icon padding
+ --o-button-icon-paddding: 20px;
+ --o-button-icon-paddding-small: 14px;
+ --o-button-icon-paddding-mini: 6x;
+
+ // animation
+ -o-button-transition: color 0.2s, background-color 0.3s, border 0.3s;
+}
diff --git a/opendesign/card/OCard.vue b/opendesign/card/OCard.vue
new file mode 100644
index 0000000..83c88dc
--- /dev/null
+++ b/opendesign/card/OCard.vue
@@ -0,0 +1,46 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/opendesign/card/index.ts b/opendesign/card/index.ts
new file mode 100644
index 0000000..7a07a1b
--- /dev/null
+++ b/opendesign/card/index.ts
@@ -0,0 +1,7 @@
+import type { App } from 'vue';
+import Card from './OCard.vue';
+Card.install = function (app: App) {
+ app.component('OCard', Card);
+};
+
+export { Card };
diff --git a/opendesign/carousel/index.ts b/opendesign/carousel/index.ts
new file mode 100644
index 0000000..e69de29
diff --git a/opendesign/checkbox/index.ts b/opendesign/checkbox/index.ts
new file mode 100644
index 0000000..4992370
--- /dev/null
+++ b/opendesign/checkbox/index.ts
@@ -0,0 +1,13 @@
+import type { App } from 'vue';
+import Checkbox from './src/checkbox';
+import CheckboxGroup from './src/checkbox-group';
+
+Checkbox.install = function (app: App) {
+ app.component(Checkbox.name, Checkbox);
+};
+
+CheckboxGroup.install = function (app: App) {
+ app.component(CheckboxGroup.name, CheckboxGroup);
+};
+
+export { Checkbox, CheckboxGroup };
diff --git a/opendesign/checkbox/src/checkbox-group-types.ts b/opendesign/checkbox/src/checkbox-group-types.ts
new file mode 100644
index 0000000..608fe1a
--- /dev/null
+++ b/opendesign/checkbox/src/checkbox-group-types.ts
@@ -0,0 +1,28 @@
+import { ExtractDefaultPropTypes, InjectionKey, PropType, Ref } from 'vue';
+
+export const checkboxGroupProps = {
+ // 双向绑定值
+ modelValue: {
+ type: Array as PropType>,
+ default: null,
+ },
+ // 是否禁用
+ disabled: {
+ type: Boolean,
+ default: false,
+ },
+};
+
+export type CheckboxGroupProps = ExtractDefaultPropTypes<
+ typeof checkboxGroupProps
+>;
+
+interface CheckboxGroupInjection {
+ modelValue: Ref>;
+ disabled: Ref;
+ // eslint-disable-next-line no-unused-vars
+ onChange: (val: Array) => void;
+}
+
+export const checkboxGroupKey: InjectionKey =
+ Symbol('OCheckboxGroup');
diff --git a/opendesign/checkbox/src/checkbox-group.scss b/opendesign/checkbox/src/checkbox-group.scss
new file mode 100644
index 0000000..4b7bd0f
--- /dev/null
+++ b/opendesign/checkbox/src/checkbox-group.scss
@@ -0,0 +1,7 @@
+.o-checkbox-group {
+ display: flex;
+ align-items: center;
+ .o-checkbox + .o-checkbox {
+ margin-left: 24px;
+ }
+}
diff --git a/opendesign/checkbox/src/checkbox-group.tsx b/opendesign/checkbox/src/checkbox-group.tsx
new file mode 100644
index 0000000..62bd5f3
--- /dev/null
+++ b/opendesign/checkbox/src/checkbox-group.tsx
@@ -0,0 +1,28 @@
+import { defineComponent, provide, toRefs } from 'vue';
+import {
+ checkboxGroupKey,
+ checkboxGroupProps,
+ CheckboxGroupProps,
+} from './checkbox-group-types';
+import './checkbox-group.scss';
+
+export default defineComponent({
+ name: 'OCheckboxGroup',
+ props: checkboxGroupProps,
+ emits: ['update:modelValue', 'change'],
+ setup(props: CheckboxGroupProps, { emit, slots }) {
+ const { modelValue, disabled } = toRefs(props);
+
+ const onChange = (val: Array) => {
+ emit('update:modelValue', val);
+ emit('change', val);
+ };
+
+ // 注入
+ provide(checkboxGroupKey, { modelValue, disabled, onChange });
+
+ return () => {
+ return {slots.default?.()}
;
+ };
+ },
+});
diff --git a/opendesign/checkbox/src/checkbox-types.ts b/opendesign/checkbox/src/checkbox-types.ts
new file mode 100644
index 0000000..695189b
--- /dev/null
+++ b/opendesign/checkbox/src/checkbox-types.ts
@@ -0,0 +1,27 @@
+import { ExtractDefaultPropTypes, PropType } from 'vue';
+
+export const checkboxProps = {
+ // 双向绑定值
+ modelValue: {
+ type: [String, Number, Boolean] as PropType,
+ default: null,
+ },
+ // value
+ value: {
+ type: [String, Number, Boolean] as PropType,
+ required: true,
+ default: null,
+ },
+ // 是否禁用
+ disabled: {
+ type: Boolean,
+ default: false,
+ },
+ // name
+ name: {
+ type: String,
+ default: '',
+ },
+};
+
+export type CheckboxProps = ExtractDefaultPropTypes;
diff --git a/opendesign/checkbox/src/checkbox.scss b/opendesign/checkbox/src/checkbox.scss
new file mode 100644
index 0000000..14a2037
--- /dev/null
+++ b/opendesign/checkbox/src/checkbox.scss
@@ -0,0 +1,38 @@
+.o-checkbox {
+ display: inline-flex;
+ align-items: center;
+ position: relative;
+ font-size: var(--o-font-size-text);
+ line-height: var(--o-line-height-text);
+ cursor: pointer;
+
+ input[type='checkbox'] {
+ position: absolute;
+ outline: none;
+ z-index: -1;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ opacity: 0;
+ }
+
+ &-icon {
+ width: 16px;
+ height: 16px;
+ border: 1px solid var(--o-color-division1);
+ display: inline-flex;
+ justify-content: center;
+ align-items: center;
+ color: var(--o-color-white);
+ }
+
+ &-label {
+ margin-left: 8px;
+ }
+ &.o-checkbox-checked {
+ .o-checkbox-icon {
+ background-color: var(--o-color-brand1);
+ }
+ }
+}
diff --git a/opendesign/checkbox/src/checkbox.tsx b/opendesign/checkbox/src/checkbox.tsx
new file mode 100644
index 0000000..9b69eb1
--- /dev/null
+++ b/opendesign/checkbox/src/checkbox.tsx
@@ -0,0 +1,102 @@
+import { computed, defineComponent, inject } from 'vue';
+import { checkboxGroupKey } from './checkbox-group-types';
+import { checkboxProps, CheckboxProps } from './checkbox-types';
+import './checkbox.scss';
+
+export default defineComponent({
+ name: 'OCheckbox',
+ props: checkboxProps,
+ emits: ['update:modelValue', 'change'],
+ setup(props: CheckboxProps, { emit, slots }) {
+ const checkboxGroupInjection = inject(checkboxGroupKey, null);
+
+ // 是否禁用
+ const isDisabled = computed(
+ () => checkboxGroupInjection?.disabled.value || props.disabled
+ );
+
+ // 是否选中
+ const isChecked = computed(() =>
+ checkboxGroupInjection
+ ? checkboxGroupInjection.modelValue.value.includes(props.value)
+ : props.value === props.modelValue
+ );
+
+ const onClick = (e: Event) => {
+ e.stopPropagation();
+ };
+
+ const onChange = (e: Event) => {
+ if (isDisabled.value) {
+ return;
+ }
+ const { checked } = e.target as HTMLInputElement;
+ let newValue;
+ if (checkboxGroupInjection) {
+ newValue = [...checkboxGroupInjection.modelValue.value];
+ if (checked) {
+ newValue.push(props.value);
+ } else {
+ newValue = newValue.filter((item) => item !== props.value);
+ }
+
+ checkboxGroupInjection?.onChange(newValue);
+ } else {
+ newValue = props.value;
+ }
+
+ emit('update:modelValue', newValue);
+ emit('change', newValue);
+ };
+
+ const getContent = () => {
+ if (slots.checkbox) {
+ return slots.checkbox({
+ checked: isChecked.value,
+ disabled: isDisabled.value,
+ });
+ } else {
+ return (
+ <>
+
+ {isChecked.value ? (
+
+ ) : (
+ ''
+ )}
+
+ {slots.default?.()}
+ >
+ );
+ }
+ };
+
+ return () => {
+ return (
+
+ );
+ };
+ },
+});
diff --git a/opendesign/collapse/OCollapse.vue b/opendesign/collapse/OCollapse.vue
new file mode 100644
index 0000000..43a600b
--- /dev/null
+++ b/opendesign/collapse/OCollapse.vue
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
diff --git a/opendesign/collapse/OCollapseItem.vue b/opendesign/collapse/OCollapseItem.vue
new file mode 100644
index 0000000..263ccfb
--- /dev/null
+++ b/opendesign/collapse/OCollapseItem.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/opendesign/collapse/index.ts b/opendesign/collapse/index.ts
new file mode 100644
index 0000000..bccdd91
--- /dev/null
+++ b/opendesign/collapse/index.ts
@@ -0,0 +1,10 @@
+import type { App } from 'vue';
+import Collapse from './OCollapse.vue';
+import CollapseItem from './OCollapseItem.vue';
+Collapse.install = function (app: App) {
+ app.component('OCollapse', Collapse);
+};
+CollapseItem.install = function (app: App) {
+ app.component('OCollapseItem', CollapseItem);
+};
+export { Collapse, CollapseItem };
diff --git a/opendesign/container/index.ts b/opendesign/container/index.ts
new file mode 100644
index 0000000..d4355f5
--- /dev/null
+++ b/opendesign/container/index.ts
@@ -0,0 +1,8 @@
+import type { App } from 'vue';
+import Container from './src/container';
+
+Container.install = function (app: App) {
+ app.component(Container.name, Container);
+};
+
+export { Container };
diff --git a/opendesign/container/src/container-types.ts b/opendesign/container/src/container-types.ts
new file mode 100644
index 0000000..8f97141
--- /dev/null
+++ b/opendesign/container/src/container-types.ts
@@ -0,0 +1,18 @@
+import { ExtractDefaultPropTypes, PropType } from 'vue';
+
+type ContainerLevelIndex = 1 | 2 | 3 | 4 | 5;
+
+export const containerProps = {
+ // 层级
+ levelIndex: {
+ type: Number as PropType,
+ default: 2,
+ },
+ // 是否有阴影
+ shadow: {
+ type: Boolean,
+ default: true,
+ },
+};
+
+export type ContainerProps = ExtractDefaultPropTypes;
diff --git a/opendesign/container/src/container.scss b/opendesign/container/src/container.scss
new file mode 100644
index 0000000..b6a8bcd
--- /dev/null
+++ b/opendesign/container/src/container.scss
@@ -0,0 +1,31 @@
+@import './var.scss';
+
+.o-container {
+ &-level1 {
+ background-color: var(--o-container-bg-color-level1);
+ box-shadow: var(--o-container-shadow-level1);
+ }
+ &-level2 {
+ background-color: var(--o-container-bg-color-level2);
+ box-shadow: var(--o-container-shadow-level2);
+
+ &:hover {
+ @media screen and (min-width: 1100px) {
+ background-color: var(--o-container-bg-color-level2_hover);
+ box-shadow: var(--o-container-shadow-level2_hover);
+ }
+ }
+ }
+ &-level3 {
+ background-color: var(--o-container-bg-color-level3);
+ box-shadow: var(--o-container-shadow-level3);
+ }
+ &-level4 {
+ background-color: var(--o-container-bg-color-level4);
+ box-shadow: var(--o-container-shadow-level4);
+ }
+ &-level5 {
+ background-color: var(--o-container-bg-color-level5);
+ box-shadow: var(--o-container-shadow-level5);
+ }
+}
diff --git a/opendesign/container/src/container.tsx b/opendesign/container/src/container.tsx
new file mode 100644
index 0000000..bba10b2
--- /dev/null
+++ b/opendesign/container/src/container.tsx
@@ -0,0 +1,17 @@
+import { defineComponent } from 'vue';
+import { containerProps, ContainerProps } from './container-types';
+import './container.scss';
+
+export default defineComponent({
+ name: 'OContainer',
+ props: containerProps,
+ setup(props: ContainerProps, { slots }) {
+ return () => {
+ return (
+
+ {slots.default?.()}
+
+ );
+ };
+ },
+});
diff --git a/opendesign/container/src/var.scss b/opendesign/container/src/var.scss
new file mode 100644
index 0000000..31dbca7
--- /dev/null
+++ b/opendesign/container/src/var.scss
@@ -0,0 +1,17 @@
+.o-container {
+ // 背景颜色
+ --o-container-bg-color-level1: var(--o-color-fill1);
+ --o-container-bg-color-level2: var(--o-color-fill2);
+ --o-container-bg-color-level2_hover: var(--o-color-fill2_hover);
+ --o-container-bg-color-level3: var(--o-color-fill3);
+ --o-container-bg-color-level4: var(--o-color-fill4);
+ --o-container-bg-color-level5: var(--o-color-fill5);
+
+ // 阴影
+ --o-container-shadow-level1: var(--o-shadow-l1);
+ --o-container-shadow-level2: var(--o-shadow-l2);
+ --o-container-shadow-level2_hover: var(--o-shadow-l2_hover);
+ --o-container-shadow-level3: var(--o-shadow-l3);
+ --o-container-shadow-level4: var(--o-shadow-l4);
+ --o-container-shadow-level5: var(--o-shadow-l5);
+}
diff --git a/opendesign/dialog/ODialog.vue b/opendesign/dialog/ODialog.vue
new file mode 100644
index 0000000..dddf034
--- /dev/null
+++ b/opendesign/dialog/ODialog.vue
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/opendesign/dialog/index.ts b/opendesign/dialog/index.ts
new file mode 100644
index 0000000..f573583
--- /dev/null
+++ b/opendesign/dialog/index.ts
@@ -0,0 +1,7 @@
+import type { App } from 'vue';
+import Dialog from './ODialog.vue';
+
+Dialog.install = function (app: App) {
+ app.component('ODialog', Dialog);
+};
+export { Dialog };
diff --git a/opendesign/drawer/ODrawer.vue b/opendesign/drawer/ODrawer.vue
new file mode 100644
index 0000000..136ac53
--- /dev/null
+++ b/opendesign/drawer/ODrawer.vue
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/opendesign/drawer/index.ts b/opendesign/drawer/index.ts
new file mode 100644
index 0000000..fb09bdd
--- /dev/null
+++ b/opendesign/drawer/index.ts
@@ -0,0 +1,7 @@
+import type { App } from 'vue';
+import Drawer from './ODrawer.vue';
+
+Drawer.install = function (app: App) {
+ app.component('ODrawer', Drawer);
+};
+export { Drawer };
diff --git a/opendesign/dropdown/ODropdown.vue b/opendesign/dropdown/ODropdown.vue
new file mode 100644
index 0000000..ed9f557
--- /dev/null
+++ b/opendesign/dropdown/ODropdown.vue
@@ -0,0 +1,140 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/opendesign/dropdown/ODropdownitem.vue b/opendesign/dropdown/ODropdownitem.vue
new file mode 100644
index 0000000..8423d3b
--- /dev/null
+++ b/opendesign/dropdown/ODropdownitem.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/opendesign/dropdown/index.ts b/opendesign/dropdown/index.ts
new file mode 100644
index 0000000..0b8b4bb
--- /dev/null
+++ b/opendesign/dropdown/index.ts
@@ -0,0 +1,12 @@
+import type { App } from 'vue';
+import Dropdown from './ODropdown.vue';
+import DropdownItem from './ODropdownitem.vue';
+
+Dropdown.install = function (app: App) {
+ app.component('ODropdown', Dropdown);
+};
+DropdownItem.install = function (app: App) {
+ app.component('ODropdownItem', DropdownItem);
+};
+
+export { Dropdown, DropdownItem };
diff --git a/opendesign/icon/OIcon.vue b/opendesign/icon/OIcon.vue
new file mode 100644
index 0000000..5bd32fa
--- /dev/null
+++ b/opendesign/icon/OIcon.vue
@@ -0,0 +1,16 @@
+
+
+
+
+
+
diff --git a/opendesign/icon/index.ts b/opendesign/icon/index.ts
new file mode 100644
index 0000000..d2a3f0c
--- /dev/null
+++ b/opendesign/icon/index.ts
@@ -0,0 +1,8 @@
+import type { App } from 'vue';
+import Icon from './OIcon.vue';
+
+Icon.install = function (app: App) {
+ app.component('OIcon', Icon);
+};
+
+export { Icon };
diff --git a/opendesign/index.ts b/opendesign/index.ts
new file mode 100644
index 0000000..97e655d
--- /dev/null
+++ b/opendesign/index.ts
@@ -0,0 +1,61 @@
+import type { App } from 'vue';
+
+import './style/variable.scss';
+
+import { Button } from './button';
+import { Radio, RadioGroup } from './radio';
+import { Checkbox, CheckboxGroup } from './checkbox';
+import { Select } from './select';
+
+import { Icon } from './icon';
+import { Card } from './card';
+import { Tag } from './tag';
+import { Tabs, TabPane } from './tabs';
+import { Input } from './input';
+import { Tree } from './tree';
+import { Pagination } from './pagination';
+import { Table, TableColumn } from './table';
+import { Timeline } from './timeline';
+import { Search } from './search';
+import { Drawer } from './drawer';
+import { Switch } from './switch';
+import { Collapse, CollapseItem } from './collapse';
+import { Container } from './container';
+import { Dialog } from './dialog';
+import { Dropdown, DropdownItem } from './dropdown';
+
+const components = [
+ Button,
+ Radio,
+ RadioGroup,
+ Checkbox,
+ CheckboxGroup,
+ Select,
+ Icon,
+ Card,
+ Pagination,
+ Table,
+ TableColumn,
+ Tag,
+ Timeline,
+ Input,
+ Tabs,
+ TabPane,
+ Tree,
+ Search,
+ Drawer,
+ Switch,
+ Collapse,
+ CollapseItem,
+ Container,
+ Dropdown,
+ DropdownItem,
+ Dialog,
+];
+export default {
+ install(app: App): void {
+ components.forEach((component) => {
+ app.use(component as any);
+ });
+ },
+};
diff --git a/opendesign/input/OInput.vue b/opendesign/input/OInput.vue
new file mode 100644
index 0000000..c29c500
--- /dev/null
+++ b/opendesign/input/OInput.vue
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/opendesign/input/index.ts b/opendesign/input/index.ts
new file mode 100644
index 0000000..dd41787
--- /dev/null
+++ b/opendesign/input/index.ts
@@ -0,0 +1,7 @@
+import type { App } from 'vue';
+import Input from './OInput.vue';
+Input.install = function (app: App) {
+ app.component('OInput', Input);
+};
+
+export { Input };
diff --git a/opendesign/package.json b/opendesign/package.json
new file mode 100644
index 0000000..5af3bca
--- /dev/null
+++ b/opendesign/package.json
@@ -0,0 +1,9 @@
+{
+ "name": "opendesign",
+ "version": "0.0.1",
+ "description": "opendesign components",
+ "main": "index.ts",
+ "dependencies": {
+ "vue": "^3.2.33"
+ }
+}
diff --git a/opendesign/pagination/OPagination.vue b/opendesign/pagination/OPagination.vue
new file mode 100644
index 0000000..f4b7922
--- /dev/null
+++ b/opendesign/pagination/OPagination.vue
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
diff --git a/opendesign/pagination/index.ts b/opendesign/pagination/index.ts
new file mode 100644
index 0000000..e90ec8c
--- /dev/null
+++ b/opendesign/pagination/index.ts
@@ -0,0 +1,7 @@
+import type { App } from 'vue';
+import Pagination from './OPagination.vue';
+Pagination.install = function (app: App) {
+ app.component('OPagination', Pagination);
+};
+
+export { Pagination };
\ No newline at end of file
diff --git a/opendesign/radio/index.ts b/opendesign/radio/index.ts
new file mode 100644
index 0000000..35f2f2c
--- /dev/null
+++ b/opendesign/radio/index.ts
@@ -0,0 +1,13 @@
+import type { App } from 'vue';
+import Radio from './src/radio';
+import RadioGroup from './src/radio-group';
+
+Radio.install = function (app: App) {
+ app.component(Radio.name, Radio);
+};
+
+RadioGroup.install = function (app: App) {
+ app.component(RadioGroup.name, RadioGroup);
+};
+
+export { Radio, RadioGroup };
diff --git a/opendesign/radio/src/radio-group-types.ts b/opendesign/radio/src/radio-group-types.ts
new file mode 100644
index 0000000..2085a68
--- /dev/null
+++ b/opendesign/radio/src/radio-group-types.ts
@@ -0,0 +1,26 @@
+import { ExtractDefaultPropTypes, InjectionKey, PropType, Ref } from 'vue';
+
+export const radioGroupProps = {
+ // 双向绑定值
+ modelValue: {
+ type: [String, Number, Boolean] as PropType,
+ default: null,
+ },
+ // 是否禁用
+ disabled: {
+ type: Boolean,
+ default: false,
+ },
+};
+
+export type RadioGroupProps = ExtractDefaultPropTypes;
+
+interface RadioGroupInjection {
+ modelValue: Ref;
+ disabled: Ref;
+ // eslint-disable-next-line no-unused-vars
+ onChange: (val: string | number | boolean) => void;
+}
+
+export const radioGroupKey: InjectionKey =
+ Symbol('ORadioGroup');
diff --git a/opendesign/radio/src/radio-group.scss b/opendesign/radio/src/radio-group.scss
new file mode 100644
index 0000000..e74b34f
--- /dev/null
+++ b/opendesign/radio/src/radio-group.scss
@@ -0,0 +1,7 @@
+.o-radio-group {
+ display: flex;
+ align-items: center;
+ .o-radio + .o-radio {
+ margin-left: 24px;
+ }
+}
diff --git a/opendesign/radio/src/radio-group.tsx b/opendesign/radio/src/radio-group.tsx
new file mode 100644
index 0000000..1dd0aa0
--- /dev/null
+++ b/opendesign/radio/src/radio-group.tsx
@@ -0,0 +1,28 @@
+import { defineComponent, provide, toRefs } from 'vue';
+import {
+ radioGroupKey,
+ radioGroupProps,
+ RadioGroupProps,
+} from './radio-group-types';
+import './radio-group.scss';
+
+export default defineComponent({
+ name: 'ORadioGroup',
+ props: radioGroupProps,
+ emits: ['update:modelValue', 'change'],
+ setup(props: RadioGroupProps, { emit, slots }) {
+ const { modelValue, disabled } = toRefs(props);
+
+ const onChange = (val: string | number | boolean) => {
+ emit('update:modelValue', val);
+ emit('change', val);
+ };
+
+ // 注入
+ provide(radioGroupKey, { modelValue, disabled, onChange });
+
+ return () => {
+ return {slots.default?.()}
;
+ };
+ },
+});
diff --git a/opendesign/radio/src/radio-types.ts b/opendesign/radio/src/radio-types.ts
new file mode 100644
index 0000000..19920b6
--- /dev/null
+++ b/opendesign/radio/src/radio-types.ts
@@ -0,0 +1,22 @@
+import { ExtractDefaultPropTypes, PropType } from 'vue';
+
+export const radioProps = {
+ // 双向绑定值
+ modelValue: {
+ type: [String, Number, Boolean] as PropType,
+ default: null,
+ },
+ // value
+ value: {
+ type: [String, Number, Boolean] as PropType,
+ required: true,
+ default: null,
+ },
+ // 是否禁用
+ disabled: {
+ type: Boolean,
+ default: false,
+ },
+};
+
+export type RadioProps = ExtractDefaultPropTypes;
diff --git a/opendesign/radio/src/radio.scss b/opendesign/radio/src/radio.scss
new file mode 100644
index 0000000..d3eed8f
--- /dev/null
+++ b/opendesign/radio/src/radio.scss
@@ -0,0 +1,54 @@
+.o-radio {
+ display: inline-flex;
+ align-items: center;
+ position: relative;
+ font-size: var(--o-font-size-text);
+ line-height: var(--o-line-height-text);
+ cursor: pointer;
+
+ input[type='radio'] {
+ position: absolute;
+ outline: none;
+ z-index: -1;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ opacity: 0;
+ }
+
+ &-icon {
+ position: relative;
+ display: inline-block;
+ border-radius: 50%;
+ width: 18px;
+ height: 18px;
+ background: #fff;
+ border: 1px solid #979797;
+
+ &::after {
+ content: '';
+ position: absolute;
+ left: 50%;
+ top: 50%;
+ transform: translate(-50%, -50%);
+ width: 12px;
+ height: 12px;
+ border-radius: 50%;
+ background-color: transparent;
+ transition: background-color 0.3s;
+ }
+ }
+
+ &-label {
+ margin-left: 8px;
+ }
+
+ &.o-radio-checked {
+ .o-radio-icon {
+ &::after {
+ background-color: var(--o-color-brand1);
+ }
+ }
+ }
+}
diff --git a/opendesign/radio/src/radio.tsx b/opendesign/radio/src/radio.tsx
new file mode 100644
index 0000000..e07ce02
--- /dev/null
+++ b/opendesign/radio/src/radio.tsx
@@ -0,0 +1,73 @@
+import { computed, defineComponent, inject } from 'vue';
+import { radioGroupKey } from './radio-group-types';
+import { radioProps, RadioProps } from './radio-types';
+import './radio.scss';
+
+export default defineComponent({
+ name: 'ORadio',
+ props: radioProps,
+ emits: ['update:modelValue', 'change'],
+ setup(props: RadioProps, { emit, slots }) {
+ const radioGroupInjection = inject(radioGroupKey, null);
+
+ // 是否禁用
+ const isDisabled = computed(
+ () => radioGroupInjection?.disabled.value || props.disabled
+ );
+
+ // 是否选中
+ const isChecked = computed(
+ () =>
+ props.value ===
+ (radioGroupInjection
+ ? radioGroupInjection.modelValue.value
+ : props.modelValue)
+ );
+
+ const onClick = (e: Event) => {
+ e.stopPropagation();
+ };
+
+ const onChange = () => {
+ if (isDisabled.value) {
+ return;
+ }
+
+ const val = props.value;
+ radioGroupInjection?.onChange(val);
+ emit('update:modelValue', val);
+ emit('change', val);
+ };
+
+ const getContent = () => {
+ if (slots.radio) {
+ return slots.radio({
+ checked: isChecked.value,
+ disabled: isDisabled.value,
+ });
+ } else {
+ return (
+ <>
+
+ {slots.default?.()}
+ >
+ );
+ }
+ };
+
+ return () => {
+ return (
+
+ );
+ };
+ },
+});
diff --git a/opendesign/radio/src/var.scss b/opendesign/radio/src/var.scss
new file mode 100644
index 0000000..ad6c104
--- /dev/null
+++ b/opendesign/radio/src/var.scss
@@ -0,0 +1,6 @@
+.o-radio {
+ --o-radio-font-size: var(--o-font-size-text);
+ --o-radio-line-height: var(--o-line-height-text);
+ --o-radio-icon-width: 18px;
+ --o-radio-icon-height: 18px;
+}
diff --git a/opendesign/search/OSearch.vue b/opendesign/search/OSearch.vue
new file mode 100644
index 0000000..731ba44
--- /dev/null
+++ b/opendesign/search/OSearch.vue
@@ -0,0 +1,80 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/opendesign/search/index.ts b/opendesign/search/index.ts
new file mode 100644
index 0000000..119d1b7
--- /dev/null
+++ b/opendesign/search/index.ts
@@ -0,0 +1,7 @@
+import type { App } from 'vue';
+import Search from './OSearch.vue';
+Search.install = function (app: App) {
+ app.component('OSearch', Search);
+};
+
+export { Search };
diff --git a/opendesign/select/OOption.vue b/opendesign/select/OOption.vue
new file mode 100644
index 0000000..96d713b
--- /dev/null
+++ b/opendesign/select/OOption.vue
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
diff --git a/opendesign/select/OSelect.vue b/opendesign/select/OSelect.vue
new file mode 100644
index 0000000..1a313ff
--- /dev/null
+++ b/opendesign/select/OSelect.vue
@@ -0,0 +1,189 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/opendesign/select/index.ts b/opendesign/select/index.ts
new file mode 100644
index 0000000..55fc044
--- /dev/null
+++ b/opendesign/select/index.ts
@@ -0,0 +1,11 @@
+import type { App } from 'vue';
+import Select from './OSelect.vue';
+// import Option from './OOption.vue';
+Select.install = function (app: App) {
+ app.component('OSelect', Select);
+};
+// Option.install = function (app: App) {
+// app.component('OOption', Option);
+// };
+
+export { Select };
diff --git a/opendesign/select/src/select-types.ts b/opendesign/select/src/select-types.ts
new file mode 100644
index 0000000..307d3a4
--- /dev/null
+++ b/opendesign/select/src/select-types.ts
@@ -0,0 +1,10 @@
+import { ExtractDefaultPropTypes, PropType } from 'vue';
+
+export const selectProps = {
+ // 双向绑定值
+ modelValue: {
+ type: [String, Number, Boolean] as PropType,
+ },
+};
+
+export type SelectProps = ExtractDefaultPropTypes;
diff --git a/opendesign/select/src/select.tsx b/opendesign/select/src/select.tsx
new file mode 100644
index 0000000..5cb2ef6
--- /dev/null
+++ b/opendesign/select/src/select.tsx
@@ -0,0 +1,16 @@
+// import { defineComponent } from 'vue';
+// import { selectProps } from './select-types';
+
+// export default defineComponent({
+// name: 'OSelect',
+// props: selectProps,
+// setup() {
+// return () => {
+// return (
+//
+//
+//
+// );
+// };
+// },
+// });
diff --git a/opendesign/style/_animation.scss b/opendesign/style/_animation.scss
new file mode 100644
index 0000000..e69de29
diff --git a/opendesign/style/_color.scss b/opendesign/style/_color.scss
new file mode 100644
index 0000000..2d7e2d3
--- /dev/null
+++ b/opendesign/style/_color.scss
@@ -0,0 +1,167 @@
+// 颜色
+:root {
+ /**
+ * 基础色盘
+ */
+
+ // 交通紫
+ --o-color-trafficpurple1: #2d0a60;
+ --o-color-trafficpurple2: #420f8e;
+ --o-color-trafficpurple3: #5813bc;
+ --o-color-trafficpurple4: #6e1be8;
+ --o-color-trafficpurple5: #7d32ea;
+ --o-color-trafficpurple6: #ba3ff7;
+ --o-color-trafficpurple7: #a358ff;
+ --o-color-trafficpurple8: #bd72ff;
+ --o-color-trafficpurple9: #d68bff;
+ --o-color-trafficpurple10: #e1abff;
+
+ // 中性色
+ --o-color-neutral1: #121212;
+ --o-color-neutral2: #151515;
+ --o-color-neutral3: #2d2d2d;
+ --o-color-neutral4: #3f3f3f;
+ --o-color-neutral5: #555555;
+ --o-color-neutral6: #707070;
+ --o-color-neutral7: #848484;
+ --o-color-neutral8: #999999;
+ --o-color-neutral9: #b2b2b2;
+ --o-color-neutral10: #cccccc;
+ --o-color-neutral11: #e5e5e5;
+
+ // 红色
+ --o-color-red1: #850d09;
+ --o-color-red2: #b4110c;
+ --o-color-red3: #e4160f;
+ --o-color-red4: #f13b35;
+ --o-color-red5: #f3524d;
+ --o-color-red6: #ff5f5a;
+ --o-color-red7: #ff7873;
+ --o-color-red8: #ff928d;
+ --o-color-red9: #ffaba6;
+ --o-color-red10: #fabab8;
+
+ // 黄色
+ --o-color-yellow1: #754c01;
+ --o-color-yellow2: #a86d01;
+ --o-color-yellow3: #dabe01;
+ --o-color-yellow4: #feaa11;
+ --o-color-yellow5: #feb32a;
+ --o-color-yellow6: #ffc037;
+ --o-color-yellow7: #ffd950;
+ --o-color-yellow8: #fff36a;
+ --o-color-yellow9: #ffff83;
+ --o-color-yellow10: #ffe1aa;
+
+ // 绿色
+ --o-color-green1: #1f370f;
+ --o-color-green2: #355f1a;
+ --o-color-green3: #4b8725;
+ --o-color-green4: #62af30;
+ --o-color-green5: #6dc335;
+ --o-color-green6: #7ad042;
+ --o-color-green7: #93e95b;
+ --o-color-green8: #adff75;
+ --o-color-green9: #c6ff8e;
+ --o-color-green10: #c5e7ae;
+
+ // 橙色
+ --o-color-orange1: #9b370e;
+ --o-color-orange2: #b54f00;
+ --o-color-orange3: #e86600;
+ --o-color-orange4: #ff801c;
+ --o-color-orange5: #ff8e36;
+ --o-color-orange6: #ff9b43;
+ --o-color-orange7: #ffb45c;
+ --o-color-orange8: #ffce76;
+ --o-color-orange9: #ffcf8f;
+ --o-color-orange10: #ffd2af;
+
+ // 灰蓝色
+ --o-color-greyblue1: #e5e8f0;
+ --o-color-greyblue2: #f7f8fa;
+ --o-color-greyblue3: #f5f6f8;
+
+ // 灰黑色
+ --o-color-greyblack1: #1e1e1e;
+ --o-color-greyblack2: #242424;
+ --o-color-greyblack3: #2e2e2e;
+ --o-color-greyblack4: #383838;
+
+ // 白色
+ --o-color-white: #ffffff;
+
+ // 黑色
+ --o-color-black: #000000;
+
+ // 透明
+ --o-color-transparent: transparent;
+
+ /**
+ * 状态颜色 && 功能颜色
+ */
+
+ // 成功色
+ --o-color-success1: var(--o-color-green5); // normal
+ --o-color-success2: var(--o-color-green7); // hover
+ --o-color-success3: var(--o-color-green10); // disabled
+
+ // 告警色
+ --o-color-warning1: var(--o-color-orange5); // normal
+ --o-color-warning2: var(--o-color-orange7); // hover
+ --o-color-warning3: var(--o-color-orange10); // disabled
+
+ // 错误色
+ --o-color-error1: var(--o-color-red5); // normal
+ --o-color-error2: var(--o-color-red7); // hover
+ --o-color-error3: var(--o-color-red10); // disabled
+
+ // 品牌色
+ --o-color-brand1: var(--o-color-trafficpurple5); // 常规、文字
+ --o-color-brand2: var(--o-color-trafficpurple8); // 悬浮
+ --o-color-brand3: var(--o-color-trafficpurple4); // 确认
+ --o-color-brand4: var(--o-color-trafficpurple6); // 特殊场景
+ --o-color-brand5: var(--o-color-trafficpurple10); // 一般禁用
+ --o-color-brand6: var(--o-color-trafficpurple10); // 文字禁用,暂和一般禁用保持一致
+
+ // 文字颜色
+ --o-color-text1: var(--o-color-black); // 强调/正文标题 黑色
+ --o-color-text2: var(--o-color-white); // 强调/正文标题 白色
+ --o-color-text3: var(--o-color-neutral4); // 次强调/正文标题
+ --o-color-text4: var(--o-color-neutral6); // 次要信息/正文
+ --o-color-text5: var(--o-color-neutral11); // 置灰信息
+ --o-color-text-secondary: var(--o-color-neutral5); // 次级文字颜色
+
+ // 背景色
+ --o-color-bg1: var(--o-color-greyblue3); // 整体背景色
+ --o-color-bg2: var(--o-color-white); // 一级容器背景色
+ --o-color-bg3: var(--o-color-greyblue2); // 二级容器背景色
+ --o-color-bg4: var(--o-color-greyblue1); // 三级容器背景色
+ --o-color-bg5: var(--o-color-white); // 弹出框、tooltip背景色
+ --o-color-bg6: rgba(0, 0, 0, 0.5); // 蒙层
+ --o-color-bg-secondary: var(--o-color-neutral11); // 次级颜色背景颜色
+
+ // 链接色
+ --o-color-link1: var(--o-color-trafficpurple5); // 常规
+ --o-color-link2: var(--o-color-trafficpurple8); // 悬浮
+ --o-color-link3: var(--o-color-trafficpurple4); // 点击
+ --o-color-link4: var(--o-color-trafficpurple6); // 特殊场景
+ --o-color-link5: var(--o-color-trafficpurple10); // 一般禁用
+ --o-color-link6: var(--o-color-trafficpurple10); // 文字禁用,暂和一般禁用保持一致
+
+ // 边框颜色
+ --o-color-border1: var(--o-color-neutral6);
+ --o-color-border2: var(--o-color-neutral11);
+ --o-color-border3: var(--o-color-trafficpurple5);
+
+ // 分割线颜色
+ --o-color-division1: var(--o-color-neutral11);
+
+ // 填充色,用于阴影容器背景
+ --o-color-fill1: var(--o-color-white); // SL1 一级投影容器背景,应用于默认状态的卡片、楼层、导航栏、组件里局部投影背景等
+ --o-color-fill2: var(--o-color-white); // SL2 二级投影容器背景,应用于卡片、组件里局部投影等
+ --o-color-fill2_hover: var(--o-color-white); // SL2-hover 升起投影容器背景,应用于悬停状态的卡片等,是SL2的激活态
+ --o-color-fill3: var(--o-color-white); // SL3 三级投影容器背景,应用于一级投影上的卡片、组件等
+ --o-color-fill4: var(--o-color-white); // SL4 覆盖阴影容器背景,应用于信息提示【tips、活动进入按钮等】等投影容器
+ --o-color-fill5: var(--o-color-white); // SL5 弹出阴影容器背景,应用于模态弹窗投影
+}
diff --git a/opendesign/style/_font.scss b/opendesign/style/_font.scss
new file mode 100644
index 0000000..56116fe
--- /dev/null
+++ b/opendesign/style/_font.scss
@@ -0,0 +1,26 @@
+// 字体
+:root {
+ // 字体font-size
+ --o-font-size-h1: 64px;
+ --o-font-size-h2: 54px;
+ --o-font-size-h3: 36px;
+ --o-font-size-h4: 28px;
+ --o-font-size-h5: 24px;
+ --o-font-size-h6: 20px;
+ --o-font-size-h7: 18px;
+ --o-font-size-h8: 16px;
+ --o-font-size-text: 14px;
+ --o-font-size-tip: 12px;
+
+ // 字体line-height
+ --o-line-height-h1: 84px;
+ --o-line-height-h2: 76px;
+ --o-line-height-h3: 48px;
+ --o-line-height-h4: 36px;
+ --o-line-height-h5: 32px;
+ --o-line-height-h6: 28px;
+ --o-line-height-h7: 26px;
+ --o-line-height-h8: 24px;
+ --o-line-height-text: 22px;
+ --o-line-height-tip: 18px;
+}
diff --git a/opendesign/style/_shadow.scss b/opendesign/style/_shadow.scss
new file mode 100644
index 0000000..78dcd8d
--- /dev/null
+++ b/opendesign/style/_shadow.scss
@@ -0,0 +1,9 @@
+// 阴影,注:SL2有hover投影
+:root {
+ --o-shadow-l1: 0 1px 5px rgba(45, 47, 51, 0.1); // SL1 一级投影,应用于楼层、导航栏、组件里局部投影等,
+ --o-shadow-l2: 0 1px 5px rgba(45, 47, 51, 0.1); // SL2-normal 二级投影,应用于卡片、组件里局部投影等
+ --o-shadow-l2_hover: 0 6px 18px rgba(0, 47, 167, 0.14); // SL2-hover 升起投影,应用于悬停状态的卡片等,是SL2的激活态
+ --o-shadow-l3: 0 6px 18px rgba(45, 47, 51, 0.14); // SL3 三级投影,应用于一级投影上的卡片、组件等
+ --o-shadow-l4: 0 10px 32px rgba(45, 47, 51, 0.18); // SL4 覆盖阴影,应用于信息提示【tips、活动进入按钮等】等投影
+ --o-shadow-l5: 0 12px 42px rgba(45, 47, 51, 0.24); // SL5 弹出阴影,应用于模态弹窗投影
+}
diff --git a/opendesign/style/_spacing.scss b/opendesign/style/_spacing.scss
new file mode 100644
index 0000000..e3dcd5b
--- /dev/null
+++ b/opendesign/style/_spacing.scss
@@ -0,0 +1,13 @@
+// 间距
+:root {
+ --o-spacing-h1: 64px;
+ --o-spacing-h2: 40px;
+ --o-spacing-h3: 32px;
+ --o-spacing-h4: 24px;
+ --o-spacing-h5: 16px;
+ --o-spacing-h6: 12px;
+ --o-spacing-h7: 10px;
+ --o-spacing-h8: 8px;
+ --o-spacing-h9: 6px;
+ --o-spacing-h10: 4px;
+}
diff --git a/opendesign/style/variable.scss b/opendesign/style/variable.scss
new file mode 100644
index 0000000..c724272
--- /dev/null
+++ b/opendesign/style/variable.scss
@@ -0,0 +1,4 @@
+@import './_color.scss';
+@import './_shadow.scss';
+@import './_font.scss';
+@import './_spacing.scss';
diff --git a/opendesign/switch/OSwitch.vue b/opendesign/switch/OSwitch.vue
new file mode 100644
index 0000000..ee3fea9
--- /dev/null
+++ b/opendesign/switch/OSwitch.vue
@@ -0,0 +1,30 @@
+
+
+
+
+
+
+
diff --git a/opendesign/switch/index.ts b/opendesign/switch/index.ts
new file mode 100644
index 0000000..ae6cb44
--- /dev/null
+++ b/opendesign/switch/index.ts
@@ -0,0 +1,7 @@
+import type { App } from 'vue';
+import Switch from './OSwitch.vue';
+Switch.install = function (app: App) {
+ app.component('OSwitch', Switch);
+};
+
+export { Switch };
diff --git a/opendesign/table/OTable.vue b/opendesign/table/OTable.vue
new file mode 100644
index 0000000..8978f0a
--- /dev/null
+++ b/opendesign/table/OTable.vue
@@ -0,0 +1,70 @@
+
+
+
+
+
+
+
+
+
diff --git a/opendesign/table/OTableColumn.vue b/opendesign/table/OTableColumn.vue
new file mode 100644
index 0000000..982cabe
--- /dev/null
+++ b/opendesign/table/OTableColumn.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
diff --git a/opendesign/table/index.ts b/opendesign/table/index.ts
new file mode 100644
index 0000000..839f04b
--- /dev/null
+++ b/opendesign/table/index.ts
@@ -0,0 +1,10 @@
+import type { App } from 'vue';
+import Table from './OTable.vue';
+import TableColumn from './OTableColumn.vue';
+Table.install = function (app: App) {
+ app.component('OTable', Table);
+};
+TableColumn.install = function (app: App) {
+ app.component('OTableColumn', TableColumn);
+};
+export { Table, TableColumn };
diff --git a/opendesign/tabs/OTabPane.vue b/opendesign/tabs/OTabPane.vue
new file mode 100644
index 0000000..074a678
--- /dev/null
+++ b/opendesign/tabs/OTabPane.vue
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
diff --git a/opendesign/tabs/OTabs.vue b/opendesign/tabs/OTabs.vue
new file mode 100644
index 0000000..512563e
--- /dev/null
+++ b/opendesign/tabs/OTabs.vue
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
diff --git a/opendesign/tabs/index.ts b/opendesign/tabs/index.ts
new file mode 100644
index 0000000..7de648b
--- /dev/null
+++ b/opendesign/tabs/index.ts
@@ -0,0 +1,11 @@
+import type { App } from 'vue';
+import Tabs from './OTabs.vue';
+import TabPane from './OTabPane.vue';
+Tabs.install = function (app: App) {
+ app.component('OTabs', Tabs);
+};
+TabPane.install = function (app: App) {
+ app.component('OTabPane', TabPane);
+};
+
+export { Tabs, TabPane };
diff --git a/opendesign/tag/index.ts b/opendesign/tag/index.ts
new file mode 100644
index 0000000..e966d8f
--- /dev/null
+++ b/opendesign/tag/index.ts
@@ -0,0 +1,8 @@
+import type { App } from 'vue';
+import Tag from './src/tag';
+
+Tag.install = function (app: App) {
+ app.component(Tag.name, Tag);
+};
+
+export { Tag };
diff --git a/opendesign/tag/src/tag-types.ts b/opendesign/tag/src/tag-types.ts
new file mode 100644
index 0000000..e2021f6
--- /dev/null
+++ b/opendesign/tag/src/tag-types.ts
@@ -0,0 +1,25 @@
+import { ExtractDefaultPropTypes, PropType } from 'vue';
+import { SizeType } from '../../_utils/common';
+
+type TagType = 'outline' | 'primary' | 'secondary' | 'text';
+
+export const tagProps = {
+ size: {
+ type: String as PropType,
+ default: 'medium',
+ },
+ type: {
+ type: String as PropType,
+ default: 'outline',
+ },
+ checked: {
+ type: Boolean,
+ default: false,
+ },
+ checkable: {
+ type: Boolean,
+ default: false,
+ },
+};
+
+export type TagProps = ExtractDefaultPropTypes;
diff --git a/opendesign/tag/src/tag.scss b/opendesign/tag/src/tag.scss
new file mode 100644
index 0000000..546986d
--- /dev/null
+++ b/opendesign/tag/src/tag.scss
@@ -0,0 +1,99 @@
+@import './var.scss';
+
+.o-tag {
+ padding: var(--o-tag-padding);
+ font-size: var(--o-tag-font-size);
+ line-height: var(--o-tag-line-height);
+ color: var(--o-tag-font-color);
+ border: var(--o-tag-border);
+ outline: none;
+ user-select: none;
+ cursor: default;
+ display: inline-block;
+
+ &:active {
+ @media screen and (min-width: 1100px) {
+ color: var(--o-tag-font-color_active);
+ border: var(--o-tag-font-color_active);
+ }
+ }
+
+ &.o-tag-type-primary {
+ color: var(--o-tag-font-color-primary);
+ border: var(--o-tag-border-primary);
+ &:hover {
+ @media screen and (min-width: 1100px) {
+ color: var(--o-color-brand2);
+ border: var(--o-tag-border-primary_hover);
+ }
+ }
+ &.o-tag-checked {
+ position: relative;
+ .checked-icon {
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ width: 16px;
+ height: 16px;
+ &::after {
+ border: 8px solid transparent;
+ border-right: 8px solid var(--o-color-brand1);
+ border-bottom: 8px solid var(--o-color-brand1);
+ content: '';
+ width: 16px;
+ height: 16px;
+ position: absolute;
+ bottom: -1px;
+ right: -1px;
+ display: block;
+ z-index: 1;
+ }
+ svg {
+ width: 9px;
+ height: 9px;
+ color: #fff;
+ display: block;
+ position: absolute;
+ bottom: 0;
+ right: 0;
+ z-index: 2;
+ }
+ }
+ }
+ }
+ &.o-tag-checkable {
+ cursor: pointer;
+ }
+ &.o-tag-type-secondary {
+ color: var(--o-tag-font-color-secondary);
+ border: var(--o-tag-border-secondary);
+ line-height: var(--o-tag-small-line-height);
+ padding: var(--o-tag-secondary-padding);
+ background: var(--o-tag-bg-color-secondary);
+ }
+
+ &.o-tag-type-text {
+ color: var(--o-tag-font-color);
+ border: var(--o-tag-border-text);
+ background: none;
+ &:hover,
+ &:active {
+ @media screen and (min-width: 1100px) {
+ color: var(--o-tag-font-color_hover);
+ }
+ }
+ }
+ &.o-tag-size-small {
+ padding: var(--o-tag-small-padding);
+ font-size: var(--o-tag-small-font-size);
+ line-height: var(--o-tag-small-line-height);
+
+ &:hover,
+ &:active {
+ @media screen and (min-width: 1100px) {
+ color: var(--o-tag-font-color);
+ border: var(--o-tag-border);
+ }
+ }
+ }
+}
diff --git a/opendesign/tag/src/tag.tsx b/opendesign/tag/src/tag.tsx
new file mode 100644
index 0000000..6db151c
--- /dev/null
+++ b/opendesign/tag/src/tag.tsx
@@ -0,0 +1,50 @@
+import { computed, defineComponent, toRefs } from 'vue';
+import { tagProps, TagProps } from './tag-types';
+import './tag.scss';
+
+export default defineComponent({
+ name: 'OTag',
+ props: tagProps,
+ emits: ['click'],
+ setup(props: TagProps, { emit, slots }) {
+ const { size, type, checked, checkable } = toRefs(props);
+
+ const classNames = computed(() => {
+ return {
+ 'o-tag': true,
+ [`o-tag-size-${size.value}`]: true,
+ [`o-tag-type-${type.value}`]: true,
+ 'o-tag-checked': checked.value,
+ 'o-tag-checkable': checkable.value,
+ };
+ });
+
+ const onClick = (e: MouseEvent) => {
+ emit('click', e);
+ };
+
+ return () => {
+ return (
+
+ {slots.default?.()}
+ {checked.value && type.value === 'primary' && (
+
+
+
+ )}
+
+ );
+ };
+ },
+});
diff --git a/opendesign/tag/src/var.scss b/opendesign/tag/src/var.scss
new file mode 100644
index 0000000..0facd39
--- /dev/null
+++ b/opendesign/tag/src/var.scss
@@ -0,0 +1,49 @@
+.o-tag {
+ // 文字颜色
+ --o-tag-font-color: var(--o-color-text4);
+ --o-tag-font-color-primary: var(--o-color-brand1);
+ --o-tag-font-color-secondary: var(--o-color-text3);
+ // 文字颜色 hover态,注:只有类型为outline的按钮hover时有文字颜色变化
+ --o-tag-font-color_hover: var(--o-color-brand2);
+ // 文字颜色 avtive态,注:只有类型为outline的按钮active时有文字颜色变化
+ --o-tag-font-color_active: var(--o-color-brand3);
+
+ // 背景颜色
+ --o-tag-bg-color: var(--o-color-transparent);
+ --o-tag-bg-color-primary: var(--o-color-brand1);
+ --o-tag-bg-color-secondary: var(--o-color-secondary);
+ --o-tag-bg-color-text: var(--o-color-transparent);
+
+ // 背景颜色 hover态
+ --o-tag-bg-color_hover: var(--o-color-transparent);
+ --o-tag-bg-color-primary_hover: var(--o-color-brand2);
+
+ // 背景颜色 active态
+ --o-tag-bg-color_active: var(--o-color-transparent);
+ --o-tag-bg-color-primary_active: var(--o-color-brand3);
+
+ // border
+ --o-tag-border: 1px solid var(--o-color-border1);
+ --o-tag-border-primary: 1px solid var(--o-color-brand1);
+ --o-tag-border-secondary: 1px solid var(--o-color-transparent);
+ --o-tag-border-text: 1px solid var(--o-color-transparent);
+ // border hover态
+ --o-tag-border_hover: 1px solid var(--o-color-brand2);
+ --o-tag-border-primary_hover: 1px solid var(--o-color-brand2);
+
+ // font-size
+ --o-tag-font-size: var(--o-font-size-text);
+ --o-tag-small-font-size: var(--o-font-size-tip);
+
+ // line-height
+ --o-tag-line-height: var(--o-line-height-text);
+ --o-tag-small-line-height: var(--o-line-height-tip);
+
+ // padding
+ --o-tag-padding: 3px 12px;
+ --o-tag-small-padding: 0 8px;
+ --o-tag-secondary-padding: 2px 4px;
+
+ // 特殊背景
+ --o-tag-bg-color-secondary: linear-gradient(225deg, #feb32a 0%, #f6d365 100%);
+}
diff --git a/opendesign/timeline/index.ts b/opendesign/timeline/index.ts
new file mode 100644
index 0000000..742ea80
--- /dev/null
+++ b/opendesign/timeline/index.ts
@@ -0,0 +1,8 @@
+import type { App } from 'vue';
+import Timeline from './src/timeline';
+
+Timeline.install = function (app: App) {
+ app.component(Timeline.name, Timeline);
+};
+
+export { Timeline };
diff --git a/opendesign/timeline/src/timeline-types.ts b/opendesign/timeline/src/timeline-types.ts
new file mode 100644
index 0000000..6b400ff
--- /dev/null
+++ b/opendesign/timeline/src/timeline-types.ts
@@ -0,0 +1,18 @@
+import { ExtractDefaultPropTypes } from 'vue';
+
+export const timelineProps = {
+ leftArrow: {
+ type: Boolean,
+ default: true,
+ },
+ rightArrow: {
+ type: Boolean,
+ default: true,
+ },
+ modelValue: {
+ type: String,
+ default: '',
+ },
+};
+
+export type TimelineProps = ExtractDefaultPropTypes;
diff --git a/opendesign/timeline/src/timeline.scss b/opendesign/timeline/src/timeline.scss
new file mode 100644
index 0000000..f019985
--- /dev/null
+++ b/opendesign/timeline/src/timeline.scss
@@ -0,0 +1,73 @@
+@import './var.scss';
+.o-timeline {
+ position: relative;
+
+ &-list {
+ display: flex;
+ justify-content: space-evenly;
+ position: relative;
+
+ &::after {
+ width: 100%;
+ height: 2px;
+ background-color: var(--o-timeline-background-color);
+ content: '';
+ display: block;
+ position: absolute;
+ top: 43px;
+ z-index: 2;
+ }
+ }
+
+ &-item {
+ position: relative;
+ z-index: 3;
+ list-style: none;
+ text-align: center;
+ cursor: pointer;
+ }
+
+ &-day {
+ font-size: var(--o-timeline-font-size);
+ color: var(--o-timeline-font-color);
+ line-height: var(--o-timeline-line-height);
+ margin-bottom: var(--o-timeline-spacing-word);
+ transition: var(--o-timeline-transition);
+ }
+ &-icon {
+ cursor: pointer;
+ width: var(--o-timeline-font-size-icon);
+ height: var(--o-timeline-font-size-icon);
+ color: var(--o-timeline-font-color);
+ display: inline-block;
+ background-color: var(--o-timeline-background-icon);
+ transition: var(--o-timeline-transition);
+ }
+ .active {
+ .o-timeline-day {
+ color: var(--o-timeline-font-color-active);
+ }
+ .o-timeline-icon {
+ color: var(--o-timeline-font-color-active);
+ }
+ }
+
+ &-left-arrow {
+ cursor: pointer;
+ position: absolute;
+ top: 28px;
+ left: -10px;
+ z-index: 4;
+ color: var(--o-timeline-background-color);
+ font-size: var(--o-timeline-font-size-icon);
+ }
+ &-right-arrow {
+ cursor: pointer;
+ position: absolute;
+ top: 28px;
+ right: -10px;
+ z-index: 4;
+ color: var(--o-timeline-background-color);
+ font-size: var(--o-timeline-font-size-icon);
+ }
+}
diff --git a/opendesign/timeline/src/timeline.tsx b/opendesign/timeline/src/timeline.tsx
new file mode 100644
index 0000000..3ae8313
--- /dev/null
+++ b/opendesign/timeline/src/timeline.tsx
@@ -0,0 +1,148 @@
+import { defineComponent, ref, Ref, toRefs, onMounted } from 'vue';
+import { timelineProps, TimelineProps } from './timeline-types';
+import IconLeft from '~icons/app/icon-chevron-left.svg';
+import IconRight from '~icons/app/icon-chevron-right';
+import IconChecked from '~icons/app/icon-checked.svg';
+import IconUnchecked from '~icons/app/icon-unchecked.svg';
+import './timeline.scss';
+
+export default defineComponent({
+ name: 'OTimeline',
+ props: timelineProps,
+ emits: ['update:modelValue'],
+ setup(props: TimelineProps, { emit }) {
+ const { leftArrow, rightArrow, modelValue } = toRefs(props);
+ // 六月
+ const SPLITEMONTH = 6;
+ // 时间线列表
+ const timeList: Ref = ref([]);
+ // 命中的tab
+ const activeTab = ref(5);
+ // 最左与最右阈值
+ const leftThreshold: string = '2020-10';
+ const rightThreshold: Ref = ref('');
+ // 时间线列表赋值
+ const changeDate = (year: number, month: number): Array => {
+ const result: Array = [];
+ if (month >= SPLITEMONTH) {
+ for (let i = 0; i < 6; i++) {
+ result.push(
+ year +
+ '-' +
+ (month - (6 - i - 1) >= 10
+ ? month - (6 - i - 1)
+ : '0' + (month - (6 - i - 1)))
+ );
+ }
+ } else {
+ // last year
+ for (let i = 1; i <= 6 - month; i++) {
+ result.push(
+ year -
+ 1 +
+ '-' +
+ (6 + i + month >= 10 ? 6 + i + month : '0' + (6 + i + month))
+ );
+ }
+ // this year
+ for (let i = 1; i < month + 1; i++) {
+ result.push(year + '-0' + i);
+ }
+ }
+ return result;
+ };
+ // 初始化时间线列表赋值
+ const initDate = () => {
+ const modelDate = !isNaN(new Date(modelValue.value).getTime())
+ ? new Date(modelValue.value)
+ : new Date();
+ const modelYear = modelDate.getFullYear();
+ const _modelYear =
+ modelDate.getFullYear() === 2020 ? 2021 : modelDate.getFullYear();
+ const modelMonth =
+ (modelYear === 2021 && modelDate.getMonth() + 1 < 3) ||
+ modelYear === 2020
+ ? 3
+ : modelDate.getMonth() + 1;
+ const year = new Date().getFullYear();
+ const month = new Date().getMonth() + 1;
+ rightThreshold.value = year + '-' + (month >= 10 ? month : '0' + month);
+ timeList.value = changeDate(_modelYear, modelMonth);
+ emit('update:modelValue', timeList.value[activeTab.value]);
+ };
+ // 点击时间线tab
+ const useClickTab = (index: number): void => {
+ activeTab.value = index;
+ emit('update:modelValue', timeList.value[activeTab.value]);
+ };
+ // 点击左侧按钮
+ const useClickLeft = () => {
+ const date = new Date(timeList.value[4]);
+ const year = date.getFullYear();
+ const month = date.getMonth() + 1;
+ timeList.value = changeDate(year, month);
+ emit('update:modelValue', timeList.value[activeTab.value]);
+ };
+ // 点击右侧按钮
+ const useClickRight = () => {
+ const date = new Date(timeList.value[5]);
+ const year = date.getFullYear();
+ const month = date.getMonth() + 2;
+ timeList.value =
+ month <= 12 ? changeDate(year, month) : changeDate(year + 1, 1);
+ emit('update:modelValue', timeList.value[activeTab.value]);
+ };
+
+ onMounted(() => {
+ initDate();
+ });
+
+ return () => {
+ return (
+
+ {leftArrow &&
+ leftArrow.value &&
+ timeList.value[0] !== leftThreshold ? (
+
useClickLeft()}
+ class="o-timeline-left-arrow"
+ >
+ ) : (
+ ''
+ )}
+
+ {timeList &&
+ timeList.value.map((item, index) => {
+ return (
+ - useClickTab(index)}
+ >
+
{item}
+ {index === activeTab.value ? (
+
+ ) : (
+
+ )}
+
+ );
+ })}
+
+ {rightArrow &&
+ rightArrow.value &&
+ timeList.value[5] !== rightThreshold.value ? (
+
useClickRight()}
+ >
+ ) : (
+ ''
+ )}
+
+ );
+ };
+ },
+});
diff --git a/opendesign/timeline/src/var.scss b/opendesign/timeline/src/var.scss
new file mode 100644
index 0000000..d75006d
--- /dev/null
+++ b/opendesign/timeline/src/var.scss
@@ -0,0 +1,22 @@
+.o-timeline {
+ // 背景颜色
+ --o-timeline-background-color: var(--o-color-neutral11);
+ --o-timeline-background-icon: var(--o-color-bg1);
+
+ // 文字颜色
+ --o-timeline-font-color-active: var(--o-color-brand1);
+ --o-timeline-font-color: var(--o-color-text4);
+
+ // font-size
+ --o-timeline-font-size: var(--o-font-size-h6);
+ --o-timeline-font-size-icon: var(--o-font-size-h5);
+
+ // line-height
+ --o-timeline-line-height: var(--o-line-height-h6);
+
+ // 动画
+ --o-timeline-transition: all 0.2s;
+
+ // 间距
+ --o-timeline-spacing-word: var(--o-spacing-h10);
+}
diff --git a/opendesign/tree/OTree.vue b/opendesign/tree/OTree.vue
new file mode 100644
index 0000000..31034f6
--- /dev/null
+++ b/opendesign/tree/OTree.vue
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
diff --git a/opendesign/tree/index.ts b/opendesign/tree/index.ts
new file mode 100644
index 0000000..f1d3c75
--- /dev/null
+++ b/opendesign/tree/index.ts
@@ -0,0 +1,7 @@
+import type { App } from 'vue';
+import Tree from './OTree.vue';
+Tree.install = function (app: App) {
+ app.component('OTree', Tree);
+};
+
+export { Tree };
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..00a702d
--- /dev/null
+++ b/package.json
@@ -0,0 +1,52 @@
+{
+ "name": "quick-issue",
+ "version": "0.0.1",
+ "type": "module",
+ "scripts": {
+ "dev": "vite",
+ "build": "vue-tsc --noEmit && vite build",
+ "preview": "vite preview",
+ "lint": "eslint \"src/**/*.{js,ts,vue,jsx,tsx}\"",
+ "fix": "eslint --fix \"src/**/*.{js,ts,vue,jsx,tsx}\"",
+ "lint:components": "eslint \"opendesign/**/*.{js,ts,vue,jsx,tsx}\"",
+ "prepare": "husky install"
+ },
+ "dependencies": {
+ "@amap/amap-jsapi-loader": "^1.0.1",
+ "@kangc/v-md-editor": "^2.3.15",
+ "axios": "^1.4.0",
+ "crypto-js": "^4.1.1",
+ "element-plus": "^2.3.5",
+ "js-base64": "^3.7.5",
+ "lodash-es": "^4.17.21",
+ "opendesign": "link:opendesign",
+ "pinia": "^2.1.3",
+ "prismjs": "^1.29.0",
+ "vue": "^3.3.4",
+ "vue-i18n": "^9.2.2",
+ "vue-router": "^4.2.1",
+ "vue3-slide-verify": "^1.1.4"
+ },
+ "devDependencies": {
+ "@types/lodash-es": "^4.17.7",
+ "@types/node": "^18.16.14",
+ "@types/prismjs": "^1.26.0",
+ "@vitejs/plugin-vue": "^3.2.0",
+ "@vitejs/plugin-vue-jsx": "^2.1.1",
+ "@vue/eslint-config-prettier": "^7.1.0",
+ "@vue/eslint-config-typescript": "^11.0.3",
+ "eslint": "^8.41.0",
+ "eslint-plugin-vue": "^9.13.0",
+ "husky": "^8.0.3",
+ "lint-staged": "^13.2.2",
+ "prettier": "^2.8.8",
+ "sass": "^1.62.1",
+ "typescript": "^4.9.5",
+ "unplugin-auto-import": "^0.11.5",
+ "unplugin-element-plus": "^0.4.1",
+ "unplugin-icons": "^0.14.15",
+ "unplugin-vue-components": "^0.22.12",
+ "vite": "^3.2.6",
+ "vue-tsc": "^0.40.13"
+ }
+}
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..56fc1dc
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,4927 @@
+lockfileVersion: 5.4
+
+specifiers:
+ '@amap/amap-jsapi-loader': ^1.0.1
+ '@kangc/v-md-editor': ^2.3.15
+ '@types/lodash-es': ^4.17.7
+ '@types/node': ^18.16.14
+ '@types/prismjs': ^1.26.0
+ '@vitejs/plugin-vue': ^3.2.0
+ '@vitejs/plugin-vue-jsx': ^2.1.1
+ '@vue/eslint-config-prettier': ^7.1.0
+ '@vue/eslint-config-typescript': ^11.0.3
+ authing-js-sdk: ^4.23.44
+ axios: ^1.4.0
+ crypto-js: ^4.1.1
+ element-plus: ^2.3.5
+ eslint: ^8.41.0
+ eslint-plugin-vue: ^9.13.0
+ husky: ^8.0.3
+ js-base64: ^3.7.5
+ lint-staged: ^13.2.2
+ lodash-es: ^4.17.21
+ opendesign: link:opendesign
+ pinia: ^2.1.3
+ prettier: ^2.8.8
+ prismjs: ^1.29.0
+ sass: ^1.62.1
+ typescript: ^4.9.5
+ unplugin-auto-import: ^0.11.5
+ unplugin-element-plus: ^0.4.1
+ unplugin-icons: ^0.14.15
+ unplugin-vue-components: ^0.22.12
+ vite: ^3.2.6
+ vue: ^3.3.4
+ vue-i18n: ^9.2.2
+ vue-router: ^4.2.1
+ vue-tsc: ^0.40.13
+ vue3-slide-verify: ^1.1.4
+
+dependencies:
+ '@amap/amap-jsapi-loader': 1.0.1
+ '@kangc/v-md-editor': 2.3.15_vue@3.3.4
+ authing-js-sdk: 4.23.44
+ axios: 1.4.0
+ crypto-js: 4.1.1
+ element-plus: 2.3.5_vue@3.3.4
+ js-base64: 3.7.5
+ lodash-es: 4.17.21
+ opendesign: link:opendesign
+ pinia: 2.1.3_typescript@4.9.5+vue@3.3.4
+ prismjs: 1.29.0
+ vue: 3.3.4
+ vue-i18n: 9.2.2_vue@3.3.4
+ vue-router: 4.2.1_vue@3.3.4
+ vue3-slide-verify: 1.1.4
+
+devDependencies:
+ '@types/lodash-es': 4.17.7
+ '@types/node': 18.16.14
+ '@types/prismjs': 1.26.0
+ '@vitejs/plugin-vue': 3.2.0_vite@3.2.6+vue@3.3.4
+ '@vitejs/plugin-vue-jsx': 2.1.1_vite@3.2.6+vue@3.3.4
+ '@vue/eslint-config-prettier': 7.1.0_qokqbt3mojjgfarfkyl2cug5vu
+ '@vue/eslint-config-typescript': 11.0.3_bobqty5xbmhlsbxniqz7dnethy
+ eslint: 8.41.0
+ eslint-plugin-vue: 9.13.0_eslint@8.41.0
+ husky: 8.0.3
+ lint-staged: 13.2.2
+ prettier: 2.8.8
+ sass: 1.62.1
+ typescript: 4.9.5
+ unplugin-auto-import: 0.11.5
+ unplugin-element-plus: 0.4.1_vite@3.2.6
+ unplugin-icons: 0.14.15
+ unplugin-vue-components: 0.22.12_vue@3.3.4
+ vite: 3.2.6_3cl3pib2kx7jaftbqhg3ux7t34
+ vue-tsc: 0.40.13_typescript@4.9.5
+
+packages:
+
+ /@amap/amap-jsapi-loader/1.0.1:
+ resolution: {integrity: sha512-nPyLKt7Ow/ThHLkSvn2etQlUzqxmTVgK7bIgwdBRTg2HK5668oN7xVxkaiRe3YZEzGzfV2XgH5Jmu2T73ljejw==}
+ dev: false
+
+ /@ampproject/remapping/2.2.1:
+ resolution: {integrity: sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.18
+ dev: true
+
+ /@antfu/install-pkg/0.1.1:
+ resolution: {integrity: sha512-LyB/8+bSfa0DFGC06zpCEfs89/XoWZwws5ygEa5D+Xsm3OfI+aXQ86VgVG7Acyef+rSZ5HE7J8rrxzrQeM3PjQ==}
+ dependencies:
+ execa: 5.1.1
+ find-up: 5.0.0
+ dev: true
+
+ /@antfu/utils/0.7.2:
+ resolution: {integrity: sha512-vy9fM3pIxZmX07dL+VX1aZe7ynZ+YyB0jY+jE6r3hOK6GNY2t6W8rzpFC4tgpbXUYABkFQwgJq2XYXlxbXAI0g==}
+ dev: true
+
+ /@babel/code-frame/7.21.4:
+ resolution: {integrity: sha512-LYvhNKfwWSPpocw8GI7gpK2nq3HSDuEPC/uSYaALSJu9xjsalaaYFOq0Pwt5KmVqwEbZlDu81aLXwBOmD/Fv9g==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/highlight': 7.18.6
+ dev: true
+
+ /@babel/compat-data/7.21.7:
+ resolution: {integrity: sha512-KYMqFYTaenzMK4yUtf4EW9wc4N9ef80FsbMtkwool5zpwl4YrT1SdWYSTRcT94KO4hannogdS+LxY7L+arP3gA==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/core/7.21.8:
+ resolution: {integrity: sha512-YeM22Sondbo523Sz0+CirSPnbj9bG3P0CdHcBZdqUuaeOaYEFbOLoGU7lebvGP6P5J/WE9wOn7u7C4J9HvS1xQ==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@ampproject/remapping': 2.2.1
+ '@babel/code-frame': 7.21.4
+ '@babel/generator': 7.21.5
+ '@babel/helper-compilation-targets': 7.21.5_@babel+core@7.21.8
+ '@babel/helper-module-transforms': 7.21.5
+ '@babel/helpers': 7.21.5
+ '@babel/parser': 7.21.8
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.21.5
+ '@babel/types': 7.21.5
+ convert-source-map: 1.9.0
+ debug: 4.3.4
+ gensync: 1.0.0-beta.2
+ json5: 2.2.3
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/generator/7.21.5:
+ resolution: {integrity: sha512-SrKK/sRv8GesIW1bDagf9cCG38IOMYZusoe1dfg0D8aiUe3Amvoj1QtjTPAWcfrZFvIwlleLb0gxzQidL9w14w==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.5
+ '@jridgewell/gen-mapping': 0.3.3
+ '@jridgewell/trace-mapping': 0.3.18
+ jsesc: 2.5.2
+ dev: true
+
+ /@babel/helper-annotate-as-pure/7.18.6:
+ resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.5
+ dev: true
+
+ /@babel/helper-compilation-targets/7.21.5_@babel+core@7.21.8:
+ resolution: {integrity: sha512-1RkbFGUKex4lvsB9yhIfWltJM5cZKUftB2eNajaDv3dCMEp49iBG0K14uH8NnX9IPux2+mK7JGEOB0jn48/J6w==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/compat-data': 7.21.7
+ '@babel/core': 7.21.8
+ '@babel/helper-validator-option': 7.21.0
+ browserslist: 4.21.5
+ lru-cache: 5.1.1
+ semver: 6.3.0
+ dev: true
+
+ /@babel/helper-create-class-features-plugin/7.21.8_@babel+core@7.21.8:
+ resolution: {integrity: sha512-+THiN8MqiH2AczyuZrnrKL6cAxFRRQDKW9h1YkBvbgKmAm6mwiacig1qT73DHIWMGo40GRnsEfN3LA+E6NtmSw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0
+ dependencies:
+ '@babel/core': 7.21.8
+ '@babel/helper-annotate-as-pure': 7.18.6
+ '@babel/helper-environment-visitor': 7.21.5
+ '@babel/helper-function-name': 7.21.0
+ '@babel/helper-member-expression-to-functions': 7.21.5
+ '@babel/helper-optimise-call-expression': 7.18.6
+ '@babel/helper-replace-supers': 7.21.5
+ '@babel/helper-skip-transparent-expression-wrappers': 7.20.0
+ '@babel/helper-split-export-declaration': 7.18.6
+ semver: 6.3.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-environment-visitor/7.21.5:
+ resolution: {integrity: sha512-IYl4gZ3ETsWocUWgsFZLM5i1BYx9SoemminVEXadgLBa9TdeorzgLKm8wWLA6J1N/kT3Kch8XIk1laNzYoHKvQ==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-function-name/7.21.0:
+ resolution: {integrity: sha512-HfK1aMRanKHpxemaY2gqBmL04iAPOPRj7DxtNbiDOrJK+gdwkiNRVpCpUJYbUT+aZyemKN8brqTOxzCaG6ExRg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.20.7
+ '@babel/types': 7.21.5
+ dev: true
+
+ /@babel/helper-hoist-variables/7.18.6:
+ resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.5
+ dev: true
+
+ /@babel/helper-member-expression-to-functions/7.21.5:
+ resolution: {integrity: sha512-nIcGfgwpH2u4n9GG1HpStW5Ogx7x7ekiFHbjjFRKXbn5zUvqO9ZgotCO4x1aNbKn/x/xOUaXEhyNHCwtFCpxWg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.5
+ dev: true
+
+ /@babel/helper-module-imports/7.21.4:
+ resolution: {integrity: sha512-orajc5T2PsRYUN3ZryCEFeMDYwyw09c/pZeaQEZPH0MpKzSvn3e0uXsDBu3k03VI+9DBiRo+l22BfKTpKwa/Wg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.5
+ dev: true
+
+ /@babel/helper-module-transforms/7.21.5:
+ resolution: {integrity: sha512-bI2Z9zBGY2q5yMHoBvJ2a9iX3ZOAzJPm7Q8Yz6YeoUjU/Cvhmi2G4QyTNyPBqqXSgTjUxRg3L0xV45HvkNWWBw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.21.5
+ '@babel/helper-module-imports': 7.21.4
+ '@babel/helper-simple-access': 7.21.5
+ '@babel/helper-split-export-declaration': 7.18.6
+ '@babel/helper-validator-identifier': 7.19.1
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.21.5
+ '@babel/types': 7.21.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-optimise-call-expression/7.18.6:
+ resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.5
+ dev: true
+
+ /@babel/helper-plugin-utils/7.21.5:
+ resolution: {integrity: sha512-0WDaIlXKOX/3KfBK/dwP1oQGiPh6rjMkT7HIRv7i5RR2VUMwrx5ZL0dwBkKx7+SW1zwNdgjHd34IMk5ZjTeHVg==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helper-replace-supers/7.21.5:
+ resolution: {integrity: sha512-/y7vBgsr9Idu4M6MprbOVUfH3vs7tsIfnVWv/Ml2xgwvyH6LTngdfbf5AdsKwkJy4zgy1X/kuNrEKvhhK28Yrg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-environment-visitor': 7.21.5
+ '@babel/helper-member-expression-to-functions': 7.21.5
+ '@babel/helper-optimise-call-expression': 7.18.6
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.21.5
+ '@babel/types': 7.21.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/helper-simple-access/7.21.5:
+ resolution: {integrity: sha512-ENPDAMC1wAjR0uaCUwliBdiSl1KBJAVnMTzXqi64c2MG8MPR6ii4qf7bSXDqSFbr4W6W028/rf5ivoHop5/mkg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.5
+ dev: true
+
+ /@babel/helper-skip-transparent-expression-wrappers/7.20.0:
+ resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.5
+ dev: true
+
+ /@babel/helper-split-export-declaration/7.18.6:
+ resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/types': 7.21.5
+ dev: true
+
+ /@babel/helper-string-parser/7.21.5:
+ resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-validator-identifier/7.19.1:
+ resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
+ engines: {node: '>=6.9.0'}
+
+ /@babel/helper-validator-option/7.21.0:
+ resolution: {integrity: sha512-rmL/B8/f0mKS2baE9ZpyTcTavvEuWhTTW8amjzXNvYG4AwBsqTLikfXsEofsJEfKHf+HQVQbFOHy6o+4cnC/fQ==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /@babel/helpers/7.21.5:
+ resolution: {integrity: sha512-BSY+JSlHxOmGsPTydUkPf1MdMQ3M81x5xGCOVgWM3G8XH77sJ292Y2oqcp0CbbgxhqBuI46iUz1tT7hqP7EfgA==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.21.5
+ '@babel/types': 7.21.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/highlight/7.18.6:
+ resolution: {integrity: sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-validator-identifier': 7.19.1
+ chalk: 2.4.2
+ js-tokens: 4.0.0
+ dev: true
+
+ /@babel/parser/7.21.8:
+ resolution: {integrity: sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==}
+ engines: {node: '>=6.0.0'}
+ hasBin: true
+ dependencies:
+ '@babel/types': 7.21.5
+
+ /@babel/plugin-syntax-jsx/7.21.4_@babel+core@7.21.8:
+ resolution: {integrity: sha512-5hewiLct5OKyh6PLKEYaFclcqtIgCb6bmELouxjF6up5q3Sov7rOayW4RwhbaBL0dit8rA80GNfY+UuDp2mBbQ==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.8
+ '@babel/helper-plugin-utils': 7.21.5
+ dev: true
+
+ /@babel/plugin-syntax-typescript/7.21.4_@babel+core@7.21.8:
+ resolution: {integrity: sha512-xz0D39NvhQn4t4RNsHmDnnsaQizIlUkdtYvLs8La1BlfjQ6JEwxkJGeqJMW2tAXx+q6H+WFuUTXNdYVpEya0YA==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.8
+ '@babel/helper-plugin-utils': 7.21.5
+ dev: true
+
+ /@babel/plugin-transform-typescript/7.21.3_@babel+core@7.21.8:
+ resolution: {integrity: sha512-RQxPz6Iqt8T0uw/WsJNReuBpWpBqs/n7mNo18sKLoTbMp+UrEekhH+pKSVC7gWz+DNjo9gryfV8YzCiT45RgMw==}
+ engines: {node: '>=6.9.0'}
+ peerDependencies:
+ '@babel/core': ^7.0.0-0
+ dependencies:
+ '@babel/core': 7.21.8
+ '@babel/helper-annotate-as-pure': 7.18.6
+ '@babel/helper-create-class-features-plugin': 7.21.8_@babel+core@7.21.8
+ '@babel/helper-plugin-utils': 7.21.5
+ '@babel/plugin-syntax-typescript': 7.21.4_@babel+core@7.21.8
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/runtime/7.21.5:
+ resolution: {integrity: sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ regenerator-runtime: 0.13.11
+ dev: false
+
+ /@babel/template/7.20.7:
+ resolution: {integrity: sha512-8SegXApWe6VoNw0r9JHpSteLKTpTiLZ4rMlGIm9JQ18KiCtyQiAMEazujAHrUS5flrcqYZa75ukev3P6QmUwUw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.21.4
+ '@babel/parser': 7.21.8
+ '@babel/types': 7.21.5
+ dev: true
+
+ /@babel/traverse/7.21.5:
+ resolution: {integrity: sha512-AhQoI3YjWi6u/y/ntv7k48mcrCXmus0t79J9qPNlk/lAsFlCiJ047RmbfMOawySTHtywXhbXgpx/8nXMYd+oFw==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/code-frame': 7.21.4
+ '@babel/generator': 7.21.5
+ '@babel/helper-environment-visitor': 7.21.5
+ '@babel/helper-function-name': 7.21.0
+ '@babel/helper-hoist-variables': 7.18.6
+ '@babel/helper-split-export-declaration': 7.18.6
+ '@babel/parser': 7.21.8
+ '@babel/types': 7.21.5
+ debug: 4.3.4
+ globals: 11.12.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@babel/types/7.21.5:
+ resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.21.5
+ '@babel/helper-validator-identifier': 7.19.1
+ to-fast-properties: 2.0.0
+
+ /@braintree/sanitize-url/3.1.0:
+ resolution: {integrity: sha512-GcIY79elgB+azP74j8vqkiXz8xLFfIzbQJdlwOPisgbKT00tviJQuEghOXSMVxJ00HoYJbGswr4kcllUc4xCcg==}
+ deprecated: Potential XSS vulnerability patched in v6.0.0.
+ dev: false
+
+ /@ctrl/tinycolor/3.6.0:
+ resolution: {integrity: sha512-/Z3l6pXthq0JvMYdUFyX9j0MaCltlIn6mfh9jLyQwg5aPKxkyNa0PTHtU1AlFXLNk55ZuAeJRcpvq+tmLfKmaQ==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /@element-plus/icons-vue/2.1.0_vue@3.3.4:
+ resolution: {integrity: sha512-PSBn3elNoanENc1vnCfh+3WA9fimRC7n+fWkf3rE5jvv+aBohNHABC/KAR5KWPecxWxDTVT1ERpRbOMRcOV/vA==}
+ peerDependencies:
+ vue: ^3.2.0
+ dependencies:
+ vue: 3.3.4
+ dev: false
+
+ /@esbuild/android-arm/0.15.18:
+ resolution: {integrity: sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@esbuild/linux-loong64/0.15.18:
+ resolution: {integrity: sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==}
+ engines: {node: '>=12'}
+ cpu: [loong64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /@eslint-community/eslint-utils/4.4.0_eslint@8.41.0:
+ resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
+ dependencies:
+ eslint: 8.41.0
+ eslint-visitor-keys: 3.4.1
+ dev: true
+
+ /@eslint-community/regexpp/4.5.1:
+ resolution: {integrity: sha512-Z5ba73P98O1KUYCCJTUeVpja9RcGoMdncZ6T49FCUl2lN38JtCJ+3WgIDBv0AuY4WChU5PmtJmOCTlN6FZTFKQ==}
+ engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
+ dev: true
+
+ /@eslint/eslintrc/2.0.3:
+ resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ ajv: 6.12.6
+ debug: 4.3.4
+ espree: 9.5.2
+ globals: 13.20.0
+ ignore: 5.2.4
+ import-fresh: 3.3.0
+ js-yaml: 4.1.0
+ minimatch: 3.1.2
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@eslint/js/8.41.0:
+ resolution: {integrity: sha512-LxcyMGxwmTh2lY9FwHPGWOHmYFCZvbrFCBZL4FzSSsxsRPuhrYUg/49/0KDfW8tnIEaEHtfmn6+NPN+1DqaNmA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /@floating-ui/core/1.2.6:
+ resolution: {integrity: sha512-EvYTiXet5XqweYGClEmpu3BoxmsQ4hkj3QaYA6qEnigCWffTP3vNRwBReTdrwDwo7OoJ3wM8Uoe9Uk4n+d4hfg==}
+ dev: false
+
+ /@floating-ui/dom/1.2.8:
+ resolution: {integrity: sha512-XLwhYV90MxiHDq6S0rzFZj00fnDM+A1R9jhSioZoMsa7G0Q0i+Q4x40ajR8FHSdYDE1bgjG45mIWe6jtv9UPmg==}
+ dependencies:
+ '@floating-ui/core': 1.2.6
+ dev: false
+
+ /@humanwhocodes/config-array/0.11.8:
+ resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==}
+ engines: {node: '>=10.10.0'}
+ dependencies:
+ '@humanwhocodes/object-schema': 1.2.1
+ debug: 4.3.4
+ minimatch: 3.1.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@humanwhocodes/module-importer/1.0.1:
+ resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==}
+ engines: {node: '>=12.22'}
+ dev: true
+
+ /@humanwhocodes/object-schema/1.2.1:
+ resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==}
+ dev: true
+
+ /@iconify/types/2.0.0:
+ resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==}
+ dev: true
+
+ /@iconify/utils/2.1.5:
+ resolution: {integrity: sha512-6MvDI+I6QMvXn5rK9KQGdpEE4mmLTcuQdLZEiX5N+uZB+vc4Yw9K1OtnOgkl8mp4d9X0UrILREyZgF1NUwUt+Q==}
+ dependencies:
+ '@antfu/install-pkg': 0.1.1
+ '@antfu/utils': 0.7.2
+ '@iconify/types': 2.0.0
+ debug: 4.3.4
+ kolorist: 1.8.0
+ local-pkg: 0.4.3
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@intlify/core-base/9.2.2:
+ resolution: {integrity: sha512-JjUpQtNfn+joMbrXvpR4hTF8iJQ2sEFzzK3KIESOx+f+uwIjgw20igOyaIdhfsVVBCds8ZM64MoeNSx+PHQMkA==}
+ engines: {node: '>= 14'}
+ dependencies:
+ '@intlify/devtools-if': 9.2.2
+ '@intlify/message-compiler': 9.2.2
+ '@intlify/shared': 9.2.2
+ '@intlify/vue-devtools': 9.2.2
+ dev: false
+
+ /@intlify/devtools-if/9.2.2:
+ resolution: {integrity: sha512-4ttr/FNO29w+kBbU7HZ/U0Lzuh2cRDhP8UlWOtV9ERcjHzuyXVZmjyleESK6eVP60tGC9QtQW9yZE+JeRhDHkg==}
+ engines: {node: '>= 14'}
+ dependencies:
+ '@intlify/shared': 9.2.2
+ dev: false
+
+ /@intlify/message-compiler/9.2.2:
+ resolution: {integrity: sha512-IUrQW7byAKN2fMBe8z6sK6riG1pue95e5jfokn8hA5Q3Bqy4MBJ5lJAofUsawQJYHeoPJ7svMDyBaVJ4d0GTtA==}
+ engines: {node: '>= 14'}
+ dependencies:
+ '@intlify/shared': 9.2.2
+ source-map: 0.6.1
+ dev: false
+
+ /@intlify/shared/9.2.2:
+ resolution: {integrity: sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==}
+ engines: {node: '>= 14'}
+ dev: false
+
+ /@intlify/vue-devtools/9.2.2:
+ resolution: {integrity: sha512-+dUyqyCHWHb/UcvY1MlIpO87munedm3Gn6E9WWYdWrMuYLcoIoOEVDWSS8xSwtlPU+kA+MEQTP6Q1iI/ocusJg==}
+ engines: {node: '>= 14'}
+ dependencies:
+ '@intlify/core-base': 9.2.2
+ '@intlify/shared': 9.2.2
+ dev: false
+
+ /@jridgewell/gen-mapping/0.3.3:
+ resolution: {integrity: sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ '@jridgewell/set-array': 1.1.2
+ '@jridgewell/sourcemap-codec': 1.4.15
+ '@jridgewell/trace-mapping': 0.3.18
+ dev: true
+
+ /@jridgewell/resolve-uri/3.1.0:
+ resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==}
+ engines: {node: '>=6.0.0'}
+ dev: true
+
+ /@jridgewell/set-array/1.1.2:
+ resolution: {integrity: sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==}
+ engines: {node: '>=6.0.0'}
+ dev: true
+
+ /@jridgewell/sourcemap-codec/1.4.14:
+ resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==}
+ dev: true
+
+ /@jridgewell/sourcemap-codec/1.4.15:
+ resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==}
+
+ /@jridgewell/trace-mapping/0.3.18:
+ resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==}
+ dependencies:
+ '@jridgewell/resolve-uri': 3.1.0
+ '@jridgewell/sourcemap-codec': 1.4.14
+ dev: true
+
+ /@kangc/v-md-editor/2.3.15_vue@3.3.4:
+ resolution: {integrity: sha512-tPsBJd4YwJSZK3+mbeBu9Iol9Zi3BboNr1QbDfsxVQ/4hlMgEpMT+vj3/e5FNwgBx50RIphU0j9qNLK+dgFmqA==}
+ peerDependencies:
+ '@vue/compiler-sfc': ^3.0.0
+ vue: ^3.0.0
+ dependencies:
+ '@babel/runtime': 7.21.5
+ '@vuepress/markdown': 1.9.9
+ codemirror: 5.65.13
+ copy-to-clipboard: 3.3.3
+ highlight.js: 10.7.3
+ insert-text-at-cursor: 0.3.0
+ katex: 0.13.24
+ markdown-it: 12.3.2
+ markdown-it-attrs: 4.1.6_markdown-it@12.3.2
+ markdown-it-container: 3.0.0
+ mermaid: 8.14.0
+ prismjs: 1.29.0
+ resize-observer-polyfill: 1.5.1
+ vant: 3.6.11_vue@3.3.4
+ vue: 3.3.4
+ xss: 1.0.14
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /@mrmlnc/readdir-enhanced/2.2.1:
+ resolution: {integrity: sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g==}
+ engines: {node: '>=4'}
+ dependencies:
+ call-me-maybe: 1.0.2
+ glob-to-regexp: 0.3.0
+ dev: false
+
+ /@nodelib/fs.scandir/2.1.5:
+ resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ run-parallel: 1.2.0
+ dev: true
+
+ /@nodelib/fs.stat/1.1.3:
+ resolution: {integrity: sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==}
+ engines: {node: '>= 6'}
+ dev: false
+
+ /@nodelib/fs.stat/2.0.5:
+ resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==}
+ engines: {node: '>= 8'}
+ dev: true
+
+ /@nodelib/fs.walk/1.2.8:
+ resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==}
+ engines: {node: '>= 8'}
+ dependencies:
+ '@nodelib/fs.scandir': 2.1.5
+ fastq: 1.15.0
+ dev: true
+
+ /@rollup/pluginutils/4.2.1:
+ resolution: {integrity: sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ==}
+ engines: {node: '>= 8.0.0'}
+ dependencies:
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /@rollup/pluginutils/5.0.2:
+ resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
+ engines: {node: '>=14.0.0'}
+ peerDependencies:
+ rollup: ^1.20.0||^2.0.0||^3.0.0
+ peerDependenciesMeta:
+ rollup:
+ optional: true
+ dependencies:
+ '@types/estree': 1.0.1
+ estree-walker: 2.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /@sxzz/popperjs-es/2.11.7:
+ resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==}
+ dev: false
+
+ /@types/estree/1.0.1:
+ resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==}
+ dev: true
+
+ /@types/glob/7.2.0:
+ resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
+ dependencies:
+ '@types/minimatch': 5.1.2
+ '@types/node': 18.16.14
+ dev: false
+
+ /@types/json-schema/7.0.11:
+ resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==}
+ dev: true
+
+ /@types/lodash-es/4.17.7:
+ resolution: {integrity: sha512-z0ptr6UI10VlU6l5MYhGwS4mC8DZyYer2mCoyysZtSF7p26zOX8UpbrV0YpNYLGS8K4PUFIyEr62IMFFjveSiQ==}
+ dependencies:
+ '@types/lodash': 4.14.194
+
+ /@types/lodash/4.14.194:
+ resolution: {integrity: sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==}
+
+ /@types/minimatch/5.1.2:
+ resolution: {integrity: sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA==}
+ dev: false
+
+ /@types/node/18.16.14:
+ resolution: {integrity: sha512-+ImzUB3mw2c5ISJUq0punjDilUQ5GnUim0ZRvchHIWJmOC0G+p0kzhXBqj6cDjK0QdPFwzrHWgrJp3RPvCG5qg==}
+
+ /@types/prismjs/1.26.0:
+ resolution: {integrity: sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==}
+ dev: true
+
+ /@types/semver/7.5.0:
+ resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==}
+ dev: true
+
+ /@types/web-bluetooth/0.0.16:
+ resolution: {integrity: sha512-oh8q2Zc32S6gd/j50GowEjKLoOVOwHP/bWVjKJInBwQqdOYMdPrf1oVlelTlyfFK3CKxL1uahMDAr+vy8T7yMQ==}
+ dev: false
+
+ /@typescript-eslint/eslint-plugin/5.59.6_4qbuxpmdupj46lq2zjlghng6yy:
+ resolution: {integrity: sha512-sXtOgJNEuRU5RLwPUb1jxtToZbgvq3M6FPpY4QENxoOggK+UpTxUBpj6tD8+Qh2g46Pi9We87E+eHnUw8YcGsw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ '@typescript-eslint/parser': ^5.0.0
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@eslint-community/regexpp': 4.5.1
+ '@typescript-eslint/parser': 5.59.6_5ujgynla27k2qkzlnkldjwsutm
+ '@typescript-eslint/scope-manager': 5.59.6
+ '@typescript-eslint/type-utils': 5.59.6_5ujgynla27k2qkzlnkldjwsutm
+ '@typescript-eslint/utils': 5.59.6_5ujgynla27k2qkzlnkldjwsutm
+ debug: 4.3.4
+ eslint: 8.41.0
+ grapheme-splitter: 1.0.4
+ ignore: 5.2.4
+ natural-compare-lite: 1.4.0
+ semver: 7.5.1
+ tsutils: 3.21.0_typescript@4.9.5
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/parser/5.59.6_5ujgynla27k2qkzlnkldjwsutm:
+ resolution: {integrity: sha512-7pCa6al03Pv1yf/dUg/s1pXz/yGMUBAw5EeWqNTFiSueKvRNonze3hma3lhdsOrQcaOXhbk5gKu2Fludiho9VA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/scope-manager': 5.59.6
+ '@typescript-eslint/types': 5.59.6
+ '@typescript-eslint/typescript-estree': 5.59.6_typescript@4.9.5
+ debug: 4.3.4
+ eslint: 8.41.0
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/scope-manager/5.59.6:
+ resolution: {integrity: sha512-gLbY3Le9Dxcb8KdpF0+SJr6EQ+hFGYFl6tVY8VxLPFDfUZC7BHFw+Vq7bM5lE9DwWPfx4vMWWTLGXgpc0mAYyQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.59.6
+ '@typescript-eslint/visitor-keys': 5.59.6
+ dev: true
+
+ /@typescript-eslint/type-utils/5.59.6_5ujgynla27k2qkzlnkldjwsutm:
+ resolution: {integrity: sha512-A4tms2Mp5yNvLDlySF+kAThV9VTBPCvGf0Rp8nl/eoDX9Okun8byTKoj3fJ52IJitjWOk0fKPNQhXEB++eNozQ==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '*'
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/typescript-estree': 5.59.6_typescript@4.9.5
+ '@typescript-eslint/utils': 5.59.6_5ujgynla27k2qkzlnkldjwsutm
+ debug: 4.3.4
+ eslint: 8.41.0
+ tsutils: 3.21.0_typescript@4.9.5
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/types/5.59.6:
+ resolution: {integrity: sha512-tH5lBXZI7T2MOUgOWFdVNUILsI02shyQvfzG9EJkoONWugCG77NDDa1EeDGw7oJ5IvsTAAGVV8I3Tk2PNu9QfA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /@typescript-eslint/typescript-estree/5.59.6_typescript@4.9.5:
+ resolution: {integrity: sha512-vW6JP3lMAs/Tq4KjdI/RiHaaJSO7IUsbkz17it/Rl9Q+WkQ77EOuOnlbaU8kKfVIOJxMhnRiBG+olE7f3M16DA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/types': 5.59.6
+ '@typescript-eslint/visitor-keys': 5.59.6
+ debug: 4.3.4
+ globby: 11.1.0
+ is-glob: 4.0.3
+ semver: 7.5.1
+ tsutils: 3.21.0_typescript@4.9.5
+ typescript: 4.9.5
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@typescript-eslint/utils/5.59.6_5ujgynla27k2qkzlnkldjwsutm:
+ resolution: {integrity: sha512-vzaaD6EXbTS29cVH0JjXBdzMt6VBlv+hE31XktDRMX1j3462wZCJa7VzO2AxXEXcIl8GQqZPcOPuW/Z1tZVogg==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0_eslint@8.41.0
+ '@types/json-schema': 7.0.11
+ '@types/semver': 7.5.0
+ '@typescript-eslint/scope-manager': 5.59.6
+ '@typescript-eslint/types': 5.59.6
+ '@typescript-eslint/typescript-estree': 5.59.6_typescript@4.9.5
+ eslint: 8.41.0
+ eslint-scope: 5.1.1
+ semver: 7.5.1
+ transitivePeerDependencies:
+ - supports-color
+ - typescript
+ dev: true
+
+ /@typescript-eslint/visitor-keys/5.59.6:
+ resolution: {integrity: sha512-zEfbFLzB9ETcEJ4HZEEsCR9HHeNku5/Qw1jSS5McYJv5BR+ftYXwFFAH5Al+xkGaZEqowMwl7uoJjQb1YSPF8Q==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ '@typescript-eslint/types': 5.59.6
+ eslint-visitor-keys: 3.4.1
+ dev: true
+
+ /@vant/icons/1.8.0:
+ resolution: {integrity: sha512-sKfEUo2/CkQFuERxvkuF6mGQZDKu3IQdj5rV9Fm0weJXtchDSSQ+zt8qPCNUEhh9Y8shy5PzxbvAfOOkCwlCXg==}
+ dev: false
+
+ /@vant/popperjs/1.3.0:
+ resolution: {integrity: sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==}
+ dev: false
+
+ /@vant/use/1.5.1_vue@3.3.4:
+ resolution: {integrity: sha512-Zxd7lDz/LliVYEQi3PR9a8CQa/kGCVzF0u9hqDMaTlgXlbG0wHMFPllrcG0ThR6bfs8xrYVuSFM9pJn6HSoUGQ==}
+ peerDependencies:
+ vue: ^3.0.0
+ dependencies:
+ vue: 3.3.4
+ dev: false
+
+ /@vitejs/plugin-vue-jsx/2.1.1_vite@3.2.6+vue@3.3.4:
+ resolution: {integrity: sha512-JgDhxstQlwnHBvZ1BSnU5mbmyQ14/t5JhREc6YH5kWyu2QdAAOsLF6xgHoIWarj8tddaiwFrNzLbWJPudpXKYA==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ vite: ^3.0.0
+ vue: ^3.0.0
+ dependencies:
+ '@babel/core': 7.21.8
+ '@babel/plugin-transform-typescript': 7.21.3_@babel+core@7.21.8
+ '@vue/babel-plugin-jsx': 1.1.1_@babel+core@7.21.8
+ vite: 3.2.6_3cl3pib2kx7jaftbqhg3ux7t34
+ vue: 3.3.4
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@vitejs/plugin-vue/3.2.0_vite@3.2.6+vue@3.3.4:
+ resolution: {integrity: sha512-E0tnaL4fr+qkdCNxJ+Xd0yM31UwMkQje76fsDVBBUCoGOUPexu2VDUYHL8P4CwV+zMvWw6nlRw19OnRKmYAJpw==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ peerDependencies:
+ vite: ^3.0.0
+ vue: ^3.2.25
+ dependencies:
+ vite: 3.2.6_3cl3pib2kx7jaftbqhg3ux7t34
+ vue: 3.3.4
+ dev: true
+
+ /@volar/code-gen/0.40.13:
+ resolution: {integrity: sha512-4gShBWuMce868OVvgyA1cU5WxHbjfEme18Tw6uVMfweZCF5fB2KECG0iPrA9D54vHk3FeHarODNwgIaaFfUBlA==}
+ dependencies:
+ '@volar/source-map': 0.40.13
+ dev: true
+
+ /@volar/source-map/0.40.13:
+ resolution: {integrity: sha512-dbdkAB2Nxb0wLjAY5O64o3ywVWlAGONnBIoKAkXSf6qkGZM+nJxcizsoiI66K+RHQG0XqlyvjDizfnTxr+6PWg==}
+ dependencies:
+ '@vue/reactivity': 3.2.38
+ dev: true
+
+ /@volar/typescript-faster/0.40.13:
+ resolution: {integrity: sha512-uy+TlcFkKoNlKEnxA4x5acxdxLyVDIXGSc8cYDNXpPKjBKXrQaetzCzlO3kVBqu1VLMxKNGJMTKn35mo+ILQmw==}
+ dependencies:
+ semver: 7.5.1
+ dev: true
+
+ /@volar/vue-language-core/0.40.13:
+ resolution: {integrity: sha512-QkCb8msi2KUitTdM6Y4kAb7/ZlEvuLcbBFOC2PLBlFuoZwyxvSP7c/dBGmKGtJlEvMX0LdCyrg5V2aBYxD38/Q==}
+ dependencies:
+ '@volar/code-gen': 0.40.13
+ '@volar/source-map': 0.40.13
+ '@vue/compiler-core': 3.3.4
+ '@vue/compiler-dom': 3.3.4
+ '@vue/compiler-sfc': 3.3.4
+ '@vue/reactivity': 3.3.4
+ '@vue/shared': 3.3.4
+ dev: true
+
+ /@volar/vue-typescript/0.40.13:
+ resolution: {integrity: sha512-o7bNztwjs8JmbQjVkrnbZUOfm7q4B8ZYssETISN1tRaBdun6cfNqgpkvDYd+VUBh1O4CdksvN+5BUNnwAz4oCQ==}
+ dependencies:
+ '@volar/code-gen': 0.40.13
+ '@volar/typescript-faster': 0.40.13
+ '@volar/vue-language-core': 0.40.13
+ dev: true
+
+ /@vue/babel-helper-vue-transform-on/1.0.2:
+ resolution: {integrity: sha512-hz4R8tS5jMn8lDq6iD+yWL6XNB699pGIVLk7WSJnn1dbpjaazsjZQkieJoRX6gW5zpYSCFqQ7jUquPNY65tQYA==}
+ dev: true
+
+ /@vue/babel-plugin-jsx/1.1.1_@babel+core@7.21.8:
+ resolution: {integrity: sha512-j2uVfZjnB5+zkcbc/zsOc0fSNGCMMjaEXP52wdwdIfn0qjFfEYpYZBFKFg+HHnQeJCVrjOeO0YxgaL7DMrym9w==}
+ dependencies:
+ '@babel/helper-module-imports': 7.21.4
+ '@babel/plugin-syntax-jsx': 7.21.4_@babel+core@7.21.8
+ '@babel/template': 7.20.7
+ '@babel/traverse': 7.21.5
+ '@babel/types': 7.21.5
+ '@vue/babel-helper-vue-transform-on': 1.0.2
+ camelcase: 6.3.0
+ html-tags: 3.3.1
+ svg-tags: 1.0.0
+ transitivePeerDependencies:
+ - '@babel/core'
+ - supports-color
+ dev: true
+
+ /@vue/compiler-core/3.3.4:
+ resolution: {integrity: sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==}
+ dependencies:
+ '@babel/parser': 7.21.8
+ '@vue/shared': 3.3.4
+ estree-walker: 2.0.2
+ source-map-js: 1.0.2
+
+ /@vue/compiler-dom/3.3.4:
+ resolution: {integrity: sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==}
+ dependencies:
+ '@vue/compiler-core': 3.3.4
+ '@vue/shared': 3.3.4
+
+ /@vue/compiler-sfc/3.3.4:
+ resolution: {integrity: sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==}
+ dependencies:
+ '@babel/parser': 7.21.8
+ '@vue/compiler-core': 3.3.4
+ '@vue/compiler-dom': 3.3.4
+ '@vue/compiler-ssr': 3.3.4
+ '@vue/reactivity-transform': 3.3.4
+ '@vue/shared': 3.3.4
+ estree-walker: 2.0.2
+ magic-string: 0.30.0
+ postcss: 8.4.23
+ source-map-js: 1.0.2
+
+ /@vue/compiler-ssr/3.3.4:
+ resolution: {integrity: sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==}
+ dependencies:
+ '@vue/compiler-dom': 3.3.4
+ '@vue/shared': 3.3.4
+
+ /@vue/devtools-api/6.5.0:
+ resolution: {integrity: sha512-o9KfBeaBmCKl10usN4crU53fYtC1r7jJwdGKjPT24t348rHxgfpZ0xL3Xm/gLUYnc0oTp8LAmrxOeLyu6tbk2Q==}
+ dev: false
+
+ /@vue/eslint-config-prettier/7.1.0_qokqbt3mojjgfarfkyl2cug5vu:
+ resolution: {integrity: sha512-Pv/lVr0bAzSIHLd9iz0KnvAr4GKyCEl+h52bc4e5yWuDVtLgFwycF7nrbWTAQAS+FU6q1geVd07lc6EWfJiWKQ==}
+ peerDependencies:
+ eslint: '>= 7.28.0'
+ prettier: '>= 2.0.0'
+ dependencies:
+ eslint: 8.41.0
+ eslint-config-prettier: 8.8.0_eslint@8.41.0
+ eslint-plugin-prettier: 4.2.1_xcqkel4mpum3npntysob2xmn54
+ prettier: 2.8.8
+ dev: true
+
+ /@vue/eslint-config-typescript/11.0.3_bobqty5xbmhlsbxniqz7dnethy:
+ resolution: {integrity: sha512-dkt6W0PX6H/4Xuxg/BlFj5xHvksjpSlVjtkQCpaYJBIEuKj2hOVU7r+TIe+ysCwRYFz/lGqvklntRkCAibsbPw==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
+ eslint-plugin-vue: ^9.0.0
+ typescript: '*'
+ peerDependenciesMeta:
+ typescript:
+ optional: true
+ dependencies:
+ '@typescript-eslint/eslint-plugin': 5.59.6_4qbuxpmdupj46lq2zjlghng6yy
+ '@typescript-eslint/parser': 5.59.6_5ujgynla27k2qkzlnkldjwsutm
+ eslint: 8.41.0
+ eslint-plugin-vue: 9.13.0_eslint@8.41.0
+ typescript: 4.9.5
+ vue-eslint-parser: 9.3.0_eslint@8.41.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /@vue/reactivity-transform/3.3.4:
+ resolution: {integrity: sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==}
+ dependencies:
+ '@babel/parser': 7.21.8
+ '@vue/compiler-core': 3.3.4
+ '@vue/shared': 3.3.4
+ estree-walker: 2.0.2
+ magic-string: 0.30.0
+
+ /@vue/reactivity/3.2.38:
+ resolution: {integrity: sha512-6L4myYcH9HG2M25co7/BSo0skKFHpAN8PhkNPM4xRVkyGl1K5M3Jx4rp5bsYhvYze2K4+l+pioN4e6ZwFLUVtw==}
+ dependencies:
+ '@vue/shared': 3.2.38
+ dev: true
+
+ /@vue/reactivity/3.3.4:
+ resolution: {integrity: sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==}
+ dependencies:
+ '@vue/shared': 3.3.4
+
+ /@vue/runtime-core/3.3.4:
+ resolution: {integrity: sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==}
+ dependencies:
+ '@vue/reactivity': 3.3.4
+ '@vue/shared': 3.3.4
+
+ /@vue/runtime-dom/3.3.4:
+ resolution: {integrity: sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==}
+ dependencies:
+ '@vue/runtime-core': 3.3.4
+ '@vue/shared': 3.3.4
+ csstype: 3.1.2
+
+ /@vue/server-renderer/3.3.4_vue@3.3.4:
+ resolution: {integrity: sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==}
+ peerDependencies:
+ vue: 3.3.4
+ dependencies:
+ '@vue/compiler-ssr': 3.3.4
+ '@vue/shared': 3.3.4
+ vue: 3.3.4
+
+ /@vue/shared/3.2.38:
+ resolution: {integrity: sha512-dTyhTIRmGXBjxJE+skC8tTWCGLCVc4wQgRRLt8+O9p5ewBAjoBwtCAkLPrtToSr1xltoe3st21Pv953aOZ7alg==}
+ dev: true
+
+ /@vue/shared/3.3.4:
+ resolution: {integrity: sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==}
+
+ /@vuepress/markdown/1.9.9:
+ resolution: {integrity: sha512-JzFdBdGe5aoiKSaEgF+h3JLDXNVfWPI5DJWXrIt7rhhkMJesF6HowIznPLdXqukzHfXHcPvo9oQ4o6eT0YmVGA==}
+ dependencies:
+ '@vuepress/shared-utils': 1.9.9
+ markdown-it: 8.4.2
+ markdown-it-anchor: 5.3.0_markdown-it@8.4.2
+ markdown-it-chain: 1.3.0_markdown-it@8.4.2
+ markdown-it-emoji: 1.4.0
+ markdown-it-table-of-contents: 0.4.4
+ prismjs: 1.29.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /@vuepress/shared-utils/1.9.9:
+ resolution: {integrity: sha512-qhk/7QF5LgMEXhEB1hlqreGFgkz4p2pmaBBNFxnAnYmSwmyO+u/oFOpZLI16QRx9Wg6ekR2ENmByQLxV7y4lJg==}
+ dependencies:
+ chalk: 2.4.2
+ escape-html: 1.0.3
+ fs-extra: 7.0.1
+ globby: 9.2.0
+ gray-matter: 4.0.3
+ hash-sum: 1.0.2
+ semver: 6.3.0
+ toml: 3.0.0
+ upath: 1.2.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /@vueuse/core/9.13.0_vue@3.3.4:
+ resolution: {integrity: sha512-pujnclbeHWxxPRqXWmdkKV5OX4Wk4YeK7wusHqRwU0Q7EFusHoqNA/aPhB6KCh9hEqJkLAJo7bb0Lh9b+OIVzw==}
+ dependencies:
+ '@types/web-bluetooth': 0.0.16
+ '@vueuse/metadata': 9.13.0
+ '@vueuse/shared': 9.13.0_vue@3.3.4
+ vue-demi: 0.14.5_vue@3.3.4
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+ dev: false
+
+ /@vueuse/metadata/9.13.0:
+ resolution: {integrity: sha512-gdU7TKNAUVlXXLbaF+ZCfte8BjRJQWPCa2J55+7/h+yDtzw3vOoGQDRXzI6pyKyo6bXFT5/QoPE4hAknExjRLQ==}
+ dev: false
+
+ /@vueuse/shared/9.13.0_vue@3.3.4:
+ resolution: {integrity: sha512-UrnhU+Cnufu4S6JLCPZnkWh0WwZGUp72ktOF2DFptMlOs3TOdVv8xJN53zhHGARmVOsz5KqOls09+J1NR6sBKw==}
+ dependencies:
+ vue-demi: 0.14.5_vue@3.3.4
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ - vue
+ dev: false
+
+ /acorn-jsx/5.3.2_acorn@8.8.2:
+ resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==}
+ peerDependencies:
+ acorn: ^6.0.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ acorn: 8.8.2
+ dev: true
+
+ /acorn/8.8.2:
+ resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==}
+ engines: {node: '>=0.4.0'}
+ hasBin: true
+ dev: true
+
+ /aggregate-error/3.1.0:
+ resolution: {integrity: sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==}
+ engines: {node: '>=8'}
+ dependencies:
+ clean-stack: 2.2.0
+ indent-string: 4.0.0
+ dev: true
+
+ /ajv/6.12.6:
+ resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==}
+ dependencies:
+ fast-deep-equal: 3.1.3
+ fast-json-stable-stringify: 2.1.0
+ json-schema-traverse: 0.4.1
+ uri-js: 4.4.1
+ dev: true
+
+ /ansi-escapes/4.3.2:
+ resolution: {integrity: sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ type-fest: 0.21.3
+ dev: true
+
+ /ansi-regex/5.0.1:
+ resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /ansi-regex/6.0.1:
+ resolution: {integrity: sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /ansi-styles/3.2.1:
+ resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==}
+ engines: {node: '>=4'}
+ dependencies:
+ color-convert: 1.9.3
+
+ /ansi-styles/4.3.0:
+ resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==}
+ engines: {node: '>=8'}
+ dependencies:
+ color-convert: 2.0.1
+ dev: true
+
+ /ansi-styles/6.2.1:
+ resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /anymatch/3.1.3:
+ resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
+ engines: {node: '>= 8'}
+ dependencies:
+ normalize-path: 3.0.0
+ picomatch: 2.3.1
+ dev: true
+
+ /argparse/1.0.10:
+ resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==}
+ dependencies:
+ sprintf-js: 1.0.3
+ dev: false
+
+ /argparse/2.0.1:
+ resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
+
+ /arr-diff/4.0.0:
+ resolution: {integrity: sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /arr-flatten/1.1.0:
+ resolution: {integrity: sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /arr-union/3.1.0:
+ resolution: {integrity: sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /array-union/1.0.2:
+ resolution: {integrity: sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ array-uniq: 1.0.3
+ dev: false
+
+ /array-union/2.1.0:
+ resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /array-uniq/1.0.3:
+ resolution: {integrity: sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /array-unique/0.3.2:
+ resolution: {integrity: sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /assign-symbols/1.0.0:
+ resolution: {integrity: sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /astral-regex/2.0.0:
+ resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /async-validator/4.2.5:
+ resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
+ dev: false
+
+ /asynckit/0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+ dev: false
+
+ /atob/2.1.2:
+ resolution: {integrity: sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==}
+ engines: {node: '>= 4.5.0'}
+ hasBin: true
+ dev: false
+
+ /authing-js-sdk/4.23.44:
+ resolution: {integrity: sha512-mPFJ7+iCEFFh6o7qzeLBIf+CmR2jBvNLBFJHxWyiO9U2hcALuSoFJ1+DIZy5QQ8/ZzQj/n7jfMj3ecKD42y1MQ==}
+ engines: {node: '>=8.9'}
+ dependencies:
+ axios: 0.26.1
+ crypto: 1.0.1
+ crypto-js: 4.1.1
+ jsencrypt: 3.3.2
+ jwt-decode: 2.2.0
+ sm-crypto: 0.3.12
+ transitivePeerDependencies:
+ - debug
+ dev: false
+
+ /axios/0.26.1:
+ resolution: {integrity: sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==}
+ dependencies:
+ follow-redirects: 1.15.2
+ transitivePeerDependencies:
+ - debug
+ dev: false
+
+ /axios/1.4.0:
+ resolution: {integrity: sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==}
+ dependencies:
+ follow-redirects: 1.15.2
+ form-data: 4.0.0
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+ dev: false
+
+ /balanced-match/1.0.2:
+ resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+
+ /base/0.11.2:
+ resolution: {integrity: sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ cache-base: 1.0.1
+ class-utils: 0.3.6
+ component-emitter: 1.3.0
+ define-property: 1.0.0
+ isobject: 3.0.1
+ mixin-deep: 1.3.2
+ pascalcase: 0.1.1
+ dev: false
+
+ /binary-extensions/2.2.0:
+ resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /boolbase/1.0.0:
+ resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==}
+ dev: true
+
+ /brace-expansion/1.1.11:
+ resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==}
+ dependencies:
+ balanced-match: 1.0.2
+ concat-map: 0.0.1
+
+ /brace-expansion/2.0.1:
+ resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==}
+ dependencies:
+ balanced-match: 1.0.2
+ dev: true
+
+ /braces/2.3.2:
+ resolution: {integrity: sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ arr-flatten: 1.1.0
+ array-unique: 0.3.2
+ extend-shallow: 2.0.1
+ fill-range: 4.0.0
+ isobject: 3.0.1
+ repeat-element: 1.1.4
+ snapdragon: 0.8.2
+ snapdragon-node: 2.1.1
+ split-string: 3.1.0
+ to-regex: 3.0.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /braces/3.0.2:
+ resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==}
+ engines: {node: '>=8'}
+ dependencies:
+ fill-range: 7.0.1
+ dev: true
+
+ /browserslist/4.21.5:
+ resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==}
+ engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7}
+ hasBin: true
+ dependencies:
+ caniuse-lite: 1.0.30001488
+ electron-to-chromium: 1.4.402
+ node-releases: 2.0.11
+ update-browserslist-db: 1.0.11_browserslist@4.21.5
+ dev: true
+
+ /cache-base/1.0.1:
+ resolution: {integrity: sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ collection-visit: 1.0.0
+ component-emitter: 1.3.0
+ get-value: 2.0.6
+ has-value: 1.0.0
+ isobject: 3.0.1
+ set-value: 2.0.1
+ to-object-path: 0.3.0
+ union-value: 1.0.1
+ unset-value: 1.0.0
+ dev: false
+
+ /call-me-maybe/1.0.2:
+ resolution: {integrity: sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==}
+ dev: false
+
+ /callsites/3.1.0:
+ resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /camelcase/6.3.0:
+ resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /caniuse-lite/1.0.30001488:
+ resolution: {integrity: sha512-NORIQuuL4xGpIy6iCCQGN4iFjlBXtfKWIenlUuyZJumLRIindLb7wXM+GO8erEhb7vXfcnf4BAg2PrSDN5TNLQ==}
+ dev: true
+
+ /chalk/2.4.2:
+ resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ ansi-styles: 3.2.1
+ escape-string-regexp: 1.0.5
+ supports-color: 5.5.0
+
+ /chalk/4.1.2:
+ resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ supports-color: 7.2.0
+ dev: true
+
+ /chalk/5.2.0:
+ resolution: {integrity: sha512-ree3Gqw/nazQAPuJJEy+avdl7QfZMcUvmHIKgEZkGL+xOBzRvup5Hxo6LHuMceSxOabuJLJm5Yp/92R9eMmMvA==}
+ engines: {node: ^12.17.0 || ^14.13 || >=16.0.0}
+ dev: true
+
+ /chokidar/3.5.3:
+ resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==}
+ engines: {node: '>= 8.10.0'}
+ dependencies:
+ anymatch: 3.1.3
+ braces: 3.0.2
+ glob-parent: 5.1.2
+ is-binary-path: 2.1.0
+ is-glob: 4.0.3
+ normalize-path: 3.0.0
+ readdirp: 3.6.0
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
+ /class-utils/0.3.6:
+ resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ arr-union: 3.1.0
+ define-property: 0.2.5
+ isobject: 3.0.1
+ static-extend: 0.1.2
+ dev: false
+
+ /clean-stack/2.2.0:
+ resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /cli-cursor/3.1.0:
+ resolution: {integrity: sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==}
+ engines: {node: '>=8'}
+ dependencies:
+ restore-cursor: 3.1.0
+ dev: true
+
+ /cli-truncate/2.1.0:
+ resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==}
+ engines: {node: '>=8'}
+ dependencies:
+ slice-ansi: 3.0.0
+ string-width: 4.2.3
+ dev: true
+
+ /cli-truncate/3.1.0:
+ resolution: {integrity: sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ slice-ansi: 5.0.0
+ string-width: 5.1.2
+ dev: true
+
+ /codemirror/5.65.13:
+ resolution: {integrity: sha512-SVWEzKXmbHmTQQWaz03Shrh4nybG0wXx2MEu3FO4ezbPW8IbnZEd5iGHGEffSUaitKYa3i+pHpBsSvw8sPHtzg==}
+ dev: false
+
+ /collection-visit/1.0.0:
+ resolution: {integrity: sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ map-visit: 1.0.0
+ object-visit: 1.0.1
+ dev: false
+
+ /color-convert/1.9.3:
+ resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==}
+ dependencies:
+ color-name: 1.1.3
+
+ /color-convert/2.0.1:
+ resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==}
+ engines: {node: '>=7.0.0'}
+ dependencies:
+ color-name: 1.1.4
+ dev: true
+
+ /color-name/1.1.3:
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
+
+ /color-name/1.1.4:
+ resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==}
+ dev: true
+
+ /colorette/2.0.20:
+ resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==}
+ dev: true
+
+ /combined-stream/1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ delayed-stream: 1.0.0
+ dev: false
+
+ /commander/10.0.1:
+ resolution: {integrity: sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /commander/2.20.3:
+ resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==}
+ dev: false
+
+ /commander/7.2.0:
+ resolution: {integrity: sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==}
+ engines: {node: '>= 10'}
+ dev: false
+
+ /commander/8.3.0:
+ resolution: {integrity: sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==}
+ engines: {node: '>= 12'}
+ dev: false
+
+ /component-emitter/1.3.0:
+ resolution: {integrity: sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==}
+ dev: false
+
+ /concat-map/0.0.1:
+ resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
+
+ /convert-source-map/1.9.0:
+ resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==}
+ dev: true
+
+ /copy-descriptor/0.1.1:
+ resolution: {integrity: sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /copy-to-clipboard/3.3.3:
+ resolution: {integrity: sha512-2KV8NhB5JqC3ky0r9PMCAZKbUHSwtEo4CwCs0KXgruG43gX5PMqDEBbVU4OUzw2MuAWUfsuFmWvEKG5QRfSnJA==}
+ dependencies:
+ toggle-selection: 1.0.6
+ dev: false
+
+ /cross-spawn/7.0.3:
+ resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==}
+ engines: {node: '>= 8'}
+ dependencies:
+ path-key: 3.1.1
+ shebang-command: 2.0.0
+ which: 2.0.2
+ dev: true
+
+ /crypto-js/4.1.1:
+ resolution: {integrity: sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==}
+ dev: false
+
+ /crypto/1.0.1:
+ resolution: {integrity: sha512-VxBKmeNcqQdiUQUW2Tzq0t377b54N2bMtXO/qiLa+6eRRmmC4qT3D4OnTGoT/U6O9aklQ/jTwbOtRMTTY8G0Ig==}
+ deprecated: This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.
+ dev: false
+
+ /cssesc/3.0.0:
+ resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /cssfilter/0.0.10:
+ resolution: {integrity: sha512-FAaLDaplstoRsDR8XGYH51znUN0UY7nMc6Z9/fvE8EXGwvJE9hu7W2vHwx1+bd6gCYnln9nLbzxFTrcO9YQDZw==}
+ dev: false
+
+ /csstype/3.1.2:
+ resolution: {integrity: sha512-I7K1Uu0MBPzaFKg4nI5Q7Vs2t+3gWWW648spaF+Rg7pI9ds18Ugn+lvg4SHczUdKlHI5LWBXyqfS8+DufyBsgQ==}
+
+ /d3-array/1.2.4:
+ resolution: {integrity: sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw==}
+ dev: false
+
+ /d3-array/3.2.3:
+ resolution: {integrity: sha512-JRHwbQQ84XuAESWhvIPaUV4/1UYTBOLiOPGWqgFDHZS1D5QN9c57FbH3QpEnQMYiOXNzKUQyGTZf+EVO7RT5TQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ internmap: 2.0.3
+ dev: false
+
+ /d3-axis/1.0.12:
+ resolution: {integrity: sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ==}
+ dev: false
+
+ /d3-axis/3.0.0:
+ resolution: {integrity: sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /d3-brush/1.1.6:
+ resolution: {integrity: sha512-7RW+w7HfMCPyZLifTz/UnJmI5kdkXtpCbombUSs8xniAyo0vIbrDzDwUJB6eJOgl9u5DQOt2TQlYumxzD1SvYA==}
+ dependencies:
+ d3-dispatch: 1.0.6
+ d3-drag: 1.2.5
+ d3-interpolate: 1.4.0
+ d3-selection: 1.4.2
+ d3-transition: 1.3.2
+ dev: false
+
+ /d3-brush/3.0.0:
+ resolution: {integrity: sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-dispatch: 3.0.1
+ d3-drag: 3.0.0
+ d3-interpolate: 3.0.1
+ d3-selection: 3.0.0
+ d3-transition: 3.0.1_d3-selection@3.0.0
+ dev: false
+
+ /d3-chord/1.0.6:
+ resolution: {integrity: sha512-JXA2Dro1Fxw9rJe33Uv+Ckr5IrAa74TlfDEhE/jfLOaXegMQFQTAgAw9WnZL8+HxVBRXaRGCkrNU7pJeylRIuA==}
+ dependencies:
+ d3-array: 1.2.4
+ d3-path: 1.0.9
+ dev: false
+
+ /d3-chord/3.0.1:
+ resolution: {integrity: sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-path: 3.1.0
+ dev: false
+
+ /d3-collection/1.0.7:
+ resolution: {integrity: sha512-ii0/r5f4sjKNTfh84Di+DpztYwqKhEyUlKoPrzUFfeSkWxjW49xU2QzO9qrPrNkpdI0XJkfzvmTu8V2Zylln6A==}
+ dev: false
+
+ /d3-color/1.4.1:
+ resolution: {integrity: sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q==}
+ dev: false
+
+ /d3-color/3.1.0:
+ resolution: {integrity: sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /d3-contour/1.3.2:
+ resolution: {integrity: sha512-hoPp4K/rJCu0ladiH6zmJUEz6+u3lgR+GSm/QdM2BBvDraU39Vr7YdDCicJcxP1z8i9B/2dJLgDC1NcvlF8WCg==}
+ dependencies:
+ d3-array: 1.2.4
+ dev: false
+
+ /d3-contour/4.0.2:
+ resolution: {integrity: sha512-4EzFTRIikzs47RGmdxbeUvLWtGedDUNkTcmzoeyg4sP/dvCexO47AaQL7VKy/gul85TOxw+IBgA8US2xwbToNA==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-array: 3.2.3
+ dev: false
+
+ /d3-delaunay/6.0.4:
+ resolution: {integrity: sha512-mdjtIZ1XLAM8bm/hx3WwjfHt6Sggek7qH043O8KEjDXN40xi3vx/6pYSVTwLjEgiXQTbvaouWKynLBiUZ6SK6A==}
+ engines: {node: '>=12'}
+ dependencies:
+ delaunator: 5.0.0
+ dev: false
+
+ /d3-dispatch/1.0.6:
+ resolution: {integrity: sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA==}
+ dev: false
+
+ /d3-dispatch/3.0.1:
+ resolution: {integrity: sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /d3-drag/1.2.5:
+ resolution: {integrity: sha512-rD1ohlkKQwMZYkQlYVCrSFxsWPzI97+W+PaEIBNTMxRuxz9RF0Hi5nJWHGVJ3Om9d2fRTe1yOBINJyy/ahV95w==}
+ dependencies:
+ d3-dispatch: 1.0.6
+ d3-selection: 1.4.2
+ dev: false
+
+ /d3-drag/3.0.0:
+ resolution: {integrity: sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-dispatch: 3.0.1
+ d3-selection: 3.0.0
+ dev: false
+
+ /d3-dsv/1.2.0:
+ resolution: {integrity: sha512-9yVlqvZcSOMhCYzniHE7EVUws7Fa1zgw+/EAV2BxJoG3ME19V6BQFBwI855XQDsxyOuG7NibqRMTtiF/Qup46g==}
+ hasBin: true
+ dependencies:
+ commander: 2.20.3
+ iconv-lite: 0.4.24
+ rw: 1.3.3
+ dev: false
+
+ /d3-dsv/3.0.1:
+ resolution: {integrity: sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q==}
+ engines: {node: '>=12'}
+ hasBin: true
+ dependencies:
+ commander: 7.2.0
+ iconv-lite: 0.6.3
+ rw: 1.3.3
+ dev: false
+
+ /d3-ease/1.0.7:
+ resolution: {integrity: sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ==}
+ dev: false
+
+ /d3-ease/3.0.1:
+ resolution: {integrity: sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /d3-fetch/1.2.0:
+ resolution: {integrity: sha512-yC78NBVcd2zFAyR/HnUiBS7Lf6inSCoWcSxFfw8FYL7ydiqe80SazNwoffcqOfs95XaLo7yebsmQqDKSsXUtvA==}
+ dependencies:
+ d3-dsv: 1.2.0
+ dev: false
+
+ /d3-fetch/3.0.1:
+ resolution: {integrity: sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-dsv: 3.0.1
+ dev: false
+
+ /d3-force/1.2.1:
+ resolution: {integrity: sha512-HHvehyaiUlVo5CxBJ0yF/xny4xoaxFxDnBXNvNcfW9adORGZfyNF1dj6DGLKyk4Yh3brP/1h3rnDzdIAwL08zg==}
+ dependencies:
+ d3-collection: 1.0.7
+ d3-dispatch: 1.0.6
+ d3-quadtree: 1.0.7
+ d3-timer: 1.0.10
+ dev: false
+
+ /d3-force/3.0.0:
+ resolution: {integrity: sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-dispatch: 3.0.1
+ d3-quadtree: 3.0.1
+ d3-timer: 3.0.1
+ dev: false
+
+ /d3-format/1.4.5:
+ resolution: {integrity: sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ==}
+ dev: false
+
+ /d3-format/3.1.0:
+ resolution: {integrity: sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /d3-geo/1.12.1:
+ resolution: {integrity: sha512-XG4d1c/UJSEX9NfU02KwBL6BYPj8YKHxgBEw5om2ZnTRSbIcego6dhHwcxuSR3clxh0EpE38os1DVPOmnYtTPg==}
+ dependencies:
+ d3-array: 1.2.4
+ dev: false
+
+ /d3-geo/3.1.0:
+ resolution: {integrity: sha512-JEo5HxXDdDYXCaWdwLRt79y7giK8SbhZJbFWXqbRTolCHFI5jRqteLzCsq51NKbUoX0PjBVSohxrx+NoOUujYA==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-array: 3.2.3
+ dev: false
+
+ /d3-hierarchy/1.1.9:
+ resolution: {integrity: sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ==}
+ dev: false
+
+ /d3-hierarchy/3.1.2:
+ resolution: {integrity: sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /d3-interpolate/1.4.0:
+ resolution: {integrity: sha512-V9znK0zc3jOPV4VD2zZn0sDhZU3WAE2bmlxdIwwQPPzPjvyLkd8B3JUVdS1IDUFDkWZ72c9qnv1GK2ZagTZ8EA==}
+ dependencies:
+ d3-color: 1.4.1
+ dev: false
+
+ /d3-interpolate/3.0.1:
+ resolution: {integrity: sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-color: 3.1.0
+ dev: false
+
+ /d3-path/1.0.9:
+ resolution: {integrity: sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg==}
+ dev: false
+
+ /d3-path/3.1.0:
+ resolution: {integrity: sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /d3-polygon/1.0.6:
+ resolution: {integrity: sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ==}
+ dev: false
+
+ /d3-polygon/3.0.1:
+ resolution: {integrity: sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /d3-quadtree/1.0.7:
+ resolution: {integrity: sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA==}
+ dev: false
+
+ /d3-quadtree/3.0.1:
+ resolution: {integrity: sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /d3-random/1.1.2:
+ resolution: {integrity: sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ==}
+ dev: false
+
+ /d3-random/3.0.1:
+ resolution: {integrity: sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /d3-scale-chromatic/1.5.0:
+ resolution: {integrity: sha512-ACcL46DYImpRFMBcpk9HhtIyC7bTBR4fNOPxwVSl0LfulDAwyiHyPOTqcDG1+t5d4P9W7t/2NAuWu59aKko/cg==}
+ dependencies:
+ d3-color: 1.4.1
+ d3-interpolate: 1.4.0
+ dev: false
+
+ /d3-scale-chromatic/3.0.0:
+ resolution: {integrity: sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-color: 3.1.0
+ d3-interpolate: 3.0.1
+ dev: false
+
+ /d3-scale/2.2.2:
+ resolution: {integrity: sha512-LbeEvGgIb8UMcAa0EATLNX0lelKWGYDQiPdHj+gLblGVhGLyNbaCn3EvrJf0A3Y/uOOU5aD6MTh5ZFCdEwGiCw==}
+ dependencies:
+ d3-array: 1.2.4
+ d3-collection: 1.0.7
+ d3-format: 1.4.5
+ d3-interpolate: 1.4.0
+ d3-time: 1.1.0
+ d3-time-format: 2.3.0
+ dev: false
+
+ /d3-scale/4.0.2:
+ resolution: {integrity: sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-array: 3.2.3
+ d3-format: 3.1.0
+ d3-interpolate: 3.0.1
+ d3-time: 3.1.0
+ d3-time-format: 4.1.0
+ dev: false
+
+ /d3-selection/1.4.2:
+ resolution: {integrity: sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg==}
+ dev: false
+
+ /d3-selection/3.0.0:
+ resolution: {integrity: sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /d3-shape/1.3.7:
+ resolution: {integrity: sha512-EUkvKjqPFUAZyOlhY5gzCxCeI0Aep04LwIRpsZ/mLFelJiUfnK56jo5JMDSE7yyP2kLSb6LtF+S5chMk7uqPqw==}
+ dependencies:
+ d3-path: 1.0.9
+ dev: false
+
+ /d3-shape/3.2.0:
+ resolution: {integrity: sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-path: 3.1.0
+ dev: false
+
+ /d3-time-format/2.3.0:
+ resolution: {integrity: sha512-guv6b2H37s2Uq/GefleCDtbe0XZAuy7Wa49VGkPVPMfLL9qObgBST3lEHJBMUp8S7NdLQAGIvr2KXk8Hc98iKQ==}
+ dependencies:
+ d3-time: 1.1.0
+ dev: false
+
+ /d3-time-format/4.1.0:
+ resolution: {integrity: sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-time: 3.1.0
+ dev: false
+
+ /d3-time/1.1.0:
+ resolution: {integrity: sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA==}
+ dev: false
+
+ /d3-time/3.1.0:
+ resolution: {integrity: sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-array: 3.2.3
+ dev: false
+
+ /d3-timer/1.0.10:
+ resolution: {integrity: sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw==}
+ dev: false
+
+ /d3-timer/3.0.1:
+ resolution: {integrity: sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /d3-transition/1.3.2:
+ resolution: {integrity: sha512-sc0gRU4PFqZ47lPVHloMn9tlPcv8jxgOQg+0zjhfZXMQuvppjG6YuwdMBE0TuqCZjeJkLecku/l9R0JPcRhaDA==}
+ dependencies:
+ d3-color: 1.4.1
+ d3-dispatch: 1.0.6
+ d3-ease: 1.0.7
+ d3-interpolate: 1.4.0
+ d3-selection: 1.4.2
+ d3-timer: 1.0.10
+ dev: false
+
+ /d3-transition/3.0.1_d3-selection@3.0.0:
+ resolution: {integrity: sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w==}
+ engines: {node: '>=12'}
+ peerDependencies:
+ d3-selection: 2 - 3
+ dependencies:
+ d3-color: 3.1.0
+ d3-dispatch: 3.0.1
+ d3-ease: 3.0.1
+ d3-interpolate: 3.0.1
+ d3-selection: 3.0.0
+ d3-timer: 3.0.1
+ dev: false
+
+ /d3-voronoi/1.1.4:
+ resolution: {integrity: sha512-dArJ32hchFsrQ8uMiTBLq256MpnZjeuBtdHpaDlYuQyjU0CVzCJl/BVW+SkszaAeH95D/8gxqAhgx0ouAWAfRg==}
+ dev: false
+
+ /d3-zoom/1.8.3:
+ resolution: {integrity: sha512-VoLXTK4wvy1a0JpH2Il+F2CiOhVu7VRXWF5M/LroMIh3/zBAC3WAt7QoIvPibOavVo20hN6/37vwAsdBejLyKQ==}
+ dependencies:
+ d3-dispatch: 1.0.6
+ d3-drag: 1.2.5
+ d3-interpolate: 1.4.0
+ d3-selection: 1.4.2
+ d3-transition: 1.3.2
+ dev: false
+
+ /d3-zoom/3.0.0:
+ resolution: {integrity: sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-dispatch: 3.0.1
+ d3-drag: 3.0.0
+ d3-interpolate: 3.0.1
+ d3-selection: 3.0.0
+ d3-transition: 3.0.1_d3-selection@3.0.0
+ dev: false
+
+ /d3/5.16.0:
+ resolution: {integrity: sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw==}
+ dependencies:
+ d3-array: 1.2.4
+ d3-axis: 1.0.12
+ d3-brush: 1.1.6
+ d3-chord: 1.0.6
+ d3-collection: 1.0.7
+ d3-color: 1.4.1
+ d3-contour: 1.3.2
+ d3-dispatch: 1.0.6
+ d3-drag: 1.2.5
+ d3-dsv: 1.2.0
+ d3-ease: 1.0.7
+ d3-fetch: 1.2.0
+ d3-force: 1.2.1
+ d3-format: 1.4.5
+ d3-geo: 1.12.1
+ d3-hierarchy: 1.1.9
+ d3-interpolate: 1.4.0
+ d3-path: 1.0.9
+ d3-polygon: 1.0.6
+ d3-quadtree: 1.0.7
+ d3-random: 1.1.2
+ d3-scale: 2.2.2
+ d3-scale-chromatic: 1.5.0
+ d3-selection: 1.4.2
+ d3-shape: 1.3.7
+ d3-time: 1.1.0
+ d3-time-format: 2.3.0
+ d3-timer: 1.0.10
+ d3-transition: 1.3.2
+ d3-voronoi: 1.1.4
+ d3-zoom: 1.8.3
+ dev: false
+
+ /d3/7.8.4:
+ resolution: {integrity: sha512-q2WHStdhiBtD8DMmhDPyJmXUxr6VWRngKyiJ5EfXMxPw+tqT6BhNjhJZ4w3BHsNm3QoVfZLY8Orq/qPFczwKRA==}
+ engines: {node: '>=12'}
+ dependencies:
+ d3-array: 3.2.3
+ d3-axis: 3.0.0
+ d3-brush: 3.0.0
+ d3-chord: 3.0.1
+ d3-color: 3.1.0
+ d3-contour: 4.0.2
+ d3-delaunay: 6.0.4
+ d3-dispatch: 3.0.1
+ d3-drag: 3.0.0
+ d3-dsv: 3.0.1
+ d3-ease: 3.0.1
+ d3-fetch: 3.0.1
+ d3-force: 3.0.0
+ d3-format: 3.1.0
+ d3-geo: 3.1.0
+ d3-hierarchy: 3.1.2
+ d3-interpolate: 3.0.1
+ d3-path: 3.1.0
+ d3-polygon: 3.0.1
+ d3-quadtree: 3.0.1
+ d3-random: 3.0.1
+ d3-scale: 4.0.2
+ d3-scale-chromatic: 3.0.0
+ d3-selection: 3.0.0
+ d3-shape: 3.2.0
+ d3-time: 3.1.0
+ d3-time-format: 4.1.0
+ d3-timer: 3.0.1
+ d3-transition: 3.0.1_d3-selection@3.0.0
+ d3-zoom: 3.0.0
+ dev: false
+
+ /dagre-d3/0.6.4:
+ resolution: {integrity: sha512-e/6jXeCP7/ptlAM48clmX4xTZc5Ek6T6kagS7Oz2HrYSdqcLZFLqpAfh7ldbZRFfxCZVyh61NEPR08UQRVxJzQ==}
+ dependencies:
+ d3: 5.16.0
+ dagre: 0.8.5
+ graphlib: 2.1.8
+ lodash: 4.17.21
+ dev: false
+
+ /dagre/0.8.5:
+ resolution: {integrity: sha512-/aTqmnRta7x7MCCpExk7HQL2O4owCT2h8NT//9I1OQ9vt29Pa0BzSAkR5lwFUcQ7491yVi/3CXU9jQ5o0Mn2Sw==}
+ dependencies:
+ graphlib: 2.1.8
+ lodash: 4.17.21
+ dev: false
+
+ /dayjs/1.11.7:
+ resolution: {integrity: sha512-+Yw9U6YO5TQohxLcIkrXBeY73WP3ejHWVvx8XCk3gxvQDCTEmS48ZrSZCKciI7Bhl/uCMyxYtE9UqRILmFphkQ==}
+ dev: false
+
+ /debug/2.6.9:
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.0.0
+ dev: false
+
+ /debug/4.3.4:
+ resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+ dev: true
+
+ /decode-uri-component/0.2.2:
+ resolution: {integrity: sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ==}
+ engines: {node: '>=0.10'}
+ dev: false
+
+ /deep-is/0.1.4:
+ resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
+ dev: true
+
+ /deepmerge/1.5.2:
+ resolution: {integrity: sha512-95k0GDqvBjZavkuvzx/YqVLv/6YYa17fz6ILMSf7neqQITCPbnfEnQvEgMPNjH4kgobe7+WIL0yJEHku+H3qtQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /define-property/0.2.5:
+ resolution: {integrity: sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-descriptor: 0.1.6
+ dev: false
+
+ /define-property/1.0.0:
+ resolution: {integrity: sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-descriptor: 1.0.2
+ dev: false
+
+ /define-property/2.0.2:
+ resolution: {integrity: sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-descriptor: 1.0.2
+ isobject: 3.0.1
+ dev: false
+
+ /delaunator/5.0.0:
+ resolution: {integrity: sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw==}
+ dependencies:
+ robust-predicates: 3.0.1
+ dev: false
+
+ /delayed-stream/1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+ dev: false
+
+ /dir-glob/2.2.2:
+ resolution: {integrity: sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==}
+ engines: {node: '>=4'}
+ dependencies:
+ path-type: 3.0.0
+ dev: false
+
+ /dir-glob/3.0.1:
+ resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-type: 4.0.0
+ dev: true
+
+ /doctrine/3.0.0:
+ resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ esutils: 2.0.3
+ dev: true
+
+ /dompurify/2.3.5:
+ resolution: {integrity: sha512-kD+f8qEaa42+mjdOpKeztu9Mfx5bv9gVLO6K9jRx4uGvh6Wv06Srn4jr1wPNY2OOUGGSKHNFN+A8MA3v0E0QAQ==}
+ dev: false
+
+ /eastasianwidth/0.2.0:
+ resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==}
+ dev: true
+
+ /electron-to-chromium/1.4.402:
+ resolution: {integrity: sha512-gWYvJSkohOiBE6ecVYXkrDgNaUjo47QEKK0kQzmWyhkH+yoYiG44bwuicTGNSIQRG3WDMsWVZJLRnJnLNkbWvA==}
+ dev: true
+
+ /element-plus/2.3.5_vue@3.3.4:
+ resolution: {integrity: sha512-g27DHm2C5/tPwte9H6Juu+JOdzT9z1ALHTIvia6MwnBdCrI4kd77o6KcYdodU15/tYiPBoCEmobhl/7GUDb+1Q==}
+ peerDependencies:
+ vue: ^3.2.0
+ dependencies:
+ '@ctrl/tinycolor': 3.6.0
+ '@element-plus/icons-vue': 2.1.0_vue@3.3.4
+ '@floating-ui/dom': 1.2.8
+ '@popperjs/core': /@sxzz/popperjs-es/2.11.7
+ '@types/lodash': 4.14.194
+ '@types/lodash-es': 4.17.7
+ '@vueuse/core': 9.13.0_vue@3.3.4
+ async-validator: 4.2.5
+ dayjs: 1.11.7
+ escape-html: 1.0.3
+ lodash: 4.17.21
+ lodash-es: 4.17.21
+ lodash-unified: 1.0.3_tknf7errc3xdqocd3ryzzla7vq
+ memoize-one: 6.0.0
+ normalize-wheel-es: 1.2.0
+ vue: 3.3.4
+ transitivePeerDependencies:
+ - '@vue/composition-api'
+ dev: false
+
+ /emoji-regex/8.0.0:
+ resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==}
+ dev: true
+
+ /emoji-regex/9.2.2:
+ resolution: {integrity: sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==}
+ dev: true
+
+ /entities/1.1.2:
+ resolution: {integrity: sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==}
+ dev: false
+
+ /entities/2.1.0:
+ resolution: {integrity: sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==}
+ dev: false
+
+ /es-module-lexer/0.10.5:
+ resolution: {integrity: sha512-+7IwY/kiGAacQfY+YBhKMvEmyAJnw5grTUgjG85Pe7vcUI/6b7pZjZG8nQ7+48YhzEAEqrEgD2dCz/JIK+AYvw==}
+ dev: true
+
+ /esbuild-android-64/0.15.18:
+ resolution: {integrity: sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-android-arm64/0.15.18:
+ resolution: {integrity: sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [android]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-darwin-64/0.15.18:
+ resolution: {integrity: sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-darwin-arm64/0.15.18:
+ resolution: {integrity: sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-freebsd-64/0.15.18:
+ resolution: {integrity: sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-freebsd-arm64/0.15.18:
+ resolution: {integrity: sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [freebsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-32/0.15.18:
+ resolution: {integrity: sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-64/0.15.18:
+ resolution: {integrity: sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-arm/0.15.18:
+ resolution: {integrity: sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==}
+ engines: {node: '>=12'}
+ cpu: [arm]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-arm64/0.15.18:
+ resolution: {integrity: sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-mips64le/0.15.18:
+ resolution: {integrity: sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==}
+ engines: {node: '>=12'}
+ cpu: [mips64el]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-ppc64le/0.15.18:
+ resolution: {integrity: sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==}
+ engines: {node: '>=12'}
+ cpu: [ppc64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-riscv64/0.15.18:
+ resolution: {integrity: sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==}
+ engines: {node: '>=12'}
+ cpu: [riscv64]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-linux-s390x/0.15.18:
+ resolution: {integrity: sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==}
+ engines: {node: '>=12'}
+ cpu: [s390x]
+ os: [linux]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-netbsd-64/0.15.18:
+ resolution: {integrity: sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [netbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-openbsd-64/0.15.18:
+ resolution: {integrity: sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [openbsd]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-sunos-64/0.15.18:
+ resolution: {integrity: sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [sunos]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-32/0.15.18:
+ resolution: {integrity: sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==}
+ engines: {node: '>=12'}
+ cpu: [ia32]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-64/0.15.18:
+ resolution: {integrity: sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==}
+ engines: {node: '>=12'}
+ cpu: [x64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild-windows-arm64/0.15.18:
+ resolution: {integrity: sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==}
+ engines: {node: '>=12'}
+ cpu: [arm64]
+ os: [win32]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /esbuild/0.15.18:
+ resolution: {integrity: sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ optionalDependencies:
+ '@esbuild/android-arm': 0.15.18
+ '@esbuild/linux-loong64': 0.15.18
+ esbuild-android-64: 0.15.18
+ esbuild-android-arm64: 0.15.18
+ esbuild-darwin-64: 0.15.18
+ esbuild-darwin-arm64: 0.15.18
+ esbuild-freebsd-64: 0.15.18
+ esbuild-freebsd-arm64: 0.15.18
+ esbuild-linux-32: 0.15.18
+ esbuild-linux-64: 0.15.18
+ esbuild-linux-arm: 0.15.18
+ esbuild-linux-arm64: 0.15.18
+ esbuild-linux-mips64le: 0.15.18
+ esbuild-linux-ppc64le: 0.15.18
+ esbuild-linux-riscv64: 0.15.18
+ esbuild-linux-s390x: 0.15.18
+ esbuild-netbsd-64: 0.15.18
+ esbuild-openbsd-64: 0.15.18
+ esbuild-sunos-64: 0.15.18
+ esbuild-windows-32: 0.15.18
+ esbuild-windows-64: 0.15.18
+ esbuild-windows-arm64: 0.15.18
+ dev: true
+
+ /escalade/3.1.1:
+ resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /escape-html/1.0.3:
+ resolution: {integrity: sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==}
+ dev: false
+
+ /escape-string-regexp/1.0.5:
+ resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==}
+ engines: {node: '>=0.8.0'}
+
+ /escape-string-regexp/4.0.0:
+ resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /escape-string-regexp/5.0.0:
+ resolution: {integrity: sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /eslint-config-prettier/8.8.0_eslint@8.41.0:
+ resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==}
+ hasBin: true
+ peerDependencies:
+ eslint: '>=7.0.0'
+ dependencies:
+ eslint: 8.41.0
+ dev: true
+
+ /eslint-plugin-prettier/4.2.1_xcqkel4mpum3npntysob2xmn54:
+ resolution: {integrity: sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==}
+ engines: {node: '>=12.0.0'}
+ peerDependencies:
+ eslint: '>=7.28.0'
+ eslint-config-prettier: '*'
+ prettier: '>=2.0.0'
+ peerDependenciesMeta:
+ eslint-config-prettier:
+ optional: true
+ dependencies:
+ eslint: 8.41.0
+ eslint-config-prettier: 8.8.0_eslint@8.41.0
+ prettier: 2.8.8
+ prettier-linter-helpers: 1.0.0
+ dev: true
+
+ /eslint-plugin-vue/9.13.0_eslint@8.41.0:
+ resolution: {integrity: sha512-aBz9A8WB4wmpnVv0pYUt86cmH9EkcwWzgEwecBxMoRNhQjTL5i4sqadnwShv/hOdr8Hbl8XANGV7dtX9UQIAyA==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0_eslint@8.41.0
+ eslint: 8.41.0
+ natural-compare: 1.4.0
+ nth-check: 2.1.1
+ postcss-selector-parser: 6.0.13
+ semver: 7.5.1
+ vue-eslint-parser: 9.3.0_eslint@8.41.0
+ xml-name-validator: 4.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /eslint-scope/5.1.1:
+ resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==}
+ engines: {node: '>=8.0.0'}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 4.3.0
+ dev: true
+
+ /eslint-scope/7.2.0:
+ resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ esrecurse: 4.3.0
+ estraverse: 5.3.0
+ dev: true
+
+ /eslint-visitor-keys/3.4.1:
+ resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dev: true
+
+ /eslint/8.41.0:
+ resolution: {integrity: sha512-WQDQpzGBOP5IrXPo4Hc0814r4/v2rrIsB0rhT7jtunIalgg6gYXWhRMOejVO8yH21T/FGaxjmFjBMNqcIlmH1Q==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ '@eslint-community/eslint-utils': 4.4.0_eslint@8.41.0
+ '@eslint-community/regexpp': 4.5.1
+ '@eslint/eslintrc': 2.0.3
+ '@eslint/js': 8.41.0
+ '@humanwhocodes/config-array': 0.11.8
+ '@humanwhocodes/module-importer': 1.0.1
+ '@nodelib/fs.walk': 1.2.8
+ ajv: 6.12.6
+ chalk: 4.1.2
+ cross-spawn: 7.0.3
+ debug: 4.3.4
+ doctrine: 3.0.0
+ escape-string-regexp: 4.0.0
+ eslint-scope: 7.2.0
+ eslint-visitor-keys: 3.4.1
+ espree: 9.5.2
+ esquery: 1.5.0
+ esutils: 2.0.3
+ fast-deep-equal: 3.1.3
+ file-entry-cache: 6.0.1
+ find-up: 5.0.0
+ glob-parent: 6.0.2
+ globals: 13.20.0
+ graphemer: 1.4.0
+ ignore: 5.2.4
+ import-fresh: 3.3.0
+ imurmurhash: 0.1.4
+ is-glob: 4.0.3
+ is-path-inside: 3.0.3
+ js-yaml: 4.1.0
+ json-stable-stringify-without-jsonify: 1.0.1
+ levn: 0.4.1
+ lodash.merge: 4.6.2
+ minimatch: 3.1.2
+ natural-compare: 1.4.0
+ optionator: 0.9.1
+ strip-ansi: 6.0.1
+ strip-json-comments: 3.1.1
+ text-table: 0.2.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /espree/9.5.2:
+ resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==}
+ engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
+ dependencies:
+ acorn: 8.8.2
+ acorn-jsx: 5.3.2_acorn@8.8.2
+ eslint-visitor-keys: 3.4.1
+ dev: true
+
+ /esprima/4.0.1:
+ resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: false
+
+ /esquery/1.5.0:
+ resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==}
+ engines: {node: '>=0.10'}
+ dependencies:
+ estraverse: 5.3.0
+ dev: true
+
+ /esrecurse/4.3.0:
+ resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==}
+ engines: {node: '>=4.0'}
+ dependencies:
+ estraverse: 5.3.0
+ dev: true
+
+ /estraverse/4.3.0:
+ resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /estraverse/5.3.0:
+ resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==}
+ engines: {node: '>=4.0'}
+ dev: true
+
+ /estree-walker/2.0.2:
+ resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==}
+
+ /esutils/2.0.3:
+ resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /execa/5.1.1:
+ resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==}
+ engines: {node: '>=10'}
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 6.0.1
+ human-signals: 2.1.0
+ is-stream: 2.0.1
+ merge-stream: 2.0.0
+ npm-run-path: 4.0.1
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ strip-final-newline: 2.0.0
+ dev: true
+
+ /execa/7.1.1:
+ resolution: {integrity: sha512-wH0eMf/UXckdUYnO21+HDztteVv05rq2GXksxT4fCGeHkBhw1DROXh40wcjMcRqDOWE7iPJ4n3M7e2+YFP+76Q==}
+ engines: {node: ^14.18.0 || ^16.14.0 || >=18.0.0}
+ dependencies:
+ cross-spawn: 7.0.3
+ get-stream: 6.0.1
+ human-signals: 4.3.1
+ is-stream: 3.0.0
+ merge-stream: 2.0.0
+ npm-run-path: 5.1.0
+ onetime: 6.0.0
+ signal-exit: 3.0.7
+ strip-final-newline: 3.0.0
+ dev: true
+
+ /expand-brackets/2.1.4:
+ resolution: {integrity: sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ debug: 2.6.9
+ define-property: 0.2.5
+ extend-shallow: 2.0.1
+ posix-character-classes: 0.1.1
+ regex-not: 1.0.2
+ snapdragon: 0.8.2
+ to-regex: 3.0.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /extend-shallow/2.0.1:
+ resolution: {integrity: sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extendable: 0.1.1
+ dev: false
+
+ /extend-shallow/3.0.2:
+ resolution: {integrity: sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ assign-symbols: 1.0.0
+ is-extendable: 1.0.1
+ dev: false
+
+ /extglob/2.0.4:
+ resolution: {integrity: sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ array-unique: 0.3.2
+ define-property: 1.0.0
+ expand-brackets: 2.1.4
+ extend-shallow: 2.0.1
+ fragment-cache: 0.2.1
+ regex-not: 1.0.2
+ snapdragon: 0.8.2
+ to-regex: 3.0.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /fast-deep-equal/3.1.3:
+ resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==}
+ dev: true
+
+ /fast-diff/1.3.0:
+ resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==}
+ dev: true
+
+ /fast-glob/2.2.7:
+ resolution: {integrity: sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw==}
+ engines: {node: '>=4.0.0'}
+ dependencies:
+ '@mrmlnc/readdir-enhanced': 2.2.1
+ '@nodelib/fs.stat': 1.1.3
+ glob-parent: 3.1.0
+ is-glob: 4.0.3
+ merge2: 1.4.1
+ micromatch: 3.1.10
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /fast-glob/3.2.12:
+ resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==}
+ engines: {node: '>=8.6.0'}
+ dependencies:
+ '@nodelib/fs.stat': 2.0.5
+ '@nodelib/fs.walk': 1.2.8
+ glob-parent: 5.1.2
+ merge2: 1.4.1
+ micromatch: 4.0.5
+ dev: true
+
+ /fast-json-stable-stringify/2.1.0:
+ resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==}
+ dev: true
+
+ /fast-levenshtein/2.0.6:
+ resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==}
+ dev: true
+
+ /fastq/1.15.0:
+ resolution: {integrity: sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw==}
+ dependencies:
+ reusify: 1.0.4
+ dev: true
+
+ /file-entry-cache/6.0.1:
+ resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flat-cache: 3.0.4
+ dev: true
+
+ /fill-range/4.0.0:
+ resolution: {integrity: sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ extend-shallow: 2.0.1
+ is-number: 3.0.0
+ repeat-string: 1.6.1
+ to-regex-range: 2.1.1
+ dev: false
+
+ /fill-range/7.0.1:
+ resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ to-regex-range: 5.0.1
+ dev: true
+
+ /find-up/5.0.0:
+ resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==}
+ engines: {node: '>=10'}
+ dependencies:
+ locate-path: 6.0.0
+ path-exists: 4.0.0
+ dev: true
+
+ /flat-cache/3.0.4:
+ resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==}
+ engines: {node: ^10.12.0 || >=12.0.0}
+ dependencies:
+ flatted: 3.2.7
+ rimraf: 3.0.2
+ dev: true
+
+ /flatted/3.2.7:
+ resolution: {integrity: sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==}
+ dev: true
+
+ /follow-redirects/1.15.2:
+ resolution: {integrity: sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ dev: false
+
+ /for-in/1.0.2:
+ resolution: {integrity: sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /form-data/4.0.0:
+ resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
+ engines: {node: '>= 6'}
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+ dev: false
+
+ /fragment-cache/0.2.1:
+ resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ map-cache: 0.2.2
+ dev: false
+
+ /fs-extra/7.0.1:
+ resolution: {integrity: sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==}
+ engines: {node: '>=6 <7 || >=8'}
+ dependencies:
+ graceful-fs: 4.2.11
+ jsonfile: 4.0.0
+ universalify: 0.1.2
+ dev: false
+
+ /fs.realpath/1.0.0:
+ resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==}
+
+ /fsevents/2.3.2:
+ resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==}
+ engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
+ os: [darwin]
+ requiresBuild: true
+ dev: true
+ optional: true
+
+ /function-bind/1.1.1:
+ resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==}
+ dev: true
+
+ /gensync/1.0.0-beta.2:
+ resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==}
+ engines: {node: '>=6.9.0'}
+ dev: true
+
+ /get-stream/6.0.1:
+ resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /get-value/2.0.6:
+ resolution: {integrity: sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /glob-parent/3.1.0:
+ resolution: {integrity: sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA==}
+ dependencies:
+ is-glob: 3.1.0
+ path-dirname: 1.0.2
+ dev: false
+
+ /glob-parent/5.1.2:
+ resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==}
+ engines: {node: '>= 6'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /glob-parent/6.0.2:
+ resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==}
+ engines: {node: '>=10.13.0'}
+ dependencies:
+ is-glob: 4.0.3
+ dev: true
+
+ /glob-to-regexp/0.3.0:
+ resolution: {integrity: sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig==}
+ dev: false
+
+ /glob/7.2.3:
+ resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==}
+ dependencies:
+ fs.realpath: 1.0.0
+ inflight: 1.0.6
+ inherits: 2.0.4
+ minimatch: 3.1.2
+ once: 1.4.0
+ path-is-absolute: 1.0.1
+
+ /globals/11.12.0:
+ resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /globals/13.20.0:
+ resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ type-fest: 0.20.2
+ dev: true
+
+ /globby/11.1.0:
+ resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==}
+ engines: {node: '>=10'}
+ dependencies:
+ array-union: 2.1.0
+ dir-glob: 3.0.1
+ fast-glob: 3.2.12
+ ignore: 5.2.4
+ merge2: 1.4.1
+ slash: 3.0.0
+ dev: true
+
+ /globby/9.2.0:
+ resolution: {integrity: sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg==}
+ engines: {node: '>=6'}
+ dependencies:
+ '@types/glob': 7.2.0
+ array-union: 1.0.2
+ dir-glob: 2.2.2
+ fast-glob: 2.2.7
+ glob: 7.2.3
+ ignore: 4.0.6
+ pify: 4.0.1
+ slash: 2.0.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /graceful-fs/4.2.11:
+ resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
+ dev: false
+
+ /grapheme-splitter/1.0.4:
+ resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==}
+ dev: true
+
+ /graphemer/1.4.0:
+ resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
+ dev: true
+
+ /graphlib/2.1.8:
+ resolution: {integrity: sha512-jcLLfkpoVGmH7/InMC/1hIvOPSUh38oJtGhvrOFGzioE1DZ+0YW16RgmOJhHiuWTvGiJQ9Z1Ik43JvkRPRvE+A==}
+ dependencies:
+ lodash: 4.17.21
+ dev: false
+
+ /gray-matter/4.0.3:
+ resolution: {integrity: sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==}
+ engines: {node: '>=6.0'}
+ dependencies:
+ js-yaml: 3.14.1
+ kind-of: 6.0.3
+ section-matter: 1.0.0
+ strip-bom-string: 1.0.0
+ dev: false
+
+ /has-flag/3.0.0:
+ resolution: {integrity: sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==}
+ engines: {node: '>=4'}
+
+ /has-flag/4.0.0:
+ resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /has-value/0.3.1:
+ resolution: {integrity: sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ get-value: 2.0.6
+ has-values: 0.1.4
+ isobject: 2.1.0
+ dev: false
+
+ /has-value/1.0.0:
+ resolution: {integrity: sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ get-value: 2.0.6
+ has-values: 1.0.0
+ isobject: 3.0.1
+ dev: false
+
+ /has-values/0.1.4:
+ resolution: {integrity: sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /has-values/1.0.0:
+ resolution: {integrity: sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-number: 3.0.0
+ kind-of: 4.0.0
+ dev: false
+
+ /has/1.0.3:
+ resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==}
+ engines: {node: '>= 0.4.0'}
+ dependencies:
+ function-bind: 1.1.1
+ dev: true
+
+ /hash-sum/1.0.2:
+ resolution: {integrity: sha512-fUs4B4L+mlt8/XAtSOGMUO1TXmAelItBPtJG7CyHJfYTdDjwisntGO2JQz7oUsatOY9o68+57eziUVNw/mRHmA==}
+ dev: false
+
+ /highlight.js/10.7.3:
+ resolution: {integrity: sha512-tzcUFauisWKNHaRkN4Wjl/ZA07gENAjFl3J/c480dprkGTg5EQstgaNFqBfUqCq54kZRIEcreTsAgF/m2quD7A==}
+ dev: false
+
+ /html-tags/3.3.1:
+ resolution: {integrity: sha512-ztqyC3kLto0e9WbNp0aeP+M3kTt+nbaIveGmUxAtZa+8iFgKLUOD4YKM5j+f3QD89bra7UeumolZHKuOXnTmeQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /human-signals/2.1.0:
+ resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==}
+ engines: {node: '>=10.17.0'}
+ dev: true
+
+ /human-signals/4.3.1:
+ resolution: {integrity: sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==}
+ engines: {node: '>=14.18.0'}
+ dev: true
+
+ /husky/8.0.3:
+ resolution: {integrity: sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg==}
+ engines: {node: '>=14'}
+ hasBin: true
+ dev: true
+
+ /iconv-lite/0.4.24:
+ resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ safer-buffer: 2.1.2
+ dev: false
+
+ /iconv-lite/0.6.3:
+ resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ safer-buffer: 2.1.2
+ dev: false
+
+ /ignore/4.0.6:
+ resolution: {integrity: sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==}
+ engines: {node: '>= 4'}
+ dev: false
+
+ /ignore/5.2.4:
+ resolution: {integrity: sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ==}
+ engines: {node: '>= 4'}
+ dev: true
+
+ /immutable/4.3.0:
+ resolution: {integrity: sha512-0AOCmOip+xgJwEVTQj1EfiDDOkPmuyllDuTuEX+DDXUgapLAsBIfkg3sxCYyCEA8mQqZrrxPUGjcOQ2JS3WLkg==}
+ dev: true
+
+ /import-fresh/3.3.0:
+ resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==}
+ engines: {node: '>=6'}
+ dependencies:
+ parent-module: 1.0.1
+ resolve-from: 4.0.0
+ dev: true
+
+ /imurmurhash/0.1.4:
+ resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==}
+ engines: {node: '>=0.8.19'}
+ dev: true
+
+ /indent-string/4.0.0:
+ resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /inflight/1.0.6:
+ resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==}
+ dependencies:
+ once: 1.4.0
+ wrappy: 1.0.2
+
+ /inherits/2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+
+ /insert-text-at-cursor/0.3.0:
+ resolution: {integrity: sha512-/nPtyeX9xPUvxZf+r0518B7uqNKlP+LqNJqSiXFEaa2T71rWIwTVXGH7hB9xO/EVdwa5/pWlFCPwShOW81XIxQ==}
+ dev: false
+
+ /internmap/2.0.3:
+ resolution: {integrity: sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg==}
+ engines: {node: '>=12'}
+ dev: false
+
+ /is-accessor-descriptor/0.1.6:
+ resolution: {integrity: sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 3.2.2
+ dev: false
+
+ /is-accessor-descriptor/1.0.0:
+ resolution: {integrity: sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 6.0.3
+ dev: false
+
+ /is-binary-path/2.1.0:
+ resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==}
+ engines: {node: '>=8'}
+ dependencies:
+ binary-extensions: 2.2.0
+ dev: true
+
+ /is-buffer/1.1.6:
+ resolution: {integrity: sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==}
+ dev: false
+
+ /is-core-module/2.12.1:
+ resolution: {integrity: sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg==}
+ dependencies:
+ has: 1.0.3
+ dev: true
+
+ /is-data-descriptor/0.1.4:
+ resolution: {integrity: sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 3.2.2
+ dev: false
+
+ /is-data-descriptor/1.0.0:
+ resolution: {integrity: sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 6.0.3
+ dev: false
+
+ /is-descriptor/0.1.6:
+ resolution: {integrity: sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-accessor-descriptor: 0.1.6
+ is-data-descriptor: 0.1.4
+ kind-of: 5.1.0
+ dev: false
+
+ /is-descriptor/1.0.2:
+ resolution: {integrity: sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-accessor-descriptor: 1.0.0
+ is-data-descriptor: 1.0.0
+ kind-of: 6.0.3
+ dev: false
+
+ /is-extendable/0.1.1:
+ resolution: {integrity: sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /is-extendable/1.0.1:
+ resolution: {integrity: sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-plain-object: 2.0.4
+ dev: false
+
+ /is-extglob/2.1.1:
+ resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==}
+ engines: {node: '>=0.10.0'}
+
+ /is-fullwidth-code-point/3.0.0:
+ resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-fullwidth-code-point/4.0.0:
+ resolution: {integrity: sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /is-glob/3.1.0:
+ resolution: {integrity: sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+ dev: false
+
+ /is-glob/4.0.3:
+ resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-extglob: 2.1.1
+
+ /is-number/3.0.0:
+ resolution: {integrity: sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 3.2.2
+ dev: false
+
+ /is-number/7.0.0:
+ resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==}
+ engines: {node: '>=0.12.0'}
+ dev: true
+
+ /is-path-inside/3.0.3:
+ resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-plain-object/2.0.4:
+ resolution: {integrity: sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ isobject: 3.0.1
+ dev: false
+
+ /is-stream/2.0.1:
+ resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /is-stream/3.0.0:
+ resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dev: true
+
+ /is-windows/1.0.2:
+ resolution: {integrity: sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /isarray/1.0.0:
+ resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=}
+ dev: false
+
+ /isexe/2.0.0:
+ resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==}
+ dev: true
+
+ /isobject/2.1.0:
+ resolution: {integrity: sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ isarray: 1.0.0
+ dev: false
+
+ /isobject/3.0.1:
+ resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /javascript-stringify/1.6.0:
+ resolution: {integrity: sha512-fnjC0up+0SjEJtgmmG+teeel68kutkvzfctO/KxE3qJlbunkJYAshgH3boU++gSBHP8z5/r0ts0qRIrHf0RTQQ==}
+ dev: false
+
+ /js-base64/3.7.5:
+ resolution: {integrity: sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==}
+ dev: false
+
+ /js-tokens/4.0.0:
+ resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
+ dev: true
+
+ /js-yaml/3.14.1:
+ resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==}
+ hasBin: true
+ dependencies:
+ argparse: 1.0.10
+ esprima: 4.0.1
+ dev: false
+
+ /js-yaml/4.1.0:
+ resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ dev: true
+
+ /jsbn/1.1.0:
+ resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
+ dev: false
+
+ /jsencrypt/3.3.2:
+ resolution: {integrity: sha512-arQR1R1ESGdAxY7ZheWr12wCaF2yF47v5qpB76TtV64H1pyGudk9Hvw8Y9tb/FiTIaaTRUyaSnm5T/Y53Ghm/A==}
+ dev: false
+
+ /jsesc/2.5.2:
+ resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==}
+ engines: {node: '>=4'}
+ hasBin: true
+ dev: true
+
+ /json-schema-traverse/0.4.1:
+ resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==}
+ dev: true
+
+ /json-stable-stringify-without-jsonify/1.0.1:
+ resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==}
+ dev: true
+
+ /json5/2.2.3:
+ resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==}
+ engines: {node: '>=6'}
+ hasBin: true
+ dev: true
+
+ /jsonc-parser/3.2.0:
+ resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==}
+ dev: true
+
+ /jsonfile/4.0.0:
+ resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==}
+ optionalDependencies:
+ graceful-fs: 4.2.11
+ dev: false
+
+ /jwt-decode/2.2.0:
+ resolution: {integrity: sha512-86GgN2vzfUu7m9Wcj63iUkuDzFNYFVmjeDm2GzWpUk+opB0pEpMsw6ePCMrhYkumz2C1ihqtZzOMAg7FiXcNoQ==}
+ dev: false
+
+ /katex/0.13.24:
+ resolution: {integrity: sha512-jZxYuKCma3VS5UuxOx/rFV1QyGSl3Uy/i0kTJF3HgQ5xMinCQVF8Zd4bMY/9aI9b9A2pjIBOsjSSm68ykTAr8w==}
+ hasBin: true
+ dependencies:
+ commander: 8.3.0
+ dev: false
+
+ /khroma/1.4.1:
+ resolution: {integrity: sha512-+GmxKvmiRuCcUYDgR7g5Ngo0JEDeOsGdNONdU2zsiBQaK4z19Y2NvXqfEDE0ZiIrg45GTZyAnPLVsLZZACYm3Q==}
+ dev: false
+
+ /kind-of/3.2.2:
+ resolution: {integrity: sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-buffer: 1.1.6
+ dev: false
+
+ /kind-of/4.0.0:
+ resolution: {integrity: sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-buffer: 1.1.6
+ dev: false
+
+ /kind-of/5.1.0:
+ resolution: {integrity: sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /kind-of/6.0.3:
+ resolution: {integrity: sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /kolorist/1.8.0:
+ resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
+ dev: true
+
+ /levn/0.4.1:
+ resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ dev: true
+
+ /lilconfig/2.1.0:
+ resolution: {integrity: sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /linkify-it/2.2.0:
+ resolution: {integrity: sha512-GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw==}
+ dependencies:
+ uc.micro: 1.0.6
+ dev: false
+
+ /linkify-it/3.0.3:
+ resolution: {integrity: sha512-ynTsyrFSdE5oZ/O9GEf00kPngmOfVwazR5GKDq6EYfhlpFug3J2zybX56a2PRRpc9P+FuSoGNAwjlbDs9jJBPQ==}
+ dependencies:
+ uc.micro: 1.0.6
+ dev: false
+
+ /lint-staged/13.2.2:
+ resolution: {integrity: sha512-71gSwXKy649VrSU09s10uAT0rWCcY3aewhMaHyl2N84oBk4Xs9HgxvUp3AYu+bNsK4NrOYYxvSgg7FyGJ+jGcA==}
+ engines: {node: ^14.13.1 || >=16.0.0}
+ hasBin: true
+ dependencies:
+ chalk: 5.2.0
+ cli-truncate: 3.1.0
+ commander: 10.0.1
+ debug: 4.3.4
+ execa: 7.1.1
+ lilconfig: 2.1.0
+ listr2: 5.0.8
+ micromatch: 4.0.5
+ normalize-path: 3.0.0
+ object-inspect: 1.12.3
+ pidtree: 0.6.0
+ string-argv: 0.3.2
+ yaml: 2.2.2
+ transitivePeerDependencies:
+ - enquirer
+ - supports-color
+ dev: true
+
+ /listr2/5.0.8:
+ resolution: {integrity: sha512-mC73LitKHj9w6v30nLNGPetZIlfpUniNSsxxrbaPcWOjDb92SHPzJPi/t+v1YC/lxKz/AJ9egOjww0qUuFxBpA==}
+ engines: {node: ^14.13.1 || >=16.0.0}
+ peerDependencies:
+ enquirer: '>= 2.3.0 < 3'
+ peerDependenciesMeta:
+ enquirer:
+ optional: true
+ dependencies:
+ cli-truncate: 2.1.0
+ colorette: 2.0.20
+ log-update: 4.0.0
+ p-map: 4.0.0
+ rfdc: 1.3.0
+ rxjs: 7.8.1
+ through: 2.3.8
+ wrap-ansi: 7.0.0
+ dev: true
+
+ /local-pkg/0.4.3:
+ resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==}
+ engines: {node: '>=14'}
+ dev: true
+
+ /locate-path/6.0.0:
+ resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-locate: 5.0.0
+ dev: true
+
+ /lodash-es/4.17.21:
+ resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==}
+ dev: false
+
+ /lodash-unified/1.0.3_tknf7errc3xdqocd3ryzzla7vq:
+ resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==}
+ peerDependencies:
+ '@types/lodash-es': '*'
+ lodash: '*'
+ lodash-es: '*'
+ dependencies:
+ '@types/lodash-es': 4.17.7
+ lodash: 4.17.21
+ lodash-es: 4.17.21
+ dev: false
+
+ /lodash.merge/4.6.2:
+ resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==}
+ dev: true
+
+ /lodash/4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+
+ /log-update/4.0.0:
+ resolution: {integrity: sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-escapes: 4.3.2
+ cli-cursor: 3.1.0
+ slice-ansi: 4.0.0
+ wrap-ansi: 6.2.0
+ dev: true
+
+ /lru-cache/5.1.1:
+ resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==}
+ dependencies:
+ yallist: 3.1.1
+ dev: true
+
+ /lru-cache/6.0.0:
+ resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==}
+ engines: {node: '>=10'}
+ dependencies:
+ yallist: 4.0.0
+ dev: true
+
+ /magic-string/0.26.7:
+ resolution: {integrity: sha512-hX9XH3ziStPoPhJxLq1syWuZMxbDvGNbVchfrdCtanC7D13888bMFow61x8axrx+GfHLtVeAx2kxL7tTGRl+Ow==}
+ engines: {node: '>=12'}
+ dependencies:
+ sourcemap-codec: 1.4.8
+ dev: true
+
+ /magic-string/0.27.0:
+ resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.15
+ dev: true
+
+ /magic-string/0.30.0:
+ resolution: {integrity: sha512-LA+31JYDJLs82r2ScLrlz1GjSgu66ZV518eyWT+S8VhyQn/JL0u9MeBOvQMGYiPk1DBiSN9DDMOcXvigJZaViQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ '@jridgewell/sourcemap-codec': 1.4.15
+
+ /map-cache/0.2.2:
+ resolution: {integrity: sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /map-visit/1.0.0:
+ resolution: {integrity: sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ object-visit: 1.0.1
+ dev: false
+
+ /markdown-it-anchor/5.3.0_markdown-it@8.4.2:
+ resolution: {integrity: sha512-/V1MnLL/rgJ3jkMWo84UR+K+jF1cxNG1a+KwqeXqTIJ+jtA8aWSHuigx8lTzauiIjBDbwF3NcWQMotd0Dm39jA==}
+ peerDependencies:
+ markdown-it: '*'
+ dependencies:
+ markdown-it: 8.4.2
+ dev: false
+
+ /markdown-it-attrs/4.1.6_markdown-it@12.3.2:
+ resolution: {integrity: sha512-O7PDKZlN8RFMyDX13JnctQompwrrILuz2y43pW2GagcwpIIElkAdfeek+erHfxUOlXWPsjFeWmZ8ch1xtRLWpA==}
+ engines: {node: '>=6'}
+ peerDependencies:
+ markdown-it: '>= 9.0.0'
+ dependencies:
+ markdown-it: 12.3.2
+ dev: false
+
+ /markdown-it-chain/1.3.0_markdown-it@8.4.2:
+ resolution: {integrity: sha512-XClV8I1TKy8L2qsT9iX3qiV+50ZtcInGXI80CA+DP62sMs7hXlyV/RM3hfwy5O3Ad0sJm9xIwQELgANfESo8mQ==}
+ engines: {node: '>=6.9'}
+ peerDependencies:
+ markdown-it: '>=5.0.0'
+ dependencies:
+ markdown-it: 8.4.2
+ webpack-chain: 4.12.1
+ dev: false
+
+ /markdown-it-container/3.0.0:
+ resolution: {integrity: sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==}
+ dev: false
+
+ /markdown-it-emoji/1.4.0:
+ resolution: {integrity: sha512-QCz3Hkd+r5gDYtS2xsFXmBYrgw6KuWcJZLCEkdfAuwzZbShCmCfta+hwAMq4NX/4xPzkSHduMKgMkkPUJxSXNg==}
+ dev: false
+
+ /markdown-it-table-of-contents/0.4.4:
+ resolution: {integrity: sha512-TAIHTHPwa9+ltKvKPWulm/beozQU41Ab+FIefRaQV1NRnpzwcV9QOe6wXQS5WLivm5Q/nlo0rl6laGkMDZE7Gw==}
+ engines: {node: '>6.4.0'}
+ dev: false
+
+ /markdown-it/12.3.2:
+ resolution: {integrity: sha512-TchMembfxfNVpHkbtriWltGWc+m3xszaRD0CZup7GFFhzIgQqxIfn3eGj1yZpfuflzPvfkt611B2Q/Bsk1YnGg==}
+ hasBin: true
+ dependencies:
+ argparse: 2.0.1
+ entities: 2.1.0
+ linkify-it: 3.0.3
+ mdurl: 1.0.1
+ uc.micro: 1.0.6
+ dev: false
+
+ /markdown-it/8.4.2:
+ resolution: {integrity: sha512-GcRz3AWTqSUphY3vsUqQSFMbgR38a4Lh3GWlHRh/7MRwz8mcu9n2IO7HOh+bXHrR9kOPDl5RNCaEsrneb+xhHQ==}
+ hasBin: true
+ dependencies:
+ argparse: 1.0.10
+ entities: 1.1.2
+ linkify-it: 2.2.0
+ mdurl: 1.0.1
+ uc.micro: 1.0.6
+ dev: false
+
+ /mdurl/1.0.1:
+ resolution: {integrity: sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==}
+ dev: false
+
+ /memoize-one/6.0.0:
+ resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==}
+ dev: false
+
+ /merge-stream/2.0.0:
+ resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==}
+ dev: true
+
+ /merge2/1.4.1:
+ resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==}
+ engines: {node: '>= 8'}
+
+ /mermaid/8.14.0:
+ resolution: {integrity: sha512-ITSHjwVaby1Li738sxhF48sLTxcNyUAoWfoqyztL1f7J6JOLpHOuQPNLBb6lxGPUA0u7xP9IRULgvod0dKu35A==}
+ dependencies:
+ '@braintree/sanitize-url': 3.1.0
+ d3: 7.8.4
+ dagre: 0.8.5
+ dagre-d3: 0.6.4
+ dompurify: 2.3.5
+ graphlib: 2.1.8
+ khroma: 1.4.1
+ moment-mini: 2.29.4
+ stylis: 4.2.0
+ dev: false
+
+ /micromatch/3.1.10:
+ resolution: {integrity: sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ arr-diff: 4.0.0
+ array-unique: 0.3.2
+ braces: 2.3.2
+ define-property: 2.0.2
+ extend-shallow: 3.0.2
+ extglob: 2.0.4
+ fragment-cache: 0.2.1
+ kind-of: 6.0.3
+ nanomatch: 1.2.13
+ object.pick: 1.3.0
+ regex-not: 1.0.2
+ snapdragon: 0.8.2
+ to-regex: 3.0.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /micromatch/4.0.5:
+ resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==}
+ engines: {node: '>=8.6'}
+ dependencies:
+ braces: 3.0.2
+ picomatch: 2.3.1
+ dev: true
+
+ /mime-db/1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+ dev: false
+
+ /mime-types/2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-db: 1.52.0
+ dev: false
+
+ /mimic-fn/2.1.0:
+ resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /mimic-fn/4.0.0:
+ resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /minimatch/3.1.2:
+ resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==}
+ dependencies:
+ brace-expansion: 1.1.11
+
+ /minimatch/5.1.6:
+ resolution: {integrity: sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==}
+ engines: {node: '>=10'}
+ dependencies:
+ brace-expansion: 2.0.1
+ dev: true
+
+ /mixin-deep/1.3.2:
+ resolution: {integrity: sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ for-in: 1.0.2
+ is-extendable: 1.0.1
+ dev: false
+
+ /mlly/1.2.1:
+ resolution: {integrity: sha512-1aMEByaWgBPEbWV2BOPEMySRrzl7rIHXmQxam4DM8jVjalTQDjpN2ZKOLUrwyhfZQO7IXHml2StcHMhooDeEEQ==}
+ dependencies:
+ acorn: 8.8.2
+ pathe: 1.1.0
+ pkg-types: 1.0.3
+ ufo: 1.1.2
+ dev: true
+
+ /moment-mini/2.29.4:
+ resolution: {integrity: sha512-uhXpYwHFeiTbY9KSgPPRoo1nt8OxNVdMVoTBYHfSEKeRkIkwGpO+gERmhuhBtzfaeOyTkykSrm2+noJBgqt3Hg==}
+ dev: false
+
+ /ms/2.0.0:
+ resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==}
+ dev: false
+
+ /ms/2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ dev: true
+
+ /nanoid/3.3.6:
+ resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+
+ /nanomatch/1.2.13:
+ resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ arr-diff: 4.0.0
+ array-unique: 0.3.2
+ define-property: 2.0.2
+ extend-shallow: 3.0.2
+ fragment-cache: 0.2.1
+ is-windows: 1.0.2
+ kind-of: 6.0.3
+ object.pick: 1.3.0
+ regex-not: 1.0.2
+ snapdragon: 0.8.2
+ to-regex: 3.0.2
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /natural-compare-lite/1.4.0:
+ resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==}
+ dev: true
+
+ /natural-compare/1.4.0:
+ resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
+ dev: true
+
+ /node-releases/2.0.11:
+ resolution: {integrity: sha512-+M0PwXeU80kRohZ3aT4J/OnR+l9/KD2nVLNNoRgFtnf+umQVFdGBAO2N8+nCnEi0xlh/Wk3zOGC+vNNx+uM79Q==}
+ dev: true
+
+ /normalize-path/3.0.0:
+ resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /normalize-wheel-es/1.2.0:
+ resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==}
+ dev: false
+
+ /npm-run-path/4.0.1:
+ resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
+ engines: {node: '>=8'}
+ dependencies:
+ path-key: 3.1.1
+ dev: true
+
+ /npm-run-path/5.1.0:
+ resolution: {integrity: sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q==}
+ engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
+ dependencies:
+ path-key: 4.0.0
+ dev: true
+
+ /nth-check/2.1.1:
+ resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==}
+ dependencies:
+ boolbase: 1.0.0
+ dev: true
+
+ /object-copy/0.1.0:
+ resolution: {integrity: sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ copy-descriptor: 0.1.1
+ define-property: 0.2.5
+ kind-of: 3.2.2
+ dev: false
+
+ /object-inspect/1.12.3:
+ resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==}
+ dev: true
+
+ /object-visit/1.0.1:
+ resolution: {integrity: sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ isobject: 3.0.1
+ dev: false
+
+ /object.pick/1.3.0:
+ resolution: {integrity: sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ isobject: 3.0.1
+ dev: false
+
+ /once/1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+
+ /onetime/5.1.2:
+ resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==}
+ engines: {node: '>=6'}
+ dependencies:
+ mimic-fn: 2.1.0
+ dev: true
+
+ /onetime/6.0.0:
+ resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ mimic-fn: 4.0.0
+ dev: true
+
+ /optionator/0.9.1:
+ resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ deep-is: 0.1.4
+ fast-levenshtein: 2.0.6
+ levn: 0.4.1
+ prelude-ls: 1.2.1
+ type-check: 0.4.0
+ word-wrap: 1.2.3
+ dev: true
+
+ /p-limit/3.1.0:
+ resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ yocto-queue: 0.1.0
+ dev: true
+
+ /p-locate/5.0.0:
+ resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
+ engines: {node: '>=10'}
+ dependencies:
+ p-limit: 3.1.0
+ dev: true
+
+ /p-map/4.0.0:
+ resolution: {integrity: sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ aggregate-error: 3.1.0
+ dev: true
+
+ /parent-module/1.0.1:
+ resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==}
+ engines: {node: '>=6'}
+ dependencies:
+ callsites: 3.1.0
+ dev: true
+
+ /pascalcase/0.1.1:
+ resolution: {integrity: sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /path-dirname/1.0.2:
+ resolution: {integrity: sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q==}
+ dev: false
+
+ /path-exists/4.0.0:
+ resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /path-is-absolute/1.0.1:
+ resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==}
+ engines: {node: '>=0.10.0'}
+
+ /path-key/3.1.1:
+ resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /path-key/4.0.0:
+ resolution: {integrity: sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /path-parse/1.0.7:
+ resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==}
+ dev: true
+
+ /path-type/3.0.0:
+ resolution: {integrity: sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==}
+ engines: {node: '>=4'}
+ dependencies:
+ pify: 3.0.0
+ dev: false
+
+ /path-type/4.0.0:
+ resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /pathe/1.1.0:
+ resolution: {integrity: sha512-ODbEPR0KKHqECXW1GoxdDb+AZvULmXjVPy4rt+pGo2+TnjJTIPJQSVS6N63n8T2Ip+syHhbn52OewKicV0373w==}
+ dev: true
+
+ /picocolors/1.0.0:
+ resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==}
+
+ /picomatch/2.3.1:
+ resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==}
+ engines: {node: '>=8.6'}
+ dev: true
+
+ /pidtree/0.6.0:
+ resolution: {integrity: sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g==}
+ engines: {node: '>=0.10'}
+ hasBin: true
+ dev: true
+
+ /pify/3.0.0:
+ resolution: {integrity: sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==}
+ engines: {node: '>=4'}
+ dev: false
+
+ /pify/4.0.1:
+ resolution: {integrity: sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /pinia/2.1.3_typescript@4.9.5+vue@3.3.4:
+ resolution: {integrity: sha512-XNA/z/ye4P5rU1pieVmh0g/hSuDO98/a5UC8oSP0DNdvt6YtetJNHTrXwpwsQuflkGT34qKxAEcp7lSxXNjf/A==}
+ peerDependencies:
+ '@vue/composition-api': ^1.4.0
+ typescript: '>=4.4.4'
+ vue: ^2.6.14 || ^3.3.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+ typescript:
+ optional: true
+ dependencies:
+ '@vue/devtools-api': 6.5.0
+ typescript: 4.9.5
+ vue: 3.3.4
+ vue-demi: 0.14.5_vue@3.3.4
+ dev: false
+
+ /pkg-types/1.0.3:
+ resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==}
+ dependencies:
+ jsonc-parser: 3.2.0
+ mlly: 1.2.1
+ pathe: 1.1.0
+ dev: true
+
+ /posix-character-classes/0.1.1:
+ resolution: {integrity: sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /postcss-selector-parser/6.0.13:
+ resolution: {integrity: sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ==}
+ engines: {node: '>=4'}
+ dependencies:
+ cssesc: 3.0.0
+ util-deprecate: 1.0.2
+ dev: true
+
+ /postcss/8.4.23:
+ resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==}
+ engines: {node: ^10 || ^12 || >=14}
+ dependencies:
+ nanoid: 3.3.6
+ picocolors: 1.0.0
+ source-map-js: 1.0.2
+
+ /prelude-ls/1.2.1:
+ resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
+ engines: {node: '>= 0.8.0'}
+ dev: true
+
+ /prettier-linter-helpers/1.0.0:
+ resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==}
+ engines: {node: '>=6.0.0'}
+ dependencies:
+ fast-diff: 1.3.0
+ dev: true
+
+ /prettier/2.8.8:
+ resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==}
+ engines: {node: '>=10.13.0'}
+ hasBin: true
+ dev: true
+
+ /prismjs/1.29.0:
+ resolution: {integrity: sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /proxy-from-env/1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+ dev: false
+
+ /punycode/2.3.0:
+ resolution: {integrity: sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /queue-microtask/1.2.3:
+ resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==}
+ dev: true
+
+ /readdirp/3.6.0:
+ resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==}
+ engines: {node: '>=8.10.0'}
+ dependencies:
+ picomatch: 2.3.1
+ dev: true
+
+ /regenerator-runtime/0.13.11:
+ resolution: {integrity: sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==}
+ dev: false
+
+ /regex-not/1.0.2:
+ resolution: {integrity: sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ extend-shallow: 3.0.2
+ safe-regex: 1.1.0
+ dev: false
+
+ /repeat-element/1.1.4:
+ resolution: {integrity: sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /repeat-string/1.6.1:
+ resolution: {integrity: sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w==}
+ engines: {node: '>=0.10'}
+ dev: false
+
+ /resize-observer-polyfill/1.5.1:
+ resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
+ dev: false
+
+ /resolve-from/4.0.0:
+ resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==}
+ engines: {node: '>=4'}
+ dev: true
+
+ /resolve-url/0.2.1:
+ resolution: {integrity: sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg==}
+ deprecated: https://github.com/lydell/resolve-url#deprecated
+ dev: false
+
+ /resolve/1.22.2:
+ resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==}
+ hasBin: true
+ dependencies:
+ is-core-module: 2.12.1
+ path-parse: 1.0.7
+ supports-preserve-symlinks-flag: 1.0.0
+ dev: true
+
+ /restore-cursor/3.1.0:
+ resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
+ engines: {node: '>=8'}
+ dependencies:
+ onetime: 5.1.2
+ signal-exit: 3.0.7
+ dev: true
+
+ /ret/0.1.15:
+ resolution: {integrity: sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==}
+ engines: {node: '>=0.12'}
+ dev: false
+
+ /reusify/1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ dev: true
+
+ /rfdc/1.3.0:
+ resolution: {integrity: sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==}
+ dev: true
+
+ /rimraf/3.0.2:
+ resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
+ hasBin: true
+ dependencies:
+ glob: 7.2.3
+ dev: true
+
+ /robust-predicates/3.0.1:
+ resolution: {integrity: sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g==}
+ dev: false
+
+ /rollup/2.79.1:
+ resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
+ engines: {node: '>=10.0.0'}
+ hasBin: true
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
+ /run-parallel/1.2.0:
+ resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==}
+ dependencies:
+ queue-microtask: 1.2.3
+ dev: true
+
+ /rw/1.3.3:
+ resolution: {integrity: sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ==}
+ dev: false
+
+ /rxjs/7.8.1:
+ resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
+ dependencies:
+ tslib: 2.5.2
+ dev: true
+
+ /safe-regex/1.1.0:
+ resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==}
+ dependencies:
+ ret: 0.1.15
+ dev: false
+
+ /safer-buffer/2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+ dev: false
+
+ /sass/1.62.1:
+ resolution: {integrity: sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==}
+ engines: {node: '>=14.0.0'}
+ hasBin: true
+ dependencies:
+ chokidar: 3.5.3
+ immutable: 4.3.0
+ source-map-js: 1.0.2
+ dev: true
+
+ /scule/1.0.0:
+ resolution: {integrity: sha512-4AsO/FrViE/iDNEPaAQlb77tf0csuq27EsVpy6ett584EcRTp6pTDLoGWVxCD77y5iU5FauOvhsI4o1APwPoSQ==}
+ dev: true
+
+ /section-matter/1.0.0:
+ resolution: {integrity: sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==}
+ engines: {node: '>=4'}
+ dependencies:
+ extend-shallow: 2.0.1
+ kind-of: 6.0.3
+ dev: false
+
+ /semver/6.3.0:
+ resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
+ hasBin: true
+
+ /semver/7.5.1:
+ resolution: {integrity: sha512-Wvss5ivl8TMRZXXESstBA4uR5iXgEN/VC5/sOcuXdVLzcdkz4HWetIoRfG5gb5X+ij/G9rw9YoGn3QoQ8OCSpw==}
+ engines: {node: '>=10'}
+ hasBin: true
+ dependencies:
+ lru-cache: 6.0.0
+ dev: true
+
+ /set-value/2.0.1:
+ resolution: {integrity: sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ extend-shallow: 2.0.1
+ is-extendable: 0.1.1
+ is-plain-object: 2.0.4
+ split-string: 3.1.0
+ dev: false
+
+ /shebang-command/2.0.0:
+ resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
+ engines: {node: '>=8'}
+ dependencies:
+ shebang-regex: 3.0.0
+ dev: true
+
+ /shebang-regex/3.0.0:
+ resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /signal-exit/3.0.7:
+ resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==}
+ dev: true
+
+ /slash/2.0.0:
+ resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==}
+ engines: {node: '>=6'}
+ dev: false
+
+ /slash/3.0.0:
+ resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /slice-ansi/3.0.0:
+ resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-styles: 4.3.0
+ astral-regex: 2.0.0
+ is-fullwidth-code-point: 3.0.0
+ dev: true
+
+ /slice-ansi/4.0.0:
+ resolution: {integrity: sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ astral-regex: 2.0.0
+ is-fullwidth-code-point: 3.0.0
+ dev: true
+
+ /slice-ansi/5.0.0:
+ resolution: {integrity: sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-styles: 6.2.1
+ is-fullwidth-code-point: 4.0.0
+ dev: true
+
+ /sm-crypto/0.3.12:
+ resolution: {integrity: sha512-272PBzB4PYaBdeGa41TH9ZlMGLPVRmS36Gs4FjmHwXIdihQypAbhhFWZTaa/3de69q2KfMme1M5O2W5+spAdrg==}
+ dependencies:
+ jsbn: 1.1.0
+ dev: false
+
+ /snapdragon-node/2.1.1:
+ resolution: {integrity: sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ define-property: 1.0.0
+ isobject: 3.0.1
+ snapdragon-util: 3.0.1
+ dev: false
+
+ /snapdragon-util/3.0.1:
+ resolution: {integrity: sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 3.2.2
+ dev: false
+
+ /snapdragon/0.8.2:
+ resolution: {integrity: sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ base: 0.11.2
+ debug: 2.6.9
+ define-property: 0.2.5
+ extend-shallow: 2.0.1
+ map-cache: 0.2.2
+ source-map: 0.5.7
+ source-map-resolve: 0.5.3
+ use: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /source-map-js/1.0.2:
+ resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
+ engines: {node: '>=0.10.0'}
+
+ /source-map-resolve/0.5.3:
+ resolution: {integrity: sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==}
+ deprecated: See https://github.com/lydell/source-map-resolve#deprecated
+ dependencies:
+ atob: 2.1.2
+ decode-uri-component: 0.2.2
+ resolve-url: 0.2.1
+ source-map-url: 0.4.1
+ urix: 0.1.0
+ dev: false
+
+ /source-map-url/0.4.1:
+ resolution: {integrity: sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==}
+ deprecated: See https://github.com/lydell/source-map-url#deprecated
+ dev: false
+
+ /source-map/0.5.7:
+ resolution: {integrity: sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /source-map/0.6.1:
+ resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /sourcemap-codec/1.4.8:
+ resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
+ deprecated: Please use @jridgewell/sourcemap-codec instead
+ dev: true
+
+ /split-string/3.1.0:
+ resolution: {integrity: sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ extend-shallow: 3.0.2
+ dev: false
+
+ /sprintf-js/1.0.3:
+ resolution: {integrity: sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==}
+ dev: false
+
+ /static-extend/0.1.2:
+ resolution: {integrity: sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ define-property: 0.2.5
+ object-copy: 0.1.0
+ dev: false
+
+ /string-argv/0.3.2:
+ resolution: {integrity: sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q==}
+ engines: {node: '>=0.6.19'}
+ dev: true
+
+ /string-width/4.2.3:
+ resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==}
+ engines: {node: '>=8'}
+ dependencies:
+ emoji-regex: 8.0.0
+ is-fullwidth-code-point: 3.0.0
+ strip-ansi: 6.0.1
+ dev: true
+
+ /string-width/5.1.2:
+ resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==}
+ engines: {node: '>=12'}
+ dependencies:
+ eastasianwidth: 0.2.0
+ emoji-regex: 9.2.2
+ strip-ansi: 7.0.1
+ dev: true
+
+ /strip-ansi/6.0.1:
+ resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-regex: 5.0.1
+ dev: true
+
+ /strip-ansi/7.0.1:
+ resolution: {integrity: sha512-cXNxvT8dFNRVfhVME3JAe98mkXDYN2O1l7jmcwMnOslDeESg1rF/OZMtK0nRAhiari1unG5cD4jG3rapUAkLbw==}
+ engines: {node: '>=12'}
+ dependencies:
+ ansi-regex: 6.0.1
+ dev: true
+
+ /strip-bom-string/1.0.0:
+ resolution: {integrity: sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /strip-final-newline/2.0.0:
+ resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==}
+ engines: {node: '>=6'}
+ dev: true
+
+ /strip-final-newline/3.0.0:
+ resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /strip-json-comments/3.1.1:
+ resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==}
+ engines: {node: '>=8'}
+ dev: true
+
+ /strip-literal/1.0.1:
+ resolution: {integrity: sha512-QZTsipNpa2Ppr6v1AmJHESqJ3Uz247MUS0OjrnnZjFAvEoWqxuyFuXn2xLgMtRnijJShAa1HL0gtJyUs7u7n3Q==}
+ dependencies:
+ acorn: 8.8.2
+ dev: true
+
+ /stylis/4.2.0:
+ resolution: {integrity: sha512-Orov6g6BB1sDfYgzWfTHDOxamtX1bE/zo104Dh9e6fqJ3PooipYyfJ0pUmrZO2wAvO8YbEyeFrkV91XTsGMSrw==}
+ dev: false
+
+ /supports-color/5.5.0:
+ resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==}
+ engines: {node: '>=4'}
+ dependencies:
+ has-flag: 3.0.0
+
+ /supports-color/7.2.0:
+ resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==}
+ engines: {node: '>=8'}
+ dependencies:
+ has-flag: 4.0.0
+ dev: true
+
+ /supports-preserve-symlinks-flag/1.0.0:
+ resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==}
+ engines: {node: '>= 0.4'}
+ dev: true
+
+ /svg-tags/1.0.0:
+ resolution: {integrity: sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==}
+ dev: true
+
+ /text-table/0.2.0:
+ resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==}
+ dev: true
+
+ /through/2.3.8:
+ resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==}
+ dev: true
+
+ /to-fast-properties/2.0.0:
+ resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
+ engines: {node: '>=4'}
+
+ /to-object-path/0.3.0:
+ resolution: {integrity: sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ kind-of: 3.2.2
+ dev: false
+
+ /to-regex-range/2.1.1:
+ resolution: {integrity: sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ is-number: 3.0.0
+ repeat-string: 1.6.1
+ dev: false
+
+ /to-regex-range/5.0.1:
+ resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==}
+ engines: {node: '>=8.0'}
+ dependencies:
+ is-number: 7.0.0
+ dev: true
+
+ /to-regex/3.0.2:
+ resolution: {integrity: sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ define-property: 2.0.2
+ extend-shallow: 3.0.2
+ regex-not: 1.0.2
+ safe-regex: 1.1.0
+ dev: false
+
+ /toggle-selection/1.0.6:
+ resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
+ dev: false
+
+ /toml/3.0.0:
+ resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==}
+ dev: false
+
+ /tslib/1.14.1:
+ resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==}
+ dev: true
+
+ /tslib/2.5.2:
+ resolution: {integrity: sha512-5svOrSA2w3iGFDs1HibEVBGbDrAY82bFQ3HZ3ixB+88nsbsWQoKqDRb5UBYAUPEzbBn6dAp5gRNXglySbx1MlA==}
+ dev: true
+
+ /tsutils/3.21.0_typescript@4.9.5:
+ resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
+ engines: {node: '>= 6'}
+ peerDependencies:
+ typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta'
+ dependencies:
+ tslib: 1.14.1
+ typescript: 4.9.5
+ dev: true
+
+ /type-check/0.4.0:
+ resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
+ engines: {node: '>= 0.8.0'}
+ dependencies:
+ prelude-ls: 1.2.1
+ dev: true
+
+ /type-fest/0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /type-fest/0.21.3:
+ resolution: {integrity: sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==}
+ engines: {node: '>=10'}
+ dev: true
+
+ /typescript/4.9.5:
+ resolution: {integrity: sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==}
+ engines: {node: '>=4.2.0'}
+ hasBin: true
+
+ /uc.micro/1.0.6:
+ resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==}
+ dev: false
+
+ /ufo/1.1.2:
+ resolution: {integrity: sha512-TrY6DsjTQQgyS3E3dBaOXf0TpPD8u9FVrVYmKVegJuFw51n/YB9XPt+U6ydzFG5ZIN7+DIjPbNmXoBj9esYhgQ==}
+ dev: true
+
+ /unimport/1.3.0:
+ resolution: {integrity: sha512-fOkrdxglsHd428yegH0wPH/6IfaSdDeMXtdRGn6en/ccyzc2aaoxiUTMrJyc6Bu+xoa18RJRPMfLUHEzjz8atw==}
+ dependencies:
+ '@rollup/pluginutils': 5.0.2
+ escape-string-regexp: 5.0.0
+ fast-glob: 3.2.12
+ local-pkg: 0.4.3
+ magic-string: 0.27.0
+ mlly: 1.2.1
+ pathe: 1.1.0
+ pkg-types: 1.0.3
+ scule: 1.0.0
+ strip-literal: 1.0.1
+ unplugin: 1.3.1
+ transitivePeerDependencies:
+ - rollup
+ dev: true
+
+ /union-value/1.0.1:
+ resolution: {integrity: sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ arr-union: 3.1.0
+ get-value: 2.0.6
+ is-extendable: 0.1.1
+ set-value: 2.0.1
+ dev: false
+
+ /universalify/0.1.2:
+ resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==}
+ engines: {node: '>= 4.0.0'}
+ dev: false
+
+ /unplugin-auto-import/0.11.5:
+ resolution: {integrity: sha512-nvbL2AQwLRR8wbHpJ6L1EBVNmjN045RSedTa4NtsGRkSQFXkI1iKHs4dTqJwcKZsnFrZOAKtLPiN1/oQTObLZw==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@vueuse/core': '*'
+ peerDependenciesMeta:
+ '@vueuse/core':
+ optional: true
+ dependencies:
+ '@antfu/utils': 0.7.2
+ '@rollup/pluginutils': 5.0.2
+ local-pkg: 0.4.3
+ magic-string: 0.26.7
+ unimport: 1.3.0
+ unplugin: 1.3.1
+ transitivePeerDependencies:
+ - rollup
+ dev: true
+
+ /unplugin-element-plus/0.4.1_vite@3.2.6:
+ resolution: {integrity: sha512-x8L35sppkbtnAf+aSPXNsLPjCUrM0mWKgujqMIgrHiDQaGbpMlNnbN2kjP5CMclykNOw8fUCreEhtxPyzg8tmw==}
+ engines: {node: '>=14.19.0'}
+ dependencies:
+ '@rollup/pluginutils': 4.2.1
+ es-module-lexer: 0.10.5
+ magic-string: 0.26.7
+ unplugin: 0.7.2_vite@3.2.6
+ transitivePeerDependencies:
+ - esbuild
+ - rollup
+ - vite
+ - webpack
+ dev: true
+
+ /unplugin-icons/0.14.15:
+ resolution: {integrity: sha512-J6YBA+fUzVM2IZPXCK3Pnk36jYVwQ6lkjRgOnZaXNIxpMDsmwDqrE1AGJ0zUbfuEoOa90OBGc0OPfN1r+qlSIQ==}
+ peerDependencies:
+ '@svgr/core': '>=5.5.0'
+ '@vue/compiler-sfc': ^3.0.2
+ vue-template-compiler: ^2.6.12
+ vue-template-es2015-compiler: ^1.9.0
+ peerDependenciesMeta:
+ '@svgr/core':
+ optional: true
+ '@vue/compiler-sfc':
+ optional: true
+ vue-template-compiler:
+ optional: true
+ vue-template-es2015-compiler:
+ optional: true
+ dependencies:
+ '@antfu/install-pkg': 0.1.1
+ '@antfu/utils': 0.7.2
+ '@iconify/utils': 2.1.5
+ debug: 4.3.4
+ kolorist: 1.8.0
+ local-pkg: 0.4.3
+ unplugin: 1.3.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /unplugin-vue-components/0.22.12_vue@3.3.4:
+ resolution: {integrity: sha512-FxyzsuBvMCYPIk+8cgscGBQ345tvwVu+qY5IhE++eorkyvA4Z1TiD/HCiim+Kbqozl10i4K+z+NCa2WO2jexRA==}
+ engines: {node: '>=14'}
+ peerDependencies:
+ '@babel/parser': ^7.15.8
+ vue: 2 || 3
+ peerDependenciesMeta:
+ '@babel/parser':
+ optional: true
+ dependencies:
+ '@antfu/utils': 0.7.2
+ '@rollup/pluginutils': 5.0.2
+ chokidar: 3.5.3
+ debug: 4.3.4
+ fast-glob: 3.2.12
+ local-pkg: 0.4.3
+ magic-string: 0.27.0
+ minimatch: 5.1.6
+ resolve: 1.22.2
+ unplugin: 1.3.1
+ vue: 3.3.4
+ transitivePeerDependencies:
+ - rollup
+ - supports-color
+ dev: true
+
+ /unplugin/0.7.2_vite@3.2.6:
+ resolution: {integrity: sha512-m7thX4jP8l5sETpLdUASoDOGOcHaOVtgNyrYlToyQUvILUtEzEnngRBrHnAX3IKqooJVmXpoa/CwQ/QqzvGaHQ==}
+ peerDependencies:
+ esbuild: '>=0.13'
+ rollup: ^2.50.0
+ vite: ^2.3.0 || ^3.0.0-0
+ webpack: 4 || 5
+ peerDependenciesMeta:
+ esbuild:
+ optional: true
+ rollup:
+ optional: true
+ vite:
+ optional: true
+ webpack:
+ optional: true
+ dependencies:
+ acorn: 8.8.2
+ chokidar: 3.5.3
+ vite: 3.2.6_3cl3pib2kx7jaftbqhg3ux7t34
+ webpack-sources: 3.2.3
+ webpack-virtual-modules: 0.4.6
+ dev: true
+
+ /unplugin/1.3.1:
+ resolution: {integrity: sha512-h4uUTIvFBQRxUKS2Wjys6ivoeofGhxzTe2sRWlooyjHXVttcVfV/JiavNd3d4+jty0SVV0dxGw9AkY9MwiaCEw==}
+ dependencies:
+ acorn: 8.8.2
+ chokidar: 3.5.3
+ webpack-sources: 3.2.3
+ webpack-virtual-modules: 0.5.0
+ dev: true
+
+ /unset-value/1.0.0:
+ resolution: {integrity: sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ==}
+ engines: {node: '>=0.10.0'}
+ dependencies:
+ has-value: 0.3.1
+ isobject: 3.0.1
+ dev: false
+
+ /upath/1.2.0:
+ resolution: {integrity: sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==}
+ engines: {node: '>=4'}
+ dev: false
+
+ /update-browserslist-db/1.0.11_browserslist@4.21.5:
+ resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==}
+ hasBin: true
+ peerDependencies:
+ browserslist: '>= 4.21.0'
+ dependencies:
+ browserslist: 4.21.5
+ escalade: 3.1.1
+ picocolors: 1.0.0
+ dev: true
+
+ /uri-js/4.4.1:
+ resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==}
+ dependencies:
+ punycode: 2.3.0
+ dev: true
+
+ /urix/0.1.0:
+ resolution: {integrity: sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg==}
+ deprecated: Please see https://github.com/lydell/urix#deprecated
+ dev: false
+
+ /use/3.1.1:
+ resolution: {integrity: sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==}
+ engines: {node: '>=0.10.0'}
+ dev: false
+
+ /util-deprecate/1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ dev: true
+
+ /vant/3.6.11_vue@3.3.4:
+ resolution: {integrity: sha512-ueEu4rOePQUoeP6mjuVHogmg3t05yejrYkFCG/NMWY2haOscvQTFGDVuUazmNdjgizqL1D9rH6xV0qy2aRWF9Q==}
+ peerDependencies:
+ vue: ^3.0.0
+ dependencies:
+ '@vant/icons': 1.8.0
+ '@vant/popperjs': 1.3.0
+ '@vant/use': 1.5.1_vue@3.3.4
+ vue: 3.3.4
+ dev: false
+
+ /vite/3.2.6_3cl3pib2kx7jaftbqhg3ux7t34:
+ resolution: {integrity: sha512-nTXTxYVvaQNLoW5BQ8PNNQ3lPia57gzsQU/Khv+JvzKPku8kNZL6NMUR/qwXhMG6E+g1idqEPanomJ+VZgixEg==}
+ engines: {node: ^14.18.0 || >=16.0.0}
+ hasBin: true
+ peerDependencies:
+ '@types/node': '>= 14'
+ less: '*'
+ sass: '*'
+ stylus: '*'
+ sugarss: '*'
+ terser: ^5.4.0
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ less:
+ optional: true
+ sass:
+ optional: true
+ stylus:
+ optional: true
+ sugarss:
+ optional: true
+ terser:
+ optional: true
+ dependencies:
+ '@types/node': 18.16.14
+ esbuild: 0.15.18
+ postcss: 8.4.23
+ resolve: 1.22.2
+ rollup: 2.79.1
+ sass: 1.62.1
+ optionalDependencies:
+ fsevents: 2.3.2
+ dev: true
+
+ /vue-demi/0.14.5_vue@3.3.4:
+ resolution: {integrity: sha512-o9NUVpl/YlsGJ7t+xuqJKx8EBGf1quRhCiT6D/J0pfwmk9zUwYkC7yrF4SZCe6fETvSM3UNL2edcbYrSyc4QHA==}
+ engines: {node: '>=12'}
+ hasBin: true
+ requiresBuild: true
+ peerDependencies:
+ '@vue/composition-api': ^1.0.0-rc.1
+ vue: ^3.0.0-0 || ^2.6.0
+ peerDependenciesMeta:
+ '@vue/composition-api':
+ optional: true
+ dependencies:
+ vue: 3.3.4
+ dev: false
+
+ /vue-eslint-parser/9.3.0_eslint@8.41.0:
+ resolution: {integrity: sha512-48IxT9d0+wArT1+3wNIy0tascRoywqSUe2E1YalIC1L8jsUGe5aJQItWfRok7DVFGz3UYvzEI7n5wiTXsCMAcQ==}
+ engines: {node: ^14.17.0 || >=16.0.0}
+ peerDependencies:
+ eslint: '>=6.0.0'
+ dependencies:
+ debug: 4.3.4
+ eslint: 8.41.0
+ eslint-scope: 7.2.0
+ eslint-visitor-keys: 3.4.1
+ espree: 9.5.2
+ esquery: 1.5.0
+ lodash: 4.17.21
+ semver: 7.5.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
+ /vue-i18n/9.2.2_vue@3.3.4:
+ resolution: {integrity: sha512-yswpwtj89rTBhegUAv9Mu37LNznyu3NpyLQmozF3i1hYOhwpG8RjcjIFIIfnu+2MDZJGSZPXaKWvnQA71Yv9TQ==}
+ engines: {node: '>= 14'}
+ peerDependencies:
+ vue: ^3.0.0
+ dependencies:
+ '@intlify/core-base': 9.2.2
+ '@intlify/shared': 9.2.2
+ '@intlify/vue-devtools': 9.2.2
+ '@vue/devtools-api': 6.5.0
+ vue: 3.3.4
+ dev: false
+
+ /vue-router/4.2.1_vue@3.3.4:
+ resolution: {integrity: sha512-nW28EeifEp8Abc5AfmAShy5ZKGsGzjcnZ3L1yc2DYUo+MqbBClrRP9yda3dIekM4I50/KnEwo1wkBLf7kHH5Cw==}
+ peerDependencies:
+ vue: ^3.2.0
+ dependencies:
+ '@vue/devtools-api': 6.5.0
+ vue: 3.3.4
+ dev: false
+
+ /vue-tsc/0.40.13_typescript@4.9.5:
+ resolution: {integrity: sha512-xzuN3g5PnKfJcNrLv4+mAjteMd5wLm5fRhW0034OfNJZY4WhB07vhngea/XeGn7wNYt16r7syonzvW/54dcNiA==}
+ hasBin: true
+ peerDependencies:
+ typescript: '*'
+ dependencies:
+ '@volar/vue-language-core': 0.40.13
+ '@volar/vue-typescript': 0.40.13
+ typescript: 4.9.5
+ dev: true
+
+ /vue/3.3.4:
+ resolution: {integrity: sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==}
+ dependencies:
+ '@vue/compiler-dom': 3.3.4
+ '@vue/compiler-sfc': 3.3.4
+ '@vue/runtime-dom': 3.3.4
+ '@vue/server-renderer': 3.3.4_vue@3.3.4
+ '@vue/shared': 3.3.4
+
+ /vue3-slide-verify/1.1.4:
+ resolution: {integrity: sha512-er2d9TSPsF5CcmoxBfP6eSkc4IHROwXu6Ytghkwf52apXpXy2ZtW3tOgHnmFWb3GHESKxZ9bsFXqSX+fJ6hjrg==}
+ dependencies:
+ vue: 3.3.4
+ dev: false
+
+ /webpack-chain/4.12.1:
+ resolution: {integrity: sha512-BCfKo2YkDe2ByqkEWe1Rw+zko4LsyS75LVr29C6xIrxAg9JHJ4pl8kaIZ396SUSNp6b4815dRZPSTAS8LlURRQ==}
+ dependencies:
+ deepmerge: 1.5.2
+ javascript-stringify: 1.6.0
+ dev: false
+
+ /webpack-sources/3.2.3:
+ resolution: {integrity: sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==}
+ engines: {node: '>=10.13.0'}
+ dev: true
+
+ /webpack-virtual-modules/0.4.6:
+ resolution: {integrity: sha512-5tyDlKLqPfMqjT3Q9TAqf2YqjwmnUleZwzJi1A5qXnlBCdj2AtOJ6wAWdglTIDOPgOiOrXeBeFcsQ8+aGQ6QbA==}
+ dev: true
+
+ /webpack-virtual-modules/0.5.0:
+ resolution: {integrity: sha512-kyDivFZ7ZM0BVOUteVbDFhlRt7Ah/CSPwJdi8hBpkK7QLumUqdLtVfm/PX/hkcnrvr0i77fO5+TjZ94Pe+C9iw==}
+ dev: true
+
+ /which/2.0.2:
+ resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==}
+ engines: {node: '>= 8'}
+ hasBin: true
+ dependencies:
+ isexe: 2.0.0
+ dev: true
+
+ /word-wrap/1.2.3:
+ resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==}
+ engines: {node: '>=0.10.0'}
+ dev: true
+
+ /wrap-ansi/6.2.0:
+ resolution: {integrity: sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==}
+ engines: {node: '>=8'}
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ dev: true
+
+ /wrap-ansi/7.0.0:
+ resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==}
+ engines: {node: '>=10'}
+ dependencies:
+ ansi-styles: 4.3.0
+ string-width: 4.2.3
+ strip-ansi: 6.0.1
+ dev: true
+
+ /wrappy/1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+
+ /xml-name-validator/4.0.0:
+ resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
+ engines: {node: '>=12'}
+ dev: true
+
+ /xss/1.0.14:
+ resolution: {integrity: sha512-og7TEJhXvn1a7kzZGQ7ETjdQVS2UfZyTlsEdDOqvQF7GoxNfY+0YLCzBy1kPdsDDx4QuNAonQPddpsn6Xl/7sw==}
+ engines: {node: '>= 0.10.0'}
+ hasBin: true
+ dependencies:
+ commander: 2.20.3
+ cssfilter: 0.0.10
+ dev: false
+
+ /yallist/3.1.1:
+ resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==}
+ dev: true
+
+ /yallist/4.0.0:
+ resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==}
+ dev: true
+
+ /yaml/2.2.2:
+ resolution: {integrity: sha512-CBKFWExMn46Foo4cldiChEzn7S7SRV+wqiluAb6xmueD/fGyRHIhX8m14vVGgeFWjN540nKCNVj6P21eQjgTuA==}
+ engines: {node: '>= 14'}
+ dev: true
+
+ /yocto-queue/0.1.0:
+ resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==}
+ engines: {node: '>=10'}
+ dev: true
diff --git a/public/favicon.ico b/public/favicon.ico
new file mode 100644
index 0000000000000000000000000000000000000000..aec5a877df4c405962ad807c17925983684b129b
GIT binary patch
literal 4286
zcmchbU5g_{6oxC4$c*?gjfld|=rjttm-z=P
zMMNTkh#)qCh#(RX1VOZaLfz@bFy-^sc0;GO(vv}OmuF6$bKdiw>h8H3V+Q;$OQWCW
zMq$i-#+b`M$yiW5{-bx#9XGjIFeZd>A>Mubwi1>Q5>zWM>bI-@`V*r99E2WxqbYXv
z-9`7_lY0}WA?%2>lU=;~G#@-Q7()eN3+kQMzwkHt=xI~H0zw8)ZJOR&HBc`%Bd?vl
z$&F{s6g-3sj#~5~T9`Fh-A6r;CO0e3TkhRH$0yH@EUY19sHnyFNSuPtXjF^-#1b^K
z%`4uw-Tmov2MY)pYHIQKh-jh8Xwo@pqCas0@<=tx7ux^X^S4_F37*_F{etr{>8JW!
zu9^6)KHigT&mLUwLJdiKk!_X;N;VhJk<8P?RI2eE)DxCWi$yCzzwA?G3Q
zve~6s`_=sZqQMbE22U-%L(OrPPPJ64T6~U1H|x{UE5z3?UlMBw8J6nHk2rxkqe=u5IEXsp6g;S&vY-}qx@U`OpkAt1F0c4p#IDYM
z|N7AwtbCetMGP5KkKd%-nTu#jIM)M>ZT)_D$TEC
zNbuwiwmw^;*L(%z?mfs$SVHRG=8sAL+dB^}AY`biO}d`#nff}Tm&X!HaNr^5TT$P*
z>+jbewopOHp!&u)AuqszhuloACZFEluRq>@WC|Wa21jk
+import { watch, onMounted } from 'vue';
+import { useI18n } from 'vue-i18n';
+import { useLangStore } from '@/stores';
+
+import { useLabelColor } from '@/stores/index';
+import { getLabelColors } from '@/api/api-quick-issue';
+
+import AppHeader from '@/components/AppHeader.vue';
+import AppFooter from '@/components/AppFooter.vue';
+
+const { locale } = useI18n();
+const langStore = useLangStore();
+const labelColor = useLabelColor();
+onMounted(async () => {
+ await getLabelColors().then((res) => {
+ labelColor.setLabelColor(res?.data);
+ });
+});
+watch(
+ () => langStore.lang,
+ (val) => {
+ locale.value = val;
+ }
+);
+
+
+
+
+
+
+
+
+
diff --git a/src/api/api-login.ts b/src/api/api-login.ts
new file mode 100644
index 0000000..ce6537e
--- /dev/null
+++ b/src/api/api-login.ts
@@ -0,0 +1,68 @@
+/**
+ * @file 登录接口配置文件
+ * */
+
+import { request } from '@/shared/axios';
+import type { AxiosResponse } from '@/shared/axios';
+import { getUserAuth } from '@/shared/login';
+import { ElMessage } from 'element-plus';
+
+/**
+ * 获取授权的相关回调链接
+ */
+
+const params = {
+ community: 'opengauss',
+ client_id: '90aa315f895544359209920da32ff75a',
+};
+export function queryPermission() {
+ const url = '/api-omapi/oneid/personal/center/user';
+ const { token } = getUserAuth();
+
+ return request
+ .get(url, {
+ params,
+ global: true,
+ $doException: true,
+ headers: {
+ token,
+ },
+ })
+ .then((res: AxiosResponse) => res.data)
+ .catch((err) => {
+ const message = err?.response?.data?.message || '';
+ if (message && message !== 'token expires') {
+ ElMessage({
+ type: 'error',
+ message: err.message,
+ });
+ }
+ });
+}
+
+/**
+ * 获取idtoken用于退出
+ */
+
+export function queryIDToken() {
+ const url = '/api-omapi/oneid/logout';
+ const { token } = getUserAuth();
+ return request
+ .get(url, {
+ params,
+ $doException: true,
+ headers: {
+ token,
+ },
+ })
+ .then((res: AxiosResponse) => res.data)
+ .catch((err) => {
+ const message = err?.response?.data?.message || '';
+ if (message && message !== 'token expires') {
+ ElMessage({
+ type: 'error',
+ message: err.message,
+ });
+ }
+ });
+}
diff --git a/src/api/api-quick-issue.ts b/src/api/api-quick-issue.ts
new file mode 100644
index 0000000..1971e2b
--- /dev/null
+++ b/src/api/api-quick-issue.ts
@@ -0,0 +1,187 @@
+import { request } from '@/shared/axios';
+import type { AxiosResponse } from '@/shared/axios';
+import { IssueQueryData } from '@/shared/@types/type-quick-issue';
+import { getAuthorization } from '@/shared/utils';
+
+function getHeaderConfig() {
+ const headersConfig = {
+ headers: {
+ authorization: getAuthorization(),
+ },
+ };
+ return headersConfig;
+}
+/**
+ * 获取issue 数据
+ * @name getRepoIssue
+ * @return {Array}
+ */
+export function getRepoIssue(params: IssueQueryData) {
+ const url = '/api-issues/issues/';
+ params = JSON.parse(JSON.stringify(params));
+ if (
+ Array.isArray(params.label) &&
+ Array.isArray(params.issue_state) &&
+ Array.isArray(params.exclusion) &&
+ Array.isArray(params.milestone)
+ ) {
+ params.exclusion = params.exclusion.join(',');
+ params.label = params.label.join(',');
+ params.issue_state = params.issue_state.join(',');
+ params.milestone = params.milestone.join(',');
+ }
+ return request
+ .get(url, { params })
+ .then((res: AxiosResponse) => res?.data)
+ .catch((e: any) => {
+ console.error(e);
+ });
+}
+/**
+ * 获取筛选条件
+ * @name getRepoIssue
+ * @return {Array}
+ */
+export function getIssueSelectOption(type: string, params: object | null) {
+ type === 'exLabels' ? (type = 'labels') : '';
+ const url = `/api-issues/issues/${type}`;
+ return request
+ .get(url, { params })
+ .then((res: AxiosResponse) => res?.data)
+ .catch((e: any) => {
+ console.error(e);
+ });
+}
+
+/**
+ * 上传 issue 图片
+ * @name uploadIssueImage
+ * @return {String}
+ */
+export function uploadIssueImage(params: object) {
+ const url = '/api-issues/image/';
+ return request
+ .post(url, params, {
+ headers: {
+ 'Content-Type': 'multipart/form-data',
+ authorization: getAuthorization(),
+ },
+ })
+ .then((res: AxiosResponse) => res?.data)
+ .catch((e: any) => {
+ console.error(e);
+ });
+}
+
+/**
+ * issue 提交邮箱验证
+ * @name getRepoIssue
+ * @return {String}
+ */
+export function verifySubmitterEmail(params: object) {
+ const url = '/api-issues/verify/';
+
+ return request
+ .post(url, params, getHeaderConfig())
+ .then((res: AxiosResponse) => res?.data)
+ .catch((e: any) => {
+ console.error(e);
+ });
+}
+/**
+ * sig仓库查找
+ * @name getRepoIssue
+ * @return {String}
+ */
+export function getReposData(params: object) {
+ const url = `/api-issues/repos/`;
+ return request
+ .get(url, { params })
+ .then((res: AxiosResponse) => res?.data)
+ .catch((e: any) => {
+ console.error(e);
+ });
+}
+/**
+ * 创建issue
+ * @name getRepoIssue
+ * @return {String}
+ */
+export function createIssue(params: object) {
+ const url = `/api-issues/new-issue/`;
+ return request
+ .post(url, params, getHeaderConfig())
+ .then((res: AxiosResponse) => res?.data)
+ .catch((e: any) => {
+ console.error(e);
+ });
+}
+
+/**
+ * 上传 文件
+ * @name uploadFile
+ * @return {String}
+ */
+export function uploadIssueFile(params: object) {
+ const url = '/api-issues/attachment/';
+ return request
+ .post(url, params, {
+ headers: {
+ 'Content-Type': 'multipart/form-data',
+ authorization: getAuthorization(),
+ },
+ })
+ .then((res: AxiosResponse) => res?.data)
+ .catch((e: any) => {
+ console.error(e);
+ });
+}
+/**
+ * 获取pull 数据
+ * @name getLabelColors
+ * @return {Array}
+ */
+export function getLabelColors() {
+ const url = '/api-issues/colors';
+ return request
+ .get(url)
+ .then((res: AxiosResponse) => res?.data)
+ .catch((e: any) => {
+ console.error(e);
+ });
+}
+/**
+ * 获取pull 数据
+ * @name getRepoPull
+ * @return {Array}
+ */
+export function getRepoPull(params: any) {
+ const url = '/api-issues/pulls';
+ params = JSON.parse(JSON.stringify(params));
+ if (typeof params.label === 'object' && typeof params.state === 'object') {
+ params.label = params.label.join(',');
+ params.state = params.state.join(',');
+ params.exclusion = params.exclusion.join(',');
+ }
+ return request
+ .get(url, { params })
+ .then((res: AxiosResponse) => res?.data)
+ .catch((e: any) => {
+ console.error(e);
+ });
+}
+/**
+ * 获取筛选条件
+ * @name getPrSelectOption
+ * @return {Array}
+ */
+export function getPrSelectOption(type: string, params: object | null) {
+ type === 'exLabels' ? (type = 'labels') : '';
+ const url = `/api-issues/pulls/${type}`;
+ return request
+ .get(url, { params })
+ .then((res: AxiosResponse) => res?.data)
+ .catch((e: any) => {
+ console.error(e);
+ });
+}
diff --git a/src/api/api-sig.ts b/src/api/api-sig.ts
new file mode 100644
index 0000000..c2d7ef7
--- /dev/null
+++ b/src/api/api-sig.ts
@@ -0,0 +1,71 @@
+import { request } from '@/shared/axios';
+import type { AxiosResponse } from '@/shared/axios';
+import { FeatureInfo, GroupInfo } from '@/shared/@types/type-sig';
+/**
+ * 获取sig landscape
+ * @returns {Promise}
+ */
+export function getSigLandscape(lang: string): Promise {
+ const url = '/api-dsapi/query/sig/scoreAll?community=opengauss';
+ return request.get(url).then((res: AxiosResponse) => {
+ const data = res.data?.data;
+
+ const info: GroupInfo[] = [];
+ for (let i = 0, len = data.length; i < len; i++) {
+ const item = data[i];
+ lang === 'zh'
+ ? ''
+ : ((item.group = item.en_group), (item.feature = item.en_feature));
+ if (item.group === '' && item.feature === '') {
+ continue;
+ }
+
+ if (
+ !info.find((group: GroupInfo) => {
+ return group.groupName === item.group;
+ })
+ ) {
+ info.push({
+ groupName: item.group,
+ features: [],
+ });
+ }
+
+ const groupInfo: GroupInfo | undefined = info.find((group: GroupInfo) => {
+ return group.groupName === item.group;
+ });
+
+ if (
+ !groupInfo?.features.find((feature: any) => {
+ return feature.featureName === item.feature;
+ })
+ ) {
+ groupInfo?.features.push({
+ featureName: item.feature,
+ sigs: [],
+ });
+ }
+
+ const featureInfo: FeatureInfo | undefined = groupInfo?.features.find(
+ (feature: FeatureInfo) => {
+ return feature.featureName === item.feature;
+ }
+ );
+ featureInfo?.sigs.push(item.sig_names);
+ }
+ info.sort((b: GroupInfo, a: GroupInfo) => {
+ return a.features.length - b.features.length;
+ });
+ info.forEach((group: GroupInfo) => {
+ group.features.sort((b: FeatureInfo, a: FeatureInfo) => {
+ return a.sigs.length - b.sigs.length;
+ });
+ group.features.forEach((feature: FeatureInfo) => {
+ feature.sigs.sort((b: string, a: string) => {
+ return b.toLowerCase().localeCompare(a);
+ });
+ });
+ });
+ return info;
+ });
+}
diff --git a/src/assets/category/quick-issue/quick-bg.png b/src/assets/category/quick-issue/quick-bg.png
new file mode 100644
index 0000000000000000000000000000000000000000..d8bc5d65ea1255e3f102c961ac79798e7922f201
GIT binary patch
literal 263798
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½WhxFal)!v0^Qf-rjVcXD0b+Gl
z7?z;qU~J)uGcmKJz}k%nLbO^E6^Cu{)P>V=WNPxyaAa;@ojB(&I^d0zH0*Cr@`I|l
z&h^4zjZbq&X2x_^{rFy;jKt52w4Eb4M0nWkw-fU{LkvkqrAIU88^5b+tcCf2L{F{&w2*fh=FQm
zg1|RAl%r_Be|CGic%$%L3A&8$e#9ObtdmnS055aH;3!8*{Higc0t1n29$!bD0ZF1{
z2`m{Pg;0VpMFvxsf-Hyx>j_|87MVfg;W_QRTPeHkJv&};3{Dv)EpbYagrsr?&$+hh
zB?ssSKb{Cyn$kC@kKZ?*zqN5Y1Fh0KaKE1?38rh$*J$_@LLeJ#k>50y>QC&&jnfj
z%wOp0Y;RgW|BjyvaPH4&oI&054lW(?F%HozyI<6Ekt&X<*tm<4Z3Lg6%ENtczuCiA
z**urv&1RC-Sy6<7826f~beimvHHgAYqvTlrB@
zSsk|D>z0HN2uwcRtIvWXNeJa!UO9=Gr~xcULB}9$@rX?DqgcpJ!E-1aoF#!R&fwv*
zV6~C))^;0Dyry$#_z4-2#)kU=$MusmMz@cH&_1)HPguKKxVX13sBUnkFW=AhMMZ%Y
z@ax}0G&@dviU^TTIW5H*z5z4{S!H?i9;SypU)1%J?SJyMLu8NwF&d8yj!Gf>$wu(^(h#W_D3wGc
zNkM$UJO^z_pjl#8(h!bWL=L1?rViH*C9&3xCMV~aGdQaj^X(Uo6!J~8WHg+e9_;MU
zKh77{nhAr{-UoFI-9Jzva9-zEp!t#~xjvxVv)+&-phBwZ+^7!PMFzN?({6P9CSKH4-0{4uXvZ!ye1`YJAyD1uI47M0}XM
z8`uU!XcC?XAs;+0vnAq1ynC@kzkmc
z)4)P5<2fm0d>)NRlB6qvStwc1SmKt{^c<8*{!d_vdOc%nU~$K*1_qmu8GKN+C(`yQ
z=g_{%{M_wdS$J!!NxY&JG|BaJDa*hbIv@ij_S9T=iyo
z8s0P_yR|ihS|I=zDQRbXY0p=hWOfP&H`
zLEIb*3P&LfuuH**Gg&AFG?R`;;C>h>1~nDdTBk?}qscWjt|pB1hzqlRzGL-TJn;wG
zhYz((J8BFDc|4oz)%mb!HX3xP&%Y*0)vjul>lIJQbo^)GWZf?E_kms=Hh<&qk9QIQpIV~7VIGiGMf$VK40_1u+0E3&JdGgK}eL!uV~!y
zjE2lCz!&B~+Dak8gp~>_M+FXvM|mc}z_~>j5-rFiD!75&fnIKP8)z%1`5unj*_@JZ
zgZHW~M%p|Lli87^GUlAod!*LmbC7J0s8>gnIb3`2T}`H<;7CVeI~DDY;^u1&Gqcq|
z3X72zIBVx0+w;cHFZ|#%J~7$%Zb&IwH7QUtIwaX&@R)f^Oi8J=y!dv0riZh>K7V*;
z%Xgk_vEt%JR}$)jY!^wo1O1t-9P*d3+tl!+u_h&376GI1^pD~h}&rv$St
zB9B21V;f$!ibX`6+q#h($0P3&JenhW@?G$45xdLN;)CXk!+F`c+O|EtM$^s>(^dK!
zBQrI=eKq{S`A?ls58y2RltH)->DU~Y4Ps!ZHi(gW#_AcqBUn`fBrlb
z!^y8nG`3K$KXTvwk1z$(oh|34Co1C)^wc;6bKmT#ycWrh#w(_pB_EEzo_N
z@Jazbr%BWj{Iye34APckG+v6iF^Tf%8iQrnWMOcMND7Z&Nw6rTZ_gX`g#m
zN0(fcB!n75TSQif%igrs`f_)_2Hc@@-Ur&JZ@0|_sm0HF#E}ul&-e*^=5x+CrkNRkV_K
z!#9x_wv3chA+V+;UZ#X{vMCX$RG}sMo&<}xo0ZzB5XYnAJ<80J{gFqF&IPU1mgn?)
z>65~9kAxm;E`}?c)khsTQkK4|
zCo=HC#H(93l%rGLPxzm?)zIHJ^!RbRnOnH_tfxZTZxbDQYhzN3V>tBiCB-)?H@EFS
z)}_cZHdUlDamZNtkFGDe
ze@Hhu!?9CH9hSGe=8eK^_fI{m(~j%>J~M4sb>atC3xhK;bl*|ns_oOeF>9Uuz4w>4
zc-YR>=--&tPZ+P2`l5fZzavevLf~_GpqH%FdCGh8cznWHyNZ2Y*+$?FEje)r3|nmE
z=lIfQ%qH_#e@X
zLW%RntReJTYindp{;?)PN#sI>_eeO(^EiCgyRyf(YJtBjg}+evTyVztSnCh`T}R9s
z@|@@<%9mE{(i$Ifv-S$yAUZdB_SMbXXw{J~1Mhm-x1RKUz(nEHg|GBiR~R<&syi~{
zV#ah<VK_JZ
zYpW1SYz~LU#+_6IUlSIl)GWrL{IP>ks?cQdN2!cL6Xm(`-OHu8QxYd)?TAIDs;L@X
z8i%+myEdK4PyP)S{8!X>e&Ny
zr+ulz&-V4`9k|(7xP4<(uxd@sxpZZxm-#V@X_{5@-J0k9oylo-P=ji8x#cXoUL&zh
z*(u`W+tJa1mdv#7`Uc^gvqs?AZFOg*$l?*=jpO6qcH3EE(k$&+Q7RN}w?=AjL00KR
z=_bk_TdXhR!^mL-75Y7ShVr9_;GYy?V%q3bJB2n2I)g1{Lq~
zIg_N*S6*;CtjH`^AzEQb;p%2H?b0_6#erU5=DC|EgEjhsbru2PxT=Fx6
zeK*~1o4jye6cijFtQ?{z&U{pAJWXh*biUEoH@NAPG%;Jb+VOB`gUd>HFQEsNX{4LX
z>Ee{IRC!Y{nk@NK(oGiluv8L*q(Txu!`TAjsW)aZTbQ{gA{cgxDJSvi>@02nAL7@S
zT#?;BT^H=3m|iMzXe-ZuE_N>&x
z?E9#w0zGYUYu{<%$VY)&Oqcpq<4OgmM@~ZF7_5o+-8J#4sF}HScg>Q3SlPG3?9J}q
zaP~N?w^6TH!|rAL`Y8)#vU&n63Emi!jJ7CEFaA=WyCeM4fzG}^hafkOi)P~>gebp|654eN|l$bIyan(qp!C)#`PN+Bh$p%2w;Idh0i7R^L#o(eN=cInQ2IaBvU)j=Nt^&>2BegzI{r
zNNvT2p}`j~&P@x2GyX5T-M>5A5>1FZk)4pN%`v>=vWx4{;70kyZ1Vw8-}|8tqNGud
zxxvXWq9v(>9$u2eF$`gmWd
zXWx~uFCCbHVwgpz5@{&!!mf=0&Q{xB8En;QJ>AmX7%%7gTo}AtSfl^Grgy07OTK4z
zV~>|j!*6*%-m%OHaC=hOp_IyVPultggY?S~_B;-6gWS!#eOFNAdf{C~c66p*g4>%<5SsKHlV;_T
z#{WWVrfW?Gstd0=xHkB`_+_i{A%0zf-i0#eUibMqU%?%(9oZ_%TltU6HwH@8*SCU|
z8IKGK$+cDRn@bq$lgO;V|}TMDP^Bcnr?x<
znu(b7u3A?<)&9}&2O3t+R82m3YtV|3;)d7~l4QEXi5n+n%w3r5%5dA$w6GW}8x{xA
ziC4}>F7ulL8+OhLii*WQzV+CT8Gc)0J#*$#cZ^z0MIBMa+|A9&>dvQ2Q${+SpZpsg33~6k`uzN_xoWZvB
zCY4DXizX3`5sgQVrgSPnl-^USC}BY-*c%b|m8K|kY5O$v`1#FB7`v!5izs(I9Of5-
z{zCeC7qYex_jk4pSKDhJAN5=G7_9NFn?LwwLF2nALEWLSs`$k0TPbc41WIS(>zc^<
z3t#$Wx3>_(ia~TL-i>N%Y6tZjM`R0flkQ|X9#H5~tmw;kuovw3&a>UmMa&G>0riRa
z9Bc#OGF2%Qf9?CuY29H~WgPjN(rc~F$$A@;9dErQN*p88rHol6X2vX57O@#;I83D3
z(F!e*I3=1VS=3|*K^j)w($OWvA~QF9$AQ;nXWuoGl+q1b*8bL0T{!YZBoa1Jt|_}$
zLOAZ-w~#ESGbyM4AxQmW&~<*~{k}}%hoc0%)pzyA-`57&KkzDJ#`K@4tSB82PWSQi
ze-;ROp*$ZmHTiy1<$;
z`*dKG<^#hFc^|2}CiMIy(fH>nsMLHe39}?o9@53w)HEYItXieiY??(T-ecRIg1x?w
zQ(<9+Bt|-2I-JBPlQ^Wrz6PRo6FmMI-^47U8&_-hb&d&-C%2op5cdyzYZutoR4mmw
zf`aSjonJ4gedkk0`m=-9z`>i!P>W=G%T=pIEv7|gxAx=-$4Be9`-G5I==SQD9!O3!
zZBN=|WB5D*mOg?WFLNdShT}=h*766j@$969`Kn%x61%L1Mi)i;EqPYrRDFG|W4kbn
zWN#vCrf|c|Y3_JbL_z$3FH2^HksXnjPK!%tr#`2*F|*i8JhCc}5{sh~Ev@bm2`GX^
zmOwlU1W5>qZ1b)AjBWiT1B)$?-d?uQ=+Ns8PDtKqTuR-P?{D|&!u~0Kd*7c6-||Ir
zS7-l1X?^@V=UslT6vP=SlNEEKvlC>Sd!yXvvu|ZF@tFyif{v6c_4f}Ah`J$W$=p4V
zoG0Pr1-V~9_a^IWk=k{16Lyu;SLGlF9Viw=n|BNu^WI3=-5YT+os?&1lrpe^}0arGF`_RKZN1c8m6XZEZ9qtnHeQigGjEu(P8^^Srhw$RkyWN9VA^(pA#I
z$=MyF8@4cs<_t@#x61V-go@%W^Dy@=gK#9V5=5}V%e!s3aI8aBhXK2Vq@h+lesBVJ
z7YAAU+qU<#26|13W@^4%`mnfnIOtN8>UI8+wSPntSk!oBNu4kK9koBio;;Ce?H906
zadt@EZz+Gc(b^p1t3CU3O5zb=hnnh#vgZkrZ2ksg3&pbX-t|>oE2Uqi^Qgwtfm}^1
zV%xP`{M``aGW!EbUUg48>V!IP3}YjX(hHB4APTG`u2?I>RiZ@2DKVA`kHwQ9l9?ol
z6Evu0K#Ljvg>i}Y^poPKRUA9L-rNEIYTX~2?pSBK388qZoBvVF!uWyjik;fB)MC=_A7X{n^p9%7n3Ghy8cUz8feuLQ@MK+F>a^^69KH
z30}6(w+^p`Guk3O51zzPD`Z3D5mRX_NWUR@z=u~;vnf2Je33;7A(Dwq9P^4b3mJxo
zFmPS9I?fw6AUTf?q1v63IkB9PZIkMK0$*ryyQ7ikVcV0R+5E0=Hpp?cpeE{dpSEkV
z&y~FAOvO{T%F}d3uJ4?OQ_YmddZAkIhx7+isQ&YNqc*&Rj0Xx_zs~hLm21!5Q*_pb
z`d34RvSLNQCqx;aX)jr?f?V$E)u$lZft#e*BYs<O~L=f)Z{H*T;db3Iyx8pAhFF;=y5
zoB2`KT?{$@Z7;m*?4NK!|Z3Sh2o>Uqe
zgsOw40_|n$(17qkXbB~@*S8B48IgnKNSTHp{-^;KPvx;R=9?CE%<_6Xjs7r;m
zZShfUQRSH$MzaY}O+AUoD71}6QD`A6(@3kTMQ{2Zrx5jeGY4E-w|R?wdzwGkSNGy0
zg(P+Ie$SnJe@AD1joM4`eg2Da>bZ^HPZfUa+V|!+5BsV50+k@g%(uz@11Ec%>&t_V
znO#!}E8}Z$%QtS=Y}c`M(J@+1l0}e
zYHmI5s%w~-o2zITN$l~uk)3d?{-?-<$@}N}qw0OAJ?XFgXU9|q-~{qva!Jb
zIK82NVCeDhZ63`LhYw|DO1ByF>1QVoyppG;EJPtL%>=prnzQp;BZ|EHvz7
z+7a6*cYi5x2ntT>trJ!g*rq_q7CKQn9RC`zQXl4^qF?OKmdaX~a+peG@(hWejENMI
zVaPE$B1aq}(`fTVV
zhQ+W)>$UBwn90OQDK)B|AEs3L7kY0#cmQh3sl&{X!2vokyzMGxE<`(8TSlRkOl!Vo
zz^5Lygh4BCRq0m9)$asfe&L4@gZBf
z%6EG9HIwALnkS})Zd#$pR&EPF>gu53Lv+MN*wf|jtaeym|K;fD&B{NDn9{G!JntUA
zQ+*vgmfDNinrYqH#8vJK71LucR4th?5zgHDuBcTpTB1s5@!2!yG;FW!|FdEdlt1UY
zexX$e@;pCZl1zsH3FT)pzKIIk5V0!?g1r0ccq=~5>e){U
zWEr?O#|QhKyqH8{IC_6|L+|eR0xoyp+!w8eV`8ax;vNuj)Qa_j=I<{ae)VNs(AMX?
z8C%@+Q&d8qFx!Np3!cKsTV4}mmo8=X26U~1^_$x>=g11b=_^~jUi96N1uym!Y^wO3
zpEVsC6qqejV(~gBe3_C$du?aF(0^vpH^VRjm5^hatc;;_m>QY|6;=b&XQ**fWD`!QCVA8X%FaMW3LG$IB
z3vY<)zf^hGT&eGf(tkPfsVXDd?C6oa{6KBzj4#LQyW-VeT+mwt;p7P}_z1dcX@%xD
z3{^8hI`Q1}dhYei)vIm1M}LjqKkI2ChOI{3O)ZYc6~D;fVBKZHu~*Z&lU7W2R<4ni
znQ7S;HgoH~oMsuL6@Yh^iCK_^m^6SKA`o6
z$0127bD-sqBnh36RGtM{{6KXDc(cEy^U|J5Jjd71h>~5`aBXy`3g}*Q
zb{sYeM!pXe`pC4la;~WQxpKK@ZCB`i(i|kD*o{X1g?2}m(N2?dk6P!k%9LL*Ez6W&
z=YrLo7X~yg>T`$8iM&)IOUjZYL#Ex6FffE1#=1P|3t!I;Tpnys5m_7yvK0fRAgeH}
znMa%f9&PyNzBb&K3-i_fPGsbeAH0_vb));B<-0P!Zjnc-q;!v6ul@0kNI9LLYGHJ^
z(!IDowxHE-s32H>b7uVNXA5dgf?tcDHH_v5`g=)UH8yIfOb*`c?hyFWA!z^S&pvzR
zPG)<<9&t>XZfX6m1E==*y*=BsZqlh~bo4_`xOKF0>W%c%%JAB&a*QfAXo8JM9T(2D-J=eYHP_3Q-*5fs+IX+&!W!UeFdgIvhKuO}S8r2?piJs$*`(K7DF(c^x
ztpT$hyL={RW&(BZFYX>%ytKY#;AFdSG~e?lCA06<*~R=1BlY}>#)%1!s9*Bx1BKpY
z9?iF7Z2v2$^7}$H=I?U8vD>|-ialHFA(;OQC45xKb|aN3XJlAflped1D|7njtB{i^
z9p@+Jm!!m^TEXThBxhtB8tm&xFlemXBT3Vkl)Ry>uOv2{j4UBzgWkPZXfUBQpjhv<8Jny>NjwJ^j4#={!aT;0Mp_))<
zFUXkf@!)>!6U_T|EXe7ej_}g1n5t^&KT)*F{bc6q%?^4&k?sz9i2)lFAB-ksK}}g)
z`bZ!6II$Q(5?|Rm)6qe%V>rk?z;|H2_t;mOta6X#*vXtenG>O$M;guZ3vv#Y{iOx$
z2hYYgLtG(2L5>XBCceBw2eyFD6&JX9^;bX>89j^0Ai{1iBy7;rit-oy-n;`pH+D{R
zxOv+-Dx?KN$DcfJIh^xzm!@l7!9Lti^jAq<{DyoHD=+`d)AFk$8+P*Vbj!Kc2?J|_
z)v)qa;m+@EeG)5Qnw%}NO}OGj*Yxv;-L}Lr{f#r{wbKG8iiTQil+@1_CkX^^6lHZk
zX}Ltt)s~6uob~nx^d@|SkVC$!aKk*q%(PY6s?a(|rG%L7)2pxca`JrDMotb*x`~t}
z!$^fC4Yp-?nf&d6*B!R}xVt{1{P>NRS@I?f85WLFNCpp%buKf$4XSEiGN%Utxq~+!
zpxxl^3g3SiEZFz1?B|Z_4!>oEt9zIv&-A|^84AyG8cF_=;8pE4lsEaRZEkV(^-n@k
z@X9ZLp+nzWcxa6zdT0uKe=Xek+pv>ByU1@oslv}!t7l1G@->~6b{d1v)pz_RY}cI)
zwO#Whu_UTuF8Id&w@{tr3IkoNm|KloB4pfBOV8#SSzpVd6U`}=V_aBBf1cU313ZKb
zi^x(=
zzvI5gN0$xjtatX1XRD^`^MXB=OzXqxd^h2^_ayl^`)TRbVY{Ta-tE43-!4WC1bCzk
zj4y5;3*sKy03DTDt^qzBjU)9Nw()KH^CrsG^e+{tZ4zwd{#YD-^-DuW(ylcTROjRh
z(PXSKUq@@?(_&Y@gwwUY0DjUaIP@}b8o4qSuXB%9TG}!tj7veNw}^8?L;jfvBNzh
z6F!59U9l{k1KAQnTEiqK3Y~A%Th>-q!c6#0wSi3YF`6Tc^)1eD{kP|hV
zn-%%0{&~fVm!zxb8rrNE)=0w^
z>&8G6#++lmC@1?wTjR&N>yGNbk3tO2YUyO2zF{wR*QO}v_tTUsjG`nT{&QjAMzwD<
z79@ldAQ{v!j!jn$rYaSwS^9=;R0i)D@yaYs?g
z3D#&A*Wvz(y8?l5N+|poi;1w;=rMyCH_cbWQjV77_zmj6R{2jpQYj<0-L9DMnRM#R
zO|r{QuS{AqhfPBB>8p_?S^Cd6zJ6MK
z)j6qAHJ1;Pd{O}msg0|OHSE27tUa2eul#4NK+vN17y1} l4s!mfNl&L_VU}gQGS8LQJ;2Aze-WXG)`^V7C%K3%JT%16*KpHVkhqpC7%)P
z9E=cmBi-E`U*I-!i0RT`+wL_f>>GVIFstXNKe*`Jw&3`5ws&{KCs9x0qU-QHw|*h`
z+W5i)QB8qIRBdMcg$e#Xui~V}o!ibN>IFOK>BVePTfN%tT}^XFao~jFcfxi}*Y0WE
z+PxpoiyA(iRLJ_V{+Y-@KM?ad8AUBmPOpt+@k&fpC=`nfknBN_?E5K5Ok!DCGEAHa
zR3yqEU$Ml$*631>>C*PD)3b}E5sgVic%Koh5ywJXR&`fQkGxz}&gJsE8u<5CjCo`6
z&zqw#mADwEd&I-kfBiZBkMp-DnZKSbBiZXWOWQdK+u>f_=FSUxI?m
zCwsS!F7zgiZ4(6-{5fCV0X|4#&9;3O;?30kXSJp$y=L`~*KIS-AtgC&8|bJXpM$L!h#6*dOWRY*4@;pEmTeJw
z*xm~ou=ZYhGMpOvf@Xh1Q6Ue-hvPO}
z@EYy7xxqtUe^pPAJ@4C|p^1W2r(uSae`B!OMpX^ops!!x!d;i
z1n1^RJ?JfQTqU==f&U4Ts*I_5$GzQx{tu(V;5A?T0uBa>dI~%mrY`8}OzpF66eJ~n
z@^o@tX)E}AuCM=X+_BG}r*2k`ChXVf#Vc$3K7?AxlwQH5*lymA+t&}PKMy(>-|JRt
zb~g9eT_BUCoPn<=Wm`m-t*WfMJ}|4Rr^d2kq_UJ_vLH$Vk*|qR=Ol%9nE0xz=Jgcw
zb+QnWWT6~+14;;qfymSqLX038chvt{|ME}-+5&*mVT}|^5%&B
zaewQ)zMAW1PI)8Sh6RsX>!UK`xm}OJ$TZTL`I)&<^?kM9_AU1Iih}sTAWhv}yN(pL
zW~ykZM5V(u;$OO`yY!KqkV1J-Qu=-ix}`qkdnEmuFZcHjsHw#r8z1*+TsKN?>kWuZy4P}J*9K9bTJHM~Z^{$j
zDDB)X)Pv4N%d(|t(qtvde@N-tS}3H(BAg=lB0&|!+UcJdiy8$**{yMVP9N7
zD5!hhVmF-lBY#~jeezh#`;m3+K4&cZTT|=pobv=-y0gbOz;3;|$6%22v!TRbtp)v$
zHNnA-x*oc&SBE0qom74gg|`G7{v54)-n7qQV^Uj%4+Q2
z_r~Ouw--O&QH}q}D%DFhWEdEFZ-gLYB?pNo{!GHPUfg2CDh1YTWHZe){rd!Xx$AC%p6s
zwibs_$(%Z{&N;Hu&m$nu;X;p(mygTv+4fPDH)pOEpOAjrl~C|%J~(8kzYaRyg3o-Y
z9_K^Lf|_lkaNnBk;g|Mu1yissqHz33fc+--%6{Ht;40+|W*qE42C8Mg|Kn9ED|YAy
zq2AurDN9jN!Wi=?n_@zYaJ!8UEL+<~eJg16R)!wOa9FrPguKXtQfMxF4?44U{KxrATKaEVN}av{fn_=cHP={{uMpuztFN?R=yR^=y*#
z`#lvSUe>C&7A`%RAIprA6L8ZOF2#HSuYc9k=VsMefvtksEuRYLMuPg{_FGi}_D<}P
zUHS(@OTrrf+cl;B^5%a$EB~n
zaG>d8s~7*>XnlQ2v20XSdc$;J!H%m6apu}YT@#lVGUYhaNfe=5ZA#x<8`DQ|>O!am5K@E=TN;|x>7V7VI0
zN+HuAp|)fx3PFXUAe)SXuaUc_RUM@mBq#coxn
zU{d`96tkN84#~pO+urFdW!NAPxPLQ!I8C#l~vM8?2O<$x_JD?g?6wj^j@>o(xMlf{1?s@4NtAARFm$N`Y}p
zh62146GouO08vO0UeJ-$o&xb~zn;6%L*IS6JqE=m;~PX3Z)`yi>ibMD|JQ9(xkc#zJgpr}g+lJ$BDR=ldO
zYYo^IFdlpRmdOeG`{(_I6Ca%%I;T_N(&!s>_0ch0QK#isM&0uFjtj11onR990GxkH8u%
z@ppeM(fmTy{2YNf*9}?0fy1fkWmq{C7Ywh)&xw=A-0dI{|K
z@(fPF8~-gK#;|*H8L)@oA{i^b!CyGiaZ_!NZcor#ttlhvg`V0?vqwHXJ$Xa6L@<_o
zKqDnk_GNPvV}{Tcq}9-HW*Dy1^%M*89iXMZInFTv#ji=synp3$+crZSWiK
z;70iOZBEi`x3E>#l}nz=BgyDp>Yh+GbFdTGR1c%eT
zD-Bi3x5{oMGauW&YAlVctUGg{+%EZ(gJakH>iWgZ59j9NJHG_!k1ohvADZ2$zdB8B
zYv3kT#Tzs*?&PUx*m(l}k9UU^TEBoMx-vH9kFCZUdB^K&<0qvZR|>
zkl?GN=D>fC!lsrG$p(<^lg%aE@XaJ;*nTFEPi5FqK>)^>XT{^B9jdjaMqb|Q(hJsi
zSpPs=Y_59Ie)52?=TBnQ|DFBM^G8z~re1V5)T)dnSPZ<)v#Btb-AaE^pC4EnwWr|p
z$2#uEnIMnJ)eRzHkcUw1)nfen3qjm?esBDXp{V%$1raUlbHHlLXA(xN(%~;ZTis*D
zg&DY!%Sasdgx>|;vhP&kl|X-)C96anI&Yz1!ZJ4urV^l4KZ
z=u9ZQmWR?~riSMf
zvE#;IQ@t$%sjUr+AnrsS1#}W!lf)Uq3vm=ttuyPiI4m_41l1)Jhbch8;
z@E#$&dWolS!buh!3uJgPmbyif9k!}kYjUX3H2(0$U=8>6v%i`LjRnU}Zu5oOl{YB6
z+PVslK(AN)P4k^&H(t~q>(7GVb*%s7{h_=s`HhuzCSgHQ{Q(}%tD)hfc6L$EJ#q2e
z_{5ZMNBM)eT*2anj@IViJd4<%%21TDk^yC=QOpfr%K$r-c!08DGh_?k)vv&&1mvqZ
zMCouPd{~O1odG@vTKP<23CM$z6e5!m`!eEC%}L%Pz-3SKY_2}Hc2%I1(%!d|0S|@}
zyCNu3{zondu7htM^Rv?`AK(Y%pNWV|p{#*06_IpgviNRNUUx#NK2sQ^(Kd0u7B^jM
zSNFUoSpU2zA#uaP+baDP?a=vqJnj~zxX^%L#Wc6V$((}57N|i3d6?{f0>jhnR|~
z#8Nr!Bvv(KBeudd=(i+5@cy<=;;B)JHFR5NL{~oqh?OFz2
zzj$Q#D$09eyjrPx>c!i4wW=511DfIg4^M9b5B2u{kB_q?GK-_vzh$dR_lqzD7`iKRXmtrPNjw7D?p<6@`<~8E2K@}7f!l6xqs)kJ@Gg#?^
zX&umAAd%qC)Rp9=@;q=D-&$qy)VVTd7usTtQYD+AqrFJ?^-)mqJX5g{aAz`Vp_o)V
z%S_fFRCR{E3YS}(U{yOLXg+kD!wyE8awJ`gR)+Wc}xteFDm$#mr
zEqU?h3@u3nuis+>_bO_J92G(%fD~I4HHxYb2}z_JCA?CB$1I}9T8?S~`S
z=bd+Y`{g2~oT_AXx;252U3Rlv77~{+tMXf+_ga^=^I}^zluNd{9d&|t9k!Vn-*9G7
z{%0IlA^z{AKSM?-xCD#<7*(Yl75PU{*L?79M9f`LJvU+SWD13lkszaTl_&v4xKtp3
zibJ8IMIej|3JRGI*J!8JCb~0pQUSwDc0CPgHtlSpb-gURa{Pt%*zBjdedjhoVQ1Qc
zt9WZ|ye(Dv6zvKhDtYG-7hHn^O=~`HW|)4M+ScjYIS)E7HXUMM!3(Q6k4Y)nl>m~e
zdCZ;BtuXsTg&`ks1Lpd@Xu85(XHh**E(I(n?fjK%EWv}HrUylw(gEfGS
zWHqz+7A&8V_&v|H;?(NMwRM~WQ)-ok;*j0AKo6oCJ5KoGWMA}=2oPk4m6v^*>ZIE+t;8O<)=
zp6SSzDR->-x|uwvUIQ56fa^r?xV`imyTj7gr>mpd3X8v4=7j6eKX>4s+7U~Cjp6IC
z;HR_AV&8R(5wRKWf3!5@Or;B4&8OeJT#3DFA%YboVP476%%#h7UUX&Rm`1~k?>`X&6uOfG%kr4*Dy|q~zQJ9t44!HG1ve{!~
zMVZz`^R`g3dU3cbp!Uq!8i&Av88z0-*j{~m=X1_v%sFwq*#Fs$1?FW1X{)U;sSpy)
zor{~mN9MZIL74wLny@%fB*#B!(3)`
zpuXba65`So<}whJ&Q|1(c&{LJq$D&X@Dnll|J|MTaLp`}I6GdA-&1l<>)Fb(x9wP-
zMr}88c_cWQrJ~KB*A?wv-^@?*=-HHr+Tw!h0F`tofqIBI&pA
zIBoL-&QvX-S;=0;5Wg0}Jh?SKJB7jT9si-qf+E(!aMHkAW@@r$hf-F`)z&8z>IWxW
zdnP{g{O8bc3tp@oC8{|6alj1iS$Pb#U5*mb&XZ_?;RjzLs*i}4Q_y-&dY=oekn3k=Gq_whR!VO>qN4;$!qPi`|x@-h-`1l?x&
ztFuDAwWuG!3Y_!HWy)^m^Fr`Q*iwMW1S$y=(cSdOm6B^21yL=kRN!(Y4p4&}3|pJS
zSus((V6tGY`~c{o*P6(mNqr?(%Flx+KN<)JP$FQPLh?LlUAYKJ;a7%=GNOWUl%E&2
z*sUnU`tOC6Yq#}m)(p&!+QnPf*CIFe?NI%vdEeBP@9dQPTB37d;X_61akM^rv0VoQ(KuC*!MB9C7e*d)e9ywPG!CaYS(V9APA;@rT+O!
ziB3kf%af!If=t;J+5gE>6gqJvKz$aX!@ZAg_Dhz7R(V2FNrGBG6`PO!=`CV1tNEeh
z3fK>Pg#{l@7ICV|o;#)(`Ux);g~QTa%OGD9nb3yM0U{(CSk
zSxGqqei>eAxd;J1o;VrV$mp!>Bw-nh3k!qi6Lz#JxNnJnxt&lS!yeCT=M?($CT$U^)
zYz=1-mZ9ofbC>E?;vgeV!X?_koZ6YK6OS$NdY)$0Acm+?bA9S)j4b@00h5ENy~YV#
zrqX%%6(TtF;#N&iPbUs<27Py4Eo`?#a
z^L4@*B>(l2m2Gr&D@4<8?4(`1`4{%v()OHrR+5q>&!RBvyzhfQ1Xe5PGV4{1zDp
zIb9$hvr0WTN)+Ikn0&gT2%sBC%=Fw4S1zCr>k520GjK}$B0&6wz(g)R7$DDbk2Z?2Z-ss2tS6c*0C@x%dB{yURa8IZ>nw*qD#6vV%?{f5u5(mKj*I^!7ilISFM4
z>)M}(gIH#c1yluxtHc{vIczYrE))sDulZv#EpSz$W+bqGI5_AIR6WeExGUVfoC)I&
z{K(KD&?=gtc?f_P;Pz0w1YRD&2p|as+r2B{i$Ro^^X#8@c#M9J9Nc^Mt(`u*1C6(V}%O
za3U~oI75TwF{b%J(ed2IqBS}7=0Np1@9f%=?%g9_V-!W;{@{SZfK&}C>8T5kR{BKo
zpovgN9fgbIR|NfsaM=!*EJqI~WdjtGtrQLiy^P|;qV!>A9tB_v!GjoG8CyX`v}AOq
zAG@7>!c6*&f~=82HRs;JRoV&F6!RqH^0ZUBQ*dj6!IO)$&r|8OLwO!07en7^`*$(R
z1FB9czX(>P@s^LPVxOealss0NAN){2+;$Hfa1f4xoUu6V#`EjwUN9LDZ53!IB5dkI
z=&@Sh_(`H7fTtk=;L)W+${L@K&^`fD<&gwjhyqTwXpF9~^&bHChOWLcBxBIR=Bj>u
z`k#DR4OP+xHmPlG!+#A#2WcJl2^(1cJI%MzwUHSd(xjs@F42
z%=}6!P5Ji_ZLw)>dVVP)V{?NlKwQ|EoKn&ujcb~mC?Zn&AzEZ1ZWQsZ0DAKAU>ZoT
zjmTXIs8v8W5lFl4>W9PmGST4bQG(V4y{n>vLWJAw_IX|-3*K_+=+b*u_Q&vySfz%g
z>~bj;(7@W(_!lEzR)TgjV(%3P&imCb#MZXVY^TGd>cLx|$n(P)Fa8=T^W!bM;fL8@
zx3a|UNH#^{r5qfz3JKfhmJgBpB4N6K^afJUN;!bEbU8xr&xi>DJqIit423QLlf_(E
zE}WSlDLe}k4`N1~o-T?@GBe6RfLj+zC?00|LYJ*^;bc^Qjf347t1b7&)%Ph4nvLLb
z;(r8fLJiXt>Q)Ssiy*pnP3G~>TiOq_gBl20R*%0)e`1RdNVm2QSVNQabK%XS0il74dxE!Cv9LlC26r)Jndc&C-t(DWZv-scr|
zv45V`#g{*JO%s;2B+fn#bU5lz(BiLdeRUB|nVdG@sG~F)8e;bIlv!{>D3w42v*p2%
zsBnQ%MLsI0h-NT=ih1pZXsbS14oXq^S$M!jBF0E?fxCp%UOya=Q6}gmKq5FOP`61E
zjTf5K%rJsVZl#gZ(KvSTojSi#D7%Y8hf2-v(+8)f$w|kszNO98F^%GyJiE{r(Am2C
zZEM`Ow|&xgIQWOFm`$Z`eOGO@9Lpclm++gDd{DJ~p!+D3s-zZ|<
zQy%3fKJ=7c9ai%7B{kl32(Efenx2L0R7?f}sl_dA)6+jpMh3_7bcVJ|7`q-{c8YE0
z)W^Dmj-`6evj2D3%F<j&+U4%=gJbr-zX$uXme#x7ZIWwBk|#Kt>0WCLlQZ>`I%S&@&$nv^evBWp=_>Xe
ziB+>a;fH1UrDl-}?Opmd1J+lj>DIM2zr0@33f4U2q7N|#>QC;7Qs&cb0XR{j=>T33
zU&Rjz1po%Qa^zYeZu7uY3pF1xd88Og1S84@vMab&V_lT~TeE1cu{^9@G%k|*Mz|Ma
zMjo@Pz4+A4zRR!Ms_Qf78iS@7>tm{1&-}d1SyZ!kcpxzv?AR4*#SU4N<*1jae`C#j
z=~VGc4Vb{^UuCOV*Dx5(sfQvdN|ql@Q#P5Qb*u;X3ftkh`h8$bpaC>D+n?daO)&>7
z-Udohu%Rkqqvr|L5&{{DJ@mU4(0Rh^!U!%uHzpkHDHA!aE}DxUwBQV9rpOuPY=IG^
zJTy1Z@JK#(!Gx#A*WS0~5NsK{M#cY7n^_MEZgOa>=(qA6nEv7TU^BKo#HV>`ZoVPs
z?fUXE=V{k~ieJ*Zs#F-q#cbaAGWEFDUD&!&E!H*cRLx38!Vd+eUBLFC6eKu-Yf^wC
zQ@=u5;dc|QOJ^OEKxF<$;Y4dT(n8f$hb3I;@!~1bWQFUZVI%msW|L27Oc}5YRcZd
z_j-6}_GQLdn2UJ_b+oS9y4E35Qqr=iX@-^)oY*0?t)lsvtr&9R<5-{E;N9OVPD3m;
z2A!bNNq}yV0tVbQd;&OJK$7hW6mV~F&jOdB&JLdfhzYL?%Mh6;0JU-m2RHnP64XWW
z^88Y~!L|`LlYWRCIR$ZXtyIehlQ`zN(lzAO-f^?m~`y2SUvJ?E6dCLNJl1hp37m`Y=XoGgeGSfQWZ7Qw@CW+XYFN5EBQ@??U$#Y5#6
zXko*%ktmA>4x&RfZKO`LbQCVq1{CXdLx96mH#z5kYXvXzyq!6JPqEpv%d3lNW3d-lxoKSpX&sb_&v=jt%JurJCg8G?82bHP3PL0
z)2-XA&%1pc`Xfy#Fg9|bNP#Sm=!OLVnJRPrL7adyPnJ8}H+;ceVm=*yS&En<9n$$I
zq-Y6MHflIbx&Uq=f=(kOzI>?cg{Ct@mnmj3pwQIcmZr*C`A!M~3a`Gr#7)$P%
znT9g3MqutjKeOe-kFcoCun#-2J;BYU^?&$3-_q0!spt^9sp9QjUOrw}_hw@;kD-C<
ztR*(8GA4#QQVYkDKzFtmKkt6PD&!P#e%?3vY9-{=WfpP;mah@ZGj|3BrnUo!LGYNF
zxw9M{>S4NY=~QUo{hT@C$wc2mp`%ce@+dS`64*?C
zsot2MMaf1A$Ta*rB6B8iXJcq*Tr;C;!|~a6
z#z){(J2uQwcSumqVJ!u!FO$LVb=-Ve2hEv{$&BOG-qehj+#bgVIx8yV>%<76Mk_>O(vpaoSLF$;r~Y91#I^
zM#K#oh*+QmfVeYL0da#Ugw7iL$xUvwId6HS4K8W&`{%jtukubclrzK$n8x2yUkcIq
zcWr5TU{jlsH8<0;+AIOB=%-uF{?kFB$%k%rHlJrquil&@7Z!Wh!trbC+Gm*u`e$z=
z)mshqA5}9D%9T``0*AF04-EFhfBR_b(}=kxg+%KQSh=I|9z$2?fiJ>9bO#&t6oE}R
zK%Ri+0eAe&su3uM=oC+Q3>VUJf>I2yeG;&OnXuBPi$ddgk?a4gD@8EprGuq%91fN^
zc(q%UD<9KH3wZZeOoG@E`6HudjcxwZJPB#X5i81S9U
zux)Q;70u2oiK#gppIgzuk(0U_pYKL3yNuhrd~B$@#cG_k^qyyQ?;ihJSY=MEi=lbs
zF3o=TPod|-78L=)5(4&MoC8!}7GP8oU@AyKu#f;Fa2c@)D1%9pBuTL1CJkL*a5qTJ
z2FRkh#)4ISMR?Ivv|_%P>RiKLldwo&5kG0e-a8Hxwoku@*lmA{4^dWgY=q9_Uz^jc
zQ2%-VjV5N+^um{w#hUsD$%Ae8y~~Px>stpPDNxF;t^3aIpKV-$4AWsaqvy`dOYrz!
ztj1;Lg>O|ZX@71rJ~e&nun=|sNT(E~sm3bb>y<`~04wklRl7%4fhu7EypS-h{4tey
z1Pa>nWVs>P3W?hs%g=3&0ou)W@R*`MRf!87`TN*Z{Zrmd{Wvafobjru&R!@H%8{LK
zq&dU*@!-tLZnJW#%~rbC4l{!jhFbwPtG_oU7nNs2OA=-RmuBXeV=Y~CGw*B}wlhU5
zLz@$yCIja>f;t>^@=9Pq#0q=l_z2^R>A{-QpV(r-fj;7sYP5P!w)$=dOyq4!wCzTg
z55k_F!U$ooBDZ4ZyMH_x#4-pqWQe>pm|b9Cz?dcIohA5b?_^nGq@
zCQxhl_ol+CsDE&a={oqsiXPS=Af*iseDS+gRf{hS<&VLR-MhYXA+c{lZC5?8#7dYp
zPQuz^Z@paJ&=R&F!Z+BsgR6wqWXNzyvhbBZ5uDD}>Em
zPZy-c&CjLb@wnJck{b%sBvazb_hE0+$3&W)>veirUQgSDuQxVd4zAt&xdYG}Jhr8r
z0>ggE-)7lUJNr_;@B9aK;PI}JiXX%F9efw7=o4(Mkc$JEA2=cVGKPmK<=_RjRNCf!
zzkh-+2h@3!c~R?(@8mN&Y`e3Ylv&NntD%dm5azX+-2=?)&LB0Cjb~2zU_}li`SqkR
zxMw;A^h_3f0igS8h>Wm+4JBo8cTpIU2(+O{St5X&kY1TWxUHb2CCW_pry8PAhy2?7
zQ8-@y_*c534i7TOCCB?nMxGAp?4;|eT4|ciXC0Jvyc<^N?YkzgQqIBR-#Z-Cb;bV{8>q!C=bEYCV
z3h+~674D}-g6k70B~jY}VIwI5T|k#ecny_3Xjo;+MXI=ELYRaGY5GUnJzi@ma41JR8vWm*QeU9oDR{deX?pwS8JE-E?q*KYlE
zXwY)A?P93!#G3Cvw{LDRW43NnY~{)a;RmJFR{l~BIM%uNfhso&Bszd#@i{{>zE#h|;y4+G-R8_|!!yh3F
z+}-pkSPxVG_G5o{{l(x-fHpc`NY#qe4$BUhi7B$>Gdb{b`A*{>rw5V9gv8ezq`nD$
z68YAMK^$O7ETl`uNVx`SgF|203|4e9Q4~vaHz?P@7lO5YbtAD+2Tws53w+{nu^xu3wDJb$LARP3K*}ktwUC7c4zz$-TdZ0rs0|~
zzpL|lyKV4C#`E=%N7wA1Fa4tus`FX0Ck^HxZ_u7SXTchss;|>Eg
z!Q}SrzlDVk2Y<}k5SX{O9nUu3YnkKJX$8YN26Zz-Vm%{m`2E_-cHYPW3_W+BnOkoP
zYyXkHFPWwp(sD`Uu6^csX&Ebr$vDceSdu%(+j|aYy0savcIm=*{!;zY`(NHnX@xjR
z>4ag;@k6y|UY*7M%^Jh%+b#}2V1D@?5EOV~Xu`DO(`IwoM#l3c|JC3{s|r?NW2kmh
zMp)_x*hSHq3urKe1**+0zpf$pPM66*X6NF<(ydkJYc_Tzd79eI%4wv>keZsUmiGiM^r
z^GjPo>wG+&T13PYMNl3>w4f(iAQjx75FMrth_LS%(E|V%GEP9~f^zUgk3K5bLqV4S
zd=*}Q559^*#lV087dzei_wh7I=~mc_Psw_=&Ti#s9o~1$d!fU%IW~D!=h(j+T8Eo6
z=2n*{H+)L!8MCW5rZ~Y(I<6A`_y2#USL={>lWUm&gBtod@A4rlSSk28y;9+=RN+mU
zX-W@mto6AwR0N(BG4W5Kw(JllB21Oy&6(%ygR88S+fT$;yZ$473M7kiYL#W{GrA&;
z`cc7FzBl$*Z2!?{Kr+IEa^*dMA0fm0X{AU}066gQFsaFtSsp0gDP~_Fb6-;+*Fmz3G2-moZ>EIoI4*87@t^
zeG%`RL!pzZ;Rnq#2Y{zc|+tH77J~Fzrg94Do$+6@PO`
zi3+p~KQy&3gPdEehZ-h=ZZI8!M!P?l5Y=(RTBn<4YhV+JxET{whuM|XSSIj~3&Yyh>KyrX@
zvMiB~8J`>UEEOWz7hvB?tgFA~5NC6uG5v58
zb$0&Gy47jM+MVq_7!nMa_&zt>HQc0H;Cf-2BLO7am%zi``?fXG1#6R!*nbYE#(H*O
z@Q?%nIl;2S&gKnPUrr9CG8un)kkW3epzzEXq?SWZbJY<`7?HKH{D@72T%uYbVnojq
zL;G1QK;$W64%!R77-+#kBT&GMhl>F8>L_&mOK)fCICGd&K&`p9v6>#MQTf3-53QV%
z3AwPn_+o4pybi6mJ~ofF6#7$^U$-Pw2ER=Q8ii(Lv_igW)Be$z+^@cnj$835>EHxy
z+lSb|wC~t_+rEmnS>DoQ8;3(@HtW`=n<#bD84~~q+jo2#zc)5tQXkIC*kj_F-q27#
zYh9b%H3ec!e<&1!P^TT3>c}Z@F1S3DgQav>D3EBzl%mAyKX4Z-G9Gk%O|Wc7QdtZg
zY6`}RReGM8kjhF!24V)?TIfvklp-6S(C-AMlWe(66m9hTVC#Li7%o^CA;a8WSIK#e
zKI31Vr((~!M8?u$(>V3P&A;UhpB`)jMy(yI_ZvD##yFuqFGkwz%{jrlI#$Zs6{1O$
z*WN4XwX@o$FTMotPIiu^=GWHz*T-JRMq0zpb=NQmnzGiWQ!}-hkqD%9L7#%Ob5%+l
zb+nI`{Sy$d-dX0W3bKS17k#q<&ejI-FQ~O-*g6+Dms5%;?G!p;5y)xssalb78s@3Gpxh*P@m8Ha%0#K$v7%lKMsbvSrSWGMIh0s{_^gWwvq4Ki|rv{
zjY}aJrs~5b$r&f7#h0)3CUuqtH|;wQ%bHGxwy>7*C8Xp~g1_cVpT}oLX?|Gu*Pers
zJ*v)l01V>gIoL#YdZ>h2`6;~q2vSM(%!J$v$?~D)067T}+BiIBKpt%d~vmv&^u4K32#3PtUS}=muW0FrdD%RNA;T2TTEK
z_Ddb?JG)_@ccJvCRx;DX&fLnBoLz`{$|CpRm5KDaK~4H3aHk
zKmB}TF_MjU#?uHxaki)auoM6yYO=FlfdYyB=#J*@`#}V}OAnSujJTP*+yxI*3MQEa
z4ffY=T%KI8tBV3QFBl^O+B+^oG$s?RBp1WSZo2qKv-|*#CMziHSiqPKu@BDJ_hPWE
zc)bt^p?`)`HNE>rs&zjf6V5T8|PK&hyji@a|%GHhSUMywC
zpeFX>bG700^|6Dy$q6l+I%Qk?p0Kxs9brNHNV@-2Q(>_)`SbU!U`Mq+ir~sd(0j#L
z|AFP}SPJ%80z*T9R4YDku8@Yez$Vh%QcH1?XJCMtxXj{2Shv{+Dw#u)yvh;
zZlvK7Ma-art#r_=3~^j!rOU_KYTHk9^Gh7gH`gY0y_xe+Au8^8_c1
z3?Ow0$Rn)?kSSmw81;moEu_q$?p42U4TlyPRB-=M*mk}w7A)L=9xQcTG{Q^(}c
zM;@eE7qh}wd8r*PG$p*fW+rr1}t7@_$mWs$qRDcz0d{|7k8_K
zmieXN|DZ1VUX4||*Fe#)8df>wzqZt^>L>3Btl0M~iPeN81=3(*^$|<=H)h^%+~4lC
z89TUrFy!O2N@I758RRIo(1isjYwj!$?RY&m0*pVRz#`-Nc=Y37hRh5lOF$9eX~?r9
znxVm40d;TQlHzp9tLnkbGHo?7yd`GO%H~WnwqldN?}oh?fr49VNWe6-0hkAkQHj=k
zKIFWDw*I~oezf$2!_Sx2ueD);>g?*u&`ZCCj-d0+jL+L8!#|jSm4;mVmp3Yu4s51r
zmEBMxL3*q$k;*3X1~eRgC>ReZ
zP)D*c?awLteB})DiAT9xTV#w-E5kCPkhL0eg;$m$OV9f^Y0l^x&H`w={#az!lU#`E!;9~ZvPc(R8x
zN^16uT{0r1xoTUpXKxQC4n`kc{k0HRVR^|Al9U1=0;N5z3`!Lf4;!tqiI_L@uK^k0
z`hZj%_e`oldQSGbfM*m>X*QK^24wdbVOGf@>kk`T$2vO3G@-^ErLUYE8hdm{hE?>)BeW^h
zr>KqfhxjishX<>gQ^qF5{xA>LR(5>wnjQb%
zDuET~WOSuzq+3aS-lcGHapvSunm=P?tSdF!`}1|6p1CpHx#&qN`1J{K;yn#_t5#Ib
zL>3#JTL}58PDXvYKONI$ZRN5o(T_;$d$u5o`E8d
zp$Hmf{xw}fm9y*@g|_sRKQgzn+3b_?7QD*JTvLdTl|*mw;y>`&Gl6y!)7sq*4z;sc
zB3z{r~n%7VIeK%SS5h!0e{%pa`jXAGADnaQs0*N{cAFk@{fjD5Jn&g>*tk)fvGjc=_L#kD^)Hdnk8-0;V)
zKi`#vtMdH%RW|B&o6c`Kw~ww~2D!esm8VM%It@PKDHjok
zj;=I~5KjXtSW?6wFI_*b8b{NGm1jwLIbGiDHB+&4#8%_I?Ag}EC%O?+Vc<}iHHv@rcct`I_~X&K*q>8!%@X1O!SI1I+Ia4bL
zq{17EKz=H>v5r<*?seuuz{)VAcvYV8tbF8>rIDXY{782Ee0$_Nf^KY&4ERK6SLy_-l90gKnYOU#tA#EBd7qq%UBD88@h
zI$E5YenMB|QAVM85^3w|!P*BF+JdIXLhM2pAAH`d^KZHC|NMt~K;6Z^6r1
zH1otw@#)E5XZER-f=BS
zweR%=+wDxY^#1Jr_L3zr^MJnl2W)ws=QY;K`jvi5;X%W?a>_$7%e^C9<|Jqf-ZMIW
z&O~}lnkE44H7O(DFO`)QNeu6UhY<`3A|T-3UZj2D=DH#hqOGI$?Z!rW$nBZN?+g7o
z)9b;G#~4lH6H4|cG8{C=p2D64LAJ>&P;+Ymb~yc>@5bt&dj(`*h59Pg({?n1{@R4n
zdDG&9-g)+;kT9_><%~SX1ooED-vgS5b$sr%E_8eT2C=knR(i2oh0LIQhIdR4HvCBG
zV^|HYd=x#=5jf;^`{w$s!0NU6?2TWo~)1If(JS;l~1YYB+mRn?;@psJq>g(-DyVJfQ9ZO3DzItvSXCSe+DU
z1+s#WgLe!tZ$4ltt?#N>?6KaC*x9C%(eLZ4U|40JHhWh57MB}Cx9xxT+SqPtPW^ZN
zQO7=suGLxd=XL(?)S*6R42MT3|vn_GAZ>u#$hmRuit(fe6#L2lrQ1{OnO
z({FU>o7+FusxF1+3UNghm>j-ra`ko3JUidbjjcaDEVv5f3nWzy2AxI~L~=@vM{#{F
z6BU?TD+@E*lXZHABvEeL%h~c^%f$9MNjYwAtymCmYCc+o*Q$SdC3JCLRGa-3M(*s&
z+IHBn`#)T~XJ}gcr)nP>3iqO;18TlZ6~A&B6XY<|FP|tvow%jh_ygu2nvXC3*tMOT
zdmeJpQAd1IeGz8M!duS9YNwm(6#PklK%V&_{r-NPt9rwxr%_;Fz|zXCZnwzf-mlYh
z>wkAxns}%w+0|JeejpLL{d9=aZhv%S?gZ=hibq3oV7scz*C>-;ayo?yq$)+mq=8od
zmTR&4_ScZZCi7L7v(>IfVXmL7gCS{}XZzf*1;?}Re~mmP;9_McuMke`sxz!JB$9DY
z+;I?j+vlXdrYk9*KR%#~L+#6Jn+@sK`Ge6kbTMe?OcN{i^Y>vFA3N7e+K;}EzqQ6+
z#=JVqC^?@I^6$yYuF`C~vDAX2UX+;tk2{m~lM*SbA&U|cE=w6NhF^DkkV_sUS77&a
z98ocgOm1BXN%>&Y#q_+EUdAx@O-7z5aVS@ji==QE-Y+>nHeAII)W);K0uwn7+G8`U
zBF@v?gbUwHHEL4r7gEb{s?H`hMhD8z73QCjlAikw|8(y$@8I3wt%DPM?$0WY7s%nw
z{eAh*;!5}0V6tmGTWQ!nUXr+Bm1use88O#uJcSNVf+x{rOZ%K}r8wFx-GE;Ab?G=9
zO^gtt_&k2QE-=KhcInuj!vX-3~=GcF$I^Qoba#lK3oMr4VpojpBr
zqR3_bLu%pZTt=7wk4f#&rUZ%ed5q5C-yDC_@wQa5P?D^r%-_+rs&uhYs$1#y1B-o;
zmzNBqa#!gFiTcJc(ULdO_E+7&5LLnb;ry^f@UrhvuH^g-aDcYN2`|}6UcQg9Yr*l9`$PiW}pY_G^%Gd
zibLm|@a{tq6%`qtsDFI94GL1l&84%<`a6R)-Haw+Oj7hlJWf%%y`s?Ntiovpef5j0kbLBe@9*#gA^Y7_&{u$KVz|(4X`Z1p7$2
zR{lqhd-md8tUME4s)2^&|LXNF*!Di9T4wLBx#^OR`cNVJs|PdVw`7OHGb1Wq@p6$x
zMx21)#rl@1fGvO7NA5cgIx0zX{lc#nGqh*r1%!LJf7|O1hHHaT^6Dz>8j$X|Iy*kb
zJlK5v3)D#+(o{J9E1MH5Y1+57S`_}Tr@i197;HuAarH)xA;09pWOODm{46eEnyTRMjuEi&>-QoH)eCEbiVC8F~=QM2#c
zjN88FoadMs+JSA@S(`&4nhm=SE$XH5Z-lK4p)KfH&RJmeFHAjWTY3<33vpT(4{uIC
z8;W~oa&8uJ|EgaGQw<536J0_DD#~~u50|7>->ft8PMJHp6bl1MB_`CYdLAj{d(FOd
zdx5V`y%iB(8SYXI4j6quL7GZb?1NOPbXLX~r_DLKIRjSNJ-G5ZlKeM9E+!xgn
zQgzh3>ICQI#>v41@#-@d+^=R=zb%k4Q}MQ)E`D+Pt_V(0xCeDeCAMQL4ELFt9b&X1
z{=8y%*5iwF;gHpFvAxFcR6lJ_e(gANqQ6=5n%xHHNlM_>%cbSD&e{*=PWr}Ddwd7=
z$5ah~aW8M|jR~>JX(-3Usz5s|H2CQx&FM=w5D2E`y=V(LH5m7$ODbF3WPH|rB>T|*
z@SHOz?%y9-cbeWXXDk~aE^&<>ml(Rs1#(~rTh($8!(?9Ryx@aijF#beH0%k#eT4jxB1a$;<_
z?Lk75ic|SXBPVAkK1JYKAq-*@;n|xV?QS7IXJcETdM%aMUPg@f$f;*WhmHm}YC$bd
z!3+4!a!kfQocsFVoWbe1(M!jxuP&q=T>(K_*XLW`s%@WtUk8S1=~<-GO{5huDQ0(4!=;UML`p)cV;D&g+$dG-m}ilri_&eza)6)
zhcd#imr74D6L9LHDrUQka$!WesLFOL+ckNdQ0!JD_IX)<%gj1e=!&d$vJ6F7McHAy
zBJJjM-~PvwO^3sdz4)uNv-HXHkL4<gCrSGGefYtzy6%XZM}
zp5kxnt|bpXEbdP0g}7_bK^EUML9g#)#7`&eGJ(;`5I#HiGf*+usXzd;YrR;yXyS
zuCqS$V;LCXmi+T$5_7+W?4RbWObtf7i@SC0Lx2A?GxwRHSDNIgv%8nVb?JXjo>56X
z_t`SeuT3YVgw|DM=H02(Yr$QVYh_5+e`aJJs6xIatQ3d8m2xTyoo#-h4V|g;8cVm67EUAv6==XgygwvTF|B2)z*nR6HkOrtX+~HXI25#N?4z@QS<9d2O
zMYr?C30a~Fxj=1LomJpWCJp3h+@6_R-CQ0jJhyr(Nv)9c?o8*cA#=|@quUI{)#Yo0
z^=SnBm2+Qdc(XndExUdGb%A^mt*`s{+WI7Fu9f9pnuG
zU7{e+qow*uCgsB(=bu5AB);48Ow#=f-fZ?-g9ZoGlOrPCwQ
z9iH*M7>k7C`k#e+PF6<#l$_O^<|qf(KH>WK%*OU4$HgMvMzE8Lk8@Sa^S0@(y)l=d
z-q@&lC!qe?nf=l5Y4@FGa$)IYO@2=$_)QlHw}%
zGA!>t5i?Qge$~DUwzVg`Vu?#PnjSd-)Eh{t7LT{(Y-}@XTK-)cCZ*I3FnXp}mM1RI
z3ypOt5Ho-EE{u;)INdKsEO&Ot{i0^D-@NbI@@_`&rr+EfvM)m`*uf{%Sy%;I_||5B
z#H?N0#qrveN%e30yB5DrLBZ){%b%t3?~|VQ?wM_me;=8I9`PvgbWNw>T?$1O$C3+%
zXOk`D3sRI4Ztu1G_Li9K&~0}oP%~xK$0oCqOe&|m-un^j-q}$vYIfG5vWsv?F;dk+
zKJ|8|xo776!e7pLjdx>5^&>2!-CmcAO4C2g1*mJ>Y`iWYJQ__I0bG;1{#Wo}(i|oe
zxEe#fsdxE}aVlF&Gtt#7y}zYctUN4HAfiCzP0d>VS%+h
zb=+b&xY2=eisarka>)o@UF_R?H14+VR9o+KTR~vdF%v_0Z*7o5cQ3zW>1JtiG+*HI
z=+z0yL1Cq@QKB>zVxPQ_A;-JT+;>{qfP@5t{TBXuAqZgLM99@mt&5c0K{=p($RVT7-
zDd`tWk}OX-B~sNT;dlWAx6}XRdKjEesWId!#~KTmiC-9_iSWqBXSoL+zNoa(XlM?q
ztl|}$(*e1L#4nV(H?5{wZLcBUdUH=!#VaO$AgarnayKboy5RVQd?DxGQ`%;=9H~p}
zK}>eVe)iPL&YoBCuZ6BW|G3Ac-(G#z=>hU
z%kDUiapl2^D=}_
zQO4-pWuu$2A7m#tr_XfzrJTPwe&_E6*=|oM+55g%_O#2mSVQ@7dt-C!(TpgjC^4sk
zh)rueSk^{WCBn>r$-DqK1bFDQfJZGK`>gOC`HG)QVHExBZG{{uI?Y|A+KhC+ccl
zGlxpBj8{rHo}Hv;rtsueioGPqR6>K9#D?Qr@C#!N3WOu1bQN6&F3G}XHy>KaoL^5c
zCK?wf2}{2gLck=@2}dnInSa0PQ3vC|{^SyG%{#X{K@Pt9GDJEx_jL^>#=Qap?C!mO8rIF*k^QGRo!RMVk@#SB;^;$(g~O@vwUc_p{r9=
zbt(5B4Vnm6%IVSxBBG-F{DH?3{#i^mG`E!HR(M+=oOM-P3Lak5ZI5yGd~#WkTL^}b^8U%ox7Z!Ahx=3%Wy+;s?Xwg2xVp>6{nU~BKg&sn5=AtSErsBx$*m_JNQ>0;*rcmm1gV5iG&Lo5->P!?z^Y!CStjepDsFAQFsuxMy0%RkxF*X;2b@
zbq+Fcee4yc8M?nW<1)XlrP9&9){-MBdetIIN>8{@?>d^_0I#qA3Kj82+FV3WP%&Ie
zR#=iE2vH?I+7LACifmMEXKiBNKlRX`<*bb_07nNutzVIXW`S*aLS4PijPDTA*NE
zpvXuejg_3X@W2?T1w`NlGnAm5v^h$Wn}~W8UTVM}jYv~AQV3%p{6<)s3McbIE=|TK
zPup(m{S#R*iT`&lpJvdxa_Lzq*+>~t44p7o>P{!+R9N6$0hM<^gS`p{3&19N=!jut
zWm}X}Xy%Y3zzDE_Gk1}!Y!#OO=PDOA5gkEo{G;Q;m{<;Q)Qa#DM7R}s38+jxG>^13
zDw;R{t`jexq7eFn^h05DkSWeUrZi3}#fi%P^WBOfIL-H91+pKc6(7A-Lrm54ZFDW%
zsWhIS0Oax@I(JIDdr=~rNeQ@xTodTjAf7}e^}vZ>3W+3AO&HOI+rnSR!dOm~zJLL}
z)Qo6>%F+805TJ3DgM!z-VR8i%VdSn0uXS~bQ$#DMlcRi<2MF2
zLQWpm@6?i>NF!2BaRTcESvHMt{>@GSEO8ZVBt{6PXB2zkCsLm+mP8wCR=hc9Y>T~Q
zxz`-){?J1oZV}KB#0ne{ek05!=u=+7bYB!d%tyT$$dn4%ckEd3L^zKqvQj9?gVD`K
zMW6%~xVa-<@dODn77cmvA*
zhl*0t3Opb!$OdiYJ&cfXrpJw&*OK8#gb@=9yyZj75qB7hxet9F0b(^j3DYic875#v
zEP$*JsK9lz^d@FlLC!sBR3;A$Q=+-ybvZ#v?x_55zN?5U+z0x2zWo$ooBcN8@OsAY~&ZH9K?QJ7$*;ml%kc*?`cZn|3gl#h8%hV$RmmF|HP@xnd^
z9}4|i>auXWT!i#Pl+k4w-g58@0@4rxgq)5jAQt!mwyXu?-{6mcV=!55Q_}JkMwI)>
zo(}jeXLbL3AiVSc4rB{VSLwDE*z2O%7FY@mE-2A5DzUOW5$1yO>E{2vAlQroBCTlo
ziCI?QOb;>u^>byOPb6H9OE^wCl9x9h%^M@bn;#x$BPeVQIs+6DxF?dJ(UFvMM#yC$
zI%6Zwery+Lbkh)2363cYvGf1q>&?TOzP2{dBn>S?TY&?iT7{Sr4Vd836qPy9pg=?d
z1Y{6UWKck;0wTx|5h{Z+1PB5`FfxNO2?#RO5gDV5A_}z#5fG3`AcE(vU+nq5``tgT
z&!cViJjeChd+m3vz4m(F^#f)I0i}M3Jg_J=c{Nsp&g+%Pse_h#*hhvtg@xF|Kzdqm
z4{m}cLP=y#85t;v=u;5BK*Iv@p(v=Js>0bO$AFj6?E%0E&)RMad6Xv*Y_7xb
zRF0j;c49n1_PN-7D6D<}>mhSohYcLH!4~qudrf)`Xqy6_+aN8o^8M=S2;1U?BEtws
z7VTB3pb2_JV6fk=2iRb^I5SuvJOzbEqp*>eu#z`bnfO#gum^9Xu4*i{$54YVwg=o9
zjz2ifv-_?3VX9DPK@Qs9hX>)%S8az4GlPZc*K~)(Cbh=_T)TvetWX%4{9k(%Vb{p{
zQeI!}F+*6nU>NB;??*po_=1!f-i8V0V3LgDko74BjWEfZvKT44oPvogoxrEd5XhGZ
zWL3DVAck@2;66%w2$X@df?!qCbEa-?V9v9ss~p4}1tRokS`8hwh2_ZypGKC)YtXl`
zQs6oeeHyXkAOFFLnNPVkK==da0qWf3g{KRz%0Ol45{p8E9&tl7bi~sze3T)EL`Owh
zVvXgoa#AF~!+5+&yp+@l1b5&ZA;8^f62)b3#Ie^@!`77eUt{c%wfX-T(|@EX*mK*r
z|Hl|$Smy)h&<2QCVq*#qk>5Ox6dPldinwwTj?KoR%uFD5{I4-M+E-)ZsQ({hAgMx(
ziPZpO=rJbkuxN=zF*ki!v
z3Yc1i?9#ZKNz~Ocz@-14a&w5C5G}qs&2856>T>7cRzopDLNmXEB1Ia~0%-9E)f0&d
ztCu8(@9SGu?-5(#uqZ3A1(l0}WdYr>ughYG?9nC3q9pNoVn|6Ka4g;wd=jQgMCR8xu^r+@sV-&}?Qngs`5!u<*%_(Vb@Gq)Xjle}`7HOyM*g~)v)
z+(KeP4uau7Pc~vBaHD|0O;Qa;5`(}EF*Q~~Y)e$+vv@oNg#Wcg>@WX6wpa~`ZTWh%
zz50<5T6n}?2ckLbP!Sw%H6I%|+_AFF@}-W`E8rYKSP-X<|8tJOd69q~OQy;n<3O~M?X21kQ9|C%2nkaFZ&2a@pZV1h
z5YQ{X)J6^Nn@;-$T5pifSZEwgwKo%UOhA3+r2`k#g<+d=rA{$1mZ$IvV$}*mlmeny
zheZs*n8^^(vdNfd@|Iu+q+5{g0LVqfBH=)6hlc6@+9A#c6~R{``zx&Y#fZ*A@hKUgkb-&`Tn90hEVL^{0d@vrHyTSSLeYqTy%MUaG(!@Z
zqmIXOA%m8TCrBj2*1#Dyb!|g#p%9(GW9!AZ;_mhvf-8u}LdFHS3X5WU7htaTlo;l2
zv)~^T?yIZ;)#o)n`A8ICiaXh=pnX;yl2t>HdtifL9*hzcF9#Ethhp&wRTN`~qbxu_
zz9>o-Ng%}V1_%e2AF<13SaKM!Gykjz#3T9bzwCl#`|pbUPXd9!9Dp3`m3wWzX4%1F
zXc+`M5F#_Th;Q{ATGI1vA|v}joCW6b*Z{5}4uYo9U@@$is?t#%aH(L?h>_c|v?^>&
zQIu*0Tz%k |