From f2cd843cf9b4883c20f419d4e9caae00c7693314 Mon Sep 17 00:00:00 2001 From: lqzhgood Date: Sat, 9 Dec 2023 09:17:00 +0000 Subject: [PATCH] deploy: ff2db67099d4e8666c9052b9ea5f21116c16ffb6 --- 404.html | 4 ++-- ...RKMPXeHd.js => guide_concept.md.hLFViWvT.js} | 2 +- ...ean.js => guide_concept.md.hLFViWvT.lean.js} | 2 +- ...f.js => guide_other_donation.md.5hp_Kq1j.js} | 2 +- ...=> guide_other_donation.md.5hp_Kq1j.lean.js} | 2 +- ...=> guide_other_donation_list.md.h2zsLLQl.js} | 2 +- ...ide_other_donation_list.md.h2zsLLQl.lean.js} | 2 +- ...jzW.js => guide_other_thanks.md.GPHXons8.js} | 2 +- ...s => guide_other_thanks.md.GPHXons8.lean.js} | 2 +- ...-runtime_Android-copy-backup.md.fE73KaVh.js} | 2 +- ...ime_Android-copy-backup.md.fE73KaVh.lean.js} | 2 +- ...up-runtime_Android-copy-root.md.v-heR5pb.js} | 2 +- ...ntime_Android-copy-root.md.v-heR5pb.lean.js} | 2 +- ...e_setup-runtime_Android-copy.md.SohI2apN.js} | 2 +- ...up-runtime_Android-copy.md.SohI2apN.lean.js} | 2 +- ..._A-detail_cannot-find-module.md.EHlTQtGf.js} | 2 +- ...tail_cannot-find-module.md.EHlTQtGf.lean.js} | 2 +- ...s => guide_setup-runtime_Q_A.md.jZDAajzR.js} | 2 +- ...guide_setup-runtime_Q_A.md.jZDAajzR.lean.js} | 2 +- ...> guide_setup-runtime_docker.md.HcNO74Wg.js} | 2 +- ...de_setup-runtime_docker.md.HcNO74Wg.lean.js} | 2 +- ... guide_setup-runtime_explain.md.EaE8qoZ2.js} | 2 +- ...e_setup-runtime_explain.md.EaE8qoZ2.lean.js} | 2 +- ...tup-runtime_github-down-repo.md.a2Wx6AXA.js} | 2 +- ...untime_github-down-repo.md.a2Wx6AXA.lean.js} | 2 +- ... => guide_setup-runtime_java.md.1ehMV8VO.js} | 2 +- ...uide_setup-runtime_java.md.1ehMV8VO.lean.js} | 2 +- ...-runtime_nodejs-dependencies.md.F3e8-aCO.js} | 2 +- ...ime_nodejs-dependencies.md.F3e8-aCO.lean.js} | 2 +- ...e_setup-runtime_nodejs-start.md.QmhtpvXa.js} | 2 +- ...up-runtime_nodejs-start.md.QmhtpvXa.lean.js} | 2 +- ...> guide_setup-runtime_nodejs.md.-6lsOI5F.js} | 2 +- ...de_setup-runtime_nodejs.md.-6lsOI5F.lean.js} | 2 +- ...s => guide_setup-runtime_php.md.8oYYxe0g.js} | 2 +- ...guide_setup-runtime_php.md.8oYYxe0g.lean.js} | 2 +- ...> guide_setup-runtime_python.md.7ojeoCia.js} | 2 +- ...de_setup-runtime_python.md.7ojeoCia.lean.js} | 2 +- ...up-runtime_snippets_open_cmd.md.rsY14opZ.js} | 2 +- ...ntime_snippets_open_cmd.md.rsY14opZ.lean.js} | 2 +- ...Te-UaB.js => guide_use_begin.md.nOO-Da45.js} | 2 +- ...n.js => guide_use_begin.md.nOO-Da45.lean.js} | 2 +- ...__0RKc0.js => guide_use_data.md.89T9rgLC.js} | 2 +- ...an.js => guide_use_data.md.89T9rgLC.lean.js} | 2 +- ...ByP_zL.js => guide_use_draft.md.UO0KL1Fz.js} | 2 +- ...n.js => guide_use_draft.md.UO0KL1Fz.lean.js} | 2 +- ...QlXP30Lc.js => guide_use_get.md.dQXlbHXd.js} | 2 +- ...ean.js => guide_use_get.md.dQXlbHXd.lean.js} | 2 +- ...BjMd2.js => guide_use_merger.md.dg-gZtvy.js} | 2 +- ....js => guide_use_merger.md.dg-gZtvy.lean.js} | 2 +- ...i.js => guide_use_msg_custom.md.LAA3TnV7.js} | 2 +- ...=> guide_use_msg_custom.md.LAA3TnV7.lean.js} | 2 +- ... guide_use_msg_other_emotion.md.GFV8kgTj.js} | 2 +- ...e_use_msg_other_emotion.md.GFV8kgTj.lean.js} | 2 +- ...r.js => guide_use_msg_schema.md.Qb3Ltl7I.js} | 2 +- ...=> guide_use_msg_schema.md.Qb3Ltl7I.lean.js} | 2 +- ...guide_use_msg_template_index.md.803B_R4g.js} | 2 +- ..._use_msg_template_index.md.803B_R4g.lean.js} | 2 +- ...wak-BBR.js => guide_use_show.md.0CIkNyD6.js} | 2 +- ...an.js => guide_use_show.md.0CIkNyD6.lean.js} | 2 +- ...qmdUIfZU.js => guide_what-is.md.EXcVqvCg.js} | 2 +- ...ean.js => guide_what-is.md.EXcVqvCg.lean.js} | 2 +- assets/index.md.Am8pU6wq.js | 1 + assets/index.md.Am8pU6wq.lean.js | 1 + assets/index.md.K3KJT1f7.js | 1 - assets/index.md.K3KJT1f7.lean.js | 1 - assets/node-dependencies.A7ijJX1J.png | Bin 0 -> 99884 bytes assets/node-dependencies.Clor6cih.png | Bin 85961 -> 0 bytes .../{style.QfzfMquz.css => style.Qmy1M4fq.css} | 2 +- guide/concept.html | 8 ++++---- guide/other/donation.html | 8 ++++---- guide/other/donation_list.html | 8 ++++---- guide/other/thanks.html | 8 ++++---- guide/setup-runtime/Android-copy-backup.html | 8 ++++---- guide/setup-runtime/Android-copy-root.html | 8 ++++---- guide/setup-runtime/Android-copy.html | 8 ++++---- .../Q&A-detail/cannot-find-module.html | 8 ++++---- guide/setup-runtime/Q&A.html | 8 ++++---- guide/setup-runtime/docker.html | 8 ++++---- guide/setup-runtime/explain.html | 8 ++++---- guide/setup-runtime/github-down-repo.html | 8 ++++---- guide/setup-runtime/java.html | 8 ++++---- guide/setup-runtime/nodejs-dependencies.html | 10 +++++----- guide/setup-runtime/nodejs-start.html | 8 ++++---- guide/setup-runtime/nodejs.html | 8 ++++---- guide/setup-runtime/php.html | 8 ++++---- guide/setup-runtime/python.html | 8 ++++---- guide/setup-runtime/snippets/open_cmd.html | 8 ++++---- guide/use/begin.html | 8 ++++---- guide/use/data.html | 8 ++++---- guide/use/draft.html | 8 ++++---- guide/use/get.html | 8 ++++---- guide/use/merger.html | 8 ++++---- guide/use/msg/custom.html | 8 ++++---- guide/use/msg/other/emotion.html | 8 ++++---- guide/use/msg/schema.html | 8 ++++---- guide/use/msg/template/index.html | 8 ++++---- guide/use/show.html | 8 ++++---- guide/what-is.html | 8 ++++---- hashmap.json | 2 +- index.html | 8 ++++---- 100 files changed, 191 insertions(+), 191 deletions(-) rename assets/{guide_concept.md.RKMPXeHd.js => guide_concept.md.hLFViWvT.js} (99%) rename assets/{guide_concept.md.RKMPXeHd.lean.js => guide_concept.md.hLFViWvT.lean.js} (84%) rename assets/{guide_other_donation.md.dDEMVJDf.js => guide_other_donation.md.5hp_Kq1j.js} (98%) rename assets/{guide_other_donation.md.dDEMVJDf.lean.js => guide_other_donation.md.5hp_Kq1j.lean.js} (97%) rename assets/{guide_other_donation_list.md.xNDgYRF0.js => guide_other_donation_list.md.h2zsLLQl.js} (97%) rename assets/{guide_other_donation_list.md.xNDgYRF0.lean.js => guide_other_donation_list.md.h2zsLLQl.lean.js} (85%) rename assets/{guide_other_thanks.md.sBNOhjzW.js => guide_other_thanks.md.GPHXons8.js} (97%) rename assets/{guide_other_thanks.md.sBNOhjzW.lean.js => guide_other_thanks.md.GPHXons8.lean.js} (85%) rename assets/{guide_setup-runtime_Android-copy-backup.md.wmQkiVtM.js => guide_setup-runtime_Android-copy-backup.md.fE73KaVh.js} (94%) rename assets/{guide_setup-runtime_Android-copy-backup.md.wmQkiVtM.lean.js => guide_setup-runtime_Android-copy-backup.md.fE73KaVh.lean.js} (94%) rename assets/{guide_setup-runtime_Android-copy-root.md.s3AWHdim.js => guide_setup-runtime_Android-copy-root.md.v-heR5pb.js} (95%) rename assets/{guide_setup-runtime_Android-copy-root.md.s3AWHdim.lean.js => guide_setup-runtime_Android-copy-root.md.v-heR5pb.lean.js} (87%) rename assets/{guide_setup-runtime_Android-copy.md.nRnBfa2G.js => guide_setup-runtime_Android-copy.md.SohI2apN.js} (94%) rename assets/{guide_setup-runtime_Android-copy.md.nRnBfa2G.lean.js => guide_setup-runtime_Android-copy.md.SohI2apN.lean.js} (87%) rename assets/{guide_setup-runtime_Q_A-detail_cannot-find-module.md.biNWb_x6.js => guide_setup-runtime_Q_A-detail_cannot-find-module.md.EHlTQtGf.js} (98%) rename assets/{guide_setup-runtime_Q_A-detail_cannot-find-module.md.biNWb_x6.lean.js => guide_setup-runtime_Q_A-detail_cannot-find-module.md.EHlTQtGf.lean.js} (89%) rename assets/{guide_setup-runtime_Q_A.md.2NV4A0OL.js => guide_setup-runtime_Q_A.md.jZDAajzR.js} (98%) rename assets/{guide_setup-runtime_Q_A.md.2NV4A0OL.lean.js => guide_setup-runtime_Q_A.md.jZDAajzR.lean.js} (98%) rename assets/{guide_setup-runtime_docker.md.6bq6fQPT.js => guide_setup-runtime_docker.md.HcNO74Wg.js} (93%) rename assets/{guide_setup-runtime_docker.md.6bq6fQPT.lean.js => guide_setup-runtime_docker.md.HcNO74Wg.lean.js} (85%) rename assets/{guide_setup-runtime_explain.md.bIvV2_7J.js => guide_setup-runtime_explain.md.EaE8qoZ2.js} (92%) rename assets/{guide_setup-runtime_explain.md.bIvV2_7J.lean.js => guide_setup-runtime_explain.md.EaE8qoZ2.lean.js} (92%) rename assets/{guide_setup-runtime_github-down-repo.md.iI-h6ls0.js => guide_setup-runtime_github-down-repo.md.a2Wx6AXA.js} (91%) rename assets/{guide_setup-runtime_github-down-repo.md.iI-h6ls0.lean.js => guide_setup-runtime_github-down-repo.md.a2Wx6AXA.lean.js} (91%) rename assets/{guide_setup-runtime_java.md.Ksvdyy3u.js => guide_setup-runtime_java.md.1ehMV8VO.js} (94%) rename assets/{guide_setup-runtime_java.md.Ksvdyy3u.lean.js => guide_setup-runtime_java.md.1ehMV8VO.lean.js} (86%) rename assets/{guide_setup-runtime_nodejs-dependencies.md.tT_2JLr_.js => guide_setup-runtime_nodejs-dependencies.md.F3e8-aCO.js} (95%) rename assets/{guide_setup-runtime_nodejs-dependencies.md.tT_2JLr_.lean.js => guide_setup-runtime_nodejs-dependencies.md.F3e8-aCO.lean.js} (80%) rename assets/{guide_setup-runtime_nodejs-start.md.sNuln6Z4.js => guide_setup-runtime_nodejs-start.md.QmhtpvXa.js} (98%) rename assets/{guide_setup-runtime_nodejs-start.md.sNuln6Z4.lean.js => guide_setup-runtime_nodejs-start.md.QmhtpvXa.lean.js} (86%) rename assets/{guide_setup-runtime_nodejs.md.ilICkwCA.js => guide_setup-runtime_nodejs.md.-6lsOI5F.js} (96%) rename assets/{guide_setup-runtime_nodejs.md.ilICkwCA.lean.js => guide_setup-runtime_nodejs.md.-6lsOI5F.lean.js} (86%) rename assets/{guide_setup-runtime_php.md.2Q-Ebvpc.js => guide_setup-runtime_php.md.8oYYxe0g.js} (95%) rename assets/{guide_setup-runtime_php.md.2Q-Ebvpc.lean.js => guide_setup-runtime_php.md.8oYYxe0g.lean.js} (86%) rename assets/{guide_setup-runtime_python.md.q6ttjoo3.js => guide_setup-runtime_python.md.7ojeoCia.js} (97%) rename assets/{guide_setup-runtime_python.md.q6ttjoo3.lean.js => guide_setup-runtime_python.md.7ojeoCia.lean.js} (88%) rename assets/{guide_setup-runtime_snippets_open_cmd.md.e80MxsGJ.js => guide_setup-runtime_snippets_open_cmd.md.rsY14opZ.js} (91%) rename assets/{guide_setup-runtime_snippets_open_cmd.md.e80MxsGJ.lean.js => guide_setup-runtime_snippets_open_cmd.md.rsY14opZ.lean.js} (91%) rename assets/{guide_use_begin.md.I9Te-UaB.js => guide_use_begin.md.nOO-Da45.js} (99%) rename assets/{guide_use_begin.md.I9Te-UaB.lean.js => guide_use_begin.md.nOO-Da45.lean.js} (79%) rename assets/{guide_use_data.md.V__0RKc0.js => guide_use_data.md.89T9rgLC.js} (96%) rename assets/{guide_use_data.md.V__0RKc0.lean.js => guide_use_data.md.89T9rgLC.lean.js} (84%) rename assets/{guide_use_draft.md.CuByP_zL.js => guide_use_draft.md.UO0KL1Fz.js} (94%) rename assets/{guide_use_draft.md.CuByP_zL.lean.js => guide_use_draft.md.UO0KL1Fz.lean.js} (86%) rename assets/{guide_use_get.md.QlXP30Lc.js => guide_use_get.md.dQXlbHXd.js} (98%) rename assets/{guide_use_get.md.QlXP30Lc.lean.js => guide_use_get.md.dQXlbHXd.lean.js} (84%) rename assets/{guide_use_merger.md.KWJBjMd2.js => guide_use_merger.md.dg-gZtvy.js} (95%) rename assets/{guide_use_merger.md.KWJBjMd2.lean.js => guide_use_merger.md.dg-gZtvy.lean.js} (84%) rename assets/{guide_use_msg_custom.md.w6qzHdoi.js => guide_use_msg_custom.md.LAA3TnV7.js} (99%) rename assets/{guide_use_msg_custom.md.w6qzHdoi.lean.js => guide_use_msg_custom.md.LAA3TnV7.lean.js} (85%) rename assets/{guide_use_msg_other_emotion.md.clpup_XS.js => guide_use_msg_other_emotion.md.GFV8kgTj.js} (99%) rename assets/{guide_use_msg_other_emotion.md.clpup_XS.lean.js => guide_use_msg_other_emotion.md.GFV8kgTj.lean.js} (85%) rename assets/{guide_use_msg_schema.md.jb_g8Jdr.js => guide_use_msg_schema.md.Qb3Ltl7I.js} (99%) rename assets/{guide_use_msg_schema.md.jb_g8Jdr.lean.js => guide_use_msg_schema.md.Qb3Ltl7I.lean.js} (85%) rename assets/{guide_use_msg_template_index.md.jDcaqZOW.js => guide_use_msg_template_index.md.803B_R4g.js} (99%) rename assets/{guide_use_msg_template_index.md.jDcaqZOW.lean.js => guide_use_msg_template_index.md.803B_R4g.lean.js} (99%) rename assets/{guide_use_show.md.-wak-BBR.js => guide_use_show.md.0CIkNyD6.js} (94%) rename assets/{guide_use_show.md.-wak-BBR.lean.js => guide_use_show.md.0CIkNyD6.lean.js} (84%) rename assets/{guide_what-is.md.qmdUIfZU.js => guide_what-is.md.EXcVqvCg.js} (97%) rename assets/{guide_what-is.md.qmdUIfZU.lean.js => guide_what-is.md.EXcVqvCg.lean.js} (84%) create mode 100644 assets/index.md.Am8pU6wq.js create mode 100644 assets/index.md.Am8pU6wq.lean.js delete mode 100644 assets/index.md.K3KJT1f7.js delete mode 100644 assets/index.md.K3KJT1f7.lean.js create mode 100644 assets/node-dependencies.A7ijJX1J.png delete mode 100644 assets/node-dependencies.Clor6cih.png rename assets/{style.QfzfMquz.css => style.Qmy1M4fq.css} (98%) diff --git a/404.html b/404.html index 1678c1a6..a0824a0c 100644 --- a/404.html +++ b/404.html @@ -6,7 +6,7 @@ 404 | Shmily - + @@ -17,7 +17,7 @@
Skip to content

404

PAGE NOT FOUND

But if you don't change your direction, and if you keep looking, you may end up where you are heading.

GPLv3 License.

- + \ No newline at end of file diff --git a/assets/guide_concept.md.RKMPXeHd.js b/assets/guide_concept.md.hLFViWvT.js similarity index 99% rename from assets/guide_concept.md.RKMPXeHd.js rename to assets/guide_concept.md.hLFViWvT.js index 336e8636..5ea22ca8 100644 --- a/assets/guide_concept.md.RKMPXeHd.js +++ b/assets/guide_concept.md.hLFViWvT.js @@ -1,4 +1,4 @@ -import{_ as a,c as e,o as l,R as s}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"理念","description":"","frontmatter":{},"headers":[],"relativePath":"guide/concept.md","filePath":"guide/concept.md","lastUpdated":1702113017000}'),i={name:"guide/concept.md"},t=s(`

理念

why

现有的聊天记录导出归档项目主要分为以下几步, 以 Wechat 为例


+import{_ as a,c as e,o as l,R as s}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"理念","description":"","frontmatter":{},"headers":[],"relativePath":"guide/concept.md","filePath":"guide/concept.md","lastUpdated":1702113381000}'),i={name:"guide/concept.md"},t=s(`

理念

why

现有的聊天记录导出归档项目主要分为以下几步, 以 Wechat 为例


 导出数据库 --> 解密数据库 --> 解密资源(图片等) --> 生成 HTML (多为模板直出)

在此流程中有很多弊端

  • 使用上
    • 大都为 HTML 模板直出,无分页,几百兆的 HTML 不可用
    • 导出的归档数据无法查询, 筛选、评论等. 失去了归档数据的意义
    • 没有图表统计,数据未体现额外价值
    • 显示数据单一, 无法多项目如 QQ Wechat 按时间线合并查看
    • 多次导出的数据 (如 2020 年导出的数据和 2021 年导出的数据) 不能累计查看并分析
  • 程序上
    • 获取数据不完整,只能拿到当前 HTML 所需导出的数据, 无法拿到数据库中完整的额外字段
    • 全流程耦合,如果对产物不满意, 只能从头开始造轮子, 难以从中间(如解密后的数据库)开始
  基于以上问题,Shimly 的亮点在于
  • 使用上

    • Show 基于 Vue 组件化开发,纯前端实现,240M 数据文件浏览搜索无压力
    • 支持筛选、搜索(支持正则)、评论(支持双向引用链接且显示)
    • 支持我能想到所有维度的数据图表统计
    • 支持多种类、多批次数据合并显示与统计
  • 程序上

    • 完整的数据导出、不管是否 Show 有使用,能导尽导,万一别人需要呢
    • 架构 (见下)

架构

基于以上问题, 我提出以下架构进行 "前后端" "功能化" 拆分, 减少后人的 轮子

|---------|----------------------- Get -----------------------|------------------------ Show -------------------------|
 |---------|------- ExportDB ------|----------- ToMsg ---------|------- ModifyServer ------|---------- Web ------------|
 
diff --git a/assets/guide_concept.md.RKMPXeHd.lean.js b/assets/guide_concept.md.hLFViWvT.lean.js
similarity index 84%
rename from assets/guide_concept.md.RKMPXeHd.lean.js
rename to assets/guide_concept.md.hLFViWvT.lean.js
index 2820000b..d5fa0e75 100644
--- a/assets/guide_concept.md.RKMPXeHd.lean.js
+++ b/assets/guide_concept.md.hLFViWvT.lean.js
@@ -1 +1 @@
-import{_ as a,c as e,o as l,R as s}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"理念","description":"","frontmatter":{},"headers":[],"relativePath":"guide/concept.md","filePath":"guide/concept.md","lastUpdated":1702113017000}'),i={name:"guide/concept.md"},t=s("",21),n=[t];function o(p,h,r,c,d,u){return l(),e("div",null,n)}const b=a(i,[["render",o]]);export{m as __pageData,b as default};
+import{_ as a,c as e,o as l,R as s}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"理念","description":"","frontmatter":{},"headers":[],"relativePath":"guide/concept.md","filePath":"guide/concept.md","lastUpdated":1702113381000}'),i={name:"guide/concept.md"},t=s("",21),n=[t];function o(p,h,r,c,d,u){return l(),e("div",null,n)}const b=a(i,[["render",o]]);export{m as __pageData,b as default};
diff --git a/assets/guide_other_donation.md.dDEMVJDf.js b/assets/guide_other_donation.md.5hp_Kq1j.js
similarity index 98%
rename from assets/guide_other_donation.md.dDEMVJDf.js
rename to assets/guide_other_donation.md.5hp_Kq1j.js
index cb02d5a2..4b899afa 100644
--- a/assets/guide_other_donation.md.dDEMVJDf.js
+++ b/assets/guide_other_donation.md.5hp_Kq1j.js
@@ -1 +1 @@
-import{_ as s,c as a,k as e,a as t,R as o,o as i}from"./chunks/framework.6Zk1sI6T.js";const r="/Shmily/assets/Ailurus.SiFWyxGE.mp4",n="/Shmily/assets/pay_al.vEIg12O3.png",l="/Shmily/assets/pay_wx.z7n4utdb.png",d="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1688964239119'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='3140'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M228.96%20172.16a76.64%2076.64%200%201%200%2075.84%2076.64%2076.32%2076.32%200%200%200-75.84-76.64zM317.76%20535.52C307.52%20458.24%20160%20360.48%20160%20360.48l-57.6%2082.24s123.84%2061.92%20134.08%20112S66.56%20753.28%2066.56%20753.28l128%2094.4s133.28-235.04%20123.2-312.16z'%20fill='%23FC8848'%20p-id='3141'%3e%3c/path%3e%3cpath%20d='M957.44%20380.96c0-66.88-66.4-152.32-174.72-171.52s-263.04%2060-286.88%2064-30.56-3.52-30.56-3.52l27.2-53.12L400%20178.56A416%20416%200%200%201%20355.04%20288a425.28%20425.28%200%200%201-74.72%2092.64L338.08%20432l76.32-90.88%2050.88%205.12L372%20464s3.36%2039.52%2032%2041.28%2072.96-67.04%2072.96-67.04l52.48%2010.4%201.76%2068.64H360.16v46.24l169.6%205.12v145.92s-48.96%207.36-70.56-23.2-12.96-78.72-12.96-78.72L336%20609.28s-6.88%2084.64%2022.56%20126.88%2090.24%2057.12%20152%2051.84%20215.84-70.72%20215.84-70.72l10.08%2046.4%2081.44-37.76-49.12-130.4-66.24%2013.76%206.88%2056.64-81.6%2036v-130.4L800%20564.64v-48H624.8V448h168v-54.88H517.92l40.8-80A562.88%20562.88%200%200%201%20679.2%20272c48-6.88%2069.44-10.24%20113.6%2017.12a108.48%20108.48%200%200%201%2050.88%2067.04v381.76a96%2096%200%200%201-60.96%2053.12c-48%2016-124-1.6-124-1.6l-6.72%2053.12s128%2025.76%20210.4-8.48%2095.04-132.16%2095.04-132.16z'%20fill='%23FC8848'%20p-id='3142'%3e%3c/path%3e%3c/svg%3e",c="/Shmily/assets/red-panda.-_1nL8ud.jpg",A=JSON.parse('{"title":"捐赠","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/donation.md","filePath":"guide/other/donation.md","lastUpdated":1702113017000}'),_={name:"guide/other/donation.md"},p=e("h1",{id:"捐赠",tabindex:"-1"},[t("捐赠 "),e("a",{class:"header-anchor",href:"#捐赠","aria-label":'Permalink to "捐赠"'},"​")],-1),h={align:"center"},m=e("p",null,[t("!!! "),e("a",{href:"https://baike.baidu.com/item/%E5%B0%8F%E7%86%8A%E7%8C%AB/22379",target:"_blank",rel:"noreferrer"},[e("em",null,"小熊猫")]),t(" 是世界上最可爱的动物 !!! XD")],-1),g={key:0},v=e("video",{src:r,controls:""},null,-1),b=[v],w=o('

https://www.bilibili.com/video/BV1qy4y1s7SJ/


如果您觉得这个项目对你有帮助, 欢迎投币请我去动物园看 小熊猫

                            

请在备注内包含 Shmily 字样
门票公示


如果觉得太麻烦,可以付费代劳。淘宝店地址

贱的那个是 小浣熊, 萌的那个是 小熊猫

red-panda

',10);function f(x,u,y,S,k,E){return i(),a("div",null,[p,e("div",h,[m,(i(),a("div",g,b)),w])])}const C=s(_,[["render",f]]);export{A as __pageData,C as default}; +import{_ as s,c as a,k as e,a as t,R as o,o as i}from"./chunks/framework.6Zk1sI6T.js";const r="/Shmily/assets/Ailurus.SiFWyxGE.mp4",n="/Shmily/assets/pay_al.vEIg12O3.png",l="/Shmily/assets/pay_wx.z7n4utdb.png",d="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1688964239119'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='3140'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M228.96%20172.16a76.64%2076.64%200%201%200%2075.84%2076.64%2076.32%2076.32%200%200%200-75.84-76.64zM317.76%20535.52C307.52%20458.24%20160%20360.48%20160%20360.48l-57.6%2082.24s123.84%2061.92%20134.08%20112S66.56%20753.28%2066.56%20753.28l128%2094.4s133.28-235.04%20123.2-312.16z'%20fill='%23FC8848'%20p-id='3141'%3e%3c/path%3e%3cpath%20d='M957.44%20380.96c0-66.88-66.4-152.32-174.72-171.52s-263.04%2060-286.88%2064-30.56-3.52-30.56-3.52l27.2-53.12L400%20178.56A416%20416%200%200%201%20355.04%20288a425.28%20425.28%200%200%201-74.72%2092.64L338.08%20432l76.32-90.88%2050.88%205.12L372%20464s3.36%2039.52%2032%2041.28%2072.96-67.04%2072.96-67.04l52.48%2010.4%201.76%2068.64H360.16v46.24l169.6%205.12v145.92s-48.96%207.36-70.56-23.2-12.96-78.72-12.96-78.72L336%20609.28s-6.88%2084.64%2022.56%20126.88%2090.24%2057.12%20152%2051.84%20215.84-70.72%20215.84-70.72l10.08%2046.4%2081.44-37.76-49.12-130.4-66.24%2013.76%206.88%2056.64-81.6%2036v-130.4L800%20564.64v-48H624.8V448h168v-54.88H517.92l40.8-80A562.88%20562.88%200%200%201%20679.2%20272c48-6.88%2069.44-10.24%20113.6%2017.12a108.48%20108.48%200%200%201%2050.88%2067.04v381.76a96%2096%200%200%201-60.96%2053.12c-48%2016-124-1.6-124-1.6l-6.72%2053.12s128%2025.76%20210.4-8.48%2095.04-132.16%2095.04-132.16z'%20fill='%23FC8848'%20p-id='3142'%3e%3c/path%3e%3c/svg%3e",c="/Shmily/assets/red-panda.-_1nL8ud.jpg",A=JSON.parse('{"title":"捐赠","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/donation.md","filePath":"guide/other/donation.md","lastUpdated":1702113381000}'),_={name:"guide/other/donation.md"},p=e("h1",{id:"捐赠",tabindex:"-1"},[t("捐赠 "),e("a",{class:"header-anchor",href:"#捐赠","aria-label":'Permalink to "捐赠"'},"​")],-1),h={align:"center"},m=e("p",null,[t("!!! "),e("a",{href:"https://baike.baidu.com/item/%E5%B0%8F%E7%86%8A%E7%8C%AB/22379",target:"_blank",rel:"noreferrer"},[e("em",null,"小熊猫")]),t(" 是世界上最可爱的动物 !!! XD")],-1),g={key:0},v=e("video",{src:r,controls:""},null,-1),b=[v],w=o('

https://www.bilibili.com/video/BV1qy4y1s7SJ/


如果您觉得这个项目对你有帮助, 欢迎投币请我去动物园看 小熊猫

                            

请在备注内包含 Shmily 字样
门票公示


如果觉得太麻烦,可以付费代劳。淘宝店地址

贱的那个是 小浣熊, 萌的那个是 小熊猫

red-panda

',10);function f(x,u,y,S,k,E){return i(),a("div",null,[p,e("div",h,[m,(i(),a("div",g,b)),w])])}const C=s(_,[["render",f]]);export{A as __pageData,C as default}; diff --git a/assets/guide_other_donation.md.dDEMVJDf.lean.js b/assets/guide_other_donation.md.5hp_Kq1j.lean.js similarity index 97% rename from assets/guide_other_donation.md.dDEMVJDf.lean.js rename to assets/guide_other_donation.md.5hp_Kq1j.lean.js index 7191cdb3..39c52d81 100644 --- a/assets/guide_other_donation.md.dDEMVJDf.lean.js +++ b/assets/guide_other_donation.md.5hp_Kq1j.lean.js @@ -1 +1 @@ -import{_ as s,c as a,k as e,a as t,R as o,o as i}from"./chunks/framework.6Zk1sI6T.js";const r="/Shmily/assets/Ailurus.SiFWyxGE.mp4",n="/Shmily/assets/pay_al.vEIg12O3.png",l="/Shmily/assets/pay_wx.z7n4utdb.png",d="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1688964239119'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='3140'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M228.96%20172.16a76.64%2076.64%200%201%200%2075.84%2076.64%2076.32%2076.32%200%200%200-75.84-76.64zM317.76%20535.52C307.52%20458.24%20160%20360.48%20160%20360.48l-57.6%2082.24s123.84%2061.92%20134.08%20112S66.56%20753.28%2066.56%20753.28l128%2094.4s133.28-235.04%20123.2-312.16z'%20fill='%23FC8848'%20p-id='3141'%3e%3c/path%3e%3cpath%20d='M957.44%20380.96c0-66.88-66.4-152.32-174.72-171.52s-263.04%2060-286.88%2064-30.56-3.52-30.56-3.52l27.2-53.12L400%20178.56A416%20416%200%200%201%20355.04%20288a425.28%20425.28%200%200%201-74.72%2092.64L338.08%20432l76.32-90.88%2050.88%205.12L372%20464s3.36%2039.52%2032%2041.28%2072.96-67.04%2072.96-67.04l52.48%2010.4%201.76%2068.64H360.16v46.24l169.6%205.12v145.92s-48.96%207.36-70.56-23.2-12.96-78.72-12.96-78.72L336%20609.28s-6.88%2084.64%2022.56%20126.88%2090.24%2057.12%20152%2051.84%20215.84-70.72%20215.84-70.72l10.08%2046.4%2081.44-37.76-49.12-130.4-66.24%2013.76%206.88%2056.64-81.6%2036v-130.4L800%20564.64v-48H624.8V448h168v-54.88H517.92l40.8-80A562.88%20562.88%200%200%201%20679.2%20272c48-6.88%2069.44-10.24%20113.6%2017.12a108.48%20108.48%200%200%201%2050.88%2067.04v381.76a96%2096%200%200%201-60.96%2053.12c-48%2016-124-1.6-124-1.6l-6.72%2053.12s128%2025.76%20210.4-8.48%2095.04-132.16%2095.04-132.16z'%20fill='%23FC8848'%20p-id='3142'%3e%3c/path%3e%3c/svg%3e",c="/Shmily/assets/red-panda.-_1nL8ud.jpg",A=JSON.parse('{"title":"捐赠","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/donation.md","filePath":"guide/other/donation.md","lastUpdated":1702113017000}'),_={name:"guide/other/donation.md"},p=e("h1",{id:"捐赠",tabindex:"-1"},[t("捐赠 "),e("a",{class:"header-anchor",href:"#捐赠","aria-label":'Permalink to "捐赠"'},"​")],-1),h={align:"center"},m=e("p",null,[t("!!! "),e("a",{href:"https://baike.baidu.com/item/%E5%B0%8F%E7%86%8A%E7%8C%AB/22379",target:"_blank",rel:"noreferrer"},[e("em",null,"小熊猫")]),t(" 是世界上最可爱的动物 !!! XD")],-1),g={key:0},v=e("video",{src:r,controls:""},null,-1),b=[v],w=o("",10);function f(x,u,y,S,k,E){return i(),a("div",null,[p,e("div",h,[m,(i(),a("div",g,b)),w])])}const C=s(_,[["render",f]]);export{A as __pageData,C as default}; +import{_ as s,c as a,k as e,a as t,R as o,o as i}from"./chunks/framework.6Zk1sI6T.js";const r="/Shmily/assets/Ailurus.SiFWyxGE.mp4",n="/Shmily/assets/pay_al.vEIg12O3.png",l="/Shmily/assets/pay_wx.z7n4utdb.png",d="data:image/svg+xml,%3c?xml%20version='1.0'%20standalone='no'?%3e%3c!DOCTYPE%20svg%20PUBLIC%20'-//W3C//DTD%20SVG%201.1//EN'%20'http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd'%3e%3csvg%20t='1688964239119'%20class='icon'%20viewBox='0%200%201024%201024'%20version='1.1'%20xmlns='http://www.w3.org/2000/svg'%20p-id='3140'%20xmlns:xlink='http://www.w3.org/1999/xlink'%20width='200'%20height='200'%3e%3cpath%20d='M228.96%20172.16a76.64%2076.64%200%201%200%2075.84%2076.64%2076.32%2076.32%200%200%200-75.84-76.64zM317.76%20535.52C307.52%20458.24%20160%20360.48%20160%20360.48l-57.6%2082.24s123.84%2061.92%20134.08%20112S66.56%20753.28%2066.56%20753.28l128%2094.4s133.28-235.04%20123.2-312.16z'%20fill='%23FC8848'%20p-id='3141'%3e%3c/path%3e%3cpath%20d='M957.44%20380.96c0-66.88-66.4-152.32-174.72-171.52s-263.04%2060-286.88%2064-30.56-3.52-30.56-3.52l27.2-53.12L400%20178.56A416%20416%200%200%201%20355.04%20288a425.28%20425.28%200%200%201-74.72%2092.64L338.08%20432l76.32-90.88%2050.88%205.12L372%20464s3.36%2039.52%2032%2041.28%2072.96-67.04%2072.96-67.04l52.48%2010.4%201.76%2068.64H360.16v46.24l169.6%205.12v145.92s-48.96%207.36-70.56-23.2-12.96-78.72-12.96-78.72L336%20609.28s-6.88%2084.64%2022.56%20126.88%2090.24%2057.12%20152%2051.84%20215.84-70.72%20215.84-70.72l10.08%2046.4%2081.44-37.76-49.12-130.4-66.24%2013.76%206.88%2056.64-81.6%2036v-130.4L800%20564.64v-48H624.8V448h168v-54.88H517.92l40.8-80A562.88%20562.88%200%200%201%20679.2%20272c48-6.88%2069.44-10.24%20113.6%2017.12a108.48%20108.48%200%200%201%2050.88%2067.04v381.76a96%2096%200%200%201-60.96%2053.12c-48%2016-124-1.6-124-1.6l-6.72%2053.12s128%2025.76%20210.4-8.48%2095.04-132.16%2095.04-132.16z'%20fill='%23FC8848'%20p-id='3142'%3e%3c/path%3e%3c/svg%3e",c="/Shmily/assets/red-panda.-_1nL8ud.jpg",A=JSON.parse('{"title":"捐赠","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/donation.md","filePath":"guide/other/donation.md","lastUpdated":1702113381000}'),_={name:"guide/other/donation.md"},p=e("h1",{id:"捐赠",tabindex:"-1"},[t("捐赠 "),e("a",{class:"header-anchor",href:"#捐赠","aria-label":'Permalink to "捐赠"'},"​")],-1),h={align:"center"},m=e("p",null,[t("!!! "),e("a",{href:"https://baike.baidu.com/item/%E5%B0%8F%E7%86%8A%E7%8C%AB/22379",target:"_blank",rel:"noreferrer"},[e("em",null,"小熊猫")]),t(" 是世界上最可爱的动物 !!! XD")],-1),g={key:0},v=e("video",{src:r,controls:""},null,-1),b=[v],w=o("",10);function f(x,u,y,S,k,E){return i(),a("div",null,[p,e("div",h,[m,(i(),a("div",g,b)),w])])}const C=s(_,[["render",f]]);export{A as __pageData,C as default}; diff --git a/assets/guide_other_donation_list.md.xNDgYRF0.js b/assets/guide_other_donation_list.md.h2zsLLQl.js similarity index 97% rename from assets/guide_other_donation_list.md.xNDgYRF0.js rename to assets/guide_other_donation_list.md.h2zsLLQl.js index f8d8b372..b84de36c 100644 --- a/assets/guide_other_donation_list.md.xNDgYRF0.js +++ b/assets/guide_other_donation_list.md.h2zsLLQl.js @@ -1 +1 @@ -import{_ as t,c as e,o as l,R as n}from"./chunks/framework.6Zk1sI6T.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/donation_list.md","filePath":"guide/other/donation_list.md","lastUpdated":1702113017000}'),d={name:"guide/other/donation_list.md"},a=n('
门票公示

TIP

请在备注内包含 Shmily 字样

如有遗漏,请发送截图至 i@lqzh.me


时间姓名金额来源
2023/09/03 17:12:36*门10Wechat
2023/11/02 14:56:02**勇15Alipay
2023/11/18 14:51:42*翔10Alipay
2023/11/18 17:08:15*畅11.11Alipay
2023/11/19 01:39:48A*s5Wechat
2023/11/22 10:17:50*羊5.61Wechat
2023/11/24 19:18:28*生20Wechat
2023/12/08 09:51:19**焜50Alipay
',4),r=[a];function i(s,c,o,y,g,x){return l(),e("div",null,r)}const p=t(d,[["render",i]]);export{_ as __pageData,p as default}; +import{_ as t,c as e,o as l,R as n}from"./chunks/framework.6Zk1sI6T.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/donation_list.md","filePath":"guide/other/donation_list.md","lastUpdated":1702113381000}'),d={name:"guide/other/donation_list.md"},a=n('
门票公示

TIP

请在备注内包含 Shmily 字样

如有遗漏,请发送截图至 i@lqzh.me


时间姓名金额来源
2023/09/03 17:12:36*门10Wechat
2023/11/02 14:56:02**勇15Alipay
2023/11/18 14:51:42*翔10Alipay
2023/11/18 17:08:15*畅11.11Alipay
2023/11/19 01:39:48A*s5Wechat
2023/11/22 10:17:50*羊5.61Wechat
2023/11/24 19:18:28*生20Wechat
2023/12/08 09:51:19**焜50Alipay
',4),r=[a];function i(s,c,o,y,g,x){return l(),e("div",null,r)}const p=t(d,[["render",i]]);export{_ as __pageData,p as default}; diff --git a/assets/guide_other_donation_list.md.xNDgYRF0.lean.js b/assets/guide_other_donation_list.md.h2zsLLQl.lean.js similarity index 85% rename from assets/guide_other_donation_list.md.xNDgYRF0.lean.js rename to assets/guide_other_donation_list.md.h2zsLLQl.lean.js index 92b1bdde..66bb5f71 100644 --- a/assets/guide_other_donation_list.md.xNDgYRF0.lean.js +++ b/assets/guide_other_donation_list.md.h2zsLLQl.lean.js @@ -1 +1 @@ -import{_ as t,c as e,o as l,R as n}from"./chunks/framework.6Zk1sI6T.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/donation_list.md","filePath":"guide/other/donation_list.md","lastUpdated":1702113017000}'),d={name:"guide/other/donation_list.md"},a=n("",4),r=[a];function i(s,c,o,y,g,x){return l(),e("div",null,r)}const p=t(d,[["render",i]]);export{_ as __pageData,p as default}; +import{_ as t,c as e,o as l,R as n}from"./chunks/framework.6Zk1sI6T.js";const _=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/donation_list.md","filePath":"guide/other/donation_list.md","lastUpdated":1702113381000}'),d={name:"guide/other/donation_list.md"},a=n("",4),r=[a];function i(s,c,o,y,g,x){return l(),e("div",null,r)}const p=t(d,[["render",i]]);export{_ as __pageData,p as default}; diff --git a/assets/guide_other_thanks.md.sBNOhjzW.js b/assets/guide_other_thanks.md.GPHXons8.js similarity index 97% rename from assets/guide_other_thanks.md.sBNOhjzW.js rename to assets/guide_other_thanks.md.GPHXons8.js index a898722f..525e760f 100644 --- a/assets/guide_other_thanks.md.sBNOhjzW.js +++ b/assets/guide_other_thanks.md.GPHXons8.js @@ -1 +1 @@ -import{_ as e,c as t,o as r,R as a}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"感谢","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/thanks.md","filePath":"guide/other/thanks.md","lastUpdated":1702113017000}'),o={name:"guide/other/thanks.md"},h=a('

感谢

这 3 年的开发中受到了各种开源库的启发与帮助, 在此感谢

Adun toridas

神圣的 Ctrl_C 连接着我们每个人的思想!让我们在绝望之中团结一致。

恩人

开发周期有点长, 名单不完整, 会逐步补充

',6),i=[h];function l(s,c,n,p,u,g){return r(),t("div",null,i)}const d=e(o,[["render",l]]);export{m as __pageData,d as default}; +import{_ as e,c as t,o as r,R as a}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"感谢","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/thanks.md","filePath":"guide/other/thanks.md","lastUpdated":1702113381000}'),o={name:"guide/other/thanks.md"},h=a('

感谢

这 3 年的开发中受到了各种开源库的启发与帮助, 在此感谢

Adun toridas

神圣的 Ctrl_C 连接着我们每个人的思想!让我们在绝望之中团结一致。

恩人

开发周期有点长, 名单不完整, 会逐步补充

',6),i=[h];function l(s,c,n,p,u,g){return r(),t("div",null,i)}const d=e(o,[["render",l]]);export{m as __pageData,d as default}; diff --git a/assets/guide_other_thanks.md.sBNOhjzW.lean.js b/assets/guide_other_thanks.md.GPHXons8.lean.js similarity index 85% rename from assets/guide_other_thanks.md.sBNOhjzW.lean.js rename to assets/guide_other_thanks.md.GPHXons8.lean.js index 46bc2e2e..ba9ac462 100644 --- a/assets/guide_other_thanks.md.sBNOhjzW.lean.js +++ b/assets/guide_other_thanks.md.GPHXons8.lean.js @@ -1 +1 @@ -import{_ as e,c as t,o as r,R as a}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"感谢","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/thanks.md","filePath":"guide/other/thanks.md","lastUpdated":1702113017000}'),o={name:"guide/other/thanks.md"},h=a("",6),i=[h];function l(s,c,n,p,u,g){return r(),t("div",null,i)}const d=e(o,[["render",l]]);export{m as __pageData,d as default}; +import{_ as e,c as t,o as r,R as a}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"感谢","description":"","frontmatter":{},"headers":[],"relativePath":"guide/other/thanks.md","filePath":"guide/other/thanks.md","lastUpdated":1702113381000}'),o={name:"guide/other/thanks.md"},h=a("",6),i=[h];function l(s,c,n,p,u,g){return r(),t("div",null,i)}const d=e(o,[["render",l]]);export{m as __pageData,d as default}; diff --git a/assets/guide_setup-runtime_Android-copy-backup.md.wmQkiVtM.js b/assets/guide_setup-runtime_Android-copy-backup.md.fE73KaVh.js similarity index 94% rename from assets/guide_setup-runtime_Android-copy-backup.md.wmQkiVtM.js rename to assets/guide_setup-runtime_Android-copy-backup.md.fE73KaVh.js index 92bd5360..b8741cd5 100644 --- a/assets/guide_setup-runtime_Android-copy-backup.md.wmQkiVtM.js +++ b/assets/guide_setup-runtime_Android-copy-backup.md.fE73KaVh.js @@ -1 +1 @@ -import{_ as r,c as a,o,k as e,a as t}from"./chunks/framework.6Zk1sI6T.js";const f=JSON.parse('{"title":"通过 备份 将 Android 文件复制到电脑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Android-copy-backup.md","filePath":"guide/setup-runtime/Android-copy-backup.md","lastUpdated":1702113017000}'),n={name:"guide/setup-runtime/Android-copy-backup.md"},d=e("h1",{id:"通过-备份-将-android-文件复制到电脑",tabindex:"-1"},[t("通过 备份 将 Android 文件复制到电脑 "),e("a",{class:"header-anchor",href:"#通过-备份-将-android-文件复制到电脑","aria-label":'Permalink to "通过 备份 将 Android 文件复制到电脑"'},"​")],-1),s=e("ul",null,[e("li",null,[t("MIUI 通过备份复制"),e("code",null,"保护区"),t("文件, 参考 "),e("a",{href:"https://github.com/Heyxk/notes/issues/1",target:"_blank",rel:"noreferrer"},"https://github.com/Heyxk/notes/issues/1")]),e("li",null,[t("华为 通过备份复制"),e("code",null,"保护区"),t("文件, 参考 "),e("a",{href:"https://1248.ink/?p=8",target:"_blank",rel:"noreferrer"},"https://1248.ink/?p=8")])],-1),i=[d,s];function c(l,p,u,h,_,m){return o(),a("div",null,i)}const b=r(n,[["render",c]]);export{f as __pageData,b as default}; +import{_ as r,c as a,o,k as e,a as t}from"./chunks/framework.6Zk1sI6T.js";const f=JSON.parse('{"title":"通过 备份 将 Android 文件复制到电脑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Android-copy-backup.md","filePath":"guide/setup-runtime/Android-copy-backup.md","lastUpdated":1702113381000}'),n={name:"guide/setup-runtime/Android-copy-backup.md"},d=e("h1",{id:"通过-备份-将-android-文件复制到电脑",tabindex:"-1"},[t("通过 备份 将 Android 文件复制到电脑 "),e("a",{class:"header-anchor",href:"#通过-备份-将-android-文件复制到电脑","aria-label":'Permalink to "通过 备份 将 Android 文件复制到电脑"'},"​")],-1),s=e("ul",null,[e("li",null,[t("MIUI 通过备份复制"),e("code",null,"保护区"),t("文件, 参考 "),e("a",{href:"https://github.com/Heyxk/notes/issues/1",target:"_blank",rel:"noreferrer"},"https://github.com/Heyxk/notes/issues/1")]),e("li",null,[t("华为 通过备份复制"),e("code",null,"保护区"),t("文件, 参考 "),e("a",{href:"https://1248.ink/?p=8",target:"_blank",rel:"noreferrer"},"https://1248.ink/?p=8")])],-1),i=[d,s];function c(l,p,u,h,_,m){return o(),a("div",null,i)}const b=r(n,[["render",c]]);export{f as __pageData,b as default}; diff --git a/assets/guide_setup-runtime_Android-copy-backup.md.wmQkiVtM.lean.js b/assets/guide_setup-runtime_Android-copy-backup.md.fE73KaVh.lean.js similarity index 94% rename from assets/guide_setup-runtime_Android-copy-backup.md.wmQkiVtM.lean.js rename to assets/guide_setup-runtime_Android-copy-backup.md.fE73KaVh.lean.js index 92bd5360..b8741cd5 100644 --- a/assets/guide_setup-runtime_Android-copy-backup.md.wmQkiVtM.lean.js +++ b/assets/guide_setup-runtime_Android-copy-backup.md.fE73KaVh.lean.js @@ -1 +1 @@ -import{_ as r,c as a,o,k as e,a as t}from"./chunks/framework.6Zk1sI6T.js";const f=JSON.parse('{"title":"通过 备份 将 Android 文件复制到电脑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Android-copy-backup.md","filePath":"guide/setup-runtime/Android-copy-backup.md","lastUpdated":1702113017000}'),n={name:"guide/setup-runtime/Android-copy-backup.md"},d=e("h1",{id:"通过-备份-将-android-文件复制到电脑",tabindex:"-1"},[t("通过 备份 将 Android 文件复制到电脑 "),e("a",{class:"header-anchor",href:"#通过-备份-将-android-文件复制到电脑","aria-label":'Permalink to "通过 备份 将 Android 文件复制到电脑"'},"​")],-1),s=e("ul",null,[e("li",null,[t("MIUI 通过备份复制"),e("code",null,"保护区"),t("文件, 参考 "),e("a",{href:"https://github.com/Heyxk/notes/issues/1",target:"_blank",rel:"noreferrer"},"https://github.com/Heyxk/notes/issues/1")]),e("li",null,[t("华为 通过备份复制"),e("code",null,"保护区"),t("文件, 参考 "),e("a",{href:"https://1248.ink/?p=8",target:"_blank",rel:"noreferrer"},"https://1248.ink/?p=8")])],-1),i=[d,s];function c(l,p,u,h,_,m){return o(),a("div",null,i)}const b=r(n,[["render",c]]);export{f as __pageData,b as default}; +import{_ as r,c as a,o,k as e,a as t}from"./chunks/framework.6Zk1sI6T.js";const f=JSON.parse('{"title":"通过 备份 将 Android 文件复制到电脑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Android-copy-backup.md","filePath":"guide/setup-runtime/Android-copy-backup.md","lastUpdated":1702113381000}'),n={name:"guide/setup-runtime/Android-copy-backup.md"},d=e("h1",{id:"通过-备份-将-android-文件复制到电脑",tabindex:"-1"},[t("通过 备份 将 Android 文件复制到电脑 "),e("a",{class:"header-anchor",href:"#通过-备份-将-android-文件复制到电脑","aria-label":'Permalink to "通过 备份 将 Android 文件复制到电脑"'},"​")],-1),s=e("ul",null,[e("li",null,[t("MIUI 通过备份复制"),e("code",null,"保护区"),t("文件, 参考 "),e("a",{href:"https://github.com/Heyxk/notes/issues/1",target:"_blank",rel:"noreferrer"},"https://github.com/Heyxk/notes/issues/1")]),e("li",null,[t("华为 通过备份复制"),e("code",null,"保护区"),t("文件, 参考 "),e("a",{href:"https://1248.ink/?p=8",target:"_blank",rel:"noreferrer"},"https://1248.ink/?p=8")])],-1),i=[d,s];function c(l,p,u,h,_,m){return o(),a("div",null,i)}const b=r(n,[["render",c]]);export{f as __pageData,b as default}; diff --git a/assets/guide_setup-runtime_Android-copy-root.md.s3AWHdim.js b/assets/guide_setup-runtime_Android-copy-root.md.v-heR5pb.js similarity index 95% rename from assets/guide_setup-runtime_Android-copy-root.md.s3AWHdim.js rename to assets/guide_setup-runtime_Android-copy-root.md.v-heR5pb.js index ce2cff84..f9fcfca8 100644 --- a/assets/guide_setup-runtime_Android-copy-root.md.s3AWHdim.js +++ b/assets/guide_setup-runtime_Android-copy-root.md.v-heR5pb.js @@ -1 +1 @@ -import{_ as o,c as e,o as d,R as t}from"./chunks/framework.6Zk1sI6T.js";const A=JSON.parse('{"title":"通过 root 将 Android 文件复制到电脑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Android-copy-root.md","filePath":"guide/setup-runtime/Android-copy-root.md","lastUpdated":1702113017000}'),r={name:"guide/setup-runtime/Android-copy-root.md"},i=t('

通过 root 将 Android 文件复制到电脑

  • 如果手机已 root ,通过 ftp 复制到电脑

  • 没有 root

    主体思路是通过 微信/QQ 等官方数据迁移功能把本机数据迁移到带 rootAndroid 系统内

    • 借一台有 root 的手机
    • 使用 Android 模拟器 / 虚拟机 (一般均自带 root)
      • 在手机上安装模拟器 / 虚拟机
        • 安卓虚拟机有 vmos 光速虚拟机 等
      • 在电脑上安装模拟器 / 虚拟机
',2),c=[i];function l(a,n,s,_,p,u){return d(),e("div",null,c)}const h=o(r,[["render",l]]);export{A as __pageData,h as default}; +import{_ as o,c as e,o as d,R as t}from"./chunks/framework.6Zk1sI6T.js";const A=JSON.parse('{"title":"通过 root 将 Android 文件复制到电脑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Android-copy-root.md","filePath":"guide/setup-runtime/Android-copy-root.md","lastUpdated":1702113381000}'),r={name:"guide/setup-runtime/Android-copy-root.md"},i=t('

通过 root 将 Android 文件复制到电脑

  • 如果手机已 root ,通过 ftp 复制到电脑

  • 没有 root

    主体思路是通过 微信/QQ 等官方数据迁移功能把本机数据迁移到带 rootAndroid 系统内

    • 借一台有 root 的手机
    • 使用 Android 模拟器 / 虚拟机 (一般均自带 root)
      • 在手机上安装模拟器 / 虚拟机
        • 安卓虚拟机有 vmos 光速虚拟机 等
      • 在电脑上安装模拟器 / 虚拟机
',2),c=[i];function l(a,n,s,_,p,u){return d(),e("div",null,c)}const h=o(r,[["render",l]]);export{A as __pageData,h as default}; diff --git a/assets/guide_setup-runtime_Android-copy-root.md.s3AWHdim.lean.js b/assets/guide_setup-runtime_Android-copy-root.md.v-heR5pb.lean.js similarity index 87% rename from assets/guide_setup-runtime_Android-copy-root.md.s3AWHdim.lean.js rename to assets/guide_setup-runtime_Android-copy-root.md.v-heR5pb.lean.js index b706909d..bc884acd 100644 --- a/assets/guide_setup-runtime_Android-copy-root.md.s3AWHdim.lean.js +++ b/assets/guide_setup-runtime_Android-copy-root.md.v-heR5pb.lean.js @@ -1 +1 @@ -import{_ as o,c as e,o as d,R as t}from"./chunks/framework.6Zk1sI6T.js";const A=JSON.parse('{"title":"通过 root 将 Android 文件复制到电脑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Android-copy-root.md","filePath":"guide/setup-runtime/Android-copy-root.md","lastUpdated":1702113017000}'),r={name:"guide/setup-runtime/Android-copy-root.md"},i=t("",2),c=[i];function l(a,n,s,_,p,u){return d(),e("div",null,c)}const h=o(r,[["render",l]]);export{A as __pageData,h as default}; +import{_ as o,c as e,o as d,R as t}from"./chunks/framework.6Zk1sI6T.js";const A=JSON.parse('{"title":"通过 root 将 Android 文件复制到电脑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Android-copy-root.md","filePath":"guide/setup-runtime/Android-copy-root.md","lastUpdated":1702113381000}'),r={name:"guide/setup-runtime/Android-copy-root.md"},i=t("",2),c=[i];function l(a,n,s,_,p,u){return d(),e("div",null,c)}const h=o(r,[["render",l]]);export{A as __pageData,h as default}; diff --git a/assets/guide_setup-runtime_Android-copy.md.nRnBfa2G.js b/assets/guide_setup-runtime_Android-copy.md.SohI2apN.js similarity index 94% rename from assets/guide_setup-runtime_Android-copy.md.nRnBfa2G.js rename to assets/guide_setup-runtime_Android-copy.md.SohI2apN.js index 656e3b58..5f41dd68 100644 --- a/assets/guide_setup-runtime_Android-copy.md.nRnBfa2G.js +++ b/assets/guide_setup-runtime_Android-copy.md.SohI2apN.js @@ -1 +1 @@ -import{_ as e,c as o,o as d,R as t}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"Android 复制文件到电脑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Android-copy.md","filePath":"guide/setup-runtime/Android-copy.md","lastUpdated":1702113017000}'),r={name:"guide/setup-runtime/Android-copy.md"},a=t('

Android 复制文件到电脑

大部分应用会将自己的数据存放在手机的 保护区, 只有手机的最高管理员 root 可以访问

所以获取 保护区 文件的方式有两种

',4),i=[a];function c(n,s,_,p,l,u){return d(),o("div",null,i)}const A=e(r,[["render",c]]);export{m as __pageData,A as default}; +import{_ as e,c as o,o as d,R as t}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"Android 复制文件到电脑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Android-copy.md","filePath":"guide/setup-runtime/Android-copy.md","lastUpdated":1702113381000}'),r={name:"guide/setup-runtime/Android-copy.md"},a=t('

Android 复制文件到电脑

大部分应用会将自己的数据存放在手机的 保护区, 只有手机的最高管理员 root 可以访问

所以获取 保护区 文件的方式有两种

',4),i=[a];function c(n,s,_,p,l,u){return d(),o("div",null,i)}const A=e(r,[["render",c]]);export{m as __pageData,A as default}; diff --git a/assets/guide_setup-runtime_Android-copy.md.nRnBfa2G.lean.js b/assets/guide_setup-runtime_Android-copy.md.SohI2apN.lean.js similarity index 87% rename from assets/guide_setup-runtime_Android-copy.md.nRnBfa2G.lean.js rename to assets/guide_setup-runtime_Android-copy.md.SohI2apN.lean.js index d04f5536..2da13b73 100644 --- a/assets/guide_setup-runtime_Android-copy.md.nRnBfa2G.lean.js +++ b/assets/guide_setup-runtime_Android-copy.md.SohI2apN.lean.js @@ -1 +1 @@ -import{_ as e,c as o,o as d,R as t}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"Android 复制文件到电脑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Android-copy.md","filePath":"guide/setup-runtime/Android-copy.md","lastUpdated":1702113017000}'),r={name:"guide/setup-runtime/Android-copy.md"},a=t("",4),i=[a];function c(n,s,_,p,l,u){return d(),o("div",null,i)}const A=e(r,[["render",c]]);export{m as __pageData,A as default}; +import{_ as e,c as o,o as d,R as t}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"Android 复制文件到电脑","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Android-copy.md","filePath":"guide/setup-runtime/Android-copy.md","lastUpdated":1702113381000}'),r={name:"guide/setup-runtime/Android-copy.md"},a=t("",4),i=[a];function c(n,s,_,p,l,u){return d(),o("div",null,i)}const A=e(r,[["render",c]]);export{m as __pageData,A as default}; diff --git a/assets/guide_setup-runtime_Q_A-detail_cannot-find-module.md.biNWb_x6.js b/assets/guide_setup-runtime_Q_A-detail_cannot-find-module.md.EHlTQtGf.js similarity index 98% rename from assets/guide_setup-runtime_Q_A-detail_cannot-find-module.md.biNWb_x6.js rename to assets/guide_setup-runtime_Q_A-detail_cannot-find-module.md.EHlTQtGf.js index 5f23e8b9..8aac4aff 100644 --- a/assets/guide_setup-runtime_Q_A-detail_cannot-find-module.md.biNWb_x6.js +++ b/assets/guide_setup-runtime_Q_A-detail_cannot-find-module.md.EHlTQtGf.js @@ -1,4 +1,4 @@ -import{_ as n,c as s,o as a,R as e}from"./chunks/framework.6Zk1sI6T.js";const h=JSON.parse('{"title":"Cannot find module ‘xxxxxx’","description":"","frontmatter":{"title":"Cannot find module ‘xxxxxx’","author":"@appinn.com F124nk1e"},"headers":[],"relativePath":"guide/setup-runtime/Q&A-detail/cannot-find-module.md","filePath":"guide/setup-runtime/Q&A-detail/cannot-find-module.md","lastUpdated":1702113017000}'),l={name:"guide/setup-runtime/Q&A-detail/cannot-find-module.md"},d=e(`

DANGER

Cannot find module ‘xxxxxx’

报错详情
Error: Cannot find module 'fs-extra'
+import{_ as n,c as s,o as a,R as e}from"./chunks/framework.6Zk1sI6T.js";const h=JSON.parse('{"title":"Cannot find module ‘xxxxxx’","description":"","frontmatter":{"title":"Cannot find module ‘xxxxxx’","author":"@appinn.com F124nk1e"},"headers":[],"relativePath":"guide/setup-runtime/Q&A-detail/cannot-find-module.md","filePath":"guide/setup-runtime/Q&A-detail/cannot-find-module.md","lastUpdated":1702113381000}'),l={name:"guide/setup-runtime/Q&A-detail/cannot-find-module.md"},d=e(`

DANGER

Cannot find module ‘xxxxxx’

报错详情
Error: Cannot find module 'fs-extra'
 Require stack:
 - D:\\transfer_redmi\\AndroidQQ_MIUI\\Shmily-Get-MobileQQ-Andriod\\decode\\utils\\db.js
 - D:\\transfer_redmi\\AndroidQQ_MIUI\\Shmily-Get-MobileQQ-Andriod\\tools\\exportTable.js
diff --git a/assets/guide_setup-runtime_Q_A-detail_cannot-find-module.md.biNWb_x6.lean.js b/assets/guide_setup-runtime_Q_A-detail_cannot-find-module.md.EHlTQtGf.lean.js
similarity index 89%
rename from assets/guide_setup-runtime_Q_A-detail_cannot-find-module.md.biNWb_x6.lean.js
rename to assets/guide_setup-runtime_Q_A-detail_cannot-find-module.md.EHlTQtGf.lean.js
index 86fd06a8..4fcf26bd 100644
--- a/assets/guide_setup-runtime_Q_A-detail_cannot-find-module.md.biNWb_x6.lean.js
+++ b/assets/guide_setup-runtime_Q_A-detail_cannot-find-module.md.EHlTQtGf.lean.js
@@ -1 +1 @@
-import{_ as n,c as s,o as a,R as e}from"./chunks/framework.6Zk1sI6T.js";const h=JSON.parse('{"title":"Cannot find module ‘xxxxxx’","description":"","frontmatter":{"title":"Cannot find module ‘xxxxxx’","author":"@appinn.com F124nk1e"},"headers":[],"relativePath":"guide/setup-runtime/Q&A-detail/cannot-find-module.md","filePath":"guide/setup-runtime/Q&A-detail/cannot-find-module.md","lastUpdated":1702113017000}'),l={name:"guide/setup-runtime/Q&A-detail/cannot-find-module.md"},d=e("",4),o=[d];function p(t,i,r,c,u,m){return a(),s("div",null,o)}const x=n(l,[["render",p]]);export{h as __pageData,x as default};
+import{_ as n,c as s,o as a,R as e}from"./chunks/framework.6Zk1sI6T.js";const h=JSON.parse('{"title":"Cannot find module ‘xxxxxx’","description":"","frontmatter":{"title":"Cannot find module ‘xxxxxx’","author":"@appinn.com F124nk1e"},"headers":[],"relativePath":"guide/setup-runtime/Q&A-detail/cannot-find-module.md","filePath":"guide/setup-runtime/Q&A-detail/cannot-find-module.md","lastUpdated":1702113381000}'),l={name:"guide/setup-runtime/Q&A-detail/cannot-find-module.md"},d=e("",4),o=[d];function p(t,i,r,c,u,m){return a(),s("div",null,o)}const x=n(l,[["render",p]]);export{h as __pageData,x as default};
diff --git a/assets/guide_setup-runtime_Q_A.md.2NV4A0OL.js b/assets/guide_setup-runtime_Q_A.md.jZDAajzR.js
similarity index 98%
rename from assets/guide_setup-runtime_Q_A.md.2NV4A0OL.js
rename to assets/guide_setup-runtime_Q_A.md.jZDAajzR.js
index 8343cbfd..c0f86687 100644
--- a/assets/guide_setup-runtime_Q_A.md.2NV4A0OL.js
+++ b/assets/guide_setup-runtime_Q_A.md.jZDAajzR.js
@@ -1 +1 @@
-import{d as o,c as s,k as n,F as t,E as i,m as r,a as e,o as l,t as d}from"./chunks/framework.6Zk1sI6T.js";const p=JSON.parse(`[{"src":"---\\ntitle: Cannot find module ‘xxxxxx’\\nauthor: '@appinn.com F124nk1e'\\n---\\n\\n::: danger\\nCannot find module ‘xxxxxx’\\n:::\\n\\n
报错详情\\n\\n\`\`\`\\nError: Cannot find module 'fs-extra'\\nRequire stack:\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\tools\\\\exportTable.js\\n at Module._resolveFilename (node:internal/modules/cjs/loader:1047:15)\\n at Module._load (node:internal/modules/cjs/loader:893:27)\\n at Module.require (node:internal/modules/cjs/loader:1113:19)\\n at require (node:internal/modules/cjs/helpers:103:18)\\n at Object. (D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js:8:12)\\n at Module._compile (node:internal/modules/cjs/loader:1226:14)\\n at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)\\n at Module.load (node:internal/modules/cjs/loader:1089:32)\\n at Module._load (node:internal/modules/cjs/loader:930:12)\\n at Module.require (node:internal/modules/cjs/loader:1113:19) {\\n code: 'MODULE_NOT_FOUND',\\n requireStack: [\\n 'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\decode\\\\\\\\utils\\\\\\\\db.js',\\n 'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\tools\\\\\\\\exportTable.js'\\n ]\\n}\\n\\nNode.js v18.14.0\\n\`\`\`\\n\\n
\\n\\n##### 解决办法\\n\\n\`nodejs\` 没有安装依赖, 参考 [nodejs](./nodejs.md) \`2.安装依赖\`\\n","html":"

DANGER

\\n

Cannot find module ‘xxxxxx’

\\n
\\n
报错详情\\n
Error: Cannot find module 'fs-extra'\\nRequire stack:\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\tools\\\\exportTable.js\\n    at Module._resolveFilename (node:internal/modules/cjs/loader:1047:15)\\n    at Module._load (node:internal/modules/cjs/loader:893:27)\\n    at Module.require (node:internal/modules/cjs/loader:1113:19)\\n    at require (node:internal/modules/cjs/helpers:103:18)\\n    at Object.<anonymous> (D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js:8:12)\\n    at Module._compile (node:internal/modules/cjs/loader:1226:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)\\n    at Module.load (node:internal/modules/cjs/loader:1089:32)\\n    at Module._load (node:internal/modules/cjs/loader:930:12)\\n    at Module.require (node:internal/modules/cjs/loader:1113:19) {\\n  code: 'MODULE_NOT_FOUND',\\n  requireStack: [\\n    'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\decode\\\\\\\\utils\\\\\\\\db.js',\\n    'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\tools\\\\\\\\exportTable.js'\\n  ]\\n}\\n\\nNode.js v18.14.0
\\n
\\n
解决办法
\\n

nodejs 没有安装依赖, 参考 nodejs 2.安装依赖

\\n","frontmatter":{"title":"Cannot find module ‘xxxxxx’","author":"@appinn.com F124nk1e"},"excerpt":"","url":"/guide/setup-runtime/Q&A-detail/cannot-find-module.html"}]`),c=n("h1",{id:"q-a",tabindex:"-1"},[e("Q & A "),n("a",{class:"header-anchor",href:"#q-a","aria-label":'Permalink to "Q & A"'},"​")],-1),u=n("blockquote",null,[n("p",null,[e("如需新增, 请新建 "),n("code",null,"docs/guide/setup-runtime/Q&A-detail/{新问题}.md")]),n("p",null,[e("内容参考模板 "),n("code",null,"docs/guide/setup-runtime/Q&A-detail/template.md.tpl")])],-1),m=n("h2",{id:"常见问题",tabindex:"-1"},[e("常见问题 "),n("a",{class:"header-anchor",href:"#常见问题","aria-label":'Permalink to "常见问题"'},"​")],-1),_={class:"qa-list"},h={class:"title"},Q={class:"link",target:"_blank"},j={class:"author"},x=["innerHTML"],k=JSON.parse('{"title":"Q & A","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Q&A.md","filePath":"guide/setup-runtime/Q&A.md","lastUpdated":1702113017000}'),M={name:"guide/setup-runtime/Q&A.md"},I=o({...M,setup(b){return(f,A)=>(l(),s("div",null,[c,u,m,n("div",null,[(l(!0),s(t,null,i(r(p),a=>(l(),s("details",_,[n("summary",h,[n("h4",Q,d(a.frontmatter.title),1),n("span",j,"by "+d(a.frontmatter.author),1)]),n("div",{class:"detail",innerHTML:a.html},null,8,x)]))),256))])]))}});export{k as __pageData,I as default}; +import{d as o,c as s,k as n,F as t,E as i,m as r,a as e,o as l,t as d}from"./chunks/framework.6Zk1sI6T.js";const p=JSON.parse(`[{"src":"---\\ntitle: Cannot find module ‘xxxxxx’\\nauthor: '@appinn.com F124nk1e'\\n---\\n\\n::: danger\\nCannot find module ‘xxxxxx’\\n:::\\n\\n
报错详情\\n\\n\`\`\`\\nError: Cannot find module 'fs-extra'\\nRequire stack:\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\tools\\\\exportTable.js\\n at Module._resolveFilename (node:internal/modules/cjs/loader:1047:15)\\n at Module._load (node:internal/modules/cjs/loader:893:27)\\n at Module.require (node:internal/modules/cjs/loader:1113:19)\\n at require (node:internal/modules/cjs/helpers:103:18)\\n at Object. (D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js:8:12)\\n at Module._compile (node:internal/modules/cjs/loader:1226:14)\\n at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)\\n at Module.load (node:internal/modules/cjs/loader:1089:32)\\n at Module._load (node:internal/modules/cjs/loader:930:12)\\n at Module.require (node:internal/modules/cjs/loader:1113:19) {\\n code: 'MODULE_NOT_FOUND',\\n requireStack: [\\n 'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\decode\\\\\\\\utils\\\\\\\\db.js',\\n 'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\tools\\\\\\\\exportTable.js'\\n ]\\n}\\n\\nNode.js v18.14.0\\n\`\`\`\\n\\n
\\n\\n##### 解决办法\\n\\n\`nodejs\` 没有安装依赖, 参考 [nodejs](./nodejs.md) \`2.安装依赖\`\\n","html":"

DANGER

\\n

Cannot find module ‘xxxxxx’

\\n
\\n
报错详情\\n
Error: Cannot find module 'fs-extra'\\nRequire stack:\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\tools\\\\exportTable.js\\n    at Module._resolveFilename (node:internal/modules/cjs/loader:1047:15)\\n    at Module._load (node:internal/modules/cjs/loader:893:27)\\n    at Module.require (node:internal/modules/cjs/loader:1113:19)\\n    at require (node:internal/modules/cjs/helpers:103:18)\\n    at Object.<anonymous> (D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js:8:12)\\n    at Module._compile (node:internal/modules/cjs/loader:1226:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)\\n    at Module.load (node:internal/modules/cjs/loader:1089:32)\\n    at Module._load (node:internal/modules/cjs/loader:930:12)\\n    at Module.require (node:internal/modules/cjs/loader:1113:19) {\\n  code: 'MODULE_NOT_FOUND',\\n  requireStack: [\\n    'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\decode\\\\\\\\utils\\\\\\\\db.js',\\n    'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\tools\\\\\\\\exportTable.js'\\n  ]\\n}\\n\\nNode.js v18.14.0
\\n
\\n
解决办法
\\n

nodejs 没有安装依赖, 参考 nodejs 2.安装依赖

\\n","frontmatter":{"title":"Cannot find module ‘xxxxxx’","author":"@appinn.com F124nk1e"},"excerpt":"","url":"/guide/setup-runtime/Q&A-detail/cannot-find-module.html"}]`),c=n("h1",{id:"q-a",tabindex:"-1"},[e("Q & A "),n("a",{class:"header-anchor",href:"#q-a","aria-label":'Permalink to "Q & A"'},"​")],-1),u=n("blockquote",null,[n("p",null,[e("如需新增, 请新建 "),n("code",null,"docs/guide/setup-runtime/Q&A-detail/{新问题}.md")]),n("p",null,[e("内容参考模板 "),n("code",null,"docs/guide/setup-runtime/Q&A-detail/template.md.tpl")])],-1),m=n("h2",{id:"常见问题",tabindex:"-1"},[e("常见问题 "),n("a",{class:"header-anchor",href:"#常见问题","aria-label":'Permalink to "常见问题"'},"​")],-1),_={class:"qa-list"},h={class:"title"},Q={class:"link",target:"_blank"},j={class:"author"},x=["innerHTML"],k=JSON.parse('{"title":"Q & A","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Q&A.md","filePath":"guide/setup-runtime/Q&A.md","lastUpdated":1702113381000}'),M={name:"guide/setup-runtime/Q&A.md"},I=o({...M,setup(b){return(f,A)=>(l(),s("div",null,[c,u,m,n("div",null,[(l(!0),s(t,null,i(r(p),a=>(l(),s("details",_,[n("summary",h,[n("h4",Q,d(a.frontmatter.title),1),n("span",j,"by "+d(a.frontmatter.author),1)]),n("div",{class:"detail",innerHTML:a.html},null,8,x)]))),256))])]))}});export{k as __pageData,I as default}; diff --git a/assets/guide_setup-runtime_Q_A.md.2NV4A0OL.lean.js b/assets/guide_setup-runtime_Q_A.md.jZDAajzR.lean.js similarity index 98% rename from assets/guide_setup-runtime_Q_A.md.2NV4A0OL.lean.js rename to assets/guide_setup-runtime_Q_A.md.jZDAajzR.lean.js index 8343cbfd..c0f86687 100644 --- a/assets/guide_setup-runtime_Q_A.md.2NV4A0OL.lean.js +++ b/assets/guide_setup-runtime_Q_A.md.jZDAajzR.lean.js @@ -1 +1 @@ -import{d as o,c as s,k as n,F as t,E as i,m as r,a as e,o as l,t as d}from"./chunks/framework.6Zk1sI6T.js";const p=JSON.parse(`[{"src":"---\\ntitle: Cannot find module ‘xxxxxx’\\nauthor: '@appinn.com F124nk1e'\\n---\\n\\n::: danger\\nCannot find module ‘xxxxxx’\\n:::\\n\\n
报错详情\\n\\n\`\`\`\\nError: Cannot find module 'fs-extra'\\nRequire stack:\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\tools\\\\exportTable.js\\n at Module._resolveFilename (node:internal/modules/cjs/loader:1047:15)\\n at Module._load (node:internal/modules/cjs/loader:893:27)\\n at Module.require (node:internal/modules/cjs/loader:1113:19)\\n at require (node:internal/modules/cjs/helpers:103:18)\\n at Object. (D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js:8:12)\\n at Module._compile (node:internal/modules/cjs/loader:1226:14)\\n at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)\\n at Module.load (node:internal/modules/cjs/loader:1089:32)\\n at Module._load (node:internal/modules/cjs/loader:930:12)\\n at Module.require (node:internal/modules/cjs/loader:1113:19) {\\n code: 'MODULE_NOT_FOUND',\\n requireStack: [\\n 'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\decode\\\\\\\\utils\\\\\\\\db.js',\\n 'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\tools\\\\\\\\exportTable.js'\\n ]\\n}\\n\\nNode.js v18.14.0\\n\`\`\`\\n\\n
\\n\\n##### 解决办法\\n\\n\`nodejs\` 没有安装依赖, 参考 [nodejs](./nodejs.md) \`2.安装依赖\`\\n","html":"

DANGER

\\n

Cannot find module ‘xxxxxx’

\\n
\\n
报错详情\\n
Error: Cannot find module 'fs-extra'\\nRequire stack:\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\tools\\\\exportTable.js\\n    at Module._resolveFilename (node:internal/modules/cjs/loader:1047:15)\\n    at Module._load (node:internal/modules/cjs/loader:893:27)\\n    at Module.require (node:internal/modules/cjs/loader:1113:19)\\n    at require (node:internal/modules/cjs/helpers:103:18)\\n    at Object.<anonymous> (D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js:8:12)\\n    at Module._compile (node:internal/modules/cjs/loader:1226:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)\\n    at Module.load (node:internal/modules/cjs/loader:1089:32)\\n    at Module._load (node:internal/modules/cjs/loader:930:12)\\n    at Module.require (node:internal/modules/cjs/loader:1113:19) {\\n  code: 'MODULE_NOT_FOUND',\\n  requireStack: [\\n    'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\decode\\\\\\\\utils\\\\\\\\db.js',\\n    'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\tools\\\\\\\\exportTable.js'\\n  ]\\n}\\n\\nNode.js v18.14.0
\\n
\\n
解决办法
\\n

nodejs 没有安装依赖, 参考 nodejs 2.安装依赖

\\n","frontmatter":{"title":"Cannot find module ‘xxxxxx’","author":"@appinn.com F124nk1e"},"excerpt":"","url":"/guide/setup-runtime/Q&A-detail/cannot-find-module.html"}]`),c=n("h1",{id:"q-a",tabindex:"-1"},[e("Q & A "),n("a",{class:"header-anchor",href:"#q-a","aria-label":'Permalink to "Q & A"'},"​")],-1),u=n("blockquote",null,[n("p",null,[e("如需新增, 请新建 "),n("code",null,"docs/guide/setup-runtime/Q&A-detail/{新问题}.md")]),n("p",null,[e("内容参考模板 "),n("code",null,"docs/guide/setup-runtime/Q&A-detail/template.md.tpl")])],-1),m=n("h2",{id:"常见问题",tabindex:"-1"},[e("常见问题 "),n("a",{class:"header-anchor",href:"#常见问题","aria-label":'Permalink to "常见问题"'},"​")],-1),_={class:"qa-list"},h={class:"title"},Q={class:"link",target:"_blank"},j={class:"author"},x=["innerHTML"],k=JSON.parse('{"title":"Q & A","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Q&A.md","filePath":"guide/setup-runtime/Q&A.md","lastUpdated":1702113017000}'),M={name:"guide/setup-runtime/Q&A.md"},I=o({...M,setup(b){return(f,A)=>(l(),s("div",null,[c,u,m,n("div",null,[(l(!0),s(t,null,i(r(p),a=>(l(),s("details",_,[n("summary",h,[n("h4",Q,d(a.frontmatter.title),1),n("span",j,"by "+d(a.frontmatter.author),1)]),n("div",{class:"detail",innerHTML:a.html},null,8,x)]))),256))])]))}});export{k as __pageData,I as default}; +import{d as o,c as s,k as n,F as t,E as i,m as r,a as e,o as l,t as d}from"./chunks/framework.6Zk1sI6T.js";const p=JSON.parse(`[{"src":"---\\ntitle: Cannot find module ‘xxxxxx’\\nauthor: '@appinn.com F124nk1e'\\n---\\n\\n::: danger\\nCannot find module ‘xxxxxx’\\n:::\\n\\n
报错详情\\n\\n\`\`\`\\nError: Cannot find module 'fs-extra'\\nRequire stack:\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\tools\\\\exportTable.js\\n at Module._resolveFilename (node:internal/modules/cjs/loader:1047:15)\\n at Module._load (node:internal/modules/cjs/loader:893:27)\\n at Module.require (node:internal/modules/cjs/loader:1113:19)\\n at require (node:internal/modules/cjs/helpers:103:18)\\n at Object. (D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js:8:12)\\n at Module._compile (node:internal/modules/cjs/loader:1226:14)\\n at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)\\n at Module.load (node:internal/modules/cjs/loader:1089:32)\\n at Module._load (node:internal/modules/cjs/loader:930:12)\\n at Module.require (node:internal/modules/cjs/loader:1113:19) {\\n code: 'MODULE_NOT_FOUND',\\n requireStack: [\\n 'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\decode\\\\\\\\utils\\\\\\\\db.js',\\n 'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\tools\\\\\\\\exportTable.js'\\n ]\\n}\\n\\nNode.js v18.14.0\\n\`\`\`\\n\\n
\\n\\n##### 解决办法\\n\\n\`nodejs\` 没有安装依赖, 参考 [nodejs](./nodejs.md) \`2.安装依赖\`\\n","html":"

DANGER

\\n

Cannot find module ‘xxxxxx’

\\n
\\n
报错详情\\n
Error: Cannot find module 'fs-extra'\\nRequire stack:\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js\\n- D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\tools\\\\exportTable.js\\n    at Module._resolveFilename (node:internal/modules/cjs/loader:1047:15)\\n    at Module._load (node:internal/modules/cjs/loader:893:27)\\n    at Module.require (node:internal/modules/cjs/loader:1113:19)\\n    at require (node:internal/modules/cjs/helpers:103:18)\\n    at Object.<anonymous> (D:\\\\transfer_redmi\\\\AndroidQQ_MIUI\\\\Shmily-Get-MobileQQ-Andriod\\\\decode\\\\utils\\\\db.js:8:12)\\n    at Module._compile (node:internal/modules/cjs/loader:1226:14)\\n    at Module._extensions..js (node:internal/modules/cjs/loader:1280:10)\\n    at Module.load (node:internal/modules/cjs/loader:1089:32)\\n    at Module._load (node:internal/modules/cjs/loader:930:12)\\n    at Module.require (node:internal/modules/cjs/loader:1113:19) {\\n  code: 'MODULE_NOT_FOUND',\\n  requireStack: [\\n    'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\decode\\\\\\\\utils\\\\\\\\db.js',\\n    'D:\\\\\\\\transfer_redmi\\\\\\\\AndroidQQ_MIUI\\\\\\\\Shmily-Get-MobileQQ-Andriod\\\\\\\\tools\\\\\\\\exportTable.js'\\n  ]\\n}\\n\\nNode.js v18.14.0
\\n
\\n
解决办法
\\n

nodejs 没有安装依赖, 参考 nodejs 2.安装依赖

\\n","frontmatter":{"title":"Cannot find module ‘xxxxxx’","author":"@appinn.com F124nk1e"},"excerpt":"","url":"/guide/setup-runtime/Q&A-detail/cannot-find-module.html"}]`),c=n("h1",{id:"q-a",tabindex:"-1"},[e("Q & A "),n("a",{class:"header-anchor",href:"#q-a","aria-label":'Permalink to "Q & A"'},"​")],-1),u=n("blockquote",null,[n("p",null,[e("如需新增, 请新建 "),n("code",null,"docs/guide/setup-runtime/Q&A-detail/{新问题}.md")]),n("p",null,[e("内容参考模板 "),n("code",null,"docs/guide/setup-runtime/Q&A-detail/template.md.tpl")])],-1),m=n("h2",{id:"常见问题",tabindex:"-1"},[e("常见问题 "),n("a",{class:"header-anchor",href:"#常见问题","aria-label":'Permalink to "常见问题"'},"​")],-1),_={class:"qa-list"},h={class:"title"},Q={class:"link",target:"_blank"},j={class:"author"},x=["innerHTML"],k=JSON.parse('{"title":"Q & A","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/Q&A.md","filePath":"guide/setup-runtime/Q&A.md","lastUpdated":1702113381000}'),M={name:"guide/setup-runtime/Q&A.md"},I=o({...M,setup(b){return(f,A)=>(l(),s("div",null,[c,u,m,n("div",null,[(l(!0),s(t,null,i(r(p),a=>(l(),s("details",_,[n("summary",h,[n("h4",Q,d(a.frontmatter.title),1),n("span",j,"by "+d(a.frontmatter.author),1)]),n("div",{class:"detail",innerHTML:a.html},null,8,x)]))),256))])]))}});export{k as __pageData,I as default}; diff --git a/assets/guide_setup-runtime_docker.md.6bq6fQPT.js b/assets/guide_setup-runtime_docker.md.HcNO74Wg.js similarity index 93% rename from assets/guide_setup-runtime_docker.md.6bq6fQPT.js rename to assets/guide_setup-runtime_docker.md.HcNO74Wg.js index 4cac89c4..0c137d53 100644 --- a/assets/guide_setup-runtime_docker.md.6bq6fQPT.js +++ b/assets/guide_setup-runtime_docker.md.HcNO74Wg.js @@ -1 +1 @@ -import{_ as e,c as t,o,R as r}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"开始 docker","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/docker.md","filePath":"guide/setup-runtime/docker.md","lastUpdated":1702113017000}'),a={name:"guide/setup-runtime/docker.md"},i=r('

开始 docker

  • 官网下载 docker desktop
  • 全默认下一步完成
',3),c=[i];function d(s,l,n,_,p,k){return o(),t("div",null,c)}const h=e(a,[["render",d]]);export{m as __pageData,h as default}; +import{_ as e,c as t,o,R as r}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"开始 docker","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/docker.md","filePath":"guide/setup-runtime/docker.md","lastUpdated":1702113381000}'),a={name:"guide/setup-runtime/docker.md"},i=r('

开始 docker

  • 官网下载 docker desktop
  • 全默认下一步完成
',3),c=[i];function d(s,l,n,_,p,k){return o(),t("div",null,c)}const h=e(a,[["render",d]]);export{m as __pageData,h as default}; diff --git a/assets/guide_setup-runtime_docker.md.6bq6fQPT.lean.js b/assets/guide_setup-runtime_docker.md.HcNO74Wg.lean.js similarity index 85% rename from assets/guide_setup-runtime_docker.md.6bq6fQPT.lean.js rename to assets/guide_setup-runtime_docker.md.HcNO74Wg.lean.js index a6b2e911..17f87c66 100644 --- a/assets/guide_setup-runtime_docker.md.6bq6fQPT.lean.js +++ b/assets/guide_setup-runtime_docker.md.HcNO74Wg.lean.js @@ -1 +1 @@ -import{_ as e,c as t,o,R as r}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"开始 docker","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/docker.md","filePath":"guide/setup-runtime/docker.md","lastUpdated":1702113017000}'),a={name:"guide/setup-runtime/docker.md"},i=r("",3),c=[i];function d(s,l,n,_,p,k){return o(),t("div",null,c)}const h=e(a,[["render",d]]);export{m as __pageData,h as default}; +import{_ as e,c as t,o,R as r}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"开始 docker","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/docker.md","filePath":"guide/setup-runtime/docker.md","lastUpdated":1702113381000}'),a={name:"guide/setup-runtime/docker.md"},i=r("",3),c=[i];function d(s,l,n,_,p,k){return o(),t("div",null,c)}const h=e(a,[["render",d]]);export{m as __pageData,h as default}; diff --git a/assets/guide_setup-runtime_explain.md.bIvV2_7J.js b/assets/guide_setup-runtime_explain.md.EaE8qoZ2.js similarity index 92% rename from assets/guide_setup-runtime_explain.md.bIvV2_7J.js rename to assets/guide_setup-runtime_explain.md.EaE8qoZ2.js index d1727c9e..a7ec6abd 100644 --- a/assets/guide_setup-runtime_explain.md.bIvV2_7J.js +++ b/assets/guide_setup-runtime_explain.md.EaE8qoZ2.js @@ -1 +1 @@ -import{_ as t,c as a,o as s,k as e,a as n}from"./chunks/framework.6Zk1sI6T.js";const k=JSON.parse('{"title":"说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/explain.md","filePath":"guide/setup-runtime/explain.md","lastUpdated":1702113017000}'),o={name:"guide/setup-runtime/explain.md"},i=e("h1",{id:"说明",tabindex:"-1"},[n("说明 "),e("a",{class:"header-anchor",href:"#说明","aria-label":'Permalink to "说明"'},"​")],-1),r=e("p",null,"这里仅作为目录使用, 你不应该来到这里, 请按相应的项目文档进行",-1),d=e("p",null,"每个项目有自己所需要的运行时, 按照项目文档进行即可.",-1),c=e("p",null,"不是说这里的运行时你需要全部安装",-1),l=[i,r,d,c];function p(_,u,h,m,f,x){return s(),a("div",null,l)}const $=t(o,[["render",p]]);export{k as __pageData,$ as default}; +import{_ as t,c as a,o as s,k as e,a as n}from"./chunks/framework.6Zk1sI6T.js";const k=JSON.parse('{"title":"说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/explain.md","filePath":"guide/setup-runtime/explain.md","lastUpdated":1702113381000}'),o={name:"guide/setup-runtime/explain.md"},i=e("h1",{id:"说明",tabindex:"-1"},[n("说明 "),e("a",{class:"header-anchor",href:"#说明","aria-label":'Permalink to "说明"'},"​")],-1),r=e("p",null,"这里仅作为目录使用, 你不应该来到这里, 请按相应的项目文档进行",-1),d=e("p",null,"每个项目有自己所需要的运行时, 按照项目文档进行即可.",-1),c=e("p",null,"不是说这里的运行时你需要全部安装",-1),l=[i,r,d,c];function p(_,u,h,m,f,x){return s(),a("div",null,l)}const $=t(o,[["render",p]]);export{k as __pageData,$ as default}; diff --git a/assets/guide_setup-runtime_explain.md.bIvV2_7J.lean.js b/assets/guide_setup-runtime_explain.md.EaE8qoZ2.lean.js similarity index 92% rename from assets/guide_setup-runtime_explain.md.bIvV2_7J.lean.js rename to assets/guide_setup-runtime_explain.md.EaE8qoZ2.lean.js index d1727c9e..a7ec6abd 100644 --- a/assets/guide_setup-runtime_explain.md.bIvV2_7J.lean.js +++ b/assets/guide_setup-runtime_explain.md.EaE8qoZ2.lean.js @@ -1 +1 @@ -import{_ as t,c as a,o as s,k as e,a as n}from"./chunks/framework.6Zk1sI6T.js";const k=JSON.parse('{"title":"说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/explain.md","filePath":"guide/setup-runtime/explain.md","lastUpdated":1702113017000}'),o={name:"guide/setup-runtime/explain.md"},i=e("h1",{id:"说明",tabindex:"-1"},[n("说明 "),e("a",{class:"header-anchor",href:"#说明","aria-label":'Permalink to "说明"'},"​")],-1),r=e("p",null,"这里仅作为目录使用, 你不应该来到这里, 请按相应的项目文档进行",-1),d=e("p",null,"每个项目有自己所需要的运行时, 按照项目文档进行即可.",-1),c=e("p",null,"不是说这里的运行时你需要全部安装",-1),l=[i,r,d,c];function p(_,u,h,m,f,x){return s(),a("div",null,l)}const $=t(o,[["render",p]]);export{k as __pageData,$ as default}; +import{_ as t,c as a,o as s,k as e,a as n}from"./chunks/framework.6Zk1sI6T.js";const k=JSON.parse('{"title":"说明","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/explain.md","filePath":"guide/setup-runtime/explain.md","lastUpdated":1702113381000}'),o={name:"guide/setup-runtime/explain.md"},i=e("h1",{id:"说明",tabindex:"-1"},[n("说明 "),e("a",{class:"header-anchor",href:"#说明","aria-label":'Permalink to "说明"'},"​")],-1),r=e("p",null,"这里仅作为目录使用, 你不应该来到这里, 请按相应的项目文档进行",-1),d=e("p",null,"每个项目有自己所需要的运行时, 按照项目文档进行即可.",-1),c=e("p",null,"不是说这里的运行时你需要全部安装",-1),l=[i,r,d,c];function p(_,u,h,m,f,x){return s(),a("div",null,l)}const $=t(o,[["render",p]]);export{k as __pageData,$ as default}; diff --git a/assets/guide_setup-runtime_github-down-repo.md.iI-h6ls0.js b/assets/guide_setup-runtime_github-down-repo.md.a2Wx6AXA.js similarity index 91% rename from assets/guide_setup-runtime_github-down-repo.md.iI-h6ls0.js rename to assets/guide_setup-runtime_github-down-repo.md.a2Wx6AXA.js index f74b1deb..35fe7ace 100644 --- a/assets/guide_setup-runtime_github-down-repo.md.iI-h6ls0.js +++ b/assets/guide_setup-runtime_github-down-repo.md.a2Wx6AXA.js @@ -1 +1 @@ -import{_ as t}from"./chunks/down_repo.IpAN7Bl0.js";import{_ as o,c as a,o as r,k as e,a as i}from"./chunks/framework.6Zk1sI6T.js";const w=JSON.parse('{"title":"Github 下载项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/github-down-repo.md","filePath":"guide/setup-runtime/github-down-repo.md","lastUpdated":1702113017000}'),s={name:"guide/setup-runtime/github-down-repo.md"},n=e("h1",{id:"github-下载项目",tabindex:"-1"},[i("Github 下载项目 "),e("a",{class:"header-anchor",href:"#github-下载项目","aria-label":'Permalink to "Github 下载项目"'},"​")],-1),d=e("p",null,[e("img",{src:t,alt:"download repo"})],-1),u=[n,d];function c(p,h,_,l,m,b){return r(),a("div",null,u)}const x=o(s,[["render",c]]);export{w as __pageData,x as default}; +import{_ as t}from"./chunks/down_repo.IpAN7Bl0.js";import{_ as o,c as a,o as r,k as e,a as i}from"./chunks/framework.6Zk1sI6T.js";const w=JSON.parse('{"title":"Github 下载项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/github-down-repo.md","filePath":"guide/setup-runtime/github-down-repo.md","lastUpdated":1702113381000}'),s={name:"guide/setup-runtime/github-down-repo.md"},n=e("h1",{id:"github-下载项目",tabindex:"-1"},[i("Github 下载项目 "),e("a",{class:"header-anchor",href:"#github-下载项目","aria-label":'Permalink to "Github 下载项目"'},"​")],-1),d=e("p",null,[e("img",{src:t,alt:"download repo"})],-1),u=[n,d];function c(p,h,_,l,m,b){return r(),a("div",null,u)}const x=o(s,[["render",c]]);export{w as __pageData,x as default}; diff --git a/assets/guide_setup-runtime_github-down-repo.md.iI-h6ls0.lean.js b/assets/guide_setup-runtime_github-down-repo.md.a2Wx6AXA.lean.js similarity index 91% rename from assets/guide_setup-runtime_github-down-repo.md.iI-h6ls0.lean.js rename to assets/guide_setup-runtime_github-down-repo.md.a2Wx6AXA.lean.js index f74b1deb..35fe7ace 100644 --- a/assets/guide_setup-runtime_github-down-repo.md.iI-h6ls0.lean.js +++ b/assets/guide_setup-runtime_github-down-repo.md.a2Wx6AXA.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/down_repo.IpAN7Bl0.js";import{_ as o,c as a,o as r,k as e,a as i}from"./chunks/framework.6Zk1sI6T.js";const w=JSON.parse('{"title":"Github 下载项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/github-down-repo.md","filePath":"guide/setup-runtime/github-down-repo.md","lastUpdated":1702113017000}'),s={name:"guide/setup-runtime/github-down-repo.md"},n=e("h1",{id:"github-下载项目",tabindex:"-1"},[i("Github 下载项目 "),e("a",{class:"header-anchor",href:"#github-下载项目","aria-label":'Permalink to "Github 下载项目"'},"​")],-1),d=e("p",null,[e("img",{src:t,alt:"download repo"})],-1),u=[n,d];function c(p,h,_,l,m,b){return r(),a("div",null,u)}const x=o(s,[["render",c]]);export{w as __pageData,x as default}; +import{_ as t}from"./chunks/down_repo.IpAN7Bl0.js";import{_ as o,c as a,o as r,k as e,a as i}from"./chunks/framework.6Zk1sI6T.js";const w=JSON.parse('{"title":"Github 下载项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/github-down-repo.md","filePath":"guide/setup-runtime/github-down-repo.md","lastUpdated":1702113381000}'),s={name:"guide/setup-runtime/github-down-repo.md"},n=e("h1",{id:"github-下载项目",tabindex:"-1"},[i("Github 下载项目 "),e("a",{class:"header-anchor",href:"#github-下载项目","aria-label":'Permalink to "Github 下载项目"'},"​")],-1),d=e("p",null,[e("img",{src:t,alt:"download repo"})],-1),u=[n,d];function c(p,h,_,l,m,b){return r(),a("div",null,u)}const x=o(s,[["render",c]]);export{w as __pageData,x as default}; diff --git a/assets/guide_setup-runtime_java.md.Ksvdyy3u.js b/assets/guide_setup-runtime_java.md.1ehMV8VO.js similarity index 94% rename from assets/guide_setup-runtime_java.md.Ksvdyy3u.js rename to assets/guide_setup-runtime_java.md.1ehMV8VO.js index 8f05354f..5b3266d8 100644 --- a/assets/guide_setup-runtime_java.md.Ksvdyy3u.js +++ b/assets/guide_setup-runtime_java.md.1ehMV8VO.js @@ -1 +1 @@ -import{_ as a,c as e,o as t,R as o}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"开始 java 项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/java.md","filePath":"guide/setup-runtime/java.md","lastUpdated":1702113017000}'),r={name:"guide/setup-runtime/java.md"},l=o('

开始 java 项目

  1. 官方下载安装 JDK
  2. 全默认下一步安装完成

FAQ

  • Java heap space

    添加环境变量 JAVA_OPTS=-Xmx4096m // 最大允许 JVM 使用 4G 内存

',4),i=[l];function c(s,n,d,_,u,h){return t(),e("div",null,i)}const f=a(r,[["render",c]]);export{m as __pageData,f as default}; +import{_ as a,c as e,o as t,R as o}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"开始 java 项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/java.md","filePath":"guide/setup-runtime/java.md","lastUpdated":1702113381000}'),r={name:"guide/setup-runtime/java.md"},l=o('

开始 java 项目

  1. 官方下载安装 JDK
  2. 全默认下一步安装完成

FAQ

  • Java heap space

    添加环境变量 JAVA_OPTS=-Xmx4096m // 最大允许 JVM 使用 4G 内存

',4),i=[l];function c(s,n,d,_,u,h){return t(),e("div",null,i)}const f=a(r,[["render",c]]);export{m as __pageData,f as default}; diff --git a/assets/guide_setup-runtime_java.md.Ksvdyy3u.lean.js b/assets/guide_setup-runtime_java.md.1ehMV8VO.lean.js similarity index 86% rename from assets/guide_setup-runtime_java.md.Ksvdyy3u.lean.js rename to assets/guide_setup-runtime_java.md.1ehMV8VO.lean.js index b39e5abc..f3d356d4 100644 --- a/assets/guide_setup-runtime_java.md.Ksvdyy3u.lean.js +++ b/assets/guide_setup-runtime_java.md.1ehMV8VO.lean.js @@ -1 +1 @@ -import{_ as a,c as e,o as t,R as o}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"开始 java 项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/java.md","filePath":"guide/setup-runtime/java.md","lastUpdated":1702113017000}'),r={name:"guide/setup-runtime/java.md"},l=o("",4),i=[l];function c(s,n,d,_,u,h){return t(),e("div",null,i)}const f=a(r,[["render",c]]);export{m as __pageData,f as default}; +import{_ as a,c as e,o as t,R as o}from"./chunks/framework.6Zk1sI6T.js";const m=JSON.parse('{"title":"开始 java 项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/java.md","filePath":"guide/setup-runtime/java.md","lastUpdated":1702113381000}'),r={name:"guide/setup-runtime/java.md"},l=o("",4),i=[l];function c(s,n,d,_,u,h){return t(),e("div",null,i)}const f=a(r,[["render",c]]);export{m as __pageData,f as default}; diff --git a/assets/guide_setup-runtime_nodejs-dependencies.md.tT_2JLr_.js b/assets/guide_setup-runtime_nodejs-dependencies.md.F3e8-aCO.js similarity index 95% rename from assets/guide_setup-runtime_nodejs-dependencies.md.tT_2JLr_.js rename to assets/guide_setup-runtime_nodejs-dependencies.md.F3e8-aCO.js index 60ff91bf..5ab3c089 100644 --- a/assets/guide_setup-runtime_nodejs-dependencies.md.tT_2JLr_.js +++ b/assets/guide_setup-runtime_nodejs-dependencies.md.F3e8-aCO.js @@ -1,4 +1,4 @@ -import{_ as s}from"./chunks/open_cmd.sSnH096g.js";import{_ as e,c as a,o as n,R as p}from"./chunks/framework.6Zk1sI6T.js";const i="/Shmily/assets/node-dependencies.Clor6cih.png",t="/Shmily/assets/npm i.o9ROlmrI.png",f=JSON.parse('{"title":"安装 nodejs 项目依赖","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/nodejs-dependencies.md","filePath":"guide/setup-runtime/nodejs-dependencies.md","lastUpdated":1702113017000}'),o={name:"guide/setup-runtime/nodejs-dependencies.md"},l=p('

安装 nodejs 项目依赖

下面提供 从项目下载从本地安装 两种方式, 二选一即可

从项目下载 (建议)

从项目下载依赖

可以查看项目是否有 node_modules 分支, 如果有, 可以直接下载其中的压缩包并解压到项目目录

// 解压后项目文件夹结构
+import{_ as s}from"./chunks/open_cmd.sSnH096g.js";import{_ as e,c as a,o as n,R as p}from"./chunks/framework.6Zk1sI6T.js";const i="/Shmily/assets/node-dependencies.A7ijJX1J.png",t="/Shmily/assets/npm i.o9ROlmrI.png",f=JSON.parse('{"title":"安装 nodejs 项目依赖","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/nodejs-dependencies.md","filePath":"guide/setup-runtime/nodejs-dependencies.md","lastUpdated":1702113381000}'),o={name:"guide/setup-runtime/nodejs-dependencies.md"},l=p('

安装 nodejs 项目依赖

下面提供 从项目下载从本地安装 两种方式, 二选一即可

从项目下载 (建议)

从项目下载依赖

可以查看项目是否有 node_modules 分支, 如果有, 可以直接下载其中的压缩包并解压到项目目录

// 解压后项目文件夹结构
 
 -\\
   - node_modules
diff --git a/assets/guide_setup-runtime_nodejs-dependencies.md.tT_2JLr_.lean.js b/assets/guide_setup-runtime_nodejs-dependencies.md.F3e8-aCO.lean.js
similarity index 80%
rename from assets/guide_setup-runtime_nodejs-dependencies.md.tT_2JLr_.lean.js
rename to assets/guide_setup-runtime_nodejs-dependencies.md.F3e8-aCO.lean.js
index d3d2e513..d8a18270 100644
--- a/assets/guide_setup-runtime_nodejs-dependencies.md.tT_2JLr_.lean.js
+++ b/assets/guide_setup-runtime_nodejs-dependencies.md.F3e8-aCO.lean.js
@@ -1 +1 @@
-import{_ as s}from"./chunks/open_cmd.sSnH096g.js";import{_ as e,c as a,o as n,R as p}from"./chunks/framework.6Zk1sI6T.js";const i="/Shmily/assets/node-dependencies.Clor6cih.png",t="/Shmily/assets/npm i.o9ROlmrI.png",f=JSON.parse('{"title":"安装 nodejs 项目依赖","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/nodejs-dependencies.md","filePath":"guide/setup-runtime/nodejs-dependencies.md","lastUpdated":1702113017000}'),o={name:"guide/setup-runtime/nodejs-dependencies.md"},l=p("",7),d=[l];function c(r,m,_,u,h,b){return n(),a("div",null,d)}const k=e(o,[["render",c]]);export{f as __pageData,k as default};
+import{_ as s}from"./chunks/open_cmd.sSnH096g.js";import{_ as e,c as a,o as n,R as p}from"./chunks/framework.6Zk1sI6T.js";const i="/Shmily/assets/node-dependencies.A7ijJX1J.png",t="/Shmily/assets/npm i.o9ROlmrI.png",f=JSON.parse('{"title":"安装 nodejs 项目依赖","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/nodejs-dependencies.md","filePath":"guide/setup-runtime/nodejs-dependencies.md","lastUpdated":1702113381000}'),o={name:"guide/setup-runtime/nodejs-dependencies.md"},l=p("",7),d=[l];function c(r,m,_,u,h,b){return n(),a("div",null,d)}const k=e(o,[["render",c]]);export{f as __pageData,k as default};
diff --git a/assets/guide_setup-runtime_nodejs-start.md.sNuln6Z4.js b/assets/guide_setup-runtime_nodejs-start.md.QmhtpvXa.js
similarity index 98%
rename from assets/guide_setup-runtime_nodejs-start.md.sNuln6Z4.js
rename to assets/guide_setup-runtime_nodejs-start.md.QmhtpvXa.js
index c62832fc..ed44e983 100644
--- a/assets/guide_setup-runtime_nodejs-start.md.sNuln6Z4.js
+++ b/assets/guide_setup-runtime_nodejs-start.md.QmhtpvXa.js
@@ -1,4 +1,4 @@
-import{_ as s,c as i,o as a,R as n}from"./chunks/framework.6Zk1sI6T.js";const E=JSON.parse('{"title":"启动 nodejs 程序","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/nodejs-start.md","filePath":"guide/setup-runtime/nodejs-start.md","lastUpdated":1702113017000}'),t={name:"guide/setup-runtime/nodejs-start.md"},e=n(`

启动 nodejs 程序

WARNING

启动方式并不唯一, 下面为常用的项目启动方式, 仅供参考

优先级从高到低

  • 按照项目说明启动程序 (一般为 npm run xxx)

  • 若项目无说明, 从 package.json 文件中的 scripts 字段获取执行脚本名称, 通过 npm run {script} 启动程序

    json
    {
    +import{_ as s,c as i,o as a,R as n}from"./chunks/framework.6Zk1sI6T.js";const E=JSON.parse('{"title":"启动 nodejs 程序","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/nodejs-start.md","filePath":"guide/setup-runtime/nodejs-start.md","lastUpdated":1702113381000}'),t={name:"guide/setup-runtime/nodejs-start.md"},e=n(`

    启动 nodejs 程序

    WARNING

    启动方式并不唯一, 下面为常用的项目启动方式, 仅供参考

    优先级从高到低

    • 按照项目说明启动程序 (一般为 npm run xxx)

    • 若项目无说明, 从 package.json 文件中的 scripts 字段获取执行脚本名称, 通过 npm run {script} 启动程序

      json
      {
           ...
           "scripts": {
               "dev": "vitepress dev docs",
      diff --git a/assets/guide_setup-runtime_nodejs-start.md.sNuln6Z4.lean.js b/assets/guide_setup-runtime_nodejs-start.md.QmhtpvXa.lean.js
      similarity index 86%
      rename from assets/guide_setup-runtime_nodejs-start.md.sNuln6Z4.lean.js
      rename to assets/guide_setup-runtime_nodejs-start.md.QmhtpvXa.lean.js
      index 17e9aabb..47ac4ecc 100644
      --- a/assets/guide_setup-runtime_nodejs-start.md.sNuln6Z4.lean.js
      +++ b/assets/guide_setup-runtime_nodejs-start.md.QmhtpvXa.lean.js
      @@ -1 +1 @@
      -import{_ as s,c as i,o as a,R as n}from"./chunks/framework.6Zk1sI6T.js";const E=JSON.parse('{"title":"启动 nodejs 程序","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/nodejs-start.md","filePath":"guide/setup-runtime/nodejs-start.md","lastUpdated":1702113017000}'),t={name:"guide/setup-runtime/nodejs-start.md"},e=n("",4),l=[e];function p(d,h,o,c,k,r){return a(),i("div",null,l)}const g=s(t,[["render",p]]);export{E as __pageData,g as default};
      +import{_ as s,c as i,o as a,R as n}from"./chunks/framework.6Zk1sI6T.js";const E=JSON.parse('{"title":"启动 nodejs 程序","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/nodejs-start.md","filePath":"guide/setup-runtime/nodejs-start.md","lastUpdated":1702113381000}'),t={name:"guide/setup-runtime/nodejs-start.md"},e=n("",4),l=[e];function p(d,h,o,c,k,r){return a(),i("div",null,l)}const g=s(t,[["render",p]]);export{E as __pageData,g as default};
      diff --git a/assets/guide_setup-runtime_nodejs.md.ilICkwCA.js b/assets/guide_setup-runtime_nodejs.md.-6lsOI5F.js
      similarity index 96%
      rename from assets/guide_setup-runtime_nodejs.md.ilICkwCA.js
      rename to assets/guide_setup-runtime_nodejs.md.-6lsOI5F.js
      index 56d31c74..f04ec1be 100644
      --- a/assets/guide_setup-runtime_nodejs.md.ilICkwCA.js
      +++ b/assets/guide_setup-runtime_nodejs.md.-6lsOI5F.js
      @@ -1 +1 @@
      -import{_ as e,c as o,o as d,R as t}from"./chunks/framework.6Zk1sI6T.js";const h=JSON.parse('{"title":"安装 nodejs","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/nodejs.md","filePath":"guide/setup-runtime/nodejs.md","lastUpdated":1702113017000}'),i={name:"guide/setup-runtime/nodejs.md"},c=t('

      安装 nodejs

      • 查看项目中 package.jsonengines 字段获取项目所需 nodejs 版本

        • 如果没有 engines 字段,从官网 https://nodejs.org/ 下载 LTS 版本
      • https://nodejs.org/dist/ 下载相应版本的 nodejs

        • Windows 平台
          • (推荐) node-v99.99.9-x64.msi 标准安装程序
          • (不推荐) node-v99.9.9-win-x64.7z / .zip 绿色版, 需要自己配置 Path 环境变量
          • (不推荐) ./win-x64/node.exe 绿色单文件, 不含 npm
      • 安装过程,选项全部默认

      ',3),s=[c];function n(l,a,r,p,_,u){return d(),o("div",null,s)}const j=e(i,[["render",n]]);export{h as __pageData,j as default}; +import{_ as e,c as o,o as d,R as t}from"./chunks/framework.6Zk1sI6T.js";const h=JSON.parse('{"title":"安装 nodejs","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/nodejs.md","filePath":"guide/setup-runtime/nodejs.md","lastUpdated":1702113381000}'),i={name:"guide/setup-runtime/nodejs.md"},c=t('

      安装 nodejs

      • 查看项目中 package.jsonengines 字段获取项目所需 nodejs 版本

        • 如果没有 engines 字段,从官网 https://nodejs.org/ 下载 LTS 版本
      • https://nodejs.org/dist/ 下载相应版本的 nodejs

        • Windows 平台
          • (推荐) node-v99.99.9-x64.msi 标准安装程序
          • (不推荐) node-v99.9.9-win-x64.7z / .zip 绿色版, 需要自己配置 Path 环境变量
          • (不推荐) ./win-x64/node.exe 绿色单文件, 不含 npm
      • 安装过程,选项全部默认

      ',3),s=[c];function n(l,a,r,p,_,u){return d(),o("div",null,s)}const j=e(i,[["render",n]]);export{h as __pageData,j as default}; diff --git a/assets/guide_setup-runtime_nodejs.md.ilICkwCA.lean.js b/assets/guide_setup-runtime_nodejs.md.-6lsOI5F.lean.js similarity index 86% rename from assets/guide_setup-runtime_nodejs.md.ilICkwCA.lean.js rename to assets/guide_setup-runtime_nodejs.md.-6lsOI5F.lean.js index 757e5e8d..07b970ed 100644 --- a/assets/guide_setup-runtime_nodejs.md.ilICkwCA.lean.js +++ b/assets/guide_setup-runtime_nodejs.md.-6lsOI5F.lean.js @@ -1 +1 @@ -import{_ as e,c as o,o as d,R as t}from"./chunks/framework.6Zk1sI6T.js";const h=JSON.parse('{"title":"安装 nodejs","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/nodejs.md","filePath":"guide/setup-runtime/nodejs.md","lastUpdated":1702113017000}'),i={name:"guide/setup-runtime/nodejs.md"},c=t("",3),s=[c];function n(l,a,r,p,_,u){return d(),o("div",null,s)}const j=e(i,[["render",n]]);export{h as __pageData,j as default}; +import{_ as e,c as o,o as d,R as t}from"./chunks/framework.6Zk1sI6T.js";const h=JSON.parse('{"title":"安装 nodejs","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/nodejs.md","filePath":"guide/setup-runtime/nodejs.md","lastUpdated":1702113381000}'),i={name:"guide/setup-runtime/nodejs.md"},c=t("",3),s=[c];function n(l,a,r,p,_,u){return d(),o("div",null,s)}const j=e(i,[["render",n]]);export{h as __pageData,j as default}; diff --git a/assets/guide_setup-runtime_php.md.2Q-Ebvpc.js b/assets/guide_setup-runtime_php.md.8oYYxe0g.js similarity index 95% rename from assets/guide_setup-runtime_php.md.2Q-Ebvpc.js rename to assets/guide_setup-runtime_php.md.8oYYxe0g.js index b1c74b51..747bcd49 100644 --- a/assets/guide_setup-runtime_php.md.2Q-Ebvpc.js +++ b/assets/guide_setup-runtime_php.md.8oYYxe0g.js @@ -1 +1 @@ -import{_ as e,c as o,o as t,R as i}from"./chunks/framework.6Zk1sI6T.js";const p="/Shmily/assets/php.jJW9nwie.png",f=JSON.parse('{"title":"开始 PHP 项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/php.md","filePath":"guide/setup-runtime/php.md","lastUpdated":1702113017000}'),c={name:"guide/setup-runtime/php.md"},d=i('

      开始 PHP 项目

      1. 官网 下载 PHP

        Windows 下载 VS16 x64 Thread Safe .zip 就行了

      2. 解压 .zipD:\\php
      3. 确认 D:\\php\\php.exe 存在
      4. Win+R快捷键打开 运行, 输入 sysdm.cpl 并执行
      5. 选择 高级 环境变量
      6. 选择 Path,新增一行 D:\\php
      7. 确认关闭窗口

      php

      ',4),a=[d];function l(s,r,n,h,_,m){return t(),o("div",null,a)}const P=e(c,[["render",l]]);export{f as __pageData,P as default}; +import{_ as e,c as o,o as t,R as i}from"./chunks/framework.6Zk1sI6T.js";const p="/Shmily/assets/php.jJW9nwie.png",f=JSON.parse('{"title":"开始 PHP 项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/php.md","filePath":"guide/setup-runtime/php.md","lastUpdated":1702113381000}'),c={name:"guide/setup-runtime/php.md"},d=i('

      开始 PHP 项目

      1. 官网 下载 PHP

        Windows 下载 VS16 x64 Thread Safe .zip 就行了

      2. 解压 .zipD:\\php
      3. 确认 D:\\php\\php.exe 存在
      4. Win+R快捷键打开 运行, 输入 sysdm.cpl 并执行
      5. 选择 高级 环境变量
      6. 选择 Path,新增一行 D:\\php
      7. 确认关闭窗口

      php

      ',4),a=[d];function l(s,r,n,h,_,m){return t(),o("div",null,a)}const P=e(c,[["render",l]]);export{f as __pageData,P as default}; diff --git a/assets/guide_setup-runtime_php.md.2Q-Ebvpc.lean.js b/assets/guide_setup-runtime_php.md.8oYYxe0g.lean.js similarity index 86% rename from assets/guide_setup-runtime_php.md.2Q-Ebvpc.lean.js rename to assets/guide_setup-runtime_php.md.8oYYxe0g.lean.js index 4e7038f3..c8f5809e 100644 --- a/assets/guide_setup-runtime_php.md.2Q-Ebvpc.lean.js +++ b/assets/guide_setup-runtime_php.md.8oYYxe0g.lean.js @@ -1 +1 @@ -import{_ as e,c as o,o as t,R as i}from"./chunks/framework.6Zk1sI6T.js";const p="/Shmily/assets/php.jJW9nwie.png",f=JSON.parse('{"title":"开始 PHP 项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/php.md","filePath":"guide/setup-runtime/php.md","lastUpdated":1702113017000}'),c={name:"guide/setup-runtime/php.md"},d=i("",4),a=[d];function l(s,r,n,h,_,m){return t(),o("div",null,a)}const P=e(c,[["render",l]]);export{f as __pageData,P as default}; +import{_ as e,c as o,o as t,R as i}from"./chunks/framework.6Zk1sI6T.js";const p="/Shmily/assets/php.jJW9nwie.png",f=JSON.parse('{"title":"开始 PHP 项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/php.md","filePath":"guide/setup-runtime/php.md","lastUpdated":1702113381000}'),c={name:"guide/setup-runtime/php.md"},d=i("",4),a=[d];function l(s,r,n,h,_,m){return t(),o("div",null,a)}const P=e(c,[["render",l]]);export{f as __pageData,P as default}; diff --git a/assets/guide_setup-runtime_python.md.q6ttjoo3.js b/assets/guide_setup-runtime_python.md.7ojeoCia.js similarity index 97% rename from assets/guide_setup-runtime_python.md.q6ttjoo3.js rename to assets/guide_setup-runtime_python.md.7ojeoCia.js index b36ba50c..55cabbc8 100644 --- a/assets/guide_setup-runtime_python.md.q6ttjoo3.js +++ b/assets/guide_setup-runtime_python.md.7ojeoCia.js @@ -1 +1 @@ -import{_ as t}from"./chunks/open_cmd.sSnH096g.js";import{_ as a,c as e,o as s,R as i}from"./chunks/framework.6Zk1sI6T.js";const l="/Shmily/assets/python-setup.uz-aeYAo.png",g=JSON.parse('{"title":"开始 Python 项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/python.md","filePath":"guide/setup-runtime/python.md","lastUpdated":1702113017000}'),p={name:"guide/setup-runtime/python.md"},n=i('

      开始 Python 项目

      1. 安装 python

      • 进入官网下载

      • 勾选 Add python.exe to PATH

        python add path

      • 全默认 下一步 完成

      2. 安装项目依赖

      • 命令行打开项目目录
        • Windows 用户在地址栏输入 cmd 回车即可打开当前目录命令行 open cmd

        • 执行命令安装依赖

        shell
        pip install -r requirements.txt

      3.启动程序

      WARNING

      项目启动方式并不唯一, 下面为常用的项目启动方式, 仅供参考

      • 按照项目说明启动程序

      • 若无说明, 一般 main.py 为入口文件

        shell
            python main.py
      ',8),o=[n];function h(r,d,c,u,_,m){return s(),e("div",null,o)}const b=a(p,[["render",h]]);export{g as __pageData,b as default}; +import{_ as t}from"./chunks/open_cmd.sSnH096g.js";import{_ as a,c as e,o as s,R as i}from"./chunks/framework.6Zk1sI6T.js";const l="/Shmily/assets/python-setup.uz-aeYAo.png",g=JSON.parse('{"title":"开始 Python 项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/python.md","filePath":"guide/setup-runtime/python.md","lastUpdated":1702113381000}'),p={name:"guide/setup-runtime/python.md"},n=i('

      开始 Python 项目

      1. 安装 python

      • 进入官网下载

      • 勾选 Add python.exe to PATH

        python add path

      • 全默认 下一步 完成

      2. 安装项目依赖

      • 命令行打开项目目录
        • Windows 用户在地址栏输入 cmd 回车即可打开当前目录命令行 open cmd

        • 执行命令安装依赖

        shell
        pip install -r requirements.txt

      3.启动程序

      WARNING

      项目启动方式并不唯一, 下面为常用的项目启动方式, 仅供参考

      • 按照项目说明启动程序

      • 若无说明, 一般 main.py 为入口文件

        shell
            python main.py
      ',8),o=[n];function h(r,d,c,u,_,m){return s(),e("div",null,o)}const b=a(p,[["render",h]]);export{g as __pageData,b as default}; diff --git a/assets/guide_setup-runtime_python.md.q6ttjoo3.lean.js b/assets/guide_setup-runtime_python.md.7ojeoCia.lean.js similarity index 88% rename from assets/guide_setup-runtime_python.md.q6ttjoo3.lean.js rename to assets/guide_setup-runtime_python.md.7ojeoCia.lean.js index 62466bf5..d12cdbc1 100644 --- a/assets/guide_setup-runtime_python.md.q6ttjoo3.lean.js +++ b/assets/guide_setup-runtime_python.md.7ojeoCia.lean.js @@ -1 +1 @@ -import{_ as t}from"./chunks/open_cmd.sSnH096g.js";import{_ as a,c as e,o as s,R as i}from"./chunks/framework.6Zk1sI6T.js";const l="/Shmily/assets/python-setup.uz-aeYAo.png",g=JSON.parse('{"title":"开始 Python 项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/python.md","filePath":"guide/setup-runtime/python.md","lastUpdated":1702113017000}'),p={name:"guide/setup-runtime/python.md"},n=i("",8),o=[n];function h(r,d,c,u,_,m){return s(),e("div",null,o)}const b=a(p,[["render",h]]);export{g as __pageData,b as default}; +import{_ as t}from"./chunks/open_cmd.sSnH096g.js";import{_ as a,c as e,o as s,R as i}from"./chunks/framework.6Zk1sI6T.js";const l="/Shmily/assets/python-setup.uz-aeYAo.png",g=JSON.parse('{"title":"开始 Python 项目","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/python.md","filePath":"guide/setup-runtime/python.md","lastUpdated":1702113381000}'),p={name:"guide/setup-runtime/python.md"},n=i("",8),o=[n];function h(r,d,c,u,_,m){return s(),e("div",null,o)}const b=a(p,[["render",h]]);export{g as __pageData,b as default}; diff --git a/assets/guide_setup-runtime_snippets_open_cmd.md.e80MxsGJ.js b/assets/guide_setup-runtime_snippets_open_cmd.md.rsY14opZ.js similarity index 91% rename from assets/guide_setup-runtime_snippets_open_cmd.md.e80MxsGJ.js rename to assets/guide_setup-runtime_snippets_open_cmd.md.rsY14opZ.js index ac5a3961..0791b560 100644 --- a/assets/guide_setup-runtime_snippets_open_cmd.md.e80MxsGJ.js +++ b/assets/guide_setup-runtime_snippets_open_cmd.md.rsY14opZ.js @@ -1 +1 @@ -import{_ as s}from"./chunks/open_cmd.sSnH096g.js";import{_ as n,c as o,o as a,k as e,a as t}from"./chunks/framework.6Zk1sI6T.js";const x=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/snippets/open_cmd.md","filePath":"guide/setup-runtime/snippets/open_cmd.md","lastUpdated":1702113017000}'),p={name:"guide/setup-runtime/snippets/open_cmd.md"},i=e("ul",null,[e("li",null,[t("命令行打开项目目录 "),e("ul",null,[e("li",null,[t("Windows 用户在地址栏输入 cmd 回车即可打开当前目录命令行 "),e("img",{src:s,alt:"open cmd"})])])])],-1),r=[i];function c(d,l,m,_,u,f){return a(),o("div",null,r)}const $=n(p,[["render",c]]);export{x as __pageData,$ as default}; +import{_ as s}from"./chunks/open_cmd.sSnH096g.js";import{_ as n,c as o,o as a,k as e,a as t}from"./chunks/framework.6Zk1sI6T.js";const x=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/snippets/open_cmd.md","filePath":"guide/setup-runtime/snippets/open_cmd.md","lastUpdated":1702113381000}'),p={name:"guide/setup-runtime/snippets/open_cmd.md"},i=e("ul",null,[e("li",null,[t("命令行打开项目目录 "),e("ul",null,[e("li",null,[t("Windows 用户在地址栏输入 cmd 回车即可打开当前目录命令行 "),e("img",{src:s,alt:"open cmd"})])])])],-1),r=[i];function c(d,l,m,_,u,f){return a(),o("div",null,r)}const $=n(p,[["render",c]]);export{x as __pageData,$ as default}; diff --git a/assets/guide_setup-runtime_snippets_open_cmd.md.e80MxsGJ.lean.js b/assets/guide_setup-runtime_snippets_open_cmd.md.rsY14opZ.lean.js similarity index 91% rename from assets/guide_setup-runtime_snippets_open_cmd.md.e80MxsGJ.lean.js rename to assets/guide_setup-runtime_snippets_open_cmd.md.rsY14opZ.lean.js index ac5a3961..0791b560 100644 --- a/assets/guide_setup-runtime_snippets_open_cmd.md.e80MxsGJ.lean.js +++ b/assets/guide_setup-runtime_snippets_open_cmd.md.rsY14opZ.lean.js @@ -1 +1 @@ -import{_ as s}from"./chunks/open_cmd.sSnH096g.js";import{_ as n,c as o,o as a,k as e,a as t}from"./chunks/framework.6Zk1sI6T.js";const x=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/snippets/open_cmd.md","filePath":"guide/setup-runtime/snippets/open_cmd.md","lastUpdated":1702113017000}'),p={name:"guide/setup-runtime/snippets/open_cmd.md"},i=e("ul",null,[e("li",null,[t("命令行打开项目目录 "),e("ul",null,[e("li",null,[t("Windows 用户在地址栏输入 cmd 回车即可打开当前目录命令行 "),e("img",{src:s,alt:"open cmd"})])])])],-1),r=[i];function c(d,l,m,_,u,f){return a(),o("div",null,r)}const $=n(p,[["render",c]]);export{x as __pageData,$ as default}; +import{_ as s}from"./chunks/open_cmd.sSnH096g.js";import{_ as n,c as o,o as a,k as e,a as t}from"./chunks/framework.6Zk1sI6T.js";const x=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/setup-runtime/snippets/open_cmd.md","filePath":"guide/setup-runtime/snippets/open_cmd.md","lastUpdated":1702113381000}'),p={name:"guide/setup-runtime/snippets/open_cmd.md"},i=e("ul",null,[e("li",null,[t("命令行打开项目目录 "),e("ul",null,[e("li",null,[t("Windows 用户在地址栏输入 cmd 回车即可打开当前目录命令行 "),e("img",{src:s,alt:"open cmd"})])])])],-1),r=[i];function c(d,l,m,_,u,f){return a(),o("div",null,r)}const $=n(p,[["render",c]]);export{x as __pageData,$ as default}; diff --git a/assets/guide_use_begin.md.I9Te-UaB.js b/assets/guide_use_begin.md.nOO-Da45.js similarity index 99% rename from assets/guide_use_begin.md.I9Te-UaB.js rename to assets/guide_use_begin.md.nOO-Da45.js index db7cadef..a5e682ff 100644 --- a/assets/guide_use_begin.md.I9Te-UaB.js +++ b/assets/guide_use_begin.md.nOO-Da45.js @@ -1,4 +1,4 @@ -import{_ as e}from"./chunks/down_repo.IpAN7Bl0.js";import{_ as a}from"./chunks/what-languages.Ta3V3xqh.js";import{_ as o}from"./chunks/open_cmd.sSnH096g.js";import{_ as t,c as s,o as d,R as n}from"./chunks/framework.6Zk1sI6T.js";const c="/Shmily/assets/cmd_run.oYJ7fYXP.png",y=JSON.parse('{"title":"开始吧","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/begin.md","filePath":"guide/use/begin.md","lastUpdated":1702113017000}'),p={name:"guide/use/begin.md"},l=n('

      开始吧

      概述

      对于用户来说, 希望一个软件足够简单,打开一个窗口,点击一个按钮, 就可以得到最终的 结果 . 这称为黑盒, 所有的事情都被这个按钮挡住的了,不利于 debug 与 程序的解耦.

      若有些人只希望导出 MobileQQ 的数据做一个自己的 Ai 机器人 ,并不需要Show(展示数据). 如果按照以上的设计,他还需要从上述按钮获取的展示 结果 逆向为数据.

      所以 Shmily 的使用是在 程序解耦使用便利 之间取舍. 我希望 Shmily 对于不懂编程的人能简单使用, 同时也能足够解耦拆分足够细, 不让开发者 重造轮子, 中间的纽带就是文档了.

      因为我自身是 Shimly 的开发者,很容易一叶障目, 所以我也很希望你们从各种角度对文档提出各方面的问题来完善文档. 欢迎 提出建议

      基于以上 Shmily 的使用会被拆分为很多个步骤, 而且没有 GUI 界面, 这会让人看起来感觉很复杂, 但我保证, 每个步骤基本都是拷贝文件, 执行一行命令 完了~ 别担心~

      学前班 ( 如何开始一个项目 )

      大部分项目并不会打包为有界面的 "exe", 而是需要从源码运行, Github 是一个存储源码的网站, 本章介绍如何开始一个存储在 Github 项目

      实操

      Windows11https://github.com/lqzhgood/Shmily-Get-QQ-PC_MHT(电脑QQ聊天记录) 为例

      在每个章节最后均有实操示例

      如果你非程序员, 可以展开这里获取一些基本知识来开始一个项目

      学前班教程

      1. 下载源码

      在 Github 项目中, 点击下图中 Download ZIP 即可下载当前项目源码 down repo

      实操

      打开 https://github.com/lqzhgood/Shmily-Get-QQ-PC_MHT 并下载
      下载后解压缩 Shmily-Get-QQ-PC_MHT-main.zipD:\\Shmily-Get-QQ-PC_MHT-main

      2. 安装项目运行时环境

      什么是运行时环境?

      顾名思义: 运行这个 "东西" 所需要的 "环境"

      例如你有一个 风景.mp4 的视频, 如果你要播放出来, 那么你需要一个 视频播放器
      那么运行 风景.mp4 所需要环境就是 视频播放器

      下载的 源码 也需要对应的 (运行时)环境

      项目的源码可能是由不同 编程语言 书写的, 相应的 编程语言 需要对应的 运行时, 如 C++源代码 需要 C++运行时, Java源代码 需要 Java运行时

      2.1 如何判断项目的 编程语言

      2.1.1 按照项目的特征(推荐)
      编程语言特征
      nodejspackage.json 文件, 或大量 .js .ts 后缀文件
      pythonrequirements.txt 文件, 或大量 .py 后缀文件
      java大量 .java 后缀文件
      2.1.2 Github 会自动标注主要语言(并不准确)

      what-languages

      2.2 根据 编程语言 安装对应的 运行时

      编程语言安装运行时
      nodejs教程
      python教程
      java教程
      php教程
      docker教程

      实操

      打开 D:\\Shmily-Get-QQ-PC_MHT-main, 项目中有 package.json 文件, 所以这是一个 nodejs 项目
      按照 nodejs 教程,
      下载 Windows 平台 https://nodejs.org/dist/v18.18.2/node-v18.18.2-x64.msi 并安装
      在项目目录 D:\\Shmily-Get-QQ-PC_MHT-main 执行 npm i 安装依赖

      3. 使用

      参照具体项目中的文档继续

      实操

      打开 https://github.com/lqzhgood/Shmily-Get-QQ-PC_MHT, 参照项目文档中的 使用 部分

      1. 安装 node 环境

        上述 2.2 已经安装

      2. 安装 php 环境

        参照2.2 安装 php 环境

      3. 导出的 .mht 文件放入 input

        从 PC QQ 的聊天管理器中导出 .mht 格式的聊天记录, 并放入 input 文件夹(如没有则新建)

        // 文件夹结构
        +import{_ as e}from"./chunks/down_repo.IpAN7Bl0.js";import{_ as a}from"./chunks/what-languages.Ta3V3xqh.js";import{_ as o}from"./chunks/open_cmd.sSnH096g.js";import{_ as t,c as s,o as d,R as n}from"./chunks/framework.6Zk1sI6T.js";const c="/Shmily/assets/cmd_run.oYJ7fYXP.png",y=JSON.parse('{"title":"开始吧","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/begin.md","filePath":"guide/use/begin.md","lastUpdated":1702113381000}'),p={name:"guide/use/begin.md"},l=n('

        开始吧

        概述

        对于用户来说, 希望一个软件足够简单,打开一个窗口,点击一个按钮, 就可以得到最终的 结果 . 这称为黑盒, 所有的事情都被这个按钮挡住的了,不利于 debug 与 程序的解耦.

        若有些人只希望导出 MobileQQ 的数据做一个自己的 Ai 机器人 ,并不需要Show(展示数据). 如果按照以上的设计,他还需要从上述按钮获取的展示 结果 逆向为数据.

        所以 Shmily 的使用是在 程序解耦使用便利 之间取舍. 我希望 Shmily 对于不懂编程的人能简单使用, 同时也能足够解耦拆分足够细, 不让开发者 重造轮子, 中间的纽带就是文档了.

        因为我自身是 Shimly 的开发者,很容易一叶障目, 所以我也很希望你们从各种角度对文档提出各方面的问题来完善文档. 欢迎 提出建议

        基于以上 Shmily 的使用会被拆分为很多个步骤, 而且没有 GUI 界面, 这会让人看起来感觉很复杂, 但我保证, 每个步骤基本都是拷贝文件, 执行一行命令 完了~ 别担心~

        学前班 ( 如何开始一个项目 )

        大部分项目并不会打包为有界面的 "exe", 而是需要从源码运行, Github 是一个存储源码的网站, 本章介绍如何开始一个存储在 Github 项目

        实操

        Windows11https://github.com/lqzhgood/Shmily-Get-QQ-PC_MHT(电脑QQ聊天记录) 为例

        在每个章节最后均有实操示例

        如果你非程序员, 可以展开这里获取一些基本知识来开始一个项目

        学前班教程

        1. 下载源码

        在 Github 项目中, 点击下图中 Download ZIP 即可下载当前项目源码 down repo

        实操

        打开 https://github.com/lqzhgood/Shmily-Get-QQ-PC_MHT 并下载
        下载后解压缩 Shmily-Get-QQ-PC_MHT-main.zipD:\\Shmily-Get-QQ-PC_MHT-main

        2. 安装项目运行时环境

        什么是运行时环境?

        顾名思义: 运行这个 "东西" 所需要的 "环境"

        例如你有一个 风景.mp4 的视频, 如果你要播放出来, 那么你需要一个 视频播放器
        那么运行 风景.mp4 所需要环境就是 视频播放器

        下载的 源码 也需要对应的 (运行时)环境

        项目的源码可能是由不同 编程语言 书写的, 相应的 编程语言 需要对应的 运行时, 如 C++源代码 需要 C++运行时, Java源代码 需要 Java运行时

        2.1 如何判断项目的 编程语言

        2.1.1 按照项目的特征(推荐)
        编程语言特征
        nodejspackage.json 文件, 或大量 .js .ts 后缀文件
        pythonrequirements.txt 文件, 或大量 .py 后缀文件
        java大量 .java 后缀文件
        2.1.2 Github 会自动标注主要语言(并不准确)

        what-languages

        2.2 根据 编程语言 安装对应的 运行时

        编程语言安装运行时
        nodejs教程
        python教程
        java教程
        php教程
        docker教程

        实操

        打开 D:\\Shmily-Get-QQ-PC_MHT-main, 项目中有 package.json 文件, 所以这是一个 nodejs 项目
        按照 nodejs 教程,
        下载 Windows 平台 https://nodejs.org/dist/v18.18.2/node-v18.18.2-x64.msi 并安装
        在项目目录 D:\\Shmily-Get-QQ-PC_MHT-main 执行 npm i 安装依赖

        3. 使用

        参照具体项目中的文档继续

        实操

        打开 https://github.com/lqzhgood/Shmily-Get-QQ-PC_MHT, 参照项目文档中的 使用 部分

        1. 安装 node 环境

          上述 2.2 已经安装

        2. 安装 php 环境

          参照2.2 安装 php 环境

        3. 导出的 .mht 文件放入 input

          从 PC QQ 的聊天管理器中导出 .mht 格式的聊天记录, 并放入 input 文件夹(如没有则新建)

          // 文件夹结构
           
           -\\
             - node_modules
          diff --git a/assets/guide_use_begin.md.I9Te-UaB.lean.js b/assets/guide_use_begin.md.nOO-Da45.lean.js
          similarity index 79%
          rename from assets/guide_use_begin.md.I9Te-UaB.lean.js
          rename to assets/guide_use_begin.md.nOO-Da45.lean.js
          index 916a3542..ec7b6276 100644
          --- a/assets/guide_use_begin.md.I9Te-UaB.lean.js
          +++ b/assets/guide_use_begin.md.nOO-Da45.lean.js
          @@ -1 +1 @@
          -import{_ as e}from"./chunks/down_repo.IpAN7Bl0.js";import{_ as a}from"./chunks/what-languages.Ta3V3xqh.js";import{_ as o}from"./chunks/open_cmd.sSnH096g.js";import{_ as t,c as s,o as d,R as n}from"./chunks/framework.6Zk1sI6T.js";const c="/Shmily/assets/cmd_run.oYJ7fYXP.png",y=JSON.parse('{"title":"开始吧","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/begin.md","filePath":"guide/use/begin.md","lastUpdated":1702113017000}'),p={name:"guide/use/begin.md"},l=n("",25),i=[l];function r(h,u,m,b,_,g){return d(),s("div",null,i)}const v=t(p,[["render",r]]);export{y as __pageData,v as default};
          +import{_ as e}from"./chunks/down_repo.IpAN7Bl0.js";import{_ as a}from"./chunks/what-languages.Ta3V3xqh.js";import{_ as o}from"./chunks/open_cmd.sSnH096g.js";import{_ as t,c as s,o as d,R as n}from"./chunks/framework.6Zk1sI6T.js";const c="/Shmily/assets/cmd_run.oYJ7fYXP.png",y=JSON.parse('{"title":"开始吧","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/begin.md","filePath":"guide/use/begin.md","lastUpdated":1702113381000}'),p={name:"guide/use/begin.md"},l=n("",25),i=[l];function r(h,u,m,b,_,g){return d(),s("div",null,i)}const v=t(p,[["render",r]]);export{y as __pageData,v as default};
          diff --git a/assets/guide_use_data.md.V__0RKc0.js b/assets/guide_use_data.md.89T9rgLC.js
          similarity index 96%
          rename from assets/guide_use_data.md.V__0RKc0.js
          rename to assets/guide_use_data.md.89T9rgLC.js
          index 8e93e46f..70d672a7 100644
          --- a/assets/guide_use_data.md.V__0RKc0.js
          +++ b/assets/guide_use_data.md.89T9rgLC.js
          @@ -1 +1 @@
          -import{_ as e,c as a,o as t,R as o}from"./chunks/framework.6Zk1sI6T.js";const u=JSON.parse('{"title":"资源文件","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/data.md","filePath":"guide/use/data.md","lastUpdated":1702113017000}'),d={name:"guide/use/data.md"},c=o('

          资源文件

          路径说明

          资源文件路径为 /data/$rootPath/$type/$file, 例如 /data/Wechat-20200101/img/123.jpg

          其中 $rootPath 可以在 Get 项目的 config.js 配置.

          修改补充

          如资源错误或补充, 可以通过 Web ModifyServer 手动修改, 上传的文件会放置到 manual 下, 如 /data/Wechat-20200101/img/manual/123.jpg

          评论资源

          评论资源会通过 Web ModifyServer 上传到 /data/comment/$msgId/123.jpg

          ',8),r=[c];function i(s,n,h,l,_,p){return t(),a("div",null,r)}const f=e(d,[["render",i]]);export{u as __pageData,f as default}; +import{_ as e,c as a,o as t,R as o}from"./chunks/framework.6Zk1sI6T.js";const u=JSON.parse('{"title":"资源文件","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/data.md","filePath":"guide/use/data.md","lastUpdated":1702113381000}'),d={name:"guide/use/data.md"},c=o('

          资源文件

          路径说明

          资源文件路径为 /data/$rootPath/$type/$file, 例如 /data/Wechat-20200101/img/123.jpg

          其中 $rootPath 可以在 Get 项目的 config.js 配置.

          修改补充

          如资源错误或补充, 可以通过 Web ModifyServer 手动修改, 上传的文件会放置到 manual 下, 如 /data/Wechat-20200101/img/manual/123.jpg

          评论资源

          评论资源会通过 Web ModifyServer 上传到 /data/comment/$msgId/123.jpg

          ',8),r=[c];function i(s,n,h,l,_,p){return t(),a("div",null,r)}const f=e(d,[["render",i]]);export{u as __pageData,f as default}; diff --git a/assets/guide_use_data.md.V__0RKc0.lean.js b/assets/guide_use_data.md.89T9rgLC.lean.js similarity index 84% rename from assets/guide_use_data.md.V__0RKc0.lean.js rename to assets/guide_use_data.md.89T9rgLC.lean.js index 004eb4ab..b63a300a 100644 --- a/assets/guide_use_data.md.V__0RKc0.lean.js +++ b/assets/guide_use_data.md.89T9rgLC.lean.js @@ -1 +1 @@ -import{_ as e,c as a,o as t,R as o}from"./chunks/framework.6Zk1sI6T.js";const u=JSON.parse('{"title":"资源文件","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/data.md","filePath":"guide/use/data.md","lastUpdated":1702113017000}'),d={name:"guide/use/data.md"},c=o("",8),r=[c];function i(s,n,h,l,_,p){return t(),a("div",null,r)}const f=e(d,[["render",i]]);export{u as __pageData,f as default}; +import{_ as e,c as a,o as t,R as o}from"./chunks/framework.6Zk1sI6T.js";const u=JSON.parse('{"title":"资源文件","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/data.md","filePath":"guide/use/data.md","lastUpdated":1702113381000}'),d={name:"guide/use/data.md"},c=o("",8),r=[c];function i(s,n,h,l,_,p){return t(),a("div",null,r)}const f=e(d,[["render",i]]);export{u as __pageData,f as default}; diff --git a/assets/guide_use_draft.md.CuByP_zL.js b/assets/guide_use_draft.md.UO0KL1Fz.js similarity index 94% rename from assets/guide_use_draft.md.CuByP_zL.js rename to assets/guide_use_draft.md.UO0KL1Fz.js index 0acdb61b..5df3cab6 100644 --- a/assets/guide_use_draft.md.CuByP_zL.js +++ b/assets/guide_use_draft.md.UO0KL1Fz.js @@ -1 +1 @@ -import{_ as e}from"./chunks/what-languages.Ta3V3xqh.js";import{_ as a,c as t,o,R as r}from"./chunks/framework.6Zk1sI6T.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/draft.md","filePath":"guide/use/draft.md","lastUpdated":1702113017000}'),s={name:"guide/use/draft.md"},d=r('

          2. 安装项目运行时环境

          根据不同的项目语言安装不同的运行时环境, Github 会自动标注主要语言 what-languages

          也可以按照下面列出的特性, 安装对应语言的运行时

          • nodejs (项目中有 package.json 文件)

          • python (大量 .py 后缀文件)

          • java (大量 .java 后缀文件)

          ',4),i=[d];function _(c,p,n,l,u,h){return o(),t("div",null,i)}const j=a(s,[["render",_]]);export{g as __pageData,j as default}; +import{_ as e}from"./chunks/what-languages.Ta3V3xqh.js";import{_ as a,c as t,o,R as r}from"./chunks/framework.6Zk1sI6T.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/draft.md","filePath":"guide/use/draft.md","lastUpdated":1702113381000}'),s={name:"guide/use/draft.md"},d=r('

          2. 安装项目运行时环境

          根据不同的项目语言安装不同的运行时环境, Github 会自动标注主要语言 what-languages

          也可以按照下面列出的特性, 安装对应语言的运行时

          • nodejs (项目中有 package.json 文件)

          • python (大量 .py 后缀文件)

          • java (大量 .java 后缀文件)

          ',4),i=[d];function _(c,p,n,l,u,h){return o(),t("div",null,i)}const j=a(s,[["render",_]]);export{g as __pageData,j as default}; diff --git a/assets/guide_use_draft.md.CuByP_zL.lean.js b/assets/guide_use_draft.md.UO0KL1Fz.lean.js similarity index 86% rename from assets/guide_use_draft.md.CuByP_zL.lean.js rename to assets/guide_use_draft.md.UO0KL1Fz.lean.js index f829b04d..e781e20a 100644 --- a/assets/guide_use_draft.md.CuByP_zL.lean.js +++ b/assets/guide_use_draft.md.UO0KL1Fz.lean.js @@ -1 +1 @@ -import{_ as e}from"./chunks/what-languages.Ta3V3xqh.js";import{_ as a,c as t,o,R as r}from"./chunks/framework.6Zk1sI6T.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/draft.md","filePath":"guide/use/draft.md","lastUpdated":1702113017000}'),s={name:"guide/use/draft.md"},d=r("",4),i=[d];function _(c,p,n,l,u,h){return o(),t("div",null,i)}const j=a(s,[["render",_]]);export{g as __pageData,j as default}; +import{_ as e}from"./chunks/what-languages.Ta3V3xqh.js";import{_ as a,c as t,o,R as r}from"./chunks/framework.6Zk1sI6T.js";const g=JSON.parse('{"title":"","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/draft.md","filePath":"guide/use/draft.md","lastUpdated":1702113381000}'),s={name:"guide/use/draft.md"},d=r("",4),i=[d];function _(c,p,n,l,u,h){return o(),t("div",null,i)}const j=a(s,[["render",_]]);export{g as __pageData,j as default}; diff --git a/assets/guide_use_get.md.QlXP30Lc.js b/assets/guide_use_get.md.dQXlbHXd.js similarity index 98% rename from assets/guide_use_get.md.QlXP30Lc.js rename to assets/guide_use_get.md.dQXlbHXd.js index aebbaefa..26010afd 100644 --- a/assets/guide_use_get.md.QlXP30Lc.js +++ b/assets/guide_use_get.md.dQXlbHXd.js @@ -1,4 +1,4 @@ -import{_ as e,c as a,o as l,R as t}from"./chunks/framework.6Zk1sI6T.js";const u=JSON.parse('{"title":"Get","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/get.md","filePath":"guide/use/get.md","lastUpdated":1702113017000}'),s={name:"guide/use/get.md"},n=t(`

          Get

          支持列表 中选择所需项目, 按照相应的文档操作

          支持列表

          下面列出现有已知的 Get 项目, 更多项目可在 Github 搜索 Shmily-Get-

          TIP

          有 🎞️ 标记的在项目文档中均包含视频教程

          产物结构

          最终可以在输出目录(一般是 dist)获得 数据文件资源文件

          // 示例
          +import{_ as e,c as a,o as l,R as t}from"./chunks/framework.6Zk1sI6T.js";const u=JSON.parse('{"title":"Get","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/get.md","filePath":"guide/use/get.md","lastUpdated":1702113381000}'),s={name:"guide/use/get.md"},n=t(`

          Get

          支持列表 中选择所需项目, 按照相应的文档操作

          支持列表

          下面列出现有已知的 Get 项目, 更多项目可在 Github 搜索 Shmily-Get-

          TIP

          有 🎞️ 标记的在项目文档中均包含视频教程

          产物结构

          最终可以在输出目录(一般是 dist)获得 数据文件资源文件

          // 示例
           
           - dist
               - MobileQQ-lqzh-20230101.json  <--- 数据文件
          diff --git a/assets/guide_use_get.md.QlXP30Lc.lean.js b/assets/guide_use_get.md.dQXlbHXd.lean.js
          similarity index 84%
          rename from assets/guide_use_get.md.QlXP30Lc.lean.js
          rename to assets/guide_use_get.md.dQXlbHXd.lean.js
          index 922fade2..32745250 100644
          --- a/assets/guide_use_get.md.QlXP30Lc.lean.js
          +++ b/assets/guide_use_get.md.dQXlbHXd.lean.js
          @@ -1 +1 @@
          -import{_ as e,c as a,o as l,R as t}from"./chunks/framework.6Zk1sI6T.js";const u=JSON.parse('{"title":"Get","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/get.md","filePath":"guide/use/get.md","lastUpdated":1702113017000}'),s={name:"guide/use/get.md"},n=t("",10),i=[n];function o(r,p,c,h,d,m){return l(),a("div",null,i)}const _=e(s,[["render",o]]);export{u as __pageData,_ as default};
          +import{_ as e,c as a,o as l,R as t}from"./chunks/framework.6Zk1sI6T.js";const u=JSON.parse('{"title":"Get","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/get.md","filePath":"guide/use/get.md","lastUpdated":1702113381000}'),s={name:"guide/use/get.md"},n=t("",10),i=[n];function o(r,p,c,h,d,m){return l(),a("div",null,i)}const _=e(s,[["render",o]]);export{u as __pageData,_ as default};
          diff --git a/assets/guide_use_merger.md.KWJBjMd2.js b/assets/guide_use_merger.md.dg-gZtvy.js
          similarity index 95%
          rename from assets/guide_use_merger.md.KWJBjMd2.js
          rename to assets/guide_use_merger.md.dg-gZtvy.js
          index 911d750b..5959999b 100644
          --- a/assets/guide_use_merger.md.KWJBjMd2.js
          +++ b/assets/guide_use_merger.md.dg-gZtvy.js
          @@ -1 +1 @@
          -import{_ as e,c as r,o as a,R as o}from"./chunks/framework.6Zk1sI6T.js";const h=JSON.parse('{"title":"Merger","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/merger.md","filePath":"guide/use/merger.md","lastUpdated":1702113017000}'),t={name:"guide/use/merger.md"},c=o('

          Merger

          用来对 不同来源(Get), 相同内容数据文件 合并去重

          如通过 Android 短信 导出了 2010-2015 的短信, QQ 同步助手 导出了 2013-2018 的短信

          可以通过此工具去重 2013-2015 年的部分.

          DANGER

          !!! 如可以接受重复内容, 或多个 数据文件 不含重复内容, 不需要运行此项目 !!!

          支持列表

          • SMS CallLog 短信与通话记录
          ',7),d=[c];function l(s,i,n,_,p,u){return a(),r("div",null,d)}const m=e(t,[["render",l]]);export{h as __pageData,m as default}; +import{_ as e,c as r,o as a,R as o}from"./chunks/framework.6Zk1sI6T.js";const h=JSON.parse('{"title":"Merger","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/merger.md","filePath":"guide/use/merger.md","lastUpdated":1702113381000}'),t={name:"guide/use/merger.md"},c=o('

          Merger

          用来对 不同来源(Get), 相同内容数据文件 合并去重

          如通过 Android 短信 导出了 2010-2015 的短信, QQ 同步助手 导出了 2013-2018 的短信

          可以通过此工具去重 2013-2015 年的部分.

          DANGER

          !!! 如可以接受重复内容, 或多个 数据文件 不含重复内容, 不需要运行此项目 !!!

          支持列表

          • SMS CallLog 短信与通话记录
          ',7),d=[c];function l(s,i,n,_,p,u){return a(),r("div",null,d)}const m=e(t,[["render",l]]);export{h as __pageData,m as default}; diff --git a/assets/guide_use_merger.md.KWJBjMd2.lean.js b/assets/guide_use_merger.md.dg-gZtvy.lean.js similarity index 84% rename from assets/guide_use_merger.md.KWJBjMd2.lean.js rename to assets/guide_use_merger.md.dg-gZtvy.lean.js index 779727ce..c2da4ce8 100644 --- a/assets/guide_use_merger.md.KWJBjMd2.lean.js +++ b/assets/guide_use_merger.md.dg-gZtvy.lean.js @@ -1 +1 @@ -import{_ as e,c as r,o as a,R as o}from"./chunks/framework.6Zk1sI6T.js";const h=JSON.parse('{"title":"Merger","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/merger.md","filePath":"guide/use/merger.md","lastUpdated":1702113017000}'),t={name:"guide/use/merger.md"},c=o("",7),d=[c];function l(s,i,n,_,p,u){return a(),r("div",null,d)}const m=e(t,[["render",l]]);export{h as __pageData,m as default}; +import{_ as e,c as r,o as a,R as o}from"./chunks/framework.6Zk1sI6T.js";const h=JSON.parse('{"title":"Merger","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/merger.md","filePath":"guide/use/merger.md","lastUpdated":1702113381000}'),t={name:"guide/use/merger.md"},c=o("",7),d=[c];function l(s,i,n,_,p,u){return a(),r("div",null,d)}const m=e(t,[["render",l]]);export{h as __pageData,m as default}; diff --git a/assets/guide_use_msg_custom.md.w6qzHdoi.js b/assets/guide_use_msg_custom.md.LAA3TnV7.js similarity index 99% rename from assets/guide_use_msg_custom.md.w6qzHdoi.js rename to assets/guide_use_msg_custom.md.LAA3TnV7.js index b8228770..9ad1145e 100644 --- a/assets/guide_use_msg_custom.md.w6qzHdoi.js +++ b/assets/guide_use_msg_custom.md.LAA3TnV7.js @@ -1,4 +1,4 @@ -import{_ as s,c as i,o as a,R as n}from"./chunks/framework.6Zk1sI6T.js";const g=JSON.parse('{"title":"自定义","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/custom.md","filePath":"guide/use/msg/custom.md","lastUpdated":1702113017000}'),t={name:"guide/use/msg/custom.md"},l=n(`

          自定义

          • Q: 如果我想新增 Msg 类型,如 钉钉 怎么办?

          • A: 按以下步骤即可

            简单模式

            适用于和 短信 一样的简单数据,html 就够了,不需要用到复杂组件,只需要提供 html 即可

            此方式不利于数据统计

            js
                {
            +import{_ as s,c as i,o as a,R as n}from"./chunks/framework.6Zk1sI6T.js";const g=JSON.parse('{"title":"自定义","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/custom.md","filePath":"guide/use/msg/custom.md","lastUpdated":1702113381000}'),t={name:"guide/use/msg/custom.md"},l=n(`

            自定义

            • Q: 如果我想新增 Msg 类型,如 钉钉 怎么办?

            • A: 按以下步骤即可

              简单模式

              适用于和 短信 一样的简单数据,html 就够了,不需要用到复杂组件,只需要提供 html 即可

              此方式不利于数据统计

              js
                  {
                       // 通用字段都是必填 参考 [标准]
                       "source": "SMS",
                       "content": "你好,钉钉", // 用于搜索
              diff --git a/assets/guide_use_msg_custom.md.w6qzHdoi.lean.js b/assets/guide_use_msg_custom.md.LAA3TnV7.lean.js
              similarity index 85%
              rename from assets/guide_use_msg_custom.md.w6qzHdoi.lean.js
              rename to assets/guide_use_msg_custom.md.LAA3TnV7.lean.js
              index 94604919..782957cd 100644
              --- a/assets/guide_use_msg_custom.md.w6qzHdoi.lean.js
              +++ b/assets/guide_use_msg_custom.md.LAA3TnV7.lean.js
              @@ -1 +1 @@
              -import{_ as s,c as i,o as a,R as n}from"./chunks/framework.6Zk1sI6T.js";const g=JSON.parse('{"title":"自定义","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/custom.md","filePath":"guide/use/msg/custom.md","lastUpdated":1702113017000}'),t={name:"guide/use/msg/custom.md"},l=n("",3),h=[l];function e(p,k,o,r,d,E){return a(),i("div",null,h)}const u=s(t,[["render",e]]);export{g as __pageData,u as default};
              +import{_ as s,c as i,o as a,R as n}from"./chunks/framework.6Zk1sI6T.js";const g=JSON.parse('{"title":"自定义","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/custom.md","filePath":"guide/use/msg/custom.md","lastUpdated":1702113381000}'),t={name:"guide/use/msg/custom.md"},l=n("",3),h=[l];function e(p,k,o,r,d,E){return a(),i("div",null,h)}const u=s(t,[["render",e]]);export{g as __pageData,u as default};
              diff --git a/assets/guide_use_msg_other_emotion.md.clpup_XS.js b/assets/guide_use_msg_other_emotion.md.GFV8kgTj.js
              similarity index 99%
              rename from assets/guide_use_msg_other_emotion.md.clpup_XS.js
              rename to assets/guide_use_msg_other_emotion.md.GFV8kgTj.js
              index 27cad8c0..e451d9c8 100644
              --- a/assets/guide_use_msg_other_emotion.md.clpup_XS.js
              +++ b/assets/guide_use_msg_other_emotion.md.GFV8kgTj.js
              @@ -1,4 +1,4 @@
              -import{_ as s,c as a,o as i,R as t}from"./chunks/framework.6Zk1sI6T.js";const E=JSON.parse('{"title":"表情","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/other/emotion.md","filePath":"guide/use/msg/other/emotion.md","lastUpdated":1702113017000}'),e={name:"guide/use/msg/other/emotion.md"},n=t(`

              表情

              如果您要对表情进行统计,根据数据模式不同,需要遵循以下规则

              约定

              keyvalue举例备注
              packName表情包 名称阿狸过新年如果不知道或不想写,需要硬编码为 "其他"
              desc表情 名称饺子如果不知道或不想写,需要硬编码为 "未知"
              mark表情包 描述温暖可爱的阿狸新年新装扮,让我们一起把春节、情人节和元宵节都变得萌萌哒可选, MobileQQ 官方提供这个值

              文件名使用 MD5 小写,这样可以减少重复文件占用的空间,而且如果消息类型是图片,也可以通过 md5 修正类型为表情

              ./data/qq-android-lqzh-20230101/emoticon/阿狸过新年/4793ef7525e16fd692ec1620ac19c4fd.gif

              简单模式 (从 HTML 字段统计)

              js
              {
              +import{_ as s,c as a,o as i,R as t}from"./chunks/framework.6Zk1sI6T.js";const E=JSON.parse('{"title":"表情","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/other/emotion.md","filePath":"guide/use/msg/other/emotion.md","lastUpdated":1702113381000}'),e={name:"guide/use/msg/other/emotion.md"},n=t(`

              表情

              如果您要对表情进行统计,根据数据模式不同,需要遵循以下规则

              约定

              keyvalue举例备注
              packName表情包 名称阿狸过新年如果不知道或不想写,需要硬编码为 "其他"
              desc表情 名称饺子如果不知道或不想写,需要硬编码为 "未知"
              mark表情包 描述温暖可爱的阿狸新年新装扮,让我们一起把春节、情人节和元宵节都变得萌萌哒可选, MobileQQ 官方提供这个值

              文件名使用 MD5 小写,这样可以减少重复文件占用的空间,而且如果消息类型是图片,也可以通过 md5 修正类型为表情

              ./data/qq-android-lqzh-20230101/emoticon/阿狸过新年/4793ef7525e16fd692ec1620ac19c4fd.gif

              简单模式 (从 HTML 字段统计)

              js
              {
                   ...
                   html: "我是简单的一个表情,<img title='[阿狸过新年-饺子]' alt='[阿狸过新年-饺子]' src='./data/qq-android/emoticon/阿狸过新年/4793ef7525e16fd692ec1620ac19c4fd.gif' />"
                   content: "我是简单的一个表情,[阿狸过新年-饺子]"
              diff --git a/assets/guide_use_msg_other_emotion.md.clpup_XS.lean.js b/assets/guide_use_msg_other_emotion.md.GFV8kgTj.lean.js
              similarity index 85%
              rename from assets/guide_use_msg_other_emotion.md.clpup_XS.lean.js
              rename to assets/guide_use_msg_other_emotion.md.GFV8kgTj.lean.js
              index 7c2363f4..ea26c57f 100644
              --- a/assets/guide_use_msg_other_emotion.md.clpup_XS.lean.js
              +++ b/assets/guide_use_msg_other_emotion.md.GFV8kgTj.lean.js
              @@ -1 +1 @@
              -import{_ as s,c as a,o as i,R as t}from"./chunks/framework.6Zk1sI6T.js";const E=JSON.parse('{"title":"表情","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/other/emotion.md","filePath":"guide/use/msg/other/emotion.md","lastUpdated":1702113017000}'),e={name:"guide/use/msg/other/emotion.md"},n=t("",21),h=[n];function l(o,p,r,d,k,c){return i(),a("div",null,h)}const m=s(e,[["render",l]]);export{E as __pageData,m as default};
              +import{_ as s,c as a,o as i,R as t}from"./chunks/framework.6Zk1sI6T.js";const E=JSON.parse('{"title":"表情","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/other/emotion.md","filePath":"guide/use/msg/other/emotion.md","lastUpdated":1702113381000}'),e={name:"guide/use/msg/other/emotion.md"},n=t("",21),h=[n];function l(o,p,r,d,k,c){return i(),a("div",null,h)}const m=s(e,[["render",l]]);export{E as __pageData,m as default};
              diff --git a/assets/guide_use_msg_schema.md.jb_g8Jdr.js b/assets/guide_use_msg_schema.md.Qb3Ltl7I.js
              similarity index 99%
              rename from assets/guide_use_msg_schema.md.jb_g8Jdr.js
              rename to assets/guide_use_msg_schema.md.Qb3Ltl7I.js
              index 56aec7ca..b45bd080 100644
              --- a/assets/guide_use_msg_schema.md.jb_g8Jdr.js
              +++ b/assets/guide_use_msg_schema.md.Qb3Ltl7I.js
              @@ -1,4 +1,4 @@
              -import{_ as s,c as i,o as a,R as n}from"./chunks/framework.6Zk1sI6T.js";const o=JSON.parse('{"title":"数据文件-Msg","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/schema.md","filePath":"guide/use/msg/schema.md","lastUpdated":1702113017000}'),t={name:"guide/use/msg/schema.md"},l=n(`

              数据文件-Msg

              为了 GetShow 的良好沟通, 所以需要标准化数据格式

              建议开发 Get 时按以下数据标准导出.

              • 可导尽导,为以后的历史留下余量。冗余数据在 Show 中再选择性删除

              v2.0

              json
              [{
              +import{_ as s,c as i,o as a,R as n}from"./chunks/framework.6Zk1sI6T.js";const o=JSON.parse('{"title":"数据文件-Msg","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/schema.md","filePath":"guide/use/msg/schema.md","lastUpdated":1702113381000}'),t={name:"guide/use/msg/schema.md"},l=n(`

              数据文件-Msg

              为了 GetShow 的良好沟通, 所以需要标准化数据格式

              建议开发 Get 时按以下数据标准导出.

              • 可导尽导,为以后的历史留下余量。冗余数据在 Show 中再选择性删除

              v2.0

              json
              [{
               
                   ⬇⬇⬇⬇⬇⬇  通用字段 ⬇⬇⬇⬇⬇⬇⬇
               
              diff --git a/assets/guide_use_msg_schema.md.jb_g8Jdr.lean.js b/assets/guide_use_msg_schema.md.Qb3Ltl7I.lean.js
              similarity index 85%
              rename from assets/guide_use_msg_schema.md.jb_g8Jdr.lean.js
              rename to assets/guide_use_msg_schema.md.Qb3Ltl7I.lean.js
              index b9a227a6..6a6408af 100644
              --- a/assets/guide_use_msg_schema.md.jb_g8Jdr.lean.js
              +++ b/assets/guide_use_msg_schema.md.Qb3Ltl7I.lean.js
              @@ -1 +1 @@
              -import{_ as s,c as i,o as a,R as n}from"./chunks/framework.6Zk1sI6T.js";const o=JSON.parse('{"title":"数据文件-Msg","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/schema.md","filePath":"guide/use/msg/schema.md","lastUpdated":1702113017000}'),t={name:"guide/use/msg/schema.md"},l=n("",7),h=[l];function k(p,e,E,r,d,g){return a(),i("div",null,h)}const c=s(t,[["render",k]]);export{o as __pageData,c as default};
              +import{_ as s,c as i,o as a,R as n}from"./chunks/framework.6Zk1sI6T.js";const o=JSON.parse('{"title":"数据文件-Msg","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/schema.md","filePath":"guide/use/msg/schema.md","lastUpdated":1702113381000}'),t={name:"guide/use/msg/schema.md"},l=n("",7),h=[l];function k(p,e,E,r,d,g){return a(),i("div",null,h)}const c=s(t,[["render",k]]);export{o as __pageData,c as default};
              diff --git a/assets/guide_use_msg_template_index.md.jDcaqZOW.js b/assets/guide_use_msg_template_index.md.803B_R4g.js
              similarity index 99%
              rename from assets/guide_use_msg_template_index.md.jDcaqZOW.js
              rename to assets/guide_use_msg_template_index.md.803B_R4g.js
              index 37d78073..4eb2e3f0 100644
              --- a/assets/guide_use_msg_template_index.md.jDcaqZOW.js
              +++ b/assets/guide_use_msg_template_index.md.803B_R4g.js
              @@ -26,4 +26,4 @@ function print() { __p += __j.call(arguments, '') }
               `)+v+`return __p
               }`;var R=bs(function(){return M(o,x+"return "+v).apply(s,l)});if(R.source=v,Si(R))throw R;return R}function $d(n){return W(n).toLowerCase()}function Ud(n){return W(n).toUpperCase()}function Nd(n,e,t){if(n=W(n),n&&(t||e===s))return Iu(n);if(!n||!(e=vn(e)))return n;var r=Dn(n),i=Dn(e),o=Ru(r,i),l=Pu(r,i)+1;return de(r,o,l).join("")}function qd(n,e,t){if(n=W(n),n&&(t||e===s))return n.slice(0,Du(n)+1);if(!n||!(e=vn(e)))return n;var r=Dn(n),i=Pu(r,Dn(e))+1;return de(r,0,i).join("")}function Gd(n,e,t){if(n=W(n),n&&(t||e===s))return n.replace(Sr,"");if(!n||!(e=vn(e)))return n;var r=Dn(n),i=Ru(r,Dn(e));return de(r,i).join("")}function Hd(n,e){var t=Fs,r=Ms;if(Y(e)){var i="separator"in e?e.separator:i;t="length"in e?I(e.length):t,r="omission"in e?vn(e.omission):r}n=W(n);var o=n.length;if(Be(n)){var l=Dn(n);o=l.length}if(t>=o)return n;var f=t-De(r);if(f<1)return r;var h=l?de(l,0,f).join(""):n.slice(0,f);if(i===s)return h+r;if(l&&(f+=h.length-f),Ci(i)){if(n.slice(f).search(i)){var g,_=h;for(i.global||(i=Gr(i.source,W(ki.exec(i))+"g")),i.lastIndex=0;g=i.exec(_);)var v=g.index;h=h.slice(0,v===s?f:v)}}else if(n.indexOf(vn(i),f)!=f){var y=h.lastIndexOf(i);y>-1&&(h=h.slice(0,y))}return h+r}function Kd(n){return n=W(n),n&&nl.test(n)?n.replace(Ji,yf):n}var Vd=qe(function(n,e,t){return n+(t?" ":"")+e.toUpperCase()}),Ei=Ao("toUpperCase");function xs(n,e,t){return n=W(n),e=t?s:e,e===s?df(n)?bf(n):uf(n):n.match(e)||[]}var bs=P(function(n,e){try{return gn(n,s,e)}catch(t){return Si(t)?t:new L(t)}}),zd=ne(function(n,e){return On(e,function(t){t=Vn(t),kn(n,t,Ai(n[t],n))}),n});function Yd(n){var e=n==null?0:n.length,t=b();return n=e?z(n,function(r){if(typeof r[1]!="function")throw new Sn(K);return[t(r[0]),r[1]]}):[],P(function(r){for(var i=-1;++ioe)return[];var t=Gn,r=rn(n,Gn);e=b(e),n-=Gn;for(var i=Ur(r,e);++t0||e<0)?new D(t):(n<0?t=t.takeRight(-n):n&&(t=t.drop(n)),e!==s&&(e=I(e),t=e<0?t.dropRight(-e):t.take(e-n)),t)},D.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},D.prototype.toArray=function(){return this.take(Gn)},Hn(D.prototype,function(n,e){var t=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=u[r?"take"+(e=="last"?"Right":""):e],o=r||/^find/.test(e);i&&(u.prototype[e]=function(){var l=this.__wrapped__,f=r?[1]:arguments,h=l instanceof D,g=f[0],_=h||E(l),v=function(B){var F=i.apply(u,le([B],f));return r&&y?F[0]:F};_&&t&&typeof g=="function"&&g.length!=1&&(h=_=!1);var y=this.__chain__,x=!!this.__actions__.length,O=o&&!y,R=h&&!x;if(!o&&_){l=R?l:new D(this);var S=n.apply(l,f);return S.__actions__.push({func:ir,args:[v],thisArg:s}),new Cn(S,y)}return O&&R?n.apply(this,f):(S=this.thru(v),O?r?S.value()[0]:S.value():S)})}),On(["pop","push","shift","sort","splice","unshift"],function(n){var e=It[n],t=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",r=/^(?:pop|shift)$/.test(n);u.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var o=this.value();return e.apply(E(o)?o:[],i)}return this[t](function(l){return e.apply(E(l)?l:[],i)})}}),Hn(D.prototype,function(n,e){var t=u[e];if(t){var r=t.name+"";U.call($e,r)||($e[r]=[]),$e[r].push({name:e,func:t})}}),$e[Qt(s,_e).name]=[{name:"wrapper",func:s}],D.prototype.clone=Kf,D.prototype.reverse=Vf,D.prototype.value=zf,u.prototype.at=xh,u.prototype.chain=bh,u.prototype.commit=Ah,u.prototype.next=Oh,u.prototype.plant=Ch,u.prototype.reverse=Th,u.prototype.toJSON=u.prototype.valueOf=u.prototype.value=Lh,u.prototype.first=u.prototype.head,rt&&(u.prototype[rt]=Sh),u},Fe=Af();we?((we.exports=Fe)._=Fe,Rr._=Fe):nn._=Fe}).call(vt)})(pr,pr.exports);var Ng=pr.exports;const qg=Ug(Ng);var Gg=Object.defineProperty,Hg=Object.defineProperties,Kg=Object.getOwnPropertyDescriptors,Rs=Object.getOwnPropertySymbols,Vg=Object.prototype.hasOwnProperty,zg=Object.prototype.propertyIsEnumerable,Ps=(a,w,s)=>w in a?Gg(a,w,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[w]=s,Ve=(a,w)=>{for(var s in w||(w={}))Vg.call(w,s)&&Ps(a,s,w[s]);if(Rs)for(var s of Rs(w))zg.call(w,s)&&Ps(a,s,w[s]);return a},Bs=(a,w)=>Hg(a,Kg(w));const Yg={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer(){this.autoscroll&&this.maybeAdjustScroll()},open(a){this.autoscroll&&a&&this.$nextTick(()=>this.maybeAdjustScroll())}},methods:{maybeAdjustScroll(){var a;const w=((a=this.$refs.dropdownMenu)==null?void 0:a.children[this.typeAheadPointer])||!1;if(w){const s=this.getDropdownViewport(),{top:A,bottom:G,height:T}=w.getBoundingClientRect();if(As.bottom)return this.$refs.dropdownMenu.scrollTop=w.offsetTop-(s.height-T)}},getDropdownViewport(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},Zg={data(){return{typeAheadPointer:-1}},watch:{filteredOptions(){for(let a=0;a=0;a--)if(this.selectable(this.filteredOptions[a])){this.typeAheadPointer=a;break}},typeAheadDown(){for(let a=this.typeAheadPointer+1;a{const s=a.__vccOpts||a;for(const[A,G]of w)s[A]=G;return s},Xg={},Qg={xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"},kg=N("path",{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"},null,-1),jg=[kg];function n_(a,w){return fn(),Rn("svg",Qg,jg)}const e_=Ki(Xg,[["render",n_]]),t_={},r_={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"},i_=N("path",{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"},null,-1),u_=[i_];function o_(a,w){return fn(),Rn("svg",r_,u_)}const s_=Ki(t_,[["render",o_]]),Ds={Deselect:e_,OpenIndicator:s_},l_={mounted(a,{instance:w}){if(w.appendToBody){const{height:s,top:A,left:G,width:T}=w.$refs.toggle.getBoundingClientRect();let K=window.scrollX||window.pageXOffset,C=window.scrollY||window.pageYOffset;a.unbindPosition=w.calculatePosition(a,w,{width:T+"px",left:K+G+"px",top:C+A+s+"px"}),document.body.appendChild(a)}},unmounted(a,{instance:w}){w.appendToBody&&(a.unbindPosition&&typeof a.unbindPosition=="function"&&a.unbindPosition(),a.parentNode&&a.parentNode.removeChild(a))}};function f_(a){const w={};return Object.keys(a).sort().forEach(s=>{w[s]=a[s]}),JSON.stringify(w)}let a_=0;function c_(){return++a_}const h_={components:Ve({},Ds),directives:{appendToBody:l_},mixins:[Yg,Zg,Jg],compatConfig:{MODE:3},emits:["open","close","update:modelValue","search","search:compositionstart","search:compositionend","search:keydown","search:blur","search:focus","search:input","option:created","option:selecting","option:selected","option:deselecting","option:deselected"],props:{modelValue:{},components:{type:Object,default:()=>({})},options:{type:Array,default(){return[]}},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"vs__fade"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},autocomplete:{type:String,default:"off"},reduce:{type:Function,default:a=>a},selectable:{type:Function,default:a=>!0},getOptionLabel:{type:Function,default(a){return typeof a=="object"?a.hasOwnProperty(this.label)?a[this.label]:console.warn(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(a)}.
               https://vue-select.org/api/props.html#getoptionlabel`):a}},getOptionKey:{type:Function,default(a){if(typeof a!="object")return a;try{return a.hasOwnProperty("id")?a.id:f_(a)}catch(w){return console.warn(`[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option.
              -https://vue-select.org/api/props.html#getoptionkey`,a,w)}}},onTab:{type:Function,default:function(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default(a,w,s){return(w||"").toLocaleLowerCase().indexOf(s.toLocaleLowerCase())>-1}},filter:{type:Function,default(a,w){return a.filter(s=>{let A=this.getOptionLabel(s);return typeof A=="number"&&(A=A.toString()),this.filterBy(s,A,w)})}},createOption:{type:Function,default(a){return typeof this.optionList[0]=="object"?{[this.label]:a}:a}},resetOnOptionsChange:{default:!1,validator:a=>["function","boolean"].includes(typeof a)},clearSearchOnBlur:{type:Function,default:function({clearSearchOnSelect:a,multiple:w}){return a&&!w}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:(a,w)=>a},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(a,w,{width:s,top:A,left:G}){a.style.top=A,a.style.left=G,a.style.width=s}},dropdownShouldOpen:{type:Function,default({noDrop:a,open:w,mutableLoading:s}){return a?!1:w&&!s}},uid:{type:[String,Number],default:()=>c_()}},data(){return{search:"",open:!1,isComposing:!1,pushedTags:[],_value:[],deselectButtons:[]}},computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return typeof this.modelValue>"u"||this.isReducingValues},selectedValue(){let a=this.modelValue;return this.isTrackingValues&&(a=this.$data._value),a!=null&&a!==""?[].concat(a):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const a={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:Ve({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,"aria-autocomplete":"list","aria-labelledby":`vs${this.uid}__combobox`,"aria-controls":`vs${this.uid}__listbox`,ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs${this.uid}__option-${this.typeAheadPointer}`}:{}),events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,blur:this.onSearchBlur,focus:this.onSearchFocus,input:w=>this.search=w.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:a,listFooter:a,header:Bs(Ve({},a),{deselect:this.deselect}),footer:Bs(Ve({},a),{deselect:this.deselect})}},childComponents(){return Ve(Ve({},Ds),this.components)},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const a=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return a;const w=this.search.length?this.filter(a,this.search,this):a;if(this.taggable&&this.search.length){const s=this.createOption(this.search);this.optionExists(s)||w.unshift(s)}return w},isValueEmpty(){return this.selectedValue.length===0},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(a,w){const s=()=>typeof this.resetOnOptionsChange=="function"?this.resetOnOptionsChange(a,w,this.selectedValue):this.resetOnOptionsChange;!this.taggable&&s()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(a){this.isTrackingValues&&this.setInternalValueFromOptions(a)}},multiple(){this.clearSelection()},open(a){this.$emit(a?"open":"close")}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(a){Array.isArray(a)?this.$data._value=a.map(w=>this.findOptionFromReducedValue(w)):this.$data._value=this.findOptionFromReducedValue(a)},select(a){this.$emit("option:selecting",a),this.isOptionSelected(a)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(a):(this.taggable&&!this.optionExists(a)&&(this.$emit("option:created",a),this.pushTag(a)),this.multiple&&(a=this.selectedValue.concat(a)),this.updateValue(a),this.$emit("option:selected",a)),this.onAfterSelect(a)},deselect(a){this.$emit("option:deselecting",a),this.updateValue(this.selectedValue.filter(w=>!this.optionComparator(w,a))),this.$emit("option:deselected",a)},clearSelection(){this.updateValue(this.multiple?[]:null)},onAfterSelect(a){this.closeOnSelect&&(this.open=!this.open,this.searchEl.blur()),this.clearSearchOnSelect&&(this.search="")},updateValue(a){typeof this.modelValue>"u"&&(this.$data._value=a),a!==null&&(Array.isArray(a)?a=a.map(w=>this.reduce(w)):a=this.reduce(a)),this.$emit("update:modelValue",a)},toggleDropdown(a){const w=a.target!==this.searchEl;w&&a.preventDefault();const s=[...this.deselectButtons||[],this.$refs.clearButton];if(this.searchEl===void 0||s.filter(Boolean).some(A=>A.contains(a.target)||A===a.target)){a.preventDefault();return}this.open&&w?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(a){return this.selectedValue.some(w=>this.optionComparator(w,a))},isOptionDeselectable(a){return this.isOptionSelected(a)&&this.deselectFromDropdown},optionComparator(a,w){return this.getOptionKey(a)===this.getOptionKey(w)},findOptionFromReducedValue(a){const w=A=>JSON.stringify(this.reduce(A))===JSON.stringify(a),s=[...this.options,...this.pushedTags].filter(w);return s.length===1?s[0]:s.find(A=>this.optionComparator(A,this.$data._value))||a},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let a=null;this.multiple&&(a=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(a)}},optionExists(a){return this.optionList.some(w=>this.optionComparator(w,a))},normalizeOptionForSlot(a){return typeof a=="object"?a:{[this.label]:a}},pushTag(a){this.pushedTags.push(a)},onEscape(){this.search.length?this.search="":this.searchEl.blur()},onSearchBlur(){if(this.mousedown&&!this.searching)this.mousedown=!1;else{const{clearSearchOnSelect:a,multiple:w}=this;this.clearSearchOnBlur({clearSearchOnSelect:a,multiple:w})&&(this.search=""),this.closeSearchOptions();return}if(this.search.length===0&&this.options.length===0){this.closeSearchOptions();return}},onSearchFocus(){this.open=!0,this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onSearchKeyDown(a){const w=G=>(G.preventDefault(),!this.isComposing&&this.typeAheadSelect()),s={8:G=>this.maybeDeleteValue(),9:G=>this.onTab(),27:G=>this.onEscape(),38:G=>(G.preventDefault(),this.typeAheadUp()),40:G=>(G.preventDefault(),this.typeAheadDown())};this.selectOnKeyCodes.forEach(G=>s[G]=w);const A=this.mapKeydown(s,this);if(typeof A[a.keyCode]=="function")return A[a.keyCode](a)}}},p_=["dir"],d_=["id","aria-expanded","aria-owns"],g_={ref:"selectedOptions",class:"vs__selected-options"},__=["disabled","title","aria-label","onClick"],v_={ref:"actions",class:"vs__actions"},w_=["disabled"],y_={class:"vs__spinner"},m_=["id"],x_=["id","aria-selected","onMouseover","onClick"],b_={key:0,class:"vs__no-options"},A_=ze(" Sorry, no matching options. "),O_=["id"];function S_(a,w,s,A,G,T){const K=Rg("append-to-body");return fn(),Rn("div",{dir:s.dir,class:Hi(["v-select",T.stateClasses])},[$n(a.$slots,"header",Un(zn(T.scope.header))),N("div",{id:`vs${s.uid}__combobox`,ref:"toggle",class:"vs__dropdown-toggle",role:"combobox","aria-expanded":T.dropdownOpen.toString(),"aria-owns":`vs${s.uid}__listbox`,"aria-label":"Search for option",onMousedown:w[1]||(w[1]=C=>T.toggleDropdown(C))},[N("div",g_,[(fn(!0),Rn(Ss,null,Cs(T.selectedValue,(C,$)=>$n(a.$slots,"selected-option-container",{option:T.normalizeOptionForSlot(C),deselect:T.deselect,multiple:s.multiple,disabled:s.disabled},()=>[(fn(),Rn("span",{key:s.getOptionKey(C),class:"vs__selected"},[$n(a.$slots,"selected-option",Un(zn(T.normalizeOptionForSlot(C))),()=>[ze(Gi(s.getOptionLabel(C)),1)]),s.multiple?(fn(),Rn("button",{key:0,ref_for:!0,ref:xn=>G.deselectButtons[$]=xn,disabled:s.disabled,type:"button",class:"vs__deselect",title:`Deselect ${s.getOptionLabel(C)}`,"aria-label":`Deselect ${s.getOptionLabel(C)}`,onClick:xn=>T.deselect(C)},[(fn(),Mi(Wi(T.childComponents.Deselect)))],8,__)):$i("",!0)]))])),256)),$n(a.$slots,"search",Un(zn(T.scope.search)),()=>[N("input",Ts({class:"vs__search"},T.scope.search.attributes,Pg(T.scope.search.events)),null,16)])],512),N("div",v_,[Ui(N("button",{ref:"clearButton",disabled:s.disabled,type:"button",class:"vs__clear",title:"Clear Selected","aria-label":"Clear Selected",onClick:w[0]||(w[0]=(...C)=>T.clearSelection&&T.clearSelection(...C))},[(fn(),Mi(Wi(T.childComponents.Deselect)))],8,w_),[[Ls,T.showClearButton]]),$n(a.$slots,"open-indicator",Un(zn(T.scope.openIndicator)),()=>[s.noDrop?$i("",!0):(fn(),Mi(Wi(T.childComponents.OpenIndicator),Un(Ts({key:0},T.scope.openIndicator.attributes)),null,16))]),$n(a.$slots,"spinner",Un(zn(T.scope.spinner)),()=>[Ui(N("div",y_,"Loading...",512),[[Ls,a.mutableLoading]])])],512)],40,d_),hr(Dg,{name:s.transition},{default:Bg(()=>[T.dropdownOpen?Ui((fn(),Rn("ul",{id:`vs${s.uid}__listbox`,ref:"dropdownMenu",key:`vs${s.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox",tabindex:"-1",onMousedown:w[2]||(w[2]=Es((...C)=>T.onMousedown&&T.onMousedown(...C),["prevent"])),onMouseup:w[3]||(w[3]=(...C)=>T.onMouseUp&&T.onMouseUp(...C))},[$n(a.$slots,"list-header",Un(zn(T.scope.listHeader))),(fn(!0),Rn(Ss,null,Cs(T.filteredOptions,(C,$)=>(fn(),Rn("li",{id:`vs${s.uid}__option-${$}`,key:s.getOptionKey(C),role:"option",class:Hi(["vs__dropdown-option",{"vs__dropdown-option--deselect":T.isOptionDeselectable(C)&&$===a.typeAheadPointer,"vs__dropdown-option--selected":T.isOptionSelected(C),"vs__dropdown-option--highlight":$===a.typeAheadPointer,"vs__dropdown-option--disabled":!s.selectable(C)}]),"aria-selected":$===a.typeAheadPointer?!0:null,onMouseover:xn=>s.selectable(C)?a.typeAheadPointer=$:null,onClick:Es(xn=>s.selectable(C)?T.select(C):null,["prevent","stop"])},[$n(a.$slots,"option",Un(zn(T.normalizeOptionForSlot(C))),()=>[ze(Gi(s.getOptionLabel(C)),1)])],42,x_))),128)),T.filteredOptions.length===0?(fn(),Rn("li",b_,[$n(a.$slots,"no-options",Un(zn(T.scope.noOptions)),()=>[A_])])):$i("",!0),$n(a.$slots,"list-footer",Un(zn(T.scope.listFooter)))],40,m_)),[[K]]):(fn(),Rn("ul",{key:1,id:`vs${s.uid}__listbox`,role:"listbox",style:{display:"none",visibility:"hidden"}},null,8,O_))]),_:3},8,["name"]),$n(a.$slots,"footer",Un(zn(T.scope.footer)))],10,p_)}const qi=Ki(h_,[["render",S_]]),C_=Wg('

              数据文件-Msg 示例

              示例有以下几种查看方式

              源码 (推荐)

              最及时最可靠

              Shmily-Show 项目 memoryweb/src/components/Msg/source 下查看组件源码

              Demo

              更新不及时

              ',7),T_={id:"msg-template"},L_={class:"row"},E_={class:"col"},I_=N("label",null,"source",-1),R_={class:"col"},P_=N("label",null,"type",-1),B_=N("label",null,"$source.os",-1),D_={class:"language-js vp-adaptive-theme"},F_=N("button",{title:"Copy Code",class:"copy"},null,-1),M_=N("span",{class:"lang"},"js",-1),W_={class:"shiki shiki-themes github-light github-dark vp-code"},$_={class:"line"},U_={style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},N_=N("p",null,[ze("从 "),N("code",null,"Demo"),ze(),N("a",{href:"http://demo.shmily.lqzh.me/#/query?searchType=%E6%B6%88%E6%81%AF&searchKey=-Reg:/*/",target:"_blank",rel:"noreferrer"},"链接"),ze(" 筛选查看")],-1),q_=N("p",null,[N("img",{src:$g,alt:"from demo web"})],-1),K_=JSON.parse('{"title":"数据文件-Msg 示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/template/index.md","filePath":"guide/use/msg/template/index.md","lastUpdated":1702113017000}'),G_={name:"guide/use/msg/template/index.md"},V_=Object.assign(G_,{setup(a){Fg(async()=>{w=await fetch("https://demo.shmily.lqzh.me/json/msg/msg.json").then(C=>C.json());const K=w.reduce((C,$,xn,Ye)=>{let an=C.find(tn=>tn.source===$.source);an||(an={source:$.source,type:[]},C.push(an));let ue=an.type.find(tn=>tn.type===$.type);ue||(ue={type:$.type,os:[]},an.type.push(ue));const Yn=Object.keys($).find(tn=>tn.startsWith("$"));if(Yn){let tn=qg.get($,`${Yn}.os`);tn&&!ue.os.includes(tn)&&ue.os.push(tn)}return C},[]);s.push(...K)});let w=[];const s=Is([]),A=Is({source:"",type:"",os:""}),G=Mg(()=>{if(!A.source||!A.type)return[];const K=A.source.source,C=A.type.type,$=w.filter(xn=>xn.source===K&&xn.type===C);return A.type.os.length===0?$:$.filter(xn=>xn[`$${K}`].os===A.os)});function T(K){K==="source"?(A.type="",A.os=""):K==="type"&&(A.type.os.length===1?A.os=A.type.os[0]:A.os="")}return(K,C)=>(fn(),Rn("div",null,[C_,N("div",T_,[N("div",L_,[N("div",E_,[I_,hr(Ni(qi),{options:s,label:"source",modelValue:A.source,"onUpdate:modelValue":C[0]||(C[0]=$=>A.source=$),"onOption:selected":C[1]||(C[1]=$=>T("source"))},null,8,["options","modelValue"])]),N("div",R_,[P_,hr(Ni(qi),{options:A.source?A.source.type:[],label:"type",modelValue:A.type,"onUpdate:modelValue":C[2]||(C[2]=$=>A.type=$),"onOption:selected":C[3]||(C[3]=$=>T("type"))},null,8,["options","modelValue"])]),N("div",{class:Hi(["col",{disable:!A.type||A.type.os.length===0}])},[B_,hr(Ni(qi),{options:A.type?A.type.os:[],modelValue:A.os,"onUpdate:modelValue":C[4]||(C[4]=$=>A.os=$)},null,8,["options","modelValue"])],2)])]),N("div",D_,[F_,M_,N("pre",W_,[N("code",null,[N("span",$_,[N("span",U_,Gi(G.value.slice(0,1)),1)])])])]),N_,q_]))}});export{K_ as __pageData,V_ as default}; +https://vue-select.org/api/props.html#getoptionkey`,a,w)}}},onTab:{type:Function,default:function(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default(a,w,s){return(w||"").toLocaleLowerCase().indexOf(s.toLocaleLowerCase())>-1}},filter:{type:Function,default(a,w){return a.filter(s=>{let A=this.getOptionLabel(s);return typeof A=="number"&&(A=A.toString()),this.filterBy(s,A,w)})}},createOption:{type:Function,default(a){return typeof this.optionList[0]=="object"?{[this.label]:a}:a}},resetOnOptionsChange:{default:!1,validator:a=>["function","boolean"].includes(typeof a)},clearSearchOnBlur:{type:Function,default:function({clearSearchOnSelect:a,multiple:w}){return a&&!w}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:(a,w)=>a},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(a,w,{width:s,top:A,left:G}){a.style.top=A,a.style.left=G,a.style.width=s}},dropdownShouldOpen:{type:Function,default({noDrop:a,open:w,mutableLoading:s}){return a?!1:w&&!s}},uid:{type:[String,Number],default:()=>c_()}},data(){return{search:"",open:!1,isComposing:!1,pushedTags:[],_value:[],deselectButtons:[]}},computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return typeof this.modelValue>"u"||this.isReducingValues},selectedValue(){let a=this.modelValue;return this.isTrackingValues&&(a=this.$data._value),a!=null&&a!==""?[].concat(a):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const a={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:Ve({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,"aria-autocomplete":"list","aria-labelledby":`vs${this.uid}__combobox`,"aria-controls":`vs${this.uid}__listbox`,ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs${this.uid}__option-${this.typeAheadPointer}`}:{}),events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,blur:this.onSearchBlur,focus:this.onSearchFocus,input:w=>this.search=w.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:a,listFooter:a,header:Bs(Ve({},a),{deselect:this.deselect}),footer:Bs(Ve({},a),{deselect:this.deselect})}},childComponents(){return Ve(Ve({},Ds),this.components)},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const a=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return a;const w=this.search.length?this.filter(a,this.search,this):a;if(this.taggable&&this.search.length){const s=this.createOption(this.search);this.optionExists(s)||w.unshift(s)}return w},isValueEmpty(){return this.selectedValue.length===0},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(a,w){const s=()=>typeof this.resetOnOptionsChange=="function"?this.resetOnOptionsChange(a,w,this.selectedValue):this.resetOnOptionsChange;!this.taggable&&s()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(a){this.isTrackingValues&&this.setInternalValueFromOptions(a)}},multiple(){this.clearSelection()},open(a){this.$emit(a?"open":"close")}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(a){Array.isArray(a)?this.$data._value=a.map(w=>this.findOptionFromReducedValue(w)):this.$data._value=this.findOptionFromReducedValue(a)},select(a){this.$emit("option:selecting",a),this.isOptionSelected(a)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(a):(this.taggable&&!this.optionExists(a)&&(this.$emit("option:created",a),this.pushTag(a)),this.multiple&&(a=this.selectedValue.concat(a)),this.updateValue(a),this.$emit("option:selected",a)),this.onAfterSelect(a)},deselect(a){this.$emit("option:deselecting",a),this.updateValue(this.selectedValue.filter(w=>!this.optionComparator(w,a))),this.$emit("option:deselected",a)},clearSelection(){this.updateValue(this.multiple?[]:null)},onAfterSelect(a){this.closeOnSelect&&(this.open=!this.open,this.searchEl.blur()),this.clearSearchOnSelect&&(this.search="")},updateValue(a){typeof this.modelValue>"u"&&(this.$data._value=a),a!==null&&(Array.isArray(a)?a=a.map(w=>this.reduce(w)):a=this.reduce(a)),this.$emit("update:modelValue",a)},toggleDropdown(a){const w=a.target!==this.searchEl;w&&a.preventDefault();const s=[...this.deselectButtons||[],this.$refs.clearButton];if(this.searchEl===void 0||s.filter(Boolean).some(A=>A.contains(a.target)||A===a.target)){a.preventDefault();return}this.open&&w?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(a){return this.selectedValue.some(w=>this.optionComparator(w,a))},isOptionDeselectable(a){return this.isOptionSelected(a)&&this.deselectFromDropdown},optionComparator(a,w){return this.getOptionKey(a)===this.getOptionKey(w)},findOptionFromReducedValue(a){const w=A=>JSON.stringify(this.reduce(A))===JSON.stringify(a),s=[...this.options,...this.pushedTags].filter(w);return s.length===1?s[0]:s.find(A=>this.optionComparator(A,this.$data._value))||a},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let a=null;this.multiple&&(a=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(a)}},optionExists(a){return this.optionList.some(w=>this.optionComparator(w,a))},normalizeOptionForSlot(a){return typeof a=="object"?a:{[this.label]:a}},pushTag(a){this.pushedTags.push(a)},onEscape(){this.search.length?this.search="":this.searchEl.blur()},onSearchBlur(){if(this.mousedown&&!this.searching)this.mousedown=!1;else{const{clearSearchOnSelect:a,multiple:w}=this;this.clearSearchOnBlur({clearSearchOnSelect:a,multiple:w})&&(this.search=""),this.closeSearchOptions();return}if(this.search.length===0&&this.options.length===0){this.closeSearchOptions();return}},onSearchFocus(){this.open=!0,this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onSearchKeyDown(a){const w=G=>(G.preventDefault(),!this.isComposing&&this.typeAheadSelect()),s={8:G=>this.maybeDeleteValue(),9:G=>this.onTab(),27:G=>this.onEscape(),38:G=>(G.preventDefault(),this.typeAheadUp()),40:G=>(G.preventDefault(),this.typeAheadDown())};this.selectOnKeyCodes.forEach(G=>s[G]=w);const A=this.mapKeydown(s,this);if(typeof A[a.keyCode]=="function")return A[a.keyCode](a)}}},p_=["dir"],d_=["id","aria-expanded","aria-owns"],g_={ref:"selectedOptions",class:"vs__selected-options"},__=["disabled","title","aria-label","onClick"],v_={ref:"actions",class:"vs__actions"},w_=["disabled"],y_={class:"vs__spinner"},m_=["id"],x_=["id","aria-selected","onMouseover","onClick"],b_={key:0,class:"vs__no-options"},A_=ze(" Sorry, no matching options. "),O_=["id"];function S_(a,w,s,A,G,T){const K=Rg("append-to-body");return fn(),Rn("div",{dir:s.dir,class:Hi(["v-select",T.stateClasses])},[$n(a.$slots,"header",Un(zn(T.scope.header))),N("div",{id:`vs${s.uid}__combobox`,ref:"toggle",class:"vs__dropdown-toggle",role:"combobox","aria-expanded":T.dropdownOpen.toString(),"aria-owns":`vs${s.uid}__listbox`,"aria-label":"Search for option",onMousedown:w[1]||(w[1]=C=>T.toggleDropdown(C))},[N("div",g_,[(fn(!0),Rn(Ss,null,Cs(T.selectedValue,(C,$)=>$n(a.$slots,"selected-option-container",{option:T.normalizeOptionForSlot(C),deselect:T.deselect,multiple:s.multiple,disabled:s.disabled},()=>[(fn(),Rn("span",{key:s.getOptionKey(C),class:"vs__selected"},[$n(a.$slots,"selected-option",Un(zn(T.normalizeOptionForSlot(C))),()=>[ze(Gi(s.getOptionLabel(C)),1)]),s.multiple?(fn(),Rn("button",{key:0,ref_for:!0,ref:xn=>G.deselectButtons[$]=xn,disabled:s.disabled,type:"button",class:"vs__deselect",title:`Deselect ${s.getOptionLabel(C)}`,"aria-label":`Deselect ${s.getOptionLabel(C)}`,onClick:xn=>T.deselect(C)},[(fn(),Mi(Wi(T.childComponents.Deselect)))],8,__)):$i("",!0)]))])),256)),$n(a.$slots,"search",Un(zn(T.scope.search)),()=>[N("input",Ts({class:"vs__search"},T.scope.search.attributes,Pg(T.scope.search.events)),null,16)])],512),N("div",v_,[Ui(N("button",{ref:"clearButton",disabled:s.disabled,type:"button",class:"vs__clear",title:"Clear Selected","aria-label":"Clear Selected",onClick:w[0]||(w[0]=(...C)=>T.clearSelection&&T.clearSelection(...C))},[(fn(),Mi(Wi(T.childComponents.Deselect)))],8,w_),[[Ls,T.showClearButton]]),$n(a.$slots,"open-indicator",Un(zn(T.scope.openIndicator)),()=>[s.noDrop?$i("",!0):(fn(),Mi(Wi(T.childComponents.OpenIndicator),Un(Ts({key:0},T.scope.openIndicator.attributes)),null,16))]),$n(a.$slots,"spinner",Un(zn(T.scope.spinner)),()=>[Ui(N("div",y_,"Loading...",512),[[Ls,a.mutableLoading]])])],512)],40,d_),hr(Dg,{name:s.transition},{default:Bg(()=>[T.dropdownOpen?Ui((fn(),Rn("ul",{id:`vs${s.uid}__listbox`,ref:"dropdownMenu",key:`vs${s.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox",tabindex:"-1",onMousedown:w[2]||(w[2]=Es((...C)=>T.onMousedown&&T.onMousedown(...C),["prevent"])),onMouseup:w[3]||(w[3]=(...C)=>T.onMouseUp&&T.onMouseUp(...C))},[$n(a.$slots,"list-header",Un(zn(T.scope.listHeader))),(fn(!0),Rn(Ss,null,Cs(T.filteredOptions,(C,$)=>(fn(),Rn("li",{id:`vs${s.uid}__option-${$}`,key:s.getOptionKey(C),role:"option",class:Hi(["vs__dropdown-option",{"vs__dropdown-option--deselect":T.isOptionDeselectable(C)&&$===a.typeAheadPointer,"vs__dropdown-option--selected":T.isOptionSelected(C),"vs__dropdown-option--highlight":$===a.typeAheadPointer,"vs__dropdown-option--disabled":!s.selectable(C)}]),"aria-selected":$===a.typeAheadPointer?!0:null,onMouseover:xn=>s.selectable(C)?a.typeAheadPointer=$:null,onClick:Es(xn=>s.selectable(C)?T.select(C):null,["prevent","stop"])},[$n(a.$slots,"option",Un(zn(T.normalizeOptionForSlot(C))),()=>[ze(Gi(s.getOptionLabel(C)),1)])],42,x_))),128)),T.filteredOptions.length===0?(fn(),Rn("li",b_,[$n(a.$slots,"no-options",Un(zn(T.scope.noOptions)),()=>[A_])])):$i("",!0),$n(a.$slots,"list-footer",Un(zn(T.scope.listFooter)))],40,m_)),[[K]]):(fn(),Rn("ul",{key:1,id:`vs${s.uid}__listbox`,role:"listbox",style:{display:"none",visibility:"hidden"}},null,8,O_))]),_:3},8,["name"]),$n(a.$slots,"footer",Un(zn(T.scope.footer)))],10,p_)}const qi=Ki(h_,[["render",S_]]),C_=Wg('

              数据文件-Msg 示例

              示例有以下几种查看方式

              源码 (推荐)

              最及时最可靠

              Shmily-Show 项目 memoryweb/src/components/Msg/source 下查看组件源码

              Demo

              更新不及时

              ',7),T_={id:"msg-template"},L_={class:"row"},E_={class:"col"},I_=N("label",null,"source",-1),R_={class:"col"},P_=N("label",null,"type",-1),B_=N("label",null,"$source.os",-1),D_={class:"language-js vp-adaptive-theme"},F_=N("button",{title:"Copy Code",class:"copy"},null,-1),M_=N("span",{class:"lang"},"js",-1),W_={class:"shiki shiki-themes github-light github-dark vp-code"},$_={class:"line"},U_={style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},N_=N("p",null,[ze("从 "),N("code",null,"Demo"),ze(),N("a",{href:"http://demo.shmily.lqzh.me/#/query?searchType=%E6%B6%88%E6%81%AF&searchKey=-Reg:/*/",target:"_blank",rel:"noreferrer"},"链接"),ze(" 筛选查看")],-1),q_=N("p",null,[N("img",{src:$g,alt:"from demo web"})],-1),K_=JSON.parse('{"title":"数据文件-Msg 示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/template/index.md","filePath":"guide/use/msg/template/index.md","lastUpdated":1702113381000}'),G_={name:"guide/use/msg/template/index.md"},V_=Object.assign(G_,{setup(a){Fg(async()=>{w=await fetch("https://demo.shmily.lqzh.me/json/msg/msg.json").then(C=>C.json());const K=w.reduce((C,$,xn,Ye)=>{let an=C.find(tn=>tn.source===$.source);an||(an={source:$.source,type:[]},C.push(an));let ue=an.type.find(tn=>tn.type===$.type);ue||(ue={type:$.type,os:[]},an.type.push(ue));const Yn=Object.keys($).find(tn=>tn.startsWith("$"));if(Yn){let tn=qg.get($,`${Yn}.os`);tn&&!ue.os.includes(tn)&&ue.os.push(tn)}return C},[]);s.push(...K)});let w=[];const s=Is([]),A=Is({source:"",type:"",os:""}),G=Mg(()=>{if(!A.source||!A.type)return[];const K=A.source.source,C=A.type.type,$=w.filter(xn=>xn.source===K&&xn.type===C);return A.type.os.length===0?$:$.filter(xn=>xn[`$${K}`].os===A.os)});function T(K){K==="source"?(A.type="",A.os=""):K==="type"&&(A.type.os.length===1?A.os=A.type.os[0]:A.os="")}return(K,C)=>(fn(),Rn("div",null,[C_,N("div",T_,[N("div",L_,[N("div",E_,[I_,hr(Ni(qi),{options:s,label:"source",modelValue:A.source,"onUpdate:modelValue":C[0]||(C[0]=$=>A.source=$),"onOption:selected":C[1]||(C[1]=$=>T("source"))},null,8,["options","modelValue"])]),N("div",R_,[P_,hr(Ni(qi),{options:A.source?A.source.type:[],label:"type",modelValue:A.type,"onUpdate:modelValue":C[2]||(C[2]=$=>A.type=$),"onOption:selected":C[3]||(C[3]=$=>T("type"))},null,8,["options","modelValue"])]),N("div",{class:Hi(["col",{disable:!A.type||A.type.os.length===0}])},[B_,hr(Ni(qi),{options:A.type?A.type.os:[],modelValue:A.os,"onUpdate:modelValue":C[4]||(C[4]=$=>A.os=$)},null,8,["options","modelValue"])],2)])]),N("div",D_,[F_,M_,N("pre",W_,[N("code",null,[N("span",$_,[N("span",U_,Gi(G.value.slice(0,1)),1)])])])]),N_,q_]))}});export{K_ as __pageData,V_ as default}; diff --git a/assets/guide_use_msg_template_index.md.jDcaqZOW.lean.js b/assets/guide_use_msg_template_index.md.803B_R4g.lean.js similarity index 99% rename from assets/guide_use_msg_template_index.md.jDcaqZOW.lean.js rename to assets/guide_use_msg_template_index.md.803B_R4g.lean.js index 207fb6f8..6f318db3 100644 --- a/assets/guide_use_msg_template_index.md.jDcaqZOW.lean.js +++ b/assets/guide_use_msg_template_index.md.803B_R4g.lean.js @@ -26,4 +26,4 @@ function print() { __p += __j.call(arguments, '') } `)+v+`return __p }`;var R=bs(function(){return M(o,x+"return "+v).apply(s,l)});if(R.source=v,Si(R))throw R;return R}function $d(n){return W(n).toLowerCase()}function Ud(n){return W(n).toUpperCase()}function Nd(n,e,t){if(n=W(n),n&&(t||e===s))return Iu(n);if(!n||!(e=vn(e)))return n;var r=Dn(n),i=Dn(e),o=Ru(r,i),l=Pu(r,i)+1;return de(r,o,l).join("")}function qd(n,e,t){if(n=W(n),n&&(t||e===s))return n.slice(0,Du(n)+1);if(!n||!(e=vn(e)))return n;var r=Dn(n),i=Pu(r,Dn(e))+1;return de(r,0,i).join("")}function Gd(n,e,t){if(n=W(n),n&&(t||e===s))return n.replace(Sr,"");if(!n||!(e=vn(e)))return n;var r=Dn(n),i=Ru(r,Dn(e));return de(r,i).join("")}function Hd(n,e){var t=Fs,r=Ms;if(Y(e)){var i="separator"in e?e.separator:i;t="length"in e?I(e.length):t,r="omission"in e?vn(e.omission):r}n=W(n);var o=n.length;if(Be(n)){var l=Dn(n);o=l.length}if(t>=o)return n;var f=t-De(r);if(f<1)return r;var h=l?de(l,0,f).join(""):n.slice(0,f);if(i===s)return h+r;if(l&&(f+=h.length-f),Ci(i)){if(n.slice(f).search(i)){var g,_=h;for(i.global||(i=Gr(i.source,W(ki.exec(i))+"g")),i.lastIndex=0;g=i.exec(_);)var v=g.index;h=h.slice(0,v===s?f:v)}}else if(n.indexOf(vn(i),f)!=f){var y=h.lastIndexOf(i);y>-1&&(h=h.slice(0,y))}return h+r}function Kd(n){return n=W(n),n&&nl.test(n)?n.replace(Ji,yf):n}var Vd=qe(function(n,e,t){return n+(t?" ":"")+e.toUpperCase()}),Ei=Ao("toUpperCase");function xs(n,e,t){return n=W(n),e=t?s:e,e===s?df(n)?bf(n):uf(n):n.match(e)||[]}var bs=P(function(n,e){try{return gn(n,s,e)}catch(t){return Si(t)?t:new L(t)}}),zd=ne(function(n,e){return On(e,function(t){t=Vn(t),kn(n,t,Ai(n[t],n))}),n});function Yd(n){var e=n==null?0:n.length,t=b();return n=e?z(n,function(r){if(typeof r[1]!="function")throw new Sn(K);return[t(r[0]),r[1]]}):[],P(function(r){for(var i=-1;++ioe)return[];var t=Gn,r=rn(n,Gn);e=b(e),n-=Gn;for(var i=Ur(r,e);++t0||e<0)?new D(t):(n<0?t=t.takeRight(-n):n&&(t=t.drop(n)),e!==s&&(e=I(e),t=e<0?t.dropRight(-e):t.take(e-n)),t)},D.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},D.prototype.toArray=function(){return this.take(Gn)},Hn(D.prototype,function(n,e){var t=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),i=u[r?"take"+(e=="last"?"Right":""):e],o=r||/^find/.test(e);i&&(u.prototype[e]=function(){var l=this.__wrapped__,f=r?[1]:arguments,h=l instanceof D,g=f[0],_=h||E(l),v=function(B){var F=i.apply(u,le([B],f));return r&&y?F[0]:F};_&&t&&typeof g=="function"&&g.length!=1&&(h=_=!1);var y=this.__chain__,x=!!this.__actions__.length,O=o&&!y,R=h&&!x;if(!o&&_){l=R?l:new D(this);var S=n.apply(l,f);return S.__actions__.push({func:ir,args:[v],thisArg:s}),new Cn(S,y)}return O&&R?n.apply(this,f):(S=this.thru(v),O?r?S.value()[0]:S.value():S)})}),On(["pop","push","shift","sort","splice","unshift"],function(n){var e=It[n],t=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",r=/^(?:pop|shift)$/.test(n);u.prototype[n]=function(){var i=arguments;if(r&&!this.__chain__){var o=this.value();return e.apply(E(o)?o:[],i)}return this[t](function(l){return e.apply(E(l)?l:[],i)})}}),Hn(D.prototype,function(n,e){var t=u[e];if(t){var r=t.name+"";U.call($e,r)||($e[r]=[]),$e[r].push({name:e,func:t})}}),$e[Qt(s,_e).name]=[{name:"wrapper",func:s}],D.prototype.clone=Kf,D.prototype.reverse=Vf,D.prototype.value=zf,u.prototype.at=xh,u.prototype.chain=bh,u.prototype.commit=Ah,u.prototype.next=Oh,u.prototype.plant=Ch,u.prototype.reverse=Th,u.prototype.toJSON=u.prototype.valueOf=u.prototype.value=Lh,u.prototype.first=u.prototype.head,rt&&(u.prototype[rt]=Sh),u},Fe=Af();we?((we.exports=Fe)._=Fe,Rr._=Fe):nn._=Fe}).call(vt)})(pr,pr.exports);var Ng=pr.exports;const qg=Ug(Ng);var Gg=Object.defineProperty,Hg=Object.defineProperties,Kg=Object.getOwnPropertyDescriptors,Rs=Object.getOwnPropertySymbols,Vg=Object.prototype.hasOwnProperty,zg=Object.prototype.propertyIsEnumerable,Ps=(a,w,s)=>w in a?Gg(a,w,{enumerable:!0,configurable:!0,writable:!0,value:s}):a[w]=s,Ve=(a,w)=>{for(var s in w||(w={}))Vg.call(w,s)&&Ps(a,s,w[s]);if(Rs)for(var s of Rs(w))zg.call(w,s)&&Ps(a,s,w[s]);return a},Bs=(a,w)=>Hg(a,Kg(w));const Yg={props:{autoscroll:{type:Boolean,default:!0}},watch:{typeAheadPointer(){this.autoscroll&&this.maybeAdjustScroll()},open(a){this.autoscroll&&a&&this.$nextTick(()=>this.maybeAdjustScroll())}},methods:{maybeAdjustScroll(){var a;const w=((a=this.$refs.dropdownMenu)==null?void 0:a.children[this.typeAheadPointer])||!1;if(w){const s=this.getDropdownViewport(),{top:A,bottom:G,height:T}=w.getBoundingClientRect();if(As.bottom)return this.$refs.dropdownMenu.scrollTop=w.offsetTop-(s.height-T)}},getDropdownViewport(){return this.$refs.dropdownMenu?this.$refs.dropdownMenu.getBoundingClientRect():{height:0,top:0,bottom:0}}}},Zg={data(){return{typeAheadPointer:-1}},watch:{filteredOptions(){for(let a=0;a=0;a--)if(this.selectable(this.filteredOptions[a])){this.typeAheadPointer=a;break}},typeAheadDown(){for(let a=this.typeAheadPointer+1;a{const s=a.__vccOpts||a;for(const[A,G]of w)s[A]=G;return s},Xg={},Qg={xmlns:"http://www.w3.org/2000/svg",width:"10",height:"10"},kg=N("path",{d:"M6.895455 5l2.842897-2.842898c.348864-.348863.348864-.914488 0-1.263636L9.106534.261648c-.348864-.348864-.914489-.348864-1.263636 0L5 3.104545 2.157102.261648c-.348863-.348864-.914488-.348864-1.263636 0L.261648.893466c-.348864.348864-.348864.914489 0 1.263636L3.104545 5 .261648 7.842898c-.348864.348863-.348864.914488 0 1.263636l.631818.631818c.348864.348864.914773.348864 1.263636 0L5 6.895455l2.842898 2.842897c.348863.348864.914772.348864 1.263636 0l.631818-.631818c.348864-.348864.348864-.914489 0-1.263636L6.895455 5z"},null,-1),jg=[kg];function n_(a,w){return fn(),Rn("svg",Qg,jg)}const e_=Ki(Xg,[["render",n_]]),t_={},r_={xmlns:"http://www.w3.org/2000/svg",width:"14",height:"10"},i_=N("path",{d:"M9.211364 7.59931l4.48338-4.867229c.407008-.441854.407008-1.158247 0-1.60046l-.73712-.80023c-.407008-.441854-1.066904-.441854-1.474243 0L7 5.198617 2.51662.33139c-.407008-.441853-1.066904-.441853-1.474243 0l-.737121.80023c-.407008.441854-.407008 1.158248 0 1.600461l4.48338 4.867228L7 10l2.211364-2.40069z"},null,-1),u_=[i_];function o_(a,w){return fn(),Rn("svg",r_,u_)}const s_=Ki(t_,[["render",o_]]),Ds={Deselect:e_,OpenIndicator:s_},l_={mounted(a,{instance:w}){if(w.appendToBody){const{height:s,top:A,left:G,width:T}=w.$refs.toggle.getBoundingClientRect();let K=window.scrollX||window.pageXOffset,C=window.scrollY||window.pageYOffset;a.unbindPosition=w.calculatePosition(a,w,{width:T+"px",left:K+G+"px",top:C+A+s+"px"}),document.body.appendChild(a)}},unmounted(a,{instance:w}){w.appendToBody&&(a.unbindPosition&&typeof a.unbindPosition=="function"&&a.unbindPosition(),a.parentNode&&a.parentNode.removeChild(a))}};function f_(a){const w={};return Object.keys(a).sort().forEach(s=>{w[s]=a[s]}),JSON.stringify(w)}let a_=0;function c_(){return++a_}const h_={components:Ve({},Ds),directives:{appendToBody:l_},mixins:[Yg,Zg,Jg],compatConfig:{MODE:3},emits:["open","close","update:modelValue","search","search:compositionstart","search:compositionend","search:keydown","search:blur","search:focus","search:input","option:created","option:selecting","option:selected","option:deselecting","option:deselected"],props:{modelValue:{},components:{type:Object,default:()=>({})},options:{type:Array,default(){return[]}},disabled:{type:Boolean,default:!1},clearable:{type:Boolean,default:!0},deselectFromDropdown:{type:Boolean,default:!1},searchable:{type:Boolean,default:!0},multiple:{type:Boolean,default:!1},placeholder:{type:String,default:""},transition:{type:String,default:"vs__fade"},clearSearchOnSelect:{type:Boolean,default:!0},closeOnSelect:{type:Boolean,default:!0},label:{type:String,default:"label"},autocomplete:{type:String,default:"off"},reduce:{type:Function,default:a=>a},selectable:{type:Function,default:a=>!0},getOptionLabel:{type:Function,default(a){return typeof a=="object"?a.hasOwnProperty(this.label)?a[this.label]:console.warn(`[vue-select warn]: Label key "option.${this.label}" does not exist in options object ${JSON.stringify(a)}. https://vue-select.org/api/props.html#getoptionlabel`):a}},getOptionKey:{type:Function,default(a){if(typeof a!="object")return a;try{return a.hasOwnProperty("id")?a.id:f_(a)}catch(w){return console.warn(`[vue-select warn]: Could not stringify this option to generate unique key. Please provide'getOptionKey' prop to return a unique key for each option. -https://vue-select.org/api/props.html#getoptionkey`,a,w)}}},onTab:{type:Function,default:function(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default(a,w,s){return(w||"").toLocaleLowerCase().indexOf(s.toLocaleLowerCase())>-1}},filter:{type:Function,default(a,w){return a.filter(s=>{let A=this.getOptionLabel(s);return typeof A=="number"&&(A=A.toString()),this.filterBy(s,A,w)})}},createOption:{type:Function,default(a){return typeof this.optionList[0]=="object"?{[this.label]:a}:a}},resetOnOptionsChange:{default:!1,validator:a=>["function","boolean"].includes(typeof a)},clearSearchOnBlur:{type:Function,default:function({clearSearchOnSelect:a,multiple:w}){return a&&!w}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:(a,w)=>a},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(a,w,{width:s,top:A,left:G}){a.style.top=A,a.style.left=G,a.style.width=s}},dropdownShouldOpen:{type:Function,default({noDrop:a,open:w,mutableLoading:s}){return a?!1:w&&!s}},uid:{type:[String,Number],default:()=>c_()}},data(){return{search:"",open:!1,isComposing:!1,pushedTags:[],_value:[],deselectButtons:[]}},computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return typeof this.modelValue>"u"||this.isReducingValues},selectedValue(){let a=this.modelValue;return this.isTrackingValues&&(a=this.$data._value),a!=null&&a!==""?[].concat(a):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const a={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:Ve({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,"aria-autocomplete":"list","aria-labelledby":`vs${this.uid}__combobox`,"aria-controls":`vs${this.uid}__listbox`,ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs${this.uid}__option-${this.typeAheadPointer}`}:{}),events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,blur:this.onSearchBlur,focus:this.onSearchFocus,input:w=>this.search=w.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:a,listFooter:a,header:Bs(Ve({},a),{deselect:this.deselect}),footer:Bs(Ve({},a),{deselect:this.deselect})}},childComponents(){return Ve(Ve({},Ds),this.components)},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const a=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return a;const w=this.search.length?this.filter(a,this.search,this):a;if(this.taggable&&this.search.length){const s=this.createOption(this.search);this.optionExists(s)||w.unshift(s)}return w},isValueEmpty(){return this.selectedValue.length===0},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(a,w){const s=()=>typeof this.resetOnOptionsChange=="function"?this.resetOnOptionsChange(a,w,this.selectedValue):this.resetOnOptionsChange;!this.taggable&&s()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(a){this.isTrackingValues&&this.setInternalValueFromOptions(a)}},multiple(){this.clearSelection()},open(a){this.$emit(a?"open":"close")}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(a){Array.isArray(a)?this.$data._value=a.map(w=>this.findOptionFromReducedValue(w)):this.$data._value=this.findOptionFromReducedValue(a)},select(a){this.$emit("option:selecting",a),this.isOptionSelected(a)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(a):(this.taggable&&!this.optionExists(a)&&(this.$emit("option:created",a),this.pushTag(a)),this.multiple&&(a=this.selectedValue.concat(a)),this.updateValue(a),this.$emit("option:selected",a)),this.onAfterSelect(a)},deselect(a){this.$emit("option:deselecting",a),this.updateValue(this.selectedValue.filter(w=>!this.optionComparator(w,a))),this.$emit("option:deselected",a)},clearSelection(){this.updateValue(this.multiple?[]:null)},onAfterSelect(a){this.closeOnSelect&&(this.open=!this.open,this.searchEl.blur()),this.clearSearchOnSelect&&(this.search="")},updateValue(a){typeof this.modelValue>"u"&&(this.$data._value=a),a!==null&&(Array.isArray(a)?a=a.map(w=>this.reduce(w)):a=this.reduce(a)),this.$emit("update:modelValue",a)},toggleDropdown(a){const w=a.target!==this.searchEl;w&&a.preventDefault();const s=[...this.deselectButtons||[],this.$refs.clearButton];if(this.searchEl===void 0||s.filter(Boolean).some(A=>A.contains(a.target)||A===a.target)){a.preventDefault();return}this.open&&w?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(a){return this.selectedValue.some(w=>this.optionComparator(w,a))},isOptionDeselectable(a){return this.isOptionSelected(a)&&this.deselectFromDropdown},optionComparator(a,w){return this.getOptionKey(a)===this.getOptionKey(w)},findOptionFromReducedValue(a){const w=A=>JSON.stringify(this.reduce(A))===JSON.stringify(a),s=[...this.options,...this.pushedTags].filter(w);return s.length===1?s[0]:s.find(A=>this.optionComparator(A,this.$data._value))||a},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let a=null;this.multiple&&(a=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(a)}},optionExists(a){return this.optionList.some(w=>this.optionComparator(w,a))},normalizeOptionForSlot(a){return typeof a=="object"?a:{[this.label]:a}},pushTag(a){this.pushedTags.push(a)},onEscape(){this.search.length?this.search="":this.searchEl.blur()},onSearchBlur(){if(this.mousedown&&!this.searching)this.mousedown=!1;else{const{clearSearchOnSelect:a,multiple:w}=this;this.clearSearchOnBlur({clearSearchOnSelect:a,multiple:w})&&(this.search=""),this.closeSearchOptions();return}if(this.search.length===0&&this.options.length===0){this.closeSearchOptions();return}},onSearchFocus(){this.open=!0,this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onSearchKeyDown(a){const w=G=>(G.preventDefault(),!this.isComposing&&this.typeAheadSelect()),s={8:G=>this.maybeDeleteValue(),9:G=>this.onTab(),27:G=>this.onEscape(),38:G=>(G.preventDefault(),this.typeAheadUp()),40:G=>(G.preventDefault(),this.typeAheadDown())};this.selectOnKeyCodes.forEach(G=>s[G]=w);const A=this.mapKeydown(s,this);if(typeof A[a.keyCode]=="function")return A[a.keyCode](a)}}},p_=["dir"],d_=["id","aria-expanded","aria-owns"],g_={ref:"selectedOptions",class:"vs__selected-options"},__=["disabled","title","aria-label","onClick"],v_={ref:"actions",class:"vs__actions"},w_=["disabled"],y_={class:"vs__spinner"},m_=["id"],x_=["id","aria-selected","onMouseover","onClick"],b_={key:0,class:"vs__no-options"},A_=ze(" Sorry, no matching options. "),O_=["id"];function S_(a,w,s,A,G,T){const K=Rg("append-to-body");return fn(),Rn("div",{dir:s.dir,class:Hi(["v-select",T.stateClasses])},[$n(a.$slots,"header",Un(zn(T.scope.header))),N("div",{id:`vs${s.uid}__combobox`,ref:"toggle",class:"vs__dropdown-toggle",role:"combobox","aria-expanded":T.dropdownOpen.toString(),"aria-owns":`vs${s.uid}__listbox`,"aria-label":"Search for option",onMousedown:w[1]||(w[1]=C=>T.toggleDropdown(C))},[N("div",g_,[(fn(!0),Rn(Ss,null,Cs(T.selectedValue,(C,$)=>$n(a.$slots,"selected-option-container",{option:T.normalizeOptionForSlot(C),deselect:T.deselect,multiple:s.multiple,disabled:s.disabled},()=>[(fn(),Rn("span",{key:s.getOptionKey(C),class:"vs__selected"},[$n(a.$slots,"selected-option",Un(zn(T.normalizeOptionForSlot(C))),()=>[ze(Gi(s.getOptionLabel(C)),1)]),s.multiple?(fn(),Rn("button",{key:0,ref_for:!0,ref:xn=>G.deselectButtons[$]=xn,disabled:s.disabled,type:"button",class:"vs__deselect",title:`Deselect ${s.getOptionLabel(C)}`,"aria-label":`Deselect ${s.getOptionLabel(C)}`,onClick:xn=>T.deselect(C)},[(fn(),Mi(Wi(T.childComponents.Deselect)))],8,__)):$i("",!0)]))])),256)),$n(a.$slots,"search",Un(zn(T.scope.search)),()=>[N("input",Ts({class:"vs__search"},T.scope.search.attributes,Pg(T.scope.search.events)),null,16)])],512),N("div",v_,[Ui(N("button",{ref:"clearButton",disabled:s.disabled,type:"button",class:"vs__clear",title:"Clear Selected","aria-label":"Clear Selected",onClick:w[0]||(w[0]=(...C)=>T.clearSelection&&T.clearSelection(...C))},[(fn(),Mi(Wi(T.childComponents.Deselect)))],8,w_),[[Ls,T.showClearButton]]),$n(a.$slots,"open-indicator",Un(zn(T.scope.openIndicator)),()=>[s.noDrop?$i("",!0):(fn(),Mi(Wi(T.childComponents.OpenIndicator),Un(Ts({key:0},T.scope.openIndicator.attributes)),null,16))]),$n(a.$slots,"spinner",Un(zn(T.scope.spinner)),()=>[Ui(N("div",y_,"Loading...",512),[[Ls,a.mutableLoading]])])],512)],40,d_),hr(Dg,{name:s.transition},{default:Bg(()=>[T.dropdownOpen?Ui((fn(),Rn("ul",{id:`vs${s.uid}__listbox`,ref:"dropdownMenu",key:`vs${s.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox",tabindex:"-1",onMousedown:w[2]||(w[2]=Es((...C)=>T.onMousedown&&T.onMousedown(...C),["prevent"])),onMouseup:w[3]||(w[3]=(...C)=>T.onMouseUp&&T.onMouseUp(...C))},[$n(a.$slots,"list-header",Un(zn(T.scope.listHeader))),(fn(!0),Rn(Ss,null,Cs(T.filteredOptions,(C,$)=>(fn(),Rn("li",{id:`vs${s.uid}__option-${$}`,key:s.getOptionKey(C),role:"option",class:Hi(["vs__dropdown-option",{"vs__dropdown-option--deselect":T.isOptionDeselectable(C)&&$===a.typeAheadPointer,"vs__dropdown-option--selected":T.isOptionSelected(C),"vs__dropdown-option--highlight":$===a.typeAheadPointer,"vs__dropdown-option--disabled":!s.selectable(C)}]),"aria-selected":$===a.typeAheadPointer?!0:null,onMouseover:xn=>s.selectable(C)?a.typeAheadPointer=$:null,onClick:Es(xn=>s.selectable(C)?T.select(C):null,["prevent","stop"])},[$n(a.$slots,"option",Un(zn(T.normalizeOptionForSlot(C))),()=>[ze(Gi(s.getOptionLabel(C)),1)])],42,x_))),128)),T.filteredOptions.length===0?(fn(),Rn("li",b_,[$n(a.$slots,"no-options",Un(zn(T.scope.noOptions)),()=>[A_])])):$i("",!0),$n(a.$slots,"list-footer",Un(zn(T.scope.listFooter)))],40,m_)),[[K]]):(fn(),Rn("ul",{key:1,id:`vs${s.uid}__listbox`,role:"listbox",style:{display:"none",visibility:"hidden"}},null,8,O_))]),_:3},8,["name"]),$n(a.$slots,"footer",Un(zn(T.scope.footer)))],10,p_)}const qi=Ki(h_,[["render",S_]]),C_=Wg("",7),T_={id:"msg-template"},L_={class:"row"},E_={class:"col"},I_=N("label",null,"source",-1),R_={class:"col"},P_=N("label",null,"type",-1),B_=N("label",null,"$source.os",-1),D_={class:"language-js vp-adaptive-theme"},F_=N("button",{title:"Copy Code",class:"copy"},null,-1),M_=N("span",{class:"lang"},"js",-1),W_={class:"shiki shiki-themes github-light github-dark vp-code"},$_={class:"line"},U_={style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},N_=N("p",null,[ze("从 "),N("code",null,"Demo"),ze(),N("a",{href:"http://demo.shmily.lqzh.me/#/query?searchType=%E6%B6%88%E6%81%AF&searchKey=-Reg:/*/",target:"_blank",rel:"noreferrer"},"链接"),ze(" 筛选查看")],-1),q_=N("p",null,[N("img",{src:$g,alt:"from demo web"})],-1),K_=JSON.parse('{"title":"数据文件-Msg 示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/template/index.md","filePath":"guide/use/msg/template/index.md","lastUpdated":1702113017000}'),G_={name:"guide/use/msg/template/index.md"},V_=Object.assign(G_,{setup(a){Fg(async()=>{w=await fetch("https://demo.shmily.lqzh.me/json/msg/msg.json").then(C=>C.json());const K=w.reduce((C,$,xn,Ye)=>{let an=C.find(tn=>tn.source===$.source);an||(an={source:$.source,type:[]},C.push(an));let ue=an.type.find(tn=>tn.type===$.type);ue||(ue={type:$.type,os:[]},an.type.push(ue));const Yn=Object.keys($).find(tn=>tn.startsWith("$"));if(Yn){let tn=qg.get($,`${Yn}.os`);tn&&!ue.os.includes(tn)&&ue.os.push(tn)}return C},[]);s.push(...K)});let w=[];const s=Is([]),A=Is({source:"",type:"",os:""}),G=Mg(()=>{if(!A.source||!A.type)return[];const K=A.source.source,C=A.type.type,$=w.filter(xn=>xn.source===K&&xn.type===C);return A.type.os.length===0?$:$.filter(xn=>xn[`$${K}`].os===A.os)});function T(K){K==="source"?(A.type="",A.os=""):K==="type"&&(A.type.os.length===1?A.os=A.type.os[0]:A.os="")}return(K,C)=>(fn(),Rn("div",null,[C_,N("div",T_,[N("div",L_,[N("div",E_,[I_,hr(Ni(qi),{options:s,label:"source",modelValue:A.source,"onUpdate:modelValue":C[0]||(C[0]=$=>A.source=$),"onOption:selected":C[1]||(C[1]=$=>T("source"))},null,8,["options","modelValue"])]),N("div",R_,[P_,hr(Ni(qi),{options:A.source?A.source.type:[],label:"type",modelValue:A.type,"onUpdate:modelValue":C[2]||(C[2]=$=>A.type=$),"onOption:selected":C[3]||(C[3]=$=>T("type"))},null,8,["options","modelValue"])]),N("div",{class:Hi(["col",{disable:!A.type||A.type.os.length===0}])},[B_,hr(Ni(qi),{options:A.type?A.type.os:[],modelValue:A.os,"onUpdate:modelValue":C[4]||(C[4]=$=>A.os=$)},null,8,["options","modelValue"])],2)])]),N("div",D_,[F_,M_,N("pre",W_,[N("code",null,[N("span",$_,[N("span",U_,Gi(G.value.slice(0,1)),1)])])])]),N_,q_]))}});export{K_ as __pageData,V_ as default}; +https://vue-select.org/api/props.html#getoptionkey`,a,w)}}},onTab:{type:Function,default:function(){this.selectOnTab&&!this.isComposing&&this.typeAheadSelect()}},taggable:{type:Boolean,default:!1},tabindex:{type:Number,default:null},pushTags:{type:Boolean,default:!1},filterable:{type:Boolean,default:!0},filterBy:{type:Function,default(a,w,s){return(w||"").toLocaleLowerCase().indexOf(s.toLocaleLowerCase())>-1}},filter:{type:Function,default(a,w){return a.filter(s=>{let A=this.getOptionLabel(s);return typeof A=="number"&&(A=A.toString()),this.filterBy(s,A,w)})}},createOption:{type:Function,default(a){return typeof this.optionList[0]=="object"?{[this.label]:a}:a}},resetOnOptionsChange:{default:!1,validator:a=>["function","boolean"].includes(typeof a)},clearSearchOnBlur:{type:Function,default:function({clearSearchOnSelect:a,multiple:w}){return a&&!w}},noDrop:{type:Boolean,default:!1},inputId:{type:String},dir:{type:String,default:"auto"},selectOnTab:{type:Boolean,default:!1},selectOnKeyCodes:{type:Array,default:()=>[13]},searchInputQuerySelector:{type:String,default:"[type=search]"},mapKeydown:{type:Function,default:(a,w)=>a},appendToBody:{type:Boolean,default:!1},calculatePosition:{type:Function,default(a,w,{width:s,top:A,left:G}){a.style.top=A,a.style.left=G,a.style.width=s}},dropdownShouldOpen:{type:Function,default({noDrop:a,open:w,mutableLoading:s}){return a?!1:w&&!s}},uid:{type:[String,Number],default:()=>c_()}},data(){return{search:"",open:!1,isComposing:!1,pushedTags:[],_value:[],deselectButtons:[]}},computed:{isReducingValues(){return this.$props.reduce!==this.$options.props.reduce.default},isTrackingValues(){return typeof this.modelValue>"u"||this.isReducingValues},selectedValue(){let a=this.modelValue;return this.isTrackingValues&&(a=this.$data._value),a!=null&&a!==""?[].concat(a):[]},optionList(){return this.options.concat(this.pushTags?this.pushedTags:[])},searchEl(){return this.$slots.search?this.$refs.selectedOptions.querySelector(this.searchInputQuerySelector):this.$refs.search},scope(){const a={search:this.search,loading:this.loading,searching:this.searching,filteredOptions:this.filteredOptions};return{search:{attributes:Ve({disabled:this.disabled,placeholder:this.searchPlaceholder,tabindex:this.tabindex,readonly:!this.searchable,id:this.inputId,"aria-autocomplete":"list","aria-labelledby":`vs${this.uid}__combobox`,"aria-controls":`vs${this.uid}__listbox`,ref:"search",type:"search",autocomplete:this.autocomplete,value:this.search},this.dropdownOpen&&this.filteredOptions[this.typeAheadPointer]?{"aria-activedescendant":`vs${this.uid}__option-${this.typeAheadPointer}`}:{}),events:{compositionstart:()=>this.isComposing=!0,compositionend:()=>this.isComposing=!1,keydown:this.onSearchKeyDown,blur:this.onSearchBlur,focus:this.onSearchFocus,input:w=>this.search=w.target.value}},spinner:{loading:this.mutableLoading},noOptions:{search:this.search,loading:this.mutableLoading,searching:this.searching},openIndicator:{attributes:{ref:"openIndicator",role:"presentation",class:"vs__open-indicator"}},listHeader:a,listFooter:a,header:Bs(Ve({},a),{deselect:this.deselect}),footer:Bs(Ve({},a),{deselect:this.deselect})}},childComponents(){return Ve(Ve({},Ds),this.components)},stateClasses(){return{"vs--open":this.dropdownOpen,"vs--single":!this.multiple,"vs--multiple":this.multiple,"vs--searching":this.searching&&!this.noDrop,"vs--searchable":this.searchable&&!this.noDrop,"vs--unsearchable":!this.searchable,"vs--loading":this.mutableLoading,"vs--disabled":this.disabled}},searching(){return!!this.search},dropdownOpen(){return this.dropdownShouldOpen(this)},searchPlaceholder(){return this.isValueEmpty&&this.placeholder?this.placeholder:void 0},filteredOptions(){const a=[].concat(this.optionList);if(!this.filterable&&!this.taggable)return a;const w=this.search.length?this.filter(a,this.search,this):a;if(this.taggable&&this.search.length){const s=this.createOption(this.search);this.optionExists(s)||w.unshift(s)}return w},isValueEmpty(){return this.selectedValue.length===0},showClearButton(){return!this.multiple&&this.clearable&&!this.open&&!this.isValueEmpty}},watch:{options(a,w){const s=()=>typeof this.resetOnOptionsChange=="function"?this.resetOnOptionsChange(a,w,this.selectedValue):this.resetOnOptionsChange;!this.taggable&&s()&&this.clearSelection(),this.modelValue&&this.isTrackingValues&&this.setInternalValueFromOptions(this.modelValue)},modelValue:{immediate:!0,handler(a){this.isTrackingValues&&this.setInternalValueFromOptions(a)}},multiple(){this.clearSelection()},open(a){this.$emit(a?"open":"close")}},created(){this.mutableLoading=this.loading},methods:{setInternalValueFromOptions(a){Array.isArray(a)?this.$data._value=a.map(w=>this.findOptionFromReducedValue(w)):this.$data._value=this.findOptionFromReducedValue(a)},select(a){this.$emit("option:selecting",a),this.isOptionSelected(a)?this.deselectFromDropdown&&(this.clearable||this.multiple&&this.selectedValue.length>1)&&this.deselect(a):(this.taggable&&!this.optionExists(a)&&(this.$emit("option:created",a),this.pushTag(a)),this.multiple&&(a=this.selectedValue.concat(a)),this.updateValue(a),this.$emit("option:selected",a)),this.onAfterSelect(a)},deselect(a){this.$emit("option:deselecting",a),this.updateValue(this.selectedValue.filter(w=>!this.optionComparator(w,a))),this.$emit("option:deselected",a)},clearSelection(){this.updateValue(this.multiple?[]:null)},onAfterSelect(a){this.closeOnSelect&&(this.open=!this.open,this.searchEl.blur()),this.clearSearchOnSelect&&(this.search="")},updateValue(a){typeof this.modelValue>"u"&&(this.$data._value=a),a!==null&&(Array.isArray(a)?a=a.map(w=>this.reduce(w)):a=this.reduce(a)),this.$emit("update:modelValue",a)},toggleDropdown(a){const w=a.target!==this.searchEl;w&&a.preventDefault();const s=[...this.deselectButtons||[],this.$refs.clearButton];if(this.searchEl===void 0||s.filter(Boolean).some(A=>A.contains(a.target)||A===a.target)){a.preventDefault();return}this.open&&w?this.searchEl.blur():this.disabled||(this.open=!0,this.searchEl.focus())},isOptionSelected(a){return this.selectedValue.some(w=>this.optionComparator(w,a))},isOptionDeselectable(a){return this.isOptionSelected(a)&&this.deselectFromDropdown},optionComparator(a,w){return this.getOptionKey(a)===this.getOptionKey(w)},findOptionFromReducedValue(a){const w=A=>JSON.stringify(this.reduce(A))===JSON.stringify(a),s=[...this.options,...this.pushedTags].filter(w);return s.length===1?s[0]:s.find(A=>this.optionComparator(A,this.$data._value))||a},closeSearchOptions(){this.open=!1,this.$emit("search:blur")},maybeDeleteValue(){if(!this.searchEl.value.length&&this.selectedValue&&this.selectedValue.length&&this.clearable){let a=null;this.multiple&&(a=[...this.selectedValue.slice(0,this.selectedValue.length-1)]),this.updateValue(a)}},optionExists(a){return this.optionList.some(w=>this.optionComparator(w,a))},normalizeOptionForSlot(a){return typeof a=="object"?a:{[this.label]:a}},pushTag(a){this.pushedTags.push(a)},onEscape(){this.search.length?this.search="":this.searchEl.blur()},onSearchBlur(){if(this.mousedown&&!this.searching)this.mousedown=!1;else{const{clearSearchOnSelect:a,multiple:w}=this;this.clearSearchOnBlur({clearSearchOnSelect:a,multiple:w})&&(this.search=""),this.closeSearchOptions();return}if(this.search.length===0&&this.options.length===0){this.closeSearchOptions();return}},onSearchFocus(){this.open=!0,this.$emit("search:focus")},onMousedown(){this.mousedown=!0},onMouseUp(){this.mousedown=!1},onSearchKeyDown(a){const w=G=>(G.preventDefault(),!this.isComposing&&this.typeAheadSelect()),s={8:G=>this.maybeDeleteValue(),9:G=>this.onTab(),27:G=>this.onEscape(),38:G=>(G.preventDefault(),this.typeAheadUp()),40:G=>(G.preventDefault(),this.typeAheadDown())};this.selectOnKeyCodes.forEach(G=>s[G]=w);const A=this.mapKeydown(s,this);if(typeof A[a.keyCode]=="function")return A[a.keyCode](a)}}},p_=["dir"],d_=["id","aria-expanded","aria-owns"],g_={ref:"selectedOptions",class:"vs__selected-options"},__=["disabled","title","aria-label","onClick"],v_={ref:"actions",class:"vs__actions"},w_=["disabled"],y_={class:"vs__spinner"},m_=["id"],x_=["id","aria-selected","onMouseover","onClick"],b_={key:0,class:"vs__no-options"},A_=ze(" Sorry, no matching options. "),O_=["id"];function S_(a,w,s,A,G,T){const K=Rg("append-to-body");return fn(),Rn("div",{dir:s.dir,class:Hi(["v-select",T.stateClasses])},[$n(a.$slots,"header",Un(zn(T.scope.header))),N("div",{id:`vs${s.uid}__combobox`,ref:"toggle",class:"vs__dropdown-toggle",role:"combobox","aria-expanded":T.dropdownOpen.toString(),"aria-owns":`vs${s.uid}__listbox`,"aria-label":"Search for option",onMousedown:w[1]||(w[1]=C=>T.toggleDropdown(C))},[N("div",g_,[(fn(!0),Rn(Ss,null,Cs(T.selectedValue,(C,$)=>$n(a.$slots,"selected-option-container",{option:T.normalizeOptionForSlot(C),deselect:T.deselect,multiple:s.multiple,disabled:s.disabled},()=>[(fn(),Rn("span",{key:s.getOptionKey(C),class:"vs__selected"},[$n(a.$slots,"selected-option",Un(zn(T.normalizeOptionForSlot(C))),()=>[ze(Gi(s.getOptionLabel(C)),1)]),s.multiple?(fn(),Rn("button",{key:0,ref_for:!0,ref:xn=>G.deselectButtons[$]=xn,disabled:s.disabled,type:"button",class:"vs__deselect",title:`Deselect ${s.getOptionLabel(C)}`,"aria-label":`Deselect ${s.getOptionLabel(C)}`,onClick:xn=>T.deselect(C)},[(fn(),Mi(Wi(T.childComponents.Deselect)))],8,__)):$i("",!0)]))])),256)),$n(a.$slots,"search",Un(zn(T.scope.search)),()=>[N("input",Ts({class:"vs__search"},T.scope.search.attributes,Pg(T.scope.search.events)),null,16)])],512),N("div",v_,[Ui(N("button",{ref:"clearButton",disabled:s.disabled,type:"button",class:"vs__clear",title:"Clear Selected","aria-label":"Clear Selected",onClick:w[0]||(w[0]=(...C)=>T.clearSelection&&T.clearSelection(...C))},[(fn(),Mi(Wi(T.childComponents.Deselect)))],8,w_),[[Ls,T.showClearButton]]),$n(a.$slots,"open-indicator",Un(zn(T.scope.openIndicator)),()=>[s.noDrop?$i("",!0):(fn(),Mi(Wi(T.childComponents.OpenIndicator),Un(Ts({key:0},T.scope.openIndicator.attributes)),null,16))]),$n(a.$slots,"spinner",Un(zn(T.scope.spinner)),()=>[Ui(N("div",y_,"Loading...",512),[[Ls,a.mutableLoading]])])],512)],40,d_),hr(Dg,{name:s.transition},{default:Bg(()=>[T.dropdownOpen?Ui((fn(),Rn("ul",{id:`vs${s.uid}__listbox`,ref:"dropdownMenu",key:`vs${s.uid}__listbox`,class:"vs__dropdown-menu",role:"listbox",tabindex:"-1",onMousedown:w[2]||(w[2]=Es((...C)=>T.onMousedown&&T.onMousedown(...C),["prevent"])),onMouseup:w[3]||(w[3]=(...C)=>T.onMouseUp&&T.onMouseUp(...C))},[$n(a.$slots,"list-header",Un(zn(T.scope.listHeader))),(fn(!0),Rn(Ss,null,Cs(T.filteredOptions,(C,$)=>(fn(),Rn("li",{id:`vs${s.uid}__option-${$}`,key:s.getOptionKey(C),role:"option",class:Hi(["vs__dropdown-option",{"vs__dropdown-option--deselect":T.isOptionDeselectable(C)&&$===a.typeAheadPointer,"vs__dropdown-option--selected":T.isOptionSelected(C),"vs__dropdown-option--highlight":$===a.typeAheadPointer,"vs__dropdown-option--disabled":!s.selectable(C)}]),"aria-selected":$===a.typeAheadPointer?!0:null,onMouseover:xn=>s.selectable(C)?a.typeAheadPointer=$:null,onClick:Es(xn=>s.selectable(C)?T.select(C):null,["prevent","stop"])},[$n(a.$slots,"option",Un(zn(T.normalizeOptionForSlot(C))),()=>[ze(Gi(s.getOptionLabel(C)),1)])],42,x_))),128)),T.filteredOptions.length===0?(fn(),Rn("li",b_,[$n(a.$slots,"no-options",Un(zn(T.scope.noOptions)),()=>[A_])])):$i("",!0),$n(a.$slots,"list-footer",Un(zn(T.scope.listFooter)))],40,m_)),[[K]]):(fn(),Rn("ul",{key:1,id:`vs${s.uid}__listbox`,role:"listbox",style:{display:"none",visibility:"hidden"}},null,8,O_))]),_:3},8,["name"]),$n(a.$slots,"footer",Un(zn(T.scope.footer)))],10,p_)}const qi=Ki(h_,[["render",S_]]),C_=Wg("",7),T_={id:"msg-template"},L_={class:"row"},E_={class:"col"},I_=N("label",null,"source",-1),R_={class:"col"},P_=N("label",null,"type",-1),B_=N("label",null,"$source.os",-1),D_={class:"language-js vp-adaptive-theme"},F_=N("button",{title:"Copy Code",class:"copy"},null,-1),M_=N("span",{class:"lang"},"js",-1),W_={class:"shiki shiki-themes github-light github-dark vp-code"},$_={class:"line"},U_={style:{"--shiki-light":"#24292E","--shiki-dark":"#E1E4E8"}},N_=N("p",null,[ze("从 "),N("code",null,"Demo"),ze(),N("a",{href:"http://demo.shmily.lqzh.me/#/query?searchType=%E6%B6%88%E6%81%AF&searchKey=-Reg:/*/",target:"_blank",rel:"noreferrer"},"链接"),ze(" 筛选查看")],-1),q_=N("p",null,[N("img",{src:$g,alt:"from demo web"})],-1),K_=JSON.parse('{"title":"数据文件-Msg 示例","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/msg/template/index.md","filePath":"guide/use/msg/template/index.md","lastUpdated":1702113381000}'),G_={name:"guide/use/msg/template/index.md"},V_=Object.assign(G_,{setup(a){Fg(async()=>{w=await fetch("https://demo.shmily.lqzh.me/json/msg/msg.json").then(C=>C.json());const K=w.reduce((C,$,xn,Ye)=>{let an=C.find(tn=>tn.source===$.source);an||(an={source:$.source,type:[]},C.push(an));let ue=an.type.find(tn=>tn.type===$.type);ue||(ue={type:$.type,os:[]},an.type.push(ue));const Yn=Object.keys($).find(tn=>tn.startsWith("$"));if(Yn){let tn=qg.get($,`${Yn}.os`);tn&&!ue.os.includes(tn)&&ue.os.push(tn)}return C},[]);s.push(...K)});let w=[];const s=Is([]),A=Is({source:"",type:"",os:""}),G=Mg(()=>{if(!A.source||!A.type)return[];const K=A.source.source,C=A.type.type,$=w.filter(xn=>xn.source===K&&xn.type===C);return A.type.os.length===0?$:$.filter(xn=>xn[`$${K}`].os===A.os)});function T(K){K==="source"?(A.type="",A.os=""):K==="type"&&(A.type.os.length===1?A.os=A.type.os[0]:A.os="")}return(K,C)=>(fn(),Rn("div",null,[C_,N("div",T_,[N("div",L_,[N("div",E_,[I_,hr(Ni(qi),{options:s,label:"source",modelValue:A.source,"onUpdate:modelValue":C[0]||(C[0]=$=>A.source=$),"onOption:selected":C[1]||(C[1]=$=>T("source"))},null,8,["options","modelValue"])]),N("div",R_,[P_,hr(Ni(qi),{options:A.source?A.source.type:[],label:"type",modelValue:A.type,"onUpdate:modelValue":C[2]||(C[2]=$=>A.type=$),"onOption:selected":C[3]||(C[3]=$=>T("type"))},null,8,["options","modelValue"])]),N("div",{class:Hi(["col",{disable:!A.type||A.type.os.length===0}])},[B_,hr(Ni(qi),{options:A.type?A.type.os:[],modelValue:A.os,"onUpdate:modelValue":C[4]||(C[4]=$=>A.os=$)},null,8,["options","modelValue"])],2)])]),N("div",D_,[F_,M_,N("pre",W_,[N("code",null,[N("span",$_,[N("span",U_,Gi(G.value.slice(0,1)),1)])])])]),N_,q_]))}});export{K_ as __pageData,V_ as default}; diff --git a/assets/guide_use_show.md.-wak-BBR.js b/assets/guide_use_show.md.0CIkNyD6.js similarity index 94% rename from assets/guide_use_show.md.-wak-BBR.js rename to assets/guide_use_show.md.0CIkNyD6.js index 273c8f0c..01c4f774 100644 --- a/assets/guide_use_show.md.-wak-BBR.js +++ b/assets/guide_use_show.md.0CIkNyD6.js @@ -1 +1 @@ -import{_ as e,c as o,o as a,R as t}from"./chunks/framework.6Zk1sI6T.js";const f=JSON.parse('{"title":"Show","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/show.md","filePath":"guide/use/show.md","lastUpdated":1702113017000}'),r={name:"guide/use/show.md"},h=t('

              Show

              显示 和 ModifyServer

              Demo
              ',5),i=[h];function s(l,d,n,c,_,m){return a(),o("div",null,i)}const S=e(r,[["render",s]]);export{f as __pageData,S as default}; +import{_ as e,c as o,o as a,R as t}from"./chunks/framework.6Zk1sI6T.js";const f=JSON.parse('{"title":"Show","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/show.md","filePath":"guide/use/show.md","lastUpdated":1702113381000}'),r={name:"guide/use/show.md"},h=t('

              Show

              显示 和 ModifyServer

              Demo
              ',5),i=[h];function s(l,d,n,c,_,m){return a(),o("div",null,i)}const S=e(r,[["render",s]]);export{f as __pageData,S as default}; diff --git a/assets/guide_use_show.md.-wak-BBR.lean.js b/assets/guide_use_show.md.0CIkNyD6.lean.js similarity index 84% rename from assets/guide_use_show.md.-wak-BBR.lean.js rename to assets/guide_use_show.md.0CIkNyD6.lean.js index c53c679b..fcf91140 100644 --- a/assets/guide_use_show.md.-wak-BBR.lean.js +++ b/assets/guide_use_show.md.0CIkNyD6.lean.js @@ -1 +1 @@ -import{_ as e,c as o,o as a,R as t}from"./chunks/framework.6Zk1sI6T.js";const f=JSON.parse('{"title":"Show","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/show.md","filePath":"guide/use/show.md","lastUpdated":1702113017000}'),r={name:"guide/use/show.md"},h=t("",5),i=[h];function s(l,d,n,c,_,m){return a(),o("div",null,i)}const S=e(r,[["render",s]]);export{f as __pageData,S as default}; +import{_ as e,c as o,o as a,R as t}from"./chunks/framework.6Zk1sI6T.js";const f=JSON.parse('{"title":"Show","description":"","frontmatter":{},"headers":[],"relativePath":"guide/use/show.md","filePath":"guide/use/show.md","lastUpdated":1702113381000}'),r={name:"guide/use/show.md"},h=t("",5),i=[h];function s(l,d,n,c,_,m){return a(),o("div",null,i)}const S=e(r,[["render",s]]);export{f as __pageData,S as default}; diff --git a/assets/guide_what-is.md.qmdUIfZU.js b/assets/guide_what-is.md.EXcVqvCg.js similarity index 97% rename from assets/guide_what-is.md.qmdUIfZU.js rename to assets/guide_what-is.md.EXcVqvCg.js index df1ea3d3..ae6d3715 100644 --- a/assets/guide_what-is.md.qmdUIfZU.js +++ b/assets/guide_what-is.md.EXcVqvCg.js @@ -1 +1 @@ -import{_ as t,c as e,o as a,R as o}from"./chunks/framework.6Zk1sI6T.js";const u=JSON.parse('{"title":"这是啥","description":"","frontmatter":{},"headers":[],"relativePath":"guide/what-is.md","filePath":"guide/what-is.md","lastUpdated":1702113017000}'),s={name:"guide/what-is.md"},i=o('

              这是啥

              一个悲伤的故事

              我想归档 QQ 微信 短信等记录为冷数据, 搜了一圈发现并没有符合以下条件的方案

              • QQ 微信 等记录能融合, 并用时间线查看
              • 支持搜索过滤查询
              • 可以给消息评论
              • 有图表分析

              然后开始自己造轮子, 以为很简单的项目, 陆陆续续搞了近 3 年, 主要是各种解密难度超乎想象~

              吐槽, 什么让摩尔定律停下脚步? 什么让手机电量锁死一天?

              手机忙得最多的就是加解密吧... 表情包都要加密 2 次呢

              总之我把 归档 这事 "导出" 和 "显示" 分离了, 导出叫 Get, 显示叫 Show, 中间用 <JSON>Msg 粘合

              少啰嗦,先看Demo

               

              最后

              不支持用户数据导出的公司都是耍流氓~

              Adun Toridas

              今天,我们将夺回我们的家园,夺回我们的遗产!

              ',13),l=[i];function h(r,p,c,m,d,n){return a(),e("div",null,l)}const g=t(s,[["render",h]]);export{u as __pageData,g as default}; +import{_ as t,c as e,o as a,R as o}from"./chunks/framework.6Zk1sI6T.js";const u=JSON.parse('{"title":"这是啥","description":"","frontmatter":{},"headers":[],"relativePath":"guide/what-is.md","filePath":"guide/what-is.md","lastUpdated":1702113381000}'),s={name:"guide/what-is.md"},i=o('

              这是啥

              一个悲伤的故事

              我想归档 QQ 微信 短信等记录为冷数据, 搜了一圈发现并没有符合以下条件的方案

              • QQ 微信 等记录能融合, 并用时间线查看
              • 支持搜索过滤查询
              • 可以给消息评论
              • 有图表分析

              然后开始自己造轮子, 以为很简单的项目, 陆陆续续搞了近 3 年, 主要是各种解密难度超乎想象~

              吐槽, 什么让摩尔定律停下脚步? 什么让手机电量锁死一天?

              手机忙得最多的就是加解密吧... 表情包都要加密 2 次呢

              总之我把 归档 这事 "导出" 和 "显示" 分离了, 导出叫 Get, 显示叫 Show, 中间用 <JSON>Msg 粘合

              少啰嗦,先看Demo

               

              最后

              不支持用户数据导出的公司都是耍流氓~

              Adun Toridas

              今天,我们将夺回我们的家园,夺回我们的遗产!

              ',13),l=[i];function h(r,p,c,m,d,n){return a(),e("div",null,l)}const g=t(s,[["render",h]]);export{u as __pageData,g as default}; diff --git a/assets/guide_what-is.md.qmdUIfZU.lean.js b/assets/guide_what-is.md.EXcVqvCg.lean.js similarity index 84% rename from assets/guide_what-is.md.qmdUIfZU.lean.js rename to assets/guide_what-is.md.EXcVqvCg.lean.js index 492f5c64..f42cc31c 100644 --- a/assets/guide_what-is.md.qmdUIfZU.lean.js +++ b/assets/guide_what-is.md.EXcVqvCg.lean.js @@ -1 +1 @@ -import{_ as t,c as e,o as a,R as o}from"./chunks/framework.6Zk1sI6T.js";const u=JSON.parse('{"title":"这是啥","description":"","frontmatter":{},"headers":[],"relativePath":"guide/what-is.md","filePath":"guide/what-is.md","lastUpdated":1702113017000}'),s={name:"guide/what-is.md"},i=o("",13),l=[i];function h(r,p,c,m,d,n){return a(),e("div",null,l)}const g=t(s,[["render",h]]);export{u as __pageData,g as default}; +import{_ as t,c as e,o as a,R as o}from"./chunks/framework.6Zk1sI6T.js";const u=JSON.parse('{"title":"这是啥","description":"","frontmatter":{},"headers":[],"relativePath":"guide/what-is.md","filePath":"guide/what-is.md","lastUpdated":1702113381000}'),s={name:"guide/what-is.md"},i=o("",13),l=[i];function h(r,p,c,m,d,n){return a(),e("div",null,l)}const g=t(s,[["render",h]]);export{u as __pageData,g as default}; diff --git a/assets/index.md.Am8pU6wq.js b/assets/index.md.Am8pU6wq.js new file mode 100644 index 00000000..52d256d3 --- /dev/null +++ b/assets/index.md.Am8pU6wq.js @@ -0,0 +1 @@ +import{_ as c,D as l,c as n,k as a,I as d,w as o,R as _,o as v,a as e,p,q as h}from"./chunks/framework.6Zk1sI6T.js";const f="/Shmily/assets/f1.3NEygoYJ.png",r="/Shmily/assets/f2.KmeCDYiN.png",m="/Shmily/assets/f3.BX_mJhSv.png",b="/Shmily/assets/f4.XBUdr08V.png",S="/Shmily/assets/f5.P7gBLjNP.png",g="/Shmily/assets/f6.Q6EQ9VbO.jpg",aa=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"SHMILY","text":"历史的归档","tagline":"QQ、Wechat、SMS、CallLog、Email……","image":{"src":"./favicon.png","alt":"icon"},"actions":[{"theme":"brand","text":"开始文档","link":"/guide/what-is"},{"theme":"alt","text":"Demo演示","link":"http://demo.shmily.lqzh.me/"}]}},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1702113381000}'),x={name:"index.md"},t=s=>(p("data-v-afa3b144"),s=s(),h(),s),u={id:"features"},T={class:"row"},w={class:"info"},y={class:"content"},P=t(()=>a("h2",{class:"title"},"类型多 平台全",-1)),I=t(()=>a("p",null,"QQ、MobileQQ、微信、通话记录、短信、照片视频、Email等各种类型",-1)),N=t(()=>a("p",{class:"tips"},"* 甚至 Nokia Symbian S60v3 的 MobileQQ 和 短信都可以!",-1)),V=t(()=>a("div",{class:"cover"},[a("img",{src:f,style:{"max-width":"240px"}})],-1)),A=_('

              以前导出的能合并

              支持将以前导出的数据和现在合并

              历史不再断代

              * 如2013年导出记录(2000-2013)可以
              和2020年导出记录(2007-2020)合并
              在同一时间线查看

              ',1),C={class:"row"},Q={class:"info"},E={class:"content"},k=t(()=>a("h2",{class:"title"},"支持搜索和筛选",-1)),D=t(()=>a("p",null,"关键词(支持正则)搜索",-1)),B=t(()=>a("p",{class:"tips"},"* 搜索支持正则,人物支持分组",-1)),M=t(()=>a("p",{class:"tips"},"* 极致优化,240M数据复杂搜索100ms内出结果",-1)),R=t(()=>a("div",{class:"cover"},[a("img",{src:m,style:{"max-width":"600px"}})],-1)),$=_('

              还有评论和引用

              时间的长河有感而发?添加一条评论或打上一个Tag吧

              引用的消息也会转化为双向链接可快速跳转

              * 评论也可以搜索哦

              ',1),q={class:"row"},J={class:"info"},L={class:"content"},O=t(()=>a("h2",{class:"title"},"图表与统计",-1)),Y=t(()=>a("p",null,"不想看看各种维度的大数据么?",-1)),j=t(()=>a("p",{class:"tips"},"* 评论里的 Tag 也有统计,开心的次数不能少",-1)),z=t(()=>a("div",{class:"cover"},[a("img",{src:S,style:{"max-width":"600px"}})],-1)),U=_('

              开发

              深入底层优化,240M数据纯前端静态处理

              你还想要归档钉钉?导出(Get)、显示(Show)分离,你可以在任意阶段发力

              标准化、模块化、组件化,开发更容易

              数据字段全导出,总有你能用上的

              数据库导出、解密转换、合并清洗全过程解耦,拆开都是小轮子,自己的车装上就能跑

              ',1);function X(s,G,H,K,W,F){const i=l("P");return v(),n("div",null,[a("div",u,[a("div",T,[a("div",w,[a("div",y,[P,a("div",null,[I,d(i,null,{default:o(()=>[e("PC、Android、iOS 等各种平台")]),_:1}),N])])]),V]),A,a("div",C,[a("div",Q,[a("div",E,[k,a("div",null,[D,d(i,null,{default:o(()=>[e("时间、类型、设备、人物、通话时长等筛选")]),_:1}),B,M])])]),R]),$,a("div",q,[a("div",J,[a("div",L,[O,a("div",null,[Y,d(i,null,{default:o(()=>[e("纯表情回复的数量与对比都有哦!")]),_:1}),j])])]),z]),U])])}const ta=c(x,[["render",X],["__scopeId","data-v-afa3b144"]]);export{aa as __pageData,ta as default}; diff --git a/assets/index.md.Am8pU6wq.lean.js b/assets/index.md.Am8pU6wq.lean.js new file mode 100644 index 00000000..6b2b0038 --- /dev/null +++ b/assets/index.md.Am8pU6wq.lean.js @@ -0,0 +1 @@ +import{_ as c,D as l,c as n,k as a,I as d,w as o,R as _,o as v,a as e,p,q as h}from"./chunks/framework.6Zk1sI6T.js";const f="/Shmily/assets/f1.3NEygoYJ.png",r="/Shmily/assets/f2.KmeCDYiN.png",m="/Shmily/assets/f3.BX_mJhSv.png",b="/Shmily/assets/f4.XBUdr08V.png",S="/Shmily/assets/f5.P7gBLjNP.png",g="/Shmily/assets/f6.Q6EQ9VbO.jpg",aa=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"SHMILY","text":"历史的归档","tagline":"QQ、Wechat、SMS、CallLog、Email……","image":{"src":"./favicon.png","alt":"icon"},"actions":[{"theme":"brand","text":"开始文档","link":"/guide/what-is"},{"theme":"alt","text":"Demo演示","link":"http://demo.shmily.lqzh.me/"}]}},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1702113381000}'),x={name:"index.md"},t=s=>(p("data-v-afa3b144"),s=s(),h(),s),u={id:"features"},T={class:"row"},w={class:"info"},y={class:"content"},P=t(()=>a("h2",{class:"title"},"类型多 平台全",-1)),I=t(()=>a("p",null,"QQ、MobileQQ、微信、通话记录、短信、照片视频、Email等各种类型",-1)),N=t(()=>a("p",{class:"tips"},"* 甚至 Nokia Symbian S60v3 的 MobileQQ 和 短信都可以!",-1)),V=t(()=>a("div",{class:"cover"},[a("img",{src:f,style:{"max-width":"240px"}})],-1)),A=_("",1),C={class:"row"},Q={class:"info"},E={class:"content"},k=t(()=>a("h2",{class:"title"},"支持搜索和筛选",-1)),D=t(()=>a("p",null,"关键词(支持正则)搜索",-1)),B=t(()=>a("p",{class:"tips"},"* 搜索支持正则,人物支持分组",-1)),M=t(()=>a("p",{class:"tips"},"* 极致优化,240M数据复杂搜索100ms内出结果",-1)),R=t(()=>a("div",{class:"cover"},[a("img",{src:m,style:{"max-width":"600px"}})],-1)),$=_("",1),q={class:"row"},J={class:"info"},L={class:"content"},O=t(()=>a("h2",{class:"title"},"图表与统计",-1)),Y=t(()=>a("p",null,"不想看看各种维度的大数据么?",-1)),j=t(()=>a("p",{class:"tips"},"* 评论里的 Tag 也有统计,开心的次数不能少",-1)),z=t(()=>a("div",{class:"cover"},[a("img",{src:S,style:{"max-width":"600px"}})],-1)),U=_("",1);function X(s,G,H,K,W,F){const i=l("P");return v(),n("div",null,[a("div",u,[a("div",T,[a("div",w,[a("div",y,[P,a("div",null,[I,d(i,null,{default:o(()=>[e("PC、Android、iOS 等各种平台")]),_:1}),N])])]),V]),A,a("div",C,[a("div",Q,[a("div",E,[k,a("div",null,[D,d(i,null,{default:o(()=>[e("时间、类型、设备、人物、通话时长等筛选")]),_:1}),B,M])])]),R]),$,a("div",q,[a("div",J,[a("div",L,[O,a("div",null,[Y,d(i,null,{default:o(()=>[e("纯表情回复的数量与对比都有哦!")]),_:1}),j])])]),z]),U])])}const ta=c(x,[["render",X],["__scopeId","data-v-afa3b144"]]);export{aa as __pageData,ta as default}; diff --git a/assets/index.md.K3KJT1f7.js b/assets/index.md.K3KJT1f7.js deleted file mode 100644 index 6caf8362..00000000 --- a/assets/index.md.K3KJT1f7.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as c,D as l,c as n,k as t,I as d,w as o,R as _,o as v,a as e,p as b,q as p}from"./chunks/framework.6Zk1sI6T.js";const h="/Shmily/assets/f1.3NEygoYJ.png",r="/Shmily/assets/f2.KmeCDYiN.png",m="/Shmily/assets/f3.BX_mJhSv.png",S="/Shmily/assets/f4.XBUdr08V.png",f="/Shmily/assets/f5.P7gBLjNP.png",g="/Shmily/assets/f6.Q6EQ9VbO.jpg",tt=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"SHMILY","text":"历史的归档","tagline":"QQ、Wechat、SMS、CallLog、Email……","image":{"src":"./favicon.png","alt":"icon"},"actions":[{"theme":"brand","text":"开始文档","link":"/guide/what-is"},{"theme":"alt","text":"Demo演示","link":"http://demo.shmily.lqzh.me/"}]}},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1702113017000}'),x={name:"index.md"},s=a=>(b("data-v-12708b6b"),a=a(),p(),a),u={id:"features"},T={class:"row"},w={class:"info"},y={class:"content"},P=s(()=>t("h2",{class:"title"},"类型多 平台全",-1)),I=s(()=>t("p",null,"QQ、MobileQQ、微信、通话记录、短信、照片视频、Email等各种类型",-1)),N=s(()=>t("p",{class:"tips"},"* 甚至 Nokia Symbian S60v3 的 MobileQQ 和 短信都可以!",-1)),V=s(()=>t("div",{class:"cover"},[t("img",{src:h,style:{"max-width":"240px"}})],-1)),A=_('

              以前导出的能合并

              支持将以前导出的数据和现在合并

              历史不再断代

              * 如2013年导出记录(2000-2013)可以
              和2020年导出记录(2007-2020)合并
              在同一时间线查看

              ',1),C={class:"row"},Q={class:"info"},E={class:"content"},k=s(()=>t("h2",{class:"title"},"支持搜索和筛选",-1)),D=s(()=>t("p",null,"关键词(支持正则)搜索",-1)),B=s(()=>t("p",{class:"tips"},"* 搜索支持正则,人物支持分组",-1)),M=s(()=>t("p",{class:"tips"},"* 极致优化,240M数据复杂搜索100ms内出结果",-1)),R=s(()=>t("div",{class:"cover"},[t("img",{src:m,style:{"max-width":"600px"}})],-1)),$=_('

              还有评论和引用

              时间的长河有感而发?添加一条评论或打上一个Tag吧

              引用的消息也会转化为双向链接可快速跳转

              * 评论也可以搜索哦

              ',1),q={class:"row"},J={class:"info"},L={class:"content"},O=s(()=>t("h2",{class:"title"},"图表与统计",-1)),Y=s(()=>t("p",null,"不想看看各种维度的大数据么?",-1)),j=s(()=>t("p",{class:"tips"},"* 评论里的 Tag 也有统计,开心的次数不能少",-1)),z=s(()=>t("div",{class:"cover"},[t("img",{src:f,style:{"max-width":"600px"}})],-1)),U=_('

              开发

              深入底层优化,240M数据纯前端静态处理

              你还想要归档钉钉?导出(Get)、显示(Show)分离,你可以在任意阶段发力

              标准化、模块化、组件化,开发更容易

              数据字段全导出,总有你能用上的

              数据库导出、解密转换、合并清洗全过程解耦,拆开都是小轮子,自己的车装上就能跑

              ',1);function X(a,G,H,K,W,F){const i=l("P");return v(),n("div",null,[t("div",u,[t("div",T,[t("div",w,[t("div",y,[P,t("div",null,[I,d(i,null,{default:o(()=>[e("PC、Android、iOS 等各种平台")]),_:1}),N])])]),V]),A,t("div",C,[t("div",Q,[t("div",E,[k,t("div",null,[D,d(i,null,{default:o(()=>[e("时间、类型、设备、人物、通话时长等筛选")]),_:1}),B,M])])]),R]),$,t("div",q,[t("div",J,[t("div",L,[O,t("div",null,[Y,d(i,null,{default:o(()=>[e("纯表情回复的数量与对比都有哦!")]),_:1}),j])])]),z]),U])])}const st=c(x,[["render",X],["__scopeId","data-v-12708b6b"]]);export{tt as __pageData,st as default}; diff --git a/assets/index.md.K3KJT1f7.lean.js b/assets/index.md.K3KJT1f7.lean.js deleted file mode 100644 index 1e2c8a52..00000000 --- a/assets/index.md.K3KJT1f7.lean.js +++ /dev/null @@ -1 +0,0 @@ -import{_ as c,D as l,c as n,k as t,I as d,w as o,R as _,o as v,a as e,p as b,q as p}from"./chunks/framework.6Zk1sI6T.js";const h="/Shmily/assets/f1.3NEygoYJ.png",r="/Shmily/assets/f2.KmeCDYiN.png",m="/Shmily/assets/f3.BX_mJhSv.png",S="/Shmily/assets/f4.XBUdr08V.png",f="/Shmily/assets/f5.P7gBLjNP.png",g="/Shmily/assets/f6.Q6EQ9VbO.jpg",tt=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"name":"SHMILY","text":"历史的归档","tagline":"QQ、Wechat、SMS、CallLog、Email……","image":{"src":"./favicon.png","alt":"icon"},"actions":[{"theme":"brand","text":"开始文档","link":"/guide/what-is"},{"theme":"alt","text":"Demo演示","link":"http://demo.shmily.lqzh.me/"}]}},"headers":[],"relativePath":"index.md","filePath":"index.md","lastUpdated":1702113017000}'),x={name:"index.md"},s=a=>(b("data-v-12708b6b"),a=a(),p(),a),u={id:"features"},T={class:"row"},w={class:"info"},y={class:"content"},P=s(()=>t("h2",{class:"title"},"类型多 平台全",-1)),I=s(()=>t("p",null,"QQ、MobileQQ、微信、通话记录、短信、照片视频、Email等各种类型",-1)),N=s(()=>t("p",{class:"tips"},"* 甚至 Nokia Symbian S60v3 的 MobileQQ 和 短信都可以!",-1)),V=s(()=>t("div",{class:"cover"},[t("img",{src:h,style:{"max-width":"240px"}})],-1)),A=_("",1),C={class:"row"},Q={class:"info"},E={class:"content"},k=s(()=>t("h2",{class:"title"},"支持搜索和筛选",-1)),D=s(()=>t("p",null,"关键词(支持正则)搜索",-1)),B=s(()=>t("p",{class:"tips"},"* 搜索支持正则,人物支持分组",-1)),M=s(()=>t("p",{class:"tips"},"* 极致优化,240M数据复杂搜索100ms内出结果",-1)),R=s(()=>t("div",{class:"cover"},[t("img",{src:m,style:{"max-width":"600px"}})],-1)),$=_("",1),q={class:"row"},J={class:"info"},L={class:"content"},O=s(()=>t("h2",{class:"title"},"图表与统计",-1)),Y=s(()=>t("p",null,"不想看看各种维度的大数据么?",-1)),j=s(()=>t("p",{class:"tips"},"* 评论里的 Tag 也有统计,开心的次数不能少",-1)),z=s(()=>t("div",{class:"cover"},[t("img",{src:f,style:{"max-width":"600px"}})],-1)),U=_("",1);function X(a,G,H,K,W,F){const i=l("P");return v(),n("div",null,[t("div",u,[t("div",T,[t("div",w,[t("div",y,[P,t("div",null,[I,d(i,null,{default:o(()=>[e("PC、Android、iOS 等各种平台")]),_:1}),N])])]),V]),A,t("div",C,[t("div",Q,[t("div",E,[k,t("div",null,[D,d(i,null,{default:o(()=>[e("时间、类型、设备、人物、通话时长等筛选")]),_:1}),B,M])])]),R]),$,t("div",q,[t("div",J,[t("div",L,[O,t("div",null,[Y,d(i,null,{default:o(()=>[e("纯表情回复的数量与对比都有哦!")]),_:1}),j])])]),z]),U])])}const st=c(x,[["render",X],["__scopeId","data-v-12708b6b"]]);export{tt as __pageData,st as default}; diff --git a/assets/node-dependencies.A7ijJX1J.png b/assets/node-dependencies.A7ijJX1J.png new file mode 100644 index 0000000000000000000000000000000000000000..006a74375c8deb74e9972c29ca5c2bb706a5209b GIT binary patch literal 99884 zcmZs?WmH_t)&-gb3GS}J-JKx8LxA9}jk~+M6VkyN2yP7ocbCT9U4py2zdq;Q`@Q$$ zjnP)St47IQw%3|7O6j`{DiRUWyLazUWxq^{SYiy|vn@Sd6U1ob*(SK^^S(*};dlPMJuNvNQZqmz?W92}=4g?T{|M!LUUg9R@ z|80s8l6O3I~M$%X`%6l3WMIKWEOQ|Bb8=u&g1oprT<&ZCi*`ep6hLu z6&Rn}gZ?`;XgpNPoRM~aO?WonNZ2^k+W3D1WC@r#RXHde)=OyN60m60u>Wu6-A2IF zXvC{q4Fx3lxw(?4|LuYnP&pvq8wv+kObZ7?MK#;=zr`o8Ync{mh)V?h#F(Z06l68f z`~OZKqAtZqBd=+Mgd#8h|D6K>Ow~a|(?Dfp=KS9tWnodeVM|hFr9!>Dx|+UX&cYKE zD#njA*cbEu_Y`DPl|H9vC?hzzOM_#O#n;*-!0Zu?O%!UNf~*8=l#x+@9vCC`YCA~z zbcMaTAwqUCw{=sTvXhc43G4BKY7LjIeCb`@NGkAPiD$O&zsqL`37jt4Xs|#JK3hxL zvO(@|Q{@29zg=a4VWCY;nU+EnIJrxU|o+(@4R+~aPuu6;n+-Xo^u%+7(y29%Xx7N(Q`xjI=}n2Q5sK!8zIU0h}9H`p7mi0#1Z zPViSHc0KtWc0R{mSu2^`AFodQUm>9mSZRMF6XUZ7^TNT{*btPiYfVY#k;GM-0;%p$ zrVA1v04wCH3m_GpRis^H2u!e)F8|+SZL4_HtG+mZurX|`o1iU$-zE*GpGHOaUcPL} z$#Pd`xA?7Z8V;PJ7}`u`+MCZz&469#7qDbr$k z-+Wu$x?&#!N?>MjA8W|?5@~4{Q>ef@xa|DGrnmYEWay#&pSogB^yIe(ypfhIR$G&Ol7 zyK@XQo7&NCe381WR9Zc&8GO&e2GD1;iMb#-60P^l|J_xOcw`M%>)v?$RH>}pGs;Kw zlKL5i+!*;YT&BM~CgIjGpGGS>x^vBjaSBc))>@UlMPxmrS@yeNU{~8&Qr_-KP`Jz! zkB&ha;CIu`JMB6Sd;R_|e;a%ntYMDl{s52Oar{@9us=^8khRQ~Ca7C1%~L8%(IRrp z>(r^Ge<-6f;d0vKyWy~9M{V$X%cMKvgr1CaGr%< z_@2c&|N1|1*`4;Bq6;q7DCX_V)&HEYU-_l3zyM3#)Ef!7dA00Ng6jM-h(hT^}RLmm7rTq^BPee-M1FKmQ`jc5(eSU$1ojtHAmC)AK?k9zx;4F`~ zWtH~b4^pVV(P&_uD$_0ckH2~N)#~x~PLa(478aHgGu@&X%Njj3HMP5M3F%;ZvAFyq zq(Wv2NHA|PyQr`b@Wf9hC@Q7&wes-MZK3iG_0kVT#jcZ0q2@2Zn`<_?nuCK=dV~34 z@{g(T^`DEp!$&JD1=Gj1R=9X`1@-jKAtEb>m28!KL3Sbv^i!(sM^xCiJMs^AC+hkp z{f*`dAYME8>0}lYeRFDVZX7YOuKV*1nC?&kA9o*6n)G@C$>k%DUWtaf-B4^ts$|-~ zr}y9t3lG#!nR#+<<3@5~T|T z^BF&!!1N-Mf7MS*%B$I90e1an$vQ;knGzmm^Dz}W`B+aMiv4S=(BJ$)*)LCO{UDB! z--NUof{^R@*l|y;fm>28-I3PLt{2 zv!V!!8=Gob@aDf(EVWZSODGHZi5;Kar5s{#MLD~zthGSyFKK2Ajr0nlt&NR)hlpqu z(z|?LKWOQ)$$D9*jG={7#xqoi!WqW1$%vPu zqXOHGezn5VUT}vLTdNG5kb%?MIV9UvU#H#faiW~Vgbdq5HnE=4958*(PN6EMC$+x1*AFWyFXy9`KeFK67{*l)R&K{=QsD4J$sMGZ465-=7wIj zw%h~}q0q?5p~k^;iX8ZMDd-z4iJ3~Fm7R^qKUCK!3q}Zi)FW3M#JkU6Hmh~ zGUD|_K;bl1^1DG4ar)r@^4Qt%aEGu|tE>l&oIbMi@FbD{=?`_v5&zoZ*RrBAMO66j zd9h#+5Wt$4n9TN3X7a{hZr6%u+C<0dJ4;+E8+K<(=cf8FJI>W2c3Np^0fatPg5 z9H7;`nxQF?COA6{)YCb!MpoG74LLma0x4#_ry`moLZv__?+&=6zW1Fc5Nq*}<$F}h zSnvDCFv?$sW=?Wz~Ah z`^dBG- z5AbA7&4=>SK>2-OM*s+&{C#Om3V_$P@vuZOO`zs4k3**QlaN8HXO#J0vX{i0t!EU<3pIpAgp^q+K_3rGNR7NG_+kf5{VpvaDZsPpc1NkaQXE;jT z;J2430CZ)ENf>PlmQ?tns5mn+)Dyb*BIPw3?zAdhar@*m!yx^N#pOsd6EAoBvay-m z*m9b$VSElZ@lP}qL5aUZ;Ya0d9&OOINJSA7peB1Bp%tGc_%0f^gk=MToCnW-lW6vj zfkNbnS)(I|@j+VYn?B^1Sx1ihD3PP9YjI~{ZxAuY zU$%zr^I#1h1EpqqVN5m~3CK$#ewyK%l(VtKp5z`L{g^Q8e9%$~PO^WV#9+mjCZK@e zKEJE{ki*c?&+}(AWW{)M3oPk)Ir4Le-^-#SI(~I`wBVwVnJFUi7I!6HN3!&;vsd!H zIB8BFyfh^%GKesZwqaaptH&Z{gk4z)Ro~5Q?yt@>VS8!-M1f0)vp( zt@zFR%nsi$D!T7^j$O}=Z|9iHcO*)F?aZ!M?JGQpEK6vRUAoM{Lt37JOw!$i!cODG zXnII;oB7C>iPe@87J!iNHNnnMve>$aaKX#qw8dqL=dFCIRrE7`>{W}$6dBr>GYM&*yXP>VI88*6|(#5>RZUO<0hf?47v6bNM_6 zmL!$t`7V3$*V&P@I|v}8llcra@}ZVQUnaqC2F5#7`_%iRxw2+D)Mv{iS<@Rf2`B6M zkRQ2y5=|kcl3X|>sNT}A1;BhD1DK~<)6biuk-U!ZO0^irBP8XUu4 zx39_l>I7fz`Ow|}WO!XheM^2FkB}~ywJKrb+8>nlre=q!cU%J#Qu3C&WL!9X6Mw%` z@|u>J;-YP=zIS@xcEzhl{LE&LE*$z9(&NyvKC!-_6WMb=D2Y`lAUEE(1Bh@cP|ySs zq=7{kBF6DkMMO$uyUw{f`hAa{(VAR#zPt$X&tT60nl}p85428(zSid$a#Kk#LD5@U|df;FGCay0`sJDteUOqLz;Gj&eg&AnrrslK*unDO>Z) zujtI zbn-AC&k?!F*nhA5l(TpG+KXNJV*YOEMG(d(O$|FY>6RF)ofzyJ-q4W*xQn?(8I8Z>5vZNu z$NnjB&6kwvCnnqXSktd#5K?rA?g$`^U)2xKG1vGU>Lm*4ZLx6LJb>Z}3krpny{6WkNDd6mE5YCYuk(X$mnRW3#C4Cp|LwGXHlrLt@$AYh5jwGx@~nv#E0 zhfYL0s`-}LmNI|CxlEJ6FZi&lOTn11t?!gJ5zdZlzIa3PVaedzj?8^Mp}a=2iu1i% z_45I3g0nN>&;|tn3h6AKy)HiBWHd4b^MUxTcS8DhW20?IQ(|K9%KO5N0VrD-6FPBP zkl@JqtlBqX$yGo+;=v4opZ@^1b0jUAnJlU=@bA24#hr1Jg>f{4=>6#^Ak|!~Xpch` z5*{}m3=KKF=9P?8k{aWdC;toORMRL?F}uTQ}iW;g0*xZwa$MOTQ7BJi^Z zEA*7X_BR*&KdMG$wy1{yLum(=X%L;6w;@iF>(~N!Bw=&}EWcU?302hm&%z;;^Bp*S zkga#&^Xbv0N#2{At!V5Gl}bxOPO%|VyL)>P3KG_U!5vPJt0__1Vqww~99%SSVq|>x zA7Ulk7`CL|SgxxHH6dgKYX_yJD9~m+8=GOfI8gjSUH97e^k$-W{7eAP%`RS80NyD7 zfmXg%4=Lc7EF#)!Dl`i@gDQh*M*_s&a!M9c=rWc&Hjtq;!J97RVI31r4*^R)?J(@R zJ;Jq2py<}ee!&Dr5P8r4F-F(Jm>&@rYAGHiVtgKvOrIS;Lx7+E9m$mBv$gb#wYrU_ zg04X9nTkWgPP2K;Fs)H9YsI7_s!z3hins7P`89aqeZWfts_G9mb^V)Er3%sJB!`&w z3fsQe1k9{dTxY~DEz6mfmtQ(UhI!&JY3sl-8zytv(PeDq8JR&@6|WJ2>}I2i5*KVr zAPK2dK2G*T3B%r1`U=sehX{B|YWWp8O6G@j;xu5z@!*JoGh;mueZ=3CbS1#DAp#B{ z4mH+{B;Vqz2P{H^5s^M!{4LxCLf0_ip1RyM^$=fblx#mQi&6pQjn(@EX>?S4kfe?- zaV$=50$9E6+iy794JRAiCAHG9`kHwYuPhC)avLw>%LH+Nfpbsl`csb8>JnJ*>T_*I zE%MocISya*R?`i^!h;WCef5I12T6P$TIQvBYxA|m4EPG!zePeqIJnBnQbDbR7q){u zEu#F!ChGiVGJo8mai>glYbK=+oYqL_hT!g~q<|R0_#mIk`OU>NNOq;wOZRnmgrTL= zILw}X=lyoDU4rHYXZ7EfGvYq2s<1BnH#`5(Z`d+M8zYDW)ATT7Z%v4Ft!=$GNC^(N z25o3!cf}@^uFvrUX2;PV$*+vgYpb-_O@#cJt-^}-;{P@s3#hKaw(~zo_VEQg^3T-Y z^*)q6UC2jDmi)Y9#{Mv!UA>a>V?M7Hd@QxJU)Yy^lG-0yI%g>D8ZWjK&y`SVamL0JaJLAvAt2t=)&p3>P zwL(0J$c^1KrPLQll)@j`+1U?T2g1@W+8e1r3N0J6Cdn*!mH0h%40tTeAS8kw2^rxFw4iK5mdH@JcqBYx<{nwH}9mu8-ukP9lO_R9Hqx zj!9_Kz7odVq8<$#X%_%2j1S{Q6m4_peoJi63YzHYwQ=FZ0;nhLw?H><+Vs z-O%M<=HUVyoT4e&U*u6Pmd0>M4dL_ln_$je_`_K>D>^^-Xd-lf`bV+8a>%Z0CNpr5 zJo%jTDiBG3zQ(Y>efxM6X28zFjd&-zau-Nq?qf6I&ODa#T^OrvCT&akUgRPz!HyFW>FW`D}^#>TFf#13F&v&O!^_9ZFh z(C^oKKb&DU&Jl+%N)S;#MLcP7lz&cMVGNw)>dV!BzY*XG^V+;g@tq0w>~t+e{RQ*h zZ(4ff$qs5fj83sw|Vie_Z2zw$~j1= zovfU-M68S7!+!SqVFHHkQob<5|53^S^5}L1&M^+Z99`bxc)hQKGtWYnY7?90sJ9O% zkV>IoR=!F30nXxOVP;_gR=JxbR{BSz91V$C=BokM+Tm#t^YeQ!-f+ zeB9w{3#??FAc0xJPuR1wwT<6wD*L-}D_uBz^(@S#uf)TQ@N zRtfkW5y>8<?{VSM5IOh2&&V;`!$}#f+-Zb zPS?5}cycXCm~r;iOu`<5U2xPT_9h#h8wwcT`0;-pyk z4dgv8r7B?cX?R{Yo80Oo@*f$3G|%8YP8_m$UZZOeYNLr7n%^#SZ)+Cv##Hf26!*pYgpHJ4Dq7YjWD0QfRGJGF+y4 zZf+*sXnDSptWlAcsFB8Ye6x@!bnP&%Iv=+`j7jI?Gu|jTs;nQU(rFJ3I_|QaH6nvg z9*V)(%LCQiDL(I6MPuze8A(mXR^xN?HfvhOr%;Vcw!Emc#}P3)$v)4K@^oTHG1TB0 z5A4f&FFTaZ4O{GkF^t_^a1Lwm zL+N!R71JCAay&R=Kvc734;g(T?fvaQi|E`L34tR$OP=chOTA`Fe}YM|we5y8CSjkd zDwBCKhOyk`fio9`IO7VWj1IvXv7!>{b;# zr}@YkIa>ie=fqSh@*hebe!r&3So{gP3h>4x}Ju(_NDG586WT7664wy&(5vZYxDXW!4 zj{A1WUyb|OKqp&l9h#G2<@+{69C=&Ed~wkOM}n6tP?eb~8|6y|ztR~d=ge^t63OR%7RW+W%9&&K8Xrb8rG0(rfGwEp9Q`vO{ng8?>Yn#h7jj|EmzrJ=zu{A z6X|LXx!b;plsC;uU4f&$C_W>!BK&pHuUGYSHoqS*MjED{_&w;}_`Z`A`^_&#%IEjZ zCOf9x^w^FKRgLnea(%4%$7{hqt?Y=RJJiCd_r_2QfhaaXpc&c!8_WQqgRa^nLFO5R|RWrV0( zj#s*V2{?AHh}2$w?WvUZGHXA$?UDNEr}{++jtpn}9iQ^uufH)UQA8LM>qh71iMo%la9d>7}cqEPPeSftjIo7c-EM-@9&>i+ij z=;`0dg!$tV$h$tz>fN0Mtz|`#U#qk_p0;*xhd#|GQ4|ywN=;fXD50Fr!+OyxX|V?f z8+Ja_vF{DVIB#l8j_W<%vKIN_ZS14*Y3>kn>Te^9^-{mVe-w@JAX#dM?Zs!JJc-W| z!G#wk$ygNo0V**lCELxo#zlP>{e=BQhrLhaNg^7!RXeq2MpUn(X@8|S?WNZrr2pd^ zTke(|=BLlmNeX%O3UNQ@c#UxkCu;CLS;&B1m$(vwZmx+@PC8mr@<0r@7aKeu|FF== zdj>>Bk35sMzRT&#KGC-yGTXB8=1ydjIf$c)pV*^tQ+SO|ZZa-)(=*}ap{YA zXj*{;q}D2I5TEV$DaDt2xUjI!@p>d;T<=X8G)*&nDkfe^WFEmrq>ZNP(w|<~L)IMLnz|q;J9+XBHVX>6u_@ z^&@-4n>dFQiVY~8R3BQGqpE~=H}VaYV>6pDIx6%dcV`d@Y~TnnHGQL)xv?dTuyW?h zp)id+=Ic-QLanWd02oBldP*M-Hv8Ver!T2Py&GPq@8&9&Lp$dG^oOtFpNrxC0wUt_ zt%p(JOJZInE#I)DJAH(kY?WT3_xg_e%(UoY9z(K8@%0wJAu~GtVLCT!^IJj#^QBG) zCzlxw1DTkW~blyPIY~SW5U7eeqnIWa0Skf%Yp9nv*(bYm74@5OO@^wH|w0AIiKs|8h zCL{l}`(C1(2$p`3-7Q3~y-TWcP!<`6o#xJw)eyP1S=(cikHWwl2Vcz;&C({fbPW z(Z2U?b_F=Pw$qS!&Sbov#W^o$a@a>L@k*&D6eo@0i;=awP%{GYxZSVrvjH+g=G7Ms zw7AhzOds93uqG~St^AF$sb*?w)v{r<+}H|6Yt3O_l&$uS zb?Qp2zY)0Xv2|zJBrbllnRob|efAKEvB&ob(RJ(G5X50YRydj&Qe0zh(j86ZnMXCo zy`Lk#Zkk;0*7K7?bw_CiwSjrkT#IQNKR24JdQ%i-X7PI8&ag^@2XN+!3+Yox*|=-g ziRw?LzocX(%=+#bY<`#Vx$|>C7k2fVu*F;?yQKb z%`)j$vR$WW`fK;4Y`STSly&kqGP99=?rN_DnVoAE_7mB_@!pAt10RAM#~?2{Ceij~mH%g!3?0FyAw z&{SFgF>}=?j?*(gqP>d84+W*ho$)6ZCVObkNB3LwzB1n1yU=jvT;hOe76|uUi^~R$ zH>));A-&LOQe-DY&N?2XJtrxUhI}<8jiS}~5uc5uX9_s%Bn+(XTHq%?RKvBq|JYw; zw2a$|j3$KkKx6eO?Fs@~BNdx7Fo{k9TJwc+!LV#;|ipZ}01NjWjMI%@AHB;x~_VDb&i4vRzW6 z2bh;~c6rSv%B5Y@oKUk4MZZssG})BXjACf(i})a7Z>l-#{d+=M-yPGmBE{i@}Bjr(jAWUQb|F&!7jZ*>ndS8)=L&J@ra$kKIhHv8?G z(LOF9d=@GG=<_i5rB5Wlt?;jNl1O8FV@+B#n_TD5E(Af(FLm$Dd2G7vx1?v2*`re! zX53vn|la}%QZq>BfEgPp_pK}W0ekl4cxgG-J72Hqa^1^pz>?aFE zt0*oM6CUp$9s$d{r~~PmXrNyo5_*cl3gGH(_3)1-%uiYoSQIJqb~wZUwJt@5NELQE z29r%TucrQVL})c^>41F@xw4W)RN{c7hb=Ts>k!nV!x?foH=i7_x1S@#dG&&uyJL)6UZypkir#WO=aTN@9Gz(RgG~G4_1;bTtSfjf zb>nK61Wy4JCd{{rVG1O@@u>~#9Sd8qm>|(@K#>AmMbgOcFCK1PvBA%S0*BR~Vs0&D z4##-FXB@%q_7v? zFX6}B^)R!_auWs26U@74o8-RXHWoxZae#YN&rENy^4Pl+!QtA|m{?Y7biEw~9s#xF z{5S&4NoS@Zei@GEBgQB#FXTL~6Rk@mv5baj2MS?XS=c{BFC}lLq%fY1g&FM)k+~qh z2$sF6b+!jkxV{-^AqcHj81=2IR?;lcp_$xZ0r{B$zvwBi7H6y~ag604wK9qzRMNtw zT)INYk5q2#Fr-}>Xf>|V=zx*iVF`h!R9(Xl`v>hOuyZbah3z)dXBL?pp6ojIv`?RE zXb~(&)@&@O2|0);ZtV74o9EtUD}iD1V8vXquVg za0t?I;$&`8gEP?r07U)#^ej4Q^78btIkiXiIh0S+76f8qn0sROIJYi_L;l5XoORDp z_HBcXqSiJ@0jtji%G$2w+;5@v70CgKhOkY*)atZ3`}p5`I%~j|TfNy)L-F}6e+J>M zO^{CNgIelW#$PI?OZO3*=j7M#tzpru6dY+Ch*m23`geXOt04HJaX#YjJR7QYyV z!{=_2@Jo1%wM@n4b79D^5SJY|W3$STAF^6nUztz?h0$Wp2hVkIbFhp3ye~N8N5rZr z?2ao()mMFVPna80JMCo~NWn@~gjPZ|66i{J;jZA20W0~%)-g=*TF=YYo}QkRnqwr5 zes?0??nlAF4+kOcwB@0{KbIoNYXj)DYAxR{7YwWEc6&V>@;suG1Z!51PMqwqI#-j^ zK3vW%5}tg1g>`UvB;rBgo#S0-wX%zqFik)zG57Ty18gk7Ok{Yi)^Fc|mYQ0BV;oHP zRFphUq02xmM(9rvWkOU28x3b_C@_&Sf&P*89go5N07b=oweDX)Vb7BugJ84aYv7yy zYRT6gM4R@zn z4OYZ!0r!z<>P&-!{-8!|=R+J{sv9FLLNt;<*jk@cZeoLIA}%ud^!K)PPF)@P4B}s6T4W_zGy5(mJ$D0cEd0pZ)kgPnGQHn>>b- z@tJ0=`NlAeKXL>%USw{*5T2b`8OdC=sMOuhvaBx~8cT~h!?u>H2N`y>BP_L}=8R=! zu0}->cSXF#X&9x&WxadTC{rVb_%8pnpW%h$lw89R*?J-R7gr_!dqHUq&z~0a7gLtc zr*EGpndR1bFYr=l*kdezGsN*8Vj`fT23fVZSKj;a#1eBWwVHgo-^aX|H;;%c=-gZu$&CFUFv$)N`ew;nRjJFES)FuCFP|RWCuTuy@iKZ!c zf`XZ-ac9DF2Ms~_VVC@@R9g4mzNDMpe)6%gy%62Hd<+pCf(<2r4klNyb%jdh0L}wj z1%xg#VIX#?GR87r*^8Zv3%IU>*#|{V8!sYh*{{H2QwXApa)g)-9H=6Igb+ng4Z+@HvW^;P#Osgr#PtVaxLNd;vl z0P{vm?+%(!lC`zecYkdCh{=7hqXzuBV0PZBb%3o6aD!k zxDY3DAi#@MBxsU4$odD~i?pU>o_s@<^oQx;;g1>`-{7Z2;1{dA8o%pW(_u z1N<4q5MpZWV_CQHoli-EUl&7v=E>kx9h|ZzmLj4|72#7PZntdlhs)YesI4xwkzOS`=K63EB`nND4lk=gb*v|FNl8RxCVcAb zzz7Tf?(X!fiPig3ZjOpUc_?O1u;=En(W|w;0H5#ubmGnLTRxtics?ODVk64XrNU|} zbzLL~8%oA7uguP~nR>*2l+$JwcvFRvOkQEAmV{X zQS|+r7@?+R^{2ckGb0ciIf~0(xLCO!`$z&lJO|m?GR-y=2RxQVZ1O)gxhZH{-Zd$SQiaDj01h|7bEX20ikX?0FkIFejCwP)fyz80Ma-yw zXfy4LxU#ysaYi1fCs6HI{SOds7(44|YwIXxuH&v-B7QIM!GhKHAxxm^l7=}r@#cHf zqp%A^CUP7n%#a?bXf%dYSc5Xo?3fKU7dI92J0|KM(2|ahmV*O%lbU#>(r!I3FSKI( z6OKmSu2QPO2b4e+Jf0;pa4?M^;xF$ON4E)!YHJ7h^ux-?4pmDV@=1Z{i!Ho{20O;V zPxB!JXMA@UIY1E~4W6;#Bkrb_c+B%u)D-QAH>&(W;e8k((V!s=%d-V58i}T*rPD;_ zDuRIPSGP&A-!Tt|qL>=h`Hjji8wUq)R8%lcdSP>r5%$51aa=b{o)kRA#6txv@~T1c z1OOB;x7?3^rne$Vii1QvnOUW@tR&w}QMJD(b3%cx98Vm5s}!zy`^)P5=Bu~J-s6hD zKRMOyShqxjMJ_7a(%-%rJWb&QhVWcjC+}Vt0vStrwSz289vT<=(XLI{522kSKha(M z3BrDP#W4C;VMv)uCuk6KawF##BKZovpo7%u zT5#rJ0;f`F(LEci1wqvJsxYJr;$&7~@#z8ya0Y3&?KCBK*@9#kE-kF17E#q?1x65H zu6uL<0bcwQ(fvb|p(uf1N62I;KD$3F(oV=ncJG&O!f7I6G~YTK*1y22qE|E;U85Ej zV9Xx$a14&bnbPiH`{`rpF8%-y(#t>J#)GqPVAds|Hikxr_z)t4et-WcrL78z5><1U z=JV%3oDI9(s=AclZ6`DLDrjZ=7&cUhowm#%aq^-DfuJ zx-2Jh=;wMf$2y))7>+(}{uaTi#J8(BSx4y>MNjr#jQI$1C=OISXDwsEj-GbI*WM=* z3hBOVnvVz{gTH?oKEk;f%#8JXzyi4JQ66tf&5E7B+_C=_(ypU+0N+T=4~(olCrFsO zA>yZIVS%cmhWFD9fLjSaIhH&{6eeo+5ODDs?t76#g?ys__A6re-l26rx4*cV=R*Df zBtQ*T$TiY&P+X_%1GQHFe`V}6_wz*14 zA{4tiNbZ#4D*~j9Qa%I9cxv@x{6|%wwEIa|d%EVrF{ z{RhZS{*XZ46xP@{z;Ag;DIpLAM2&Uc2~{5Z&CaTV(-(%^)o959#AW!zMzC9R@0#&N zT#+r&I_mXyf+XonGbK<@%kp2S>6Jieb5obYJS&vQ68X1CQGFh)RcjqqJ5wWj)!@4Y zrc||Jm$K)R!V5H=M$M&T9i(!;r(bJ+#pIB^L$JXyzId$vl#_;pL<;E%_h-REEMdH6 zEQy@h=vH-$&V?Biqx+&(Rg8|T@GlnEmU!u~@ zR2j)WMg5Ym3cH={eTXFG9KBLXsQp!1%`KXuTJ+xlV_hU@zP!uhL`Q&`mv@AiFC5PA za86zuBEmxDBkP23!vYd4_zFE^C3 zD(BQaOhXwkP_hp|B|q{o?J?3UL!MGFh{3iR6%X^f%MVA@TUB}QF>8|O7L+3Fc*zR{ zy6BE?k`lk5^G0hZO43Gq#^@=0eT!@>(68GknDrK4mtZ?Q@5BrS{&B)iiw;Pv{m*?= z!1R0-@(ruJUanVgi;9*V{8jmUA+zXWWn@;+TxejdMVD}2+d1=_`?L0nh-W8c8UOWt zt0N19-4GosVAq_svaVVZ{Xsv5Vyo!6pCHu`@u=ZTr&vlA+HWz^1~Dv~mXP0gig-ANXT;%h7Uq$` zKu2zel(u{n@${y0_`#gp_bVwCCtOFL7MMgtXpENzCG%inX8vae#4?+Mfb;C%EdPiG zk4lf(Xj%y}HmQm!qp@-bksPLbFI%^QO(L+x+}-U?(nyKj*?gG(pR=ImGw5&%D~{se zEUZDSXvsxTAbn31v{{I$ZprA+%$=Huq`+CB>+QA-JDF;=!?lDGhhk)ENk80P&oR>Q zRmll;oAX`+ls7_c0iD?mcUJpav4J%KuNQg}emTW2ab&%U$m8q`Q3E>~ z^X09n8bs*VyGsiLUvB`Q8N^i>yxl^_yYo%KEPxtVb6SbJWM4aH6>ozwfk@wbzrJXI z`7Yam700BpGq&{~kH;z9aGKjJ?g~k>jb5D} z9nKUQ?ANb&-+!Q>$jKFq0Ygx_dn&+}1Ld=BnBB@w(|@9)x)I1p-3TXH@hP<2I2mHG z;9Ld`^@C)kn??7RxzfhFMq)*wgk02Sw#-)V5XuKJ3f{@p?zKGQaZyXQXY3lthfhXi(yiQ@fxxiv@QmxHrS7DO((3$E ze|Xz_481X|&_6vG(n0k_-dSc&+nSX2i1PqLx&J`jx`Z6!J1mI@8nXLzicYjoZ4@*J zRjM9bEKn#$s?OH8H!&(@;lw`Bb7^SuTb*}@-Z73n_O?;*IELU?3`qhy)Wom(U3dPT@M8}@SJ=?iK(02XxAl18iF;F z4^mEH>=0P)jQ_FFh!n=|+7E%sXizX{mj0PecQg?F6&c znufq?Wq7oT85FCcaKb3@S^QD!Z}-^k?d?jIP-m>!(L5?)vIqd%#DQN4cd036R}P=xhAq)ardhH1Dt? zxhhz9agq1Y`-U_yEG7jif4@kRm=eWamS&yK2M~`}JifYxaVHQzs26KN9|AvDk4@Rr zX=g~yIAA8FZxXHA6%p&;uQvH(ZTXvl*ut301>rJ>DypNN0_m#$#j^*F^@whYVJT3_ z3d&YQo+T&prrqZ?2e9Jo$x--!mG@i!gBXp&N-Z@pK>@P^^PRZl+lFgI<1gaWD1gLA z0AxuN$e>Eg&(FVEmzVcjToYTdS;DE#k2_fE_cqz`Ppu);G+41131a(i8-sD1`G$f& zPOJ9$oQW(AA7^ijE#+Zlg9?{Rhb&_<^eo2EqP{nSv~$17$h|oI*lE=g{Kk z{o`X;znqh$)x;{F^Ka9++o%Iil&hv%o0~SAgf}wbFu#Z&fU~Z=DS7+t6b#c0n%7~$ z*jH6Tyf`$CNec{mDjl;P_<_7SgbPY=WN#^GVOf!{~t*X~{w z+wupW|A(x%0Lo+A)&O&GcXxMpcXxLQ4#C|a1cv~@-Q5Gh-Q7L7ySp>Zx%a(!HB;3^ z{YCN9ySMdT>yw3#!~P_U(Erw~i`eGsmNbX}2iH?j%BoZ(qRwW$j#E6D5v6RI#pkP2 z6xs) zu8WNtb`6Sr&`+2DXl9{?kHnL-tJ7-!sLp1DfFlUOWHdAyU%q=R^j2&`9n1&lop-pS zb&K|MXu6FTzk1@M#f|EGj@SRh@P$N{TmKw10dgOGrj^Hu!9#ozZyy9NbOF+qcRC*P z3&YzZK`8t6Hu0?!m;RWya z*g=hOz83EDbS<+beIRW7M$UbpSh81eL%=;v9H$Vd-AjW1!42;h8UpVx>F}=F{~*hzi?0blNQ-0s?7RjYs|2G6)`Cm~1K4aqg^+t(Ddp!+7>OzIq_9&&0-*ZdSY}G-&53GFd4{NWkT6 z2HNv_7bC9>7SQvGVS(cFRKBZQxA1aMzbzm;(fYd+lTRW1w zli7&w7wdy?#3J^qZPfkrcW{K{X28yGcqVc2mcUg>I^6d9SkR*M=z5hZvU8j$-zPA<_ef7`8MGTV~0l4td*qd%*x7Jyy8zSq4(K!|S z|3h+GYzHS}fz`gJ9wRCk0ujQJjfaoVY&&3MI+}#O^8WWbvM6Na7i8$TX7iFT*5%MX z!tpR%eH?(#JLfB=C6m7dg;JDoMuuV`ml@Q`S-stzdD7&5BIshdh~evX*JVG7DgE&t z7&4qC&)xReFUw}5#OSle$`hT$A@g!~!pY=6tuj}lf$r^QCq8&@Yl`KSFMnWTWXI5p zQs;+bL?z~XAvO3Sj~5e65szgF^2af7S;TZ<5K$gS>gE7SzHlPWJx?cDJV*CnnnKwQ znZ3dsz+)pXuN9P-7wZ9nzF03Hp<%M_c3Snmgc65A7aHUkS1#6I2hz7A2pANus5dDR zf0H6Cm13uIEuw95N)d_na&Moa7*LoX5#DJ#2isg<8t@jR+hep@EF?m1kCZF4l!+@| z9p8J%xzQ56j`8p^FDLrd@5`iX3Pg2Q>S`rt$Ise-wz`zYHMyQ3yzBkZ2os__U25h{ z;`Evp)Z*uFci5h@;;wTYUBGv6a1e2ftr{Anh?U8U6|3m%BxEq?xE>B=-?J@MAym+qNg8I(luFCRApGD~E2>;@UHT44ShFkCbA_OfS*t|r`FFIBAiO1z}783oEs|+;tcLG^hMAwtI zHF9|5nUB{;dn){`C50D);cnn_S21Loi?*vN`2b@MmrJCx?eUcd8DVZODZ$(Gb#T{j z8saM$^3yxX3VBi3rJ!Nbu2>QuNa2?H((#X^{Xxeh56Bp`lnbI%@;I^?{OmAmKsbjk2&oqg0b%?LM}+}7b8W{jc|4)di6>*>um=omg>xC zmm964B;awWVAacCX8h(rrQ3u3t2e^3Tkd`tt41bsto=?~8(NYos1{9N!x@N^K-tWf zgcDa%VoGcL#t5w0EW=}4JbpWn5si|FBEh<(7nk!nWj|3F)OXX71ZKV}Ic(NEnY{=u zhr_T8t*{Qz!nSl4Uk-_%IFvEMgS8k>t2c`u(zzRZ2j^OCF5oawxr*dOY`|81iEL}W0hSr+_cJcWlGUnG|t53)aDC?>FI)d6wlH3gNM+4>;keqF6yoa^(XK$^E; z|4O;q4k%Kzep`lTbp9}ki)eiy+|De=#aSp1KfRw;M3FFi7<(GUVt1tQLck*rong@H zz`0lxEFu1m+jwDoTcGU}M)%g?bC&Z=HMJYhdr#2U6^m+yXF@rNU`YA`ymnGJ+{0ap zZHGrXcP+(qELuM?8IZ*+x*uxQWU~lUIDTxQrV5{kd<{6ci9_EpWo2;;ox`f*-2fd=nmAdA68xHNB$MiqsVOzkjvbtq;k#7m-K z7QD!z<=r%S!!p8SD4WL8X?AX_m2B z^>w$Zzx?ko9(R-upDD$mR+@ff%uEh`EKN$6G-G9{s97Wx3XI*zIm`?29(M%RV{61m`8!HDj-?w9oL>Bu@z=CYQ=Z zu)%H@Ht+vNZpOdQbcIcR`JulFVD zc%di$fYIUbP}+1n13K{8CG<~Z`Kw<%Pg)7&oaid)3j#r6dx5^cO=MZ(h|x<{AeZMp zNE$~)WS%&T%ofHb;rI9U7U_SE?$_}FVk+%&=KvS&%xtN?Y@3@;;GX|0{efkvMl)Xo zCjC#)(3qX!KbVg-`mhO%`YJ``dPgWj3C#Qr=R8DU+a|!Gs)sTZjsVUV6A^DP!!Cl} zS1^DyI?f35<39Pc@N6cxz6p|W2bj#3Gryx(?a#Lp0bh(*D|c7l7)izKVTaPhFpZ>$ z>l|g|b1yf15(24k&~Vh_QZ`P`WL$YMQ9Cg9xgiDI)cim3zr#-zudKFz`qe)UE24@r z_vgYwb1rK}s&X38ucdX74aG!@p6g_wDMU*0RuA1D&Pa8pS|FD9jG-8FAF=m2$2C@>Vdm{`8Jd-})C&FU^%a*LEO z&?pX7CKLUthl*u}KZ!?~^j>A+;R}!#^HJ>ciD3$#oVQ-wZ9^qvvI=p-QD-xsbJ!iu z)b%U7-apgDh+Pf zyj}Slsae28I;~FRPw-SK3lL>C9|yFdCX$;xUkHE+IhA{dNTr@f^-ZG^V82_JGYi#m z3r2YFV2mWtg-}EtlPFfq)O zcAdPpZzSFl)aTZm=R}6%J$aO)6h>Yzn^9eoT2{`nS#rjvyLW>j^# z;|`N8o;Ydcu-bA>^Lz|@ig1s&W#I`*Vg3{xD?0i;DPkR#)A{m6r>Y>4V3?7EW(Kyn zFawZ>b510Af6HLNm}7JPWU-8~mkfSxSSZ_OI)i+A>*N3u5s|T=@lRmAI?g=$&@YBe zJnVzBGtdKf29d{9QrZ15WYm^;xt5k@SmlGz@sl%xv?uwa$ z?(L2DzA0wa{IS_z3kwu&JAobe>@0c8K_jL~bE7=I>nb%HXmon-p&6>d4yc0#b$b)B z{B5Grz0zSOD3gCMs-OrZWZN^?o_iMtaBOus60fElmYLZq9>Q5FIP3GOdFmi#Y!ET# zW3u^6AyMM=TU`c*O+L1_)^NGpkFf?~aHCxE@-_`*DGE^xoOYBp9D@f7FiJ`W&%j~h zQ+CHvK?(TAQD5TZh+%_kC|o1G8hocY>3u2lSL^G4U-Aa~>J(MOVd%g|-7UhHM> z`e=H|z{O$qFhM3!J_vZxE2jz!M0Ito+deM;F%YSYw(OqryVN zNkdb_Z>e$pg}zJQvsA|H*6I~6R#kB$hJM}~>5bj(6TO8F%>B<+d*?>DUf2 z0IaQ&i8xoxJA-4itrB%@w!QQd-hEuMV`n|;mscM}909*qs>RCn#*duU!<+ax@`!xP zSQ4$92QMIjfZ1rb(cK0fd9}SKJ6EZytI#Jo+KA8Pf;DR~5&QmO^Ou71-O>GnC^<66 z0P~oCx!!{C!IVWh+IN8tP$Ng2M&WVVX1xkr-!{uSdDfu&S0vs^mTrp&b(Y_HU*Cd9 zXYtWe&J7!7%Oh~oYcvswi1z+A3#GboCzSetIHI$-NPBHoe81G)dnZQh_3`mStq_Pma{ZU3(6sgw}XQVSLI>TEV zKrkKDaX=JbN2{s$A2&Na$mF3@lQ;2wPM`np#b3B$i{Wh{sjVr61m z*us(xJAN;-eLeQ~=K5i(Q*zh*n>h{TO{rQA^ruR15SIgbd55ZKV%u*Zd`(v^A^~JD;*JjO?Sf zP?kv4i=!--Q7xKjXjq7Yz8lcvN}Wc4o(+3`P#C z5Mrc)a#cEedm=JVwCNS|A6h}Y zQV->OEaQHuKDpskxtp-1R*7+rQcrBgUNz2lzw8dTkmi<-&$~JG3lbqcIh#Xg|CCgC z6ixrOP*<26aQ!Y1UDOgu!??;ohnDqC_(-fXqFAhyAdyF9G1DlHl#t(d&bX5A<*1nu z2ZhAKWGpL+^4%!qa5LN=i^A(gS<(>1git_ z6P)cMpCDnCd+U(G^rHgC2PM4fJfbSvBxMe44RiTl3)O7VS1%UVfut)YR-ngOyj-y~ zE#+uJ?f?1wpUh7MLuwTNvfS_;G6$K0SZ3+|#Z`mAR?5zmJk= zO8-6Ul`7`5IIQP!3)*0K)5BjZ1QtT&_?gH?S0x2S`@<=o?zDil+NI$7#u2h{GlvP! ze={-_awBw+`ap6|&DSIZ7$LFXPh1Wze#xiCp2aGxBG$4FJZxaACYO7v!W8GzD~}AS zjJE_KwYZP46Sch{x`kdZIa@`*6ehZKKfU&V_80v_$5 zoSmJU0W;3-p&_ZJSnob3s@q>hoELRgqSmB>O~X}B%3N2b8oqgwoIbmcCCs__inu+v z_`3@4b)6UtMZTn=^R{1)io{nWt;2$Yz)01Wh7}_t@8`Gk=$#A>QS?`9hzm01T7iI^ zvM_X&T7Fl-+$oaUkDl+z+G;*3W@)xxgZ zS$UzPih9-v3**6-XuR~FGEI8=a-+w#*h4ig+aCto{bE90vK3i;u(*UiQ>`(isEZES zqLx(c1u6y_z6iC^`D7sj2KEw=nL1j0lQG8tbXiU8oWHKc*NSUrA5_Fi(67+4^^$?V`@cW+qR0+P3a+cG&_ayQ6)kOQ%=@^j2 zbj14=X=bIcUlCuocWFthWwyrZaR0)(F-JW9`7@B>uv>%2Y<$R(tlZJX#I91S`Ej_~ zfi5R6U&xiq)OgMx=jYb2Kq5eDIvS_VXa`UJ%7FY{bBuya$j)KawBKLO`PJB%B>E(} z2>x5HUnY(hJPQiHq+&+*R{ViFCLqSbVaaCHZ!c}M2T&!)*SY4)-virNXF7hNz}b0J zV&Qq5*YW0D^hlDeOc(y{oBCkw#^QE;{GVeOY|S;D`OD>QlRVCr2xA@5IplS5GR18kl~$4>sAFe(#7oN9awK7kp>!8k z1lJKkjC_HzM;Rp>vG_wq5`qk_uwTnLShLkT8YF(GU;Rz4NnCmogTDKZZ4yDJ;-+E! zmF&}9$)lO5WFppP}ND+0hf~h4H^||3Y|*wU@Lq2Isp>Gehwp*owJ4HJeO( za3vka5X1i&F`1TdoUTrCUuG}ZLE826T%$Xc;FmjBk{Lkfew*GSo)2$LRtOQTF~HIi zEU&nz+Yy@pUE2XTeyFiGqqBoCAX1!HhI}i*j~ID>Hw2-$PgzHOKet&50WA3pF2}fU z7>IcDIk|ifchiouKhFu)hvK>w>cuB-LC>$7QC;?~=J zL=SQQj4hA55X)~#W>ae_$0%NQuS9v6D+h8jJ)0~t z2b0n9VM|r5Tnl2&|62^m)6IxP5JX`-*#1%ENA3fo44yWt*{?z9OT?)aPWvo9F2`p+ z1;Zwqn8iFR(6HT|pTCpQwwb7ypxg=hdOlj}dfo4=d*s88AY-!gUBXF9G)npO^z_XF zJ$JjZNCdBYlrs)S*gtYK=3$(&^MbFpcAH0~tWBaSv{{B z^Y$wO8G4G041H6d4bH02(3tG)_Z^GtHflj>F;o}3J8SjCDAJdT)T@bp_y;ip^T{Oe zH}6-nsv7(%gHGB}hxJwNyDG|?Gt|ZBz04I!K2+h+z1pD84O$zWCXf$20m{xBKNO8G z;6D_Mu3FMB5gxzOS}<&u8X;rpKf}{r=;WDC%jLa-8z)Zybuj#PG_5-#O;fu33G=KT*m`>`~X;m(d4M_OW zgT!}U%&6WDNc$T59gYka`Op^f+8|g+oMUdQzvz6OHTeD)9$#+C#EsmJ?SH=8Hlj?5 zQ=*lrA#spoaZ0|2IdmR?4U&dla#=&8{dO8iv+CSZPC}uI?be$MufANIL!ZeSd=;d_ zt49oAkLbQX@@qHIR-=U|AADglyQersb|m2OG9(bJM&e!eRCzma@lfw`WNa6Izt&h{ zJy2Y|g88vCKFW1V^`&06$+-J)qegtd8Rj6PQn~&s(ZaX^KJvNIm$Iex{)D~7U)4Iu z1?ZkR86WJsl{#1ye#uONe9@zqL;5h}GbhFUcjpM1w*o?GIOMdn?CcVqBB&oRg#eHV#dza_1<~r~5PZ!YS#u$Xnf$2;2SC$$B}a2W@sLAM_<7 z41Fchdi!+}WNh6*3;Jb>P@ZNFu{xcKVNmzrl4%HU^1)tZ2COAoBkIkC5y!f z6)tgM1ZJ##CE&YbL)u4t*HBbnAL|zkvx^+H_Q^adwI6^ti-BpME@~=GjtS!K7v7?t zSmizqUh<}!t%|G+V{K__Z}-jLW$u?Bw4Sc>d*r4*_!=Fmm__3l$%HP0nfxSoB%Qv% zasMd(m_`yq<$u&NU!jBC-Lo+|D%rvHc(@h3Ajp>FSI2IxX9%@7#zLPEI*zj#oS29X zgudZ)sWZJ#nX+@W-Au7iP!3%Sg}g@V1-Jt-hcU5%-$*w51XhO)FyDBSLlRvDZqu3Y z+N}#Q_oU}U^K4Y}{XZf~xy+QHZ;GP&UypXC$S-v1^j!5iUUP`!v)t{wTgHXPGM3Q$ zuh6_F`uJ97H$K1@CUl}SJ=0A9m$py)wPPH;fk%1Hy&91|yJ`dQ{FgcAl=afOcUd}| zf4@dKB}HTPD&s}?#_X^BU$<>w=zj8?I5q9MdrtB-;0^~w<99{>AY2bp@S+sjYpbJGWiL@5>b96k&)2I1(S%bDs7MP% z6r<;yhLYAWrE1D1b2Y{DmF5KG3BnE{ZV_y_YE_rp5n}3O8d=F*}~b`!>OIso{X>M^O60=1lPFdWUmAB=H0lLPX?t zfx*gyh=b%hrGO)h(!R?pdtybUv1x=~MVEjr%m&j*8!riMF4xy(Oke=suxQ2DMVn4u^J)coL$jK9$s zmRSY`wRL+>R#?7uE?);jwwqEf)IvCMwe@)t!&u%1*bYNH)>wLJ!3wMM#GvbK@Ej+) z!aKo2JN^h2Hgd5yR2dN0&6L7Z_6xJpTfE^21V@HxLix z<8|D->k4K-Av2U&b$>gXcm2}AJ5Y#{6DtYDiY7_8h}-0BfXYh#pm<%>QE1(eXYktH zAvk%Fv?8VBOFrdf_o@j(m!x~!0`jbc#NXKU1<2&Zi$3mHPL~d}n9|Z3l~Ano5$C+; zt%0OqEN({(ib(+kNRQ3&@-LnnCn1s4^=K9obVpmB2VXQYAHqluhtFNN2=Hn#B?n24 zc4hg!p2$z|w(O}UBCoRz)X>Y6kQN99H_dWDGX%d(M!z#m+V}j75=nXK`rD1D`0fqY zJCmrqI3O`l=<6qx{J7Q+uXUk;75U7O;Av|dhwrv9vGnKkS6kL}BB-|c;d2;^s1?<; z4z;31(3CGtmA=cOnr98wJv&S6-G=qS!_Y<(`*E>6?Wj@<$+)sWE32KpN|vf)v)gBc z9ls=260i%y?m!~{non!IEt1BD!NkEl@bVBblo#bi>l^eHZ5)*R7Yw`3OhFACVl}%? z-P??oPL~WDkuhlz7eF#34a<3?@_9>3?Cr1Ph_}m3Q+K>R1=nl$gUpAx>l=gaooetT zokog&Y>>os$|tV5*Jd%kF8OE6ahl_|d!tm;J`(kp9UM;K=E8JJ7Q(kzagU<{Ns;Zv z;Ew*niw#SuYKVU6!6^9aVgvNER#F+pJGd#vzxBf*DRWW(u;d>75=h~;A~RRSj^b8@ z$hXa{V}?oNGRpDUklITJ>pL(;vck$2$g@+6F(ZpMQ_U+qh1X@Vs9nW)_&|uhkP@N- zVWg-d5IM&GnHpv?+;mDiv@Uq2HA>+oEKn~QljBu1-&LBzUJA#cm=^V}%CQ-qoy`@E zBP8^&>7TxDoT;mvdafPsCjm|UJwLC&ur$z2XFiNdUK{uRS9@XeIsIT)tn=@!taJnX zyW=zOr6NrUK{0VX$~*DI-003&VH~yh(&|&}f*V~PcNmDdaj@bCgP~vC&&e4H0-r`m z^>)mhlYxema@`4T8e05*5YP0>j3)&pC7w9Yq+1wIX$*vOa@7bixIjMeKf_7pADap_ zw9Y|{P`%m&imA!@7(OsDZ{28WZ%7tJT~l8pTy?6w#~H_H*d9_{UHw{kK^uwAfJ7OK ztB<#6w>nT*zF1mX5TcUPINdMacEDh`hjI@WO zAGH~sI)(5;&||Y_&w4A0K0>k@Q%T535WSIMSHjPN(ID|a6j%OOlsSn}l|`nbkJC?| zD%103H(|r`e90Y4KtSNy0}_ES*%J*H?PGgmVJPZ4XyGn{$t3sH_u`ykadGvxSuxyT zfk253Hm*fLW+LnafnSw-j3ur*oN%mx1QxcLs8@R9Qq8lehi6;k2_2r(t^_;rZ<2F5 z-;xSzMn1MfED4GG-|*gH^SXAS8;X>OhJi-wc|-W62P_;^ReIW`oEL(B^JNB!IZ;T# zM=(VWD`~mTw}^M#`R}Un7-SDDY%=h%XP!6D=Zj}1cdqfRJ*Bco{wqHn(`Lpj!RXC!Z2;EMM+P@HIN$nf z94V?zJD%g#v}Ednq$Xi6Yy?+P)Nw<|n&j4CTu77mS)oD8^(Y@#h`fl8%35{1Lj<&_ zViU08vQBiYF3PiztNCcSzBgbR?~RRXuq45ytFUVmQ*f(d?BLHFG;jI?IzT*6d2~H!FUuG0cj2?!13R ze0LuEp^`W&c2m&Ywzban?3Kq*-Oq(O-kGOMNx0GhVm<~p$M zuQ+mvrrC~@IGtlBkNpv;iQwS%qTu&Z>Z@5Q>*BcT|B6-^fgaMy)iA4@eCbPVQ-ya= za;l4cp91B5I_F6pVd<1jm&)=ZXia&`?R89idJ`(q{(3Z-`jhu~?LEla^D#8+%*4!+ za3C80dMfB6a}M+*pF1@6?B8MOxVjL?Hgm?_=dXT6;r z6H<~w$qJLe(Yv-LStGe_f8ekyXn|Ix26Z%}vojyOv*dpZl7)*YijckHVUvP*Cu1&} zHRHMEV=Tz=>J1^OkkL=Sp@+ry8=D0x_Q>afj{tiYbE|g5q`lo)VYwU=rmqD%eM`BN z>-ta*#MIO@^2eT>qw|fQ4X+;#5Xp7Jrpu(Pw1=RD#Z+f>4brJAliTC8JIVYY-Fy?x zXvGbJsh1%NY>F9kN)q!*o?WWFBYWqUKyAtBLyeCs(XL{v&{vRlPb)dBFr+}kydG=w z5KkB}4IgVD;PO61yU*qdR8{YwYsR!EcoyOOpl%Oe!;Zj_i-{+F{NH-@~iX<8Lg z1U6q^(OGDJjl$@#`9$k-u%evU6bhNYLS|$qV#Yu?YvYz-9W}(<1UxD#FIcBQ%p1uE zf*^v(;xo46`=!;}PI5(195yRS-_{Q}$@mqvaurnbs$>VD{njDMd>1CzTA}7|;#W2| zd}Dgw-iz`~8+UFOfQ9q7x1F#ZIq zE8daK^MHqq>n=Vh;#O-wRx**ta!p4CxA^cL>AU^BaXlPG9M~agt{jsJtV2TFWTC=U z3=gNf0y^CJYu#QFP3laCZ7ohdr7eHK9Y}9oux3FRM#>ufRvdBGVK%EF%-p<;t3JWc ztiOo#y=)4fr-LpB8VMqD-p*{ggHv$`d^VkE%}IiY6zWu+?nO$$gNe)#82e0L&Ar4h}n~E#cYH zatBUquXwaBCO!Uc)n2|`TUuw*ftbw|>U3~1-&AyUzw|lSnWCTR;U$tgLwiWzoq*0pIqYAZdb^pE91Pdp|~y5)pNJf<_?PACV}uB}%O0Lfl~Ow4VC&$-lTrsTYyJqI7>C)#9RnEVTuj?g~coI)~GzcYHH{E%;WmPOn-G)ThR zUs{;{YB@{fzHHcP@A_sXxSTx^#X(Q7wqt#+!v)w2N&mtXK8if8T03YtEcz_Iu&>}4 zpKh0h(sHzTKRr|E%|~x*S`;-_r@TH}?Is6<`J|)5=K=>Ks=Ir8LLeI{DhvAd?MfV> zxRAZYNyH6Cc93*va)nW79Z`ly>?x0UF1#*ixM*Cr#&VdYsi~=q!7cSU2NoLi^`e`U%jdMN0`lySnechW-@*-9 zS2BwE#Hi!N9)QX_VulnC@(EZKc*KelL1spXjroih*a6Nl zGtNF!-#d&?id*{NkKYOu&9`SDa=cH+(;KyFZNLHUEC?i|%1r zfP&D?MLIy`&!uC-4tX-qeRfy?QFiZe6T8X_zLY(<|J^W?{d;b96xY9U4Jrr<6gO%G)55Q4tyjT^ES%3R|(M7yFnGQ)B3NO)^ z-P$!Vfxys?#C^Y|r}7^PHAF+5C_(o9ls+WsG7=9JT9w z-dnZDaUMR*vD&NaXiqF@n~$J|^T7Z%d6UZ%e4J#Q2LPHB?+H{1xa2V3bQ#c!D}@-) z#hmQjYs_lsO==vDA*U3gCA8w8NK9 zisfhTsPXXd_r~f0)^yL%mZ(y>Is8v-c941i#2MFZyt+MNCD$iu0aPTpE0cm-p%>|S zI`bnA-X8>$S^R^4oeuyJ3Ba9vlC1G}Ju=Mo;a+X=g^Z3?SOxAmrrG_J8JX2Z1|;de zvyexQx}IAwXfYTLB+_Y!-KppJT5k01M~07e!=DPF{!L58%6a#JJncN|H3rN*z=T~P z=ZXJMo5>7IFn=9^`*Yr$39?o=*`&9S#)*k14$qZS|1kX|It#E;dPl~P3Y}BB1-an;?0 z9Ip5?Iqi)FJULr*4-7~stg?PP^;m89HdMgaz1@c&_?b=C8$-aYH^A*Zo{Y1f)c4BnraP8whM1@4OR`&VkycE+4e zmopl4_>lJ(NkpIiRjxI4e04vAFrU=_&T27f1PK1Pe4p`Tk{QDJJe>yLjio#i>9j!r zAxBSEJLE2yP@No%Jci5mE;SZ(H?Tx**oRX2aShtM;311k;v2^GYf)~Jt5j@}rz&de zcBLmW?#pDiuf+eYn%hCK8b8dW{G`I4dPU5@4=g^s;lfeP%at-gQ~QEYq>Q7PzqvL? zDk&^hAOr$lLCPkSIZqGr%*IPd)Kb)^0fC`=Oe+=Ie{zo8qo!I9s+}Isj#w>vdt>kf z)Cf%OSD%*tTzoN?&;EfkU%s_`hYL&rHyK=1*n>#e5gQmdJ}s zAo&9@{Z+oJSE^{chT~!~81#&4Ry*$XV9%4gNgc*6&2@wqyhQgA_{vHji2oV+wxJQ1 znM9HsHHMb-YDvo4pNpH7(?s3YFk#~|nE$&D@$*Hqyz7%_fH@93V;BjeFoeL$8}O=0qJ2oVH-MQdL{X(Ld`$OS1!COey&f-vk9W z3j{cN{g*f*&8B4vuyp=QBMO(ugHHw^=|pp&WxEmnLPUtkW+_sa4%(jpYR#7YzyEBC zGqqNjo@uTxpGh{B8a{1EO{_o!jzsl6>bp2ayb5*3q5+1^f0;d>RlHNwKotS9lJc|{ zi)heqI2f3a*qT_6h0xl6`7bDN{=ggsnox?T!+O@++n&O9@1AjW2k&3=X${B({W%Dq zADmp`UMaySKR^2*d_ES?B=nt&ix@zt9u(woLH?N+tlvV*$BQ%4aAfr4H*_5f46uSp^ zlXo0RHmncSZ(3SJL_}f9OrJfD(uawj8X%(9;rjMP71d-(N4KYEECKgxjgaRlCK41P zqhYMO@X%L_NHz>}fKttL^~rD&19);m5ptoV<;)K$ggVh5ssBF3jkeFUBQqIORMgL3 z?D_a~Y1H;kvG$X7Y!^_ApIQHzyNESDR(c?2@*Zdl2bFEq2(?{h!nE&X(fRDaM6CLmj zy|b!GCN$-2aeaU`iSI-da0MIcHTxVDu&aJA7OObIXNY)dt_1&o0=j2j={fb9l_!9` zZjXtRGc+|78!#;R`fbFS{Bt<6KbcpnymwDZ?^gUHz%TxD4I>*MMSiyH-|PP~uLm&G z9}lKsDbYqus+UuOdY*=uphGF%bAu0{0XITIqa@T1sX&ganDfhb;7k?kPdfF6CsZy8 z{Vw-i`W$V7Hj6rMYQ{Npgkk(r{>1$He*#z|k{c?DUBd6KW#a=BgvW4ck^O?`%KCB9 z{*ai$)y1HWHinG5nrj^p;p8lhXUj1_${z5wlR=~Z`QGlQYzuc|D@?-bjZrvV!P#0t z0X8f@B5Aby*DO`-M{WRBdEV52S4bopw_d|(wY9_Ds`l$!Jhg&CYM|>x86>Jj8b?_u zHmaoY<9CDK4Gki|{#6K+|FNA%`rmH3q7;viyJ5qQWtN3Vu$@8b-wODmI3F0!nv{ew z^h*H$^wh>ICc3b&ur7Y{f9Yt_RMZ~Z*Tzmh#8;>G}a{$XOZ?(XiT7H7g|1bo^?a@vm`Cgk(29SflD zWbC~_;9$-{m-15k$8VhfskzQn8ihv9!btb6C~Uwiz;e2kJp#LwpzrKU!io~Ra);610&Zf zGY0B;^1$gzkA8vCc(n>Vr8ThOhck=57|m~MmuR-~Oc*qQJRlM}ZjG?(HTl42t~B;! zP@BX83J4#NL_qhmxyGw0hcBpiz6j{*j(}D2?+TDRCKdOO_dK0U^Wdq)mautH@dcaj zl)U*_#vR3uhkzhjy$r9^xo4a~#(8X{R{H!FGh}ZS@>)-m%Z0bK4b_yz72$8|C)OFu z9xM8Yj=Ku$%7(04K&&%2g7D|(xKcgK=FuUHX4qx=+NH~egIW&3C{1t8USQbZUvTb- z1Yzby{FHU|u$2!y@b>WVG@3WWb&w2#1>Akk|7Y$N2&mk0raoEMOJx4&%DPEbBlKmEy9hHl zh{*fs&gXLThW1lg%O8aOr{jBPbtqD?Ig_ToQ3B$V$?^Bw%OEIvE55CY)5^I9`L{lW z`T>)JEB{MXY)PA=xi6JP8OoxRihO+SfXN4LEVrt}SQZO}psP*(Gn6d>3Jg#z7z>*^ zB0Z>pW5?l%g`C;0Psp@!lIDIRsFTwU_QB+H`%KBP5dZo$XO%>d^Nbtv zBXptqgPzN*tmRPzwLNvaOI7Sm_Si1QN=J+37IoF*zVNQ|R6BtVcR0hu(km7Pdn}1~ zQD+RTUgjD=(m}}Zp#w8`Vgc%6W)ZG_Ax?2h0q=5s5h$d*LESCUgEhln{JMV1>Trqv zGRVI8_otC;wY9Yofqv=cziX0u5vwk7Q~jM zbc7qP1bkf{bIo)s^gEgLemAwYnk-~^mTWYo!l?qz7q_@fSOi(pf~`d1$*`D=TZ0UO z`6}}|*N^oloCCT3F;X?#Cnurv{#CJ0!dAtVs>z0%hlfy@nv072TYoGjfue*cpeR}| z2zX+l3i`d1h2NrD9t~sGJzf^H_aA!1Wv9;;4Ore181$#5aSM}Y*8HcGj*5l%{{ifJ zo6nmEz=Dgpw$mY}GeyUF{vW#DGN_KIY1>T#1a}Ay3GVJ1bmOkUf_n(=5Zv9}-Q6L$ zySux)ZQz?c&-b|@Cx)Cn}n?A>l1G!~xKvgEUhnSr7^p*ZK z(Ag~(f|0!N{s@Ixvhe-&4HRAdjyrl3CwMniXcOse>TW_3KGq#UV0&8lu{~ zFOqSE?*p4;f>9-gp^V<;zt~ogt z`)^zMY||%m<-V{xVg{>+sFa!o7&V6Des3Obdfkf(hqKiXxU-dbweOKKyKh$A71bNF*R6V z@_-dj8`EvV&K;2TOH9P#b~L4#$X6L5+7+jK|B&yrcr=FB=5;~e$C6HRChT*5G-I-L zK;k7Vd^;{-gML8LFnEAV&|=fehHO8v1*li1Q((6+94-U^1QBhvFrD=(M$QgQxXNJr z`T2#kDr@{no<}IuH7o4g&0jtYh&CPz|Mhk5?8w3-jyesLVzB*x#I(@#%h}p z`rD&7bU2u+Ax0{1O=R7#ZeNUSTz<3+{GsOazL$#s`Wh?N^IOSztq3w#K+l$_1oe7zQFR2$EkA@xv(O;;y4O6~20FP9t{^ncle3zgI;V+p3sUBss zCTc{@{1fp>LM#RyvC#RmUHP4R0mrVn(s$7zBD6wQk){4++_lzMT3s>umipV7Wxhi#{zUgp!W>O^vrUF?#VCx(&iq72Iy}8vYcszh2EQdvGjoJ6^`YQ#EL&` z792(2(2&veKMIv`^6(hU2xwkz^?;Nslu^xQ3i{qXkKin5Xb=dPK5MtWQg=qrx(>yl zp~bMSHcIS>34Ki$zL`I({yBx#=Jl=<@)eDf)cJaE%onG2KU;f%ezEcW4~Diqe{bSw z&taCm`|V{^dkL4VA*dpaD?f`gx-eMenT*GOE}-g%rl#KhEme_rEw}CdsP|lHg2Cxw zG$S*6O!wvCRV<}Kf&L>`^ivT^-mw{tjlx7LcUwXhuTli+x35QTD*$sR>!9*IwkLdp zyR&B%Dm0&Q?w;fje~?Z%;C9eBQ%0_r1p!?ENR@4f-5Sc0xMekRDM#_4I;2VFgZ z)1Bg5-H!%)%m}ETf?c^m5y}4)=)nuZV21d>YE*oTGKyh|T`Pb)MRaWYkyUos^1ogW(M#o@~jZe(tvv$R3Fj^zoU=kfLVR;ac>X7a9ZyhtUN z8xUNtF1JYdqKn~SrGacd_V@oN1ve_y)zyNf31e4w3-pSR_D5h6+r8oZXL6(#At1Ezad7S{{^c54-Xw_awfO?9n!piX{)n zXpL)Z$wSqj9Uhhpa=N(G8~OLc{YR<*Lj_Z$k8l!W*XhUx*tG0v#z8+LCaoUF*!|4*?hNz_cS* z(*t2+I$FW@%w4gO%BRv;SSTpiE$ky#D0rviySeM7v-Z?cljE&f%z9Q-g*oc@%j-D{ z%hfs@o%MCapy>i_2<^jE1>4;4>9L$RJ>q{N7O;Uymk6Tk9`?LPmcK)N= znJcYswIaPq426?y9Ib+uTo5TcseA&RE)_-3(@kaP)k6zn5|afIA-|`OBAJx9H>=^I zxO66$W`Wh6uEjqE@u#Jw51_b9MaSc3@t)mFsm+#aqvNq#b-jC@g$ula;Y&Sr!#!S* zsJ-X@0LGWh^*ra*r0V*zQI@gy12712o0r4 zpw<5Nnnqml0$58qB#cS$9=^8*ueM{@HGmMWRk?) z$H=5jbCNt?p`~tW^5OSlFd*;n$C4Yr2l*)dqeNUEOi)~qnJ><4KS%n1(5%-tYibpf zeq$mC%(`)O^bEX;E!ezIZ&i$1Twcs_zRJO#Y~&bDWGJMNM8`v;OJ%o4)i*-NPhT(M z`@^-TNY1K&2wS0Hx4$*o4DWoiUw&#uqgC`Lt*FQ*H{kdCNYVTyFNel4}okx$`Rt@TYED#SX75IBt(PV4&c? zM2)1#SCR-WBqkIA3Vi~dMo<_I^JbTCU=pJXH9*i}=rk!;spUp`b;B6*G7b6W`}t=T z%AtLk7~+Y+%lMk&sNxT?aBSSO8hU#q)}v_v;nU+S9C&p+XTcT6)#||xUaecpG!$`d0T0F@`zXY+P03) z;04}4Kn|I0szg>I%<+-;_g67;_=d-mO#|{Fe=z(6{RpGN*3y3jvEF~fjd`EMwL0ux zKG?A+<<(30vVPfDoF&706;^=_)*%w`a=*Rx2Gm(*lPW3u>LK9k<@`qv2D}jd$!+dC zob7JNjmQ~;(QG8wh7$-pcr-~Vq(t5l@;@kL;@Blg^5dta&HkBj0)L8M05NqRFF@o6 z0Pcm`9sW!sWjDw6By5(?sgMmgXRqwlWZzyEp}9V%I1u8>cmI6GdZ=S2En?3DL2f$~1=%z@tDpkPj0Fouw@u*yc0;6O^PsXynuy9=$1 zeTXJkDq?xAjkD>Q6kb_7?%bD_2yJ8Gt**+8gOAbC}3(K0CdC zaZ$+uj_jWP&2L*6e*XdGaRKt^%eKCFTtj!>g=JY*UUjjFn#S!UF@A2IIR80)rM`Dv7<6@A9~%Y?7-DPlG<3HI zM%ujY^P$qi7#EN~RtQ=tQ)=SEC%${L3WY^r&q4!Te@UH&@pZ`OFEn3hUkKLuI}T?n zpj0c@@aYLz@*2?xE`seH9j7bcRoI*eJHHPJWvWeFa{n7n2Bx2Zha_PclRgNXv0S(u z=6?hso{Q<>Zm{UPruRCtoho&iY!^}H*v^#bd&RuZ5qEDp_OK%NGp3e zqvy1;I$U%+Nc9Wgf)_HQ7NC1>GW}h~h#bDG=f>OIA z52FykKMwq=9!p_@Vk=P#eP9#{kdW3#PX_3=>TTO{?w6O}6OqdERsfC7D4Afn68hI_ zi*FCbc#iOi@n9Mg$^2WbcEHihD@B=lyKIUCZAxnDP6tY|V*@)Q=BJy=JIzh9-ktXr z`@cjM97BY1qK2*p>oM`uvMsM!n91HCq2{imJFQL@Ohy+yswkPD!9<+XeO62>=L?_#O=Va#Yy z&;Ydx_0Tu3aNJqpH}F%Qdft}jM{jRNR_5NfSLmtclXphPZVb+Lmr{f~rR6Z!*&-cG z;Gh#+s>wGpm>wIG0f5w%fx*?)r^#UmY{YBptvdkkD+H7NPd5~Nmb^E3FqI|{Lu$6x z>ug`!+2sW$y9sJ$pU&4emc{)QjEWDiz&Wi73JRF{ogR?Y>y1eY#0$HR7rG>0Hm?d10JoW^YiPfdOUKCx z2!4-w`Oh}>A*6u^0l0ey#pl%5FY zIPU|hsHhSN2HX^K_!R#8Ib?;{JVSYmmSwb8 zQ!}7?(eF9*=_sLQR#v}n?mc)>grYn6Jg-mlPm2n%=%KFn0#aWoK$U6`0-!D-s3DOMl_l4S~+i$jVDFC>t-^#=JNXFEm*r&-TOy21jwr#T|Jb%O)XF-0%G3}<3R`VXeJ|Mmxq zu`vHT676OG=TN++5FMj`;ga`F>?qCCb0>uylHJIRPRDIGBoWO`bS~e`vRM_D zDZ}GbC0XGAQ(pxL<p9p)jT=~9#j8&BQcOb=~Rj^zg{Aj-oN+LzoX(< zXsspsc-R{8e=9mch{_y_1QHH=jsF`n#z3a*4s?%7*8{yyjM3TL zG5`0{*pTL%L$Y(;`3AKnsg+o@ruW-=T;i=srwlQ%)mfn1Cm6Pbq`ui2K#lDG3*(ZM zrGtf<6>_o~_JnMf;dX_lz+C?=0-_6`SvhI|VWgQca7Pu7(2&=sz@rV$OVds;wx>^` zXf^*=&B)ogf*%mkDBc_@uxf_pGtrUiH-xusitiZ4U2%1x7-h>)5zmZ`VG0LCd>=yV zV{*RCx(wjS&-};W$X>Od!hOD#a%!j!mWX4FhDAi|iy+{+dRV?wuW|l(y+4NMDWK#V zH;LI?O(4LY6H3$k{Q!tiiznqe3LsW#6pjT64|vV(3CB5q~KT% z4EpshCwL{`^@b1e8L4YRyEV(3Pq`+&^gT@WmHpg%m;7Lb3cGkPI08xB&g2|R$edm1U3W7!7)t`Dg+@9%$=m|anE zamIj1?BH}Br{Vt6&&fmrE8Z zLr_i+50CXAxoB%l!#6&!HzD>m^iQy*HwO$^y6@i3?{DqLDYx>jx^2!8=biU)oh?Tc zA7vIS7b@16-!pk#aCKx4(?AjUbbZp&FBFi=?|Y$%rgJUjy#4Pj4=7Jt1<&MRK<@@E z3UToE%yfqZ;0ZXQ=Uxf2-%DK;3&SS6wpL3UX%iC~5w=`lsg@Yz8x#505@ZkK@`@|S z@$2j6qs`;5rB4@_G@D#zX#BV5;SXb}J^Ah~oCia`jZ3vX`I4AT?_id;L|Vbky%BSS zfBV&e5Td6!Cp6^a2%UUVaWv>$Rdrsy+8y@!;R0*D^=r=y^q?*p(#JRb%)j5OjC=G*tTm7T0mo0_ORGk^Rjo9Aw>gP=!0~ zrN!N3|HdF95TF$2Qse&Y|E<-LmX3k4O{~TK=xX4iw94Y;i=He6u^Jy_UFN6-9pbjy z5VVKWbH4KtuMtBt40>Jx!@fPui`f&_O>;o;3#Ch;KZX74Cy2vGVk>TL?^B@a<_9#u zna>u{L)P;Y$YchOr*m&V&q+18yiyxaWKg+5mxVuUF@)ePoUF=gon37jYO!x7d}Wab&)t{5*+wZV@M^N$?prq<(vKW zG|XponsreRpk3bSVd0-yil2pq>S_)u6TPCdNvAxORY|6y0l@J$;r_5`y6u($cRE&q zWsZjHEVr>EH7O1P;pPm~2b^Xzvk=(VNBfb|A~g|L*N1ce_)fZ5BYs|YR)>&;j@=J3 z*DUUa+}Zr zxM~m^92Rgu$e~=K4hw{|-m$UhTI=nxd=f2u-$}$Gd`e48PrGO+w#_!SKq^rIo85q= zLB-L7EexI29<^#TU+%7KxZHEw;d=XvDOj5Y2kVYL+H~@)I{R~j=Y>%cug;1i!7hJK zU}RMI`C=BQ{Y}t#yz2mEc(mINB|ck4AR-Z2AA55+4hs^UNYeXjCG>i0^H5zT`qN6* zl+$7}OO9FyBr4(_D^qZb&xbxP_s79Y)=9P;PVrGimFv@VxTI)mB zueD|IOn#5YLS#q}dOdT=0|KV7_-(M=oh~y!_X3N__~ugW!6Er|mF9!)l>F{mo!N{L zx9K5SFt(&uvTeM4wk;cw#=}fS831)52g-^soha>C^jS&=6*;Sl$l8>vz4b?L7RXC8 zCEDoPl>BG|tfM!D^yyIyx*eCdXf01!d#C^#FBIPO_SD}K;`3G-W$GQCCk2>#_?Fs; znHr<=pBM>%F9W7@QYHnsiT8N!p8Fhu1-Z5(qDD9vd2UALF2YstC>DWBS9##I@GDCt z73tbl-X)Z34f5$I;oI^d?zG3#_7gm+98Vn9gYATlhY?qJxoq}}bZdles#WVfNqTxZ zKH-aY4|j>hH4rq#Qp4We`W@7nId62dp9Ujv+I-3;BrLJ+z7(*BIZx;AvI9H2y8i1e zW0ZFPD%j{TKu@b#gQ7+cyQS1gpW?m%qe87FHj+SRb9OBH%hj;&m-iW!J>8aq%J?kX1f<|f|~E0BNCdBRb3-I&k(`fhT;`yrR| zner_LMN%B5{h{P`JzuR)2)$2-pGJl%WZEq{0uvMJlo$q166;9D^};Vjep*=kX@6{8 zi#<^a2K(FJcj(x)bpG1b+8amX19t0mA9M=YV_6!|we&%p#gEC$B;$#7kEF{kb=nst zJ`m85T?zlC2@})r-Xb15`DMg?H1#EyuvuS&i`(%ihYhz7WTiqd=~00eezH)hwxw@# zG;DNxyo3mduwn}ogbO(|fGL?whax=Ga@`S;xksJG+)E8vs6vGn4nbyNVItwj)eb9k z_KFw0Nd9RghK|R!lAE+2^7x$g0JJJ`{#U+K;xxm@3M#?-se#NagFNBm)9*ndi7$o|01{- z`4kb{UeJ3&=CP(+qKpcPB8S`p6bhbZyN@YR{meL8v5 z@h9p?Ex#xSDyf?@a{P)5hlZ@m3-l926IeGR(V9927(@38A|P@Hk2396)lODD7lzW4 z__so@M^r#B53Kj9?A_kjH(039mKcY+(2l4{v5#pbRM&{)zlLEi*Y!oTP}>Q-IM{p; z4YlF^`oRDcIek!D(8BNe^yKF8nu==T#Mn7hPvvktD;69>786EYI9qVZUkm@VGBj5@ z<%+4{>7~&srV?oNEGSa&d!lQq|F7#E%G(eHQYxMZn;{`i?7Q~jWim^>b9;kHWRDmM zq@XxkNvw&(3Eg740ra$#1Gs4{i7ECRvZlvk@;*7P{kX{PW4d&S!MH+ERFwSM&}#Ye zP8x82yuMvz$!7~i$g4unCdY(Cqz@oOh>EXH-WP_rlPocC?DN!~9p!isrG|GR2V+)m`SK9~kUiW2E6>5zU`E2`GlPJFY zg%N`*q}8Z7>pNW~AHO=h>(@($UE z2G0TQ3Om&xBJaq^NEQ$M;|P7b{sY~jHf1%T0`G`e62FIdn$Uv`kIx#)P2Id$&+fG; zO*=(2nDP9H)Cf1@%vH3s=p$mCfQyWnhzKN5hx8vE=GWy{agrPaiZP!k>i@L)frvbm z{jVf!37^W>z`9;@-Bmz=gL|SafZO5N55VbeCl_W4y+lOj%56B^DoZ4U5#NP#==jRb zmr+YIm9Ecr0s{@(Ok_dWZ-OeFo=Y_v!IYeeW))JPyF8ekBHd0xV45UrI=m}^PIEHH z#V(!QA0PB#%v7tpCCdw?F3%LS}Mr$VA!W^KscF zzR@H+m(46Y3A52~*-a@(d4bv{zpsQXWKe-`8GW7)biyTbpM|#F_6BzMs5Tgob>}<5 zV|C7=T5eGKWOX8N8?IC+OU8|bU=qGrLM^fHx*4}xZ!w>4y;$GtJW-@)X1WH@W=_Xq!xLkH3P$55G#(2*4`sN@m1N(rVZ7@L2V}7Jk^_96K zP%q*BEcz~9ZS!H>ZIIuF*mgW49GDCCc3)}8{^R;*Prwz!WuaVn+`3aVVSv!iPxjA- z>1V!M6k;se--|FlUtx;7CMK|wRSqgNBOB#ge+g@~xI<0w-mvnj6f&@xZWXz$Uvawa zmz_h}l^B+%u*EZS<$~y+(v8>MpX5ax%()06ju_iz308PIJEc(xJcJ6_J|d^fIf{%u z&%&y|QGKcV!`c20P}V`r5bj#&8C0k_+RiDIxg{T zscrT`9Dc>-oYkiqHCc=sNNa6hKmctJ!P>2kG|}K9G;~;(+^VdoGoV~cNXAn>-uL;A zSB-4;9EX=q!FZeP5{#3XsM^N~Cp@8or@)ro|d84VbbnZF;!1AX8^8&m+Xl!)o| zv&uoGO+Rf*VSD_F&nNS-(>ssEzgj8kp?kH9_RNm@{f53kaYm)eB_#I_yW!-TZ8}Bl zYW(4($~>OhHQ$6lELgO|GKt;A=gZOf?-GVS-lLfqT8T>NkZFd_XURxxJJzcMqRtup zjJ-MotccGcdg~1L7pyZCG7|5A%TmvqF9@Gzu!Y0Eu=5=kH5pK(M|!>)q;n5)S$w%J zftFa8NsT%QB#QD_W;MiPh3T+v^QMgyh>(^^?QYc1I4fypNn6AdL+$`u>r_u#f= z&&W{~()2GWgESzX|MG?!^y&%zklbru=bs$u?DA*#FoeHA!_Yq-JAhgComl^vo(v(|^T6u1cUuvtZ}S4qCyY`%&hP+1bqElBa$! zNB|<>DiPaKD|1$Gpj+r2tu)>`U9#hTmyYzO%Mtmu^Jq0i40JF8{h7HRm1Ov8*j7!&^r|S+`;rfj;Qv1zcC%GlSDFK78JJ} zw>u8?z(!r}$4=%!2i}PQ5t)bIV10^D(n=_UMQ91SM{cz7d%Qr2rdqXoygPwrnEN_y zh{uoLygx2lU_5qvHMXr?j%(|AgILpXpVC9_T_q8VQZ|k8Zw1O}%xUa}WLmB8g|yt^ z9f>M6aZWth9o*V?;np9M(YEE@kIAuBk&GUthQ|Hb@!=)l;j8F_<>|#o+&&z3+8CWD zq1_pXoJ+r5X0tHA(&*GfpDlj>qjMMt?^l&Od}-{B`l}fQ1q*8H5PD|o6PXrvFD;d*hCM%vyCwpL9m?b>2ZQ5 z=fsEr+QjAfl?Qg3g3nAUj>VwF{|J7Z!EyZ-%hCGKZ8yQ||9p3R^4qmH&ZQ>VFlH*< zvj3=pkP=P<8e;?>hui*U~DDbQK~o@n(^_?MnuyDHl^;S0Jm z19gQwCw>mGG)})>J@zKIa&HGshZM=8G?$9=Y$Srm0P^5g^#GwmL{&;n4I!6kUCS^F zR-enc#=LersYAY($&yV4`a(WaS)h9R*Km)kBzEM6nVIiExRpEnAfMy!G`h_eR%jf4 zyx3&MLLFC`wIdabfYWv-IRbP}sa@4gh3Yf$sWOceo*Y)rJ?m`Es@W0TJeO!TR&>yh zImBIe3&{Hj5XnM8Zoa(?XRA-?|6sh<(aXs6*f-;|9lKsGyxCVKPCN)b7~1tdy5!zc zR(4u|sN4Y}*U&8z(8)_?sM6key3`Ypqu-8v)IndHy&F5B+4J|}jj>Yt#Go~~kx1@D zueB0)+i)4l130$$Ba0!;c6ukL;c$RGW-FCuP`5jKNZ1ot(#GmOt((?0e9n3j8^%wD zb674m@T`+X%H&NX7x?N*@z?eSalqlgYlGMs{ZhkH|S1AIM5-s{t{oh$XH_-^A3Q`h4H^T?*P zP<7zRu~QAtqd-z8T{t0E@6hDSoV{9~g^D+gk9U^AAt7QJyb^^p>o9Ex!wHn9oRS0r z6X~IICBod!lOJ9^NI^7!*yc}ILZaRH%j#})r`>2xw+-S6%re2wk8HpRmwln&IKHD2 zc*VCC?Rhh{5Z~!{LB~~d_x4BdaPp0b%+UO(D%0bhYrHh#ps707L7Oz}hx(bn%l*tc z*i=9h&XYpSjRehfv~~do=bQzx0p`ac)jN1T^j;M@*+}x4lJLpBV9l0pGMXYrpLW=7I7>66Uz>g3M%lW-Kko1( zu|G<$x#+uBEI@2|=m~g9kK_q^`Td$_(`!z(Gnn4yKTFEg1&WjnGR3-`6_OmPeHo8h zNsso)1P8-91$FzI)qn8j6~RYn6|^J%UNHtU^JhStGTG+`uMs`F6Y-ZHEumZf!+Rx} zE^lP*^}q5~psg#2yi!6ltREcKgU++?UMDM?zxlr-Wm05(uh8}Kck+ir!V8V+^0jdo z!ySnJ3gfehGQmqN-NRcc(*F>wz@S@|@xlvblE!oJ~jhmO9K+BOiyjA0Iz}~zZiRqQp zet)bZ0)%s3OCp0!o-G|bB78VrC*Ahhjg!VYp|u@J+MV2bwUHaR??8fmKiO8K!tLrp z;0F($kQ_M0&dz&vcJr%hehAXJNw6WH4n7U zW-`dP@X7M}`hqw^hEccQj$0hY3~ZCYWO+stZrj|<2NSlnfl^vt=aWyWTR4rdBW__Y ztg76qgk|=M{Bi~B(w@$INiRNTN$yKCOpHjatu`!XI6NtF%NTH43wC;u6P^{PMlDL4 zvr983=$@Vzs>CG893MtTslEX^dSB3%?_JEuJ^Y)haM$B2vcT3w{RyMPH1zYf6ZApU zgL5e|p{YEPoc+EAKq%m6CS0)z?|H0V@aB`*+TY~Jcr)ndjG(PJTMZs0^0LQ= zJtA0#sCbBKZj5PNn1LT{eC2OwRH+EqvuWR0Qk|MyU;o^K8yirJ<>Yy~ztKQPPT=Ii zo>a5^IytVrTybY#+5Ozy=Jhe4?HxxIB(ggHEY5qZ7fuUK9skO6tm-~r6v&3F=dg}0 zCR}EJ`b+3oFFko`D%E?7s^s)wTL(kK_*S-}r;e-~I0L#3&ZZ}b1oK|SV@pP$qHa|@QbAxYdO|LRJfo9SG1Xtvb zg|a72$@@iH!jp9p25Va`r4u}lI}`cbmS;cM7>%}_U%T#}ZVsky$~yqpwNj*+IvWx# zSfu{mD}%|0wTC;?y`6NPV`iHW+Q=1wdl=Wd^TLN#-gQ`SZ*L$L5U^Zr6CIdvJzOn@ z@JxAu|BQfJaCSVaddKR3b`2mgBK=b-EVo7cs0}VF6rq~E-q&nMS0#TLlE$9tsBaSX zYJs7bM)>jx#nZacBZH#snp(Ut+CnUBFDy}C_^g)|^czjwgu28Qy<3)$G;EU| zpDq!8TycFaANO0oa1_HKBGOuZffw^=z|lkM45rkAChEAWI{%HQ*L=5P^GH^~_1UrH zkG6nZ-@=M8L5B9ABhfRWGg_Z=ihvyMpZJeRFT0mCz8w%5LPw*?=?>8;Q*aGtVp{ZI zQ%=w~2DcaEyT4=QiPpxT{R=h=Ab@jvbi7wvY_UPiIDdvLkbaeS^3j^g(c@6x4td; z>3V`yLsc-F?&5XOVkNJB_WGR-aoDE z`2LHdQ;uwvQ=`S+=2Sy#r5Zwkn0bb8N7e~K~p*I{$xw- z3twPIs6;NbUiaX~Bu?|MEvok_*>pCJcgHsF{PqYPD_%Hi2HU7@9{kS;*uhVx**)%z z+a9d+ka6a(+~kosVZ}QE`p;Q~^3+P?1R2dks?~I2h{vJT)C8?KEV~4^UM+B7eBz9! zbOECe>uKOrdMQc9^Pr%5?9$`&vxm69c~OXqz!Hr79_a~K6kVyhb6ZBOUp$SYwDIf` z&8i;BTuh0I)OVo%guFyr>#|? za8hdqvJbzN0X`CDiC<*nu8wXH8nwov>C5%XppUK?QKi!Dm#Zw4Y87Q~1nFYoxH&() zKP}ccq`q0<@AUr$%O`bm^~!!u6nj6pU^88R{x(}QgCZRN0dQ(U^AQ%pry>uq9?$eT zHzUAGJf>GIgW+~`mL3=};9sxQYR-ARKmD~A`*gH;#YAv%&gWK7)bjNFobzXRhvbZ~ z?HuNhxAynaw!%xXherF16(>)$0l74hs+t326uBf;Op4j7wfW$d^xw;6CvvG;+5>y% z{3-3~MNs$}a1*9#N~u&R~B-tQ*bHmW!P3cIicNuO&g?Y*z_2 zrjvf>EeD;mQ+2u8FCnzec_lRz9tl`Tp=A&4$kYx1jq#KksIG-V)$2~1;_mIiJF8|Z z_cyCo?(o14aju7FmXYg({t!2~%gRY_`WL-8yhiG3t1#`+V5E0#s8AaiPPi4{eOr4s z1(ff^p~w%^?>ZUxx8+7@^|9kJ!7#mXt2MGsbJ({svSe@fkX(G;O6Tn)2z|98XfDm1gFkk;nW11JSqAw%9#*3tp z-6O0fIE4s^1f->bR)>A`aWw+6=J52vs@?Q6}f?A?Rt z+}bgka;{qurYu=@;2|fRC-OS)hR~>QG9jdt<-*0o^MLCFw;@9P=-k4Oua7)k)^jgA zFpaqF)7YqGiInc4k2rfOY+vFyh#I&x5I+KMNcJP1L`Fko`o13t!$=uKCv(MeFD{ATE3kFnZY>*ph5Uh9fL@(MKDU#PX&{3|FTBJ%U@n2po!p4NQ6EaEfb@sU}* z$sCjD`h?xVk%DNzNTvW05)pri7h_^Nls!r!9WSC_iYdb~SV11J%iMGinfP^7i*E zOpbpxH|6F2Om6lY+AqS3>pcRuFKNtpL@A>jzl2);kXUg^*7@kh3qC&%C({i&-`llY zU&1E`(hMY;d;dJAP%|Z}+lEI-ZzFn z2XAdp!&Ijw4}xbQ$)i8vNH=dnxyqN0j|0^|=JX7AncUg!zdlc_r-=V%I;YzRo6C(F z#VQ<*NU8_&78fwLEA#r3C0)^b1nn#9R1m4?rCeZHrF=WHp>odrk4tYh)Fv|=$7}>b z^Ucb$@S&fj6c97IoE|V8YeQ3$bgsMB0N$9Y zv=zDb4nVwBURKk&sOVW!tH$k@OUmQHuc%__lTAR)z6UR^Epp+rW_7;l85F2xOUj%s z)=RA@Jl-9?eO4_4OSL*Ux6w!@Qh$`2%Qgs1QnE&-*3&5dVa10lAvnw#94w$#p@q%u z{6V$sS!!U6_r^)!>6NOH7F4T>oC9>j7Xg--ENzz;m-6YHmHK`7pf5JW%oi{@JrJlh zWtP_ROF4W16vj=Rq;u5IP#tMELIuhk{1bNxHHF8Be|oYDXf>%)XsM z4P|&aElhdAR^s3?sOsa!aujw}WR7%AufzI$ZR&1_wjx~_ZVh)ccF@>QBw)A+*tkog zSZw1uU^-i>&K6k4+cFhNgax^^q&_oQU!DogxH`L;2_RVCpB<$lA@vbwryiLyhFyVp zT9|kvWjwLRd(Bp*TW))JQ|iuaP?lMEUz1o}EU$_45Dz31#oCT{aj$9gE^Hzzj9psA z&yH)_IP@$0NsgxlwcwXOyie-J5v-NF1(Xx}UJt7K8&$x+ALrsf5L?kg_Yb{Li&y?~ zg+q>T#*uM%zZGA&WLrO6Z-tO7HCXr3?8pog)uCfLPR8X%Mi{U%J>+)h)kl;BUm)7I z3qaGKr5=QpCRbK|p;h{9DcX+8aMU!xkm{Yy!<;R2N%h#^Mc7fw-yMCrXLIF@pyOG{ zLJwwz+JIb(gte~gzb7jEdEfWK)V|QulFnq+11|QhB6ETcJN$vUwRLipts{NFWtjes z>ItQmKIX4s&vgebEJ=IC1ixTvXvM5cN*#zvw#B=2UX-Vnk=3ElD zDQ3v~g#)hwJrDaBPN0V19#cL5EiF$A-m+-Fn&;8}otc?gF$3S~+5gD!Y0~&ns>%9{ zV<_W&YGS@E|I9iLZCxwrd^To+$y0-L8QGnGOf`{gYC-=u_}0a_l=uT$z%U`ORuI#O*g5|eu|LbqL4{Hkt9VR0C1(e*6GyNs_h#8eI~eyxc~ zBp{Ta=~-bcU|bT_K9e?++2zf?xq zNKlxL*{*<+8Rx-zhF`d#0(tYW?nx4|qe3K$NC=s(caf<3%Cd4^>@ zCz-KsiQf_53UycGM%?+2pTDmpcuwq!2~v5R1_t(mJLmR%RaWWX-nweD}$ zc=P35(uF-(POZu>=q)+w!uJZia#sJ_mV(q2$as6rnvDGmAMNX6CLh27+F&0++4ZMP*l69`WdN1Mf$)9lPwU* z@0OZ)!b~Hqhc}-q0nzO}PlC&d0TL8>Dl;7|QF1KI?V#P&AqW*dz7X$pJA?bCi>-w{ zHeMH9q%=)#;o#A*!y8YvI2DI3dm*8>{#kEL1(U;@LGVamQtar{dzBiGHmET~Dv^O? zf7#5P=g8s|X)Jx8c;@$(B4dT0U-9_dTBA_qR~RAlExV|VpSB^VYn(o2DACFNRXU3} zHUvYvnn%0ba@}ikhlf)zFPFjt(J}Cmd;zC3g**{{nxf_+9=ji zIihoCg_|7dK1a8%`+A+y@6Dhk>rndJa}r9MjYNSYq}B8??BTpZ`celUlB zrOWbu6Goz!_k@_Von$f10|)q*JB1l`WRwl2@&3#wRB&q%`jt)yx-^b>CXa^MRi3gN z>Fhlu^QKh(3!&$t`SVeU%|6Al_LG{YfAk4+wpyp`;?)tQWyBbCWG$iT>Vc=_`%fbC zTk8OlnNCr|HMJ|(9qa*dVTZbg7o_U;McY9Rkz2nPw39&(X)bV&WtYv4ap0i9sLBsk?;yc7a?8 z)F;mq&Zwq^u`Y;wk{xqyoGF{J&av_AzS=AbS4y(5T3%u{I$6P?I%w7K|4oWr*&a$9 zlHG^ItZKu?{Tgw;^hF`lQZ%3ATBERjki<8zmPFoZQ#3F!p$(GfuK&6{M=(jj#RbLn zv_t3iJ!_HayqVMn`&e`|r`EoeLP#3R5M;F|;s>RZGv(Is6@BY26xf`q*RFd(6C2_H zRY9Sd9>bB*X!Ua@s`eIF0ZOyvd|-h7w9dahzhDlf48Rlg{Ci)KNZZ%`i#6wMGa|WG zz$S!7$ebYCqR&pdHX3xQ0_hKYlM}FuqGnKUIs$SG%d`@m_&VTfeRP^<7AZH^ z+))MmiE%XCV@wm@XF%y~Dsrda9&EE2@lH>3mb79`_)LhMbu;3X48E9tq+l~vzofrf zl@0@2Y?A)1)x!<7b(V`2VnyeAE={hcZZ zOY=b-4kpUhJUp1#*&2n%87bPl>>$bFtP#kzUnG-~Z4ZVh5Uw7G`~yFDlF)L$UKeNB zC{nwI{OzL79JWH@rbG5;73d ze006SH3q$?%ilnSv??SJpDj}B#b>Nc_@#NJe~2fHAk?->8SccbP|yeSi+QzSar?Zd zAtbRytF*2DW-KPccdIO-$4bg0ht>BD52$84P-~qlw|>#RdLxnoch`jz4tys;H{S-I zR`ayK_)4fk>TYg$_J`cKqUoW4bLU7V^v*)=Ja$&Vn=n1G@D-k3J~DYR=ioj$ME`Q% zlgs^sHrqFI@XxXm9BRbAxK&#U`M5p!jXgOy%S=InjDkA;nx{~hgi6o-7c8a9+`k%| z37L*oW$*RR3nCR}t@Ma!0C~=L{BVOM>x~)=VYmTj@n(sPht+|8G1ub6nHj z5i5VH;lrkC#PAYvNg&*1FG;hWl!g*-3HBsCEUZWR^hP9TQlW@c@Nc6H%o@PXrL{Ds z@waq{fY^i7IN^>mG5(ZGmpCOuUpw({%>oJBG(c9w5GfV@D@p=*VXl|Zp!Zfr2GEmA zCoUu1lkL@FAtq|*u`}SfHnnddVl->KYd^tA=Tzguab@=lL%#!%DhN^tRXv;^)l~uR z_~Gp&T=%GrT-Ww*WW*40wrK;iPzp>7CSV6pvUdRI3GtrlBl@OG$IyfF4dy_8neCuE z6RnMD_tCI#xw*L(&1HxKk&}Al0AVORau18b>5m*vZ?@28m0H%Y-`#i5DFzrnfdAi+ z&?fD9s7AerxBJzQxVX1xiz;?YRFmxUimdilsIcM}IMPNgYWcY%H1{$VKc4Ox9L=8h z98n-9Hu^qmsb-`BgLHu_)@JejH`K6%Woks}3-6;x?07wf71FZx(Re~s#>Us@pD%UD zjkVEwQI?~HwU2U#BSjV_NY7;j?sF)x64G%_cnn>K{mIpF-l&frW(h!~g1nti{gl!M zXKajncodd01mgyHG2r=D(qGUK-fuHvkC(2kT`7A8JbeqhvWbX0b6o%W$4Dl+v-A^< z7ZKBovB$gm-{%^Tn1|OG2diIO&DZO9z$+RYqYDM*-QrJ#G(8c(c>Dp_^TWXX{UM_6 ztK~{Zo8%EMYPD$Xy-O>UVx1GV9noSrW>7MF?IT+KBZaif4Jg~=Ku8Ds_*L4_CxouR zIQAA9DEV!&e6>@*9R0wDQ3Pi^x!jh0sZAH2}kA!Y#6=hoEV zVV4?FJQ^~QiwCHZXWN-iSD&m2!3dgIMCQ^NAldr4uq+3Nk-HMA+_w)>U_MxUdHXn6 zRiM7Il7j$JUAf8mZ0Dt2^a4JSw{F2ItUFosG?wP@Ix z2G-MHTSj2qm6;Nu_|U+Z|8u7{47gx72AnEBx-UySLB|68qj)7-G-mGGi{4C;s5$d~ z+_CuHtY~}mO3%LNGipBcm1GtmB^+p`xvcidXt7=~q21W9R#tVpjp$36F?CbG$ADSSR!3J1_w#@?Y?!V!0~5;Wj2)E*}LU@E`F|}4miC? z!@TS2{JDp_s~`|a0rGwIQ+(!k&?tqsFJ(a!+o0LO#Ntt4!HnsNl( z22~ypaS48#&xd$g*UQ2#gyvja+!ColpEia$-OskR>uyn_FpR?)|E5U}?U%5# z>##y@s(^qqjW>_yu0-Me-T&7p|Lzz)@EXHuJ5GR74%*-H8G#*GAS6>rmJI*#E-}Z= z1~1C<#sB|_5H4yp+!Ol>cKw|>#q44GMcT!)^?_PHAr}rK%#MJk?|;nY+Bg$X5yKan z{|PM1f;R+mt(NkAMvlEJ*PuD(bf>Zsb8eC|z0<`h!|_b>iH?q*+(8IDMIFRK3!L+~ zpa&yHQ&*tR0m$nPJ+^0SU8B?|iWl9>%l;;{JT0lgJ>SJWu@NQmCGXyBv2yL``lM?^okf z!3MMwpHesjWy_Duwzv5tKipF8RNX_(&CC+{N)viuJ7BjvZdui|_`T8zMDJNr5y0v~ zEuC1v-+n=_Tc#2X*3&wYXMl(!qv~su;a;3XQA8UG*6*h&4HASlgnA+%ID_HgeaysS zMiYNp0zzZl{N9R3twKruwzRowH{v8HNP-l&Pd98>MH-V@(LI?Q_^-PG(|7So;t=DJ zyO+kp&uT3b24LJs=H$Pd3QlKO##62R&pOTcwH=_CugNT(jEck&F>euwU^iU}CtNY} zaHDjAo~Ii+^^iAb!x_+Z+9fup=CYZQs)81BGPGScT?^~}0=D`6noz1Q&1FuWxa7nY z&w68bw_fgsuFZA^We3v6Qky>T6ULvx2#w^>Vo)xkN3K_uyQ`N_yRH>uz~fdzBG6N% z_39{T;5$u7!@tjuKCNTNyWhhx-s(PCE3=a;o@%}fDc@V()ZEfC)51OR_!s=0 z#@?=eL6`jeJmko&&cgjZl!;ZzI0WD}C2xhY9Q*Y=-~t9y(Gr}X#>z2L9fQKU~ zHa$riMGeiyl5B+;GFz_Rdku@_0FOz-VM-C<{h@ccKctvG>K+T8Z@r%emzmRYdi4s zeG;)E>{3xr!1n{xbo|fIeVR?{nFgaqg$`99yZ$yz@2y-yR%e|mK}F8PP>OVC`sLp9 zR~Nc;&|%_m$_V*kYnqQ)HbnXPqrkf8s+T;5!NawA#lEmYXoKDCz&^x@l~K-E9Y5W% z^fGgXF-9Tq&8r!2pO!^9!aPQzS+n(a2(CzP?>;Ce;F$crl{0}vvrQ=zmX6;qGc9@{ zo!g2g>9YZ8AFKl`W^H94g6s+M5n{*O#gm22#(1~tG3>vaSid3E5WI+en+GC!+KBIez;(s!D%^w;u)7n7NnBE~wNRnXF2?UnZS zBVB(D>F65fJo4gz+X7a6Hf7%Zq6$teMA0hRL!Kx)p);UJ~9FXs?HL&!5s!Rw|94D+XwD?I?mFZA*m?* z_KQ&$H_2UzdHv@%_an?pu3oJ@Jxt#@5-v_75Ta`Ih<1@9sxuap9w(yT4m6o*4h}R~ zKj$**L^aTcUD!G!IJ9vC6}^_}KlFmw#6^Cv?Zj)Bff+v%?^ znkurAbEB4WvSO73kV5WwUdji}tcyzXjBg#X(Ht;$~*T)vaJ zgkYWB4~-SMm6-P(Tt`O7%OaYIyFCdn+SPC0jhuk6IvyLOvv%v5^h*T&{A&*mlXlv< z|5W)b%MNRw_+{zTeWYRAAx(i^3A-O3ExEo3WQPykjqLm&DxKjY4G%tO)vnYV^e!h@ zQH_YF>?xkIO4fgkh+veV5psJZ7zje4e1l!Rtwt9@lF3PF#>P;S0n%hUW_0u!N^ppX zF_aEtm2dM=ezdPByqQ|Ap(BB1y`^BdkE{~Pd zH$5U6NS`dQd)jBdMTN7$TH@&p?E;@PcRNg}JQTk#<~`m)h)=!k!E0UEiFnbn zalnZ@n?v0mLa=28AyV}i_5nb$iG|r*^rU9s90W*#%(Ocp@Buo{Vp*1v_+1DlHlhb= z?8GY3yEkK*z=XdF*3>{}g^1J1bG&WFQYr}^?}fZxZjc(Y8R0O9gs((%BF|AS0ra5` zeX3?3sTmWq|4dBb8$pt`CreSy$YzmgIr)qm_}5J7ff_i=7si;OrEq7S&hzCr?&g@d z)pVXSf?=gSc4=$9^gEu|hHx1XYrEo?eVz9wEy@<_G!qzpxpuaSjQ_4sNjUc|YTgY{ zfOea{Tk$wut{gH@jnaWgt;3uackU^9sI=2koBy7MCL+~w0tB|zMQcXybKr<}59S}? zjmb`dnlT-oC<$7Ur_#C2zEu_kO5~!b>it+V;m+qWQ5E05m*pQ8dq3Y-9gd<2U!@Y(JNG{=&pl~#o;H)qmtw#8MyElUWX0o>zh5GqbY@SKZ`ueRE zRLp+$GK+?k--CHH8%J_n#+LaHKn$9~Y8*!O^d=A5BE_}aZ=C!>@wQ+RVCfbe{wng- z_mw-Pxf*+vl>kSuif8xL7+#Jvd9hJFce9%p>FQ(MhZg5%#wTb|%5*k|x6ogCrcjSl z(QmB^12dm!&2~?o1l_iZR4O&1HhjqQJ>NL8)u3JW`tL+ZPX7#f72zPVGp!uXWrNFs zJt%B)Ppxz(4MiJSe2OqV6bD{?5|2;IJ&?e8_zgARd$`biL>9TTI! z7pG&~{USvn@Vur2w?JBJtuLm;7(XwpTolK0RmEBdG3f6yMLi|9>0-nphDqXDypG1R zB=2(g**NRq`lvCHon@y1vrxPq^`#5nkqN04i944+=Y3_T*QnqisLBokT_uZQe$C;% zagBO8LGaRRCklI@{O^d{XJ(4Rcb779*qUR&pWu8>D?@eC#llSlAenv}$VrATKqu)F zj-}JXt?MktOBFF1ekcoK;1on(L^2zH44|$nPeFlWvIn_@l|k-0LUGIr#!#p`?$$lq zDsUJ!BNp}1rd(60*H2_d>)t*#e!091QLMYShQF8s_4EiSrHW7Kc%^N5Z z-gqwx9d-@(-ayY?XIA}!ur`^Kp1+oQBbsZwu|9jWcz$`U4AZk-&W#Gt#iODsKIrn%RdJ=^{0K$5 zF*GIL@%aMS{%og}je;Uyl=;@s>Hr2?oTAinOglp?>I?nKbK1LZDg)eS38$jR47gLkWxg31OC zF&^tVqy?<)VjC#2W={AN8CtLD+-gT!w>ov7B6P_H;X`}d68V*ST8X8t#q4DT!9xuJ|ipW7FiU`0|yL`SV zG|8S`bs1EVr{M<7>m}-FtCOYMtUm2DeHXnHgSp`RGimks-Cz=a^rOFOJfSl)(-W1T z8**YvRzgfne@${}z1J2`^y+(VWrk|MnN|5CcOeaKL@3Ic>mG#|35QNE;t6}}IWBWzV z^%l_1zRTI2|M|wdOjN-ltb_R@^UmP_lskW`?)_ zd{=%wyB?&kYsl~46TUa~=jE-vHvP^GYcU18O7c5uH@5IUE$rrxAnmi|(y;H#{TNwd zB0FnCfxU8xkb)m6TxTNgu-R$`*@yX0TwGD@1< z%?E6Q)eRSwL?b$#4udW~mwPFBm4K;~{ZEE2)9(DJC~;b&&lRQ4dThhg-lo=*V)UGd zdcPhkxzhW2-C5_ZB}SUS|EvL2+6$c@RFWtK$z zXc9S_a+qm4i|-3syBj&>uRL#=IjRv2i$|M%fuHnhBo~oG4?TPo6Gj; zol4`(jZc|G0DyNx89hdZW~1irAK}WBy}@fuY+%p>fW~uE#mwv&aU4{fj~YcEk2u?Q7oBqMg5q zh6x+aYQ*87>n9Pb{_Ly(_Shboi1z1`RB4z2O=|aW8LD2Zj%nL3_H_mDV@frYf@7Z- ztuN6ZfkP;MDCJ4Y0tGN9;!5@FmZM4u-QKDC=#dkCx_;ELxuJj~ZZWg^5WbN#+ zw4T1P*63+U>>gTQ^Y5~r&lDh z-(Z2FiSr%{-WnP!fnMdf@l5B?>mfzb2OWOGu_QDcf6_=f7B4fq)b9IoRtm?0K3T8v z#}CU@Q{_E%n{&Qh1Rd=uQvHk9Lqnv{mFT>o*blKjz1lIBVxMlm>$D!fGP-3TRMoof zjKsdUJ7rMnvs%p; zt%jhxbDSH;D0O@M$}%gEm{X}~o4!e`$)k9}U6^0|+&n>gWO{to)U*3d6l>!k^@NaY zO8fyGK;;nfRg>Aq(-#3i0h2OvoyZE#P2~XMZ0{l2X}6?})#mA>;r$GiCzI~w826^6 z&3K;s&5*3sLL$BE^iF&>z<-D!_pn8$H~d4c3+31dHFNP#WJ zk_e&xrF3Zd`)+0MZ1O*o5$N+#JG@`a!s8O}&=;LYbJj`dhD~pCsw9o9<2ZUU1}RLgKTkysC$p8b{PkP8XNBDxc|sD3 zwP*1xiJY5|@h?8~Dh9CLYK+-jv|^eBRS{Xw0W4!&*nvwfpOebnZ*N&3`h z6OhdbkSO?X&sfgh@1fhT`fn(kO+-o4v)V^m)vCQzescT*ymNtUPXDof^nXj(=lTJ| z4zivpmjCMK7(s+5)!)J?d(AEq(~{FZJQdGte5ZZ#lcC+Xbp19?t7VI)D%=y|{9}U9 zy3j1^hI-2d2H@aMdKVjT>ZHI8-{W^&hOG_|bMu$1O8^#(6Xu3caZ)yL+vHj{oZKfTs#@kZ*Hijoi18Wi-9&%N@QO9w>FV9AunW!W z$&_uq>BQr;{aLk^5Y;nX`!-)7lP%=wzRt6u0Y?oub)3@u>8OSe7!ZD>0$zC zPr0NM@HP0=&fYvE2~v{AT$*2+pMJ{(i#u+tnzpbr>%)jHjyOSnA3l9_NnT*=Kt;6H z5d(8pynu)dKo))S20nsasGjtJ8cG0c7EvzUM>GA;8<%QHizY#1!+$U&PJ zW)s;=gx)uV0jn-5y_UlL$KH*mo~ld4!XAXs7%AM)E38w~A#mX6(s32qNu6W|o<&I!XY`zR9w8mD*P~5Ouuqn_21v^@sT%yc+Yh zmfsv1aQv#pxCeRh;zLu0_j7uuHK*CO^W-F&%*tE9OlR>-LAtbs?yXPKp$ghjl82m{ z$l<;wGb=3jNYA2-?B;hlf_1EpPoHXn_9<~TUP*tbUYeaw6o)zA$Ml3yh|JUv5xJ8b zy(YF7tt^~3a_q|9ItaUYIhD_pb@^G$t(Y>x;(<>3%Zh~HB6qFw&O)`39=(ja8o(EU zLwbMKzANBEhtigGBoN~Xd>l>aK(c`seEJx;HIQuxVyxgD0_m+6{XzUC*hZH?SlyDt zLM>e~!RVs^g455HiLb!4b6Hz3_UrO53Tq!pp@|>N;H3eodccZMM5ZH1a{guiHKFdk zjUGG3D>{+7&MhYEnQpT0;`$q4RBD|{{=ebW9zF+N_Z+BlD`hF9dE(?JuG=39Y;hFR zv{uSGhq1I13s1?WL8P$))B~}zny$djac`{x85vu0yAXLAVYaU?*`plqL#oR0pG zFdaZe=$c34B`a25Hpiljh1zt$9@91v_E?RFJ;T6aJ9TSuj6nhRmw%Cf%SnD27Nc#; zas~#hw80*SK54uE zDr1A|!+cgv9Rt({-6}RT&!lS3#sES4qy*@UQ#m^W6momRB7p&_HnN+05sss`ZyN&Z zRD7of8~QCwydF?)c_GxtWGKr@&9JjN0aInKds8IaB_%|}^h?8&-ARI7DFUf7oUW|m z_bo3};XB8_Ma7GYNvJY}EtVLJCGSHq;6K;9#p73Zcy^=Jcff@SBm3&gluzf4_mT-? zVa5|4XQNxC6=Z84J~6#HLhZRxz9>2D5qq~79N>nGzL0U405&>3`E6{Z4{gbg6*rn% z61b69FyP>b9a}PQEeLA?=~tg6{HrND=J?=h$ua3tj?O|3z5~@#plEFQbY3TO&Thxx zg+4s2)nDm2V|TD&H{N;gKN)C4*k4_;Ov1USXIyPpNHcDm>I-fAZ>u8&09L+UuET;# z0s9bhf=1EIr!;-v$E(v{)DK)(oBaD}oMlM93k+r7119WK%GYZ~(=U^M%~TX;!)B6F z@!V-h)gCzBTKda-d0EVEuyAv~a=ioAI-f_j5r>=s3bQz5B;}#d1jFlYLn9wcvx?07B)5kQ@a$Vw0RHx_m6)BCSwQ zR?E}&00Trd6!CL{0OexZlBu+Jq8Z5-};Ta#OsUMj$RUq<11QpyhmJT#SR%o{cxBw zmX{6!!902B(w9I2-Y@ufPrglzO^=`a!=enhr;qPGF{(kTqidaRHiUnWQIN!xs;M0; zL`t>$c~iC{I5WsJ*Yw#K7S~bu4JS_EKU*@0-?VMo^(^sP5*i0cWzb$;YOZTma^j*; zE<2GgcJt&a6)^A?G%$upt zdyK+b7ToN54|!?%oCfV)7$T+966(grSqQz@W}X1@@Eor0$!wCO1nXowKfAh7B)Pp> zfwIW%oR@P>^hyt=zo7bW6~Vx@yZA_*gyN8bwbYPVoRfbPkM6h)KCiPinv(u?!MZA8 z8Xq}P=iAkTu=K`9NXLGW0XnwS^ODe2JEDl~v+XxdwDmXp?4hc;+|@2?gu-(g9yuO! zYr2Io*JMdn;>a4ws`^vfAUjr&bUg~v^sV4^?b~}l)ZAH6Z~ga=URwjNDlrK&;v)$e z0O%s|vhjL&!Tj|KwA?PD46Q&Elsu%fo>=Ph!%0n@RyQ1OC`*Fb$_lv3?#=zkN=!}t z(AsH2_&QW-;=>*pt8O(pN*i;oOFKa4@zCa{KbWXw=SK6@nP5997geb_bFS8e(wvAD zt1MebWMrJ{*|`Cv4c&J1E?2(qQBOLpmACXDuCiaLyWs8G!ClC$>z!rj&!XVJ-qD-g z?SJN+-%+jQNp0^^q(8y5fr4A&F$)0&+MWzaEw?l53(=QzFMU5@$^2g`oD& zmQQ%u=mf?B?q4zA8+MNIXze8`+KM&^ik93WFxq>1^CV0f1O&3!A1ZgeosOqp8w63K z6Ezmpd?wYApj_3tSi7=B*6>0iki(LOYsuiXn!j%s$1RhiQ#NXCi&?vS4jC`P{a)?@ zR3cwSQC&_oOxPkG-HurM&BN{Eo$$Mo!u@#S%!k|KpBp>z(Enl|5=-^Yrx($q%;GZ7 z0U|`{J2kQ>BCB|$v7uS~w*3TRMXPr-OS`)$;vJJ-`2lKg zZ@E<#WRueb+DwQpw@uj!EGEy+F6Ab^w4YAfZWEV;QH@;E*v^&>Oy$?(S0@TmJMpRM zk5p+rE;SPOIWX8)RwDIAa(SRu{dS;3N?pjDwr>D|LZOG zklH^<7zbR{8$fudO5}>GTRZC_^2DI|iR;U_$d9%}(un%~73yM<5?T37@bNLZr;q#pO+BMA7l<0~zp_?Nk5dDDFGAp?S_#Xt5WtX00=tYk zS&Ok0%|_jVr<#QtF(;Z46_g*wVN#7$zh6AG-tLgQi;-h+EcI{k zu@J8?oZp5uau_DG%`N!oJd20|_I>GjyNn*&RNRN(7h8e?gf#2TB4nA|e0UJ~d_e{_ z9BD{wy;^}2vWKHs?rWN)nqZwN$77qspG#zcQ?q=yjjl8+2k@8e^Paj{)fV z=B&Y_u5k*q!>bg2H|ozK38*~i5Zr{q;;}!0wm%RCvMfz-Tsnn1>*3;5DZf5VHT zMDZj&Y7L_@j7}g4-;9DT}}Zt|S$wBkY} zI^HBPG!~fu!oTVlOedbQXh-cK6CjuL^vzaAna!s592f6NSE&#k*}Aa$EAQ#+!wVVB zZnq`xF7J7N#T#$ig#B&hkK@+{pM{?*xxdLhfLsKqdUz- z(svCNcGTe`zW&uaSLS=uyto!8Eb&UZm&LX{ipCVNP`t@>DpN7mAJM~g;p&tE|Ck(d z7WkbJ5xDCC;yP<_=w{aUg@ub((2u)jjTrZixt=TDIEYb6Cws)}4W+!MVDPydWX z!-raIH^m$ZdKR$QELN~Zm*`YO+JhYYPexDHgU{xzl>RZax{~YRK%9gpCT0@@vmH05 zYOAd{lk(hJHU9D4+6h^EWfF_p6Q+A#Jk)UV`d%ARn*!$8vUj1h^03QngqpcF?5$})U1Dz;T zoUX6E!$V#_>11Ea^aRiF3g%EB7c9JJ32bv*z_YhsJcygu3mk4=akZN_(}l5{@-EdD z+5iqk3$v16d%}XhuQZVZ$~jELjJ*Mia@-tYGD3a`P8zD@0h4y_cXM}LcavsmSp4Vi z_L<@hE};2rVC`!UYLNtB<*URnXHPyv(xD05QfPzOZ11GxKhqCMFgIQlTEO41GpD3*xURTNn33K8y)d%S zxS?RZ$%=zb>G03^|32Bdj6GvKu|^i_xc|PAd-f;yp?G1+JId3oj|E1CvloT_PN|ME zS^Oej1Z_b&bT~_{WHVdsZF#$I6R8o{8s=ChrBFrvHNwz^g_=gYGV|SbZcHn0`Ks+| z*!JA7hGELZCtV#6G;f}OX`^7qENYAvV+k_fix?SE}S;fv8)=LL6kt82B}0cw|dAsMrOJmt5X{1KReMhmFn4JkM)GehmB7Uu zO;qXzOu5&{;(C7(qHwlZar-q&2DEKyYPL%^^I3IUyETq*U51KHw_YP6yT6JAs8Z#~&aM*T@Vxszcoio9%RUBj%C>$!|ZtURTNU$`QFY;~(?*kLkNR z`eeTR2puJ?Ucx`}8fYgx9(f*p>Q~!u-&lyx;yQ+?q?&`e02D0PR*%>y{p|7|Io^Bd z4}lPL749hH4D$@ajBl>|0Fef4)|b`*GFvvv8S!SJoBg8YX-M^qL%cr*%PT7%@}W@^ z&)Q!!Lu}5Z5@6T=ooo}dNkESYi0G7I&CyKaiIr{u*fj7j_*l>hGkFM6rz+(sbap6< z&z|@EVGZ?IJ1ec;-fx}@MhpI~(iEh>Q1D2I_EOn5SH8{`Ft?Z)ish+6$*fWfk~TSz zjRT_5CPhHf>50;MHGiUaXNCO_I$QoWQHbJ*J^eXp#{08ebEAcOK6nDa8j*2QSL{zU z2@#$Jp1HAJ;2Z8ZO zaSpDO0kJG0=LzolFZrX8|G)jH)MeS=|`d35^b zK&+mgKO*s1z0d?FWlm+Oz(FV(1)fZ)v;e!weQlvG^?A!b^biYAWhX;t@hbuo3aPpb z8~WI_w(}4k@q+fkNFAXvxKSMDhPk z6TOD=B!&>U4y?9sUJ00!&Z2W5o*Lf-I=%rvw;3E;_UJI>En>!@*$d5k#w@~t19ntT zTJ9hJ1+Zrq)czdzuKBp+U4vY(9J5_v=k}rA@p8=YxCBYZA%zF%o{}+>UYm{_K`#p= z+gynu<)KI4;bhIHaTsqUr)^EB|+I+0B(%)7$!==Npz;v3pBh} zMLP*cJmuPL{y|~S9}2!=koUq6n0U6Ge2b1a{*m6Wbz*Jc%hw1eV5@Y@#sk$pk|-K6 z#OojzI91Y2S^S4P072A3O9kDI<=%l8t9y6YGX{9UkizwfMX!o6)0Cw*Az$$ zU+Kz1DDYCH5&z5azvPi0cUelMblVl;7MCZzcLWURo`zMurc1Y+S`Hh;$P(jeZwBpo z5>3)GtLTe~QhR5)4?1W$!&;IT-*I=`IcKkkU3>Yq5g}}MLiPC;aVx20gO0yccKy%h zMH`fZb+Q8GZClRrv*B)A$P!L{{=SJn&J?W&_jV!OjJ&F|@u*7c4m%x$>9(_ukYE`_ zr+0$V)R#v0tCxmqwR#o^7`M7Tw6MQ)?qW=3`1U~GYV~bPAiv1{CtKbkeRb-8={iqh zd4v~LDeUR|q30)vQ3@e?%NLwfCj8Q`0|!jGUG<4@@QqvLOTx>>U3nA3-rnBMp&^Xy z?D+Z&N>Tx_0iG`d-*jfwexJi&?e+i*sK_#=v$HeU943wK>wm%7X`rzwir{Tn9@x*~vzjvgE{B{#INz1-C%q=XW2=z&SKha^HU<=N( z)~S4};iukRp*WU;>Q;ehr#9k!R1|smFWfxfd!9dU;<|U6+&wC zY47FHT@E`b=TA0WabJf~d`QTrg5PKDXIg3@joV9M*rUp=r)h(nrzz}bbyTD0+w3liV+_fY_ zvKdcWE|Y$kl7+z2!`U^3H+lkpq@+trvv%tzFPh)a4#_X|EeY-TfNgQs2{G4TZ)=wf_iB4m~?-PCpgtlF_|H!y_uY=ETf7txo?)XNh@^ z2i6^28IP?VfAemxyCJzcy`<3!jW}#A(4Gsp@M{TWa{jk5g|` z@w$MeE-&L;yV_58cW?K4O|&@>{<6;ghV-OVXT$~)`|u($F>xOzY|$Q1B^r)G?T`T4 zdCooMAYXwqj0H(ZcLjVt5K#L^shK-*v{hGmprbxJ=^U5H9H z7Ec2@HD?mIyqnZ2Qb`~gMvI0LV0C#IpT@>0spHqF0UZd@rZ`P33qw5ex{W}p#_9-o zLHScYO7_DDQo>jxh2ThO;0qR&IrEOo5k8OjomiR1_c7P)%WPVF-y{N`qK?mBtCi|l zYWdOL2)ese6!UYli)o$q_nwcqWjcH~es=g%y*rroa2*>_$oN=#(}@EN?8=y_Jv7%A zFC&>HTn%n%j*?$xa8~@DS?zTCLy%wl^Vf{IlnI^Q(!)q%G!9S9ls0#2gnzW+q>J}6 zDZ6k!Q{d${BCU+wuL8!&Vl0Sf?po(B8S(?Y63TR%(8oF+ng4ZiM2MJ~z)u3JEN4C+ zE!9(uwVjD)b~w=(8X?)4E2OXn$zbf}AmmaOMm3ivs$z@nG4>p{OFG7LE|ZE3igRnl z!2U;x9$;M3B01!T)@6)Z%YgW$CKns$`OR`M(wi>n!tuJv`V)7c$Skb5Of~6d`o6HE z)!TKm@lM=)wZeW5A=M`K;6+~Ge}(2#BJvq^g>`T{tY3gO8&OgLK(h|NgUulnQ_Vu& z2@FunH0&%cfpB@ccS$eg!~^FFCp8}6vsE9U8b}^|%nBK4w$M5NP<_HLq@V#&E;FAe z1$H}uJTR?p4%v;gJrS5FQ9rjbW~)r1@TrtoRP^($|U)QrDH2V*5iF zWuF?moy1i-`f49cvz0PWV&CVra1J9S=!!#@r<2h@pR<(^?`!(Ezg$$=H9<{%U32eID<%Vt_0r*pMz;H}NY0k&CJMP)5;AL`CNaiNK|5=G#p`l$_GD=GzaqqQ}Q&_-zTJeWR zMK|9~zN_P`Pt;4W!^;NZ+RUA=3y{!Oh~Ur;`^gsPHs_sEB*%FX3+S{!W&eaVRbS*g zm%410BQ-TOuj4GCvH$ab+63|0LWM5->y$HLemo94@BduIQiq$1Xl0kHeQ62wCFd34 z&)@OE5A{vg@TdG)*8`y#XpZvYFgy*YiD=BI>vsQjJklvk!+OMNiAfQfeTq3zu(%c0 z{Ia%P2b5g~!g&x%keVeq~C*xS;->b4l5CxFRK30;SXxp?tY`z9CtSwUA&rvZRr-RPU zRwrsV^3odaepED8RV|a=neY{^?lRh`Yj3%;ORraS8)ir*;kRxPu=}3qpcG?`b()&a ze%u@$2{f}?l{g5Xiaqh~H)%M|w$i_t9}ilHv)oFM`{~51Cb;1g`ez@Zz=RzhQQBZh zC5!cdREQUJZLBPnfVa9H*^J^vT?Y4woeI2Zr#9357#Tkl@1QEU?YY6ayu)d{deo6y zh}n!W_Q1t`p_AL{aS8+sNlCdcxplZ$)bmu@b+pg@USN=Gb3PF3i8lrh?C*}qV>s7@B6I-EF?v!T;y{)@XR}` z**`W=2Au&K`ub)OH=C&N*Y=MN)MIH=`RLCWz3mEh6+3+*akcsAVMG#e6f)i9j;!D;0yUr zBml0#2?rF3j67~9iy2a$M}8&7-6O>3#|2YX6Xk3gcTKVg48q9fq(jMfVN7nH z_x(ECoE?c`%wO*3pty^@kfee;V+I>}{$A|*^+Z_2ufO9`@^3kpE3VdYIXUN__y=IP zrHC5NftvSRSG-n)xQ6g&q*J3XXsx5tHU`?T^YOF}N}8q!2b<0%_6(t1{4a1RXn1_p zf|>P|fgM%!>z~$)PI7%VfhVccwMje1%OmRxw-sRtrds8x_YQ48ry8Wx)8~jM?2`A-sPlIIE-E@bFZ02P7xv zrb2zUG%g3Pu~W_J(Yu?suPW zNd_M)$Rdt*+)M|UVK|B}$cd})35CV|_3;%(FHGxbL`6t@$?KAjzt@TMpE}w_S+Uld zQvc>>7rCT)BgpR;f1YZ1)ls99A|p-JfiM+^V~)oSMWB58e*_4wd}bNvYjol$7oC)9 zh@u!n50b=RLX5{RX|5AA!cEW9=aF+Y# zxI&R3V*fMgjWYF{gd$d|Nzv-#r#AT8VLu<~W*PlqIHA3y1An@t4fmu~#F8=EqqTK4 zn4(FlcdD*vN#=BuNw1Ky8Cnx;B7ZOJ+UnEr5(n|xT482+ZyE5PaaD=9BM9|1?*rvT3G>l zrBuH&>l>=S7O}O~VSL^>#e1`SXAIZ~v#Cf^}e5Y=1RP#*Gu8Ufa zrbT_114&AFXE&;RkJbO77%M11_E`$0*-?v#ep8l63dLGGK#a-=J=@9K_p84-+W4rD z#?95?s!a=zN*glo*~-PAF8eI|ih`?)*Sg$tFp|R({8fW3d8uO~ttB)&Y{-NFv zz>Ge1wNeVRXzWko?;NwHwKf*?m$#54*u(j&uvZR?6{p2Kq9<~{OC_LIz}NLWEW*tr zI6&^vh<$3k)cGr&+|DF5kz-!#ED;-#iQpF}oGbldk$1K^&;m2n<)K;!L(+Uo6J`2e zs-^cfmr!@hMuS2_d}Z4-eDY5r!^4baH(FE_mDcGC?_}j@|7?%T4c|`1t4s|lLm{x< z$0ye5Uxk&5wk02R2pi4EunYSno!x;5h$jl+2l-qUQr)ssqF*LCk7w6+c?sx**GH@^ z`zD`#+I|G+xJE8Go$$8wDS-g(F8u<=={(*o8fqU-K)l&(YOil_d=*NZd#vu@S`w=p ze1t3rj8C---7C;EfqB27Nbo%`mMA;*q!yhk_;%LI?Uu;-jLqTJnPmT&0!YfVg<8|} zXD#jr`bf^kjUCvJ^VE`6k9n^_THOBNIO<-JlEDd%noq661R8E}&ip>)bIA!;1?cj` z4<8PqZHk)rZD#v;ds&Xr5g>{otrBvQs^v;_M5wa~=6>NpL5RZWFk=;99>OMRJ~ zPmwyC!=h>SmNZ79T>){_`-r1;D=mVc*jX``RvY-luK0ty*KR|4Zg`1^S>oxHpFPb3 zE)2gp&I##nyqmsxcsCWJ95A;(=4xjNqc`0ZH-EEY+Ev0xnOKhc`a&*pSKf?o2xUE- zDN}iOO3A-{<&WAx4vIyToA+*(5;0N{VB=Mj{N_2FF4nBUd-?LEi#b$;=;KAtL`@mC-}?P5o%B^QhI<>r%HQv#9fnV<+K9_r%D z-jk_~#W=@LMo7C?u$|R7c%?EQ^VmfQA!A9hpGT=u&B1I4#!Tf12dUOVl<4&jc9uc9 zWUpqeCzzPy=GGtl@_k;40>WouDTIU!xaBLF8w6xoxt-+J;*R>IWE$_gqyo5l&gGQe zCiC0>mg}tgev9A3@Wg}gE??80LL%w+;ktZni)V@c;H*-n5?cPg{BvJwKFp?h>d=}6 z%E+VMM_-m3ZLCh>>jSMg$6ub zkH_tx9@W^~-_w6w7XwL@q4nhxW{G9E9=*OhlmAu21AbG(&SC1Q`BB9Ft( zxBO*QxCT?aEmvpCGEsHPmp$&8VBXyHlzOjrRyB30Xlb@89_~9?UhpxCouM$x55zbm zC9un&1Oe+^jCO2dsC&-Wt)+XuF_abh?G>u=HjjQr?7-P4Dc6g` zMfw1_G!dh$6k_O;gckyBCb*1<5Q_-Q_%m#two-K4b`mr0PZz&P^wnwIjCBOxPLTZ3x(x2_>2^u?l|nnv&mMvJL$d zaF!q!n{xpI>$?(ppfu)uPWn+}Il7IWTx{t~zqDxeCN0l24L4P*C)ko1^Ri;zpYxB9 z(Tv{88dcAYUqpbHThEvlPptJzT3)<(f>rq}5nqtihA_VUn@46LvGFn|d z!&&^5M>0Qub*%YiA?D%|FcpF3P&r0k?Nifh_BsWlxjFl&^NV-_uQw;)9-i4h=0BKj z)~WD4viTb<-Y(eBA1qk!L>wu7M28F%g?DO6es>=phCa=mp;b0xN}$yK6yUl0S|k7u zR;FPZuj}@GQj78`2FK69_+q)}kja3Cz7ddLuj#@+cIlqHQlbtY+0wD5ZQqK~K#amQZekiGvjDyZq+H55#g8D^RC55W8ON;kzAO7(MOx;St-;qnzMC_3#;(k#xfU|-CcSg*yPI4f;{tPR8|C$P$NeZ z_S!cGt0$2nIUk0_j?abkhUF$a!c({@RPS)bilWuzDV$qa( zZrimP(+ZRew94^=Tf6_%t#~gr#2mFb(BigDq)dz%C`tKb{^GlYm&zbFTq7lQP$l&U zB?A@7;fUw1=~Zd@7#?Qqk{Md)bLgiXF=hEaZmZ^(M%5MMpLC7cGMDfQ+-K9|=#GUb z3Pqx^=9qCmZtK(*{U^h$)bVJ9k{hS3l)1$=Lo(>NYdIP%ImWTnP^3}g(W6IYE*tiu z>5o(Elw+z~yctV~BUxo-WNbXJc$FyUn$4SN>Ub=+S24Y(ZETF2nVw@4v*x1V$#L5v zibK3lw>KT0qxR>bUIt-jdmhZ=gqK+KZ|93@mVJm#1{_5k%_8Yy_V*!vVfAznyMSUf zw}rCEy~9a;2+wC5BO#3vgMd-_H_k-y4^#5urC zW995lJonIePbC65d}s6awm9&Xv|wgzFJHD+O`WxQOh$}&u0HTPk1dXT=DWe=(dir* z9Bhq3_QL+;k9w&V`KNg^m9qa@hmWe+t<;T>Yl^SDw%&1Kdd{Ka-l)70;@jBNn{M>e zvoD$Nk;o?~KR|qb>mt#bLYV);)wdoaO|rG0h8WkK5%nI~0DX zXwG2AZFcw(Qqd*|YJ7qfS2|MXZpZ9iXxdyTsK!ms9aC?gs)vg_RH?|BJnF|ts1{N| z{2bU=mTwWIf?Hg;=oAT7ZDO?h2u2_jRkI`n5u`XXBKbgI#b zRRm9-ir*Or*B8GWJEaT>18uAzsLQN|>YH6$+3^UpYRn*KQWbl_2W8mi<6>#l+MyeA z?kVt*I#9|!%iZkub>vUFuy{$IAJ8wvh$>rMCu#f`t$l`rvh8N*X3vj|C;73*?VT6B zDXp=busmjHjmNNA8@vM|oBk12hg=_ZFDtVwy{hH=)m_Vs<@3p>PuJ^hJRR=|CrPnL z-pxEyIEQT>1yjcK)D(=y(S6ox(7VZdTt_KJ+K!BS8$KDlj z^68VZD_gl*zI#~X26v&gqu0LcF}l9=Rq%|Ui4*=HD0Q~(sHd01>~W!JJKhuPN^u<*cd-};$E6sn*gnbu${Q5kd);K+ zKsCSM30boa-Us#2;Yows(jYq2K8!{!btYYZKePO4Pd{+giG7P!S zuORiR>nQEm8|AG$3!JNdC0f_rxd-N8@ZyTvv%xc{?v$9l?3PrHKhK~PwhQyi<3A6OSPE2leL(xvB``^iw5(z?7H z>yqC{%Erg=hd-`y8Q!7(QM!AHMgfZj@mA2m4lWw!Yn|KYdzV}6-3rmwD5xOB2RCaDP4W@ z*7HWXl1^WQPYFKrf^FUVjc+k4UTvdfST5gLJeH}gSaMq#_)Q-^h^To{kGpi!^hc=5 z^)UWQ$+_^hxGLgSxHY@F{eo9Y~b9!?2F06 zOVT(RDS$iM_}*pAEULbd*-mgy5^~Y+^;uVMs^1Nn)Ee8I#!$S$H|a?quGa^GReN5F z>1>4Bf?BT_>kd;>gAU&XmEX01mX@!)0GL9MKZ z*JDjN&xWkEYFt{G@C&+bA&GSh*3g+LaZI;1up{4ONN?>|cS*~nqx!f2j#W=TMq&3c z=3cFxyk^gO`NzKG{04}f#WYD3Xl6-;LC}m;n|IY=OPBxo=WQ)$-lwKe1JwyC7xi5C zi2RW2aLQZpZA9MIcX}^RWq!L6GDDxEJd%I(>{1qJ_&<+)yi(jI zowyuQOfF|KJG|YrBQNRW(W8n$!&q_;1`ia4_+kf5vHErL8&faQHBQs3t8CQa+yZW? zdbF#pLC-h7O5s!-qGYtL5Zs~{?JMUH2Hr|lic zf4}eTtO;!25r-aKZT%&%#OC;KWa;R@bvTf_6p zgEkq|wcok2+R9_dfOA7>+B(zQYO03MVCZV9#~bKGphlAO-gMu?z(kjyH#z`l>d-kyykg(VspO)c%sE>Fx4q_MEis&)S}BDm>(#ecQ3W0)a(2(f2fDZG zQ!v2Rn|UtG_1a@vRuR9Y63{bzoKdT%$99g2@d=)aH$(VsLj$R#po>jJZSpx;=WjU? zie(B-n_|Ydwejx-nvVJ=To!Y>eomDkIgF(`4@mkj_ASgcDXv0oJ83DOJ%S-PjrV*p zDJh%jtKhaCmZHVDx$gs(iXqb>D>SH;G6qaKX7q2yT7&{OqX~^%2b}}wPKv$MI1bl5 zw7kVmNrDPA;UF92Y7&OpAVbQL@@BlT!iD0^a6MSD(~q6(51a5R@m*uG zw42Fufi*>TT$<6;{q=+kUh9P8#Oowit6g8c6+S(V1$2a~wL+u9XnRYMt-&Tdu%-d& zy;LS9hT!iwuZkWyef0#z{T`%L6Jp8oaLPfFb-nMQYtf=$E$$@r^9^ZfOTVunD4gb+ zsAn>#2k@!`otGSVy{%2g6!g(>5OA1Ty1sSpl@O_#+v3?cJ%hD=XY`81vi8?g{`!M^ z%c6c4f>kgm?j{Y8F)8adf*K-ph4jzdP14wzTi=}5bOC2)rW5<^he=7IRPeWH{r9l-x4#sxzl55{ zFZ%E8C;$7s-{gPYF8@-no(A$tN$33KTHYW2Vd2@1M8x0Gi=5F)tt*gI%l-Y*EHe>D z42FvS19yx`y6<68QvYS^DzgW3+@Io|m^A};!K`Mh(_hwfE2MRN)9PO~W75mN{Fwju zvjN_<{~iE7M{xdr;oqzL|Gu^Bz>xb(o^AU)<)(7OCte?L5Va?RcUj|<9s&d;wA zb<*B(1ga7YF8X(@7Uk=c*&6@{FIK%uqLvpKc**VO7Zx%|2HYc~0t-A!;PiKK2?=E3 zWLyu$KxgehmG^^1lbzRQ>`7|sajH@+^4>%l_zQKS_r2dq^k3l$xvc(av(tUW^~$s} zJmGF8Euq2ar+72<;al+DG@sqC(aqf$*#Zm?3M)@Q_w%UHqkogWW~$s=s>Xiqa4p`j zwYQh$r>;%LLV;$9O&kB$nX&LtZt7}A9G5K4+nDK>gdW~x5OW#@2&dth`$VmbjEs^BYaUum5^o=OP$+OHK3xf2<^1+WbQd zi`wg-+O?kKI=o*0bcB&~{#q-j@|#|;nIuR!)iHOyWTUK?P{*X9p{XZq!w{3>-)wg8 zGqn=mX3`NeAob!ga||SUyrlGkmzRi;LE%l2P8Fx;p%M6WT=U73CvQ|#o~{q3l^k5z zjOQC~4rN%))*iXZ@lDC5Xdjbb`iatp#qS4bw)_L;+ShzcQW7p-$Gvqv+u}|ydi|uC z>f(VfW><(s>@n2)aqRNi$h;w^*$KCql{zMUV-sPvX-5+}Z6gl`W0;0?_H1HwKim%& zd9MPEMR?UK?GL6tz|O&IuZ++f&e3?k#!oBN2@WufFaCIHnaH;R9{z3O%XS$ZaN2Br zMivf81gon)WN)H0j3qb>@YSW~ZIii<=9J4i8o0OP4&R?qaZ<_94@&g%`StvxF!R)Z zg73r2Hkju?ZRm_Ad@vE9K)tlpp#ArG`kgA`Sga{3EOz!(hu7y#*g!T5Ync~|G2_~l zvitH7qw$wK&7t3{{o;)#SXSE=xMck6&U}!c#h=H@oYX zQ1q?1%Mxubb+I+J2wh5#Sz4TVPRtQoh1clkYng%#kX|?+?!bAOlnBpwm~L|fzgo5e zl|tJ-eBQ~qKdPXi`@UYWB}>$xf0D-t2=H<#TyP^KE}m3egO9Rp9P%v=+mYlvTPx(` zP5v9H9d!N4h8`zTD9g>C6}1lyS2)jg{eJ0k$Gr?D`#jcu8HT;~g6?vFF(J?c20kV(7BL_Y=6a==mJmHBvsxgKEL3 z+I8|(se7A6pYAz^q+}ZvKS`P*_0Hr6N-cV0;|8wVGC0>xpgHPL$oWHra+OA#0X9_h~00#^NV`R1T>7CnU@FjVz^^|zloPo5K50S?r zxMjw>s*NXu>Xm20A!Sjnt=a51Px;)b;%p>jhD;||Px6yBJ;WuYJdD9t>Dr%zPxY14uaRd&pm<;rOSzsH$Nck^$e)g+AD zr~i!s>HZ}X77|g>xwx~38I~1mk7V$!VgEf7%A%=ZdikT{iDNA>n;~BOnL%d&-EFW% zbF=sM-aVwNB2EKcg|| z11phb8D11}bmI_+=-L5NeU=yU_lr5uqN$*RB8g6MneXr3`UvB^VuO zGn55Dqm!z`-k7&q)~|VWg-$4ki0NY&J&J7aUPqa%^6)`89^o{ie-!38<#}wpo~ukS zT*^3a^HWpIZ^C3dT?X?=W9LiiMUC;K$wq*zq0}g-vSaNA$#sVOhj_48m?myTdJB*2 zMj=97IU_d6@BYS3J$t)Pwq&qxHmq&E>+;Qjx=8Fe~DqMULF*e4o`qL-u zSQhC3pKz+Zys4QiTB)GfrBcumbSKua(+dEY1ClUwD5u+^>uyBo$i>B%hZSAA!WH1U$b8WXpt|FHyXin`dvYV`SLR#fRpA9(0h-T_uN7YQt}J zSv(@mul~j+rjJSw_hu!0T^a8`F^C!Nh;LGX@N_x&Hk~f3KH&u6*`O=FU{#*sCgZ=UzX$;ucm^}->fOe3mFLj_L7-5X}a?M5@GTHFW_*- z&sFCvuc5DGhZo_g_os1*b`bz`Tt(exYNP>Bq9P_2XpmZ#+4U2%ZFnzJi1PkCWys0r%ozDN!4_C zqH>i=exmDi_3ob)Z0*v=A41*Q!yw0-=U^X}W!&-ZT%#~$nE*IC-dm8LAH?8FGv+Gf zA1WgZ4`|O|i14}5N6Wo9`VSfG0@^JY4;U|~zlfEE4)Dcr9#u|PXU#bB z^3v+KvmSh&(Sgm91gSUA5>Wd*yQ9LC=@yQtOfVJt4}QJkKySnMIwGE?1lXwnFUkz$s91t5AZsCwJ;wU`(xiAMdjj{ z1R2W#KZ?)m?9!J=McbC0h|FjX# zb4P8qY54XCxc1LVp`DUa*}7;0f3-PChG60*tOqNNCj zNLAzgc>W~B7~Uiw``VM!#R9yy5jL_ds5Qr< zzmcz5QrtF=gR^0HMo?Km6iE#N4=n{@q&yrYj&y|>-lBP*P=*^E0I})XGX&^v$_1h+ zj^W-UAI2tLJ?Yx~@*K#f8T~r^r@9l;ZYJ`K5=22N^+}{+*G0^G^4{lF&>2(d1=)rY zx$5QvW%_z8^vL|RH~d7em$IVVXkzdQHB~r&F!~wC=Fm@WrDj{vu>Dfbzf_+u4xleR z&+K2gdmuWO&xCg{m8pMCsV==V^iQD#RcI-lu2WwY6^(5Q&r-@}{kxRnv}wzEL3;Pw z%9eU15KQ9X!U5Lk>3ct~WLP*#*RqqNt&;^+c5b2kLmUG>m|u@45^gO8-|{xDJy5S* z46}4gLEldk1aWmBO@fyXf7(k85hc5(%mw$iWPJZF?No1KV$ujUe(~^Li&i@~s~5G& z9_WxPq&RSaKFt;S?%XkI*5wJ5S}oZ=^h>m0t}sJ*7{l@(g5CG#VDb;~(m{k!$i)kW zH2M#*uU?bvd{5)Qj__%yHU_BIl|r?i>4lywPY`dhqhHEA{S73+3^`Wf zVM>M9>nE>vMKXwspCff}bY3?g+UP3%4o0#e57#XgZ>R{$Xly+$G9CTju-=`flW+qg z3_LQAI9TuQ733qMnnIZZi&OcB*?lS~pW$nv*o|I6V+UI$gHq|-)&>=J+cD%cpHJaT z^~#2$3@!b)y(e;~&OkC9#BzRUR1_LXncrV|baS-oBb2htz~||eS9|UM$K}Dm6p=!j znwi*jc~&lo(X{X<&fPp@{HZuHiT;Cr3^NrlRq%}$avmMBetJOvNq6HjE%oVJSDym! zCB}rZ{9+OX+OI`IMa=Dh?Z+R&Sg@PVGXrci-5Y$hPP~>Mr2B1=9O4~O!ICPCU-EY( zt2mV)7-}56v}ZQ)?^d~Pb|9ph=U+2SOO}Kslw(B$LQH+f=qig7YDIq#UtsC()w5pH z0k!UL3~4jr+Db2OVRg^Pqc!^e4h?ZuA&LoNUSZqkGFChX6&$4kgtkDxHK@&n40VaT0w%KcKq}v^wj9qLTztUYQ9CcfZ<691%Pv z4f9;vF#AlUjLi@>d=&kSmBKJ0Ry&ER=F2@^claj}es zxOYA3<#w~>q^Strj>A>LMxTt}YtJW0jil=Jzrfb$@P5bn&Ab;YqyauvU3BeIfSh@w z2{@!=>M$#RPJ#6?D}<0|HxiKL7 zFO&EGrr@~8dJJt!X8Ah|3}eqF60 zCP-v=bk>|G#5X=KjCb5irtwa)?#Qnyh58y+I*M*iS$Dnpw3RU5qtszqGUTVc274qv zOHwE-7T%|(OxLTLg&|HeMuZHO$XzMWK~j54+&=E%5%)Hw3ZLdNeiaD89M2wFsxV`Y z5=Z*};ej%2HQr~)Mg+?&1}G99CX_h*x*jqc087kYS`!`jZ559;mYDFx6sQm%TsyW* zy?FMxMU05_KrtDe7yJ)4xWXjWP$Nd|<$4WE%j8oxVh;13z>?CyCE4n+|(dZbav{HMKKV`0>=Te6fE z!?=x5?>pPxuy}h$WX(10yaNPd$3kgX%?HQ^`^X{5yPRhu%$B`Em7ApMf2#S2Mx((3 zlht;K_M4BxB<+);<0szygF8g-&Dl2TWG|m;)Cy8qb}#qE3-G9xa!UFo?LOmAvtbF_ zIS`6sz3J1oY}szi@6<$i+=~85A}4gMMFro5^w}BwiAI?Rrx{8$9{U>kyNM}<+H}pUxmlor>k4qPko(4xVoKu;jB%eN;rbRCE(f(GXKOrpjKFQnNw zoED}oX)Yz@uuBd-^YyKldN1G}KKYjO7IP(?^2RZ3f7UYi&t%#izzObOS59dR#>(eu zFWqGte%dK_#~|94D1ZobXDDfJw>y^FHGf_SZFmpZ;h^*yJqhL-JmBzA=*srci>_*S zT+y+c6AeAlqykVe^)f-U5VoYD=YwWt_YO5>v7j{HOXhB6&B^!ssp~iI1ZWznNk!Lh zJEu&!SaL;k&OBA1#;_7aN~6~40}##V98HaF!ykTs_t~UcKvIHi1(PLM5=NdCn>&kD z*VyHJK08s=^KbBTzoo+P3k~$$irQyjCyY!e4Lmb84(4*{+xTuXgxjP`>YCGiLMCyO zaClaFCd#$YIRshSwXftk8tG4EtgqPJ-yYtNzunykO7PBXYHHqd8i6rm?`361nodk| zJe?{PnYaJ+=E_)fHmN)t{Q{E^D5?P={pG7hxh1KoLL6I~)!AR0n*rypT?)I_lmG0U z%$O8p84G`G4-{}Jt@tzWd~Odyl+@KF!D-R{THS682PJepRI*k3w9~kia3xqmQfZ|= zw8+-?dv~;0xESu+r?YKW*{WHxT}f<|&S1_5Tz;%AvGYDdIg)5Gd3xj-D~x|!wzyZl zj_CJlfT#pSQ_ZgiD0w8RcrLA+m;E{A={8K-}3*xn~UjgvSA?wL7tF42yZTGm1 zwf_Y0269~wkq$`)DJ$*Hu^lF*3oD$~(UMo?2_yv63gpZ8~;JLPFv%8HAI;qHHY|tf!~Ba|6;rsk4_Zx-Q&Hb?_Ug}*_~T|3&Owm)29(-M9(*8Z7f%s<^As?=>y4jSj8^@? zxg8yXX9&D7zW(qYf&2?AEKNAwwz7jotVtfqSGFxO=F`1&ek4wD#wbebNgvKX{y~&H@#{qd8qD^Abx&VuGQY#yb%jLL3`wsOuLe?! z{%fi_mm2{I+USp|%&!)<=kTFQX`TCf$)|NXHQqwk*VnFsh~otujY|zJ&`nRx*jGo7 z7ao;=kr)cB0)-%FI@?KARs+)2(k3A$204Omc!!d zI#wIy9dF3CHqg;W{}&5$j9TfK{}LQeB01GtC53|KKR+y)id#{XG%mFqG?12-%~XS) zT?&Ze5|Mfxuf8RwFPtdUF9~`Kb@(5>Q_g?%PLW|IYk&L$yuGuXHez(KD8$fC>f$-Q zdU&B%j}&!HE<$5N9zW$8)qveCF|t`DxT6f3s+Pn%$f3b!;D!>Vne&^i4a382O0iPQ z1Mx~wA))u_KJ;<)Gkf{Fl>d=DX|Dr7*K?13J)o%-t(3eb?7d5-lqMeF?Y3j(SBR0* z&0Y4HHH(>}*ZsVUVBR$gKMpxsdbfJ8qi}f`;Xe z(52;$54Fx~p)^a=jpi&sK2j0XX8+QX(0RSjKZ8!zwoJx&ToE&JBh5!gx#8vpQ8x)_ zOrGWKR8Foam;B!v6E$pd5%1~zXCS`|h8_itB3B0%a~`rD>@;Xxw#qisVt zUewZPR8FSk#nsWwb=v8>Lg=$K*Q=Gm>;!RhlTZLdh*a0eQ-2@pM9OYZ|9ceb*_%Qi zMv~4TW~x;kK`F3va<)Gk>VE(W!!aPI%A83mwgr;TJl5n(pIHpw6HxTyImGW+ef6yr zM-?$suiieoTp7vk&DE-kBLNd7{|2NYAw3dX0cDp|4Dt9B2$xRl5kNB`CoLU_XByjf zZ2Ne-GD^I~l2&;b7X41*4?P8p7h^?w=p)`Em{MJHkj^b_SJ- z^@NUm?|f~NKWsE;^lx{scjK+}r%6ay_}!q9u$`kB_9q3nN4byD#ksm@-kPayeV!^; zgfUr7Ws-xz;FGZ#O#^RLM6|6|s#K(n#I=epuk~!#*4>gje!g(IbRFP`fM1@ z;C`11Sa`@BNqSX2H}d!*_7(7H6XPZ$CXNvGviChA4@FnXO5ydQ5GRw+!K~vB2}Fa+ zI?G%B+2Zk5Kin`}Uji0RLT53 z0&yh=pOc^Np5?tO!qmlM!qz>m3fD$BJu&Qi3du*#fkhq*9>aSPh*I+%ejwWKF{4t- z*uG2{@$je&RO#}KU)E$1TvvFW9U@|Ux?uaP!|Mg-(3WqLD{ji=6tYO1Nj>+u4I)2e zi`I9!kamJxGmY=`&rjt})NOi3t>cTQZNWIw@o*9A;T!ifk0Xsid#mZ+W$e*ndIMBK zhiy?3rhgWVBh~$%$*1@p538SFUF|UEG7J(m?;9DME3O8-RobfFX`5ZY#{>f{iy8kM(*dRjFfD%4mOdZf;L)J?o%8htHfbdUc&yRyeQoYB8s1_bpnVeA2-sqEC^L%>H?#k==f{ozkkzqb{RWRLd&snRQXUHf z1c>qUex-4mb#fG8q-a=_0h75|g4TIs6*de@XZM_-lJp$kVG5e{u0x?PZ%^;d19_iv zvthL$Z72plO{=Ei;P6Gp(mO`dqosE*qO?nv2oQIQAJ^Z9h%))-4iXNwbt)z=twf_u zeFEnwY5CIs<96M>7N8b^O~Ukr5J2F8u}M`+mGHPQn#H9Y11_9&hrn?q4e@5GJo|JL zh+_7@`wy+=Tshrwk+-L$`CQ#^L9^Kzx5>n+je$+I?xT#D;>5)sbi{!#U$bMxoTXCY zGNW|!#$9V$S0h%FkqF@N%L06C)zrgE~=Q$j|f**(DC;GxL59N8-a-Ak}*m0i{hi9 zdDb^lpi6A_-E2~^J3^=I0BMJ!|+rXb!+6(kjn9I3v#yZ6@=x*{VM;}F>I-e3|Fq23~QETI5pYCG5$UL0N4fTHQCdVuE(%R2(hrBr58Ivxsh&bFRhsA8_Zx?3-a*8#Vrt zXY63Xlk*&ro=>@4O|!ZbJ`w+;9mE zKT^|(lv}ZSF$y0DHnO@9;j}wdhDIlE*lygJCP{HNtP0#1&_1p&7`yQh``Laq35Pzo zjHLZmle97H9)EWG_0~tcJ@nAg=d%ZFUMz9ib(D|_Qgk#Xk|3VTB5&UFd!|sa0>0Sa z9d>WX4on2#4r3^e2G@be%&1L*KGsB@tpgs?+p^guZ(E}c>;B0|GM9Y9bvsCSq>%IT z4{@ydQd+r^Iq}-TnVBV)3toUfvQ;7`JP4etZL_h_d<^7ntAmc_)WnV3`j_h8(PAbKV2T;-Ea|_oz>2seeN4Dl0pH z|43QdOOde~%^%_q*=?Hy2Gf?!#_MqWdP!FV+#E5&mDR)Lpg|HP{)Ft6a1u z2HW4^QUWCbCL6AyQewCso2-2h>kH#s%RRxcFB0OPt~3(oQ!3wJ_a>i7e8vOZK}?rU zUYxsIk~w-~djrTDVSM+P&)-Ex6Ci3?1l0czuiuWwex`NFIZOr8l#oCt=$FY98rT2p z-ELj$l!Hj~UJxLP5NeJG<6_5X@j5={HrzP!gf7XRcnPRqM zh?$w0nVA`4hM1kiATu*FGqYpM%*@QpEW@YVd*63=&+f0)(b3V7dS<$7s(ZS-o~kMe zW_75EhPoK-;{j)e_8Id$`{&?Em}%5bmjE_Y+{uHu{@@H4T)qgrqsKBf{mj6)&f%$O{BS}J75n*lzt?i zkC?CYhC{0zRFRKNx}v>G-hBJc>0l57NoJ<9JSvm}DXj}9ii^j4(n!%j7Ki6^9#q4x zjY!Dk+Lzyv96>lRd;t~uV@$q}Uf{6y=qFvNK`~y}TmGmQIvz-i5kyEqhmCvUuW44D zv|w~Oi1NKtFekOOa@~$t<>8;uw)$e8AKp>Z(b68hh7>M?qoROwzh`u^(s^+!=12Q( z>2yyeTo=Djz7|Zl8G;fo6rV2aC=FWp$nC4SqsUrVmC?GuW-r2Z=>lz6L1#ZdKD`dB z6WmKg#BSJ?c%>d3sCAshbk9FJYfY7970TbA5YT2&`~SxhMdLi>DB@m%dKlNPh?D7*~E!hSD+c-|#gb)5y zvFdxaqj~%IIQpGANyC7$g-)QjGf&NIa+?i4k3%c64s2BWQIwX`)?tmDZc+W$UP1}c z{fKOCMX>XkaHlba<8^ey9|h@VUxuS+^{kA^axEg^gQ5;b+eyG8o>9f5Wwuv;IF8yt z4ct2Dm8cwF6HO({N2AKgrdb~s-1T@d^x6l)4R5b&8#&-s;N+Py1jbUQhmZ2X_TW5` z&@-4d`ScE$#{)sfG>1JOLaZN9Ng_VcU6Nl8d?swKK5_lpl;J$WC%*exgy!usqRcDc z^c4>-;c{vqJc@~Y92oKZZ&XytaLQObFpBGBxmrxNPxmh32W@rn-EsG8L5cnOX8oe4 zPyZ&)XkW2aTT5d(uupr^|EkVJ;$zBdjJjn=9cK%J(G)no{Io!O64rla(5iI#XVGs4 z1qaGsD%u~yFb4}ncg*mcA~KxPO4LLK}E7zDlk;`Ad5dK*f&D=LU$XfJkE zl73^Pc{PZ06(KUo?swyi^`e8TgwVN^DRz(%_C8lP2@Aw?pv&N)hBcWbOtRm^I1Ehs zuUa~aO-A0-u6&S@zJjJ{sU`5wE&NfmhyAv`SsSO?vICQU4x~AufT?~wpeLb35whV+ z>sH*CNaXOc*8slSfnSAoTAJ%NAC%ke)Y|eMB*X&3_`|YwzYty69G)1!7mR2mUM&!z z14`cIC1@y$0EOKVJV74Z<(9d1lzz3|uw~n`32IvBy#fvNlZ`4k>=^bR{VsI&=giFP z^IF&X`=RMfUc#vg&<1Nsrl+$w$ z#23BjHgR{=`YQyFh#JY6E;~Qz$gB>8F6BVAg}SL0(1#Z5?_q@>ODFtuF3hHjWGxGp zECS^r?mn4gShA)k;Qp$Y>q?d|-=e|~BqqebV(YcU>l3l#Tjs|AB$DGGE=#Q3SHGBt zCmAIV_z%aaL%|-$#2d?vdowbyhe%1)LZ?<%Jx0ye ztLBHEq((;v1ShAz%3=c<5pJ$kYOArpcKE+7%E~~4T zK2_?0K3l4<_Wx1#pI$+J!0B?`{#X_wo9aa)YF-K}6*5$;Q5TCA{P*OUAHJl3tATKX z3*<`~9g#IQ{F?iG7w48F6=$f^R9Vl0aO1tDko>o*;P;aJb|gWwUIVqAMpb08eHWy1 z)+>tyI98clclR_lg}kZ{PLRiX_254j4l=4G*x4OoTx*9_k%S4~86c(o`k@3B^?1IB zl#Nxj;o}g6{MV;P$GJYn(VGA<@_(*?5Vw<`&I7#@PgQzyRBbyc*g!=_z@5Jg7F_24 z?YzK0zp97RG+e2A>9k0^*s~IK*{qA%1M@q))bN0e6X^do3dktiXrfa^$cv2s)Aseb zG)lNL-R-$806FDRw}Zk71XSaNek0P zE~lC#+!KUY8UZdSmgv*dJIf6|gzD?p0&c8A z3_5UQ^x8`4&0s1(*L(k5=A$1)++V5dn>_NQ$VSGchED#5R09aV(P)@59Lz)~ribek z$dJ+z3*CLZ&ftQ8_ZMZ1FI$@*&N(Nj&jn-b= z<#3qFws5q}IQvgMB>z+rJ7`FW*_VOkZk}%L-bK^HtBf5|#i82T1bg4(&;M0~mXA*@ zt%v2o)Ep&+sy-S8EPh0Ny~KZ;>16D>VMYYEHivEGK2*ql}}#p;U*n1h~mg#Kbf-a|OZjU>zp{H|uZT z8&XF@k5jCag(aqj$ggRvO$<8C;I5aL`3bdH?}{~Vx0ri=<*s;Pcl>S5i`f%-a|r9}gOb0J}PfreuYCF`uWk<@v*b>TcH zdzhFOOdYpVbrC*XG_f_$d!Z7igy|F{BEKL!4m;DdMK2Vit*yhwBj=a5gKJuaG|{bb zz4z=jFQV=3zHAraxam}8+kT&eU$R5Bm{$W?G!8PsoOJeNqg0g~$I$ukJdV?YLh#+>#H(^+9_HvFP^Y*$Kkz>0#eX$p>;0DkV}y?8w) zv&!LdLYU;y{4Fm>!Ntxhw?JY5ZcD$cedOA5z#H(2G`w8BnmU2u~QPijG zIF(ijF~F~TEE*UdhI@U!jUA{;L6<< z|3{+a5VMcNM}#QgA$GCa1Hd|0sv0j2r18_|`hFvo-AOGYBeS@)B(-yR7>qMRp0~F$ zR_(oKU1vz*SU^N5?RK4aEzjrWX(ZHs!GyhXF#P2FV z{)j;%@wJT+V=>Z4y)X-c^;D*f?M`>J?L>Mp&DZB(gAVPx765qAabhA4G9rw^k~f`( zb9oJl6gxPFU}p1yit67;YbwhD>u_ymd_JeBfhIYg+w9^rZlY)u_}@SU6g3xv^YsPw=p$T$;!bV5qW)T7PBqICgR7%KE#d z4|cF$MS_n5y}b=Mam~gDr7Jhv@p;PR5t&ObaDjt7F?7Ar1In$9tOQ!`17vN6S#Q|k z9!~8223e2Rvw1mernK#7^g5Xv?KbEy>HtD3_F>-RY47Okwi{piLcb&&>?%$AE>!NH zHhsGoSs;z1Ym-EM=w74OLt%5sP6rQJ!Z0r22h=9FbKx-%+@UUee0uVAx{N5J8M1W0 zekElM2nzbM8qyp_9&wywJ7RvEXaSIiP`iJIf>85iXJ@}gq!L=841bHCLc#R(Dprfv z=Dn2x9n&a!8d^r6BQDE>RCsZfI>~FoM1|b=Jf(U1&k>WlZO~)N$Jdc_?Kw zH{WbKh0C^vdk|)9o@|Fl!^1Y?$H7r($f#19Li4QX?q4VAS(;@GMqa<J;S1MvJl*JU*k9I~xuTheq-YmMbPRHCPsG;Hvpyb%*e7{OPJbr3SLWUo zG-o7m$7J`bWe8U&-i+g6-vd6vt8esQrP&pqZvVOi z;7?sqKzl#@2sn+H9(Gq3**m!(+QXi;=WM-83pTUJs^nF9E7td%zb>8SYh%*dwRqmI zNG9|3Lck6|6@bjUy7WzEITe{KnnZqMmV;|8-to&>$eub}_X}X%7}cdXq3LOPS;6M2 zj)A%O*{^E!UGY-ZXgZZa-Y@OX;y$6Z@;waMVM|fl#RuO$!Tl-_`t7+A zBvM_jN#H6blCgbr?E*mpM77rXV7si*Jr?l}z|j%jt65t9(t`yYFg#u)X0FVYdjo)< zYuN@-Ri-c6+I8d+z0F2)nB%trte7#(=#(GcTUo))qWNh zvEPnF5jtSd7X=%m&DI1TgyMb%S#DHD;HR!|W}|xhc$;dT`H~)LL!B=HzSwh!`4HPt zjlDeG_v1CU`quG1{#miQK54DHaN2w!g~jP+3a-+zE8w>z zw`$)-T&~|C3rP;EciiHV!2*CJ2l9SnFw#)PU2gCMty87rJrl1PFt>j7|33o=zWZ{S%-cQYq#Q9&_?qmk?5i28q&id6nH8Z_J zNG#GR62v{c`m<0(4Tju%Vfh3(o22HNCW-CmuotSz!hz3RR23m~Cqr`N+7qeeroGJGNe#ApQPrJ#dyL`o(A zAW3|C_|6bi?7RH9vk`pn1YTxTcYW?`jHO${?G1|e?AUV zHnC(ICXLRW{u>=_jQcKcB}i2eWGt_2I8M;=Q5+SVmD(UT&wy85)*zxzJnu;i?@We| zc{!b>b_1pj9xLjT6MxEnm95u&Yt*>fZcCTLp{M@mdMev<;=1?(bobNE&*&N|L=cl8Q~msaoe|TA=|d=!606T3H_xyNn|h*F_PRz@H*|9;5gMm-kv~l#V1KAz8WG( zOsrh*_9>7-@oN`G?3B{fwOD`Fh{kXdknHwtp`nPfE_aN0`J+Y^wMU`%unVPJ8T7`2 z%P6bt{lF9amASuXF-SZ^BGJD+(_^6#1Y9YZDvQk&M* z*D@W@)QNvNQ$Q3Oj$>~MA#_OfGj|SPwv&-EavW+Woa`WSr-y9Ar`ZBJu~VK}!%}$3 zJi6m4eoM0a94h>Sa`7iRjft6mOpgEp^$*p=V*H~KoF|p1=_CO(^_m(D$AQD2yiW-^ zN2(Li0)bOKCns3aS;KYw^xw`g@AnuOL!^5U?sygf`mCbbKT!Dt(JgY`FQ1ZM*FJ}*)*}b>$Z7c^u~&OSW5TLQ>E$!a&_~{ds+$;&LtB$8@iLsXTuT`aC=HVASAT_h z`FhAp{%M`3g0|lQdkBZdY&FCJf!bl z&l#3))FYZnCoxvhr>RX|P4fwcz0DS@BZ|RcfiqujpX+hyCN#$75O?3AeKqK8SN2vf zR+JBwKE5m0s^czIyGiPZ7>LaJ+2POU)Yh7s^$_J>26M50Zk~xQJ?PT+RCJ4wD_7^; zM_sPfMEHxRX%K5-V=Mz!LIQf~OU+OF?%&K4vu&k&T%y6boQ_#Be55WF2k*Ca^?p}c zMFSXN!#x7pZNvkfjB4d!U({^j3Q@FRvNC1I!^DSMoP$r-@K6c3zglhZπ%f0OCC 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:auto}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-brand-1)}.custom-block.tip a:hover{color:var(--vp-c-brand-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge[data-v-9613cc9f]{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.vp-doc h1>.VPBadge[data-v-9613cc9f]{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge[data-v-9613cc9f]{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge[data-v-9613cc9f]{vertical-align:middle}.vp-doc h4>.VPBadge[data-v-9613cc9f],.vp-doc h5>.VPBadge[data-v-9613cc9f],.vp-doc h6>.VPBadge[data-v-9613cc9f]{vertical-align:middle;line-height:18px}.VPBadge.info[data-v-9613cc9f]{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip[data-v-9613cc9f]{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning[data-v-9613cc9f]{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger[data-v-9613cc9f]{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c79a1216]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-c79a1216]{display:none}}.NotFound[data-v-f87ff6e4]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-f87ff6e4]{padding:96px 32px 168px}}.code[data-v-f87ff6e4]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-f87ff6e4]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-f87ff6e4]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-f87ff6e4]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-f87ff6e4]{padding-top:20px}.link[data-v-f87ff6e4]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-f87ff6e4]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-d0ee3533]{position:relative;z-index:1}.nested[data-v-d0ee3533]{padding-left:16px}.outline-link[data-v-d0ee3533]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s;font-weight:400}.outline-link[data-v-d0ee3533]:hover,.outline-link.active[data-v-d0ee3533]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-d0ee3533]{padding-left:13px}.VPDocAsideOutline[data-v-d330b1bb]{display:none}.VPDocAsideOutline.has-outline[data-v-d330b1bb]{display:block}.content[data-v-d330b1bb]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-d330b1bb]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-d330b1bb]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-7e05ebdb]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-7e05ebdb]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-48f9bb55]{margin-top:64px}.edit-info[data-v-48f9bb55]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-48f9bb55]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-48f9bb55]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-48f9bb55]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-48f9bb55]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-48f9bb55]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-48f9bb55]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-48f9bb55]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-48f9bb55]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-48f9bb55]{margin-left:auto;text-align:right}.desc[data-v-48f9bb55]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-48f9bb55]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDocOutlineDropdown[data-v-eadfb36b]{margin-bottom:48px}.VPDocOutlineDropdown button[data-v-eadfb36b]{display:block;font-size:14px;font-weight:500;line-height:24px;border:1px solid var(--vp-c-border);padding:4px 12px;color:var(--vp-c-text-2);background-color:var(--vp-c-default-soft);border-radius:8px;transition:color .5s}.VPDocOutlineDropdown button[data-v-eadfb36b]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPDocOutlineDropdown button.open[data-v-eadfb36b]{color:var(--vp-c-text-1)}.icon[data-v-eadfb36b]{display:inline-block;vertical-align:middle;width:16px;height:16px;fill:currentColor}[data-v-eadfb36b] .outline-link{font-size:14px;font-weight:400}.open>.icon[data-v-eadfb36b]{transform:rotate(90deg)}.items[data-v-eadfb36b]{margin-top:12px;border-left:1px solid var(--vp-c-divider)}.VPDoc[data-v-6b87e69f]{padding:32px 24px 96px;width:100%}.VPDoc .VPDocOutlineDropdown[data-v-6b87e69f]{display:none}@media (min-width: 960px) and (max-width: 1279px){.VPDoc .VPDocOutlineDropdown[data-v-6b87e69f]{display:block}}@media (min-width: 768px){.VPDoc[data-v-6b87e69f]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-6b87e69f]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-6b87e69f]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-6b87e69f]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-6b87e69f]{display:flex;justify-content:center}.VPDoc .aside[data-v-6b87e69f]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-6b87e69f]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-6b87e69f]{max-width:1104px}}.container[data-v-6b87e69f]{margin:0 auto;width:100%}.aside[data-v-6b87e69f]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-6b87e69f]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-6b87e69f]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 32px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-6b87e69f]::-webkit-scrollbar{display:none}.aside-curtain[data-v-6b87e69f]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-6b87e69f]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px));padding-bottom:32px}.content[data-v-6b87e69f]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-6b87e69f]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-6b87e69f]{order:1;margin:0;min-width:640px}}.content-container[data-v-6b87e69f]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-6b87e69f]{max-width:688px}.external-link-icon-enabled[data-v-6b87e69f] :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.VPButton[data-v-c1c5efc1]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-c1c5efc1]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-c1c5efc1]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-c1c5efc1]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-c1c5efc1]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-c1c5efc1]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-c1c5efc1]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-c1c5efc1]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-c1c5efc1]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-c1c5efc1]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-c1c5efc1]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-c1c5efc1]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-c1c5efc1]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-8426fc1a]{display:none}.dark .VPImage.light[data-v-8426fc1a]{display:none}.VPHero[data-v-da5d1713]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-da5d1713]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-da5d1713]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-da5d1713]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-da5d1713]{flex-direction:row}}.main[data-v-da5d1713]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-da5d1713]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-da5d1713]{text-align:left}}@media (min-width: 960px){.main[data-v-da5d1713]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-da5d1713]{max-width:592px}}.name[data-v-da5d1713],.text[data-v-da5d1713]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-da5d1713],.VPHero.has-image .text[data-v-da5d1713]{margin:0 auto}.name[data-v-da5d1713]{color:var(--vp-home-hero-name-color)}.clip[data-v-da5d1713]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-da5d1713],.text[data-v-da5d1713]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-da5d1713],.text[data-v-da5d1713]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-da5d1713],.VPHero.has-image .text[data-v-da5d1713]{margin:0}}.tagline[data-v-da5d1713]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-da5d1713]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-da5d1713]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-da5d1713]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-da5d1713]{margin:0}}.actions[data-v-da5d1713]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-da5d1713]{justify-content:center}@media (min-width: 640px){.actions[data-v-da5d1713]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-da5d1713]{justify-content:flex-start}}.action[data-v-da5d1713]{flex-shrink:0;padding:6px}.image[data-v-da5d1713]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-da5d1713]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-da5d1713]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-da5d1713]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-da5d1713]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-da5d1713]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-da5d1713]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-da5d1713]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-da5d1713]{width:320px;height:320px}}[data-v-da5d1713] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-da5d1713] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-da5d1713] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-33204567]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-33204567]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-33204567]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-33204567]>.VPImage{margin-bottom:20px}.icon[data-v-33204567]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-33204567]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-33204567]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-33204567]{padding-top:8px}.link-text-value[data-v-33204567]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-33204567]{display:inline-block;margin-left:6px;width:14px;height:14px;fill:currentColor}.VPFeatures[data-v-a6181336]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-a6181336]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-a6181336]{padding:0 64px}}.container[data-v-a6181336]{margin:0 auto;max-width:1152px}.items[data-v-a6181336]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-a6181336]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336]{width:50%}.item.grid-3[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-a6181336]{width:25%}}.VPHome[data-v-d82743a8]{padding-bottom:96px}.VPHome[data-v-d82743a8] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-d82743a8]{padding-bottom:128px}}.VPContent[data-v-669faec9]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-669faec9]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-669faec9]{margin:0}@media (min-width: 960px){.VPContent[data-v-669faec9]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-669faec9]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-669faec9]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-e315a0ad]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-e315a0ad]{display:none}.VPFooter[data-v-e315a0ad] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-e315a0ad] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-e315a0ad]{padding:32px}}.container[data-v-e315a0ad]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e315a0ad],.copyright[data-v-e315a0ad]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-1c15a60a]{padding:12px 20px 11px}.VPLocalNavOutlineDropdown button[data-v-1c15a60a]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-1c15a60a]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-1c15a60a]{color:var(--vp-c-text-1)}.icon[data-v-1c15a60a]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-1c15a60a] .outline-link{font-size:14px;padding:2px 0}.open>.icon[data-v-1c15a60a]{transform:rotate(90deg)}.items[data-v-1c15a60a]{position:absolute;top:64px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}.header[data-v-1c15a60a]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-1c15a60a]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-1c15a60a]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-1c15a60a]{transition:all .2s ease-out}.flyout-leave-active[data-v-1c15a60a]{transition:all .15s ease-in}.flyout-enter-from[data-v-1c15a60a],.flyout-leave-to[data-v-1c15a60a]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-f84a0989]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--vp-c-gutter);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-f84a0989]{position:fixed}.VPLocalNav.reached-top[data-v-f84a0989]{border-top-color:transparent}@media (min-width: 960px){.VPLocalNav[data-v-f84a0989]{display:none}}.menu[data-v-f84a0989]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-f84a0989]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-f84a0989]{padding:0 32px}}.menu-icon[data-v-f84a0989]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPOutlineDropdown[data-v-f84a0989]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-f84a0989]{padding:12px 32px 11px}}.VPSwitch[data-v-b1685198]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-b1685198]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-b1685198]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-b1685198]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-b1685198] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-b1685198] svg{fill:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-cbbe1149]{opacity:1}.moon[data-v-cbbe1149],.dark .sun[data-v-cbbe1149]{opacity:0}.dark .moon[data-v-cbbe1149]{opacity:1}.dark .VPSwitchAppearance[data-v-cbbe1149] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-e6aabb21]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-e6aabb21]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-43f1e123]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-43f1e123]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-43f1e123]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-43f1e123]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-69e747b5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-69e747b5]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-69e747b5]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-69e747b5]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-e7ea1737]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-e7ea1737] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e7ea1737] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e7ea1737] .group:last-child{padding-bottom:0}.VPMenu[data-v-e7ea1737] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e7ea1737] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e7ea1737] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e7ea1737] .action{padding-left:24px}.VPFlyout[data-v-9c007e85]{position:relative}.VPFlyout[data-v-9c007e85]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-9c007e85]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-9c007e85]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-9c007e85]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-9c007e85]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-9c007e85],.button[aria-expanded=true]+.menu[data-v-9c007e85]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-9c007e85]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-9c007e85]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-9c007e85]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-9c007e85]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-9c007e85]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-9c007e85]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-9c007e85]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-f80f8133]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-f80f8133]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-f80f8133]>svg{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-7bc22406]{display:flex;justify-content:center}.VPNavBarExtra[data-v-d0bd9dde]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-d0bd9dde]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-d0bd9dde]{display:none}}.trans-title[data-v-d0bd9dde]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-d0bd9dde],.item.social-links[data-v-d0bd9dde]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-d0bd9dde]{min-width:176px}.appearance-action[data-v-d0bd9dde]{margin-right:-2px}.social-links-list[data-v-d0bd9dde]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-42ef59de]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-42ef59de],.VPNavBarMenuLink[data-v-42ef59de]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-7f418b0f]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-7f418b0f]{display:flex}}/*! @docsearch/css 3.5.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.title[data-v-86d1bed8]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-86d1bed8]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-86d1bed8]{border-bottom-color:var(--vp-c-divider)}}[data-v-86d1bed8] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-74abcbb9]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-74abcbb9]{display:flex;align-items:center}}.title[data-v-74abcbb9]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-d83f3580]{position:relative;border-bottom:1px solid transparent;padding:0 8px 0 24px;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap}@media (min-width: 768px){.VPNavBar[data-v-d83f3580]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar[data-v-d83f3580]{padding:0}.VPNavBar[data-v-d83f3580]:not(.has-sidebar):not(.top){border-bottom-color:var(--vp-c-gutter);background-color:var(--vp-nav-bg-color)}}.container[data-v-d83f3580]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-d83f3580],.container>.content[data-v-d83f3580]{pointer-events:none}.container[data-v-d83f3580] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-d83f3580]{max-width:100%}}.title[data-v-d83f3580]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-d83f3580]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-d83f3580]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-d83f3580]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-d83f3580]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-d83f3580]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-d83f3580]{display:flex;justify-content:flex-end;align-items:center;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.top) .content-body[data-v-d83f3580]{position:relative;background-color:var(--vp-nav-bg-color)}}@media (max-width: 767px){.content-body[data-v-d83f3580]{column-gap:.5rem}}.menu+.translations[data-v-d83f3580]:before,.menu+.appearance[data-v-d83f3580]:before,.menu+.social-links[data-v-d83f3580]:before,.translations+.appearance[data-v-d83f3580]:before,.appearance+.social-links[data-v-d83f3580]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-d83f3580]:before,.translations+.appearance[data-v-d83f3580]:before{margin-right:16px}.appearance+.social-links[data-v-d83f3580]:before{margin-left:16px}.social-links[data-v-d83f3580]{margin-right:-8px}@media (min-width: 960px){.VPNavBar.has-sidebar .curtain[data-v-d83f3580]{position:absolute;right:0;bottom:-31px;width:calc(100% - var(--vp-sidebar-width));height:32px}.VPNavBar.has-sidebar .curtain[data-v-d83f3580]:before{display:block;width:100%;height:32px;background:linear-gradient(var(--vp-c-bg),transparent 70%);content:""}}@media (min-width: 1440px){.VPNavBar.has-sidebar .curtain[data-v-d83f3580]{width:calc(100% - ((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)))}}.VPNavScreenAppearance[data-v-2d7af913]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-2d7af913]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-05f27b2a]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-05f27b2a]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-19976ae1]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-19976ae1]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-8133b170]{display:block}.title[data-v-8133b170]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-65ef89ca]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-65ef89ca]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-65ef89ca]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-65ef89ca]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-65ef89ca]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-65ef89ca]{transform:rotate(45deg)}.button[data-v-65ef89ca]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-65ef89ca]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-65ef89ca]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-65ef89ca]:first-child{padding-top:0}.group+.group[data-v-65ef89ca],.group+.item[data-v-65ef89ca]{padding-top:4px}.VPNavScreenTranslations[data-v-d72aa483]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-d72aa483]{height:auto}.title[data-v-d72aa483]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-d72aa483]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-d72aa483]{margin-right:8px}.icon.chevron[data-v-d72aa483]{margin-left:4px}.list[data-v-d72aa483]{padding:4px 0 0 24px}.link[data-v-d72aa483]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-cc5739dd]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-cc5739dd],.VPNavScreen.fade-leave-active[data-v-cc5739dd]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-cc5739dd],.VPNavScreen.fade-leave-active .container[data-v-cc5739dd]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-cc5739dd],.VPNavScreen.fade-leave-to[data-v-cc5739dd]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-cc5739dd],.VPNavScreen.fade-leave-to .container[data-v-cc5739dd]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-cc5739dd]{display:none}}.container[data-v-cc5739dd]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-cc5739dd],.menu+.appearance[data-v-cc5739dd],.translations+.appearance[data-v-cc5739dd]{margin-top:24px}.menu+.social-links[data-v-cc5739dd]{margin-top:16px}.appearance+.social-links[data-v-cc5739dd]{margin-top:16px}.VPNav[data-v-ae24b3ad]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-ae24b3ad]{position:fixed}}.VPSidebarItem.level-0[data-v-e31bd47b]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-e31bd47b]{padding-bottom:10px}.item[data-v-e31bd47b]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-e31bd47b]{cursor:pointer}.indicator[data-v-e31bd47b]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-e31bd47b],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-e31bd47b],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-e31bd47b],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-e31bd47b]{background-color:var(--vp-c-brand-1)}.link[data-v-e31bd47b]{display:flex;align-items:center;flex-grow:1}.text[data-v-e31bd47b]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-e31bd47b]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-e31bd47b],.VPSidebarItem.level-2 .text[data-v-e31bd47b],.VPSidebarItem.level-3 .text[data-v-e31bd47b],.VPSidebarItem.level-4 .text[data-v-e31bd47b],.VPSidebarItem.level-5 .text[data-v-e31bd47b]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-e31bd47b]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-1.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-2.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-3.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-4.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-5.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-e31bd47b]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-e31bd47b]{color:var(--vp-c-brand-1)}.caret[data-v-e31bd47b]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-e31bd47b]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-e31bd47b]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-e31bd47b]{width:18px;height:18px;fill:currentColor;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-e31bd47b]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-e31bd47b],.VPSidebarItem.level-2 .items[data-v-e31bd47b],.VPSidebarItem.level-3 .items[data-v-e31bd47b],.VPSidebarItem.level-4 .items[data-v-e31bd47b],.VPSidebarItem.level-5 .items[data-v-e31bd47b]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-e31bd47b]{display:none}.VPSidebar[data-v-7f44e717]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-7f44e717]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-7f44e717]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-7f44e717]{z-index:1;padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-7f44e717]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-7f44e717]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-7f44e717]{outline:0}.group+.group[data-v-7f44e717]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-7f44e717]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-0f60ec36]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-0f60ec36]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-0f60ec36]{top:14px;left:16px}}.Layout[data-v-5a346dfe]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-96bd69d5]{border-top:1px solid var(--vp-c-gutter);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-96bd69d5]{margin:0 auto;max-width:1152px}.love[data-v-96bd69d5]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-96bd69d5]{width:28px;height:28px;fill:currentColor}.message[data-v-96bd69d5]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-96bd69d5]{padding-top:32px}.action[data-v-96bd69d5]{padding-top:40px;text-align:center}.VPTeamPage[data-v-10b00018]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-10b00018]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-10b00018-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-10b00018-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:96px}}.VPTeamMembers[data-v-10b00018-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-10b00018-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-10b00018-s]{padding:0 64px}}.VPTeamPageTitle[data-v-bf2cbdac]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:80px 64px 48px}}.title[data-v-bf2cbdac]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-bf2cbdac]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-bf2cbdac]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-bf2cbdac]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-b1a88750]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-b1a88750]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-b1a88750]{padding:0 64px}}.title[data-v-b1a88750]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-b1a88750]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-b1a88750]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-b1a88750]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-b1a88750]{padding-top:40px}.VPTeamMembersItem[data-v-28528e42]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-28528e42]{padding:32px}.VPTeamMembersItem.small .data[data-v-28528e42]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-28528e42]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-28528e42]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-28528e42]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-28528e42]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-28528e42]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-28528e42]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-28528e42]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-28528e42]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-28528e42]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-28528e42]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-28528e42]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-28528e42]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-28528e42]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-28528e42]{text-align:center}.avatar[data-v-28528e42]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-28528e42]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-28528e42]{margin:0;font-weight:600}.affiliation[data-v-28528e42]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-28528e42]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-28528e42]:hover{color:var(--vp-c-brand-1)}.desc[data-v-28528e42]{margin:0 auto}.desc[data-v-28528e42] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-28528e42]{display:flex;justify-content:center;height:56px}.sp-link[data-v-28528e42]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-28528e42]:hover,.sp .sp-link.link[data-v-28528e42]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-28528e42]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-6cb0dbc4]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-6cb0dbc4]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-6cb0dbc4]{max-width:876px}.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-6cb0dbc4]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-6cb0dbc4]{max-width:760px}.container[data-v-6cb0dbc4]{display:grid;gap:24px;margin:0 auto;max-width:1152px}.qa-list .title{display:flex}.qa-list .title:before{content:">";margin-right:10px}.qa-list .title .link{flex:1;cursor:pointer}.qa-list .title .author{font-size:12px}.qa-list .detail{margin-left:20px;background:aliceblue;padding:5px 10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px}:root{--vs-colors--lightest: rgba(60, 60, 60, .26);--vs-colors--light: rgba(60, 60, 60, .5);--vs-colors--dark: #333;--vs-colors--darkest: rgba(0, 0, 0, .15);--vs-search-input-color: inherit;--vs-search-input-placeholder-color: inherit;--vs-font-size: 1rem;--vs-line-height: 1.4;--vs-state-disabled-bg: rgb(248, 248, 248);--vs-state-disabled-color: var(--vs-colors--light);--vs-state-disabled-controls-color: var(--vs-colors--light);--vs-state-disabled-cursor: not-allowed;--vs-border-color: var(--vs-colors--lightest);--vs-border-width: 1px;--vs-border-style: solid;--vs-border-radius: 4px;--vs-actions-padding: 4px 6px 0 3px;--vs-controls-color: var(--vs-colors--light);--vs-controls-size: 1;--vs-controls--deselect-text-shadow: 0 1px 0 #fff;--vs-selected-bg: #f0f0f0;--vs-selected-color: var(--vs-colors--dark);--vs-selected-border-color: var(--vs-border-color);--vs-selected-border-style: var(--vs-border-style);--vs-selected-border-width: var(--vs-border-width);--vs-dropdown-bg: #fff;--vs-dropdown-color: inherit;--vs-dropdown-z-index: 1000;--vs-dropdown-min-width: 160px;--vs-dropdown-max-height: 350px;--vs-dropdown-box-shadow: 0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg: #000;--vs-dropdown-option-color: var(--vs-dropdown-color);--vs-dropdown-option-padding: 3px 20px;--vs-dropdown-option--active-bg: #5897fb;--vs-dropdown-option--active-color: #fff;--vs-dropdown-option--deselect-bg: #fb5858;--vs-dropdown-option--deselect-color: #fff;--vs-transition-timing-function: cubic-bezier(1, -.115, .975, .855);--vs-transition-duration: .15s}.v-select{position:relative;font-family:inherit}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function: cubic-bezier(1, .5, .8, 1);--vs-transition-duration: .15s}@-webkit-keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg: var(--vs-state-disabled-bg);--vs-disabled-color: var(--vs-state-disabled-color);--vs-disabled-cursor: var(--vs-state-disabled-cursor)}.vs--disabled .vs__dropdown-toggle,.vs--disabled .vs__clear,.vs--disabled .vs__search,.vs--disabled .vs__selected,.vs--disabled .vs__open-indicator{cursor:var(--vs-disabled-cursor);background-color:var(--vs-disabled-bg)}.v-select[dir=rtl] .vs__actions{padding:0 3px 0 6px}.v-select[dir=rtl] .vs__clear{margin-left:6px;margin-right:0}.v-select[dir=rtl] .vs__deselect{margin-left:0;margin-right:2px}.v-select[dir=rtl] .vs__dropdown-menu{text-align:right}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;padding:0 0 4px;background:none;border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;padding:0 2px;position:relative}.vs__actions{display:flex;align-items:center;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{fill:var(--vs-controls-color);padding:0;border:0;background-color:transparent;cursor:pointer;margin-right:8px}.vs__dropdown-menu{display:block;box-sizing:border-box;position:absolute;top:calc(100% - var(--vs-border-width));left:0;z-index:var(--vs-dropdown-z-index);padding:5px 0;margin:0;width:100%;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;box-shadow:var(--vs-dropdown-box-shadow);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-top-style:none;border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);text-align:left;list-style:none;background:var(--vs-dropdown-bg);color:var(--vs-dropdown-color)}.vs__no-options{text-align:center}.vs__dropdown-option{line-height:1.42857143;display:block;padding:var(--vs-dropdown-option-padding);clear:both;color:var(--vs-dropdown-option-color);white-space:nowrap;cursor:pointer}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{display:flex;align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);line-height:var(--vs-line-height);margin:4px 2px 0;padding:0 .25em;z-index:0}.vs__deselect{display:inline-flex;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-left:4px;padding:0;border:0;cursor:pointer;background:none;fill:var(--vs-controls-color);text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single .vs__selected{background-color:transparent;border-color:transparent}.vs--single.vs--open .vs__selected,.vs--single.vs--loading .vs__selected{position:absolute;opacity:.4}.vs--single.vs--searching .vs__selected{display:none}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration,.vs__search::-ms-clear{display:none}.vs__search,.vs__search:focus{color:var(--vs-search-input-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;line-height:var(--vs-line-height);font-size:var(--vs-font-size);border:1px solid transparent;border-left:none;outline:none;margin:4px 0 0;padding:0 7px;background:none;box-shadow:none;width:0;max-width:100%;flex-grow:1;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable .vs__search{opacity:1}.vs--unsearchable:not(.vs--disabled) .vs__search{cursor:pointer}.vs--single.vs--searching:not(.vs--open):not(.vs--loading) .vs__search{opacity:.2}.vs__spinner{align-self:center;opacity:0;font-size:5px;text-indent:-9999em;overflow:hidden;border-top:.9em solid rgba(100,100,100,.1);border-right:.9em solid rgba(100,100,100,.1);border-bottom:.9em solid rgba(100,100,100,.1);border-left:.9em solid rgba(60,60,60,.45);transform:translateZ(0) scale(var(--vs-controls--spinner-size, var(--vs-controls-size)));-webkit-animation:vSelectSpinner 1.1s infinite linear;animation:vSelectSpinner 1.1s infinite linear;transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;width:5em;height:5em;transform:scale(var(--vs-controls--spinner-size, var(--vs-controls-size)))}.vs--loading .vs__spinner{opacity:1}#msg-template .row{width:100%;display:flex}#msg-template .row .col{flex:1 0 33%}#msg-template .row .col.disable{opacity:0}.VPHome{background:radial-gradient(transparent,rgba(0,0,0,.3)),url(/Shmily/assets/bg.csZ5PfZW.jpg);background-attachment:fixed;background-size:cover}#features[data-v-12708b6b]{margin:0 auto;max-width:1000px;background:rgba(255,255,255,.7);padding:0 20px;box-sizing:content-box;border-radius:10px;box-shadow:0 2px 12px #0000001a}#features .row[data-v-12708b6b]{justify-content:center;display:flex;padding:20px 0;border-bottom:1px solid #aaa}#features .row[data-v-12708b6b]:nth-child(2n){flex-direction:row-reverse}#features .row:nth-child(2n) .info[data-v-12708b6b]{text-align:right}#features .row[data-v-12708b6b]:last-child{border-bottom:none}#features .row .info[data-v-12708b6b]{flex:1 1 auto;display:flex;align-items:center}#features .row .info .title[data-v-12708b6b]{font-weight:700;font-size:18px}#features .row .info .content[data-v-12708b6b]{margin-bottom:20px;width:100%}#features .row .info .content p[data-v-12708b6b]{font-size:16px;margin:10px 0}#features .row .info .content .tips[data-v-12708b6b]{font-size:12px;color:#333;font-style:italic}#features .row .info .content a[data-v-12708b6b]{color:#3451b2;text-decoration:underline;padding:0 5px;font-weight:700;font-style:italic}#features .row .cover[data-v-12708b6b]{flex:0 0 auto}#features .row .cover img[data-v-12708b6b]{display:inline-block;width:100%}@media (max-width: 960px){#features .row[data-v-12708b6b]{flex-direction:column!important}#features .row .info[data-v-12708b6b],#features .row .cover[data-v-12708b6b]{text-align:center!important;padding:0!important}} +@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Shmily/assets/inter-roman-cyrillic.jIZ9REo5.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Shmily/assets/inter-roman-cyrillic-ext.8T9wMG5w.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Shmily/assets/inter-roman-greek.Cb5wWeGA.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Shmily/assets/inter-roman-greek-ext.9JiNzaSO.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Shmily/assets/inter-roman-latin.bvIUbFQP.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Shmily/assets/inter-roman-latin-ext.GZWE-KO4.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:normal;font-named-instance:"Regular";src:url(/Shmily/assets/inter-roman-vietnamese.paY3CzEB.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Shmily/assets/inter-italic-cyrillic.-nLMcIwj.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Shmily/assets/inter-italic-cyrillic-ext.OVycGSDq.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Shmily/assets/inter-italic-greek.PSfer2Kc.woff2) format("woff2");unicode-range:U+0370-03FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Shmily/assets/inter-italic-greek-ext.hznxWNZO.woff2) format("woff2");unicode-range:U+1F00-1FFF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Shmily/assets/inter-italic-latin.27E69YJn.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Shmily/assets/inter-italic-latin-ext.RnFly65-.woff2) format("woff2");unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter var;font-weight:100 900;font-display:swap;font-style:italic;font-named-instance:"Italic";src:url(/Shmily/assets/inter-italic-vietnamese.xzQHe1q1.woff2) format("woff2");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:Chinese Quotes;src:local("PingFang SC Regular"),local("PingFang SC"),local("SimHei"),local("Source Han Sans SC");unicode-range:U+2018,U+2019,U+201C,U+201D}:root{--vp-c-white: #ffffff;--vp-c-black: #000000;--vp-c-neutral: var(--vp-c-black);--vp-c-neutral-inverse: var(--vp-c-white)}.dark{--vp-c-neutral: var(--vp-c-white);--vp-c-neutral-inverse: var(--vp-c-black)}:root{--vp-c-gray-1: #dddde3;--vp-c-gray-2: #e4e4e9;--vp-c-gray-3: #ebebef;--vp-c-gray-soft: rgba(142, 150, 170, .14);--vp-c-indigo-1: #3451b2;--vp-c-indigo-2: #3a5ccc;--vp-c-indigo-3: #5672cd;--vp-c-indigo-soft: rgba(100, 108, 255, .14);--vp-c-green-1: #18794e;--vp-c-green-2: #299764;--vp-c-green-3: #30a46c;--vp-c-green-soft: rgba(16, 185, 129, .14);--vp-c-yellow-1: #915930;--vp-c-yellow-2: #946300;--vp-c-yellow-3: #9f6a00;--vp-c-yellow-soft: rgba(234, 179, 8, .14);--vp-c-red-1: #b8272c;--vp-c-red-2: #d5393e;--vp-c-red-3: #e0575b;--vp-c-red-soft: rgba(244, 63, 94, .14);--vp-c-sponsor: #db2777}.dark{--vp-c-gray-1: #515c67;--vp-c-gray-2: #414853;--vp-c-gray-3: #32363f;--vp-c-gray-soft: rgba(101, 117, 133, .16);--vp-c-indigo-1: #a8b1ff;--vp-c-indigo-2: #5c73e7;--vp-c-indigo-3: #3e63dd;--vp-c-indigo-soft: rgba(100, 108, 255, .16);--vp-c-green-1: #3dd68c;--vp-c-green-2: #30a46c;--vp-c-green-3: #298459;--vp-c-green-soft: rgba(16, 185, 129, .16);--vp-c-yellow-1: #f9b44e;--vp-c-yellow-2: #da8b17;--vp-c-yellow-3: #a46a0a;--vp-c-yellow-soft: rgba(234, 179, 8, .16);--vp-c-red-1: #f66f81;--vp-c-red-2: #f14158;--vp-c-red-3: #b62a3c;--vp-c-red-soft: rgba(244, 63, 94, .16)}:root{--vp-c-bg: #ffffff;--vp-c-bg-alt: #f6f6f7;--vp-c-bg-elv: #ffffff;--vp-c-bg-soft: #f6f6f7}.dark{--vp-c-bg: #1b1b1f;--vp-c-bg-alt: #161618;--vp-c-bg-elv: #202127;--vp-c-bg-soft: #202127}:root{--vp-c-border: #c2c2c4;--vp-c-divider: #e2e2e3;--vp-c-gutter: #e2e2e3}.dark{--vp-c-border: #3c3f44;--vp-c-divider: #2e2e32;--vp-c-gutter: #000000}:root{--vp-c-text-1: rgba(60, 60, 67);--vp-c-text-2: rgba(60, 60, 67, .78);--vp-c-text-3: rgba(60, 60, 67, .56)}.dark{--vp-c-text-1: rgba(255, 255, 245, .86);--vp-c-text-2: rgba(235, 235, 245, .6);--vp-c-text-3: rgba(235, 235, 245, .38)}:root{--vp-c-default-1: var(--vp-c-gray-1);--vp-c-default-2: var(--vp-c-gray-2);--vp-c-default-3: var(--vp-c-gray-3);--vp-c-default-soft: var(--vp-c-gray-soft);--vp-c-brand-1: var(--vp-c-indigo-1);--vp-c-brand-2: var(--vp-c-indigo-2);--vp-c-brand-3: var(--vp-c-indigo-3);--vp-c-brand-soft: var(--vp-c-indigo-soft);--vp-c-brand: var(--vp-c-brand-1);--vp-c-tip-1: var(--vp-c-brand-1);--vp-c-tip-2: var(--vp-c-brand-2);--vp-c-tip-3: var(--vp-c-brand-3);--vp-c-tip-soft: var(--vp-c-brand-soft);--vp-c-warning-1: var(--vp-c-yellow-1);--vp-c-warning-2: var(--vp-c-yellow-2);--vp-c-warning-3: var(--vp-c-yellow-3);--vp-c-warning-soft: var(--vp-c-yellow-soft);--vp-c-danger-1: var(--vp-c-red-1);--vp-c-danger-2: var(--vp-c-red-2);--vp-c-danger-3: var(--vp-c-red-3);--vp-c-danger-soft: var(--vp-c-red-soft)}:root{--vp-font-family-base: "Chinese Quotes", "Inter var", "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--vp-font-family-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--vp-shadow-1: 0 1px 2px rgba(0, 0, 0, .04), 0 1px 2px rgba(0, 0, 0, .06);--vp-shadow-2: 0 3px 12px rgba(0, 0, 0, .07), 0 1px 4px rgba(0, 0, 0, .07);--vp-shadow-3: 0 12px 32px rgba(0, 0, 0, .1), 0 2px 6px rgba(0, 0, 0, .08);--vp-shadow-4: 0 14px 44px rgba(0, 0, 0, .12), 0 3px 9px rgba(0, 0, 0, .12);--vp-shadow-5: 0 18px 56px rgba(0, 0, 0, .16), 0 4px 12px rgba(0, 0, 0, .16)}:root{--vp-z-index-footer: 10;--vp-z-index-local-nav: 20;--vp-z-index-nav: 30;--vp-z-index-layout-top: 40;--vp-z-index-backdrop: 50;--vp-z-index-sidebar: 60}:root{--vp-icon-copy: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2'/%3E%3C/svg%3E");--vp-icon-copied: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' height='20' width='20' stroke='rgba(128,128,128,1)' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M9 5H7a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-2M9 5a2 2 0 0 0 2 2h2a2 2 0 0 0 2-2M9 5a2 2 0 0 1 2-2h2a2 2 0 0 1 2 2m-6 9 2 2 4-4'/%3E%3C/svg%3E")}:root{--vp-layout-max-width: 1440px}:root{--vp-header-anchor-symbol: "#"}:root{--vp-code-line-height: 1.7;--vp-code-font-size: .875em;--vp-code-color: var(--vp-c-brand-1);--vp-code-link-color: var(--vp-c-brand-1);--vp-code-link-hover-color: var(--vp-c-brand-2);--vp-code-bg: var(--vp-c-default-soft);--vp-code-block-color: var(--vp-c-text-2);--vp-code-block-bg: var(--vp-c-bg-alt);--vp-code-block-divider-color: var(--vp-c-gutter);--vp-code-lang-color: var(--vp-c-text-3);--vp-code-line-highlight-color: var(--vp-c-default-soft);--vp-code-line-number-color: var(--vp-c-text-3);--vp-code-line-diff-add-color: var(--vp-c-green-soft);--vp-code-line-diff-add-symbol-color: var(--vp-c-green-1);--vp-code-line-diff-remove-color: var(--vp-c-red-soft);--vp-code-line-diff-remove-symbol-color: var(--vp-c-red-1);--vp-code-line-warning-color: var(--vp-c-yellow-soft);--vp-code-line-error-color: var(--vp-c-red-soft);--vp-code-copy-code-border-color: var(--vp-c-divider);--vp-code-copy-code-bg: var(--vp-c-bg-soft);--vp-code-copy-code-hover-border-color: var(--vp-c-divider);--vp-code-copy-code-hover-bg: var(--vp-c-bg);--vp-code-copy-code-active-text: var(--vp-c-text-2);--vp-code-copy-copied-text-content: "Copied";--vp-code-tab-divider: var(--vp-code-block-divider-color);--vp-code-tab-text-color: var(--vp-c-text-2);--vp-code-tab-bg: var(--vp-code-block-bg);--vp-code-tab-hover-text-color: var(--vp-c-text-1);--vp-code-tab-active-text-color: var(--vp-c-text-1);--vp-code-tab-active-bar-color: var(--vp-c-brand-1)}:root{--vp-button-brand-border: transparent;--vp-button-brand-text: var(--vp-c-white);--vp-button-brand-bg: var(--vp-c-brand-3);--vp-button-brand-hover-border: transparent;--vp-button-brand-hover-text: var(--vp-c-white);--vp-button-brand-hover-bg: var(--vp-c-brand-2);--vp-button-brand-active-border: transparent;--vp-button-brand-active-text: var(--vp-c-white);--vp-button-brand-active-bg: var(--vp-c-brand-1);--vp-button-alt-border: transparent;--vp-button-alt-text: var(--vp-c-text-1);--vp-button-alt-bg: var(--vp-c-default-3);--vp-button-alt-hover-border: transparent;--vp-button-alt-hover-text: var(--vp-c-text-1);--vp-button-alt-hover-bg: var(--vp-c-default-2);--vp-button-alt-active-border: transparent;--vp-button-alt-active-text: var(--vp-c-text-1);--vp-button-alt-active-bg: var(--vp-c-default-1);--vp-button-sponsor-border: var(--vp-c-text-2);--vp-button-sponsor-text: var(--vp-c-text-2);--vp-button-sponsor-bg: transparent;--vp-button-sponsor-hover-border: var(--vp-c-sponsor);--vp-button-sponsor-hover-text: var(--vp-c-sponsor);--vp-button-sponsor-hover-bg: transparent;--vp-button-sponsor-active-border: var(--vp-c-sponsor);--vp-button-sponsor-active-text: var(--vp-c-sponsor);--vp-button-sponsor-active-bg: transparent}:root{--vp-custom-block-font-size: 14px;--vp-custom-block-code-font-size: 13px;--vp-custom-block-info-border: transparent;--vp-custom-block-info-text: var(--vp-c-text-1);--vp-custom-block-info-bg: var(--vp-c-default-soft);--vp-custom-block-info-code-bg: var(--vp-c-default-soft);--vp-custom-block-tip-border: transparent;--vp-custom-block-tip-text: var(--vp-c-text-1);--vp-custom-block-tip-bg: var(--vp-c-brand-soft);--vp-custom-block-tip-code-bg: var(--vp-c-brand-soft);--vp-custom-block-warning-border: transparent;--vp-custom-block-warning-text: var(--vp-c-text-1);--vp-custom-block-warning-bg: var(--vp-c-warning-soft);--vp-custom-block-warning-code-bg: var(--vp-c-warning-soft);--vp-custom-block-danger-border: transparent;--vp-custom-block-danger-text: var(--vp-c-text-1);--vp-custom-block-danger-bg: var(--vp-c-danger-soft);--vp-custom-block-danger-code-bg: var(--vp-c-danger-soft);--vp-custom-block-details-border: var(--vp-custom-block-info-border);--vp-custom-block-details-text: var(--vp-custom-block-info-text);--vp-custom-block-details-bg: var(--vp-custom-block-info-bg);--vp-custom-block-details-code-bg: var(--vp-custom-block-info-code-bg)}:root{--vp-input-border-color: var(--vp-c-border);--vp-input-bg-color: var(--vp-c-bg-alt);--vp-input-switch-bg-color: var(--vp-c-gray-soft)}:root{--vp-nav-height: 64px;--vp-nav-bg-color: var(--vp-c-bg);--vp-nav-screen-bg-color: var(--vp-c-bg);--vp-nav-logo-height: 24px}.hide-nav{--vp-nav-height: 0px}.hide-nav .VPSidebar{--vp-nav-height: 22px}:root{--vp-local-nav-bg-color: var(--vp-c-bg)}:root{--vp-sidebar-width: 272px;--vp-sidebar-bg-color: var(--vp-c-bg-alt)}:root{--vp-backdrop-bg-color: rgba(0, 0, 0, .6)}:root{--vp-home-hero-name-color: var(--vp-c-brand-1);--vp-home-hero-name-background: transparent;--vp-home-hero-image-background-image: none;--vp-home-hero-image-filter: none}:root{--vp-badge-info-border: transparent;--vp-badge-info-text: var(--vp-c-text-2);--vp-badge-info-bg: var(--vp-c-default-soft);--vp-badge-tip-border: transparent;--vp-badge-tip-text: var(--vp-c-brand-1);--vp-badge-tip-bg: var(--vp-c-brand-soft);--vp-badge-warning-border: transparent;--vp-badge-warning-text: var(--vp-c-warning-1);--vp-badge-warning-bg: var(--vp-c-warning-soft);--vp-badge-danger-border: transparent;--vp-badge-danger-text: var(--vp-c-danger-1);--vp-badge-danger-bg: var(--vp-c-danger-soft)}:root{--vp-carbon-ads-text-color: var(--vp-c-text-1);--vp-carbon-ads-poweredby-color: var(--vp-c-text-2);--vp-carbon-ads-bg-color: var(--vp-c-bg-soft);--vp-carbon-ads-hover-text-color: var(--vp-c-brand-1);--vp-carbon-ads-hover-poweredby-color: var(--vp-c-text-1)}:root{--vp-local-search-bg: var(--vp-c-bg);--vp-local-search-result-bg: var(--vp-c-bg);--vp-local-search-result-border: var(--vp-c-divider);--vp-local-search-result-selected-bg: var(--vp-c-bg);--vp-local-search-result-selected-border: var(--vp-c-brand-1);--vp-local-search-highlight-bg: var(--vp-c-brand-1);--vp-local-search-highlight-text: var(--vp-c-neutral-inverse)}@media (prefers-reduced-motion: reduce){*,:before,:after{animation-delay:-1ms!important;animation-duration:1ms!important;animation-iteration-count:1!important;background-attachment:initial!important;scroll-behavior:auto!important;transition-duration:0s!important;transition-delay:0s!important}}*,:before,:after{box-sizing:border-box}html{line-height:1.4;font-size:16px;-webkit-text-size-adjust:100%}html.dark{color-scheme:dark}body{margin:0;width:100%;min-width:320px;min-height:100vh;line-height:24px;font-family:var(--vp-font-family-base);font-size:16px;font-weight:400;color:var(--vp-c-text-1);background-color:var(--vp-c-bg);direction:ltr;font-synthesis:style;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}main{display:block}h1,h2,h3,h4,h5,h6{margin:0;line-height:24px;font-size:16px;font-weight:400}p{margin:0}strong,b{font-weight:600}a,area,button,[role=button],input,label,select,summary,textarea{touch-action:manipulation}a{color:inherit;text-decoration:inherit}ol,ul{list-style:none;margin:0;padding:0}blockquote{margin:0}pre,code,kbd,samp{font-family:var(--vp-font-family-mono)}img,svg,video,canvas,audio,iframe,embed,object{display:block}figure{margin:0}img,video{max-width:100%;height:auto}button,input,optgroup,select,textarea{border:0;padding:0;line-height:inherit;color:inherit}button{padding:0;font-family:inherit;background-color:transparent;background-image:none}button:enabled,[role=button]:enabled{cursor:pointer}button:focus,button:focus-visible{outline:1px dotted;outline:4px auto -webkit-focus-ring-color}button:focus:not(:focus-visible){outline:none!important}input:focus,textarea:focus,select:focus{outline:none}table{border-collapse:collapse}input{background-color:transparent}input:-ms-input-placeholder,textarea:-ms-input-placeholder{color:var(--vp-c-text-3)}input::-ms-input-placeholder,textarea::-ms-input-placeholder{color:var(--vp-c-text-3)}input::placeholder,textarea::placeholder{color:var(--vp-c-text-3)}input::-webkit-outer-spin-button,input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}input[type=number]{-moz-appearance:textfield}textarea{resize:vertical}select{-webkit-appearance:none}fieldset{margin:0;padding:0}h1,h2,h3,h4,h5,h6,li,p{overflow-wrap:break-word}vite-error-overlay{z-index:9999}mjx-container{display:inline-block;margin:auto 2px -2px}mjx-container>svg{margin:auto}.visually-hidden{position:absolute;width:1px;height:1px;white-space:nowrap;clip:rect(0 0 0 0);clip-path:inset(50%);overflow:hidden}.custom-block{border:1px solid transparent;border-radius:8px;padding:16px 16px 8px;line-height:24px;font-size:var(--vp-custom-block-font-size);color:var(--vp-c-text-2)}.custom-block.info{border-color:var(--vp-custom-block-info-border);color:var(--vp-custom-block-info-text);background-color:var(--vp-custom-block-info-bg)}.custom-block.info a,.custom-block.info code{color:var(--vp-c-brand-1)}.custom-block.info a:hover{color:var(--vp-c-brand-2)}.custom-block.info code{background-color:var(--vp-custom-block-info-code-bg)}.custom-block.tip{border-color:var(--vp-custom-block-tip-border);color:var(--vp-custom-block-tip-text);background-color:var(--vp-custom-block-tip-bg)}.custom-block.tip a,.custom-block.tip code{color:var(--vp-c-brand-1)}.custom-block.tip a:hover{color:var(--vp-c-brand-2)}.custom-block.tip code{background-color:var(--vp-custom-block-tip-code-bg)}.custom-block.warning{border-color:var(--vp-custom-block-warning-border);color:var(--vp-custom-block-warning-text);background-color:var(--vp-custom-block-warning-bg)}.custom-block.warning a,.custom-block.warning code{color:var(--vp-c-warning-1)}.custom-block.warning a:hover{color:var(--vp-c-warning-2)}.custom-block.warning code{background-color:var(--vp-custom-block-warning-code-bg)}.custom-block.danger{border-color:var(--vp-custom-block-danger-border);color:var(--vp-custom-block-danger-text);background-color:var(--vp-custom-block-danger-bg)}.custom-block.danger a,.custom-block.danger code{color:var(--vp-c-danger-1)}.custom-block.danger a:hover{color:var(--vp-c-danger-2)}.custom-block.danger code{background-color:var(--vp-custom-block-danger-code-bg)}.custom-block.details{border-color:var(--vp-custom-block-details-border);color:var(--vp-custom-block-details-text);background-color:var(--vp-custom-block-details-bg)}.custom-block.details a{color:var(--vp-c-brand-1)}.custom-block.details a:hover{color:var(--vp-c-brand-2)}.custom-block.details code{background-color:var(--vp-custom-block-details-code-bg)}.custom-block-title{font-weight:600}.custom-block p+p{margin:8px 0}.custom-block.details summary{margin:0 0 8px;font-weight:700;cursor:pointer}.custom-block.details summary+p{margin:8px 0}.custom-block a{color:inherit;font-weight:600;text-decoration:underline;text-underline-offset:2px;transition:opacity .25s}.custom-block a:hover{opacity:.75}.custom-block code{font-size:var(--vp-custom-block-code-font-size)}.custom-block.custom-block th,.custom-block.custom-block blockquote>p{font-size:var(--vp-custom-block-font-size);color:inherit}.dark .vp-code span{color:var(--shiki-dark, inherit)}html:not(.dark) .vp-code span{color:var(--shiki-light, inherit)}.vp-code-group{margin-top:16px}.vp-code-group .tabs{position:relative;display:flex;margin-right:-24px;margin-left:-24px;padding:0 12px;background-color:var(--vp-code-tab-bg);overflow-x:auto;overflow-y:hidden;box-shadow:inset 0 -1px var(--vp-code-tab-divider)}@media (min-width: 640px){.vp-code-group .tabs{margin-right:0;margin-left:0;border-radius:8px 8px 0 0}}.vp-code-group .tabs input{position:fixed;opacity:0;pointer-events:none}.vp-code-group .tabs label{position:relative;display:inline-block;border-bottom:1px solid transparent;padding:0 12px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-code-tab-text-color);white-space:nowrap;cursor:pointer;transition:color .25s}.vp-code-group .tabs label:after{position:absolute;right:8px;bottom:-1px;left:8px;z-index:1;height:2px;border-radius:2px;content:"";background-color:transparent;transition:background-color .25s}.vp-code-group label:hover{color:var(--vp-code-tab-hover-text-color)}.vp-code-group input:checked+label{color:var(--vp-code-tab-active-text-color)}.vp-code-group input:checked+label:after{background-color:var(--vp-code-tab-active-bar-color)}.vp-code-group div[class*=language-],.vp-block{display:none;margin-top:0!important;border-top-left-radius:0!important;border-top-right-radius:0!important}.vp-code-group div[class*=language-].active,.vp-block.active{display:block}.vp-block{padding:20px 24px}.vp-doc h1,.vp-doc h2,.vp-doc h3,.vp-doc h4,.vp-doc h5,.vp-doc h6{position:relative;font-weight:600;outline:none}.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:28px}.vp-doc h2{margin:48px 0 16px;border-top:1px solid var(--vp-c-divider);padding-top:24px;letter-spacing:-.02em;line-height:32px;font-size:24px}.vp-doc h3{margin:32px 0 0;letter-spacing:-.01em;line-height:28px;font-size:20px}.vp-doc .header-anchor{position:absolute;top:0;left:0;margin-left:-.87em;font-weight:500;-webkit-user-select:none;user-select:none;opacity:0;text-decoration:none;transition:color .25s,opacity .25s}.vp-doc .header-anchor:before{content:var(--vp-header-anchor-symbol)}.vp-doc h1:hover .header-anchor,.vp-doc h1 .header-anchor:focus,.vp-doc h2:hover .header-anchor,.vp-doc h2 .header-anchor:focus,.vp-doc h3:hover .header-anchor,.vp-doc h3 .header-anchor:focus,.vp-doc h4:hover .header-anchor,.vp-doc h4 .header-anchor:focus,.vp-doc h5:hover .header-anchor,.vp-doc h5 .header-anchor:focus,.vp-doc h6:hover .header-anchor,.vp-doc h6 .header-anchor:focus{opacity:1}@media (min-width: 768px){.vp-doc h1{letter-spacing:-.02em;line-height:40px;font-size:32px}}.vp-doc h2 .header-anchor{top:24px}.vp-doc p,.vp-doc summary{margin:16px 0}.vp-doc p{line-height:28px}.vp-doc blockquote{margin:16px 0;border-left:2px solid var(--vp-c-divider);padding-left:16px;transition:border-color .5s}.vp-doc blockquote>p{margin:0;font-size:16px;color:var(--vp-c-text-2);transition:color .5s}.vp-doc a{font-weight:500;color:var(--vp-c-brand-1);text-decoration:underline;text-underline-offset:2px;transition:color .25s,opacity .25s}.vp-doc a:hover{color:var(--vp-c-brand-2)}.vp-doc strong{font-weight:600}.vp-doc ul,.vp-doc ol{padding-left:1.25rem;margin:16px 0}.vp-doc ul{list-style:disc}.vp-doc ol{list-style:decimal}.vp-doc li+li{margin-top:8px}.vp-doc li>ol,.vp-doc li>ul{margin:8px 0 0}.vp-doc table{display:block;border-collapse:collapse;margin:20px 0;overflow-x:auto}.vp-doc tr{background-color:var(--vp-c-bg);border-top:1px solid var(--vp-c-divider);transition:background-color .5s}.vp-doc tr:nth-child(2n){background-color:var(--vp-c-bg-soft)}.vp-doc th,.vp-doc td{border:1px solid var(--vp-c-divider);padding:8px 16px}.vp-doc th{text-align:left;font-size:14px;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-doc td{font-size:14px}.vp-doc hr{margin:16px 0;border:none;border-top:1px solid var(--vp-c-divider)}.vp-doc .custom-block{margin:16px 0}.vp-doc .custom-block p{margin:8px 0;line-height:24px}.vp-doc .custom-block p:first-child{margin:0}.vp-doc .custom-block div[class*=language-]{margin:8px 0;border-radius:8px}.vp-doc .custom-block div[class*=language-] code{font-weight:400;background-color:transparent}.vp-doc .custom-block .vp-code-group .tabs{margin:0;border-radius:8px 8px 0 0}.vp-doc :not(pre,h1,h2,h3,h4,h5,h6)>code{font-size:var(--vp-code-font-size);color:var(--vp-code-color)}.vp-doc :not(pre)>code{border-radius:4px;padding:3px 6px;background-color:var(--vp-code-bg);transition:color .25s,background-color .5s}.vp-doc a>code{color:var(--vp-code-link-color)}.vp-doc a:hover>code{color:var(--vp-code-link-hover-color)}.vp-doc h1>code,.vp-doc h2>code,.vp-doc h3>code{font-size:.9em}.vp-doc div[class*=language-],.vp-block{position:relative;margin:16px -24px;background-color:var(--vp-code-block-bg);overflow-x:auto;transition:background-color .5s}@media (min-width: 640px){.vp-doc div[class*=language-],.vp-block{border-radius:8px;margin:16px 0}}@media (max-width: 639px){.vp-doc li div[class*=language-]{border-radius:8px 0 0 8px}}.vp-doc div[class*=language-]+div[class*=language-],.vp-doc div[class$=-api]+div[class*=language-],.vp-doc div[class*=language-]+div[class$=-api]>div[class*=language-]{margin-top:-8px}.vp-doc [class*=language-] pre,.vp-doc [class*=language-] code{direction:ltr;text-align:left;white-space:pre;word-spacing:normal;word-break:normal;word-wrap:normal;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-hyphens:none;-moz-hyphens:none;-ms-hyphens:none;hyphens:none}.vp-doc [class*=language-] pre{position:relative;z-index:1;margin:0;padding:20px 0;background:transparent;overflow-x:auto}.vp-doc [class*=language-] code{display:block;padding:0 24px;width:fit-content;min-width:100%;line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-block-color);transition:color .5s}.vp-doc [class*=language-] code .highlighted{background-color:var(--vp-code-line-highlight-color);transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .highlighted.error{background-color:var(--vp-code-line-error-color)}.vp-doc [class*=language-] code .highlighted.warning{background-color:var(--vp-code-line-warning-color)}.vp-doc [class*=language-] code .diff{transition:background-color .5s;margin:0 -24px;padding:0 24px;width:calc(100% + 48px);display:inline-block}.vp-doc [class*=language-] code .diff:before{position:absolute;left:10px}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){filter:blur(.095rem);opacity:.4;transition:filter .35s,opacity .35s}.vp-doc [class*=language-] .has-focused-lines .line:not(.has-focus){opacity:.7;transition:filter .35s,opacity .35s}.vp-doc [class*=language-]:hover .has-focused-lines .line:not(.has-focus){filter:blur(0);opacity:1}.vp-doc [class*=language-] code .diff.remove{background-color:var(--vp-code-line-diff-remove-color);opacity:.7}.vp-doc [class*=language-] code .diff.remove:before{content:"-";color:var(--vp-code-line-diff-remove-symbol-color)}.vp-doc [class*=language-] code .diff.add{background-color:var(--vp-code-line-diff-add-color)}.vp-doc [class*=language-] code .diff.add:before{content:"+";color:var(--vp-code-line-diff-add-symbol-color)}.vp-doc div[class*=language-].line-numbers-mode{padding-left:32px}.vp-doc .line-numbers-wrapper{position:absolute;top:0;bottom:0;left:0;z-index:3;border-right:1px solid var(--vp-code-block-divider-color);padding-top:20px;width:32px;text-align:center;font-family:var(--vp-font-family-mono);line-height:var(--vp-code-line-height);font-size:var(--vp-code-font-size);color:var(--vp-code-line-number-color);transition:border-color .5s,color .5s}.vp-doc [class*=language-]>button.copy{direction:ltr;position:absolute;top:12px;right:12px;z-index:3;border:1px solid var(--vp-code-copy-code-border-color);border-radius:4px;width:40px;height:40px;background-color:var(--vp-code-copy-code-bg);opacity:0;cursor:pointer;background-image:var(--vp-icon-copy);background-position:50%;background-size:20px;background-repeat:no-repeat;transition:border-color .25s,background-color .25s,opacity .25s}.vp-doc [class*=language-]:hover>button.copy,.vp-doc [class*=language-]>button.copy:focus{opacity:1}.vp-doc [class*=language-]>button.copy:hover,.vp-doc [class*=language-]>button.copy.copied{border-color:var(--vp-code-copy-code-hover-border-color);background-color:var(--vp-code-copy-code-hover-bg)}.vp-doc [class*=language-]>button.copy.copied,.vp-doc [class*=language-]>button.copy:hover.copied{border-radius:0 4px 4px 0;background-color:var(--vp-code-copy-code-hover-bg);background-image:var(--vp-icon-copied)}.vp-doc [class*=language-]>button.copy.copied:before,.vp-doc [class*=language-]>button.copy:hover.copied:before{position:relative;top:-1px;transform:translate(calc(-100% - 1px));display:flex;justify-content:center;align-items:center;border:1px solid var(--vp-code-copy-code-hover-border-color);border-right:0;border-radius:4px 0 0 4px;padding:0 10px;width:fit-content;height:40px;text-align:center;font-size:12px;font-weight:500;color:var(--vp-code-copy-code-active-text);background-color:var(--vp-code-copy-code-hover-bg);white-space:nowrap;content:var(--vp-code-copy-copied-text-content)}.vp-doc [class*=language-]>span.lang{position:absolute;top:2px;right:8px;z-index:2;font-size:12px;font-weight:500;color:var(--vp-code-lang-color);transition:color .4s,opacity .4s}.vp-doc [class*=language-]:hover>button.copy+span.lang,.vp-doc [class*=language-]>button.copy:focus+span.lang{opacity:0}.vp-doc .VPTeamMembers{margin-top:24px}.vp-doc .VPTeamMembers.small.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}.vp-doc .VPTeamMembers.small.count-2 .container,.vp-doc .VPTeamMembers.small.count-3 .container{max-width:100%!important}.vp-doc .VPTeamMembers.medium.count-1 .container{margin:0!important;max-width:calc((100% - 24px)/2)!important}:is(.vp-external-link-icon,.vp-doc a[href*="://"],.vp-doc a[target=_blank]):not(.no-icon):after{display:inline-block;margin-top:-1px;margin-left:4px;width:11px;height:11px;background:currentColor;color:var(--vp-c-text-3);flex-shrink:0;--icon: url("data:image/svg+xml, %3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' %3E%3Cpath d='M0 0h24v24H0V0z' fill='none' /%3E%3Cpath d='M9 5v2h6.59L4 18.59 5.41 20 17 8.41V15h2V5H9z' /%3E%3C/svg%3E");-webkit-mask-image:var(--icon);mask-image:var(--icon)}.vp-external-link-icon:after{content:""}.vp-sponsor{border-radius:16px;overflow:hidden}.vp-sponsor.aside{border-radius:12px}.vp-sponsor-section+.vp-sponsor-section{margin-top:4px}.vp-sponsor-tier{margin-bottom:4px;text-align:center;letter-spacing:1px;line-height:24px;width:100%;font-weight:600;color:var(--vp-c-text-2);background-color:var(--vp-c-bg-soft)}.vp-sponsor.normal .vp-sponsor-tier{padding:13px 0 11px;font-size:14px}.vp-sponsor.aside .vp-sponsor-tier{padding:9px 0 7px;font-size:12px}.vp-sponsor-grid+.vp-sponsor-tier{margin-top:4px}.vp-sponsor-grid{display:flex;flex-wrap:wrap;gap:4px}.vp-sponsor-grid.xmini .vp-sponsor-grid-link{height:64px}.vp-sponsor-grid.xmini .vp-sponsor-grid-image{max-width:64px;max-height:22px}.vp-sponsor-grid.mini .vp-sponsor-grid-link{height:72px}.vp-sponsor-grid.mini .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.small .vp-sponsor-grid-link{height:96px}.vp-sponsor-grid.small .vp-sponsor-grid-image{max-width:96px;max-height:24px}.vp-sponsor-grid.medium .vp-sponsor-grid-link{height:112px}.vp-sponsor-grid.medium .vp-sponsor-grid-image{max-width:120px;max-height:36px}.vp-sponsor-grid.big .vp-sponsor-grid-link{height:184px}.vp-sponsor-grid.big .vp-sponsor-grid-image{max-width:192px;max-height:56px}.vp-sponsor-grid[data-vp-grid="2"] .vp-sponsor-grid-item{width:calc((100% - 4px)/2)}.vp-sponsor-grid[data-vp-grid="3"] .vp-sponsor-grid-item{width:calc((100% - 4px * 2) / 3)}.vp-sponsor-grid[data-vp-grid="4"] .vp-sponsor-grid-item{width:calc((100% - 12px)/4)}.vp-sponsor-grid[data-vp-grid="5"] .vp-sponsor-grid-item{width:calc((100% - 16px)/5)}.vp-sponsor-grid[data-vp-grid="6"] .vp-sponsor-grid-item{width:calc((100% - 4px * 5) / 6)}.vp-sponsor-grid-item{flex-shrink:0;width:100%;background-color:var(--vp-c-bg-soft);transition:background-color .25s}.vp-sponsor-grid-item:hover{background-color:var(--vp-c-default-soft)}.vp-sponsor-grid-item:hover .vp-sponsor-grid-image{filter:grayscale(0) invert(0)}.vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.dark .vp-sponsor-grid-item:hover{background-color:var(--vp-c-white)}.dark .vp-sponsor-grid-item.empty:hover{background-color:var(--vp-c-bg-soft)}.vp-sponsor-grid-link{display:flex}.vp-sponsor-grid-box{display:flex;justify-content:center;align-items:center;width:100%}.vp-sponsor-grid-image{max-width:100%;filter:grayscale(1);transition:filter .25s}.dark .vp-sponsor-grid-image{filter:grayscale(1) invert(1)}.VPBadge[data-v-9613cc9f]{display:inline-block;margin-left:2px;border:1px solid transparent;border-radius:12px;padding:0 10px;line-height:22px;font-size:12px;font-weight:500;transform:translateY(-2px)}.vp-doc h1>.VPBadge[data-v-9613cc9f]{margin-top:4px;vertical-align:top}.vp-doc h2>.VPBadge[data-v-9613cc9f]{margin-top:3px;padding:0 8px;vertical-align:top}.vp-doc h3>.VPBadge[data-v-9613cc9f]{vertical-align:middle}.vp-doc h4>.VPBadge[data-v-9613cc9f],.vp-doc h5>.VPBadge[data-v-9613cc9f],.vp-doc h6>.VPBadge[data-v-9613cc9f]{vertical-align:middle;line-height:18px}.VPBadge.info[data-v-9613cc9f]{border-color:var(--vp-badge-info-border);color:var(--vp-badge-info-text);background-color:var(--vp-badge-info-bg)}.VPBadge.tip[data-v-9613cc9f]{border-color:var(--vp-badge-tip-border);color:var(--vp-badge-tip-text);background-color:var(--vp-badge-tip-bg)}.VPBadge.warning[data-v-9613cc9f]{border-color:var(--vp-badge-warning-border);color:var(--vp-badge-warning-text);background-color:var(--vp-badge-warning-bg)}.VPBadge.danger[data-v-9613cc9f]{border-color:var(--vp-badge-danger-border);color:var(--vp-badge-danger-text);background-color:var(--vp-badge-danger-bg)}.VPBackdrop[data-v-c79a1216]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--vp-z-index-backdrop);background:var(--vp-backdrop-bg-color);transition:opacity .5s}.VPBackdrop.fade-enter-from[data-v-c79a1216],.VPBackdrop.fade-leave-to[data-v-c79a1216]{opacity:0}.VPBackdrop.fade-leave-active[data-v-c79a1216]{transition-duration:.25s}@media (min-width: 1280px){.VPBackdrop[data-v-c79a1216]{display:none}}.NotFound[data-v-f87ff6e4]{padding:64px 24px 96px;text-align:center}@media (min-width: 768px){.NotFound[data-v-f87ff6e4]{padding:96px 32px 168px}}.code[data-v-f87ff6e4]{line-height:64px;font-size:64px;font-weight:600}.title[data-v-f87ff6e4]{padding-top:12px;letter-spacing:2px;line-height:20px;font-size:20px;font-weight:700}.divider[data-v-f87ff6e4]{margin:24px auto 18px;width:64px;height:1px;background-color:var(--vp-c-divider)}.quote[data-v-f87ff6e4]{margin:0 auto;max-width:256px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.action[data-v-f87ff6e4]{padding-top:20px}.link[data-v-f87ff6e4]{display:inline-block;border:1px solid var(--vp-c-brand-1);border-radius:16px;padding:3px 16px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:border-color .25s,color .25s}.link[data-v-f87ff6e4]:hover{border-color:var(--vp-c-brand-2);color:var(--vp-c-brand-2)}.root[data-v-d0ee3533]{position:relative;z-index:1}.nested[data-v-d0ee3533]{padding-left:16px}.outline-link[data-v-d0ee3533]{display:block;line-height:28px;color:var(--vp-c-text-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:color .5s;font-weight:400}.outline-link[data-v-d0ee3533]:hover,.outline-link.active[data-v-d0ee3533]{color:var(--vp-c-text-1);transition:color .25s}.outline-link.nested[data-v-d0ee3533]{padding-left:13px}.VPDocAsideOutline[data-v-d330b1bb]{display:none}.VPDocAsideOutline.has-outline[data-v-d330b1bb]{display:block}.content[data-v-d330b1bb]{position:relative;border-left:1px solid var(--vp-c-divider);padding-left:16px;font-size:13px;font-weight:500}.outline-marker[data-v-d330b1bb]{position:absolute;top:32px;left:-1px;z-index:0;opacity:0;width:2px;border-radius:2px;height:18px;background-color:var(--vp-c-brand-1);transition:top .25s cubic-bezier(0,1,.5,1),background-color .5s,opacity .25s}.outline-title[data-v-d330b1bb]{letter-spacing:.4px;line-height:28px;font-size:13px;font-weight:600}.VPDocAside[data-v-3f215769]{display:flex;flex-direction:column;flex-grow:1}.spacer[data-v-3f215769]{flex-grow:1}.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideSponsors,.VPDocAside[data-v-3f215769] .spacer+.VPDocAsideCarbonAds{margin-top:24px}.VPDocAside[data-v-3f215769] .VPDocAsideSponsors+.VPDocAsideCarbonAds{margin-top:16px}.VPLastUpdated[data-v-7e05ebdb]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 640px){.VPLastUpdated[data-v-7e05ebdb]{line-height:32px;font-size:14px;font-weight:500}}.VPDocFooter[data-v-48f9bb55]{margin-top:64px}.edit-info[data-v-48f9bb55]{padding-bottom:18px}@media (min-width: 640px){.edit-info[data-v-48f9bb55]{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px}}.edit-link-button[data-v-48f9bb55]{display:flex;align-items:center;border:0;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.edit-link-button[data-v-48f9bb55]:hover{color:var(--vp-c-brand-2)}.edit-link-icon[data-v-48f9bb55]{margin-right:8px;width:14px;height:14px;fill:currentColor}.prev-next[data-v-48f9bb55]{border-top:1px solid var(--vp-c-divider);padding-top:24px;display:grid;grid-row-gap:8px}@media (min-width: 640px){.prev-next[data-v-48f9bb55]{grid-template-columns:repeat(2,1fr);grid-column-gap:16px}}.pager-link[data-v-48f9bb55]{display:block;border:1px solid var(--vp-c-divider);border-radius:8px;padding:11px 16px 13px;width:100%;height:100%;transition:border-color .25s}.pager-link[data-v-48f9bb55]:hover{border-color:var(--vp-c-brand-1)}.pager-link.next[data-v-48f9bb55]{margin-left:auto;text-align:right}.desc[data-v-48f9bb55]{display:block;line-height:20px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.title[data-v-48f9bb55]{display:block;line-height:20px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1);transition:color .25s}.VPDocOutlineDropdown[data-v-eadfb36b]{margin-bottom:48px}.VPDocOutlineDropdown button[data-v-eadfb36b]{display:block;font-size:14px;font-weight:500;line-height:24px;border:1px solid var(--vp-c-border);padding:4px 12px;color:var(--vp-c-text-2);background-color:var(--vp-c-default-soft);border-radius:8px;transition:color .5s}.VPDocOutlineDropdown button[data-v-eadfb36b]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPDocOutlineDropdown button.open[data-v-eadfb36b]{color:var(--vp-c-text-1)}.icon[data-v-eadfb36b]{display:inline-block;vertical-align:middle;width:16px;height:16px;fill:currentColor}[data-v-eadfb36b] .outline-link{font-size:14px;font-weight:400}.open>.icon[data-v-eadfb36b]{transform:rotate(90deg)}.items[data-v-eadfb36b]{margin-top:12px;border-left:1px solid var(--vp-c-divider)}.VPDoc[data-v-6b87e69f]{padding:32px 24px 96px;width:100%}.VPDoc .VPDocOutlineDropdown[data-v-6b87e69f]{display:none}@media (min-width: 960px) and (max-width: 1279px){.VPDoc .VPDocOutlineDropdown[data-v-6b87e69f]{display:block}}@media (min-width: 768px){.VPDoc[data-v-6b87e69f]{padding:48px 32px 128px}}@media (min-width: 960px){.VPDoc[data-v-6b87e69f]{padding:32px 32px 0}.VPDoc:not(.has-sidebar) .container[data-v-6b87e69f]{display:flex;justify-content:center;max-width:992px}.VPDoc:not(.has-sidebar) .content[data-v-6b87e69f]{max-width:752px}}@media (min-width: 1280px){.VPDoc .container[data-v-6b87e69f]{display:flex;justify-content:center}.VPDoc .aside[data-v-6b87e69f]{display:block}}@media (min-width: 1440px){.VPDoc:not(.has-sidebar) .content[data-v-6b87e69f]{max-width:784px}.VPDoc:not(.has-sidebar) .container[data-v-6b87e69f]{max-width:1104px}}.container[data-v-6b87e69f]{margin:0 auto;width:100%}.aside[data-v-6b87e69f]{position:relative;display:none;order:2;flex-grow:1;padding-left:32px;width:100%;max-width:256px}.left-aside[data-v-6b87e69f]{order:1;padding-left:unset;padding-right:32px}.aside-container[data-v-6b87e69f]{position:fixed;top:0;padding-top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + var(--vp-doc-top-height, 0px) + 32px);width:224px;height:100vh;overflow-x:hidden;overflow-y:auto;scrollbar-width:none}.aside-container[data-v-6b87e69f]::-webkit-scrollbar{display:none}.aside-curtain[data-v-6b87e69f]{position:fixed;bottom:0;z-index:10;width:224px;height:32px;background:linear-gradient(transparent,var(--vp-c-bg) 70%)}.aside-content[data-v-6b87e69f]{display:flex;flex-direction:column;min-height:calc(100vh - (var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 32px));padding-bottom:32px}.content[data-v-6b87e69f]{position:relative;margin:0 auto;width:100%}@media (min-width: 960px){.content[data-v-6b87e69f]{padding:0 32px 128px}}@media (min-width: 1280px){.content[data-v-6b87e69f]{order:1;margin:0;min-width:640px}}.content-container[data-v-6b87e69f]{margin:0 auto}.VPDoc.has-aside .content-container[data-v-6b87e69f]{max-width:688px}.external-link-icon-enabled[data-v-6b87e69f] :is(.vp-doc a[href*="://"],.vp-doc a[target=_blank]):after{content:"";color:currentColor}.VPButton[data-v-c1c5efc1]{display:inline-block;border:1px solid transparent;text-align:center;font-weight:600;white-space:nowrap;transition:color .25s,border-color .25s,background-color .25s}.VPButton[data-v-c1c5efc1]:active{transition:color .1s,border-color .1s,background-color .1s}.VPButton.medium[data-v-c1c5efc1]{border-radius:20px;padding:0 20px;line-height:38px;font-size:14px}.VPButton.big[data-v-c1c5efc1]{border-radius:24px;padding:0 24px;line-height:46px;font-size:16px}.VPButton.brand[data-v-c1c5efc1]{border-color:var(--vp-button-brand-border);color:var(--vp-button-brand-text);background-color:var(--vp-button-brand-bg)}.VPButton.brand[data-v-c1c5efc1]:hover{border-color:var(--vp-button-brand-hover-border);color:var(--vp-button-brand-hover-text);background-color:var(--vp-button-brand-hover-bg)}.VPButton.brand[data-v-c1c5efc1]:active{border-color:var(--vp-button-brand-active-border);color:var(--vp-button-brand-active-text);background-color:var(--vp-button-brand-active-bg)}.VPButton.alt[data-v-c1c5efc1]{border-color:var(--vp-button-alt-border);color:var(--vp-button-alt-text);background-color:var(--vp-button-alt-bg)}.VPButton.alt[data-v-c1c5efc1]:hover{border-color:var(--vp-button-alt-hover-border);color:var(--vp-button-alt-hover-text);background-color:var(--vp-button-alt-hover-bg)}.VPButton.alt[data-v-c1c5efc1]:active{border-color:var(--vp-button-alt-active-border);color:var(--vp-button-alt-active-text);background-color:var(--vp-button-alt-active-bg)}.VPButton.sponsor[data-v-c1c5efc1]{border-color:var(--vp-button-sponsor-border);color:var(--vp-button-sponsor-text);background-color:var(--vp-button-sponsor-bg)}.VPButton.sponsor[data-v-c1c5efc1]:hover{border-color:var(--vp-button-sponsor-hover-border);color:var(--vp-button-sponsor-hover-text);background-color:var(--vp-button-sponsor-hover-bg)}.VPButton.sponsor[data-v-c1c5efc1]:active{border-color:var(--vp-button-sponsor-active-border);color:var(--vp-button-sponsor-active-text);background-color:var(--vp-button-sponsor-active-bg)}html:not(.dark) .VPImage.dark[data-v-8426fc1a]{display:none}.dark .VPImage.light[data-v-8426fc1a]{display:none}.VPHero[data-v-da5d1713]{margin-top:calc((var(--vp-nav-height) + var(--vp-layout-top-height, 0px)) * -1);padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 48px) 24px 48px}@media (min-width: 640px){.VPHero[data-v-da5d1713]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 48px 64px}}@media (min-width: 960px){.VPHero[data-v-da5d1713]{padding:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 80px) 64px 64px}}.container[data-v-da5d1713]{display:flex;flex-direction:column;margin:0 auto;max-width:1152px}@media (min-width: 960px){.container[data-v-da5d1713]{flex-direction:row}}.main[data-v-da5d1713]{position:relative;z-index:10;order:2;flex-grow:1;flex-shrink:0}.VPHero.has-image .container[data-v-da5d1713]{text-align:center}@media (min-width: 960px){.VPHero.has-image .container[data-v-da5d1713]{text-align:left}}@media (min-width: 960px){.main[data-v-da5d1713]{order:1;width:calc((100% / 3) * 2)}.VPHero.has-image .main[data-v-da5d1713]{max-width:592px}}.name[data-v-da5d1713],.text[data-v-da5d1713]{max-width:392px;letter-spacing:-.4px;line-height:40px;font-size:32px;font-weight:700;white-space:pre-wrap}.VPHero.has-image .name[data-v-da5d1713],.VPHero.has-image .text[data-v-da5d1713]{margin:0 auto}.name[data-v-da5d1713]{color:var(--vp-home-hero-name-color)}.clip[data-v-da5d1713]{background:var(--vp-home-hero-name-background);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:var(--vp-home-hero-name-color)}@media (min-width: 640px){.name[data-v-da5d1713],.text[data-v-da5d1713]{max-width:576px;line-height:56px;font-size:48px}}@media (min-width: 960px){.name[data-v-da5d1713],.text[data-v-da5d1713]{line-height:64px;font-size:56px}.VPHero.has-image .name[data-v-da5d1713],.VPHero.has-image .text[data-v-da5d1713]{margin:0}}.tagline[data-v-da5d1713]{padding-top:8px;max-width:392px;line-height:28px;font-size:18px;font-weight:500;white-space:pre-wrap;color:var(--vp-c-text-2)}.VPHero.has-image .tagline[data-v-da5d1713]{margin:0 auto}@media (min-width: 640px){.tagline[data-v-da5d1713]{padding-top:12px;max-width:576px;line-height:32px;font-size:20px}}@media (min-width: 960px){.tagline[data-v-da5d1713]{line-height:36px;font-size:24px}.VPHero.has-image .tagline[data-v-da5d1713]{margin:0}}.actions[data-v-da5d1713]{display:flex;flex-wrap:wrap;margin:-6px;padding-top:24px}.VPHero.has-image .actions[data-v-da5d1713]{justify-content:center}@media (min-width: 640px){.actions[data-v-da5d1713]{padding-top:32px}}@media (min-width: 960px){.VPHero.has-image .actions[data-v-da5d1713]{justify-content:flex-start}}.action[data-v-da5d1713]{flex-shrink:0;padding:6px}.image[data-v-da5d1713]{order:1;margin:-76px -24px -48px}@media (min-width: 640px){.image[data-v-da5d1713]{margin:-108px -24px -48px}}@media (min-width: 960px){.image[data-v-da5d1713]{flex-grow:1;order:2;margin:0;min-height:100%}}.image-container[data-v-da5d1713]{position:relative;margin:0 auto;width:320px;height:320px}@media (min-width: 640px){.image-container[data-v-da5d1713]{width:392px;height:392px}}@media (min-width: 960px){.image-container[data-v-da5d1713]{display:flex;justify-content:center;align-items:center;width:100%;height:100%;transform:translate(-32px,-32px)}}.image-bg[data-v-da5d1713]{position:absolute;top:50%;left:50%;border-radius:50%;width:192px;height:192px;background-image:var(--vp-home-hero-image-background-image);filter:var(--vp-home-hero-image-filter);transform:translate(-50%,-50%)}@media (min-width: 640px){.image-bg[data-v-da5d1713]{width:256px;height:256px}}@media (min-width: 960px){.image-bg[data-v-da5d1713]{width:320px;height:320px}}[data-v-da5d1713] .image-src{position:absolute;top:50%;left:50%;max-width:192px;max-height:192px;transform:translate(-50%,-50%)}@media (min-width: 640px){[data-v-da5d1713] .image-src{max-width:256px;max-height:256px}}@media (min-width: 960px){[data-v-da5d1713] .image-src{max-width:320px;max-height:320px}}.VPFeature[data-v-33204567]{display:block;border:1px solid var(--vp-c-bg-soft);border-radius:12px;height:100%;background-color:var(--vp-c-bg-soft);transition:border-color .25s,background-color .25s}.VPFeature.link[data-v-33204567]:hover{border-color:var(--vp-c-brand-1)}.box[data-v-33204567]{display:flex;flex-direction:column;padding:24px;height:100%}.box[data-v-33204567]>.VPImage{margin-bottom:20px}.icon[data-v-33204567]{display:flex;justify-content:center;align-items:center;margin-bottom:20px;border-radius:6px;background-color:var(--vp-c-default-soft);width:48px;height:48px;font-size:24px;transition:background-color .25s}.title[data-v-33204567]{line-height:24px;font-size:16px;font-weight:600}.details[data-v-33204567]{flex-grow:1;padding-top:8px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.link-text[data-v-33204567]{padding-top:8px}.link-text-value[data-v-33204567]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.link-text-icon[data-v-33204567]{display:inline-block;margin-left:6px;width:14px;height:14px;fill:currentColor}.VPFeatures[data-v-a6181336]{position:relative;padding:0 24px}@media (min-width: 640px){.VPFeatures[data-v-a6181336]{padding:0 48px}}@media (min-width: 960px){.VPFeatures[data-v-a6181336]{padding:0 64px}}.container[data-v-a6181336]{margin:0 auto;max-width:1152px}.items[data-v-a6181336]{display:flex;flex-wrap:wrap;margin:-8px}.item[data-v-a6181336]{padding:8px;width:100%}@media (min-width: 640px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:50%}}@media (min-width: 768px){.item.grid-2[data-v-a6181336],.item.grid-4[data-v-a6181336]{width:50%}.item.grid-3[data-v-a6181336],.item.grid-6[data-v-a6181336]{width:calc(100% / 3)}}@media (min-width: 960px){.item.grid-4[data-v-a6181336]{width:25%}}.VPHome[data-v-d82743a8]{padding-bottom:96px}.VPHome[data-v-d82743a8] .VPHomeSponsors{margin-top:112px;margin-bottom:-128px}@media (min-width: 768px){.VPHome[data-v-d82743a8]{padding-bottom:128px}}.VPContent[data-v-669faec9]{flex-grow:1;flex-shrink:0;margin:var(--vp-layout-top-height, 0px) auto 0;width:100%}.VPContent.is-home[data-v-669faec9]{width:100%;max-width:100%}.VPContent.has-sidebar[data-v-669faec9]{margin:0}@media (min-width: 960px){.VPContent[data-v-669faec9]{padding-top:var(--vp-nav-height)}.VPContent.has-sidebar[data-v-669faec9]{margin:var(--vp-layout-top-height, 0px) 0 0;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPContent.has-sidebar[data-v-669faec9]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.VPFooter[data-v-e315a0ad]{position:relative;z-index:var(--vp-z-index-footer);border-top:1px solid var(--vp-c-gutter);padding:32px 24px;background-color:var(--vp-c-bg)}.VPFooter.has-sidebar[data-v-e315a0ad]{display:none}.VPFooter[data-v-e315a0ad] a{text-decoration-line:underline;text-underline-offset:2px;transition:color .25s}.VPFooter[data-v-e315a0ad] a:hover{color:var(--vp-c-text-1)}@media (min-width: 768px){.VPFooter[data-v-e315a0ad]{padding:32px}}.container[data-v-e315a0ad]{margin:0 auto;max-width:var(--vp-layout-max-width);text-align:center}.message[data-v-e315a0ad],.copyright[data-v-e315a0ad]{line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-2)}.VPLocalNavOutlineDropdown[data-v-1c15a60a]{padding:12px 20px 11px}.VPLocalNavOutlineDropdown button[data-v-1c15a60a]{display:block;font-size:12px;font-weight:500;line-height:24px;color:var(--vp-c-text-2);transition:color .5s;position:relative}.VPLocalNavOutlineDropdown button[data-v-1c15a60a]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPLocalNavOutlineDropdown button.open[data-v-1c15a60a]{color:var(--vp-c-text-1)}.icon[data-v-1c15a60a]{display:inline-block;vertical-align:middle;margin-left:2px;width:14px;height:14px;fill:currentColor}[data-v-1c15a60a] .outline-link{font-size:14px;padding:2px 0}.open>.icon[data-v-1c15a60a]{transform:rotate(90deg)}.items[data-v-1c15a60a]{position:absolute;top:64px;right:16px;left:16px;display:grid;gap:1px;border:1px solid var(--vp-c-border);border-radius:8px;background-color:var(--vp-c-gutter);max-height:calc(var(--vp-vh, 100vh) - 86px);overflow:hidden auto;box-shadow:var(--vp-shadow-3)}.header[data-v-1c15a60a]{background-color:var(--vp-c-bg-soft)}.top-link[data-v-1c15a60a]{display:block;padding:0 16px;line-height:48px;font-size:14px;font-weight:500;color:var(--vp-c-brand-1)}.outline[data-v-1c15a60a]{padding:8px 0;background-color:var(--vp-c-bg-soft)}.flyout-enter-active[data-v-1c15a60a]{transition:all .2s ease-out}.flyout-leave-active[data-v-1c15a60a]{transition:all .15s ease-in}.flyout-enter-from[data-v-1c15a60a],.flyout-leave-to[data-v-1c15a60a]{opacity:0;transform:translateY(-16px)}.VPLocalNav[data-v-f84a0989]{position:sticky;top:0;left:0;z-index:var(--vp-z-index-local-nav);display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--vp-c-gutter);border-bottom:1px solid var(--vp-c-gutter);padding-top:var(--vp-layout-top-height, 0px);width:100%;background-color:var(--vp-local-nav-bg-color)}.VPLocalNav.fixed[data-v-f84a0989]{position:fixed}.VPLocalNav.reached-top[data-v-f84a0989]{border-top-color:transparent}@media (min-width: 960px){.VPLocalNav[data-v-f84a0989]{display:none}}.menu[data-v-f84a0989]{display:flex;align-items:center;padding:12px 24px 11px;line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.menu[data-v-f84a0989]:hover{color:var(--vp-c-text-1);transition:color .25s}@media (min-width: 768px){.menu[data-v-f84a0989]{padding:0 32px}}.menu-icon[data-v-f84a0989]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPOutlineDropdown[data-v-f84a0989]{padding:12px 24px 11px}@media (min-width: 768px){.VPOutlineDropdown[data-v-f84a0989]{padding:12px 32px 11px}}.VPSwitch[data-v-b1685198]{position:relative;border-radius:11px;display:block;width:40px;height:22px;flex-shrink:0;border:1px solid var(--vp-input-border-color);background-color:var(--vp-input-switch-bg-color);transition:border-color .25s!important}.VPSwitch[data-v-b1685198]:hover{border-color:var(--vp-c-brand-1)}.check[data-v-b1685198]{position:absolute;top:1px;left:1px;width:18px;height:18px;border-radius:50%;background-color:var(--vp-c-neutral-inverse);box-shadow:var(--vp-shadow-1);transition:transform .25s!important}.icon[data-v-b1685198]{position:relative;display:block;width:18px;height:18px;border-radius:50%;overflow:hidden}.icon[data-v-b1685198] svg{position:absolute;top:3px;left:3px;width:12px;height:12px;fill:var(--vp-c-text-2)}.dark .icon[data-v-b1685198] svg{fill:var(--vp-c-text-1);transition:opacity .25s!important}.sun[data-v-cbbe1149]{opacity:1}.moon[data-v-cbbe1149],.dark .sun[data-v-cbbe1149]{opacity:0}.dark .moon[data-v-cbbe1149]{opacity:1}.dark .VPSwitchAppearance[data-v-cbbe1149] .check{transform:translate(18px)}.VPNavBarAppearance[data-v-e6aabb21]{display:none}@media (min-width: 1280px){.VPNavBarAppearance[data-v-e6aabb21]{display:flex;align-items:center}}.VPMenuGroup+.VPMenuLink[data-v-43f1e123]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.link[data-v-43f1e123]{display:block;border-radius:6px;padding:0 12px;line-height:32px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);white-space:nowrap;transition:background-color .25s,color .25s}.link[data-v-43f1e123]:hover{color:var(--vp-c-brand-1);background-color:var(--vp-c-default-soft)}.link.active[data-v-43f1e123]{color:var(--vp-c-brand-1)}.VPMenuGroup[data-v-69e747b5]{margin:12px -12px 0;border-top:1px solid var(--vp-c-divider);padding:12px 12px 0}.VPMenuGroup[data-v-69e747b5]:first-child{margin-top:0;border-top:0;padding-top:0}.VPMenuGroup+.VPMenuGroup[data-v-69e747b5]{margin-top:12px;border-top:1px solid var(--vp-c-divider)}.title[data-v-69e747b5]{padding:0 12px;line-height:32px;font-size:14px;font-weight:600;color:var(--vp-c-text-2);white-space:nowrap;transition:color .25s}.VPMenu[data-v-e7ea1737]{border-radius:12px;padding:12px;min-width:128px;border:1px solid var(--vp-c-divider);background-color:var(--vp-c-bg-elv);box-shadow:var(--vp-shadow-3);transition:background-color .5s;max-height:calc(100vh - var(--vp-nav-height));overflow-y:auto}.VPMenu[data-v-e7ea1737] .group{margin:0 -12px;padding:0 12px 12px}.VPMenu[data-v-e7ea1737] .group+.group{border-top:1px solid var(--vp-c-divider);padding:11px 12px 12px}.VPMenu[data-v-e7ea1737] .group:last-child{padding-bottom:0}.VPMenu[data-v-e7ea1737] .group+.item{border-top:1px solid var(--vp-c-divider);padding:11px 16px 0}.VPMenu[data-v-e7ea1737] .item{padding:0 16px;white-space:nowrap}.VPMenu[data-v-e7ea1737] .label{flex-grow:1;line-height:28px;font-size:12px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.VPMenu[data-v-e7ea1737] .action{padding-left:24px}.VPFlyout[data-v-9c007e85]{position:relative}.VPFlyout[data-v-9c007e85]:hover{color:var(--vp-c-brand-1);transition:color .25s}.VPFlyout:hover .text[data-v-9c007e85]{color:var(--vp-c-text-2)}.VPFlyout:hover .icon[data-v-9c007e85]{fill:var(--vp-c-text-2)}.VPFlyout.active .text[data-v-9c007e85]{color:var(--vp-c-brand-1)}.VPFlyout.active:hover .text[data-v-9c007e85]{color:var(--vp-c-brand-2)}.VPFlyout:hover .menu[data-v-9c007e85],.button[aria-expanded=true]+.menu[data-v-9c007e85]{opacity:1;visibility:visible;transform:translateY(0)}.button[aria-expanded=false]+.menu[data-v-9c007e85]{opacity:0;visibility:hidden;transform:translateY(0)}.button[data-v-9c007e85]{display:flex;align-items:center;padding:0 12px;height:var(--vp-nav-height);color:var(--vp-c-text-1);transition:color .5s}.text[data-v-9c007e85]{display:flex;align-items:center;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.option-icon[data-v-9c007e85]{margin-right:0;width:16px;height:16px;fill:currentColor}.text-icon[data-v-9c007e85]{margin-left:4px;width:14px;height:14px;fill:currentColor}.icon[data-v-9c007e85]{width:20px;height:20px;fill:currentColor;transition:fill .25s}.menu[data-v-9c007e85]{position:absolute;top:calc(var(--vp-nav-height) / 2 + 20px);right:0;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,transform .25s}.VPSocialLink[data-v-f80f8133]{display:flex;justify-content:center;align-items:center;width:36px;height:36px;color:var(--vp-c-text-2);transition:color .5s}.VPSocialLink[data-v-f80f8133]:hover{color:var(--vp-c-text-1);transition:color .25s}.VPSocialLink[data-v-f80f8133]>svg{width:20px;height:20px;fill:currentColor}.VPSocialLinks[data-v-7bc22406]{display:flex;justify-content:center}.VPNavBarExtra[data-v-d0bd9dde]{display:none;margin-right:-12px}@media (min-width: 768px){.VPNavBarExtra[data-v-d0bd9dde]{display:block}}@media (min-width: 1280px){.VPNavBarExtra[data-v-d0bd9dde]{display:none}}.trans-title[data-v-d0bd9dde]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.item.appearance[data-v-d0bd9dde],.item.social-links[data-v-d0bd9dde]{display:flex;align-items:center;padding:0 12px}.item.appearance[data-v-d0bd9dde]{min-width:176px}.appearance-action[data-v-d0bd9dde]{margin-right:-2px}.social-links-list[data-v-d0bd9dde]{margin:-4px -8px}.VPNavBarHamburger[data-v-e5dd9c1c]{display:flex;justify-content:center;align-items:center;width:48px;height:var(--vp-nav-height)}@media (min-width: 768px){.VPNavBarHamburger[data-v-e5dd9c1c]{display:none}}.container[data-v-e5dd9c1c]{position:relative;width:16px;height:14px;overflow:hidden}.VPNavBarHamburger:hover .top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(4px)}.VPNavBarHamburger:hover .middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(0)}.VPNavBarHamburger:hover .bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(8px)}.VPNavBarHamburger.active .top[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(225deg)}.VPNavBarHamburger.active .middle[data-v-e5dd9c1c]{top:6px;transform:translate(16px)}.VPNavBarHamburger.active .bottom[data-v-e5dd9c1c]{top:6px;transform:translate(0) rotate(135deg)}.VPNavBarHamburger.active:hover .top[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .middle[data-v-e5dd9c1c],.VPNavBarHamburger.active:hover .bottom[data-v-e5dd9c1c]{background-color:var(--vp-c-text-2);transition:top .25s,background-color .25s,transform .25s}.top[data-v-e5dd9c1c],.middle[data-v-e5dd9c1c],.bottom[data-v-e5dd9c1c]{position:absolute;width:16px;height:2px;background-color:var(--vp-c-text-1);transition:top .25s,background-color .5s,transform .25s}.top[data-v-e5dd9c1c]{top:0;left:0;transform:translate(0)}.middle[data-v-e5dd9c1c]{top:6px;left:0;transform:translate(8px)}.bottom[data-v-e5dd9c1c]{top:12px;left:0;transform:translate(4px)}.VPNavBarMenuLink[data-v-42ef59de]{display:flex;align-items:center;padding:0 12px;line-height:var(--vp-nav-height);font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.VPNavBarMenuLink.active[data-v-42ef59de],.VPNavBarMenuLink[data-v-42ef59de]:hover{color:var(--vp-c-brand-1)}.VPNavBarMenu[data-v-7f418b0f]{display:none}@media (min-width: 768px){.VPNavBarMenu[data-v-7f418b0f]{display:flex}}/*! @docsearch/css 3.5.2 | MIT License | © Algolia, Inc. and contributors | https://docsearch.algolia.com */:root{--docsearch-primary-color:#5468ff;--docsearch-text-color:#1c1e21;--docsearch-spacing:12px;--docsearch-icon-stroke-width:1.4;--docsearch-highlight-color:var(--docsearch-primary-color);--docsearch-muted-color:#969faf;--docsearch-container-background:rgba(101,108,133,.8);--docsearch-logo-color:#5468ff;--docsearch-modal-width:560px;--docsearch-modal-height:600px;--docsearch-modal-background:#f5f6f7;--docsearch-modal-shadow:inset 1px 1px 0 0 hsla(0,0%,100%,.5),0 3px 8px 0 #555a64;--docsearch-searchbox-height:56px;--docsearch-searchbox-background:#ebedf0;--docsearch-searchbox-focus-background:#fff;--docsearch-searchbox-shadow:inset 0 0 0 2px var(--docsearch-primary-color);--docsearch-hit-height:56px;--docsearch-hit-color:#444950;--docsearch-hit-active-color:#fff;--docsearch-hit-background:#fff;--docsearch-hit-shadow:0 1px 3px 0 #d4d9e1;--docsearch-key-gradient:linear-gradient(-225deg,#d5dbe4,#f8f8f8);--docsearch-key-shadow:inset 0 -2px 0 0 #cdcde6,inset 0 0 1px 1px #fff,0 1px 2px 1px rgba(30,35,90,.4);--docsearch-footer-height:44px;--docsearch-footer-background:#fff;--docsearch-footer-shadow:0 -1px 0 0 #e0e3e8,0 -3px 6px 0 rgba(69,98,155,.12)}html[data-theme=dark]{--docsearch-text-color:#f5f6f7;--docsearch-container-background:rgba(9,10,17,.8);--docsearch-modal-background:#15172a;--docsearch-modal-shadow:inset 1px 1px 0 0 #2c2e40,0 3px 8px 0 #000309;--docsearch-searchbox-background:#090a11;--docsearch-searchbox-focus-background:#000;--docsearch-hit-color:#bec3c9;--docsearch-hit-shadow:none;--docsearch-hit-background:#090a11;--docsearch-key-gradient:linear-gradient(-26.5deg,#565872,#31355b);--docsearch-key-shadow:inset 0 -2px 0 0 #282d55,inset 0 0 1px 1px #51577d,0 2px 2px 0 rgba(3,4,9,.3);--docsearch-footer-background:#1e2136;--docsearch-footer-shadow:inset 0 1px 0 0 rgba(73,76,106,.5),0 -4px 8px 0 rgba(0,0,0,.2);--docsearch-logo-color:#fff;--docsearch-muted-color:#7f8497}.DocSearch-Button{align-items:center;background:var(--docsearch-searchbox-background);border:0;border-radius:40px;color:var(--docsearch-muted-color);cursor:pointer;display:flex;font-weight:500;height:36px;justify-content:space-between;margin:0 0 0 16px;padding:0 8px;-webkit-user-select:none;user-select:none}.DocSearch-Button:active,.DocSearch-Button:focus,.DocSearch-Button:hover{background:var(--docsearch-searchbox-focus-background);box-shadow:var(--docsearch-searchbox-shadow);color:var(--docsearch-text-color);outline:none}.DocSearch-Button-Container{align-items:center;display:flex}.DocSearch-Search-Icon{stroke-width:1.6}.DocSearch-Button .DocSearch-Search-Icon{color:var(--docsearch-text-color)}.DocSearch-Button-Placeholder{font-size:1rem;padding:0 12px 0 6px}.DocSearch-Button-Keys{display:flex;min-width:calc(40px + .8em)}.DocSearch-Button-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:3px;box-shadow:var(--docsearch-key-shadow);color:var(--docsearch-muted-color);display:flex;height:18px;justify-content:center;margin-right:.4em;position:relative;padding:0 0 2px;border:0;top:-1px;width:20px}@media (max-width:768px){.DocSearch-Button-Keys,.DocSearch-Button-Placeholder{display:none}}.DocSearch--active{overflow:hidden!important}.DocSearch-Container,.DocSearch-Container *{box-sizing:border-box}.DocSearch-Container{background-color:var(--docsearch-container-background);height:100vh;left:0;position:fixed;top:0;width:100vw;z-index:200}.DocSearch-Container a{text-decoration:none}.DocSearch-Link{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;font:inherit;margin:0;padding:0}.DocSearch-Modal{background:var(--docsearch-modal-background);border-radius:6px;box-shadow:var(--docsearch-modal-shadow);flex-direction:column;margin:60px auto auto;max-width:var(--docsearch-modal-width);position:relative}.DocSearch-SearchBar{display:flex;padding:var(--docsearch-spacing) var(--docsearch-spacing) 0}.DocSearch-Form{align-items:center;background:var(--docsearch-searchbox-focus-background);border-radius:4px;box-shadow:var(--docsearch-searchbox-shadow);display:flex;height:var(--docsearch-searchbox-height);margin:0;padding:0 var(--docsearch-spacing);position:relative;width:100%}.DocSearch-Input{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;border:0;color:var(--docsearch-text-color);flex:1;font:inherit;font-size:1.2em;height:100%;outline:none;padding:0 0 0 8px;width:80%}.DocSearch-Input::placeholder{color:var(--docsearch-muted-color);opacity:1}.DocSearch-Input::-webkit-search-cancel-button,.DocSearch-Input::-webkit-search-decoration,.DocSearch-Input::-webkit-search-results-button,.DocSearch-Input::-webkit-search-results-decoration{display:none}.DocSearch-LoadingIndicator,.DocSearch-MagnifierLabel,.DocSearch-Reset{margin:0;padding:0}.DocSearch-MagnifierLabel,.DocSearch-Reset{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}.DocSearch-Container--Stalled .DocSearch-MagnifierLabel,.DocSearch-LoadingIndicator{display:none}.DocSearch-Container--Stalled .DocSearch-LoadingIndicator{align-items:center;color:var(--docsearch-highlight-color);display:flex;justify-content:center}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Reset{animation:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;right:0;stroke-width:var(--docsearch-icon-stroke-width)}}.DocSearch-Reset{animation:fade-in .1s ease-in forwards;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:var(--docsearch-icon-color);cursor:pointer;padding:2px;right:0;stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Reset[hidden]{display:none}.DocSearch-Reset:hover{color:var(--docsearch-highlight-color)}.DocSearch-LoadingIndicator svg,.DocSearch-MagnifierLabel svg{height:24px;width:24px}.DocSearch-Cancel{display:none}.DocSearch-Dropdown{max-height:calc(var(--docsearch-modal-height) - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height));min-height:var(--docsearch-spacing);overflow-y:auto;overflow-y:overlay;padding:0 var(--docsearch-spacing);scrollbar-color:var(--docsearch-muted-color) var(--docsearch-modal-background);scrollbar-width:thin}.DocSearch-Dropdown::-webkit-scrollbar{width:12px}.DocSearch-Dropdown::-webkit-scrollbar-track{background:transparent}.DocSearch-Dropdown::-webkit-scrollbar-thumb{background-color:var(--docsearch-muted-color);border:3px solid var(--docsearch-modal-background);border-radius:20px}.DocSearch-Dropdown ul{list-style:none;margin:0;padding:0}.DocSearch-Label{font-size:.75em;line-height:1.6em}.DocSearch-Help,.DocSearch-Label{color:var(--docsearch-muted-color)}.DocSearch-Help{font-size:.9em;margin:0;-webkit-user-select:none;user-select:none}.DocSearch-Title{font-size:1.2em}.DocSearch-Logo a{display:flex}.DocSearch-Logo svg{color:var(--docsearch-logo-color);margin-left:8px}.DocSearch-Hits:last-of-type{margin-bottom:24px}.DocSearch-Hits mark{background:none;color:var(--docsearch-highlight-color)}.DocSearch-HitsFooter{color:var(--docsearch-muted-color);display:flex;font-size:.85em;justify-content:center;margin-bottom:var(--docsearch-spacing);padding:var(--docsearch-spacing)}.DocSearch-HitsFooter a{border-bottom:1px solid;color:inherit}.DocSearch-Hit{border-radius:4px;display:flex;padding-bottom:4px;position:relative}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--deleting{transition:none}}.DocSearch-Hit--deleting{opacity:0;transition:all .25s linear}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit--favoriting{transition:none}}.DocSearch-Hit--favoriting{transform:scale(0);transform-origin:top center;transition:all .25s linear;transition-delay:.25s}.DocSearch-Hit a{background:var(--docsearch-hit-background);border-radius:4px;box-shadow:var(--docsearch-hit-shadow);display:block;padding-left:var(--docsearch-spacing);width:100%}.DocSearch-Hit-source{background:var(--docsearch-modal-background);color:var(--docsearch-highlight-color);font-size:.85em;font-weight:600;line-height:32px;margin:0 -4px;padding:8px 4px 0;position:sticky;top:0;z-index:10}.DocSearch-Hit-Tree{color:var(--docsearch-muted-color);height:var(--docsearch-hit-height);opacity:.5;stroke-width:var(--docsearch-icon-stroke-width);width:24px}.DocSearch-Hit[aria-selected=true] a{background-color:var(--docsearch-highlight-color)}.DocSearch-Hit[aria-selected=true] mark{text-decoration:underline}.DocSearch-Hit-Container{align-items:center;color:var(--docsearch-hit-color);display:flex;flex-direction:row;height:var(--docsearch-hit-height);padding:0 var(--docsearch-spacing) 0 0}.DocSearch-Hit-icon{height:20px;width:20px}.DocSearch-Hit-action,.DocSearch-Hit-icon{color:var(--docsearch-muted-color);stroke-width:var(--docsearch-icon-stroke-width)}.DocSearch-Hit-action{align-items:center;display:flex;height:22px;width:22px}.DocSearch-Hit-action svg{display:block;height:18px;width:18px}.DocSearch-Hit-action+.DocSearch-Hit-action{margin-left:6px}.DocSearch-Hit-action-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:50%;color:inherit;cursor:pointer;padding:2px}svg.DocSearch-Hit-Select-Icon{display:none}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Select-Icon{display:block}.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:background-color .1s ease-in}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{transition:none}}.DocSearch-Hit-action-button:focus path,.DocSearch-Hit-action-button:hover path{fill:#fff}.DocSearch-Hit-content-wrapper{display:flex;flex:1 1 auto;flex-direction:column;font-weight:500;justify-content:center;line-height:1.2em;margin:0 8px;overflow-x:hidden;position:relative;text-overflow:ellipsis;white-space:nowrap;width:80%}.DocSearch-Hit-title{font-size:.9em}.DocSearch-Hit-path{color:var(--docsearch-muted-color);font-size:.75em}.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-action,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-icon,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-path,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-text,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-title,.DocSearch-Hit[aria-selected=true] .DocSearch-Hit-Tree,.DocSearch-Hit[aria-selected=true] mark{color:var(--docsearch-hit-active-color)!important}@media screen and (prefers-reduced-motion:reduce){.DocSearch-Hit-action-button:focus,.DocSearch-Hit-action-button:hover{background:rgba(0,0,0,.2);transition:none}}.DocSearch-ErrorScreen,.DocSearch-NoResults,.DocSearch-StartScreen{font-size:.9em;margin:0 auto;padding:36px 0;text-align:center;width:80%}.DocSearch-Screen-Icon{color:var(--docsearch-muted-color);padding-bottom:12px}.DocSearch-NoResults-Prefill-List{display:inline-block;padding-bottom:24px;text-align:left}.DocSearch-NoResults-Prefill-List ul{display:inline-block;padding:8px 0 0}.DocSearch-NoResults-Prefill-List li{list-style-position:inside;list-style-type:"» "}.DocSearch-Prefill{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;border-radius:1em;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;font-size:1em;font-weight:700;padding:0}.DocSearch-Prefill:focus,.DocSearch-Prefill:hover{outline:none;text-decoration:underline}.DocSearch-Footer{align-items:center;background:var(--docsearch-footer-background);border-radius:0 0 8px 8px;box-shadow:var(--docsearch-footer-shadow);display:flex;flex-direction:row-reverse;flex-shrink:0;height:var(--docsearch-footer-height);justify-content:space-between;padding:0 var(--docsearch-spacing);position:relative;-webkit-user-select:none;user-select:none;width:100%;z-index:300}.DocSearch-Commands{color:var(--docsearch-muted-color);display:flex;list-style:none;margin:0;padding:0}.DocSearch-Commands li{align-items:center;display:flex}.DocSearch-Commands li:not(:last-of-type){margin-right:.8em}.DocSearch-Commands-Key{align-items:center;background:var(--docsearch-key-gradient);border-radius:2px;box-shadow:var(--docsearch-key-shadow);display:flex;height:18px;justify-content:center;margin-right:.4em;padding:0 0 1px;color:var(--docsearch-muted-color);border:0;width:20px}@media (max-width:768px){:root{--docsearch-spacing:10px;--docsearch-footer-height:40px}.DocSearch-Dropdown{height:100%}.DocSearch-Container{height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);position:absolute}.DocSearch-Footer{border-radius:0;bottom:0;position:absolute}.DocSearch-Hit-content-wrapper{display:flex;position:relative;width:80%}.DocSearch-Modal{border-radius:0;box-shadow:none;height:100vh;height:-webkit-fill-available;height:calc(var(--docsearch-vh, 1vh)*100);margin:0;max-width:100%;width:100%}.DocSearch-Dropdown{max-height:calc(var(--docsearch-vh, 1vh)*100 - var(--docsearch-searchbox-height) - var(--docsearch-spacing) - var(--docsearch-footer-height))}.DocSearch-Cancel{-webkit-appearance:none;-moz-appearance:none;appearance:none;background:none;border:0;color:var(--docsearch-highlight-color);cursor:pointer;display:inline-block;flex:none;font:inherit;font-size:1em;font-weight:500;margin-left:var(--docsearch-spacing);outline:none;overflow:hidden;padding:0;-webkit-user-select:none;user-select:none;white-space:nowrap}.DocSearch-Commands,.DocSearch-Hit-Tree{display:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}[class*=DocSearch]{--docsearch-primary-color: var(--vp-c-brand-1);--docsearch-highlight-color: var(--docsearch-primary-color);--docsearch-text-color: var(--vp-c-text-1);--docsearch-muted-color: var(--vp-c-text-2);--docsearch-searchbox-shadow: none;--docsearch-searchbox-background: transparent;--docsearch-searchbox-focus-background: transparent;--docsearch-key-gradient: transparent;--docsearch-key-shadow: none;--docsearch-modal-background: var(--vp-c-bg-soft);--docsearch-footer-background: var(--vp-c-bg)}.dark [class*=DocSearch]{--docsearch-modal-shadow: none;--docsearch-footer-shadow: none;--docsearch-logo-color: var(--vp-c-text-2);--docsearch-hit-background: var(--vp-c-default-soft);--docsearch-hit-color: var(--vp-c-text-2);--docsearch-hit-shadow: none}.DocSearch-Button{display:flex;justify-content:center;align-items:center;margin:0;padding:0;width:48px;height:55px;background:transparent;transition:border-color .25s}.DocSearch-Button:hover{background:transparent}.DocSearch-Button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}.DocSearch-Button:focus:not(:focus-visible){outline:none!important}@media (min-width: 768px){.DocSearch-Button{justify-content:flex-start;border:1px solid transparent;border-radius:8px;padding:0 10px 0 12px;width:100%;height:40px;background-color:var(--vp-c-bg-alt)}.DocSearch-Button:hover{border-color:var(--vp-c-brand-1);background:var(--vp-c-bg-alt)}}.DocSearch-Button .DocSearch-Button-Container{display:flex;align-items:center}.DocSearch-Button .DocSearch-Search-Icon{position:relative;width:16px;height:16px;color:var(--vp-c-text-1);fill:currentColor;transition:color .5s}.DocSearch-Button:hover .DocSearch-Search-Icon{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Search-Icon{top:1px;margin-right:8px;width:14px;height:14px;color:var(--vp-c-text-2)}}.DocSearch-Button .DocSearch-Button-Placeholder{display:none;margin-top:2px;padding:0 16px 0 0;font-size:13px;font-weight:500;color:var(--vp-c-text-2);transition:color .5s}.DocSearch-Button:hover .DocSearch-Button-Placeholder{color:var(--vp-c-text-1)}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Placeholder{display:inline-block}}.DocSearch-Button .DocSearch-Button-Keys{direction:ltr;display:none;min-width:auto}@media (min-width: 768px){.DocSearch-Button .DocSearch-Button-Keys{display:flex;align-items:center}}.DocSearch-Button .DocSearch-Button-Key{display:block;margin:2px 0 0;border:1px solid var(--vp-c-divider);border-right:none;border-radius:4px 0 0 4px;padding-left:6px;min-width:0;width:auto;height:22px;line-height:22px;font-family:var(--vp-font-family-base);font-size:12px;font-weight:500;transition:color .5s,border-color .5s}.DocSearch-Button .DocSearch-Button-Key+.DocSearch-Button-Key{border-right:1px solid var(--vp-c-divider);border-left:none;border-radius:0 4px 4px 0;padding-left:2px;padding-right:6px}.DocSearch-Button .DocSearch-Button-Key:first-child{font-size:0!important}.DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"Ctrl";font-size:12px;letter-spacing:normal;color:var(--docsearch-muted-color)}.mac .DocSearch-Button .DocSearch-Button-Key:first-child:after{content:"⌘"}.DocSearch-Button .DocSearch-Button-Key:first-child>*{display:none}.VPNavBarSearch{display:flex;align-items:center}@media (min-width: 768px){.VPNavBarSearch{flex-grow:1;padding-left:24px}}@media (min-width: 960px){.VPNavBarSearch{padding-left:32px}}.dark .DocSearch-Footer{border-top:1px solid var(--vp-c-divider)}.DocSearch-Form{border:1px solid var(--vp-c-brand-1);background-color:var(--vp-c-white)}.dark .DocSearch-Form{background-color:var(--vp-c-default-soft)}.DocSearch-Screen-Icon>svg{margin:auto}.VPNavBarSocialLinks[data-v-0394ad82]{display:none}@media (min-width: 1280px){.VPNavBarSocialLinks[data-v-0394ad82]{display:flex;align-items:center}}.title[data-v-86d1bed8]{display:flex;align-items:center;border-bottom:1px solid transparent;width:100%;height:var(--vp-nav-height);font-size:16px;font-weight:600;color:var(--vp-c-text-1);transition:opacity .25s}@media (min-width: 960px){.title[data-v-86d1bed8]{flex-shrink:0}.VPNavBarTitle.has-sidebar .title[data-v-86d1bed8]{border-bottom-color:var(--vp-c-divider)}}[data-v-86d1bed8] .logo{margin-right:8px;height:var(--vp-nav-logo-height)}.VPNavBarTranslations[data-v-74abcbb9]{display:none}@media (min-width: 1280px){.VPNavBarTranslations[data-v-74abcbb9]{display:flex;align-items:center}}.title[data-v-74abcbb9]{padding:0 24px 0 12px;line-height:32px;font-size:14px;font-weight:700;color:var(--vp-c-text-1)}.VPNavBar[data-v-d83f3580]{position:relative;border-bottom:1px solid transparent;padding:0 8px 0 24px;height:var(--vp-nav-height);pointer-events:none;white-space:nowrap}@media (min-width: 768px){.VPNavBar[data-v-d83f3580]{padding:0 32px}}@media (min-width: 960px){.VPNavBar.has-sidebar[data-v-d83f3580]{padding:0}.VPNavBar[data-v-d83f3580]:not(.has-sidebar):not(.top){border-bottom-color:var(--vp-c-gutter);background-color:var(--vp-nav-bg-color)}}.container[data-v-d83f3580]{display:flex;justify-content:space-between;margin:0 auto;max-width:calc(var(--vp-layout-max-width) - 64px);height:var(--vp-nav-height);pointer-events:none}.container>.title[data-v-d83f3580],.container>.content[data-v-d83f3580]{pointer-events:none}.container[data-v-d83f3580] *{pointer-events:auto}@media (min-width: 960px){.VPNavBar.has-sidebar .container[data-v-d83f3580]{max-width:100%}}.title[data-v-d83f3580]{flex-shrink:0;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar.has-sidebar .title[data-v-d83f3580]{position:absolute;top:0;left:0;z-index:2;padding:0 32px;width:var(--vp-sidebar-width);height:var(--vp-nav-height);background-color:transparent}}@media (min-width: 1440px){.VPNavBar.has-sidebar .title[data-v-d83f3580]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}.content[data-v-d83f3580]{flex-grow:1}@media (min-width: 960px){.VPNavBar.has-sidebar .content[data-v-d83f3580]{position:relative;z-index:1;padding-right:32px;padding-left:var(--vp-sidebar-width)}}@media (min-width: 1440px){.VPNavBar.has-sidebar .content[data-v-d83f3580]{padding-right:calc((100vw - var(--vp-layout-max-width)) / 2 + 32px);padding-left:calc((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width))}}.content-body[data-v-d83f3580]{display:flex;justify-content:flex-end;align-items:center;height:calc(var(--vp-nav-height) - 1px);transition:background-color .5s}@media (min-width: 960px){.VPNavBar:not(.top) .content-body[data-v-d83f3580]{position:relative;background-color:var(--vp-nav-bg-color)}}@media (max-width: 767px){.content-body[data-v-d83f3580]{column-gap:.5rem}}.menu+.translations[data-v-d83f3580]:before,.menu+.appearance[data-v-d83f3580]:before,.menu+.social-links[data-v-d83f3580]:before,.translations+.appearance[data-v-d83f3580]:before,.appearance+.social-links[data-v-d83f3580]:before{margin-right:8px;margin-left:8px;width:1px;height:24px;background-color:var(--vp-c-divider);content:""}.menu+.appearance[data-v-d83f3580]:before,.translations+.appearance[data-v-d83f3580]:before{margin-right:16px}.appearance+.social-links[data-v-d83f3580]:before{margin-left:16px}.social-links[data-v-d83f3580]{margin-right:-8px}@media (min-width: 960px){.VPNavBar.has-sidebar .curtain[data-v-d83f3580]{position:absolute;right:0;bottom:-31px;width:calc(100% - var(--vp-sidebar-width));height:32px}.VPNavBar.has-sidebar .curtain[data-v-d83f3580]:before{display:block;width:100%;height:32px;background:linear-gradient(var(--vp-c-bg),transparent 70%);content:""}}@media (min-width: 1440px){.VPNavBar.has-sidebar .curtain[data-v-d83f3580]{width:calc(100% - ((100vw - var(--vp-layout-max-width)) / 2 + var(--vp-sidebar-width)))}}.VPNavScreenAppearance[data-v-2d7af913]{display:flex;justify-content:space-between;align-items:center;border-radius:8px;padding:12px 14px 12px 16px;background-color:var(--vp-c-bg-soft)}.text[data-v-2d7af913]{line-height:24px;font-size:12px;font-weight:500;color:var(--vp-c-text-2)}.VPNavScreenMenuLink[data-v-05f27b2a]{display:block;border-bottom:1px solid var(--vp-c-divider);padding:12px 0 11px;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:border-color .25s,color .25s}.VPNavScreenMenuLink[data-v-05f27b2a]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupLink[data-v-19976ae1]{display:block;margin-left:12px;line-height:32px;font-size:14px;font-weight:400;color:var(--vp-c-text-1);transition:color .25s}.VPNavScreenMenuGroupLink[data-v-19976ae1]:hover{color:var(--vp-c-brand-1)}.VPNavScreenMenuGroupSection[data-v-8133b170]{display:block}.title[data-v-8133b170]{line-height:32px;font-size:13px;font-weight:700;color:var(--vp-c-text-2);transition:color .25s}.VPNavScreenMenuGroup[data-v-65ef89ca]{border-bottom:1px solid var(--vp-c-divider);height:48px;overflow:hidden;transition:border-color .5s}.VPNavScreenMenuGroup .items[data-v-65ef89ca]{visibility:hidden}.VPNavScreenMenuGroup.open .items[data-v-65ef89ca]{visibility:visible}.VPNavScreenMenuGroup.open[data-v-65ef89ca]{padding-bottom:10px;height:auto}.VPNavScreenMenuGroup.open .button[data-v-65ef89ca]{padding-bottom:6px;color:var(--vp-c-brand-1)}.VPNavScreenMenuGroup.open .button-icon[data-v-65ef89ca]{transform:rotate(45deg)}.button[data-v-65ef89ca]{display:flex;justify-content:space-between;align-items:center;padding:12px 4px 11px 0;width:100%;line-height:24px;font-size:14px;font-weight:500;color:var(--vp-c-text-1);transition:color .25s}.button[data-v-65ef89ca]:hover{color:var(--vp-c-brand-1)}.button-icon[data-v-65ef89ca]{width:14px;height:14px;fill:var(--vp-c-text-2);transition:fill .5s,transform .25s}.group[data-v-65ef89ca]:first-child{padding-top:0}.group+.group[data-v-65ef89ca],.group+.item[data-v-65ef89ca]{padding-top:4px}.VPNavScreenTranslations[data-v-d72aa483]{height:24px;overflow:hidden}.VPNavScreenTranslations.open[data-v-d72aa483]{height:auto}.title[data-v-d72aa483]{display:flex;align-items:center;font-size:14px;font-weight:500;color:var(--vp-c-text-1)}.icon[data-v-d72aa483]{width:16px;height:16px;fill:currentColor}.icon.lang[data-v-d72aa483]{margin-right:8px}.icon.chevron[data-v-d72aa483]{margin-left:4px}.list[data-v-d72aa483]{padding:4px 0 0 24px}.link[data-v-d72aa483]{line-height:32px;font-size:13px;color:var(--vp-c-text-1)}.VPNavScreen[data-v-cc5739dd]{position:fixed;top:calc(var(--vp-nav-height) + var(--vp-layout-top-height, 0px) + 1px);right:0;bottom:0;left:0;padding:0 32px;width:100%;background-color:var(--vp-nav-screen-bg-color);overflow-y:auto;transition:background-color .5s;pointer-events:auto}.VPNavScreen.fade-enter-active[data-v-cc5739dd],.VPNavScreen.fade-leave-active[data-v-cc5739dd]{transition:opacity .25s}.VPNavScreen.fade-enter-active .container[data-v-cc5739dd],.VPNavScreen.fade-leave-active .container[data-v-cc5739dd]{transition:transform .25s ease}.VPNavScreen.fade-enter-from[data-v-cc5739dd],.VPNavScreen.fade-leave-to[data-v-cc5739dd]{opacity:0}.VPNavScreen.fade-enter-from .container[data-v-cc5739dd],.VPNavScreen.fade-leave-to .container[data-v-cc5739dd]{transform:translateY(-8px)}@media (min-width: 768px){.VPNavScreen[data-v-cc5739dd]{display:none}}.container[data-v-cc5739dd]{margin:0 auto;padding:24px 0 96px;max-width:288px}.menu+.translations[data-v-cc5739dd],.menu+.appearance[data-v-cc5739dd],.translations+.appearance[data-v-cc5739dd]{margin-top:24px}.menu+.social-links[data-v-cc5739dd]{margin-top:16px}.appearance+.social-links[data-v-cc5739dd]{margin-top:16px}.VPNav[data-v-ae24b3ad]{position:relative;top:var(--vp-layout-top-height, 0px);left:0;z-index:var(--vp-z-index-nav);width:100%;pointer-events:none;transition:background-color .5s}@media (min-width: 960px){.VPNav[data-v-ae24b3ad]{position:fixed}}.VPSidebarItem.level-0[data-v-e31bd47b]{padding-bottom:24px}.VPSidebarItem.collapsed.level-0[data-v-e31bd47b]{padding-bottom:10px}.item[data-v-e31bd47b]{position:relative;display:flex;width:100%}.VPSidebarItem.collapsible>.item[data-v-e31bd47b]{cursor:pointer}.indicator[data-v-e31bd47b]{position:absolute;top:6px;bottom:6px;left:-17px;width:2px;border-radius:2px;transition:background-color .25s}.VPSidebarItem.level-2.is-active>.item>.indicator[data-v-e31bd47b],.VPSidebarItem.level-3.is-active>.item>.indicator[data-v-e31bd47b],.VPSidebarItem.level-4.is-active>.item>.indicator[data-v-e31bd47b],.VPSidebarItem.level-5.is-active>.item>.indicator[data-v-e31bd47b]{background-color:var(--vp-c-brand-1)}.link[data-v-e31bd47b]{display:flex;align-items:center;flex-grow:1}.text[data-v-e31bd47b]{flex-grow:1;padding:4px 0;line-height:24px;font-size:14px;transition:color .25s}.VPSidebarItem.level-0 .text[data-v-e31bd47b]{font-weight:700;color:var(--vp-c-text-1)}.VPSidebarItem.level-1 .text[data-v-e31bd47b],.VPSidebarItem.level-2 .text[data-v-e31bd47b],.VPSidebarItem.level-3 .text[data-v-e31bd47b],.VPSidebarItem.level-4 .text[data-v-e31bd47b],.VPSidebarItem.level-5 .text[data-v-e31bd47b]{font-weight:500;color:var(--vp-c-text-2)}.VPSidebarItem.level-0.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-1.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-2.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-3.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-4.is-link>.item>.link:hover .text[data-v-e31bd47b],.VPSidebarItem.level-5.is-link>.item>.link:hover .text[data-v-e31bd47b]{color:var(--vp-c-brand-1)}.VPSidebarItem.level-0.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-1.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-2.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-3.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-4.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-5.has-active>.item>.text[data-v-e31bd47b],.VPSidebarItem.level-0.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-1.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-2.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-3.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-4.has-active>.item>.link>.text[data-v-e31bd47b],.VPSidebarItem.level-5.has-active>.item>.link>.text[data-v-e31bd47b]{color:var(--vp-c-text-1)}.VPSidebarItem.level-0.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-1.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-2.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-3.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-4.is-active>.item .link>.text[data-v-e31bd47b],.VPSidebarItem.level-5.is-active>.item .link>.text[data-v-e31bd47b]{color:var(--vp-c-brand-1)}.caret[data-v-e31bd47b]{display:flex;justify-content:center;align-items:center;margin-right:-7px;width:32px;height:32px;color:var(--vp-c-text-3);cursor:pointer;transition:color .25s;flex-shrink:0}.item:hover .caret[data-v-e31bd47b]{color:var(--vp-c-text-2)}.item:hover .caret[data-v-e31bd47b]:hover{color:var(--vp-c-text-1)}.caret-icon[data-v-e31bd47b]{width:18px;height:18px;fill:currentColor;transform:rotate(90deg);transition:transform .25s}.VPSidebarItem.collapsed .caret-icon[data-v-e31bd47b]{transform:rotate(0)}.VPSidebarItem.level-1 .items[data-v-e31bd47b],.VPSidebarItem.level-2 .items[data-v-e31bd47b],.VPSidebarItem.level-3 .items[data-v-e31bd47b],.VPSidebarItem.level-4 .items[data-v-e31bd47b],.VPSidebarItem.level-5 .items[data-v-e31bd47b]{border-left:1px solid var(--vp-c-divider);padding-left:16px}.VPSidebarItem.collapsed .items[data-v-e31bd47b]{display:none}.VPSidebar[data-v-7f44e717]{position:fixed;top:var(--vp-layout-top-height, 0px);bottom:0;left:0;z-index:var(--vp-z-index-sidebar);padding:32px 32px 96px;width:calc(100vw - 64px);max-width:320px;background-color:var(--vp-sidebar-bg-color);opacity:0;box-shadow:var(--vp-c-shadow-3);overflow-x:hidden;overflow-y:auto;transform:translate(-100%);transition:opacity .5s,transform .25s ease;overscroll-behavior:contain}.VPSidebar.open[data-v-7f44e717]{opacity:1;visibility:visible;transform:translate(0);transition:opacity .25s,transform .5s cubic-bezier(.19,1,.22,1)}.dark .VPSidebar[data-v-7f44e717]{box-shadow:var(--vp-shadow-1)}@media (min-width: 960px){.VPSidebar[data-v-7f44e717]{z-index:1;padding-top:var(--vp-nav-height);width:var(--vp-sidebar-width);max-width:100%;background-color:var(--vp-sidebar-bg-color);opacity:1;visibility:visible;box-shadow:none;transform:translate(0)}}@media (min-width: 1440px){.VPSidebar[data-v-7f44e717]{padding-left:max(32px,calc((100% - (var(--vp-layout-max-width) - 64px)) / 2));width:calc((100% - (var(--vp-layout-max-width) - 64px)) / 2 + var(--vp-sidebar-width) - 32px)}}@media (min-width: 960px){.curtain[data-v-7f44e717]{position:sticky;top:-64px;left:0;z-index:1;margin-top:calc(var(--vp-nav-height) * -1);margin-right:-32px;margin-left:-32px;height:var(--vp-nav-height);background-color:var(--vp-sidebar-bg-color)}}.nav[data-v-7f44e717]{outline:0}.group+.group[data-v-7f44e717]{border-top:1px solid var(--vp-c-divider);padding-top:10px}@media (min-width: 960px){.group[data-v-7f44e717]{padding-top:10px;width:calc(var(--vp-sidebar-width) - 64px)}}.VPSkipLink[data-v-0f60ec36]{top:8px;left:8px;padding:8px 16px;z-index:999;border-radius:8px;font-size:12px;font-weight:700;text-decoration:none;color:var(--vp-c-brand-1);box-shadow:var(--vp-shadow-3);background-color:var(--vp-c-bg)}.VPSkipLink[data-v-0f60ec36]:focus{height:auto;width:auto;clip:auto;clip-path:none}@media (min-width: 1280px){.VPSkipLink[data-v-0f60ec36]{top:14px;left:16px}}.Layout[data-v-5a346dfe]{display:flex;flex-direction:column;min-height:100vh}.VPHomeSponsors[data-v-96bd69d5]{border-top:1px solid var(--vp-c-gutter);padding:88px 24px 96px;background-color:var(--vp-c-bg)}.container[data-v-96bd69d5]{margin:0 auto;max-width:1152px}.love[data-v-96bd69d5]{margin:0 auto;width:28px;height:28px;color:var(--vp-c-text-3)}.icon[data-v-96bd69d5]{width:28px;height:28px;fill:currentColor}.message[data-v-96bd69d5]{margin:0 auto;padding-top:10px;max-width:320px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.sponsors[data-v-96bd69d5]{padding-top:32px}.action[data-v-96bd69d5]{padding-top:40px;text-align:center}.VPTeamPage[data-v-10b00018]{padding-bottom:96px}@media (min-width: 768px){.VPTeamPage[data-v-10b00018]{padding-bottom:128px}}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:64px}.VPTeamMembers+.VPTeamMembers[data-v-10b00018-s]{margin-top:24px}@media (min-width: 768px){.VPTeamPageTitle+.VPTeamPageSection[data-v-10b00018-s]{margin-top:16px}.VPTeamPageSection+.VPTeamPageSection[data-v-10b00018-s],.VPTeamMembers+.VPTeamPageSection[data-v-10b00018-s]{margin-top:96px}}.VPTeamMembers[data-v-10b00018-s]{padding:0 24px}@media (min-width: 768px){.VPTeamMembers[data-v-10b00018-s]{padding:0 48px}}@media (min-width: 960px){.VPTeamMembers[data-v-10b00018-s]{padding:0 64px}}.VPTeamPageTitle[data-v-bf2cbdac]{padding:48px 32px;text-align:center}@media (min-width: 768px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:64px 48px 48px}}@media (min-width: 960px){.VPTeamPageTitle[data-v-bf2cbdac]{padding:80px 64px 48px}}.title[data-v-bf2cbdac]{letter-spacing:0;line-height:44px;font-size:36px;font-weight:500}@media (min-width: 768px){.title[data-v-bf2cbdac]{letter-spacing:-.5px;line-height:56px;font-size:48px}}.lead[data-v-bf2cbdac]{margin:0 auto;max-width:512px;padding-top:12px;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}@media (min-width: 768px){.lead[data-v-bf2cbdac]{max-width:592px;letter-spacing:.15px;line-height:28px;font-size:20px}}.VPTeamPageSection[data-v-b1a88750]{padding:0 32px}@media (min-width: 768px){.VPTeamPageSection[data-v-b1a88750]{padding:0 48px}}@media (min-width: 960px){.VPTeamPageSection[data-v-b1a88750]{padding:0 64px}}.title[data-v-b1a88750]{position:relative;margin:0 auto;max-width:1152px;text-align:center;color:var(--vp-c-text-2)}.title-line[data-v-b1a88750]{position:absolute;top:16px;left:0;width:100%;height:1px;background-color:var(--vp-c-divider)}.title-text[data-v-b1a88750]{position:relative;display:inline-block;padding:0 24px;letter-spacing:0;line-height:32px;font-size:20px;font-weight:500;background-color:var(--vp-c-bg)}.lead[data-v-b1a88750]{margin:0 auto;max-width:480px;padding-top:12px;text-align:center;line-height:24px;font-size:16px;font-weight:500;color:var(--vp-c-text-2)}.members[data-v-b1a88750]{padding-top:40px}.VPTeamMembersItem[data-v-28528e42]{display:flex;flex-direction:column;gap:2px;border-radius:12px;width:100%;height:100%;overflow:hidden}.VPTeamMembersItem.small .profile[data-v-28528e42]{padding:32px}.VPTeamMembersItem.small .data[data-v-28528e42]{padding-top:20px}.VPTeamMembersItem.small .avatar[data-v-28528e42]{width:64px;height:64px}.VPTeamMembersItem.small .name[data-v-28528e42]{line-height:24px;font-size:16px}.VPTeamMembersItem.small .affiliation[data-v-28528e42]{padding-top:4px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .desc[data-v-28528e42]{padding-top:12px;line-height:20px;font-size:14px}.VPTeamMembersItem.small .links[data-v-28528e42]{margin:0 -16px -20px;padding:10px 0 0}.VPTeamMembersItem.medium .profile[data-v-28528e42]{padding:48px 32px}.VPTeamMembersItem.medium .data[data-v-28528e42]{padding-top:24px;text-align:center}.VPTeamMembersItem.medium .avatar[data-v-28528e42]{width:96px;height:96px}.VPTeamMembersItem.medium .name[data-v-28528e42]{letter-spacing:.15px;line-height:28px;font-size:20px}.VPTeamMembersItem.medium .affiliation[data-v-28528e42]{padding-top:4px;font-size:16px}.VPTeamMembersItem.medium .desc[data-v-28528e42]{padding-top:16px;max-width:288px;font-size:16px}.VPTeamMembersItem.medium .links[data-v-28528e42]{margin:0 -16px -12px;padding:16px 12px 0}.profile[data-v-28528e42]{flex-grow:1;background-color:var(--vp-c-bg-soft)}.data[data-v-28528e42]{text-align:center}.avatar[data-v-28528e42]{position:relative;flex-shrink:0;margin:0 auto;border-radius:50%;box-shadow:var(--vp-shadow-3)}.avatar-img[data-v-28528e42]{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;object-fit:cover}.name[data-v-28528e42]{margin:0;font-weight:600}.affiliation[data-v-28528e42]{margin:0;font-weight:500;color:var(--vp-c-text-2)}.org.link[data-v-28528e42]{color:var(--vp-c-text-2);transition:color .25s}.org.link[data-v-28528e42]:hover{color:var(--vp-c-brand-1)}.desc[data-v-28528e42]{margin:0 auto}.desc[data-v-28528e42] a{font-weight:500;color:var(--vp-c-brand-1);text-decoration-style:dotted;transition:color .25s}.links[data-v-28528e42]{display:flex;justify-content:center;height:56px}.sp-link[data-v-28528e42]{display:flex;justify-content:center;align-items:center;text-align:center;padding:16px;font-size:14px;font-weight:500;color:var(--vp-c-sponsor);background-color:var(--vp-c-bg-soft);transition:color .25s,background-color .25s}.sp .sp-link.link[data-v-28528e42]:hover,.sp .sp-link.link[data-v-28528e42]:focus{outline:none;color:var(--vp-c-white);background-color:var(--vp-c-sponsor)}.sp-icon[data-v-28528e42]{margin-right:8px;width:16px;height:16px;fill:currentColor}.VPTeamMembers.small .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(224px,1fr))}.VPTeamMembers.small.count-1 .container[data-v-6cb0dbc4]{max-width:276px}.VPTeamMembers.small.count-2 .container[data-v-6cb0dbc4]{max-width:576px}.VPTeamMembers.small.count-3 .container[data-v-6cb0dbc4]{max-width:876px}.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(256px,1fr))}@media (min-width: 375px){.VPTeamMembers.medium .container[data-v-6cb0dbc4]{grid-template-columns:repeat(auto-fit,minmax(288px,1fr))}}.VPTeamMembers.medium.count-1 .container[data-v-6cb0dbc4]{max-width:368px}.VPTeamMembers.medium.count-2 .container[data-v-6cb0dbc4]{max-width:760px}.container[data-v-6cb0dbc4]{display:grid;gap:24px;margin:0 auto;max-width:1152px}.qa-list .title{display:flex}.qa-list .title:before{content:">";margin-right:10px}.qa-list .title .link{flex:1;cursor:pointer}.qa-list .title .author{font-size:12px}.qa-list .detail{margin-left:20px;background:aliceblue;padding:5px 10px;border-bottom-left-radius:10px;border-bottom-right-radius:10px}:root{--vs-colors--lightest: rgba(60, 60, 60, .26);--vs-colors--light: rgba(60, 60, 60, .5);--vs-colors--dark: #333;--vs-colors--darkest: rgba(0, 0, 0, .15);--vs-search-input-color: inherit;--vs-search-input-placeholder-color: inherit;--vs-font-size: 1rem;--vs-line-height: 1.4;--vs-state-disabled-bg: rgb(248, 248, 248);--vs-state-disabled-color: var(--vs-colors--light);--vs-state-disabled-controls-color: var(--vs-colors--light);--vs-state-disabled-cursor: not-allowed;--vs-border-color: var(--vs-colors--lightest);--vs-border-width: 1px;--vs-border-style: solid;--vs-border-radius: 4px;--vs-actions-padding: 4px 6px 0 3px;--vs-controls-color: var(--vs-colors--light);--vs-controls-size: 1;--vs-controls--deselect-text-shadow: 0 1px 0 #fff;--vs-selected-bg: #f0f0f0;--vs-selected-color: var(--vs-colors--dark);--vs-selected-border-color: var(--vs-border-color);--vs-selected-border-style: var(--vs-border-style);--vs-selected-border-width: var(--vs-border-width);--vs-dropdown-bg: #fff;--vs-dropdown-color: inherit;--vs-dropdown-z-index: 1000;--vs-dropdown-min-width: 160px;--vs-dropdown-max-height: 350px;--vs-dropdown-box-shadow: 0px 3px 6px 0px var(--vs-colors--darkest);--vs-dropdown-option-bg: #000;--vs-dropdown-option-color: var(--vs-dropdown-color);--vs-dropdown-option-padding: 3px 20px;--vs-dropdown-option--active-bg: #5897fb;--vs-dropdown-option--active-color: #fff;--vs-dropdown-option--deselect-bg: #fb5858;--vs-dropdown-option--deselect-color: #fff;--vs-transition-timing-function: cubic-bezier(1, -.115, .975, .855);--vs-transition-duration: .15s}.v-select{position:relative;font-family:inherit}.v-select,.v-select *{box-sizing:border-box}:root{--vs-transition-timing-function: cubic-bezier(1, .5, .8, 1);--vs-transition-duration: .15s}@-webkit-keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes vSelectSpinner{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.vs__fade-enter-active,.vs__fade-leave-active{pointer-events:none;transition:opacity var(--vs-transition-duration) var(--vs-transition-timing-function)}.vs__fade-enter,.vs__fade-leave-to{opacity:0}:root{--vs-disabled-bg: var(--vs-state-disabled-bg);--vs-disabled-color: var(--vs-state-disabled-color);--vs-disabled-cursor: var(--vs-state-disabled-cursor)}.vs--disabled .vs__dropdown-toggle,.vs--disabled .vs__clear,.vs--disabled .vs__search,.vs--disabled .vs__selected,.vs--disabled .vs__open-indicator{cursor:var(--vs-disabled-cursor);background-color:var(--vs-disabled-bg)}.v-select[dir=rtl] .vs__actions{padding:0 3px 0 6px}.v-select[dir=rtl] .vs__clear{margin-left:6px;margin-right:0}.v-select[dir=rtl] .vs__deselect{margin-left:0;margin-right:2px}.v-select[dir=rtl] .vs__dropdown-menu{text-align:right}.vs__dropdown-toggle{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:flex;padding:0 0 4px;background:none;border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-radius:var(--vs-border-radius);white-space:normal}.vs__selected-options{display:flex;flex-basis:100%;flex-grow:1;flex-wrap:wrap;padding:0 2px;position:relative}.vs__actions{display:flex;align-items:center;padding:var(--vs-actions-padding)}.vs--searchable .vs__dropdown-toggle{cursor:text}.vs--unsearchable .vs__dropdown-toggle{cursor:pointer}.vs--open .vs__dropdown-toggle{border-bottom-color:transparent;border-bottom-left-radius:0;border-bottom-right-radius:0}.vs__open-indicator{fill:var(--vs-controls-color);transform:scale(var(--vs-controls-size));transition:transform var(--vs-transition-duration) var(--vs-transition-timing-function);transition-timing-function:var(--vs-transition-timing-function)}.vs--open .vs__open-indicator{transform:rotate(180deg) scale(var(--vs-controls-size))}.vs--loading .vs__open-indicator{opacity:0}.vs__clear{fill:var(--vs-controls-color);padding:0;border:0;background-color:transparent;cursor:pointer;margin-right:8px}.vs__dropdown-menu{display:block;box-sizing:border-box;position:absolute;top:calc(100% - var(--vs-border-width));left:0;z-index:var(--vs-dropdown-z-index);padding:5px 0;margin:0;width:100%;max-height:var(--vs-dropdown-max-height);min-width:var(--vs-dropdown-min-width);overflow-y:auto;box-shadow:var(--vs-dropdown-box-shadow);border:var(--vs-border-width) var(--vs-border-style) var(--vs-border-color);border-top-style:none;border-radius:0 0 var(--vs-border-radius) var(--vs-border-radius);text-align:left;list-style:none;background:var(--vs-dropdown-bg);color:var(--vs-dropdown-color)}.vs__no-options{text-align:center}.vs__dropdown-option{line-height:1.42857143;display:block;padding:var(--vs-dropdown-option-padding);clear:both;color:var(--vs-dropdown-option-color);white-space:nowrap;cursor:pointer}.vs__dropdown-option--highlight{background:var(--vs-dropdown-option--active-bg);color:var(--vs-dropdown-option--active-color)}.vs__dropdown-option--deselect{background:var(--vs-dropdown-option--deselect-bg);color:var(--vs-dropdown-option--deselect-color)}.vs__dropdown-option--disabled{background:var(--vs-state-disabled-bg);color:var(--vs-state-disabled-color);cursor:var(--vs-state-disabled-cursor)}.vs__selected{display:flex;align-items:center;background-color:var(--vs-selected-bg);border:var(--vs-selected-border-width) var(--vs-selected-border-style) var(--vs-selected-border-color);border-radius:var(--vs-border-radius);color:var(--vs-selected-color);line-height:var(--vs-line-height);margin:4px 2px 0;padding:0 .25em;z-index:0}.vs__deselect{display:inline-flex;-webkit-appearance:none;-moz-appearance:none;appearance:none;margin-left:4px;padding:0;border:0;cursor:pointer;background:none;fill:var(--vs-controls-color);text-shadow:var(--vs-controls--deselect-text-shadow)}.vs--single .vs__selected{background-color:transparent;border-color:transparent}.vs--single.vs--open .vs__selected,.vs--single.vs--loading .vs__selected{position:absolute;opacity:.4}.vs--single.vs--searching .vs__selected{display:none}.vs__search::-webkit-search-cancel-button{display:none}.vs__search::-webkit-search-decoration,.vs__search::-webkit-search-results-button,.vs__search::-webkit-search-results-decoration,.vs__search::-ms-clear{display:none}.vs__search,.vs__search:focus{color:var(--vs-search-input-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;line-height:var(--vs-line-height);font-size:var(--vs-font-size);border:1px solid transparent;border-left:none;outline:none;margin:4px 0 0;padding:0 7px;background:none;box-shadow:none;width:0;max-width:100%;flex-grow:1;z-index:1}.vs__search::-moz-placeholder{color:var(--vs-search-input-placeholder-color)}.vs__search::placeholder{color:var(--vs-search-input-placeholder-color)}.vs--unsearchable .vs__search{opacity:1}.vs--unsearchable:not(.vs--disabled) .vs__search{cursor:pointer}.vs--single.vs--searching:not(.vs--open):not(.vs--loading) .vs__search{opacity:.2}.vs__spinner{align-self:center;opacity:0;font-size:5px;text-indent:-9999em;overflow:hidden;border-top:.9em solid rgba(100,100,100,.1);border-right:.9em solid rgba(100,100,100,.1);border-bottom:.9em solid rgba(100,100,100,.1);border-left:.9em solid rgba(60,60,60,.45);transform:translateZ(0) scale(var(--vs-controls--spinner-size, var(--vs-controls-size)));-webkit-animation:vSelectSpinner 1.1s infinite linear;animation:vSelectSpinner 1.1s infinite linear;transition:opacity .1s}.vs__spinner,.vs__spinner:after{border-radius:50%;width:5em;height:5em;transform:scale(var(--vs-controls--spinner-size, var(--vs-controls-size)))}.vs--loading .vs__spinner{opacity:1}#msg-template .row{width:100%;display:flex}#msg-template .row .col{flex:1 0 33%}#msg-template .row .col.disable{opacity:0}.VPHome{background:radial-gradient(transparent,rgba(0,0,0,.3)),url(/Shmily/assets/bg.csZ5PfZW.jpg);background-attachment:fixed;background-size:cover}#features[data-v-afa3b144]{margin:0 auto;max-width:1000px;background:rgba(255,255,255,.7);padding:0 20px;box-sizing:content-box;border-radius:10px;box-shadow:0 2px 12px #0000001a}#features .row[data-v-afa3b144]{justify-content:center;display:flex;padding:20px 0;border-bottom:1px solid #aaa}#features .row[data-v-afa3b144]:nth-child(2n){flex-direction:row-reverse}#features .row:nth-child(2n) .info[data-v-afa3b144]{text-align:right}#features .row[data-v-afa3b144]:last-child{border-bottom:none}#features .row .info[data-v-afa3b144]{flex:1 1 auto;display:flex;align-items:center}#features .row .info .title[data-v-afa3b144]{font-weight:700;font-size:18px}#features .row .info .content[data-v-afa3b144]{margin-bottom:20px;width:100%}#features .row .info .content p[data-v-afa3b144]{font-size:16px;margin:10px 0}#features .row .info .content .tips[data-v-afa3b144]{font-size:12px;color:#333;font-style:italic}#features .row .info .content a[data-v-afa3b144]{color:#3451b2;text-decoration:underline;padding:0 5px;font-weight:700;font-style:italic}#features .row .cover[data-v-afa3b144]{flex:0 0 auto}#features .row .cover img[data-v-afa3b144]{display:inline-block;width:100%}@media (max-width: 960px){#features .row[data-v-afa3b144]{flex-direction:column!important}#features .row .info[data-v-afa3b144],#features .row .cover[data-v-afa3b144]{text-align:center!important;padding:0!important}} diff --git a/guide/concept.html b/guide/concept.html index 1c95fa93..6091b37b 100644 --- a/guide/concept.html +++ b/guide/concept.html @@ -6,13 +6,13 @@ 理念 | Shmily - + - + @@ -29,8 +29,8 @@ / \ / \ MobileQQ: 导出数据库 -> 解密资源(图片等) 数据预处理 大数据图表 -更多来源...

              将过程分为 Get(后端采集) 和 Show(前端展示), 并细化为 4 个部分(库), 中间使用 Shimly-Msg 标准格式进行融合

              • Get
                • ExportDB 从设备导出原始数据(库)并解密
                • ToMsg 从解密数据库导出为标准数据 ${Shmily-Msg}, 并解密资源(图片等)
                  • 导出的数据为 json 格式, 并尽可能导出所有数据, 不管用没用,历史不嫌多
              • Show
                • ModifyServer 用于手动修改 数据文件添加评论
                • Web 用于最终显示 时间线大数据图表

              让过程变为 4 个部分后

              • 完全解耦, 便于各种二开造轮子, 便于各个阶段变为轮子
              • 使用现代 Web 框架组件化开发,展示上有了更多可能性. 更多 Show 的问答参考 Shmily-Show/docs/Q_A.md
              • 多种类、多批次的 Get 都可以融合在一个 Show 中时间线展示

              问题

              拆分后势必增加运行成本, 我希望通过批处理等脚本方式粘合各个库之间的运行, 尽量做到开箱即用. 也会完善文档让非程序员也能阅读明白, 如有不懂之处, 欢迎 Github 提 issues.

              感想

              花了近 3 年用 JS 写了一大堆的 Get, 我发现还是原生语言开发最方便, 如 MobileQQ 中 Java Serializable问题JS 太难了, 所以以后我还是希望由开源社区贡献与维护 Get, 我会尽力维护 Show 部分.

              数据本身就归属用户, 不提供数据导出的都是耍流氓.

          GPLv3 License.

        - +更多来源...

        将过程分为 Get(后端采集) 和 Show(前端展示), 并细化为 4 个部分(库), 中间使用 Shimly-Msg 标准格式进行融合

        • Get
          • ExportDB 从设备导出原始数据(库)并解密
          • ToMsg 从解密数据库导出为标准数据 ${Shmily-Msg}, 并解密资源(图片等)
            • 导出的数据为 json 格式, 并尽可能导出所有数据, 不管用没用,历史不嫌多
        • Show
          • ModifyServer 用于手动修改 数据文件添加评论
          • Web 用于最终显示 时间线大数据图表

        让过程变为 4 个部分后

        • 完全解耦, 便于各种二开造轮子, 便于各个阶段变为轮子
        • 使用现代 Web 框架组件化开发,展示上有了更多可能性. 更多 Show 的问答参考 Shmily-Show/docs/Q_A.md
        • 多种类、多批次的 Get 都可以融合在一个 Show 中时间线展示

        问题

        拆分后势必增加运行成本, 我希望通过批处理等脚本方式粘合各个库之间的运行, 尽量做到开箱即用. 也会完善文档让非程序员也能阅读明白, 如有不懂之处, 欢迎 Github 提 issues.

        感想

        花了近 3 年用 JS 写了一大堆的 Get, 我发现还是原生语言开发最方便, 如 MobileQQ 中 Java Serializable问题JS 太难了, 所以以后我还是希望由开源社区贡献与维护 Get, 我会尽力维护 Show 部分.

        数据本身就归属用户, 不提供数据导出的都是耍流氓.

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/other/donation.html b/guide/other/donation.html index ed34e307..c2ebe999 100644 --- a/guide/other/donation.html +++ b/guide/other/donation.html @@ -6,21 +6,21 @@ 捐赠 | Shmily - + - + -
Skip to content

捐赠

!!! 小熊猫 是世界上最可爱的动物 !!! XD

https://www.bilibili.com/video/BV1qy4y1s7SJ/


如果您觉得这个项目对你有帮助, 欢迎投币请我去动物园看 小熊猫

                            

请在备注内包含 Shmily 字样
门票公示


如果觉得太麻烦,可以付费代劳。淘宝店地址

贱的那个是 小浣熊, 萌的那个是 小熊猫

red-panda

GPLv3 License.

- +
Skip to content

捐赠

!!! 小熊猫 是世界上最可爱的动物 !!! XD

https://www.bilibili.com/video/BV1qy4y1s7SJ/


如果您觉得这个项目对你有帮助, 欢迎投币请我去动物园看 小熊猫

                            

请在备注内包含 Shmily 字样
门票公示


如果觉得太麻烦,可以付费代劳。淘宝店地址

贱的那个是 小浣熊, 萌的那个是 小熊猫

red-panda

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/other/donation_list.html b/guide/other/donation_list.html index 441fcea8..bb56357b 100644 --- a/guide/other/donation_list.html +++ b/guide/other/donation_list.html @@ -6,21 +6,21 @@ Shmily | Shmily - + - + -
Skip to content
门票公示

TIP

请在备注内包含 Shmily 字样

如有遗漏,请发送截图至 i@lqzh.me


时间姓名金额来源
2023/09/03 17:12:36*门10Wechat
2023/11/02 14:56:02**勇15Alipay
2023/11/18 14:51:42*翔10Alipay
2023/11/18 17:08:15*畅11.11Alipay
2023/11/19 01:39:48A*s5Wechat
2023/11/22 10:17:50*羊5.61Wechat
2023/11/24 19:18:28*生20Wechat
2023/12/08 09:51:19**焜50Alipay

GPLv3 License.

- +
Skip to content
门票公示

TIP

请在备注内包含 Shmily 字样

如有遗漏,请发送截图至 i@lqzh.me


时间姓名金额来源
2023/09/03 17:12:36*门10Wechat
2023/11/02 14:56:02**勇15Alipay
2023/11/18 14:51:42*翔10Alipay
2023/11/18 17:08:15*畅11.11Alipay
2023/11/19 01:39:48A*s5Wechat
2023/11/22 10:17:50*羊5.61Wechat
2023/11/24 19:18:28*生20Wechat
2023/12/08 09:51:19**焜50Alipay

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/other/thanks.html b/guide/other/thanks.html index 6a00e60d..3db7ac00 100644 --- a/guide/other/thanks.html +++ b/guide/other/thanks.html @@ -6,21 +6,21 @@ 感谢 | Shmily - + - + - - + + \ No newline at end of file diff --git a/guide/setup-runtime/Android-copy-backup.html b/guide/setup-runtime/Android-copy-backup.html index 10c0818d..7b31198f 100644 --- a/guide/setup-runtime/Android-copy-backup.html +++ b/guide/setup-runtime/Android-copy-backup.html @@ -6,21 +6,21 @@ 通过 备份 将 Android 文件复制到电脑 | Shmily - + - + -
Skip to content

通过 备份 将 Android 文件复制到电脑

GPLv3 License.

- +
Skip to content

通过 备份 将 Android 文件复制到电脑

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/setup-runtime/Android-copy-root.html b/guide/setup-runtime/Android-copy-root.html index 3b08aa8d..acda1cd7 100644 --- a/guide/setup-runtime/Android-copy-root.html +++ b/guide/setup-runtime/Android-copy-root.html @@ -6,21 +6,21 @@ 通过 root 将 Android 文件复制到电脑 | Shmily - + - + -
Skip to content

通过 root 将 Android 文件复制到电脑

  • 如果手机已 root ,通过 ftp 复制到电脑

  • 没有 root

    主体思路是通过 微信/QQ 等官方数据迁移功能把本机数据迁移到带 rootAndroid 系统内

    • 借一台有 root 的手机
    • 使用 Android 模拟器 / 虚拟机 (一般均自带 root)
      • 在手机上安装模拟器 / 虚拟机
        • 安卓虚拟机有 vmos 光速虚拟机 等
      • 在电脑上安装模拟器 / 虚拟机

GPLv3 License.

- +
Skip to content

通过 root 将 Android 文件复制到电脑

  • 如果手机已 root ,通过 ftp 复制到电脑

  • 没有 root

    主体思路是通过 微信/QQ 等官方数据迁移功能把本机数据迁移到带 rootAndroid 系统内

    • 借一台有 root 的手机
    • 使用 Android 模拟器 / 虚拟机 (一般均自带 root)
      • 在手机上安装模拟器 / 虚拟机
        • 安卓虚拟机有 vmos 光速虚拟机 等
      • 在电脑上安装模拟器 / 虚拟机

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/setup-runtime/Android-copy.html b/guide/setup-runtime/Android-copy.html index 08155319..2b9bb59a 100644 --- a/guide/setup-runtime/Android-copy.html +++ b/guide/setup-runtime/Android-copy.html @@ -6,21 +6,21 @@ Android 复制文件到电脑 | Shmily - + - + -
Skip to content

Android 复制文件到电脑

大部分应用会将自己的数据存放在手机的 保护区, 只有手机的最高管理员 root 可以访问

所以获取 保护区 文件的方式有两种

GPLv3 License.

- +
Skip to content

Android 复制文件到电脑

大部分应用会将自己的数据存放在手机的 保护区, 只有手机的最高管理员 root 可以访问

所以获取 保护区 文件的方式有两种

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/setup-runtime/Q&A-detail/cannot-find-module.html b/guide/setup-runtime/Q&A-detail/cannot-find-module.html index 4f5ec5d7..ba4f943c 100644 --- a/guide/setup-runtime/Q&A-detail/cannot-find-module.html +++ b/guide/setup-runtime/Q&A-detail/cannot-find-module.html @@ -6,13 +6,13 @@ Cannot find module ‘xxxxxx’ | Shmily - + - + @@ -40,8 +40,8 @@ ] } -Node.js v18.14.0
解决办法

nodejs 没有安装依赖, 参考 nodejs 2.安装依赖

GPLv3 License.

- +Node.js v18.14.0
解决办法

nodejs 没有安装依赖, 参考 nodejs 2.安装依赖

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/setup-runtime/Q&A.html b/guide/setup-runtime/Q&A.html index 6bef5f66..b61fd3dc 100644 --- a/guide/setup-runtime/Q&A.html +++ b/guide/setup-runtime/Q&A.html @@ -6,13 +6,13 @@ Q & A | Shmily - + - + @@ -48,8 +48,8 @@
解决办法

nodejs 没有安装依赖, 参考 nodejs 2.安装依赖

-

GPLv3 License.

- +

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/setup-runtime/docker.html b/guide/setup-runtime/docker.html index 38f0c9f3..4b162186 100644 --- a/guide/setup-runtime/docker.html +++ b/guide/setup-runtime/docker.html @@ -6,21 +6,21 @@ 开始 docker | Shmily - + - + -
Skip to content

开始 docker

  • 官网下载 docker desktop
  • 全默认下一步完成

GPLv3 License.

- +
Skip to content

开始 docker

  • 官网下载 docker desktop
  • 全默认下一步完成

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/setup-runtime/explain.html b/guide/setup-runtime/explain.html index 2b33a9f2..c3b2eb62 100644 --- a/guide/setup-runtime/explain.html +++ b/guide/setup-runtime/explain.html @@ -6,21 +6,21 @@ 说明 | Shmily - + - + -
Skip to content

说明

这里仅作为目录使用, 你不应该来到这里, 请按相应的项目文档进行

每个项目有自己所需要的运行时, 按照项目文档进行即可.

不是说这里的运行时你需要全部安装

GPLv3 License.

- +
Skip to content

说明

这里仅作为目录使用, 你不应该来到这里, 请按相应的项目文档进行

每个项目有自己所需要的运行时, 按照项目文档进行即可.

不是说这里的运行时你需要全部安装

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/setup-runtime/github-down-repo.html b/guide/setup-runtime/github-down-repo.html index e9a67c63..a1a8fd5d 100644 --- a/guide/setup-runtime/github-down-repo.html +++ b/guide/setup-runtime/github-down-repo.html @@ -6,22 +6,22 @@ Github 下载项目 | Shmily - + - + -
Skip to content

GPLv3 License.

- +
Skip to content

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/setup-runtime/java.html b/guide/setup-runtime/java.html index a7267551..e01ca7eb 100644 --- a/guide/setup-runtime/java.html +++ b/guide/setup-runtime/java.html @@ -6,21 +6,21 @@ 开始 java 项目 | Shmily - + - + -
Skip to content

开始 java 项目

  1. 官方下载安装 JDK
  2. 全默认下一步安装完成

FAQ

  • Java heap space

    添加环境变量 JAVA_OPTS=-Xmx4096m // 最大允许 JVM 使用 4G 内存

GPLv3 License.

- +
Skip to content

开始 java 项目

  1. 官方下载安装 JDK
  2. 全默认下一步安装完成

FAQ

  • Java heap space

    添加环境变量 JAVA_OPTS=-Xmx4096m // 最大允许 JVM 使用 4G 内存

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/setup-runtime/nodejs-dependencies.html b/guide/setup-runtime/nodejs-dependencies.html index c6b1b424..abb88c68 100644 --- a/guide/setup-runtime/nodejs-dependencies.html +++ b/guide/setup-runtime/nodejs-dependencies.html @@ -6,21 +6,21 @@ 安装 nodejs 项目依赖 | Shmily - + - + -
Skip to content

安装 nodejs 项目依赖

下面提供 从项目下载从本地安装 两种方式, 二选一即可

从项目下载 (建议)

从项目下载依赖

可以查看项目是否有 node_modules 分支, 如果有, 可以直接下载其中的压缩包并解压到项目目录

// 解压后项目文件夹结构
+    
Skip to content

安装 nodejs 项目依赖

下面提供 从项目下载从本地安装 两种方式, 二选一即可

从项目下载 (建议)

从项目下载依赖

可以查看项目是否有 node_modules 分支, 如果有, 可以直接下载其中的压缩包并解压到项目目录

// 解压后项目文件夹结构
 
 -\
   - node_modules
@@ -28,8 +28,8 @@
     - ...
   - package.json
   - README.md
-  - ...

从本地安装

  • 命令行打开项目目录

    • Windows 用户在地址栏输入 cmd 回车即可打开当前目录命令行 open cmd
  • 执行命令安装依赖 npm i

    npm i

    WARNING

    如果安装以来过程中大量报错,特别是有 node-gyp 字样的,建议使用 [从项目下载] 的方式解决

    其他的参考报错提示处理

GPLv3 License.

- + - ...

从本地安装

  • 命令行打开项目目录

    • Windows 用户在地址栏输入 cmd 回车即可打开当前目录命令行 open cmd
  • 执行命令安装依赖 npm i

    npm i

    WARNING

    如果安装以来过程中大量报错,特别是有 node-gyp 字样的,建议使用 [从项目下载] 的方式解决

    其他的参考报错提示处理

GPLv3 License.

+ \ No newline at end of file diff --git a/guide/setup-runtime/nodejs-start.html b/guide/setup-runtime/nodejs-start.html index 96c0acb5..36992b67 100644 --- a/guide/setup-runtime/nodejs-start.html +++ b/guide/setup-runtime/nodejs-start.html @@ -6,13 +6,13 @@ 启动 nodejs 程序 | Shmily - + - + @@ -31,8 +31,8 @@ 若 `script` 中有多个脚本名称(如上图), 一般来说,`build` 代表生产(正式),`dev` 代表测试 -执行 `npm run build` 即可
  • 若项目 package.json 中没有 script 字段, 则大多数情况下, index.js 为入口文件, 执行:

    shell
        node index.js
  • GPLv3 License.

    - +执行 `npm run build` 即可
  • 若项目 package.json 中没有 script 字段, 则大多数情况下, index.js 为入口文件, 执行:

    shell
        node index.js
  • GPLv3 License.

    + \ No newline at end of file diff --git a/guide/setup-runtime/nodejs.html b/guide/setup-runtime/nodejs.html index a16ea676..a5c49bf6 100644 --- a/guide/setup-runtime/nodejs.html +++ b/guide/setup-runtime/nodejs.html @@ -6,21 +6,21 @@ 安装 nodejs | Shmily - + - + -
    Skip to content

    安装 nodejs

    • 查看项目中 package.jsonengines 字段获取项目所需 nodejs 版本

      • 如果没有 engines 字段,从官网 https://nodejs.org/ 下载 LTS 版本
    • https://nodejs.org/dist/ 下载相应版本的 nodejs

      • Windows 平台
        • (推荐) node-v99.99.9-x64.msi 标准安装程序
        • (不推荐) node-v99.9.9-win-x64.7z / .zip 绿色版, 需要自己配置 Path 环境变量
        • (不推荐) ./win-x64/node.exe 绿色单文件, 不含 npm
    • 安装过程,选项全部默认

    GPLv3 License.

    - +
    Skip to content

    安装 nodejs

    • 查看项目中 package.jsonengines 字段获取项目所需 nodejs 版本

      • 如果没有 engines 字段,从官网 https://nodejs.org/ 下载 LTS 版本
    • https://nodejs.org/dist/ 下载相应版本的 nodejs

      • Windows 平台
        • (推荐) node-v99.99.9-x64.msi 标准安装程序
        • (不推荐) node-v99.9.9-win-x64.7z / .zip 绿色版, 需要自己配置 Path 环境变量
        • (不推荐) ./win-x64/node.exe 绿色单文件, 不含 npm
    • 安装过程,选项全部默认

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/setup-runtime/php.html b/guide/setup-runtime/php.html index 21192d49..962dad21 100644 --- a/guide/setup-runtime/php.html +++ b/guide/setup-runtime/php.html @@ -6,21 +6,21 @@ 开始 PHP 项目 | Shmily - + - + -
    Skip to content

    开始 PHP 项目

    1. 官网 下载 PHP

      Windows 下载 VS16 x64 Thread Safe .zip 就行了

    2. 解压 .zipD:\php
    3. 确认 D:\php\php.exe 存在
    4. Win+R快捷键打开 运行, 输入 sysdm.cpl 并执行
    5. 选择 高级 环境变量
    6. 选择 Path,新增一行 D:\php
    7. 确认关闭窗口

    php

    GPLv3 License.

    - +
    Skip to content

    开始 PHP 项目

    1. 官网 下载 PHP

      Windows 下载 VS16 x64 Thread Safe .zip 就行了

    2. 解压 .zipD:\php
    3. 确认 D:\php\php.exe 存在
    4. Win+R快捷键打开 运行, 输入 sysdm.cpl 并执行
    5. 选择 高级 环境变量
    6. 选择 Path,新增一行 D:\php
    7. 确认关闭窗口

    php

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/setup-runtime/python.html b/guide/setup-runtime/python.html index 121b8126..3cc10071 100644 --- a/guide/setup-runtime/python.html +++ b/guide/setup-runtime/python.html @@ -6,22 +6,22 @@ 开始 Python 项目 | Shmily - + - + -
    Skip to content

    开始 Python 项目

    1. 安装 python

    • 进入官网下载

    • 勾选 Add python.exe to PATH

      python add path

    • 全默认 下一步 完成

    2. 安装项目依赖

    • 命令行打开项目目录
      • Windows 用户在地址栏输入 cmd 回车即可打开当前目录命令行 open cmd

      • 执行命令安装依赖

      shell
      pip install -r requirements.txt

    3.启动程序

    WARNING

    项目启动方式并不唯一, 下面为常用的项目启动方式, 仅供参考

    • 按照项目说明启动程序

    • 若无说明, 一般 main.py 为入口文件

      shell
          python main.py

    GPLv3 License.

    - +
    Skip to content

    开始 Python 项目

    1. 安装 python

    • 进入官网下载

    • 勾选 Add python.exe to PATH

      python add path

    • 全默认 下一步 完成

    2. 安装项目依赖

    • 命令行打开项目目录
      • Windows 用户在地址栏输入 cmd 回车即可打开当前目录命令行 open cmd

      • 执行命令安装依赖

      shell
      pip install -r requirements.txt

    3.启动程序

    WARNING

    项目启动方式并不唯一, 下面为常用的项目启动方式, 仅供参考

    • 按照项目说明启动程序

    • 若无说明, 一般 main.py 为入口文件

      shell
          python main.py

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/setup-runtime/snippets/open_cmd.html b/guide/setup-runtime/snippets/open_cmd.html index e8b130c3..3399cb5e 100644 --- a/guide/setup-runtime/snippets/open_cmd.html +++ b/guide/setup-runtime/snippets/open_cmd.html @@ -6,22 +6,22 @@ Shmily | Shmily - + - + -
    Skip to content
    • 命令行打开项目目录
      • Windows 用户在地址栏输入 cmd 回车即可打开当前目录命令行 open cmd

    GPLv3 License.

    - +
    Skip to content
    • 命令行打开项目目录
      • Windows 用户在地址栏输入 cmd 回车即可打开当前目录命令行 open cmd

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/use/begin.html b/guide/use/begin.html index a11d5cc0..75b752e7 100644 --- a/guide/use/begin.html +++ b/guide/use/begin.html @@ -6,7 +6,7 @@ 开始吧 | Shmily - + @@ -15,7 +15,7 @@ - + @@ -43,8 +43,8 @@ - ... <-- 其他过程文件及日志 - index.js - package.json - - README.md

    4. 其他说明

    以上是一个 Github 项目运行的完整流程

    以通过 Shmily 导出 电脑QQ聊天记录 为例, 至少需要运行两个 Github 项目,

    1. Get 获取数据, https://github.com/lqzhgood/Shmily-Get-QQ-PC_MHT

      得到 数据文件(data)资源文件(QQ_PC_MHT-12345678-20230101.json)

    2. Show 显示数据, https://github.com/lqzhgood/Shmily-Show/

      使用 Get 得到的 "文件" 生成最后的 "显示" 结果

    你可通过多个 Get 获取多个 "文件", 同时导入 Show 获得集中 "显示" 结果

    视频教程

    施工中....

    3 / 21 // 2023-12-05

    开始项目

    大致步骤

    Get(获取数据) ---> Merger(合并数据) ---> Show(展示数据)

    TIP

    大多数情况下 Merger(合并数据) 可以跳过

    1. Get-获取数据

    参考 Get 文档

    2. Merger-合并数据 (可选)

    参考 Merger 文档

    3. Show-展示数据

    参考 Show 文档

    GPLv3 License.

    - + - README.md

    4. 其他说明

    以上是一个 Github 项目运行的完整流程

    以通过 Shmily 导出 电脑QQ聊天记录 为例, 至少需要运行两个 Github 项目,

    1. Get 获取数据, https://github.com/lqzhgood/Shmily-Get-QQ-PC_MHT

      得到 数据文件(data)资源文件(QQ_PC_MHT-12345678-20230101.json)

    2. Show 显示数据, https://github.com/lqzhgood/Shmily-Show/

      使用 Get 得到的 "文件" 生成最后的 "显示" 结果

    你可通过多个 Get 获取多个 "文件", 同时导入 Show 获得集中 "显示" 结果

    视频教程

    施工中....

    3 / 21 // 2023-12-05

    开始项目

    大致步骤

    Get(获取数据) ---> Merger(合并数据) ---> Show(展示数据)

    TIP

    大多数情况下 Merger(合并数据) 可以跳过

    1. Get-获取数据

    参考 Get 文档

    2. Merger-合并数据 (可选)

    参考 Merger 文档

    3. Show-展示数据

    参考 Show 文档

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/use/data.html b/guide/use/data.html index 88dd27c6..61202961 100644 --- a/guide/use/data.html +++ b/guide/use/data.html @@ -6,21 +6,21 @@ 资源文件 | Shmily - + - + -
    Skip to content

    资源文件

    路径说明

    资源文件路径为 /data/$rootPath/$type/$file, 例如 /data/Wechat-20200101/img/123.jpg

    其中 $rootPath 可以在 Get 项目的 config.js 配置.

    修改补充

    如资源错误或补充, 可以通过 Web ModifyServer 手动修改, 上传的文件会放置到 manual 下, 如 /data/Wechat-20200101/img/manual/123.jpg

    评论资源

    评论资源会通过 Web ModifyServer 上传到 /data/comment/$msgId/123.jpg

    GPLv3 License.

    - +
    Skip to content

    资源文件

    路径说明

    资源文件路径为 /data/$rootPath/$type/$file, 例如 /data/Wechat-20200101/img/123.jpg

    其中 $rootPath 可以在 Get 项目的 config.js 配置.

    修改补充

    如资源错误或补充, 可以通过 Web ModifyServer 手动修改, 上传的文件会放置到 manual 下, 如 /data/Wechat-20200101/img/manual/123.jpg

    评论资源

    评论资源会通过 Web ModifyServer 上传到 /data/comment/$msgId/123.jpg

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/use/draft.html b/guide/use/draft.html index c1fb1187..8463d0e9 100644 --- a/guide/use/draft.html +++ b/guide/use/draft.html @@ -6,22 +6,22 @@ Shmily | Shmily - + - + -
    Skip to content

    2. 安装项目运行时环境

    根据不同的项目语言安装不同的运行时环境, Github 会自动标注主要语言 what-languages

    也可以按照下面列出的特性, 安装对应语言的运行时

    • nodejs (项目中有 package.json 文件)

    • python (大量 .py 后缀文件)

    • java (大量 .java 后缀文件)

    GPLv3 License.

    - +
    Skip to content

    2. 安装项目运行时环境

    根据不同的项目语言安装不同的运行时环境, Github 会自动标注主要语言 what-languages

    也可以按照下面列出的特性, 安装对应语言的运行时

    • nodejs (项目中有 package.json 文件)

    • python (大量 .py 后缀文件)

    • java (大量 .java 后缀文件)

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/use/get.html b/guide/use/get.html index e042e6a8..c92cc3a0 100644 --- a/guide/use/get.html +++ b/guide/use/get.html @@ -6,13 +6,13 @@ Get | Shmily - + - + @@ -35,8 +35,8 @@ - XXXX.json

    GPLv3 License.

    - +

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/use/merger.html b/guide/use/merger.html index 18f499dd..dfc7298a 100644 --- a/guide/use/merger.html +++ b/guide/use/merger.html @@ -6,21 +6,21 @@ Merger | Shmily - + - + -
    Skip to content

    Merger

    用来对 不同来源(Get), 相同内容数据文件 合并去重

    如通过 Android 短信 导出了 2010-2015 的短信, QQ 同步助手 导出了 2013-2018 的短信

    可以通过此工具去重 2013-2015 年的部分.

    DANGER

    !!! 如可以接受重复内容, 或多个 数据文件 不含重复内容, 不需要运行此项目 !!!

    支持列表

    • SMS CallLog 短信与通话记录

    GPLv3 License.

    - +
    Skip to content

    Merger

    用来对 不同来源(Get), 相同内容数据文件 合并去重

    如通过 Android 短信 导出了 2010-2015 的短信, QQ 同步助手 导出了 2013-2018 的短信

    可以通过此工具去重 2013-2015 年的部分.

    DANGER

    !!! 如可以接受重复内容, 或多个 数据文件 不含重复内容, 不需要运行此项目 !!!

    支持列表

    • SMS CallLog 短信与通话记录

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/use/msg/custom.html b/guide/use/msg/custom.html index cbf6e8bb..36f34478 100644 --- a/guide/use/msg/custom.html +++ b/guide/use/msg/custom.html @@ -6,13 +6,13 @@ 自定义 | Shmily - + - + @@ -40,8 +40,8 @@ } $Dev: {} // 开发中需要用到的数据,Show 生成数据时会被删除 -}
    1. 标准 格式之外,将数据放入 $source
    2. Shmily-Show 项目 memoryweb/src/components/Msg/source 下新增前端组件用于显示数据
      • 如果您对前端不熟悉,可以在 issue 中提出并提供样本 Msg 我来代劳~

    GPLv3 License.

    - +}
    1. 标准 格式之外,将数据放入 $source
    2. Shmily-Show 项目 memoryweb/src/components/Msg/source 下新增前端组件用于显示数据
      • 如果您对前端不熟悉,可以在 issue 中提出并提供样本 Msg 我来代劳~

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/use/msg/other/emotion.html b/guide/use/msg/other/emotion.html index a6a78c14..26ebc32d 100644 --- a/guide/use/msg/other/emotion.html +++ b/guide/use/msg/other/emotion.html @@ -6,13 +6,13 @@ 表情 | Shmily - + - + @@ -37,8 +37,8 @@ "rootPath": 'qq-android-lqzh-20230101' ... } -}

    可以参考 wechat 的函数进行统计

    新类型

    如果是新的 Get 类型,需要在 这里 补充统计函数

    表情数据的一些说明

    正向导出

    Wechat、MobileQQ 可以直接从数据库中获取表情的 packNamedesc 等值,这样的就很简单,直接导出即可。

    反向匹配

    如 PC-QQ 无法导出表情类型的消息,更无法获取 packNamedesc,所以所有表情都被视为图片类型被导出

    这种情况可以自己收集表情包,根据表情的 MD5 去匹配导出的图片,从而修正图片类型并补充 packNamedesc

    这是个苦力活,可以参考 Shmily-Get-QQ-PC-MHT 的表情文件集合,和 Show-Modify-msg 辅助的实现。

    GPLv3 License.

    - +}

    可以参考 wechat 的函数进行统计

    新类型

    如果是新的 Get 类型,需要在 这里 补充统计函数

    表情数据的一些说明

    正向导出

    Wechat、MobileQQ 可以直接从数据库中获取表情的 packNamedesc 等值,这样的就很简单,直接导出即可。

    反向匹配

    如 PC-QQ 无法导出表情类型的消息,更无法获取 packNamedesc,所以所有表情都被视为图片类型被导出

    这种情况可以自己收集表情包,根据表情的 MD5 去匹配导出的图片,从而修正图片类型并补充 packNamedesc

    这是个苦力活,可以参考 Shmily-Get-QQ-PC-MHT 的表情文件集合,和 Show-Modify-msg 辅助的实现。

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/use/msg/schema.html b/guide/use/msg/schema.html index 7ff98851..184723fe 100644 --- a/guide/use/msg/schema.html +++ b/guide/use/msg/schema.html @@ -6,13 +6,13 @@ 数据文件-Msg | Shmily - + - + @@ -115,8 +115,8 @@ "id": "camera.json_2009-09-25_10-33-02_g_11e351_1", // 所有消息合并后, 按时间线排序第几条消息 "index": 123 -}]

    因为项目持续了近 3 年, 所以我写的很多早期 Get 并未遵循以上标准, 我会慢慢重构的.

    GPLv3 License.

    - +}]

    因为项目持续了近 3 年, 所以我写的很多早期 Get 并未遵循以上标准, 我会慢慢重构的.

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/use/msg/template/index.html b/guide/use/msg/template/index.html index 1c57d153..5a52d43c 100644 --- a/guide/use/msg/template/index.html +++ b/guide/use/msg/template/index.html @@ -6,21 +6,21 @@ 数据文件-Msg 示例 | Shmily - + - + -
    Skip to content

    数据文件-Msg 示例

    示例有以下几种查看方式

    源码 (推荐)

    最及时最可靠

    Shmily-Show 项目 memoryweb/src/components/Msg/source 下查看组件源码

    Demo

    更新不及时

    js
    []

    Demo 链接 筛选查看

    from demo web

    GPLv3 License.

    - +
    Skip to content

    数据文件-Msg 示例

    示例有以下几种查看方式

    源码 (推荐)

    最及时最可靠

    Shmily-Show 项目 memoryweb/src/components/Msg/source 下查看组件源码

    Demo

    更新不及时

    js
    []

    Demo 链接 筛选查看

    from demo web

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/use/show.html b/guide/use/show.html index 002b894b..a8cc2836 100644 --- a/guide/use/show.html +++ b/guide/use/show.html @@ -6,21 +6,21 @@ Show | Shmily - + - + -
    Skip to content

    GPLv3 License.

    - +
    Skip to content

    GPLv3 License.

    + \ No newline at end of file diff --git a/guide/what-is.html b/guide/what-is.html index 7e3f96e6..6d341d87 100644 --- a/guide/what-is.html +++ b/guide/what-is.html @@ -6,21 +6,21 @@ 这是啥 | Shmily - + - + -
    Skip to content

    这是啥

    一个悲伤的故事

    我想归档 QQ 微信 短信等记录为冷数据, 搜了一圈发现并没有符合以下条件的方案

    • QQ 微信 等记录能融合, 并用时间线查看
    • 支持搜索过滤查询
    • 可以给消息评论
    • 有图表分析

    然后开始自己造轮子, 以为很简单的项目, 陆陆续续搞了近 3 年, 主要是各种解密难度超乎想象~

    吐槽, 什么让摩尔定律停下脚步? 什么让手机电量锁死一天?

    手机忙得最多的就是加解密吧... 表情包都要加密 2 次呢

    总之我把 归档 这事 "导出" 和 "显示" 分离了, 导出叫 Get, 显示叫 Show, 中间用 <JSON>Msg 粘合

    少啰嗦,先看Demo

     

    最后

    不支持用户数据导出的公司都是耍流氓~

    Adun Toridas

    今天,我们将夺回我们的家园,夺回我们的遗产!

    GPLv3 License.

    - +
    Skip to content

    这是啥

    一个悲伤的故事

    我想归档 QQ 微信 短信等记录为冷数据, 搜了一圈发现并没有符合以下条件的方案

    • QQ 微信 等记录能融合, 并用时间线查看
    • 支持搜索过滤查询
    • 可以给消息评论
    • 有图表分析

    然后开始自己造轮子, 以为很简单的项目, 陆陆续续搞了近 3 年, 主要是各种解密难度超乎想象~

    吐槽, 什么让摩尔定律停下脚步? 什么让手机电量锁死一天?

    手机忙得最多的就是加解密吧... 表情包都要加密 2 次呢

    总之我把 归档 这事 "导出" 和 "显示" 分离了, 导出叫 Get, 显示叫 Show, 中间用 <JSON>Msg 粘合

    少啰嗦,先看Demo

     

    最后

    不支持用户数据导出的公司都是耍流氓~

    Adun Toridas

    今天,我们将夺回我们的家园,夺回我们的遗产!

    GPLv3 License.

    + \ No newline at end of file diff --git a/hashmap.json b/hashmap.json index bfc0dbc9..2ee59515 100644 --- a/hashmap.json +++ b/hashmap.json @@ -1 +1 @@ -{"guide_setup-runtime_github-down-repo.md":"iI-h6ls0","guide_use_msg_custom.md":"w6qzHdoi","guide_other_donation_list.md":"xNDgYRF0","guide_setup-runtime_snippets_open_cmd.md":"e80MxsGJ","guide_setup-runtime_java.md":"Ksvdyy3u","guide_setup-runtime_q_a.md":"2NV4A0OL","guide_setup-runtime_docker.md":"6bq6fQPT","guide_setup-runtime_nodejs.md":"ilICkwCA","guide_use_data.md":"V__0RKc0","guide_setup-runtime_nodejs-start.md":"sNuln6Z4","guide_use_draft.md":"CuByP_zL","guide_use_merger.md":"KWJBjMd2","guide_setup-runtime_explain.md":"bIvV2_7J","guide_use_get.md":"QlXP30Lc","guide_setup-runtime_python.md":"q6ttjoo3","guide_setup-runtime_android-copy-backup.md":"wmQkiVtM","guide_setup-runtime_android-copy-root.md":"s3AWHdim","guide_other_thanks.md":"sBNOhjzW","guide_concept.md":"RKMPXeHd","guide_other_donation.md":"dDEMVJDf","guide_setup-runtime_q_a-detail_cannot-find-module.md":"biNWb_x6","guide_setup-runtime_android-copy.md":"nRnBfa2G","guide_setup-runtime_nodejs-dependencies.md":"tT_2JLr_","guide_use_msg_schema.md":"jb_g8Jdr","guide_use_begin.md":"I9Te-UaB","guide_use_msg_other_emotion.md":"clpup_XS","guide_setup-runtime_php.md":"2Q-Ebvpc","guide_what-is.md":"qmdUIfZU","index.md":"K3KJT1f7","guide_use_show.md":"-wak-BBR","guide_use_msg_template_index.md":"jDcaqZOW"} +{"guide_other_donation_list.md":"h2zsLLQl","guide_setup-runtime_android-copy-root.md":"v-heR5pb","guide_setup-runtime_android-copy.md":"SohI2apN","guide_setup-runtime_q_a-detail_cannot-find-module.md":"EHlTQtGf","guide_other_donation.md":"5hp_Kq1j","guide_setup-runtime_github-down-repo.md":"a2Wx6AXA","guide_setup-runtime_q_a.md":"jZDAajzR","guide_setup-runtime_nodejs-dependencies.md":"F3e8-aCO","guide_setup-runtime_java.md":"1ehMV8VO","guide_setup-runtime_nodejs-start.md":"QmhtpvXa","guide_setup-runtime_nodejs.md":"-6lsOI5F","guide_setup-runtime_php.md":"8oYYxe0g","guide_setup-runtime_snippets_open_cmd.md":"rsY14opZ","guide_setup-runtime_python.md":"7ojeoCia","guide_use_draft.md":"UO0KL1Fz","guide_use_merger.md":"dg-gZtvy","guide_use_get.md":"dQXlbHXd","guide_use_msg_custom.md":"LAA3TnV7","guide_concept.md":"hLFViWvT","guide_setup-runtime_android-copy-backup.md":"fE73KaVh","guide_setup-runtime_docker.md":"HcNO74Wg","guide_use_begin.md":"nOO-Da45","guide_setup-runtime_explain.md":"EaE8qoZ2","guide_other_thanks.md":"GPHXons8","guide_use_data.md":"89T9rgLC","guide_what-is.md":"EXcVqvCg","guide_use_show.md":"0CIkNyD6","guide_use_msg_schema.md":"Qb3Ltl7I","guide_use_msg_other_emotion.md":"GFV8kgTj","index.md":"Am8pU6wq","guide_use_msg_template_index.md":"803B_R4g"} diff --git a/index.html b/index.html index 13d2c761..43fa3cd1 100644 --- a/index.html +++ b/index.html @@ -6,21 +6,21 @@ Shmily | Shmily - + - + -
    Skip to content

    SHMILY

    历史的归档

    QQ、Wechat、SMS、CallLog、Email……

    icon

    类型多 平台全

    QQ、MobileQQ、微信、通话记录、短信、照片视频、Email等各种类型

    * 甚至 Nokia Symbian S60v3 的 MobileQQ 和 短信都可以!

    以前导出的能合并

    支持将以前导出的数据和现在合并

    历史不再断代

    * 如2013年导出记录(2000-2013)可以
    和2020年导出记录(2007-2020)合并
    在同一时间线查看

    支持搜索和筛选

    关键词(支持正则)搜索

    * 搜索支持正则,人物支持分组

    * 极致优化,240M数据复杂搜索100ms内出结果

    还有评论和引用

    时间的长河有感而发?添加一条评论或打上一个Tag吧

    引用的消息也会转化为双向链接可快速跳转

    * 评论也可以搜索哦

    图表与统计

    不想看看各种维度的大数据么?

    * 评论里的 Tag 也有统计,开心的次数不能少

    开发

    深入底层优化,240M数据纯前端静态处理

    你还想要归档钉钉?导出(Get)、显示(Show)分离,你可以在任意阶段发力

    标准化、模块化、组件化,开发更容易

    数据字段全导出,总有你能用上的

    数据库导出、解密转换、合并清洗全过程解耦,拆开都是小轮子,自己的车装上就能跑

    GPLv3 License.

    - +
    Skip to content

    SHMILY

    历史的归档

    QQ、Wechat、SMS、CallLog、Email……

    icon

    类型多 平台全

    QQ、MobileQQ、微信、通话记录、短信、照片视频、Email等各种类型

    * 甚至 Nokia Symbian S60v3 的 MobileQQ 和 短信都可以!

    以前导出的能合并

    支持将以前导出的数据和现在合并

    历史不再断代

    * 如2013年导出记录(2000-2013)可以
    和2020年导出记录(2007-2020)合并
    在同一时间线查看

    支持搜索和筛选

    关键词(支持正则)搜索

    * 搜索支持正则,人物支持分组

    * 极致优化,240M数据复杂搜索100ms内出结果

    还有评论和引用

    时间的长河有感而发?添加一条评论或打上一个Tag吧

    引用的消息也会转化为双向链接可快速跳转

    * 评论也可以搜索哦

    图表与统计

    不想看看各种维度的大数据么?

    * 评论里的 Tag 也有统计,开心的次数不能少

    开发

    深入底层优化,240M数据纯前端静态处理

    你还想要归档钉钉?导出(Get)、显示(Show)分离,你可以在任意阶段发力

    标准化、模块化、组件化,开发更容易

    数据字段全导出,总有你能用上的

    数据库导出、解密转换、合并清洗全过程解耦,拆开都是小轮子,自己的车装上就能跑

    GPLv3 License.

    + \ No newline at end of file