From 14f6fd4f23c20b22b695a3712f022ce92a1a3b14 Mon Sep 17 00:00:00 2001 From: archos Date: Sun, 16 Jun 2024 20:14:43 +0200 Subject: [PATCH] Web deployment configuration added --- 404.html | 32 ++ apple-touch-icon.png | Bin 0 -> 1796 bytes assets/boosts-carousel-YjmjXTE6.jpg | Bin 0 -> 42334 bytes assets/catch-up-DuauQu-W.png | Bin 0 -> 25410 bytes assets/compose-GEsXl1Xt.js | 2 + assets/compose-GEsXl1Xt.js.map | 1 + assets/compose-W5mt71Ut.js | 26 ++ assets/compose-W5mt71Ut.js.map | 1 + assets/grouped-notifications-xYMFVY91.jpg | Bin 0 -> 63031 bytes assets/icons/add-circle-line--O-MfyNy.js | 2 + assets/icons/add-circle-line--O-MfyNy.js.map | 1 + assets/icons/alert-line-zyc6hy8V.js | 2 + assets/icons/alert-line-zyc6hy8V.js.map | 1 + assets/icons/android-2-line-uPwvVubH.js | 2 + assets/icons/android-2-line-uPwvVubH.js.map | 1 + assets/icons/announcement-line-MSlAmDH1.js | 2 + .../icons/announcement-line-MSlAmDH1.js.map | 1 + .../icons/arrow-down-circle-line-mpqFtRtO.js | 2 + .../arrow-down-circle-line-mpqFtRtO.js.map | 1 + assets/icons/arrow-down-line-0TRJUP_K.js | 2 + assets/icons/arrow-down-line-0TRJUP_K.js.map | 1 + assets/icons/arrow-left-line-_YC6-XGG.js | 2 + assets/icons/arrow-left-line-_YC6-XGG.js.map | 1 + assets/icons/arrow-right-line-PypiEqpu.js | 2 + assets/icons/arrow-right-line-PypiEqpu.js.map | 1 + assets/icons/arrow-up-circle-line-e3kZqEZN.js | 2 + .../arrow-up-circle-line-e3kZqEZN.js.map | 1 + assets/icons/arrow-up-line-fcuKqhVE.js | 2 + assets/icons/arrow-up-line-fcuKqhVE.js.map | 1 + assets/icons/arrows-down-line-ovOF9r0o.js | 2 + assets/icons/arrows-down-line-ovOF9r0o.js.map | 1 + assets/icons/arrows-right-line-HF4HILdT.js | 2 + .../icons/arrows-right-line-HF4HILdT.js.map | 1 + assets/icons/at-line-9vJS_Hnl.js | 2 + assets/icons/at-line-9vJS_Hnl.js.map | 1 + assets/icons/attachment-line-C2PUa1Ke.js | 2 + assets/icons/attachment-line-C2PUa1Ke.js.map | 1 + assets/icons/bookmark-line-D6jQ7QFs.js | 2 + assets/icons/bookmark-line-D6jQ7QFs.js.map | 1 + assets/icons/building-5-line-ew7lu83B.js | 2 + assets/icons/building-5-line-ew7lu83B.js.map | 1 + assets/icons/bus-2-line-XuQdDZ_w.js | 2 + assets/icons/bus-2-line-XuQdDZ_w.js.map | 1 + assets/icons/calendar-month-line-VoXZVWAe.js | 2 + .../icons/calendar-month-line-VoXZVWAe.js.map | 1 + assets/icons/chart-bar-line-5r_DfN2w.js | 2 + assets/icons/chart-bar-line-5r_DfN2w.js.map | 1 + assets/icons/chart-line-line-pHaLt6yC.js | 2 + assets/icons/chart-line-line-pHaLt6yC.js.map | 1 + assets/icons/chat-3-line-F0xcdpXY.js | 2 + assets/icons/chat-3-line-F0xcdpXY.js.map | 1 + assets/icons/check-circle-line-sE41WGxF.js | 2 + .../icons/check-circle-line-sE41WGxF.js.map | 1 + assets/icons/clipboard-line-9F_Yeo71.js | 2 + assets/icons/clipboard-line-9F_Yeo71.js.map | 1 + assets/icons/close-circle-line-qd3g541O.js | 2 + .../icons/close-circle-line-qd3g541O.js.map | 1 + assets/icons/close-line-YTE7hIJE.js | 2 + assets/icons/close-line-YTE7hIJE.js.map | 1 + assets/icons/cloud-line-abe0HgFS.js | 2 + assets/icons/cloud-line-abe0HgFS.js.map | 1 + assets/icons/code-line-h4RWLaak.js | 2 + assets/icons/code-line-h4RWLaak.js.map | 1 + assets/icons/comment-2-line-xEXuT-Ip.js | 2 + assets/icons/comment-2-line-xEXuT-Ip.js.map | 1 + assets/icons/copy-2-line-mPSDKieb.js | 2 + assets/icons/copy-2-line-mPSDKieb.js.map | 1 + assets/icons/delete-2-line-pjUduCFs.js | 2 + assets/icons/delete-2-line-pjUduCFs.js.map | 1 + assets/icons/document-line--D6ooZg1.js | 2 + assets/icons/document-line--D6ooZg1.js.map | 1 + assets/icons/down-line-9PeS5YhF.js | 2 + assets/icons/down-line-9PeS5YhF.js.map | 1 + assets/icons/earth-line-t1Um8wpQ.js | 2 + assets/icons/earth-line-t1Um8wpQ.js.map | 1 + assets/icons/emoji-2-line--uNVc2IC.js | 2 + assets/icons/emoji-2-line--uNVc2IC.js.map | 1 + assets/icons/exit-line-l-1uUgI7.js | 2 + assets/icons/exit-line-l-1uUgI7.js.map | 1 + assets/icons/external-link-line-8nOOkmFu.js | 2 + .../icons/external-link-line-8nOOkmFu.js.map | 1 + assets/icons/eye-2-line-vz_Kw-rK.js | 2 + assets/icons/eye-2-line-vz_Kw-rK.js.map | 1 + assets/icons/eye-close-line-lBiePPv9.js | 2 + assets/icons/eye-close-line-lBiePPv9.js.map | 1 + assets/icons/filter-2-line-KyjbFYlO.js | 2 + assets/icons/filter-2-line-KyjbFYlO.js.map | 1 + assets/icons/filter-line-1KEfnWDm.js | 2 + assets/icons/filter-line-1KEfnWDm.js.map | 1 + assets/icons/flag-1-line-xvcg7G7Q.js | 2 + assets/icons/flag-1-line-xvcg7G7Q.js.map | 1 + assets/icons/forbid-circle-line-3FxopGoP.js | 2 + .../icons/forbid-circle-line-3FxopGoP.js.map | 1 + assets/icons/group-line-JvhJklhQ.js | 2 + assets/icons/group-line-JvhJklhQ.js.map | 1 + assets/icons/hashtag-line-SS3QMu1R.js | 2 + assets/icons/hashtag-line-SS3QMu1R.js.map | 1 + assets/icons/heart-crack-line-P3DoKfTT.js | 2 + assets/icons/heart-crack-line-P3DoKfTT.js.map | 1 + assets/icons/heart-line-VwvWYh8h.js | 2 + assets/icons/heart-line-VwvWYh8h.js.map | 1 + assets/icons/history-2-line-3yIVzoWo.js | 2 + assets/icons/history-2-line-3yIVzoWo.js.map | 1 + assets/icons/history-line-yoG7K8wL.js | 2 + assets/icons/history-line-yoG7K8wL.js.map | 1 + assets/icons/home-3-line-qJiZhXUH.js | 2 + assets/icons/home-3-line-qJiZhXUH.js.map | 1 + assets/icons/information-line-8SOch6cR.js | 2 + assets/icons/information-line-8SOch6cR.js.map | 1 + assets/icons/keyboard-line-10AZQcVH.js | 2 + assets/icons/keyboard-line-10AZQcVH.js.map | 1 + assets/icons/layout-4-line-FOdnyEcZ.js | 2 + assets/icons/layout-4-line-FOdnyEcZ.js.map | 1 + assets/icons/layout-5-line-9Kks7dle.js | 2 + assets/icons/layout-5-line-9Kks7dle.js.map | 1 + assets/icons/left-line-Jck0yVmC.js | 2 + assets/icons/left-line-Jck0yVmC.js.map | 1 + assets/icons/lightning-line-JMYUlCZM.js | 2 + assets/icons/lightning-line-JMYUlCZM.js.map | 1 + assets/icons/link-2-line-BUqp1EwN.js | 2 + assets/icons/link-2-line-BUqp1EwN.js.map | 1 + assets/icons/list-check-line-qNqx9Mm4.js | 2 + assets/icons/list-check-line-qNqx9Mm4.js.map | 1 + assets/icons/lock-line-0jNHqZpm.js | 2 + assets/icons/lock-line-0jNHqZpm.js.map | 1 + assets/icons/mail-line-5XLS6FEo.js | 2 + assets/icons/mail-line-5XLS6FEo.js.map | 1 + assets/icons/more-1-fill-je1-slyh.js | 2 + assets/icons/more-1-fill-je1-slyh.js.map | 1 + assets/icons/more-3-line-wUD-Yhmj.js | 2 + assets/icons/more-3-line-wUD-Yhmj.js.map | 1 + assets/icons/notification-line-olNPLtgS.js | 2 + .../icons/notification-line-olNPLtgS.js.map | 1 + assets/icons/pencil-line-bKXqElLR.js | 2 + assets/icons/pencil-line-bKXqElLR.js.map | 1 + assets/icons/photo-album-line--GdJqjfq.js | 2 + assets/icons/photo-album-line--GdJqjfq.js.map | 1 + assets/icons/pin-line-ULyRQyWZ.js | 2 + assets/icons/pin-line-ULyRQyWZ.js.map | 1 + assets/icons/play-fill-Ey-zv2eL.js | 2 + assets/icons/play-fill-Ey-zv2eL.js.map | 1 + assets/icons/quill-pen-line-h_5-FsGz.js | 2 + assets/icons/quill-pen-line-h_5-FsGz.js.map | 1 + assets/icons/quote-left-line-NQzeELMO.js | 2 + assets/icons/quote-left-line-NQzeELMO.js.map | 1 + assets/icons/radar-line-ndI8IhOG.js | 2 + assets/icons/radar-line-ndI8IhOG.js.map | 1 + assets/icons/react-line-YfZPqZem.js | 2 + assets/icons/react-line-YfZPqZem.js.map | 1 + assets/icons/refresh-2-line-t42qqclb.js | 2 + assets/icons/refresh-2-line-t42qqclb.js.map | 1 + assets/icons/right-line-7VBoqLdz.js | 2 + assets/icons/right-line-7VBoqLdz.js.map | 1 + assets/icons/rocket-line-rZbVYYCZ.js | 2 + assets/icons/rocket-line-rZbVYYCZ.js.map | 1 + assets/icons/round-fill-a0rplSmV.js | 2 + assets/icons/round-fill-a0rplSmV.js.map | 1 + assets/icons/route-line-2YYy3958.js | 2 + assets/icons/route-line-2YYy3958.js.map | 1 + assets/icons/rows-4-line-SxGPYpTa.js | 2 + assets/icons/rows-4-line-SxGPYpTa.js.map | 1 + assets/icons/search-2-line-G39AynEw.js | 2 + assets/icons/search-2-line-G39AynEw.js.map | 1 + assets/icons/settings-3-line-kt4MSpRv.js | 2 + assets/icons/settings-3-line-kt4MSpRv.js.map | 1 + assets/icons/settings-6-line-ZgCBilgF.js | 2 + assets/icons/settings-6-line-ZgCBilgF.js.map | 1 + assets/icons/share-2-line-PYo-zN94.js | 2 + assets/icons/share-2-line-PYo-zN94.js.map | 1 + assets/icons/share-forward-line-4jL-2Q4u.js | 2 + .../icons/share-forward-line-4jL-2Q4u.js.map | 1 + assets/icons/sparkles-2-line-g2FqdZ0R.js | 2 + assets/icons/sparkles-2-line-g2FqdZ0R.js.map | 1 + assets/icons/sparkles-line-wjZWGZ1a.js | 2 + assets/icons/sparkles-line-wjZWGZ1a.js.map | 1 + assets/icons/time-line-ThP0kTRr.js | 2 + assets/icons/time-line-ThP0kTRr.js.map | 1 + assets/icons/transfer-4-line-Q9QJoxz3.js | 2 + assets/icons/transfer-4-line-Q9QJoxz3.js.map | 1 + assets/icons/translate-line-HpDtlqS2.js | 2 + assets/icons/translate-line-HpDtlqS2.js.map | 1 + assets/icons/unlock-line-w3piJMVb.js | 2 + assets/icons/unlock-line-w3piJMVb.js.map | 1 + assets/icons/upload-3-line-Qsjvubiw.js | 2 + assets/icons/upload-3-line-Qsjvubiw.js.map | 1 + assets/icons/user-4-line-zT_bpOrS.js | 2 + assets/icons/user-4-line-zT_bpOrS.js.map | 1 + assets/icons/user-add-line-zzW9OULB.js | 2 + assets/icons/user-add-line-zzW9OULB.js.map | 1 + assets/icons/user-edit-line-9VnWCh0X.js | 2 + assets/icons/user-edit-line-9VnWCh0X.js.map | 1 + assets/icons/user-follow-line-k_GCWTtp.js | 2 + assets/icons/user-follow-line-k_GCWTtp.js.map | 1 + assets/icons/user-warning-line-gL3RGb1N.js | 2 + .../icons/user-warning-line-gL3RGb1N.js.map | 1 + assets/icons/user-x-line-zIdph-gu.js | 2 + assets/icons/user-x-line-zIdph-gu.js.map | 1 + assets/icons/volume-line-PZujbN8h.js | 2 + assets/icons/volume-line-PZujbN8h.js.map | 1 + assets/icons/volume-mute-line-WthBoXru.js | 2 + assets/icons/volume-mute-line-WthBoXru.js.map | 1 + assets/icons/walk-line-CF7a5s4t.js | 2 + assets/icons/walk-line-CF7a5s4t.js.map | 1 + assets/instances-MzK7fGXv.json | 384 ++++++++++++++++++ assets/main-1wKRS81d.js | 25 ++ assets/main-1wKRS81d.js.map | 1 + assets/multi-column-ETnJNDVb.jpg | Bin 0 -> 49439 bytes assets/multi-hashtag-timeline-x-SDVR4g.jpg | Bin 0 -> 31446 bytes assets/nested-comments-thread-Ib-fZGS3.jpg | Bin 0 -> 43136 bytes assets/polyfill-force-FXjoUqOk.js | 3 + assets/polyfill-force-FXjoUqOk.js.map | 1 + assets/status-FORkhePO.js | 72 ++++ assets/status-FORkhePO.js.map | 1 + assets/style-C0C806IL.css | 7 + assets/useTitle-dCp14HlU.js | 3 + assets/useTitle-dCp14HlU.js.map | 1 + assets/vendor-GrW-f9CX.js | 142 +++++++ assets/vendor-GrW-f9CX.js.map | 1 + compose/index.html | 19 + favicon.ico | Bin 0 -> 15406 bytes index.html | 68 ++++ logo-192.png | Bin 0 -> 1883 bytes logo-512.png | Bin 0 -> 4412 bytes logo-badge-72.png | Bin 0 -> 1078 bytes logo-maskable-512.png | Bin 0 -> 4412 bytes manifest.webmanifest | 1 + og-image-2.jpg | Bin 0 -> 50534 bytes og-image.png | Bin 0 -> 33948 bytes robots.txt | 2 + sw.js | 2 + sw.js.map | 1 + version.json | 1 + 232 files changed, 1088 insertions(+) create mode 100644 404.html create mode 100644 apple-touch-icon.png create mode 100644 assets/boosts-carousel-YjmjXTE6.jpg create mode 100644 assets/catch-up-DuauQu-W.png create mode 100644 assets/compose-GEsXl1Xt.js create mode 100644 assets/compose-GEsXl1Xt.js.map create mode 100644 assets/compose-W5mt71Ut.js create mode 100644 assets/compose-W5mt71Ut.js.map create mode 100644 assets/grouped-notifications-xYMFVY91.jpg create mode 100644 assets/icons/add-circle-line--O-MfyNy.js create mode 100644 assets/icons/add-circle-line--O-MfyNy.js.map create mode 100644 assets/icons/alert-line-zyc6hy8V.js create mode 100644 assets/icons/alert-line-zyc6hy8V.js.map create mode 100644 assets/icons/android-2-line-uPwvVubH.js create mode 100644 assets/icons/android-2-line-uPwvVubH.js.map create mode 100644 assets/icons/announcement-line-MSlAmDH1.js create mode 100644 assets/icons/announcement-line-MSlAmDH1.js.map create mode 100644 assets/icons/arrow-down-circle-line-mpqFtRtO.js create mode 100644 assets/icons/arrow-down-circle-line-mpqFtRtO.js.map create mode 100644 assets/icons/arrow-down-line-0TRJUP_K.js create mode 100644 assets/icons/arrow-down-line-0TRJUP_K.js.map create mode 100644 assets/icons/arrow-left-line-_YC6-XGG.js create mode 100644 assets/icons/arrow-left-line-_YC6-XGG.js.map create mode 100644 assets/icons/arrow-right-line-PypiEqpu.js create mode 100644 assets/icons/arrow-right-line-PypiEqpu.js.map create mode 100644 assets/icons/arrow-up-circle-line-e3kZqEZN.js create mode 100644 assets/icons/arrow-up-circle-line-e3kZqEZN.js.map create mode 100644 assets/icons/arrow-up-line-fcuKqhVE.js create mode 100644 assets/icons/arrow-up-line-fcuKqhVE.js.map create mode 100644 assets/icons/arrows-down-line-ovOF9r0o.js create mode 100644 assets/icons/arrows-down-line-ovOF9r0o.js.map create mode 100644 assets/icons/arrows-right-line-HF4HILdT.js create mode 100644 assets/icons/arrows-right-line-HF4HILdT.js.map create mode 100644 assets/icons/at-line-9vJS_Hnl.js create mode 100644 assets/icons/at-line-9vJS_Hnl.js.map create mode 100644 assets/icons/attachment-line-C2PUa1Ke.js create mode 100644 assets/icons/attachment-line-C2PUa1Ke.js.map create mode 100644 assets/icons/bookmark-line-D6jQ7QFs.js create mode 100644 assets/icons/bookmark-line-D6jQ7QFs.js.map create mode 100644 assets/icons/building-5-line-ew7lu83B.js create mode 100644 assets/icons/building-5-line-ew7lu83B.js.map create mode 100644 assets/icons/bus-2-line-XuQdDZ_w.js create mode 100644 assets/icons/bus-2-line-XuQdDZ_w.js.map create mode 100644 assets/icons/calendar-month-line-VoXZVWAe.js create mode 100644 assets/icons/calendar-month-line-VoXZVWAe.js.map create mode 100644 assets/icons/chart-bar-line-5r_DfN2w.js create mode 100644 assets/icons/chart-bar-line-5r_DfN2w.js.map create mode 100644 assets/icons/chart-line-line-pHaLt6yC.js create mode 100644 assets/icons/chart-line-line-pHaLt6yC.js.map create mode 100644 assets/icons/chat-3-line-F0xcdpXY.js create mode 100644 assets/icons/chat-3-line-F0xcdpXY.js.map create mode 100644 assets/icons/check-circle-line-sE41WGxF.js create mode 100644 assets/icons/check-circle-line-sE41WGxF.js.map create mode 100644 assets/icons/clipboard-line-9F_Yeo71.js create mode 100644 assets/icons/clipboard-line-9F_Yeo71.js.map create mode 100644 assets/icons/close-circle-line-qd3g541O.js create mode 100644 assets/icons/close-circle-line-qd3g541O.js.map create mode 100644 assets/icons/close-line-YTE7hIJE.js create mode 100644 assets/icons/close-line-YTE7hIJE.js.map create mode 100644 assets/icons/cloud-line-abe0HgFS.js create mode 100644 assets/icons/cloud-line-abe0HgFS.js.map create mode 100644 assets/icons/code-line-h4RWLaak.js create mode 100644 assets/icons/code-line-h4RWLaak.js.map create mode 100644 assets/icons/comment-2-line-xEXuT-Ip.js create mode 100644 assets/icons/comment-2-line-xEXuT-Ip.js.map create mode 100644 assets/icons/copy-2-line-mPSDKieb.js create mode 100644 assets/icons/copy-2-line-mPSDKieb.js.map create mode 100644 assets/icons/delete-2-line-pjUduCFs.js create mode 100644 assets/icons/delete-2-line-pjUduCFs.js.map create mode 100644 assets/icons/document-line--D6ooZg1.js create mode 100644 assets/icons/document-line--D6ooZg1.js.map create mode 100644 assets/icons/down-line-9PeS5YhF.js create mode 100644 assets/icons/down-line-9PeS5YhF.js.map create mode 100644 assets/icons/earth-line-t1Um8wpQ.js create mode 100644 assets/icons/earth-line-t1Um8wpQ.js.map create mode 100644 assets/icons/emoji-2-line--uNVc2IC.js create mode 100644 assets/icons/emoji-2-line--uNVc2IC.js.map create mode 100644 assets/icons/exit-line-l-1uUgI7.js create mode 100644 assets/icons/exit-line-l-1uUgI7.js.map create mode 100644 assets/icons/external-link-line-8nOOkmFu.js create mode 100644 assets/icons/external-link-line-8nOOkmFu.js.map create mode 100644 assets/icons/eye-2-line-vz_Kw-rK.js create mode 100644 assets/icons/eye-2-line-vz_Kw-rK.js.map create mode 100644 assets/icons/eye-close-line-lBiePPv9.js create mode 100644 assets/icons/eye-close-line-lBiePPv9.js.map create mode 100644 assets/icons/filter-2-line-KyjbFYlO.js create mode 100644 assets/icons/filter-2-line-KyjbFYlO.js.map create mode 100644 assets/icons/filter-line-1KEfnWDm.js create mode 100644 assets/icons/filter-line-1KEfnWDm.js.map create mode 100644 assets/icons/flag-1-line-xvcg7G7Q.js create mode 100644 assets/icons/flag-1-line-xvcg7G7Q.js.map create mode 100644 assets/icons/forbid-circle-line-3FxopGoP.js create mode 100644 assets/icons/forbid-circle-line-3FxopGoP.js.map create mode 100644 assets/icons/group-line-JvhJklhQ.js create mode 100644 assets/icons/group-line-JvhJklhQ.js.map create mode 100644 assets/icons/hashtag-line-SS3QMu1R.js create mode 100644 assets/icons/hashtag-line-SS3QMu1R.js.map create mode 100644 assets/icons/heart-crack-line-P3DoKfTT.js create mode 100644 assets/icons/heart-crack-line-P3DoKfTT.js.map create mode 100644 assets/icons/heart-line-VwvWYh8h.js create mode 100644 assets/icons/heart-line-VwvWYh8h.js.map create mode 100644 assets/icons/history-2-line-3yIVzoWo.js create mode 100644 assets/icons/history-2-line-3yIVzoWo.js.map create mode 100644 assets/icons/history-line-yoG7K8wL.js create mode 100644 assets/icons/history-line-yoG7K8wL.js.map create mode 100644 assets/icons/home-3-line-qJiZhXUH.js create mode 100644 assets/icons/home-3-line-qJiZhXUH.js.map create mode 100644 assets/icons/information-line-8SOch6cR.js create mode 100644 assets/icons/information-line-8SOch6cR.js.map create mode 100644 assets/icons/keyboard-line-10AZQcVH.js create mode 100644 assets/icons/keyboard-line-10AZQcVH.js.map create mode 100644 assets/icons/layout-4-line-FOdnyEcZ.js create mode 100644 assets/icons/layout-4-line-FOdnyEcZ.js.map create mode 100644 assets/icons/layout-5-line-9Kks7dle.js create mode 100644 assets/icons/layout-5-line-9Kks7dle.js.map create mode 100644 assets/icons/left-line-Jck0yVmC.js create mode 100644 assets/icons/left-line-Jck0yVmC.js.map create mode 100644 assets/icons/lightning-line-JMYUlCZM.js create mode 100644 assets/icons/lightning-line-JMYUlCZM.js.map create mode 100644 assets/icons/link-2-line-BUqp1EwN.js create mode 100644 assets/icons/link-2-line-BUqp1EwN.js.map create mode 100644 assets/icons/list-check-line-qNqx9Mm4.js create mode 100644 assets/icons/list-check-line-qNqx9Mm4.js.map create mode 100644 assets/icons/lock-line-0jNHqZpm.js create mode 100644 assets/icons/lock-line-0jNHqZpm.js.map create mode 100644 assets/icons/mail-line-5XLS6FEo.js create mode 100644 assets/icons/mail-line-5XLS6FEo.js.map create mode 100644 assets/icons/more-1-fill-je1-slyh.js create mode 100644 assets/icons/more-1-fill-je1-slyh.js.map create mode 100644 assets/icons/more-3-line-wUD-Yhmj.js create mode 100644 assets/icons/more-3-line-wUD-Yhmj.js.map create mode 100644 assets/icons/notification-line-olNPLtgS.js create mode 100644 assets/icons/notification-line-olNPLtgS.js.map create mode 100644 assets/icons/pencil-line-bKXqElLR.js create mode 100644 assets/icons/pencil-line-bKXqElLR.js.map create mode 100644 assets/icons/photo-album-line--GdJqjfq.js create mode 100644 assets/icons/photo-album-line--GdJqjfq.js.map create mode 100644 assets/icons/pin-line-ULyRQyWZ.js create mode 100644 assets/icons/pin-line-ULyRQyWZ.js.map create mode 100644 assets/icons/play-fill-Ey-zv2eL.js create mode 100644 assets/icons/play-fill-Ey-zv2eL.js.map create mode 100644 assets/icons/quill-pen-line-h_5-FsGz.js create mode 100644 assets/icons/quill-pen-line-h_5-FsGz.js.map create mode 100644 assets/icons/quote-left-line-NQzeELMO.js create mode 100644 assets/icons/quote-left-line-NQzeELMO.js.map create mode 100644 assets/icons/radar-line-ndI8IhOG.js create mode 100644 assets/icons/radar-line-ndI8IhOG.js.map create mode 100644 assets/icons/react-line-YfZPqZem.js create mode 100644 assets/icons/react-line-YfZPqZem.js.map create mode 100644 assets/icons/refresh-2-line-t42qqclb.js create mode 100644 assets/icons/refresh-2-line-t42qqclb.js.map create mode 100644 assets/icons/right-line-7VBoqLdz.js create mode 100644 assets/icons/right-line-7VBoqLdz.js.map create mode 100644 assets/icons/rocket-line-rZbVYYCZ.js create mode 100644 assets/icons/rocket-line-rZbVYYCZ.js.map create mode 100644 assets/icons/round-fill-a0rplSmV.js create mode 100644 assets/icons/round-fill-a0rplSmV.js.map create mode 100644 assets/icons/route-line-2YYy3958.js create mode 100644 assets/icons/route-line-2YYy3958.js.map create mode 100644 assets/icons/rows-4-line-SxGPYpTa.js create mode 100644 assets/icons/rows-4-line-SxGPYpTa.js.map create mode 100644 assets/icons/search-2-line-G39AynEw.js create mode 100644 assets/icons/search-2-line-G39AynEw.js.map create mode 100644 assets/icons/settings-3-line-kt4MSpRv.js create mode 100644 assets/icons/settings-3-line-kt4MSpRv.js.map create mode 100644 assets/icons/settings-6-line-ZgCBilgF.js create mode 100644 assets/icons/settings-6-line-ZgCBilgF.js.map create mode 100644 assets/icons/share-2-line-PYo-zN94.js create mode 100644 assets/icons/share-2-line-PYo-zN94.js.map create mode 100644 assets/icons/share-forward-line-4jL-2Q4u.js create mode 100644 assets/icons/share-forward-line-4jL-2Q4u.js.map create mode 100644 assets/icons/sparkles-2-line-g2FqdZ0R.js create mode 100644 assets/icons/sparkles-2-line-g2FqdZ0R.js.map create mode 100644 assets/icons/sparkles-line-wjZWGZ1a.js create mode 100644 assets/icons/sparkles-line-wjZWGZ1a.js.map create mode 100644 assets/icons/time-line-ThP0kTRr.js create mode 100644 assets/icons/time-line-ThP0kTRr.js.map create mode 100644 assets/icons/transfer-4-line-Q9QJoxz3.js create mode 100644 assets/icons/transfer-4-line-Q9QJoxz3.js.map create mode 100644 assets/icons/translate-line-HpDtlqS2.js create mode 100644 assets/icons/translate-line-HpDtlqS2.js.map create mode 100644 assets/icons/unlock-line-w3piJMVb.js create mode 100644 assets/icons/unlock-line-w3piJMVb.js.map create mode 100644 assets/icons/upload-3-line-Qsjvubiw.js create mode 100644 assets/icons/upload-3-line-Qsjvubiw.js.map create mode 100644 assets/icons/user-4-line-zT_bpOrS.js create mode 100644 assets/icons/user-4-line-zT_bpOrS.js.map create mode 100644 assets/icons/user-add-line-zzW9OULB.js create mode 100644 assets/icons/user-add-line-zzW9OULB.js.map create mode 100644 assets/icons/user-edit-line-9VnWCh0X.js create mode 100644 assets/icons/user-edit-line-9VnWCh0X.js.map create mode 100644 assets/icons/user-follow-line-k_GCWTtp.js create mode 100644 assets/icons/user-follow-line-k_GCWTtp.js.map create mode 100644 assets/icons/user-warning-line-gL3RGb1N.js create mode 100644 assets/icons/user-warning-line-gL3RGb1N.js.map create mode 100644 assets/icons/user-x-line-zIdph-gu.js create mode 100644 assets/icons/user-x-line-zIdph-gu.js.map create mode 100644 assets/icons/volume-line-PZujbN8h.js create mode 100644 assets/icons/volume-line-PZujbN8h.js.map create mode 100644 assets/icons/volume-mute-line-WthBoXru.js create mode 100644 assets/icons/volume-mute-line-WthBoXru.js.map create mode 100644 assets/icons/walk-line-CF7a5s4t.js create mode 100644 assets/icons/walk-line-CF7a5s4t.js.map create mode 100644 assets/instances-MzK7fGXv.json create mode 100644 assets/main-1wKRS81d.js create mode 100644 assets/main-1wKRS81d.js.map create mode 100644 assets/multi-column-ETnJNDVb.jpg create mode 100644 assets/multi-hashtag-timeline-x-SDVR4g.jpg create mode 100644 assets/nested-comments-thread-Ib-fZGS3.jpg create mode 100644 assets/polyfill-force-FXjoUqOk.js create mode 100644 assets/polyfill-force-FXjoUqOk.js.map create mode 100644 assets/status-FORkhePO.js create mode 100644 assets/status-FORkhePO.js.map create mode 100644 assets/style-C0C806IL.css create mode 100644 assets/useTitle-dCp14HlU.js create mode 100644 assets/useTitle-dCp14HlU.js.map create mode 100644 assets/vendor-GrW-f9CX.js create mode 100644 assets/vendor-GrW-f9CX.js.map create mode 100644 compose/index.html create mode 100644 favicon.ico create mode 100644 index.html create mode 100644 logo-192.png create mode 100644 logo-512.png create mode 100644 logo-badge-72.png create mode 100644 logo-maskable-512.png create mode 100644 manifest.webmanifest create mode 100644 og-image-2.jpg create mode 100644 og-image.png create mode 100644 robots.txt create mode 100644 sw.js create mode 100644 sw.js.map create mode 100644 version.json diff --git a/404.html b/404.html new file mode 100644 index 0000000..0fcb4e9 --- /dev/null +++ b/404.html @@ -0,0 +1,32 @@ + + + + + + Page not found + + + + +

Page not found

+

Go home

+ + diff --git a/apple-touch-icon.png b/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..cb3c18d5d1d8d79280b853b6a5ff70b1210862c3 GIT binary patch literal 1796 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 literal 0 HcmV?d00001 diff --git a/assets/catch-up-DuauQu-W.png b/assets/catch-up-DuauQu-W.png new file mode 100644 index 0000000000000000000000000000000000000000..16a268da00eb30c7a3087958a2f6809707c2b42a GIT binary patch literal 25410 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 literal 0 HcmV?d00001 diff --git a/assets/compose-GEsXl1Xt.js b/assets/compose-GEsXl1Xt.js new file mode 100644 index 0000000..8928c2a --- /dev/null +++ b/assets/compose-GEsXl1Xt.js @@ -0,0 +1,2 @@ +import{m as p,v as w,C as S}from"./useTitle-dCp14HlU.js";import{p as f,_ as i,b as e,Q as m}from"./vendor-GrW-f9CX.js";window.opener&&(console=window.opener.console);function _(){var s,a;const[t,d]=f("default"),{editStatus:n,replyToStatus:o,draftStatus:r}=window.__COMPOSE__||{};return p(n?"Editing source status":o?`Replying to @${((s=o.account)==null?void 0:s.acct)||((a=o.account)==null?void 0:a.username)}`:"Compose"),i(()=>{w()},[]),i(()=>{if(t==="closed"){try{window.opener.focus()}catch{}window.close()}},[t]),t==="closed"?e("div",{class:"box",children:[e("p",{children:"You may close this page now."}),e("p",{children:e("button",{onClick:()=>{window.close()},children:"Close window"})})]}):e(S,{editStatus:n,replyToStatus:o,draftStatus:r,standalone:!0,hasOpener:window.opener,onClose:c=>{const{newStatus:l,fn:u=()=>{}}=c||{};try{l&&window.opener.__STATES__.reloadStatusPage++,u(),d("closed")}catch{}}})}m(e(_,{}),document.getElementById("app-standalone")); +//# sourceMappingURL=compose-GEsXl1Xt.js.map diff --git a/assets/compose-GEsXl1Xt.js.map b/assets/compose-GEsXl1Xt.js.map new file mode 100644 index 0000000..9d85ced --- /dev/null +++ b/assets/compose-GEsXl1Xt.js.map @@ -0,0 +1 @@ +{"version":3,"file":"compose-GEsXl1Xt.js","sources":["../../src/compose.jsx"],"sourcesContent":["import './index.css';\n\nimport './app.css';\n\nimport { render } from 'preact';\nimport { useEffect, useState } from 'preact/hooks';\n\nimport ComposeSuspense from './components/compose-suspense';\nimport { initStates } from './utils/states';\nimport useTitle from './utils/useTitle';\n\nif (window.opener) {\n console = window.opener.console;\n}\n\nfunction App() {\n const [uiState, setUIState] = useState('default');\n\n const { editStatus, replyToStatus, draftStatus } = window.__COMPOSE__ || {};\n\n useTitle(\n editStatus\n ? 'Editing source status'\n : replyToStatus\n ? `Replying to @${\n replyToStatus.account?.acct || replyToStatus.account?.username\n }`\n : 'Compose',\n );\n\n useEffect(() => {\n initStates();\n }, []);\n\n useEffect(() => {\n if (uiState === 'closed') {\n try {\n // Focus parent window\n window.opener.focus();\n } catch (e) {}\n window.close();\n }\n }, [uiState]);\n\n if (uiState === 'closed') {\n return (\n
\n

You may close this page now.

\n

\n {\n window.close();\n }}\n >\n Close window\n \n

\n
\n );\n }\n\n console.debug('OPEN COMPOSE');\n\n return (\n {\n const { newStatus, fn = () => {} } = results || {};\n try {\n if (newStatus) {\n window.opener.__STATES__.reloadStatusPage++;\n }\n fn();\n setUIState('closed');\n } catch (e) {}\n }}\n />\n );\n}\n\nrender(, document.getElementById('app-standalone'));\n"],"names":["window","opener","console","App","uiState","setUIState","useState","editStatus","replyToStatus","draftStatus","__COMPOSE__","account","acct","username","useEffect","initStates","focus","close","_jsxs","class","children","_jsx","onClick","standalone","hasOpener","newStatus","results","fn","render"],"mappings":"uHAWIA,OAAOC,SACTC,QAAUF,OAAOC,OAAOC,SAG1B,SAASC,GAAM,SACb,KAAM,CAACC,EAASC,CAAU,EAAIC,EAAS,SAAS,EAE1C,CAAEC,WAAAA,EAAYC,cAAAA,EAAeC,YAAAA,CAAAA,EAAgBT,OAAOU,aAAe,GA0BzE,OAvBEH,EAAAA,EACI,wBACAC,EACC,kBACCA,EAAAA,EAAcG,UAAdH,YAAAA,EAAuBI,SAAQJ,EAAAA,EAAcG,UAAdH,YAAAA,EAAuBK,SACvD,GACD,SACN,EAEAC,EAAU,IAAM,CACHC,GACb,EAAG,CAAE,CAAA,EAELD,EAAU,IAAM,CACd,GAAIV,IAAY,SAAU,CACpB,GAAA,CAEFJ,OAAOC,OAAOe,aACJ,CAAC,CACbhB,OAAOiB,MAAM,CACf,CAAA,EACC,CAACb,CAAO,CAAC,EAERA,IAAY,SAEZc,EAAA,MAAA,CAAKC,MAAM,MAAKC,UACdC,EAAA,IAAA,CAAAD,SAAG,8BAAA,CAA+B,EAClCC,EAAA,IAAA,CAAAD,SACEC,EAAA,SAAA,CACEC,QAASA,IAAM,CACbtB,OAAOiB,MAAM,CACf,EAAEG,SACH,cAAA,CAEO,CAAA,CACP,CAAC,CAAA,CACD,EAITlB,IAA4B,CAE5B,WAAAK,EAEIA,cAAAA,EACAC,YAAAA,EACAC,WAAAA,GACAc,UAAU,OAAA,OACVC,WAAkBvB,OAEV,UAAAwB,EAAEA,GAAAA,EAAAA,IAAAA,EAAsB,EAACC,GAAA,CAAA,EAAE,GAAIA,CACjCD,GACF,OAAe,OAAA,WAAA,mBAEfE,IACGtB,EAAA,QAAA,CACHA,MAAAA,EACW,CAAA,CACf,CAAA,CAGNuB,EAAAP,EAAAlB,EAAA,CAAA,CAAA,EAAA,SAAA,eAAA,gBAAA,CAAA"} \ No newline at end of file diff --git a/assets/compose-W5mt71Ut.js b/assets/compose-W5mt71Ut.js new file mode 100644 index 0000000..dfcfca3 --- /dev/null +++ b/assets/compose-W5mt71Ut.js @@ -0,0 +1,26 @@ +var mt=(s,e,n)=>{if(!e.has(s))throw TypeError("Cannot "+n)};var T=(s,e,n)=>(mt(s,e,"read from private field"),n?n.call(s):e.get(s)),G=(s,e,n)=>{if(e.has(s))throw TypeError("Cannot add the same private member more than once");e instanceof WeakSet?e.add(s):e.set(s,n)},ce=(s,e,n,o)=>(mt(s,e,"write to private field"),o?o.call(s,n):e.set(s,n),n);var Y=(s,e,n)=>(mt(s,e,"access private method"),n);import{p as H,t as dn,F as W,_ as ee,u as je,Z as hn,q as Pe,b as t,k as Ce,E as pn,ao as mn,n as gn,o as ot,m as fn,a as vn,M as $t,g as Bt,x as Kt}from"./vendor-GrW-f9CX.js";import{v as bn,P as yn,p as Tt,u as xn,e as Vt,a as wn,I as K,r as _t,d as Gt,Q as kn,M as Qe,s as xe,K as En,j as Fn,b as Cn,l as zn,q as Ln}from"./status-FORkhePO.js";import{s as re,a as Ft,e as An,A as Yt,c as ze,f as Sn,b as In,L as rt,p as Mn}from"./useTitle-dCp14HlU.js";class $n{constructor(e,n,{tabInsertsSuggestions:o,defaultFirstOption:r}={}){this.input=e,this.list=n,this.tabInsertsSuggestions=o??!0,this.defaultFirstOption=r??!1,this.isComposing=!1,n.id||(n.id=`combobox-${Math.random().toString().slice(2,6)}`),this.ctrlBindings=!!navigator.userAgent.match(/Macintosh/),this.keyboardEventHandler=p=>Bn(p,this),this.compositionEventHandler=p=>_n(p,this),this.inputHandler=this.clearSelection.bind(this),e.setAttribute("role","combobox"),e.setAttribute("aria-controls",n.id),e.setAttribute("aria-expanded","false"),e.setAttribute("aria-autocomplete","list"),e.setAttribute("aria-haspopup","listbox")}destroy(){this.clearSelection(),this.stop(),this.input.removeAttribute("role"),this.input.removeAttribute("aria-controls"),this.input.removeAttribute("aria-expanded"),this.input.removeAttribute("aria-autocomplete"),this.input.removeAttribute("aria-haspopup")}start(){this.input.setAttribute("aria-expanded","true"),this.input.addEventListener("compositionstart",this.compositionEventHandler),this.input.addEventListener("compositionend",this.compositionEventHandler),this.input.addEventListener("input",this.inputHandler),this.input.addEventListener("keydown",this.keyboardEventHandler),this.list.addEventListener("click",Rt),this.indicateDefaultOption()}stop(){this.clearSelection(),this.input.setAttribute("aria-expanded","false"),this.input.removeEventListener("compositionstart",this.compositionEventHandler),this.input.removeEventListener("compositionend",this.compositionEventHandler),this.input.removeEventListener("input",this.inputHandler),this.input.removeEventListener("keydown",this.keyboardEventHandler),this.list.removeEventListener("click",Rt)}indicateDefaultOption(){var e;this.defaultFirstOption&&((e=Array.from(this.list.querySelectorAll('[role="option"]:not([aria-disabled="true"])')).filter(gt)[0])===null||e===void 0||e.setAttribute("data-combobox-option-default","true"))}navigate(e=1){const n=Array.from(this.list.querySelectorAll('[aria-selected="true"]')).filter(gt)[0],o=Array.from(this.list.querySelectorAll('[role="option"]')).filter(gt),r=o.indexOf(n);if(r===o.length-1&&e===1||r===0&&e===-1){this.clearSelection(),this.input.focus();return}let p=e===1?0:o.length-1;if(n&&r>=0){const v=r+e;v>=0&&v0||s.offsetHeight>0)}function _n(s,e){e.isComposing=s.type==="compositionstart",document.getElementById(e.input.getAttribute("aria-controls")||"")&&e.clearSelection()}function Rn(s,e){Dn(s,e)||(s.scrollTop=e.offsetTop)}function Dn(s,e){const n=s.scrollTop,o=n+s.clientHeight,r=e.offsetTop,p=r+e.clientHeight;return r>=n&&p<=o}const jn=/\s|\(|\[/;function Pn(s,e,n,{multiWord:o,lookBackIndex:r,lastMatchPosition:p}={multiWord:!1,lookBackIndex:0,lastMatchPosition:null}){let u=s.lastIndexOf(e,n-1);if(u===-1||u=u+e.length+1||s.lastIndexOf(` +`,n-1)>u||s.lastIndexOf(".",n-1)>u)return}else if(s.lastIndexOf(" ",n-1)>u)return;const v=s[u-1];return v&&!jn.test(v)?void 0:{text:s.substring(u+e.length,n),position:u+e.length}}class On extends HTMLElement{}class Hn extends Event{constructor(){super("update")}}const ft=new WeakMap;var Oe,He,we,me,ke,Re,Le,Ae,Ne,yt,Se,Ie,et,Me,tt,$e,nt,Ue,Ee;const zt=class zt extends On{constructor(n){super();G(this,ke);G(this,Ne);G(this,Ie);G(this,Me);G(this,$e);G(this,Oe,new MutationObserver(()=>Y(this,Me,tt).call(this)));G(this,He,new ResizeObserver(()=>Y(this,Ie,et).call(this)));G(this,we,void 0);G(this,me,void 0);G(this,Le,0);G(this,Ae,0);G(this,Se,!1);G(this,Ue,()=>Y(this,$e,nt).call(this));G(this,Ee,n=>{Y(this,ke,Re).call(this,o=>{(n.target===document||n.target===window||n.target instanceof Node&&n.target.contains(o))&&Y(this,Ie,et).call(this)})});ce(this,we,new WeakRef(n)),ce(this,me,document.createElement("div")),T(this,me).style.position="absolute",T(this,me).style.pointerEvents="none",n.after(T(this,me)),T(this,me).appendChild(this)}static for(n){const o=ft.get(n)??new zt(n);return ft.set(n,o),o}forceUpdate(){Y(this,Me,tt).call(this),Y(this,$e,nt).call(this)}connectedCallback(){const n=T(this,we).deref();if(!n)return this.remove();this.style.pointerEvents="none",this.style.userSelect="none",this.style.overflow="hidden",this.style.display="block",this.style.visibility="hidden",n instanceof HTMLTextAreaElement?(this.style.whiteSpace="pre-wrap",this.style.wordWrap="break-word"):(this.style.whiteSpace="nowrap",this.style.display="table-cell",this.style.verticalAlign="middle"),this.setAttribute("aria-hidden","true"),Y(this,Me,tt).call(this),Y(this,$e,nt).call(this),T(this,Oe).observe(n,{attributeFilter:["style","dir"]}),T(this,He).observe(n),document.addEventListener("scroll",T(this,Ee),{capture:!0}),window.addEventListener("resize",T(this,Ee),{capture:!0}),n.addEventListener("input",T(this,Ue),{capture:!0})}disconnectedCallback(){T(this,me).remove(),T(this,Oe).disconnect(),T(this,He).disconnect(),document.removeEventListener("scroll",T(this,Ee),{capture:!0}),window.removeEventListener("resize",T(this,Ee),{capture:!0});const n=T(this,we).deref();n&&(n.removeEventListener("input",T(this,Ue),{capture:!0}),ft.delete(n))}};Oe=new WeakMap,He=new WeakMap,we=new WeakMap,me=new WeakMap,ke=new WeakSet,Re=function(n){const o=T(this,we).deref();return o?n(o):this.remove()},Le=new WeakMap,Ae=new WeakMap,Ne=new WeakSet,yt=function(){Y(this,ke,Re).call(this,n=>{const o=window.getComputedStyle(n);this.style.height=o.height,this.style.width=o.width,n.clientHeight!==this.clientHeight&&(this.style.height=`calc(${o.height} + ${n.clientHeight-this.clientHeight}px)`),n.clientWidth!==this.clientWidth&&(this.style.width=`calc(${o.width} + ${n.clientWidth-this.clientWidth}px)`);const r=n.getBoundingClientRect(),p=this.getBoundingClientRect();ce(this,Le,T(this,Le)+r.left-p.left),ce(this,Ae,T(this,Ae)+r.top-p.top),this.style.transform=`translate(${T(this,Le)}px, ${T(this,Ae)}px)`,this.scrollTop=n.scrollTop,this.scrollLeft=n.scrollLeft,this.dispatchEvent(new Hn)})},Se=new WeakMap,Ie=new WeakSet,et=function(){T(this,Se)||(ce(this,Se,!0),requestAnimationFrame(()=>{Y(this,Ne,yt).call(this),ce(this,Se,!1)}))},Me=new WeakSet,tt=function(){Y(this,ke,Re).call(this,n=>{const o=window.getComputedStyle(n);for(const r of Nn)this.style[r]=o[r];Y(this,Ie,et).call(this)})},$e=new WeakSet,nt=function(){Y(this,ke,Re).call(this,n=>{this.textContent=n.value,Y(this,Ne,yt).call(this)})},Ue=new WeakMap,Ee=new WeakMap;let it=zt;const Nn=["direction","writingMode","unicodeBidi","textOrientation","boxSizing","borderTopWidth","borderRightWidth","borderBottomWidth","borderLeftWidth","borderStyle","paddingTop","paddingRight","paddingBottom","paddingLeft","fontStyle","fontVariant","fontWeight","fontStretch","fontSize","fontSizeAdjust","lineHeight","fontFamily","textAlign","textTransform","textIndent","textDecoration","letterSpacing","wordSpacing","tabSize","MozTabSize"];try{customElements.define("input-style-clone",it)}catch(s){if(!(s instanceof DOMException&&s.name==="NotSupportedError"))throw s}var de,Be,Te,We,wt,st,Zt,qe,kt,Fe,De;const at=class at{constructor(e,n=0,o=n){G(this,We);G(this,st);G(this,qe);G(this,Fe);G(this,de,void 0);G(this,Be,void 0);G(this,Te,void 0);ce(this,de,e),ce(this,Be,n),ce(this,Te,o)}static fromSelection(e){const{selectionStart:n,selectionEnd:o}=e;return new at(e,n??void 0,o??void 0)}get collapsed(){return this.startOffset===this.endOffset}get commonAncestorContainer(){return T(this,de)}get endContainer(){return T(this,de)}get startContainer(){return T(this,de)}get startOffset(){return T(this,Be)}get endOffset(){return T(this,Te)}setStartOffset(e){ce(this,Be,Y(this,qe,kt).call(this,e))}setEndOffset(e){ce(this,Te,Y(this,qe,kt).call(this,e))}collapse(e=!1){e?this.setEndOffset(this.startOffset):this.setStartOffset(this.endOffset)}cloneContents(){return Y(this,Fe,De).call(this).cloneContents()}cloneRange(){return new at(T(this,de),this.startOffset,this.endOffset)}getBoundingClientRect(){return Y(this,Fe,De).call(this).getBoundingClientRect()}getClientRects(){return Y(this,Fe,De).call(this).getClientRects()}toString(){return Y(this,Fe,De).call(this).toString()}getStyleClone(){return T(this,We,wt)}};de=new WeakMap,Be=new WeakMap,Te=new WeakMap,We=new WeakSet,wt=function(){return it.for(T(this,de))},st=new WeakSet,Zt=function(){return T(this,We,wt)},qe=new WeakSet,kt=function(e){return Math.max(0,Math.min(e,T(this,de).value.length))},Fe=new WeakSet,De=function(){const e=document.createRange(),n=T(this,st,Zt).childNodes[0];return n&&(e.setStart(n,this.startOffset),e.setEnd(n,this.endOffset)),e};let xt=at;const Je=new WeakMap;class Un{constructor(e,n){this.expander=e,this.input=n,this.combobox=null,this.menu=null,this.match=null,this.justPasted=!1,this.lookBackIndex=0,this.oninput=this.onInput.bind(this),this.onpaste=this.onPaste.bind(this),this.onkeydown=this.onKeydown.bind(this),this.oncommit=this.onCommit.bind(this),this.onmousedown=this.onMousedown.bind(this),this.onblur=this.onBlur.bind(this),this.interactingWithList=!1,n.addEventListener("paste",this.onpaste),n.addEventListener("input",this.oninput),n.addEventListener("keydown",this.onkeydown),n.addEventListener("blur",this.onblur)}destroy(){this.input.removeEventListener("paste",this.onpaste),this.input.removeEventListener("input",this.oninput),this.input.removeEventListener("keydown",this.onkeydown),this.input.removeEventListener("blur",this.onblur)}dismissMenu(){this.deactivate()&&(this.lookBackIndex=this.input.selectionEnd||this.lookBackIndex)}activate(e,n){var o,r;this.input!==document.activeElement&&this.input!==((r=(o=document.activeElement)===null||o===void 0?void 0:o.shadowRoot)===null||r===void 0?void 0:r.activeElement)||(this.deactivate(),this.menu=n,n.id||(n.id=`text-expander-${Math.floor(Math.random()*1e5).toString()}`),this.expander.append(n),this.combobox=new $n(this.input,n),this.expander.dispatchEvent(new Event("text-expander-activate")),this.positionMenu(n,e.position),this.combobox.start(),n.addEventListener("combobox-commit",this.oncommit),n.addEventListener("mousedown",this.onmousedown),this.combobox.navigate(1))}positionMenu(e,n){const o=new xt(this.input,n).getBoundingClientRect(),r={left:o.left,top:o.top+o.height},p=e.getBoundingClientRect(),u={left:r.left-p.left,top:r.top-p.top};if(u.left!==0||u.top!==0){const v=getComputedStyle(e);e.style.left=v.left?`calc(${v.left} + ${u.left}px)`:`${u.left}px`,e.style.top=v.top?`calc(${v.top} + ${u.top}px)`:`${u.top}px`}}deactivate(){const e=this.menu;return!e||!this.combobox?!1:(this.expander.dispatchEvent(new Event("text-expander-deactivate")),this.menu=null,e.removeEventListener("combobox-commit",this.oncommit),e.removeEventListener("mousedown",this.onmousedown),this.combobox.destroy(),this.combobox=null,e.remove(),!0)}onCommit({target:e}){var n;const o=e;if(!(o instanceof HTMLElement)||!this.combobox)return;const r=this.match;if(!r)return;const p=this.input.value.substring(0,r.position-r.key.length),u=this.input.value.substring(r.position+r.text.length),v={item:o,key:r.key,value:null,continue:!1};if(!this.expander.dispatchEvent(new CustomEvent("text-expander-value",{cancelable:!0,detail:v}))||!v.value)return;let R=(n=this.expander.getAttribute("suffix"))!==null&&n!==void 0?n:" ";v.continue&&(R="");const C=`${v.value}${R}`;this.input.value=p+C+u;const k=p.length+C.length;this.deactivate(),this.input.focus({preventScroll:!0}),this.input.selectionStart=k,this.input.selectionEnd=k,v.continue||(this.lookBackIndex=k,this.match=null),this.expander.dispatchEvent(new CustomEvent("text-expander-committed",{cancelable:!1,detail:{input:this.input}}))}onBlur(){if(this.interactingWithList){this.interactingWithList=!1;return}this.deactivate()}onPaste(){this.justPasted=!0}async onInput(){if(this.justPasted){this.justPasted=!1;return}const e=this.findMatch();if(e){this.match=e;const n=await this.notifyProviders(e);if(!this.match)return;n?this.activate(e,n):this.deactivate()}else this.match=null,this.deactivate()}findMatch(){const e=this.input.selectionEnd||0,n=this.input.value;e<=this.lookBackIndex&&(this.lookBackIndex=e-1);for(const{key:o,multiWord:r}of this.expander.keys){const p=Pn(n,o,e,{multiWord:r,lookBackIndex:this.lookBackIndex,lastMatchPosition:this.match?this.match.position:null});if(p)return{text:p.text,key:o,position:p.position}}}async notifyProviders(e){const n=[],o=v=>n.push(v);return this.expander.dispatchEvent(new CustomEvent("text-expander-change",{cancelable:!0,detail:{provide:o,text:e.text,key:e.key}}))?(await Promise.all(n)).filter(v=>v.matched).map(v=>v.fragment)[0]:void 0}onMousedown(){this.interactingWithList=!0}onKeydown(e){e.key==="Escape"&&(this.match=null,this.deactivate()&&(this.lookBackIndex=this.input.selectionEnd||this.lookBackIndex,e.stopImmediatePropagation(),e.preventDefault()))}}class jt extends HTMLElement{get keys(){const e=this.getAttribute("keys"),n=e?e.split(" "):[],o=this.getAttribute("multiword"),r=o?o.split(" "):[],p=r.length===0&&this.hasAttribute("multiword");return n.map(u=>({key:u,multiWord:p||r.includes(u)}))}connectedCallback(){const e=this.querySelector('input[type="text"], textarea');if(!(e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement))return;const n=new Un(this,e);Je.set(this,n)}disconnectedCallback(){const e=Je.get(this);e&&(e.destroy(),Je.delete(this))}dismiss(){const e=Je.get(this);e&&e.dismissMenu()}}window.customElements.get("text-expander")||(window.TextExpanderElement=jt,window.customElements.define("text-expander",jt));function Wn({onlyFirst:s=!1}={}){const e=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(e,s?void 0:"g")}const qn=Wn();function Kn(s){if(typeof s!="string")throw new TypeError(`Expected a \`string\`, got \`${typeof s}\``);return s.replace(qn,"")}const Vn=new Intl.Segmenter;function Pt(s,{countAnsiEscapeCodes:e=!1}={}){if(s===""||(e||(s=Kn(s)),s===""))return 0;let n=0;for(const o of Vn.segment(s))n++;return n}const Gn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.0'%20viewBox='0%200%20641%20223'%3e%3cpath%20fill='%23aaa'%20d='M86%20214c-9-1-17-4-24-8l-6-3-5-5-5-4-4-6-4-6-3-8-2-8v-27l2-9%203-9%204-6%204-6%205-5%205-5%207-3%206-4%207-2%207-2%2012-1h12l7%201%208%202%207%204%207%203%205%205%205%204-10%2010-10%209-4-3-10-5-5-1H88l-5%202-6%203-3%204-4%204-2%205-2%206v6l-1%207%201%207%202%207%203%205%202%204%204%203%204%203%205%202%206%202h9l10-1%205-2%206-3v-16H91v-27h59v54l-1%203-2%203-5%204-4%204-5%203-5%202-8%202-8%202-10%201H92l-6-1zm266-62V91h34v46h44V91h34v121h-34v-46h-44v46h-34v-61zm-182-1V90h34v121h-34v-60zm59-1V90h35l36%201%205%202c3%200%208%202%2010%204l5%202%204%205%205%204%203%207%203%207%201%2013v13l-4%206-3%207-4%204-5%205-5%202-5%203-6%202-5%201-18%201h-18v32h-34v-61zm67-2%203-2%202-4%202-5v-5l-2-4-2-4-3-2-3-3h-30v31h30l3-2zm226%2039v-24l-8-12-18-28a1751%201751%200%200%200-20-31v-2h39l7%2012%2012%2021%206%209%2013-21%2013-21h38v2l-41%2061-7%2010v48h-34v-24zM109%2066l-4-1-5-5-5-4-1-5-3-9v-5l1-5c2-7%203-10%208-15l4-4%207-2%207-2h7l6%201%205%202%205%202%203%204%204%203%202%206%202%205v13l-2%205-2%206-4%204-3%203-5%202-4%202-9%201h-9l-5-2zm22-11%204-2%203-4%202-5V34l-2-4-2-4-3-2-4-3-5-1h-6l-4%202-5%202-2%204-3%205-1%203v4l1%205%202%205%202%202%205%203%204%202h10l4-2zM37%2039V11h33l3%201%203%202%204%203%203%203%201%205%201%204v5l-1%204-3%204-3%205-4%201-3%202-11%201H49v16H37V39zm31%200%203-2%201-2%201-2v-4l-1-3-3-2-2-2H49v18h15l4-1zm107%2025a512%20512%200%200%200-19-53h14l4%2014%206%2019%201%204%201-1%207-19%205-17h9l6%2019%207%2018v-1l2-6%205-17%204-13h14v1l-4%2012-16%2041v2h-5l-5-1-6-15-6-15-1%201-3%207-6%2015-2%208h-11l-1-3zm74-25V11h42v11h-29v2l-1%205v4h29v11h-28v11h2l15%201h13v11h-43V39zm55%200V11h33l5%203%205%202%202%204%202%205v10l-2%203-1%204-5%203-5%203%205%205%208%2010%203%204h-14l-7-9-8-10h-9v19h-12V39zm33-3%202-3v-6l-3-3-2-3h-18v16h1v1h17l2-2zm26%203V11h42v11h-29l-1%206v5h29v11h-28v5l-1%205%201%201v1h30v11h-43V39zm54%200V11h17l18%201%204%202%205%203%202%204%203%204%202%206%201%206v5c-1%206-3%2012-6%2015l-3%204-5%203-5%202-17%201h-16V39zm33%2014%205-5%202-3v-6l-1-6-1-3-1-3-4-3-3-2h-5l-6-1-3%201h-3v34h9l8-1%203-2zm50-14V11h34l5%202%204%202%202%203%202%203v9l-2%202-3%204-1%201%203%203%203%204%201%203%201%204-1%204-1%204-3%203-3%203-5%201-5%201h-31V39zm34%2015%202-1v-6l-2-2-2-2h-20v13h20l2-2zm-3-22%204-2v-6l-2-1-2-2h-19v12h16l4-1zm42%2024V45l-6-9-11-17-5-8h15l4%208%207%2011%202%203%207-11%207-11h14l-11%2016-11%2017v23h-12V56z'/%3e%3c/svg%3e",Ct=[["aa","Afar","Afaraf"],["ab","Abkhaz","аҧсуа бызшәа"],["ae","Avestan","avesta"],["af","Afrikaans","Afrikaans"],["ak","Akan","Akan"],["am","Amharic","አማርኛ"],["an","Aragonese","aragonés"],["ar","Arabic","اللغة العربية"],["as","Assamese","অসমীয়া"],["av","Avaric","авар мацӀ"],["ay","Aymara","aymar aru"],["az","Azerbaijani","azərbaycan dili"],["ba","Bashkir","башҡорт теле"],["be","Belarusian","беларуская мова"],["bg","Bulgarian","български език"],["bh","Bihari","भोजपुरी"],["bi","Bislama","Bislama"],["bm","Bambara","bamanankan"],["bn","Bengali","বাংলা"],["bo","Tibetan","བོད་ཡིག"],["br","Breton","brezhoneg"],["bs","Bosnian","bosanski jezik"],["ca","Catalan","Català"],["ce","Chechen","нохчийн мотт"],["ch","Chamorro","Chamoru"],["co","Corsican","corsu"],["cr","Cree","ᓀᐦᐃᔭᐍᐏᐣ"],["cs","Czech","čeština"],["cu","Old Church Slavonic","ѩзыкъ словѣньскъ"],["cv","Chuvash","чӑваш чӗлхи"],["cy","Welsh","Cymraeg"],["da","Danish","dansk"],["de","German","Deutsch"],["dv","Divehi","Dhivehi"],["dz","Dzongkha","རྫོང་ཁ"],["ee","Ewe","Eʋegbe"],["el","Greek","Ελληνικά"],["en","English","English"],["eo","Esperanto","Esperanto"],["es","Spanish","Español"],["et","Estonian","eesti"],["eu","Basque","euskara"],["fa","Persian","فارسی"],["ff","Fula","Fulfulde"],["fi","Finnish","suomi"],["fj","Fijian","Vakaviti"],["fo","Faroese","føroyskt"],["fr","French","Français"],["fy","Western Frisian","Frysk"],["ga","Irish","Gaeilge"],["gd","Scottish Gaelic","Gàidhlig"],["gl","Galician","galego"],["gu","Gujarati","ગુજરાતી"],["gv","Manx","Gaelg"],["ha","Hausa","هَوُسَ"],["he","Hebrew","עברית"],["hi","Hindi","हिन्दी"],["ho","Hiri Motu","Hiri Motu"],["hr","Croatian","Hrvatski"],["ht","Haitian","Kreyòl ayisyen"],["hu","Hungarian","magyar"],["hy","Armenian","Հայերեն"],["hz","Herero","Otjiherero"],["ia","Interlingua","Interlingua"],["id","Indonesian","Bahasa Indonesia"],["ie","Interlingue","Interlingue"],["ig","Igbo","Asụsụ Igbo"],["ii","Nuosu","ꆈꌠ꒿ Nuosuhxop"],["ik","Inupiaq","Iñupiaq"],["io","Ido","Ido"],["is","Icelandic","Íslenska"],["it","Italian","Italiano"],["iu","Inuktitut","ᐃᓄᒃᑎᑐᑦ"],["ja","Japanese","日本語"],["jv","Javanese","basa Jawa"],["ka","Georgian","ქართული"],["kg","Kongo","Kikongo"],["ki","Kikuyu","Gĩkũyũ"],["kj","Kwanyama","Kuanyama"],["kk","Kazakh","қазақ тілі"],["kl","Kalaallisut","kalaallisut"],["km","Khmer","ខេមរភាសា"],["kn","Kannada","ಕನ್ನಡ"],["ko","Korean","한국어"],["kr","Kanuri","Kanuri"],["ks","Kashmiri","कश्मीरी"],["ku","Kurmanji (Kurdish)","Kurmancî"],["kv","Komi","коми кыв"],["kw","Cornish","Kernewek"],["ky","Kyrgyz","Кыргызча"],["la","Latin","latine"],["lb","Luxembourgish","Lëtzebuergesch"],["lg","Ganda","Luganda"],["li","Limburgish","Limburgs"],["ln","Lingala","Lingála"],["lo","Lao","ລາວ"],["lt","Lithuanian","lietuvių kalba"],["lu","Luba-Katanga","Tshiluba"],["lv","Latvian","latviešu valoda"],["mg","Malagasy","fiteny malagasy"],["mh","Marshallese","Kajin M̧ajeļ"],["mi","Māori","te reo Māori"],["mk","Macedonian","македонски јазик"],["ml","Malayalam","മലയാളം"],["mn","Mongolian","Монгол хэл"],["mr","Marathi","मराठी"],["ms","Malay","Bahasa Melayu"],["mt","Maltese","Malti"],["my","Burmese","ဗမာစာ"],["na","Nauru","Ekakairũ Naoero"],["nb","Norwegian Bokmål","Norsk bokmål"],["nd","Northern Ndebele","isiNdebele"],["ne","Nepali","नेपाली"],["ng","Ndonga","Owambo"],["nl","Dutch","Nederlands"],["nn","Norwegian Nynorsk","Norsk Nynorsk"],["no","Norwegian","Norsk"],["nr","Southern Ndebele","isiNdebele"],["nv","Navajo","Diné bizaad"],["ny","Chichewa","chiCheŵa"],["oc","Occitan","occitan"],["oj","Ojibwe","ᐊᓂᔑᓈᐯᒧᐎᓐ"],["om","Oromo","Afaan Oromoo"],["or","Oriya","ଓଡ଼ିଆ"],["os","Ossetian","ирон æвзаг"],["pa","Panjabi","ਪੰਜਾਬੀ"],["pi","Pāli","पाऴि"],["pl","Polish","Polski"],["ps","Pashto","پښتو"],["pt","Portuguese","Português"],["qu","Quechua","Runa Simi"],["rm","Romansh","rumantsch grischun"],["rn","Kirundi","Ikirundi"],["ro","Romanian","Română"],["ru","Russian","Русский"],["rw","Kinyarwanda","Ikinyarwanda"],["sa","Sanskrit","संस्कृतम्"],["sc","Sardinian","sardu"],["sd","Sindhi","सिन्धी"],["se","Northern Sami","Davvisámegiella"],["sg","Sango","yângâ tî sängö"],["si","Sinhala","සිංහල"],["sk","Slovak","slovenčina"],["sl","Slovenian","slovenščina"],["sn","Shona","chiShona"],["so","Somali","Soomaaliga"],["sq","Albanian","Shqip"],["sr","Serbian","српски језик"],["ss","Swati","SiSwati"],["st","Southern Sotho","Sesotho"],["su","Sundanese","Basa Sunda"],["sv","Swedish","Svenska"],["sw","Swahili","Kiswahili"],["ta","Tamil","தமிழ்"],["te","Telugu","తెలుగు"],["tg","Tajik","тоҷикӣ"],["th","Thai","ไทย"],["ti","Tigrinya","ትግርኛ"],["tk","Turkmen","Türkmen"],["tl","Tagalog","Wikang Tagalog"],["tn","Tswana","Setswana"],["to","Tonga","faka Tonga"],["tr","Turkish","Türkçe"],["ts","Tsonga","Xitsonga"],["tt","Tatar","татар теле"],["tw","Twi","Twi"],["ty","Tahitian","Reo Tahiti"],["ug","Uyghur","ئۇيغۇرچە‎"],["uk","Ukrainian","Українська"],["ur","Urdu","اردو"],["uz","Uzbek","Ўзбек"],["ve","Venda","Tshivenḓa"],["vi","Vietnamese","Tiếng Việt"],["vo","Volapük","Volapük"],["wa","Walloon","walon"],["wo","Wolof","Wollof"],["xh","Xhosa","isiXhosa"],["yi","Yiddish","ייִדיש"],["yo","Yoruba","Yorùbá"],["za","Zhuang","Saɯ cueŋƅ"],["zh","Chinese","中文"],["zu","Zulu","isiZulu"],["zh-CN","Chinese (China)","简体中文"],["zh-HK","Chinese (Hong Kong)","繁體中文(香港)"],["zh-TW","Chinese (Taiwan)","繁體中文(臺灣)"],["zh-YUE","Cantonese","廣東話"],["ast","Asturian","Asturianu"],["chr","Cherokee","ᏣᎳᎩ ᎦᏬᏂᎯᏍᏗ"],["ckb","Sorani (Kurdish)","سۆرانی"],["cnr","Montenegrin","crnogorski"],["jbo","Lojban","la .lojban."],["kab","Kabyle","Taqbaylit"],["ldn","Láadan","Láadan"],["lfn","Lingua Franca Nova","lingua franca nova"],["sco","Scots","Scots"],["sma","Southern Sami","Åarjelsaemien Gïele"],["smj","Lule Sami","Julevsámegiella"],["szl","Silesian","ślůnsko godka"],["tok","Toki Pona","toki pona"],["xal","Kalmyk","Хальмг келн"],["zba","Balaibalan","باليبلن"],["zgh","Standard Moroccan Tamazight","ⵜⴰⵎⴰⵣⵉⵖⵜ"]],Yn="(((?:[^A-Za-z0-9@@$##\\uFFFE\\uFEFF\\uFFFF]|[\\u202A-\\u202E\\u061C\\u200E\\u200F\\u2066\\u2067\\u2068\\u2069]|^))((https?:\\/\\/)((?:(?:(?:[^/\\!'#%&'\\(\\)*\\+,\\\\\\-\\.\\/:;<=>\\?@\\[\\]\\^_{|}~\\$//\\x09-\\x0D\\x20\\x85\\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000//\\uFFFE\\uFEFF\\uFFFF//\\u202A-\\u202E\\u061C\\u200E\\u200F\\u2066\\u2067\\u2068\\u2069/](?:[_-]|[^/\\!'#%&'\\(\\)*\\+,\\\\\\-\\.\\/:;<=>\\?@\\[\\]\\^_{|}~\\$//\\x09-\\x0D\\x20\\x85\\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000//\\uFFFE\\uFEFF\\uFFFF//\\u202A-\\u202E\\u061C\\u200E\\u200F\\u2066\\u2067\\u2068\\u2069/])*)?[^/\\!'#%&'\\(\\)*\\+,\\\\\\-\\.\\/:;<=>\\?@\\[\\]\\^_{|}~\\$//\\x09-\\x0D\\x20\\x85\\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000//\\uFFFE\\uFEFF\\uFFFF//\\u202A-\\u202E\\u061C\\u200E\\u200F\\u2066\\u2067\\u2068\\u2069/]\\.)*(?:(?:[^/\\!'#%&'\\(\\)*\\+,\\\\\\-\\.\\/:;<=>\\?@\\[\\]\\^_{|}~\\$//\\x09-\\x0D\\x20\\x85\\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000//\\uFFFE\\uFEFF\\uFFFF//\\u202A-\\u202E\\u061C\\u200E\\u200F\\u2066\\u2067\\u2068\\u2069/](?:-|[^/\\!'#%&'\\(\\)*\\+,\\\\\\-\\.\\/:;<=>\\?@\\[\\]\\^_{|}~\\$//\\x09-\\x0D\\x20\\x85\\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000//\\uFFFE\\uFEFF\\uFFFF//\\u202A-\\u202E\\u061C\\u200E\\u200F\\u2066\\u2067\\u2068\\u2069/])*)?[^/\\!'#%&'\\(\\)*\\+,\\\\\\-\\.\\/:;<=>\\?@\\[\\]\\^_{|}~\\$//\\x09-\\x0D\\x20\\x85\\xA0\\u1680\\u180E\\u2000-\\u200A\\u2028\\u2029\\u202F\\u205F\\u3000//\\uFFFE\\uFEFF\\uFFFF//\\u202A-\\u202E\\u061C\\u200E\\u200F\\u2066\\u2067\\u2068\\u2069/]\\.)(?:(?:(?:삼성|닷컴|닷넷|香格里拉|餐厅|食品|飞利浦|電訊盈科|集团|通販|购物|谷歌|诺基亚|联通|网络|网站|网店|网址|组织机构|移动|珠宝|点看|游戏|淡马锡|机构|書籍|时尚|新闻|政府|政务|招聘|手表|手机|我爱你|慈善|微博|广东|工行|家電|娱乐|天主教|大拿|大众汽车|在线|嘉里大酒店|嘉里|商标|商店|商城|公益|公司|八卦|健康|信息|佛山|企业|中文网|中信|世界|ポイント|ファッション|セール|ストア|コム|グーグル|クラウド|みんな|คอม|संगठन|नेट|कॉम|همراه|موقع|موبايلي|كوم|كاثوليك|عرب|شبكة|بيتك|بازار|العليان|ارامكو|اتصالات|ابوظبي|קום|сайт|рус|орг|онлайн|москва|ком|католик|дети|zuerich|zone|zippo|zip|zero|zara|zappos|yun|youtube|you|yokohama|yoga|yodobashi|yandex|yamaxun|yahoo|yachts|xyz|xxx|xperia|xin|xihuan|xfinity|xerox|xbox|wtf|wtc|wow|world|works|work|woodside|wolterskluwer|wme|winners|wine|windows|win|williamhill|wiki|wien|whoswho|weir|weibo|wedding|wed|website|weber|webcam|weatherchannel|weather|watches|watch|warman|wanggou|wang|walter|walmart|wales|vuelos|voyage|voto|voting|vote|volvo|volkswagen|vodka|vlaanderen|vivo|viva|vistaprint|vista|vision|visa|virgin|vip|vin|villas|viking|vig|video|viajes|vet|versicherung|vermögensberatung|vermögensberater|verisign|ventures|vegas|vanguard|vana|vacations|ups|uol|uno|university|unicom|uconnect|ubs|ubank|tvs|tushu|tunes|tui|tube|trv|trust|travelersinsurance|travelers|travelchannel|travel|training|trading|trade|toys|toyota|town|tours|total|toshiba|toray|top|tools|tokyo|today|tmall|tkmaxx|tjx|tjmaxx|tirol|tires|tips|tiffany|tienda|tickets|tiaa|theatre|theater|thd|teva|tennis|temasek|telefonica|telecity|tel|technology|tech|team|tdk|tci|taxi|tax|tattoo|tatar|tatamotors|target|taobao|talk|taipei|tab|systems|symantec|sydney|swiss|swiftcover|swatch|suzuki|surgery|surf|support|supply|supplies|sucks|style|study|studio|stream|store|storage|stockholm|stcgroup|stc|statoil|statefarm|statebank|starhub|star|staples|stada|srt|srl|spreadbetting|spot|sport|spiegel|space|soy|sony|song|solutions|solar|sohu|software|softbank|social|soccer|sncf|smile|smart|sling|skype|sky|skin|ski|site|singles|sina|silk|shriram|showtime|show|shouji|shopping|shop|shoes|shiksha|shia|shell|shaw|sharp|shangrila|sfr|sexy|sex|sew|seven|ses|services|sener|select|seek|security|secure|seat|search|scot|scor|scjohnson|science|schwarz|schule|school|scholarships|schmidt|schaeffler|scb|sca|sbs|sbi|saxo|save|sas|sarl|sapo|sap|sanofi|sandvikcoromant|sandvik|samsung|samsclub|salon|sale|sakura|safety|safe|saarland|ryukyu|rwe|run|ruhr|rugby|rsvp|room|rogers|rodeo|rocks|rocher|rmit|rip|rio|ril|rightathome|ricoh|richardli|rich|rexroth|reviews|review|restaurant|rest|republican|report|repair|rentals|rent|ren|reliance|reit|reisen|reise|rehab|redumbrella|redstone|red|recipes|realty|realtor|realestate|read|raid|radio|racing|qvc|quest|quebec|qpon|pwc|pub|prudential|pru|protection|property|properties|promo|progressive|prof|productions|prod|pro|prime|press|praxi|pramerica|post|porn|politie|poker|pohl|pnc|plus|plumbing|playstation|play|place|pizza|pioneer|pink|ping|pin|pid|pictures|pictet|pics|piaget|physio|photos|photography|photo|phone|philips|phd|pharmacy|pfizer|pet|pccw|pay|passagens|party|parts|partners|pars|paris|panerai|panasonic|pamperedchef|page|ovh|ott|otsuka|osaka|origins|orientexpress|organic|org|orange|oracle|open|ooo|onyourside|online|onl|ong|one|omega|ollo|oldnavy|olayangroup|olayan|okinawa|office|off|observer|obi|nyc|ntt|nrw|nra|nowtv|nowruz|now|norton|northwesternmutual|nokia|nissay|nissan|ninja|nikon|nike|nico|nhk|ngo|nfl|nexus|nextdirect|next|news|newholland|new|neustar|network|netflix|netbank|net|nec|nba|navy|natura|nationwide|name|nagoya|nadex|nab|mutuelle|mutual|museum|mtr|mtpc|mtn|msd|movistar|movie|mov|motorcycles|moto|moscow|mortgage|mormon|mopar|montblanc|monster|money|monash|mom|moi|moe|moda|mobily|mobile|mobi|mma|mls|mlb|mitsubishi|mit|mint|mini|mil|microsoft|miami|metlife|merckmsd|meo|menu|men|memorial|meme|melbourne|meet|media|med|mckinsey|mcdonalds|mcd|mba|mattel|maserati|marshalls|marriott|markets|marketing|market|map|mango|management|man|makeup|maison|maif|madrid|macys|luxury|luxe|lupin|lundbeck|ltda|ltd|lplfinancial|lpl|love|lotto|lotte|london|lol|loft|locus|locker|loans|loan|llp|llc|lixil|living|live|lipsy|link|linde|lincoln|limo|limited|lilly|like|lighting|lifestyle|lifeinsurance|life|lidl|liaison|lgbt|lexus|lego|legal|lefrak|leclerc|lease|lds|lawyer|law|latrobe|latino|lat|lasalle|lanxess|landrover|land|lancome|lancia|lancaster|lamer|lamborghini|ladbrokes|lacaixa|kyoto|kuokgroup|kred|krd|kpn|kpmg|kosher|komatsu|koeln|kiwi|kitchen|kindle|kinder|kim|kia|kfh|kerryproperties|kerrylogistics|kerryhotels|kddi|kaufen|juniper|juegos|jprs|jpmorgan|joy|jot|joburg|jobs|jnj|jmp|jll|jlc|jio|jewelry|jetzt|jeep|jcp|jcb|java|jaguar|iwc|iveco|itv|itau|istanbul|ist|ismaili|iselect|irish|ipiranga|investments|intuit|international|intel|int|insure|insurance|institute|ink|ing|info|infiniti|industries|inc|immobilien|immo|imdb|imamat|ikano|iinet|ifm|ieee|icu|ice|icbc|ibm|hyundai|hyatt|hughes|htc|hsbc|how|house|hotmail|hotels|hoteles|hot|hosting|host|hospital|horse|honeywell|honda|homesense|homes|homegoods|homedepot|holiday|holdings|hockey|hkt|hiv|hitachi|hisamitsu|hiphop|hgtv|hermes|here|helsinki|help|healthcare|health|hdfcbank|hdfc|hbo|haus|hangout|hamburg|hair|guru|guitars|guide|guge|gucci|guardian|group|grocery|gripe|green|gratis|graphics|grainger|gov|got|gop|google|goog|goodyear|goodhands|goo|golf|goldpoint|gold|godaddy|gmx|gmo|gmbh|gmail|globo|global|gle|glass|glade|giving|gives|gifts|gift|ggee|george|genting|gent|gea|gdn|gbiz|gay|garden|gap|games|game|gallup|gallo|gallery|gal|fyi|futbol|furniture|fund|fun|fujixerox|fujitsu|ftr|frontier|frontdoor|frogans|frl|fresenius|free|fox|foundation|forum|forsale|forex|ford|football|foodnetwork|food|foo|fly|flsmidth|flowers|florist|flir|flights|flickr|fitness|fit|fishing|fish|firmdale|firestone|fire|financial|finance|final|film|fido|fidelity|fiat|ferrero|ferrari|feedback|fedex|fast|fashion|farmers|farm|fans|fan|family|faith|fairwinds|fail|fage|extraspace|express|exposed|expert|exchange|everbank|events|eus|eurovision|etisalat|esurance|estate|esq|erni|ericsson|equipment|epson|epost|enterprises|engineering|engineer|energy|emerck|email|education|edu|edeka|eco|eat|earth|dvr|dvag|durban|dupont|duns|dunlop|duck|dubai|dtv|drive|download|dot|doosan|domains|doha|dog|dodge|doctor|docs|dnp|diy|dish|discover|discount|directory|direct|digital|diet|diamonds|dhl|dev|design|desi|dentist|dental|democrat|delta|deloitte|dell|delivery|degree|deals|dealer|deal|dds|dclk|day|datsun|dating|date|data|dance|dad|dabur|cyou|cymru|cuisinella|csc|cruises|cruise|crs|crown|cricket|creditunion|creditcard|credit|cpa|courses|coupons|coupon|country|corsica|coop|cool|cookingchannel|cooking|contractors|contact|consulting|construction|condos|comsec|computer|compare|company|community|commbank|comcast|com|cologne|college|coffee|codes|coach|clubmed|club|cloud|clothing|clinique|clinic|click|cleaning|claims|cityeats|city|citic|citi|citadel|cisco|circle|cipriani|church|chrysler|chrome|christmas|chloe|chintai|cheap|chat|chase|charity|channel|chanel|cfd|cfa|cern|ceo|center|ceb|cbs|cbre|cbn|cba|catholic|catering|cat|casino|cash|caseih|case|casa|cartier|cars|careers|career|care|cards|caravan|car|capitalone|capital|capetown|canon|cancerresearch|camp|camera|cam|calvinklein|call|cal|cafe|cab|bzh|buzz|buy|business|builders|build|bugatti|budapest|brussels|brother|broker|broadway|bridgestone|bradesco|box|boutique|bot|boston|bostik|bosch|boots|booking|book|boo|bond|bom|bofa|boehringer|boats|bnpparibas|bnl|bmw|bms|blue|bloomberg|blog|blockbuster|blanco|blackfriday|black|biz|bio|bingo|bing|bike|bid|bible|bharti|bet|bestbuy|best|berlin|bentley|beer|beauty|beats|bcn|bcg|bbva|bbt|bbc|bayern|bauhaus|basketball|baseball|bargains|barefoot|barclays|barclaycard|barcelona|bar|bank|band|bananarepublic|banamex|baidu|baby|azure|axa|aws|avianca|autos|auto|author|auspost|audio|audible|audi|auction|attorney|athleta|associates|asia|asda|arte|art|arpa|army|archi|aramco|arab|aquarelle|apple|app|apartments|aol|anz|anquan|android|analytics|amsterdam|amica|amfam|amex|americanfamily|americanexpress|alstom|alsace|ally|allstate|allfinanz|alipay|alibaba|alfaromeo|akdn|airtel|airforce|airbus|aigo|aig|agency|agakhan|africa|afl|afamilycompany|aetna|aero|aeg|adult|ads|adac|actor|active|aco|accountants|accountant|accenture|academy|abudhabi|abogado|able|abc|abbvie|abbott|abb|abarth|aarp|aaa|onion)(?=[^0-9a-zA-Z@+-]|$))|(?:(?:한국|香港|澳門|新加坡|台灣|台湾|中國|中国|გე|ລາວ|ไทย|ලංකා|ഭാരതം|ಭಾರತ|భారత్|சிங்கப்பூர்|இலங்கை|இந்தியா|ଭାରତ|ભારત|ਭਾਰਤ|ভাৰত|ভারত|বাংলা|भारोत|भारतम्|भारत|ڀارت|پاکستان|موريتانيا|مليسيا|مصر|قطر|فلسطين|عمان|عراق|سورية|سودان|تونس|بھارت|بارت|ایران|امارات|المغرب|السعودية|الجزائر|البحرين|الاردن|հայ|қаз|укр|срб|рф|мон|мкд|ею|бел|бг|ευ|ελ|zw|zm|za|yt|ye|ws|wf|vu|vn|vi|vg|ve|vc|va|uz|uy|us|um|uk|ug|ua|tz|tw|tv|tt|tr|tp|to|tn|tm|tl|tk|tj|th|tg|tf|td|tc|sz|sy|sx|sv|su|st|ss|sr|so|sn|sm|sl|sk|sj|si|sh|sg|se|sd|sc|sb|sa|rw|ru|rs|ro|re|qa|py|pw|pt|ps|pr|pn|pm|pl|pk|ph|pg|pf|pe|pa|om|nz|nu|nr|np|no|nl|ni|ng|nf|ne|nc|na|mz|my|mx|mw|mv|mu|mt|ms|mr|mq|mp|mo|mn|mm|ml|mk|mh|mg|mf|me|md|mc|ma|ly|lv|lu|lt|ls|lr|lk|li|lc|lb|la|kz|ky|kw|kr|kp|kn|km|ki|kh|kg|ke|jp|jo|jm|je|it|is|ir|iq|io|in|im|il|ie|id|hu|ht|hr|hn|hm|hk|gy|gw|gu|gt|gs|gr|gq|gp|gn|gm|gl|gi|gh|gg|gf|ge|gd|gb|ga|fr|fo|fm|fk|fj|fi|eu|et|es|er|eh|eg|ee|ec|dz|do|dm|dk|dj|de|cz|cy|cx|cw|cv|cu|cr|co|cn|cm|cl|ck|ci|ch|cg|cf|cd|cc|ca|bz|by|bw|bv|bt|bs|br|bq|bo|bn|bm|bl|bj|bi|bh|bg|bf|be|bd|bb|ba|az|ax|aw|au|at|as|ar|aq|ao|an|am|al|ai|ag|af|ae|ad|ac)(?=[^0-9a-zA-Z@+-]|$))|(?:xn--[\\-0-9a-z]+))))(?::([0-9]+))?(\\/(?:(?:[a-z\\u0400-\\u04FF0-9!\\*';:=\\+,\\.\\$\\/%#\\[\\]\\-\\u2013_~@\\|&\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0100-\\u024F\\u0253\\u0254\\u0256\\u0257\\u0259\\u025B\\u0263\\u0268\\u026F\\u0272\\u0289\\u028B\\u02BB\\u0300-\\u036F\\u1E00-\\u1EFF]*(?:\\((?:[a-z\\u0400-\\u04FF0-9!\\*';:=\\+,\\.\\$\\/%#\\[\\]\\-\\u2013_~@\\|&\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0100-\\u024F\\u0253\\u0254\\u0256\\u0257\\u0259\\u025B\\u0263\\u0268\\u026F\\u0272\\u0289\\u028B\\u02BB\\u0300-\\u036F\\u1E00-\\u1EFF]+|(?:[a-z\\u0400-\\u04FF0-9!\\*';:=\\+,\\.\\$\\/%#\\[\\]\\-\\u2013_~@\\|&\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0100-\\u024F\\u0253\\u0254\\u0256\\u0257\\u0259\\u025B\\u0263\\u0268\\u026F\\u0272\\u0289\\u028B\\u02BB\\u0300-\\u036F\\u1E00-\\u1EFF]*\\([a-z\\u0400-\\u04FF0-9!\\*';:=\\+,\\.\\$\\/%#\\[\\]\\-\\u2013_~@\\|&\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0100-\\u024F\\u0253\\u0254\\u0256\\u0257\\u0259\\u025B\\u0263\\u0268\\u026F\\u0272\\u0289\\u028B\\u02BB\\u0300-\\u036F\\u1E00-\\u1EFF]+\\)[a-z\\u0400-\\u04FF0-9!\\*';:=\\+,\\.\\$\\/%#\\[\\]\\-\\u2013_~@\\|&\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0100-\\u024F\\u0253\\u0254\\u0256\\u0257\\u0259\\u025B\\u0263\\u0268\\u026F\\u0272\\u0289\\u028B\\u02BB\\u0300-\\u036F\\u1E00-\\u1EFF]*))\\)[a-z\\u0400-\\u04FF0-9!\\*';:=\\+,\\.\\$\\/%#\\[\\]\\-\\u2013_~@\\|&\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0100-\\u024F\\u0253\\u0254\\u0256\\u0257\\u0259\\u025B\\u0263\\u0268\\u026F\\u0272\\u0289\\u028B\\u02BB\\u0300-\\u036F\\u1E00-\\u1EFF]*)*[\\+\\-a-z\\u0400-\\u04FF0-9=_#\\/\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0100-\\u024F\\u0253\\u0254\\u0256\\u0257\\u0259\\u025B\\u0263\\u0268\\u026F\\u0272\\u0289\\u028B\\u02BB\\u0300-\\u036F\\u1E00-\\u1EFF]|(?:\\((?:[a-z\\u0400-\\u04FF0-9!\\*';:=\\+,\\.\\$\\/%#\\[\\]\\-\\u2013_~@\\|&\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0100-\\u024F\\u0253\\u0254\\u0256\\u0257\\u0259\\u025B\\u0263\\u0268\\u026F\\u0272\\u0289\\u028B\\u02BB\\u0300-\\u036F\\u1E00-\\u1EFF]+|(?:[a-z\\u0400-\\u04FF0-9!\\*';:=\\+,\\.\\$\\/%#\\[\\]\\-\\u2013_~@\\|&\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0100-\\u024F\\u0253\\u0254\\u0256\\u0257\\u0259\\u025B\\u0263\\u0268\\u026F\\u0272\\u0289\\u028B\\u02BB\\u0300-\\u036F\\u1E00-\\u1EFF]*\\([a-z\\u0400-\\u04FF0-9!\\*';:=\\+,\\.\\$\\/%#\\[\\]\\-\\u2013_~@\\|&\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0100-\\u024F\\u0253\\u0254\\u0256\\u0257\\u0259\\u025B\\u0263\\u0268\\u026F\\u0272\\u0289\\u028B\\u02BB\\u0300-\\u036F\\u1E00-\\u1EFF]+\\)[a-z\\u0400-\\u04FF0-9!\\*';:=\\+,\\.\\$\\/%#\\[\\]\\-\\u2013_~@\\|&\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0100-\\u024F\\u0253\\u0254\\u0256\\u0257\\u0259\\u025B\\u0263\\u0268\\u026F\\u0272\\u0289\\u028B\\u02BB\\u0300-\\u036F\\u1E00-\\u1EFF]*))\\)))|(?:@[a-z\\u0400-\\u04FF0-9!\\*';:=\\+,\\.\\$\\/%#\\[\\]\\-\\u2013_~@\\|&\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\xFF\\u0100-\\u024F\\u0253\\u0254\\u0256\\u0257\\u0259\\u025B\\u0263\\u0268\\u026F\\u0272\\u0289\\u028B\\u02BB\\u0300-\\u036F\\u1E00-\\u1EFF]+\\/))*)?(\\?[a-z0-9!?\\*'@\\(\\);:&=\\+\\$\\/%#\\[\\]\\-_\\.,~|]*[a-z0-9\\-_&=#\\/])?))",Zn="gi",Ot={source:Yn,flags:Zn};var Jn={PHANPY_CLIENT_NAME:"Phanpy",PHANPY_WEBSITE:"https://phanpy.social",PHANPY_LINGVA_INSTANCES:"lingva.phanpy.social lingva.lunar.icu lingva.garudalinux.org translate.plausibility.cloud",PHANPY_PRIVACY_POLICY_URL:"https://github.com/cheeaun/phanpy/blob/main/PRIVACY.MD",VITE_APP_ENV:"production",BASE_URL:"./",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const{PHANPY_IMG_ALT_API_URL:vt,PHANPY_GIPHY_API_KEY:Xn}=Jn,Qn=Ct.reduce((s,e)=>{const[n,o,r]=e;return s[n]={common:o,native:r},s},{}),Jt={"5 minutes":5*60,"30 minutes":30*60,"1 hour":60*60,"6 hours":6*60*60,"12 hours":12*60*60,"1 day":24*60*60,"3 days":3*24*60*60,"7 days":7*24*60*60},ei=Object.values(Jt),Ht=24*60*60,Nt=s=>{if(!s)return Ht;const e=(new Date(s).getTime()-Date.now())/1e3;return ei.find(n=>n>=e)||Ht},ve=document.createElement("ul");ve.role="listbox";ve.className="text-expander-menu";const ti=16,ni=new IntersectionObserver(s=>{s.forEach(e=>{if(e.isIntersecting){const{left:n,width:o}=e.boundingClientRect,{innerWidth:r}=window;n+o>r&&(ve.style.left=r-o-ti+"px")}})});ni.observe(ve);const ye=bn([new Intl.DateTimeFormat().resolvedOptions().locale,...navigator.languages],Ct.map(s=>s[0]),"en"),Xt=new RegExp(Ot.source,Ot.flags),ii=/(^|[^\/\w])@(([a-z0-9_]+)@[a-z0-9\.\-]+[a-z0-9]+)/gi,si="$2xxxxxxxxxxxxxxxxxxxxxxx";function ai(s){return s.replace(Xt,si).replace(ii,"$1@$3")}const oi=/[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?/i,ri=new RegExp(`(^|[^=\\/\\w])(@${oi.source}(?:@[\\p{L}\\w.-]+[\\w]+)?)`,"uig"),li=new RegExp("(^|[^=\\/\\w])(#[a-z0-9_]+([a-z0-9_.]+[a-z0-9_]+)?)(?![\\/\\w])","ig"),ci="[a-zA-Z0-9_]{2,}",ui=new RegExp(`(^|[^=\\/\\w])(:${ci}:)(?=[^A-Za-z0-9_:]|$)`,"g"),di=new Intl.Segmenter;function hi(s,{maxCharacters:e=1/0}){let n=s.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'");const{composerCharacterCount:o}=re;if(o>e){let r="",p="";const u=di.segment(n);for(const{segment:v,index:g}of u)g"),r+p}return n.replace(Xt,'$2$3').replace(ri,'$1$2').replace(li,'$1$2').replace(ui,'$1$2')}const pi=new Intl.RelativeTimeFormat,Et=100;function Ai({onClose:s,replyToStatus:e,editStatus:n,draftStatus:o,standalone:r,hasOpener:p}){var Mt;const{masto:u,instance:v}=Ft(),[g,R]=H("default"),C=W((o==null?void 0:o.uid)||dn()),k=An(),A=k.info,Z=Yt(),{statuses:{maxCharacters:D,maxMediaAttachments:I,charactersReservedPerUrl:se}={},mediaAttachments:{supportedMimeTypes:J=[],imageSizeLimit:c,imageMatrixLimit:h,videoSizeLimit:m,videoMatrixLimit:f,videoFrameRateLimit:E}={},polls:{maxOptions:y,maxCharactersPerOption:B,maxExpiration:q,minExpiration:le}={}}=Z||{},S=W(),X=W(),[V,U]=H("public"),[j,te]=H(!1),[O,ie]=H(ze.session.get("currentLanguage")||ye),ae=W(O),[M,z]=H([]),[$,L]=H(null),N=ze.account.get("preferences")||{},Q=()=>{S.current&&S.current.dispatchEvent(new Event("input"))},oe=()=>{setTimeout(()=>{var a,l,b;S.current&&((l=(a=o==null?void 0:o.status)==null?void 0:a.startsWith)!=null&&l.call(a,` +`)&&(S.current.selectionStart=0,S.current.selectionEnd=0),(b=S.current)==null||b.focus())},300)};ee(()=>{if(e){const{spoilerText:a,visibility:l,language:b,sensitive:d}=e;a&&X.current&&(X.current.value=a);const x=[...new Set([e.account.acct,...e.mentions.map(w=>w.acct)])].filter(w=>w!==A.acct);x.length>0&&(S.current.value=`${x.map(w=>`@${w}`).join(" ")} `,Q()),oe(),U(l==="public"&&N["posting:default:visibility"]?N["posting:default:visibility"]:l),ie(b||N.postingDefaultLanguage||ye),te(d&&!!a)}else if(n){const{visibility:a,language:l,sensitive:b,poll:d,mediaAttachments:_}=n,x=!!(d!=null&&d.options)&&{...d,options:d.options.map(w=>(w==null?void 0:w.title)||w),expiresIn:(d==null?void 0:d.expiresIn)||Nt(d.expiresAt)};R("loading"),(async()=>{try{const w=await u.v1.statuses.$select(n.id).source.fetch(),{text:F,spoilerText:P}=w;S.current.value=F,S.current.dataset.source=F,Q(),oe(),X.current.value=P,U(a),ie(l||presf.postingDefaultLanguage||ye),te(b),x&&L(x),z(_),R("default")}catch(w){alert((w==null?void 0:w.reason)||w),R("error")}})()}else oe(),N["posting:default:visibility"]&&U(N["posting:default:visibility"]),N["posting:default:language"]&&ie(N["posting:default:language"]),N["posting:default:sensitive"]&&te(N["posting:default:sensitive"]);if(o){const{status:a,spoilerText:l,visibility:b,language:d,sensitive:_,poll:x,mediaAttachments:w}=o,F=!!(x!=null&&x.options)&&{...x,options:x.options.map(P=>(P==null?void 0:P.title)||P),expiresIn:(x==null?void 0:x.expiresIn)||Nt(x.expiresAt)};S.current.value=a,Q(),oe(),l&&(X.current.value=l),b&&U(b),ie(d||N.postingDefaultLanguage||ye),_!==null&&te(_),F&&L(F),w&&z(w)}},[o,n,e]);const ue=W(),ge="You have unsaved changes. Discard this post?",be=()=>{const{value:a,dataset:l}=S.current;if(g==="loading")return!1;const b=(a||"").trim().replace(new RegExp("^\\p{White_Space}+|\\p{White_Space}+$","gu"),""),d=M.length>0;if(!b&&!d||M.length>0&&M.every(P=>P.id))return!0;const x=(e==null?void 0:e.account.id)===A.id,w=e&&a.trim()===`@${e.account.acct}`;return!!(!x&&w||a===(l==null?void 0:l.source))},Ke=()=>be()?!0:confirm(ge);ee(()=>{const a=l=>{be()||(l.preventDefault(),l.returnValue=ge)};return window.addEventListener("beforeunload",a,{capture:!0}),()=>window.removeEventListener("beforeunload",a,{capture:!0})},[]);const tn=()=>{const{value:a}=S.current,{value:l}=X.current;return Pt(ai(a))+Pt(l)},lt=()=>{const a=tn();re.composerCharacterCount=a};ee(lt,[]);const Lt=window.CloseWatcher,ct=W(!1);je("esc",()=>{ct.current=!0},{enabled:!Lt,enableOnFormTags:!0}),je("esc",()=>{!r&&ct.current&&Ke()&&s(),ct.current=!1},{enabled:!Lt,enableOnFormTags:!0,keyup:!0,ignoreEventWhen:a=>{const l=document.querySelectorAll("#modal-container > *"),b=!!l,d=l.length===1&&l[0].querySelector("#compose-container");return b&&!d}}),yn(()=>{!r&&Ke()&&s()},[r,Ke,s]);const At=W({}),St=()=>`${Sn()}#${C.current}`,ut=()=>{if(n||re.composerState.minimized)return;const a=St(),l={key:a,replyTo:e?{id:e.id,account:{id:e.account.id,username:e.account.username,acct:e.account.acct}}:null,draftStatus:{uid:C.current,status:S.current.value,spoilerText:X.current.value,visibility:V,language:O,sensitive:j,poll:$,mediaAttachments:M}};!hn(l,At.current)&&!be()&&(Tt.drafts.set(a,{...l,state:"unsaved",updatedAt:Date.now()}).then(()=>{}).catch(b=>{}),At.current=structuredClone(l))};xn(ut,5e3),ee(()=>(ut(),()=>{Tt.drafts.del(St())}),[]),ee(()=>{const a=b=>{const{items:d}=b.clipboardData||b.dataTransfer,_=[];for(let x=0;x0&&M.length>=I){alert(`You can only attach up to ${I} files.`);return}if(_.length>0){b.preventDefault(),b.stopPropagation();const x=I-M.length,w=_.slice(0,x);if(w.length<=0){alert(`You can only attach up to ${I} files.`);return}const F=w.map(P=>({file:P,type:P.type,size:P.size,url:URL.createObjectURL(P),id:null,description:null}));z([...M,...F])}};window.addEventListener("paste",a);const l=b=>{b.dataTransfer.items.length>0&&(b.preventDefault(),b.stopPropagation())};return window.addEventListener("dragover",l),window.addEventListener("drop",a),()=>{window.removeEventListener("paste",a),window.removeEventListener("dragover",l),window.removeEventListener("drop",a)}},[M]);const[Ve,dt]=H(!1),[Ge,Ye]=H(!1),[nn,ht]=H(!1),[he,sn]=H(null),[an,on]=Pe(()=>{const a=[],l=[],{contentTranslationHideLanguages:b=[]}=re.settings;return Ct.forEach(d=>{const[_]=d;_===O||_===ae.current||_===ye||b.includes(_)||he!=null&&he.length&&he.includes(_)?a.push(d):l.push(d)}),a.sort(([d,_],[x,w])=>d===O?-1:x===O?1:_.localeCompare(w)),l.sort(([d,_],[x,w])=>_.localeCompare(w)),[a,l]},[O,he]),It=Pe(()=>!!(e!=null&&e.createdAt)&&Math.floor((Date.now()-new Date(e.createdAt))/(1e3*60*60*24*30)),[e]),rn=()=>{ut(),re.composerState.minimized=!0};return t("div",{id:"compose-container-outer",children:[t("div",{id:"compose-container",class:r?"standalone":"",children:[t("div",{class:"compose-top",children:[(A==null?void 0:A.avatarStatic)&&t(Vt,{account:A,accountInstance:k.instanceURL,hideDisplayName:!0,useAvatarStatic:!0}),r?p&&t("button",{type:"button",class:"light pop-button",disabled:g==="loading",onClick:()=>{var a;if(!window.opener){alert("Looks like you closed the parent window.");return}if(window.opener.__STATES__.showCompose){if((a=window.opener.__STATES__.composerState)!=null&&a.publishing){alert("Looks like you already have a compose field open in the parent window and currently publishing. Please wait for it to be done and try again later.");return}if(!confirm("Looks like you already have a compose field open in the parent window. Popping in this window will discard the changes you made in the parent window. Continue?"))return}s({fn:()=>{const l={editStatus:n,replyToStatus:e,draftStatus:{uid:C.current,status:S.current.value,spoilerText:X.current.value,visibility:V,language:O,sensitive:j,poll:$,mediaAttachments:M}};window.opener.__COMPOSE__=l,window.opener.__STATES__.showCompose?(window.opener.__STATES__.showCompose=!1,setTimeout(()=>{window.opener.__STATES__.showCompose=!0},10)):window.opener.__STATES__.showCompose=!0,window.opener.__STATES__.composerState.minimized&&(window.opener.__STATES__.composerState.minimized=!1)}})},children:t(K,{icon:"popin",alt:"Pop in"})}):t("span",{class:"compose-controls",children:[t("button",{type:"button",class:"plain4 pop-button",disabled:g==="loading",onClick:()=>{wn({editStatus:n,replyToStatus:e,draftStatus:{uid:C.current,status:S.current.value,spoilerText:X.current.value,visibility:V,language:O,sensitive:j,poll:$,mediaAttachments:M}})&&s()},children:t(K,{icon:"popout",alt:"Pop out"})}),t("button",{type:"button",class:"plain4 min-button",onClick:rn,children:t(K,{icon:"minimize",alt:"Minimize"})})," ",t("button",{type:"button",class:"light close-button",disabled:g==="loading",onClick:()=>{Ke()&&s()},children:t(K,{icon:"x"})})]})]}),!!e&&t("div",{class:"status-preview",children:[t(_t,{status:e,size:"s",previewMode:!0}),t("div",{class:"status-preview-legend reply-to",children:["Replying to @",e.account.acct||e.account.username,"’s post",It>=3&&t(Ce,{children:[" ","(",t("strong",{children:pi.format(-It,"month")}),")"]})]})]}),!!n&&t("div",{class:"status-preview",children:[t(_t,{status:n,size:"s",previewMode:!0}),t("div",{class:"status-preview-legend",children:"Editing source post"})]}),t("form",{ref:ue,class:`form-visibility-${V}`,style:{pointerEvents:g==="loading"?"none":"auto",opacity:g==="loading"?.5:1},onKeyDown:a=>{a.key==="Enter"&&(a.ctrlKey||a.metaKey)&&ue.current.dispatchEvent(new Event("submit",{cancelable:!0}))},onSubmit:a=>{a.preventDefault();const l=new FormData(a.target),b=Object.fromEntries(l.entries());let{status:d,visibility:_,sensitive:x,spoilerText:w}=b;if(x=x==="on",$){if($.options.length<2){alert("Poll must have at least 2 options");return}if($.options.some(F=>F==="")){alert("Some poll choices are empty");return}}M.length>0&&M.some(P=>{var ne,_e;return!((_e=(ne=P.description)==null?void 0:ne.trim)!=null&&_e.call(ne))})&&!confirm("Some media have no descriptions. Continue?")||(w=x&&w||void 0,d=d===""?void 0:d,re.composerState.publishing=!0,R("loading"),(async()=>{try{if(M.length>0){const ne=M.map(pe=>{const{file:Ze,description:ln,id:cn}=pe;if(cn)return pe;{const un=qt({file:Ze,description:ln});return u.v2.media.create(un).then(pt=>(pt.id&&(pe.id=pt.id),pt))}}),_e=await Promise.allSettled(ne);if(_e.some(pe=>{var Ze;return pe.status==="rejected"||!((Ze=pe.value)!=null&&Ze.id)})){re.composerState.publishing=!1,re.composerState.publishingError=!0,R("error"),_e.forEach(pe=>{pe.status==="rejected"&&alert(pe.reason||`Attachment #${i} failed`)});return}}let F={status:d,spoiler_text:w,language:O,sensitive:x,poll:$,media_ids:M.map(ne=>ne.id)};n&&Gt("@mastodon/edit-media-attributes")?F.media_attributes=M.map(ne=>({id:ne.id,description:ne.description})):n||(F.visibility=_,F.in_reply_to_id=(e==null?void 0:e.id)||void 0),F=qt(F);let P;if(n)P=await u.v1.statuses.$select(n.id).update(F),In(P,v,{skipThreading:!0});else try{P=await u.v1.statuses.create(F,{requestInit:{headers:{"Idempotency-Key":C.current}}})}catch{P=await u.v1.statuses.create(F)}re.composerState.minimized=!1,re.composerState.publishing=!1,R("default"),s({type:n?"edit":e?"reply":"post",newStatus:P,instance:v})}catch(F){re.composerState.publishing=!1,re.composerState.publishingError=!0,alert((F==null?void 0:F.reason)||F),R("error")}})())},children:[t("div",{class:"toolbar stretch",children:[t("input",{ref:X,type:"text",name:"spoilerText",placeholder:"Content warning",disabled:g==="loading",class:"spoiler-text-field",lang:O,spellCheck:"true",dir:"auto",style:{opacity:j?1:0,pointerEvents:j?"auto":"none"},onInput:()=>{lt()}}),t("label",{class:`toolbar-button ${j?"highlight":""}`,title:"Content warning or sensitive media",children:[t("input",{name:"sensitive",type:"checkbox",checked:j,disabled:g==="loading",onChange:a=>{var b,d;const l=a.target.checked;te(l),l?(b=X.current)==null||b.focus():(d=S.current)==null||d.focus()}}),t(K,{icon:`eye-${j?"close":"open"}`})]})," ",t("label",{class:`toolbar-button ${V!=="public"&&!j?"show-field":""} ${V!=="public"?"highlight":""}`,title:`Visibility: ${V}`,children:[t(K,{icon:kn[V],alt:V}),t("select",{name:"visibility",value:V,onChange:a=>{U(a.target.value)},disabled:g==="loading"||!!n,children:[t("option",{value:"public",children:["Public ",t(K,{icon:"earth"})]}),t("option",{value:"unlisted",children:"Unlisted"}),t("option",{value:"private",children:"Followers only"}),t("option",{value:"direct",children:"Private mention"})]})]})," "]}),t(fi,{ref:S,placeholder:e?"Post your reply":n?"Edit your post":"What are you doing?",required:(M==null?void 0:M.length)===0,disabled:g==="loading",lang:O,onInput:()=>{lt()},maxCharacters:D,performSearch:a=>{const{type:l,q:b,limit:d}=a;return l==="accounts"?u.v1.accounts.search.list({q:b,limit:d,resolve:!1}):u.v2.search.fetch(a)},onTrigger:a=>{(a==null?void 0:a.name)==="custom-emojis"?Ye({defaultSearchTerm:(a==null?void 0:a.defaultSearchTerm)||null}):(a==null?void 0:a.name)==="mention"?dt({defaultSearchTerm:(a==null?void 0:a.defaultSearchTerm)||null}):(a==null?void 0:a.name)==="auto-detect-language"&&(a!=null&&a.languages)&&sn(a.languages)}}),(M==null?void 0:M.length)>0&&t("div",{class:"media-attachments",children:[M.map((a,l)=>{const{id:b,file:d}=a,_=(d==null?void 0:d.size)+(d==null?void 0:d.type)+(d==null?void 0:d.name);return t(bi,{attachment:a,disabled:g==="loading",lang:O,onDescriptionChange:x=>{z(w=>{const F=[...w];return F[l].description=x,F})},onRemove:()=>{z(x=>x.filter((w,F)=>F!==l))}},b||_||l)}),t("label",{class:"media-sensitive",children:[t("input",{name:"sensitive",type:"checkbox",checked:j,disabled:g==="loading",onChange:a=>{const l=a.target.checked;te(l)}})," ",t("span",{children:"Mark media as sensitive"})," ",t(K,{icon:`eye-${j?"close":"open"}`})]})]}),!!$&&t(yi,{lang:O,maxOptions:y,maxExpiration:q,minExpiration:le,maxCharactersPerOption:B,poll:$,disabled:g==="loading",onInput:a=>{if(a){const l={...a};L(l)}else L(null)}}),t("div",{class:"toolbar wrap",style:{justifyContent:"flex-end"},children:[t("span",{children:[t("label",{class:"toolbar-button",children:[t("input",{type:"file",accept:J.join(","),multiple:M.length=I||!!$,onChange:a=>{const l=a.target.files;if(!l)return;const b=Array.from(l).map(d=>({file:d,type:d.type,size:d.size,url:URL.createObjectURL(d),id:null,description:null}));M.length+b.length>I?alert(`You can only attach up to ${I} files.`):z(d=>d.concat(b)),a.target.value=""}}),t(K,{icon:"attachment"})]}),y==null||y>1&&t(Ce,{children:t("button",{type:"button",class:"toolbar-button",disabled:g==="loading"||!!$||!!M.length,onClick:()=>{L({options:["",""],expiresIn:24*60*60,multiple:!1})},children:t(K,{icon:"poll",alt:"Add poll"})})}),t("button",{type:"button",class:"toolbar-button",disabled:g==="loading",onClick:()=>{Ye(!0)},children:t(K,{icon:"emoji2"})}),!!re.settings.composerGIFPicker&&t("button",{type:"button",class:"toolbar-button gif-picker-button",disabled:g==="loading"||M.length>=I||!!$,onClick:()=>{ht(!0)},children:t("span",{children:"GIF"})})]}),t("div",{class:"spacer"}),g==="loading"?t(rt,{abrupt:!0}):t(vi,{maxCharacters:D,hidden:g==="loading"}),t("label",{class:`toolbar-button ${O!==ae.current||he!=null&&he.length&&!he.includes(O)?"highlight":""}`,children:[t("span",{class:"icon-text",children:(Mt=Qn[O])==null?void 0:Mt.native}),t("select",{name:"language",value:O,onChange:a=>{const{value:l}=a.target;ie(l||ye),ze.session.set("currentLanguage",l||ye)},disabled:g==="loading",children:[an.map(([a,l,b])=>t("option",{value:a,children:[l," (",b,")"]},a)),t("hr",{}),on.map(([a,l,b])=>t("option",{value:a,children:[l," (",b,")"]},a))]})]})," ",t("button",{type:"submit",class:"large",disabled:g==="loading",children:e?"Reply":n?"Update":"Post"})]})]})]}),Ve&&t(Qe,{onClick:a=>{a.target===a.currentTarget&&dt(!1)},children:t(xi,{masto:u,instance:v,onClose:()=>{dt(!1)},defaultSearchTerm:Ve==null?void 0:Ve.defaultSearchTerm,onSelect:a=>{const l=S.current;if(!l)return;const{selectionStart:b,selectionEnd:d}=l,_=l.value,x=_.slice(0,b),w=x?/[\s\t\n\r]$/.test(x)?"":" ":"",F=_.slice(d),P=/^[\s\t\n\r]/.test(F)?"":" ",ne=x+w+"@"+a+P+F;l.value=ne,l.selectionStart=l.selectionEnd=d+1+a.length+P.length,l.focus(),l.dispatchEvent(new Event("input"))}})}),Ge&&t(Qe,{onClick:a=>{a.target===a.currentTarget&&Ye(!1)},children:t(wi,{masto:u,instance:v,onClose:()=>{Ye(!1)},defaultSearchTerm:Ge==null?void 0:Ge.defaultSearchTerm,onSelect:a=>{const l=S.current;if(!l)return;const{selectionStart:b,selectionEnd:d}=l,_=l.value,x=_.slice(0,b),w=x?/[\s\t\n\r]$/.test(x)?"":" ":"",F=_.slice(d),P=/^[\s\t\n\r]/.test(F)?"":" ",ne=x+w+a+P+F;l.value=ne,l.selectionStart=l.selectionEnd=d+a.length+P.length,l.focus(),l.dispatchEvent(new Event("input"))}})}),nn&&t(Qe,{onClick:a=>{a.target===a.currentTarget&&ht(!1)},children:t(Ei,{onClose:()=>ht(!1),onSelect:({url:a,type:l,alt_text:b})=>{if(M.length>=I){alert(`You can only attach up to ${I} files.`);return}(async()=>{var _,x;let d;try{d=xe({text:"Downloading GIF…",duration:-1});const w=await fetch(a,{referrerPolicy:"no-referrer"}).then(ne=>ne.blob()),F=new File([w],l==="video/mp4"?"video.mp4":"image.gif",{type:l}),P=[...M,{file:F,type:l,size:F.size,id:null,description:b||""}];z(P),(_=d==null?void 0:d.hideToast)==null||_.call(d)}catch{(x=d==null?void 0:d.hideToast)==null||x.call(d),xe("Failed to download GIF")}})()}})})]})}function Ut(s){if(!s)return;const{value:e,offsetHeight:n,scrollHeight:o,clientHeight:r}=s;if(np.visibleInPicker),r=new pn(o,{keys:["shortcode"],findAllMatches:!0});return[o,r]}const Qt=Mn(mi,{matchesArg:(s,e)=>s.instance===e.instance,maxAge:30*60*1e3}),gi=s=>{const e=mn(s);return e!=null&&e.length?e.slice(0,2).map(n=>n.lang):null},fi=fn((s,e)=>{var J;const{masto:n,instance:o}=Ft(),[r,p]=H(((J=e.current)==null?void 0:J.value)||""),{maxCharacters:u,performSearch:v=()=>{},onTrigger:g=()=>{},...R}=s,C=W();ee(()=>{Qt(o,n).then(c=>{const[h,m]=c;C.current=m}).catch(c=>{})},[]);const k=W(),A=W("");ee(()=>{let c,h,m;return k.current&&(c=f=>{var le;const{key:E,provide:y,text:B}=f.detail;if(A.current=B,B===""){y(Promise.resolve({matched:!1}));return}if(E===":"){const S=(le=C.current)==null?void 0:le.search(B,{limit:5});let X="";S.forEach(({item:V})=>{const{shortcode:U,url:j}=V;X+=` +
  • + + ${fe(U)} +
  • `}),X+=`
  • More…
  • `,ve.innerHTML=X,y(Promise.resolve({matched:S.length>0,fragment:ve}));return}const q={"@":"accounts","#":"hashtags"}[E];y(new Promise(S=>{v({type:q,q:B,limit:5}).then(V=>{if(B!==A.current)return;const U=V[q]||V;let j="";U.forEach(te=>{var Q;const{name:O,avatarStatic:ie,displayName:ae,username:M,acct:z,emojis:$,history:L}=te,N=En(ae,$);if(z)j+=` +
  • + + + + + ${N||M} +
    @${fe(z)} +
    +
  • + `;else{const oe=(Q=L==null?void 0:L.reduce)==null?void 0:Q.call(L,(ue,ge)=>ue+ +ge.uses,0);j+=` +
  • + #${fe(O)} + ${oe?`${Fn(oe)}`:""} +
  • + `}}),q==="accounts"&&(j+=`
  • More…
  • `),ve.innerHTML=j,S({matched:U.length>0,fragment:ve})})}))},k.current.addEventListener("text-expander-change",c),h=f=>{const{key:E,item:y}=f.detail,{value:B,more:q}=y.dataset;E===":"?(f.detail.value=B?`:${B}:`:"​",q&&(f.detail.continue=!0,setTimeout(()=>{g==null||g({name:"custom-emojis",defaultSearchTerm:q})},300))):E==="@"?(f.detail.value=B?`@${B} `:"​",q&&(f.detail.continue=!0,setTimeout(()=>{g==null||g({name:"mention",defaultSearchTerm:q})},300))):f.detail.value=`${E}${B}`},k.current.addEventListener("text-expander-value",h),m=f=>{const{input:E}=f.detail;if(p(E.value),e.current){const y=new Event("input",{bubbles:!0});e.current.dispatchEvent(y)}},k.current.addEventListener("text-expander-committed",m)),()=>{k.current&&(k.current.removeEventListener("text-expander-change",c),k.current.removeEventListener("text-expander-value",h),k.current.removeEventListener("text-expander-committed",m))}},[]),ee(()=>{const c=e.current;if(!c)return;new ResizeObserver(()=>{if(k.current){const{height:m}=c.getBoundingClientRect();k.current.style.height=m+"px"}}).observe(c)},[]);const Z=W(0),D=W(),I=gn(c=>{var f;if(!D.current)return;if(Z.current>3){D.current.innerHTML="",D.current=null,(f=I==null?void 0:I.cancel)==null||f.call(I);return}let h,m;Z.current<=3&&(h=Date.now()),D.current.innerHTML=hi(c,{maxCharacters:u})+` +`,Z.current<=3&&(m=Date.now()),h&&m&&m-h>50&&Z.current++},500),se=ot(()=>{var f,E;const c=(f=D.current)==null?void 0:f.cloneNode(!0);if(!c)return;c.querySelectorAll("mark").forEach(y=>{y.remove()});const h=(E=c.innerText)==null?void 0:E.trim();if(!h)return;const m=gi(h);m!=null&&m.length&&(g==null||g({name:"auto-detect-language",languages:m}))},2e3);return t("text-expander",{ref:k,keys:"@ # :",class:"compose-field-container",children:[t("textarea",{class:"compose-field",autoCapitalize:"sentences",autoComplete:"on",autoCorrect:"on",spellCheck:"true",dir:"auto",rows:"6",cols:"50",...R,ref:e,name:"status",value:r,onKeyDown:c=>{const{key:h,target:m}=c;if(h==="Enter"&&!(c.ctrlKey||c.metaKey))try{const{value:f,selectionStart:E}=m,B=f.slice(0,E).split(` +`).slice(-1)[0];if(B&&/^\s*(-|\d+\.)\s/.test(B)){const[q,le,S,X,V]=B.match(/^(\s*)(-|\d+\.)(\s+)(.+)?/)||[];if(V){c.preventDefault();const[U]=S.match(/\d+/)||[],j=U?`${+U+1}.`:"-",te=` +${le}${j}${X}`;m.setRangeText(te,E,E);const O=E+te.length;m.setSelectionRange(O,O)}else{const U=E-B.length;m.setRangeText("",U,E)}Ut(m),m.dispatchEvent(new Event("input"))}}catch{}D.current&&(D.current.scrollTop=m.scrollTop)},onInput:c=>{var f;const{target:h}=c,m=h.value.replace(/\u200b/g,"");p(m),Ut(h),(f=s.onInput)==null||f.call(s,c),I(m),se()},style:{width:"100%",height:"4em"},onScroll:c=>{if(D.current){const{scrollTop:h}=c.target;D.current.scrollTop=h}}}),t("div",{ref:D,class:"compose-highlight","aria-hidden":"true"})]})});function vi({maxCharacters:s=500,hidden:e}){const o=vn(re).composerCharacterCount,r=s-o;return e?t("span",{class:"char-counter",hidden:!0}):t("span",{class:"char-counter",title:`${r}/${s}`,style:{"--percentage":o/s*100},children:[t("meter",{class:`${r<=-10?"explode":r<=0?"danger":r<=20?"warning":""}`,value:o,max:s}),t("span",{class:"counter",children:r})]})}function Xe(s){const e=["bytes","KB","MB","GB","TB","PB","EB","ZB","YB"];let n=0;for(;s>=1024;)s/=1024,n++;return`${s.toFixed(0).toLocaleString()} ${e[n]}`}function Wt(s,e,n,o){const r=Math.sqrt(e/s),p=Math.floor(n*r),u=Math.floor(o*r);return{newWidth:p,newHeight:u}}function bi({attachment:s,disabled:e,lang:n,onDescriptionChange:o=()=>{},onRemove:r=()=>{}}){const[p,u]=H("default"),v=Gt("@mastodon/edit-media-attributes"),{type:g,id:R,file:C}=s,k=Pe(()=>C?URL.createObjectURL(C):s.url,[C,s.url]),A=!!(C!=null&&C.size),Z=A?Yt():{},{mediaAttachments:{imageSizeLimit:D,imageMatrixLimit:I,videoSizeLimit:se,videoMatrixLimit:J,videoFrameRateLimit:c}={}}=Z||{},[h,m]=H(()=>A?g.startsWith("image")&&D&&C.size>D?{type:"imageSizeLimit",details:{imageSize:C.size,imageSizeLimit:D}}:g.startsWith("video")&&se&&C.size>se?{type:"videoSizeLimit",details:{videoSize:C.size,videoSizeLimit:se}}:null:null),[f,E]=H({});ee(()=>{!A||!I||(f==null?void 0:f.matrix)>I&&m({type:"imageMatrixLimit",details:{imageMatrix:f==null?void 0:f.matrix,imageMatrixLimit:I,width:f==null?void 0:f.width,height:f==null?void 0:f.height}})},[f,I,A]);const[y,B]=H({});ee(()=>{!A||!J||(y==null?void 0:y.matrix)>J&&m({type:"videoMatrixLimit",details:{videoMatrix:y==null?void 0:y.matrix,videoMatrixLimit:J,width:y==null?void 0:y.width,height:y==null?void 0:y.height}})},[y,J,A]);const[q,le]=H(s.description),[S,X]=g.split("/"),V=ot(o,250);ee(()=>{V(q)},[q,V]);const[U,j]=H(!1),te=W(null);ee(()=>{let z;return U&&te.current&&(z=setTimeout(()=>{te.current.focus()},100)),()=>{clearTimeout(z)}},[U]);const O=t(Ce,{children:R&&!v?t("div",{class:"media-desc",children:[t("span",{class:"tag",children:"Uploaded"}),t("p",{title:q,children:s.description||t("i",{children:"No description"})})]}):t("textarea",{ref:te,value:q||"",lang:n,placeholder:{image:"Image description",video:"Video description",audio:"Audio description"}[S],autoCapitalize:"sentences",autoComplete:"on",autoCorrect:"on",spellCheck:"true",dir:"auto",disabled:e||p==="loading",class:p==="loading"?"loading":"",maxlength:"1500",onInput:z=>{const{value:$}=z.target;le($)}})}),ie=W(null);ee(()=>()=>{var z,$;($=(z=ie.current)==null?void 0:z.hideToast)==null||$.call(z)},[]);const ae=W(null),M=z=>{const{type:$,details:L}=z;switch($){case"imageSizeLimit":{const{imageSize:N,imageSizeLimit:Q}=L;return`File size too large. Uploading might encounter issues. Try reduce the file size from ${Xe(N)} to ${Xe(Q)} or lower.`}case"imageMatrixLimit":{const{imageMatrix:N,imageMatrixLimit:Q,width:oe,height:ue}=L,{newWidth:ge,newHeight:be}=Wt(N,Q,oe,ue);return`Dimension too large. Uploading might encounter issues. Try reduce dimension from ${oe.toLocaleString()}×${ue.toLocaleString()}px to ${ge.toLocaleString()}×${be.toLocaleString()}px.`}case"videoSizeLimit":{const{videoSize:N,videoSizeLimit:Q}=L;return`File size too large. Uploading might encounter issues. Try reduce the file size from ${Xe(N)} to ${Xe(Q)} or lower.`}case"videoMatrixLimit":{const{videoMatrix:N,videoMatrixLimit:Q,width:oe,height:ue}=L,{newWidth:ge,newHeight:be}=Wt(N,Q,oe,ue);return`Dimension too large. Uploading might encounter issues. Try reduce dimension from ${oe.toLocaleString()}×${ue.toLocaleString()}px to ${ge.toLocaleString()}×${be.toLocaleString()}px.`}case"videoFrameRateLimit":return"Frame rate too high. Uploading might encounter issues."}};return t(Ce,{children:[t("div",{class:"media-attachment",children:[t("div",{class:"media-preview",tabIndex:"0",onClick:()=>{j(!0)},children:S==="image"?t("img",{src:k,alt:"",onLoad:z=>{if(!A)return;const{naturalWidth:$,naturalHeight:L}=z.target;E({matrix:$*L,width:$,height:L})}}):S==="video"||S==="gifv"?t("video",{src:k+"#t=0.1",playsinline:!0,muted:!0,disablePictureInPicture:!0,preload:"metadata",onLoadedMetadata:z=>{if(!A)return;const{videoWidth:$,videoHeight:L}=z.target;$&&L&&B({matrix:$*L,width:$,height:L})}}):S==="audio"?t("audio",{src:k,controls:!0}):null}),O,t("div",{class:"media-aside",children:[t("button",{type:"button",class:"plain close-button",disabled:e,onClick:r,children:t(K,{icon:"x"})}),!!h&&t("button",{type:"button",class:"media-error",title:M(h),onClick:()=>{ae.current&&ae.current.hideToast(),ae.current=xe({text:M(h),duration:1e4})},children:t(K,{icon:"alert"})})]})]}),U&&t(Qe,{onClick:z=>{z.target===z.currentTarget&&j(!1)},children:t("div",{id:"media-sheet",class:"sheet sheet-max",children:[t("button",{type:"button",class:"sheet-close",onClick:()=>{j(!1)},children:t(K,{icon:"x"})}),t("header",{children:t("h2",{children:{image:"Edit image description",video:"Edit video description",audio:"Edit audio description"}[S]})}),t("main",{tabIndex:"-1",children:[t("div",{class:"media-preview",children:S==="image"?t("img",{src:k,alt:""}):S==="video"||S==="gifv"?t("video",{src:k,playsinline:!0,controls:!0}):S==="audio"?t("audio",{src:k,controls:!0}):null}),t("div",{class:"media-form",children:[O,t("footer",{children:[S==="image"&&/^(png|jpe?g|gif|webp)$/i.test(X)&&!!re.settings.mediaAltGenerator&&!!vt&&t(Cn,{portal:{target:document.body},containerProps:{style:{zIndex:1001}},align:"center",position:"anchor",overflow:"auto",menuButton:t("button",{type:"button",title:"More",class:"plain",children:t(K,{icon:"more",size:"l",alt:"More"})}),children:[t($t,{disabled:p==="loading",onClick:()=>{u("loading"),ie.current=xe({text:"Generating description. Please wait...",duration:-1}),async function(){var z,$;try{const L=new FormData;L.append("image",C);const N=await fetch(vt,{method:"POST",body:L}).then(Q=>Q.json());if(N.error)throw new Error(N.error);le(N.description)}catch(L){xe(`Failed to generate description${L!=null&&L.message?`: ${L.message}`:""}`)}finally{u("default"),($=(z=ie.current)==null?void 0:z.hideToast)==null||$.call(z)}}()},children:[t(K,{icon:"sparkles2"}),n&&n!=="en"?t("small",{children:["Generate description…",t("br",{}),"(English)"]}):t("span",{children:"Generate description…"})]}),!!n&&n!=="en"&&t($t,{disabled:p==="loading",onClick:()=>{u("loading"),ie.current=xe({text:"Generating description. Please wait...",duration:-1}),async function(){var z,$;try{const L=new FormData;L.append("image",C);const N=`?lang=${n}`,Q=await fetch(vt+N,{method:"POST",body:L}).then(oe=>oe.json());if(Q.error)throw new Error(Q.error);le(Q.description)}catch(L){xe(`Failed to generate description${L!=null&&L.message?`: ${L.message}`:""}`)}finally{u("default"),($=(z=ie.current)==null?void 0:z.hideToast)==null||$.call(z)}}()},children:[t(K,{icon:"sparkles2"}),t("small",{children:["Generate description…",t("br",{}),"(",zn(n),")"," ",t("span",{class:"more-insignificant",children:"— experimental"})]})]})]}),t("button",{type:"button",class:"light block",onClick:()=>{j(!1)},disabled:p==="loading",children:"Done"})]})]})]})]})})]})}function yi({lang:s,poll:e,disabled:n,onInput:o=()=>{},maxOptions:r,maxExpiration:p,minExpiration:u,maxCharactersPerOption:v}){const{options:g,expiresIn:R,multiple:C}=e;return t("div",{class:`poll ${C?"multiple":""}`,children:[t("div",{class:"poll-choices",children:g.map((k,A)=>t("div",{class:"poll-choice",children:[t("input",{required:!0,type:"text",value:k,disabled:n,maxlength:v,placeholder:`Choice ${A+1}`,lang:s,spellCheck:"true",dir:"auto",onInput:Z=>{const{value:D}=Z.target;g[A]=D,o(e)}}),t("button",{type:"button",class:"plain2 poll-button",disabled:n||g.length<=1,onClick:()=>{g.splice(A,1),o(e)},children:t(K,{icon:"x",size:"s"})})]},A))}),t("div",{class:"poll-toolbar",children:[t("button",{type:"button",class:"plain2 poll-button",disabled:n||g.length>=r,onClick:()=>{g.push(""),o(e)},children:"+"})," ",t("label",{class:"multiple-choices",children:[t("input",{type:"checkbox",checked:C,disabled:n,onChange:k=>{const{checked:A}=k.target;e.multiple=A,o(e)}})," ","Multiple choices"]}),t("label",{class:"expires-in",children:["Duration"," ",t("select",{value:R,disabled:n,onChange:k=>{const{value:A}=k.target;e.expiresIn=A,o(e)},children:Object.entries(Jt).filter(([k,A])=>A>=u&&A<=p).map(([k,A])=>t("option",{value:A,children:k},A))})]})]}),t("div",{class:"poll-toolbar",children:t("button",{type:"button",class:"plain remove-poll-button",disabled:n,onClick:()=>{o(null)},children:"Remove poll"})})]})}function fe(s){return s.replace(/[&<>"']/g,function(e){return"&#"+e.charCodeAt(0)+";"})}function qt(s){for(let e in s)(s[e]===null||s[e]===void 0)&&delete s[e];return s}function xi({onClose:s=()=>{},onSelect:e=()=>{},defaultSearchTerm:n}){const{masto:o}=Ft(),[r,p]=H("default"),[u,v]=H([]),[g,R]=H({}),[C,k]=H(0),A=async c=>{if(!(c!=null&&c.length))return;const h=await Ln(c,g);h&&R({...g,...h})},Z=c=>{c&&(p("loading"),(async()=>{try{const h=await o.v1.accounts.search.list({q:c,limit:40,resolve:!1});v(h),A(h),p("default")}catch{p("error")}})())},D=ot(Z,1e3);ee(()=>{Z()},[Z]);const I=W();ee(()=>{I.current&&(I.current.focus(),I.current.value&&(I.current.selectionStart=I.current.value.length,I.current.selectionEnd=I.current.value.length))},[]),ee(()=>{n&&Z(n)},[n]);const se=c=>{const h=c.acct;e(h),s()};je("enter",()=>{const c=u[C];c&&se(c)},{preventDefault:!0,enableOnFormTags:["input"]});const J=W();return je("down",()=>{C{const c=J.current.querySelector(".selected");c&&c.scrollIntoView({behavior:"smooth",block:"center",inline:"center"})},1)},{preventDefault:!0,enableOnFormTags:["input"]}),je("up",()=>{C>0?k(C-1):k(u.length-1),setTimeout(()=>{const c=J.current.querySelector(".selected");c&&c.scrollIntoView({behavior:"smooth",block:"center",inline:"center"})},1)},{preventDefault:!0,enableOnFormTags:["input"]}),t("div",{id:"mention-sheet",class:"sheet",children:[!!s&&t("button",{type:"button",class:"sheet-close",onClick:s,children:t(K,{icon:"x"})}),t("header",{children:t("form",{onSubmit:c=>{var h;c.preventDefault(),(h=D.flush)==null||h.call(D)},children:t("input",{ref:I,required:!0,type:"search",class:"block",placeholder:"Search accounts",onInput:c=>{const{value:h}=c.target;D(h)},autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellCheck:"false",dir:"auto",defaultValue:n||""})})}),t("main",{children:(u==null?void 0:u.length)>0?t("ul",{ref:J,class:`accounts-list ${r==="loading"?"loading":""}`,children:u.map((c,h)=>{const m=g[c.id];return t("li",{class:h===C?"selected":"",children:[t(Vt,{avatarSize:"xxl",account:c,relationship:m,showStats:!0,showActivity:!0}),t("button",{type:"button",class:"plain2",onClick:()=>{se(c)},children:t(K,{icon:"plus",size:"xl"})})]},c.id)})}):r==="loading"?t("div",{class:"ui-state",children:t(rt,{abrupt:!0})}):r==="error"?t("div",{class:"ui-state",children:t("p",{children:"Error loading accounts"})}):null})]})}function wi({masto:s,instance:e,onClose:n=()=>{},onSelect:o=()=>{},defaultSearchTerm:r}){const[p,u]=H("default"),v=W([]),[g,R]=H([]),C=Pe(()=>ze.account.get("recentlyUsedCustomEmojis")||[]),k=W();ee(()=>{u("loading"),(async()=>{try{const[h,m]=await Qt(e,s);k.current=m,R(h),u("default")}catch{u("error")}})()},[]);const A=Pe(()=>{const h={"--recent--":C.filter(f=>g.find(E=>E.shortcode===f.shortcode))},m=[];return g.forEach(f=>{var E,y;if((y=(E=v.current)==null?void 0:E.push)==null||y.call(E,f),!f.category){m.push(f);return}h[f.category]||(h[f.category]=[]),h[f.category].push(f)}),m.length&&(h["--others--"]=m),h},[g]),Z=W(),[D,I]=H(null),se=Bt(h=>{var f,E,y;const{value:m}=h.target;if(m){const B=(f=k.current)==null?void 0:f.search(m,{limit:Et});I(B.map(q=>q.item)),(y=(E=Z.current)==null?void 0:E.scrollTo)==null||y.call(E,0,0)}else I(null)},[g]);ee(()=>{r&&(g!=null&&g.length)&&se({target:{value:r}})},[r,se,g]);const J=Bt(h=>{o==null||o(h),n==null||n(),queueMicrotask(()=>{let m=ze.account.get("recentlyUsedCustomEmojis")||[];const f=m.findIndex(E=>E.shortcode===h.shortcode);f!==-1?(m.splice(f,1),m.unshift(h)):(m.unshift(h),m=m.filter(E=>{var y,B;return(B=(y=v.current)==null?void 0:y.find)==null?void 0:B.call(y,q=>q.shortcode===E.shortcode)}),m=m.slice(0,10)),ze.account.set("recentlyUsedCustomEmojis",m)})},[o]),c=W();return ee(()=>{c.current&&(c.current.focus(),c.current.value&&(c.current.selectionStart=c.current.value.length,c.current.selectionEnd=c.current.value.length))},[]),t("div",{id:"custom-emojis-sheet",class:"sheet",children:[!!n&&t("button",{type:"button",class:"sheet-close",onClick:n,children:t(K,{icon:"x"})}),t("header",{children:[t("div",{children:[t("b",{children:"Custom emojis"})," ",p==="loading"?t(rt,{}):t("small",{class:"insignificant",children:[" • ",e]})]}),t("form",{onSubmit:h=>{h.preventDefault();const m=D[0];m&&J(`:${m.shortcode}:`)},children:t("input",{ref:c,type:"search",placeholder:"Search emoji",onInput:se,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellCheck:"false",dir:"auto",defaultValue:r||""})})]}),t("main",{ref:Z,children:D!==null?t("ul",{class:"custom-emojis-matches custom-emojis-list",children:D.map(h=>t("li",{class:"custom-emojis-match",children:t(en,{emoji:h,onClick:()=>{J(`:${h.shortcode}:`)},showCode:!0})},h.shortcode))}):t("div",{class:"custom-emojis-list",children:[p==="error"&&t("div",{class:"ui-state",children:t("p",{children:"Error loading custom emojis"})}),p==="default"&&Object.entries(A).map(([h,m])=>!!(m!=null&&m.length)&&t(Ce,{children:[t("div",{class:"section-header",children:{"--recent--":"Recently used","--others--":"Others"}[h]||h}),t(ki,{emojis:m,onSelect:J})]}))]})})]})}const ki=Kt(({emojis:s,onSelect:e})=>{const[n,o]=H(Et),r=s.length>n;return t("section",{children:[s.slice(0,n).map(p=>t(en,{emoji:p,onClick:()=>{e(`:${p.shortcode}:`)}},p.shortcode)),r&&t("button",{type:"button",class:"plain small",onClick:()=>o(n+Et),children:[(s.length-n).toLocaleString()," more…"]})]})}),en=Kt(({emoji:s,onClick:e,showCode:n})=>{const o=r=>{const u=r.currentTarget.closest("main");if(u){const v=u.getBoundingClientRect(),g=r.currentTarget.getBoundingClientRect(),R=r.currentTarget.classList;g.leftv.right-88?(R.add("edge-right"),R.remove("edge-left")):R.remove("edge-left","edge-right")}};return t("button",{type:"button",className:"plain4",onClick:e,"data-title":n?void 0:s.shortcode,onPointerEnter:o,onFocus:o,children:[t("picture",{children:[!!s.staticUrl&&t("source",{srcSet:s.staticUrl,media:"(prefers-reduced-motion: reduce)"}),t("img",{className:"shortcode-emoji",src:s.url||s.staticUrl,alt:s.shortcode,width:"24",height:"24",loading:"lazy",decoding:"async"})]}),n&&t(Ce,{children:[" ",t("code",{children:s.shortcode})]})]})}),bt=20;function Ei({onClose:s=()=>{},onSelect:e=()=>{}}){var A,Z,D,I,se,J;const[n,o]=H("default"),[r,p]=H([]),u=W(null),v=W(null),g=W(0),R=W(null);function C({offset:c}){var h,m,f;(h=v.current)!=null&&h.value&&(o("loading"),(f=(m=R.current)==null?void 0:m.scrollTo)==null||f.call(m,{top:0,left:0,behavior:"smooth"}),(async()=>{var E;try{const y={api_key:Xn,q:v.current.value,rating:"g",limit:bt,bundle:"messaging_non_clips",offset:c},B=await fetch("https://api.giphy.com/v1/gifs/search?"+new URLSearchParams(y),{referrerPolicy:"no-referrer"}).then(q=>q.json());g.current=((E=B.pagination)==null?void 0:E.offset)||0,p(B),o("results")}catch{o("error")}})())}ee(()=>{var c;(c=v.current)==null||c.focus()},[]);const k=ot(()=>{C({offset:0})},1e3);return t("div",{id:"gif-picker-sheet",class:"sheet",children:[!!s&&t("button",{type:"button",class:"sheet-close",onClick:s,children:t(K,{icon:"x"})}),t("header",{children:t("form",{ref:u,onSubmit:c=>{c.preventDefault(),C({offset:0})},children:[t("input",{ref:v,type:"search",name:"q",placeholder:"Search GIFs",required:!0,autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellCheck:"false",dir:"auto",onInput:k}),t("input",{type:"image",class:"powered-button",src:Gn,width:"86",height:"30"})]})}),t("main",{ref:R,class:n==="loading"?"loading":"",children:[n==="default"&&t("div",{class:"ui-state",children:t("p",{class:"insignificant",children:"Type to search GIFs"})}),n==="loading"&&!((A=r==null?void 0:r.data)!=null&&A.length)&&t("div",{class:"ui-state",children:t(rt,{abrupt:!0})}),((Z=r==null?void 0:r.data)==null?void 0:Z.length)>0?t(Ce,{children:[t("ul",{children:r.data.map(c=>{const{id:h,images:m,title:f,alt_text:E}=c,{fixed_height_small:y,fixed_height_downsampled:B,fixed_height:q,original:le}=m,S=y!=null&&y.url?y:B!=null&&B.url?B:q;let{url:X,webp:V,width:U,height:j}=S;+j>100&&(U=U/j*100,j=100);const te=new URL(X),O=te.origin+te.pathname;let ie;if(V){const ae=new URL(V);ie=ae.origin+ae.pathname}return t("li",{children:t("button",{type:"button",onClick:()=>{const{mp4:ae,url:M}=le,z=ae||M,$=new URL(z),L=$.origin+$.pathname;s(),e({url:L,type:ae?"video/mp4":"image/gif",alt_text:E||f})},children:t("figure",{style:{"--figure-width":U+"px"},children:[t("picture",{children:[ie&&t("source",{srcset:ie,type:"image/webp"}),t("img",{src:O,width:U,height:j,loading:"lazy",decoding:"async",alt:E,referrerpolicy:"no-referrer",onLoad:ae=>{ae.target.style.backgroundColor="transparent"}})]}),t("figcaption",{children:E||f})]})})},h)})}),t("p",{class:"pagination",children:[((D=r.pagination)==null?void 0:D.offset)>0&&t("button",{type:"button",class:"light small",disabled:n==="loading",onClick:()=>{var c;C({offset:((c=r.pagination)==null?void 0:c.offset)-bt})},children:[t(K,{icon:"chevron-left"}),t("span",{children:"Previous"})]}),t("span",{}),((I=r.pagination)==null?void 0:I.offset)+((se=r.pagination)==null?void 0:se.count)<((J=r.pagination)==null?void 0:J.total_count)&&t("button",{type:"button",class:"light small",disabled:n==="loading",onClick:()=>{var c;C({offset:((c=r.pagination)==null?void 0:c.offset)+bt})},children:[t("span",{children:"Next"})," ",t(K,{icon:"chevron-right"})]})]})]}):n==="results"&&t("div",{class:"ui-state",children:t("p",{children:"No results"})}),n==="error"&&t("div",{class:"ui-state",children:t("p",{children:"Error loading GIFs"})})]})]})}export{Ai as default}; +//# sourceMappingURL=compose-W5mt71Ut.js.map diff --git a/assets/compose-W5mt71Ut.js.map b/assets/compose-W5mt71Ut.js.map new file mode 100644 index 0000000..4b3eb2c --- /dev/null +++ b/assets/compose-W5mt71Ut.js.map @@ -0,0 +1 @@ +{"version":3,"file":"compose-W5mt71Ut.js","sources":["../../node_modules/@github/combobox-nav/dist/index.js","../../node_modules/@github/text-expander-element/dist/index.js","../../node_modules/ansi-regex/index.js","../../node_modules/strip-ansi/index.js","../../node_modules/string-length/index.js","../../src/assets/powered-by-giphy.svg","../../src/components/compose.jsx"],"sourcesContent":["export default class Combobox {\n constructor(input, list, { tabInsertsSuggestions, defaultFirstOption } = {}) {\n this.input = input;\n this.list = list;\n this.tabInsertsSuggestions = tabInsertsSuggestions !== null && tabInsertsSuggestions !== void 0 ? tabInsertsSuggestions : true;\n this.defaultFirstOption = defaultFirstOption !== null && defaultFirstOption !== void 0 ? defaultFirstOption : false;\n this.isComposing = false;\n if (!list.id) {\n list.id = `combobox-${Math.random().toString().slice(2, 6)}`;\n }\n this.ctrlBindings = !!navigator.userAgent.match(/Macintosh/);\n this.keyboardEventHandler = event => keyboardBindings(event, this);\n this.compositionEventHandler = event => trackComposition(event, this);\n this.inputHandler = this.clearSelection.bind(this);\n input.setAttribute('role', 'combobox');\n input.setAttribute('aria-controls', list.id);\n input.setAttribute('aria-expanded', 'false');\n input.setAttribute('aria-autocomplete', 'list');\n input.setAttribute('aria-haspopup', 'listbox');\n }\n destroy() {\n this.clearSelection();\n this.stop();\n this.input.removeAttribute('role');\n this.input.removeAttribute('aria-controls');\n this.input.removeAttribute('aria-expanded');\n this.input.removeAttribute('aria-autocomplete');\n this.input.removeAttribute('aria-haspopup');\n }\n start() {\n this.input.setAttribute('aria-expanded', 'true');\n this.input.addEventListener('compositionstart', this.compositionEventHandler);\n this.input.addEventListener('compositionend', this.compositionEventHandler);\n this.input.addEventListener('input', this.inputHandler);\n this.input.addEventListener('keydown', this.keyboardEventHandler);\n this.list.addEventListener('click', commitWithElement);\n this.indicateDefaultOption();\n }\n stop() {\n this.clearSelection();\n this.input.setAttribute('aria-expanded', 'false');\n this.input.removeEventListener('compositionstart', this.compositionEventHandler);\n this.input.removeEventListener('compositionend', this.compositionEventHandler);\n this.input.removeEventListener('input', this.inputHandler);\n this.input.removeEventListener('keydown', this.keyboardEventHandler);\n this.list.removeEventListener('click', commitWithElement);\n }\n indicateDefaultOption() {\n var _a;\n if (this.defaultFirstOption) {\n (_a = Array.from(this.list.querySelectorAll('[role=\"option\"]:not([aria-disabled=\"true\"])'))\n .filter(visible)[0]) === null || _a === void 0 ? void 0 : _a.setAttribute('data-combobox-option-default', 'true');\n }\n }\n navigate(indexDiff = 1) {\n const focusEl = Array.from(this.list.querySelectorAll('[aria-selected=\"true\"]')).filter(visible)[0];\n const els = Array.from(this.list.querySelectorAll('[role=\"option\"]')).filter(visible);\n const focusIndex = els.indexOf(focusEl);\n if ((focusIndex === els.length - 1 && indexDiff === 1) || (focusIndex === 0 && indexDiff === -1)) {\n this.clearSelection();\n this.input.focus();\n return;\n }\n let indexOfItem = indexDiff === 1 ? 0 : els.length - 1;\n if (focusEl && focusIndex >= 0) {\n const newIndex = focusIndex + indexDiff;\n if (newIndex >= 0 && newIndex < els.length)\n indexOfItem = newIndex;\n }\n const target = els[indexOfItem];\n if (!target)\n return;\n for (const el of els) {\n el.removeAttribute('data-combobox-option-default');\n if (target === el) {\n this.input.setAttribute('aria-activedescendant', target.id);\n target.setAttribute('aria-selected', 'true');\n scrollTo(this.list, target);\n }\n else {\n el.removeAttribute('aria-selected');\n }\n }\n }\n clearSelection() {\n this.input.removeAttribute('aria-activedescendant');\n for (const el of this.list.querySelectorAll('[aria-selected=\"true\"]')) {\n el.removeAttribute('aria-selected');\n }\n this.indicateDefaultOption();\n }\n}\nfunction keyboardBindings(event, combobox) {\n if (event.shiftKey || event.metaKey || event.altKey)\n return;\n if (!combobox.ctrlBindings && event.ctrlKey)\n return;\n if (combobox.isComposing)\n return;\n switch (event.key) {\n case 'Enter':\n if (commit(combobox.input, combobox.list)) {\n event.preventDefault();\n }\n break;\n case 'Tab':\n if (combobox.tabInsertsSuggestions && commit(combobox.input, combobox.list)) {\n event.preventDefault();\n }\n break;\n case 'Escape':\n combobox.clearSelection();\n break;\n case 'ArrowDown':\n combobox.navigate(1);\n event.preventDefault();\n break;\n case 'ArrowUp':\n combobox.navigate(-1);\n event.preventDefault();\n break;\n case 'n':\n if (combobox.ctrlBindings && event.ctrlKey) {\n combobox.navigate(1);\n event.preventDefault();\n }\n break;\n case 'p':\n if (combobox.ctrlBindings && event.ctrlKey) {\n combobox.navigate(-1);\n event.preventDefault();\n }\n break;\n default:\n if (event.ctrlKey)\n break;\n combobox.clearSelection();\n }\n}\nfunction commitWithElement(event) {\n if (!(event.target instanceof Element))\n return;\n const target = event.target.closest('[role=\"option\"]');\n if (!target)\n return;\n if (target.getAttribute('aria-disabled') === 'true')\n return;\n fireCommitEvent(target);\n}\nfunction commit(input, list) {\n const target = list.querySelector('[aria-selected=\"true\"], [data-combobox-option-default=\"true\"]');\n if (!target)\n return false;\n if (target.getAttribute('aria-disabled') === 'true')\n return true;\n target.click();\n return true;\n}\nfunction fireCommitEvent(target) {\n target.dispatchEvent(new CustomEvent('combobox-commit', { bubbles: true }));\n}\nfunction visible(el) {\n return (!el.hidden &&\n !(el instanceof HTMLInputElement && el.type === 'hidden') &&\n (el.offsetWidth > 0 || el.offsetHeight > 0));\n}\nfunction trackComposition(event, combobox) {\n combobox.isComposing = event.type === 'compositionstart';\n const list = document.getElementById(combobox.input.getAttribute('aria-controls') || '');\n if (!list)\n return;\n combobox.clearSelection();\n}\nfunction scrollTo(container, target) {\n if (!inViewport(container, target)) {\n container.scrollTop = target.offsetTop;\n }\n}\nfunction inViewport(container, element) {\n const scrollTop = container.scrollTop;\n const containerBottom = scrollTop + container.clientHeight;\n const top = element.offsetTop;\n const bottom = top + element.clientHeight;\n return top >= scrollTop && bottom <= containerBottom;\n}\n","import Combobox from '@github/combobox-nav';\n\nconst boundary = /\\s|\\(|\\[/;\nfunction query(text, key, cursor, { multiWord, lookBackIndex, lastMatchPosition } = {\n multiWord: false,\n lookBackIndex: 0,\n lastMatchPosition: null\n}) {\n let keyIndex = text.lastIndexOf(key, cursor - 1);\n if (keyIndex === -1)\n return;\n if (keyIndex < lookBackIndex)\n return;\n if (multiWord) {\n if (lastMatchPosition != null) {\n if (lastMatchPosition === keyIndex)\n return;\n keyIndex = lastMatchPosition - key.length;\n }\n const charAfterKey = text[keyIndex + 1];\n if (charAfterKey === ' ' && cursor >= keyIndex + key.length + 1)\n return;\n const newLineIndex = text.lastIndexOf('\\n', cursor - 1);\n if (newLineIndex > keyIndex)\n return;\n const dotIndex = text.lastIndexOf('.', cursor - 1);\n if (dotIndex > keyIndex)\n return;\n }\n else {\n const spaceIndex = text.lastIndexOf(' ', cursor - 1);\n if (spaceIndex > keyIndex)\n return;\n }\n const pre = text[keyIndex - 1];\n if (pre && !boundary.test(pre))\n return;\n const queryString = text.substring(keyIndex + key.length, cursor);\n return {\n text: queryString,\n position: keyIndex + key.length\n };\n}\n\n/**\n * A custom element is implemented as a class which extends HTMLElement (in the\n * case of autonomous elements) or the interface you want to customize (in the\n * case of customized built-in elements).\n * @see https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements#custom_element_lifecycle_callbacks\n */\nclass CustomHTMLElement extends HTMLElement {\n}\n\nclass InputStyleCloneUpdateEvent extends Event {\n constructor() {\n super(\"update\");\n }\n}\nconst CloneRegistry = new WeakMap();\n/**\n * Create an element that exactly matches an input pixel-for-pixel and automatically stays in sync with it. This\n * is a non-interactive overlay on to the input and can be used to affect the visual appearance of the input\n * without modifying its behavior. The clone element is hidden by default.\n *\n * This lower level API powers the `InputRange` but provides more advanced functionality including event updates.\n *\n * Emits `update` events whenever anything is recalculated: when the layout changes, when the user scrolls, when the\n * input is updated, etc. This event may be emitted more than once per change.\n *\n * @note There may be cases in which the clone cannot observe changes to the input and fails to automatically update.\n * For example, if the `value` property on the input is written to directly, no `input` event is emitted by the input\n * and the clone does not automatically update. In these cases, `forceUpdate` can be used to manually trigger an update.\n */\n// PRIOR ART: This approach was adapted from the following MIT-licensed sources:\n// - primer/react (Copyright (c) 2018 GitHub, Inc.): https://github.com/primer/react/blob/a0db832302702b869aa22b0c4049ad9305ef631f/src/drafts/utils/character-coordinates.ts\n// - component/textarea-caret-position (Copyright (c) 2015 Jonathan Ong me@jongleberry.com): https://github.com/component/textarea-caret-position/blob/b5db7a7e47dd149c2a66276183c69234e4dabe30/index.js\n// - koddsson/textarea-caret-position (Copyright (c) 2015 Jonathan Ong me@jongleberry.com): https://github.com/koddsson/textarea-caret-position/blob/eba40ec8488eed4d77815f109af22e1d9c0751d3/index.js\nclass InputStyleCloneElement extends CustomHTMLElement {\n #styleObserver = new MutationObserver(() => this.#updateStyles());\n #resizeObserver = new ResizeObserver(() => this.#requestUpdateLayout());\n // This class is unique in that it will prevent itself from getting garbage collected because of the subscribed\n // observers (if never detached). Because of this, we want to avoid preventing the existence of this class from also\n // preventing the garbage collection of the associated input. This also allows us to automatically detach if the\n // input gets collected.\n #inputRef;\n #container;\n /**\n * Get the clone for an input, reusing an existing one if available. This avoids creating unecessary clones, which\n * have a performance cost due to their high-frequency event-based updates. Because these elements are shared, they\n * should be mutated with caution.\n *\n * Upon initial creation the clone element will automatically be inserted into the DOM and begin observing the\n * linked input. Only one clone per input can ever exist at a time.\n * @param input The target input to clone.\n */\n static for(input) {\n const clone = CloneRegistry.get(input) ?? new InputStyleCloneElement(input);\n CloneRegistry.set(input, clone);\n return clone;\n }\n /**\n * Avoid constructing directly: Use `InputStyleCloneElement.for` instead.\n * @private\n */\n constructor(input) {\n super();\n this.#inputRef = new WeakRef(input);\n // We want position:absolute so it doesn't take space in the layout, but that doesn't work with display:table-cell\n // used in the HTMLInputElement approach. So we need a wrapper.\n this.#container = document.createElement(\"div\");\n this.#container.style.position = \"absolute\";\n this.#container.style.pointerEvents = \"none\";\n input.after(this.#container);\n this.#container.appendChild(this);\n }\n /**\n * Force a recalculation. Will emit an `update` event. This is typically not needed unless the input has changed in\n * an unobservable way, eg by directly writing to the `value` property.\n */\n forceUpdate() {\n this.#updateStyles();\n this.#updateText();\n }\n /** @private */\n connectedCallback() {\n const input = this.#inputRef.deref();\n if (!input)\n return this.remove();\n this.style.pointerEvents = \"none\";\n this.style.userSelect = \"none\";\n this.style.overflow = \"hidden\";\n this.style.display = \"block\";\n // Important not to use display:none which would not render the content at all\n this.style.visibility = \"hidden\";\n if (input instanceof HTMLTextAreaElement) {\n this.style.whiteSpace = \"pre-wrap\";\n this.style.wordWrap = \"break-word\";\n }\n else {\n this.style.whiteSpace = \"nowrap\";\n // text in single-line inputs is vertically centered\n this.style.display = \"table-cell\";\n this.style.verticalAlign = \"middle\";\n }\n this.setAttribute(\"aria-hidden\", \"true\");\n this.#updateStyles();\n this.#updateText();\n this.#styleObserver.observe(input, {\n attributeFilter: [\n \"style\",\n \"dir\", // users can right-click in some browsers to change the text direction dynamically\n ],\n });\n this.#resizeObserver.observe(input);\n document.addEventListener(\"scroll\", this.#onDocumentScrollOrResize, { capture: true });\n window.addEventListener(\"resize\", this.#onDocumentScrollOrResize, { capture: true });\n // capture so this happens first, so other things can respond to `input` events after this data updates\n input.addEventListener(\"input\", this.#onInput, { capture: true });\n }\n /** @private */\n disconnectedCallback() {\n this.#container.remove();\n this.#styleObserver.disconnect();\n this.#resizeObserver.disconnect();\n document.removeEventListener(\"scroll\", this.#onDocumentScrollOrResize, { capture: true });\n window.removeEventListener(\"resize\", this.#onDocumentScrollOrResize, { capture: true });\n const input = this.#inputRef.deref();\n if (input) {\n input.removeEventListener(\"input\", this.#onInput, { capture: true });\n CloneRegistry.delete(input);\n }\n }\n // --- private ---\n /** Perform `fn` using the `input` if it is still available. If not, clean up the clone instead. */\n #usingInput(fn) {\n const input = this.#inputRef.deref();\n if (!input)\n return this.remove();\n return fn(input);\n }\n /** Current relative x-adjustment in pixels, executed via CSS transform. */\n #xOffset = 0;\n /** Current relative y-adjustment in pixels, executed via CSS transform. */\n #yOffset = 0;\n /**\n * Update only geometric properties without recalculating styles. Typically call `#requestUpdateLayout` instead to\n * only update once per animation frame.\n */\n #updateLayout() {\n // This runs often, so keep it as fast as possible! Avoid all unecessary updates.\n this.#usingInput((input) => {\n const inputStyle = window.getComputedStyle(input);\n this.style.height = inputStyle.height;\n this.style.width = inputStyle.width;\n // Immediately re-adjust for browser inconsistencies in scrollbar handling, if necessary\n if (input.clientHeight !== this.clientHeight)\n this.style.height = `calc(${inputStyle.height} + ${input.clientHeight - this.clientHeight}px)`;\n if (input.clientWidth !== this.clientWidth)\n this.style.width = `calc(${inputStyle.width} + ${input.clientWidth - this.clientWidth}px)`;\n // Position on top of the input\n const inputRect = input.getBoundingClientRect();\n const cloneRect = this.getBoundingClientRect();\n this.#xOffset = this.#xOffset + inputRect.left - cloneRect.left;\n this.#yOffset = this.#yOffset + inputRect.top - cloneRect.top;\n this.style.transform = `translate(${this.#xOffset}px, ${this.#yOffset}px)`;\n this.scrollTop = input.scrollTop;\n this.scrollLeft = input.scrollLeft;\n this.dispatchEvent(new InputStyleCloneUpdateEvent());\n });\n }\n #isLayoutUpdating = false;\n /** Request a layout update. Will only happen once per animation frame, to avoid unecessary updates. */\n #requestUpdateLayout() {\n if (this.#isLayoutUpdating)\n return;\n this.#isLayoutUpdating = true;\n requestAnimationFrame(() => {\n this.#updateLayout();\n this.#isLayoutUpdating = false;\n });\n }\n /** Update the styles of the clone based on the styles of the input, then request a layout update. */\n #updateStyles() {\n this.#usingInput((input) => {\n const inputStyle = window.getComputedStyle(input);\n for (const prop of propertiesToCopy)\n this.style[prop] = inputStyle[prop];\n this.#requestUpdateLayout();\n });\n }\n /**\n * Update the text content of the clone based on the text content of the input. Triggers a layout update in case the\n * text update caused scrolling.\n */\n #updateText() {\n this.#usingInput((input) => {\n this.textContent = input.value;\n // This is often unecessary on a pure text update, but text updates could potentially cause layout updates like\n // scrolling or resizing. And we run the update on _every frame_ when scrolling, so this isn't that expensive.\n // We don't requestUpdateLayout here because this one should happen synchronously, so that clients can react\n // within their own `input` event handlers.\n this.#updateLayout();\n });\n }\n #onInput = () => this.#updateText();\n #onDocumentScrollOrResize = (event) => {\n this.#usingInput((input) => {\n if (event.target === document ||\n event.target === window ||\n (event.target instanceof Node && event.target.contains(input)))\n this.#requestUpdateLayout();\n });\n };\n}\n// Note that some browsers, such as Firefox, do not concatenate properties\n// into their shorthand (e.g. padding-top, padding-bottom etc. -> padding),\n// so we have to list every single property explicitly.\nconst propertiesToCopy = [\n // RTL / vertical writing modes support:\n \"direction\",\n \"writingMode\",\n \"unicodeBidi\",\n \"textOrientation\",\n \"boxSizing\",\n \"borderTopWidth\",\n \"borderRightWidth\",\n \"borderBottomWidth\",\n \"borderLeftWidth\",\n \"borderStyle\",\n \"paddingTop\",\n \"paddingRight\",\n \"paddingBottom\",\n \"paddingLeft\",\n // https://developer.mozilla.org/en-US/docs/Web/CSS/font\n \"fontStyle\",\n \"fontVariant\",\n \"fontWeight\",\n \"fontStretch\",\n \"fontSize\",\n \"fontSizeAdjust\",\n \"lineHeight\",\n \"fontFamily\",\n \"textAlign\",\n \"textTransform\",\n \"textIndent\",\n \"textDecoration\",\n \"letterSpacing\",\n \"wordSpacing\",\n \"tabSize\",\n \"MozTabSize\",\n];\n// Inspired by https://github.com/github/catalyst/blob/dc284dcf4f82329a9cac5c867462a8fa529b6c40/src/register.ts\ntry {\n customElements.define(\"input-style-clone\", InputStyleCloneElement);\n}\ncatch (e) {\n // Throws DOMException with NotSupportedError if already defined\n if (!(e instanceof DOMException && e.name === \"NotSupportedError\"))\n throw e;\n}\n\nclass InputRange {\n #inputElement;\n #startOffset;\n #endOffset;\n /**\n * Construct a new `InputRange`.\n * @param element The target input element that contains the content for the range.\n * @param startOffset The inclusive 0-based start index for the range. Will be adjusted to fit in the input contents.\n * @param endOffset The exclusive 0-based end index for the range. Will be adjusted to fit in the input contents.\n */\n constructor(element, startOffset = 0, endOffset = startOffset) {\n this.#inputElement = element;\n this.#startOffset = startOffset;\n this.#endOffset = endOffset;\n }\n /**\n * Create a new range from the current user selection. If the input is not focused, the range will just be the start\n * of the input (offsets `0` to `0`).\n *\n * This can be used to get the caret coordinates: if the resulting range is `collapsed`, the location of the\n * `getBoundingClientRect` will be the location of the caret caret (note, however, that the width will be `0` in\n * this case).\n */\n static fromSelection(input) {\n const { selectionStart, selectionEnd } = input;\n return new InputRange(input, selectionStart ?? undefined, selectionEnd ?? undefined);\n }\n /** Returns true if the start is equal to the end of this range. */\n get collapsed() {\n return this.startOffset === this.endOffset;\n }\n /** Always returns the containing input element. */\n get commonAncestorContainer() {\n return this.#inputElement;\n }\n /** Always returns the containing input element. */\n get endContainer() {\n return this.#inputElement;\n }\n /** Always returns the containing input element. */\n get startContainer() {\n return this.#inputElement;\n }\n get startOffset() {\n return this.#startOffset;\n }\n get endOffset() {\n return this.#endOffset;\n }\n /** Update the inclusive start offset. Will be adjusted to fit within the content size. */\n setStartOffset(offset) {\n this.#startOffset = this.#clampOffset(offset);\n }\n /** Update the exclusive end offset. Will be adjusted to fit within the content size. */\n setEndOffset(offset) {\n this.#endOffset = this.#clampOffset(offset);\n }\n /**\n * Collapse this range to one side.\n * @param toStart If `true`, will collapse to the start side. Otherwise, will collapse to the end.\n */\n collapse(toStart = false) {\n if (toStart)\n this.setEndOffset(this.startOffset);\n else\n this.setStartOffset(this.endOffset);\n }\n /** Returns a `DocumentFragment` containing a new `Text` node containing the content in the range. */\n cloneContents() {\n return this.#createCloneRange().cloneContents();\n }\n /** Create a copy of this range. */\n cloneRange() {\n return new InputRange(this.#inputElement, this.startOffset, this.endOffset);\n }\n /**\n * Obtain one rect that contains the entire contents of the range. If the range spans multiple lines, this box will\n * contain all pieces of the range but may also contain some space outside the range.\n * @see https://iansan5653.github.io/dom-input-range/demos/playground/\n */\n getBoundingClientRect() {\n return this.#createCloneRange().getBoundingClientRect();\n }\n /**\n * Obtain the rects that contain contents of this range. If the range spans multiple lines, there will be multiple\n * bounding boxes. These boxes can be used, for example, to draw a highlight over the range.\n * @see https://iansan5653.github.io/dom-input-range/demos/playground/\n */\n getClientRects() {\n return this.#createCloneRange().getClientRects();\n }\n /** Get the contents of the range as a string. */\n toString() {\n return this.#createCloneRange().toString();\n }\n /**\n * Get the underlying `InputStyleClone` instance powering these calculations. This can be used to listen for\n * updates to trigger layout recalculation.\n */\n getStyleClone() {\n return this.#styleClone;\n }\n // --- private ---\n get #styleClone() {\n return InputStyleCloneElement.for(this.#inputElement);\n }\n get #cloneElement() {\n return this.#styleClone;\n }\n #clampOffset(offset) {\n return Math.max(0, Math.min(offset, this.#inputElement.value.length));\n }\n #createCloneRange() {\n // It's tempting to create a single Range and reuse it across the lifetime of the class. However, this wouldn't be\n // accurate because the contents of the input can change and the contents of the range would become stale. So we\n // must create a new range every time we need it.\n const range = document.createRange();\n const textNode = this.#cloneElement.childNodes[0];\n if (textNode) {\n range.setStart(textNode, this.startOffset);\n range.setEnd(textNode, this.endOffset);\n }\n return range;\n }\n}\n\nconst states = new WeakMap();\nclass TextExpander {\n constructor(expander, input) {\n this.expander = expander;\n this.input = input;\n this.combobox = null;\n this.menu = null;\n this.match = null;\n this.justPasted = false;\n this.lookBackIndex = 0;\n this.oninput = this.onInput.bind(this);\n this.onpaste = this.onPaste.bind(this);\n this.onkeydown = this.onKeydown.bind(this);\n this.oncommit = this.onCommit.bind(this);\n this.onmousedown = this.onMousedown.bind(this);\n this.onblur = this.onBlur.bind(this);\n this.interactingWithList = false;\n input.addEventListener('paste', this.onpaste);\n input.addEventListener('input', this.oninput);\n input.addEventListener('keydown', this.onkeydown);\n input.addEventListener('blur', this.onblur);\n }\n destroy() {\n this.input.removeEventListener('paste', this.onpaste);\n this.input.removeEventListener('input', this.oninput);\n this.input.removeEventListener('keydown', this.onkeydown);\n this.input.removeEventListener('blur', this.onblur);\n }\n dismissMenu() {\n if (this.deactivate()) {\n this.lookBackIndex = this.input.selectionEnd || this.lookBackIndex;\n }\n }\n activate(match, menu) {\n var _a, _b;\n if (this.input !== document.activeElement && this.input !== ((_b = (_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.shadowRoot) === null || _b === void 0 ? void 0 : _b.activeElement)) {\n return;\n }\n this.deactivate();\n this.menu = menu;\n if (!menu.id)\n menu.id = `text-expander-${Math.floor(Math.random() * 100000).toString()}`;\n this.expander.append(menu);\n this.combobox = new Combobox(this.input, menu);\n this.expander.dispatchEvent(new Event('text-expander-activate'));\n this.positionMenu(menu, match.position);\n this.combobox.start();\n menu.addEventListener('combobox-commit', this.oncommit);\n menu.addEventListener('mousedown', this.onmousedown);\n this.combobox.navigate(1);\n }\n positionMenu(menu, position) {\n const caretRect = new InputRange(this.input, position).getBoundingClientRect();\n const targetPosition = { left: caretRect.left, top: caretRect.top + caretRect.height };\n const currentPosition = menu.getBoundingClientRect();\n const delta = {\n left: targetPosition.left - currentPosition.left,\n top: targetPosition.top - currentPosition.top\n };\n if (delta.left !== 0 || delta.top !== 0) {\n const currentStyle = getComputedStyle(menu);\n menu.style.left = currentStyle.left ? `calc(${currentStyle.left} + ${delta.left}px)` : `${delta.left}px`;\n menu.style.top = currentStyle.top ? `calc(${currentStyle.top} + ${delta.top}px)` : `${delta.top}px`;\n }\n }\n deactivate() {\n const menu = this.menu;\n if (!menu || !this.combobox)\n return false;\n this.expander.dispatchEvent(new Event('text-expander-deactivate'));\n this.menu = null;\n menu.removeEventListener('combobox-commit', this.oncommit);\n menu.removeEventListener('mousedown', this.onmousedown);\n this.combobox.destroy();\n this.combobox = null;\n menu.remove();\n return true;\n }\n onCommit({ target }) {\n var _a;\n const item = target;\n if (!(item instanceof HTMLElement))\n return;\n if (!this.combobox)\n return;\n const match = this.match;\n if (!match)\n return;\n const beginning = this.input.value.substring(0, match.position - match.key.length);\n const remaining = this.input.value.substring(match.position + match.text.length);\n const detail = { item, key: match.key, value: null, continue: false };\n const canceled = !this.expander.dispatchEvent(new CustomEvent('text-expander-value', { cancelable: true, detail }));\n if (canceled)\n return;\n if (!detail.value)\n return;\n let suffix = (_a = this.expander.getAttribute('suffix')) !== null && _a !== void 0 ? _a : ' ';\n if (detail.continue) {\n suffix = '';\n }\n const value = `${detail.value}${suffix}`;\n this.input.value = beginning + value + remaining;\n const cursor = beginning.length + value.length;\n this.deactivate();\n this.input.focus({\n preventScroll: true\n });\n this.input.selectionStart = cursor;\n this.input.selectionEnd = cursor;\n if (!detail.continue) {\n this.lookBackIndex = cursor;\n this.match = null;\n }\n this.expander.dispatchEvent(new CustomEvent('text-expander-committed', { cancelable: false, detail: { input: this.input } }));\n }\n onBlur() {\n if (this.interactingWithList) {\n this.interactingWithList = false;\n return;\n }\n this.deactivate();\n }\n onPaste() {\n this.justPasted = true;\n }\n async onInput() {\n if (this.justPasted) {\n this.justPasted = false;\n return;\n }\n const match = this.findMatch();\n if (match) {\n this.match = match;\n const menu = await this.notifyProviders(match);\n if (!this.match)\n return;\n if (menu) {\n this.activate(match, menu);\n }\n else {\n this.deactivate();\n }\n }\n else {\n this.match = null;\n this.deactivate();\n }\n }\n findMatch() {\n const cursor = this.input.selectionEnd || 0;\n const text = this.input.value;\n if (cursor <= this.lookBackIndex) {\n this.lookBackIndex = cursor - 1;\n }\n for (const { key, multiWord } of this.expander.keys) {\n const found = query(text, key, cursor, {\n multiWord,\n lookBackIndex: this.lookBackIndex,\n lastMatchPosition: this.match ? this.match.position : null\n });\n if (found) {\n return { text: found.text, key, position: found.position };\n }\n }\n }\n async notifyProviders(match) {\n const providers = [];\n const provide = (result) => providers.push(result);\n const canceled = !this.expander.dispatchEvent(new CustomEvent('text-expander-change', { cancelable: true, detail: { provide, text: match.text, key: match.key } }));\n if (canceled)\n return;\n const all = await Promise.all(providers);\n const fragments = all.filter(x => x.matched).map(x => x.fragment);\n return fragments[0];\n }\n onMousedown() {\n this.interactingWithList = true;\n }\n onKeydown(event) {\n if (event.key === 'Escape') {\n this.match = null;\n if (this.deactivate()) {\n this.lookBackIndex = this.input.selectionEnd || this.lookBackIndex;\n event.stopImmediatePropagation();\n event.preventDefault();\n }\n }\n }\n}\nclass TextExpanderElement extends HTMLElement {\n get keys() {\n const keysAttr = this.getAttribute('keys');\n const keys = keysAttr ? keysAttr.split(' ') : [];\n const multiWordAttr = this.getAttribute('multiword');\n const multiWord = multiWordAttr ? multiWordAttr.split(' ') : [];\n const globalMultiWord = multiWord.length === 0 && this.hasAttribute('multiword');\n return keys.map(key => ({ key, multiWord: globalMultiWord || multiWord.includes(key) }));\n }\n connectedCallback() {\n const input = this.querySelector('input[type=\"text\"], textarea');\n if (!(input instanceof HTMLInputElement || input instanceof HTMLTextAreaElement))\n return;\n const state = new TextExpander(this, input);\n states.set(this, state);\n }\n disconnectedCallback() {\n const state = states.get(this);\n if (!state)\n return;\n state.destroy();\n states.delete(this);\n }\n dismiss() {\n const state = states.get(this);\n if (!state)\n return;\n state.dismissMenu();\n }\n}\n\nif (!window.customElements.get('text-expander')) {\n window.TextExpanderElement = TextExpanderElement;\n window.customElements.define('text-expander', TextExpanderElement);\n}\n\nexport default TextExpanderElement;\n","export default function ansiRegex({onlyFirst = false} = {}) {\n\tconst pattern = [\n\t '[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n}\n","import ansiRegex from 'ansi-regex';\n\nconst regex = ansiRegex();\n\nexport default function stripAnsi(string) {\n\tif (typeof string !== 'string') {\n\t\tthrow new TypeError(`Expected a \\`string\\`, got \\`${typeof string}\\``);\n\t}\n\n\t// Even though the regex is global, we don't need to reset the `.lastIndex`\n\t// because unlike `.exec()` and `.test()`, `.replace()` does it automatically\n\t// and doing it manually has a performance penalty.\n\treturn string.replace(regex, '');\n}\n","import stripAnsi from 'strip-ansi';\n\nconst segmenter = new Intl.Segmenter();\n\nexport default function stringLength(string, {countAnsiEscapeCodes = false} = {}) {\n\tif (string === '') {\n\t\treturn 0;\n\t}\n\n\tif (!countAnsiEscapeCodes) {\n\t\tstring = stripAnsi(string);\n\t}\n\n\tif (string === '') {\n\t\treturn 0;\n\t}\n\n\tlet length = 0;\n\n\tfor (const _ of segmenter.segment(string)) { // eslint-disable-line no-unused-vars\n\t\tlength++;\n\t}\n\n\treturn length;\n}\n","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20version='1.0'%20viewBox='0%200%20641%20223'%3e%3cpath%20fill='%23aaa'%20d='M86%20214c-9-1-17-4-24-8l-6-3-5-5-5-4-4-6-4-6-3-8-2-8v-27l2-9%203-9%204-6%204-6%205-5%205-5%207-3%206-4%207-2%207-2%2012-1h12l7%201%208%202%207%204%207%203%205%205%205%204-10%2010-10%209-4-3-10-5-5-1H88l-5%202-6%203-3%204-4%204-2%205-2%206v6l-1%207%201%207%202%207%203%205%202%204%204%203%204%203%205%202%206%202h9l10-1%205-2%206-3v-16H91v-27h59v54l-1%203-2%203-5%204-4%204-5%203-5%202-8%202-8%202-10%201H92l-6-1zm266-62V91h34v46h44V91h34v121h-34v-46h-44v46h-34v-61zm-182-1V90h34v121h-34v-60zm59-1V90h35l36%201%205%202c3%200%208%202%2010%204l5%202%204%205%205%204%203%207%203%207%201%2013v13l-4%206-3%207-4%204-5%205-5%202-5%203-6%202-5%201-18%201h-18v32h-34v-61zm67-2%203-2%202-4%202-5v-5l-2-4-2-4-3-2-3-3h-30v31h30l3-2zm226%2039v-24l-8-12-18-28a1751%201751%200%200%200-20-31v-2h39l7%2012%2012%2021%206%209%2013-21%2013-21h38v2l-41%2061-7%2010v48h-34v-24zM109%2066l-4-1-5-5-5-4-1-5-3-9v-5l1-5c2-7%203-10%208-15l4-4%207-2%207-2h7l6%201%205%202%205%202%203%204%204%203%202%206%202%205v13l-2%205-2%206-4%204-3%203-5%202-4%202-9%201h-9l-5-2zm22-11%204-2%203-4%202-5V34l-2-4-2-4-3-2-4-3-5-1h-6l-4%202-5%202-2%204-3%205-1%203v4l1%205%202%205%202%202%205%203%204%202h10l4-2zM37%2039V11h33l3%201%203%202%204%203%203%203%201%205%201%204v5l-1%204-3%204-3%205-4%201-3%202-11%201H49v16H37V39zm31%200%203-2%201-2%201-2v-4l-1-3-3-2-2-2H49v18h15l4-1zm107%2025a512%20512%200%200%200-19-53h14l4%2014%206%2019%201%204%201-1%207-19%205-17h9l6%2019%207%2018v-1l2-6%205-17%204-13h14v1l-4%2012-16%2041v2h-5l-5-1-6-15-6-15-1%201-3%207-6%2015-2%208h-11l-1-3zm74-25V11h42v11h-29v2l-1%205v4h29v11h-28v11h2l15%201h13v11h-43V39zm55%200V11h33l5%203%205%202%202%204%202%205v10l-2%203-1%204-5%203-5%203%205%205%208%2010%203%204h-14l-7-9-8-10h-9v19h-12V39zm33-3%202-3v-6l-3-3-2-3h-18v16h1v1h17l2-2zm26%203V11h42v11h-29l-1%206v5h29v11h-28v5l-1%205%201%201v1h30v11h-43V39zm54%200V11h17l18%201%204%202%205%203%202%204%203%204%202%206%201%206v5c-1%206-3%2012-6%2015l-3%204-5%203-5%202-17%201h-16V39zm33%2014%205-5%202-3v-6l-1-6-1-3-1-3-4-3-3-2h-5l-6-1-3%201h-3v34h9l8-1%203-2zm50-14V11h34l5%202%204%202%202%203%202%203v9l-2%202-3%204-1%201%203%203%203%204%201%203%201%204-1%204-1%204-3%203-3%203-5%201-5%201h-31V39zm34%2015%202-1v-6l-2-2-2-2h-20v13h20l2-2zm-3-22%204-2v-6l-2-1-2-2h-19v12h16l4-1zm42%2024V45l-6-9-11-17-5-8h15l4%208%207%2011%202%203%207-11%207-11h14l-11%2016-11%2017v23h-12V56z'/%3e%3c/svg%3e\"","import './compose.css';\n\nimport '@github/text-expander-element';\nimport { MenuItem } from '@szhsin/react-menu';\nimport { deepEqual } from 'fast-equals';\nimport Fuse from 'fuse.js';\nimport { memo } from 'preact/compat';\nimport { forwardRef } from 'preact/compat';\nimport {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'preact/hooks';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport stringLength from 'string-length';\nimport { detectAll } from 'tinyld/light';\nimport { uid } from 'uid/single';\nimport { useDebouncedCallback, useThrottledCallback } from 'use-debounce';\nimport { useSnapshot } from 'valtio';\n\nimport poweredByGiphyURL from '../assets/powered-by-giphy.svg';\n\nimport Menu2 from '../components/menu2';\nimport supportedLanguages from '../data/status-supported-languages';\nimport urlRegex from '../data/url-regex';\nimport { api } from '../utils/api';\nimport db from '../utils/db';\nimport emojifyText from '../utils/emojify-text';\nimport localeMatch from '../utils/locale-match';\nimport localeCode2Text from '../utils/localeCode2Text';\nimport openCompose from '../utils/open-compose';\nimport pmem from '../utils/pmem';\nimport { fetchRelationships } from '../utils/relationships';\nimport shortenNumber from '../utils/shorten-number';\nimport showToast from '../utils/show-toast';\nimport states, { saveStatus } from '../utils/states';\nimport store from '../utils/store';\nimport {\n getCurrentAccount,\n getCurrentAccountNS,\n getCurrentInstance,\n getCurrentInstanceConfiguration,\n} from '../utils/store-utils';\nimport supports from '../utils/supports';\nimport useCloseWatcher from '../utils/useCloseWatcher';\nimport useInterval from '../utils/useInterval';\nimport visibilityIconsMap from '../utils/visibility-icons-map';\n\nimport AccountBlock from './account-block';\n// import Avatar from './avatar';\nimport Icon from './icon';\nimport Loader from './loader';\nimport Modal from './modal';\nimport Status from './status';\n\nconst {\n PHANPY_IMG_ALT_API_URL: IMG_ALT_API_URL,\n PHANPY_GIPHY_API_KEY: GIPHY_API_KEY,\n} = import.meta.env;\n\nconst supportedLanguagesMap = supportedLanguages.reduce((acc, l) => {\n const [code, common, native] = l;\n acc[code] = {\n common,\n native,\n };\n return acc;\n}, {});\n\n/* NOTES:\n - Max character limit includes BOTH status text and Content Warning text\n*/\n\nconst expiryOptions = {\n '5 minutes': 5 * 60,\n '30 minutes': 30 * 60,\n '1 hour': 60 * 60,\n '6 hours': 6 * 60 * 60,\n '12 hours': 12 * 60 * 60,\n '1 day': 24 * 60 * 60,\n '3 days': 3 * 24 * 60 * 60,\n '7 days': 7 * 24 * 60 * 60,\n};\nconst expirySeconds = Object.values(expiryOptions);\nconst oneDay = 24 * 60 * 60;\n\nconst expiresInFromExpiresAt = (expiresAt) => {\n if (!expiresAt) return oneDay;\n const delta = (new Date(expiresAt).getTime() - Date.now()) / 1000;\n return expirySeconds.find((s) => s >= delta) || oneDay;\n};\n\nconst menu = document.createElement('ul');\nmenu.role = 'listbox';\nmenu.className = 'text-expander-menu';\n\n// Set IntersectionObserver on menu, reposition it because text-expander doesn't handle it\nconst windowMargin = 16;\nconst observer = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n const { left, width } = entry.boundingClientRect;\n const { innerWidth } = window;\n if (left + width > innerWidth) {\n menu.style.left = innerWidth - width - windowMargin + 'px';\n }\n }\n });\n});\nobserver.observe(menu);\n\nconst DEFAULT_LANG = localeMatch(\n [new Intl.DateTimeFormat().resolvedOptions().locale, ...navigator.languages],\n supportedLanguages.map((l) => l[0]),\n 'en',\n);\n\n// https://github.com/mastodon/mastodon/blob/c4a429ed47e85a6bbf0d470a41cc2f64cf120c19/app/javascript/mastodon/features/compose/util/counter.js\nconst urlRegexObj = new RegExp(urlRegex.source, urlRegex.flags);\nconst usernameRegex = /(^|[^\\/\\w])@(([a-z0-9_]+)@[a-z0-9\\.\\-]+[a-z0-9]+)/gi;\nconst urlPlaceholder = '$2xxxxxxxxxxxxxxxxxxxxxxx';\nfunction countableText(inputText) {\n return inputText\n .replace(urlRegexObj, urlPlaceholder)\n .replace(usernameRegex, '$1@$3');\n}\n\n// https://github.com/mastodon/mastodon/blob/c03bd2a238741a012aa4b98dc4902d6cf948ab63/app/models/account.rb#L69\nconst USERNAME_RE = /[a-z0-9_]+([a-z0-9_.-]+[a-z0-9_]+)?/i;\nconst MENTION_RE = new RegExp(\n `(^|[^=\\\\/\\\\w])(@${USERNAME_RE.source}(?:@[\\\\p{L}\\\\w.-]+[\\\\w]+)?)`,\n 'uig',\n);\n\n// AI-generated, all other regexes are too complicated\nconst HASHTAG_RE = new RegExp(\n `(^|[^=\\\\/\\\\w])(#[a-z0-9_]+([a-z0-9_.]+[a-z0-9_]+)?)(?![\\\\/\\\\w])`,\n 'ig',\n);\n\n// https://github.com/mastodon/mastodon/blob/23e32a4b3031d1da8b911e0145d61b4dd47c4f96/app/models/custom_emoji.rb#L31\nconst SHORTCODE_RE_FRAGMENT = '[a-zA-Z0-9_]{2,}';\nconst SCAN_RE = new RegExp(\n `(^|[^=\\\\/\\\\w])(:${SHORTCODE_RE_FRAGMENT}:)(?=[^A-Za-z0-9_:]|$)`,\n 'g',\n);\n\nconst segmenter = new Intl.Segmenter();\nfunction highlightText(text, { maxCharacters = Infinity }) {\n // Accept text string, return formatted HTML string\n // Escape all HTML special characters\n let html = text\n .replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''');\n\n // Exceeded characters limit\n const { composerCharacterCount } = states;\n if (composerCharacterCount > maxCharacters) {\n // Highlight exceeded characters\n let withinLimitHTML = '',\n exceedLimitHTML = '';\n const htmlSegments = segmenter.segment(html);\n for (const { segment, index } of htmlSegments) {\n if (index < maxCharacters) {\n withinLimitHTML += segment;\n } else {\n exceedLimitHTML += segment;\n }\n }\n if (exceedLimitHTML) {\n exceedLimitHTML =\n '' +\n exceedLimitHTML +\n '';\n }\n return withinLimitHTML + exceedLimitHTML;\n }\n\n return html\n .replace(urlRegexObj, '$2$3') // URLs\n .replace(MENTION_RE, '$1$2') // Mentions\n .replace(HASHTAG_RE, '$1$2') // Hashtags\n .replace(\n SCAN_RE,\n '$1$2',\n ); // Emoji shortcodes\n}\n\nconst rtf = new Intl.RelativeTimeFormat();\n\nconst CUSTOM_EMOJIS_COUNT = 100;\n\nfunction Compose({\n onClose,\n replyToStatus,\n editStatus,\n draftStatus,\n standalone,\n hasOpener,\n}) {\n console.warn('RENDER COMPOSER');\n const { masto, instance } = api();\n const [uiState, setUIState] = useState('default');\n const UID = useRef(draftStatus?.uid || uid());\n console.log('Compose UID', UID.current);\n\n const currentAccount = getCurrentAccount();\n const currentAccountInfo = currentAccount.info;\n\n const configuration = getCurrentInstanceConfiguration();\n console.log('⚙️ Configuration', configuration);\n\n const {\n statuses: {\n maxCharacters,\n maxMediaAttachments,\n charactersReservedPerUrl,\n } = {},\n mediaAttachments: {\n supportedMimeTypes = [],\n imageSizeLimit,\n imageMatrixLimit,\n videoSizeLimit,\n videoMatrixLimit,\n videoFrameRateLimit,\n } = {},\n polls: {\n maxOptions,\n maxCharactersPerOption,\n maxExpiration,\n minExpiration,\n } = {},\n } = configuration || {};\n\n const textareaRef = useRef();\n const spoilerTextRef = useRef();\n const [visibility, setVisibility] = useState('public');\n const [sensitive, setSensitive] = useState(false);\n const [language, setLanguage] = useState(\n store.session.get('currentLanguage') || DEFAULT_LANG,\n );\n const prevLanguage = useRef(language);\n const [mediaAttachments, setMediaAttachments] = useState([]);\n const [poll, setPoll] = useState(null);\n\n const prefs = store.account.get('preferences') || {};\n\n const oninputTextarea = () => {\n if (!textareaRef.current) return;\n textareaRef.current.dispatchEvent(new Event('input'));\n };\n const focusTextarea = () => {\n setTimeout(() => {\n if (!textareaRef.current) return;\n // status starts with newline, focus on first position\n if (draftStatus?.status?.startsWith?.('\\n')) {\n textareaRef.current.selectionStart = 0;\n textareaRef.current.selectionEnd = 0;\n }\n console.debug('FOCUS textarea');\n textareaRef.current?.focus();\n }, 300);\n };\n\n useEffect(() => {\n if (replyToStatus) {\n const { spoilerText, visibility, language, sensitive } = replyToStatus;\n if (spoilerText && spoilerTextRef.current) {\n spoilerTextRef.current.value = spoilerText;\n }\n const mentions = new Set([\n replyToStatus.account.acct,\n ...replyToStatus.mentions.map((m) => m.acct),\n ]);\n const allMentions = [...mentions].filter(\n (m) => m !== currentAccountInfo.acct,\n );\n if (allMentions.length > 0) {\n textareaRef.current.value = `${allMentions\n .map((m) => `@${m}`)\n .join(' ')} `;\n oninputTextarea();\n }\n focusTextarea();\n setVisibility(\n visibility === 'public' && prefs['posting:default:visibility']\n ? prefs['posting:default:visibility']\n : visibility,\n );\n setLanguage(language || prefs.postingDefaultLanguage || DEFAULT_LANG);\n setSensitive(sensitive && !!spoilerText);\n } else if (editStatus) {\n const { visibility, language, sensitive, poll, mediaAttachments } =\n editStatus;\n const composablePoll = !!poll?.options && {\n ...poll,\n options: poll.options.map((o) => o?.title || o),\n expiresIn: poll?.expiresIn || expiresInFromExpiresAt(poll.expiresAt),\n };\n setUIState('loading');\n (async () => {\n try {\n const statusSource = await masto.v1.statuses\n .$select(editStatus.id)\n .source.fetch();\n console.log({ statusSource });\n const { text, spoilerText } = statusSource;\n textareaRef.current.value = text;\n textareaRef.current.dataset.source = text;\n oninputTextarea();\n focusTextarea();\n spoilerTextRef.current.value = spoilerText;\n setVisibility(visibility);\n setLanguage(language || presf.postingDefaultLanguage || DEFAULT_LANG);\n setSensitive(sensitive);\n if (composablePoll) setPoll(composablePoll);\n setMediaAttachments(mediaAttachments);\n setUIState('default');\n } catch (e) {\n console.error(e);\n alert(e?.reason || e);\n setUIState('error');\n }\n })();\n } else {\n focusTextarea();\n console.log('Apply prefs', prefs);\n if (prefs['posting:default:visibility']) {\n setVisibility(prefs['posting:default:visibility']);\n }\n if (prefs['posting:default:language']) {\n setLanguage(prefs['posting:default:language']);\n }\n if (prefs['posting:default:sensitive']) {\n setSensitive(prefs['posting:default:sensitive']);\n }\n }\n if (draftStatus) {\n const {\n status,\n spoilerText,\n visibility,\n language,\n sensitive,\n poll,\n mediaAttachments,\n } = draftStatus;\n const composablePoll = !!poll?.options && {\n ...poll,\n options: poll.options.map((o) => o?.title || o),\n expiresIn: poll?.expiresIn || expiresInFromExpiresAt(poll.expiresAt),\n };\n textareaRef.current.value = status;\n oninputTextarea();\n focusTextarea();\n if (spoilerText) spoilerTextRef.current.value = spoilerText;\n if (visibility) setVisibility(visibility);\n setLanguage(language || prefs.postingDefaultLanguage || DEFAULT_LANG);\n if (sensitive !== null) setSensitive(sensitive);\n if (composablePoll) setPoll(composablePoll);\n if (mediaAttachments) setMediaAttachments(mediaAttachments);\n }\n }, [draftStatus, editStatus, replyToStatus]);\n\n const formRef = useRef();\n\n const beforeUnloadCopy = 'You have unsaved changes. Discard this post?';\n const canClose = () => {\n const { value, dataset } = textareaRef.current;\n\n // check if loading\n if (uiState === 'loading') {\n console.log('canClose', { uiState });\n return false;\n }\n\n // check for status and media attachments\n const hasValue = (value || '')\n .trim()\n .replace(/^\\p{White_Space}+|\\p{White_Space}+$/gu, '');\n const hasMediaAttachments = mediaAttachments.length > 0;\n if (!hasValue && !hasMediaAttachments) {\n console.log('canClose', { value, mediaAttachments });\n return true;\n }\n\n // check if all media attachments have IDs\n const hasIDMediaAttachments =\n mediaAttachments.length > 0 &&\n mediaAttachments.every((media) => media.id);\n if (hasIDMediaAttachments) {\n console.log('canClose', { hasIDMediaAttachments });\n return true;\n }\n\n // check if status contains only \"@acct\", if replying\n const isSelf = replyToStatus?.account.id === currentAccountInfo.id;\n const hasOnlyAcct =\n replyToStatus && value.trim() === `@${replyToStatus.account.acct}`;\n // TODO: check for mentions, or maybe just generic \"@username\", including multiple mentions like \"@username1@username2\"\n if (!isSelf && hasOnlyAcct) {\n console.log('canClose', { isSelf, hasOnlyAcct });\n return true;\n }\n\n // check if status is same with source\n const sameWithSource = value === dataset?.source;\n if (sameWithSource) {\n console.log('canClose', { sameWithSource });\n return true;\n }\n\n console.log('canClose', {\n value,\n hasMediaAttachments,\n hasIDMediaAttachments,\n poll,\n isSelf,\n hasOnlyAcct,\n sameWithSource,\n uiState,\n });\n\n return false;\n };\n\n const confirmClose = () => {\n if (!canClose()) {\n const yes = confirm(beforeUnloadCopy);\n return yes;\n }\n return true;\n };\n\n useEffect(() => {\n // Show warning if user tries to close window with unsaved changes\n const handleBeforeUnload = (e) => {\n if (!canClose()) {\n e.preventDefault();\n e.returnValue = beforeUnloadCopy;\n }\n };\n window.addEventListener('beforeunload', handleBeforeUnload, {\n capture: true,\n });\n return () =>\n window.removeEventListener('beforeunload', handleBeforeUnload, {\n capture: true,\n });\n }, []);\n\n const getCharCount = () => {\n const { value } = textareaRef.current;\n const { value: spoilerText } = spoilerTextRef.current;\n return stringLength(countableText(value)) + stringLength(spoilerText);\n };\n const updateCharCount = () => {\n const count = getCharCount();\n states.composerCharacterCount = count;\n };\n useEffect(updateCharCount, []);\n\n const supportsCloseWatcher = window.CloseWatcher;\n const escDownRef = useRef(false);\n useHotkeys(\n 'esc',\n () => {\n escDownRef.current = true;\n // This won't be true if this event is already handled and not propagated 🤞\n },\n {\n enabled: !supportsCloseWatcher,\n enableOnFormTags: true,\n },\n );\n useHotkeys(\n 'esc',\n () => {\n if (!standalone && escDownRef.current && confirmClose()) {\n onClose();\n }\n escDownRef.current = false;\n },\n {\n enabled: !supportsCloseWatcher,\n enableOnFormTags: true,\n // Use keyup because Esc keydown will close the confirm dialog on Safari\n keyup: true,\n ignoreEventWhen: (e) => {\n const modals = document.querySelectorAll('#modal-container > *');\n const hasModal = !!modals;\n const hasOnlyComposer =\n modals.length === 1 && modals[0].querySelector('#compose-container');\n return hasModal && !hasOnlyComposer;\n },\n },\n );\n useCloseWatcher(() => {\n if (!standalone && confirmClose()) {\n onClose();\n }\n }, [standalone, confirmClose, onClose]);\n\n const prevBackgroundDraft = useRef({});\n const draftKey = () => {\n const ns = getCurrentAccountNS();\n return `${ns}#${UID.current}`;\n };\n const saveUnsavedDraft = () => {\n // Not enabling this for editing status\n // I don't think this warrant a draft mode for a status that's already posted\n // Maybe it could be a big edit change but it should be rare\n if (editStatus) return;\n if (states.composerState.minimized) return;\n const key = draftKey();\n const backgroundDraft = {\n key,\n replyTo: replyToStatus\n ? {\n /* Smaller payload of replyToStatus. Reasons:\n - No point storing whole thing\n - Could have media attachments\n - Could be deleted/edited later\n */\n id: replyToStatus.id,\n account: {\n id: replyToStatus.account.id,\n username: replyToStatus.account.username,\n acct: replyToStatus.account.acct,\n },\n }\n : null,\n draftStatus: {\n uid: UID.current,\n status: textareaRef.current.value,\n spoilerText: spoilerTextRef.current.value,\n visibility,\n language,\n sensitive,\n poll,\n mediaAttachments,\n },\n };\n if (\n !deepEqual(backgroundDraft, prevBackgroundDraft.current) &&\n !canClose()\n ) {\n console.debug('not equal', backgroundDraft, prevBackgroundDraft.current);\n db.drafts\n .set(key, {\n ...backgroundDraft,\n state: 'unsaved',\n updatedAt: Date.now(),\n })\n .then(() => {\n console.debug('DRAFT saved', key, backgroundDraft);\n })\n .catch((e) => {\n console.error('DRAFT failed', key, e);\n });\n prevBackgroundDraft.current = structuredClone(backgroundDraft);\n }\n };\n useInterval(saveUnsavedDraft, 5000); // background save every 5s\n useEffect(() => {\n saveUnsavedDraft();\n // If unmounted, means user discarded the draft\n // Also means pop-out 🙈, but it's okay because the pop-out will persist the ID and re-create the draft\n return () => {\n db.drafts.del(draftKey());\n };\n }, []);\n\n useEffect(() => {\n const handleItems = (e) => {\n const { items } = e.clipboardData || e.dataTransfer;\n const files = [];\n for (let i = 0; i < items.length; i++) {\n const item = items[i];\n if (item.kind === 'file') {\n const file = item.getAsFile();\n if (file && supportedMimeTypes.includes(file.type)) {\n files.push(file);\n }\n }\n }\n if (files.length > 0 && mediaAttachments.length >= maxMediaAttachments) {\n alert(`You can only attach up to ${maxMediaAttachments} files.`);\n return;\n }\n console.log({ files });\n if (files.length > 0) {\n e.preventDefault();\n e.stopPropagation();\n // Auto-cut-off files to avoid exceeding maxMediaAttachments\n const max = maxMediaAttachments - mediaAttachments.length;\n const allowedFiles = files.slice(0, max);\n if (allowedFiles.length <= 0) {\n alert(`You can only attach up to ${maxMediaAttachments} files.`);\n return;\n }\n const mediaFiles = allowedFiles.map((file) => ({\n file,\n type: file.type,\n size: file.size,\n url: URL.createObjectURL(file),\n id: null,\n description: null,\n }));\n setMediaAttachments([...mediaAttachments, ...mediaFiles]);\n }\n };\n window.addEventListener('paste', handleItems);\n const handleDragover = (e) => {\n // Prevent default if there's files\n if (e.dataTransfer.items.length > 0) {\n e.preventDefault();\n e.stopPropagation();\n }\n };\n window.addEventListener('dragover', handleDragover);\n window.addEventListener('drop', handleItems);\n return () => {\n window.removeEventListener('paste', handleItems);\n window.removeEventListener('dragover', handleDragover);\n window.removeEventListener('drop', handleItems);\n };\n }, [mediaAttachments]);\n\n const [showMentionPicker, setShowMentionPicker] = useState(false);\n const [showEmoji2Picker, setShowEmoji2Picker] = useState(false);\n const [showGIFPicker, setShowGIFPicker] = useState(false);\n\n const [autoDetectedLanguages, setAutoDetectedLanguages] = useState(null);\n const [topSupportedLanguages, restSupportedLanguages] = useMemo(() => {\n const topLanguages = [];\n const restLanguages = [];\n const { contentTranslationHideLanguages = [] } = states.settings;\n supportedLanguages.forEach((l) => {\n const [code] = l;\n if (\n code === language ||\n code === prevLanguage.current ||\n code === DEFAULT_LANG ||\n contentTranslationHideLanguages.includes(code) ||\n (autoDetectedLanguages?.length && autoDetectedLanguages.includes(code))\n ) {\n topLanguages.push(l);\n } else {\n restLanguages.push(l);\n }\n });\n topLanguages.sort(([codeA, commonA], [codeB, commonB]) => {\n if (codeA === language) return -1;\n if (codeB === language) return 1;\n return commonA.localeCompare(commonB);\n });\n restLanguages.sort(([codeA, commonA], [codeB, commonB]) =>\n commonA.localeCompare(commonB),\n );\n return [topLanguages, restLanguages];\n }, [language, autoDetectedLanguages]);\n\n const replyToStatusMonthsAgo = useMemo(\n () =>\n !!replyToStatus?.createdAt &&\n Math.floor(\n (Date.now() - new Date(replyToStatus.createdAt)) /\n (1000 * 60 * 60 * 24 * 30),\n ),\n [replyToStatus],\n );\n\n const onMinimize = () => {\n saveUnsavedDraft();\n states.composerState.minimized = true;\n };\n\n return (\n
    \n
    \n
    \n {currentAccountInfo?.avatarStatic && (\n // \n \n )}\n {!standalone ? (\n \n {\n // If there are non-ID media attachments (not yet uploaded), show confirmation dialog because they are not going to be passed to the new window\n // const containNonIDMediaAttachments =\n // mediaAttachments.length > 0 &&\n // mediaAttachments.some((media) => !media.id);\n // if (containNonIDMediaAttachments) {\n // const yes = confirm(\n // 'You have media attachments that are not yet uploaded. Opening a new window will discard them and you will need to re-attach them. Are you sure you want to continue?',\n // );\n // if (!yes) {\n // return;\n // }\n // }\n\n // const mediaAttachmentsWithIDs = mediaAttachments.filter(\n // (media) => media.id,\n // );\n\n const newWin = openCompose({\n editStatus,\n replyToStatus,\n draftStatus: {\n uid: UID.current,\n status: textareaRef.current.value,\n spoilerText: spoilerTextRef.current.value,\n visibility,\n language,\n sensitive,\n poll,\n mediaAttachments,\n },\n });\n\n if (!newWin) {\n return;\n }\n\n onClose();\n }}\n >\n \n \n \n \n {' '}\n {\n if (confirmClose()) {\n onClose();\n }\n }}\n >\n \n \n \n ) : (\n hasOpener && (\n {\n // If there are non-ID media attachments (not yet uploaded), show confirmation dialog because they are not going to be passed to the new window\n // const containNonIDMediaAttachments =\n // mediaAttachments.length > 0 &&\n // mediaAttachments.some((media) => !media.id);\n // if (containNonIDMediaAttachments) {\n // const yes = confirm(\n // 'You have media attachments that are not yet uploaded. Opening a new window will discard them and you will need to re-attach them. Are you sure you want to continue?',\n // );\n // if (!yes) {\n // return;\n // }\n // }\n\n if (!window.opener) {\n alert('Looks like you closed the parent window.');\n return;\n }\n\n if (window.opener.__STATES__.showCompose) {\n if (window.opener.__STATES__.composerState?.publishing) {\n alert(\n 'Looks like you already have a compose field open in the parent window and currently publishing. Please wait for it to be done and try again later.',\n );\n return;\n }\n\n let confirmText =\n 'Looks like you already have a compose field open in the parent window. Popping in this window will discard the changes you made in the parent window. Continue?';\n const yes = confirm(confirmText);\n if (!yes) return;\n }\n\n // const mediaAttachmentsWithIDs = mediaAttachments.filter(\n // (media) => media.id,\n // );\n\n onClose({\n fn: () => {\n const passData = {\n editStatus,\n replyToStatus,\n draftStatus: {\n uid: UID.current,\n status: textareaRef.current.value,\n spoilerText: spoilerTextRef.current.value,\n visibility,\n language,\n sensitive,\n poll,\n mediaAttachments,\n },\n };\n window.opener.__COMPOSE__ = passData; // Pass it here instead of `showCompose` due to some weird proxy issue again\n if (window.opener.__STATES__.showCompose) {\n window.opener.__STATES__.showCompose = false;\n setTimeout(() => {\n window.opener.__STATES__.showCompose = true;\n }, 10);\n } else {\n window.opener.__STATES__.showCompose = true;\n }\n if (window.opener.__STATES__.composerState.minimized) {\n // Maximize it\n window.opener.__STATES__.composerState.minimized = false;\n }\n },\n });\n }}\n >\n \n \n )\n )}\n
    \n {!!replyToStatus && (\n
    \n \n
    \n Replying to @\n {replyToStatus.account.acct || replyToStatus.account.username}\n ’s post\n {replyToStatusMonthsAgo >= 3 && (\n <>\n {' '}\n (\n \n {rtf.format(-replyToStatusMonthsAgo, 'month')}\n \n )\n \n )}\n
    \n
    \n )}\n {!!editStatus && (\n
    \n \n
    Editing source post
    \n
    \n )}\n {\n if (e.key === 'Enter' && (e.ctrlKey || e.metaKey)) {\n formRef.current.dispatchEvent(\n new Event('submit', { cancelable: true }),\n );\n }\n }}\n onSubmit={(e) => {\n e.preventDefault();\n\n const formData = new FormData(e.target);\n const entries = Object.fromEntries(formData.entries());\n console.log('ENTRIES', entries);\n let { status, visibility, sensitive, spoilerText } = entries;\n\n // Pre-cleanup\n sensitive = sensitive === 'on'; // checkboxes return \"on\" if checked\n\n // Validation\n /* Let the backend validate this\n if (stringLength(status) > maxCharacters) {\n alert(`Status is too long! Max characters: ${maxCharacters}`);\n return;\n }\n if (\n sensitive &&\n stringLength(status) + stringLength(spoilerText) > maxCharacters\n ) {\n alert(\n `Status and content warning is too long! Max characters: ${maxCharacters}`,\n );\n return;\n }\n */\n if (poll) {\n if (poll.options.length < 2) {\n alert('Poll must have at least 2 options');\n return;\n }\n if (poll.options.some((option) => option === '')) {\n alert('Some poll choices are empty');\n return;\n }\n }\n // TODO: check for URLs and use `charactersReservedPerUrl` to calculate max characters\n\n if (mediaAttachments.length > 0) {\n // If there are media attachments, check if they have no descriptions\n const hasNoDescriptions = mediaAttachments.some(\n (media) => !media.description?.trim?.(),\n );\n if (hasNoDescriptions) {\n const yes = confirm(\n 'Some media have no descriptions. Continue?',\n );\n if (!yes) return;\n }\n }\n\n // Post-cleanup\n spoilerText = (sensitive && spoilerText) || undefined;\n status = status === '' ? undefined : status;\n\n // states.composerState.minimized = true;\n states.composerState.publishing = true;\n setUIState('loading');\n (async () => {\n try {\n console.log('MEDIA ATTACHMENTS', mediaAttachments);\n if (mediaAttachments.length > 0) {\n // Upload media attachments first\n const mediaPromises = mediaAttachments.map((attachment) => {\n const { file, description, id } = attachment;\n console.log('UPLOADING', attachment);\n if (id) {\n // If already uploaded\n return attachment;\n } else {\n const params = removeNullUndefined({\n file,\n description,\n });\n return masto.v2.media.create(params).then((res) => {\n if (res.id) {\n attachment.id = res.id;\n }\n return res;\n });\n }\n });\n const results = await Promise.allSettled(mediaPromises);\n\n // If any failed, return\n if (\n results.some((result) => {\n return result.status === 'rejected' || !result.value?.id;\n })\n ) {\n states.composerState.publishing = false;\n states.composerState.publishingError = true;\n setUIState('error');\n // Alert all the reasons\n results.forEach((result) => {\n if (result.status === 'rejected') {\n console.error(result);\n alert(result.reason || `Attachment #${i} failed`);\n }\n });\n return;\n }\n\n console.log({ results, mediaAttachments });\n }\n\n /* NOTE:\n Using snakecase here because masto.js's `isObject` returns false for `params`, ONLY happens when opening in pop-out window. This is maybe due to `window.masto` variable being passed from the parent window. The check that failed is `x.constructor === Object`, so maybe the `Object` in new window is different than parent window's?\n Code: https://github.com/neet/masto.js/blob/dd0d649067b6a2b6e60fbb0a96597c373a255b00/src/serializers/is-object.ts#L2\n\n // TODO: Note above is no longer true in Masto.js v6. Revisit this.\n */\n let params = {\n status,\n // spoilerText,\n spoiler_text: spoilerText,\n language,\n sensitive,\n poll,\n // mediaIds: mediaAttachments.map((attachment) => attachment.id),\n media_ids: mediaAttachments.map(\n (attachment) => attachment.id,\n ),\n };\n if (editStatus && supports('@mastodon/edit-media-attributes')) {\n params.media_attributes = mediaAttachments.map(\n (attachment) => {\n return {\n id: attachment.id,\n description: attachment.description,\n // focus\n // thumbnail\n };\n },\n );\n } else if (!editStatus) {\n params.visibility = visibility;\n // params.inReplyToId = replyToStatus?.id || undefined;\n params.in_reply_to_id = replyToStatus?.id || undefined;\n }\n params = removeNullUndefined(params);\n console.log('POST', params);\n\n let newStatus;\n if (editStatus) {\n newStatus = await masto.v1.statuses\n .$select(editStatus.id)\n .update(params);\n saveStatus(newStatus, instance, {\n skipThreading: true,\n });\n } else {\n try {\n newStatus = await masto.v1.statuses.create(params, {\n requestInit: {\n headers: {\n 'Idempotency-Key': UID.current,\n },\n },\n });\n } catch (_) {\n // If idempotency key fails, try again without it\n newStatus = await masto.v1.statuses.create(params);\n }\n }\n states.composerState.minimized = false;\n states.composerState.publishing = false;\n setUIState('default');\n\n // Close\n onClose({\n // type: post, reply, edit\n type: editStatus ? 'edit' : replyToStatus ? 'reply' : 'post',\n newStatus,\n instance,\n });\n } catch (e) {\n states.composerState.publishing = false;\n states.composerState.publishingError = true;\n console.error(e);\n alert(e?.reason || e);\n setUIState('error');\n }\n })();\n }}\n >\n
    \n {\n updateCharCount();\n }}\n />\n \n {\n const sensitive = e.target.checked;\n setSensitive(sensitive);\n if (sensitive) {\n spoilerTextRef.current?.focus();\n } else {\n textareaRef.current?.focus();\n }\n }}\n />\n \n {' '}\n \n \n {\n setVisibility(e.target.value);\n }}\n disabled={uiState === 'loading' || !!editStatus}\n >\n \n \n \n \n \n {' '}\n
    \n {\n updateCharCount();\n }}\n maxCharacters={maxCharacters}\n performSearch={(params) => {\n const { type, q, limit } = params;\n if (type === 'accounts') {\n return masto.v1.accounts.search.list({\n q,\n limit,\n resolve: false,\n });\n }\n return masto.v2.search.fetch(params);\n }}\n onTrigger={(action) => {\n if (action?.name === 'custom-emojis') {\n setShowEmoji2Picker({\n defaultSearchTerm: action?.defaultSearchTerm || null,\n });\n } else if (action?.name === 'mention') {\n setShowMentionPicker({\n defaultSearchTerm: action?.defaultSearchTerm || null,\n });\n } else if (\n action?.name === 'auto-detect-language' &&\n action?.languages\n ) {\n setAutoDetectedLanguages(action.languages);\n }\n }}\n />\n {mediaAttachments?.length > 0 && (\n
    \n {mediaAttachments.map((attachment, i) => {\n const { id, file } = attachment;\n const fileID = file?.size + file?.type + file?.name;\n return (\n {\n setMediaAttachments((attachments) => {\n const newAttachments = [...attachments];\n newAttachments[i].description = value;\n return newAttachments;\n });\n }}\n onRemove={() => {\n setMediaAttachments((attachments) => {\n return attachments.filter((_, j) => j !== i);\n });\n }}\n />\n );\n })}\n \n
    \n )}\n {!!poll && (\n {\n if (poll) {\n const newPoll = { ...poll };\n setPoll(newPoll);\n } else {\n setPoll(null);\n }\n }}\n />\n )}\n \n \n \n {/* If maxOptions is not defined or defined and is greater than 1, show poll button */}\n {maxOptions == null ||\n (maxOptions > 1 && (\n <>\n {\n setPoll({\n options: ['', ''],\n expiresIn: 24 * 60 * 60, // 1 day\n multiple: false,\n });\n }}\n >\n \n \n \n ))}\n {/* {\n setShowMentionPicker(true);\n }}\n >\n \n */}\n {\n setShowEmoji2Picker(true);\n }}\n >\n \n \n {!!states.settings.composerGIFPicker && (\n = maxMediaAttachments ||\n !!poll\n }\n onClick={() => {\n setShowGIFPicker(true);\n }}\n >\n GIF\n \n )}\n \n
    \n {uiState === 'loading' ? (\n \n ) : (\n
    \n \n
    \n {showMentionPicker && (\n {\n if (e.target === e.currentTarget) {\n setShowMentionPicker(false);\n }\n }}\n >\n {\n setShowMentionPicker(false);\n }}\n defaultSearchTerm={showMentionPicker?.defaultSearchTerm}\n onSelect={(socialAddress) => {\n const textarea = textareaRef.current;\n if (!textarea) return;\n const { selectionStart, selectionEnd } = textarea;\n const text = textarea.value;\n const textBeforeMention = text.slice(0, selectionStart);\n const spaceBeforeMention = textBeforeMention\n ? /[\\s\\t\\n\\r]$/.test(textBeforeMention)\n ? ''\n : ' '\n : '';\n const textAfterMention = text.slice(selectionEnd);\n const spaceAfterMention = /^[\\s\\t\\n\\r]/.test(textAfterMention)\n ? ''\n : ' ';\n const newText =\n textBeforeMention +\n spaceBeforeMention +\n '@' +\n socialAddress +\n spaceAfterMention +\n textAfterMention;\n textarea.value = newText;\n textarea.selectionStart = textarea.selectionEnd =\n selectionEnd +\n 1 +\n socialAddress.length +\n spaceAfterMention.length;\n textarea.focus();\n textarea.dispatchEvent(new Event('input'));\n }}\n />\n \n )}\n {showEmoji2Picker && (\n {\n if (e.target === e.currentTarget) {\n setShowEmoji2Picker(false);\n }\n }}\n >\n {\n setShowEmoji2Picker(false);\n }}\n defaultSearchTerm={showEmoji2Picker?.defaultSearchTerm}\n onSelect={(emojiShortcode) => {\n const textarea = textareaRef.current;\n if (!textarea) return;\n const { selectionStart, selectionEnd } = textarea;\n const text = textarea.value;\n const textBeforeEmoji = text.slice(0, selectionStart);\n const spaceBeforeEmoji = textBeforeEmoji\n ? /[\\s\\t\\n\\r]$/.test(textBeforeEmoji)\n ? ''\n : ' '\n : '';\n const textAfterEmoji = text.slice(selectionEnd);\n const spaceAfterEmoji = /^[\\s\\t\\n\\r]/.test(textAfterEmoji)\n ? ''\n : ' ';\n const newText =\n textBeforeEmoji +\n spaceBeforeEmoji +\n emojiShortcode +\n spaceAfterEmoji +\n textAfterEmoji;\n textarea.value = newText;\n textarea.selectionStart = textarea.selectionEnd =\n selectionEnd + emojiShortcode.length + spaceAfterEmoji.length;\n textarea.focus();\n textarea.dispatchEvent(new Event('input'));\n }}\n />\n \n )}\n {showGIFPicker && (\n {\n if (e.target === e.currentTarget) {\n setShowGIFPicker(false);\n }\n }}\n >\n setShowGIFPicker(false)}\n onSelect={({ url, type, alt_text }) => {\n console.log('GIF URL', url);\n if (mediaAttachments.length >= maxMediaAttachments) {\n alert(\n `You can only attach up to ${maxMediaAttachments} files.`,\n );\n return;\n }\n // Download the GIF and insert it as media attachment\n (async () => {\n let theToast;\n try {\n theToast = showToast({\n text: 'Downloading GIF…',\n duration: -1,\n });\n const blob = await fetch(url, {\n referrerPolicy: 'no-referrer',\n }).then((res) => res.blob());\n const file = new File(\n [blob],\n type === 'video/mp4' ? 'video.mp4' : 'image.gif',\n {\n type,\n },\n );\n const newMediaAttachments = [\n ...mediaAttachments,\n {\n file,\n type,\n size: file.size,\n id: null,\n description: alt_text || '',\n },\n ];\n setMediaAttachments(newMediaAttachments);\n theToast?.hideToast?.();\n } catch (err) {\n console.error(err);\n theToast?.hideToast?.();\n showToast('Failed to download GIF');\n }\n })();\n }}\n />\n \n )}\n
    \n );\n}\n\nfunction autoResizeTextarea(textarea) {\n if (!textarea) return;\n const { value, offsetHeight, scrollHeight, clientHeight } = textarea;\n if (offsetHeight < window.innerHeight) {\n // NOTE: This check is needed because the offsetHeight return 50000 (really large number) on first render\n // No idea why it does that, will re-investigate in far future\n const offset = offsetHeight - clientHeight;\n const height = value ? scrollHeight + offset + 'px' : null;\n textarea.style.height = height;\n }\n}\n\nasync function _getCustomEmojis(instance, masto) {\n const emojis = await masto.v1.customEmojis.list();\n const visibleEmojis = emojis.filter((e) => e.visibleInPicker);\n const searcher = new Fuse(visibleEmojis, {\n keys: ['shortcode'],\n findAllMatches: true,\n });\n return [visibleEmojis, searcher];\n}\nconst getCustomEmojis = pmem(_getCustomEmojis, {\n // Limit by time to reduce memory usage\n // Cached by instance\n matchesArg: (cacheKeyArg, keyArg) => cacheKeyArg.instance === keyArg.instance,\n maxAge: 30 * 60 * 1000, // 30 minutes\n});\n\nconst detectLangs = (text) => {\n const langs = detectAll(text);\n if (langs?.length) {\n // return max 2\n return langs.slice(0, 2).map((lang) => lang.lang);\n }\n return null;\n};\n\nconst Textarea = forwardRef((props, ref) => {\n const { masto, instance } = api();\n const [text, setText] = useState(ref.current?.value || '');\n const {\n maxCharacters,\n performSearch = () => {},\n onTrigger = () => {},\n ...textareaProps\n } = props;\n // const snapStates = useSnapshot(states);\n // const charCount = snapStates.composerCharacterCount;\n\n // const customEmojis = useRef();\n const searcherRef = useRef();\n useEffect(() => {\n getCustomEmojis(instance, masto)\n .then((r) => {\n const [emojis, searcher] = r;\n searcherRef.current = searcher;\n })\n .catch((e) => {\n console.error(e);\n });\n }, []);\n\n const textExpanderRef = useRef();\n const textExpanderTextRef = useRef('');\n useEffect(() => {\n let handleChange, handleValue, handleCommited;\n if (textExpanderRef.current) {\n handleChange = (e) => {\n // console.log('text-expander-change', e);\n const { key, provide, text } = e.detail;\n textExpanderTextRef.current = text;\n\n if (text === '') {\n provide(\n Promise.resolve({\n matched: false,\n }),\n );\n return;\n }\n\n if (key === ':') {\n // const emojis = customEmojis.current.filter((emoji) =>\n // emoji.shortcode.startsWith(text),\n // );\n // const emojis = filterShortcodes(customEmojis.current, text);\n const results = searcherRef.current?.search(text, {\n limit: 5,\n });\n let html = '';\n results.forEach(({ item: emoji }) => {\n const { shortcode, url } = emoji;\n html += `\n
  • \n \"\" \n ${encodeHTML(shortcode)}\n
  • `;\n });\n html += `
  • More…
  • `;\n // console.log({ emojis, html });\n menu.innerHTML = html;\n provide(\n Promise.resolve({\n matched: results.length > 0,\n fragment: menu,\n }),\n );\n return;\n }\n\n const type = {\n '@': 'accounts',\n '#': 'hashtags',\n }[key];\n provide(\n new Promise((resolve) => {\n const searchResults = performSearch({\n type,\n q: text,\n limit: 5,\n });\n searchResults.then((value) => {\n if (text !== textExpanderTextRef.current) {\n return;\n }\n console.log({ value, type, v: value[type] });\n const results = value[type] || value;\n console.log('RESULTS', value, results);\n let html = '';\n results.forEach((result) => {\n const {\n name,\n avatarStatic,\n displayName,\n username,\n acct,\n emojis,\n history,\n } = result;\n const displayNameWithEmoji = emojifyText(displayName, emojis);\n // const item = menuItem.cloneNode();\n if (acct) {\n html += `\n
  • \n \n \"\"\n \n \n ${displayNameWithEmoji || username}\n
    @${encodeHTML(acct)}\n
    \n
  • \n `;\n } else {\n const total = history?.reduce?.(\n (acc, cur) => acc + +cur.uses,\n 0,\n );\n html += `\n
  • \n #${encodeHTML(name)}\n ${\n total\n ? `${shortenNumber(total)}`\n : ''\n }\n
  • \n `;\n }\n });\n if (type === 'accounts') {\n html += `
  • More…
  • `;\n }\n menu.innerHTML = html;\n console.log('MENU', results, menu);\n resolve({\n matched: results.length > 0,\n fragment: menu,\n });\n });\n }),\n );\n };\n\n textExpanderRef.current.addEventListener(\n 'text-expander-change',\n handleChange,\n );\n\n handleValue = (e) => {\n const { key, item } = e.detail;\n const { value, more } = item.dataset;\n if (key === ':') {\n e.detail.value = value ? `:${value}:` : '​'; // zero-width space\n if (more) {\n // Prevent adding space after the above value\n e.detail.continue = true;\n\n setTimeout(() => {\n onTrigger?.({\n name: 'custom-emojis',\n defaultSearchTerm: more,\n });\n }, 300);\n }\n } else if (key === '@') {\n e.detail.value = value ? `@${value} ` : '​'; // zero-width space\n if (more) {\n e.detail.continue = true;\n setTimeout(() => {\n onTrigger?.({\n name: 'mention',\n defaultSearchTerm: more,\n });\n }, 300);\n }\n } else {\n e.detail.value = `${key}${value}`;\n }\n };\n\n textExpanderRef.current.addEventListener(\n 'text-expander-value',\n handleValue,\n );\n\n handleCommited = (e) => {\n const { input } = e.detail;\n setText(input.value);\n // fire input event\n if (ref.current) {\n const event = new Event('input', { bubbles: true });\n ref.current.dispatchEvent(event);\n }\n };\n\n textExpanderRef.current.addEventListener(\n 'text-expander-committed',\n handleCommited,\n );\n }\n\n return () => {\n if (textExpanderRef.current) {\n textExpanderRef.current.removeEventListener(\n 'text-expander-change',\n handleChange,\n );\n textExpanderRef.current.removeEventListener(\n 'text-expander-value',\n handleValue,\n );\n textExpanderRef.current.removeEventListener(\n 'text-expander-committed',\n handleCommited,\n );\n }\n };\n }, []);\n\n useEffect(() => {\n // Resize observer for textarea\n const textarea = ref.current;\n if (!textarea) return;\n const resizeObserver = new ResizeObserver(() => {\n // Get height of textarea, set height to textExpander\n if (textExpanderRef.current) {\n const { height } = textarea.getBoundingClientRect();\n textExpanderRef.current.style.height = height + 'px';\n }\n });\n resizeObserver.observe(textarea);\n }, []);\n\n const slowHighlightPerf = useRef(0); // increment if slow\n const composeHighlightRef = useRef();\n const throttleHighlightText = useThrottledCallback((text) => {\n if (!composeHighlightRef.current) return;\n if (slowHighlightPerf.current > 3) {\n // After 3 times of lag, disable highlighting\n composeHighlightRef.current.innerHTML = '';\n composeHighlightRef.current = null; // Destroy the whole thing\n throttleHighlightText?.cancel?.();\n return;\n }\n let start;\n let end;\n if (slowHighlightPerf.current <= 3) start = Date.now();\n composeHighlightRef.current.innerHTML =\n highlightText(text, {\n maxCharacters,\n }) + '\\n';\n if (slowHighlightPerf.current <= 3) end = Date.now();\n console.debug('HIGHLIGHT PERF', { start, end, diff: end - start });\n if (start && end && end - start > 50) {\n // if slow, increment\n slowHighlightPerf.current++;\n }\n // Newline to prevent multiple line breaks at the end from being collapsed, no idea why\n }, 500);\n\n const debouncedAutoDetectLanguage = useDebouncedCallback(() => {\n // Make use of the highlightRef to get the DOM\n // Clone the dom\n const dom = composeHighlightRef.current?.cloneNode(true);\n if (!dom) return;\n // Remove mark\n dom.querySelectorAll('mark').forEach((mark) => {\n mark.remove();\n });\n const text = dom.innerText?.trim();\n if (!text) return;\n const langs = detectLangs(text);\n if (langs?.length) {\n onTrigger?.({\n name: 'auto-detect-language',\n languages: langs,\n });\n }\n }, 2000);\n\n return (\n \n {\n // Get line before cursor position after pressing 'Enter'\n const { key, target } = e;\n if (key === 'Enter' && !(e.ctrlKey || e.metaKey)) {\n try {\n const { value, selectionStart } = target;\n const textBeforeCursor = value.slice(0, selectionStart);\n const lastLine = textBeforeCursor.split('\\n').slice(-1)[0];\n if (lastLine) {\n // If line starts with \"- \" or \"12. \"\n if (/^\\s*(-|\\d+\\.)\\s/.test(lastLine)) {\n // insert \"- \" at cursor position\n const [_, preSpaces, bullet, postSpaces, anything] =\n lastLine.match(/^(\\s*)(-|\\d+\\.)(\\s+)(.+)?/) || [];\n if (anything) {\n e.preventDefault();\n const [number] = bullet.match(/\\d+/) || [];\n const newBullet = number ? `${+number + 1}.` : '-';\n const text = `\\n${preSpaces}${newBullet}${postSpaces}`;\n target.setRangeText(text, selectionStart, selectionStart);\n const pos = selectionStart + text.length;\n target.setSelectionRange(pos, pos);\n } else {\n // trim the line before the cursor, then insert new line\n const pos = selectionStart - lastLine.length;\n target.setRangeText('', pos, selectionStart);\n }\n autoResizeTextarea(target);\n target.dispatchEvent(new Event('input'));\n }\n }\n } catch (e) {\n // silent fail\n console.error(e);\n }\n }\n if (composeHighlightRef.current) {\n composeHighlightRef.current.scrollTop = target.scrollTop;\n }\n }}\n onInput={(e) => {\n const { target } = e;\n // Replace zero-width space\n const text = target.value.replace(/\\u200b/g, '');\n setText(text);\n autoResizeTextarea(target);\n props.onInput?.(e);\n throttleHighlightText(text);\n debouncedAutoDetectLanguage();\n }}\n style={{\n width: '100%',\n height: '4em',\n // '--text-weight': (1 + charCount / 140).toFixed(1) || 1,\n }}\n onScroll={(e) => {\n if (composeHighlightRef.current) {\n const { scrollTop } = e.target;\n composeHighlightRef.current.scrollTop = scrollTop;\n }\n }}\n />\n \n \n );\n});\n\nfunction CharCountMeter({ maxCharacters = 500, hidden }) {\n const snapStates = useSnapshot(states);\n const charCount = snapStates.composerCharacterCount;\n const leftChars = maxCharacters - charCount;\n if (hidden) {\n return \n );\n}\n\nfunction prettyBytes(bytes) {\n const units = ['bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n let unitIndex = 0;\n while (bytes >= 1024) {\n bytes /= 1024;\n unitIndex++;\n }\n return `${bytes.toFixed(0).toLocaleString()} ${units[unitIndex]}`;\n}\n\nfunction scaleDimension(matrix, matrixLimit, width, height) {\n // matrix = number of pixels\n // matrixLimit = max number of pixels\n // Calculate new width and height, downsize to within the limit, preserve aspect ratio, no decimals\n const scalingFactor = Math.sqrt(matrixLimit / matrix);\n const newWidth = Math.floor(width * scalingFactor);\n const newHeight = Math.floor(height * scalingFactor);\n return { newWidth, newHeight };\n}\n\nfunction MediaAttachment({\n attachment,\n disabled,\n lang,\n onDescriptionChange = () => {},\n onRemove = () => {},\n}) {\n const [uiState, setUIState] = useState('default');\n const supportsEdit = supports('@mastodon/edit-media-attributes');\n const { type, id, file } = attachment;\n const url = useMemo(\n () => (file ? URL.createObjectURL(file) : attachment.url),\n [file, attachment.url],\n );\n console.log({ attachment });\n\n const checkMaxError = !!file?.size;\n const configuration = checkMaxError ? getCurrentInstanceConfiguration() : {};\n const {\n mediaAttachments: {\n imageSizeLimit,\n imageMatrixLimit,\n videoSizeLimit,\n videoMatrixLimit,\n videoFrameRateLimit,\n } = {},\n } = configuration || {};\n\n const [maxError, setMaxError] = useState(() => {\n if (!checkMaxError) return null;\n if (\n type.startsWith('image') &&\n imageSizeLimit &&\n file.size > imageSizeLimit\n ) {\n return {\n type: 'imageSizeLimit',\n details: {\n imageSize: file.size,\n imageSizeLimit,\n },\n };\n } else if (\n type.startsWith('video') &&\n videoSizeLimit &&\n file.size > videoSizeLimit\n ) {\n return {\n type: 'videoSizeLimit',\n details: {\n videoSize: file.size,\n videoSizeLimit,\n },\n };\n }\n return null;\n });\n\n const [imageMatrix, setImageMatrix] = useState({});\n useEffect(() => {\n if (!checkMaxError || !imageMatrixLimit) return;\n if (imageMatrix?.matrix > imageMatrixLimit) {\n setMaxError({\n type: 'imageMatrixLimit',\n details: {\n imageMatrix: imageMatrix?.matrix,\n imageMatrixLimit,\n width: imageMatrix?.width,\n height: imageMatrix?.height,\n },\n });\n }\n }, [imageMatrix, imageMatrixLimit, checkMaxError]);\n\n const [videoMatrix, setVideoMatrix] = useState({});\n useEffect(() => {\n if (!checkMaxError || !videoMatrixLimit) return;\n if (videoMatrix?.matrix > videoMatrixLimit) {\n setMaxError({\n type: 'videoMatrixLimit',\n details: {\n videoMatrix: videoMatrix?.matrix,\n videoMatrixLimit,\n width: videoMatrix?.width,\n height: videoMatrix?.height,\n },\n });\n }\n }, [videoMatrix, videoMatrixLimit, checkMaxError]);\n\n const [description, setDescription] = useState(attachment.description);\n const [suffixType, subtype] = type.split('/');\n const debouncedOnDescriptionChange = useDebouncedCallback(\n onDescriptionChange,\n 250,\n );\n useEffect(() => {\n debouncedOnDescriptionChange(description);\n }, [description, debouncedOnDescriptionChange]);\n\n const [showModal, setShowModal] = useState(false);\n const textareaRef = useRef(null);\n useEffect(() => {\n let timer;\n if (showModal && textareaRef.current) {\n timer = setTimeout(() => {\n textareaRef.current.focus();\n }, 100);\n }\n return () => {\n clearTimeout(timer);\n };\n }, [showModal]);\n\n const descTextarea = (\n <>\n {!!id && !supportsEdit ? (\n
    \n Uploaded\n

    \n {attachment.description || No description}\n

    \n
    \n ) : (\n {\n const { value } = e.target;\n setDescription(value);\n // debouncedOnDescriptionChange(value);\n }}\n >\n )}\n \n );\n\n const toastRef = useRef(null);\n useEffect(() => {\n return () => {\n toastRef.current?.hideToast?.();\n };\n }, []);\n\n const maxErrorToast = useRef(null);\n\n const maxErrorText = (err) => {\n const { type, details } = err;\n switch (type) {\n case 'imageSizeLimit': {\n const { imageSize, imageSizeLimit } = details;\n return `File size too large. Uploading might encounter issues. Try reduce the file size from ${prettyBytes(\n imageSize,\n )} to ${prettyBytes(imageSizeLimit)} or lower.`;\n }\n case 'imageMatrixLimit': {\n const { imageMatrix, imageMatrixLimit, width, height } = details;\n const { newWidth, newHeight } = scaleDimension(\n imageMatrix,\n imageMatrixLimit,\n width,\n height,\n );\n return `Dimension too large. Uploading might encounter issues. Try reduce dimension from ${width.toLocaleString()}×${height.toLocaleString()}px to ${newWidth.toLocaleString()}×${newHeight.toLocaleString()}px.`;\n }\n case 'videoSizeLimit': {\n const { videoSize, videoSizeLimit } = details;\n return `File size too large. Uploading might encounter issues. Try reduce the file size from ${prettyBytes(\n videoSize,\n )} to ${prettyBytes(videoSizeLimit)} or lower.`;\n }\n case 'videoMatrixLimit': {\n const { videoMatrix, videoMatrixLimit, width, height } = details;\n const { newWidth, newHeight } = scaleDimension(\n videoMatrix,\n videoMatrixLimit,\n width,\n height,\n );\n return `Dimension too large. Uploading might encounter issues. Try reduce dimension from ${width.toLocaleString()}×${height.toLocaleString()}px to ${newWidth.toLocaleString()}×${newHeight.toLocaleString()}px.`;\n }\n case 'videoFrameRateLimit': {\n // Not possible to detect this on client-side for now\n return 'Frame rate too high. Uploading might encounter issues.';\n }\n }\n };\n\n return (\n <>\n
    \n {\n setShowModal(true);\n }}\n >\n {suffixType === 'image' ? (\n {\n if (!checkMaxError) return;\n const { naturalWidth, naturalHeight } = e.target;\n setImageMatrix({\n matrix: naturalWidth * naturalHeight,\n width: naturalWidth,\n height: naturalHeight,\n });\n }}\n />\n ) : suffixType === 'video' || suffixType === 'gifv' ? (\n {\n if (!checkMaxError) return;\n const { videoWidth, videoHeight } = e.target;\n if (videoWidth && videoHeight) {\n setVideoMatrix({\n matrix: videoWidth * videoHeight,\n width: videoWidth,\n height: videoHeight,\n });\n }\n }}\n />\n ) : suffixType === 'audio' ? (\n
    \n {descTextarea}\n
    \n \n \n \n {!!maxError && (\n {\n if (maxErrorToast.current) {\n maxErrorToast.current.hideToast();\n }\n maxErrorToast.current = showToast({\n text: maxErrorText(maxError),\n duration: 10_000,\n });\n }}\n >\n \n \n )}\n
    \n \n {showModal && (\n {\n if (e.target === e.currentTarget) {\n setShowModal(false);\n }\n }}\n >\n
    \n {\n setShowModal(false);\n }}\n >\n \n \n
    \n

    \n {\n {\n image: 'Edit image description',\n video: 'Edit video description',\n audio: 'Edit audio description',\n }[suffixType]\n }\n

    \n
    \n
    \n
    \n {suffixType === 'image' ? (\n \"\"\n ) : suffixType === 'video' || suffixType === 'gifv' ? (\n
    \n
    \n {descTextarea}\n
    \n {suffixType === 'image' &&\n /^(png|jpe?g|gif|webp)$/i.test(subtype) &&\n !!states.settings.mediaAltGenerator &&\n !!IMG_ALT_API_URL && (\n \n \n \n }\n >\n {\n setUIState('loading');\n toastRef.current = showToast({\n text: 'Generating description. Please wait...',\n duration: -1,\n });\n // POST with multipart\n (async function () {\n try {\n const body = new FormData();\n body.append('image', file);\n const response = await fetch(IMG_ALT_API_URL, {\n method: 'POST',\n body,\n }).then((r) => r.json());\n if (response.error) {\n throw new Error(response.error);\n }\n setDescription(response.description);\n } catch (e) {\n console.error(e);\n showToast(\n `Failed to generate description${\n e?.message ? `: ${e.message}` : ''\n }`,\n );\n } finally {\n setUIState('default');\n toastRef.current?.hideToast?.();\n }\n })();\n }}\n >\n \n {lang && lang !== 'en' ? (\n \n Generate description…\n
    \n (English)\n
    \n ) : (\n Generate description…\n )}\n \n {!!lang && lang !== 'en' && (\n {\n setUIState('loading');\n toastRef.current = showToast({\n text: 'Generating description. Please wait...',\n duration: -1,\n });\n // POST with multipart\n (async function () {\n try {\n const body = new FormData();\n body.append('image', file);\n const params = `?lang=${lang}`;\n const response = await fetch(\n IMG_ALT_API_URL + params,\n {\n method: 'POST',\n body,\n },\n ).then((r) => r.json());\n if (response.error) {\n throw new Error(response.error);\n }\n setDescription(response.description);\n } catch (e) {\n console.error(e);\n showToast(\n `Failed to generate description${\n e?.message ? `: ${e.message}` : ''\n }`,\n );\n } finally {\n setUIState('default');\n toastRef.current?.hideToast?.();\n }\n })();\n }}\n >\n \n \n Generate description…\n
    ({localeCode2Text(lang)}){' '}\n \n — experimental\n \n
    \n \n )}\n \n )}\n {\n setShowModal(false);\n }}\n disabled={uiState === 'loading'}\n >\n Done\n \n
    \n
    \n
    \n
    \n \n )}\n \n );\n}\n\nfunction Poll({\n lang,\n poll,\n disabled,\n onInput = () => {},\n maxOptions,\n maxExpiration,\n minExpiration,\n maxCharactersPerOption,\n}) {\n const { options, expiresIn, multiple } = poll;\n\n return (\n
    \n
    \n {options.map((option, i) => (\n
    \n {\n const { value } = e.target;\n options[i] = value;\n onInput(poll);\n }}\n />\n {\n options.splice(i, 1);\n onInput(poll);\n }}\n >\n \n \n
    \n ))}\n
    \n
    \n = maxOptions}\n onClick={() => {\n options.push('');\n onInput(poll);\n }}\n >\n +\n {' '}\n \n \n
    \n
    \n {\n onInput(null);\n }}\n >\n Remove poll\n \n
    \n
    \n );\n}\n\nfunction filterShortcodes(emojis, searchTerm) {\n searchTerm = searchTerm.toLowerCase();\n\n // Return an array of shortcodes that start with or contain the search term, sorted by relevance and limited to the first 5\n return emojis\n .sort((a, b) => {\n let aLower = a.shortcode.toLowerCase();\n let bLower = b.shortcode.toLowerCase();\n\n let aStartsWith = aLower.startsWith(searchTerm);\n let bStartsWith = bLower.startsWith(searchTerm);\n let aContains = aLower.includes(searchTerm);\n let bContains = bLower.includes(searchTerm);\n let bothStartWith = aStartsWith && bStartsWith;\n let bothContain = aContains && bContains;\n\n return bothStartWith\n ? a.length - b.length\n : aStartsWith\n ? -1\n : bStartsWith\n ? 1\n : bothContain\n ? a.length - b.length\n : aContains\n ? -1\n : bContains\n ? 1\n : 0;\n })\n .slice(0, 5);\n}\n\nfunction encodeHTML(str) {\n return str.replace(/[&<>\"']/g, function (char) {\n return '&#' + char.charCodeAt(0) + ';';\n });\n}\n\nfunction removeNullUndefined(obj) {\n for (let key in obj) {\n if (obj[key] === null || obj[key] === undefined) {\n delete obj[key];\n }\n }\n return obj;\n}\n\nfunction MentionModal({\n onClose = () => {},\n onSelect = () => {},\n defaultSearchTerm,\n}) {\n const { masto } = api();\n const [uiState, setUIState] = useState('default');\n const [accounts, setAccounts] = useState([]);\n const [relationshipsMap, setRelationshipsMap] = useState({});\n\n const [selectedIndex, setSelectedIndex] = useState(0);\n\n const loadRelationships = async (accounts) => {\n if (!accounts?.length) return;\n const relationships = await fetchRelationships(accounts, relationshipsMap);\n if (relationships) {\n setRelationshipsMap({\n ...relationshipsMap,\n ...relationships,\n });\n }\n };\n\n const loadAccounts = (term) => {\n if (!term) return;\n setUIState('loading');\n (async () => {\n try {\n const accounts = await masto.v1.accounts.search.list({\n q: term,\n limit: 40,\n resolve: false,\n });\n setAccounts(accounts);\n loadRelationships(accounts);\n setUIState('default');\n } catch (e) {\n setUIState('error');\n console.error(e);\n }\n })();\n };\n\n const debouncedLoadAccounts = useDebouncedCallback(loadAccounts, 1000);\n\n useEffect(() => {\n loadAccounts();\n }, [loadAccounts]);\n\n const inputRef = useRef();\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.focus();\n // Put cursor at the end\n if (inputRef.current.value) {\n inputRef.current.selectionStart = inputRef.current.value.length;\n inputRef.current.selectionEnd = inputRef.current.value.length;\n }\n }\n }, []);\n\n useEffect(() => {\n if (defaultSearchTerm) {\n loadAccounts(defaultSearchTerm);\n }\n }, [defaultSearchTerm]);\n\n const selectAccount = (account) => {\n const socialAddress = account.acct;\n onSelect(socialAddress);\n onClose();\n };\n\n useHotkeys(\n 'enter',\n () => {\n const selectedAccount = accounts[selectedIndex];\n if (selectedAccount) {\n selectAccount(selectedAccount);\n }\n },\n {\n preventDefault: true,\n enableOnFormTags: ['input'],\n },\n );\n\n const listRef = useRef();\n useHotkeys(\n 'down',\n () => {\n if (selectedIndex < accounts.length - 1) {\n setSelectedIndex(selectedIndex + 1);\n } else {\n setSelectedIndex(0);\n }\n setTimeout(() => {\n const selectedItem = listRef.current.querySelector('.selected');\n if (selectedItem) {\n selectedItem.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n });\n }\n }, 1);\n },\n {\n preventDefault: true,\n enableOnFormTags: ['input'],\n },\n );\n\n useHotkeys(\n 'up',\n () => {\n if (selectedIndex > 0) {\n setSelectedIndex(selectedIndex - 1);\n } else {\n setSelectedIndex(accounts.length - 1);\n }\n setTimeout(() => {\n const selectedItem = listRef.current.querySelector('.selected');\n if (selectedItem) {\n selectedItem.scrollIntoView({\n behavior: 'smooth',\n block: 'center',\n inline: 'center',\n });\n }\n }, 1);\n },\n {\n preventDefault: true,\n enableOnFormTags: ['input'],\n },\n );\n\n return (\n
    \n {!!onClose && (\n \n )}\n
    \n {\n e.preventDefault();\n debouncedLoadAccounts.flush?.();\n // const searchTerm = inputRef.current.value;\n // debouncedLoadAccounts(searchTerm);\n }}\n >\n {\n const { value } = e.target;\n debouncedLoadAccounts(value);\n }}\n autocomplete=\"off\"\n autocorrect=\"off\"\n autocapitalize=\"off\"\n spellCheck=\"false\"\n dir=\"auto\"\n defaultValue={defaultSearchTerm || ''}\n />\n \n
    \n
    \n {accounts?.length > 0 ? (\n \n {accounts.map((account, i) => {\n const relationship = relationshipsMap[account.id];\n return (\n \n \n {\n selectAccount(account);\n }}\n >\n \n \n \n );\n })}\n \n ) : uiState === 'loading' ? (\n
    \n \n
    \n ) : uiState === 'error' ? (\n
    \n

    Error loading accounts

    \n
    \n ) : null}\n
    \n
    \n );\n}\n\nfunction CustomEmojisModal({\n masto,\n instance,\n onClose = () => {},\n onSelect = () => {},\n defaultSearchTerm,\n}) {\n const [uiState, setUIState] = useState('default');\n const customEmojisList = useRef([]);\n const [customEmojis, setCustomEmojis] = useState([]);\n const recentlyUsedCustomEmojis = useMemo(\n () => store.account.get('recentlyUsedCustomEmojis') || [],\n );\n const searcherRef = useRef();\n useEffect(() => {\n setUIState('loading');\n (async () => {\n try {\n const [emojis, searcher] = await getCustomEmojis(instance, masto);\n console.log('emojis', emojis);\n searcherRef.current = searcher;\n setCustomEmojis(emojis);\n setUIState('default');\n } catch (e) {\n setUIState('error');\n console.error(e);\n }\n })();\n }, []);\n\n const customEmojisCatList = useMemo(() => {\n // Group emojis by category\n const emojisCat = {\n '--recent--': recentlyUsedCustomEmojis.filter((emoji) =>\n customEmojis.find((e) => e.shortcode === emoji.shortcode),\n ),\n };\n const othersCat = [];\n customEmojis.forEach((emoji) => {\n customEmojisList.current?.push?.(emoji);\n if (!emoji.category) {\n othersCat.push(emoji);\n return;\n }\n if (!emojisCat[emoji.category]) {\n emojisCat[emoji.category] = [];\n }\n emojisCat[emoji.category].push(emoji);\n });\n if (othersCat.length) {\n emojisCat['--others--'] = othersCat;\n }\n return emojisCat;\n }, [customEmojis]);\n\n const scrollableRef = useRef();\n const [matches, setMatches] = useState(null);\n const onFind = useCallback(\n (e) => {\n const { value } = e.target;\n if (value) {\n const results = searcherRef.current?.search(value, {\n limit: CUSTOM_EMOJIS_COUNT,\n });\n setMatches(results.map((r) => r.item));\n scrollableRef.current?.scrollTo?.(0, 0);\n } else {\n setMatches(null);\n }\n },\n [customEmojis],\n );\n useEffect(() => {\n if (defaultSearchTerm && customEmojis?.length) {\n onFind({ target: { value: defaultSearchTerm } });\n }\n }, [defaultSearchTerm, onFind, customEmojis]);\n\n const onSelectEmoji = useCallback(\n (emoji) => {\n onSelect?.(emoji);\n onClose?.();\n\n queueMicrotask(() => {\n let recentlyUsedCustomEmojis =\n store.account.get('recentlyUsedCustomEmojis') || [];\n const recentlyUsedEmojiIndex = recentlyUsedCustomEmojis.findIndex(\n (e) => e.shortcode === emoji.shortcode,\n );\n if (recentlyUsedEmojiIndex !== -1) {\n // Move emoji to index 0\n recentlyUsedCustomEmojis.splice(recentlyUsedEmojiIndex, 1);\n recentlyUsedCustomEmojis.unshift(emoji);\n } else {\n recentlyUsedCustomEmojis.unshift(emoji);\n // Remove unavailable ones\n recentlyUsedCustomEmojis = recentlyUsedCustomEmojis.filter((e) =>\n customEmojisList.current?.find?.(\n (emoji) => emoji.shortcode === e.shortcode,\n ),\n );\n // Limit to 10\n recentlyUsedCustomEmojis = recentlyUsedCustomEmojis.slice(0, 10);\n }\n\n // Store back\n store.account.set('recentlyUsedCustomEmojis', recentlyUsedCustomEmojis);\n });\n },\n [onSelect],\n );\n\n const inputRef = useRef();\n useEffect(() => {\n if (inputRef.current) {\n inputRef.current.focus();\n // Put cursor at the end\n if (inputRef.current.value) {\n inputRef.current.selectionStart = inputRef.current.value.length;\n inputRef.current.selectionEnd = inputRef.current.value.length;\n }\n }\n }, []);\n\n return (\n
    \n {!!onClose && (\n \n )}\n
    \n
    \n Custom emojis{' '}\n {uiState === 'loading' ? (\n \n ) : (\n • {instance}\n )}\n
    \n {\n e.preventDefault();\n const emoji = matches[0];\n if (emoji) {\n onSelectEmoji(`:${emoji.shortcode}:`);\n }\n }}\n >\n \n \n
    \n
    \n {matches !== null ? (\n
      \n {matches.map((emoji) => (\n
    • \n {\n onSelectEmoji(`:${emoji.shortcode}:`);\n }}\n showCode\n />\n
    • \n ))}\n
    \n ) : (\n
    \n {uiState === 'error' && (\n
    \n

    Error loading custom emojis

    \n
    \n )}\n {uiState === 'default' &&\n Object.entries(customEmojisCatList).map(\n ([category, emojis]) =>\n !!emojis?.length && (\n <>\n
    \n {{\n '--recent--': 'Recently used',\n '--others--': 'Others',\n }[category] || category}\n
    \n \n \n ),\n )}\n
    \n )}\n
    \n
    \n );\n}\n\nconst CustomEmojisList = memo(({ emojis, onSelect }) => {\n const [max, setMax] = useState(CUSTOM_EMOJIS_COUNT);\n const showMore = emojis.length > max;\n return (\n
    \n {emojis.slice(0, max).map((emoji) => (\n {\n onSelect(`:${emoji.shortcode}:`);\n }}\n />\n ))}\n {showMore && (\n setMax(max + CUSTOM_EMOJIS_COUNT)}\n >\n {(emojis.length - max).toLocaleString()} more…\n \n )}\n
    \n );\n});\n\nconst CustomEmojiButton = memo(({ emoji, onClick, showCode }) => {\n const addEdges = (e) => {\n // Add edge-left or edge-right class based on self position relative to scrollable parent\n // If near left edge, add edge-left, if near right edge, add edge-right\n const buffer = 88;\n const parent = e.currentTarget.closest('main');\n if (parent) {\n const rect = parent.getBoundingClientRect();\n const selfRect = e.currentTarget.getBoundingClientRect();\n const targetClassList = e.currentTarget.classList;\n if (selfRect.left < rect.left + buffer) {\n targetClassList.add('edge-left');\n targetClassList.remove('edge-right');\n } else if (selfRect.right > rect.right - buffer) {\n targetClassList.add('edge-right');\n targetClassList.remove('edge-left');\n } else {\n targetClassList.remove('edge-left', 'edge-right');\n }\n }\n };\n\n return (\n \n \n {!!emoji.staticUrl && (\n \n )}\n \n \n {showCode && (\n <>\n {' '}\n {emoji.shortcode}\n \n )}\n \n );\n});\n\nconst GIFS_PER_PAGE = 20;\nfunction GIFPickerModal({ onClose = () => {}, onSelect = () => {} }) {\n const [uiState, setUIState] = useState('default');\n const [results, setResults] = useState([]);\n const formRef = useRef(null);\n const qRef = useRef(null);\n const currentOffset = useRef(0);\n const scrollableRef = useRef(null);\n\n function fetchGIFs({ offset }) {\n console.log('fetchGIFs', { offset });\n if (!qRef.current?.value) return;\n setUIState('loading');\n scrollableRef.current?.scrollTo?.({\n top: 0,\n left: 0,\n behavior: 'smooth',\n });\n (async () => {\n try {\n const query = {\n api_key: GIPHY_API_KEY,\n q: qRef.current.value,\n rating: 'g',\n limit: GIFS_PER_PAGE,\n bundle: 'messaging_non_clips',\n offset,\n };\n const response = await fetch(\n 'https://api.giphy.com/v1/gifs/search?' + new URLSearchParams(query),\n {\n referrerPolicy: 'no-referrer',\n },\n ).then((r) => r.json());\n currentOffset.current = response.pagination?.offset || 0;\n setResults(response);\n setUIState('results');\n } catch (e) {\n setUIState('error');\n console.error(e);\n }\n })();\n }\n\n useEffect(() => {\n qRef.current?.focus();\n }, []);\n\n const debouncedOnInput = useDebouncedCallback(() => {\n fetchGIFs({ offset: 0 });\n }, 1000);\n\n return (\n
    \n {!!onClose && (\n \n )}\n
    \n {\n e.preventDefault();\n fetchGIFs({ offset: 0 });\n }}\n >\n \n \n \n
    \n
    \n {uiState === 'default' && (\n
    \n

    Type to search GIFs

    \n
    \n )}\n {uiState === 'loading' && !results?.data?.length && (\n
    \n \n
    \n )}\n {results?.data?.length > 0 ? (\n <>\n
      \n {results.data.map((gif) => {\n const { id, images, title, alt_text } = gif;\n const {\n fixed_height_small,\n fixed_height_downsampled,\n fixed_height,\n original,\n } = images;\n const theImage = fixed_height_small?.url\n ? fixed_height_small\n : fixed_height_downsampled?.url\n ? fixed_height_downsampled\n : fixed_height;\n let { url, webp, width, height } = theImage;\n if (+height > 100) {\n width = (width / height) * 100;\n height = 100;\n }\n const urlObj = new URL(url);\n const strippedURL = urlObj.origin + urlObj.pathname;\n let strippedWebP;\n if (webp) {\n const webpObj = new URL(webp);\n strippedWebP = webpObj.origin + webpObj.pathname;\n }\n return (\n
    • \n {\n const { mp4, url } = original;\n const theURL = mp4 || url;\n const urlObj = new URL(theURL);\n const strippedURL = urlObj.origin + urlObj.pathname;\n onClose();\n onSelect({\n url: strippedURL,\n type: mp4 ? 'video/mp4' : 'image/gif',\n alt_text: alt_text || title,\n });\n }}\n >\n \n \n {strippedWebP && (\n \n )}\n {\n e.target.style.backgroundColor = 'transparent';\n }}\n />\n \n
      {alt_text || title}
      \n \n \n
    • \n );\n })}\n
    \n

    \n {results.pagination?.offset > 0 && (\n {\n fetchGIFs({\n offset: results.pagination?.offset - GIFS_PER_PAGE,\n });\n }}\n >\n \n Previous\n \n )}\n \n {results.pagination?.offset + results.pagination?.count <\n results.pagination?.total_count && (\n {\n fetchGIFs({\n offset: results.pagination?.offset + GIFS_PER_PAGE,\n });\n }}\n >\n Next \n \n )}\n

    \n \n ) : (\n uiState === 'results' && (\n
    \n

    No results

    \n
    \n )\n )}\n {uiState === 'error' && (\n
    \n

    Error loading GIFs

    \n
    \n )}\n
    \n
    \n );\n}\n\nexport default Compose;\n"],"names":["Combobox","input","list","tabInsertsSuggestions","defaultFirstOption","event","keyboardBindings","trackComposition","commitWithElement","_a","visible","indexDiff","focusEl","els","focusIndex","indexOfItem","newIndex","target","el","scrollTo","combobox","commit","fireCommitEvent","container","inViewport","element","scrollTop","containerBottom","top","bottom","boundary","query","text","key","cursor","multiWord","lookBackIndex","lastMatchPosition","keyIndex","pre","CustomHTMLElement","InputStyleCloneUpdateEvent","CloneRegistry","_InputStyleCloneElement","__privateAdd","_usingInput","_updateLayout","_requestUpdateLayout","_updateStyles","_updateText","_styleObserver","__privateMethod","updateStyles_fn","_resizeObserver","requestUpdateLayout_fn","_inputRef","_container","_xOffset","_yOffset","_isLayoutUpdating","_onInput","updateText_fn","_onDocumentScrollOrResize","usingInput_fn","__privateSet","__privateGet","clone","fn","updateLayout_fn","inputStyle","inputRect","cloneRect","prop","propertiesToCopy","InputStyleCloneElement","e","_InputRange","startOffset","endOffset","_styleClone","_cloneElement","_clampOffset","_createCloneRange","_inputElement","_startOffset","_endOffset","selectionStart","selectionEnd","offset","clampOffset_fn","toStart","createCloneRange_fn","styleClone_get","cloneElement_get","range","textNode","InputRange","states","TextExpander","expander","match","menu","_b","position","caretRect","targetPosition","currentPosition","delta","currentStyle","item","beginning","remaining","detail","suffix","value","found","providers","provide","result","x","TextExpanderElement","keysAttr","keys","multiWordAttr","globalMultiWord","state","ansiRegex","onlyFirst","pattern","regex","stripAnsi","string","segmenter","stringLength","countAnsiEscapeCodes","length","_","poweredByGiphyURL","PHANPY_IMG_ALT_API_URL","IMG_ALT_API_URL","PHANPY_GIPHY_API_KEY","GIPHY_API_KEY","import","supportedLanguagesMap","supportedLanguages","reduce","acc","l","code","common","native","expiryOptions","expirySeconds","Object","values","oneDay","expiresInFromExpiresAt","expiresAt","Date","getTime","now","find","s","document","createElement","role","className","windowMargin","observer","IntersectionObserver","entries","forEach","entry","isIntersecting","left","width","boundingClientRect","innerWidth","window","style","observe","DEFAULT_LANG","localeMatch","Intl","DateTimeFormat","resolvedOptions","locale","navigator","languages","map","urlRegexObj","RegExp","urlRegex","source","flags","usernameRegex","urlPlaceholder","countableText","inputText","replace","USERNAME_RE","MENTION_RE","HASHTAG_RE","SHORTCODE_RE_FRAGMENT","SCAN_RE","Segmenter","highlightText","maxCharacters","Infinity","html","composerCharacterCount","withinLimitHTML","exceedLimitHTML","htmlSegments","segment","index","rtf","RelativeTimeFormat","CUSTOM_EMOJIS_COUNT","Compose","onClose","replyToStatus","editStatus","draftStatus","standalone","hasOpener","console","masto","instance","uiState","setUIState","useState","UID","uid","log","currentAccount","currentAccountInfo","maxMediaAttachments","charactersReservedPerUrl","imageMatrixLimit","supportedMimeTypes","imageSizeLimit","videoSizeLimit","videoMatrixLimit","videoFrameRateLimit","maxExpiration","maxOptions","maxCharactersPerOption","minExpiration","spoilerTextRef","useRef","textareaRef","store","prevLanguage","language","sensitive","setMediaAttachments","setLanguage","oninputTextarea","poll","focusTextarea","dispatchEvent","setTimeout","current","spoilerText","useEffect","visibility2","language2","sensitive2","visibility","m","allMentions","prefs","setSensitive","poll2","mediaAttachments","options","expiresIn","statusSource","setPoll","composablePoll","mediaAttachments2","setVisibility","status","beforeUnloadCopy","hasValue","hasMediaAttachments","isSelf","hasOnlyAcct","dataset","confirmClose","hasIDMediaAttachments","id","handleBeforeUnload","sameWithSource","getCharCount","updateCharCount","supportsCloseWatcher","useHotkeys","yes","addEventListener","capture","modals","hasModal","hasOnlyComposer","prevBackgroundDraft","count","escDownRef","draftKey","ignoreEventWhen","useCloseWatcher","canClose","db","backgroundDraft","saveUnsavedDraft","useInterval","handleItems","account","username","acct","items","i2","file","files","drafts","allowedFiles","updatedAt","then","debug","error","mediaFiles","handleDragover","includes","showMentionPicker","setShowMentionPicker","showEmoji2Picker","setShowEmoji2Picker","showGIFPicker","autoDetectedLanguages","setAutoDetectedLanguages","topSupportedLanguages","restSupportedLanguages","useMemo","topLanguages","contentTranslationHideLanguages","max","restLanguages","commonB","size","URL","commonA","codeA","codeB","replyToStatusMonthsAgo","dataTransfer","_jsxs","removeEventListener","_jsx","children","icon","passData","onMinimize","alert","Icon","settings","push","openCompose","sort","class","avatarStatic","instanceURL","type","onClick","Status","confirmText","_Fragment","opener","formRef","composerState","formData","previewMode","option","media","pointerEvents","opacity","mediaPromises","attachment","onKeyDown","params2","removeNullUndefined","res","results","some","params","description","saveStatus","newStatus","allSettled","e2","media_attributes","in_reply_to_id","Textarea","onChange","limit","action","title","name","MediaAttachment","attachments","newAttachments","required","fileID","performSearch","q","v1","search","resolve","v2","fetch","onTrigger","defaultSearchTerm","newPoll","onDescriptionChange","i","checked","onInput","accept","multiple","disabled","setShowGIFPicker","Array","url","Loader","CharCountMeter","MentionModal","socialAddress","textarea","abrupt","textBeforeMention","textAfterMention","newText","spaceBeforeMention","spaceAfterMention","set","emojiShortcode","Modal","spaceBeforeEmoji","textBeforeEmoji","textAfterEmoji","spaceAfterEmoji","onSelect","GIFPickerModal","alt_text","slice","theToast","showToast","currentTarget","blob","offsetHeight","scrollHeight","clientHeight","height","searcher","Fuse","visibleEmojis","getCustomEmojis","pmem","_getCustomEmojis","keyArg","cacheKeyArg","langs","referrerPolicy","lang","newMediaAttachments","api","setText","ref","textareaProps","props","searcherRef","r","emojis","textExpanderRef","textExpanderTextRef","text2","emoji","shortcode","detectLangs","encodeHTML","forwardRef","handleChange","total","history","cur","matched","handleValue","more","searchResults","v","displayName","handleCommited","shortenNumber","throttleHighlightText","composeHighlightRef","slowHighlightPerf","end","start","debouncedAutoDetectLanguage","useDebouncedCallback","dom","mark","resizeObserver","lastLine","bullet","postSpaces","anything","pos","querySelectorAll","innerText","autoResizeTextarea","dir","rows","cols","hidden","charCount","leftChars","ctrlKey","setRangeText","setSelectionRange","prettyBytes","bytes","unitIndex","units","scaleDimension","newWidth","scalingFactor","newHeight","onRemove","supportsEdit","supports","onScroll","checkMaxError","configuration","getCurrentInstanceConfiguration","snapStates","imageMatrix","setImageMatrix","setMaxError","Math","matrixLimit","videoMatrix","setDescription","debouncedOnDescriptionChange","showModal","maxError","details","suffixType","matrix","toastRef","maxErrorToast","maxErrorText","err","type2","imageSizeLimit2","imageSize","subtype","imageMatrixLimit2","timer","videoSize","clearTimeout","videoSizeLimit2","descTextarea","videoMatrix2","videoMatrixLimit2","autoCapitalize","autoComplete","naturalWidth","naturalHeight","videoHeight","videoWidth","setVideoMatrix","setShowModal","onLoad","disablePictureInPicture","preload","onLoadedMetadata","Menu2","body","response","MenuItem","menuButton","localeCode2Text","append","Poll","label","maxlength","placeholder","str","char","obj","accounts2","fetchRelationships","relationshipsMap","setRelationshipsMap","setAccounts","loadAccounts","inputRef","filterShortcodes","searchTerm","b","aLower","a","bStartsWith","aContains","bContains","selectAccount","selectedAccount","accounts","selectedIndex","listRef","setSelectedIndex","selectedItem","relationships","term","loadRelationships","debouncedLoadAccounts","enableOnFormTags","AccountBlock","relationship","inline","customEmojis","setCustomEmojis","onSubmit","recentlyUsedCustomEmojis","autocorrect","customEmojisList","othersCat","emojisCat","useCallback","_c","scrollableRef","setMatches","onFind","onSelectEmoji","recentlyUsedCustomEmojis2","recentlyUsedEmojiIndex","emoji2","customEmojisCatList","category","matches","CustomEmojiButton","queueMicrotask","splice","CustomEmojisList","setMax","showMore","memo","showCode","parent","rect","selfRect","targetClassList","addEdges","GIFS_PER_PAGE","setResults","qRef","currentOffset","closest","fetchGIFs","remove","srcSet","staticUrl","src","decoding","debouncedOnInput","gif","fixed_height_downsampled","original","pagination","fixed_height_small","fixed_height","theImage","urlObj","strippedWebP","webp","webpObj","url2","theURL","mp4","urlObj2","strippedURL2","strippedURL","images"],"mappings":"+0BAAe,MAAMA,EAAS,CAC1B,YAAYC,EAAOC,EAAM,CAAE,sBAAAC,EAAuB,mBAAAC,CAAoB,EAAG,GAAI,CACzE,KAAK,MAAQH,EACb,KAAK,KAAOC,EACZ,KAAK,sBAAwBC,GAA6F,GAC1H,KAAK,mBAAqBC,GAAoF,GAC9G,KAAK,YAAc,GACdF,EAAK,KACNA,EAAK,GAAK,YAAY,KAAK,OAAM,EAAG,SAAQ,EAAG,MAAM,EAAG,CAAC,CAAC,IAE9D,KAAK,aAAe,CAAC,CAAC,UAAU,UAAU,MAAM,WAAW,EAC3D,KAAK,qBAAuBG,GAASC,GAAiBD,EAAO,IAAI,EACjE,KAAK,wBAA0BA,GAASE,GAAiBF,EAAO,IAAI,EACpE,KAAK,aAAe,KAAK,eAAe,KAAK,IAAI,EACjDJ,EAAM,aAAa,OAAQ,UAAU,EACrCA,EAAM,aAAa,gBAAiBC,EAAK,EAAE,EAC3CD,EAAM,aAAa,gBAAiB,OAAO,EAC3CA,EAAM,aAAa,oBAAqB,MAAM,EAC9CA,EAAM,aAAa,gBAAiB,SAAS,CAChD,CACD,SAAU,CACN,KAAK,eAAc,EACnB,KAAK,KAAI,EACT,KAAK,MAAM,gBAAgB,MAAM,EACjC,KAAK,MAAM,gBAAgB,eAAe,EAC1C,KAAK,MAAM,gBAAgB,eAAe,EAC1C,KAAK,MAAM,gBAAgB,mBAAmB,EAC9C,KAAK,MAAM,gBAAgB,eAAe,CAC7C,CACD,OAAQ,CACJ,KAAK,MAAM,aAAa,gBAAiB,MAAM,EAC/C,KAAK,MAAM,iBAAiB,mBAAoB,KAAK,uBAAuB,EAC5E,KAAK,MAAM,iBAAiB,iBAAkB,KAAK,uBAAuB,EAC1E,KAAK,MAAM,iBAAiB,QAAS,KAAK,YAAY,EACtD,KAAK,MAAM,iBAAiB,UAAW,KAAK,oBAAoB,EAChE,KAAK,KAAK,iBAAiB,QAASO,EAAiB,EACrD,KAAK,sBAAqB,CAC7B,CACD,MAAO,CACH,KAAK,eAAc,EACnB,KAAK,MAAM,aAAa,gBAAiB,OAAO,EAChD,KAAK,MAAM,oBAAoB,mBAAoB,KAAK,uBAAuB,EAC/E,KAAK,MAAM,oBAAoB,iBAAkB,KAAK,uBAAuB,EAC7E,KAAK,MAAM,oBAAoB,QAAS,KAAK,YAAY,EACzD,KAAK,MAAM,oBAAoB,UAAW,KAAK,oBAAoB,EACnE,KAAK,KAAK,oBAAoB,QAASA,EAAiB,CAC3D,CACD,uBAAwB,CACpB,IAAIC,EACA,KAAK,sBACJA,EAAK,MAAM,KAAK,KAAK,KAAK,iBAAiB,6CAA6C,CAAC,EACrF,OAAOC,EAAO,EAAE,CAAC,KAAO,MAAQD,IAAO,QAAkBA,EAAG,aAAa,+BAAgC,MAAM,EAE3H,CACD,SAASE,EAAY,EAAG,CACpB,MAAMC,EAAU,MAAM,KAAK,KAAK,KAAK,iBAAiB,wBAAwB,CAAC,EAAE,OAAOF,EAAO,EAAE,CAAC,EAC5FG,EAAM,MAAM,KAAK,KAAK,KAAK,iBAAiB,iBAAiB,CAAC,EAAE,OAAOH,EAAO,EAC9EI,EAAaD,EAAI,QAAQD,CAAO,EACtC,GAAKE,IAAeD,EAAI,OAAS,GAAKF,IAAc,GAAOG,IAAe,GAAKH,IAAc,GAAK,CAC9F,KAAK,eAAc,EACnB,KAAK,MAAM,QACX,MACH,CACD,IAAII,EAAcJ,IAAc,EAAI,EAAIE,EAAI,OAAS,EACrD,GAAID,GAAWE,GAAc,EAAG,CAC5B,MAAME,EAAWF,EAAaH,EAC1BK,GAAY,GAAKA,EAAWH,EAAI,SAChCE,EAAcC,EACrB,CACD,MAAMC,EAASJ,EAAIE,CAAW,EAC9B,GAAKE,EAEL,UAAWC,KAAML,EACbK,EAAG,gBAAgB,8BAA8B,EAC7CD,IAAWC,GACX,KAAK,MAAM,aAAa,wBAAyBD,EAAO,EAAE,EAC1DA,EAAO,aAAa,gBAAiB,MAAM,EAC3CE,GAAS,KAAK,KAAMF,CAAM,GAG1BC,EAAG,gBAAgB,eAAe,CAG7C,CACD,gBAAiB,CACb,KAAK,MAAM,gBAAgB,uBAAuB,EAClD,UAAWA,KAAM,KAAK,KAAK,iBAAiB,wBAAwB,EAChEA,EAAG,gBAAgB,eAAe,EAEtC,KAAK,sBAAqB,CAC7B,CACL,CACA,SAASZ,GAAiBD,EAAOe,EAAU,CACvC,GAAI,EAAAf,EAAM,UAAYA,EAAM,SAAWA,EAAM,SAEzC,GAACe,EAAS,cAAgBf,EAAM,UAEhC,CAAAe,EAAS,YAEb,OAAQf,EAAM,IAAG,CACb,IAAK,QACGgB,GAAOD,EAAS,MAAOA,EAAS,IAAI,GACpCf,EAAM,eAAc,EAExB,MACJ,IAAK,MACGe,EAAS,uBAAyBC,GAAOD,EAAS,MAAOA,EAAS,IAAI,GACtEf,EAAM,eAAc,EAExB,MACJ,IAAK,SACDe,EAAS,eAAc,EACvB,MACJ,IAAK,YACDA,EAAS,SAAS,CAAC,EACnBf,EAAM,eAAc,EACpB,MACJ,IAAK,UACDe,EAAS,SAAS,EAAE,EACpBf,EAAM,eAAc,EACpB,MACJ,IAAK,IACGe,EAAS,cAAgBf,EAAM,UAC/Be,EAAS,SAAS,CAAC,EACnBf,EAAM,eAAc,GAExB,MACJ,IAAK,IACGe,EAAS,cAAgBf,EAAM,UAC/Be,EAAS,SAAS,EAAE,EACpBf,EAAM,eAAc,GAExB,MACJ,QACI,GAAIA,EAAM,QACN,MACJe,EAAS,eAAc,CAC9B,CACL,CACA,SAASZ,GAAkBH,EAAO,CAC9B,GAAI,EAAEA,EAAM,kBAAkB,SAC1B,OACJ,MAAMY,EAASZ,EAAM,OAAO,QAAQ,iBAAiB,EAChDY,GAEDA,EAAO,aAAa,eAAe,IAAM,QAE7CK,GAAgBL,CAAM,CAC1B,CACA,SAASI,GAAOpB,EAAOC,EAAM,CACzB,MAAMe,EAASf,EAAK,cAAc,+DAA+D,EACjG,OAAKe,GAEDA,EAAO,aAAa,eAAe,IAAM,QAE7CA,EAAO,MAAK,EACL,IAJI,EAKf,CACA,SAASK,GAAgBL,EAAQ,CAC7BA,EAAO,cAAc,IAAI,YAAY,kBAAmB,CAAE,QAAS,EAAM,CAAA,CAAC,CAC9E,CACA,SAASP,GAAQQ,EAAI,CACjB,MAAQ,CAACA,EAAG,QACR,EAAEA,aAAc,kBAAoBA,EAAG,OAAS,YAC/CA,EAAG,YAAc,GAAKA,EAAG,aAAe,EACjD,CACA,SAASX,GAAiBF,EAAOe,EAAU,CACvCA,EAAS,YAAcf,EAAM,OAAS,mBACzB,SAAS,eAAee,EAAS,MAAM,aAAa,eAAe,GAAK,EAAE,GAGvFA,EAAS,eAAc,CAC3B,CACA,SAASD,GAASI,EAAWN,EAAQ,CAC5BO,GAAWD,EAAWN,CAAM,IAC7BM,EAAU,UAAYN,EAAO,UAErC,CACA,SAASO,GAAWD,EAAWE,EAAS,CACpC,MAAMC,EAAYH,EAAU,UACtBI,EAAkBD,EAAYH,EAAU,aACxCK,EAAMH,EAAQ,UACdI,EAASD,EAAMH,EAAQ,aAC7B,OAAOG,GAAOF,GAAaG,GAAUF,CACzC,CCtLA,MAAMG,GAAW,WACjB,SAASC,GAAMC,EAAMC,EAAKC,EAAQ,CAAE,UAAAC,EAAW,cAAAC,EAAe,kBAAAC,GAAsB,CAChF,UAAW,GACX,cAAe,EACf,kBAAmB,IACvB,EAAG,CACC,IAAIC,EAAWN,EAAK,YAAYC,EAAKC,EAAS,CAAC,EAG/C,GAFII,IAAa,IAEbA,EAAWF,EACX,OACJ,GAAID,EAAW,CACX,GAAIE,GAAqB,KAAM,CAC3B,GAAIA,IAAsBC,EACtB,OACJA,EAAWD,EAAoBJ,EAAI,MACtC,CAQD,GAPqBD,EAAKM,EAAW,CAAC,IACjB,KAAOJ,GAAUI,EAAWL,EAAI,OAAS,GAEzCD,EAAK,YAAY;AAAA,EAAME,EAAS,CAAC,EACnCI,GAEFN,EAAK,YAAY,IAAKE,EAAS,CAAC,EAClCI,EACX,MACP,SAEsBN,EAAK,YAAY,IAAKE,EAAS,CAAC,EAClCI,EACb,OAER,MAAMC,EAAMP,EAAKM,EAAW,CAAC,EAC7B,OAAIC,GAAO,CAACT,GAAS,KAAKS,CAAG,EACzB,OAEG,CACH,KAFgBP,EAAK,UAAUM,EAAWL,EAAI,OAAQC,CAAM,EAG5D,SAAUI,EAAWL,EAAI,MACjC,CACA,CAQA,MAAMO,WAA0B,WAAY,CAC5C,CAEA,MAAMC,WAAmC,KAAM,CAC3C,aAAc,CACV,MAAM,QAAQ,CACjB,CACL,CACA,MAAMC,GAAgB,IAAI,qEAmB1B,MAAMC,GAAN,MAAMA,WAA+BH,EAAkB,CA2BnD,YAAYvC,EAAO,CACf,QAqEJ2C,EAAA,KAAAC,IAcAD,EAAA,KAAAE,IAwBAF,EAAA,KAAAG,IAUAH,EAAA,KAAAI,IAYAJ,EAAA,KAAAK,IA5JAL,EAAA,KAAAM,GAAiB,IAAI,iBAAiB,IAAMC,EAAA,KAAKH,GAAAI,IAAL,UAAoB,GAChER,EAAA,KAAAS,GAAkB,IAAI,eAAe,IAAMF,EAAA,KAAKJ,GAAAO,IAAL,UAA2B,GAKtEV,EAAA,KAAAW,GAAA,QACAX,EAAA,KAAAY,GAAA,QAgGAZ,EAAA,KAAAa,GAAW,GAEXb,EAAA,KAAAc,GAAW,GA2BXd,EAAA,KAAAe,GAAoB,IAkCpBf,EAAA,KAAAgB,GAAW,IAAMT,EAAA,KAAKF,GAAAY,IAAL,YACjBjB,EAAA,KAAAkB,GAA6BzD,GAAU,CACnC8C,EAAA,KAAKN,GAAAkB,IAAL,UAAkB9D,GAAU,EACpBI,EAAM,SAAW,UACjBA,EAAM,SAAW,QAChBA,EAAM,kBAAkB,MAAQA,EAAM,OAAO,SAASJ,CAAK,IAC5DkD,EAAA,KAAKJ,GAAAO,IAAL,UAChB,EACA,GAlJQU,GAAA,KAAKT,GAAY,IAAI,QAAQtD,CAAK,GAGlC+D,GAAA,KAAKR,GAAa,SAAS,cAAc,KAAK,GAC9CS,EAAA,KAAKT,IAAW,MAAM,SAAW,WACjCS,EAAA,KAAKT,IAAW,MAAM,cAAgB,OACtCvD,EAAM,MAAMgE,EAAA,KAAKT,GAAU,EAC3BS,EAAA,KAAKT,IAAW,YAAY,IAAI,CACnC,CAnBD,OAAO,IAAIvD,EAAO,CACd,MAAMiE,EAAQxB,GAAc,IAAIzC,CAAK,GAAK,IAAI0C,GAAuB1C,CAAK,EAC1E,OAAAyC,GAAc,IAAIzC,EAAOiE,CAAK,EACvBA,CACV,CAoBD,aAAc,CACVf,EAAA,KAAKH,GAAAI,IAAL,WACAD,EAAA,KAAKF,GAAAY,IAAL,UACH,CAED,mBAAoB,CAChB,MAAM5D,EAAQgE,EAAA,KAAKV,IAAU,MAAK,EAClC,GAAI,CAACtD,EACD,OAAO,KAAK,SAChB,KAAK,MAAM,cAAgB,OAC3B,KAAK,MAAM,WAAa,OACxB,KAAK,MAAM,SAAW,SACtB,KAAK,MAAM,QAAU,QAErB,KAAK,MAAM,WAAa,SACpBA,aAAiB,qBACjB,KAAK,MAAM,WAAa,WACxB,KAAK,MAAM,SAAW,eAGtB,KAAK,MAAM,WAAa,SAExB,KAAK,MAAM,QAAU,aACrB,KAAK,MAAM,cAAgB,UAE/B,KAAK,aAAa,cAAe,MAAM,EACvCkD,EAAA,KAAKH,GAAAI,IAAL,WACAD,EAAA,KAAKF,GAAAY,IAAL,WACAI,EAAA,KAAKf,IAAe,QAAQjD,EAAO,CAC/B,gBAAiB,CACb,QACA,KACH,CACb,CAAS,EACDgE,EAAA,KAAKZ,IAAgB,QAAQpD,CAAK,EAClC,SAAS,iBAAiB,SAAUgE,EAAA,KAAKH,IAA2B,CAAE,QAAS,EAAI,CAAE,EACrF,OAAO,iBAAiB,SAAUG,EAAA,KAAKH,IAA2B,CAAE,QAAS,EAAI,CAAE,EAEnF7D,EAAM,iBAAiB,QAASgE,EAAA,KAAKL,IAAU,CAAE,QAAS,EAAI,CAAE,CACnE,CAED,sBAAuB,CACnBK,EAAA,KAAKT,IAAW,SAChBS,EAAA,KAAKf,IAAe,aACpBe,EAAA,KAAKZ,IAAgB,aACrB,SAAS,oBAAoB,SAAUY,EAAA,KAAKH,IAA2B,CAAE,QAAS,EAAI,CAAE,EACxF,OAAO,oBAAoB,SAAUG,EAAA,KAAKH,IAA2B,CAAE,QAAS,EAAI,CAAE,EACtF,MAAM7D,EAAQgE,EAAA,KAAKV,IAAU,MAAK,EAC9BtD,IACAA,EAAM,oBAAoB,QAASgE,EAAA,KAAKL,IAAU,CAAE,QAAS,EAAI,CAAE,EACnElB,GAAc,OAAOzC,CAAK,EAEjC,CAkFL,EA/KIiD,GAAA,YACAG,GAAA,YAKAE,GAAA,YACAC,GAAA,YAyFAX,GAAA,YAAAkB,GAAW,SAACI,EAAI,CACZ,MAAMlE,EAAQgE,EAAA,KAAKV,IAAU,MAAK,EAClC,OAAKtD,EAEEkE,EAAGlE,CAAK,EADJ,KAAK,QAEnB,EAEDwD,GAAA,YAEAC,GAAA,YAKAZ,GAAA,YAAAsB,GAAa,UAAG,CAEZjB,EAAA,KAAKN,GAAAkB,IAAL,UAAkB9D,GAAU,CACxB,MAAMoE,EAAa,OAAO,iBAAiBpE,CAAK,EAChD,KAAK,MAAM,OAASoE,EAAW,OAC/B,KAAK,MAAM,MAAQA,EAAW,MAE1BpE,EAAM,eAAiB,KAAK,eAC5B,KAAK,MAAM,OAAS,QAAQoE,EAAW,MAAM,MAAMpE,EAAM,aAAe,KAAK,YAAY,OACzFA,EAAM,cAAgB,KAAK,cAC3B,KAAK,MAAM,MAAQ,QAAQoE,EAAW,KAAK,MAAMpE,EAAM,YAAc,KAAK,WAAW,OAEzF,MAAMqE,EAAYrE,EAAM,wBAClBsE,EAAY,KAAK,wBACvBP,GAAA,KAAKP,GAAWQ,EAAA,KAAKR,IAAWa,EAAU,KAAOC,EAAU,MAC3DP,GAAA,KAAKN,GAAWO,EAAA,KAAKP,IAAWY,EAAU,IAAMC,EAAU,KAC1D,KAAK,MAAM,UAAY,aAAaN,EAAA,KAAKR,GAAQ,OAAOQ,EAAA,KAAKP,GAAQ,MACrE,KAAK,UAAYzD,EAAM,UACvB,KAAK,WAAaA,EAAM,WACxB,KAAK,cAAc,IAAIwC,EAA4B,CAC/D,EACK,EACDkB,GAAA,YAEAZ,GAAA,YAAAO,GAAoB,UAAG,CACfW,EAAA,KAAKN,MAETK,GAAA,KAAKL,GAAoB,IACzB,sBAAsB,IAAM,CACxBR,EAAA,KAAKL,GAAAsB,IAAL,WACAJ,GAAA,KAAKL,GAAoB,GACrC,CAAS,EACJ,EAEDX,GAAA,YAAAI,GAAa,UAAG,CACZD,EAAA,KAAKN,GAAAkB,IAAL,UAAkB9D,GAAU,CACxB,MAAMoE,EAAa,OAAO,iBAAiBpE,CAAK,EAChD,UAAWuE,KAAQC,GACf,KAAK,MAAMD,CAAI,EAAIH,EAAWG,CAAI,EACtCrB,EAAA,KAAKJ,GAAAO,IAAL,UACZ,EACK,EAKDL,GAAA,YAAAY,GAAW,UAAG,CACVV,EAAA,KAAKN,GAAAkB,IAAL,UAAkB9D,GAAU,CACxB,KAAK,YAAcA,EAAM,MAKzBkD,EAAA,KAAKL,GAAAsB,IAAL,UACZ,EACK,EACDR,GAAA,YACAE,GAAA,YAxKJ,IAAMY,GAAN/B,GAoLA,MAAM8B,GAAmB,CAErB,YACA,cACA,cACA,kBACA,YACA,iBACA,mBACA,oBACA,kBACA,cACA,aACA,eACA,gBACA,cAEA,YACA,cACA,aACA,cACA,WACA,iBACA,aACA,aACA,YACA,gBACA,aACA,iBACA,gBACA,cACA,UACA,YACJ,EAEA,GAAI,CACA,eAAe,OAAO,oBAAqBC,EAAsB,CACrE,OACOC,EAAG,CAEN,GAAI,EAAEA,aAAa,cAAgBA,EAAE,OAAS,qBAC1C,MAAMA,CACd,sCAEA,MAAMC,GAAN,MAAMA,EAAW,CAUb,YAAYnD,EAASoD,EAAc,EAAGC,EAAYD,EAAa,CA6F/DjC,EAAA,KAAImC,IAGJnC,EAAA,KAAIoC,IAGJpC,EAAA,KAAAqC,IAGArC,EAAA,KAAAsC,IA/GAtC,EAAA,KAAAuC,GAAA,QACAvC,EAAA,KAAAwC,GAAA,QACAxC,EAAA,KAAAyC,GAAA,QAQIrB,GAAA,KAAKmB,GAAgB1D,GACrBuC,GAAA,KAAKoB,GAAeP,GACpBb,GAAA,KAAKqB,GAAaP,EACrB,CASD,OAAO,cAAc7E,EAAO,CACxB,KAAM,CAAE,eAAAqF,EAAgB,aAAAC,CAAc,EAAGtF,EACzC,OAAO,IAAI2E,GAAW3E,EAAOqF,GAAkB,OAAWC,GAAgB,MAAS,CACtF,CAED,IAAI,WAAY,CACZ,OAAO,KAAK,cAAgB,KAAK,SACpC,CAED,IAAI,yBAA0B,CAC1B,OAAOtB,EAAA,KAAKkB,GACf,CAED,IAAI,cAAe,CACf,OAAOlB,EAAA,KAAKkB,GACf,CAED,IAAI,gBAAiB,CACjB,OAAOlB,EAAA,KAAKkB,GACf,CACD,IAAI,aAAc,CACd,OAAOlB,EAAA,KAAKmB,GACf,CACD,IAAI,WAAY,CACZ,OAAOnB,EAAA,KAAKoB,GACf,CAED,eAAeG,EAAQ,CACnBxB,GAAA,KAAKoB,GAAejC,EAAA,KAAK8B,GAAAQ,IAAL,UAAkBD,GACzC,CAED,aAAaA,EAAQ,CACjBxB,GAAA,KAAKqB,GAAalC,EAAA,KAAK8B,GAAAQ,IAAL,UAAkBD,GACvC,CAKD,SAASE,EAAU,GAAO,CAClBA,EACA,KAAK,aAAa,KAAK,WAAW,EAElC,KAAK,eAAe,KAAK,SAAS,CACzC,CAED,eAAgB,CACZ,OAAOvC,EAAA,KAAK+B,GAAAS,IAAL,WAAyB,eACnC,CAED,YAAa,CACT,OAAO,IAAIf,GAAWX,EAAA,KAAKkB,IAAe,KAAK,YAAa,KAAK,SAAS,CAC7E,CAMD,uBAAwB,CACpB,OAAOhC,EAAA,KAAK+B,GAAAS,IAAL,WAAyB,uBACnC,CAMD,gBAAiB,CACb,OAAOxC,EAAA,KAAK+B,GAAAS,IAAL,WAAyB,gBACnC,CAED,UAAW,CACP,OAAOxC,EAAA,KAAK+B,GAAAS,IAAL,WAAyB,UACnC,CAKD,eAAgB,CACZ,OAAO1B,EAAA,KAAKc,GAAAa,GACf,CAuBL,EA3HIT,GAAA,YACAC,GAAA,YACAC,GAAA,YAoGIN,GAAA,YAAAa,GAAW,UAAG,CACd,OAAOlB,GAAuB,IAAIT,EAAA,KAAKkB,GAAa,CACvD,EACGH,GAAA,YAAAa,GAAa,UAAG,CAChB,OAAO5B,EAAA,KAAKc,GAAAa,GACf,EACDX,GAAA,YAAAQ,GAAY,SAACD,EAAQ,CACjB,OAAO,KAAK,IAAI,EAAG,KAAK,IAAIA,EAAQvB,EAAA,KAAKkB,IAAc,MAAM,MAAM,CAAC,CACvE,EACDD,GAAA,YAAAS,GAAiB,UAAG,CAIhB,MAAMG,EAAQ,SAAS,cACjBC,EAAW9B,EAAA,KAAKe,GAAAa,IAAc,WAAW,CAAC,EAChD,OAAIE,IACAD,EAAM,SAASC,EAAU,KAAK,WAAW,EACzCD,EAAM,OAAOC,EAAU,KAAK,SAAS,GAElCD,CACV,EA3HL,IAAME,GAANpB,GA8HA,MAAMqB,GAAS,IAAI,QACnB,MAAMC,EAAa,CACf,YAAYC,EAAUlG,EAAO,CACzB,KAAK,SAAWkG,EAChB,KAAK,MAAQlG,EACb,KAAK,SAAW,KAChB,KAAK,KAAO,KACZ,KAAK,MAAQ,KACb,KAAK,WAAa,GAClB,KAAK,cAAgB,EACrB,KAAK,QAAU,KAAK,QAAQ,KAAK,IAAI,EACrC,KAAK,QAAU,KAAK,QAAQ,KAAK,IAAI,EACrC,KAAK,UAAY,KAAK,UAAU,KAAK,IAAI,EACzC,KAAK,SAAW,KAAK,SAAS,KAAK,IAAI,EACvC,KAAK,YAAc,KAAK,YAAY,KAAK,IAAI,EAC7C,KAAK,OAAS,KAAK,OAAO,KAAK,IAAI,EACnC,KAAK,oBAAsB,GAC3BA,EAAM,iBAAiB,QAAS,KAAK,OAAO,EAC5CA,EAAM,iBAAiB,QAAS,KAAK,OAAO,EAC5CA,EAAM,iBAAiB,UAAW,KAAK,SAAS,EAChDA,EAAM,iBAAiB,OAAQ,KAAK,MAAM,CAC7C,CACD,SAAU,CACN,KAAK,MAAM,oBAAoB,QAAS,KAAK,OAAO,EACpD,KAAK,MAAM,oBAAoB,QAAS,KAAK,OAAO,EACpD,KAAK,MAAM,oBAAoB,UAAW,KAAK,SAAS,EACxD,KAAK,MAAM,oBAAoB,OAAQ,KAAK,MAAM,CACrD,CACD,aAAc,CACN,KAAK,eACL,KAAK,cAAgB,KAAK,MAAM,cAAgB,KAAK,cAE5D,CACD,SAASmG,EAAOC,EAAM,CAClB,IAAI5F,EAAI6F,EACJ,KAAK,QAAU,SAAS,eAAiB,KAAK,UAAYA,GAAM7F,EAAK,SAAS,iBAAmB,MAAQA,IAAO,OAAS,OAASA,EAAG,cAAgB,MAAQ6F,IAAO,OAAS,OAASA,EAAG,iBAG7L,KAAK,WAAU,EACf,KAAK,KAAOD,EACPA,EAAK,KACNA,EAAK,GAAK,iBAAiB,KAAK,MAAM,KAAK,OAAQ,EAAG,GAAM,EAAE,SAAQ,CAAE,IAC5E,KAAK,SAAS,OAAOA,CAAI,EACzB,KAAK,SAAW,IAAIrG,GAAS,KAAK,MAAOqG,CAAI,EAC7C,KAAK,SAAS,cAAc,IAAI,MAAM,wBAAwB,CAAC,EAC/D,KAAK,aAAaA,EAAMD,EAAM,QAAQ,EACtC,KAAK,SAAS,QACdC,EAAK,iBAAiB,kBAAmB,KAAK,QAAQ,EACtDA,EAAK,iBAAiB,YAAa,KAAK,WAAW,EACnD,KAAK,SAAS,SAAS,CAAC,EAC3B,CACD,aAAaA,EAAME,EAAU,CACzB,MAAMC,EAAY,IAAIR,GAAW,KAAK,MAAOO,CAAQ,EAAE,wBACjDE,EAAiB,CAAE,KAAMD,EAAU,KAAM,IAAKA,EAAU,IAAMA,EAAU,QACxEE,EAAkBL,EAAK,wBACvBM,EAAQ,CACV,KAAMF,EAAe,KAAOC,EAAgB,KAC5C,IAAKD,EAAe,IAAMC,EAAgB,GACtD,EACQ,GAAIC,EAAM,OAAS,GAAKA,EAAM,MAAQ,EAAG,CACrC,MAAMC,EAAe,iBAAiBP,CAAI,EAC1CA,EAAK,MAAM,KAAOO,EAAa,KAAO,QAAQA,EAAa,IAAI,MAAMD,EAAM,IAAI,MAAQ,GAAGA,EAAM,IAAI,KACpGN,EAAK,MAAM,IAAMO,EAAa,IAAM,QAAQA,EAAa,GAAG,MAAMD,EAAM,GAAG,MAAQ,GAAGA,EAAM,GAAG,IAClG,CACJ,CACD,YAAa,CACT,MAAMN,EAAO,KAAK,KAClB,MAAI,CAACA,GAAQ,CAAC,KAAK,SACR,IACX,KAAK,SAAS,cAAc,IAAI,MAAM,0BAA0B,CAAC,EACjE,KAAK,KAAO,KACZA,EAAK,oBAAoB,kBAAmB,KAAK,QAAQ,EACzDA,EAAK,oBAAoB,YAAa,KAAK,WAAW,EACtD,KAAK,SAAS,UACd,KAAK,SAAW,KAChBA,EAAK,OAAM,EACJ,GACV,CACD,SAAS,CAAE,OAAApF,GAAU,CACjB,IAAIR,EACJ,MAAMoG,EAAO5F,EAGb,GAFI,EAAE4F,aAAgB,cAElB,CAAC,KAAK,SACN,OACJ,MAAMT,EAAQ,KAAK,MACnB,GAAI,CAACA,EACD,OACJ,MAAMU,EAAY,KAAK,MAAM,MAAM,UAAU,EAAGV,EAAM,SAAWA,EAAM,IAAI,MAAM,EAC3EW,EAAY,KAAK,MAAM,MAAM,UAAUX,EAAM,SAAWA,EAAM,KAAK,MAAM,EACzEY,EAAS,CAAE,KAAAH,EAAM,IAAKT,EAAM,IAAK,MAAO,KAAM,SAAU,IAI9D,GAHiB,CAAC,KAAK,SAAS,cAAc,IAAI,YAAY,sBAAuB,CAAE,WAAY,GAAM,OAAAY,CAAM,CAAE,CAAC,GAG9G,CAACA,EAAO,MACR,OACJ,IAAIC,GAAUxG,EAAK,KAAK,SAAS,aAAa,QAAQ,KAAO,MAAQA,IAAO,OAASA,EAAK,IACtFuG,EAAO,WACPC,EAAS,IAEb,MAAMC,EAAQ,GAAGF,EAAO,KAAK,GAAGC,CAAM,GACtC,KAAK,MAAM,MAAQH,EAAYI,EAAQH,EACvC,MAAM7E,EAAS4E,EAAU,OAASI,EAAM,OACxC,KAAK,WAAU,EACf,KAAK,MAAM,MAAM,CACb,cAAe,EAC3B,CAAS,EACD,KAAK,MAAM,eAAiBhF,EAC5B,KAAK,MAAM,aAAeA,EACrB8E,EAAO,WACR,KAAK,cAAgB9E,EACrB,KAAK,MAAQ,MAEjB,KAAK,SAAS,cAAc,IAAI,YAAY,0BAA2B,CAAE,WAAY,GAAO,OAAQ,CAAE,MAAO,KAAK,KAAO,CAAA,CAAE,CAAC,CAC/H,CACD,QAAS,CACL,GAAI,KAAK,oBAAqB,CAC1B,KAAK,oBAAsB,GAC3B,MACH,CACD,KAAK,WAAU,CAClB,CACD,SAAU,CACN,KAAK,WAAa,EACrB,CACD,MAAM,SAAU,CACZ,GAAI,KAAK,WAAY,CACjB,KAAK,WAAa,GAClB,MACH,CACD,MAAMkE,EAAQ,KAAK,YACnB,GAAIA,EAAO,CACP,KAAK,MAAQA,EACb,MAAMC,EAAO,MAAM,KAAK,gBAAgBD,CAAK,EAC7C,GAAI,CAAC,KAAK,MACN,OACAC,EACA,KAAK,SAASD,EAAOC,CAAI,EAGzB,KAAK,WAAU,CAEtB,MAEG,KAAK,MAAQ,KACb,KAAK,WAAU,CAEtB,CACD,WAAY,CACR,MAAMnE,EAAS,KAAK,MAAM,cAAgB,EACpCF,EAAO,KAAK,MAAM,MACpBE,GAAU,KAAK,gBACf,KAAK,cAAgBA,EAAS,GAElC,SAAW,CAAE,IAAAD,EAAK,UAAAE,CAAW,IAAI,KAAK,SAAS,KAAM,CACjD,MAAMgF,EAAQpF,GAAMC,EAAMC,EAAKC,EAAQ,CACnC,UAAAC,EACA,cAAe,KAAK,cACpB,kBAAmB,KAAK,MAAQ,KAAK,MAAM,SAAW,IACtE,CAAa,EACD,GAAIgF,EACA,MAAO,CAAE,KAAMA,EAAM,KAAM,IAAAlF,EAAK,SAAUkF,EAAM,SAEvD,CACJ,CACD,MAAM,gBAAgBf,EAAO,CACzB,MAAMgB,EAAY,CAAA,EACZC,EAAWC,GAAWF,EAAU,KAAKE,CAAM,EAEjD,OADkB,KAAK,SAAS,cAAc,IAAI,YAAY,uBAAwB,CAAE,WAAY,GAAM,OAAQ,CAAE,QAAAD,EAAS,KAAMjB,EAAM,KAAM,IAAKA,EAAM,IAAO,CAAA,CAAC,GAGtJ,MAAM,QAAQ,IAAIgB,CAAS,GACjB,OAAOG,GAAKA,EAAE,OAAO,EAAE,IAAIA,GAAKA,EAAE,QAAQ,EAC/C,CAAC,EAHd,MAIP,CACD,aAAc,CACV,KAAK,oBAAsB,EAC9B,CACD,UAAUlH,EAAO,CACTA,EAAM,MAAQ,WACd,KAAK,MAAQ,KACT,KAAK,eACL,KAAK,cAAgB,KAAK,MAAM,cAAgB,KAAK,cACrDA,EAAM,yBAAwB,EAC9BA,EAAM,eAAc,GAG/B,CACL,CACA,MAAMmH,WAA4B,WAAY,CAC1C,IAAI,MAAO,CACP,MAAMC,EAAW,KAAK,aAAa,MAAM,EACnCC,EAAOD,EAAWA,EAAS,MAAM,GAAG,EAAI,GACxCE,EAAgB,KAAK,aAAa,WAAW,EAC7CxF,EAAYwF,EAAgBA,EAAc,MAAM,GAAG,EAAI,GACvDC,EAAkBzF,EAAU,SAAW,GAAK,KAAK,aAAa,WAAW,EAC/E,OAAOuF,EAAK,IAAIzF,IAAQ,CAAE,IAAAA,EAAK,UAAW2F,GAAmBzF,EAAU,SAASF,CAAG,CAAC,EAAG,CAC1F,CACD,mBAAoB,CAChB,MAAMhC,EAAQ,KAAK,cAAc,8BAA8B,EAC/D,GAAI,EAAEA,aAAiB,kBAAoBA,aAAiB,qBACxD,OACJ,MAAM4H,EAAQ,IAAI3B,GAAa,KAAMjG,CAAK,EAC1CgG,GAAO,IAAI,KAAM4B,CAAK,CACzB,CACD,sBAAuB,CACnB,MAAMA,EAAQ5B,GAAO,IAAI,IAAI,EACxB4B,IAELA,EAAM,QAAO,EACb5B,GAAO,OAAO,IAAI,EACrB,CACD,SAAU,CACN,MAAM4B,EAAQ5B,GAAO,IAAI,IAAI,EACxB4B,GAELA,EAAM,YAAW,CACpB,CACL,CAEK,OAAO,eAAe,IAAI,eAAe,IAC1C,OAAO,oBAAsBL,GAC7B,OAAO,eAAe,OAAO,gBAAiBA,EAAmB,GCzoBtD,SAASM,GAAU,CAAC,UAAAC,EAAY,EAAK,EAAI,CAAA,EAAI,CAC3D,MAAMC,EAAU,CACZ,+HACH,0DACF,EAAG,KAAK,GAAG,EAEV,OAAO,IAAI,OAAOA,EAASD,EAAY,OAAY,GAAG,CACvD,CCLA,MAAME,GAAQH,GAAS,EAER,SAASI,GAAUC,EAAQ,CACzC,GAAI,OAAOA,GAAW,SACrB,MAAM,IAAI,UAAU,gCAAgC,OAAOA,CAAM,IAAI,EAMtE,OAAOA,EAAO,QAAQF,GAAO,EAAE,CAChC,CCXA,MAAMG,GAAY,IAAI,KAAK,UAEZ,SAASC,GAAaF,EAAQ,CAAC,qBAAAG,EAAuB,EAAK,EAAI,CAAA,EAAI,CASjF,GARIH,IAAW,KAIVG,IACJH,EAASD,GAAUC,CAAM,GAGtBA,IAAW,IACd,MAAO,GAGR,IAAII,EAAS,EAEb,UAAWC,KAAKJ,GAAU,QAAQD,CAAM,EACvCI,IAGD,OAAOA,CACR,CCxBA,MAAeE,GAAA,ixsBCyDf,KAAM,CACJC,uBAAwBC,GACxBC,qBAAsBC,EACxB,EAAIC,GAEEC,GAAwBC,GAAmBC,OAAO,CAACC,EAAKC,IAAM,CAClE,KAAM,CAACC,EAAMC,EAAQC,CAAM,EAAIH,EAC/BD,OAAAA,EAAIE,CAAI,EAAI,CACVC,OAAAA,EACAC,OAAAA,CAAAA,EAEKJ,CACT,EAAG,CAAE,CAAA,EAMCK,GAAgB,CACpB,YAAa,EAAI,GACjB,aAAc,GAAK,GACnB,SAAU,GAAK,GACf,UAAW,EAAI,GAAK,GACpB,WAAY,GAAK,GAAK,GACtB,QAAS,GAAK,GAAK,GACnB,SAAU,EAAI,GAAK,GAAK,GACxB,SAAU,EAAI,GAAK,GAAK,EAC1B,EACMC,GAAgBC,OAAOC,OAAOH,EAAa,EAC3CI,GAAS,GAAK,GAAK,GAEnBC,GAAwCC,GAAA,CAC5C,GAAI,CAACA,EAAkBF,OAAAA,GACjBhD,MAAAA,GAAS,IAAImD,KAAKD,CAAS,EAAEE,QAAQ,EAAID,KAAKE,IAAS,GAAA,IAC7D,OAAOR,GAAcS,KAAYC,GAAAA,GAAKvD,CAAK,GAAKgD,EAClD,EAEMtD,GAAO8D,SAASC,cAAc,IAAI,EACxC/D,GAAKgE,KAAO,UACZhE,GAAKiE,UAAY,qBAGjB,MAAMC,GAAe,GACfC,GAAW,IAAIC,qBAAkCC,GAAA,CAC7CC,EAAAA,QAAmBC,GAAA,CACzB,GAAIA,EAAMC,eAAgB,CAClB,KAAA,CAAEC,KAAAA,EAAMC,MAAAA,CAAAA,EAAUH,EAAMI,mBACxB,CAAEC,WAAAA,CAAeC,EAAAA,OACnBJ,EAAOC,EAAQE,IACjB5E,GAAK8E,MAAML,KAAOG,EAAaF,EAAQR,GAAe,KAE1D,CAAA,CACD,CACH,CAAC,EACDC,GAASY,QAAQ/E,EAAI,EAErB,MAAMgF,GAAeC,GACnB,CAAC,IAAIC,KAAKC,eAAe,EAAEC,gBAAgB,EAAEC,OAAQ,GAAGC,UAAUC,SAAS,EAC3E5C,GAAmB6C,OAAW1C,EAAE,CAAC,CAAC,EAClC,IACF,EAGM2C,GAAc,IAAIC,OAAOC,GAASC,OAAQD,GAASE,KAAK,EACxDC,GAAgB,sDAChBC,GAAiB,4BACvB,SAASC,GAAcC,EAAW,CAChC,OAAOA,EACJC,QAAQT,GAAaM,EAAc,EACnCG,QAAQJ,GAAe,OAAO,CACnC,CAGA,MAAMK,GAAc,uCACdC,GAAa,IAAIV,OACpB,mBAAkBS,GAAYP,MAAO,8BACtC,KACF,EAGMS,GAAa,IAAIX,OACpB,kEACD,IACF,EAGMY,GAAwB,mBACxBC,GAAU,IAAIb,OACjB,mBAAkBY,EAAsB,yBACzC,GACF,EAEMvE,GAAY,IAAImD,KAAKsB,UAC3B,SAASC,GAAc9K,EAAM,CAAE+K,cAAAA,EAAgBC,GAAS,EAAG,CAGrDC,IAAAA,EAAOjL,EACRuK,QAAQ,KAAM,OAAO,EACrBA,QAAQ,KAAM,MAAM,EACpBA,QAAQ,KAAM,MAAM,EACpBA,QAAQ,KAAM,QAAQ,EACtBA,QAAQ,KAAM,QAAQ,EAGnB,KAAA,CAAEW,uBAAAA,CAA2BjH,EAAAA,GACnC,GAAIiH,EAAyBH,EAAe,CAEtCI,IAAAA,EAAkB,GACpBC,EAAkB,GACdC,MAAAA,EAAejF,GAAUkF,QAAQL,CAAI,EAChC,SAAA,CAAEK,QAAAA,EAASC,MAAAA,KAAWF,EAC3BE,EAAQR,EACSO,GAAAA,EAEAA,GAAAA,EAGvB,OAAIF,IACFA,EACE,4CACAA,EACA,WAEGD,EAAkBC,CAC3B,CAEA,OAAOH,EACJV,QAAQT,GAAa,iDAAiD,EACtES,QAAQE,GAAY,qDAAqD,EACzEF,QAAQG,GAAY,qDAAqD,EACzEH,QACCK,GACA,6DACF,CACJ,CAEA,MAAMY,GAAM,IAAIjC,KAAKkC,mBAEfC,GAAsB,IAE5B,SAASC,GAAQ,CACfC,QAAAA,EACAC,cAAAA,EACAC,WAAAA,EACAC,YAAAA,EACAC,WAAAA,EACAC,UAAAA,CACF,EAAG,QACDC,KAAAA,CACM,MAAAC,EAAEA,SAAAA,CAAOC,EAAAA,GAAAA,EAAiB,CAAAC,EAAAC,CAAA,EAAAC,EAAA,SAAA,EAC1BC,EAACH,GAAmBN,GAAA,YAAAA,QAAaU,GAAS,CAAA,EAC1CD,EAA0BC,KACxBC,EAAmBF,EAAW,KAEhCG,OACAC,CAEN,UACQF,cAAAA,EAEF,oBAAAG,EACM,yBAAAC,EAAA,EACR/B,CAAAA,EACA8B,iBAAAA,CACAC,mBAAAA,EAAAA,CAAAA,mBAEgB,iBAAAC,EAChBC,eAAAA,EACAC,iBAAAA,EACAF,oBAAAA,CAAAA,EACAG,CAAAA,EACAC,MAAAA,CACAC,WAAAA,2BAEK,cAAAC,EACLC,cAAAA,EAAAA,EACAC,CAAAA,CAAAA,EACAF,GAAAA,CAAAA,EACAG,EAAAA,IACEC,EAACC,QACe,EAAAnB,EAAA,QAAA,EAEhBoB,KAAqB,EAAApB,EAAA,EAAA,EACrBkB,KAAwB,EAAAlB,EAAAqB,GAAA,QAAA,IAAA,iBAAA,GAAAvE,EAAA,EACxBwE,GAA0BH,EAAAI,CAAIvB,EAC9B,CAACwB,EAAuBC,CAAkB,EAAAzB,EAAA,CAAA,CAAA,EAC1C,CAACuB,EAAUG,CAAAA,EAAAA,EAAe1B,IAAAA,EAG1BsB,EAAAA,GAAAA,QAAsBC,IAAQ,aAAA,GAAA,GAC9BI,EAAmBF,IAAAA,CAClBG,EAAa,SAIpBR,wBAA8B,IAAA,MAAA,OAAA,CAAA,CAC5B,EAA0BS,GAAA,IAAA,CAC1BT,WAAAA,IAAoBU,WACtBV,EAAA,WAEEW,GAAAA,EAAAA,GAAAA,YAAAA,EAAiB,SAAjBA,YAAAA,EAAiB,aAAjBA,MAAAA,EAAAA,KAAAA,EAAiB;AAAA,KACfX,EAAiBY,QAAAA,eAAAA,EAASZ,EAAA,QAAA,aAAA,IAGxBA,EAAAA,EAAAA,UAAAA,MAAAA,UACAA,EAAAA,GAAAA,CAAmC,EAErCzB,GAAAA,KACAyB,GAAAA,QACI,CACR,YAAAa,EAEAC,WAAgBC,EACV7C,SAAe8C,EACX,UAAAC,CAAEJ,EAAAA,EAAaK,GAAAA,EAAAA,UAAYf,EAAAA,QAAAA,MAAAA,GAC7BU,MAAAA,MADqD3C,IAAAA,IAAAA,CAAAA,EAAAA,QAAAA,KAAAA,GAAAA,EAAAA,SAAAA,IAAAA,GAAAA,EAAAA,IAAAA,CAAAA,CAAAA,GACvB0C,OAASO,GAAAA,IAAAlC,EAAA,IAAA,EACzCa,EAAAA,OAAuBvI,IACzByI,EAAA,QAAA,MAAA,GAAAoB,EAAA,IAAAD,GAAA,IAAAA,CAAA,EAAA,EAAA,KAAA,GAAA,CAAA,IACAZ,KAOIa,KACFpB,EAAYY,IAAiB,UAAEQ,EACvBD,4BACK,EAAAE,EAAA,4BAAA,EAAAN,CAAA,EACGT,GAAAU,GAAAK,EAAA,wBAAA3F,EAAA,EAClB4F,GAAAL,GAAA,CAAA,CAAAJ,CAAA,CACc,SAAA1C,EAAA,CAEZ+C,KAAAA,CAIUf,WAAAA,EACCC,SAAAA,YACQa,EACf,KAAAM,EAAEL,iBAAAA,CAAAA,EAAYf,EAAUC,EAAAA,CAAAA,EAAAA,GAAAA,MAAAA,EAAAA,UAAAA,CAAWI,GAAAA,EAAMgB,QAAAA,EAAAA,QAAAA,IAAAA,IAAAA,GAAAA,YAAAA,EAAAA,QAAAA,CAAAA,EAC7CrD,WAAAA,GAAAA,YAAAA,EAAAA,YAAAA,GAAAA,EAAAA,SAAAA,CACF,EAA0CQ,EACrC6B,SAAAA,GACHiB,UACAC,GAAWlB,CACb,MAAAmB,EAAA,MAAAnD,EAAA,GAAA,SAAA,QAAAL,EAAA,EAAA,EAAA,OAAA,MAAA,EACAQ,CACa,KAAAtM,EACP,YAAAwO,CACIc,EAAAA,EAGNpD,EAAY,QAAA,MAAAlM,EAAEsP,EAAAA,QAAAA,QAAAA,OAAAA,EAAapB,IACrBE,KAAEpO,EAAAA,QAAAA,MAAAA,EAAMwO,EAAAA,CAAAA,EAAYP,GAAIqB,GAAAA,MAAAA,wBAAAA,EAAAA,EAC9B3B,IAA4B3N,EAChBuO,GACIgB,EAAAC,CAAA,EACFxB,EAAAyB,CAAA,EACdhC,EAAAA,UACAiC,OAAAA,EAAAA,CACY5B,OAAAA,GAAAA,YAAAA,EAAAA,SAAAA,CAAAA,EACZmB,EAAAA,OAAsB,CAClBO,CAAgBD,IACpBvB,MACA1B,mCACU,GACVJ,IAAe,4BAAA,CAAA,EAEfI,EAAAA,0BAAkB,GACpB2B,GAAAe,EAAA,0BAAA,CAAA,EAEGA,EAAA,2BAAA,GACSC,GAAAD,EAAA,2BAAA,CAAA,EAGEA,GAAAA,EAAAA,CAChB,KAAA,CACIA,OAAAA,EACUA,YAAAA,EACd,WAAAN,EACIM,WACWA,UAAAA,EACf,KAAAE,EACF,iBAAAO,CACA,EAAiB1D,EACTyD,EAAA,CAAA,EAAAN,GAAA,MAAAA,EAAA,UAAA,CACJS,GAAAA,EACAnB,QAAAA,EAAAA,QAAAA,IAAAA,IAAAA,GAAAA,YAAAA,EAAAA,QAAAA,CAAAA,EACAK,WAAAA,GAAAA,YAAAA,EAAAA,YAAAA,GAAAA,EAAAA,SAAAA,CAAAA,EACAf,EACAC,QAAAA,MAAAA,EAAAA,IACAI,KAEEpC,IACJ0B,EAAuB,QAAEU,MAAiBK,GACrCL,GACHiB,GAAsBvF,EAAwBoE,GACnCE,GAAmBvG,EAAAA,0BAAqC,EACrEgH,IAAA,MACAjB,IAA4BgC,EACZH,GACFD,EAAAC,CAAA,EACVhB,GAAaf,GAA+Be,CAC5CK,CAAYa,EAAAA,CAAAA,EAAAA,EAAwB7D,CAAA,CAAA,EAC5BiC,MAAAA,GAAAA,IACZ8B,GAAkB,+CAAMX,GAAAA,IAAsB,CAC1CO,KAAAA,CAAgBD,MAAAA,EAChBJ,QAAAA,CAAkBnB,EAAAA,EAAAA,QACxB,GAAA3B,IAAA,UACEN,MAAaD,GAIjB,MAAyB+D,GAAA3K,GAAA,IAAA,KAAA,EAAA,QAAA,uDAAA,EAAA,EAAA,IACFiK,EAAA,OAAA,EAIrB,GAHM,CAAAU,GAAA,CAAAC,GAAiCvB,EAAAA,OAAAA,GAAAA,EAAAA,MAAAA,GAAAA,EAAAA,EAAAA,EAIrCrC,MAAAA,GAA0BG,MAAS0D,GAAAlE,GAAA,YAAAA,EAAA,QAAA,MAAAe,EAAA,GAC5BoD,EAAAnE,GAAA3G,EAAA,KAAA,IAAA,IAAA2G,EAAA,QAAA,IAAA,GASPK,MARF,IAAA6D,GAAAC,GAOuC9K,KAAA+K,GAAA,YAAAA,EAAA,QAE9B,EACTC,GAAA,IAGMC,GAAAA,EAI6C,GADxB,QAAAP,EAAA,EAG3BnB,GAAA,IAAA,CAGA,MAAMsB,EAASlE,GAAuBuE,CAChCJ,GAAAA,IAGFrN,iBAAwB,EAC1BuJ,EAAAA,YAAwB0D,GAAEG,EAAQC,cAAa,iBAAA,eAAAK,EAAA,CACxC,QAAA,EAAA,CACT,EAGMC,IAAAA,OAAAA,oBAAoCrG,eAAAA,EAAAA,CAC1C,QAAoB,EAClBiC,CAAAA,CAA0BoE,EAAAA,CAAAA,CAAAA,EAAAA,MAAgBC,GAAA,IAAA,CACnC,KAAA,CACT,MAAArL,CAEAgH,EAAAA,EAAwB,QACtBhH,CACA4K,MAAAA,CAAAA,EACAK,EAAAA,QACAhC,OAAAA,GAAAA,GAAAA,CAAAA,CAAAA,EAAAA,GAAAA,CAAAA,CAAAA,EAEA6B,GAAAA,IAAAA,CACAM,MAAAA,EAAAA,KACAjE,GAAAA,uBAAAA,CAAAA,EAGKoC,GAAA+B,GAAA,CAAA,CAAA,EACT,MAAAC,GAAA,OAAA,aAEMP,KAAqB,EAAA,EACrBQ,SAAa,IAAA,CACTC,GAAAA,UACCA,EAAAA,CACT,QAAA,CAAAF,GACO,iBAAA,EAAA,CACT,EAEAhC,GAAgB,MAAA,IAAA,CAER4B,CAAAA,GAAAA,GAA4B,SAAAH,GAAA,GAC5BtE,IAEFjJ,GAAgBiN,QAAAA,EAAAA,EAClB,CACF,QAAA,CAAAa,GACOG,iBAAAA,GAEP,MAAC,GACD,gBACE1H,GAA2B,CACzB2H,MAASC,EAAA,SAAA,iBAAA,sBAAA,EACVC,EAAA,CAAA,CAAAD,EACAE,EAAAF,EAAA,SAAA,GAAAA,EAAA,CAAA,EAAA,cAAA,oBAAA,EAEL,UAA2B,CAAAE,CACnB,CAAA,CAAE9L,EAAAA,GAAsBqJ,IAAAA,CACxB,CAAAvC,GAAAkE,MAAEhL,GACR,EAAA,CAAA8G,KAAkC9G,CAAAA,CAAAA,EACpC,MAAA+L,GAAAvD,EAAA,CAAA,CAAA,EACM8C,OAEGtF,OAAyBgG,IAAAA,EAAAA,OAAAA,GAExBV,GAAAA,IAAmB,CAI7BE,GAFMD,GAENC,iBAEQ,UACJS,OAGF,MAAAlR,EAAAmR,OACYX,CACQ,IAAAxQ,EAEtB,QAAA4L,EAAA,CASE,GAAAA,EAAA,WACY4E,CACQ,GAAA5E,EAAA,QAAA,GAAA,SAAAA,EAAA,QAAA,SAEX,KAAAA,EAAA,QAAA,IACPwF,CACQP,EAAAA,KACAC,YAAAA,CACAC,IAAAA,EAAAA,QAEN,SAAoBA,QAAAA,MACtB,YAAAvD,EAAA,QAAA,MAEJ,WAAAoB,EACAyC,SAAAA,EACM,UAAAvD,EACM,KAAAI,EACV,iBAAAgB,CACce,CAEVe,EACAG,IAAWA,EAAMH,GAAA,OAAA,GAAA,CAAAM,OACrBC,GAAA,OAA+B,IAAAvR,EAAA,CAC/B,GAAQwR,EACV,MAAA,UACMC,mBAAyB,CAIzB5F,CAAAA,EAAAA,KAAAA,IAAAA,CAAAA,CAAAA,EAAAA,MAAAA,GAAAA,CAAAA,CAAAA,EAAYmF,GAAA,QAAA,gBAAAQ,CAAA,EACoB,EACpCE,MAAqB,GAAA,EACrBlD,GAAwB,KACtBxO,SAEI,CAAAuR,GAAA,OAAA,IAAAJ,GAAA,CAAA,CAAA,GAAA,CAAA,CAAA,EAAA3C,GAAA,IAAA,CAAA,MAAAmD,EAAAjP,GAAA,CAAA,KAMMkJ,CACJgG,MAAAA,CACEzB,EAAAA,EAAAA,eAA0BA,EAAAA,aAC1B0B,EAAUjG,CAAAA,EACVkG,QAAAA,QAA4BA,OAAAA,IAAAA,CAC9B,MAAAlN,EAAAmN,EAAAC,CAAA,EAEF,GAAApN,EAAA,OAAA,OAAA,CACS,MAAAqN,EAAArN,EAAA,YACF0J,GAAAA,EAAAA,SAAAA,EAAAA,IAAAA,GACToB,SAEAd,CACAf,CACAC,GAAAA,EAAAA,OAAAA,GAAAA,EAAAA,QAAAA,EAAAA,CACAI,MAAAA,6BAAAA,CAAAA,SAAAA,EACAgB,MACF,CACF,GAAAgD,EAAA,OAAA,EAAA,CAEExP,iBAA4BsO,EAG5B/E,EAAAA,gBAAc,EACXkG,MAAAA,EACInS,EAAKkP,EAAA,OACLsC,EAAAA,EAAAA,MAAAA,EAAAA,CAAAA,EACH5L,GAAOwM,EAAA,QAAA,EAAA,CACPC,MAAAA,6BAAoBzF,CAAA,SAAA,EAErB0F,MACSC,CACT,MACO7P,EAAM0P,EAAA,IAAAH,IAAA,CACJO,KAAAA,EACT,KAAAP,EAAA,KACiB3D,KAAAA,EAAAA,KACtB,IAAA,IAAA,gBAAA2D,CAAA,EACF,GAAA,KACAP,gBACAlD,EAAAA,EACmBT,EAAA,CAAA,GAAAmB,EAAA,GAAAuD,CAAA,CAAA,CAGjB,CACKN,EACL,OAAA,iBAAA,QAAAR,CAAA,EACF,MAAKe,EAAAhQ,GAAA,CAEL8L,EAAU,aAAM,MAAA,OAAA,IACRmD,EAAAA,eAAejP,EACbA,EAAA,gBAAA,EAAEqP,EACR,cAAA,iBAAgB,WAAAW,CAAA,EAChB,OAAA,iBAAoBX,QAAmB,EAC/BnN,IAAAA,CACFA,OAAAA,oBAAsB,QAAA+M,CAAA,EAClBM,OAAAA,oBAAsB,WAAAS,CAAA,EAC5B,OAAA,oBAAY3F,OAAmB4F,CAASV,CACtCC,CAAe,EACjB,CAAAhD,CAAA,CAAA,EACF,KAAA,CAAA0D,GAAAC,EAAA,EAAAvG,EAAA,EAAA,EACF,CAAAwG,GAAAC,EAAA,EAAAzG,EAAA,EAAA,EACA,CAAA0G,GAAU1M,EAAc4I,EAAAA,IAAgD,EAC/D,CAAA+D,GAAAC,MAAwD,IAAA,EAC/D,CAAAC,GAAAC,EAAA,EAAAC,GAAA,IAAA,CACF,MAAAC,EAAA,CAAA,EACArH,EAAY,CAAA,EAAEiG,CAAM,gCAAAqB,EAAC,CAAA,CACjBrB,EAAAA,GAAAA,SACFxP,OAAAA,GAAiB,QAAAwE,GAAA,CACjBxE,KAAkB,CAAAyE,CAAA,EAAAD,EAEZsM,IAAAA,UAA6ClN,SAAAA,IAAAA,IAAAA,EAAAA,SAAAA,CAAAA,GAAAA,IAAAA,MAAAA,GAAAA,QAAAA,GAAAA,SAAAA,CAAAA,EACnDgN,EAAqBpB,KAAAA,CAAAA,EAEZuB,EAAA,KAAAvM,CAAA,CACP,CACF,EACMuL,EAAaL,KAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAkBH,CAAAA,EAAUyB,CAAA,IAC7CzB,IAAAA,KAEA0B,IAAWA,EACNC,EACDC,EAAA,cAAAH,CAAA,CAAA,EACSD,EACb,KAAA,CAAA,CAAAK,EAAAD,CAAA,EAAA,CAAAE,EAAAL,CAAA,IAAAG,EAAA,cAAAH,CAAA,CAAA,EACF3F,CAAAA,EAAAA,CAA0C,CAAc,EAC1D,CAAAF,EAAAoF,EAAA,CAAA,EACFe,GAAAX,GAAA,IAAA,CAAA,EAAAzH,GAAA,MAAAA,EAAA,YAAA,KAAA,OAAA,KAAA,IAAA,EAAA,IAAA,KAAAA,EAAA,SAAA,IAAA,IAAA,GAAA,GAAA,GAAA,GAAA,EAAA,CAAAA,CAAA,CAAA,EACO+E,GAAAA,IAAAA,CACD+B,KAEJ1O,GAAMiQ,cAAalC,UAAMzL,EACvB5D,EACAA,OAAAA,EAAkB,MAAA,CACpB,GAAA,0BACF,SAAA,CAAAwR,EAAA,MAAA,CACOvD,GAAAA,oBACAA,MAAAA,EAAAA,aAAoC,GAC3C,SAAa,CAAAuD,EAAA,MAAA,CACJC,MAAAA,cACAA,SAAAA,EAAAA,GAAAA,YAAAA,iBAOLC,EAACpB,GAA+B,CAE/BC,QAAAA,EACAE,gBAAAA,EAA6C,YAC5CG,gBAAiB,GACjBG,gBAAkB,EAClB,CAAA,EAAA1H,EAmFQC,KAA2B,SAAA,CACzBH,KAAAA,SACAD,MAAAA,mBAAAA,SACaQ,IAAA,UAAA,YACFkC,OACToB,GAAAA,CAAAA,OAAAA,QACAnB,MAAAA,0CAAoCtJ,EACpC2J,MACAf,CACAC,GAAAA,OAAAA,OAAAA,WAAAA,YAAAA,CACAI,IAAAA,EAAAA,OAAAA,OAAAA,WAAAA,gBAAAA,MAAAA,EAAAA,WAAAA,CACAgB,MAAAA,oJAAAA,EACF,MACD,CAID,GAAA,CADE,QADW,iKACX,EAGM,MACV,CAAEmF,EAAAA,CAEIC,GAAK,IAAA,CAAa,MAAAC,EAAA,CAAW,WAAA1I,EAErCuI,cAAAA,EACO,YAAA,CACC,IAAA7H,EAAA,QACGiI,OAAAA,EAAAA,QAAAA,MAAWH,YAEf7G,EAAA,QAAA,MAAM,WAAAoB,EAAe,SAAAf,EAAY,UAAAC,EAExCsG,KAAAA,EACO,iBAAAlF,CACC,CAAA,SAES,OAAA,YAAAqF,gBACO,WAAA,aACV,OAAA,OAAA,WAAA,YAAA,GACV,WAAA,IAAA,CACF,OAAA,OAAA,WAAA,YAAA,EAAEF,EAAAA,KAEc,OAAA,OAAA,WAAA,YAAA,GAKlBD,OAAAA,OAAA,WAAA,cAAA,YACO,OAAA,OAAA,WAAA,cAAA,UAAA,IAEiB,EAehB,EACFK,SAAML,EAA0CM,EAAA,CAChD,KAAA,QACF,IAAA,QAEIzL,CAAAA,CACF,CAAA,EAzJViL,EAAA,OAAA,0BAAkDS,SAAAA,CAAAA,EAAAA,SAAAA,CACrCjM,KAAAA,SACX,MAASxB,6BAGbC,IAAAA,UAKAmM,QAAasB,IAAM,CACdC,GAAA,CACLpB,WAAAA,EACF,cAAA7H,EACD,YAAA,CACYkJ,IAAMvI,EAACuH,QACJjG,OAAAA,EAAAA,QAAAA,MAAiB,YAAAL,EAAA,QAAA,MACjBK,WAAAA,EAAiB,SAAAA,EACxBgG,UAAAA,EACR,KAAA3F,EACa4G,iBAAAA,EAGqB,CACvB7B,MAed,WAGEmB,EAAAM,EAAA,CAAQ,KAAA,aACNR,SAAA,CAAQ,CAAA,CAAoBa,aAAmC,CAAGV,KAChEH,SAAW,MAAA,oBAAaG,QACDW,GAAAA,SAAAA,EAAAA,EAAAA,CAAAA,KAAAA,WAAAA,IAAAA,UAAAA,CAAAA,CAAAA,CAAAA,EAAAA,IAAAA,EAAAA,SAAAA,MAON,SACFrI,MAAAA,kCACuBsI,UACjB,QAAA,IAAA,CACAhF,GAAA,GAGjBlE,GAC8BsI,EAE1Ba,SAAKd,EAAAM,EAAA,CACC,KAAA,GAAA,EACgB,CAAA,CACtBS,CAkBE,CAAA,CAsEE,CACEV,CAAAA,EAAAA,CAAAA,CAAAA,GAEAP,EAAA,MAAA,CACA,MAAA,iBACF,SAAA,CAAAE,EAAAgB,GAAA,CAEA,OAAIC,EAEE3E,KAAAA,IACN,YAAKA,EAAK,CAAA,EAAAwD,EAAA,MAAA,CACZ,MAAA,iCAMQ,SAAA,CAAA,gBAAAtI,EAAA,QAAA,MAAAA,EAAA,QAAA,SAAA,UAAAoI,IAAA,GAAAE,EAAAoB,GAAA,CAAA,SACI,CAAA,IAAA,IAAAlB,EAAA,SAAA,CACR,SAAiB7I,GAAA,OAAA,CAAAyI,GAAA,OAAA,CACfnI,CAAAA,EAAAA,GAAAA,CAAAA,CACAD,CAAAA,CAAAA,CAAAA,CAAAA,CACa,CAAA,EAAA,CAAA,CAAAC,GACFyC,EAAAA,MAAAA,CACToB,MAAAA,iBACAnB,SAAAA,CAAAA,EAAAA,GAAAA,CACAK,OAAAA,EACAf,KAAAA,IACAC,YAAAA,EAAAA,CACAI,EAAAA,EAAAA,MAAAA,CACAgB,MAAAA,wBACF,SAAA,qBAAA,CACF,CAAA,CACAjG,CAAAA,EAAAA,EAAAA,QACIA,IAAAA,GACKsM,MAAAA,oBAAgC,GACvClH,MAAAA,CACSkH,cAAAA,cAAgC,OAAA,OAAA,YACpC,UAAA,GAAA,CAAA,EAEEA,UAAAA,GAAAA,CACT7S,EAAA,MAAA,UAAAA,EAAA,SAAAA,EAAA,UACA8S,GAAIvM,QAAOsM,cAAkBE,IAAAA,MAAAA,SAAyB,CAE7CF,WAAAA,EACT,CAAA,CAAA,CACF,EAEJ,SAAA7S,GAAA,CAAE2R,EAAAA,eAEG,EAAA,MAAMqB,EAAA,IAAA,SAAAhT,EAAA,MAAA,EAAY+F,EAAA,OAAA,YAAAiN,EAAA,QAAA,CAAA,EAAQ,GAAE,CAGtC,OAAAhG,EAEA9D,WAAAA,EACU,UAAA+C,EAAgB0F,YAAAA,CACTzI,EAAAA,EAAwB+J,GAAThC,EAAKhF,IAAA,KAAeT,EAAA,CACnDgG,GAAAA,EAAA,QAAA,OAAA,EAAA,CAAW,MAAA,mCAAA,EAAgC,MAMpC,CAED,GACG3I,EAAAA,QAAW,KAAAqK,WAAgC,OAGhD,6BAAA,EACD,MACG,CAGR,CACW1G,EAAA,OAAA,GACFA,EAAA,KAAA2G,GAAA,WAAA,SAAAxR,IAAA7F,GAAAqX,EAAA,cAAA,YAAArX,GAAA,OAAA,MAAA6F,GAAA,KAAA7F,KAAA,GAAyC,CAAf,QAAA,4CAAA,IAC2B+P,EAAAI,GAAAJ,GAAA,OAGhE2F,EAAAxE,IAAA,GAAA,OAAAA,EACO8F,GAAAA,cAAAA,WAAAA,GACLT,cACO,SAAA,CACLe,GAAAA,CACAC,GAAAA,EAAqB,OAAkB,EAAA,CACzC,MAAAC,GAAA9G,EAAA,IAAA+G,IAAA,CACAC,KAAkB,CACF,KAAAjE,GACJ3D,YAAAA,GAC4B,GAAA6B,EACpC,EAAA8F,GACF,GAAA9F,GACF,OAAA8F,GACiB,CACE,MAAAE,GAAAC,GAAA,CAEA,KAAAnE,GACDzK,YAAAA,EACRiF,CAAAA,EACJ,OAAAP,EAAA,GAAA,MAAA,OAAAiK,EAAA,EAAA,KAAAE,KAAE3G,GAAAA,KAAQd,GAAAA,GAAAA,GAAAA,IAAuBL,GAAgB9F,CAGrDqF,CAkBA,CAAU,EACSxH,GAAAA,MAAS,QAAG,WAAA0P,EAAA,EAC3BvB,GAAM6B,GAAmC,KAAAjR,IAAA,QACzC,OAAAA,GAAA,SAAA,YAAA,GAAA7G,GAAA6G,GAAA,QAAA,MAAA7G,GAAA,GAAA,CACF,EAAA,IACiB+X,cAAiBX,WAAAA,GAChCnB,GAAmC,cAAA,gBAAA,GACnCpI,EAAA,OAAA,EACFiK,GAAA,QAAAjR,IAAA,CACFA,GAAA,SAAA,YAGI6J,MAAAA,WAA6B,eAAA,CAAA,SAAA,CAK/B,CAAuB,EACfwB,MAGN,CAAU,CACZ,IAAA8F,EAAA,CACF,OAAA9G,EAISA,aAAWnB,EAGpBvK,SAAAA,EACAqI,UAAoBsC,EACP,KAAAT,EAEDzB,gBAAyCwJ,IAAAA,GAAA,EAAA,CAC7C/G,EAEI8G,GAAgB9G,GAAAA,iCAAqC,EACnDsH,EAAA,iBAAAtH,EAAA,IAAA+G,KAAEhE,CAAMwE,GAAAA,GAAAA,GAAatG,YAAAA,GAAAA,WAE3B,EAES8F,EACFpK,IACL2K,EAAA,WAAeJ,EACbnE,EAAAA,gBAAAA,GAAAA,YAAAA,EAAAA,KAAAA,QACAwE,EACDL,GAAAI,CAAA,EACMtK,IAAAA,EACL,GAAAL,EACEoK,EAAAA,MAAAA,EAAgBI,GAAIlG,SAAAA,QAAAA,EAAAA,EAAAA,EAAAA,OAAAA,CAAAA,EACtBuG,GAAAC,EAAAxK,EAAA,CACOkK,cAAAA,EAAAA,CAAAA,MAGb,IAAC,CACDM,EAAgB,MAAAzK,EAAc0K,GAAAA,SAAAA,OAAwBJ,EAAA,CAIpDF,YAAcjR,CACZ,QAAcqK,CAEhB,kBAAAnD,EAAA,OACAvI,CACAA,CACAqI,CAAAA,CAEQ3D,MAAAA,CACFrD,EAAAA,QAAkB,GAAY,SAAA,OAAAmR,CAAA,CAChCvK,CAEFjI,GAAA,cAAA,UAAA,GAAAA,GACD,cAAA,WAAA,GACDqI,EAAA,SAAA,EACFV,EAAA,CAEc2K,KAAAA,EAAAA,OAAAA,EAAAA,QAAAA,OAASpH,UAAAA,EAAiB,SAAA/C,CAAC,CAC3C,CAQA,OAAa0K,EAAA,CACXnH,GAAAA,cAAAA,WAAAA,GAAAA,GAAAA,cAAAA,gBAAAA,GAAAA,OAEcnB,GAAAA,YAAAA,EAAAA,SAAAA,CAAAA,EACdV,EAAAA,OAAAA,CAAAA,CACAC,KACAI,EAAAA,kBAE4BtE,CAG9B,MAAA,kBACIiC,SAAAA,CAAAA,EAAAA,QAAuB,CAClBiL,IAAAA,EAEI,KAAA,OAAA,KAAA,cACU3G,8BACSsG,SAAAA,IAAAA,UAAAA,MAAAA,qBAG1B,KAAA5I,EAAA,WAEJ,OACF,IAAA,OACE2I,MAAAA,CAEOO,QAAAA,EAAAA,EAAAA,EACT,cAAAjJ,EAAA,OAAA,MACA0I,EACQ/J,QAAAA,KAEJkK,IACJ,CACc,CAAA,EAAAzC,EAAA,QAAA,CAGZwC,MAAAA,oBAAgC,YAAA,EAAA,GAAA,MACf,qCAAA,SAChB,CAAAtC,EAAA,QAAA,CACH,KAAO,YACD,KAAA,WACFuC,QAAAA,EAAmD,SACpCvK,IAAA,UAAA,SACF1J,GAAA,SAAA,MAAAiM,WACgBL,QACzBU,GAAAL,CAAA,EACFA,GACFnQ,EAAAgP,EAAC,UAAD,MAAAhP,EAAC,SAGDmY,EAAAA,EAAY,UAAZA,MAAAA,EAAkBzK,OAEtB,CACAlI,CAAAA,EAAAA,EAAOyR,GACPzR,KAAAA,SAAkC,QAAA,MAAA,EAClCqI,CAAAA,CAAAA,CAGQ,CAAA,EAAA,IAAA6H,EAAA,QAAA,CAAA,MAAA,kBAAAtF,IAAA,UAAA,CAAAd,EAAA,aAAA,EAAA,IAAAc,IAAA,SAAA,YAAA,EAAA,GAAA,MAEA/C,eAAAA,CAAsBD,GAC5B+K,SAAAA,CAAAA,EAAAA,EAAAA,CACAxK,KAAAA,GAAAA,CAAAA,EACF,IAACyC,CAAA,KACS,SAAA,CACV5K,KAAAA,aACAA,MAAOyR,EACPxJ,YAAe,CACTvJ,WAAc,KAAA,CACpB2J,EACF,SAAAD,IAAA,WAAA,CAAA,CAAAP,EACC,SAAA,CAAAqI,EAAA,SAAA,CACL,MAAA,SAAEG,SAEF,CAAA,UAAAD,EAAAM,EAAA,CAAW,KAAA,OAAA,CAAiBL,CAAAA,CAC1B,CACO7G,EAAAA,EAAAA,SAAAA,CACA,MAAA,WACA,SAAA,UAAA,CACO,EAAA4G,EAAA,SAAA,OACU,UAChB,SAAA,gBAAA,CACAvG,EAAAA,EAAAA,SAAAA,CACK,MAAA,SACP,SAAA,iBAAA,CACG,CAAA,CAAA,CACLkI,CAAAA,CACAD,CAAAA,EAAAA,GAAAA,CAAoC,CACtC,EAAA1B,EAAA4C,GAAA,CAAA,MAEkB,YAAApL,EAAA,kBAAAC,EAAA,iBAAA,sBAClB,UAAAqD,GAAA,YAAAA,EAAA,UAAA,EAAE,SAEJ9C,IAAA,UAAA,KACUyB,EAA8C,QAChD,IAAA,CAAoCwG,IAE1C,EACO,cAAAvJ,EACA,cACIgD,GAAAA,CAAAA,MAETmJ,KAAAA,EACQnJ,EAAAA,EACNkB,MAAAA,CACA,EAAAwH,EACEhJ,OAAAA,IAAAA,WACKtB,EAAA,GAAA,SAAA,OAAA,KAAA,CACLwB,EAAAA,EACF,MAAAwJ,EACF,QAAA,EAAA,CAEF9C,EAAqDlI,EAAA,GAAA,OAAA,MAAAsK,CAAA,CAChD,EACP,UACUW,GAAA,EAGRC,GAAAA,YAAAA,0BAAmC/C,GAE9B,CAACC,oCAAmC,oBAAA,IAAA,CAAQ1F,GACjDuI,GAAA,YAAAA,EAAA,QAAA,UACEE,GAAK,CACEzI,mBAAAA,GAAAA,YAAAA,EAAAA,oBAAAA,IAAAA,CACPqI,GACgBvU,GAAAA,YAAAA,EAAAA,QAAc,yBAAAyU,GAAA,MAAAA,EAAA,YAC9BjE,GAAAiE,EAAA,SAAA,CACgD9C,CAEhD,CAAA,GAAAnF,GAAA,YAAAA,EAAc,QAAA,GAAAgF,EAAA,MAAA,CAAA,MAAS,oBACT,SAAM,CAAAhF,EAAA,IAAA,CAAA+G,EAAAjE,IAAA,CAAA,KAAU,CAAA,GAAA7B,EAE9B,KAAA8B,CAAc,EAAUoC,EACxBD,GAAAnC,GAAA,YAAAA,EAAA,OAAAA,GAAA,YAAAA,EAAA,OAAAA,GAAA,YAAAA,EAAA,MAAA,OAAcmC,EAAAkD,GAAA,CAAA,WAAArB,EAAwB,SACtC7J,IAAA,UAAA,KAAcyB,EAAA,oBAAS5I,GAAA,CAAwB8I,EAAAwJ,GAAA,CACxC,MAAAC,EAAA,CAAA,GAAAD,CAAA,EACC,OAAAC,EAAAxF,CAAA,EAAA,YAAA/M,EAELuS,CAAA,CACF9J,CAEH9B,EAMF6L,gBACsBF,GAChB1J,EAAAA,OAAAA,CAAAA,EAAAA,IAAAA,IAAAA,CAAAA,EAEY,CAAA,EAClBsC,GAAAuH,GAAA1F,CAAA,CAAA,CACAlH,EAAAA,EAAAA,QAAAA,CACA6M,MAAAA,kBACQ,SAAA,CAAAvD,EAAA,QAAA,CAAEc,KAAAA,YAAM0C,KAAAA,WAAGV,QAAAA,EAAUV,SAAAA,IAAAA,UAC3B,SAAa9T,GAAY,CACvB,MAAamV,EAAYC,EAAAA,OAAAA,QACvBF,GAAAA,CAAAA,CACAV,CAAAA,CAAAA,EACAa,IAAS3D,EAAA,OAAA,CACX,SAAC,yBAAA,CACH,EAAA,IAAAA,EAAAM,EAAA,CACA,KAAasD,OAAAA,EAAUC,QAAY,MAAA,EAAA,CACrC,CAAA,CAAA,CACAC,CAAAA,CACMf,CAAAA,EAAAA,CAAAA,CAAAA,GAAAA,KAAiB,CACC,KAAAtJ,EAClBsK,WAAAA,EAAgD,cAAA/K,EAEpD,cAAAG,GACuB,uBAAAD,EACnB6K,KAAAA,EAAgD,SACjD/L,IAAA,UAAA,QAED+K,GAAAA,CAGAjE,GAAAA,EAAAA,CACF,MAAAkF,EAAA,CACF,GAAAnJ,CAAA,EAGWK,EAAA8I,CAAA,CAAA,MAED9I,EAAA,IAAA,CAAM2C,CAAAA,CAAAA,EAAKiC,EAAI+B,MAAAA,CACrB,MAAA,eACA,MAAA,CAGIA,eAAAA,UAAAA,EACsB,SAChBpI,CAAAA,EAAAA,OAAAA,CACNwK,SAAAA,CAAAA,EAAAA,QAAgC,CAC9BtK,MAAAA,iBACQyJ,SAAAA,CAAAA,EAAAA,QAAAA,CACSc,KAAAA,OACRd,OAAAA,EAAAA,KAAAA,GAAAA,EACT,SAACtI,EAAA,OAAAtC,EAAA,EACH,SAAAR,IAAA,WAAA8C,EAAA,QAAAtC,GAAA,CAAA,CAAAsB,WACgBxL,GAAA,CACdqL,MAAAA,EAAAA,EAAAA,OAAqC,MACnC,GAAA,CAAAmE,EACD,OACH,MAAAO,EAAA,MAAA,KAAAP,CAAA,EAAA,IAAAD,IAAA,CAfWyF,KAAAA,EAmBjB,KAAAzF,EAAA,KAAa,KAAAA,EAAA,KAAiBoC,IAC5BD,IAAA,gBAAAnC,CAAA,EACO,GAAA,KAEInE,YAAAA,QAETmJ,EAAiB,OAAAxE,EAAA,OAAA7F,EACTkB,MAAAA,6BAAqByK,CAAAA,SAAAA,EAE7BxK,EAAAwJ,GAEFA,EAAA,OAAA9E,CAAA,CAAM,EACO/P,EAAA,OAAMoL,MAAY,EAAsB,CAAA,CAC/C,EAAAsG,EAAAM,EAAA,CAGTxG,KACDkG,YAAK,CACGvG,CAAAA,CAAAA,CACNR,EAAAA,GAAAA,MAAAA,EAAAA,GAAAA,EAAAA,GAAAA,CACAD,SAAAA,EAAAA,SAAAA,CACAG,KAAAA,SACAD,MAAAA,iBACAY,SAAAA,IAAAA,WAAAA,CAAAA,CAAAA,GAAAA,CAAAA,CAAAA,EAAAA,eACsB,IAAA,CACtBsK,EAAmB,CACP,QAAA,CAAA,GAAA,EAAA,EACFJ,UAAU,GAAA,GAAA,GAAU,SAAA,EAC1B9I,CAAAA,CACK,EACLA,SAAY8E,EAAAM,EAAA,CACd,KAAA,OACF,IAAA,UAAA,CAGJR,CAAA,CACQ,CAAA,CACC,EAAAE,EAAA,SAAA,CACW,KAAA,SAClB,MAAA,iBAAEC,SAEFH,IAAA,UAAAG,QACEH,IAAA,CAAanB,GAAA,EAAA,CAAgBsB,EAC3B,SACOD,EAAAM,EAAA,CACL+D,KAAAA,QAAmC,CACnCC,CAA0D,CAAA,EAC1DC,cACc,8BACe/L,CAG7BqK,KAAAA,SACQ/E,MAAAA,mCACN,SAAKA,IAAAA,WAAAA,EAAAA,QAAAA,GAAAA,CAAAA,CAAAA,EAAO,QAAA,IAAA,CAEZ0G,KAAmBC,CACjB5G,EAAAA,WACWiD,OAAAA,CAAAA,SACLjD,KAAK0B,CACXmF,CAA6B,CAAA,CAAA,CACzB,CAAA,EAAA1E,EAAA,MAAA,CAAA,MAAA,QACS,CAAA,EAAAhI,IACb,UAAAgI,EAAA2E,GAAA,CACMtM,OAAAA,EAGR,CAAA,EAAA2H,EAAA4E,GACmB1S,CAId,cAAAwE,EACH,OACKsB,IAAA,SACL2B,CAAAA,EAAAA,EAAAA,QAAAA,CACSwJ,MAAAA,kBAAAA,IAA6B3J,GAAA,SAAAqF,IAAA,MAAAA,GAAA,QAAA,CAAAA,GAAA,SAAApF,CAAA,EAAA,YAAA,EAAA,GAAA,SACrC,CAAAuG,EAAA,OAAA,CACH,MAAA,YAEA1R,gBAAiBmL,CAAA,mBAAA,MAAA,CACnB,EAAAqG,EAAA,SAAA,CAAE,KAEJE,WAAK,MAAMvG,EAAY,SAAGnL,GAAA,CAG3B2K,KAAAA,CAEGgH,MAAAA,CACE,EACO3R,EAAA,OACLqS,GAAM9P,GAAAmE,EAAA,EACNuP,GAAAA,8BAEIzK,GACD9E,EAAkB9C,CAAAA,EAGX,SAAA8F,IAAA,UACN+C,SAAAA,CAAAA,GAAgB,IAAA,CAAA,CAAAhI,EAAAC,EAAAC,CAAA,IAAA6M,EAAA,SAAA,CAChB9E,MAAAA,EAAqB,SAAA,CAAAhI,EAAA,KAAAC,EAAA,GAAA,CAAA,EAAAF,CACX,CAAA,EAAAiN,EAAA,KAAA,CAAA,CAAA,EAAAhB,GAAA,IAAA,CAAA,CAAAjM,EAAAC,EAAAC,CAAA,IAAA6M,EAAA,SAAA,CAAA,MACX/M,EACH,SAAA,CAAAC,EAAA,KAAAC,EAAA,GAAA,CAAA,EAAEgN,CAAAA,CAAAA,CAAAA,CAEG,CAAA,CAAA,CAAM,CAAA,EAAA,IAAWD,EAAA,SAAA,CAAA,KAAY,SAAA,MAC5B,QAAC,SAafhI,IAAA,UAAA,SACOR,EAAA,QAAAC,EAAA,SAAA,MAAA,CAAA,CAAA,CACC,CAAA,CAAA,CACgB,CAAA,CAAA,CAEpBkH,CAAAA,EAAAA,IAAAA,EAAAA,GAAwB,CAC1B,QAAArQ,GAAA,CAAE2R,EAAAA,0BAEGxB,GAAM,EAAA,CAAW,EAGtB,SACOuB,EAAA6E,GAAA,CAAA,MAAA/M,EACC,SAAAC,EAIF+B,YAEKiH,CACPyD,GAAAA,EAAqB,CACvB,EAAEvE,qCAEF,kBAAA,SAAM6E,GAAA,CAAA,MAASC,EAAAzL,EAAA,QAAA,GAElB,CAAAyL,EAEH/E,OAAA,KAAW,CAAU,eAAA/Q,EAEX+V,aAAAA,CAAQ,EAEhBhF,EACEtJ,EAAAA,EAAAA,QACoB/K,EAAA,MAAA,EAAAsD,CAAA,EAGxB6Q,EAAAmF,EAAA,cAAA,KAAAA,CAAA,EAAA,GAAA,IAAA,GACUC,EAAAvZ,EACO6N,MAAAA,CAAAA,EAKZyG,EAEH,cAAA,KAAAiF,CAAA,EAAA,GAAA,IAAYC,GAAAF,EAAAG,EAAA,IAAAN,EAAAO,EAAAH,EAAWjF,EAAAA,MACExG,GAAiBsL,EAE1CjF,eAAAiF,EAAA,aAAA7V,EAAA,EAAA4V,EAAA,OAAAO,EAAA,OAAAN,EACO,MAAA,EAAAA,EACEtL,cAAAA,IAAAA,MAAAA,OAAAA,CAAAA,CACPoJ,CACQ,CAAA,CAAA,CAAEhS,EAAAA,IAAAA,EAAAA,GAAAA,CAAAA,QAAMvC,GAAM1D,CACpBgP,EAAAA,SAAAA,EAAAA,eACAL,GAAc+L,EAAuBzU,CACvC,EACgCoP,SAAAA,EAAAA,GAE/BlB,CACC,MAAAjH,EAAe/E,SAAAA,EAEf,QAF0BA,KAM1B4L,GAAe5L,EAAAA,CAAAA,EAEf,kBACA2L,IAAA,YAAAA,GAAA,kBAAA,SACK6G,GAAA,CAAA,MAEXvF,EAAA1G,EAAA,QAAA,GACO,CAAAyL,EACLpE,OAAM,MAC0BV,eAAAA,EAGzB,aAAA/Q,CACL,EAAA6V,EACDpZ,EAAAoZ,EAAA,MAGP/E,EAACwF,EAAK,MAAA,EAAAvW,CAAA,EACYwW,EAAAC,EAAA,cAAA,KAAAA,CAAA,EAAA,GAAA,IAAA,GACGpX,EAAiB3C,EAAA,MAAAuD,CAAA,EAChCuP,EAA0B,cAAA,KAAAkH,CAAA,EAAA,GAAA,IAC5BR,GAAAO,EAAAD,EAAAF,EAAAK,EAAAD,EACFZ,EAAA,MAAAI,GAAElF,iBAEW8E,EAAA,aAAA7V,EAAAqW,EAAA,OAAAK,EAAA,OACX9N,EAAAA,MAAAA,EACAC,EAAAA,cAAAA,IAAAA,MAAAA,OAAAA,CAAAA,EAEE0G,CAAAA,CAA0B,CAC5B,EAAAG,IAAAoB,EAAAwF,GAAA,CAAA,YAEAK,EAAAA,SAA6BvX,EAAA,eAC3BkW,GAAiBlL,EAAYY,CACd,EACT,SAAA8F,EAAA8F,GAAA,CAAE7W,QAAAA,IAAAA,GAAAA,EAAAA,EAAgBC,SAAAA,CAAAA,CAAa,IAAAwV,EACrC,KAAA5D,EACA,SAAAiF,CACA,IAAA,CAKMb,GAAAA,EAAAA,QAAwBc,EAAkB,CAChD,MAA0B,6BAAAxN,CAAmB0M,SACzC,EAEJ,MAOAH,EACAA,kBAKAA,IAAAA,EACAA,GAAAA,CACFkB,EAAAC,GAAA,CACD,KAAA,mBAIHlG,SAAAA,EAAM,CACM1R,EACF1D,MAAW0D,EAAE6X,MAAe,MAAAzB,EAAA,CAChC/F,eAAyB,aAAA,CAC3B,EAAA,KAAAsD,IAAAA,GAAA,KAAA,CAAA,EACFpE,EAAA,IAAA,KAAA,CAAAuI,CAAA,EAAAtF,IAAA,YAAA,YAAA,YAAA,CAEAd,KAAAA,CAAkB,CAChBlI,EACAC,EAAAA,CAAAA,GAAAA,EAAAA,QAEE4G,KAAAA,EACF,KAAAd,EAAA,aAEAgI,YAA8BE,GAAA,EAC5B,CAAA,EACIpM,EAACoL,CAAAA,GAAU3a,EAAA6b,GAAA,YAAAA,EAAA,YAAA,MAAA7b,EAAA,KAAA6b,EACT,MAAA,EAAEhX,EAAAA,GAAAA,YAAAA,EAAAA,YAAAA,MAAAA,EAAAA,KAAAA,GAAgBC,GAAAA,wBAAAA,CAAiB6V,CACzC,IACA,CACA,CAAA,CAKMY,CAAAA,CAAAA,CACN,CAAA,CAGA,CAMAZ,SAAAA,GAAiBI,EAAAA,CACjBJ,GAAAA,CAAAA,EAEAA,OACAA,KAAAA,CACF,MAAAlU,EAAA,aAAAwV,EACA,aAAAC,EAKFvF,aAAAA,CACMzS,EAAAA,EACFkW,GAAAA,EAAAA,OAAsB,YAAA,CACxB,MAAArV,EAAAkX,EAAAE,EACFC,EAAA3V,EAAAyV,EAAAnX,EAAA,KAAA,KAAE8Q,EAAAA,aAEauG,CACbjP,CAAqC,CAC1B,eAAEmN,GAAAA,EAAAA,EAAAA,CAAWqB,MAAAA,GAANjF,MAAAA,EAAAA,GAAAA,aAAAA,KAAAA,GAAMiF,OAAAA,GAAAA,EAAAA,eAAAA,EAASU,EAAM,IAAAC,GAAAC,EAAA,CAC7BtO,KAAAA,CAAAA,WAAI,EACRyC,eAAAA,EAEC,CAAA,EAEH,MAAA,CAAA6L,EAAAF,CAAA,CAAA,CAGF,MAAAG,GAAaC,GAAAC,GAAA,CAGTb,WAAAA,CAAAA,EAAqBc,IAAAC,EAAA,WAAAD,EAAA,SAAA,OAAA,GAAA,GACb,GACI,CAAA,EAENX,GAAAA,GAAavC,CAAW,MAAAoD,EAC5BC,GAAgBvb,CAAA,EAAA,OAAAsb,GAAA,MAAAA,EAAA,OAEZpJ,EAAAA,MAAAA,EAAAA,CAAO,MACXsJ,GACArG,EAAAA,IAAAA,EAEEA,IAGEsG,EAGFvJ,GAAAA,GAAAA,CAAAA,EAAAA,IAAAA,OACAiD,KAAAA,CAAAA,MAAAA,EACWvB,SAAAA,CACP,EAAA8H,GAAA,EACqB,CAAA1b,EAC1B2b,CAAA,EAAApP,IAAA9N,EAAAmd,EAAA,UAAA,YAAAnd,EAAA,QAAA,EAAA,EAEHuP,CACAsM,cAAAA,EAAsB,cAAA1C,MACV,CACZ1L,EACAoO,UAAAA,EAAAA,IAAAA,CACAC,EACF,GAAAsB,CAAA,EAAAC,EAEJC,EAAArO,IAAAe,GACD,IAAA,CAACwM,GAEL7O,EAAAD,CAAA,EAAA,KAAA6P,GAAA,CACE,KAAA,CAAAC,EAAAnB,CAAA,EAAAkB,EAETD,EAAA,QAAAjB,CAEA,CAAA,EAAA,YACE,EAAA,CAAK1B,CAAAA,EAAU,MAAA8C,EAAAxO,IACTyO,EAAAzO,EAAA,EAAA,EAAExI,GAAAA,IAAAA,CAAOwV,IAAAA,EAAAA,EAAAA,EAAcC,OAAAA,EAAAA,UAAcC,EAAAA,GAAAA,QAAiBxB,KAAAA,CACxDsB,IAAAA,EAGIlX,QAAAA,EACAqX,KAAS3V,CACfkU,EAAAA,SAEJ,GADE+C,EAAA,QAAAC,EACFA,IAAA,GAAA,CAEejB,EAAAA,QAAAA,SACE,QAAA,MAETL,MACJpV,CACgB,GAAAzF,IAAA,IAAA,CACjB,MAAAsW,GAAA9X,GAAAsd,EAAA,UAAA,YAAAtd,GAAA,OAAA2d,EAAA,QAEH,GACMnB,IAAAA,EAAAA,GAAyC1E,EAAA,QAAA,CAAA,CAAA,KAAA8F,CAAA,IAGhChB,MACK,CAAA,UAAAiB,EACnB,IAAAvD,CAEKwD,EAAAA,EACEjB;gDACakB,GAAAF,CAAA,CAAA;AAAA,+BAEsBd,CAAAA,CAAAA;AAAAA,kBACzCgB,GAAAF,CAAA,CAAA;AAAA,oBAEF,CAAA,EAEiBG,GAAAA,8CAA2BL,CAAA,eACpC/X,GAAA,UAAA4G,EAAEkB,EAAAA,QAAAA,QAAAA,CAAOC,QAAAA,EAAAA,OAAAA,EAAiB,SAAA/H,MAE1B,MACJ0G,SACsB,CAAC,IAAA,yBACJ,EAAA9K,CAAA,EAChB4b,EAAAA,IAAAA,QAAAA,GAAAA,CACDC,EAAAA,QAMM,EAAMM,EACdnB,MAAAA,CAEU,CAAA,EACgBH,KAAAA,GAAAA,CAEhBnY,GAAMyZ,IAAAD,EAAA,QACJ1J,OAET,MAAA8D,EAAArR,EAAAiQ,CAAA,GAAAjQ,WAGCiX,EAAAA,QAAAA,IAA+B,OACrB,KAAA,wBAGZO,YAAAA,GAEQ,SAAA5K,EAAE7R,KAAAA,EAAKoF,OAAAA,EAASrF,QAAAA,CAAWgF,EAAAA,GACjCmX,EAA8Bnc,GAAAA,GAAAA,CAAAA,OAG5BqF;oDAEamX,GAAAzK,CAAA,CAAA;AAAA;AAAA,oCAGbyK,GAAAvH,EAAA,CAAA;AAAA;AAAA;AAAA,6BAQgB8G,GAAqBhE,CAAa;AAAA,+BACzCyE,GAAAzK,CAAA,CAAA;AAAA;AAAA;AAAA,wBAGgBsK,CAAY,MAAAM,IAAAle,EAAAme,GAAA,YAAAA,EAAA,SAAA,YAAAne,EAAA,KAAAme,EAAA,CAAA1V,GAAA2V,KAAA3V,IAAA,CAAA2V,GAAA,KAAA,GAC7B5R,GAAA;AAAA,oDAAEqR,GAAAA,CAAAA,CAAAA;AAAAA,+CAAWvD,GAAAA,CAAAA,CAAAA;AAAAA,wBAAQsD,GAAAA,uBAAAA,GAAAA,EAAAA,CAAAA,UAAAA,EAAAA;AAAAA;AAAAA,mBAGXG,CAEV,CACAA,EAAsBrH,IAAA,aAE7BlK,GAAA,8CAAAmR,CAAA,gBAGD/X,GAAiB4G,UAAAA,EACjB5F,GAEIyX,UAA0B,OAAA,EAChBzY,SAAAA,EAAAA,CAEd,CACA,CAAA,CACF,CAAA,CAAA,CAEA,EAAa6X,EACN,QAAA,iBAAA,uBAAAQ,CAAA,EAAAK,EACApa,GAAA,CACP,KAAK,CAEH,IAAA1C,EACE,KAAA4E,CAAoC,EAClCsQ,EAAAA,OACGnV,CAAAA,MAAAA,EAEL,KAAAgd,CACAC,EAAc1K,EAAAA,QACRvS,IAAAA,KACF2C,EAAA,OAAA,MAAAuC,EAAA,IAAAA,CAAA,IAAA,IACF8X,IACA9Q,EAAAA,OAAY,SAAA,GAAEhH,WAAAA,IAAAA,CAAOiQ,GAAAA,MAAAA,EAAAA,CAAM+H,qBAAgB,kBAAAF,CACrCzG,EACE7J,EAAAA,GAAAA,IAEA/D,IAAAA,KACAhG,EAAA,OAAA,MAAAuC,EAAA,IAAAA,CAAA,IAAA,IACJoS,IACArC,EAAAA,OAAAA,SAAAA,GACAkI,WAAAA,IAAAA,CACArL,GAAAA,MAAAA,EAAAA,CACAC,KAAAA,UACAkK,kBAAAA,CAAAA,EACAW,EACEtX,GAAAA,IAIO3C,EAAA,OAAA,MAAA,GAAA1C,CAAA,GAAAiF,CAAA,EAC0C,EAEjCsX,EAAAA,QAAAA,iBACVvH,sBACA8H,CAAA,EAAAK,EAAAza,GAAA,CAAA,KAAA,CAAA,MAAA1E,CAGoC,EAC/Bue,EAAAA,OAAiB,GAAAb,EAAA1d,EAAA,KAAA,EAAA2d,EAAA,QAAA,CAAA,MAAAvd,EAAA,IAAA,MAAA,QAAA,CAAA,QAIzB,EACCse,CAAAA,EAIGf,EAAA,QAAA,cAAAvd,CAAA,CACyBme,CAAiB,EACLN,EAAA,yBAGbmB,0BAAmBD,CAE/C,GAAA,IAAA,CAGPlB,EAAA,UAAAA,EACD,QAAA,oBAAA,uBAAAQ,CAAA,EACDR,UAAyB,oBAAA,sBAAAa,CAAA,EACvB9R,wDAA2DmS,CAAA,EAE7D/Y,CACQqI,EAAAA,CAAAA,CAAAA,EACA+B,GAAA,IAAA,CACNqO,MAAAA,EAAAA,UAA0B,GAAA,CAAA1D,EAChB/U,OAEb,IAAA,eAAA,IAAA,CAAA,GAEL6X,EAAA,QAAA,CACF,KAAA,CAEgB3N,OAAAA,CAKhBwO,EAAAA,EAAqB,wBACbb,EAAA,QAAA,MAAA,OAAArB,EAAA,IAAE5a,CAAAA,CAAK4E,EAAWG,QAAAA,CAAAA,CAClB,EAAA,CAAA,CAAA,EAAEE,MAAAA,EAAAA,EAAAA,CAAAA,EAAO8X,EAAAA,IAAKM,EAASrN,GAAAA,GAAAA,OAC7B,GAAA,CAAAsN,EAAiB,QACf5a,OACA,GAAA6a,EAAU,QAAA,EAAA,CAER7a,EAAoB,QAAA,UAAA,GAEpB2L,EAAiB,QAAA,MACH7P,EAAA6e,GAAA,YAAAA,EAAA,SAAA,MAAA7e,EAAA,KAAA6e,GAAA,MACJ,CACaN,IAAAA,EACpBS,EAELD,EAAA,SAAA,IACFE,EAAA,KAAWzd,OACT0C,EAASuC,QAAiB,UAAS4F,GAAKsR,EAAA,CACxC,cAAArR,CACEpI,CAAAA,EAAAA;AAAAA,EACA2L,EAAiB,SAAA,IACHmP,EAAA,KAAA,OAAAC,GACJD,GAAAA,EAAAC,EAAA,IAAAF,EACaR,SACpB,EAAA,GAAA,EAELW,GAAAC,GAAA,IAAA,SAAA,MACKC,GAAApf,EAAA8e,EAAA,UAAA,YAAA9e,EAAA,UAAA,IACLkE,GAAAA,CAAAA,EACF,OACFkb,EAAA,iBAAA,MAAA,EAAA,QAAAC,GAAA,CAEgBvP,EAAAA,OAAAA,CAKhB6O,CAAAA,EACQ,MAAAhB,GAAA9X,EAAAuZ,EAAA,YAAA,YAAAvZ,EAAA,OAAErG,GAAAA,CAAAA,EAAAA,OACR0d,MAAAA,KAAmBS,CAAA,EAEnBd,GAAA,MAAAA,WACQjd,GAAAA,MAAAA,EAAAA,CAA2B,KAAW,uBAAA,UAAMid,CAC9C/M,GAER,EAAA,GAAA,EAEgBA,OAAAA,EAAAA,gBACd,CAGJ,IAAA2N,EAEA,KAAA,QACE,gCACkB3N,SAAAA,CAAAA,EAAAA,WAAQ6F,CAIR7F,MAAAA,gBAIAA,eAAAA,YAIlB,aAAA,KACF,YAAA,gBACG,OAELE,IAAAA,OAEE,SACA,KAAK2K,KAAU,GAAAyC,EACTkC,IAAAA,EAEJ,cACQ,MAAA/d,EAAE6a,UAAAA,GAAAA,CAAO,MACCtM,IAAAA,EAClB,OAAAtP,CACD,EAAA0D,EACDob,GAAAA,aAA+B,EAAApb,EAAA,SAAAA,EAAA,SAC5B,GAAA,CAEC6a,KAAAA,SAEAF,eAAAA,CACqB/O,EAAAA,EACrBiP,EAD8BtY,EAAA,MAAA,EAAA5B,CAAA,EACC,MAAA;AAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,EAEjCia,GAAAA,GACAA,kBAA8B,KAAAS,CAAA,EAAA,CAC9BV,KAAAA,CAAAA,EAAAA,GAAgCW,EAAAC,EAAAC,CAAA,EAAAH,EAAA,MAAA,2BAAA,GAAA,CAAA,EAChC,GAAAG,EAAA,CACFxb,EAAA,eAAA,EACI+a,KAAAA,CAAAA,CAAAA,EAAAA,EAAAA,MAAAA,KAAAA,GAAAA,GACAD,EAAAA,EAAAA,GAAAA,CAAAA,EAAAA,CAAAA,IAAAA,OAC6B;AAAA,EAAGC,EAAAA,GAAQ5V,CAAS,GAAAoW,CAAA,GACjC3P,EAAAA,aAClBzD,GAAAA,EAAoBxH,CAAA,EAClByH,MAAAA,EAAAA,EAAAA,GAAAA,OACG9L,EAAA,kBAAAmf,EAAAA,CAAA,CACP,MAAmD,MAAAA,EAAA9a,EAAA0a,EAAA,OACrC/e,EAAkB,aAAA,GAAAmf,EAAA9a,CAAA,CAAEoa,CAAOD,GAAAA,CAAAA,EAAiBC,EAAAA,cAAAA,IAAAA,MAAAA,OAAAA,CAAAA,CAAO,CAG7CnP,MAAAA,CAAAA,CAGhBgP,EAAA,UAEAI,EAAAA,QAA8BC,sBAIlC,EAAU,QAAAjb,GAAA,OAEN0b,KAAiB,CACnBP,OAAAA,CACD,EAAAnb,EACK3C,EAAWse,EAAAA,MAAgB,QAAA,UAAA,EAAA,EAC7B3C,EAAC3b,CAAAA,EAAMue,GAAAtf,CAAA,GACLqc,EAAAA,EAAAA,UAAAA,MAAAA,EAAAA,KAAAA,KACFA,EAAec,CAAA,EACLuB,IAAA,EACJ,MACKrC,CACZ,MAAA,OACH,OAAA,KAGF,EAESY,SAAAA,GAAAA,CACA,GAAAqB,EAAA,QAAA,CACC,KAAA,CAAyBjJ,UAAAA,CAE/B,EACQ3R,EAAA,OACS4a,EAAA,QAAA,UAAA7d,CACF,CACD,CAAA,CAAA,EACD2U,EAAA,MAAA,CACXmK,IAAIjB,EACJkB,MAAK,oBACLC,cAAK,MAAA,CAAA,CAAI,CACL7C,CACJD,CAAAA,CAAAA,EACK,SACE5b,GAAAA,CACPmW,cAAAA,EAAkB,IAEV,OAAAwI,CAAA,EAAE1e,CAAKhB,MAAO2f,EAAP3f,GAAAA,EAAAA,EAAW0D,uBACxBkc,EAAY9T,EAAe+T,EACrB,OAAAH,EACItK,EAAA,OAAA,CAAEnP,MAAAA,eAAO5B,OAAAA,EAAAA,CAAAA,EAET0a,EAAAA,OAAAA,CACN,MAAA,eAEM,MAAA,GAAAa,CAAA,IAAA9T,CAAuBiT,GAEnB,MAAA,CAEN,eAAcY,EAAA7T,EAAA,GACZpI,EACA,SAAA,CAAA0R,EAAA,QAAa,CACb,MAAA,GAAAwK,iBAA4BA,GAAmB,EAAA,SAAAA,GAAA,GAAA,UAAA,EAAA,GAC/C,MAAAD,EAA4B,IAAA7T,CACrBgU,CAAAA,EAAAA,EAAAA,OAAAA,CACDX,MAAAA,UACCY,SAAAA,CAA0B,CAAA,CAAA,CAG3BZ,CAAAA,CACCW,CAAoC,SAC7CE,GAAAC,EAAA,CACAX,MAAAA,EAAAA,CAAAA,QAAAA,KAAAA,KAAyB,KAAA,KAAA,KAAA,KAAA,KAAA,IAAA,EACzBtf,IAAAA,EAAAA,EACF,KAAAigB,GAAA,MACFA,GAAA,KAAAC,IAIF,MAAA,GAAAD,EAAA,QAAA,CAAA,EAAA,eAAA,CAAA,IAAAE,EAAAD,CAAA,CAAA,EAAA,CAEF,SAAAE,KAAwB9Q,EAASxF,EAAA8R,EAAA,CACXtM,MAAAA,EAAAA,KAAAA,KAAAA,GAA2B7O,EACjD4f,EAAA,KAAA,MAAAvW,EAAAwW,CAAA,EACFC,EAAA,KAAA,MAAA3E,EAAA0E,CAAA,EACA9G,MAAAA,CACQ,SAAA6G,EAAErgB,UAAAA,CAAAA,CAER,CACA0c,SAAAA,GAAY,CACZ4C,WAAAA,EACAzC,SAAAA,EACAwB,KAAAA,EAC4B,oBAAAhF,EAAA,IAAA,CAC9B,EAAA,SAAAmH,EACO,IAAA,CAAA,CACE,EAAA,CACC,KAAA,CAAApT,EAAAC,CAAA,EAAAC,EAAA,SAAA,EAEVmT,EAAAC,GAAA,iCAAA,EACAC,CACE,KAAAzK,EACQ,GAAA/E,EAAE1Q,KAAAA,CAAAA,EAAAA,EACR6d,EAAAA,GAAAA,IAAAA,MAAwC7d,gBAAAA,CAAAA,EAAAA,EAAAA,IAAAA,CAAAA,EAAAA,EAAAA,GAAAA,CAAAA,EAC1CmgB,EAAA,CAAA,EAAA3N,GAAA,MAAAA,EAAA,MACF4N,EAAAD,EAAAE,GAAA,EAAA,CAAA,EAEF1L,CAAA,iBACOkJ,CACLvI,eAAAA,EACA,iBAAAjI,EACA,eAAAG,GACW,iBAAAC,EAElB,oBAAAC,CAED,EAAA,CAAwB,CAAA,EAAkB0S,GAAA,CAAA,EAAKnB,CAAAA,EAAAA,CAAAA,EAAAA,EAAAA,IAAUkB,EAEjDjB,aAAuB1T,OAAAA,GAAAA,GAAAA,EAAAA,KAAAA,GAEjB,KAAA,iBACV,QAAO,CAAY,UAAAgH,EAAA,KAAqB,eAAAjF,CAAE,CAAA,EAG1CkI,EAAA,WAAA,OAAA,GAAAjI,IAAAgF,EAAA,KAAAhF,GACQ,CACE,KAAE2R,iBACH,QAAA,CACL,UAAA3M,OACF,eAAAhF,EAAEoH,CAEF,EAWOvJ,KAzBLiV,IAyBmB,EAET,CAAAC,EAAAC,CAAA,EAAA3T,EAAA,CAAA,CAAA,EAAAkC,GAAWoQ,IAAAA,CAAiB,CAAAgB,GAAA,CAAA9S,IAG9CkT,GAAA,YAAAA,EAAA,QAAAlT,GAEAoT,GACQf,KAAAA,mBACU,QAAA,aACMa,GAAA,YAAAA,EAAA,OACX,iBAAAlT,EACToS,MAAAA,GAAAA,YAAAA,EAAAA,MACF,OAAAc,GAAA,YAAAA,EAAA,MACQ,CACV,CAAA,CAME,EAAA,CAAAA,EAAsBG,EAAUC,CAAoB,CAAA,EACpD,KAAMf,CAAWc,EAAAA,CAAWrX,EAAqBwD,EAAA,CAAA,CAAA,EACjDkC,GAAkB2R,IAAAA,CACX,CAAAP,GAAA,CAAA1S,IAAYqS,GAAAA,YAAAA,EAAAA,QAAAA,GAAUW,EAAA,CAC/B,KAAA,mBAEA,QAAyB,CACvBjK,YAAAA,GAAAA,YAAAA,EAAAA,OACA0C,iBAAAA,EACA4C,MAAAA,GAAAA,YAAAA,EAAAA,8BAC4B,MAAC,CAAA,EAE5B,EAAA,CAAA8E,EAAAnT,EAAA0S,CAAA,CAAA,EACD,KAAM,CAACxT,EAAmBkU,MAAsBrK,EAAA,WAAA,EAC1CwJ,CAAAA,EAAAA,GAAwBvK,EAAiC,MAAA,GAAA,EACzDqL,EAAA5C,GAAAtF,EAAA,GAAA,EAAEnD,GAAAA,IAAAA,CAAM/E,EAAAA,CAAAA,CAAAA,EAAI8B,CAAAA,EAAAA,CAAAA,CAAAA,EAAK,KAAIgE,CAAAA,EAAAA,CAAAA,EAAAA,EAAAA,EAAAA,EACrB6C,GACJrL,EAAOwE,IAAAA,EAGThG,GAAY,IAAA,CAAEgK,IAAAA,EAAY,OAAAuK,GAAA9S,GAAA,UAEpBkS,EAAAA,WAAiB,IAAOjM,CACxBkM,GAAgBD,QAAAA,OAChB,EAAA,GAAA,GAEF5S,IAAAA,CACAF,aAAAA,CAAAA,CAAAA,CACAG,EACAC,CAAAA,CAAAA,CAAAA,EACAC,MAAAA,EAAAA,EAAAA,GAAAA,CACF,SAAKgD,GAAA,CAAAsP,EAAAvL,EAAA,MAAA,CACH2L,mBAEJ,SAAOY,CAAAA,EAAqB,OAAA,CACtB,MAACb,MAAsB,SAAA,UAC3B,CAAA,IACkB,IAAA,CAIT,MAAAnJ,EACLvB,SAAMe,EAAA,aAAA7B,EAAA,IAAA,CACG,SAAA,gBAAA,CAAA,CACST,CAChB3G,CAAAA,CAAAA,CACF,EAAAoH,EAAA,WAAA,CACF,IAAA1G,GACF,MAAA+I,GACkB,GAIT,KAAA8E,EAAA,YACC,CACNmF,MAAS,oBAAA,0BAEPzT,MAAAA,mBACF,EAAA0T,CAAA,EACF,eAAA,YACF,aAAA,KACO,YAAA,KACR,WAAA,OAED,IAAoBV,OACpBzR,SAAgBmK,GAAAvM,IAAA,UACV,oBAAmBU,UAAAA,GAAkB,UAAA,OACrCkT,QAAAA,IACU,KAAA,CACJ,MAAA/a,CAAA,EACGvC,EAAA,OAAA4d,GACMN,CAAaY,CAC1B9T,CAAAA,CAAAA,CACoBhE,CAAAA,EAEtB+X,GAAApT,EAAA,IAAA,EAAAe,GACD,IACH,IAAA,UACEwR,GAAAA,EAAAA,GAAalT,UAAbkT,YAAAA,EAAalT,YAAbkT,MAAAA,EAAAA,KAAAA,EAEJ,EACAxR,CAAAA,CAAAA,EACM,MAAAsS,KAAmB5T,IAAAA,EAAkB6T,EAAAC,GAAA,CACrCX,KAAAA,CACU,KAAAY,EAAA,QAAAP,CACJ,EACNA,EAAS,UAEPxT,IAAAA,iBAAAA,CAAAA,MAEA0N,UAAAA,EACF,eAAAsG,CACD,EAAAR,EACH,MAAA,wFAAA1B,GAAAmC,CAAA,CAAA,OAAAnC,GAAAkC,CAAA,CAAA,YACehU,CAEjB,IAAoBoT,mBAAAA,CACd,KAAac,CACbb,YAAAA,EAIN/R,iBAAgB6S,EACdd,MAAAA,GACeA,OAAAA,EAEVC,EAAAA,EACD9S,CACNc,SAAAA,GACM8S,UAAAA,EACAd,EAAAA,KAAkCa,EAAAvY,GAAA8R,EAAA,EACpC0G,0FAAyBxY,GAAA,eAAA,CAAA,IAAA8R,GAAA,eAAA,CAAA,SAAAyE,GAAA,eAAA,CAAA,IAAAE,GAAA,eAAA,CAAA,KACvB7R,CACF,IAAM,iBAAA,CACR,KAAA,CACA,UAAA6T,EACEC,eAAkBC,CACpB,EAAAf,EACEF,MAAS,wFAACxB,GAAAuC,CAAA,CAAA,OAAAvC,GAAAyC,CAAA,CAAA,YAERC,wBAEQjC,CACG,KAAA,CAAYpL,YACrBsN,EAAY,iBAAAC,EAAM,MAAA9Y,GAClBsL,OAAAA,EAAUqC,EAAAA,EACPR,CAA0B5B,SAAAA,GAAoB,UAAAkL,EAC7C,EAAAH,GAAAuC,EAAAC,EAAA9Y,GAAA8R,EAAA,EAGNxG,MAAA,oFAAAtL,GAAA,eAAA,CAAA,IAAA8R,GAAA,eAAA,CAAA,SAAAyE,GAAA,eAAA,CAAA,IAAAE,GAAA,eAAA,CAAA,KACO7R,CACLzI,0BACAsW,MAAAA,wDAEE,CACS,EACA,OACArH,EAAAoB,GAAA,CAAA,SACG,CAAApB,EAAA,MAAA,CAEd2N,MAAe,mBACfC,SAAa,CAAA1N,EAAA,MAAA,CACD,MAAA,gBACD,SAAA,IACP,QAAA,IAAA,CACJuE,KACA5D,EACU,SAAA4L,IAAA,QAAAvM,EAAA,MAAA,CAEVoE,IAAU9V,EACF,IAAA,GAAEuC,OAAAA,GAAAA,CAAUvC,GAAE1D,CAAAA,EACpBshB,OAEF,KAAA,CACS,aAAAyB,EAEb,cAAAC,CAGEnB,EAAAA,EAAAA,OACIZ,EAAM,CACD,OAAA8B,EAAAC,EACXnB,QACF,OAAAmB,CAAA,CACG,CAEClB,CAEN,CAAMC,EAAAA,IAAwB,SAAAJ,IAAA,OAAAvM,EAAA,QAAA,CACtB,IAAA0E,EAAA,SAAE5D,YAAAA,GAAMwL,MAAAA,GAAYM,wBAAAA,GAC1B,QAAY,4BACate,GAAA,CACf,GAAA,CAAAkd,EAAEuB,OAAWnU,KAAAA,CAAmB0T,WAAAA,EACtC,YAAAuB,CAEoC,EACtCvf,EAAA,OACyBwf,GAAAD,GACjBE,EAAA,CAAEnC,OAAAA,EAAAA,EAAalT,MAAAA,EAAkBhE,OAAAA,CAAAA,CAAO8R,CACxC,CAAEyE,CAAAA,EAAAA,IAAAA,QAAAA,EAAAA,QAAAA,CAAUE,IAAAA,EAAcH,SAAAA,EAMhC,CAAA,EAAA,IAA6M,CAC/M,EAAAsC,EAAAxN,EAAA,MAAA,OACuB,cACf,SAAA,CAAAE,EAAA,SAAA,CAAEmN,KAAAA,SAAWtU,MAAAA,qBAAmByT,SAAAA,EACtC,UAGF,SAAAtM,EAAAM,EAAA,CACyB,KAAA,GACjB,CAAA,CAAA,CAAA,EAAE2L,CAAAA,CAAAA,GAAAA,EAAAA,SAAAA,CAAanT,KAAAA,SAAkBpE,MAAAA,cAAO8R,MAAAA,EAAAA,CAAAA,EAAW8F,QAAAA,IAAAA,CACnDI,GAAA,SAAEzB,GAAAA,QAAAA,YAAwBD,GAAAA,QAE9BlS,GAAAA,CAIF,KAA2FpE,EAAAA,CAAAA,EAC7F,SAAA,GAAA,CAC4B,CAEnB,EACT,SAAAsL,EAAAM,EAAA,CACF,KAAA,OAAA,CACF,CAEA,CACER,EAAA,CAAAG,CAAAA,CACE,CAAA,EAAWmM,GAAApM,EAAAwF,GAAA,CAAkBvF,WAC3B,CACQ3R,EAAA,SAAAA,EAAA,eACG0f,EAAA,EAAA,CAEPA,EACF,SAAAlO,EAAA,MAAA,CAAEG,GAEDsM,cACC,MACO7H,kBAAAA,SACD,CAAA1E,EAAA,SAAA,CACJiO,KAAAA,SACE,MAAKzC,cAAe,QAAA,IAAA,CACdwC,EAAA,EAAA,CAAEL,EAAcC,SAAAA,EAAAA,EAAAA,CAAc,KAAMhjB,GAC3B,CAAA,CAAA,CAAA,EAAAoV,WACU4N,CAAAA,SAChBD,EAAAA,KAAAA,CAAAA,SACCC,CACT,MAAA,yBACH,MAAA,yBAEArB,MAAAA,2BAEW,CAAA,CACA,CAAA,CAAA,EACNzM,EAAA,OAAA,CACLoO,SAAuB,KACvBC,SAAQ,CAAAnO,EAAA,MAAA,CACRoO,MAAAA,gBACE,SAAK5C,IAAAA,QAAAA,EAAAA,MAAAA,CAAe,IAAA9G,EACd,IAAA,EAAA,CAAEoJ,EAAAA,IAAAA,SAAAA,IAAAA,OAAAA,EAAAA,QAAAA,CAAYD,IAAAA,cAAkBjjB,GACtC,WACiB,CAAA,EAAA2hB,IAAA,QAAAvM,EAAA,QAAA,CAAA,MACQ6N,SACdC,EAAAA,CAAAA,EACCD,IAAAA,CAAAA,EACV/N,EAAC,MAAA,CACH,MAAA,aACF,SAAA,CAAAwN,EAAAxN,EAAA,SAAA,CAEe,SAAA,CAAAyM,aACjB,0BAAA,KAAAS,CAAA,GAAA,CAAA,CAAApd,GAAA,SAAA,mBAAA,CAAA,CAAA0C,IAAAwN,EAAAuO,GAAA,CAAY3J,OAAAA,CAAa,OAAA,SAAA,IACvB,EAGN5E,eAAA,CAAW,MAAA,CACTE,OAAA,IACO,CACC,EACNuE,MAAAA,SACS6G,SAAAA,SAASnL,SAEb,OAAM,WAAAD,EAAA,SAAA,CAAK,KAAA,SAEfqM,MAAAA,OAEM,MAAA,QACC,SAAArM,EAAAM,EAAA,aAES,KAAA,cAEXoM,CAAAA,CAAgC,CAClC,EACAA,SAAcxS,MAAoB,CAChCvO,aAA2B,UACjB,QAAA,IAAA,CACXsM,EAAA,SAAA,EACHwU,GAAA,QAAAvG,GAAA,MAEK,yCAAM,SAAA,EAAA,CAAS,EAEvB,gBAAA,SACG,GAAA,CAGNlG,MAAMsO,EAAA,IAAA,SACYA,EAAA,OAAA,QAAAzQ,CAAA,EACGvP,MAAiBigB,EAAA,MAAA,MAAAjc,GAAA,CACd,OAAA,OACpB,KAAAgc,CAAA,CACF,EAAA,KAAA3G,GAAAA,EAAA,KAAA,CAAA,EAEA,GAAA4G,EAAA,MAAQ,MAAA,IAAA,MAAAA,EAAA,KAAA,EACNrC,GAAAqC,EAAA,WAAA,CACO,OAAAjgB,EAAA,CACC4X,GAAA,iCAAA5X,GAAA,MAAAA,EAAA,QAAA,KAAAA,EAAA,OAAA,GAAA,EAAA,EAAA,CAAA,QACS,CACb0f,EAAkB,SAAA,GACpB/d,GAAA7F,EAAAqiB,GAAA,UAAA,YAAAriB,EAAA,YAAA,MAAA6F,EAAA,KAAA7F,GAEK,GAAW,EAElB,SAAA,CAAA4V,EAAAM,EAAA,CACEN,KAAA,WAEI,CAAA,EAAAmH,GAAAA,IAAA,KAAArH,EAAA,QAAA,CACS,SAAA,CAAA,wBAAAE,EAAA,KAAA,CAAA,CAAA,EAAA,WAAA,CAAA,CACA,EAAAA,EAAA,OAAA,CACA,SAAA,uBAAA,CACG,CAAA,CAAA,CAEZ,EAAA,CAAA,CAAAmH,GAAAA,IAAA,MAAArH,EAAA0O,GAAA,CAEN,SAAAxW,IAAA,UAAe,QAAA,IAAA,GACb,SAAA,EAAWyU,GAAA,QAAAvG,GAAA,CACRqG,KAAAA,yCACW7H,SAAAA,EAAAA,CAAS,EACjB6H,yBACU7H,GAAAA,CAAgB,MAAA4J,EAAA,IAAA,SAASA,EAAA,OAAA,QAAAzQ,CAAA,EACpB,MAAAuE,EAAA,SACjB+E,CAAA,GAAYzC,EAAAA,MAAAA,MAAAA,GAAAA,EAAAA,CAAa,OAAA,OACvB,KAAA4J,CAAA,CAEN,EAAA,KAAA3G,IAAAA,GAAA,KAAA,CAAA,EAAW,GAAA4G,EAAA,MAETzO,MAAAA,IAAAA,MAAAA,EAAA,KAAA,EAMgBoM,GAAAqC,EAAA,WAAA,QACWD,EAAAA,CACnBpI,GAAA,iCAAA5X,GAAA,MAAAA,EAAA,QAAA,KAAAA,EAAA,OAAA,GAAA,EAAA,EAAA,CAAA,QACgB,CACP2J,EAAA,SAAA,GACGhI,GAAA7F,EAAAqiB,GAAA,UAAA,YAAAriB,EAAA,YAAA,MAAA6F,EAAA,KAAA7F,EACV,CAAA,GAEI,EACG,SAAA,CAAA4V,EAAAM,EAAA,CACA,KAAA,WAAA,CACTmO,EAAAA,EACEzO,QAAA,CAAa,SAAA,CAAA,wBAAAA,EAAA,KAAA,CAAA,CAAA,EAAA,IAAA0O,GAAAvH,CAAA,EAAA,IAAA,IAAAnH,EAAA,OAAA,CAAe,MAAA,qBAAa,SAAA,gBAAA,CAAOC,CAAAA,CACzC,CAAA,CAACC,CAAK,CAAA,CAAA,CAAY,CAAA,EAAAF,EAAQ,SAAA,CAAA,KAAQ,SAAC,MAClC,cACTC,QAAAA,IAEDH,CACEyE,EAAsB,EAAA,CAAA,EAEpBtM,SAAAA,IAAoB,UACpBwU,SAAAA,MAA6B,CAAA,CAAA,CACrB,CAAA,CAAA,CACI,CAAA,CAAA,CAGZ,CAAA,CAAA,CACM,CAAA,CACI6B,CAAAA,CAAAA,CACDK,CAAAA,CACCJ,CAAwC,SAAAK,GAAA,CAE5CN,KAAAA,EAAAA,KAAAA,EAEF,SAAA/J,EACQ,QAAAH,EAAA,IAAA,CACR,EACA8H,WAAAA,EAAmC,cAAAlT,EAEnCnB,cAAAA,EAEG,uBAAAqB,CAGH,EAAA,CAEAjB,KAAAA,CACAwU,QAAAA,EACF,UAAAzR,EAAA,SAAAsJ,CAEJ,EAAAxK,EAAEmG,OAAAA,EAAAA,MAAAA,CAEG,MAAA,QAAAqE,EAAM,WAAA,EAAA,GAAA,SAAA,CAAAtE,EACVmH,MAAAA,CACClH,MAAAA,eAIA,SAAAlF,EAEAiF,IAAA,CAAAwB,EAAA5D,IAAAkC,EAAA,MAAA,CAAA,MAAA,cAAM,SAAqB,CAAME,EAClC,QAAA,CAAA,SAEF,GACU,KAAA,OACe,MAAAwB,EAEpBvJ,SAAAA,EACAwU,UAAAA,EAA6B,YACrB,UAAA7O,EAAA,CAAA,GAAA,KAAAuJ,EACI,WACX,OAED,IAAA,OACM,QAAA7Y,GAAA,CACIggB,KAAAA,CACDK,MAAAA,CACCvM,EAAAA,EAAAA,OACNrH,EAAA6C,CAAA,EAAA/M,EAEEuT,EAAAtK,CAAA,CAEEwU,CAAAA,CAAAA,EAAAA,EAAAA,SAEFpQ,CACF,KAAA,SACQ,MAAA,qBACR,SAAAqG,GAAAxJ,EAAA,QAAA,EACAmR,QAAAA,IAAAA,CAAmCnR,EAAA,SAC5BzM,CAAG,EACVuJ,EAAAA,CAAAA,CAEG,EAGH,SAAAmI,EACQM,EAAA,CACRrI,KAAAA,IACAwU,KAAAA,GAA8B,CAChC,CAAA,CAAA,CAAA,CAEJ,EAAA7O,CAAA,CAAA,CAAA,CAAEqC,EAAAA,EAAAA,MAAAA,CAEG,MAAA,eAAiB,SAAA,CAAAD,EACtBF,SAAA,CAAA,KAAA,SAGE,MAAA,qBAAY,SAAAyE,GAAqBxJ,EAAA,QAAA9B,EAAA,QAAA,IAE1B,CAAA8B,EAAA,KACD,EAAA,EAAAqJ,EAEXtK,CAAA,CAAA,EAGP,SACO,GAAA,CAAA,EAAA,IAAAgG,EACC,QAAA,CAAA,MAAA,mBAEJkO,SAAAA,CAAAA,EAAAA,QAAkB,CACpB,KAAA,WAAA,UACsB,SAAAzJ,EACvB,SAEQjW,GAAA,CAAA,KACF,CACL,QAAA6V,CAAA,EACD7V,EAAA,OACJwL,EAAA,SAAAqK,EAERC,EAAAtK,CAAA,CACD,CAEN,CAAA,EAAA,IAAA,kBAAA,CAEA,CAAA,EAAcgG,EAAA,QAAA,CACZqH,MAAAA,aACArN,SAAAA,CAAAA,WAAAA,IAAAA,EAAAA,SAAAA,CACAyK,MAAAA,aACiB,SAAAjW,GAAA,CACjB2K,KAAAA,CACAD,MAAAA,CAAAA,EACAG,EAAAA,OACAD,EAAAA,UAAAA,EACCkL,EAAAtK,CAAA,CACK,EAAEiB,SAAAA,OAAAA,QAAAA,EAAAA,EAAAA,OAAAA,CAAAA,CAAAA,EAAAA,CAAAA,IAASC,GAAAA,GAAAA,GAAAA,CAAWsJ,EAAAA,IAAAA,CAAAA,CAAAA,EAAAA,CAAAA,IAAAA,EAAAA,SAAAA,CAAaxK,MAAAA,WAGvC+U,CAAa,EAAAhe,CAAA,CAAOyT,CAA2B,CAAErE,CAAAA,CAC/C,CAAW,CAAA,CAAA,CAAA,UACAzK,CACP,MAAW,eAAayK,SAAAA,EACtBD,SAAA,CAAA,KACU,SAAA,MACH,2BAAA,SAAAuE,EAELA,QAAAA,IAAAA,CACAuK,EAAW5V,IAAAA,CACX6V,EACA5H,SAAAA,aAAAA,CAAAA,CACW,CAAA,CAAA,CACP,CACJ/C,CACQ,CAcH,SAAA+D,GAAM6G,EAAA,CAAA,OAAAA,EAAS,QAAA,WAAA,SAAAC,EAAA,CAAA,MAAK,KAAAA,EAAA,WAAA,CAAA,EAAA,GAAA,CAAA,CAClB,CAEZ,SAEHnP,GAAAoP,EAAA,CAAA,QAAWtjB,KAAAsjB,GAAcjP,EAAAA,CAAAA,IACvBD,MAAAkP,EAAAtjB,CAAA,IAAA,SAAA,OACOsjB,EAAAtjB,CAAA,EAEmCqN,QAEtC8B,CACAqJ,SAAAA,GAAY,CACd,QAAA7M,EAAA,IAAA,CAAA,EACD,SAAAsO,EAGD/F,IAAAA,CAAA,EAA+BG,kBAAAA,CAC7B,EAAA,CACO,KAAA,CAELsE,MAAAA,CACA1B,EAAAA,GAAAA,EACQ,CAAA7K,EAAAC,CAAA,EAAAC,EAAA,SAAA,EAAEiM,CAAAA,EAAAA,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,EAAAA,CAAAA,EAAcvZ,CAAAA,EAAAA,EAAAA,CAAAA,CAAAA,EACtBkP,CAAAA,EAAgBqK,CAAAA,EAAAA,EAAAA,CAAAA,EAChBC,EAAY,MAAA+K,GAAA,CACd,GAAA,EAAAA,GAAA,MAAAA,EAAA,QAAE,OAGN,MACArP,EAAA,MAAAsP,GAAAD,EAAAE,CAAA,EAAO1O,GAAM2O,EACF,CACT,GACStU,EACPuJ,GAAAA,CAAAA,CACA1B,CACQ,EAAEhS,EAAYjG,GAAAA,CACpBkP,IAEF7B,EAAA,SAAA,GAAEgI,SAAAA,CAISpP,GAAAA,CACT,MACKse,EAASte,MACZmP,EAAAA,GAAAA,SAAA,OAAA,KAAA,CAAQnP,EAAAA,EAAAA,MACLge,GAAK,QAET,EAAA,CACG,EACFU,EAAAJ,CAAA,EAEVnP,EAAAmP,CAAA,EAAWlX,EAAA,SAAA,CAAcgI,OAErBa,EAAK,OAAA,CAAA,CACC,KACNyD,EAEEH,EAAYmF,GAAAiG,EAAA,GAAA,EACdpV,GAAA,IAAA,CAAAoV,GACD,EAAA,CAEDA,CAAQ,CAAA,EAAA,MACJC,EAAApW,IAAAe,GACH,IAAA,CAETqV,EAAA,UAESC,EAAAA,QAAAA,QACPC,UAAoC,QAGpCF,EACG/O,QAASkP,eAAMH,EAAA,QAAA,MAAA,OACVI,EAASC,QAAE7H,aAAsBwH,EAAA,QAAA,MAAA,QAIjCM,EAAAA,CAAAA,CAAAA,EACAC,GAAAA,IAAAA,CACAC,GACJT,GAAmCO,CAGnC,EAAA,CAAAhM,IAaF,MACOmM,GAAI1S,GAAA,CACf,MAAAsH,EAAAtH,EAAA,KAEAqI,GAAyB,EACvBtO,GACE,EACF8E,GAAC,QAAA,IAAA,CACH,MAAA8T,EAAAC,EAAAC,CAAA,EAEAF,GACED,GAAqBC,CAAA,CAEjB,EAAA,CACF,eAAA,GACF,iBAAA,CAAA,OAAA,CACOjB,CAAAA,EACT,MAAAoB,EAAAjX,IAEA,OAAAgD,GAAsB,OAAA,IAAA,GACJ+T,EAAA,OAAA,EAACG,EAAAF,EAAA,CAAA,EACCE,EAAA,CAAA,EAEjB,WAAA,IAAA,CACK,MAAAC,EAAAF,EAAA,QAAA,cAAA,WAAA,EAAExY,GAAc0Y,EAAA,eAAA,CACfxY,SAAmB,SACTuX,MAAAA,SACQD,OAAAA,QAEzB,CAAOe,CAGL,EAAA,CAAI,CAAmB,EAAA,CACvB,eAAsB,GACtB,iBAAmB,CAAA,OAAA,CACG,CAAA,EAAAhU,GACfgT,KAAAA,IAAAA,CACHgB,EAAGI,EACLF,EAACF,EAAA,CAAA,EAELE,EAAAH,EAAA,OAAA,CAAA,EAGE,WAAKM,IAAAA,CAAM,MAAAF,EAAAF,EAAA,QAAA,cAAA,WAAA,EACXrY,GACauY,EAAA,eAAA,CACP,SAAA,SACF,eACEhN,OAAGkN,QAAAA,CAAAA,CAEM,EAAA,CACX,CACAnB,EAAAA,CACAoB,eAAAA,GACA1Y,iBAAoB,CAAA,OAAA,CAAA,CAAA,EAEpBA,EAAAA,MAAkB,CAClBJ,GAAAA,gBACF,MAAA,QACF,SAAG,CAAA,CAAA,CAAAN,GAAAyI,EAAA,SAAA,CACL,KAAA,SAEM4Q,MAAAA,cAENxW,QAAgB7C,EACD,SAAAyI,EAAAM,EAAA,CACXkP,KAAAA,GAEJ,CAAA,CACApV,CAAAA,EAAAA,EAAgB,SAAA,CACd,WAAsB,OAAA,CACpBqV,YAAuB,OAEnBA,EAAAA,kBACFA,EAAAA,EAAiBxgB,QAAjBwgB,MAAAA,EAAAA,KAAAA,EACAA,EACF,SAAAzP,EAAA,QAAA,CACF,IAAAyP,EACG,SAAA,GAELrV,KAAgB,SACS,MAAA,QACrBoV,YAA8B,kBAChC,QAAAlhB,GAAA,CACEyV,KAAAA,CAEEmM,MAAAA,CACJ,WACArK,EAAsBhV,CAAA,CACd,EACV,aAAA,MAEAwL,YAEQ,MACE8T,eAAAA,MACe,WAAA,QACnBD,IAAAA,OACF,aAAAnM,GAAA,EAAA,CAEF,CAAA,CACkB,CAAA,CAChB8M,EAAAA,EAAAA,OAAAA,CAEJ,UAAAT,GAAA,YAAAA,EAAA,QAAA,EAAApQ,EAAA,KAAA,CAEMsQ,MACNjU,uBAEQrE,IAAA,UAAA,UAAA,EAAA,GACAqY,SAAAA,EAAyBne,IAAAA,CAAAA,EAAAA,IAAY,CACvCqe,MAAAA,IAAkC/S,EAAA,EAAA,EAC7B,OAAAsC,EAAA,KAAA,CACLyQ,MAAAA,IAAkBF,EAAA,WAAA,GACpB,SAAA,CAAArQ,EAAA8Q,GAAA,CACA7W,WAAiB,MACMqW,QAAAA,EACH,aAAAS,EAChBP,UAA4B,GAChB,aAAA,EAAA,CACH,EAAAxQ,EAAA,SAAA,CACC,KAAA,SACT,MAAA,SACH,QAAA,IAAA,CACEkQ,GAAA1S,CAAA,CAEN,EACkB,SAAAwC,EAAAM,EAAA,CAChBuQ,KAAkB,OAEtB,KAAA,IAEAxU,EAGI,GACEkU,EAAAA,EAAAA,EAAiBF,CAAiB,CAC7B,CACYD,CAAAA,EAAAA,IAAAA,kBAAmB,CACtC,MAAA,WACAnW,SAAiB+F,EAAA2E,GAAA,CACf,OAAqB2L,EACrB,CAAA,CACEE,CAAAA,EAAAA,IAA4B,QAAAxQ,EAAA,MAAA,CAAA,MAChB,WAAA,SACHA,EAAA,IAAA,CACPgR,SAAQ,wBAAA,CACT,CACH,CAAA,EAAA,IAAA,GACE,CAEN,CAAA,CACkB,SAChBH,GAA0B,CAC5B,MAAA/Y,EAGF,SAAAC,EACE,QAAAR,EAAQ,IAAA,CAAA,EAAsB,SAAAsO,MACzBtO,CACD,EAAa,kBAAAwM,CAAe,EAAA,CAA+B9D,KAAAA,CAAAA,GACpD,EAAA/H,EAAA,SAAA,EAACgI,EAAK7G,EAAA,CAAA,CAAA,EAAK,CAAA4X,EAAAC,CAAA,EAAAhZ,EAAA,CAAA,CAAA,EAGpB8H,EAAAf,GAAA,IAAA1F,GAAA,QAAA,IAAA,0BAAA,GAAA,CAAA,CAAA,EAAA0G,EACE5G,IACE8X,GAAAA,IAAW7iB,CACTA,EAAiB,SAAA,GACjBsiB,SAAAA,CAGF,GAAA,CAAE3Q,KAAAA,CAAAA,EAEFwG,CAAA,EAAA,MAAAG,GAAA7O,EAAAD,CAAA,EAAA4P,EACO+H,QAAAA,EAAAA,EACG7H,CAAA,EAAA3P,EACH,SAAA,CAAA,MACC,CAAAA,EACM,OAAA,CACZmM,CACQ,IAAEvT,EAAAA,CAAAA,CAAAA,EAAAA,MAAAA,EAAYjG,GAAAA,IAAAA,CACpBgmB,MAAAA,EAAAA,CACF,aAAAQ,EAAA,OAAApJ,GAAAiJ,EAAA,KAAA3iB,GAAAA,EAAA,YAAA0Z,EAAA,SAAA,CAAA,CAAA,EAEAqJ,EAAY,CAAA,EAAA,OAAAJ,EACG,QAAAjJ,GAAA,SACJ,IADI/X,GAAA7F,EAAAknB,EACJ,UADI,YAAAlnB,EACJ,OADI,MAAA6F,EAAA,KAAA7F,EACJ4d,GACXmC,CAAInC,EAAA,SAAA,CAAAuJ,QAC+B,EAAG,MAEpC,CAERvR,EAAAgI,EAAA,QAAA,IACGoI,EAAAA,EAAAA,QAAmB,EAAA,IAEXE,EACGtI,EAAA,QAAA,EAAgBhQ,KAAYgQ,CAAA,CAA2B,CAAA,EAGvD+I,EAAAA,SACNS,EAAA,YACE,EAAAD,GAE+CtR,CAEhC,EAAA,CAAAgR,CACA,CAAA,EACXzT,EAAAA,IACAuT,CAAAA,EAAAA,CAAAA,EAAAA,EAAAA,IAAAA,EAAAA,GACSU,GAAAnjB,GAAA,WAAA,KAAA,CACG,MAAAuC,CAEd,EAAAvC,EAAA,OACO,GAAAuC,EACC,CAAA,MAAAqR,OACS,wBAAA,OAAArR,EAAA,CACbqf,MAAAA,EAAqB,GACrBjQ,EAAAA,MAEG0H,GAAAA,EAAA,IAAA,CAAA,GAAA+J,GAAAzhB,EAAA0hB,EAAM,UAAN,YAAA1hB,EAAM,WAAN,MAAAyhB,EAAA,KAAAzhB,EAAM,EAAA,EAAA,MAAY2hB,EAAM,IAAA,CACtB,EAAA,CAAAX,IACP7W,GAEP,IAAA,CACC2J,IACUkN,GAAA,MAAAA,EACd,SAAAY,GAAW,CAAU5R,OAAAA,CACX+E,MAAMjB,CAAE,CAAA,CACb,CAEgB9D,EAAAA,CAAAA,EACnB4R,GAAAZ,CAAA,CAAA,EAAA,MAAAa,EAAGL,GAAAzJ,GAAA,CAAAnC,GAAA,MAAAA,EAAyBmC,GAAAzQ,GAAA,MAAAA,IAExB,eACH,IAAA,CACJ,IAAAwa,EAAAxY,GAAA,QAAA,IAAA,0BAAA,GAAA,GAET,MAAAyY,EAAAD,EAAA,UAAAzjB,GAAAA,EAAA,YAAA0Z,EAAA,SAAA,EAE2BgK,IAAA,IACzBla,EAAAA,OAAAA,EAAAA,CAAAA,EACAC,EAAAA,QAAAA,CAAAA,IACiBga,EAAA,QAAA/J,CAAA,IACA+J,EAAA,OAAAzjB,GAAA,SAAA,OAAA2B,GAAA7F,EAAAknB,EAAA,UAAA,YAAAlnB,EAAA,OAAA,YAAA6F,EAAA,KAAA7F,EAAA6nB,GAAAA,EAAA,YAAA3jB,EAAA,WAAA,EAACyjB,EAAAA,EAAA,MAAA,EAAA,EAAA,GAEjBxY,GAAA,QAAA,IAAA,2BAAAwY,CAAA,CACD,CAAA,CACMT,EAAAA,CAAAA,CAAAA,CAAAA,EACA7B,EAAeyB,IACfE,OAAAA,GAAAA,IAAAA,CAGA1J,YACNtN,EAAgB,QAAA,QACdnC,EAAoB,QAAA,QACPwX,EAAA,QAAA,eAAAA,EAAA,QAAA,MAAA,OACPA,EAAA,QAAA,aAAAA,EAAA,QAAA,MAAA,QAGF/H,EAAAA,CAAAA,CAAAA,EACAwJ,EAAAA,MAAAA,CACAjZ,GAAAA,sBAAoB,cAEpBA,SAAAA,CAAAA,CAAAA,CAAAA,GAAkB+H,EAAA,SAAA,CAClBnI,KAAAA,SACF,MAAA,cACC,QAAAN,WACAyI,EAAAM,EAAA,CAEC4R,KAAAA,GAEJ,CAAA,CAAkB,CAAA,EACFd,EAAAA,SAAAA,CAGhB,SAAA,CAAAtR,EAAA,MAAA,CACA,YAAoB,IAAA,CACPxL,SAAAA,eACM4F,CAAAA,EAAAA,IAAAA,IAAAA,UAAqB8F,EAAA2E,GAAA,CAAA,CAAA,EAAA7E,EAAA,QAAA,CAClC,MAAOqS,gBACTZ,gBAAoBxZ,CAAA,CACpB,CAAA,CAAA,CAAA,CACF,EAAAiI,EAAA,OAAA,CACA,SAAKwR,GAAgBW,CACTnK,EAAAA,eAAc,EAC1B,MAAAA,EAAAoK,EAAA,CAAA,EACAZ,GACDM,EAAA,IAAA9J,EAAA,SAAA,GAAA,CAECwJ,EACF,SAAAxR,EAAA,QAAA,CACOwR,IAAAA,EACLP,KAAAA,oCAGGmB,QAAmBP,GACpBA,aACHvjB,MACO,YAAA,MAAEuC,eAAAA,MAAYjG,WAAAA,QACT,IAAA,OACT,aAAgB8c,GAAqBhE,EAAc,CAC1CrM,CAAAA,CACR,CAAA,CACDua,CAAAA,EAAAA,EAAAA,QACc1X,IAAAA,EACT,SAAAkY,IAAA,KAAApS,EAAA,KAAA,CACL4R,MAAAA,2CACF,SAAAQ,EAAA,IAAApK,GAAAhI,EAAA,KAAA,CAEDiR,MAAAA,sBAEH7W,SAAgB4F,EAAAqS,GAAA,CACVtO,MAAAA,EACK,QAAA,IAAA,CAAU+N,EAAA,IAAA9J,EAAA,SAAA,GAAA,CAASjE,EAAkB,SAAA,EAAA,CAAG,CAAA,EACjDiE,EAAA,SAAA,CAAA,CAAA,CACqB6J,EAAAA,EAAAA,MAAAA,CAEjBC,MAAAA,qBAEFjM,SAAgB,CAAA7N,IAAA,SAAAgI,EAAA,MAAA,CACN,MAAA,WAEVsS,SAAqBtS,EAAA,IAAA,uCAGnB,CAAMgS,CAGN,CAAA,iBAA+B,OAAI,QAAAE,CAAA,EAAA,IAAA,CAAA,CAAAC,EAAAvK,CAAA,IAAA,CAAA,EAAAA,GAAA,MAAAA,EAAA,SAAA9H,EAAAoB,GAAA,CAERqR,SAAAA,CAAAA,EAAAA,MAAAA,CACzBnB,MAAAA,iBACK,SAAA,CACLA,aAAAA,gBAEAA,aAAAA,QAMAA,EAA2BA,CAAAA,GAAAA,CAAoC,CACjE,EAAApR,EAAAwS,GAAA,CAGMhV,OAAAA,EACP,SAAAsU,CAAA,CAEFjM,CAAAA,KAIHzL,CAAAA,CACE,CAAA,CAAA,CACEqV,CAAAA,CAEIA,CACFA,MAAAA,GAAiBxgB,GAAAA,CAAAA,CACjBwgB,OAAAA,EACF,SAAA5J,CAAA,IACF,CACF,KAAK,CAAAzG,EAAAqT,CAAA,EAAAva,EAAAb,EAAA,EAELqb,EACE9K,EAAA,OAAAxI,EAAA,OAAQU,EAAA,UAAA,CAAsBa,SAAM,CAAAiH,EAAA,MAAA,EAAAxI,CAAA,EAAA,IAAA4I,GAAAhI,EAAAqS,GAAA,SAExBvR,QAAK,IAAA,CAAe+E,EAAA,IAAAmC,EAAA,SAAA,GAAA,CAAuBzQ,CAAAA,EAAQ0I,EAAAA,SACpD,CAAA,EAAAyS,GAAA5S,EAAA,SAAA,CAAA,KAAM,SAAG,MAAE,cAGpBA,QAAA,IAAA2S,EAAArT,EAAA/H,EAAA,EAAA4I,WACEH,EAAA,OAAAV,GAAA,eAAA,EAAA,QAAA,CAAA,CAAAa,CAAAA,CACE,CAAA,CAAG,CAAa,EAIdoS,GAAaM,GAAA,CAAA,CAAe1S,MAAAA,EAAa,QAAAc,EAC1C,SAAA6R,CAEH,IACEzB,CACE7iB,MAAAA,EAAiBA,GAAA,CAEjB,MAAAukB,EAAWvkB,EAAA,cAAA,QAAA,MAAA,EACM,GAAAukB,EAAA,CACjB,MAAAC,EAAAD,EAAA,wBACFE,EAAAzkB,EAAA,cAAA,sBAAA,EAAE2R,EAEF3R,EAAA,cAAA,UACEiZ,EAAKkI,KAAAA,EAAAA,KAAAA,IAAAA,EACA,IAAA,WAAA,EAAAuD,EACO,OAAA,YAAA,GACHnB,EAAAA,MAAAA,EAAAA,MAAAA,IAAAA,EACI,IAAA,YAAA,EAAAmB,EACD,OAAA,WAAA,GACGA,EACJ,OAAA,YAAA,YAAA,CACP,CAC+B,EACpC,OACIlT,EAAA,SAAA,CAAA,KAETE,SAAA,UAAW2R,SAAAA,QAAAA,EAEP,aAAUiB,EAAA,OAAA5K,EAAA,UAAA,eACCxS,EACP,QAAgCyd,EAAqBhT,SAAAA,CAAAA,YACjC,CAChB+H,SAAAA,CAAAA,CAAAA,CAAAA,EAAAA,WAAAA,EAAAA,SAAAA,CAAAA,SACe,UACE,MAAA,kCAAqB,CACtC,EAAAhI,EAAA,MAAA,CAAA,UACQ,kBAAA,IACTgI,EAAA,KAAAA,EAAA,UAAC,IAPWC,EAAAA,UAYnBnI,MAAAA,KAAKa,OAAM,KAAoBV,QAC5BjI,OACC,SAAW,OAAA,CAAUiI,CAAAA,CACnB,CAAA,EAAA2S,GAAG9S,EAAAoB,GAAA,CAAA,SAA8B,CAAA,IAAAlB,EAAA,OAAA,CAAC,SAGrChI,EAAY,SAIL,CAAAiI,CAAAA,CACE,CAAA,CAAA,CAAW,CAAA,CACR,CAAA,EACeiT,GACA,GAAA,SAChBpN,GAAeqM,CAAQ,QAAA5a,EAEzByI,IAAAA,CACE4H,EAAAA,SAAAA,EACUkK,IAAAA,CAAAA,CACV,EAAA,kBAGT,KACA,CAAA9Z,EAAAC,CAAA,EAAAC,EAAA,SAAA,EAEF,CAAAgK,EAAAiR,CAAA,EAAAjb,EAAA,CAAA,CAAA,EACJkJ,EAAA/H,EAAA,IAAA,EAET+Z,EAAA/Z,EAAA,IAAA,EAEMmZ,EAAAA,EAAyB,CAAA,EAAE5K,EAAAA,EAAAA,IAAAA,EAAQ/B,SAAAA,EAAAA,CAAe,OAAA1W,CACtD,EAAA,YACMujB,EAAAA,EAAAA,UAAAA,MAAAA,UAEJzS,EACG2H,SAAa,GAGVI,GAAAA,EAAAA,EAAAA,UAAAA,YAAAA,EAAAA,WAAAA,MAAAA,EAAAA,KAAAA,EAAAA,CACAjH,MACY,KAAA,EACZ,SAAA,QAAA,IAIF,SACO,OACLJ,GAAM,CACGI,MAAAA,EAAa3B,SAEpBwI,GAEL,EAAAwL,EAAA,QAAA,MACM,OAAA,IAEZ,MAAAF,GAEKb,OAAAA,sBAA4BrK,OAAAA,CAAAA,EAAgB4K,EAAAA,MAAAA,MAAAA,wCAAAA,IAAAA,gBAAAA,CAAAA,EAAAA,CAAe,eAAA,aAC/D,CAAMK,EAAAA,KAAAA,GAAkBtL,EAAA,KAAA,CAAA,EAGtB0L,EAAe,UAAAjpB,EAAAmkB,EAAA,aAAA,YAAAnkB,EAAA,SAAA,EACf+oB,EAAe7kB,CAAgBglB,EAC3BT,EAAQ,SAAA,CACJC,MAAAA,CACAC,EAAAA,OAAa5M,CACb6M,CACN,KACEA,CACAA,GAAAA,IAAAA,QAAmC5oB,EAAAgpB,EAC1BL,UAD0B,MAAA3oB,EAC1B2oB,OACTC,EAAAA,CAAAA,CAAAA,EACAA,MAAAA,KAAkC,IAAA,CAAAO,EAC7B,CACWC,OAAAA,CAAgC,CAClD,CACF,EAAA,GAAA,EACF,OAAA1T,EAAA,MAAA,CAEA,GAAA,mBAEIgB,MAAK,QACL7M,SAAU,CAAA,CAAA,CAAAsD,GAAAyI,EAAA,SAAA,CACVe,KAAAA,SACA,MAAA,cACgBkS,QAAAA,EACPA,SAAAA,EAAAA,EAAAA,CAAShT,QAElB,EAEI,CAAA,EACEwT,WAAcC,CAAAA,SACR5T,EAAA,OAAA,CAGVE,IAAAA,EACE/L,SAAU3F,GAAA,CACVqlB,EAAAA,eAAkB3L,IACPC,CACL,OAAA,CAAA,CACC,CACC,EACR2L,SAAS,CAAA5T,EAAA,QAAA,CACT,IAAAoT,EAGFtT,KAAAA,SAAA,KAAA,gBAEemI,cAAiB,SAAA,GAEjC,aAAA,MACK,YAAA,MAEX,eAAA,MAEqB,WAAA,QACE,IAAA,eAAkB4L,CAAA,CAAC,EAAA7T,EAAA,QAAA,MAAoB,QAAC,MAAA,iBAAK,IAAA5N,GAC5D4F,MAAAA,KACSmb,OAAAA,IACV/R,CAAAA,CAAAA,CACAgS,CAAAA,CACAC,CAAAA,EAAAA,EAAAA,OAAAA,CACA1B,IAAAA,EAEN,MAAmB3Z,IAAA,UAAA,UAAA,GAAE7I,SAAAA,CAAAA,IAAAA,WAAAA,EAAAA,MAAAA,CAAU,MAAA,WAC7B0I,SAAyBmI,EAAA,IAAA,CAAE7Q,MAAAA,gBAAQ,SAAA,qBAC/B,CAACikB,CAAqB,CAAA,EAAApb,IAAA,WAAA,GAAA5N,EAAA8X,GAAA,YAAAA,EAAA,OAAA,MAAA9X,EAAA,SAAA4V,EAAA,MAAA,CAC1B/H,MAAW,WACX0Z,SAAczX,KAAoB,CAC3B,OAAA,EAAA,CACC,CAAA,CACI,IAAAjK,EAAAiS,GAAA,YAAAA,EAAA,OAAA,YAAAjS,EAAA,QAAA,EAAA6P,EAAAoB,GAAA,CACX,SAAA,CAAAlB,EAAA,KAAA,CACY,SAAAkC,EAAA,KAAA,IAAA4R,GAAA,CACP,KAAA,CACIpoB,GAAAA,EACK8G,OAAAA,UAED,SAAAuT,CACDmN,EAAAA,EACC,CACR/jB,mBAAAA,EACF,yBAAA4kB,EACMxF,aAAAA,EAGc,SAAAyF,EAElB9V,EAAMyJ,EACMzN,EAAAA,GAAAA,MAAAA,EAAmB+Z,IAAsBC,EAAAH,GAAA,MAAAA,EAAA,IAAAA,EAAAI,EACvDhB,GAAAA,CACAlb,IAAAA,SAEAA,MAAAA,EACAJ,OAAAA,CACF,EAAAuc,EACC,CAAA5N,EAAA,MACL9R,EAAAA,EAAA8R,EAAA,IAEgBA,EAAA,KAEX,MAAA6N,GAAA,IAAA,IAAA3P,CAAA,EAECmP,YAAwCQ,GAAM,SACxC,IAAAC,GAAU,GAAAC,EAAA,CAAG,MAAAC,GAAA,IAAA,IAAAD,CAAA,EAClBD,GAAAE,GAAA,OAAAA,GAAA,SAGG,OAAAxU,EAAA,KAAA,CAAyB,SAAAA,EAAA,SAAA,CAC7B,KAACzI,SACY,QAAA,IAAA,CAAe,KAAA,CAAuBA,IAAAA,OAC5Ckd,CAAM,EAAAT,GAAKU,EAAAC,IAAAF,EAGpBG,EAAA,IAAA,IAAAF,CAAA,EACEG,EAAAD,EAAA,OAAAA,EAAA,SACOxT,IACM9S,EAAM,CACE,IAAAumB,EACP,KAAAF,GAAA,YAAA,YAAU,SAAA5O,GAAA/C,CAAA,CAAG,CACzB,EAAE/C,SAEFH,EAAA,SAAA,CACOsT,MAAAA,CACA,iBAAA1e,EAAA,IAEO,EACJ,SAAA,CAAAoL,EAAA,UAAA,CACK,SAAA,CAAAwU,IAAAtU,EAAA,SAAA,CACD,OAAAsU,GACG,KAAA,YAAA,CACJ,EAAAtU,EAAA,MAAA,CACP,IAAA8U,EACKjB,MAAAA,EAEX,OAAArN,EACO,QAAA,OACC,SAAA,QACDpU,IAAAA,EACC,eAAA,cACC,OAAA9D,IAAA,CACPA,GAAA,OAAA,MAAA,gBAAA,aACE,CAAA,CAER,CAAA,CAAA,CAAWqjB,EAAAA,EAAAA,aAAAA,CAAkC,SAAA5L,GAAwB/C,CAAA,CACtD,CAAA,CACX,CAAW,CAAA,CAAU/C,CACV,EAAAlE,CAAA,CAAA,CAAgB,CAAA,CAAsB,EAAA+D,EAAA,IAAA,CAGlD9H,MAAY,aACA,SAAA,GAAA0Z,EAAAxP,EAAA,aAAA,YAAAwP,EAAA,QAAA,GAAA5R,EAAA,SAAA,CAAUG,KACnBD,SAAc,MAAA,cAAE,SAAAhI,IAAA,UAGnBkK,YAAwB,OACvBjC,EACE,CACGiC,SAAAA,EAAAA,EAAa1M,aAAb0M,YAAAA,EAA0B,QAAAgR,EACnB,CAAA,CAAEnX,EAAIgZ,SAAAA,CAAAA,EAAAA,EAAAA,CAAQ/R,KAAAA,cAAAA,CAAO+C,EAAAA,EAAAA,OAAAA,CAAa+N,SAAAA,UAClC,CAAA,CAAA,CAAA,CACJI,EAAAA,EAAAA,OAAAA,CAAAA,CAAAA,IAAAA,EAAAA,EAAAA,aAAAA,YAAAA,EAAAA,UAAAA,GAAAA,EAAAA,aAAAA,YAAAA,GAAAA,SAAAA,EAAAA,EAAAA,aAAAA,YAAAA,EAAAA,cAAAA,EAAAA,SAAAA,CACAH,KAAAA,SACAI,MAAAA,cACAH,SAAAA,IAAAA,UACF,QAAIe,IAAAA,OACJxB,GAKI,SAAAnpB,EAAA8X,EAAA,aAAA,YAAA9X,EAAA,QAAA8oB,EAAA,CAAExO,CAAK6P,EAAM7f,SAAAA,CAAAA,EAAAA,OAAAA,CAAO8R,SAAAA,MAAAA,CAAW4N,EAAAA,IAAAA,EAAAA,EAAAA,CAC/B,oBACF1f,CAAAA,CAAAA,CACS,CAAA,CAAA,CAAA,CACX,CAAA,CACM2f,CAAAA,EAAAA,IAAAA,WAAoBrU,EAAA,MAAA,CACpB8U,MAAAA,WACFR,SAAAA,EAAAA,IAAAA,CACJ,SAAU,YACFE,CAAAA,CACSA,CAAAA,EAAAA,IAAAA,SAAAA,SACjB,MAAA,WACA,SAAAxU,MACE,CAAAC,SAAAA,oBACE,CAAA,CACO,CAAA,CAAA,CAEG,CAAA,CAAA,CAAA,CAAE0U,CAAAA","x_google_ignoreList":[0,1,2,3,4]} \ No newline at end of file diff --git a/assets/grouped-notifications-xYMFVY91.jpg b/assets/grouped-notifications-xYMFVY91.jpg new file mode 100644 index 0000000000000000000000000000000000000000..969b6df63f486bfebf6c4d499e71ec1ae18d5291 GIT binary patch literal 63031 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

    qZoY}KuwO)Lp;qqrlp~{71U4fFtUQ+ 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 RM@TvUse}7}UdPY5{{b}sBNhMv literal 0 HcmV?d00001 diff --git a/assets/icons/add-circle-line--O-MfyNy.js b/assets/icons/add-circle-line--O-MfyNy.js new file mode 100644 index 0000000..65c5611 --- /dev/null +++ b/assets/icons/add-circle-line--O-MfyNy.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=add-circle-line--O-MfyNy.js.map diff --git a/assets/icons/add-circle-line--O-MfyNy.js.map b/assets/icons/add-circle-line--O-MfyNy.js.map new file mode 100644 index 0000000..4f09336 --- /dev/null +++ b/assets/icons/add-circle-line--O-MfyNy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"add-circle-line--O-MfyNy.js","sources":["../../../node_modules/@iconify-icons/mingcute/add-circle-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,wzBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/alert-line-zyc6hy8V.js b/assets/icons/alert-line-zyc6hy8V.js new file mode 100644 index 0000000..f890892 --- /dev/null +++ b/assets/icons/alert-line-zyc6hy8V.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=alert-line-zyc6hy8V.js.map diff --git a/assets/icons/alert-line-zyc6hy8V.js.map b/assets/icons/alert-line-zyc6hy8V.js.map new file mode 100644 index 0000000..15fdc0a --- /dev/null +++ b/assets/icons/alert-line-zyc6hy8V.js.map @@ -0,0 +1 @@ +{"version":3,"file":"alert-line-zyc6hy8V.js","sources":["../../../node_modules/@iconify-icons/mingcute/alert-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,m2BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/android-2-line-uPwvVubH.js b/assets/icons/android-2-line-uPwvVubH.js new file mode 100644 index 0000000..27de5b5 --- /dev/null +++ b/assets/icons/android-2-line-uPwvVubH.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=android-2-line-uPwvVubH.js.map diff --git a/assets/icons/android-2-line-uPwvVubH.js.map b/assets/icons/android-2-line-uPwvVubH.js.map new file mode 100644 index 0000000..677e00d --- /dev/null +++ b/assets/icons/android-2-line-uPwvVubH.js.map @@ -0,0 +1 @@ +{"version":3,"file":"android-2-line-uPwvVubH.js","sources":["../../../node_modules/@iconify-icons/mingcute/android-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,q/BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/announcement-line-MSlAmDH1.js b/assets/icons/announcement-line-MSlAmDH1.js new file mode 100644 index 0000000..59d8af1 --- /dev/null +++ b/assets/icons/announcement-line-MSlAmDH1.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=announcement-line-MSlAmDH1.js.map diff --git a/assets/icons/announcement-line-MSlAmDH1.js.map b/assets/icons/announcement-line-MSlAmDH1.js.map new file mode 100644 index 0000000..4ec4ff0 --- /dev/null +++ b/assets/icons/announcement-line-MSlAmDH1.js.map @@ -0,0 +1 @@ +{"version":3,"file":"announcement-line-MSlAmDH1.js","sources":["../../../node_modules/@iconify-icons/mingcute/announcement-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+pCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrow-down-circle-line-mpqFtRtO.js b/assets/icons/arrow-down-circle-line-mpqFtRtO.js new file mode 100644 index 0000000..a314118 --- /dev/null +++ b/assets/icons/arrow-down-circle-line-mpqFtRtO.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrow-down-circle-line-mpqFtRtO.js.map diff --git a/assets/icons/arrow-down-circle-line-mpqFtRtO.js.map b/assets/icons/arrow-down-circle-line-mpqFtRtO.js.map new file mode 100644 index 0000000..26b733b --- /dev/null +++ b/assets/icons/arrow-down-circle-line-mpqFtRtO.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrow-down-circle-line-mpqFtRtO.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrow-down-circle-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,m6BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrow-down-line-0TRJUP_K.js b/assets/icons/arrow-down-line-0TRJUP_K.js new file mode 100644 index 0000000..79a7aaa --- /dev/null +++ b/assets/icons/arrow-down-line-0TRJUP_K.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrow-down-line-0TRJUP_K.js.map diff --git a/assets/icons/arrow-down-line-0TRJUP_K.js.map b/assets/icons/arrow-down-line-0TRJUP_K.js.map new file mode 100644 index 0000000..c9afdd9 --- /dev/null +++ b/assets/icons/arrow-down-line-0TRJUP_K.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrow-down-line-0TRJUP_K.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrow-down-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,6vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrow-left-line-_YC6-XGG.js b/assets/icons/arrow-left-line-_YC6-XGG.js new file mode 100644 index 0000000..2e113bc --- /dev/null +++ b/assets/icons/arrow-left-line-_YC6-XGG.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrow-left-line-_YC6-XGG.js.map diff --git a/assets/icons/arrow-left-line-_YC6-XGG.js.map b/assets/icons/arrow-left-line-_YC6-XGG.js.map new file mode 100644 index 0000000..7be3f99 --- /dev/null +++ b/assets/icons/arrow-left-line-_YC6-XGG.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrow-left-line-_YC6-XGG.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrow-left-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrow-right-line-PypiEqpu.js b/assets/icons/arrow-right-line-PypiEqpu.js new file mode 100644 index 0000000..5a7f5de --- /dev/null +++ b/assets/icons/arrow-right-line-PypiEqpu.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrow-right-line-PypiEqpu.js.map diff --git a/assets/icons/arrow-right-line-PypiEqpu.js.map b/assets/icons/arrow-right-line-PypiEqpu.js.map new file mode 100644 index 0000000..1dd3644 --- /dev/null +++ b/assets/icons/arrow-right-line-PypiEqpu.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrow-right-line-PypiEqpu.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrow-right-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,iwBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrow-up-circle-line-e3kZqEZN.js b/assets/icons/arrow-up-circle-line-e3kZqEZN.js new file mode 100644 index 0000000..a7e1755 --- /dev/null +++ b/assets/icons/arrow-up-circle-line-e3kZqEZN.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrow-up-circle-line-e3kZqEZN.js.map diff --git a/assets/icons/arrow-up-circle-line-e3kZqEZN.js.map b/assets/icons/arrow-up-circle-line-e3kZqEZN.js.map new file mode 100644 index 0000000..148d152 --- /dev/null +++ b/assets/icons/arrow-up-circle-line-e3kZqEZN.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrow-up-circle-line-e3kZqEZN.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrow-up-circle-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,65BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrow-up-line-fcuKqhVE.js b/assets/icons/arrow-up-line-fcuKqhVE.js new file mode 100644 index 0000000..e457bae --- /dev/null +++ b/assets/icons/arrow-up-line-fcuKqhVE.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrow-up-line-fcuKqhVE.js.map diff --git a/assets/icons/arrow-up-line-fcuKqhVE.js.map b/assets/icons/arrow-up-line-fcuKqhVE.js.map new file mode 100644 index 0000000..fdf9436 --- /dev/null +++ b/assets/icons/arrow-up-line-fcuKqhVE.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrow-up-line-fcuKqhVE.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrow-up-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrows-down-line-ovOF9r0o.js b/assets/icons/arrows-down-line-ovOF9r0o.js new file mode 100644 index 0000000..efea8e6 --- /dev/null +++ b/assets/icons/arrows-down-line-ovOF9r0o.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrows-down-line-ovOF9r0o.js.map diff --git a/assets/icons/arrows-down-line-ovOF9r0o.js.map b/assets/icons/arrows-down-line-ovOF9r0o.js.map new file mode 100644 index 0000000..c538245 --- /dev/null +++ b/assets/icons/arrows-down-line-ovOF9r0o.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrows-down-line-ovOF9r0o.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrows-down-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,22BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/arrows-right-line-HF4HILdT.js b/assets/icons/arrows-right-line-HF4HILdT.js new file mode 100644 index 0000000..470d767 --- /dev/null +++ b/assets/icons/arrows-right-line-HF4HILdT.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=arrows-right-line-HF4HILdT.js.map diff --git a/assets/icons/arrows-right-line-HF4HILdT.js.map b/assets/icons/arrows-right-line-HF4HILdT.js.map new file mode 100644 index 0000000..834c4b5 --- /dev/null +++ b/assets/icons/arrows-right-line-HF4HILdT.js.map @@ -0,0 +1 @@ +{"version":3,"file":"arrows-right-line-HF4HILdT.js","sources":["../../../node_modules/@iconify-icons/mingcute/arrows-right-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,02BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/at-line-9vJS_Hnl.js b/assets/icons/at-line-9vJS_Hnl.js new file mode 100644 index 0000000..af36287 --- /dev/null +++ b/assets/icons/at-line-9vJS_Hnl.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=at-line-9vJS_Hnl.js.map diff --git a/assets/icons/at-line-9vJS_Hnl.js.map b/assets/icons/at-line-9vJS_Hnl.js.map new file mode 100644 index 0000000..e650267 --- /dev/null +++ b/assets/icons/at-line-9vJS_Hnl.js.map @@ -0,0 +1 @@ +{"version":3,"file":"at-line-9vJS_Hnl.js","sources":["../../../node_modules/@iconify-icons/mingcute/at-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,8xCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/attachment-line-C2PUa1Ke.js b/assets/icons/attachment-line-C2PUa1Ke.js new file mode 100644 index 0000000..aa7968d --- /dev/null +++ b/assets/icons/attachment-line-C2PUa1Ke.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=attachment-line-C2PUa1Ke.js.map diff --git a/assets/icons/attachment-line-C2PUa1Ke.js.map b/assets/icons/attachment-line-C2PUa1Ke.js.map new file mode 100644 index 0000000..eeaa929 --- /dev/null +++ b/assets/icons/attachment-line-C2PUa1Ke.js.map @@ -0,0 +1 @@ +{"version":3,"file":"attachment-line-C2PUa1Ke.js","sources":["../../../node_modules/@iconify-icons/mingcute/attachment-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,u9BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/bookmark-line-D6jQ7QFs.js b/assets/icons/bookmark-line-D6jQ7QFs.js new file mode 100644 index 0000000..e0cb878 --- /dev/null +++ b/assets/icons/bookmark-line-D6jQ7QFs.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=bookmark-line-D6jQ7QFs.js.map diff --git a/assets/icons/bookmark-line-D6jQ7QFs.js.map b/assets/icons/bookmark-line-D6jQ7QFs.js.map new file mode 100644 index 0000000..d5848ed --- /dev/null +++ b/assets/icons/bookmark-line-D6jQ7QFs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bookmark-line-D6jQ7QFs.js","sources":["../../../node_modules/@iconify-icons/mingcute/bookmark-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,w1BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/building-5-line-ew7lu83B.js b/assets/icons/building-5-line-ew7lu83B.js new file mode 100644 index 0000000..4256ed9 --- /dev/null +++ b/assets/icons/building-5-line-ew7lu83B.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=building-5-line-ew7lu83B.js.map diff --git a/assets/icons/building-5-line-ew7lu83B.js.map b/assets/icons/building-5-line-ew7lu83B.js.map new file mode 100644 index 0000000..513195c --- /dev/null +++ b/assets/icons/building-5-line-ew7lu83B.js.map @@ -0,0 +1 @@ +{"version":3,"file":"building-5-line-ew7lu83B.js","sources":["../../../node_modules/@iconify-icons/mingcute/building-5-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,qzBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/bus-2-line-XuQdDZ_w.js b/assets/icons/bus-2-line-XuQdDZ_w.js new file mode 100644 index 0000000..885b8aa --- /dev/null +++ b/assets/icons/bus-2-line-XuQdDZ_w.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=bus-2-line-XuQdDZ_w.js.map diff --git a/assets/icons/bus-2-line-XuQdDZ_w.js.map b/assets/icons/bus-2-line-XuQdDZ_w.js.map new file mode 100644 index 0000000..f6c08c1 --- /dev/null +++ b/assets/icons/bus-2-line-XuQdDZ_w.js.map @@ -0,0 +1 @@ +{"version":3,"file":"bus-2-line-XuQdDZ_w.js","sources":["../../../node_modules/@iconify-icons/mingcute/bus-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,orCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/calendar-month-line-VoXZVWAe.js b/assets/icons/calendar-month-line-VoXZVWAe.js new file mode 100644 index 0000000..0df6506 --- /dev/null +++ b/assets/icons/calendar-month-line-VoXZVWAe.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=calendar-month-line-VoXZVWAe.js.map diff --git a/assets/icons/calendar-month-line-VoXZVWAe.js.map b/assets/icons/calendar-month-line-VoXZVWAe.js.map new file mode 100644 index 0000000..7a3c5b6 --- /dev/null +++ b/assets/icons/calendar-month-line-VoXZVWAe.js.map @@ -0,0 +1 @@ +{"version":3,"file":"calendar-month-line-VoXZVWAe.js","sources":["../../../node_modules/@iconify-icons/mingcute/calendar-month-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,6+BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/chart-bar-line-5r_DfN2w.js b/assets/icons/chart-bar-line-5r_DfN2w.js new file mode 100644 index 0000000..a2a0f1d --- /dev/null +++ b/assets/icons/chart-bar-line-5r_DfN2w.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=chart-bar-line-5r_DfN2w.js.map diff --git a/assets/icons/chart-bar-line-5r_DfN2w.js.map b/assets/icons/chart-bar-line-5r_DfN2w.js.map new file mode 100644 index 0000000..f6cfa9c --- /dev/null +++ b/assets/icons/chart-bar-line-5r_DfN2w.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chart-bar-line-5r_DfN2w.js","sources":["../../../node_modules/@iconify-icons/mingcute/chart-bar-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,wwBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/chart-line-line-pHaLt6yC.js b/assets/icons/chart-line-line-pHaLt6yC.js new file mode 100644 index 0000000..bc32fa0 --- /dev/null +++ b/assets/icons/chart-line-line-pHaLt6yC.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=chart-line-line-pHaLt6yC.js.map diff --git a/assets/icons/chart-line-line-pHaLt6yC.js.map b/assets/icons/chart-line-line-pHaLt6yC.js.map new file mode 100644 index 0000000..320fd83 --- /dev/null +++ b/assets/icons/chart-line-line-pHaLt6yC.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chart-line-line-pHaLt6yC.js","sources":["../../../node_modules/@iconify-icons/mingcute/chart-line-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,q6BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/chat-3-line-F0xcdpXY.js b/assets/icons/chat-3-line-F0xcdpXY.js new file mode 100644 index 0000000..e737b8a --- /dev/null +++ b/assets/icons/chat-3-line-F0xcdpXY.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=chat-3-line-F0xcdpXY.js.map diff --git a/assets/icons/chat-3-line-F0xcdpXY.js.map b/assets/icons/chat-3-line-F0xcdpXY.js.map new file mode 100644 index 0000000..46d04b8 --- /dev/null +++ b/assets/icons/chat-3-line-F0xcdpXY.js.map @@ -0,0 +1 @@ +{"version":3,"file":"chat-3-line-F0xcdpXY.js","sources":["../../../node_modules/@iconify-icons/mingcute/chat-3-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,khCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/check-circle-line-sE41WGxF.js b/assets/icons/check-circle-line-sE41WGxF.js new file mode 100644 index 0000000..315154a --- /dev/null +++ b/assets/icons/check-circle-line-sE41WGxF.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=check-circle-line-sE41WGxF.js.map diff --git a/assets/icons/check-circle-line-sE41WGxF.js.map b/assets/icons/check-circle-line-sE41WGxF.js.map new file mode 100644 index 0000000..3df91ce --- /dev/null +++ b/assets/icons/check-circle-line-sE41WGxF.js.map @@ -0,0 +1 @@ +{"version":3,"file":"check-circle-line-sE41WGxF.js","sources":["../../../node_modules/@iconify-icons/mingcute/check-circle-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,u3BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/clipboard-line-9F_Yeo71.js b/assets/icons/clipboard-line-9F_Yeo71.js new file mode 100644 index 0000000..d08da46 --- /dev/null +++ b/assets/icons/clipboard-line-9F_Yeo71.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=clipboard-line-9F_Yeo71.js.map diff --git a/assets/icons/clipboard-line-9F_Yeo71.js.map b/assets/icons/clipboard-line-9F_Yeo71.js.map new file mode 100644 index 0000000..049bf14 --- /dev/null +++ b/assets/icons/clipboard-line-9F_Yeo71.js.map @@ -0,0 +1 @@ +{"version":3,"file":"clipboard-line-9F_Yeo71.js","sources":["../../../node_modules/@iconify-icons/mingcute/clipboard-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,29BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/close-circle-line-qd3g541O.js b/assets/icons/close-circle-line-qd3g541O.js new file mode 100644 index 0000000..15d9b42 --- /dev/null +++ b/assets/icons/close-circle-line-qd3g541O.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=close-circle-line-qd3g541O.js.map diff --git a/assets/icons/close-circle-line-qd3g541O.js.map b/assets/icons/close-circle-line-qd3g541O.js.map new file mode 100644 index 0000000..ba75cd3 --- /dev/null +++ b/assets/icons/close-circle-line-qd3g541O.js.map @@ -0,0 +1 @@ +{"version":3,"file":"close-circle-line-qd3g541O.js","sources":["../../../node_modules/@iconify-icons/mingcute/close-circle-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,25BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/close-line-YTE7hIJE.js b/assets/icons/close-line-YTE7hIJE.js new file mode 100644 index 0000000..93468be --- /dev/null +++ b/assets/icons/close-line-YTE7hIJE.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=close-line-YTE7hIJE.js.map diff --git a/assets/icons/close-line-YTE7hIJE.js.map b/assets/icons/close-line-YTE7hIJE.js.map new file mode 100644 index 0000000..0fef4f6 --- /dev/null +++ b/assets/icons/close-line-YTE7hIJE.js.map @@ -0,0 +1 @@ +{"version":3,"file":"close-line-YTE7hIJE.js","sources":["../../../node_modules/@iconify-icons/mingcute/close-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+zBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/cloud-line-abe0HgFS.js b/assets/icons/cloud-line-abe0HgFS.js new file mode 100644 index 0000000..347cb2b --- /dev/null +++ b/assets/icons/cloud-line-abe0HgFS.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=cloud-line-abe0HgFS.js.map diff --git a/assets/icons/cloud-line-abe0HgFS.js.map b/assets/icons/cloud-line-abe0HgFS.js.map new file mode 100644 index 0000000..1accd33 --- /dev/null +++ b/assets/icons/cloud-line-abe0HgFS.js.map @@ -0,0 +1 @@ +{"version":3,"file":"cloud-line-abe0HgFS.js","sources":["../../../node_modules/@iconify-icons/mingcute/cloud-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,62BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/code-line-h4RWLaak.js b/assets/icons/code-line-h4RWLaak.js new file mode 100644 index 0000000..04e400f --- /dev/null +++ b/assets/icons/code-line-h4RWLaak.js @@ -0,0 +1,2 @@ +const a={width:24,height:24,body:''};export{a as default}; +//# sourceMappingURL=code-line-h4RWLaak.js.map diff --git a/assets/icons/code-line-h4RWLaak.js.map b/assets/icons/code-line-h4RWLaak.js.map new file mode 100644 index 0000000..81ab95f --- /dev/null +++ b/assets/icons/code-line-h4RWLaak.js.map @@ -0,0 +1 @@ +{"version":3,"file":"code-line-h4RWLaak.js","sources":["../../../node_modules/@iconify-icons/mingcute/code-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,kbACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/comment-2-line-xEXuT-Ip.js b/assets/icons/comment-2-line-xEXuT-Ip.js new file mode 100644 index 0000000..e1be968 --- /dev/null +++ b/assets/icons/comment-2-line-xEXuT-Ip.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=comment-2-line-xEXuT-Ip.js.map diff --git a/assets/icons/comment-2-line-xEXuT-Ip.js.map b/assets/icons/comment-2-line-xEXuT-Ip.js.map new file mode 100644 index 0000000..70f58be --- /dev/null +++ b/assets/icons/comment-2-line-xEXuT-Ip.js.map @@ -0,0 +1 @@ +{"version":3,"file":"comment-2-line-xEXuT-Ip.js","sources":["../../../node_modules/@iconify-icons/mingcute/comment-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4oCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/copy-2-line-mPSDKieb.js b/assets/icons/copy-2-line-mPSDKieb.js new file mode 100644 index 0000000..fb856b0 --- /dev/null +++ b/assets/icons/copy-2-line-mPSDKieb.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=copy-2-line-mPSDKieb.js.map diff --git a/assets/icons/copy-2-line-mPSDKieb.js.map b/assets/icons/copy-2-line-mPSDKieb.js.map new file mode 100644 index 0000000..1e2014e --- /dev/null +++ b/assets/icons/copy-2-line-mPSDKieb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"copy-2-line-mPSDKieb.js","sources":["../../../node_modules/@iconify-icons/mingcute/copy-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,gyBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/delete-2-line-pjUduCFs.js b/assets/icons/delete-2-line-pjUduCFs.js new file mode 100644 index 0000000..1e728a3 --- /dev/null +++ b/assets/icons/delete-2-line-pjUduCFs.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=delete-2-line-pjUduCFs.js.map diff --git a/assets/icons/delete-2-line-pjUduCFs.js.map b/assets/icons/delete-2-line-pjUduCFs.js.map new file mode 100644 index 0000000..20d00dc --- /dev/null +++ b/assets/icons/delete-2-line-pjUduCFs.js.map @@ -0,0 +1 @@ +{"version":3,"file":"delete-2-line-pjUduCFs.js","sources":["../../../node_modules/@iconify-icons/mingcute/delete-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,ujCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/document-line--D6ooZg1.js b/assets/icons/document-line--D6ooZg1.js new file mode 100644 index 0000000..1c3e80d --- /dev/null +++ b/assets/icons/document-line--D6ooZg1.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=document-line--D6ooZg1.js.map diff --git a/assets/icons/document-line--D6ooZg1.js.map b/assets/icons/document-line--D6ooZg1.js.map new file mode 100644 index 0000000..cc1406a --- /dev/null +++ b/assets/icons/document-line--D6ooZg1.js.map @@ -0,0 +1 @@ +{"version":3,"file":"document-line--D6ooZg1.js","sources":["../../../node_modules/@iconify-icons/mingcute/document-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,mzBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/down-line-9PeS5YhF.js b/assets/icons/down-line-9PeS5YhF.js new file mode 100644 index 0000000..c32011c --- /dev/null +++ b/assets/icons/down-line-9PeS5YhF.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=down-line-9PeS5YhF.js.map diff --git a/assets/icons/down-line-9PeS5YhF.js.map b/assets/icons/down-line-9PeS5YhF.js.map new file mode 100644 index 0000000..5eb293b --- /dev/null +++ b/assets/icons/down-line-9PeS5YhF.js.map @@ -0,0 +1 @@ +{"version":3,"file":"down-line-9PeS5YhF.js","sources":["../../../node_modules/@iconify-icons/mingcute/down-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,6vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/earth-line-t1Um8wpQ.js b/assets/icons/earth-line-t1Um8wpQ.js new file mode 100644 index 0000000..1d74fcf --- /dev/null +++ b/assets/icons/earth-line-t1Um8wpQ.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=earth-line-t1Um8wpQ.js.map diff --git a/assets/icons/earth-line-t1Um8wpQ.js.map b/assets/icons/earth-line-t1Um8wpQ.js.map new file mode 100644 index 0000000..c15c069 --- /dev/null +++ b/assets/icons/earth-line-t1Um8wpQ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"earth-line-t1Um8wpQ.js","sources":["../../../node_modules/@iconify-icons/mingcute/earth-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,8rEACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/emoji-2-line--uNVc2IC.js b/assets/icons/emoji-2-line--uNVc2IC.js new file mode 100644 index 0000000..aaf8d6d --- /dev/null +++ b/assets/icons/emoji-2-line--uNVc2IC.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=emoji-2-line--uNVc2IC.js.map diff --git a/assets/icons/emoji-2-line--uNVc2IC.js.map b/assets/icons/emoji-2-line--uNVc2IC.js.map new file mode 100644 index 0000000..6e05eb8 --- /dev/null +++ b/assets/icons/emoji-2-line--uNVc2IC.js.map @@ -0,0 +1 @@ +{"version":3,"file":"emoji-2-line--uNVc2IC.js","sources":["../../../node_modules/@iconify-icons/mingcute/emoji-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4hCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/exit-line-l-1uUgI7.js b/assets/icons/exit-line-l-1uUgI7.js new file mode 100644 index 0000000..5e8fd13 --- /dev/null +++ b/assets/icons/exit-line-l-1uUgI7.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=exit-line-l-1uUgI7.js.map diff --git a/assets/icons/exit-line-l-1uUgI7.js.map b/assets/icons/exit-line-l-1uUgI7.js.map new file mode 100644 index 0000000..9fe7120 --- /dev/null +++ b/assets/icons/exit-line-l-1uUgI7.js.map @@ -0,0 +1 @@ +{"version":3,"file":"exit-line-l-1uUgI7.js","sources":["../../../node_modules/@iconify-icons/mingcute/exit-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,k7BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/external-link-line-8nOOkmFu.js b/assets/icons/external-link-line-8nOOkmFu.js new file mode 100644 index 0000000..98dd0b2 --- /dev/null +++ b/assets/icons/external-link-line-8nOOkmFu.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=external-link-line-8nOOkmFu.js.map diff --git a/assets/icons/external-link-line-8nOOkmFu.js.map b/assets/icons/external-link-line-8nOOkmFu.js.map new file mode 100644 index 0000000..89aa383 --- /dev/null +++ b/assets/icons/external-link-line-8nOOkmFu.js.map @@ -0,0 +1 @@ +{"version":3,"file":"external-link-line-8nOOkmFu.js","sources":["../../../node_modules/@iconify-icons/mingcute/external-link-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,qzBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/eye-2-line-vz_Kw-rK.js b/assets/icons/eye-2-line-vz_Kw-rK.js new file mode 100644 index 0000000..c15ec87 --- /dev/null +++ b/assets/icons/eye-2-line-vz_Kw-rK.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=eye-2-line-vz_Kw-rK.js.map diff --git a/assets/icons/eye-2-line-vz_Kw-rK.js.map b/assets/icons/eye-2-line-vz_Kw-rK.js.map new file mode 100644 index 0000000..deb69bb --- /dev/null +++ b/assets/icons/eye-2-line-vz_Kw-rK.js.map @@ -0,0 +1 @@ +{"version":3,"file":"eye-2-line-vz_Kw-rK.js","sources":["../../../node_modules/@iconify-icons/mingcute/eye-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,8nDACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/eye-close-line-lBiePPv9.js b/assets/icons/eye-close-line-lBiePPv9.js new file mode 100644 index 0000000..4c3e91e --- /dev/null +++ b/assets/icons/eye-close-line-lBiePPv9.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=eye-close-line-lBiePPv9.js.map diff --git a/assets/icons/eye-close-line-lBiePPv9.js.map b/assets/icons/eye-close-line-lBiePPv9.js.map new file mode 100644 index 0000000..720db82 --- /dev/null +++ b/assets/icons/eye-close-line-lBiePPv9.js.map @@ -0,0 +1 @@ +{"version":3,"file":"eye-close-line-lBiePPv9.js","sources":["../../../node_modules/@iconify-icons/mingcute/eye-close-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,sgCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/filter-2-line-KyjbFYlO.js b/assets/icons/filter-2-line-KyjbFYlO.js new file mode 100644 index 0000000..f08df93 --- /dev/null +++ b/assets/icons/filter-2-line-KyjbFYlO.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=filter-2-line-KyjbFYlO.js.map diff --git a/assets/icons/filter-2-line-KyjbFYlO.js.map b/assets/icons/filter-2-line-KyjbFYlO.js.map new file mode 100644 index 0000000..f34c665 --- /dev/null +++ b/assets/icons/filter-2-line-KyjbFYlO.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter-2-line-KyjbFYlO.js","sources":["../../../node_modules/@iconify-icons/mingcute/filter-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,8vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/filter-line-1KEfnWDm.js b/assets/icons/filter-line-1KEfnWDm.js new file mode 100644 index 0000000..83671a2 --- /dev/null +++ b/assets/icons/filter-line-1KEfnWDm.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=filter-line-1KEfnWDm.js.map diff --git a/assets/icons/filter-line-1KEfnWDm.js.map b/assets/icons/filter-line-1KEfnWDm.js.map new file mode 100644 index 0000000..4db8a52 --- /dev/null +++ b/assets/icons/filter-line-1KEfnWDm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"filter-line-1KEfnWDm.js","sources":["../../../node_modules/@iconify-icons/mingcute/filter-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,q6BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/flag-1-line-xvcg7G7Q.js b/assets/icons/flag-1-line-xvcg7G7Q.js new file mode 100644 index 0000000..21480cd --- /dev/null +++ b/assets/icons/flag-1-line-xvcg7G7Q.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=flag-1-line-xvcg7G7Q.js.map diff --git a/assets/icons/flag-1-line-xvcg7G7Q.js.map b/assets/icons/flag-1-line-xvcg7G7Q.js.map new file mode 100644 index 0000000..1e892ac --- /dev/null +++ b/assets/icons/flag-1-line-xvcg7G7Q.js.map @@ -0,0 +1 @@ +{"version":3,"file":"flag-1-line-xvcg7G7Q.js","sources":["../../../node_modules/@iconify-icons/mingcute/flag-1-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,uzBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/forbid-circle-line-3FxopGoP.js b/assets/icons/forbid-circle-line-3FxopGoP.js new file mode 100644 index 0000000..3205a6f --- /dev/null +++ b/assets/icons/forbid-circle-line-3FxopGoP.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=forbid-circle-line-3FxopGoP.js.map diff --git a/assets/icons/forbid-circle-line-3FxopGoP.js.map b/assets/icons/forbid-circle-line-3FxopGoP.js.map new file mode 100644 index 0000000..ea4400c --- /dev/null +++ b/assets/icons/forbid-circle-line-3FxopGoP.js.map @@ -0,0 +1 @@ +{"version":3,"file":"forbid-circle-line-3FxopGoP.js","sources":["../../../node_modules/@iconify-icons/mingcute/forbid-circle-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,6zBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/group-line-JvhJklhQ.js b/assets/icons/group-line-JvhJklhQ.js new file mode 100644 index 0000000..b6fc99a --- /dev/null +++ b/assets/icons/group-line-JvhJklhQ.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=group-line-JvhJklhQ.js.map diff --git a/assets/icons/group-line-JvhJklhQ.js.map b/assets/icons/group-line-JvhJklhQ.js.map new file mode 100644 index 0000000..680d58c --- /dev/null +++ b/assets/icons/group-line-JvhJklhQ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"group-line-JvhJklhQ.js","sources":["../../../node_modules/@iconify-icons/mingcute/group-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,69BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/hashtag-line-SS3QMu1R.js b/assets/icons/hashtag-line-SS3QMu1R.js new file mode 100644 index 0000000..c6af511 --- /dev/null +++ b/assets/icons/hashtag-line-SS3QMu1R.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=hashtag-line-SS3QMu1R.js.map diff --git a/assets/icons/hashtag-line-SS3QMu1R.js.map b/assets/icons/hashtag-line-SS3QMu1R.js.map new file mode 100644 index 0000000..a859808 --- /dev/null +++ b/assets/icons/hashtag-line-SS3QMu1R.js.map @@ -0,0 +1 @@ +{"version":3,"file":"hashtag-line-SS3QMu1R.js","sources":["../../../node_modules/@iconify-icons/mingcute/hashtag-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,u+BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/heart-crack-line-P3DoKfTT.js b/assets/icons/heart-crack-line-P3DoKfTT.js new file mode 100644 index 0000000..8ef465d --- /dev/null +++ b/assets/icons/heart-crack-line-P3DoKfTT.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=heart-crack-line-P3DoKfTT.js.map diff --git a/assets/icons/heart-crack-line-P3DoKfTT.js.map b/assets/icons/heart-crack-line-P3DoKfTT.js.map new file mode 100644 index 0000000..72fca5d --- /dev/null +++ b/assets/icons/heart-crack-line-P3DoKfTT.js.map @@ -0,0 +1 @@ +{"version":3,"file":"heart-crack-line-P3DoKfTT.js","sources":["../../../node_modules/@iconify-icons/mingcute/heart-crack-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4zCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/heart-line-VwvWYh8h.js b/assets/icons/heart-line-VwvWYh8h.js new file mode 100644 index 0000000..5102a4a --- /dev/null +++ b/assets/icons/heart-line-VwvWYh8h.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=heart-line-VwvWYh8h.js.map diff --git a/assets/icons/heart-line-VwvWYh8h.js.map b/assets/icons/heart-line-VwvWYh8h.js.map new file mode 100644 index 0000000..2ff90c9 --- /dev/null +++ b/assets/icons/heart-line-VwvWYh8h.js.map @@ -0,0 +1 @@ +{"version":3,"file":"heart-line-VwvWYh8h.js","sources":["../../../node_modules/@iconify-icons/mingcute/heart-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,8rCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/history-2-line-3yIVzoWo.js b/assets/icons/history-2-line-3yIVzoWo.js new file mode 100644 index 0000000..8018d8e --- /dev/null +++ b/assets/icons/history-2-line-3yIVzoWo.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=history-2-line-3yIVzoWo.js.map diff --git a/assets/icons/history-2-line-3yIVzoWo.js.map b/assets/icons/history-2-line-3yIVzoWo.js.map new file mode 100644 index 0000000..917634d --- /dev/null +++ b/assets/icons/history-2-line-3yIVzoWo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"history-2-line-3yIVzoWo.js","sources":["../../../node_modules/@iconify-icons/mingcute/history-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,o/BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/history-line-yoG7K8wL.js b/assets/icons/history-line-yoG7K8wL.js new file mode 100644 index 0000000..05efdd0 --- /dev/null +++ b/assets/icons/history-line-yoG7K8wL.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=history-line-yoG7K8wL.js.map diff --git a/assets/icons/history-line-yoG7K8wL.js.map b/assets/icons/history-line-yoG7K8wL.js.map new file mode 100644 index 0000000..1b807e6 --- /dev/null +++ b/assets/icons/history-line-yoG7K8wL.js.map @@ -0,0 +1 @@ +{"version":3,"file":"history-line-yoG7K8wL.js","sources":["../../../node_modules/@iconify-icons/mingcute/history-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,wgCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/home-3-line-qJiZhXUH.js b/assets/icons/home-3-line-qJiZhXUH.js new file mode 100644 index 0000000..e398702 --- /dev/null +++ b/assets/icons/home-3-line-qJiZhXUH.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=home-3-line-qJiZhXUH.js.map diff --git a/assets/icons/home-3-line-qJiZhXUH.js.map b/assets/icons/home-3-line-qJiZhXUH.js.map new file mode 100644 index 0000000..14cc6e0 --- /dev/null +++ b/assets/icons/home-3-line-qJiZhXUH.js.map @@ -0,0 +1 @@ +{"version":3,"file":"home-3-line-qJiZhXUH.js","sources":["../../../node_modules/@iconify-icons/mingcute/home-3-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,69BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/information-line-8SOch6cR.js b/assets/icons/information-line-8SOch6cR.js new file mode 100644 index 0000000..dab8795 --- /dev/null +++ b/assets/icons/information-line-8SOch6cR.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=information-line-8SOch6cR.js.map diff --git a/assets/icons/information-line-8SOch6cR.js.map b/assets/icons/information-line-8SOch6cR.js.map new file mode 100644 index 0000000..f703a64 --- /dev/null +++ b/assets/icons/information-line-8SOch6cR.js.map @@ -0,0 +1 @@ +{"version":3,"file":"information-line-8SOch6cR.js","sources":["../../../node_modules/@iconify-icons/mingcute/information-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,02BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/keyboard-line-10AZQcVH.js b/assets/icons/keyboard-line-10AZQcVH.js new file mode 100644 index 0000000..a27ca30 --- /dev/null +++ b/assets/icons/keyboard-line-10AZQcVH.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=keyboard-line-10AZQcVH.js.map diff --git a/assets/icons/keyboard-line-10AZQcVH.js.map b/assets/icons/keyboard-line-10AZQcVH.js.map new file mode 100644 index 0000000..d52f4d0 --- /dev/null +++ b/assets/icons/keyboard-line-10AZQcVH.js.map @@ -0,0 +1 @@ +{"version":3,"file":"keyboard-line-10AZQcVH.js","sources":["../../../node_modules/@iconify-icons/mingcute/keyboard-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+mCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/layout-4-line-FOdnyEcZ.js b/assets/icons/layout-4-line-FOdnyEcZ.js new file mode 100644 index 0000000..fe91724 --- /dev/null +++ b/assets/icons/layout-4-line-FOdnyEcZ.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=layout-4-line-FOdnyEcZ.js.map diff --git a/assets/icons/layout-4-line-FOdnyEcZ.js.map b/assets/icons/layout-4-line-FOdnyEcZ.js.map new file mode 100644 index 0000000..b2288dc --- /dev/null +++ b/assets/icons/layout-4-line-FOdnyEcZ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"layout-4-line-FOdnyEcZ.js","sources":["../../../node_modules/@iconify-icons/mingcute/layout-4-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,02BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/layout-5-line-9Kks7dle.js b/assets/icons/layout-5-line-9Kks7dle.js new file mode 100644 index 0000000..0ba647b --- /dev/null +++ b/assets/icons/layout-5-line-9Kks7dle.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=layout-5-line-9Kks7dle.js.map diff --git a/assets/icons/layout-5-line-9Kks7dle.js.map b/assets/icons/layout-5-line-9Kks7dle.js.map new file mode 100644 index 0000000..7d22d2a --- /dev/null +++ b/assets/icons/layout-5-line-9Kks7dle.js.map @@ -0,0 +1 @@ +{"version":3,"file":"layout-5-line-9Kks7dle.js","sources":["../../../node_modules/@iconify-icons/mingcute/layout-5-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,g0BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/left-line-Jck0yVmC.js b/assets/icons/left-line-Jck0yVmC.js new file mode 100644 index 0000000..5ac69dd --- /dev/null +++ b/assets/icons/left-line-Jck0yVmC.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=left-line-Jck0yVmC.js.map diff --git a/assets/icons/left-line-Jck0yVmC.js.map b/assets/icons/left-line-Jck0yVmC.js.map new file mode 100644 index 0000000..a97c7dd --- /dev/null +++ b/assets/icons/left-line-Jck0yVmC.js.map @@ -0,0 +1 @@ +{"version":3,"file":"left-line-Jck0yVmC.js","sources":["../../../node_modules/@iconify-icons/mingcute/left-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,6vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/lightning-line-JMYUlCZM.js b/assets/icons/lightning-line-JMYUlCZM.js new file mode 100644 index 0000000..d3d46ac --- /dev/null +++ b/assets/icons/lightning-line-JMYUlCZM.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=lightning-line-JMYUlCZM.js.map diff --git a/assets/icons/lightning-line-JMYUlCZM.js.map b/assets/icons/lightning-line-JMYUlCZM.js.map new file mode 100644 index 0000000..9523d64 --- /dev/null +++ b/assets/icons/lightning-line-JMYUlCZM.js.map @@ -0,0 +1 @@ +{"version":3,"file":"lightning-line-JMYUlCZM.js","sources":["../../../node_modules/@iconify-icons/mingcute/lightning-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,q8BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/link-2-line-BUqp1EwN.js b/assets/icons/link-2-line-BUqp1EwN.js new file mode 100644 index 0000000..63c4d1b --- /dev/null +++ b/assets/icons/link-2-line-BUqp1EwN.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=link-2-line-BUqp1EwN.js.map diff --git a/assets/icons/link-2-line-BUqp1EwN.js.map b/assets/icons/link-2-line-BUqp1EwN.js.map new file mode 100644 index 0000000..78e3848 --- /dev/null +++ b/assets/icons/link-2-line-BUqp1EwN.js.map @@ -0,0 +1 @@ +{"version":3,"file":"link-2-line-BUqp1EwN.js","sources":["../../../node_modules/@iconify-icons/mingcute/link-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,ooCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/list-check-line-qNqx9Mm4.js b/assets/icons/list-check-line-qNqx9Mm4.js new file mode 100644 index 0000000..a1e12df --- /dev/null +++ b/assets/icons/list-check-line-qNqx9Mm4.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=list-check-line-qNqx9Mm4.js.map diff --git a/assets/icons/list-check-line-qNqx9Mm4.js.map b/assets/icons/list-check-line-qNqx9Mm4.js.map new file mode 100644 index 0000000..7645eec --- /dev/null +++ b/assets/icons/list-check-line-qNqx9Mm4.js.map @@ -0,0 +1 @@ +{"version":3,"file":"list-check-line-qNqx9Mm4.js","sources":["../../../node_modules/@iconify-icons/mingcute/list-check-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,g6BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/lock-line-0jNHqZpm.js b/assets/icons/lock-line-0jNHqZpm.js new file mode 100644 index 0000000..f397c4b --- /dev/null +++ b/assets/icons/lock-line-0jNHqZpm.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=lock-line-0jNHqZpm.js.map diff --git a/assets/icons/lock-line-0jNHqZpm.js.map b/assets/icons/lock-line-0jNHqZpm.js.map new file mode 100644 index 0000000..3fdd1a1 --- /dev/null +++ b/assets/icons/lock-line-0jNHqZpm.js.map @@ -0,0 +1 @@ +{"version":3,"file":"lock-line-0jNHqZpm.js","sources":["../../../node_modules/@iconify-icons/mingcute/lock-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,i6BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/mail-line-5XLS6FEo.js b/assets/icons/mail-line-5XLS6FEo.js new file mode 100644 index 0000000..cc0b1aa --- /dev/null +++ b/assets/icons/mail-line-5XLS6FEo.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=mail-line-5XLS6FEo.js.map diff --git a/assets/icons/mail-line-5XLS6FEo.js.map b/assets/icons/mail-line-5XLS6FEo.js.map new file mode 100644 index 0000000..220f9be --- /dev/null +++ b/assets/icons/mail-line-5XLS6FEo.js.map @@ -0,0 +1 @@ +{"version":3,"file":"mail-line-5XLS6FEo.js","sources":["../../../node_modules/@iconify-icons/mingcute/mail-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,w0BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/more-1-fill-je1-slyh.js b/assets/icons/more-1-fill-je1-slyh.js new file mode 100644 index 0000000..25c43ab --- /dev/null +++ b/assets/icons/more-1-fill-je1-slyh.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=more-1-fill-je1-slyh.js.map diff --git a/assets/icons/more-1-fill-je1-slyh.js.map b/assets/icons/more-1-fill-je1-slyh.js.map new file mode 100644 index 0000000..b1fb57b --- /dev/null +++ b/assets/icons/more-1-fill-je1-slyh.js.map @@ -0,0 +1 @@ +{"version":3,"file":"more-1-fill-je1-slyh.js","sources":["../../../node_modules/@iconify-icons/mingcute/more-1-fill.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,otBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/more-3-line-wUD-Yhmj.js b/assets/icons/more-3-line-wUD-Yhmj.js new file mode 100644 index 0000000..0359f4b --- /dev/null +++ b/assets/icons/more-3-line-wUD-Yhmj.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=more-3-line-wUD-Yhmj.js.map diff --git a/assets/icons/more-3-line-wUD-Yhmj.js.map b/assets/icons/more-3-line-wUD-Yhmj.js.map new file mode 100644 index 0000000..0f328a1 --- /dev/null +++ b/assets/icons/more-3-line-wUD-Yhmj.js.map @@ -0,0 +1 @@ +{"version":3,"file":"more-3-line-wUD-Yhmj.js","sources":["../../../node_modules/@iconify-icons/mingcute/more-3-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+1BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/notification-line-olNPLtgS.js b/assets/icons/notification-line-olNPLtgS.js new file mode 100644 index 0000000..07bd990 --- /dev/null +++ b/assets/icons/notification-line-olNPLtgS.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=notification-line-olNPLtgS.js.map diff --git a/assets/icons/notification-line-olNPLtgS.js.map b/assets/icons/notification-line-olNPLtgS.js.map new file mode 100644 index 0000000..44fe29b --- /dev/null +++ b/assets/icons/notification-line-olNPLtgS.js.map @@ -0,0 +1 @@ +{"version":3,"file":"notification-line-olNPLtgS.js","sources":["../../../node_modules/@iconify-icons/mingcute/notification-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,++BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/pencil-line-bKXqElLR.js b/assets/icons/pencil-line-bKXqElLR.js new file mode 100644 index 0000000..f75700f --- /dev/null +++ b/assets/icons/pencil-line-bKXqElLR.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=pencil-line-bKXqElLR.js.map diff --git a/assets/icons/pencil-line-bKXqElLR.js.map b/assets/icons/pencil-line-bKXqElLR.js.map new file mode 100644 index 0000000..cee40e8 --- /dev/null +++ b/assets/icons/pencil-line-bKXqElLR.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pencil-line-bKXqElLR.js","sources":["../../../node_modules/@iconify-icons/mingcute/pencil-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,yhCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/photo-album-line--GdJqjfq.js b/assets/icons/photo-album-line--GdJqjfq.js new file mode 100644 index 0000000..8c4c264 --- /dev/null +++ b/assets/icons/photo-album-line--GdJqjfq.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=photo-album-line--GdJqjfq.js.map diff --git a/assets/icons/photo-album-line--GdJqjfq.js.map b/assets/icons/photo-album-line--GdJqjfq.js.map new file mode 100644 index 0000000..0d94ed3 --- /dev/null +++ b/assets/icons/photo-album-line--GdJqjfq.js.map @@ -0,0 +1 @@ +{"version":3,"file":"photo-album-line--GdJqjfq.js","sources":["../../../node_modules/@iconify-icons/mingcute/photo-album-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4lCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/pin-line-ULyRQyWZ.js b/assets/icons/pin-line-ULyRQyWZ.js new file mode 100644 index 0000000..20e9166 --- /dev/null +++ b/assets/icons/pin-line-ULyRQyWZ.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=pin-line-ULyRQyWZ.js.map diff --git a/assets/icons/pin-line-ULyRQyWZ.js.map b/assets/icons/pin-line-ULyRQyWZ.js.map new file mode 100644 index 0000000..38ff9d1 --- /dev/null +++ b/assets/icons/pin-line-ULyRQyWZ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pin-line-ULyRQyWZ.js","sources":["../../../node_modules/@iconify-icons/mingcute/pin-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,6nCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/play-fill-Ey-zv2eL.js b/assets/icons/play-fill-Ey-zv2eL.js new file mode 100644 index 0000000..ef50b85 --- /dev/null +++ b/assets/icons/play-fill-Ey-zv2eL.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=play-fill-Ey-zv2eL.js.map diff --git a/assets/icons/play-fill-Ey-zv2eL.js.map b/assets/icons/play-fill-Ey-zv2eL.js.map new file mode 100644 index 0000000..8a89d79 --- /dev/null +++ b/assets/icons/play-fill-Ey-zv2eL.js.map @@ -0,0 +1 @@ +{"version":3,"file":"play-fill-Ey-zv2eL.js","sources":["../../../node_modules/@iconify-icons/mingcute/play-fill.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,46BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/quill-pen-line-h_5-FsGz.js b/assets/icons/quill-pen-line-h_5-FsGz.js new file mode 100644 index 0000000..c491915 --- /dev/null +++ b/assets/icons/quill-pen-line-h_5-FsGz.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=quill-pen-line-h_5-FsGz.js.map diff --git a/assets/icons/quill-pen-line-h_5-FsGz.js.map b/assets/icons/quill-pen-line-h_5-FsGz.js.map new file mode 100644 index 0000000..21b91c0 --- /dev/null +++ b/assets/icons/quill-pen-line-h_5-FsGz.js.map @@ -0,0 +1 @@ +{"version":3,"file":"quill-pen-line-h_5-FsGz.js","sources":["../../../node_modules/@iconify-icons/mingcute/quill-pen-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,m5CACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/quote-left-line-NQzeELMO.js b/assets/icons/quote-left-line-NQzeELMO.js new file mode 100644 index 0000000..6187e3c --- /dev/null +++ b/assets/icons/quote-left-line-NQzeELMO.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=quote-left-line-NQzeELMO.js.map diff --git a/assets/icons/quote-left-line-NQzeELMO.js.map b/assets/icons/quote-left-line-NQzeELMO.js.map new file mode 100644 index 0000000..9149f73 --- /dev/null +++ b/assets/icons/quote-left-line-NQzeELMO.js.map @@ -0,0 +1 @@ +{"version":3,"file":"quote-left-line-NQzeELMO.js","sources":["../../../node_modules/@iconify-icons/mingcute/quote-left-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,yjCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/radar-line-ndI8IhOG.js b/assets/icons/radar-line-ndI8IhOG.js new file mode 100644 index 0000000..04c205b --- /dev/null +++ b/assets/icons/radar-line-ndI8IhOG.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=radar-line-ndI8IhOG.js.map diff --git a/assets/icons/radar-line-ndI8IhOG.js.map b/assets/icons/radar-line-ndI8IhOG.js.map new file mode 100644 index 0000000..e681ea4 --- /dev/null +++ b/assets/icons/radar-line-ndI8IhOG.js.map @@ -0,0 +1 @@ +{"version":3,"file":"radar-line-ndI8IhOG.js","sources":["../../../node_modules/@iconify-icons/mingcute/radar-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,0zCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/react-line-YfZPqZem.js b/assets/icons/react-line-YfZPqZem.js new file mode 100644 index 0000000..b0ca225 --- /dev/null +++ b/assets/icons/react-line-YfZPqZem.js @@ -0,0 +1,2 @@ +const c={width:24,height:24,body:''};export{c as default}; +//# sourceMappingURL=react-line-YfZPqZem.js.map diff --git a/assets/icons/react-line-YfZPqZem.js.map b/assets/icons/react-line-YfZPqZem.js.map new file mode 100644 index 0000000..9ba3bf0 --- /dev/null +++ b/assets/icons/react-line-YfZPqZem.js.map @@ -0,0 +1 @@ +{"version":3,"file":"react-line-YfZPqZem.js","sources":["../../../node_modules/@iconify-icons/mingcute/react-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4sFACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/refresh-2-line-t42qqclb.js b/assets/icons/refresh-2-line-t42qqclb.js new file mode 100644 index 0000000..43df53f --- /dev/null +++ b/assets/icons/refresh-2-line-t42qqclb.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=refresh-2-line-t42qqclb.js.map diff --git a/assets/icons/refresh-2-line-t42qqclb.js.map b/assets/icons/refresh-2-line-t42qqclb.js.map new file mode 100644 index 0000000..d97e41f --- /dev/null +++ b/assets/icons/refresh-2-line-t42qqclb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"refresh-2-line-t42qqclb.js","sources":["../../../node_modules/@iconify-icons/mingcute/refresh-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,wjCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/right-line-7VBoqLdz.js b/assets/icons/right-line-7VBoqLdz.js new file mode 100644 index 0000000..fd1de00 --- /dev/null +++ b/assets/icons/right-line-7VBoqLdz.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=right-line-7VBoqLdz.js.map diff --git a/assets/icons/right-line-7VBoqLdz.js.map b/assets/icons/right-line-7VBoqLdz.js.map new file mode 100644 index 0000000..655f8a1 --- /dev/null +++ b/assets/icons/right-line-7VBoqLdz.js.map @@ -0,0 +1 @@ +{"version":3,"file":"right-line-7VBoqLdz.js","sources":["../../../node_modules/@iconify-icons/mingcute/right-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/rocket-line-rZbVYYCZ.js b/assets/icons/rocket-line-rZbVYYCZ.js new file mode 100644 index 0000000..160fb03 --- /dev/null +++ b/assets/icons/rocket-line-rZbVYYCZ.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=rocket-line-rZbVYYCZ.js.map diff --git a/assets/icons/rocket-line-rZbVYYCZ.js.map b/assets/icons/rocket-line-rZbVYYCZ.js.map new file mode 100644 index 0000000..e4dfa8a --- /dev/null +++ b/assets/icons/rocket-line-rZbVYYCZ.js.map @@ -0,0 +1 @@ +{"version":3,"file":"rocket-line-rZbVYYCZ.js","sources":["../../../node_modules/@iconify-icons/mingcute/rocket-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+lEACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/round-fill-a0rplSmV.js b/assets/icons/round-fill-a0rplSmV.js new file mode 100644 index 0000000..912938e --- /dev/null +++ b/assets/icons/round-fill-a0rplSmV.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=round-fill-a0rplSmV.js.map diff --git a/assets/icons/round-fill-a0rplSmV.js.map b/assets/icons/round-fill-a0rplSmV.js.map new file mode 100644 index 0000000..3092c6b --- /dev/null +++ b/assets/icons/round-fill-a0rplSmV.js.map @@ -0,0 +1 @@ +{"version":3,"file":"round-fill-a0rplSmV.js","sources":["../../../node_modules/@iconify-icons/mingcute/round-fill.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4sBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/route-line-2YYy3958.js b/assets/icons/route-line-2YYy3958.js new file mode 100644 index 0000000..9b4fdb0 --- /dev/null +++ b/assets/icons/route-line-2YYy3958.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=route-line-2YYy3958.js.map diff --git a/assets/icons/route-line-2YYy3958.js.map b/assets/icons/route-line-2YYy3958.js.map new file mode 100644 index 0000000..e5849a9 --- /dev/null +++ b/assets/icons/route-line-2YYy3958.js.map @@ -0,0 +1 @@ +{"version":3,"file":"route-line-2YYy3958.js","sources":["../../../node_modules/@iconify-icons/mingcute/route-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,24BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/rows-4-line-SxGPYpTa.js b/assets/icons/rows-4-line-SxGPYpTa.js new file mode 100644 index 0000000..3936192 --- /dev/null +++ b/assets/icons/rows-4-line-SxGPYpTa.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=rows-4-line-SxGPYpTa.js.map diff --git a/assets/icons/rows-4-line-SxGPYpTa.js.map b/assets/icons/rows-4-line-SxGPYpTa.js.map new file mode 100644 index 0000000..0b49004 --- /dev/null +++ b/assets/icons/rows-4-line-SxGPYpTa.js.map @@ -0,0 +1 @@ +{"version":3,"file":"rows-4-line-SxGPYpTa.js","sources":["../../../node_modules/@iconify-icons/mingcute/rows-4-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,yvBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/search-2-line-G39AynEw.js b/assets/icons/search-2-line-G39AynEw.js new file mode 100644 index 0000000..91af6d4 --- /dev/null +++ b/assets/icons/search-2-line-G39AynEw.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=search-2-line-G39AynEw.js.map diff --git a/assets/icons/search-2-line-G39AynEw.js.map b/assets/icons/search-2-line-G39AynEw.js.map new file mode 100644 index 0000000..f0874ef --- /dev/null +++ b/assets/icons/search-2-line-G39AynEw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"search-2-line-G39AynEw.js","sources":["../../../node_modules/@iconify-icons/mingcute/search-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4vBACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/settings-3-line-kt4MSpRv.js b/assets/icons/settings-3-line-kt4MSpRv.js new file mode 100644 index 0000000..31fa412 --- /dev/null +++ b/assets/icons/settings-3-line-kt4MSpRv.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=settings-3-line-kt4MSpRv.js.map diff --git a/assets/icons/settings-3-line-kt4MSpRv.js.map b/assets/icons/settings-3-line-kt4MSpRv.js.map new file mode 100644 index 0000000..420b2ef --- /dev/null +++ b/assets/icons/settings-3-line-kt4MSpRv.js.map @@ -0,0 +1 @@ +{"version":3,"file":"settings-3-line-kt4MSpRv.js","sources":["../../../node_modules/@iconify-icons/mingcute/settings-3-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,4kEACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/settings-6-line-ZgCBilgF.js b/assets/icons/settings-6-line-ZgCBilgF.js new file mode 100644 index 0000000..09ae2c8 --- /dev/null +++ b/assets/icons/settings-6-line-ZgCBilgF.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=settings-6-line-ZgCBilgF.js.map diff --git a/assets/icons/settings-6-line-ZgCBilgF.js.map b/assets/icons/settings-6-line-ZgCBilgF.js.map new file mode 100644 index 0000000..f8ce19f --- /dev/null +++ b/assets/icons/settings-6-line-ZgCBilgF.js.map @@ -0,0 +1 @@ +{"version":3,"file":"settings-6-line-ZgCBilgF.js","sources":["../../../node_modules/@iconify-icons/mingcute/settings-6-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,8nCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/share-2-line-PYo-zN94.js b/assets/icons/share-2-line-PYo-zN94.js new file mode 100644 index 0000000..8a1adf1 --- /dev/null +++ b/assets/icons/share-2-line-PYo-zN94.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=share-2-line-PYo-zN94.js.map diff --git a/assets/icons/share-2-line-PYo-zN94.js.map b/assets/icons/share-2-line-PYo-zN94.js.map new file mode 100644 index 0000000..6d736a4 --- /dev/null +++ b/assets/icons/share-2-line-PYo-zN94.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share-2-line-PYo-zN94.js","sources":["../../../node_modules/@iconify-icons/mingcute/share-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+7BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/share-forward-line-4jL-2Q4u.js b/assets/icons/share-forward-line-4jL-2Q4u.js new file mode 100644 index 0000000..7971cd5 --- /dev/null +++ b/assets/icons/share-forward-line-4jL-2Q4u.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=share-forward-line-4jL-2Q4u.js.map diff --git a/assets/icons/share-forward-line-4jL-2Q4u.js.map b/assets/icons/share-forward-line-4jL-2Q4u.js.map new file mode 100644 index 0000000..3cb97f0 --- /dev/null +++ b/assets/icons/share-forward-line-4jL-2Q4u.js.map @@ -0,0 +1 @@ +{"version":3,"file":"share-forward-line-4jL-2Q4u.js","sources":["../../../node_modules/@iconify-icons/mingcute/share-forward-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,y4CACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/sparkles-2-line-g2FqdZ0R.js b/assets/icons/sparkles-2-line-g2FqdZ0R.js new file mode 100644 index 0000000..8af5ea2 --- /dev/null +++ b/assets/icons/sparkles-2-line-g2FqdZ0R.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=sparkles-2-line-g2FqdZ0R.js.map diff --git a/assets/icons/sparkles-2-line-g2FqdZ0R.js.map b/assets/icons/sparkles-2-line-g2FqdZ0R.js.map new file mode 100644 index 0000000..c4adbb8 --- /dev/null +++ b/assets/icons/sparkles-2-line-g2FqdZ0R.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sparkles-2-line-g2FqdZ0R.js","sources":["../../../node_modules/@iconify-icons/mingcute/sparkles-2-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+3DACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/sparkles-line-wjZWGZ1a.js b/assets/icons/sparkles-line-wjZWGZ1a.js new file mode 100644 index 0000000..c43a917 --- /dev/null +++ b/assets/icons/sparkles-line-wjZWGZ1a.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=sparkles-line-wjZWGZ1a.js.map diff --git a/assets/icons/sparkles-line-wjZWGZ1a.js.map b/assets/icons/sparkles-line-wjZWGZ1a.js.map new file mode 100644 index 0000000..8355f1c --- /dev/null +++ b/assets/icons/sparkles-line-wjZWGZ1a.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sparkles-line-wjZWGZ1a.js","sources":["../../../node_modules/@iconify-icons/mingcute/sparkles-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,g0DACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/time-line-ThP0kTRr.js b/assets/icons/time-line-ThP0kTRr.js new file mode 100644 index 0000000..3f1c755 --- /dev/null +++ b/assets/icons/time-line-ThP0kTRr.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=time-line-ThP0kTRr.js.map diff --git a/assets/icons/time-line-ThP0kTRr.js.map b/assets/icons/time-line-ThP0kTRr.js.map new file mode 100644 index 0000000..dd04a64 --- /dev/null +++ b/assets/icons/time-line-ThP0kTRr.js.map @@ -0,0 +1 @@ +{"version":3,"file":"time-line-ThP0kTRr.js","sources":["../../../node_modules/@iconify-icons/mingcute/time-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,y1BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/transfer-4-line-Q9QJoxz3.js b/assets/icons/transfer-4-line-Q9QJoxz3.js new file mode 100644 index 0000000..fdd104d --- /dev/null +++ b/assets/icons/transfer-4-line-Q9QJoxz3.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=transfer-4-line-Q9QJoxz3.js.map diff --git a/assets/icons/transfer-4-line-Q9QJoxz3.js.map b/assets/icons/transfer-4-line-Q9QJoxz3.js.map new file mode 100644 index 0000000..90660e9 --- /dev/null +++ b/assets/icons/transfer-4-line-Q9QJoxz3.js.map @@ -0,0 +1 @@ +{"version":3,"file":"transfer-4-line-Q9QJoxz3.js","sources":["../../../node_modules/@iconify-icons/mingcute/transfer-4-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,47BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/translate-line-HpDtlqS2.js b/assets/icons/translate-line-HpDtlqS2.js new file mode 100644 index 0000000..34529b4 --- /dev/null +++ b/assets/icons/translate-line-HpDtlqS2.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=translate-line-HpDtlqS2.js.map diff --git a/assets/icons/translate-line-HpDtlqS2.js.map b/assets/icons/translate-line-HpDtlqS2.js.map new file mode 100644 index 0000000..613779f --- /dev/null +++ b/assets/icons/translate-line-HpDtlqS2.js.map @@ -0,0 +1 @@ +{"version":3,"file":"translate-line-HpDtlqS2.js","sources":["../../../node_modules/@iconify-icons/mingcute/translate-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,+jCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/unlock-line-w3piJMVb.js b/assets/icons/unlock-line-w3piJMVb.js new file mode 100644 index 0000000..69523a0 --- /dev/null +++ b/assets/icons/unlock-line-w3piJMVb.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=unlock-line-w3piJMVb.js.map diff --git a/assets/icons/unlock-line-w3piJMVb.js.map b/assets/icons/unlock-line-w3piJMVb.js.map new file mode 100644 index 0000000..ba4bf26 --- /dev/null +++ b/assets/icons/unlock-line-w3piJMVb.js.map @@ -0,0 +1 @@ +{"version":3,"file":"unlock-line-w3piJMVb.js","sources":["../../../node_modules/@iconify-icons/mingcute/unlock-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,whCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/upload-3-line-Qsjvubiw.js b/assets/icons/upload-3-line-Qsjvubiw.js new file mode 100644 index 0000000..b5178f1 --- /dev/null +++ b/assets/icons/upload-3-line-Qsjvubiw.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=upload-3-line-Qsjvubiw.js.map diff --git a/assets/icons/upload-3-line-Qsjvubiw.js.map b/assets/icons/upload-3-line-Qsjvubiw.js.map new file mode 100644 index 0000000..0733a7e --- /dev/null +++ b/assets/icons/upload-3-line-Qsjvubiw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"upload-3-line-Qsjvubiw.js","sources":["../../../node_modules/@iconify-icons/mingcute/upload-3-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,0hCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/user-4-line-zT_bpOrS.js b/assets/icons/user-4-line-zT_bpOrS.js new file mode 100644 index 0000000..2042044 --- /dev/null +++ b/assets/icons/user-4-line-zT_bpOrS.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=user-4-line-zT_bpOrS.js.map diff --git a/assets/icons/user-4-line-zT_bpOrS.js.map b/assets/icons/user-4-line-zT_bpOrS.js.map new file mode 100644 index 0000000..9f995f0 --- /dev/null +++ b/assets/icons/user-4-line-zT_bpOrS.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-4-line-zT_bpOrS.js","sources":["../../../node_modules/@iconify-icons/mingcute/user-4-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,2lCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/user-add-line-zzW9OULB.js b/assets/icons/user-add-line-zzW9OULB.js new file mode 100644 index 0000000..066a013 --- /dev/null +++ b/assets/icons/user-add-line-zzW9OULB.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=user-add-line-zzW9OULB.js.map diff --git a/assets/icons/user-add-line-zzW9OULB.js.map b/assets/icons/user-add-line-zzW9OULB.js.map new file mode 100644 index 0000000..03a9e7e --- /dev/null +++ b/assets/icons/user-add-line-zzW9OULB.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-add-line-zzW9OULB.js","sources":["../../../node_modules/@iconify-icons/mingcute/user-add-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,g5BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/user-edit-line-9VnWCh0X.js b/assets/icons/user-edit-line-9VnWCh0X.js new file mode 100644 index 0000000..c345b24 --- /dev/null +++ b/assets/icons/user-edit-line-9VnWCh0X.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=user-edit-line-9VnWCh0X.js.map diff --git a/assets/icons/user-edit-line-9VnWCh0X.js.map b/assets/icons/user-edit-line-9VnWCh0X.js.map new file mode 100644 index 0000000..486e67b --- /dev/null +++ b/assets/icons/user-edit-line-9VnWCh0X.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-edit-line-9VnWCh0X.js","sources":["../../../node_modules/@iconify-icons/mingcute/user-edit-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,g4CACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/user-follow-line-k_GCWTtp.js b/assets/icons/user-follow-line-k_GCWTtp.js new file mode 100644 index 0000000..ac09221 --- /dev/null +++ b/assets/icons/user-follow-line-k_GCWTtp.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=user-follow-line-k_GCWTtp.js.map diff --git a/assets/icons/user-follow-line-k_GCWTtp.js.map b/assets/icons/user-follow-line-k_GCWTtp.js.map new file mode 100644 index 0000000..265c83f --- /dev/null +++ b/assets/icons/user-follow-line-k_GCWTtp.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-follow-line-k_GCWTtp.js","sources":["../../../node_modules/@iconify-icons/mingcute/user-follow-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,s8BACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/user-warning-line-gL3RGb1N.js b/assets/icons/user-warning-line-gL3RGb1N.js new file mode 100644 index 0000000..e9b4a74 --- /dev/null +++ b/assets/icons/user-warning-line-gL3RGb1N.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=user-warning-line-gL3RGb1N.js.map diff --git a/assets/icons/user-warning-line-gL3RGb1N.js.map b/assets/icons/user-warning-line-gL3RGb1N.js.map new file mode 100644 index 0000000..86073eb --- /dev/null +++ b/assets/icons/user-warning-line-gL3RGb1N.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-warning-line-gL3RGb1N.js","sources":["../../../node_modules/@iconify-icons/mingcute/user-warning-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,kwCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/user-x-line-zIdph-gu.js b/assets/icons/user-x-line-zIdph-gu.js new file mode 100644 index 0000000..d8ffc62 --- /dev/null +++ b/assets/icons/user-x-line-zIdph-gu.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=user-x-line-zIdph-gu.js.map diff --git a/assets/icons/user-x-line-zIdph-gu.js.map b/assets/icons/user-x-line-zIdph-gu.js.map new file mode 100644 index 0000000..24dcfee --- /dev/null +++ b/assets/icons/user-x-line-zIdph-gu.js.map @@ -0,0 +1 @@ +{"version":3,"file":"user-x-line-zIdph-gu.js","sources":["../../../node_modules/@iconify-icons/mingcute/user-x-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,u3CACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/volume-line-PZujbN8h.js b/assets/icons/volume-line-PZujbN8h.js new file mode 100644 index 0000000..be36111 --- /dev/null +++ b/assets/icons/volume-line-PZujbN8h.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=volume-line-PZujbN8h.js.map diff --git a/assets/icons/volume-line-PZujbN8h.js.map b/assets/icons/volume-line-PZujbN8h.js.map new file mode 100644 index 0000000..9bf3bba --- /dev/null +++ b/assets/icons/volume-line-PZujbN8h.js.map @@ -0,0 +1 @@ +{"version":3,"file":"volume-line-PZujbN8h.js","sources":["../../../node_modules/@iconify-icons/mingcute/volume-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,wrCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/volume-mute-line-WthBoXru.js b/assets/icons/volume-mute-line-WthBoXru.js new file mode 100644 index 0000000..30804db --- /dev/null +++ b/assets/icons/volume-mute-line-WthBoXru.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=volume-mute-line-WthBoXru.js.map diff --git a/assets/icons/volume-mute-line-WthBoXru.js.map b/assets/icons/volume-mute-line-WthBoXru.js.map new file mode 100644 index 0000000..9b28c1e --- /dev/null +++ b/assets/icons/volume-mute-line-WthBoXru.js.map @@ -0,0 +1 @@ +{"version":3,"file":"volume-mute-line-WthBoXru.js","sources":["../../../node_modules/@iconify-icons/mingcute/volume-mute-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,kkCACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/icons/walk-line-CF7a5s4t.js b/assets/icons/walk-line-CF7a5s4t.js new file mode 100644 index 0000000..d646060 --- /dev/null +++ b/assets/icons/walk-line-CF7a5s4t.js @@ -0,0 +1,2 @@ +const l={width:24,height:24,body:''};export{l as default}; +//# sourceMappingURL=walk-line-CF7a5s4t.js.map diff --git a/assets/icons/walk-line-CF7a5s4t.js.map b/assets/icons/walk-line-CF7a5s4t.js.map new file mode 100644 index 0000000..7d4df81 --- /dev/null +++ b/assets/icons/walk-line-CF7a5s4t.js.map @@ -0,0 +1 @@ +{"version":3,"file":"walk-line-CF7a5s4t.js","sources":["../../../node_modules/@iconify-icons/mingcute/walk-line.js"],"sourcesContent":["const data = {\n\t\"width\": 24,\n\t\"height\": 24,\n\t\"body\": \"\"\n};\nexport default data;\n"],"names":["data"],"mappings":"AAAK,MAACA,EAAO,CACZ,MAAS,GACT,OAAU,GACV,KAAQ,42CACT","x_google_ignoreList":[0]} \ No newline at end of file diff --git a/assets/instances-MzK7fGXv.json b/assets/instances-MzK7fGXv.json new file mode 100644 index 0000000..bb6c44b --- /dev/null +++ b/assets/instances-MzK7fGXv.json @@ -0,0 +1,384 @@ +[ + "mastodon.social", + "mstdn.jp", + "mstdn.social", + "mas.to", + "mastodon.world", + "infosec.exchange", + "hachyderm.io", + "troet.cafe", + "mastodon.uno", + "m.cmx.im", + "techhub.social", + "piaille.fr", + "mastodon.gamedev.place", + "mastodonapp.uk", + "mastodon.nl", + "social.vivaldi.net", + "universeodon.com", + "mastodon.sdf.org", + "c.im", + "mstdn.ca", + "kolektiva.social", + "mastodon-japan.net", + "norden.social", + "o3o.ca", + "sfba.social", + "nrw.social", + "tech.lgbt", + "mastodon.scot", + "mstdn.party", + "occm.cc", + "aus.social", + "mathstodon.xyz", + "toot.community", + "ohai.social", + "sueden.social", + "mastodon.ie", + "mastodon.top", + "mastodontech.de", + "mastodon.nu", + "masto.es", + "freemasonry.social", + "ioc.exchange", + "mindly.social", + "hessen.social", + "ruhr.social", + "nerdculture.de", + "muenchen.social", + "defcon.social", + "social.anoxinon.de", + "mastodon.green", + "mastouille.fr", + "social.linux.pizza", + "social.cologne", + "indieweb.social", + "livellosegreto.it", + "ruby.social", + "ieji.de", + "mastodon.nz", + "toot.io", + "tkz.one", + "mastodont.cat", + "social.tchncs.de", + "mastodon.com.tr", + "noc.social", + "sciences.social", + "toot.wales", + "masto.nu", + "phpc.social", + "social.dev-wiki.de", + "cyberplace.social", + "mastodontti.fi", + "climatejustice.social", + "urbanists.social", + "mstdn.plus", + "metalhead.club", + "ravenation.club", + "mastodon.ml", + "fairy.id", + "feuerwehr.social", + "dresden.network", + "stranger.social", + "mastodon.iriseden.eu", + "rollenspiel.social", + "pol.social", + "mstdn.business", + "mstdn.games", + "wien.rocks", + "h4.io", + "socel.net", + "mastodon.eus", + "wehavecookies.social", + "glasgow.social", + "mastodon.me.uk", + "uri.life", + "hostux.social", + "theblower.au", + "mastodon-uk.net", + "masto.pt", + "awscommunity.social", + "flipboard.social", + "mast.lat", + "freiburg.social", + "snabelen.no", + "mastodon.zaclys.com", + "muenster.im", + "mastodon-belgium.be", + "geekdom.social", + "hcommons.social", + "tooot.im", + "tooting.ch", + "rheinneckar.social", + "discuss.systems", + "sunny.garden", + "mapstodon.space", + "toad.social", + "lor.sh", + "peoplemaking.games", + "union.place", + "bark.lgbt", + "bonn.social", + "tilde.zone", + "vmst.io", + "mastodon.berlin", + "emacs.ch", + "blorbo.social", + "furry.engineer", + "rivals.space", + "cupoftea.social", + "qdon.space", + "graphics.social", + "veganism.social", + "ludosphere.fr", + "4bear.com", + "famichiki.jp", + "expressional.social", + "convo.casa", + "historians.social", + "mastorol.es", + "retro.pizza", + "shelter.moe", + "mast.dragon-fly.club", + "sakurajima.moe", + "mastodon.arch-linux.cz", + "squawk.mytransponder.com", + "mastodon.gal", + "disabled.social", + "vkl.world", + "eupolicy.social", + "fandom.ink", + "toot.funami.tech", + "mastodonbooks.net", + "lgbtqia.space", + "witter.cz", + "planetearth.social", + "oslo.town", + "mastodon.com.pl", + "pawb.fun", + "darmstadt.social", + "masto.nobigtech.es", + "cr8r.gg", + "pnw.zone", + "hear-me.social", + "furries.club", + "gaygeek.social", + "birdon.social", + "mastodon.energy", + "mastodon-swiss.org", + "dizl.de", + "libretooth.gr", + "mustard.blog", + "machteburch.social", + "fulda.social", + "muri.network", + "babka.social", + "archaeo.social", + "mastodon.uy", + "xarxa.cloud", + "corteximplant.com", + "mastodon.london", + "urusai.social", + "thecanadian.social", + "federated.press", + "kanoa.de", + "opalstack.social", + "bahn.social", + "mograph.social", + "dmv.community", + "social.bau-ha.us", + "mastodon.free-solutions.org", + "masto.nyc", + "tyrol.social", + "burma.social", + "toot.kif.rocks", + "donphan.social", + "mast.hpc.social", + "musicians.today", + "drupal.community", + "hometech.social", + "norcal.social", + "social.politicaconciencia.org", + "social.seattle.wa.us", + "is.nota.live", + "genealysis.social", + "wargamers.social", + "guitar.rodeo", + "bookstodon.com", + "mstdn.dk", + "elizur.me", + "irsoluciones.social", + "h-net.social", + "mastoot.fr", + "qaf.men", + "est.social", + "kurry.social", + "mastodon.pnpde.social", + "ani.work", + "nederland.online", + "epicure.social", + "occitania.social", + "lgbt.io", + "mountains.social", + "persiansmastodon.com", + "seocommunity.social", + "cyberfurz.social", + "fedi.at", + "gamepad.club", + "augsburg.social", + "mastodon.education", + "toot.re", + "linux.social", + "neovibe.app", + "musician.social", + "esq.social", + "social.veraciousnetwork.com", + "datasci.social", + "tooters.org", + "ciberlandia.pt", + "cloud-native.social", + "social.silicon.moe", + "cosocial.ca", + "arvr.social", + "hispagatos.space", + "friendsofdesoto.social", + "musicworld.social", + "aut.social", + "masto.yttrx.com", + "mastodon.wien", + "colorid.es", + "arsenalfc.social", + "allthingstech.social", + "mastodon.vlaanderen", + "mastodon.com.py", + "tooter.social", + "lounge.town", + "puntarella.party", + "earthstream.social", + "apobangpo.space", + "opencoaster.net", + "frikiverse.zone", + "airwaves.social", + "toot.garden", + "lewacki.space", + "gardenstate.social", + "theatl.social", + "maly.io", + "library.love", + "kfem.cat", + "ruhrpott.social", + "techtoots.com", + "furry.energy", + "mastodon.pirateparty.be", + "metalverse.social", + "indieauthors.social", + "tuiter.rocks", + "mastodon.africa", + "jvm.social", + "poweredbygay.social", + "fikaverse.club", + "gametoots.de", + "mastodon.cr", + "hoosier.social", + "khiar.net", + "seo.chat", + "drumstodon.net", + "raphus.social", + "toots.nu", + "k8s.social", + "mastodon.holeyfox.co", + "fribygda.no", + "x0r.be", + "fpl.social", + "toot.pizza", + "mastodon.cipherbliss.com", + "burningboard.net", + "synapse.cafe", + "cultur.social", + "vermont.masto.host", + "mastodon.bot", + "bologna.one", + "mastodon.sg", + "tchafia.be", + "rail.chat", + "mastodon.hosnet.fr", + "leipzig.town", + "wayne.social", + "rheinhessen.social", + "rap.social", + "cwb.social", + "mastodon.bachgau.social", + "cville.online", + "bzh.social", + "mastodon.escepticos.es", + "zenzone.social", + "mastodon.ee", + "lsbt.me", + "neurodiversity-in.au", + "fairmove.net", + "stereodon.social", + "mcr.wtf", + "mastodon.frl", + "mikumikudance.cloud", + "okla.social", + "camp.smolnet.org", + "ailbhean.co-shaoghal.net", + "clj.social", + "tu.social", + "nomanssky.social", + "mastodon.iow.social", + "frontrange.co", + "episcodon.net", + "devianze.city", + "paktodon.asia", + "travelpandas.fr", + "silversword.online", + "nwb.social", + "skastodon.com", + "kcmo.social", + "balkan.fedive.rs", + "openedtech.social", + "mastodon.ph", + "enshittification.social", + "spojnik.works", + "mastodon.conquestuniverse.com", + "nutmeg.social", + "social.sndevs.com", + "social.diva.exchange", + "growers.social", + "pdx.sh", + "nfld.me", + "cartersville.social", + "voi.social", + "mastodon.babb.no", + "kzoo.to", + "mastodon.vanlife.is", + "toot.works", + "sanjuans.life", + "dariox.club", + "xreality.social", + "social.ferrocarril.net", + "pool.social", + "polsci.social", + "mastodon.mg", + "23.illuminati.org", + "apotheke.social", + "jaxbeach.social", + "ceilidh.online", + "netsphere.one", + "biplus.social", + "bvb.social", + "ms.maritime.social", + "darticulate.com", + "persia.social", + "streamerchat.social", + "troet.fediverse.at", + "publishing.social", + "finsup.social", + "kjas.no", + "wxw.moe", + "learningdisability.social", + "mastodon.bida.im", + "computerfairi.es", + "tea.codes" +] \ No newline at end of file diff --git a/assets/main-1wKRS81d.js b/assets/main-1wKRS81d.js new file mode 100644 index 0000000..0073754 --- /dev/null +++ b/assets/main-1wKRS81d.js @@ -0,0 +1,25 @@ +import{s as T,a as Q,b as qe,c as be,g as ct,d as ds,e as St,p as ht,u as Ks,L as $e,f as jt,h as us,i as Zs,C as Js,j as Ke,k as Xs,l as hn,m as He,n as hs,t as Qs,o as ei,q as $n,r as ti,v as An,w as Rn}from"./useTitle-dCp14HlU.js";import{F as z,_ as G,p as $,u as _e,x as Je,a as Me,b as e,k as _,y as mt,c as pn,M as de,d as ze,e as Tt,q as pe,f as xt,g as Qe,I as rt,A as lt,h as fn,l as _n,s as ps,i as fs,j as it,T as ni,m as si,n as ii,P as oi,J as ai,C as ms,o as ci,r as gt,t as ri,v as li,w as gs,z as di,B as ui,D as hi,E as pi,G as Et,H as bs,K as Ln,L as fi,R as mn,N as Ue,O as mi,Q as gi}from"./vendor-GrW-f9CX.js";import{u as gn,s as se,o as En,a as bi,I as w,M as Ae,A as st,N as It,b as Ze,c as et,L as oe,g as ys,l as yi,t as Mn,R as bt,d as je,e as Xe,f as Re,h as ws,i as on,E as vs,j as Ge,n as ot,k as wi,S as Wt,m as Pn,T as ks,p as nt,q as bn,r as Be,v as Dn,w as vi,x as ki,y as Ss,C as Si,z as Ii,F as Is,B as Mt,D as Ci,G as $t,H as yn,J as Cs,K as Ti,O as Nt}from"./status-FORkhePO.js";function Ct(t=()=>{},n=[]){const i=z(t);G(()=>{i.current=t},[n]),G(()=>{const s=()=>{const o=document.hidden||document.visibilityState==="hidden";i.current(!o)};return document.addEventListener("visibilitychange",s),()=>document.removeEventListener("visibilitychange",s)},[])}const xi=1e3*3,$i=15e3,Ai=Je(function({isLoggedIn:n}){const[i,s]=$(!0);Ct(s);const o=async(d,r,u)=>{var f;if(T.notificationsLast){const c=d.v1.notifications.list({limit:1,sinceId:T.notificationsLast.id}),{value:p}=await c.next();if(p!=null&&p.length)if(u)T.notificationsShowNew=!0;else{let l;try{const b=await d.v1.markers.fetch({timeline:"notifications"});l=(f=b==null?void 0:b.notifications)==null?void 0:f.lastReadId}catch{}l?T.notificationsShowNew=p[0].id!==l:T.notificationsShowNew=!0}}};G(()=>{let d,r;if(n&&i){const{masto:u,streaming:f,instance:c}=Q();(async()=>{await o(u,c);let p=!1;f&&(r=setTimeout(()=>{(async()=>{try{p=!0,d=f.user.notification.subscribe();for await(const l of d){if(!d||!i)break;l.event==="notification"&&qe(l.payload,c,{skipThreading:!0}),T.notificationsShowNew=!0}}catch{p=!1}p||(r=setInterval(()=>{o(u,c,!0)},$i))})()},xi))})()}return()=>{var u;(u=d==null?void 0:d.unsubscribe)==null||u.call(d),d=null,clearTimeout(r),clearInterval(r)}},[i,n]);const a=z(),h=()=>{a.current=Date.now(),fetch("./version.json").then(d=>d.json()).then(d=>{d&&(T.appVersion=d)}).catch(d=>{})};return gn(h,i&&1e3*60*30),Ct(d=>{d&&(a.current?Date.now()-a.current>1e3*60*60&&h():h())}),_e("shift+alt+k",()=>{const d=T.settings.cloakMode;T.settings.cloakMode=!d,se({text:`Cloak mode ${d?"disabled":"enabled"}`})}),null});function Ri(){const t=Me(T);function n(i){if(t.composerState.minimized){T.composerState.minimized=!1,En();return}i.shiftKey?bi()||(T.showCompose=!0):(En(),T.showCompose=!0)}return _e("c, shift+c",n,{ignoreEventWhen:i=>!!document.querySelector("#modal-container > *")}),e("button",{type:"button",id:"compose-button",onClick:n,class:`${t.composerState.minimized?"min":""} ${t.composerState.publishing?"loading":""} ${t.composerState.publishingError?"error":""}`,children:e(w,{icon:"quill",size:"xl",alt:"Compose"})})}const _i=Je(function(){const n=Me(T);function i(){T.showKeyboardShortcutsHelp=!1}return _e("?, shift+?, shift+slash",s=>{T.showKeyboardShortcutsHelp=!0},{ignoreEventWhen:s=>!!document.querySelector("#modal-container > *")}),!!n.showKeyboardShortcutsHelp&&e(Ae,{onClose:i,children:e("div",{id:"keyboard-shortcuts-help-container",class:"sheet",tabindex:"-1",children:[e("button",{type:"button",class:"sheet-close",onClick:i,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:"Keyboard shortcuts"})}),e("main",{children:e("table",{children:[{action:"Keyboard shortcuts help",keys:e("kbd",{children:"?"})},{action:"Next post",keys:e("kbd",{children:"j"})},{action:"Previous post",keys:e("kbd",{children:"k"})},{action:"Skip carousel to next post",keys:e(_,{children:[e("kbd",{children:"Shift"})," + ",e("kbd",{children:"j"})]})},{action:"Skip carousel to previous post",keys:e(_,{children:[e("kbd",{children:"Shift"})," + ",e("kbd",{children:"k"})]})},{action:"Load new posts",keys:e("kbd",{children:"."})},{action:"Open post details",keys:e(_,{children:[e("kbd",{children:"Enter"})," or ",e("kbd",{children:"o"})]})},{action:e(_,{children:["Expand content warning or",e("br",{}),"toggle expanded/collapsed thread"]}),keys:e("kbd",{children:"x"})},{action:"Close post or dialogs",keys:e(_,{children:[e("kbd",{children:"Esc"})," or ",e("kbd",{children:"Backspace"})]})},{action:"Focus column in multi-column mode",keys:e(_,{children:[e("kbd",{children:"1"})," to ",e("kbd",{children:"9"})]})},{action:"Compose new post",keys:e("kbd",{children:"c"})},{action:"Compose new post (new window)",className:"insignificant",keys:e(_,{children:[e("kbd",{children:"Shift"})," + ",e("kbd",{children:"c"})]})},{action:"Send post",keys:e(_,{children:[e("kbd",{children:"Ctrl"})," + ",e("kbd",{children:"Enter"})," or ",e("kbd",{children:"⌘"})," +"," ",e("kbd",{children:"Enter"})]})},{action:"Search",keys:e("kbd",{children:"/"})},{action:"Reply",keys:e("kbd",{children:"r"})},{action:"Reply (new window)",className:"insignificant",keys:e(_,{children:[e("kbd",{children:"Shift"})," + ",e("kbd",{children:"r"})]})},{action:"Like (favourite)",keys:e(_,{children:[e("kbd",{children:"l"})," or ",e("kbd",{children:"f"})]})},{action:"Boost",keys:e(_,{children:[e("kbd",{children:"Shift"})," + ",e("kbd",{children:"b"})]})},{action:"Bookmark",keys:e("kbd",{children:"d"})},{action:"Toggle Cloak mode",keys:e(_,{children:[e("kbd",{children:"Shift"})," + ",e("kbd",{children:"Alt"})," + ",e("kbd",{children:"k"})]})}].map(({action:s,className:o,keys:a})=>e("tr",{children:[e("th",{class:o,children:s}),e("td",{children:a})]},s))})})]})})});function Li({onClose:t}){const{masto:n}=Q(),i=be.local.getJSON("accounts"),s=ct(),o=i.length>1,[a,h]=mt(r=>r+1,0),[d]=pn();return e("div",{id:"accounts-container",class:"sheet",tabIndex:"-1",children:[!!t&&e("button",{type:"button",class:"sheet-close",onClick:t,children:e(w,{icon:"x"})}),e("header",{class:"header-grid",children:e("h2",{children:"Accounts"})}),e("main",{children:e("section",{children:[e("ul",{class:"accounts-list",ref:d,children:i.map((r,u)=>{const f=r.info.id===s,c=u===0;return e("li",{children:[e("div",{children:[o&&e("span",{class:`current ${f?"is-current":""}`,children:e(w,{icon:"check-circle",alt:"Current"})}),e(st,{url:r.info.avatarStatic,size:"xxl",onDblClick:async()=>{if(f)try{const p=await n.v1.accounts.$select(r.info.id).fetch();r.info=p,be.local.setJSON("accounts",i),h()}catch{}}}),e(It,{account:o?{...r.info,acct:/@/.test(r.info.acct)?r.info.acct:`${r.info.acct}@${r.instanceURL}`}:r.info,showAcct:!0,onClick:()=>{f?T.showAccount=`${r.info.username}@${r.instanceURL}`:(ds(r.info.id),location.reload())}})]}),e("div",{class:"actions",children:[c&&o&&e(_,{children:[e("span",{class:"tag",children:"Default"})," "]}),e(Ze,{align:"end",menuButton:e("button",{type:"button",title:"More",class:"plain more-button",children:e(w,{icon:"more",size:"l",alt:"More"})}),children:[e(de,{onClick:()=>{T.showAccount=`${r.info.username}@${r.instanceURL}`},children:[e(w,{icon:"user"}),e("span",{children:"View profile…"})]}),e(ze,{}),o&&e(de,{disabled:c,onClick:()=>{i.splice(u,1),i.unshift(r),be.local.setJSON("accounts",i),h()},children:[e(w,{icon:"check-circle"}),e("span",{children:"Set as default"})]}),e(et,{subMenu:!0,confirmLabel:e(_,{children:[e(w,{icon:"exit"}),e("span",{children:["Log out @",r.info.acct,"?"]})]}),disabled:!f,menuItemClassName:"danger",onClick:()=>{i.splice(u,1),be.local.setJSON("accounts",i),location.href=location.pathname||"/"},children:[e(w,{icon:"exit"}),e("span",{children:"Log out…"})]})]})]})]},r.info.id)})}),e("p",{children:e(oe,{to:"/login",class:"button plain2",onClick:t,children:[e(w,{icon:"plus"})," ",e("span",{children:"Add an existing account"})]})}),o&&e("p",{children:e("small",{children:["Note: ",e("i",{children:"Default"})," account will always be used for first load. Switched accounts will persist during the session."]})})]})})]})}const wn="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%2064%2064'%3e%3cpath%20fill='none'%20d='M0%200h63.994v63.994H0z'/%3e%3cpath%20fill='%23a4bff7'%20d='M37.774%2011.471c14.639%203.752%2019.034%2016.557%2015.889%2031.304-.696%203.261-2.563%206.661-6.356%208.693-3.204%201.717-8.07%202.537-15.338.55l-9.634-2.404C11.651%2046.992%208.378%2038.733%2010.027%2031.823c3.627-15.201%2015.543-23.48%2027.747-20.352Z'/%3e%3cpath%20fill='%23d8e7fe'%20d='M36.76%2015.429c12.289%203.15%2015.547%2014.114%2012.907%2026.493-.947%204.44-4.937%209.365-16.664%206.143l-9.684-2.417c-7.854-1.923-10.53-7.8-9.318-12.877%203.016-12.639%2012.611-19.943%2022.759-17.342Z'/%3e%3cpath%20fill='%236081e6'%20d='M27.471%2024.991c-1.457-.698-7.229%203.213-7.663%208.926-.182%202.39%204.55%203.237%205.071-.169.725-4.743%203.715-8.218%202.592-8.757Zm10.746%202.005c-2.083.327-.382%205.901-.595%2010.727-.123%202.8%204.388%203.464%204.703%202.011%201.098-5.073-2.066-13.058-4.108-12.738Z'/%3e%3c/svg%3e";function Nn(t){const{masto:n}=Q();return n.v1.push.subscription.create(t)}function Ei(){const{masto:t}=Q();return t.v1.push.subscription.fetch()}function Mi(t){const{masto:n}=Q();return n.v1.push.subscription.update(t)}function Pi(){const{masto:t}=Q();return t.v1.push.subscription.remove()}function Jt(){return"serviceWorker"in navigator&&"PushManager"in window}function Di(){return navigator.serviceWorker.getRegistration()}async function vn(){const t=await Di(),n=t?await t.pushManager.getSubscription():void 0;return{registration:t,subscription:n}}function Ts(t){const n="=".repeat((4-t.length%4)%4),i=`${t}${n}`.replace(/-/g,"+").replace(/_/g,"/"),s=window.atob(i),o=new Uint8Array(s.length);for(let a=0;a{l.preventDefault();const m=new FormData(s.current).get("theme"),k=document.documentElement;if(m==="auto"){k.classList.remove("is-light","is-dark");const g=document.querySelector('meta[data-theme-setting="manual"]');g&&(g.name=""),document.querySelectorAll('meta[data-theme-setting="auto"]').forEach(C=>{C.name="theme-color"})}else{k.classList.toggle("is-light",m==="light"),k.classList.toggle("is-dark",m==="dark");const g=document.querySelector('meta[data-theme-setting="manual"]');g&&(g.name="theme-color",g.content=m==="light"?g.dataset.themeLightColor:g.dataset.themeDarkColor),document.querySelectorAll('meta[data-theme-setting="auto"]').forEach(C=>{C.name=""})}document.querySelector('meta[name="color-scheme"]').setAttribute("content",m==="auto"?"dark light":m),m==="auto"?be.local.del("theme"):be.local.set("theme",m)},children:e("div",{class:"radio-group",children:[e("label",{children:[e("input",{type:"radio",name:"theme",value:"light",defaultChecked:i==="light"}),e("span",{children:"Light"})]}),e("label",{children:[e("input",{type:"radio",name:"theme",value:"dark",defaultChecked:i==="dark"}),e("span",{children:"Dark"})]}),e("label",{children:[e("input",{type:"radio",name:"theme",value:"auto",defaultChecked:i!=="light"&&i!=="dark"}),e("span",{children:"Auto"})]})]})})})]}),e("li",{children:[e("div",{children:e("label",{children:"Text size"})}),e("div",{class:"range-group",children:[e("span",{style:{fontSize:ft[0]},children:"A"})," ",e("input",{type:"range",min:ft[0],max:ft[ft.length-1],step:"1",value:d,list:"sizes",onChange:l=>{const b=parseInt(l.target.value,10);document.documentElement.style.setProperty("--text-size",`${b}px`),b===On?be.local.del("textSize"):be.local.set("textSize",l.target.value)}})," ",e("span",{style:{fontSize:ft[ft.length-1]},children:"A"}),e("datalist",{id:"sizes",children:ft.map(l=>e("option",{value:l}))})]})]})]})}),c&&e(_,{children:[e("h3",{children:"Posting"}),e("section",{children:e("ul",{children:e("li",{children:[e("div",{children:e("label",{for:"posting-privacy-field",children:["Default visibility"," ",e(w,{icon:"cloud",alt:"Synced",class:"synced-icon"})]})}),e("div",{children:e("select",{id:"posting-privacy-field",value:r["posting:default:visibility"]||"public",onChange:l=>{const{value:b}=l.target;(async()=>{try{await f.v1.accounts.updateCredentials({source:{privacy:b}}),u({...r,"posting:default:visibility":b}),be.account.set("preferences",{...r,"posting:default:visibility":b})}catch{alert("Failed to update posting privacy")}})()},children:[e("option",{value:"public",children:"Public"}),e("option",{value:"unlisted",children:"Unlisted"}),e("option",{value:"private",children:"Followers only"})]})})]})})}),e("p",{class:"section-postnote",children:[e(w,{icon:"cloud",alt:"Synced",class:"synced-icon"})," ",e("small",{children:["Synced to your instance server's settings."," ",e("a",{href:`https://${p}/`,target:"_blank",rel:"noopener noreferrer",children:["Go to your instance (",p,") for more settings."]})]})]})]}),e("h3",{children:"Experiments"}),e("section",{children:e("ul",{children:[e("li",{children:e("label",{children:[e("input",{type:"checkbox",checked:n.settings.autoRefresh,onChange:l=>{T.settings.autoRefresh=l.target.checked}})," ","Auto refresh timeline posts"]})}),e("li",{children:e("label",{children:[e("input",{type:"checkbox",checked:n.settings.boostsCarousel,onChange:l=>{T.settings.boostsCarousel=l.target.checked}})," ","Boosts carousel"]})}),e("li",{children:[e("label",{children:[e("input",{type:"checkbox",checked:n.settings.contentTranslation,onChange:l=>{const{checked:b}=l.target;T.settings.contentTranslation=b,b||(T.settings.contentTranslationTargetLanguage=null)}})," ","Post translation"]}),e("div",{class:`sub-section ${n.settings.contentTranslation?"":"more-insignificant"}`,children:[e("div",{children:e("label",{children:["Translate to"," ",e("select",{value:o||"",disabled:!n.settings.contentTranslation,onChange:l=>{T.settings.contentTranslationTargetLanguage=l.target.value||null},children:[e("option",{value:"",children:["System language (",h,")"]}),e("option",{disabled:!0,children:"──────────"}),Mn.map(l=>e("option",{value:l.code,children:l.name}))]})]})}),e("hr",{}),e("p",{class:"checkbox-fieldset",children:['Hide "Translate" button for',n.settings.contentTranslationHideLanguages.length>0&&e(_,{children:[" ","(",n.settings.contentTranslationHideLanguages.length,")"]}),":",e("div",{class:"checkbox-fields",children:Mn.map(l=>e("label",{children:[e("input",{type:"checkbox",checked:n.settings.contentTranslationHideLanguages.includes(l.code),onChange:b=>{const{checked:m}=b.target;m?T.settings.contentTranslationHideLanguages.push(l.code):T.settings.contentTranslationHideLanguages=n.settings.contentTranslationHideLanguages.filter(k=>k!==l.code)}})," ",l.name]}))})]}),e("p",{class:"insignificant",children:e("small",{children:["Note: This feature uses external translation services, powered by"," ",e("a",{href:"https://github.com/cheeaun/lingva-api",target:"_blank",rel:"noopener noreferrer",children:"Lingva API"})," ","&"," ",e("a",{href:"https://github.com/thedaviddelta/lingva-translate",target:"_blank",rel:"noopener noreferrer",children:"Lingva Translate"}),"."]})}),e("hr",{}),e("div",{children:[e("label",{children:[e("input",{type:"checkbox",checked:n.settings.contentTranslationAutoInline,disabled:!n.settings.contentTranslation,onChange:l=>{T.settings.contentTranslationAutoInline=l.target.checked}})," ","Auto inline translation"]}),e("p",{class:"insignificant",children:e("small",{children:["Automatically show translation for posts in timeline. Only works for ",e("b",{children:"short"})," posts without content warning, media and poll."]})})]})]})]}),!!zi&&c&&e("li",{children:[e("label",{children:[e("input",{type:"checkbox",checked:n.settings.composerGIFPicker,onChange:l=>{T.settings.composerGIFPicker=l.target.checked}})," ","GIF Picker for composer"]}),e("div",{class:"sub-section insignificant",children:e("small",{children:["Note: This feature uses external GIF search service, powered by"," ",e("a",{href:"https://developers.giphy.com/",target:"_blank",rel:"noopener noreferrer",children:"GIPHY"}),". G-rated (suitable for viewing by all ages), tracking parameters are stripped, referrer information is omitted from requests, but search queries and IP address information will still reach their servers."]})})]}),!!Oi&&c&&e("li",{children:[e("label",{children:[e("input",{type:"checkbox",checked:n.settings.mediaAltGenerator,onChange:l=>{T.settings.mediaAltGenerator=l.target.checked}})," ","Image description generator"," ",e(w,{icon:"sparkles2",class:"more-insignificant"})]}),e("div",{class:"sub-section insignificant",children:e("small",{children:"Only for new images while composing new posts."})}),e("div",{class:"sub-section insignificant",children:e("small",{children:["Note: This feature uses external AI service, powered by"," ",e("a",{href:"https://github.com/cheeaun/img-alt-api",target:"_blank",rel:"noopener noreferrer",children:"img-alt-api"}),". May not work well. Only for images and in English."]})})]}),c&&e("li",{children:[e("label",{children:[e("input",{type:"checkbox",checked:n.settings.shortcutSettingsCloudImportExport,onChange:l=>{T.settings.shortcutSettingsCloudImportExport=l.target.checked}})," ",'"Cloud" import/export for shortcuts settings'," ",e(w,{icon:"cloud",class:"more-insignificant"})]}),e("div",{class:"sub-section insignificant",children:e("small",{children:["⚠️⚠️⚠️ Very experimental.",e("br",{}),"Stored in your own profile’s notes. Profile (private) notes are mainly used for other profiles, and hidden for own profile."]})}),e("div",{class:"sub-section insignificant",children:e("small",{children:"Note: This feature uses currently-logged-in instance server API."})})]}),e("li",{children:[e("label",{children:[e("input",{type:"checkbox",checked:n.settings.cloakMode,onChange:l=>{T.settings.cloakMode=l.target.checked}})," ","Cloak mode"," ",e("span",{class:"insignificant",children:["(",e("samp",{children:"Text"})," → ",e("samp",{children:"████"}),")"]})]}),e("div",{class:"sub-section insignificant",children:e("small",{children:"Replace text as blocks, useful when taking screenshots, for privacy reasons."})})]}),c&&e("li",{children:e("button",{type:"button",class:"light",onClick:()=>{T.showDrafts=!0,T.showSettings=!1},children:"Unsent drafts"})})]})}),c&&e(qi,{onClose:t}),e("h3",{children:"About"}),e("section",{children:[e("div",{style:{display:"flex",flexWrap:"wrap",gap:8,lineHeight:1.25,alignItems:"center",marginTop:8},children:[e("img",{src:wn,alt:"",width:"64",height:"64",style:{aspectRatio:"1/1",verticalAlign:"middle",background:"#b7cdf9",borderRadius:12}}),e("div",{children:[e("b",{children:"Phanpy"})," ",e("a",{href:"https://hachyderm.io/@phanpy",rel:"noopener noreferrer",onClick:l=>{l.preventDefault(),T.showAccount="phanpy@hachyderm.io"},children:"@phanpy"}),e("br",{}),e("a",{href:"https://github.com/cheeaun/phanpy",target:"_blank",rel:"noopener noreferrer",children:"Built"})," ","by"," ",e("a",{href:"https://mastodon.social/@cheeaun",rel:"noopener noreferrer",onClick:l=>{l.preventDefault(),T.showAccount="cheeaun@mastodon.social"},children:"@cheeaun"})]})]}),e("p",{children:[e("a",{href:"https://github.com/sponsors/cheeaun",target:"_blank",rel:"noopener noreferrer",children:"Sponsor"})," ","·"," ",e("a",{href:"https://www.buymeacoffee.com/cheeaun",target:"_blank",rel:"noopener noreferrer",children:"Donate"})," ","·"," ",e("a",{href:Fi,target:"_blank",rel:"noopener noreferrer",children:"Privacy Policy"})]}),e("p",{children:[zn&&e(_,{children:[e("span",{class:"insignificant",children:"Site:"})," ",zn.replace(/https?:\/\//g,"").replace(/\/$/,""),e("br",{})]}),e("span",{class:"insignificant",children:"Version:"})," ",e("input",{type:"text",class:"version-string",readOnly:!0,size:"18",value:`${"2024-06-03T11:04:51.985Z".slice(0,10).replace(/-/g,".")}.0a6030c`,onClick:l=>{l.target.select();try{navigator.clipboard.writeText(l.target.value),se("Version string copied")}catch{se("Unable to copy version string")}}})," ",e("span",{class:"ib insignificant",children:["(",e("a",{href:"https://github.com/cheeaun/phanpy/commit/0a6030c",target:"_blank",rel:"noopener noreferrer",children:e(bt,{datetime:new Date("2024-06-03T11:04:51.985Z")})}),")"]})]})]})]})]})}function qi({onClose:t}){if(!Jt())return null;const{instance:n}=Q(),[i,s]=$("default"),o=z(),[a,h]=$(!1),[d,r]=$(!1),u=z();G(()=>{(async()=>{s("loading");try{const{subscription:c,backendSubscription:p}=await Ni();if(p!=null&&p.policy&&p.policy!=="none"){h(!0);const{alerts:l,policy:b}=p;u.current=b;const{elements:m}=o.current,k=m.namedItem("policy");k&&(k.value=b),Object.keys(l).forEach(g=>{const y=m.namedItem(g);(y==null?void 0:y.type)==="checkbox"&&(y.checked=!0)})}s("default")}catch(c){/outside.*authorized/i.test(c.message)?r(!0):alert((c==null?void 0:c.message)||c),s("error")}})()},[]);const f=i==="loading";return e("form",{ref:o,onChange:()=>{setTimeout(()=>{const c=Object.fromEntries(new FormData(o.current)),p=!!c["policy-allow"],l={data:{policy:c.policy,alerts:{mention:!!c.mention,favourite:!!c.favourite,reblog:!!c.reblog,follow:!!c.follow,follow_request:!!c.followRequest,poll:!!c.poll,update:!!c.update,status:!!c.status}}};let b=0;Object.keys(l.data.alerts).forEach(k=>{l.data.alerts[k]?b++:delete l.data.alerts[k]});const m=u.current!==l.data.policy;p&&b>0?m?Fn().then(()=>{Un(l)}).catch(k=>{alert("Failed to update subscription. Please try again.")}):Un(l).catch(k=>{alert("Failed to update subscription. Please try again.")}):Fn().catch(k=>{alert("Failed to remove subscription. Please try again.")})},100)},children:[e("h3",{children:"Push Notifications (beta)"}),e("section",{children:e("ul",{children:e("li",{children:[e("label",{children:[e("input",{type:"checkbox",disabled:f||d,name:"policy-allow",checked:a,onChange:async c=>{const{checked:p}=c.target;if(p){const l=await Notification.requestPermission();l==="granted"?h(!0):(h(!1),l==="denied"&&alert("Push notifications are blocked. Please enable them in your browser settings."))}else h(!1)}})," ","Allow from"," ",e("select",{name:"policy",disabled:f||d||!a,children:[{value:"all",label:"anyone"},{value:"followed",label:"people I follow"},{value:"follower",label:"followers"}].map(c=>e("option",{value:c.value,children:c.label}))})]}),e("div",{class:"shazam-container no-animation",style:{width:"100%"},hidden:!a,children:e("div",{class:"shazam-container-inner",children:e("div",{class:"sub-section",children:e("ul",{children:[{value:"mention",label:"Mentions"},{value:"favourite",label:"Likes"},{value:"reblog",label:"Boosts"},{value:"follow",label:"Follows"},{value:"followRequest",label:"Follow requests"},{value:"poll",label:"Polls"},{value:"update",label:"Post edits"},{value:"status",label:"New posts"}].map(c=>e("li",{children:e("label",{children:[e("input",{type:"checkbox",name:c.value})," ",c.label]})}))})})})}),d&&e("div",{class:"sub-section",children:e("p",{children:["Push permission was not granted since your last login. You'll need to"," ",e(oe,{to:`/login?instance=${n}`,onClick:t,children:[e("b",{children:"log in"})," again to grant push permission"]}),"."]})})]})})}),e("p",{class:"section-postnote",children:e("small",{children:["NOTE: Push notifications only work for ",e("b",{children:"one account"}),"."]})})]})}const an=()=>{let t=setTimeout(()=>{if(!document.getElementById("columns")){const i=document.querySelectorAll("#modal-container > *");if(i!=null&&i.length){const h=i[i.length-1],d=h.querySelector('[tabindex="-1"]')||h;if(d){d.focus();return}}if(document.querySelector(".deck-backdrop"))return;const o=document.querySelectorAll(".deck-container"),a=o[o.length-1];a&&a.tabIndex===-1&&a.focus()}},100);return()=>clearTimeout(t)};function xs(t){if(!t)return;const n=Tt(),i=z(n.pathname);G(()=>{i.current&&n.pathname!==i.current&&(t==null||t())},[n.pathname,t])}const $s=1e3*60,Hi=24*60*60*1e3,cn=ht(async()=>{const{masto:t}=Q(),n=await t.v1.lists.list();return n.sort((i,s)=>i.title.localeCompare(s.title)),n.length&&setTimeout(()=>{be.account.set("lists",{lists:n,updatedAt:Date.now()})},1),n},{maxAge:$s});async function Pt(){try{const{lists:t,updatedAt:n}=be.account.get("lists")||{};return t!=null&&t.length?(Date.now()-n>Hi&&cn(),t):await cn()}catch{return[]}}const Vi=ht(t=>{const{masto:n}=Q();return n.v1.lists.$select(t).fetch()},{maxAge:$s});async function As(t){const{lists:n}=be.account.get("lists")||{};if(n!=null&&n.length){const i=n.find(s=>s.id===t);if(i)return i}try{return Vi(t)}catch{return null}}async function Gi(t){const n=await As(t);return(n==null?void 0:n.title)||""}function Yi(t){const{lists:n}=be.account.get("lists")||{};n!=null&&n.length&&(n.push(t),n.sort((i,s)=>i.title.localeCompare(s.title)),be.account.set("lists",{lists:n,updatedAt:Date.now()}))}function ji(t){const{lists:n}=be.account.get("lists")||{};if(n!=null&&n.length){const i=n.findIndex(s=>s.id===t.id);i!==-1&&(n[i]=t,n.sort((s,o)=>s.title.localeCompare(o.title)),be.account.set("lists",{lists:n,updatedAt:Date.now()}))}}function Wi(t){const{lists:n}=be.account.get("lists")||{};if(n!=null&&n.length){const i=n.findIndex(s=>s.id===t);i!==-1&&(n.splice(i,1),be.account.set("lists",{lists:n,updatedAt:Date.now()}))}}function kn({list:t,onClose:n}){const{masto:i}=Q(),[s,o]=$("default"),a=!!t,h=z(),d=z(),r=z();G(()=>{a&&(h.current.value=t.title,d.current.value=t.repliesPolicy,r.current&&(r.current.checked=t.exclusive))},[a]);const u=je("@mastodon/list-exclusive");return e("div",{class:"sheet",children:[!!n&&e("button",{type:"button",class:"sheet-close",onClick:n,children:e(w,{icon:"x"})})," ",e("header",{children:e("h2",{children:a?"Edit list":"New list"})}),e("main",{children:e("form",{class:"list-form",onSubmit:f=>{f.preventDefault();const c=new FormData(f.target),p=c.get("title"),l=c.get("replies_policy"),b=c.get("exclusive")==="on";o("loading"),(async()=>{try{let m;a?m=await i.v1.lists.$select(t.id).update({title:p,replies_policy:l,exclusive:b}):m=await i.v1.lists.create({title:p,replies_policy:l,exclusive:b}),o("default"),n==null||n({state:"success",list:m}),setTimeout(()=>{a?ji(m):Yi(m)},1)}catch{o("error"),alert(a?"Unable to edit list.":"Unable to create list.")}})()},children:[e("div",{class:"list-form-row",children:e("label",{for:"list-title",children:["Name"," ",e("input",{ref:h,type:"text",id:"list-title",name:"title",required:!0,disabled:s==="loading",dir:"auto"})]})}),e("div",{class:"list-form-row",children:e("select",{ref:d,name:"replies_policy",required:!0,disabled:s==="loading",children:[e("option",{value:"list",children:"Show replies to list members"}),e("option",{value:"followed",children:"Show replies to people I follow"}),e("option",{value:"none",children:"Don't show replies"})]})}),u&&e("div",{class:"list-form-row",children:e("label",{class:"label-block",children:[e("input",{ref:r,type:"checkbox",name:"exclusive",disabled:s==="loading"})," ","Hide posts on this list from Home/Following"]})}),e("div",{class:"list-form-footer",children:[e("button",{type:"submit",disabled:s==="loading",children:a?"Save":"Create"}),a&&e(et,{disabled:s==="loading",align:"end",menuItemClassName:"danger",confirmLabel:"Delete this list?",onClick:()=>{o("loading"),(async()=>{try{await i.v1.lists.$select(t.id).remove(),o("default"),n==null||n({state:"deleted"}),setTimeout(()=>{Wi(t.id)},1)}catch{o("error"),alert("Unable to delete list.")}})()},children:e("button",{type:"button",class:"light danger",disabled:s==="loading",children:"Delete…"})})]})]})})]})}const Ki=[60*5,60*30,60*60,60*60*6,60*60*24,60*60*24*3,60*60*24*7,0],Bn={0:"Forever",300:"5 minutes",1800:"30 minutes",3600:"1 hour",21600:"6 hours",86400:"1 day",259200:"3 days",604800:"1 week"},qn=80,Rs=1e3*60*10;function Zi(t,n){return n.v1.accounts.familiarFollowers.fetch({id:[t]})}const Ji=ht(Zi,{maxAge:Rs});async function Xi(t,n){const i=n.v1.accounts.$select(t).statuses.list({limit:20}).next(),{value:s}=await i,o={total:s.length,originals:0,replies:0,boosts:0};return s.forEach(a=>{a.reblog?o.boosts++:a.inReplyToId&&a.inReplyToAccountId!==a.account.id?o.replies++:o.originals++}),s.length&&(o.daysSinceLastPost=Math.ceil((Date.now()-new Date(s[s.length-1].createdAt))/864e5)),o}const Qi=ht(Xi,{maxAge:Rs});function _s({account:t,fetchAccount:n=()=>{},standalone:i,instance:s,authenticated:o}){const{masto:a}=Q({instance:s}),{masto:h,instance:d}=Q(),[r,u]=$("default"),f=typeof t=="string",[c,p]=$(f?null:t),l=pe(()=>s===d,[s,d]);G(()=>{if(!f){p(t);return}u("loading"),(async()=>{try{const S=await n();T.accounts[`${S.id}@${s}`]=S,p(S),u("default")}catch{p(null),u("error")}})()},[f,t,n]);const{acct:b,avatar:m,avatarStatic:k,bot:g,createdAt:y,displayName:C,emojis:v,fields:I,followersCount:x,followingCount:L,group:Y,id:j,lastStatusAt:M,locked:ee,note:X,statusesCount:A,url:P,username:E,memorial:U,moved:V,roles:ye,hideCollections:ve}=c||{};let fe=!1,{header:ne,headerStatic:me}=c||{};(!ne||/missing\.png$/.test(ne))&&m&&!/missing\.png$/.test(m)&&(ne=m,fe=!0,k&&!/missing\.png$/.test(k)&&(me=k));const ue=pe(()=>j===ct(),[j]);G(()=>{const S=!!(c!=null&&c.id&&(c!=null&&c.username)&&(c!=null&&c.acct)&&(c!=null&&c.avatar)&&(c!=null&&c.avatarStatic)&&(c!=null&&c.displayName)&&(c!=null&&c.url));if(ue&&s&&S){const N=be.local.getJSON("accounts");let B=!1;N.forEach(O=>{O.info.id===c.id&&O.instanceURL===s&&(O.info=c,B=!0)}),B&&be.local.setJSON("accounts",N)}},[ue,c,s]);const he=pe(()=>P?xt.toUnicode(new URL(P).hostname):null,[P]),[ke,Le]=$([]),Te=z(),Pe=z([]);async function Fe(S){var K;(S||!Te.current)&&(Te.current=a.v1.accounts.$select(j).followers.list({limit:qn}));const N=await Te.current.next();if(ue||!l)return N;const{value:B}=N;let O=[];if(S){let ge=[];try{ge=await a.v1.accounts.familiarFollowers.fetch({id:[j]})}catch{}Pe.current=((K=ge==null?void 0:ge[0])==null?void 0:K.accounts)||[],O=[...Pe.current,...B.filter(le=>!Pe.current.some(ie=>ie.id===le.id))]}else B!=null&&B.length&&(O=B.filter(ge=>!Pe.current.some(le=>le.id===ge.id)));return{...N,value:O}}const xe=z();async function J(S){return(S||!xe.current)&&(xe.current=a.v1.accounts.$select(j).following.list({limit:qn})),await xe.current.next()}const ae=i?"div":oe,te=s?`/${s}/a/${j}`:`/a/${j}`,[Se,Ie]=$([]),[F,re]=$(),[D,W]=$("default"),R=!!(F!=null&&F.total),q=async S=>{try{const N=await Ji(S,h);Ie(N[0].accounts.slice(0,eo))}catch{}},Z=async()=>{if(j){W("loading");try{const S=await Qi(j,a);re(S),W("default")}catch{W("error")}}},ce=Qe(({relationship:S,currentID:N})=>{S.following||(q(N),!i&&A>0&&Z())},[i,j,A]),De=Qe(S=>{S.id===j&&(p(S),T.accounts[`${S.id}@${s}`]=S)},[j,s]);return e("div",{tabIndex:"-1",class:`account-container ${r==="loading"?"skeleton":""}`,style:{"--header-color-1":ke[0],"--header-color-2":ke[1],"--header-color-3":ke[2],"--header-color-4":ke[3]},children:[r==="error"&&e("div",{class:"ui-state",children:[e("p",{children:"Unable to load account."}),e("p",{children:e("a",{href:f?t:P,target:"_blank",rel:"noopener noreferrer",children:["Go to account page ",e(w,{icon:"external"})]})})]}),r==="loading"?e(_,{children:[e("header",{children:e(Xe,{avatarSize:"xxxl",skeleton:!0})}),e("main",{children:[e("div",{class:"note",children:[e("p",{children:"███████ ████ ████"}),e("p",{children:"████ ████████ ██████ █████████ ████ ██"})]}),e("div",{class:"account-metadata-box",children:[e("div",{class:"profile-metadata",children:[e("div",{class:"profile-field",children:[e("b",{class:"more-insignificant",children:"███"}),e("p",{children:"██████"})]}),e("div",{class:"profile-field",children:[e("b",{class:"more-insignificant",children:"████"}),e("p",{children:"███████████"})]})]}),e("div",{class:"stats",children:[e("div",{children:[e("span",{children:"██"})," Followers"]}),e("div",{children:[e("span",{children:"██"})," Following"]}),e("div",{children:[e("span",{children:"██"})," Posts"]})]})]}),e("div",{class:"actions",children:[e("span",{}),e("span",{class:"buttons",children:e("button",{type:"button",title:"More",class:"plain",disabled:!0,children:e(w,{icon:"more",size:"l",alt:"More"})})})]})]})]}):c&&e(_,{children:[!!V&&e("div",{class:"account-moved",children:[e("p",{children:[e("b",{children:C})," has indicated that their new account is now:"]}),e(Xe,{account:V,instance:s,onClick:S=>{S.stopPropagation(),T.showAccount=V}})]}),!!ne&&!/missing\.png$/.test(ne)&&e("img",{src:ne,alt:"",class:`header-banner ${fe?"header-is-avatar":""}`,onError:S=>{S.target.crossOrigin?S.target.src!==me?S.target.src=me:(S.target.removeAttribute("crossorigin"),S.target.src=ne):S.target.src!==me?S.target.src=me:S.target.remove()},crossOrigin:"anonymous",onLoad:S=>{S.target.classList.add("loaded");try{const N=window.OffscreenCanvas?new OffscreenCanvas(1,1):document.createElement("canvas"),B=N.getContext("2d",{willReadFrequently:!0});N.width=S.target.width,N.height=S.target.height,B.imageSmoothingEnabled=!1,B.drawImage(S.target,0,0);const O=10,ge=[B.getImageData(0,0,O,O).data,B.getImageData(S.target.width-O,0,O,O).data,B.getImageData(0,S.target.height-O,O,O).data,B.getImageData(S.target.width-O,S.target.height-O,O,O).data].map(le=>{let ie=0,Ce=0,Ne=0,Oe=0;for(let Ve=0;Ve{const[ie,Ce,Ne,Oe]=no(le);return`rgba(${ie}, ${Ce}, ${Ne}, ${Oe})`});Le(ge)}catch{}}}),e("header",{children:i?e(Ze,{shift:window.matchMedia("(min-width: calc(40em))").matches?114:64,menuButton:e("div",{children:e(Xe,{account:c,instance:s,avatarSize:"xxxl",onClick:()=>{}})}),children:[e("div",{class:"szh-menu__header",children:e(lo,{acct:b,instance:s})}),e(de,{onClick:()=>{const S=`@${b}`;try{navigator.clipboard.writeText(S),se("Handle copied")}catch{se("Unable to copy handle")}},children:[e(w,{icon:"link"}),e("span",{children:"Copy handle"})]}),e(de,{href:P,target:"_blank",children:[e(w,{icon:"external"}),e("span",{children:"Go to original profile page"})]}),e(ze,{}),e(Re,{href:c.avatar,target:"_blank",children:[e(w,{icon:"user"}),e("span",{children:"View profile image"})]}),e(Re,{href:c.header,target:"_blank",children:[e(w,{icon:"media"}),e("span",{children:"View profile header"})]})]}):e(Xe,{account:c,instance:s,avatarSize:"xxxl",internal:!0})}),e("div",{class:"faux-header-bg","aria-hidden":"true"}),e("main",{children:[!!U&&e("span",{class:"tag",children:"In Memoriam"}),!!g&&e("span",{class:"tag",children:[e(w,{icon:"bot"})," Automated"]}),!!Y&&e("span",{class:"tag",children:[e(w,{icon:"group"})," Group"]}),ye==null?void 0:ye.map(S=>e("span",{class:"tag",children:[S.name,!!he&&e(_,{children:[" ",e("span",{class:"more-insignificant",children:he})]})]})),e("div",{class:"note",dir:"auto",onClick:ws({instance:d}),dangerouslySetInnerHTML:{__html:on(X,{emojis:v})}}),e("div",{class:"account-metadata-box",children:[(I==null?void 0:I.length)>0&&e("div",{class:"profile-metadata",children:I.map(({name:S,value:N,verifiedAt:B},O)=>e("div",{class:`profile-field ${B?"profile-verified":""}`,dir:"auto",children:[e("b",{children:[e(vs,{text:S,emojis:v})," ",!!B&&e(w,{icon:"check-circle",size:"s"})]}),e("p",{dangerouslySetInnerHTML:{__html:on(N,{emojis:v})}})]},S+O))}),e("div",{class:"stats",children:[e(ae,{tabIndex:0,to:te,onClick:()=>{setTimeout(()=>{T.showGenericAccounts={id:"followers",heading:"Followers",fetchAccounts:Fe,instance:s,excludeRelationshipAttrs:ue?["followedBy"]:[],blankCopy:ve?"This user has chosen to not make this information available.":void 0}},0)},children:[!!Se.length&&e("span",{class:"shazam-container-horizontal",children:e("span",{class:"shazam-container-inner stats-avatars-bunch",children:Se.map(S=>e(st,{url:S.avatarStatic,size:"s",alt:`${S.displayName} @${S.acct}`,squircle:S==null?void 0:S.bot}))})}),e("span",{title:x,children:Ge(x)})," ","Followers"]}),e(ae,{class:"insignificant",tabIndex:0,to:te,onClick:()=>{setTimeout(()=>{T.showGenericAccounts={heading:"Following",fetchAccounts:J,instance:s,excludeRelationshipAttrs:ue?["following"]:[],blankCopy:ve?"This user has chosen to not make this information available.":void 0}},0)},children:[e("span",{title:L,children:Ge(L)})," ","Following",e("br",{})]}),e(ae,{class:"insignificant",to:te,children:[e("span",{title:A,children:Ge(A)})," ","Posts"]}),!!y&&e("div",{class:"insignificant",children:["Joined"," ",e("time",{datetime:y,children:ot(y,{hideTime:!0})})]})]})]}),!!F&&e(ae,{to:te,class:"account-metadata-box",children:e("div",{class:"shazam-container",children:e("div",{class:"shazam-container-inner",children:R?e("div",{class:"posting-stats",title:`${Math.round(F.originals/F.total*100)}% original posts, ${Math.round(F.replies/F.total*100)}% replies, ${Math.round(F.boosts/F.total*100)}% boosts`,children:[e("div",{children:F.daysSinceLastPost<365?`Last ${F.total} post${F.total>1?"s":""} in the past + ${F.daysSinceLastPost} day${F.daysSinceLastPost>1?"s":""}`:` + Last ${F.total} posts in the past year(s) + `}),e("div",{class:"posting-stats-bar",style:{"--originals-percentage":`${F.originals/F.total*100}%`,"--replies-percentage":`${(F.originals+F.replies)/F.total*100}%`}}),e("div",{class:"posting-stats-legends",children:[e("span",{class:"ib",children:[e("span",{class:"posting-stats-legend-item posting-stats-legend-item-originals"})," ","Original"]})," ",e("span",{class:"ib",children:[e("span",{class:"posting-stats-legend-item posting-stats-legend-item-replies"})," ","Replies"]})," ",e("span",{class:"ib",children:[e("span",{class:"posting-stats-legend-item posting-stats-legend-item-boosts"})," ","Boosts"]})]})]}):e("div",{class:"posting-stats",children:"Post stats unavailable."})})})}),!V&&e("div",{class:"account-metadata-box",children:e("div",{class:"shazam-container no-animation",hidden:!!F,children:e("div",{class:"shazam-container-inner",children:e("button",{type:"button",class:"posting-stats-button",disabled:D==="loading",onClick:()=>{Z()},children:[e("div",{class:`posting-stats-bar posting-stats-icon ${D==="loading"?"loading":""}`,style:{"--originals-percentage":"33%","--replies-percentage":"66%"}}),"View post stats"," "]})})})})]}),e("footer",{children:e(to,{info:c,instance:s,standalone:i,authenticated:o,onRelationshipChange:ce,onProfileUpdate:De})})]})]})}const eo=3;function to({info:t,instance:n,standalone:i,authenticated:s,onRelationshipChange:o=()=>{},onProfileUpdate:a=()=>{}}){var Ie;if(!t)return null;const{masto:h,instance:d,authenticated:r}=Q(),u=n===d,[f,c]=$("default"),[p,l]=$(null),{id:b,acct:m,url:k,username:g,locked:y,lastStatusAt:C,note:v,fields:I,moved:x}=t,L=z(b),{following:Y,showingReblogs:j,notifying:M,followedBy:ee,blocking:X,blockedBy:A,muting:P,mutingNotifications:E,requested:U,domainBlocking:V,endorsed:ye,note:ve}=p||{},[fe,ne]=$(null),[me,ue]=$(!1);G(()=>{if(t){const F=ct();let re;(async()=>{if(u&&s)re=b;else if(!u&&r){const W=t.acct.includes("@");try{const R=await h.v2.search.fetch({q:W?t.acct:`${t.username}@${n}`,type:"accounts",limit:1,resolve:!0});R.accounts.length&&(re=R.accounts[0].id,ne(R.accounts[0]))}catch{}}if(!re)return;if(F===re){ue(!0);return}L.current=re,c("loading");const D=h.v1.accounts.relationships.fetch({id:[re]});try{const W=await D;if(c("default"),W.length){const R=W[0];l(R),o({relationship:R,currentID:re})}}catch{c("error")}})()}},[t,s]),G(()=>{t&&me&&Ks(t)},[t,me]);const he=f==="loading",[ke,Le]=$(!1),[Te,Pe]=$(!1),[Fe,xe]=$(!1),[J,ae]=$(!1),[te,Se]=$([]);return e(_,{children:[e("div",{class:"actions",children:[e("span",{children:[ee?e("span",{class:"tag",children:"Follows you"}):C?e("small",{class:"insignificant",children:["Last post:"," ",e("span",{class:"ib",children:ot(C,{hideTime:!0})})]}):e("span",{}),P&&e("span",{class:"tag danger",children:"Muted"}),X&&e("span",{class:"tag danger",children:"Blocked"})]})," ",e("span",{class:"buttons",children:[!!ve&&e("button",{type:"button",class:"private-note-tag",title:"Private note",onClick:()=>{xe(!0)},dir:"auto",children:e("span",{children:ve})}),e(Ze,{portal:{target:document.body},containerProps:{style:{zIndex:1001}},align:"center",position:"anchor",overflow:"auto",menuButton:e("button",{type:"button",title:"More",class:"plain",disabled:he,children:e(w,{icon:"more",size:"l",alt:"More"})}),onMenuChange:F=>{Y&&F.open&&(async()=>{try{const re=await h.v1.accounts.$select(L.current).lists.list();Se(re)}catch{}})()},children:[r&&!me&&e(_,{children:[e(de,{onClick:()=>{wi({draftStatus:{status:`@${(fe==null?void 0:fe.acct)||m} `}})},children:[e(w,{icon:"at"}),e("span",{children:["Mention @",g]})]}),e(de,{onClick:()=>{Le(!0)},children:[e(w,{icon:"translate"}),e("span",{children:"Translate bio"})]}),je("@mastodon/profile-private-note")&&e(de,{onClick:()=>{xe(!0)},children:[e(w,{icon:"pencil"}),e("span",{children:ve?"Edit private note":"Add private note"})]}),Y&&!!p&&e(_,{children:[e(de,{onClick:()=>{c("loading"),(async()=>{try{const F=await h.v1.accounts.$select(L.current).follow({notify:!M});F&&l(F),c("default"),se(F.notifying?`Notifications enabled for @${g}'s posts.`:` Notifications disabled for @${g}'s posts.`)}catch(F){alert(F),c("error")}})()},children:[e(w,{icon:"notification"}),e("span",{children:M?"Disable notifications":"Enable notifications"})]}),e(de,{onClick:()=>{c("loading"),(async()=>{try{const F=await h.v1.accounts.$select(L.current).follow({reblogs:!j});F&&l(F),c("default"),se(F.showingReblogs?`Boosts from @${g} disabled.`:`Boosts from @${g} enabled.`)}catch(F){alert(F),c("error")}})()},children:[e(w,{icon:"rocket"}),e("span",{children:j?"Disable boosts":"Enable boosts"})]})]}),Y&&e(de,{onClick:()=>{Pe(!0)},children:[e(w,{icon:"list"}),te.length?e(_,{children:[e("small",{class:"menu-grow",children:["Add/Remove from Lists",e("br",{}),e("span",{class:"more-insignificant",children:te.map(F=>F.title).join(", ")})]}),e("small",{class:"more-insignificant",children:te.length})]}):e("span",{children:"Add/Remove from Lists"})]}),e(ze,{})]}),e(de,{onClick:()=>{const F=`@${(fe==null?void 0:fe.acct)||m}`;try{navigator.clipboard.writeText(F),se("Handle copied")}catch{se("Unable to copy handle")}},children:[e(w,{icon:"copy"}),e("small",{children:["Copy handle",e("br",{}),e("span",{class:"more-insignificant",children:["@",(fe==null?void 0:fe.acct)||m]})]})]}),e(de,{href:k,target:"_blank",children:[e(w,{icon:"external"}),e("small",{class:"menu-double-lines",children:so(k)})]}),e("div",{class:"menu-horizontal",children:[e(de,{onClick:()=>{try{navigator.clipboard.writeText(k),se("Link copied")}catch{se("Unable to copy link")}},children:[e(w,{icon:"link"}),e("span",{children:"Copy"})]}),(navigator==null?void 0:navigator.share)&&((Ie=navigator==null?void 0:navigator.canShare)==null?void 0:Ie.call(navigator,{url:k}))&&e(de,{onClick:()=>{try{navigator.share({url:k})}catch{alert("Sharing doesn't seem to work.")}},children:[e(w,{icon:"share"}),e("span",{children:"Share…"})]})]}),!!p&&e(_,{children:[e(ze,{}),P?e(de,{onClick:()=>{c("loading"),(async()=>{try{const F=await h.v1.accounts.$select((fe==null?void 0:fe.id)||b).unmute();l(F),c("default"),se(`Unmuted @${g}`),T.reloadGenericAccounts.id="mute",T.reloadGenericAccounts.counter++}catch{c("error")}})()},children:[e(w,{icon:"unmute"}),e("span",{children:["Unmute @",g]})]}):e(Wt,{menuClassName:"menu-blur",openTrigger:"clickOnly",direction:"bottom",overflow:"auto",shift:16,label:e(_,{children:[e(w,{icon:"mute"}),e("span",{class:"menu-grow",children:["Mute @",g,"…"]}),e("span",{style:{textOverflow:"clip"},children:[e(w,{icon:"time"}),e(w,{icon:"chevron-right"})]})]}),children:e("div",{class:"menu-wrap",children:Ki.map(F=>e(de,{onClick:()=>{c("loading"),(async()=>{try{const re=await h.v1.accounts.$select((fe==null?void 0:fe.id)||b).mute({duration:F});l(re),c("default"),se(`Muted @${g} for ${Bn[F]}`),T.reloadGenericAccounts.id="mute",T.reloadGenericAccounts.counter++}catch{c("error"),se(`Unable to mute @${g}`)}})()},children:Bn[F]}))})}),ee&&e(et,{subMenu:!0,menuItemClassName:"danger",confirmLabel:e(_,{children:[e(w,{icon:"user-x"}),e("span",{children:["Remove @",g," from followers?"]})]}),onClick:()=>{c("loading"),(async()=>{try{const F=await h.v1.accounts.$select((fe==null?void 0:fe.id)||b).removeFromFollowers();l(F),c("default"),se(`@${g} removed from followers`),T.reloadGenericAccounts.id="followers",T.reloadGenericAccounts.counter++}catch{c("error")}})()},children:[e(w,{icon:"user-x"}),e("span",{children:"Remove follower…"})]}),e(et,{subMenu:!0,confirm:!X,confirmLabel:e(_,{children:[e(w,{icon:"block"}),e("span",{children:["Block @",g,"?"]})]}),menuItemClassName:"danger",onClick:()=>{c("loading"),(async()=>{try{if(X){const F=await h.v1.accounts.$select((fe==null?void 0:fe.id)||b).unblock();l(F),c("default"),se(`Unblocked @${g}`)}else{const F=await h.v1.accounts.$select((fe==null?void 0:fe.id)||b).block();l(F),c("default"),se(`Blocked @${g}`)}T.reloadGenericAccounts.id="block",T.reloadGenericAccounts.counter++}catch{c("error"),X?se(`Unable to unblock @${g}`):se(`Unable to block @${g}`)}})()},children:X?e(_,{children:[e(w,{icon:"unblock"}),e("span",{children:["Unblock @",g]})]}):e(_,{children:[e(w,{icon:"block"}),e("span",{children:["Block @",g,"…"]})]})}),e(de,{className:"danger",onClick:()=>{T.showReportModal={account:fe||t}},children:[e(w,{icon:"flag"}),e("span",{children:["Report @",g,"…"]})]})]}),r&&me&&i&&je("@mastodon/profile-edit")&&e(_,{children:[e(ze,{}),e(de,{onClick:()=>{ae(!0)},children:[e(w,{icon:"pencil"}),e("span",{children:"Edit profile"})]})]}),!1]}),!p&&f==="loading"&&e($e,{abrupt:!0}),!!p&&!x&&e(et,{confirm:Y||U,confirmLabel:e("span",{children:U?"Withdraw follow request?":`Unfollow @${t.acct||t.username}?`}),menuItemClassName:"danger",align:"end",disabled:he,onClick:()=>{c("loading"),(async()=>{try{let F;Y||U?F=await h.v1.accounts.$select(L.current).unfollow():F=await h.v1.accounts.$select(L.current).follow(),F&&l(F),c("default")}catch(F){alert(F),c("error")}})()},children:e("button",{type:"button",class:`${Y||U?"light swap":""}`,"data-swap-state":Y||U?"danger":"",disabled:he,children:Y?e(_,{children:[e("span",{children:"Following"}),e("span",{children:"Unfollow…"})]}):U?e(_,{children:[e("span",{children:"Requested"}),e("span",{children:"Withdraw…"})]}):y?e(_,{children:[e(w,{icon:"lock"})," ",e("span",{children:"Follow"})]}):"Follow"})})]})]}),!!ke&&e(Ae,{onClose:()=>{Le(!1)},children:e(io,{note:v,fields:I,onClose:()=>Le(!1)})}),!!Te&&e(Ae,{onClose:()=>{Pe(!1)},children:e(oo,{accountID:L.current,onClose:()=>Pe(!1)})}),!!Fe&&e(Ae,{onClose:()=>{xe(!1)},children:e(ao,{account:t,note:ve,onRelationshipChange:F=>{l(F)},onClose:()=>xe(!1)})}),!!J&&e(Ae,{onClose:()=>{ae(!1)},children:e(co,{onClose:({state:F,account:re}={})=>{ae(!1),F==="success"&&re&&a(re)}})})]})}function no([t,n,i]){const s=.2126*t+.7152*n+.0722*i;let o;return s>=220?o=1:s<=50?o=.1:o=s/255,o=Math.min(1,o),[t,n,i,o]}function so(t){if(!t)return;const n=new URL(t),{host:i,pathname:s}=n,o=s.replace(/\/$/,"").replace(/^\//,"");return e(_,{children:[e("span",{class:"more-insignificant",children:[xt.toUnicode(i),"/"]}),e("wbr",{}),e("span",{children:o})]})}function io({note:t,fields:n,onClose:i}){const s=(n==null?void 0:n.map(({name:a,value:h})=>`${a} +${Pn(h)}`).join(` + +`))||"",o=Pn(t)+(s?` + +${s}`:"");return e("div",{class:"sheet",children:[!!i&&e("button",{type:"button",class:"sheet-close",onClick:i,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:"Translated Bio"})}),e("main",{children:[e("p",{style:{whiteSpace:"pre-wrap"},children:o}),e(ks,{forceTranslate:!0,text:o})]})]})}function oo({accountID:t,onClose:n}){const{masto:i}=Q(),[s,o]=$("default"),[a,h]=$([]),[d,r]=$([]),[u,f]=mt(l=>l+1,0);G(()=>{o("loading"),(async()=>{try{const l=await Pt();h(l);const b=await i.v1.accounts.$select(t).lists.list();r(b),o("default")}catch{o("error")}})()},[u]);const[c,p]=$(!1);return e("div",{class:"sheet",id:"list-add-remove-container",children:[!!n&&e("button",{type:"button",class:"sheet-close",onClick:n,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:"Add/Remove from Lists"})}),e("main",{children:[a.length>0?e("ul",{class:"list-add-remove",children:a.map(l=>{const b=d.some(m=>m.id===l.id);return e("li",{children:e("button",{type:"button",class:`light ${b?"checked":""}`,disabled:s==="loading",onClick:()=>{o("loading"),(async()=>{try{b?await i.v1.lists.$select(l.id).accounts.remove({accountIds:[t]}):await i.v1.lists.$select(l.id).accounts.create({accountIds:[t]}),f()}catch{o("error"),alert(b?"Unable to remove from list.":"Unable to add to list.")}})()},children:[e(w,{icon:"check-circle"}),e("span",{children:l.title})]})})})}):s==="loading"?e("p",{class:"ui-state",children:e($e,{abrupt:!0})}):s==="error"?e("p",{class:"ui-state",children:"Unable to load lists."}):e("p",{class:"ui-state",children:"No lists."}),e("button",{type:"button",class:"plain2",onClick:()=>p(!0),disabled:s!=="default",children:[e(w,{icon:"plus",size:"l"})," ",e("span",{children:"New list"})]})]}),c&&e(Ae,{onClick:l=>{l.target===l.currentTarget&&p(!1)},children:e(kn,{list:c==null?void 0:c.list,onClose:l=>{l.state==="success"&&f(),p(!1)}})})]})}function ao({account:t,note:n,onRelationshipChange:i=()=>{},onClose:s=()=>{}}){const{masto:o}=Q(),[a,h]=$("default"),d=z(null);return G(()=>{let r;return d.current&&!n&&(r=setTimeout(()=>{var u,f;(f=(u=d.current).focus)==null||f.call(u)},100)),()=>{clearTimeout(r)}},[]),e("div",{class:"sheet",id:"private-note-container",children:[!!s&&e("button",{type:"button",class:"sheet-close",onClick:s,children:e(w,{icon:"x"})}),e("header",{children:e("b",{children:["Private note about @",(t==null?void 0:t.username)||(t==null?void 0:t.acct)]})}),e("main",{children:e("form",{onSubmit:r=>{r.preventDefault();const f=new FormData(r.target).get("note");(f==null?void 0:f.trim())!==(n==null?void 0:n.trim())&&(h("loading"),(async()=>{try{const c=await o.v1.accounts.$select(t==null?void 0:t.id).note.create({comment:f});h("default"),i(c),s()}catch(c){h("error"),alert((c==null?void 0:c.message)||"Unable to update private note.")}})())},children:[e("textarea",{ref:d,name:"note",disabled:a==="loading",children:n}),e("footer",{children:[e("button",{type:"button",class:"light",disabled:a==="loading",onClick:()=>{s==null||s()},children:"Cancel"}),e("span",{children:[e($e,{abrupt:!0,hidden:a!=="loading"}),e("button",{disabled:a==="loading",type:"submit",children:"Save & close"})]})]})]})})]})}function co({onClose:t=()=>{}}){const{masto:n}=Q(),[i,s]=$("loading"),[o,a]=$(null);G(()=>{(async()=>{try{const c=await n.v1.accounts.verifyCredentials();a(c),s("default")}catch{s("error")}})()},[]);const{displayName:h,source:d}=o||{},{note:r,fields:u}=d||{},f=z(null);return e("div",{class:"sheet",id:"edit-profile-container",children:[!!t&&e("button",{type:"button",class:"sheet-close",onClick:t,children:e(w,{icon:"x"})}),e("header",{children:e("b",{children:"Edit profile"})}),e("main",{children:i==="loading"?e("p",{class:"ui-state",children:e($e,{abrupt:!0})}):e("form",{onSubmit:c=>{c.preventDefault();const p=new FormData(c.target),l=p.get("display_name"),b=p.get("note"),m=f.current.querySelectorAll('input[name^="fields_attributes"]'),k=[];m.forEach(g=>{const y=g.name,[C,v,I]=y.match(/fields_attributes\[(\d+)\]\[(.+)\]/)||[],x=g.value?g.value.trim():"";v&&I&&x&&(k[v]||(k[v]={}),k[v][I]=x)}),k.forEach(g=>{g.name&&!g.value&&(g.value="")}),(async()=>{try{const g=await n.v1.accounts.updateCredentials({displayName:l,note:b,fieldsAttributes:k});t==null||t({state:"success",account:g})}catch(g){alert((g==null?void 0:g.message)||"Unable to update profile.")}})()},children:[e("p",{children:e("label",{children:["Name"," ",e("input",{type:"text",name:"display_name",defaultValue:h,maxLength:30,disabled:i==="loading"})]})}),e("p",{children:e("label",{children:["Bio",e("textarea",{defaultValue:r,name:"note",maxLength:500,rows:"5",disabled:i==="loading"})]})}),e("p",{children:"Extra fields"}),e("table",{ref:f,children:[e("thead",{children:e("tr",{children:[e("th",{children:"Label"}),e("th",{children:"Content"})]})}),e("tbody",{children:Array.from({length:Math.max(4,u.length)}).map((c,p)=>{const{name:l="",value:b=""}=u[p]||{};return e(ro,{name:l,value:b,index:p,disabled:i==="loading"},p)})})]}),e("footer",{children:[e("button",{type:"button",class:"light",disabled:i==="loading",onClick:()=>{t==null||t()},children:"Cancel"}),e("button",{type:"submit",disabled:i==="loading",children:"Save"})]})]})})]})}function ro({name:t,value:n,disabled:i,index:s}){const[o,a]=$(!!n);return e("tr",{children:[e("td",{children:e("input",{type:"text",name:`fields_attributes[${s}][name]`,defaultValue:t,disabled:i,maxLength:255,required:o})}),e("td",{children:e("input",{type:"text",name:`fields_attributes[${s}][value]`,defaultValue:n,disabled:i,maxLength:255,onChange:h=>a(!!h.currentTarget.value)})})]})}function lo({acct:t,instance:n}){let[i,s]=t.split("@");return s||(s=n),e("div",{class:"handle-info",children:[e("span",{class:"handle-handle",children:[e("b",{class:"handle-username",children:i}),e("span",{class:"handle-at",children:"@"}),e("b",{class:"handle-server",children:s})]}),e("div",{class:"handle-legend",children:[e("span",{class:"ib",children:[e("span",{class:"handle-legend-icon username"})," username"]})," ",e("span",{class:"ib",children:[e("span",{class:"handle-legend-icon server"})," server domain name"]})]})]})}function uo({account:t,instance:n,onClose:i}){const{masto:s,instance:o,authenticated:a}=Q({instance:n}),h=typeof t=="string";return G(()=>{h||(T.accounts[`${t.id}@${o}`]=t)},[t]),xs(i),e("div",{class:"sheet",children:[!!i&&e("button",{type:"button",class:"sheet-close outer",onClick:i,children:e(w,{icon:"x"})}),e(_s,{instance:o,authenticated:a,account:t,fetchAccount:async()=>{if(h)try{return await s.v1.accounts.lookup({acct:t,skip_webfinger:!1})}catch{const r=await s.v2.search.fetch({q:t,type:"accounts",limit:1,resolve:a});if(r.accounts.length)return r.accounts[0];if(/https?:\/\/[^/]+\/@/.test(t)){const u=new URL(t),{hostname:f,pathname:c}=u,p=c.replace(/^\//,"").replace(/\/$/,"")+"@"+f,l=await s.v2.search.fetch({q:p,type:"accounts",limit:1,resolve:a});if(l.accounts.length)return l.accounts[0]}}else return t}})]})}function ho({onClose:t}){const{masto:n}=Q(),[i,s]=$("default"),[o,a]=$([]),[h,d]=mt(u=>u+1,0);G(()=>{s("loading"),(async()=>{try{const u=await nt.drafts.keys();if(u.length){const f=jt(),c=u.filter(p=>p.startsWith(f));if(c.length){const p=await nt.drafts.getMany(c);p.sort((l,b)=>new Date(b.updatedAt).getTime()-new Date(l.updatedAt).getTime()),a(p)}else a([])}else a([]);s("default")}catch{s("error")}})()},[h]);const r=(o==null?void 0:o.length)>0;return e("div",{class:"sheet",children:[!!t&&e("button",{type:"button",class:"sheet-close",onClick:t,children:e(w,{icon:"x"})}),e("header",{children:[e("h2",{children:["Unsent drafts ",e($e,{abrupt:!0,hidden:i!=="loading"})]}),r&&e("div",{class:"insignificant",children:"Looks like you have unsent drafts. Let's continue where you left off."})]}),e("main",{children:r?e(_,{children:[e("ul",{class:"drafts-list",children:o.map(u=>{const{updatedAt:f,key:c,draftStatus:p,replyTo:l}=u,b=new Date(f);return e("li",{children:[e("div",{class:"mini-draft-meta",children:[e("b",{children:[e(w,{icon:l?"reply":"quill",size:"s"})," ",e("time",{children:[!!l&&e(_,{children:["@",l.account.acct,e("br",{})]}),ot(b)]})]}),e(et,{confirmLabel:e("span",{children:"Delete this draft?"}),menuItemClassName:"danger",align:"end",disabled:i==="loading",onClick:()=>{(async()=>{try{await nt.drafts.del(c),d()}catch{alert("Error deleting draft! Please try again.")}})()},children:e("button",{type:"button",class:"small light",disabled:i==="loading",children:"Delete…"})})]}),e("button",{type:"button",disabled:i==="loading",class:"draft-item",onClick:async()=>{let m;if(l){s("loading");try{m=await n.v1.statuses.$select(l.id).fetch()}catch{alert("Error fetching reply-to status!"),s("default");return}s("default")}window.__COMPOSE__={draftStatus:p,replyToStatus:m},T.showCompose=!0,T.showDrafts=!1},children:e(po,{draft:u})})]},f)})}),o.length>1&&e("p",{children:e(et,{confirmLabel:e("span",{children:"Delete all drafts?"}),menuItemClassName:"danger",disabled:i==="loading",onClick:()=>{(async()=>{s("loading");try{await nt.drafts.delMany(o.map(u=>u.key)),s("default"),d()}catch{alert("Error deleting drafts! Please try again."),s("error")}})()},children:e("button",{type:"button",class:"light danger",disabled:i==="loading",children:"Delete all…"})})})]}):e("p",{children:"No drafts found."})})]})}function po({draft:t}){var c;const{draftStatus:n,replyTo:i}=t,{status:s,spoilerText:o,poll:a,mediaAttachments:h}=n,d=((c=a==null?void 0:a.options)==null?void 0:c.length)>0,r=(h==null?void 0:h.length)>0,u=d||r,f=pe(()=>{if(!r)return;const p=h.find(m=>/image/.test(m.type));if(!p)return;const{file:l}=p;return URL.createObjectURL(l)},[r,h]);return e(_,{children:e("div",{class:"mini-draft",children:[u&&e("div",{class:`mini-draft-aside ${f?"has-image":""}`,style:f?{"--bg-image":`url(${f})`}:{},children:[d&&e(w,{icon:"poll"}),r&&e("span",{children:[e(w,{icon:"attachment"})," ",e("small",{children:h==null?void 0:h.length})]})]}),e("div",{class:"mini-draft-main",children:[!!o&&e("div",{class:"mini-draft-spoiler",children:o}),!!s&&e("div",{class:"mini-draft-status",children:s})]})]})})}function fo({html:t,url:n,width:i,height:s,onClose:o=()=>{}}){return e("div",{class:"embed-modal-container",children:[e("div",{class:"top-controls",children:[e("button",{type:"button",class:"light",onClick:()=>o(),children:e(w,{icon:"x"})}),n&&e("a",{href:n,target:"_blank",rel:"noopener noreferrer",class:"button plain",children:[e("span",{children:"Open link"})," ",e(w,{icon:"external"})]})]}),e("div",{class:"embed-content",dangerouslySetInnerHTML:{__html:t},style:{"--width":i+"px","--height":s+"px","--aspect-ratio":`${i}/${s}`}})]})}function mo({instance:t,excludeRelationshipAttrs:n=[],postID:i,onClose:s=()=>{},blankCopy:o="Nothing to show"}){const{masto:a,instance:h}=Q(),d=t?t===h:!0,r=Me(T),[u,f]=$("default"),[c,p]=$([]),[l,b]=$(!1);if(xs(s),!r.showGenericAccounts)return null;const{id:m,heading:k,fetchAccounts:g,accounts:y,showReactions:C}=r.showGenericAccounts,[v,I]=$({}),x=async M=>{if(!(M!=null&&M.length)||!d)return;const ee=await bn(M,v);ee&&I({...v,...ee})},L=M=>{g&&(M&&p([]),f("loading"),(async()=>{try{const{done:ee,value:X}=await g(M);if(Array.isArray(X)){if(M){const A=[];for(let P=0;PV.id===E.id&&P!==ye);U?U._types.push(...E._types):A.push({_types:[],...E})}p(A)}else p(A=>{const P=A;for(const E of X){const U=P.find(V=>V.id===E.id);U?U._types.push(...E._types):P.push(E)}return P});b(!ee),x(X)}else b(!1);f("default")}catch{f("error")}})())},Y=z(!0);G(()=>{(y==null?void 0:y.length)>0?(p(y),x(y)):(L(!0),Y.current=!1)},[y,g]),G(()=>{var M;Y.current||((M=r.reloadGenericAccounts)==null?void 0:M.id)===m&&L(!0)},[r.reloadGenericAccounts.counter]);const j=T.statuses[i];return e("div",{id:"generic-accounts-container",class:"sheet",tabindex:"-1",children:[e("button",{type:"button",class:"sheet-close",onClick:s,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:k||"Accounts"})}),e("main",{children:[j&&e(oe,{to:`/${t||h}/s/${j.id}`,class:"post-preview",children:e(Be,{status:j,size:"s",readOnly:!0})}),c.length>0?e(_,{children:[e("ul",{class:"accounts-list",children:c.map(M=>{var A,P;const ee=v[M.id],X=`${M.id}-${((A=M._types)==null?void 0:A.length)||""}`;return e("li",{children:[C&&((P=M._types)==null?void 0:P.length)>0&&e("div",{class:"reactions-block",children:M._types.map(E=>e(w,{icon:{reblog:"rocket",favourite:"heart"}[E],class:`${E}-icon`}))}),e("div",{class:"account-relationships",children:e(Xe,{account:M,showStats:!0,relationship:ee,excludeRelationshipAttrs:n})})]},X)})}),u==="default"?l?e(rt,{onChange:M=>{M&&L()},children:e("button",{type:"button",class:"plain block",onClick:()=>L(),children:"Show more…"})}):e("p",{class:"ui-state insignificant",children:"The end."}):u==="loading"&&e("p",{class:"ui-state",children:e($e,{abrupt:!0})})]}):u==="loading"?e("p",{class:"ui-state",children:e($e,{abrupt:!0})}):u==="error"?e("p",{class:"ui-state",children:"Error loading accounts"}):e("p",{class:"ui-state insignificant",children:o})]})]})}function go({alt:t,lang:n,onClose:i}){const s=Me(T),[o,a]=$(!1),h=ys(!0),d=s.settings.contentTranslationHideLanguages||[],r=!!n&&n!==h&&!Dn([n],[h])&&!d.find(u=>n===u||Dn([n],[u]));return e("div",{class:"sheet",tabindex:"-1",children:[!!i&&e("button",{type:"button",class:"sheet-close outer",onClick:i,children:e(w,{icon:"x"})}),e("header",{class:"header-grid",children:[e("h2",{children:"Media description"}),e("div",{class:"header-side",children:e(Ze,{align:"end",menuButton:e("button",{type:"button",class:"plain4",children:e(w,{icon:"more",alt:"More",size:"xl"})}),children:[e(de,{disabled:o,onClick:()=>{a(!0)},children:[e(w,{icon:"translate"}),e("span",{children:"Translate"})]}),vi&&e(de,{onClick:()=>{ki(t,n)},children:[e(w,{icon:"speak"}),e("span",{children:"Speak"})]})]})})]}),e("main",{lang:n,dir:"auto",children:[e("p",{style:{whiteSpace:"pre-wrap",textWrap:"pretty"},children:t}),(r||o)&&e(ks,{forceTranslate:o,sourceLanguage:n,text:t})]})]})}function Qt(t,n,i){return Math.max(Math.min(t,i),n)}const en=t=>t>=.04045?Math.pow((t+.055)/1.055,2.4):t/12.92,tn=t=>t>=.0031308?1.055*Math.pow(t,1/2.4)-.055:12.92*t;function Sn([t,n,i]){t=en(t/255),n=en(n/255),i=en(i/255);var s=.4122214708*t+.5363325363*n+.0514459929*i,o=.2119034982*t+.6806995451*n+.1073969566*i,a=.0883024619*t+.2817188376*n+.6299787005*i;return s=Math.cbrt(s),o=Math.cbrt(o),a=Math.cbrt(a),[s*.2104542553+o*.793617785+a*-.0040720468,s*1.9779984951+o*-2.428592205+a*.4505937099,s*.0259040371+o*.7827717662+a*-.808675766]}function In([t,n,r]){var s=t+n*.3963377774+r*.2158037573,o=t+n*-.1055613458+r*-.0638541728,a=t+n*-.0894841775+r*-1.291485548;s=s**3,o=o**3,a=a**3;var h=s*4.0767416621+o*-3.3077115913+a*.2309699292,d=s*-1.2684380046+o*2.6097574011+a*-.3413193965,r=s*-.0041960863+o*-.7034186147+a*1.707614701;return h=255*tn(h),d=255*tn(d),r=255*tn(r),h=Qt(h,0,255),d=Qt(d,0,255),r=Qt(r,0,255),h=Math.round(h),d=Math.round(d),r=Math.round(r),[h,d,r]}var bo={PHANPY_CLIENT_NAME:"Phanpy",PHANPY_WEBSITE:"https://phanpy.social",PHANPY_LINGVA_INSTANCES:"lingva.phanpy.social lingva.lunar.icu lingva.garudalinux.org translate.plausibility.cloud",PHANPY_PRIVACY_POLICY_URL:"https://github.com/cheeaun/phanpy/blob/main/PRIVACY.MD",VITE_APP_ENV:"production",BASE_URL:"./",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const{PHANPY_IMG_ALT_API_URL:jc}=bo;function Ls({mediaAttachments:t,statusID:n,instance:i,lang:s,index:o=0,onClose:a=()=>{}}){var y,C;const[h,d]=$("default"),r=z(null),[u,f]=$(o),c=z(null);lt(()=>{var v;(v=c.current)==null||v.scrollIntoView()},[]);const p=z(n);G(()=>{const v=o*r.current.clientWidth,I=p.current!==n;I&&(p.current=n),r.current.scrollTo({left:v,behavior:I?"auto":"smooth"}),r.current.focus()},[o,n]);const[l,b]=$(!0);G(()=>{let v=()=>{a()};return r.current&&r.current.addEventListener("swiped-down",v),()=>{r.current&&r.current.removeEventListener("swiped-down",v)}},[]),_e("esc",a,{ignoreEventWhen:v=>!!document.querySelector("#modal-container > *")},[a]),G(()=>{let v=()=>{const{clientWidth:I,scrollLeft:x}=r.current,L=Math.round(x/I);f(L)};return r.current&&r.current.addEventListener("scroll",v,{passive:!0}),()=>{r.current&&r.current.removeEventListener("scroll",v)}},[]),G(()=>{let v=setTimeout(()=>{var I,x;(x=(I=r.current)==null?void 0:I.focus)==null||x.call(I)},100);return()=>clearTimeout(v)},[]);const m=pe(()=>t==null?void 0:t.map(v=>{const{blurhash:I}=v;if(I){const x=fn(I),L=Sn(x);return In([.6,L[1],L[2]])}return null}),[t]),k=pe(()=>{var x;const I=100/m.length;return((x=m==null?void 0:m.map((L,Y)=>{const j=Y*I+5,M=(Y+1)*I-5;return L?` + rgba(${L==null?void 0:L.join(",")}, 0.4) ${j}%, + rgba(${L==null?void 0:L.join(",")}, 0.4) ${M}% + `:` + transparent ${j}%, + transparent ${M}% + `}))==null?void 0:x.join(", "))||"transparent"},[m]);let g=z(null);return G(()=>()=>{var v,I;(I=(v=g.current)==null?void 0:v.hideToast)==null||I.call(v)},[]),e("div",{class:`media-modal-container media-modal-count-${t==null?void 0:t.length}`,children:[e("div",{ref:r,tabIndex:"0","data-swipe-threshold":"44",class:"carousel",onClick:v=>{(v.target.classList.contains("carousel-item")||v.target.classList.contains("media")||v.target.classList.contains("media-zoom"))&&a()},style:t.length>1?{backgroundAttachment:"local",backgroundImage:`linear-gradient( + to right, ${k})`}:{},children:t==null?void 0:t.map((v,I)=>{const x=t.length===1?m[I]:null;return e("div",{class:"carousel-item",style:x?{"--accent-color":`rgb(${x==null?void 0:x.join(",")})`,"--accent-alpha-color":`rgba(${x==null?void 0:x.join(",")}, 0.4)`}:{},tabindex:"0",ref:I===u?c:null,onClick:L=>{L.target.classList.contains("media")||b(!l)},children:[!!v.description&&e("button",{type:"button",class:"media-alt",hidden:!l,onClick:()=>{T.showMediaAlt={alt:v.description,lang:s}},children:[e("span",{class:"alt-badge",children:"ALT"}),e("span",{class:"media-alt-desc",lang:s,dir:"auto",children:v.description})]}),e(Ss,{media:v,showOriginal:!0,lang:s})]},v.id)})}),e("div",{class:"carousel-top-controls",hidden:!l,children:[e("span",{children:e("button",{type:"button",class:"carousel-button",onClick:()=>a(),children:e(w,{icon:"x"})})}),(t==null?void 0:t.length)>1?e("span",{class:"carousel-dots",children:t==null?void 0:t.map((v,I)=>e("button",{type:"button",disabled:I===u,class:`carousel-dot ${I===u?"active":""}`,onClick:x=>{x.preventDefault(),x.stopPropagation(),r.current.scrollTo({left:r.current.clientWidth*I,behavior:"smooth"}),r.current.focus()},children:e(w,{icon:"round",size:"s"})},v.id))}):e("span",{}),e("span",{children:[e(Ze,{overflow:"auto",align:"end",position:"anchor",gap:4,menuClassName:"glass-menu",menuButton:e("button",{type:"button",class:"carousel-button",children:e(w,{icon:"more",alt:"More"})}),children:[e(Re,{href:((y=t[u])==null?void 0:y.remoteUrl)||((C=t[u])==null?void 0:C.url),class:"carousel-button",target:"_blank",title:"Open original media in new window",children:[e(w,{icon:"popout"}),e("span",{children:"Open original media"})]}),!1]})," ",e(oe,{to:`${i?`/${i}`:""}/s/${n}${window.matchMedia("(min-width: calc(40em + 350px))").matches?`?media=${u+1}`:""}`,class:"button carousel-button media-post-link",children:[e("span",{class:"button-label",children:"View post "}),"»"]})]})]}),(t==null?void 0:t.length)>1&&e("div",{class:"carousel-controls",hidden:!l,children:[e("button",{type:"button",class:"carousel-button",hidden:u===0,onClick:v=>{v.preventDefault(),v.stopPropagation(),r.current.focus(),r.current.scrollTo({left:r.current.clientWidth*(u-1),behavior:"smooth"})},children:e(w,{icon:"arrow-left"})}),e("button",{type:"button",class:"carousel-button",hidden:u===t.length-1,onClick:v=>{v.preventDefault(),v.stopPropagation(),r.current.focus(),r.current.scrollTo({left:r.current.clientWidth*(u+1),behavior:"smooth"})},children:e(w,{icon:"arrow-right"})})]})]})}const yo=[,"spam","legal","violation","other"],At={spam:{label:"Spam",description:"Malicious links, fake engagement, or repetitive replies"},legal:{label:"Illegal",description:"Violates the law of your or the server's country"},violation:{label:"Server rule violation",description:"Breaks specific server rules",stampLabel:"Violation"},other:{label:"Other",description:"Issue doesn't fit other categories",excludeStamp:!0}};function wo({account:t,post:n,onClose:i}){const{masto:s}=Q(),[o,a]=$("default"),[h,d]=t.acct.split("@"),[r,u]=pe(()=>{const{rules:g,domain:y}=us();return[g||[],y]}),[f,c]=$(null),[p,l]=$(!1),b=z(null),[m,k]=$(!1);return e("div",{class:"report-modal-container",children:[e("div",{class:"top-controls",children:[e("h1",{children:n?"Report Post":`Report @${h}`}),e("button",{type:"button",class:"plain4 small",disabled:o==="loading",onClick:()=>i(),children:e(w,{icon:"x",size:"xl"})})]}),e("main",{children:[e("div",{class:"report-preview",children:n?e(Be,{status:n,size:"s",previewMode:!0}):e(Xe,{account:t,avatarSize:"xxl",useAvatarStatic:!0,showStats:!0,showActivity:!0})}),!!f&&!At[f].excludeStamp&&e("span",{class:"rubber-stamp","aria-hidden":"true",children:[At[f].stampLabel||At[f].label,e("small",{children:"Pending review"})]},f),e("form",{onSubmit:g=>{g.preventDefault();const y=new FormData(g.target),C=Object.fromEntries(y.entries());let{category:v,comment:I,forward:x}=C;I||(I=void 0),x==="on"&&(x=!0);const L=v==="violation"?Object.entries(C).filter(([j])=>j.startsWith("rule_ids")).map(([j,M])=>M):void 0,Y={category:v,comment:I,forward:x,ruleIds:L};a("loading"),(async()=>{try{await s.v1.reports.create({accountId:t.id,statusIds:n!=null&&n.id?[n.id]:void 0,category:v,comment:I,ruleIds:L,forward:x}),a("success"),se(n?"Post reported":"Profile reported"),i()}catch(j){a("error"),se((j==null?void 0:j.message)||(n?"Unable to report post":"Unable to report profile"))}})()},children:[e("p",{children:n?"What's the issue with this post?":"What's the issue with this profile?"}),e("section",{class:"report-categories",children:yo.map(g=>g==="violation"&&!(r!=null&&r.length)?null:e(_,{children:[e("label",{class:"report-category",children:[e("input",{type:"radio",name:"category",value:g,required:!0,disabled:o==="loading",onChange:y=>{c(y.target.value),l(y.target.value==="violation")}}),e("span",{children:[At[g].label,"  ",e("small",{class:"ib insignificant",children:At[g].description})]})]}),g==="violation"&&!!(r!=null&&r.length)&&e("div",{class:"shazam-container no-animation",hidden:!p,children:e("div",{class:"shazam-container-inner",children:e("div",{class:"report-rules",ref:b,children:r.map((y,C)=>e("label",{class:"report-rule",children:[e("input",{type:"checkbox",name:`rule_ids[${C}]`,value:y.id,required:p&&!m,disabled:o==="loading",onChange:v=>{const{checked:I}=v.target;I?k(!0):b.current.querySelectorAll("input:checked").length||k(!1)}}),e("span",{children:y.text})]},y.id))})})})]},g))}),e("section",{class:"report-comment",children:[e("p",{children:e("label",{for:"report-comment",children:"Additional info"})}),e("textarea",{maxlength:"1000",rows:"1",name:"comment",id:"report-comment",disabled:o==="loading"})]}),!!d&&d!==u&&e("section",{children:e("p",{children:e("label",{children:[e("input",{type:"checkbox",switch:!0,name:"forward",disabled:o==="loading"})," ",e("span",{children:["Forward to ",e("i",{children:d})]})]})})}),e("footer",{children:[e("button",{type:"submit",disabled:o==="loading",children:"Send Report"})," ",e("button",{type:"submit",class:"plain2",disabled:o==="loading",onClick:async()=>{try{await s.v1.accounts.$select(t.id).mute(),se(`Muted ${h}`)}catch{se(`Unable to mute ${h}`)}},children:["Send Report ",e("small",{class:"ib",children:"+ Mute profile"})]})," ",e("button",{type:"submit",class:"plain2",disabled:o==="loading",onClick:async()=>{try{await s.v1.accounts.$select(t.id).block(),se(`Blocked ${h}`)}catch{se(`Unable to block ${h}`)}},children:["Send Report ",e("small",{class:"ib",children:"+ Block profile"})]}),e($e,{hidden:o!=="loading"})]})]})]})]})}const vo="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2084%2062'%3e%3crect%20width='64'%20height='48'%20x='18'%20y='2'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3crect%20width='32'%20height='48'%20x='2'%20y='12'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3cpath%20fill='%234169E1'%20d='M14%2052a4%204%200%201%201-8%200%204%204%200%200%201%208%200Zm64-42a4%204%200%201%201-8%200%204%204%200%200%201%208%200Z'/%3e%3c/svg%3e",ko="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2082%2062'%3e%3crect%20width='78'%20height='58'%20x='2'%20y='2'%20fill='%23999'%20fill-opacity='.3'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3crect%20width='18'%20height='46'%20x='8'%20y='8'%20fill='%23fff'%20stroke='%23999'%20stroke-width='2'%20rx='1'/%3e%3crect%20width='18'%20height='46'%20x='32'%20y='8'%20fill='%23fff'%20stroke='%23999'%20stroke-width='2'%20rx='1'/%3e%3crect%20width='18'%20height='46'%20x='56'%20y='8'%20fill='%23fff'%20stroke='%23999'%20stroke-width='2'%20rx='1'/%3e%3c/svg%3e",So="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20fill='none'%20viewBox='0%200%2084%2062'%3e%3crect%20width='64'%20height='48'%20x='18'%20y='2'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3cpath%20fill='%23999'%20fill-opacity='.3'%20d='M19%203h62v10H19z'/%3e%3cpath%20stroke='%234169E1'%20stroke-width='2'%20d='M43%208a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3cpath%20stroke='%23999'%20stroke-width='2'%20d='M52%208a2%202%200%201%201-4%200%202%202%200%200%201%204%200Zm9%200a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3crect%20width='32'%20height='48'%20x='2'%20y='12'%20fill='%23fff'%20stroke='%23999'%20stroke-width='3'%20rx='4'/%3e%3cpath%20fill='%23999'%20fill-opacity='.3'%20d='M3%2049h30v10H3z'/%3e%3cpath%20stroke='%234169E1'%20stroke-width='2'%20d='M11%2054a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3cpath%20stroke='%23999'%20stroke-width='2'%20d='M20%2054a2%202%200%201%201-4%200%202%202%200%200%201%204%200Zm9%200a2%202%200%201%201-4%200%202%202%200%200%201%204%200Z'/%3e%3c/svg%3e",Io=200,Co=10;async function Kt(){const{masto:t}=Q(),n=t.v1.followedTags.list({limit:Io}),i=[];let s=0;do{const{value:o,done:a}=await n.next();if(a||(o==null?void 0:o.length)===0)break;i.push(...o),s++}while(so.name.localeCompare(a.name)),i.length&&setTimeout(()=>{be.account.set("followedTags",{tags:i,updatedAt:Date.now()})},1),i}const To=24*60*60*1e3;async function xo(){try{const{tags:t,updatedAt:n}=be.account.get("followedTags")||{};return t!=null&&t.length?(Date.now()-n>To&&Kt(),t):await Kt()}catch{return[]}}const Hn=document.createElement("div"),$o=t=>{if(!t)return[];if(t.indexOf("#")===-1)return[];Hn.innerHTML=t;const n=Hn.querySelectorAll("a.hashtag");return n.length?Array.from(n).map(i=>i.innerText.trim().replace(/^[^#]*#+/,"")):[]};function qt({children:t}){if(typeof t=="string")return t;const[n,i]=$("");return G(()=>{Promise.resolve(t).then(i)},[t]),n}const at=9,Ao=["following","mentions","notifications","list","public","trending","search","hashtag","bookmarks","favourites"],Es={following:"Home / Following",notifications:"Notifications",list:"Lists",public:"Public (Local / Federated)",search:"Search","account-statuses":"Account",bookmarks:"Bookmarks",favourites:"Likes",hashtag:"Hashtag",trending:"Trending",mentions:"Mentions"},Ht={list:[{text:"List ID",name:"id",notRequired:!0}],public:[{text:"Local only",name:"local",type:"checkbox"},{text:"Instance",name:"instance",type:"text",placeholder:"Optional, e.g. mastodon.social",notRequired:!0}],trending:[{text:"Instance",name:"instance",type:"text",placeholder:"Optional, e.g. mastodon.social",notRequired:!0}],search:[{text:"Search term",name:"query",type:"text",placeholder:"Optional, unless for multi-column mode",notRequired:!0}],"account-statuses":[{text:"@",name:"id",type:"text",placeholder:"cheeaun@mastodon.social"}],hashtag:[{text:"#",name:"hashtag",type:"text",placeholder:"e.g. PixelArt (Max 5, space-separated)",pattern:"[^#]+"},{text:"Media only",name:"media",type:"checkbox"},{text:"Instance",name:"instance",type:"text",placeholder:"Optional, e.g. mastodon.social",notRequired:!0}]},Ro=ht(async({id:t})=>{const n=await Q().masto.v1.accounts.$select(t).fetch();return n.username||n.acct||n.displayName}),Zt={following:{id:"home",title:(t,n)=>n===0?"Home":"Following",path:"/",icon:"home"},mentions:{id:"mentions",title:"Mentions",path:"/mentions",icon:"at"},notifications:{id:"notifications",title:"Notifications",path:"/notifications",icon:"notification"},list:{id:({id:t})=>t?"list":"lists",title:({id:t})=>t?Gi(t):"Lists",path:({id:t})=>t?`/l/${t}`:"/l",icon:"list",excludeViewMode:({id:t})=>t?[]:["multi-column"]},public:{id:"public",title:({local:t})=>t?"Local":"Federated",subtitle:({instance:t})=>t||Q().instance,path:({local:t,instance:n})=>`/${n}/p${t?"/l":""}`,icon:({local:t})=>t?"building":"earth"},trending:{id:"trending",title:"Trending",subtitle:({instance:t})=>t||Q().instance,path:({instance:t})=>`/${t}/trending`,icon:"chart"},search:{id:"search",title:({query:t})=>t?`“${t}”`:"Search",path:({query:t})=>t?`/search?q=${encodeURIComponent(t)}&type=statuses`:"/search",icon:"search",excludeViewMode:({query:t})=>t?[]:["multi-column"]},"account-statuses":{id:"account-statuses",title:Ro,path:({id:t})=>`/a/${t}`,icon:"user"},bookmarks:{id:"bookmarks",title:"Bookmarks",path:"/b",icon:"bookmark"},favourites:{id:"favourites",title:"Likes",path:"/f",icon:"heart"},hashtag:{id:"hashtag",title:({hashtag:t})=>t,subtitle:({instance:t})=>t||Q().instance,path:({hashtag:t,instance:n,media:i})=>`${n?`/${n}`:""}/t/${t.split(/\s+/).join("+")}${i?"?media=1":""}`,icon:"hashtag"}};function _o({onClose:t}){const n=Me(T),{shortcuts:i}=n,[s,o]=$(!1),[a,h]=$(!1),[d]=pn();return e("div",{id:"shortcuts-settings-container",class:"sheet",tabindex:"-1",children:[!!t&&e("button",{type:"button",class:"sheet-close",onClick:t,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:[e(w,{icon:"shortcut"})," Shortcuts"," ",e("sup",{style:{fontSize:12,opacity:.5,textTransform:"uppercase"},children:"beta"})]})}),e("main",{children:[e("p",{children:"Specify a list of shortcuts that'll appear as:"}),e("div",{class:"shortcuts-view-mode",children:[{value:"float-button",label:"Floating button",imgURL:vo},{value:"tab-menu-bar",label:"Tab/Menu bar",imgURL:So},{value:"multi-column",label:"Multi-column",imgURL:ko}].map(({value:r,label:u,imgURL:f})=>{const c=n.settings.shortcutsViewMode===r||r==="float-button"&&!n.settings.shortcutsViewMode;return e("label",{class:c?"checked":"",children:[e("input",{type:"radio",name:"shortcuts-view-mode",value:r,checked:c,onChange:p=>{T.settings.shortcutsViewMode=p.target.value}})," ",e("img",{src:f,alt:"",width:"80",height:"58"})," ",e("span",{children:u})]},r)})}),i.length>0?e(_,{children:[e("ol",{class:"shortcuts-list",ref:d,children:i.filter(Boolean).map((r,u)=>{const f=Object.values(r).join("-"),{type:c}=r;if(!Zt[c])return null;let{icon:p,title:l,subtitle:b,excludeViewMode:m}=Zt[c];typeof l=="function"&&(l=l(r,u)),typeof b=="function"&&(b=b(r,u)),typeof p=="function"&&(p=p(r,u)),typeof m=="function"&&(m=m(r,u));const k=m==null?void 0:m.includes(n.settings.shortcutsViewMode);return e("li",{children:[e(w,{icon:p}),e("span",{class:"shortcut-text",children:[e(qt,{children:l}),b&&e(_,{children:[" ",e("small",{class:"ib insignificant",children:b})]}),k&&e("span",{class:"tag",children:"Not available in current view mode"})]}),e("span",{class:"shortcut-actions",children:[e("button",{type:"button",class:"plain small",disabled:u===0,onClick:()=>{const g=Array.from(T.shortcuts);if(u>0){const y=T.shortcuts[u-1];g[u-1]=r,g[u]=y,T.shortcuts=g}},children:e(w,{icon:"arrow-up",alt:"Move up"})}),e("button",{type:"button",class:"plain small",disabled:u===i.length-1,onClick:()=>{const g=Array.from(T.shortcuts);if(u{o({shortcut:r,shortcutIndex:u})},children:e(w,{icon:"pencil",alt:"Edit"})})]})]},f)})}),i.length===1&&n.settings.shortcutsViewMode!=="float-button"&&e("div",{class:"ui-state insignificant",children:[e(w,{icon:"info"})," ",e("small",{children:"Add more than one shortcut/column to make this work."})]})]}):e("div",{class:"ui-state insignificant",children:[e("p",{children:n.settings.shortcutsViewMode==="multi-column"?"No columns yet. Tap on the Add column button.":"No shortcuts yet. Tap on the Add shortcut button."}),e("p",{children:["Not sure what to add?",e("br",{}),"Try adding"," ",e("a",{href:"#",onClick:r=>{r.preventDefault(),T.shortcuts=[{type:"following"},{type:"notifications"}]},children:"Home / Following and Notifications"})," ","first."]})]}),e("p",{class:"insignificant",children:i.length>=at&&(n.settings.shortcutsViewMode==="multi-column"?`Max ${at} columns`:`Max ${at} shortcuts`)}),e("p",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e("button",{type:"button",class:"light",onClick:()=>h(!0),children:"Import/export"}),e("button",{type:"button",disabled:i.length>=at,onClick:()=>o(!0),children:[e(w,{icon:"plus"})," ",e("span",{children:n.settings.shortcutsViewMode==="multi-column"?"Add column…":"Add shortcut…"})]})]})]}),s&&e(Ae,{onClick:r=>{r.target===r.currentTarget&&o(!1)},children:e(Lo,{shortcut:s.shortcut,shortcutIndex:s.shortcutIndex,onSubmit:({result:r,mode:u})=>{u==="edit"?T.shortcuts[s.shortcutIndex]=r:T.shortcuts.push(r)},onClose:()=>o(!1)})}),a&&e(Ae,{onClick:r=>{r.target===r.currentTarget&&h(!1)},children:e(Eo,{shortcuts:i,onClose:()=>h(!1)})})]})}const Vn={list:"Specific list is optional. For multi-column mode, list is required, else the column will not be shown.",search:"For multi-column mode, search term is required, else the column will not be shown.",hashtag:"Multiple hashtags are supported. Space-separated."};function Lo({onSubmit:t,disabled:n,shortcut:i,shortcutIndex:s,onClose:o}){var k,g;const a=!!i,[h,d]=$((i==null?void 0:i.type)||null),{masto:r}=Q(),[u,f]=$("default"),[c,p]=$([]),[l,b]=$([]);G(()=>{(async()=>{if(h==="list")try{f("loading");const y=await Pt();p(y),f("default")}catch{f("error")}})(),(async()=>{if(h==="hashtag")try{const y=await Kt();b(y)}catch{}})()},[h]);const m=z();return G(()=>{if(a&&h&&Ht[h]){const y=m.current;Ht[h].forEach(({name:C,type:v})=>{const I=y.querySelector(`[name="${C}"]`);I&&i[C]&&(v==="checkbox"?I.checked=i[C]==="on":I.value=i[C])})}},[a,h]),e("div",{id:"shortcut-settings-form",class:"sheet",children:[!!o&&e("button",{type:"button",class:"sheet-close",onClick:o,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:[a?"Edit":"Add"," shortcut"]})}),e("main",{tabindex:"-1",children:e("form",{ref:m,onSubmit:y=>{y.preventDefault();const C=new FormData(y.target),v={};C.forEach((I,x)=>{v[x]=I==null?void 0:I.trim(),x==="instance"&&(v[x]=v[x].replace(/^https?:\/\//,"").replace(/\/+$/,""),v[x]=v[x].replace(/^@?[^@]+@/,""))}),v.type&&(t({result:v,mode:a?"edit":"add"}),y.target.reset(),d(null),o==null||o())},children:[e("p",{children:e("label",{children:[e("span",{children:"Timeline"}),e("select",{required:!0,disabled:n,onChange:y=>{d(y.target.value)},defaultValue:a?i.type:void 0,name:"type",children:[e("option",{}),Ao.map(y=>e("option",{value:y,children:Es[y]}))]})]})}),(g=(k=Ht[h])==null?void 0:k.map)==null?void 0:g.call(k,({text:y,name:C,type:v,placeholder:I,pattern:x,notRequired:L})=>h==="list"?e("p",{children:e("label",{children:[e("span",{children:"List"}),e("select",{name:"id",required:!L,disabled:n||u==="loading",defaultValue:a?i.id:void 0,children:[e("option",{value:""}),c.map(Y=>e("option",{value:Y.id,children:Y.title}))]})]})}):e("p",{children:e("label",{children:[e("span",{children:y})," ",e("input",{type:v,switch:v==="checkbox"||void 0,name:C,placeholder:I,required:v==="text"&&!L,disabled:n,list:h==="hashtag"?"followed-hashtags-datalist":null,autocorrect:"off",autocapitalize:"off",spellCheck:!1,pattern:x}),h==="hashtag"&&l.length>0&&e("datalist",{id:"followed-hashtags-datalist",children:l.map(Y=>e("option",{value:Y.name}))})]})})),!!Vn[h]&&e("p",{class:"form-note insignificant",children:[e(w,{icon:"info"}),Vn[h]]}),e("footer",{children:[e("button",{type:"submit",class:"block",disabled:n||u==="loading",children:a?"Save":"Add"}),a&&e("button",{type:"button",class:"light danger",onClick:()=>{T.shortcuts.splice(s,1),o==null||o()},children:"Remove"})]})]})})]})}function Eo({shortcuts:t,onClose:n}){var c;const{masto:i}=Q(),s=pe(()=>!t||!t.filter(Boolean).length?"":_n.compressToEncodedURIComponent(JSON.stringify(t.filter(Boolean))),[t]),[o,a]=$(""),[h,d]=$("default"),r=pe(()=>{if(!o)return d("default"),null;try{const p=JSON.parse(_n.decompressFromEncodedURIComponent(o));if(!Array.isArray(p))throw new Error("Not an array");return d("default"),p}catch{try{const l=JSON.parse(o);if(!Array.isArray(l))throw new Error("Not an array");return d("default"),l}catch{return d("error"),null}}},[o]),u=T.shortcuts.length>0,f=z();return e("div",{id:"import-export-container",class:"sheet",children:[!!n&&e("button",{type:"button",class:"sheet-close",onClick:n,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:["Import/Export ",e("small",{class:"ib insignificant",children:"Shortcuts"})]})}),e("main",{tabindex:"-1",children:[e("section",{children:[e("h3",{children:[e(w,{icon:"arrow-down-circle",size:"l",class:"insignificant"})," ",e("span",{children:"Import"})]}),e("p",{class:"field-button",children:[e("input",{ref:f,type:"text",name:"import",placeholder:"Paste shortcuts here",class:"block",onInput:p=>{a(p.target.value)}}),T.settings.shortcutSettingsCloudImportExport&&e("button",{type:"button",class:"plain2 small",disabled:h==="cloud-downloading",onClick:async()=>{d("cloud-downloading");const p=ct();se("Downloading saved shortcuts from instance server…");try{const b=(await i.v1.accounts.relationships.fetch({id:[p]}))[0];if(b){const{note:m=""}=b;if(/(.*)<\/phanpy-shortcuts-settings>/.test(m)){const k=m.match(/(.*)<\/phanpy-shortcuts-settings>/)[1],{v:g,dt:y,data:C}=JSON.parse(k);f.current.value=C,f.current.dispatchEvent(new Event("input"))}}d("default")}catch{d("error"),se("Unable to download shortcuts")}},title:"Download shortcuts from instance server",children:[e(w,{icon:"cloud"}),e(w,{icon:"arrow-down"})]})]}),!!r&&Array.isArray(r)&&e(_,{children:[e("p",{children:[e("b",{children:r.length})," shortcut",r.length>1?"s":""," ",e("small",{class:"insignificant",children:["(",o.length," characters)"]})]}),e("ol",{class:"import-settings-list",children:r.map(p=>{var l,b;return e("li",{children:[e("span",{style:{opacity:t.some(m=>Object.keys(m).every(k=>m[k]===p[k]))?1:0},children:"*"}),e("span",{children:[Es[p.type],p.type==="list"&&" ⚠️"," ",(b=(l=Ht[p.type])==null?void 0:l.map)==null?void 0:b.call(l,({text:m,name:k,type:g})=>p[k]?e(_,{children:[e("span",{class:"tag collapsed insignificant",children:[m,":"," ",g==="checkbox"?p[k]==="on"?"✅":"❌":p[k]]})," "]}):null)]})]})})}),e("p",{children:[e("small",{children:"* Exists in current shortcuts"}),e("br",{}),e("small",{children:"⚠️ List may not work if it's from a different account."})]})]}),h==="error"&&e("p",{class:"error",children:e("small",{children:"⚠️ Invalid settings format"})}),e("p",{children:[u&&e(_,{children:[e(et,{confirmLabel:"Append to current shortcuts?",menuFooter:e("div",{class:"footer",children:"Only shortcuts that don’t exist in current shortcuts will be appended."}),onClick:()=>{const p=r.filter(m=>!T.shortcuts.some(k=>Object.keys(k).every(g=>k[g]===m[g])));if(!p.length){se("No new shortcuts to import");return}let l=[...T.shortcuts,...p];const b=l.length>at;b&&(l=l.slice(0,at)),T.shortcuts=l,se(b?`Shortcuts imported. Exceeded max ${at}, so the rest are not imported.`:"Shortcuts imported"),n==null||n()},children:e("button",{type:"button",class:"plain2",disabled:!r,children:"Import & append…"})})," "]}),e(et,{confirmLabel:u?"Override current shortcuts?":"Import shortcuts?",menuItemClassName:u?"danger":void 0,onClick:()=>{T.shortcuts=r,se("Shortcuts imported"),n==null||n()},children:e("button",{type:"button",class:"plain2",disabled:!r,children:u?"or override…":"Import…"})})]})]}),e("section",{children:[e("h3",{children:[e(w,{icon:"arrow-up-circle",size:"l",class:"insignificant"})," ",e("span",{children:"Export"})]}),e("p",{children:e("input",{style:{width:"100%"},type:"text",value:s,readOnly:!0,onClick:p=>{if(p.target.value){p.target.select();try{navigator.clipboard.writeText(p.target.value),se("Shortcuts copied")}catch{se("Unable to copy shortcuts")}}}})}),e("p",{children:[e("button",{type:"button",class:"plain2",disabled:!s,onClick:()=>{try{navigator.clipboard.writeText(s),se("Shortcut settings copied")}catch{se("Unable to copy shortcut settings")}},children:[e(w,{icon:"clipboard"})," ",e("span",{children:"Copy"})]})," ",(navigator==null?void 0:navigator.share)&&((c=navigator==null?void 0:navigator.canShare)==null?void 0:c.call(navigator,{text:s}))&&e("button",{type:"button",class:"plain2",disabled:!s,onClick:()=>{try{navigator.share({text:s})}catch{alert("Sharing doesn't seem to work.")}},children:[e(w,{icon:"share"})," ",e("span",{children:"Share"})]})," ",T.settings.shortcutSettingsCloudImportExport&&e("button",{type:"button",class:"plain2",disabled:h==="cloud-uploading",onClick:async()=>{d("cloud-uploading");const p=ct();try{const b=(await i.v1.accounts.relationships.fetch({id:[p]}))[0];if(b){const{note:m=""}=b;let k="";if(/(.*)<\/phanpy-shortcuts-settings>/.test(m)){const g=JSON.stringify({v:"1",dt:Date.now(),data:s});k=m.replace(/(.*)<\/phanpy-shortcuts-settings>/,`${g}`)}else k=`${m} + + +${settingsJSON}`;se("Saving shortcuts to instance server…"),await i.v1.accounts.$select(p).note.create({comment:k}),d("default"),se("Shortcuts saved")}}catch{d("error"),se("Unable to save shortcuts")}},title:"Sync to instance server",children:[e(w,{icon:"cloud"}),e(w,{icon:"arrow-up"})]})," ",s.length>0&&e("small",{class:"insignificant ib",children:[s.length," characters"]})]}),!!s&&e("details",{children:[e("summary",{class:"insignificant",children:e("small",{children:"Raw Shortcuts JSON"})}),e("textarea",{style:{width:"100%"},rows:10,readOnly:!0,children:JSON.stringify(t.filter(Boolean),null,2)})]})]}),T.settings.shortcutSettingsCloudImportExport&&e("footer",{children:e("p",{children:[e(w,{icon:"cloud"})," Import/export settings from/to instance server (Very experimental)"]})})]})]})}ps(T,t=>{for(const[n,i,s,o]of t)/^show/i.test(i)&&!s&&an()});function Mo(){var s,o,a,h,d,r,u,f;const t=Me(T),n=fs(),i=Tt();return G(()=>{setTimeout(Zs,1e3)},[]),e(_,{children:[!!t.showCompose&&e(Ae,{class:`solid ${t.composerState.minimized?"min":""}`,minimized:!!t.composerState.minimized,children:e(Js,{replyToStatus:typeof t.showCompose!="boolean"?t.showCompose.replyToStatus:((s=window.__COMPOSE__)==null?void 0:s.replyToStatus)||null,editStatus:((o=T.showCompose)==null?void 0:o.editStatus)||((a=window.__COMPOSE__)==null?void 0:a.editStatus)||null,draftStatus:((h=T.showCompose)==null?void 0:h.draftStatus)||((d=window.__COMPOSE__)==null?void 0:d.draftStatus)||null,onClose:c=>{const{newStatus:p,instance:l,type:b}=c||{};T.showCompose=!1,window.__COMPOSE__=null,p&&(T.reloadStatusPage++,se({text:{post:"Post published. Check it out.",reply:"Reply posted. Check it out.",edit:"Post updated. Check it out."}[b||"post"],delay:1e3,duration:1e4,onClick:m=>{m.hideToast(),T.prevLocation=i,n(l?`/${l}/s/${p.id}`:`/s/${p.id}`)}}))}})}),!!t.showSettings&&e(Ae,{onClose:()=>{T.showSettings=!1},children:e(Bi,{onClose:()=>{T.showSettings=!1}})}),!!t.showAccounts&&e(Ae,{onClose:()=>{T.showAccounts=!1},children:e(Li,{onClose:()=>{T.showAccounts=!1}})}),!!t.showAccount&&e(Ae,{onClose:()=>{T.showAccount=!1},children:e(uo,{account:((r=t.showAccount)==null?void 0:r.account)||t.showAccount,instance:(u=t.showAccount)==null?void 0:u.instance,onClose:({destination:c}={})=>{T.showAccount=!1}})}),!!t.showDrafts&&e(Ae,{onClose:()=>{T.showDrafts=!1},children:e(ho,{onClose:()=>T.showDrafts=!1})}),!!t.showMediaModal&&e(Ae,{onClick:c=>{(c.target===c.currentTarget||c.target.classList.contains("media"))&&(T.showMediaModal=!1)},children:e(Ls,{mediaAttachments:t.showMediaModal.mediaAttachments,instance:t.showMediaModal.instance,index:t.showMediaModal.index,statusID:t.showMediaModal.statusID,onClose:()=>{T.showMediaModal=!1}})}),!!t.showShortcutsSettings&&e(Ae,{onClose:()=>{T.showShortcutsSettings=!1},children:e(_o,{onClose:()=>T.showShortcutsSettings=!1})}),!!t.showGenericAccounts&&e(Ae,{onClose:()=>{T.showGenericAccounts=!1},children:e(mo,{instance:t.showGenericAccounts.instance,excludeRelationshipAttrs:t.showGenericAccounts.excludeRelationshipAttrs,postID:t.showGenericAccounts.postID,onClose:()=>T.showGenericAccounts=!1,blankCopy:t.showGenericAccounts.blankCopy})}),!!t.showMediaAlt&&e(Ae,{onClose:c=>{T.showMediaAlt=!1},children:e(go,{alt:t.showMediaAlt.alt||t.showMediaAlt,lang:(f=t.showMediaAlt)==null?void 0:f.lang,onClose:()=>{T.showMediaAlt=!1}})}),!!t.showEmbedModal&&e(Ae,{class:"solid",onClose:()=>{T.showEmbedModal=!1},children:e(fo,{html:t.showEmbedModal.html,url:t.showEmbedModal.url,width:t.showEmbedModal.width,height:t.showEmbedModal.height,onClose:()=>{T.showEmbedModal=!1}})}),!!t.showReportModal&&e(Ae,{onClose:()=>{T.showReportModal=!1},children:e(wo,{account:t.showReportModal.account,post:t.showReportModal.post,onClose:()=>{T.showReportModal=!1}})})]})}function rn({accountID:t,onChange:n}){const{masto:i}=Q(),[s,o]=$("default"),[a,h]=$(null),[d,r]=$(null),u=d!==null;return e("p",{class:"follow-request-buttons",children:[e("button",{type:"button",disabled:s==="loading"||u,onClick:()=>{o("loading"),h("accept"),(async()=>{try{const f=await i.v1.followRequests.$select(t).authorize();if(!(f!=null&&f.followedBy))throw new Error("Follow request not accepted");r(f),n()}catch{}o("default")})()},children:"Accept"})," ",e("button",{type:"button",disabled:s==="loading"||u,class:"light danger",onClick:()=>{o("loading"),h("reject"),(async()=>{try{const f=await i.v1.followRequests.$select(t).reject();if(f!=null&&f.followedBy)throw new Error("Follow request not rejected");r(f),n()}catch{o("default")}})()},children:"Reject"}),e("span",{class:"follow-request-states",children:u&&a?a==="accept"?e(w,{icon:"check-circle",alt:"Accepted",class:"follow-accepted"}):e(w,{icon:"x-circle",alt:"Rejected",class:"follow-rejected"}):e($e,{hidden:s!=="loading"})})]})}const Gn={mention:"comment",status:"notification",reblog:"rocket",follow:"follow",follow_request:"follow-add",favourite:"heart",poll:"poll",update:"pencil","admin.signup":"account-edit","admin.report":"account-warning",severed_relationships:"heart-break",moderation_warning:"alert",emoji_reaction:"emoji2","pleroma:emoji_reaction":"emoji2"};function Yn(t,n){let i,s;return typeof n=="string"?i=n:(i=n==null?void 0:n.url,s=n==null?void 0:n.staticUrl),i?e(_,{children:["reacted to your post with"," ",e(Si,{url:i,staticUrl:s,alt:t})]}):`reacted to your post with ${t}.`}const vt={mention:"mentioned you in their post.",status:"published a post.",reblog:"boosted your post.","reblog+account":t=>`boosted ${t} of your posts.`,reblog_reply:"boosted your reply.",follow:"followed you.",follow_request:"requested to follow you.",favourite:"liked your post.","favourite+account":t=>`liked ${t} of your posts.`,favourite_reply:"liked your reply.",poll:"A poll you have voted in or created has ended.","poll-self":"A poll you have created has ended.","poll-voted":"A poll you have voted in has ended.",update:"A post you interacted with has been edited.","favourite+reblog":"boosted & liked your post.","favourite+reblog+account":t=>`boosted & liked ${t} of your posts.`,"favourite+reblog_reply":"boosted & liked your reply.","admin.sign_up":"signed up.","admin.report":t=>e(_,{children:["reported ",t]}),severed_relationships:t=>e(_,{children:["Lost connections with ",e("i",{children:t}),"."]}),moderation_warning:e("b",{children:"Moderation warning"}),emoji_reaction:Yn,"pleroma:emoji_reaction":Yn},Po={account_suspension:({from:t,targetName:n})=>e(_,{children:["An admin from ",e("i",{children:t})," has suspended ",e("i",{children:n}),", which means you can no longer receive updates from them or interact with them."]}),domain_block:({from:t,targetName:n,followersCount:i,followingCount:s})=>e(_,{children:["An admin from ",e("i",{children:t})," has blocked ",e("i",{children:n}),". Affected followers: ",i,", followings: ",s,"."]}),user_domain_block:({targetName:t,followersCount:n,followingCount:i})=>e(_,{children:["You have blocked ",e("i",{children:t}),". Removed followers: ",n,", followings: ",i,"."]})},Do={none:"Your account has received a moderation warning.",disable:"Your account has been disabled.",mark_statuses_as_sensitive:"Some of your posts have been marked as sensitive.",delete_statuses:"Some of your posts have been deleted.",sensitive:"Your posts will be marked as sensitive from now on.",silence:"Your account has been limited.",suspend:"Your account has been suspended."},nn=30;function No({notification:t,instance:n,isStatic:i,disableContextMenu:s}){var j,M,ee,X,A,P;const{id:o,status:a,account:h,report:d,event:r,moderation_warning:u,_accounts:f,_statuses:c}=t;let{type:p}=t;const l=(a==null?void 0:a.reblog)||a,b=l==null?void 0:l.id,m=ct(),k=m===(h==null?void 0:h.id),g=(j=a==null?void 0:a.poll)==null?void 0:j.voted,y=!!(a!=null&&a.inReplyToAccountId)&&(a==null?void 0:a.inReplyToAccountId)!==m&&((M=a==null?void 0:a.account)==null?void 0:M.id)===m;let C=0,v=0;if(p==="favourite+reblog"){for(const E of f)(ee=E._types)!=null&&ee.includes("favourite")&&C++,(X=E._types)!=null&&X.includes("reblog")&&v++;!v&&C&&(p="favourite"),!C&&v&&(p="reblog")}let I;if(p==="poll"?I=vt[k?"poll-self":g?"poll-voted":"poll"]:p==="reblog"||p==="favourite"||p==="favourite+reblog"?(c==null?void 0:c.length)>1?I=vt[`${p}+account`]:y?I=vt[`${p}_reply`]:I=vt[p]:vt[p]?I=vt[p]:I=`[Unknown notification type: ${p}]`,typeof I=="function"){const E=(c==null?void 0:c.length)||(f==null?void 0:f.length);if(p==="admin.report"){const U=d==null?void 0:d.targetAccount;U&&(I=I(e(It,{account:U,showAvatar:!0})))}else if(p==="severed_relationships"){const U=r==null?void 0:r.targetName;U&&(I=I(U))}else if((p==="emoji_reaction"||p==="pleroma:emoji_reaction")&&t.emoji){const U=t.emoji_url||((P=(A=a==null?void 0:a.emojis)==null?void 0:A.find)==null?void 0:P.call(A,V=>(V==null?void 0:V.shortcode)===t.emoji.replace(/^:/,"").replace(/:$/,"")));I=I(t.emoji,U)}else E&&(I=I(E))}if(p==="mention"&&!a)return null;const x=t.createdAt&&new Date(t.createdAt).toLocaleString(),L={"favourite+reblog":"Boosted/Liked by…",favourite:"Liked by…",reblog:"Boosted by…",follow:"Followed by…"}[p]||"Accounts",Y=()=>{T.showGenericAccounts={heading:L,accounts:f,showReactions:p==="favourite+reblog",excludeRelationshipAttrs:p==="follow"?["followedBy"]:[],postID:Ke(b,n)}};return e("div",{class:`notification notification-${p}`,"data-notification-id":o,tabIndex:"0",children:[e("div",{class:`notification-type notification-${p}`,title:x,children:p==="favourite+reblog"?e(_,{children:[e(w,{icon:"rocket",size:"xl",alt:p,class:"reblog-icon"}),e(w,{icon:"heart",size:"xl",alt:p,class:"favourite-icon"})]}):e(w,{icon:Gn[p]||"notification",size:"xl",alt:p})}),e("div",{class:"notification-content",children:[p!=="mention"&&e(_,{children:[e("p",{children:[!/poll|update/i.test(p)&&e(_,{children:(f==null?void 0:f.length)>1?e(_,{children:[e("b",{tabIndex:"0",onClick:Y,children:[e("span",{title:f.length,children:Ge(f.length)})," ","people"]})," "]}):h&&e(_,{children:[e(It,{account:h,showAvatar:!0})," "]})}),I,p==="mention"&&e("span",{class:"insignificant",children:[" ","•"," ",e(bt,{datetime:t.createdAt,format:"micro"})]})]}),p==="follow_request"&&e(rn,{accountID:h.id}),p==="severed_relationships"&&e("div",{children:[Po[r.type]({from:n,...r}),e("br",{}),e("a",{href:`https://${n}/severed_relationships`,target:"_blank",rel:"noopener noreferrer",children:["Learn more ",e(w,{icon:"external",size:"s"})]}),"."]}),p==="moderation_warning"&&!!u&&e("div",{children:[Do[u.action],e("br",{}),e("a",{href:`/disputes/strikes/${u.id}`,target:"_blank",rel:"noopener noreferrer",children:["Learn more ",e(w,{icon:"external",size:"s"})]}),"."]})]}),(f==null?void 0:f.length)>1&&e("p",{class:"avatars-stack",children:[f.slice(0,nn).map(E=>e(_,{children:[e("a",{href:E.url,rel:"noopener noreferrer",class:"account-avatar-stack",onClick:U=>{U.preventDefault(),T.showAccount=E},children:[e(st,{url:E.avatarStatic,size:f.length<=10?"xxl":f.length<20?"xl":"l",alt:`${E.displayName} @${E.acct}`,squircle:E==null?void 0:E.bot},E.id),p==="favourite+reblog"&&e("div",{class:"account-sub-icons",children:E._types.map(U=>e(w,{icon:Gn[U],size:"s",class:`${U}-icon`}))})]},E.id)," "]},E.id)),e("button",{type:"button",class:"small plain",onClick:Y,children:[f.length>nn&&`+${f.length-nn}`,e(w,{icon:"chevron-down"})]})]}),(c==null?void 0:c.length)>1&&e("ul",{class:"notification-group-statuses",children:c.map(E=>e("li",{children:e(jn,{class:`status-link status-type-${p}`,to:n?`/${n}/s/${E.id}`:`/s/${E.id}`,children:e(Be,{status:E,size:"s",previewMode:!0,allowContextMenu:!0})})},E.id))}),a&&(!(c!=null&&c.length)||(c==null?void 0:c.length)<=1)&&e(jn,{class:`status-link status-type-${p}`,to:n?`/${n}/s/${b}`:`/s/${b}`,onContextMenu:s?void 0:E=>{const U=E.target.querySelector(".status");if(U){if(E.metaKey)return;E.preventDefault(),U.dispatchEvent(new MouseEvent("contextmenu",{clientX:E.clientX,clientY:E.clientY}))}},children:i?e(Be,{status:l,size:"s",readOnly:!0,allowContextMenu:!0}):e(Be,{statusID:b,size:"s",readOnly:!0,allowContextMenu:!0})})]})]})}function jn(t){const n=Ii();return e(oe,{...t,"data-read-more":"Read more →",ref:n})}const Xt=Je(No,(t,n)=>{var i,s;return((i=t.notification)==null?void 0:i.id)===((s=n.notification)==null?void 0:s.id)});"serviceWorker"in navigator&&navigator.serviceWorker.addEventListener("message",t=>{const{type:n,id:i,accessToken:s}=(t==null?void 0:t.data)||{};n==="notification"&&(T.routeNotification={id:i,accessToken:s})});const Uo=Je(function(){if(!("serviceWorker"in navigator))return null;const n=Me(T),{routeNotification:i}=n,{id:s,accessToken:o}=i||{},[a,h]=$(!1);lt(()=>{if(!s||!o)return;const{instance:r}=Q(),{masto:u,instance:f}=Q({accessToken:o}),c=r===f,p=o?Xs(o):St();(async()=>{const l=await u.v1.notifications.$select(s).fetch();if(l&&p){const b=p.instanceURL,{type:m,status:k,account:g}=l,y=!!document.querySelector("#modal-container > *"),C=m==="follow"&&!!(g!=null&&g.id),v=!!(g!=null&&g.id),I=!!(k!=null&&k.id);C&&c?T.showAccount={account:g,instance:b}:y||!c||v&&I?h({id:s,account:p,notification:l,sameInstance:c}):I?location.hash=`/${r}/s/${k.id}`:C?location.hash=`/${r}/a/${g.id}`:location.hash="/notifications"}})()},[s,o]),lt(()=>{navigator!=null&&navigator.clearAppBadge&&navigator.clearAppBadge()},[]),Ct(r=>{r&&(navigator!=null&&navigator.clearAppBadge)&&navigator.clearAppBadge()});const d=()=>{h(!1),T.routeNotification=null,/\/notifications\?id=/i.test(location.hash)&&(location.hash="/notifications")};if(a){const{id:r,account:u,notification:f,sameInstance:c}=a;return e(Ae,{onClick:p=>{p.target===p.currentTarget&&d()},children:e("div",{class:"sheet",tabIndex:"-1",children:[e("button",{type:"button",class:"sheet-close",onClick:d,children:e(w,{icon:"x"})}),e("header",{children:e("b",{children:"Notification"})}),e("main",{children:[!c&&e("p",{children:"This notification is from your other account."}),e("div",{class:"notification-peek",onClick:p=>{const{target:l}=p;(p.target.tagName==="BUTTON"||p.target.tagName==="A")&&d()},children:e(Xt,{instance:u.instanceURL,notification:f,isStatic:!0})}),e("div",{style:{textAlign:"end"},children:e(oe,{to:"/notifications",class:"button light",onClick:d,children:[e("span",{children:"View all notifications"})," ",e(w,{icon:"arrow-right"})]})})]})]})})}return null}),Ms=si((t,n)=>{const{instance:i}=Q(),[s,o]=it(),[a,h]=$(!1),[d,r]=$(s.get("q")||""),u=s.get("type"),f=z(null),c=z(null);return ni(n,()=>({setValue:p=>{r(p)},focus:()=>{c.current.focus()},select:()=>{c.current.select()},blur:()=>{c.current.blur()}})),e("form",{ref:f,class:"search-popover-container",onSubmit:p=>{var b;if(p.preventDefault(),/\/search/.test(location.hash))if(d){const m={q:d};u&&(m.type=u),o(m)}else o({});else d?location.hash=`/search?q=${encodeURIComponent(d)}${u?`&type=${u}`:""}`:location.hash="/search";(b=t==null?void 0:t.onSubmit)==null||b.call(t,p)},children:[e("input",{ref:c,value:d,name:"q",type:"search",placeholder:"Search",dir:"auto",autocomplete:"off",autocorrect:"off",autocapitalize:"off",spellCheck:"false",onSearch:p=>{p.target.value||o({})},onInput:p=>{r(p.target.value),h(!0)},onFocus:()=>{var p,l;h(!0),(l=(p=f.current)==null?void 0:p.querySelector(".search-popover-item"))==null||l.classList.add("focus")},onBlur:()=>{var p,l;setTimeout(()=>{h(!1)},100),(l=(p=f.current)==null?void 0:p.querySelector(".search-popover-item.focus"))==null||l.classList.remove("focus")},onKeyDown:p=>{var b;const{key:l}=p;switch(l){case"Escape":h(!1);break;case"Down":case"ArrowDown":if(p.preventDefault(),a){const m=f.current.querySelector(".search-popover-item.focus");if(m){let k=m.nextElementSibling;for(;k&&k.hidden;)k=k.nextElementSibling;k&&(k.classList.add("focus"),Array.from(k.parentElement.children).filter(y=>y!==k).forEach(y=>{y.classList.remove("focus")}))}else{const k=f.current.querySelector(".search-popover-item");k&&k.classList.add("focus")}}break;case"Up":case"ArrowUp":if(p.preventDefault(),a){const m=document.querySelector(".search-popover-item.focus");if(m){let k=m.previousElementSibling;for(;k&&k.hidden;)k=k.previousElementSibling;k&&(k.classList.add("focus"),Array.from(k.parentElement.children).filter(y=>y!==k).forEach(y=>{y.classList.remove("focus")}))}else{const k=document.querySelector(".search-popover-item:last-child");k&&k.classList.add("focus")}}break;case"Enter":if(a){const m=document.querySelector(".search-popover-item.focus");m&&(p.preventDefault(),m.click()),h(!1),(b=t==null?void 0:t.onSubmit)==null||b.call(t,p)}break}}}),e("div",{class:"search-popover",hidden:!a||!d,children:!!d&&[{label:e(_,{children:[d," ",e("small",{class:"insignificant",children:"‒ accounts, hashtags & posts"})]}),to:`/search?q=${encodeURIComponent(d)}`,top:!u&&!/\s/.test(d),hidden:!!u},{label:e(_,{children:["Posts with ",e("q",{children:d})]}),to:`/search?q=${encodeURIComponent(d)}&type=statuses`,hidden:/^https?:/.test(d),top:/\s/.test(d),icon:"document",queryType:"statuses"},{label:e(_,{children:["Posts tagged with ",e("mark",{children:["#",d.replace(/^#/,"")]})]}),to:`/${i}/t/${d.replace(/^#/,"")}`,hidden:/^@/.test(d)||/^https?:/.test(d)||/\s/.test(d),top:/^#/.test(d),type:"link",icon:"hashtag",queryType:"hashtags"},{label:e(_,{children:["Look up ",e("mark",{children:d})]}),to:`/${d}`,hidden:!/^https?:/.test(d),top:/^https?:/.test(d),type:"link"},{label:e(_,{children:["Accounts with ",e("q",{children:d})]}),to:`/search?q=${encodeURIComponent(d)}&type=accounts`,icon:"group",queryType:"accounts"}].sort((p,l)=>{if(u){if(p.queryType===u)return-1;if(l.queryType===u)return 1}return p.top&&!l.top?-1:!p.top&&l.top?1:0}).filter(({hidden:p})=>!p).map(({label:p,to:l,icon:b,type:m},k)=>e(oe,{to:l,class:`search-popover-item ${k===0?"focus":""}`,onClick:g=>{var y;(y=t==null?void 0:t.onSubmit)==null||y.call(t,g)},children:[e(w,{icon:b||(m==="link"?"arrow-right":"search"),class:"more-insignificant"}),e("span",{children:p})," "]}))})]})}),Fo=Je(function({onClose:n=()=>{}}){const[i,s]=$(!1),o=z(null);_e(["Slash","/"],h=>{s(!0),setTimeout(()=>{var d,r,u,f;(r=(d=o.current)==null?void 0:d.focus)==null||r.call(d),(f=(u=o.current)==null?void 0:u.select)==null||f.call(u)},0)},{preventDefault:!0,ignoreEventWhen:h=>{const d=/\/search/.test(location.hash),r=!!document.querySelector("#modal-container > *");return d||r}});const a=()=>{s(!1),n()};return _e("esc",h=>{var d,r;(r=(d=o.current)==null?void 0:d.blur)==null||r.call(d),a()},{enabled:i,enableOnFormTags:!0,preventDefault:!0}),e("div",{id:"search-command-container",hidden:!i,onClick:h=>{h.target===h.currentTarget&&a()},children:e(Ms,{ref:o,onSubmit:()=>{a()}})})});function Oo(){const{instance:t}=Q(),n=Me(T),{shortcuts:i,settings:s}=n;if(!i.length||s.shortcutsViewMode==="multi-column"||!s.shortcutsViewMode&&s.shortcutsColumnsMode)return null;const o=z(),a=z(!1),h=i.map((f,c)=>{const{type:p,...l}=f;if(!Zt[p])return null;let{id:b,path:m,title:k,subtitle:g,icon:y}=Zt[p];return typeof b=="function"&&(b=b(l,c)),typeof m=="function"&&(m=m({...l,instance:l.instance||t},c)),typeof k=="function"&&(k=k(l,c)),typeof g=="function"&&(g=g(l,c)),typeof y=="function"&&(y=y(l,c)),b==="lists"&&(a.current=!0),{id:b,path:m,title:k,subtitle:g,icon:y}}).filter(Boolean),d=fs();_e(["1","2","3","4","5","6","7","8","9"],(f,c)=>{var l,b;const p=parseInt(c.keys[0],10)-1;if(p{f.preventDefault(),T.showShortcutsSettings=!0},children:e("ul",{children:h.map(({id:f,path:c,title:p,subtitle:l,icon:b},m)=>e("li",{children:e(oe,{class:l?"has-subtitle":"",to:c,onClick:k=>{if(k.target.classList.contains("is-active")){k.preventDefault();const g=document.getElementById(`${f}-page`);if(g){g.scrollTop=0;const y=g.querySelector(".updates-button");y&&y.click()}}},children:[e(w,{icon:b,size:"xl",alt:p}),e("span",{children:[e(qt,{children:p}),l&&e(_,{children:[e("br",{}),e("small",{children:l})]})]})]})},`${m}-${f}-${p}-${l}-${c}`))})}):e(Ze,{instanceRef:o,overflow:"auto",viewScroll:"close",menuClassName:"glass-menu shortcuts-menu",gap:8,position:"anchor",onMenuChange:f=>{f.open&&a.current&&Pt().then(u)},menuButton:e("button",{type:"button",id:"shortcuts-button",class:"plain",onContextMenu:f=>{f.preventDefault(),T.showShortcutsSettings=!0},onTransitionStart:f=>{var c,p;try{const{target:l}=f;getComputedStyle(l).pointerEvents==="none"&&((p=(c=o.current)==null?void 0:c.closeMenu)==null||p.call(c))}catch{}},children:e(w,{icon:"shortcut",size:"xl",alt:"Shortcuts"})}),children:h.map(({id:f,path:c,title:p,subtitle:l,icon:b},m)=>f==="lists"?e(Wt,{menuClassName:"glass-menu",overflow:"auto",gap:-8,label:e(_,{children:[e(w,{icon:b,size:"l"}),e("span",{class:"menu-grow",children:e(qt,{children:p})}),e(w,{icon:"chevron-right"})]}),children:[e(Re,{to:"/l",children:e("span",{children:"All Lists"})}),e(ze,{}),r==null?void 0:r.map(k=>e(Re,{to:`/l/${k.id}`,children:e("span",{children:k.title})},k.id))]}):e(Re,{to:c,class:"glass-menu-item",children:[e(w,{icon:b,size:"l"})," ",e("span",{class:"menu-grow",children:[e("span",{children:e(qt,{children:p})}),l&&e(_,{children:[" ",e("small",{class:"more-insignificant",children:l})]})]}),e("span",{class:"menu-shortcut hide-until-focus-visible",children:m+1})]},`${m}-${f}-${p}-${l}-${c}`))})})}const zo=Je(Oo);function Bo(t){var o;let n=[],i=[],s=0;for(let a=0;a10&&(i.length>t.length/4||s>=3)){const a=i.map(h=>h.id);if(i.length>t.length*3/4)n=[...n,{id:a,items:i,type:"boosts"}];else{const h=Math.floor(n.length/2);n=[...n.slice(0,h),{id:a,items:i,type:"boosts"},...n.slice(h)]}return n}else return t}function Wn(t,n){const i=be.account.get("boostedStatusIDs")||{},s=t.filter(a=>{if(!a.reblog)return!0;const h=`${n}-${a.reblog.id}`,d=i[h];return d&&d!==a.id?!1:(i[h]=a.id,!0)}),o=Object.keys(i);return o.length>50&&o.slice(0,o.length-50).forEach(a=>{delete i[a]}),be.account.set("boostedStatusIDs",i),s}function qo(t,n){const i=[];let s=0;t.forEach(d=>{for(let u=0;uf.id===d.id))return;if(i[u].find(f=>f.id===d.inReplyToId)||i[u].find(f=>f.inReplyToId===d.id)){i[u].push(d);return}}const r=t.find(u=>u.id===d.inReplyToId);r&&(i[s++]=[d,r])});for(let d=0;di[r].includes(f))&&(i[d]=[...i[d],...i[r]],i[d]=i[d].filter((f,c,p)=>p.findIndex(l=>l.id===f.id)===c),i.splice(r,1),r--);i.forEach(d=>{d.sort((r,u)=>!r.inReplyToId&&!u.inReplyToId?new Date(r.createdAt)-new Date(u.createdAt):r.inReplyToId===u.id?1:u.inReplyToId===r.id||!r.inReplyToId?-1:u.inReplyToId?new Date(r.createdAt)-new Date(u.createdAt):1)}),i.forEach(d=>{const r=d[0].account.id;d.forEach(u=>{u.account.id!==r&&(u._differentAuthor=!0)})}),i.length;const o=[],a=[],h=[];return t.forEach(d=>{if(d.reblog){o.push(d);return}for(let r=0;ru.id===d.id)){if(a.includes(r))return;const u=i[r];u.sort((c,p)=>{const l=new Date(c.createdAt),b=new Date(p.createdAt);return l-b});const f=u[0].account.id;o.push({id:u.map(c=>c.id),items:u,type:u.every(c=>c.account.id===f)?"thread":"conversation"}),a.push(r);return}if(d.inReplyToId&&d.inReplyToAccountId!==d.account.id){const r=Ke(d.id,n);T.statusReply[r]||h.push({sKey:r,inReplyToId:d.inReplyToId})}o.push(d)}),h!=null&&h.length&&queueMicrotask(()=>{const{masto:d}=Q({instance:n});async function r(){for(let u=0;usetTimeout(l,1e3))}catch{}}}if(je("@mastodon/fetch-multiple-statuses")){const u=h.map(({inReplyToId:f})=>f);(async()=>{var f;try{const c=await d.v1.statuses.list({id:u});if(c!=null&&c.length)for(const p of c){qe(p,n,{skipThreading:!0,skipUnfurling:!0});const l=(f=h.find(({inReplyToId:b})=>b===p.id))==null?void 0:f.sKey;l&&(T.statusReply[l]={id:p.id,instance:n})}else r()}catch{r()}})()}else r()}),o}const Ho=ht((t,n)=>n.v1.statuses.$select(t).fetch());async function Ps(t,n){const i=await xo();if(!i.length)return;const{statusFollowedTags:s}=T,o=[];if(t.forEach(a=>{var p;if(a.reblog)return;const{id:h,content:d,tags:r=[]}=a,u=Ke(h,n);if((p=s[u])!=null&&p.length)return;const f=$o(d);if(!f.length&&!r.length)return;const c=i.reduce((l,b)=>((f.some(m=>m.toLowerCase()===b.name.toLowerCase())||r.some(m=>m.name.toLowerCase()===b.name.toLowerCase()))&&l.push(b.name),l),[]);c.length&&o.push({item:a,sKey:u,followedTags:c})}),o.length){const a=o.map(d=>d.item.account),h=await bn(a);if(!h)return;o.forEach(d=>{const{item:r,sKey:u,followedTags:f}=d,c=h[r.account.id];c&&!c.following&&(s[u]=f)})}}function Vo(){T.statusFollowedTags={}}function Go({scrollableRef:t,distanceFromStart:n=1,distanceFromEnd:i=1,scrollThresholdStart:s=10,scrollThresholdEnd:o=10,direction:a="vertical",distanceFromStartPx:h,distanceFromEndPx:d}={}){const[r,u]=$(null),[f,c]=$(!1),[p,l]=$(!1),[b,m]=$(!1),[k,g]=$(!1),y=a==="vertical";return lt(()=>{const C=t.current;if(!C)return{};let v=y?C.scrollTop:C.scrollLeft;function I(){const{scrollTop:x,scrollLeft:L,scrollHeight:Y,scrollWidth:j,clientHeight:M,clientWidth:ee}=C,X=y?x:L,A=y?Y:j,P=y?M:ee,E=Math.abs(X-v),U=h||Math.min(P*n,A,X),V=d||Math.min(P*i,A,A-X-P);E>=(v=A),m(X<=U),g(X+P>=A-V)}return C.addEventListener("scroll",I,{passive:!0}),()=>C.removeEventListener("scroll",I)},[n,i,s,o]),{scrollDirection:r,reachStart:f,reachEnd:p,nearReachStart:b,nearReachEnd:k,init:()=>{t.current&&t.current.dispatchEvent(new Event("scroll"))}}}function Yo({scrollableRef:t,distanceFromStart:n=1,distanceFromEnd:i=1,scrollThresholdStart:s=10,scrollThresholdEnd:o=10,direction:a="vertical",distanceFromStartPx:h,distanceFromEndPx:d,init:r}={},u,f){if(!u)return;const c=a==="vertical",p=z(null),l=z(null),b=ii(()=>{let m=!1,k=!1,g=!1,y=!1;const C=t.current,{scrollTop:v,scrollLeft:I,scrollHeight:x,scrollWidth:L,clientHeight:Y,clientWidth:j}=C,M=c?v:I,ee=c?x:L,X=c?Y:j,A=Math.abs(M-p.current),P=h||Math.min(X*n,ee,M),E=d||Math.min(X*i,ee,ee-M-X);A>=(p.current=ee,g=M<=P,y=M+X>=ee-E,u({scrollDirection:l.current,reachStart:m,reachEnd:k,nearReachStart:g,nearReachEnd:y})},500);lt(()=>{const m=t.current;return m?(p.current=m[c?"scrollTop":"scrollLeft"],m.addEventListener("scroll",b,{passive:!0}),()=>m.removeEventListener("scroll",b)):{}},[n,i,s,o,...f]),G(()=>{r&&t.current&&queueMicrotask(()=>{t.current.dispatchEvent(new Event("scroll"))})},[r])}function jo({class:t,statusID:n,status:i,instance:s,parent:o,onMediaClick:a}){let h=Ke(n,s);const d=Me(T);if(i||(i=d.statuses[h]||d.statuses[n],h=Ke(i==null?void 0:i.id,s)),!i)return null;const{account:{acct:r,avatar:u,avatarStatic:f,id:c,url:p,displayName:l,username:b,emojis:m,bot:k,group:g},id:y,repliesCount:C,reblogged:v,reblogsCount:I,favourited:x,favouritesCount:L,bookmarked:Y,poll:j,muted:M,sensitive:ee,spoilerText:X,visibility:A,language:P,editedAt:E,filtered:U,card:V,createdAt:ye,inReplyToId:ve,inReplyToAccountId:fe,content:ne,mentions:me,mediaAttachments:ue,reblog:he,uri:ke,url:Le,emojis:Te,_deleted:Pe,_pinned:Fe}=i;if(!(ue!=null&&ue.length))return null;const xe=W=>{W.shiftKey},J=pe(()=>ct(),[]),ae=pe(()=>J&&J===c,[c,J]),te=oi(Is),Se=!ae&&Mt(U,te);if((Se==null?void 0:Se.action)==="hide")return null;const Ie=ee,re=pe(()=>(be.account.get("preferences")||{})["reading:expand:media"]||"default",[])==="show_all",D=o||"div";return ue.map((W,R)=>{const q=`${h}-${W.id}`,Z=Se==null?void 0:Se.titlesStr;return e(D,{"data-state-post-id":h,onMouseEnter:xe,"data-spoiler-text":X||(ee?"Sensitive media":void 0),"data-filtered-text":Se?`Filtered${Z?`: ${Z}`:""}`:void 0,class:` + media-post + ${Se?"filtered":""} + ${Ie?"has-spoiler":""} + ${re?"show-media":""} + `,children:e(Ss,{class:t,media:W,lang:P,to:`/${s}/s/${y}?media-only=${R+1}`,onClick:a?ce=>a(ce,R,W,i):void 0})},q)})}const Kn=Je(jo);function Wo(t){var I,x,L,Y,j;const n=Me(T),{masto:i,instance:s,authenticated:o}=Q(),[a,h]=pe(()=>{const M=be.local.getJSON("accounts")||[];return[M.find(X=>X.info.id===ct())||M[0],M.length>1]},[]),d=(n.settings.shortcutsViewMode==="multi-column"||!n.settings.shortcutsViewMode&&n.settings.shortcutsColumnsMode)&&!n.shortcuts.find(M=>M.type==="following"),r=ai(()=>{T.showAccounts=!0},{threshold:600,detect:"touch",cancelOnMovement:!0}),u=z(),[f,c]=$(void 0),p=Ci([0,0,n.settings.shortcutsViewMode==="tab-menu-bar"?50:0,0]),l=z();async function b(M){return(M||!l.current)&&(l.current=i.v1.mutes.list({limit:80})),await l.current.next()}const m=z();async function k(M){return(M||!m.current)&&(m.current=i.v1.blocks.list({limit:80})),await m.current.next()}const g=je("@mastodon/lists"),[y,C]=$([]);G(()=>{g&&f==="open"&&Pt().then(C)},[f==="open"]);const v=z();return e(_,{children:[e("button",{ref:u,type:"button",class:`button plain nav-menu-button ${h?"with-avatar":""} ${f==="open"?"active":""}`,style:{position:"relative"},onClick:()=>{v.current=Date.now(),c(M=>M?void 0:"open")},onContextMenu:M=>{M.preventDefault(),T.showAccounts=!0},...r(),children:[h&&e(st,{url:((I=a==null?void 0:a.info)==null?void 0:I.avatar)||((x=a==null?void 0:a.info)==null?void 0:x.avatarStatic),size:"l",squircle:(L=a==null?void 0:a.info)==null?void 0:L.bot}),e(w,{icon:"menu",size:h?"s":"l"})]}),e(ms,{menuClassName:"nav-menu",state:f,anchorRef:u,onClose:()=>{c(void 0)},containerProps:{style:{zIndex:10},onClick:()=>{Date.now()-v.current<300}},portal:{target:document.body},...t,overflow:"auto",viewScroll:"close",position:"anchor",align:"center",boundingBoxPadding:p,unmountOnClose:!0,children:[!!((Y=n.appVersion)!=null&&Y.commitHash)&&n.appVersion.commitHash!=="0a6030c"&&e("div",{class:"top-menu",children:[e(de,{onClick:()=>{confirm("Reload page now to update?")&&(async()=>{try{location.reload()}catch{}})()},children:[e(w,{icon:"sparkles",class:"sparkle-icon",size:"l"})," ",e("span",{children:"New update available…"})]}),e(ze,{})]}),e("section",{children:[e(Re,{to:"/",children:[e(w,{icon:"home",size:"l"})," ",e("span",{children:"Home"})]}),o?e(_,{children:[d&&e(Re,{to:"/following",children:[e(w,{icon:"following",size:"l"})," ",e("span",{children:"Following"})]}),e(Re,{to:"/catchup",children:[e(w,{icon:"history2",size:"l"}),e("span",{children:"Catch-up"})]}),je("@mastodon/mentions")&&e(Re,{to:"/mentions",children:[e(w,{icon:"at",size:"l"})," ",e("span",{children:"Mentions"})]}),e(Re,{to:"/notifications",children:[e(w,{icon:"notification",size:"l"})," ",e("span",{children:"Notifications"}),n.notificationsShowNew&&e("sup",{title:"New",style:{opacity:.5},children:[" ","•"]})]}),e(ze,{}),((j=a==null?void 0:a.info)==null?void 0:j.id)&&e(Re,{to:`/${s}/a/${a.info.id}`,children:[e(w,{icon:"user",size:"l"})," ",e("span",{children:"Profile"})]}),(y==null?void 0:y.length)>0?e(Wt,{menuClassName:"nav-submenu",overflow:"auto",gap:-8,label:e(_,{children:[e(w,{icon:"list",size:"l"}),e("span",{class:"menu-grow",children:"Lists"}),e(w,{icon:"chevron-right"})]}),children:[e(Re,{to:"/l",children:e("span",{children:"All Lists"})}),(y==null?void 0:y.length)>0&&e(_,{children:[e(ze,{}),y.map(M=>e(Re,{to:`/l/${M.id}`,children:e("span",{children:M.title})},M.id))]})]}):g&&e(Re,{to:"/l",children:[e(w,{icon:"list",size:"l"}),e("span",{children:"Lists"})]}),e(Re,{to:"/b",children:[e(w,{icon:"bookmark",size:"l"})," ",e("span",{children:"Bookmarks"})]}),e(Wt,{menuClassName:"nav-submenu",overflow:"auto",gap:-8,label:e(_,{children:[e(w,{icon:"more",size:"l"}),e("span",{class:"menu-grow",children:"More…"}),e(w,{icon:"chevron-right"})]}),children:[e(Re,{to:"/f",children:[e(w,{icon:"heart",size:"l"})," ",e("span",{children:"Likes"})]}),e(Re,{to:"/fh",children:[e(w,{icon:"hashtag",size:"l"})," ",e("span",{children:"Followed Hashtags"})]}),e(ze,{}),je("@mastodon/filters")&&e(Re,{to:"/ft",children:[e(w,{icon:"filters",size:"l"}),"Filters"]}),e(de,{onClick:()=>{T.showGenericAccounts={id:"mute",heading:"Muted users",fetchAccounts:b,excludeRelationshipAttrs:["muting"]}},children:[e(w,{icon:"mute",size:"l"})," Muted users…"]}),e(de,{onClick:()=>{T.showGenericAccounts={id:"block",heading:"Blocked users",fetchAccounts:k,excludeRelationshipAttrs:["blocking"]}},children:[e(w,{icon:"block",size:"l"}),"Blocked users…"]})," "]}),e(ze,{}),e(de,{onClick:()=>{T.showAccounts=!0},children:[e(w,{icon:"group",size:"l"})," ",e("span",{children:"Accounts…"})]})]}):e(_,{children:[e(ze,{}),e(Re,{to:"/login",children:[e(w,{icon:"user",size:"l"})," ",e("span",{children:"Log in"})]})]})]}),e("section",{children:[e(ze,{}),e(Re,{to:"/search",children:[e(w,{icon:"search",size:"l"})," ",e("span",{children:"Search"})]}),e(Re,{to:`/${s}/trending`,children:[e(w,{icon:"chart",size:"l"})," ",e("span",{children:"Trending"})]}),e(Re,{to:`/${s}/p/l`,children:[e(w,{icon:"building",size:"l"})," ",e("span",{children:"Local"})]}),e(Re,{to:`/${s}/p`,children:[e(w,{icon:"earth",size:"l"})," ",e("span",{children:"Federated"})]}),o?e(_,{children:[e(ze,{className:"divider-grow"}),e(de,{onClick:()=>{T.showKeyboardShortcutsHelp=!0},children:[e(w,{icon:"keyboard",size:"l"})," ",e("span",{children:"Keyboard shortcuts"})]}),e(de,{onClick:()=>{T.showShortcutsSettings=!0},children:[e(w,{icon:"shortcut",size:"l"})," ",e("span",{children:"Shortcuts / Columns…"})]}),e(de,{onClick:()=>{T.showSettings=!0},children:[e(w,{icon:"gear",size:"l"})," ",e("span",{children:"Settings…"})]})]}):e(_,{children:[e(ze,{}),e(de,{onClick:()=>{T.showSettings=!0},children:[e(w,{icon:"gear",size:"l"})," ",e("span",{children:"Settings…"})]})]})]})]})]})}const yt=Je(Wo),Ut={block:"nearest",inline:"center",behavior:"smooth"};function dt({title:t,titleComponent:n,id:i,instance:s,emptyText:o,errorText:a,useItemID:h,boostsCarousel:d,fetchItems:r=()=>{},checkForUpdates:u=()=>{},checkForUpdatesInterval:f=15e3,headerStart:c,headerEnd:p,timelineStart:l,refresh:b,view:m,filterContext:k,showFollowedTags:g,showReplyParent:y}){const C=Me(T),[v,I]=$([]),[x,L]=$("start"),[Y,j]=$(!1),[M,ee]=$(!1),[X,A]=$(!0),P=z(),E=pe(()=>hn(),[]),U=m!=="media",V=ci(J=>{ee(!1),x!=="loading"&&(L("loading"),(async()=>{try{let{done:ae,value:te}=await r(J);if(Array.isArray(te)){const[Se,Ie]=te.reduce((F,re)=>(re._pinned?F[0].push(re):F[1].push(re),F),[[],[]]);te=Ie,U&&(d&&(te=Bo(te)),te=qo(te,s)),Se.length&&(te=Se.concat(te)),I(J?te:F=>[...F,...te]),te.length||(ae=!0),j(!ae)}else j(!1);L("default")}catch{L("error")}finally{V.cancel()}})())},1500,{leading:!0,trailing:!1}),ye=".timeline-item, .timeline-item-alt",ve=_e("j, shift+j",(J,ae)=>{const te=document.activeElement.closest(ye),Se=te==null?void 0:te.getBoundingClientRect(),Ie=Array.from(P.current.querySelectorAll(ye));if(te&&Se.top0){const F=Ie.indexOf(te);let re=Ie[F+1];ae.shift&&(re=Ie.find((D,W)=>W>F&&!D.classList.contains("timeline-item-alt"))),re&&(re.focus(),re.scrollIntoView(Ut))}else{const F=Ie.find(re=>{const D=re.getBoundingClientRect();return D.top>=44&&D.left>=0});F&&(F.focus(),F.scrollIntoView(Ut))}}),fe=_e("k, shift+k",(J,ae)=>{const te=document.activeElement.closest(ye),Se=te==null?void 0:te.getBoundingClientRect(),Ie=Array.from(P.current.querySelectorAll(ye));if(te&&Se.top0){const F=Ie.indexOf(te);let re=Ie[F-1];ae.shift&&(re=Ie.findLast((D,W)=>W{const D=re.getBoundingClientRect();return D.top>=44&&D.left>=0});F&&(F.focus(),F.scrollIntoView(Ut))}}),ne=_e(["enter","o"],()=>{const J=document.activeElement;J!=null&&J.matches(ye)&&J.click()}),me=v.length>0&&x!=="loading"&&M,ue=Qe(()=>{var J;me&&V(!0),(J=P.current)==null||J.scrollTo({top:0,behavior:"smooth"})},[V,me]),he=_e(".",ue),ke=z(),[Le,Te]=$(!1);Yo({scrollableRef:P,distanceFromEnd:2,scrollThresholdStart:44},({scrollDirection:J,nearReachStart:ae,reachStart:te})=>{if(ke.current){const Se=J==="end"&&!ae;ke.current.hidden=Se}Te(ae),te&&V(!0)},[]),G(()=>{var J;(J=P.current)==null||J.scrollTo({top:0}),V(!0)},[]),G(()=>{V(!0)},[b]);const Pe=z(m);G(()=>{Pe.current!==m&&(Pe.current=m,I([]))},[m]);const Fe=Qe(async({disableIdleCheck:J=!1}={})=>{const ae=P.current?getComputedStyle(P.current).pointerEvents==="none":!1;C.settings.autoRefresh&&P.current.scrollTop<16&&(J||window.__IDLE__)&&!Xo()&&!ae?V(!0):await u()&&ee(!0)},[i,V,u,C.settings.autoRefresh]),xe=z();return Ct(J=>{if(J){const ae=Date.now()-xe.current;(!xe.current||ae>1e3*3)&&Fe({disableIdleCheck:!0})}else xe.current=Date.now();A(J)},[u,Fe,C.settings.autoRefresh]),gn(Fe,X&&!M?f*(Le?1:2):null),e(Is.Provider,{value:k,children:e("div",{id:`${i}-page`,class:`deck-container ${E?"deck-container-media-first":""}`,ref:J=>{P.current=J,ve.current=J,fe.current=J,ne.current=J,he.current=J},tabIndex:"-1",children:e("div",{class:"timeline-deck deck",children:[e("header",{ref:ke,onClick:J=>{var ae;J.target.closest("a, button")||(ae=P.current)==null||ae.scrollTo({top:0,behavior:"smooth"})},onDblClick:J=>{J.target.closest("a, button")||V(!0)},class:x==="loading"?"loading":"",children:[e("div",{class:"header-grid",children:[e("div",{class:"header-side",children:[e(yt,{}),c??e(oe,{to:"/",class:"button plain home-button",children:e(w,{icon:"home",size:"l"})})]}),t&&(n||e("h1",{children:t})),e("div",{class:"header-side",children:!!p&&p})]}),me&&e("button",{class:"updates-button shiny-pill",type:"button",onClick:ue,children:[e(w,{icon:"arrow-up"})," New posts"]})]}),!!l&&e("div",{class:`timeline-start ${x==="loading"?"loading":""}`,children:l}),v.length?e(_,{children:[e("ul",{class:`timeline ${m?`timeline-${m}`:""}`,children:[v.map(J=>e(Ko,{status:J,instance:s,useItemID:h,filterContext:k,view:m,showFollowedTags:g,showReplyParent:y,mediaFirst:E},J.id+(J==null?void 0:J._pinned)+m)),Y&&x==="loading"&&(m==="media"?null:e(_,{children:[e("li",{style:{height:"20vh"},children:e(Be,{skeleton:!0,mediaFirst:E})}),e("li",{style:{height:"25vh"},children:e(Be,{skeleton:!0,mediaFirst:E})})]}))]}),x==="default"&&(Y?e(rt,{root:P.current,rootMargin:`0px 0px ${screen.height*1.5}px 0px`,onChange:J=>{J&&V()},children:e("button",{type:"button",class:"plain block",onClick:()=>V(),style:{marginBlockEnd:"6em"},children:"Show more…"})}):e("p",{class:"ui-state insignificant",children:"The end."}))]}):x==="loading"?e("ul",{class:"timeline",children:Array.from({length:5}).map((J,ae)=>m==="media"?e("div",{style:{height:"50vh"}}):e("li",{children:e(Be,{skeleton:!0,mediaFirst:E})},ae))}):x!=="error"&&x!=="start"&&e("p",{class:"ui-state",children:o}),x==="error"&&e("p",{class:"ui-state",children:[a,e("br",{}),e("br",{}),e("button",{type:"button",onClick:()=>V(!v.length),children:"Try again"})]})]})})})}const Ko=Je(({status:t,instance:n,useItemID:i,filterContext:s,view:o,showFollowedTags:a,showReplyParent:h,mediaFirst:d})=>{const{id:r,reblog:u,items:f,type:c,_pinned:p}=t;p&&(i=!1);const l=(u==null?void 0:u.id)||r,b=n?`/${n}/s/${l}`:`/s/${l}`;if(f){const k=$t(f,s);let g="";if(c==="boosts"?g=`${k.length} Boosts`:c==="pinned"&&(g="Pinned posts"),c==="boosts"||c==="pinned")return k.sort((v,I)=>{const x=Mt(v.filtered,s),L=Mt(I.filtered,s);return x&&!L?1:!x&&L?-1:0}),e("li",{class:"timeline-item-carousel",children:e(Zo,{title:g,class:`${c}-carousel`,children:k.map(v=>{const{id:I,reblog:x,_pinned:L}=v,Y=(x==null?void 0:x.id)||I,j=n?`/${n}/s/${Y}`:`/s/${Y}`;return L&&(i=!1),e("li",{children:e(oe,{class:"status-carousel-link timeline-item-alt",to:j,children:i?e(Be,{statusID:I,instance:n,size:"s",contentTextWeight:!0,enableCommentHint:!0,mediaFirst:d}):e(Be,{status:v,instance:n,size:"s",contentTextWeight:!0,enableCommentHint:!0,mediaFirst:d})})},I)})})},`timeline-${r}`);const C=k.length>3;return k.map((v,I)=>{const{id:x,_differentAuthor:L}=v,Y=n?`/${n}/s/${x}`:`/s/${x}`,j=I>0&&I0||C&&j&&(c==="thread"||c==="conversation"&&!L&&!k[I-1]._differentAuthor&&!k[I+1]._differentAuthor),X=I===0,A=I===k.length-1;return e("li",{class:`timeline-item-container timeline-item-container-type-${c} timeline-item-container-${X?"start":A?"end":"middle"} ${L?"timeline-item-diff-author":""}`,children:e(oe,{class:"status-link timeline-item",to:Y,children:ee?e(Jo,{status:v,instance:n,filterContext:s}):i?e(Be,{statusID:x,instance:n,enableCommentHint:A,showFollowedTags:a}):e(Be,{status:v,instance:n,enableCommentHint:A,showFollowedTags:a})})},`timeline-${x}`)})}const m=`timeline-${r+p}`;return o==="media"?i?e(Kn,{class:"timeline-item",parent:"li",statusID:r,instance:n},m):e(Kn,{class:"timeline-item",parent:"li",status:t,instance:n},m):e("li",{children:e(oe,{class:"status-link timeline-item",to:b,children:i?e(Be,{statusID:r,instance:n,enableCommentHint:!0,showFollowedTags:a,showReplyParent:h,mediaFirst:d}):e(Be,{status:t,instance:n,enableCommentHint:!0,showFollowedTags:a,showReplyParent:h,mediaFirst:d})})},m)},(t,n)=>{var o,a;const i=(((o=t.status)==null?void 0:o.id)||"").toString(),s=(((a=n.status)==null?void 0:a.id)||"").toString();return i===s&&t.instance===n.instance&&t.view===n.view});function Zo({title:t,class:n,children:i}){const s=z(),o=z(),a=z(),[h,d]=$(!1);return G(()=>{setTimeout(()=>{d(!0)},1)},[]),e("div",{class:`status-carousel ${n}`,children:[e("header",{children:[e("h3",{children:t}),e("span",{children:[e("button",{ref:o,type:"button",class:"small plain2",onClick:()=>{var r,u;(u=s.current)==null||u.scrollBy({left:-Math.min(320,(r=s.current)==null?void 0:r.offsetWidth),behavior:"smooth"})},children:e(w,{icon:"chevron-left"})})," ",e("button",{ref:a,type:"button",class:"small plain2",onClick:()=>{var r,u;(u=s.current)==null||u.scrollBy({left:Math.min(320,(r=s.current)==null?void 0:r.offsetWidth),behavior:"smooth"})},children:e(w,{icon:"chevron-right"})})]})]}),e("ul",{ref:s,children:[e(rt,{class:"status-carousel-beacon",onChange:r=>{o.current&&(o.current.disabled=r)}}),i[0],h&&i.slice(1),e(rt,{class:"status-carousel-beacon",onChange:r=>{a.current&&(a.current.disabled=r)}})]})]})}function Jo({status:t,instance:n,filterContext:i}){const s=Me(T),{id:o,visibility:a,language:h}=t,d=yn(t),r=Ke(o,n),u=Mt(t.filtered,i);return e("article",{class:`status compact-thread ${a==="direct"?"visibility-direct":""}`,tabindex:"-1",children:[s.statusThreadNumber[r]?e("div",{class:"status-thread-badge",children:[e(w,{icon:"thread",size:"s"}),s.statusThreadNumber[r]?` ${s.statusThreadNumber[r]}/X`:""]}):e("div",{class:"status-thread-badge",children:e(w,{icon:"thread",size:"s"})}),e("div",{class:"content-compact",title:d,lang:h,dir:"auto",children:u?e("b",{class:"status-filtered-badge badge-meta horizontal",title:(u==null?void 0:u.titlesStr)||"",children:[e("span",{children:"Filtered"}),": ",e("span",{children:(u==null?void 0:u.titlesStr)||""})]}):e(_,{children:[d,t.sensitive&&t.spoilerText&&e(_,{children:[" ",e("span",{class:"spoiler-badge",children:e(w,{icon:"eye-close",size:"s"})})]})]})})]})}function Xo(){return!!document.querySelector(".deck-backdrop, #modal-container > *")}const kt=20,Cn=1983,Zn=`${Cn}-01`,Qo=(()=>{try{const t=document.createElement("input");return t.setAttribute("type","month"),t.type==="month"}catch{return!1}})();async function ea(t){var s;const{masto:n}=Q({instance:t}),i=await n.v2.search.fetch({q:"from:me",type:"statuses",limit:1});return!!((s=i==null?void 0:i.statuses)!=null&&s.length)}const ta=ht(ea);function na(){const t=Me(T),{id:n,...i}=gt(),[s,o]=it(),a=s.get("month"),h=!s.get("replies"),d=!!s.get("boosts"),r=s.get("tagged"),u=!!s.get("media"),{masto:f,instance:c,authenticated:p}=Q({instance:i.instance}),{masto:l,instance:b}=Q(),m=z(),k=[a,h,d,r,u],[g,y]=$(),C=z(0);G(()=>{C.current=0},k);const v=pe(()=>hn(),[]),I=pe(()=>c===b,[c,b]),[x,L]=$(!1);G(()=>{I&&g!=null&&g.acct&&(async()=>{const ne=await ta(c);L(ne)})()},[c,I,g==null?void 0:g.acct]);async function Y(ne){var Te,Pe,Fe,xe;const me=/^\d{4}-[01]\d$/.test(a),ue=((Pe=(Te=a==null?void 0:a.split)==null?void 0:Te.call(a,"-"))==null?void 0:Pe[0])>=Cn;if(me&&ue){if(!g)return{value:[],done:!0};const[J,ae]=a.split("-"),te=parseInt(ae,10)-1,Se=new Date(J,te,0),Ie=`${Se.getFullYear()}-${(Se.getMonth()+1).toString().padStart(2,"0")}-${Se.getDate().toString().padStart(2,"0")}`,F=new Date(J,te+1,1),re=`${F.getFullYear()}-${(F.getMonth()+1).toString().padStart(2,"0")}-${F.getDate().toString().padStart(2,"0")}`;let D;ne?(D=kt+1,C.current=0):(D=kt+C.current+1,C.current+=kt);const W=await f.v2.search.fetch({q:`from:${g.acct} after:${Ie} before:${re}`,type:"statuses",limit:D,offset:C.current});if((Fe=W==null?void 0:W.statuses)!=null&&Fe.length){const R=W.statuses.slice(0,kt);R.forEach(Z=>{qe(Z,c)});const q=W.statuses.length<=kt;return{value:R,done:q}}else return{value:[],done:!0}}let he=[];if(ne){const{value:J}=await f.v1.accounts.$select(n).statuses.list({pinned:!0}).next();if(J!=null&&J.length&&!r&&!u){const ae=J.map(te=>(qe(te,c),{...te,_pinned:!0}));if(ae.length>=3){const te=ae.map(Se=>Se.id);he.push({id:te,items:ae,type:"pinned"})}else he.push(...ae)}}(ne||!m.current)&&(m.current=f.v1.accounts.$select(n).statuses.list({limit:kt,exclude_replies:h,exclude_reblogs:d,only_media:u||void 0,tagged:r}));const{value:ke,done:Le}=await m.current.next();if(ke!=null&&ke.length){if(he.length){let J=[];((xe=he[0])==null?void 0:xe.type)==="pinned"?J=he[0].id:J=he.filter(te=>te._pinned).map(te=>te.id),J.every(te=>ke.some(Se=>Se.id===te))&&(he=[])}he.push(...ke),ke.forEach(J=>{qe(J,c)})}return{value:he,done:Le}}const[j,M]=$([]);He(g!=null&&g.acct?`${g!=null&&g.displayName?`${g.displayName} (${/@/.test(g.acct)?"":"@"}${g.acct})`:`${/@/.test(g.acct)?"":"@"}${g.acct}`}${h?d?" (- Boosts)":r?` (#${r})`:u?" (Media)":a?` (${new Date(a).toLocaleString("default",{month:"long",year:"numeric"})})`:"":" (+ Replies)"}`:"Account posts","/:instance?/a/:id");const ee=z(),X=Qe(()=>{const ne=ee.current||f.v1.accounts.$select(n).fetch();return ee.current=ne,ne},[n,f]);G(()=>{(async()=>{try{const ne=await X();y(ne)}catch{}if(!v)try{const ne=await f.v1.accounts.$select(n).featuredTags.list();M(ne)}catch{}})()},[n,v]);const{displayName:A,acct:P,emojis:E}=g||{},U=z(),V=pe(()=>{const ne=!h||d||r||u||!!a,me=t.accounts[`${n}@${c}`];return e(_,{children:[e(_s,{instance:c,account:me||n,fetchAccount:X,authenticated:p,standalone:!0}),!v&&e("div",{class:"filter-bar",ref:U,style:{position:"relative"},children:[ne?e(oe,{to:`/${c}/a/${n}`,class:"insignificant filter-clear",title:"Clear filters",children:e(w,{icon:"x",size:"l"})},"clear-filters"):e(w,{icon:"filter",class:"insignificant",size:"l"}),e(oe,{to:`/${c}/a/${n}${h?"?replies=1":""}`,onClick:()=>{h&&se("Showing post with replies")},class:h?"":"is-active",children:"+ Replies"}),e(oe,{to:`/${c}/a/${n}${d?"":"?boosts=0"}`,onClick:()=>{d||se("Showing posts without boosts")},class:d?"is-active":"",children:"- Boosts"}),e(oe,{to:`/${c}/a/${n}${u?"":"?media=1"}`,onClick:()=>{u||se("Showing posts with media")},class:u?"is-active":"",children:"Media"}),j.map(ue=>e(oe,{to:`/${c}/a/${n}${r===ue.name?"":`?tagged=${encodeURIComponent(ue.name)}`}`,onClick:()=>{r!==ue.name&&se(`Showing posts tagged with #${ue.name}`)},class:r===ue.name?"is-active":"",children:e("span",{children:[e("span",{class:"more-insignificant",children:"#"}),ue.name]})},ue.id)),x&&(Qo?e("label",{class:`filter-field ${a?"is-active":""}`,children:[e(w,{icon:"month",size:"l"}),e("input",{type:"month",disabled:!(g!=null&&g.acct),value:a||"",min:Zn,max:new Date().toISOString().slice(0,7),onInput:ue=>{const{value:he,validity:ke}=ue.currentTarget;if(!ke.valid)return;o(he?{month:he}:{});const[Le,Te]=he.split("-"),Pe=parseInt(Te,10)-1,Fe=new Date(Le,Pe);se(`Showing posts in ${Fe.toLocaleString("default",{month:"long",year:"numeric"})}`)}})]}):e(sa,{class:`filter-field ${a?"is-active":""}`,disabled:!(g!=null&&g.acct),value:a||"",min:Zn,max:new Date().toISOString().slice(0,7),onInput:ue=>{const{value:he,validity:ke}=ue;ke.valid&&o(he?{month:he}:{})}}))]})]})},[n,c,p,j,X,x,...k]);G(()=>{var me;const ne=(me=U.current)==null?void 0:me.querySelector(".is-active");ne&&U.current.scrollTo({behavior:"smooth",left:ne.offsetLeft-(U.current.offsetWidth-ne.offsetWidth)/2})},[j,x,...k]);const ye=pe(()=>g!=null&&g.url?new URL(g.url).hostname:null,[g]),fe=!!g&&!(c===ye);return e(dt,{title:`${g!=null&&g.acct?"@"+g.acct:"Posts"}`,titleComponent:e("h1",{class:"header-double-lines header-account",children:[e("b",{children:e(vs,{text:A,emojis:E})}),e("div",{children:e("span",{children:["@",P]})})]}),id:"account-statuses",instance:c,emptyText:"Nothing to see here yet.",errorText:"Unable to load posts",fetchItems:Y,useItemID:!0,view:u||v?"media":void 0,boostsCarousel:t.settings.boostsCarousel,timelineStart:V,refresh:[h,d,r,u,a+(g==null?void 0:g.acct)].toString(),headerEnd:e(Ze,{portal:!0,overflow:"auto",viewScroll:"close",position:"anchor",menuButton:e("button",{type:"button",class:"plain",children:e(w,{icon:"more",size:"l"})}),children:[e(de,{disabled:!fe,onClick:()=>{(async()=>{try{const{masto:ne}=Q({instance:ye}),me=await ne.v1.accounts.lookup({acct:g.acct}),{id:ue}=me;location.hash=`/${ye}/a/${ue}`}catch{alert("Unable to fetch account info")}})()},children:[e(w,{icon:"transfer"})," ",e("small",{class:"menu-double-lines",children:["Switch to account's instance"," ",ye?e(_,{children:[" ","(",e("b",{children:xt.toUnicode(ye)}),")"]}):null]})]}),!I&&e(de,{onClick:()=>{(async()=>{try{const ne=await l.v1.accounts.lookup({acct:g.acct+"@"+c}),{id:me}=ne;location.hash=`/${b}/a/${me}`}catch{alert("Unable to fetch account info")}})()},children:[e(w,{icon:"transfer"})," ",e("small",{class:"menu-double-lines",children:["Switch to my instance (",e("b",{children:b}),")"]})]})]})},n)}function sa(t){const{class:n,disabled:i,value:s,min:o,max:a,onInput:h=()=>{}}=t,[d,r]=(s==null?void 0:s.split("-"))||[],u=z(),f=z(),c=(p,l)=>{const[b,m]=(o==null?void 0:o.split("-"))||[],[k,g]=(a==null?void 0:a.split("-"))||[];return!(lk||l===b&&pg)};return e("div",{class:n,children:[e(w,{icon:"month",size:"l"}),e("select",{ref:u,disabled:i,value:r||"",onInput:p=>{const{value:l}=p.currentTarget,b=f.current.value;if(!c(l,b))return{value:"",validity:{valid:!1}};h({value:l?`${b}-${l}`:"",validity:{valid:!0}})},children:[e("option",{value:"",children:"Month"}),e("option",{disabled:!0,children:"-----"}),Array.from({length:12},(p,l)=>e("option",{value:(l+1).toString().padStart(2,"0"),children:new Date(0,l).toLocaleString("default",{month:"long"})},l))]})," ",e("input",{ref:f,type:"number",disabled:i,value:d||new Date().getFullYear(),min:(o==null?void 0:o.slice(0,4))||Cn,max:(a==null?void 0:a.slice(0,4))||new Date().getFullYear(),onInput:p=>{const{value:l,validity:b}=p.currentTarget,m=u.current.value;if(!b.valid||!c(m,l))return{value:"",validity:{valid:!1}};h({value:l?`${l}-${m}`:"",validity:{valid:!0}})},style:{width:"4.5em"}})]})}const ia=20;function Ds(){He("Bookmarks","/b");const{masto:t,instance:n}=Q(),i=z();async function s(o){return(o||!i.current)&&(i.current=t.v1.bookmarks.list({limit:ia})),await i.current.next()}return e(dt,{title:"Bookmarks",id:"bookmarks",emptyText:"No bookmarks yet. Go bookmark something!",errorText:"Unable to load bookmarks",instance:n,fetchItems:s})}const oa=""+new URL("catch-up-DuauQu-W.png",import.meta.url).href,aa="home",We=[{label:"last 1 hour",value:1},{label:"last 2 hours",value:2},{label:"last 3 hours",value:3},{label:"last 4 hours",value:4},{label:"last 5 hours",value:5},{label:"last 6 hours",value:6},{label:"last 7 hours",value:7},{label:"last 8 hours",value:8},{label:"last 9 hours",value:9},{label:"last 10 hours",value:10},{label:"last 11 hours",value:11},{label:"last 12 hours",value:12},{label:"beyond 12 hours",value:13}],ca=["Original","Replies","Boosts","Followed tags","Groups","Filtered"],ra=["createdAt","repliesCount","favouritesCount","reblogsCount","density"],la=[null,"account"],Jn={Filtered:"filtered",Groups:"group",Boosts:"boost",Replies:"reply","Followed tags":"followedTags",Original:"original"},da={Filtered:"filtered posts",Groups:"group posts",Boosts:"boosts",Replies:"replies","Followed tags":"followed-tag posts",Original:"original posts"},ua={createdAt:["oldest","latest"],repliesCount:["fewest replies","most replies"],favouritesCount:["fewest likes","most likes"],reblogsCount:["fewest boosts","most boosts"],density:["least dense","most dense"]};function ha(){He("Catch-up","/catchup");const{masto:t,instance:n}=Q(),[i,s]=it(),o=i.get("id"),[a,h]=$("start"),[d,r]=$(!1),u=pe(()=>ct(),[]),f=S=>S===u,c=je("@pixelfed/home-include-reblogs");async function p({maxCreatedAt:S}){var K,ge,le;const N=S?new Date(S):null,B=[],O=t.v1.timelines.home.list({limit:40});e:for(;;)try{c&&O.nextParams&&(typeof O.nextParams=="string"?O.nextParams+="&include_reblogs=true":O.nextParams.include_reblogs=!0);const ie=await O.next(),{value:Ce}=ie;if(Ce!=null&&Ce.length){await Ps(Ce,n);let Ne=!1;for(let Oe=0;Oe=N){const we=!f(((ge=(K=Ee.reblog)==null?void 0:K.account)==null?void 0:ge.id)||Ee.account.id)&&Mt(((le=Ee.reblog)==null?void 0:le.filtered)||Ee.filtered,aa);if((we==null?void 0:we.action)==="hide")continue;Ee._filtered=we;const tt=Ke(Ee.id,n);Ee._followedTags=T.statusFollowedTags[tt]?[...T.statusFollowedTags[tt]]:[],B.push(Ee),Ne=!0}if(!Ne)break e}}else break e;await new Promise(Ne=>setTimeout(Ne,1e3))}catch{break e}return B.forEach(ie=>{if(ie!=null&&ie.inReplyToId){const Ce=B.find(Ne=>Ne.id===ie.inReplyToId);Ce&&!Ce.inReplyToId&&(Ce._thread=!0)}}),B}const[l,b]=$([]),m=z(),k=z(),g=pe(()=>jt(),[]),y=Qe(async({duration:S}={})=>{const N=Date.now(),B=S?N-S:null;h("loading");const O=await p({maxCreatedAt:B}),K=`${g}-${ri()}`;try{await nt.catchup.set(K,{id:K,posts:O,count:O.length,startAt:B,endAt:N}),s({id:K})}catch{}},[]);G(()=>{o?(async()=>{const S=await nt.catchup.get(o);S&&(S.posts.sort((N,B)=>N.createdAt>B.createdAt?1:-1),b(S.posts),h("results"))})():a==="results"&&(b([]),h("start"))},[o]);const[C,v]=mt(S=>S+1,0),[I,x]=$(null),[L,Y]=$([]);G(()=>{(async()=>{try{const S=await nt.catchup.keys();if(S.length){const N=jt(),B=S.filter(O=>O.startsWith(`${N}-`));if(B.length){let O=await nt.catchup.getMany(B);O.sort((ie,Ce)=>Ce.endAt-ie.endAt);let K=O.slice(0,3),ge=O.slice(3);const le=K.map(ie=>{const{id:Ce,count:Ne,startAt:Oe,endAt:Ee}=ie;return{id:Ce,count:Ne,startAt:Oe,endAt:Ee}});Y(le),x(K[0].endAt),O=null,K=null,queueMicrotask(()=>{ge.length&&nt.catchup.delMany(ge.map(ie=>ie.id)).then(()=>{ge=null}).catch(ie=>{})});return}}}catch{}Y([])})()},[C]),G(()=>{a==="start"&&v()},[a==="start"]);const[j,M]=pe(()=>{var Ce,Ne,Oe,Ee,Ve;let S=0,N=0,B=0,O=0,K=0,ge=0;const le={};for(const H of l){H._filtered?(S++,H.__FILTER="filtered"):H.group?(N++,H.__FILTER="group"):H.reblog?(B++,H.__FILTER="boost"):(Ce=H._followedTags)!=null&&Ce.length?(K++,H.__FILTER="followedTags"):H.inReplyToId&&H.inReplyToAccountId!==((Ne=H.account)==null?void 0:Ne.id)?(O++,H.__FILTER="reply"):(ge++,H.__FILTER="original");const we=H.reblog||H;if(H.__FILTER!=="filtered"&&((Oe=we.card)!=null&&Oe.url)&&((Ee=we.card)!=null&&Ee.image)&&((Ve=we.card)==null?void 0:Ve.type)==="link"){const{card:tt,favouritesCount:Dt,reblogsCount:pt}=we;let{url:Ye}=tt;if(Ye=Ye.replace(/\/$/,""),!le[Ye])le[Ye]={postID:we.id,card:tt,shared:1,sharers:[H.account],likes:Dt,boosts:pt};else{if(le[Ye].sharers.find(wt=>wt.id===H.account.id))continue;le[Ye].shared++,le[Ye].sharers.push(H.account),le[Ye].postID!==we.id&&(le[Ye].likes+=Dt,le[Ye].boosts+=pt)}}}let ie=[];for(const H in le)ie.push({url:H,...le[H]});if(ie.sort((H,we)=>H.shared>we.shared?-1:H.sharedwe.boosts?-1:H.boostswe.likes?-1:H.likes10)e:for(let H=10;H{const S={},N=new Map;let B=l.filter(K=>{const ge=ee==="All"||K.__FILTER===Jn[ee];return ge&&(S[K.account.id]=K.account,N.set(K.account.id,(N.get(K.account.id)||0)+1)),ge});const O={};return B.forEach(K=>{K.reblog&&(O[K.reblog.id]?(O[K.reblog.id].__BOOSTERS?O[K.reblog.id].__BOOSTERS.add(K.account):O[K.reblog.id].__BOOSTERS=new Set([K.account]),K.__HIDDEN=!0):O[K.reblog.id]=K)}),A&&N.has(A)&&(B=B.filter(K=>K.account.id===A||[...K.__BOOSTERS||[]].find(ge=>ge.id===A))),[B,S,Object.fromEntries(N)]},[ee,A,l]),Le=pe(()=>{const S={};return ue.forEach(N=>{S[N.id]=N}),S},[ue]),Te=pe(()=>Object.keys(ke).sort((S,N)=>ke[N]-ke[S]),[ke]),Pe=pe(()=>{const S={};return Te.forEach((N,B)=>{S[N]=B}),ue.filter(N=>!N.__HIDDEN).sort((N,B)=>{if(ne==="account"){const O=N.account.id,K=B.account.id,ge=S[O],le=S[K],ie=ge-le;if(ie!==0)return ie}if(V!=="createdAt"&&(N=N.reblog||N,B=B.reblog||B,V!=="density"&&N[V]===B[V]))return N.createdAt>B.createdAt?1:-1;if(V==="density"){const O=Xn(N),K=Xn(B);return ve==="asc"?O>K?1:-1:K>O?1:-1}return ve==="asc"?N[V]>B[V]?1:-1:B[V]>N[V]?1:-1})},[ue,V,ve,ne,Te]),Fe=z(null),xe=z(null),J=z(!1);G(()=>{l.length>100||J.current||xe.current&&(li(xe.current,{duration:200}),J.current=!0)},[l,xe]);const ae=l.length>160?"3d":"2d",te=pe(()=>ae!=="2d"?null:l.map(S=>{const N=Le[S.id];return e("span",{class:`post-dot ${N?"post-dot-highlight":""}`},S.id)}),[Le]),Se=pe(()=>ae!=="3d"||!(l!=null&&l.length)?null:va(l,"createdAt",320).map((N,B)=>e("div",{class:"posts-bin",children:N.map(O=>{const K=Le[O.id];return e("span",{class:`post-dot ${K?"post-dot-highlight":""}`},O.id)})},B)),[Le]),Ie=z(null),F=pe(()=>I?(Date.now()-I)/1e3/60/60:null,[I,E]);G(()=>{if(a!=="results")return;const S=A&&he[A]?he[A].username:"",N=ve==="asc"?0:1,B={account:"authors"};let O=se({duration:5e3,text:`Showing ${da[ee]||"all posts"}${S?` by @${S}`:""}, ${ua[V][N]} first${ne?`, grouped by ${ne==="account"?B[ne]:""}`:""}`});return()=>{var K;(K=O==null?void 0:O.hideToast)==null||K.call(O)}},[a,ee,A,V,ve,ne,he]),G(()=>{var S;if(A&&he[A]){const N=xe.current.querySelector(`[data-author="${A}"]`),B=(S=xe.current)==null?void 0:S.getBoundingClientRect(),O=N==null?void 0:N.getBoundingClientRect();O.leftB.right?N.scrollIntoView({block:"nearest",inline:"center",behavior:"smooth"}):O.top<0&&N.scrollIntoView({block:"nearest",inline:"nearest",behavior:"smooth"})}},[A,he]);const[re,D]=$(!1),W=".catchup-list > li > a",R=_e("j",()=>{const S=document.activeElement.closest(W),N=S==null?void 0:S.getBoundingClientRect(),B=Array.from(Ie.current.querySelectorAll(W));if(S&&N.top0){const O=B.indexOf(S),K=B[O+1];K&&(K.focus(),K.scrollIntoView({block:"center",inline:"center",behavior:"smooth"}))}else{const O=B.find(K=>K.getBoundingClientRect().top>=0);O&&(O.focus(),O.scrollIntoView({block:"nearest",inline:"center",behavior:"smooth"}))}},{preventDefault:!0,ignoreModifiers:!0}),q=_e("k",()=>{const S=document.activeElement.closest(W),N=S==null?void 0:S.getBoundingClientRect(),B=Array.from(Ie.current.querySelectorAll(W));if(S&&N.top0){const O=B.indexOf(S);let K=B[O-1];K&&(K.focus(),K.scrollIntoView({block:"center",inline:"center",behavior:"smooth"}))}else{const O=B.find(K=>{const ge=K.getBoundingClientRect();return ge.top>=44&&ge.left>=0});O&&(O.focus(),O.scrollIntoView({block:"nearest",inline:"center",behavior:"smooth"}))}},{preventDefault:!0,ignoreModifiers:!0}),Z=_e("h, l",(S,N)=>{var O,K,ge;const B=N.keys[0];if(A){const le=Te.indexOf(A);B==="h"?le>0&&le=0&&(P(Te[le+1]),(K=Ie.current)==null||K.focus())}else B==="l"&&(P(Te[0]),(ge=Ie.current)==null||ge.focus())},{preventDefault:!0,ignoreModifiers:!0,enableOnFormTags:["input"]}),ce=_e("esc",()=>{var S;P(null),(S=Ie.current)==null||S.focus()},{preventDefault:!0,ignoreModifiers:!0,enableOnFormTags:["input"]}),De=_e(".",()=>{var S;(S=Ie.current)==null||S.scrollTo({top:0,behavior:"smooth"})},{preventDefault:!0,ignoreModifiers:!0,enableOnFormTags:["input"]});return e("div",{ref:S=>{Ie.current=S,R.current=S,q.current=S,Z.current=S,ce.current=S},id:"catchup-page",class:"deck-container",tabIndex:"-1",children:[e("div",{class:"timeline-deck deck wide",children:[e("header",{class:`${a==="loading"?"loading":""}`,onClick:S=>{var N;S.target.closest("a, button")||(N=Ie.current)==null||N.scrollTo({top:0,behavior:"smooth"})},children:e("div",{class:"header-grid",children:[e("div",{class:"header-side",children:[e(yt,{}),a==="results"&&e(oe,{to:"/catchup",class:"button plain",children:e(w,{icon:"history2",size:"l"})}),a==="start"&&e(oe,{to:"/",class:"button plain",children:e(w,{icon:"home",size:"l"})})]}),e("h1",{children:a!=="start"&&e(_,{children:["Catch-up ",e("sup",{children:"beta"})]})}),e("div",{class:"header-side",children:a!=="start"&&a!=="loading"&&e("button",{type:"button",class:"plain",onClick:()=>{D(!0)},children:"Help"})})]})}),e("main",{children:[a==="start"&&e("div",{class:"catchup-start",children:[e("h1",{children:["Catch-up ",e("sup",{children:"beta"})]}),e("details",{children:[e("summary",{children:"What is this?"}),e("p",{children:"Catch-up is a separate timeline for your followings, offering a high-level view at a glance, with a simple, email-inspired interface to effortlessly sort and filter through posts."}),e("img",{src:oa,width:"1200",height:"900",alt:"Preview of Catch-up UI"}),e("p",{children:e("button",{type:"button",onClick:S=>{S.target.closest("details").open=!1},children:"Let's catch up"})})]}),e("p",{children:"Let's catch up on the posts from your followings."}),e("p",{children:e("b",{children:"Show me all posts from…"})}),e("div",{class:"catchup-form",children:[e("input",{ref:m,type:"range",value:E,min:We[0].value,max:We[We.length-1].value,step:"1",list:"catchup-ranges",onChange:S=>U(+S.target.value)})," ",e("span",{style:{width:"8em"},children:[We[E-1].label,e("br",{}),e("small",{class:"insignificant",children:E==We[We.length-1].value?"until the max":ot(new Date(Date.now()-E*60*60*1e3))})]}),e("datalist",{id:"catchup-ranges",children:We.map(({label:S,value:N})=>e("option",{value:N,label:S}))})," ",e("button",{type:"button",onClick:()=>{var S;if(EF?e("p",{class:"catchup-info",children:[e(w,{icon:"info"})," Overlaps with your last catch-up"]}):E===We[We.length-1].value&&I?e("p",{class:"catchup-info",children:e("label",{children:[e("input",{type:"checkbox",switch:!0,checked:!0,ref:k})," ","Until the last catch-up (",Ft.format(new Date(I)),")"]})}):null,e("p",{class:"insignificant",children:e("small",{children:"Note: your instance might only show a maximum of 800 posts in the Home timeline regardless of the time range. Could be less or more."})}),!!(L!=null&&L.length)&&e("div",{class:"catchup-prev",children:[e("p",{children:"Previously…"}),e("ul",{children:L.map(S=>e("li",{children:[e(oe,{to:`/catchup?id=${S.id}`,children:[e(w,{icon:"history2"})," ",e("span",{children:S.startAt?Ft.formatRange(new Date(S.startAt),new Date(S.endAt)):`… – ${Ft.format(new Date(S.endAt))}`})]})," ",e("span",{children:[e("small",{class:"ib insignificant",children:[S.count," posts"]})," ",e("button",{type:"button",class:"light danger small",onClick:async()=>{var B;if(confirm("Remove this catch-up?")){let O=se(`Removing Catch-up ${S.id}`);await nt.catchup.del(S.id),(B=O==null?void 0:O.hideToast)==null||B.call(O),se(`Catch-up ${S.id} removed`),v()}},children:e(w,{icon:"x"})})]})]},S.id))}),L.length>=3&&e("p",{children:e("small",{children:"Note: Only max 3 will be stored. The rest will be automatically removed."})})]})]}),a==="loading"&&e("div",{class:"ui-state catchup-start",children:[e($e,{abrupt:!0}),e("p",{class:"insignificant",children:"Fetching posts…"}),e("p",{class:"insignificant",children:"This might take a while."})]}),a==="results"&&e(_,{children:[e("div",{class:"catchup-header",children:[l.length>0&&e("p",{children:e("b",{class:"ib",children:Ft.formatRange(new Date(l[0].createdAt),new Date(l[l.length-1].createdAt))})}),e("aside",{children:[e("button",{hidden:ee==="All"&&!A&&V==="createdAt"&&ve==="asc",type:"button",class:"plain4 small",onClick:()=>{X("All"),P(null),ye("createdAt"),me(null),fe("asc")},children:"Reset filters"}),(M==null?void 0:M.length)>0&&e("button",{type:"button",class:"plain small",onClick:()=>r(!d),children:["Top links"," ",e(w,{icon:"chevron-down",style:{transform:d?"rotate(180deg)":"rotate(0deg)"}})]})]})]}),e("div",{class:"shazam-container no-animation",hidden:!d,children:e("div",{class:"shazam-container-inner",children:e("div",{class:"catchup-top-links links-bar",children:M.map(S=>{const{card:N,shared:B,sharers:O,likes:K,boosts:ge}=S,{blurhash:le,title:ie,description:Ce,url:Ne,image:Oe,imageDescription:Ee,language:Ve,width:H,height:we,publishedAt:tt}=N,Dt=xt.toUnicode(new URL(Ne).hostname.replace(/^www\./,"").replace(/\/$/,""));let pt;if(le){const Ye=fn(le),wt=Sn(Ye);pt=In([.6,wt[1],wt[2]])}return e("a",{href:Ne,target:"_blank",rel:"noopener noreferrer",style:pt?{"--accent-color":`rgb(${pt.join(",")})`,"--accent-alpha-color":`rgba(${pt.join(",")}, 0.4)`}:{},children:e("article",{children:[e("figure",{children:e("img",{src:Oe,alt:Ee,width:H,height:we,loading:"lazy"})}),e("div",{class:"article-body",children:[e("header",{children:[e("div",{class:"article-meta",children:[e("span",{class:"domain",children:Dt})," ",!!tt&&e(_,{children:"· "}),!!tt&&e(_,{children:e(bt,{datetime:tt,format:"micro"})})]}),!!ie&&e("h1",{class:"title",lang:Ve,dir:"auto",title:ie,children:ie})]}),!!Ce&&e("p",{class:"description",lang:Ve,dir:"auto",title:Ce,children:Ce}),e("hr",{}),e("p",{style:{whiteSpace:"nowrap"},children:["Shared by"," ",O.map(Ye=>{const{avatarStatic:wt,displayName:Ws}=Ye;return e(st,{url:wt,size:"s",alt:Ws})})]})]})]})},Ne)})})})}),l.length>=5&&(ae==="3d"?e("div",{class:"catchup-posts-viz-time-bar",children:Se}):e("div",{class:"catchup-posts-viz-bar",children:te})),l.length>=2&&e("div",{class:"catchup-filters",children:[e("label",{class:"filter-cat",children:[e("input",{type:"radio",name:"filter-cat",checked:ee.toLowerCase()==="all",onChange:()=>{X("All")}}),"All ",e("span",{class:"count",children:l.length})]}),ca.map(S=>!!j[S]&&e("label",{class:"filter-cat",title:(j[S]/l.length*100).toFixed(2)+"%",children:[e("input",{type:"radio",name:"filter-cat",checked:ee.toLowerCase()===S.toLowerCase(),onChange:()=>{X(S)}}),S," ",e("span",{class:"count",children:j[S]})]},S))]}),l.length>=2&&!!ke&&e("div",{class:"catchup-filters authors-filters",ref:xe,children:[Te.map(S=>e("label",{class:"filter-author","data-author":S,children:[e("input",{type:"radio",name:"filter-author",checked:A===S,onChange:()=>{P(S)},onClick:()=>{A===S&&P(null)}}),e(st,{url:he[S].avatarStatic||he[S].avatar,size:"xxl",alt:`${he[S].displayName} (@${he[S].acct})`})," ",e("span",{class:"count",children:ke[S]}),e("span",{class:"username",children:he[S].username})]},`${S}-${ke[S]}`)),Te.length>5&&e("small",{style:{whiteSpace:"nowrap",paddingInline:"1em",opacity:.33},children:[Te.length," authors"]},"authors-count")]}),l.length>=2&&e("div",{class:"catchup-filters",children:[e("span",{class:"filter-label",children:"Sort"})," ",e("fieldset",{class:"radio-field-group",children:ra.map(S=>e("label",{class:"filter-sort",onClick:N=>{V===S&&(N.preventDefault(),N.stopPropagation(),fe(ve==="asc"?"desc":"asc"))},children:[e("input",{type:"radio",name:"filter-sort-cat",checked:V===S,onChange:()=>{ye(S);const N=/(replies|favourites|reblogs)/.test(S)?"desc":"asc";fe(N)}}),{createdAt:"Date",repliesCount:"Replies",favouritesCount:"Likes",reblogsCount:"Boosts",density:"Density"}[S],V===S&&(ve==="asc"?" ↑":" ↓")]},S))}),e("span",{class:"filter-label",children:"Group"})," ",e("fieldset",{class:"radio-field-group",children:la.map(S=>e("label",{class:"filter-group",children:[e("input",{type:"radio",name:"filter-group",checked:ne===S,onChange:()=>{me(S)},disabled:S==="account"&&A}),{account:"Authors"}[S]||"None"]},S||"none"))}),A&&Te.length>1?e("button",{type:"button",class:"plain6 small",onClick:()=>{P(null)},style:{whiteSpace:"nowrap"},children:"Show all authors"}):null]}),e("ul",{class:`catchup-list catchup-filter-${Jn[ee]||""} ${V?`catchup-sort-${V}`:""} ${A&&he[A]?"catchup-selected-author":""} ${ne?`catchup-group-${ne}`:""}`,children:Pe.map((S,N)=>{var K;const B=((K=S.reblog)==null?void 0:K.id)||S.id;let O=!1;return ne==="account"&&(Fe.current&&S.account.id!==Fe.current&&N>0&&(O=!0),Fe.current=S.account.id),e(_,{children:[O&&e("li",{class:"separator"}),e(fa,{to:`/${n}/s/${B}`,post:S,root:Ie.current})]},`${S.id}-${O}`)})}),e("footer",{children:ue.length>5&&e("p",{children:[ee==="Boosts"?"You don't have to read everything.":"That's all."," ",e("button",{type:"button",class:"textual",onClick:()=>{Ie.current.scrollTop=0},children:"Back to top"}),"."]})})]})]})]}),re&&e(Ae,{onClose:()=>D(!1),children:e("div",{class:"sheet",id:"catchup-help-sheet",children:[e("button",{type:"button",class:"sheet-close",onClick:()=>D(!1),children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:"Help"})}),e("main",{children:e("dl",{children:[e("dt",{children:"Top links"}),e("dd",{children:"Links shared by followings, sorted by shared counts, boosts and likes."}),e("dt",{children:"Sort: Density"}),e("dd",{children:'Posts are sorted by information density or depth. Shorter posts are "lighter" while longer posts are "heavier". Posts with photos are "heavier" than posts without photos.'}),e("dt",{children:"Group: Authors"}),e("dd",{children:"Posts are grouped by authors, sorted by posts count per author."}),e("dt",{children:"Keyboard shortcuts"}),e("dd",{children:[e("kbd",{children:"j"}),": Next post"]}),e("dd",{children:[e("kbd",{children:"k"}),": Previous post"]}),e("dd",{children:[e("kbd",{children:"l"}),": Next author"]}),e("dd",{children:[e("kbd",{children:"h"}),": Previous author"]}),e("dd",{children:[e("kbd",{children:"Enter"}),": Open post details"]}),e("dd",{children:[e("kbd",{children:"."}),": Scroll to top"]})]})})]})})]})}const pa=Je(function({post:t}){const{id:n,account:i,group:s,reblog:o,inReplyToId:a,inReplyToAccountId:h,_followedTags:d,_filtered:r,visibility:u,__BOOSTERS:f}=t,c=a&&h!==i.id,p=!!r,l=b=>{b.shiftKey};return e("article",{class:`post-line ${s?"group":o?"reblog":d!=null&&d.length?"followed-tags":""} ${c?"reply-to":""} ${p?"filtered":""} visibility-${u}`,onMouseEnter:l,children:[e("span",{class:"post-author",children:o?e("span",{class:"post-reblog-avatar",children:[e(st,{url:i.avatarStatic||i.avatar,squircle:i.bot}),(f==null?void 0:f.size)>0?[...f].map(b=>e(st,{url:b.avatarStatic||b.avatar,squircle:b.bot})):""," ",e(w,{icon:"rocket"})," ",e(It,{account:o.account,showAvatar:!0})]}):e(It,{account:i,showAvatar:!0})}),e(ba,{post:o||t,filterInfo:r}),e("span",{class:"post-meta",children:[e(ya,{post:o||t})," ",e(bt,{datetime:new Date((o==null?void 0:o.createdAt)||t.createdAt),format:"micro"})]})]})},(t,n)=>{var i,s;return((i=t==null?void 0:t.post)==null?void 0:i.id)===((s=n==null?void 0:n.post)==null?void 0:s.id)}),fa=({root:t,to:n,...i})=>{const s=z(),[o,a]=$(!1);return G(()=>{const h=new IntersectionObserver(d=>{d[0].isIntersecting&&(queueMicrotask(()=>a(!0)),h.unobserve(s.current))},{root:t,rootMargin:`${Math.max(320,screen.height*.75)}px`});return s.current&&h.observe(s.current),()=>{s.current&&h.unobserve(s.current)}},[]),o?e("li",{children:e(oe,{to:n,children:e(pa,{...i})})}):e("li",{ref:s,style:{height:"4em"}})},ma=8,ga=8;function Xn(t){var r;const{spoilerText:n,content:i,poll:s,mediaAttachments:o,card:a}=t,h=(r=s==null?void 0:s.options)!=null&&r.length?s.options.reduce((u,f)=>u+f.title,""):"";return(n.length+Cs(i)+h.length)/140+(o!=null&&o.length?ma*o.length:a!=null&&a.image?ga:0)}const ut=48;function ba({post:t,filterInfo:n}){var y;const{spoilerText:i,sensitive:s,content:o,emojis:a,poll:h,mediaAttachments:d,card:r,inReplyToId:u,inReplyToAccountId:f,account:c,_thread:p}=t,l=u&&f===c.id||!!p,b=pe(()=>!!(be.account.get("preferences")||{})["reading:expand:spoilers"],[]),m=b||!i&&!s,k=o?yn(t):"",g=!i||b;return e("div",{class:"post-peek",title:i?"":k,children:[e("span",{class:"post-peek-content",children:[l&&!g&&e(_,{children:[e("span",{class:"post-peek-tag post-peek-thread",children:"Thread"})," "]}),n?e("span",{class:"post-peek-filtered",children:["Filtered",n!=null&&n.titlesStr?`: ${n.titlesStr}`:""]}):e(_,{children:[!!i&&e("span",{class:"post-peek-spoiler",children:[e(w,{icon:`${b?"eye-open":"eye-close"}`})," ",i]}),g&&e("div",{class:"post-peek-html",children:[l&&e(_,{children:[e("span",{class:"post-peek-tag post-peek-thread",children:"Thread"})," "]}),!!o&&e("div",{dangerouslySetInnerHTML:{__html:Ti(o,a)}}),!!((y=h==null?void 0:h.options)!=null&&y.length)&&h.options.map(C=>e("div",{children:[h.multiple?"▪️":"•"," ",C.title]})),!o&&(d==null?void 0:d.length)===1&&d[0].description&&e(_,{children:[e("span",{class:"post-peek-tag post-peek-alt",children:"ALT"})," ",e("div",{children:d[0].description})]})]})]})]}),!n&&e("span",{class:"post-peek-post-content",children:[!!h&&e("span",{class:"post-peek-tag post-peek-poll",children:[e(w,{icon:"poll",size:"s"}),"Poll"]}),d!=null&&d.length?d.map(C=>{const v=C.previewUrl||C.url,I=C.previewRemoteUrl||C.remoteUrl;return e("span",{class:"post-peek-media",children:{image:(v||I)&&m?e("img",{src:v,width:ut,height:ut,alt:C.description,loading:"lazy",onError:x=>{const{src:L}=x.target;L===v&&(x.target.src=I)}}):e("span",{class:"post-peek-faux-media",children:"🖼"}),gifv:(v||I)&&m?e("img",{src:v,width:ut,height:ut,alt:C.description,loading:"lazy",onError:x=>{const{src:L}=x.target;L===v&&(x.target.src=I)}}):e("span",{class:"post-peek-faux-media",children:"🎞️"}),video:(v||I)&&m?e("img",{src:v,width:ut,height:ut,alt:C.description,loading:"lazy",onError:x=>{const{src:L}=x.target;L===v&&(x.target.src=I)}}):e("span",{class:"post-peek-faux-media",children:"📹"}),audio:e("span",{class:"post-peek-faux-media",children:"🎵"})}[C.type]||null},C.id)}):!!r&&r.image&&m&&e("span",{class:`post-peek-media post-peek-card card-${r.type||""}`,children:r.image?e("img",{src:r.image,width:ut,height:ut,alt:r.title||r.description||r.imageDescription,loading:"lazy"}):e("span",{class:"post-peek-faux-media",children:"🔗"})})]})]})}function ya({post:t}){const{reblogsCount:n,repliesCount:i,favouritesCount:s}=t;return e("span",{class:"post-stats",children:[i>0&&e("span",{class:"post-stat-replies",children:[e(w,{icon:"comment2",size:"s"})," ",Ge(i)]}),s>0&&e("span",{class:"post-stat-likes",children:[e(w,{icon:"heart",size:"s"})," ",Ge(s)]}),n>0&&e("span",{class:"post-stat-boosts",children:[e(w,{icon:"rocket",size:"s"})," ",Ge(n)]})]})}const{locale:wa}=new Intl.DateTimeFormat().resolvedOptions(),Ft=new Intl.DateTimeFormat(wa,{year:"numeric",month:"short",day:"numeric",hour:"numeric",minute:"numeric"});function va(t,n,i){const s=t.map(r=>new Date(r[n])),o=s.reduce((r,u)=>uu>r?u:r,s[0]).getTime()-o.getTime(),d=Array.from({length:i},()=>[]);return t.forEach(r=>{const f=(new Date(r[n]).getTime()-o.getTime())/h,c=Math.floor(f*(i-1));d[c].push(r)}),d}const ka=20;function Ns(){He("Likes","/f");const{masto:t,instance:n}=Q(),i=z();async function s(o){return(o||!i.current)&&(i.current=t.v1.favourites.list({limit:ka})),await i.current.next()}return e(dt,{title:"Likes",id:"favourites",emptyText:"No likes yet. Go like something!",errorText:"Unable to load likes",instance:n,fetchItems:s})}const Sa=["home","public","notifications","thread","account"],Qn=["notifications","thread","account"],Ia={home:"Home and lists",notifications:"Notifications",public:"Public timelines",thread:"Conversations",account:"Profiles"},Ca=[0,30*60,60*60,6*60*60,12*60*60,60*60*24,60*60*24*7,60*60*24*30],Ta={0:"Never",1800:"30 minutes",3600:"1 hour",21600:"6 hours",43200:"12 hours",86400:"24 hours",604800:"7 days",2592e3:"30 days"};function xa(){const{masto:t}=Q();He("Filters","/ft");const[n,i]=$("default"),[s,o]=$(!1),[a,h]=mt(u=>u+1,0),[d,r]=$([]);return G(()=>{i("loading"),(async()=>{try{const u=await t.v2.filters.list();u.sort((f,c)=>f.title.localeCompare(c.title)),u.forEach(f=>{var c;(c=f.keywords)!=null&&c.length&&f.keywords.sort((p,l)=>p.id-l.id)}),r(u),i("default")}catch{i("error")}})()},[a]),e("div",{id:"filters-page",class:"deck-container",tabIndex:"-1",children:[e("div",{class:"timeline-deck deck",children:[e("header",{children:e("div",{class:"header-grid",children:[e("div",{class:"header-side",children:[e(yt,{}),e(oe,{to:"/",class:"button plain",children:e(w,{icon:"home",size:"l"})})]}),e("h1",{children:"Filters"}),e("div",{class:"header-side",children:e("button",{type:"button",class:"plain",onClick:()=>{o(!0)},children:e(w,{icon:"plus",size:"l",alt:"New filter"})})})]})}),e("main",{children:d.length>0?e(_,{children:[e("ul",{class:"filters-list",children:d.map(u=>{const{id:f,title:c,expiresAt:p,keywords:l}=u;return e("li",{children:[e("div",{children:[e("h2",{children:c}),(l==null?void 0:l.length)>0&&e("div",{children:l.map(b=>e(_,{children:[e("span",{class:"tag collapsed insignificant",children:b.wholeWord?`“${b.keyword}”`:b.keyword})," "]}))}),e("small",{class:"insignificant",children:e(Us,{expiresAt:p})})]}),e("button",{type:"button",class:"plain",onClick:()=>{o({filter:u})},children:e(w,{icon:"pencil",size:"l",alt:"Edit filter"})})]},f)})}),d.length>1&&e("footer",{class:"ui-state",children:e("small",{class:"insignificant",children:[d.length," filter",d.length===1?"":"s"]})})]}):n==="loading"?e("p",{class:"ui-state",children:e($e,{})}):n==="error"?e("p",{class:"ui-state",children:"Unable to load filters."}):e("p",{class:"ui-state",children:"No filters yet."})})]}),!!s&&e(Ae,{title:"Add filter",onClose:()=>{o(!1)},children:e(Ra,{filter:s==null?void 0:s.filter,onClose:u=>{u.state==="success"&&h(),o(!1)}})})]})}let $a=1;const Aa=()=>$a++;function Ra({filter:t,onClose:n}){const{masto:i}=Q(),[s,o]=$("default"),a=!!t,{context:h,expiresAt:d,id:r,keywords:u,title:f,filterAction:c}=t||{},p=!!d,l=p&&new Date(d),[b,m]=$(u||[]),k=z(),[g,y]=$([]),[C,v]=$([]),I=b.filter(x=>!g.includes(x.id)&&!C.includes(x._id));return e("div",{class:"sheet",id:"filters-add-edit-modal",children:[!!n&&e("button",{type:"button",class:"sheet-close",onClick:n,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:a?"Edit filter":"New filter"})}),e("main",{children:e("form",{onSubmit:x=>{x.preventDefault();const L=new FormData(x.target),Y=L.get("title"),j=L.getAll("keyword_attributes[][id]"),M=L.getAll("keyword_attributes[][keyword]"),ee=[...k.current.querySelectorAll('input[name="keyword_attributes[][whole_word]"]')].map(U=>U.checked),X=M.map((U,V)=>({id:j[V]||void 0,keyword:U,wholeWord:ee[V]}));a&&(g!=null&&g.length)&&g.forEach(U=>{X.push({id:U,_destroy:!0})});const A=L.getAll("context");let P=L.get("expires_in");const E=L.get("filter_action");!Y||!(A!=null&&A.length)||(o("loading"),(async()=>{try{let U;a?(P===""||P===null?p?P=Math.floor((l-new Date)/1e3):P=null:P==="0"||P===0?P=null:P=+P,U=await i.v2.filters.$select(r).update({title:Y,context:A,expiresIn:P,keywordsAttributes:X,filterAction:E})):(P=+P||null,U=await i.v2.filters.create({title:Y,context:A,expiresIn:P,keywordsAttributes:X,filterAction:E})),o("default"),n==null||n({state:"success",filter:U})}catch{o("error"),alert(a?"Unable to edit filter":"Unable to create filter")}})())},children:[e("div",{class:"filter-form-row",children:e("label",{children:[e("b",{children:"Title"}),e("input",{type:"text",name:"title",defaultValue:f,disabled:s==="loading",dir:"auto",required:!0})]})}),e("div",{class:"filter-form-keywords",ref:k,children:[I.length?e("ul",{class:"filter-keywords",children:I.map(x=>{const{id:L,keyword:Y,wholeWord:j,_id:M}=x;return e("li",{children:[e("input",{type:"hidden",name:"keyword_attributes[][id]",value:L}),e("input",{name:"keyword_attributes[][keyword]",type:"text",defaultValue:Y,disabled:s==="loading",required:!0}),e("div",{class:"filter-keyword-actions",children:[e("label",{children:[e("input",{name:"keyword_attributes[][whole_word]",type:"checkbox",value:L,defaultChecked:j,disabled:s==="loading"})," ","Whole word"]}),e("button",{type:"button",class:"light danger small",disabled:s==="loading",onClick:()=>{L?(g.push(L),y([...g])):M&&(C.push(M),v([...C]))},children:e(w,{icon:"x"})})]})]},`${L}-${M}`)})}):e("div",{class:"filter-keywords",children:e("div",{class:"insignificant",children:"No keywords. Add one."})}),e("footer",{class:"filter-keywords-footer",children:[e("button",{type:"button",class:"light",onClick:()=>{m([...b,{_id:Aa(),keyword:"",wholeWord:!0}]),setTimeout(()=>{var L,Y;const x=k.current.querySelectorAll('input[type="text"]');(Y=(L=x[x.length-1])==null?void 0:L.focus)==null||Y.call(L)},10)},children:"Add keyword"})," ",(I==null?void 0:I.length)>1&&e("small",{class:"insignificant",children:[I.length," keyword",I.length===1?"":"s"]})]})]}),e("div",{class:"filter-form-cols",children:[e("div",{class:"filter-form-col",children:[e("div",{children:e("b",{children:"Filter from…"})}),Sa.map(x=>e("div",{children:[e("label",{class:Qn.includes(x)?"insignificant":"",children:[e("input",{type:"checkbox",name:"context",value:x,defaultChecked:h?h.includes(x):!0,disabled:s==="loading"})," ",Ia[x],Qn.includes(x)?"*":""]})," "]})),e("p",{children:e("small",{class:"insignificant",children:"* Not implemented yet"})})]}),e("div",{class:"filter-form-col",children:[a&&e(_,{children:["Status:"," ",e("b",{children:e(Us,{expiresAt:d,showNeverExpires:!0})})]}),e("div",{children:[e("label",{for:"filters-expires_in",children:a?"Change expiry":"Expiry"}),e("select",{id:"filters-expires_in",name:"expires_in",disabled:s==="loading",defaultValue:a?void 0:0,children:[a&&e("option",{}),Ca.map(x=>e("option",{value:x,children:Ta[x]}))]})]}),e("p",{children:["Filtered post will be…",e("br",{}),e("label",{class:"ib",children:[e("input",{type:"radio",name:"filter_action",value:"warn",defaultChecked:c==="warn"||!a,disabled:s==="loading"})," ","minimized"]})," ",e("label",{class:"ib",children:[e("input",{type:"radio",name:"filter_action",value:"hide",defaultChecked:c==="hide",disabled:s==="loading"})," ","hidden"]})]})]})]}),e("footer",{class:"filter-form-footer",children:[e("span",{children:[e("button",{type:"submit",disabled:s==="loading",children:a?"Save":"Create"})," ",e($e,{abrupt:!0,hidden:s!=="loading"})]}),a&&e(et,{disabled:s==="loading",align:"end",menuItemClassName:"danger",confirmLabel:"Delete this filter?",onClick:()=>{o("loading"),(async()=>{try{await i.v2.filters.$select(r).remove(),o("default"),n==null||n({state:"success"})}catch{o("error"),alert("Unable to delete filter.")}})()},children:e("button",{type:"button",class:"light danger",onClick:()=>{},disabled:s==="loading",children:"Delete…"})})]})]})})]})}function Us({expiresAt:t,showNeverExpires:n}){const i=!!t,s=i&&new Date(t),o=i&&s<=new Date,[a,h]=mt(d=>d+1,0);return gn(h,o||3e4),o?"Expired":i?e(_,{children:["Expiring ",e(bt,{datetime:s})]}):n&&"Never expires"}function _a(){const{masto:t,instance:n}=Q();He("Followed Hashtags","/fh");const[i,s]=$("default"),[o,a]=$([]);return G(()=>{s("loading"),(async()=>{try{const h=await Kt();a(h),s("default")}catch{s("error")}})()},[]),e("div",{id:"followed-hashtags-page",class:"deck-container",tabIndex:"-1",children:e("div",{class:"timeline-deck deck",children:[e("header",{children:e("div",{class:"header-grid",children:[e("div",{class:"header-side",children:[e(yt,{}),e(oe,{to:"/",class:"button plain",children:e(w,{icon:"home",size:"l"})})]}),e("h1",{children:"Followed Hashtags"}),e("div",{class:"header-side"})]})}),e("main",{children:o.length>0?e(_,{children:[e("ul",{class:"link-list",children:o.map(h=>e("li",{children:e(oe,{to:n?`/${n}/t/${h.name}`:`/t/${h.name}`,children:[e(w,{icon:"hashtag"})," ",e("span",{children:h.name})]})}))}),o.length>1&&e("footer",{class:"ui-state",children:e("small",{class:"insignificant",children:[o.length," hashtag",o.length===1?"":"s"]})})]}):i==="loading"?e("p",{class:"ui-state",children:e($e,{abrupt:!0})}):i==="error"?e("p",{class:"ui-state",children:"Unable to load followed hashtags."}):e("p",{class:"ui-state",children:"No hashtags followed yet."})})]})})}const La=20;function Tn({title:t,path:n,id:i,...s}){He(t||"Following",n||"/following");const{masto:o,streaming:a,instance:h}=Q(),d=Me(T),r=z(),u=z(),f=je("@pixelfed/home-include-reblogs");async function c(l){var k;(l||!r.current)&&(r.current=o.v1.timelines.home.list({limit:La})),f&&((k=r.current)!=null&&k.nextParams)&&(typeof r.current.nextParams=="string"?r.current.nextParams+="&include_reblogs=true":r.current.nextParams.include_reblogs=!0);const b=await r.current.next();let{value:m}=b;if(m!=null&&m.length){let g=!1;l&&(m[0].id!==u.current&&(g=!0),u.current=m[0].id),m.forEach(y=>{qe(y,h)}),m=Wn(m,h),l&&g&&Vo(),Ps(m,h),m.sort((y,C)=>{const v=new Date(y.createdAt);return new Date(C.createdAt)-v})}return{...b,value:m}}async function p(){var l;try{const b={limit:5,since_id:u.current};je("@pixelfed/home-include-reblogs")&&(b.include_reblogs=!0);const m=await o.v1.timelines.home.list(b).next();let{value:k}=m;const g=((l=k[0])==null?void 0:l.id)===u.current;return!!(k!=null&&k.length&&!g&&(u.current=k[0].id,k=Wn(k,h),k=$t(k,"home"),k.some(y=>!y.reblog)))}catch{return!1}}return G(()=>{let l;return(async()=>{if(a){l=a.user.subscribe();for await(const b of l){if(!l)break;if(b.event==="status.update"){const m=b.payload;qe(m,h)}else if(b.event==="delete"){const m=b.payload,k=hs(m,h);k&&(k._deleted=!0)}}}})(),()=>{var b;(b=l==null?void 0:l.unsubscribe)==null||b.call(l),l=null}},[a]),e(dt,{title:t||"Following",id:i||"following",emptyText:"Nothing to see here.",errorText:"Unable to load posts.",instance:h,fetchItems:c,checkForUpdates:p,useItemID:!0,boostsCarousel:d.settings.boostsCarousel,...s,filterContext:"home",showFollowedTags:!0,showReplyParent:!0})}const Ea=20,Ma=4,es=Ma+1;function Fs({media:t,columnMode:n,...i}){let{hashtag:s,...o}=n?{}:gt();i.hashtag&&(s=i.hashtag);let a=s.trim().split(/[\s+]+/);a.sort(),s=a[0];const[h,d]=it(),r=t||!!h.get("media"),u=r?"?media=1":"",{masto:f,instance:c,authenticated:p}=Q({instance:(i==null?void 0:i.instance)||o.instance}),{masto:l,instance:b,authenticated:m}=Q(),k=a.map(A=>`#${A}`).join(" "),g=r?" (Media only)":"",y=c?`${k}${g} on ${c}`:`${k}${g}`;He(y,"/:instance?/t/:hashtag");const C=z(),v=pe(()=>hn(),[]),I=z(void 0);async function x(A){const P=await f.v1.timelines.tag.$select(s).list({limit:Ea,any:a.slice(1),maxId:A?void 0:I.current,onlyMedia:r?!0:void 0}).next();let{value:E}=P;return E!=null&&E.length&&(A&&(C.current=E[0].id),E.forEach(U=>{qe(U,c,{skipThreading:r||v})}),I.current=E[E.length-1].id),{...P,value:E}}async function L(){var A;try{const P=await f.v1.timelines.tag.$select(s).list({limit:1,any:a.slice(1),since_id:C.current,onlyMedia:r}).next();let{value:E}=P;const U=((A=E[0])==null?void 0:A.id)===C.current;return E!=null&&E.length&&!U?(E=$t(E,"public"),!0):!1}catch{return!1}}const[Y,j]=$("default"),[M,ee]=$();G(()=>{(async()=>{try{const A=await f.v1.tags.$select(s).fetch();ee(A)}catch{}})()},[s]);const X=a.length>=es;return e(dt,{title:y,titleComponent:!!c&&e("h1",{class:"header-double-lines",children:[e("b",{children:k}),e("div",{children:c})]}),id:"hashtag",instance:c,emptyText:"No one has posted anything with this tag yet.",errorText:"Unable to load posts with this tag",fetchItems:x,checkForUpdates:L,useItemID:!0,view:r||v?"media":void 0,refresh:r,filterContext:"public",headerEnd:e(Ze,{portal:!0,setDownOverflow:!0,overflow:"auto",position:"anchor",menuButton:e("button",{type:"button",class:"plain",children:e(w,{icon:"more",size:"l"})}),children:[!!M&&a.length===1&&e(_,{children:[e(et,{subMenu:!0,confirm:M.following,confirmLabel:`Unfollow #${s}?`,disabled:Y==="loading"||!p,onClick:()=>{j("loading"),M.following?f.v1.tags.$select(s).unfollow().then(()=>{ee({...M,following:!1}),se(`Unfollowed #${s}`)}).catch(A=>{alert(A)}).finally(()=>{j("default")}):f.v1.tags.$select(s).follow().then(()=>{ee({...M,following:!0}),se(`Followed #${s}`)}).catch(A=>{alert(A)}).finally(()=>{j("default")})},children:M.following?e(_,{children:[e(w,{icon:"check-circle"})," ",e("span",{children:"Following…"})]}):e(_,{children:[e(w,{icon:"plus"})," ",e("span",{children:"Follow"})]})}),e(ze,{})]}),!v&&e(_,{children:[e(gs,{className:"plain",children:"Filters"}),e(de,{type:"checkbox",checked:!!r,onClick:()=>{r?h.delete("media"):h.set("media","1"),d(h)},children:[e(w,{icon:"check-circle"})," ",e("span",{class:"menu-grow",children:"Media only"})]}),e(ze,{})]}),e(di,{className:"menu-field",disabled:X,children:({ref:A})=>e("form",{onSubmit:P=>{var U,V;P.preventDefault();const E=(V=(U=P.target[0].value)==null?void 0:U.trim)==null?void 0:V.call(U);E&&!a.some(ye=>ye.toLowerCase()===E.toLowerCase())&&(a.push(E),a.sort(),location.hash=c?`/${c}/t/${a.join("+")}`:`/t/${a.join("+")}${u}`)},children:[e(w,{icon:"hashtag"}),e("input",{ref:A,type:"text",placeholder:X?`Max ${es} tags`:"Add hashtag",required:!0,autocorrect:"off",autocapitalize:"off",spellCheck:!1,pattern:"[^#][^\\s#]+[^#]",disabled:X})]})}),e(ui,{takeOverflow:!0,children:a.map((A,P)=>e(de,{disabled:a.length===1,onClick:E=>{a.splice(P,1),a.sort(),location.hash=c?`/${c}/t/${a.join("+")}${u}`:`/t/${a.join("+")}${u}`},children:[e(w,{icon:"x",alt:"Remove hashtag",class:"danger-icon"}),e("span",{children:[e("span",{class:"more-insignificant",children:"#"}),A]})]},A))}),e(ze,{}),e(de,{disabled:!m,onClick:()=>{if(T.shortcuts.length>=at){alert(`Max ${at} shortcuts reached. Unable to add shortcut.`);return}const A={type:"hashtag",hashtag:a.join(" "),instance:c,media:r?"on":void 0};T.shortcuts.some(E=>E.type===A.type&&E.hashtag.split(/[\s+]+/).sort().join(" ")===A.hashtag.split(/[\s+]+/).sort().join(" ")&&(E.instance?E.instance===A.instance:!0)&&(E.media?!!E.media==!!A.media:!0))?alert("This shortcut already exists"):(T.shortcuts.push(A),se("Hashtag shortcut added"))},children:[e(w,{icon:"shortcut"})," ",e("span",{children:"Add to Shorcuts"})]}),e(de,{onClick:()=>{let A=prompt('Enter a new instance e.g. "mastodon.social"');if(!/\./.test(A)){A&&alert("Invalid instance");return}A&&(A=A.toLowerCase().trim(),location.hash=`/${A}/t/${a.join("+")}${u}`)},children:[e(w,{icon:"bus"})," ",e("span",{children:"Go to another instance…"})]}),b!==c&&e(de,{onClick:()=>{location.hash=`/${b}/t/${a.join("+")}${u}`},children:[e(w,{icon:"bus"})," ",e("small",{class:"menu-double-lines",children:["Go to my instance (",e("b",{children:b}),")"]})]})]})},c+k)}const Pa=20;function Os(t){var g;const n=Me(T),{masto:i,instance:s}=Q(),o=(t==null?void 0:t.id)||((g=gt())==null?void 0:g.id),a=z(),h=z();async function d(y){(y||!h.current)&&(h.current=i.v1.timelines.list.$select(o).list({limit:Pa}));const C=await h.current.next();let{value:v}=C;return v!=null&&v.length&&(y&&(a.current=v[0].id),v.forEach(I=>{qe(I,s)})),{...C,value:v}}async function r(){var y;try{const C=await i.v1.timelines.list.$select(o).list({limit:1,since_id:a.current});let{value:v}=C;const I=((y=v[0])==null?void 0:y.id)===a.current;return v!=null&&v.length&&!I?(v=$t(v,"home"),!0):!1}catch{return!1}}const[u,f]=$([]);G(()=>{Pt().then(f)},[]);const[c,p]=$({title:"List"});He(c.title,"/l/:id"),G(()=>{(async()=>{try{const y=await As(o);p(y)}catch{}})()},[o]);const[l,b]=$(!1),[m,k]=$(!1);return e(_,{children:[e(dt,{title:c.title,id:"list",emptyText:"Nothing yet.",errorText:"Unable to load posts.",instance:s,fetchItems:d,checkForUpdates:r,useItemID:!0,boostsCarousel:n.settings.boostsCarousel,filterContext:"home",showReplyParent:!0,headerStart:e(Ze,{overflow:"auto",menuButton:e("button",{type:"button",class:"plain",children:[e(w,{icon:"list",size:"l",alt:"Lists"}),e(w,{icon:"chevron-down",size:"s"})]}),children:[e(Re,{to:"/l",children:e("span",{children:"All Lists"})}),(u==null?void 0:u.length)>0&&e(_,{children:[e(ze,{}),u.map(y=>e(Re,{to:`/l/${y.id}`,children:e("span",{children:y.title})},y.id))]})]}),headerEnd:e(Ze,{portal:!0,setDownOverflow:!0,overflow:"auto",viewScroll:"close",position:"anchor",menuButton:e("button",{type:"button",class:"plain",children:e(w,{icon:"more",size:"l"})}),children:[e(de,{onClick:()=>b({list:c}),children:[e(w,{icon:"pencil",size:"l"}),e("span",{children:"Edit"})]}),e(de,{onClick:()=>k(!0),children:[e(w,{icon:"group",size:"l"}),e("span",{children:"Manage members"})]})]})},o),l&&e(Ae,{onClick:y=>{y.target===y.currentTarget&&b(!1)},children:e(kn,{list:l==null?void 0:l.list,onClose:y=>{y.state==="success"&&y.list?p(y.list):y.state==="deleted"&&(location.hash="/l"),b(!1)}})}),m&&e(Ae,{onClick:y=>{y.target===y.currentTarget&&k(!1)},children:e(Na,{listID:o,onClose:()=>k(!1)})})]})}const Da=40;function Na({listID:t,onClose:n}){const{masto:i,instance:s}=Q(),[o,a]=$([]),[h,d]=$("default"),[r,u]=$(!1),f=z();async function c(p){u(!1),d("loading"),(async()=>{try{(p||!f.current)&&(f.current=i.v1.lists.$select(t).accounts.list({limit:Da}));const l=await f.current.next();let{done:b,value:m}=l;m!=null&&m.length?(a(p?m:o.concat(m)),u(!b)):u(!1),d("default")}catch{d("error")}})()}return G(()=>{c(!0)},[]),e("div",{class:"sheet",id:"list-manage-members-container",children:[!!n&&e("button",{type:"button",class:"sheet-close",onClick:n,children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:"Manage members"})}),e("main",{children:e("ul",{children:[o.map(p=>e("li",{children:[e(Xe,{account:p,instance:s}),e(Ua,{account:p,listID:t})]},p.id)),r&&h==="default"&&e(rt,{as:"li",onChange:p=>p&&c(),children:e("button",{type:"button",class:"light block",onClick:c,children:"Show more…"})})]})})]})}function Ua({account:t,listID:n}){const{masto:i}=Q(),[s,o]=$("default"),[a,h]=$(!1);return e(et,{confirm:!a,confirmLabel:e("span",{children:["Remove @",t.username," from list?"]}),align:"end",menuItemClassName:"danger",onClick:()=>{a?(o("loading"),(async()=>{try{await i.v1.lists.$select(n).accounts.create({accountIds:[t.id]}),o("default"),h(!1)}catch{o("error")}})()):(o("loading"),(async()=>{try{await i.v1.lists.$select(n).accounts.remove({accountIds:[t.id]}),o("default"),h(!0)}catch{o("error")}})())},children:e("button",{type:"button",class:`light ${a?"":"danger"}`,disabled:s==="loading",children:a?"Add":"Remove…"})})}const Fa={mention:["account","status"],status:["account","status"],reblog:["account","status"],follow:["account"],follow_request:["account"],favourite:["account","status"],poll:["status"],update:["status"]};function zs(t){return t.filter(n=>{const{type:i,id:s,createdAt:o}=n;if(!i)return!1;const a=Fa[i];return a!=null&&a.length?a.every(h=>!!n[h]):!0})}function Bs(t){t=zs(t);const n={},i=[];for(let a=0,h=0;ay.id===f.id);g?(g._types.push(c),g._types.sort().reverse(),k.id+=`-${r}`):(f._types=[c],k._accounts.push(f),k.id+=`-${r}`)}else{f&&(f._types=[c]);let g=n[m]={...d,type:b,_accounts:f?[f]:[]};i[h++]=g}}const s={},o=[];for(let a=0,h=0;a{qe(v,s)})),{...y,value:C==null?void 0:C.map(v=>v.status)}}const c=z(),p=z();async function l(g){(g||!c.current)&&(c.current=i.v1.conversations.list({limit:ts}));const y=await c.current.next();let{value:C}=y;return C=C==null?void 0:C.filter(v=>v.lastStatus),C!=null&&C.length&&(g&&(p.current=C[0].lastStatus.id),C.forEach(({lastStatus:v})=>{qe(v,s)})),{...y,value:C==null?void 0:C.map(v=>v.lastStatus)}}function b(...g){return d==="private"?l(...g):f(...g)}async function m(){var g;if(d==="private")try{const y=await i.v1.conversations.list({limit:1,since_id:p.current}).next();let{value:C}=y;const v=((g=C[0])==null?void 0:g.id)===p.current;return C!=null&&C.length&&!v?(p.current=C[0].lastStatus.id,!0):!1}catch{return!1}else try{const y=await i.v1.notifications.list({limit:1,types:["mention"],since_id:u.current}).next();let{value:C}=y;return C!=null&&C.length?(u.current=C[0].id,!0):!1}catch{return!1}}const k=pe(()=>e("div",{class:"filter-bar centered",children:[e(oe,{to:"/mentions",class:d?"":"is-active",onClick:g=>{t&&(g.preventDefault(),h(null))},children:"All"}),e(oe,{to:"/mentions?type=private",class:d==="private"?"is-active":"",onClick:g=>{t&&(g.preventDefault(),h("private"))},children:"Private"})]}),[d]);return e(dt,{title:"Mentions",id:"mentions",emptyText:"No one mentioned you :(",errorText:"Unable to load mentions.",instance:s,fetchItems:b,checkForUpdates:m,useItemID:!0,timelineStart:k,refresh:d})}const za=80,Ba=new URLSearchParams,Ot={block:"center",inline:"center",behavior:"smooth"};function qa({columnMode:t}){var re;He("Notifications","/notifications");const{masto:n,instance:i}=Q(),s=Me(T),[o,a]=$("default"),[h]=t?[Ba]:it(),d=h.get("id"),r=h.get("access_token"),[u,f]=$(!1),[c,p]=$(!1),l=z(),{nearReachEnd:b,scrollDirection:m,reachStart:k,nearReachStart:g}=Go({scrollableRef:l}),y=m==="end"&&!g,[C,v]=$([]),[I,x]=$([]),L=z();async function Y(D){var q;if((D||!L.current)&&(L.current=n.v1.notifications.list({limit:za,excludeTypes:["follow_request"]})),/max_id=($|&)/i.test((q=L.current)==null?void 0:q.nextParams))return{done:!0};const W=await L.current.next(),R=W.value;if(R!=null&&R.length){R.forEach(ce=>{qe(ce.status,i,{skipThreading:!0})});const Z=Bs(R);D?(T.notificationsLast=R[0],T.notifications=Z,n.v1.markers.create({notifications:{lastReadId:R[0].id}}).catch(()=>{})):T.notifications.push(...Z)}return T.notificationsShowNew=!1,T.notificationsLastFetchTime=Date.now(),W}async function j(){try{return await n.v1.followRequests.list({limit:80})}catch{return[]}}const M=()=>{a("loading"),(async()=>{try{const D=await j();v(D),a("default")}catch{a("error")}})()};async function ee(){try{return await n.v1.announcements.list()}catch{return[]}}const X=je("@mastodon/filtered-notifications"),[A,P]=$(!1),[E,U]=$({});function V(){return n.v1.notifications.policy.fetch().catch(()=>{})}function ye(){V().then(D=>{U(D)}).catch(()=>{})}const[ve,fe]=$(null);function ne(){return n.v1.notifications.requests.list()}const me=D=>{he(!1),a("loading"),(async()=>{try{const W=Y(D);D&&(ee().then(q=>{q.sort((Z,ce)=>{const De=new Date(Z.updatedAt||Z.createdAt);return new Date(ce.updatedAt||ce.createdAt)-De}),x(q)}).catch(()=>{}),j().then(q=>{v(q)}).catch(()=>{}),X&&ye());const{done:R}=await W;f(!R),a("default")}catch{a("error")}})()};G(()=>{me(!0)},[]),G(()=>{k&&me(!0)},[k]);const[ue,he]=$(!1),ke=Qe(({disableIdleCheck:D=!1}={})=>{var W;o!=="loading"&&s.settings.autoRefresh&&((W=l.current)==null?void 0:W.scrollTop)<16&&(D||window.__IDLE__)&&!Ha()&&me(!0)},[s.notificationsShowNew,s.settings.autoRefresh,o]),Le=z();Ct(D=>{if(D){const W=Date.now()-Le.current;!Le.current||W>1e3*3?ke({disableIdleCheck:!0}):Le.current=Date.now()}});const Te=z(!0);G(()=>{let D=hi(T,"notificationsShowNew",W=>{if(Te.current){Te.current=!1;return}o!=="loading"&&(W&&ke(),he(W))});return()=>D==null?void 0:D()},[]);const Pe=new Date,Fe=new Date(Pe-24*60*60*1e3);let xe=new Date;const J=!s.notifications.some(D=>new Date(D.createdAt).toDateString()===Pe.toDateString()),ae=z();G(()=>{d&&(T.routeNotification={id:d,accessToken:atob(r)})},[d,r]);const te=".notification",Se=_e("j",()=>{const D=document.activeElement.closest(te),W=D==null?void 0:D.getBoundingClientRect(),R=Array.from(l.current.querySelectorAll(te));if(D&&W.top0){const q=R.indexOf(D);let Z=R[q+1];Z&&(Z.focus(),Z.scrollIntoView(Ot))}else{const q=R.find(Z=>{const ce=Z.getBoundingClientRect();return ce.top>=44&&ce.left>=0});q&&(q.focus(),q.scrollIntoView(Ot))}}),Ie=_e("k",()=>{const D=document.activeElement.closest(te),W=D==null?void 0:D.getBoundingClientRect(),R=Array.from(l.current.querySelectorAll(te));if(D&&W.top0){const q=R.indexOf(D);let Z=R[q-1];Z&&(Z.focus(),Z.scrollIntoView(Ot))}else{const q=R.find(Z=>{const ce=Z.getBoundingClientRect();return ce.top>=44&&ce.left>=0});q&&(q.focus(),q.scrollIntoView(Ot))}}),F=_e(["enter","o"],()=>{const D=document.activeElement.closest(te),W=D==null?void 0:D.querySelector(".status-link");W&&W.click()});return e("div",{id:"notifications-page",class:"deck-container",ref:D=>{l.current=D,Se.current=D,Ie.current=D,F.current=D},tabIndex:"-1",children:[e("div",{class:`timeline-deck deck ${c?"only-mentions":""}`,children:[e("header",{hidden:y,onClick:D=>{var W;D.target.closest("a, button")||(W=l.current)==null||W.scrollTo({top:0,behavior:"smooth"})},onDblClick:D=>{D.target.closest("a, button")||me(!0)},class:o==="loading"?"loading":"",children:[e("div",{class:"header-grid",children:[e("div",{class:"header-side",children:[e(yt,{}),e(oe,{to:"/",class:"button plain",children:e(w,{icon:"home",size:"l",alt:"Home"})})]}),e("h1",{children:"Notifications"}),e("div",{class:"header-side",children:X&&e("button",{type:"button",class:"button plain4",onClick:()=>{P(!0)},children:e(w,{icon:"settings",size:"l",alt:"Notifications settings"})})})]}),ue&&o!=="loading"&&e("button",{class:"updates-button shiny-pill",type:"button",onClick:()=>{var D;me(!0),(D=l.current)==null||D.scrollTo({top:0,behavior:"smooth"})},children:[e(w,{icon:"arrow-up"})," New notifications"]})]}),I.length>0&&e("div",{class:"shazam-container",children:e("div",{class:"shazam-container-inner",children:e("details",{class:"announcements",children:[e("summary",{children:[e("span",{children:[e(w,{icon:"announce",class:"announcement-icon",size:"l"})," ",e("b",{children:["Announcement",I.length>1?"s":""]})," ",e("small",{class:"insignificant",children:i})]}),I.length>1&&e("span",{class:"announcements-nav-buttons",children:I.map((D,W)=>e("button",{type:"button",class:"plain2 small",onClick:()=>{var R;(R=ae.current)==null||R.children[W].scrollIntoView({behavior:"smooth",block:"nearest"})},children:W+1}))})]}),e("ul",{class:`announcements-list-${I.length>1?"multiple":"single"}`,ref:ae,children:I.map(D=>e("li",{children:e(Va,{announcement:D})}))})]})})}),C.length>0&&e("div",{class:"follow-requests",children:[e("h2",{class:"timeline-header",children:"Follow requests"}),C.length>5?e("details",{children:[e("summary",{children:[C.length," follow requests"]}),e("ul",{children:C.map(D=>e("li",{children:[e(Xe,{account:D}),e(rn,{accountID:D.id,onChange:()=>{}})]},D.id))})]}):e("ul",{children:C.map(D=>e("li",{children:[e(Xe,{account:D}),e(rn,{accountID:D.id,onChange:()=>{}})]},D.id))})]}),X&&((re=E==null?void 0:E.summary)==null?void 0:re.pendingRequestsCount)>0&&e("div",{class:"shazam-container",children:e("div",{class:"shazam-container-inner",children:e("div",{class:"filtered-notifications",children:e("details",{onToggle:async D=>{const{open:W}=D.target;if(W){const R=await ne();fe(R)}},children:[e("summary",{children:["Filtered notifications from"," ",E.summary.pendingRequestsCount," people"]}),ve?(ve==null?void 0:ve.length)>0&&e("ul",{children:ve.map(D=>{var W,R;return e("li",{children:[e("div",{class:"request-notifcations",children:[!((W=D.lastStatus)!=null&&W.id)&&e(Xe,{useAvatarStatic:!0,showStats:!0,account:D.account}),((R=D.lastStatus)==null?void 0:R.id)&&e("div",{class:"last-post",children:e(oe,{class:"status-link",to:`/${i}/s/${D.lastStatus.id}`,children:e(Be,{status:D.lastStatus,size:"s",readOnly:!0})})}),e(Ya,{request:D})]}),e(ja,{request:D,onChange:()=>{me(!0)}})]},D.id)})}):e("p",{class:"ui-state",children:e($e,{abrupt:!0})})]})})})}),e("div",{id:"mentions-option",children:e("label",{children:[e("input",{type:"checkbox",checked:c,onChange:D=>{p(D.target.checked)}})," ","Only mentions"]})}),e("h2",{class:"timeline-header",children:"Today"}),J&&e("p",{class:"ui-state insignificant",children:o==="default"?"You're all caught up.":e(_,{children:"…"})}),s.notifications.length?e(_,{children:s.notifications.filter(D=>D.type!=="follow_request").map(D=>{if(c&&D.type!=="mention")return null;const W=new Date(D.createdAt),R=W.toDateString()!==xe.toDateString();R&&(xe=W);const q=W.toDateString()===Fe.toDateString()?"Yesterday":ot(xe,{hideTime:!0});return e(_,{children:[R&&e("h2",{class:"timeline-header",children:q}),e(Xt,{instance:i,notification:D},D.id)]},D.id)})}):e(_,{children:[o==="loading"&&e(_,{children:e("ul",{class:"timeline flat",children:Array.from({length:5}).map((D,W)=>e("li",{class:"notification skeleton",children:[e("div",{class:"notification-type",children:e(w,{icon:"notification",size:"xl"})}),e("div",{class:"notification-content",children:e("p",{children:"███████████ ████"})})]}))})}),o==="error"&&e("p",{class:"ui-state",children:["Unable to load notifications",e("br",{}),e("br",{}),e("button",{type:"button",onClick:()=>me(!0),children:"Try again"})]})]}),u&&e(rt,{onChange:D=>{D&&me()},children:e("button",{type:"button",class:"plain block",disabled:o==="loading",onClick:()=>me(),style:{marginBlockEnd:"6em"},children:o==="loading"?e($e,{abrupt:!0}):e(_,{children:"Show more…"})})})]}),X&&A&&e(Ae,{onClick:D=>{D.target===D.currentTarget&&P(!1)},children:e("div",{class:"sheet",id:"notifications-settings",tabIndex:"-1",children:[e("button",{type:"button",class:"sheet-close",onClick:()=>P(!1),children:e(w,{icon:"x"})}),e("header",{children:e("h2",{children:"Notifications settings"})}),e("main",{children:e("form",{onSubmit:D=>{D.preventDefault();const{filterNotFollowing:W,filterNotFollowers:R,filterNewAccounts:q,filterPrivateMentions:Z}=D.target,ce={filterNotFollowing:W.checked,filterNotFollowers:R.checked,filterNewAccounts:q.checked,filterPrivateMentions:Z.checked};U({...E,...ce}),P(!1),(async()=>{try{await n.v1.notifications.policy.update(ce),se("Notifications settings updated")}catch{}})()},children:[e("p",{children:"Filter out notifications from people:"}),e("p",{children:e("label",{children:[e("input",{type:"checkbox",switch:!0,defaultChecked:E.filterNotFollowing,name:"filterNotFollowing"})," ","You don't follow"]})}),e("p",{children:e("label",{children:[e("input",{type:"checkbox",switch:!0,defaultChecked:E.filterNotFollowers,name:"filterNotFollowers"})," ","Who don't follow you"]})}),e("p",{children:e("label",{children:[e("input",{type:"checkbox",switch:!0,defaultChecked:E.filterNewAccounts,name:"filterNewAccounts"})," ","With a new account"]})}),e("p",{children:e("label",{children:[e("input",{type:"checkbox",switch:!0,defaultChecked:E.filterPrivateMentions,name:"filterPrivateMentions"})," ","Who unsolicitedly private mention you"]})}),e("p",{children:e("button",{type:"submit",children:"Save"})})]})})]})})]})}function Ha(){return!!document.querySelector(".deck-backdrop, #modal-container > *")}function Va({announcement:t}){const{instance:n}=Q(),{contact:i}=us(),s=i==null?void 0:i.account,{id:o,content:a,startsAt:h,endsAt:d,published:r,allDay:u,publishedAt:f,updatedAt:c,read:p,mentions:l,statuses:b,tags:m,emojis:k,reactions:g}=t,y=new Date(f),C=ot(y),v=new Date(c),I=ot(v);return e("div",{class:"announcement-block",children:[e(Xe,{account:s}),e("div",{class:"announcement-content",onClick:ws({mentions:l,instance:n}),dangerouslySetInnerHTML:{__html:on(a,{emojis:k})}}),e("p",{class:"insignificant",children:[e("time",{datetime:y.toISOString(),children:ot(y)}),c&&I!==C&&e(_,{children:[" ","•"," ",e("span",{class:"ib",children:["Updated"," ",e("time",{datetime:v.toISOString(),children:ot(v)})]})]})]}),e("div",{class:"announcement-reactions",hidden:!0,children:g.map(x=>{const{name:L,count:Y,me:j,staticUrl:M,url:ee}=x;return e("button",{type:"button",class:`plain4 small ${j?"reacted":""}`,children:[ee||M?e("img",{src:ee||M,alt:L,width:"16",height:"16"}):e("span",{children:L})," ",e("span",{class:"count",children:Ge(Y)})]})})})]})}function Ga(t){const{masto:n}=Q();return n.v1.notifications.list({accountID:t})}function Ya({request:t}){var c;const{instance:n}=Q(),[i,s]=$("loading"),{account:o,lastStatus:a}=t,[h,d]=$(!1),[r,u]=$([]);function f(){d(!1)}return G(()=>{var p;(p=t==null?void 0:t.account)!=null&&p.id&&h&&(s("loading"),(async()=>{const l=await Ga(t.account.id);u(l||[]),s("default")})())},[h,(c=t==null?void 0:t.account)==null?void 0:c.id]),e(_,{children:[e("button",{type:"button",class:"plain4 request-notifications-account",onClick:()=>{d(!0)},children:[e(w,{icon:"notification",class:"more-insignificant"})," ",e("small",{children:["View notifications from @",o.username]})," ",e(w,{icon:"chevron-down"})]}),h&&e(Ae,{onClick:p=>{p.target===p.currentTarget&&f()},children:e("div",{class:"sheet",tabIndex:"-1",children:[e("button",{type:"button",class:"sheet-close",onClick:f,children:e(w,{icon:"x"})}),e("header",{children:e("b",{children:["Notifications from @",o.username]})}),e("main",{children:i==="loading"?e("p",{class:"ui-state",children:e($e,{abrupt:!0})}):r.map(p=>e("div",{class:"notification-peek",onClick:l=>{const{target:b}=l;(l.target.tagName==="BUTTON"||l.target.tagName==="A")&&f()},children:e(Xt,{instance:n,notification:p,isStatic:!0})}))})]})})]})}function ja({request:t,onChange:n}){const{masto:i}=Q(),[s,o]=$("default"),[a,h]=$(null),d=a!==null;return e("p",{class:"notification-request-buttons",children:[e("button",{type:"button",disabled:s==="loading"||d,onClick:()=>{o("loading"),(async()=>{try{await i.v1.notifications.requests.$select(t.id).accept(),h("accept"),o("default"),n({request:t,state:"accept"}),se(`Notifications from @${t.account.username} will not be filtered from now on.`)}catch{o("error"),se("Unable to accept notification request")}})()},children:"Allow"})," ",e("button",{type:"button",disabled:s==="loading"||d,class:"light danger",onClick:()=>{o("loading"),(async()=>{try{await i.v1.notifications.requests.$select(t.id).dismiss(),h("dismiss"),o("default"),n({request:t,state:"dismiss"}),se(`Notifications from @${t.account.username} will not show up in Filtered notifications from now on.`)}catch{o("error"),se("Unable to dismiss notification request")}})()},children:"Dismiss"}),e("span",{class:"notification-request-states",children:s==="loading"?e($e,{abrupt:!0}):a==="accept"?e(w,{icon:"check-circle",alt:"Accepted",class:"notification-accepted"}):a==="dismiss"&&e(w,{icon:"x-circle",alt:"Dismissed",class:"notification-dismissed"})})]})}const Hs=Je(qa),Wa=20;function ln({local:t,columnMode:n,...i}){const s=Me(T),o=!!t,a=n?{}:gt(),{masto:h,instance:d}=Q({instance:(i==null?void 0:i.instance)||a.instance}),{masto:r,instance:u}=Q(),f=`${o?"Local":"Federated"} timeline (${d})`;He(f,o?"/:instance?/p/l":"/:instance?/p");const c=z(),p=z();async function l(m){(m||!p.current)&&(p.current=h.v1.timelines.public.list({limit:Wa,local:o,remote:!o}));const k=await p.current.next();let{value:g}=k;return g!=null&&g.length&&(m&&(c.current=g[0].id),g.forEach(y=>{qe(y,d)})),{...k,value:g}}async function b(){var m;try{const k=await h.v1.timelines.public.list({limit:1,local:o,since_id:c.current}).next();let{value:g}=k;const y=((m=g[0])==null?void 0:m.id)===c.current;return g!=null&&g.length&&!y?(g=$t(g,"public"),!0):!1}catch{return!1}}return e(dt,{title:f,titleComponent:e("h1",{class:"header-double-lines",children:[e("b",{children:o?"Local timeline":"Federated timeline"}),e("div",{children:d})]}),id:"public",instance:d,emptyText:"No one has posted anything yet.",errorText:"Unable to load posts",fetchItems:l,checkForUpdates:b,useItemID:!0,headerStart:e(_,{}),boostsCarousel:s.settings.boostsCarousel,filterContext:"public",headerEnd:e(Ze,{portal:!0,overflow:"auto",viewScroll:"close",position:"anchor",menuButton:e("button",{type:"button",class:"plain",children:e(w,{icon:"more",size:"l"})}),children:[e(de,{href:o?`/#/${d}/p`:`/#/${d}/p/l`,children:o?e(_,{children:[e(w,{icon:"transfer"})," ",e("span",{children:"Switch to Federated"})]}):e(_,{children:[e(w,{icon:"transfer"})," ",e("span",{children:"Switch to Local"})]})}),e(ze,{}),e(de,{onClick:()=>{let m=prompt('Enter a new instance e.g. "mastodon.social"');if(!/\./.test(m)){m&&alert("Invalid instance");return}m&&(m=m.toLowerCase().trim(),location.hash=o?`/${m}/p/l`:`/${m}/p`)},children:[e(w,{icon:"bus"})," ",e("span",{children:"Go to another instance…"})]}),u!==d&&e(de,{onClick:()=>{location.hash=o?`/${u}/p/l`:`/${u}/p`},children:[e(w,{icon:"bus"})," ",e("small",{class:"menu-double-lines",children:["Go to my instance (",e("b",{children:u}),")"]})]})]})},d+o)}const zt=5,sn=40,Ka=new URLSearchParams;function Vs({columnMode:t,...n}){const i=t?{}:gt(),{masto:s,instance:o,authenticated:a}=Q({instance:i.instance}),[h,d]=$("default"),[r]=t?[Ka]:it(),u=z(),f=(n==null?void 0:n.query)||r.get("q"),c=t?"statuses":(n==null?void 0:n.type)||r.get("type");He(f?`Search: ${f}${c?` (${{statuses:"Posts",accounts:"Accounts",hashtags:"Hashtags"}[c]})`:""}`:"Search","/search");const[p,l]=$(!1),b=z(0);G(()=>{b.current=0},[f,c]);const m=z();lt(()=>{var A,P;(P=(A=m.current)==null?void 0:A.scrollTo)==null||P.call(A,0,0)},[f,c]);const[k,g]=$([]),[y,C]=$([]),[v,I]=$([]);G(()=>{g([]),C([]),I([])},[f]);const x={statuses:g,accounts:C,hashtags:I},[L,Y]=$({}),j=async A=>{if(!(A!=null&&A.length))return;const P=await bn(A,L);P&&Y({...L,...P})};function M(A){A&&(b.current=0),!(!A&&!a)&&(d("loading"),A&&!c&&(g(k.slice(0,zt)),C(y.slice(0,zt)),I(v.slice(0,zt))),(async()=>{var E,U;const P={q:f,resolve:a,limit:zt};c&&(P.limit=sn,P.type=c,a&&(P.offset=b.current));try{const V=await s.v2.search.fetch(P);if(c)if(A){x[c](V[c]);const ye=(E=V[c])==null?void 0:E.length;b.current=sn,l(!!ye)}else{x[c](ve=>[...ve,...V[c]]);const ye=(U=V[c])==null?void 0:U.length;b.current=b.current+sn,l(!!ye)}else g(V.statuses||[]),C(V.accounts||[]),I(V.hashtags||[]),b.current=0,l(!1);j(V.accounts),d("default")}catch{d("error")}})())}const ee=z();Ct(A=>{var E;const P=((E=m.current)==null?void 0:E.scrollTop)===0;if(A&&P){const U=Date.now()-ee.current;!ee.current||U>1e3*3?M(!0):ee.current=Date.now()}}),G(()=>{var A,P,E,U;(P=(A=u.current)==null?void 0:A.setValue)==null||P.call(A,f||""),f?M(!0):(U=(E=u.current)==null?void 0:E.focus)==null||U.call(E)},[f,c,o]),_e(["/","Slash"],A=>{var P,E,U,V;(E=(P=u.current)==null?void 0:P.focus)==null||E.call(P),(V=(U=u.current)==null?void 0:U.select)==null||V.call(U)},{preventDefault:!0});const[X]=pn();return e("div",{id:"search-page",class:"deck-container",ref:m,children:e("div",{class:"timeline-deck deck",children:[e("header",{class:h==="loading"?"loading":"",children:e("div",{class:"header-grid",children:[e("div",{class:"header-side",children:e(yt,{})}),e(Ms,{ref:u}),e("div",{class:"header-side",children:e("button",{type:"button",class:"plain",onClick:()=>{M(!0)},disabled:h==="loading",children:e(w,{icon:"search",size:"l"})})})]})}),e("main",{children:[!!f&&!t&&e("div",{ref:X,class:`filter-bar ${h==="loading"?"loading":""}`,children:[!!c&&e(oe,{to:`/search${f?`?q=${encodeURIComponent(f)}`:""}`,children:"‹ All"}),[{label:"Accounts",type:"accounts",to:`/search?q=${encodeURIComponent(f)}&type=accounts`},{label:"Hashtags",type:"hashtags",to:`/search?q=${encodeURIComponent(f)}&type=hashtags`},{label:"Posts",type:"statuses",to:`/search?q=${encodeURIComponent(f)}&type=statuses`}].sort((A,P)=>A.type===c?-1:P.type===c?1:0).map(A=>e(oe,{to:A.to,children:A.label},A.type))]}),f?e(_,{children:[(!c||c==="accounts")&&e(_,{children:[c!=="accounts"&&e("h2",{class:"timeline-header",children:["Accounts"," ",e(oe,{to:`/search?q=${encodeURIComponent(f)}&type=accounts`,children:e(w,{icon:"arrow-right",size:"l"})})]}),y.length>0?e(_,{children:[e("ul",{class:"timeline flat accounts-list",children:y.map(A=>e("li",{children:e(Xe,{account:A,instance:o,showStats:!0,relationship:L[A.id]})},A.id))}),c!=="accounts"&&e("div",{class:"ui-state",children:e(oe,{class:"plain button",to:`/search?q=${encodeURIComponent(f)}&type=accounts`,children:["See more accounts ",e(w,{icon:"arrow-right"})]})})]}):!c&&(h==="loading"?e("p",{class:"ui-state",children:e($e,{abrupt:!0})}):e("p",{class:"ui-state",children:"No accounts found."}))]}),(!c||c==="hashtags")&&e(_,{children:[c!=="hashtags"&&e("h2",{class:"timeline-header",children:["Hashtags"," ",e(oe,{to:`/search?q=${encodeURIComponent(f)}&type=hashtags`,children:e(w,{icon:"arrow-right",size:"l"})})]}),v.length>0?e(_,{children:[e("ul",{class:"link-list hashtag-list",children:v.map(A=>{var V;const{name:P,history:E}=A,U=(V=E==null?void 0:E.reduce)==null?void 0:V.call(E,(ye,ve)=>ye+ +ve.uses,0);return e("li",{children:e(oe,{to:o?`/${o}/t/${P}`:`/t/${P}`,children:[e(w,{icon:"hashtag"}),e("span",{children:P}),!!U&&e("span",{class:"count",children:Ge(U)})]})},`${P}-${U}`)})}),c!=="hashtags"&&e("div",{class:"ui-state",children:e(oe,{class:"plain button",to:`/search?q=${encodeURIComponent(f)}&type=hashtags`,children:["See more hashtags ",e(w,{icon:"arrow-right"})]})})]}):!c&&(h==="loading"?e("p",{class:"ui-state",children:e($e,{abrupt:!0})}):e("p",{class:"ui-state",children:"No hashtags found."}))]}),(!c||c==="statuses")&&e(_,{children:[c!=="statuses"&&e("h2",{class:"timeline-header",children:["Posts"," ",e(oe,{to:`/search?q=${encodeURIComponent(f)}&type=statuses`,children:e(w,{icon:"arrow-right",size:"l"})})]}),k.length>0?e(_,{children:[e("ul",{class:"timeline",children:k.map(A=>e("li",{children:e(oe,{class:"status-link",to:o?`/${o}/s/${A.id}`:`/s/${A.id}`,children:e(Be,{status:A})})},A.id))}),c!=="statuses"&&e("div",{class:"ui-state",children:e(oe,{class:"plain button",to:`/search?q=${encodeURIComponent(f)}&type=statuses`,children:["See more posts ",e(w,{icon:"arrow-right"})]})})]}):!c&&(h==="loading"?e("p",{class:"ui-state",children:e($e,{abrupt:!0})}):e("p",{class:"ui-state",children:"No posts found."}))]}),!!c&&(h==="default"?p?e(rt,{onChange:A=>{A&&M()},children:e("button",{type:"button",class:"plain block",onClick:()=>M(),style:{marginBlockEnd:"6em"},children:"Show more…"})}):e("p",{class:"ui-state insignificant",children:"The end."}):h==="loading"&&e("p",{class:"ui-state",children:e($e,{abrupt:!0})}))]}):h==="loading"?e("p",{class:"ui-state",children:e($e,{abrupt:!0})}):e("p",{class:"ui-state",children:"Enter your search term or paste a URL above to get started."})]})]})})}const Za=20,Ja=ht(t=>t.v1.trends.links.list().next(),{maxAge:10*60*1e3});function Xa(t){return je("@pixelfed/trending")?t.pixelfed.v2.discover.posts.trending.list({range:"daily"}):t.v1.trends.statuses.list({limit:Za})}function Gs({columnMode:t,...n}){const i=Me(T),s=t?{}:gt(),{masto:o,instance:a}=Q({instance:(n==null?void 0:n.instance)||s.instance}),{masto:h,instance:d}=Q(),r=`Trending (${a})`;He(r,"/:instance?/trending");const u=z(),[f,c]=$([]),[p,l]=$([]),b=z();async function m(y){var I;if(y||!b.current){if(b.current=Xa(o),je("@mastodon/trending-hashtags"))try{const x=o.v1.trends.tags.list(),{value:L}=await x.next();L!=null&&L.length&&c(L)}catch{}if(je("@mastodon/trending-links"))try{const{value:x}=await Ja(o,a),L=(I=x==null?void 0:x.filter)==null?void 0:I.call(x,Y=>Y.type==="link");L!=null&&L.length&&l(L)}catch{}}const C=await b.current.next();let{value:v}=C;return v!=null&&v.length&&(y&&(u.current=v[0].id),v.forEach(x=>{qe(x,a)})),{...C,value:v}}async function k(){try{const y=await o.v1.trends.statuses.list({limit:1}).next();let{value:C}=y;return C=$t(C,"public"),C!=null&&C.length&&C[0].id!==u.current?(u.current=C[0].id,!0):!1}catch{return!1}}const g=pe(()=>e(_,{children:[!!f.length&&e("div",{class:"filter-bar expandable",children:[e(w,{icon:"chart",class:"insignificant",size:"l"}),f.map((y,C)=>{const{name:v,history:I}=y,x=I.reduce((L,Y)=>L+ +Y.uses,0);return e(oe,{to:`/${a}/t/${v}`,children:[e("span",{children:[e("span",{class:"more-insignificant",children:"#"}),v]}),e("span",{class:"filter-count",children:Ge(x)})]},v)})]}),!!p.length&&e("div",{class:"links-bar",children:[e("header",{children:e("h3",{children:"Trending News"})}),p.map(y=>{const{authorName:C,authorUrl:v,blurhash:I,description:x,height:L,image:Y,imageDescription:j,language:M,providerName:ee,providerUrl:X,publishedAt:A,title:P,url:E,width:U}=y,V=xt.toUnicode(new URL(E).hostname.replace(/^www\./,"").replace(/\/$/,""));let ye;if(I){const ve=fn(I),fe=Sn(ve);ye=In([.6,fe[1],fe[2]])}return e("a",{href:E,target:"_blank",rel:"noopener noreferrer",style:ye?{"--accent-color":`rgb(${ye.join(",")})`,"--accent-alpha-color":`rgba(${ye.join(",")}, 0.4)`}:{},children:e("article",{children:[e("figure",{children:e("img",{src:Y,alt:j,width:U,height:L,loading:"lazy"})}),e("div",{class:"article-body",children:[e("header",{children:[e("div",{class:"article-meta",children:[e("span",{class:"domain",children:V})," ",!!A&&e(_,{children:"· "}),!!A&&e(_,{children:e(bt,{datetime:A,format:"micro"})})]}),!!P&&e("h1",{class:"title",lang:M,dir:"auto",title:P,children:P})]}),!!x&&e("p",{class:"description",lang:M,dir:"auto",title:x,children:x})]})]})},E)})]})]}),[f,p]);return e(dt,{title:r,titleComponent:e("h1",{class:"header-double-lines",children:[e("b",{children:"Trending"}),e("div",{children:a})]}),id:"trending",instance:a,emptyText:"No trending posts.",errorText:"Unable to load posts",fetchItems:m,checkForUpdates:k,checkForUpdatesInterval:5*60*1e3,useItemID:!0,headerStart:e(_,{}),boostsCarousel:i.settings.boostsCarousel,filterContext:"public",timelineStart:g,headerEnd:e(Ze,{portal:!0,overflow:"auto",viewScroll:"close",position:"anchor",menuButton:e("button",{type:"button",class:"plain",children:e(w,{icon:"more",size:"l"})}),children:[e(de,{onClick:()=>{let y=prompt('Enter a new instance e.g. "mastodon.social"');if(!/\./.test(y)){y&&alert("Invalid instance");return}y&&(y=y.toLowerCase().trim(),location.hash=`/${y}/trending`)},children:[e(w,{icon:"bus"})," ",e("span",{children:"Go to another instance…"})]}),d!==a&&e(de,{onClick:()=>{location.hash=`/${d}/trending`},children:[e(w,{icon:"bus"})," ",e("small",{class:"menu-double-lines",children:["Go to my instance (",e("b",{children:d}),")"]})]})]})},a)}function Qa(){He("Home","/");const t=Me(T),{shortcuts:n}=t,i=n.map(s=>{if(!s)return null;const{type:o,...a}=s,h={following:Tn,notifications:Hs,list:Os,public:ln,bookmarks:Ds,favourites:Ns,hashtag:Fs,mentions:qs,trending:Gs,search:Vs}[o];return!h||o==="search"&&!a.query||o==="list"&&!a.id?null:e(h,{...a,columnMode:!0},o+JSON.stringify(a))});return _e(["1","2","3","4","5","6","7","8","9"],(s,o)=>{try{const a=parseInt(o.keys[0],10)-1;document.querySelectorAll("#columns > *")[a].focus()}catch{}}),e("div",{id:"columns",onContextMenu:s=>{s.target.closest(".deck > header")&&!s.target.closest("a")&&!s.target.closest("button")&&(s.preventDefault(),T.showShortcutsSettings=!0)},children:i})}function ec(){var n;const t=Me(T);return G(()=>{(async()=>{const i=await nt.drafts.keys();if(i.length){const s=jt();i.filter(a=>a.startsWith(s)).length&&(T.showDrafts=!0)}})()},[]),e(_,{children:(t.settings.shortcutsViewMode==="multi-column"||!t.settings.shortcutsViewMode&&t.settings.shortcutsColumnsMode)&&((n=t.shortcuts)!=null&&n.length)?e(Qa,{}):e(Tn,{title:"Home",path:"/",id:"home",headerStart:!1,headerEnd:e(tc,{})})})}function tc(){const t=Me(T),n=z(),[i,s]=$(void 0);return e(_,{children:[e(oe,{ref:n,to:"/notifications",class:`button plain notifications-button ${t.notificationsShowNew?"has-badge":""} ${i||""}`,onClick:o=>{o.stopPropagation(),window.matchMedia("(min-width: calc(40em))").matches&&(o.preventDefault(),s(a=>a?void 0:"open"))},children:e(w,{icon:"notification",size:"l",alt:"Notifications"})}),e(ic,{state:i,anchorRef:n,onClose:()=>s(void 0)})]})}const nc=80,sc=5;function ic({anchorRef:t,state:n,onClose:i}){const{masto:s,instance:o}=Q(),a=Me(T),[h,d]=$("default"),r=s.v1.notifications.list({limit:nc});async function u(){const b=await r.next(),m=b.value;if(m!=null&&m.length){m.forEach(g=>{qe(g.status,o,{skipThreading:!0})});const k=Bs(m);T.notificationsLast=m[0],T.notifications=k,s.v1.markers.create({notifications:{lastReadId:m[0].id}}).catch(()=>{})}return T.notificationsShowNew=!1,T.notificationsLastFetchTime=Date.now(),b}const[f,c]=$(!1);function p(){return s.v1.followRequests.list({limit:1})}function l(){d("loading"),(async()=>{try{await u();const b=await p();c(!!(b!=null&&b.length)),d("default")}catch{d("error")}})()}return G(()=>{n==="open"&&l()},[n]),e(ms,{menuClassName:"notifications-menu",state:n,anchorRef:t,onClose:i,portal:{target:document.body},overflow:"auto",viewScroll:"close",position:"anchor",align:"center",boundingBoxPadding:"8 8 8 8",children:[e("header",{children:e("h2",{children:"Notifications"})}),e("main",{children:a.notifications.length?e(_,{children:a.notifications.slice(0,sc).map(b=>e(Xt,{instance:o,notification:b,disableContextMenu:!0},b.id))}):h==="loading"?e("div",{class:"ui-state",children:e($e,{abrupt:!0})}):h==="error"&&e("div",{class:"ui-state",children:[e("p",{children:"Unable to fetch notifications."}),e("p",{children:e("button",{type:"button",onClick:l,children:"Try again"})})]})}),e("footer",{children:[e(oe,{to:"/mentions",class:"button plain",children:[e(w,{icon:"at"})," ",e("span",{children:"Mentions"})]}),e(oe,{to:"/notifications",class:"button plain2",children:[f?e(_,{children:[e("span",{class:"tag collapsed",children:"New"})," ",e("span",{children:"Follow Requests"})]}):e("b",{children:"See all"})," ",e(w,{icon:"arrow-right"})]})]})]})}const oc=Je(ec),ac=[/^\/@[^@\/]+\/(?:statuses|posts)\/([^\/]+)/i,/\/notes\/([^\/]+)/i,/^\/(?:notice|objects)\/([a-z0-9-]+)/i,/\/@[^@\/]+@?[^\/]+?\/([^\/]+)/i,/^\/p\/[^\/]+\/([^\/]+)/i];function Ys(t){const{hostname:n,pathname:i}=new URL(t);for(const s of ac){const[,o]=i.match(s)||[];if(o)return{instance:n,id:o}}return{}}function cc(t){const{instance:n,id:i}=Ys(t);return n&&i?`/${n}/s/${i}`:null}function rc(){const n=Tt().pathname.replace(/^\//,""),i=Ys(n),s=i!=null&&i.instance?`/${i.instance}/s/${i.id}`:null,[o,a]=$("loading");return lt(()=>{a("loading"),(async()=>{try{const{instance:h,id:d}=i,{masto:r}=Q({instance:h});if(await r.v1.statuses.$select(d).fetch()){window.location.hash=s+"?view=full";return}}catch{}{const{masto:h,instance:d}=Q(),r=await h.v2.search.fetch({q:n,limit:1,resolve:!0});if(r.statuses.length){const u=r.statuses[0];window.location.hash=`/${d}/s/${u.id}?view=full`}else if(r.accounts.length){const u=r.accounts[0];window.location.hash=`/${d}/a/${u.id}`}else s?window.location.hash=s+"?view=full":a("error")}})()},[s]),e("div",{class:"ui-state",tabIndex:"-1",children:[o==="loading"?e(_,{children:[e($e,{abrupt:!0}),e("h2",{children:"Resolving…"}),e("p",{children:e("a",{href:n,target:"_blank",rel:"noopener noreferrer",children:n})})]}):e(_,{children:[e("h2",{children:"Unable to resolve URL"}),e("p",{children:e("a",{href:n,target:"_blank",rel:"noopener noreferrer",children:n})})]}),e("hr",{}),e("p",{children:e(oe,{to:"/",children:"Go home"})})]})}function lc(){He("Lists","/l");const[t,n]=$("default"),[i,s]=mt(r=>r+1,0),[o,a]=$([]);G(()=>{n("loading"),(async()=>{try{const r=await cn();a(r),n("default")}catch{n("error")}})()},[i]);const[h,d]=$(!1);return e("div",{id:"lists-page",class:"deck-container",tabIndex:"-1",children:[e("div",{class:"timeline-deck deck",children:[e("header",{children:e("div",{class:"header-grid",children:[e("div",{class:"header-side",children:[e(yt,{}),e(oe,{to:"/",class:"button plain",children:e(w,{icon:"home",size:"l"})})]}),e("h1",{children:"Lists"}),e("div",{class:"header-side",children:e("button",{type:"button",class:"plain",onClick:()=>d(!0),children:e(w,{icon:"plus",size:"l",alt:"New list"})})})]})}),e("main",{children:o.length>0?e(_,{children:[e("ul",{class:"link-list",children:o.map(r=>e("li",{children:e(oe,{to:`/l/${r.id}`,children:e("span",{children:[e(w,{icon:"list"})," ",e("span",{children:r.title})]})})}))}),o.length>1&&e("footer",{class:"ui-state",children:e("small",{class:"insignificant",children:[o.length," list",o.length===1?"":"s"]})})]}):t==="loading"?e("p",{class:"ui-state",children:e($e,{})}):t==="error"?e("p",{class:"ui-state",children:"Unable to load lists."}):e("p",{class:"ui-state",children:"No lists yet."})})]}),h&&e(Ae,{onClick:r=>{r.target===r.currentTarget&&d(!1)},children:e(kn,{list:h==null?void 0:h.list,onClose:r=>{r.state==="success"&&s(),d(!1)}})})]})}const dc=""+new URL("instances-MzK7fGXv.json",import.meta.url).href;var uc={PHANPY_CLIENT_NAME:"Phanpy",PHANPY_WEBSITE:"https://phanpy.social",PHANPY_LINGVA_INSTANCES:"lingva.phanpy.social lingva.lunar.icu lingva.garudalinux.org translate.plausibility.cloud",PHANPY_PRIVACY_POLICY_URL:"https://github.com/cheeaun/phanpy/blob/main/PRIVACY.MD",VITE_APP_ENV:"production",BASE_URL:"./",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const{PHANPY_CLIENT_NAME:hc,PHANPY_WEBSITE:pc}=uc,xn="read write follow push";async function fc({instanceURL:t}){const n=new URLSearchParams({client_name:hc,redirect_uris:location.origin+location.pathname,scopes:xn,website:pc});return await(await fetch(`https://${t}/api/v1/apps`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n.toString()})).json()}async function mc({instanceURL:t,client_id:n}){const i=new URLSearchParams({client_id:n,scope:xn,redirect_uri:location.origin+location.pathname,response_type:"code"});return`https://${t}/oauth/authorize?${i.toString()}`}async function gc({instanceURL:t,client_id:n,client_secret:i,code:s}){const o=new URLSearchParams({client_id:n,client_secret:i,redirect_uri:location.origin+location.pathname,grant_type:"authorization_code",code:s,scope:xn});return await(await fetch(`https://${t}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:o.toString()})).json()}var bc={PHANPY_CLIENT_NAME:"Phanpy",PHANPY_WEBSITE:"https://phanpy.social",PHANPY_LINGVA_INSTANCES:"lingva.phanpy.social lingva.lunar.icu lingva.garudalinux.org translate.plausibility.cloud",PHANPY_PRIVACY_POLICY_URL:"https://github.com/cheeaun/phanpy/blob/main/PRIVACY.MD",VITE_APP_ENV:"production",BASE_URL:"./",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const{PHANPY_DEFAULT_INSTANCE:yc}=bc;function wc(){var y,C;He("Log in");const t=z(),n=be.local.get("instanceURL"),[i,s]=$("default"),[o]=it(),a=o.get("instance"),h=o.get("submit"),[d,r]=$(a||(n==null?void 0:n.toLowerCase())||""),[u,f]=$([]),c=z();G(()=>{(async()=>{try{const I=await(await fetch(dc)).json();f(I),c.current=new pi(I)}catch{}})()},[]);const p=v=>{v&&(be.local.set("instanceURL",v),(async()=>{s("loading");try{const{client_id:I,client_secret:x,vapid_key:L}=await fc({instanceURL:v});I&&x?(be.session.set("clientID",I),be.session.set("clientSecret",x),be.session.set("vapidKey",L),location.href=await mc({instanceURL:v,client_id:I})):alert("Failed to register application"),s("default")}catch{s("error")}})())},l=d?d.replace(/^https?:\/\//,"").replace(/\/+$/,"").replace(/^@?[^@]+@/,"").trim():null,b=/[^\s\r\n\t\/\\]+\.[^\s\r\n\t\/\\]+/.test(l)&&!/[\s\/\\@]/.test(l),m=l?(C=(y=c.current)==null?void 0:y.search(l,{limit:10}))==null?void 0:C.map(v=>v.item):[],k=b?l:m!=null&&m.length?m[0]:d?u.find(v=>v.includes(d)):null,g=v=>{v.preventDefault(),p(k)};return h&&G(()=>{p(a||k)},[]),e("main",{id:"login",style:{textAlign:"center"},children:e("form",{onSubmit:g,children:[e("h1",{children:[e("img",{src:wn,alt:"",width:"80",height:"80"}),e("br",{}),"Log in"]}),e("label",{children:[e("p",{children:"Instance"}),e("input",{value:d,required:!0,type:"text",class:"large",id:"instanceURL",ref:t,disabled:i==="loading",autocorrect:"off",autocapitalize:"off",autocomplete:"off",spellCheck:!1,placeholder:"instance domain",onInput:v=>{r(v.target.value)}}),(m==null?void 0:m.length)>0?e("ul",{id:"instances-suggestions",children:m.map((v,I)=>e("li",{children:e("button",{type:"button",class:"plain5",onClick:()=>{p(v)},children:v})}))}):e("div",{id:"instances-eg",children:"e.g. “mastodon.social”"})]}),i==="error"&&e("p",{class:"error",children:"Failed to log in. Please try again or another instance."}),e("div",{children:[e("button",{disabled:i==="loading"||!d||!k,children:k?`Continue with ${k}`:"Continue"})," "]}),e($e,{hidden:i!=="loading"}),e("hr",{}),!yc&&e("p",{children:e("a",{href:"https://joinmastodon.org/servers",target:"_blank",children:"Don't have an account? Create one!"})}),e("p",{children:e(oe,{to:"/",children:"Go home"})})]})})}const Bt=40,vc=10,kc=5;let dn={},Vt={},Gt={};function Yt(t){delete Vt[t],delete Gt[t]}const Rt={block:"nearest",inline:"center",behavior:"smooth"},ns=".status-link:not(details:not([open]) > summary ~ *, details:not([open]) > summary ~ * *), .status-focus:not(details:not([open]) > summary ~ *, details:not([open]) > summary ~ * *)",ss=/\/s\//i;function Sc(t){var v;const{id:n}=t,{masto:i,instance:s}=Q({instance:t.instance}),o=Me(T),[a,h]=it(),d=a.get("media"),r=a.get("media-only"),u=parseInt(d||r,10);let f=u>0;const c=a.get("mediaStatusID"),p=hs(c,s);c&&!p&&(f=!1);const l=f&&!!r,b=Ke(n,s),[m,k]=$(T.statuses[b]);G(()=>{T.statuses[b]&&k(T.statuses[b])},[b]);const g=pe(()=>{const{prevLocation:I}=T,x=((I==null?void 0:I.pathname)||"")+((I==null?void 0:I.search)||""),L=Et("/:instance/s/:id",x)||Et("/s/:id",x);return!x||L?"/":x},[]);G(()=>{!m&&f&&(async()=>{try{const I=await i.v1.statuses.$select(n).fetch();qe(I,s),k(I)}catch{alert("Unable to load post."),location.hash=g}})()},[f]);const y=c?(v=o.statuses[Ke(c,s)])==null?void 0:v.mediaAttachments:m==null?void 0:m.mediaAttachments,C=Qe(()=>{!window.matchMedia("(min-width: calc(40em + 350px))").matches&&o.prevLocation?history.back():l?location.hash=g:(a.delete("media"),a.delete("mediaStatusID"),h(a))},[l,g,o.prevLocation]);return G(()=>{let I=setTimeout(()=>{const x=document.querySelector(".carousel");x&&x.focus()},100);return()=>clearTimeout(I)},[l]),G(()=>{const I=document.querySelectorAll(".deck-container");return I.forEach(x=>{x.setAttribute("inert","")}),()=>{I.forEach(x=>{x.removeAttribute("inert")})}},[]),e("div",{class:"deck-backdrop",children:[f?y!=null&&y.length?e(Ls,{mediaAttachments:y,statusID:c||n,instance:s,lang:m==null?void 0:m.language,index:u-1,onClose:C}):e("div",{class:"media-modal-container loading",children:e($e,{abrupt:!0})}):e(oe,{to:g}),!l&&e(Cc,{id:n,instance:t.instance,closeLink:g})]})}function Ic(t){const{linkable:n,to:i,onClick:s,...o}=t;return n?e(oe,{class:"status-link",to:i,onClick:s,...o}):e("div",{class:"status-focus",tabIndex:0,...o})}function Cc({id:t,closeLink:n="/",instance:i}){var D,W;const[s,o]=it(),a=s.get("media"),h=s.get("mediaStatusID"),d=parseInt(a,10)>0,r=z(!T.prevLocation&&(history.length===1||"navigation"in window&&((W=(D=navigation==null?void 0:navigation.entries)==null?void 0:D.call(navigation))==null?void 0:W.length)===1)),[u,f]=$(s.get("view")||r.current?"full":null),c=!!parseInt(s.get("translate")),{masto:p,instance:l}=Q({instance:i}),{masto:b,instance:m,authenticated:k}=Q(),g=l===m,y=Me(T),[C,v]=$([]),[I,x]=$("default"),L=z(),Y=Ke(t,l),j=z(0),M=z();G(()=>{var R;(R=M.current)==null||R.focus()},[]),G(()=>{var q;const R=bs(()=>{if(!M.current)return;const{scrollTop:Z}=M.current;I!=="loading"&&(Gt[t]=Z)},50);return(q=M.current)==null||q.addEventListener("scroll",R,{passive:!0}),R(),()=>{var Z;R.cancel(),(Z=M.current)==null||Z.removeEventListener("scroll",R)}},[t,I!=="loading"]);const ee=z(),X=z(),A=({reloadHero:R}={})=>{x("loading");let q;const Z=Vt[t];if(Z){const ce=Z.filter(De=>T.statuses[Y]);v(ce)}else v([{id:t}]);return(async()=>{var B,O;const ce=()=>Ln(()=>p.v1.statuses.$select(t).fetch(),{retries:4}),De=Ln(()=>p.v1.statuses.$select(t).context.fetch(),{retries:8}),S=!!y.statuses[Y];let N=y.statuses[Y];if(!(S&&!R))try{N=await ce(),qe(N,l),await new Promise(K=>{setTimeout(K,100)})}catch{x("error");return}try{let K=function(H){return H==null?void 0:H.map(we=>({id:we.id,account:we.account,repliesCount:we.repliesCount,content:we.content,weight:Lt(we),replies:K(we.__replies)}))};const ge=await De,{ancestors:le,descendants:ie}=ge;j.current=(ie==null?void 0:ie.length)||0;const Ce=new Set;le.forEach(H=>{qe(H,l,{skipThreading:!0}),H.inReplyToId&&!le.find(we=>we.id===H.inReplyToId)&&Ce.add(H.inReplyToId)});const Ne=le.every(H=>H.account.id===N.account.id),Oe=[];ie.forEach(H=>{if(qe(H,l,{skipThreading:!0}),H.inReplyToId&&!ie.find(we=>we.id===H.inReplyToId)&&H.inReplyToId!==N.id&&Ce.add(H.inReplyToId),H.inReplyToAccountId===H.account.id)Oe.push(H);else if(H.inReplyToId===N.id)Oe.push(H);else if(!H.inReplyToAccountId&&Oe.find(we=>we.id===H.inReplyToId)&&H.account.id===N.account.id)Oe.push(H);else{const we=ie.find(tt=>tt.id===H.inReplyToId);we&&(we.__replies||(we.__replies=[]),we.__replies.push(H))}}),Ce.size;const Ee=[...le.map(H=>({id:H.id,ancestor:!0,isThread:Ne,accountID:H.account.id,account:H.account,repliesCount:H.repliesCount,weight:Lt(H)})),{id:t,accountID:N.account.id,weight:Lt(N)},...Oe.map(H=>({id:H.id,account:H.account,accountID:H.account.id,descendant:!0,thread:H.account.id===N.account.id,weight:Lt(H),replies:K(H.__replies)}))];x("default"),ee.current={offsetTop:(B=L.current)==null?void 0:B.offsetTop,scrollTop:(O=M.current)==null?void 0:O.scrollTop};const Ve=Ee.findIndex(H=>H.id===t);Ve>=ne&&me(Ve+1),v(Ee),Vt[t]=Ee,Qs(N,l)}catch{x("error")}})(),X.current=Date.now(),()=>{clearTimeout(q)}};G(A,[t,p]);const[P,E]=$(!1);G(()=>{let R=setInterval(()=>{const q=Date.now();X.current&&q-X.current>=6e4&&E(!0)},6e4);return()=>{clearInterval(R)}},[]),lt(()=>{var q,Z;if(!C.length)return;const R=Gt[t];if(R)M.current.scrollTop=R;else if(ee.current){const ce={offsetTop:(q=L.current)==null?void 0:q.offsetTop,scrollTop:(Z=M.current)==null?void 0:Z.scrollTop},De=ce.offsetTop-ee.current.offsetTop+ce.scrollTop;M.current.scrollTop=De}else C.length===1&&(M.current.scrollTop=0);ee.current=null},[C]),G(()=>{y.reloadStatusPage<=0||(async()=>{try{const{instanceURL:R}=St(),q=`https://${R}/api/v1/statuses/${t}/context`;return await(await caches.open("api")).delete(q,{ignoreVary:!0}),A({reloadHero:!0})}catch{}})()},[y.reloadStatusPage]),G(()=>()=>{Gt={},T.reloadStatusPage=0,Vt={},dn={},un.clear()},[]);const U=y.statuses[Y]||y.statuses[t],V=pe(()=>{if(!U)return"";const{account:R}=U,q=document.createElement("div");return q.innerHTML=R.displayName,q.innerText.trim()},[U]),ye=pe(()=>{if(!U)return"";let R=yn(U);return R.length>64&&(R=R.slice(0,64)+"…"),R},[U]);He(V&&ye?`${V}: "${ye}"`:"Status","/:instance?/s/:id");const ve=pe(()=>{if(!U)return;const{url:R}=U;if(R)return new URL(R).hostname},[U]),fe=pe(()=>{if(ve)return ve===l},[ve,l]),[ne,me]=$(Bt),ue=pe(()=>C.length-ne,[C.length,ne]),he=C.some(R=>R.descendant),ke=C.filter(R=>R.ancestor),[Le,Te]=$(!0),Pe=pe(()=>{if(!L.current||Le)return null;const{top:R}=L.current.getBoundingClientRect();return R>0?"down":"up"},[Le]);_e("esc",()=>{location.hash=n},{enabled:!d,ignoreEventWhen:R=>!!document.querySelector("#modal-container > *")}),_e("backspace",()=>{location.hash=n}),_e("j",()=>{const R=document.activeElement.closest(".status-link, .status-focus"),q=R==null?void 0:R.getBoundingClientRect(),Z=Array.from(M.current.querySelectorAll(ns));if(R&&q.top0){const ce=Z.indexOf(R);let De=Z[ce+1];De&&(De.focus(),De.scrollIntoView(Rt))}else{const ce=Z.find(De=>{const S=De.getBoundingClientRect();return S.top>=44&&S.left>=0});ce&&(ce.focus(),ce.scrollIntoView(Rt))}}),_e("k",()=>{const R=document.activeElement.closest(".status-link, .status-focus"),q=R==null?void 0:R.getBoundingClientRect(),Z=Array.from(M.current.querySelectorAll(ns));if(R&&q.top0){const ce=Z.indexOf(R);let De=Z[ce-1];De&&(De.focus(),De.scrollIntoView(Rt))}else{const ce=Z.find(De=>{const S=De.getBoundingClientRect();return S.top>=44&&S.left>=0});ce&&(ce.focus(),ce.scrollIntoView(Rt))}}),_e("x",()=>{const R=document.activeElement.closest(".status-link, .status-focus");if(R){const q=R.nextElementSibling;q&&q.tagName.toLowerCase()==="details"&&(q.open=!q.open)}});const[Fe,xe]=$(!1),J=z(d?"media+status":"status"),ae=Qe((R,q,Z,ce)=>{R.preventDefault(),R.stopPropagation(),o({media:q+1,mediaStatusID:ce.id})},[t]),te=Qe((R,q)=>{Yt(q.id)},[]);G(()=>{let R;return h&&d&&(R=setTimeout(()=>{var Z;const q=(Z=M.current)==null?void 0:Z.querySelector(`.status-link[href*="/${h}"]`);q&&q.scrollIntoView(Rt)},400)),()=>{clearTimeout(R)}},[h,d]);const Se=Qe((R,q)=>{const{id:Z,ancestor:ce,isThread:De,descendant:S,thread:N,replies:B,repliesCount:O,weight:K}=R,ge=Z===t;return e("li",{ref:ge?L:null,class:`${ce?"ancestor":""} ${S?"descendant":""} ${N?"thread":""} ${ge?"hero":""}`,children:[ge?e(_,{children:[e(rt,{threshold:.1,onChange:ie=>{queueMicrotask(()=>{requestAnimationFrame(()=>{Te(ie)})})},class:"status-focus",tabIndex:0,children:e(Be,{statusID:Z,instance:l,withinContext:!0,size:"l",enableTranslate:!0,forceTranslate:c})}),I!=="loading"&&!k?e("div",{class:"post-status-banner",children:[e("p",{children:"You're not logged in. Interactions (reply, boost, etc) are not possible."}),e(oe,{to:"/login",class:"button",children:"Log in"})]}):!g&&e("div",{class:"post-status-banner",children:[e("p",{children:["This post is from another instance (",e("b",{children:l}),"). Interactions (reply, boost, etc) are not possible."]}),e("button",{type:"button",disabled:I==="loading",onClick:()=>{x("loading"),(async()=>{try{const ie=await b.v2.search.fetch({q:U.url,type:"statuses",resolve:!0,limit:1});if(ie.statuses.length){const Ce=ie.statuses[0];location.hash=m?`/${m}/s/${Ce.id}`:`/s/${Ce.id}`}else throw new Error("No results")}catch(ie){x("default"),alert("Error: "+ie)}})()},children:[e(w,{icon:"transfer"})," Switch to my instance to enable interactions"]})]})]}):e(Ic,{linkable:De||ce,to:l?`/${l}/s/${Z}`:`/s/${Z}`,onClick:()=>{Yt(Z)},children:[q===0&&ce?e(rt,{threshold:.5,onChange:ie=>{queueMicrotask(()=>{requestAnimationFrame(()=>{xe(ie)})})},children:e(Be,{statusID:Z,instance:l,withinContext:!0,size:N||ce?"m":"s",enableTranslate:!0,onMediaClick:ae,onStatusLinkClick:te})}):e(Be,{statusID:Z,instance:l,withinContext:!0,size:N||ce?"m":"s",enableTranslate:!0,onMediaClick:ae,onStatusLinkClick:te,showActionsBar:!!S}),ce&&O>1&&e("div",{class:"replies-link",children:[e(w,{icon:"comment2"})," ",e("span",{title:O,children:Ge(O)})]})," "]}),S&&(B==null?void 0:B.length)>0&&e(js,{instance:l,replies:B,hasParentThread:N,level:1,accWeight:K,openAll:j.currentYt(Z)}}),I==="loading"&&ge&&!!(U!=null&&U.repliesCount)&&!he&&e("div",{class:"status-loading",children:e($e,{abrupt:U.repliesCount>=3})}),I==="error"&&ge&&!!(U!=null&&U.repliesCount)&&!he&&e("div",{class:"status-error",children:["Unable to load replies.",e("br",{}),e("button",{type:"button",class:"plain",onClick:()=>{T.reloadStatusPage++},children:"Try again"})]})]},Z)},[t,l,I,k,g,c,ae,te,he]),Ie=pe(()=>{var R;if("navigation"in window&&(navigation!=null&&navigation.entries)){const q=navigation.entries()[navigation.currentEntry.index-1];if(q!=null&&q.url)return ss.test(q.url)}return ss.test((R=T.prevLocation)==null?void 0:R.pathname)},[Y]),F=pe(()=>{if(!ue)return[];const R=[];function q(Z){R.push(Z.id),Z.replies&&Z.replies.forEach(q)}return C.slice(ne).forEach(q),R.map(Z=>Ke(Z,l))},[ue,C,ne,l]),re=pe(()=>C.slice(0,ne).map(Se),[C,ne,Se]);return G(()=>{let R=setTimeout(()=>{if(!L.current)return;const q=L.current.querySelector(".spoiler-button:not(.spoiling), .spoiler-media-button:not(.spoiling)");q&&q.click()},1e3);return()=>clearTimeout(R)},[t]),e("div",{tabIndex:"-1",ref:M,class:`status-deck deck contained ${C.length>1?"padded-bottom":""} ${J.current==="status"&&!r.current?"slide-in":""} ${u?`deck-view-${u}`:""}`,onAnimationEnd:R=>{J.current==="status"&&(J.current=null)},children:[e("header",{class:`${I==="loading"?"loading":""}`,onDblClick:R=>{T.reloadStatusPage++},children:e("div",{class:"header-grid header-grid-2",children:[e("h1",{children:[Ie&&e("button",{type:"button",class:"plain deck-back",onClick:()=>{history.back()},children:e(w,{icon:"chevron-left",size:"xl"})}),!Le&&U&&I!=="loading"?e(_,{children:[e("span",{class:"hero-heading",children:[e(It,{account:U.account,instance:l,showAvatar:!0,short:!0})," ",e("span",{class:"insignificant",children:["•"," ",e(bt,{datetime:U.createdAt,format:"micro"})]})]})," ",e("button",{type:"button",class:"ancestors-indicator light small",onClick:R=>{R.preventDefault(),R.stopPropagation(),L.current.scrollIntoView({behavior:"smooth",block:"start"})},title:"Go to main post",children:e(w,{icon:Pe==="down"?"arrow-down":"arrow-up"})})]}):e(_,{children:["Post"," ",e("button",{type:"button",class:"ancestors-indicator light small",onClick:R=>{R.preventDefault(),R.stopPropagation(),M.current.scrollTo({top:0,behavior:"smooth"})},hidden:!ke.length||Fe,title:`${ke.length} posts above ‒ Go to top`,children:[e(w,{icon:"arrow-up"}),ke.filter((R,q,Z)=>Z.findIndex(ce=>ce.accountID===R.accountID)===q).slice(0,3).map(R=>e(st,{url:R.account.avatar,alt:R.account.displayName},R.account.id)),ke.length>3&&e(_,{children:[" ",e("span",{class:"insignificant",children:Ge(ke.length)})]})]})]})]}),e("div",{class:"header-side",children:[e("button",{type:"button",class:"plain4 button-switch-view",style:{display:u==="full"?"":"none"},onClick:()=>{f(null),s.delete("media"),s.delete("media-only"),s.delete("view"),o(s)},title:"Switch to Side Peek view",children:e(w,{icon:"layout4",size:"l"})}),P&&e("button",{type:"button",class:"plain button-refresh",onClick:()=>{T.reloadStatusPage++,E(!1)},children:e(w,{icon:"refresh",size:"l"})}),e(Ze,{align:"end",portal:{target:M.current},menuButton:e("button",{type:"button",class:"button plain4",children:e(w,{icon:"more",alt:"Actions",size:"xl"})}),children:[e(de,{disabled:I==="loading",onClick:()=>{T.reloadStatusPage++},children:[e(w,{icon:"refresh"}),e("span",{children:"Refresh"})]}),e(de,{className:"menu-switch-view",onClick:()=>{f(u==="full"?null:"full"),s.delete("media"),s.delete("media-only"),u==="full"?s.delete("view"):s.set("view","full"),o(s)},children:[e(w,{icon:{"":"layout5",full:"layout4"}[u||""]}),e("span",{children:["Switch to ",u==="full"?"Side Peek":"Full"," view"]})]}),e(de,{onClick:()=>{Array.from(M.current.querySelectorAll(".spoiler-button:not(.spoiling), .spoiler-media-button:not(.spoiling)")).forEach(q=>{q.click()})},children:[e(w,{icon:"eye-open"})," ",e("span",{children:"Show all sensitive content"})]}),e(ze,{}),e(gs,{className:"plain",children:"Experimental"}),e(de,{disabled:!ve||fe,onClick:()=>{const R=cc(U.url);R?location.hash=R:alert("Unable to switch")},children:[e(w,{icon:"transfer"}),e("small",{class:"menu-double-lines",children:["Switch to post's instance",ve?e(_,{children:[" ","(",e("b",{children:xt.toUnicode(ve)}),")"]}):""]})]})]}),e(oe,{class:"button plain deck-close",to:n,children:e(w,{icon:"x",size:"xl"})})]})]})}),C.length&&U?e("ul",{class:`timeline flat contextual grow ${I==="loading"?"loading":""}`,children:[re,ue>0&&e("li",{children:e("button",{type:"button",class:"plain block show-more",disabled:I==="loading",onClick:()=>me(R=>R+Bt),style:{marginBlockEnd:"6em"},"data-state-post-ids":F.join(" "),children:[e("div",{class:"ib avatars-bunch",children:C.slice(ne,ne+5).map(R=>e(st,{url:R.account.avatarStatic},R.id))})," ",e("div",{class:"ib",children:["Show more…"," ",e("span",{class:"tag",children:ue>Bt?`${Bt}+`:ue})]})]})})]}):e(_,{children:[I==="loading"&&e("ul",{class:"timeline flat contextual grow loading",children:e("li",{children:e(Be,{skeleton:!0,size:"l"})})}),I==="error"&&e("p",{class:"ui-state",children:["Unable to load post",e("br",{}),e("br",{}),e("button",{type:"button",onClick:()=>{T.reloadStatusPage++},children:"Try again"})]})]})]})}function js({replies:t,instance:n,hasParentThread:i,level:s,accWeight:o,openAll:a,parentLink:h}){const[d,r]=it(),u=y=>y.reduce((C,v)=>{const{repliesCount:I,replies:x}=v,L=(x==null?void 0:x.length)||I;return C+L+u(x||[])},0),f=t.length+u(t),c=t.length===f,p=t.map(y=>y.account).filter((y,C,v)=>v.findIndex(I=>I.id===y.id)===C).slice(0,3),l=pe(()=>t==null?void 0:t.reduce((y,C)=>y+(C==null?void 0:C.weight),o),[o,t==null?void 0:t.length]);let b=!1;(a||l<=kc||!i&&f===1&&Lt(t[0])<2)&&(b=!0);const m=dn[t[0].id],k=Qe((y,C,v,I)=>{y.preventDefault(),y.stopPropagation(),r({media:C+1,mediaStatusID:I.id})},[]),g=z();return lt(()=>{var C;function y(v){v.target.dataset.scrollLeft=v.target.scrollLeft}return(C=g.current)==null||C.addEventListener("scroll",y,{passive:!0}),()=>{var v;(v=g.current)==null||v.removeEventListener("scroll",y)}},[]),e("details",{ref:g,class:"replies",open:m||b,onToggle:y=>{const{open:C}=y.target;dn[t[0].id]=C},style:{"--comments-level":s},"data-comments-level":s,"data-comments-level-overflow":s>4,children:[e("summary",{class:"replies-summary",hidden:b,children:[e("span",{class:"avatars",children:p.map(y=>e(st,{url:y.avatarStatic,title:`${y.displayName} @${y.username}`,squircle:y==null?void 0:y.bot},y.id))}),e("span",{class:"replies-counts",children:[e("b",{children:[e("span",{title:t.length,children:Ge(t.length)})," ","repl",t.length===1?"y":"ies"]}),!c&&f>1&&e(_,{children:[" ","·"," ",e("span",{children:[e("span",{title:f,children:Ge(f)})," ","comment",f===1?"":"s"]})]})]}),e(w,{icon:"chevron-down",class:"replies-summary-chevron"}),!!h&&e(oe,{class:"replies-parent-link",to:h.to,onClick:h.onClick,title:"View post with its replies",children:"»"})]}),e("ul",{children:t.map(y=>{var C,v;return e("li",{children:[e("div",{class:"status-focus",tabIndex:0,children:[e(Be,{statusID:y.id,instance:n,withinContext:!0,size:"s",enableTranslate:!0,onMediaClick:k,showActionsBar:!0}),!((C=y.replies)!=null&&C.length)&&y.repliesCount>0&&e("div",{class:"replies-link",children:[e(w,{icon:"comment2"})," ",e("span",{title:y.repliesCount,children:Ge(y.repliesCount)})]})]}),((v=y.replies)==null?void 0:v.length)&&e(js,{instance:n,replies:y.replies,level:s+1,accWeight:b?l:y.weight,openAll:a,parentLink:{to:n?`/${n}/s/${y.id}`:`/s/${y.id}`,onClick:()=>{Yt(y.id)}}})]},y.id)})})]})}const Tc=140,xc=35,$c=70,Ac=140,un=new Map;function Lt(t){var l,b;const n=un.get(t.id);if(n)return n;const{spoilerText:i,content:s,mediaAttachments:o,poll:a,card:h}=t,d=Cs(i+s),r=o!=null&&o.length?Tc:0,u=(((l=a==null?void 0:a.options)==null?void 0:l.length)||0)*xc,f=h&&(o!=null&&o.length||(b=a==null?void 0:a.options)!=null&&b.length)?0:$c,p=(d+r+u+f)/Ac;return un.set(t.id,p),p}const Rc=Je(Sc);function _c(){const t=gt(),{id:n,instance:i}=t;return e(Rc,{id:n,instance:i})}const Lc=""+new URL("boosts-carousel-YjmjXTE6.jpg",import.meta.url).href,Ec=""+new URL("grouped-notifications-xYMFVY91.jpg",import.meta.url).href,Mc=""+new URL("multi-column-ETnJNDVb.jpg",import.meta.url).href,Pc=""+new URL("multi-hashtag-timeline-x-SDVR4g.jpg",import.meta.url).href,Dc=""+new URL("nested-comments-thread-Ib-fZGS3.jpg",import.meta.url).href,Nc="data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%20102%2028'%3e%3cpath%20fill='none'%20d='M0%200h101.5v27.5H0z'/%3e%3cg%20fill-rule='nonzero'%3e%3cpath%20fill='url(%23a)'%20d='M2.32%2021.85c1.4%200%202.21-.85%202.21-2.3v-4.64H8.5c4.45%200%207.54-2.9%207.54-7.24%200-4.35-2.98-7.24-7.32-7.24h-6.4C.93.43.11%201.28.11%202.73v16.82c0%201.45.82%202.3%202.21%202.3Zm2.21-10.4V3.94h3c2.54%200%204%201.34%204%203.75s-1.47%203.76-4%203.76h-3Z'/%3e%3cpath%20fill='url(%23b)'%20d='M20.52%2021.88c1.25%200%202.13-.76%202.13-2.23v-7.04c0-2.07%201.2-3.49%203.21-3.49%201.95%200%202.95%201.23%202.95%203.25v7.28c0%201.47.89%202.23%202.13%202.23%201.26%200%202.14-.76%202.14-2.23v-8.18c0-3.64-1.99-5.9-5.48-5.9-2.38%200-4.1%201.12-4.93%203.1h-.09V2.3c0-1.38-.78-2.2-2.1-2.2-1.31%200-2.1.82-2.1%202.2v17.34c0%201.47.9%202.23%202.14%202.23Z'/%3e%3cpath%20fill='url(%23c)'%20d='M40.45%2021.82c1.96%200%203.93-.98%204.8-2.65h.1v.8c.08%201.27.89%201.91%202.05%201.91%201.21%200%202.08-.73%202.08-2.15v-8.95c0-3.17-2.63-5.25-6.65-5.25-3.26%200-5.78%201.16-6.5%203.04-.15.32-.23.63-.23.96%200%20.97.75%201.64%201.79%201.64.69%200%201.23-.26%201.7-.79.95-1.23%201.74-1.65%203.04-1.65%201.62%200%202.64.85%202.64%202.31v1.04l-3.95.24c-3.93.23-6.13%201.88-6.13%204.74%200%202.83%202.27%204.76%205.26%204.76Zm1.4-3.09c-1.43%200-2.4-.73-2.4-1.9%200-1.12.91-1.83%202.51-1.95l3.31-.2v1.14c0%201.7-1.54%202.91-3.41%202.91Z'/%3e%3cpath%20fill='url(%23d)'%20d='M54.37%2021.88c1.26%200%202.14-.76%202.14-2.23v-7.09c0-2.03%201.21-3.44%203.13-3.44s2.89%201.17%202.89%203.22v7.31c0%201.47.88%202.23%202.14%202.23%201.24%200%202.13-.76%202.13-2.23v-8.2c0-3.68-1.96-5.87-5.45-5.87-2.41%200-4%201.07-4.83%203.01h-.09v-.87c0-1.35-.85-2.17-2.14-2.17-1.28%200-2.06.82-2.06%202.15v11.95c0%201.47.9%202.23%202.14%202.23Z'/%3e%3cpath%20fill='url(%23e)'%20d='M71.65%2027.17c1.26%200%202.14-.76%202.14-2.23v-6h.09a5.15%205.15%200%200%200%204.88%202.88c3.92%200%206.35-3.05%206.35-8.1%200-5.07-2.44-8.1-6.43-8.1a5.12%205.12%200%200%200-4.86%202.99h-.09v-.85c0-1.45-.88-2.21-2.1-2.21-1.24%200-2.11.76-2.11%202.2v17.2c0%201.46.89%202.22%202.13%202.22Zm5.6-8.8c-2.1%200-3.47-1.8-3.47-4.65%200-2.81%201.37-4.67%203.47-4.67%202.14%200%203.49%201.83%203.49%204.67%200%202.86-1.35%204.66-3.5%204.66Z'/%3e%3cpath%20fill='url(%23f)'%20d='M89.61%2027.39c3.44%200%205.26-1.5%206.73-5.55l4.81-13.1a4%204%200%200%200%20.24-1.26c0-1.13-.85-1.93-2.08-1.93-1.1%200-1.71.51-2.07%201.7l-3.4%2010.9h-.08L90.35%207.28c-.36-1.25-.94-1.73-2.07-1.73-1.26%200-2.21.83-2.21%201.99%200%20.35.09.82.25%201.26l5%2013.21-.21.56c-.52%201.1-1.32%201.42-2.07%201.42l-.75-.01c-.96%200-1.56.54-1.56%201.4%200%201.29%201%202%202.88%202Z'/%3e%3c/g%3e%3cdefs%3e%3cradialGradient%20id='a'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='b'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='c'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='d'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='e'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='f'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3c/defs%3e%3c/svg%3e";var Uc={PHANPY_CLIENT_NAME:"Phanpy",PHANPY_WEBSITE:"https://phanpy.social",PHANPY_LINGVA_INSTANCES:"lingva.phanpy.social lingva.lunar.icu lingva.garudalinux.org translate.plausibility.cloud",PHANPY_PRIVACY_POLICY_URL:"https://github.com/cheeaun/phanpy/blob/main/PRIVACY.MD",VITE_APP_ENV:"production",BASE_URL:"./",MODE:"production",DEV:!1,PROD:!0,SSR:!1};const{PHANPY_DEFAULT_INSTANCE:_t,PHANPY_WEBSITE:is,PHANPY_PRIVACY_POLICY_URL:Fc,PHANPY_DEFAULT_INSTANCE_REGISTRATION_URL:os}=Uc,as=is?is.replace(/https?:\/\//g,"").replace(/\/$/,""):null,cs=`${"2024-06-03T11:04:51.985Z".slice(0,10).replace(/-/g,".")}.0a6030c`;function rs(){return He(null,["/","/welcome"]),e("main",{id:"welcome",children:[e("div",{class:"hero-container",children:[e("div",{class:"hero-content",children:[e("h1",{children:[e("img",{src:wn,alt:"",width:"160",height:"160",style:{aspectRatio:"1/1",marginBlockEnd:-16}}),e("img",{src:Nc,alt:"Phanpy",width:"200"})]}),e("p",{class:"desc",children:"A minimalistic opinionated Mastodon web client."}),e("p",{children:e(oe,{to:_t?`/login?instance=${_t}&submit=1`:"/login",class:"button",children:_t?"Log in":"Log in with Mastodon"})}),_t&&os&&e("p",{children:e("a",{href:os,class:"button plain5",children:"Sign up"})}),!_t&&e("p",{class:"insignificant",children:e("small",{children:["Connect your existing Mastodon/Fediverse account.",e("br",{}),"Your credentials are not stored on this server."]})})]}),(as||cs)&&e("p",{class:"app-site-version",children:e("small",{children:[as," ",cs]})}),e("p",{children:[e("a",{href:"https://github.com/cheeaun/phanpy",target:"_blank",children:"Built"})," ","by"," ",e("a",{href:"https://mastodon.social/@cheeaun",target:"_blank",onClick:t=>{t.preventDefault(),T.showAccount="cheeaun@mastodon.social"},children:"@cheeaun"}),"."," ",e("a",{href:Fc,target:"_blank",children:"Privacy Policy"}),"."]})]}),e("div",{id:"why-container",children:e("div",{class:"sections",children:[e("section",{children:[e("img",{src:Lc,alt:"Screenshot of Boosts Carousel",loading:"lazy"}),e("h4",{children:"Boosts Carousel"}),e("p",{children:"Visually separate original posts and re-shared posts (boosted posts)."})]}),e("section",{children:[e("img",{src:Dc,alt:"Screenshot of nested comments thread",loading:"lazy"}),e("h4",{children:"Nested comments thread"}),e("p",{children:"Effortlessly follow conversations. Semi-collapsible replies."})]}),e("section",{children:[e("img",{src:Ec,alt:"Screenshot of grouped notifications",loading:"lazy"}),e("h4",{children:"Grouped notifications"}),e("p",{children:"Similar notifications are grouped and collapsed to reduce clutter."})]}),e("section",{children:[e("img",{src:Mc,alt:"Screenshot of multi-column UI",loading:"lazy"}),e("h4",{children:"Single or multi-column"}),e("p",{children:"By default, single column for zen-mode seekers. Configurable multi-column for power users."})]}),e("section",{children:[e("img",{src:Pc,alt:"Screenshot of multi-hashtag timeline with a form to add more hashtags",loading:"lazy"}),e("h4",{children:"Multi-hashtag timeline"}),e("p",{children:"Up to 5 hashtags combined into a single timeline."})]})]})})]})}const Oc=window.alert;window.__nativeAlert||(window.__nativeAlert=Oc);window.alert=function(t){t instanceof Error&&(t!=null&&t.message)&&(t=t.message),typeof t!="string"&&(t=JSON.stringify(t));const n=fi({text:t,className:"alert",gravity:"top",position:"center",duration:1e4,offset:{y:48},onClick:()=>{n.hideToast()}});n.showToast()};window.__STATES__=T;window.__STATES_STATS__=()=>{const t=["statuses","accounts","spoilers","unfurledLinks","statusQuotes"],n={};t.forEach(o=>{n[o]=Object.keys(T[o]).length});const{statuses:i}=T,s=[];for(const o in i)document.querySelector(`[data-state-post-id~="${o}"], [data-state-post-ids~="${o}"]`)||s.push(o)};setInterval(()=>{if(!window.__IDLE__)return;const{statuses:t,unfurledLinks:n,notifications:i}=T;let s=0;const{instance:o}=Q();for(const a in t){if(!window.__IDLE__)break;try{const h=document.querySelector(`[data-state-post-id~="${a}"], [data-state-post-ids~="${a}"]`),d=i.some(r=>{var u;return a===Ke((u=r.status)==null?void 0:u.id,o)});if(!h&&!d){delete T.statuses[a],delete T.statusQuotes[a];for(const r in n){const u=n[r];if(Ke(u.id,u.instance)===a){delete T.unfurledLinks[r];break}}s++}}catch{}}},15*60*1e3);setTimeout(()=>{for(const t in Nt)setTimeout(()=>{var n,i,s,o;Array.isArray(Nt[t])?(i=(n=Nt[t])[0])==null||i.call(n):(o=(s=Nt)[t])==null||o.call(s)},1)},5e3);(()=>{window.__IDLE__=!0;const t=["mousemove","mousedown","resize","keydown","touchstart","pointerdown","pointermove","wheel"],n=()=>{window.__IDLE__=!0},s=bs(n,3e3),o=()=>{window.__IDLE__=!1,s()};t.forEach(a=>{window.addEventListener(a,o,{passive:!0,capture:!0})}),window.addEventListener("blur",n,{passive:!0}),document.documentElement.addEventListener("mouseleave",a=>{!a.relatedTarget&&!a.toElement&&n()},{passive:!0})})();const zc=/iPad|iPhone|iPod/.test(navigator.userAgent);zc&&document.addEventListener("visibilitychange",()=>{if(document.visibilityState==="visible"){const t=be.local.get("theme");let n;if(t){if(n=document.querySelector('meta[name="theme-color"][data-theme-setting="manual"]'),n){const i=n.content,s=t==="light"?n.dataset.themeLightColorTemp:n.dataset.themeDarkColorTemp;n.content=s||"",setTimeout(()=>{n.content=i},10)}}else{const i=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";if(n=document.querySelector(`meta[name="theme-color"][media*="${i}"]`),n){const s=n.dataset.content,o=n.dataset.contentTemp;n.content=o||"",setTimeout(()=>{n.content=s},10)}}}});{const t=be.local.get("theme");if(t){document.documentElement.classList.add(`is-${t}`),document.querySelector('meta[name="color-scheme"]').setAttribute("content",t||"dark light");const i=document.querySelector('meta[data-theme-setting="manual"]');i&&(i.name="theme-color",i.content=t==="light"?i.dataset.themeLightColor:i.dataset.themeDarkColor),document.querySelectorAll('meta[data-theme-setting="auto"]').forEach(o=>{o.name=""})}const n=be.local.get("textSize");n&&document.documentElement.style.setProperty("--text-size",`${n}px`)}ps(T,t=>{var n;for(const[i,s,o,a]of t){if(s.join(".")==="settings.shortcutsViewMode"){const h=document.getElementById("app");h&&(h.dataset.shortcutsViewMode=(n=T.shortcuts)!=null&&n.length?o:"")}s.join(".")==="settings.cloakMode"&&document.body.classList.toggle("cloak",o)}});function Bc(){const[t,n]=$(!1),[i,s]=$("loading");G(()=>{const a=be.local.get("instanceURL"),h=decodeURIComponent((window.location.search.match(/code=([^&]+)/)||[,""])[1]);if(h){window.history.replaceState({},document.title,window.location.pathname||"/");const d=be.session.get("clientID"),r=be.session.get("clientSecret"),u=be.session.get("vapidKey");(async()=>{s("loading");const{access_token:f}=await gc({instanceURL:a,client_id:d,client_secret:r,code:h}),c=ei({instance:a,accessToken:f});await Promise.allSettled([$n(c,a),ti(c,a,f,u)]),An(),Rn(c),n(!0),s("default")})()}else{window.__IGNORE_GET_ACCOUNT_ERROR__=!0;const d=St();if(d){ds(d.info.id);const{client:r}=Q({account:d}),{instance:u}=r;An(),Rn(r),s("loading"),(async()=>{try{await $n(r,u)}catch{}finally{n(!0),s("default")}})()}else s("default")}},[]);let o=Tt();return T.currentLocation=o.pathname,G(an,[o,t]),/\/https?:/.test(o.pathname)?e(rc,{}):e(_,{children:[e(qc,{isLoggedIn:t,loading:i==="loading"}),e(Hc,{isLoggedIn:t}),i==="default"&&e(mn,{children:e(Ue,{path:"/:instance?/s/:id",element:e(_c,{})})}),t&&e(Ri,{}),t&&e(zo,{}),e(Mo,{}),t&&e(Uo,{}),e(Ai,{isLoggedIn:t}),i!=="loading"&&e(Fo,{onClose:an}),e(_i,{})]})}function qc({isLoggedIn:t,loading:n}){const i=Tt(),s=pe(()=>{const{pathname:o}=i;return!/^\/(login|welcome)/i.test(o)},[i]);return e(mn,{location:s||i,children:[e(Ue,{path:"/",element:t?e(oc,{}):n?e($e,{id:"loader-root"}):e(rs,{})}),e(Ue,{path:"/login",element:e(wc,{})}),e(Ue,{path:"/welcome",element:e(rs,{})})]})}function ls(){return T.prevLocation||null}function Hc({isLoggedIn:t}){const n=Tt(),i=z(ls());return pe(()=>Et("/:instance/s/:id",n.pathname)||Et("/s/:id",n.pathname),[n.pathname,Et])?i.current||(i.current=ls()):i.current=null,e(mn,{location:i.current||n,children:[t&&e(_,{children:[e(Ue,{path:"/notifications",element:e(Hs,{})}),e(Ue,{path:"/mentions",element:e(qs,{})}),e(Ue,{path:"/following",element:e(Tn,{})}),e(Ue,{path:"/b",element:e(Ds,{})}),e(Ue,{path:"/f",element:e(Ns,{})}),e(Ue,{path:"/l",children:[e(Ue,{index:!0,element:e(lc,{})}),e(Ue,{path:":id",element:e(Os,{})})]}),e(Ue,{path:"/fh",element:e(_a,{})}),e(Ue,{path:"/ft",element:e(xa,{})}),e(Ue,{path:"/catchup",element:e(ha,{})})]}),e(Ue,{path:"/:instance?/t/:hashtag",element:e(Fs,{})}),e(Ue,{path:"/:instance?/a/:id",element:e(na,{})}),e(Ue,{path:"/:instance?/p",children:[e(Ue,{index:!0,element:e(ln,{})}),e(Ue,{path:"l",element:e(ln,{local:!0})})]}),e(Ue,{path:"/:instance?/trending",element:e(Gs,{})}),e(Ue,{path:"/:instance?/search",element:e(Vs,{})})]})}"AbortSignal"in window&&(AbortSignal.timeout=AbortSignal.timeout||(t=>{const n=new AbortController;return setTimeout(()=>n.abort(),t),n.signal}));gi(e(mi,{children:e(Bc,{})}),document.getElementById("app"));setTimeout(()=>{try{Object.keys(localStorage).forEach(t=>{t.startsWith("iconify")&&localStorage.removeItem(t)}),Object.keys(sessionStorage).forEach(t=>{t.startsWith("iconify")&&sessionStorage.removeItem(t)}),localStorage.removeItem("settings:boostsCarousel")}catch{}},5e3);window.__CLOAK__=()=>{document.body.classList.toggle("cloak")}; +//# sourceMappingURL=main-1wKRS81d.js.map diff --git a/assets/main-1wKRS81d.js.map b/assets/main-1wKRS81d.js.map new file mode 100644 index 0000000..7611759 --- /dev/null +++ b/assets/main-1wKRS81d.js.map @@ -0,0 +1 @@ +{"version":3,"file":"main-1wKRS81d.js","sources":["../../src/utils/usePageVisibility.js","../../src/components/background-service.jsx","../../src/components/compose-button.jsx","../../src/components/keyboard-shortcuts-help.jsx","../../src/pages/accounts.jsx","../../src/assets/logo.svg","../../src/utils/push-notifications.js","../../src/pages/settings.jsx","../../src/utils/focus-deck.jsx","../../src/utils/useLocationChange.js","../../src/utils/lists.js","../../src/components/list-add-edit.jsx","../../src/components/account-info.jsx","../../src/components/account-sheet.jsx","../../src/components/drafts.jsx","../../src/components/embed-modal.jsx","../../src/components/generic-accounts.jsx","../../src/components/media-alt-modal.jsx","../../src/utils/color-utils.js","../../src/components/media-modal.jsx","../../src/components/report-modal.jsx","../../src/assets/floating-button.svg","../../src/assets/multi-column.svg","../../src/assets/tab-menu-bar.svg","../../src/utils/followed-tags.js","../../src/components/AsyncText.jsx","../../src/components/shortcuts-settings.jsx","../../src/components/modals.jsx","../../src/components/follow-request-buttons.jsx","../../src/components/notification.jsx","../../src/components/notification-service.jsx","../../src/components/search-form.jsx","../../src/components/search-command.jsx","../../src/components/shortcuts.jsx","../../src/utils/timeline-utils.jsx","../../src/utils/useScroll.js","../../src/utils/useScrollFn.js","../../src/components/media-post.jsx","../../src/components/nav-menu.jsx","../../src/components/timeline.jsx","../../src/pages/account-statuses.jsx","../../src/pages/bookmarks.jsx","../../src/assets/features/catch-up.png","../../src/pages/catchup.jsx","../../src/pages/favourites.jsx","../../src/pages/filters.jsx","../../src/pages/followed-hashtags.jsx","../../src/pages/following.jsx","../../src/pages/hashtag.jsx","../../src/pages/list.jsx","../../src/utils/group-notifications.jsx","../../src/pages/mentions.jsx","../../src/pages/notifications.jsx","../../src/pages/public.jsx","../../src/pages/search.jsx","../../src/pages/trending.jsx","../../src/components/columns.jsx","../../src/pages/home.jsx","../../src/utils/get-instance-status-url.js","../../src/pages/http-route.jsx","../../src/pages/lists.jsx","../../src/data/instances.json?url","../../src/utils/auth.js","../../src/pages/login.jsx","../../src/pages/status.jsx","../../src/pages/status-route.jsx","../../src/assets/features/boosts-carousel.jpg","../../src/assets/features/grouped-notifications.jpg","../../src/assets/features/multi-column.jpg","../../src/assets/features/multi-hashtag-timeline.jpg","../../src/assets/features/nested-comments-thread.jpg","../../src/assets/logo-text.svg","../../src/pages/welcome.jsx","../../src/utils/toast-alert.js","../../src/app.jsx","../../src/main.jsx"],"sourcesContent":["import { useEffect, useRef } from 'preact/hooks';\n\nexport default function usePageVisibility(fn = () => {}, deps = []) {\n const savedCallback = useRef(fn);\n useEffect(() => {\n savedCallback.current = fn;\n }, [deps]);\n\n useEffect(() => {\n const handleVisibilityChange = () => {\n const hidden = document.hidden || document.visibilityState === 'hidden';\n console.log('👀 Page visibility changed', hidden ? 'hidden' : 'visible');\n savedCallback.current(!hidden);\n };\n\n document.addEventListener('visibilitychange', handleVisibilityChange);\n return () =>\n document.removeEventListener('visibilitychange', handleVisibilityChange);\n }, []);\n}\n","import { memo } from 'preact/compat';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useHotkeys } from 'react-hotkeys-hook';\n\nimport { api } from '../utils/api';\nimport showToast from '../utils/show-toast';\nimport states, { saveStatus } from '../utils/states';\nimport useInterval from '../utils/useInterval';\nimport usePageVisibility from '../utils/usePageVisibility';\n\nconst STREAMING_TIMEOUT = 1000 * 3; // 3 seconds\nconst POLL_INTERVAL = 15_000; // 15 seconds\n\nexport default memo(function BackgroundService({ isLoggedIn }) {\n // Notifications service\n // - WebSocket to receive notifications when page is visible\n const [visible, setVisible] = useState(true);\n usePageVisibility(setVisible);\n const checkLatestNotification = async (masto, instance, skipCheckMarkers) => {\n if (states.notificationsLast) {\n const notificationsIterator = masto.v1.notifications.list({\n limit: 1,\n sinceId: states.notificationsLast.id,\n });\n const { value: notifications } = await notificationsIterator.next();\n if (notifications?.length) {\n if (skipCheckMarkers) {\n states.notificationsShowNew = true;\n } else {\n let lastReadId;\n try {\n const markers = await masto.v1.markers.fetch({\n timeline: 'notifications',\n });\n lastReadId = markers?.notifications?.lastReadId;\n } catch (e) {}\n if (lastReadId) {\n states.notificationsShowNew = notifications[0].id !== lastReadId;\n } else {\n states.notificationsShowNew = true;\n }\n }\n }\n }\n };\n\n useEffect(() => {\n let sub;\n let pollNotifications;\n if (isLoggedIn && visible) {\n const { masto, streaming, instance } = api();\n (async () => {\n // 1. Get the latest notification\n await checkLatestNotification(masto, instance);\n\n let hasStreaming = false;\n // 2. Start streaming\n if (streaming) {\n pollNotifications = setTimeout(() => {\n (async () => {\n try {\n hasStreaming = true;\n sub = streaming.user.notification.subscribe();\n console.log('🎏 Streaming notification', sub);\n for await (const entry of sub) {\n if (!sub) break;\n if (!visible) break;\n console.log('🔔🔔 Notification entry', entry);\n if (entry.event === 'notification') {\n console.log('🔔🔔 Notification', entry);\n saveStatus(entry.payload, instance, {\n skipThreading: true,\n });\n }\n states.notificationsShowNew = true;\n }\n console.log('💥 Streaming notification loop STOPPED');\n } catch (e) {\n hasStreaming = false;\n console.error(e);\n }\n\n if (!hasStreaming) {\n console.log('🎏 Streaming failed, fallback to polling');\n pollNotifications = setInterval(() => {\n checkLatestNotification(masto, instance, true);\n }, POLL_INTERVAL);\n }\n })();\n }, STREAMING_TIMEOUT);\n }\n })();\n }\n return () => {\n sub?.unsubscribe?.();\n sub = null;\n clearTimeout(pollNotifications);\n clearInterval(pollNotifications);\n };\n }, [visible, isLoggedIn]);\n\n // Check for updates service\n const lastCheckDate = useRef();\n const checkForUpdates = () => {\n lastCheckDate.current = Date.now();\n console.log('✨ Check app update');\n fetch('./version.json')\n .then((r) => r.json())\n .then((info) => {\n if (info) states.appVersion = info;\n })\n .catch((e) => {\n console.error(e);\n });\n };\n useInterval(checkForUpdates, visible && 1000 * 60 * 30); // 30 minutes\n usePageVisibility((visible) => {\n if (visible) {\n if (!lastCheckDate.current) {\n checkForUpdates();\n } else {\n const diff = Date.now() - lastCheckDate.current;\n if (diff > 1000 * 60 * 60) {\n // 1 hour\n checkForUpdates();\n }\n }\n }\n });\n\n // Global keyboard shortcuts \"service\"\n useHotkeys('shift+alt+k', () => {\n const currentCloakMode = states.settings.cloakMode;\n states.settings.cloakMode = !currentCloakMode;\n showToast({\n text: `Cloak mode ${currentCloakMode ? 'disabled' : 'enabled'}`,\n });\n });\n\n return null;\n});\n","import { useHotkeys } from 'react-hotkeys-hook';\nimport { useSnapshot } from 'valtio';\n\nimport openCompose from '../utils/open-compose';\nimport openOSK from '../utils/open-osk';\nimport states from '../utils/states';\n\nimport Icon from './icon';\n\nexport default function ComposeButton() {\n const snapStates = useSnapshot(states);\n\n function handleButton(e) {\n if (snapStates.composerState.minimized) {\n states.composerState.minimized = false;\n openOSK();\n return;\n }\n\n if (e.shiftKey) {\n const newWin = openCompose();\n\n if (!newWin) {\n states.showCompose = true;\n }\n } else {\n openOSK();\n states.showCompose = true;\n }\n }\n\n useHotkeys('c, shift+c', handleButton, {\n ignoreEventWhen: (e) => {\n const hasModal = !!document.querySelector('#modal-container > *');\n return hasModal;\n },\n });\n\n return (\n \n \n \n );\n}\n","import './keyboard-shortcuts-help.css';\n\nimport { memo } from 'preact/compat';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport { useSnapshot } from 'valtio';\n\nimport states from '../utils/states';\n\nimport Icon from './icon';\nimport Modal from './modal';\n\nexport default memo(function KeyboardShortcutsHelp() {\n const snapStates = useSnapshot(states);\n\n function onClose() {\n states.showKeyboardShortcutsHelp = false;\n }\n\n useHotkeys(\n '?, shift+?, shift+slash',\n (e) => {\n console.log('help');\n states.showKeyboardShortcutsHelp = true;\n },\n {\n ignoreEventWhen: (e) => {\n const hasModal = !!document.querySelector('#modal-container > *');\n return hasModal;\n },\n },\n );\n\n return (\n !!snapStates.showKeyboardShortcutsHelp && (\n \n

    \n \n
    \n

    Keyboard shortcuts

    \n
    \n
    \n \n {[\n {\n action: 'Keyboard shortcuts help',\n keys: ?,\n },\n {\n action: 'Next post',\n keys: j,\n },\n {\n action: 'Previous post',\n keys: k,\n },\n {\n action: 'Skip carousel to next post',\n keys: (\n <>\n Shift + j\n \n ),\n },\n {\n action: 'Skip carousel to previous post',\n keys: (\n <>\n Shift + k\n \n ),\n },\n {\n action: 'Load new posts',\n keys: .,\n },\n {\n action: 'Open post details',\n keys: (\n <>\n Enter or o\n \n ),\n },\n {\n action: (\n <>\n Expand content warning or\n
    \n toggle expanded/collapsed thread\n \n ),\n keys: x,\n },\n {\n action: 'Close post or dialogs',\n keys: (\n <>\n Esc or Backspace\n \n ),\n },\n {\n action: 'Focus column in multi-column mode',\n keys: (\n <>\n 1 to 9\n \n ),\n },\n {\n action: 'Compose new post',\n keys: c,\n },\n {\n action: 'Compose new post (new window)',\n className: 'insignificant',\n keys: (\n <>\n Shift + c\n \n ),\n },\n {\n action: 'Send post',\n keys: (\n <>\n Ctrl + Enter or +{' '}\n Enter\n \n ),\n },\n {\n action: 'Search',\n keys: /,\n },\n {\n action: 'Reply',\n keys: r,\n },\n {\n action: 'Reply (new window)',\n className: 'insignificant',\n keys: (\n <>\n Shift + r\n \n ),\n },\n {\n action: 'Like (favourite)',\n keys: (\n <>\n l or f\n \n ),\n },\n {\n action: 'Boost',\n keys: (\n <>\n Shift + b\n \n ),\n },\n {\n action: 'Bookmark',\n keys: d,\n },\n {\n action: 'Toggle Cloak mode',\n keys: (\n <>\n Shift + Alt + k\n \n ),\n },\n ].map(({ action, className, keys }) => (\n \n \n \n \n ))}\n
    {action}{keys}
    \n
    \n
    \n \n )\n );\n});\n","import './accounts.css';\n\nimport { useAutoAnimate } from '@formkit/auto-animate/preact';\nimport { Menu, MenuDivider, MenuItem } from '@szhsin/react-menu';\nimport { useReducer } from 'preact/hooks';\n\nimport Avatar from '../components/avatar';\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport Menu2 from '../components/menu2';\nimport MenuConfirm from '../components/menu-confirm';\nimport NameText from '../components/name-text';\nimport { api } from '../utils/api';\nimport states from '../utils/states';\nimport store from '../utils/store';\nimport { getCurrentAccountID, setCurrentAccountID } from '../utils/store-utils';\n\nfunction Accounts({ onClose }) {\n const { masto } = api();\n // Accounts\n const accounts = store.local.getJSON('accounts');\n const currentAccount = getCurrentAccountID();\n const moreThanOneAccount = accounts.length > 1;\n\n const [_, reload] = useReducer((x) => x + 1, 0);\n const [accountsListParent] = useAutoAnimate();\n\n return (\n
    \n {!!onClose && (\n \n )}\n
    \n

    Accounts

    \n
    \n
    \n
    \n
      \n {accounts.map((account, i) => {\n const isCurrent = account.info.id === currentAccount;\n const isDefault = i === 0; // first account is always default\n return (\n
    • \n
      \n {moreThanOneAccount && (\n \n \n \n )}\n {\n if (isCurrent) {\n try {\n const info = await masto.v1.accounts\n .$select(account.info.id)\n .fetch();\n console.log('fetched account info', info);\n account.info = info;\n store.local.setJSON('accounts', accounts);\n reload();\n } catch (e) {}\n }\n }}\n />\n {\n if (isCurrent) {\n states.showAccount = `${account.info.username}@${account.instanceURL}`;\n } else {\n setCurrentAccountID(account.info.id);\n location.reload();\n }\n }}\n />\n
      \n
      \n {isDefault && moreThanOneAccount && (\n <>\n Default{' '}\n \n )}\n \n \n \n }\n >\n {\n states.showAccount = `${account.info.username}@${account.instanceURL}`;\n }}\n >\n \n View profile…\n \n \n {moreThanOneAccount && (\n {\n // Move account to the top of the list\n accounts.splice(i, 1);\n accounts.unshift(account);\n store.local.setJSON('accounts', accounts);\n reload();\n }}\n >\n \n Set as default\n \n )}\n \n \n Log out @{account.info.acct}?\n \n }\n disabled={!isCurrent}\n menuItemClassName=\"danger\"\n onClick={() => {\n // const yes = confirm('Log out?');\n // if (!yes) return;\n accounts.splice(i, 1);\n store.local.setJSON('accounts', accounts);\n // location.reload();\n location.href = location.pathname || '/';\n }}\n >\n \n Log out…\n \n \n
      \n
    • \n );\n })}\n
    \n

    \n \n Add an existing account\n \n

    \n {moreThanOneAccount && (\n

    \n \n Note: Default account will always be used for first load.\n Switched accounts will persist during the session.\n \n

    \n )}\n
    \n
    \n
    \n );\n}\n\nexport default Accounts;\n","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%2064%2064'%3e%3cpath%20fill='none'%20d='M0%200h63.994v63.994H0z'/%3e%3cpath%20fill='%23a4bff7'%20d='M37.774%2011.471c14.639%203.752%2019.034%2016.557%2015.889%2031.304-.696%203.261-2.563%206.661-6.356%208.693-3.204%201.717-8.07%202.537-15.338.55l-9.634-2.404C11.651%2046.992%208.378%2038.733%2010.027%2031.823c3.627-15.201%2015.543-23.48%2027.747-20.352Z'/%3e%3cpath%20fill='%23d8e7fe'%20d='M36.76%2015.429c12.289%203.15%2015.547%2014.114%2012.907%2026.493-.947%204.44-4.937%209.365-16.664%206.143l-9.684-2.417c-7.854-1.923-10.53-7.8-9.318-12.877%203.016-12.639%2012.611-19.943%2022.759-17.342Z'/%3e%3cpath%20fill='%236081e6'%20d='M27.471%2024.991c-1.457-.698-7.229%203.213-7.663%208.926-.182%202.39%204.55%203.237%205.071-.169.725-4.743%203.715-8.218%202.592-8.757Zm10.746%202.005c-2.083.327-.382%205.901-.595%2010.727-.123%202.8%204.388%203.464%204.703%202.011%201.098-5.073-2.066-13.058-4.108-12.738Z'/%3e%3c/svg%3e\"","// Utils for push notifications\nimport { api } from './api';\nimport { getCurrentAccount } from './store-utils';\n\n// Subscription is an object with the following structure:\n// {\n// data: {\n// alerts: {\n// admin: {\n// report: boolean,\n// signUp: boolean,\n// },\n// favourite: boolean,\n// follow: boolean,\n// mention: boolean,\n// poll: boolean,\n// reblog: boolean,\n// status: boolean,\n// update: boolean,\n// }\n// },\n// policy: \"all\" | \"followed\" | \"follower\" | \"none\",\n// subscription: {\n// endpoint: string,\n// keys: {\n// auth: string,\n// p256dh: string,\n// },\n// },\n// }\n\n// Back-end CRUD\n// =============\n\nfunction createBackendPushSubscription(subscription) {\n const { masto } = api();\n return masto.v1.push.subscription.create(subscription);\n}\n\nfunction fetchBackendPushSubscription() {\n const { masto } = api();\n return masto.v1.push.subscription.fetch();\n}\n\nfunction updateBackendPushSubscription(subscription) {\n const { masto } = api();\n return masto.v1.push.subscription.update(subscription);\n}\n\nfunction removeBackendPushSubscription() {\n const { masto } = api();\n return masto.v1.push.subscription.remove();\n}\n\n// Front-end\n// =========\n\nexport function isPushSupported() {\n return 'serviceWorker' in navigator && 'PushManager' in window;\n}\n\nexport function getRegistration() {\n // return navigator.serviceWorker.ready;\n return navigator.serviceWorker.getRegistration();\n}\n\nasync function getSubscription() {\n const registration = await getRegistration();\n const subscription = registration\n ? await registration.pushManager.getSubscription()\n : undefined;\n return { registration, subscription };\n}\n\nfunction urlBase64ToUint8Array(base64String) {\n const padding = '='.repeat((4 - (base64String.length % 4)) % 4);\n const base64 = `${base64String}${padding}`\n .replace(/-/g, '+')\n .replace(/_/g, '/');\n\n const rawData = window.atob(base64);\n const outputArray = new Uint8Array(rawData.length);\n\n for (let i = 0; i < rawData.length; ++i) {\n outputArray[i] = rawData.charCodeAt(i);\n }\n\n return outputArray;\n}\n\n// Front-end <-> back-end\n// ======================\n\nexport async function initSubscription() {\n if (!isPushSupported()) return;\n const { subscription } = await getSubscription();\n let backendSubscription = null;\n try {\n backendSubscription = await fetchBackendPushSubscription();\n } catch (err) {\n if (/(not found|unknown)/i.test(err.message)) {\n // No subscription found\n } else {\n // Other error\n throw err;\n }\n }\n console.log('INIT subscription', {\n subscription,\n backendSubscription,\n });\n\n // Check if the subscription changed\n if (backendSubscription && subscription) {\n const sameEndpoint = backendSubscription.endpoint === subscription.endpoint;\n const { vapidKey } = getCurrentAccount();\n const sameKey = backendSubscription.serverKey === vapidKey;\n if (!sameEndpoint) {\n throw new Error('Backend subscription endpoint changed');\n }\n if (sameKey) {\n // Subscription didn't change\n } else {\n // Subscription changed\n console.error('🔔 Subscription changed', {\n sameEndpoint,\n serverKey: backendSubscription.serverKey,\n vapIdKey: vapidKey,\n endpoint1: backendSubscription.endpoint,\n endpoint2: subscription.endpoint,\n sameKey,\n key1: backendSubscription.serverKey,\n key2: vapidKey,\n });\n throw new Error('Backend subscription key and vapid key changed');\n // Only unsubscribe from backend, not from browser\n // await removeBackendPushSubscription();\n // // Now let's resubscribe\n // // NOTE: I have no idea if this works\n // return await updateSubscription({\n // data: backendSubscription.data,\n // policy: backendSubscription.policy,\n // });\n }\n }\n\n if (subscription && !backendSubscription) {\n // check if account's vapidKey is same as subscription's applicationServerKey\n const { vapidKey } = getCurrentAccount();\n const { applicationServerKey } = subscription.options;\n const vapidKeyStr = urlBase64ToUint8Array(vapidKey).toString();\n const applicationServerKeyStr = new Uint8Array(\n applicationServerKey,\n ).toString();\n const sameKey = vapidKeyStr === applicationServerKeyStr;\n if (sameKey) {\n // Subscription didn't change\n } else {\n // Subscription changed\n console.error('🔔 Subscription changed', {\n vapidKeyStr,\n applicationServerKeyStr,\n sameKey,\n });\n // Unsubscribe since backend doesn't have a subscription\n await subscription.unsubscribe();\n throw new Error('Subscription key and vapid key changed');\n }\n }\n\n // Check if backend subscription returns 404\n // if (subscription && !backendSubscription) {\n // // Re-subscribe to backend\n // backendSubscription = await createBackendPushSubscription({\n // subscription,\n // data: {},\n // policy: 'all',\n // });\n // }\n\n return { subscription, backendSubscription };\n}\n\nexport async function updateSubscription({ data, policy }) {\n console.log('🔔 Updating subscription', { data, policy });\n if (!isPushSupported()) return;\n let { registration, subscription } = await getSubscription();\n let backendSubscription = null;\n\n if (subscription) {\n try {\n backendSubscription = await updateBackendPushSubscription({\n data,\n policy,\n });\n // TODO: save subscription in user settings\n } catch (error) {\n // Backend doesn't have a subscription for this user\n // Create a new one\n backendSubscription = await createBackendPushSubscription({\n subscription,\n data,\n policy,\n });\n // TODO: save subscription in user settings\n }\n } else {\n // User is not subscribed\n const { vapidKey } = getCurrentAccount();\n if (!vapidKey) throw new Error('No server key found');\n subscription = await registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: urlBase64ToUint8Array(vapidKey),\n });\n backendSubscription = await createBackendPushSubscription({\n subscription,\n data,\n policy,\n });\n // TODO: save subscription in user settings\n }\n\n return { subscription, backendSubscription };\n}\n\nexport async function removeSubscription() {\n if (!isPushSupported()) return;\n const { subscription } = await getSubscription();\n if (subscription) {\n await removeBackendPushSubscription();\n await subscription.unsubscribe();\n }\n}\n","import './settings.css';\n\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useSnapshot } from 'valtio';\n\nimport logo from '../assets/logo.svg';\n\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport RelativeTime from '../components/relative-time';\nimport targetLanguages from '../data/lingva-target-languages';\nimport { api } from '../utils/api';\nimport getTranslateTargetLanguage from '../utils/get-translate-target-language';\nimport localeCode2Text from '../utils/localeCode2Text';\nimport {\n initSubscription,\n isPushSupported,\n removeSubscription,\n updateSubscription,\n} from '../utils/push-notifications';\nimport showToast from '../utils/show-toast';\nimport states from '../utils/states';\nimport store from '../utils/store';\n\nconst DEFAULT_TEXT_SIZE = 16;\nconst TEXT_SIZES = [14, 15, 16, 17, 18, 19, 20];\nconst {\n PHANPY_WEBSITE: WEBSITE,\n PHANPY_PRIVACY_POLICY_URL: PRIVACY_POLICY_URL,\n PHANPY_IMG_ALT_API_URL: IMG_ALT_API_URL,\n PHANPY_GIPHY_API_KEY: GIPHY_API_KEY,\n} = import.meta.env;\n\nfunction Settings({ onClose }) {\n const snapStates = useSnapshot(states);\n const currentTheme = store.local.get('theme') || 'auto';\n const themeFormRef = useRef();\n const targetLanguage =\n snapStates.settings.contentTranslationTargetLanguage || null;\n const systemTargetLanguage = getTranslateTargetLanguage();\n const systemTargetLanguageText = localeCode2Text(systemTargetLanguage);\n const currentTextSize = store.local.get('textSize') || DEFAULT_TEXT_SIZE;\n\n const [prefs, setPrefs] = useState(store.account.get('preferences') || {});\n const { masto, authenticated, instance } = api();\n // Get preferences every time Settings is opened\n // NOTE: Disabled for now because I don't expect this to change often. Also for some reason, the /api/v1/preferences endpoint is cached for a while and return old prefs if refresh immediately after changing them.\n // useEffect(() => {\n // const { masto } = api();\n // (async () => {\n // try {\n // const preferences = await masto.v1.preferences.fetch();\n // setPrefs(preferences);\n // store.account.set('preferences', preferences);\n // } catch (e) {\n // // Silently fail\n // console.error(e);\n // }\n // })();\n // }, []);\n\n return (\n
    \n {!!onClose && (\n \n )}\n
    \n

    Settings

    \n
    \n
    \n
    \n
      \n
    • \n
      \n \n
      \n
      \n {\n console.log(e);\n e.preventDefault();\n const formData = new FormData(themeFormRef.current);\n const theme = formData.get('theme');\n const html = document.documentElement;\n\n if (theme === 'auto') {\n html.classList.remove('is-light', 'is-dark');\n\n // Disable manual theme \n const $manualMeta = document.querySelector(\n 'meta[data-theme-setting=\"manual\"]',\n );\n if ($manualMeta) {\n $manualMeta.name = '';\n }\n // Enable auto theme s\n const $autoMetas = document.querySelectorAll(\n 'meta[data-theme-setting=\"auto\"]',\n );\n $autoMetas.forEach((m) => {\n m.name = 'theme-color';\n });\n } else {\n html.classList.toggle('is-light', theme === 'light');\n html.classList.toggle('is-dark', theme === 'dark');\n\n // Enable manual theme \n const $manualMeta = document.querySelector(\n 'meta[data-theme-setting=\"manual\"]',\n );\n if ($manualMeta) {\n $manualMeta.name = 'theme-color';\n $manualMeta.content =\n theme === 'light'\n ? $manualMeta.dataset.themeLightColor\n : $manualMeta.dataset.themeDarkColor;\n }\n // Disable auto theme s\n const $autoMetas = document.querySelectorAll(\n 'meta[data-theme-setting=\"auto\"]',\n );\n $autoMetas.forEach((m) => {\n m.name = '';\n });\n }\n document\n .querySelector('meta[name=\"color-scheme\"]')\n .setAttribute(\n 'content',\n theme === 'auto' ? 'dark light' : theme,\n );\n\n if (theme === 'auto') {\n store.local.del('theme');\n } else {\n store.local.set('theme', theme);\n }\n }}\n >\n
      \n \n \n \n
      \n \n
      \n
    • \n
    • \n
      \n \n
      \n
      \n A{' '}\n {\n const value = parseInt(e.target.value, 10);\n const html = document.documentElement;\n // set CSS variable\n html.style.setProperty('--text-size', `${value}px`);\n // save to local storage\n if (value === DEFAULT_TEXT_SIZE) {\n store.local.del('textSize');\n } else {\n store.local.set('textSize', e.target.value);\n }\n }}\n />{' '}\n \n A\n \n \n {TEXT_SIZES.map((size) => (\n \n
      \n
    • \n
    \n
    \n {authenticated && (\n <>\n

    Posting

    \n
    \n
      \n
    • \n
      \n \n
      \n
      \n {\n const { value } = e.target;\n (async () => {\n try {\n await masto.v1.accounts.updateCredentials({\n source: {\n privacy: value,\n },\n });\n setPrefs({\n ...prefs,\n 'posting:default:visibility': value,\n });\n store.account.set('preferences', {\n ...prefs,\n 'posting:default:visibility': value,\n });\n } catch (e) {\n alert('Failed to update posting privacy');\n console.error(e);\n }\n })();\n }}\n >\n \n \n \n \n
      \n
    • \n
    \n
    \n

    \n {' '}\n \n Synced to your instance server's settings.{' '}\n \n Go to your instance ({instance}) for more settings.\n \n \n

    \n \n )}\n

    Experiments

    \n
    \n
      \n
    • \n \n
    • \n
    • \n \n
    • \n
    • \n \n \n
      \n \n
      \n
      \n

      \n Hide \"Translate\" button for\n {snapStates.settings.contentTranslationHideLanguages.length >\n 0 && (\n <>\n {' '}\n (\n {\n snapStates.settings.contentTranslationHideLanguages\n .length\n }\n )\n \n )}\n :\n

      \n {targetLanguages.map((lang) => (\n \n ))}\n
      \n

      \n

      \n \n Note: This feature uses external translation services,\n powered by{' '}\n \n Lingva API\n {' '}\n &{' '}\n \n Lingva Translate\n \n .\n \n

      \n
      \n
      \n \n

      \n \n Automatically show translation for posts in timeline. Only\n works for short posts without content warning,\n media and poll.\n \n

      \n
      \n
    \n \n {!!GIPHY_API_KEY && authenticated && (\n
  • \n \n
    \n \n Note: This feature uses external GIF search service, powered\n by{' '}\n \n GIPHY\n \n . G-rated (suitable for viewing by all ages), tracking\n parameters are stripped, referrer information is omitted\n from requests, but search queries and IP address information\n will still reach their servers.\n \n
    \n
  • \n )}\n {!!IMG_ALT_API_URL && authenticated && (\n
  • \n \n
    \n Only for new images while composing new posts.\n
    \n
    \n \n Note: This feature uses external AI service, powered by{' '}\n \n img-alt-api\n \n . May not work well. Only for images and in English.\n \n
    \n
  • \n )}\n {authenticated && (\n
  • \n \n
    \n \n ⚠️⚠️⚠️ Very experimental.\n
    \n Stored in your own profile’s notes. Profile (private) notes\n are mainly used for other profiles, and hidden for own\n profile.\n
    \n
    \n
    \n \n Note: This feature uses currently-logged-in instance server\n API.\n \n
    \n
  • \n )}\n
  • \n \n
    \n \n Replace text as blocks, useful when taking screenshots, for\n privacy reasons.\n \n
    \n
  • \n {authenticated && (\n
  • \n {\n states.showDrafts = true;\n states.showSettings = false;\n }}\n >\n Unsent drafts\n \n
  • \n )}\n \n \n {authenticated && }\n

    About

    \n
    \n \n \n
    \n Phanpy{' '}\n {\n e.preventDefault();\n states.showAccount = 'phanpy@hachyderm.io';\n }}\n >\n @phanpy\n \n
    \n \n Built\n {' '}\n by{' '}\n {\n e.preventDefault();\n states.showAccount = 'cheeaun@mastodon.social';\n }}\n >\n @cheeaun\n \n
    \n \n

    \n \n Sponsor\n {' '}\n ·{' '}\n \n Donate\n {' '}\n ·{' '}\n \n Privacy Policy\n \n

    \n {__BUILD_TIME__ && (\n

    \n {WEBSITE && (\n <>\n Site:{' '}\n {WEBSITE.replace(/https?:\\/\\//g, '').replace(/\\/$/, '')}\n
    \n \n )}\n Version:{' '}\n {\n e.target.select();\n // Copy to clipboard\n try {\n navigator.clipboard.writeText(e.target.value);\n showToast('Version string copied');\n } catch (e) {\n console.warn(e);\n showToast('Unable to copy version string');\n }\n }}\n />{' '}\n {!__FAKE_COMMIT_HASH__ && (\n \n (\n \n \n \n )\n \n )}\n

    \n )}\n
    \n \n \n );\n}\n\nfunction PushNotificationsSection({ onClose }) {\n if (!isPushSupported()) return null;\n\n const { instance } = api();\n const [uiState, setUIState] = useState('default');\n const pushFormRef = useRef();\n const [allowNotifications, setAllowNotifications] = useState(false);\n const [needRelogin, setNeedRelogin] = useState(false);\n const previousPolicyRef = useRef();\n useEffect(() => {\n (async () => {\n setUIState('loading');\n try {\n const { subscription, backendSubscription } = await initSubscription();\n if (\n backendSubscription?.policy &&\n backendSubscription.policy !== 'none'\n ) {\n setAllowNotifications(true);\n const { alerts, policy } = backendSubscription;\n console.log('backendSubscription', backendSubscription);\n previousPolicyRef.current = policy;\n const { elements } = pushFormRef.current;\n const policyEl = elements.namedItem('policy');\n if (policyEl) policyEl.value = policy;\n // alerts is {}, iterate it\n Object.keys(alerts).forEach((alert) => {\n const el = elements.namedItem(alert);\n if (el?.type === 'checkbox') {\n el.checked = true;\n }\n });\n }\n setUIState('default');\n } catch (err) {\n console.warn(err);\n if (/outside.*authorized/i.test(err.message)) {\n setNeedRelogin(true);\n } else {\n alert(err?.message || err);\n }\n setUIState('error');\n }\n })();\n }, []);\n\n const isLoading = uiState === 'loading';\n\n return (\n {\n setTimeout(() => {\n const values = Object.fromEntries(new FormData(pushFormRef.current));\n const allowNotifications = !!values['policy-allow'];\n const params = {\n data: {\n policy: values.policy,\n alerts: {\n mention: !!values.mention,\n favourite: !!values.favourite,\n reblog: !!values.reblog,\n follow: !!values.follow,\n follow_request: !!values.followRequest,\n poll: !!values.poll,\n update: !!values.update,\n status: !!values.status,\n },\n },\n };\n\n let alertsCount = 0;\n // Remove false values from data.alerts\n // API defaults to false anyway\n Object.keys(params.data.alerts).forEach((key) => {\n if (!params.data.alerts[key]) {\n delete params.data.alerts[key];\n } else {\n alertsCount++;\n }\n });\n const policyChanged =\n previousPolicyRef.current !== params.data.policy;\n\n console.log('PN Form', {\n values,\n allowNotifications: allowNotifications,\n params,\n });\n\n if (allowNotifications && alertsCount > 0) {\n if (policyChanged) {\n console.debug('Policy changed.');\n removeSubscription()\n .then(() => {\n updateSubscription(params);\n })\n .catch((err) => {\n console.warn(err);\n alert('Failed to update subscription. Please try again.');\n });\n } else {\n updateSubscription(params).catch((err) => {\n console.warn(err);\n alert('Failed to update subscription. Please try again.');\n });\n }\n } else {\n removeSubscription().catch((err) => {\n console.warn(err);\n alert('Failed to remove subscription. Please try again.');\n });\n }\n }, 100);\n }}\n >\n

    Push Notifications (beta)

    \n
    \n
      \n
    • \n \n
    • \n
    \n
    \n

    \n \n NOTE: Push notifications only work for one account.\n \n

    \n \n );\n}\n\nexport default Settings;\n","const focusDeck = () => {\n let timer = setTimeout(() => {\n const columns = document.getElementById('columns');\n if (columns) {\n // Focus first column\n // columns.querySelector('.deck-container')?.focus?.();\n } else {\n const modals = document.querySelectorAll('#modal-container > *');\n if (modals?.length) {\n // Focus last modal\n const modal = modals[modals.length - 1]; // last one\n const modalFocusElement =\n modal.querySelector('[tabindex=\"-1\"]') || modal;\n if (modalFocusElement) {\n modalFocusElement.focus();\n return;\n }\n }\n const backDrop = document.querySelector('.deck-backdrop');\n if (backDrop) return;\n // Focus last deck\n const pages = document.querySelectorAll('.deck-container');\n const page = pages[pages.length - 1]; // last one\n if (page && page.tabIndex === -1) {\n console.log('FOCUS', page);\n page.focus();\n }\n }\n }, 100);\n return () => clearTimeout(timer);\n};\n\nexport default focusDeck;\n","import { useEffect, useRef } from 'preact/hooks';\nimport { useLocation } from 'react-router-dom';\n\n// Hook that runs a callback when the location changes\n// Won't run on the first render\n\nexport default function useLocationChange(fn) {\n if (!fn) return;\n const location = useLocation();\n const currentLocationRef = useRef(location.pathname);\n useEffect(() => {\n // console.log('location', {\n // current: currentLocationRef.current,\n // next: location.pathname,\n // });\n if (\n currentLocationRef.current &&\n location.pathname !== currentLocationRef.current\n ) {\n fn?.();\n }\n }, [location.pathname, fn]);\n}\n","import { api } from './api';\nimport pmem from './pmem';\nimport store from './store';\n\nconst FETCH_MAX_AGE = 1000 * 60; // 1 minute\nconst MAX_AGE = 24 * 60 * 60 * 1000; // 1 day\n\nexport const fetchLists = pmem(\n async () => {\n const { masto } = api();\n const lists = await masto.v1.lists.list();\n lists.sort((a, b) => a.title.localeCompare(b.title));\n\n if (lists.length) {\n setTimeout(() => {\n // Save to local storage, with saved timestamp\n store.account.set('lists', {\n lists,\n updatedAt: Date.now(),\n });\n }, 1);\n }\n\n return lists;\n },\n {\n maxAge: FETCH_MAX_AGE,\n },\n);\n\nexport async function getLists() {\n try {\n const { lists, updatedAt } = store.account.get('lists') || {};\n if (!lists?.length) return await fetchLists();\n if (Date.now() - updatedAt > MAX_AGE) {\n // Stale-while-revalidate\n fetchLists();\n return lists;\n }\n return lists;\n } catch (e) {\n return [];\n }\n}\n\nexport const fetchList = pmem(\n (id) => {\n const { masto } = api();\n return masto.v1.lists.$select(id).fetch();\n },\n {\n maxAge: FETCH_MAX_AGE,\n },\n);\n\nexport async function getList(id) {\n const { lists } = store.account.get('lists') || {};\n console.log({ lists });\n if (lists?.length) {\n const theList = lists.find((l) => l.id === id);\n if (theList) return theList;\n }\n try {\n return fetchList(id);\n } catch (e) {\n return null;\n }\n}\n\nexport async function getListTitle(id) {\n const list = await getList(id);\n return list?.title || '';\n}\n\nexport function addListStore(list) {\n const { lists } = store.account.get('lists') || {};\n if (lists?.length) {\n lists.push(list);\n lists.sort((a, b) => a.title.localeCompare(b.title));\n store.account.set('lists', {\n lists,\n updatedAt: Date.now(),\n });\n }\n}\n\nexport function updateListStore(list) {\n const { lists } = store.account.get('lists') || {};\n if (lists?.length) {\n const index = lists.findIndex((l) => l.id === list.id);\n if (index !== -1) {\n lists[index] = list;\n lists.sort((a, b) => a.title.localeCompare(b.title));\n store.account.set('lists', {\n lists,\n updatedAt: Date.now(),\n });\n }\n }\n}\n\nexport function deleteListStore(listID) {\n const { lists } = store.account.get('lists') || {};\n if (lists?.length) {\n const index = lists.findIndex((l) => l.id === listID);\n if (index !== -1) {\n lists.splice(index, 1);\n store.account.set('lists', {\n lists,\n updatedAt: Date.now(),\n });\n }\n }\n}\n","import { useEffect, useRef, useState } from 'preact/hooks';\n\nimport { api } from '../utils/api';\nimport { addListStore, deleteListStore, updateListStore } from '../utils/lists';\nimport supports from '../utils/supports';\n\nimport Icon from './icon';\nimport MenuConfirm from './menu-confirm';\n\nfunction ListAddEdit({ list, onClose }) {\n const { masto } = api();\n const [uiState, setUIState] = useState('default');\n const editMode = !!list;\n const nameFieldRef = useRef();\n const repliesPolicyFieldRef = useRef();\n const exclusiveFieldRef = useRef();\n useEffect(() => {\n if (editMode) {\n nameFieldRef.current.value = list.title;\n repliesPolicyFieldRef.current.value = list.repliesPolicy;\n if (exclusiveFieldRef.current) {\n exclusiveFieldRef.current.checked = list.exclusive;\n }\n }\n }, [editMode]);\n const supportsExclusive = supports('@mastodon/list-exclusive');\n\n return (\n
    \n {!!onClose && (\n \n )}{' '}\n
    \n

    {editMode ? 'Edit list' : 'New list'}

    \n
    \n
    \n {\n e.preventDefault(); // Get form values\n\n const formData = new FormData(e.target);\n const title = formData.get('title');\n const repliesPolicy = formData.get('replies_policy');\n const exclusive = formData.get('exclusive') === 'on';\n console.log({\n title,\n repliesPolicy,\n exclusive,\n });\n setUIState('loading');\n\n (async () => {\n try {\n let listResult;\n\n if (editMode) {\n listResult = await masto.v1.lists.$select(list.id).update({\n title,\n replies_policy: repliesPolicy,\n exclusive,\n });\n } else {\n listResult = await masto.v1.lists.create({\n title,\n replies_policy: repliesPolicy,\n exclusive,\n });\n }\n\n console.log(listResult);\n setUIState('default');\n onClose?.({\n state: 'success',\n list: listResult,\n });\n\n setTimeout(() => {\n if (editMode) {\n updateListStore(listResult);\n } else {\n addListStore(listResult);\n }\n }, 1);\n } catch (e) {\n console.error(e);\n setUIState('error');\n alert(\n editMode ? 'Unable to edit list.' : 'Unable to create list.',\n );\n }\n })();\n }}\n >\n
    \n \n
    \n
    \n \n \n \n \n \n
    \n {supportsExclusive && (\n
    \n \n
    \n )}\n
    \n \n {editMode && (\n {\n // const yes = confirm('Delete this list?');\n // if (!yes) return;\n setUIState('loading');\n\n (async () => {\n try {\n await masto.v1.lists.$select(list.id).remove();\n setUIState('default');\n onClose?.({\n state: 'deleted',\n });\n setTimeout(() => {\n deleteListStore(list.id);\n }, 1);\n } catch (e) {\n console.error(e);\n setUIState('error');\n alert('Unable to delete list.');\n }\n })();\n }}\n >\n \n Delete…\n \n \n )}\n
    \n \n
    \n
    \n );\n}\n\nexport default ListAddEdit;\n","import './account-info.css';\n\nimport { MenuDivider, MenuItem } from '@szhsin/react-menu';\nimport {\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'preact/hooks';\nimport punycode from 'punycode';\n\nimport { api } from '../utils/api';\nimport enhanceContent from '../utils/enhance-content';\nimport getHTMLText from '../utils/getHTMLText';\nimport handleContentLinks from '../utils/handle-content-links';\nimport { getLists } from '../utils/lists';\nimport niceDateTime from '../utils/nice-date-time';\nimport pmem from '../utils/pmem';\nimport shortenNumber from '../utils/shorten-number';\nimport showCompose from '../utils/show-compose';\nimport showToast from '../utils/show-toast';\nimport states, { hideAllModals } from '../utils/states';\nimport store from '../utils/store';\nimport { getCurrentAccountID, updateAccount } from '../utils/store-utils';\nimport supports from '../utils/supports';\n\nimport AccountBlock from './account-block';\nimport Avatar from './avatar';\nimport EmojiText from './emoji-text';\nimport Icon from './icon';\nimport Link from './link';\nimport ListAddEdit from './list-add-edit';\nimport Loader from './loader';\nimport Menu2 from './menu2';\nimport MenuConfirm from './menu-confirm';\nimport MenuLink from './menu-link';\nimport Modal from './modal';\nimport SubMenu2 from './submenu2';\nimport TranslationBlock from './translation-block';\n\nconst MUTE_DURATIONS = [\n 60 * 5, // 5 minutes\n 60 * 30, // 30 minutes\n 60 * 60, // 1 hour\n 60 * 60 * 6, // 6 hours\n 60 * 60 * 24, // 1 day\n 60 * 60 * 24 * 3, // 3 days\n 60 * 60 * 24 * 7, // 1 week\n 0, // forever\n];\nconst MUTE_DURATIONS_LABELS = {\n 0: 'Forever',\n 300: '5 minutes',\n 1_800: '30 minutes',\n 3_600: '1 hour',\n 21_600: '6 hours',\n 86_400: '1 day',\n 259_200: '3 days',\n 604_800: '1 week',\n};\n\nconst LIMIT = 80;\n\nconst ACCOUNT_INFO_MAX_AGE = 1000 * 60 * 10; // 10 mins\n\nfunction fetchFamiliarFollowers(currentID, masto) {\n return masto.v1.accounts.familiarFollowers.fetch({\n id: [currentID],\n });\n}\nconst memFetchFamiliarFollowers = pmem(fetchFamiliarFollowers, {\n maxAge: ACCOUNT_INFO_MAX_AGE,\n});\n\nasync function fetchPostingStats(accountID, masto) {\n const fetchStatuses = masto.v1.accounts\n .$select(accountID)\n .statuses.list({\n limit: 20,\n })\n .next();\n\n const { value: statuses } = await fetchStatuses;\n console.log('fetched statuses', statuses);\n const stats = {\n total: statuses.length,\n originals: 0,\n replies: 0,\n boosts: 0,\n };\n // Categories statuses by type\n // - Original posts (not replies to others)\n // - Threads (self-replies + 1st original post)\n // - Boosts (reblogs)\n // - Replies (not-self replies)\n statuses.forEach((status) => {\n if (status.reblog) {\n stats.boosts++;\n } else if (\n !!status.inReplyToId &&\n status.inReplyToAccountId !== status.account.id // Not self-reply\n ) {\n stats.replies++;\n } else {\n stats.originals++;\n }\n });\n\n // Count days since last post\n if (statuses.length) {\n stats.daysSinceLastPost = Math.ceil(\n (Date.now() - new Date(statuses[statuses.length - 1].createdAt)) /\n 86400000,\n );\n }\n\n console.log('posting stats', stats);\n return stats;\n}\nconst memFetchPostingStats = pmem(fetchPostingStats, {\n maxAge: ACCOUNT_INFO_MAX_AGE,\n});\n\nfunction AccountInfo({\n account,\n fetchAccount = () => {},\n standalone,\n instance,\n authenticated,\n}) {\n const { masto } = api({\n instance,\n });\n const { masto: currentMasto, instance: currentInstance } = api();\n const [uiState, setUIState] = useState('default');\n const isString = typeof account === 'string';\n const [info, setInfo] = useState(isString ? null : account);\n\n const sameCurrentInstance = useMemo(\n () => instance === currentInstance,\n [instance, currentInstance],\n );\n\n useEffect(() => {\n if (!isString) {\n setInfo(account);\n return;\n }\n setUIState('loading');\n (async () => {\n try {\n const info = await fetchAccount();\n states.accounts[`${info.id}@${instance}`] = info;\n setInfo(info);\n setUIState('default');\n } catch (e) {\n console.error(e);\n setInfo(null);\n setUIState('error');\n }\n })();\n }, [isString, account, fetchAccount]);\n\n const {\n acct,\n avatar,\n avatarStatic,\n bot,\n createdAt,\n displayName,\n emojis,\n fields,\n followersCount,\n followingCount,\n group,\n // header,\n // headerStatic,\n id,\n lastStatusAt,\n locked,\n note,\n statusesCount,\n url,\n username,\n memorial,\n moved,\n roles,\n hideCollections,\n } = info || {};\n let headerIsAvatar = false;\n let { header, headerStatic } = info || {};\n if (!header || /missing\\.png$/.test(header)) {\n if (avatar && !/missing\\.png$/.test(avatar)) {\n header = avatar;\n headerIsAvatar = true;\n if (avatarStatic && !/missing\\.png$/.test(avatarStatic)) {\n headerStatic = avatarStatic;\n }\n }\n }\n\n const isSelf = useMemo(() => id === getCurrentAccountID(), [id]);\n\n useEffect(() => {\n const infoHasEssentials = !!(\n info?.id &&\n info?.username &&\n info?.acct &&\n info?.avatar &&\n info?.avatarStatic &&\n info?.displayName &&\n info?.url\n );\n if (isSelf && instance && infoHasEssentials) {\n const accounts = store.local.getJSON('accounts');\n let updated = false;\n accounts.forEach((account) => {\n if (account.info.id === info.id && account.instanceURL === instance) {\n account.info = info;\n updated = true;\n }\n });\n if (updated) {\n console.log('Updated account info', info);\n store.local.setJSON('accounts', accounts);\n }\n }\n }, [isSelf, info, instance]);\n\n const accountInstance = useMemo(() => {\n if (!url) return null;\n const domain = punycode.toUnicode(new URL(url).hostname);\n return domain;\n }, [url]);\n\n const [headerCornerColors, setHeaderCornerColors] = useState([]);\n\n const followersIterator = useRef();\n const familiarFollowersCache = useRef([]);\n async function fetchFollowers(firstLoad) {\n if (firstLoad || !followersIterator.current) {\n followersIterator.current = masto.v1.accounts.$select(id).followers.list({\n limit: LIMIT,\n });\n }\n const results = await followersIterator.current.next();\n if (isSelf) return results;\n if (!sameCurrentInstance) return results;\n\n const { value } = results;\n let newValue = [];\n // On first load, fetch familiar followers, merge to top of results' `value`\n // Remove dups on every fetch\n if (firstLoad) {\n let familiarFollowers = [];\n try {\n familiarFollowers = await masto.v1.accounts.familiarFollowers.fetch({\n id: [id],\n });\n } catch (e) {}\n familiarFollowersCache.current = familiarFollowers?.[0]?.accounts || [];\n newValue = [\n ...familiarFollowersCache.current,\n ...value.filter(\n (account) =>\n !familiarFollowersCache.current.some(\n (familiar) => familiar.id === account.id,\n ),\n ),\n ];\n } else if (value?.length) {\n newValue = value.filter(\n (account) =>\n !familiarFollowersCache.current.some(\n (familiar) => familiar.id === account.id,\n ),\n );\n }\n\n return {\n ...results,\n value: newValue,\n };\n }\n\n const followingIterator = useRef();\n async function fetchFollowing(firstLoad) {\n if (firstLoad || !followingIterator.current) {\n followingIterator.current = masto.v1.accounts.$select(id).following.list({\n limit: LIMIT,\n });\n }\n const results = await followingIterator.current.next();\n return results;\n }\n\n const LinkOrDiv = standalone ? 'div' : Link;\n const accountLink = instance ? `/${instance}/a/${id}` : `/a/${id}`;\n\n const [familiarFollowers, setFamiliarFollowers] = useState([]);\n const [postingStats, setPostingStats] = useState();\n const [postingStatsUIState, setPostingStatsUIState] = useState('default');\n const hasPostingStats = !!postingStats?.total;\n\n const renderFamiliarFollowers = async (currentID) => {\n try {\n const followers = await memFetchFamiliarFollowers(\n currentID,\n currentMasto,\n );\n console.log('fetched familiar followers', followers);\n setFamiliarFollowers(\n followers[0].accounts.slice(0, FAMILIAR_FOLLOWERS_LIMIT),\n );\n } catch (e) {\n console.error(e);\n }\n };\n\n const renderPostingStats = async () => {\n if (!id) return;\n setPostingStatsUIState('loading');\n try {\n const stats = await memFetchPostingStats(id, masto);\n setPostingStats(stats);\n setPostingStatsUIState('default');\n } catch (e) {\n console.error(e);\n setPostingStatsUIState('error');\n }\n };\n\n const onRelationshipChange = useCallback(\n ({ relationship, currentID }) => {\n if (!relationship.following) {\n renderFamiliarFollowers(currentID);\n if (!standalone && statusesCount > 0) {\n // Only render posting stats if not standalone and has posts\n renderPostingStats();\n }\n }\n },\n [standalone, id, statusesCount],\n );\n\n const onProfileUpdate = useCallback(\n (newAccount) => {\n if (newAccount.id === id) {\n console.log('Updated account info', newAccount);\n setInfo(newAccount);\n states.accounts[`${newAccount.id}@${instance}`] = newAccount;\n }\n },\n [id, instance],\n );\n\n return (\n \n {uiState === 'error' && (\n
    \n

    Unable to load account.

    \n

    \n \n Go to account page \n \n

    \n
    \n )}\n {uiState === 'loading' ? (\n <>\n
    \n \n
    \n
    \n
    \n

    ███████ ████ ████

    \n

    ████ ████████ ██████ █████████ ████ ██

    \n
    \n \n
    \n \n \n \n \n
    \n
    \n \n ) : (\n info && (\n <>\n {!!moved && (\n
    \n

    \n {displayName} has indicated that their new account is\n now:\n

    \n {\n e.stopPropagation();\n states.showAccount = moved;\n }}\n />\n
    \n )}\n {!!header && !/missing\\.png$/.test(header) && (\n {\n if (e.target.crossOrigin) {\n if (e.target.src !== headerStatic) {\n e.target.src = headerStatic;\n } else {\n e.target.removeAttribute('crossorigin');\n e.target.src = header;\n }\n } else if (e.target.src !== headerStatic) {\n e.target.src = headerStatic;\n } else {\n e.target.remove();\n }\n }}\n crossOrigin=\"anonymous\"\n onLoad={(e) => {\n e.target.classList.add('loaded');\n try {\n // Get color from four corners of image\n const canvas = window.OffscreenCanvas\n ? new OffscreenCanvas(1, 1)\n : document.createElement('canvas');\n const ctx = canvas.getContext('2d', {\n willReadFrequently: true,\n });\n canvas.width = e.target.width;\n canvas.height = e.target.height;\n ctx.imageSmoothingEnabled = false;\n ctx.drawImage(e.target, 0, 0);\n // const colors = [\n // ctx.getImageData(0, 0, 1, 1).data,\n // ctx.getImageData(e.target.width - 1, 0, 1, 1).data,\n // ctx.getImageData(0, e.target.height - 1, 1, 1).data,\n // ctx.getImageData(\n // e.target.width - 1,\n // e.target.height - 1,\n // 1,\n // 1,\n // ).data,\n // ];\n // Get 10x10 pixels from corners, get average color from each\n const pixelDimension = 10;\n const colors = [\n ctx.getImageData(0, 0, pixelDimension, pixelDimension)\n .data,\n ctx.getImageData(\n e.target.width - pixelDimension,\n 0,\n pixelDimension,\n pixelDimension,\n ).data,\n ctx.getImageData(\n 0,\n e.target.height - pixelDimension,\n pixelDimension,\n pixelDimension,\n ).data,\n ctx.getImageData(\n e.target.width - pixelDimension,\n e.target.height - pixelDimension,\n pixelDimension,\n pixelDimension,\n ).data,\n ].map((data) => {\n let r = 0;\n let g = 0;\n let b = 0;\n let a = 0;\n for (let i = 0; i < data.length; i += 4) {\n r += data[i];\n g += data[i + 1];\n b += data[i + 2];\n a += data[i + 3];\n }\n const dataLength = data.length / 4;\n return [\n r / dataLength,\n g / dataLength,\n b / dataLength,\n a / dataLength,\n ];\n });\n const rgbColors = colors.map((color) => {\n const [r, g, b, a] = lightenRGB(color);\n return `rgba(${r}, ${g}, ${b}, ${a})`;\n });\n setHeaderCornerColors(rgbColors);\n console.log({ colors, rgbColors });\n } catch (e) {\n // Silently fail\n }\n }}\n />\n )}\n
    \n {standalone ? (\n \n {}}\n />\n \n }\n >\n
    \n \n
    \n {\n const handle = `@${acct}`;\n try {\n navigator.clipboard.writeText(handle);\n showToast('Handle copied');\n } catch (e) {\n console.error(e);\n showToast('Unable to copy handle');\n }\n }}\n >\n \n Copy handle\n \n \n \n Go to original profile page\n \n \n \n \n View profile image\n \n \n \n View profile header\n \n \n ) : (\n \n )}\n
    \n
    \n
    \n {!!memorial && In Memoriam}\n {!!bot && (\n \n Automated\n \n )}\n {!!group && (\n \n Group\n \n )}\n {roles?.map((role) => (\n \n {role.name}\n {!!accountInstance && (\n <>\n {' '}\n {accountInstance}\n \n )}\n \n ))}\n \n \n )}\n
    \n {\n // states.showAccount = false;\n setTimeout(() => {\n states.showGenericAccounts = {\n id: 'followers',\n heading: 'Followers',\n fetchAccounts: fetchFollowers,\n instance,\n excludeRelationshipAttrs: isSelf\n ? ['followedBy']\n : [],\n blankCopy: hideCollections\n ? 'This user has chosen to not make this information available.'\n : undefined,\n };\n }, 0);\n }}\n >\n {!!familiarFollowers.length && (\n \n \n {familiarFollowers.map((follower) => (\n \n ))}\n \n \n )}\n \n {shortenNumber(followersCount)}\n {' '}\n Followers\n \n {\n // states.showAccount = false;\n setTimeout(() => {\n states.showGenericAccounts = {\n heading: 'Following',\n fetchAccounts: fetchFollowing,\n instance,\n excludeRelationshipAttrs: isSelf ? ['following'] : [],\n blankCopy: hideCollections\n ? 'This user has chosen to not make this information available.'\n : undefined,\n };\n }, 0);\n }}\n >\n \n {shortenNumber(followingCount)}\n {' '}\n Following\n
    \n \n {\n // hideAllModals();\n // }\n // }\n >\n \n {shortenNumber(statusesCount)}\n {' '}\n Posts\n \n {!!createdAt && (\n
    \n Joined{' '}\n \n
    \n )}\n
    \n
    \n {!!postingStats && (\n
    \n ) : (\n <>\n {statusPeekText}\n {status.sensitive && status.spoilerText && (\n <>\n {' '}\n \n \n \n \n )}\n \n )}\n \n \n );\n}\n\nfunction inBackground() {\n return !!document.querySelector('.deck-backdrop, #modal-container > *');\n}\n\nexport default Timeline;\n","import { MenuItem } from '@szhsin/react-menu';\nimport {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'preact/hooks';\nimport punycode from 'punycode';\nimport { useParams, useSearchParams } from 'react-router-dom';\nimport { useSnapshot } from 'valtio';\n\nimport AccountInfo from '../components/account-info';\nimport EmojiText from '../components/emoji-text';\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport Menu2 from '../components/menu2';\nimport Timeline from '../components/timeline';\nimport { api } from '../utils/api';\nimport pmem from '../utils/pmem';\nimport showToast from '../utils/show-toast';\nimport states from '../utils/states';\nimport { saveStatus } from '../utils/states';\nimport { isMediaFirstInstance } from '../utils/store-utils';\nimport useTitle from '../utils/useTitle';\n\nconst LIMIT = 20;\nconst MIN_YEAR = 1983;\nconst MIN_YEAR_MONTH = `${MIN_YEAR}-01`; // Birth of the Internet\n\nconst supportsInputMonth = (() => {\n try {\n const input = document.createElement('input');\n input.setAttribute('type', 'month');\n return input.type === 'month';\n } catch (e) {\n return false;\n }\n})();\n\nasync function _isSearchEnabled(instance) {\n const { masto } = api({ instance });\n const results = await masto.v2.search.fetch({\n q: 'from:me',\n type: 'statuses',\n limit: 1,\n });\n return !!results?.statuses?.length;\n}\nconst isSearchEnabled = pmem(_isSearchEnabled);\n\nfunction AccountStatuses() {\n const snapStates = useSnapshot(states);\n const { id, ...params } = useParams();\n const [searchParams, setSearchParams] = useSearchParams();\n const month = searchParams.get('month');\n const excludeReplies = !searchParams.get('replies');\n const excludeBoosts = !!searchParams.get('boosts');\n const tagged = searchParams.get('tagged');\n const media = !!searchParams.get('media');\n const { masto, instance, authenticated } = api({ instance: params.instance });\n const { masto: currentMasto, instance: currentInstance } = api();\n const accountStatusesIterator = useRef();\n\n const allSearchParams = [month, excludeReplies, excludeBoosts, tagged, media];\n const [account, setAccount] = useState();\n const searchOffsetRef = useRef(0);\n useEffect(() => {\n searchOffsetRef.current = 0;\n }, allSearchParams);\n\n const mediaFirst = useMemo(() => isMediaFirstInstance(), []);\n\n const sameCurrentInstance = useMemo(\n () => instance === currentInstance,\n [instance, currentInstance],\n );\n const [searchEnabled, setSearchEnabled] = useState(false);\n useEffect(() => {\n // Only enable for current logged-in instance\n // Most remote instances don't allow unauthenticated searches\n if (!sameCurrentInstance) return;\n if (!account?.acct) return;\n (async () => {\n const enabled = await isSearchEnabled(instance);\n console.log({ enabled });\n setSearchEnabled(enabled);\n })();\n }, [instance, sameCurrentInstance, account?.acct]);\n\n async function fetchAccountStatuses(firstLoad) {\n const isValidMonth = /^\\d{4}-[01]\\d$/.test(month);\n const isValidYear = month?.split?.('-')?.[0] >= MIN_YEAR;\n if (isValidMonth && isValidYear) {\n if (!account) {\n return {\n value: [],\n done: true,\n };\n }\n const [_year, _month] = month.split('-');\n const monthIndex = parseInt(_month, 10) - 1;\n // YYYY-MM (no day)\n // Search options:\n // - from:account\n // - after:YYYY-MM-DD (non-inclusive)\n // - before:YYYY-MM-DD (non-inclusive)\n\n // Last day of previous month\n const after = new Date(_year, monthIndex, 0);\n const afterStr = `${after.getFullYear()}-${(after.getMonth() + 1)\n .toString()\n .padStart(2, '0')}-${after.getDate().toString().padStart(2, '0')}`;\n // First day of next month\n const before = new Date(_year, monthIndex + 1, 1);\n const beforeStr = `${before.getFullYear()}-${(before.getMonth() + 1)\n .toString()\n .padStart(2, '0')}-${before.getDate().toString().padStart(2, '0')}`;\n console.log({\n month,\n _year,\n _month,\n monthIndex,\n after,\n before,\n afterStr,\n beforeStr,\n });\n\n let limit;\n if (firstLoad) {\n limit = LIMIT + 1;\n searchOffsetRef.current = 0;\n } else {\n limit = LIMIT + searchOffsetRef.current + 1;\n searchOffsetRef.current += LIMIT;\n }\n\n const searchResults = await masto.v2.search.fetch({\n q: `from:${account.acct} after:${afterStr} before:${beforeStr}`,\n type: 'statuses',\n limit,\n offset: searchOffsetRef.current,\n });\n if (searchResults?.statuses?.length) {\n const value = searchResults.statuses.slice(0, LIMIT);\n value.forEach((item) => {\n saveStatus(item, instance);\n });\n const done = searchResults.statuses.length <= LIMIT;\n return { value, done };\n } else {\n return { value: [], done: true };\n }\n }\n\n let results = [];\n if (firstLoad) {\n const { value } = await masto.v1.accounts\n .$select(id)\n .statuses.list({\n pinned: true,\n })\n .next();\n if (value?.length && !tagged && !media) {\n const pinnedStatuses = value.map((status) => {\n saveStatus(status, instance);\n return {\n ...status,\n _pinned: true,\n };\n });\n if (pinnedStatuses.length >= 3) {\n const pinnedStatusesIds = pinnedStatuses.map((status) => status.id);\n results.push({\n id: pinnedStatusesIds,\n items: pinnedStatuses,\n type: 'pinned',\n });\n } else {\n results.push(...pinnedStatuses);\n }\n }\n }\n if (firstLoad || !accountStatusesIterator.current) {\n accountStatusesIterator.current = masto.v1.accounts\n .$select(id)\n .statuses.list({\n limit: LIMIT,\n exclude_replies: excludeReplies,\n exclude_reblogs: excludeBoosts,\n only_media: media || undefined,\n tagged,\n });\n }\n const { value, done } = await accountStatusesIterator.current.next();\n if (value?.length) {\n // Check if value is same as pinned post (results)\n // If the index for every post is the same, means API might not support pinned posts\n if (results.length) {\n let pinnedStatusesIds = [];\n if (results[0]?.type === 'pinned') {\n pinnedStatusesIds = results[0].id;\n } else {\n pinnedStatusesIds = results\n .filter((status) => status._pinned)\n .map((status) => status.id);\n }\n const containsAllPinned = pinnedStatusesIds.every((postId) =>\n value.some((status) => status.id === postId),\n );\n if (containsAllPinned) {\n // Remove pinned posts\n results = [];\n }\n }\n\n results.push(...value);\n\n value.forEach((item) => {\n saveStatus(item, instance);\n });\n }\n return {\n value: results,\n done,\n };\n }\n\n const [featuredTags, setFeaturedTags] = useState([]);\n useTitle(\n account?.acct\n ? `${\n account?.displayName\n ? `${account.displayName} (${/@/.test(account.acct) ? '' : '@'}${\n account.acct\n })`\n : `${/@/.test(account.acct) ? '' : '@'}${account.acct}`\n }${\n !excludeReplies\n ? ' (+ Replies)'\n : excludeBoosts\n ? ' (- Boosts)'\n : tagged\n ? ` (#${tagged})`\n : media\n ? ' (Media)'\n : month\n ? ` (${new Date(month).toLocaleString('default', {\n month: 'long',\n year: 'numeric',\n })})`\n : ''\n }`\n : 'Account posts',\n '/:instance?/a/:id',\n );\n\n const fetchAccountPromiseRef = useRef();\n const fetchAccount = useCallback(() => {\n const fetchPromise =\n fetchAccountPromiseRef.current || masto.v1.accounts.$select(id).fetch();\n fetchAccountPromiseRef.current = fetchPromise;\n return fetchPromise;\n }, [id, masto]);\n\n useEffect(() => {\n (async () => {\n try {\n const acc = await fetchAccount();\n console.log(acc);\n setAccount(acc);\n } catch (e) {\n console.error(e);\n }\n // No need, because the whole filter bar is hidden\n // TODO: Revisit this\n if (!mediaFirst) {\n try {\n const featuredTags = await masto.v1.accounts\n .$select(id)\n .featuredTags.list();\n console.log({ featuredTags });\n setFeaturedTags(featuredTags);\n } catch (e) {\n console.error(e);\n }\n }\n })();\n }, [id, mediaFirst]);\n\n const { displayName, acct, emojis } = account || {};\n\n const filterBarRef = useRef();\n const TimelineStart = useMemo(() => {\n const filtered =\n !excludeReplies || excludeBoosts || tagged || media || !!month;\n const cachedAccount = snapStates.accounts[`${id}@${instance}`];\n\n return (\n <>\n \n {!mediaFirst && (\n \n {filtered ? (\n \n \n \n ) : (\n \n )}\n {\n if (excludeReplies) {\n showToast('Showing post with replies');\n }\n }}\n class={excludeReplies ? '' : 'is-active'}\n >\n + Replies\n \n {\n if (!excludeBoosts) {\n showToast('Showing posts without boosts');\n }\n }}\n class={!excludeBoosts ? '' : 'is-active'}\n >\n - Boosts\n \n {\n if (!media) {\n showToast('Showing posts with media');\n }\n }}\n class={media ? 'is-active' : ''}\n >\n Media\n \n {featuredTags.map((tag) => (\n {\n if (tagged !== tag.name) {\n showToast(`Showing posts tagged with #${tag.name}`);\n }\n }}\n class={tagged === tag.name ? 'is-active' : ''}\n >\n \n #\n {tag.name}\n \n {\n // The count differs based on instance 😅\n }\n {/* {tag.statusesCount} */}\n \n ))}\n {searchEnabled &&\n (supportsInputMonth ? (\n \n ) : (\n // Fallback to for year\n {\n const { value, validity } = e;\n if (!validity.valid) return;\n setSearchParams(\n value\n ? {\n month: value,\n }\n : {},\n );\n }}\n />\n ))}\n \n )}\n \n );\n }, [\n id,\n instance,\n authenticated,\n featuredTags,\n fetchAccount,\n searchEnabled,\n ...allSearchParams,\n ]);\n\n useEffect(() => {\n // Focus on .is-active\n const active = filterBarRef.current?.querySelector('.is-active');\n if (active) {\n console.log('active', active, active.offsetLeft);\n filterBarRef.current.scrollTo({\n behavior: 'smooth',\n left:\n active.offsetLeft -\n (filterBarRef.current.offsetWidth - active.offsetWidth) / 2,\n });\n }\n }, [featuredTags, searchEnabled, ...allSearchParams]);\n\n const accountInstance = useMemo(() => {\n if (!account?.url) return null;\n const domain = new URL(account.url).hostname;\n return domain;\n }, [account]);\n const sameInstance = instance === accountInstance;\n const allowSwitch = !!account && !sameInstance;\n\n return (\n {\n // states.showAccount = {\n // account,\n // instance,\n // };\n // }}\n >\n \n \n \n
    \n @{acct}\n
    \n \n }\n id=\"account-statuses\"\n instance={instance}\n emptyText=\"Nothing to see here yet.\"\n errorText=\"Unable to load posts\"\n fetchItems={fetchAccountStatuses}\n useItemID\n view={media || mediaFirst ? 'media' : undefined}\n boostsCarousel={snapStates.settings.boostsCarousel}\n timelineStart={TimelineStart}\n refresh={[\n excludeReplies,\n excludeBoosts,\n tagged,\n media,\n month + account?.acct,\n ].toString()}\n headerEnd={\n \n \n \n }\n >\n {\n (async () => {\n try {\n const { masto } = api({\n instance: accountInstance,\n });\n const acc = await masto.v1.accounts.lookup({\n acct: account.acct,\n });\n const { id } = acc;\n location.hash = `/${accountInstance}/a/${id}`;\n } catch (e) {\n console.error(e);\n alert('Unable to fetch account info');\n }\n })();\n }}\n >\n {' '}\n \n Switch to account's instance{' '}\n {accountInstance ? (\n <>\n {' '}\n ({punycode.toUnicode(accountInstance)})\n \n ) : null}\n \n \n {!sameCurrentInstance && (\n {\n (async () => {\n try {\n const acc = await currentMasto.v1.accounts.lookup({\n acct: account.acct + '@' + instance,\n });\n const { id } = acc;\n location.hash = `/${currentInstance}/a/${id}`;\n } catch (e) {\n console.error(e);\n alert('Unable to fetch account info');\n }\n })();\n }}\n >\n {' '}\n \n Switch to my instance ({currentInstance})\n \n \n )}\n \n }\n />\n );\n}\n\nfunction MonthPicker(props) {\n const {\n class: className,\n disabled,\n value,\n min,\n max,\n onInput = () => {},\n } = props;\n const [_year, _month] = value?.split('-') || [];\n const monthFieldRef = useRef();\n const yearFieldRef = useRef();\n\n const checkValidity = (month, year) => {\n const [minYear, minMonth] = min?.split('-') || [];\n const [maxYear, maxMonth] = max?.split('-') || [];\n if (year < minYear) return false;\n if (year > maxYear) return false;\n if (year === minYear && month < minMonth) return false;\n if (year === maxYear && month > maxMonth) return false;\n return true;\n };\n\n return (\n
    \n \n {\n const { value: month } = e.currentTarget;\n const year = yearFieldRef.current.value;\n if (!checkValidity(month, year))\n return {\n value: '',\n validity: {\n valid: false,\n },\n };\n onInput({\n value: month ? `${year}-${month}` : '',\n validity: {\n valid: true,\n },\n });\n }}\n >\n \n \n {Array.from({ length: 12 }, (_, i) => (\n \n {new Date(0, i).toLocaleString('default', {\n month: 'long',\n })}\n \n ))}\n {' '}\n {\n const { value: year, validity } = e.currentTarget;\n const month = monthFieldRef.current.value;\n if (!validity.valid || !checkValidity(month, year))\n return {\n value: '',\n validity: {\n valid: false,\n },\n };\n onInput({\n value: year ? `${year}-${month}` : '',\n validity: {\n valid: true,\n },\n });\n }}\n style={{\n width: '4.5em',\n }}\n />\n
    \n );\n}\n\nexport default AccountStatuses;\n","import { useRef } from 'preact/hooks';\n\nimport Timeline from '../components/timeline';\nimport { api } from '../utils/api';\nimport useTitle from '../utils/useTitle';\n\nconst LIMIT = 20;\n\nfunction Bookmarks() {\n useTitle('Bookmarks', '/b');\n const { masto, instance } = api();\n const bookmarksIterator = useRef();\n async function fetchBookmarks(firstLoad) {\n if (firstLoad || !bookmarksIterator.current) {\n bookmarksIterator.current = masto.v1.bookmarks.list({ limit: LIMIT });\n }\n return await bookmarksIterator.current.next();\n }\n\n return (\n \n );\n}\n\nexport default Bookmarks;\n","export default \"__VITE_ASSET__S_9SYp01__\"","import '../components/links-bar.css';\nimport './catchup.css';\n\nimport autoAnimate from '@formkit/auto-animate';\nimport { getBlurHashAverageColor } from 'fast-blurhash';\nimport { Fragment } from 'preact';\nimport { memo } from 'preact/compat';\nimport {\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'preact/hooks';\nimport punycode from 'punycode';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport { useSearchParams } from 'react-router-dom';\nimport { uid } from 'uid/single';\n\nimport catchupUrl from '../assets/features/catch-up.png';\n\nimport Avatar from '../components/avatar';\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport Loader from '../components/loader';\nimport Modal from '../components/modal';\nimport NameText from '../components/name-text';\nimport NavMenu from '../components/nav-menu';\nimport RelativeTime from '../components/relative-time';\nimport { api } from '../utils/api';\nimport { oklab2rgb, rgb2oklab } from '../utils/color-utils';\nimport db from '../utils/db';\nimport emojifyText from '../utils/emojify-text';\nimport { isFiltered } from '../utils/filters';\nimport htmlContentLength from '../utils/html-content-length';\nimport niceDateTime from '../utils/nice-date-time';\nimport shortenNumber from '../utils/shorten-number';\nimport showToast from '../utils/show-toast';\nimport states, { statusKey } from '../utils/states';\nimport statusPeek from '../utils/status-peek';\nimport store from '../utils/store';\nimport { getCurrentAccountID, getCurrentAccountNS } from '../utils/store-utils';\nimport supports from '../utils/supports';\nimport { assignFollowedTags } from '../utils/timeline-utils';\nimport useTitle from '../utils/useTitle';\n\nconst FILTER_CONTEXT = 'home';\n\nconst RANGES = [\n { label: 'last 1 hour', value: 1 },\n { label: 'last 2 hours', value: 2 },\n { label: 'last 3 hours', value: 3 },\n { label: 'last 4 hours', value: 4 },\n { label: 'last 5 hours', value: 5 },\n { label: 'last 6 hours', value: 6 },\n { label: 'last 7 hours', value: 7 },\n { label: 'last 8 hours', value: 8 },\n { label: 'last 9 hours', value: 9 },\n { label: 'last 10 hours', value: 10 },\n { label: 'last 11 hours', value: 11 },\n { label: 'last 12 hours', value: 12 },\n { label: 'beyond 12 hours', value: 13 },\n];\n\nconst FILTER_LABELS = [\n 'Original',\n 'Replies',\n 'Boosts',\n 'Followed tags',\n 'Groups',\n 'Filtered',\n];\nconst FILTER_SORTS = [\n 'createdAt',\n 'repliesCount',\n 'favouritesCount',\n 'reblogsCount',\n 'density',\n];\nconst FILTER_GROUPS = [null, 'account'];\nconst FILTER_VALUES = {\n Filtered: 'filtered',\n Groups: 'group',\n Boosts: 'boost',\n Replies: 'reply',\n 'Followed tags': 'followedTags',\n Original: 'original',\n};\nconst FILTER_CATEGORY_TEXT = {\n Filtered: 'filtered posts',\n Groups: 'group posts',\n Boosts: 'boosts',\n Replies: 'replies',\n 'Followed tags': 'followed-tag posts',\n Original: 'original posts',\n};\nconst SORT_BY_TEXT = {\n // asc, desc\n createdAt: ['oldest', 'latest'],\n repliesCount: ['fewest replies', 'most replies'],\n favouritesCount: ['fewest likes', 'most likes'],\n reblogsCount: ['fewest boosts', 'most boosts'],\n density: ['least dense', 'most dense'],\n};\n\nfunction Catchup() {\n useTitle('Catch-up', '/catchup');\n const { masto, instance } = api();\n const [searchParams, setSearchParams] = useSearchParams();\n const id = searchParams.get('id');\n const [uiState, setUIState] = useState('start');\n const [showTopLinks, setShowTopLinks] = useState(false);\n\n const currentAccount = useMemo(() => {\n return getCurrentAccountID();\n }, []);\n const isSelf = (accountID) => accountID === currentAccount;\n\n const supportsPixelfed = supports('@pixelfed/home-include-reblogs');\n\n async function fetchHome({ maxCreatedAt }) {\n const maxCreatedAtDate = maxCreatedAt ? new Date(maxCreatedAt) : null;\n console.debug('fetchHome', maxCreatedAtDate);\n const allResults = [];\n const homeIterator = masto.v1.timelines.home.list({ limit: 40 });\n mainloop: while (true) {\n try {\n if (supportsPixelfed && homeIterator.nextParams) {\n if (typeof homeIterator.nextParams === 'string') {\n homeIterator.nextParams += '&include_reblogs=true';\n } else {\n homeIterator.nextParams.include_reblogs = true;\n }\n }\n const results = await homeIterator.next();\n const { value } = results;\n if (value?.length) {\n // This ignores maxCreatedAt filter, but it's ok for now\n await assignFollowedTags(value, instance);\n let addedResults = false;\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const createdAtDate = new Date(item.createdAt);\n if (!maxCreatedAtDate || createdAtDate >= maxCreatedAtDate) {\n // Filtered\n const selfPost = isSelf(\n item.reblog?.account?.id || item.account.id,\n );\n const filterInfo =\n !selfPost &&\n isFiltered(\n item.reblog?.filtered || item.filtered,\n FILTER_CONTEXT,\n );\n if (filterInfo?.action === 'hide') continue;\n item._filtered = filterInfo;\n\n // Followed tags\n const sKey = statusKey(item.id, instance);\n item._followedTags = states.statusFollowedTags[sKey]\n ? [...states.statusFollowedTags[sKey]]\n : [];\n\n allResults.push(item);\n addedResults = true;\n } else {\n // Don't immediately stop, still add the other items that might still be within range\n // break mainloop;\n }\n // Only stop when ALL items are outside of range\n if (!addedResults) {\n break mainloop;\n }\n }\n } else {\n break mainloop;\n }\n // Pause 1s\n await new Promise((resolve) => setTimeout(resolve, 1000));\n } catch (e) {\n console.error(e);\n break mainloop;\n }\n }\n\n // Post-process all results\n // 1. Threadify - tag 1st-post in a thread\n allResults.forEach((status) => {\n if (status?.inReplyToId) {\n const replyToStatus = allResults.find(\n (s) => s.id === status.inReplyToId,\n );\n if (replyToStatus && !replyToStatus.inReplyToId) {\n replyToStatus._thread = true;\n }\n }\n });\n\n return allResults;\n }\n\n const [posts, setPosts] = useState([]);\n const catchupRangeRef = useRef();\n const catchupLastRef = useRef();\n const NS = useMemo(() => getCurrentAccountNS(), []);\n const handleCatchupClick = useCallback(async ({ duration } = {}) => {\n const now = Date.now();\n const maxCreatedAt = duration ? now - duration : null;\n setUIState('loading');\n const results = await fetchHome({ maxCreatedAt });\n // Namespaced by account ID\n // Possible conflict if ID matches between different accounts from different instances\n const catchupID = `${NS}-${uid()}`;\n try {\n await db.catchup.set(catchupID, {\n id: catchupID,\n posts: results,\n count: results.length,\n startAt: maxCreatedAt,\n endAt: now,\n });\n setSearchParams({ id: catchupID });\n } catch (e) {\n console.error(e, results);\n }\n }, []);\n\n useEffect(() => {\n if (id) {\n (async () => {\n const catchup = await db.catchup.get(id);\n if (catchup) {\n catchup.posts.sort((a, b) => (a.createdAt > b.createdAt ? 1 : -1));\n setPosts(catchup.posts);\n setUIState('results');\n }\n })();\n } else if (uiState === 'results') {\n setPosts([]);\n setUIState('start');\n }\n }, [id]);\n\n const [reloadCatchupsCount, reloadCatchups] = useReducer((c) => c + 1, 0);\n const [lastCatchupEndAt, setLastCatchupEndAt] = useState(null);\n const [prevCatchups, setPrevCatchups] = useState([]);\n useEffect(() => {\n (async () => {\n try {\n const catchups = await db.catchup.keys();\n if (catchups.length) {\n const ns = getCurrentAccountNS();\n const ownKeys = catchups.filter((key) => key.startsWith(`${ns}-`));\n if (ownKeys.length) {\n let ownCatchups = await db.catchup.getMany(ownKeys);\n ownCatchups.sort((a, b) => b.endAt - a.endAt);\n\n // Split to 1st 3 last catchups, and the rest\n let lastCatchups = ownCatchups.slice(0, 3);\n let restCatchups = ownCatchups.slice(3);\n\n const trimmedCatchups = lastCatchups.map((c) => {\n const { id, count, startAt, endAt } = c;\n return {\n id,\n count,\n startAt,\n endAt,\n };\n });\n setPrevCatchups(trimmedCatchups);\n setLastCatchupEndAt(lastCatchups[0].endAt);\n\n // GC time\n ownCatchups = null;\n lastCatchups = null;\n\n queueMicrotask(() => {\n if (restCatchups.length) {\n // delete them\n db.catchup\n .delMany(restCatchups.map((c) => c.id))\n .then(() => {\n // GC time\n restCatchups = null;\n })\n .catch((e) => {\n console.error(e);\n });\n }\n });\n\n return;\n }\n }\n } catch (e) {\n console.error(e);\n }\n setPrevCatchups([]);\n })();\n }, [reloadCatchupsCount]);\n useEffect(() => {\n if (uiState === 'start') {\n reloadCatchups();\n }\n }, [uiState === 'start']);\n\n const [filterCounts, links] = useMemo(() => {\n let filtereds = 0,\n groups = 0,\n boosts = 0,\n replies = 0,\n followedTags = 0,\n originals = 0;\n const links = {};\n for (const post of posts) {\n if (post._filtered) {\n filtereds++;\n post.__FILTER = 'filtered';\n } else if (post.group) {\n groups++;\n post.__FILTER = 'group';\n } else if (post.reblog) {\n boosts++;\n post.__FILTER = 'boost';\n } else if (post._followedTags?.length) {\n followedTags++;\n post.__FILTER = 'followedTags';\n } else if (\n post.inReplyToId &&\n post.inReplyToAccountId !== post.account?.id\n ) {\n replies++;\n post.__FILTER = 'reply';\n } else {\n originals++;\n post.__FILTER = 'original';\n }\n\n const thePost = post.reblog || post;\n if (\n post.__FILTER !== 'filtered' &&\n thePost.card?.url &&\n thePost.card?.image &&\n thePost.card?.type === 'link'\n ) {\n const { card, favouritesCount, reblogsCount } = thePost;\n let { url } = card;\n url = url.replace(/\\/$/, '');\n if (!links[url]) {\n links[url] = {\n postID: thePost.id,\n card,\n shared: 1,\n sharers: [post.account],\n likes: favouritesCount,\n boosts: reblogsCount,\n };\n } else {\n if (links[url].sharers.find((a) => a.id === post.account.id)) {\n continue;\n }\n links[url].shared++;\n links[url].sharers.push(post.account);\n if (links[url].postID !== thePost.id) {\n links[url].likes += favouritesCount;\n links[url].boosts += reblogsCount;\n }\n }\n }\n }\n\n let topLinks = [];\n for (const link in links) {\n topLinks.push({\n url: link,\n ...links[link],\n });\n }\n topLinks.sort((a, b) => {\n if (a.shared > b.shared) return -1;\n if (a.shared < b.shared) return 1;\n if (a.boosts > b.boosts) return -1;\n if (a.boosts < b.boosts) return 1;\n if (a.likes > b.likes) return -1;\n if (a.likes < b.likes) return 1;\n return 0;\n });\n\n // Slice links to shared > 1 but min 10 links\n if (topLinks.length > 10) {\n linksLoop: for (let i = 10; i < topLinks.length; i++) {\n const { shared } = topLinks[i];\n if (shared <= 1) {\n topLinks = topLinks.slice(0, i);\n break linksLoop;\n }\n }\n }\n\n return [\n {\n Filtered: filtereds,\n Groups: groups,\n Boosts: boosts,\n Replies: replies,\n 'Followed tags': followedTags,\n Original: originals,\n },\n topLinks,\n ];\n }, [posts]);\n\n const [selectedFilterCategory, setSelectedFilterCategory] = useState('All');\n const [selectedAuthor, setSelectedAuthor] = useState(null);\n\n const [range, setRange] = useState(1);\n\n const [sortBy, setSortBy] = useState('createdAt');\n const [sortOrder, setSortOrder] = useState('asc');\n const [groupBy, setGroupBy] = useState(null);\n\n const [filteredPosts, authors, authorCounts] = useMemo(() => {\n const authorsHash = {};\n const authorCountsMap = new Map();\n\n let filteredPosts = posts.filter((post) => {\n const postFilterMatches =\n selectedFilterCategory === 'All' ||\n post.__FILTER === FILTER_VALUES[selectedFilterCategory];\n\n if (postFilterMatches) {\n authorsHash[post.account.id] = post.account;\n authorCountsMap.set(\n post.account.id,\n (authorCountsMap.get(post.account.id) || 0) + 1,\n );\n }\n\n return postFilterMatches;\n });\n\n // Deduplicate boosts\n const boostedPosts = {};\n filteredPosts.forEach((post) => {\n if (post.reblog) {\n if (boostedPosts[post.reblog.id]) {\n if (boostedPosts[post.reblog.id].__BOOSTERS) {\n boostedPosts[post.reblog.id].__BOOSTERS.add(post.account);\n } else {\n boostedPosts[post.reblog.id].__BOOSTERS = new Set([post.account]);\n }\n post.__HIDDEN = true;\n } else {\n boostedPosts[post.reblog.id] = post;\n }\n }\n });\n\n if (selectedAuthor && authorCountsMap.has(selectedAuthor)) {\n filteredPosts = filteredPosts.filter(\n (post) =>\n post.account.id === selectedAuthor ||\n [...(post.__BOOSTERS || [])].find((a) => a.id === selectedAuthor),\n );\n }\n\n return [filteredPosts, authorsHash, Object.fromEntries(authorCountsMap)];\n }, [selectedFilterCategory, selectedAuthor, posts]);\n\n const filteredPostsMap = useMemo(() => {\n const map = {};\n filteredPosts.forEach((post) => {\n map[post.id] = post;\n });\n return map;\n }, [filteredPosts]);\n\n const authorCountsList = useMemo(\n () =>\n Object.keys(authorCounts).sort(\n (a, b) => authorCounts[b] - authorCounts[a],\n ),\n [authorCounts],\n );\n\n const sortedFilteredPosts = useMemo(() => {\n const authorIndices = {};\n authorCountsList.forEach((authorID, index) => {\n authorIndices[authorID] = index;\n });\n return filteredPosts\n .filter((post) => !post.__HIDDEN)\n .sort((a, b) => {\n if (groupBy === 'account') {\n const aAccountID = a.account.id;\n const bAccountID = b.account.id;\n const aIndex = authorIndices[aAccountID];\n const bIndex = authorIndices[bAccountID];\n const order = aIndex - bIndex;\n if (order !== 0) {\n return order;\n }\n }\n if (sortBy !== 'createdAt') {\n a = a.reblog || a;\n b = b.reblog || b;\n if (sortBy !== 'density' && a[sortBy] === b[sortBy]) {\n return a.createdAt > b.createdAt ? 1 : -1;\n }\n }\n if (sortBy === 'density') {\n const aDensity = postDensity(a);\n const bDensity = postDensity(b);\n if (sortOrder === 'asc') {\n return aDensity > bDensity ? 1 : -1;\n } else {\n return bDensity > aDensity ? 1 : -1;\n }\n }\n if (sortOrder === 'asc') {\n return a[sortBy] > b[sortBy] ? 1 : -1;\n } else {\n return b[sortBy] > a[sortBy] ? 1 : -1;\n }\n });\n }, [filteredPosts, sortBy, sortOrder, groupBy, authorCountsList]);\n\n const prevGroup = useRef(null);\n\n const authorsListParent = useRef(null);\n const autoAnimated = useRef(false);\n useEffect(() => {\n if (posts.length > 100 || autoAnimated.current) return;\n if (authorsListParent.current) {\n autoAnimate(authorsListParent.current, {\n duration: 200,\n });\n autoAnimated.current = true;\n }\n }, [posts, authorsListParent]);\n\n const postsBarType = posts.length > 160 ? '3d' : '2d';\n\n const postsBar = useMemo(() => {\n if (postsBarType !== '2d') return null;\n return posts.map((post) => {\n // If part of filteredPosts\n const isFiltered = filteredPostsMap[post.id];\n return (\n \n );\n });\n }, [filteredPostsMap]);\n\n const postsBins = useMemo(() => {\n if (postsBarType !== '3d') return null;\n if (!posts?.length) return null;\n const bins = binByTime(posts, 'createdAt', 320);\n return bins.map((posts, i) => {\n return (\n
    \n {posts.map((post) => {\n const isFiltered = filteredPostsMap[post.id];\n return (\n \n );\n })}\n
    \n );\n });\n }, [filteredPostsMap]);\n\n const scrollableRef = useRef(null);\n\n // if range value exceeded lastCatchupEndAt, show error\n const lastCatchupRange = useMemo(() => {\n // return hour, not ms\n if (!lastCatchupEndAt) return null;\n return (Date.now() - lastCatchupEndAt) / 1000 / 60 / 60;\n }, [lastCatchupEndAt, range]);\n\n useEffect(() => {\n if (uiState !== 'results') return;\n const authorUsername =\n selectedAuthor && authors[selectedAuthor]\n ? authors[selectedAuthor].username\n : '';\n const sortOrderIndex = sortOrder === 'asc' ? 0 : 1;\n const groupByText = {\n account: 'authors',\n };\n let toast = showToast({\n duration: 5_000, // 5 seconds\n text: `Showing ${\n FILTER_CATEGORY_TEXT[selectedFilterCategory] || 'all posts'\n }${authorUsername ? ` by @${authorUsername}` : ''}, ${\n SORT_BY_TEXT[sortBy][sortOrderIndex]\n } first${\n !!groupBy\n ? `, grouped by ${groupBy === 'account' ? groupByText[groupBy] : ''}`\n : ''\n }`,\n });\n return () => {\n toast?.hideToast?.();\n };\n }, [\n uiState,\n selectedFilterCategory,\n selectedAuthor,\n sortBy,\n sortOrder,\n groupBy,\n authors,\n ]);\n\n useEffect(() => {\n if (selectedAuthor) {\n if (authors[selectedAuthor]) {\n // Check if author is visible and within the scrollable area viewport\n const authorElement = authorsListParent.current.querySelector(\n `[data-author=\"${selectedAuthor}\"]`,\n );\n const scrollableRect =\n authorsListParent.current?.getBoundingClientRect();\n const authorRect = authorElement?.getBoundingClientRect();\n console.log({\n sLeft: scrollableRect.left,\n sRight: scrollableRect.right,\n aLeft: authorRect.left,\n aRight: authorRect.right,\n });\n if (\n authorRect.left < scrollableRect.left ||\n authorRect.right > scrollableRect.right\n ) {\n authorElement.scrollIntoView({\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n });\n } else if (authorRect.top < 0) {\n authorElement.scrollIntoView({\n block: 'nearest',\n inline: 'nearest',\n behavior: 'smooth',\n });\n }\n }\n }\n }, [selectedAuthor, authors]);\n\n const [showHelp, setShowHelp] = useState(false);\n\n const itemsSelector = '.catchup-list > li > a';\n const jRef = useHotkeys(\n 'j',\n () => {\n const activeItem = document.activeElement.closest(itemsSelector);\n const activeItemRect = activeItem?.getBoundingClientRect();\n const allItems = Array.from(\n scrollableRef.current.querySelectorAll(itemsSelector),\n );\n if (\n activeItem &&\n activeItemRect.top < scrollableRef.current.clientHeight &&\n activeItemRect.bottom > 0\n ) {\n const activeItemIndex = allItems.indexOf(activeItem);\n const nextItem = allItems[activeItemIndex + 1];\n if (nextItem) {\n nextItem.focus();\n nextItem.scrollIntoView({\n block: 'center',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n } else {\n const topmostItem = allItems.find((item) => {\n const itemRect = item.getBoundingClientRect();\n return itemRect.top >= 0;\n });\n if (topmostItem) {\n topmostItem.focus();\n topmostItem.scrollIntoView({\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n }\n },\n {\n preventDefault: true,\n ignoreModifiers: true,\n },\n );\n\n const kRef = useHotkeys(\n 'k',\n () => {\n const activeItem = document.activeElement.closest(itemsSelector);\n const activeItemRect = activeItem?.getBoundingClientRect();\n const allItems = Array.from(\n scrollableRef.current.querySelectorAll(itemsSelector),\n );\n if (\n activeItem &&\n activeItemRect.top < scrollableRef.current.clientHeight &&\n activeItemRect.bottom > 0\n ) {\n const activeItemIndex = allItems.indexOf(activeItem);\n let prevItem = allItems[activeItemIndex - 1];\n if (prevItem) {\n prevItem.focus();\n prevItem.scrollIntoView({\n block: 'center',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n } else {\n const topmostItem = allItems.find((item) => {\n const itemRect = item.getBoundingClientRect();\n return itemRect.top >= 44 && itemRect.left >= 0;\n });\n if (topmostItem) {\n topmostItem.focus();\n topmostItem.scrollIntoView({\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n });\n }\n }\n },\n {\n preventDefault: true,\n ignoreModifiers: true,\n },\n );\n\n const hlRef = useHotkeys(\n 'h, l',\n (_, handler) => {\n // Go next/prev selectedAuthor in authorCountsList list\n const key = handler.keys[0];\n if (selectedAuthor) {\n const index = authorCountsList.indexOf(selectedAuthor);\n if (key === 'h') {\n if (index > 0 && index < authorCountsList.length) {\n setSelectedAuthor(authorCountsList[index - 1]);\n scrollableRef.current?.focus();\n }\n } else if (key === 'l') {\n if (index < authorCountsList.length - 1 && index >= 0) {\n setSelectedAuthor(authorCountsList[index + 1]);\n scrollableRef.current?.focus();\n }\n }\n } else if (key === 'l') {\n setSelectedAuthor(authorCountsList[0]);\n scrollableRef.current?.focus();\n }\n },\n {\n preventDefault: true,\n ignoreModifiers: true,\n enableOnFormTags: ['input'],\n },\n );\n\n const escRef = useHotkeys(\n 'esc',\n () => {\n setSelectedAuthor(null);\n scrollableRef.current?.focus();\n },\n {\n preventDefault: true,\n ignoreModifiers: true,\n enableOnFormTags: ['input'],\n },\n );\n\n const dotRef = useHotkeys(\n '.',\n () => {\n scrollableRef.current?.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n },\n {\n preventDefault: true,\n ignoreModifiers: true,\n enableOnFormTags: ['input'],\n },\n );\n\n return (\n {\n scrollableRef.current = node;\n jRef.current = node;\n kRef.current = node;\n hlRef.current = node;\n escRef.current = node;\n }}\n id=\"catchup-page\"\n class=\"deck-container\"\n tabIndex=\"-1\"\n >\n
    \n {\n if (!e.target.closest('a, button')) {\n scrollableRef.current?.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }\n }}\n >\n
    \n
    \n \n {uiState === 'results' && (\n \n \n \n )}\n {uiState === 'start' && (\n \n \n \n )}\n
    \n

    \n {uiState !== 'start' && (\n <>\n Catch-up beta\n \n )}\n

    \n
    \n {uiState !== 'start' && uiState !== 'loading' && (\n {\n setShowHelp(true);\n }}\n >\n Help\n \n )}\n
    \n
    \n \n
    \n {uiState === 'start' && (\n
    \n

    \n Catch-up beta\n

    \n
    \n What is this?\n

    \n Catch-up is a separate timeline for your followings, offering\n a high-level view at a glance, with a simple, email-inspired\n interface to effortlessly sort and filter through posts.\n

    \n \n

    \n {\n e.target.closest('details').open = false;\n }}\n >\n Let's catch up\n \n

    \n
    \n

    Let's catch up on the posts from your followings.

    \n

    \n Show me all posts from…\n

    \n
    \n setRange(+e.target.value)}\n />{' '}\n \n {RANGES[range - 1].label}\n
    \n \n {range == RANGES[RANGES.length - 1].value\n ? 'until the max'\n : niceDateTime(\n new Date(Date.now() - range * 60 * 60 * 1000),\n )}\n \n \n \n {RANGES.map(({ label, value }) => (\n {' '}\n {\n if (range < RANGES[RANGES.length - 1].value) {\n let duration;\n if (\n range === RANGES[RANGES.length - 1].value &&\n catchupLastRef.current?.checked\n ) {\n duration = Date.now() - lastCatchupEndAt;\n } else {\n duration = range * 60 * 60 * 1000;\n }\n handleCatchupClick({ duration });\n } else {\n handleCatchupClick();\n }\n }}\n >\n Catch up\n \n
    \n {lastCatchupRange && range > lastCatchupRange ? (\n

    \n Overlaps with your last catch-up\n

    \n ) : range === RANGES[RANGES.length - 1].value &&\n lastCatchupEndAt ? (\n

    \n \n

    \n ) : null}\n

    \n \n Note: your instance might only show a maximum of 800 posts in\n the Home timeline regardless of the time range. Could be less\n or more.\n \n

    \n {!!prevCatchups?.length && (\n
    \n

    Previously…

    \n
      \n {prevCatchups.map((pc) => (\n
    • \n \n {' '}\n \n {pc.startAt\n ? dtf.formatRange(\n new Date(pc.startAt),\n new Date(pc.endAt),\n )\n : `… – ${dtf.format(new Date(pc.endAt))}`}\n \n {' '}\n \n \n {pc.count} posts\n {' '}\n {\n const yes = confirm('Remove this catch-up?');\n if (yes) {\n let t = showToast(`Removing Catch-up ${pc.id}`);\n await db.catchup.del(pc.id);\n t?.hideToast?.();\n showToast(`Catch-up ${pc.id} removed`);\n reloadCatchups();\n }\n }}\n >\n \n \n \n
    • \n ))}\n
    \n {prevCatchups.length >= 3 && (\n

    \n \n Note: Only max 3 will be stored. The rest will be\n automatically removed.\n \n

    \n )}\n
    \n )}\n
    \n )}\n {uiState === 'loading' && (\n
    \n \n

    Fetching posts…

    \n

    This might take a while.

    \n
    \n )}\n {uiState === 'results' && (\n <>\n
    \n {posts.length > 0 && (\n

    \n \n {dtf.formatRange(\n new Date(posts[0].createdAt),\n new Date(posts[posts.length - 1].createdAt),\n )}\n \n

    \n )}\n \n
    \n \n {posts.length >= 5 &&\n (postsBarType === '3d' ? (\n
    {postsBins}
    \n ) : (\n
    {postsBar}
    \n ))}\n {posts.length >= 2 && (\n
    \n \n {FILTER_LABELS.map(\n (label) =>\n !!filterCounts[label] && (\n \n {\n setSelectedFilterCategory(label);\n // setSelectedAuthor(null);\n }}\n />\n {label}{' '}\n {filterCounts[label]}\n \n ),\n )}\n
    \n )}\n {posts.length >= 2 && !!authorCounts && (\n \n {authorCountsList.map((author) => (\n \n {\n setSelectedAuthor(author);\n // setGroupBy(null);\n }}\n onClick={() => {\n if (selectedAuthor === author) {\n setSelectedAuthor(null);\n }\n }}\n />\n {' '}\n {authorCounts[author]}\n {authors[author].username}\n \n ))}\n {authorCountsList.length > 5 && (\n \n {authorCountsList.length} authors\n \n )}\n
    \n )}\n {posts.length >= 2 && (\n
    \n Sort{' '}\n
    \n {FILTER_SORTS.map((key) => (\n {\n if (sortBy === key) {\n e.preventDefault();\n e.stopPropagation();\n setSortOrder(sortOrder === 'asc' ? 'desc' : 'asc');\n }\n }}\n >\n {\n setSortBy(key);\n const order = /(replies|favourites|reblogs)/.test(\n key,\n )\n ? 'desc'\n : 'asc';\n setSortOrder(order);\n }}\n />\n {\n {\n createdAt: 'Date',\n repliesCount: 'Replies',\n favouritesCount: 'Likes',\n reblogsCount: 'Boosts',\n density: 'Density',\n }[key]\n }\n {sortBy === key && (sortOrder === 'asc' ? ' ↑' : ' ↓')}\n \n ))}\n
    \n {/*
    \n {['asc', 'desc'].map((key) => (\n \n ))}\n
    */}\n Group{' '}\n
    \n {FILTER_GROUPS.map((key) => (\n \n ))}\n
    \n {\n selectedAuthor && authorCountsList.length > 1 ? (\n {\n setSelectedAuthor(null);\n }}\n style={{\n whiteSpace: 'nowrap',\n }}\n >\n Show all authors\n \n ) : null\n // {}}\n // >\n // Group by authors\n // \n }\n
    \n )}\n \n {sortedFilteredPosts.map((post, i) => {\n const id = post.reblog?.id || post.id;\n let showSeparator = false;\n if (groupBy === 'account') {\n if (\n prevGroup.current &&\n post.account.id !== prevGroup.current &&\n i > 0\n ) {\n showSeparator = true;\n }\n prevGroup.current = post.account.id;\n }\n return (\n \n {showSeparator &&
  • }\n \n \n );\n })}\n \n
    \n {filteredPosts.length > 5 && (\n

    \n {selectedFilterCategory === 'Boosts'\n ? \"You don't have to read everything.\"\n : \"That's all.\"}{' '}\n {\n scrollableRef.current.scrollTop = 0;\n }}\n >\n Back to top\n \n .\n

    \n )}\n
    \n \n )}\n \n \n {showHelp && (\n setShowHelp(false)}>\n
    \n setShowHelp(false)}\n >\n \n \n
    \n

    Help

    \n
    \n
    \n
    \n
    Top links
    \n
    \n Links shared by followings, sorted by shared counts, boosts\n and likes.\n
    \n
    Sort: Density
    \n
    \n Posts are sorted by information density or depth. Shorter\n posts are \"lighter\" while longer posts are \"heavier\". Posts\n with photos are \"heavier\" than posts without photos.\n
    \n
    Group: Authors
    \n
    \n Posts are grouped by authors, sorted by posts count per\n author.\n
    \n
    Keyboard shortcuts
    \n
    \n j: Next post\n
    \n
    \n k: Previous post\n
    \n
    \n l: Next author\n
    \n
    \n h: Previous author\n
    \n
    \n Enter: Open post details\n
    \n
    \n .: Scroll to top\n
    \n
    \n
    \n
    \n
    \n )}\n \n );\n}\n\nconst PostLine = memo(\n function ({ post }) {\n const {\n id,\n account,\n group,\n reblog,\n inReplyToId,\n inReplyToAccountId,\n _followedTags: isFollowedTags,\n _filtered: filterInfo,\n visibility,\n __BOOSTERS,\n } = post;\n const isReplyTo = inReplyToId && inReplyToAccountId !== account.id;\n const isFiltered = !!filterInfo;\n\n const debugHover = (e) => {\n if (e.shiftKey) {\n console.log({\n ...post,\n });\n }\n };\n\n return (\n \n \n {reblog ? (\n \n \n {__BOOSTERS?.size > 0\n ? [...__BOOSTERS].map((b) => (\n \n ))\n : ''}{' '}\n {' '}\n {/* */}\n \n \n ) : (\n \n )}\n \n \n \n {' '}\n \n \n \n );\n },\n (oldProps, newProps) => {\n return oldProps?.post?.id === newProps?.post?.id;\n },\n);\n\nconst IntersectionPostLineItem = ({ root, to, ...props }) => {\n const ref = useRef();\n const [show, setShow] = useState(false);\n useEffect(() => {\n const observer = new IntersectionObserver(\n (entries) => {\n const entry = entries[0];\n if (entry.isIntersecting) {\n queueMicrotask(() => setShow(true));\n observer.unobserve(ref.current);\n }\n },\n {\n root,\n rootMargin: `${Math.max(320, screen.height * 0.75)}px`,\n },\n );\n if (ref.current) observer.observe(ref.current);\n return () => {\n if (ref.current) observer.unobserve(ref.current);\n };\n }, []);\n\n return show ? (\n
  • \n \n \n \n
  • \n ) : (\n
  • \n );\n};\n\n// A media speak a thousand words\nconst MEDIA_DENSITY = 8;\nconst CARD_DENSITY = 8;\nfunction postDensity(post) {\n const { spoilerText, content, poll, mediaAttachments, card } = post;\n const pollContent = poll?.options?.length\n ? poll.options.reduce((acc, cur) => acc + cur.title, '')\n : '';\n const density =\n (spoilerText.length + htmlContentLength(content) + pollContent.length) /\n 140 +\n (mediaAttachments?.length\n ? MEDIA_DENSITY * mediaAttachments.length\n : card?.image\n ? CARD_DENSITY\n : 0);\n return density;\n}\n\nconst MEDIA_SIZE = 48;\n\nfunction PostPeek({ post, filterInfo }) {\n const {\n spoilerText,\n sensitive,\n content,\n emojis,\n poll,\n mediaAttachments,\n card,\n inReplyToId,\n inReplyToAccountId,\n account,\n _thread,\n } = post;\n const isThread =\n (inReplyToId && inReplyToAccountId === account.id) || !!_thread;\n\n const readingExpandSpoilers = useMemo(() => {\n const prefs = store.account.get('preferences') || {};\n return !!prefs['reading:expand:spoilers'];\n }, []);\n // const readingExpandSpoilers = true;\n const showMedia = readingExpandSpoilers || (!spoilerText && !sensitive);\n const postText = content ? statusPeek(post) : '';\n\n const showPostContent = !spoilerText || readingExpandSpoilers;\n\n return (\n
    \n \n {isThread && !showPostContent && (\n <>\n Thread{' '}\n \n )}\n {!!filterInfo ? (\n \n Filtered{filterInfo?.titlesStr ? `: ${filterInfo.titlesStr}` : ''}\n \n ) : (\n <>\n {!!spoilerText && (\n \n {' '}\n {spoilerText}\n \n )}\n {showPostContent && (\n
    \n {isThread && (\n <>\n Thread{' '}\n \n )}\n {!!content && (\n \n )}\n {!!poll?.options?.length &&\n poll.options.map((o) => (\n
    \n {poll.multiple ? '▪️' : '•'} {o.title}\n
    \n ))}\n {!content &&\n mediaAttachments?.length === 1 &&\n mediaAttachments[0].description && (\n <>\n ALT{' '}\n
    {mediaAttachments[0].description}
    \n \n )}\n
    \n )}\n \n )}\n
    \n {!filterInfo && (\n \n {!!poll && (\n \n \n Poll\n \n )}\n {!!mediaAttachments?.length\n ? mediaAttachments.map((m) => {\n const mediaURL = m.previewUrl || m.url;\n const remoteMediaURL = m.previewRemoteUrl || m.remoteUrl;\n return (\n \n {{\n image:\n (mediaURL || remoteMediaURL) && showMedia ? (\n {\n const { src } = e.target;\n if (src === mediaURL) {\n e.target.src = remoteMediaURL;\n }\n }}\n />\n ) : (\n 🖼\n ),\n gifv:\n (mediaURL || remoteMediaURL) && showMedia ? (\n {\n const { src } = e.target;\n if (src === mediaURL) {\n e.target.src = remoteMediaURL;\n }\n }}\n />\n ) : (\n 🎞️\n ),\n video:\n (mediaURL || remoteMediaURL) && showMedia ? (\n {\n const { src } = e.target;\n if (src === mediaURL) {\n e.target.src = remoteMediaURL;\n }\n }}\n />\n ) : (\n 📹\n ),\n audio: 🎵,\n }[m.type] || null}\n \n );\n })\n : !!card &&\n card.image &&\n showMedia && (\n \n {card.image ? (\n \n ) : (\n 🔗\n )}\n \n )}\n \n )}\n
    \n );\n}\n\nfunction PostStats({ post }) {\n const { reblogsCount, repliesCount, favouritesCount } = post;\n return (\n \n {repliesCount > 0 && (\n \n {shortenNumber(repliesCount)}\n \n )}\n {favouritesCount > 0 && (\n \n {shortenNumber(favouritesCount)}\n \n )}\n {reblogsCount > 0 && (\n \n {shortenNumber(reblogsCount)}\n \n )}\n \n );\n}\n\nconst { locale } = new Intl.DateTimeFormat().resolvedOptions();\nconst dtf = new Intl.DateTimeFormat(locale, {\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n});\n\nfunction binByTime(data, key, numBins) {\n // Extract dates from data objects\n const dates = data.map((item) => new Date(item[key]));\n\n // Find minimum and maximum dates directly (avoiding Math.min/max)\n const minDate = dates.reduce(\n (acc, date) => (date < acc ? date : acc),\n dates[0],\n );\n const maxDate = dates.reduce(\n (acc, date) => (date > acc ? date : acc),\n dates[0],\n );\n\n // Calculate the time span in milliseconds\n const range = maxDate.getTime() - minDate.getTime();\n\n // Create empty bins and loop through data\n const bins = Array.from({ length: numBins }, () => []);\n data.forEach((item) => {\n const date = new Date(item[key]);\n const normalized = (date.getTime() - minDate.getTime()) / range;\n const binIndex = Math.floor(normalized * (numBins - 1));\n bins[binIndex].push(item);\n });\n\n return bins;\n}\n\nexport default Catchup;\n","import { useRef } from 'preact/hooks';\n\nimport Timeline from '../components/timeline';\nimport { api } from '../utils/api';\nimport useTitle from '../utils/useTitle';\n\nconst LIMIT = 20;\n\nfunction Favourites() {\n useTitle('Likes', '/f');\n const { masto, instance } = api();\n const favouritesIterator = useRef();\n async function fetchFavourites(firstLoad) {\n if (firstLoad || !favouritesIterator.current) {\n favouritesIterator.current = masto.v1.favourites.list({ limit: LIMIT });\n }\n return await favouritesIterator.current.next();\n }\n\n return (\n \n );\n}\n\nexport default Favourites;\n","import './filters.css';\n\nimport { useEffect, useReducer, useRef, useState } from 'preact/hooks';\n\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport Loader from '../components/loader';\nimport MenuConfirm from '../components/menu-confirm';\nimport Modal from '../components/modal';\nimport NavMenu from '../components/nav-menu';\nimport RelativeTime from '../components/relative-time';\nimport { api } from '../utils/api';\nimport useInterval from '../utils/useInterval';\nimport useTitle from '../utils/useTitle';\n\nconst FILTER_CONTEXT = ['home', 'public', 'notifications', 'thread', 'account'];\nconst FILTER_CONTEXT_UNIMPLEMENTED = ['notifications', 'thread', 'account'];\nconst FILTER_CONTEXT_LABELS = {\n home: 'Home and lists',\n notifications: 'Notifications',\n public: 'Public timelines',\n thread: 'Conversations',\n account: 'Profiles',\n};\n\nconst EXPIRY_DURATIONS = [\n 0, // forever\n 30 * 60, // 30 minutes\n 60 * 60, // 1 hour\n 6 * 60 * 60, // 6 hours\n 12 * 60 * 60, // 12 hours\n 60 * 60 * 24, // 24 hours\n 60 * 60 * 24 * 7, // 7 days\n 60 * 60 * 24 * 30, // 30 days\n];\nconst EXPIRY_DURATIONS_LABELS = {\n 0: 'Never',\n 1800: '30 minutes',\n 3600: '1 hour',\n 21600: '6 hours',\n 43200: '12 hours',\n 86_400: '24 hours',\n 604_800: '7 days',\n 2_592_000: '30 days',\n};\n\nfunction Filters() {\n const { masto } = api();\n useTitle(`Filters`, `/ft`);\n const [uiState, setUIState] = useState('default');\n const [showFiltersAddEditModal, setShowFiltersAddEditModal] = useState(false);\n\n const [reloadCount, reload] = useReducer((c) => c + 1, 0);\n const [filters, setFilters] = useState([]);\n useEffect(() => {\n setUIState('loading');\n (async () => {\n try {\n const filters = await masto.v2.filters.list();\n filters.sort((a, b) => a.title.localeCompare(b.title));\n filters.forEach((filter) => {\n if (filter.keywords?.length) {\n filter.keywords.sort((a, b) => a.id - b.id);\n }\n });\n console.log(filters);\n setFilters(filters);\n setUIState('default');\n } catch (e) {\n console.error(e);\n setUIState('error');\n }\n })();\n }, [reloadCount]);\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n

    Filters

    \n
    \n {\n setShowFiltersAddEditModal(true);\n }}\n >\n \n \n
    \n
    \n
    \n
    \n {filters.length > 0 ? (\n <>\n
      \n {filters.map((filter) => {\n const { id, title, expiresAt, keywords } = filter;\n return (\n
    • \n
      \n

      {title}

      \n {keywords?.length > 0 && (\n
      \n {keywords.map((k) => (\n <>\n \n {k.wholeWord ? `“${k.keyword}”` : k.keyword}\n {' '}\n \n ))}\n
      \n )}\n \n \n \n
      \n {\n setShowFiltersAddEditModal({\n filter,\n });\n }}\n >\n \n \n
    • \n );\n })}\n
    \n {filters.length > 1 && (\n
    \n \n {filters.length} filter\n {filters.length === 1 ? '' : 's'}\n \n
    \n )}\n \n ) : uiState === 'loading' ? (\n

    \n \n

    \n ) : uiState === 'error' ? (\n

    Unable to load filters.

    \n ) : (\n

    No filters yet.

    \n )}\n
    \n
    \n {!!showFiltersAddEditModal && (\n {\n setShowFiltersAddEditModal(false);\n }}\n >\n {\n if (result.state === 'success') {\n reload();\n }\n setShowFiltersAddEditModal(false);\n }}\n />\n \n )}\n
    \n );\n}\n\nlet _id = 1;\nconst incID = () => _id++;\nfunction FiltersAddEdit({ filter, onClose }) {\n const { masto } = api();\n const [uiState, setUIState] = useState('default');\n const editMode = !!filter;\n const { context, expiresAt, id, keywords, title, filterAction } =\n filter || {};\n const hasExpiry = !!expiresAt;\n const expiresAtDate = hasExpiry && new Date(expiresAt);\n const [editKeywords, setEditKeywords] = useState(keywords || []);\n const keywordsRef = useRef();\n\n // Hacky way of handling removed keywords for both existing and new ones\n const [removedKeywordIDs, setRemovedKeywordIDs] = useState([]);\n const [removedKeyword_IDs, setRemovedKeyword_IDs] = useState([]);\n\n const filteredEditKeywords = editKeywords.filter(\n (k) =>\n !removedKeywordIDs.includes(k.id) && !removedKeyword_IDs.includes(k._id),\n );\n\n return (\n
    \n {!!onClose && (\n \n )}\n
    \n

    {editMode ? 'Edit filter' : 'New filter'}

    \n
    \n
    \n {\n e.preventDefault();\n const formData = new FormData(e.target);\n const title = formData.get('title');\n const keywordIDs = formData.getAll('keyword_attributes[][id]');\n const keywordKeywords = formData.getAll(\n 'keyword_attributes[][keyword]',\n );\n // const keywordWholeWords = formData.getAll(\n // 'keyword_attributes[][whole_word]',\n // );\n // Not using getAll because it skips the empty checkboxes\n const keywordWholeWords = [\n ...keywordsRef.current.querySelectorAll(\n 'input[name=\"keyword_attributes[][whole_word]\"]',\n ),\n ].map((i) => i.checked);\n const keywordsAttributes = keywordKeywords.map((k, i) => ({\n id: keywordIDs[i] || undefined,\n keyword: k,\n wholeWord: keywordWholeWords[i],\n }));\n // if (editMode && keywords?.length) {\n // // Find which one got deleted and add to keywordsAttributes\n // keywords.forEach((k) => {\n // if (!keywordsAttributes.find((ka) => ka.id === k.id)) {\n // keywordsAttributes.push({\n // ...k,\n // _destroy: true,\n // });\n // }\n // });\n // }\n if (editMode && removedKeywordIDs?.length) {\n removedKeywordIDs.forEach((id) => {\n keywordsAttributes.push({\n id,\n _destroy: true,\n });\n });\n }\n const context = formData.getAll('context');\n let expiresIn = formData.get('expires_in');\n const filterAction = formData.get('filter_action');\n console.log({\n title,\n keywordIDs,\n keywords: keywordKeywords,\n wholeWords: keywordWholeWords,\n keywordsAttributes,\n context,\n expiresIn,\n filterAction,\n });\n\n // Required fields\n if (!title || !context?.length) {\n return;\n }\n\n setUIState('loading');\n\n (async () => {\n try {\n let filterResult;\n\n if (editMode) {\n if (expiresIn === '' || expiresIn === null) {\n // No value\n // Preserve existing expiry if not specified\n // Seconds from now to expiresAtDate\n // Other clients don't do this\n if (hasExpiry) {\n expiresIn = Math.floor(\n (expiresAtDate - new Date()) / 1000,\n );\n } else {\n expiresIn = null;\n }\n } else if (expiresIn === '0' || expiresIn === 0) {\n // 0 = Never\n expiresIn = null;\n } else {\n expiresIn = +expiresIn;\n }\n filterResult = await masto.v2.filters.$select(id).update({\n title,\n context,\n expiresIn,\n keywordsAttributes,\n filterAction,\n });\n } else {\n expiresIn = +expiresIn || null;\n filterResult = await masto.v2.filters.create({\n title,\n context,\n expiresIn,\n keywordsAttributes,\n filterAction,\n });\n }\n console.log({ filterResult });\n setUIState('default');\n onClose?.({\n state: 'success',\n filter: filterResult,\n });\n } catch (error) {\n console.error(error);\n setUIState('error');\n alert(\n editMode\n ? 'Unable to edit filter'\n : 'Unable to create filter',\n );\n }\n })();\n }}\n >\n
    \n \n
    \n
    \n {filteredEditKeywords.length ? (\n
      \n {filteredEditKeywords.map((k) => {\n const { id, keyword, wholeWord, _id } = k;\n return (\n
    • \n \n \n
      \n \n {\n if (id) {\n removedKeywordIDs.push(id);\n setRemovedKeywordIDs([...removedKeywordIDs]);\n } else if (_id) {\n removedKeyword_IDs.push(_id);\n setRemovedKeyword_IDs([...removedKeyword_IDs]);\n }\n }}\n >\n \n \n
      \n
    • \n );\n })}\n
    \n ) : (\n
    \n
    No keywords. Add one.
    \n
    \n )}\n
    \n {\n setEditKeywords([\n ...editKeywords,\n {\n _id: incID(),\n keyword: '',\n wholeWord: true,\n },\n ]);\n setTimeout(() => {\n // Focus last input\n const fields =\n keywordsRef.current.querySelectorAll(\n 'input[type=\"text\"]',\n );\n fields[fields.length - 1]?.focus?.();\n }, 10);\n }}\n >\n Add keyword\n {' '}\n {filteredEditKeywords?.length > 1 && (\n \n {filteredEditKeywords.length} keyword\n {filteredEditKeywords.length === 1 ? '' : 's'}\n \n )}\n
    \n
    \n
    \n
    \n
    \n Filter from…\n
    \n {FILTER_CONTEXT.map((ctx) => (\n
    \n \n {' '}\n {FILTER_CONTEXT_LABELS[ctx]}\n {FILTER_CONTEXT_UNIMPLEMENTED.includes(ctx) ? '*' : ''}\n {' '}\n
    \n ))}\n

    \n * Not implemented yet\n

    \n
    \n
    \n {editMode && (\n <>\n Status:{' '}\n \n \n \n \n )}\n
    \n \n \n {editMode && }\n {EXPIRY_DURATIONS.map((v) => (\n \n ))}\n \n
    \n

    \n Filtered post will be…\n
    \n {' '}\n \n

    \n
    \n
    \n
    \n \n {' '}\n \n {editMode && (\n {\n setUIState('loading');\n (async () => {\n try {\n await masto.v2.filters.$select(id).remove();\n setUIState('default');\n onClose?.({\n state: 'success',\n });\n } catch (e) {\n console.error(e);\n setUIState('error');\n alert('Unable to delete filter.');\n }\n })();\n }}\n >\n {}}\n disabled={uiState === 'loading'}\n >\n Delete…\n \n \n )}\n
    \n \n
    \n
    \n );\n}\n\nfunction ExpiryStatus({ expiresAt, showNeverExpires }) {\n const hasExpiry = !!expiresAt;\n const expiresAtDate = hasExpiry && new Date(expiresAt);\n const expired = hasExpiry && expiresAtDate <= new Date();\n\n // If less than a minute left, re-render interval every second, else every minute\n const [_, rerender] = useReducer((c) => c + 1, 0);\n useInterval(rerender, expired || 30_000);\n\n return expired ? (\n 'Expired'\n ) : hasExpiry ? (\n <>\n Expiring \n \n ) : (\n showNeverExpires && 'Never expires'\n );\n}\n\nexport default Filters;\n","import { useEffect, useState } from 'preact/hooks';\n\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport Loader from '../components/loader';\nimport NavMenu from '../components/nav-menu';\nimport { api } from '../utils/api';\nimport { fetchFollowedTags } from '../utils/followed-tags';\nimport useTitle from '../utils/useTitle';\n\nfunction FollowedHashtags() {\n const { masto, instance } = api();\n useTitle(`Followed Hashtags`, `/fh`);\n const [uiState, setUIState] = useState('default');\n\n const [followedHashtags, setFollowedHashtags] = useState([]);\n useEffect(() => {\n setUIState('loading');\n (async () => {\n try {\n const tags = await fetchFollowedTags();\n setFollowedHashtags(tags);\n setUIState('default');\n } catch (e) {\n console.error(e);\n setUIState('error');\n }\n })();\n }, []);\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n

    Followed Hashtags

    \n
    \n
    \n
    \n
    \n {followedHashtags.length > 0 ? (\n <>\n \n {followedHashtags.length > 1 && (\n
    \n \n {followedHashtags.length} hashtag\n {followedHashtags.length === 1 ? '' : 's'}\n \n
    \n )}\n \n ) : uiState === 'loading' ? (\n

    \n \n

    \n ) : uiState === 'error' ? (\n

    Unable to load followed hashtags.

    \n ) : (\n

    No hashtags followed yet.

    \n )}\n
    \n
    \n
    \n );\n}\n\nexport default FollowedHashtags;\n","import { useEffect, useRef } from 'preact/hooks';\nimport { useSnapshot } from 'valtio';\n\nimport Timeline from '../components/timeline';\nimport { api } from '../utils/api';\nimport { filteredItems } from '../utils/filters';\nimport states from '../utils/states';\nimport { getStatus, saveStatus } from '../utils/states';\nimport supports from '../utils/supports';\nimport {\n assignFollowedTags,\n clearFollowedTagsState,\n dedupeBoosts,\n} from '../utils/timeline-utils';\nimport useTitle from '../utils/useTitle';\n\nconst LIMIT = 20;\n\nfunction Following({ title, path, id, ...props }) {\n useTitle(title || 'Following', path || '/following');\n const { masto, streaming, instance } = api();\n const snapStates = useSnapshot(states);\n const homeIterator = useRef();\n const latestItem = useRef();\n\n console.debug('RENDER Following', title, id);\n const supportsPixelfed = supports('@pixelfed/home-include-reblogs');\n\n async function fetchHome(firstLoad) {\n if (firstLoad || !homeIterator.current) {\n homeIterator.current = masto.v1.timelines.home.list({ limit: LIMIT });\n }\n if (supportsPixelfed && homeIterator.current?.nextParams) {\n if (typeof homeIterator.current.nextParams === 'string') {\n homeIterator.current.nextParams += '&include_reblogs=true';\n } else {\n homeIterator.current.nextParams.include_reblogs = true;\n }\n }\n const results = await homeIterator.current.next();\n let { value } = results;\n if (value?.length) {\n let latestItemChanged = false;\n if (firstLoad) {\n if (value[0].id !== latestItem.current) {\n latestItemChanged = true;\n }\n latestItem.current = value[0].id;\n console.log('First load', latestItem.current);\n }\n\n // value = filteredItems(value, 'home');\n value.forEach((item) => {\n saveStatus(item, instance);\n });\n value = dedupeBoosts(value, instance);\n if (firstLoad && latestItemChanged) clearFollowedTagsState();\n assignFollowedTags(value, instance);\n\n // ENFORCE sort by datetime (Latest first)\n value.sort((a, b) => {\n const aDate = new Date(a.createdAt);\n const bDate = new Date(b.createdAt);\n return bDate - aDate;\n });\n }\n return {\n ...results,\n value,\n };\n }\n\n async function checkForUpdates() {\n try {\n const opts = {\n limit: 5,\n since_id: latestItem.current,\n };\n if (supports('@pixelfed/home-include-reblogs')) {\n opts.include_reblogs = true;\n }\n const results = await masto.v1.timelines.home.list(opts).next();\n let { value } = results;\n console.log('checkForUpdates', latestItem.current, value);\n const valueContainsLatestItem = value[0]?.id === latestItem.current; // since_id might not be supported\n if (value?.length && !valueContainsLatestItem) {\n latestItem.current = value[0].id;\n value = dedupeBoosts(value, instance);\n value = filteredItems(value, 'home');\n if (value.some((item) => !item.reblog)) {\n return true;\n }\n }\n return false;\n } catch (e) {\n return false;\n }\n }\n\n useEffect(() => {\n let sub;\n (async () => {\n if (streaming) {\n sub = streaming.user.subscribe();\n console.log('🎏 Streaming user', sub);\n for await (const entry of sub) {\n if (!sub) break;\n if (entry.event === 'status.update') {\n const status = entry.payload;\n console.log(`🔄 Status ${status.id} updated`);\n saveStatus(status, instance);\n } else if (entry.event === 'delete') {\n const statusID = entry.payload;\n console.log(`❌ Status ${statusID} deleted`);\n // delete states.statuses[statusID];\n const s = getStatus(statusID, instance);\n if (s) s._deleted = true;\n }\n }\n console.log('💥 Streaming user loop STOPPED');\n }\n })();\n return () => {\n sub?.unsubscribe?.();\n sub = null;\n };\n }, [streaming]);\n\n return (\n \n );\n}\n\nexport default Following;\n","import {\n FocusableItem,\n MenuDivider,\n MenuGroup,\n MenuHeader,\n MenuItem,\n} from '@szhsin/react-menu';\nimport { useEffect, useMemo, useRef, useState } from 'preact/hooks';\nimport { useNavigate, useParams, useSearchParams } from 'react-router-dom';\n\nimport Icon from '../components/icon';\nimport Menu2 from '../components/menu2';\nimport MenuConfirm from '../components/menu-confirm';\nimport { SHORTCUTS_LIMIT } from '../components/shortcuts-settings';\nimport Timeline from '../components/timeline';\nimport { api } from '../utils/api';\nimport { filteredItems } from '../utils/filters';\nimport showToast from '../utils/show-toast';\nimport states from '../utils/states';\nimport { saveStatus } from '../utils/states';\nimport { isMediaFirstInstance } from '../utils/store-utils';\nimport useTitle from '../utils/useTitle';\n\nconst LIMIT = 20;\n\n// Limit is 4 per \"mode\"\n// https://github.com/mastodon/mastodon/issues/15194\n// Hard-coded https://github.com/mastodon/mastodon/blob/19614ba2477f3d12468f5ec251ce1cc5f8c6210c/app/models/tag_feed.rb#L4\nconst TAGS_LIMIT_PER_MODE = 4;\nconst TOTAL_TAGS_LIMIT = TAGS_LIMIT_PER_MODE + 1;\n\nfunction Hashtags({ media: mediaView, columnMode, ...props }) {\n // const navigate = useNavigate();\n let { hashtag, ...params } = columnMode ? {} : useParams();\n if (props.hashtag) hashtag = props.hashtag;\n let hashtags = hashtag.trim().split(/[\\s+]+/);\n hashtags.sort();\n hashtag = hashtags[0];\n const [searchParams, setSearchParams] = useSearchParams();\n const media = mediaView || !!searchParams.get('media');\n const linkParams = media ? '?media=1' : '';\n\n const { masto, instance, authenticated } = api({\n instance: props?.instance || params.instance,\n });\n const {\n masto: currentMasto,\n instance: currentInstance,\n authenticated: currentAuthenticated,\n } = api();\n const hashtagTitle = hashtags.map((t) => `#${t}`).join(' ');\n const hashtagPostTitle = media ? ` (Media only)` : '';\n const title = instance\n ? `${hashtagTitle}${hashtagPostTitle} on ${instance}`\n : `${hashtagTitle}${hashtagPostTitle}`;\n useTitle(title, `/:instance?/t/:hashtag`);\n const latestItem = useRef();\n\n const mediaFirst = useMemo(() => isMediaFirstInstance(), []);\n\n // const hashtagsIterator = useRef();\n const maxID = useRef(undefined);\n async function fetchHashtags(firstLoad) {\n // if (firstLoad || !hashtagsIterator.current) {\n // hashtagsIterator.current = masto.v1.timelines.tag.$select(hashtag).list({\n // limit: LIMIT,\n // any: hashtags.slice(1),\n // });\n // }\n // const results = await hashtagsIterator.current.next();\n\n // NOTE: Temporary fix for listHashtag not persisting `any` in subsequent calls.\n const results = await masto.v1.timelines.tag\n .$select(hashtag)\n .list({\n limit: LIMIT,\n any: hashtags.slice(1),\n maxId: firstLoad ? undefined : maxID.current,\n onlyMedia: media ? true : undefined,\n })\n .next();\n let { value } = results;\n if (value?.length) {\n if (firstLoad) {\n latestItem.current = value[0].id;\n }\n\n // value = filteredItems(value, 'public');\n value.forEach((item) => {\n saveStatus(item, instance, {\n skipThreading: media || mediaFirst, // If media view, no need to form threads\n });\n });\n\n maxID.current = value[value.length - 1].id;\n }\n return {\n ...results,\n value,\n };\n }\n\n async function checkForUpdates() {\n try {\n const results = await masto.v1.timelines.tag\n .$select(hashtag)\n .list({\n limit: 1,\n any: hashtags.slice(1),\n since_id: latestItem.current,\n onlyMedia: media,\n })\n .next();\n let { value } = results;\n const valueContainsLatestItem = value[0]?.id === latestItem.current; // since_id might not be supported\n if (value?.length && !valueContainsLatestItem) {\n value = filteredItems(value, 'public');\n return true;\n }\n return false;\n } catch (e) {\n return false;\n }\n }\n\n const [followUIState, setFollowUIState] = useState('default');\n const [info, setInfo] = useState();\n // Get hashtag info\n useEffect(() => {\n (async () => {\n try {\n const info = await masto.v1.tags.$select(hashtag).fetch();\n console.log(info);\n setInfo(info);\n } catch (e) {\n console.error(e);\n }\n })();\n }, [hashtag]);\n\n const reachLimit = hashtags.length >= TOTAL_TAGS_LIMIT;\n\n return (\n \n {hashtagTitle}\n
    {instance}
    \n \n )\n }\n id=\"hashtag\"\n instance={instance}\n emptyText=\"No one has posted anything with this tag yet.\"\n errorText=\"Unable to load posts with this tag\"\n fetchItems={fetchHashtags}\n checkForUpdates={checkForUpdates}\n useItemID\n view={media || mediaFirst ? 'media' : undefined}\n refresh={media}\n // allowFilters\n filterContext=\"public\"\n headerEnd={\n \n \n \n }\n >\n {!!info && hashtags.length === 1 && (\n <>\n {\n setFollowUIState('loading');\n if (info.following) {\n // const yes = confirm(`Unfollow #${hashtag}?`);\n // if (!yes) {\n // setFollowUIState('default');\n // return;\n // }\n masto.v1.tags\n .$select(hashtag)\n .unfollow()\n .then(() => {\n setInfo({ ...info, following: false });\n showToast(`Unfollowed #${hashtag}`);\n })\n .catch((e) => {\n alert(e);\n console.error(e);\n })\n .finally(() => {\n setFollowUIState('default');\n });\n } else {\n masto.v1.tags\n .$select(hashtag)\n .follow()\n .then(() => {\n setInfo({ ...info, following: true });\n showToast(`Followed #${hashtag}`);\n })\n .catch((e) => {\n alert(e);\n console.error(e);\n })\n .finally(() => {\n setFollowUIState('default');\n });\n }\n }}\n >\n {info.following ? (\n <>\n Following…\n \n ) : (\n <>\n Follow\n \n )}\n \n \n \n )}\n {!mediaFirst && (\n <>\n Filters\n {\n if (media) {\n searchParams.delete('media');\n } else {\n searchParams.set('media', '1');\n }\n setSearchParams(searchParams);\n }}\n >\n {' '}\n Media only\n \n \n \n )}\n \n {({ ref }) => (\n {\n e.preventDefault();\n const newHashtag = e.target[0].value?.trim?.();\n // Use includes but need to be case insensitive\n if (\n newHashtag &&\n !hashtags.some(\n (t) => t.toLowerCase() === newHashtag.toLowerCase(),\n )\n ) {\n hashtags.push(newHashtag);\n hashtags.sort();\n // navigate(\n // instance\n // ? `/${instance}/t/${hashtags.join('+')}`\n // : `/t/${hashtags.join('+')}`,\n // );\n location.hash = instance\n ? `/${instance}/t/${hashtags.join('+')}`\n : `/t/${hashtags.join('+')}${linkParams}`;\n }\n }}\n >\n \n \n \n )}\n \n \n {hashtags.map((t, i) => (\n {\n hashtags.splice(i, 1);\n hashtags.sort();\n // navigate(\n // instance\n // ? `/${instance}/t/${hashtags.join('+')}`\n // : `/t/${hashtags.join('+')}`,\n // );\n location.hash = instance\n ? `/${instance}/t/${hashtags.join('+')}${linkParams}`\n : `/t/${hashtags.join('+')}${linkParams}`;\n }}\n >\n \n \n #\n {t}\n \n \n ))}\n \n \n {\n if (states.shortcuts.length >= SHORTCUTS_LIMIT) {\n alert(\n `Max ${SHORTCUTS_LIMIT} shortcuts reached. Unable to add shortcut.`,\n );\n return;\n }\n const shortcut = {\n type: 'hashtag',\n hashtag: hashtags.join(' '),\n instance,\n media: media ? 'on' : undefined,\n };\n // Check if already exists\n const exists = states.shortcuts.some(\n (s) =>\n s.type === shortcut.type &&\n s.hashtag\n .split(/[\\s+]+/)\n .sort()\n .join(' ') ===\n shortcut.hashtag\n .split(/[\\s+]+/)\n .sort()\n .join(' ') &&\n (s.instance ? s.instance === shortcut.instance : true) &&\n (s.media ? !!s.media === !!shortcut.media : true),\n );\n if (exists) {\n alert('This shortcut already exists');\n } else {\n states.shortcuts.push(shortcut);\n showToast(`Hashtag shortcut added`);\n }\n }}\n >\n Add to Shorcuts\n \n {\n let newInstance = prompt(\n 'Enter a new instance e.g. \"mastodon.social\"',\n );\n if (!/\\./.test(newInstance)) {\n if (newInstance) alert('Invalid instance');\n return;\n }\n if (newInstance) {\n newInstance = newInstance.toLowerCase().trim();\n // navigate(`/${newInstance}/t/${hashtags.join('+')}`);\n location.hash = `/${newInstance}/t/${hashtags.join(\n '+',\n )}${linkParams}`;\n }\n }}\n >\n Go to another instance…\n \n {currentInstance !== instance && (\n {\n location.hash = `/${currentInstance}/t/${hashtags.join(\n '+',\n )}${linkParams}`;\n }}\n >\n {' '}\n \n Go to my instance ({currentInstance})\n \n \n )}\n \n }\n />\n );\n}\n\nexport default Hashtags;\n","import './lists.css';\n\nimport { Menu, MenuDivider, MenuItem } from '@szhsin/react-menu';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { InView } from 'react-intersection-observer';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { useSnapshot } from 'valtio';\n\nimport AccountBlock from '../components/account-block';\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport ListAddEdit from '../components/list-add-edit';\nimport Menu2 from '../components/menu2';\nimport MenuConfirm from '../components/menu-confirm';\nimport MenuLink from '../components/menu-link';\nimport Modal from '../components/modal';\nimport Timeline from '../components/timeline';\nimport { api } from '../utils/api';\nimport { filteredItems } from '../utils/filters';\nimport { getList, getLists } from '../utils/lists';\nimport states, { saveStatus } from '../utils/states';\nimport useTitle from '../utils/useTitle';\n\nconst LIMIT = 20;\n\nfunction List(props) {\n const snapStates = useSnapshot(states);\n const { masto, instance } = api();\n const id = props?.id || useParams()?.id;\n // const navigate = useNavigate();\n const latestItem = useRef();\n // const [reloadCount, reload] = useReducer((c) => c + 1, 0);\n\n const listIterator = useRef();\n async function fetchList(firstLoad) {\n if (firstLoad || !listIterator.current) {\n listIterator.current = masto.v1.timelines.list.$select(id).list({\n limit: LIMIT,\n });\n }\n const results = await listIterator.current.next();\n let { value } = results;\n if (value?.length) {\n if (firstLoad) {\n latestItem.current = value[0].id;\n }\n\n // value = filteredItems(value, 'home');\n value.forEach((item) => {\n saveStatus(item, instance);\n });\n }\n return {\n ...results,\n value,\n };\n }\n\n async function checkForUpdates() {\n try {\n const results = await masto.v1.timelines.list.$select(id).list({\n limit: 1,\n since_id: latestItem.current,\n });\n let { value } = results;\n const valueContainsLatestItem = value[0]?.id === latestItem.current; // since_id might not be supported\n if (value?.length && !valueContainsLatestItem) {\n value = filteredItems(value, 'home');\n return true;\n }\n return false;\n } catch (e) {\n return false;\n }\n }\n\n const [lists, setLists] = useState([]);\n useEffect(() => {\n getLists().then(setLists);\n }, []);\n\n const [list, setList] = useState({ title: 'List' });\n // const [title, setTitle] = useState(`List`);\n useTitle(list.title, `/l/:id`);\n useEffect(() => {\n (async () => {\n try {\n const list = await getList(id);\n setList(list);\n // setTitle(list.title);\n } catch (e) {\n console.error(e);\n }\n })();\n }, [id]);\n\n const [showListAddEditModal, setShowListAddEditModal] = useState(false);\n const [showManageMembersModal, setShowManageMembersModal] = useState(false);\n\n return (\n <>\n \n // \n // \n \n \n \n \n }\n >\n \n All Lists\n \n {lists?.length > 0 && (\n <>\n \n {lists.map((list) => (\n \n {list.title}\n \n ))}\n \n )}\n \n }\n headerEnd={\n \n \n \n }\n >\n \n setShowListAddEditModal({\n list,\n })\n }\n >\n \n Edit\n \n setShowManageMembersModal(true)}>\n \n Manage members\n \n \n }\n />\n {showListAddEditModal && (\n {\n if (e.target === e.currentTarget) {\n setShowListAddEditModal(false);\n }\n }}\n >\n {\n if (result.state === 'success' && result.list) {\n setList(result.list);\n // reload();\n } else if (result.state === 'deleted') {\n // navigate('/l');\n location.hash = '/l';\n }\n setShowListAddEditModal(false);\n }}\n />\n \n )}\n {showManageMembersModal && (\n {\n if (e.target === e.currentTarget) {\n setShowManageMembersModal(false);\n }\n }}\n >\n setShowManageMembersModal(false)}\n />\n \n )}\n \n );\n}\n\nconst MEMBERS_LIMIT = 40;\nfunction ListManageMembers({ listID, onClose }) {\n // Show list of members with [Remove] button\n // API only returns 40 members at a time, so this need to be paginated with infinite scroll\n // Show [Add] button after removing a member\n const { masto, instance } = api();\n const [members, setMembers] = useState([]);\n const [uiState, setUIState] = useState('default');\n const [showMore, setShowMore] = useState(false);\n\n const membersIterator = useRef();\n\n async function fetchMembers(firstLoad) {\n setShowMore(false);\n setUIState('loading');\n (async () => {\n try {\n if (firstLoad || !membersIterator.current) {\n membersIterator.current = masto.v1.lists\n .$select(listID)\n .accounts.list({\n limit: MEMBERS_LIMIT,\n });\n }\n const results = await membersIterator.current.next();\n let { done, value } = results;\n if (value?.length) {\n if (firstLoad) {\n setMembers(value);\n } else {\n setMembers(members.concat(value));\n }\n setShowMore(!done);\n } else {\n setShowMore(false);\n }\n setUIState('default');\n } catch (e) {\n setUIState('error');\n }\n })();\n }\n\n useEffect(() => {\n fetchMembers(true);\n }, []);\n\n return (\n
    \n {!!onClose && (\n \n )}\n
    \n

    Manage members

    \n
    \n
    \n
      \n {members.map((member) => (\n
    • \n \n \n
    • \n ))}\n {showMore && uiState === 'default' && (\n inView && fetchMembers()}>\n \n \n )}\n
    \n
    \n
    \n );\n}\n\nfunction RemoveAddButton({ account, listID }) {\n const { masto } = api();\n const [uiState, setUIState] = useState('default');\n const [removed, setRemoved] = useState(false);\n\n return (\n Remove @{account.username} from list?}\n align=\"end\"\n menuItemClassName=\"danger\"\n onClick={() => {\n if (removed) {\n setUIState('loading');\n (async () => {\n try {\n await masto.v1.lists.$select(listID).accounts.create({\n accountIds: [account.id],\n });\n setUIState('default');\n setRemoved(false);\n } catch (e) {\n setUIState('error');\n }\n })();\n } else {\n // const yes = confirm(`Remove ${account.username} from this list?`);\n // if (!yes) return;\n setUIState('loading');\n\n (async () => {\n try {\n await masto.v1.lists.$select(listID).accounts.remove({\n accountIds: [account.id],\n });\n setUIState('default');\n setRemoved(true);\n } catch (e) {\n setUIState('error');\n }\n })();\n }\n }}\n >\n \n {removed ? 'Add' : 'Remove…'}\n \n \n );\n}\n\nexport default List;\n","// This is like very lame \"type-checking\" lol\nconst notificationTypeKeys = {\n mention: ['account', 'status'],\n status: ['account', 'status'],\n reblog: ['account', 'status'],\n follow: ['account'],\n follow_request: ['account'],\n favourite: ['account', 'status'],\n poll: ['status'],\n update: ['status'],\n};\nexport function fixNotifications(notifications) {\n return notifications.filter((notification) => {\n const { type, id, createdAt } = notification;\n if (!type) {\n console.warn('Notification missing type', notification);\n return false;\n }\n if (!id || !createdAt) {\n console.warn('Notification missing id or createdAt', notification);\n // Continue processing this despite missing id or createdAt\n }\n const keys = notificationTypeKeys[type];\n if (keys?.length) {\n return keys.every((key) => !!notification[key]);\n }\n return true; // skip other types\n });\n}\n\nfunction groupNotifications(notifications) {\n // Filter out invalid notifications\n notifications = fixNotifications(notifications);\n\n // Create new flat list of notifications\n // Combine sibling notifications based on type and status id\n // Concat all notification.account into an array of _accounts\n const notificationsMap = {};\n const cleanNotifications = [];\n for (let i = 0, j = 0; i < notifications.length; i++) {\n const notification = notifications[i];\n const { id, status, account, type, createdAt } = notification;\n const date = createdAt ? new Date(createdAt).toLocaleDateString() : '';\n let virtualType = type;\n if (type === 'favourite' || type === 'reblog') {\n virtualType = 'favourite+reblog';\n }\n const key = `${status?.id}-${virtualType}-${date}`;\n const mappedNotification = notificationsMap[key];\n if (virtualType === 'follow_request') {\n cleanNotifications[j++] = notification;\n } else if (mappedNotification?.account) {\n const mappedAccount = mappedNotification._accounts.find(\n (a) => a.id === account.id,\n );\n if (mappedAccount) {\n mappedAccount._types.push(type);\n mappedAccount._types.sort().reverse();\n mappedNotification.id += `-${id}`;\n } else {\n account._types = [type];\n mappedNotification._accounts.push(account);\n mappedNotification.id += `-${id}`;\n }\n } else {\n if (account) account._types = [type];\n let n = (notificationsMap[key] = {\n ...notification,\n type: virtualType,\n _accounts: account ? [account] : [],\n });\n cleanNotifications[j++] = n;\n }\n }\n\n // 2nd pass to group \"favourite+reblog\"-type notifications by account if _accounts.length <= 1\n // This means one acount has favourited and reblogged the multiple statuses\n // The grouped notification\n // - type: \"favourite+reblog+account\"\n // - _statuses: [status, status, ...]\n const notificationsMap2 = {};\n const cleanNotifications2 = [];\n for (let i = 0, j = 0; i < cleanNotifications.length; i++) {\n const notification = cleanNotifications[i];\n const { id, account, _accounts, type, createdAt } = notification;\n const date = createdAt ? new Date(createdAt).toLocaleDateString() : '';\n if (type === 'favourite+reblog' && account && _accounts.length === 1) {\n const key = `${account?.id}-${type}-${date}`;\n const mappedNotification = notificationsMap2[key];\n if (mappedNotification) {\n mappedNotification._statuses.push(notification.status);\n mappedNotification.id += `-${id}`;\n } else {\n let n = (notificationsMap2[key] = {\n ...notification,\n type,\n _statuses: [notification.status],\n });\n cleanNotifications2[j++] = n;\n }\n } else {\n cleanNotifications2[j++] = notification;\n }\n }\n\n console.log({ notifications, cleanNotifications, cleanNotifications2 });\n\n // return cleanNotifications;\n return cleanNotifications2;\n}\n\nexport default groupNotifications;\n","import { useMemo, useRef, useState } from 'preact/hooks';\nimport { useSearchParams } from 'react-router-dom';\n\nimport Link from '../components/link';\nimport Timeline from '../components/timeline';\nimport { api } from '../utils/api';\nimport { fixNotifications } from '../utils/group-notifications';\nimport { saveStatus } from '../utils/states';\nimport useTitle from '../utils/useTitle';\n\nconst LIMIT = 20;\nconst emptySearchParams = new URLSearchParams();\n\nfunction Mentions({ columnMode, ...props }) {\n const { masto, instance } = api();\n const [searchParams] = columnMode ? [emptySearchParams] : useSearchParams();\n const [stateType, setStateType] = useState(null);\n const type = props?.type || searchParams.get('type') || stateType;\n useTitle(`Mentions${type === 'private' ? ' (Private)' : ''}`, '/mentions');\n\n const mentionsIterator = useRef();\n const latestItem = useRef();\n\n async function fetchMentions(firstLoad) {\n if (firstLoad || !mentionsIterator.current) {\n mentionsIterator.current = masto.v1.notifications.list({\n limit: LIMIT,\n types: ['mention'],\n });\n }\n const results = await mentionsIterator.current.next();\n let { value } = results;\n if (value?.length) {\n value = fixNotifications(value);\n\n if (firstLoad) {\n latestItem.current = value[0].id;\n console.log('First load', latestItem.current);\n }\n\n value.forEach(({ status: item }) => {\n saveStatus(item, instance);\n });\n }\n return {\n ...results,\n value: value?.map((item) => item.status),\n };\n }\n\n const conversationsIterator = useRef();\n const latestConversationItem = useRef();\n async function fetchConversations(firstLoad) {\n if (firstLoad || !conversationsIterator.current) {\n conversationsIterator.current = masto.v1.conversations.list({\n limit: LIMIT,\n });\n }\n const results = await conversationsIterator.current.next();\n let { value } = results;\n value = value?.filter((item) => item.lastStatus);\n if (value?.length) {\n if (firstLoad) {\n latestConversationItem.current = value[0].lastStatus.id;\n console.log('First load', latestConversationItem.current);\n }\n\n value.forEach(({ lastStatus: item }) => {\n saveStatus(item, instance);\n });\n }\n console.log('results', results);\n return {\n ...results,\n value: value?.map((item) => item.lastStatus),\n };\n }\n\n function fetchItems(...args) {\n if (type === 'private') {\n return fetchConversations(...args);\n }\n return fetchMentions(...args);\n }\n\n async function checkForUpdates() {\n if (type === 'private') {\n try {\n const results = await masto.v1.conversations\n .list({\n limit: 1,\n since_id: latestConversationItem.current,\n })\n .next();\n let { value } = results;\n console.log(\n 'checkForUpdates PRIVATE',\n latestConversationItem.current,\n value,\n );\n const valueContainsLatestItem =\n value[0]?.id === latestConversationItem.current; // since_id might not be supported\n if (value?.length && !valueContainsLatestItem) {\n latestConversationItem.current = value[0].lastStatus.id;\n return true;\n }\n return false;\n } catch (e) {\n return false;\n }\n } else {\n try {\n const results = await masto.v1.notifications\n .list({\n limit: 1,\n types: ['mention'],\n since_id: latestItem.current,\n })\n .next();\n let { value } = results;\n console.log('checkForUpdates ALL', latestItem.current, value);\n if (value?.length) {\n latestItem.current = value[0].id;\n return true;\n }\n return false;\n } catch (e) {\n return false;\n }\n }\n }\n\n const TimelineStart = useMemo(() => {\n return (\n
    \n {\n if (columnMode) {\n e.preventDefault();\n setStateType(null);\n }\n }}\n >\n All\n \n {\n if (columnMode) {\n e.preventDefault();\n setStateType('private');\n }\n }}\n >\n Private\n \n
    \n );\n }, [type]);\n\n return (\n \n );\n}\n\nexport default Mentions;\n","import './notifications.css';\n\nimport { Fragment } from 'preact';\nimport { memo } from 'preact/compat';\nimport { useCallback, useEffect, useRef, useState } from 'preact/hooks';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport { InView } from 'react-intersection-observer';\nimport { useSearchParams } from 'react-router-dom';\nimport { useSnapshot } from 'valtio';\nimport { subscribeKey } from 'valtio/utils';\n\nimport AccountBlock from '../components/account-block';\nimport FollowRequestButtons from '../components/follow-request-buttons';\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport Loader from '../components/loader';\nimport Modal from '../components/modal';\nimport NavMenu from '../components/nav-menu';\nimport Notification from '../components/notification';\nimport Status from '../components/status';\nimport { api } from '../utils/api';\nimport enhanceContent from '../utils/enhance-content';\nimport groupNotifications from '../utils/group-notifications';\nimport handleContentLinks from '../utils/handle-content-links';\nimport niceDateTime from '../utils/nice-date-time';\nimport { getRegistration } from '../utils/push-notifications';\nimport shortenNumber from '../utils/shorten-number';\nimport showToast from '../utils/show-toast';\nimport states, { saveStatus } from '../utils/states';\nimport { getCurrentInstance } from '../utils/store-utils';\nimport supports from '../utils/supports';\nimport usePageVisibility from '../utils/usePageVisibility';\nimport useScroll from '../utils/useScroll';\nimport useTitle from '../utils/useTitle';\n\nconst LIMIT = 80;\nconst emptySearchParams = new URLSearchParams();\n\nconst scrollIntoViewOptions = {\n block: 'center',\n inline: 'center',\n behavior: 'smooth',\n};\n\nfunction Notifications({ columnMode }) {\n useTitle('Notifications', '/notifications');\n const { masto, instance } = api();\n const snapStates = useSnapshot(states);\n const [uiState, setUIState] = useState('default');\n const [searchParams] = columnMode ? [emptySearchParams] : useSearchParams();\n const notificationID = searchParams.get('id');\n const notificationAccessToken = searchParams.get('access_token');\n const [showMore, setShowMore] = useState(false);\n const [onlyMentions, setOnlyMentions] = useState(false);\n const scrollableRef = useRef();\n const { nearReachEnd, scrollDirection, reachStart, nearReachStart } =\n useScroll({\n scrollableRef,\n });\n const hiddenUI = scrollDirection === 'end' && !nearReachStart;\n const [followRequests, setFollowRequests] = useState([]);\n const [announcements, setAnnouncements] = useState([]);\n\n console.debug('RENDER Notifications');\n\n const notificationsIterator = useRef();\n async function fetchNotifications(firstLoad) {\n if (firstLoad || !notificationsIterator.current) {\n // Reset iterator\n notificationsIterator.current = masto.v1.notifications.list({\n limit: LIMIT,\n excludeTypes: ['follow_request'],\n });\n }\n if (/max_id=($|&)/i.test(notificationsIterator.current?.nextParams)) {\n // Pixelfed returns next paginationed link with empty max_id\n // I assume, it's done (end of list)\n return {\n done: true,\n };\n }\n const allNotifications = await notificationsIterator.current.next();\n const notifications = allNotifications.value;\n\n if (notifications?.length) {\n notifications.forEach((notification) => {\n saveStatus(notification.status, instance, {\n skipThreading: true,\n });\n });\n\n // TEST: Slot in a fake notification to test 'severed_relationships'\n // notifications.unshift({\n // id: '123123',\n // type: 'severed_relationships',\n // createdAt: '2024-03-22T19:20:08.316Z',\n // event: {\n // type: 'account_suspension',\n // targetName: 'mastodon.dev',\n // followersCount: 0,\n // followingCount: 0,\n // },\n // });\n\n // TEST: Slot in a fake notification to test 'moderation_warning'\n // notifications.unshift({\n // id: '123123',\n // type: 'moderation_warning',\n // createdAt: new Date().toISOString(),\n // moderation_warning: {\n // id: '1231234',\n // action: 'mark_statuses_as_sensitive',\n // },\n // });\n\n // console.log({ notifications });\n\n const groupedNotifications = groupNotifications(notifications);\n\n if (firstLoad) {\n states.notificationsLast = notifications[0];\n states.notifications = groupedNotifications;\n\n // Update last read marker\n masto.v1.markers\n .create({\n notifications: {\n lastReadId: notifications[0].id,\n },\n })\n .catch(() => {});\n } else {\n states.notifications.push(...groupedNotifications);\n }\n }\n\n states.notificationsShowNew = false;\n states.notificationsLastFetchTime = Date.now();\n return allNotifications;\n }\n\n async function fetchFollowRequests() {\n // Note: no pagination here yet because this better be on a separate page. Should be rare use-case???\n try {\n return await masto.v1.followRequests.list({\n limit: 80,\n });\n } catch (e) {\n // Silently fail\n return [];\n }\n }\n\n const loadFollowRequests = () => {\n setUIState('loading');\n (async () => {\n try {\n const requests = await fetchFollowRequests();\n setFollowRequests(requests);\n setUIState('default');\n } catch (e) {\n setUIState('error');\n }\n })();\n };\n\n async function fetchAnnouncements() {\n try {\n return await masto.v1.announcements.list();\n } catch (e) {\n // Silently fail\n return [];\n }\n }\n\n const supportsFilteredNotifications = supports(\n '@mastodon/filtered-notifications',\n );\n const [showNotificationsSettings, setShowNotificationsSettings] =\n useState(false);\n const [notificationsPolicy, setNotificationsPolicy] = useState({});\n function fetchNotificationsPolicy() {\n return masto.v1.notifications.policy.fetch().catch(() => {});\n }\n function loadNotificationsPolicy() {\n fetchNotificationsPolicy()\n .then((policy) => {\n console.log('✨ Notifications policy', policy);\n setNotificationsPolicy(policy);\n })\n .catch(() => {});\n }\n const [notificationsRequests, setNotificationsRequests] = useState(null);\n function fetchNotificationsRequest() {\n return masto.v1.notifications.requests.list();\n }\n\n const loadNotifications = (firstLoad) => {\n setShowNew(false);\n setUIState('loading');\n (async () => {\n try {\n const fetchNotificationsPromise = fetchNotifications(firstLoad);\n\n if (firstLoad) {\n fetchAnnouncements()\n .then((announcements) => {\n announcements.sort((a, b) => {\n // Sort by updatedAt first, then createdAt\n const aDate = new Date(a.updatedAt || a.createdAt);\n const bDate = new Date(b.updatedAt || b.createdAt);\n return bDate - aDate;\n });\n setAnnouncements(announcements);\n })\n .catch(() => {});\n\n fetchFollowRequests()\n .then((requests) => {\n setFollowRequests(requests);\n })\n .catch(() => {});\n\n if (supportsFilteredNotifications) {\n loadNotificationsPolicy();\n }\n }\n\n const { done } = await fetchNotificationsPromise;\n setShowMore(!done);\n\n setUIState('default');\n } catch (e) {\n console.error(e);\n setUIState('error');\n }\n })();\n };\n\n useEffect(() => {\n loadNotifications(true);\n }, []);\n useEffect(() => {\n if (reachStart) {\n loadNotifications(true);\n }\n }, [reachStart]);\n\n // useEffect(() => {\n // if (nearReachEnd && showMore) {\n // loadNotifications();\n // }\n // }, [nearReachEnd, showMore]);\n\n const [showNew, setShowNew] = useState(false);\n\n const loadUpdates = useCallback(\n ({ disableIdleCheck = false } = {}) => {\n if (uiState === 'loading') {\n return;\n }\n console.log('✨ Load updates', {\n autoRefresh: snapStates.settings.autoRefresh,\n scrollTop: scrollableRef.current?.scrollTop,\n inBackground: inBackground(),\n disableIdleCheck,\n });\n if (\n snapStates.settings.autoRefresh &&\n scrollableRef.current?.scrollTop < 16 &&\n (disableIdleCheck || window.__IDLE__) &&\n !inBackground()\n ) {\n loadNotifications(true);\n }\n },\n [snapStates.notificationsShowNew, snapStates.settings.autoRefresh, uiState],\n );\n // useEffect(loadUpdates, [snapStates.notificationsShowNew]);\n\n const lastHiddenTime = useRef();\n usePageVisibility((visible) => {\n if (visible) {\n const timeDiff = Date.now() - lastHiddenTime.current;\n if (!lastHiddenTime.current || timeDiff > 1000 * 3) {\n // 3 seconds\n loadUpdates({\n disableIdleCheck: true,\n });\n } else {\n lastHiddenTime.current = Date.now();\n }\n }\n });\n const firstLoad = useRef(true);\n useEffect(() => {\n let unsub = subscribeKey(states, 'notificationsShowNew', (v) => {\n if (firstLoad.current) {\n firstLoad.current = false;\n return;\n }\n if (uiState === 'loading') return;\n if (v) loadUpdates();\n setShowNew(v);\n });\n return () => unsub?.();\n }, []);\n\n const todayDate = new Date();\n const yesterdayDate = new Date(todayDate - 24 * 60 * 60 * 1000);\n let currentDay = new Date();\n const showTodayEmpty = !snapStates.notifications.some(\n (notification) =>\n new Date(notification.createdAt).toDateString() ===\n todayDate.toDateString(),\n );\n\n const announcementsListRef = useRef();\n\n useEffect(() => {\n if (notificationID) {\n states.routeNotification = {\n id: notificationID,\n accessToken: atob(notificationAccessToken),\n };\n }\n }, [notificationID, notificationAccessToken]);\n\n // useEffect(() => {\n // if (uiState === 'default') {\n // (async () => {\n // try {\n // const registration = await getRegistration();\n // if (registration?.getNotifications) {\n // const notifications = await registration.getNotifications();\n // console.log('🔔 Push notifications', notifications);\n // // Close all notifications?\n // // notifications.forEach((notification) => {\n // // notification.close();\n // // });\n // }\n // } catch (e) {}\n // })();\n // }\n // }, [uiState]);\n\n const itemsSelector = '.notification';\n const jRef = useHotkeys('j', () => {\n const activeItem = document.activeElement.closest(itemsSelector);\n const activeItemRect = activeItem?.getBoundingClientRect();\n const allItems = Array.from(\n scrollableRef.current.querySelectorAll(itemsSelector),\n );\n if (\n activeItem &&\n activeItemRect.top < scrollableRef.current.clientHeight &&\n activeItemRect.bottom > 0\n ) {\n const activeItemIndex = allItems.indexOf(activeItem);\n let nextItem = allItems[activeItemIndex + 1];\n if (nextItem) {\n nextItem.focus();\n nextItem.scrollIntoView(scrollIntoViewOptions);\n }\n } else {\n const topmostItem = allItems.find((item) => {\n const itemRect = item.getBoundingClientRect();\n return itemRect.top >= 44 && itemRect.left >= 0;\n });\n if (topmostItem) {\n topmostItem.focus();\n topmostItem.scrollIntoView(scrollIntoViewOptions);\n }\n }\n });\n\n const kRef = useHotkeys('k', () => {\n // focus on previous status after active item\n const activeItem = document.activeElement.closest(itemsSelector);\n const activeItemRect = activeItem?.getBoundingClientRect();\n const allItems = Array.from(\n scrollableRef.current.querySelectorAll(itemsSelector),\n );\n if (\n activeItem &&\n activeItemRect.top < scrollableRef.current.clientHeight &&\n activeItemRect.bottom > 0\n ) {\n const activeItemIndex = allItems.indexOf(activeItem);\n let prevItem = allItems[activeItemIndex - 1];\n if (prevItem) {\n prevItem.focus();\n prevItem.scrollIntoView(scrollIntoViewOptions);\n }\n } else {\n const topmostItem = allItems.find((item) => {\n const itemRect = item.getBoundingClientRect();\n return itemRect.top >= 44 && itemRect.left >= 0;\n });\n if (topmostItem) {\n topmostItem.focus();\n topmostItem.scrollIntoView(scrollIntoViewOptions);\n }\n }\n });\n\n const oRef = useHotkeys(['enter', 'o'], () => {\n const activeItem = document.activeElement.closest(itemsSelector);\n const statusLink = activeItem?.querySelector('.status-link');\n if (statusLink) {\n statusLink.click();\n }\n });\n\n return (\n {\n scrollableRef.current = node;\n jRef.current = node;\n kRef.current = node;\n oRef.current = node;\n }}\n tabIndex=\"-1\"\n >\n
    \n
    \n {supportsFilteredNotifications && showNotificationsSettings && (\n {\n if (e.target === e.currentTarget) {\n setShowNotificationsSettings(false);\n }\n }}\n >\n
    \n setShowNotificationsSettings(false)}\n >\n \n \n
    \n

    Notifications settings

    \n
    \n
    \n {\n e.preventDefault();\n const {\n filterNotFollowing,\n filterNotFollowers,\n filterNewAccounts,\n filterPrivateMentions,\n } = e.target;\n const allFilters = {\n filterNotFollowing: filterNotFollowing.checked,\n filterNotFollowers: filterNotFollowers.checked,\n filterNewAccounts: filterNewAccounts.checked,\n filterPrivateMentions: filterPrivateMentions.checked,\n };\n setNotificationsPolicy({\n ...notificationsPolicy,\n ...allFilters,\n });\n setShowNotificationsSettings(false);\n (async () => {\n try {\n await masto.v1.notifications.policy.update(allFilters);\n showToast('Notifications settings updated');\n } catch (e) {\n console.error(e);\n }\n })();\n }}\n >\n

    Filter out notifications from people:

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n

    \n \n

    \n \n
    \n
    \n \n )}\n \n );\n}\n\nfunction inBackground() {\n return !!document.querySelector('.deck-backdrop, #modal-container > *');\n}\n\nfunction AnnouncementBlock({ announcement }) {\n const { instance } = api();\n const { contact } = getCurrentInstance();\n const contactAccount = contact?.account;\n const {\n id,\n content,\n startsAt,\n endsAt,\n published,\n allDay,\n publishedAt,\n updatedAt,\n read,\n mentions,\n statuses,\n tags,\n emojis,\n reactions,\n } = announcement;\n\n const publishedAtDate = new Date(publishedAt);\n const publishedDateText = niceDateTime(publishedAtDate);\n const updatedAtDate = new Date(updatedAt);\n const updatedAtText = niceDateTime(updatedAtDate);\n\n return (\n
    \n \n \n

    \n \n {updatedAt && updatedAtText !== publishedDateText && (\n <>\n {' '}\n •{' '}\n \n Updated{' '}\n \n \n \n )}\n

    \n \n
    \n );\n}\n\nfunction fetchNotficationsByAccount(accountID) {\n const { masto } = api();\n return masto.v1.notifications.list({\n accountID,\n });\n}\nfunction NotificationRequestModalButton({ request }) {\n const { instance } = api();\n const [uiState, setUIState] = useState('loading');\n const { account, lastStatus } = request;\n const [showModal, setShowModal] = useState(false);\n const [notifications, setNotifications] = useState([]);\n\n function onClose() {\n setShowModal(false);\n }\n\n useEffect(() => {\n if (!request?.account?.id) return;\n if (!showModal) return;\n setUIState('loading');\n (async () => {\n const notifs = await fetchNotficationsByAccount(request.account.id);\n setNotifications(notifs || []);\n setUIState('default');\n })();\n }, [showModal, request?.account?.id]);\n\n return (\n <>\n {\n setShowModal(true);\n }}\n >\n {' '}\n View notifications from @{account.username}{' '}\n \n \n {showModal && (\n {\n if (e.target === e.currentTarget) {\n onClose();\n }\n }}\n >\n
    \n \n
    \n Notifications from @{account.username}\n
    \n
    \n {uiState === 'loading' ? (\n

    \n \n

    \n ) : (\n notifications.map((notification) => (\n {\n const { target } = e;\n // If button or links\n if (\n e.target.tagName === 'BUTTON' ||\n e.target.tagName === 'A'\n ) {\n onClose();\n }\n }}\n >\n \n
    \n ))\n )}\n \n \n \n )}\n \n );\n}\n\nfunction NotificationRequestButtons({ request, onChange }) {\n const { masto } = api();\n const [uiState, setUIState] = useState('default');\n const [requestState, setRequestState] = useState(null); // accept, dismiss\n const hasRequestState = requestState !== null;\n\n return (\n

    \n {\n setUIState('loading');\n (async () => {\n try {\n await masto.v1.notifications.requests\n .$select(request.id)\n .accept();\n setRequestState('accept');\n setUIState('default');\n onChange({\n request,\n state: 'accept',\n });\n showToast(\n `Notifications from @${request.account.username} will not be filtered from now on.`,\n );\n } catch (error) {\n setUIState('error');\n console.error(error);\n showToast(`Unable to accept notification request`);\n }\n })();\n }}\n >\n Allow\n {' '}\n {\n setUIState('loading');\n (async () => {\n try {\n await masto.v1.notifications.requests\n .$select(request.id)\n .dismiss();\n setRequestState('dismiss');\n setUIState('default');\n onChange({\n request,\n state: 'dismiss',\n });\n showToast(\n `Notifications from @${request.account.username} will not show up in Filtered notifications from now on.`,\n );\n } catch (error) {\n setUIState('error');\n console.error(error);\n showToast(`Unable to dismiss notification request`);\n }\n })();\n }}\n >\n Dismiss\n \n \n {uiState === 'loading' ? (\n \n ) : requestState === 'accept' ? (\n \n ) : (\n requestState === 'dismiss' && (\n \n )\n )}\n \n

    \n );\n}\n\nexport default memo(Notifications);\n","import { Menu, MenuDivider, MenuItem } from '@szhsin/react-menu';\nimport { useRef } from 'preact/hooks';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { useSnapshot } from 'valtio';\n\nimport Icon from '../components/icon';\nimport Menu2 from '../components/menu2';\nimport Timeline from '../components/timeline';\nimport { api } from '../utils/api';\nimport { filteredItems } from '../utils/filters';\nimport states from '../utils/states';\nimport { saveStatus } from '../utils/states';\nimport useTitle from '../utils/useTitle';\n\nconst LIMIT = 20;\n\nfunction Public({ local, columnMode, ...props }) {\n const snapStates = useSnapshot(states);\n const isLocal = !!local;\n const params = columnMode ? {} : useParams();\n const { masto, instance } = api({\n instance: props?.instance || params.instance,\n });\n const { masto: currentMasto, instance: currentInstance } = api();\n const title = `${isLocal ? 'Local' : 'Federated'} timeline (${instance})`;\n useTitle(title, isLocal ? `/:instance?/p/l` : `/:instance?/p`);\n // const navigate = useNavigate();\n const latestItem = useRef();\n\n const publicIterator = useRef();\n async function fetchPublic(firstLoad) {\n if (firstLoad || !publicIterator.current) {\n publicIterator.current = masto.v1.timelines.public.list({\n limit: LIMIT,\n local: isLocal,\n remote: !isLocal, // Pixelfed\n });\n }\n const results = await publicIterator.current.next();\n let { value } = results;\n if (value?.length) {\n if (firstLoad) {\n latestItem.current = value[0].id;\n }\n\n // value = filteredItems(value, 'public');\n value.forEach((item) => {\n saveStatus(item, instance);\n });\n }\n return {\n ...results,\n value,\n };\n }\n\n async function checkForUpdates() {\n try {\n const results = await masto.v1.timelines.public\n .list({\n limit: 1,\n local: isLocal,\n since_id: latestItem.current,\n })\n .next();\n let { value } = results;\n const valueContainsLatestItem = value[0]?.id === latestItem.current; // since_id might not be supported\n if (value?.length && !valueContainsLatestItem) {\n value = filteredItems(value, 'public');\n return true;\n }\n return false;\n } catch (e) {\n return false;\n }\n }\n\n return (\n \n {isLocal ? 'Local timeline' : 'Federated timeline'}\n
    {instance}
    \n \n }\n id=\"public\"\n instance={instance}\n emptyText=\"No one has posted anything yet.\"\n errorText=\"Unable to load posts\"\n fetchItems={fetchPublic}\n checkForUpdates={checkForUpdates}\n useItemID\n headerStart={<>}\n boostsCarousel={snapStates.settings.boostsCarousel}\n // allowFilters\n filterContext=\"public\"\n headerEnd={\n \n \n \n }\n >\n \n {isLocal ? (\n <>\n Switch to Federated\n \n ) : (\n <>\n Switch to Local\n \n )}\n \n \n {\n let newInstance = prompt(\n 'Enter a new instance e.g. \"mastodon.social\"',\n );\n if (!/\\./.test(newInstance)) {\n if (newInstance) alert('Invalid instance');\n return;\n }\n if (newInstance) {\n newInstance = newInstance.toLowerCase().trim();\n // navigate(isLocal ? `/${newInstance}/p/l` : `/${newInstance}/p`);\n location.hash = isLocal\n ? `/${newInstance}/p/l`\n : `/${newInstance}/p`;\n }\n }}\n >\n Go to another instance…\n \n {currentInstance !== instance && (\n {\n location.hash = isLocal\n ? `/${currentInstance}/p/l`\n : `/${currentInstance}/p`;\n }}\n >\n {' '}\n \n Go to my instance ({currentInstance})\n \n \n )}\n \n }\n />\n );\n}\n\nexport default Public;\n","import './search.css';\n\nimport { useAutoAnimate } from '@formkit/auto-animate/preact';\nimport { useEffect, useLayoutEffect, useRef, useState } from 'preact/hooks';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport { InView } from 'react-intersection-observer';\nimport { useParams, useSearchParams } from 'react-router-dom';\n\nimport AccountBlock from '../components/account-block';\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport Loader from '../components/loader';\nimport NavMenu from '../components/nav-menu';\nimport SearchForm from '../components/search-form';\nimport Status from '../components/status';\nimport { api } from '../utils/api';\nimport { fetchRelationships } from '../utils/relationships';\nimport shortenNumber from '../utils/shorten-number';\nimport usePageVisibility from '../utils/usePageVisibility';\nimport useTitle from '../utils/useTitle';\n\nconst SHORT_LIMIT = 5;\nconst LIMIT = 40;\nconst emptySearchParams = new URLSearchParams();\n\nfunction Search({ columnMode, ...props }) {\n const params = columnMode ? {} : useParams();\n const { masto, instance, authenticated } = api({\n instance: params.instance,\n });\n const [uiState, setUIState] = useState('default');\n const [searchParams] = columnMode ? [emptySearchParams] : useSearchParams();\n const searchFormRef = useRef();\n const q = props?.query || searchParams.get('q');\n const type = columnMode\n ? 'statuses'\n : props?.type || searchParams.get('type');\n useTitle(\n q\n ? `Search: ${q}${\n type\n ? ` (${\n {\n statuses: 'Posts',\n accounts: 'Accounts',\n hashtags: 'Hashtags',\n }[type]\n })`\n : ''\n }`\n : 'Search',\n `/search`,\n );\n\n const [showMore, setShowMore] = useState(false);\n const offsetRef = useRef(0);\n useEffect(() => {\n offsetRef.current = 0;\n }, [q, type]);\n\n const scrollableRef = useRef();\n useLayoutEffect(() => {\n scrollableRef.current?.scrollTo?.(0, 0);\n }, [q, type]);\n\n const [statusResults, setStatusResults] = useState([]);\n const [accountResults, setAccountResults] = useState([]);\n const [hashtagResults, setHashtagResults] = useState([]);\n useEffect(() => {\n setStatusResults([]);\n setAccountResults([]);\n setHashtagResults([]);\n }, [q]);\n const setTypeResultsFunc = {\n statuses: setStatusResults,\n accounts: setAccountResults,\n hashtags: setHashtagResults,\n };\n\n const [relationshipsMap, setRelationshipsMap] = useState({});\n const loadRelationships = async (accounts) => {\n if (!accounts?.length) return;\n const relationships = await fetchRelationships(accounts, relationshipsMap);\n if (relationships) {\n setRelationshipsMap({\n ...relationshipsMap,\n ...relationships,\n });\n }\n };\n\n function loadResults(firstLoad) {\n if (firstLoad) {\n offsetRef.current = 0;\n }\n\n if (!firstLoad && !authenticated) {\n // Search results pagination is only available to authenticated users\n return;\n }\n\n setUIState('loading');\n if (firstLoad && !type) {\n setStatusResults(statusResults.slice(0, SHORT_LIMIT));\n setAccountResults(accountResults.slice(0, SHORT_LIMIT));\n setHashtagResults(hashtagResults.slice(0, SHORT_LIMIT));\n }\n\n (async () => {\n const params = {\n q,\n resolve: authenticated,\n limit: SHORT_LIMIT,\n };\n if (type) {\n params.limit = LIMIT;\n params.type = type;\n if (authenticated) params.offset = offsetRef.current;\n }\n\n try {\n const results = await masto.v2.search.fetch(params);\n console.log(results);\n if (type) {\n if (firstLoad) {\n setTypeResultsFunc[type](results[type]);\n const length = results[type]?.length;\n offsetRef.current = LIMIT;\n setShowMore(!!length);\n } else {\n setTypeResultsFunc[type]((prev) => [...prev, ...results[type]]);\n const length = results[type]?.length;\n offsetRef.current = offsetRef.current + LIMIT;\n setShowMore(!!length);\n }\n } else {\n setStatusResults(results.statuses || []);\n setAccountResults(results.accounts || []);\n setHashtagResults(results.hashtags || []);\n offsetRef.current = 0;\n setShowMore(false);\n }\n loadRelationships(results.accounts);\n\n setUIState('default');\n } catch (err) {\n console.error(err);\n setUIState('error');\n }\n })();\n }\n\n const lastHiddenTime = useRef();\n usePageVisibility((visible) => {\n const reachStart = scrollableRef.current?.scrollTop === 0;\n if (visible && reachStart) {\n const timeDiff = Date.now() - lastHiddenTime.current;\n if (!lastHiddenTime.current || timeDiff > 1000 * 3) {\n // 3 seconds\n loadResults(true);\n } else {\n lastHiddenTime.current = Date.now();\n }\n }\n });\n\n useEffect(() => {\n searchFormRef.current?.setValue?.(q || '');\n if (q) {\n loadResults(true);\n } else {\n searchFormRef.current?.focus?.();\n }\n }, [q, type, instance]);\n\n useHotkeys(\n ['/', 'Slash'],\n (e) => {\n searchFormRef.current?.focus?.();\n searchFormRef.current?.select?.();\n },\n {\n preventDefault: true,\n },\n );\n\n const [filterBarParent] = useAutoAnimate();\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n
    \n \n
    \n {\n loadResults(true);\n }}\n disabled={uiState === 'loading'}\n >\n \n \n
    \n
    \n
    \n
    \n {!!q && !columnMode && (\n \n {!!type && (\n \n ‹ All\n \n )}\n {[\n {\n label: 'Accounts',\n type: 'accounts',\n to: `/search?q=${encodeURIComponent(q)}&type=accounts`,\n },\n {\n label: 'Hashtags',\n type: 'hashtags',\n to: `/search?q=${encodeURIComponent(q)}&type=hashtags`,\n },\n {\n label: 'Posts',\n type: 'statuses',\n to: `/search?q=${encodeURIComponent(q)}&type=statuses`,\n },\n ]\n .sort((a, b) => {\n if (a.type === type) return -1;\n if (b.type === type) return 1;\n return 0;\n })\n .map((link) => (\n \n {link.label}\n \n ))}\n
    \n )}\n {!!q ? (\n <>\n {(!type || type === 'accounts') && (\n <>\n {type !== 'accounts' && (\n

    \n Accounts{' '}\n \n \n \n

    \n )}\n {accountResults.length > 0 ? (\n <>\n
      \n {accountResults.map((account) => (\n
    • \n \n
    • \n ))}\n
    \n {type !== 'accounts' && (\n
    \n \n See more accounts \n \n
    \n )}\n \n ) : (\n !type &&\n (uiState === 'loading' ? (\n

    \n \n

    \n ) : (\n

    No accounts found.

    \n ))\n )}\n \n )}\n {(!type || type === 'hashtags') && (\n <>\n {type !== 'hashtags' && (\n

    \n Hashtags{' '}\n \n \n \n

    \n )}\n {hashtagResults.length > 0 ? (\n <>\n \n {type !== 'hashtags' && (\n
    \n \n See more hashtags \n \n
    \n )}\n \n ) : (\n !type &&\n (uiState === 'loading' ? (\n

    \n \n

    \n ) : (\n

    No hashtags found.

    \n ))\n )}\n \n )}\n {(!type || type === 'statuses') && (\n <>\n {type !== 'statuses' && (\n

    \n Posts{' '}\n \n \n \n

    \n )}\n {statusResults.length > 0 ? (\n <>\n
      \n {statusResults.map((status) => (\n
    • \n \n \n \n
    • \n ))}\n
    \n {type !== 'statuses' && (\n
    \n \n See more posts \n \n
    \n )}\n \n ) : (\n !type &&\n (uiState === 'loading' ? (\n

    \n \n

    \n ) : (\n

    No posts found.

    \n ))\n )}\n \n )}\n {!!type &&\n (uiState === 'default' ? (\n showMore ? (\n {\n if (inView) {\n loadResults();\n }\n }}\n >\n loadResults()}\n style={{ marginBlockEnd: '6em' }}\n >\n Show more…\n \n \n ) : (\n

    The end.

    \n )\n ) : (\n uiState === 'loading' && (\n

    \n \n

    \n )\n ))}\n \n ) : uiState === 'loading' ? (\n

    \n \n

    \n ) : (\n

    \n Enter your search term or paste a URL above to get started.\n

    \n )}\n \n
    \n \n );\n}\n\nexport default Search;\n","import '../components/links-bar.css';\n\nimport { MenuItem } from '@szhsin/react-menu';\nimport { getBlurHashAverageColor } from 'fast-blurhash';\nimport { useMemo, useRef, useState } from 'preact/hooks';\nimport punycode from 'punycode';\nimport { useNavigate, useParams } from 'react-router-dom';\nimport { useSnapshot } from 'valtio';\n\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport Menu2 from '../components/menu2';\nimport RelativeTime from '../components/relative-time';\nimport Timeline from '../components/timeline';\nimport { api } from '../utils/api';\nimport { oklab2rgb, rgb2oklab } from '../utils/color-utils';\nimport { filteredItems } from '../utils/filters';\nimport pmem from '../utils/pmem';\nimport shortenNumber from '../utils/shorten-number';\nimport states from '../utils/states';\nimport { saveStatus } from '../utils/states';\nimport supports from '../utils/supports';\nimport useTitle from '../utils/useTitle';\n\nconst LIMIT = 20;\n\nconst fetchLinks = pmem(\n (masto) => {\n return masto.v1.trends.links.list().next();\n },\n {\n // News last much longer\n maxAge: 10 * 60 * 1000, // 10 minutes\n },\n);\n\nfunction fetchTrends(masto) {\n if (supports('@pixelfed/trending')) {\n return masto.pixelfed.v2.discover.posts.trending.list({\n range: 'daily',\n });\n }\n return masto.v1.trends.statuses.list({\n limit: LIMIT,\n });\n}\n\nfunction Trending({ columnMode, ...props }) {\n const snapStates = useSnapshot(states);\n const params = columnMode ? {} : useParams();\n const { masto, instance } = api({\n instance: props?.instance || params.instance,\n });\n const { masto: currentMasto, instance: currentInstance } = api();\n const title = `Trending (${instance})`;\n useTitle(title, `/:instance?/trending`);\n // const navigate = useNavigate();\n const latestItem = useRef();\n\n const [hashtags, setHashtags] = useState([]);\n const [links, setLinks] = useState([]);\n const trendIterator = useRef();\n\n async function fetchTrend(firstLoad) {\n if (firstLoad || !trendIterator.current) {\n trendIterator.current = fetchTrends(masto);\n\n // Get hashtags\n if (supports('@mastodon/trending-hashtags')) {\n try {\n const iterator = masto.v1.trends.tags.list();\n const { value: tags } = await iterator.next();\n console.log('tags', tags);\n if (tags?.length) {\n setHashtags(tags);\n }\n } catch (e) {\n console.error(e);\n }\n }\n\n // Get links\n if (supports('@mastodon/trending-links')) {\n try {\n const { value } = await fetchLinks(masto, instance);\n // 4 types available: link, photo, video, rich\n // Only want links for now\n const links = value?.filter?.((link) => link.type === 'link');\n console.log('links', links);\n if (links?.length) {\n setLinks(links);\n }\n } catch (e) {\n console.error(e);\n }\n }\n }\n const results = await trendIterator.current.next();\n let { value } = results;\n if (value?.length) {\n if (firstLoad) {\n latestItem.current = value[0].id;\n }\n\n // value = filteredItems(value, 'public'); // Might not work here\n value.forEach((item) => {\n saveStatus(item, instance);\n });\n }\n return {\n ...results,\n value,\n };\n }\n\n async function checkForUpdates() {\n try {\n const results = await masto.v1.trends.statuses\n .list({\n limit: 1,\n // NOT SUPPORTED\n // since_id: latestItem.current,\n })\n .next();\n let { value } = results;\n value = filteredItems(value, 'public');\n if (value?.length && value[0].id !== latestItem.current) {\n latestItem.current = value[0].id;\n return true;\n }\n return false;\n } catch (e) {\n return false;\n }\n }\n\n const TimelineStart = useMemo(() => {\n return (\n <>\n {!!hashtags.length && (\n
    \n \n {hashtags.map((tag, i) => {\n const { name, history } = tag;\n const total = history.reduce((acc, cur) => acc + +cur.uses, 0);\n return (\n \n \n #\n {name}\n \n {shortenNumber(total)}\n \n );\n })}\n
    \n )}\n {!!links.length && (\n \n )}\n \n );\n }, [hashtags, links]);\n\n return (\n \n Trending\n
    {instance}
    \n \n }\n id=\"trending\"\n instance={instance}\n emptyText=\"No trending posts.\"\n errorText=\"Unable to load posts\"\n fetchItems={fetchTrend}\n checkForUpdates={checkForUpdates}\n checkForUpdatesInterval={5 * 60 * 1000} // 5 minutes\n useItemID\n headerStart={<>}\n boostsCarousel={snapStates.settings.boostsCarousel}\n // allowFilters\n filterContext=\"public\"\n timelineStart={TimelineStart}\n headerEnd={\n \n \n \n }\n >\n {\n let newInstance = prompt(\n 'Enter a new instance e.g. \"mastodon.social\"',\n );\n if (!/\\./.test(newInstance)) {\n if (newInstance) alert('Invalid instance');\n return;\n }\n if (newInstance) {\n newInstance = newInstance.toLowerCase().trim();\n // navigate(`/${newInstance}/trending`);\n location.hash = `/${newInstance}/trending`;\n }\n }}\n >\n Go to another instance…\n \n {currentInstance !== instance && (\n {\n location.hash = `/${currentInstance}/trending`;\n }}\n >\n {' '}\n \n Go to my instance ({currentInstance})\n \n \n )}\n \n }\n />\n );\n}\n\nexport default Trending;\n","import { useHotkeys } from 'react-hotkeys-hook';\nimport { useSnapshot } from 'valtio';\n\nimport Bookmarks from '../pages/bookmarks';\nimport Favourites from '../pages/favourites';\nimport Following from '../pages/following';\nimport Hashtag from '../pages/hashtag';\nimport List from '../pages/list';\nimport Mentions from '../pages/mentions';\nimport Notifications from '../pages/notifications';\nimport Public from '../pages/public';\nimport Search from '../pages/search';\nimport Trending from '../pages/trending';\nimport states from '../utils/states';\nimport useTitle from '../utils/useTitle';\n\nfunction Columns() {\n useTitle('Home', '/');\n const snapStates = useSnapshot(states);\n const { shortcuts } = snapStates;\n\n console.debug('RENDER Columns', shortcuts);\n\n const components = shortcuts.map((shortcut) => {\n if (!shortcut) return null;\n const { type, ...params } = shortcut;\n const Component = {\n following: Following,\n notifications: Notifications,\n list: List,\n public: Public,\n bookmarks: Bookmarks,\n favourites: Favourites,\n hashtag: Hashtag,\n mentions: Mentions,\n trending: Trending,\n search: Search,\n }[type];\n if (!Component) return null;\n // Don't show Search column with no query, for now\n if (type === 'search' && !params.query) return null;\n // Don't show List column with no list, for now\n if (type === 'list' && !params.id) return null;\n return (\n \n );\n });\n\n useHotkeys(['1', '2', '3', '4', '5', '6', '7', '8', '9'], (e, handler) => {\n try {\n const index = parseInt(handler.keys[0], 10) - 1;\n document.querySelectorAll('#columns > *')[index].focus();\n } catch (e) {\n console.error(e);\n }\n });\n\n return (\n {\n // If right-click on header, but not links or buttons\n if (\n e.target.closest('.deck > header') &&\n !e.target.closest('a') &&\n !e.target.closest('button')\n ) {\n e.preventDefault();\n states.showShortcutsSettings = true;\n }\n }}\n >\n {components}\n \n );\n}\n\nexport default Columns;\n","import './notifications-menu.css';\n\nimport { ControlledMenu } from '@szhsin/react-menu';\nimport { memo } from 'preact/compat';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useSnapshot } from 'valtio';\n\nimport Columns from '../components/columns';\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport Loader from '../components/loader';\nimport Notification from '../components/notification';\nimport { api } from '../utils/api';\nimport db from '../utils/db';\nimport groupNotifications from '../utils/group-notifications';\nimport states, { saveStatus } from '../utils/states';\nimport { getCurrentAccountNS } from '../utils/store-utils';\n\nimport Following from './following';\n\nfunction Home() {\n const snapStates = useSnapshot(states);\n useEffect(() => {\n (async () => {\n const keys = await db.drafts.keys();\n if (keys.length) {\n const ns = getCurrentAccountNS();\n const ownKeys = keys.filter((key) => key.startsWith(ns));\n if (ownKeys.length) {\n states.showDrafts = true;\n }\n }\n })();\n }, []);\n\n return (\n <>\n {(snapStates.settings.shortcutsViewMode === 'multi-column' ||\n (!snapStates.settings.shortcutsViewMode &&\n snapStates.settings.shortcutsColumnsMode)) &&\n !!snapStates.shortcuts?.length ? (\n \n ) : (\n }\n />\n )}\n \n );\n}\n\nfunction NotificationsLink() {\n const snapStates = useSnapshot(states);\n const notificationLinkRef = useRef();\n const [menuState, setMenuState] = useState(undefined);\n return (\n <>\n {\n e.stopPropagation();\n if (window.matchMedia('(min-width: calc(40em))').matches) {\n e.preventDefault();\n setMenuState((state) => (!state ? 'open' : undefined));\n }\n }}\n >\n \n \n setMenuState(undefined)}\n />\n \n );\n}\n\nconst NOTIFICATIONS_LIMIT = 80;\nconst NOTIFICATIONS_DISPLAY_LIMIT = 5;\nfunction NotificationsMenu({ anchorRef, state, onClose }) {\n const { masto, instance } = api();\n const snapStates = useSnapshot(states);\n const [uiState, setUIState] = useState('default');\n\n const notificationsIterator = masto.v1.notifications.list({\n limit: NOTIFICATIONS_LIMIT,\n });\n\n async function fetchNotifications() {\n const allNotifications = await notificationsIterator.next();\n const notifications = allNotifications.value;\n\n if (notifications?.length) {\n notifications.forEach((notification) => {\n saveStatus(notification.status, instance, {\n skipThreading: true,\n });\n });\n\n const groupedNotifications = groupNotifications(notifications);\n\n states.notificationsLast = notifications[0];\n states.notifications = groupedNotifications;\n\n // Update last read marker\n masto.v1.markers\n .create({\n notifications: {\n lastReadId: notifications[0].id,\n },\n })\n .catch(() => {});\n }\n\n states.notificationsShowNew = false;\n states.notificationsLastFetchTime = Date.now();\n return allNotifications;\n }\n\n const [hasFollowRequests, setHasFollowRequests] = useState(false);\n function fetchFollowRequests() {\n return masto.v1.followRequests.list({\n limit: 1,\n });\n }\n\n function loadNotifications() {\n setUIState('loading');\n (async () => {\n try {\n await fetchNotifications();\n const followRequests = await fetchFollowRequests();\n setHasFollowRequests(!!followRequests?.length);\n setUIState('default');\n } catch (e) {\n setUIState('error');\n }\n })();\n }\n\n useEffect(() => {\n if (state === 'open') loadNotifications();\n }, [state]);\n\n return (\n \n
    \n

    Notifications

    \n
    \n
    \n {snapStates.notifications.length ? (\n <>\n {snapStates.notifications\n .slice(0, NOTIFICATIONS_DISPLAY_LIMIT)\n .map((notification) => (\n \n ))}\n \n ) : uiState === 'loading' ? (\n
    \n \n
    \n ) : (\n uiState === 'error' && (\n
    \n

    Unable to fetch notifications.

    \n

    \n \n

    \n
    \n )\n )}\n
    \n
    \n \n Mentions\n \n \n {hasFollowRequests ? (\n <>\n New{' '}\n Follow Requests\n \n ) : (\n See all\n )}{' '}\n \n \n
    \n \n );\n}\n\nexport default memo(Home);\n","// export const statusRegex = /\\/@([^@\\/]+)@?([^\\/]+)?\\/([^\\/]+)\\/?$/i;\n// export const statusNoteRegex = /\\/notes\\/([^\\/]+)\\/?$/i;\n\nconst statusPostRegexes = [\n /^\\/@[^@\\/]+\\/(?:statuses|posts)\\/([^\\/]+)/i, // GoToSocial, Takahe\n /\\/notes\\/([^\\/]+)/i, // Misskey, Firefish\n /^\\/(?:notice|objects)\\/([a-z0-9-]+)/i, // Pleroma\n /\\/@[^@\\/]+@?[^\\/]+?\\/([^\\/]+)/i, // Mastodon\n /^\\/p\\/[^\\/]+\\/([^\\/]+)/i, // Pixelfed\n];\n\nexport function getInstanceStatusObject(url) {\n // Regex /:username/:id, where username = @username or @username@domain, id = anything\n const { hostname, pathname } = new URL(url);\n // const [, username, domain, id] = pathname.match(statusRegex) || [];\n for (const regex of statusPostRegexes) {\n const [, id] = pathname.match(regex) || [];\n console.log(pathname, regex, id);\n if (id) {\n return {\n instance: hostname,\n id,\n };\n }\n }\n return {};\n}\n\nfunction getInstanceStatusURL(url) {\n const { instance, id } = getInstanceStatusObject(url);\n if (instance && id) {\n return `/${instance}/s/${id}`;\n }\n return null;\n}\n\nexport default getInstanceStatusURL;\n","import { useLayoutEffect, useState } from 'preact/hooks';\nimport { useLocation } from 'react-router-dom';\n\nimport Link from '../components/link';\nimport Loader from '../components/loader';\nimport { api } from '../utils/api';\nimport getInstanceStatusURL, {\n getInstanceStatusObject,\n} from '../utils/get-instance-status-url';\n\nexport default function HttpRoute() {\n const location = useLocation();\n const url = location.pathname.replace(/^\\//, '');\n const statusObject = getInstanceStatusObject(url);\n // const statusURL = getInstanceStatusURL(url);\n const statusURL = statusObject?.instance\n ? `/${statusObject.instance}/s/${statusObject.id}`\n : null;\n const [uiState, setUIState] = useState('loading');\n\n useLayoutEffect(() => {\n setUIState('loading');\n (async () => {\n // Check if status returns 200\n try {\n const { instance, id } = statusObject;\n const { masto } = api({ instance });\n const status = await masto.v1.statuses.$select(id).fetch();\n if (status) {\n window.location.hash = statusURL + '?view=full';\n return;\n }\n } catch (e) {}\n\n // Fallback to search\n {\n const { masto: currentMasto, instance: currentInstance } = api();\n const result = await currentMasto.v2.search.fetch({\n q: url,\n limit: 1,\n resolve: true,\n });\n if (result.statuses.length) {\n const status = result.statuses[0];\n window.location.hash = `/${currentInstance}/s/${status.id}?view=full`;\n } else if (result.accounts.length) {\n const account = result.accounts[0];\n window.location.hash = `/${currentInstance}/a/${account.id}`;\n } else if (statusURL) {\n // Fallback to original URL, which will probably show error\n window.location.hash = statusURL + '?view=full';\n } else {\n setUIState('error');\n }\n }\n })();\n }, [statusURL]);\n\n return (\n
    \n {uiState === 'loading' ? (\n <>\n \n

    Resolving…

    \n

    \n \n {url}\n \n

    \n \n ) : (\n <>\n

    Unable to resolve URL

    \n

    \n \n {url}\n \n

    \n \n )}\n
    \n

    \n Go home\n

    \n
    \n );\n}\n","import './lists.css';\n\nimport { useEffect, useReducer, useRef, useState } from 'preact/hooks';\n\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport ListAddEdit from '../components/list-add-edit';\nimport Loader from '../components/loader';\nimport Modal from '../components/modal';\nimport NavMenu from '../components/nav-menu';\nimport { fetchLists } from '../utils/lists';\nimport useTitle from '../utils/useTitle';\n\nfunction Lists() {\n useTitle(`Lists`, `/l`);\n const [uiState, setUIState] = useState('default');\n\n const [reloadCount, reload] = useReducer((c) => c + 1, 0);\n const [lists, setLists] = useState([]);\n useEffect(() => {\n setUIState('loading');\n (async () => {\n try {\n const lists = await fetchLists();\n console.log(lists);\n setLists(lists);\n setUIState('default');\n } catch (e) {\n console.error(e);\n setUIState('error');\n }\n })();\n }, [reloadCount]);\n\n const [showListAddEditModal, setShowListAddEditModal] = useState(false);\n\n return (\n
    \n
    \n
    \n
    \n
    \n \n \n \n \n
    \n

    Lists

    \n
    \n setShowListAddEditModal(true)}\n >\n \n \n
    \n
    \n
    \n
    \n {lists.length > 0 ? (\n <>\n \n {lists.length > 1 && (\n
    \n \n {lists.length} list\n {lists.length === 1 ? '' : 's'}\n \n
    \n )}\n \n ) : uiState === 'loading' ? (\n

    \n \n

    \n ) : uiState === 'error' ? (\n

    Unable to load lists.

    \n ) : (\n

    No lists yet.

    \n )}\n
    \n
    \n {showListAddEditModal && (\n {\n if (e.target === e.currentTarget) {\n setShowListAddEditModal(false);\n }\n }}\n >\n {\n if (result.state === 'success') {\n reload();\n }\n setShowListAddEditModal(false);\n }}\n />\n \n )}\n
    \n );\n}\n\nexport default Lists;\n","export default \"__VITE_ASSET__Y_wpqkTO__\"","const { PHANPY_CLIENT_NAME: CLIENT_NAME, PHANPY_WEBSITE: WEBSITE } = import.meta\n .env;\n\nconst SCOPES = 'read write follow push';\n\nexport async function registerApplication({ instanceURL }) {\n const registrationParams = new URLSearchParams({\n client_name: CLIENT_NAME,\n redirect_uris: location.origin + location.pathname,\n scopes: SCOPES,\n website: WEBSITE,\n });\n const registrationResponse = await fetch(\n `https://${instanceURL}/api/v1/apps`,\n {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: registrationParams.toString(),\n },\n );\n const registrationJSON = await registrationResponse.json();\n console.log({ registrationJSON });\n return registrationJSON;\n}\n\nexport async function getAuthorizationURL({ instanceURL, client_id }) {\n const authorizationParams = new URLSearchParams({\n client_id,\n scope: SCOPES,\n redirect_uri: location.origin + location.pathname,\n // redirect_uri: 'urn:ietf:wg:oauth:2.0:oob',\n response_type: 'code',\n });\n const authorizationURL = `https://${instanceURL}/oauth/authorize?${authorizationParams.toString()}`;\n return authorizationURL;\n}\n\nexport async function getAccessToken({\n instanceURL,\n client_id,\n client_secret,\n code,\n}) {\n const params = new URLSearchParams({\n client_id,\n client_secret,\n redirect_uri: location.origin + location.pathname,\n grant_type: 'authorization_code',\n code,\n scope: SCOPES,\n });\n const tokenResponse = await fetch(`https://${instanceURL}/oauth/token`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n },\n body: params.toString(),\n });\n const tokenJSON = await tokenResponse.json();\n console.log({ tokenJSON });\n return tokenJSON;\n}\n","import './login.css';\n\nimport Fuse from 'fuse.js';\nimport { useEffect, useRef, useState } from 'preact/hooks';\nimport { useSearchParams } from 'react-router-dom';\n\nimport logo from '../assets/logo.svg';\n\nimport Link from '../components/link';\nimport Loader from '../components/loader';\nimport instancesListURL from '../data/instances.json?url';\nimport { getAuthorizationURL, registerApplication } from '../utils/auth';\nimport store from '../utils/store';\nimport useTitle from '../utils/useTitle';\n\nconst { PHANPY_DEFAULT_INSTANCE: DEFAULT_INSTANCE } = import.meta.env;\n\nfunction Login() {\n useTitle('Log in');\n const instanceURLRef = useRef();\n const cachedInstanceURL = store.local.get('instanceURL');\n const [uiState, setUIState] = useState('default');\n const [searchParams] = useSearchParams();\n const instance = searchParams.get('instance');\n const submit = searchParams.get('submit');\n const [instanceText, setInstanceText] = useState(\n instance || cachedInstanceURL?.toLowerCase() || '',\n );\n\n const [instancesList, setInstancesList] = useState([]);\n const searcher = useRef();\n useEffect(() => {\n (async () => {\n try {\n const res = await fetch(instancesListURL);\n const data = await res.json();\n setInstancesList(data);\n searcher.current = new Fuse(data);\n } catch (e) {\n // Silently fail\n console.error(e);\n }\n })();\n }, []);\n\n // useEffect(() => {\n // if (cachedInstanceURL) {\n // instanceURLRef.current.value = cachedInstanceURL.toLowerCase();\n // }\n // }, []);\n\n const submitInstance = (instanceURL) => {\n if (!instanceURL) return;\n store.local.set('instanceURL', instanceURL);\n\n (async () => {\n setUIState('loading');\n try {\n const { client_id, client_secret, vapid_key } =\n await registerApplication({\n instanceURL,\n });\n\n if (client_id && client_secret) {\n store.session.set('clientID', client_id);\n store.session.set('clientSecret', client_secret);\n store.session.set('vapidKey', vapid_key);\n\n location.href = await getAuthorizationURL({\n instanceURL,\n client_id,\n });\n } else {\n alert('Failed to register application');\n }\n setUIState('default');\n } catch (e) {\n console.error(e);\n setUIState('error');\n }\n })();\n };\n\n const cleanInstanceText = instanceText\n ? instanceText\n .replace(/^https?:\\/\\//, '') // Remove protocol from instance URL\n .replace(/\\/+$/, '') // Remove trailing slash\n .replace(/^@?[^@]+@/, '') // Remove @?acct@\n .trim()\n : null;\n const instanceTextLooksLikeDomain =\n /[^\\s\\r\\n\\t\\/\\\\]+\\.[^\\s\\r\\n\\t\\/\\\\]+/.test(cleanInstanceText) &&\n !/[\\s\\/\\\\@]/.test(cleanInstanceText);\n\n const instancesSuggestions = cleanInstanceText\n ? searcher.current\n ?.search(cleanInstanceText, {\n limit: 10,\n })\n ?.map((match) => match.item)\n : [];\n\n const selectedInstanceText = instanceTextLooksLikeDomain\n ? cleanInstanceText\n : instancesSuggestions?.length\n ? instancesSuggestions[0]\n : instanceText\n ? instancesList.find((instance) => instance.includes(instanceText))\n : null;\n\n const onSubmit = (e) => {\n e.preventDefault();\n // const { elements } = e.target;\n // let instanceURL = elements.instanceURL.value.toLowerCase();\n // // Remove protocol from instance URL\n // instanceURL = instanceURL.replace(/^https?:\\/\\//, '').replace(/\\/+$/, '');\n // // Remove @acct@ or acct@ from instance URL\n // instanceURL = instanceURL.replace(/^@?[^@]+@/, '');\n // if (!/\\./.test(instanceURL)) {\n // instanceURL = instancesList.find((instance) =>\n // instance.includes(instanceURL),\n // );\n // }\n // submitInstance(instanceURL);\n submitInstance(selectedInstanceText);\n };\n\n if (submit) {\n useEffect(() => {\n submitInstance(instance || selectedInstanceText);\n }, []);\n }\n\n return (\n
    \n
    \n

    \n \"\"\n
    \n Log in\n

    \n \n {uiState === 'error' && (\n

    \n Failed to log in. Please try again or another instance.\n

    \n )}\n
    \n \n {selectedInstanceText\n ? `Continue with ${selectedInstanceText}`\n : 'Continue'}\n {' '}\n
    \n
    \n );\n}\n\nexport default Login;\n","import './status.css';\n\nimport { Menu, MenuDivider, MenuHeader, MenuItem } from '@szhsin/react-menu';\nimport debounce from 'just-debounce-it';\nimport pRetry from 'p-retry';\nimport { memo } from 'preact/compat';\nimport {\n useCallback,\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'preact/hooks';\nimport punycode from 'punycode';\nimport { useHotkeys } from 'react-hotkeys-hook';\nimport { InView } from 'react-intersection-observer';\nimport { matchPath, useSearchParams } from 'react-router-dom';\nimport { useSnapshot } from 'valtio';\n\nimport Avatar from '../components/avatar';\nimport Icon from '../components/icon';\nimport Link from '../components/link';\nimport Loader from '../components/loader';\nimport MediaModal from '../components/media-modal';\nimport Menu2 from '../components/menu2';\nimport NameText from '../components/name-text';\nimport RelativeTime from '../components/relative-time';\nimport Status from '../components/status';\nimport { api } from '../utils/api';\nimport htmlContentLength from '../utils/html-content-length';\nimport shortenNumber from '../utils/shorten-number';\nimport states, {\n getStatus,\n saveStatus,\n statusKey,\n threadifyStatus,\n} from '../utils/states';\nimport statusPeek from '../utils/status-peek';\nimport { getCurrentAccount } from '../utils/store-utils';\nimport useScroll from '../utils/useScroll';\nimport useTitle from '../utils/useTitle';\n\nimport getInstanceStatusURL from './../utils/get-instance-status-url';\n\nconst LIMIT = 40;\nconst SUBCOMMENTS_OPEN_ALL_LIMIT = 10;\nconst MAX_WEIGHT = 5;\n\nlet cachedRepliesToggle = {};\nlet cachedStatusesMap = {};\nlet scrollPositions = {};\nfunction resetScrollPosition(id) {\n delete cachedStatusesMap[id];\n delete scrollPositions[id];\n}\n\nconst scrollIntoViewOptions = {\n block: 'nearest',\n inline: 'center',\n behavior: 'smooth',\n};\n\n// Select all statuses except those inside collapsed details/summary\n// Hat-tip to @AmeliaBR@front-end.social\n// https://front-end.social/@AmeliaBR/109784776146144471\nconst STATUSES_SELECTOR =\n '.status-link:not(details:not([open]) > summary ~ *, details:not([open]) > summary ~ * *), .status-focus:not(details:not([open]) > summary ~ *, details:not([open]) > summary ~ * *)';\n\nconst STATUS_URL_REGEX = /\\/s\\//i;\n\nfunction StatusPage(params) {\n const { id } = params;\n const { masto, instance } = api({ instance: params.instance });\n const snapStates = useSnapshot(states);\n const [searchParams, setSearchParams] = useSearchParams();\n const mediaParam = searchParams.get('media');\n const mediaOnlyParam = searchParams.get('media-only');\n const mediaIndex = parseInt(mediaParam || mediaOnlyParam, 10);\n let showMedia = mediaIndex > 0;\n const mediaStatusID = searchParams.get('mediaStatusID');\n const mediaStatus = getStatus(mediaStatusID, instance);\n if (mediaStatusID && !mediaStatus) {\n showMedia = false;\n }\n const showMediaOnly = showMedia && !!mediaOnlyParam;\n\n const sKey = statusKey(id, instance);\n const [heroStatus, setHeroStatus] = useState(states.statuses[sKey]);\n useEffect(() => {\n if (states.statuses[sKey]) {\n setHeroStatus(states.statuses[sKey]);\n }\n }, [sKey]);\n\n const closeLink = useMemo(() => {\n const { prevLocation } = states;\n const pathname =\n (prevLocation?.pathname || '') + (prevLocation?.search || '');\n const matchStatusPath =\n matchPath('/:instance/s/:id', pathname) || matchPath('/s/:id', pathname);\n if (!pathname || matchStatusPath) {\n return '/';\n }\n return pathname;\n }, []);\n\n useEffect(() => {\n if (!heroStatus && showMedia) {\n (async () => {\n try {\n const status = await masto.v1.statuses.$select(id).fetch();\n saveStatus(status, instance);\n setHeroStatus(status);\n } catch (err) {\n console.error(err);\n alert('Unable to load post.');\n location.hash = closeLink;\n }\n })();\n }\n }, [showMedia]);\n\n const mediaAttachments = mediaStatusID\n ? snapStates.statuses[statusKey(mediaStatusID, instance)]?.mediaAttachments\n : heroStatus?.mediaAttachments;\n\n const handleMediaClose = useCallback(() => {\n if (\n !window.matchMedia('(min-width: calc(40em + 350px))').matches &&\n snapStates.prevLocation\n ) {\n history.back();\n } else {\n if (showMediaOnly) {\n location.hash = closeLink;\n } else {\n searchParams.delete('media');\n searchParams.delete('mediaStatusID');\n setSearchParams(searchParams);\n }\n }\n }, [showMediaOnly, closeLink, snapStates.prevLocation]);\n\n useEffect(() => {\n let timer = setTimeout(() => {\n // carouselRef.current?.focus?.();\n const $carousel = document.querySelector('.carousel');\n if ($carousel) {\n $carousel.focus();\n }\n }, 100);\n return () => clearTimeout(timer);\n }, [showMediaOnly]);\n\n useEffect(() => {\n const $deckContainers = document.querySelectorAll('.deck-container');\n $deckContainers.forEach(($deckContainer) => {\n $deckContainer.setAttribute('inert', '');\n });\n return () => {\n $deckContainers.forEach(($deckContainer) => {\n $deckContainer.removeAttribute('inert');\n });\n };\n }, []);\n\n return (\n
    \n {showMedia ? (\n mediaAttachments?.length ? (\n \n ) : (\n
    \n \n
    \n )\n ) : (\n \n )}\n {!showMediaOnly && (\n \n )}\n
    \n );\n}\n\nfunction StatusParent(props) {\n const { linkable, to, onClick, ...restProps } = props;\n return linkable ? (\n \n ) : (\n
    \n );\n}\n\nfunction StatusThread({ id, closeLink = '/', instance: propInstance }) {\n const [searchParams, setSearchParams] = useSearchParams();\n const mediaParam = searchParams.get('media');\n const mediaStatusID = searchParams.get('mediaStatusID');\n const showMedia = parseInt(mediaParam, 10) > 0;\n const firstLoad = useRef(\n !states.prevLocation &&\n (history.length === 1 ||\n ('navigation' in window && navigation?.entries?.()?.length === 1)),\n );\n const [viewMode, setViewMode] = useState(\n searchParams.get('view') || firstLoad.current ? 'full' : null,\n );\n const translate = !!parseInt(searchParams.get('translate'));\n const { masto, instance } = api({ instance: propInstance });\n const {\n masto: currentMasto,\n instance: currentInstance,\n authenticated,\n } = api();\n const sameInstance = instance === currentInstance;\n const snapStates = useSnapshot(states);\n const [statuses, setStatuses] = useState([]);\n const [uiState, setUIState] = useState('default');\n const heroStatusRef = useRef();\n const sKey = statusKey(id, instance);\n const totalDescendants = useRef(0);\n\n const scrollableRef = useRef();\n useEffect(() => {\n scrollableRef.current?.focus();\n }, []);\n useEffect(() => {\n const onScroll = debounce(() => {\n // console.log('onScroll');\n if (!scrollableRef.current) return;\n const { scrollTop } = scrollableRef.current;\n if (uiState !== 'loading') {\n scrollPositions[id] = scrollTop;\n }\n }, 50);\n scrollableRef.current?.addEventListener('scroll', onScroll, {\n passive: true,\n });\n onScroll();\n return () => {\n onScroll.cancel();\n scrollableRef.current?.removeEventListener('scroll', onScroll);\n };\n }, [id, uiState !== 'loading']);\n\n const scrollOffsets = useRef();\n const lastInitContextTS = useRef();\n const initContext = ({ reloadHero } = {}) => {\n console.debug('initContext', id);\n setUIState('loading');\n let heroTimer;\n\n const cachedStatuses = cachedStatusesMap[id];\n if (cachedStatuses) {\n // Case 1: It's cached, let's restore them to make it snappy\n const reallyCachedStatuses = cachedStatuses.filter(\n (s) => states.statuses[sKey],\n // Some are not cached in the global state, so we need to filter them out\n );\n setStatuses(reallyCachedStatuses);\n } else {\n // const heroIndex = statuses.findIndex((s) => s.id === id);\n // if (heroIndex !== -1) {\n // // Case 2: It's in current statuses. Slice off all descendant statuses after the hero status to be safe\n // const slicedStatuses = statuses.slice(0, heroIndex + 1);\n // setStatuses(slicedStatuses);\n // } else {\n // Case 3: Not cached and not in statuses, let's start from scratch\n setStatuses([{ id }]);\n // }\n }\n\n (async () => {\n const heroFetch = () =>\n pRetry(() => masto.v1.statuses.$select(id).fetch(), {\n retries: 4,\n });\n const contextFetch = pRetry(\n () => masto.v1.statuses.$select(id).context.fetch(),\n {\n retries: 8,\n },\n );\n\n const hasStatus = !!snapStates.statuses[sKey];\n let heroStatus = snapStates.statuses[sKey];\n if (hasStatus && !reloadHero) {\n console.debug('Hero status is cached');\n } else {\n try {\n heroStatus = await heroFetch();\n saveStatus(heroStatus, instance);\n // Give time for context to appear\n await new Promise((resolve) => {\n setTimeout(resolve, 100);\n });\n } catch (e) {\n console.error(e);\n setUIState('error');\n return;\n }\n }\n\n try {\n const context = await contextFetch;\n const { ancestors, descendants } = context;\n\n totalDescendants.current = descendants?.length || 0;\n\n const missingStatuses = new Set();\n ancestors.forEach((status) => {\n saveStatus(status, instance, {\n skipThreading: true,\n });\n if (\n status.inReplyToId &&\n !ancestors.find((s) => s.id === status.inReplyToId)\n ) {\n missingStatuses.add(status.inReplyToId);\n }\n });\n const ancestorsIsThread = ancestors.every(\n (s) => s.account.id === heroStatus.account.id,\n );\n const nestedDescendants = [];\n descendants.forEach((status) => {\n saveStatus(status, instance, {\n skipThreading: true,\n });\n\n if (\n status.inReplyToId &&\n !descendants.find((s) => s.id === status.inReplyToId) &&\n status.inReplyToId !== heroStatus.id\n ) {\n missingStatuses.add(status.inReplyToId);\n }\n\n if (status.inReplyToAccountId === status.account.id) {\n // If replying to self, it's part of the thread, level 1\n nestedDescendants.push(status);\n } else if (status.inReplyToId === heroStatus.id) {\n // If replying to the hero status, it's a reply, level 1\n nestedDescendants.push(status);\n } else if (\n !status.inReplyToAccountId &&\n nestedDescendants.find((s) => s.id === status.inReplyToId) &&\n status.account.id === heroStatus.account.id\n ) {\n // If replying to hero's own statuses, it's part of the thread, level 1\n nestedDescendants.push(status);\n } else {\n // If replying to someone else, it's a reply to a reply, level 2\n const parent = descendants.find((s) => s.id === status.inReplyToId);\n if (parent) {\n if (!parent.__replies) {\n parent.__replies = [];\n }\n parent.__replies.push(status);\n } else {\n // If no parent, something is wrong\n console.warn('No parent found for', status);\n }\n }\n });\n\n console.log({ ancestors, descendants, nestedDescendants });\n if (missingStatuses.size) {\n console.error('Missing statuses', [...missingStatuses]);\n }\n\n function expandReplies(_replies) {\n return _replies?.map((_r) => ({\n id: _r.id,\n account: _r.account,\n repliesCount: _r.repliesCount,\n content: _r.content,\n weight: calcStatusWeight(_r),\n replies: expandReplies(_r.__replies),\n }));\n }\n\n const allStatuses = [\n ...ancestors.map((s) => ({\n id: s.id,\n ancestor: true,\n isThread: ancestorsIsThread,\n accountID: s.account.id,\n account: s.account,\n repliesCount: s.repliesCount,\n weight: calcStatusWeight(s),\n })),\n {\n id,\n accountID: heroStatus.account.id,\n weight: calcStatusWeight(heroStatus),\n },\n ...nestedDescendants.map((s) => ({\n id: s.id,\n account: s.account,\n accountID: s.account.id,\n descendant: true,\n thread: s.account.id === heroStatus.account.id,\n weight: calcStatusWeight(s),\n replies: expandReplies(s.__replies),\n })),\n ];\n\n setUIState('default');\n scrollOffsets.current = {\n offsetTop: heroStatusRef.current?.offsetTop,\n scrollTop: scrollableRef.current?.scrollTop,\n };\n\n // Set limit to hero's index\n const heroLimit = allStatuses.findIndex((s) => s.id === id);\n if (heroLimit >= limit) {\n setLimit(heroLimit + 1);\n }\n\n console.log({ allStatuses });\n setStatuses(allStatuses);\n cachedStatusesMap[id] = allStatuses;\n\n // Let's threadify this one\n // Note that all non-hero statuses will trigger saveStatus which will threadify them too\n // By right, at this point, all descendant statuses should be cached\n threadifyStatus(heroStatus, instance);\n } catch (e) {\n console.error(e);\n setUIState('error');\n }\n })();\n\n lastInitContextTS.current = Date.now();\n\n return () => {\n clearTimeout(heroTimer);\n };\n };\n\n useEffect(initContext, [id, masto]);\n\n const [showRefresh, setShowRefresh] = useState(false);\n useEffect(() => {\n let interval = setInterval(() => {\n const now = Date.now();\n if (\n lastInitContextTS.current &&\n now - lastInitContextTS.current >= 60_000\n ) {\n setShowRefresh(true);\n }\n }, 60_000); // 1 minute\n return () => {\n clearInterval(interval);\n };\n }, []);\n\n useLayoutEffect(() => {\n if (!statuses.length) return;\n console.debug('STATUSES', statuses);\n const scrollPosition = scrollPositions[id];\n console.debug('scrollPosition', scrollPosition);\n if (!!scrollPosition) {\n console.debug('Case 1', {\n id,\n scrollPosition,\n });\n scrollableRef.current.scrollTop = scrollPosition;\n } else if (scrollOffsets.current) {\n const newScrollOffsets = {\n offsetTop: heroStatusRef.current?.offsetTop,\n scrollTop: scrollableRef.current?.scrollTop,\n };\n const newScrollTop =\n newScrollOffsets.offsetTop -\n scrollOffsets.current.offsetTop +\n newScrollOffsets.scrollTop;\n console.debug('Case 2', {\n scrollOffsets: scrollOffsets.current,\n newScrollOffsets,\n newScrollTop,\n statuses: [...statuses],\n });\n scrollableRef.current.scrollTop = newScrollTop;\n } else if (statuses.length === 1) {\n console.debug('Case 3', {\n id,\n });\n scrollableRef.current.scrollTop = 0;\n }\n\n // RESET\n scrollOffsets.current = null;\n }, [statuses]);\n\n useEffect(() => {\n if (snapStates.reloadStatusPage <= 0) return;\n // Delete the cache for the context\n (async () => {\n try {\n const { instanceURL } = getCurrentAccount();\n const contextURL = `https://${instanceURL}/api/v1/statuses/${id}/context`;\n console.log('Clear cache', contextURL);\n const apiCache = await caches.open('api');\n await apiCache.delete(contextURL, { ignoreVary: true });\n\n return initContext({\n reloadHero: true,\n });\n } catch (e) {\n console.error(e);\n }\n })();\n }, [snapStates.reloadStatusPage]);\n\n useEffect(() => {\n return () => {\n // RESET\n scrollPositions = {};\n states.reloadStatusPage = 0;\n cachedStatusesMap = {};\n cachedRepliesToggle = {};\n statusWeightCache.clear();\n };\n }, []);\n\n const heroStatus = snapStates.statuses[sKey] || snapStates.statuses[id];\n const heroDisplayName = useMemo(() => {\n // Remove shortcodes from display name\n if (!heroStatus) return '';\n const { account } = heroStatus;\n const div = document.createElement('div');\n div.innerHTML = account.displayName;\n return div.innerText.trim();\n }, [heroStatus]);\n const heroContentText = useMemo(() => {\n if (!heroStatus) return '';\n let text = statusPeek(heroStatus);\n if (text.length > 64) {\n // \"The title should ideally be less than 64 characters in length\"\n // https://www.w3.org/Provider/Style/TITLE.html\n text = text.slice(0, 64) + '…';\n }\n return text;\n }, [heroStatus]);\n useTitle(\n heroDisplayName && heroContentText\n ? `${heroDisplayName}: \"${heroContentText}\"`\n : 'Status',\n '/:instance?/s/:id',\n );\n\n const postInstance = useMemo(() => {\n if (!heroStatus) return;\n const { url } = heroStatus;\n if (!url) return;\n return new URL(url).hostname;\n }, [heroStatus]);\n const postSameInstance = useMemo(() => {\n if (!postInstance) return;\n return postInstance === instance;\n }, [postInstance, instance]);\n\n const [limit, setLimit] = useState(LIMIT);\n const showMore = useMemo(() => {\n // return number of statuses to show\n return statuses.length - limit;\n }, [statuses.length, limit]);\n\n const hasDescendants = statuses.some((s) => s.descendant);\n const ancestors = statuses.filter((s) => s.ancestor);\n\n const [heroInView, setHeroInView] = useState(true);\n const heroPointer = useMemo(() => {\n // get top offset of heroStatus\n if (!heroStatusRef.current || heroInView) return null;\n const { top } = heroStatusRef.current.getBoundingClientRect();\n return top > 0 ? 'down' : 'up';\n }, [heroInView]);\n\n useHotkeys(\n 'esc',\n () => {\n location.hash = closeLink;\n },\n {\n // If media is open, esc to close media first\n // Else close the status page\n enabled: !showMedia,\n ignoreEventWhen: (e) => {\n const hasModal = !!document.querySelector('#modal-container > *');\n return hasModal;\n },\n },\n );\n // For backspace, will always close both media and status page\n useHotkeys('backspace', () => {\n location.hash = closeLink;\n });\n\n useHotkeys('j', () => {\n const activeStatus = document.activeElement.closest(\n '.status-link, .status-focus',\n );\n const activeStatusRect = activeStatus?.getBoundingClientRect();\n const allStatusLinks = Array.from(\n scrollableRef.current.querySelectorAll(STATUSES_SELECTOR),\n );\n console.log({ allStatusLinks });\n if (\n activeStatus &&\n activeStatusRect.top < scrollableRef.current.clientHeight &&\n activeStatusRect.bottom > 0\n ) {\n const activeStatusIndex = allStatusLinks.indexOf(activeStatus);\n let nextStatus = allStatusLinks[activeStatusIndex + 1];\n if (nextStatus) {\n nextStatus.focus();\n nextStatus.scrollIntoView(scrollIntoViewOptions);\n }\n } else {\n // If active status is not in viewport, get the topmost status-link in viewport\n const topmostStatusLink = allStatusLinks.find((statusLink) => {\n const statusLinkRect = statusLink.getBoundingClientRect();\n return statusLinkRect.top >= 44 && statusLinkRect.left >= 0; // 44 is the magic number for header height, not real\n });\n if (topmostStatusLink) {\n topmostStatusLink.focus();\n topmostStatusLink.scrollIntoView(scrollIntoViewOptions);\n }\n }\n });\n\n useHotkeys('k', () => {\n const activeStatus = document.activeElement.closest(\n '.status-link, .status-focus',\n );\n const activeStatusRect = activeStatus?.getBoundingClientRect();\n const allStatusLinks = Array.from(\n scrollableRef.current.querySelectorAll(STATUSES_SELECTOR),\n );\n if (\n activeStatus &&\n activeStatusRect.top < scrollableRef.current.clientHeight &&\n activeStatusRect.bottom > 0\n ) {\n const activeStatusIndex = allStatusLinks.indexOf(activeStatus);\n let prevStatus = allStatusLinks[activeStatusIndex - 1];\n if (prevStatus) {\n prevStatus.focus();\n prevStatus.scrollIntoView(scrollIntoViewOptions);\n }\n } else {\n // If active status is not in viewport, get the topmost status-link in viewport\n const topmostStatusLink = allStatusLinks.find((statusLink) => {\n const statusLinkRect = statusLink.getBoundingClientRect();\n return statusLinkRect.top >= 44 && statusLinkRect.left >= 0; // 44 is the magic number for header height, not real\n });\n if (topmostStatusLink) {\n topmostStatusLink.focus();\n topmostStatusLink.scrollIntoView(scrollIntoViewOptions);\n }\n }\n });\n\n // NOTE: I'm not sure if 'x' is the best shortcut for this, might change it later\n // IDEA: x is for expand\n useHotkeys('x', () => {\n const activeStatus = document.activeElement.closest(\n '.status-link, .status-focus',\n );\n if (activeStatus) {\n const details = activeStatus.nextElementSibling;\n if (details && details.tagName.toLowerCase() === 'details') {\n details.open = !details.open;\n }\n }\n });\n\n const [reachTopPost, setReachTopPost] = useState(false);\n // const { nearReachStart } = useScroll({\n // scrollableRef,\n // distanceFromStartPx: 16,\n // });\n\n const initialPageState = useRef(showMedia ? 'media+status' : 'status');\n\n const handleMediaClick = useCallback(\n (e, i, media, status) => {\n e.preventDefault();\n e.stopPropagation();\n setSearchParams({\n media: i + 1,\n mediaStatusID: status.id,\n });\n },\n [id],\n );\n\n const handleStatusLinkClick = useCallback((e, status) => {\n resetScrollPosition(status.id);\n }, []);\n\n useEffect(() => {\n let timer;\n if (mediaStatusID && showMedia) {\n timer = setTimeout(() => {\n const status = scrollableRef.current?.querySelector(\n `.status-link[href*=\"/${mediaStatusID}\"]`,\n );\n if (status) {\n status.scrollIntoView(scrollIntoViewOptions);\n }\n }, 400); // After CSS transition\n }\n return () => {\n clearTimeout(timer);\n };\n }, [mediaStatusID, showMedia]);\n\n const renderStatus = useCallback(\n (status, i) => {\n const {\n id: statusID,\n ancestor,\n isThread,\n descendant,\n thread,\n replies,\n repliesCount,\n weight,\n } = status;\n const isHero = statusID === id;\n const isLinkable = isThread || ancestor;\n\n return (\n \n {isHero ? (\n <>\n {\n queueMicrotask(() => {\n requestAnimationFrame(() => {\n setHeroInView(inView);\n });\n });\n }}\n class=\"status-focus\"\n tabIndex={0}\n >\n \n \n {uiState !== 'loading' && !authenticated ? (\n
    \n

    \n You're not logged in. Interactions (reply, boost, etc) are\n not possible.\n

    \n \n Log in\n \n
    \n ) : (\n !sameInstance && (\n
    \n

    \n This post is from another instance ({instance}).\n Interactions (reply, boost, etc) are not possible.\n

    \n {\n setUIState('loading');\n (async () => {\n try {\n const results = await currentMasto.v2.search.fetch({\n q: heroStatus.url,\n type: 'statuses',\n resolve: true,\n limit: 1,\n });\n if (results.statuses.length) {\n const status = results.statuses[0];\n location.hash = currentInstance\n ? `/${currentInstance}/s/${status.id}`\n : `/s/${status.id}`;\n } else {\n throw new Error('No results');\n }\n } catch (e) {\n setUIState('default');\n alert('Error: ' + e);\n console.error(e);\n }\n })();\n }}\n >\n Switch to my instance to enable\n interactions\n \n
    \n )\n )}\n \n ) : (\n {\n resetScrollPosition(statusID);\n }}\n >\n {/* {\n resetScrollPosition(statusID);\n }}\n > */}\n {i === 0 && ancestor ? (\n {\n queueMicrotask(() => {\n requestAnimationFrame(() => {\n setReachTopPost(inView);\n });\n });\n }}\n >\n \n \n ) : (\n \n )}\n {ancestor && repliesCount > 1 && (\n
    \n {' '}\n \n {shortenNumber(repliesCount)}\n \n
    \n )}{' '}\n {/* {replies?.length > LIMIT && (\n
    \n {' '}\n \n {shortenNumber(replies.length)}\n \n
    \n )} */}\n \n // \n )}\n {descendant && replies?.length > 0 && (\n resetScrollPosition(statusID),\n }}\n />\n )}\n {uiState === 'loading' &&\n isHero &&\n !!heroStatus?.repliesCount &&\n !hasDescendants && (\n
    \n = 3} />\n
    \n )}\n {uiState === 'error' &&\n isHero &&\n !!heroStatus?.repliesCount &&\n !hasDescendants && (\n
    \n Unable to load replies.\n
    \n {\n states.reloadStatusPage++;\n }}\n >\n Try again\n \n
    \n )}\n
  • \n );\n },\n [\n id,\n instance,\n uiState,\n authenticated,\n sameInstance,\n translate,\n handleMediaClick,\n handleStatusLinkClick,\n hasDescendants,\n ],\n );\n\n const prevLocationIsStatusPage = useMemo(() => {\n // Navigation API\n if ('navigation' in window && navigation?.entries) {\n const prevEntry = navigation.entries()[navigation.currentEntry.index - 1];\n if (prevEntry?.url) {\n return STATUS_URL_REGEX.test(prevEntry.url);\n }\n }\n return STATUS_URL_REGEX.test(states.prevLocation?.pathname);\n }, [sKey]);\n\n const moreStatusesKeys = useMemo(() => {\n if (!showMore) return [];\n const ids = [];\n function getIDs(status) {\n ids.push(status.id);\n if (status.replies) {\n status.replies.forEach(getIDs);\n }\n }\n statuses.slice(limit).forEach(getIDs);\n return ids.map((id) => statusKey(id, instance));\n }, [showMore, statuses, limit, instance]);\n\n const statusesList = useMemo(\n () => statuses.slice(0, limit).map(renderStatus),\n [statuses, limit, renderStatus],\n );\n\n // If there's spoiler in hero status, auto-expand it\n useEffect(() => {\n let timer = setTimeout(() => {\n if (!heroStatusRef.current) return;\n const spoilerButton = heroStatusRef.current.querySelector(\n '.spoiler-button:not(.spoiling), .spoiler-media-button:not(.spoiling)',\n );\n if (spoilerButton) spoilerButton.click();\n }, 1000);\n return () => clearTimeout(timer);\n }, [id]);\n\n return (\n 1 ? 'padded-bottom' : ''\n } ${\n initialPageState.current === 'status' && !firstLoad.current\n ? 'slide-in'\n : ''\n } ${viewMode ? `deck-view-${viewMode}` : ''}`}\n onAnimationEnd={(e) => {\n // Fix the bounce effect when switching viewMode\n // `slide-in` animation kicks in when switching viewMode\n if (initialPageState.current === 'status') {\n // e.target.classList.remove('slide-in');\n initialPageState.current = null;\n }\n }}\n >\n {\n // reload statuses\n states.reloadStatusPage++;\n }}\n >\n {/*
    \n \n \n \n
    */}\n
    \n

    \n {prevLocationIsStatusPage && (\n {\n history.back();\n }}\n >\n \n \n )}\n {!heroInView && heroStatus && uiState !== 'loading' ? (\n <>\n \n {' '}\n \n •{' '}\n \n \n {' '}\n {\n e.preventDefault();\n e.stopPropagation();\n heroStatusRef.current.scrollIntoView({\n behavior: 'smooth',\n block: 'start',\n });\n }}\n title=\"Go to main post\"\n >\n \n \n \n ) : (\n <>\n Post{' '}\n {\n // Scroll to top\n e.preventDefault();\n e.stopPropagation();\n scrollableRef.current.scrollTo({\n top: 0,\n behavior: 'smooth',\n });\n }}\n hidden={!ancestors.length || reachTopPost}\n title={`${ancestors.length} posts above ‒ Go to top`}\n >\n \n {ancestors\n .filter(\n (a, i, arr) =>\n arr.findIndex((b) => b.accountID === a.accountID) === i,\n )\n .slice(0, 3)\n .map((ancestor) => (\n \n ))}\n {/* {' '} */}\n {ancestors.length > 3 && (\n <>\n {' '}\n \n {shortenNumber(ancestors.length)}\n \n \n )}\n \n \n )}\n

    \n
    \n {\n setViewMode(null);\n searchParams.delete('media');\n searchParams.delete('media-only');\n searchParams.delete('view');\n setSearchParams(searchParams);\n }}\n title=\"Switch to Side Peek view\"\n >\n \n \n {showRefresh && (\n {\n states.reloadStatusPage++;\n setShowRefresh(false);\n }}\n >\n \n \n )}\n \n \n \n }\n >\n {\n states.reloadStatusPage++;\n }}\n >\n \n Refresh\n \n {\n setViewMode(viewMode === 'full' ? null : 'full');\n searchParams.delete('media');\n searchParams.delete('media-only');\n if (viewMode === 'full') {\n searchParams.delete('view');\n } else {\n searchParams.set('view', 'full');\n }\n setSearchParams(searchParams);\n }}\n >\n \n \n Switch to {viewMode === 'full' ? 'Side Peek' : 'Full'} view\n \n \n {\n // Click all buttons with class .spoiler but not .spoiling\n const buttons = Array.from(\n scrollableRef.current.querySelectorAll(\n '.spoiler-button:not(.spoiling), .spoiler-media-button:not(.spoiling)',\n ),\n );\n buttons.forEach((button) => {\n button.click();\n });\n }}\n >\n Show all sensitive content\n \n \n Experimental\n {\n const statusURL = getInstanceStatusURL(heroStatus.url);\n if (statusURL) {\n location.hash = statusURL;\n } else {\n alert('Unable to switch');\n }\n }}\n >\n \n \n Switch to post's instance\n {postInstance ? (\n <>\n {' '}\n ({punycode.toUnicode(postInstance)})\n \n ) : (\n ''\n )}\n \n \n \n \n \n \n
    \n
    \n \n {!!statuses.length && heroStatus ? (\n \n {statusesList}\n {showMore > 0 && (\n
  • \n setLimit((l) => l + LIMIT)}\n style={{ marginBlockEnd: '6em' }}\n data-state-post-ids={moreStatusesKeys.join(' ')}\n >\n
    \n {/* show avatars for first 5 statuses */}\n {statuses.slice(limit, limit + 5).map((status) => (\n \n ))}\n
    {' '}\n
    \n Show more…{' '}\n \n {showMore > LIMIT ? `${LIMIT}+` : showMore}\n \n
    \n \n
  • \n )}\n \n ) : (\n <>\n {uiState === 'loading' && (\n
      \n
    • \n \n
    • \n
    \n )}\n {uiState === 'error' && (\n

    \n Unable to load post\n
    \n
    \n {\n states.reloadStatusPage++;\n }}\n >\n Try again\n \n

    \n )}\n \n )}\n \n );\n}\n\nfunction SubComments({\n replies,\n instance,\n hasParentThread,\n level,\n accWeight,\n openAll,\n parentLink,\n}) {\n const [searchParams, setSearchParams] = useSearchParams();\n\n // Total comments count, including sub-replies\n const diveDeep = (replies) => {\n return replies.reduce((acc, reply) => {\n const { repliesCount, replies } = reply;\n const count = replies?.length || repliesCount;\n return acc + count + diveDeep(replies || []);\n }, 0);\n };\n const totalComments = replies.length + diveDeep(replies);\n const sameCount = replies.length === totalComments;\n\n // Get the first 3 accounts, unique by id\n const accounts = replies\n .map((r) => r.account)\n .filter((a, i, arr) => arr.findIndex((b) => b.id === a.id) === i)\n .slice(0, 3);\n\n const totalWeight = useMemo(() => {\n return replies?.reduce((acc, reply) => {\n return acc + reply?.weight;\n }, accWeight);\n }, [accWeight, replies?.length]);\n\n let open = false;\n if (openAll) {\n open = true;\n } else if (totalWeight <= MAX_WEIGHT) {\n open = true;\n } else if (!hasParentThread && totalComments === 1) {\n const shortReply = calcStatusWeight(replies[0]) < 2;\n if (shortReply) open = true;\n }\n const openBefore = cachedRepliesToggle[replies[0].id];\n\n const handleMediaClick = useCallback((e, i, media, status) => {\n e.preventDefault();\n e.stopPropagation();\n setSearchParams({\n media: i + 1,\n mediaStatusID: status.id,\n });\n }, []);\n\n const detailsRef = useRef();\n useLayoutEffect(() => {\n function handleScroll(e) {\n e.target.dataset.scrollLeft = e.target.scrollLeft;\n }\n detailsRef.current?.addEventListener('scroll', handleScroll, {\n passive: true,\n });\n return () => {\n detailsRef.current?.removeEventListener('scroll', handleScroll);\n };\n }, []);\n\n return (\n {\n const { open } = e.target;\n // use first reply as ID\n cachedRepliesToggle[replies[0].id] = open;\n }}\n style={{\n '--comments-level': level,\n }}\n data-comments-level={level}\n data-comments-level-overflow={level > 4}\n >\n \n
      \n {replies.map((r) => (\n
    • \n {/* {\n resetScrollPosition(r.id);\n }}\n > */}\n
      \n \n {!r.replies?.length && r.repliesCount > 0 && (\n
      \n {' '}\n \n {shortenNumber(r.repliesCount)}\n \n
      \n )}\n
      \n {/* */}\n {r.replies?.length && (\n {\n resetScrollPosition(r.id);\n },\n }}\n />\n )}\n
    • \n ))}\n
    \n \n );\n}\n\nconst MEDIA_VIRTUAL_LENGTH = 140;\nconst POLL_VIRTUAL_LENGTH = 35;\nconst CARD_VIRTUAL_LENGTH = 70;\nconst WEIGHT_SEGMENT = 140;\nconst statusWeightCache = new Map();\nfunction calcStatusWeight(status) {\n const cachedWeight = statusWeightCache.get(status.id);\n if (cachedWeight) return cachedWeight;\n const { spoilerText, content, mediaAttachments, poll, card } = status;\n const length = htmlContentLength(spoilerText + content);\n const mediaLength = mediaAttachments?.length ? MEDIA_VIRTUAL_LENGTH : 0;\n const pollLength = (poll?.options?.length || 0) * POLL_VIRTUAL_LENGTH;\n const cardLength =\n card && (mediaAttachments?.length || poll?.options?.length)\n ? 0\n : CARD_VIRTUAL_LENGTH;\n const totalLength = length + mediaLength + pollLength + cardLength;\n const weight = totalLength / WEIGHT_SEGMENT;\n statusWeightCache.set(status.id, weight);\n return weight;\n}\n\nexport default memo(StatusPage);\n","import { useParams } from 'react-router-dom';\n\nimport Status from './status';\n\nexport default function StatusRoute() {\n const params = useParams();\n const { id, instance } = params;\n return ;\n}\n","export default \"__VITE_ASSET__W5CngKHO__\"","export default \"__VITE_ASSET__vmqRZ5q5__\"","export default \"__VITE_ASSET__DFAo1Udm__\"","export default \"__VITE_ASSET__D2_o1n6___\"","export default \"__VITE_ASSET__ySLnBMku__\"","export default \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20fill-rule='evenodd'%20stroke-linejoin='round'%20stroke-miterlimit='2'%20clip-rule='evenodd'%20viewBox='0%200%20102%2028'%3e%3cpath%20fill='none'%20d='M0%200h101.5v27.5H0z'/%3e%3cg%20fill-rule='nonzero'%3e%3cpath%20fill='url(%23a)'%20d='M2.32%2021.85c1.4%200%202.21-.85%202.21-2.3v-4.64H8.5c4.45%200%207.54-2.9%207.54-7.24%200-4.35-2.98-7.24-7.32-7.24h-6.4C.93.43.11%201.28.11%202.73v16.82c0%201.45.82%202.3%202.21%202.3Zm2.21-10.4V3.94h3c2.54%200%204%201.34%204%203.75s-1.47%203.76-4%203.76h-3Z'/%3e%3cpath%20fill='url(%23b)'%20d='M20.52%2021.88c1.25%200%202.13-.76%202.13-2.23v-7.04c0-2.07%201.2-3.49%203.21-3.49%201.95%200%202.95%201.23%202.95%203.25v7.28c0%201.47.89%202.23%202.13%202.23%201.26%200%202.14-.76%202.14-2.23v-8.18c0-3.64-1.99-5.9-5.48-5.9-2.38%200-4.1%201.12-4.93%203.1h-.09V2.3c0-1.38-.78-2.2-2.1-2.2-1.31%200-2.1.82-2.1%202.2v17.34c0%201.47.9%202.23%202.14%202.23Z'/%3e%3cpath%20fill='url(%23c)'%20d='M40.45%2021.82c1.96%200%203.93-.98%204.8-2.65h.1v.8c.08%201.27.89%201.91%202.05%201.91%201.21%200%202.08-.73%202.08-2.15v-8.95c0-3.17-2.63-5.25-6.65-5.25-3.26%200-5.78%201.16-6.5%203.04-.15.32-.23.63-.23.96%200%20.97.75%201.64%201.79%201.64.69%200%201.23-.26%201.7-.79.95-1.23%201.74-1.65%203.04-1.65%201.62%200%202.64.85%202.64%202.31v1.04l-3.95.24c-3.93.23-6.13%201.88-6.13%204.74%200%202.83%202.27%204.76%205.26%204.76Zm1.4-3.09c-1.43%200-2.4-.73-2.4-1.9%200-1.12.91-1.83%202.51-1.95l3.31-.2v1.14c0%201.7-1.54%202.91-3.41%202.91Z'/%3e%3cpath%20fill='url(%23d)'%20d='M54.37%2021.88c1.26%200%202.14-.76%202.14-2.23v-7.09c0-2.03%201.21-3.44%203.13-3.44s2.89%201.17%202.89%203.22v7.31c0%201.47.88%202.23%202.14%202.23%201.24%200%202.13-.76%202.13-2.23v-8.2c0-3.68-1.96-5.87-5.45-5.87-2.41%200-4%201.07-4.83%203.01h-.09v-.87c0-1.35-.85-2.17-2.14-2.17-1.28%200-2.06.82-2.06%202.15v11.95c0%201.47.9%202.23%202.14%202.23Z'/%3e%3cpath%20fill='url(%23e)'%20d='M71.65%2027.17c1.26%200%202.14-.76%202.14-2.23v-6h.09a5.15%205.15%200%200%200%204.88%202.88c3.92%200%206.35-3.05%206.35-8.1%200-5.07-2.44-8.1-6.43-8.1a5.12%205.12%200%200%200-4.86%202.99h-.09v-.85c0-1.45-.88-2.21-2.1-2.21-1.24%200-2.11.76-2.11%202.2v17.2c0%201.46.89%202.22%202.13%202.22Zm5.6-8.8c-2.1%200-3.47-1.8-3.47-4.65%200-2.81%201.37-4.67%203.47-4.67%202.14%200%203.49%201.83%203.49%204.67%200%202.86-1.35%204.66-3.5%204.66Z'/%3e%3cpath%20fill='url(%23f)'%20d='M89.61%2027.39c3.44%200%205.26-1.5%206.73-5.55l4.81-13.1a4%204%200%200%200%20.24-1.26c0-1.13-.85-1.93-2.08-1.93-1.1%200-1.71.51-2.07%201.7l-3.4%2010.9h-.08L90.35%207.28c-.36-1.25-.94-1.73-2.07-1.73-1.26%200-2.21.83-2.21%201.99%200%20.35.09.82.25%201.26l5%2013.21-.21.56c-.52%201.1-1.32%201.42-2.07%201.42l-.75-.01c-.96%200-1.56.54-1.56%201.4%200%201.29%201%202%202.88%202Z'/%3e%3c/g%3e%3cdefs%3e%3cradialGradient%20id='a'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='b'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='c'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='d'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='e'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3cradialGradient%20id='f'%20cx='0'%20cy='0'%20r='1'%20gradientTransform='rotate(28.51%20.06%20.22)%20scale(57.6252)'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20offset='0'%20stop-color='%23a4bff7'/%3e%3cstop%20offset='1'%20stop-color='%236081e6'/%3e%3c/radialGradient%3e%3c/defs%3e%3c/svg%3e\"","import './welcome.css';\n\nimport boostsCarouselUrl from '../assets/features/boosts-carousel.jpg';\nimport groupedNotificationsUrl from '../assets/features/grouped-notifications.jpg';\nimport multiColumnUrl from '../assets/features/multi-column.jpg';\nimport multiHashtagTimelineUrl from '../assets/features/multi-hashtag-timeline.jpg';\nimport nestedCommentsThreadUrl from '../assets/features/nested-comments-thread.jpg';\nimport logoText from '../assets/logo-text.svg';\nimport logo from '../assets/logo.svg';\n\nimport Link from '../components/link';\nimport states from '../utils/states';\nimport useTitle from '../utils/useTitle';\n\nconst {\n PHANPY_DEFAULT_INSTANCE: DEFAULT_INSTANCE,\n PHANPY_WEBSITE: WEBSITE,\n PHANPY_PRIVACY_POLICY_URL: PRIVACY_POLICY_URL,\n PHANPY_DEFAULT_INSTANCE_REGISTRATION_URL: DEFAULT_INSTANCE_REGISTRATION_URL,\n} = import.meta.env;\nconst appSite = WEBSITE\n ? WEBSITE.replace(/https?:\\/\\//g, '').replace(/\\/$/, '')\n : null;\nconst appVersion = __BUILD_TIME__\n ? `${__BUILD_TIME__.slice(0, 10).replace(/-/g, '.')}${\n __COMMIT_HASH__ ? `.${__COMMIT_HASH__}` : ''\n }`\n : null;\n\nfunction Welcome() {\n useTitle(null, ['/', '/welcome']);\n return (\n
    \n
    \n
    \n

    \n \n \"Phanpy\"\n

    \n

    A minimalistic opinionated Mastodon web client.

    \n

    \n \n {DEFAULT_INSTANCE ? 'Log in' : 'Log in with Mastodon'}\n \n

    \n {DEFAULT_INSTANCE && DEFAULT_INSTANCE_REGISTRATION_URL && (\n

    \n \n Sign up\n \n

    \n )}\n {!DEFAULT_INSTANCE && (\n

    \n \n Connect your existing Mastodon/Fediverse account.\n
    \n Your credentials are not stored on this server.\n
    \n

    \n )}\n
    \n {(appSite || appVersion) && (\n

    \n \n {appSite} {appVersion}\n \n

    \n )}\n

    \n \n Built\n {' '}\n by{' '}\n {\n e.preventDefault();\n states.showAccount = 'cheeaun@mastodon.social';\n }}\n >\n @cheeaun\n \n .{' '}\n \n Privacy Policy\n \n .\n

    \n
    \n
    \n
    \n
    \n \n

    Boosts Carousel

    \n

    \n Visually separate original posts and re-shared posts (boosted\n posts).\n

    \n
    \n
    \n \n

    Nested comments thread

    \n

    Effortlessly follow conversations. Semi-collapsible replies.

    \n
    \n
    \n \n

    Grouped notifications

    \n

    \n Similar notifications are grouped and collapsed to reduce clutter.\n

    \n
    \n
    \n \n

    Single or multi-column

    \n

    \n By default, single column for zen-mode seekers. Configurable\n multi-column for power users.\n

    \n
    \n
    \n \n

    Multi-hashtag timeline

    \n

    Up to 5 hashtags combined into a single timeline.

    \n
    \n
    \n
    \n
    \n );\n}\n\nexport default Welcome;\n","// Replace alert() with toastify-js\nimport Toastify from 'toastify-js';\n\nconst nativeAlert = window.alert;\nif (!window.__nativeAlert) window.__nativeAlert = nativeAlert;\n\nwindow.alert = function (message) {\n console.debug(\n 'ALERT: This is a custom alert() function. Native alert() is still available as window.__nativeAlert()',\n );\n // If Error object, show the message\n if (message instanceof Error && message?.message) {\n message = message.message;\n }\n // If not string, stringify it\n if (typeof message !== 'string') {\n message = JSON.stringify(message);\n }\n\n const toast = Toastify({\n text: message,\n className: 'alert',\n gravity: 'top',\n position: 'center',\n duration: 10_000,\n offset: {\n y: 48,\n },\n onClick: () => {\n toast.hideToast();\n },\n });\n toast.showToast();\n};\n","import './app.css';\n\nimport debounce from 'just-debounce-it';\nimport {\n useEffect,\n useLayoutEffect,\n useMemo,\n useRef,\n useState,\n} from 'preact/hooks';\nimport { matchPath, Route, Routes, useLocation } from 'react-router-dom';\nimport 'swiped-events';\nimport { subscribe } from 'valtio';\n\nimport BackgroundService from './components/background-service';\nimport ComposeButton from './components/compose-button';\nimport { ICONS } from './components/ICONS';\nimport KeyboardShortcutsHelp from './components/keyboard-shortcuts-help';\nimport Loader from './components/loader';\nimport Modals from './components/modals';\nimport NotificationService from './components/notification-service';\nimport SearchCommand from './components/search-command';\nimport Shortcuts from './components/shortcuts';\nimport NotFound from './pages/404';\nimport AccountStatuses from './pages/account-statuses';\nimport Bookmarks from './pages/bookmarks';\nimport Catchup from './pages/catchup';\nimport Favourites from './pages/favourites';\nimport Filters from './pages/filters';\nimport FollowedHashtags from './pages/followed-hashtags';\nimport Following from './pages/following';\nimport Hashtag from './pages/hashtag';\nimport Home from './pages/home';\nimport HttpRoute from './pages/http-route';\nimport List from './pages/list';\nimport Lists from './pages/lists';\nimport Login from './pages/login';\nimport Mentions from './pages/mentions';\nimport Notifications from './pages/notifications';\nimport Public from './pages/public';\nimport Search from './pages/search';\nimport StatusRoute from './pages/status-route';\nimport Trending from './pages/trending';\nimport Welcome from './pages/welcome';\nimport {\n api,\n initAccount,\n initClient,\n initInstance,\n initPreferences,\n} from './utils/api';\nimport { getAccessToken } from './utils/auth';\nimport focusDeck from './utils/focus-deck';\nimport states, { initStates, statusKey } from './utils/states';\nimport store from './utils/store';\nimport { getCurrentAccount, setCurrentAccountID } from './utils/store-utils';\nimport './utils/toast-alert';\n\nwindow.__STATES__ = states;\nwindow.__STATES_STATS__ = () => {\n const keys = [\n 'statuses',\n 'accounts',\n 'spoilers',\n 'unfurledLinks',\n 'statusQuotes',\n ];\n const counts = {};\n keys.forEach((key) => {\n counts[key] = Object.keys(states[key]).length;\n });\n console.warn('STATE stats', counts);\n\n const { statuses } = states;\n const unmountedPosts = [];\n for (const key in statuses) {\n const $post = document.querySelector(\n `[data-state-post-id~=\"${key}\"], [data-state-post-ids~=\"${key}\"]`,\n );\n if (!$post) {\n unmountedPosts.push(key);\n }\n }\n console.warn('Unmounted posts', unmountedPosts.length, unmountedPosts);\n};\n\n// Experimental \"garbage collection\" for states\n// Every 15 minutes\n// Only posts for now\nsetInterval(() => {\n if (!window.__IDLE__) return;\n const { statuses, unfurledLinks, notifications } = states;\n let keysCount = 0;\n const { instance } = api();\n for (const key in statuses) {\n if (!window.__IDLE__) break;\n try {\n const $post = document.querySelector(\n `[data-state-post-id~=\"${key}\"], [data-state-post-ids~=\"${key}\"]`,\n );\n const postInNotifications = notifications.some(\n (n) => key === statusKey(n.status?.id, instance),\n );\n if (!$post && !postInNotifications) {\n delete states.statuses[key];\n delete states.statusQuotes[key];\n for (const link in unfurledLinks) {\n const unfurled = unfurledLinks[link];\n const sKey = statusKey(unfurled.id, unfurled.instance);\n if (sKey === key) {\n delete states.unfurledLinks[link];\n break;\n }\n }\n keysCount++;\n }\n } catch (e) {}\n }\n if (keysCount) {\n console.info(`GC: Removed ${keysCount} keys`);\n }\n}, 15 * 60 * 1000);\n\n// Preload icons\n// There's probably a better way to do this\n// Related: https://github.com/vitejs/vite/issues/10600\nsetTimeout(() => {\n for (const icon in ICONS) {\n setTimeout(() => {\n if (Array.isArray(ICONS[icon])) {\n ICONS[icon][0]?.();\n } else {\n ICONS[icon]?.();\n }\n }, 1);\n }\n}, 5000);\n\n(() => {\n window.__IDLE__ = true;\n const nonIdleEvents = [\n 'mousemove',\n 'mousedown',\n 'resize',\n 'keydown',\n 'touchstart',\n 'pointerdown',\n 'pointermove',\n 'wheel',\n ];\n const setIdle = () => {\n window.__IDLE__ = true;\n };\n const IDLE_TIME = 3_000; // 3 seconds\n const debouncedSetIdle = debounce(setIdle, IDLE_TIME);\n const onNonIdle = () => {\n window.__IDLE__ = false;\n debouncedSetIdle();\n };\n nonIdleEvents.forEach((event) => {\n window.addEventListener(event, onNonIdle, {\n passive: true,\n capture: true,\n });\n });\n window.addEventListener('blur', setIdle, {\n passive: true,\n });\n // When cursor leaves the window, set idle\n document.documentElement.addEventListener(\n 'mouseleave',\n (e) => {\n if (!e.relatedTarget && !e.toElement) {\n setIdle();\n }\n },\n {\n passive: true,\n },\n );\n // document.addEventListener(\n // 'visibilitychange',\n // () => {\n // if (document.visibilityState === 'visible') {\n // onNonIdle();\n // }\n // },\n // {\n // passive: true,\n // },\n // );\n})();\n\n// Possible fix for iOS PWA theme-color bug\n// It changes when loading web pages in \"webview\"\nconst isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);\nif (isIOS) {\n document.addEventListener('visibilitychange', () => {\n if (document.visibilityState === 'visible') {\n const theme = store.local.get('theme');\n let $meta;\n if (theme) {\n // Get current meta\n $meta = document.querySelector(\n `meta[name=\"theme-color\"][data-theme-setting=\"manual\"]`,\n );\n if ($meta) {\n const color = $meta.content;\n const tempColor =\n theme === 'light'\n ? $meta.dataset.themeLightColorTemp\n : $meta.dataset.themeDarkColorTemp;\n $meta.content = tempColor || '';\n setTimeout(() => {\n $meta.content = color;\n }, 10);\n }\n } else {\n // Get current color scheme\n const colorScheme = window.matchMedia('(prefers-color-scheme: dark)')\n .matches\n ? 'dark'\n : 'light';\n // Get current theme-color\n $meta = document.querySelector(\n `meta[name=\"theme-color\"][media*=\"${colorScheme}\"]`,\n );\n if ($meta) {\n const color = $meta.dataset.content;\n const tempColor = $meta.dataset.contentTemp;\n $meta.content = tempColor || '';\n setTimeout(() => {\n $meta.content = color;\n }, 10);\n }\n }\n }\n });\n}\n\n{\n const theme = store.local.get('theme');\n // If there's a theme, it's NOT auto\n if (theme) {\n // dark | light\n document.documentElement.classList.add(`is-${theme}`);\n document\n .querySelector('meta[name=\"color-scheme\"]')\n .setAttribute('content', theme || 'dark light');\n\n // Enable manual theme \n const $manualMeta = document.querySelector(\n 'meta[data-theme-setting=\"manual\"]',\n );\n if ($manualMeta) {\n $manualMeta.name = 'theme-color';\n $manualMeta.content =\n theme === 'light'\n ? $manualMeta.dataset.themeLightColor\n : $manualMeta.dataset.themeDarkColor;\n }\n // Disable auto theme s\n const $autoMetas = document.querySelectorAll(\n 'meta[data-theme-setting=\"auto\"]',\n );\n $autoMetas.forEach((m) => {\n m.name = '';\n });\n }\n const textSize = store.local.get('textSize');\n if (textSize) {\n document.documentElement.style.setProperty('--text-size', `${textSize}px`);\n }\n}\n\nsubscribe(states, (changes) => {\n for (const [action, path, value, prevValue] of changes) {\n // Change #app dataset based on settings.shortcutsViewMode\n if (path.join('.') === 'settings.shortcutsViewMode') {\n const $app = document.getElementById('app');\n if ($app) {\n $app.dataset.shortcutsViewMode = states.shortcuts?.length ? value : '';\n }\n }\n\n // Add/Remove cloak class to body\n if (path.join('.') === 'settings.cloakMode') {\n const $body = document.body;\n $body.classList.toggle('cloak', value);\n }\n }\n});\n\nfunction App() {\n const [isLoggedIn, setIsLoggedIn] = useState(false);\n const [uiState, setUIState] = useState('loading');\n\n useEffect(() => {\n const instanceURL = store.local.get('instanceURL');\n const code = decodeURIComponent(\n (window.location.search.match(/code=([^&]+)/) || [, ''])[1],\n );\n\n if (code) {\n console.log({ code });\n // Clear the code from the URL\n window.history.replaceState(\n {},\n document.title,\n window.location.pathname || '/',\n );\n\n const clientID = store.session.get('clientID');\n const clientSecret = store.session.get('clientSecret');\n const vapidKey = store.session.get('vapidKey');\n\n (async () => {\n setUIState('loading');\n const { access_token: accessToken } = await getAccessToken({\n instanceURL,\n client_id: clientID,\n client_secret: clientSecret,\n code,\n });\n\n const client = initClient({ instance: instanceURL, accessToken });\n await Promise.allSettled([\n initInstance(client, instanceURL),\n initAccount(client, instanceURL, accessToken, vapidKey),\n ]);\n initStates();\n initPreferences(client);\n\n setIsLoggedIn(true);\n setUIState('default');\n })();\n } else {\n window.__IGNORE_GET_ACCOUNT_ERROR__ = true;\n const account = getCurrentAccount();\n if (account) {\n setCurrentAccountID(account.info.id);\n const { client } = api({ account });\n const { instance } = client;\n // console.log('masto', masto);\n initStates();\n initPreferences(client);\n setUIState('loading');\n (async () => {\n try {\n await initInstance(client, instance);\n } catch (e) {\n } finally {\n setIsLoggedIn(true);\n setUIState('default');\n }\n })();\n } else {\n setUIState('default');\n }\n }\n }, []);\n\n let location = useLocation();\n states.currentLocation = location.pathname;\n // useLayoutEffect(() => {\n // states.currentLocation = location.pathname;\n // }, [location.pathname]);\n\n useEffect(focusDeck, [location, isLoggedIn]);\n\n if (/\\/https?:/.test(location.pathname)) {\n return ;\n }\n\n return (\n <>\n \n \n {uiState === 'default' && (\n \n } />\n \n )}\n {isLoggedIn && }\n {isLoggedIn && }\n \n {isLoggedIn && }\n \n {uiState !== 'loading' && }\n \n \n );\n}\n\nfunction PrimaryRoutes({ isLoggedIn, loading }) {\n const location = useLocation();\n const nonRootLocation = useMemo(() => {\n const { pathname } = location;\n return !/^\\/(login|welcome)/i.test(pathname);\n }, [location]);\n\n return (\n \n \n ) : loading ? (\n \n ) : (\n \n )\n }\n />\n } />\n } />\n \n );\n}\n\nfunction getPrevLocation() {\n return states.prevLocation || null;\n}\nfunction SecondaryRoutes({ isLoggedIn }) {\n // const snapStates = useSnapshot(states);\n const location = useLocation();\n // const prevLocation = snapStates.prevLocation;\n const backgroundLocation = useRef(getPrevLocation());\n\n const isModalPage = useMemo(() => {\n return (\n matchPath('/:instance/s/:id', location.pathname) ||\n matchPath('/s/:id', location.pathname)\n );\n }, [location.pathname, matchPath]);\n if (isModalPage) {\n if (!backgroundLocation.current)\n backgroundLocation.current = getPrevLocation();\n } else {\n backgroundLocation.current = null;\n }\n console.debug({\n backgroundLocation: backgroundLocation.current,\n location,\n });\n\n return (\n \n {isLoggedIn && (\n <>\n } />\n } />\n } />\n } />\n } />\n \n } />\n } />\n \n } />\n } />\n } />\n \n )}\n } />\n } />\n \n } />\n } />\n \n } />\n } />\n {/* } /> */}\n \n );\n}\n\nexport { App };\n","import './index.css';\n\nimport './cloak-mode.css';\n\n// Polyfill needed for Firefox < 122\n// https://bugzilla.mozilla.org/show_bug.cgi?id=1423593\n// import '@formatjs/intl-segmenter/polyfill';\nimport { render } from 'preact';\nimport { HashRouter } from 'react-router-dom';\n\nimport { App } from './app';\n\nif (import.meta.env.DEV) {\n import('preact/debug');\n}\n\n// AbortSignal.timeout polyfill\n// Temporary fix from https://github.com/mo/abortcontroller-polyfill/issues/73#issuecomment-1541180943\n// Incorrect implementation, but should be good enough for now\nif ('AbortSignal' in window) {\n AbortSignal.timeout =\n AbortSignal.timeout ||\n ((duration) => {\n const controller = new AbortController();\n setTimeout(() => controller.abort(), duration);\n return controller.signal;\n });\n}\n\nrender(\n \n \n ,\n document.getElementById('app'),\n);\n\n// Storage cleanup\nsetTimeout(() => {\n try {\n // Clean up iconify localStorage\n Object.keys(localStorage).forEach((key) => {\n if (key.startsWith('iconify')) {\n localStorage.removeItem(key);\n }\n });\n Object.keys(sessionStorage).forEach((key) => {\n if (key.startsWith('iconify')) {\n sessionStorage.removeItem(key);\n }\n });\n\n // Clean up old settings key\n localStorage.removeItem('settings:boostsCarousel');\n } catch (e) {}\n}, 5000);\n\nwindow.__CLOAK__ = () => {\n document.body.classList.toggle('cloak');\n};\n"],"names":["usePageVisibility","fn","deps","savedCallback","useRef","useEffect","current","handleVisibilityChange","hidden","document","visibilityState","console","STREAMING_TIMEOUT","POLL_INTERVAL","BackgroundService","memo","isLoggedIn","visible","setVisible","useState","checkLatestNotification","masto","instance","skipCheckMarkers","states","notificationsLast","notificationsIterator","v1","notifications","list","limit","sinceId","id","value","next","length","notificationsShowNew","lastReadId","markers","fetch","timeline","sub","pollNotifications","streaming","api","hasStreaming","setTimeout","user","notification","subscribe","log","entry","_a","checkForUpdates","clearTimeout","clearInterval","r","info","visible2","lastCheckDate","useHotkeys","currentCloakMode","Date","diff","ComposeButton","snapStates","useSnapshot","handleButton","e","composerState","minimized","openOSK","shiftKey","openCompose","showCompose","ignoreEventWhen","querySelector","_jsx","type","onClick","class","publishing","publishingError","children","Icon","icon","size","alt","KeyboardShortcutsHelp","onClose","showKeyboardShortcutsHelp","hasModal","Modal","tabindex","action","keys","_jsxs","_Fragment","className","map","Accounts","accounts","store","local","getJSON","currentAccount","getCurrentAccountID","moreThanOneAccount","_","reload","useReducer","x","accountsListParent","useAutoAnimate","tabIndex","ref","account","i","isCurrent","isDefault","Avatar","url","avatarStatic","onDblClick","$select","NameText","test","showAcct","setCurrentAccountID","Menu2","align","menuButton","title","MenuItem","MenuDivider","disabled","splice","MenuConfirm","subMenu","confirmLabel","menuItemClassName","href","Link","to","logo","createBackendPushSubscription","subscription","push","create","fetchBackendPushSubscription","updateBackendPushSubscription","update","removeBackendPushSubscription","remove","isPushSupported","navigator","window","getRegistration","serviceWorker","getSubscription","registration","pushManager","undefined","urlBase64ToUint8Array","base64String","padding","repeat","base64","replace","rawData","atob","outputArray","Uint8Array","charCodeAt","initSubscription","backendSubscription","err","message","sameEndpoint","vapidKey","sameKey","key2","getCurrentAccount","applicationServerKey","vapidKeyStr","applicationServerKeyStr","updateSubscription","data","policy","removeSubscription","DEFAULT_TEXT_SIZE","TEXT_SIZES","PHANPY_WEBSITE","WEBSITE","PHANPY_PRIVACY_POLICY_URL","PRIVACY_POLICY_URL","PHANPY_IMG_ALT_API_URL","IMG_ALT_API_URL","PHANPY_GIPHY_API_KEY","GIPHY_API_KEY","import","Settings","currentTheme","get","themeFormRef","targetLanguage","settings","contentTranslationTargetLanguage","systemTargetLanguage","getTranslateTargetLanguage","systemTargetLanguageText","localeCode2Text","currentTextSize","prefs","setPrefs","authenticated","onInput","formData","theme","documentElement","html","classList","$manualMeta","$autoMetas","querySelectorAll","forEach","m","toggle","name","defaultChecked","fontSize","min","max","step","onChange","parseInt","setProperty","for","target","alert","rel","checked","autoRefresh","boostsCarousel","contentTranslation","targetLanguages","lang","code","contentTranslationHideLanguages","composerGIFPicker","mediaAltGenerator","shortcutSettingsCloudImportExport","cloakMode","PushNotificationsSection","display","flexWrap","gap","lineHeight","src","width","aspectRatio","verticalAlign","borderRadius","readOnly","__BUILD_TIME__","showToast","writeText","datetime","uiState","setUIState","allowNotifications","setAllowNotifications","setNeedRelogin","pushFormRef","needRelogin","alerts","previousPolicyRef","policyEl","elements","namedItem","el","isLoading","values","params","mention","favourite","reblog","follow","follow_request","followRequest","status","key","alertsCount","allowNotifications2","permission","label","alert2","focusDeck","timer","columns","getElementById","modals","modal","modalFocusElement","focus","backDrop","pages","page","useLocationChange","location","useLocation","currentLocationRef","pathname","FETCH_MAX_AGE","MAX_AGE","fetchLists","pmem","lists","sort","a","b","localeCompare","set","updatedAt","now","maxAge","getLists","fetchList","getList","theList","getListTitle","addListStore","updateListStore","index","deleteListStore","listID","findIndex","ListAddEdit","editMode","nameFieldRef","repliesPolicyFieldRef","exclusiveFieldRef","repliesPolicy","exclusive","supportsExclusive","supports","onSubmit","preventDefault","FormData","listResult","replies_policy","MUTE_DURATIONS","MUTE_DURATIONS_LABELS","LIMIT","ACCOUNT_INFO_MAX_AGE","fetchFamiliarFollowers","currentID","familiarFollowers","memFetchFamiliarFollowers","fetchPostingStats","accountID","fetchStatuses","statuses","total","originals","replies","stats","boosts","memFetchPostingStats","fetchAccount","standalone","currentMasto","currentInstance","isString","useMemo","setInfo","sameCurrentInstance","info2","acct","avatar","bot","createdAt","displayName","emojis","fields","group","lastStatusAt","locked","note","statusesCount","username","memorial","moved","roles","hideCollections","header","headerStatic","headerIsAvatar","isSelf","infoHasEssentials","account2","updated","headerCornerColors","setHeaderCornerColors","followersIterator","toUnicode","domain","fetchFollowers","firstLoad","familiarFollowersCache","results","newValue","familiarFollowers2","familiar","followingIterator","LinkOrDiv","accountLink","postingStats","setPostingStats","renderFamiliarFollowers","setFamiliarFollowers","postingStatsUIState","setPostingStatsUIState","hasPostingStats","followers","renderPostingStats","onRelationshipChange","onProfileUpdate","useCallback","newAccount","AccountBlock","stopPropagation","onError","ctx","canvas","onLoad","add","pixelDimension","rgbColors","OffscreenCanvas","createElement","g","height","imageSmoothingEnabled","drawImage","colors","getImageData","dataLength","lightenRGB","color","avatarSize","handle","clipboard","MenuLink","role","accountInstance","enhanceContent","verifiedAt","__html","EmojiText","follower","heading","fetchAccounts","excludeRelationshipAttrs","blankCopy","followersCount","shortenNumber","squircle","fetchFollowing","followingCount","Math","RelatedActions","FAMILIAR_FOLLOWERS_LIMIT","sameInstance","following","showingReblogs","currentInfo","setCurrentInfo","notifying","followedBy","blocking","blockedBy","muting","mutingNotifications","requested","domainBlocking","endorsed","privateNote","v2","q","setRelationshipUIState","relationships","fetchRelationships","relationship2","setRelationship","setIsSelf","relationship","showAddRemoveLists","setShowAddRemoveLists","showPrivateNoteModal","setLists","updateAccount","niceDateTime","showTranslatedBio","showEditProfile","setShowPrivateNoteModal","body","lists2","currentAuthenticated","loading","onMenuChange","setShowTranslatedBio","reblogs","niceAccountURL","error","share","SubMenu2","newRelationship","duration","counter","setShowEditProfile","relationshipUIState","Loader","TranslatedBioSheet","EditProfileSheet","AddRemoveListsSheet","luminence","alpha","urlObj","state","host","getHTMLText","text","fieldsText","path","punycode","TranslationBlock","setListsContainingAccount","reloadCount","c","listsContainingAccount2","showListAddEditModal","setShowListAddEditModal","inList","listsContainingAccount","accountIds","result","PrivateNoteSheet","initialNote","_b","textareaRef","e2","acc","setAccount","source","fieldsAttributesRef","displayName2","note2","fieldsAttributesFields","field","fieldsAttributes","FieldsAttributesRow","hasValue","server","setHasValue","defaultValue","required","AccountSheet","propInstance","AccountInfo","lookup","skip_webfinger","search","resolve","accountURL","URL","hostname","Drafts","drafts","setDrafts","db","ns","getCurrentAccountNS","ownKeys","filter","startsWith","getMany","getTime","hasDrafts","abrupt","draft","draftStatus","replyTo","updatedAtDate","replyToStatus","MiniDraft","poll","spoilerText","mediaAttachments","hasPoll","options","hasMedia","firstImageMedia","media","image","file","objectURL","createObjectURL","hasPollOrMedia","style","EmbedModal","dangerouslySetInnerHTML","GenericAccounts","postID","isCurrentInstance","setAccounts","showMore","setShowMore","showGenericAccounts","staticAccounts","showReactions","relationshipsMap","setRelationshipsMap","loadRelationships","loadAccounts","done","Array","isArray","theAccount","find","j","_types","prev","newAccounts","reloadGenericAccounts","post","Status","showStats","InView","MediaAltModal","forceTranslate","setForceTranslate","differentLanguage","localeMatch","l","supportsTTS","speak","dir","whiteSpace","textWrap","sourceLanguage","clamp","gammaToLinear","pow","linearToGamma","rgb2oklab","s","cbrt","oklab2rgb","L","round","MediaModal","statusID","carouselRef","currentIndex","setCurrentIndex","carouselFocusItem","useLayoutEffect","scrollIntoView","prevStatusID","scrollLeft","clientWidth","differentStatusID","scrollTo","left","behavior","showControls","setShowControls","handleSwipe","addEventListener","removeEventListener","handleScroll","passive","mediaAccentColors","blurhash","averageColor","getBlurHashAverageColor","labAverageColor","mediaAccentGradient","range","start","end","join","toastRef","hideToast","contains","backgroundAttachment","backgroundImage","accentColor","description","showMediaAlt","Media","showOriginal","overflow","position","menuClassName","remoteUrl","matchMedia","matches","CATEGORIES","CATEGORIES_INFO","spam","legal","violation","stampLabel","other","excludeStamp","ReportModal","split","rules","currentDomain","getCurrentInstance","selectedCategory","setSelectedCategory","showRules","setShowRules","rulesRef","hasRules","setHasRules","previewMode","useAvatarStatic","showActivity","entries","Object","fromEntries","category","comment","forward","ruleIds","reports","accountId","statusIds","Fragment","rule","maxlength","rows","floatingButtonUrl","multiColumnUrl$1","tabMenuBarUrl","MAX_FETCH","fetchFollowedTags","iterator","followedTags","tags","fetchCount","getFollowedTags","fauxDiv","extractTagsFromStatus","content","hashtagLinks","AsyncText","setText","Promise","then","SHORTCUTS_LIMIT","TYPES","TYPE_TEXT","public","bookmarks","favourites","hashtag","trending","mentions","TYPE_PARAMS","notRequired","placeholder","pattern","fetchAccountTitle","SHORTCUTS_META","excludeViewMode","subtitle","query","encodeURIComponent","ShortcutsSettings","shortcuts","showForm","setShowForm","showImportExport","setShowImportExport","shortcutsListParent","opacity","textTransform","imgURL","multiColumnUrl","shortcutsViewMode","Boolean","shortcut","excludedViewMode","includes","shortcutsArr","from","temp","shortcutIndex","justifyContent","alignItems","currentTarget","ShortcutForm","mode","ImportExport","FORM_NOTES","setFollowedHashtags","currentType","form","formRef","input","setCurrentType","switch","autocorrect","followedHashtags","tag","compressToEncodedURIComponent","shortcutsStr","importUIState","setImportUIState","parsedImportShortcutStr","importShortcutStr","parsed","parse","hasCurrentSettings","shortcutsImportFieldRef","v","dt","dispatchEvent","some","nonUniqueShortcuts","menuFooter","every","exceededLimit","newShortcuts","newNote","settingsJSON2","settingsJSON","changes","prevValue","Modals","navigate","useNavigate","preload","ComposeSuspense","__COMPOSE__","editStatus","newStatus","reloadStatusPage","reply","edit","delay","toast","prevLocation","showSettings","showAccounts","showAccount","destination","showDrafts","showMediaModal","showShortcutsSettings","showEmbedModal","showReportModal","FollowRequestButtons","requestState","setRequestState","hasRelationship","followRequests","authorize","Error","NOTIFICATION_ICONS","severed_relationships","moderation_warning","emoji_reaction","emojiText","emoji","emoji_url","staticUrl","CustomEmoji","contentText","count","reblog_reply","favourite_reply","targetAccount","SEVERED_RELATIONSHIPS_TEXT","account_suspension","targetName","domain_block","user_domain_block","MODERATION_WARNING_TEXT","none","disable","mark_statuses_as_sensitive","delete_statuses","sensitive","silence","suspend","AVATARS_LIMIT","Notification","isStatic","disableContextMenu","report","event","_accounts","_statuses","actualStatus","actualStatusID","isVoted","voted","isReplyToOthers","inReplyToAccountId","favsCount","reblogsCount","showAvatar","emojiURL","shortcode","formattedCreatedAt","toLocaleString","genericAccountsHeading","handleOpenGenericAccounts","statusKey","debug","RelativeTime","format","type2","status2","TruncatedLink","onContextMenu","clientX","clientY","props","useTruncated","oldProps","newProps","accessToken","NotificationService","routeNotification","notificationAccount","hasAccount","hash","warn","id2","setShowNotificationSheet","showNotificationSheet","tagName","instanceURL","SearchForm","forwardRef","searchParams","setSearchParams","useSearchParams","searchMenuOpen","setSearchMenuOpen","setQuery","searchFieldRef","useImperativeHandle","setValue","select","blur","autocomplete","autocapitalize","spellCheck","onSearch","onFocus","onBlur","onKeyDown","focusItem","nextItem","nextElementSibling","parentElement","firstItem","prevItem","previousElementSibling","lastItem","click","top","queryType","SearchCommand","showSearch","setShowSearch","searchFormRef","isSearchPage","closeSearch","enabled","enableOnFormTags","Shortcuts","shortcutsColumnsMode","menuRef","hasLists","formattedShortcuts","pin","handler","closeMenu","updatesButton","instanceRef","viewScroll","groupBoosts","newValues","boostStash","serialBoosts","item","boostStashID","items","half","floor","slice","dedupeBoosts","boostedStatusIDs","filteredItems","boosterID","statusKey2","groupContext","contextIndex","contexts","t","repliedItem","self","context","inReplyToId","firstItemAccountID","newItems","appliedContextIndices","inReplyToIds","contextItems","aDate","bDate","i2","sKey","queueMicrotask","fallbackFetch","fetchStatus","saveStatus","statusReply","ids","replyToStatuses","skipThreading","assignFollowedTags","statusFollowedTags","extractedTags","itemFollowedTags","statusWithFollowedTags","useScroll","scrollableRef","distanceFromStart","distanceFromEnd","scrollThresholdStart","scrollThresholdEnd","direction","distanceFromStartPx","_distanceFromStartPx","distanceFromEndPx","_distanceFromEndPx","scrollDirection","setScrollDirection","reachStart","setReachStart","reachEnd","setReachEnd","nearReachStart","setNearReachStart","nearReachEnd","setNearReachEnd","isVertical","scrollableElement","previousScrollStart","scrollTop","onScroll","scrollHeight","scrollWidth","clientHeight","scrollStart","scrollDimension","clientDimension","scrollDistance","abs","init","Event","useScrollFn","callback","useThrottledCallback","MediaPost","parent","onMediaClick","accountEmojis","repliesCount","reblogged","favourited","favouritesCount","bookmarked","muted","visibility","language","editedAt","filtered","card","uri","_deleted","_pinned","debugHover","filterContext","useContext","FilterContext","isFiltered","filterInfo","hasSpoiler","readingExpandMedia","filterTitleStr","titlesStr","showSpoilerMedia","NavMenu","showFollowing","bindLongPress","useLongPress","threshold","detect","cancelOnMovement","buttonRef","menuState","setMenuState","boundingBoxPadding","safeBoundingBoxPadding","mutesIterator","fetchMutes","mutes","blocksIterator","fetchBlocks","blocks","supportsLists","buttonClickTS","ControlledMenu","anchorRef","containerProps","zIndex","portal","unmountOnClose","appVersion","commitHash","__COMMIT_HASH__","confirm","scrollIntoViewOptions","block","inline","Timeline","titleComponent","emptyText","errorText","useItemID","fetchItems","checkForUpdatesInterval","headerStart","headerEnd","timelineStart","refresh","view","showFollowedTags","showReplyParent","setItems","showNew","setShowNew","mediaFirst","allowGrouping","loadItems","useDebouncedCallback","otherPosts","pinnedPosts","items2","itemsSelector","jRef","activeItem","activeItemRect","closest","getBoundingClientRect","allItems","activeItemIndex","indexOf","itemRect","topmostItem","kRef","findLast","oRef","handleLoadNewPosts","showNewPostsIndicator","dotRef","headerRef","nearReachStart2","hiddenUI","prevView","disableIdleCheck","loadOrCheckUpdates","inBackground","noPointers","__IDLE__","timeDiff","hasUpdate","useInterval","lastHiddenTime","node","TimelineItem","skeleton","inView","fItems","bFiltered","isCarousel","aFiltered","reblog2","_pinned2","actualStatusID2","statusID2","url2","StatusCarousel","showCompact","_differentAuthor","isSpoiler","manyItems","isMiddle","isStart","isEnd","TimelineStatusCompact","itemKey","enableCommentHint","endButtonRef","render","setRender","newID","oldID","startButtonRef","statusPeekText","statusPeek","statusThreadNumber","MIN_YEAR","MIN_YEAR_MONTH","supportsInputMonth","setAttribute","_isSearchEnabled","isSearchEnabled","AccountStatuses","useParams","month","excludeReplies","excludeBoosts","tagged","accountStatusesIterator","allSearchParams","searchOffsetRef","isMediaFirstInstance","searchEnabled","setSearchEnabled","isValidMonth","_year","_month","monthIndex","after","afterStr","before","beforeStr","searchResults","value2","offset","pinnedStatuses","pinnedStatusesIds","postId","setFeaturedTags","useTitle","fetchPromise","fetchAccountPromiseRef","cachedAccount","featuredTags","filterBarRef","TimelineStart","month2","date","year","validity","valid","active","allowSwitch","offsetLeft","fetchAccountStatuses","masto2","monthFieldRef","checkValidity","minYear","maxYear","maxMonth","minMonth","yearFieldRef","Bookmarks","bookmarksIterator","fetchBookmarks","catchupUrl","FILTER_CONTEXT","RANGES","FILTER_LABELS","FILTER_SORTS","FILTER_GROUPS","FILTER_VALUES","Filtered","Groups","Boosts","Replies","Original","FILTER_CATEGORY_TEXT","SORT_BY_TEXT","density","Catchup","showTopLinks","setShowTopLinks","supportsPixelfed","fetchHome","maxCreatedAt","maxCreatedAtDate","allResults","mainloop","homeIterator","nextParams","createdAtDate","selfPost","addedResults","catchupRangeRef","catchupLastRef","handleCatchupClick","catchupID","catchup","posts","setPosts","reloadCatchups","setLastCatchupEndAt","prevCatchups","setPrevCatchups","lastCatchupEndAt","catchups","ownCatchups","trimmedCatchups","lastCatchups","restCatchups","endAt","startAt","reloadCatchupsCount","filtereds","groups","_followedTags","_e","thePost","__FILTER","links","sharers","links2","link","topLinks","shared","linksLoop","likes","filteredPosts","authors","authorCounts","selectedFilterCategory","filteredPosts2","setSelectedAuthor","sortBy","authorsHash","setSortOrder","authorCountsMap","postFilterMatches","boostedPosts","__BOOSTERS","selectedAuthor","filteredPostsMap","authorID","authorCountsList","sortedFilteredPosts","aAccountID","authorIndices","order","bAccountID","aIndex","bIndex","postDensity","bDensity","aDensity","sortOrder","groupBy","prevGroup","authorsListParent","autoAnimated","postsBarType","autoAnimate","postsBar","postsBins","binByTime","posts2","isFiltered2","lastCatchupRange","groupByText","authorUsername","sortOrderIndex","authorElement","scrollableRect","authorRect","right","showHelp","setShowHelp","hlRef","escRef","ignoreModifiers","setRange","dtf","pc","yes","setSelectedFilterCategory","setSortBy","setGroupBy","transform","imageDescription","publishedAt","filterCounts","toLowerCase","author","paddingInline","showSeparator","IntersectionPostLineItem","isFollowedTags","PostLine","isReplyTo","root","show","setShow","observer","IntersectionObserver","isIntersecting","unobserve","rootMargin","observe","MEDIA_DENSITY","pollContent","cur","htmlContentLength","CARD_DENSITY","PostPeek","isThread","_thread","readingExpandSpoilers","showMedia","showPostContent","o","mediaURL","remoteMediaURL","MEDIA_SIZE","gifv","video","audio","PostStats","locale","numBins","dates","bins","Intl","minDate","binIndex","DateTimeFormat","Favourites","favouritesIterator","fetchFavourites","FILTER_CONTEXT_UNIMPLEMENTED","FILTER_CONTEXT_LABELS","home","thread","EXPIRY_DURATIONS","EXPIRY_DURATIONS_LABELS","Filters","showFiltersAddEditModal","setShowFiltersAddEditModal","filters","setFilters","keywords","expiresAt","k","keyword","ExpiryStatus","_id","incID","FiltersAddEdit","filterAction","hasExpiry","expiresAtDate","editKeywords","setEditKeywords","keywordsRef","setRemovedKeyword_IDs","filteredEditKeywords","setRemovedKeywordIDs","removedKeyword_IDs","title2","keywordIDs","getAll","keywordKeywords","keywordWholeWords","wholeWord","removedKeywordIDs","keywordsAttributes","context2","expiresIn","filterResult","filterAction2","_id2","showNeverExpires","expired","rerender","FollowedHashtags","Following","latestItem","latestItemChanged","opts","payload","TAGS_LIMIT_PER_MODE","TOTAL_TAGS_LIMIT","Hashtags","mediaView","columnMode","hashtags","trim","linkParams","hashtagTitle","hashtagPostTitle","maxID","fetchHashtags","timelines","any","maxId","onlyMedia","since_id","valueContainsLatestItem","followUIState","setFollowUIState","reachLimit","setDownOverflow","catch","finally","MenuHeader","newHashtag","MenuGroup","exists","newInstance","List","listIterator","setList","showManageMembersModal","setShowManageMembersModal","list2","ListManageMembers","MEMBERS_LIMIT","members","setMembers","membersIterator","fetchMembers","member","as","RemoveAddButton","removed","setRemoved","notificationTypeKeys","fixNotifications","groupNotifications","notificationsMap","cleanNotifications","virtualType","mappedNotification","mappedAccount","n","cleanNotifications2","notificationsMap2","emptySearchParams","URLSearchParams","Mentions","stateType","setStateType","mentionsIterator","fetchMentions","types","conversationsIterator","latestConversationItem","lastStatus","fetchConversations","args","Notifications","notificationID","notificationAccessToken","onlyMentions","setOnlyMentions","setFollowRequests","announcements","setAnnouncements","firstLoad2","excludeTypes","allNotifications","groupedNotifications","notificationsLastFetchTime","fetchFollowRequests","loadFollowRequests","requests","fetchAnnouncements","supportsFilteredNotifications","showNotificationsSettings","setNotificationsPolicy","fetchNotificationsPolicy","loadNotificationsPolicy","notificationsRequests","setNotificationsRequests","fetchNotificationsRequest","loadNotifications","fetchNotificationsPromise","fetchNotifications","loadUpdates","unsub","subscribeKey","todayDate","yesterdayDate","currentDay","announcementsListRef","statusLink","setShowNotificationsSettings","announcement","AnnouncementBlock","notificationsPolicy","onToggle","open","request","NotificationRequestModalButton","NotificationRequestButtons","showTodayEmpty","notificationDay","differentDay","filterNewAccounts","filterPrivateMentions","filterNotFollowing","filterNotFollowers","allFilters","contact","contactAccount","startsAt","endsAt","published","reactions","allDay","read","publishedAtDate","publishedDateText","updatedAtText","reaction","me","fetchNotficationsByAccount","setShowModal","showModal","setNotifications","notifs","hasRequestState","Public","isLocal","publicIterator","fetchPublic","remote","prompt","SHORT_LIMIT","Search","offsetRef","statusResults","setStatusResults","accountResults","setAccountResults","hashtagResults","setHashtagResults","setTypeResultsFunc","loadResults","filterBarParent","history","reduce","fetchLinks","trends","fetchTrends","pixelfed","discover","Trending","setHashtags","setLinks","trendIterator","fetchTrend","authorName","authorUrl","providerName","providerUrl","Columns","components","Hashtag","Component","Home","NotificationsLink","notificationLinkRef","NotificationsMenu","NOTIFICATIONS_LIMIT","NOTIFICATIONS_DISPLAY_LIMIT","hasFollowRequests","setHasFollowRequests","statusPostRegexes","getInstanceStatusObject","regex","match","getInstanceStatusURL","HttpRoute","statusObject","statusURL","Lists","instancesListURL","PHANPY_CLIENT_NAME","CLIENT_NAME","SCOPES","registerApplication","registrationParams","client_name","redirect_uris","origin","scopes","website","method","headers","toString","json","getAuthorizationURL","registrationJSON","client_id","authorizationParams","scope","redirect_uri","authorizationURL","client_secret","PHANPY_DEFAULT_INSTANCE","DEFAULT_INSTANCE","Login","instanceURLRef","cachedInstanceURL","submit","instanceText","setInstanceText","instancesList","setInstancesList","searcher","Fuse","submitInstance","vapid_key","session","cleanInstanceText","instanceTextLooksLikeDomain","instancesSuggestions","instance2","selectedInstanceText","textAlign","SUBCOMMENTS_OPEN_ALL_LIMIT","MAX_WEIGHT","cachedRepliesToggle","cachedStatusesMap","scrollPositions","resetScrollPosition","STATUSES_SELECTOR","STATUS_URL_REGEX","StatusPage","mediaParam","mediaOnlyParam","mediaIndex","mediaStatusID","mediaStatus","getStatus","showMediaOnly","heroStatus","setHeroStatus","closeLink","matchStatusPath","matchPath","handleMediaClose","delete","$carousel","$deckContainers","$deckContainer","StatusParent","linkable","restProps","StatusThread","navigation","translate","setStatuses","heroStatusRef","totalDescendants","debounce","scrollOffsets","lastInitContextTS","reloadHero","heroTimer","cachedStatuses","reallyCachedStatuses","heroFetch","pRetry","contextFetch","hasStatus","heroStatus2","_replies","_r","expandReplies","weight","descendants","missingStatuses","ancestors2","ancestors","ancestorsIsThread","nestedDescendants","__replies","ancestor","allStatuses","offsetTop","setLimit","showRefresh","setShowRefresh","interval","scrollPosition","newScrollOffsets","setInterval","newScrollTop","contextURL","initContext","statusWeightCache","div","apiCache","heroDisplayName","heroContentText","postInstance","hasDescendants","innerHTML","postSameInstance","activeStatus","activeStatusRect","activeStatusIndex","nextStatus","heroInView","heroPointer","statusLinkRect","topmostStatusLink","allStatusLinks","prevStatus","details","reachTopPost","initialPageState","handleMediaClick","renderStatus","descendant","isHero","requestAnimationFrame","setHeroInView","setReachTopPost","isLinkable","SubComments","handleStatusLinkClick","enableTranslate","showActionsBar","prevEntry","level","openAll","parentLink","getIDs","spoilerButton","viewMode","moreStatusesKeys","arr","setViewMode","button","buttons","statusesList","diveDeep","replies2","replies3","totalComments","totalWeight","accWeight","hasParentThread","calcStatusWeight","openBefore","detailsRef","sameCount","open2","shortReply","dataset","MEDIA_VIRTUAL_LENGTH","cachedWeight","mediaLength","pollLength","POLL_VIRTUAL_LENGTH","cardLength","WEIGHT_SEGMENT","StatusRoute","boostsCarouselUrl","groupedNotificationsUrl","multiHashtagTimelineUrl","nestedCommentsThreadUrl","logoText","PHANPY_DEFAULT_INSTANCE_REGISTRATION_URL","DEFAULT_INSTANCE_REGISTRATION_URL","appSite","Welcome","marginBlockEnd","nativeAlert","__nativeAlert","Toastify","gravity","y","__STATES__","__STATES_STATS__","counts","unmountedPosts","unfurledLinks","$post","postInNotifications","unfurled","keysCount","ICONS","nonIdleEvents","setIdle","debouncedSetIdle","onNonIdle","isIOS","$meta","tempColor","colorScheme","themeDarkColor","textSize","$app","$body","setIsLoggedIn","decodeURIComponent","clientID","clientSecret","initPreferences","client","initInstance","initStates","PrimaryRoutes","Routes","Route","nonRootLocation","element","backgroundLocation","getPrevLocation","isModalPage","timeout","AbortSignal","controller","AbortController","abort","signal","HashRouter","App","localStorage","removeItem","sessionStorage","__CLOAK__"],"mappings":"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"} \ No newline at end of file diff --git a/assets/multi-column-ETnJNDVb.jpg b/assets/multi-column-ETnJNDVb.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4e9718ca0f5c208db98b513838f02998baf21d4a GIT binary patch literal 49439 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%0AWXert-CxR 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 BxRd|@ literal 0 HcmV?d00001 diff --git a/assets/multi-hashtag-timeline-x-SDVR4g.jpg b/assets/multi-hashtag-timeline-x-SDVR4g.jpg new file mode 100644 index 0000000000000000000000000000000000000000..ea55bb4ec957247cec2700ae138038c148389e75 GIT binary patch literal 31446 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 literal 0 HcmV?d00001 diff --git a/assets/nested-comments-thread-Ib-fZGS3.jpg b/assets/nested-comments-thread-Ib-fZGS3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..35b8fbda476ff3e3c421ac03048945f63c57e6dd GIT binary patch literal 43136 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 UdmPV%B+`rY9F[A]})}}}return Object.freeze(Object.defineProperty(u,Symbol.toStringTag,{value:"Module"}))}var uu={},J={};const lD=Au(nD);var W={};Object.defineProperty(W,"__esModule",{value:!0});var cD=W.SegmentationRules=void 0;cD=W.SegmentationRules={de:{sentence:{segmentRules:{},suppressions:["Port.","Alt.","Di.","Ges.","frz.","entspr.","Gebr.","erw.","Frl.","Inh.","k.u.k.","Ca.","J.D.","Ausg.","evtl.","So.","i.B.","s.a.","kgl.","Sept.","o.B.","Sa.","ev.","Dez.","am.","i.R.","eigtl.","i.J.","u.U.","G.","z.Hd.","u.A.w.g.","Kl.","Spezif.","Obj.","Ing.","D. h.","Folg.","Akt.","i.A.","Msp.","U.U.","Chr.","R.","Einh.","schwäb.","Vgl.","Aug.","Dipl.-Ing.","W.","B.","U. U.","J.","Fa.","Mo.","n.u.Z.","Op.","Mrd.","e.h.","Hr.","Hrn.","Ztr.","k. u. k.","Bibl.","d.Ä.","b.","M.","i.H.","v.R.w.","o.A.","St.","Dr.","Fn.","Abs.","Rd.","Dtzd.","Jahrh.","Z.","Std.","n. Chr.","möbl.","tägl.","gest.","gesch.","z.B.","Hbf.","Abt.","A.M.","e.Wz.","v.T.","Nov.","z.","Prot.","U.S.","Wg.","u.v.a.","Adr.","App.","ggf.","ggfs.","Jan.","O.","Rel.","od.","Pfd.","a.a.O.","p.Adr.","P.","Gem.","v. Chr.","Art.","z.Z.","S.A.","i.V.","verh.","Ausschl.","m.W.","Dir.","Verf.","Sek.","r.","Chin.","Feb.","Int.","Sep.","Gesch.","schweiz.","Bed.","a.Rh.","jew.","vgl.","a.M.","Str.","exkl.","gek.","Erf.","u.Ä.","ehem.","näml.","u. Z.","v. u. Z.","sog.","C.","Dipl.-Kfm.","mtl.","Hrsg.","Qu.","röm.","u.","U.","Adj.","Kap.","hpts.","a.D.","gedr.","Best.","N.","v.u.Z.","Phys.","Fr.","d.J.","Reg.-Bez.","m.E.","schles.","Max.","Ltd.","südd.","inkl.","geb.","Ggf.","Inc.","kath.","kfm.","Nr.","Proz.","Dim.","verw.","Reg.","Dat.","Evtl.","led.","F.","Test.","Schr.","Do.","PIN.","Z. Zt.","v.Chr.","Tägl.","s.","amtl.","Temp.","Mind.","e.V.","Abw.","P.M.","F.f.","a.a.S.","Mod.","Co.","Min.","Allg.","Geograph.","Jr.","Urspr.","Apr.","Z. B.","v.H.","A.","einschl.","Trans.","zzgl.","StR.","Fam.","I.","jhrl.","u.a.","Ben.","o.g.","Kfm.","Konv.","Mi.","L.","beil.","T.","Ursprüngl.","röm.-kath.","Okt.","u.ä.","Tel.","D.","Ber.","Kop.","Mio.","Y.","U.S.A.","v. H.","Forts. f.","Rep.","Hptst.","österr."],variables:{}}},el:{sentence:{segmentRules:{},suppressions:[],variables:{$STerm:"((?:[!;\\?\\u037E\\u0589\\u061D-\\u061F\\u06D4\\u0700-\\u0702\\u07F9\\u0837\\u0839\\u083D\\u083E\\u0964\\u0965\\u104A\\u104B\\u1362\\u1367\\u1368\\u166E\\u1735\\u1736\\u1803\\u1809\\u1944\\u1945\\u1AA8-\\u1AAB\\u1B5A\\u1B5B\\u1B5E\\u1B5F\\u1B7D\\u1B7E\\u1C3B\\u1C3C\\u1C7E\\u1C7F\\u203C\\u203D\\u2047-\\u2049\\u2E2E\\u2E3C\\u2E53\\u2E54\\u3002\\uA4FF\\uA60E\\uA60F\\uA6F3\\uA6F7\\uA876\\uA877\\uA8CE\\uA8CF\\uA92F\\uA9C8\\uA9C9\\uAA5D-\\uAA5F\\uAAF0\\uAAF1\\uABEB\\uFE56\\uFE57\\uFF01\\uFF1F\\uFF61]|\\uD802[\\uDE56\\uDE57]|\\uD803[\\uDF55-\\uDF59\\uDF86-\\uDF89]|\\uD804[\\uDC47\\uDC48\\uDCBE-\\uDCC1\\uDD41-\\uDD43\\uDDC5\\uDDC6\\uDDCD\\uDDDE\\uDDDF\\uDE38\\uDE39\\uDE3B\\uDE3C\\uDEA9]|\\uD805[\\uDC4B\\uDC4C\\uDDC2\\uDDC3\\uDDC9-\\uDDD7\\uDE41\\uDE42\\uDF3C-\\uDF3E]|\\uD806[\\uDD44\\uDD46\\uDE42\\uDE43\\uDE9B\\uDE9C]|\\uD807[\\uDC41\\uDC42\\uDEF7\\uDEF8\\uDF43\\uDF44]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37\\uDF38\\uDF44]|\\uD81B\\uDE98|\\uD82F\\uDC9F|\\uD836\\uDE88)(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)"}}},en:{sentence:{segmentRules:{},suppressions:["L.P.","Alt.","Approx.","E.G.","O.","Maj.","Misc.","P.O.","J.D.","Jam.","Card.","Dec.","Sept.","MR.","Long.","Hat.","G.","Link.","DC.","D.C.","M.T.","Hz.","Mrs.","By.","Act.","Var.","N.V.","Aug.","B.","S.A.","Up.","Job.","Num.","M.I.T.","Ok.","Org.","Ex.","Cont.","U.","Mart.","Fn.","Abs.","Lt.","OK.","Z.","E.","Kb.","Est.","A.M.","L.A.","Prof.","U.S.","Nov.","Ph.D.","Mar.","I.T.","exec.","Jan.","N.Y.","X.","Md.","Op.","vs.","D.A.","A.D.","R.L.","P.M.","Or.","M.R.","Cap.","PC.","Feb.","Exec.","I.e.","Sep.","Gb.","K.","U.S.C.","Mt.","S.","A.S.","C.O.D.","Capt.","Col.","In.","C.F.","Adj.","AD.","I.D.","Mgr.","R.T.","B.V.","M.","Conn.","Yr.","Rev.","Phys.","pp.","Ms.","To.","Sgt.","J.K.","Nr.","Jun.","Fri.","S.A.R.","Lev.","Lt.Cdr.","Def.","F.","Do.","Joe.","Id.","Mr.","Dept.","Is.","Pvt.","Diff.","Hon.B.A.","Q.","Mb.","On.","Min.","J.B.","Ed.","AB.","A.","S.p.A.","I.","a.m.","Comm.","Go.","VS.","L.","All.","PP.","P.V.","T.","K.R.","Etc.","D.","Adv.","Lib.","E.g.","Pro.","U.S.A.","S.E.","AA.","Rep.","Sq.","As."],variables:{}}},es:{sentence:{segmentRules:{},suppressions:["Rdos.","JJ.OO.","Sres.","fig.","may.","RR.HH.","oct.","cap.","mié.","doc.","Excmo.","Trab.","Excmos.","Kit.","Inc.","FF.CC.","DC.","ago.","trad.","SA.","Rvdos.","ed.","Exmo.","jul.","col.","RAM.","Srtas.","ene.","Rol.","Fabric.","Comm.","vid.","Da.","dic.","ss.","abr.","ntra.","Sra.","dtor.","cf.","dom.","prov.","Emm.","Sr.","licdo.","p.ej.","bol.","figs.","Vda.","Dr.","ntro.","Desv.","O.M.","Ldo.","Drs.","sáb.","feb.","Ltda.","Lcda.","Exma.","C.V.","SS.MM.","Lda.","U.S.","hnos.","R.D.","Korn.","v.gr.","vs.","Ilmas.","Rdo.","ej.","vie.","jue.","a. C.","Ilmos.","e. c.","Excma.","afma.","licda.","Em.","K.","sras.","MM.","fund.","Mons.","Lcdo.","afmo.","C.","A.C.","dptos.","Col.","Srta.","Av.","Ant.","depto.","Var.","H.P.","D.","M.","C.P.","Rev.","Rvdmos.","Fr.","Ilmo.","afmos.","Ltd.","afmas.","prof.","lun.","SS.AA.","Sol.","nov.","mss.","Dña.","Seg.","mar.","Rvdmo.","Reg.","ms.","Sras.","sres.","U.S.A.","Sta.","Sdad.","Dra.","srs.","R.U.","deptos.","dpto.","jun.","bco.","Cía.","Id.","Mr.","e.g.","C.S.","Excmas.","Dª.","Rvdo.","Lic.","cfr.","Corp.","Dto.","Ilma.","L.","All.","PP.","d. C.","Ltdo.","mtro.","Mrs.","Desc.","Avda.","Exmas.","a. e. c.","Bien.","Exmos.","AA.","Sto.","CA.","sept.","Exc.","c/c."],variables:{}}},fr:{sentence:{segmentRules:{},suppressions:["aux.","config.","collab.","M.","dim.","imprim.","oct.","syst.","bull.","MM.","doc.","P.O.","hôp.","Mart.","juil.","broch.","adr.","symb.","C.","anc.","voit.","Jr.","graph.","dir.","éd.","fig.","édit.","niv.","quart.","cam.","éval.","anon.","réf.","Comm.","Prof.","févr.","indus.","DC.","équiv.","illustr.","acoust.","nov.","L.","All.","U.S.","S.M.A.R.T.","sept.","avr.","jeu.","dest.","P.-D. G.","ill.","coll.","encycl.","mer.","Desc.","ven.","P.","lun.","Inc.","sam.","D.","append.","Var.","categ.","janv.","S.A.","imm.","U.S.A.","mar.","exempl.","déc.","ann.","U.","synth.","dict.","av. J.-C.","W.","Op.","ap. J.-C.","gouv.","trav. publ."],variables:{}}},it:{sentence:{segmentRules:{},suppressions:["N.B.","div.","a.C.","fig.","d.p.R.","c.c.p.","Cfr.","vol.","Geom.","O.d.G.","S.p.A.","ver.","N.d.A.","dott.","arch.","d.C.","N.d.T.","rag.","Sig.","Mod.","pag.","dr.","tav.","N.d.E.","DC.","mitt.","Ing.","int.","on.","C.P.","ag.","L.","U.S.","S.M.A.R.T.","p.i.","tab.","Ltd.","Liv.","D.","U.S.A.","sez.","avv.","S.A.R.","all.","p."],variables:{}}},ja:{word:{segmentRules:{"13.3":{after:"$Hiragana",before:"$Hiragana",breaks:!1},"13.4":{after:"$Ideographic",before:"$Ideographic",breaks:!1}},suppressions:[],variables:{$Hiragana:"((?:[\\u3041-\\u3096\\u309D-\\u309F]|\\uD82C[\\uDC01-\\uDD1F\\uDD32\\uDD50-\\uDD52]|\\uD83C\\uDE00)(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$Ideographic:"((?:[\\u3005-\\u3007\\u3021-\\u3029\\u3038-\\u303B\\u3400-\\u4DBF\\u4E00-\\u9FFF\\uF900-\\uFA6D\\uFA70-\\uFAD9]|\\uD81B\\uDFE4|[\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883\\uD885-\\uD887][\\uDC00-\\uDFFF]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82C[\\uDD70-\\uDEFB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF39\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A\\uDF50-\\uDFFF]|\\uD888[\\uDC00-\\uDFAF])(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)"}}},pt:{sentence:{segmentRules:{},suppressions:["psicol.","fig.","compl.","rep.","cap.","doc.","fisiol.","dipl.","astron.","port.","eletrôn.","geom.","mov.","ago.","trad.","arquit.","dez.","ed.","apt.","Exmo.","col.","ff.","univ.","res.","R.","transp.","D.C","l.","des.","fev.","abr.","liter.","lat.","Dir.","cf.","adm.","fot.","p.m.","P.M.","créd.","jur.","com.","anat.","dir.","end.","fís.","E.","Est.","cont.","matem.","Drs.","gên.","neol.","pág.","índ.","Ltda.","Exma.","esp.","ingl.","tecnol.","Mar.","símb.","Pe.","pal.","filos.","V.T.","fasc.","vs.","mai.","S.A.","profa.","N.Sra.","r.s.v.p.","cel.","mat.","abrev.","out.","long.","aux.","arit.","aer.","jul.","lin.","S.","méd.","odontol.","org.","A.C.","jun.","déb.","Av.","álg.","sup.","fl.","odont.","caps.","relat.","organiz.","hist.","Fr.","Ilmo.","fem.","ap.","Ltd.","pol.","séc.","prof.","cx.","nov.","quím.","mús.","agric.","mar.","W.C.","fr.","cat.","jan.","pron.","rel.","autom.","Sta.","Dra.","p.","tel.","div.","p. ex.","a.C.","bras.","Alm.","Dr.","comp.","pq.","arqueol.","náut.","biogr.","f.","círc.","fac.","d.C.","apart.","ex.","Jr.","set.","tec.","sociol.","gram.","ind.","Ilma.","vol.","eng.","rod.","Ph.D.","Dras.","pp.","elem.","máq.","cód.","eletr.","prod.","ref.","fil.","a.m.","A.M","obs.","N.T.","contab.","Sto.","lit.","educ.","rementente","desc.","próx."],variables:{}}},root:{grapheme:{segmentRules:{11:{after:"$ExtPict",before:"$ExtPict$Extend*$ZWJ",breaks:!1},12:{after:"$RI",before:"^($RI$RI)*$RI",breaks:!1},13:{after:"$RI",before:"[^\\uDDE6-\\uDDFF]($RI$RI)*$RI",breaks:!1},3:{after:"$LF",before:"$CR",breaks:!1},4:{before:"($Control|$CR|$LF)",breaks:!0},5:{after:"($Control|$CR|$LF)",breaks:!0},6:{after:"($L|$V|$LV|$LVT)",before:"$L",breaks:!1},7:{after:"($V|$T)",before:"($LV|$V)",breaks:!1},8:{after:"$T",before:"($LVT|$T)",breaks:!1},9:{after:"($Extend|$ZWJ)",breaks:!1},"9.1":{after:"$SpacingMark",breaks:!1},"9.2":{before:"$Prepend",breaks:!1},"9.3":{after:"$LinkingConsonant",before:"$LinkingConsonant$ExtCccZwj*$Virama$ExtCccZwj*",breaks:!1}},suppressions:[],variables:{$CR:"\\r",$Control:"(?:[\\0-\\t\\x0B\\f\\x0E-\\x1F\\x7F-\\x9F\\xAD\\u061C\\u180E\\u200B\\u200E\\u200F\\u2028-\\u202E\\u2060-\\u206F\\uFEFF\\uFFF0-\\uFFFB]|\\uD80D[\\uDC30-\\uDC3F]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40[\\uDC00-\\uDC1F\\uDC80-\\uDCFF\\uDDF0-\\uDFFF]|[\\uDB41-\\uDB43][\\uDC00-\\uDFFF])",$ExtCccZwj:"(?:[\\u0300-\\u034E\\u0350-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0898-\\u089F\\u08CA-\\u08E1\\u08E3-\\u08FF\\u093C\\u094D\\u0951-\\u0954\\u09BC\\u09CD\\u09FE\\u0A3C\\u0A4D\\u0ABC\\u0ACD\\u0B3C\\u0B4D\\u0BCD\\u0C3C\\u0C4D\\u0C55\\u0C56\\u0CBC\\u0CCD\\u0D3B\\u0D3C\\u0D4D\\u0DCA\\u0E38-\\u0E3A\\u0E48-\\u0E4B\\u0EB8-\\u0EBA\\u0EC8-\\u0ECB\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71\\u0F72\\u0F74\\u0F7A-\\u0F7D\\u0F80\\u0F82-\\u0F84\\u0F86\\u0F87\\u0FC6\\u1037\\u1039\\u103A\\u108D\\u135D-\\u135F\\u1714\\u17D2\\u17DD\\u18A9\\u1939-\\u193B\\u1A17\\u1A18\\u1A60\\u1A75-\\u1A7C\\u1A7F\\u1AB0-\\u1ABD\\u1ABF-\\u1ACE\\u1B34\\u1B6B-\\u1B73\\u1BAB\\u1BE6\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DFF\\u200D\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA806\\uA82C\\uA8C4\\uA8E0-\\uA8F1\\uA92B-\\uA92D\\uA9B3\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAF6\\uABED\\uFB1E\\uFE20-\\uFE2F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE0D\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC46\\uDC70\\uDC7F\\uDCB9\\uDCBA\\uDD00-\\uDD02\\uDD33\\uDD34\\uDD73\\uDDCA\\uDE36\\uDEE9\\uDEEA\\uDF3B\\uDF3C\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC42\\uDC46\\uDC5E\\uDCC2\\uDCC3\\uDDBF\\uDDC0\\uDE3F\\uDEB7\\uDF2B]|\\uD806[\\uDC39\\uDC3A\\uDD3E\\uDD43\\uDDE0\\uDE34\\uDE47\\uDE99]|\\uD807[\\uDC3F\\uDD42\\uDD44\\uDD45\\uDD97\\uDF42]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD82F\\uDC9E|\\uD834[\\uDD65\\uDD67-\\uDD69\\uDD6E-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A])",$ExtPict:"(?:[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u2388\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2605\\u2607-\\u2612\\u2614-\\u2685\\u2690-\\u2705\\u2708-\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763-\\u2767\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC00-\\uDCFF\\uDD0D-\\uDD0F\\uDD2F\\uDD6C-\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDAD-\\uDDE5\\uDE01-\\uDE0F\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE3C-\\uDE3F\\uDE49-\\uDFFA]|\\uD83D[\\uDC00-\\uDD3D\\uDD46-\\uDE4F\\uDE80-\\uDEFF\\uDF74-\\uDF7F\\uDFD5-\\uDFFF]|\\uD83E[\\uDC0C-\\uDC0F\\uDC48-\\uDC4F\\uDC5A-\\uDC5F\\uDC88-\\uDC8F\\uDCAE-\\uDCFF\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDEFF]|\\uD83F[\\uDC00-\\uDFFD])",$Extend:"(?:[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0898-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09BE\\u09C1-\\u09C4\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3E\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE\\u0BC0\\u0BCD\\u0BD7\\u0C00\\u0C04\\u0C3C\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC2\\u0CC6\\u0CCC\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D3E\\u0D41-\\u0D44\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81\\u0DCA\\u0DCF\\u0DD2-\\u0DD4\\u0DD6\\u0DDF\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732\\u1733\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B03\\u1B34-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DFF\\u200C\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA82C\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9BD\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFF9E\\uFF9F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC01\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC81\\uDCB3-\\uDCB6\\uDCB9\\uDCBA\\uDCC2\\uDD00-\\uDD02\\uDD27-\\uDD2B\\uDD2D-\\uDD34\\uDD73\\uDD80\\uDD81\\uDDB6-\\uDDBE\\uDDC9-\\uDDCC\\uDDCF\\uDE2F-\\uDE31\\uDE34\\uDE36\\uDE37\\uDE3E\\uDE41\\uDEDF\\uDEE3-\\uDEEA\\uDF00\\uDF01\\uDF3B\\uDF3C\\uDF3E\\uDF40\\uDF57\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC38-\\uDC3F\\uDC42-\\uDC44\\uDC46\\uDC5E\\uDCB0\\uDCB3-\\uDCB8\\uDCBA\\uDCBD\\uDCBF\\uDCC0\\uDCC2\\uDCC3\\uDDAF\\uDDB2-\\uDDB5\\uDDBC\\uDDBD\\uDDBF\\uDDC0\\uDDDC\\uDDDD\\uDE33-\\uDE3A\\uDE3D\\uDE3F\\uDE40\\uDEAB\\uDEAD\\uDEB0-\\uDEB5\\uDEB7\\uDF1D-\\uDF1F\\uDF22-\\uDF25\\uDF27-\\uDF2B]|\\uD806[\\uDC2F-\\uDC37\\uDC39\\uDC3A\\uDD30\\uDD3B\\uDD3C\\uDD3E\\uDD43\\uDDD4-\\uDDD7\\uDDDA\\uDDDB\\uDDE0\\uDE01-\\uDE0A\\uDE33-\\uDE38\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE56\\uDE59-\\uDE5B\\uDE8A-\\uDE96\\uDE98\\uDE99]|\\uD807[\\uDC30-\\uDC36\\uDC38-\\uDC3D\\uDC3F\\uDC92-\\uDCA7\\uDCAA-\\uDCB0\\uDCB2\\uDCB3\\uDCB5\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD90\\uDD91\\uDD95\\uDD97\\uDEF3\\uDEF4\\uDF00\\uDF01\\uDF36-\\uDF3A\\uDF40\\uDF42]|\\uD80D[\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF8F-\\uDF92\\uDFE4]|\\uD82F[\\uDC9D\\uDC9E]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65\\uDD67-\\uDD69\\uDD6E-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC20-\\uDC7F\\uDD00-\\uDDEF])",$L:"[\\u1100-\\u115F\\uA960-\\uA97C]",$LF:"\\n",$LV:"[\\uAC00\\uAC1C\\uAC38\\uAC54\\uAC70\\uAC8C\\uACA8\\uACC4\\uACE0\\uACFC\\uAD18\\uAD34\\uAD50\\uAD6C\\uAD88\\uADA4\\uADC0\\uADDC\\uADF8\\uAE14\\uAE30\\uAE4C\\uAE68\\uAE84\\uAEA0\\uAEBC\\uAED8\\uAEF4\\uAF10\\uAF2C\\uAF48\\uAF64\\uAF80\\uAF9C\\uAFB8\\uAFD4\\uAFF0\\uB00C\\uB028\\uB044\\uB060\\uB07C\\uB098\\uB0B4\\uB0D0\\uB0EC\\uB108\\uB124\\uB140\\uB15C\\uB178\\uB194\\uB1B0\\uB1CC\\uB1E8\\uB204\\uB220\\uB23C\\uB258\\uB274\\uB290\\uB2AC\\uB2C8\\uB2E4\\uB300\\uB31C\\uB338\\uB354\\uB370\\uB38C\\uB3A8\\uB3C4\\uB3E0\\uB3FC\\uB418\\uB434\\uB450\\uB46C\\uB488\\uB4A4\\uB4C0\\uB4DC\\uB4F8\\uB514\\uB530\\uB54C\\uB568\\uB584\\uB5A0\\uB5BC\\uB5D8\\uB5F4\\uB610\\uB62C\\uB648\\uB664\\uB680\\uB69C\\uB6B8\\uB6D4\\uB6F0\\uB70C\\uB728\\uB744\\uB760\\uB77C\\uB798\\uB7B4\\uB7D0\\uB7EC\\uB808\\uB824\\uB840\\uB85C\\uB878\\uB894\\uB8B0\\uB8CC\\uB8E8\\uB904\\uB920\\uB93C\\uB958\\uB974\\uB990\\uB9AC\\uB9C8\\uB9E4\\uBA00\\uBA1C\\uBA38\\uBA54\\uBA70\\uBA8C\\uBAA8\\uBAC4\\uBAE0\\uBAFC\\uBB18\\uBB34\\uBB50\\uBB6C\\uBB88\\uBBA4\\uBBC0\\uBBDC\\uBBF8\\uBC14\\uBC30\\uBC4C\\uBC68\\uBC84\\uBCA0\\uBCBC\\uBCD8\\uBCF4\\uBD10\\uBD2C\\uBD48\\uBD64\\uBD80\\uBD9C\\uBDB8\\uBDD4\\uBDF0\\uBE0C\\uBE28\\uBE44\\uBE60\\uBE7C\\uBE98\\uBEB4\\uBED0\\uBEEC\\uBF08\\uBF24\\uBF40\\uBF5C\\uBF78\\uBF94\\uBFB0\\uBFCC\\uBFE8\\uC004\\uC020\\uC03C\\uC058\\uC074\\uC090\\uC0AC\\uC0C8\\uC0E4\\uC100\\uC11C\\uC138\\uC154\\uC170\\uC18C\\uC1A8\\uC1C4\\uC1E0\\uC1FC\\uC218\\uC234\\uC250\\uC26C\\uC288\\uC2A4\\uC2C0\\uC2DC\\uC2F8\\uC314\\uC330\\uC34C\\uC368\\uC384\\uC3A0\\uC3BC\\uC3D8\\uC3F4\\uC410\\uC42C\\uC448\\uC464\\uC480\\uC49C\\uC4B8\\uC4D4\\uC4F0\\uC50C\\uC528\\uC544\\uC560\\uC57C\\uC598\\uC5B4\\uC5D0\\uC5EC\\uC608\\uC624\\uC640\\uC65C\\uC678\\uC694\\uC6B0\\uC6CC\\uC6E8\\uC704\\uC720\\uC73C\\uC758\\uC774\\uC790\\uC7AC\\uC7C8\\uC7E4\\uC800\\uC81C\\uC838\\uC854\\uC870\\uC88C\\uC8A8\\uC8C4\\uC8E0\\uC8FC\\uC918\\uC934\\uC950\\uC96C\\uC988\\uC9A4\\uC9C0\\uC9DC\\uC9F8\\uCA14\\uCA30\\uCA4C\\uCA68\\uCA84\\uCAA0\\uCABC\\uCAD8\\uCAF4\\uCB10\\uCB2C\\uCB48\\uCB64\\uCB80\\uCB9C\\uCBB8\\uCBD4\\uCBF0\\uCC0C\\uCC28\\uCC44\\uCC60\\uCC7C\\uCC98\\uCCB4\\uCCD0\\uCCEC\\uCD08\\uCD24\\uCD40\\uCD5C\\uCD78\\uCD94\\uCDB0\\uCDCC\\uCDE8\\uCE04\\uCE20\\uCE3C\\uCE58\\uCE74\\uCE90\\uCEAC\\uCEC8\\uCEE4\\uCF00\\uCF1C\\uCF38\\uCF54\\uCF70\\uCF8C\\uCFA8\\uCFC4\\uCFE0\\uCFFC\\uD018\\uD034\\uD050\\uD06C\\uD088\\uD0A4\\uD0C0\\uD0DC\\uD0F8\\uD114\\uD130\\uD14C\\uD168\\uD184\\uD1A0\\uD1BC\\uD1D8\\uD1F4\\uD210\\uD22C\\uD248\\uD264\\uD280\\uD29C\\uD2B8\\uD2D4\\uD2F0\\uD30C\\uD328\\uD344\\uD360\\uD37C\\uD398\\uD3B4\\uD3D0\\uD3EC\\uD408\\uD424\\uD440\\uD45C\\uD478\\uD494\\uD4B0\\uD4CC\\uD4E8\\uD504\\uD520\\uD53C\\uD558\\uD574\\uD590\\uD5AC\\uD5C8\\uD5E4\\uD600\\uD61C\\uD638\\uD654\\uD670\\uD68C\\uD6A8\\uD6C4\\uD6E0\\uD6FC\\uD718\\uD734\\uD750\\uD76C\\uD788]",$LVT:"[\\uAC01-\\uAC1B\\uAC1D-\\uAC37\\uAC39-\\uAC53\\uAC55-\\uAC6F\\uAC71-\\uAC8B\\uAC8D-\\uACA7\\uACA9-\\uACC3\\uACC5-\\uACDF\\uACE1-\\uACFB\\uACFD-\\uAD17\\uAD19-\\uAD33\\uAD35-\\uAD4F\\uAD51-\\uAD6B\\uAD6D-\\uAD87\\uAD89-\\uADA3\\uADA5-\\uADBF\\uADC1-\\uADDB\\uADDD-\\uADF7\\uADF9-\\uAE13\\uAE15-\\uAE2F\\uAE31-\\uAE4B\\uAE4D-\\uAE67\\uAE69-\\uAE83\\uAE85-\\uAE9F\\uAEA1-\\uAEBB\\uAEBD-\\uAED7\\uAED9-\\uAEF3\\uAEF5-\\uAF0F\\uAF11-\\uAF2B\\uAF2D-\\uAF47\\uAF49-\\uAF63\\uAF65-\\uAF7F\\uAF81-\\uAF9B\\uAF9D-\\uAFB7\\uAFB9-\\uAFD3\\uAFD5-\\uAFEF\\uAFF1-\\uB00B\\uB00D-\\uB027\\uB029-\\uB043\\uB045-\\uB05F\\uB061-\\uB07B\\uB07D-\\uB097\\uB099-\\uB0B3\\uB0B5-\\uB0CF\\uB0D1-\\uB0EB\\uB0ED-\\uB107\\uB109-\\uB123\\uB125-\\uB13F\\uB141-\\uB15B\\uB15D-\\uB177\\uB179-\\uB193\\uB195-\\uB1AF\\uB1B1-\\uB1CB\\uB1CD-\\uB1E7\\uB1E9-\\uB203\\uB205-\\uB21F\\uB221-\\uB23B\\uB23D-\\uB257\\uB259-\\uB273\\uB275-\\uB28F\\uB291-\\uB2AB\\uB2AD-\\uB2C7\\uB2C9-\\uB2E3\\uB2E5-\\uB2FF\\uB301-\\uB31B\\uB31D-\\uB337\\uB339-\\uB353\\uB355-\\uB36F\\uB371-\\uB38B\\uB38D-\\uB3A7\\uB3A9-\\uB3C3\\uB3C5-\\uB3DF\\uB3E1-\\uB3FB\\uB3FD-\\uB417\\uB419-\\uB433\\uB435-\\uB44F\\uB451-\\uB46B\\uB46D-\\uB487\\uB489-\\uB4A3\\uB4A5-\\uB4BF\\uB4C1-\\uB4DB\\uB4DD-\\uB4F7\\uB4F9-\\uB513\\uB515-\\uB52F\\uB531-\\uB54B\\uB54D-\\uB567\\uB569-\\uB583\\uB585-\\uB59F\\uB5A1-\\uB5BB\\uB5BD-\\uB5D7\\uB5D9-\\uB5F3\\uB5F5-\\uB60F\\uB611-\\uB62B\\uB62D-\\uB647\\uB649-\\uB663\\uB665-\\uB67F\\uB681-\\uB69B\\uB69D-\\uB6B7\\uB6B9-\\uB6D3\\uB6D5-\\uB6EF\\uB6F1-\\uB70B\\uB70D-\\uB727\\uB729-\\uB743\\uB745-\\uB75F\\uB761-\\uB77B\\uB77D-\\uB797\\uB799-\\uB7B3\\uB7B5-\\uB7CF\\uB7D1-\\uB7EB\\uB7ED-\\uB807\\uB809-\\uB823\\uB825-\\uB83F\\uB841-\\uB85B\\uB85D-\\uB877\\uB879-\\uB893\\uB895-\\uB8AF\\uB8B1-\\uB8CB\\uB8CD-\\uB8E7\\uB8E9-\\uB903\\uB905-\\uB91F\\uB921-\\uB93B\\uB93D-\\uB957\\uB959-\\uB973\\uB975-\\uB98F\\uB991-\\uB9AB\\uB9AD-\\uB9C7\\uB9C9-\\uB9E3\\uB9E5-\\uB9FF\\uBA01-\\uBA1B\\uBA1D-\\uBA37\\uBA39-\\uBA53\\uBA55-\\uBA6F\\uBA71-\\uBA8B\\uBA8D-\\uBAA7\\uBAA9-\\uBAC3\\uBAC5-\\uBADF\\uBAE1-\\uBAFB\\uBAFD-\\uBB17\\uBB19-\\uBB33\\uBB35-\\uBB4F\\uBB51-\\uBB6B\\uBB6D-\\uBB87\\uBB89-\\uBBA3\\uBBA5-\\uBBBF\\uBBC1-\\uBBDB\\uBBDD-\\uBBF7\\uBBF9-\\uBC13\\uBC15-\\uBC2F\\uBC31-\\uBC4B\\uBC4D-\\uBC67\\uBC69-\\uBC83\\uBC85-\\uBC9F\\uBCA1-\\uBCBB\\uBCBD-\\uBCD7\\uBCD9-\\uBCF3\\uBCF5-\\uBD0F\\uBD11-\\uBD2B\\uBD2D-\\uBD47\\uBD49-\\uBD63\\uBD65-\\uBD7F\\uBD81-\\uBD9B\\uBD9D-\\uBDB7\\uBDB9-\\uBDD3\\uBDD5-\\uBDEF\\uBDF1-\\uBE0B\\uBE0D-\\uBE27\\uBE29-\\uBE43\\uBE45-\\uBE5F\\uBE61-\\uBE7B\\uBE7D-\\uBE97\\uBE99-\\uBEB3\\uBEB5-\\uBECF\\uBED1-\\uBEEB\\uBEED-\\uBF07\\uBF09-\\uBF23\\uBF25-\\uBF3F\\uBF41-\\uBF5B\\uBF5D-\\uBF77\\uBF79-\\uBF93\\uBF95-\\uBFAF\\uBFB1-\\uBFCB\\uBFCD-\\uBFE7\\uBFE9-\\uC003\\uC005-\\uC01F\\uC021-\\uC03B\\uC03D-\\uC057\\uC059-\\uC073\\uC075-\\uC08F\\uC091-\\uC0AB\\uC0AD-\\uC0C7\\uC0C9-\\uC0E3\\uC0E5-\\uC0FF\\uC101-\\uC11B\\uC11D-\\uC137\\uC139-\\uC153\\uC155-\\uC16F\\uC171-\\uC18B\\uC18D-\\uC1A7\\uC1A9-\\uC1C3\\uC1C5-\\uC1DF\\uC1E1-\\uC1FB\\uC1FD-\\uC217\\uC219-\\uC233\\uC235-\\uC24F\\uC251-\\uC26B\\uC26D-\\uC287\\uC289-\\uC2A3\\uC2A5-\\uC2BF\\uC2C1-\\uC2DB\\uC2DD-\\uC2F7\\uC2F9-\\uC313\\uC315-\\uC32F\\uC331-\\uC34B\\uC34D-\\uC367\\uC369-\\uC383\\uC385-\\uC39F\\uC3A1-\\uC3BB\\uC3BD-\\uC3D7\\uC3D9-\\uC3F3\\uC3F5-\\uC40F\\uC411-\\uC42B\\uC42D-\\uC447\\uC449-\\uC463\\uC465-\\uC47F\\uC481-\\uC49B\\uC49D-\\uC4B7\\uC4B9-\\uC4D3\\uC4D5-\\uC4EF\\uC4F1-\\uC50B\\uC50D-\\uC527\\uC529-\\uC543\\uC545-\\uC55F\\uC561-\\uC57B\\uC57D-\\uC597\\uC599-\\uC5B3\\uC5B5-\\uC5CF\\uC5D1-\\uC5EB\\uC5ED-\\uC607\\uC609-\\uC623\\uC625-\\uC63F\\uC641-\\uC65B\\uC65D-\\uC677\\uC679-\\uC693\\uC695-\\uC6AF\\uC6B1-\\uC6CB\\uC6CD-\\uC6E7\\uC6E9-\\uC703\\uC705-\\uC71F\\uC721-\\uC73B\\uC73D-\\uC757\\uC759-\\uC773\\uC775-\\uC78F\\uC791-\\uC7AB\\uC7AD-\\uC7C7\\uC7C9-\\uC7E3\\uC7E5-\\uC7FF\\uC801-\\uC81B\\uC81D-\\uC837\\uC839-\\uC853\\uC855-\\uC86F\\uC871-\\uC88B\\uC88D-\\uC8A7\\uC8A9-\\uC8C3\\uC8C5-\\uC8DF\\uC8E1-\\uC8FB\\uC8FD-\\uC917\\uC919-\\uC933\\uC935-\\uC94F\\uC951-\\uC96B\\uC96D-\\uC987\\uC989-\\uC9A3\\uC9A5-\\uC9BF\\uC9C1-\\uC9DB\\uC9DD-\\uC9F7\\uC9F9-\\uCA13\\uCA15-\\uCA2F\\uCA31-\\uCA4B\\uCA4D-\\uCA67\\uCA69-\\uCA83\\uCA85-\\uCA9F\\uCAA1-\\uCABB\\uCABD-\\uCAD7\\uCAD9-\\uCAF3\\uCAF5-\\uCB0F\\uCB11-\\uCB2B\\uCB2D-\\uCB47\\uCB49-\\uCB63\\uCB65-\\uCB7F\\uCB81-\\uCB9B\\uCB9D-\\uCBB7\\uCBB9-\\uCBD3\\uCBD5-\\uCBEF\\uCBF1-\\uCC0B\\uCC0D-\\uCC27\\uCC29-\\uCC43\\uCC45-\\uCC5F\\uCC61-\\uCC7B\\uCC7D-\\uCC97\\uCC99-\\uCCB3\\uCCB5-\\uCCCF\\uCCD1-\\uCCEB\\uCCED-\\uCD07\\uCD09-\\uCD23\\uCD25-\\uCD3F\\uCD41-\\uCD5B\\uCD5D-\\uCD77\\uCD79-\\uCD93\\uCD95-\\uCDAF\\uCDB1-\\uCDCB\\uCDCD-\\uCDE7\\uCDE9-\\uCE03\\uCE05-\\uCE1F\\uCE21-\\uCE3B\\uCE3D-\\uCE57\\uCE59-\\uCE73\\uCE75-\\uCE8F\\uCE91-\\uCEAB\\uCEAD-\\uCEC7\\uCEC9-\\uCEE3\\uCEE5-\\uCEFF\\uCF01-\\uCF1B\\uCF1D-\\uCF37\\uCF39-\\uCF53\\uCF55-\\uCF6F\\uCF71-\\uCF8B\\uCF8D-\\uCFA7\\uCFA9-\\uCFC3\\uCFC5-\\uCFDF\\uCFE1-\\uCFFB\\uCFFD-\\uD017\\uD019-\\uD033\\uD035-\\uD04F\\uD051-\\uD06B\\uD06D-\\uD087\\uD089-\\uD0A3\\uD0A5-\\uD0BF\\uD0C1-\\uD0DB\\uD0DD-\\uD0F7\\uD0F9-\\uD113\\uD115-\\uD12F\\uD131-\\uD14B\\uD14D-\\uD167\\uD169-\\uD183\\uD185-\\uD19F\\uD1A1-\\uD1BB\\uD1BD-\\uD1D7\\uD1D9-\\uD1F3\\uD1F5-\\uD20F\\uD211-\\uD22B\\uD22D-\\uD247\\uD249-\\uD263\\uD265-\\uD27F\\uD281-\\uD29B\\uD29D-\\uD2B7\\uD2B9-\\uD2D3\\uD2D5-\\uD2EF\\uD2F1-\\uD30B\\uD30D-\\uD327\\uD329-\\uD343\\uD345-\\uD35F\\uD361-\\uD37B\\uD37D-\\uD397\\uD399-\\uD3B3\\uD3B5-\\uD3CF\\uD3D1-\\uD3EB\\uD3ED-\\uD407\\uD409-\\uD423\\uD425-\\uD43F\\uD441-\\uD45B\\uD45D-\\uD477\\uD479-\\uD493\\uD495-\\uD4AF\\uD4B1-\\uD4CB\\uD4CD-\\uD4E7\\uD4E9-\\uD503\\uD505-\\uD51F\\uD521-\\uD53B\\uD53D-\\uD557\\uD559-\\uD573\\uD575-\\uD58F\\uD591-\\uD5AB\\uD5AD-\\uD5C7\\uD5C9-\\uD5E3\\uD5E5-\\uD5FF\\uD601-\\uD61B\\uD61D-\\uD637\\uD639-\\uD653\\uD655-\\uD66F\\uD671-\\uD68B\\uD68D-\\uD6A7\\uD6A9-\\uD6C3\\uD6C5-\\uD6DF\\uD6E1-\\uD6FB\\uD6FD-\\uD717\\uD719-\\uD733\\uD735-\\uD74F\\uD751-\\uD76B\\uD76D-\\uD787\\uD789-\\uD7A3]",$LinkingConsonant:"[\\u0915-\\u0939\\u0958-\\u095F\\u0978-\\u097F\\u0995-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09DC\\u09DD\\u09DF\\u09F0\\u09F1\\u0A95-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0AF9\\u0B15-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B5C\\u0B5D\\u0B5F\\u0B71\\u0C15-\\u0C28\\u0C2A-\\u0C39\\u0C58-\\u0C5A\\u0D15-\\u0D3A]",$Prepend:"(?:[\\u0600-\\u0605\\u06DD\\u070F\\u0890\\u0891\\u08E2\\u0D4E]|\\uD804[\\uDCBD\\uDCCD\\uDDC2\\uDDC3]|\\uD806[\\uDD3F\\uDD41\\uDE3A\\uDE84-\\uDE89]|\\uD807[\\uDD46\\uDF02])",$RI:"(?:\\uD83C[\\uDDE6-\\uDDFF])",$SpacingMark:"(?:[\\u0903\\u093B\\u093E-\\u0940\\u0949-\\u094C\\u094E\\u094F\\u0982\\u0983\\u09BF\\u09C0\\u09C7\\u09C8\\u09CB\\u09CC\\u0A03\\u0A3E-\\u0A40\\u0A83\\u0ABE-\\u0AC0\\u0AC9\\u0ACB\\u0ACC\\u0B02\\u0B03\\u0B40\\u0B47\\u0B48\\u0B4B\\u0B4C\\u0BBF\\u0BC1\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0C01-\\u0C03\\u0C41-\\u0C44\\u0C82\\u0C83\\u0CBE\\u0CC0\\u0CC1\\u0CC3\\u0CC4\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0CF3\\u0D02\\u0D03\\u0D3F\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D82\\u0D83\\u0DD0\\u0DD1\\u0DD8-\\u0DDE\\u0DF2\\u0DF3\\u0E33\\u0EB3\\u0F3E\\u0F3F\\u0F7F\\u1031\\u103B\\u103C\\u1056\\u1057\\u1084\\u1715\\u1734\\u17B6\\u17BE-\\u17C5\\u17C7\\u17C8\\u1923-\\u1926\\u1929-\\u192B\\u1930\\u1931\\u1933-\\u1938\\u1A19\\u1A1A\\u1A55\\u1A57\\u1A6D-\\u1A72\\u1B04\\u1B3B\\u1B3D-\\u1B41\\u1B43\\u1B44\\u1B82\\u1BA1\\u1BA6\\u1BA7\\u1BAA\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2\\u1BF3\\u1C24-\\u1C2B\\u1C34\\u1C35\\u1CE1\\u1CF7\\uA823\\uA824\\uA827\\uA880\\uA881\\uA8B4-\\uA8C3\\uA952\\uA953\\uA983\\uA9B4\\uA9B5\\uA9BA\\uA9BB\\uA9BE-\\uA9C0\\uAA2F\\uAA30\\uAA33\\uAA34\\uAA4D\\uAAEB\\uAAEE\\uAAEF\\uAAF5\\uABE3\\uABE4\\uABE6\\uABE7\\uABE9\\uABEA\\uABEC]|\\uD804[\\uDC00\\uDC02\\uDC82\\uDCB0-\\uDCB2\\uDCB7\\uDCB8\\uDD2C\\uDD45\\uDD46\\uDD82\\uDDB3-\\uDDB5\\uDDBF\\uDDC0\\uDDCE\\uDE2C-\\uDE2E\\uDE32\\uDE33\\uDE35\\uDEE0-\\uDEE2\\uDF02\\uDF03\\uDF3F\\uDF41-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF62\\uDF63]|\\uD805[\\uDC35-\\uDC37\\uDC40\\uDC41\\uDC45\\uDCB1\\uDCB2\\uDCB9\\uDCBB\\uDCBC\\uDCBE\\uDCC1\\uDDB0\\uDDB1\\uDDB8-\\uDDBB\\uDDBE\\uDE30-\\uDE32\\uDE3B\\uDE3C\\uDE3E\\uDEAC\\uDEAE\\uDEAF\\uDEB6\\uDF26]|\\uD806[\\uDC2C-\\uDC2E\\uDC38\\uDD31-\\uDD35\\uDD37\\uDD38\\uDD3D\\uDD40\\uDD42\\uDDD1-\\uDDD3\\uDDDC-\\uDDDF\\uDDE4\\uDE39\\uDE57\\uDE58\\uDE97]|\\uD807[\\uDC2F\\uDC3E\\uDCA9\\uDCB1\\uDCB4\\uDD8A-\\uDD8E\\uDD93\\uDD94\\uDD96\\uDEF5\\uDEF6\\uDF03\\uDF34\\uDF35\\uDF3E\\uDF3F\\uDF41]|\\uD81B[\\uDF51-\\uDF87\\uDFF0\\uDFF1]|\\uD834[\\uDD66\\uDD6D])",$T:"[\\u11A8-\\u11FF\\uD7CB-\\uD7FB]",$V:"[\\u1160-\\u11A7\\uD7B0-\\uD7C6]",$Virama:"[\\u094D\\u09CD\\u0ACD\\u0B4D\\u0C4D\\u0D4D]",$ZWJ:"\\u200D"}},sentence:{segmentRules:{10:{after:"($Sp|$ParaSep)",before:"$SATerm$Close*$Sp*",breaks:!1},11:{before:"$SATerm$Close*$Sp*$ParaSep?",breaks:!0},3:{after:"$LF",before:"$CR",breaks:!1},4:{before:"$ParaSep",breaks:!0},5:{after:"(?:$Format|$Extend)",breaks:!1},6:{after:"$Numeric",before:"$ATerm",breaks:!1},7:{after:"$Upper",before:"($Upper|$Lower)$ATerm",breaks:!1},8:{after:"$NotPreLower_*$Lower",before:"$ATerm$Close*$Sp*",breaks:!1},"8.1":{after:"($SContinue|$SATerm)",before:"$SATerm$Close*$Sp*",breaks:!1},9:{after:"($Close|$Sp|$ParaSep)",before:"$SATerm$Close*",breaks:!1},998:{after:"$Any",breaks:!1}},suppressions:[],variables:{$ATerm:"([\\.\\u2024\\uFE52\\uFF0E](?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$Any:"(?:[\\0-\\uD7FF\\uE000-\\uFFFF]|[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF])",$CR:"\\r",$Close:`((?:["'-\\)\\[\\]\\{\\}\\xAB\\xBB\\u0F3A-\\u0F3D\\u169B\\u169C\\u2018-\\u201F\\u2039\\u203A\\u2045\\u2046\\u207D\\u207E\\u208D\\u208E\\u2308-\\u230B\\u2329\\u232A\\u275B-\\u2760\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2E00-\\u2E0D\\u2E1C\\u2E1D\\u2E20-\\u2E29\\u2E42\\u2E55-\\u2E5C\\u3008-\\u3011\\u3014-\\u301B\\u301D-\\u301F\\uFD3E\\uFD3F\\uFE17\\uFE18\\uFE35-\\uFE44\\uFE47\\uFE48\\uFE59-\\uFE5E\\uFF08\\uFF09\\uFF3B\\uFF3D\\uFF5B\\uFF5D\\uFF5F\\uFF60\\uFF62\\uFF63]|\\uD83D[\\uDE76-\\uDE78])(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)`,$Extend:"(?:[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0898-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C\\u200D\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFF9E\\uFF9F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCC2\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC20-\\uDC7F\\uDD00-\\uDDEF])",$FE:"(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])",$Format:"(?:[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u0890\\u0891\\u08E2\\u180E\\u200B\\u200E\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD80D[\\uDC30-\\uDC3F]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40\\uDC01)",$LF:"\\n",$Lower:"((?:[a-z\\xAA\\xB5\\xBA\\xDF-\\xF6\\xF8-\\xFF\\u0101\\u0103\\u0105\\u0107\\u0109\\u010B\\u010D\\u010F\\u0111\\u0113\\u0115\\u0117\\u0119\\u011B\\u011D\\u011F\\u0121\\u0123\\u0125\\u0127\\u0129\\u012B\\u012D\\u012F\\u0131\\u0133\\u0135\\u0137\\u0138\\u013A\\u013C\\u013E\\u0140\\u0142\\u0144\\u0146\\u0148\\u0149\\u014B\\u014D\\u014F\\u0151\\u0153\\u0155\\u0157\\u0159\\u015B\\u015D\\u015F\\u0161\\u0163\\u0165\\u0167\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173\\u0175\\u0177\\u017A\\u017C\\u017E-\\u0180\\u0183\\u0185\\u0188\\u018C\\u018D\\u0192\\u0195\\u0199-\\u019B\\u019E\\u01A1\\u01A3\\u01A5\\u01A8\\u01AA\\u01AB\\u01AD\\u01B0\\u01B4\\u01B6\\u01B9\\u01BA\\u01BD-\\u01BF\\u01C6\\u01C9\\u01CC\\u01CE\\u01D0\\u01D2\\u01D4\\u01D6\\u01D8\\u01DA\\u01DC\\u01DD\\u01DF\\u01E1\\u01E3\\u01E5\\u01E7\\u01E9\\u01EB\\u01ED\\u01EF\\u01F0\\u01F3\\u01F5\\u01F9\\u01FB\\u01FD\\u01FF\\u0201\\u0203\\u0205\\u0207\\u0209\\u020B\\u020D\\u020F\\u0211\\u0213\\u0215\\u0217\\u0219\\u021B\\u021D\\u021F\\u0221\\u0223\\u0225\\u0227\\u0229\\u022B\\u022D\\u022F\\u0231\\u0233-\\u0239\\u023C\\u023F\\u0240\\u0242\\u0247\\u0249\\u024B\\u024D\\u024F-\\u0293\\u0295-\\u02B8\\u02C0\\u02C1\\u02E0-\\u02E4\\u0371\\u0373\\u0377\\u037A-\\u037D\\u0390\\u03AC-\\u03CE\\u03D0\\u03D1\\u03D5-\\u03D7\\u03D9\\u03DB\\u03DD\\u03DF\\u03E1\\u03E3\\u03E5\\u03E7\\u03E9\\u03EB\\u03ED\\u03EF-\\u03F3\\u03F5\\u03F8\\u03FB\\u03FC\\u0430-\\u045F\\u0461\\u0463\\u0465\\u0467\\u0469\\u046B\\u046D\\u046F\\u0471\\u0473\\u0475\\u0477\\u0479\\u047B\\u047D\\u047F\\u0481\\u048B\\u048D\\u048F\\u0491\\u0493\\u0495\\u0497\\u0499\\u049B\\u049D\\u049F\\u04A1\\u04A3\\u04A5\\u04A7\\u04A9\\u04AB\\u04AD\\u04AF\\u04B1\\u04B3\\u04B5\\u04B7\\u04B9\\u04BB\\u04BD\\u04BF\\u04C2\\u04C4\\u04C6\\u04C8\\u04CA\\u04CC\\u04CE\\u04CF\\u04D1\\u04D3\\u04D5\\u04D7\\u04D9\\u04DB\\u04DD\\u04DF\\u04E1\\u04E3\\u04E5\\u04E7\\u04E9\\u04EB\\u04ED\\u04EF\\u04F1\\u04F3\\u04F5\\u04F7\\u04F9\\u04FB\\u04FD\\u04FF\\u0501\\u0503\\u0505\\u0507\\u0509\\u050B\\u050D\\u050F\\u0511\\u0513\\u0515\\u0517\\u0519\\u051B\\u051D\\u051F\\u0521\\u0523\\u0525\\u0527\\u0529\\u052B\\u052D\\u052F\\u0560-\\u0588\\u10FC\\u13F8-\\u13FD\\u1C80-\\u1C88\\u1D00-\\u1DBF\\u1E01\\u1E03\\u1E05\\u1E07\\u1E09\\u1E0B\\u1E0D\\u1E0F\\u1E11\\u1E13\\u1E15\\u1E17\\u1E19\\u1E1B\\u1E1D\\u1E1F\\u1E21\\u1E23\\u1E25\\u1E27\\u1E29\\u1E2B\\u1E2D\\u1E2F\\u1E31\\u1E33\\u1E35\\u1E37\\u1E39\\u1E3B\\u1E3D\\u1E3F\\u1E41\\u1E43\\u1E45\\u1E47\\u1E49\\u1E4B\\u1E4D\\u1E4F\\u1E51\\u1E53\\u1E55\\u1E57\\u1E59\\u1E5B\\u1E5D\\u1E5F\\u1E61\\u1E63\\u1E65\\u1E67\\u1E69\\u1E6B\\u1E6D\\u1E6F\\u1E71\\u1E73\\u1E75\\u1E77\\u1E79\\u1E7B\\u1E7D\\u1E7F\\u1E81\\u1E83\\u1E85\\u1E87\\u1E89\\u1E8B\\u1E8D\\u1E8F\\u1E91\\u1E93\\u1E95-\\u1E9D\\u1E9F\\u1EA1\\u1EA3\\u1EA5\\u1EA7\\u1EA9\\u1EAB\\u1EAD\\u1EAF\\u1EB1\\u1EB3\\u1EB5\\u1EB7\\u1EB9\\u1EBB\\u1EBD\\u1EBF\\u1EC1\\u1EC3\\u1EC5\\u1EC7\\u1EC9\\u1ECB\\u1ECD\\u1ECF\\u1ED1\\u1ED3\\u1ED5\\u1ED7\\u1ED9\\u1EDB\\u1EDD\\u1EDF\\u1EE1\\u1EE3\\u1EE5\\u1EE7\\u1EE9\\u1EEB\\u1EED\\u1EEF\\u1EF1\\u1EF3\\u1EF5\\u1EF7\\u1EF9\\u1EFB\\u1EFD\\u1EFF-\\u1F07\\u1F10-\\u1F15\\u1F20-\\u1F27\\u1F30-\\u1F37\\u1F40-\\u1F45\\u1F50-\\u1F57\\u1F60-\\u1F67\\u1F70-\\u1F7D\\u1F80-\\u1F87\\u1F90-\\u1F97\\u1FA0-\\u1FA7\\u1FB0-\\u1FB4\\u1FB6\\u1FB7\\u1FBE\\u1FC2-\\u1FC4\\u1FC6\\u1FC7\\u1FD0-\\u1FD3\\u1FD6\\u1FD7\\u1FE0-\\u1FE7\\u1FF2-\\u1FF4\\u1FF6\\u1FF7\\u2071\\u207F\\u2090-\\u209C\\u210A\\u210E\\u210F\\u2113\\u212F\\u2134\\u2139\\u213C\\u213D\\u2146-\\u2149\\u214E\\u2170-\\u217F\\u2184\\u24D0-\\u24E9\\u2C30-\\u2C5F\\u2C61\\u2C65\\u2C66\\u2C68\\u2C6A\\u2C6C\\u2C71\\u2C73\\u2C74\\u2C76-\\u2C7D\\u2C81\\u2C83\\u2C85\\u2C87\\u2C89\\u2C8B\\u2C8D\\u2C8F\\u2C91\\u2C93\\u2C95\\u2C97\\u2C99\\u2C9B\\u2C9D\\u2C9F\\u2CA1\\u2CA3\\u2CA5\\u2CA7\\u2CA9\\u2CAB\\u2CAD\\u2CAF\\u2CB1\\u2CB3\\u2CB5\\u2CB7\\u2CB9\\u2CBB\\u2CBD\\u2CBF\\u2CC1\\u2CC3\\u2CC5\\u2CC7\\u2CC9\\u2CCB\\u2CCD\\u2CCF\\u2CD1\\u2CD3\\u2CD5\\u2CD7\\u2CD9\\u2CDB\\u2CDD\\u2CDF\\u2CE1\\u2CE3\\u2CE4\\u2CEC\\u2CEE\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\uA641\\uA643\\uA645\\uA647\\uA649\\uA64B\\uA64D\\uA64F\\uA651\\uA653\\uA655\\uA657\\uA659\\uA65B\\uA65D\\uA65F\\uA661\\uA663\\uA665\\uA667\\uA669\\uA66B\\uA66D\\uA681\\uA683\\uA685\\uA687\\uA689\\uA68B\\uA68D\\uA68F\\uA691\\uA693\\uA695\\uA697\\uA699\\uA69B-\\uA69D\\uA723\\uA725\\uA727\\uA729\\uA72B\\uA72D\\uA72F-\\uA731\\uA733\\uA735\\uA737\\uA739\\uA73B\\uA73D\\uA73F\\uA741\\uA743\\uA745\\uA747\\uA749\\uA74B\\uA74D\\uA74F\\uA751\\uA753\\uA755\\uA757\\uA759\\uA75B\\uA75D\\uA75F\\uA761\\uA763\\uA765\\uA767\\uA769\\uA76B\\uA76D\\uA76F-\\uA778\\uA77A\\uA77C\\uA77F\\uA781\\uA783\\uA785\\uA787\\uA78C\\uA78E\\uA791\\uA793-\\uA795\\uA797\\uA799\\uA79B\\uA79D\\uA79F\\uA7A1\\uA7A3\\uA7A5\\uA7A7\\uA7A9\\uA7AF\\uA7B5\\uA7B7\\uA7B9\\uA7BB\\uA7BD\\uA7BF\\uA7C1\\uA7C3\\uA7C8\\uA7CA\\uA7D1\\uA7D3\\uA7D5\\uA7D7\\uA7D9\\uA7F2-\\uA7F4\\uA7F6\\uA7F8-\\uA7FA\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABBF\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF41-\\uFF5A]|\\uD801[\\uDC28-\\uDC4F\\uDCD8-\\uDCFB\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDF80\\uDF83-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD803[\\uDCC0-\\uDCF2]|\\uD806[\\uDCC0-\\uDCDF]|\\uD81B[\\uDE60-\\uDE7F]|\\uD835[\\uDC1A-\\uDC33\\uDC4E-\\uDC54\\uDC56-\\uDC67\\uDC82-\\uDC9B\\uDCB6-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDCCF\\uDCEA-\\uDD03\\uDD1E-\\uDD37\\uDD52-\\uDD6B\\uDD86-\\uDD9F\\uDDBA-\\uDDD3\\uDDEE-\\uDE07\\uDE22-\\uDE3B\\uDE56-\\uDE6F\\uDE8A-\\uDEA5\\uDEC2-\\uDEDA\\uDEDC-\\uDEE1\\uDEFC-\\uDF14\\uDF16-\\uDF1B\\uDF36-\\uDF4E\\uDF50-\\uDF55\\uDF70-\\uDF88\\uDF8A-\\uDF8F\\uDFAA-\\uDFC2\\uDFC4-\\uDFC9\\uDFCB]|\\uD837[\\uDF00-\\uDF09\\uDF0B-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC30-\\uDC6D]|\\uD83A[\\uDD22-\\uDD43])(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$NotPreLower_:"(?:(?![\\n\\r!\\.\\?A-Za-z\\x85\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0560-\\u0589\\u05D0-\\u05EA\\u05EF-\\u05F3\\u061D-\\u064A\\u066E\\u066F\\u0671-\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF-\\u0702\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07F9\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0837\\u0839\\u083D\\u083E\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0964\\u0965\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u104A\\u104B\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1362\\u1367\\u1368\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166E-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1735\\u1736\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1803\\u1809\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1944\\u1945\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7-\\u1AAB\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B5A\\u1B5B\\u1B5E\\u1B5F\\u1B7D\\u1B7E\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C3B\\u1C3C\\u1C4D-\\u1C4F\\u1C5A-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2024\\u2028\\u2029\\u203C\\u203D\\u2047-\\u2049\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u24B6-\\u24E9\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2E\\u2E2F\\u2E3C\\u2E53\\u2E54\\u3002\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA4FF-\\uA60C\\uA60E-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA6F3\\uA6F7\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA876\\uA877\\uA882-\\uA8B3\\uA8CE\\uA8CF\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA92F-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9C8\\uA9C9\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA5D-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF0-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB69\\uAB70-\\uABE2\\uABEB\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE52\\uFE56\\uFE57\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF01\\uFF0E\\uFF1F\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF61\\uFF66-\\uFF9D\\uFFA0-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE56\\uDE57\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF55-\\uDF59\\uDF70-\\uDF81\\uDF86-\\uDF89\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC47\\uDC48\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCBE-\\uDCC1\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD41-\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC6\\uDDCD\\uDDDA\\uDDDC\\uDDDE\\uDDDF\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE38\\uDE39\\uDE3B\\uDE3C\\uDE3F\\uDE40\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA9\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4C\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDC2\\uDDC3\\uDDC9-\\uDDDB\\uDE00-\\uDE2F\\uDE41\\uDE42\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF3C-\\uDF3E\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDD44\\uDD46\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE42\\uDE43\\uDE50\\uDE5C-\\uDE89\\uDE9B-\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40-\\uDC42\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDEF7\\uDEF8\\uDF02\\uDF04-\\uDF10\\uDF12-\\uDF33\\uDF43\\uDF44\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883\\uD885-\\uD887][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC41-\\uDC46]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE6E-\\uDEBE\\uDED0-\\uDEED\\uDEF5\\uDF00-\\uDF2F\\uDF37\\uDF38\\uDF40-\\uDF44\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDE98\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD32\\uDD50-\\uDD52\\uDD55\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9F]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD836\\uDE88|\\uD837[\\uDF00-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC30-\\uDC6D\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDCD0-\\uDCEB\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD30-\\uDD49\\uDD50-\\uDD69\\uDD70-\\uDD89]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF39\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A\\uDF50-\\uDFFF]|\\uD888[\\uDC00-\\uDFAF])[\\s\\S])",$Numeric:"((?:[0-9\\u0660-\\u0669\\u066B\\u066C\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]|\\uD801[\\uDCA0-\\uDCA9]|\\uD803[\\uDD30-\\uDD39]|\\uD804[\\uDC66-\\uDC6F\\uDCF0-\\uDCF9\\uDD36-\\uDD3F\\uDDD0-\\uDDD9\\uDEF0-\\uDEF9]|\\uD805[\\uDC50-\\uDC59\\uDCD0-\\uDCD9\\uDE50-\\uDE59\\uDEC0-\\uDEC9\\uDF30-\\uDF39]|\\uD806[\\uDCE0-\\uDCE9\\uDD50-\\uDD59]|\\uD807[\\uDC50-\\uDC59\\uDD50-\\uDD59\\uDDA0-\\uDDA9\\uDF50-\\uDF59]|\\uD81A[\\uDE60-\\uDE69\\uDEC0-\\uDEC9\\uDF50-\\uDF59]|\\uD835[\\uDFCE-\\uDFFF]|\\uD838[\\uDD40-\\uDD49\\uDEF0-\\uDEF9]|\\uD839[\\uDCF0-\\uDCF9]|\\uD83A[\\uDD50-\\uDD59]|\\uD83E[\\uDFF0-\\uDFF9])(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$OLetter:"((?:[\\u01BB\\u01C0-\\u01C3\\u0294\\u02B9-\\u02BF\\u02C6-\\u02D1\\u02EC\\u02EE\\u0374\\u0559\\u05D0-\\u05EA\\u05EF-\\u05F3\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10D0-\\u10FA\\u10FD-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u2135-\\u2138\\u2180-\\u2182\\u2185-\\u2188\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\u31F0-\\u31FF\\u3400-\\u4DBF\\u4E00-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA66E\\uA67F\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA788\\uA78F\\uA7F7\\uA7FB-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF66-\\uFF9D\\uFFA0-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC50-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF81\\uDF82]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE3F\\uDE40\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8\\uDF00-\\uDF1A\\uDF40-\\uDF46]|\\uD806[\\uDC00-\\uDC2B\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDF02\\uDF04-\\uDF10\\uDF12-\\uDF33\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|[\\uD80C\\uD81C-\\uD820\\uD822\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872\\uD874-\\uD879\\uD880-\\uD883\\uD885-\\uD887][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC41-\\uDC46]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD821[\\uDC00-\\uDFF7]|\\uD823[\\uDC00-\\uDCD5\\uDD00-\\uDD08]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00-\\uDD22\\uDD32\\uDD50-\\uDD52\\uDD55\\uDD64-\\uDD67\\uDD70-\\uDEFB]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD837\\uDF0A|\\uD838[\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDCD0-\\uDCEB\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDEDF\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF39\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1\\uDEB0-\\uDFFF]|\\uD87A[\\uDC00-\\uDFE0]|\\uD87E[\\uDC00-\\uDE1D]|\\uD884[\\uDC00-\\uDF4A\\uDF50-\\uDFFF]|\\uD888[\\uDC00-\\uDFAF])(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$ParaSep:"([\\x85\\u2028\\u2029]|\\r|\\n)",$SATerm:"(((?:[!\\?\\u0589\\u061D-\\u061F\\u06D4\\u0700-\\u0702\\u07F9\\u0837\\u0839\\u083D\\u083E\\u0964\\u0965\\u104A\\u104B\\u1362\\u1367\\u1368\\u166E\\u1735\\u1736\\u1803\\u1809\\u1944\\u1945\\u1AA8-\\u1AAB\\u1B5A\\u1B5B\\u1B5E\\u1B5F\\u1B7D\\u1B7E\\u1C3B\\u1C3C\\u1C7E\\u1C7F\\u203C\\u203D\\u2047-\\u2049\\u2E2E\\u2E3C\\u2E53\\u2E54\\u3002\\uA4FF\\uA60E\\uA60F\\uA6F3\\uA6F7\\uA876\\uA877\\uA8CE\\uA8CF\\uA92F\\uA9C8\\uA9C9\\uAA5D-\\uAA5F\\uAAF0\\uAAF1\\uABEB\\uFE56\\uFE57\\uFF01\\uFF1F\\uFF61]|\\uD802[\\uDE56\\uDE57]|\\uD803[\\uDF55-\\uDF59\\uDF86-\\uDF89]|\\uD804[\\uDC47\\uDC48\\uDCBE-\\uDCC1\\uDD41-\\uDD43\\uDDC5\\uDDC6\\uDDCD\\uDDDE\\uDDDF\\uDE38\\uDE39\\uDE3B\\uDE3C\\uDEA9]|\\uD805[\\uDC4B\\uDC4C\\uDDC2\\uDDC3\\uDDC9-\\uDDD7\\uDE41\\uDE42\\uDF3C-\\uDF3E]|\\uD806[\\uDD44\\uDD46\\uDE42\\uDE43\\uDE9B\\uDE9C]|\\uD807[\\uDC41\\uDC42\\uDEF7\\uDEF8\\uDF43\\uDF44]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37\\uDF38\\uDF44]|\\uD81B\\uDE98|\\uD82F\\uDC9F|\\uD836\\uDE88)(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)|([\\.\\u2024\\uFE52\\uFF0E](?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*))",$SContinue:"([,\\x2D:\\u055D\\u060C\\u060D\\u07F8\\u1802\\u1808\\u2013\\u2014\\u3001\\uFE10\\uFE11\\uFE13\\uFE31\\uFE32\\uFE50\\uFE51\\uFE55\\uFE58\\uFE63\\uFF0C\\uFF0D\\uFF1A\\uFF64](?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$STerm:"((?:[!\\?\\u0589\\u061D-\\u061F\\u06D4\\u0700-\\u0702\\u07F9\\u0837\\u0839\\u083D\\u083E\\u0964\\u0965\\u104A\\u104B\\u1362\\u1367\\u1368\\u166E\\u1735\\u1736\\u1803\\u1809\\u1944\\u1945\\u1AA8-\\u1AAB\\u1B5A\\u1B5B\\u1B5E\\u1B5F\\u1B7D\\u1B7E\\u1C3B\\u1C3C\\u1C7E\\u1C7F\\u203C\\u203D\\u2047-\\u2049\\u2E2E\\u2E3C\\u2E53\\u2E54\\u3002\\uA4FF\\uA60E\\uA60F\\uA6F3\\uA6F7\\uA876\\uA877\\uA8CE\\uA8CF\\uA92F\\uA9C8\\uA9C9\\uAA5D-\\uAA5F\\uAAF0\\uAAF1\\uABEB\\uFE56\\uFE57\\uFF01\\uFF1F\\uFF61]|\\uD802[\\uDE56\\uDE57]|\\uD803[\\uDF55-\\uDF59\\uDF86-\\uDF89]|\\uD804[\\uDC47\\uDC48\\uDCBE-\\uDCC1\\uDD41-\\uDD43\\uDDC5\\uDDC6\\uDDCD\\uDDDE\\uDDDF\\uDE38\\uDE39\\uDE3B\\uDE3C\\uDEA9]|\\uD805[\\uDC4B\\uDC4C\\uDDC2\\uDDC3\\uDDC9-\\uDDD7\\uDE41\\uDE42\\uDF3C-\\uDF3E]|\\uD806[\\uDD44\\uDD46\\uDE42\\uDE43\\uDE9B\\uDE9C]|\\uD807[\\uDC41\\uDC42\\uDEF7\\uDEF8\\uDF43\\uDF44]|\\uD81A[\\uDE6E\\uDE6F\\uDEF5\\uDF37\\uDF38\\uDF44]|\\uD81B\\uDE98|\\uD82F\\uDC9F|\\uD836\\uDE88)(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$Sep:"[\\x85\\u2028\\u2029]",$Sp:"([\\t\\x0B\\f \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000](?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$Upper:"((?:[A-Z\\xC0-\\xD6\\xD8-\\xDE\\u0100\\u0102\\u0104\\u0106\\u0108\\u010A\\u010C\\u010E\\u0110\\u0112\\u0114\\u0116\\u0118\\u011A\\u011C\\u011E\\u0120\\u0122\\u0124\\u0126\\u0128\\u012A\\u012C\\u012E\\u0130\\u0132\\u0134\\u0136\\u0139\\u013B\\u013D\\u013F\\u0141\\u0143\\u0145\\u0147\\u014A\\u014C\\u014E\\u0150\\u0152\\u0154\\u0156\\u0158\\u015A\\u015C\\u015E\\u0160\\u0162\\u0164\\u0166\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172\\u0174\\u0176\\u0178\\u0179\\u017B\\u017D\\u0181\\u0182\\u0184\\u0186\\u0187\\u0189-\\u018B\\u018E-\\u0191\\u0193\\u0194\\u0196-\\u0198\\u019C\\u019D\\u019F\\u01A0\\u01A2\\u01A4\\u01A6\\u01A7\\u01A9\\u01AC\\u01AE\\u01AF\\u01B1-\\u01B3\\u01B5\\u01B7\\u01B8\\u01BC\\u01C4\\u01C5\\u01C7\\u01C8\\u01CA\\u01CB\\u01CD\\u01CF\\u01D1\\u01D3\\u01D5\\u01D7\\u01D9\\u01DB\\u01DE\\u01E0\\u01E2\\u01E4\\u01E6\\u01E8\\u01EA\\u01EC\\u01EE\\u01F1\\u01F2\\u01F4\\u01F6-\\u01F8\\u01FA\\u01FC\\u01FE\\u0200\\u0202\\u0204\\u0206\\u0208\\u020A\\u020C\\u020E\\u0210\\u0212\\u0214\\u0216\\u0218\\u021A\\u021C\\u021E\\u0220\\u0222\\u0224\\u0226\\u0228\\u022A\\u022C\\u022E\\u0230\\u0232\\u023A\\u023B\\u023D\\u023E\\u0241\\u0243-\\u0246\\u0248\\u024A\\u024C\\u024E\\u0370\\u0372\\u0376\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E\\u038F\\u0391-\\u03A1\\u03A3-\\u03AB\\u03CF\\u03D2-\\u03D4\\u03D8\\u03DA\\u03DC\\u03DE\\u03E0\\u03E2\\u03E4\\u03E6\\u03E8\\u03EA\\u03EC\\u03EE\\u03F4\\u03F7\\u03F9\\u03FA\\u03FD-\\u042F\\u0460\\u0462\\u0464\\u0466\\u0468\\u046A\\u046C\\u046E\\u0470\\u0472\\u0474\\u0476\\u0478\\u047A\\u047C\\u047E\\u0480\\u048A\\u048C\\u048E\\u0490\\u0492\\u0494\\u0496\\u0498\\u049A\\u049C\\u049E\\u04A0\\u04A2\\u04A4\\u04A6\\u04A8\\u04AA\\u04AC\\u04AE\\u04B0\\u04B2\\u04B4\\u04B6\\u04B8\\u04BA\\u04BC\\u04BE\\u04C0\\u04C1\\u04C3\\u04C5\\u04C7\\u04C9\\u04CB\\u04CD\\u04D0\\u04D2\\u04D4\\u04D6\\u04D8\\u04DA\\u04DC\\u04DE\\u04E0\\u04E2\\u04E4\\u04E6\\u04E8\\u04EA\\u04EC\\u04EE\\u04F0\\u04F2\\u04F4\\u04F6\\u04F8\\u04FA\\u04FC\\u04FE\\u0500\\u0502\\u0504\\u0506\\u0508\\u050A\\u050C\\u050E\\u0510\\u0512\\u0514\\u0516\\u0518\\u051A\\u051C\\u051E\\u0520\\u0522\\u0524\\u0526\\u0528\\u052A\\u052C\\u052E\\u0531-\\u0556\\u10A0-\\u10C5\\u10C7\\u10CD\\u13A0-\\u13F5\\u1E00\\u1E02\\u1E04\\u1E06\\u1E08\\u1E0A\\u1E0C\\u1E0E\\u1E10\\u1E12\\u1E14\\u1E16\\u1E18\\u1E1A\\u1E1C\\u1E1E\\u1E20\\u1E22\\u1E24\\u1E26\\u1E28\\u1E2A\\u1E2C\\u1E2E\\u1E30\\u1E32\\u1E34\\u1E36\\u1E38\\u1E3A\\u1E3C\\u1E3E\\u1E40\\u1E42\\u1E44\\u1E46\\u1E48\\u1E4A\\u1E4C\\u1E4E\\u1E50\\u1E52\\u1E54\\u1E56\\u1E58\\u1E5A\\u1E5C\\u1E5E\\u1E60\\u1E62\\u1E64\\u1E66\\u1E68\\u1E6A\\u1E6C\\u1E6E\\u1E70\\u1E72\\u1E74\\u1E76\\u1E78\\u1E7A\\u1E7C\\u1E7E\\u1E80\\u1E82\\u1E84\\u1E86\\u1E88\\u1E8A\\u1E8C\\u1E8E\\u1E90\\u1E92\\u1E94\\u1E9E\\u1EA0\\u1EA2\\u1EA4\\u1EA6\\u1EA8\\u1EAA\\u1EAC\\u1EAE\\u1EB0\\u1EB2\\u1EB4\\u1EB6\\u1EB8\\u1EBA\\u1EBC\\u1EBE\\u1EC0\\u1EC2\\u1EC4\\u1EC6\\u1EC8\\u1ECA\\u1ECC\\u1ECE\\u1ED0\\u1ED2\\u1ED4\\u1ED6\\u1ED8\\u1EDA\\u1EDC\\u1EDE\\u1EE0\\u1EE2\\u1EE4\\u1EE6\\u1EE8\\u1EEA\\u1EEC\\u1EEE\\u1EF0\\u1EF2\\u1EF4\\u1EF6\\u1EF8\\u1EFA\\u1EFC\\u1EFE\\u1F08-\\u1F0F\\u1F18-\\u1F1D\\u1F28-\\u1F2F\\u1F38-\\u1F3F\\u1F48-\\u1F4D\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F68-\\u1F6F\\u1F88-\\u1F8F\\u1F98-\\u1F9F\\u1FA8-\\u1FAF\\u1FB8-\\u1FBC\\u1FC8-\\u1FCC\\u1FD8-\\u1FDB\\u1FE8-\\u1FEC\\u1FF8-\\u1FFC\\u2102\\u2107\\u210B-\\u210D\\u2110-\\u2112\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u2130-\\u2133\\u213E\\u213F\\u2145\\u2160-\\u216F\\u2183\\u24B6-\\u24CF\\u2C00-\\u2C2F\\u2C60\\u2C62-\\u2C64\\u2C67\\u2C69\\u2C6B\\u2C6D-\\u2C70\\u2C72\\u2C75\\u2C7E-\\u2C80\\u2C82\\u2C84\\u2C86\\u2C88\\u2C8A\\u2C8C\\u2C8E\\u2C90\\u2C92\\u2C94\\u2C96\\u2C98\\u2C9A\\u2C9C\\u2C9E\\u2CA0\\u2CA2\\u2CA4\\u2CA6\\u2CA8\\u2CAA\\u2CAC\\u2CAE\\u2CB0\\u2CB2\\u2CB4\\u2CB6\\u2CB8\\u2CBA\\u2CBC\\u2CBE\\u2CC0\\u2CC2\\u2CC4\\u2CC6\\u2CC8\\u2CCA\\u2CCC\\u2CCE\\u2CD0\\u2CD2\\u2CD4\\u2CD6\\u2CD8\\u2CDA\\u2CDC\\u2CDE\\u2CE0\\u2CE2\\u2CEB\\u2CED\\u2CF2\\uA640\\uA642\\uA644\\uA646\\uA648\\uA64A\\uA64C\\uA64E\\uA650\\uA652\\uA654\\uA656\\uA658\\uA65A\\uA65C\\uA65E\\uA660\\uA662\\uA664\\uA666\\uA668\\uA66A\\uA66C\\uA680\\uA682\\uA684\\uA686\\uA688\\uA68A\\uA68C\\uA68E\\uA690\\uA692\\uA694\\uA696\\uA698\\uA69A\\uA722\\uA724\\uA726\\uA728\\uA72A\\uA72C\\uA72E\\uA732\\uA734\\uA736\\uA738\\uA73A\\uA73C\\uA73E\\uA740\\uA742\\uA744\\uA746\\uA748\\uA74A\\uA74C\\uA74E\\uA750\\uA752\\uA754\\uA756\\uA758\\uA75A\\uA75C\\uA75E\\uA760\\uA762\\uA764\\uA766\\uA768\\uA76A\\uA76C\\uA76E\\uA779\\uA77B\\uA77D\\uA77E\\uA780\\uA782\\uA784\\uA786\\uA78B\\uA78D\\uA790\\uA792\\uA796\\uA798\\uA79A\\uA79C\\uA79E\\uA7A0\\uA7A2\\uA7A4\\uA7A6\\uA7A8\\uA7AA-\\uA7AE\\uA7B0-\\uA7B4\\uA7B6\\uA7B8\\uA7BA\\uA7BC\\uA7BE\\uA7C0\\uA7C2\\uA7C4-\\uA7C7\\uA7C9\\uA7D0\\uA7D6\\uA7D8\\uA7F5\\uFF21-\\uFF3A]|\\uD801[\\uDC00-\\uDC27\\uDCB0-\\uDCD3\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95]|\\uD803[\\uDC80-\\uDCB2]|\\uD806[\\uDCA0-\\uDCBF]|\\uD81B[\\uDE40-\\uDE5F]|\\uD835[\\uDC00-\\uDC19\\uDC34-\\uDC4D\\uDC68-\\uDC81\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB5\\uDCD0-\\uDCE9\\uDD04\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD38\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD6C-\\uDD85\\uDDA0-\\uDDB9\\uDDD4-\\uDDED\\uDE08-\\uDE21\\uDE3C-\\uDE55\\uDE70-\\uDE89\\uDEA8-\\uDEC0\\uDEE2-\\uDEFA\\uDF1C-\\uDF34\\uDF56-\\uDF6E\\uDF90-\\uDFA8\\uDFCA]|\\uD83A[\\uDD00-\\uDD21]|\\uD83C[\\uDD30-\\uDD49\\uDD50-\\uDD69\\uDD70-\\uDD89])(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200B-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)"}},word:{segmentRules:{10:{after:"$AHLetter",before:"$Numeric",breaks:!1},11:{after:"$Numeric",before:"$Numeric($MidNum|$MidNumLetQ)",breaks:!1},12:{after:"($MidNum|$MidNumLetQ)$Numeric",before:"$Numeric",breaks:!1},13:{after:"$Katakana",before:"$Katakana",breaks:!1},"13.1":{after:"$ExtendNumLet",before:"($AHLetter|$Numeric|$Katakana|$ExtendNumLet)",breaks:!1},"13.2":{after:"($AHLetter|$Numeric|$Katakana)",before:"$ExtendNumLet",breaks:!1},15:{after:"$RI",before:"^($RI$RI)*$RI",breaks:!1},16:{after:"$RI",before:"[^\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB\\uDDFD\\uDEE0\\uDF76-\\uDF7A\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42\\uDC30-\\uDC40\\uDC47-\\uDC55\\uDEF0-\\uDEF4\\uDF30-\\uDF36\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1\\uDC9D\\uDC9E\\uDCA0-\\uDCA3\\uDF00-\\uDF2D\\uDF30-\\uDF46\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF\\uDCEC-\\uDCEF\\uDCD0-\\uDCD6\\uDD44-\\uDD4A\\uDDE6-\\uDDFF\\uDFFB-\\uDFFF\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF]($RI$RI)*$RI",breaks:!1},3:{after:"$LF",before:"$CR",breaks:!1},"3.1":{before:"($Newline|$CR|$LF)",breaks:!0},"3.2":{after:"($Newline|$CR|$LF)",breaks:!0},"3.3":{after:"$ExtPict",before:"$ZWJ",breaks:!1},"3.4":{after:"$WSegSpace",before:"$WSegSpace",breaks:!1},4:{after:"(?:$Format|$Extend|$ZWJ)",before:"$NotBreak_",breaks:!1},5:{after:"$AHLetter",before:"$AHLetter",breaks:!1},6:{after:"($MidLetter|$MidNumLetQ)$AHLetter",before:"$AHLetter",breaks:!1},7:{after:"$AHLetter",before:"$AHLetter($MidLetter|$MidNumLetQ)",breaks:!1},"7.1":{after:"$Single_Quote",before:"$Hebrew_Letter",breaks:!1},"7.2":{after:"$Double_Quote$Hebrew_Letter",before:"$Hebrew_Letter",breaks:!1},"7.3":{after:"$Hebrew_Letter",before:"$Hebrew_Letter$Double_Quote",breaks:!1},8:{after:"$Numeric",before:"$Numeric",breaks:!1},9:{after:"$Numeric",before:"$AHLetter",breaks:!1}},suppressions:[],variables:{$AHLetter:"(((?:[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02D7\\u02DE-\\u02FF\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559-\\u055C\\u055E\\u0560-\\u0588\\u058A\\u05F3\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1A00-\\u1A16\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u24B6-\\u24E9\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u303B\\u303C\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA708-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB50-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFFA0-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE3F\\uDE40\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDF02\\uDF04-\\uDF10\\uDF12-\\uDF33\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|\\uD80C[\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC41-\\uDC46]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC30-\\uDC6D\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDCD0-\\uDCEB\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD30-\\uDD49\\uDD50-\\uDD69\\uDD70-\\uDD89])|[\\u05D0-\\u05EA\\u05EF-\\u05F2\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFB4F])(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$ALetter:"((?:[A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02D7\\u02DE-\\u02FF\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559-\\u055C\\u055E\\u0560-\\u0588\\u058A\\u05F3\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u0860-\\u086A\\u0870-\\u0887\\u0889-\\u088E\\u08A0-\\u08C9\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C5D\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D04-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u1711\\u171F-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1820-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1A00-\\u1A16\\u1B05-\\u1B33\\u1B45-\\u1B4C\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1CE9-\\u1CEC\\u1CEE-\\u1CF3\\u1CF5\\u1CF6\\u1CFA\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u24B6-\\u24E9\\u2C00-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u303B\\u303C\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BF\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA708-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA7F2-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB69\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB50-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFFA0-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF2D-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCB0-\\uDCD3\\uDCD8-\\uDCFB\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDD70-\\uDD7A\\uDD7C-\\uDD8A\\uDD8C-\\uDD92\\uDD94\\uDD95\\uDD97-\\uDDA1\\uDDA3-\\uDDB1\\uDDB3-\\uDDB9\\uDDBB\\uDDBC\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67\\uDF80-\\uDF85\\uDF87-\\uDFB0\\uDFB2-\\uDFBA]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE35\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2\\uDD00-\\uDD23\\uDE80-\\uDEA9\\uDEB0\\uDEB1\\uDF00-\\uDF1C\\uDF27\\uDF30-\\uDF45\\uDF70-\\uDF81\\uDFB0-\\uDFC4\\uDFE0-\\uDFF6]|\\uD804[\\uDC03-\\uDC37\\uDC71\\uDC72\\uDC75\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD44\\uDD47\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE3F\\uDE40\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC00-\\uDC34\\uDC47-\\uDC4A\\uDC5F-\\uDC61\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDEB8]|\\uD806[\\uDC00-\\uDC2B\\uDCA0-\\uDCDF\\uDCFF-\\uDD06\\uDD09\\uDD0C-\\uDD13\\uDD15\\uDD16\\uDD18-\\uDD2F\\uDD3F\\uDD41\\uDDA0-\\uDDA7\\uDDAA-\\uDDD0\\uDDE1\\uDDE3\\uDE00\\uDE0B-\\uDE32\\uDE3A\\uDE50\\uDE5C-\\uDE89\\uDE9D\\uDEB0-\\uDEF8]|\\uD807[\\uDC00-\\uDC08\\uDC0A-\\uDC2E\\uDC40\\uDC72-\\uDC8F\\uDD00-\\uDD06\\uDD08\\uDD09\\uDD0B-\\uDD30\\uDD46\\uDD60-\\uDD65\\uDD67\\uDD68\\uDD6A-\\uDD89\\uDD98\\uDEE0-\\uDEF2\\uDF02\\uDF04-\\uDF10\\uDF12-\\uDF33\\uDFB0]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|\\uD80B[\\uDF90-\\uDFF0]|\\uD80C[\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2F\\uDC41-\\uDC46]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE70-\\uDEBE\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDE40-\\uDE7F\\uDF00-\\uDF4A\\uDF50\\uDF93-\\uDF9F\\uDFE0\\uDFE1\\uDFE3]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD837[\\uDF00-\\uDF1E\\uDF25-\\uDF2A]|\\uD838[\\uDC30-\\uDC6D\\uDD00-\\uDD2C\\uDD37-\\uDD3D\\uDD4E\\uDE90-\\uDEAD\\uDEC0-\\uDEEB]|\\uD839[\\uDCD0-\\uDCEB\\uDFE0-\\uDFE6\\uDFE8-\\uDFEB\\uDFED\\uDFEE\\uDFF0-\\uDFFE]|\\uD83A[\\uDC00-\\uDCC4\\uDD00-\\uDD43\\uDD4B]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD83C[\\uDD30-\\uDD49\\uDD50-\\uDD69\\uDD70-\\uDD89])(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$CR:"\\r",$Double_Quote:'("(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)',$ExtPict:"(?:[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u2388\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2605\\u2607-\\u2612\\u2614-\\u2685\\u2690-\\u2705\\u2708-\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763-\\u2767\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC00-\\uDCFF\\uDD0D-\\uDD0F\\uDD2F\\uDD6C-\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDAD-\\uDDE5\\uDE01-\\uDE0F\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE3C-\\uDE3F\\uDE49-\\uDFFA]|\\uD83D[\\uDC00-\\uDD3D\\uDD46-\\uDE4F\\uDE80-\\uDEFF\\uDF74-\\uDF7F\\uDFD5-\\uDFFF]|\\uD83E[\\uDC0C-\\uDC0F\\uDC48-\\uDC4F\\uDC5A-\\uDC5F\\uDC88-\\uDC8F\\uDCAE-\\uDCFF\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDEFF]|\\uD83F[\\uDC00-\\uDFFD])",$Extend:"(?:[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0898-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFF9E\\uFF9F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCC2\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC20-\\uDC7F\\uDD00-\\uDDEF])",$ExtendNumLet:"([_\\u202F\\u203F\\u2040\\u2054\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFF3F](?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$FE:"(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])",$Format:"(?:[\\xAD\\u0600-\\u0605\\u061C\\u06DD\\u070F\\u0890\\u0891\\u08E2\\u180E\\u200E\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\uFEFF\\uFFF9-\\uFFFB]|\\uD804[\\uDCBD\\uDCCD]|\\uD80D[\\uDC30-\\uDC3F]|\\uD82F[\\uDCA0-\\uDCA3]|\\uD834[\\uDD73-\\uDD7A]|\\uDB40\\uDC01)",$Hebrew_Letter:"([\\u05D0-\\u05EA\\u05EF-\\u05F2\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFB4F](?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$Katakana:"((?:[\\u3031-\\u3035\\u309B\\u309C\\u30A0-\\u30FA\\u30FC-\\u30FF\\u31F0-\\u31FF\\u32D0-\\u32FE\\u3300-\\u3357\\uFF66-\\uFF9D]|\\uD82B[\\uDFF0-\\uDFF3\\uDFF5-\\uDFFB\\uDFFD\\uDFFE]|\\uD82C[\\uDC00\\uDD20-\\uDD22\\uDD55\\uDD64-\\uDD67])(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$LF:"\\n",$MidLetter:"([\\xB7\\u0387\\u055F\\u05F4\\u2027\\uFE13](?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$MidNum:"([,;\\u037E\\u0589\\u060C\\u060D\\u066C\\u07F8\\u2044\\uFE10\\uFE14\\uFE50\\uFE54\\uFF0C\\uFF1B](?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$MidNumLet:"([\\.\\u2018\\u2019\\u2024\\uFE52\\uFF07\\uFF0E](?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$MidNumLetQ:"(([\\.\\u2018\\u2019\\u2024\\uFE52\\uFF07\\uFF0E]|')(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$Newline:"[\\x0B\\f\\x85\\u2028\\u2029]",$NotBreak_:"(?:(?![\\n-\\r\\x85\\u2028\\u2029])[\\s\\S])",$Numeric:"((?:[0-9\\u0660-\\u0669\\u066B\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]|\\uD801[\\uDCA0-\\uDCA9]|\\uD803[\\uDD30-\\uDD39]|\\uD804[\\uDC66-\\uDC6F\\uDCF0-\\uDCF9\\uDD36-\\uDD3F\\uDDD0-\\uDDD9\\uDEF0-\\uDEF9]|\\uD805[\\uDC50-\\uDC59\\uDCD0-\\uDCD9\\uDE50-\\uDE59\\uDEC0-\\uDEC9\\uDF30-\\uDF39]|\\uD806[\\uDCE0-\\uDCE9\\uDD50-\\uDD59]|\\uD807[\\uDC50-\\uDC59\\uDD50-\\uDD59\\uDDA0-\\uDDA9\\uDF50-\\uDF59]|\\uD81A[\\uDE60-\\uDE69\\uDEC0-\\uDEC9\\uDF50-\\uDF59]|\\uD835[\\uDFCE-\\uDFFF]|\\uD838[\\uDD40-\\uDD49\\uDEF0-\\uDEF9]|\\uD839[\\uDCF0-\\uDCF9]|\\uD83A[\\uDD50-\\uDD59]|\\uD83E[\\uDFF0-\\uDFF9])(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$RI:"((?:\\uD83C[\\uDDE6-\\uDDFF])(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$Single_Quote:"('(?:[\\xAD\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0600-\\u0605\\u0610-\\u061A\\u061C\\u064B-\\u065F\\u0670\\u06D6-\\u06DD\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u070F\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0890\\u0891\\u0898-\\u089F\\u08CA-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C04\\u0C3C\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0CF3\\u0D00-\\u0D03\\u0D3B\\u0D3C\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81-\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1715\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF4\\u1CF7-\\u1CF9\\u1DC0-\\u1DFF\\u200C-\\u200F\\u202A-\\u202E\\u2060-\\u2064\\u2066-\\u206F\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA82C\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFEFF\\uFF9E\\uFF9F\\uFFF9-\\uFFFB]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC00-\\uDC02\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC82\\uDCB0-\\uDCBA\\uDCBD\\uDCC2\\uDCCD\\uDD00-\\uDD02\\uDD27-\\uDD34\\uDD45\\uDD46\\uDD73\\uDD80-\\uDD82\\uDDB3-\\uDDC0\\uDDC9-\\uDDCC\\uDDCE\\uDDCF\\uDE2C-\\uDE37\\uDE3E\\uDE41\\uDEDF-\\uDEEA\\uDF00-\\uDF03\\uDF3B\\uDF3C\\uDF3E-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF57\\uDF62\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC35-\\uDC46\\uDC5E\\uDCB0-\\uDCC3\\uDDAF-\\uDDB5\\uDDB8-\\uDDC0\\uDDDC\\uDDDD\\uDE30-\\uDE40\\uDEAB-\\uDEB7\\uDF1D-\\uDF2B]|\\uD806[\\uDC2C-\\uDC3A\\uDD30-\\uDD35\\uDD37\\uDD38\\uDD3B-\\uDD3E\\uDD40\\uDD42\\uDD43\\uDDD1-\\uDDD7\\uDDDA-\\uDDE0\\uDDE4\\uDE01-\\uDE0A\\uDE33-\\uDE39\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE5B\\uDE8A-\\uDE99]|\\uD807[\\uDC2F-\\uDC36\\uDC38-\\uDC3F\\uDC92-\\uDCA7\\uDCA9-\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD8A-\\uDD8E\\uDD90\\uDD91\\uDD93-\\uDD97\\uDEF3-\\uDEF6\\uDF00\\uDF01\\uDF03\\uDF34-\\uDF3A\\uDF3E-\\uDF42]|\\uD80D[\\uDC30-\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF51-\\uDF87\\uDF8F-\\uDF92\\uDFE4\\uDFF0\\uDFF1]|\\uD82F[\\uDC9D\\uDC9E\\uDCA0-\\uDCA3]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC01\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*)",$WSegSpace:"[ \\u1680\\u2000-\\u2006\\u2008-\\u200A\\u205F\\u3000]",$ZWJ:"\\u200D"}}},ru:{sentence:{segmentRules:{},suppressions:["руб.","янв.","до н. э.","сент.","тел.","дек.","февр.","нояб.","апр.","н. э.","окт.","тыс.","авг.","проф.","н.э.","кв.","ул.","отд."],variables:{}}},zh:{}};var T={};Object.defineProperty(T,"__esModule",{value:!0});var fD=T.isSurrogate=gD=T.replaceVariables=void 0,mD=function(u,D){var C=/\$[A-Za-z0-9_]+/gm;return D.replaceAll(C,function(F){if(!(F in u))throw new Error("No such variable ".concat(F));return u[F]})},gD=T.replaceVariables=mD,dD=function(u,D){return 55296<=u.charCodeAt(D-1)&&u.charCodeAt(D-1)<=56319&&56320<=u.charCodeAt(D)&&u.charCodeAt(D)<=57343};fD=T.isSurrogate=dD;function ku(u){return Intl.getCanonicalLocales(u)}function vD(u,D){var C=D.zoneNames,F=D.uppercaseLinks,A=u.toUpperCase(),E=C.reduce(function(e,t){return e[t.toUpperCase()]=t,e},{}),B=F[A]||E[A];return B==="Etc/UTC"||B==="Etc/GMT"?"UTC":B}function Eu(u){if(typeof u=="symbol")throw TypeError("Cannot convert a Symbol value to a string");return String(u)}function Ru(u){if(u===void 0)return NaN;if(u===null)return 0;if(typeof u=="boolean")return u?1:0;if(typeof u=="number")return u;if(typeof u=="symbol"||typeof u=="bigint")throw new TypeError("Cannot convert symbol/bigint to number");return Number(u)}function pD(u){var D=Ru(u);if(isNaN(D)||k(D,-0))return 0;if(isFinite(D))return D;var C=Math.floor(Math.abs(D));return D<0&&(C=-C),k(C,-0)?0:C}function bD(u){return isFinite(u)?Math.abs(u)>8.64*1e15?NaN:pD(u):NaN}function Bu(u){if(u==null)throw new TypeError("undefined/null cannot be converted to object");return Object(u)}function k(u,D){return Object.is?Object.is(u,D):u===D?u!==0||1/u===1/D:u!==u&&D!==D}function Mu(u){return new Array(u)}function Tu(u,D){return Object.prototype.hasOwnProperty.call(u,D)}function hD(u){if(u===null)return"Null";if(typeof u>"u")return"Undefined";if(typeof u=="function"||typeof u=="object")return"Object";if(typeof u=="number")return"Number";if(typeof u=="boolean")return"Boolean";if(typeof u=="string")return"String";if(typeof u=="symbol")return"Symbol";if(typeof u=="bigint")return"BigInt"}var Ou=864e5;function U(u,D){return u-Math.floor(u/D)*D}function eu(u){return Math.floor(u/Ou)}function yD(u){return U(eu(u)+4,7)}function Pu(u){return Date.UTC(u,0)/Ou}function SD(u){return Date.UTC(u,0)}function ru(u){return new Date(u).getUTCFullYear()}function _u(u){return u%4!==0?365:u%100!==0?366:u%400!==0?365:366}function tu(u){return eu(u)-Pu(ru(u))}function nu(u){return _u(ru(u))===365?0:1}function ju(u){var D=tu(u),C=nu(u);if(D>=0&&D<31)return 0;if(D<59+C)return 1;if(D<90+C)return 2;if(D<120+C)return 3;if(D<151+C)return 4;if(D<181+C)return 5;if(D<212+C)return 6;if(D<243+C)return 7;if(D<273+C)return 8;if(D<304+C)return 9;if(D<334+C)return 10;if(D<365+C)return 11;throw new Error("Invalid time")}function $D(u){var D=tu(u),C=ju(u),F=nu(u);if(C===0)return D+1;if(C===1)return D-30;if(C===2)return D-58-F;if(C===3)return D-89-F;if(C===4)return D-119-F;if(C===5)return D-150-F;if(C===6)return D-180-F;if(C===7)return D-211-F;if(C===8)return D-242-F;if(C===9)return D-272-F;if(C===10)return D-303-F;if(C===11)return D-333-F;throw new Error("Invalid time")}var ID=24,Uu=60,zu=60,au=1e3,Hu=au*zu,ND=Hu*Uu;function wD(u){return U(Math.floor(u/ND),ID)}function xD(u){return U(Math.floor(u/Hu),Uu)}function LD(u){return U(Math.floor(u/au),zu)}function kD(u){return typeof u=="function"}function RD(u,D,C){if(!kD(u))return!1;if(C!=null&&C.boundTargetFunction){var F=C==null?void 0:C.boundTargetFunction;return D instanceof F}if(typeof D!="object")return!1;var A=u.prototype;if(typeof A!="object")throw new TypeError("OrdinaryHasInstance called on an object with an invalid prototype property.");return Object.prototype.isPrototypeOf.call(A,D)}function MD(u){return U(u,au)}function Vu(u){return typeof u>"u"?Object.create(null):Bu(u)}function _(u,D,C,F){if(u===void 0)return F;var A=Number(u);if(isNaN(A)||AC)throw new RangeError("".concat(A," is outside of range [").concat(D,", ").concat(C,"]"));return Math.floor(A)}function iu(u,D,C,F,A){var E=u[D];return _(E,C,F,A)}function v(u,D,C,F,A){if(typeof u!="object")throw new TypeError("Options must be an object");var E=u[D];if(E!==void 0){if(C!=="boolean"&&C!=="string")throw new TypeError("invalid type");if(C==="boolean"&&(E=!!E),C==="string"&&(E=Eu(E)),F!==void 0&&!F.filter(function(B){return B==E}).length)throw new RangeError("".concat(E," is not within ").concat(F.join(", ")));return E}return A}function TD(u){if(typeof u>"u")return Object.create(null);if(typeof u=="object")return u;throw new TypeError("Options must be an object")}function Zu(u,D,C,F,A,E){var B=u[D];if(B===void 0)return E;if(B===!0)return F;var e=!!B;if(e===!1)return A;if(B=Eu(B),B==="true"||B==="false")return E;if((C||[]).indexOf(B)===-1)throw new RangeError("Invalid value ".concat(B));return B}var Gu=["angle-degree","area-acre","area-hectare","concentr-percent","digital-bit","digital-byte","digital-gigabit","digital-gigabyte","digital-kilobit","digital-kilobyte","digital-megabit","digital-megabyte","digital-petabyte","digital-terabit","digital-terabyte","duration-day","duration-hour","duration-millisecond","duration-minute","duration-month","duration-second","duration-week","duration-year","length-centimeter","length-foot","length-inch","length-kilometer","length-meter","length-mile-scandinavian","length-mile","length-millimeter","length-yard","mass-gram","mass-kilogram","mass-ounce","mass-pound","mass-stone","temperature-celsius","temperature-fahrenheit","volume-fluid-ounce","volume-gallon","volume-liter","volume-milliliter"];function Ju(u){return u.slice(u.indexOf("-")+1)}var Wu=Gu.map(Ju);function z(u){return Wu.indexOf(u)>-1}function OD(u,D){var C=D.zoneNamesFromData,F=D.uppercaseLinks,A=u.toUpperCase(),E=new Set,B=new Set;return C.map(function(e){return e.toUpperCase()}).forEach(function(e){return E.add(e)}),Object.keys(F).forEach(function(e){B.add(e.toUpperCase()),E.add(F[e].toUpperCase())}),E.has(A)||B.has(A)}function PD(u){return u.replace(/([a-z])/g,function(D,C){return C.toUpperCase()})}var _D=/[^A-Z]/;function Ku(u){return u=PD(u),!(u.length!==3||_D.test(u))}function jD(u){return u.replace(/([A-Z])/g,function(D,C){return C.toLowerCase()})}function qu(u){if(u=jD(u),z(u))return!0;var D=u.split("-per-");if(D.length!==2)return!1;var C=D[0],F=D[1];return!(!z(C)||!z(F))}function UD(u,D,C,F){if(u===D)return D;if(F===void 0)throw new Error("unsignedRoundingMode is mandatory");if(F==="zero")return D;if(F==="infinity")return C;var A=u-D,E=C-u;if(Ac[c.length-1])return c[c.length-1].length-1;var f=c.indexOf(r);if(f===-1)return 0;var l=c[f],m=n[l].other;return m==="0"?0:l.length-n[l].other.match(/0+/)[0].length}}}function Cu(u,D,C){var F=C,A,E,B;if(u===0)A=L("0",F),E=0,B=0;else{var e=u.toString(),t=e.indexOf("e"),a=e.split("e"),i=a[0],n=a[1],s=i.replace(".","");if(t>=0&&s.length<=F)E=+n,A=s+L("0",F-s.length),B=u;else{E=V(u);var o=E-F+1,r=Math.round(l(u,o));l(r,F-1)>=10&&(E=E+1,r=Math.floor(r/10)),A=r.toString(),B=l(r,F-1-E)}}var c;if(E>=F-1?(A=A+L("0",E-F+1),c=E+1):E>=0?(A="".concat(A.slice(0,E+1),".").concat(A.slice(E+1)),c=E+1):(A="0.".concat(L("0",-E-1)).concat(A),c=1),A.indexOf(".")>=0&&C>D){for(var f=C-D;f>0&&A[A.length-1]==="0";)A=A.slice(0,-1),f--;A[A.length-1]==="."&&(A=A.slice(0,-1))}return{formattedString:A,roundedNumber:B,integerDigitsCount:c};function l(m,p){return p<0?m*Math.pow(10,-p):m/Math.pow(10,p)}}function Z(u,D,C){var F=C,A=Math.round(u*Math.pow(10,F)),E=A/Math.pow(10,F),B;if(A<1e21)B=A.toString();else{B=A.toString();var e=B.split("e"),t=e[0],a=e[1];B=t.replace(".",""),B=B+L("0",Math.max(+a-B.length+1,0))}var i;if(F!==0){var n=B.length;if(n<=F){var s=L("0",F+1-n);B=s+B,n=F+1}var o=B.slice(0,n-F),r=B.slice(n-F);B="".concat(o,".").concat(r),i=o.length}else i=B.length;for(var c=C-D;c>0&&B[B.length-1]==="0";)B=B.slice(0,-1),c--;return B[B.length-1]==="."&&(B=B.slice(0,-1)),{formattedString:B,roundedNumber:E,integerDigitsCount:i}}function su(u,D){var C=D<0||k(D,-0);C&&(D=-D);var F,A=u.roundingType;switch(A){case"significantDigits":F=Cu(D,u.minimumSignificantDigits,u.maximumSignificantDigits);break;case"fractionDigits":F=Z(D,u.minimumFractionDigits,u.maximumFractionDigits);break;default:F=Cu(D,1,2),F.integerDigitsCount>1&&(F=Z(D,0,0));break}D=F.roundedNumber;var E=F.formattedString,B=F.integerDigitsCount,e=u.minimumIntegerDigits;if(B\^`\|~\xA2-\xA6\xA8\xA9\xAC\xAE-\xB1\xB4\xB8\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0384\u0385\u03F6\u0482\u058D-\u058F\u0606-\u0608\u060B\u060E\u060F\u06DE\u06E9\u06FD\u06FE\u07F6\u07FE\u07FF\u09F2\u09F3\u09FA\u09FB\u0AF1\u0B70\u0BF3-\u0BFA\u0C7F\u0D4F\u0D79\u0E3F\u0F01-\u0F03\u0F13\u0F15-\u0F17\u0F1A-\u0F1F\u0F34\u0F36\u0F38\u0FBE-\u0FC5\u0FC7-\u0FCC\u0FCE\u0FCF\u0FD5-\u0FD8\u109E\u109F\u1390-\u1399\u166D\u17DB\u1940\u19DE-\u19FF\u1B61-\u1B6A\u1B74-\u1B7C\u1FBD\u1FBF-\u1FC1\u1FCD-\u1FCF\u1FDD-\u1FDF\u1FED-\u1FEF\u1FFD\u1FFE\u2044\u2052\u207A-\u207C\u208A-\u208C\u20A0-\u20BF\u2100\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F\u218A\u218B\u2190-\u2307\u230C-\u2328\u232B-\u2426\u2440-\u244A\u249C-\u24E9\u2500-\u2767\u2794-\u27C4\u27C7-\u27E5\u27F0-\u2982\u2999-\u29D7\u29DC-\u29FB\u29FE-\u2B73\u2B76-\u2B95\u2B97-\u2BFF\u2CE5-\u2CEA\u2E50\u2E51\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3004\u3012\u3013\u3020\u3036\u3037\u303E\u303F\u309B\u309C\u3190\u3191\u3196-\u319F\u31C0-\u31E3\u3200-\u321E\u322A-\u3247\u3250\u3260-\u327F\u328A-\u32B0\u32C0-\u33FF\u4DC0-\u4DFF\uA490-\uA4C6\uA700-\uA716\uA720\uA721\uA789\uA78A\uA828-\uA82B\uA836-\uA839\uAA77-\uAA79\uAB5B\uAB6A\uAB6B\uFB29\uFBB2-\uFBC1\uFDFC\uFDFD\uFE62\uFE64-\uFE66\uFE69\uFF04\uFF0B\uFF1C-\uFF1E\uFF3E\uFF40\uFF5C\uFF5E\uFFE0-\uFFE6\uFFE8-\uFFEE\uFFFC\uFFFD]|\uD800[\uDD37-\uDD3F\uDD79-\uDD89\uDD8C-\uDD8E\uDD90-\uDD9C\uDDA0\uDDD0-\uDDFC]|\uD802[\uDC77\uDC78\uDEC8]|\uD805\uDF3F|\uD807[\uDFD5-\uDFF1]|\uD81A[\uDF3C-\uDF3F\uDF45]|\uD82F\uDC9C|\uD834[\uDC00-\uDCF5\uDD00-\uDD26\uDD29-\uDD64\uDD6A-\uDD6C\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDDE8\uDE00-\uDE41\uDE45\uDF00-\uDF56]|\uD835[\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85\uDE86]|\uD838[\uDD4F\uDEFF]|\uD83B[\uDCAC\uDCB0\uDD2E\uDEF0\uDEF1]|\uD83C[\uDC00-\uDC2B\uDC30-\uDC93\uDCA0-\uDCAE\uDCB1-\uDCBF\uDCC1-\uDCCF\uDCD1-\uDCF5\uDD0D-\uDDAD\uDDE6-\uDE02\uDE10-\uDE3B\uDE40-\uDE48\uDE50\uDE51\uDE60-\uDE65\uDF00-\uDFFF]|\uD83D[\uDC00-\uDED7\uDEE0-\uDEEC\uDEF0-\uDEFC\uDF00-\uDF73\uDF80-\uDFD8\uDFE0-\uDFEB]|\uD83E[\uDC00-\uDC0B\uDC10-\uDC47\uDC50-\uDC59\uDC60-\uDC87\uDC90-\uDCAD\uDCB0\uDCB1\uDD00-\uDD78\uDD7A-\uDDCB\uDDCD-\uDE53\uDE60-\uDE6D\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6\uDF00-\uDF92\uDF94-\uDFCA]/,WD={adlm:["𞥐","𞥑","𞥒","𞥓","𞥔","𞥕","𞥖","𞥗","𞥘","𞥙"],ahom:["𑜰","𑜱","𑜲","𑜳","𑜴","𑜵","𑜶","𑜷","𑜸","𑜹"],arab:["٠","١","٢","٣","٤","٥","٦","٧","٨","٩"],arabext:["۰","۱","۲","۳","۴","۵","۶","۷","۸","۹"],bali:["᭐","᭑","᭒","᭓","᭔","᭕","᭖","᭗","᭘","᭙"],beng:["০","১","২","৩","৪","৫","৬","৭","৮","৯"],bhks:["𑱐","𑱑","𑱒","𑱓","𑱔","𑱕","𑱖","𑱗","𑱘","𑱙"],brah:["𑁦","𑁧","𑁨","𑁩","𑁪","𑁫","𑁬","𑁭","𑁮","𑁯"],cakm:["𑄶","𑄷","𑄸","𑄹","𑄺","𑄻","𑄼","𑄽","𑄾","𑄿"],cham:["꩐","꩑","꩒","꩓","꩔","꩕","꩖","꩗","꩘","꩙"],deva:["०","१","२","३","४","५","६","७","८","९"],diak:["𑥐","𑥑","𑥒","𑥓","𑥔","𑥕","𑥖","𑥗","𑥘","𑥙"],fullwide:["0","1","2","3","4","5","6","7","8","9"],gong:["𑶠","𑶡","𑶢","𑶣","𑶤","𑶥","𑶦","𑶧","𑶨","𑶩"],gonm:["𑵐","𑵑","𑵒","𑵓","𑵔","𑵕","𑵖","𑵗","𑵘","𑵙"],gujr:["૦","૧","૨","૩","૪","૫","૬","૭","૮","૯"],guru:["੦","੧","੨","੩","੪","੫","੬","੭","੮","੯"],hanidec:["〇","一","二","三","四","五","六","七","八","九"],hmng:["𖭐","𖭑","𖭒","𖭓","𖭔","𖭕","𖭖","𖭗","𖭘","𖭙"],hmnp:["𞅀","𞅁","𞅂","𞅃","𞅄","𞅅","𞅆","𞅇","𞅈","𞅉"],java:["꧐","꧑","꧒","꧓","꧔","꧕","꧖","꧗","꧘","꧙"],kali:["꤀","꤁","꤂","꤃","꤄","꤅","꤆","꤇","꤈","꤉"],khmr:["០","១","២","៣","៤","៥","៦","៧","៨","៩"],knda:["೦","೧","೨","೩","೪","೫","೬","೭","೮","೯"],lana:["᪀","᪁","᪂","᪃","᪄","᪅","᪆","᪇","᪈","᪉"],lanatham:["᪐","᪑","᪒","᪓","᪔","᪕","᪖","᪗","᪘","᪙"],laoo:["໐","໑","໒","໓","໔","໕","໖","໗","໘","໙"],lepc:["᪐","᪑","᪒","᪓","᪔","᪕","᪖","᪗","᪘","᪙"],limb:["᥆","᥇","᥈","᥉","᥊","᥋","᥌","᥍","᥎","᥏"],mathbold:["𝟎","𝟏","𝟐","𝟑","𝟒","𝟓","𝟔","𝟕","𝟖","𝟗"],mathdbl:["𝟘","𝟙","𝟚","𝟛","𝟜","𝟝","𝟞","𝟟","𝟠","𝟡"],mathmono:["𝟶","𝟷","𝟸","𝟹","𝟺","𝟻","𝟼","𝟽","𝟾","𝟿"],mathsanb:["𝟬","𝟭","𝟮","𝟯","𝟰","𝟱","𝟲","𝟳","𝟴","𝟵"],mathsans:["𝟢","𝟣","𝟤","𝟥","𝟦","𝟧","𝟨","𝟩","𝟪","𝟫"],mlym:["൦","൧","൨","൩","൪","൫","൬","൭","൮","൯"],modi:["𑙐","𑙑","𑙒","𑙓","𑙔","𑙕","𑙖","𑙗","𑙘","𑙙"],mong:["᠐","᠑","᠒","᠓","᠔","᠕","᠖","᠗","᠘","᠙"],mroo:["𖩠","𖩡","𖩢","𖩣","𖩤","𖩥","𖩦","𖩧","𖩨","𖩩"],mtei:["꯰","꯱","꯲","꯳","꯴","꯵","꯶","꯷","꯸","꯹"],mymr:["၀","၁","၂","၃","၄","၅","၆","၇","၈","၉"],mymrshan:["႐","႑","႒","႓","႔","႕","႖","႗","႘","႙"],mymrtlng:["꧰","꧱","꧲","꧳","꧴","꧵","꧶","꧷","꧸","꧹"],newa:["𑑐","𑑑","𑑒","𑑓","𑑔","𑑕","𑑖","𑑗","𑑘","𑑙"],nkoo:["߀","߁","߂","߃","߄","߅","߆","߇","߈","߉"],olck:["᱐","᱑","᱒","᱓","᱔","᱕","᱖","᱗","᱘","᱙"],orya:["୦","୧","୨","୩","୪","୫","୬","୭","୮","୯"],osma:["𐒠","𐒡","𐒢","𐒣","𐒤","𐒥","𐒦","𐒧","𐒨","𐒩"],rohg:["𐴰","𐴱","𐴲","𐴳","𐴴","𐴵","𐴶","𐴷","𐴸","𐴹"],saur:["꣐","꣑","꣒","꣓","꣔","꣕","꣖","꣗","꣘","꣙"],segment:["🯰","🯱","🯲","🯳","🯴","🯵","🯶","🯷","🯸","🯹"],shrd:["𑇐","𑇑","𑇒","𑇓","𑇔","𑇕","𑇖","𑇗","𑇘","𑇙"],sind:["𑋰","𑋱","𑋲","𑋳","𑋴","𑋵","𑋶","𑋷","𑋸","𑋹"],sinh:["෦","෧","෨","෩","෪","෫","෬","෭","෮","෯"],sora:["𑃰","𑃱","𑃲","𑃳","𑃴","𑃵","𑃶","𑃷","𑃸","𑃹"],sund:["᮰","᮱","᮲","᮳","᮴","᮵","᮶","᮷","᮸","᮹"],takr:["𑛀","𑛁","𑛂","𑛃","𑛄","𑛅","𑛆","𑛇","𑛈","𑛉"],talu:["᧐","᧑","᧒","᧓","᧔","᧕","᧖","᧗","᧘","᧙"],tamldec:["௦","௧","௨","௩","௪","௫","௬","௭","௮","௯"],telu:["౦","౧","౨","౩","౪","౫","౬","౭","౮","౯"],thai:["๐","๑","๒","๓","๔","๕","๖","๗","๘","๙"],tibt:["༠","༡","༢","༣","༤","༥","༦","༧","༨","༩"],tirh:["𑓐","𑓑","𑓒","𑓓","𑓔","𑓕","𑓖","𑓗","𑓘","𑓙"],vaii:["ᘠ","ᘡ","ᘢ","ᘣ","ᘤ","ᘥ","ᘦ","ᘧ","ᘨ","ᘩ"],wara:["𑣠","𑣡","𑣢","𑣣","𑣤","𑣥","𑣦","𑣧","𑣨","𑣩"],wcho:["𞋰","𞋱","𞋲","𞋳","𞋴","𞋵","𞋶","𞋷","𞋸","𞋹"]},KD=new RegExp("^".concat(CD.source)),qD=new RegExp("".concat(CD.source,"$")),$u=/[#0](?:[\.,][#0]+)*/g;function FD(u,D,C,F){var A=u.sign,E=u.exponent,B=u.magnitude,e=F.notation,t=F.style,a=F.numberingSystem,i=D.numbers.nu[0],n=null;e==="compact"&&B&&(n=QD(u,C,D,t,F.compactDisplay,F.currencyDisplay,a));var s;if(t==="currency"&&F.currencyDisplay!=="name"){var o=D.currencies[F.currency];if(o)switch(F.currencyDisplay){case"code":s=F.currency;break;case"symbol":s=o.symbol;break;default:s=o.narrow;break}else s=F.currency}var r;if(n)r=n;else if(t==="decimal"||t==="unit"||t==="currency"&&F.currencyDisplay==="name"){var c=D.numbers.decimal[a]||D.numbers.decimal[i];r=H(c.standard,A)}else if(t==="currency"){var f=D.numbers.currency[a]||D.numbers.currency[i];r=H(f[F.currencySign],A)}else{var l=D.numbers.percent[a]||D.numbers.percent[i];r=H(l,A)}var m=$u.exec(r)[0];if(r=r.replace($u,"{0}").replace(/'(.)'/g,"$1"),t==="currency"&&F.currencyDisplay!=="name"){var f=D.numbers.currency[a]||D.numbers.currency[i],p=f.currencySpacing.afterInsertBetween;p&&!qD.test(s)&&(r=r.replace("¤{0}","¤".concat(p,"{0}")));var h=f.currencySpacing.beforeInsertBetween;h&&!KD.test(s)&&(r=r.replace("{0}¤","{0}".concat(h,"¤")))}for(var b=r.split(/({c:[^}]+}|\{0\}|[¤%\-\+])/g),g=[],$=D.numbers.symbols[a]||D.numbers.symbols[i],S=0,w=b;S0?(o=a.slice(0,s),r=a.slice(s+1)):o=a,E&&(C!=="compact"||i>=1e4)){var c=e==="currency"&&u.currencyGroup!=null?u.currencyGroup:u.group,f=[],l=B.split(".")[0],m=l.split(","),p=3,h=3;m.length>1&&(p=m[m.length-1].length),m.length>2&&(h=m[m.length-2].length);var b=o.length-p;if(b>0){for(f.push(o.slice(b,b+p)),b-=h;b>0;b-=h)f.push(o.slice(b,b+h));f.push(o.slice(0,b+h))}else f.push(o);for(;f.length>0;){var g=f.pop();t.push({type:"integer",value:g}),f.length>0&&t.push({type:"group",value:c})}}else t.push({type:"integer",value:o});if(r!==void 0){var $=e==="currency"&&u.currencyDecimal!=null?u.currencyDecimal:u.decimal;t.push({type:"decimal",value:$},{type:"fraction",value:r})}if((C==="scientific"||C==="engineering")&&isFinite(i)){t.push({type:"exponentSeparator",value:u.exponential}),F<0&&(t.push({type:"exponentMinusSign",value:u.minusSign}),F=-F);var S=Z(F,0,0);t.push({type:"exponentInteger",value:S.formattedString})}return t}function H(u,D){u.indexOf(";")<0&&(u="".concat(u,";-").concat(u));var C=u.split(";"),F=C[0],A=C[1];switch(D){case 0:return F;case-1:return A;default:return A.indexOf("-")>=0?A.replace(/-/g,"+"):"+".concat(F)}}function QD(u,D,C,F,A,E,B){var e,t=u.roundedNumber,a=u.sign,i=u.magnitude,n=String(Math.pow(10,i)),s=C.numbers.nu[0],o;if(F==="currency"&&E!=="name"){var r=C.numbers.currency,c=r[B]||r[s],f=(e=c.short)===null||e===void 0?void 0:e[n];if(!f)return null;o=M(D,t,f)}else{var r=C.numbers.decimal,l=r[B]||r[s],m=l[A][n];if(!m)return null;o=M(D,t,m)}return o==="0"?null:(o=H(o,a).replace(/([^\s;\-\+\d¤]+)/g,"{c:$1}").replace(/0+/,"0"),o)}function M(u,D,C){return C[u.select(D)]||C.other}function G(u,D,C){var F,A=C.getInternalSlots,E=A(u),B=E.pl,e=E.dataLocaleData,t=E.numberingSystem,a=e.numbers.symbols[t]||e.numbers.symbols[e.numbers.nu[0]],i=0,n=0,s;if(isNaN(D))s=a.nan;else if(D==Number.POSITIVE_INFINITY||D==Number.NEGATIVE_INFINITY)s=a.infinity;else{if(!k(D,-0)){if(!isFinite(D))throw new Error("Input must be a mathematical value");E.style=="percent"&&(D*=100),F=Xu(u,D,{getInternalSlots:A}),n=F[0],i=F[1],D=n<0?D*Math.pow(10,-n):D/Math.pow(10,n)}var o=su(E,D);s=o.formattedString,D=o.roundedNumber}var r,c=E.signDisplay;switch(c){case"never":r=0;break;case"auto":k(D,0)||D>0||isNaN(D)?r=0:r=-1;break;case"always":k(D,0)||D>0||isNaN(D)?r=1:r=-1;break;default:D===0||isNaN(D)?r=0:D>0?r=1:r=-1}return FD({roundedNumber:D,formattedString:s,exponent:n,magnitude:i,sign:r},E.dataLocaleData,B,E)}function lu(u,D,C,F){var A=F.getInternalSlots;if(isNaN(D)||isNaN(C))throw new RangeError("Input must be a number");var E=[],B=G(u,D,{getInternalSlots:A}),e=G(u,C,{getInternalSlots:A});if(B===e)return DD(u,B,{getInternalSlots:A});for(var t=0,a=B;te)throw new RangeError("Invalid range, ".concat(B," > ").concat(e));u.minimumFractionDigits=B,u.maximumFractionDigits=e}else u.minimumFractionDigits=C,u.maximumFractionDigits=F;o||r?i==="morePrecision"?u.roundingType="morePrecision":i==="lessPrecision"?u.roundingType="lessPrecision":n?u.roundingType="significantDigits":u.roundingType="fractionDigits":(u.roundingType="morePrecision",u.minimumFractionDigits=0,u.maximumFractionDigits=0,u.minimumSignificantDigits=1,u.maximumSignificantDigits=2)}function ED(u,D,C){D===void 0&&(D=Object.create(null));var F=C.getInternalSlots,A=F(u),E=v(D,"style","string",["decimal","percent","currency","unit"],"decimal");A.style=E;var B=v(D,"currency","string",void 0,void 0);if(B!==void 0&&!Ku(B))throw RangeError("Malformed currency code");if(E==="currency"&&B===void 0)throw TypeError("currency cannot be undefined");var e=v(D,"currencyDisplay","string",["code","symbol","narrowSymbol","name"],"symbol"),t=v(D,"currencySign","string",["standard","accounting"],"standard"),a=v(D,"unit","string",void 0,void 0);if(a!==void 0&&!qu(a))throw RangeError("Invalid unit argument for Intl.NumberFormat()");if(E==="unit"&&a===void 0)throw TypeError("unit cannot be undefined");var i=v(D,"unitDisplay","string",["short","narrow","long"],"short");E==="currency"&&(A.currency=B.toUpperCase(),A.currencyDisplay=e,A.currencySign=t),E==="unit"&&(A.unit=a,A.unitDisplay=i)}var Iu=[1,2,5,10,20,25,50,100,200,250,500,1e3,2e3];function E0(u,D,C,F){var A=F.getInternalSlots,E=F.localeData,B=F.availableLocales,e=F.numberingSystemNames,t=F.getDefaultLocale,a=F.currencyDigitsData,i=ku(D),n=Vu(C),s=Object.create(null),o=v(n,"localeMatcher","string",["lookup","best fit"],"best fit");s.localeMatcher=o;var r=v(n,"numberingSystem","string",void 0,void 0);if(r!==void 0&&e.indexOf(r)<0)throw RangeError("Invalid numberingSystems: ".concat(r));s.nu=r;var c=aD(Array.from(B),i,s,["nu"],E,t),f=E[c.dataLocale];ou(!!f,"Missing locale data for ".concat(c.dataLocale));var l=A(u);l.locale=c.locale,l.dataLocale=c.dataLocale,l.numberingSystem=c.nu,l.dataLocaleData=f,ED(u,n,{getInternalSlots:A});var m=l.style,p,h;if(m==="currency"){var b=l.currency,g=uD(b,{currencyDigitsData:a});p=g,h=g}else p=0,h=m==="percent"?0:3;var $=v(n,"notation","string",["standard","scientific","engineering","compact"],"standard");l.notation=$,AD(l,n,p,h,$);var S=iu(n,"roundingIncrement",1,5e3,1);if(Iu.indexOf(S)===-1)throw new RangeError("Invalid rounding increment value: ".concat(S,`. +Valid values are `).concat(Iu,"."));if(S!==1&&l.roundingType!=="fractionDigits")throw new TypeError("For roundingIncrement > 1 only fractionDigits is a valid roundingType");if(S!==1&&l.maximumFractionDigits!==l.minimumFractionDigits)throw new RangeError("With roundingIncrement > 1, maximumFractionDigits and minimumFractionDigits must be equal.");l.roundingIncrement=S;var w=v(n,"trailingZeroDisplay","string",["auto","stripIfInteger"],"auto");l.trailingZeroDisplay=w;var d=v(n,"compactDisplay","string",["short","long"],"short"),I="auto";return $==="compact"&&(l.compactDisplay=d,I="min2"),l.useGrouping=Zu(n,"useGrouping",["min2","auto","always"],"always",!1,I),l.signDisplay=v(n,"signDisplay","string",["auto","never","always","exceptZero","negative"],"auto"),l.roundingMode=v(n,"roundingMode","string",["ceil","floor","expand","trunc","halfCeil","halfFloor","halfExpand","halfTrunc","halfEven"],"halfExpand"),u}function B0(u){for(var D=[],C=u.indexOf("{"),F=0,A=0,E=u.length;C-1;)F=u.indexOf("}",C),ou(F>C,"Invalid pattern ".concat(u)),C>A&&D.push({type:"literal",value:u.substring(A,C)}),D.push({type:u.substring(C+1,F),value:void 0}),A=F+1,C=u.indexOf("{",A);return A=this.input.length)){var F=0;if(C===0)F=0;else for(var A=this.input,E=C;E>=0;E--){var B=this.segmenter.breaksAt(E,A).breaks;if(B){F=E;break}}for(var e=this.input.substring(F),E=1;E<=e.length;E++){var t=this.segmenter.breaksAt(E,e),B=t.breaks,a=t.matchingRule;if(B){var i=e.substring(0,E);return wu(this.segmenter,i,F,this.input,a)}}}},u}(),cu=new WeakMap;function c0(u,D){return(0,N.getInternalSlot)(cu,u,D)}function xu(u,D,C){(0,N.setInternalSlot)(cu,u,D,C)}function Lu(u,D){if(!(u instanceof j))throw TypeError("Method Intl.Segmenter.prototype.".concat(D," called on incompatible receiver"))}try{typeof Symbol<"u"&&Object.defineProperty(j.prototype,Symbol.toStringTag,{value:"Intl.Segmenter",writable:!1,enumerable:!1,configurable:!0}),Object.defineProperty(j.prototype.constructor,"length",{value:0,writable:!1,enumerable:!1,configurable:!0}),Object.defineProperty(j.supportedLocalesOf,"length",{value:1,writable:!1,enumerable:!1,configurable:!0})}catch{}Object.defineProperty(uu,"__esModule",{value:!0});var f0=J;Object.defineProperty(Intl,"Segmenter",{value:f0.Segmenter,enumerable:!1,writable:!0,configurable:!0});const d0=sD({__proto__:null,default:uu},[uu]);export{d0 as p}; +//# sourceMappingURL=polyfill-force-FXjoUqOk.js.map diff --git a/assets/polyfill-force-FXjoUqOk.js.map b/assets/polyfill-force-FXjoUqOk.js.map new file mode 100644 index 0000000..f51c043 --- /dev/null +++ b/assets/polyfill-force-FXjoUqOk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"polyfill-force-FXjoUqOk.js","sources":["../../node_modules/@formatjs/intl-segmenter/src/cldr-segmentation-rules.generated.js","../../node_modules/@formatjs/intl-segmenter/src/segmentation-utils.js","../../node_modules/@formatjs/ecma402-abstract/lib/CanonicalizeLocaleList.js","../../node_modules/@formatjs/ecma402-abstract/lib/CanonicalizeTimeZoneName.js","../../node_modules/@formatjs/ecma402-abstract/lib/262.js","../../node_modules/@formatjs/ecma402-abstract/lib/CoerceOptionsToObject.js","../../node_modules/@formatjs/ecma402-abstract/lib/DefaultNumberOption.js","../../node_modules/@formatjs/ecma402-abstract/lib/GetNumberOption.js","../../node_modules/@formatjs/ecma402-abstract/lib/GetOption.js","../../node_modules/@formatjs/ecma402-abstract/lib/GetOptionsObject.js","../../node_modules/@formatjs/ecma402-abstract/lib/GetStringOrBooleanOption.js","../../node_modules/@formatjs/ecma402-abstract/lib/IsSanctionedSimpleUnitIdentifier.js","../../node_modules/@formatjs/ecma402-abstract/lib/IsValidTimeZoneName.js","../../node_modules/@formatjs/ecma402-abstract/lib/IsWellFormedCurrencyCode.js","../../node_modules/@formatjs/ecma402-abstract/lib/IsWellFormedUnitIdentifier.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ApplyUnsignedRoundingMode.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/CollapseNumberRange.js","../../node_modules/@formatjs/ecma402-abstract/lib/utils.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ComputeExponentForMagnitude.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ToRawPrecision.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ToRawFixed.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericToString.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/ComputeExponent.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/CurrencyDigits.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatApproximately.js","../../node_modules/@formatjs/ecma402-abstract/lib/regex.generated.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/digit-mapping.generated.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/format_to_parts.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/PartitionNumberPattern.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/PartitionNumberRangePattern.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericRange.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericRangeToParts.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/FormatNumericToParts.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/GetUnsignedRoundingMode.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/SetNumberFormatDigitOptions.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/SetNumberFormatUnitOptions.js","../../node_modules/@formatjs/ecma402-abstract/lib/NumberFormat/InitializeNumberFormat.js","../../node_modules/@formatjs/ecma402-abstract/lib/PartitionPattern.js","../../node_modules/@formatjs/ecma402-abstract/lib/SupportedLocales.js","../../node_modules/@formatjs/ecma402-abstract/lib/data.js","../../node_modules/@formatjs/ecma402-abstract/lib/types/date-time.js","../../node_modules/@formatjs/intl-segmenter/src/segmenter.js","../../node_modules/@formatjs/intl-segmenter/polyfill-force.js"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SegmentationRules = void 0;\n/* @generated */\n// prettier-ignore\nexports.SegmentationRules = {\n \"de\": {\n \"sentence\": {\n \"segmentRules\": {},\n \"suppressions\": [\n \"Port.\",\n \"Alt.\",\n \"Di.\",\n \"Ges.\",\n \"frz.\",\n \"entspr.\",\n \"Gebr.\",\n \"erw.\",\n \"Frl.\",\n \"Inh.\",\n \"k.u.k.\",\n \"Ca.\",\n \"J.D.\",\n \"Ausg.\",\n \"evtl.\",\n \"So.\",\n \"i.B.\",\n \"s.a.\",\n \"kgl.\",\n \"Sept.\",\n \"o.B.\",\n \"Sa.\",\n \"ev.\",\n \"Dez.\",\n \"am.\",\n \"i.R.\",\n \"eigtl.\",\n \"i.J.\",\n \"u.U.\",\n \"G.\",\n \"z.Hd.\",\n \"u.A.w.g.\",\n \"Kl.\",\n \"Spezif.\",\n \"Obj.\",\n \"Ing.\",\n \"D. h.\",\n \"Folg.\",\n \"Akt.\",\n \"i.A.\",\n \"Msp.\",\n \"U.U.\",\n \"Chr.\",\n \"R.\",\n \"Einh.\",\n \"schwäb.\",\n \"Vgl.\",\n \"Aug.\",\n \"Dipl.-Ing.\",\n \"W.\",\n \"B.\",\n \"U. U.\",\n \"J.\",\n \"Fa.\",\n \"Mo.\",\n \"n.u.Z.\",\n \"Op.\",\n \"Mrd.\",\n \"e.h.\",\n \"Hr.\",\n \"Hrn.\",\n \"Ztr.\",\n \"k. u. k.\",\n \"Bibl.\",\n \"d.Ä.\",\n \"b.\",\n \"M.\",\n \"i.H.\",\n \"v.R.w.\",\n \"o.A.\",\n \"St.\",\n \"Dr.\",\n \"Fn.\",\n \"Abs.\",\n \"Rd.\",\n \"Dtzd.\",\n \"Jahrh.\",\n \"Z.\",\n \"Std.\",\n \"n. Chr.\",\n \"möbl.\",\n \"tägl.\",\n \"gest.\",\n \"gesch.\",\n \"z.B.\",\n \"Hbf.\",\n \"Abt.\",\n \"A.M.\",\n \"e.Wz.\",\n \"v.T.\",\n \"Nov.\",\n \"z.\",\n \"Prot.\",\n \"U.S.\",\n \"Wg.\",\n \"u.v.a.\",\n \"Adr.\",\n \"App.\",\n \"ggf.\",\n \"ggfs.\",\n \"Jan.\",\n \"O.\",\n \"Rel.\",\n \"od.\",\n \"Pfd.\",\n \"a.a.O.\",\n \"p.Adr.\",\n \"P.\",\n \"Gem.\",\n \"v. Chr.\",\n \"Art.\",\n \"z.Z.\",\n \"S.A.\",\n \"i.V.\",\n \"verh.\",\n \"Ausschl.\",\n \"m.W.\",\n \"Dir.\",\n \"Verf.\",\n \"Sek.\",\n \"r.\",\n \"Chin.\",\n \"Feb.\",\n \"Int.\",\n \"Sep.\",\n \"Gesch.\",\n \"schweiz.\",\n \"Bed.\",\n \"a.Rh.\",\n \"jew.\",\n \"vgl.\",\n \"a.M.\",\n \"Str.\",\n \"exkl.\",\n \"gek.\",\n \"Erf.\",\n \"u.Ä.\",\n \"ehem.\",\n \"näml.\",\n \"u. Z.\",\n \"v. u. Z.\",\n \"sog.\",\n \"C.\",\n \"Dipl.-Kfm.\",\n \"mtl.\",\n \"Hrsg.\",\n \"Qu.\",\n \"röm.\",\n \"u.\",\n \"U.\",\n \"Adj.\",\n \"Kap.\",\n \"hpts.\",\n \"a.D.\",\n \"gedr.\",\n \"Best.\",\n \"N.\",\n \"v.u.Z.\",\n \"Phys.\",\n \"Fr.\",\n \"d.J.\",\n \"Reg.-Bez.\",\n \"m.E.\",\n \"schles.\",\n \"Max.\",\n \"Ltd.\",\n \"südd.\",\n \"inkl.\",\n \"geb.\",\n \"Ggf.\",\n \"Inc.\",\n \"kath.\",\n \"kfm.\",\n \"Nr.\",\n \"Proz.\",\n \"Dim.\",\n \"verw.\",\n \"Reg.\",\n \"Dat.\",\n \"Evtl.\",\n \"led.\",\n \"F.\",\n \"Test.\",\n \"Schr.\",\n \"Do.\",\n \"PIN.\",\n \"Z. Zt.\",\n \"v.Chr.\",\n \"Tägl.\",\n \"s.\",\n \"amtl.\",\n \"Temp.\",\n \"Mind.\",\n \"e.V.\",\n \"Abw.\",\n \"P.M.\",\n \"F.f.\",\n \"a.a.S.\",\n \"Mod.\",\n \"Co.\",\n \"Min.\",\n \"Allg.\",\n \"Geograph.\",\n \"Jr.\",\n \"Urspr.\",\n \"Apr.\",\n \"Z. B.\",\n \"v.H.\",\n \"A.\",\n \"einschl.\",\n \"Trans.\",\n \"zzgl.\",\n \"StR.\",\n \"Fam.\",\n \"I.\",\n \"jhrl.\",\n \"u.a.\",\n \"Ben.\",\n \"o.g.\",\n \"Kfm.\",\n \"Konv.\",\n \"Mi.\",\n \"L.\",\n \"beil.\",\n \"T.\",\n \"Ursprüngl.\",\n \"röm.-kath.\",\n \"Okt.\",\n \"u.ä.\",\n \"Tel.\",\n \"D.\",\n \"Ber.\",\n \"Kop.\",\n \"Mio.\",\n \"Y.\",\n \"U.S.A.\",\n \"v. H.\",\n \"Forts. f.\",\n \"Rep.\",\n \"Hptst.\",\n \"österr.\"\n ],\n \"variables\": {}\n }\n },\n \"el\": {\n \"sentence\": {\n \"segmentRules\": {},\n \"suppressions\": [],\n \"variables\": {\n \"$STerm\": \"((?:[!;\\\\?\\\\u037E\\\\u0589\\\\u061D-\\\\u061F\\\\u06D4\\\\u0700-\\\\u0702\\\\u07F9\\\\u0837\\\\u0839\\\\u083D\\\\u083E\\\\u0964\\\\u0965\\\\u104A\\\\u104B\\\\u1362\\\\u1367\\\\u1368\\\\u166E\\\\u1735\\\\u1736\\\\u1803\\\\u1809\\\\u1944\\\\u1945\\\\u1AA8-\\\\u1AAB\\\\u1B5A\\\\u1B5B\\\\u1B5E\\\\u1B5F\\\\u1B7D\\\\u1B7E\\\\u1C3B\\\\u1C3C\\\\u1C7E\\\\u1C7F\\\\u203C\\\\u203D\\\\u2047-\\\\u2049\\\\u2E2E\\\\u2E3C\\\\u2E53\\\\u2E54\\\\u3002\\\\uA4FF\\\\uA60E\\\\uA60F\\\\uA6F3\\\\uA6F7\\\\uA876\\\\uA877\\\\uA8CE\\\\uA8CF\\\\uA92F\\\\uA9C8\\\\uA9C9\\\\uAA5D-\\\\uAA5F\\\\uAAF0\\\\uAAF1\\\\uABEB\\\\uFE56\\\\uFE57\\\\uFF01\\\\uFF1F\\\\uFF61]|\\\\uD802[\\\\uDE56\\\\uDE57]|\\\\uD803[\\\\uDF55-\\\\uDF59\\\\uDF86-\\\\uDF89]|\\\\uD804[\\\\uDC47\\\\uDC48\\\\uDCBE-\\\\uDCC1\\\\uDD41-\\\\uDD43\\\\uDDC5\\\\uDDC6\\\\uDDCD\\\\uDDDE\\\\uDDDF\\\\uDE38\\\\uDE39\\\\uDE3B\\\\uDE3C\\\\uDEA9]|\\\\uD805[\\\\uDC4B\\\\uDC4C\\\\uDDC2\\\\uDDC3\\\\uDDC9-\\\\uDDD7\\\\uDE41\\\\uDE42\\\\uDF3C-\\\\uDF3E]|\\\\uD806[\\\\uDD44\\\\uDD46\\\\uDE42\\\\uDE43\\\\uDE9B\\\\uDE9C]|\\\\uD807[\\\\uDC41\\\\uDC42\\\\uDEF7\\\\uDEF8\\\\uDF43\\\\uDF44]|\\\\uD81A[\\\\uDE6E\\\\uDE6F\\\\uDEF5\\\\uDF37\\\\uDF38\\\\uDF44]|\\\\uD81B\\\\uDE98|\\\\uD82F\\\\uDC9F|\\\\uD836\\\\uDE88)(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\"\n }\n }\n },\n \"en\": {\n \"sentence\": {\n \"segmentRules\": {},\n \"suppressions\": [\n \"L.P.\",\n \"Alt.\",\n \"Approx.\",\n \"E.G.\",\n \"O.\",\n \"Maj.\",\n \"Misc.\",\n \"P.O.\",\n \"J.D.\",\n \"Jam.\",\n \"Card.\",\n \"Dec.\",\n \"Sept.\",\n \"MR.\",\n \"Long.\",\n \"Hat.\",\n \"G.\",\n \"Link.\",\n \"DC.\",\n \"D.C.\",\n \"M.T.\",\n \"Hz.\",\n \"Mrs.\",\n \"By.\",\n \"Act.\",\n \"Var.\",\n \"N.V.\",\n \"Aug.\",\n \"B.\",\n \"S.A.\",\n \"Up.\",\n \"Job.\",\n \"Num.\",\n \"M.I.T.\",\n \"Ok.\",\n \"Org.\",\n \"Ex.\",\n \"Cont.\",\n \"U.\",\n \"Mart.\",\n \"Fn.\",\n \"Abs.\",\n \"Lt.\",\n \"OK.\",\n \"Z.\",\n \"E.\",\n \"Kb.\",\n \"Est.\",\n \"A.M.\",\n \"L.A.\",\n \"Prof.\",\n \"U.S.\",\n \"Nov.\",\n \"Ph.D.\",\n \"Mar.\",\n \"I.T.\",\n \"exec.\",\n \"Jan.\",\n \"N.Y.\",\n \"X.\",\n \"Md.\",\n \"Op.\",\n \"vs.\",\n \"D.A.\",\n \"A.D.\",\n \"R.L.\",\n \"P.M.\",\n \"Or.\",\n \"M.R.\",\n \"Cap.\",\n \"PC.\",\n \"Feb.\",\n \"Exec.\",\n \"I.e.\",\n \"Sep.\",\n \"Gb.\",\n \"K.\",\n \"U.S.C.\",\n \"Mt.\",\n \"S.\",\n \"A.S.\",\n \"C.O.D.\",\n \"Capt.\",\n \"Col.\",\n \"In.\",\n \"C.F.\",\n \"Adj.\",\n \"AD.\",\n \"I.D.\",\n \"Mgr.\",\n \"R.T.\",\n \"B.V.\",\n \"M.\",\n \"Conn.\",\n \"Yr.\",\n \"Rev.\",\n \"Phys.\",\n \"pp.\",\n \"Ms.\",\n \"To.\",\n \"Sgt.\",\n \"J.K.\",\n \"Nr.\",\n \"Jun.\",\n \"Fri.\",\n \"S.A.R.\",\n \"Lev.\",\n \"Lt.Cdr.\",\n \"Def.\",\n \"F.\",\n \"Do.\",\n \"Joe.\",\n \"Id.\",\n \"Mr.\",\n \"Dept.\",\n \"Is.\",\n \"Pvt.\",\n \"Diff.\",\n \"Hon.B.A.\",\n \"Q.\",\n \"Mb.\",\n \"On.\",\n \"Min.\",\n \"J.B.\",\n \"Ed.\",\n \"AB.\",\n \"A.\",\n \"S.p.A.\",\n \"I.\",\n \"a.m.\",\n \"Comm.\",\n \"Go.\",\n \"VS.\",\n \"L.\",\n \"All.\",\n \"PP.\",\n \"P.V.\",\n \"T.\",\n \"K.R.\",\n \"Etc.\",\n \"D.\",\n \"Adv.\",\n \"Lib.\",\n \"E.g.\",\n \"Pro.\",\n \"U.S.A.\",\n \"S.E.\",\n \"AA.\",\n \"Rep.\",\n \"Sq.\",\n \"As.\"\n ],\n \"variables\": {}\n }\n },\n \"es\": {\n \"sentence\": {\n \"segmentRules\": {},\n \"suppressions\": [\n \"Rdos.\",\n \"JJ.OO.\",\n \"Sres.\",\n \"fig.\",\n \"may.\",\n \"RR.HH.\",\n \"oct.\",\n \"cap.\",\n \"mié.\",\n \"doc.\",\n \"Excmo.\",\n \"Trab.\",\n \"Excmos.\",\n \"Kit.\",\n \"Inc.\",\n \"FF.CC.\",\n \"DC.\",\n \"ago.\",\n \"trad.\",\n \"SA.\",\n \"Rvdos.\",\n \"ed.\",\n \"Exmo.\",\n \"jul.\",\n \"col.\",\n \"RAM.\",\n \"Srtas.\",\n \"ene.\",\n \"Rol.\",\n \"Fabric.\",\n \"Comm.\",\n \"vid.\",\n \"Da.\",\n \"dic.\",\n \"ss.\",\n \"abr.\",\n \"ntra.\",\n \"Sra.\",\n \"dtor.\",\n \"cf.\",\n \"dom.\",\n \"prov.\",\n \"Emm.\",\n \"Sr.\",\n \"licdo.\",\n \"p.ej.\",\n \"bol.\",\n \"figs.\",\n \"Vda.\",\n \"Dr.\",\n \"ntro.\",\n \"Desv.\",\n \"O.M.\",\n \"Ldo.\",\n \"Drs.\",\n \"sáb.\",\n \"feb.\",\n \"Ltda.\",\n \"Lcda.\",\n \"Exma.\",\n \"C.V.\",\n \"SS.MM.\",\n \"Lda.\",\n \"U.S.\",\n \"hnos.\",\n \"R.D.\",\n \"Korn.\",\n \"v.gr.\",\n \"vs.\",\n \"Ilmas.\",\n \"Rdo.\",\n \"ej.\",\n \"vie.\",\n \"jue.\",\n \"a. C.\",\n \"Ilmos.\",\n \"e. c.\",\n \"Excma.\",\n \"afma.\",\n \"licda.\",\n \"Em.\",\n \"K.\",\n \"sras.\",\n \"MM.\",\n \"fund.\",\n \"Mons.\",\n \"Lcdo.\",\n \"afmo.\",\n \"C.\",\n \"A.C.\",\n \"dptos.\",\n \"Col.\",\n \"Srta.\",\n \"Av.\",\n \"Ant.\",\n \"depto.\",\n \"Var.\",\n \"H.P.\",\n \"D.\",\n \"M.\",\n \"C.P.\",\n \"Rev.\",\n \"Rvdmos.\",\n \"Fr.\",\n \"Ilmo.\",\n \"afmos.\",\n \"Ltd.\",\n \"afmas.\",\n \"prof.\",\n \"lun.\",\n \"SS.AA.\",\n \"Sol.\",\n \"nov.\",\n \"mss.\",\n \"Dña.\",\n \"Seg.\",\n \"mar.\",\n \"Rvdmo.\",\n \"Reg.\",\n \"ms.\",\n \"Sras.\",\n \"sres.\",\n \"U.S.A.\",\n \"Sta.\",\n \"Sdad.\",\n \"Dra.\",\n \"srs.\",\n \"R.U.\",\n \"deptos.\",\n \"dpto.\",\n \"jun.\",\n \"bco.\",\n \"Cía.\",\n \"Id.\",\n \"Mr.\",\n \"e.g.\",\n \"C.S.\",\n \"Excmas.\",\n \"Dª.\",\n \"Rvdo.\",\n \"Lic.\",\n \"cfr.\",\n \"Corp.\",\n \"Dto.\",\n \"Ilma.\",\n \"L.\",\n \"All.\",\n \"PP.\",\n \"d. C.\",\n \"Ltdo.\",\n \"mtro.\",\n \"Mrs.\",\n \"Desc.\",\n \"Avda.\",\n \"Exmas.\",\n \"a. e. c.\",\n \"Bien.\",\n \"Exmos.\",\n \"AA.\",\n \"Sto.\",\n \"CA.\",\n \"sept.\",\n \"Exc.\",\n \"c/c.\"\n ],\n \"variables\": {}\n }\n },\n \"fr\": {\n \"sentence\": {\n \"segmentRules\": {},\n \"suppressions\": [\n \"aux.\",\n \"config.\",\n \"collab.\",\n \"M.\",\n \"dim.\",\n \"imprim.\",\n \"oct.\",\n \"syst.\",\n \"bull.\",\n \"MM.\",\n \"doc.\",\n \"P.O.\",\n \"hôp.\",\n \"Mart.\",\n \"juil.\",\n \"broch.\",\n \"adr.\",\n \"symb.\",\n \"C.\",\n \"anc.\",\n \"voit.\",\n \"Jr.\",\n \"graph.\",\n \"dir.\",\n \"éd.\",\n \"fig.\",\n \"édit.\",\n \"niv.\",\n \"quart.\",\n \"cam.\",\n \"éval.\",\n \"anon.\",\n \"réf.\",\n \"Comm.\",\n \"Prof.\",\n \"févr.\",\n \"indus.\",\n \"DC.\",\n \"équiv.\",\n \"illustr.\",\n \"acoust.\",\n \"nov.\",\n \"L.\",\n \"All.\",\n \"U.S.\",\n \"S.M.A.R.T.\",\n \"sept.\",\n \"avr.\",\n \"jeu.\",\n \"dest.\",\n \"P.-D. G.\",\n \"ill.\",\n \"coll.\",\n \"encycl.\",\n \"mer.\",\n \"Desc.\",\n \"ven.\",\n \"P.\",\n \"lun.\",\n \"Inc.\",\n \"sam.\",\n \"D.\",\n \"append.\",\n \"Var.\",\n \"categ.\",\n \"janv.\",\n \"S.A.\",\n \"imm.\",\n \"U.S.A.\",\n \"mar.\",\n \"exempl.\",\n \"déc.\",\n \"ann.\",\n \"U.\",\n \"synth.\",\n \"dict.\",\n \"av. J.-C.\",\n \"W.\",\n \"Op.\",\n \"ap. J.-C.\",\n \"gouv.\",\n \"trav. publ.\"\n ],\n \"variables\": {}\n }\n },\n \"it\": {\n \"sentence\": {\n \"segmentRules\": {},\n \"suppressions\": [\n \"N.B.\",\n \"div.\",\n \"a.C.\",\n \"fig.\",\n \"d.p.R.\",\n \"c.c.p.\",\n \"Cfr.\",\n \"vol.\",\n \"Geom.\",\n \"O.d.G.\",\n \"S.p.A.\",\n \"ver.\",\n \"N.d.A.\",\n \"dott.\",\n \"arch.\",\n \"d.C.\",\n \"N.d.T.\",\n \"rag.\",\n \"Sig.\",\n \"Mod.\",\n \"pag.\",\n \"dr.\",\n \"tav.\",\n \"N.d.E.\",\n \"DC.\",\n \"mitt.\",\n \"Ing.\",\n \"int.\",\n \"on.\",\n \"C.P.\",\n \"ag.\",\n \"L.\",\n \"U.S.\",\n \"S.M.A.R.T.\",\n \"p.i.\",\n \"tab.\",\n \"Ltd.\",\n \"Liv.\",\n \"D.\",\n \"U.S.A.\",\n \"sez.\",\n \"avv.\",\n \"S.A.R.\",\n \"all.\",\n \"p.\"\n ],\n \"variables\": {}\n }\n },\n \"ja\": {\n \"word\": {\n \"segmentRules\": {\n \"13.3\": {\n \"after\": \"$Hiragana\",\n \"before\": \"$Hiragana\",\n \"breaks\": false\n },\n \"13.4\": {\n \"after\": \"$Ideographic\",\n \"before\": \"$Ideographic\",\n \"breaks\": false\n }\n },\n \"suppressions\": [],\n \"variables\": {\n \"$Hiragana\": \"((?:[\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F]|\\\\uD82C[\\\\uDC01-\\\\uDD1F\\\\uDD32\\\\uDD50-\\\\uDD52]|\\\\uD83C\\\\uDE00)(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$Ideographic\": \"((?:[\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3038-\\\\u303B\\\\u3400-\\\\u4DBF\\\\u4E00-\\\\u9FFF\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9]|\\\\uD81B\\\\uDFE4|[\\\\uD81C-\\\\uD820\\\\uD822\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C\\\\uD86F-\\\\uD872\\\\uD874-\\\\uD879\\\\uD880-\\\\uD883\\\\uD885-\\\\uD887][\\\\uDC00-\\\\uDFFF]|\\\\uD821[\\\\uDC00-\\\\uDFF7]|\\\\uD823[\\\\uDC00-\\\\uDCD5\\\\uDD00-\\\\uDD08]|\\\\uD82C[\\\\uDD70-\\\\uDEFB]|\\\\uD869[\\\\uDC00-\\\\uDEDF\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF39\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEA1\\\\uDEB0-\\\\uDFFF]|\\\\uD87A[\\\\uDC00-\\\\uDFE0]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]|\\\\uD884[\\\\uDC00-\\\\uDF4A\\\\uDF50-\\\\uDFFF]|\\\\uD888[\\\\uDC00-\\\\uDFAF])(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\"\n }\n }\n },\n \"pt\": {\n \"sentence\": {\n \"segmentRules\": {},\n \"suppressions\": [\n \"psicol.\",\n \"fig.\",\n \"compl.\",\n \"rep.\",\n \"cap.\",\n \"doc.\",\n \"fisiol.\",\n \"dipl.\",\n \"astron.\",\n \"port.\",\n \"eletrôn.\",\n \"geom.\",\n \"mov.\",\n \"ago.\",\n \"trad.\",\n \"arquit.\",\n \"dez.\",\n \"ed.\",\n \"apt.\",\n \"Exmo.\",\n \"col.\",\n \"ff.\",\n \"univ.\",\n \"res.\",\n \"R.\",\n \"transp.\",\n \"D.C\",\n \"l.\",\n \"des.\",\n \"fev.\",\n \"abr.\",\n \"liter.\",\n \"lat.\",\n \"Dir.\",\n \"cf.\",\n \"adm.\",\n \"fot.\",\n \"p.m.\",\n \"P.M.\",\n \"créd.\",\n \"jur.\",\n \"com.\",\n \"anat.\",\n \"dir.\",\n \"end.\",\n \"fís.\",\n \"E.\",\n \"Est.\",\n \"cont.\",\n \"matem.\",\n \"Drs.\",\n \"gên.\",\n \"neol.\",\n \"pág.\",\n \"índ.\",\n \"Ltda.\",\n \"Exma.\",\n \"esp.\",\n \"ingl.\",\n \"tecnol.\",\n \"Mar.\",\n \"símb.\",\n \"Pe.\",\n \"pal.\",\n \"filos.\",\n \"V.T.\",\n \"fasc.\",\n \"vs.\",\n \"mai.\",\n \"S.A.\",\n \"profa.\",\n \"N.Sra.\",\n \"r.s.v.p.\",\n \"cel.\",\n \"mat.\",\n \"abrev.\",\n \"out.\",\n \"long.\",\n \"aux.\",\n \"arit.\",\n \"aer.\",\n \"jul.\",\n \"lin.\",\n \"S.\",\n \"méd.\",\n \"odontol.\",\n \"org.\",\n \"A.C.\",\n \"jun.\",\n \"déb.\",\n \"Av.\",\n \"álg.\",\n \"sup.\",\n \"fl.\",\n \"odont.\",\n \"caps.\",\n \"relat.\",\n \"organiz.\",\n \"hist.\",\n \"Fr.\",\n \"Ilmo.\",\n \"fem.\",\n \"ap.\",\n \"Ltd.\",\n \"pol.\",\n \"séc.\",\n \"prof.\",\n \"cx.\",\n \"nov.\",\n \"quím.\",\n \"mús.\",\n \"agric.\",\n \"mar.\",\n \"W.C.\",\n \"fr.\",\n \"cat.\",\n \"jan.\",\n \"pron.\",\n \"rel.\",\n \"autom.\",\n \"Sta.\",\n \"Dra.\",\n \"p.\",\n \"tel.\",\n \"div.\",\n \"p. ex.\",\n \"a.C.\",\n \"bras.\",\n \"Alm.\",\n \"Dr.\",\n \"comp.\",\n \"pq.\",\n \"arqueol.\",\n \"náut.\",\n \"biogr.\",\n \"f.\",\n \"círc.\",\n \"fac.\",\n \"d.C.\",\n \"apart.\",\n \"ex.\",\n \"Jr.\",\n \"set.\",\n \"tec.\",\n \"sociol.\",\n \"gram.\",\n \"ind.\",\n \"Ilma.\",\n \"vol.\",\n \"eng.\",\n \"rod.\",\n \"Ph.D.\",\n \"Dras.\",\n \"pp.\",\n \"elem.\",\n \"máq.\",\n \"cód.\",\n \"eletr.\",\n \"prod.\",\n \"ref.\",\n \"fil.\",\n \"a.m.\",\n \"A.M\",\n \"obs.\",\n \"N.T.\",\n \"contab.\",\n \"Sto.\",\n \"lit.\",\n \"educ.\",\n \"rementente\",\n \"desc.\",\n \"próx.\"\n ],\n \"variables\": {}\n }\n },\n \"root\": {\n \"grapheme\": {\n \"segmentRules\": {\n \"11\": {\n \"after\": \"$ExtPict\",\n \"before\": \"$ExtPict$Extend*$ZWJ\",\n \"breaks\": false\n },\n \"12\": {\n \"after\": \"$RI\",\n \"before\": \"^($RI$RI)*$RI\",\n \"breaks\": false\n },\n \"13\": {\n \"after\": \"$RI\",\n \"before\": \"[^\\\\uDDE6-\\\\uDDFF]($RI$RI)*$RI\",\n \"breaks\": false\n },\n \"3\": {\n \"after\": \"$LF\",\n \"before\": \"$CR\",\n \"breaks\": false\n },\n \"4\": {\n \"before\": \"($Control|$CR|$LF)\",\n \"breaks\": true\n },\n \"5\": {\n \"after\": \"($Control|$CR|$LF)\",\n \"breaks\": true\n },\n \"6\": {\n \"after\": \"($L|$V|$LV|$LVT)\",\n \"before\": \"$L\",\n \"breaks\": false\n },\n \"7\": {\n \"after\": \"($V|$T)\",\n \"before\": \"($LV|$V)\",\n \"breaks\": false\n },\n \"8\": {\n \"after\": \"$T\",\n \"before\": \"($LVT|$T)\",\n \"breaks\": false\n },\n \"9\": {\n \"after\": \"($Extend|$ZWJ)\",\n \"breaks\": false\n },\n \"9.1\": {\n \"after\": \"$SpacingMark\",\n \"breaks\": false\n },\n \"9.2\": {\n \"before\": \"$Prepend\",\n \"breaks\": false\n },\n \"9.3\": {\n \"after\": \"$LinkingConsonant\",\n \"before\": \"$LinkingConsonant$ExtCccZwj*$Virama$ExtCccZwj*\",\n \"breaks\": false\n }\n },\n \"suppressions\": [],\n \"variables\": {\n \"$CR\": \"\\\\r\",\n \"$Control\": \"(?:[\\\\0-\\\\t\\\\x0B\\\\f\\\\x0E-\\\\x1F\\\\x7F-\\\\x9F\\\\xAD\\\\u061C\\\\u180E\\\\u200B\\\\u200E\\\\u200F\\\\u2028-\\\\u202E\\\\u2060-\\\\u206F\\\\uFEFF\\\\uFFF0-\\\\uFFFB]|\\\\uD80D[\\\\uDC30-\\\\uDC3F]|\\\\uD82F[\\\\uDCA0-\\\\uDCA3]|\\\\uD834[\\\\uDD73-\\\\uDD7A]|\\\\uDB40[\\\\uDC00-\\\\uDC1F\\\\uDC80-\\\\uDCFF\\\\uDDF0-\\\\uDFFF]|[\\\\uDB41-\\\\uDB43][\\\\uDC00-\\\\uDFFF])\",\n \"$ExtCccZwj\": \"(?:[\\\\u0300-\\\\u034E\\\\u0350-\\\\u036F\\\\u0483-\\\\u0487\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0610-\\\\u061A\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DC\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u0711\\\\u0730-\\\\u074A\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0898-\\\\u089F\\\\u08CA-\\\\u08E1\\\\u08E3-\\\\u08FF\\\\u093C\\\\u094D\\\\u0951-\\\\u0954\\\\u09BC\\\\u09CD\\\\u09FE\\\\u0A3C\\\\u0A4D\\\\u0ABC\\\\u0ACD\\\\u0B3C\\\\u0B4D\\\\u0BCD\\\\u0C3C\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0CBC\\\\u0CCD\\\\u0D3B\\\\u0D3C\\\\u0D4D\\\\u0DCA\\\\u0E38-\\\\u0E3A\\\\u0E48-\\\\u0E4B\\\\u0EB8-\\\\u0EBA\\\\u0EC8-\\\\u0ECB\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F71\\\\u0F72\\\\u0F74\\\\u0F7A-\\\\u0F7D\\\\u0F80\\\\u0F82-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0FC6\\\\u1037\\\\u1039\\\\u103A\\\\u108D\\\\u135D-\\\\u135F\\\\u1714\\\\u17D2\\\\u17DD\\\\u18A9\\\\u1939-\\\\u193B\\\\u1A17\\\\u1A18\\\\u1A60\\\\u1A75-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ABD\\\\u1ABF-\\\\u1ACE\\\\u1B34\\\\u1B6B-\\\\u1B73\\\\u1BAB\\\\u1BE6\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE0\\\\u1CE2-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF8\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200D\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA806\\\\uA82C\\\\uA8C4\\\\uA8E0-\\\\uA8F1\\\\uA92B-\\\\uA92D\\\\uA9B3\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAF6\\\\uABED\\\\uFB1E\\\\uFE20-\\\\uFE2F]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE0D\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC46\\\\uDC70\\\\uDC7F\\\\uDCB9\\\\uDCBA\\\\uDD00-\\\\uDD02\\\\uDD33\\\\uDD34\\\\uDD73\\\\uDDCA\\\\uDE36\\\\uDEE9\\\\uDEEA\\\\uDF3B\\\\uDF3C\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC42\\\\uDC46\\\\uDC5E\\\\uDCC2\\\\uDCC3\\\\uDDBF\\\\uDDC0\\\\uDE3F\\\\uDEB7\\\\uDF2B]|\\\\uD806[\\\\uDC39\\\\uDC3A\\\\uDD3E\\\\uDD43\\\\uDDE0\\\\uDE34\\\\uDE47\\\\uDE99]|\\\\uD807[\\\\uDC3F\\\\uDD42\\\\uDD44\\\\uDD45\\\\uDD97\\\\uDF42]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD82F\\\\uDC9E|\\\\uD834[\\\\uDD65\\\\uDD67-\\\\uDD69\\\\uDD6E-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A])\",\n \"$ExtPict\": \"(?:[\\\\xA9\\\\xAE\\\\u203C\\\\u2049\\\\u2122\\\\u2139\\\\u2194-\\\\u2199\\\\u21A9\\\\u21AA\\\\u231A\\\\u231B\\\\u2328\\\\u2388\\\\u23CF\\\\u23E9-\\\\u23F3\\\\u23F8-\\\\u23FA\\\\u24C2\\\\u25AA\\\\u25AB\\\\u25B6\\\\u25C0\\\\u25FB-\\\\u25FE\\\\u2600-\\\\u2605\\\\u2607-\\\\u2612\\\\u2614-\\\\u2685\\\\u2690-\\\\u2705\\\\u2708-\\\\u2712\\\\u2714\\\\u2716\\\\u271D\\\\u2721\\\\u2728\\\\u2733\\\\u2734\\\\u2744\\\\u2747\\\\u274C\\\\u274E\\\\u2753-\\\\u2755\\\\u2757\\\\u2763-\\\\u2767\\\\u2795-\\\\u2797\\\\u27A1\\\\u27B0\\\\u27BF\\\\u2934\\\\u2935\\\\u2B05-\\\\u2B07\\\\u2B1B\\\\u2B1C\\\\u2B50\\\\u2B55\\\\u3030\\\\u303D\\\\u3297\\\\u3299]|\\\\uD83C[\\\\uDC00-\\\\uDCFF\\\\uDD0D-\\\\uDD0F\\\\uDD2F\\\\uDD6C-\\\\uDD71\\\\uDD7E\\\\uDD7F\\\\uDD8E\\\\uDD91-\\\\uDD9A\\\\uDDAD-\\\\uDDE5\\\\uDE01-\\\\uDE0F\\\\uDE1A\\\\uDE2F\\\\uDE32-\\\\uDE3A\\\\uDE3C-\\\\uDE3F\\\\uDE49-\\\\uDFFA]|\\\\uD83D[\\\\uDC00-\\\\uDD3D\\\\uDD46-\\\\uDE4F\\\\uDE80-\\\\uDEFF\\\\uDF74-\\\\uDF7F\\\\uDFD5-\\\\uDFFF]|\\\\uD83E[\\\\uDC0C-\\\\uDC0F\\\\uDC48-\\\\uDC4F\\\\uDC5A-\\\\uDC5F\\\\uDC88-\\\\uDC8F\\\\uDCAE-\\\\uDCFF\\\\uDD0C-\\\\uDD3A\\\\uDD3C-\\\\uDD45\\\\uDD47-\\\\uDEFF]|\\\\uD83F[\\\\uDC00-\\\\uDFFD])\",\n \"$Extend\": \"(?:[\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0610-\\\\u061A\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DC\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0898-\\\\u089F\\\\u08CA-\\\\u08E1\\\\u08E3-\\\\u0902\\\\u093A\\\\u093C\\\\u0941-\\\\u0948\\\\u094D\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981\\\\u09BC\\\\u09BE\\\\u09C1-\\\\u09C4\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01\\\\u0A02\\\\u0A3C\\\\u0A41\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81\\\\u0A82\\\\u0ABC\\\\u0AC1-\\\\u0AC5\\\\u0AC7\\\\u0AC8\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01\\\\u0B3C\\\\u0B3E\\\\u0B3F\\\\u0B41-\\\\u0B44\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE\\\\u0BC0\\\\u0BCD\\\\u0BD7\\\\u0C00\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C40\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81\\\\u0CBC\\\\u0CBF\\\\u0CC2\\\\u0CC6\\\\u0CCC\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0D00\\\\u0D01\\\\u0D3B\\\\u0D3C\\\\u0D3E\\\\u0D41-\\\\u0D44\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81\\\\u0DCA\\\\u0DCF\\\\u0DD2-\\\\u0DD4\\\\u0DD6\\\\u0DDF\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F71-\\\\u0F7E\\\\u0F80-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102D-\\\\u1030\\\\u1032-\\\\u1037\\\\u1039\\\\u103A\\\\u103D\\\\u103E\\\\u1058\\\\u1059\\\\u105E-\\\\u1060\\\\u1071-\\\\u1074\\\\u1082\\\\u1085\\\\u1086\\\\u108D\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1714\\\\u1732\\\\u1733\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4\\\\u17B5\\\\u17B7-\\\\u17BD\\\\u17C6\\\\u17C9-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180D\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u1922\\\\u1927\\\\u1928\\\\u1932\\\\u1939-\\\\u193B\\\\u1A17\\\\u1A18\\\\u1A1B\\\\u1A56\\\\u1A58-\\\\u1A5E\\\\u1A60\\\\u1A62\\\\u1A65-\\\\u1A6C\\\\u1A73-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B03\\\\u1B34-\\\\u1B3A\\\\u1B3C\\\\u1B42\\\\u1B6B-\\\\u1B73\\\\u1B80\\\\u1B81\\\\u1BA2-\\\\u1BA5\\\\u1BA8\\\\u1BA9\\\\u1BAB-\\\\u1BAD\\\\u1BE6\\\\u1BE8\\\\u1BE9\\\\u1BED\\\\u1BEF-\\\\u1BF1\\\\u1C2C-\\\\u1C33\\\\u1C36\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE0\\\\u1CE2-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF8\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA825\\\\uA826\\\\uA82C\\\\uA8C4\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA951\\\\uA980-\\\\uA982\\\\uA9B3\\\\uA9B6-\\\\uA9B9\\\\uA9BC\\\\uA9BD\\\\uA9E5\\\\uAA29-\\\\uAA2E\\\\uAA31\\\\uAA32\\\\uAA35\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA7C\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEC\\\\uAAED\\\\uAAF6\\\\uABE5\\\\uABE8\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFF9E\\\\uFF9F]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC01\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC81\\\\uDCB3-\\\\uDCB6\\\\uDCB9\\\\uDCBA\\\\uDCC2\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD2B\\\\uDD2D-\\\\uDD34\\\\uDD73\\\\uDD80\\\\uDD81\\\\uDDB6-\\\\uDDBE\\\\uDDC9-\\\\uDDCC\\\\uDDCF\\\\uDE2F-\\\\uDE31\\\\uDE34\\\\uDE36\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF\\\\uDEE3-\\\\uDEEA\\\\uDF00\\\\uDF01\\\\uDF3B\\\\uDF3C\\\\uDF3E\\\\uDF40\\\\uDF57\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC38-\\\\uDC3F\\\\uDC42-\\\\uDC44\\\\uDC46\\\\uDC5E\\\\uDCB0\\\\uDCB3-\\\\uDCB8\\\\uDCBA\\\\uDCBD\\\\uDCBF\\\\uDCC0\\\\uDCC2\\\\uDCC3\\\\uDDAF\\\\uDDB2-\\\\uDDB5\\\\uDDBC\\\\uDDBD\\\\uDDBF\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE33-\\\\uDE3A\\\\uDE3D\\\\uDE3F\\\\uDE40\\\\uDEAB\\\\uDEAD\\\\uDEB0-\\\\uDEB5\\\\uDEB7\\\\uDF1D-\\\\uDF1F\\\\uDF22-\\\\uDF25\\\\uDF27-\\\\uDF2B]|\\\\uD806[\\\\uDC2F-\\\\uDC37\\\\uDC39\\\\uDC3A\\\\uDD30\\\\uDD3B\\\\uDD3C\\\\uDD3E\\\\uDD43\\\\uDDD4-\\\\uDDD7\\\\uDDDA\\\\uDDDB\\\\uDDE0\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE38\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE56\\\\uDE59-\\\\uDE5B\\\\uDE8A-\\\\uDE96\\\\uDE98\\\\uDE99]|\\\\uD807[\\\\uDC30-\\\\uDC36\\\\uDC38-\\\\uDC3D\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCAA-\\\\uDCB0\\\\uDCB2\\\\uDCB3\\\\uDCB5\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD90\\\\uDD91\\\\uDD95\\\\uDD97\\\\uDEF3\\\\uDEF4\\\\uDF00\\\\uDF01\\\\uDF36-\\\\uDF3A\\\\uDF40\\\\uDF42]|\\\\uD80D[\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF8F-\\\\uDF92\\\\uDFE4]|\\\\uD82F[\\\\uDC9D\\\\uDC9E]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65\\\\uDD67-\\\\uDD69\\\\uDD6E-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])\",\n \"$L\": \"[\\\\u1100-\\\\u115F\\\\uA960-\\\\uA97C]\",\n \"$LF\": \"\\\\n\",\n \"$LV\": \"[\\\\uAC00\\\\uAC1C\\\\uAC38\\\\uAC54\\\\uAC70\\\\uAC8C\\\\uACA8\\\\uACC4\\\\uACE0\\\\uACFC\\\\uAD18\\\\uAD34\\\\uAD50\\\\uAD6C\\\\uAD88\\\\uADA4\\\\uADC0\\\\uADDC\\\\uADF8\\\\uAE14\\\\uAE30\\\\uAE4C\\\\uAE68\\\\uAE84\\\\uAEA0\\\\uAEBC\\\\uAED8\\\\uAEF4\\\\uAF10\\\\uAF2C\\\\uAF48\\\\uAF64\\\\uAF80\\\\uAF9C\\\\uAFB8\\\\uAFD4\\\\uAFF0\\\\uB00C\\\\uB028\\\\uB044\\\\uB060\\\\uB07C\\\\uB098\\\\uB0B4\\\\uB0D0\\\\uB0EC\\\\uB108\\\\uB124\\\\uB140\\\\uB15C\\\\uB178\\\\uB194\\\\uB1B0\\\\uB1CC\\\\uB1E8\\\\uB204\\\\uB220\\\\uB23C\\\\uB258\\\\uB274\\\\uB290\\\\uB2AC\\\\uB2C8\\\\uB2E4\\\\uB300\\\\uB31C\\\\uB338\\\\uB354\\\\uB370\\\\uB38C\\\\uB3A8\\\\uB3C4\\\\uB3E0\\\\uB3FC\\\\uB418\\\\uB434\\\\uB450\\\\uB46C\\\\uB488\\\\uB4A4\\\\uB4C0\\\\uB4DC\\\\uB4F8\\\\uB514\\\\uB530\\\\uB54C\\\\uB568\\\\uB584\\\\uB5A0\\\\uB5BC\\\\uB5D8\\\\uB5F4\\\\uB610\\\\uB62C\\\\uB648\\\\uB664\\\\uB680\\\\uB69C\\\\uB6B8\\\\uB6D4\\\\uB6F0\\\\uB70C\\\\uB728\\\\uB744\\\\uB760\\\\uB77C\\\\uB798\\\\uB7B4\\\\uB7D0\\\\uB7EC\\\\uB808\\\\uB824\\\\uB840\\\\uB85C\\\\uB878\\\\uB894\\\\uB8B0\\\\uB8CC\\\\uB8E8\\\\uB904\\\\uB920\\\\uB93C\\\\uB958\\\\uB974\\\\uB990\\\\uB9AC\\\\uB9C8\\\\uB9E4\\\\uBA00\\\\uBA1C\\\\uBA38\\\\uBA54\\\\uBA70\\\\uBA8C\\\\uBAA8\\\\uBAC4\\\\uBAE0\\\\uBAFC\\\\uBB18\\\\uBB34\\\\uBB50\\\\uBB6C\\\\uBB88\\\\uBBA4\\\\uBBC0\\\\uBBDC\\\\uBBF8\\\\uBC14\\\\uBC30\\\\uBC4C\\\\uBC68\\\\uBC84\\\\uBCA0\\\\uBCBC\\\\uBCD8\\\\uBCF4\\\\uBD10\\\\uBD2C\\\\uBD48\\\\uBD64\\\\uBD80\\\\uBD9C\\\\uBDB8\\\\uBDD4\\\\uBDF0\\\\uBE0C\\\\uBE28\\\\uBE44\\\\uBE60\\\\uBE7C\\\\uBE98\\\\uBEB4\\\\uBED0\\\\uBEEC\\\\uBF08\\\\uBF24\\\\uBF40\\\\uBF5C\\\\uBF78\\\\uBF94\\\\uBFB0\\\\uBFCC\\\\uBFE8\\\\uC004\\\\uC020\\\\uC03C\\\\uC058\\\\uC074\\\\uC090\\\\uC0AC\\\\uC0C8\\\\uC0E4\\\\uC100\\\\uC11C\\\\uC138\\\\uC154\\\\uC170\\\\uC18C\\\\uC1A8\\\\uC1C4\\\\uC1E0\\\\uC1FC\\\\uC218\\\\uC234\\\\uC250\\\\uC26C\\\\uC288\\\\uC2A4\\\\uC2C0\\\\uC2DC\\\\uC2F8\\\\uC314\\\\uC330\\\\uC34C\\\\uC368\\\\uC384\\\\uC3A0\\\\uC3BC\\\\uC3D8\\\\uC3F4\\\\uC410\\\\uC42C\\\\uC448\\\\uC464\\\\uC480\\\\uC49C\\\\uC4B8\\\\uC4D4\\\\uC4F0\\\\uC50C\\\\uC528\\\\uC544\\\\uC560\\\\uC57C\\\\uC598\\\\uC5B4\\\\uC5D0\\\\uC5EC\\\\uC608\\\\uC624\\\\uC640\\\\uC65C\\\\uC678\\\\uC694\\\\uC6B0\\\\uC6CC\\\\uC6E8\\\\uC704\\\\uC720\\\\uC73C\\\\uC758\\\\uC774\\\\uC790\\\\uC7AC\\\\uC7C8\\\\uC7E4\\\\uC800\\\\uC81C\\\\uC838\\\\uC854\\\\uC870\\\\uC88C\\\\uC8A8\\\\uC8C4\\\\uC8E0\\\\uC8FC\\\\uC918\\\\uC934\\\\uC950\\\\uC96C\\\\uC988\\\\uC9A4\\\\uC9C0\\\\uC9DC\\\\uC9F8\\\\uCA14\\\\uCA30\\\\uCA4C\\\\uCA68\\\\uCA84\\\\uCAA0\\\\uCABC\\\\uCAD8\\\\uCAF4\\\\uCB10\\\\uCB2C\\\\uCB48\\\\uCB64\\\\uCB80\\\\uCB9C\\\\uCBB8\\\\uCBD4\\\\uCBF0\\\\uCC0C\\\\uCC28\\\\uCC44\\\\uCC60\\\\uCC7C\\\\uCC98\\\\uCCB4\\\\uCCD0\\\\uCCEC\\\\uCD08\\\\uCD24\\\\uCD40\\\\uCD5C\\\\uCD78\\\\uCD94\\\\uCDB0\\\\uCDCC\\\\uCDE8\\\\uCE04\\\\uCE20\\\\uCE3C\\\\uCE58\\\\uCE74\\\\uCE90\\\\uCEAC\\\\uCEC8\\\\uCEE4\\\\uCF00\\\\uCF1C\\\\uCF38\\\\uCF54\\\\uCF70\\\\uCF8C\\\\uCFA8\\\\uCFC4\\\\uCFE0\\\\uCFFC\\\\uD018\\\\uD034\\\\uD050\\\\uD06C\\\\uD088\\\\uD0A4\\\\uD0C0\\\\uD0DC\\\\uD0F8\\\\uD114\\\\uD130\\\\uD14C\\\\uD168\\\\uD184\\\\uD1A0\\\\uD1BC\\\\uD1D8\\\\uD1F4\\\\uD210\\\\uD22C\\\\uD248\\\\uD264\\\\uD280\\\\uD29C\\\\uD2B8\\\\uD2D4\\\\uD2F0\\\\uD30C\\\\uD328\\\\uD344\\\\uD360\\\\uD37C\\\\uD398\\\\uD3B4\\\\uD3D0\\\\uD3EC\\\\uD408\\\\uD424\\\\uD440\\\\uD45C\\\\uD478\\\\uD494\\\\uD4B0\\\\uD4CC\\\\uD4E8\\\\uD504\\\\uD520\\\\uD53C\\\\uD558\\\\uD574\\\\uD590\\\\uD5AC\\\\uD5C8\\\\uD5E4\\\\uD600\\\\uD61C\\\\uD638\\\\uD654\\\\uD670\\\\uD68C\\\\uD6A8\\\\uD6C4\\\\uD6E0\\\\uD6FC\\\\uD718\\\\uD734\\\\uD750\\\\uD76C\\\\uD788]\",\n \"$LVT\": \"[\\\\uAC01-\\\\uAC1B\\\\uAC1D-\\\\uAC37\\\\uAC39-\\\\uAC53\\\\uAC55-\\\\uAC6F\\\\uAC71-\\\\uAC8B\\\\uAC8D-\\\\uACA7\\\\uACA9-\\\\uACC3\\\\uACC5-\\\\uACDF\\\\uACE1-\\\\uACFB\\\\uACFD-\\\\uAD17\\\\uAD19-\\\\uAD33\\\\uAD35-\\\\uAD4F\\\\uAD51-\\\\uAD6B\\\\uAD6D-\\\\uAD87\\\\uAD89-\\\\uADA3\\\\uADA5-\\\\uADBF\\\\uADC1-\\\\uADDB\\\\uADDD-\\\\uADF7\\\\uADF9-\\\\uAE13\\\\uAE15-\\\\uAE2F\\\\uAE31-\\\\uAE4B\\\\uAE4D-\\\\uAE67\\\\uAE69-\\\\uAE83\\\\uAE85-\\\\uAE9F\\\\uAEA1-\\\\uAEBB\\\\uAEBD-\\\\uAED7\\\\uAED9-\\\\uAEF3\\\\uAEF5-\\\\uAF0F\\\\uAF11-\\\\uAF2B\\\\uAF2D-\\\\uAF47\\\\uAF49-\\\\uAF63\\\\uAF65-\\\\uAF7F\\\\uAF81-\\\\uAF9B\\\\uAF9D-\\\\uAFB7\\\\uAFB9-\\\\uAFD3\\\\uAFD5-\\\\uAFEF\\\\uAFF1-\\\\uB00B\\\\uB00D-\\\\uB027\\\\uB029-\\\\uB043\\\\uB045-\\\\uB05F\\\\uB061-\\\\uB07B\\\\uB07D-\\\\uB097\\\\uB099-\\\\uB0B3\\\\uB0B5-\\\\uB0CF\\\\uB0D1-\\\\uB0EB\\\\uB0ED-\\\\uB107\\\\uB109-\\\\uB123\\\\uB125-\\\\uB13F\\\\uB141-\\\\uB15B\\\\uB15D-\\\\uB177\\\\uB179-\\\\uB193\\\\uB195-\\\\uB1AF\\\\uB1B1-\\\\uB1CB\\\\uB1CD-\\\\uB1E7\\\\uB1E9-\\\\uB203\\\\uB205-\\\\uB21F\\\\uB221-\\\\uB23B\\\\uB23D-\\\\uB257\\\\uB259-\\\\uB273\\\\uB275-\\\\uB28F\\\\uB291-\\\\uB2AB\\\\uB2AD-\\\\uB2C7\\\\uB2C9-\\\\uB2E3\\\\uB2E5-\\\\uB2FF\\\\uB301-\\\\uB31B\\\\uB31D-\\\\uB337\\\\uB339-\\\\uB353\\\\uB355-\\\\uB36F\\\\uB371-\\\\uB38B\\\\uB38D-\\\\uB3A7\\\\uB3A9-\\\\uB3C3\\\\uB3C5-\\\\uB3DF\\\\uB3E1-\\\\uB3FB\\\\uB3FD-\\\\uB417\\\\uB419-\\\\uB433\\\\uB435-\\\\uB44F\\\\uB451-\\\\uB46B\\\\uB46D-\\\\uB487\\\\uB489-\\\\uB4A3\\\\uB4A5-\\\\uB4BF\\\\uB4C1-\\\\uB4DB\\\\uB4DD-\\\\uB4F7\\\\uB4F9-\\\\uB513\\\\uB515-\\\\uB52F\\\\uB531-\\\\uB54B\\\\uB54D-\\\\uB567\\\\uB569-\\\\uB583\\\\uB585-\\\\uB59F\\\\uB5A1-\\\\uB5BB\\\\uB5BD-\\\\uB5D7\\\\uB5D9-\\\\uB5F3\\\\uB5F5-\\\\uB60F\\\\uB611-\\\\uB62B\\\\uB62D-\\\\uB647\\\\uB649-\\\\uB663\\\\uB665-\\\\uB67F\\\\uB681-\\\\uB69B\\\\uB69D-\\\\uB6B7\\\\uB6B9-\\\\uB6D3\\\\uB6D5-\\\\uB6EF\\\\uB6F1-\\\\uB70B\\\\uB70D-\\\\uB727\\\\uB729-\\\\uB743\\\\uB745-\\\\uB75F\\\\uB761-\\\\uB77B\\\\uB77D-\\\\uB797\\\\uB799-\\\\uB7B3\\\\uB7B5-\\\\uB7CF\\\\uB7D1-\\\\uB7EB\\\\uB7ED-\\\\uB807\\\\uB809-\\\\uB823\\\\uB825-\\\\uB83F\\\\uB841-\\\\uB85B\\\\uB85D-\\\\uB877\\\\uB879-\\\\uB893\\\\uB895-\\\\uB8AF\\\\uB8B1-\\\\uB8CB\\\\uB8CD-\\\\uB8E7\\\\uB8E9-\\\\uB903\\\\uB905-\\\\uB91F\\\\uB921-\\\\uB93B\\\\uB93D-\\\\uB957\\\\uB959-\\\\uB973\\\\uB975-\\\\uB98F\\\\uB991-\\\\uB9AB\\\\uB9AD-\\\\uB9C7\\\\uB9C9-\\\\uB9E3\\\\uB9E5-\\\\uB9FF\\\\uBA01-\\\\uBA1B\\\\uBA1D-\\\\uBA37\\\\uBA39-\\\\uBA53\\\\uBA55-\\\\uBA6F\\\\uBA71-\\\\uBA8B\\\\uBA8D-\\\\uBAA7\\\\uBAA9-\\\\uBAC3\\\\uBAC5-\\\\uBADF\\\\uBAE1-\\\\uBAFB\\\\uBAFD-\\\\uBB17\\\\uBB19-\\\\uBB33\\\\uBB35-\\\\uBB4F\\\\uBB51-\\\\uBB6B\\\\uBB6D-\\\\uBB87\\\\uBB89-\\\\uBBA3\\\\uBBA5-\\\\uBBBF\\\\uBBC1-\\\\uBBDB\\\\uBBDD-\\\\uBBF7\\\\uBBF9-\\\\uBC13\\\\uBC15-\\\\uBC2F\\\\uBC31-\\\\uBC4B\\\\uBC4D-\\\\uBC67\\\\uBC69-\\\\uBC83\\\\uBC85-\\\\uBC9F\\\\uBCA1-\\\\uBCBB\\\\uBCBD-\\\\uBCD7\\\\uBCD9-\\\\uBCF3\\\\uBCF5-\\\\uBD0F\\\\uBD11-\\\\uBD2B\\\\uBD2D-\\\\uBD47\\\\uBD49-\\\\uBD63\\\\uBD65-\\\\uBD7F\\\\uBD81-\\\\uBD9B\\\\uBD9D-\\\\uBDB7\\\\uBDB9-\\\\uBDD3\\\\uBDD5-\\\\uBDEF\\\\uBDF1-\\\\uBE0B\\\\uBE0D-\\\\uBE27\\\\uBE29-\\\\uBE43\\\\uBE45-\\\\uBE5F\\\\uBE61-\\\\uBE7B\\\\uBE7D-\\\\uBE97\\\\uBE99-\\\\uBEB3\\\\uBEB5-\\\\uBECF\\\\uBED1-\\\\uBEEB\\\\uBEED-\\\\uBF07\\\\uBF09-\\\\uBF23\\\\uBF25-\\\\uBF3F\\\\uBF41-\\\\uBF5B\\\\uBF5D-\\\\uBF77\\\\uBF79-\\\\uBF93\\\\uBF95-\\\\uBFAF\\\\uBFB1-\\\\uBFCB\\\\uBFCD-\\\\uBFE7\\\\uBFE9-\\\\uC003\\\\uC005-\\\\uC01F\\\\uC021-\\\\uC03B\\\\uC03D-\\\\uC057\\\\uC059-\\\\uC073\\\\uC075-\\\\uC08F\\\\uC091-\\\\uC0AB\\\\uC0AD-\\\\uC0C7\\\\uC0C9-\\\\uC0E3\\\\uC0E5-\\\\uC0FF\\\\uC101-\\\\uC11B\\\\uC11D-\\\\uC137\\\\uC139-\\\\uC153\\\\uC155-\\\\uC16F\\\\uC171-\\\\uC18B\\\\uC18D-\\\\uC1A7\\\\uC1A9-\\\\uC1C3\\\\uC1C5-\\\\uC1DF\\\\uC1E1-\\\\uC1FB\\\\uC1FD-\\\\uC217\\\\uC219-\\\\uC233\\\\uC235-\\\\uC24F\\\\uC251-\\\\uC26B\\\\uC26D-\\\\uC287\\\\uC289-\\\\uC2A3\\\\uC2A5-\\\\uC2BF\\\\uC2C1-\\\\uC2DB\\\\uC2DD-\\\\uC2F7\\\\uC2F9-\\\\uC313\\\\uC315-\\\\uC32F\\\\uC331-\\\\uC34B\\\\uC34D-\\\\uC367\\\\uC369-\\\\uC383\\\\uC385-\\\\uC39F\\\\uC3A1-\\\\uC3BB\\\\uC3BD-\\\\uC3D7\\\\uC3D9-\\\\uC3F3\\\\uC3F5-\\\\uC40F\\\\uC411-\\\\uC42B\\\\uC42D-\\\\uC447\\\\uC449-\\\\uC463\\\\uC465-\\\\uC47F\\\\uC481-\\\\uC49B\\\\uC49D-\\\\uC4B7\\\\uC4B9-\\\\uC4D3\\\\uC4D5-\\\\uC4EF\\\\uC4F1-\\\\uC50B\\\\uC50D-\\\\uC527\\\\uC529-\\\\uC543\\\\uC545-\\\\uC55F\\\\uC561-\\\\uC57B\\\\uC57D-\\\\uC597\\\\uC599-\\\\uC5B3\\\\uC5B5-\\\\uC5CF\\\\uC5D1-\\\\uC5EB\\\\uC5ED-\\\\uC607\\\\uC609-\\\\uC623\\\\uC625-\\\\uC63F\\\\uC641-\\\\uC65B\\\\uC65D-\\\\uC677\\\\uC679-\\\\uC693\\\\uC695-\\\\uC6AF\\\\uC6B1-\\\\uC6CB\\\\uC6CD-\\\\uC6E7\\\\uC6E9-\\\\uC703\\\\uC705-\\\\uC71F\\\\uC721-\\\\uC73B\\\\uC73D-\\\\uC757\\\\uC759-\\\\uC773\\\\uC775-\\\\uC78F\\\\uC791-\\\\uC7AB\\\\uC7AD-\\\\uC7C7\\\\uC7C9-\\\\uC7E3\\\\uC7E5-\\\\uC7FF\\\\uC801-\\\\uC81B\\\\uC81D-\\\\uC837\\\\uC839-\\\\uC853\\\\uC855-\\\\uC86F\\\\uC871-\\\\uC88B\\\\uC88D-\\\\uC8A7\\\\uC8A9-\\\\uC8C3\\\\uC8C5-\\\\uC8DF\\\\uC8E1-\\\\uC8FB\\\\uC8FD-\\\\uC917\\\\uC919-\\\\uC933\\\\uC935-\\\\uC94F\\\\uC951-\\\\uC96B\\\\uC96D-\\\\uC987\\\\uC989-\\\\uC9A3\\\\uC9A5-\\\\uC9BF\\\\uC9C1-\\\\uC9DB\\\\uC9DD-\\\\uC9F7\\\\uC9F9-\\\\uCA13\\\\uCA15-\\\\uCA2F\\\\uCA31-\\\\uCA4B\\\\uCA4D-\\\\uCA67\\\\uCA69-\\\\uCA83\\\\uCA85-\\\\uCA9F\\\\uCAA1-\\\\uCABB\\\\uCABD-\\\\uCAD7\\\\uCAD9-\\\\uCAF3\\\\uCAF5-\\\\uCB0F\\\\uCB11-\\\\uCB2B\\\\uCB2D-\\\\uCB47\\\\uCB49-\\\\uCB63\\\\uCB65-\\\\uCB7F\\\\uCB81-\\\\uCB9B\\\\uCB9D-\\\\uCBB7\\\\uCBB9-\\\\uCBD3\\\\uCBD5-\\\\uCBEF\\\\uCBF1-\\\\uCC0B\\\\uCC0D-\\\\uCC27\\\\uCC29-\\\\uCC43\\\\uCC45-\\\\uCC5F\\\\uCC61-\\\\uCC7B\\\\uCC7D-\\\\uCC97\\\\uCC99-\\\\uCCB3\\\\uCCB5-\\\\uCCCF\\\\uCCD1-\\\\uCCEB\\\\uCCED-\\\\uCD07\\\\uCD09-\\\\uCD23\\\\uCD25-\\\\uCD3F\\\\uCD41-\\\\uCD5B\\\\uCD5D-\\\\uCD77\\\\uCD79-\\\\uCD93\\\\uCD95-\\\\uCDAF\\\\uCDB1-\\\\uCDCB\\\\uCDCD-\\\\uCDE7\\\\uCDE9-\\\\uCE03\\\\uCE05-\\\\uCE1F\\\\uCE21-\\\\uCE3B\\\\uCE3D-\\\\uCE57\\\\uCE59-\\\\uCE73\\\\uCE75-\\\\uCE8F\\\\uCE91-\\\\uCEAB\\\\uCEAD-\\\\uCEC7\\\\uCEC9-\\\\uCEE3\\\\uCEE5-\\\\uCEFF\\\\uCF01-\\\\uCF1B\\\\uCF1D-\\\\uCF37\\\\uCF39-\\\\uCF53\\\\uCF55-\\\\uCF6F\\\\uCF71-\\\\uCF8B\\\\uCF8D-\\\\uCFA7\\\\uCFA9-\\\\uCFC3\\\\uCFC5-\\\\uCFDF\\\\uCFE1-\\\\uCFFB\\\\uCFFD-\\\\uD017\\\\uD019-\\\\uD033\\\\uD035-\\\\uD04F\\\\uD051-\\\\uD06B\\\\uD06D-\\\\uD087\\\\uD089-\\\\uD0A3\\\\uD0A5-\\\\uD0BF\\\\uD0C1-\\\\uD0DB\\\\uD0DD-\\\\uD0F7\\\\uD0F9-\\\\uD113\\\\uD115-\\\\uD12F\\\\uD131-\\\\uD14B\\\\uD14D-\\\\uD167\\\\uD169-\\\\uD183\\\\uD185-\\\\uD19F\\\\uD1A1-\\\\uD1BB\\\\uD1BD-\\\\uD1D7\\\\uD1D9-\\\\uD1F3\\\\uD1F5-\\\\uD20F\\\\uD211-\\\\uD22B\\\\uD22D-\\\\uD247\\\\uD249-\\\\uD263\\\\uD265-\\\\uD27F\\\\uD281-\\\\uD29B\\\\uD29D-\\\\uD2B7\\\\uD2B9-\\\\uD2D3\\\\uD2D5-\\\\uD2EF\\\\uD2F1-\\\\uD30B\\\\uD30D-\\\\uD327\\\\uD329-\\\\uD343\\\\uD345-\\\\uD35F\\\\uD361-\\\\uD37B\\\\uD37D-\\\\uD397\\\\uD399-\\\\uD3B3\\\\uD3B5-\\\\uD3CF\\\\uD3D1-\\\\uD3EB\\\\uD3ED-\\\\uD407\\\\uD409-\\\\uD423\\\\uD425-\\\\uD43F\\\\uD441-\\\\uD45B\\\\uD45D-\\\\uD477\\\\uD479-\\\\uD493\\\\uD495-\\\\uD4AF\\\\uD4B1-\\\\uD4CB\\\\uD4CD-\\\\uD4E7\\\\uD4E9-\\\\uD503\\\\uD505-\\\\uD51F\\\\uD521-\\\\uD53B\\\\uD53D-\\\\uD557\\\\uD559-\\\\uD573\\\\uD575-\\\\uD58F\\\\uD591-\\\\uD5AB\\\\uD5AD-\\\\uD5C7\\\\uD5C9-\\\\uD5E3\\\\uD5E5-\\\\uD5FF\\\\uD601-\\\\uD61B\\\\uD61D-\\\\uD637\\\\uD639-\\\\uD653\\\\uD655-\\\\uD66F\\\\uD671-\\\\uD68B\\\\uD68D-\\\\uD6A7\\\\uD6A9-\\\\uD6C3\\\\uD6C5-\\\\uD6DF\\\\uD6E1-\\\\uD6FB\\\\uD6FD-\\\\uD717\\\\uD719-\\\\uD733\\\\uD735-\\\\uD74F\\\\uD751-\\\\uD76B\\\\uD76D-\\\\uD787\\\\uD789-\\\\uD7A3]\",\n \"$LinkingConsonant\": \"[\\\\u0915-\\\\u0939\\\\u0958-\\\\u095F\\\\u0978-\\\\u097F\\\\u0995-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09DC\\\\u09DD\\\\u09DF\\\\u09F0\\\\u09F1\\\\u0A95-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0AF9\\\\u0B15-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B5C\\\\u0B5D\\\\u0B5F\\\\u0B71\\\\u0C15-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C58-\\\\u0C5A\\\\u0D15-\\\\u0D3A]\",\n \"$Prepend\": \"(?:[\\\\u0600-\\\\u0605\\\\u06DD\\\\u070F\\\\u0890\\\\u0891\\\\u08E2\\\\u0D4E]|\\\\uD804[\\\\uDCBD\\\\uDCCD\\\\uDDC2\\\\uDDC3]|\\\\uD806[\\\\uDD3F\\\\uDD41\\\\uDE3A\\\\uDE84-\\\\uDE89]|\\\\uD807[\\\\uDD46\\\\uDF02])\",\n \"$RI\": \"(?:\\\\uD83C[\\\\uDDE6-\\\\uDDFF])\",\n \"$SpacingMark\": \"(?:[\\\\u0903\\\\u093B\\\\u093E-\\\\u0940\\\\u0949-\\\\u094C\\\\u094E\\\\u094F\\\\u0982\\\\u0983\\\\u09BF\\\\u09C0\\\\u09C7\\\\u09C8\\\\u09CB\\\\u09CC\\\\u0A03\\\\u0A3E-\\\\u0A40\\\\u0A83\\\\u0ABE-\\\\u0AC0\\\\u0AC9\\\\u0ACB\\\\u0ACC\\\\u0B02\\\\u0B03\\\\u0B40\\\\u0B47\\\\u0B48\\\\u0B4B\\\\u0B4C\\\\u0BBF\\\\u0BC1\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCC\\\\u0C01-\\\\u0C03\\\\u0C41-\\\\u0C44\\\\u0C82\\\\u0C83\\\\u0CBE\\\\u0CC0\\\\u0CC1\\\\u0CC3\\\\u0CC4\\\\u0CC7\\\\u0CC8\\\\u0CCA\\\\u0CCB\\\\u0CF3\\\\u0D02\\\\u0D03\\\\u0D3F\\\\u0D40\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4C\\\\u0D82\\\\u0D83\\\\u0DD0\\\\u0DD1\\\\u0DD8-\\\\u0DDE\\\\u0DF2\\\\u0DF3\\\\u0E33\\\\u0EB3\\\\u0F3E\\\\u0F3F\\\\u0F7F\\\\u1031\\\\u103B\\\\u103C\\\\u1056\\\\u1057\\\\u1084\\\\u1715\\\\u1734\\\\u17B6\\\\u17BE-\\\\u17C5\\\\u17C7\\\\u17C8\\\\u1923-\\\\u1926\\\\u1929-\\\\u192B\\\\u1930\\\\u1931\\\\u1933-\\\\u1938\\\\u1A19\\\\u1A1A\\\\u1A55\\\\u1A57\\\\u1A6D-\\\\u1A72\\\\u1B04\\\\u1B3B\\\\u1B3D-\\\\u1B41\\\\u1B43\\\\u1B44\\\\u1B82\\\\u1BA1\\\\u1BA6\\\\u1BA7\\\\u1BAA\\\\u1BE7\\\\u1BEA-\\\\u1BEC\\\\u1BEE\\\\u1BF2\\\\u1BF3\\\\u1C24-\\\\u1C2B\\\\u1C34\\\\u1C35\\\\u1CE1\\\\u1CF7\\\\uA823\\\\uA824\\\\uA827\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C3\\\\uA952\\\\uA953\\\\uA983\\\\uA9B4\\\\uA9B5\\\\uA9BA\\\\uA9BB\\\\uA9BE-\\\\uA9C0\\\\uAA2F\\\\uAA30\\\\uAA33\\\\uAA34\\\\uAA4D\\\\uAAEB\\\\uAAEE\\\\uAAEF\\\\uAAF5\\\\uABE3\\\\uABE4\\\\uABE6\\\\uABE7\\\\uABE9\\\\uABEA\\\\uABEC]|\\\\uD804[\\\\uDC00\\\\uDC02\\\\uDC82\\\\uDCB0-\\\\uDCB2\\\\uDCB7\\\\uDCB8\\\\uDD2C\\\\uDD45\\\\uDD46\\\\uDD82\\\\uDDB3-\\\\uDDB5\\\\uDDBF\\\\uDDC0\\\\uDDCE\\\\uDE2C-\\\\uDE2E\\\\uDE32\\\\uDE33\\\\uDE35\\\\uDEE0-\\\\uDEE2\\\\uDF02\\\\uDF03\\\\uDF3F\\\\uDF41-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF62\\\\uDF63]|\\\\uD805[\\\\uDC35-\\\\uDC37\\\\uDC40\\\\uDC41\\\\uDC45\\\\uDCB1\\\\uDCB2\\\\uDCB9\\\\uDCBB\\\\uDCBC\\\\uDCBE\\\\uDCC1\\\\uDDB0\\\\uDDB1\\\\uDDB8-\\\\uDDBB\\\\uDDBE\\\\uDE30-\\\\uDE32\\\\uDE3B\\\\uDE3C\\\\uDE3E\\\\uDEAC\\\\uDEAE\\\\uDEAF\\\\uDEB6\\\\uDF26]|\\\\uD806[\\\\uDC2C-\\\\uDC2E\\\\uDC38\\\\uDD31-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3D\\\\uDD40\\\\uDD42\\\\uDDD1-\\\\uDDD3\\\\uDDDC-\\\\uDDDF\\\\uDDE4\\\\uDE39\\\\uDE57\\\\uDE58\\\\uDE97]|\\\\uD807[\\\\uDC2F\\\\uDC3E\\\\uDCA9\\\\uDCB1\\\\uDCB4\\\\uDD8A-\\\\uDD8E\\\\uDD93\\\\uDD94\\\\uDD96\\\\uDEF5\\\\uDEF6\\\\uDF03\\\\uDF34\\\\uDF35\\\\uDF3E\\\\uDF3F\\\\uDF41]|\\\\uD81B[\\\\uDF51-\\\\uDF87\\\\uDFF0\\\\uDFF1]|\\\\uD834[\\\\uDD66\\\\uDD6D])\",\n \"$T\": \"[\\\\u11A8-\\\\u11FF\\\\uD7CB-\\\\uD7FB]\",\n \"$V\": \"[\\\\u1160-\\\\u11A7\\\\uD7B0-\\\\uD7C6]\",\n \"$Virama\": \"[\\\\u094D\\\\u09CD\\\\u0ACD\\\\u0B4D\\\\u0C4D\\\\u0D4D]\",\n \"$ZWJ\": \"\\\\u200D\"\n }\n },\n \"sentence\": {\n \"segmentRules\": {\n \"10\": {\n \"after\": \"($Sp|$ParaSep)\",\n \"before\": \"$SATerm$Close*$Sp*\",\n \"breaks\": false\n },\n \"11\": {\n \"before\": \"$SATerm$Close*$Sp*$ParaSep?\",\n \"breaks\": true\n },\n \"3\": {\n \"after\": \"$LF\",\n \"before\": \"$CR\",\n \"breaks\": false\n },\n \"4\": {\n \"before\": \"$ParaSep\",\n \"breaks\": true\n },\n \"5\": {\n \"after\": \"(?:$Format|$Extend)\",\n \"breaks\": false\n },\n \"6\": {\n \"after\": \"$Numeric\",\n \"before\": \"$ATerm\",\n \"breaks\": false\n },\n \"7\": {\n \"after\": \"$Upper\",\n \"before\": \"($Upper|$Lower)$ATerm\",\n \"breaks\": false\n },\n \"8\": {\n \"after\": \"$NotPreLower_*$Lower\",\n \"before\": \"$ATerm$Close*$Sp*\",\n \"breaks\": false\n },\n \"8.1\": {\n \"after\": \"($SContinue|$SATerm)\",\n \"before\": \"$SATerm$Close*$Sp*\",\n \"breaks\": false\n },\n \"9\": {\n \"after\": \"($Close|$Sp|$ParaSep)\",\n \"before\": \"$SATerm$Close*\",\n \"breaks\": false\n },\n \"998\": {\n \"after\": \"$Any\",\n \"breaks\": false\n }\n },\n \"suppressions\": [],\n \"variables\": {\n \"$ATerm\": \"([\\\\.\\\\u2024\\\\uFE52\\\\uFF0E](?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$Any\": \"(?:[\\\\0-\\\\uD7FF\\\\uE000-\\\\uFFFF]|[\\\\uD800-\\\\uDBFF][\\\\uDC00-\\\\uDFFF]|[\\\\uD800-\\\\uDBFF](?![\\\\uDC00-\\\\uDFFF])|(?:[^\\\\uD800-\\\\uDBFF]|^)[\\\\uDC00-\\\\uDFFF])\",\n \"$CR\": \"\\\\r\",\n \"$Close\": \"((?:[\\\"'-\\\\)\\\\[\\\\]\\\\{\\\\}\\\\xAB\\\\xBB\\\\u0F3A-\\\\u0F3D\\\\u169B\\\\u169C\\\\u2018-\\\\u201F\\\\u2039\\\\u203A\\\\u2045\\\\u2046\\\\u207D\\\\u207E\\\\u208D\\\\u208E\\\\u2308-\\\\u230B\\\\u2329\\\\u232A\\\\u275B-\\\\u2760\\\\u2768-\\\\u2775\\\\u27C5\\\\u27C6\\\\u27E6-\\\\u27EF\\\\u2983-\\\\u2998\\\\u29D8-\\\\u29DB\\\\u29FC\\\\u29FD\\\\u2E00-\\\\u2E0D\\\\u2E1C\\\\u2E1D\\\\u2E20-\\\\u2E29\\\\u2E42\\\\u2E55-\\\\u2E5C\\\\u3008-\\\\u3011\\\\u3014-\\\\u301B\\\\u301D-\\\\u301F\\\\uFD3E\\\\uFD3F\\\\uFE17\\\\uFE18\\\\uFE35-\\\\uFE44\\\\uFE47\\\\uFE48\\\\uFE59-\\\\uFE5E\\\\uFF08\\\\uFF09\\\\uFF3B\\\\uFF3D\\\\uFF5B\\\\uFF5D\\\\uFF5F\\\\uFF60\\\\uFF62\\\\uFF63]|\\\\uD83D[\\\\uDE76-\\\\uDE78])(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$Extend\": \"(?:[\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0610-\\\\u061A\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DC\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0898-\\\\u089F\\\\u08CA-\\\\u08E1\\\\u08E3-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180D\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C\\\\u200D\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFF9E\\\\uFF9F]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCC2\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])\",\n \"$FE\": \"(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])\",\n \"$Format\": \"(?:[\\\\xAD\\\\u0600-\\\\u0605\\\\u061C\\\\u06DD\\\\u070F\\\\u0890\\\\u0891\\\\u08E2\\\\u180E\\\\u200B\\\\u200E\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\uFEFF\\\\uFFF9-\\\\uFFFB]|\\\\uD804[\\\\uDCBD\\\\uDCCD]|\\\\uD80D[\\\\uDC30-\\\\uDC3F]|\\\\uD82F[\\\\uDCA0-\\\\uDCA3]|\\\\uD834[\\\\uDD73-\\\\uDD7A]|\\\\uDB40\\\\uDC01)\",\n \"$LF\": \"\\\\n\",\n \"$Lower\": \"((?:[a-z\\\\xAA\\\\xB5\\\\xBA\\\\xDF-\\\\xF6\\\\xF8-\\\\xFF\\\\u0101\\\\u0103\\\\u0105\\\\u0107\\\\u0109\\\\u010B\\\\u010D\\\\u010F\\\\u0111\\\\u0113\\\\u0115\\\\u0117\\\\u0119\\\\u011B\\\\u011D\\\\u011F\\\\u0121\\\\u0123\\\\u0125\\\\u0127\\\\u0129\\\\u012B\\\\u012D\\\\u012F\\\\u0131\\\\u0133\\\\u0135\\\\u0137\\\\u0138\\\\u013A\\\\u013C\\\\u013E\\\\u0140\\\\u0142\\\\u0144\\\\u0146\\\\u0148\\\\u0149\\\\u014B\\\\u014D\\\\u014F\\\\u0151\\\\u0153\\\\u0155\\\\u0157\\\\u0159\\\\u015B\\\\u015D\\\\u015F\\\\u0161\\\\u0163\\\\u0165\\\\u0167\\\\u0169\\\\u016B\\\\u016D\\\\u016F\\\\u0171\\\\u0173\\\\u0175\\\\u0177\\\\u017A\\\\u017C\\\\u017E-\\\\u0180\\\\u0183\\\\u0185\\\\u0188\\\\u018C\\\\u018D\\\\u0192\\\\u0195\\\\u0199-\\\\u019B\\\\u019E\\\\u01A1\\\\u01A3\\\\u01A5\\\\u01A8\\\\u01AA\\\\u01AB\\\\u01AD\\\\u01B0\\\\u01B4\\\\u01B6\\\\u01B9\\\\u01BA\\\\u01BD-\\\\u01BF\\\\u01C6\\\\u01C9\\\\u01CC\\\\u01CE\\\\u01D0\\\\u01D2\\\\u01D4\\\\u01D6\\\\u01D8\\\\u01DA\\\\u01DC\\\\u01DD\\\\u01DF\\\\u01E1\\\\u01E3\\\\u01E5\\\\u01E7\\\\u01E9\\\\u01EB\\\\u01ED\\\\u01EF\\\\u01F0\\\\u01F3\\\\u01F5\\\\u01F9\\\\u01FB\\\\u01FD\\\\u01FF\\\\u0201\\\\u0203\\\\u0205\\\\u0207\\\\u0209\\\\u020B\\\\u020D\\\\u020F\\\\u0211\\\\u0213\\\\u0215\\\\u0217\\\\u0219\\\\u021B\\\\u021D\\\\u021F\\\\u0221\\\\u0223\\\\u0225\\\\u0227\\\\u0229\\\\u022B\\\\u022D\\\\u022F\\\\u0231\\\\u0233-\\\\u0239\\\\u023C\\\\u023F\\\\u0240\\\\u0242\\\\u0247\\\\u0249\\\\u024B\\\\u024D\\\\u024F-\\\\u0293\\\\u0295-\\\\u02B8\\\\u02C0\\\\u02C1\\\\u02E0-\\\\u02E4\\\\u0371\\\\u0373\\\\u0377\\\\u037A-\\\\u037D\\\\u0390\\\\u03AC-\\\\u03CE\\\\u03D0\\\\u03D1\\\\u03D5-\\\\u03D7\\\\u03D9\\\\u03DB\\\\u03DD\\\\u03DF\\\\u03E1\\\\u03E3\\\\u03E5\\\\u03E7\\\\u03E9\\\\u03EB\\\\u03ED\\\\u03EF-\\\\u03F3\\\\u03F5\\\\u03F8\\\\u03FB\\\\u03FC\\\\u0430-\\\\u045F\\\\u0461\\\\u0463\\\\u0465\\\\u0467\\\\u0469\\\\u046B\\\\u046D\\\\u046F\\\\u0471\\\\u0473\\\\u0475\\\\u0477\\\\u0479\\\\u047B\\\\u047D\\\\u047F\\\\u0481\\\\u048B\\\\u048D\\\\u048F\\\\u0491\\\\u0493\\\\u0495\\\\u0497\\\\u0499\\\\u049B\\\\u049D\\\\u049F\\\\u04A1\\\\u04A3\\\\u04A5\\\\u04A7\\\\u04A9\\\\u04AB\\\\u04AD\\\\u04AF\\\\u04B1\\\\u04B3\\\\u04B5\\\\u04B7\\\\u04B9\\\\u04BB\\\\u04BD\\\\u04BF\\\\u04C2\\\\u04C4\\\\u04C6\\\\u04C8\\\\u04CA\\\\u04CC\\\\u04CE\\\\u04CF\\\\u04D1\\\\u04D3\\\\u04D5\\\\u04D7\\\\u04D9\\\\u04DB\\\\u04DD\\\\u04DF\\\\u04E1\\\\u04E3\\\\u04E5\\\\u04E7\\\\u04E9\\\\u04EB\\\\u04ED\\\\u04EF\\\\u04F1\\\\u04F3\\\\u04F5\\\\u04F7\\\\u04F9\\\\u04FB\\\\u04FD\\\\u04FF\\\\u0501\\\\u0503\\\\u0505\\\\u0507\\\\u0509\\\\u050B\\\\u050D\\\\u050F\\\\u0511\\\\u0513\\\\u0515\\\\u0517\\\\u0519\\\\u051B\\\\u051D\\\\u051F\\\\u0521\\\\u0523\\\\u0525\\\\u0527\\\\u0529\\\\u052B\\\\u052D\\\\u052F\\\\u0560-\\\\u0588\\\\u10FC\\\\u13F8-\\\\u13FD\\\\u1C80-\\\\u1C88\\\\u1D00-\\\\u1DBF\\\\u1E01\\\\u1E03\\\\u1E05\\\\u1E07\\\\u1E09\\\\u1E0B\\\\u1E0D\\\\u1E0F\\\\u1E11\\\\u1E13\\\\u1E15\\\\u1E17\\\\u1E19\\\\u1E1B\\\\u1E1D\\\\u1E1F\\\\u1E21\\\\u1E23\\\\u1E25\\\\u1E27\\\\u1E29\\\\u1E2B\\\\u1E2D\\\\u1E2F\\\\u1E31\\\\u1E33\\\\u1E35\\\\u1E37\\\\u1E39\\\\u1E3B\\\\u1E3D\\\\u1E3F\\\\u1E41\\\\u1E43\\\\u1E45\\\\u1E47\\\\u1E49\\\\u1E4B\\\\u1E4D\\\\u1E4F\\\\u1E51\\\\u1E53\\\\u1E55\\\\u1E57\\\\u1E59\\\\u1E5B\\\\u1E5D\\\\u1E5F\\\\u1E61\\\\u1E63\\\\u1E65\\\\u1E67\\\\u1E69\\\\u1E6B\\\\u1E6D\\\\u1E6F\\\\u1E71\\\\u1E73\\\\u1E75\\\\u1E77\\\\u1E79\\\\u1E7B\\\\u1E7D\\\\u1E7F\\\\u1E81\\\\u1E83\\\\u1E85\\\\u1E87\\\\u1E89\\\\u1E8B\\\\u1E8D\\\\u1E8F\\\\u1E91\\\\u1E93\\\\u1E95-\\\\u1E9D\\\\u1E9F\\\\u1EA1\\\\u1EA3\\\\u1EA5\\\\u1EA7\\\\u1EA9\\\\u1EAB\\\\u1EAD\\\\u1EAF\\\\u1EB1\\\\u1EB3\\\\u1EB5\\\\u1EB7\\\\u1EB9\\\\u1EBB\\\\u1EBD\\\\u1EBF\\\\u1EC1\\\\u1EC3\\\\u1EC5\\\\u1EC7\\\\u1EC9\\\\u1ECB\\\\u1ECD\\\\u1ECF\\\\u1ED1\\\\u1ED3\\\\u1ED5\\\\u1ED7\\\\u1ED9\\\\u1EDB\\\\u1EDD\\\\u1EDF\\\\u1EE1\\\\u1EE3\\\\u1EE5\\\\u1EE7\\\\u1EE9\\\\u1EEB\\\\u1EED\\\\u1EEF\\\\u1EF1\\\\u1EF3\\\\u1EF5\\\\u1EF7\\\\u1EF9\\\\u1EFB\\\\u1EFD\\\\u1EFF-\\\\u1F07\\\\u1F10-\\\\u1F15\\\\u1F20-\\\\u1F27\\\\u1F30-\\\\u1F37\\\\u1F40-\\\\u1F45\\\\u1F50-\\\\u1F57\\\\u1F60-\\\\u1F67\\\\u1F70-\\\\u1F7D\\\\u1F80-\\\\u1F87\\\\u1F90-\\\\u1F97\\\\u1FA0-\\\\u1FA7\\\\u1FB0-\\\\u1FB4\\\\u1FB6\\\\u1FB7\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6\\\\u1FC7\\\\u1FD0-\\\\u1FD3\\\\u1FD6\\\\u1FD7\\\\u1FE0-\\\\u1FE7\\\\u1FF2-\\\\u1FF4\\\\u1FF6\\\\u1FF7\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u210A\\\\u210E\\\\u210F\\\\u2113\\\\u212F\\\\u2134\\\\u2139\\\\u213C\\\\u213D\\\\u2146-\\\\u2149\\\\u214E\\\\u2170-\\\\u217F\\\\u2184\\\\u24D0-\\\\u24E9\\\\u2C30-\\\\u2C5F\\\\u2C61\\\\u2C65\\\\u2C66\\\\u2C68\\\\u2C6A\\\\u2C6C\\\\u2C71\\\\u2C73\\\\u2C74\\\\u2C76-\\\\u2C7D\\\\u2C81\\\\u2C83\\\\u2C85\\\\u2C87\\\\u2C89\\\\u2C8B\\\\u2C8D\\\\u2C8F\\\\u2C91\\\\u2C93\\\\u2C95\\\\u2C97\\\\u2C99\\\\u2C9B\\\\u2C9D\\\\u2C9F\\\\u2CA1\\\\u2CA3\\\\u2CA5\\\\u2CA7\\\\u2CA9\\\\u2CAB\\\\u2CAD\\\\u2CAF\\\\u2CB1\\\\u2CB3\\\\u2CB5\\\\u2CB7\\\\u2CB9\\\\u2CBB\\\\u2CBD\\\\u2CBF\\\\u2CC1\\\\u2CC3\\\\u2CC5\\\\u2CC7\\\\u2CC9\\\\u2CCB\\\\u2CCD\\\\u2CCF\\\\u2CD1\\\\u2CD3\\\\u2CD5\\\\u2CD7\\\\u2CD9\\\\u2CDB\\\\u2CDD\\\\u2CDF\\\\u2CE1\\\\u2CE3\\\\u2CE4\\\\u2CEC\\\\u2CEE\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\uA641\\\\uA643\\\\uA645\\\\uA647\\\\uA649\\\\uA64B\\\\uA64D\\\\uA64F\\\\uA651\\\\uA653\\\\uA655\\\\uA657\\\\uA659\\\\uA65B\\\\uA65D\\\\uA65F\\\\uA661\\\\uA663\\\\uA665\\\\uA667\\\\uA669\\\\uA66B\\\\uA66D\\\\uA681\\\\uA683\\\\uA685\\\\uA687\\\\uA689\\\\uA68B\\\\uA68D\\\\uA68F\\\\uA691\\\\uA693\\\\uA695\\\\uA697\\\\uA699\\\\uA69B-\\\\uA69D\\\\uA723\\\\uA725\\\\uA727\\\\uA729\\\\uA72B\\\\uA72D\\\\uA72F-\\\\uA731\\\\uA733\\\\uA735\\\\uA737\\\\uA739\\\\uA73B\\\\uA73D\\\\uA73F\\\\uA741\\\\uA743\\\\uA745\\\\uA747\\\\uA749\\\\uA74B\\\\uA74D\\\\uA74F\\\\uA751\\\\uA753\\\\uA755\\\\uA757\\\\uA759\\\\uA75B\\\\uA75D\\\\uA75F\\\\uA761\\\\uA763\\\\uA765\\\\uA767\\\\uA769\\\\uA76B\\\\uA76D\\\\uA76F-\\\\uA778\\\\uA77A\\\\uA77C\\\\uA77F\\\\uA781\\\\uA783\\\\uA785\\\\uA787\\\\uA78C\\\\uA78E\\\\uA791\\\\uA793-\\\\uA795\\\\uA797\\\\uA799\\\\uA79B\\\\uA79D\\\\uA79F\\\\uA7A1\\\\uA7A3\\\\uA7A5\\\\uA7A7\\\\uA7A9\\\\uA7AF\\\\uA7B5\\\\uA7B7\\\\uA7B9\\\\uA7BB\\\\uA7BD\\\\uA7BF\\\\uA7C1\\\\uA7C3\\\\uA7C8\\\\uA7CA\\\\uA7D1\\\\uA7D3\\\\uA7D5\\\\uA7D7\\\\uA7D9\\\\uA7F2-\\\\uA7F4\\\\uA7F6\\\\uA7F8-\\\\uA7FA\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB69\\\\uAB70-\\\\uABBF\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFF41-\\\\uFF5A]|\\\\uD801[\\\\uDC28-\\\\uDC4F\\\\uDCD8-\\\\uDCFB\\\\uDD97-\\\\uDDA1\\\\uDDA3-\\\\uDDB1\\\\uDDB3-\\\\uDDB9\\\\uDDBB\\\\uDDBC\\\\uDF80\\\\uDF83-\\\\uDF85\\\\uDF87-\\\\uDFB0\\\\uDFB2-\\\\uDFBA]|\\\\uD803[\\\\uDCC0-\\\\uDCF2]|\\\\uD806[\\\\uDCC0-\\\\uDCDF]|\\\\uD81B[\\\\uDE60-\\\\uDE7F]|\\\\uD835[\\\\uDC1A-\\\\uDC33\\\\uDC4E-\\\\uDC54\\\\uDC56-\\\\uDC67\\\\uDC82-\\\\uDC9B\\\\uDCB6-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDCCF\\\\uDCEA-\\\\uDD03\\\\uDD1E-\\\\uDD37\\\\uDD52-\\\\uDD6B\\\\uDD86-\\\\uDD9F\\\\uDDBA-\\\\uDDD3\\\\uDDEE-\\\\uDE07\\\\uDE22-\\\\uDE3B\\\\uDE56-\\\\uDE6F\\\\uDE8A-\\\\uDEA5\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEE1\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF1B\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF55\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDF8F\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFC9\\\\uDFCB]|\\\\uD837[\\\\uDF00-\\\\uDF09\\\\uDF0B-\\\\uDF1E\\\\uDF25-\\\\uDF2A]|\\\\uD838[\\\\uDC30-\\\\uDC6D]|\\\\uD83A[\\\\uDD22-\\\\uDD43])(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$NotPreLower_\": \"(?:(?![\\\\n\\\\r!\\\\.\\\\?A-Za-z\\\\x85\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0560-\\\\u0589\\\\u05D0-\\\\u05EA\\\\u05EF-\\\\u05F3\\\\u061D-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF-\\\\u0702\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07F9\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0837\\\\u0839\\\\u083D\\\\u083E\\\\u0840-\\\\u0858\\\\u0860-\\\\u086A\\\\u0870-\\\\u0887\\\\u0889-\\\\u088E\\\\u08A0-\\\\u08C9\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0964\\\\u0965\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u09FC\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C5D\\\\u0C60\\\\u0C61\\\\u0C80\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D04-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D54-\\\\u0D56\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E86-\\\\u0E8A\\\\u0E8C-\\\\u0EA3\\\\u0EA5\\\\u0EA7-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u104A\\\\u104B\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1362\\\\u1367\\\\u1368\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166E-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u1711\\\\u171F-\\\\u1731\\\\u1735\\\\u1736\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1803\\\\u1809\\\\u1820-\\\\u1878\\\\u1880-\\\\u1884\\\\u1887-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1944\\\\u1945\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7-\\\\u1AAB\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4C\\\\u1B5A\\\\u1B5B\\\\u1B5E\\\\u1B5F\\\\u1B7D\\\\u1B7E\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C3B\\\\u1C3C\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C88\\\\u1C90-\\\\u1CBA\\\\u1CBD-\\\\u1CBF\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF3\\\\u1CF5\\\\u1CF6\\\\u1CFA\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2024\\\\u2028\\\\u2029\\\\u203C\\\\u203D\\\\u2047-\\\\u2049\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u24B6-\\\\u24E9\\\\u2C00-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2E\\\\u2E2F\\\\u2E3C\\\\u2E53\\\\u2E54\\\\u3002\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312F\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BF\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DBF\\\\u4E00-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA4FF-\\\\uA60C\\\\uA60E-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA6F3\\\\uA6F7\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA7CA\\\\uA7D0\\\\uA7D1\\\\uA7D3\\\\uA7D5-\\\\uA7D9\\\\uA7F2-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA876\\\\uA877\\\\uA882-\\\\uA8B3\\\\uA8CE\\\\uA8CF\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA8FE\\\\uA90A-\\\\uA925\\\\uA92F-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9C8\\\\uA9C9\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA5D-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF0-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB69\\\\uAB70-\\\\uABE2\\\\uABEB\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE52\\\\uFE56\\\\uFE57\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF01\\\\uFF0E\\\\uFF1F\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF61\\\\uFF66-\\\\uFF9D\\\\uFFA0-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF2D-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDD70-\\\\uDD7A\\\\uDD7C-\\\\uDD8A\\\\uDD8C-\\\\uDD92\\\\uDD94\\\\uDD95\\\\uDD97-\\\\uDDA1\\\\uDDA3-\\\\uDDB1\\\\uDDB3-\\\\uDDB9\\\\uDDBB\\\\uDDBC\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67\\\\uDF80-\\\\uDF85\\\\uDF87-\\\\uDFB0\\\\uDFB2-\\\\uDFBA]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE35\\\\uDE56\\\\uDE57\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2\\\\uDD00-\\\\uDD23\\\\uDE80-\\\\uDEA9\\\\uDEB0\\\\uDEB1\\\\uDF00-\\\\uDF1C\\\\uDF27\\\\uDF30-\\\\uDF45\\\\uDF55-\\\\uDF59\\\\uDF70-\\\\uDF81\\\\uDF86-\\\\uDF89\\\\uDFB0-\\\\uDFC4\\\\uDFE0-\\\\uDFF6]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC47\\\\uDC48\\\\uDC71\\\\uDC72\\\\uDC75\\\\uDC83-\\\\uDCAF\\\\uDCBE-\\\\uDCC1\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD41-\\\\uDD44\\\\uDD47\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC6\\\\uDDCD\\\\uDDDA\\\\uDDDC\\\\uDDDE\\\\uDDDF\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDE38\\\\uDE39\\\\uDE3B\\\\uDE3C\\\\uDE3F\\\\uDE40\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA9\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF50\\\\uDF5D-\\\\uDF61]|\\\\uD805[\\\\uDC00-\\\\uDC34\\\\uDC47-\\\\uDC4C\\\\uDC5F-\\\\uDC61\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDDC2\\\\uDDC3\\\\uDDC9-\\\\uDDDB\\\\uDE00-\\\\uDE2F\\\\uDE41\\\\uDE42\\\\uDE44\\\\uDE80-\\\\uDEAA\\\\uDEB8\\\\uDF00-\\\\uDF1A\\\\uDF3C-\\\\uDF3E\\\\uDF40-\\\\uDF46]|\\\\uD806[\\\\uDC00-\\\\uDC2B\\\\uDCA0-\\\\uDCDF\\\\uDCFF-\\\\uDD06\\\\uDD09\\\\uDD0C-\\\\uDD13\\\\uDD15\\\\uDD16\\\\uDD18-\\\\uDD2F\\\\uDD3F\\\\uDD41\\\\uDD44\\\\uDD46\\\\uDDA0-\\\\uDDA7\\\\uDDAA-\\\\uDDD0\\\\uDDE1\\\\uDDE3\\\\uDE00\\\\uDE0B-\\\\uDE32\\\\uDE3A\\\\uDE42\\\\uDE43\\\\uDE50\\\\uDE5C-\\\\uDE89\\\\uDE9B-\\\\uDE9D\\\\uDEB0-\\\\uDEF8]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC2E\\\\uDC40-\\\\uDC42\\\\uDC72-\\\\uDC8F\\\\uDD00-\\\\uDD06\\\\uDD08\\\\uDD09\\\\uDD0B-\\\\uDD30\\\\uDD46\\\\uDD60-\\\\uDD65\\\\uDD67\\\\uDD68\\\\uDD6A-\\\\uDD89\\\\uDD98\\\\uDEE0-\\\\uDEF2\\\\uDEF7\\\\uDEF8\\\\uDF02\\\\uDF04-\\\\uDF10\\\\uDF12-\\\\uDF33\\\\uDF43\\\\uDF44\\\\uDFB0]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|\\\\uD80B[\\\\uDF90-\\\\uDFF0]|[\\\\uD80C\\\\uD81C-\\\\uD820\\\\uD822\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C\\\\uD86F-\\\\uD872\\\\uD874-\\\\uD879\\\\uD880-\\\\uD883\\\\uD885-\\\\uD887][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2F\\\\uDC41-\\\\uDC46]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE6E-\\\\uDEBE\\\\uDED0-\\\\uDEED\\\\uDEF5\\\\uDF00-\\\\uDF2F\\\\uDF37\\\\uDF38\\\\uDF40-\\\\uDF44\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDE40-\\\\uDE7F\\\\uDE98\\\\uDF00-\\\\uDF4A\\\\uDF50\\\\uDF93-\\\\uDF9F\\\\uDFE0\\\\uDFE1\\\\uDFE3]|\\\\uD821[\\\\uDC00-\\\\uDFF7]|\\\\uD823[\\\\uDC00-\\\\uDCD5\\\\uDD00-\\\\uDD08]|\\\\uD82B[\\\\uDFF0-\\\\uDFF3\\\\uDFF5-\\\\uDFFB\\\\uDFFD\\\\uDFFE]|\\\\uD82C[\\\\uDC00-\\\\uDD22\\\\uDD32\\\\uDD50-\\\\uDD52\\\\uDD55\\\\uDD64-\\\\uDD67\\\\uDD70-\\\\uDEFB]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99\\\\uDC9F]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB]|\\\\uD836\\\\uDE88|\\\\uD837[\\\\uDF00-\\\\uDF1E\\\\uDF25-\\\\uDF2A]|\\\\uD838[\\\\uDC30-\\\\uDC6D\\\\uDD00-\\\\uDD2C\\\\uDD37-\\\\uDD3D\\\\uDD4E\\\\uDE90-\\\\uDEAD\\\\uDEC0-\\\\uDEEB]|\\\\uD839[\\\\uDCD0-\\\\uDCEB\\\\uDFE0-\\\\uDFE6\\\\uDFE8-\\\\uDFEB\\\\uDFED\\\\uDFEE\\\\uDFF0-\\\\uDFFE]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDD00-\\\\uDD43\\\\uDD4B]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD83C[\\\\uDD30-\\\\uDD49\\\\uDD50-\\\\uDD69\\\\uDD70-\\\\uDD89]|\\\\uD869[\\\\uDC00-\\\\uDEDF\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF39\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEA1\\\\uDEB0-\\\\uDFFF]|\\\\uD87A[\\\\uDC00-\\\\uDFE0]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]|\\\\uD884[\\\\uDC00-\\\\uDF4A\\\\uDF50-\\\\uDFFF]|\\\\uD888[\\\\uDC00-\\\\uDFAF])[\\\\s\\\\S])\",\n \"$Numeric\": \"((?:[0-9\\\\u0660-\\\\u0669\\\\u066B\\\\u066C\\\\u06F0-\\\\u06F9\\\\u07C0-\\\\u07C9\\\\u0966-\\\\u096F\\\\u09E6-\\\\u09EF\\\\u0A66-\\\\u0A6F\\\\u0AE6-\\\\u0AEF\\\\u0B66-\\\\u0B6F\\\\u0BE6-\\\\u0BEF\\\\u0C66-\\\\u0C6F\\\\u0CE6-\\\\u0CEF\\\\u0D66-\\\\u0D6F\\\\u0DE6-\\\\u0DEF\\\\u0E50-\\\\u0E59\\\\u0ED0-\\\\u0ED9\\\\u0F20-\\\\u0F29\\\\u1040-\\\\u1049\\\\u1090-\\\\u1099\\\\u17E0-\\\\u17E9\\\\u1810-\\\\u1819\\\\u1946-\\\\u194F\\\\u19D0-\\\\u19D9\\\\u1A80-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1B50-\\\\u1B59\\\\u1BB0-\\\\u1BB9\\\\u1C40-\\\\u1C49\\\\u1C50-\\\\u1C59\\\\uA620-\\\\uA629\\\\uA8D0-\\\\uA8D9\\\\uA900-\\\\uA909\\\\uA9D0-\\\\uA9D9\\\\uA9F0-\\\\uA9F9\\\\uAA50-\\\\uAA59\\\\uABF0-\\\\uABF9\\\\uFF10-\\\\uFF19]|\\\\uD801[\\\\uDCA0-\\\\uDCA9]|\\\\uD803[\\\\uDD30-\\\\uDD39]|\\\\uD804[\\\\uDC66-\\\\uDC6F\\\\uDCF0-\\\\uDCF9\\\\uDD36-\\\\uDD3F\\\\uDDD0-\\\\uDDD9\\\\uDEF0-\\\\uDEF9]|\\\\uD805[\\\\uDC50-\\\\uDC59\\\\uDCD0-\\\\uDCD9\\\\uDE50-\\\\uDE59\\\\uDEC0-\\\\uDEC9\\\\uDF30-\\\\uDF39]|\\\\uD806[\\\\uDCE0-\\\\uDCE9\\\\uDD50-\\\\uDD59]|\\\\uD807[\\\\uDC50-\\\\uDC59\\\\uDD50-\\\\uDD59\\\\uDDA0-\\\\uDDA9\\\\uDF50-\\\\uDF59]|\\\\uD81A[\\\\uDE60-\\\\uDE69\\\\uDEC0-\\\\uDEC9\\\\uDF50-\\\\uDF59]|\\\\uD835[\\\\uDFCE-\\\\uDFFF]|\\\\uD838[\\\\uDD40-\\\\uDD49\\\\uDEF0-\\\\uDEF9]|\\\\uD839[\\\\uDCF0-\\\\uDCF9]|\\\\uD83A[\\\\uDD50-\\\\uDD59]|\\\\uD83E[\\\\uDFF0-\\\\uDFF9])(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$OLetter\": \"((?:[\\\\u01BB\\\\u01C0-\\\\u01C3\\\\u0294\\\\u02B9-\\\\u02BF\\\\u02C6-\\\\u02D1\\\\u02EC\\\\u02EE\\\\u0374\\\\u0559\\\\u05D0-\\\\u05EA\\\\u05EF-\\\\u05F3\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u0860-\\\\u086A\\\\u0870-\\\\u0887\\\\u0889-\\\\u088E\\\\u08A0-\\\\u08C9\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u09FC\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C5D\\\\u0C60\\\\u0C61\\\\u0C80\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D04-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D54-\\\\u0D56\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E86-\\\\u0E8A\\\\u0E8C-\\\\u0EA3\\\\u0EA5\\\\u0EA7-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10D0-\\\\u10FA\\\\u10FD-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u1711\\\\u171F-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1878\\\\u1880-\\\\u1884\\\\u1887-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4C\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1C90-\\\\u1CBA\\\\u1CBD-\\\\u1CBF\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF3\\\\u1CF5\\\\u1CF6\\\\u1CFA\\\\u2135-\\\\u2138\\\\u2180-\\\\u2182\\\\u2185-\\\\u2188\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309D-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312F\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BF\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DBF\\\\u4E00-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA66E\\\\uA67F\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA788\\\\uA78F\\\\uA7F7\\\\uA7FB-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA8FE\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uABC0-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF66-\\\\uFF9D\\\\uFFA0-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF2D-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC50-\\\\uDC9D\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67\\\\uDF81\\\\uDF82]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE35\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDD00-\\\\uDD23\\\\uDE80-\\\\uDEA9\\\\uDEB0\\\\uDEB1\\\\uDF00-\\\\uDF1C\\\\uDF27\\\\uDF30-\\\\uDF45\\\\uDF70-\\\\uDF81\\\\uDFB0-\\\\uDFC4\\\\uDFE0-\\\\uDFF6]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC71\\\\uDC72\\\\uDC75\\\\uDC83-\\\\uDCAF\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD44\\\\uDD47\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC4\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDE3F\\\\uDE40\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF50\\\\uDF5D-\\\\uDF61]|\\\\uD805[\\\\uDC00-\\\\uDC34\\\\uDC47-\\\\uDC4A\\\\uDC5F-\\\\uDC61\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDDD8-\\\\uDDDB\\\\uDE00-\\\\uDE2F\\\\uDE44\\\\uDE80-\\\\uDEAA\\\\uDEB8\\\\uDF00-\\\\uDF1A\\\\uDF40-\\\\uDF46]|\\\\uD806[\\\\uDC00-\\\\uDC2B\\\\uDCFF-\\\\uDD06\\\\uDD09\\\\uDD0C-\\\\uDD13\\\\uDD15\\\\uDD16\\\\uDD18-\\\\uDD2F\\\\uDD3F\\\\uDD41\\\\uDDA0-\\\\uDDA7\\\\uDDAA-\\\\uDDD0\\\\uDDE1\\\\uDDE3\\\\uDE00\\\\uDE0B-\\\\uDE32\\\\uDE3A\\\\uDE50\\\\uDE5C-\\\\uDE89\\\\uDE9D\\\\uDEB0-\\\\uDEF8]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC2E\\\\uDC40\\\\uDC72-\\\\uDC8F\\\\uDD00-\\\\uDD06\\\\uDD08\\\\uDD09\\\\uDD0B-\\\\uDD30\\\\uDD46\\\\uDD60-\\\\uDD65\\\\uDD67\\\\uDD68\\\\uDD6A-\\\\uDD89\\\\uDD98\\\\uDEE0-\\\\uDEF2\\\\uDF02\\\\uDF04-\\\\uDF10\\\\uDF12-\\\\uDF33\\\\uDFB0]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|\\\\uD80B[\\\\uDF90-\\\\uDFF0]|[\\\\uD80C\\\\uD81C-\\\\uD820\\\\uD822\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C\\\\uD86F-\\\\uD872\\\\uD874-\\\\uD879\\\\uD880-\\\\uD883\\\\uD885-\\\\uD887][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2F\\\\uDC41-\\\\uDC46]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE70-\\\\uDEBE\\\\uDED0-\\\\uDEED\\\\uDF00-\\\\uDF2F\\\\uDF40-\\\\uDF43\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF4A\\\\uDF50\\\\uDF93-\\\\uDF9F\\\\uDFE0\\\\uDFE1\\\\uDFE3]|\\\\uD821[\\\\uDC00-\\\\uDFF7]|\\\\uD823[\\\\uDC00-\\\\uDCD5\\\\uDD00-\\\\uDD08]|\\\\uD82B[\\\\uDFF0-\\\\uDFF3\\\\uDFF5-\\\\uDFFB\\\\uDFFD\\\\uDFFE]|\\\\uD82C[\\\\uDC00-\\\\uDD22\\\\uDD32\\\\uDD50-\\\\uDD52\\\\uDD55\\\\uDD64-\\\\uDD67\\\\uDD70-\\\\uDEFB]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99]|\\\\uD837\\\\uDF0A|\\\\uD838[\\\\uDD00-\\\\uDD2C\\\\uDD37-\\\\uDD3D\\\\uDD4E\\\\uDE90-\\\\uDEAD\\\\uDEC0-\\\\uDEEB]|\\\\uD839[\\\\uDCD0-\\\\uDCEB\\\\uDFE0-\\\\uDFE6\\\\uDFE8-\\\\uDFEB\\\\uDFED\\\\uDFEE\\\\uDFF0-\\\\uDFFE]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDD4B]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDEDF\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF39\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEA1\\\\uDEB0-\\\\uDFFF]|\\\\uD87A[\\\\uDC00-\\\\uDFE0]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]|\\\\uD884[\\\\uDC00-\\\\uDF4A\\\\uDF50-\\\\uDFFF]|\\\\uD888[\\\\uDC00-\\\\uDFAF])(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$ParaSep\": \"([\\\\x85\\\\u2028\\\\u2029]|\\\\r|\\\\n)\",\n \"$SATerm\": \"(((?:[!\\\\?\\\\u0589\\\\u061D-\\\\u061F\\\\u06D4\\\\u0700-\\\\u0702\\\\u07F9\\\\u0837\\\\u0839\\\\u083D\\\\u083E\\\\u0964\\\\u0965\\\\u104A\\\\u104B\\\\u1362\\\\u1367\\\\u1368\\\\u166E\\\\u1735\\\\u1736\\\\u1803\\\\u1809\\\\u1944\\\\u1945\\\\u1AA8-\\\\u1AAB\\\\u1B5A\\\\u1B5B\\\\u1B5E\\\\u1B5F\\\\u1B7D\\\\u1B7E\\\\u1C3B\\\\u1C3C\\\\u1C7E\\\\u1C7F\\\\u203C\\\\u203D\\\\u2047-\\\\u2049\\\\u2E2E\\\\u2E3C\\\\u2E53\\\\u2E54\\\\u3002\\\\uA4FF\\\\uA60E\\\\uA60F\\\\uA6F3\\\\uA6F7\\\\uA876\\\\uA877\\\\uA8CE\\\\uA8CF\\\\uA92F\\\\uA9C8\\\\uA9C9\\\\uAA5D-\\\\uAA5F\\\\uAAF0\\\\uAAF1\\\\uABEB\\\\uFE56\\\\uFE57\\\\uFF01\\\\uFF1F\\\\uFF61]|\\\\uD802[\\\\uDE56\\\\uDE57]|\\\\uD803[\\\\uDF55-\\\\uDF59\\\\uDF86-\\\\uDF89]|\\\\uD804[\\\\uDC47\\\\uDC48\\\\uDCBE-\\\\uDCC1\\\\uDD41-\\\\uDD43\\\\uDDC5\\\\uDDC6\\\\uDDCD\\\\uDDDE\\\\uDDDF\\\\uDE38\\\\uDE39\\\\uDE3B\\\\uDE3C\\\\uDEA9]|\\\\uD805[\\\\uDC4B\\\\uDC4C\\\\uDDC2\\\\uDDC3\\\\uDDC9-\\\\uDDD7\\\\uDE41\\\\uDE42\\\\uDF3C-\\\\uDF3E]|\\\\uD806[\\\\uDD44\\\\uDD46\\\\uDE42\\\\uDE43\\\\uDE9B\\\\uDE9C]|\\\\uD807[\\\\uDC41\\\\uDC42\\\\uDEF7\\\\uDEF8\\\\uDF43\\\\uDF44]|\\\\uD81A[\\\\uDE6E\\\\uDE6F\\\\uDEF5\\\\uDF37\\\\uDF38\\\\uDF44]|\\\\uD81B\\\\uDE98|\\\\uD82F\\\\uDC9F|\\\\uD836\\\\uDE88)(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)|([\\\\.\\\\u2024\\\\uFE52\\\\uFF0E](?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*))\",\n \"$SContinue\": \"([,\\\\x2D:\\\\u055D\\\\u060C\\\\u060D\\\\u07F8\\\\u1802\\\\u1808\\\\u2013\\\\u2014\\\\u3001\\\\uFE10\\\\uFE11\\\\uFE13\\\\uFE31\\\\uFE32\\\\uFE50\\\\uFE51\\\\uFE55\\\\uFE58\\\\uFE63\\\\uFF0C\\\\uFF0D\\\\uFF1A\\\\uFF64](?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$STerm\": \"((?:[!\\\\?\\\\u0589\\\\u061D-\\\\u061F\\\\u06D4\\\\u0700-\\\\u0702\\\\u07F9\\\\u0837\\\\u0839\\\\u083D\\\\u083E\\\\u0964\\\\u0965\\\\u104A\\\\u104B\\\\u1362\\\\u1367\\\\u1368\\\\u166E\\\\u1735\\\\u1736\\\\u1803\\\\u1809\\\\u1944\\\\u1945\\\\u1AA8-\\\\u1AAB\\\\u1B5A\\\\u1B5B\\\\u1B5E\\\\u1B5F\\\\u1B7D\\\\u1B7E\\\\u1C3B\\\\u1C3C\\\\u1C7E\\\\u1C7F\\\\u203C\\\\u203D\\\\u2047-\\\\u2049\\\\u2E2E\\\\u2E3C\\\\u2E53\\\\u2E54\\\\u3002\\\\uA4FF\\\\uA60E\\\\uA60F\\\\uA6F3\\\\uA6F7\\\\uA876\\\\uA877\\\\uA8CE\\\\uA8CF\\\\uA92F\\\\uA9C8\\\\uA9C9\\\\uAA5D-\\\\uAA5F\\\\uAAF0\\\\uAAF1\\\\uABEB\\\\uFE56\\\\uFE57\\\\uFF01\\\\uFF1F\\\\uFF61]|\\\\uD802[\\\\uDE56\\\\uDE57]|\\\\uD803[\\\\uDF55-\\\\uDF59\\\\uDF86-\\\\uDF89]|\\\\uD804[\\\\uDC47\\\\uDC48\\\\uDCBE-\\\\uDCC1\\\\uDD41-\\\\uDD43\\\\uDDC5\\\\uDDC6\\\\uDDCD\\\\uDDDE\\\\uDDDF\\\\uDE38\\\\uDE39\\\\uDE3B\\\\uDE3C\\\\uDEA9]|\\\\uD805[\\\\uDC4B\\\\uDC4C\\\\uDDC2\\\\uDDC3\\\\uDDC9-\\\\uDDD7\\\\uDE41\\\\uDE42\\\\uDF3C-\\\\uDF3E]|\\\\uD806[\\\\uDD44\\\\uDD46\\\\uDE42\\\\uDE43\\\\uDE9B\\\\uDE9C]|\\\\uD807[\\\\uDC41\\\\uDC42\\\\uDEF7\\\\uDEF8\\\\uDF43\\\\uDF44]|\\\\uD81A[\\\\uDE6E\\\\uDE6F\\\\uDEF5\\\\uDF37\\\\uDF38\\\\uDF44]|\\\\uD81B\\\\uDE98|\\\\uD82F\\\\uDC9F|\\\\uD836\\\\uDE88)(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$Sep\": \"[\\\\x85\\\\u2028\\\\u2029]\",\n \"$Sp\": \"([\\\\t\\\\x0B\\\\f \\\\xA0\\\\u1680\\\\u2000-\\\\u200A\\\\u202F\\\\u205F\\\\u3000](?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$Upper\": \"((?:[A-Z\\\\xC0-\\\\xD6\\\\xD8-\\\\xDE\\\\u0100\\\\u0102\\\\u0104\\\\u0106\\\\u0108\\\\u010A\\\\u010C\\\\u010E\\\\u0110\\\\u0112\\\\u0114\\\\u0116\\\\u0118\\\\u011A\\\\u011C\\\\u011E\\\\u0120\\\\u0122\\\\u0124\\\\u0126\\\\u0128\\\\u012A\\\\u012C\\\\u012E\\\\u0130\\\\u0132\\\\u0134\\\\u0136\\\\u0139\\\\u013B\\\\u013D\\\\u013F\\\\u0141\\\\u0143\\\\u0145\\\\u0147\\\\u014A\\\\u014C\\\\u014E\\\\u0150\\\\u0152\\\\u0154\\\\u0156\\\\u0158\\\\u015A\\\\u015C\\\\u015E\\\\u0160\\\\u0162\\\\u0164\\\\u0166\\\\u0168\\\\u016A\\\\u016C\\\\u016E\\\\u0170\\\\u0172\\\\u0174\\\\u0176\\\\u0178\\\\u0179\\\\u017B\\\\u017D\\\\u0181\\\\u0182\\\\u0184\\\\u0186\\\\u0187\\\\u0189-\\\\u018B\\\\u018E-\\\\u0191\\\\u0193\\\\u0194\\\\u0196-\\\\u0198\\\\u019C\\\\u019D\\\\u019F\\\\u01A0\\\\u01A2\\\\u01A4\\\\u01A6\\\\u01A7\\\\u01A9\\\\u01AC\\\\u01AE\\\\u01AF\\\\u01B1-\\\\u01B3\\\\u01B5\\\\u01B7\\\\u01B8\\\\u01BC\\\\u01C4\\\\u01C5\\\\u01C7\\\\u01C8\\\\u01CA\\\\u01CB\\\\u01CD\\\\u01CF\\\\u01D1\\\\u01D3\\\\u01D5\\\\u01D7\\\\u01D9\\\\u01DB\\\\u01DE\\\\u01E0\\\\u01E2\\\\u01E4\\\\u01E6\\\\u01E8\\\\u01EA\\\\u01EC\\\\u01EE\\\\u01F1\\\\u01F2\\\\u01F4\\\\u01F6-\\\\u01F8\\\\u01FA\\\\u01FC\\\\u01FE\\\\u0200\\\\u0202\\\\u0204\\\\u0206\\\\u0208\\\\u020A\\\\u020C\\\\u020E\\\\u0210\\\\u0212\\\\u0214\\\\u0216\\\\u0218\\\\u021A\\\\u021C\\\\u021E\\\\u0220\\\\u0222\\\\u0224\\\\u0226\\\\u0228\\\\u022A\\\\u022C\\\\u022E\\\\u0230\\\\u0232\\\\u023A\\\\u023B\\\\u023D\\\\u023E\\\\u0241\\\\u0243-\\\\u0246\\\\u0248\\\\u024A\\\\u024C\\\\u024E\\\\u0370\\\\u0372\\\\u0376\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E\\\\u038F\\\\u0391-\\\\u03A1\\\\u03A3-\\\\u03AB\\\\u03CF\\\\u03D2-\\\\u03D4\\\\u03D8\\\\u03DA\\\\u03DC\\\\u03DE\\\\u03E0\\\\u03E2\\\\u03E4\\\\u03E6\\\\u03E8\\\\u03EA\\\\u03EC\\\\u03EE\\\\u03F4\\\\u03F7\\\\u03F9\\\\u03FA\\\\u03FD-\\\\u042F\\\\u0460\\\\u0462\\\\u0464\\\\u0466\\\\u0468\\\\u046A\\\\u046C\\\\u046E\\\\u0470\\\\u0472\\\\u0474\\\\u0476\\\\u0478\\\\u047A\\\\u047C\\\\u047E\\\\u0480\\\\u048A\\\\u048C\\\\u048E\\\\u0490\\\\u0492\\\\u0494\\\\u0496\\\\u0498\\\\u049A\\\\u049C\\\\u049E\\\\u04A0\\\\u04A2\\\\u04A4\\\\u04A6\\\\u04A8\\\\u04AA\\\\u04AC\\\\u04AE\\\\u04B0\\\\u04B2\\\\u04B4\\\\u04B6\\\\u04B8\\\\u04BA\\\\u04BC\\\\u04BE\\\\u04C0\\\\u04C1\\\\u04C3\\\\u04C5\\\\u04C7\\\\u04C9\\\\u04CB\\\\u04CD\\\\u04D0\\\\u04D2\\\\u04D4\\\\u04D6\\\\u04D8\\\\u04DA\\\\u04DC\\\\u04DE\\\\u04E0\\\\u04E2\\\\u04E4\\\\u04E6\\\\u04E8\\\\u04EA\\\\u04EC\\\\u04EE\\\\u04F0\\\\u04F2\\\\u04F4\\\\u04F6\\\\u04F8\\\\u04FA\\\\u04FC\\\\u04FE\\\\u0500\\\\u0502\\\\u0504\\\\u0506\\\\u0508\\\\u050A\\\\u050C\\\\u050E\\\\u0510\\\\u0512\\\\u0514\\\\u0516\\\\u0518\\\\u051A\\\\u051C\\\\u051E\\\\u0520\\\\u0522\\\\u0524\\\\u0526\\\\u0528\\\\u052A\\\\u052C\\\\u052E\\\\u0531-\\\\u0556\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u13A0-\\\\u13F5\\\\u1E00\\\\u1E02\\\\u1E04\\\\u1E06\\\\u1E08\\\\u1E0A\\\\u1E0C\\\\u1E0E\\\\u1E10\\\\u1E12\\\\u1E14\\\\u1E16\\\\u1E18\\\\u1E1A\\\\u1E1C\\\\u1E1E\\\\u1E20\\\\u1E22\\\\u1E24\\\\u1E26\\\\u1E28\\\\u1E2A\\\\u1E2C\\\\u1E2E\\\\u1E30\\\\u1E32\\\\u1E34\\\\u1E36\\\\u1E38\\\\u1E3A\\\\u1E3C\\\\u1E3E\\\\u1E40\\\\u1E42\\\\u1E44\\\\u1E46\\\\u1E48\\\\u1E4A\\\\u1E4C\\\\u1E4E\\\\u1E50\\\\u1E52\\\\u1E54\\\\u1E56\\\\u1E58\\\\u1E5A\\\\u1E5C\\\\u1E5E\\\\u1E60\\\\u1E62\\\\u1E64\\\\u1E66\\\\u1E68\\\\u1E6A\\\\u1E6C\\\\u1E6E\\\\u1E70\\\\u1E72\\\\u1E74\\\\u1E76\\\\u1E78\\\\u1E7A\\\\u1E7C\\\\u1E7E\\\\u1E80\\\\u1E82\\\\u1E84\\\\u1E86\\\\u1E88\\\\u1E8A\\\\u1E8C\\\\u1E8E\\\\u1E90\\\\u1E92\\\\u1E94\\\\u1E9E\\\\u1EA0\\\\u1EA2\\\\u1EA4\\\\u1EA6\\\\u1EA8\\\\u1EAA\\\\u1EAC\\\\u1EAE\\\\u1EB0\\\\u1EB2\\\\u1EB4\\\\u1EB6\\\\u1EB8\\\\u1EBA\\\\u1EBC\\\\u1EBE\\\\u1EC0\\\\u1EC2\\\\u1EC4\\\\u1EC6\\\\u1EC8\\\\u1ECA\\\\u1ECC\\\\u1ECE\\\\u1ED0\\\\u1ED2\\\\u1ED4\\\\u1ED6\\\\u1ED8\\\\u1EDA\\\\u1EDC\\\\u1EDE\\\\u1EE0\\\\u1EE2\\\\u1EE4\\\\u1EE6\\\\u1EE8\\\\u1EEA\\\\u1EEC\\\\u1EEE\\\\u1EF0\\\\u1EF2\\\\u1EF4\\\\u1EF6\\\\u1EF8\\\\u1EFA\\\\u1EFC\\\\u1EFE\\\\u1F08-\\\\u1F0F\\\\u1F18-\\\\u1F1D\\\\u1F28-\\\\u1F2F\\\\u1F38-\\\\u1F3F\\\\u1F48-\\\\u1F4D\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F\\\\u1F68-\\\\u1F6F\\\\u1F88-\\\\u1F8F\\\\u1F98-\\\\u1F9F\\\\u1FA8-\\\\u1FAF\\\\u1FB8-\\\\u1FBC\\\\u1FC8-\\\\u1FCC\\\\u1FD8-\\\\u1FDB\\\\u1FE8-\\\\u1FEC\\\\u1FF8-\\\\u1FFC\\\\u2102\\\\u2107\\\\u210B-\\\\u210D\\\\u2110-\\\\u2112\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u2130-\\\\u2133\\\\u213E\\\\u213F\\\\u2145\\\\u2160-\\\\u216F\\\\u2183\\\\u24B6-\\\\u24CF\\\\u2C00-\\\\u2C2F\\\\u2C60\\\\u2C62-\\\\u2C64\\\\u2C67\\\\u2C69\\\\u2C6B\\\\u2C6D-\\\\u2C70\\\\u2C72\\\\u2C75\\\\u2C7E-\\\\u2C80\\\\u2C82\\\\u2C84\\\\u2C86\\\\u2C88\\\\u2C8A\\\\u2C8C\\\\u2C8E\\\\u2C90\\\\u2C92\\\\u2C94\\\\u2C96\\\\u2C98\\\\u2C9A\\\\u2C9C\\\\u2C9E\\\\u2CA0\\\\u2CA2\\\\u2CA4\\\\u2CA6\\\\u2CA8\\\\u2CAA\\\\u2CAC\\\\u2CAE\\\\u2CB0\\\\u2CB2\\\\u2CB4\\\\u2CB6\\\\u2CB8\\\\u2CBA\\\\u2CBC\\\\u2CBE\\\\u2CC0\\\\u2CC2\\\\u2CC4\\\\u2CC6\\\\u2CC8\\\\u2CCA\\\\u2CCC\\\\u2CCE\\\\u2CD0\\\\u2CD2\\\\u2CD4\\\\u2CD6\\\\u2CD8\\\\u2CDA\\\\u2CDC\\\\u2CDE\\\\u2CE0\\\\u2CE2\\\\u2CEB\\\\u2CED\\\\u2CF2\\\\uA640\\\\uA642\\\\uA644\\\\uA646\\\\uA648\\\\uA64A\\\\uA64C\\\\uA64E\\\\uA650\\\\uA652\\\\uA654\\\\uA656\\\\uA658\\\\uA65A\\\\uA65C\\\\uA65E\\\\uA660\\\\uA662\\\\uA664\\\\uA666\\\\uA668\\\\uA66A\\\\uA66C\\\\uA680\\\\uA682\\\\uA684\\\\uA686\\\\uA688\\\\uA68A\\\\uA68C\\\\uA68E\\\\uA690\\\\uA692\\\\uA694\\\\uA696\\\\uA698\\\\uA69A\\\\uA722\\\\uA724\\\\uA726\\\\uA728\\\\uA72A\\\\uA72C\\\\uA72E\\\\uA732\\\\uA734\\\\uA736\\\\uA738\\\\uA73A\\\\uA73C\\\\uA73E\\\\uA740\\\\uA742\\\\uA744\\\\uA746\\\\uA748\\\\uA74A\\\\uA74C\\\\uA74E\\\\uA750\\\\uA752\\\\uA754\\\\uA756\\\\uA758\\\\uA75A\\\\uA75C\\\\uA75E\\\\uA760\\\\uA762\\\\uA764\\\\uA766\\\\uA768\\\\uA76A\\\\uA76C\\\\uA76E\\\\uA779\\\\uA77B\\\\uA77D\\\\uA77E\\\\uA780\\\\uA782\\\\uA784\\\\uA786\\\\uA78B\\\\uA78D\\\\uA790\\\\uA792\\\\uA796\\\\uA798\\\\uA79A\\\\uA79C\\\\uA79E\\\\uA7A0\\\\uA7A2\\\\uA7A4\\\\uA7A6\\\\uA7A8\\\\uA7AA-\\\\uA7AE\\\\uA7B0-\\\\uA7B4\\\\uA7B6\\\\uA7B8\\\\uA7BA\\\\uA7BC\\\\uA7BE\\\\uA7C0\\\\uA7C2\\\\uA7C4-\\\\uA7C7\\\\uA7C9\\\\uA7D0\\\\uA7D6\\\\uA7D8\\\\uA7F5\\\\uFF21-\\\\uFF3A]|\\\\uD801[\\\\uDC00-\\\\uDC27\\\\uDCB0-\\\\uDCD3\\\\uDD70-\\\\uDD7A\\\\uDD7C-\\\\uDD8A\\\\uDD8C-\\\\uDD92\\\\uDD94\\\\uDD95]|\\\\uD803[\\\\uDC80-\\\\uDCB2]|\\\\uD806[\\\\uDCA0-\\\\uDCBF]|\\\\uD81B[\\\\uDE40-\\\\uDE5F]|\\\\uD835[\\\\uDC00-\\\\uDC19\\\\uDC34-\\\\uDC4D\\\\uDC68-\\\\uDC81\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB5\\\\uDCD0-\\\\uDCE9\\\\uDD04\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD38\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD6C-\\\\uDD85\\\\uDDA0-\\\\uDDB9\\\\uDDD4-\\\\uDDED\\\\uDE08-\\\\uDE21\\\\uDE3C-\\\\uDE55\\\\uDE70-\\\\uDE89\\\\uDEA8-\\\\uDEC0\\\\uDEE2-\\\\uDEFA\\\\uDF1C-\\\\uDF34\\\\uDF56-\\\\uDF6E\\\\uDF90-\\\\uDFA8\\\\uDFCA]|\\\\uD83A[\\\\uDD00-\\\\uDD21]|\\\\uD83C[\\\\uDD30-\\\\uDD49\\\\uDD50-\\\\uDD69\\\\uDD70-\\\\uDD89])(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200B-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\"\n }\n },\n \"word\": {\n \"segmentRules\": {\n \"10\": {\n \"after\": \"$AHLetter\",\n \"before\": \"$Numeric\",\n \"breaks\": false\n },\n \"11\": {\n \"after\": \"$Numeric\",\n \"before\": \"$Numeric($MidNum|$MidNumLetQ)\",\n \"breaks\": false\n },\n \"12\": {\n \"after\": \"($MidNum|$MidNumLetQ)$Numeric\",\n \"before\": \"$Numeric\",\n \"breaks\": false\n },\n \"13\": {\n \"after\": \"$Katakana\",\n \"before\": \"$Katakana\",\n \"breaks\": false\n },\n \"13.1\": {\n \"after\": \"$ExtendNumLet\",\n \"before\": \"($AHLetter|$Numeric|$Katakana|$ExtendNumLet)\",\n \"breaks\": false\n },\n \"13.2\": {\n \"after\": \"($AHLetter|$Numeric|$Katakana)\",\n \"before\": \"$ExtendNumLet\",\n \"breaks\": false\n },\n \"15\": {\n \"after\": \"$RI\",\n \"before\": \"^($RI$RI)*$RI\",\n \"breaks\": false\n },\n \"16\": {\n \"after\": \"$RI\",\n \"before\": \"[^\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF\\\\uDCEC-\\\\uDCEF\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A\\\\uDDE6-\\\\uDDFF\\\\uDFFB-\\\\uDFFF\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF]($RI$RI)*$RI\",\n \"breaks\": false\n },\n \"3\": {\n \"after\": \"$LF\",\n \"before\": \"$CR\",\n \"breaks\": false\n },\n \"3.1\": {\n \"before\": \"($Newline|$CR|$LF)\",\n \"breaks\": true\n },\n \"3.2\": {\n \"after\": \"($Newline|$CR|$LF)\",\n \"breaks\": true\n },\n \"3.3\": {\n \"after\": \"$ExtPict\",\n \"before\": \"$ZWJ\",\n \"breaks\": false\n },\n \"3.4\": {\n \"after\": \"$WSegSpace\",\n \"before\": \"$WSegSpace\",\n \"breaks\": false\n },\n \"4\": {\n \"after\": \"(?:$Format|$Extend|$ZWJ)\",\n \"before\": \"$NotBreak_\",\n \"breaks\": false\n },\n \"5\": {\n \"after\": \"$AHLetter\",\n \"before\": \"$AHLetter\",\n \"breaks\": false\n },\n \"6\": {\n \"after\": \"($MidLetter|$MidNumLetQ)$AHLetter\",\n \"before\": \"$AHLetter\",\n \"breaks\": false\n },\n \"7\": {\n \"after\": \"$AHLetter\",\n \"before\": \"$AHLetter($MidLetter|$MidNumLetQ)\",\n \"breaks\": false\n },\n \"7.1\": {\n \"after\": \"$Single_Quote\",\n \"before\": \"$Hebrew_Letter\",\n \"breaks\": false\n },\n \"7.2\": {\n \"after\": \"$Double_Quote$Hebrew_Letter\",\n \"before\": \"$Hebrew_Letter\",\n \"breaks\": false\n },\n \"7.3\": {\n \"after\": \"$Hebrew_Letter\",\n \"before\": \"$Hebrew_Letter$Double_Quote\",\n \"breaks\": false\n },\n \"8\": {\n \"after\": \"$Numeric\",\n \"before\": \"$Numeric\",\n \"breaks\": false\n },\n \"9\": {\n \"after\": \"$Numeric\",\n \"before\": \"$AHLetter\",\n \"breaks\": false\n }\n },\n \"suppressions\": [],\n \"variables\": {\n \"$AHLetter\": \"(((?:[A-Za-z\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02D7\\\\u02DE-\\\\u02FF\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559-\\\\u055C\\\\u055E\\\\u0560-\\\\u0588\\\\u058A\\\\u05F3\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u0860-\\\\u086A\\\\u0870-\\\\u0887\\\\u0889-\\\\u088E\\\\u08A0-\\\\u08C9\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u09FC\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C5D\\\\u0C60\\\\u0C61\\\\u0C80\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D04-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D54-\\\\u0D56\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u1711\\\\u171F-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1820-\\\\u1878\\\\u1880-\\\\u1884\\\\u1887-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1A00-\\\\u1A16\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4C\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1C80-\\\\u1C88\\\\u1C90-\\\\u1CBA\\\\u1CBD-\\\\u1CBF\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF3\\\\u1CF5\\\\u1CF6\\\\u1CFA\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u24B6-\\\\u24E9\\\\u2C00-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005\\\\u303B\\\\u303C\\\\u3105-\\\\u312F\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BF\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA708-\\\\uA7CA\\\\uA7D0\\\\uA7D1\\\\uA7D3\\\\uA7D5-\\\\uA7D9\\\\uA7F2-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA8FE\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB69\\\\uAB70-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB50-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFFA0-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF2D-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDD70-\\\\uDD7A\\\\uDD7C-\\\\uDD8A\\\\uDD8C-\\\\uDD92\\\\uDD94\\\\uDD95\\\\uDD97-\\\\uDDA1\\\\uDDA3-\\\\uDDB1\\\\uDDB3-\\\\uDDB9\\\\uDDBB\\\\uDDBC\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67\\\\uDF80-\\\\uDF85\\\\uDF87-\\\\uDFB0\\\\uDFB2-\\\\uDFBA]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE35\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2\\\\uDD00-\\\\uDD23\\\\uDE80-\\\\uDEA9\\\\uDEB0\\\\uDEB1\\\\uDF00-\\\\uDF1C\\\\uDF27\\\\uDF30-\\\\uDF45\\\\uDF70-\\\\uDF81\\\\uDFB0-\\\\uDFC4\\\\uDFE0-\\\\uDFF6]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC71\\\\uDC72\\\\uDC75\\\\uDC83-\\\\uDCAF\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD44\\\\uDD47\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC4\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDE3F\\\\uDE40\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF50\\\\uDF5D-\\\\uDF61]|\\\\uD805[\\\\uDC00-\\\\uDC34\\\\uDC47-\\\\uDC4A\\\\uDC5F-\\\\uDC61\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDDD8-\\\\uDDDB\\\\uDE00-\\\\uDE2F\\\\uDE44\\\\uDE80-\\\\uDEAA\\\\uDEB8]|\\\\uD806[\\\\uDC00-\\\\uDC2B\\\\uDCA0-\\\\uDCDF\\\\uDCFF-\\\\uDD06\\\\uDD09\\\\uDD0C-\\\\uDD13\\\\uDD15\\\\uDD16\\\\uDD18-\\\\uDD2F\\\\uDD3F\\\\uDD41\\\\uDDA0-\\\\uDDA7\\\\uDDAA-\\\\uDDD0\\\\uDDE1\\\\uDDE3\\\\uDE00\\\\uDE0B-\\\\uDE32\\\\uDE3A\\\\uDE50\\\\uDE5C-\\\\uDE89\\\\uDE9D\\\\uDEB0-\\\\uDEF8]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC2E\\\\uDC40\\\\uDC72-\\\\uDC8F\\\\uDD00-\\\\uDD06\\\\uDD08\\\\uDD09\\\\uDD0B-\\\\uDD30\\\\uDD46\\\\uDD60-\\\\uDD65\\\\uDD67\\\\uDD68\\\\uDD6A-\\\\uDD89\\\\uDD98\\\\uDEE0-\\\\uDEF2\\\\uDF02\\\\uDF04-\\\\uDF10\\\\uDF12-\\\\uDF33\\\\uDFB0]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|\\\\uD80B[\\\\uDF90-\\\\uDFF0]|\\\\uD80C[\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2F\\\\uDC41-\\\\uDC46]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE70-\\\\uDEBE\\\\uDED0-\\\\uDEED\\\\uDF00-\\\\uDF2F\\\\uDF40-\\\\uDF43\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDE40-\\\\uDE7F\\\\uDF00-\\\\uDF4A\\\\uDF50\\\\uDF93-\\\\uDF9F\\\\uDFE0\\\\uDFE1\\\\uDFE3]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB]|\\\\uD837[\\\\uDF00-\\\\uDF1E\\\\uDF25-\\\\uDF2A]|\\\\uD838[\\\\uDC30-\\\\uDC6D\\\\uDD00-\\\\uDD2C\\\\uDD37-\\\\uDD3D\\\\uDD4E\\\\uDE90-\\\\uDEAD\\\\uDEC0-\\\\uDEEB]|\\\\uD839[\\\\uDCD0-\\\\uDCEB\\\\uDFE0-\\\\uDFE6\\\\uDFE8-\\\\uDFEB\\\\uDFED\\\\uDFEE\\\\uDFF0-\\\\uDFFE]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDD00-\\\\uDD43\\\\uDD4B]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD83C[\\\\uDD30-\\\\uDD49\\\\uDD50-\\\\uDD69\\\\uDD70-\\\\uDD89])|[\\\\u05D0-\\\\u05EA\\\\u05EF-\\\\u05F2\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFB4F])(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$ALetter\": \"((?:[A-Za-z\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02D7\\\\u02DE-\\\\u02FF\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559-\\\\u055C\\\\u055E\\\\u0560-\\\\u0588\\\\u058A\\\\u05F3\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u0860-\\\\u086A\\\\u0870-\\\\u0887\\\\u0889-\\\\u088E\\\\u08A0-\\\\u08C9\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u09FC\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C5D\\\\u0C60\\\\u0C61\\\\u0C80\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D04-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D54-\\\\u0D56\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u1711\\\\u171F-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1820-\\\\u1878\\\\u1880-\\\\u1884\\\\u1887-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1A00-\\\\u1A16\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4C\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1C80-\\\\u1C88\\\\u1C90-\\\\u1CBA\\\\u1CBD-\\\\u1CBF\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF3\\\\u1CF5\\\\u1CF6\\\\u1CFA\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2119-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u212D\\\\u212F-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u24B6-\\\\u24E9\\\\u2C00-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2E2F\\\\u3005\\\\u303B\\\\u303C\\\\u3105-\\\\u312F\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BF\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA708-\\\\uA7CA\\\\uA7D0\\\\uA7D1\\\\uA7D3\\\\uA7D5-\\\\uA7D9\\\\uA7F2-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA8FE\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB69\\\\uAB70-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB50-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFFA0-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF2D-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDD70-\\\\uDD7A\\\\uDD7C-\\\\uDD8A\\\\uDD8C-\\\\uDD92\\\\uDD94\\\\uDD95\\\\uDD97-\\\\uDDA1\\\\uDDA3-\\\\uDDB1\\\\uDDB3-\\\\uDDB9\\\\uDDBB\\\\uDDBC\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67\\\\uDF80-\\\\uDF85\\\\uDF87-\\\\uDFB0\\\\uDFB2-\\\\uDFBA]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE35\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2\\\\uDD00-\\\\uDD23\\\\uDE80-\\\\uDEA9\\\\uDEB0\\\\uDEB1\\\\uDF00-\\\\uDF1C\\\\uDF27\\\\uDF30-\\\\uDF45\\\\uDF70-\\\\uDF81\\\\uDFB0-\\\\uDFC4\\\\uDFE0-\\\\uDFF6]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC71\\\\uDC72\\\\uDC75\\\\uDC83-\\\\uDCAF\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD44\\\\uDD47\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC4\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDE3F\\\\uDE40\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF50\\\\uDF5D-\\\\uDF61]|\\\\uD805[\\\\uDC00-\\\\uDC34\\\\uDC47-\\\\uDC4A\\\\uDC5F-\\\\uDC61\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDDD8-\\\\uDDDB\\\\uDE00-\\\\uDE2F\\\\uDE44\\\\uDE80-\\\\uDEAA\\\\uDEB8]|\\\\uD806[\\\\uDC00-\\\\uDC2B\\\\uDCA0-\\\\uDCDF\\\\uDCFF-\\\\uDD06\\\\uDD09\\\\uDD0C-\\\\uDD13\\\\uDD15\\\\uDD16\\\\uDD18-\\\\uDD2F\\\\uDD3F\\\\uDD41\\\\uDDA0-\\\\uDDA7\\\\uDDAA-\\\\uDDD0\\\\uDDE1\\\\uDDE3\\\\uDE00\\\\uDE0B-\\\\uDE32\\\\uDE3A\\\\uDE50\\\\uDE5C-\\\\uDE89\\\\uDE9D\\\\uDEB0-\\\\uDEF8]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC2E\\\\uDC40\\\\uDC72-\\\\uDC8F\\\\uDD00-\\\\uDD06\\\\uDD08\\\\uDD09\\\\uDD0B-\\\\uDD30\\\\uDD46\\\\uDD60-\\\\uDD65\\\\uDD67\\\\uDD68\\\\uDD6A-\\\\uDD89\\\\uDD98\\\\uDEE0-\\\\uDEF2\\\\uDF02\\\\uDF04-\\\\uDF10\\\\uDF12-\\\\uDF33\\\\uDFB0]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|\\\\uD80B[\\\\uDF90-\\\\uDFF0]|\\\\uD80C[\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2F\\\\uDC41-\\\\uDC46]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE70-\\\\uDEBE\\\\uDED0-\\\\uDEED\\\\uDF00-\\\\uDF2F\\\\uDF40-\\\\uDF43\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDE40-\\\\uDE7F\\\\uDF00-\\\\uDF4A\\\\uDF50\\\\uDF93-\\\\uDF9F\\\\uDFE0\\\\uDFE1\\\\uDFE3]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB]|\\\\uD837[\\\\uDF00-\\\\uDF1E\\\\uDF25-\\\\uDF2A]|\\\\uD838[\\\\uDC30-\\\\uDC6D\\\\uDD00-\\\\uDD2C\\\\uDD37-\\\\uDD3D\\\\uDD4E\\\\uDE90-\\\\uDEAD\\\\uDEC0-\\\\uDEEB]|\\\\uD839[\\\\uDCD0-\\\\uDCEB\\\\uDFE0-\\\\uDFE6\\\\uDFE8-\\\\uDFEB\\\\uDFED\\\\uDFEE\\\\uDFF0-\\\\uDFFE]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDD00-\\\\uDD43\\\\uDD4B]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD83C[\\\\uDD30-\\\\uDD49\\\\uDD50-\\\\uDD69\\\\uDD70-\\\\uDD89])(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$CR\": \"\\\\r\",\n \"$Double_Quote\": \"(\\\"(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$ExtPict\": \"(?:[\\\\xA9\\\\xAE\\\\u203C\\\\u2049\\\\u2122\\\\u2139\\\\u2194-\\\\u2199\\\\u21A9\\\\u21AA\\\\u231A\\\\u231B\\\\u2328\\\\u2388\\\\u23CF\\\\u23E9-\\\\u23F3\\\\u23F8-\\\\u23FA\\\\u24C2\\\\u25AA\\\\u25AB\\\\u25B6\\\\u25C0\\\\u25FB-\\\\u25FE\\\\u2600-\\\\u2605\\\\u2607-\\\\u2612\\\\u2614-\\\\u2685\\\\u2690-\\\\u2705\\\\u2708-\\\\u2712\\\\u2714\\\\u2716\\\\u271D\\\\u2721\\\\u2728\\\\u2733\\\\u2734\\\\u2744\\\\u2747\\\\u274C\\\\u274E\\\\u2753-\\\\u2755\\\\u2757\\\\u2763-\\\\u2767\\\\u2795-\\\\u2797\\\\u27A1\\\\u27B0\\\\u27BF\\\\u2934\\\\u2935\\\\u2B05-\\\\u2B07\\\\u2B1B\\\\u2B1C\\\\u2B50\\\\u2B55\\\\u3030\\\\u303D\\\\u3297\\\\u3299]|\\\\uD83C[\\\\uDC00-\\\\uDCFF\\\\uDD0D-\\\\uDD0F\\\\uDD2F\\\\uDD6C-\\\\uDD71\\\\uDD7E\\\\uDD7F\\\\uDD8E\\\\uDD91-\\\\uDD9A\\\\uDDAD-\\\\uDDE5\\\\uDE01-\\\\uDE0F\\\\uDE1A\\\\uDE2F\\\\uDE32-\\\\uDE3A\\\\uDE3C-\\\\uDE3F\\\\uDE49-\\\\uDFFA]|\\\\uD83D[\\\\uDC00-\\\\uDD3D\\\\uDD46-\\\\uDE4F\\\\uDE80-\\\\uDEFF\\\\uDF74-\\\\uDF7F\\\\uDFD5-\\\\uDFFF]|\\\\uD83E[\\\\uDC0C-\\\\uDC0F\\\\uDC48-\\\\uDC4F\\\\uDC5A-\\\\uDC5F\\\\uDC88-\\\\uDC8F\\\\uDCAE-\\\\uDCFF\\\\uDD0C-\\\\uDD3A\\\\uDD3C-\\\\uDD45\\\\uDD47-\\\\uDEFF]|\\\\uD83F[\\\\uDC00-\\\\uDFFD])\",\n \"$Extend\": \"(?:[\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0610-\\\\u061A\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DC\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0898-\\\\u089F\\\\u08CA-\\\\u08E1\\\\u08E3-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180D\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFF9E\\\\uFF9F]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCC2\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])\",\n \"$ExtendNumLet\": \"([_\\\\u202F\\\\u203F\\\\u2040\\\\u2054\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFF3F](?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$FE\": \"(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])\",\n \"$Format\": \"(?:[\\\\xAD\\\\u0600-\\\\u0605\\\\u061C\\\\u06DD\\\\u070F\\\\u0890\\\\u0891\\\\u08E2\\\\u180E\\\\u200E\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\uFEFF\\\\uFFF9-\\\\uFFFB]|\\\\uD804[\\\\uDCBD\\\\uDCCD]|\\\\uD80D[\\\\uDC30-\\\\uDC3F]|\\\\uD82F[\\\\uDCA0-\\\\uDCA3]|\\\\uD834[\\\\uDD73-\\\\uDD7A]|\\\\uDB40\\\\uDC01)\",\n \"$Hebrew_Letter\": \"([\\\\u05D0-\\\\u05EA\\\\u05EF-\\\\u05F2\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFB4F](?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$Katakana\": \"((?:[\\\\u3031-\\\\u3035\\\\u309B\\\\u309C\\\\u30A0-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u31F0-\\\\u31FF\\\\u32D0-\\\\u32FE\\\\u3300-\\\\u3357\\\\uFF66-\\\\uFF9D]|\\\\uD82B[\\\\uDFF0-\\\\uDFF3\\\\uDFF5-\\\\uDFFB\\\\uDFFD\\\\uDFFE]|\\\\uD82C[\\\\uDC00\\\\uDD20-\\\\uDD22\\\\uDD55\\\\uDD64-\\\\uDD67])(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$LF\": \"\\\\n\",\n \"$MidLetter\": \"([\\\\xB7\\\\u0387\\\\u055F\\\\u05F4\\\\u2027\\\\uFE13](?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$MidNum\": \"([,;\\\\u037E\\\\u0589\\\\u060C\\\\u060D\\\\u066C\\\\u07F8\\\\u2044\\\\uFE10\\\\uFE14\\\\uFE50\\\\uFE54\\\\uFF0C\\\\uFF1B](?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$MidNumLet\": \"([\\\\.\\\\u2018\\\\u2019\\\\u2024\\\\uFE52\\\\uFF07\\\\uFF0E](?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$MidNumLetQ\": \"(([\\\\.\\\\u2018\\\\u2019\\\\u2024\\\\uFE52\\\\uFF07\\\\uFF0E]|')(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$Newline\": \"[\\\\x0B\\\\f\\\\x85\\\\u2028\\\\u2029]\",\n \"$NotBreak_\": \"(?:(?![\\\\n-\\\\r\\\\x85\\\\u2028\\\\u2029])[\\\\s\\\\S])\",\n \"$Numeric\": \"((?:[0-9\\\\u0660-\\\\u0669\\\\u066B\\\\u06F0-\\\\u06F9\\\\u07C0-\\\\u07C9\\\\u0966-\\\\u096F\\\\u09E6-\\\\u09EF\\\\u0A66-\\\\u0A6F\\\\u0AE6-\\\\u0AEF\\\\u0B66-\\\\u0B6F\\\\u0BE6-\\\\u0BEF\\\\u0C66-\\\\u0C6F\\\\u0CE6-\\\\u0CEF\\\\u0D66-\\\\u0D6F\\\\u0DE6-\\\\u0DEF\\\\u0E50-\\\\u0E59\\\\u0ED0-\\\\u0ED9\\\\u0F20-\\\\u0F29\\\\u1040-\\\\u1049\\\\u1090-\\\\u1099\\\\u17E0-\\\\u17E9\\\\u1810-\\\\u1819\\\\u1946-\\\\u194F\\\\u19D0-\\\\u19D9\\\\u1A80-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1B50-\\\\u1B59\\\\u1BB0-\\\\u1BB9\\\\u1C40-\\\\u1C49\\\\u1C50-\\\\u1C59\\\\uA620-\\\\uA629\\\\uA8D0-\\\\uA8D9\\\\uA900-\\\\uA909\\\\uA9D0-\\\\uA9D9\\\\uA9F0-\\\\uA9F9\\\\uAA50-\\\\uAA59\\\\uABF0-\\\\uABF9\\\\uFF10-\\\\uFF19]|\\\\uD801[\\\\uDCA0-\\\\uDCA9]|\\\\uD803[\\\\uDD30-\\\\uDD39]|\\\\uD804[\\\\uDC66-\\\\uDC6F\\\\uDCF0-\\\\uDCF9\\\\uDD36-\\\\uDD3F\\\\uDDD0-\\\\uDDD9\\\\uDEF0-\\\\uDEF9]|\\\\uD805[\\\\uDC50-\\\\uDC59\\\\uDCD0-\\\\uDCD9\\\\uDE50-\\\\uDE59\\\\uDEC0-\\\\uDEC9\\\\uDF30-\\\\uDF39]|\\\\uD806[\\\\uDCE0-\\\\uDCE9\\\\uDD50-\\\\uDD59]|\\\\uD807[\\\\uDC50-\\\\uDC59\\\\uDD50-\\\\uDD59\\\\uDDA0-\\\\uDDA9\\\\uDF50-\\\\uDF59]|\\\\uD81A[\\\\uDE60-\\\\uDE69\\\\uDEC0-\\\\uDEC9\\\\uDF50-\\\\uDF59]|\\\\uD835[\\\\uDFCE-\\\\uDFFF]|\\\\uD838[\\\\uDD40-\\\\uDD49\\\\uDEF0-\\\\uDEF9]|\\\\uD839[\\\\uDCF0-\\\\uDCF9]|\\\\uD83A[\\\\uDD50-\\\\uDD59]|\\\\uD83E[\\\\uDFF0-\\\\uDFF9])(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$RI\": \"((?:\\\\uD83C[\\\\uDDE6-\\\\uDDFF])(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$Single_Quote\": \"('(?:[\\\\xAD\\\\u0300-\\\\u036F\\\\u0483-\\\\u0489\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u0600-\\\\u0605\\\\u0610-\\\\u061A\\\\u061C\\\\u064B-\\\\u065F\\\\u0670\\\\u06D6-\\\\u06DD\\\\u06DF-\\\\u06E4\\\\u06E7\\\\u06E8\\\\u06EA-\\\\u06ED\\\\u070F\\\\u0711\\\\u0730-\\\\u074A\\\\u07A6-\\\\u07B0\\\\u07EB-\\\\u07F3\\\\u07FD\\\\u0816-\\\\u0819\\\\u081B-\\\\u0823\\\\u0825-\\\\u0827\\\\u0829-\\\\u082D\\\\u0859-\\\\u085B\\\\u0890\\\\u0891\\\\u0898-\\\\u089F\\\\u08CA-\\\\u0903\\\\u093A-\\\\u093C\\\\u093E-\\\\u094F\\\\u0951-\\\\u0957\\\\u0962\\\\u0963\\\\u0981-\\\\u0983\\\\u09BC\\\\u09BE-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CD\\\\u09D7\\\\u09E2\\\\u09E3\\\\u09FE\\\\u0A01-\\\\u0A03\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A70\\\\u0A71\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0ABC\\\\u0ABE-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AE2\\\\u0AE3\\\\u0AFA-\\\\u0AFF\\\\u0B01-\\\\u0B03\\\\u0B3C\\\\u0B3E-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B55-\\\\u0B57\\\\u0B62\\\\u0B63\\\\u0B82\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD7\\\\u0C00-\\\\u0C04\\\\u0C3C\\\\u0C3E-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C62\\\\u0C63\\\\u0C81-\\\\u0C83\\\\u0CBC\\\\u0CBE-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CE2\\\\u0CE3\\\\u0CF3\\\\u0D00-\\\\u0D03\\\\u0D3B\\\\u0D3C\\\\u0D3E-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4D\\\\u0D57\\\\u0D62\\\\u0D63\\\\u0D81-\\\\u0D83\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DF2\\\\u0DF3\\\\u0E31\\\\u0E34-\\\\u0E3A\\\\u0E47-\\\\u0E4E\\\\u0EB1\\\\u0EB4-\\\\u0EBC\\\\u0EC8-\\\\u0ECE\\\\u0F18\\\\u0F19\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E\\\\u0F3F\\\\u0F71-\\\\u0F84\\\\u0F86\\\\u0F87\\\\u0F8D-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u102B-\\\\u103E\\\\u1056-\\\\u1059\\\\u105E-\\\\u1060\\\\u1062-\\\\u1064\\\\u1067-\\\\u106D\\\\u1071-\\\\u1074\\\\u1082-\\\\u108D\\\\u108F\\\\u109A-\\\\u109D\\\\u135D-\\\\u135F\\\\u1712-\\\\u1715\\\\u1732-\\\\u1734\\\\u1752\\\\u1753\\\\u1772\\\\u1773\\\\u17B4-\\\\u17D3\\\\u17DD\\\\u180B-\\\\u180F\\\\u1885\\\\u1886\\\\u18A9\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1A17-\\\\u1A1B\\\\u1A55-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F\\\\u1AB0-\\\\u1ACE\\\\u1B00-\\\\u1B04\\\\u1B34-\\\\u1B44\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1B82\\\\u1BA1-\\\\u1BAD\\\\u1BE6-\\\\u1BF3\\\\u1C24-\\\\u1C37\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CE8\\\\u1CED\\\\u1CF4\\\\u1CF7-\\\\u1CF9\\\\u1DC0-\\\\u1DFF\\\\u200C-\\\\u200F\\\\u202A-\\\\u202E\\\\u2060-\\\\u2064\\\\u2066-\\\\u206F\\\\u20D0-\\\\u20F0\\\\u2CEF-\\\\u2CF1\\\\u2D7F\\\\u2DE0-\\\\u2DFF\\\\u302A-\\\\u302F\\\\u3099\\\\u309A\\\\uA66F-\\\\uA672\\\\uA674-\\\\uA67D\\\\uA69E\\\\uA69F\\\\uA6F0\\\\uA6F1\\\\uA802\\\\uA806\\\\uA80B\\\\uA823-\\\\uA827\\\\uA82C\\\\uA880\\\\uA881\\\\uA8B4-\\\\uA8C5\\\\uA8E0-\\\\uA8F1\\\\uA8FF\\\\uA926-\\\\uA92D\\\\uA947-\\\\uA953\\\\uA980-\\\\uA983\\\\uA9B3-\\\\uA9C0\\\\uA9E5\\\\uAA29-\\\\uAA36\\\\uAA43\\\\uAA4C\\\\uAA4D\\\\uAA7B-\\\\uAA7D\\\\uAAB0\\\\uAAB2-\\\\uAAB4\\\\uAAB7\\\\uAAB8\\\\uAABE\\\\uAABF\\\\uAAC1\\\\uAAEB-\\\\uAAEF\\\\uAAF5\\\\uAAF6\\\\uABE3-\\\\uABEA\\\\uABEC\\\\uABED\\\\uFB1E\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFEFF\\\\uFF9E\\\\uFF9F\\\\uFFF9-\\\\uFFFB]|\\\\uD800[\\\\uDDFD\\\\uDEE0\\\\uDF76-\\\\uDF7A]|\\\\uD802[\\\\uDE01-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE0F\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDEE5\\\\uDEE6]|\\\\uD803[\\\\uDD24-\\\\uDD27\\\\uDEAB\\\\uDEAC\\\\uDEFD-\\\\uDEFF\\\\uDF46-\\\\uDF50\\\\uDF82-\\\\uDF85]|\\\\uD804[\\\\uDC00-\\\\uDC02\\\\uDC38-\\\\uDC46\\\\uDC70\\\\uDC73\\\\uDC74\\\\uDC7F-\\\\uDC82\\\\uDCB0-\\\\uDCBA\\\\uDCBD\\\\uDCC2\\\\uDCCD\\\\uDD00-\\\\uDD02\\\\uDD27-\\\\uDD34\\\\uDD45\\\\uDD46\\\\uDD73\\\\uDD80-\\\\uDD82\\\\uDDB3-\\\\uDDC0\\\\uDDC9-\\\\uDDCC\\\\uDDCE\\\\uDDCF\\\\uDE2C-\\\\uDE37\\\\uDE3E\\\\uDE41\\\\uDEDF-\\\\uDEEA\\\\uDF00-\\\\uDF03\\\\uDF3B\\\\uDF3C\\\\uDF3E-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF57\\\\uDF62\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC35-\\\\uDC46\\\\uDC5E\\\\uDCB0-\\\\uDCC3\\\\uDDAF-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDDC\\\\uDDDD\\\\uDE30-\\\\uDE40\\\\uDEAB-\\\\uDEB7\\\\uDF1D-\\\\uDF2B]|\\\\uD806[\\\\uDC2C-\\\\uDC3A\\\\uDD30-\\\\uDD35\\\\uDD37\\\\uDD38\\\\uDD3B-\\\\uDD3E\\\\uDD40\\\\uDD42\\\\uDD43\\\\uDDD1-\\\\uDDD7\\\\uDDDA-\\\\uDDE0\\\\uDDE4\\\\uDE01-\\\\uDE0A\\\\uDE33-\\\\uDE39\\\\uDE3B-\\\\uDE3E\\\\uDE47\\\\uDE51-\\\\uDE5B\\\\uDE8A-\\\\uDE99]|\\\\uD807[\\\\uDC2F-\\\\uDC36\\\\uDC38-\\\\uDC3F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6\\\\uDD31-\\\\uDD36\\\\uDD3A\\\\uDD3C\\\\uDD3D\\\\uDD3F-\\\\uDD45\\\\uDD47\\\\uDD8A-\\\\uDD8E\\\\uDD90\\\\uDD91\\\\uDD93-\\\\uDD97\\\\uDEF3-\\\\uDEF6\\\\uDF00\\\\uDF01\\\\uDF03\\\\uDF34-\\\\uDF3A\\\\uDF3E-\\\\uDF42]|\\\\uD80D[\\\\uDC30-\\\\uDC40\\\\uDC47-\\\\uDC55]|\\\\uD81A[\\\\uDEF0-\\\\uDEF4\\\\uDF30-\\\\uDF36]|\\\\uD81B[\\\\uDF4F\\\\uDF51-\\\\uDF87\\\\uDF8F-\\\\uDF92\\\\uDFE4\\\\uDFF0\\\\uDFF1]|\\\\uD82F[\\\\uDC9D\\\\uDC9E\\\\uDCA0-\\\\uDCA3]|\\\\uD833[\\\\uDF00-\\\\uDF2D\\\\uDF30-\\\\uDF46]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A\\\\uDC8F\\\\uDD30-\\\\uDD36\\\\uDEAE\\\\uDEEC-\\\\uDEEF]|\\\\uD839[\\\\uDCEC-\\\\uDCEF]|\\\\uD83A[\\\\uDCD0-\\\\uDCD6\\\\uDD44-\\\\uDD4A]|\\\\uD83C[\\\\uDFFB-\\\\uDFFF]|\\\\uDB40[\\\\uDC01\\\\uDC20-\\\\uDC7F\\\\uDD00-\\\\uDDEF])*)\",\n \"$WSegSpace\": \"[ \\\\u1680\\\\u2000-\\\\u2006\\\\u2008-\\\\u200A\\\\u205F\\\\u3000]\",\n \"$ZWJ\": \"\\\\u200D\"\n }\n }\n },\n \"ru\": {\n \"sentence\": {\n \"segmentRules\": {},\n \"suppressions\": [\n \"руб.\",\n \"янв.\",\n \"до н. э.\",\n \"сент.\",\n \"тел.\",\n \"дек.\",\n \"февр.\",\n \"нояб.\",\n \"апр.\",\n \"н. э.\",\n \"окт.\",\n \"тыс.\",\n \"авг.\",\n \"проф.\",\n \"н.э.\",\n \"кв.\",\n \"ул.\",\n \"отд.\"\n ],\n \"variables\": {}\n }\n },\n \"zh\": {}\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isSurrogate = exports.replaceVariables = void 0;\nvar replaceVariables = function (variables, input) {\n var findVarRegex = /\\$[A-Za-z0-9_]+/gm;\n return input.replaceAll(findVarRegex, function (match) {\n if (!(match in variables)) {\n throw new Error(\"No such variable \".concat(match));\n }\n return variables[match];\n });\n};\nexports.replaceVariables = replaceVariables;\nvar isSurrogate = function (str, pos) {\n return (0xd800 <= str.charCodeAt(pos - 1) &&\n str.charCodeAt(pos - 1) <= 0xdbff &&\n 0xdc00 <= str.charCodeAt(pos) &&\n str.charCodeAt(pos) <= 0xdfff);\n};\nexports.isSurrogate = isSurrogate;\n// alternative surrogate check mimicking the java implementation\n// const TRAIL_SURROGATE_BITMASK = 0xfffffc00\n// const TRAIL_SURROGATE_BITS = 0xdc00\n// const LEAD_SURROGATE_BITMASK = 0xfffffc00\n// const LEAD_SURROGATE_BITS = 0xd800\n// const isSurrogate = (text: string, position: number) => {\n// if (\n// (text.charCodeAt(position - 1) & LEAD_SURROGATE_BITMASK) ==\n// LEAD_SURROGATE_BITS &&\n// (text.charCodeAt(position) & TRAIL_SURROGATE_BITMASK) ==\n// TRAIL_SURROGATE_BITS\n// ) {\n// return true\n// } else {\n// return false\n// }\n// }\n","/**\n * http://ecma-international.org/ecma-402/7.0/index.html#sec-canonicalizelocalelist\n * @param locales\n */\nexport function CanonicalizeLocaleList(locales) {\n // TODO\n return Intl.getCanonicalLocales(locales);\n}\n","/**\n * https://tc39.es/ecma402/#sec-canonicalizetimezonename\n * @param tz\n */\nexport function CanonicalizeTimeZoneName(tz, _a) {\n var zoneNames = _a.zoneNames, uppercaseLinks = _a.uppercaseLinks;\n var uppercasedTz = tz.toUpperCase();\n var uppercasedZones = zoneNames.reduce(function (all, z) {\n all[z.toUpperCase()] = z;\n return all;\n }, {});\n var ianaTimeZone = uppercaseLinks[uppercasedTz] || uppercasedZones[uppercasedTz];\n if (ianaTimeZone === 'Etc/UTC' || ianaTimeZone === 'Etc/GMT') {\n return 'UTC';\n }\n return ianaTimeZone;\n}\n","/**\n * https://tc39.es/ecma262/#sec-tostring\n */\nexport function ToString(o) {\n // Only symbol is irregular...\n if (typeof o === 'symbol') {\n throw TypeError('Cannot convert a Symbol value to a string');\n }\n return String(o);\n}\n/**\n * https://tc39.es/ecma262/#sec-tonumber\n * @param val\n */\nexport function ToNumber(val) {\n if (val === undefined) {\n return NaN;\n }\n if (val === null) {\n return +0;\n }\n if (typeof val === 'boolean') {\n return val ? 1 : +0;\n }\n if (typeof val === 'number') {\n return val;\n }\n if (typeof val === 'symbol' || typeof val === 'bigint') {\n throw new TypeError('Cannot convert symbol/bigint to number');\n }\n return Number(val);\n}\n/**\n * https://tc39.es/ecma262/#sec-tointeger\n * @param n\n */\nfunction ToInteger(n) {\n var number = ToNumber(n);\n if (isNaN(number) || SameValue(number, -0)) {\n return 0;\n }\n if (isFinite(number)) {\n return number;\n }\n var integer = Math.floor(Math.abs(number));\n if (number < 0) {\n integer = -integer;\n }\n if (SameValue(integer, -0)) {\n return 0;\n }\n return integer;\n}\n/**\n * https://tc39.es/ecma262/#sec-timeclip\n * @param time\n */\nexport function TimeClip(time) {\n if (!isFinite(time)) {\n return NaN;\n }\n if (Math.abs(time) > 8.64 * 1e15) {\n return NaN;\n }\n return ToInteger(time);\n}\n/**\n * https://tc39.es/ecma262/#sec-toobject\n * @param arg\n */\nexport function ToObject(arg) {\n if (arg == null) {\n throw new TypeError('undefined/null cannot be converted to object');\n }\n return Object(arg);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-samevalue\n * @param x\n * @param y\n */\nexport function SameValue(x, y) {\n if (Object.is) {\n return Object.is(x, y);\n }\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n }\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-arraycreate\n * @param len\n */\nexport function ArrayCreate(len) {\n return new Array(len);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-hasownproperty\n * @param o\n * @param prop\n */\nexport function HasOwnProperty(o, prop) {\n return Object.prototype.hasOwnProperty.call(o, prop);\n}\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#sec-type\n * @param x\n */\nexport function Type(x) {\n if (x === null) {\n return 'Null';\n }\n if (typeof x === 'undefined') {\n return 'Undefined';\n }\n if (typeof x === 'function' || typeof x === 'object') {\n return 'Object';\n }\n if (typeof x === 'number') {\n return 'Number';\n }\n if (typeof x === 'boolean') {\n return 'Boolean';\n }\n if (typeof x === 'string') {\n return 'String';\n }\n if (typeof x === 'symbol') {\n return 'Symbol';\n }\n if (typeof x === 'bigint') {\n return 'BigInt';\n }\n}\nvar MS_PER_DAY = 86400000;\n/**\n * https://www.ecma-international.org/ecma-262/11.0/index.html#eqn-modulo\n * @param x\n * @param y\n * @return k of the same sign as y\n */\nfunction mod(x, y) {\n return x - Math.floor(x / y) * y;\n}\n/**\n * https://tc39.es/ecma262/#eqn-Day\n * @param t\n */\nexport function Day(t) {\n return Math.floor(t / MS_PER_DAY);\n}\n/**\n * https://tc39.es/ecma262/#sec-week-day\n * @param t\n */\nexport function WeekDay(t) {\n return mod(Day(t) + 4, 7);\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param y\n */\nexport function DayFromYear(y) {\n return Date.UTC(y, 0) / MS_PER_DAY;\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param y\n */\nexport function TimeFromYear(y) {\n return Date.UTC(y, 0);\n}\n/**\n * https://tc39.es/ecma262/#sec-year-number\n * @param t\n */\nexport function YearFromTime(t) {\n return new Date(t).getUTCFullYear();\n}\nexport function DaysInYear(y) {\n if (y % 4 !== 0) {\n return 365;\n }\n if (y % 100 !== 0) {\n return 366;\n }\n if (y % 400 !== 0) {\n return 365;\n }\n return 366;\n}\nexport function DayWithinYear(t) {\n return Day(t) - DayFromYear(YearFromTime(t));\n}\nexport function InLeapYear(t) {\n return DaysInYear(YearFromTime(t)) === 365 ? 0 : 1;\n}\n/**\n * https://tc39.es/ecma262/#sec-month-number\n * @param t\n */\nexport function MonthFromTime(t) {\n var dwy = DayWithinYear(t);\n var leap = InLeapYear(t);\n if (dwy >= 0 && dwy < 31) {\n return 0;\n }\n if (dwy < 59 + leap) {\n return 1;\n }\n if (dwy < 90 + leap) {\n return 2;\n }\n if (dwy < 120 + leap) {\n return 3;\n }\n if (dwy < 151 + leap) {\n return 4;\n }\n if (dwy < 181 + leap) {\n return 5;\n }\n if (dwy < 212 + leap) {\n return 6;\n }\n if (dwy < 243 + leap) {\n return 7;\n }\n if (dwy < 273 + leap) {\n return 8;\n }\n if (dwy < 304 + leap) {\n return 9;\n }\n if (dwy < 334 + leap) {\n return 10;\n }\n if (dwy < 365 + leap) {\n return 11;\n }\n throw new Error('Invalid time');\n}\nexport function DateFromTime(t) {\n var dwy = DayWithinYear(t);\n var mft = MonthFromTime(t);\n var leap = InLeapYear(t);\n if (mft === 0) {\n return dwy + 1;\n }\n if (mft === 1) {\n return dwy - 30;\n }\n if (mft === 2) {\n return dwy - 58 - leap;\n }\n if (mft === 3) {\n return dwy - 89 - leap;\n }\n if (mft === 4) {\n return dwy - 119 - leap;\n }\n if (mft === 5) {\n return dwy - 150 - leap;\n }\n if (mft === 6) {\n return dwy - 180 - leap;\n }\n if (mft === 7) {\n return dwy - 211 - leap;\n }\n if (mft === 8) {\n return dwy - 242 - leap;\n }\n if (mft === 9) {\n return dwy - 272 - leap;\n }\n if (mft === 10) {\n return dwy - 303 - leap;\n }\n if (mft === 11) {\n return dwy - 333 - leap;\n }\n throw new Error('Invalid time');\n}\nvar HOURS_PER_DAY = 24;\nvar MINUTES_PER_HOUR = 60;\nvar SECONDS_PER_MINUTE = 60;\nvar MS_PER_SECOND = 1e3;\nvar MS_PER_MINUTE = MS_PER_SECOND * SECONDS_PER_MINUTE;\nvar MS_PER_HOUR = MS_PER_MINUTE * MINUTES_PER_HOUR;\nexport function HourFromTime(t) {\n return mod(Math.floor(t / MS_PER_HOUR), HOURS_PER_DAY);\n}\nexport function MinFromTime(t) {\n return mod(Math.floor(t / MS_PER_MINUTE), MINUTES_PER_HOUR);\n}\nexport function SecFromTime(t) {\n return mod(Math.floor(t / MS_PER_SECOND), SECONDS_PER_MINUTE);\n}\nfunction IsCallable(fn) {\n return typeof fn === 'function';\n}\n/**\n * The abstract operation OrdinaryHasInstance implements\n * the default algorithm for determining if an object O\n * inherits from the instance object inheritance path\n * provided by constructor C.\n * @param C class\n * @param O object\n * @param internalSlots internalSlots\n */\nexport function OrdinaryHasInstance(C, O, internalSlots) {\n if (!IsCallable(C)) {\n return false;\n }\n if (internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction) {\n var BC = internalSlots === null || internalSlots === void 0 ? void 0 : internalSlots.boundTargetFunction;\n return O instanceof BC;\n }\n if (typeof O !== 'object') {\n return false;\n }\n var P = C.prototype;\n if (typeof P !== 'object') {\n throw new TypeError('OrdinaryHasInstance called on an object with an invalid prototype property.');\n }\n return Object.prototype.isPrototypeOf.call(P, O);\n}\nexport function msFromTime(t) {\n return mod(t, MS_PER_SECOND);\n}\n","import { ToObject } from './262';\n/**\n * https://tc39.es/ecma402/#sec-coerceoptionstoobject\n * @param options\n * @returns\n */\nexport function CoerceOptionsToObject(options) {\n if (typeof options === 'undefined') {\n return Object.create(null);\n }\n return ToObject(options);\n}\n","/**\n * https://tc39.es/ecma402/#sec-defaultnumberoption\n * @param val\n * @param min\n * @param max\n * @param fallback\n */\nexport function DefaultNumberOption(inputVal, min, max, fallback) {\n if (inputVal === undefined) {\n // @ts-expect-error\n return fallback;\n }\n var val = Number(inputVal);\n if (isNaN(val) || val < min || val > max) {\n throw new RangeError(\"\".concat(val, \" is outside of range [\").concat(min, \", \").concat(max, \"]\"));\n }\n return Math.floor(val);\n}\n","/**\n * https://tc39.es/ecma402/#sec-getnumberoption\n * @param options\n * @param property\n * @param min\n * @param max\n * @param fallback\n */\nimport { DefaultNumberOption } from './DefaultNumberOption';\nexport function GetNumberOption(options, property, minimum, maximum, fallback) {\n var val = options[property];\n return DefaultNumberOption(val, minimum, maximum, fallback);\n}\n","import { ToString } from './262';\n/**\n * https://tc39.es/ecma402/#sec-getoption\n * @param opts\n * @param prop\n * @param type\n * @param values\n * @param fallback\n */\nexport function GetOption(opts, prop, type, values, fallback) {\n if (typeof opts !== 'object') {\n throw new TypeError('Options must be an object');\n }\n var value = opts[prop];\n if (value !== undefined) {\n if (type !== 'boolean' && type !== 'string') {\n throw new TypeError('invalid type');\n }\n if (type === 'boolean') {\n value = Boolean(value);\n }\n if (type === 'string') {\n value = ToString(value);\n }\n if (values !== undefined && !values.filter(function (val) { return val == value; }).length) {\n throw new RangeError(\"\".concat(value, \" is not within \").concat(values.join(', ')));\n }\n return value;\n }\n return fallback;\n}\n","/**\n * https://tc39.es/ecma402/#sec-getoptionsobject\n * @param options\n * @returns\n */\nexport function GetOptionsObject(options) {\n if (typeof options === 'undefined') {\n return Object.create(null);\n }\n if (typeof options === 'object') {\n return options;\n }\n throw new TypeError('Options must be an object');\n}\n","/**\n * https://tc39.es/ecma402/#sec-getstringorbooleanoption\n * @param opts\n * @param prop\n * @param values\n * @param trueValue\n * @param falsyValue\n * @param fallback\n */\nimport { ToString } from './262';\nexport function GetStringOrBooleanOption(opts, prop, values, trueValue, falsyValue, fallback) {\n var value = opts[prop];\n if (value === undefined) {\n return fallback;\n }\n if (value === true) {\n return trueValue;\n }\n var valueBoolean = Boolean(value);\n if (valueBoolean === false) {\n return falsyValue;\n }\n value = ToString(value);\n if (value === 'true' || value === 'false') {\n return fallback;\n }\n if ((values || []).indexOf(value) === -1) {\n throw new RangeError(\"Invalid value \".concat(value));\n }\n return value;\n}\n","/**\n * https://tc39.es/ecma402/#table-sanctioned-simple-unit-identifiers\n */\nexport var SANCTIONED_UNITS = [\n 'angle-degree',\n 'area-acre',\n 'area-hectare',\n 'concentr-percent',\n 'digital-bit',\n 'digital-byte',\n 'digital-gigabit',\n 'digital-gigabyte',\n 'digital-kilobit',\n 'digital-kilobyte',\n 'digital-megabit',\n 'digital-megabyte',\n 'digital-petabyte',\n 'digital-terabit',\n 'digital-terabyte',\n 'duration-day',\n 'duration-hour',\n 'duration-millisecond',\n 'duration-minute',\n 'duration-month',\n 'duration-second',\n 'duration-week',\n 'duration-year',\n 'length-centimeter',\n 'length-foot',\n 'length-inch',\n 'length-kilometer',\n 'length-meter',\n 'length-mile-scandinavian',\n 'length-mile',\n 'length-millimeter',\n 'length-yard',\n 'mass-gram',\n 'mass-kilogram',\n 'mass-ounce',\n 'mass-pound',\n 'mass-stone',\n 'temperature-celsius',\n 'temperature-fahrenheit',\n 'volume-fluid-ounce',\n 'volume-gallon',\n 'volume-liter',\n 'volume-milliliter',\n];\n// In CLDR, the unit name always follows the form `namespace-unit` pattern.\n// For example: `digital-bit` instead of `bit`. This function removes the namespace prefix.\nexport function removeUnitNamespace(unit) {\n return unit.slice(unit.indexOf('-') + 1);\n}\n/**\n * https://tc39.es/ecma402/#table-sanctioned-simple-unit-identifiers\n */\nexport var SIMPLE_UNITS = SANCTIONED_UNITS.map(removeUnitNamespace);\n/**\n * https://tc39.es/ecma402/#sec-issanctionedsimpleunitidentifier\n */\nexport function IsSanctionedSimpleUnitIdentifier(unitIdentifier) {\n return SIMPLE_UNITS.indexOf(unitIdentifier) > -1;\n}\n","/**\n * https://tc39.es/ecma402/#sec-isvalidtimezonename\n * @param tz\n * @param implDetails implementation details\n */\nexport function IsValidTimeZoneName(tz, _a) {\n var zoneNamesFromData = _a.zoneNamesFromData, uppercaseLinks = _a.uppercaseLinks;\n var uppercasedTz = tz.toUpperCase();\n var zoneNames = new Set();\n var linkNames = new Set();\n zoneNamesFromData.map(function (z) { return z.toUpperCase(); }).forEach(function (z) { return zoneNames.add(z); });\n Object.keys(uppercaseLinks).forEach(function (linkName) {\n linkNames.add(linkName.toUpperCase());\n zoneNames.add(uppercaseLinks[linkName].toUpperCase());\n });\n return zoneNames.has(uppercasedTz) || linkNames.has(uppercasedTz);\n}\n","/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toUpperCase(str) {\n return str.replace(/([a-z])/g, function (_, c) { return c.toUpperCase(); });\n}\nvar NOT_A_Z_REGEX = /[^A-Z]/;\n/**\n * https://tc39.es/ecma402/#sec-iswellformedcurrencycode\n */\nexport function IsWellFormedCurrencyCode(currency) {\n currency = toUpperCase(currency);\n if (currency.length !== 3) {\n return false;\n }\n if (NOT_A_Z_REGEX.test(currency)) {\n return false;\n }\n return true;\n}\n","import { IsSanctionedSimpleUnitIdentifier } from './IsSanctionedSimpleUnitIdentifier';\n/**\n * This follows https://tc39.es/ecma402/#sec-case-sensitivity-and-case-mapping\n * @param str string to convert\n */\nfunction toLowerCase(str) {\n return str.replace(/([A-Z])/g, function (_, c) { return c.toLowerCase(); });\n}\n/**\n * https://tc39.es/ecma402/#sec-iswellformedunitidentifier\n * @param unit\n */\nexport function IsWellFormedUnitIdentifier(unit) {\n unit = toLowerCase(unit);\n if (IsSanctionedSimpleUnitIdentifier(unit)) {\n return true;\n }\n var units = unit.split('-per-');\n if (units.length !== 2) {\n return false;\n }\n var numerator = units[0], denominator = units[1];\n if (!IsSanctionedSimpleUnitIdentifier(numerator) ||\n !IsSanctionedSimpleUnitIdentifier(denominator)) {\n return false;\n }\n return true;\n}\n","export function ApplyUnsignedRoundingMode(x, r1, r2, unsignedRoundingMode) {\n if (x === r1)\n return r1;\n if (unsignedRoundingMode === undefined) {\n throw new Error('unsignedRoundingMode is mandatory');\n }\n if (unsignedRoundingMode === 'zero') {\n return r1;\n }\n if (unsignedRoundingMode === 'infinity') {\n return r2;\n }\n var d1 = x - r1;\n var d2 = r2 - x;\n if (d1 < d2) {\n return r1;\n }\n if (d2 < d1) {\n return r2;\n }\n if (d1 !== d2) {\n throw new Error('Unexpected error');\n }\n if (unsignedRoundingMode === 'half-zero') {\n return r1;\n }\n if (unsignedRoundingMode === 'half-infinity') {\n return r2;\n }\n if (unsignedRoundingMode !== 'half-even') {\n throw new Error(\"Unexpected value for unsignedRoundingMode: \".concat(unsignedRoundingMode));\n }\n var cardinality = (r1 / (r2 - r1)) % 2;\n if (cardinality === 0) {\n return r1;\n }\n return r2;\n}\n","/**\n * https://tc39.es/ecma402/#sec-collapsenumberrange\n */\nexport function CollapseNumberRange(result) {\n return result;\n}\n","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n var arr = new Array(times);\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n var slots = map.get(pl);\n if (!slots) {\n throw new TypeError(\"\".concat(pl, \" InternalSlot has not been initialized\"));\n }\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value,\n });\n}\n/**\n * 7.3.5 CreateDataProperty\n * @param target\n * @param name\n * @param value\n */\nexport function createDataProperty(target, name, value) {\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: true,\n writable: true,\n value: value,\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) { Err = Error; }\n if (!condition) {\n throw new Err(message);\n }\n}\n","/**\n * The abstract operation ComputeExponentForMagnitude computes an exponent by which to scale a\n * number of the given magnitude (power of ten of the most significant digit) according to the\n * locale and the desired notation (scientific, engineering, or compact).\n */\nexport function ComputeExponentForMagnitude(numberFormat, magnitude, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var notation = internalSlots.notation, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;\n switch (notation) {\n case 'standard':\n return 0;\n case 'scientific':\n return magnitude;\n case 'engineering':\n return Math.floor(magnitude / 3) * 3;\n default: {\n // Let exponent be an implementation- and locale-dependent (ILD) integer by which to scale a\n // number of the given magnitude in compact notation for the current locale.\n var compactDisplay = internalSlots.compactDisplay, style = internalSlots.style, currencyDisplay = internalSlots.currencyDisplay;\n var thresholdMap = void 0;\n if (style === 'currency' && currencyDisplay !== 'name') {\n var currency = dataLocaleData.numbers.currency[numberingSystem] ||\n dataLocaleData.numbers.currency[dataLocaleData.numbers.nu[0]];\n thresholdMap = currency.short;\n }\n else {\n var decimal = dataLocaleData.numbers.decimal[numberingSystem] ||\n dataLocaleData.numbers.decimal[dataLocaleData.numbers.nu[0]];\n thresholdMap = compactDisplay === 'long' ? decimal.long : decimal.short;\n }\n if (!thresholdMap) {\n return 0;\n }\n var num = String(Math.pow(10, magnitude));\n var thresholds = Object.keys(thresholdMap); // TODO: this can be pre-processed\n if (num < thresholds[0]) {\n return 0;\n }\n if (num > thresholds[thresholds.length - 1]) {\n return thresholds[thresholds.length - 1].length - 1;\n }\n var i = thresholds.indexOf(num);\n if (i === -1) {\n return 0;\n }\n // See https://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats\n // Special handling if the pattern is precisely `0`.\n var magnitudeKey = thresholds[i];\n // TODO: do we need to handle plural here?\n var compactPattern = thresholdMap[magnitudeKey].other;\n if (compactPattern === '0') {\n return 0;\n }\n // Example: in zh-TW, `10000000` maps to `0000萬`. So we need to return 8 - 4 = 4 here.\n return (magnitudeKey.length -\n thresholdMap[magnitudeKey].other.match(/0+/)[0].length);\n }\n }\n}\n","import { repeat, getMagnitude } from '../utils';\nexport function ToRawPrecision(x, minPrecision, maxPrecision) {\n var p = maxPrecision;\n var m;\n var e;\n var xFinal;\n if (x === 0) {\n m = repeat('0', p);\n e = 0;\n xFinal = 0;\n }\n else {\n var xToString = x.toString();\n // If xToString is formatted as scientific notation, the number is either very small or very\n // large. If the precision of the formatted string is lower that requested max precision, we\n // should still infer them from the formatted string, otherwise the formatted result might have\n // precision loss (e.g. 1e41 will not have 0 in every trailing digits).\n var xToStringExponentIndex = xToString.indexOf('e');\n var _a = xToString.split('e'), xToStringMantissa = _a[0], xToStringExponent = _a[1];\n var xToStringMantissaWithoutDecimalPoint = xToStringMantissa.replace('.', '');\n if (xToStringExponentIndex >= 0 &&\n xToStringMantissaWithoutDecimalPoint.length <= p) {\n e = +xToStringExponent;\n m =\n xToStringMantissaWithoutDecimalPoint +\n repeat('0', p - xToStringMantissaWithoutDecimalPoint.length);\n xFinal = x;\n }\n else {\n e = getMagnitude(x);\n var decimalPlaceOffset = e - p + 1;\n // n is the integer containing the required precision digits. To derive the formatted string,\n // we will adjust its decimal place in the logic below.\n var n = Math.round(adjustDecimalPlace(x, decimalPlaceOffset));\n // The rounding caused the change of magnitude, so we should increment `e` by 1.\n if (adjustDecimalPlace(n, p - 1) >= 10) {\n e = e + 1;\n // Divide n by 10 to swallow one precision.\n n = Math.floor(n / 10);\n }\n m = n.toString();\n // Equivalent of n * 10 ** (e - p + 1)\n xFinal = adjustDecimalPlace(n, p - 1 - e);\n }\n }\n var int;\n if (e >= p - 1) {\n m = m + repeat('0', e - p + 1);\n int = e + 1;\n }\n else if (e >= 0) {\n m = \"\".concat(m.slice(0, e + 1), \".\").concat(m.slice(e + 1));\n int = e + 1;\n }\n else {\n m = \"0.\".concat(repeat('0', -e - 1)).concat(m);\n int = 1;\n }\n if (m.indexOf('.') >= 0 && maxPrecision > minPrecision) {\n var cut = maxPrecision - minPrecision;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, -1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, -1);\n }\n }\n return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };\n // x / (10 ** magnitude), but try to preserve as much floating point precision as possible.\n function adjustDecimalPlace(x, magnitude) {\n return magnitude < 0 ? x * Math.pow(10, -magnitude) : x / Math.pow(10, magnitude);\n }\n}\n","import { repeat } from '../utils';\n/**\n * TODO: dedup with intl-pluralrules and support BigInt\n * https://tc39.es/ecma402/#sec-torawfixed\n * @param x a finite non-negative Number or BigInt\n * @param minFraction and integer between 0 and 20\n * @param maxFraction and integer between 0 and 20\n */\nexport function ToRawFixed(x, minFraction, maxFraction) {\n var f = maxFraction;\n var n = Math.round(x * Math.pow(10, f));\n var xFinal = n / Math.pow(10, f);\n // n is a positive integer, but it is possible to be greater than 1e21.\n // In such case we will go the slow path.\n // See also: https://tc39.es/ecma262/#sec-numeric-types-number-tostring\n var m;\n if (n < 1e21) {\n m = n.toString();\n }\n else {\n m = n.toString();\n var _a = m.split('e'), mantissa = _a[0], exponent = _a[1];\n m = mantissa.replace('.', '');\n m = m + repeat('0', Math.max(+exponent - m.length + 1, 0));\n }\n var int;\n if (f !== 0) {\n var k = m.length;\n if (k <= f) {\n var z = repeat('0', f + 1 - k);\n m = z + m;\n k = f + 1;\n }\n var a = m.slice(0, k - f);\n var b = m.slice(k - f);\n m = \"\".concat(a, \".\").concat(b);\n int = a.length;\n }\n else {\n int = m.length;\n }\n var cut = maxFraction - minFraction;\n while (cut > 0 && m[m.length - 1] === '0') {\n m = m.slice(0, -1);\n cut--;\n }\n if (m[m.length - 1] === '.') {\n m = m.slice(0, -1);\n }\n return { formattedString: m, roundedNumber: xFinal, integerDigitsCount: int };\n}\n","import { SameValue } from '../262';\nimport { ToRawPrecision } from './ToRawPrecision';\nimport { repeat } from '../utils';\nimport { ToRawFixed } from './ToRawFixed';\n/**\n * https://tc39.es/ecma402/#sec-formatnumberstring\n */\nexport function FormatNumericToString(intlObject, x) {\n var isNegative = x < 0 || SameValue(x, -0);\n if (isNegative) {\n x = -x;\n }\n var result;\n var rourndingType = intlObject.roundingType;\n switch (rourndingType) {\n case 'significantDigits':\n result = ToRawPrecision(x, intlObject.minimumSignificantDigits, intlObject.maximumSignificantDigits);\n break;\n case 'fractionDigits':\n result = ToRawFixed(x, intlObject.minimumFractionDigits, intlObject.maximumFractionDigits);\n break;\n default:\n result = ToRawPrecision(x, 1, 2);\n if (result.integerDigitsCount > 1) {\n result = ToRawFixed(x, 0, 0);\n }\n break;\n }\n x = result.roundedNumber;\n var string = result.formattedString;\n var int = result.integerDigitsCount;\n var minInteger = intlObject.minimumIntegerDigits;\n if (int < minInteger) {\n var forwardZeros = repeat('0', minInteger - int);\n string = forwardZeros + string;\n }\n if (isNegative) {\n x = -x;\n }\n return { roundedNumber: x, formattedString: string };\n}\n","import { getMagnitude } from '../utils';\nimport { ComputeExponentForMagnitude } from './ComputeExponentForMagnitude';\nimport { FormatNumericToString } from './FormatNumericToString';\n/**\n * The abstract operation ComputeExponent computes an exponent (power of ten) by which to scale x\n * according to the number formatting settings. It handles cases such as 999 rounding up to 1000,\n * requiring a different exponent.\n *\n * NOT IN SPEC: it returns [exponent, magnitude].\n */\nexport function ComputeExponent(numberFormat, x, _a) {\n var getInternalSlots = _a.getInternalSlots;\n if (x === 0) {\n return [0, 0];\n }\n if (x < 0) {\n x = -x;\n }\n var magnitude = getMagnitude(x);\n var exponent = ComputeExponentForMagnitude(numberFormat, magnitude, {\n getInternalSlots: getInternalSlots,\n });\n // Preserve more precision by doing multiplication when exponent is negative.\n x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);\n var formatNumberResult = FormatNumericToString(getInternalSlots(numberFormat), x);\n if (formatNumberResult.roundedNumber === 0) {\n return [exponent, magnitude];\n }\n var newMagnitude = getMagnitude(formatNumberResult.roundedNumber);\n if (newMagnitude === magnitude - exponent) {\n return [exponent, magnitude];\n }\n return [\n ComputeExponentForMagnitude(numberFormat, magnitude + 1, {\n getInternalSlots: getInternalSlots,\n }),\n magnitude + 1,\n ];\n}\n","import { HasOwnProperty } from '../262';\n/**\n * https://tc39.es/ecma402/#sec-currencydigits\n */\nexport function CurrencyDigits(c, _a) {\n var currencyDigitsData = _a.currencyDigitsData;\n return HasOwnProperty(currencyDigitsData, c)\n ? currencyDigitsData[c]\n : 2;\n}\n","/**\n * https://tc39.es/ecma402/#sec-formatapproximately\n */\nexport function FormatApproximately(numberFormat, result, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var symbols = internalSlots.dataLocaleData.numbers.symbols[internalSlots.numberingSystem];\n var approximatelySign = symbols.approximatelySign;\n result.push({ type: 'approximatelySign', value: approximatelySign });\n return result;\n}\n","// @generated from regex-gen.ts\nexport var S_UNICODE_REGEX = /[\\$\\+<->\\^`\\|~\\xA2-\\xA6\\xA8\\xA9\\xAC\\xAE-\\xB1\\xB4\\xB8\\xD7\\xF7\\u02C2-\\u02C5\\u02D2-\\u02DF\\u02E5-\\u02EB\\u02ED\\u02EF-\\u02FF\\u0375\\u0384\\u0385\\u03F6\\u0482\\u058D-\\u058F\\u0606-\\u0608\\u060B\\u060E\\u060F\\u06DE\\u06E9\\u06FD\\u06FE\\u07F6\\u07FE\\u07FF\\u09F2\\u09F3\\u09FA\\u09FB\\u0AF1\\u0B70\\u0BF3-\\u0BFA\\u0C7F\\u0D4F\\u0D79\\u0E3F\\u0F01-\\u0F03\\u0F13\\u0F15-\\u0F17\\u0F1A-\\u0F1F\\u0F34\\u0F36\\u0F38\\u0FBE-\\u0FC5\\u0FC7-\\u0FCC\\u0FCE\\u0FCF\\u0FD5-\\u0FD8\\u109E\\u109F\\u1390-\\u1399\\u166D\\u17DB\\u1940\\u19DE-\\u19FF\\u1B61-\\u1B6A\\u1B74-\\u1B7C\\u1FBD\\u1FBF-\\u1FC1\\u1FCD-\\u1FCF\\u1FDD-\\u1FDF\\u1FED-\\u1FEF\\u1FFD\\u1FFE\\u2044\\u2052\\u207A-\\u207C\\u208A-\\u208C\\u20A0-\\u20BF\\u2100\\u2101\\u2103-\\u2106\\u2108\\u2109\\u2114\\u2116-\\u2118\\u211E-\\u2123\\u2125\\u2127\\u2129\\u212E\\u213A\\u213B\\u2140-\\u2144\\u214A-\\u214D\\u214F\\u218A\\u218B\\u2190-\\u2307\\u230C-\\u2328\\u232B-\\u2426\\u2440-\\u244A\\u249C-\\u24E9\\u2500-\\u2767\\u2794-\\u27C4\\u27C7-\\u27E5\\u27F0-\\u2982\\u2999-\\u29D7\\u29DC-\\u29FB\\u29FE-\\u2B73\\u2B76-\\u2B95\\u2B97-\\u2BFF\\u2CE5-\\u2CEA\\u2E50\\u2E51\\u2E80-\\u2E99\\u2E9B-\\u2EF3\\u2F00-\\u2FD5\\u2FF0-\\u2FFB\\u3004\\u3012\\u3013\\u3020\\u3036\\u3037\\u303E\\u303F\\u309B\\u309C\\u3190\\u3191\\u3196-\\u319F\\u31C0-\\u31E3\\u3200-\\u321E\\u322A-\\u3247\\u3250\\u3260-\\u327F\\u328A-\\u32B0\\u32C0-\\u33FF\\u4DC0-\\u4DFF\\uA490-\\uA4C6\\uA700-\\uA716\\uA720\\uA721\\uA789\\uA78A\\uA828-\\uA82B\\uA836-\\uA839\\uAA77-\\uAA79\\uAB5B\\uAB6A\\uAB6B\\uFB29\\uFBB2-\\uFBC1\\uFDFC\\uFDFD\\uFE62\\uFE64-\\uFE66\\uFE69\\uFF04\\uFF0B\\uFF1C-\\uFF1E\\uFF3E\\uFF40\\uFF5C\\uFF5E\\uFFE0-\\uFFE6\\uFFE8-\\uFFEE\\uFFFC\\uFFFD]|\\uD800[\\uDD37-\\uDD3F\\uDD79-\\uDD89\\uDD8C-\\uDD8E\\uDD90-\\uDD9C\\uDDA0\\uDDD0-\\uDDFC]|\\uD802[\\uDC77\\uDC78\\uDEC8]|\\uD805\\uDF3F|\\uD807[\\uDFD5-\\uDFF1]|\\uD81A[\\uDF3C-\\uDF3F\\uDF45]|\\uD82F\\uDC9C|\\uD834[\\uDC00-\\uDCF5\\uDD00-\\uDD26\\uDD29-\\uDD64\\uDD6A-\\uDD6C\\uDD83\\uDD84\\uDD8C-\\uDDA9\\uDDAE-\\uDDE8\\uDE00-\\uDE41\\uDE45\\uDF00-\\uDF56]|\\uD835[\\uDEC1\\uDEDB\\uDEFB\\uDF15\\uDF35\\uDF4F\\uDF6F\\uDF89\\uDFA9\\uDFC3]|\\uD836[\\uDC00-\\uDDFF\\uDE37-\\uDE3A\\uDE6D-\\uDE74\\uDE76-\\uDE83\\uDE85\\uDE86]|\\uD838[\\uDD4F\\uDEFF]|\\uD83B[\\uDCAC\\uDCB0\\uDD2E\\uDEF0\\uDEF1]|\\uD83C[\\uDC00-\\uDC2B\\uDC30-\\uDC93\\uDCA0-\\uDCAE\\uDCB1-\\uDCBF\\uDCC1-\\uDCCF\\uDCD1-\\uDCF5\\uDD0D-\\uDDAD\\uDDE6-\\uDE02\\uDE10-\\uDE3B\\uDE40-\\uDE48\\uDE50\\uDE51\\uDE60-\\uDE65\\uDF00-\\uDFFF]|\\uD83D[\\uDC00-\\uDED7\\uDEE0-\\uDEEC\\uDEF0-\\uDEFC\\uDF00-\\uDF73\\uDF80-\\uDFD8\\uDFE0-\\uDFEB]|\\uD83E[\\uDC00-\\uDC0B\\uDC10-\\uDC47\\uDC50-\\uDC59\\uDC60-\\uDC87\\uDC90-\\uDCAD\\uDCB0\\uDCB1\\uDD00-\\uDD78\\uDD7A-\\uDDCB\\uDDCD-\\uDE53\\uDE60-\\uDE6D\\uDE70-\\uDE74\\uDE78-\\uDE7A\\uDE80-\\uDE86\\uDE90-\\uDEA8\\uDEB0-\\uDEB6\\uDEC0-\\uDEC2\\uDED0-\\uDED6\\uDF00-\\uDF92\\uDF94-\\uDFCA]/;\n","export var digitMapping = {\n \"adlm\": [\n \"𞥐\",\n \"𞥑\",\n \"𞥒\",\n \"𞥓\",\n \"𞥔\",\n \"𞥕\",\n \"𞥖\",\n \"𞥗\",\n \"𞥘\",\n \"𞥙\"\n ],\n \"ahom\": [\n \"𑜰\",\n \"𑜱\",\n \"𑜲\",\n \"𑜳\",\n \"𑜴\",\n \"𑜵\",\n \"𑜶\",\n \"𑜷\",\n \"𑜸\",\n \"𑜹\"\n ],\n \"arab\": [\n \"٠\",\n \"١\",\n \"٢\",\n \"٣\",\n \"٤\",\n \"٥\",\n \"٦\",\n \"٧\",\n \"٨\",\n \"٩\"\n ],\n \"arabext\": [\n \"۰\",\n \"۱\",\n \"۲\",\n \"۳\",\n \"۴\",\n \"۵\",\n \"۶\",\n \"۷\",\n \"۸\",\n \"۹\"\n ],\n \"bali\": [\n \"᭐\",\n \"᭑\",\n \"᭒\",\n \"᭓\",\n \"᭔\",\n \"᭕\",\n \"᭖\",\n \"᭗\",\n \"᭘\",\n \"᭙\"\n ],\n \"beng\": [\n \"০\",\n \"১\",\n \"২\",\n \"৩\",\n \"৪\",\n \"৫\",\n \"৬\",\n \"৭\",\n \"৮\",\n \"৯\"\n ],\n \"bhks\": [\n \"𑱐\",\n \"𑱑\",\n \"𑱒\",\n \"𑱓\",\n \"𑱔\",\n \"𑱕\",\n \"𑱖\",\n \"𑱗\",\n \"𑱘\",\n \"𑱙\"\n ],\n \"brah\": [\n \"𑁦\",\n \"𑁧\",\n \"𑁨\",\n \"𑁩\",\n \"𑁪\",\n \"𑁫\",\n \"𑁬\",\n \"𑁭\",\n \"𑁮\",\n \"𑁯\"\n ],\n \"cakm\": [\n \"𑄶\",\n \"𑄷\",\n \"𑄸\",\n \"𑄹\",\n \"𑄺\",\n \"𑄻\",\n \"𑄼\",\n \"𑄽\",\n \"𑄾\",\n \"𑄿\"\n ],\n \"cham\": [\n \"꩐\",\n \"꩑\",\n \"꩒\",\n \"꩓\",\n \"꩔\",\n \"꩕\",\n \"꩖\",\n \"꩗\",\n \"꩘\",\n \"꩙\"\n ],\n \"deva\": [\n \"०\",\n \"१\",\n \"२\",\n \"३\",\n \"४\",\n \"५\",\n \"६\",\n \"७\",\n \"८\",\n \"९\"\n ],\n \"diak\": [\n \"𑥐\",\n \"𑥑\",\n \"𑥒\",\n \"𑥓\",\n \"𑥔\",\n \"𑥕\",\n \"𑥖\",\n \"𑥗\",\n \"𑥘\",\n \"𑥙\"\n ],\n \"fullwide\": [\n \"0\",\n \"1\",\n \"2\",\n \"3\",\n \"4\",\n \"5\",\n \"6\",\n \"7\",\n \"8\",\n \"9\"\n ],\n \"gong\": [\n \"𑶠\",\n \"𑶡\",\n \"𑶢\",\n \"𑶣\",\n \"𑶤\",\n \"𑶥\",\n \"𑶦\",\n \"𑶧\",\n \"𑶨\",\n \"𑶩\"\n ],\n \"gonm\": [\n \"𑵐\",\n \"𑵑\",\n \"𑵒\",\n \"𑵓\",\n \"𑵔\",\n \"𑵕\",\n \"𑵖\",\n \"𑵗\",\n \"𑵘\",\n \"𑵙\"\n ],\n \"gujr\": [\n \"૦\",\n \"૧\",\n \"૨\",\n \"૩\",\n \"૪\",\n \"૫\",\n \"૬\",\n \"૭\",\n \"૮\",\n \"૯\"\n ],\n \"guru\": [\n \"੦\",\n \"੧\",\n \"੨\",\n \"੩\",\n \"੪\",\n \"੫\",\n \"੬\",\n \"੭\",\n \"੮\",\n \"੯\"\n ],\n \"hanidec\": [\n \"〇\",\n \"一\",\n \"二\",\n \"三\",\n \"四\",\n \"五\",\n \"六\",\n \"七\",\n \"八\",\n \"九\"\n ],\n \"hmng\": [\n \"𖭐\",\n \"𖭑\",\n \"𖭒\",\n \"𖭓\",\n \"𖭔\",\n \"𖭕\",\n \"𖭖\",\n \"𖭗\",\n \"𖭘\",\n \"𖭙\"\n ],\n \"hmnp\": [\n \"𞅀\",\n \"𞅁\",\n \"𞅂\",\n \"𞅃\",\n \"𞅄\",\n \"𞅅\",\n \"𞅆\",\n \"𞅇\",\n \"𞅈\",\n \"𞅉\"\n ],\n \"java\": [\n \"꧐\",\n \"꧑\",\n \"꧒\",\n \"꧓\",\n \"꧔\",\n \"꧕\",\n \"꧖\",\n \"꧗\",\n \"꧘\",\n \"꧙\"\n ],\n \"kali\": [\n \"꤀\",\n \"꤁\",\n \"꤂\",\n \"꤃\",\n \"꤄\",\n \"꤅\",\n \"꤆\",\n \"꤇\",\n \"꤈\",\n \"꤉\"\n ],\n \"khmr\": [\n \"០\",\n \"១\",\n \"២\",\n \"៣\",\n \"៤\",\n \"៥\",\n \"៦\",\n \"៧\",\n \"៨\",\n \"៩\"\n ],\n \"knda\": [\n \"೦\",\n \"೧\",\n \"೨\",\n \"೩\",\n \"೪\",\n \"೫\",\n \"೬\",\n \"೭\",\n \"೮\",\n \"೯\"\n ],\n \"lana\": [\n \"᪀\",\n \"᪁\",\n \"᪂\",\n \"᪃\",\n \"᪄\",\n \"᪅\",\n \"᪆\",\n \"᪇\",\n \"᪈\",\n \"᪉\"\n ],\n \"lanatham\": [\n \"᪐\",\n \"᪑\",\n \"᪒\",\n \"᪓\",\n \"᪔\",\n \"᪕\",\n \"᪖\",\n \"᪗\",\n \"᪘\",\n \"᪙\"\n ],\n \"laoo\": [\n \"໐\",\n \"໑\",\n \"໒\",\n \"໓\",\n \"໔\",\n \"໕\",\n \"໖\",\n \"໗\",\n \"໘\",\n \"໙\"\n ],\n \"lepc\": [\n \"᪐\",\n \"᪑\",\n \"᪒\",\n \"᪓\",\n \"᪔\",\n \"᪕\",\n \"᪖\",\n \"᪗\",\n \"᪘\",\n \"᪙\"\n ],\n \"limb\": [\n \"᥆\",\n \"᥇\",\n \"᥈\",\n \"᥉\",\n \"᥊\",\n \"᥋\",\n \"᥌\",\n \"᥍\",\n \"᥎\",\n \"᥏\"\n ],\n \"mathbold\": [\n \"𝟎\",\n \"𝟏\",\n \"𝟐\",\n \"𝟑\",\n \"𝟒\",\n \"𝟓\",\n \"𝟔\",\n \"𝟕\",\n \"𝟖\",\n \"𝟗\"\n ],\n \"mathdbl\": [\n \"𝟘\",\n \"𝟙\",\n \"𝟚\",\n \"𝟛\",\n \"𝟜\",\n \"𝟝\",\n \"𝟞\",\n \"𝟟\",\n \"𝟠\",\n \"𝟡\"\n ],\n \"mathmono\": [\n \"𝟶\",\n \"𝟷\",\n \"𝟸\",\n \"𝟹\",\n \"𝟺\",\n \"𝟻\",\n \"𝟼\",\n \"𝟽\",\n \"𝟾\",\n \"𝟿\"\n ],\n \"mathsanb\": [\n \"𝟬\",\n \"𝟭\",\n \"𝟮\",\n \"𝟯\",\n \"𝟰\",\n \"𝟱\",\n \"𝟲\",\n \"𝟳\",\n \"𝟴\",\n \"𝟵\"\n ],\n \"mathsans\": [\n \"𝟢\",\n \"𝟣\",\n \"𝟤\",\n \"𝟥\",\n \"𝟦\",\n \"𝟧\",\n \"𝟨\",\n \"𝟩\",\n \"𝟪\",\n \"𝟫\"\n ],\n \"mlym\": [\n \"൦\",\n \"൧\",\n \"൨\",\n \"൩\",\n \"൪\",\n \"൫\",\n \"൬\",\n \"൭\",\n \"൮\",\n \"൯\"\n ],\n \"modi\": [\n \"𑙐\",\n \"𑙑\",\n \"𑙒\",\n \"𑙓\",\n \"𑙔\",\n \"𑙕\",\n \"𑙖\",\n \"𑙗\",\n \"𑙘\",\n \"𑙙\"\n ],\n \"mong\": [\n \"᠐\",\n \"᠑\",\n \"᠒\",\n \"᠓\",\n \"᠔\",\n \"᠕\",\n \"᠖\",\n \"᠗\",\n \"᠘\",\n \"᠙\"\n ],\n \"mroo\": [\n \"𖩠\",\n \"𖩡\",\n \"𖩢\",\n \"𖩣\",\n \"𖩤\",\n \"𖩥\",\n \"𖩦\",\n \"𖩧\",\n \"𖩨\",\n \"𖩩\"\n ],\n \"mtei\": [\n \"꯰\",\n \"꯱\",\n \"꯲\",\n \"꯳\",\n \"꯴\",\n \"꯵\",\n \"꯶\",\n \"꯷\",\n \"꯸\",\n \"꯹\"\n ],\n \"mymr\": [\n \"၀\",\n \"၁\",\n \"၂\",\n \"၃\",\n \"၄\",\n \"၅\",\n \"၆\",\n \"၇\",\n \"၈\",\n \"၉\"\n ],\n \"mymrshan\": [\n \"႐\",\n \"႑\",\n \"႒\",\n \"႓\",\n \"႔\",\n \"႕\",\n \"႖\",\n \"႗\",\n \"႘\",\n \"႙\"\n ],\n \"mymrtlng\": [\n \"꧰\",\n \"꧱\",\n \"꧲\",\n \"꧳\",\n \"꧴\",\n \"꧵\",\n \"꧶\",\n \"꧷\",\n \"꧸\",\n \"꧹\"\n ],\n \"newa\": [\n \"𑑐\",\n \"𑑑\",\n \"𑑒\",\n \"𑑓\",\n \"𑑔\",\n \"𑑕\",\n \"𑑖\",\n \"𑑗\",\n \"𑑘\",\n \"𑑙\"\n ],\n \"nkoo\": [\n \"߀\",\n \"߁\",\n \"߂\",\n \"߃\",\n \"߄\",\n \"߅\",\n \"߆\",\n \"߇\",\n \"߈\",\n \"߉\"\n ],\n \"olck\": [\n \"᱐\",\n \"᱑\",\n \"᱒\",\n \"᱓\",\n \"᱔\",\n \"᱕\",\n \"᱖\",\n \"᱗\",\n \"᱘\",\n \"᱙\"\n ],\n \"orya\": [\n \"୦\",\n \"୧\",\n \"୨\",\n \"୩\",\n \"୪\",\n \"୫\",\n \"୬\",\n \"୭\",\n \"୮\",\n \"୯\"\n ],\n \"osma\": [\n \"𐒠\",\n \"𐒡\",\n \"𐒢\",\n \"𐒣\",\n \"𐒤\",\n \"𐒥\",\n \"𐒦\",\n \"𐒧\",\n \"𐒨\",\n \"𐒩\"\n ],\n \"rohg\": [\n \"𐴰\",\n \"𐴱\",\n \"𐴲\",\n \"𐴳\",\n \"𐴴\",\n \"𐴵\",\n \"𐴶\",\n \"𐴷\",\n \"𐴸\",\n \"𐴹\"\n ],\n \"saur\": [\n \"꣐\",\n \"꣑\",\n \"꣒\",\n \"꣓\",\n \"꣔\",\n \"꣕\",\n \"꣖\",\n \"꣗\",\n \"꣘\",\n \"꣙\"\n ],\n \"segment\": [\n \"🯰\",\n \"🯱\",\n \"🯲\",\n \"🯳\",\n \"🯴\",\n \"🯵\",\n \"🯶\",\n \"🯷\",\n \"🯸\",\n \"🯹\"\n ],\n \"shrd\": [\n \"𑇐\",\n \"𑇑\",\n \"𑇒\",\n \"𑇓\",\n \"𑇔\",\n \"𑇕\",\n \"𑇖\",\n \"𑇗\",\n \"𑇘\",\n \"𑇙\"\n ],\n \"sind\": [\n \"𑋰\",\n \"𑋱\",\n \"𑋲\",\n \"𑋳\",\n \"𑋴\",\n \"𑋵\",\n \"𑋶\",\n \"𑋷\",\n \"𑋸\",\n \"𑋹\"\n ],\n \"sinh\": [\n \"෦\",\n \"෧\",\n \"෨\",\n \"෩\",\n \"෪\",\n \"෫\",\n \"෬\",\n \"෭\",\n \"෮\",\n \"෯\"\n ],\n \"sora\": [\n \"𑃰\",\n \"𑃱\",\n \"𑃲\",\n \"𑃳\",\n \"𑃴\",\n \"𑃵\",\n \"𑃶\",\n \"𑃷\",\n \"𑃸\",\n \"𑃹\"\n ],\n \"sund\": [\n \"᮰\",\n \"᮱\",\n \"᮲\",\n \"᮳\",\n \"᮴\",\n \"᮵\",\n \"᮶\",\n \"᮷\",\n \"᮸\",\n \"᮹\"\n ],\n \"takr\": [\n \"𑛀\",\n \"𑛁\",\n \"𑛂\",\n \"𑛃\",\n \"𑛄\",\n \"𑛅\",\n \"𑛆\",\n \"𑛇\",\n \"𑛈\",\n \"𑛉\"\n ],\n \"talu\": [\n \"᧐\",\n \"᧑\",\n \"᧒\",\n \"᧓\",\n \"᧔\",\n \"᧕\",\n \"᧖\",\n \"᧗\",\n \"᧘\",\n \"᧙\"\n ],\n \"tamldec\": [\n \"௦\",\n \"௧\",\n \"௨\",\n \"௩\",\n \"௪\",\n \"௫\",\n \"௬\",\n \"௭\",\n \"௮\",\n \"௯\"\n ],\n \"telu\": [\n \"౦\",\n \"౧\",\n \"౨\",\n \"౩\",\n \"౪\",\n \"౫\",\n \"౬\",\n \"౭\",\n \"౮\",\n \"౯\"\n ],\n \"thai\": [\n \"๐\",\n \"๑\",\n \"๒\",\n \"๓\",\n \"๔\",\n \"๕\",\n \"๖\",\n \"๗\",\n \"๘\",\n \"๙\"\n ],\n \"tibt\": [\n \"༠\",\n \"༡\",\n \"༢\",\n \"༣\",\n \"༤\",\n \"༥\",\n \"༦\",\n \"༧\",\n \"༨\",\n \"༩\"\n ],\n \"tirh\": [\n \"𑓐\",\n \"𑓑\",\n \"𑓒\",\n \"𑓓\",\n \"𑓔\",\n \"𑓕\",\n \"𑓖\",\n \"𑓗\",\n \"𑓘\",\n \"𑓙\"\n ],\n \"vaii\": [\n \"ᘠ\",\n \"ᘡ\",\n \"ᘢ\",\n \"ᘣ\",\n \"ᘤ\",\n \"ᘥ\",\n \"ᘦ\",\n \"ᘧ\",\n \"ᘨ\",\n \"ᘩ\"\n ],\n \"wara\": [\n \"𑣠\",\n \"𑣡\",\n \"𑣢\",\n \"𑣣\",\n \"𑣤\",\n \"𑣥\",\n \"𑣦\",\n \"𑣧\",\n \"𑣨\",\n \"𑣩\"\n ],\n \"wcho\": [\n \"𞋰\",\n \"𞋱\",\n \"𞋲\",\n \"𞋳\",\n \"𞋴\",\n \"𞋵\",\n \"𞋶\",\n \"𞋷\",\n \"𞋸\",\n \"𞋹\"\n ]\n};\n","import { S_UNICODE_REGEX } from '../regex.generated';\nimport { ToRawFixed } from './ToRawFixed';\nimport { digitMapping } from './digit-mapping.generated';\n// This is from: unicode-12.1.0/General_Category/Symbol/regex.js\n// IE11 does not support unicode flag, otherwise this is just /\\p{S}/u.\n// /^\\p{S}/u\nvar CARET_S_UNICODE_REGEX = new RegExp(\"^\".concat(S_UNICODE_REGEX.source));\n// /\\p{S}$/u\nvar S_DOLLAR_UNICODE_REGEX = new RegExp(\"\".concat(S_UNICODE_REGEX.source, \"$\"));\nvar CLDR_NUMBER_PATTERN = /[#0](?:[\\.,][#0]+)*/g;\nexport default function formatToParts(numberResult, data, pl, options) {\n var sign = numberResult.sign, exponent = numberResult.exponent, magnitude = numberResult.magnitude;\n var notation = options.notation, style = options.style, numberingSystem = options.numberingSystem;\n var defaultNumberingSystem = data.numbers.nu[0];\n // #region Part 1: partition and interpolate the CLDR number pattern.\n // ----------------------------------------------------------\n var compactNumberPattern = null;\n if (notation === 'compact' && magnitude) {\n compactNumberPattern = getCompactDisplayPattern(numberResult, pl, data, style, options.compactDisplay, options.currencyDisplay, numberingSystem);\n }\n // This is used multiple times\n var nonNameCurrencyPart;\n if (style === 'currency' && options.currencyDisplay !== 'name') {\n var byCurrencyDisplay = data.currencies[options.currency];\n if (byCurrencyDisplay) {\n switch (options.currencyDisplay) {\n case 'code':\n nonNameCurrencyPart = options.currency;\n break;\n case 'symbol':\n nonNameCurrencyPart = byCurrencyDisplay.symbol;\n break;\n default:\n nonNameCurrencyPart = byCurrencyDisplay.narrow;\n break;\n }\n }\n else {\n // Fallback for unknown currency\n nonNameCurrencyPart = options.currency;\n }\n }\n var numberPattern;\n if (!compactNumberPattern) {\n // Note: if the style is unit, or is currency and the currency display is name,\n // its unit parts will be interpolated in part 2. So here we can fallback to decimal.\n if (style === 'decimal' ||\n style === 'unit' ||\n (style === 'currency' && options.currencyDisplay === 'name')) {\n // Shortcut for decimal\n var decimalData = data.numbers.decimal[numberingSystem] ||\n data.numbers.decimal[defaultNumberingSystem];\n numberPattern = getPatternForSign(decimalData.standard, sign);\n }\n else if (style === 'currency') {\n var currencyData = data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem];\n // We replace number pattern part with `0` for easier postprocessing.\n numberPattern = getPatternForSign(currencyData[options.currencySign], sign);\n }\n else {\n // percent\n var percentPattern = data.numbers.percent[numberingSystem] ||\n data.numbers.percent[defaultNumberingSystem];\n numberPattern = getPatternForSign(percentPattern, sign);\n }\n }\n else {\n numberPattern = compactNumberPattern;\n }\n // Extract the decimal number pattern string. It looks like \"#,##0,00\", which will later be\n // used to infer decimal group sizes.\n var decimalNumberPattern = CLDR_NUMBER_PATTERN.exec(numberPattern)[0];\n // Now we start to substitute patterns\n // 1. replace strings like `0` and `#,##0.00` with `{0}`\n // 2. unquote characters (invariant: the quoted characters does not contain the special tokens)\n numberPattern = numberPattern\n .replace(CLDR_NUMBER_PATTERN, '{0}')\n .replace(/'(.)'/g, '$1');\n // Handle currency spacing (both compact and non-compact).\n if (style === 'currency' && options.currencyDisplay !== 'name') {\n var currencyData = data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem];\n // See `currencySpacing` substitution rule in TR-35.\n // Here we always assume the currencyMatch is \"[:^S:]\" and surroundingMatch is \"[:digit:]\".\n //\n // Example 1: for pattern \"#,##0.00¤\" with symbol \"US$\", we replace \"¤\" with the symbol,\n // but insert an extra non-break space before the symbol, because \"[:^S:]\" matches \"U\" in\n // \"US$\" and \"[:digit:]\" matches the latn numbering system digits.\n //\n // Example 2: for pattern \"¤#,##0.00\" with symbol \"US$\", there is no spacing between symbol\n // and number, because `$` does not match \"[:^S:]\".\n //\n // Implementation note: here we do the best effort to infer the insertion.\n // We also assume that `beforeInsertBetween` and `afterInsertBetween` will never be `;`.\n var afterCurrency = currencyData.currencySpacing.afterInsertBetween;\n if (afterCurrency && !S_DOLLAR_UNICODE_REGEX.test(nonNameCurrencyPart)) {\n numberPattern = numberPattern.replace('¤{0}', \"\\u00A4\".concat(afterCurrency, \"{0}\"));\n }\n var beforeCurrency = currencyData.currencySpacing.beforeInsertBetween;\n if (beforeCurrency && !CARET_S_UNICODE_REGEX.test(nonNameCurrencyPart)) {\n numberPattern = numberPattern.replace('{0}¤', \"{0}\".concat(beforeCurrency, \"\\u00A4\"));\n }\n }\n // The following tokens are special: `{0}`, `¤`, `%`, `-`, `+`, `{c:...}.\n var numberPatternParts = numberPattern.split(/({c:[^}]+}|\\{0\\}|[¤%\\-\\+])/g);\n var numberParts = [];\n var symbols = data.numbers.symbols[numberingSystem] ||\n data.numbers.symbols[defaultNumberingSystem];\n for (var _i = 0, numberPatternParts_1 = numberPatternParts; _i < numberPatternParts_1.length; _i++) {\n var part = numberPatternParts_1[_i];\n if (!part) {\n continue;\n }\n switch (part) {\n case '{0}': {\n // We only need to handle scientific and engineering notation here.\n numberParts.push.apply(numberParts, paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, \n // If compact number pattern exists, do not insert group separators.\n !compactNumberPattern && Boolean(options.useGrouping), decimalNumberPattern, style));\n break;\n }\n case '-':\n numberParts.push({ type: 'minusSign', value: symbols.minusSign });\n break;\n case '+':\n numberParts.push({ type: 'plusSign', value: symbols.plusSign });\n break;\n case '%':\n numberParts.push({ type: 'percentSign', value: symbols.percentSign });\n break;\n case '¤':\n // Computed above when handling currency spacing.\n numberParts.push({ type: 'currency', value: nonNameCurrencyPart });\n break;\n default:\n if (/^\\{c:/.test(part)) {\n numberParts.push({\n type: 'compact',\n value: part.substring(3, part.length - 1),\n });\n }\n else {\n // literal\n numberParts.push({ type: 'literal', value: part });\n }\n break;\n }\n }\n // #endregion\n // #region Part 2: interpolate unit pattern if necessary.\n // ----------------------------------------------\n switch (style) {\n case 'currency': {\n // `currencyDisplay: 'name'` has similar pattern handling as units.\n if (options.currencyDisplay === 'name') {\n var unitPattern = (data.numbers.currency[numberingSystem] ||\n data.numbers.currency[defaultNumberingSystem]).unitPattern;\n // Select plural\n var unitName = void 0;\n var currencyNameData = data.currencies[options.currency];\n if (currencyNameData) {\n unitName = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), currencyNameData.displayName);\n }\n else {\n // Fallback for unknown currency\n unitName = options.currency;\n }\n // Do {0} and {1} substitution\n var unitPatternParts = unitPattern.split(/(\\{[01]\\})/g);\n var result = [];\n for (var _a = 0, unitPatternParts_1 = unitPatternParts; _a < unitPatternParts_1.length; _a++) {\n var part = unitPatternParts_1[_a];\n switch (part) {\n case '{0}':\n result.push.apply(result, numberParts);\n break;\n case '{1}':\n result.push({ type: 'currency', value: unitName });\n break;\n default:\n if (part) {\n result.push({ type: 'literal', value: part });\n }\n break;\n }\n }\n return result;\n }\n else {\n return numberParts;\n }\n }\n case 'unit': {\n var unit = options.unit, unitDisplay = options.unitDisplay;\n var unitData = data.units.simple[unit];\n var unitPattern = void 0;\n if (unitData) {\n // Simple unit pattern\n unitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[unit][unitDisplay]);\n }\n else {\n // See: http://unicode.org/reports/tr35/tr35-general.html#perUnitPatterns\n // If cannot find unit in the simple pattern, it must be \"per\" compound pattern.\n // Implementation note: we are not following TR-35 here because we need to format to parts!\n var _b = unit.split('-per-'), numeratorUnit = _b[0], denominatorUnit = _b[1];\n unitData = data.units.simple[numeratorUnit];\n var numeratorUnitPattern = selectPlural(pl, numberResult.roundedNumber * Math.pow(10, exponent), data.units.simple[numeratorUnit][unitDisplay]);\n var perUnitPattern = data.units.simple[denominatorUnit].perUnit[unitDisplay];\n if (perUnitPattern) {\n // perUnitPattern exists, combine it with numeratorUnitPattern\n unitPattern = perUnitPattern.replace('{0}', numeratorUnitPattern);\n }\n else {\n // get compoundUnit pattern (e.g. \"{0} per {1}\"), repalce {0} with numerator pattern and {1} with\n // the denominator pattern in singular form.\n var perPattern = data.units.compound.per[unitDisplay];\n var denominatorPattern = selectPlural(pl, 1, data.units.simple[denominatorUnit][unitDisplay]);\n unitPattern = unitPattern = perPattern\n .replace('{0}', numeratorUnitPattern)\n .replace('{1}', denominatorPattern.replace('{0}', ''));\n }\n }\n var result = [];\n // We need spacing around \"{0}\" because they are not treated as \"unit\" parts, but \"literal\".\n for (var _c = 0, _d = unitPattern.split(/(\\s*\\{0\\}\\s*)/); _c < _d.length; _c++) {\n var part = _d[_c];\n var interpolateMatch = /^(\\s*)\\{0\\}(\\s*)$/.exec(part);\n if (interpolateMatch) {\n // Space before \"{0}\"\n if (interpolateMatch[1]) {\n result.push({ type: 'literal', value: interpolateMatch[1] });\n }\n // \"{0}\" itself\n result.push.apply(result, numberParts);\n // Space after \"{0}\"\n if (interpolateMatch[2]) {\n result.push({ type: 'literal', value: interpolateMatch[2] });\n }\n }\n else if (part) {\n result.push({ type: 'unit', value: part });\n }\n }\n return result;\n }\n default:\n return numberParts;\n }\n // #endregion\n}\n// A subset of https://tc39.es/ecma402/#sec-partitionnotationsubpattern\n// Plus the exponent parts handling.\nfunction paritionNumberIntoParts(symbols, numberResult, notation, exponent, numberingSystem, useGrouping, \n/**\n * This is the decimal number pattern without signs or symbols.\n * It is used to infer the group size when `useGrouping` is true.\n *\n * A typical value looks like \"#,##0.00\" (primary group size is 3).\n * Some locales like Hindi has secondary group size of 2 (e.g. \"#,##,##0.00\").\n */\ndecimalNumberPattern, style) {\n var result = [];\n // eslint-disable-next-line prefer-const\n var n = numberResult.formattedString, x = numberResult.roundedNumber;\n if (isNaN(x)) {\n return [{ type: 'nan', value: n }];\n }\n else if (!isFinite(x)) {\n return [{ type: 'infinity', value: n }];\n }\n var digitReplacementTable = digitMapping[numberingSystem];\n if (digitReplacementTable) {\n n = n.replace(/\\d/g, function (digit) { return digitReplacementTable[+digit] || digit; });\n }\n // TODO: Else use an implementation dependent algorithm to map n to the appropriate\n // representation of n in the given numbering system.\n var decimalSepIndex = n.indexOf('.');\n var integer;\n var fraction;\n if (decimalSepIndex > 0) {\n integer = n.slice(0, decimalSepIndex);\n fraction = n.slice(decimalSepIndex + 1);\n }\n else {\n integer = n;\n }\n // #region Grouping integer digits\n // The weird compact and x >= 10000 check is to ensure consistency with Node.js and Chrome.\n // Note that `de` does not have compact form for thousands, but Node.js does not insert grouping separator\n // unless the rounded number is greater than 10000:\n // NumberFormat('de', {notation: 'compact', compactDisplay: 'short'}).format(1234) //=> \"1234\"\n // NumberFormat('de').format(1234) //=> \"1.234\"\n if (useGrouping && (notation !== 'compact' || x >= 10000)) {\n // a. Let groupSepSymbol be the implementation-, locale-, and numbering system-dependent (ILND) String representing the grouping separator.\n // For currency we should use `currencyGroup` instead of generic `group`\n var groupSepSymbol = style === 'currency' && symbols.currencyGroup != null\n ? symbols.currencyGroup\n : symbols.group;\n var groups = [];\n // > There may be two different grouping sizes: The primary grouping size used for the least\n // > significant integer group, and the secondary grouping size used for more significant groups.\n // > If a pattern contains multiple grouping separators, the interval between the last one and the\n // > end of the integer defines the primary grouping size, and the interval between the last two\n // > defines the secondary grouping size. All others are ignored.\n var integerNumberPattern = decimalNumberPattern.split('.')[0];\n var patternGroups = integerNumberPattern.split(',');\n var primaryGroupingSize = 3;\n var secondaryGroupingSize = 3;\n if (patternGroups.length > 1) {\n primaryGroupingSize = patternGroups[patternGroups.length - 1].length;\n }\n if (patternGroups.length > 2) {\n secondaryGroupingSize = patternGroups[patternGroups.length - 2].length;\n }\n var i = integer.length - primaryGroupingSize;\n if (i > 0) {\n // Slice the least significant integer group\n groups.push(integer.slice(i, i + primaryGroupingSize));\n // Then iteratively push the more signicant groups\n // TODO: handle surrogate pairs in some numbering system digits\n for (i -= secondaryGroupingSize; i > 0; i -= secondaryGroupingSize) {\n groups.push(integer.slice(i, i + secondaryGroupingSize));\n }\n groups.push(integer.slice(0, i + secondaryGroupingSize));\n }\n else {\n groups.push(integer);\n }\n while (groups.length > 0) {\n var integerGroup = groups.pop();\n result.push({ type: 'integer', value: integerGroup });\n if (groups.length > 0) {\n result.push({ type: 'group', value: groupSepSymbol });\n }\n }\n }\n else {\n result.push({ type: 'integer', value: integer });\n }\n // #endregion\n if (fraction !== undefined) {\n var decimalSepSymbol = style === 'currency' && symbols.currencyDecimal != null\n ? symbols.currencyDecimal\n : symbols.decimal;\n result.push({ type: 'decimal', value: decimalSepSymbol }, { type: 'fraction', value: fraction });\n }\n if ((notation === 'scientific' || notation === 'engineering') &&\n isFinite(x)) {\n result.push({ type: 'exponentSeparator', value: symbols.exponential });\n if (exponent < 0) {\n result.push({ type: 'exponentMinusSign', value: symbols.minusSign });\n exponent = -exponent;\n }\n var exponentResult = ToRawFixed(exponent, 0, 0);\n result.push({\n type: 'exponentInteger',\n value: exponentResult.formattedString,\n });\n }\n return result;\n}\nfunction getPatternForSign(pattern, sign) {\n if (pattern.indexOf(';') < 0) {\n pattern = \"\".concat(pattern, \";-\").concat(pattern);\n }\n var _a = pattern.split(';'), zeroPattern = _a[0], negativePattern = _a[1];\n switch (sign) {\n case 0:\n return zeroPattern;\n case -1:\n return negativePattern;\n default:\n return negativePattern.indexOf('-') >= 0\n ? negativePattern.replace(/-/g, '+')\n : \"+\".concat(zeroPattern);\n }\n}\n// Find the CLDR pattern for compact notation based on the magnitude of data and style.\n//\n// Example return value: \"¤ {c:laki}000;¤{c:laki} -0\" (`sw` locale):\n// - Notice the `{c:...}` token that wraps the compact literal.\n// - The consecutive zeros are normalized to single zero to match CLDR_NUMBER_PATTERN.\n//\n// Returning null means the compact display pattern cannot be found.\nfunction getCompactDisplayPattern(numberResult, pl, data, style, compactDisplay, currencyDisplay, numberingSystem) {\n var _a;\n var roundedNumber = numberResult.roundedNumber, sign = numberResult.sign, magnitude = numberResult.magnitude;\n var magnitudeKey = String(Math.pow(10, magnitude));\n var defaultNumberingSystem = data.numbers.nu[0];\n var pattern;\n if (style === 'currency' && currencyDisplay !== 'name') {\n var byNumberingSystem = data.numbers.currency;\n var currencyData = byNumberingSystem[numberingSystem] ||\n byNumberingSystem[defaultNumberingSystem];\n // NOTE: compact notation ignores currencySign!\n var compactPluralRules = (_a = currencyData.short) === null || _a === void 0 ? void 0 : _a[magnitudeKey];\n if (!compactPluralRules) {\n return null;\n }\n pattern = selectPlural(pl, roundedNumber, compactPluralRules);\n }\n else {\n var byNumberingSystem = data.numbers.decimal;\n var byCompactDisplay = byNumberingSystem[numberingSystem] ||\n byNumberingSystem[defaultNumberingSystem];\n var compactPlaralRule = byCompactDisplay[compactDisplay][magnitudeKey];\n if (!compactPlaralRule) {\n return null;\n }\n pattern = selectPlural(pl, roundedNumber, compactPlaralRule);\n }\n // See https://unicode.org/reports/tr35/tr35-numbers.html#Compact_Number_Formats\n // > If the value is precisely “0”, either explicit or defaulted, then the normal number format\n // > pattern for that sort of object is supplied.\n if (pattern === '0') {\n return null;\n }\n pattern = getPatternForSign(pattern, sign)\n // Extract compact literal from the pattern\n .replace(/([^\\s;\\-\\+\\d¤]+)/g, '{c:$1}')\n // We replace one or more zeros with a single zero so it matches `CLDR_NUMBER_PATTERN`.\n .replace(/0+/, '0');\n return pattern;\n}\nfunction selectPlural(pl, x, rules) {\n return rules[pl.select(x)] || rules.other;\n}\n","import { FormatNumericToString } from './FormatNumericToString';\nimport { SameValue } from '../262';\nimport { ComputeExponent } from './ComputeExponent';\nimport formatToParts from './format_to_parts';\n/**\n * https://tc39.es/ecma402/#sec-formatnumberstring\n */\nexport function PartitionNumberPattern(numberFormat, x, _a) {\n var _b;\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(numberFormat);\n var pl = internalSlots.pl, dataLocaleData = internalSlots.dataLocaleData, numberingSystem = internalSlots.numberingSystem;\n var symbols = dataLocaleData.numbers.symbols[numberingSystem] ||\n dataLocaleData.numbers.symbols[dataLocaleData.numbers.nu[0]];\n var magnitude = 0;\n var exponent = 0;\n var n;\n if (isNaN(x)) {\n n = symbols.nan;\n }\n else if (x == Number.POSITIVE_INFINITY || x == Number.NEGATIVE_INFINITY) {\n n = symbols.infinity;\n }\n else {\n if (!SameValue(x, -0)) {\n if (!isFinite(x)) {\n throw new Error('Input must be a mathematical value');\n }\n if (internalSlots.style == 'percent') {\n x *= 100;\n }\n ;\n _b = ComputeExponent(numberFormat, x, {\n getInternalSlots: getInternalSlots,\n }), exponent = _b[0], magnitude = _b[1];\n // Preserve more precision by doing multiplication when exponent is negative.\n x = exponent < 0 ? x * Math.pow(10, -exponent) : x / Math.pow(10, exponent);\n }\n var formatNumberResult = FormatNumericToString(internalSlots, x);\n n = formatNumberResult.formattedString;\n x = formatNumberResult.roundedNumber;\n }\n // Based on https://tc39.es/ecma402/#sec-getnumberformatpattern\n // We need to do this before `x` is rounded.\n var sign;\n var signDisplay = internalSlots.signDisplay;\n switch (signDisplay) {\n case 'never':\n sign = 0;\n break;\n case 'auto':\n if (SameValue(x, 0) || x > 0 || isNaN(x)) {\n sign = 0;\n }\n else {\n sign = -1;\n }\n break;\n case 'always':\n if (SameValue(x, 0) || x > 0 || isNaN(x)) {\n sign = 1;\n }\n else {\n sign = -1;\n }\n break;\n default:\n // x === 0 -> x is 0 or x is -0\n if (x === 0 || isNaN(x)) {\n sign = 0;\n }\n else if (x > 0) {\n sign = 1;\n }\n else {\n sign = -1;\n }\n }\n return formatToParts({ roundedNumber: x, formattedString: n, exponent: exponent, magnitude: magnitude, sign: sign }, internalSlots.dataLocaleData, pl, internalSlots);\n}\n","import { PartitionNumberPattern } from './PartitionNumberPattern';\nimport { CollapseNumberRange } from './CollapseNumberRange';\nimport { FormatApproximately } from './FormatApproximately';\n/**\n * https://tc39.es/ecma402/#sec-partitionnumberrangepattern\n */\nexport function PartitionNumberRangePattern(numberFormat, x, y, _a) {\n var getInternalSlots = _a.getInternalSlots;\n if (isNaN(x) || isNaN(y)) {\n throw new RangeError('Input must be a number');\n }\n var result = [];\n var xResult = PartitionNumberPattern(numberFormat, x, { getInternalSlots: getInternalSlots });\n var yResult = PartitionNumberPattern(numberFormat, y, { getInternalSlots: getInternalSlots });\n if (xResult === yResult) {\n return FormatApproximately(numberFormat, xResult, { getInternalSlots: getInternalSlots });\n }\n for (var _i = 0, xResult_1 = xResult; _i < xResult_1.length; _i++) {\n var r = xResult_1[_i];\n r.source = 'startRange';\n }\n result = result.concat(xResult);\n var internalSlots = getInternalSlots(numberFormat);\n var symbols = internalSlots.dataLocaleData.numbers.symbols[internalSlots.numberingSystem];\n result.push({ type: 'literal', value: symbols.rangeSign, source: 'shared' });\n for (var _b = 0, yResult_1 = yResult; _b < yResult_1.length; _b++) {\n var r = yResult_1[_b];\n r.source = 'endRange';\n }\n result = result.concat(yResult);\n return CollapseNumberRange(result);\n}\n","import { PartitionNumberRangePattern } from './PartitionNumberRangePattern';\n/**\n * https://tc39.es/ecma402/#sec-formatnumericrange\n */\nexport function FormatNumericRange(numberFormat, x, y, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var parts = PartitionNumberRangePattern(numberFormat, x, y, {\n getInternalSlots: getInternalSlots,\n });\n return parts.map(function (part) { return part.value; }).join('');\n}\n","import { PartitionNumberRangePattern } from './PartitionNumberRangePattern';\n/**\n * https://tc39.es/ecma402/#sec-formatnumericrangetoparts\n */\nexport function FormatNumericRangeToParts(numberFormat, x, y, _a) {\n var getInternalSlots = _a.getInternalSlots;\n var parts = PartitionNumberRangePattern(numberFormat, x, y, {\n getInternalSlots: getInternalSlots,\n });\n return parts.map(function (part, index) { return ({\n type: part.type,\n value: part.value,\n source: part.source,\n result: index.toString(),\n }); });\n}\n","import { PartitionNumberPattern } from './PartitionNumberPattern';\nimport { ArrayCreate } from '../262';\nexport function FormatNumericToParts(nf, x, implDetails) {\n var parts = PartitionNumberPattern(nf, x, implDetails);\n var result = ArrayCreate(0);\n for (var _i = 0, parts_1 = parts; _i < parts_1.length; _i++) {\n var part = parts_1[_i];\n result.push({\n type: part.type,\n value: part.value,\n });\n }\n return result;\n}\n","var negativeMapping = {\n ceil: 'zero',\n floor: 'infinity',\n expand: 'infinity',\n trunc: 'zero',\n halfCeil: 'half-zero',\n halfFloor: 'half-infinity',\n halfExpand: 'half-infinity',\n halfTrunc: 'half-zero',\n halfEven: 'half-even',\n};\nvar positiveMapping = {\n ceil: 'infinity',\n floor: 'zero',\n expand: 'infinity',\n trunc: 'zero',\n halfCeil: 'half-infinity',\n halfFloor: 'half-zero',\n halfExpand: 'half-infinity',\n halfTrunc: 'half-zero',\n halfEven: 'half-even',\n};\nexport function GetUnsignedRoundingMode(roundingMode, isNegative) {\n if (isNegative) {\n return negativeMapping[roundingMode];\n }\n return positiveMapping[roundingMode];\n}\n","import { DefaultNumberOption } from '../DefaultNumberOption';\nimport { GetNumberOption } from '../GetNumberOption';\nimport { GetOption } from '../GetOption';\n/**\n * https://tc39.es/ecma402/#sec-setnfdigitoptions\n */\nexport function SetNumberFormatDigitOptions(internalSlots, opts, mnfdDefault, mxfdDefault, notation) {\n var mnid = GetNumberOption(opts, 'minimumIntegerDigits', 1, 21, 1);\n var mnfd = opts.minimumFractionDigits;\n var mxfd = opts.maximumFractionDigits;\n var mnsd = opts.minimumSignificantDigits;\n var mxsd = opts.maximumSignificantDigits;\n internalSlots.minimumIntegerDigits = mnid;\n var roundingPriority = GetOption(opts, 'roundingPriority', 'string', ['auto', 'morePrecision', 'lessPrecision'], 'auto');\n var hasSd = mnsd !== undefined || mxsd !== undefined;\n var hasFd = mnfd !== undefined || mxfd !== undefined;\n var needSd = true;\n var needFd = true;\n if (roundingPriority === 'auto') {\n needSd = hasSd;\n if (hasSd || (!hasFd && notation === 'compact')) {\n needFd = false;\n }\n }\n if (needSd) {\n if (hasSd) {\n mnsd = DefaultNumberOption(mnsd, 1, 21, 1);\n mxsd = DefaultNumberOption(mxsd, mnsd, 21, 21);\n internalSlots.minimumSignificantDigits = mnsd;\n internalSlots.maximumSignificantDigits = mxsd;\n }\n else {\n internalSlots.minimumSignificantDigits = 1;\n internalSlots.maximumSignificantDigits = 21;\n }\n }\n if (needFd) {\n if (hasFd) {\n mnfd = DefaultNumberOption(mnfd, 0, 20, undefined);\n mxfd = DefaultNumberOption(mxfd, 0, 20, undefined);\n if (mnfd === undefined) {\n // @ts-expect-error\n mnfd = Math.min(mnfdDefault, mxfd);\n }\n else if (mxfd === undefined) {\n mxfd = Math.max(mxfdDefault, mnfd);\n }\n else if (mnfd > mxfd) {\n throw new RangeError(\"Invalid range, \".concat(mnfd, \" > \").concat(mxfd));\n }\n internalSlots.minimumFractionDigits = mnfd;\n internalSlots.maximumFractionDigits = mxfd;\n }\n else {\n internalSlots.minimumFractionDigits = mnfdDefault;\n internalSlots.maximumFractionDigits = mxfdDefault;\n }\n }\n if (needSd || needFd) {\n if (roundingPriority === 'morePrecision') {\n internalSlots.roundingType = 'morePrecision';\n }\n else if (roundingPriority === 'lessPrecision') {\n internalSlots.roundingType = 'lessPrecision';\n }\n else if (hasSd) {\n internalSlots.roundingType = 'significantDigits';\n }\n else {\n internalSlots.roundingType = 'fractionDigits';\n }\n }\n else {\n internalSlots.roundingType = 'morePrecision';\n internalSlots.minimumFractionDigits = 0;\n internalSlots.maximumFractionDigits = 0;\n internalSlots.minimumSignificantDigits = 1;\n internalSlots.maximumSignificantDigits = 2;\n }\n}\n","import { GetOption } from '../GetOption';\nimport { IsWellFormedCurrencyCode } from '../IsWellFormedCurrencyCode';\nimport { IsWellFormedUnitIdentifier } from '../IsWellFormedUnitIdentifier';\n/**\n * https://tc39.es/ecma402/#sec-setnumberformatunitoptions\n */\nexport function SetNumberFormatUnitOptions(nf, options, _a) {\n if (options === void 0) { options = Object.create(null); }\n var getInternalSlots = _a.getInternalSlots;\n var internalSlots = getInternalSlots(nf);\n var style = GetOption(options, 'style', 'string', ['decimal', 'percent', 'currency', 'unit'], 'decimal');\n internalSlots.style = style;\n var currency = GetOption(options, 'currency', 'string', undefined, undefined);\n if (currency !== undefined && !IsWellFormedCurrencyCode(currency)) {\n throw RangeError('Malformed currency code');\n }\n if (style === 'currency' && currency === undefined) {\n throw TypeError('currency cannot be undefined');\n }\n var currencyDisplay = GetOption(options, 'currencyDisplay', 'string', ['code', 'symbol', 'narrowSymbol', 'name'], 'symbol');\n var currencySign = GetOption(options, 'currencySign', 'string', ['standard', 'accounting'], 'standard');\n var unit = GetOption(options, 'unit', 'string', undefined, undefined);\n if (unit !== undefined && !IsWellFormedUnitIdentifier(unit)) {\n throw RangeError('Invalid unit argument for Intl.NumberFormat()');\n }\n if (style === 'unit' && unit === undefined) {\n throw TypeError('unit cannot be undefined');\n }\n var unitDisplay = GetOption(options, 'unitDisplay', 'string', ['short', 'narrow', 'long'], 'short');\n if (style === 'currency') {\n internalSlots.currency = currency.toUpperCase();\n internalSlots.currencyDisplay = currencyDisplay;\n internalSlots.currencySign = currencySign;\n }\n if (style === 'unit') {\n internalSlots.unit = unit;\n internalSlots.unitDisplay = unitDisplay;\n }\n}\n","import { ResolveLocale } from '@formatjs/intl-localematcher';\nimport { CanonicalizeLocaleList } from '../CanonicalizeLocaleList';\nimport { CoerceOptionsToObject } from '../CoerceOptionsToObject';\nimport { GetNumberOption } from '../GetNumberOption';\nimport { GetOption } from '../GetOption';\nimport { GetStringOrBooleanOption } from '../GetStringOrBooleanOption';\nimport { invariant } from '../utils';\nimport { CurrencyDigits } from './CurrencyDigits';\nimport { SetNumberFormatDigitOptions } from './SetNumberFormatDigitOptions';\nimport { SetNumberFormatUnitOptions } from './SetNumberFormatUnitOptions';\nvar VALID_ROUND_INCREMENT_VALUES = [\n 1, 2, 5, 10, 20, 25, 50, 100, 200, 250, 500, 1000, 2000,\n];\n/**\n * https://tc39.es/ecma402/#sec-initializenumberformat\n */\nexport function InitializeNumberFormat(nf, locales, opts, _a) {\n var getInternalSlots = _a.getInternalSlots, localeData = _a.localeData, availableLocales = _a.availableLocales, numberingSystemNames = _a.numberingSystemNames, getDefaultLocale = _a.getDefaultLocale, currencyDigitsData = _a.currencyDigitsData;\n // @ts-ignore\n var requestedLocales = CanonicalizeLocaleList(locales);\n var options = CoerceOptionsToObject(opts);\n var opt = Object.create(null);\n var matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n opt.localeMatcher = matcher;\n var numberingSystem = GetOption(options, 'numberingSystem', 'string', undefined, undefined);\n if (numberingSystem !== undefined &&\n numberingSystemNames.indexOf(numberingSystem) < 0) {\n // 8.a. If numberingSystem does not match the Unicode Locale Identifier type nonterminal,\n // throw a RangeError exception.\n throw RangeError(\"Invalid numberingSystems: \".concat(numberingSystem));\n }\n opt.nu = numberingSystem;\n var r = ResolveLocale(Array.from(availableLocales), requestedLocales, opt, \n // [[RelevantExtensionKeys]] slot, which is a constant\n ['nu'], localeData, getDefaultLocale);\n var dataLocaleData = localeData[r.dataLocale];\n invariant(!!dataLocaleData, \"Missing locale data for \".concat(r.dataLocale));\n var internalSlots = getInternalSlots(nf);\n internalSlots.locale = r.locale;\n internalSlots.dataLocale = r.dataLocale;\n internalSlots.numberingSystem = r.nu;\n internalSlots.dataLocaleData = dataLocaleData;\n SetNumberFormatUnitOptions(nf, options, { getInternalSlots: getInternalSlots });\n var style = internalSlots.style;\n var mnfdDefault;\n var mxfdDefault;\n if (style === 'currency') {\n var currency = internalSlots.currency;\n var cDigits = CurrencyDigits(currency, { currencyDigitsData: currencyDigitsData });\n mnfdDefault = cDigits;\n mxfdDefault = cDigits;\n }\n else {\n mnfdDefault = 0;\n mxfdDefault = style === 'percent' ? 0 : 3;\n }\n var notation = GetOption(options, 'notation', 'string', ['standard', 'scientific', 'engineering', 'compact'], 'standard');\n internalSlots.notation = notation;\n SetNumberFormatDigitOptions(internalSlots, options, mnfdDefault, mxfdDefault, notation);\n var roundingIncrement = GetNumberOption(options, 'roundingIncrement', 1, 5000, 1);\n if (VALID_ROUND_INCREMENT_VALUES.indexOf(roundingIncrement) === -1) {\n throw new RangeError(\"Invalid rounding increment value: \".concat(roundingIncrement, \".\\nValid values are \").concat(VALID_ROUND_INCREMENT_VALUES, \".\"));\n }\n if (roundingIncrement !== 1 &&\n internalSlots.roundingType !== 'fractionDigits') {\n throw new TypeError(\"For roundingIncrement > 1 only fractionDigits is a valid roundingType\");\n }\n if (roundingIncrement !== 1 &&\n internalSlots.maximumFractionDigits !== internalSlots.minimumFractionDigits) {\n throw new RangeError('With roundingIncrement > 1, maximumFractionDigits and minimumFractionDigits must be equal.');\n }\n internalSlots.roundingIncrement = roundingIncrement;\n var trailingZeroDisplay = GetOption(options, 'trailingZeroDisplay', 'string', ['auto', 'stripIfInteger'], 'auto');\n internalSlots.trailingZeroDisplay = trailingZeroDisplay;\n var compactDisplay = GetOption(options, 'compactDisplay', 'string', ['short', 'long'], 'short');\n var defaultUseGrouping = 'auto';\n if (notation === 'compact') {\n internalSlots.compactDisplay = compactDisplay;\n defaultUseGrouping = 'min2';\n }\n internalSlots.useGrouping = GetStringOrBooleanOption(options, 'useGrouping', ['min2', 'auto', 'always'], 'always', false, defaultUseGrouping);\n internalSlots.signDisplay = GetOption(options, 'signDisplay', 'string', ['auto', 'never', 'always', 'exceptZero', 'negative'], 'auto');\n internalSlots.roundingMode = GetOption(options, 'roundingMode', 'string', [\n 'ceil',\n 'floor',\n 'expand',\n 'trunc',\n 'halfCeil',\n 'halfFloor',\n 'halfExpand',\n 'halfTrunc',\n 'halfEven',\n ], 'halfExpand');\n return nf;\n}\n","import { invariant } from './utils';\n/**\n * https://tc39.es/ecma402/#sec-partitionpattern\n * @param pattern\n */\nexport function PartitionPattern(pattern) {\n var result = [];\n var beginIndex = pattern.indexOf('{');\n var endIndex = 0;\n var nextIndex = 0;\n var length = pattern.length;\n while (beginIndex < pattern.length && beginIndex > -1) {\n endIndex = pattern.indexOf('}', beginIndex);\n invariant(endIndex > beginIndex, \"Invalid pattern \".concat(pattern));\n if (beginIndex > nextIndex) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, beginIndex),\n });\n }\n result.push({\n type: pattern.substring(beginIndex + 1, endIndex),\n value: undefined,\n });\n nextIndex = endIndex + 1;\n beginIndex = pattern.indexOf('{', nextIndex);\n }\n if (nextIndex < length) {\n result.push({\n type: 'literal',\n value: pattern.substring(nextIndex, length),\n });\n }\n return result;\n}\n","import { LookupSupportedLocales } from '@formatjs/intl-localematcher';\nimport { ToObject } from './262';\nimport { GetOption } from './GetOption';\n/**\n * https://tc39.es/ecma402/#sec-supportedlocales\n * @param availableLocales\n * @param requestedLocales\n * @param options\n */\nexport function SupportedLocales(availableLocales, requestedLocales, options) {\n var matcher = 'best fit';\n if (options !== undefined) {\n options = ToObject(options);\n matcher = GetOption(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n }\n if (matcher === 'best fit') {\n return LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n }\n return LookupSupportedLocales(Array.from(availableLocales), requestedLocales);\n}\n","import { __extends } from \"tslib\";\nvar MissingLocaleDataError = /** @class */ (function (_super) {\n __extends(MissingLocaleDataError, _super);\n function MissingLocaleDataError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'MISSING_LOCALE_DATA';\n return _this;\n }\n return MissingLocaleDataError;\n}(Error));\nexport function isMissingLocaleDataError(e) {\n return e.type === 'MISSING_LOCALE_DATA';\n}\n","export var RangePatternType;\n(function (RangePatternType) {\n RangePatternType[\"startRange\"] = \"startRange\";\n RangePatternType[\"shared\"] = \"shared\";\n RangePatternType[\"endRange\"] = \"endRange\";\n})(RangePatternType || (RangePatternType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Segmenter = void 0;\nvar tslib_1 = require(\"tslib\");\nvar cldr_segmentation_rules_generated_1 = require(\"./cldr-segmentation-rules.generated\");\nvar segmentation_utils_1 = require(\"./segmentation-utils\");\nvar ecma402_abstract_1 = require(\"@formatjs/ecma402-abstract\");\nvar intl_localematcher_1 = require(\"@formatjs/intl-localematcher\");\n/**\n * Adds $ to before rules and ^ to after rules for strickness\n * Replaces variables\n * Initializes the RegExp\n *\n * @param rule raw rule string from cldr-segmentation-rules.generated\n * @param variables\n * @param after appends ^ if true and $ if false\n * @returns\n */\nvar generateRuleRegex = function (rule, variables, after) {\n return new RegExp(\"\".concat(after ? '^' : '').concat((0, segmentation_utils_1.replaceVariables)(variables, rule)).concat(after ? '' : '$'));\n};\nvar prepareLocaleSegmentationRules = function (segmentationTypeValue) {\n var preparedRules = {};\n for (var _i = 0, _a = Object.keys(segmentationTypeValue.segmentRules); _i < _a.length; _i++) {\n var ruleNr = _a[_i];\n var ruleValue = segmentationTypeValue.segmentRules[ruleNr];\n var preparedRule = {\n breaks: ruleValue.breaks,\n };\n if ('before' in ruleValue && ruleValue.before) {\n preparedRule.before = generateRuleRegex(ruleValue.before, segmentationTypeValue.variables, false);\n }\n if ('after' in ruleValue && ruleValue.after) {\n preparedRule.after = generateRuleRegex(ruleValue.after, segmentationTypeValue.variables, true);\n }\n preparedRules[ruleNr] = preparedRule;\n }\n return preparedRules;\n};\nvar breaksAtResult = function (breaks, matchingRule) { return ({\n breaks: breaks,\n matchingRule: matchingRule,\n}); };\nvar Segmenter = /** @class */ (function () {\n function Segmenter(locales, options) {\n var _newTarget = this.constructor;\n if (_newTarget === undefined) {\n throw TypeError(\"Constructor Intl.Segmenter requires 'new'\");\n }\n var requestedLocales = (0, ecma402_abstract_1.CanonicalizeLocaleList)(locales);\n options = (0, ecma402_abstract_1.GetOptionsObject)(options);\n var opt = Object.create(null);\n var matcher = (0, ecma402_abstract_1.GetOption)(options, 'localeMatcher', 'string', ['lookup', 'best fit'], 'best fit');\n opt.localeMatcher = matcher;\n var granularity = (0, ecma402_abstract_1.GetOption)(options, 'granularity', 'string', ['word', 'sentence', 'grapheme'], 'grapheme');\n setSlot(this, 'granularity', granularity);\n //TODO: figure out correct availible locales\n var r = (0, intl_localematcher_1.ResolveLocale)(Segmenter.availableLocales, //availible locales\n requestedLocales, opt, [], // there is no relevantExtensionKeys\n {}, function () { return ''; } //use only root rules\n );\n setSlot(this, 'locale', r.locale);\n //root rules based on granularity\n this.mergedSegmentationTypeValue = cldr_segmentation_rules_generated_1.SegmentationRules.root[granularity];\n //merge root rules with locale ones if locale is specified\n if (r.locale.length) {\n var localeOverrides = cldr_segmentation_rules_generated_1.SegmentationRules[r.locale];\n if (granularity in localeOverrides) {\n var localeSegmentationTypeValue = localeOverrides[granularity];\n this.mergedSegmentationTypeValue.variables = tslib_1.__assign(tslib_1.__assign({}, this.mergedSegmentationTypeValue.variables), localeSegmentationTypeValue.variables);\n this.mergedSegmentationTypeValue.segmentRules = tslib_1.__assign(tslib_1.__assign({}, this.mergedSegmentationTypeValue.segmentRules), localeSegmentationTypeValue.segmentRules);\n this.mergedSegmentationTypeValue.suppressions = tslib_1.__spreadArray(tslib_1.__spreadArray([], this.mergedSegmentationTypeValue.suppressions, true), localeSegmentationTypeValue.suppressions, true);\n }\n }\n //prepare rules\n this.rules = prepareLocaleSegmentationRules(this.mergedSegmentationTypeValue);\n //order rule keys\n this.ruleSortedKeys = Object.keys(this.rules).sort(function (a, b) { return Number(a) - Number(b); });\n }\n Segmenter.prototype.breaksAt = function (position, input) {\n var ruleSortedKeys = this.ruleSortedKeys;\n var rules = this.rules;\n var mergedSegmentationTypeValue = this.mergedSegmentationTypeValue;\n //artificial rule 0.2\n if (position === 0) {\n return breaksAtResult(true, '0.2');\n }\n if (position === input.length) {\n //rule 0.3\n return breaksAtResult(true, '0.3');\n }\n //artificial rule 0.1: js specific, due to es5 regex not being unicode aware\n //number 0.1 chosen to mimic java implementation, but needs to execute after 0.2 and 0.3 to be inside the string bounds\n if ((0, segmentation_utils_1.isSurrogate)(input, position)) {\n return breaksAtResult(false, '0.1');\n }\n var stringBeforeBreak = input.substring(0, position);\n var stringAfterBreak = input.substring(position);\n //artificial rule 0.4: handle suppressions\n if ('suppressions' in mergedSegmentationTypeValue) {\n for (var _i = 0, _a = mergedSegmentationTypeValue.suppressions; _i < _a.length; _i++) {\n var suppressions = _a[_i];\n if (stringBeforeBreak.trim().endsWith(suppressions)) {\n return breaksAtResult(false, '0.4');\n }\n }\n }\n // loop through rules and find a match\n for (var _b = 0, ruleSortedKeys_1 = ruleSortedKeys; _b < ruleSortedKeys_1.length; _b++) {\n var ruleKey = ruleSortedKeys_1[_b];\n var _c = rules[ruleKey], before = _c.before, after = _c.after, breaks = _c.breaks;\n // for debugging\n // if (ruleKey === '16' && position === 4) {\n // console.log({before, after, stringBeforeBreak, stringAfterBreak})\n // }\n if (before) {\n if (!before.test(stringBeforeBreak)) {\n //didn't match the before part, therfore skipping\n continue;\n }\n }\n if (after) {\n if (!after.test(stringAfterBreak)) {\n //didn't match the after part, therfore skipping\n continue;\n }\n }\n return breaksAtResult(breaks, ruleKey);\n }\n //artificial rule 999: if no rule matched is Any ÷ Any so return true\n return breaksAtResult(true, '999');\n };\n Segmenter.prototype.segment = function (input) {\n checkReceiver(this, 'segment');\n return new SegmentIterator(this, input);\n };\n Segmenter.prototype.resolvedOptions = function () {\n checkReceiver(this, 'resolvedOptions');\n return tslib_1.__assign({}, (0, ecma402_abstract_1.getMultiInternalSlots)(__INTERNAL_SLOT_MAP__, this, 'locale', 'granularity'));\n };\n Segmenter.supportedLocalesOf = function (locales, options) {\n return (0, ecma402_abstract_1.SupportedLocales)(Segmenter.availableLocales, (0, ecma402_abstract_1.CanonicalizeLocaleList)(locales), options);\n };\n Segmenter.availableLocales = new Set(Object.keys(cldr_segmentation_rules_generated_1.SegmentationRules).filter(function (key) { return key !== 'root'; }));\n Segmenter.polyfilled = true;\n return Segmenter;\n}());\nexports.Segmenter = Segmenter;\nvar createSegmentDataObject = function (segmenter, segment, index, input, matchingRule) {\n var returnValue = {\n segment: segment,\n index: index,\n input: input,\n };\n if (getSlot(segmenter, 'granularity') === 'word') {\n returnValue.isWordLike = matchingRule !== '3.1' && matchingRule !== '3.2';\n }\n return returnValue;\n};\nvar SegmentIterator = /** @class */ (function () {\n function SegmentIterator(segmenter, input) {\n this.segmenter = segmenter;\n this.lastSegmentIndex = 0;\n if (typeof input == 'symbol') {\n throw TypeError(\"Input must not be a symbol\");\n }\n this.input = String(input);\n }\n SegmentIterator.prototype[Symbol.iterator] = function () {\n return new SegmentIterator(this.segmenter, this.input);\n };\n SegmentIterator.prototype.next = function () {\n //using only the relevant bit of the string\n var checkString = this.input.substring(this.lastSegmentIndex);\n //loop from the start of the checkString, until exactly length (breaksAt returns break at pos=== lenght)\n for (var position = 1; position <= checkString.length; position++) {\n var _a = this.segmenter.breaksAt(position, checkString), breaks = _a.breaks, matchingRule = _a.matchingRule;\n if (breaks) {\n var segment = checkString.substring(0, position);\n var index = this.lastSegmentIndex;\n this.lastSegmentIndex += position;\n return {\n done: false,\n value: createSegmentDataObject(this.segmenter, segment, index, this.input, matchingRule),\n };\n }\n }\n //no segment was found by the loop, therefore the segmentation is done\n return { done: true, value: undefined };\n };\n SegmentIterator.prototype.containing = function (positionInput) {\n if (typeof positionInput === 'bigint') {\n throw TypeError('Index must not be a BigInt');\n }\n var position = Number(positionInput);\n //https://tc39.es/ecma262/#sec-tointegerorinfinity\n // 2. If number is NaN, +0𝔽, or -0𝔽, return 0.\n if (isNaN(position) || !position) {\n position = 0;\n }\n // 5. Let integer be floor(abs(ℝ(number))).\n // 6. If number < -0𝔽, set integer to -integer.\n position = Math.floor(Math.abs(position)) * (position < 0 ? -1 : 1);\n if (position < 0 || position >= this.input.length) {\n return undefined;\n }\n //find previous break point\n var previousBreakPoint = 0;\n if (position === 0) {\n previousBreakPoint = 0;\n }\n else {\n var checkString_1 = this.input;\n for (var cursor = position; cursor >= 0; cursor--) {\n var breaks = this.segmenter.breaksAt(cursor, checkString_1).breaks;\n if (breaks) {\n previousBreakPoint = cursor;\n break;\n }\n }\n }\n var checkString = this.input.substring(previousBreakPoint);\n //find next break point\n for (var cursor = 1; cursor <= checkString.length; cursor++) {\n var _a = this.segmenter.breaksAt(cursor, checkString), breaks = _a.breaks, matchingRule = _a.matchingRule;\n if (breaks) {\n var segment = checkString.substring(0, cursor);\n return createSegmentDataObject(this.segmenter, segment, previousBreakPoint, this.input, matchingRule);\n }\n }\n };\n return SegmentIterator;\n}());\nvar __INTERNAL_SLOT_MAP__ = new WeakMap();\nfunction getSlot(instance, key) {\n return (0, ecma402_abstract_1.getInternalSlot)(__INTERNAL_SLOT_MAP__, instance, key);\n}\nfunction setSlot(instance, key, value) {\n (0, ecma402_abstract_1.setInternalSlot)(__INTERNAL_SLOT_MAP__, instance, key, value);\n}\nfunction checkReceiver(receiver, methodName) {\n if (!(receiver instanceof Segmenter)) {\n throw TypeError(\"Method Intl.Segmenter.prototype.\".concat(methodName, \" called on incompatible receiver\"));\n }\n}\ntry {\n // IE11 does not have Symbol\n if (typeof Symbol !== 'undefined') {\n Object.defineProperty(Segmenter.prototype, Symbol.toStringTag, {\n value: 'Intl.Segmenter',\n writable: false,\n enumerable: false,\n configurable: true,\n });\n }\n //github.com/tc39/test262/blob/main/test/intl402/Segmenter/constructor/length.js\n https: Object.defineProperty(Segmenter.prototype.constructor, 'length', {\n value: 0,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n // https://github.com/tc39/test262/blob/main/test/intl402/Segmenter/constructor/supportedLocalesOf/length.js\n Object.defineProperty(Segmenter.supportedLocalesOf, 'length', {\n value: 1,\n writable: false,\n enumerable: false,\n configurable: true,\n });\n}\ncatch (e) {\n // Meta fix so we're test262-compliant, not important\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar segmenter_1 = require(\"./src/segmenter\");\nObject.defineProperty(Intl, 'Segmenter', {\n value: segmenter_1.Segmenter,\n enumerable: false,\n writable: true,\n configurable: true,\n});\n"],"names":["cldrSegmentationRules_generated","SegmentationRules","segmentationUtils","isSurrogate_1","replaceVariables_1","replaceVariables","variables","input","findVarRegex","match","isSurrogate","str","pos","CanonicalizeLocaleList","locales","CanonicalizeTimeZoneName","tz","_a","zoneNames","uppercaseLinks","uppercasedTz","uppercasedZones","all","z","ianaTimeZone","ToString","o","ToNumber","val","ToInteger","n","number","SameValue","integer","TimeClip","time","ToObject","arg","x","y","ArrayCreate","len","HasOwnProperty","prop","Type","MS_PER_DAY","mod","Day","t","WeekDay","DayFromYear","TimeFromYear","YearFromTime","DaysInYear","DayWithinYear","InLeapYear","MonthFromTime","dwy","leap","DateFromTime","mft","HOURS_PER_DAY","MINUTES_PER_HOUR","SECONDS_PER_MINUTE","MS_PER_SECOND","MS_PER_MINUTE","MS_PER_HOUR","HourFromTime","MinFromTime","SecFromTime","IsCallable","fn","OrdinaryHasInstance","C","O","internalSlots","BC","P","msFromTime","CoerceOptionsToObject","options","DefaultNumberOption","inputVal","min","max","fallback","GetNumberOption","property","minimum","maximum","GetOption","opts","type","values","value","GetOptionsObject","GetStringOrBooleanOption","trueValue","falsyValue","valueBoolean","SANCTIONED_UNITS","removeUnitNamespace","unit","SIMPLE_UNITS","IsSanctionedSimpleUnitIdentifier","unitIdentifier","IsValidTimeZoneName","zoneNamesFromData","linkNames","linkName","toUpperCase","_","c","NOT_A_Z_REGEX","IsWellFormedCurrencyCode","currency","toLowerCase","IsWellFormedUnitIdentifier","units","numerator","denominator","ApplyUnsignedRoundingMode","r1","r2","unsignedRoundingMode","d1","d2","cardinality","CollapseNumberRange","result","getMagnitude","repeat","s","times","arr","i","setInternalSlot","map","pl","field","slots","setMultiInternalSlots","props","_i","k","getInternalSlot","getMultiInternalSlots","fields","f","isLiteralPart","patternPart","defineProperty","target","name","createDataProperty","invariant","condition","message","Err","ComputeExponentForMagnitude","numberFormat","magnitude","getInternalSlots","notation","dataLocaleData","numberingSystem","compactDisplay","style","currencyDisplay","thresholdMap","decimal","num","thresholds","magnitudeKey","compactPattern","ToRawPrecision","minPrecision","maxPrecision","p","m","e","xFinal","xToString","xToStringExponentIndex","xToStringMantissa","xToStringExponent","xToStringMantissaWithoutDecimalPoint","decimalPlaceOffset","adjustDecimalPlace","int","cut","ToRawFixed","minFraction","maxFraction","mantissa","exponent","a","b","FormatNumericToString","intlObject","isNegative","rourndingType","string","minInteger","forwardZeros","ComputeExponent","formatNumberResult","newMagnitude","CurrencyDigits","currencyDigitsData","FormatApproximately","symbols","approximatelySign","S_UNICODE_REGEX","digitMapping","CARET_S_UNICODE_REGEX","S_DOLLAR_UNICODE_REGEX","CLDR_NUMBER_PATTERN","formatToParts","numberResult","data","sign","defaultNumberingSystem","compactNumberPattern","getCompactDisplayPattern","nonNameCurrencyPart","byCurrencyDisplay","numberPattern","decimalData","getPatternForSign","currencyData","percentPattern","decimalNumberPattern","afterCurrency","beforeCurrency","numberPatternParts","numberParts","numberPatternParts_1","part","paritionNumberIntoParts","unitPattern","unitName","currencyNameData","selectPlural","unitPatternParts","unitPatternParts_1","unitDisplay","unitData","_b","numeratorUnit","denominatorUnit","numeratorUnitPattern","perUnitPattern","perPattern","denominatorPattern","_c","_d","interpolateMatch","useGrouping","digitReplacementTable","digit","decimalSepIndex","fraction","groupSepSymbol","groups","integerNumberPattern","patternGroups","primaryGroupingSize","secondaryGroupingSize","integerGroup","decimalSepSymbol","exponentResult","pattern","zeroPattern","negativePattern","roundedNumber","byNumberingSystem","compactPluralRules","byCompactDisplay","compactPlaralRule","rules","PartitionNumberPattern","signDisplay","PartitionNumberRangePattern","xResult","yResult","xResult_1","r","yResult_1","FormatNumericRange","parts","FormatNumericRangeToParts","index","FormatNumericToParts","nf","implDetails","parts_1","negativeMapping","positiveMapping","GetUnsignedRoundingMode","roundingMode","SetNumberFormatDigitOptions","mnfdDefault","mxfdDefault","mnid","mnfd","mxfd","mnsd","mxsd","roundingPriority","hasSd","hasFd","needSd","needFd","SetNumberFormatUnitOptions","currencySign","VALID_ROUND_INCREMENT_VALUES","InitializeNumberFormat","localeData","availableLocales","numberingSystemNames","getDefaultLocale","requestedLocales","opt","matcher","ResolveLocale","cDigits","roundingIncrement","trailingZeroDisplay","defaultUseGrouping","PartitionPattern","beginIndex","endIndex","nextIndex","length","SupportedLocales","LookupSupportedLocales","MissingLocaleDataError","_super","__extends","_this","isMissingLocaleDataError","RangePatternType","segmenter","Segmenter_1","tslib_1","require$$0","cldr_segmentation_rules_generated_1","require$$1","segmentation_utils_1","require$$2","ecma402_abstract_1","require$$3","intl_localematcher_1","require$$4","generateRuleRegex","rule","after","prepareLocaleSegmentationRules","segmentationTypeValue","preparedRules","ruleNr","ruleValue","preparedRule","breaksAtResult","breaks","matchingRule","Segmenter","_newTarget","granularity","setSlot","localeOverrides","localeSegmentationTypeValue","position","ruleSortedKeys","mergedSegmentationTypeValue","stringBeforeBreak","stringAfterBreak","suppressions","ruleSortedKeys_1","ruleKey","before","checkReceiver","SegmentIterator","__INTERNAL_SLOT_MAP__","key","createSegmentDataObject","segment","returnValue","getSlot","checkString","positionInput","previousBreakPoint","checkString_1","cursor","instance","receiver","methodName","polyfillForce","segmenter_1"],"mappings":"udACA,OAAO,eAAeA,EAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EAC5D,IAAyBC,GAAAD,EAAA,kBAAG,OAG5BC,GAAAD,EAAA,kBAA4B,CACxB,GAAM,CACF,SAAY,CACR,aAAgB,CAAE,EAClB,aAAgB,CACZ,QACA,OACA,MACA,OACA,OACA,UACA,QACA,OACA,OACA,OACA,SACA,MACA,OACA,QACA,QACA,MACA,OACA,OACA,OACA,QACA,OACA,MACA,MACA,OACA,MACA,OACA,SACA,OACA,OACA,KACA,QACA,WACA,MACA,UACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,KACA,QACA,UACA,OACA,OACA,aACA,KACA,KACA,QACA,KACA,MACA,MACA,SACA,MACA,OACA,OACA,MACA,OACA,OACA,WACA,QACA,OACA,KACA,KACA,OACA,SACA,OACA,MACA,MACA,MACA,OACA,MACA,QACA,SACA,KACA,OACA,UACA,QACA,QACA,QACA,SACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,KACA,QACA,OACA,MACA,SACA,OACA,OACA,OACA,QACA,OACA,KACA,OACA,MACA,OACA,SACA,SACA,KACA,OACA,UACA,OACA,OACA,OACA,OACA,QACA,WACA,OACA,OACA,QACA,OACA,KACA,QACA,OACA,OACA,OACA,SACA,WACA,OACA,QACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,OACA,QACA,QACA,QACA,WACA,OACA,KACA,aACA,OACA,QACA,MACA,OACA,KACA,KACA,OACA,OACA,QACA,OACA,QACA,QACA,KACA,SACA,QACA,MACA,OACA,YACA,OACA,UACA,OACA,OACA,QACA,QACA,OACA,OACA,OACA,QACA,OACA,MACA,QACA,OACA,QACA,OACA,OACA,QACA,OACA,KACA,QACA,QACA,MACA,OACA,SACA,SACA,QACA,KACA,QACA,QACA,QACA,OACA,OACA,OACA,OACA,SACA,OACA,MACA,OACA,QACA,YACA,MACA,SACA,OACA,QACA,OACA,KACA,WACA,SACA,QACA,OACA,OACA,KACA,QACA,OACA,OACA,OACA,OACA,QACA,MACA,KACA,QACA,KACA,aACA,aACA,OACA,OACA,OACA,KACA,OACA,OACA,OACA,KACA,SACA,QACA,YACA,OACA,SACA,SACH,EACD,UAAa,CAAE,CAClB,CACJ,EACD,GAAM,CACF,SAAY,CACR,aAAgB,CAAE,EAClB,aAAgB,CAAE,EAClB,UAAa,CACT,OAAU,swKACb,CACJ,CACJ,EACD,GAAM,CACF,SAAY,CACR,aAAgB,CAAE,EAClB,aAAgB,CACZ,OACA,OACA,UACA,OACA,KACA,OACA,QACA,OACA,OACA,OACA,QACA,OACA,QACA,MACA,QACA,OACA,KACA,QACA,MACA,OACA,OACA,MACA,OACA,MACA,OACA,OACA,OACA,OACA,KACA,OACA,MACA,OACA,OACA,SACA,MACA,OACA,MACA,QACA,KACA,QACA,MACA,OACA,MACA,MACA,KACA,KACA,MACA,OACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,OACA,KACA,MACA,MACA,MACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,MACA,OACA,QACA,OACA,OACA,MACA,KACA,SACA,MACA,KACA,OACA,SACA,QACA,OACA,MACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,KACA,QACA,MACA,OACA,QACA,MACA,MACA,MACA,OACA,OACA,MACA,OACA,OACA,SACA,OACA,UACA,OACA,KACA,MACA,OACA,MACA,MACA,QACA,MACA,OACA,QACA,WACA,KACA,MACA,MACA,OACA,OACA,MACA,MACA,KACA,SACA,KACA,OACA,QACA,MACA,MACA,KACA,OACA,MACA,OACA,KACA,OACA,OACA,KACA,OACA,OACA,OACA,OACA,SACA,OACA,MACA,OACA,MACA,KACH,EACD,UAAa,CAAE,CAClB,CACJ,EACD,GAAM,CACF,SAAY,CACR,aAAgB,CAAE,EAClB,aAAgB,CACZ,QACA,SACA,QACA,OACA,OACA,SACA,OACA,OACA,OACA,OACA,SACA,QACA,UACA,OACA,OACA,SACA,MACA,OACA,QACA,MACA,SACA,MACA,QACA,OACA,OACA,OACA,SACA,OACA,OACA,UACA,QACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,QACA,MACA,OACA,QACA,OACA,MACA,SACA,QACA,OACA,QACA,OACA,MACA,QACA,QACA,OACA,OACA,OACA,OACA,OACA,QACA,QACA,QACA,OACA,SACA,OACA,OACA,QACA,OACA,QACA,QACA,MACA,SACA,OACA,MACA,OACA,OACA,QACA,SACA,QACA,SACA,QACA,SACA,MACA,KACA,QACA,MACA,QACA,QACA,QACA,QACA,KACA,OACA,SACA,OACA,QACA,MACA,OACA,SACA,OACA,OACA,KACA,KACA,OACA,OACA,UACA,MACA,QACA,SACA,OACA,SACA,QACA,OACA,SACA,OACA,OACA,OACA,OACA,OACA,OACA,SACA,OACA,MACA,QACA,QACA,SACA,OACA,QACA,OACA,OACA,OACA,UACA,QACA,OACA,OACA,OACA,MACA,MACA,OACA,OACA,UACA,MACA,QACA,OACA,OACA,QACA,OACA,QACA,KACA,OACA,MACA,QACA,QACA,QACA,OACA,QACA,QACA,SACA,WACA,QACA,SACA,MACA,OACA,MACA,QACA,OACA,MACH,EACD,UAAa,CAAE,CAClB,CACJ,EACD,GAAM,CACF,SAAY,CACR,aAAgB,CAAE,EAClB,aAAgB,CACZ,OACA,UACA,UACA,KACA,OACA,UACA,OACA,QACA,QACA,MACA,OACA,OACA,OACA,QACA,QACA,SACA,OACA,QACA,KACA,OACA,QACA,MACA,SACA,OACA,MACA,OACA,QACA,OACA,SACA,OACA,QACA,QACA,OACA,QACA,QACA,QACA,SACA,MACA,SACA,WACA,UACA,OACA,KACA,OACA,OACA,aACA,QACA,OACA,OACA,QACA,WACA,OACA,QACA,UACA,OACA,QACA,OACA,KACA,OACA,OACA,OACA,KACA,UACA,OACA,SACA,QACA,OACA,OACA,SACA,OACA,UACA,OACA,OACA,KACA,SACA,QACA,YACA,KACA,MACA,YACA,QACA,aACH,EACD,UAAa,CAAE,CAClB,CACJ,EACD,GAAM,CACF,SAAY,CACR,aAAgB,CAAE,EAClB,aAAgB,CACZ,OACA,OACA,OACA,OACA,SACA,SACA,OACA,OACA,QACA,SACA,SACA,OACA,SACA,QACA,QACA,OACA,SACA,OACA,OACA,OACA,OACA,MACA,OACA,SACA,MACA,QACA,OACA,OACA,MACA,OACA,MACA,KACA,OACA,aACA,OACA,OACA,OACA,OACA,KACA,SACA,OACA,OACA,SACA,OACA,IACH,EACD,UAAa,CAAE,CAClB,CACJ,EACD,GAAM,CACF,KAAQ,CACJ,aAAgB,CACZ,OAAQ,CACJ,MAAS,YACT,OAAU,YACV,OAAU,EACb,EACD,OAAQ,CACJ,MAAS,eACT,OAAU,eACV,OAAU,EACb,CACJ,EACD,aAAgB,CAAE,EAClB,UAAa,CACT,UAAa,w7IACb,aAAgB,o8JACnB,CACJ,CACJ,EACD,GAAM,CACF,SAAY,CACR,aAAgB,CAAE,EAClB,aAAgB,CACZ,UACA,OACA,SACA,OACA,OACA,OACA,UACA,QACA,UACA,QACA,WACA,QACA,OACA,OACA,QACA,UACA,OACA,MACA,OACA,QACA,OACA,MACA,QACA,OACA,KACA,UACA,MACA,KACA,OACA,OACA,OACA,SACA,OACA,OACA,MACA,OACA,OACA,OACA,OACA,QACA,OACA,OACA,QACA,OACA,OACA,OACA,KACA,OACA,QACA,SACA,OACA,OACA,QACA,OACA,OACA,QACA,QACA,OACA,QACA,UACA,OACA,QACA,MACA,OACA,SACA,OACA,QACA,MACA,OACA,OACA,SACA,SACA,WACA,OACA,OACA,SACA,OACA,QACA,OACA,QACA,OACA,OACA,OACA,KACA,OACA,WACA,OACA,OACA,OACA,OACA,MACA,OACA,OACA,MACA,SACA,QACA,SACA,WACA,QACA,MACA,QACA,OACA,MACA,OACA,OACA,OACA,QACA,MACA,OACA,QACA,OACA,SACA,OACA,OACA,MACA,OACA,OACA,QACA,OACA,SACA,OACA,OACA,KACA,OACA,OACA,SACA,OACA,QACA,OACA,MACA,QACA,MACA,WACA,QACA,SACA,KACA,QACA,OACA,OACA,SACA,MACA,MACA,OACA,OACA,UACA,QACA,OACA,QACA,OACA,OACA,OACA,QACA,QACA,MACA,QACA,OACA,OACA,SACA,QACA,OACA,OACA,OACA,MACA,OACA,OACA,UACA,OACA,OACA,QACA,aACA,QACA,OACH,EACD,UAAa,CAAE,CAClB,CACJ,EACD,KAAQ,CACJ,SAAY,CACR,aAAgB,CACZ,GAAM,CACF,MAAS,WACT,OAAU,uBACV,OAAU,EACb,EACD,GAAM,CACF,MAAS,MACT,OAAU,gBACV,OAAU,EACb,EACD,GAAM,CACF,MAAS,MACT,OAAU,iCACV,OAAU,EACb,EACD,EAAK,CACD,MAAS,MACT,OAAU,MACV,OAAU,EACb,EACD,EAAK,CACD,OAAU,qBACV,OAAU,EACb,EACD,EAAK,CACD,MAAS,qBACT,OAAU,EACb,EACD,EAAK,CACD,MAAS,mBACT,OAAU,KACV,OAAU,EACb,EACD,EAAK,CACD,MAAS,UACT,OAAU,WACV,OAAU,EACb,EACD,EAAK,CACD,MAAS,KACT,OAAU,YACV,OAAU,EACb,EACD,EAAK,CACD,MAAS,iBACT,OAAU,EACb,EACD,MAAO,CACH,MAAS,eACT,OAAU,EACb,EACD,MAAO,CACH,OAAU,WACV,OAAU,EACb,EACD,MAAO,CACH,MAAS,oBACT,OAAU,iDACV,OAAU,EACb,CACJ,EACD,aAAgB,CAAE,EAClB,UAAa,CACT,IAAO,MACP,SAAY,+SACZ,WAAc,4pEACd,SAAY,g6BACZ,QAAW,46IACX,GAAM,mCACN,IAAO,MACP,IAAO,8uFACP,KAAQ,s2LACR,kBAAqB,8VACrB,SAAY,8KACZ,IAAO,+BACP,aAAgB,m5DAChB,GAAM,mCACN,GAAM,mCACN,QAAW,+CACX,KAAQ,SACX,CACJ,EACD,SAAY,CACR,aAAgB,CACZ,GAAM,CACF,MAAS,iBACT,OAAU,qBACV,OAAU,EACb,EACD,GAAM,CACF,OAAU,8BACV,OAAU,EACb,EACD,EAAK,CACD,MAAS,MACT,OAAU,MACV,OAAU,EACb,EACD,EAAK,CACD,OAAU,WACV,OAAU,EACb,EACD,EAAK,CACD,MAAS,sBACT,OAAU,EACb,EACD,EAAK,CACD,MAAS,WACT,OAAU,SACV,OAAU,EACb,EACD,EAAK,CACD,MAAS,SACT,OAAU,wBACV,OAAU,EACb,EACD,EAAK,CACD,MAAS,uBACT,OAAU,oBACV,OAAU,EACb,EACD,MAAO,CACH,MAAS,uBACT,OAAU,qBACV,OAAU,EACb,EACD,EAAK,CACD,MAAS,wBACT,OAAU,iBACV,OAAU,EACb,EACD,IAAO,CACH,MAAS,OACT,OAAU,EACb,CACJ,EACD,aAAgB,CAAE,EAClB,UAAa,CACT,OAAU,u1IACV,KAAQ,uJACR,IAAO,MACP,OAAU,61JACV,QAAW,+rIACX,IAAO,0zIACP,QAAW,wRACX,IAAO,MACP,OAAU,s2TACV,cAAiB,g2TACjB,SAAY,63KACZ,SAAY,o0XACZ,SAAY,kCACZ,QAAW,slTACX,WAAc,u+IACd,OAAU,+vKACV,KAAQ,wBACR,IAAO,23IACP,OAAU,+nTACb,CACJ,EACD,KAAQ,CACJ,aAAgB,CACZ,GAAM,CACF,MAAS,YACT,OAAU,WACV,OAAU,EACb,EACD,GAAM,CACF,MAAS,WACT,OAAU,gCACV,OAAU,EACb,EACD,GAAM,CACF,MAAS,gCACT,OAAU,WACV,OAAU,EACb,EACD,GAAM,CACF,MAAS,YACT,OAAU,YACV,OAAU,EACb,EACD,OAAQ,CACJ,MAAS,gBACT,OAAU,+CACV,OAAU,EACb,EACD,OAAQ,CACJ,MAAS,iCACT,OAAU,gBACV,OAAU,EACb,EACD,GAAM,CACF,MAAS,MACT,OAAU,gBACV,OAAU,EACb,EACD,GAAM,CACF,MAAS,MACT,OAAU,6qIACV,OAAU,EACb,EACD,EAAK,CACD,MAAS,MACT,OAAU,MACV,OAAU,EACb,EACD,MAAO,CACH,OAAU,qBACV,OAAU,EACb,EACD,MAAO,CACH,MAAS,qBACT,OAA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oBjG,CAAC,EACrCiG,EAAmBjG,CAAC,EACpB,CACV,CCNO,SAASkG,GAAoBlD,EAAc/B,EAAQhH,EAAI,CAC1D,IAAIiJ,EAAmBjJ,EAAG,iBACtB0D,EAAgBuF,EAAiBF,CAAY,EAC7CmD,EAAUxI,EAAc,eAAe,QAAQ,QAAQA,EAAc,eAAe,EACpFyI,EAAoBD,EAAQ,kBAChC,OAAAlF,EAAO,KAAK,CAAE,KAAM,oBAAqB,MAAOmF,CAAiB,CAAE,EAC5DnF,CACX,CCTO,IAAIoF,GAAkB,u8ECDlBC,GAAe,CACtB,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,QAAW,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,SAAY,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,QAAW,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,SAAY,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,SAAY,CACR,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,QAAW,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,SAAY,CACR,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,SAAY,CACR,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,SAAY,CACR,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,SAAY,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,SAAY,CACR,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,QAAW,CACP,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,QAAW,CACP,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,GACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,EACD,KAAQ,CACJ,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,IACH,CACL,ECvwBIC,GAAwB,IAAI,OAAO,IAAI,OAAOF,GAAgB,MAAM,CAAC,EAErEG,GAAyB,IAAI,OAAO,GAAG,OAAOH,GAAgB,OAAQ,GAAG,CAAC,EAC1EI,GAAsB,uBACX,SAASC,GAAcC,EAAcC,EAAMlF,EAAI1D,EAAS,CACnE,IAAI6I,EAAOF,EAAa,KAAMxB,EAAWwB,EAAa,SAAU1D,EAAY0D,EAAa,UACrFxD,EAAWnF,EAAQ,SAAUuF,EAAQvF,EAAQ,MAAOqF,EAAkBrF,EAAQ,gBAC9E8I,EAAyBF,EAAK,QAAQ,GAAG,CAAC,EAG1CG,EAAuB,KACvB5D,IAAa,WAAaF,IAC1B8D,EAAuBC,GAAyBL,EAAcjF,EAAIkF,EAAMrD,EAAOvF,EAAQ,eAAgBA,EAAQ,gBAAiBqF,CAAe,GAGnJ,IAAI4D,EACJ,GAAI1D,IAAU,YAAcvF,EAAQ,kBAAoB,OAAQ,CAC5D,IAAIkJ,EAAoBN,EAAK,WAAW5I,EAAQ,QAAQ,EACxD,GAAIkJ,EACA,OAAQlJ,EAAQ,gBAAe,CAC3B,IAAK,OACDiJ,EAAsBjJ,EAAQ,SAC9B,MACJ,IAAK,SACDiJ,EAAsBC,EAAkB,OACxC,MACJ,QACID,EAAsBC,EAAkB,OACxC,KACP,MAIDD,EAAsBjJ,EAAQ,QAErC,CACD,IAAImJ,EACJ,GAAKJ,EAyBDI,EAAgBJ,UAtBZxD,IAAU,WACVA,IAAU,QACTA,IAAU,YAAcvF,EAAQ,kBAAoB,OAAS,CAE9D,IAAIoJ,EAAcR,EAAK,QAAQ,QAAQvD,CAAe,GAClDuD,EAAK,QAAQ,QAAQE,CAAsB,EAC/CK,EAAgBE,EAAkBD,EAAY,SAAUP,CAAI,CAC/D,SACQtD,IAAU,WAAY,CAC3B,IAAI+D,EAAeV,EAAK,QAAQ,SAASvD,CAAe,GACpDuD,EAAK,QAAQ,SAASE,CAAsB,EAEhDK,EAAgBE,EAAkBC,EAAatJ,EAAQ,YAAY,EAAG6I,CAAI,CAC7E,KACI,CAED,IAAIU,EAAiBX,EAAK,QAAQ,QAAQvD,CAAe,GACrDuD,EAAK,QAAQ,QAAQE,CAAsB,EAC/CK,EAAgBE,EAAkBE,EAAgBV,CAAI,CACzD,CAOL,IAAIW,EAAuBf,GAAoB,KAAKU,CAAa,EAAE,CAAC,EAQpE,GAJAA,EAAgBA,EACX,QAAQV,GAAqB,KAAK,EAClC,QAAQ,SAAU,IAAI,EAEvBlD,IAAU,YAAcvF,EAAQ,kBAAoB,OAAQ,CAC5D,IAAIsJ,EAAeV,EAAK,QAAQ,SAASvD,CAAe,GACpDuD,EAAK,QAAQ,SAASE,CAAsB,EAa5CW,EAAgBH,EAAa,gBAAgB,mBAC7CG,GAAiB,CAACjB,GAAuB,KAAKS,CAAmB,IACjEE,EAAgBA,EAAc,QAAQ,OAAQ,IAAS,OAAOM,EAAe,KAAK,CAAC,GAEvF,IAAIC,EAAiBJ,EAAa,gBAAgB,oBAC9CI,GAAkB,CAACnB,GAAsB,KAAKU,CAAmB,IACjEE,EAAgBA,EAAc,QAAQ,OAAQ,MAAM,OAAOO,EAAgB,GAAQ,CAAC,EAE3F,CAMD,QAJIC,EAAqBR,EAAc,MAAM,6BAA6B,EACtES,EAAc,CAAA,EACdzB,EAAUS,EAAK,QAAQ,QAAQvD,CAAe,GAC9CuD,EAAK,QAAQ,QAAQE,CAAsB,EACtC/E,EAAK,EAAG8F,EAAuBF,EAAoB5F,EAAK8F,EAAqB,OAAQ9F,IAAM,CAChG,IAAI+F,EAAOD,EAAqB9F,CAAE,EAClC,GAAK+F,EAGL,OAAQA,EAAI,CACR,IAAK,MAAO,CAERF,EAAY,KAAK,MAAMA,EAAaG,GAAwB5B,EAASQ,EAAcxD,EAAUgC,EAAU9B,EAEvG,CAAC0D,GAAwB,EAAQ/I,EAAQ,YAAcwJ,EAAsBjE,CAAK,CAAC,EACnF,KACH,CACD,IAAK,IACDqE,EAAY,KAAK,CAAE,KAAM,YAAa,MAAOzB,EAAQ,SAAS,CAAE,EAChE,MACJ,IAAK,IACDyB,EAAY,KAAK,CAAE,KAAM,WAAY,MAAOzB,EAAQ,QAAQ,CAAE,EAC9D,MACJ,IAAK,IACDyB,EAAY,KAAK,CAAE,KAAM,cAAe,MAAOzB,EAAQ,WAAW,CAAE,EACpE,MACJ,IAAK,IAEDyB,EAAY,KAAK,CAAE,KAAM,WAAY,MAAOX,CAAmB,CAAE,EACjE,MACJ,QACQ,QAAQ,KAAKa,CAAI,EACjBF,EAAY,KAAK,CACb,KAAM,UACN,MAAOE,EAAK,UAAU,EAAGA,EAAK,OAAS,CAAC,CAChE,CAAqB,EAIDF,EAAY,KAAK,CAAE,KAAM,UAAW,MAAOE,CAAI,CAAE,EAErD,KACP,CACJ,CAID,OAAQvE,EAAK,CACT,IAAK,WAED,GAAIvF,EAAQ,kBAAoB,OAAQ,CACpC,IAAIgK,GAAepB,EAAK,QAAQ,SAASvD,CAAe,GACpDuD,EAAK,QAAQ,SAASE,CAAsB,GAAG,YAE/CmB,EAAW,OACXC,GAAmBtB,EAAK,WAAW5I,EAAQ,QAAQ,EACnDkK,GACAD,EAAWE,EAAazG,EAAIiF,EAAa,cAAgB,KAAK,IAAI,GAAIxB,CAAQ,EAAG+C,GAAiB,WAAW,EAI7GD,EAAWjK,EAAQ,SAKvB,QAFIoK,GAAmBJ,EAAY,MAAM,aAAa,EAClD/G,EAAS,CAAA,EACJhH,EAAK,EAAGoO,GAAqBD,GAAkBnO,EAAKoO,GAAmB,OAAQpO,IAAM,CAC1F,IAAI6N,EAAOO,GAAmBpO,CAAE,EAChC,OAAQ6N,EAAI,CACR,IAAK,MACD7G,EAAO,KAAK,MAAMA,EAAQ2G,CAAW,EACrC,MACJ,IAAK,MACD3G,EAAO,KAAK,CAAE,KAAM,WAAY,MAAOgH,CAAQ,CAAE,EACjD,MACJ,QACQH,GACA7G,EAAO,KAAK,CAAE,KAAM,UAAW,MAAO6G,CAAI,CAAE,EAEhD,KACP,CACJ,CACD,OAAO7G,CACV,KAEG,QAAO2G,EAGf,IAAK,OAAQ,CACT,IAAItI,EAAOtB,EAAQ,KAAMsK,EAActK,EAAQ,YAC3CuK,GAAW3B,EAAK,MAAM,OAAOtH,CAAI,EACjC0I,EAAc,OAClB,GAAIO,GAEAP,EAAcG,EAAazG,EAAIiF,EAAa,cAAgB,KAAK,IAAI,GAAIxB,CAAQ,EAAGyB,EAAK,MAAM,OAAOtH,CAAI,EAAEgJ,CAAW,CAAC,MAEvH,CAID,IAAIE,GAAKlJ,EAAK,MAAM,OAAO,EAAGmJ,GAAgBD,GAAG,CAAC,EAAGE,GAAkBF,GAAG,CAAC,EAC3ED,GAAW3B,EAAK,MAAM,OAAO6B,EAAa,EAC1C,IAAIE,GAAuBR,EAAazG,EAAIiF,EAAa,cAAgB,KAAK,IAAI,GAAIxB,CAAQ,EAAGyB,EAAK,MAAM,OAAO6B,EAAa,EAAEH,CAAW,CAAC,EAC1IM,GAAiBhC,EAAK,MAAM,OAAO8B,EAAe,EAAE,QAAQJ,CAAW,EAC3E,GAAIM,GAEAZ,EAAcY,GAAe,QAAQ,MAAOD,EAAoB,MAE/D,CAGD,IAAIE,GAAajC,EAAK,MAAM,SAAS,IAAI0B,CAAW,EAChDQ,GAAqBX,EAAazG,EAAI,EAAGkF,EAAK,MAAM,OAAO8B,EAAe,EAAEJ,CAAW,CAAC,EAC5FN,EAAcA,EAAca,GACvB,QAAQ,MAAOF,EAAoB,EACnC,QAAQ,MAAOG,GAAmB,QAAQ,MAAO,EAAE,CAAC,CAC5D,CACJ,CAGD,QAFI7H,EAAS,CAAA,EAEJ8H,EAAK,EAAGC,GAAKhB,EAAY,MAAM,eAAe,EAAGe,EAAKC,GAAG,OAAQD,IAAM,CAC5E,IAAIjB,EAAOkB,GAAGD,CAAE,EACZE,EAAmB,oBAAoB,KAAKnB,CAAI,EAChDmB,GAEIA,EAAiB,CAAC,GAClBhI,EAAO,KAAK,CAAE,KAAM,UAAW,MAAOgI,EAAiB,CAAC,CAAC,CAAE,EAG/DhI,EAAO,KAAK,MAAMA,EAAQ2G,CAAW,EAEjCqB,EAAiB,CAAC,GAClBhI,EAAO,KAAK,CAAE,KAAM,UAAW,MAAOgI,EAAiB,CAAC,CAAC,CAAE,GAG1DnB,GACL7G,EAAO,KAAK,CAAE,KAAM,OAAQ,MAAO6G,CAAI,CAAE,CAEhD,CACD,OAAO7G,CACV,CACD,QACI,OAAO2G,CACd,CAEL,CAGA,SAASG,GAAwB5B,EAASQ,EAAcxD,EAAUgC,EAAU9B,EAAiB6F,EAQ7F1B,EAAsBjE,EAAO,CACzB,IAAItC,EAAS,CAAA,EAETnG,EAAI6L,EAAa,gBAAiBrL,EAAIqL,EAAa,cACvD,GAAI,MAAMrL,CAAC,EACP,MAAO,CAAC,CAAE,KAAM,MAAO,MAAOR,CAAG,CAAA,EAEhC,GAAI,CAAC,SAASQ,CAAC,EAChB,MAAO,CAAC,CAAE,KAAM,WAAY,MAAOR,CAAG,CAAA,EAE1C,IAAIqO,EAAwB7C,GAAajD,CAAe,EACpD8F,IACArO,EAAIA,EAAE,QAAQ,MAAO,SAAUsO,EAAO,CAAE,OAAOD,EAAsB,CAACC,CAAK,GAAKA,CAAQ,CAAA,GAI5F,IAAIC,EAAkBvO,EAAE,QAAQ,GAAG,EAC/BG,EACAqO,EAcJ,GAbID,EAAkB,GAClBpO,EAAUH,EAAE,MAAM,EAAGuO,CAAe,EACpCC,EAAWxO,EAAE,MAAMuO,EAAkB,CAAC,GAGtCpO,EAAUH,EAQVoO,IAAgB/F,IAAa,WAAa7H,GAAK,KAAQ,CAGvD,IAAIiO,EAAiBhG,IAAU,YAAc4C,EAAQ,eAAiB,KAChEA,EAAQ,cACRA,EAAQ,MACVqD,EAAS,CAAA,EAMTC,EAAuBjC,EAAqB,MAAM,GAAG,EAAE,CAAC,EACxDkC,EAAgBD,EAAqB,MAAM,GAAG,EAC9CE,EAAsB,EACtBC,EAAwB,EACxBF,EAAc,OAAS,IACvBC,EAAsBD,EAAcA,EAAc,OAAS,CAAC,EAAE,QAE9DA,EAAc,OAAS,IACvBE,EAAwBF,EAAcA,EAAc,OAAS,CAAC,EAAE,QAEpE,IAAInI,EAAItG,EAAQ,OAAS0O,EACzB,GAAIpI,EAAI,EAAG,CAKP,IAHAiI,EAAO,KAAKvO,EAAQ,MAAMsG,EAAGA,EAAIoI,CAAmB,CAAC,EAGhDpI,GAAKqI,EAAuBrI,EAAI,EAAGA,GAAKqI,EACzCJ,EAAO,KAAKvO,EAAQ,MAAMsG,EAAGA,EAAIqI,CAAqB,CAAC,EAE3DJ,EAAO,KAAKvO,EAAQ,MAAM,EAAGsG,EAAIqI,CAAqB,CAAC,CAC1D,MAEGJ,EAAO,KAAKvO,CAAO,EAEvB,KAAOuO,EAAO,OAAS,GAAG,CACtB,IAAIK,EAAeL,EAAO,MAC1BvI,EAAO,KAAK,CAAE,KAAM,UAAW,MAAO4I,CAAY,CAAE,EAChDL,EAAO,OAAS,GAChBvI,EAAO,KAAK,CAAE,KAAM,QAAS,MAAOsI,CAAc,CAAE,CAE3D,CACJ,MAEGtI,EAAO,KAAK,CAAE,KAAM,UAAW,MAAOhG,CAAO,CAAE,EAGnD,GAAIqO,IAAa,OAAW,CACxB,IAAIQ,EAAmBvG,IAAU,YAAc4C,EAAQ,iBAAmB,KACpEA,EAAQ,gBACRA,EAAQ,QACdlF,EAAO,KAAK,CAAE,KAAM,UAAW,MAAO6I,GAAoB,CAAE,KAAM,WAAY,MAAOR,CAAU,CAAA,CAClG,CACD,IAAKnG,IAAa,cAAgBA,IAAa,gBAC3C,SAAS7H,CAAC,EAAG,CACb2F,EAAO,KAAK,CAAE,KAAM,oBAAqB,MAAOkF,EAAQ,WAAW,CAAE,EACjEhB,EAAW,IACXlE,EAAO,KAAK,CAAE,KAAM,oBAAqB,MAAOkF,EAAQ,SAAS,CAAE,EACnEhB,EAAW,CAACA,GAEhB,IAAI4E,EAAiBhF,EAAWI,EAAU,EAAG,CAAC,EAC9ClE,EAAO,KAAK,CACR,KAAM,kBACN,MAAO8I,EAAe,eAClC,CAAS,CACJ,CACD,OAAO9I,CACX,CACA,SAASoG,EAAkB2C,EAASnD,EAAM,CAClCmD,EAAQ,QAAQ,GAAG,EAAI,IACvBA,EAAU,GAAG,OAAOA,EAAS,IAAI,EAAE,OAAOA,CAAO,GAErD,IAAI/P,EAAK+P,EAAQ,MAAM,GAAG,EAAGC,EAAchQ,EAAG,CAAC,EAAGiQ,EAAkBjQ,EAAG,CAAC,EACxE,OAAQ4M,EAAI,CACR,IAAK,GACD,OAAOoD,EACX,IAAK,GACD,OAAOC,EACX,QACI,OAAOA,EAAgB,QAAQ,GAAG,GAAK,EACjCA,EAAgB,QAAQ,KAAM,GAAG,EACjC,IAAI,OAAOD,CAAW,CACnC,CACL,CAQA,SAASjD,GAAyBL,EAAcjF,EAAIkF,EAAMrD,EAAOD,EAAgBE,EAAiBH,EAAiB,CAC/G,IAAIpJ,EACAkQ,EAAgBxD,EAAa,cAAeE,EAAOF,EAAa,KAAM1D,EAAY0D,EAAa,UAC/F9C,EAAe,OAAO,KAAK,IAAI,GAAIZ,CAAS,CAAC,EAC7C6D,EAAyBF,EAAK,QAAQ,GAAG,CAAC,EAC1CoD,EACJ,GAAIzG,IAAU,YAAcC,IAAoB,OAAQ,CACpD,IAAI4G,EAAoBxD,EAAK,QAAQ,SACjCU,EAAe8C,EAAkB/G,CAAe,GAChD+G,EAAkBtD,CAAsB,EAExCuD,GAAsBpQ,EAAKqN,EAAa,SAAW,MAAQrN,IAAO,OAAS,OAASA,EAAG4J,CAAY,EACvG,GAAI,CAACwG,EACD,OAAO,KAEXL,EAAU7B,EAAazG,EAAIyI,EAAeE,CAAkB,CAC/D,KACI,CACD,IAAID,EAAoBxD,EAAK,QAAQ,QACjC0D,EAAmBF,EAAkB/G,CAAe,GACpD+G,EAAkBtD,CAAsB,EACxCyD,EAAoBD,EAAiBhH,CAAc,EAAEO,CAAY,EACrE,GAAI,CAAC0G,EACD,OAAO,KAEXP,EAAU7B,EAAazG,EAAIyI,EAAeI,CAAiB,CAC9D,CAID,OAAIP,IAAY,IACL,MAEXA,EAAU3C,EAAkB2C,EAASnD,CAAI,EAEpC,QAAQ,oBAAqB,QAAQ,EAErC,QAAQ,KAAM,GAAG,EACfmD,EACX,CACA,SAAS7B,EAAazG,EAAIpG,EAAGkP,EAAO,CAChC,OAAOA,EAAM9I,EAAG,OAAOpG,CAAC,CAAC,GAAKkP,EAAM,KACxC,CCpaO,SAASC,EAAuBzH,EAAc1H,EAAGrB,EAAI,CACxD,IAAIuO,EACAtF,EAAmBjJ,EAAG,iBACtB0D,EAAgBuF,EAAiBF,CAAY,EAC7CtB,EAAK/D,EAAc,GAAIyF,EAAiBzF,EAAc,eAAgB0F,EAAkB1F,EAAc,gBACtGwI,EAAU/C,EAAe,QAAQ,QAAQC,CAAe,GACxDD,EAAe,QAAQ,QAAQA,EAAe,QAAQ,GAAG,CAAC,CAAC,EAC3DH,EAAY,EACZkC,EAAW,EACXrK,EACJ,GAAI,MAAMQ,CAAC,EACPR,EAAIqL,EAAQ,YAEP7K,GAAK,OAAO,mBAAqBA,GAAK,OAAO,kBAClDR,EAAIqL,EAAQ,aAEX,CACD,GAAI,CAACnL,EAAUM,EAAG,EAAE,EAAG,CACnB,GAAI,CAAC,SAASA,CAAC,EACX,MAAM,IAAI,MAAM,oCAAoC,EAEpDqC,EAAc,OAAS,YACvBrC,GAAK,KAGTkN,EAAK3C,GAAgB7C,EAAc1H,EAAG,CAClC,iBAAkB4H,CAClC,CAAa,EAAGiC,EAAWqD,EAAG,CAAC,EAAGvF,EAAYuF,EAAG,CAAC,EAEtClN,EAAI6J,EAAW,EAAI7J,EAAI,KAAK,IAAI,GAAI,CAAC6J,CAAQ,EAAI7J,EAAI,KAAK,IAAI,GAAI6J,CAAQ,CAC7E,CACD,IAAIW,EAAqBR,GAAsB3H,EAAerC,CAAC,EAC/DR,EAAIgL,EAAmB,gBACvBxK,EAAIwK,EAAmB,aAC1B,CAGD,IAAIe,EACA6D,EAAc/M,EAAc,YAChC,OAAQ+M,EAAW,CACf,IAAK,QACD7D,EAAO,EACP,MACJ,IAAK,OACG7L,EAAUM,EAAG,CAAC,GAAKA,EAAI,GAAK,MAAMA,CAAC,EACnCuL,EAAO,EAGPA,EAAO,GAEX,MACJ,IAAK,SACG7L,EAAUM,EAAG,CAAC,GAAKA,EAAI,GAAK,MAAMA,CAAC,EACnCuL,EAAO,EAGPA,EAAO,GAEX,MACJ,QAEQvL,IAAM,GAAK,MAAMA,CAAC,EAClBuL,EAAO,EAEFvL,EAAI,EACTuL,EAAO,EAGPA,EAAO,EAElB,CACD,OAAOH,GAAc,CAAE,cAAepL,EAAG,gBAAiBR,EAAG,SAAUqK,EAAU,UAAWlC,EAAW,KAAM4D,CAAM,EAAElJ,EAAc,eAAgB+D,EAAI/D,CAAa,CACxK,CCzEO,SAASgN,GAA4B3H,EAAc1H,EAAGC,EAAGtB,EAAI,CAChE,IAAIiJ,EAAmBjJ,EAAG,iBAC1B,GAAI,MAAMqB,CAAC,GAAK,MAAMC,CAAC,EACnB,MAAM,IAAI,WAAW,wBAAwB,EAEjD,IAAI0F,EAAS,CAAA,EACT2J,EAAUH,EAAuBzH,EAAc1H,EAAG,CAAE,iBAAkB4H,CAAgB,CAAE,EACxF2H,EAAUJ,EAAuBzH,EAAczH,EAAG,CAAE,iBAAkB2H,CAAgB,CAAE,EAC5F,GAAI0H,IAAYC,EACZ,OAAO3E,GAAoBlD,EAAc4H,EAAS,CAAE,iBAAkB1H,CAAgB,CAAE,EAE5F,QAASnB,EAAK,EAAG+I,EAAYF,EAAS7I,EAAK+I,EAAU,OAAQ/I,IAAM,CAC/D,IAAIgJ,EAAID,EAAU/I,CAAE,EACpBgJ,EAAE,OAAS,YACd,CACD9J,EAASA,EAAO,OAAO2J,CAAO,EAC9B,IAAIjN,EAAgBuF,EAAiBF,CAAY,EAC7CmD,EAAUxI,EAAc,eAAe,QAAQ,QAAQA,EAAc,eAAe,EACxFsD,EAAO,KAAK,CAAE,KAAM,UAAW,MAAOkF,EAAQ,UAAW,OAAQ,QAAQ,CAAE,EAC3E,QAASqC,EAAK,EAAGwC,EAAYH,EAASrC,EAAKwC,EAAU,OAAQxC,IAAM,CAC/D,IAAIuC,EAAIC,EAAUxC,CAAE,EACpBuC,EAAE,OAAS,UACd,CACD,OAAA9J,EAASA,EAAO,OAAO4J,CAAO,EACH5J,CAC/B,CC3BO,SAASgK,GAAmBjI,EAAc1H,EAAGC,EAAGtB,EAAI,CACvD,IAAIiJ,EAAmBjJ,EAAG,iBACtBiR,EAAQP,GAA4B3H,EAAc1H,EAAGC,EAAG,CACxD,iBAAkB2H,CAC1B,CAAK,EACD,OAAOgI,EAAM,IAAI,SAAUpD,EAAM,CAAE,OAAOA,EAAK,KAAQ,CAAA,EAAE,KAAK,EAAE,CACpE,CCNO,SAASqD,GAA0BnI,EAAc1H,EAAGC,EAAGtB,EAAI,CAC9D,IAAIiJ,EAAmBjJ,EAAG,iBACtBiR,EAAQP,GAA4B3H,EAAc1H,EAAGC,EAAG,CACxD,iBAAkB2H,CAC1B,CAAK,EACD,OAAOgI,EAAM,IAAI,SAAUpD,EAAMsD,EAAO,CAAE,MAAQ,CAC9C,KAAMtD,EAAK,KACX,MAAOA,EAAK,MACZ,OAAQA,EAAK,OACb,OAAQsD,EAAM,SAAU,CAC3B,CAAI,CAAA,CACT,CCbO,SAASC,GAAqBC,EAAIhQ,EAAGiQ,EAAa,CAGrD,QAFIL,EAAQT,EAAuBa,EAAIhQ,EAAGiQ,CAAW,EACjDtK,EAASzF,GAAY,CAAC,EACjBuG,EAAK,EAAGyJ,EAAUN,EAAOnJ,EAAKyJ,EAAQ,OAAQzJ,IAAM,CACzD,IAAI+F,EAAO0D,EAAQzJ,CAAE,EACrBd,EAAO,KAAK,CACR,KAAM6G,EAAK,KACX,MAAOA,EAAK,KACxB,CAAS,CACJ,CACD,OAAO7G,CACX,CCbA,IAAIwK,GAAkB,CAClB,KAAM,OACN,MAAO,WACP,OAAQ,WACR,MAAO,OACP,SAAU,YACV,UAAW,gBACX,WAAY,gBACZ,UAAW,YACX,SAAU,WACd,EACIC,GAAkB,CAClB,KAAM,WACN,MAAO,OACP,OAAQ,WACR,MAAO,OACP,SAAU,gBACV,UAAW,YACX,WAAY,gBACZ,UAAW,YACX,SAAU,WACd,EACO,SAASC,GAAwBC,EAAcpG,EAAY,CAC9D,OAAIA,EACOiG,GAAgBG,CAAY,EAEhCF,GAAgBE,CAAY,CACvC,CCrBO,SAASC,GAA4BlO,EAAegB,EAAMmN,EAAaC,EAAa5I,EAAU,CACjG,IAAI6I,EAAO1N,GAAgBK,EAAM,uBAAwB,EAAG,GAAI,CAAC,EAC7DsN,EAAOtN,EAAK,sBACZuN,EAAOvN,EAAK,sBACZwN,EAAOxN,EAAK,yBACZyN,EAAOzN,EAAK,yBAChBhB,EAAc,qBAAuBqO,EACrC,IAAIK,EAAmB3N,EAAUC,EAAM,mBAAoB,SAAU,CAAC,OAAQ,gBAAiB,eAAe,EAAG,MAAM,EACnH2N,EAAQH,IAAS,QAAaC,IAAS,OACvCG,EAAQN,IAAS,QAAaC,IAAS,OACvCM,EAAS,GACTC,EAAS,GAmBb,GAlBIJ,IAAqB,SACrBG,EAASF,GACLA,GAAU,CAACC,GAASpJ,IAAa,aACjCsJ,EAAS,KAGbD,IACIF,GACAH,EAAOlO,EAAoBkO,EAAM,EAAG,GAAI,CAAC,EACzCC,EAAOnO,EAAoBmO,EAAMD,EAAM,GAAI,EAAE,EAC7CxO,EAAc,yBAA2BwO,EACzCxO,EAAc,yBAA2ByO,IAGzCzO,EAAc,yBAA2B,EACzCA,EAAc,yBAA2B,KAG7C8O,EACA,GAAIF,EAAO,CAGP,GAFAN,EAAOhO,EAAoBgO,EAAM,EAAG,GAAI,MAAS,EACjDC,EAAOjO,EAAoBiO,EAAM,EAAG,GAAI,MAAS,EAC7CD,IAAS,OAETA,EAAO,KAAK,IAAIH,EAAaI,CAAI,UAE5BA,IAAS,OACdA,EAAO,KAAK,IAAIH,EAAaE,CAAI,UAE5BA,EAAOC,EACZ,MAAM,IAAI,WAAW,kBAAkB,OAAOD,EAAM,KAAK,EAAE,OAAOC,CAAI,CAAC,EAE3EvO,EAAc,sBAAwBsO,EACtCtO,EAAc,sBAAwBuO,CACzC,MAEGvO,EAAc,sBAAwBmO,EACtCnO,EAAc,sBAAwBoO,EAG1CS,GAAUC,EACNJ,IAAqB,gBACrB1O,EAAc,aAAe,gBAExB0O,IAAqB,gBAC1B1O,EAAc,aAAe,gBAExB2O,EACL3O,EAAc,aAAe,oBAG7BA,EAAc,aAAe,kBAIjCA,EAAc,aAAe,gBAC7BA,EAAc,sBAAwB,EACtCA,EAAc,sBAAwB,EACtCA,EAAc,yBAA2B,EACzCA,EAAc,yBAA2B,EAEjD,CCzEO,SAAS+O,GAA2BpB,EAAItN,EAAS/D,EAAI,CACpD+D,IAAY,SAAUA,EAAU,OAAO,OAAO,IAAI,GACtD,IAAIkF,EAAmBjJ,EAAG,iBACtB0D,EAAgBuF,EAAiBoI,CAAE,EACnC/H,EAAQ7E,EAAUV,EAAS,QAAS,SAAU,CAAC,UAAW,UAAW,WAAY,MAAM,EAAG,SAAS,EACvGL,EAAc,MAAQ4F,EACtB,IAAIpD,EAAWzB,EAAUV,EAAS,WAAY,SAAU,OAAW,MAAS,EAC5E,GAAImC,IAAa,QAAa,CAACD,GAAyBC,CAAQ,EAC5D,MAAM,WAAW,yBAAyB,EAE9C,GAAIoD,IAAU,YAAcpD,IAAa,OACrC,MAAM,UAAU,8BAA8B,EAElD,IAAIqD,EAAkB9E,EAAUV,EAAS,kBAAmB,SAAU,CAAC,OAAQ,SAAU,eAAgB,MAAM,EAAG,QAAQ,EACtH2O,EAAejO,EAAUV,EAAS,eAAgB,SAAU,CAAC,WAAY,YAAY,EAAG,UAAU,EAClGsB,EAAOZ,EAAUV,EAAS,OAAQ,SAAU,OAAW,MAAS,EACpE,GAAIsB,IAAS,QAAa,CAACe,GAA2Bf,CAAI,EACtD,MAAM,WAAW,+CAA+C,EAEpE,GAAIiE,IAAU,QAAUjE,IAAS,OAC7B,MAAM,UAAU,0BAA0B,EAE9C,IAAIgJ,EAAc5J,EAAUV,EAAS,cAAe,SAAU,CAAC,QAAS,SAAU,MAAM,EAAG,OAAO,EAC9FuF,IAAU,aACV5F,EAAc,SAAWwC,EAAS,cAClCxC,EAAc,gBAAkB6F,EAChC7F,EAAc,aAAegP,GAE7BpJ,IAAU,SACV5F,EAAc,KAAO2B,EACrB3B,EAAc,YAAc2K,EAEpC,CC5BA,IAAIsE,GAA+B,CAC/B,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAM,GACvD,EAIO,SAASC,GAAuBvB,EAAIxR,EAAS6E,EAAM1E,EAAI,CAC1D,IAAIiJ,EAAmBjJ,EAAG,iBAAkB6S,EAAa7S,EAAG,WAAY8S,EAAmB9S,EAAG,iBAAkB+S,EAAuB/S,EAAG,qBAAsBgT,EAAmBhT,EAAG,iBAAkBgM,EAAqBhM,EAAG,mBAE5NiT,EAAmBrT,GAAuBC,CAAO,EACjDkE,EAAUD,GAAsBY,CAAI,EACpCwO,EAAM,OAAO,OAAO,IAAI,EACxBC,EAAU1O,EAAUV,EAAS,gBAAiB,SAAU,CAAC,SAAU,UAAU,EAAG,UAAU,EAC9FmP,EAAI,cAAgBC,EACpB,IAAI/J,EAAkB3E,EAAUV,EAAS,kBAAmB,SAAU,OAAW,MAAS,EAC1F,GAAIqF,IAAoB,QACpB2J,EAAqB,QAAQ3J,CAAe,EAAI,EAGhD,MAAM,WAAW,6BAA6B,OAAOA,CAAe,CAAC,EAEzE8J,EAAI,GAAK9J,EACT,IAAI0H,EAAIsC,GAAc,MAAM,KAAKN,CAAgB,EAAGG,EAAkBC,EAEtE,CAAC,IAAI,EAAGL,EAAYG,CAAgB,EAChC7J,EAAiB0J,EAAW/B,EAAE,UAAU,EAC5CpI,GAAU,CAAC,CAACS,EAAgB,2BAA2B,OAAO2H,EAAE,UAAU,CAAC,EAC3E,IAAIpN,EAAgBuF,EAAiBoI,CAAE,EACvC3N,EAAc,OAASoN,EAAE,OACzBpN,EAAc,WAAaoN,EAAE,WAC7BpN,EAAc,gBAAkBoN,EAAE,GAClCpN,EAAc,eAAiByF,EAC/BsJ,GAA2BpB,EAAItN,EAAS,CAAE,iBAAkBkF,CAAkB,CAAA,EAC9E,IAAIK,EAAQ5F,EAAc,MACtBmO,EACAC,EACJ,GAAIxI,IAAU,WAAY,CACtB,IAAIpD,EAAWxC,EAAc,SACzB2P,EAAUtH,GAAe7F,EAAU,CAAE,mBAAoB8F,CAAkB,CAAE,EACjF6F,EAAcwB,EACdvB,EAAcuB,CACjB,MAEGxB,EAAc,EACdC,EAAcxI,IAAU,UAAY,EAAI,EAE5C,IAAIJ,EAAWzE,EAAUV,EAAS,WAAY,SAAU,CAAC,WAAY,aAAc,cAAe,SAAS,EAAG,UAAU,EACxHL,EAAc,SAAWwF,EACzB0I,GAA4BlO,EAAeK,EAAS8N,EAAaC,EAAa5I,CAAQ,EACtF,IAAIoK,EAAoBjP,GAAgBN,EAAS,oBAAqB,EAAG,IAAM,CAAC,EAChF,GAAI4O,GAA6B,QAAQW,CAAiB,IAAM,GAC5D,MAAM,IAAI,WAAW,qCAAqC,OAAOA,EAAmB;AAAA,kBAAsB,EAAE,OAAOX,GAA8B,GAAG,CAAC,EAEzJ,GAAIW,IAAsB,GACtB5P,EAAc,eAAiB,iBAC/B,MAAM,IAAI,UAAU,uEAAuE,EAE/F,GAAI4P,IAAsB,GACtB5P,EAAc,wBAA0BA,EAAc,sBACtD,MAAM,IAAI,WAAW,4FAA4F,EAErHA,EAAc,kBAAoB4P,EAClC,IAAIC,EAAsB9O,EAAUV,EAAS,sBAAuB,SAAU,CAAC,OAAQ,gBAAgB,EAAG,MAAM,EAChHL,EAAc,oBAAsB6P,EACpC,IAAIlK,EAAiB5E,EAAUV,EAAS,iBAAkB,SAAU,CAAC,QAAS,MAAM,EAAG,OAAO,EAC1FyP,EAAqB,OACzB,OAAItK,IAAa,YACbxF,EAAc,eAAiB2F,EAC/BmK,EAAqB,QAEzB9P,EAAc,YAAcqB,GAAyBhB,EAAS,cAAe,CAAC,OAAQ,OAAQ,QAAQ,EAAG,SAAU,GAAOyP,CAAkB,EAC5I9P,EAAc,YAAce,EAAUV,EAAS,cAAe,SAAU,CAAC,OAAQ,QAAS,SAAU,aAAc,UAAU,EAAG,MAAM,EACrIL,EAAc,aAAee,EAAUV,EAAS,eAAgB,SAAU,CACtE,OACA,QACA,SACA,QACA,WACA,YACA,aACA,YACA,UACH,EAAE,YAAY,EACRsN,CACX,CCzFO,SAASoC,GAAiB1D,EAAS,CAMtC,QALI/I,EAAS,CAAA,EACT0M,EAAa3D,EAAQ,QAAQ,GAAG,EAChC4D,EAAW,EACXC,EAAY,EACZC,EAAS9D,EAAQ,OACd2D,EAAa3D,EAAQ,QAAU2D,EAAa,IAC/CC,EAAW5D,EAAQ,QAAQ,IAAK2D,CAAU,EAC1ChL,GAAUiL,EAAWD,EAAY,mBAAmB,OAAO3D,CAAO,CAAC,EAC/D2D,EAAaE,GACb5M,EAAO,KAAK,CACR,KAAM,UACN,MAAO+I,EAAQ,UAAU6D,EAAWF,CAAU,CAC9D,CAAa,EAEL1M,EAAO,KAAK,CACR,KAAM+I,EAAQ,UAAU2D,EAAa,EAAGC,CAAQ,EAChD,MAAO,MACnB,CAAS,EACDC,EAAYD,EAAW,EACvBD,EAAa3D,EAAQ,QAAQ,IAAK6D,CAAS,EAE/C,OAAIA,EAAYC,GACZ7M,EAAO,KAAK,CACR,KAAM,UACN,MAAO+I,EAAQ,UAAU6D,EAAWC,CAAM,CACtD,CAAS,EAEE7M,CACX,CCzBO,SAAS8M,GAAiBhB,EAAkBG,EAAkBlP,EAAS,CAC1E,IAAIoP,EAAU,WAKd,OAJIpP,IAAY,SACZA,EAAU5C,GAAS4C,CAAO,EAC1BoP,EAAU1O,EAAUV,EAAS,gBAAiB,SAAU,CAAC,SAAU,UAAU,EAAG,UAAU,GAE1FoP,IAAY,WACLY,GAAuB,MAAM,KAAKjB,CAAgB,EAAGG,CAAgB,EAEzEc,GAAuB,MAAM,KAAKjB,CAAgB,EAAGG,CAAgB,CAChF,CClBA,IAAIe,GAAwC,SAAUC,EAAQ,CAC1DC,GAAUF,EAAwBC,CAAM,EACxC,SAASD,GAAyB,CAC9B,IAAIG,EAAQF,IAAW,MAAQA,EAAO,MAAM,KAAM,SAAS,GAAK,KAChE,OAAAE,EAAM,KAAO,sBACNA,CACV,CACD,OAAOH,CACX,EAAE,KAAK,EACA,SAASI,GAAyBjK,EAAG,CACxC,OAAOA,EAAE,OAAS,qBACtB,CCZO,IAAIkK,IACV,SAAUA,EAAkB,CACzBA,EAAiB,WAAgB,aACjCA,EAAiB,OAAY,SAC7BA,EAAiB,SAAc,UACnC,GAAGA,KAAqBA,GAAmB,CAAA,EAAG,++CCJ9C,OAAO,eAAeC,EAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EAC5D,IAAiBC,GAAAD,EAAA,UAAG,OAChBE,EAAUC,GACVC,EAAsCC,EACtCC,GAAuBC,EACvBC,EAAqBC,GACrBC,GAAuBC,GAWvBC,GAAoB,SAAUC,EAAM9V,EAAW+V,EAAO,CACtD,OAAO,IAAI,OAAO,GAAG,OAAOA,EAAQ,IAAM,EAAE,EAAE,UAAWR,GAAqB,kBAAkBvV,EAAW8V,CAAI,CAAC,EAAE,OAAOC,EAAQ,GAAK,GAAG,CAAC,CAC9I,EACIC,GAAiC,SAAUC,EAAuB,CAElE,QADIC,EAAgB,CAAA,EACXzN,EAAK,EAAG9H,EAAK,OAAO,KAAKsV,EAAsB,YAAY,EAAGxN,EAAK9H,EAAG,OAAQ8H,IAAM,CACzF,IAAI0N,EAASxV,EAAG8H,CAAE,EACd2N,EAAYH,EAAsB,aAAaE,CAAM,EACrDE,EAAe,CACf,OAAQD,EAAU,MAC9B,EACY,WAAYA,GAAaA,EAAU,SACnCC,EAAa,OAASR,GAAkBO,EAAU,OAAQH,EAAsB,UAAW,EAAK,GAEhG,UAAWG,GAAaA,EAAU,QAClCC,EAAa,MAAQR,GAAkBO,EAAU,MAAOH,EAAsB,UAAW,EAAI,GAEjGC,EAAcC,CAAM,EAAIE,CAC3B,CACD,OAAOH,CACX,EACII,EAAiB,SAAUC,EAAQC,EAAc,CAAE,MAAQ,CAC3D,OAAQD,EACR,aAAcC,CAClB,GACIC,EAA2B,UAAY,CACvC,SAASA,EAAUjW,EAASkE,EAAS,CACjC,IAAIgS,EAAa,KAAK,YACtB,GAAIA,IAAe,OACf,MAAM,UAAU,2CAA2C,EAE/D,IAAI9C,KAAuB6B,EAAmB,wBAAwBjV,CAAO,EAC7EkE,KAAc+Q,EAAmB,kBAAkB/Q,CAAO,EAC1D,IAAImP,EAAM,OAAO,OAAO,IAAI,EACxBC,KAAc2B,EAAmB,WAAW/Q,EAAS,gBAAiB,SAAU,CAAC,SAAU,UAAU,EAAG,UAAU,EACtHmP,EAAI,cAAgBC,EACpB,IAAI6C,KAAkBlB,EAAmB,WAAW/Q,EAAS,cAAe,SAAU,CAAC,OAAQ,WAAY,UAAU,EAAG,UAAU,EAClIkS,GAAQ,KAAM,cAAeD,CAAW,EAExC,IAAIlF,KAAQkE,GAAqB,eAAec,EAAU,iBAC1D7C,EAAkBC,EAAK,CAAE,EACzB,GAAI,UAAY,CAAE,MAAO,EAAK,CACtC,EAKQ,GAJA+C,GAAQ,KAAM,SAAUnF,EAAE,MAAM,EAEhC,KAAK,4BAA8B4D,EAAoC,kBAAkB,KAAKsB,CAAW,EAErGlF,EAAE,OAAO,OAAQ,CACjB,IAAIoF,EAAkBxB,EAAoC,kBAAkB5D,EAAE,MAAM,EACpF,GAAIkF,KAAeE,EAAiB,CAChC,IAAIC,EAA8BD,EAAgBF,CAAW,EAC7D,KAAK,4BAA4B,UAAYxB,EAAQ,SAASA,EAAQ,SAAS,CAAA,EAAI,KAAK,4BAA4B,SAAS,EAAG2B,EAA4B,SAAS,EACrK,KAAK,4BAA4B,aAAe3B,EAAQ,SAASA,EAAQ,SAAS,CAAA,EAAI,KAAK,4BAA4B,YAAY,EAAG2B,EAA4B,YAAY,EAC9K,KAAK,4BAA4B,aAAe3B,EAAQ,cAAcA,EAAQ,cAAc,CAAA,EAAI,KAAK,4BAA4B,aAAc,EAAI,EAAG2B,EAA4B,aAAc,EAAI,CACvM,CACJ,CAED,KAAK,MAAQd,GAA+B,KAAK,2BAA2B,EAE5E,KAAK,eAAiB,OAAO,KAAK,KAAK,KAAK,EAAE,KAAK,SAAUlK,EAAGC,EAAG,CAAE,OAAO,OAAOD,CAAC,EAAI,OAAOC,CAAC,CAAE,CAAE,CACvG,CACD,OAAA0K,EAAU,UAAU,SAAW,SAAUM,EAAU9W,EAAO,CACtD,IAAI+W,EAAiB,KAAK,eACtB9F,EAAQ,KAAK,MACb+F,EAA8B,KAAK,4BAEvC,GAAIF,IAAa,EACb,OAAOT,EAAe,GAAM,KAAK,EAErC,GAAIS,IAAa9W,EAAM,OAEnB,OAAOqW,EAAe,GAAM,KAAK,EAIrC,MAAQf,GAAqB,aAAatV,EAAO8W,CAAQ,EACrD,OAAOT,EAAe,GAAO,KAAK,EAEtC,IAAIY,EAAoBjX,EAAM,UAAU,EAAG8W,CAAQ,EAC/CI,EAAmBlX,EAAM,UAAU8W,CAAQ,EAE/C,GAAI,iBAAkBE,EAClB,QAASxO,EAAK,EAAG9H,EAAKsW,EAA4B,aAAcxO,EAAK9H,EAAG,OAAQ8H,IAAM,CAClF,IAAI2O,EAAezW,EAAG8H,CAAE,EACxB,GAAIyO,EAAkB,KAAI,EAAG,SAASE,CAAY,EAC9C,OAAOd,EAAe,GAAO,KAAK,CAEzC,CAGL,QAASpH,EAAK,EAAGmI,EAAmBL,EAAgB9H,EAAKmI,EAAiB,OAAQnI,IAAM,CACpF,IAAIoI,EAAUD,EAAiBnI,CAAE,EAC7BO,EAAKyB,EAAMoG,CAAO,EAAGC,EAAS9H,EAAG,OAAQsG,EAAQtG,EAAG,MAAO8G,EAAS9G,EAAG,OAK3E,GAAI,EAAA8H,GACI,CAACA,EAAO,KAAKL,CAAiB,IAKlC,EAAAnB,GACI,CAACA,EAAM,KAAKoB,CAAgB,GAKpC,OAAOb,EAAeC,EAAQe,CAAO,CACxC,CAED,OAAOhB,EAAe,GAAM,KAAK,CACzC,EACIG,EAAU,UAAU,QAAU,SAAUxW,EAAO,CAC3C,OAAAuX,GAAc,KAAM,SAAS,EACtB,IAAIC,GAAgB,KAAMxX,CAAK,CAC9C,EACIwW,EAAU,UAAU,gBAAkB,UAAY,CAC9C,OAAAe,GAAc,KAAM,iBAAiB,EAC9BrC,EAAQ,SAAS,CAAE,KAAMM,EAAmB,uBAAuBiC,GAAuB,KAAM,SAAU,aAAa,CAAC,CACvI,EACIjB,EAAU,mBAAqB,SAAUjW,EAASkE,EAAS,CACvD,SAAW+Q,EAAmB,kBAAkBgB,EAAU,oBAAsBhB,EAAmB,wBAAwBjV,CAAO,EAAGkE,CAAO,CACpJ,EACI+R,EAAU,iBAAmB,IAAI,IAAI,OAAO,KAAKpB,EAAoC,iBAAiB,EAAE,OAAO,SAAUsC,EAAK,CAAE,OAAOA,IAAQ,MAAS,CAAA,CAAC,EACzJlB,EAAU,WAAa,GAChBA,CACX,EAAC,EACDvB,GAAiBD,EAAA,UAAGwB,EACpB,IAAImB,GAA0B,SAAU3C,EAAW4C,EAAS/F,EAAO7R,EAAOuW,EAAc,CACpF,IAAIsB,EAAc,CACd,QAASD,EACT,MAAO/F,EACP,MAAO7R,CACf,EACI,OAAI8X,GAAQ9C,EAAW,aAAa,IAAM,SACtC6C,EAAY,WAAatB,IAAiB,OAASA,IAAiB,OAEjEsB,CACX,EACIL,GAAiC,UAAY,CAC7C,SAASA,EAAgBxC,EAAWhV,EAAO,CAGvC,GAFA,KAAK,UAAYgV,EACjB,KAAK,iBAAmB,EACpB,OAAOhV,GAAS,SAChB,MAAM,UAAU,4BAA4B,EAEhD,KAAK,MAAQ,OAAOA,CAAK,CAC5B,CACD,OAAAwX,EAAgB,UAAU,OAAO,QAAQ,EAAI,UAAY,CACrD,OAAO,IAAIA,EAAgB,KAAK,UAAW,KAAK,KAAK,CAC7D,EACIA,EAAgB,UAAU,KAAO,UAAY,CAIzC,QAFIO,EAAc,KAAK,MAAM,UAAU,KAAK,gBAAgB,EAEnDjB,EAAW,EAAGA,GAAYiB,EAAY,OAAQjB,IAAY,CAC/D,IAAIpW,EAAK,KAAK,UAAU,SAASoW,EAAUiB,CAAW,EAAGzB,EAAS5V,EAAG,OAAQ6V,EAAe7V,EAAG,aAC/F,GAAI4V,EAAQ,CACR,IAAIsB,EAAUG,EAAY,UAAU,EAAGjB,CAAQ,EAC3CjF,EAAQ,KAAK,iBACjB,YAAK,kBAAoBiF,EAClB,CACH,KAAM,GACN,MAAOa,GAAwB,KAAK,UAAWC,EAAS/F,EAAO,KAAK,MAAO0E,CAAY,CAC3G,CACa,CACJ,CAED,MAAO,CAAE,KAAM,GAAM,MAAO,MAAS,CAC7C,EACIiB,EAAgB,UAAU,WAAa,SAAUQ,EAAe,CAC5D,GAAI,OAAOA,GAAkB,SACzB,MAAM,UAAU,4BAA4B,EAEhD,IAAIlB,EAAW,OAAOkB,CAAa,EASnC,IANI,MAAMlB,CAAQ,GAAK,CAACA,KACpBA,EAAW,GAIfA,EAAW,KAAK,MAAM,KAAK,IAAIA,CAAQ,CAAC,GAAKA,EAAW,EAAI,GAAK,GAC7D,EAAAA,EAAW,GAAKA,GAAY,KAAK,MAAM,QAI3C,KAAImB,EAAqB,EACzB,GAAInB,IAAa,EACbmB,EAAqB,MAIrB,SADIC,EAAgB,KAAK,MAChBC,EAASrB,EAAUqB,GAAU,EAAGA,IAAU,CAC/C,IAAI7B,EAAS,KAAK,UAAU,SAAS6B,EAAQD,CAAa,EAAE,OAC5D,GAAI5B,EAAQ,CACR2B,EAAqBE,EACrB,KACH,CACJ,CAIL,QAFIJ,EAAc,KAAK,MAAM,UAAUE,CAAkB,EAEhDE,EAAS,EAAGA,GAAUJ,EAAY,OAAQI,IAAU,CACzD,IAAIzX,EAAK,KAAK,UAAU,SAASyX,EAAQJ,CAAW,EAAGzB,EAAS5V,EAAG,OAAQ6V,EAAe7V,EAAG,aAC7F,GAAI4V,EAAQ,CACR,IAAIsB,EAAUG,EAAY,UAAU,EAAGI,CAAM,EAC7C,OAAOR,GAAwB,KAAK,UAAWC,EAASK,EAAoB,KAAK,MAAO1B,CAAY,CACvG,CACJ,EACT,EACWiB,CACX,EAAC,EACGC,GAAwB,IAAI,QAChC,SAASK,GAAQM,EAAUV,EAAK,CAC5B,SAAWlC,EAAmB,iBAAiBiC,GAAuBW,EAAUV,CAAG,CACvF,CACA,SAASf,GAAQyB,EAAUV,EAAKnS,EAAO,IAC/BiQ,EAAmB,iBAAiBiC,GAAuBW,EAAUV,EAAKnS,CAAK,CACvF,CACA,SAASgS,GAAcc,EAAUC,EAAY,CACzC,GAAI,EAAED,aAAoB7B,GACtB,MAAM,UAAU,mCAAmC,OAAO8B,EAAY,kCAAkC,CAAC,CAEjH,CACA,GAAI,CAEI,OAAO,OAAW,KAClB,OAAO,eAAe9B,EAAU,UAAW,OAAO,YAAa,CAC3D,MAAO,iBACP,SAAU,GACV,WAAY,GACZ,aAAc,EAC1B,CAAS,EAGE,OAAO,eAAeA,EAAU,UAAU,YAAa,SAAU,CACpE,MAAO,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EACtB,CAAK,EAED,OAAO,eAAeA,EAAU,mBAAoB,SAAU,CAC1D,MAAO,EACP,SAAU,GACV,WAAY,GACZ,aAAc,EACtB,CAAK,CACL,MACU,CAEV,CC/QA,OAAO,eAAe+B,GAAS,aAAc,CAAE,MAAO,EAAI,CAAE,EAC5D,IAAIC,GAAcrD,EAClB,OAAO,eAAe,KAAM,YAAa,CACrC,MAAOqD,GAAY,UACnB,WAAY,GACZ,SAAU,GACV,aAAc,EAClB,CAAC","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42]} \ No newline at end of file diff --git a/assets/status-FORkhePO.js b/assets/status-FORkhePO.js new file mode 100644 index 0000000..c06d6a7 --- /dev/null +++ b/assets/status-FORkhePO.js @@ -0,0 +1,72 @@ +import{L as Bo,F as ae,_ as pe,b as e,V as Fo,p as q,u as Ge,a0 as jo,e as qo,m as Ko,a1 as Wo,a2 as Go,a3 as Yo,M as J,a4 as Zo,x as pt,k as $,a5 as Xo,a6 as Ne,a7 as Qo,a8 as Jo,y as ea,q as ye,a9 as ta,aa as na,z as oa,ab as aa,W as ra,K as ia,ac as sa,ad as ca,ae as la,af as da,ag as ua,ah as ma,ai as ha,aj as pa,ak as fa,n as ga,al as _a,h as no,am as va,g as Ct,A as zn,an as Bn,ao as ya,a as ft,P as oo,d as it,J as ao,C as ba,f as rn,ap as Ea,aq as Ta,ar as ka}from"./vendor-GrW-f9CX.js";import{_ as h,x as De,s as S,h as wa,p as mn,L as ro,a as sn,g as hn,j as Se,c as Fn,b as Ie,n as io,y as La,z as Aa}from"./useTitle-dCp14HlU.js";window._showToast=ce;function ce(t){typeof t=="string"&&(t={text:t});const{onClick:n,delay:o,...a}=t,r=Bo({className:`${n||t.destination?"shiny-pill":""}`,gravity:"bottom",position:"center",...a,onClick:()=>{n==null||n(r)}});return o?setTimeout(()=>{r.showToast()},o):r.showToast(),r}function qr(t,n,o,a){const r=ae(t);pe(()=>{r.current=t},[t,o]),pe(()=>{!a||n===null||n===!1||r.current()},[a]),pe(()=>{if(n===null||n===!1)return;const c=setInterval(()=>r.current(),n);return()=>clearInterval(c)},[n])}function $a(t){const n=new URL("/compose/",window.location),{width:o,height:a}=window.screen,r=Math.max(0,(o-600)/2),s=Math.max(0,(a-450)/2),c=Math.min(o,600),l=Math.min(a,450),p=(t==null?void 0:t.uid)||Math.random(),d=window.open(n,"compose"+p,`width=${c},height=${l},left=${r},top=${s}`);return d?d.__COMPOSE__=t:alert("Looks like your browser is blocking popups."),d}const Ia=/^((?!chrome|android).)*safari/i.test(navigator.userAgent);function Pa(){if(Ia){const t=document.createElement("input");t.style.position="absolute",t.style.top="0",t.style.left="0",t.style.opacity="0",document.body.appendChild(t),t.focus(),setTimeout(()=>{document.body.removeChild(t)},500)}}const so={x:()=>h(()=>import("./icons/close-line-YTE7hIJE.js"),[],import.meta.url),heart:()=>h(()=>import("./icons/heart-line-VwvWYh8h.js"),[],import.meta.url),bookmark:()=>h(()=>import("./icons/bookmark-line-D6jQ7QFs.js"),[],import.meta.url),"check-circle":()=>h(()=>import("./icons/check-circle-line-sE41WGxF.js"),[],import.meta.url),"x-circle":()=>h(()=>import("./icons/close-circle-line-qd3g541O.js"),[],import.meta.url),transfer:()=>h(()=>import("./icons/transfer-4-line-Q9QJoxz3.js"),[],import.meta.url),rocket:()=>h(()=>import("./icons/rocket-line-rZbVYYCZ.js"),[],import.meta.url),"arrow-left":()=>h(()=>import("./icons/arrow-left-line-_YC6-XGG.js"),[],import.meta.url),"arrow-right":()=>h(()=>import("./icons/arrow-right-line-PypiEqpu.js"),[],import.meta.url),"arrow-up":()=>h(()=>import("./icons/arrow-up-line-fcuKqhVE.js"),[],import.meta.url),"arrow-down":()=>h(()=>import("./icons/arrow-down-line-0TRJUP_K.js"),[],import.meta.url),earth:()=>h(()=>import("./icons/earth-line-t1Um8wpQ.js"),[],import.meta.url),lock:()=>h(()=>import("./icons/lock-line-0jNHqZpm.js"),[],import.meta.url),unlock:()=>h(()=>import("./icons/unlock-line-w3piJMVb.js"),[],import.meta.url),"eye-close":()=>h(()=>import("./icons/eye-close-line-lBiePPv9.js"),[],import.meta.url),"eye-open":()=>h(()=>import("./icons/eye-2-line-vz_Kw-rK.js"),[],import.meta.url),message:()=>h(()=>import("./icons/mail-line-5XLS6FEo.js"),[],import.meta.url),comment:()=>h(()=>import("./icons/chat-3-line-F0xcdpXY.js"),[],import.meta.url),comment2:()=>h(()=>import("./icons/comment-2-line-xEXuT-Ip.js"),[],import.meta.url),home:()=>h(()=>import("./icons/home-3-line-qJiZhXUH.js"),[],import.meta.url),notification:()=>h(()=>import("./icons/notification-line-olNPLtgS.js"),[],import.meta.url),follow:()=>h(()=>import("./icons/user-follow-line-k_GCWTtp.js"),[],import.meta.url),"follow-add":()=>h(()=>import("./icons/user-add-line-zzW9OULB.js"),[],import.meta.url),poll:[()=>h(()=>import("./icons/chart-bar-line-5r_DfN2w.js"),[],import.meta.url),"90deg"],pencil:()=>h(()=>import("./icons/pencil-line-bKXqElLR.js"),[],import.meta.url),quill:()=>h(()=>import("./icons/quill-pen-line-h_5-FsGz.js"),[],import.meta.url),at:()=>h(()=>import("./icons/at-line-9vJS_Hnl.js"),[],import.meta.url),attachment:()=>h(()=>import("./icons/attachment-line-C2PUa1Ke.js"),[],import.meta.url),upload:()=>h(()=>import("./icons/upload-3-line-Qsjvubiw.js"),[],import.meta.url),gear:()=>h(()=>import("./icons/settings-3-line-kt4MSpRv.js"),[],import.meta.url),more:()=>h(()=>import("./icons/more-3-line-wUD-Yhmj.js"),[],import.meta.url),more2:()=>h(()=>import("./icons/more-1-fill-je1-slyh.js"),[],import.meta.url),external:()=>h(()=>import("./icons/external-link-line-8nOOkmFu.js"),[],import.meta.url),popout:()=>h(()=>import("./icons/external-link-line-8nOOkmFu.js"),[],import.meta.url),popin:[()=>h(()=>import("./icons/external-link-line-8nOOkmFu.js"),[],import.meta.url),"180deg"],plus:()=>h(()=>import("./icons/add-circle-line--O-MfyNy.js"),[],import.meta.url),"chevron-left":()=>h(()=>import("./icons/left-line-Jck0yVmC.js"),[],import.meta.url),"chevron-right":()=>h(()=>import("./icons/right-line-7VBoqLdz.js"),[],import.meta.url),"chevron-down":()=>h(()=>import("./icons/down-line-9PeS5YhF.js"),[],import.meta.url),reply:[()=>h(()=>import("./icons/share-forward-line-4jL-2Q4u.js"),[],import.meta.url),"180deg","horizontal"],thread:()=>h(()=>import("./icons/route-line-2YYy3958.js"),[],import.meta.url),group:()=>h(()=>import("./icons/group-line-JvhJklhQ.js"),[],import.meta.url),bot:()=>h(()=>import("./icons/android-2-line-uPwvVubH.js"),[],import.meta.url),menu:()=>h(()=>import("./icons/rows-4-line-SxGPYpTa.js"),[],import.meta.url),list:()=>h(()=>import("./icons/list-check-line-qNqx9Mm4.js"),[],import.meta.url),search:()=>h(()=>import("./icons/search-2-line-G39AynEw.js"),[],import.meta.url),hashtag:()=>h(()=>import("./icons/hashtag-line-SS3QMu1R.js"),[],import.meta.url),info:()=>h(()=>import("./icons/information-line-8SOch6cR.js"),[],import.meta.url),shortcut:()=>h(()=>import("./icons/lightning-line-JMYUlCZM.js"),[],import.meta.url),user:()=>h(()=>import("./icons/user-4-line-zT_bpOrS.js"),[],import.meta.url),following:()=>h(()=>import("./icons/walk-line-CF7a5s4t.js"),[],import.meta.url),pin:()=>h(()=>import("./icons/pin-line-ULyRQyWZ.js"),[],import.meta.url),unpin:[()=>h(()=>import("./icons/pin-line-ULyRQyWZ.js"),[],import.meta.url),"180deg"],bus:()=>h(()=>import("./icons/bus-2-line-XuQdDZ_w.js"),[],import.meta.url),link:()=>h(()=>import("./icons/link-2-line-BUqp1EwN.js"),[],import.meta.url),history:()=>h(()=>import("./icons/history-line-yoG7K8wL.js"),[],import.meta.url),share:()=>h(()=>import("./icons/share-2-line-PYo-zN94.js"),[],import.meta.url),sparkles:()=>h(()=>import("./icons/sparkles-line-wjZWGZ1a.js"),[],import.meta.url),sparkles2:()=>h(()=>import("./icons/sparkles-2-line-g2FqdZ0R.js"),[],import.meta.url),exit:()=>h(()=>import("./icons/exit-line-l-1uUgI7.js"),[],import.meta.url),translate:()=>h(()=>import("./icons/translate-line-HpDtlqS2.js"),[],import.meta.url),play:()=>h(()=>import("./icons/play-fill-Ey-zv2eL.js"),[],import.meta.url),trash:()=>h(()=>import("./icons/delete-2-line-pjUduCFs.js"),[],import.meta.url),mute:()=>h(()=>import("./icons/volume-mute-line-WthBoXru.js"),[],import.meta.url),unmute:()=>h(()=>import("./icons/volume-line-PZujbN8h.js"),[],import.meta.url),block:()=>h(()=>import("./icons/forbid-circle-line-3FxopGoP.js"),[],import.meta.url),unblock:[()=>h(()=>import("./icons/forbid-circle-line-3FxopGoP.js"),[],import.meta.url),"180deg"],flag:()=>h(()=>import("./icons/flag-1-line-xvcg7G7Q.js"),[],import.meta.url),time:()=>h(()=>import("./icons/time-line-ThP0kTRr.js"),[],import.meta.url),refresh:()=>h(()=>import("./icons/refresh-2-line-t42qqclb.js"),[],import.meta.url),emoji2:()=>h(()=>import("./icons/emoji-2-line--uNVc2IC.js"),[],import.meta.url),filter:()=>h(()=>import("./icons/filter-2-line-KyjbFYlO.js"),[],import.meta.url),filters:()=>h(()=>import("./icons/filter-line-1KEfnWDm.js"),[],import.meta.url),chart:()=>h(()=>import("./icons/chart-line-line-pHaLt6yC.js"),[],import.meta.url),react:()=>h(()=>import("./icons/react-line-YfZPqZem.js"),[],import.meta.url),layout4:()=>h(()=>import("./icons/layout-4-line-FOdnyEcZ.js"),[],import.meta.url),layout5:()=>h(()=>import("./icons/layout-5-line-9Kks7dle.js"),[],import.meta.url),announce:()=>h(()=>import("./icons/announcement-line-MSlAmDH1.js"),[],import.meta.url),alert:()=>h(()=>import("./icons/alert-line-zyc6hy8V.js"),[],import.meta.url),round:()=>h(()=>import("./icons/round-fill-a0rplSmV.js"),[],import.meta.url),"arrow-up-circle":()=>h(()=>import("./icons/arrow-up-circle-line-e3kZqEZN.js"),[],import.meta.url),"arrow-down-circle":()=>h(()=>import("./icons/arrow-down-circle-line-mpqFtRtO.js"),[],import.meta.url),clipboard:()=>h(()=>import("./icons/clipboard-line-9F_Yeo71.js"),[],import.meta.url),"account-edit":()=>h(()=>import("./icons/user-edit-line-9VnWCh0X.js"),[],import.meta.url),"account-warning":()=>h(()=>import("./icons/user-warning-line-gL3RGb1N.js"),[],import.meta.url),keyboard:()=>h(()=>import("./icons/keyboard-line-10AZQcVH.js"),[],import.meta.url),cloud:()=>h(()=>import("./icons/cloud-line-abe0HgFS.js"),[],import.meta.url),month:()=>h(()=>import("./icons/calendar-month-line-VoXZVWAe.js"),[],import.meta.url),media:()=>h(()=>import("./icons/photo-album-line--GdJqjfq.js"),[],import.meta.url),speak:()=>h(()=>import("./icons/radar-line-ndI8IhOG.js"),[],import.meta.url),building:()=>h(()=>import("./icons/building-5-line-ew7lu83B.js"),[],import.meta.url),history2:()=>h(()=>import("./icons/history-2-line-3yIVzoWo.js"),[],import.meta.url),document:()=>h(()=>import("./icons/document-line--D6ooZg1.js"),[],import.meta.url),"arrows-right":()=>h(()=>import("./icons/arrows-right-line-HF4HILdT.js"),[],import.meta.url),code:()=>h(()=>import("./icons/code-line-h4RWLaak.js"),[],import.meta.url),copy:()=>h(()=>import("./icons/copy-2-line-mPSDKieb.js"),[],import.meta.url),quote:()=>h(()=>import("./icons/quote-left-line-NQzeELMO.js"),[],import.meta.url),settings:()=>h(()=>import("./icons/settings-6-line-ZgCBilgF.js"),[],import.meta.url),"heart-break":()=>h(()=>import("./icons/heart-crack-line-P3DoKfTT.js"),[],import.meta.url),"user-x":()=>h(()=>import("./icons/user-x-line-zIdph-gu.js"),[],import.meta.url),minimize:()=>h(()=>import("./icons/arrows-down-line-ovOF9r0o.js"),[],import.meta.url)},Sa={s:12,m:16,l:20,xl:24,xxl:32},jn={},Ra=Fo(function({width:t,height:n,body:o,rotate:a,flip:r}){return e("svg",{viewBox:`0 0 ${t} ${n}`,dangerouslySetInnerHTML:{__html:o},style:{transform:`${a?`rotate(${a})`:""} ${r?"scaleX(-1)":""}`}})},{isShallowEqual:!0,maxSize:Object.keys(so).length,matchesArg:(t,n)=>t.icon===n.icon&&t.body===n.body});function v({icon:t,size:n="m",alt:o,title:a,class:r="",style:s={}}){if(!t)return null;const c=Sa[n];let l=so[t];if(!l)return null;let p,d;Array.isArray(l)&&([l,p,d]=l);const[u,m]=q(jn[t]),_=ae(t);return pe(()=>{u&&_.current===t||((async()=>{const k=await l();m(k.default),jn[t]=k.default})(),_.current=t)},[t]),e("span",{class:`icon ${r}`,title:a||o,style:{width:`${c}px`,height:`${c}px`,...s},children:u&&e(Ra,{icon:t,width:u.width,height:u.height,body:u.body,rotate:p,flip:d})})}function Da(t,n=[]){!t||typeof t!="function"||pe(()=>{const o=new CloseWatcher;return o.addEventListener("close",t),()=>{o.destroy()}},n)}const xa=window.CloseWatcher?Da:()=>{},Ca=document.getElementById("modal-container");function cn({children:t,onClose:n,onClick:o,class:a,minimized:r}){if(!t)return null;const s=ae();pe(()=>{let d=setTimeout(()=>{var m;const u=(m=s.current)==null?void 0:m.querySelector('[tabindex="-1"]');u&&u.focus()},100);return()=>clearTimeout(d)},[]);const c=window.CloseWatcher,l=Ge("esc",()=>{setTimeout(()=>{n==null||n()},0)},{enabled:!c&&!!n,keydown:!1,keyup:!0},[n]);xa(n,[n]),pe(()=>{const d=document.querySelectorAll(".deck-container");if(r){const u=d[d.length-1];u&&u.tabIndex===-1&&u.focus()}else t?d.forEach(u=>{u.setAttribute("inert","")}):d.forEach(u=>{u.removeAttribute("inert")});return()=>{d.forEach(u=>{u.removeAttribute("inert")})}},[t,r]);const p=e("div",{ref:d=>{var u;s.current=d,l.current=((u=d==null?void 0:d.querySelector)==null?void 0:u.call(d,'[tabindex="-1"]'))||d},className:a,onClick:d=>{o==null||o(d),d.target===d.currentTarget&&(n==null||n(d))},tabIndex:r?0:"-1",inert:r,onFocus:d=>{var u,m;try{if(d.target===d.currentTarget){const _=(u=s.current)==null?void 0:u.querySelector('[tabindex="-1"]'),k=!!_&&((m=getComputedStyle(_))==null?void 0:m.pointerEvents)!=="none";_&&k&&_.focus()}}catch{}},children:t});return jo(p,Ca)}const qn={s:16,m:20,l:24,xl:32,xxl:50,xxxl:64},st={},ct=window.OffscreenCanvas?new OffscreenCanvas(1,1):document.createElement("canvas"),Dt=ct.getContext("2d",{willReadFrequently:!0});Dt.imageSmoothingEnabled=!1;function Ma({url:t,size:n,alt:o="",squircle:a,...r}){n=qn[n]||n||qn.m;const s=ae(),c=/missing\.png$/.test(t);return e("span",{ref:s,class:`avatar ${a?"squircle":""} ${st[t]?"has-alpha":""}`,style:{width:n,height:n},title:o,...r,children:!!t&&e("img",{src:t,width:n,height:n,alt:o,loading:"lazy",decoding:"async",crossOrigin:st[t]===void 0&&!c?"anonymous":void 0,onError:l=>{l.target.crossOrigin&&(l.target.crossOrigin=null,l.target.src=t)},onLoad:l=>{s.current&&(s.current.dataset.loaded=!0),st[t]===void 0&&(c||setTimeout(()=>{try{const{width:p,height:d}=l.target;ct.width!==p&&(ct.width=p),ct.height!==d&&(ct.height=d),Dt.drawImage(l.target,0,0);const u=Dt.getImageData(0,0,p,d),m=u.data.filter((_,k)=>k%4===3&&_<=128).length/(u.data.length/4)>.1;m&&s.current.classList.add("has-alpha"),st[t]=m,Dt.clearRect(0,0,p,d)}catch{st[t]=!1}},1))}})})}const Re=De(Ma),Ye=Ko((t,n)=>{let o;try{o=qo()}catch{}let a=(location.hash||"").replace(/^#/,"").trim();a===""&&(a="/");const{to:r,...s}=t;if(a&&a!=="/"&&a.includes("?"))try{const l=new URL(a,location.origin);if(l.searchParams.size){const p=Array.from(l.searchParams.entries()).map(([d,u])=>`${d}=${encodeURIComponent(u)}`).join("&");a=l.pathname+"?"+p}}catch{}const c=a===r||decodeURIComponent(a)===r;return e("a",{ref:n,href:`#${r}`,...s,class:`${t.class||""} ${c?"is-active":""}`,onClick:l=>{var p,d,u;(d=(p=l.currentTarget)==null?void 0:p.parentNode)!=null&&d.closest("a")&&l.stopPropagation(),o&&(S.prevLocation=o),(u=t.onClick)==null||u.call(t,l)}})}),Oa=document.documentElement,It=getComputedStyle(Oa),Va=8;let co=[0,0,0,0];function lo(){const t=It.getPropertyValue("--sai-top"),n=It.getPropertyValue("--sai-right"),o=It.getPropertyValue("--sai-bottom"),a=It.getPropertyValue("--sai-left");co=[Math.max(0,parseInt(t,10)),Math.max(0,parseInt(n,10)),Math.max(0,parseInt(o,10)),Math.max(0,parseInt(a,10))]}requestAnimationFrame(lo);function uo(t=[]){return co.map((o,a)=>(o||Va)+(t[a]||0)).join(" ")}CSS.supports("top: env(safe-area-inset-top)")&&window.addEventListener("resize",lo,{passive:!0});function mo(t){const{containerProps:n,instanceRef:o}=t,a=Wo(),r=o!=null&&o.current?o:ae();return e(Go,{boundingBoxPadding:uo(),repositionFlag:`${a.width}x${a.height}`,unmountOnClose:!0,...t,instanceRef:r,containerProps:{onClick:s=>{var c,l,p;s.target===s.currentTarget&&((l=(c=r.current)==null?void 0:c.closeMenu)==null||l.call(c)),(p=n==null?void 0:n.onClick)==null||p.call(n,s)},...n}})}function Ua(t){const n=ae();return e(Yo,{...t,instanceRef:n,itemProps:{onPointerMove:o=>{var a,r;o.pointerType==="touch"&&((r=(a=n.current)==null?void 0:a.openMenu)==null||r.call(a))},onPointerLeave:o=>{var a,r;o.pointerType==="touch"&&((r=(a=n.current)==null?void 0:a.openMenu)==null||r.call(a))}}})}function Gt({subMenu:t=!1,confirm:n=!0,confirmLabel:o,menuItemClassName:a,menuFooter:r,menuExtras:s,...c}){const{children:l,onClick:p,...d}=c;return n?e(t?Ua:mo,{openTrigger:"clickOnly",direction:"bottom",overflow:"auto",gap:-8,shift:8,menuClassName:"menu-emphasized",...d,menuButton:t?void 0:l,label:t?l:void 0,children:[e(J,{className:a,onClick:p,children:o}),s,r]}):t?e(J,{...c}):p?Zo(l,{onClick:p}):l}function ln({staticUrl:t,alt:n,url:o}){return e("picture",{children:[t&&e("source",{srcset:t,media:"(prefers-reduced-motion: reduce)"}),e("img",{src:o,alt:n,class:"shortcode-emoji emoji",width:"16",height:"16",loading:"lazy",decoding:"async"},n||o)]})}function Na({text:t,emojis:n}){if(!t)return"";if(!(n!=null&&n.length)||t.indexOf(":")===-1)return t;const o=new RegExp(`:(${n.map(r=>r.shortcode).join("|")}):`,"g");return t.split(o).map(r=>{const s=n.find(c=>c.shortcode===r);if(s){const{url:c,staticUrl:l}=s;return e(ln,{staticUrl:l,alt:r,url:c})}return r})}const Ze=pt(Na,(t,n)=>{var o,a;return t.text===n.text&&((o=t.emojis)==null?void 0:o.length)===((a=n.emojis)==null?void 0:a.length)}),Ha=new Intl.Collator("en",{sensitivity:"base"});function za({account:t,instance:n,showAvatar:o,showAcct:a,short:r,external:s,onClick:c}){const{acct:l,avatar:p,avatarStatic:d,id:u,url:m,displayName:_,emojis:k,bot:b}=t;let{username:E}=t;const[w,D,T]=l.match(/([^@]+)(@.+)/i)||[,l],R=E.toLowerCase().trim(),f=(_||"").toLowerCase().trim(),g=f.replace(/(\:(\w|\+|\-)+\:)(?=|[\!\.\?]|$)/g,"").replace(/\s+/g,""),x=g.replace(/[^a-z0-9@\.]/gi,"");return(!r&&(R===f||R===g||R===x||Ha.compare(R,g)===0)||x===l.toLowerCase())&&(E=null),e("a",{class:`name-text ${a?"show-acct":""} ${r?"short":""}`,href:m,target:s?"_blank":null,title:_?`${_} (${T?"":"@"}${l})`:`${T?"":"@"}${l}`,onClick:P=>{if(!s&&!P.shiftKey){if(P.preventDefault(),P.stopPropagation(),c)return c(P);if(P.metaKey||P.ctrlKey||P.shiftKey||P.which===2){const M=`#/${n}/a/${u}`;window.open(M,"_blank");return}S.showAccount={account:t,instance:n}}},children:[o&&e($,{children:[e(Re,{url:d||p,squircle:b})," "]}),_&&!r?e($,{children:[e("b",{children:e(Ze,{text:_,emojis:k})}),!a&&E&&e($,{children:[" ",e("i",{children:["@",E]})]})]}):r?e("i",{children:E}):e("b",{children:E}),a&&e($,{children:[e("br",{}),e("i",{children:[T?"":"@",D,!!T&&e("span",{class:"ib",children:T})]})]})]})}const lt=pt(za,(t,n)=>{const{account:o}=t,{account:a}=n;return(o==null?void 0:o.acct)===(a==null?void 0:a.acct)});Ne.extend(Xo);Ne.extend(Qo);Ne.extend(Jo);const Ba=new Intl.DateTimeFormat;function He({datetime:t,format:n}){if(!t)return null;const[o,a]=ea(p=>p+1,0),r=ye(()=>Ne(t),[t]),[s,c,l]=ye(()=>{if(!r.isValid())return[""+t,"",""];let p;if(n==="micro"){const d=Ne();d.diff(r,"day")<=1||d.year()===r.year()?p=r.twitter():p=Ba.format(r.toDate())}return p||(p=r.fromNow()),[p,r.toISOString(),r.format("LLLL")]},[r,n,o]);return pe(()=>{if(!r.isValid())return;let p,d;function u(){d=requestAnimationFrame(()=>{a(),m()})}function m(){r.diff(Ne(),"minute",!0)<1?p=setTimeout(u,1e4):r.diff(Ne(),"hour",!0)<1&&(p=setTimeout(u,6e4))}return m(),()=>{clearTimeout(p),cancelAnimationFrame(d)}},[]),e("time",{datetime:c,title:l,children:s})}const Fa=[{code:"af",name:"Afrikaans"},{code:"sq",name:"Albanian"},{code:"am",name:"Amharic"},{code:"ar",name:"Arabic"},{code:"hy",name:"Armenian"},{code:"as",name:"Assamese"},{code:"ay",name:"Aymara"},{code:"az",name:"Azerbaijani"},{code:"bm",name:"Bambara"},{code:"eu",name:"Basque"},{code:"be",name:"Belarusian"},{code:"bn",name:"Bengali"},{code:"bho",name:"Bhojpuri"},{code:"bs",name:"Bosnian"},{code:"bg",name:"Bulgarian"},{code:"ca",name:"Catalan"},{code:"ceb",name:"Cebuano"},{code:"ny",name:"Chichewa"},{code:"zh",name:"Chinese"},{code:"zh_HANT",name:"Chinese (Traditional)"},{code:"co",name:"Corsican"},{code:"hr",name:"Croatian"},{code:"cs",name:"Czech"},{code:"da",name:"Danish"},{code:"dv",name:"Dhivehi"},{code:"doi",name:"Dogri"},{code:"nl",name:"Dutch"},{code:"en",name:"English"},{code:"eo",name:"Esperanto"},{code:"et",name:"Estonian"},{code:"ee",name:"Ewe"},{code:"tl",name:"Filipino"},{code:"fi",name:"Finnish"},{code:"fr",name:"French"},{code:"fy",name:"Frisian"},{code:"gl",name:"Galician"},{code:"ka",name:"Georgian"},{code:"de",name:"German"},{code:"el",name:"Greek"},{code:"gn",name:"Guarani"},{code:"gu",name:"Gujarati"},{code:"ht",name:"Haitian Creole"},{code:"ha",name:"Hausa"},{code:"haw",name:"Hawaiian"},{code:"iw",name:"Hebrew"},{code:"hi",name:"Hindi"},{code:"hmn",name:"Hmong"},{code:"hu",name:"Hungarian"},{code:"is",name:"Icelandic"},{code:"ig",name:"Igbo"},{code:"ilo",name:"Ilocano"},{code:"id",name:"Indonesian"},{code:"ga",name:"Irish"},{code:"it",name:"Italian"},{code:"ja",name:"Japanese"},{code:"jw",name:"Javanese"},{code:"kn",name:"Kannada"},{code:"kk",name:"Kazakh"},{code:"km",name:"Khmer"},{code:"rw",name:"Kinyarwanda"},{code:"gom",name:"Konkani"},{code:"ko",name:"Korean"},{code:"kri",name:"Krio"},{code:"ku",name:"Kurdish (Kurmanji)"},{code:"ckb",name:"Kurdish (Sorani)"},{code:"ky",name:"Kyrgyz"},{code:"lo",name:"Lao"},{code:"la",name:"Latin"},{code:"lv",name:"Latvian"},{code:"ln",name:"Lingala"},{code:"lt",name:"Lithuanian"},{code:"lg",name:"Luganda"},{code:"lb",name:"Luxembourgish"},{code:"mk",name:"Macedonian"},{code:"mai",name:"Maithili"},{code:"mg",name:"Malagasy"},{code:"ms",name:"Malay"},{code:"ml",name:"Malayalam"},{code:"mt",name:"Maltese"},{code:"mi",name:"Maori"},{code:"mr",name:"Marathi"},{code:"mni-Mtei",name:"Meiteilon (Manipuri)"},{code:"lus",name:"Mizo"},{code:"mn",name:"Mongolian"},{code:"my",name:"Myanmar (Burmese)"},{code:"ne",name:"Nepali"},{code:"no",name:"Norwegian"},{code:"or",name:"Odia (Oriya)"},{code:"om",name:"Oromo"},{code:"ps",name:"Pashto"},{code:"fa",name:"Persian"},{code:"pl",name:"Polish"},{code:"pt",name:"Portuguese"},{code:"pa",name:"Punjabi"},{code:"qu",name:"Quechua"},{code:"ro",name:"Romanian"},{code:"ru",name:"Russian"},{code:"sm",name:"Samoan"},{code:"sa",name:"Sanskrit"},{code:"gd",name:"Scots Gaelic"},{code:"nso",name:"Sepedi"},{code:"sr",name:"Serbian"},{code:"st",name:"Sesotho"},{code:"sn",name:"Shona"},{code:"sd",name:"Sindhi"},{code:"si",name:"Sinhala"},{code:"sk",name:"Slovak"},{code:"sl",name:"Slovenian"},{code:"so",name:"Somali"},{code:"es",name:"Spanish"},{code:"su",name:"Sundanese"},{code:"sw",name:"Swahili"},{code:"sv",name:"Swedish"},{code:"tg",name:"Tajik"},{code:"ta",name:"Tamil"},{code:"tt",name:"Tatar"},{code:"te",name:"Telugu"},{code:"th",name:"Thai"},{code:"ti",name:"Tigrinya"},{code:"ts",name:"Tsonga"},{code:"tr",name:"Turkish"},{code:"tk",name:"Turkmen"},{code:"ak",name:"Twi"},{code:"uk",name:"Ukrainian"},{code:"ur",name:"Urdu"},{code:"ug",name:"Uyghur"},{code:"uz",name:"Uzbek"},{code:"vi",name:"Vietnamese"},{code:"cy",name:"Welsh"},{code:"xh",name:"Xhosa"},{code:"yi",name:"Yiddish"},{code:"yo",name:"Yoruba"},{code:"zu",name:"Zulu"}];function ja(...t){try{return ta(...t)}catch{return t[2]||!1}}const dn=De(ja),qa=[new Intl.DateTimeFormat().resolvedOptions().locale,...navigator.languages],Ka=dn(qa,Fa.map(t=>t.code.replace("_","-")),"en");function ho(t=!1){if(t){const{contentTranslationTargetLanguage:n}=S.settings;if(n)return n}return Ka}const Wa=new Intl.DisplayNames(navigator.languages,{type:"language"});function Ga(t){try{return Wa.of(t)}catch{return null}}const Yt=De(Ga);function Mt(t,n=[]){return t?(!n.length||t.indexOf(":")===-1||n.forEach(o=>{const{shortcode:a,staticUrl:r,url:s}=o;t=t.replace(new RegExp(`:${a}:`,"g"),`:${a}:`)}),t):""}const qe=document.createElement("div"),Ya=["u-url","mention","hashtag"];function Za(t,n={}){const{emojis:o,postEnhanceDOM:a=()=>{}}=n;let r=t;const s=document.createElement("div");s.innerHTML=r;const c=/{m.setAttribute("target","_blank")}),s.querySelectorAll("a[class]").forEach(m=>{m.classList.forEach(_=>{Ya.includes(_)||m.classList.remove(_)})})),c&&s.querySelectorAll("a[href]").forEach(u=>{/^https?:\/\//i.test(u.textContent.trim())&&(u.classList.add("has-url-text"),er(u))}),c){const d=s.querySelectorAll("a[href]"),u=[];d.forEach(m=>{const _=m.innerText.trim(),k=m.querySelector("*");if(/^@[^@]+(@[^@]+)?$/g.test(_)){const[b,E,w]=_.split("@");k||(!u.some(([D])=>D===E)||u.some(([D,T])=>D===E&&T===w)?(m.innerHTML=`@${E}`,u.push([E,w])):m.innerHTML=`@${E}@${w}`),m.classList.add("mention")}/^#[^#]+$/g.test(_)&&(k||(m.innerHTML=`#${_.slice(1)}`),m.classList.add("mention","hashtag"))})}let p;if(r.includes(":")&&(p=Xt(s),p.forEach(d=>{let u=d.nodeValue.replace(/&/g,"&").replace(//g,">");o&&(u=Mt(u,o)),qe.innerHTML=u,d.replaceWith(...qe.childNodes)})),l&&[...s.querySelectorAll("p")].filter(u=>/^```[^]+```$/g.test(u.innerText.trim())).forEach(u=>{const m=document.createElement("pre");u.querySelectorAll("br").forEach(_=>_.replaceWith(` +`)),m.innerHTML=`${u.innerHTML.trim()}`,u.replaceWith(m)}),l&&[...s.querySelectorAll("p")].filter(m=>/^```/g.test(m.innerText)).forEach(m=>{const _=[m];let k=!1,b=m;for(;b.nextElementSibling;){const E=b.nextElementSibling;if(E&&E.tagName==="P")if(/```$/g.test(E.innerText)){_.push(E),k=!0;break}else _.push(E);else break;b=E}if(k){const E=document.createElement("pre");_.forEach(D=>{D.querySelectorAll("br").forEach(T=>T.replaceWith(` +`))});const w=_.map(D=>D.innerHTML).join(` + +`);E.innerHTML=`${w}`,m.replaceWith(E),_.forEach(D=>D.remove())}}),r.includes("`")&&(p=Xt(s),p.forEach(d=>{let u=d.nodeValue.replace(/&/g,"&").replace(//g,">");/`[^`]+`/g.test(u)&&(u=u.replaceAll(/(`[^]+?`)/g,"$1")),qe.innerHTML=u,d.replaceWith(...qe.childNodes)})),/twitter\.com/i.test(r)&&(p=Xt(s,{rejectFilter:["A"]}),p.forEach(d=>{let u=d.nodeValue.replace(/&/g,"&").replace(//g,">");/@[a-zA-Z0-9_]+@twitter\.com/g.test(u)&&(u=u.replaceAll(/(@([a-zA-Z0-9_]+)@twitter\.com)/g,'$1')),qe.innerHTML=u,d.replaceWith(...qe.childNodes)})),r.includes("#")){let d=null;const u=[...s.querySelectorAll("p")].filter((m,_)=>{let k=0;for(let b=0;b3||k>1&&d&&_===d+1)return d=_,!0});u!=null&&u.length&&u.forEach(m=>{m.classList.add("hashtag-stuffing"),m.title=m.innerText})}return r.includes("{const u=d.getAttribute("width")||d.naturalWidth,m=d.getAttribute("height")||d.naturalHeight;u&&m&&d.style.setProperty("--original-aspect-ratio",`${u}/${m}`)}),a&&queueMicrotask(()=>a(s)),r=s.innerHTML,r}const po=De(Za),Xa=["STYLE","IMG","VIDEO","AUDIO","AREA","MAP","TRACK","EMBED","IFRAME","OBJECT","PICTURE","PORTAL","SOURCE","SVG","MATH","CANVAS","NOSCRIPT","SCRIPT","INPUT","OPTION","TEXTAREA","SLOT","TEMPLATE"],Qa=Object.fromEntries(Xa.map(t=>[t,!0])),Ja=/^(https?:\/\/(www\.)?|xmpp:)/,Zt=30;function er(t){var n;if(!(!t||(n=t.querySelector)!=null&&n.call(t,"*")))try{const o=t.innerText.trim(),a=(o.match(Ja)||[])[0]||"";if(!a)return;const r=o.slice(a.length,a.length+Zt),s=o.slice(a.length+Zt),c=o.slice(a.length).length>Zt;t.innerHTML=`${r}`}catch{}}function Xt(t,n={}){var c;const o=[],a=Object.assign({},Qa,(c=n.rejectFilter)==null?void 0:c.reduce((l,p)=>(l[p]=!0,l),{})),r=document.createTreeWalker(t,NodeFilter.SHOW_TEXT,{acceptNode(l){return a[l.parentNode.nodeName]?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}},!1);let s;for(;s=r.nextNode();)o.push(s);return o}const Ke=document.createElement("div");function tr(t,n){if(!t)return"";const{preProcess:o}=n||{};return Ke.innerHTML=t.replace(/<\/p>/g,`

    + +`).replace(/<\/li>/g,` +`),Ke.querySelectorAll("br").forEach(a=>{a.replaceWith(` +`)}),o==null||o(Ke),Ke.querySelectorAll(".invisible").forEach(a=>{a.remove()}),Ke.querySelectorAll(".ellipsis").forEach(a=>{a.append("...")}),Ke.innerText.replace(/[\r\n]{3,}/g,` + +`).trim()}const Ot=De(tr);function nr(t){const{mentions:n=[],instance:o,previewMode:a,statusURL:r}=t||{};return s=>{var u,m;let{target:c}=s;if(c=c.closest("a"),!c||s.metaKey||s.ctrlKey||s.shiftKey||s.altKey||s.which===2)return;const l=(u=c.previousSibling)==null?void 0:u.textContent,p=l==null?void 0:l.endsWith("@"),d=c.innerText.startsWith("@");if((c.classList.contains("u-url")||c.classList.contains("mention"))&&d||p&&!d){const _=(c.querySelector("span")||c).innerText.trim(),k=_.replace(/^@/,""),b=c.getAttribute("href"),E=n.find(w=>w.url===b)||n.find(w=>w.acct===k||w.username===k);if(E)s.preventDefault(),s.stopPropagation(),S.showAccount={account:E.acct,instance:o};else if(!/^http/i.test(_)){s.preventDefault(),s.stopPropagation();const w=c.getAttribute("href");S.showAccount={account:w,instance:o}}}else if(!a){const _=l==null?void 0:l.endsWith("#");if(c.classList.contains("hashtag")||_){s.preventDefault(),s.stopPropagation();const k=c.innerText.replace(/^#/,"").trim(),b=o?`#/${o}/t/${k}`:`#/t/${k}`;location.hash=b}else(m=S.unfurledLinks[c.href])!=null&&m.url&&r!==c.href&&(s.preventDefault(),s.stopPropagation(),S.prevLocation={pathname:location.hash.replace(/^#/,"")},location.hash=`#${S.unfurledLinks[c.href].url}`)}}}const{locale:or}=new Intl.DateTimeFormat().resolvedOptions(),ar=t=>{const{dateYear:n,hideTime:o,formatOpts:a}=t||{},r=new Date().getFullYear();return Intl.DateTimeFormat(or,{year:n===r?void 0:"numeric",month:"short",day:"numeric",hour:o?void 0:"numeric",minute:o?void 0:"numeric",...a})},rr=De(ar);function ht(t,n){return t instanceof Date||(t=new Date(t)),rr({dateYear:t.getFullYear(),...n}).format(t)}const{locale:ir}=Intl.NumberFormat().resolvedOptions(),Ce=Intl.NumberFormat(ir,{notation:"compact",roundingMode:"floor"}).format,Kn=5e3;function Pt(t){if(t||(t=!0),S.showCompose){S.composerState.minimized?ce({duration:Kn,text:"A draft post is currently minimized. Post or discard it before creating a new one."}):ce({duration:Kn,text:"A post is currently open. Post or discard it before creating a new one."});return}Pa(),S.showCompose=t}const sr={"@mastodon/edit-media-attributes":">=4.1","@mastodon/list-exclusive":">=4.2","@mastodon/filtered-notifications":"~4.3 || >=4.3","@mastodon/fetch-multiple-statuses":"~4.3 || >=4.3"},Wn=/pixelfed/i,Pe=/^(?!.*pixelfed).*$/i,Gn={"@mastodon/lists":Pe,"@mastodon/filters":Pe,"@mastodon/mentions":Pe,"@mastodon/trending-hashtags":Pe,"@mastodon/trending-links":Pe,"@mastodon/post-bookmark":Pe,"@mastodon/post-edit":Pe,"@mastodon/profile-edit":Pe,"@mastodon/profile-private-note":Pe,"@pixelfed/trending":Wn,"@pixelfed/home-include-reblogs":Wn},St={};function Rt(t){try{const{version:n,domain:o}=wa(),a=`${o}-${t}`;if(St[a])return St[a];if(Gn[t])return St[a]=Gn[t].test(n);const r=sr[t];return r?St[a]=na(n,r,{includePrerelease:!0,loose:!0}):!1}catch{return!1}}function Kr({skeleton:t,account:n,avatarSize:o="xl",useAvatarStatic:a=!1,instance:r,external:s,internal:c,onClick:l,showActivity:p=!1,showStats:d=!1,accountInstance:u,hideDisplayName:m=!1,relationship:_={},excludeRelationshipAttrs:k=[]}){if(t)return e("div",{class:"account-block skeleton",children:[e(Re,{size:o}),e("span",{children:[e("b",{children:"████████"}),e("br",{}),e("span",{class:"account-block-acct",children:"██████"})]})]});if(!n)return null;const{id:b,acct:E,avatar:w,avatarStatic:D,displayName:T,username:R,emojis:f,url:g,statusesCount:x,lastStatusAt:P,bot:M,fields:A,note:I,group:U,followersCount:z,createdAt:C,locked:Y}=n;let[le,be,Z]=E.match(/([^@]+)(@.+)/i)||[,E];u&&(Z=`@${u}`);const ke=A==null?void 0:A.find(L=>!!L.verifiedAt&&!!L.value),F={};for(const L in _)k.includes(L)||(F[L]=_[L]);const X=F.following||F.followedBy||F.requested;return e("a",{class:"account-block",href:g,target:s?"_blank":null,title:Z?E:`@${E}`,onClick:L=>{if(!s){if(L.preventDefault(),l)return l(L);c?location.hash=`/${r}/a/${b}`:S.showAccount={account:n,instance:r}}},children:[e(Re,{url:a?D:w||D,size:o,squircle:M}),e("span",{class:"account-block-content",children:[!m&&e($,{children:T?e("b",{children:e(Ze,{text:T,emojis:f})}):e("b",{children:R})})," ",e("span",{class:"account-block-acct",children:[Z?"":"@",be,e("wbr",{}),Z,Y&&e($,{children:[" ",e(v,{icon:"lock",size:"s",alt:"Locked"})]})]}),p&&e("div",{class:"account-block-stats",children:["Posts: ",Ce(x),!!P&&e($,{children:[" ","· Last posted:"," ",ht(P,{hideTime:!0})]})]}),d&&e("div",{class:"account-block-stats",children:[M&&e($,{children:e("span",{class:"tag collapsed",children:[e(v,{icon:"bot"})," Automated"]})}),!!U&&e($,{children:e("span",{class:"tag collapsed",children:[e(v,{icon:"group"})," Group"]})}),X&&e("div",{class:"shazam-container-horizontal",children:e("div",{class:"shazam-container-inner",children:F.following&&F.followedBy?e("span",{class:"tag minimal",children:"Mutual"}):F.requested?e("span",{class:"tag minimal",children:"Requested"}):F.following?e("span",{class:"tag minimal",children:"Following"}):F.followedBy?e("span",{class:"tag minimal",children:"Follows you"}):null})},_.id),!!z&&e("span",{class:"ib",children:[Ce(z)," ",z===1?"follower":"followers"]}),!!ke&&e("span",{class:"verified-field",children:[e(v,{icon:"check-circle",size:"s"})," ",e("span",{dangerouslySetInnerHTML:{__html:po(ke.value,{emojis:f})}})]}),!M&&!U&&!X&&!z&&!ke&&!!C&&e("span",{class:"created-at",children:["Joined"," ",e("time",{datetime:C,children:ht(C,{hideTime:!0})})]})]})]})]})}function Yn(t){const{className:n,disabled:o,...a}=t;return e(oa,{className:n,disabled:o,children:({ref:r,closeMenu:s})=>e(Ye,{...a,ref:r,onClick:({detail:c})=>s(c===0?"Enter":void 0)})})}const cr=[{code:"auto",name:"Detect"},{code:"af",name:"Afrikaans"},{code:"sq",name:"Albanian"},{code:"am",name:"Amharic"},{code:"ar",name:"Arabic"},{code:"hy",name:"Armenian"},{code:"as",name:"Assamese"},{code:"ay",name:"Aymara"},{code:"az",name:"Azerbaijani"},{code:"bm",name:"Bambara"},{code:"eu",name:"Basque"},{code:"be",name:"Belarusian"},{code:"bn",name:"Bengali"},{code:"bho",name:"Bhojpuri"},{code:"bs",name:"Bosnian"},{code:"bg",name:"Bulgarian"},{code:"ca",name:"Catalan"},{code:"ceb",name:"Cebuano"},{code:"ny",name:"Chichewa"},{code:"zh",name:"Chinese"},{code:"co",name:"Corsican"},{code:"hr",name:"Croatian"},{code:"cs",name:"Czech"},{code:"da",name:"Danish"},{code:"dv",name:"Dhivehi"},{code:"doi",name:"Dogri"},{code:"nl",name:"Dutch"},{code:"en",name:"English"},{code:"eo",name:"Esperanto"},{code:"et",name:"Estonian"},{code:"ee",name:"Ewe"},{code:"tl",name:"Filipino"},{code:"fi",name:"Finnish"},{code:"fr",name:"French"},{code:"fy",name:"Frisian"},{code:"gl",name:"Galician"},{code:"ka",name:"Georgian"},{code:"de",name:"German"},{code:"el",name:"Greek"},{code:"gn",name:"Guarani"},{code:"gu",name:"Gujarati"},{code:"ht",name:"Haitian Creole"},{code:"ha",name:"Hausa"},{code:"haw",name:"Hawaiian"},{code:"iw",name:"Hebrew"},{code:"hi",name:"Hindi"},{code:"hmn",name:"Hmong"},{code:"hu",name:"Hungarian"},{code:"is",name:"Icelandic"},{code:"ig",name:"Igbo"},{code:"ilo",name:"Ilocano"},{code:"id",name:"Indonesian"},{code:"ga",name:"Irish"},{code:"it",name:"Italian"},{code:"ja",name:"Japanese"},{code:"jw",name:"Javanese"},{code:"kn",name:"Kannada"},{code:"kk",name:"Kazakh"},{code:"km",name:"Khmer"},{code:"rw",name:"Kinyarwanda"},{code:"gom",name:"Konkani"},{code:"ko",name:"Korean"},{code:"kri",name:"Krio"},{code:"ku",name:"Kurdish (Kurmanji)"},{code:"ckb",name:"Kurdish (Sorani)"},{code:"ky",name:"Kyrgyz"},{code:"lo",name:"Lao"},{code:"la",name:"Latin"},{code:"lv",name:"Latvian"},{code:"ln",name:"Lingala"},{code:"lt",name:"Lithuanian"},{code:"lg",name:"Luganda"},{code:"lb",name:"Luxembourgish"},{code:"mk",name:"Macedonian"},{code:"mai",name:"Maithili"},{code:"mg",name:"Malagasy"},{code:"ms",name:"Malay"},{code:"ml",name:"Malayalam"},{code:"mt",name:"Maltese"},{code:"mi",name:"Maori"},{code:"mr",name:"Marathi"},{code:"mni-Mtei",name:"Meiteilon (Manipuri)"},{code:"lus",name:"Mizo"},{code:"mn",name:"Mongolian"},{code:"my",name:"Myanmar (Burmese)"},{code:"ne",name:"Nepali"},{code:"no",name:"Norwegian"},{code:"or",name:"Odia (Oriya)"},{code:"om",name:"Oromo"},{code:"ps",name:"Pashto"},{code:"fa",name:"Persian"},{code:"pl",name:"Polish"},{code:"pt",name:"Portuguese"},{code:"pa",name:"Punjabi"},{code:"qu",name:"Quechua"},{code:"ro",name:"Romanian"},{code:"ru",name:"Russian"},{code:"sm",name:"Samoan"},{code:"sa",name:"Sanskrit"},{code:"gd",name:"Scots Gaelic"},{code:"nso",name:"Sepedi"},{code:"sr",name:"Serbian"},{code:"st",name:"Sesotho"},{code:"sn",name:"Shona"},{code:"sd",name:"Sindhi"},{code:"si",name:"Sinhala"},{code:"sk",name:"Slovak"},{code:"sl",name:"Slovenian"},{code:"so",name:"Somali"},{code:"es",name:"Spanish"},{code:"su",name:"Sundanese"},{code:"sw",name:"Swahili"},{code:"sv",name:"Swedish"},{code:"tg",name:"Tajik"},{code:"ta",name:"Tamil"},{code:"tt",name:"Tatar"},{code:"te",name:"Telugu"},{code:"th",name:"Thai"},{code:"ti",name:"Tigrinya"},{code:"ts",name:"Tsonga"},{code:"tr",name:"Turkish"},{code:"tk",name:"Turkmen"},{code:"ak",name:"Twi"},{code:"uk",name:"Ukrainian"},{code:"ur",name:"Urdu"},{code:"ug",name:"Uyghur"},{code:"uz",name:"Uzbek"},{code:"vi",name:"Vietnamese"},{code:"cy",name:"Welsh"},{code:"xh",name:"Xhosa"},{code:"yi",name:"Yiddish"},{code:"yo",name:"Yoruba"},{code:"zu",name:"Zulu"}],Zn=48,Qt={};function fo({id:t,children:n}){const o=ae(),a=!!Qt[t],[r,s]=q(!1),[c,l]=q(a||!1),{ref:p}=aa({root:null,rootMargin:`-${Zn}px 0px 0px 0px`,trackVisibility:!0,delay:1e3,onChange:d=>{d&&(s(!0),t&&(Qt[t]=!0))},triggerOnce:!0,skip:c||r});return pe(()=>{if(!o.current)return;const d=o.current.getBoundingClientRect();d.bottom>Zn&&(d.top{let r=mt[Jt];return fetch(`https://${r}/api/v1/${n}/${o}/${encodeURIComponent(t)}`).then(s=>{if(!s.ok)throw new Error(s.statusText);return s.json()}).then(s=>{var c;return{provider:"lingva",content:s.translation,detectedSourceLanguage:(c=s.info)==null?void 0:c.detectedSource,info:s.info}})},{retries:3,onFailedAttempt:r=>{Jt=(Jt+1)%mt.length}})}const go=1e3*60*60,_o=mn(ur,{maxAge:go}),mr=mn(dr(_o),{maxAge:go});function hr({forceTranslate:t,sourceLanguage:n,onTranslate:o,text:a="",mini:r,autoDetected:s}){const c=ho(!0),[l,p]=q("default"),[d,u]=q(null),[m,_]=q(null),[k,b]=q(null),E=ae(),w=n?Yt(n):null,D=Yt(c),T=ae("auto");o||(o=r?mr:_o);const R=async()=>{var f,g;p("loading");try{const{content:x,detectedSourceLanguage:P,provider:M,error:A,...I}=await o(a,T.current,c);if(x){if(P){const U=Yt(P);b(U)}if(M==="lingva"){const U=(g=(f=I==null?void 0:I.info)==null?void 0:f.pronunciation)==null?void 0:g.query;U&&u(U)}_(x),p("default"),!r&&x.trim()!==a.trim()&&(E.current.open=!0,E.current.scrollIntoView({behavior:"smooth",block:"nearest"}))}else p("error")}catch{p("error")}};return pe(()=>{t&&R()},[t]),r?m&&m.trim()!==a.trim()&&k!==D?e(fo,{children:e("div",{class:"status-translation-block-mini",children:[e(v,{icon:"translate",alt:`Auto-translated from ${w}`}),e("output",{lang:c,dir:"auto",title:d||"",children:m})]})}):null:e("div",{class:"status-translation-block",onClick:f=>{f.preventDefault()},children:e("details",{ref:E,children:[e("summary",{children:e("button",{type:"button",onClick:async f=>{f.preventDefault(),f.stopPropagation(),E.current.open=!E.current.open,l!=="loading"&&(m||R())},children:[e(v,{icon:"translate"})," ",e("span",{children:l==="loading"?"Translating…":n&&w&&!k?s?`Translate from ${w} (auto-detected)`:`Translate from ${w}`:"Translate"})]})}),e("div",{class:"translated-block",children:[e("div",{class:"translation-info insignificant",children:[e("select",{class:"translated-source-select",disabled:l==="loading",onChange:f=>{T.current=f.target.value,R()},children:cr.map(f=>e("option",{value:f.code,children:f.code==="auto"?`Auto (${k??"…"})`:f.name}))})," ",e("span",{children:["→ ",D]}),e(ro,{abrupt:!0,hidden:l!=="loading"})]}),l==="error"?e("p",{class:"ui-state",children:"Failed to translate"}):!!m&&e($,{children:[e("output",{class:"translated-content",lang:c,dir:"auto",children:m}),!!d&&e("output",{class:"translated-pronunciation-content",tabIndex:-1,onClick:f=>{f.target.classList.toggle("expand")},children:d})]})]})]})})}const pr=mt!=null&&mt.length?hr:()=>null;function Qn(t,n){const o=sa(t,n);return{set:(a,r)=>ca(a,r,o),get:a=>la(a,o),getMany:a=>da(a,o),del:a=>ua(a,o),delMany:a=>ma(a,o),clear:()=>ha(o),keys:()=>pa(o)}}const Wr={drafts:Qn("drafts-db","drafts-store"),catchup:Qn("catchup-db","catchup-store")};async function Gr(t,n={}){if(!(t!=null&&t.length))return;const{masto:o}=sn(),a=hn(),r=t.reduce((s,c)=>(!s.includes(c.id)&&!n[c.id]&&c.id!==a&&s.push(c.id),s),[]);if(!r.length)return null;try{return(await o.v1.accounts.relationships.fetch({id:r})).reduce((l,p)=>(l[p.id]=p,l),{})}catch{return null}}function fr({poll:t,lang:n,readOnly:o,refresh:a=()=>{},votePoll:r=()=>{}}){const[s,c]=q("default"),{expired:l,expiresAt:p,id:d,multiple:u,options:m,ownVotes:_,voted:k,votersCount:b,votesCount:E,emojis:w}=t,D=!!p&&new Date(p),T=b||E;let R=0;T<=1e3?R=0:T<=1e4?R=1:T<=1e5&&(R=2);const[f,g]=q(!1),x=m.every(P=>P.votesCount!==null);return e("div",{lang:n,dir:"auto",class:`poll ${o?"read-only":""} ${s==="loading"?"loading":""}`,children:[f&&x||k||l?e($,{children:[e("div",{class:"poll-options",children:m.map((P,M)=>{const{title:A,votesCount:I}=P,U=T?(I/T*100).toFixed(R):0,z=I>0&&I===Math.max(...m.map(C=>C.votesCount));return e("div",{class:`poll-option poll-result ${z?"poll-option-leading":""}`,style:{"--percentage":`${U}%`},children:[e("div",{class:"poll-option-title",children:[e("span",{children:e(Ze,{text:A,emojis:w})}),k&&_.includes(M)&&e($,{children:[" ",e(v,{icon:"check-circle"})]})]}),e("div",{class:"poll-option-votes",title:`${I} vote${I===1?"":"s"}`,children:[U,"%"]})]},`${M}-${A}-${I}`)})}),!l&&!k&&e("button",{class:"poll-vote-button plain2",disabled:s==="loading",onClick:P=>{P.preventDefault(),g(!1)},children:[e(v,{icon:"arrow-left",size:"s"})," Hide results"]})]}):e("form",{onSubmit:async P=>{P.preventDefault();const M=P.target,A=new FormData(M),I=[];A.forEach((U,z)=>{z==="poll"&&I.push(U)}),I.length&&(c("loading"),await r(I),c("default"))},children:[e("div",{class:"poll-options",children:m.map((P,M)=>{const{title:A}=P;return e("div",{class:"poll-option",children:e("label",{class:"poll-label",children:[e("input",{type:u?"checkbox":"radio",name:"poll",value:M,disabled:s==="loading",readOnly:o}),e("span",{class:"poll-option-title",children:e(Ze,{text:A,emojis:w})})]})})})}),!o&&e("button",{class:"poll-vote-button",type:"submit",disabled:s==="loading",children:"Vote"})]}),e("p",{class:"poll-meta",children:[!l&&!o&&e("button",{type:"button",class:"plain small",disabled:s==="loading",style:{marginLeft:-8},onClick:P=>{P.preventDefault(),c("loading"),(async()=>(await a(),c("default")))()},title:"Refresh",children:e(v,{icon:"refresh",alt:"Refresh"})}),!k&&!l&&!o&&x&&e("button",{type:"button",class:"plain small",disabled:s==="loading",onClick:P=>{P.preventDefault(),g(!f)},title:f?"Hide results":"Show results",children:[e(v,{icon:f?"eye-open":"eye-close",alt:f?"Hide results":"Show results"})," "]}),!l&&!o&&" ",e("span",{title:E,children:Ce(E)})," vote",E===1?"":"s",!!b&&b!==E&&e($,{children:[" ","• ",e("span",{title:b,children:Ce(b)})," ","voter",b===1?"":"s"]})," ","• ",l?"Ended":"Ending"," ",!!D&&e(He,{datetime:D})]})," "]})}const vo=fa();function gr(t,n){if(!(t!=null&&t.length))return!1;const o=t.filter(s=>{const{filter:c}=s,l=c.context.includes(n);return l?c.expiresAt?new Date(c.expiresAt)>new Date:l:!1});if(!o.length)return!1;if(o.some(s=>s.filter.filterAction==="hide"))return{action:"hide"};if(o.some(s=>s.filter.filterAction==="warn")){const s=o.map(c=>c.filter.title);return{action:"warn",titles:s,titlesStr:s.join(" • ")}}return!1}const pn=De(gr);function _r(t,n,o){var c;const{filtered:a}=t;if(!(a!=null&&a.length)||o&&((c=t.account)==null?void 0:c.id)===o)return!0;const s=pn(a,n);return s?s.action!=="hide":!0}function Yr(t,n){if(!(t!=null&&t.length))return[];if(!n)return t;const o=hn();return t.filter(a=>_r(a,n,o))}const en=document.createElement("div");function tn(t){return t?(en.innerHTML=t,en.querySelectorAll(".invisible").forEach(n=>{n.remove()}),en.innerText.length):0}const dt="speechSynthesis"in window;function Jn(t,n){if(dt)try{speechSynthesis.speaking&&speechSynthesis.cancel();const o=new SpeechSynthesisUtterance(t);n&&(o.lang=n),speechSynthesis.speak(o)}catch(o){alert(o)}}function yo(t){var c;const{spoilerText:n,content:o,poll:a,mediaAttachments:r}=t;let s="";return n!=null&&n.trim()?s+=n:s+=Ot(o),s=s.trim(),(c=a==null?void 0:a.options)!=null&&c.length&&(s+=` + +📊: +${a.options.map(l=>`${a.multiple?"▪️":"•"} ${l.title}`).join(` +`)}`),r!=null&&r.length&&(s+=" "+r.map(l=>({image:"🖼️",gifv:"🎞️",video:"📹",audio:"🎵",unknown:""})[l.type]||"").join("")),s}function xt({className:t="truncated"}={}){const n=ae(),o=ga(({height:a})=>{if(n.current){const{scrollHeight:r}=n.current;let s=r>a;if(s){const{height:c,maxHeight:l}=getComputedStyle(n.current),p=parseInt(l||c,10);s=r>p}n.current.classList.toggle(t,s)}},300);return _a({ref:n,box:"border-box",onResize:o}),n}const un={public:"earth",unlisted:"group",private:"lock",direct:"message"};function nn(t){if(!t)return;let n=Math.floor(t/3600),o=Math.floor(t%3600/60),a=Math.round(t%60);return n===0?`${o}:${a.toString().padStart(2,"0")}`:`${n}:${o.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}`}const vr=/^((?!chrome|android).)*safari/i.test(navigator.userAgent),yr="ALT",on=t=>{const{alt:n,lang:o,index:a,...r}=t;return!n||!n.trim()?null:e("button",{type:"button",class:"alt-badge clickable",...r,onClick:s=>{s.stopPropagation(),s.preventDefault(),S.showMediaAlt={alt:n,lang:o}},title:"Media description",children:[yr,!!a&&e("sup",{children:a})]})},br=140,Er=280,bo=De(t=>t!=null&&t.length?t.length>br||/[\n\r].*[\n\r]/.test(t.trim()):!1);function Eo({class:t="",media:n,to:o,lang:a,showOriginal:r,autoAnimate:s,showCaption:c,allowLongerCaption:l,altIndex:p,onClick:d=()=>{}}){let{blurhash:u,description:m,meta:_,previewRemoteUrl:k,previewUrl:b,remoteUrl:E,url:w,type:D}=n;/no\-preview\./i.test(b)&&(b=null);const{original:T={},small:R,focus:f}=_||{},g=r?T==null?void 0:T.width:(R==null?void 0:R.width)||(T==null?void 0:T.width),x=r?T==null?void 0:T.height:(R==null?void 0:R.height)||(T==null?void 0:T.height),P=r?w:b||w,M=r?E:k||E,A=g&&x,I=A?g>x?"landscape":"portrait":null,U=u?no(u):null,z=ae();let C;if(f){const B=(f.x+1)/2*100,W=(1-f.y)/2*100;C=`${B.toFixed(0)}% ${W.toFixed(0)}%`}const Y=ae(),le=Ct(({x:B,y:W,scale:V})=>{const{current:te}=Y;if(te){const ve=va({x:B,y:W,scale:V});V===1?te.style.removeProperty("transform"):te.style.setProperty("transform",ve),te.closest(".media-zoom").style.touchAction=V<=1.01?"pan-x":""}},[]),[be,Z]=q(!1),ke={enabled:be,draggableUnZoomed:!1,inertiaFriction:.9,tapZoomFactor:2,doubleTapToggleZoom:!0,containerProps:{className:"media-zoom",style:{overflow:"visible"}},onUpdate:le},F=ye(()=>o?B=>e(Ye,{to:o,...B}):"div",[o]),X=M?Tr(M):null,L=D==="unknown"&&X&&/\.(mp4|m4r|m4v|mov|webm)$/i.test(X.pathname),de=D==="unknown"&&X&&/\.(mp3|ogg|wav|m4a|m4p|m4b)$/i.test(X.pathname),K=D==="image"||D==="unknown"&&b&&!L&&!de,ie=ae(),[he,Ae]=q(!1);zn(()=>{if(!K||!r||!ie.current)return;const{offsetWidth:B,offsetHeight:W}=ie.current,V=g{const{children:W,...V}=B;return e("figure",{...V,children:[W,e("figcaption",{class:"media-caption",lang:a,dir:"auto",onClick:te=>{te.preventDefault(),te.stopPropagation(),S.showMediaAlt={alt:m,lang:a}},children:m})]})}:$;if(K)return ke.containerProps.style.display="inherit",zn(()=>{vr&&r&&(async()=>{try{await fetch(P,{mode:"no-cors"}),Y.current.src=P}catch{}})()},[P]),e(Ee,{children:e(F,{ref:ie,class:`media media-image ${t}`,onClick:d,"data-orientation":I,"data-has-alt":!N,style:r?{backgroundImage:`url(${b})`,backgroundSize:he?`${g}px ${x}px`:void 0,...we}:_e,children:r?e(Bn,{...ke,children:e("img",{ref:Y,src:P,alt:m,width:g,height:x,"data-orientation":I,loading:"eager",decoding:"sync",onLoad:B=>{B.target.closest(".media-image").style.backgroundImage="",B.target.closest(".media-zoom").style.display="",Z(!0)},onError:B=>{const{src:W}=B.target;W===P&&M&&P!==M&&(B.target.src=M)}})}):e($,{children:[e("img",{src:P,alt:N?"":m,width:g,height:x,"data-orientation":I,loading:"lazy",style:{objectPosition:C||"center","--anim-duration":`${Math.min(Math.max(Math.max(g,x)/100,5),120)}s`},onLoad:B=>{if(B.target.dataset.loaded=!0,!A){const W=B.target.closest(".media");if(W){const{naturalWidth:V,naturalHeight:te}=B.target;W.dataset.orientation=V>te?"landscape":"portrait",W.style.setProperty("--width",`${V}px`),W.style.setProperty("--height",`${te}px`),W.style.aspectRatio=`${V}/${te}`}}},onError:B=>{const{src:W}=B.target;W===P&&P!==M&&(B.target.src=M)}}),!N&&e(on,{alt:m,lang:a,index:p})]})})});if(D==="gifv"||D==="video"||L){const B=T.duration>0,W=T.duration<31,V=D==="gifv"&&W,te=T.duration<61,ve=nn(T.duration),se=!r&&!s&&V,ne=!r&&s&&V,Le=T.duration>5,j=` + + `;return e(Ee,{children:e(F,{class:`media ${t} media-${V?"gif":"video"} ${ne?"media-contain":""} ${se?"media-hover-animate":""}`,"data-orientation":I,"data-formatted-duration":r?void 0:ve,"data-label":V&&!r&&!ne?"GIF":"","data-has-alt":!N,style:!r&&_e,onClick:Q=>{if(se)try{z.current.pause()}catch{}d(Q)},onMouseEnter:()=>{if(se)try{z.current.play()}catch{}},onMouseLeave:()=>{if(se)try{z.current.pause()}catch{}},onFocus:()=>{if(se)try{z.current.play()}catch{}},onBlur:()=>{if(se)try{z.current.pause()}catch{}},children:[r||ne?V&&r?e(Bn,{...ke,enabled:!0,children:e("div",{ref:Y,dangerouslySetInnerHTML:{__html:j}})}):V?e("div",{class:"video-container",dangerouslySetInnerHTML:{__html:j}}):e("div",{class:"video-container",children:e("video",{slot:"media",src:w,poster:b,width:g,height:x,"data-orientation":I,preload:"auto",autoplay:!0,playsinline:!0,loop:te,controls:!0})}):V?e("video",{ref:z,src:w,poster:b,width:g,height:x,"data-orientation":I,preload:"auto",playsinline:!0,loop:!0,muted:!0,onTimeUpdate:Le?Q=>{const{target:ue}=Q,re=ue==null?void 0:ue.closest(".media-gif");if(re){const Te=ue.currentTime/ue.duration*100;re.style.setProperty("--progress",`${Te}%`)}}:void 0}):e($,{children:[b?e("img",{src:b,alt:N?"":m,width:g,height:x,"data-orientation":I,loading:"lazy",decoding:"async",onLoad:Q=>{if(!A){const ue=Q.target.closest(".media");if(ue){const{naturalHeight:re,naturalWidth:Te}=Q.target;ue.dataset.orientation=Te>re?"landscape":"portrait",ue.style.setProperty("--width",`${Te}px`),ue.style.setProperty("--height",`${re}px`),ue.style.aspectRatio=`${Te}/${re}`}}}}):e("video",{src:w+"#t=0.1",width:g,height:x,"data-orientation":I,preload:"metadata",muted:!0,disablePictureInPicture:!0,onLoadedMetadata:Q=>{if(!B){const{duration:ue}=Q.target;if(ue){const re=nn(ue),Te=Q.target.closest(".media-video");Te&&(Te.dataset.formattedDuration=re)}}}}),e("div",{class:"media-play",children:e(v,{icon:"play",size:"xl"})})]}),!r&&!N&&e(on,{alt:m,lang:a,index:p})]})})}else if(D==="audio"||de){const B=nn(T.duration);return e(Ee,{children:e(F,{class:`media media-audio ${t}`,"data-formatted-duration":r?void 0:B,"data-has-alt":!N,onClick:d,style:!r&&_e,children:[r?e("audio",{src:E||w,preload:"none",controls:!0,autoplay:!0}):b?e("img",{src:b,alt:N?"":m,width:g,height:x,"data-orientation":I,loading:"lazy",onError:W=>{var V,te;try{(te=(V=W.target)==null?void 0:V.remove)==null||te.call(V)}catch{}}}):null,!r&&e($,{children:[e("div",{class:"media-play",children:e(v,{icon:"play",size:"xl"})}),!N&&e(on,{alt:m,lang:a,index:p})]})]})})}}function Tr(t){try{return new URL(t,location.origin)}catch{return null}}const kr=280,wr=140;function Lr(t,n){return n.v1.accounts.$select(t).fetch()}const Ar=mn(Lr),ut={public:"Public",unlisted:"Unlisted",private:"Followers only",direct:"Private mention"},$r=window.ontouchstart!==void 0&&/iPad|iPhone|iPod/.test(navigator.userAgent),Ir=new Intl.RelativeTimeFormat,eo=80;function Pr(t){var n;return(n=t==null?void 0:t.options)!=null&&n.length?`📊: +${t.options.map(o=>`- ${o.title}${o.votesCount>=0?` (${o.votesCount})`:""}`).join(` +`)}`:""}function an(t){const{spoilerText:n,content:o,poll:a}=t;return(n?`${n} + +`:"")+Ot(o)+Pr(a)}const to=pt(({post:t,instance:n,previewMode:o})=>{const{content:a,emojis:r,language:s,mentions:c,url:l}=t;return e("div",{lang:s,dir:"auto",class:"inner-content",onClick:nr({mentions:c,instance:n,previewMode:o,statusURL:l}),dangerouslySetInnerHTML:{__html:po(a,{emojis:r,postEnhanceDOM:p=>{p.querySelectorAll('a.u-url[target="_blank"]').forEach(d=>{/http/i.test(d.innerText.trim())||d.removeAttribute("target")})}})}})},(t,n)=>{const{post:o}=t,{post:a}=n;return o.content===a.content}),Sr={s:"small",m:"medium",l:"large"},Rr=De(t=>{if(t=t==null?void 0:t.trim(),(t==null?void 0:t.length)>500)return null;const o=ya(t)[0];return o!=null&&o.lang&&(o==null?void 0:o.accuracy)>.5?o.lang:null});function Xe({statusID:t,status:n,instance:o,size:a="m",contentTextWeight:r,readOnly:s,enableCommentHint:c,withinContext:l,skeleton:p,enableTranslate:d,forceTranslate:u,previewMode:m,onMediaClick:_,quoted:k,onStatusLinkClick:b=()=>{},showFollowedTags:E,allowContextMenu:w,showActionsBar:D,showReplyParent:T,mediaFirst:R}){var Un,Nn,Hn;if(p)return e("div",{class:`status skeleton ${R?"status-media-first small":""}`,children:[!R&&e(Re,{size:"xxl"}),e("div",{class:"container",children:[e("div",{class:"meta",children:[(a==="s"||R)&&e(Re,{size:"m"})," ███ ████████"]}),e("div",{class:"content-container",children:[R&&e("div",{class:"media-first-container"}),e("div",{class:`content ${R?"media-first-content":""}`,children:e("p",{children:"████ ████████"})})]})]})]});const{masto:f,instance:g,authenticated:x}=sn({instance:o}),{instance:P}=sn(),M=g===P;let A=Se(t||(n==null?void 0:n.id),g);const I=ft(S);if(n||(n=I.statuses[A]||I.statuses[t],A=Se(n==null?void 0:n.id,g)),!n)return null;const{account:{acct:U,avatar:z,avatarStatic:C,id:Y,url:le,displayName:be,username:Z,emojis:ke,bot:F,group:X},id:L,repliesCount:de,reblogged:K,reblogsCount:ie,favourited:he,favouritesCount:Ae,bookmarked:fe,poll:ge,muted:we,sensitive:_e,spoilerText:ee,visibility:N,language:Ee,editedAt:B,filtered:W,card:V,createdAt:te,inReplyToId:ve,inReplyToAccountId:se,content:ne,mentions:Le,mediaAttachments:j,reblog:Q,uri:ue,url:re,emojis:Te,tags:zr,_deleted:ze,_pinned:Be,emojiReactions:gt}=n,[fn,ko]=q(null);pe(()=>{if(!ne||Ee)return;let i;return i=setTimeout(()=>{let y=Rr(Ot(ne,{preProcess:O=>{O.querySelectorAll(".mention, .hashtag, pre, code, a:has(.invisible)").forEach(H=>{H.remove()}),O.querySelectorAll("a").forEach(H=>{const me=H.innerText.trim();(me.startsWith("https://")||me.startsWith("http://"))&&H.remove()})}}));ko(y)},1e3),()=>clearTimeout(i)},[ne,Ee]);const oe=Ee||fn,Vt=!!(j!=null&&j.length);R&&Vt&&(a="s");const Qe=ye(()=>hn(),[]),Me=ye(()=>Qe&&Qe===Y,[Y,Qe]),wo=oo(vo),Je=!Me&&!s&&!m&&pn(W,wo);if((Je==null?void 0:Je.action)==="hide")return null;const et=i=>{i.shiftKey};if(a!=="l"&&Je)return e(Nr,{status:n,filterInfo:Je,instance:g,containerProps:{onMouseEnter:et},showFollowedTags:!0,quoted:k});const Oe=new Date(te),gn=new Date(B);let Ut=Le==null?void 0:Le.find(i=>i.id===se);!Ut&&se===L&&(Ut={url:le,username:Z,displayName:be});const[_t,_n]=q(Ut);if(!l&&!_t&&se){const i=S.accounts[se];i?_n(i):Ar(se,f).then(y=>{_n(y),S.accounts[y.id]=y}).catch(y=>{})}const vn=se===Qe||(Le==null?void 0:Le.find(i=>i.id===Qe)),xe=ye(()=>!!(Fn.account.get("preferences")||{})["reading:expand:spoilers"],[]),yn=ye(()=>(Fn.account.get("preferences")||{})["reading:expand:media"]||"default",[]),$e=m||xe||!!I.spoilers[L],tt=m||yn==="show_all"||!!I.spoilersMedia[L];if(Q)return X?e("div",{"data-state-post-id":A,class:"status-group",onMouseEnter:et,children:[e("div",{class:"status-pre-meta",children:[e(v,{icon:"group",size:"l",alt:"Group"})," ",e(lt,{account:n.account,instance:g,showAvatar:!0})]}),e(Xe,{status:t?null:Q,statusID:t?Q.id:null,instance:g,size:a,contentTextWeight:r,readOnly:s,mediaFirst:R})]}):e("div",{"data-state-post-id":A,class:"status-reblog",onMouseEnter:et,children:[e("div",{class:"status-pre-meta",children:[e(v,{icon:"rocket",size:"l"})," ",e(lt,{account:n.account,instance:g,showAvatar:!0})," ",e("span",{children:"boosted"})]}),e(Xe,{status:t?null:Q,statusID:t?Q.id:null,instance:g,size:a,contentTextWeight:r,readOnly:s,enableCommentHint:!0,mediaFirst:R})]});const Lo=Ct(({children:i})=>e("div",{"data-state-post-id":A,class:"status-followed-tags",onMouseEnter:et,children:[e("div",{class:"status-pre-meta",children:[e(v,{icon:"hashtag",size:"l"})," ",I.statusFollowedTags[A].slice(0,3).map(y=>e(Ye,{to:g?`/${g}/t/${y}`:`/t/${y}`,class:"status-followed-tag-item",children:y},y))]}),i]}),[A,g,I.statusFollowedTags[A]]),Ao=E&&((Un=I.statusFollowedTags[A])!=null&&Un.length)?Lo:$,G=a==="l",[Nt,$o]=q(u),bn=ho(!0),Io=I.settings.contentTranslationHideLanguages||[],{contentTranslation:Ht,contentTranslationAutoInline:En}=I.settings;Ht||(d=!1);const Tn=ye(()=>{if(!Ht||!En||s||l&&!G||m||ee||_e||ge||V||j!=null&&j.length)return!1;const i=tn(ne);return i>0&&i<=wr},[Ht,En,s,l,G,m,ee,_e,ge,V,j,ne]),[zt,vt]=q(!1),[Po,Bt]=q(!1),kn=xt(),wn=xt(),So=xt(),Ft="Read more →",Fe=ae(null),nt="Sorry, your current logged-in instance can't interact with this post from another instance.",Ln=Ct(()=>Math.max(Math.round((ee.length+tn(ne))/140)||1,1),[ee,ne]),An=ht(Oe),$n=B&&ht(gn);let ot=x&&N!=="direct"&&N!=="private";N==="private"&&Me&&(ot=!0);const yt=i=>{var y;if(!M||!x)return alert(nt);(i!=null&&i.shiftKey||(y=i==null?void 0:i.syntheticEvent)!=null&&y.shiftKey)&&$a({replyToStatus:n})||Pt({replyToStatus:n})},jt=ye(()=>j.some(i=>{var y,O;return!((O=(y=i.description)==null?void 0:y.trim)!=null&&O.call(y))}),[j]),In=ye(()=>Math.floor((new Date-Oe)/(1e3*60*60*24*30)),[Oe]),Br=async()=>{if(!M||!x)return alert(nt),!1;try{if(!K){let i="Boost this post?";if(jt&&(i+=` + +⚠️ Some media have no descriptions.`),!confirm(i))return!1}if(S.statuses[A]={...n,reblogged:!K,reblogsCount:ie+(K?-1:1)},K){const i=await f.v1.statuses.$select(L).unreblog();return Ie(i,g),!0}else{const i=await f.v1.statuses.$select(L).reblog();return Ie(i,g),!0}}catch{return S.statuses[A]=n,!1}},qt=async()=>{if(!M||!x)return alert(nt),!1;try{if(S.statuses[A]={...n,reblogged:!K,reblogsCount:ie+(K?-1:1)},K){const i=await f.v1.statuses.$select(L).unreblog();Ie(i,g)}else{const i=await f.v1.statuses.$select(L).reblog();Ie(i,g)}return!0}catch{return S.statuses[A]=n,!1}},Pn=async()=>{if(!M||!x)return alert(nt),!1;try{if(S.statuses[A]={...n,favourited:!he,favouritesCount:Ae+(he?-1:1)},he){const i=await f.v1.statuses.$select(L).unfavourite();Ie(i,g)}else{const i=await f.v1.statuses.$select(L).favourite();Ie(i,g)}return!0}catch{return S.statuses[A]=n,!1}},Kt=async()=>{try{const i=await Pn();!G&&i&&ce(he?`Unliked @${Z||U}'s post`:`Liked @${Z||U}'s post`)}catch{}},Sn=async()=>{if(Rt("@mastodon/post-bookmark")){if(!M||!x)return alert(nt),!1;try{if(S.statuses[A]={...n,bookmarked:!fe},fe){const i=await f.v1.statuses.$select(L).unbookmark();Ie(i,g)}else{const i=await f.v1.statuses.$select(L).bookmark();Ie(i,g)}return!0}catch{return S.statuses[A]=n,!1}}},Rn=async()=>{try{const i=await Sn();!G&&i&&ce(fe?`Unbookmarked @${Z||U}'s post`:`Bookmarked @${Z||U}'s post`)}catch{}},bt=!!oe&&oe!==bn&&!dn([oe],[bn])&&!Io.find(i=>oe===i||dn([oe],[i])),Dn=ae(),xn=ae();async function Ro(i){var H,me,je,Wt;i&&(Dn.current=f.v1.statuses.$select(t).rebloggedBy.list({limit:eo}),xn.current=f.v1.statuses.$select(t).favouritedBy.list({limit:eo}));const[{value:y},{value:O}]=await Promise.allSettled([Dn.current.next(),xn.current.next()]);if((H=y.value)!=null&&H.length||(me=O.value)!=null&&me.length){const Ve=[];return(je=y.value)!=null&&je.length&&Ve.push(...y.value.map(Ue=>(Ue._types=["reblog"],Ue))),(Wt=O.value)!=null&&Wt.length&&Ve.push(...O.value.map(Ue=>(Ue._types=["favourite"],Ue))),{value:Ve,done:y.done&&O.done}}return{value:[],done:!0}}const Do=ae(),Cn=["public","unlisted"].includes(N),xo=["public","unlisted","private"].includes(N),Mn=e($,{children:[!G&&M&&e($,{children:e("div",{class:"menu-control-group-horizontal status-menu",children:[e(J,{onClick:yt,children:[e(v,{icon:"comment"}),e("span",{children:de>0?Ce(de):"Reply"})]}),e(Gt,{subMenu:!0,confirmLabel:e($,{children:[e(v,{icon:"rocket"}),e("span",{children:K?"Unboost":"Boost"})]}),className:`menu-reblog ${K?"checked":""}`,menuExtras:e(J,{onClick:()=>{Pt({draftStatus:{status:` +${re}`}})},children:[e(v,{icon:"quote"}),e("span",{children:"Quote"})]}),menuFooter:jt&&!K?e("div",{class:"footer",children:[e(v,{icon:"alert"}),"Some media have no descriptions."]}):In>=3&&e("div",{class:"footer",children:[e(v,{icon:"info"}),e("span",{children:["Old post (",e("strong",{children:Ir.format(-In,"month")}),")"]})]}),disabled:!ot,onClick:async()=>{try{const i=await qt();!G&&i&&ce(K?`Unboosted @${Z||U}'s post`:`Boosted @${Z||U}'s post`)}catch{}},children:[e(v,{icon:"rocket"}),e("span",{children:ie>0?Ce(ie):K?"Unboost":"Boost…"})]}),e(J,{onClick:Kt,className:`menu-favourite ${he?"checked":""}`,children:[e(v,{icon:"heart"}),e("span",{children:Ae>0?Ce(Ae):he?"Unlike":"Like"})]}),Rt("@mastodon/post-bookmark")&&e(J,{onClick:Rn,className:`menu-bookmark ${fe?"checked":""}`,children:[e(v,{icon:"bookmark"}),e("span",{children:fe?"Unbookmark":"Bookmark"})]})]})}),!G&&M&&(G||D)&&e(it,{}),(G||D)&&e($,{children:e(J,{onClick:()=>{S.showGenericAccounts={heading:"Boosted/Liked by…",fetchAccounts:Ro,instance:g,showReactions:!0,postID:A}},children:[e(v,{icon:"react"}),e("span",{children:["Boosted/Liked by",e("span",{class:"more-insignificant",children:"…"})]})]})}),!R&&e($,{children:[(d||!oe||bt)&&e(it,{}),d?e("div",{class:dt?"menu-horizontal":"",children:[e(J,{disabled:Nt,onClick:()=>{$o(!0)},children:[e(v,{icon:"translate"}),e("span",{children:"Translate"})]}),dt&&e(J,{onClick:()=>{const i=an(n);i&&Jn(i,oe)},children:[e(v,{icon:"speak"}),e("span",{children:"Speak"})]})]}):(!oe||bt)&&e("div",{class:dt?"menu-horizontal":"",children:[e(Yn,{to:`${g?`/${g}`:""}/s/${L}?translate=1`,children:[e(v,{icon:"translate"}),e("span",{children:"Translate"})]}),dt&&e(J,{onClick:()=>{const i=an(n);i&&Jn(i,oe)},children:[e(v,{icon:"speak"}),e("span",{children:"Speak"})]})]})]}),(!G&&M||d||!oe||bt)&&e(it,{}),!G&&e($,{children:e(Yn,{to:g?`/${g}/s/${L}`:`/s/${L}`,onClick:i=>{b(i,n)},children:[e(v,{icon:"arrows-right"}),e("small",{children:["View post by @",Z||U,e("br",{}),e("span",{class:"more-insignificant",children:[ut[N]," • ",An]})]})]})}),!!B&&e($,{children:e(J,{onClick:()=>{vt(L)},children:[e(v,{icon:"history"}),e("small",{children:["Show Edit History",e("br",{}),e("span",{class:"more-insignificant",children:["Edited: ",$n]})]})]})}),e(J,{href:re,target:"_blank",children:[e(v,{icon:"external"}),e("small",{class:"menu-double-lines",children:Vr(re)})]}),e("div",{class:"menu-horizontal",children:[e(J,{onClick:()=>{try{navigator.clipboard.writeText(re),ce("Link copied")}catch{ce("Unable to copy link")}},children:[e(v,{icon:"link"}),e("span",{children:"Copy"})]}),Cn&&(navigator==null?void 0:navigator.share)&&((Nn=navigator==null?void 0:navigator.canShare)==null?void 0:Nn.call(navigator,{url:re}))&&e(J,{onClick:()=>{try{navigator.share({url:re})}catch{alert("Sharing doesn't seem to work.")}},children:[e(v,{icon:"share"}),e("span",{children:"Share…"})]})]}),Cn&&G&&e(J,{onClick:()=>{Bt(!0)},children:[e(v,{icon:"code"}),e("span",{children:"Embed post"})]}),(Me||vn)&&e(it,{}),(Me||vn)&&e(J,{onClick:async()=>{try{const i=await f.v1.statuses.$select(L)[we?"unmute":"mute"]();Ie(i,g),ce(we?"Conversation unmuted":"Conversation muted")}catch{ce(we?"Unable to unmute conversation":"Unable to mute conversation")}},children:we?e($,{children:[e(v,{icon:"unmute"}),e("span",{children:"Unmute conversation"})]}):e($,{children:[e(v,{icon:"mute"}),e("span",{children:"Mute conversation"})]})}),Me&&xo&&e(J,{onClick:async()=>{try{const i=await f.v1.statuses.$select(L)[Be?"unpin":"pin"]();ce(Be?"Post unpinned from profile":"Post pinned to profile")}catch{ce(Be?"Unable to unpin post":"Unable to pin post")}},children:Be?e($,{children:[e(v,{icon:"unpin"}),e("span",{children:"Unpin from profile"})]}):e($,{children:[e(v,{icon:"pin"}),e("span",{children:"Pin to profile"})]})}),Me&&e("div",{class:"menu-horizontal",children:[Rt("@mastodon/post-edit")&&e(J,{onClick:()=>{Pt({editStatus:n})},children:[e(v,{icon:"pencil"}),e("span",{children:"Edit"})]}),G&&e(Gt,{subMenu:!0,confirmLabel:e($,{children:[e(v,{icon:"trash"}),e("span",{children:"Delete this post?"})]}),menuItemClassName:"danger",onClick:()=>{(async()=>{try{await f.v1.statuses.$select(L).remove();const i=io(L,g);i._deleted=!0,ce("Deleted")}catch{ce("Unable to delete")}})()},children:[e(v,{icon:"trash"}),e("span",{children:"Delete…"})]})]}),!Me&&G&&e($,{children:[e(it,{}),e(J,{className:"danger",onClick:()=>{S.showReportModal={account:n.account,post:n}},children:[e(v,{icon:"flag"}),e("span",{children:"Report post…"})]})]})]}),On=ae(),[Et,at]=q(!1),[Tt,kt]=q({}),wt=w||!G&&!m&&!ze&&!k,Co=ao($r&&wt?i=>{var me;if(i.pointerType==="mouse")return;const{clientX:y,clientY:O}=((me=i.touches)==null?void 0:me[0])||i,H=i.target.closest("a");H&&Fe.current.contains(H)&&!H.getAttribute("href").startsWith("#")||(i.preventDefault(),kt({anchorPoint:{x:y,y:O},direction:"right"}),at(!0))}:null,{threshold:600,captureEvent:!0,detect:"touch",cancelOnMovement:2}),Lt=!s&&!m&&!k,Mo=Ge("r, shift+r",yt,{enabled:Lt}),Oo=Ge("f, l",Kt,{enabled:Lt}),Vo=Ge("d",Rn,{enabled:Lt}),Uo=Ge("shift+b",()=>{(async()=>{try{const i=await qt();!G&&i&&ce(K?`Unboosted @${Z||U}'s post`:`Boosted @${Z||U}'s post`)}catch{}})()},{enabled:Lt&&ot}),No=Ge("x",i=>{const y=document.activeElement.closest(".status-link, .status-focus");if(y){const O=y.querySelector(".spoiler-button:not(.spoiling)");if(O)i.stopPropagation(),O.click();else{const H=y.querySelector(".spoiler-media-button:not(.spoiling)");H&&(i.stopPropagation(),H.click())}}}),At=j.slice(0,G?void 0:4),$t=j.length>1&&At.some(i=>!!i.description&&!bo(i.description)),Ho=ye(()=>{if(!$t)return null;const i=[];return At.forEach((y,O)=>{if(!y.description)return;const H=i.findIndex(me=>me.media.description===y.description);H===-1?i.push({media:y,indices:[O]}):i[H].indices.push(O)}),i.map(({media:y,indices:O})=>e("div",{"data-caption-index":O.map(H=>H+1).join(" "),onClick:H=>{H.preventDefault(),H.stopPropagation(),S.showMediaAlt={alt:y.description,lang:oe}},title:y.description,children:[e("sup",{children:O.map(H=>H+1).join(" ")})," ",y.description]},y.id))},[$t,At,oe]),rt=ye(()=>{var i;return!!ve&&se===((i=n.account)==null?void 0:i.id)||!!I.statusThreadNumber[A]},[ve,se,(Hn=n.account)==null?void 0:Hn.id,I.statusThreadNumber[A]]),zo=ye(()=>c&&!rt&&!l&&!ve&&N==="public"&&de>0,[c,rt,l,ve,de,N]),Vn=ye(()=>{if(V||ge||_e||ee||j!=null&&j.length||rt||l||ve||de<=0||!/[???︖❓❔⁇⁈⁉¿‽؟]/.test(ne))return!1;const O=tn(ne);if(O>0&&O<=kr)return!0},[V,ge,_e,ee,j,Q,rt,l,ve,de,ne]);return e(Ao,{children:[T&&!!(ve&&se)&&e(Ur,{sKey:A}),e("article",{"data-state-post-id":A,ref:i=>{var O;Fe.current=i;const y=((O=i==null?void 0:i.closest)==null?void 0:O.call(i,".timeline-item, .timeline-item-alt, .status-link, .status-focus"))||i;Mo.current=y,Oo.current=y,Vo.current=y,Uo.current=y,No.current=y},tabindex:"-1",class:`status ${!l&&ve&&_t?"status-reply-to":""} visibility-${N} ${Be?"status-pinned":""} ${Sr[a]} ${ze?"status-deleted":""} ${k?"status-card":""} ${Et?"status-menu-open":""} ${R&&Vt?"status-media-first":""}`,onMouseEnter:et,onContextMenu:i=>{var H,me;if(!wt||i.metaKey)return;const y=i.target.closest("a");if(y&&Fe.current.contains(y)&&!y.getAttribute("href").startsWith("#"))return;const O=(H=window.getSelection)==null?void 0:H.call(window);if(O.toString().length>0){const{anchorNode:je}=O;if((me=Fe.current)!=null&&me.contains(je))return}i.preventDefault(),kt({anchorPoint:{x:i.clientX,y:i.clientY},direction:"right"}),at(!0)},...wt?Co():{},children:[wt&&e(ba,{ref:On,state:Et?"open":void 0,...Tt,onClose:i=>{var y,O,H;at(!1),(i==null?void 0:i.reason)==="click"&&((H=(O=(y=Fe.current)==null?void 0:y.closest("[tabindex]"))==null?void 0:O.focus)==null||H.call(O))},portal:{target:document.body},containerProps:{style:{zIndex:1001},onClick:()=>{var i,y;(y=(i=On.current)==null?void 0:i.closeMenu)==null||y.call(i)}},overflow:"auto",boundingBoxPadding:uo(),unmountOnClose:!0,children:Mn}),D&&a!=="l"&&!m&&!s&&!ze&&!k&&e("div",{class:`status-actions ${Et==="actions-bar"?"open":""}`,ref:Do,children:[e(We,{size:"s",title:"Reply",alt:"Reply",class:"reply-button",icon:"comment",iconSize:"m",onClick:yt}),e(We,{size:"s",checked:he,title:["Like","Unlike"],alt:["Like","Liked"],class:"favourite-button",icon:"heart",iconSize:"m",count:Ae,onClick:Kt}),e("button",{type:"button",title:"More",class:"plain more-button",onClick:i=>{i.preventDefault(),i.stopPropagation(),kt({anchorRef:{current:i.currentTarget},align:"start",direction:"left",gap:0,shift:-8}),at("actions-bar")},children:e(v,{icon:"more2",size:"m",alt:"More"})})]}),a!=="l"&&e("div",{class:"status-badge",children:[K&&e(v,{class:"reblog",icon:"rocket",size:"s"}),he&&e(v,{class:"favourite",icon:"heart",size:"s"}),fe&&e(v,{class:"bookmark",icon:"bookmark",size:"s"}),Be&&e(v,{class:"pin",icon:"pin",size:"s"})]}),a!=="s"&&e("a",{href:le,tabindex:"-1",title:`@${U}`,onClick:i=>{i.preventDefault(),i.stopPropagation(),S.showAccount={account:n.account,instance:g}},children:e(Re,{url:C||z,size:"xxl",squircle:F})}),e("div",{class:"container",children:[e("div",{class:"meta",children:[e("span",{class:"meta-name",children:e(lt,{account:n.account,instance:g,showAvatar:a==="s",showAcct:G})})," ",a!=="l"&&(ze?e("span",{class:"status-deleted-tag",children:"Deleted"}):re&&!m&&!s&&!k?e(Ye,{to:g?`/${g}/s/${L}`:`/s/${L}`,onClick:i=>{i.metaKey||i.ctrlKey||i.shiftKey||i.altKey||i.which===2||(i.preventDefault(),i.stopPropagation(),b==null||b(i,n),kt({anchorRef:{current:i.currentTarget},align:"end",direction:"bottom",gap:4}),at(!0))},class:`time ${Et&&(Tt!=null&&Tt.anchorRef)?"is-open":""}`,children:[zo&&!Vn?e(v,{icon:"comment2",size:"s",alt:`${de} ${de===1?"reply":"replies"}`}):N!=="public"&&N!=="direct"&&e(v,{icon:un[N],alt:ut[N],size:"s"})," ",e(He,{datetime:Oe,format:"micro"}),!m&&!s&&e(v,{icon:"more2",class:"more"})]}):e("span",{class:"time",children:[N!=="public"&&N!=="direct"&&e($,{children:[e(v,{icon:un[N],alt:ut[N],size:"s"})," "]}),e(He,{datetime:Oe,format:"micro"})]}))]}),N==="direct"&&e($,{children:[e("div",{class:"status-direct-badge",children:"Private mention"})," "]}),!l&&e($,{children:rt?e("div",{class:"status-thread-badge",children:[e(v,{icon:"thread",size:"s"}),"Thread",I.statusThreadNumber[A]?` ${I.statusThreadNumber[A]}/X`:""]}):!!ve&&!!_t&&(!!ee||!Le.find(i=>i.id===se))&&e("div",{class:"status-reply-badge",children:[e(v,{icon:"reply"})," ",e(lt,{account:_t,instance:g,short:!0})]})}),e("div",{class:`content-container ${ee||_e?"has-spoiler":""} ${$e?"show-spoiler":""} ${tt?"show-media":""}`,"data-content-text-weight":r?Ln():null,style:(G||r)&&{"--content-text-weight":Ln()},children:R&&Vt?e($,{children:[(!!ee||!!_e)&&!xe&&e($,{children:[!!ee&&e("span",{class:"spoiler-content media-first-spoiler-content",lang:oe,dir:"auto",ref:kn,"data-read-more":Ft,children:[e(Ze,{text:ee,emojis:Te})," "]}),e("button",{class:`light spoiler-button media-first-spoiler-button ${$e?"spoiling":""}`,type:"button",onClick:i=>{i.preventDefault(),i.stopPropagation(),$e?(delete S.spoilers[L],xe||delete S.spoilersMedia[L]):(S.spoilers[L]=!0,xe||(S.spoilersMedia[L]=!0))},children:[e(v,{icon:$e?"eye-open":"eye-close"})," ",$e?"Show less":"Show content"]})]}),e(xr,{mediaAttachments:j,language:oe,postID:L,instance:g}),!!ne&&e("div",{class:"media-first-content content",ref:wn,children:e(to,{post:n,instance:g,previewMode:m})})]}):e($,{children:[!!ee&&e($,{children:[e("div",{class:"content spoiler-content",lang:oe,dir:"auto",ref:kn,"data-read-more":Ft,children:e("p",{children:e(Ze,{text:ee,emojis:Te})})}),xe||m?e("div",{class:"spoiler-divider",children:[e(v,{icon:"eye-open"})," Content warning"]}):e("button",{class:`light spoiler-button ${$e?"spoiling":""}`,type:"button",onClick:i=>{i.preventDefault(),i.stopPropagation(),$e?(delete S.spoilers[L],xe||delete S.spoilersMedia[L]):(S.spoilers[L]=!0,xe||(S.spoilersMedia[L]=!0))},children:[e(v,{icon:$e?"eye-open":"eye-close"})," ",$e?"Show less":"Show content"]})]}),!!ne&&e("div",{class:"content",ref:wn,"data-read-more":Ft,children:[e(to,{post:n,instance:g,previewMode:m}),e(Hr,{id:L,instance:g,level:k})]}),!!ge&&e(fr,{lang:oe,poll:ge,readOnly:s||!M||!x,onUpdate:i=>{S.statuses[A].poll=i},refresh:()=>f.v1.polls.$select(ge.id).fetch().then(i=>{S.statuses[A].poll=i}).catch(i=>{}),votePoll:i=>f.v1.polls.$select(ge.id).votes.create({choices:i}).then(y=>{S.statuses[A].poll=y}).catch(y=>{})}),((d||Tn)&&!!ne.trim()&&!!Ot(Mt(ne,Te))&&bt||Nt)&&e(pr,{forceTranslate:Nt||Tn,mini:!G&&!l,sourceLanguage:oe,autoDetected:fn,text:an(n)}),!m&&_e&&!!j.length&&yn!=="show_all"&&e("button",{class:`plain spoiler-media-button ${tt?"spoiling":""}`,type:"button",hidden:!xe&&!!ee,onClick:i=>{i.preventDefault(),i.stopPropagation(),tt?delete S.spoilersMedia[L]:S.spoilersMedia[L]=!0},children:[e(v,{icon:tt?"eye-open":"eye-close"})," ",tt?"Show less":"Show media"]}),!!j.length&&e(Dr,{lang:oe,enabled:$t,captionChildren:Ho,children:e("div",{ref:So,class:`media-container media-eq${j.length} ${j.length>2?"media-gt2":""} ${j.length>4?"media-gt4":""}`,children:At.map((i,y)=>e(Eo,{media:i,autoAnimate:G,showCaption:j.length===1,allowLongerCaption:!ne&&j.length===1,lang:oe,altIndex:$t&&!!i.description&&y+1,to:`/${g}/s/${L}?${l?"media":"media-only"}=${y+1}`,onClick:_?O=>{_(O,y,i,n)}:void 0},i.id))})}),!!V&&/^https/i.test(V==null?void 0:V.url)&&!_e&&!ee&&!ge&&!j.length&&!I.statusQuotes[A]&&e(Cr,{card:V,selfReferential:(V==null?void 0:V.url)===n.url||(V==null?void 0:V.url)===n.uri,instance:P})]})}),!G&&Vn&&e("div",{class:"content-comment-hint insignificant",children:[e(v,{icon:"comment2",alt:"Replies"})," ",de]}),G&&e($,{children:[e("div",{class:"extra-meta",children:ze?e("span",{class:"status-deleted-tag",children:"Deleted"}):e($,{children:[e("span",{children:ut[N]})," •"," ",e("a",{href:re,target:"_blank",rel:"noopener noreferrer",children:e("time",{class:"created",datetime:Oe.toISOString(),title:Oe.toLocaleString(),children:An})}),B&&e($,{children:[" ","• ",e(v,{icon:"pencil",alt:"Edited"})," ",e("time",{tabIndex:"0",class:"edited",datetime:gn.toISOString(),onClick:()=>{vt(L)},children:$n})]})]})}),!!(gt!=null&>.length)&&e("div",{class:"emoji-reactions",children:gt.map(i=>{const{name:y,count:O,me:H,url:me,staticUrl:je}=i;if(me)return e("span",{class:`emoji-reaction tag ${H?"":"insignificant"}`,children:[e(ln,{alt:y,url:me,staticUrl:je})," ",O]});if(/^:.+?:$/.test(y)){const Ve=Te.find(Ue=>Ue.shortcode===y.replace(/^:/,"").replace(/:$/,""));if(Ve)return e("span",{class:`emoji-reaction tag ${H?"":"insignificant"}`,children:[e(ln,{alt:y,url:Ve.url,staticUrl:Ve.staticUrl})," ",O]})}return e("span",{class:`emoji-reaction tag ${H?"":"insignificant"}`,children:[y," ",O]})})}),e("div",{class:`actions ${ze?"disabled":""}`,children:[e("div",{class:"action has-count",children:e(We,{title:"Reply",alt:"Comments",class:"reply-button",icon:"comment",count:de,onClick:yt})}),e(Gt,{disabled:!ot,onClick:qt,confirmLabel:e($,{children:[e(v,{icon:"rocket"}),e("span",{children:K?"Unboost":"Boost"})]}),menuExtras:e(J,{onClick:()=>{Pt({draftStatus:{status:` +${re}`}})},children:[e(v,{icon:"quote"}),e("span",{children:"Quote"})]}),menuFooter:jt&&!K&&e("div",{class:"footer",children:[e(v,{icon:"alert"}),"Some media have no descriptions."]}),children:e("div",{class:"action has-count",children:e(We,{checked:K,title:["Boost","Unboost"],alt:["Boost","Boosted"],class:"reblog-button",icon:"rocket",count:ie,disabled:!ot})})}),e("div",{class:"action has-count",children:e(We,{checked:he,title:["Like","Unlike"],alt:["Like","Liked"],class:"favourite-button",icon:"heart",count:Ae,onClick:Pn})}),Rt("@mastodon/post-bookmark")&&e("div",{class:"action",children:e(We,{checked:fe,title:["Bookmark","Unbookmark"],alt:["Bookmark","Bookmarked"],class:"bookmark-button",icon:"bookmark",onClick:Sn})}),e(mo,{portal:{target:document.querySelector(".status-deck")||document.body},align:"end",gap:4,overflow:"auto",viewScroll:"close",menuButton:e("div",{class:"action",children:e("button",{type:"button",title:"More",class:"plain more-button",children:e(v,{icon:"more",size:"l",alt:"More"})})}),children:Mn})]})]})]}),!!zt&&e(cn,{onClick:i=>{i.target===i.currentTarget&&vt(!1)},children:e(Mr,{statusID:zt,instance:g,fetchStatusHistory:()=>f.v1.statuses.$select(zt).history.list(),onClose:()=>{var i;vt(!1),(i=Fe.current)==null||i.focus()}})}),!!Po&&e(cn,{onClick:i=>{i.target===i.currentTarget&&Bt(!1)},children:e(Or,{post:n,instance:g,onClose:()=>{Bt(!1)}})})]})]})}function Dr(t){const{enabled:n,children:o,lang:a,captionChildren:r}=t;return!n||!r?o:e("figure",{class:"media-figure-multiple",children:[o,e("figcaption",{lang:a,dir:"auto",children:r})]})}function xr(t){const{mediaAttachments:n,language:o,postID:a,instance:r}=t,s=n.length>1,c=ae(),[l,p]=q(0);return pe(()=>{let d=()=>{const{clientWidth:u,scrollLeft:m}=c.current,_=Math.round(m/u);p(_)};return c.current&&c.current.addEventListener("scroll",d,{passive:!0}),()=>{c.current&&c.current.removeEventListener("scroll",d)}},[]),e($,{children:[e("div",{class:"media-first-container",children:[e("div",{class:"media-first-carousel",ref:c,children:n.map((d,u)=>e("div",{class:"media-first-item",children:e(Eo,{media:d,lang:o,to:`/${r}/s/${a}?media=${u+1}`})},d.id))}),s&&e("div",{class:"media-carousel-controls",children:[e("div",{class:"carousel-indexer",children:[l+1,"/",n.length]}),e("label",{class:"media-carousel-button",children:e("button",{type:"button",class:"carousel-button",hidden:l===0,onClick:d=>{d.preventDefault(),d.stopPropagation(),c.current.focus(),c.current.scrollTo({left:c.current.clientWidth*(l-1),behavior:"smooth"})},children:e(v,{icon:"arrow-left"})})}),e("label",{class:"media-carousel-button",children:e("button",{type:"button",class:"carousel-button",hidden:l===n.length-1,onClick:d=>{d.preventDefault(),d.stopPropagation(),c.current.focus(),c.current.scrollTo({left:c.current.clientWidth*(l+1),behavior:"smooth"})},children:e(v,{icon:"arrow-right"})})})]})]}),s&&e("div",{class:"media-carousel-dots",style:{"--dots-count":n.length},children:n.map((d,u)=>e("span",{class:`carousel-dot ${u===l?"active":""}`},d.id))})]})}function Cr({card:t,selfReferential:n,instance:o}){var z;const a=ft(S),{blurhash:r,title:s,description:c,html:l,providerName:p,providerUrl:d,authorName:u,authorUrl:m,width:_,height:k,image:b,imageDescription:E,url:w,type:D,embedUrl:T,language:R,publishedAt:f}=t,g=s||p||u,P=_/k>=1.2?"large":"",[M,A]=q(null);if(pe(()=>{g&&b&&!n&&La(w)&&Aa(o,w).then(C=>{if(!C)return;const{id:Y,url:le}=C;A("#"+le)})},[g,b,n]),a.unfurledLinks[w])return null;const I=/`;this.domRefFrame.insertAdjacentHTML("beforeend",i),this.domRefFrame.classList.add("activated"),this.isIframeLoaded=!0,this.attemptShortAutoPlay(),this.dispatchEvent(new CustomEvent("liteYoutubeIframeLoaded",{detail:{videoId:this.videoId},bubbles:!0,cancelable:!0}))}}initImagePlaceholder(){var r,o;const t=`https://i.ytimg.com/vi_webp/${this.videoId}/${this.posterQuality}.webp`,n=`https://i.ytimg.com/vi/${this.videoId}/${this.posterQuality}.jpg`;this.domRefImg.fallback.loading=this.posterLoading,this.domRefImg.webp.srcset=t,this.domRefImg.jpeg.srcset=n,this.domRefImg.fallback.src=n,this.domRefImg.fallback.setAttribute("aria-label",`${this.videoPlay}: ${this.videoTitle}`),(o=(r=this.domRefImg)==null?void 0:r.fallback)==null||o.setAttribute("alt",`${this.videoPlay}: ${this.videoTitle}`)}initIntersectionObserver(){const t={root:null,rootMargin:"0px",threshold:0};new IntersectionObserver((r,o)=>{r.forEach(i=>{i.isIntersecting&&!this.isIframeLoaded&&(Pe.warmConnections(),this.addIframe(!0),o.unobserve(this))})},t).observe(this)}attemptShortAutoPlay(){this.isYouTubeShort()&&setTimeout(()=>{var t,n;(n=(t=this.shadowRoot.querySelector("iframe"))==null?void 0:t.contentWindow)==null||n.postMessage('{"event":"command","func":"playVideo","args":""}',"*")},2e3)}isYouTubeShort(){return this.getAttribute("short")===""&&window.matchMedia("(max-width: 40em)").matches}static addPrefetch(t,n){const r=document.createElement("link");r.rel=t,r.href=n,r.crossOrigin="true",document.head.append(r)}static warmConnections(){Pe.isPreconnected||window.liteYouTubeIsPreconnected||(Pe.addPrefetch("preconnect","https://i.ytimg.com/"),Pe.addPrefetch("preconnect","https://s.ytimg.com"),Pe.addPrefetch("preconnect","https://www.youtube.com"),Pe.addPrefetch("preconnect","https://www.google.com"),Pe.addPrefetch("preconnect","https://googleads.g.doubleclick.net"),Pe.addPrefetch("preconnect","https://static.doubleclick.net"),Pe.isPreconnected=!0,window.liteYouTubeIsPreconnected=!0)}}Pe.isPreconnected=!1;customElements.define("lite-youtube",Pe);const W0="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz#$%*+,-.:;=?@[]^_{|}~",tr=(e,t,n)=>{let r=0;for(;te>10.31475?Ru(e/Hu+.052132,2.4):e/ku,no=e=>~~(e>1227e-8?Hu*Ru(e,.416666)-13.025:e*ku+1),An=e=>(e<0?-1:1)*e*e,ka=e=>{for(e+=Bn/2;e>Bn;)e-=q0;const t=1.27323954*e-.405284735*An(e);return .225*(An(t)-t)+t};function V0(e){const t=tr(e,2,6);return[t>>16,t>>8&255,t&255]}function Z_(e,t,n,r){const o=tr(e,0,1),i=o%9+1,a=~~(o/9)+1,s=i*a;let u=0,c=0,d=0,l=0,f=0,h=0,p=0,m=0,g=0,_=0,y=0,b=0,L=0,I=0;const A=(tr(e,1,2)+1)/13446*(r|1),M=new Float64Array(s*3),G=V0(e);for(u=0;u<3;u++)M[u]=Y0(G[u]);for(u=1;u{const n=t.char||" ",r=t.count||2;let o=0;const i=[];return e.reverse().reduce((a,s)=>{i.length&&o&&i[o]&&i[o]===s.substring(1,i[o].length+1)&&(i.splice(o,1),o--);const c=[`${n.repeat(o?o*r:0)}${s}`,...a];return s.substring(0,2)==="e.trim().replace(/(^(\s|\t)+|(( |\t)+)$)/gm,""),X0=e=>{const t=Gu(e).split(` +`),n=[];let r="";for(let o=0;o")){n.push(`${r}${i.slice(0,-2)} />`),r="";continue}if(i.endsWith(">")){n.push(`${r}${i.startsWith(">")||i.startsWith("<")?"":" "}${i}`),r="";continue}r+=r.length?` ${i}`:i}return n};var ep={mergeAttributesWithElements:X0,removeEmptyLines:Gu};const tp=Q0,{mergeAttributesWithElements:np}=ep,rp=(e,t={})=>{const n=np(e);return tp(n,t)};var op=rp;const Q_=it(op);var ip={TINYLD_CONFIG:"light"},ap=/[,.。,、#%&/\\+*¡!¿?[\]!?;:…„“«»”"“_–—~]/gi,sp=/[0-9]/g,up=/[\uFF10-\uFF19]/g,cp=/\s\s+/g,lp=/’/gi,dp=/[\u0300-\u036f]/g;function fp(e){return typeof e=="string"||e instanceof String}function hp(e){return e.toLowerCase().replace(lp,"'").replace(ap," ").replace(up,t=>String.fromCharCode(t.charCodeAt(0)-65248)).replace(sp,"").replace(cp," ").trim()}function pp(e){return e.normalize("NFD").replace(dp,"")}var Ei={light:{TRAINING_UNIQUE_GRAMS:[1,2,3,4],TOP_LANGUAGE_UNIQUE_GRAMS:60,TOP_LANGUAGE_STATS_GRAMS:50},normal:{TRAINING_UNIQUE_GRAMS:[1,2,3,4,5],TOP_LANGUAGE_UNIQUE_GRAMS:100,TOP_LANGUAGE_STATS_GRAMS:180},heavy:{TRAINING_UNIQUE_GRAMS:[1,2,3,4,5],TOP_LANGUAGE_UNIQUE_GRAMS:320,TOP_LANGUAGE_STATS_GRAMS:1024}},qt=ip.TINYLD_CONFIG||"normal",ju=Ei[qt].TRAINING_UNIQUE_GRAMS,X_=Ei[qt].TOP_LANGUAGE_UNIQUE_GRAMS,eg=Ei[qt].TOP_LANGUAGE_STATS_GRAMS,Ha=1e4;function Ga(e){return Math.round(e*Ha)/Ha}var mp=e=>{let t={only:[],verbose:!1};return e?Object.assign(t,e):t},To={afr:{code:"af",region:"africa",name:"Afrikaans",skipLight:!0},amh:{code:"am",region:"africa",name:"Amharic",skipLight:!0,coefProb:0},ber:{code:"ber",region:"africa",name:"Berber",skipLight:!0,coefProb:.25},run:{code:"rn",region:"africa",name:"Kirundi",skipLight:!0},jpn:{code:"ja",region:"asia-east",name:"Japanese",alias:["jp"],coefProb:0},cmn:{code:"zh",region:"asia-east",name:"Chinese",alias:["cn"],coefProb:.25},kor:{code:"ko",region:"asia-east",name:"Korean",alias:["kr"],coefProb:0},mya:{code:"my",region:"asia",name:"Burmese",skipLight:!0,coefProb:0},tha:{code:"th",region:"asia",name:"Thai",coefProb:0},vie:{code:"vi",region:"asia",name:"Vietnamese",skipLight:!0,coefProb:0},ind:{code:"id",region:"asia",name:"Indonesian",skipLight:!0},khm:{code:"km",region:"asia",name:"Khmer",skipLight:!0,coefProb:0},tgl:{code:"tl",region:"asia",name:"Tagalog",skipLight:!0},ben:{code:"bn",region:"asia-south",name:"Bengali",coefProb:0},tam:{code:"ta",region:"asia-south",name:"Tamil",skipLight:!0,coefProb:0},hin:{code:"hi",region:"asia-south",name:"Hindi",coefProb:0},urd:{code:"ur",region:"asia-south",name:"Urdu",skipLight:!0,coefProb:0},guj:{code:"gu",region:"asia-south",name:"Gujarati",skipLight:!0,coefProb:0},kan:{code:"kn",region:"asia-south",name:"Kannada",skipLight:!0,coefProb:0},tel:{code:"te",region:"asia-south",name:"Telugu",skipLight:!0,coefProb:0},fra:{code:"fr",region:"europe-west",name:"French"},eng:{code:"en",region:"europe-west",name:"English",alias:["us","gb"]},deu:{code:"de",region:"europe-west",name:"German",coefProb:.5},spa:{code:"es",region:"europe-west",name:"Spanish"},por:{code:"pt",region:"europe-west",name:"Portuguese",alias:["po"]},ita:{code:"it",region:"europe-west",name:"Italian"},nld:{code:"nl",region:"europe-west",name:"Dutch"},gle:{code:"ga",region:"europe-west",name:"Irish",skipLight:!0},lat:{code:"la",region:"europe",name:"Latin",skipLight:!0},ces:{code:"cs",region:"europe",name:"Czech",skipLight:!0},srp:{code:"sr",region:"europe",name:"Serbian",skipLight:!0},ell:{code:"el",region:"europe",name:"Greek",alias:["gr"],coefProb:0},mkd:{code:"mk",region:"europe",name:"Macedonian",skipLight:!0,coefProb:1.5},slk:{code:"sk",region:"europe",name:"Slovak",skipLight:!0},dan:{code:"da",region:"europe-north",name:"Danish",skipLight:!0,coefProb:1.5},swe:{code:"sv",region:"europe-north",name:"Swedish"},fin:{code:"fi",region:"europe-north",name:"Finnish"},nob:{code:"no",region:"europe-north",name:"Norwegian",coefProb:1.5},isl:{code:"is",region:"europe-north",name:"Icelandic",skipLight:!0,coefProb:.5},hun:{code:"hu",region:"europe-east",name:"Hungarian"},ron:{code:"ro",region:"europe-east",name:"Romanian",coefProb:.5},bul:{code:"bg",region:"europe-east",name:"Bulgarian",skipLight:!0},bel:{code:"be",region:"europe-east",name:"Belarusian",skipLight:!0},rus:{code:"ru",region:"europe-east",name:"Russian"},ukr:{code:"uk",region:"europe-east",name:"Ukrainian",skipLight:!0},pol:{code:"pl",region:"europe-east",name:"Polish",coefProb:.5},lit:{code:"lt",region:"europe-east",name:"Lithuanian",skipLight:!0},est:{code:"et",region:"europe-east",name:"Estonian",skipLight:!0},lvs:{code:"lv",region:"europe-east",name:"Latvian",skipLight:!0},hye:{code:"hy",region:"middle-east",name:"Armenian",skipLight:!0,coefProb:0},tur:{code:"tr",region:"middle-east",name:"Turkish"},heb:{code:"he",region:"middle-east",name:"Hebrew",coefProb:0},yid:{code:"yi",region:"middle-east",name:"Yiddish",skipLight:!0,coefProb:.5},ara:{code:"ar",region:"middle-east",name:"Arabic",coefProb:0},pes:{code:"fa",region:"middle-east",name:"Persian",skipLight:!0,coefProb:0},tat:{code:"tt",region:"middle-east",name:"Tatar",skipLight:!0,coefProb:0},kaz:{code:"kk",region:"middle-east",name:"Kazakh",skipLight:!0},mon:{code:"mn",region:"middle-east",name:"Mongolian",skipLight:!0},tuk:{code:"tk",region:"middle-east",name:"Turkmen",skipLight:!0},epo:{code:"eo",region:"other",name:"Esperanto",skipLight:!0,coefProb:.5},vol:{code:"vo",region:"other",name:"Volapuk",skipLight:!0,coefProb:.5},tlh:{code:"tlh",region:"other",name:"Klingon",skipLight:!0,coefProb:.25}},Nu=new Set(Object.entries(To).filter(e=>qt==="heavy"||qt==="normal"||qt==="light"&&!e[1].skipLight).map(e=>e[0])),zu=[...Nu.values()],tg=Object.fromEntries(zu.map((e,t)=>[e,t+1])),ja=Object.fromEntries(zu.map((e,t)=>[t+1,e]));function Fo(e){return e in To?To[e].code:e}var Ku={id:"tinyld-dict",multiples:{" '":"D07M0B"," aa":"B02D34G13"," aan":"DA9"," ac":"72F812907A3YB7VC1GD0GF06JEKM0U"," ace":"A18B0SJEKM0B"," ai":"73F809A08B21C2DG61J7AM0U"," all":"74J83H94XA11C6PD5QF6ZG0UH68I04M0C"," am ":"80U91WJG6"," are":"86UA04B05C0IJ5WL04"," at ":"84LA02D08H93M05"," att":"72K80Q902C1MFKTH04I0FM0D"," av ":"F5YHAJ"," az":"A0CB0BC06IJAJ0LL02M12"," az ":"IS8M0T"," be ":"87GF0AI31"," bir":"80EC11I09J0RMRC"," bli":"80490KD2AF2SH5IL0A"," bu ":"707MD7"," bun":"802903H05I03J4LM8V"," by":"81MF0RH0QL8N"," był":"L86"," c'":"75MC1N"," ce ":"7C9C0EJEM"," che":"74080T907A05B2KCO5D04F05J1JL02"," ci":"71580DA2XB2KC6ID02F04I0LJ5UL5OM0S"," com":"7BX83Z907ACUBKZCASD0UJ45"," con":"7A482ZAITBCQCFLD13J80"," cos":"704808A29B0SCIXJ0N"," cs":"I84"," csa":"IAK"," cu":"70V80LA8EB2DC22D02I07JGCL0AM09"," cu ":"JFJ"," cz":"LBQ"," czy":"L8V"," câ":"B08J84"," că":"JF8"," că ":"JIJ"," d'":"78TB02C0T"," da ":"91KA0LB7UC6LH1OJ0UL07M1L"," das":"9JRA03B1MD02"," dat":"70480A903A04B03C18DK0F0EH0SJ3EL02"," de ":"7SGASGBQWDRVF6KH7JI5FJSGM2H"," deg":"702803C0XD08H7UJ0D"," değ":"M9Z"," di ":"A09CPSH04"," did":"881"," die":"70M80N9LQA16B02C0XD67J05L03"," dig":"704802A0OB0WC05F6Y"," do ":"8BRB9QC02LAM"," don":"73E86X903A0UB05C0SD0DM08"," dov":"C8DJ0C"," du ":"77Q9CNFK1HM3"," dzi":"L83"," dé":"76IA0DB03I0A"," dü":"904I04M86"," e ":"A08BAPC5BI02J6I"," ee":"D9C"," een":"DP5"," egy":"803D03F02G02IQ2"," ei ":"902B02D02GHXH09J61"," ein":"9NHD0O"," el ":"APOI82JBXM08"," ela":"B8PI0Q"," ell":"7BLA8QD03F1QG06H27I2CM0D"," em ":"BB7"," en ":"7D2AM9D9FFH6GBVHJIM2Q"," er ":"9AWD8MF24HSCM02"," era":"A2YB2TC8VD09F09J6I"," es ":"71L9C0AKI"," est":"7KG803AQJBPDC10D02G09I1KJPIM03"," et ":"7ANG2PH8AM0I"," ett":"F7BGDGH32I0TM3Y"," eu ":"716BLEJ43"," ez":"IAFJ03M05"," ez ":"IE3"," fai":"7D780FC0FJ07"," faz":"B7KM1Y"," fö":"FF1I0R"," för":"FI0"," fø":"H23"," ger":"702809933A03B0JC0ND0ZF0DI03J0OM97"," gj":"F1OH3T"," gjø":"H5G"," gy":"F03I4G"," gå":"F4SH2D"," gö":"F41I05MAO"," gör":"F57I0AM8D"," ha ":"A3PCFSF2XH3CI7B"," hab":"70Z80399WA8PB08I05M0K"," hav":"87ZB0XD02F07G05H0EI0GM1C"," he ":"8C6A2JG40"," heb":"903A02B02DH2"," hee":"DD1"," her":"70287O92HA2FB06D1CF08G22H2ZI08L0DM71"," het":"DQKF0PG1IH0DI0I"," hij":"A1HDFL"," his":"70G86WA0QB0OF0DG0AH0MI25L0MM1D"," hj":"F25H1S"," ho ":"C9Y"," hog":"A04D07INN"," hon":"70H808902A0CB0BD25FC8G03I0KL02"," hun":"80J915A03D1DF1XG03HBCI03"," hv":"H8E"," hva":"H6S"," hvo":"H89"," hä":"910F9RGGY"," hän":"90GF1SGOM"," här":"FA7G03"," i'":"844"," ic":"71E8049BTF02L0JM02"," ich":"9NPL0S"," ih":"94PF0JG2SM1R"," ik":"DCMF05G1FHAKI02M29"," ik ":"DSG"," ikk":"G0KHMB"," il ":"7JVCKY"," in ":"8CU9AMCP2DGHF1CJ0A"," io":"B02C89J03"," io ":"CCM"," is ":"8FTDQJF03H05I9O"," iss":"80490AB8F"," ist":"9IXB1WC07F05G1AI0YJ0EL0CMBN"," it ":"881"," iç":"MBC"," içi":"MBB"," j'":"78W"," j'a":"7BH"," ja ":"90QD0EF0CGBYH0II05L1B"," jag":"903D02FSG"," jak":"G0DH06L8G"," je ":"7QE90EDN0L0L"," jeg":"HSGI0KL2P"," jes":"805A03B03F02LN0"," kel":"903D03G1EIBSL02M0I"," kj":"F02H2C"," kn":"849906D07F0OH09"," kno":"86F904D07"," kom":"92YD43F8KG0KH6UI0XL18M10"," kä":"906F2EG65"," ké":"I6F"," kö":"91CF2BG0AI5TM2K"," l'":"7D8C6R"," l'a":"7ACC3S"," le ":"7O2A71CBKF02I2MJ1E"," les":"7HW80990JA13B03C03D0CG02H1QI4GL03"," ll":"A5B"," lo ":"ABKC6EH06"," los":"80S90CADJD09L03"," lä":"90IF5MG3Y"," mai":"77L808903B85C3YG1PI0AJDX"," me ":"77J874ADPB7JC3TD7MG38"," meg":"C14HB1IQXL02"," mi ":"A8LCB4H06I5SJ0NL59M56"," mig":"70680XA02C17F9TI02L02"," mij":"DD6J0BL02"," mit":"70697SA07B02C02F22GC7H1JI5T"," moe":"B04D9J"," mui":"B8ED05G24"," my":"703838F2WG26H19L2C"," má":"A54B0GI66"," már":"IAZ"," må":"F4UH2G"," mé":"71AA0FB0MI4I"," n'":"79SC03"," na ":"903B6QD0VI0NLEF"," nag":"70J902D05F03IA3L0J"," ne ":"7JPC21G1QI6OJ2ZM8Q"," nek":"H06ID2"," nem":"B13C0HD0NISFJ06M02"," nie":"70292PA0HC1HDN2G03LQT"," no ":"826APLB77C0NG0LL06"," noe":"D0AH7AM09"," non":"718806CSG"," nou":"7DUD09G11J2Q"," nu ":"702D2AF2PJS4"," nã":"BLO"," não":"BOG"," nä":"90DF3PG5K"," nå":"F4NH2C"," oc":"70K807A19B0UC10D03F6ZJ1PL12M02"," och":"A0AD08F8NJ10L0D"," of ":"8CFD2K"," og":"C21D06F03H6LL15"," og ":"HEI"," old":"80XI0QMA0"," ole":"GNML02"," oli":"A02C03D07F0AGFEI02L02"," om ":"D7WF8ZH6JJ0Z"," on ":"73X860GSGL58M0P"," onu":"MD6"," op ":"DB4"," opp":"705807C05D04G18H5B"," os ":"702A0OB8L"," ov":"80QA03B0BC06D1EF06G3KH1N"," pe ":"JF5"," pou":"7G1804B1R"," pow":"808L89"," prz":"LGN"," pue":"A97"," på":"FCSH7H"," på ":"FG6HGP"," q":"76F80H903ABABB7C5I"," qu":"7OD80Z905AQPBSGCIB"," qu'":"7A1"," qua":"73L806906B9SCCM"," que":"7O880L903ARRBSGCFQ"," qui":"78480ZA93B1CC3J"," qué":"A7V"," sch":"7028159FXC0ND6WF0BI03J1HL0C"," se ":"76NAEWBA7C3FF17GC2H1YI0XJA1"," she":"888G02"," si ":"74TA4NB0CC8DH1DJ05"," sie":"7069G7A3MC2KG1QH1FI0FL1C"," się":"LJL"," ska":"802F50G03H5AL0D"," sl":"80PC07D12F2VH1NJ0WM04"," sn":"809D0MF24H2AL04"," som":"72583U90AA0UB0WC0FD0OF7CG02HATJ0E"," son":"7B780K91JA4MB0SCFPF0HI02M4O"," su ":"704A8VC1AM0H"," sun":"80FG0UH07JFLM05"," sz":"IHAL53"," sze":"IGNL0N"," sä":"906F3ZG1V"," så":"F59H2X"," så ":"F4OH6M"," sö":"F0UG0LI0HMAA"," söy":"MAI"," să":"JPO"," să ":"JSD"," te ":"74FA7DB2VC1UDF0F0EG25H08I5SJ7ZL0W"," tha":"8LQC02D02"," the":"8SG90DD0L"," thi":"8CJ"," tie":"70J80490IAA4C05D0NG8XI04"," til":"803FB5G13HHKI09"," to ":"8QRH1NLG5"," tod":"81890DA8UB58G3Y"," tou":"7CB80C902D02G03"," tu ":"7CQ903A42B0XC3MJ2BL1V"," tud":"B23IFT"," tul":"704G9PH09I0D"," tä":"904F1BGDN"," um":"80291PBK5C08G02H05J0NL18M1D"," um ":"938BFJ"," uma":"902BBTC07J09L07M0F"," un ":"7GWAHNCGSJF1"," una":"804907AD8CB2I0CJ0T"," une":"7D5804908G0JJ15"," vad":"C3TD1AF6WI0OJ0C"," vag":"704A04B03C02IDR"," van":"704803A0JB03C3IDIJF0TG37H3AIHT"," ve ":"A0GC05M8F"," vi ":"A0KB0MC2HF9WH97"," vil":"715805A02B03C05F8TG0KH9OI28"," voc":"702A03BJYC0CD02J0A"," voi":"74Z806C3SGBNJ58"," vol":"71480490QA1RB1NC5BD2CF04H05IFJJ07M02"," voo":"B05DAT"," vou":"7H6B2Q"," vr":"71ID2BF02J6G"," vä":"F6CG42"," væ":"H2M"," vær":"H6J"," w ":"LD1"," wa":"7028CH97BA02B03D8OF02G02L1XM02"," was":"8D396KD9LL0H"," wat":"818DA4"," we ":"85MD9QL0B"," wh":"88WB02"," wie":"96ZD2NL86"," wir":"9B3"," wit":"86Q906D0GL05"," wo":"85K92WD26L22"," wy":"L8Z"," y ":"72JA8M"," yap":"MFB"," ye":"70F81KA05F02J04M8R"," you":"7028LO"," za":"908A0DB07C02D1VI0EJ07LELM6A"," ze":"91FB03C0AD5QI0AJ0LL2FM0W"," ze ":"DCCL1J"," zij":"DII"," zu":"989A03C06D0PI03L0C"," zu ":"9D5"," à":"73CB0Y"," à ":"7F0B37"," á":"A08B0EI2W"," ä":"90BFCOG13"," är":"904FOEG05"," är ":"FRS"," å":"F1MH6J"," å ":"F02H94"," ç":"70OM8P"," ço":"MAT"," çok":"M9Q"," è":"C5N"," è ":"CIM"," é":"727A21B4XD05H03I9Z"," é ":"BI9"," él":"70NA5YI2E"," él ":"A8XI0R"," és":"A0BB08I5O"," és ":"B0AICW"," ét":"76PI0I"," ê":"70N"," î":"JBJ"," în":"JQR"," în ":"JMV"," înt":"JCC"," ö":"905F1SI2KM50"," ø":"H18"," ü":"917I13M24"," ş":"J0EM61"," şe":"M8W"," şey":"M8F"," ż":"L5R"," że":"L8U"," że ":"LAM"," ș":"J49"," și":"J8Y"," și ":"JBW"," б":"KFE"," бы":"KFG"," был":"KCH"," в":"KQJ"," в ":"KJ7"," все":"K7D"," вы":"KF9"," вы ":"KD5"," д":"KHK"," до":"KCG"," за":"KFA"," зна":"KAI"," к":"KGJ"," ка":"KCG"," как":"KBV"," ко":"KCE"," м":"KM1"," мен":"KAA"," мн":"KCI"," мне":"KDC"," мо":"KET"," мы ":"K9E"," мэр":"K7K"," н":"KS4"," на":"KOV"," на ":"KGM"," не":"KSG"," не ":"KSG"," о":"KLC"," он":"KIF"," он ":"KE5"," она":"K8T"," п":"KR9"," по":"KSD"," пр":"KMB"," при":"KCM"," про":"KEF"," ра":"KCG"," с":"KQB"," ска":"K8F"," т":"KPP"," так":"K94"," те":"KBU"," теб":"KAT"," то":"KPV"," том":"KQN"," ты":"KEE"," ты ":"KIB"," хо":"KBV"," ч":"KEK"," чт":"KKA"," что":"KOQ"," эт":"KL4"," это":"KNI"," я":"KGE"," я ":"KQH"," 他":"2I4"," 他们":"2F5"," 你":"2IJ"," 你可以":"2R5"," 你知道":"2O9"," 她":"29B"," 如果":"2E7"," 如果你":"2SA"," 我":"2SG"," 我不":"2OU"," 我不想":"2O0"," 我不知":"2SD"," 我们":"2QU"," 我們":"2O2"," 我喜欢":"2P1"," 我在":"2CQ"," 我希望":"2PL"," 我想":"2I9"," 我的":"2IV"," 我知道":"2RE"," 我觉得":"2O9"," 汤":"261"," 汤姆":"2SG"," 汤姆不":"2OI"," 湯姆":"2MC"," 这":"26O","' ":"802902C0CD02I02","'a":"753C19L02M1D","'ai":"79OC02","'ai ":"7B4","'d":"80LM1N","'e":"73DC0GM04","'es":"7AHC0R","'est":"7ENC0E","'h":"70JC0H","'i":"71DC0IM08","'l":"80RM0F","'m":"814","'o":"70MC0B","'r":"80S","'s":"83K905D0C","'s ":"875908D0I","'t":"863M06","'t ":"8BS","'u":"70PC0BM3K","'un ":"73HM8K","'v":"80Q","'è":"C0K","'é":"70X","-a":"B02G05I02J4T","-a ":"B05J9K","-c":"70KB02","-l":"707802B0KJ0H","-v":"70TB02G02I02J03","a'":"809D03M16",aa:"90BDDZGD4I03L02M0R","aa ":"GJO",aan:"D5AGGL","aan ":"DE7GMY",aar:"90CB02D9PG0V","aar ":"90KDMG",aat:"904D2KG38L02M1O",abl:"72E81L902A41F02I0DJ08L03M05",aca:"70B803A1RB1LC16J1OL0IM9H",acc:"71R80JA0LC5GD02F06J0V",ach:"72581596DA0KB46C04D28J07L2M",aci:"70P805A5WB1LC1GI02J1JL1VM05","ado ":"AEOBB8C40",adı:"MB0","ag ":"80491FD2LFR8H1OI0JJ04",agy:"IBH",agyo:"ICV",aid:"71B837A02B02D02G0KI09J04",aik:"G8VI03",air:"76K80SA08B0TC02D04G0NI02M0G",ais:"7HE805902A09B8ZG9TJ02","ais ":"7JNA0BBAO",ait:"7DS80KG2QI09M07","ait ":"7JB80HD05G08I0MM06",akk:"D0GG1NH2KI15M2R",alc:"707802A0HB0BC47J0LL06M07",alı:"MAI","amo ":"A0EB0FCDVL0C",ando:"70E804A97BA4C8CD06I07J05",anno:"70680ECA6F07G0I","ant ":"7AE84R90ED1RF10H2MI0GJ1SL03",any:"82UI1SL1PM0N",anı:"MAY",aq:"707A0UB18",aqu:"710A2RB5A",arı:"MFI",ası:"MAT","ato ":"802A1KB1HCLFG04I02L05",att:"72M80S917C7BD09FJ8G4FH2VI22M1S","att ":"90CFLIH40I26","au ":"76S90PB08D04H02J9V",auf:"70894RF02L04","av ":"F52H4LJ0BM04","ave ":"70C88PA0IB0EC0KD02H0D",aw:"80OD02L5H","ay ":"702852A2KC0IM1L",aya:"708803A0YMBU","az ":"A0JB1KIGQJ0AL1YM4J",aze:"802B5MC02D02I02J06L0LM0Q",azi:"704805903B0BC5OD03I0BJ17L0CM0D",aç:"702B1FM2A",añ:"A1M",ać:"L4M","ać ":"L99",ağ:"M4L",ał:"LBO","ał ":"L8S",aş:"J08M62",aș:"J23",aț:"J20","ban ":"702802A19G02IG8M06","bb ":"F0HH07I4H","ben ":"7029AIA0KC04DCFF0CH0IIBNM83",bia:"803A0LB10C4EG02J08L0Y",bili:"70E809A0IB0FC0SI03J0OL0BMA4",bir:"808A0JB04C0OI04J0MMQH","bir ":"A0MB03MP9",bt:"803919A02D0EF04I02","bu ":"704L05MBU",bí:"A0MI0I",bø:"H0K","c'":"715C0F","ca ":"805A5EB6RC5NI05J60L1MM30",cas:"70Q80BA4VB59C30J30L02M0B",cer:"71H80GA51B3SC3VD02F08I05J4AL0CM0H","ch ":"70583I9MMA02B02C04D1CF6PL76","che ":"73K80396OA35B07CQ7D12J0H",chen:"7078059C9A03D0NF09",cho:"72W80V914A4PB3PD0WF06L41",cht:"9EFD4M","cht ":"9LXD9D","ci ":"72SB0HC6GI03J8EL52M15",cie:"71O809A39B10C0UD04F05J0SL8J",ció:"A59I0DL0G",cke:"70280O912F6U",cl:"70G80YA0QB0GC06D02J0M","co ":"702802A56B5FC60D02L4Q","com ":"BARL03",con:"77S81YAENBDQCC5D0DI02J5FL05","con ":"704A9TC8LI05",cont:"74680TA58B79C49D0KJ2N",cor:"72F80FA2GB3XC55D03J1PL05",cos:"703805A2TB1TCEHI02J0Q",cost:"703808A0WB0YCCHJ0N",cq:"C06",cs:"702802I9B",csa:"I4X",ct:"70R81PA16B03D0EJ1DL02",cu:"70V80QA4KB1NC20D06I05J8FL13M1D","cu ":"706JA2L0PM0H",cz:"LFV",czy:"LCZ","czy ":"L92",câ:"B02J2M",cê:"B4R","cê ":"BFB",cí:"A0FB03I03",có:"A0NB03I02L0B",că:"J7G","că ":"JJZ","d'":"720808C08M03",dad:"803A61B6BF0RM0I",dag:"902C09D12F45H2BI0C",dans:"79QD0CF0DH0HJ0AM0D",das:"999A2HB43C02F0AG09I08L08M0S","das ":"9EVA3QB4TD04F07G05","dat ":"703DKNF06G07I27J2V",dde:"806C03D0MF1JH2KI05M0R","dde ":"C02D0KF1LH5OM02","deg ":"H7UI0L","des ":"7BQ807934A3RB1GD04F1SG0MH09I0CJ0D","det ":"91DFOHG0MHPFI1QM02",dett:"704C4GF1KG0OH5QI1HM09",değ:"M8T",deği:"M9M",did:"70384IA18B0YC03I02M04","die ":"70I8079HZA1LC02D5AJ05",dig:"70680290QA0KB0TC05D1JF7PH2UI24","dig ":"90MD3XF7PH66I5A",dl:"80990BF0DH0II03L1L","dn'":"83U","dn't":"86Y",dos:"706A66B79C0EG09I06L0XM09","dos ":"707A8WB8HI04",dov:"C5FJ09",dt:"90AD0RF02H1EI2Z","dt ":"90BD14H1XI11",duğu:"M85",dz:"D02I04LEG",dzi:"LKJ",dzie:"LFS",dä:"902F0XG2I",då:"F0DH07",dé:"71SA0AF04H02I1D",dì:"C06",dí:"A10B02I0F",dó:"A0NB03I0FL07",dø:"H0O",dü:"903I0FM5O",dı:"MBL","dı ":"MBL","e'":"81MM07",ear:"83I902A0IB08C03J1E","eb ":"906A02C02D34J0CL04M02",ece:"70480FA4BB5TC0SD02F02I03J2LL08MCC",eci:"70P80LA3QB5NC1LD04F0HJ2HL2FM0B",eef:"D3M",eeft:"DB7",eel:"80L903D2OF02G13","een ":"83J905A07C03DRHGBPH05",eer:"808909A0OD4BG04H03","eer ":"80A90AA0VD8WH06",eft:"80ID3OF1HH04J04M03","eft ":"80XDCTH07","ego ":"803A17B0PC0BLFR",egy:"802F02H0KIFW","egy ":"ILW","ein ":"70H9HCD13G30H0AI03",eine:"70R9NGD0IG0VH0BI05",eir:"80Y908B69H02I02",eit:"807952A04B3BD0AG40H08I0A","ej ":"F0NI03L9Z","ek ":"80C902D23F0FH02IDUL3HME0",eke:"804902C02D1XF09G1AH09I7BJ03L04M1D","ele ":"91PA0NBDIC0MD1VG0XH1JI2QJCTL1BM0I",elig:"706806907A11B0HC06D09F05H6BI02J0HL08",ella:"809A7WC70D02F0NG7PI02M02",elle:"7J2808929A08C3ND20F25G4WH5GI6VM0L",enc:"74281LA4OB34C02I0QL0FM1W","ene ":"80390OA5AB02C3MD0JG0SHAUI1XJ0FM0O",enge:"70380590OB03D20F0WG03H72I4MM09",erc:"71I807A1AB13C5JI0FJ1KL0GM0L","ere ":"89L92JA1NB0CCF5D1WF02H7FI0XJ54M1L","ero ":"802AB0B3XCA2G0DL07",ery:"831G03L0TM06",esc:"70H80791NA4HB66C27D0JJ6A",está:"AB8BAN",esz:"I7ML7R","ete ":"80491CA0ZB0TC9QD0EF0MH0DI1CJ0ZM0I","ett ":"90LF8EH45IBZ",ette:"76P81D911C2ZD17F0HG4GHANIA4M0H",että:"GDJ","eu ":"72Z902BOVJ6F",eux:"78N","eux ":"7CV",ey:"82CA08G05M8V","ey ":"83UA0DB02C03M4U",ez:"72F90DA1CB19C0ID21I9UJ2LL23M1N","ez ":"782A2EB39I6OJ1QL1YM1Z",ezt:"I4L",eä:"G0N",eç:"702B0PM1Q",eñ:"A0L",eğ:"M6O",eği:"MEV",eğil:"M8S",eș:"J2L",eșt:"J80",fai:"78Y80AC09J04M02",faz:"B6BM1Q",fd:"D0L",fj:"F04H09","for ":"87KB07F02HE2",fs:"702908D07",fy:"F07H08",få:"F12H0R",fè:"702C04",fö:"F6RI0K",för:"FG8M02","för ":"FCB",fø:"H1K",fü:"91XI0E",gee:"D25","ger ":"72Y812921A09B04C0FD26F4HH9KI08J05M02",ggi:"802C4J",ght:"84F","ght ":"702871",gio:"706805902A0CB0FC5ZF02H03J03",gj:"F0MH2YI0R",gje:"H1MI05",gjø:"H2B",gjør:"H5Q",gs:"80I90WD0DF0OH11I0T",gt:"705921D0NF25H0RI18","gt ":"705926D0UF5SH0S",gv:"H08I0K",gy:"804F02G02H0EIMM","gy ":"805IMK",gye:"I6I",gyo:"I62",gå:"F23H1M",gö:"F1GI0CM47",gör:"F3YI05M7E",gü:"902A03I0AM3I",hab:"70Z80294BA5UB07I02M0M",hac:"707903A53F05L02","han ":"81RA13D02FFHG3AHF6","har ":"A0FB1NFG4HIEI05J04M06","hat ":"70L8MX986D05G0FI0VM0E",hav:"84JB1BD02F06G06H07I06M16",have:"87PB0KD05F06H07I03",hd:"802903G1WM02",heb:"903A02D53","heb ":"DB7",hee:"807C0BD3ZG0O",heef:"DAM","her ":"71R89B93HB0XH2NM4Y",here:"87T90CA03B0CC08D03G04","het ":"702DQGF1BG09H2HI3C",hey:"83MM0D",hij:"A0YD4Q","hij ":"DFK","his ":"7038CMJ0QM02",hj:"F0SG09H15",hje:"G08H1Q",hl:"80292QG05L03M0A",hm:"91CG0NL05M04","ho ":"819A3LB96C71G03L04",hog:"A05D02IBW",hogy:"IOC","hon ":"705928F9PG0GI19",hou:"708843B0UD1EG05",hr:"70480N965D0FG02L05M07","hr ":"94G",hre:"80P93ID07G06M04",ht:"8279A9D32G2BM15","ht ":"83W9BLD2K","hun ":"D1DG0MHA3",hv:"G08H5IM0B",hva:"G08H2QM08","hva ":"G06H6R",hve:"G02H1RM0L",hvo:"H3D",hvor:"H89",há:"A02B0MI2Z",hã:"B0F",hä:"910F3NG5S",hän:"90AF1EGHN","hän ":"GKG",häne:"GA2",här:"F7RG02","här ":"F9X",hå:"F0XH0F",hé:"70EA02C0XI0W",hö:"914F1JG03I09",hø:"H0X","i'":"827M0D",iac:"A03C4II02L0B",iam:"702804A08B18C9YG04I0BJ0GL0S",iamo:"A03B02CCY",iał:"L8P","ich ":"70380X9SGA02C04D2AL2Q",icht:"9LFD2V",ici:"72X80GA3MB20C4DD05F08I0CJ9ZL0JM0P","ido ":"A84B4WC0OL02",iedz:"L7I",iene:"90BA7WB02C0WD08G0MH05L0Z","iet ":"702807905DLBF0DG02H0PL03",igh:"70282ZC02D05F0SH11J02",igt:"70490KD07F53","igt ":"70390YD0RF6P",iin:"G9UJ0K","iin ":"GC9","ij ":"D81L0L",ijk:"D3I",ijn:"D87","ijn ":"DN9",ikk:"D07G6PHCOI04M0R",ikke:"D0RG0YHNRI06",inde:"703807933A07B07C03D3JF0CH0CI9EJ0YM5U",inge:"70780892UA06B03C0CD3AF60H86I09J0Q",inh:"903B93G07",inha:"702904B7L","ini ":"70FC20G1IJ0VMCC",inul:"GBJJ0Q",inun:"90GA02B02C02GAYJ0O",inä:"GBK","inä ":"GI2",iq:"70PA04B07","ire ":"7E380MA0CB05CFCD05G0AH0FI2AJ1DM07",isk:"803903D04F3JG2JH1WI0QL0SM09",iss:"74080M91ABAGC1UD0JF1VG6UH0TI1BM16",isso:"70PB99G06","ist ":"80T9K6D26F0FH1BJ0WL0HM06",ith:"70283XB02F02G02L02M03","ito ":"803A2PBA0C68G08","itt ":"90DF4QH6NI5U",ità:"C4G",itä:"907GDT","itä ":"GGE",iy:"MDH",iyo:"MIL",iyor:"MKC","iz ":"702A0OB1VM9Q",ià:"C08",iä:"G14",iç:"B0BM6B",içi:"MAF",için:"MBE",iè:"70N",ié:"70CA0PI16",ië:"D0F",iñ:"A0G",iò:"C0A",ió:"A3DI0KL0H","ió ":"A4EI0A",ión:"A6G","ión ":"A9N",iù:"C0W",ię:"LBV","ię ":"LH5",iğ:"M3S",iği:"M94",ił:"L4K",iş:"J02M3V","j'":"71U","j'a":"774","j'ai":"79W",jag:"FQD","jag ":"FSG",jd:"D14F06I0OL0L",jeg:"HHRI0DL2S","jeg ":"HSG",jest:"G0MLM6",jf:"D0GI02",jg:"D07L02",jk:"D2BF05I02L05","jk ":"D2B",jn:"D5II0BL0I","jn ":"D7O","jo ":"A43B0UG15H09",js:"D0BI0AL0Y",jt:"D08I1E",jv:"D0A",já:"B0LI3H",jä:"F1LG1I",jæ:"H08",jø:"H2I",jør:"H2P",kaa:"D0JGB7","kaa ":"G9I",kai:"G6LI0EM02","kan ":"D67FA6G1JH8PI0FM0M",kell:"903G2CIB9","ker ":"80A90PC02D2ZF7KHCUI05M09","ki ":"703A03B03C02G4MH02I5ZL5GM65",kj:"D04F05H2NI03",kje:"D05H2A",kjø:"H1J","kk ":"H29",kke:"D14G0YHEJI0PM07","kke ":"D06G02HNM",kla:"90GD0GF26G06H1TI04L0JM5A",kn:"825905D06F0TH0DI0TL0XM08",kno:"83L902D02L07M02",know:"86E",kom:"91ZD1MF6ZG0VH31I0ML17M0V",komm:"94HD03F6VG09H56I07",kor:"905D07F2CG1HH0FI4RL0KM1Q",ksi:"GAZH04L1LM14","ksi ":"GDQM05",kt:"91CD1YF2ZG05H2SI0UL2OM5D","kt ":"912D29F2SH17L0S",kte:"90ID0MF2LH1TI0CL03M4S",kv:"F0PH0II04",kw:"902D0HL0B",kä:"906F15G43",ké:"I52",kö:"90VF0ZG17I44M0Y",kı:"M4K","l'":"72VC2GM04","l'a":"76DC3D","lar ":"80F90DA2UB2WD08F5NH19J0JMAE",ları:"MBV",lc:"70280290EA08B03C14I0LJ0AL06M08",ldi:"807908A02C12D0AF1AH1MI04M5D",ldu:"902J06M9W",leri:"702905C02F02G03H06M97",lh:"702902B32F02G02H03I0Z",lho:"B5XI03","lig ":"90LD0KF2MH9JI0Q",lij:"D3EG0UI02J03L02",lijk:"D9Y",lik:"82U902D04F10G0TH2KI0IL0GM3S",lj:"D02F16G15H07I2A","lle ":"7IR931A0HC53D1AF5MGGRH9VM04",ller:"73080890YA08C0BD0MF3KG09H5OI05M0X",llä:"F03G91","llä ":"GDN",lma:"702A0AB0CC04D02F02G36I18J05MAM","los ":"70480490MAG6B1ID05G0ZI0AJ0JL02",lr:"807A02F06I0E","ls ":"74S80V92BD2BF0LH02",lui:"73BA04B06C4ED0FG0KJ8J","lui ":"74PB02C6WD03G04JD9",lw:"80BD02L09",lá:"A0AB0EI6D",lä:"90QF2SG4R","lä ":"F02GAF",lå:"F1FH0G",læ:"H0T",lé:"70XA0EB03I2X",lì:"C06",lí:"A0KB0EI0F",lö:"909F0XG0II0P",lø:"H0X",lă:"J26",lı:"M7Q","m'":"70N80CC02L02M4R","m'u":"M8S","m'un":"M8B",maa:"D2VG78M06","mai ":"702C40I0EJEE",mais:"782B8IG1H","mak ":"D02H04I02L03M8H",md:"903D0EF0AH02M20","med ":"80YF8WHB7I05",meg:"C0PH4LIEJL07","meg ":"HAXICL",mek:"G0NH03I0JL09M8Z","mek ":"I0CL0BM8F","mer ":"71C80G93SA1FB0YD23F6RH77I07L06M02",meu:"70GB59J2U",mig:"70580JA1WB2FC17D04F7FI02J03L03","mig ":"F9TI02",mij:"D3RJ06L03",mijn:"DA7",mind:"80J906B08D0DF0AH0CIE3M07",minä:"GB9","mit ":"708807979F0AG03ICJJ1M",mitä:"G9U",ml:"906D02F0HH0AI0JL05M1R",mma:"70F804902C0TD02F4UG1MH05I0H",mme:"77Z80E93PC0WD0HF58G7KH5KI0AM0A","mme ":"76190PC02D05F0CGAWH3U","mo ":"A6FB71CC8G0NL0K",moe:"B04D2V",mond:"72480F906C0OD0AIAYJ07","mos ":"AB3BAVI0HJ0Q",mt:"90QD0EF0RH0UI07J05L06",mui:"B6ZD02G19",muit:"B8EG09","my ":"835L7R",má:"A23B09I5K",már:"B03I4Q","már ":"I98",más:"A5TB0AI3O","más ":"A8QB0AI40",mã:"B0P",mä:"90DF0QG3S",må:"F1WH1W","må ":"F08H1N",mé:"70MA08B08I44",mí:"A0HB05I0H",mø:"H0J",mă:"J2Y",mı:"M5R","n'":"722866C0CM14","n't":"8BS","n't ":"8JF",naa:"D2MG1V",nagy:"IAD","nak ":"IGBL08M04",nb:"90BD0AF08H06I0OM02","nde ":"743931A3VB4IC1XD3MF69H3GJ4FM4K","ndo ":"804AE4BFICBZ",nek:"F02G0FH05IATL0FM0I","nek ":"ID8L0LM08",neke:"G03I9R","nem ":"93MB14ISGJ0AL0WM0F","nen ":"9DJA1AD8VF3KGKGH5FI0JM09",ngen:"70794GA06B04C07D4ZF60G03H78",nger:"72I812917C0PD1LF1RH6XI0QJ0B",nha:"802907B8LF02G0VI02","nha ":"B7WG0S",nho:"904B7KD02G0BI03",nich:"7029HRC02D02L0C","nie ":"70J91LC02D09F02I0ZJ17LSG",niet:"A03DLNL02","nin ":"F02G26M9Y",nlar:"M9D","nn ":"94SF0PH3EI06L02","nno ":"CA8L05",noe:"D0EH2ZM08",non:"71G804COCF02G0RI03","non ":"71ICSGG0LI07","nos ":"70UA7LB5TI14J0AL02",nou:"79980FB0SD02G0NJ1O",nous:"7CNG0U",now:"84JL2D","now ":"86W",nq:"70AA06B07C06",nsk:"F3EG2CH30","nte ":"73J92AAERBERCEGD0MFKMH2EI0OJ3S","nu ":"70YB02D0MF29G05JMAL0XMG5",nul:"708C0UG6OI1GJ48M03",null:"705902C1DGB4I03",nun:"90QA1LB28C08G6LI0EJ0YM94","nun ":"90AGAZM89","nut ":"D02F04GB6J0UL0BM02",nyt:"80MF08G5XH0AI0T","nyt ":"GA6I1M",nz:"91JA0FB02C1ND0CI0VJ09M08",ná:"B05I3E",nál:"I49",nã:"B64",não:"BLP","não ":"BOH",nä:"90BF1NG61","nä ":"GDF",nå:"F1PH1N",någ:"F4E",næ:"H09",nç:"707B0SM0N",né:"70UA07B02I3W",nó:"A08B0QI04L0B",nø:"H0I",nă:"J2E",nı:"M9X","nı ":"MBV","o'":"804C0AD05M05",oar:"804B07F04J9D",och:"714931A28B05C0AD0ZF6HJ0UL38","och ":"959D11F8NL03",ocê:"BH6","ocê ":"BHX",odo:"A4HB3GC0QG18I0GL1E","oe ":"802A02B03C02D1NG02H1P",oen:"B0FD1WF04G05H1L",oet:"A02B03C02D2FG08J02L02","of ":"876904B02D10",ogy:"803IC3","ogy ":"805INQ","oi ":"773B46C7MD07G5MJ5UL0D",oin:"72X832A03B02C03G5IJ05L03",oir:"75XG12",ois:"75N805A06B40C02G6MJ04L03",oit:"73EB1JD0TG7BJ03",oj:"A0JB0IF08G0RI04L4BM04",oldu:"I02MAA","ole ":"71I80I903A04B04C48D02GB2H0EL0P","oli ":"705C0VGAPI02J05L0L","olt ":"903F06H0AIBO","om'":"80OC07G02L04MBW","om'u":"M9Y","omi ":"B05C05F04GAUI5IL02M02",omm:"77880D924C0HD09F5NG1AH2UI0E",omme:"7AP80693JC0LD0HF5BG0FH6P","on'":"83XM23","on't":"86Y","ono ":"A0OB0GCJ3G0EL0E","ons ":"7BI81I902B09D2QF02","ont ":"7BI809902D0UF0JI13J06",oor:"80JD5G","oor ":"80VDB7",opp:"70980E902C1OD06F1OG1NH2TI02","oro ":"A0HB0IC8EG04L0D",orum:"902J05ME3","osa ":"703A24B18C8DG0CI08L04",oss:"71080K90CB4YC4SD04F1SG2WH1GI1L","ost ":"81Q905D0KF0DH0EI5IJBJL06M02",ostr:"A0JB0LCGKF03J0UL15","ott ":"90DF0UH08ICP","ou ":"71H8AJBHKD23J1E",oul:"72N84VG1AJ0O",ould:"88L","our ":"7CD85E",ous:"7K381UB04G0S","ous ":"7QP81LG07",out:"76K840B20D0BF02G0N","out ":"76186GD0P",ouv:"767B1AG03","ow ":"86KB02",owi:"806L8I",oy:"70G80EA1VM1K","oy ":"80CA5LM08",oz:"903A09B0DC0AD04I4BJ0BL2JM09","pas ":"7NKA0DB0ED0AF0OG06",pg:"D07H03","por ":"ACDB9GF04I02M0E",pou:"7AH803B1LG02",pour:"7DN803",powi:"L7U",prz:"LD2",prze:"LAN",przy:"L8S",pue:"A6S",pued:"A7I",py:"809G10L0NM02",pä:"908F03G2D",på:"F4UH4S","på ":"FCIH7D",pø:"H0F",pă:"J23","qu'":"77B",qua:"72G808903B8NC8V",que:"7LK80K904ANZBSDCB0","que ":"7OQ806ARCBRKC0W",quer:"70V903A28B88",ques:"73480LA0EB0DCBK",qui:"75S80PA81B5UC2J",qué:"70PA5C","qué ":"70RA7Y","r'":"804M04",rai:"79P810902A06B0XC1GG0KI04J08","rea ":"806A0GB04C06D02F02G02JC1",rec:"71780R91DA5CB72C0ZD0GF0GI03J4NL08M1H",rer:"71X80290YA0LB0QC0XD02F0JH2HJ0OM09","res ":"77K80K90SA8NB49D0GH18I0ZJ04L0AM02",rij:"B02D22J10",rj:"D02F0LG1JI10M03",rui:"70N804A0GB0EC7MD0SG03J0I",ruir:"704A05B04CBL","rum ":"926D04F0MJ0BL03MDZ",rw:"80390KD0EL10",rz:"912A06C05D0BI0MJ0ALDCM03",rze:"90LC03D03I0GLDD",rzy:"LAE",rà:"C0V",rá:"A1GB17I48",rä:"90MF2IG0U",rå:"F1VH0X",rè:"70U",ré:"71YA0UB04I1F",rí:"A2EB08I0C",ría:"A6MB0D","ría ":"A7S",rò:"C0U",ró:"A0NB0AI21L29",rö:"909F19G02I0T",rø:"H1H",rü:"918I13M2J",ră:"J4A","ră ":"J82",rı:"M7Z","s'":"70W802C05M04","s-":"71BB02I02J1E",saa:"B02G63M1K","sak ":"F0AI96M06",sco:"709808A0XB2WC4FD03J0VL02",sd:"902A08B03D06F04H05I0H",seg:"A1TB2UC2PF04H1XI1D",sei:"70Q947A09B2RC2HG1YH03I06J07","ser ":"73P80593KA2LB3FD05F2PH60I02L03M07",she:"855903D02F02G02I04","she ":"86Z",sic:"70380H93MA0RB0WC20J0KL02M02","sie ":"70E9FHC02D0KJ08L11","sin ":"70I803904A21F2TG9TH2PM5X",sinu:"GCBJ05",się:"LF3","się ":"LJI",sj:"D0EF0WH1JL06","sk ":"80HF1EH2OL04M02","ska ":"F8TG1UI0QL0J",ske:"80O902C02D03F18G2YH4SI09M0C",skj:"F0CH1O","sn'":"83H",sna:"802D04F1DH1QI0NL04M02","so ":"81B91ZA65BDOCBNG0IL04","som ":"B04F79HATI0R",sono:"B07CFS","ss ":"81Y94GF2LH1XI0F","ssa ":"709802B3KC1ZF0XGL5I0C",sse:"76S80V94CB7NC63D0VF0SG06H1RI0FM14","sse ":"74H91EB79C3YD06F02H1NI04","sso ":"BC7C7N",ssz:"I4N",ssä:"F02G6O","ssä ":"GAI","sti ":"B02C2UGA5I05M06","sto ":"905A4RB4RCCZF03G0FH0DL1C",stá:"A7LB8XI0A","stá ":"A81BA5",stä:"90EF2NG9I","stä ":"GB6","su ":"704A5WC0TG0DL12M0W",sunt:"A0AB09C04G08JEJ",sv:"903C0AD03F18G0BH13I04M02",sw:"80E906D03L1G",sz:"906INDLFB","sz ":"I7GL8Z",sza:"I4KL2O",sze:"903ID4L4V",szer:"IFSL06",szo:"I4BL0K",szt:"I4HL0Q",szé:"I4E",sá:"A03B07I2S",sã:"B10",sä:"907F1RG3S","sä ":"G8R",så:"F24H24","så ":"F41H35",sé:"70XA0KB05I3U",ség:"I4N",sì:"C0K",sí:"A0IB07I0Q",sö:"F0WG06I0NM42",söy:"M9A",söyl:"MAI",sø:"H0T",să:"JA3","să ":"JP5",sı:"M84",sın:"M92","t'":"70E81F902C03M02",taa:"904D1DGBNM02","taa ":"GD1",tai:"76K80KB0DC0PD02G4VI0CJ0N","tam ":"B0UIECJ09L1TM0W",tb:"802905A02D08F06H05I0QJ02M04",tc:"80FD02F02I05J04L06","ted ":"86VA1DH0FI39","tem ":"805909B6QD06IDHJ2NL51M02","tet ":"92XF28G09H5WI2CL03",tg:"907D09F02H02","th ":"70284YA02B02L02M02",tha:"7028DL904D02G06I0TM02",that:"8KNI1A","the ":"7028QB",ther:"70288H903D02",they:"86H",thi:"703891903M02",thin:"89L905",this:"86S",tid:"702A19B1GC07F3EH22J02M0A",tien:"71K807904A87C0DD0VF02G1HJ06","til ":"70680G902A0BB0DD08F04HFHJ07M04",till:"70981L907A0DD03FBDG0AH1A",tj:"D0IF0FH0BI0U",tk:"903D03F03G2YH02I0WL2BM0A",toi:"72GC0CG5SL04","tom'":"817G03L05MDE",tomi:"C02F03GIAI7HL04",tos:"704903A41B4RC0ZG2FI1UJ07L07M05",tou:"78F807B5UG06","tre ":"7EE802A17B12C3KF1VH24I0NJ3HM06",treb:"903C0NJC8",trui:"70GA09B08CBPD05J0B","ts ":"75S83C913D1RF16H0EI09","tt ":"90PFO9H70IEH",tta:"70E805906C4WF5UGDTH04I3EM0L","tte ":"76080294LC2ZD1BF0UG3BH96I4BM0G",tti:"70780J902C55D06F0RG6YH0HI05M72",tto:"707804CB1F0AG1UH04I03","tto ":"CEAF02G0B",ttä:"902GCR","ttä ":"GDI","tu ":"7BBA2PB0RC2AG1QJ1EL2HM1M",tw:"80E90YD0SL2N",tz:"92DD05",tà:"C1H","tà ":"C5K",tá:"A2IB2DI5A","tá ":"A5CB8H",tã:"B11",tä:"90IF1GGF4","tä ":"GNT",täm:"F0IG61",tämä:"G9W",tää:"GA5","tää ":"G9V",tå:"F0XH0U",té:"721A0EB0EI4Z","té ":"773A0UB19",tò:"C05",tó:"A0QB0AI2HL1I",tö:"905F0CG0WI38M03",tø:"H0F",tă:"J68","tă ":"JG5",tı:"M71","u'":"71I80O",ual:"70480M902A18B2AC4TG02J0FL05",uan:"71SA2RB57C3AG1PH05M03",uch:"71481793NA4AD0AL1F",ued:"804A6CB04J02",uer:"71M90QA5RB75C0AF02H05",ues:"72N80J904A3DB0FC7IG04H02",uest:"71180NA4BB09CBJG02",ugh:"82V902J05",uh:"70290LG1QH02I0CM0J","ui ":"786A0CB3SC6WD02G2LJBB",uie:"70H803A5PB03J59",uir:"70M804A0MB0OC7PG02J03",uire:"70S805B02CBP",uis:"76N803A0LB0XC07D1FG21",uit:"72L80KA0IB75C0BD2MG0LJ3E",uito:"A06B7BC0AJ06",uld:"84T90DB07D0BF07M1F",ull:"70580F902A09C1KD1NF48G93H1QI09M1D","uma ":"A06BD8C02G0EI02J09M0H",una:"703805903AA9B07C7TG2CI06J2TM1P","una ":"AE3B04CBLG1DJ3EM1L","und ":"81R9C1F1DH0SJ09",une:"7AJ805908A0AB02C0LG0ZH03J4QL05","une ":"7FQ804904C0EJ3S",unk:"80690EF0DG0OH07I58L0IM02","unk ":"808I9F",unn:"807902C07D0NF14G33H27","unt ":"80A902D1HF0DJD4",unu:"G1QJ1CMEA","unu ":"G02J06MC2",uo:"70IA03B03C3JG58L02",utt:"70380690HC4WF0IG78H17I02M0K",uu:"D0RG5F",uw:"D1ZL0Q","ux ":"7A6",uy:"70280CA12M3V",uz:"903A07B09C04D07I04J10L0GM2X",uá:"A0MI02",ué:"70DA20B0H","ué ":"715A5F",uí:"A0OB06",uò:"C0C",uğ:"M3G",uğu:"M8G","v'":"C04",vad:"A0DB0IC2ED0DF5DI0CJ0BM05","vad ":"F6YI03",vag:"706A03B08C08F04I5VJ02",vagy:"IDS",vai:"76E802A03B2QC2BG67I03","van ":"A0MDGZF06G4GIGPJ05M05","var ":"A0KB0RFCEHAII06M72","vat ":"D06F04GCVI05J0VM05",vd:"F06H09M0L","ver ":"72084M904A29B35C0LD4NF4ZH5UI05J05M12","vet ":"F3TG05H5JI2CM0L","vil ":"804A06B02H7M",vill:"717805A0AC05F68G0NH2HI0F",vl:"D0FF0BH03M0K",vn:"F03H0GI04","vo ":"A2HB2SC51G03",voc:"705A0EBH9C0DD02J0D",você:"BJX",voi:"75I806C2DG7OJ50",volt:"B1KC21D02IDFJ08",voo:"B04D34G02",voor:"DB7",vor:"706807921A1MB23C4UD0BF0JH3IJ4EM04",vou:"7E5804B2LD02",vous:"7JG805",vr:"712B0MC0PD1PF04H02I02J1TM0I",vv:"C0GI03",vá:"B07I3Y",vä:"F3EG46",vå:"F15H0L",væ:"H1T",vær:"H2W",vé:"70KA03B02I2Z",waa:"D2P",waar:"D93",wan:"83890OD0ML2P",war:"80M93ZC02D0QL1A",was:"87K93ND2PL0G","was ":"8BP97SD9DL0A",wat:"80OD2TL08","wat ":"D93L03",wd:"D06L18","we ":"835D30L1J",wee:"70480QC04D2KJ03L04",wh:"84L",wha:"83GB02",wie:"937D0PLE2",wil:"821914D23L0O",wir:"94UL02",wit:"83S904D06L0B",with:"86O",wn:"80OL1S",wo:"83292CD24L5L",wr:"80EL0T",ws:"80FD03L33",wy:"L6E",xa:"704805A05B0KD02F05J05",xc:"704805A04B03J03",xp:"70680FA0AB09J0A",xt:"70380D902A0CB06F05J04","y'":"80HM2E",yap:"I05MDO",yb:"809I0GL1FM0E",yc:"803F2FL3XM02",yck:"F6T",ycke:"F6Q","ye ":"703804A05H1LI0SM7Z",yg:"F0IH0FI04L14M0D",yh:"F02G17I09",yi:"80KG0NI2CM64","yi ":"G16I0UM9T",yk:"F06G1CH14I09L1ZM09",yle:"707804G0LI0DL0CMB8",ym:"702807902F07G12H05I0DL53M0D",yor:"702802A0OB02C02F03G03I0MJ03MRC","yor ":"A0JMH0",yoru:"MF8",you:"7028DI","you ":"8HL",yt:"80JF0FG41H0QI16L22","yt ":"F02G6BH03I0XL0R",yv:"F02G1DH04I0UM07",yy:"G1C",yö:"G1VI0AM06",yı:"M4L",ył:"L4H","z-":"70S","ze ":"70780A90QB0AC0OD4ZI0YJ1FL6VM2C",zer:"80290BB5YC09D03I6YJ08L11M1C",zere:"B02IAGM0A",zie:"90RC19D1PJ0DLCA",zij:"D5P",zijn:"DGG",zio:"B02C7OL0E",zion:"CALL08",zt:"916I8EL0J","zt ":"918I70",zu:"964A03B02C02D0II0UJ0SL22M0T","zu ":"95XL0KM0D",zw:"90RD0EL1Z",zy:"802LEPM06","zy ":"804LA5",zá:"A02I3U",zé:"I3I",ß:"90P",ße:"910",à:"71SB0EC13","à ":"73TB0QC2N",á:"A2OB2SIDM","á ":"A2NB46I11",áb:"A05B03I2U",ág:"A03B0AI37",ál:"A09B07I9K",án:"A1AI66",ár:"A08B0OI8U","ár ":"I55",ás:"A2HB0EI5X","ás ":"A7NB16I3G",át:"A06B06I77","át ":"I6B",â:"706B04J34M0B",ân:"B09J3Z",ã:"B4L","ã ":"B0I",ão:"BA3","ão ":"BS0",ä:"91MFDYGMG","ä ":"F02GKQ",äg:"907F1J",äh:"90SG1S",äi:"G2M",äk:"F0OG1G",äl:"90IF3OG2M",äm:"905F0ZG2C",ämä:"G6Z",än:"90ZF5FGBF","än ":"F2NGNO",änd:"90PF3P",äne:"903G67",är:"90QFFXG1K","är ":"FRUG03",äs:"90BF1AG2E",ät:"90YF2FG2Y",ätt:"90MF4NG23",äv:"F0BG1F",äy:"G20",ää:"G7Z","ää ":"GB6",ään:"GBF","ään ":"GGF",å:"F8XH5K","å ":"F7PHDU",åd:"F0KH0G",åg:"F2T",ågo:"F41",åk:"F0SH0I",ål:"F17H0J",ån:"F2PH0I",ång:"F43",åp:"F02H0F",år:"F33H3Q","år ":"F69H4L",ås:"F15H05",åt:"F1MH0Z",æ:"H0V",ær:"H3E",ære:"H2U",ç:"70IB1HM61","ç ":"M3F",ça:"70WB1GM3B",çi:"M5A",çin:"MAH","çin ":"MAR",ço:"706B0OM4H",çok:"M95","çok ":"MA9",çã:"B18",è:"71AC2O","è ":"C6A",èr:"719",ère:"764",ès:"70R","é ":"74LA3LB5BC0ZD02F04I0W",éc:"718A03B04I02",ée:"71I","ée ":"75J",ég:"70BI6T","ég ":"I55",ék:"I32",él:"70IA1WI6U","él ":"A5YI3F",ém:"70AA02B0SI14",én:"70AA0RD05H03I61",ép:"70PI2H",ér:"714A08B0AI81",ért:"I5V",és:"711A13B07I7V","és ":"72RA34B0MI6O",ét:"728A03B03I45",ê:"70WB2M","ê ":"B43",ên:"B0I",ês:"B1J","ês ":"B6H",êt:"71I",ë:"D05","ë ":"D0B",ì:"C0F","ì ":"C10",í:"A2XB0XI2F","í ":"A1ZB03",ía:"A4PB05","ía ":"ABLB02",íc:"A0DB0F",ít:"A05B04I3K",î:"707J50",în:"703J9M","în ":"JFS",ñ:"A0X",ña:"A13",ño:"A1H",ò:"C0T","ò ":"C1Z",ó:"A2SB0YI3TL4P","ó ":"A41B0FI3D",ól:"A0AB04I3BL0G","ól ":"I4SL0C",óm:"A0JI07",ón:"A33I0I","ón ":"A8FI07",ós:"A03B0VI0OL08",ô:"707B06",õ:"B07",õe:"B0I",ö:"915F7KG2BI4TM3Z","ö ":"F06G1A",ön:"915F0OG0LI3MM2G",ör:"90WF98G08I2SM3B","ör ":"903FBII0EM09",örs:"902F3R",öv:"F1QG02I12M04",öve:"F47I11",öy:"G0IM43",öyl:"MAC",öyle:"MAX",ø:"H33",ød:"H0Z",øk:"H0S",øl:"H0S",øm:"H0G",øn:"H11",øp:"H0P",ør:"H4D","ør ":"H27",øre:"H2H",øs:"H0R",øt:"H0Q",øv:"H0M",øy:"H12",ù:"706C0E","ù ":"70DC0X",ú:"A0KB0CI1I",ún:"A0KB05I04",û:"706",ü:"924I2XM80",üb:"91HM03",üc:"915M0C",ül:"908I4UM18",ün:"90LI2GM7P","ünk ":"I97",ür:"926I0CM3B",ă:"JGA","ă ":"JN9",ăr:"J36",ăt:"J1W",ą:"L5Z","ą ":"L82",ć:"L55","ć ":"LC4",ę:"LAM","ę ":"LHC",ğ:"M63",ği:"M95",ğin:"M8G",ğu:"M3T",ğı:"M5K",ı:"MIA","ı ":"MJR",ık:"M4Q",ıl:"M4N",ım:"M8D","ım ":"MEZ",ın:"MFG","ın ":"MFK",ınd:"M9C",ında:"MA4",ını:"MD9","ını ":"MB3",ır:"M6S",ıy:"M5K",ıyo:"MAH",ıyor:"MBU",ız:"M4Y",ış:"M42",ł:"LD6","ł ":"L9M",ła:"L7F",łe:"L66",łem:"L8V","łem ":"LCC",ło:"L5O",ń:"L11",ő:"I3H","ő ":"I36",œ:"704",ś:"L5Z","ś ":"L4S",ş:"J0HM73",şa:"J03M3L",şe:"J03M4F",şı:"M3O",ţ:"J0J",ű:"I0Q",ź:"L0Q",ż:"L6C",że:"L6F","że ":"L97",ș:"J4G",și:"J3U","și ":"J9Z",șt:"J4E",ști:"JAL",ț:"J47",ți:"J78","ți ":"JDV","̇":"M0I",а:"KPL","а ":"KQP","ает ":"K8F",ал:"KFF","ал ":"KEI",ать:"KHM","ать ":"KJY",б:"K8X",в:"KGE",во:"KDH",г:"K7J","гда ":"K8F",го:"KFL","го ":"KIF",гово:"K7T",д:"KDR","да ":"KBW",де:"KEC",дел:"KBG",дела:"KAA",е:"KQR","е ":"KSG","ебе ":"K7E",его:"KD0","его ":"KEP","ему ":"K8J",ен:"KFZ","еня ":"K9Q",ет:"KEY","ет ":"KH9","ешь ":"K8B",ж:"K55",з:"K7K",и:"KLO","и ":"KOL",ит:"KEI",ить:"KBZ","ить ":"KDO",й:"K5A","й ":"KFB",к:"KCN",ка:"KDZ",каза:"K8T","как ":"K8Q",ко:"KFV",л:"KH7","л ":"KFG","ла ":"KBG",ли:"KD3","ли ":"KFU",м:"KGY","м ":"KLY",меня:"KA4","мне ":"KD2","му ":"KB9",мэри:"K7J",н:"KNA",на:"KM8","на ":"KL5",не:"KO8","не ":"KSF",ни:"KGM",но:"KGF","но ":"KH9",о:"KSG","о ":"KSG",ов:"KD4",овор:"K7V",огда:"K7L","ого ":"KC5","ой ":"KE1",ом:"KKG","ом ":"KOQ",он:"KEA","он ":"KC6","она ":"K9G",ост:"KD5",п:"KBR",по:"KKF",пр:"KE6",про:"KDL",р:"KG0",ра:"KHG",ро:"KEM",с:"KJD",сказ:"K7O",ст:"KJO","сть ":"K7P","сь ":"KC0","ся ":"KIV",т:"KPL","т ":"KHV",та:"KD7",те:"KG3","те ":"KCM",то:"KSA","то ":"KRY",том:"KOJ","том ":"KO7","тся ":"KC4","ты ":"KFY",ть:"KIB","ть ":"KR5",у:"KCT","у ":"KIJ",ф:"K0T",х:"K3O",ц:"K1K",ч:"K84",что:"KKH","что ":"KLT",ш:"K4M",щ:"K19",ъ:"K05",ы:"K9R","ы ":"KJX",ь:"KAJ","ь ":"KP3","ься ":"K8D",э:"K3E","эри ":"K7I",это:"KJ4","это ":"KIC",ю:"K3E",я:"KBD","я ":"KRD",ё:"K2N","​":"207",一:"2H5",不:"2I1",不知道:"2DC",了:"2N1","了 ":"2I3",人:"2AJ","什么 ":"2E0",什么时候:"2Q1",他:"2JJ",你:"2K8","吗 ":"275","嗎 ":"25T",在:"2FQ",她:"29M","工作 ":"2C6",我:"2SG",我不知道:"2SG",我们:"27C",我的:"26P",是:"2JR",有:"2E7",汤姆:"27V",的:"2S3","的 ":"29E","的时候 ":"2RL",要:"28S"},uniques:{" aan":"d"," aic":"j"," aik":"g"," aiu":"c"," ao ":"b"," aos":"b"," as-":7," até":"b"," auf":9," auz":"j"," aí":"b"," aú":"a"," cee":"j"," chc":"l"," cs":"i"," ctr":"k"," cu ":"j"," cua":"a"," cóm":"a"," daa":"d"," dl":"l"," dzi":"l"," där":"f"," dår":"h"," dés":7," día":"a"," dón":"a"," död":"f"," ea ":"j"," ear":8," eat":8," een":"d"," eft":"f"," elä":"g"," em ":"b"," epl":"h"," etm":"m"," etw":9," ez ":"i"," ezt":"i"," fez":"b"," fi ":"j"," fiq":"b"," fje":"h"," gaa":"d"," gi ":"h"," gic":"f"," gik":"h"," gje":"h"," gân":"j"," göz":"m"," hje":"h"," hoz":"i"," htt":"k"," hv":"h"," há ":"b"," hâl":"m"," hög":"f"," i'":8," i-":"j"," iar":"j"," ied":"d"," iet":"d"," if ":8," iga":"i"," igj":"h"," ihn":9," iht":"m"," ik ":"d"," ilg":"m"," ilm":"g"," ils":7," ily":"i"," isn":8," it'":8," iub":"j"," iy":"m"," iş":"m"," já ":"b"," kje":"h"," ks":"l"," kt":"l"," kuo":"g"," kuu":"g"," kå":"h"," l-":"j"," lh":"b"," lj":"f"," lle":"a"," luu":"g"," lá ":"b"," låt":"f"," m'a":7," m-":"j"," mj":"f"," mni":"l"," muj":"a"," mè":7," n'a":7," n-a":"j"," ne-":"j"," når":"h"," nós":"b"," oam":"j"," ock":"f"," odp":"l"," og ":"h"," ogg":"c"," ogs":"h"," ohn":9," oik":"g"," olh":"b"," olm":"m"," op ":"d"," oth":8," oí":"a"," pe ":"j"," päi":"g"," rz":"l"," s'e":7," s-":"j"," sb":"c"," sd":"c"," sg":"c"," sje":"h"," szc":"l"," szü":"i"," te-":"j"," tiv":"b"," tym":"l"," työ":"g"," täm":"g"," tè":"c"," töb":"i"," tú ":"a"," túl":"i"," ucc":"c"," un'":"c"," uo":"c"," up ":8," usc":"c"," usk":"g"," v-":"j"," veu":7," vri":"d"," vro":"d"," vän":"f"," way":8," wij":"d"," wo ":9," ws":"l"," wur":9," xí":"b"," yh":"g"," yk":"g"," yl":"g"," ym":"g"," yri":"g"," ys":"g"," yü":"m"," za ":"l"," zas":"l"," zaw":"l"," zd":"l"," zi ":"j"," zij":"d"," zm":"l"," zn":"l"," zo ":"d"," zos":"l"," zr":"l"," zu ":9," |":6," ° ":"c"," ½":9," áll":"i"," án":"a"," äls":"f"," än ":"f"," är ":"f"," äta":"f"," äte":"f"," åk":"f"," åp":"h"," åt ":"f"," ça ":7," çal":"m"," ço":"m"," è ":"c"," é ":"b"," ért":"i"," éta":7," été":7," éx":"a"," éé":"d"," ír":"i"," îm":"j"," în":"j"," ôn":"b"," önc":"m"," öpp":"f"," öss":"i"," úg":"i"," új":"i"," ō":9," şe":"m"," şi ":"j"," şt":"j"," ।":6," २":6," ঈ":5," ঋ":5," ঔ":5," ৩":5," ৪":5," ৬":5," ৮":5," ―":"k"," ‟":9," №":"k"," ご":1," ウサギ":1," エレベ":1," コ":1," ジ":1," テ":1," ド":1," ネズミ":1," バ":1," パ":1," フ":1," ボ":1," マ":1," メ":1," 一人":1," 一日":1," 一般的":1," 不好意":2," 両親":1," 中国語":1," 二人":1," 交通事":1," 今 ":1," 今夜":1," 今度":1," 今晩":1," 今朝":1," 今週末":1," 他一":2," 他不":2," 他人":1," 他可能":2," 他在":2," 他把":2," 他有":2," 会議":1," 何時":1," 俺":1," 僕":1," 先週":1," 列車":1," 労働者":1," 北海道":1," 午前中":1," 博物館":1," 合衆国":1," 君":1," 因為":2," 地下鉄":1," 基本的":1," 外国":1," 多分 ":1," 大学":1," 大家":2," 如":2," 子":1," 実際":1," 宿題":1," 富士山":1," 少年":1," 心配":1," 我今":2," 我从来":2," 我从没":2," 我以":2," 我会":2," 我叔叔":2," 我只":2," 我可":2," 我和":2," 我哥哥":2," 我喜":2," 我妹妹":2," 我完全":2," 我就":2," 我希":2," 我弟弟":2," 我必須":2," 我必须":2," 我感觉":2," 我打算":2," 我把":2," 我无法":2," 我明":2," 我昨":2," 我更喜":2," 我最近":2," 我正在":2," 我没":2," 我無法":2," 我父":2," 我爸爸":2," 我現在":2," 我相信":2," 我看":2," 我知":2," 我能":2," 我覺得":2," 我觉":2," 我認為":2," 我认":2," 我讨厌":2," 我需":2," 我非常":2," 所以":2," 所有":2," 放課後":1," 政治家":1," 新聞":1," 旅行":1," 日曜":1," 昨夜":1," 是的 ":2," 時々 ":1," 晩ご飯":1," 最初":1," 最近 ":1," 最近彼":1," 月日":1," 有些人":2," 来週":1," 残念":1," 湯":2," 現在 ":1," 看護婦":1," 私":1," 科学者":1," 突然 ":1," 結婚":1," 結局":1," 萨米":2," 請":2," 警察官":1," 谢谢 ":2," 這":2," 那":2," 電話番":1," 電車":1," 風邪":1," 飛行":1," 갈 ":3," 같":3," 걱정":3," 걸":3," 결국 ":3," 결혼":3," 경찰":3," 계속":3," 곧 ":3," 공":3," 과학":3," 괜찮":3," 궁금":3," 날":3," 남":3," 넌 ":3," 널 ":3," 네":3," 년 ":3," 노래":3," 노력":3," 누":3," 당":3," 대":3," 더":3," 동":3," 돼 ":3," 되":3," 될 ":3," 두 ":3," 둘 ":3," 때":3," 떠났":3," 또 ":3," 많":3," 먹":3," 메":3," 몇 ":3," 모":3," 몰랐":3," 못":3," 문":3," 뭘 ":3," 미":3," 바":3," 방법":3," 배":3," 번역":3," 벌써 ":3," 본 ":3," 볼 ":3," 봐 ":3," 부":3," 비":3," 살":3," 새 ":3," 생":3," 선생":3," 소":3," 싶":3," 알":3," 언":3," 엄청 ":3," 영":3," 오":3," 완전":3," 왜":3," 운전":3," 음식":3," 음악":3," 잘":3," 재미":3," 저":3," 적":3," 전":3," 절대":3," 점심 ":3," 정":3," 조금":3," 좀":3," 죄송":3," 줄 ":3," 중":3," 줘 ":3," 진짜":3," 질문":3," 집":3," 참 ":3," 처음 ":3," 친구":3," 침대":3," 커피":3," 컴퓨":3," 큰 ":3," 텔레비":3," 파티":3," 프":3," 학교":3," 학생":3," 할":3," 함께":3," 항상":3," 행복":3," 훨씬 ":3," -":9,"'ae":"c","'ai ":7,"'aim":7,"'cl":8,"'d ":8,"'da":"m","'e-":"c","'ea":7,"'eb":"c","'ell":7,"'ep":"c","'eq":"c","'fb":"c","'ha ":"c","'ho ":"c","'hu":7,"'il ":7,"'j":"d","'k":"d","'ll":8,"'ni":"m","'on ":7,"'ou":7,"'ov":"c","'re ":8,"'uc":"c","'uf":"c","'ug":"c","'une":7,"'uo":"c","'uv":"c","'ve":8,"'y ":7,"'ye ":"m","'yi":"m","'à":7,"'á":"b","'â":7,"'è ":"c","'é":7,"'ê":7,"'î":7,"'ü":"m","(-":"k","(q":"b","(y":"a","(z":9,"-$":"n","-'":"m","-ai ":"j","-am ":"j","-ar ":"j","-au ":"j","-ce ":7,"-ell":7,"-il ":7,"-je ":7,"-l ":"j","-lh":"b","-lo ":"b","-là":7,"-me ":"b","-mi ":"j","-moi":7,"-t-":7,"-tu ":7,"-ul":"j","-vou":7,"-à":7,"-ã":"b","-ê":7,"-í":"b","-ó":"i","-ö":"i","-ş":"j","a'd":"m","a'y":"m","aag ":"d","aak ":"d",aakt:"d","aam ":"d",aav:"g",abg:9,acj:"l",acz:"l",adei:"b",afí:"a",agte:9,"agy ":"i",ahd:"g","ahr ":9,aike:"g",aior:"b","ais-":7,aiut:"c",aixo:"b",ajud:"b",alál:"i",amay:"m",ambé:"b","an't":8,apm:"m",aquí:"a",ardz:"l",areb:"c",arfö:"f",arum:9,arü:9,arş:"m",aszt:"i",atok:"i",atât:"j",aufe:9,augh:8,auj:7,autt:"g",avea:"j",avev:"c",avne:"h",avve:"c",avô:"b",ayac:"m",ayud:"a",ayó:"a",azla:"m","azt ":"i",azón:"a",azú:"a",aá:"i",aã:"b",aä:"g",aî:7,aö:"i",aún:"a",baix:"b",baş:"m",berä:"f",besz:"i",bge:9,"biz ":"m",bién:"a",blij:"d","bly ":8,brz:"l",brí:"a","bst ":9,buie:"j",bunu:"m",buon:"c",buu:"d","bym ":"l",bã:"b",bäs:"f",bäu:9,"bè ":"c",bém:"b","bí ":"a","bía ":"a",bî:7,bô:"b",börj:"f",bù:"c",büc:9,"c'es":7,"c'è":"c",cche:"c",ccia:"c",cció:"a",ceea:"j",cepu:"j",chce:"l",chg:9,chk:9,chod:"l",chä:9,chí:"a",chö:9,chü:9,ciod:"j",ciun:"j",ciut:"c",cji:"l",ckan:"f",cma:"j",cois:"b",coj:"a",colh:"b",conh:"b","cos'":"c",csa:"i",cse:"i",csi:"i",cuan:"a",cuch:"a",cuel:"a",cuen:"a",cug:"c",cuie:"j",cuol:"c",cuá:"a","cz ":"l",czas:"l","cze ":"l",czeg:"l",czek:"l",czn:"l",czo:"l",czu:"l",czy:"l",câi:"j",câm:"b",cât:"j",cã:"b",cä:9,cç:"b",cên:"b","cí ":"a","d'h":7,"d'v":8,"d'è":"c","d)":8,daag:"d",daar:"d",daq:"b",davv:"c",daví:"a",daş:"m",ddl:8,degl:"c",deia:"b",dein:9,deir:"b","deu ":"b",deut:9,dey:"m",didn:8,dijo:"a",dinh:"b",dly:8,"dn'":8,"don'":8,dovr:"c",dovu:"c",drik:"h",drz:"l",drí:"a",drü:9,"dta ":"i",dtam:"i","du-":"j",duw:"d",duy:"m","dzi ":"l",dzia:"l",dzie:"l",dzis:"l",dzo:"l",dzy:"l",dà:"c","dá-":"b",dã:"b","dä ":"g","dän ":"g",dät:"g","då ":"f",dål:"f",dè:7,dép:7,dê:"b","dí ":"a","día ":"a",días:"a",dîn:7,dô:"b",dörr:"f",dúv:"b",dû:7,"dü ":"m","dün ":"m",dō:9,"e'r":8,"e'v":8,eady:8,easc:"j",eaun:"j",eave:8,ebè:"c",ecek:"m",eceu:"b",ecir:"a",ecv:"j",ediy:"m",edzi:"l","eea ":"j",eeft:"d",efd:"d",egou:"b",egé:"i","ehe ":9,"ehr ":9,ehs:9,"eht ":9,einm:9,"eio ":"b",eix:"b",ejor:"a",ejó:"a","ekk ":"h",elbs:9,eliy:"m",ellä:"g",elq:7,emey:"m",emiy:"m",emps:7,"emu ":"l","en't":8,enx:"b",enía:"a",eopl:8,eoz:"c",epoi:"b",epui:7,erug:"d","es-t":7,"es-v":7,"esc ":"j",esoi:7,eszc:"l",euch:9,eux:7,"ev'":"c",evn:"h",ewh:8,eyec:"m","eyi ":"m","ezt ":"i",ezte:"i",ezza:"c",ezó:"a",eã:"b","eä ":"g",eça:"b","eço ":"b",eë:"d","eí ":"a",eía:"a",eíb:"a",eíd:"a",eî:"j",eïn:"d",eón:"a",eû:7,"e‘":9,"fa'":"c",fap:"j",faut:7,fazl:"m","fd ":"d","fde ":"d",fds:"d",feel:8,fej:"i",few:8,ffn:9,fft:9,fiec:"j",figl:"c",fikk:"h",filh:"b",flé:7,foar:"j",fois:7,forh:"h",frum:"j",frå:"f",frè:7,frü:9,fuer:"a",fuo:"c",fà:"c",fâr:"j",fã:"b",fäh:9,fåg:"f",fç:"m","fè ":"c",fèr:7,fía:"a",fô:"b",förs:"f",förä:"f",fû:7,füh:9,"g)":8,gaat:"d",ganh:"b",gdy:"l",gdz:"l",gece:"m",geef:"d",geht:9,gesa:9,geï:"d",ggh:"c","ggi ":"c",ggia:"c",ggs:8,ghb:8,ghl:8,giap:"c",gick:"f",gikk:"h",gioc:"c",giov:"c",gitm:"m",gjer:"h",glei:9,glez:"j",glio:"c",glöm:"f",glü:9,goed:"d",gof:"c",good:8,"gou ":"b",gråd:"h",grü:9,gså:"h",gth:8,guf:"c",guma:"b",guv:"j",gye:"i",gyi:"i",gynn:"h",gynt:"h",gyo:"i",gysz:"i","g ":9,gând:"j",gã:"b",gåe:"h",gån:"f",gè:7,gée:7,gía:"a",görm:"m",görü:"m",gù:"c","gún ":"a","gün ":"m",güz:"m","h)":9,hace:"a",haci:"a",hagy:"i",hci:"l",hdä:"g","he'":8,hear:8,hebb:"d","hed ":8,heef:"d","hey'":8,hiam:"c","hij ":"d",hijo:"a",hjem:"h",hjer:"h",hlen:9,hlt:9,hly:8,hlä:9,hnen:9,hnl:9,"ho'":8,hodz:"l",hogy:"i",homb:"a",houd:"d",houg:8,hoy:"a","hoz ":"i",hoş:"m",hrer:9,hrh:9,hrl:9,hrs:9,hrt:9,"hst ":9,http:"k",htä:"g",huo:"g",huvu:"f",huw:"d",hvé:"a",hyv:"g",hár:"i",hã:"b","hän ":"g",häne:"g","här ":"f",hål:"f",hån:"h",håp:"h",hç:"m","hí ":"a",hís:"a",hív:"i",hô:7,höv:"f",hō:9,hş:"m","h‘":9,"i'l":8,"i'm":8,"i'v":8,iacc:"c",iagg:"c",iapp:"c",ibt:9,icz:"l",idzi:"l",idä:"g","iec ":"l",iedy:"l",iedz:"l","iej ":"l",iejs:"l",ielä:"g",igje:"h",igk:9,igvi:"h",igå:"f","ihm ":9,ihmi:"g","ihn ":9,"ihr ":9,ihå:"f",iic:"j",iik:"g",iim:"g","iin ":"g",ijb:"d",ijd:"d",ijf:"d",ijg:"d",ijh:"d","ijk ":"d",ijke:"d","ijn ":"d",ijp:"d",ijt:"d",ijv:"d",ijz:"d",iliy:"m",ilye:"i",incs:"i",inál:"i",iní:"b",ioda:"j",ious:8,ioè:"c",irim:"m",irj:"g",irkl:9,"is-j":7,issz:"i",isä:"g","it's":8,"iu-":"b",iua:"j",iuc:"c",iune:"j",iuo:"c",iusc:"c",iuto:"c",ivät:"g",ixar:"b",iye:"m",iyi:"m",iyo:"m",izio:"c",ià:"c",iã:"b","iä ":"g",iça:"b",iço:"b",ièm:7,iée:7,"ién ":"a",iê:"b",ië:"d",ií:"i",iô:"b",iù:"c",iü:"i","iş ":"m",işe:"m",işi:"m","j'":7,"j-":"i",jaar:"d","jag ":"f",jahr:9,jds:"d",jdt:"d",jedz:"l","jeg ":"h",jego:"l",jelp:"h",jert:"h",jetz:9,jeun:7,"jf ":"d",jft:"d","jg ":"d",jge:"d",jgt:"d",jij:"d",jj:"i",jkh:"d",jks:"d",jkt:"d","jl ":"d",jls:"d",jnl:"d",jns:"d",jnt:"d",joit:"g",jota:"g",joue:7,"jp ":"d",jpe:"d",jpt:"d",jull:"d",juo:"g",juu:"g",jze:"d",jzi:"d",jà:7,jár:"i",ját:"i",jã:"b","jä ":"g",jälv:"f",jå:"h","jé ":"a",jól:"i","kaa ":"g",kauf:9,kijk:"d",kims:"m",kiş:"m",kjed:"h",kjel:"h",kjem:"h",kjen:"h",kjer:"h",kkä:"g",knew:8,know:8,kolm:"g",komt:"d",ksj:"h",kså:"f",kuin:"g",kvel:"h",kvä:"f",kâ:"m","kä ":"g",känd:"f",käv:"g",kåt:"h",kç:"m",kép:"i",kér:"i",kés:"i",két:"i","kö ":"g",köny:"i",köz:"i",kú:"i",kû:"m",kō:9,kş:"m","l'f":"c",laub:9,laş:"m",lbst:9,lcos:"c",lcun:"c","ldu ":"m",left:8,letz:9,"lf-":8,lfd:"d",lgd:"d",lgoz:"i",lgui:"a",lgum:"b",lgú:"a",ligv:"h",lijk:"d",liw:"l",lkä:"g","ll'a":"c","ll'e":"c","llä ":"g",lmay:"m",lmiy:"m",lox:"c",lsj:"d",ltc:"j",ltij:"d",ludz:"l",lvf:"h",lví:"a",lway:8,lyck:"f","lz ":9,lâng:"j",lã:"b",lära:"f",låd:"f",låg:"f","låt ":"f",lè:7,lên:"b","lí ":"a",lía:"a",lû:7,"m'u":"m","m'è":"c","m-v":"b",mawi:"l",mbié:"a","mdi ":"m",megt:"i",megy:"i",mehr:9,meir:"b",mejo:"a",melh:"b",meye:"m",meyi:"m",miei:"c",migh:8,migl:"c",mijn:"d","miz ":"m",miè:7,miş:"m",mjö:"f",mmt:9,mmä:"g","mo-":"b",moet:"d",moje:"l",mq:"c",mulh:"b",muut:"g","muy ":"a",myck:"f",mye:"h",myö:"g","m ":"b",mâi:"j",mânc:"j",mã:"b","mä ":"g",mås:"f",måte:"h",mèr:7,mée:7,mêm:7,"mí ":"a",mía:"a",mój:"l",möc:9,mún:"a",mû:7,müss:9,mş:"m","n'ai":7,"n'd":"m","n't ":8,"n'y":7,"n'è":"c",nagy:"i",namn:"f",nauc:"l",nció:"a",nehm:9,neue:9,next:8,nft:9,nfí:"a",nhec:"b","nho ":"b",nhv:"h",niej:"l",niin:"g",niy:"m",niè:7,nká:"i",nly:8,nnhe:"h",nnr:"h",nnsk:"h",nnst:9,"nnt ":9,nnte:9,nnå:"h",nodi:"d",nooi:"d",noth:8,nouv:7,"now ":8,noë:7,"nq ":7,nskj:"h","nu-":"j",nuev:"a",nung:9,nuov:"c",nuw:"d",nuş:"m",nvän:"f",nych:"l",nyel:"i",nyth:8,nyv:"i",nyá:"i","nz'":"c",nzio:"c","n­":9,"nál ":"i",nã:"b","nä ":"g",näi:"g",näk:"g",någ:"f","når ":"h",nçai:7,nças:"b",nè:7,née:7,nék:"i",néz:"i","nía ":"a",níc:"b","nós ":"b",nù:"c",nş:"m","n‘":9,"o'c":8,obú:"a",ocm:"j",ocui:"j",ocuk:"m",ocz:"l",odob:"l",odpo:"l",odzi:"l",oede:"d",oeg:"d",oek:"d",oesn:8,oew:"d",ofd:"d",oike:"g",oitt:"g",oiu:"j",oix:7,ojc:"l",ojeg:"l",olur:"m",omú:"a",onnt:9,ooit:"d",opd:"d",opg:"d",oruz:"m",osaa:"g",ossz:"i",otde:"j","ou'":8,ough:8,oujo:7,ould:8,ourq:7,ourr:7,ouw:"d",oué:7,"ov'":"c",ovre:"c",ovv:"c","ow'":8,owd:8,"owi ":"l",oyf:8,oyn:"m",oyé:7,ozw:"l",oã:"b",oå:"f",oça:"b",oço:"b","oè ":"c",oël:7,oír:"a",oî:7,oó:"b",où:7,oû:7,"o₂":9,palj:"g",panh:"b",paur:"c",peak:8,pegn:"c",peop:8,peó:"a","pf ":9,pfl:9,pge:"d",piè:7,pmak:"m",pmay:"m","po'":"c",poat:"j",pouv:7,powi:"l",prek:"d",prz:"l",prè:7,pued:"a",puhu:"g",puoi:"c",pués:"a",pyta:"l",pà:"c",pâi:"j",pã:"b",pè:7,pée:7,péu:"b",pôd:"b",pş:"m","q-":"i",qq:"c","qu'":7,qur:8,"quí ":"a","r-o ":"j",raag:"d",rawd:"l","re's":8,"ren'":8,reí:"a",rför:"f",rgd:"d",rijk:"d","rió ":"a",rjoi:"g",rkj:"h",rlf:8,rly:8,rmí:"a",rodz:"l",roun:8,"row ":8,rquo:7,rrow:8,rske:"h",rskj:"h",rsoa:"j",rsq:7,rsök:"f",ruik:"d",ruke:"h",rvä:"f",rykk:"h",rzt:9,rzy:"l","r­":9,rà:"c","rá-":"b",râd:"j",râs:"j",rã:"b",räff:"f",räg:9,räu:9,råg:"f",rån:"f","rè ":"c",rèr:7,"rí ":"a",rías:"a",rív:"b",rôl:7,rù:"c",rû:7,rō:9,"s'es":7,"s'il":7,"s's":8,"s'è":"c","saa ":"g",saan:"g",says:8,saí:"b",saú:"b",sciu:"c",scuc:"a",segí:"i",sehr:9,selb:9,setz:9,"seu ":"b",seul:7,"she ":8,shed:8,shl:8,shr:8,sicu:"c",siin:"g",siit:"g",siy:"m","siz ":"m",siä:"g",siè:7,sión:"a",sjuk:"f",sjö:"f",skje:"h",sks:8,"sn'":8,snil:"h",snö:"f",soas:"b",sotr:"a",spué:"a",ssoa:"b",ssza:"i",ssze:"i",suno:"c",suoi:"c",suur:"g",svå:"f",syy:"g",syö:"g",szab:"i",szik:"i",szy:"l",szá:"i",szé:"i",szí:"i",szül:"i","s­":9,sà:"c",sári:"b","sä ":"g",såd:"f",såg:"f",sè:7,sée:7,ség:"i",sê:"b","sí ":"a",sív:"b",sólo:"a",sô:"b",söy:"m",sù:"c",sû:7,süre:"m","t'v":8,"t'è":"c","t-ce":7,"t-il":7,"t-o ":"j","taa ":"g",tasj:"h",tci:"j",tdea:"j",teir:"b",temt:"h",tení:"a",tept:"j","teu ":"b",tfen:"m",thd:8,they:8,thre:8,tidl:"h",tilb:"h",tinh:"b",tiy:"m",tiè:7,tjen:"h",tly:8,tmek:"m",tmey:"m",tné:"i",toar:"j","tog ":"f",touj:7,tq:9,"tr-":"j",trl:"k",trz:"l",träd:"f",trè:7,ttaa:"g",ttè:"c",tuom:"g",tuvo:"a",tué:7,tvä:"f",två:"f","ty-":8,tylk:"l",tyy:"g","tze ":9,tzl:9,"tzt ":9,tzte:9,tzu:9,tà:"c","tá-":"b","tál ":"i",táx:"b",tâi:"j",tâl:"j",tâmp:"j",târ:"j","tât ":"j",tã:"b","tä ":"g",täi:"g",tåg:"f",tç:"m","tè ":"c",tée:7,ték:"i","tél ":"i",têm:"b",tên:"b","tí ":"a",tío:"a","tól ":"i",tóq:"b",tù:"c","tü ":"m","tün ":"m",tünk:"i",tō:9,"t‘":9,"u'a":7,"u'e":7,"u'i":7,"u'l":8,"u'o":7,"u'r":8,"u'u":7,"u'v":8,"u-i":"j","u-mi":"j",ualc:"c",uap:"a",uase:"b",ucru:"j",ucz:"l",udc:"c",udom:"i",udzi:"l",uede:"a",uego:"a",ueva:"a",uevo:"a",ufen:9,ufg:9,ufz:9,ught:8,ugü:"m",uii:"c",uink:"g",uiu:"b",uién:"a",uió:"a",ujb:"j",ujer:"a",ukaa:"g",umg:9,umne:"j","unn ":"h",unns:"h",unuz:"m",uoc:"c",uog:"c","urd'":7,ureu:7,urü:9,used:8,usst:9,uude:"g",uul:"g","uur ":"d",uuri:"g",uuta:"g",uutt:"g",uvez:7,"uvo ":"a",uvé:7,"uw ":"d",uwd:"d",uws:"d",uwt:"d","ux-":7,uyd:"m",uyor:"m",uyu:"m",uyó:"a",uán:"a",uã:"b",uä:9,uè:7,uée:7,"uém ":"b",uên:"b",uó:"a",uşu:"m","v'e":"c","v'è":"c","v-a":"j","vaa ":"g",vagy:"i",vaik:"g",való:"i",varf:"f","vec ":7,veie:"h",very:8,vesz:"i",veva:"c","vez-":7,vgj:"h",vij:"d",vió:"a","vn ":"h",vnet:"h",voas:"j",vogl:"c",voln:"i",voor:"d",votr:7,"vou ":"b",voul:7,vreb:"c",vreo:"j",vroe:"d",vrou:"d",vuel:"a",vuoi:"c",vuol:"c",vuto:"c",vver:"c",vvo:"c",vz:"m",vâr:"j",vã:"b","vä ":"g",väg:"f",väh:"g",väld:"f",vänd:"f","vät ":"g","vå ":"f",våk:"h",vån:"f",vè:7,vée:7,"vía ":"a",vî:7,"vô ":"b",vú:"i",vş:"m","w's":8,waar:"d",wahr:9,wasn:8,wav:8,ways:8,wcz:"l","we'":8,wea:8,weer:"d",weh:9,wf:8,whe:8,why:8,wia:"l",widz:"l",wiec:"l",wiek:"l",wiem:"l","wil ":"d","wir ":9,wird:9,wirk:9,with:8,"wl ":8,wly:8,woh:9,woi:"l",woj:"l","won'":8,woon:"d",woor:"d",woul:8,wró:"l",wsz:"l",wurd:9,wv:"d",www:"c",wyc:"l",wye:8,wyg:"l",wyj:"l",wyk:"l",wym:"l",wyp:"l",wys:"l",wz:"l",wá:"a",wä:9,wó:"l",wö:9,wü:9,xad:"b",xb:"i","xe-":"b",xed:8,xei:"b",xg:9,xk:9,xm:9,xou:"b",xr:"i",xs:9,xz:9,xã:"b",xíc:"b",xō:"a","y'l":8,"y'n":"m","y'r":8,"y'v":8,"y'y":"m",yaca:"m",yapt:"m",yaş:"m",yby:"l",yci:"l",ycka:"f",ycke:"f",yckl:"f",ycz:"l","ydi ":"m",yea:8,yece:"m",yeu:7,yfr:8,ygd:"h",yhd:"g",yht:"g","yim ":"m",yiy:"m",ykd:"h",ymr:"h",ynyt:"g",yord:"m",yoru:"m",your:8,yrit:"g",ythi:8,ytä:"g",yvin:"g",ywh:8,yâ:"m",yä:"g",yí:"i",yō:9,"z'a":"c","z'o":"c","z-v":7,zaws:"l",zco:"a",zcz:"l",zego:"l",ziec:"l",ziej:"l","zij ":"d",zijn:"d",zinh:"b",ziy:"m","zla ":"m",zoe:"d",zond:"d",zost:"l",zott:"i",zq:"a",zro:"l",ztá:"i",zuu:"d",zwei:9,zyb:"l",zyc:"l",zyj:"l",zyma:"l",zys:"l",zyt:"l",zyw:"l","zz'":"c","zzo ":"c",zzá:"i",zám:"i",zâm:"j",zã:"b",zä:9,zê:"b",zô:"b",zúc:"a","| ":6," =":9," i":9," p":7," u":9," w":"l"," z":"l",ª:"b","­b":9,"­d":9,"­s":9,"²'":"m","· ":"e",ºc:"a","½ ":9,ß:9,"à-":7,àq:"b",às:"b","à ":7,"á'":"i","á-l":"b",áa:"i",ább:"i","ád ":"i","ág ":"i",água:"b",áis:"a",ák:"i",áln:"i",álta:"i","ám ":"i",ána:"i",ány:"i",áo:"i","ár ":"i","ára ":"i",ário:"b",áro:"i",áso:"i","ást ":"i",ásá:"i","át ":"i",áts:"i",átt:"i",ável:"b",áy:"a",áá:"i",áé:"i",áí:"i",áó:"i",áú:"i",áü:"i","â ":"m",âc:7,âg:7,âh:"m","âi ":"j",âin:"j",âk:"m",âln:"j",âmpl:"j",ânca:"j","ând ":"j",ânz:"j",ârs:"j",ârt:"j",ârz:"j","âs ":"j",âu:"j",ây:"m","ã ":"b","ã-":"b",ãe:"b",ãos:"b",ãs:"b",ãz:"b","ä-":"g",äa:"g",äch:9,ädc:9,ädd:"f",äffa:"f",äga:"f",ägg:"f",ägt:9,ähd:"g",ähl:9,ähr:9,ähä:"g",äin:"g",äisi:"g",äit:"g",äiv:"g",äj:"g",äks:"g",äkt:"f",äkä:"g","äl ":"f",äldi:"f","äll ":"f",ällä:"g",älp:"f",älsk:"f","älv ":"f",älä:"g",ämn:"f",ämä:"g",ända:"f",änel:"g","äni ":"g",äny:"g",änä:"g",äq:9,ärn:"f","äsi ":"g",ästa:"f","äta ":"f","ätt ":"f",ätta:"f",ätz:9,ätä:"g",äuf:9,äum:9,ävi:"g",ävä:"g",äx:"f",äy:"g",äz:9,ää:"g",äö:"g",åa:"f",åb:"f",åda:"f",ådi:"h",åel:"h","åg ":"f",åga:"f",åge:"f",ågo:"f",ågr:"f",åh:"f",åka:"f",åkt:"f",åla:"f",åll:"f",åm:"f","ån ":"f",åna:"f",åned:"h",ång:"f",ånn:"h",åpn:"h",åra:"f","åre ":"h",årl:"h",årn:"h",åste:"f",åta:"f","åte ":"h",åtte:"h",åvi:"h",æ:"h","ç ":"m","ç'":"m","ças ":"b",çb:"m",çe:"m",çg:"m",çi:"m",çk:"m",çl:"m",çm:"m",çoc:"m",çok:"m",ços:"b",çou:"b",çr:"m",çs:"m",çt:"m",çy:"m",çá:"b",çã:"b",çç:"m",çó:"b",çö:"m",çú:"b",çü:"m",èb:7,èc:7,èd:7,èg:7,èl:7,èq:7,ès:7,èt:7,èv:7,"è ":"c","é'":"i",écl:7,écou:7,écr:7,ées:7,éfé:7,"ég ":"i","ék ":"i",éke:"i",élet:"i",éln:"i",éno:7,ény:"i",énz:"i","ért ":"i",ész:"i","ét ":"i",étai:7,étud:7,"été ":7,"éu ":"b",éâ:7,éç:7,één:"d",éü:"i","ê ":"b","ê-":"b",êb:"b",êc:7,êl:7,"êm ":"b","ême ":7,ênc:"b",ênd:"b",êni:"b",êp:7,ês:"b",êt:7,êu:"b",êv:7,êx:"b",ëe:"d",ëi:"d",ën:"d",ër:"d",ëz:"d",ì:"c","í-":"b",ían:"a",ík:"i",íng:"b","ío ":"a",íos:"a",íss:"b",íç:"b","î ":"m",îc:7,îi:"j","îl ":"j",îmb:"j",îmi:"j",împ:"j","în ":"j",înc:"j",înd:"j",înf:"j",îng:"j",înn:"j",înr:"j",îns:"j",înt:"j",înv:"j",ît:7,îş:"j",ïf:7,ïnt:"d",ñ:"a",ò:"c","ó-":"i",óa:"i",ócu:"b",óe:"i",óh:"i","ój ":"l","ólo ":"a","ómo ":"a",ónd:"a",óo:"i",ópr:"b",óry:"l",óu:"i",ów:"l",óá:"i",óé:"i",óí:"i",ôni:"b",ôp:7,ôq:"b",ôr:"b",ôs:"b",ôt:7,ôv:"b",õ:"b",öbb:"i",öch:9,öda:"f",öe:9,ögon:"f",öhn:9,öi:"g",öjd:"f",öjl:"f",önce:"m",önnt:9,öo:"g",öra:"f",örja:"f",örsö:"f",örté:"i",össz:"i",ötü:"m",öw:9,öyle:"m",öä:"g",öç:"m",öö:"g",öş:"m",ø:"h","ú-":"i",úe:"a",úgy:"i",úi:"i","új ":"i",úk:"i",úo:"a",úvi:"b",úy:"a","û ":7,ûl:7,ûr:7,ût:7,"ü'":"m",üch:9,ück:9,üen:"a",ühl:9,ühr:9,ünf:9,"ünk ":"i",ünm:"m",ünü:"m",ütf:"m",ütz:9,ütü:"m",üy:"m","üz ":"m",üç:"m",üé:"a",üí:"a",üş:"m",ā:8,ă:"j",ą:"l",ć:"l",ę:"l",ğ:"m","ī ":9,ı:"m",ł:"l",ń:"l","ō ":9,ōb:9,ōc:"a",ōg:9,ōk:9,ōs:9,ōt:9,ő:"i",œ:7,ś:"l","ş'":"m",şam:"m",şan:"m",şar:"m",şb:"m",şek:"m",şey:"m",şf:"m",şg:"m",şh:"m","şi-":"j",şim:"m",şk:"m",şl:"m",şm:"m",şr:"m",şs:"m",ştu:"m",şv:"m",şy:"m",şç:"m",şö:"m",şü:"m",şş:"m",š:"g",ţ:"j",ū:9,ű:"i",ź:"l",ż:"l",ș:"j",ț:"j","́":"k","̇":"m","΄":"e",ΐ:"e",ά:"e",έ:"e",ή:"e",ί:"e",α:"e",β:"e",γ:"e",δ:"e",ε:"e",ζ:"e",η:"e",θ:"e",ι:"e",κ:"e",λ:"e",μ:"e",ν:"e",ξ:"e",ο:"e",π:"e",ρ:"e",ς:"e",σ:"e",τ:"e",υ:"e",φ:"e",χ:"e",ψ:"e",ω:"e",ϊ:"e",ό:"e",ύ:"e",ώ:"e",а:"k",б:"k",в:"k",г:"k",д:"k",е:"k",ж:"k",з:"k",и:"k",й:"k",к:"k",л:"k",м:"k",н:"k",о:"k",п:"k",р:"k",с:"k",т:"k",у:"k",ф:"k",х:"k",ц:"k",ч:"k",ш:"k",щ:"k",ъ:"k",ы:"k",ь:"k",э:"k",ю:"k",я:"k",ё:"k",ѣ:"k","ְ":"n","ֱ":"n","ֲ":"n","ִ":"n","ֵ":"n","ֶ":"n","ַ":"n","ָ":"n","ֹ":"n","ֻ":"n","ּ":"n","ֽ":"n","־":"n","ׁ":"n","ׂ":"n",א:"n",ב:"n",ג:"n",ד:"n",ה:"n",ו:"n",ז:"n",ח:"n",ט:"n",י:"n",ך:"n",כ:"n",ל:"n",ם:"n",מ:"n",ן:"n",נ:"n",ס:"n",ע:"n",ף:"n",פ:"n",ץ:"n",צ:"n",ק:"n",ר:"n",ש:"n",ת:"n","׳":"n","״":"n","،":"o","؛":"o","؟":"o",ء:"o",آ:"o",أ:"o",ؤ:"o",إ:"o",ئ:"o",ا:"o",ب:"o",ة:"o",ت:"o",ث:"o",ج:"o",ح:"o",خ:"o",د:"o",ذ:"o",ر:"o",ز:"o",س:"o",ش:"o",ص:"o",ض:"o",ط:"o",ظ:"o",ع:"o",غ:"o",ـ:"o",ف:"o",ق:"o",ك:"o",ل:"o",م:"o",ن:"o",ه:"o",و:"o",ى:"o",ي:"o","ً":"o","ٌ":"o","ٍ":"o","َ":"o","ُ":"o","ِ":"o","ّ":"o","ْ":"o","٠":"o","١":"o","٩":"o",ٱ:"o",ک:"o",ی:"o","ँ":6,"ं":6,"ः ":6,अ:6,आ:6,इ:6,ई:6,उ:6,ऊ:6,ए:6,ऐ:6,ऑ:6,ओ:6,औ:6,क:6,ख:6,ग:6,घ:6,च:6,छ:6,ज:6,झ:6,ट:6,ठ:6,ड:6,ढ:6,ण:6,त:6,थ:6,द:6,ध:6,न:6,प:6,फ:6,ब:6,भ:6,म:6,य:6,र:6,ल:6,व:6,श:6,ष:6,स:6,ह:6,"़":6,"ा":6,"ि":6,"ी":6,"ु":6,"ू":6,"ृ":6,"ॅ":6,"े":6,"ै":6,"ॉ":6,"ो":6,"ौ":6,"्":6,"०":6,"१":6,"२ ":6,"५ ":6,"९":6,"ঁ":5,"ং":5,অ:5,আ:5,ই:5,উ:5,এ:5,ঐ:5,ও:5,ক:5,খ:5,গ:5,ঘ:5,ঙ:5,চ:5,ছ:5,জ:5,ঝ:5,ঞ:5,ট:5,ঠ:5,ড:5,ঢ:5,ণ:5,ত:5,থ:5,দ:5,ধ:5,ন:5,প:5,ফ:5,ব:5,ভ:5,ম:5,য:5,র:5,ল:5,শ:5,ষ:5,স:5,হ:5,"়":5,"া":5,"ি":5,"ী":5,"ু":5,"ূ":5,"ৃ":5,"ে":5,"ৈ":5,"ো":5,"ৌ":5,"্":5,"ৎ":5,"০":5,"১":5,"২":5,"৩ ":5,"৪ ":5,"৫":5,"৬ ":5,"৭":5,"৮ ":5,"৯":5,ก:4,ข:4,ค:4,ง:4,จ:4,ฉ:4,ช:4,ซ:4,ญ:4,ฎ:4,ฏ:4,ฐ:4,ณ:4,ด:4,ต:4,ถ:4,ท:4,ธ:4,น:4,บ:4,ป:4,ผ:4,ฝ:4,พ:4,ฟ:4,ภ:4,ม:4,ย:4,ร:4,ฤ:4,ล:4,ว:4,ศ:4,ษ:4,ส:4,ห:4,ฬ:4,อ:4,ฮ:4,ะ:4,"ั":4,า:4,ำ:4,"ิ":4,"ี":4,"ึ":4,"ื":4,"ุ":4,"ู":4,เ:4,แ:4,โ:4,ใ:4,ไ:4,ๆ:4,"็":4,"่":4,"้":4,"๊":4,"๋":4,"์":4,ὰ:"e",ὸ:"e","​e":"d","​v":"d","​y":"m","‌":5,"‏":"o","― ":"k","‘ ":9,"‘s":"d","‚":9,"‟ ":9,"‬":"o","‮":"o"," °":9,"№ ":"k","−":9,あ:1,い:1,う:1,え:1,お:1,か:1,が:1,き:1,く:1,け:1,こ:1,さ:1,し:1,じ:1,す:1,せ:1,そ:1,た:1,だ:1,ち:1,っ:1,つ:1,て:1,で:1,と:1,ど:1,な:1,に:1,ね:1,の:1,は:1,ば:1,へ行:1,べ:1,ま:1,み:1,め:1,も:1,ゃ:1,や:1,よ:1,ら:1,り:1,る:1,れ:1,ろ:1,わ:1,を:1,ん:1,ア:1,イ:1,オオカミ:1,カナダ:1,カ合衆国:1,キャプテ:1,ク:1,シャ:1,ジャ:1,ジョ:1,ス:1,タバコ:1,チョコ:1,ッ:1,ティ:1,テレ:1,ディズニ:1,ト:1,ニュ:1,プレゼ:1,プロジェ:1,ミュニケ:1,ム:1,ラ:1,リ:1,ル:1,レビ:1,ン:1,"・・・":1,ー:1,一下:2,一度:1,一日中:1,"一本書 ":2,一生懸:1,一番:1,一緒:1,一起:2,一週間:1,上げ:1,上手:1,"下雨 ":2,不会:2,不可能的:2,"不在家 ":2,不思議:1,不想:2,不是:2,不注意:1,不知:2,不能:2,不要:2,世界一周:1,世界上:2,世界中:1,世界大戦:1,世界平和:1,"东西 ":2,个:2,中華料理:1,为:2,丽:2,么:2,之:2,也:2,书:2,"了 ":2,了一:2,了他:2,了我:2,事務所:1,二次世界:1,交通渋滞:1,人々:1,人間:1,什:2,今天:2,"今日 ":1,仕事:1,"他 ":2,他是:2,他的:2,们:2,"任何人 ":2,会社:1,但:2,住在:2,"作 ":2,你:2,來:2,"個問題 ":2,"個小時 ":2,們:2,"候 ":2,做:2,儿:2,冷蔵庫:1,出発:1,到了:2,勉強:1,動車事故:1,医者:1,"去 ":2,"去学校 ":2,友達:1,发:2,可以:2,可俗話又:2,"可能的 ":2,名前:1,"名字 ":2,吗:2,吧:2,告诉:2,"呢 ":2,"咖啡 ":2,哪:2,"啊 ":2,嗎:2,"回家 ":2,図書館:1,在波士頓:2,在波士顿:2,"地方 ":2,"多少錢 ":2,"多少钱 ":2,大丈夫:1,大統領:1,天早上:2,天然資源:1,她:2,"好 ":2,好的:2,如果:2,姆:2,委員会:1,子供:1,"学习 ":2,学校へ:1,学生時代:1,孩:2,學:2,它:2,宇宙飛行:1,宙飛行士:1,家族:1,对:2,對:2,就是:2,工作:2,"巧克力 ":2,已:2,庁所在地:1,应该:2,开:2,弁護士:1,彼女:1,很:2,怎:2,息子:1,您:2,想要:2,"意思 ":2,"感兴趣 ":2,懸命勉:1,"我 ":2,我々:1,我一:2,我不:2,我在:2,我希望:2,我想:2,我是:2,我有:2,我的:2,我第一次:2,我要:2,我觉得:2,我需要:2,"房子 ":2,所有的:2,手伝:1,手紙:1,"打網球 ":2,打電話給:2,携帯電話:1,日本語:1,早寝早起:1,时:2,明天:2,明日:1,映画:1,昨天:2,昨日:1,是一:2,是不:2,"是多少 ":2,是我:2,時候:2,時間以上:1,晚:2,曜日:1,會:2,有一:2,有人:2,朋:2,本当:1,"来的 ":2,"東西 ":2,样:2,欢:2,歡:2,殺人事件:1,毎日:1,每:2,民主主義:1,気:1,汤:2,沒:2,没有:2,"波士頓 ":2,"波士顿 ":2,海外旅行:1,"游泳 ":2,澳大利亚:2,现:2,生懸命:1,"生活 ":2,的东西:2,的事:2,的人:2,的名字:2,"的問題 ":2,"的国家 ":2,的地方:2,"的城市 ":2,"的女人 ":2,"的想法 ":2,的房子:2,"的房間 ":2,"的故事 ":2,"的照片 ":2,"的話 ":2,"看电视 ":2,看起来:2,"看電視 ":2,県庁所在:1,真的:2,知道:2,私達:1,科学技術:1,第二次世:1,約束:1,经:2,给:2,而:2,自分:1,自動車:1,自己的:2,自己紹介:1,自転車:1,"色的 ":2,行方不明:1,裡:2,西班牙:2,见:2,言葉:1,計画:1,試験:1,誕生日:1,說:2,読む価値:1,话:2,语:2,说:2,请:2,跟:2,车:2,过:2,还:2,这:2,這個:2,運転:1,部屋:1,郵便局:1,"里 ":2,"重要 ":2,重要的:2,間違:1,"问题 ":2,间:2,電話番号:1,音楽:1,飛行機:1,高校時代:1,高速道路:1,麼:2,點:2,가:3,거:3,"건 ":3,"걸 ":3,것:3,게:3,"계속 ":3,고:3,"과 ":3,그:3,기:3,"까 ":3,나:3,난:3,내:3,너:3,"네 ":3,는:3,니:3,다:3,"더 ":3,"데 ":3,도:3,"든 ":3,들:3,라:3,로:3,를:3,리:3,마:3,만:3,말:3,"면 ":3,무:3,보:3,사:3,생각:3,서:3,선생님:3,세:3,수:3,스:3,시:3,신:3,아:3,안:3,않:3,야:3,어:3,없:3,었:3,에:3,여:3,오늘:3,"와 ":3,"왜 ":3,요:3,우:3,으:3,은:3,을:3,의:3,이:3,인:3,일:3,있:3,자:3,"절대 ":3,제:3,"좀 ":3,좋:3,주:3,지:3,"처럼 ":3,컴퓨터:3,"테 ":3,텔레비전:3,톰:3,프랑:3,하:3,한:3,"할 ":3,"함께 ":3,"항상 ":3,해:3,했:3,"히 ":3,"𝑥":9,"- ":9,";可俗話":2,"�":9}},_p=/([,,、。!¿?!?":;()「」{}„“«»”"“<>⋯《》*]|[.[\]\\])+/,gp=/[ ]+/;function yp(e){return e.split(_p)}function vp(e){return e.split(gp)}function $u(e,t,n=!0){let r=[],o=n?" ".repeat(t-1)+e+" ".repeat(t-1):e;for(let i=0;i1)&&a.push(o[i+c]);let u=a.join("");u.trim().length>0&&u.length===t&&r.push(u)}return r}function wp(e,t,n,r){for(let o of ju){let i=$u(e,o);for(let a of i){if(!n.has(a))continue;let s=Fo(t.uniques[a]);if(!(r.only.length>0&&!r.only.includes(s)))return r.verbose&&console.log(`[Pass 1] detectUniqueGrams ${o}-grams - match '${a}' to ${s}`),s}}return""}function bp(e,t,n){let r=new Map,o=ju.map(c=>$u(e,c)).flat();n.verbose&&console.log("[Pass 2] DetectPotentialGrams",e,o);let i=new Set([...Nu.values()].filter(c=>n.only.length>0?n.only.includes(c)||n.only.includes(Fo(c)):!0));i.forEach(c=>r.set(c,0));for(let c of o){let d=pp(c),l=t.multiples[d];if(!l)continue;let f=new Set(Object.keys(l)),h=[];for(let p of i)f.has(p)&&(r.set(p,(r.get(p)||0)+l[p]*d.length/4),h.push(`${p} = ${l[p]/1024*100}%`));n.verbose&&h.length>0&&console.log(`Gram '${d}'`,h)}let a=[...r.entries()];a.sort((c,d)=>d[1]-c[1]);let s=Math.max(...a.map(c=>c[1]))||1,u=a.slice(0,8).map(c=>({lang:Fo(c[0]),accuracy:1-Ga((s-c[1])/s),score:Ga(c[1])}));return n.verbose&&console.log("Result",e,u),u}function Ap(e,t,n,r){let o=yp(e);o=o.map(c=>hp(c)).filter(c=>!!c),o.sort((c,d)=>d.length-c.length),o=o.slice(0,7),t.verbose&&console.log("Analize chunks",o);let i=0,a={};for(let c of o){let d=wp(c,n,r,t);if(d){a[d]=(a[d]||0)+1*c.length,i+=c.length;continue}let l=vp(c);for(let f of l)bp(f,n,t).forEach(h=>{a[h.lang]=(a[h.lang]||0)+h.accuracy}),i+=f.length}let s=Object.entries(a).filter(c=>c[1]>0);s.sort((c,d)=>d[1]-c[1]);let u=s.map(c=>({lang:c[0],accuracy:c[1]/i}));return t.verbose&&console.log("Merge Results",u),u}var Na=Ku,Cp={uniques:Object.fromEntries(Object.entries(Na.uniques).map(e=>[e[0],ja[parseInt(e[1].toString(),36)]])),multiples:Object.fromEntries(Object.entries(Na.multiples).map(e=>{var n;let t=Object.fromEntries(((n=e[1].match(/(.{1,3})/g))==null?void 0:n.map(r=>{let o=r.slice(0,1),i=r.slice(1);return[ja[parseInt(o,36)],parseInt(i,36)]}))||[]);return[e[0],t]}))},Mp=new Set(Object.keys(Ku.uniques));function ng(e,t){let n=mp(t);return fp(e)?Ap(e,n,Cp,Mp):[]}var gn=(e=>(e.Mouse="mouse",e.Touch="touch",e.Pointer="pointer",e))(gn||{}),yn=(e=>(e.CancelledByMovement="cancelled-by-movement",e.CancelledByRelease="cancelled-by-release",e.CancelledOutsideElement="cancelled-outside-element",e))(yn||{});const Ju=()=>typeof window=="object"?(window==null?void 0:window.PointerEvent)??null:null,Ep=()=>typeof window=="object"?(window==null?void 0:window.TouchEvent)??null:null;function Uu(e){const{nativeEvent:t}=e,n=Ep();return n&&t instanceof n||"touches"in e}function Wu(e){const t=Ju();return e.nativeEvent instanceof MouseEvent&&!(t&&e.nativeEvent instanceof t)}function qu(e){const{nativeEvent:t}=e;if(!t)return!1;const n=Ju();return n&&t instanceof n||"pointerId"in t}function za(e){return Wu(e)||Uu(e)||qu(e)}function Ka(e){return Uu(e)?{x:e.touches[0].pageX,y:e.touches[0].pageY}:Wu(e)||qu(e)?{x:e.pageX,y:e.pageY}:null}function Sp(e){return{target:e.target,currentTarget:e.currentTarget,nativeEvent:e,persist:()=>{}}}function rg(e,{threshold:t=400,captureEvent:n=!1,detect:r=gn.Pointer,cancelOnMovement:o=!1,cancelOutsideElement:i=!0,filterEvents:a,onStart:s,onMove:u,onFinish:c,onCancel:d}={}){const l=J(!1),f=J(!1),h=J(),p=J(),m=J(e),g=J(null),_=ge(I=>A=>{f.current||za(A)&&(a!==void 0&&!a(A)||(n&&A.persist(),s==null||s(A,{context:I}),g.current=Ka(A),f.current=!0,h.current=A.currentTarget,p.current=setTimeout(()=>{m.current&&(m.current(A,{context:I}),l.current=!0)},t)))},[n,a,s,t]),y=ge(I=>(A,M)=>{za(A)&&f.current&&(g.current=null,n&&A.persist(),l.current?c==null||c(A,{context:I}):f.current&&(d==null||d(A,{context:I,reason:M??yn.CancelledByRelease})),l.current=!1,f.current=!1,p.current!==void 0&&clearTimeout(p.current))},[n,c,d]),b=ge(I=>A=>{if(u==null||u(A,{context:I}),o!==!1&&g.current){const M=Ka(A);if(M){const G=o===!0?25:o,C={x:Math.abs(M.x-g.current.x),y:Math.abs(M.y-g.current.y)};(C.x>G||C.y>G)&&y(I)(A,yn.CancelledByMovement)}}},[y,o,u]),L=ge(I=>{if(e===null)return{};switch(r){case gn.Mouse:{const A={onMouseDown:_(I),onMouseMove:b(I),onMouseUp:y(I)};return i&&(A.onMouseLeave=M=>{y(I)(M,yn.CancelledOutsideElement)}),A}case gn.Touch:return{onTouchStart:_(I),onTouchMove:b(I),onTouchEnd:y(I)};case gn.Pointer:{const A={onPointerDown:_(I),onPointerMove:b(I),onPointerUp:y(I)};return i&&(A.onPointerLeave=M=>y(I)(M,yn.CancelledOutsideElement)),A}}},[e,y,i,r,b,_]);return oe(()=>{if(!window)return;function I(A){const M=Sp(A);y()(M)}return window.addEventListener("mouseup",I),window.addEventListener("touchend",I),window.addEventListener("pointerup",I),()=>{window.removeEventListener("mouseup",I),window.removeEventListener("touchend",I),window.removeEventListener("pointerup",I)}},[y]),oe(()=>()=>{p.current!==void 0&&clearTimeout(p.current)},[]),oe(()=>{m.current=e},[e]),L}function Ip(e,t,n){var r=this,o=J(null),i=J(0),a=J(null),s=J([]),u=J(),c=J(),d=J(e),l=J(!0);d.current=e;var f=typeof window<"u",h=!t&&t!==0&&f;if(typeof e!="function")throw new TypeError("Expected a function");t=+t||0;var p=!!(n=n||{}).leading,m=!("trailing"in n)||!!n.trailing,g="maxWait"in n,_="debounceOnServer"in n&&!!n.debounceOnServer,y=g?Math.max(+n.maxWait||0,t):null;oe(function(){return l.current=!0,function(){l.current=!1}},[]);var b=se(function(){var L=function(O){var w=s.current,B=u.current;return s.current=u.current=null,i.current=O,c.current=d.current.apply(B,w)},I=function(O,w){h&&cancelAnimationFrame(a.current),a.current=h?requestAnimationFrame(O):setTimeout(O,w)},A=function(O){if(!l.current)return!1;var w=O-o.current;return!o.current||w>=t||w<0||g&&O-i.current>=y},M=function(O){return a.current=null,m&&s.current?L(O):(s.current=u.current=null,c.current)},G=function O(){var w=Date.now();if(A(w))return M(w);if(l.current){var B=t-(w-o.current),$=g?Math.min(B,y-(w-i.current)):B;I(O,$)}},C=function(){if(f||_){var O=Date.now(),w=A(O);if(s.current=[].slice.call(arguments),u.current=r,o.current=O,w){if(!a.current&&l.current)return i.current=o.current,I(G,t),p?L(o.current):c.current;if(g)return I(G,t),L(o.current)}return a.current||I(G,t),c.current}};return C.cancel=function(){a.current&&(h?cancelAnimationFrame(a.current):clearTimeout(a.current)),i.current=0,s.current=o.current=u.current=a.current=null},C.isPending=function(){return!!a.current},C.flush=function(){return a.current?M(Date.now()):c.current},C},[p,g,t,y,m,h,f,_]);return b}function og(e,t,n){var r=n===void 0?{}:n,o=r.leading,i=r.trailing;return Ip(e,t,{maxWait:t,leading:o===void 0||o,trailing:i===void 0||i})}function Dp(e,t){var n=J(null),r=J(null);r.current=t;var o=J(null);oe(function(){i()});var i=ge(function(){var a=o.current,s=r.current,u=a||(s?s instanceof Element?s:s.current:null);n.current&&n.current.element===u&&n.current.subscriber===e||(n.current&&n.current.cleanup&&n.current.cleanup(),n.current={element:u,subscriber:e,cleanup:u?e(u):void 0})},[e]);return oe(function(){return function(){n.current&&n.current.cleanup&&(n.current.cleanup(),n.current=null)}},[]),ge(function(a){o.current=a,i()},[i])}function $a(e,t,n){return e[t]?e[t][0]?e[t][0][n]:e[t][n]:t==="contentBoxSize"?e.contentRect[n==="inlineSize"?"width":"height"]:void 0}function ig(e){e===void 0&&(e={});var t=e.onResize,n=J(void 0);n.current=t;var r=e.round||Math.round,o=J(),i=me({width:void 0,height:void 0}),a=i[0],s=i[1],u=J(!1);oe(function(){return u.current=!1,function(){u.current=!0}},[]);var c=J({width:void 0,height:void 0}),d=Dp(ge(function(l){return(!o.current||o.current.box!==e.box||o.current.round!==r)&&(o.current={box:e.box,round:r,instance:new ResizeObserver(function(f){var h=f[0],p=e.box==="border-box"?"borderBoxSize":e.box==="device-pixel-content-box"?"devicePixelContentBoxSize":"contentBoxSize",m=$a(h,p,"inlineSize"),g=$a(h,p,"blockSize"),_=m?r(m):void 0,y=g?r(g):void 0;if(c.current.width!==_||c.current.height!==y){var b={width:_,height:y};c.current.width=_,c.current.height=y,n.current?n.current(b):u.current||s(b)}})}),o.current.instance.observe(l,{box:e.box}),function(){o.current&&o.current.instance.unobserve(l)}},[e.box,r]),e.ref);return se(function(){return{ref:d,width:a.width,height:a.height}},[d,a.width,a.height])}var Yu="kvfysmfp",Vu="ufhsfnkm",Lp=".".concat(Yu,"{overflow:hidden;touch-action:none}.").concat(Vu,"{transform-origin: 0 0}"),Tp=typeof window>"u",Fp=function(){return!Tp&&("ontouchstart"in window||navigator.maxTouchPoints>0)};var ag=function(e){var t=e.x,n=e.y,r=e.scale;return"scale3d(".concat(r,",").concat(r,", 1) translate3d(").concat(t,"px, ").concat(n,"px, 0)")};var Op=Math.min,Pp=Math.max;function Ja(e){var t=e.containerDimension,n=e.childDimension,r=e.padding,o=e.centerContained,i=n-t;return i+2*r<=0&&o?[i/2,i/2]:[Op(i+r,0)-r,Pp(0,i+r)]}var Ua=function(e,t){return t?"".concat(e," ").concat(t):e},Yn=Math.abs,Bp=Math.min,xp=Math.sqrt,Zu=typeof window>"u",Rp=Zu?!1:/(Mac)/i.test(navigator.platform),kt=function(e){return e==="drag"},fn=function(e){return e==="zoom"},kp=function(e){return Rp&&e.ctrlKey},hn=function(e){e.stopPropagation(),e.preventDefault()},Wa=function(e,t){var n=e.x-t.x,r=e.y-t.y;return xp(n*n+r*r)},Hp=function(e,t){var n=Wa(e[0],e[1]),r=Wa(t[0],t[1]);return r/n},Gp=function(e,t){return e>t-.01&&et?t:n},Kp=function(e){return!(e.ctrlKey||e.metaKey)},$p=function(e){if(e){var t=e.offsetWidth,n=e.offsetHeight;if(t&&n)return{width:t,height:n};var r=getComputedStyle(e),o=parseFloat(r.width),i=parseFloat(r.height);if(i&&o)return{width:o,height:i}}return{width:0,height:0}},Jp=function(e,t){return{x:t.x-e.x,y:t.y-e.y}},Up=function(e,t){return e.x===t.x&&e.y===t.y},vt=function(){},Zn={x:0,y:0},sg=function(e){Us(t,e);function t(){var n=e!==null&&e.apply(this,arguments)||this;return n._prevDragMovePoint=null,n._containerObserver=null,n._fingers=0,n._firstMove=!0,n._initialOffset=ce({},Zn),n._interaction=null,n._isDoubleTap=!1,n._isOffsetsSet=!1,n._lastDragPosition=null,n._lastScale=1,n._lastTouchStart=0,n._lastZoomCenter=null,n._listenMouseMove=!1,n._nthZoom=0,n._offset=ce({},Zn),n._startOffset=ce({},Zn),n._startTouches=null,n._updatePlaned=!1,n._wheelTimeOut=null,n._zoomFactor=1,n._initialZoomFactor=1,n._draggingPoint=ce({},Zn),n._ignoreNextClick=!1,n._containerRef=Go(),n._handleClick=function(r){n._ignoreNextClick&&(n._ignoreNextClick=!1,r.stopPropagation())},n._onResize=function(){var r;!((r=n._containerRef)===null||r===void 0)&&r.current&&(n._updateInitialZoomFactor(),n._setupOffsets(),n._update())},n._handlerOnTouchEnd=n._handlerIfEnable(function(r){n._fingers=r.touches.length,n.props.shouldCancelHandledTouchEndEvents&&(fn(n._interaction)||kt(n._interaction)&&(n._startOffset.x!==n._offset.x||n._startOffset.y!==n._offset.y))&&hn(r),kt(n._interaction)&&!n._enoughToDrag()&&n._handleClick(r),n._updateInteraction(r)}),n._handlerOnTouchStart=n._handlerIfEnable(function(r){n._firstMove=!0,n._fingers=r.touches.length,n._detectDoubleTap(r)}),n._handlerOnTouchMove=n._handlerIfEnable(function(r){n._isDoubleTap||(n._collectInertia(r),n._firstMove?(n._updateInteraction(r),n._interaction&&hn(r),n._startOffset=ce({},n._offset),n._startTouches=Vn(r.touches)):(fn(n._interaction)?n._startTouches&&n._startTouches.length===2&&r.touches.length===2&&n._handleZoom(r,Hp(n._startTouches,Vn(r.touches))):kt(n._interaction)&&n._handleDrag(r),n._interaction&&(hn(r),n._update())),n._firstMove=!1)}),n._handlerWheel=function(r){if(!n.props.shouldInterceptWheel(r)){hn(r);var o=r.pageX,i=r.pageY,a=r.deltaY,s=r.deltaMode,u=1;(kp(r)||s===1)&&(u=15);var c={touches:[{pageX:o,pageY:i}]},d=n._getOffsetByFirstTouch(c),l=a*u;n._stopAnimation(),n._scaleTo(n._zoomFactor-l/n.props.wheelScaleFactor,d),n._update(),clearTimeout(n._wheelTimeOut),n._wheelTimeOut=setTimeout(function(){return n._sanitize()},100)}},n._handlers=n.props.isTouch()?[["touchstart",n._handlerOnTouchStart],["touchend",n._handlerOnTouchEnd],["touchmove",n._handlerOnTouchMove]]:[["mousemove",n.simulate(n._handlerOnTouchMove),n.props._document],["mouseup",n.simulate(n._handlerOnTouchEnd),n.props._document],["mousedown",n.simulate(n._handlerOnTouchStart)],["click",n._handleClick],["wheel",n._handlerWheel]],n}return t.prototype._handleDragStart=function(n){this._ignoreNextClick=!0,this.props.onDragStart(),this._stopAnimation(),this._resetInertia(),this._lastDragPosition=null,this._hasInteraction=!0,this._draggingPoint=this._offset,this._handleDrag(n)},t.prototype._handleDrag=function(n){var r=this._getOffsetByFirstTouch(n);this._enoughToDrag()?this._drag(r,this._lastDragPosition):this._virtualDrag(r,this._lastDragPosition),this._offset=this._sanitizeOffset(this._offset),this._lastDragPosition=r},t.prototype._resetInertia=function(){this._velocity=null,this._prevDragMovePoint=null},t.prototype._realizeInertia=function(){var n=this,r=this.props,o=r.inertiaFriction,i=r.inertia;if(!(!i||!this._velocity)){var a=this._velocity,s=a.x,u=a.y;if(s||u){this._stopAnimation(),this._resetInertia();var c=function(){if(s*=o,u*=o,!s&&!u)return n._stopAnimation();var d=ce({},n._offset);if(n._addOffset({x:s,y:u}),n._offset=n._sanitizeOffset(n._offset),Up(d,n._offset))return n._stopAnimation();n._update({isAnimation:!0})};this._animate(c,{duration:9999})}}},t.prototype._collectInertia=function(n){var r=n.touches;if(this.props.inertia){var o=Vn(r)[0],i=this._prevDragMovePoint;i&&(this._velocity=Jp(o,i)),this._prevDragMovePoint=o}},t.prototype._handleDragEnd=function(){this.props.onDragEnd(),this._end(),this._realizeInertia()},t.prototype._handleZoomStart=function(){this.props.onZoomStart(),this._stopAnimation(),this._lastScale=1,this._nthZoom=0,this._lastZoomCenter=null,this._hasInteraction=!0},t.prototype._handleZoom=function(n,r){var o=zp(this._getOffsetTouches(n)),i=r/this._lastScale;this._lastScale=r,this._nthZoom+=1,this._nthZoom>3&&(this._scale(i,o),this._drag(o,this._lastZoomCenter),this.props.enforceBoundsDuringZoom&&(this._offset=this._sanitizeOffset(this._offset))),this._lastZoomCenter=o},t.prototype._handleZoomEnd=function(){this.props.onZoomEnd(),this._end()},t.prototype._handleDoubleTap=function(n){var r=this;if(!(this._hasInteraction||this.props.tapZoomFactor===0)){var o=this.props.doubleTapZoomOutOnMaxScale&&this._zoomFactor===this.props.maxZoom||this.props.doubleTapToggleZoom&&this._zoomFactor>1;this.props.onDoubleTap(),this._ignoreNextClick=!0;var i=this._zoomFactor+this.props.tapZoomFactor,a=this._zoomFactor,s=function(c){r._scaleTo(a+c*(i-a),u)},u=this._getOffsetByFirstTouch(n);this._isDoubleTap=!0,a>i&&(u=this._getCurrentZoomCenter()),o?this._zoomOutAnimation():this._animate(s)}},t.prototype._computeInitialOffset=function(){var n=this._getContainerRect(),r=this._getChildSize(),o=r.width,i=r.height,a=-Yn(o*this._getInitialZoomFactor()-n.width)/2,s=-Yn(i*this._getInitialZoomFactor()-n.height)/2;this._initialOffset={x:a,y:s}},t.prototype._resetOffset=function(){this._offset=ce({},this._initialOffset)},t.prototype._setupOffsets=function(){this.props.setOffsetsOnce&&this._isOffsetsSet||(this._isOffsetsSet=!0,this._computeInitialOffset(),this._resetOffset())},t.prototype._sanitizeOffset=function(n){var r=this._getContainerRect(),o=this._getChildSize(),i=o.width,a=o.height,s=i*this._getInitialZoomFactor()*this._zoomFactor,u=a*this._getInitialZoomFactor()*this._zoomFactor,c=Ja({containerDimension:r.width,childDimension:s,padding:this.props.horizontalPadding,centerContained:this.props.centerContained}),d=c[0],l=c[1],f=Ja({containerDimension:r.height,childDimension:u,padding:this.props.verticalPadding,centerContained:this.props.centerContained}),h=f[0],p=f[1];return{x:ro(d,l,n.x),y:ro(h,p,n.y)}},t.prototype.alignCenter=function(n){var r=this,o=ce({duration:250,animated:!0},n),i=o.x,a=o.y,s=o.scale,u=o.animated,c=o.duration,d=i*this._initialZoomFactor,l=a*this._initialZoomFactor,f=this._zoomFactor,h=ce({},this._offset),p=this._getContainerRect(),m={x:p.width/2,y:p.height/2};if(this._zoomFactor=1,this._offset={x:-(m.x-d),y:-(m.y-l)},this._scaleTo(s,m),this._stopAnimation(),!u)return this._update();var g=this._zoomFactor-f,_={x:this._offset.x-h.x,y:this._offset.y-h.y};this._zoomFactor=f,this._offset=ce({},h);var y=function(b){var L=h.x+_.x*b,I=h.y+_.y*b;r._zoomFactor=f+g*b,r._offset=r._sanitizeOffset({x:L,y:I}),r._update()};this._animate(y,{callback:function(){return r._sanitize()},duration:c})},t.prototype.scaleTo=function(n){var r=this,o=ce({duration:250,animated:!0},n),i=o.x,a=o.y,s=o.scale,u=o.animated,c=o.duration,d=this._zoomFactor,l=ce({},this._offset);if(this._zoomFactor=1,this._offset={x:0,y:0},this._scaleTo(s,{x:i,y:a}),this._stopAnimation(),!u)return this._update();var f=this._zoomFactor-d,h={x:this._offset.x-l.x,y:this._offset.y-l.y};this._zoomFactor=d,this._offset=ce({},l);var p=function(m){var g=l.x+h.x*m,_=l.y+h.y*m;r._zoomFactor=d+f*m,r._offset={x:g,y:_},r._update()};this._animate(p,{callback:function(){return r._sanitize()},duration:c})},t.prototype._scaleTo=function(n,r){this._scale(n/this._zoomFactor,r),this._offset=this._sanitizeOffset(this._offset)},t.prototype._scale=function(n,r){n=this._scaleZoomFactor(n),this._addOffset({x:(n-1)*(r.x+this._offset.x),y:(n-1)*(r.y+this._offset.y)}),this.props.onZoomUpdate()},t.prototype._scaleZoomFactor=function(n){var r=this._zoomFactor;return this._zoomFactor*=n,this._zoomFactor=ro(this.props.minZoom,this.props.maxZoom,this._zoomFactor),this._zoomFactor/r},t.prototype._canDrag=function(){return this.props.draggableUnZoomed||!Gp(this._zoomFactor,1)},t.prototype._drag=function(n,r){if(r){var o=-(n.y-r.y),i=-(n.x-r.x);this.props.lockDragAxis?Yn(i)>Yn(o)?this._addOffset({x:i,y:0}):this._addOffset({y:o,x:0}):this._addOffset({x:i,y:o}),this.props.onDragUpdate()}},t.prototype._virtualDrag=function(n,r){if(r){var o=-(n.y-r.y),i=-(n.x-r.x);this._draggingPoint={x:i+this._draggingPoint.x,y:o+this._draggingPoint.y}}},t.prototype._addOffset=function(n){var r=this._offset,o=r.x,i=r.y;this._offset={x:o+n.x,y:i+n.y}},t.prototype._sanitize=function(){this._zoomFactor=c?(n(1),o._stopAnimation(),u(),o._update()):(f=s(f),n(f),o._update({isAnimation:!0}),requestAnimationFrame(d))}};this._inAnimation=!0,requestAnimationFrame(d)},t.prototype._stopAnimation=function(){this._inAnimation=!1},t.prototype._end=function(){this._hasInteraction=!1,this._sanitize(),this._update()},t.prototype._getContainerRect=function(){var n=this._containerRef.current;return n.getBoundingClientRect()},t.prototype._getChildSize=function(){var n=this._containerRef.current;return $p(n==null?void 0:n.firstElementChild)},t.prototype._updateInitialZoomFactor=function(){var n=this._getContainerRect(),r=this._getChildSize(),o=n.width/r.width,i=n.height/r.height;this._initialZoomFactor=Bp(o,i)},t.prototype._bindEvents=function(){var n=this,r=this._containerRef.current;window.ResizeObserver?(this._containerObserver=new ResizeObserver(this._onResize),this._containerObserver.observe(r)):window.addEventListener("resize",this._onResize),this._handlers.forEach(function(o){var i=o[0],a=o[1],s=o[2];(s||r).addEventListener(i,a,!0)}),Array.from(r.querySelectorAll("img")).forEach(function(o){return o.addEventListener("load",n._onResize)})},t.prototype._unSubscribe=function(){var n=this,r=this._containerRef.current;this._containerObserver&&(this._containerObserver.disconnect(),this._containerObserver=null),window.removeEventListener("resize",this._onResize),this._handlers.forEach(function(o){var i=o[0],a=o[1],s=o[2];(s||r).removeEventListener(i,a,!0)}),Array.from(r.querySelectorAll("img")).forEach(function(o){return o.removeEventListener("load",n._onResize)})},t.prototype._update=function(n){var r=this;if(!this._updatePlaned){var o=function(){var i=r._getInitialZoomFactor()*r._zoomFactor,a=-r._offset.x/i,s=-r._offset.y/i;r.props.onUpdate({scale:i,x:a,y:s})};if(n!=null&&n.isAnimation)return o();this._updatePlaned=!0,requestAnimationFrame(function(){r._updatePlaned=!1,o()})}},t.prototype._handlerIfEnable=function(n){var r=this;return function(){for(var o=[],i=0;ir?n-r:r-n},t.prototype._enoughToDrag=function(){return this._distanceBetweenNumbers(this._startOffset.x,this._draggingPoint.x)>5||this._distanceBetweenNumbers(this._startOffset.y,this._draggingPoint.y)>5},t.prototype._updateInteraction=function(n){var r=this._fingers;if(r===2)return this._setInteraction("zoom",n);if(r===1&&this._canDrag())return this._setInteraction("drag",n);this._setInteraction(null,n)},t.prototype._detectDoubleTap=function(n){var r=new Date().getTime();this._fingers>1&&(this._lastTouchStart=0),r-this._lastTouchStart<300?(hn(n),this._handleDoubleTap(n),fn(this._interaction)?this._handleZoomEnd():kt(this._interaction)&&this._handleDragEnd()):this._isDoubleTap=!1,this._fingers===1&&(this._lastTouchStart=r)},t.prototype.simulate=function(n){var r=this;return function(o){var i=o.pageX,a=o.pageY,s=o.type,u=s==="mouseup",c=s==="mousedown";c&&(o.preventDefault(),r._listenMouseMove=!0),r._listenMouseMove&&(o.touches=u?[]:[{pageX:i,pageY:a}],n(o)),u&&(r._listenMouseMove=!1)}},t.prototype.componentDidMount=function(){this._bindEvents(),this._update()},t.prototype.componentWillUnmount=function(){this._stopAnimation(),this._unSubscribe()},t.prototype.render=function(){var n=this.props,r=n.children,o=n.containerProps,i=Er.only(r),a=o||{};return Nt.createElement(Nt.Fragment,null,Nt.createElement("style",null,Lp),Nt.createElement("div",ce({},a,{ref:this._containerRef,className:Ua(Yu,a.className)}),Sr(i,{className:Ua(Vu,i.props.className)})))},t.defaultProps={animationDuration:250,draggableUnZoomed:!0,enforceBoundsDuringZoom:!1,centerContained:!1,enabled:!0,inertia:!0,inertiaFriction:.96,horizontalPadding:0,isTouch:Fp,lockDragAxis:!1,maxZoom:5,minZoom:.5,onDoubleTap:vt,onDragEnd:vt,onDragStart:vt,onDragUpdate:vt,onZoomEnd:vt,onZoomStart:vt,onZoomUpdate:vt,setOffsetsOnce:!1,shouldInterceptWheel:Kp,shouldCancelHandledTouchEndEvents:!1,tapZoomFactor:1,verticalPadding:0,wheelScaleFactor:1500,zoomOutFactor:1.3,doubleTapZoomOutOnMaxScale:!1,doubleTapToggleZoom:!1,_document:Zu?null:window.document},t}(Fe);if(0)var ug,cg,lg,dg,fg,hg,pg;var Si={exports:{}},mg=Si.exports;(function(e){var t=function(){var n=String.fromCharCode,r="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function a(u,c){if(!i[u]){i[u]={};for(var d=0;d>>8,d[l*2+1]=h%256}return d},decompressFromUint8Array:function(u){if(u==null)return s.decompress(u);for(var c=new Array(u.length/2),d=0,l=c.length;d>1}else{for(f=1,l=0;l>1}y--,y==0&&(y=Math.pow(2,L),L++),delete p[_]}else for(f=h[_],l=0;l>1;y--,y==0&&(y=Math.pow(2,L),L++),h[g]=b++,_=String(m)}if(_!==""){if(Object.prototype.hasOwnProperty.call(p,_)){if(_.charCodeAt(0)<256){for(l=0;l>1}else{for(f=1,l=0;l>1}y--,y==0&&(y=Math.pow(2,L),L++),delete p[_]}else for(f=h[_],l=0;l>1;y--,y==0&&(y=Math.pow(2,L),L++)}for(f=2,l=0;l>1;for(;;)if(A=A<<1,M==c-1){I.push(d(A));break}else M++;return I.join("")},decompress:function(u){return u==null?"":u==""?null:s._decompress(u.length,32768,function(c){return u.charCodeAt(c)})},_decompress:function(u,c,d){var l=[],f,h=4,p=4,m=3,g="",_=[],y,b,L,I,A,M,G,C={val:d(0),position:c,index:1};for(y=0;y<3;y+=1)l[y]=y;for(L=0,A=Math.pow(2,2),M=1;M!=A;)I=C.val&C.position,C.position>>=1,C.position==0&&(C.position=c,C.val=d(C.index++)),L|=(I>0?1:0)*M,M<<=1;switch(f=L){case 0:for(L=0,A=Math.pow(2,8),M=1;M!=A;)I=C.val&C.position,C.position>>=1,C.position==0&&(C.position=c,C.val=d(C.index++)),L|=(I>0?1:0)*M,M<<=1;G=n(L);break;case 1:for(L=0,A=Math.pow(2,16),M=1;M!=A;)I=C.val&C.position,C.position>>=1,C.position==0&&(C.position=c,C.val=d(C.index++)),L|=(I>0?1:0)*M,M<<=1;G=n(L);break;case 2:return""}for(l[3]=G,b=G,_.push(G);;){if(C.index>u)return"";for(L=0,A=Math.pow(2,m),M=1;M!=A;)I=C.val&C.position,C.position>>=1,C.position==0&&(C.position=c,C.val=d(C.index++)),L|=(I>0?1:0)*M,M<<=1;switch(G=L){case 0:for(L=0,A=Math.pow(2,8),M=1;M!=A;)I=C.val&C.position,C.position>>=1,C.position==0&&(C.position=c,C.val=d(C.index++)),L|=(I>0?1:0)*M,M<<=1;l[p++]=n(L),G=p-1,h--;break;case 1:for(L=0,A=Math.pow(2,16),M=1;M!=A;)I=C.val&C.position,C.position>>=1,C.position==0&&(C.position=c,C.val=d(C.index++)),L|=(I>0?1:0)*M,M<<=1;l[p++]=n(L),G=p-1,h--;break;case 2:return _.join("")}if(h==0&&(h=Math.pow(2,m),m++),l[G])g=l[G];else if(G===p)g=b+b.charAt(0);else return null;_.push(g),l[p++]=b+g.charAt(0),h--,b=g,h==0&&(h=Math.pow(2,m),m++)}}};return s}();e!=null?e.exports=t:typeof angular<"u"&&angular!=null&&angular.module("LZString",[]).factory("LZString",function(){return t})})(Si);var _g=Si.exports;var Ya=36,Qu="";for(;Ya--;)Qu+=Ya.toString(36);function gg(e){for(var t="",n=e||11;n--;)t+=Qu[Math.random()*36|0];return t}function ot(e){return Array.isArray?Array.isArray(e):tc(e)==="[object Array]"}const Wp=1/0;function qp(e){if(typeof e=="string")return e;let t=e+"";return t=="0"&&1/e==-Wp?"-0":t}function Yp(e){return e==null?"":qp(e)}function Ye(e){return typeof e=="string"}function Xu(e){return typeof e=="number"}function Vp(e){return e===!0||e===!1||Zp(e)&&tc(e)=="[object Boolean]"}function ec(e){return typeof e=="object"}function Zp(e){return ec(e)&&e!==null}function Be(e){return e!=null}function oo(e){return!e.trim().length}function tc(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}const Qp="Incorrect 'index' type",Xp=e=>`Invalid value for key ${e}`,em=e=>`Pattern length exceeds max of ${e}.`,tm=e=>`Missing ${e} property in key`,nm=e=>`Property 'weight' in key '${e}' must be a positive integer`,Va=Object.prototype.hasOwnProperty;class rm{constructor(t){this._keys=[],this._keyMap={};let n=0;t.forEach(r=>{let o=nc(r);this._keys.push(o),this._keyMap[o.id]=o,n+=o.weight}),this._keys.forEach(r=>{r.weight/=n})}get(t){return this._keyMap[t]}keys(){return this._keys}toJSON(){return JSON.stringify(this._keys)}}function nc(e){let t=null,n=null,r=null,o=1,i=null;if(Ye(e)||ot(e))r=e,t=Za(e),n=Oo(e);else{if(!Va.call(e,"name"))throw new Error(tm("name"));const a=e.name;if(r=a,Va.call(e,"weight")&&(o=e.weight,o<=0))throw new Error(nm(a));t=Za(a),n=Oo(a),i=e.getFn}return{path:t,id:n,weight:o,src:r,getFn:i}}function Za(e){return ot(e)?e:e.split(".")}function Oo(e){return ot(e)?e.join("."):e}function om(e,t){let n=[],r=!1;const o=(i,a,s)=>{if(Be(i))if(!a[s])n.push(i);else{let u=a[s];const c=i[u];if(!Be(c))return;if(s===a.length-1&&(Ye(c)||Xu(c)||Vp(c)))n.push(Yp(c));else if(ot(c)){r=!0;for(let d=0,l=c.length;de.score===t.score?e.idx{this._keysMap[n.id]=r})}create(){this.isCreated||!this.docs.length||(this.isCreated=!0,Ye(this.docs[0])?this.docs.forEach((t,n)=>{this._addString(t,n)}):this.docs.forEach((t,n)=>{this._addObject(t,n)}),this.norm.clear())}add(t){const n=this.size();Ye(t)?this._addString(t,n):this._addObject(t,n)}removeAt(t){this.records.splice(t,1);for(let n=t,r=this.size();n{let a=o.getFn?o.getFn(t):this.getFn(t,o.path);if(Be(a)){if(ot(a)){let s=[];const u=[{nestedArrIndex:-1,value:a}];for(;u.length;){const{nestedArrIndex:c,value:d}=u.pop();if(Be(d))if(Ye(d)&&!oo(d)){let l={v:d,i:c,n:this.norm.get(d)};s.push(l)}else ot(d)&&d.forEach((l,f)=>{u.push({nestedArrIndex:f,value:l})})}r.$[i]=s}else if(Ye(a)&&!oo(a)){let s={v:a,n:this.norm.get(a)};r.$[i]=s}}}),this.records.push(r)}toJSON(){return{keys:this.keys,records:this.records}}}function rc(e,t,{getFn:n=q.getFn,fieldNormWeight:r=q.fieldNormWeight}={}){const o=new Ii({getFn:n,fieldNormWeight:r});return o.setKeys(e.map(nc)),o.setSources(t),o.create(),o}function dm(e,{getFn:t=q.getFn,fieldNormWeight:n=q.fieldNormWeight}={}){const{keys:r,records:o}=e,i=new Ii({getFn:t,fieldNormWeight:n});return i.setKeys(r),i.setIndexRecords(o),i}function Qn(e,{errors:t=0,currentLocation:n=0,expectedLocation:r=0,distance:o=q.distance,ignoreLocation:i=q.ignoreLocation}={}){const a=t/e.length;if(i)return a;const s=Math.abs(r-n);return o?a+s/o:s?1:a}function fm(e=[],t=q.minMatchCharLength){let n=[],r=-1,o=-1,i=0;for(let a=e.length;i=t&&n.push([r,o]),r=-1)}return e[i-1]&&i-r>=t&&n.push([r,i-1]),n}const bt=32;function hm(e,t,n,{location:r=q.location,distance:o=q.distance,threshold:i=q.threshold,findAllMatches:a=q.findAllMatches,minMatchCharLength:s=q.minMatchCharLength,includeMatches:u=q.includeMatches,ignoreLocation:c=q.ignoreLocation}={}){if(t.length>bt)throw new Error(em(bt));const d=t.length,l=e.length,f=Math.max(0,Math.min(r,l));let h=i,p=f;const m=s>1||u,g=m?Array(l):[];let _;for(;(_=e.indexOf(t,p))>-1;){let M=Qn(t,{currentLocation:_,expectedLocation:f,distance:o,ignoreLocation:c});if(h=Math.min(M,h),p=_+d,m){let G=0;for(;G=O;T-=1){let S=T-1,D=n[e.charAt(S)];if(m&&(g[S]=+!!D),B[T]=(B[T+1]<<1|1)&D,M&&(B[T]|=(y[T+1]|y[T])<<1|1|y[T+1]),B[T]&I&&(b=Qn(t,{errors:M,currentLocation:S,expectedLocation:f,distance:o,ignoreLocation:c}),b<=h)){if(h=b,p=S,p<=f)break;O=Math.max(1,2*f-p)}}if(Qn(t,{errors:M+1,currentLocation:f,expectedLocation:f,distance:o,ignoreLocation:c})>h)break;y=B}const A={isMatch:p>=0,score:Math.max(.001,b)};if(m){const M=fm(g,s);M.length?u&&(A.indices=M):A.isMatch=!1}return A}function pm(e){let t={};for(let n=0,r=e.length;n{this.chunks.push({pattern:f,alphabet:pm(f),startIndex:h})},l=this.pattern.length;if(l>bt){let f=0;const h=l%bt,p=l-h;for(;f{const{isMatch:_,score:y,indices:b}=hm(t,p,m,{location:o+g,distance:i,threshold:a,findAllMatches:s,minMatchCharLength:u,includeMatches:r,ignoreLocation:c});_&&(f=!0),l+=y,_&&b&&(d=[...d,...b])});let h={isMatch:f,score:f?l/this.chunks.length:1};return f&&r&&(h.indices=d),h}}class gt{constructor(t){this.pattern=t}static isMultiMatch(t){return Qa(t,this.multiRegex)}static isSingleMatch(t){return Qa(t,this.singleRegex)}search(){}}function Qa(e,t){const n=e.match(t);return n?n[1]:null}class mm extends gt{constructor(t){super(t)}static get type(){return"exact"}static get multiRegex(){return/^="(.*)"$/}static get singleRegex(){return/^=(.*)$/}search(t){const n=t===this.pattern;return{isMatch:n,score:n?0:1,indices:[0,this.pattern.length-1]}}}class _m extends gt{constructor(t){super(t)}static get type(){return"inverse-exact"}static get multiRegex(){return/^!"(.*)"$/}static get singleRegex(){return/^!(.*)$/}search(t){const r=t.indexOf(this.pattern)===-1;return{isMatch:r,score:r?0:1,indices:[0,t.length-1]}}}class gm extends gt{constructor(t){super(t)}static get type(){return"prefix-exact"}static get multiRegex(){return/^\^"(.*)"$/}static get singleRegex(){return/^\^(.*)$/}search(t){const n=t.startsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,this.pattern.length-1]}}}class ym extends gt{constructor(t){super(t)}static get type(){return"inverse-prefix-exact"}static get multiRegex(){return/^!\^"(.*)"$/}static get singleRegex(){return/^!\^(.*)$/}search(t){const n=!t.startsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}}class vm extends gt{constructor(t){super(t)}static get type(){return"suffix-exact"}static get multiRegex(){return/^"(.*)"\$$/}static get singleRegex(){return/^(.*)\$$/}search(t){const n=t.endsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[t.length-this.pattern.length,t.length-1]}}}class wm extends gt{constructor(t){super(t)}static get type(){return"inverse-suffix-exact"}static get multiRegex(){return/^!"(.*)"\$$/}static get singleRegex(){return/^!(.*)\$$/}search(t){const n=!t.endsWith(this.pattern);return{isMatch:n,score:n?0:1,indices:[0,t.length-1]}}}class ic extends gt{constructor(t,{location:n=q.location,threshold:r=q.threshold,distance:o=q.distance,includeMatches:i=q.includeMatches,findAllMatches:a=q.findAllMatches,minMatchCharLength:s=q.minMatchCharLength,isCaseSensitive:u=q.isCaseSensitive,ignoreLocation:c=q.ignoreLocation}={}){super(t),this._bitapSearch=new oc(t,{location:n,threshold:r,distance:o,includeMatches:i,findAllMatches:a,minMatchCharLength:s,isCaseSensitive:u,ignoreLocation:c})}static get type(){return"fuzzy"}static get multiRegex(){return/^"(.*)"$/}static get singleRegex(){return/^(.*)$/}search(t){return this._bitapSearch.searchIn(t)}}class ac extends gt{constructor(t){super(t)}static get type(){return"include"}static get multiRegex(){return/^'"(.*)"$/}static get singleRegex(){return/^'(.*)$/}search(t){let n=0,r;const o=[],i=this.pattern.length;for(;(r=t.indexOf(this.pattern,n))>-1;)n=r+i,o.push([r,n-1]);const a=!!o.length;return{isMatch:a,score:a?0:1,indices:o}}}const Po=[mm,ac,gm,ym,wm,vm,_m,ic],Xa=Po.length,bm=/ +(?=(?:[^\"]*\"[^\"]*\")*[^\"]*$)/,Am="|";function Cm(e,t={}){return e.split(Am).map(n=>{let r=n.trim().split(bm).filter(i=>i&&!!i.trim()),o=[];for(let i=0,a=r.length;i!!(e[Ar.AND]||e[Ar.OR]),Im=e=>!!e[Ro.PATH],Dm=e=>!ot(e)&&ec(e)&&!ko(e),es=e=>({[Ar.AND]:Object.keys(e).map(t=>({[t]:e[t]}))});function sc(e,t,{auto:n=!0}={}){const r=o=>{let i=Object.keys(o);const a=Im(o);if(!a&&i.length>1&&!ko(o))return r(es(o));if(Dm(o)){const u=a?o[Ro.PATH]:i[0],c=a?o[Ro.PATTERN]:o[u];if(!Ye(c))throw new Error(Xp(u));const d={keyId:Oo(u),pattern:c};return n&&(d.searcher=xo(c,t)),d}let s={children:[],operator:i[0]};return i.forEach(u=>{const c=o[u];ot(c)&&c.forEach(d=>{s.children.push(r(d))})}),s};return ko(e)||(e=es(e)),r(e)}function Lm(e,{ignoreFieldNorm:t=q.ignoreFieldNorm}){e.forEach(n=>{let r=1;n.matches.forEach(({key:o,norm:i,score:a})=>{const s=o?o.weight:null;r*=Math.pow(a===0&&s?Number.EPSILON:a,(s||1)*(t?1:i))}),n.score=r})}function Tm(e,t){const n=e.matches;t.matches=[],Be(n)&&n.forEach(r=>{if(!Be(r.indices)||!r.indices.length)return;const{indices:o,value:i}=r;let a={indices:o,value:i};r.key&&(a.key=r.key.src),r.idx>-1&&(a.refIndex=r.idx),t.matches.push(a)})}function Fm(e,t){t.score=e.score}function Om(e,t,{includeMatches:n=q.includeMatches,includeScore:r=q.includeScore}={}){const o=[];return n&&o.push(Tm),r&&o.push(Fm),e.map(i=>{const{idx:a}=i,s={item:t[a],refIndex:a};return o.length&&o.forEach(u=>{u(i,s)}),s})}class Gn{constructor(t,n={},r){this.options={...q,...n},this.options.useExtendedSearch,this._keyStore=new rm(this.options.keys),this.setCollection(t,r)}setCollection(t,n){if(this._docs=t,n&&!(n instanceof Ii))throw new Error(Qp);this._myIndex=n||rc(this.options.keys,this._docs,{getFn:this.options.getFn,fieldNormWeight:this.options.fieldNormWeight})}add(t){Be(t)&&(this._docs.push(t),this._myIndex.add(t))}remove(t=()=>!1){const n=[];for(let r=0,o=this._docs.length;r-1&&(u=u.slice(0,n)),Om(u,this._docs,{includeMatches:r,includeScore:o})}_searchStringList(t){const n=xo(t,this.options),{records:r}=this._myIndex,o=[];return r.forEach(({v:i,i:a,n:s})=>{if(!Be(i))return;const{isMatch:u,score:c,indices:d}=n.searchIn(i);u&&o.push({item:i,idx:a,matches:[{score:c,value:i,norm:s,indices:d}]})}),o}_searchLogical(t){const n=sc(t,this.options),r=(s,u,c)=>{if(!s.children){const{keyId:l,searcher:f}=s,h=this._findMatches({key:this._keyStore.get(l),value:this._myIndex.getValueForItemAtKeyId(u,l),searcher:f});return h&&h.length?[{idx:c,item:u,matches:h}]:[]}const d=[];for(let l=0,f=s.children.length;l{if(Be(s)){let c=r(n,s,u);c.length&&(i[u]||(i[u]={idx:u,item:s,matches:[]},a.push(i[u])),c.forEach(({matches:d})=>{i[u].matches.push(...d)}))}}),a}_searchObjectList(t){const n=xo(t,this.options),{keys:r,records:o}=this._myIndex,i=[];return o.forEach(({$:a,i:s})=>{if(!Be(a))return;let u=[];r.forEach((c,d)=>{u.push(...this._findMatches({key:c,value:a[d],searcher:n}))}),u.length&&i.push({idx:s,item:a,matches:u})}),i}_findMatches({key:t,value:n,searcher:r}){if(!Be(n))return[];let o=[];if(ot(n))n.forEach(({v:i,i:a,n:s})=>{if(!Be(i))return;const{isMatch:u,score:c,indices:d}=r.searchIn(i);u&&o.push({score:c,key:t,value:i,idx:a,norm:s,indices:d})});else{const{v:i,n:a}=n,{isMatch:s,score:u,indices:c}=r.searchIn(i);s&&o.push({score:u,key:t,value:i,norm:a,indices:c})}return o}}Gn.version="7.0.0";Gn.createIndex=rc;Gn.parseIndex=dm;Gn.config=q;Gn.parseQuery=sc;Sm(Em);export{K0 as $,Qe as A,L_ as B,zh as C,u_ as D,Gn as E,J as F,Vc as G,zm as H,z_ as I,rg as J,N_ as K,Xm as L,E_ as M,Fl as N,jm as O,ne as P,Mn as Q,Hm as R,Vm as S,kn as T,Zm as U,p_ as V,__ as W,oa as X,Km as Y,e_ as Z,oe as _,Um as a,En as a0,T_ as a1,C_ as a2,M_ as a3,_c as a4,B_ as a5,O_ as a6,R_ as a7,H_ as a8,l0 as a9,eo as aa,K_ as ab,J0 as ac,J_ as ad,$_ as ae,U_ as af,W_ as ag,q_ as ah,Y_ as ai,V_ as aj,Ce as ak,ig as al,ag as am,sg as an,ng as ao,Z_ as ap,Q_ as aq,o_ as ar,Ym as as,zl as at,Mu as au,c0 as av,Us as aw,G_ as ax,ue as b,g_ as c,I_ as d,ti as e,j_ as f,ge as g,V0 as h,bl as i,Nm as j,xe as k,_g as l,pt as m,og as n,Ip as o,me as p,se as q,km as r,Gs as s,gg as t,qm as u,mh as v,D_ as w,Hn as x,Rn as y,S_ as z}; +//# sourceMappingURL=vendor-GrW-f9CX.js.map diff --git a/assets/vendor-GrW-f9CX.js.map b/assets/vendor-GrW-f9CX.js.map new file mode 100644 index 0000000..2a17e66 --- /dev/null +++ b/assets/vendor-GrW-f9CX.js.map @@ -0,0 +1 @@ +{"version":3,"file":"vendor-GrW-f9CX.js","sources":["../../node_modules/preact/dist/preact.module.js","../../node_modules/preact/hooks/dist/hooks.module.js","../../node_modules/preact/compat/dist/compat.module.js","../../node_modules/@remix-run/router/dist/router.js","../../node_modules/react-router/dist/index.js","../../node_modules/react-router-dom/dist/index.js","../../node_modules/just-debounce-it/index.mjs","../../node_modules/swiped-events/src/swiped-events.js","../../node_modules/proxy-compare/dist/index.modern.js","../../node_modules/valtio/esm/vanilla.mjs","../../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../../node_modules/use-sync-external-store/shim/index.js","../../node_modules/valtio/esm/react.mjs","../../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../../node_modules/react-hotkeys-hook/dist/react-hotkeys-hook.esm.js","../../node_modules/ts-custom-error/dist/custom-error.mjs","../../node_modules/isomorphic-ws/browser.js","../../node_modules/events-to-async/module/events-to-async.js","../../node_modules/tslib/tslib.es6.js","../../node_modules/lower-case/dist.es2015/index.js","../../node_modules/no-case/dist.es2015/index.js","../../node_modules/pascal-case/dist.es2015/index.js","../../node_modules/camel-case/dist.es2015/index.js","../../node_modules/dot-case/dist.es2015/index.js","../../node_modules/snake-case/dist.es2015/index.js","../../node_modules/masto/dist/index.js","../../node_modules/toastify-js/src/toastify.js","../../node_modules/fast-equals/dist/esm/index.mjs","../../node_modules/valtio/esm/vanilla/utils.mjs","../../node_modules/valtio/esm/react/utils.mjs","../../node_modules/micro-memoize/dist/micro-memoize.js","../../node_modules/moize/node_modules/fast-equals/dist/fast-equals.js","../../node_modules/moize/dist/moize.js","../../node_modules/p-throttle/index.js","../../node_modules/@formkit/auto-animate/index.mjs","../../node_modules/@formkit/auto-animate/preact/index.mjs","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/prop-types/index.js","../../node_modules/@szhsin/react-menu/dist/es/utils/utils.js","../../node_modules/@szhsin/react-menu/dist/es/utils/propTypes.js","../../node_modules/@szhsin/react-menu/dist/es/hooks/useBEM.js","../../node_modules/@szhsin/react-menu/dist/es/utils/constants.js","../../node_modules/@szhsin/react-menu/dist/es/components/MenuContainer.js","../../node_modules/@szhsin/react-menu/dist/es/utils/submenuCtx.js","../../node_modules/@szhsin/react-menu/dist/es/hooks/useItems.js","../../node_modules/@szhsin/react-menu/dist/es/positionUtils/getPositionHelpers.js","../../node_modules/@szhsin/react-menu/dist/es/positionUtils/placeArrowVertical.js","../../node_modules/@szhsin/react-menu/dist/es/positionUtils/placeLeftorRight.js","../../node_modules/@szhsin/react-menu/dist/es/positionUtils/placeArrowHorizontal.js","../../node_modules/@szhsin/react-menu/dist/es/positionUtils/placeToporBottom.js","../../node_modules/@szhsin/react-menu/dist/es/positionUtils/positionMenu.js","../../node_modules/@szhsin/react-menu/dist/es/hooks/useIsomorphicLayoutEffect.js","../../node_modules/@szhsin/react-menu/dist/es/hooks/useCombinedRef.js","../../node_modules/@szhsin/react-menu/dist/es/components/MenuList.js","../../node_modules/@szhsin/react-menu/dist/es/components/ControlledMenu.js","../../node_modules/react-transition-state/dist/es/hooks/utils.js","../../node_modules/react-transition-state/dist/es/hooks/useTransition.js","../../node_modules/@szhsin/react-menu/dist/es/hooks/useMenuState.js","../../node_modules/@szhsin/react-menu/dist/es/hooks/useMenuStateAndFocus.js","../../node_modules/@szhsin/react-menu/dist/es/hooks/useClick.js","../../node_modules/@szhsin/react-menu/dist/es/hooks/useMenuChange.js","../../node_modules/@szhsin/react-menu/dist/es/components/Menu.js","../../node_modules/@szhsin/react-menu/dist/es/utils/withHovering.js","../../node_modules/@szhsin/react-menu/dist/es/hooks/useItemEffect.js","../../node_modules/@szhsin/react-menu/dist/es/components/SubMenu.js","../../node_modules/@szhsin/react-menu/dist/es/hooks/useItemState.js","../../node_modules/@szhsin/react-menu/dist/es/components/MenuItem.js","../../node_modules/@szhsin/react-menu/dist/es/components/FocusableItem.js","../../node_modules/@szhsin/react-menu/dist/es/components/MenuDivider.js","../../node_modules/@szhsin/react-menu/dist/es/components/MenuHeader.js","../../node_modules/@szhsin/react-menu/dist/es/components/MenuGroup.js","../../node_modules/@uidotdev/usehooks/index.js","../../node_modules/dayjs/dayjs.min.js","../../node_modules/dayjs-twitter/dist/dayjs-twitter.min.js","../../node_modules/dayjs/plugin/localizedFormat.js","../../node_modules/dayjs/plugin/relativeTime.js","../../node_modules/@formatjs/intl-localematcher/lib/abstract/CanonicalizeLocaleList.js","../../node_modules/@formatjs/intl-localematcher/lib/abstract/languageMatching.js","../../node_modules/@formatjs/intl-localematcher/lib/abstract/regions.generated.js","../../node_modules/@formatjs/intl-localematcher/lib/abstract/utils.js","../../node_modules/@formatjs/intl-localematcher/lib/abstract/BestFitMatcher.js","../../node_modules/@formatjs/intl-localematcher/lib/abstract/BestAvailableLocale.js","../../node_modules/@formatjs/intl-localematcher/lib/abstract/LookupMatcher.js","../../node_modules/@formatjs/intl-localematcher/lib/abstract/UnicodeExtensionValue.js","../../node_modules/@formatjs/intl-localematcher/lib/abstract/ResolveLocale.js","../../node_modules/@formatjs/intl-localematcher/lib/abstract/LookupSupportedLocales.js","../../node_modules/@formatjs/intl-localematcher/lib/index.js","../../node_modules/punycode/punycode.es6.js","../../node_modules/compare-versions/lib/esm/utils.js","../../node_modules/compare-versions/lib/esm/compareVersions.js","../../node_modules/compare-versions/lib/esm/compare.js","../../node_modules/compare-versions/lib/esm/satisfies.js","../../node_modules/retry/lib/retry_operation.js","../../node_modules/retry/lib/retry.js","../../node_modules/retry/index.js","../../node_modules/is-network-error/index.js","../../node_modules/p-retry/index.js","../../node_modules/react-intersection-observer/index.mjs","../../node_modules/@formatjs/intl-segmenter/should-polyfill.js","../../node_modules/idb-keyval/dist/index.js","../../node_modules/@justinribeiro/lite-youtube/lite-youtube.js","../../node_modules/fast-blurhash/index.js","../../node_modules/html-prettify/src/utils/addIndentation.js","../../node_modules/html-prettify/src/utils/toLines.js","../../node_modules/html-prettify/src/index.js","../../node_modules/tinyld/dist/tinyld.light.node.mjs","../../node_modules/use-long-press/index.mjs","../../node_modules/use-debounce/dist/index.module.js","../../node_modules/use-resize-observer/dist/bundle.esm.js","../../node_modules/react-quick-pinch-zoom/esm/PinchZoom/styles.css.js","../../node_modules/react-quick-pinch-zoom/esm/utils.js","../../node_modules/react-quick-pinch-zoom/esm/PinchZoom/getOffsetBounds.js","../../node_modules/react-quick-pinch-zoom/esm/PinchZoom/component.js","../../node_modules/lz-string/libs/lz-string.js","../../node_modules/uid/single/index.mjs","../../node_modules/fuse.js/dist/fuse.mjs"],"sourcesContent":["var n,l,u,t,i,o,r,f,e,c,s,a,h={},p=[],v=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,y=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function w(n){var l=n.parentNode;l&&l.removeChild(n)}function _(l,u,t){var i,o,r,f={};for(r in u)\"key\"==r?i=u[r]:\"ref\"==r?o=u[r]:f[r]=u[r];if(arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(r in l.defaultProps)void 0===f[r]&&(f[r]=l.defaultProps[r]);return g(l,f,i,o,null)}function g(n,t,i,o,r){var f={type:n,props:t,key:i,ref:o,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__v:null==r?++u:r,__i:-1,__u:0};return null==r&&null!=l.vnode&&l.vnode(f),f}function m(){return{current:null}}function k(n){return n.children}function b(n,l){this.props=n,this.context=l}function x(n,l){if(null==l)return n.__?x(n.__,n.__i+1):null;for(var u;lu&&i.sort(f));P.__r=0}function S(n,l,u,t,i,o,r,f,e,c,s){var a,v,y,d,w,_=t&&t.__k||p,g=l.length;for(u.__d=e,$(u,l,_),e=u.__d,a=0;a0?g(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):i)?(i.__=n,i.__b=n.__b+1,f=L(i,u,r,s),i.__i=f,o=null,-1!==f&&(s--,(o=u[f])&&(o.__u|=131072)),null==o||null===o.__v?(-1==f&&a--,\"function\"!=typeof i.type&&(i.__u|=65536)):f!==r&&(f===r+1?a++:f>r?s>e-r?a+=f-r:a--:f(null!=e&&0==(131072&e.__u)?1:0))for(;r>=0||f=0){if((e=l[r])&&0==(131072&e.__u)&&i==e.key&&o===e.type)return r;r--}if(f2&&(e.children=arguments.length>3?n.call(arguments,2):t),g(l.type,e,i||l.key,o||l.ref,null)}function G(n,l){var u={__c:l=\"__cC\"+a++,__:n,Consumer:function(n,l){return n.children(l)},Provider:function(n){var u,t;return this.getChildContext||(u=[],(t={})[l]=this,this.getChildContext=function(){return t},this.shouldComponentUpdate=function(n){this.props.value!==n.value&&u.some(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.push(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u.splice(u.indexOf(n),1),l&&l.call(n)}}),n.children}};return u.Provider.__=u.Consumer.contextType=u}n=p.slice,l={__e:function(n,l,u,t){for(var i,o,r;l=l.__;)if((i=l.__c)&&!i.__)try{if((o=i.constructor)&&null!=o.getDerivedStateFromError&&(i.setState(o.getDerivedStateFromError(n)),r=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),r=i.__d),r)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},b.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!==this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},b.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},b.prototype.render=k,i=[],r=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,f=function(n,l){return n.__v.__b-l.__v.__b},P.__r=0,e=0,c=F(!1),s=F(!0),a=0;export{b as Component,k as Fragment,E as cloneElement,G as createContext,_ as createElement,m as createRef,_ as h,D as hydrate,t as isValidElement,l as options,B as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=[],e=n,a=e.__b,v=e.__r,l=e.diffed,m=e.__c,s=e.unmount,d=e.__;function h(n,t){e.__h&&e.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({__V:c}),u.__[n]}function p(n){return o=1,y(D,n)}function y(n,u,i){var o=h(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.u)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=!1;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),!(!i&&o.__c.props===n)&&(!c||c.call(this,n,t,r))};r.u=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function _(n,u){var i=h(t++,3);!e.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__H.__h.push(i))}function A(n,u){var i=h(t++,4);!e.__s&&C(i.__H,u)&&(i.__=n,i.i=u,r.__h.push(i))}function F(n){return o=5,q(function(){return{current:n}},[])}function T(n,t,r){o=6,A(function(){return\"function\"==typeof n?(n(t()),function(){return n(null)}):n?(n.current=t(),function(){return n.current=null}):void 0},null==r?r:r.concat(n))}function q(n,r){var u=h(t++,7);return C(u.__H,r)?(u.__V=n(),u.i=r,u.__h=n,u.__V):u.__}function x(n,t){return o=8,q(function(){return n},t)}function P(n){var u=r.context[n.__c],i=h(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function V(n,t){e.useDebugValue&&e.useDebugValue(t?t(n):n)}function b(n){var u=h(t++,10),i=p();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=h(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],e.__e(t,n.__v)}}e.__b=function(n){r=null,a&&a(n)},e.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),d&&d(n,t)},e.__r=function(n){v&&v(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.__V=c,n.__N=n.i=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},e.diffed=function(n){l&&l(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===e.requestAnimationFrame||((i=e.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.i&&(n.__H=n.i),n.__V!==c&&(n.__=n.__V),n.i=void 0,n.__V=c})),u=r=null},e.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],e.__e(r,n.__v)}}),m&&m(n,t)},e.unmount=function(n){s&&s(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&e.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,100);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{x as useCallback,P as useContext,V as useDebugValue,_ as useEffect,b as useErrorBoundary,g as useId,T as useImperativeHandle,A as useLayoutEffect,q as useMemo,y as useReducer,F as useRef,p as useState};\n//# sourceMappingURL=hooks.module.js.map\n","import{Component as n,createElement as t,options as e,toChildArray as r,Fragment as u,render as o,hydrate as i,createContext as l,createRef as c,cloneElement as f}from\"preact\";export{Component,Fragment,createContext,createElement,createRef}from\"preact\";import{useCallback as a,useContext as s,useDebugValue as h,useEffect as v,useId as d,useImperativeHandle as p,useLayoutEffect as m,useMemo as y,useReducer as _,useRef as b,useState as S}from\"preact/hooks\";export*from\"preact/hooks\";function g(n,t){for(var e in t)n[e]=t[e];return n}function E(n,t){for(var e in n)if(\"__source\"!==e&&!(e in t))return!0;for(var r in t)if(\"__source\"!==r&&n[r]!==t[r])return!0;return!1}function C(n,t){this.props=n,this.context=t}function x(n,e){function r(n){var t=this.props.ref,r=t==n.ref;return!r&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n)||!r:E(this.props,n)}function u(e){return this.shouldComponentUpdate=r,t(n,e)}return u.displayName=\"Memo(\"+(n.displayName||n.name)+\")\",u.prototype.isReactComponent=!0,u.__f=!0,u}(C.prototype=new n).isPureReactComponent=!0,C.prototype.shouldComponentUpdate=function(n,t){return E(this.props,n)||E(this.state,t)};var R=e.__b;e.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),R&&R(n)};var w=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;function k(n){function t(t){var e=g({},t);return delete e.ref,n(e,t.ref||null)}return t.$$typeof=w,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(n.displayName||n.name)+\")\",t}var I=function(n,t){return null==n?null:r(r(n).map(t))},N={map:I,forEach:I,count:function(n){return n?r(n).length:0},only:function(n){var t=r(n);if(1!==t.length)throw\"Children.only\";return t[0]},toArray:r},M=e.__e;e.__e=function(n,t,e,r){if(n.then)for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return null==t.__e&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t);M(n,t,e,r)};var T=e.unmount;function A(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n){\"function\"==typeof n.__c&&n.__c()}),n.__c.__H=null),null!=(n=g({},n)).__c&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n){return A(n,t,e)})),n}function D(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n){return D(n,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function L(){this.__u=0,this.t=null,this.__b=null}function O(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function F(n){var e,r,u;function o(o){if(e||(e=n()).then(function(n){r=n.default||n},function(n){u=n}),u)throw u;if(!r)throw e;return t(r,o)}return o.displayName=\"Lazy\",o.__f=!0,o}function U(){this.u=null,this.o=null}e.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),T&&T(n)},(L.prototype=new n).__c=function(n,t){var e=t.__c,r=this;null==r.t&&(r.t=[]),r.t.push(e);var u=O(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l):l())};e.__R=i;var l=function(){if(!--r.__u){if(r.state.__a){var n=r.state.__a;r.__v.__k[0]=D(n,n.__c.__P,n.__c.__O)}var t;for(r.setState({__a:r.__b=null});t=r.t.pop();)t.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},L.prototype.componentWillUnmount=function(){this.t=[]},L.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement(\"div\"),o=this.__v.__k[0].__c;this.__v.__k[0]=A(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&t(u,null,n.fallback);return i&&(i.__u&=-33),[t(u,null,e.__a?null:n.children),i]};var V=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(\"t\"!==n.props.revealOrder[0]||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]>>1,1),e.i.removeChild(n)}}),o(t(W,{context:e.context},n.__v),e.l)}function j(n,e){var r=t(P,{__v:n,i:e});return r.containerInfo=e,r}(U.prototype=new n).__a=function(n){var t=this,e=O(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),V(t,n,r)):u()};e?e(o):o()}},U.prototype.render=function(n){this.u=null,this.o=new Map;var t=r(n.children);n.revealOrder&&\"b\"===n.revealOrder[0]&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},U.prototype.componentDidUpdate=U.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){V(n,e,t)})};var z=\"undefined\"!=typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Z=/[A-Z0-9]/g,Y=\"undefined\"!=typeof document,$=function(n){return(\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol()?/fil|che|rad/:/fil|che|ra/).test(n)};function q(n,t,e){return null==t.__k&&(t.textContent=\"\"),o(n,t),\"function\"==typeof e&&e(),n?n.__c:null}function G(n,t,e){return i(n,t),\"function\"==typeof e&&e(),n?n.__c:null}n.prototype.isReactComponent={},[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(t){Object.defineProperty(n.prototype,t,{configurable:!0,get:function(){return this[\"UNSAFE_\"+t]},set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var J=e.event;function K(){}function Q(){return this.cancelBubble}function X(){return this.defaultPrevented}e.event=function(n){return J&&(n=J(n)),n.persist=K,n.isPropagationStopped=Q,n.isDefaultPrevented=X,n.nativeEvent=n};var nn,tn={enumerable:!1,configurable:!0,get:function(){return this.class}},en=e.vnode;e.vnode=function(n){\"string\"==typeof n.type&&function(n){var t=n.props,e=n.type,u={};for(var o in t){var i=t[o];if(!(\"value\"===o&&\"defaultValue\"in t&&null==i||Y&&\"children\"===o&&\"noscript\"===e||\"class\"===o||\"className\"===o)){var l=o.toLowerCase();\"defaultValue\"===o&&\"value\"in t&&null==t.value?o=\"value\":\"download\"===o&&!0===i?i=\"\":\"translate\"===l&&\"no\"===i?i=!1:\"ondoubleclick\"===l?o=\"ondblclick\":\"onchange\"!==l||\"input\"!==e&&\"textarea\"!==e||$(t.type)?\"onfocus\"===l?o=\"onfocusin\":\"onblur\"===l?o=\"onfocusout\":H.test(o)?o=l:-1===e.indexOf(\"-\")&&B.test(o)?o=o.replace(Z,\"-$&\").toLowerCase():null===i&&(i=void 0):l=o=\"oninput\",\"oninput\"===l&&u[o=l]&&(o=\"oninputCapture\"),u[o]=i}}\"select\"==e&&u.multiple&&Array.isArray(u.value)&&(u.value=r(t.children).forEach(function(n){n.props.selected=-1!=u.value.indexOf(n.props.value)})),\"select\"==e&&null!=u.defaultValue&&(u.value=r(t.children).forEach(function(n){n.props.selected=u.multiple?-1!=u.defaultValue.indexOf(n.props.value):u.defaultValue==n.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,\"className\",tn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n.props=u}(n),n.$$typeof=z,en&&en(n)};var rn=e.__r;e.__r=function(n){rn&&rn(n),nn=n.__c};var un=e.diffed;e.diffed=function(n){un&&un(n);var t=n.props,e=n.__e;null!=e&&\"textarea\"===n.type&&\"value\"in t&&t.value!==e.value&&(e.value=null==t.value?\"\":t.value),nn=null};var on={ReactCurrentDispatcher:{current:{readContext:function(n){return nn.__n[n.__c].props.value},useCallback:a,useContext:s,useDebugValue:h,useDeferredValue:bn,useEffect:v,useId:d,useImperativeHandle:p,useInsertionEffect:gn,useLayoutEffect:m,useMemo:y,useReducer:_,useRef:b,useState:S,useSyncExternalStore:Cn,useTransition:Sn}}},ln=\"17.0.2\";function cn(n){return t.bind(null,n)}function fn(n){return!!n&&n.$$typeof===z}function an(n){return fn(n)&&n.type===u}function sn(n){return!!n&&!!n.displayName&&(\"string\"==typeof n.displayName||n.displayName instanceof String)&&n.displayName.startsWith(\"Memo(\")}function hn(n){return fn(n)?f.apply(null,arguments):n}function vn(n){return!!n.__k&&(o(null,n),!0)}function dn(n){return n&&(n.base||1===n.nodeType&&n)||null}var pn=function(n,t){return n(t)},mn=function(n,t){return n(t)},yn=u;function _n(n){n()}function bn(n){return n}function Sn(){return[!1,_n]}var gn=m,En=fn;function Cn(n,t){var e=t(),r=S({h:{__:e,v:t}}),u=r[0].h,o=r[1];return m(function(){u.__=e,u.v=t,xn(u)&&o({h:u})},[n,e,t]),v(function(){return xn(u)&&o({h:u}),n(function(){xn(u)&&o({h:u})})},[n]),e}function xn(n){var t,e,r=n.v,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(0!==t||1/t==1/e)||t!=t&&e!=e)}catch(n){return!0}}var Rn={useState:S,useId:d,useReducer:_,useEffect:v,useLayoutEffect:m,useInsertionEffect:gn,useTransition:Sn,useDeferredValue:bn,useSyncExternalStore:Cn,startTransition:_n,useRef:b,useImperativeHandle:p,useMemo:y,useCallback:a,useContext:s,useDebugValue:h,version:\"17.0.2\",Children:N,render:q,hydrate:G,unmountComponentAtNode:vn,createPortal:j,createElement:t,createContext:l,createFactory:cn,cloneElement:hn,createRef:c,Fragment:u,isValidElement:fn,isElement:En,isFragment:an,isMemo:sn,findDOMNode:dn,Component:n,PureComponent:C,memo:x,forwardRef:k,flushSync:mn,unstable_batchedUpdates:pn,StrictMode:yn,Suspense:L,SuspenseList:U,lazy:F,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:on};export{N as Children,C as PureComponent,yn as StrictMode,L as Suspense,U as SuspenseList,on as __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,hn as cloneElement,cn as createFactory,j as createPortal,Rn as default,dn as findDOMNode,mn as flushSync,k as forwardRef,G as hydrate,En as isElement,an as isFragment,sn as isMemo,fn as isValidElement,F as lazy,x as memo,q as render,_n as startTransition,vn as unmountComponentAtNode,pn as unstable_batchedUpdates,bn as useDeferredValue,gn as useInsertionEffect,Cn as useSyncExternalStore,Sn as useTransition,ln as version};\n//# sourceMappingURL=compat.module.js.map\n","/**\n * @remix-run/router v1.2.1\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nvar Action;\n\n(function (Action) {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Action[\"Pop\"] = \"POP\";\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n\n Action[\"Push\"] = \"PUSH\";\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n\n Action[\"Replace\"] = \"REPLACE\";\n})(Action || (Action = {}));\n\nconst PopStateEventType = \"popstate\";\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\n\nfunction createMemoryHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n let {\n initialEntries = [\"/\"],\n initialIndex,\n v5Compat = false\n } = options;\n let entries; // Declare so we can access from createMemoryLocation\n\n entries = initialEntries.map((entry, index) => createMemoryLocation(entry, typeof entry === \"string\" ? null : entry.state, index === 0 ? \"default\" : undefined));\n let index = clampIndex(initialIndex == null ? entries.length - 1 : initialIndex);\n let action = Action.Pop;\n let listener = null;\n\n function clampIndex(n) {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n\n function getCurrentLocation() {\n return entries[index];\n }\n\n function createMemoryLocation(to, state, key) {\n if (state === void 0) {\n state = null;\n }\n\n let location = createLocation(entries ? getCurrentLocation().pathname : \"/\", to, state, key);\n warning$1(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in memory history: \" + JSON.stringify(to));\n return location;\n }\n\n let history = {\n get index() {\n return index;\n },\n\n get action() {\n return action;\n },\n\n get location() {\n return getCurrentLocation();\n },\n\n createHref(to) {\n return typeof to === \"string\" ? to : createPath(to);\n },\n\n encodeLocation(to) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\"\n };\n },\n\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation\n });\n }\n },\n\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n\n if (v5Compat && listener) {\n listener({\n action,\n location: nextLocation\n });\n }\n },\n\n go(delta) {\n action = Action.Pop;\n index = clampIndex(index + delta);\n\n if (listener) {\n listener({\n action,\n location: getCurrentLocation()\n });\n }\n },\n\n listen(fn) {\n listener = fn;\n return () => {\n listener = null;\n };\n }\n\n };\n return history;\n}\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\n\nfunction createBrowserHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n function createBrowserLocation(window, globalHistory) {\n let {\n pathname,\n search,\n hash\n } = window.location;\n return createLocation(\"\", {\n pathname,\n search,\n hash\n }, // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n\n function createBrowserHref(window, to) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(createBrowserLocation, createBrowserHref, null, options);\n}\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\n\nfunction createHashHistory(options) {\n if (options === void 0) {\n options = {};\n }\n\n function createHashLocation(window, globalHistory) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\"\", {\n pathname,\n search,\n hash\n }, // state defaults to `null` because `window.history.state` does\n globalHistory.state && globalHistory.state.usr || null, globalHistory.state && globalHistory.state.key || \"default\");\n }\n\n function createHashHref(window, to) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location, to) {\n warning$1(location.pathname.charAt(0) === \"/\", \"relative pathnames are not supported in hash history.push(\" + JSON.stringify(to) + \")\");\n }\n\n return getUrlBasedHistory(createHashLocation, createHashHref, validateHashLocation, options);\n}\nfunction invariant(value, message) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nfunction warning$1(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n/**\n * For browser-based histories, we combine the state and key into an object\n */\n\n\nfunction getHistoryState(location) {\n return {\n usr: location.state,\n key: location.key\n };\n}\n/**\n * Creates a Location object with a unique key from the given Path\n */\n\n\nfunction createLocation(current, to, state, key) {\n if (state === void 0) {\n state = null;\n }\n\n let location = _extends({\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\"\n }, typeof to === \"string\" ? parsePath(to) : to, {\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: to && to.key || key || createKey()\n });\n\n return location;\n}\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\n\nfunction createPath(_ref) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\"\n } = _ref;\n if (search && search !== \"?\") pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\") pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\n\nfunction parsePath(path) {\n let parsedPath = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\nfunction createClientSideURL(location) {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base = typeof window !== \"undefined\" && typeof window.location !== \"undefined\" && window.location.origin !== \"null\" ? window.location.origin : window.location.href;\n let href = typeof location === \"string\" ? location : createPath(location);\n invariant(base, \"No window.location.(origin|href) available to create URL for href: \" + href);\n return new URL(href, base);\n}\n\nfunction getUrlBasedHistory(getLocation, createHref, validateLocation, options) {\n if (options === void 0) {\n options = {};\n }\n\n let {\n window = document.defaultView,\n v5Compat = false\n } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener = null;\n\n function handlePop() {\n action = Action.Pop;\n\n if (listener) {\n listener({\n action,\n location: history.location\n });\n }\n }\n\n function push(to, state) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n let historyState = getHistoryState(location);\n let url = history.createHref(location); // try...catch because iOS limits us to 100 pushState calls :/\n\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location\n });\n }\n }\n\n function replace(to, state) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n let historyState = getHistoryState(location);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({\n action,\n location: history.location\n });\n }\n }\n\n let history = {\n get action() {\n return action;\n },\n\n get location() {\n return getLocation(window, globalHistory);\n },\n\n listen(fn) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n\n createHref(to) {\n return createHref(window, to);\n },\n\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createClientSideURL(typeof to === \"string\" ? to : createPath(to));\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash\n };\n },\n\n push,\n replace,\n\n go(n) {\n return globalHistory.go(n);\n }\n\n };\n return history;\n} //#endregion\n\nvar ResultType;\n\n(function (ResultType) {\n ResultType[\"data\"] = \"data\";\n ResultType[\"deferred\"] = \"deferred\";\n ResultType[\"redirect\"] = \"redirect\";\n ResultType[\"error\"] = \"error\";\n})(ResultType || (ResultType = {}));\n\nfunction isIndexRoute(route) {\n return route.index === true;\n} // Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\n\n\nfunction convertRoutesToDataRoutes(routes, parentPath, allIds) {\n if (parentPath === void 0) {\n parentPath = [];\n }\n\n if (allIds === void 0) {\n allIds = new Set();\n }\n\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(route.index !== true || !route.children, \"Cannot specify children on an index route\");\n invariant(!allIds.has(id), \"Found a route id collision on id \\\"\" + id + \"\\\". Route \" + \"id's must be globally unique within Data Router usages\");\n allIds.add(id);\n\n if (isIndexRoute(route)) {\n let indexRoute = _extends({}, route, {\n id\n });\n\n return indexRoute;\n } else {\n let pathOrLayoutRoute = _extends({}, route, {\n id,\n children: route.children ? convertRoutesToDataRoutes(route.children, treePath, allIds) : undefined\n });\n\n return pathOrLayoutRoute;\n }\n });\n}\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\n\nfunction matchRoutes(routes, locationArg, basename) {\n if (basename === void 0) {\n basename = \"/\";\n }\n\n let location = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n let matches = null;\n\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(branches[i], // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname));\n }\n\n return matches;\n}\n\nfunction flattenRoutes(routes, branches, parentsMeta, parentPath) {\n if (branches === void 0) {\n branches = [];\n }\n\n if (parentsMeta === void 0) {\n parentsMeta = [];\n }\n\n if (parentPath === void 0) {\n parentPath = \"\";\n }\n\n let flattenRoute = (route, index, relativePath) => {\n let meta = {\n relativePath: relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(meta.relativePath.startsWith(parentPath), \"Absolute route path \\\"\" + meta.relativePath + \"\\\" nested under path \" + (\"\\\"\" + parentPath + \"\\\" is not valid. An absolute child route path \") + \"must start with the combined path of all its parent routes.\");\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta); // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n\n if (route.children && route.children.length > 0) {\n invariant( // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true, \"Index routes must not have child routes. Please remove \" + (\"all child routes from route path \\\"\" + path + \"\\\".\"));\n flattenRoutes(route.children, branches, routesMeta, path);\n } // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n\n\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta\n });\n };\n\n routes.forEach((route, index) => {\n var _route$path;\n\n // coarse-grain check for optional params\n if (route.path === \"\" || !((_route$path = route.path) != null && _route$path.includes(\"?\"))) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n return branches;\n}\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\n\n\nfunction explodeOptionalSegments(path) {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n let [first, ...rest] = segments; // Optional path segments are denoted by a trailing `?`\n\n let isOptional = first.endsWith(\"?\"); // Compute the corresponding required segment: `foo?` -> `foo`\n\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n let result = []; // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n\n result.push(...restExploded.map(subpath => subpath === \"\" ? required : [required, subpath].join(\"/\"))); // Then if this is an optional value, add all child versions without\n\n if (isOptional) {\n result.push(...restExploded);\n } // for absolute paths, ensure `/` instead of empty segment\n\n\n return result.map(exploded => path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded);\n}\n\nfunction rankRouteBranches(branches) {\n branches.sort((a, b) => a.score !== b.score ? b.score - a.score // Higher score first\n : compareIndexes(a.routesMeta.map(meta => meta.childrenIndex), b.routesMeta.map(meta => meta.childrenIndex)));\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\n\nconst isSplat = s => s === \"*\";\n\nfunction computeScore(path, index) {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments.filter(s => !isSplat(s)).reduce((score, segment) => score + (paramRe.test(segment) ? dynamicSegmentValue : segment === \"\" ? emptySegmentValue : staticSegmentValue), initialScore);\n}\n\nfunction compareIndexes(a, b) {\n let siblings = a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n return siblings ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1] : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch(branch, pathname) {\n let {\n routesMeta\n } = branch;\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches = [];\n\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname = matchedPathname === \"/\" ? pathname : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath({\n path: meta.relativePath,\n caseSensitive: meta.caseSensitive,\n end\n }, remainingPathname);\n if (!match) return null;\n Object.assign(matchedParams, match.params);\n let route = meta.route;\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(joinPaths([matchedPathname, match.pathnameBase])),\n route\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\n\n\nfunction generatePath(originalPath, params) {\n if (params === void 0) {\n params = {};\n }\n\n let path = originalPath;\n\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(false, \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n path = path.replace(/\\*$/, \"/*\");\n }\n\n return path.replace(/^:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, \"Missing \\\":\" + key + \"\\\" param\");\n return params[key];\n }).replace(/\\/:(\\w+)/g, (_, key) => {\n invariant(params[key] != null, \"Missing \\\":\" + key + \"\\\" param\");\n return \"/\" + params[key];\n }).replace(/(\\/?)\\*/, (_, prefix, __, str) => {\n const star = \"*\";\n\n if (params[star] == null) {\n // If no splat was provided, trim the trailing slash _unless_ it's\n // the entire path\n return str === \"/*\" ? \"/\" : \"\";\n } // Apply the splat\n\n\n return \"\" + prefix + params[star];\n });\n}\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\n\nfunction matchPath(pattern, pathname) {\n if (typeof pattern === \"string\") {\n pattern = {\n path: pattern,\n caseSensitive: false,\n end: true\n };\n }\n\n let [matcher, paramNames] = compilePath(pattern.path, pattern.caseSensitive, pattern.end);\n let match = pathname.match(matcher);\n if (!match) return null;\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params = paramNames.reduce((memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname.slice(0, matchedPathname.length - splatValue.length).replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(captureGroups[index] || \"\", paramName);\n return memo;\n }, {});\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern\n };\n}\n\nfunction compilePath(path, caseSensitive, end) {\n if (caseSensitive === void 0) {\n caseSensitive = false;\n }\n\n if (end === void 0) {\n end = true;\n }\n\n warning(path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"), \"Route path \\\"\" + path + \"\\\" will be treated as if it were \" + (\"\\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\" because the `*` character must \") + \"always follow a `/` in the pattern. To get rid of this warning, \" + (\"please change the route path to \\\"\" + path.replace(/\\*$/, \"/*\") + \"\\\".\"));\n let paramNames = [];\n let regexpSource = \"^\" + path.replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_, paramName) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource += path === \"*\" || path === \"/*\" ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else ;\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(false, \"The URL path \\\"\" + value + \"\\\" could not be decoded because it is is a \" + \"malformed URL segment. This is probably due to a bad percent \" + (\"encoding (\" + error + \").\"));\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value, paramName) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(false, \"The value for the URL param \\\"\" + paramName + \"\\\" will not be decoded because\" + (\" the string \\\"\" + value + \"\\\" is a malformed URL segment. This is probably\") + (\" due to a bad percent encoding (\" + error + \").\"));\n return value;\n }\n}\n/**\n * @private\n */\n\n\nfunction stripBasename(pathname, basename) {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n } // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n\n\n let startIndex = basename.endsWith(\"/\") ? basename.length - 1 : basename.length;\n let nextChar = pathname.charAt(startIndex);\n\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n/**\n * @private\n */\n\nfunction warning(cond, message) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging React Router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message); // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\n\nfunction resolvePath(to, fromPathname) {\n if (fromPathname === void 0) {\n fromPathname = \"/\";\n }\n\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\"\n } = typeof to === \"string\" ? parsePath(to) : to;\n let pathname = toPathname ? toPathname.startsWith(\"/\") ? toPathname : resolvePathname(toPathname, fromPathname) : fromPathname;\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash)\n };\n}\n\nfunction resolvePathname(relativePath, fromPathname) {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n relativeSegments.forEach(segment => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(char, field, dest, path) {\n return \"Cannot include a '\" + char + \"' character in a manually specified \" + (\"`to.\" + field + \"` field [\" + JSON.stringify(path) + \"]. Please separate it out to the \") + (\"`to.\" + dest + \"` field. Alternatively you may provide the full path as \") + \"a string in and the router will parse it for you.\";\n}\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\n\n\nfunction getPathContributingMatches(matches) {\n return matches.filter((match, index) => index === 0 || match.route.path && match.route.path.length > 0);\n}\n/**\n * @private\n */\n\nfunction resolveTo(toArg, routePathnames, locationPathname, isPathRelative) {\n if (isPathRelative === void 0) {\n isPathRelative = false;\n }\n\n let to;\n\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = _extends({}, toArg);\n invariant(!to.pathname || !to.pathname.includes(\"?\"), getInvalidPathError(\"?\", \"pathname\", \"search\", to));\n invariant(!to.pathname || !to.pathname.includes(\"#\"), getInvalidPathError(\"#\", \"pathname\", \"hash\", to));\n invariant(!to.search || !to.search.includes(\"#\"), getInvalidPathError(\"#\", \"search\", \"hash\", to));\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n let from; // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\"); // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n } // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n\n\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from); // Ensure the pathname has a trailing slash if the original \"to\" had one\n\n let hasExplicitTrailingSlash = toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\"); // Or if this was a link to the current path which has a trailing slash\n\n let hasCurrentTrailingSlash = (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n\n if (!path.pathname.endsWith(\"/\") && (hasExplicitTrailingSlash || hasCurrentTrailingSlash)) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n/**\n * @private\n */\n\nfunction getToPathname(to) {\n // Empty strings should be treated the same as / paths\n return to === \"\" || to.pathname === \"\" ? \"/\" : typeof to === \"string\" ? parsePath(to).pathname : to.pathname;\n}\n/**\n * @private\n */\n\nconst joinPaths = paths => paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n/**\n * @private\n */\n\nconst normalizePathname = pathname => pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n/**\n * @private\n */\n\nconst normalizeSearch = search => !search || search === \"?\" ? \"\" : search.startsWith(\"?\") ? search : \"?\" + search;\n/**\n * @private\n */\n\nconst normalizeHash = hash => !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\n\nconst json = function json(data, init) {\n if (init === void 0) {\n init = {};\n }\n\n let responseInit = typeof init === \"number\" ? {\n status: init\n } : init;\n let headers = new Headers(responseInit.headers);\n\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), _extends({}, responseInit, {\n headers\n }));\n};\nclass AbortedDeferredError extends Error {}\nclass DeferredData {\n constructor(data) {\n this.pendingKeys = new Set();\n this.subscriber = undefined;\n invariant(data && typeof data === \"object\" && !Array.isArray(data), \"defer() only accepts plain objects\"); // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n\n let reject;\n this.abortPromise = new Promise((_, r) => reject = r);\n this.controller = new AbortController();\n\n let onAbort = () => reject(new AbortedDeferredError(\"Deferred data aborted\"));\n\n this.unlistenAbortSignal = () => this.controller.signal.removeEventListener(\"abort\", onAbort);\n\n this.controller.signal.addEventListener(\"abort\", onAbort);\n this.data = Object.entries(data).reduce((acc, _ref) => {\n let [key, value] = _ref;\n return Object.assign(acc, {\n [key]: this.trackPromise(key, value)\n });\n }, {});\n }\n\n trackPromise(key, value) {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.pendingKeys.add(key); // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n\n let promise = Promise.race([value, this.abortPromise]).then(data => this.onSettle(promise, key, null, data), error => this.onSettle(promise, key, error)); // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n\n promise.catch(() => {});\n Object.defineProperty(promise, \"_tracked\", {\n get: () => true\n });\n return promise;\n }\n\n onSettle(promise, key, error, data) {\n if (this.controller.signal.aborted && error instanceof AbortedDeferredError) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n return Promise.reject(error);\n }\n\n this.pendingKeys.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n const subscriber = this.subscriber;\n\n if (error) {\n Object.defineProperty(promise, \"_error\", {\n get: () => error\n });\n subscriber && subscriber(false);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", {\n get: () => data\n });\n subscriber && subscriber(false);\n return data;\n }\n\n subscribe(fn) {\n this.subscriber = fn;\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeys.forEach((v, k) => this.pendingKeys.delete(k));\n let subscriber = this.subscriber;\n subscriber && subscriber(true);\n }\n\n async resolveData(signal) {\n let aborted = false;\n\n if (!this.done) {\n let onAbort = () => this.cancel();\n\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise(resolve => {\n this.subscribe(aborted => {\n signal.removeEventListener(\"abort\", onAbort);\n\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n\n return aborted;\n }\n\n get done() {\n return this.pendingKeys.size === 0;\n }\n\n get unwrappedData() {\n invariant(this.data !== null && this.done, \"Can only unwrap data on initialized and settled deferreds\");\n return Object.entries(this.data).reduce((acc, _ref2) => {\n let [key, value] = _ref2;\n return Object.assign(acc, {\n [key]: unwrapTrackedPromise(value)\n });\n }, {});\n }\n\n}\n\nfunction isTrackedPromise(value) {\n return value instanceof Promise && value._tracked === true;\n}\n\nfunction unwrapTrackedPromise(value) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n\n return value._data;\n}\n\nfunction defer(data) {\n return new DeferredData(data);\n}\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\n\nconst redirect = function redirect(url, init) {\n if (init === void 0) {\n init = 302;\n }\n\n let responseInit = init;\n\n if (typeof responseInit === \"number\") {\n responseInit = {\n status: responseInit\n };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n return new Response(null, _extends({}, responseInit, {\n headers\n }));\n};\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\n\nclass ErrorResponse {\n constructor(status, statusText, data, internal) {\n if (internal === void 0) {\n internal = false;\n }\n\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n\n}\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response throw from an action/loader\n */\n\nfunction isRouteErrorResponse(e) {\n return e instanceof ErrorResponse;\n}\n\nconst validMutationMethodsArr = [\"post\", \"put\", \"patch\", \"delete\"];\nconst validMutationMethods = new Set(validMutationMethodsArr);\nconst validRequestMethodsArr = [\"get\", ...validMutationMethodsArr];\nconst validRequestMethods = new Set(validRequestMethodsArr);\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\nconst IDLE_NAVIGATION = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n};\nconst IDLE_FETCHER = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n};\nconst isBrowser = typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser; //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\n\nfunction createRouter(init) {\n invariant(init.routes.length > 0, \"You must provide a non-empty routes array to createRouter\");\n let dataRoutes = convertRoutesToDataRoutes(init.routes); // Cleanup function for history\n\n let unlistenHistory = null; // Externally-provided functions to call on all state changes\n\n let subscribers = new Set(); // Externally-provided object to hold scroll restoration locations during routing\n\n let savedScrollPositions = null; // Externally-provided function to get scroll restoration keys\n\n let getScrollRestorationKey = null; // Externally-provided function to get current scroll position\n\n let getScrollPosition = null; // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n\n let initialScrollRestored = init.hydrationData != null;\n let initialMatches = matchRoutes(dataRoutes, init.history.location, init.basename);\n let initialErrors = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname\n });\n let {\n matches,\n route\n } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = {\n [route.id]: error\n };\n }\n\n let initialized = !initialMatches.some(m => m.route.loader) || init.hydrationData != null;\n let router;\n let state = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: init.hydrationData && init.hydrationData.loaderData || {},\n actionData: init.hydrationData && init.hydrationData.actionData || null,\n errors: init.hydrationData && init.hydrationData.errors || initialErrors,\n fetchers: new Map()\n }; // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n\n let pendingAction = Action.Pop; // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n\n let pendingPreventScrollReset = false; // AbortController for the active navigation\n\n let pendingNavigationController; // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n\n let isUninterruptedRevalidation = false; // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n\n let isRevalidationRequired = false; // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n\n let cancelledDeferredRoutes = []; // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n\n let cancelledFetcherLoads = []; // AbortControllers for any in-flight fetchers\n\n let fetchControllers = new Map(); // Track loads based on the order in which they started\n\n let incrementingLoadId = 0; // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n\n let pendingNavigationLoadId = -1; // Fetchers that triggered data reloads as a result of their actions\n\n let fetchReloadIds = new Map(); // Fetchers that triggered redirect navigations from their actions\n\n let fetchRedirectIds = new Set(); // Most recent href/match for fetcher.load calls for fetchers\n\n let fetchLoadMatches = new Map(); // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n\n let activeDeferreds = new Map(); // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(_ref => {\n let {\n action: historyAction,\n location\n } = _ref;\n return startNavigation(historyAction, location);\n }); // Kick off initial data load if needed. Use Pop to avoid modifying history\n\n if (!state.initialized) {\n startNavigation(Action.Pop, state.location);\n }\n\n return router;\n } // Clean up a router and it's side effects\n\n\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n } // Subscribe to state updates for the router\n\n\n function subscribe(fn) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n } // Update our state and notify the calling context of the change\n\n\n function updateState(newState) {\n state = _extends({}, state, newState);\n subscribers.forEach(subscriber => subscriber(state));\n } // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n\n\n function completeNavigation(location, newState) {\n var _location$state;\n\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload = state.actionData != null && state.navigation.formMethod != null && isMutationMethod(state.navigation.formMethod) && state.navigation.state === \"loading\" && ((_location$state = location.state) == null ? void 0 : _location$state._isRedirect) !== true;\n let actionData;\n\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n } // Always preserve any existing loaderData from re-used routes\n\n\n let loaderData = newState.loaderData ? mergeLoaderData(state.loaderData, newState.loaderData, newState.matches || [], newState.errors) : state.loaderData;\n updateState(_extends({}, newState, {\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n // Don't restore on submission navigations\n restoreScrollPosition: state.navigation.formData ? false : getSavedScrollPosition(location, newState.matches || state.matches),\n preventScrollReset: pendingPreventScrollReset\n }));\n\n if (isUninterruptedRevalidation) ; else if (pendingAction === Action.Pop) ; else if (pendingAction === Action.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === Action.Replace) {\n init.history.replace(location, location.state);\n } // Reset stateful navigation vars\n\n\n pendingAction = Action.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n } // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n\n\n async function navigate(to, opts) {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let {\n path,\n submission,\n error\n } = normalizeNavigateOptions(to, opts);\n let location = createLocation(state.location, path, opts && opts.state); // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n\n location = _extends({}, location, init.history.encodeLocation(location));\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n let historyAction = Action.Push;\n\n if (userReplace === true) {\n historyAction = Action.Replace;\n } else if (userReplace === false) ; else if (submission != null && isMutationMethod(submission.formMethod) && submission.formAction === state.location.pathname + state.location.search) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = Action.Replace;\n }\n\n let preventScrollReset = opts && \"preventScrollReset\" in opts ? opts.preventScrollReset === true : undefined;\n return await startNavigation(historyAction, location, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace\n });\n } // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n\n\n function revalidate() {\n interruptActiveLoads();\n updateState({\n revalidation: \"loading\"\n }); // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n\n if (state.navigation.state === \"submitting\") {\n return;\n } // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n\n\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true\n });\n return;\n } // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n\n\n startNavigation(pendingAction || state.historyAction, state.navigation.location, {\n overrideNavigation: state.navigation\n });\n } // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n\n\n async function startNavigation(historyAction, location, opts) {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation = (opts && opts.startUninterruptedRevalidation) === true; // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(dataRoutes, location, init.basename); // Short circuit with a 404 on the root error boundary if we match nothing\n\n if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes); // Cancel all pending deferred on 404s since we don't keep any routes\n\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error\n }\n });\n return;\n } // Short circuit if it's only a hash change\n\n\n if (isHashChangeOnly(state.location, location)) {\n completeNavigation(location, {\n matches\n });\n return;\n } // Create a controller/Request for this navigation\n\n\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(location, pendingNavigationController.signal, opts && opts.submission);\n let pendingActionData;\n let pendingError;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError\n };\n } else if (opts && opts.submission && isMutationMethod(opts.submission.formMethod)) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(request, location, opts.submission, matches, {\n replace: opts.replace\n });\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation = _extends({\n state: \"loading\",\n location\n }, opts.submission);\n\n loadingNavigation = navigation; // Create a GET request for the loaders\n\n request = new Request(request.url, {\n signal: request.signal\n });\n } // Call loaders\n\n\n let {\n shortCircuited,\n loaderData,\n errors\n } = await handleLoaders(request, location, matches, loadingNavigation, opts && opts.submission, opts && opts.replace, pendingActionData, pendingError);\n\n if (shortCircuited) {\n return;\n } // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n\n\n pendingNavigationController = null;\n completeNavigation(location, _extends({\n matches\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}, {\n loaderData,\n errors\n }));\n } // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n\n\n async function handleAction(request, location, submission, matches, opts) {\n interruptActiveLoads(); // Put us in a submitting state\n\n let navigation = _extends({\n state: \"submitting\",\n location\n }, submission);\n\n updateState({\n navigation\n }); // Call our action and get the result\n\n let result;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id\n })\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, router.basename);\n\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace;\n\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace = result.location === state.location.pathname + state.location.search;\n }\n\n await startRedirectNavigation(state, result, {\n submission,\n replace\n });\n return {\n shortCircuited: true\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id); // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n\n if ((opts && opts.replace) !== true) {\n pendingAction = Action.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: {\n [boundaryMatch.route.id]: result.error\n }\n };\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\n }\n\n return {\n pendingActionData: {\n [actionMatch.route.id]: result.data\n }\n };\n } // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n\n\n async function handleLoaders(request, location, matches, overrideNavigation, submission, replace, pendingActionData, pendingError) {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n\n if (!loadingNavigation) {\n let navigation = _extends({\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n }, submission);\n\n loadingNavigation = navigation;\n } // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n\n\n let activeSubmission = submission ? submission : loadingNavigation.formMethod && loadingNavigation.formAction && loadingNavigation.formData && loadingNavigation.formEncType ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType\n } : undefined;\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(state, matches, activeSubmission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, pendingActionData, pendingError, fetchLoadMatches); // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n\n cancelActiveDeferreds(routeId => !(matches && matches.some(m => m.route.id === routeId)) || matchesToLoad && matchesToLoad.some(m => m.route.id === routeId)); // Short circuit if we have no loaders to run\n\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, _extends({\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null\n }, pendingActionData ? {\n actionData: pendingActionData\n } : {}));\n return {\n shortCircuited: true\n };\n } // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n\n\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach(_ref2 => {\n let [key] = _ref2;\n let fetcher = state.fetchers.get(key);\n let revalidatingFetcher = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState(_extends({\n navigation: loadingNavigation\n }, actionData ? Object.keys(actionData).length === 0 ? {\n actionData: null\n } : {\n actionData\n } : {}, revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {}));\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach(_ref3 => {\n let [key] = _ref3;\n return fetchControllers.set(key, pendingNavigationController);\n });\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, request);\n\n if (request.signal.aborted) {\n return {\n shortCircuited: true\n };\n } // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n\n\n revalidatingFetchers.forEach(_ref4 => {\n let [key] = _ref4;\n return fetchControllers.delete(key);\n }); // If any loaders returned a redirect Response, start a new REPLACE navigation\n\n let redirect = findRedirect(results);\n\n if (redirect) {\n await startRedirectNavigation(state, redirect, {\n replace\n });\n return {\n shortCircuited: true\n };\n } // Process and commit output from loaders\n\n\n let {\n loaderData,\n errors\n } = processLoaderData(state, matches, matchesToLoad, loaderResults, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds); // Wire up subscribers to update loaderData as promises settle\n\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe(aborted => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n return _extends({\n loaderData,\n errors\n }, didAbortFetchLoads || revalidatingFetchers.length > 0 ? {\n fetchers: new Map(state.fetchers)\n } : {});\n }\n\n function getFetcher(key) {\n return state.fetchers.get(key) || IDLE_FETCHER;\n } // Trigger a fetcher load/submit for the given fetcher key\n\n\n function fetch(key, routeId, href, opts) {\n if (isServer) {\n throw new Error(\"router.fetch() was called during the server render, but it shouldn't be. \" + \"You are likely calling a useFetcher() method in the body of your component. \" + \"Try moving it to a useEffect or a callback.\");\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n let matches = matchRoutes(dataRoutes, href, init.basename);\n\n if (!matches) {\n setFetcherError(key, routeId, getInternalRouterError(404, {\n pathname: href\n }));\n return;\n }\n\n let {\n path,\n submission\n } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n } // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n\n\n fetchLoadMatches.set(key, [path, match, matches]);\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n } // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n\n\n async function handleFetcherAction(key, routeId, path, match, requestMatches, submission) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId\n });\n setFetcherError(key, routeId, error);\n return;\n } // Put this fetcher into it's submitting state\n\n\n let existingFetcher = state.fetchers.get(key);\n\n let fetcher = _extends({\n state: \"submitting\"\n }, submission, {\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, fetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }); // Call the action for the fetcher\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(path, abortController.signal, submission);\n fetchControllers.set(key, abortController);\n let actionResult = await callLoaderOrAction(\"action\", fetchRequest, match, requestMatches, router.basename);\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n\n let loadingFetcher = _extends({\n state: \"loading\"\n }, submission, {\n data: undefined,\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, loadingFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true\n });\n } // Process any non-redirect errors thrown\n\n\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n invariant(false, \"defer() is not supported in actions\");\n } // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n\n\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(nextLocation, abortController.signal);\n let matches = state.navigation.state !== \"idle\" ? matchRoutes(dataRoutes, state.navigation.location, init.basename) : state.matches;\n invariant(matches, \"Didn't find any matches after fetcher action\");\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher = _extends({\n state: \"loading\",\n data: actionResult.data\n }, submission, {\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, loadFetcher);\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(state, matches, submission, nextLocation, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, {\n [match.route.id]: actionResult.data\n }, undefined, // No need to send through errors since we short circuit above\n fetchLoadMatches); // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n\n revalidatingFetchers.filter(_ref5 => {\n let [staleKey] = _ref5;\n return staleKey !== key;\n }).forEach(_ref6 => {\n let [staleKey] = _ref6;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n updateState({\n fetchers: new Map(state.fetchers)\n });\n let {\n results,\n loaderResults,\n fetcherResults\n } = await callLoadersAndMaybeResolveData(state.matches, matches, matchesToLoad, revalidatingFetchers, revalidationRequest);\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach(_ref7 => {\n let [staleKey] = _ref7;\n return fetchControllers.delete(staleKey);\n });\n let redirect = findRedirect(results);\n\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n } // Process and commit output from loaders\n\n\n let {\n loaderData,\n errors\n } = processLoaderData(state, state.matches, matchesToLoad, loaderResults, undefined, revalidatingFetchers, fetcherResults, activeDeferreds);\n let doneFetcher = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n let didAbortFetchLoads = abortStaleFetchLoads(loadId); // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n\n if (state.navigation.state === \"loading\" && loadId > pendingNavigationLoadId) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers)\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState(_extends({\n errors,\n loaderData: mergeLoaderData(state.loaderData, loaderData, matches, errors)\n }, didAbortFetchLoads ? {\n fetchers: new Map(state.fetchers)\n } : {}));\n isRevalidationRequired = false;\n }\n } // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n\n\n async function handleFetcherLoader(key, routeId, path, match, matches, submission) {\n let existingFetcher = state.fetchers.get(key); // Put this fetcher into it's loading state\n\n let loadingFetcher = _extends({\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined\n }, submission, {\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true\n });\n\n state.fetchers.set(key, loadingFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n }); // Call the loader for this fetcher route match\n\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(path, abortController.signal);\n fetchControllers.set(key, abortController);\n let result = await callLoaderOrAction(\"loader\", fetchRequest, match, matches, router.basename); // Deferred isn't supported or fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n\n if (isDeferredResult(result)) {\n result = (await resolveDeferredData(result, fetchRequest.signal, true)) || result;\n } // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n\n\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n } // If the loader threw a redirect Response, start a new REPLACE navigation\n\n\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n } // Process any non-redirect errors thrown\n\n\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key); // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error\n }\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\"); // Put the fetcher back into an idle state\n\n let doneFetcher = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n updateState({\n fetchers: new Map(state.fetchers)\n });\n }\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n\n\n async function startRedirectNavigation(state, redirect, _temp) {\n var _window;\n\n let {\n submission,\n replace,\n isFetchActionRedirect\n } = _temp === void 0 ? {} : _temp;\n\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(state.location, redirect.location, // TODO: This can be removed once we get rid of useTransition in Remix v2\n _extends({\n _isRedirect: true\n }, isFetchActionRedirect ? {\n _isFetchActionRedirect: true\n } : {}));\n invariant(redirectLocation, \"Expected a location on the redirect navigation\"); // Check if this an external redirect that goes to a new origin\n\n if (typeof ((_window = window) == null ? void 0 : _window.location) !== \"undefined\") {\n let newOrigin = createClientSideURL(redirect.location).origin;\n\n if (window.location.origin !== newOrigin) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n\n return;\n }\n } // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n\n\n pendingNavigationController = null;\n let redirectHistoryAction = replace === true ? Action.Replace : Action.Push; // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n\n let {\n formMethod,\n formAction,\n formEncType,\n formData\n } = state.navigation;\n\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData\n };\n } // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n\n\n if (redirectPreserveMethodStatusCodes.has(redirect.status) && submission && isMutationMethod(submission.formMethod)) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: _extends({}, submission, {\n formAction: redirect.location\n })\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined\n }\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(currentMatches, matches, matchesToLoad, fetchersToLoad, request) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, router.basename)), ...fetchersToLoad.map(_ref8 => {\n let [, href, match, fetchMatches] = _ref8;\n return callLoaderOrAction(\"loader\", createClientSideRequest(href, request.signal), match, fetchMatches, router.basename);\n })]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n await Promise.all([resolveDeferredResults(currentMatches, matchesToLoad, loaderResults, request.signal, false, state.loaderData), resolveDeferredResults(currentMatches, fetchersToLoad.map(_ref9 => {\n let [,, match] = _ref9;\n return match;\n }), fetcherResults, request.signal, true)]);\n return {\n results,\n loaderResults,\n fetcherResults\n };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true; // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n\n cancelledDeferredRoutes.push(...cancelActiveDeferreds()); // Abort in-flight fetcher loads\n\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key, routeId, error) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error\n },\n fetchers: new Map(state.fetchers)\n });\n }\n\n function deleteFetcher(key) {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key) {\n let controller = fetchControllers.get(key);\n invariant(controller, \"Expected fetch controller: \" + key);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone() {\n let doneKeys = [];\n\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId) {\n let yeetedKeys = [];\n\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, \"Expected fetcher: \" + key);\n\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function cancelActiveDeferreds(predicate) {\n let cancelledRouteIds = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n } // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n\n\n function enableScrollRestoration(positions, getPosition, getKey) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n\n getScrollRestorationKey = getKey || (location => location.key); // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n\n\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n\n if (y != null) {\n updateState({\n restoreScrollPosition: y\n });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map(m => createUseMatchesMatch(m, state.loaderData));\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(location, matches) {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map(m => createUseMatchesMatch(m, state.loaderData));\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n\n if (typeof y === \"number\") {\n return y;\n }\n }\n\n return null;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n\n get state() {\n return state;\n },\n\n get routes() {\n return dataRoutes;\n },\n\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: to => init.history.createHref(to),\n encodeLocation: to => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds\n };\n return router;\n} //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nfunction createStaticHandler(routes, opts) {\n invariant(routes.length > 0, \"You must provide a non-empty routes array to createStaticHandler\");\n let dataRoutes = convertRoutesToDataRoutes(routes);\n let basename = (opts ? opts.basename : null) || \"/\";\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n\n async function query(request, _temp2) {\n let {\n requestContext\n } = _temp2 === void 0 ? {} : _temp2;\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename); // SSR supports HEAD requests while SPA doesn't\n\n if (!isValidMethod(method) && method !== \"head\") {\n let error = getInternalRouterError(405, {\n method\n });\n let {\n matches: methodNotAllowedMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {}\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, {\n pathname: location.pathname\n });\n let {\n matches: notFoundMatches,\n route\n } = getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {}\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n\n if (isResponse(result)) {\n return result;\n } // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n\n\n return _extends({\n location,\n basename\n }, result);\n }\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n\n\n async function queryRoute(request, _temp3) {\n let {\n routeId,\n requestContext\n } = _temp3 === void 0 ? {} : _temp3;\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename); // SSR supports HEAD requests while SPA doesn't\n\n if (!isValidMethod(method) && method !== \"head\") {\n throw getInternalRouterError(405, {\n method\n });\n } else if (!matches) {\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n\n let match = routeId ? matches.find(m => m.route.id === routeId) : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, {\n pathname: location.pathname\n });\n }\n\n let result = await queryImpl(request, location, matches, requestContext, match);\n\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n } // Pick off the right state value to return\n\n\n let routeData = [result.actionData, result.loaderData].find(v => v);\n return Object.values(routeData || {})[0];\n }\n\n async function queryImpl(request, location, matches, requestContext, routeMatch) {\n invariant(request.signal, \"query()/queryRoute() requests must contain an AbortController signal\");\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(request, matches, routeMatch || getTargetMatch(matches, location), requestContext, routeMatch != null);\n return result;\n }\n\n let result = await loadRouteData(request, matches, requestContext, routeMatch);\n return isResponse(result) ? result : _extends({}, result, {\n actionData: null,\n actionHeaders: {}\n });\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n\n return e.response;\n } // Redirects are always returned since they don't propagate to catch\n // boundaries\n\n\n if (isRedirectResponse(e)) {\n return e;\n }\n\n throw e;\n }\n }\n\n async function submit(request, matches, actionMatch, requestContext, isRouteRequest) {\n let result;\n\n if (!actionMatch.route.action) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id\n });\n\n if (isRouteRequest) {\n throw error;\n }\n\n result = {\n type: ResultType.error,\n error\n };\n } else {\n result = await callLoaderOrAction(\"action\", request, actionMatch, matches, basename, true, isRouteRequest, requestContext);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted\");\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location\n }\n });\n }\n\n if (isDeferredResult(result)) {\n throw new Error(\"defer() is not supported in actions\");\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: {\n [actionMatch.route.id]: result.data\n },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {}\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(request, matches, requestContext, undefined, {\n [boundaryMatch.route.id]: result.error\n }); // action status codes take precedence over loader status codes\n\n return _extends({}, context, {\n statusCode: isRouteErrorResponse(result.error) ? result.error.status : 500,\n actionData: null,\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n } // Create a GET request for the loaders\n\n\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n return _extends({}, context, result.statusCode ? {\n statusCode: result.statusCode\n } : {}, {\n actionData: {\n [actionMatch.route.id]: result.data\n },\n actionHeaders: _extends({}, result.headers ? {\n [actionMatch.route.id]: result.headers\n } : {})\n });\n }\n\n async function loadRouteData(request, matches, requestContext, routeMatch, pendingActionError) {\n let isRouteRequest = routeMatch != null; // Short circuit if we have no loaders to run (queryRoute())\n\n if (isRouteRequest && !(routeMatch != null && routeMatch.route.loader)) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch == null ? void 0 : routeMatch.route.id\n });\n }\n\n let requestMatches = routeMatch ? [routeMatch] : getLoaderMatchesUntilBoundary(matches, Object.keys(pendingActionError || {})[0]);\n let matchesToLoad = requestMatches.filter(m => m.route.loader); // Short circuit if we have no loaders to run (query())\n\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce((acc, m) => Object.assign(acc, {\n [m.route.id]: null\n }), {}),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {}\n };\n }\n\n let results = await Promise.all([...matchesToLoad.map(match => callLoaderOrAction(\"loader\", request, match, matches, basename, true, isRouteRequest, requestContext))]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(method + \"() call aborted\");\n }\n\n let executedLoaders = new Set();\n results.forEach((result, i) => {\n executedLoaders.add(matchesToLoad[i].route.id); // Can't do anything with these without the Remix side of things, so just\n // cancel them for now\n\n if (isDeferredResult(result)) {\n result.deferredData.cancel();\n }\n }); // Process and commit output from loaders\n\n let context = processRouteLoaderData(matches, matchesToLoad, results, pendingActionError); // Add a null for any non-loader matches for proper revalidation on the client\n\n matches.forEach(match => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n return _extends({}, context, {\n matches\n });\n }\n\n return {\n dataRoutes,\n query,\n queryRoute\n };\n} //#endregion\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\n\nfunction getStaticContextFromError(routes, context, error) {\n let newContext = _extends({}, context, {\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error\n }\n });\n\n return newContext;\n}\n\nfunction isSubmissionNavigation(opts) {\n return opts != null && \"formData\" in opts;\n} // Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\n\n\nfunction normalizeNavigateOptions(to, opts, isFetcher) {\n if (isFetcher === void 0) {\n isFetcher = false;\n }\n\n let path = typeof to === \"string\" ? to : createPath(to); // Return location verbatim on non-submission navigations\n\n if (!opts || !isSubmissionNavigation(opts)) {\n return {\n path\n };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, {\n method: opts.formMethod\n })\n };\n } // Create a Submission on non-GET navigations\n\n\n let submission;\n\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType: opts && opts.formEncType || \"application/x-www-form-urlencoded\",\n formData: opts.formData\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return {\n path,\n submission\n };\n }\n } // Flatten submission onto URLSearchParams for GET submissions\n\n\n let parsedPath = parsePath(path);\n\n try {\n let searchParams = convertFormDataToSearchParams(opts.formData); // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n\n parsedPath.search = \"?\" + searchParams;\n } catch (e) {\n return {\n path,\n error: getInternalRouterError(400)\n };\n }\n\n return {\n path: createPath(parsedPath),\n submission\n };\n} // Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\n\n\nfunction getLoaderMatchesUntilBoundary(matches, boundaryId) {\n let boundaryMatches = matches;\n\n if (boundaryId) {\n let index = matches.findIndex(m => m.route.id === boundaryId);\n\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(state, matches, submission, location, isRevalidationRequired, cancelledDeferredRoutes, cancelledFetcherLoads, pendingActionData, pendingError, fetchLoadMatches) {\n let actionResult = pendingError ? Object.values(pendingError)[0] : pendingActionData ? Object.values(pendingActionData)[0] : undefined; // Pick navigation matches that are net-new or qualify for revalidation\n\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n let navigationMatches = boundaryMatches.filter((match, index) => match.route.loader != null && (isNewLoader(state.loaderData, state.matches[index], match) || // If this route had a pending deferred cancelled it must be revalidated\n cancelledDeferredRoutes.some(id => id === match.route.id) || shouldRevalidateLoader(state.location, state.matches[index], submission, location, match, isRevalidationRequired, actionResult))); // Pick fetcher.loads that need to be revalidated\n\n let revalidatingFetchers = [];\n fetchLoadMatches && fetchLoadMatches.forEach((_ref10, key) => {\n let [href, match, fetchMatches] = _ref10;\n\n // This fetcher was cancelled from a prior action submission - force reload\n if (cancelledFetcherLoads.includes(key)) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n } else if (isRevalidationRequired) {\n let shouldRevalidate = shouldRevalidateLoader(href, match, submission, href, match, isRevalidationRequired, actionResult);\n\n if (shouldRevalidate) {\n revalidatingFetchers.push([key, href, match, fetchMatches]);\n }\n }\n });\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(currentLoaderData, currentMatch, match) {\n let isNew = // [a] -> [a, b]\n !currentMatch || // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id; // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n\n let isMissingData = currentLoaderData[match.route.id] === undefined; // Always load if this is a net-new route or we don't yet have data\n\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(currentMatch, match) {\n let currentPath = currentMatch.route.path;\n return (// param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname || // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n currentPath && currentPath.endsWith(\"*\") && currentMatch.params[\"*\"] !== match.params[\"*\"]\n );\n}\n\nfunction shouldRevalidateLoader(currentLocation, currentMatch, submission, location, match, isRevalidationRequired, actionResult) {\n let currentUrl = createClientSideURL(currentLocation);\n let currentParams = currentMatch.params;\n let nextUrl = createClientSideURL(location);\n let nextParams = match.params; // This is the default implementation as to when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n // Note that fetchers always provide the same current/next locations so the\n // URL-based checks here don't apply to fetcher shouldRevalidate calls\n\n let defaultShouldRevalidate = isNewRouteInstance(currentMatch, match) || // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() || // Search params affect all loaders\n currentUrl.search !== nextUrl.search || // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired;\n\n if (match.route.shouldRevalidate) {\n let routeChoice = match.route.shouldRevalidate(_extends({\n currentUrl,\n currentParams,\n nextUrl,\n nextParams\n }, submission, {\n actionResult,\n defaultShouldRevalidate\n }));\n\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return defaultShouldRevalidate;\n}\n\nasync function callLoaderOrAction(type, request, match, matches, basename, isStaticRequest, isRouteRequest, requestContext) {\n if (basename === void 0) {\n basename = \"/\";\n }\n\n if (isStaticRequest === void 0) {\n isStaticRequest = false;\n }\n\n if (isRouteRequest === void 0) {\n isRouteRequest = false;\n }\n\n let resultType;\n let result; // Setup a promise we can race against so that abort signals short circuit\n\n let reject;\n let abortPromise = new Promise((_, r) => reject = r);\n\n let onReject = () => reject();\n\n request.signal.addEventListener(\"abort\", onReject);\n\n try {\n let handler = match.route[type];\n invariant(handler, \"Could not find the \" + type + \" to run on the \\\"\" + match.route.id + \"\\\" route\");\n result = await Promise.race([handler({\n request,\n params: match.params,\n context: requestContext\n }), abortPromise]);\n invariant(result !== undefined, \"You defined \" + (type === \"action\" ? \"an action\" : \"a loader\") + \" for route \" + (\"\\\"\" + match.route.id + \"\\\" but didn't return anything from your `\" + type + \"` \") + \"function. Please return a value or `null`.\");\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n\n if (isResponse(result)) {\n let status = result.status; // Process redirects\n\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(location, \"Redirects returned/thrown from loaders/actions must have a Location header\");\n let isAbsolute = /^[a-z+]+:\\/\\//i.test(location) || location.startsWith(\"//\"); // Support relative routing in internal redirects\n\n if (!isAbsolute) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(match => match.pathnameBase);\n let resolvedLocation = resolveTo(location, routePathnames, new URL(request.url).pathname);\n invariant(createPath(resolvedLocation), \"Unable to resolve redirect location: \" + location); // Prepend the basename to the redirect location if we have one\n\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname = path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n } // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n\n\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null\n };\n } // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n\n\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result\n };\n }\n\n let data;\n let contentType = result.headers.get(\"Content-Type\"); // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers\n };\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: result\n };\n }\n\n if (result instanceof DeferredData) {\n return {\n type: ResultType.deferred,\n deferredData: result\n };\n }\n\n return {\n type: ResultType.data,\n data: result\n };\n} // Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\n\n\nfunction createClientSideRequest(location, signal, submission) {\n let url = createClientSideURL(stripHashFromPath(location)).toString();\n let init = {\n signal\n };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let {\n formMethod,\n formEncType,\n formData\n } = submission;\n init.method = formMethod.toUpperCase();\n init.body = formEncType === \"application/x-www-form-urlencoded\" ? convertFormDataToSearchParams(formData) : formData;\n } // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n\n\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData) {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n invariant(typeof value === \"string\", 'File inputs are not supported with encType \"application/x-www-form-urlencoded\", ' + 'please use \"multipart/form-data\" instead.');\n searchParams.append(key, value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds) {\n // Fill in loaderData/errors from our loaders\n let loaderData = {};\n let errors = null;\n let statusCode;\n let foundError = false;\n let loaderHeaders = {}; // Process loader results into state.loaderData/state.errors\n\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(!isRedirectResult(result), \"Cannot handle redirect results in processLoaderData\");\n\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error; // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {}; // Prefer higher error values if lower errors bubble to the same boundary\n\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n } // Clear our any prior loaderData for the throwing route\n\n\n loaderData[id] = undefined; // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error) ? result.error.status : 500;\n }\n\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else if (isDeferredResult(result)) {\n activeDeferreds && activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data; // TODO: Add statusCode/headers once we wire up streaming in Remix\n } else {\n loaderData[id] = result.data; // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n\n if (result.statusCode != null && result.statusCode !== 200 && !foundError) {\n statusCode = result.statusCode;\n }\n\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n }); // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders\n };\n}\n\nfunction processLoaderData(state, matches, matchesToLoad, results, pendingError, revalidatingFetchers, fetcherResults, activeDeferreds) {\n let {\n loaderData,\n errors\n } = processRouteLoaderData(matches, matchesToLoad, results, pendingError, activeDeferreds); // Process results from our revalidating fetchers\n\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let [key,, match] = revalidatingFetchers[index];\n invariant(fetcherResults !== undefined && fetcherResults[index] !== undefined, \"Did not find corresponding fetcher result\");\n let result = fetcherResults[index]; // Process fetcher non-redirect errors\n\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match.route.id);\n\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = _extends({}, errors, {\n [boundaryMatch.route.id]: result.error\n });\n }\n\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n throw new Error(\"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n throw new Error(\"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return {\n loaderData,\n errors\n };\n}\n\nfunction mergeLoaderData(loaderData, newLoaderData, matches, errors) {\n let mergedLoaderData = _extends({}, newLoaderData);\n\n for (let match of matches) {\n let id = match.route.id;\n\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n }\n } else if (loaderData[id] !== undefined) {\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n\n return mergedLoaderData;\n} // Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\n\n\nfunction findNearestBoundary(matches, routeId) {\n let eligibleMatches = routeId ? matches.slice(0, matches.findIndex(m => m.route.id === routeId) + 1) : [...matches];\n return eligibleMatches.reverse().find(m => m.route.hasErrorBoundary === true) || matches[0];\n}\n\nfunction getShortCircuitMatches(routes) {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find(r => r.index || !r.path || r.path === \"/\") || {\n id: \"__shim-error-route__\"\n };\n return {\n matches: [{\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route\n }],\n route\n };\n}\n\nfunction getInternalRouterError(status, _temp4) {\n let {\n pathname,\n routeId,\n method\n } = _temp4 === void 0 ? {} : _temp4;\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide a `loader` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else {\n errorMessage = \"Cannot submit binary form data using GET\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = \"Route \\\"\" + routeId + \"\\\" does not match URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = \"No route matches URL \\\"\" + pathname + \"\\\"\";\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n\n if (method && pathname && routeId) {\n errorMessage = \"You made a \" + method.toUpperCase() + \" request to \\\"\" + pathname + \"\\\" but \" + (\"did not provide an `action` for route \\\"\" + routeId + \"\\\", \") + \"so there is no way to handle the request.\";\n } else if (method) {\n errorMessage = \"Invalid request method \\\"\" + method.toUpperCase() + \"\\\"\";\n }\n }\n\n return new ErrorResponse(status || 500, statusText, new Error(errorMessage), true);\n} // Find any returned redirect errors, starting from the lowest match\n\n\nfunction findRedirect(results) {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath(_extends({}, parsedPath, {\n hash: \"\"\n }));\n}\n\nfunction isHashChangeOnly(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash;\n}\n\nfunction isDeferredResult(result) {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result) {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result) {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isResponse(value) {\n return value != null && typeof value.status === \"number\" && typeof value.statusText === \"string\" && typeof value.headers === \"object\" && typeof value.body !== \"undefined\";\n}\n\nfunction isRedirectResponse(result) {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj) {\n return obj && isResponse(obj.response) && (obj.type === ResultType.data || ResultType.error);\n}\n\nfunction isValidMethod(method) {\n return validRequestMethods.has(method);\n}\n\nfunction isMutationMethod(method) {\n return validMutationMethods.has(method);\n}\n\nasync function resolveDeferredResults(currentMatches, matchesToLoad, results, signal, isFetcher, currentLoaderData) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n let currentMatch = currentMatches.find(m => m.route.id === match.route.id);\n let isRevalidatingLoader = currentMatch != null && !isNewRouteInstance(currentMatch, match) && (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then(result => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(result, signal, unwrap) {\n if (unwrap === void 0) {\n unwrap = false;\n }\n\n let aborted = await result.deferredData.resolveData(signal);\n\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data\n };\n}\n\nfunction hasNakedIndexQuery(search) {\n return new URLSearchParams(search).getAll(\"index\").some(v => v === \"\");\n} // Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\n\n\nfunction createUseMatchesMatch(match, loaderData) {\n let {\n route,\n pathname,\n params\n } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id],\n handle: route.handle\n };\n}\n\nfunction getTargetMatch(matches, location) {\n let search = typeof location === \"string\" ? parsePath(location).search : location.search;\n\n if (matches[matches.length - 1].route.index && hasNakedIndexQuery(search || \"\")) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n } // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n\n\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n} //#endregion\n\nexport { AbortedDeferredError, Action, ErrorResponse, IDLE_FETCHER, IDLE_NAVIGATION, convertRoutesToDataRoutes as UNSAFE_convertRoutesToDataRoutes, getPathContributingMatches as UNSAFE_getPathContributingMatches, createBrowserHistory, createHashHistory, createMemoryHistory, createPath, createRouter, createStaticHandler, defer, generatePath, getStaticContextFromError, getToPathname, invariant, isRouteErrorResponse, joinPaths, json, matchPath, matchRoutes, normalizePathname, parsePath, redirect, resolvePath, resolveTo, stripBasename, warning };\n//# sourceMappingURL=router.js.map\n","/**\n * React Router v6.6.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { invariant, joinPaths, matchPath, UNSAFE_getPathContributingMatches, warning, resolveTo, parsePath, matchRoutes, Action, isRouteErrorResponse, createMemoryHistory, stripBasename, AbortedDeferredError, createRouter } from '@remix-run/router';\nexport { AbortedDeferredError, Action as NavigationType, createPath, defer, generatePath, isRouteErrorResponse, json, matchPath, matchRoutes, parsePath, redirect, resolvePath } from '@remix-run/router';\nimport * as React from 'react';\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n return _extends.apply(this, arguments);\n}\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n\nfunction isPolyfill(x, y) {\n return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare\n ;\n}\n\nconst is = typeof Object.is === \"function\" ? Object.is : isPolyfill; // Intentionally not using named imports because Rollup uses dynamic\n// dispatch for CommonJS interop named imports.\n\nconst {\n useState,\n useEffect,\n useLayoutEffect,\n useDebugValue\n} = React;\nlet didWarnOld18Alpha = false;\nlet didWarnUncachedGetSnapshot = false; // Disclaimer: This shim breaks many of the rules of React, and only works\n// because of a very particular set of implementation details and assumptions\n// -- change any one of them and it will break. The most important assumption\n// is that updates are always synchronous, because concurrent rendering is\n// only available in versions of React that also have a built-in\n// useSyncExternalStore API. And we only use this shim when the built-in API\n// does not exist.\n//\n// Do not assume that the clever hacks used by this hook also work in general.\n// The point of this shim is to replace the need for hacks by other libraries.\n\nfunction useSyncExternalStore$2(subscribe, getSnapshot, // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n// React do not expose a way to check if we're hydrating. So users of the shim\n// will need to track that themselves and return the correct value\n// from `getSnapshot`.\ngetServerSnapshot) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!didWarnOld18Alpha) {\n if (\"startTransition\" in React) {\n didWarnOld18Alpha = true;\n console.error(\"You are using an outdated, pre-release alpha of React 18 that \" + \"does not support useSyncExternalStore. The \" + \"use-sync-external-store shim will not work correctly. Upgrade \" + \"to a newer pre-release.\");\n }\n }\n } // Read the current snapshot from the store on every render. Again, this\n // breaks the rules of React, and only works here because of specific\n // implementation details, most importantly that updates are\n // always synchronous.\n\n\n const value = getSnapshot();\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!didWarnUncachedGetSnapshot) {\n const cachedValue = getSnapshot();\n\n if (!is(value, cachedValue)) {\n console.error(\"The result of getSnapshot should be cached to avoid an infinite loop\");\n didWarnUncachedGetSnapshot = true;\n }\n }\n } // Because updates are synchronous, we don't queue them. Instead we force a\n // re-render whenever the subscribed state changes by updating an some\n // arbitrary useState hook. Then, during render, we call getSnapshot to read\n // the current value.\n //\n // Because we don't actually use the state returned by the useState hook, we\n // can save a bit of memory by storing other stuff in that slot.\n //\n // To implement the early bailout, we need to track some things on a mutable\n // object. Usually, we would put that in a useRef hook, but we can stash it in\n // our useState hook instead.\n //\n // To force a re-render, we call forceUpdate({inst}). That works because the\n // new object always fails an equality check.\n\n\n const [{\n inst\n }, forceUpdate] = useState({\n inst: {\n value,\n getSnapshot\n }\n }); // Track the latest getSnapshot function with a ref. This needs to be updated\n // in the layout phase so we can access it during the tearing check that\n // happens on subscribe.\n\n useLayoutEffect(() => {\n inst.value = value;\n inst.getSnapshot = getSnapshot; // Whenever getSnapshot or subscribe changes, we need to check in the\n // commit phase if there was an interleaved mutation. In concurrent mode\n // this can happen all the time, but even in synchronous mode, an earlier\n // effect may have mutated the store.\n\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst\n });\n } // eslint-disable-next-line react-hooks/exhaustive-deps\n\n }, [subscribe, value, getSnapshot]);\n useEffect(() => {\n // Check for changes right before subscribing. Subsequent changes will be\n // detected in the subscription handler.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst\n });\n }\n\n const handleStoreChange = () => {\n // TODO: Because there is no cross-renderer API for batching updates, it's\n // up to the consumer of this library to wrap their subscription event\n // with unstable_batchedUpdates. Should we try to detect when this isn't\n // the case and print a warning in development?\n // The store changed. Check if the snapshot changed since the last time we\n // read from the store.\n if (checkIfSnapshotChanged(inst)) {\n // Force a re-render.\n forceUpdate({\n inst\n });\n }\n }; // Subscribe to the store and return a clean-up function.\n\n\n return subscribe(handleStoreChange); // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [subscribe]);\n useDebugValue(value);\n return value;\n}\n\nfunction checkIfSnapshotChanged(inst) {\n const latestGetSnapshot = inst.getSnapshot;\n const prevValue = inst.value;\n\n try {\n const nextValue = latestGetSnapshot();\n return !is(prevValue, nextValue);\n } catch (error) {\n return true;\n }\n}\n\n/**\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n *\n * @flow\n */\nfunction useSyncExternalStore$1(subscribe, getSnapshot, getServerSnapshot) {\n // Note: The shim does not use getServerSnapshot, because pre-18 versions of\n // React do not expose a way to check if we're hydrating. So users of the shim\n // will need to track that themselves and return the correct value\n // from `getSnapshot`.\n return getSnapshot();\n}\n\n/**\n * Inlined into the react-router repo since use-sync-external-store does not\n * provide a UMD-compatible package, so we need this to be able to distribute\n * UMD react-router bundles\n */\nconst canUseDOM = !!(typeof window !== \"undefined\" && typeof window.document !== \"undefined\" && typeof window.document.createElement !== \"undefined\");\nconst isServerEnvironment = !canUseDOM;\nconst shim = isServerEnvironment ? useSyncExternalStore$1 : useSyncExternalStore$2;\nconst useSyncExternalStore = \"useSyncExternalStore\" in React ? (module => module.useSyncExternalStore)(React) : shim;\n\nconst DataRouterContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterContext.displayName = \"DataRouter\";\n}\n\nconst DataRouterStateContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n DataRouterStateContext.displayName = \"DataRouterState\";\n}\n\nconst AwaitContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n AwaitContext.displayName = \"Await\";\n}\n\nconst NavigationContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n NavigationContext.displayName = \"Navigation\";\n}\n\nconst LocationContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n LocationContext.displayName = \"Location\";\n}\n\nconst RouteContext = /*#__PURE__*/React.createContext({\n outlet: null,\n matches: []\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n RouteContext.displayName = \"Route\";\n}\n\nconst RouteErrorContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== \"production\") {\n RouteErrorContext.displayName = \"RouteError\";\n}\n\n/**\n * Returns the full href for the given \"to\" value. This is useful for building\n * custom links that are also accessible and preserve right-click behavior.\n *\n * @see https://reactrouter.com/hooks/use-href\n */\n\nfunction useHref(to, _temp) {\n let {\n relative\n } = _temp === void 0 ? {} : _temp;\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useHref() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n hash,\n pathname,\n search\n } = useResolvedPath(to, {\n relative\n });\n let joinedPathname = pathname; // If we're operating within a basename, prepend it to the pathname prior\n // to creating the href. If this is a root navigation, then just use the raw\n // basename which allows the basename to have full control over the presence\n // of a trailing slash on root links\n\n if (basename !== \"/\") {\n joinedPathname = pathname === \"/\" ? basename : joinPaths([basename, pathname]);\n }\n\n return navigator.createHref({\n pathname: joinedPathname,\n search,\n hash\n });\n}\n/**\n * Returns true if this component is a descendant of a .\n *\n * @see https://reactrouter.com/hooks/use-in-router-context\n */\n\nfunction useInRouterContext() {\n return React.useContext(LocationContext) != null;\n}\n/**\n * Returns the current location object, which represents the current URL in web\n * browsers.\n *\n * Note: If you're using this it may mean you're doing some of your own\n * \"routing\" in your app, and we'd like to know what your use case is. We may\n * be able to provide something higher-level to better suit your needs.\n *\n * @see https://reactrouter.com/hooks/use-location\n */\n\nfunction useLocation() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useLocation() may be used only in the context of a component.\") : invariant(false) : void 0;\n return React.useContext(LocationContext).location;\n}\n/**\n * Returns the current navigation action which describes how the router came to\n * the current location, either by a pop, push, or replace on the history stack.\n *\n * @see https://reactrouter.com/hooks/use-navigation-type\n */\n\nfunction useNavigationType() {\n return React.useContext(LocationContext).navigationType;\n}\n/**\n * Returns a PathMatch object if the given pattern matches the current URL.\n * This is useful for components that need to know \"active\" state, e.g.\n * .\n *\n * @see https://reactrouter.com/hooks/use-match\n */\n\nfunction useMatch(pattern) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useMatch() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n pathname\n } = useLocation();\n return React.useMemo(() => matchPath(pattern, pathname), [pathname, pattern]);\n}\n/**\n * The interface for the navigate() function returned from useNavigate().\n */\n\n/**\n * Returns an imperative method for changing the location. Used by s, but\n * may also be used by other elements to change the location.\n *\n * @see https://reactrouter.com/hooks/use-navigate\n */\nfunction useNavigate() {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useNavigate() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n basename,\n navigator\n } = React.useContext(NavigationContext);\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getPathContributingMatches(matches).map(match => match.pathnameBase));\n let activeRef = React.useRef(false);\n React.useEffect(() => {\n activeRef.current = true;\n });\n let navigate = React.useCallback(function (to, options) {\n if (options === void 0) {\n options = {};\n }\n\n process.env.NODE_ENV !== \"production\" ? warning(activeRef.current, \"You should call navigate() in a React.useEffect(), not when \" + \"your component is first rendered.\") : void 0;\n if (!activeRef.current) return;\n\n if (typeof to === \"number\") {\n navigator.go(to);\n return;\n }\n\n let path = resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, options.relative === \"path\"); // If we're operating within a basename, prepend it to the pathname prior\n // to handing off to history. If this is a root navigation, then we\n // navigate to the raw basename which allows the basename to have full\n // control over the presence of a trailing slash on root links\n\n if (basename !== \"/\") {\n path.pathname = path.pathname === \"/\" ? basename : joinPaths([basename, path.pathname]);\n }\n\n (!!options.replace ? navigator.replace : navigator.push)(path, options.state, options);\n }, [basename, navigator, routePathnamesJson, locationPathname]);\n return navigate;\n}\nconst OutletContext = /*#__PURE__*/React.createContext(null);\n/**\n * Returns the context (if provided) for the child route at this level of the route\n * hierarchy.\n * @see https://reactrouter.com/hooks/use-outlet-context\n */\n\nfunction useOutletContext() {\n return React.useContext(OutletContext);\n}\n/**\n * Returns the element for the child route at this level of the route\n * hierarchy. Used internally by to render child routes.\n *\n * @see https://reactrouter.com/hooks/use-outlet\n */\n\nfunction useOutlet(context) {\n let outlet = React.useContext(RouteContext).outlet;\n\n if (outlet) {\n return /*#__PURE__*/React.createElement(OutletContext.Provider, {\n value: context\n }, outlet);\n }\n\n return outlet;\n}\n/**\n * Returns an object of key/value pairs of the dynamic params from the current\n * URL that were matched by the route path.\n *\n * @see https://reactrouter.com/hooks/use-params\n */\n\nfunction useParams() {\n let {\n matches\n } = React.useContext(RouteContext);\n let routeMatch = matches[matches.length - 1];\n return routeMatch ? routeMatch.params : {};\n}\n/**\n * Resolves the pathname of the given `to` value against the current location.\n *\n * @see https://reactrouter.com/hooks/use-resolved-path\n */\n\nfunction useResolvedPath(to, _temp2) {\n let {\n relative\n } = _temp2 === void 0 ? {} : _temp2;\n let {\n matches\n } = React.useContext(RouteContext);\n let {\n pathname: locationPathname\n } = useLocation();\n let routePathnamesJson = JSON.stringify(UNSAFE_getPathContributingMatches(matches).map(match => match.pathnameBase));\n return React.useMemo(() => resolveTo(to, JSON.parse(routePathnamesJson), locationPathname, relative === \"path\"), [to, routePathnamesJson, locationPathname, relative]);\n}\n/**\n * Returns the element of the route that matched the current location, prepared\n * with the correct context to render the remainder of the route tree. Route\n * elements in the tree must render an to render their child route's\n * element.\n *\n * @see https://reactrouter.com/hooks/use-routes\n */\n\nfunction useRoutes(routes, locationArg) {\n !useInRouterContext() ? process.env.NODE_ENV !== \"production\" ? invariant(false, // TODO: This error is probably because they somehow have 2 versions of the\n // router loaded. We can help them understand how to avoid that.\n \"useRoutes() may be used only in the context of a component.\") : invariant(false) : void 0;\n let {\n navigator\n } = React.useContext(NavigationContext);\n let dataRouterStateContext = React.useContext(DataRouterStateContext);\n let {\n matches: parentMatches\n } = React.useContext(RouteContext);\n let routeMatch = parentMatches[parentMatches.length - 1];\n let parentParams = routeMatch ? routeMatch.params : {};\n let parentPathname = routeMatch ? routeMatch.pathname : \"/\";\n let parentPathnameBase = routeMatch ? routeMatch.pathnameBase : \"/\";\n let parentRoute = routeMatch && routeMatch.route;\n\n if (process.env.NODE_ENV !== \"production\") {\n // You won't get a warning about 2 different under a \n // without a trailing *, but this is a best-effort warning anyway since we\n // cannot even give the warning unless they land at the parent route.\n //\n // Example:\n //\n // \n // {/* This route path MUST end with /* because otherwise\n // it will never match /blog/post/123 */}\n // } />\n // } />\n // \n //\n // function Blog() {\n // return (\n // \n // } />\n // \n // );\n // }\n let parentPath = parentRoute && parentRoute.path || \"\";\n warningOnce(parentPathname, !parentRoute || parentPath.endsWith(\"*\"), \"You rendered descendant (or called `useRoutes()`) at \" + (\"\\\"\" + parentPathname + \"\\\" (under ) but the \") + \"parent route path has no trailing \\\"*\\\". This means if you navigate \" + \"deeper, the parent won't match anymore and therefore the child \" + \"routes will never render.\\n\\n\" + (\"Please change the parent to .\"));\n }\n\n let locationFromContext = useLocation();\n let location;\n\n if (locationArg) {\n var _parsedLocationArg$pa;\n\n let parsedLocationArg = typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n !(parentPathnameBase === \"/\" || ((_parsedLocationArg$pa = parsedLocationArg.pathname) == null ? void 0 : _parsedLocationArg$pa.startsWith(parentPathnameBase))) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"When overriding the location using `` or `useRoutes(routes, location)`, \" + \"the location pathname must begin with the portion of the URL pathname that was \" + (\"matched by all parent routes. The current pathname base is \\\"\" + parentPathnameBase + \"\\\" \") + (\"but pathname \\\"\" + parsedLocationArg.pathname + \"\\\" was given in the `location` prop.\")) : invariant(false) : void 0;\n location = parsedLocationArg;\n } else {\n location = locationFromContext;\n }\n\n let pathname = location.pathname || \"/\";\n let remainingPathname = parentPathnameBase === \"/\" ? pathname : pathname.slice(parentPathnameBase.length) || \"/\";\n let matches = matchRoutes(routes, {\n pathname: remainingPathname\n });\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning(parentRoute || matches != null, \"No routes matched location \\\"\" + location.pathname + location.search + location.hash + \"\\\" \") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(matches == null || matches[matches.length - 1].route.element !== undefined, \"Matched leaf route at location \\\"\" + location.pathname + location.search + location.hash + \"\\\" does not have an element. \" + \"This means it will render an with a null value by default resulting in an \\\"empty\\\" page.\") : void 0;\n }\n\n let renderedMatches = _renderMatches(matches && matches.map(match => Object.assign({}, match, {\n params: Object.assign({}, parentParams, match.params),\n pathname: joinPaths([parentPathnameBase, // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathname).pathname : match.pathname]),\n pathnameBase: match.pathnameBase === \"/\" ? parentPathnameBase : joinPaths([parentPathnameBase, // Re-encode pathnames that were decoded inside matchRoutes\n navigator.encodeLocation ? navigator.encodeLocation(match.pathnameBase).pathname : match.pathnameBase])\n })), parentMatches, dataRouterStateContext || undefined); // When a user passes in a `locationArg`, the associated routes need to\n // be wrapped in a new `LocationContext.Provider` in order for `useLocation`\n // to use the scoped location instead of the global location.\n\n\n if (locationArg && renderedMatches) {\n return /*#__PURE__*/React.createElement(LocationContext.Provider, {\n value: {\n location: _extends({\n pathname: \"/\",\n search: \"\",\n hash: \"\",\n state: null,\n key: \"default\"\n }, location),\n navigationType: Action.Pop\n }\n }, renderedMatches);\n }\n\n return renderedMatches;\n}\n\nfunction DefaultErrorElement() {\n let error = useRouteError();\n let message = isRouteErrorResponse(error) ? error.status + \" \" + error.statusText : error instanceof Error ? error.message : JSON.stringify(error);\n let stack = error instanceof Error ? error.stack : null;\n let lightgrey = \"rgba(200,200,200, 0.5)\";\n let preStyles = {\n padding: \"0.5rem\",\n backgroundColor: lightgrey\n };\n let codeStyles = {\n padding: \"2px 4px\",\n backgroundColor: lightgrey\n };\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(\"h2\", null, \"Unhandled Thrown Error!\"), /*#__PURE__*/React.createElement(\"h3\", {\n style: {\n fontStyle: \"italic\"\n }\n }, message), stack ? /*#__PURE__*/React.createElement(\"pre\", {\n style: preStyles\n }, stack) : null, /*#__PURE__*/React.createElement(\"p\", null, \"\\uD83D\\uDCBF Hey developer \\uD83D\\uDC4B\"), /*#__PURE__*/React.createElement(\"p\", null, \"You can provide a way better UX than this when your app throws errors by providing your own\\xA0\", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"errorElement\"), \" props on\\xA0\", /*#__PURE__*/React.createElement(\"code\", {\n style: codeStyles\n }, \"\")));\n}\n\nclass RenderErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n location: props.location,\n error: props.error\n };\n }\n\n static getDerivedStateFromError(error) {\n return {\n error: error\n };\n }\n\n static getDerivedStateFromProps(props, state) {\n // When we get into an error state, the user will likely click \"back\" to the\n // previous page that didn't have an error. Because this wraps the entire\n // application, that will have no effect--the error page continues to display.\n // This gives us a mechanism to recover from the error when the location changes.\n //\n // Whether we're in an error state or not, we update the location in state\n // so that when we are in an error state, it gets reset when a new location\n // comes in and the user recovers from the error.\n if (state.location !== props.location) {\n return {\n error: props.error,\n location: props.location\n };\n } // If we're not changing locations, preserve the location but still surface\n // any new errors that may come through. We retain the existing error, we do\n // this because the error provided from the app state may be cleared without\n // the location changing.\n\n\n return {\n error: props.error || state.error,\n location: state.location\n };\n }\n\n componentDidCatch(error, errorInfo) {\n console.error(\"React Router caught the following error during render\", error, errorInfo);\n }\n\n render() {\n return this.state.error ? /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: this.props.routeContext\n }, /*#__PURE__*/React.createElement(RouteErrorContext.Provider, {\n value: this.state.error,\n children: this.props.component\n })) : this.props.children;\n }\n\n}\n\nfunction RenderedRoute(_ref) {\n let {\n routeContext,\n match,\n children\n } = _ref;\n let dataRouterContext = React.useContext(DataRouterContext); // Track how deep we got in our render pass to emulate SSR componentDidCatch\n // in a DataStaticRouter\n\n if (dataRouterContext && dataRouterContext.static && dataRouterContext.staticContext && match.route.errorElement) {\n dataRouterContext.staticContext._deepestRenderedBoundaryId = match.route.id;\n }\n\n return /*#__PURE__*/React.createElement(RouteContext.Provider, {\n value: routeContext\n }, children);\n}\n\nfunction _renderMatches(matches, parentMatches, dataRouterState) {\n if (parentMatches === void 0) {\n parentMatches = [];\n }\n\n if (matches == null) {\n if (dataRouterState != null && dataRouterState.errors) {\n // Don't bail if we have data router errors so we can render them in the\n // boundary. Use the pre-matched (or shimmed) matches\n matches = dataRouterState.matches;\n } else {\n return null;\n }\n }\n\n let renderedMatches = matches; // If we have data errors, trim matches to the highest error boundary\n\n let errors = dataRouterState == null ? void 0 : dataRouterState.errors;\n\n if (errors != null) {\n let errorIndex = renderedMatches.findIndex(m => m.route.id && (errors == null ? void 0 : errors[m.route.id]));\n !(errorIndex >= 0) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"Could not find a matching route for the current errors: \" + errors) : invariant(false) : void 0;\n renderedMatches = renderedMatches.slice(0, Math.min(renderedMatches.length, errorIndex + 1));\n }\n\n return renderedMatches.reduceRight((outlet, match, index) => {\n let error = match.route.id ? errors == null ? void 0 : errors[match.route.id] : null; // Only data routers handle errors\n\n let errorElement = dataRouterState ? match.route.errorElement || /*#__PURE__*/React.createElement(DefaultErrorElement, null) : null;\n let matches = parentMatches.concat(renderedMatches.slice(0, index + 1));\n\n let getChildren = () => /*#__PURE__*/React.createElement(RenderedRoute, {\n match: match,\n routeContext: {\n outlet,\n matches\n }\n }, error ? errorElement : match.route.element !== undefined ? match.route.element : outlet); // Only wrap in an error boundary within data router usages when we have an\n // errorElement on this route. Otherwise let it bubble up to an ancestor\n // errorElement\n\n\n return dataRouterState && (match.route.errorElement || index === 0) ? /*#__PURE__*/React.createElement(RenderErrorBoundary, {\n location: dataRouterState.location,\n component: errorElement,\n error: error,\n children: getChildren(),\n routeContext: {\n outlet: null,\n matches\n }\n }) : getChildren();\n }, null);\n}\nvar DataRouterHook;\n\n(function (DataRouterHook) {\n DataRouterHook[\"UseRevalidator\"] = \"useRevalidator\";\n})(DataRouterHook || (DataRouterHook = {}));\n\nvar DataRouterStateHook;\n\n(function (DataRouterStateHook) {\n DataRouterStateHook[\"UseLoaderData\"] = \"useLoaderData\";\n DataRouterStateHook[\"UseActionData\"] = \"useActionData\";\n DataRouterStateHook[\"UseRouteError\"] = \"useRouteError\";\n DataRouterStateHook[\"UseNavigation\"] = \"useNavigation\";\n DataRouterStateHook[\"UseRouteLoaderData\"] = \"useRouteLoaderData\";\n DataRouterStateHook[\"UseMatches\"] = \"useMatches\";\n DataRouterStateHook[\"UseRevalidator\"] = \"useRevalidator\";\n})(DataRouterStateHook || (DataRouterStateHook = {}));\n\nfunction getDataRouterConsoleError(hookName) {\n return hookName + \" must be used within a data router. See https://reactrouter.com/routers/picking-a-router.\";\n}\n\nfunction useDataRouterContext(hookName) {\n let ctx = React.useContext(DataRouterContext);\n !ctx ? process.env.NODE_ENV !== \"production\" ? invariant(false, getDataRouterConsoleError(hookName)) : invariant(false) : void 0;\n return ctx;\n}\n\nfunction useDataRouterState(hookName) {\n let state = React.useContext(DataRouterStateContext);\n !state ? process.env.NODE_ENV !== \"production\" ? invariant(false, getDataRouterConsoleError(hookName)) : invariant(false) : void 0;\n return state;\n}\n\nfunction useRouteContext(hookName) {\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? invariant(false, getDataRouterConsoleError(hookName)) : invariant(false) : void 0;\n return route;\n}\n\nfunction useCurrentRouteId(hookName) {\n let route = useRouteContext(hookName);\n let thisRoute = route.matches[route.matches.length - 1];\n !thisRoute.route.id ? process.env.NODE_ENV !== \"production\" ? invariant(false, hookName + \" can only be used on routes that contain a unique \\\"id\\\"\") : invariant(false) : void 0;\n return thisRoute.route.id;\n}\n/**\n * Returns the current navigation, defaulting to an \"idle\" navigation when\n * no navigation is in progress\n */\n\n\nfunction useNavigation() {\n let state = useDataRouterState(DataRouterStateHook.UseNavigation);\n return state.navigation;\n}\n/**\n * Returns a revalidate function for manually triggering revalidation, as well\n * as the current state of any manual revalidations\n */\n\nfunction useRevalidator() {\n let dataRouterContext = useDataRouterContext(DataRouterHook.UseRevalidator);\n let state = useDataRouterState(DataRouterStateHook.UseRevalidator);\n return {\n revalidate: dataRouterContext.router.revalidate,\n state: state.revalidation\n };\n}\n/**\n * Returns the active route matches, useful for accessing loaderData for\n * parent/child routes or the route \"handle\" property\n */\n\nfunction useMatches() {\n let {\n matches,\n loaderData\n } = useDataRouterState(DataRouterStateHook.UseMatches);\n return React.useMemo(() => matches.map(match => {\n let {\n pathname,\n params\n } = match; // Note: This structure matches that created by createUseMatchesMatch\n // in the @remix-run/router , so if you change this please also change\n // that :) Eventually we'll DRY this up\n\n return {\n id: match.route.id,\n pathname,\n params,\n data: loaderData[match.route.id],\n handle: match.route.handle\n };\n }), [matches, loaderData]);\n}\n/**\n * Returns the loader data for the nearest ancestor Route loader\n */\n\nfunction useLoaderData() {\n let state = useDataRouterState(DataRouterStateHook.UseLoaderData);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseLoaderData);\n\n if (state.errors && state.errors[routeId] != null) {\n console.error(\"You cannot `useLoaderData` in an errorElement (routeId: \" + routeId + \")\");\n return undefined;\n }\n\n return state.loaderData[routeId];\n}\n/**\n * Returns the loaderData for the given routeId\n */\n\nfunction useRouteLoaderData(routeId) {\n let state = useDataRouterState(DataRouterStateHook.UseRouteLoaderData);\n return state.loaderData[routeId];\n}\n/**\n * Returns the action data for the nearest ancestor Route action\n */\n\nfunction useActionData() {\n let state = useDataRouterState(DataRouterStateHook.UseActionData);\n let route = React.useContext(RouteContext);\n !route ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"useActionData must be used inside a RouteContext\") : invariant(false) : void 0;\n return Object.values((state == null ? void 0 : state.actionData) || {})[0];\n}\n/**\n * Returns the nearest ancestor Route error, which could be a loader/action\n * error or a render error. This is intended to be called from your\n * errorElement to display a proper error message.\n */\n\nfunction useRouteError() {\n var _state$errors;\n\n let error = React.useContext(RouteErrorContext);\n let state = useDataRouterState(DataRouterStateHook.UseRouteError);\n let routeId = useCurrentRouteId(DataRouterStateHook.UseRouteError); // If this was a render error, we put it in a RouteError context inside\n // of RenderErrorBoundary\n\n if (error) {\n return error;\n } // Otherwise look for errors from our data router state\n\n\n return (_state$errors = state.errors) == null ? void 0 : _state$errors[routeId];\n}\n/**\n * Returns the happy-path data from the nearest ancestor value\n */\n\nfunction useAsyncValue() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._data;\n}\n/**\n * Returns the error from the nearest ancestor value\n */\n\nfunction useAsyncError() {\n let value = React.useContext(AwaitContext);\n return value == null ? void 0 : value._error;\n}\nconst alreadyWarned = {};\n\nfunction warningOnce(key, cond, message) {\n if (!cond && !alreadyWarned[key]) {\n alreadyWarned[key] = true;\n process.env.NODE_ENV !== \"production\" ? warning(false, message) : void 0;\n }\n}\n\n/**\n * Given a Remix Router instance, render the appropriate UI\n */\nfunction RouterProvider(_ref) {\n let {\n fallbackElement,\n router\n } = _ref;\n // Sync router state to our component state to force re-renders\n let state = useSyncExternalStore(router.subscribe, () => router.state, // We have to provide this so React@18 doesn't complain during hydration,\n // but we pass our serialized hydration data into the router so state here\n // is already synced with what the server saw\n () => router.state);\n let navigator = React.useMemo(() => {\n return {\n createHref: router.createHref,\n encodeLocation: router.encodeLocation,\n go: n => router.navigate(n),\n push: (to, state, opts) => router.navigate(to, {\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n }),\n replace: (to, state, opts) => router.navigate(to, {\n replace: true,\n state,\n preventScrollReset: opts == null ? void 0 : opts.preventScrollReset\n })\n };\n }, [router]);\n let basename = router.basename || \"/\"; // The fragment and {null} here are important! We need them to keep React 18's\n // useId happy when we are server-rendering since we may have a + + + + + +
    + + + diff --git a/favicon.ico b/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..d0c99212741c6276e96945e49184e39c6d9105d1 GIT binary patch literal 15406 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 0000000..5e20155 --- /dev/null +++ b/index.html @@ -0,0 +1,68 @@ + + + + + + Phanpy + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + diff --git a/logo-192.png b/logo-192.png new file mode 100644 index 0000000000000000000000000000000000000000..dd8870050cba3904923f0212656eb8974b18cc99 GIT binary patch literal 1883 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 literal 0 HcmV?d00001 diff --git a/logo-badge-72.png b/logo-badge-72.png new file mode 100644 index 0000000000000000000000000000000000000000..b7b198bb65b460c4609f932fa672c82b7b507541 GIT binary patch literal 1078 zcmeAS@N?(olHy`uVBq!ia0vp^9w5xY3?!3`olAk#iU6MwS0Md=C;;W_wz)vJT9gF& z1v8iych25)^xo?$Ytx*h+1;i-``>G{{C)X?z0q9NpAV{sKKkC!ded&vpL1IT6n#a` z$L}~5n5SpOyYNzG7Xt$`tEY=&NCo5DYhM=~vf^R;z(4a48%ufn!s8RZ*Kg9!d8>H$ zMOAEl{X#{Zc&;C}f5b10(2CynxT?uF-s*_k%Z!ZPiNq zhLsO9e5@vG_MCY(C3z#y#C%t_Ytm0RwjXinog2FD{dGajSr@Fny!2ci!#mMp-YxE` zuy(fx7tQ~RG+BnIwb{;nu2LzTVsWik>#Ju(iF3;BHJ(~e&%J)T!ZT7+>7i_-pUMsP zzrS`&Dd6|8F4OpE*bE`0VO*uBnj>N1D)PJK(FH+8o`gjnom@Lq zRre*Rh-ltuwCp!Mc>Vm0`I^2Hp9?sxei!*@p59*XZOKVo>Ngj;+V6a@Rr~0*ilFfQ zA9B~lo!sKz6|2}PyL4fc&D{>)4^Mt>UvprM!qp>PnkRENulIMEtGUnja-i1dw!XZu z9Q`lC&wKJcnXD#EGCwEy`^1?F+fufv8fx9)KOI9CA7Sv=n_JUnviOGY+?#Ctaz__6 z&#F~5WBnSEb)osReY@Js+fSXWx;JXJp8j(xSkOn+wvko-o%Q^iQL#!-Q%_&H@$1iu zKBsH?YY*10+&J;|x5gR%{Cu+|28jKE0?4>8WS);?=B$_{QnJcs4G&>@c-C#<&T33~c{ z=uC-w&$1h57amb^ zX#38VD)rqvp0VZg)7~YbM!eILtCl9dzy0;nwKVy(hf|B6Dk~*ho9^>kyDw2!{RFRP zZt8RKZ21N0VL3JpI}^W#ZghRmk-R8k`&)tMv3x&D`K~7I&abb^PQR`_kLl0Uf8UkA YJ)P*X$7Zn?FjFyjy85}Sb4q9e0Moxz@Bjb+ literal 0 HcmV?d00001 diff --git a/logo-maskable-512.png b/logo-maskable-512.png new file mode 100644 index 0000000000000000000000000000000000000000..4e41cb640d6a504dc408ea2e0a2f0df8fe92824a GIT binary patch literal 4412 zcma)=Svb^<`^LYsm>K)NWg9gNSwk;sV#b!Gq%29wgoLc)m7>g|ED>QWS;yL@>`M#2 zmddLIku^*y%WE4VW0{$M@A3cS_nds5gZtpVo`dJQuRF=f@wl+SJ^=s#gzapt&Hw=P z&k6-lus`Uk#Ps}upVJ8!>*kN!qjTKy_AMfH_F)Hm_$RmN!**To_S0^5!~5;WomHf;{N%_e>O`GU^L{+{mAY%rJ9LBD0UCL3_>UWeH1v$yRP z2Nj~-0`JaM1fq5_-|M8hBwNkD^K@3!)45!F<3+j2sqt>Y;IP!g2$YBGnb)=ku#cJ! zxE~@Z+N}!vUGahXz)%2W}q9b8hrq%}vsMGRlJB`%EEdNwYOX$)v zug-DLe{_lGcNP(AaPe1r=mQhyHtR)Cs^ph>LLu8Idh;yO>(MgH7>Ye#X2|86`mqo- zQYzebZhP0S*rZc&G6RMjE%UJx!D&Y2a!KIMQRut*TO1{-=(QC-htqP2Pz_gX(rGS% z$U9ot6eA~|fH;gNOifz6DUa2t-h6mQ0b5yB7%_5nLgv}ir=Kyktzn|N5Qz3}R@TSH zej`WOXIeUXs!7DIr9SmY$6pI?eFbvB_r5Z`aOeJ`q${IZRl?7UI8R$XZ>0Zae+ZrD zF#e-jyC>nRn!9YC`qFlDg?ie0&v$wEv~QxWrZ;j%1o}V|!WZ6SMum&at~c+12FIbW z61lztk?uG%S!^}9zL8{pI~6ooAXfw^jbFGg@Y_y~`zUX?yl+%;dq0+&I$Wvn0U3&+ zlb@8FG)b03t8!ES8uXyYoj*mkAE!HpL7P(A2O1jpzx5?PWlt1fG_>2*?lF9>{bq|c z2t0fTKu@^Ef;$ zem53iCeKpj1?>*^tvcc;V~jpd+THF597Q-ieC<$OJ5>%#ti0`&Vc*U@Dr}Co^dIJ~ zeu^fy_e$R-tO`@|u325t;8Ryx+ip*85lt>tk)Z_Y_3;WV_s>@Y4ZF$a>29|0V`>!s zUtHu;qO3h~&FR(MUxt*6_9HeI5Q9eZ3} zAuvR{^>u7;b~OPD1b~xw;_i}H;mrJwe3J$?xfsAf3k{K(ykiA`5uEp(vflnG<23)C z?REltHTKxi8F6+td>^?~XqllGzkPkt+^{0$=l%K4cSXFDClf3~5e3&P=_0lf^KqBD zB9_B>K6x|XFZ>(B9Uvz=BjlBR~oGDS0V&MpQ@wLF=ML?SgUo*U_l#Gkv zikG6a1#M^HOlzV880`pLRHS)8Gg#61#$nY-RCjt(fyEiVzcpLvJBSa*Gs1SDv#9GS z0<&`N9~8hx!5U?>2sqmY?SMZt4QUM*Dw7au7WC8-ERoQjL(M<)LB-(j`%o&qw=MT? z-$d${WVa*PJS^U+cEd=&_!UKcxqKB80cWW0$+@?fLEI*;l3!isE@>VeJ58BzUZcJD-A-|)hv zi}{GlUCLyjar6i}+z?e0x=oFGh%a>yl%bmjz+U{)NK+S*u~-DKg80cbll26Nmq@yZ zGVJxbg3=9Nod{7d0sOafwW{YpW6v-MH4|`;+{->|S!u9Ek()#|{0KFZrFz*@Rq%Js zARD-jdYM5F=6T3f7C(`x#~lH@;4-vPK78Sg-YlGRqC;GSKcZ&g`sa9k`u>#G7KIME z8-h-UaSJx6gov)MzwZL{289l(7eJ7^<$#96gD&Z{Ullc`-(1V3%ZABqV)*yu#=BJ$ z{9178ATvMyu!!&UJr$$F=dg<~jj%$>6Q6t8OGnr1^MW$7;N3M+?vYiQ8MkC(hh2Qf z+&*8&(*&uyRn`D|;%#O*2A$TBy>TFFxVNWGiCg{{qXZ=$W@c?ljYZAyCjWV!RZv8M zOGB64L(!CBLTznUgn%cND-+v=kb6=-OrHUNBpKK#hqqoUaSOv+i!M+n7H zFdY!VJy*~7)>OeKnL)!N**~;pDs+;2pR8l5Ldwq+>orgEGgS5_ti*6 z$EpAtVTHBrwMo5ws3ud5sJCCp<}2)R{5>(-Re!j(l^1$Hyrn)p1s`2hgT0D5f#Q0v zUTl`ULj?dsLk8-g2C??~Enbf2 zyEEgCDy;u4e>lfX^g~r2#NHd45V+qwfQaEdK<#c3j(lGLOFBoC?GM~kHmT=^=hAZB zm>Jb48;rj}^qaZCl!9D|uzULjnAEkIdNCR~P|kpO9W1-v2tiA>(8 zV?bro2tg~F^B42NA`AVwPC9pd1?t;9M2S#(unbc{`uXd}#X5GoP$G~969_Yrl;Al^ zcLQwex9_m}B_xoCIWvKmmGt(fiBS0SC}n^NB_^xd*GNVIFf>YkAu{TtJI1F3I8T@| z15JX_l<^UAMv^e)#d0u%b05lJZ5C^HBf!tUjcFpVgV5Z}g@Zo;+X2S42GQ#Xm1{+x z2V8;x?Vweda{M6jhuN7LVN<|+Vgl{p9UvKYk9Q`x=Qw54%*jF<%kp+m+>`^-2wrjW za8{1 zr#f=z?r(vbeL#{bbR2r~oVWwng^p36?p^70VEI{U|04&u!GMfZZW1a=ldb@8lstC4awuN0I~hq|V<1azVdQ_f(_$tept1RG(w*;s22=jr z*3{=OAu&NrzWKMo7d(1e6%y6ea8Fxonbvzj59y>(uV0?72aEx^<}T}B^(8GCyN*nulXxR@h<>^P zka-Bu*1n_j(@grR2<5QtEEe#70TC;)gJ+2M9UQuZE|a9we0_ji-pk3L#~p z#GOX`a}h738(MD7ij`uqab?CSQmf~^9_X>6&w{#QA>Gb*c0F!NmCaHaIgU)16%9%j zpDsc7`?)SdQpYXEqDhYiq&BsCU1t85*jdS;ufnNcr`>XH>ilSylQxD4&P8=uO$)Gf zoNpma$QYa7K5J*4hj3y~E>z!n&%1v8woNUwnDS}ujo7zop;s1P0*K3df$o@>!eO;m zUzVAzi`DVvB-u{xr#Pc&QPU$A1hToyEG?^#S?Dqe3byAW@{%l#ji41OA}CA26j8&W zLOwuIQ3leu2P8U0sfL|y+;A7^b5FX6+^%uqNdjS{&9F$_R$&katAULDo0*?X6prgzL6_UtFjY=X4HpYjzEdj z#FrzM7aspG6WbgUvNVMU$#!IaF zcUd2MkS~*>U?o(d>Obb$fni1%+U^oZU*4hFflA+VQNObo8@FnBb-?7&&ZewD5~$T( zD>WZbb`YrSp{KS(jGd2JgRUtjOjBYl)$TF#Fjw+Yih0VA z7=+Tt9D$)Nx(|sn6QwGFW_uzIVPc@OOYvGwOuImcllam|RaS&P@si}eKt-OUnLQw$ zx&iq{sL%wD3CkH$S6!n|QIgeuOD8mG$!Y08Lk*UKm0b*4Y=*+MSm|=R=lP_di5|&d zs3hU1SN`17HH$TV)(i?%Pw}Ekou1YhtwFz)N(hUoaw9|cyyrq{obOQeg(7CHB+!(^ zUT##h!_(&R9heNpcj}5@oQh#4v9C8dV}1m>t~P6o@9TZ~#FpzgJ0^ne)#>NctG+rD zjQEQrGjid+rXl0(n`oa$_v=x8kjnRzqI==yEt&QHZKwyDu;{n%vSA7bM!bU|rwq31 z17!!@of5NUSePt+`Z?_gg4T2?4)vN)c_}Z1liA_MO}-(>j!S>s;`=kWB(X@IMaxvS zs|nwK*AJYYVf@Ch>|x9px&A_UlD{xT^l^I8EXLnD6!0{L9?4`#e}weE_x(#(IQCS3 z;yTb0e%8fV!gIuY{1v0@Aw6)KT1@){22(ftBE8fNjv##>MypZi+XGHI;V{L2(M*&Y#o#Noq;=&WM5lKN9^cn7B$Oe_%umR-95FY}~{~di7ccQ4mkF$p|y)kC)n?6}!g13T?%`0rc(N>`X{! zrJDlMUWJ?wHM`pOc#%^ZY_OWL@rbN9teAUy{5(j`h*s+ZHrw?g*398UyxO5`3BxI# zCHsvr96Lld$)IeTtMV)V;y1!VcFB`=4DQ~kD2Z;4@VpWR@{Y`J$CwkWdDVc04Dyg~ z?C@LUN(26R?(+Z#Xe`%w-i~&#Lup?ISi5^euQ=iFV$g}pS3YbfCRD}?TT_GlRMDx# zF!reK>incB4n+PhrLctqA)ynJ^gXs^*3KC}KlhzGpND>nI>AZ0miV8@&f3xHxdoB-e}jGX$^ZZW literal 0 HcmV?d00001 diff --git a/manifest.webmanifest b/manifest.webmanifest new file mode 100644 index 0000000..52c9677 --- /dev/null +++ b/manifest.webmanifest @@ -0,0 +1 @@ +{"name":"Phanpy","short_name":"Phanpy","start_url":"./","display":"standalone","background_color":"#ffffff","lang":"en","scope":"./","description":"Minimalistic opinionated Mastodon web client","icons":[{"src":"logo-192.png","sizes":"192x192","type":"image/png"},{"src":"logo-512.png","sizes":"512x512","type":"image/png"},{"src":"logo-maskable-512.png","sizes":"512x512","type":"image/png","purpose":"maskable"}],"categories":["social","news"]} diff --git a/og-image-2.jpg b/og-image-2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..9bc10c7bc47801ffbbca3558c1ef0d522a7bc5d2 GIT binary patch literal 50534 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

    ?bpP>wRL7nP88 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 literal 0 HcmV?d00001 diff --git a/og-image.png b/og-image.png new file mode 100644 index 0000000000000000000000000000000000000000..3f053af561406c90ad0f94aee98044fac96f7ced GIT binary patch literal 33948 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 FV1f#>N@)N9 literal 0 HcmV?d00001 diff --git a/robots.txt b/robots.txt new file mode 100644 index 0000000..14267e9 --- /dev/null +++ b/robots.txt @@ -0,0 +1,2 @@ +User-agent: * +Allow: / \ No newline at end of file diff --git a/sw.js b/sw.js new file mode 100644 index 0000000..0be8d20 --- /dev/null +++ b/sw.js @@ -0,0 +1,2 @@ +try{self["workbox:core:7.0.0"]&&_()}catch{}const Z=(s,...e)=>{let t=s;return e.length>0&&(t+=` :: ${JSON.stringify(e)}`),t},ee=Z;class u extends Error{constructor(e,t){const n=ee(e,t);super(n),this.name=e,this.details=t}}const te=s=>new URL(String(s),location.href).href.replace(new RegExp(`^${location.origin}`),"");try{self["workbox:cacheable-response:7.0.0"]&&_()}catch{}class se{constructor(e={}){this._statuses=e.statuses,this._headers=e.headers}isResponseCacheable(e){let t=!0;return this._statuses&&(t=this._statuses.includes(e.status)),this._headers&&t&&(t=Object.keys(this._headers).some(n=>e.headers.get(n)===this._headers[n])),t}}class x{constructor(e){this.cacheWillUpdate=async({response:t})=>this._cacheableResponse.isResponseCacheable(t)?t:null,this._cacheableResponse=new se(e)}}function q(s){s.then(()=>{})}const ne=(s,e)=>e.some(t=>s instanceof t);let B,W;function ae(){return B||(B=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function ie(){return W||(W=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const V=new WeakMap,S=new WeakMap,$=new WeakMap,T=new WeakMap,P=new WeakMap;function re(s){const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("success",r),s.removeEventListener("error",i)},r=()=>{t(f(s.result)),a()},i=()=>{n(s.error),a()};s.addEventListener("success",r),s.addEventListener("error",i)});return e.then(t=>{t instanceof IDBCursor&&V.set(t,s)}).catch(()=>{}),P.set(e,s),e}function oe(s){if(S.has(s))return;const e=new Promise((t,n)=>{const a=()=>{s.removeEventListener("complete",r),s.removeEventListener("error",i),s.removeEventListener("abort",i)},r=()=>{t(),a()},i=()=>{n(s.error||new DOMException("AbortError","AbortError")),a()};s.addEventListener("complete",r),s.addEventListener("error",i),s.addEventListener("abort",i)});S.set(s,e)}let M={get(s,e,t){if(s instanceof IDBTransaction){if(e==="done")return S.get(s);if(e==="objectStoreNames")return s.objectStoreNames||$.get(s);if(e==="store")return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return f(s[e])},set(s,e,t){return s[e]=t,!0},has(s,e){return s instanceof IDBTransaction&&(e==="done"||e==="store")?!0:e in s}};function ce(s){M=s(M)}function le(s){return s===IDBDatabase.prototype.transaction&&!("objectStoreNames"in IDBTransaction.prototype)?function(e,...t){const n=s.call(N(this),e,...t);return $.set(n,e.sort?e.sort():[e]),f(n)}:ie().includes(s)?function(...e){return s.apply(N(this),e),f(V.get(this))}:function(...e){return f(s.apply(N(this),e))}}function he(s){return typeof s=="function"?le(s):(s instanceof IDBTransaction&&oe(s),ne(s,ae())?new Proxy(s,M):s)}function f(s){if(s instanceof IDBRequest)return re(s);if(T.has(s))return T.get(s);const e=he(s);return e!==s&&(T.set(s,e),P.set(e,s)),e}const N=s=>P.get(s);function ue(s,e,{blocked:t,upgrade:n,blocking:a,terminated:r}={}){const i=indexedDB.open(s,e),o=f(i);return n&&i.addEventListener("upgradeneeded",c=>{n(f(i.result),c.oldVersion,c.newVersion,f(i.transaction),c)}),t&&i.addEventListener("blocked",c=>t(c.oldVersion,c.newVersion,c)),o.then(c=>{r&&c.addEventListener("close",()=>r()),a&&c.addEventListener("versionchange",l=>a(l.oldVersion,l.newVersion,l))}).catch(()=>{}),o}function de(s,{blocked:e}={}){const t=indexedDB.deleteDatabase(s);return e&&t.addEventListener("blocked",n=>e(n.oldVersion,n)),f(t).then(()=>{})}const fe=["get","getKey","getAll","getAllKeys","count"],pe=["put","add","delete","clear"],O=new Map;function F(s,e){if(!(s instanceof IDBDatabase&&!(e in s)&&typeof e=="string"))return;if(O.get(e))return O.get(e);const t=e.replace(/FromIndex$/,""),n=e!==t,a=pe.includes(t);if(!(t in(n?IDBIndex:IDBObjectStore).prototype)||!(a||fe.includes(t)))return;const r=async function(i,...o){const c=this.transaction(i,a?"readwrite":"readonly");let l=c.store;return n&&(l=l.index(o.shift())),(await Promise.all([l[t](...o),a&&c.done]))[0]};return O.set(e,r),r}ce(s=>({...s,get:(e,t,n)=>F(e,t)||s.get(e,t,n),has:(e,t)=>!!F(e,t)||s.has(e,t)}));try{self["workbox:expiration:7.0.0"]&&_()}catch{}const me="workbox-expiration",b="cache-entries",H=s=>{const e=new URL(s,location.href);return e.hash="",e.href};class we{constructor(e){this._db=null,this._cacheName=e}_upgradeDb(e){const t=e.createObjectStore(b,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&de(this._cacheName)}async setTimestamp(e,t){e=H(e);const n={url:e,timestamp:t,cacheName:this._cacheName,id:this._getId(e)},r=(await this.getDb()).transaction(b,"readwrite",{durability:"relaxed"});await r.store.put(n),await r.done}async getTimestamp(e){const n=await(await this.getDb()).get(b,this._getId(e));return n==null?void 0:n.timestamp}async expireEntries(e,t){const n=await this.getDb();let a=await n.transaction(b).store.index("timestamp").openCursor(null,"prev");const r=[];let i=0;for(;a;){const c=a.value;c.cacheName===this._cacheName&&(e&&c.timestamp=t?r.push(a.value):i++),a=await a.continue()}const o=[];for(const c of r)await n.delete(b,c.id),o.push(c.url);return o}_getId(e){return this._cacheName+"|"+H(e)}async getDb(){return this._db||(this._db=await ue(me,1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}}class ge{constructor(e,t={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=t.maxEntries,this._maxAgeSeconds=t.maxAgeSeconds,this._matchOptions=t.matchOptions,this._cacheName=e,this._timestampModel=new we(e)}async expireEntries(){if(this._isRunning){this._rerunRequested=!0;return}this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-this._maxAgeSeconds*1e3:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),n=await self.caches.open(this._cacheName);for(const a of t)await n.delete(a,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,q(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),n=Date.now()-this._maxAgeSeconds*1e3;return t!==void 0?t[d.prefix,s,d.suffix].filter(e=>e&&e.length>0).join("-"),_e=s=>{for(const e of Object.keys(d))s(e)},Q={updateDetails:s=>{_e(e=>{typeof s[e]=="string"&&(d[e]=s[e])})},getGoogleAnalyticsName:s=>s||A(d.googleAnalytics),getPrecacheName:s=>s||A(d.precache),getPrefix:()=>d.prefix,getRuntimeName:s=>s||A(d.runtime),getSuffix:()=>d.suffix},G=new Set;function ye(s){G.add(s)}class k{constructor(e={}){this.cachedResponseWillBeUsed=async({event:t,request:n,cacheName:a,cachedResponse:r})=>{if(!r)return null;const i=this._isResponseDateFresh(r),o=this._getCacheExpiration(a);q(o.expireEntries());const c=o.updateTimestamp(n.url);if(t)try{t.waitUntil(c)}catch{}return i?r:null},this.cacheDidUpdate=async({cacheName:t,request:n})=>{const a=this._getCacheExpiration(t);await a.updateTimestamp(n.url),await a.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&ye(()=>this.deleteCacheAndMetadata())}_getCacheExpiration(e){if(e===Q.getRuntimeName())throw new u("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new ge(e,this._config),this._cacheExpirations.set(e,t)),t}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(t===null)return!0;const n=Date.now();return t>=n-this._maxAgeSeconds*1e3}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),a=new Date(t).getTime();return isNaN(a)?null:a}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}}try{self["workbox:routing:7.0.0"]&&_()}catch{}const z="GET",D=s=>s&&typeof s=="object"?s:{handle:s};class p{constructor(e,t,n=z){this.handler=D(t),this.match=e,this.method=n}setCatchHandler(e){this.catchHandler=D(e)}}class L extends p{constructor(e,t,n){const a=({url:r})=>{const i=e.exec(r.href);if(i&&!(r.origin!==location.origin&&i.index!==0))return i.slice(1)};super(a,t,n)}}class be{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{request:t}=e,n=this.handleRequest({request:t,event:e});n&&e.respondWith(n)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&e.data.type==="CACHE_URLS"){const{payload:t}=e.data,n=Promise.all(t.urlsToCache.map(a=>{typeof a=="string"&&(a=[a]);const r=new Request(...a);return this.handleRequest({request:r,event:e})}));e.waitUntil(n),e.ports&&e.ports[0]&&n.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){const n=new URL(e.url,location.href);if(!n.protocol.startsWith("http"))return;const a=n.origin===location.origin,{params:r,route:i}=this.findMatchingRoute({event:t,request:e,sameOrigin:a,url:n});let o=i&&i.handler;const c=e.method;if(!o&&this._defaultHandlerMap.has(c)&&(o=this._defaultHandlerMap.get(c)),!o)return;let l;try{l=o.handle({url:n,request:e,event:t,params:r})}catch(h){l=Promise.reject(h)}const m=i&&i.catchHandler;return l instanceof Promise&&(this._catchHandler||m)&&(l=l.catch(async h=>{if(m)try{return await m.handle({url:n,request:e,event:t,params:r})}catch(I){I instanceof Error&&(h=I)}if(this._catchHandler)return this._catchHandler.handle({url:n,request:e,event:t});throw h})),l}findMatchingRoute({url:e,sameOrigin:t,request:n,event:a}){const r=this._routes.get(n.method)||[];for(const i of r){let o;const c=i.match({url:e,sameOrigin:t,request:n,event:a});if(c)return o=c,(Array.isArray(o)&&o.length===0||c.constructor===Object&&Object.keys(c).length===0||typeof c=="boolean")&&(o=void 0),{route:i,params:o}}return{}}setDefaultHandler(e,t=z){this._defaultHandlerMap.set(t,D(e))}setCatchHandler(e){this._catchHandler=D(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new u("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new u("unregister-route-route-not-registered")}}let C;const Ce=()=>(C||(C=new be,C.addFetchListener(),C.addCacheListener()),C);function E(s,e,t){let n;if(typeof s=="string"){const r=new URL(s,location.href),i=({url:o})=>o.href===r.href;n=new p(i,e,t)}else if(s instanceof RegExp)n=new L(s,e,t);else if(typeof s=="function")n=new p(s,e,t);else if(s instanceof p)n=s;else throw new u("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return Ce().registerRoute(n),n}function K(s,e){const t=new URL(s);for(const n of e)t.searchParams.delete(n);return t.href}async function xe(s,e,t,n){const a=K(e.url,t);if(e.url===a)return s.match(e,n);const r=Object.assign(Object.assign({},n),{ignoreSearch:!0}),i=await s.keys(e,r);for(const o of i){const c=K(o.url,t);if(a===c)return s.match(o,n)}}class Ee{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}async function Re(){for(const s of G)await s()}function De(s){return new Promise(e=>setTimeout(e,s))}try{self["workbox:strategies:7.0.0"]&&_()}catch{}function R(s){return typeof s=="string"?new Request(s):s}class ke{constructor(e,t){this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new Ee,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map;for(const n of this._plugins)this._pluginStateMap.set(n,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){const{event:t}=this;let n=R(e);if(n.mode==="navigate"&&t instanceof FetchEvent&&t.preloadResponse){const i=await t.preloadResponse;if(i)return i}const a=this.hasCallback("fetchDidFail")?n.clone():null;try{for(const i of this.iterateCallbacks("requestWillFetch"))n=await i({request:n.clone(),event:t})}catch(i){if(i instanceof Error)throw new u("plugin-error-request-will-fetch",{thrownErrorMessage:i.message})}const r=n.clone();try{let i;i=await fetch(n,n.mode==="navigate"?void 0:this._strategy.fetchOptions);for(const o of this.iterateCallbacks("fetchDidSucceed"))i=await o({event:t,request:r,response:i});return i}catch(i){throw a&&await this.runCallbacks("fetchDidFail",{error:i,event:t,originalRequest:a.clone(),request:r.clone()}),i}}async fetchAndCachePut(e){const t=await this.fetch(e),n=t.clone();return this.waitUntil(this.cachePut(e,n)),t}async cacheMatch(e){const t=R(e);let n;const{cacheName:a,matchOptions:r}=this._strategy,i=await this.getCacheKey(t,"read"),o=Object.assign(Object.assign({},r),{cacheName:a});n=await caches.match(i,o);for(const c of this.iterateCallbacks("cachedResponseWillBeUsed"))n=await c({cacheName:a,matchOptions:r,cachedResponse:n,request:i,event:this.event})||void 0;return n}async cachePut(e,t){const n=R(e);await De(0);const a=await this.getCacheKey(n,"write");if(!t)throw new u("cache-put-with-no-response",{url:te(a.url)});const r=await this._ensureResponseSafeToCache(t);if(!r)return!1;const{cacheName:i,matchOptions:o}=this._strategy,c=await self.caches.open(i),l=this.hasCallback("cacheDidUpdate"),m=l?await xe(c,a.clone(),["__WB_REVISION__"],o):null;try{await c.put(a,l?r.clone():r)}catch(h){if(h instanceof Error)throw h.name==="QuotaExceededError"&&await Re(),h}for(const h of this.iterateCallbacks("cacheDidUpdate"))await h({cacheName:i,oldResponse:m,newResponse:r.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){const n=`${e.url} | ${t}`;if(!this._cacheKeys[n]){let a=e;for(const r of this.iterateCallbacks("cacheKeyWillBeUsed"))a=R(await r({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[n]=a}return this._cacheKeys[n]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const n of this.iterateCallbacks(e))await n(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if(typeof t[e]=="function"){const n=this._pluginStateMap.get(t);yield r=>{const i=Object.assign(Object.assign({},r),{state:n});return t[e](i)}}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,n=!1;for(const a of this.iterateCallbacks("cacheWillUpdate"))if(t=await a({request:this.request,response:t,event:this.event})||void 0,n=!0,!t)break;return n||t&&t.status!==200&&(t=void 0),t}}class v{constructor(e={}){this.cacheName=Q.getRuntimeName(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});const t=e.event,n=typeof e.request=="string"?new Request(e.request):e.request,a="params"in e?e.params:void 0,r=new ke(this,{event:t,request:n,params:a}),i=this._getResponse(r,n,t),o=this._awaitComplete(i,r,n,t);return[i,o]}async _getResponse(e,t,n){await e.runCallbacks("handlerWillStart",{event:n,request:t});let a;try{if(a=await this._handle(t,e),!a||a.type==="error")throw new u("no-response",{url:t.url})}catch(r){if(r instanceof Error){for(const i of e.iterateCallbacks("handlerDidError"))if(a=await i({error:r,event:n,request:t}),a)break}if(!a)throw r}for(const r of e.iterateCallbacks("handlerWillRespond"))a=await r({event:n,request:t,response:a});return a}async _awaitComplete(e,t,n,a){let r,i;try{r=await e}catch{}try{await t.runCallbacks("handlerDidRespond",{event:a,request:n,response:r}),await t.doneWaiting()}catch(o){o instanceof Error&&(i=o)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:n,response:r,error:i}),t.destroy(),i)throw i}}class J extends v{async _handle(e,t){let n=await t.cacheMatch(e),a;if(!n)try{n=await t.fetchAndCachePut(e)}catch(r){r instanceof Error&&(a=r)}if(!n)throw new u("no-response",{url:e.url,error:a});return n}}const X={cacheWillUpdate:async({response:s})=>s.status===200||s.status===0?s:null};class Y extends v{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(X),this._networkTimeoutSeconds=e.networkTimeoutSeconds||0}async _handle(e,t){const n=[],a=[];let r;if(this._networkTimeoutSeconds){const{id:c,promise:l}=this._getTimeoutPromise({request:e,logs:n,handler:t});r=c,a.push(l)}const i=this._getNetworkPromise({timeoutId:r,request:e,logs:n,handler:t});a.push(i);const o=await t.waitUntil((async()=>await t.waitUntil(Promise.race(a))||await i)());if(!o)throw new u("no-response",{url:e.url});return o}_getTimeoutPromise({request:e,logs:t,handler:n}){let a;return{promise:new Promise(i=>{a=setTimeout(async()=>{i(await n.cacheMatch(e))},this._networkTimeoutSeconds*1e3)}),id:a}}async _getNetworkPromise({timeoutId:e,request:t,logs:n,handler:a}){let r,i;try{i=await a.fetchAndCachePut(t)}catch(o){o instanceof Error&&(r=o)}return e&&clearTimeout(e),(r||!i)&&(i=await a.cacheMatch(t)),i}}class Ie extends v{constructor(e={}){super(e),this.plugins.some(t=>"cacheWillUpdate"in t)||this.plugins.unshift(X)}async _handle(e,t){const n=t.fetchAndCachePut(e).catch(()=>{});t.waitUntil(n);let a=await t.cacheMatch(e),r;if(!a)try{a=await n}catch(i){i instanceof Error&&(r=i)}if(!a)throw new u("no-response",{url:e.url,error:r});return a}}self.__WB_DISABLE_DEV_LOGS=!0;const Te=new p(({request:s,sameOrigin:e})=>{const t=s.destination==="style"||s.destination==="script",n=/-[0-9a-f]{4,}\./i.test(s.url);return e&&t&&n},new Y({cacheName:"assets",networkTimeoutSeconds:5,plugins:[new x({statuses:[0,200]})]}));E(Te);const Ne=new p(({request:s,sameOrigin:e})=>{const t=!e,n=s.destination==="image",a=s.url.includes("/avatars/"),r=s.url.includes("/custom/_emojis"),i=s.url.includes("/emoji/");return t&&n&&(a||r||i)},new J({cacheName:"remote-images",plugins:[new k({maxEntries:50,maxAgeSeconds:3*24*60*60,purgeOnQuotaError:!0}),new x({statuses:[0,200]})]}));E(Ne);const Oe=new p(({request:s,sameOrigin:e})=>{const t=s.url.includes("/icons/");return e&&t},new J({cacheName:"icons",plugins:[new k({maxEntries:300,maxAgeSeconds:3*24*60*60,purgeOnQuotaError:!0}),new x({statuses:[0,200]})]}));E(Oe);const Ae=new L(/^https?:\/\/[^\/]+\/api\/v\d+\/(instance|custom_emojis|preferences|lists\/\d+|announcements)$/,new Ie({cacheName:"api-extended",plugins:[new k({maxAgeSeconds:24*60*60}),new x({statuses:[0,200]})]}));E(Ae);const Se=new L(/^https?:\/\/[^\/]+\/api\/v\d+\/(statuses\/\d+\/context)/,new Y({cacheName:"api",networkTimeoutSeconds:5,plugins:[new k({maxAgeSeconds:5*60}),new x({statuses:[0,200]})]}));E(Se);self.addEventListener("push",s=>{const{data:e}=s;if(e){const t=e.json();console.log("PUSH payload",t);const{access_token:n,title:a,body:r,icon:i,notification_id:o,notification_type:c,preferred_locale:l}=t;navigator.setAppBadge&&c==="mention"&&navigator.setAppBadge(1),s.waitUntil(self.registration.showNotification(a,{body:r,icon:i,dir:"auto",badge:"/logo-badge-72.png",lang:l,tag:o,timestamp:Date.now(),data:{access_token:n,notification_type:c}}))}});self.addEventListener("notificationclick",s=>{const e=s.notification;console.log("NOTIFICATION CLICK payload",e);const{badge:t,body:n,data:a,dir:r,icon:i,lang:o,tag:c,timestamp:l,title:m}=e,{access_token:h,notification_type:I}=a,y=`/#/notifications?id=${c}&access_token=${btoa(h)}`;s.waitUntil((async()=>{var U;const w=await self.clients.matchAll({type:"window",includeUncontrolled:!0});if(console.log("NOTIFICATION CLICK clients 1",w),w.length&&"navigate"in w[0]){console.log("NOTIFICATION CLICK clients 2",w);const g=w.find(j=>j.focused||j.visibilityState==="visible")||w[0];console.log("NOTIFICATION CLICK navigate",y),g?(console.log("NOTIFICATION CLICK postMessage",g),g.focus(),(U=g.postMessage)==null||U.call(g,{type:"notification",id:c,accessToken:h})):(console.log("NOTIFICATION CLICK openWindow",y),await self.clients.openWindow(y))}else console.log("NOTIFICATION CLICK openWindow",y),await self.clients.openWindow(y);await s.notification.close()})())}); +//# sourceMappingURL=sw.js.map diff --git a/sw.js.map b/sw.js.map new file mode 100644 index 0000000..4042ac6 --- /dev/null +++ b/sw.js.map @@ -0,0 +1 @@ +{"version":3,"file":"sw.mjs","sources":["../node_modules/workbox-core/_version.js","../node_modules/workbox-core/models/messages/messageGenerator.js","../node_modules/workbox-core/_private/WorkboxError.js","../node_modules/workbox-core/_private/getFriendlyURL.js","../node_modules/workbox-cacheable-response/_version.js","../node_modules/workbox-cacheable-response/CacheableResponse.js","../node_modules/workbox-cacheable-response/CacheableResponsePlugin.js","../node_modules/workbox-core/_private/dontWaitFor.js","../node_modules/idb/build/wrap-idb-value.js","../node_modules/idb/build/index.js","../node_modules/workbox-expiration/_version.js","../node_modules/workbox-expiration/models/CacheTimestampsModel.js","../node_modules/workbox-expiration/CacheExpiration.js","../node_modules/workbox-core/_private/cacheNames.js","../node_modules/workbox-core/models/quotaErrorCallbacks.js","../node_modules/workbox-core/registerQuotaErrorCallback.js","../node_modules/workbox-expiration/ExpirationPlugin.js","../node_modules/workbox-routing/_version.js","../node_modules/workbox-routing/utils/constants.js","../node_modules/workbox-routing/utils/normalizeHandler.js","../node_modules/workbox-routing/Route.js","../node_modules/workbox-routing/RegExpRoute.js","../node_modules/workbox-routing/Router.js","../node_modules/workbox-routing/utils/getOrCreateDefaultRouter.js","../node_modules/workbox-routing/registerRoute.js","../node_modules/workbox-core/_private/cacheMatchIgnoreParams.js","../node_modules/workbox-core/_private/Deferred.js","../node_modules/workbox-core/_private/executeQuotaErrorCallbacks.js","../node_modules/workbox-core/_private/timeout.js","../node_modules/workbox-strategies/_version.js","../node_modules/workbox-strategies/StrategyHandler.js","../node_modules/workbox-strategies/Strategy.js","../node_modules/workbox-strategies/CacheFirst.js","../node_modules/workbox-strategies/plugins/cacheOkAndOpaquePlugin.js","../node_modules/workbox-strategies/NetworkFirst.js","../node_modules/workbox-strategies/StaleWhileRevalidate.js","../public/sw.js"],"sourcesContent":["\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:core:7.0.0'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messages } from './messages.js';\nimport '../../_version.js';\nconst fallback = (code, ...args) => {\n let msg = code;\n if (args.length > 0) {\n msg += ` :: ${JSON.stringify(args)}`;\n }\n return msg;\n};\nconst generatorFunction = (code, details = {}) => {\n const message = messages[code];\n if (!message) {\n throw new Error(`Unable to find message for code '${code}'.`);\n }\n return message(details);\n};\nexport const messageGenerator = process.env.NODE_ENV === 'production' ? fallback : generatorFunction;\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { messageGenerator } from '../models/messages/messageGenerator.js';\nimport '../_version.js';\n/**\n * Workbox errors should be thrown with this class.\n * This allows use to ensure the type easily in tests,\n * helps developers identify errors from workbox\n * easily and allows use to optimise error\n * messages correctly.\n *\n * @private\n */\nclass WorkboxError extends Error {\n /**\n *\n * @param {string} errorCode The error code that\n * identifies this particular error.\n * @param {Object=} details Any relevant arguments\n * that will help developers identify issues should\n * be added as a key on the context object.\n */\n constructor(errorCode, details) {\n const message = messageGenerator(errorCode, details);\n super(message);\n this.name = errorCode;\n this.details = details;\n }\n}\nexport { WorkboxError };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst getFriendlyURL = (url) => {\n const urlObj = new URL(String(url), location.href);\n // See https://github.com/GoogleChrome/workbox/issues/2323\n // We want to include everything, except for the origin if it's same-origin.\n return urlObj.href.replace(new RegExp(`^${location.origin}`), '');\n};\nexport { getFriendlyURL };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:cacheable-response:7.0.0'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport './_version.js';\n/**\n * This class allows you to set up rules determining what\n * status codes and/or headers need to be present in order for a\n * [`Response`](https://developer.mozilla.org/en-US/docs/Web/API/Response)\n * to be considered cacheable.\n *\n * @memberof workbox-cacheable-response\n */\nclass CacheableResponse {\n /**\n * To construct a new CacheableResponse instance you must provide at least\n * one of the `config` properties.\n *\n * If both `statuses` and `headers` are specified, then both conditions must\n * be met for the `Response` to be considered cacheable.\n *\n * @param {Object} config\n * @param {Array} [config.statuses] One or more status codes that a\n * `Response` can have and be considered cacheable.\n * @param {Object} [config.headers] A mapping of header names\n * and expected values that a `Response` can have and be considered cacheable.\n * If multiple headers are provided, only one needs to be present.\n */\n constructor(config = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (!(config.statuses || config.headers)) {\n throw new WorkboxError('statuses-or-headers-required', {\n moduleName: 'workbox-cacheable-response',\n className: 'CacheableResponse',\n funcName: 'constructor',\n });\n }\n if (config.statuses) {\n assert.isArray(config.statuses, {\n moduleName: 'workbox-cacheable-response',\n className: 'CacheableResponse',\n funcName: 'constructor',\n paramName: 'config.statuses',\n });\n }\n if (config.headers) {\n assert.isType(config.headers, 'object', {\n moduleName: 'workbox-cacheable-response',\n className: 'CacheableResponse',\n funcName: 'constructor',\n paramName: 'config.headers',\n });\n }\n }\n this._statuses = config.statuses;\n this._headers = config.headers;\n }\n /**\n * Checks a response to see whether it's cacheable or not, based on this\n * object's configuration.\n *\n * @param {Response} response The response whose cacheability is being\n * checked.\n * @return {boolean} `true` if the `Response` is cacheable, and `false`\n * otherwise.\n */\n isResponseCacheable(response) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(response, Response, {\n moduleName: 'workbox-cacheable-response',\n className: 'CacheableResponse',\n funcName: 'isResponseCacheable',\n paramName: 'response',\n });\n }\n let cacheable = true;\n if (this._statuses) {\n cacheable = this._statuses.includes(response.status);\n }\n if (this._headers && cacheable) {\n cacheable = Object.keys(this._headers).some((headerName) => {\n return response.headers.get(headerName) === this._headers[headerName];\n });\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!cacheable) {\n logger.groupCollapsed(`The request for ` +\n `'${getFriendlyURL(response.url)}' returned a response that does ` +\n `not meet the criteria for being cached.`);\n logger.groupCollapsed(`View cacheability criteria here.`);\n logger.log(`Cacheable statuses: ` + JSON.stringify(this._statuses));\n logger.log(`Cacheable headers: ` + JSON.stringify(this._headers, null, 2));\n logger.groupEnd();\n const logFriendlyHeaders = {};\n response.headers.forEach((value, key) => {\n logFriendlyHeaders[key] = value;\n });\n logger.groupCollapsed(`View response status and headers here.`);\n logger.log(`Response status: ${response.status}`);\n logger.log(`Response headers: ` + JSON.stringify(logFriendlyHeaders, null, 2));\n logger.groupEnd();\n logger.groupCollapsed(`View full response details here.`);\n logger.log(response.headers);\n logger.log(response);\n logger.groupEnd();\n logger.groupEnd();\n }\n }\n return cacheable;\n }\n}\nexport { CacheableResponse };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { CacheableResponse, } from './CacheableResponse.js';\nimport './_version.js';\n/**\n * A class implementing the `cacheWillUpdate` lifecycle callback. This makes it\n * easier to add in cacheability checks to requests made via Workbox's built-in\n * strategies.\n *\n * @memberof workbox-cacheable-response\n */\nclass CacheableResponsePlugin {\n /**\n * To construct a new CacheableResponsePlugin instance you must provide at\n * least one of the `config` properties.\n *\n * If both `statuses` and `headers` are specified, then both conditions must\n * be met for the `Response` to be considered cacheable.\n *\n * @param {Object} config\n * @param {Array} [config.statuses] One or more status codes that a\n * `Response` can have and be considered cacheable.\n * @param {Object} [config.headers] A mapping of header names\n * and expected values that a `Response` can have and be considered cacheable.\n * If multiple headers are provided, only one needs to be present.\n */\n constructor(config) {\n /**\n * @param {Object} options\n * @param {Response} options.response\n * @return {Response|null}\n * @private\n */\n this.cacheWillUpdate = async ({ response }) => {\n if (this._cacheableResponse.isResponseCacheable(response)) {\n return response;\n }\n return null;\n };\n this._cacheableResponse = new CacheableResponse(config);\n }\n}\nexport { CacheableResponsePlugin };\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * A helper function that prevents a promise from being flagged as unused.\n *\n * @private\n **/\nexport function dontWaitFor(promise) {\n // Effective no-op.\n void promise.then(() => { });\n}\n","const instanceOfAny = (object, constructors) => constructors.some((c) => object instanceof c);\n\nlet idbProxyableTypes;\nlet cursorAdvanceMethods;\n// This is a function to prevent it throwing up in node environments.\nfunction getIdbProxyableTypes() {\n return (idbProxyableTypes ||\n (idbProxyableTypes = [\n IDBDatabase,\n IDBObjectStore,\n IDBIndex,\n IDBCursor,\n IDBTransaction,\n ]));\n}\n// This is a function to prevent it throwing up in node environments.\nfunction getCursorAdvanceMethods() {\n return (cursorAdvanceMethods ||\n (cursorAdvanceMethods = [\n IDBCursor.prototype.advance,\n IDBCursor.prototype.continue,\n IDBCursor.prototype.continuePrimaryKey,\n ]));\n}\nconst cursorRequestMap = new WeakMap();\nconst transactionDoneMap = new WeakMap();\nconst transactionStoreNamesMap = new WeakMap();\nconst transformCache = new WeakMap();\nconst reverseTransformCache = new WeakMap();\nfunction promisifyRequest(request) {\n const promise = new Promise((resolve, reject) => {\n const unlisten = () => {\n request.removeEventListener('success', success);\n request.removeEventListener('error', error);\n };\n const success = () => {\n resolve(wrap(request.result));\n unlisten();\n };\n const error = () => {\n reject(request.error);\n unlisten();\n };\n request.addEventListener('success', success);\n request.addEventListener('error', error);\n });\n promise\n .then((value) => {\n // Since cursoring reuses the IDBRequest (*sigh*), we cache it for later retrieval\n // (see wrapFunction).\n if (value instanceof IDBCursor) {\n cursorRequestMap.set(value, request);\n }\n // Catching to avoid \"Uncaught Promise exceptions\"\n })\n .catch(() => { });\n // This mapping exists in reverseTransformCache but doesn't doesn't exist in transformCache. This\n // is because we create many promises from a single IDBRequest.\n reverseTransformCache.set(promise, request);\n return promise;\n}\nfunction cacheDonePromiseForTransaction(tx) {\n // Early bail if we've already created a done promise for this transaction.\n if (transactionDoneMap.has(tx))\n return;\n const done = new Promise((resolve, reject) => {\n const unlisten = () => {\n tx.removeEventListener('complete', complete);\n tx.removeEventListener('error', error);\n tx.removeEventListener('abort', error);\n };\n const complete = () => {\n resolve();\n unlisten();\n };\n const error = () => {\n reject(tx.error || new DOMException('AbortError', 'AbortError'));\n unlisten();\n };\n tx.addEventListener('complete', complete);\n tx.addEventListener('error', error);\n tx.addEventListener('abort', error);\n });\n // Cache it for later retrieval.\n transactionDoneMap.set(tx, done);\n}\nlet idbProxyTraps = {\n get(target, prop, receiver) {\n if (target instanceof IDBTransaction) {\n // Special handling for transaction.done.\n if (prop === 'done')\n return transactionDoneMap.get(target);\n // Polyfill for objectStoreNames because of Edge.\n if (prop === 'objectStoreNames') {\n return target.objectStoreNames || transactionStoreNamesMap.get(target);\n }\n // Make tx.store return the only store in the transaction, or undefined if there are many.\n if (prop === 'store') {\n return receiver.objectStoreNames[1]\n ? undefined\n : receiver.objectStore(receiver.objectStoreNames[0]);\n }\n }\n // Else transform whatever we get back.\n return wrap(target[prop]);\n },\n set(target, prop, value) {\n target[prop] = value;\n return true;\n },\n has(target, prop) {\n if (target instanceof IDBTransaction &&\n (prop === 'done' || prop === 'store')) {\n return true;\n }\n return prop in target;\n },\n};\nfunction replaceTraps(callback) {\n idbProxyTraps = callback(idbProxyTraps);\n}\nfunction wrapFunction(func) {\n // Due to expected object equality (which is enforced by the caching in `wrap`), we\n // only create one new func per func.\n // Edge doesn't support objectStoreNames (booo), so we polyfill it here.\n if (func === IDBDatabase.prototype.transaction &&\n !('objectStoreNames' in IDBTransaction.prototype)) {\n return function (storeNames, ...args) {\n const tx = func.call(unwrap(this), storeNames, ...args);\n transactionStoreNamesMap.set(tx, storeNames.sort ? storeNames.sort() : [storeNames]);\n return wrap(tx);\n };\n }\n // Cursor methods are special, as the behaviour is a little more different to standard IDB. In\n // IDB, you advance the cursor and wait for a new 'success' on the IDBRequest that gave you the\n // cursor. It's kinda like a promise that can resolve with many values. That doesn't make sense\n // with real promises, so each advance methods returns a new promise for the cursor object, or\n // undefined if the end of the cursor has been reached.\n if (getCursorAdvanceMethods().includes(func)) {\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n func.apply(unwrap(this), args);\n return wrap(cursorRequestMap.get(this));\n };\n }\n return function (...args) {\n // Calling the original function with the proxy as 'this' causes ILLEGAL INVOCATION, so we use\n // the original object.\n return wrap(func.apply(unwrap(this), args));\n };\n}\nfunction transformCachableValue(value) {\n if (typeof value === 'function')\n return wrapFunction(value);\n // This doesn't return, it just creates a 'done' promise for the transaction,\n // which is later returned for transaction.done (see idbObjectHandler).\n if (value instanceof IDBTransaction)\n cacheDonePromiseForTransaction(value);\n if (instanceOfAny(value, getIdbProxyableTypes()))\n return new Proxy(value, idbProxyTraps);\n // Return the same value back if we're not going to transform it.\n return value;\n}\nfunction wrap(value) {\n // We sometimes generate multiple promises from a single IDBRequest (eg when cursoring), because\n // IDB is weird and a single IDBRequest can yield many responses, so these can't be cached.\n if (value instanceof IDBRequest)\n return promisifyRequest(value);\n // If we've already transformed this value before, reuse the transformed value.\n // This is faster, but it also provides object equality.\n if (transformCache.has(value))\n return transformCache.get(value);\n const newValue = transformCachableValue(value);\n // Not all types are transformed.\n // These may be primitive types, so they can't be WeakMap keys.\n if (newValue !== value) {\n transformCache.set(value, newValue);\n reverseTransformCache.set(newValue, value);\n }\n return newValue;\n}\nconst unwrap = (value) => reverseTransformCache.get(value);\n\nexport { reverseTransformCache as a, instanceOfAny as i, replaceTraps as r, unwrap as u, wrap as w };\n","import { w as wrap, r as replaceTraps } from './wrap-idb-value.js';\nexport { u as unwrap, w as wrap } from './wrap-idb-value.js';\n\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */\nfunction openDB(name, version, { blocked, upgrade, blocking, terminated } = {}) {\n const request = indexedDB.open(name, version);\n const openPromise = wrap(request);\n if (upgrade) {\n request.addEventListener('upgradeneeded', (event) => {\n upgrade(wrap(request.result), event.oldVersion, event.newVersion, wrap(request.transaction), event);\n });\n }\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event.newVersion, event));\n }\n openPromise\n .then((db) => {\n if (terminated)\n db.addEventListener('close', () => terminated());\n if (blocking) {\n db.addEventListener('versionchange', (event) => blocking(event.oldVersion, event.newVersion, event));\n }\n })\n .catch(() => { });\n return openPromise;\n}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */\nfunction deleteDB(name, { blocked } = {}) {\n const request = indexedDB.deleteDatabase(name);\n if (blocked) {\n request.addEventListener('blocked', (event) => blocked(\n // Casting due to https://github.com/microsoft/TypeScript-DOM-lib-generator/pull/1405\n event.oldVersion, event));\n }\n return wrap(request).then(() => undefined);\n}\n\nconst readMethods = ['get', 'getKey', 'getAll', 'getAllKeys', 'count'];\nconst writeMethods = ['put', 'add', 'delete', 'clear'];\nconst cachedMethods = new Map();\nfunction getMethod(target, prop) {\n if (!(target instanceof IDBDatabase &&\n !(prop in target) &&\n typeof prop === 'string')) {\n return;\n }\n if (cachedMethods.get(prop))\n return cachedMethods.get(prop);\n const targetFuncName = prop.replace(/FromIndex$/, '');\n const useIndex = prop !== targetFuncName;\n const isWrite = writeMethods.includes(targetFuncName);\n if (\n // Bail if the target doesn't exist on the target. Eg, getAll isn't in Edge.\n !(targetFuncName in (useIndex ? IDBIndex : IDBObjectStore).prototype) ||\n !(isWrite || readMethods.includes(targetFuncName))) {\n return;\n }\n const method = async function (storeName, ...args) {\n // isWrite ? 'readwrite' : undefined gzipps better, but fails in Edge :(\n const tx = this.transaction(storeName, isWrite ? 'readwrite' : 'readonly');\n let target = tx.store;\n if (useIndex)\n target = target.index(args.shift());\n // Must reject if op rejects.\n // If it's a write operation, must reject if tx.done rejects.\n // Must reject with op rejection first.\n // Must resolve with op value.\n // Must handle both promises (no unhandled rejections)\n return (await Promise.all([\n target[targetFuncName](...args),\n isWrite && tx.done,\n ]))[0];\n };\n cachedMethods.set(prop, method);\n return method;\n}\nreplaceTraps((oldTraps) => ({\n ...oldTraps,\n get: (target, prop, receiver) => getMethod(target, prop) || oldTraps.get(target, prop, receiver),\n has: (target, prop) => !!getMethod(target, prop) || oldTraps.has(target, prop),\n}));\n\nexport { deleteDB, openDB };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:expiration:7.0.0'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { openDB, deleteDB } from 'idb';\nimport '../_version.js';\nconst DB_NAME = 'workbox-expiration';\nconst CACHE_OBJECT_STORE = 'cache-entries';\nconst normalizeURL = (unNormalizedUrl) => {\n const url = new URL(unNormalizedUrl, location.href);\n url.hash = '';\n return url.href;\n};\n/**\n * Returns the timestamp model.\n *\n * @private\n */\nclass CacheTimestampsModel {\n /**\n *\n * @param {string} cacheName\n *\n * @private\n */\n constructor(cacheName) {\n this._db = null;\n this._cacheName = cacheName;\n }\n /**\n * Performs an upgrade of indexedDB.\n *\n * @param {IDBPDatabase} db\n *\n * @private\n */\n _upgradeDb(db) {\n // TODO(philipwalton): EdgeHTML doesn't support arrays as a keyPath, so we\n // have to use the `id` keyPath here and create our own values (a\n // concatenation of `url + cacheName`) instead of simply using\n // `keyPath: ['url', 'cacheName']`, which is supported in other browsers.\n const objStore = db.createObjectStore(CACHE_OBJECT_STORE, { keyPath: 'id' });\n // TODO(philipwalton): once we don't have to support EdgeHTML, we can\n // create a single index with the keyPath `['cacheName', 'timestamp']`\n // instead of doing both these indexes.\n objStore.createIndex('cacheName', 'cacheName', { unique: false });\n objStore.createIndex('timestamp', 'timestamp', { unique: false });\n }\n /**\n * Performs an upgrade of indexedDB and deletes deprecated DBs.\n *\n * @param {IDBPDatabase} db\n *\n * @private\n */\n _upgradeDbAndDeleteOldDbs(db) {\n this._upgradeDb(db);\n if (this._cacheName) {\n void deleteDB(this._cacheName);\n }\n }\n /**\n * @param {string} url\n * @param {number} timestamp\n *\n * @private\n */\n async setTimestamp(url, timestamp) {\n url = normalizeURL(url);\n const entry = {\n url,\n timestamp,\n cacheName: this._cacheName,\n // Creating an ID from the URL and cache name won't be necessary once\n // Edge switches to Chromium and all browsers we support work with\n // array keyPaths.\n id: this._getId(url),\n };\n const db = await this.getDb();\n const tx = db.transaction(CACHE_OBJECT_STORE, 'readwrite', {\n durability: 'relaxed',\n });\n await tx.store.put(entry);\n await tx.done;\n }\n /**\n * Returns the timestamp stored for a given URL.\n *\n * @param {string} url\n * @return {number | undefined}\n *\n * @private\n */\n async getTimestamp(url) {\n const db = await this.getDb();\n const entry = await db.get(CACHE_OBJECT_STORE, this._getId(url));\n return entry === null || entry === void 0 ? void 0 : entry.timestamp;\n }\n /**\n * Iterates through all the entries in the object store (from newest to\n * oldest) and removes entries once either `maxCount` is reached or the\n * entry's timestamp is less than `minTimestamp`.\n *\n * @param {number} minTimestamp\n * @param {number} maxCount\n * @return {Array}\n *\n * @private\n */\n async expireEntries(minTimestamp, maxCount) {\n const db = await this.getDb();\n let cursor = await db\n .transaction(CACHE_OBJECT_STORE)\n .store.index('timestamp')\n .openCursor(null, 'prev');\n const entriesToDelete = [];\n let entriesNotDeletedCount = 0;\n while (cursor) {\n const result = cursor.value;\n // TODO(philipwalton): once we can use a multi-key index, we\n // won't have to check `cacheName` here.\n if (result.cacheName === this._cacheName) {\n // Delete an entry if it's older than the max age or\n // if we already have the max number allowed.\n if ((minTimestamp && result.timestamp < minTimestamp) ||\n (maxCount && entriesNotDeletedCount >= maxCount)) {\n // TODO(philipwalton): we should be able to delete the\n // entry right here, but doing so causes an iteration\n // bug in Safari stable (fixed in TP). Instead we can\n // store the keys of the entries to delete, and then\n // delete the separate transactions.\n // https://github.com/GoogleChrome/workbox/issues/1978\n // cursor.delete();\n // We only need to return the URL, not the whole entry.\n entriesToDelete.push(cursor.value);\n }\n else {\n entriesNotDeletedCount++;\n }\n }\n cursor = await cursor.continue();\n }\n // TODO(philipwalton): once the Safari bug in the following issue is fixed,\n // we should be able to remove this loop and do the entry deletion in the\n // cursor loop above:\n // https://github.com/GoogleChrome/workbox/issues/1978\n const urlsDeleted = [];\n for (const entry of entriesToDelete) {\n await db.delete(CACHE_OBJECT_STORE, entry.id);\n urlsDeleted.push(entry.url);\n }\n return urlsDeleted;\n }\n /**\n * Takes a URL and returns an ID that will be unique in the object store.\n *\n * @param {string} url\n * @return {string}\n *\n * @private\n */\n _getId(url) {\n // Creating an ID from the URL and cache name won't be necessary once\n // Edge switches to Chromium and all browsers we support work with\n // array keyPaths.\n return this._cacheName + '|' + normalizeURL(url);\n }\n /**\n * Returns an open connection to the database.\n *\n * @private\n */\n async getDb() {\n if (!this._db) {\n this._db = await openDB(DB_NAME, 1, {\n upgrade: this._upgradeDbAndDeleteOldDbs.bind(this),\n });\n }\n return this._db;\n }\n}\nexport { CacheTimestampsModel };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { dontWaitFor } from 'workbox-core/_private/dontWaitFor.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { CacheTimestampsModel } from './models/CacheTimestampsModel.js';\nimport './_version.js';\n/**\n * The `CacheExpiration` class allows you define an expiration and / or\n * limit on the number of responses stored in a\n * [`Cache`](https://developer.mozilla.org/en-US/docs/Web/API/Cache).\n *\n * @memberof workbox-expiration\n */\nclass CacheExpiration {\n /**\n * To construct a new CacheExpiration instance you must provide at least\n * one of the `config` properties.\n *\n * @param {string} cacheName Name of the cache to apply restrictions to.\n * @param {Object} config\n * @param {number} [config.maxEntries] The maximum number of entries to cache.\n * Entries used the least will be removed as the maximum is reached.\n * @param {number} [config.maxAgeSeconds] The maximum age of an entry before\n * it's treated as stale and removed.\n * @param {Object} [config.matchOptions] The [`CacheQueryOptions`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/delete#Parameters)\n * that will be used when calling `delete()` on the cache.\n */\n constructor(cacheName, config = {}) {\n this._isRunning = false;\n this._rerunRequested = false;\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(cacheName, 'string', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n paramName: 'cacheName',\n });\n if (!(config.maxEntries || config.maxAgeSeconds)) {\n throw new WorkboxError('max-entries-or-age-required', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n });\n }\n if (config.maxEntries) {\n assert.isType(config.maxEntries, 'number', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n paramName: 'config.maxEntries',\n });\n }\n if (config.maxAgeSeconds) {\n assert.isType(config.maxAgeSeconds, 'number', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'constructor',\n paramName: 'config.maxAgeSeconds',\n });\n }\n }\n this._maxEntries = config.maxEntries;\n this._maxAgeSeconds = config.maxAgeSeconds;\n this._matchOptions = config.matchOptions;\n this._cacheName = cacheName;\n this._timestampModel = new CacheTimestampsModel(cacheName);\n }\n /**\n * Expires entries for the given cache and given criteria.\n */\n async expireEntries() {\n if (this._isRunning) {\n this._rerunRequested = true;\n return;\n }\n this._isRunning = true;\n const minTimestamp = this._maxAgeSeconds\n ? Date.now() - this._maxAgeSeconds * 1000\n : 0;\n const urlsExpired = await this._timestampModel.expireEntries(minTimestamp, this._maxEntries);\n // Delete URLs from the cache\n const cache = await self.caches.open(this._cacheName);\n for (const url of urlsExpired) {\n await cache.delete(url, this._matchOptions);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (urlsExpired.length > 0) {\n logger.groupCollapsed(`Expired ${urlsExpired.length} ` +\n `${urlsExpired.length === 1 ? 'entry' : 'entries'} and removed ` +\n `${urlsExpired.length === 1 ? 'it' : 'them'} from the ` +\n `'${this._cacheName}' cache.`);\n logger.log(`Expired the following ${urlsExpired.length === 1 ? 'URL' : 'URLs'}:`);\n urlsExpired.forEach((url) => logger.log(` ${url}`));\n logger.groupEnd();\n }\n else {\n logger.debug(`Cache expiration ran and found no entries to remove.`);\n }\n }\n this._isRunning = false;\n if (this._rerunRequested) {\n this._rerunRequested = false;\n dontWaitFor(this.expireEntries());\n }\n }\n /**\n * Update the timestamp for the given URL. This ensures the when\n * removing entries based on maximum entries, most recently used\n * is accurate or when expiring, the timestamp is up-to-date.\n *\n * @param {string} url\n */\n async updateTimestamp(url) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(url, 'string', {\n moduleName: 'workbox-expiration',\n className: 'CacheExpiration',\n funcName: 'updateTimestamp',\n paramName: 'url',\n });\n }\n await this._timestampModel.setTimestamp(url, Date.now());\n }\n /**\n * Can be used to check if a URL has expired or not before it's used.\n *\n * This requires a look up from IndexedDB, so can be slow.\n *\n * Note: This method will not remove the cached entry, call\n * `expireEntries()` to remove indexedDB and Cache entries.\n *\n * @param {string} url\n * @return {boolean}\n */\n async isURLExpired(url) {\n if (!this._maxAgeSeconds) {\n if (process.env.NODE_ENV !== 'production') {\n throw new WorkboxError(`expired-test-without-max-age`, {\n methodName: 'isURLExpired',\n paramName: 'maxAgeSeconds',\n });\n }\n return false;\n }\n else {\n const timestamp = await this._timestampModel.getTimestamp(url);\n const expireOlderThan = Date.now() - this._maxAgeSeconds * 1000;\n return timestamp !== undefined ? timestamp < expireOlderThan : true;\n }\n }\n /**\n * Removes the IndexedDB object store used to keep track of cache expiration\n * metadata.\n */\n async delete() {\n // Make sure we don't attempt another rerun if we're called in the middle of\n // a cache expiration.\n this._rerunRequested = false;\n await this._timestampModel.expireEntries(Infinity); // Expires all.\n }\n}\nexport { CacheExpiration };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nconst _cacheNameDetails = {\n googleAnalytics: 'googleAnalytics',\n precache: 'precache-v2',\n prefix: 'workbox',\n runtime: 'runtime',\n suffix: typeof registration !== 'undefined' ? registration.scope : '',\n};\nconst _createCacheName = (cacheName) => {\n return [_cacheNameDetails.prefix, cacheName, _cacheNameDetails.suffix]\n .filter((value) => value && value.length > 0)\n .join('-');\n};\nconst eachCacheNameDetail = (fn) => {\n for (const key of Object.keys(_cacheNameDetails)) {\n fn(key);\n }\n};\nexport const cacheNames = {\n updateDetails: (details) => {\n eachCacheNameDetail((key) => {\n if (typeof details[key] === 'string') {\n _cacheNameDetails[key] = details[key];\n }\n });\n },\n getGoogleAnalyticsName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.googleAnalytics);\n },\n getPrecacheName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.precache);\n },\n getPrefix: () => {\n return _cacheNameDetails.prefix;\n },\n getRuntimeName: (userCacheName) => {\n return userCacheName || _createCacheName(_cacheNameDetails.runtime);\n },\n getSuffix: () => {\n return _cacheNameDetails.suffix;\n },\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n// Callbacks to be executed whenever there's a quota error.\n// Can't change Function type right now.\n// eslint-disable-next-line @typescript-eslint/ban-types\nconst quotaErrorCallbacks = new Set();\nexport { quotaErrorCallbacks };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from './_private/logger.js';\nimport { assert } from './_private/assert.js';\nimport { quotaErrorCallbacks } from './models/quotaErrorCallbacks.js';\nimport './_version.js';\n/**\n * Adds a function to the set of quotaErrorCallbacks that will be executed if\n * there's a quota error.\n *\n * @param {Function} callback\n * @memberof workbox-core\n */\n// Can't change Function type\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction registerQuotaErrorCallback(callback) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(callback, 'function', {\n moduleName: 'workbox-core',\n funcName: 'register',\n paramName: 'callback',\n });\n }\n quotaErrorCallbacks.add(callback);\n if (process.env.NODE_ENV !== 'production') {\n logger.log('Registered a callback to respond to quota errors.', callback);\n }\n}\nexport { registerQuotaErrorCallback };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { dontWaitFor } from 'workbox-core/_private/dontWaitFor.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { registerQuotaErrorCallback } from 'workbox-core/registerQuotaErrorCallback.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { CacheExpiration } from './CacheExpiration.js';\nimport './_version.js';\n/**\n * This plugin can be used in a `workbox-strategy` to regularly enforce a\n * limit on the age and / or the number of cached requests.\n *\n * It can only be used with `workbox-strategy` instances that have a\n * [custom `cacheName` property set](/web/tools/workbox/guides/configure-workbox#custom_cache_names_in_strategies).\n * In other words, it can't be used to expire entries in strategy that uses the\n * default runtime cache name.\n *\n * Whenever a cached response is used or updated, this plugin will look\n * at the associated cache and remove any old or extra responses.\n *\n * When using `maxAgeSeconds`, responses may be used *once* after expiring\n * because the expiration clean up will not have occurred until *after* the\n * cached response has been used. If the response has a \"Date\" header, then\n * a light weight expiration check is performed and the response will not be\n * used immediately.\n *\n * When using `maxEntries`, the entry least-recently requested will be removed\n * from the cache first.\n *\n * @memberof workbox-expiration\n */\nclass ExpirationPlugin {\n /**\n * @param {ExpirationPluginOptions} config\n * @param {number} [config.maxEntries] The maximum number of entries to cache.\n * Entries used the least will be removed as the maximum is reached.\n * @param {number} [config.maxAgeSeconds] The maximum age of an entry before\n * it's treated as stale and removed.\n * @param {Object} [config.matchOptions] The [`CacheQueryOptions`](https://developer.mozilla.org/en-US/docs/Web/API/Cache/delete#Parameters)\n * that will be used when calling `delete()` on the cache.\n * @param {boolean} [config.purgeOnQuotaError] Whether to opt this cache in to\n * automatic deletion if the available storage quota has been exceeded.\n */\n constructor(config = {}) {\n /**\n * A \"lifecycle\" callback that will be triggered automatically by the\n * `workbox-strategies` handlers when a `Response` is about to be returned\n * from a [Cache](https://developer.mozilla.org/en-US/docs/Web/API/Cache) to\n * the handler. It allows the `Response` to be inspected for freshness and\n * prevents it from being used if the `Response`'s `Date` header value is\n * older than the configured `maxAgeSeconds`.\n *\n * @param {Object} options\n * @param {string} options.cacheName Name of the cache the response is in.\n * @param {Response} options.cachedResponse The `Response` object that's been\n * read from a cache and whose freshness should be checked.\n * @return {Response} Either the `cachedResponse`, if it's\n * fresh, or `null` if the `Response` is older than `maxAgeSeconds`.\n *\n * @private\n */\n this.cachedResponseWillBeUsed = async ({ event, request, cacheName, cachedResponse, }) => {\n if (!cachedResponse) {\n return null;\n }\n const isFresh = this._isResponseDateFresh(cachedResponse);\n // Expire entries to ensure that even if the expiration date has\n // expired, it'll only be used once.\n const cacheExpiration = this._getCacheExpiration(cacheName);\n dontWaitFor(cacheExpiration.expireEntries());\n // Update the metadata for the request URL to the current timestamp,\n // but don't `await` it as we don't want to block the response.\n const updateTimestampDone = cacheExpiration.updateTimestamp(request.url);\n if (event) {\n try {\n event.waitUntil(updateTimestampDone);\n }\n catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n // The event may not be a fetch event; only log the URL if it is.\n if ('request' in event) {\n logger.warn(`Unable to ensure service worker stays alive when ` +\n `updating cache entry for ` +\n `'${getFriendlyURL(event.request.url)}'.`);\n }\n }\n }\n }\n return isFresh ? cachedResponse : null;\n };\n /**\n * A \"lifecycle\" callback that will be triggered automatically by the\n * `workbox-strategies` handlers when an entry is added to a cache.\n *\n * @param {Object} options\n * @param {string} options.cacheName Name of the cache that was updated.\n * @param {string} options.request The Request for the cached entry.\n *\n * @private\n */\n this.cacheDidUpdate = async ({ cacheName, request, }) => {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(cacheName, 'string', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'cacheDidUpdate',\n paramName: 'cacheName',\n });\n assert.isInstance(request, Request, {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'cacheDidUpdate',\n paramName: 'request',\n });\n }\n const cacheExpiration = this._getCacheExpiration(cacheName);\n await cacheExpiration.updateTimestamp(request.url);\n await cacheExpiration.expireEntries();\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!(config.maxEntries || config.maxAgeSeconds)) {\n throw new WorkboxError('max-entries-or-age-required', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'constructor',\n });\n }\n if (config.maxEntries) {\n assert.isType(config.maxEntries, 'number', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'constructor',\n paramName: 'config.maxEntries',\n });\n }\n if (config.maxAgeSeconds) {\n assert.isType(config.maxAgeSeconds, 'number', {\n moduleName: 'workbox-expiration',\n className: 'Plugin',\n funcName: 'constructor',\n paramName: 'config.maxAgeSeconds',\n });\n }\n }\n this._config = config;\n this._maxAgeSeconds = config.maxAgeSeconds;\n this._cacheExpirations = new Map();\n if (config.purgeOnQuotaError) {\n registerQuotaErrorCallback(() => this.deleteCacheAndMetadata());\n }\n }\n /**\n * A simple helper method to return a CacheExpiration instance for a given\n * cache name.\n *\n * @param {string} cacheName\n * @return {CacheExpiration}\n *\n * @private\n */\n _getCacheExpiration(cacheName) {\n if (cacheName === cacheNames.getRuntimeName()) {\n throw new WorkboxError('expire-custom-caches-only');\n }\n let cacheExpiration = this._cacheExpirations.get(cacheName);\n if (!cacheExpiration) {\n cacheExpiration = new CacheExpiration(cacheName, this._config);\n this._cacheExpirations.set(cacheName, cacheExpiration);\n }\n return cacheExpiration;\n }\n /**\n * @param {Response} cachedResponse\n * @return {boolean}\n *\n * @private\n */\n _isResponseDateFresh(cachedResponse) {\n if (!this._maxAgeSeconds) {\n // We aren't expiring by age, so return true, it's fresh\n return true;\n }\n // Check if the 'date' header will suffice a quick expiration check.\n // See https://github.com/GoogleChromeLabs/sw-toolbox/issues/164 for\n // discussion.\n const dateHeaderTimestamp = this._getDateHeaderTimestamp(cachedResponse);\n if (dateHeaderTimestamp === null) {\n // Unable to parse date, so assume it's fresh.\n return true;\n }\n // If we have a valid headerTime, then our response is fresh iff the\n // headerTime plus maxAgeSeconds is greater than the current time.\n const now = Date.now();\n return dateHeaderTimestamp >= now - this._maxAgeSeconds * 1000;\n }\n /**\n * This method will extract the data header and parse it into a useful\n * value.\n *\n * @param {Response} cachedResponse\n * @return {number|null}\n *\n * @private\n */\n _getDateHeaderTimestamp(cachedResponse) {\n if (!cachedResponse.headers.has('date')) {\n return null;\n }\n const dateHeader = cachedResponse.headers.get('date');\n const parsedDate = new Date(dateHeader);\n const headerTime = parsedDate.getTime();\n // If the Date header was invalid for some reason, parsedDate.getTime()\n // will return NaN.\n if (isNaN(headerTime)) {\n return null;\n }\n return headerTime;\n }\n /**\n * This is a helper method that performs two operations:\n *\n * - Deletes *all* the underlying Cache instances associated with this plugin\n * instance, by calling caches.delete() on your behalf.\n * - Deletes the metadata from IndexedDB used to keep track of expiration\n * details for each Cache instance.\n *\n * When using cache expiration, calling this method is preferable to calling\n * `caches.delete()` directly, since this will ensure that the IndexedDB\n * metadata is also cleanly removed and open IndexedDB instances are deleted.\n *\n * Note that if you're *not* using cache expiration for a given cache, calling\n * `caches.delete()` and passing in the cache's name should be sufficient.\n * There is no Workbox-specific method needed for cleanup in that case.\n */\n async deleteCacheAndMetadata() {\n // Do this one at a time instead of all at once via `Promise.all()` to\n // reduce the chance of inconsistency if a promise rejects.\n for (const [cacheName, cacheExpiration] of this._cacheExpirations) {\n await self.caches.delete(cacheName);\n await cacheExpiration.delete();\n }\n // Reset this._cacheExpirations to its initial state.\n this._cacheExpirations = new Map();\n }\n}\nexport { ExpirationPlugin };\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:routing:7.0.0'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * The default HTTP method, 'GET', used when there's no specific method\n * configured for a route.\n *\n * @type {string}\n *\n * @private\n */\nexport const defaultMethod = 'GET';\n/**\n * The list of valid HTTP methods associated with requests that could be routed.\n *\n * @type {Array}\n *\n * @private\n */\nexport const validMethods = [\n 'DELETE',\n 'GET',\n 'HEAD',\n 'PATCH',\n 'POST',\n 'PUT',\n];\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport '../_version.js';\n/**\n * @param {function()|Object} handler Either a function, or an object with a\n * 'handle' method.\n * @return {Object} An object with a handle method.\n *\n * @private\n */\nexport const normalizeHandler = (handler) => {\n if (handler && typeof handler === 'object') {\n if (process.env.NODE_ENV !== 'production') {\n assert.hasMethod(handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler',\n });\n }\n return handler;\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(handler, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'handler',\n });\n }\n return { handle: handler };\n }\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { defaultMethod, validMethods } from './utils/constants.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport './_version.js';\n/**\n * A `Route` consists of a pair of callback functions, \"match\" and \"handler\".\n * The \"match\" callback determine if a route should be used to \"handle\" a\n * request by returning a non-falsy value if it can. The \"handler\" callback\n * is called when there is a match and should return a Promise that resolves\n * to a `Response`.\n *\n * @memberof workbox-routing\n */\nclass Route {\n /**\n * Constructor for Route class.\n *\n * @param {workbox-routing~matchCallback} match\n * A callback function that determines whether the route matches a given\n * `fetch` event by returning a non-falsy value.\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n constructor(match, handler, method = defaultMethod) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(match, 'function', {\n moduleName: 'workbox-routing',\n className: 'Route',\n funcName: 'constructor',\n paramName: 'match',\n });\n if (method) {\n assert.isOneOf(method, validMethods, { paramName: 'method' });\n }\n }\n // These values are referenced directly by Router so cannot be\n // altered by minificaton.\n this.handler = normalizeHandler(handler);\n this.match = match;\n this.method = method;\n }\n /**\n *\n * @param {workbox-routing-handlerCallback} handler A callback\n * function that returns a Promise resolving to a Response\n */\n setCatchHandler(handler) {\n this.catchHandler = normalizeHandler(handler);\n }\n}\nexport { Route };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { Route } from './Route.js';\nimport './_version.js';\n/**\n * RegExpRoute makes it easy to create a regular expression based\n * {@link workbox-routing.Route}.\n *\n * For same-origin requests the RegExp only needs to match part of the URL. For\n * requests against third-party servers, you must define a RegExp that matches\n * the start of the URL.\n *\n * @memberof workbox-routing\n * @extends workbox-routing.Route\n */\nclass RegExpRoute extends Route {\n /**\n * If the regular expression contains\n * [capture groups]{@link https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp#grouping-back-references},\n * the captured values will be passed to the\n * {@link workbox-routing~handlerCallback} `params`\n * argument.\n *\n * @param {RegExp} regExp The regular expression to match against URLs.\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n */\n constructor(regExp, handler, method) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(regExp, RegExp, {\n moduleName: 'workbox-routing',\n className: 'RegExpRoute',\n funcName: 'constructor',\n paramName: 'pattern',\n });\n }\n const match = ({ url }) => {\n const result = regExp.exec(url.href);\n // Return immediately if there's no match.\n if (!result) {\n return;\n }\n // Require that the match start at the first character in the URL string\n // if it's a cross-origin request.\n // See https://github.com/GoogleChrome/workbox/issues/281 for the context\n // behind this behavior.\n if (url.origin !== location.origin && result.index !== 0) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`The regular expression '${regExp.toString()}' only partially matched ` +\n `against the cross-origin URL '${url.toString()}'. RegExpRoute's will only ` +\n `handle cross-origin requests if they match the entire URL.`);\n }\n return;\n }\n // If the route matches, but there aren't any capture groups defined, then\n // this will return [], which is truthy and therefore sufficient to\n // indicate a match.\n // If there are capture groups, then it will return their values.\n return result.slice(1);\n };\n super(match, handler, method);\n }\n}\nexport { RegExpRoute };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { defaultMethod } from './utils/constants.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { normalizeHandler } from './utils/normalizeHandler.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport './_version.js';\n/**\n * The Router can be used to process a `FetchEvent` using one or more\n * {@link workbox-routing.Route}, responding with a `Response` if\n * a matching route exists.\n *\n * If no route matches a given a request, the Router will use a \"default\"\n * handler if one is defined.\n *\n * Should the matching Route throw an error, the Router will use a \"catch\"\n * handler if one is defined to gracefully deal with issues and respond with a\n * Request.\n *\n * If a request matches multiple routes, the **earliest** registered route will\n * be used to respond to the request.\n *\n * @memberof workbox-routing\n */\nclass Router {\n /**\n * Initializes a new Router.\n */\n constructor() {\n this._routes = new Map();\n this._defaultHandlerMap = new Map();\n }\n /**\n * @return {Map>} routes A `Map` of HTTP\n * method name ('GET', etc.) to an array of all the corresponding `Route`\n * instances that are registered.\n */\n get routes() {\n return this._routes;\n }\n /**\n * Adds a fetch event listener to respond to events when a route matches\n * the event's request.\n */\n addFetchListener() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('fetch', ((event) => {\n const { request } = event;\n const responsePromise = this.handleRequest({ request, event });\n if (responsePromise) {\n event.respondWith(responsePromise);\n }\n }));\n }\n /**\n * Adds a message event listener for URLs to cache from the window.\n * This is useful to cache resources loaded on the page prior to when the\n * service worker started controlling it.\n *\n * The format of the message data sent from the window should be as follows.\n * Where the `urlsToCache` array may consist of URL strings or an array of\n * URL string + `requestInit` object (the same as you'd pass to `fetch()`).\n *\n * ```\n * {\n * type: 'CACHE_URLS',\n * payload: {\n * urlsToCache: [\n * './script1.js',\n * './script2.js',\n * ['./script3.js', {mode: 'no-cors'}],\n * ],\n * },\n * }\n * ```\n */\n addCacheListener() {\n // See https://github.com/Microsoft/TypeScript/issues/28357#issuecomment-436484705\n self.addEventListener('message', ((event) => {\n // event.data is type 'any'\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (event.data && event.data.type === 'CACHE_URLS') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const { payload } = event.data;\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Caching URLs from the window`, payload.urlsToCache);\n }\n const requestPromises = Promise.all(payload.urlsToCache.map((entry) => {\n if (typeof entry === 'string') {\n entry = [entry];\n }\n const request = new Request(...entry);\n return this.handleRequest({ request, event });\n // TODO(philipwalton): TypeScript errors without this typecast for\n // some reason (probably a bug). The real type here should work but\n // doesn't: `Array | undefined>`.\n })); // TypeScript\n event.waitUntil(requestPromises);\n // If a MessageChannel was used, reply to the message on success.\n if (event.ports && event.ports[0]) {\n void requestPromises.then(() => event.ports[0].postMessage(true));\n }\n }\n }));\n }\n /**\n * Apply the routing rules to a FetchEvent object to get a Response from an\n * appropriate Route's handler.\n *\n * @param {Object} options\n * @param {Request} options.request The request to handle.\n * @param {ExtendableEvent} options.event The event that triggered the\n * request.\n * @return {Promise|undefined} A promise is returned if a\n * registered route can handle the request. If there is no matching\n * route and there's no `defaultHandler`, `undefined` is returned.\n */\n handleRequest({ request, event, }) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'handleRequest',\n paramName: 'options.request',\n });\n }\n const url = new URL(request.url, location.href);\n if (!url.protocol.startsWith('http')) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Workbox Router only supports URLs that start with 'http'.`);\n }\n return;\n }\n const sameOrigin = url.origin === location.origin;\n const { params, route } = this.findMatchingRoute({\n event,\n request,\n sameOrigin,\n url,\n });\n let handler = route && route.handler;\n const debugMessages = [];\n if (process.env.NODE_ENV !== 'production') {\n if (handler) {\n debugMessages.push([`Found a route to handle this request:`, route]);\n if (params) {\n debugMessages.push([\n `Passing the following params to the route's handler:`,\n params,\n ]);\n }\n }\n }\n // If we don't have a handler because there was no matching route, then\n // fall back to defaultHandler if that's defined.\n const method = request.method;\n if (!handler && this._defaultHandlerMap.has(method)) {\n if (process.env.NODE_ENV !== 'production') {\n debugMessages.push(`Failed to find a matching route. Falling ` +\n `back to the default handler for ${method}.`);\n }\n handler = this._defaultHandlerMap.get(method);\n }\n if (!handler) {\n if (process.env.NODE_ENV !== 'production') {\n // No handler so Workbox will do nothing. If logs is set of debug\n // i.e. verbose, we should print out this information.\n logger.debug(`No route found for: ${getFriendlyURL(url)}`);\n }\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // We have a handler, meaning Workbox is going to handle the route.\n // print the routing details to the console.\n logger.groupCollapsed(`Router is responding to: ${getFriendlyURL(url)}`);\n debugMessages.forEach((msg) => {\n if (Array.isArray(msg)) {\n logger.log(...msg);\n }\n else {\n logger.log(msg);\n }\n });\n logger.groupEnd();\n }\n // Wrap in try and catch in case the handle method throws a synchronous\n // error. It should still callback to the catch handler.\n let responsePromise;\n try {\n responsePromise = handler.handle({ url, request, event, params });\n }\n catch (err) {\n responsePromise = Promise.reject(err);\n }\n // Get route's catch handler, if it exists\n const catchHandler = route && route.catchHandler;\n if (responsePromise instanceof Promise &&\n (this._catchHandler || catchHandler)) {\n responsePromise = responsePromise.catch(async (err) => {\n // If there's a route catch handler, process that first\n if (catchHandler) {\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(`Error thrown when responding to: ` +\n ` ${getFriendlyURL(url)}. Falling back to route's Catch Handler.`);\n logger.error(`Error thrown by:`, route);\n logger.error(err);\n logger.groupEnd();\n }\n try {\n return await catchHandler.handle({ url, request, event, params });\n }\n catch (catchErr) {\n if (catchErr instanceof Error) {\n err = catchErr;\n }\n }\n }\n if (this._catchHandler) {\n if (process.env.NODE_ENV !== 'production') {\n // Still include URL here as it will be async from the console group\n // and may not make sense without the URL\n logger.groupCollapsed(`Error thrown when responding to: ` +\n ` ${getFriendlyURL(url)}. Falling back to global Catch Handler.`);\n logger.error(`Error thrown by:`, route);\n logger.error(err);\n logger.groupEnd();\n }\n return this._catchHandler.handle({ url, request, event });\n }\n throw err;\n });\n }\n return responsePromise;\n }\n /**\n * Checks a request and URL (and optionally an event) against the list of\n * registered routes, and if there's a match, returns the corresponding\n * route along with any params generated by the match.\n *\n * @param {Object} options\n * @param {URL} options.url\n * @param {boolean} options.sameOrigin The result of comparing `url.origin`\n * against the current origin.\n * @param {Request} options.request The request to match.\n * @param {Event} options.event The corresponding event.\n * @return {Object} An object with `route` and `params` properties.\n * They are populated if a matching route was found or `undefined`\n * otherwise.\n */\n findMatchingRoute({ url, sameOrigin, request, event, }) {\n const routes = this._routes.get(request.method) || [];\n for (const route of routes) {\n let params;\n // route.match returns type any, not possible to change right now.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const matchResult = route.match({ url, sameOrigin, request, event });\n if (matchResult) {\n if (process.env.NODE_ENV !== 'production') {\n // Warn developers that using an async matchCallback is almost always\n // not the right thing to do.\n if (matchResult instanceof Promise) {\n logger.warn(`While routing ${getFriendlyURL(url)}, an async ` +\n `matchCallback function was used. Please convert the ` +\n `following route to use a synchronous matchCallback function:`, route);\n }\n }\n // See https://github.com/GoogleChrome/workbox/issues/2079\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n params = matchResult;\n if (Array.isArray(params) && params.length === 0) {\n // Instead of passing an empty array in as params, use undefined.\n params = undefined;\n }\n else if (matchResult.constructor === Object && // eslint-disable-line\n Object.keys(matchResult).length === 0) {\n // Instead of passing an empty object in as params, use undefined.\n params = undefined;\n }\n else if (typeof matchResult === 'boolean') {\n // For the boolean value true (rather than just something truth-y),\n // don't set params.\n // See https://github.com/GoogleChrome/workbox/pull/2134#issuecomment-513924353\n params = undefined;\n }\n // Return early if have a match.\n return { route, params };\n }\n }\n // If no match was found above, return and empty object.\n return {};\n }\n /**\n * Define a default `handler` that's called when no routes explicitly\n * match the incoming request.\n *\n * Each HTTP method ('GET', 'POST', etc.) gets its own default handler.\n *\n * Without a default handler, unmatched requests will go against the\n * network as if there were no service worker present.\n *\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n * @param {string} [method='GET'] The HTTP method to associate with this\n * default handler. Each method has its own default.\n */\n setDefaultHandler(handler, method = defaultMethod) {\n this._defaultHandlerMap.set(method, normalizeHandler(handler));\n }\n /**\n * If a Route throws an error while handling a request, this `handler`\n * will be called and given a chance to provide a response.\n *\n * @param {workbox-routing~handlerCallback} handler A callback\n * function that returns a Promise resulting in a Response.\n */\n setCatchHandler(handler) {\n this._catchHandler = normalizeHandler(handler);\n }\n /**\n * Registers a route with the router.\n *\n * @param {workbox-routing.Route} route The route to register.\n */\n registerRoute(route) {\n if (process.env.NODE_ENV !== 'production') {\n assert.isType(route, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.hasMethod(route, 'match', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.isType(route.handler, 'object', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route',\n });\n assert.hasMethod(route.handler, 'handle', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.handler',\n });\n assert.isType(route.method, 'string', {\n moduleName: 'workbox-routing',\n className: 'Router',\n funcName: 'registerRoute',\n paramName: 'route.method',\n });\n }\n if (!this._routes.has(route.method)) {\n this._routes.set(route.method, []);\n }\n // Give precedence to all of the earlier routes by adding this additional\n // route to the end of the array.\n this._routes.get(route.method).push(route);\n }\n /**\n * Unregisters a route with the router.\n *\n * @param {workbox-routing.Route} route The route to unregister.\n */\n unregisterRoute(route) {\n if (!this._routes.has(route.method)) {\n throw new WorkboxError('unregister-route-but-not-found-with-method', {\n method: route.method,\n });\n }\n const routeIndex = this._routes.get(route.method).indexOf(route);\n if (routeIndex > -1) {\n this._routes.get(route.method).splice(routeIndex, 1);\n }\n else {\n throw new WorkboxError('unregister-route-route-not-registered');\n }\n }\n}\nexport { Router };\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { Router } from '../Router.js';\nimport '../_version.js';\nlet defaultRouter;\n/**\n * Creates a new, singleton Router instance if one does not exist. If one\n * does already exist, that instance is returned.\n *\n * @private\n * @return {Router}\n */\nexport const getOrCreateDefaultRouter = () => {\n if (!defaultRouter) {\n defaultRouter = new Router();\n // The helpers that use the default Router assume these listeners exist.\n defaultRouter.addFetchListener();\n defaultRouter.addCacheListener();\n }\n return defaultRouter;\n};\n","/*\n Copyright 2019 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Route } from './Route.js';\nimport { RegExpRoute } from './RegExpRoute.js';\nimport { getOrCreateDefaultRouter } from './utils/getOrCreateDefaultRouter.js';\nimport './_version.js';\n/**\n * Easily register a RegExp, string, or function with a caching\n * strategy to a singleton Router instance.\n *\n * This method will generate a Route for you if needed and\n * call {@link workbox-routing.Router#registerRoute}.\n *\n * @param {RegExp|string|workbox-routing.Route~matchCallback|workbox-routing.Route} capture\n * If the capture param is a `Route`, all other arguments will be ignored.\n * @param {workbox-routing~handlerCallback} [handler] A callback\n * function that returns a Promise resulting in a Response. This parameter\n * is required if `capture` is not a `Route` object.\n * @param {string} [method='GET'] The HTTP method to match the Route\n * against.\n * @return {workbox-routing.Route} The generated `Route`.\n *\n * @memberof workbox-routing\n */\nfunction registerRoute(capture, handler, method) {\n let route;\n if (typeof capture === 'string') {\n const captureUrl = new URL(capture, location.href);\n if (process.env.NODE_ENV !== 'production') {\n if (!(capture.startsWith('/') || capture.startsWith('http'))) {\n throw new WorkboxError('invalid-string', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture',\n });\n }\n // We want to check if Express-style wildcards are in the pathname only.\n // TODO: Remove this log message in v4.\n const valueToCheck = capture.startsWith('http')\n ? captureUrl.pathname\n : capture;\n // See https://github.com/pillarjs/path-to-regexp#parameters\n const wildcards = '[*:?+]';\n if (new RegExp(`${wildcards}`).exec(valueToCheck)) {\n logger.debug(`The '$capture' parameter contains an Express-style wildcard ` +\n `character (${wildcards}). Strings are now always interpreted as ` +\n `exact matches; use a RegExp for partial or wildcard matches.`);\n }\n }\n const matchCallback = ({ url }) => {\n if (process.env.NODE_ENV !== 'production') {\n if (url.pathname === captureUrl.pathname &&\n url.origin !== captureUrl.origin) {\n logger.debug(`${capture} only partially matches the cross-origin URL ` +\n `${url.toString()}. This route will only handle cross-origin requests ` +\n `if they match the entire URL.`);\n }\n }\n return url.href === captureUrl.href;\n };\n // If `capture` is a string then `handler` and `method` must be present.\n route = new Route(matchCallback, handler, method);\n }\n else if (capture instanceof RegExp) {\n // If `capture` is a `RegExp` then `handler` and `method` must be present.\n route = new RegExpRoute(capture, handler, method);\n }\n else if (typeof capture === 'function') {\n // If `capture` is a function then `handler` and `method` must be present.\n route = new Route(capture, handler, method);\n }\n else if (capture instanceof Route) {\n route = capture;\n }\n else {\n throw new WorkboxError('unsupported-route-type', {\n moduleName: 'workbox-routing',\n funcName: 'registerRoute',\n paramName: 'capture',\n });\n }\n const defaultRouter = getOrCreateDefaultRouter();\n defaultRouter.registerRoute(route);\n return route;\n}\nexport { registerRoute };\n","/*\n Copyright 2020 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nfunction stripParams(fullURL, ignoreParams) {\n const strippedURL = new URL(fullURL);\n for (const param of ignoreParams) {\n strippedURL.searchParams.delete(param);\n }\n return strippedURL.href;\n}\n/**\n * Matches an item in the cache, ignoring specific URL params. This is similar\n * to the `ignoreSearch` option, but it allows you to ignore just specific\n * params (while continuing to match on the others).\n *\n * @private\n * @param {Cache} cache\n * @param {Request} request\n * @param {Object} matchOptions\n * @param {Array} ignoreParams\n * @return {Promise}\n */\nasync function cacheMatchIgnoreParams(cache, request, ignoreParams, matchOptions) {\n const strippedRequestURL = stripParams(request.url, ignoreParams);\n // If the request doesn't include any ignored params, match as normal.\n if (request.url === strippedRequestURL) {\n return cache.match(request, matchOptions);\n }\n // Otherwise, match by comparing keys\n const keysOptions = Object.assign(Object.assign({}, matchOptions), { ignoreSearch: true });\n const cacheKeys = await cache.keys(request, keysOptions);\n for (const cacheKey of cacheKeys) {\n const strippedCacheKeyURL = stripParams(cacheKey.url, ignoreParams);\n if (strippedRequestURL === strippedCacheKeyURL) {\n return cache.match(cacheKey, matchOptions);\n }\n }\n return;\n}\nexport { cacheMatchIgnoreParams };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * The Deferred class composes Promises in a way that allows for them to be\n * resolved or rejected from outside the constructor. In most cases promises\n * should be used directly, but Deferreds can be necessary when the logic to\n * resolve a promise must be separate.\n *\n * @private\n */\nclass Deferred {\n /**\n * Creates a promise and exposes its resolve and reject functions as methods.\n */\n constructor() {\n this.promise = new Promise((resolve, reject) => {\n this.resolve = resolve;\n this.reject = reject;\n });\n }\n}\nexport { Deferred };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { logger } from '../_private/logger.js';\nimport { quotaErrorCallbacks } from '../models/quotaErrorCallbacks.js';\nimport '../_version.js';\n/**\n * Runs all of the callback functions, one at a time sequentially, in the order\n * in which they were registered.\n *\n * @memberof workbox-core\n * @private\n */\nasync function executeQuotaErrorCallbacks() {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`About to run ${quotaErrorCallbacks.size} ` +\n `callbacks to clean up caches.`);\n }\n for (const callback of quotaErrorCallbacks) {\n await callback();\n if (process.env.NODE_ENV !== 'production') {\n logger.log(callback, 'is complete.');\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.log('Finished running callbacks.');\n }\n}\nexport { executeQuotaErrorCallbacks };\n","/*\n Copyright 2019 Google LLC\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\n/**\n * Returns a promise that resolves and the passed number of milliseconds.\n * This utility is an async/await-friendly version of `setTimeout`.\n *\n * @param {number} ms\n * @return {Promise}\n * @private\n */\nexport function timeout(ms) {\n return new Promise((resolve) => setTimeout(resolve, ms));\n}\n","\"use strict\";\n// @ts-ignore\ntry {\n self['workbox:strategies:7.0.0'] && _();\n}\ncatch (e) { }\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { cacheMatchIgnoreParams } from 'workbox-core/_private/cacheMatchIgnoreParams.js';\nimport { Deferred } from 'workbox-core/_private/Deferred.js';\nimport { executeQuotaErrorCallbacks } from 'workbox-core/_private/executeQuotaErrorCallbacks.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { timeout } from 'workbox-core/_private/timeout.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport './_version.js';\nfunction toRequest(input) {\n return typeof input === 'string' ? new Request(input) : input;\n}\n/**\n * A class created every time a Strategy instance instance calls\n * {@link workbox-strategies.Strategy~handle} or\n * {@link workbox-strategies.Strategy~handleAll} that wraps all fetch and\n * cache actions around plugin callbacks and keeps track of when the strategy\n * is \"done\" (i.e. all added `event.waitUntil()` promises have resolved).\n *\n * @memberof workbox-strategies\n */\nclass StrategyHandler {\n /**\n * Creates a new instance associated with the passed strategy and event\n * that's handling the request.\n *\n * The constructor also initializes the state that will be passed to each of\n * the plugins handling this request.\n *\n * @param {workbox-strategies.Strategy} strategy\n * @param {Object} options\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params] The return value from the\n * {@link workbox-routing~matchCallback} (if applicable).\n */\n constructor(strategy, options) {\n this._cacheKeys = {};\n /**\n * The request the strategy is performing (passed to the strategy's\n * `handle()` or `handleAll()` method).\n * @name request\n * @instance\n * @type {Request}\n * @memberof workbox-strategies.StrategyHandler\n */\n /**\n * The event associated with this request.\n * @name event\n * @instance\n * @type {ExtendableEvent}\n * @memberof workbox-strategies.StrategyHandler\n */\n /**\n * A `URL` instance of `request.url` (if passed to the strategy's\n * `handle()` or `handleAll()` method).\n * Note: the `url` param will be present if the strategy was invoked\n * from a workbox `Route` object.\n * @name url\n * @instance\n * @type {URL|undefined}\n * @memberof workbox-strategies.StrategyHandler\n */\n /**\n * A `param` value (if passed to the strategy's\n * `handle()` or `handleAll()` method).\n * Note: the `param` param will be present if the strategy was invoked\n * from a workbox `Route` object and the\n * {@link workbox-routing~matchCallback} returned\n * a truthy value (it will be that value).\n * @name params\n * @instance\n * @type {*|undefined}\n * @memberof workbox-strategies.StrategyHandler\n */\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(options.event, ExtendableEvent, {\n moduleName: 'workbox-strategies',\n className: 'StrategyHandler',\n funcName: 'constructor',\n paramName: 'options.event',\n });\n }\n Object.assign(this, options);\n this.event = options.event;\n this._strategy = strategy;\n this._handlerDeferred = new Deferred();\n this._extendLifetimePromises = [];\n // Copy the plugins list (since it's mutable on the strategy),\n // so any mutations don't affect this handler instance.\n this._plugins = [...strategy.plugins];\n this._pluginStateMap = new Map();\n for (const plugin of this._plugins) {\n this._pluginStateMap.set(plugin, {});\n }\n this.event.waitUntil(this._handlerDeferred.promise);\n }\n /**\n * Fetches a given request (and invokes any applicable plugin callback\n * methods) using the `fetchOptions` (for non-navigation requests) and\n * `plugins` defined on the `Strategy` object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - `requestWillFetch()`\n * - `fetchDidSucceed()`\n * - `fetchDidFail()`\n *\n * @param {Request|string} input The URL or request to fetch.\n * @return {Promise}\n */\n async fetch(input) {\n const { event } = this;\n let request = toRequest(input);\n if (request.mode === 'navigate' &&\n event instanceof FetchEvent &&\n event.preloadResponse) {\n const possiblePreloadResponse = (await event.preloadResponse);\n if (possiblePreloadResponse) {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`Using a preloaded navigation response for ` +\n `'${getFriendlyURL(request.url)}'`);\n }\n return possiblePreloadResponse;\n }\n }\n // If there is a fetchDidFail plugin, we need to save a clone of the\n // original request before it's either modified by a requestWillFetch\n // plugin or before the original request's body is consumed via fetch().\n const originalRequest = this.hasCallback('fetchDidFail')\n ? request.clone()\n : null;\n try {\n for (const cb of this.iterateCallbacks('requestWillFetch')) {\n request = await cb({ request: request.clone(), event });\n }\n }\n catch (err) {\n if (err instanceof Error) {\n throw new WorkboxError('plugin-error-request-will-fetch', {\n thrownErrorMessage: err.message,\n });\n }\n }\n // The request can be altered by plugins with `requestWillFetch` making\n // the original request (most likely from a `fetch` event) different\n // from the Request we make. Pass both to `fetchDidFail` to aid debugging.\n const pluginFilteredRequest = request.clone();\n try {\n let fetchResponse;\n // See https://github.com/GoogleChrome/workbox/issues/1796\n fetchResponse = await fetch(request, request.mode === 'navigate' ? undefined : this._strategy.fetchOptions);\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Network request for ` +\n `'${getFriendlyURL(request.url)}' returned a response with ` +\n `status '${fetchResponse.status}'.`);\n }\n for (const callback of this.iterateCallbacks('fetchDidSucceed')) {\n fetchResponse = await callback({\n event,\n request: pluginFilteredRequest,\n response: fetchResponse,\n });\n }\n return fetchResponse;\n }\n catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n logger.log(`Network request for ` +\n `'${getFriendlyURL(request.url)}' threw an error.`, error);\n }\n // `originalRequest` will only exist if a `fetchDidFail` callback\n // is being used (see above).\n if (originalRequest) {\n await this.runCallbacks('fetchDidFail', {\n error: error,\n event,\n originalRequest: originalRequest.clone(),\n request: pluginFilteredRequest.clone(),\n });\n }\n throw error;\n }\n }\n /**\n * Calls `this.fetch()` and (in the background) runs `this.cachePut()` on\n * the response generated by `this.fetch()`.\n *\n * The call to `this.cachePut()` automatically invokes `this.waitUntil()`,\n * so you do not have to manually call `waitUntil()` on the event.\n *\n * @param {Request|string} input The request or URL to fetch and cache.\n * @return {Promise}\n */\n async fetchAndCachePut(input) {\n const response = await this.fetch(input);\n const responseClone = response.clone();\n void this.waitUntil(this.cachePut(input, responseClone));\n return response;\n }\n /**\n * Matches a request from the cache (and invokes any applicable plugin\n * callback methods) using the `cacheName`, `matchOptions`, and `plugins`\n * defined on the strategy object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - cacheKeyWillByUsed()\n * - cachedResponseWillByUsed()\n *\n * @param {Request|string} key The Request or URL to use as the cache key.\n * @return {Promise} A matching response, if found.\n */\n async cacheMatch(key) {\n const request = toRequest(key);\n let cachedResponse;\n const { cacheName, matchOptions } = this._strategy;\n const effectiveRequest = await this.getCacheKey(request, 'read');\n const multiMatchOptions = Object.assign(Object.assign({}, matchOptions), { cacheName });\n cachedResponse = await caches.match(effectiveRequest, multiMatchOptions);\n if (process.env.NODE_ENV !== 'production') {\n if (cachedResponse) {\n logger.debug(`Found a cached response in '${cacheName}'.`);\n }\n else {\n logger.debug(`No cached response found in '${cacheName}'.`);\n }\n }\n for (const callback of this.iterateCallbacks('cachedResponseWillBeUsed')) {\n cachedResponse =\n (await callback({\n cacheName,\n matchOptions,\n cachedResponse,\n request: effectiveRequest,\n event: this.event,\n })) || undefined;\n }\n return cachedResponse;\n }\n /**\n * Puts a request/response pair in the cache (and invokes any applicable\n * plugin callback methods) using the `cacheName` and `plugins` defined on\n * the strategy object.\n *\n * The following plugin lifecycle methods are invoked when using this method:\n * - cacheKeyWillByUsed()\n * - cacheWillUpdate()\n * - cacheDidUpdate()\n *\n * @param {Request|string} key The request or URL to use as the cache key.\n * @param {Response} response The response to cache.\n * @return {Promise} `false` if a cacheWillUpdate caused the response\n * not be cached, and `true` otherwise.\n */\n async cachePut(key, response) {\n const request = toRequest(key);\n // Run in the next task to avoid blocking other cache reads.\n // https://github.com/w3c/ServiceWorker/issues/1397\n await timeout(0);\n const effectiveRequest = await this.getCacheKey(request, 'write');\n if (process.env.NODE_ENV !== 'production') {\n if (effectiveRequest.method && effectiveRequest.method !== 'GET') {\n throw new WorkboxError('attempt-to-cache-non-get-request', {\n url: getFriendlyURL(effectiveRequest.url),\n method: effectiveRequest.method,\n });\n }\n // See https://github.com/GoogleChrome/workbox/issues/2818\n const vary = response.headers.get('Vary');\n if (vary) {\n logger.debug(`The response for ${getFriendlyURL(effectiveRequest.url)} ` +\n `has a 'Vary: ${vary}' header. ` +\n `Consider setting the {ignoreVary: true} option on your strategy ` +\n `to ensure cache matching and deletion works as expected.`);\n }\n }\n if (!response) {\n if (process.env.NODE_ENV !== 'production') {\n logger.error(`Cannot cache non-existent response for ` +\n `'${getFriendlyURL(effectiveRequest.url)}'.`);\n }\n throw new WorkboxError('cache-put-with-no-response', {\n url: getFriendlyURL(effectiveRequest.url),\n });\n }\n const responseToCache = await this._ensureResponseSafeToCache(response);\n if (!responseToCache) {\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Response '${getFriendlyURL(effectiveRequest.url)}' ` +\n `will not be cached.`, responseToCache);\n }\n return false;\n }\n const { cacheName, matchOptions } = this._strategy;\n const cache = await self.caches.open(cacheName);\n const hasCacheUpdateCallback = this.hasCallback('cacheDidUpdate');\n const oldResponse = hasCacheUpdateCallback\n ? await cacheMatchIgnoreParams(\n // TODO(philipwalton): the `__WB_REVISION__` param is a precaching\n // feature. Consider into ways to only add this behavior if using\n // precaching.\n cache, effectiveRequest.clone(), ['__WB_REVISION__'], matchOptions)\n : null;\n if (process.env.NODE_ENV !== 'production') {\n logger.debug(`Updating the '${cacheName}' cache with a new Response ` +\n `for ${getFriendlyURL(effectiveRequest.url)}.`);\n }\n try {\n await cache.put(effectiveRequest, hasCacheUpdateCallback ? responseToCache.clone() : responseToCache);\n }\n catch (error) {\n if (error instanceof Error) {\n // See https://developer.mozilla.org/en-US/docs/Web/API/DOMException#exception-QuotaExceededError\n if (error.name === 'QuotaExceededError') {\n await executeQuotaErrorCallbacks();\n }\n throw error;\n }\n }\n for (const callback of this.iterateCallbacks('cacheDidUpdate')) {\n await callback({\n cacheName,\n oldResponse,\n newResponse: responseToCache.clone(),\n request: effectiveRequest,\n event: this.event,\n });\n }\n return true;\n }\n /**\n * Checks the list of plugins for the `cacheKeyWillBeUsed` callback, and\n * executes any of those callbacks found in sequence. The final `Request`\n * object returned by the last plugin is treated as the cache key for cache\n * reads and/or writes. If no `cacheKeyWillBeUsed` plugin callbacks have\n * been registered, the passed request is returned unmodified\n *\n * @param {Request} request\n * @param {string} mode\n * @return {Promise}\n */\n async getCacheKey(request, mode) {\n const key = `${request.url} | ${mode}`;\n if (!this._cacheKeys[key]) {\n let effectiveRequest = request;\n for (const callback of this.iterateCallbacks('cacheKeyWillBeUsed')) {\n effectiveRequest = toRequest(await callback({\n mode,\n request: effectiveRequest,\n event: this.event,\n // params has a type any can't change right now.\n params: this.params, // eslint-disable-line\n }));\n }\n this._cacheKeys[key] = effectiveRequest;\n }\n return this._cacheKeys[key];\n }\n /**\n * Returns true if the strategy has at least one plugin with the given\n * callback.\n *\n * @param {string} name The name of the callback to check for.\n * @return {boolean}\n */\n hasCallback(name) {\n for (const plugin of this._strategy.plugins) {\n if (name in plugin) {\n return true;\n }\n }\n return false;\n }\n /**\n * Runs all plugin callbacks matching the given name, in order, passing the\n * given param object (merged ith the current plugin state) as the only\n * argument.\n *\n * Note: since this method runs all plugins, it's not suitable for cases\n * where the return value of a callback needs to be applied prior to calling\n * the next callback. See\n * {@link workbox-strategies.StrategyHandler#iterateCallbacks}\n * below for how to handle that case.\n *\n * @param {string} name The name of the callback to run within each plugin.\n * @param {Object} param The object to pass as the first (and only) param\n * when executing each callback. This object will be merged with the\n * current plugin state prior to callback execution.\n */\n async runCallbacks(name, param) {\n for (const callback of this.iterateCallbacks(name)) {\n // TODO(philipwalton): not sure why `any` is needed. It seems like\n // this should work with `as WorkboxPluginCallbackParam[C]`.\n await callback(param);\n }\n }\n /**\n * Accepts a callback and returns an iterable of matching plugin callbacks,\n * where each callback is wrapped with the current handler state (i.e. when\n * you call each callback, whatever object parameter you pass it will\n * be merged with the plugin's current state).\n *\n * @param {string} name The name fo the callback to run\n * @return {Array}\n */\n *iterateCallbacks(name) {\n for (const plugin of this._strategy.plugins) {\n if (typeof plugin[name] === 'function') {\n const state = this._pluginStateMap.get(plugin);\n const statefulCallback = (param) => {\n const statefulParam = Object.assign(Object.assign({}, param), { state });\n // TODO(philipwalton): not sure why `any` is needed. It seems like\n // this should work with `as WorkboxPluginCallbackParam[C]`.\n return plugin[name](statefulParam);\n };\n yield statefulCallback;\n }\n }\n }\n /**\n * Adds a promise to the\n * [extend lifetime promises]{@link https://w3c.github.io/ServiceWorker/#extendableevent-extend-lifetime-promises}\n * of the event event associated with the request being handled (usually a\n * `FetchEvent`).\n *\n * Note: you can await\n * {@link workbox-strategies.StrategyHandler~doneWaiting}\n * to know when all added promises have settled.\n *\n * @param {Promise} promise A promise to add to the extend lifetime promises\n * of the event that triggered the request.\n */\n waitUntil(promise) {\n this._extendLifetimePromises.push(promise);\n return promise;\n }\n /**\n * Returns a promise that resolves once all promises passed to\n * {@link workbox-strategies.StrategyHandler~waitUntil}\n * have settled.\n *\n * Note: any work done after `doneWaiting()` settles should be manually\n * passed to an event's `waitUntil()` method (not this handler's\n * `waitUntil()` method), otherwise the service worker thread my be killed\n * prior to your work completing.\n */\n async doneWaiting() {\n let promise;\n while ((promise = this._extendLifetimePromises.shift())) {\n await promise;\n }\n }\n /**\n * Stops running the strategy and immediately resolves any pending\n * `waitUntil()` promises.\n */\n destroy() {\n this._handlerDeferred.resolve(null);\n }\n /**\n * This method will call cacheWillUpdate on the available plugins (or use\n * status === 200) to determine if the Response is safe and valid to cache.\n *\n * @param {Request} options.request\n * @param {Response} options.response\n * @return {Promise}\n *\n * @private\n */\n async _ensureResponseSafeToCache(response) {\n let responseToCache = response;\n let pluginsUsed = false;\n for (const callback of this.iterateCallbacks('cacheWillUpdate')) {\n responseToCache =\n (await callback({\n request: this.request,\n response: responseToCache,\n event: this.event,\n })) || undefined;\n pluginsUsed = true;\n if (!responseToCache) {\n break;\n }\n }\n if (!pluginsUsed) {\n if (responseToCache && responseToCache.status !== 200) {\n responseToCache = undefined;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (responseToCache) {\n if (responseToCache.status !== 200) {\n if (responseToCache.status === 0) {\n logger.warn(`The response for '${this.request.url}' ` +\n `is an opaque response. The caching strategy that you're ` +\n `using will not cache opaque responses by default.`);\n }\n else {\n logger.debug(`The response for '${this.request.url}' ` +\n `returned a status code of '${response.status}' and won't ` +\n `be cached as a result.`);\n }\n }\n }\n }\n }\n return responseToCache;\n }\n}\nexport { StrategyHandler };\n","/*\n Copyright 2020 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { cacheNames } from 'workbox-core/_private/cacheNames.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { getFriendlyURL } from 'workbox-core/_private/getFriendlyURL.js';\nimport { StrategyHandler } from './StrategyHandler.js';\nimport './_version.js';\n/**\n * An abstract base class that all other strategy classes must extend from:\n *\n * @memberof workbox-strategies\n */\nclass Strategy {\n /**\n * Creates a new instance of the strategy and sets all documented option\n * properties as public instance properties.\n *\n * Note: if a custom strategy class extends the base Strategy class and does\n * not need more than these properties, it does not need to define its own\n * constructor.\n *\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] The\n * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n */\n constructor(options = {}) {\n /**\n * Cache name to store and retrieve\n * requests. Defaults to the cache names provided by\n * {@link workbox-core.cacheNames}.\n *\n * @type {string}\n */\n this.cacheName = cacheNames.getRuntimeName(options.cacheName);\n /**\n * The list\n * [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * used by this strategy.\n *\n * @type {Array}\n */\n this.plugins = options.plugins || [];\n /**\n * Values passed along to the\n * [`init`]{@link https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters}\n * of all fetch() requests made by this strategy.\n *\n * @type {Object}\n */\n this.fetchOptions = options.fetchOptions;\n /**\n * The\n * [`CacheQueryOptions`]{@link https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions}\n * for any `cache.match()` or `cache.put()` calls made by this strategy.\n *\n * @type {Object}\n */\n this.matchOptions = options.matchOptions;\n }\n /**\n * Perform a request strategy and returns a `Promise` that will resolve with\n * a `Response`, invoking all relevant plugin callbacks.\n *\n * When a strategy instance is registered with a Workbox\n * {@link workbox-routing.Route}, this method is automatically\n * called when the route matches.\n *\n * Alternatively, this method can be used in a standalone `FetchEvent`\n * listener by passing it to `event.respondWith()`.\n *\n * @param {FetchEvent|Object} options A `FetchEvent` or an object with the\n * properties listed below.\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params]\n */\n handle(options) {\n const [responseDone] = this.handleAll(options);\n return responseDone;\n }\n /**\n * Similar to {@link workbox-strategies.Strategy~handle}, but\n * instead of just returning a `Promise` that resolves to a `Response` it\n * it will return an tuple of `[response, done]` promises, where the former\n * (`response`) is equivalent to what `handle()` returns, and the latter is a\n * Promise that will resolve once any promises that were added to\n * `event.waitUntil()` as part of performing the strategy have completed.\n *\n * You can await the `done` promise to ensure any extra work performed by\n * the strategy (usually caching responses) completes successfully.\n *\n * @param {FetchEvent|Object} options A `FetchEvent` or an object with the\n * properties listed below.\n * @param {Request|string} options.request A request to run this strategy for.\n * @param {ExtendableEvent} options.event The event associated with the\n * request.\n * @param {URL} [options.url]\n * @param {*} [options.params]\n * @return {Array} A tuple of [response, done]\n * promises that can be used to determine when the response resolves as\n * well as when the handler has completed all its work.\n */\n handleAll(options) {\n // Allow for flexible options to be passed.\n if (options instanceof FetchEvent) {\n options = {\n event: options,\n request: options.request,\n };\n }\n const event = options.event;\n const request = typeof options.request === 'string'\n ? new Request(options.request)\n : options.request;\n const params = 'params' in options ? options.params : undefined;\n const handler = new StrategyHandler(this, { event, request, params });\n const responseDone = this._getResponse(handler, request, event);\n const handlerDone = this._awaitComplete(responseDone, handler, request, event);\n // Return an array of promises, suitable for use with Promise.all().\n return [responseDone, handlerDone];\n }\n async _getResponse(handler, request, event) {\n await handler.runCallbacks('handlerWillStart', { event, request });\n let response = undefined;\n try {\n response = await this._handle(request, handler);\n // The \"official\" Strategy subclasses all throw this error automatically,\n // but in case a third-party Strategy doesn't, ensure that we have a\n // consistent failure when there's no response or an error response.\n if (!response || response.type === 'error') {\n throw new WorkboxError('no-response', { url: request.url });\n }\n }\n catch (error) {\n if (error instanceof Error) {\n for (const callback of handler.iterateCallbacks('handlerDidError')) {\n response = await callback({ error, event, request });\n if (response) {\n break;\n }\n }\n }\n if (!response) {\n throw error;\n }\n else if (process.env.NODE_ENV !== 'production') {\n logger.log(`While responding to '${getFriendlyURL(request.url)}', ` +\n `an ${error instanceof Error ? error.toString() : ''} error occurred. Using a fallback response provided by ` +\n `a handlerDidError plugin.`);\n }\n }\n for (const callback of handler.iterateCallbacks('handlerWillRespond')) {\n response = await callback({ event, request, response });\n }\n return response;\n }\n async _awaitComplete(responseDone, handler, request, event) {\n let response;\n let error;\n try {\n response = await responseDone;\n }\n catch (error) {\n // Ignore errors, as response errors should be caught via the `response`\n // promise above. The `done` promise will only throw for errors in\n // promises passed to `handler.waitUntil()`.\n }\n try {\n await handler.runCallbacks('handlerDidRespond', {\n event,\n request,\n response,\n });\n await handler.doneWaiting();\n }\n catch (waitUntilError) {\n if (waitUntilError instanceof Error) {\n error = waitUntilError;\n }\n }\n await handler.runCallbacks('handlerDidComplete', {\n event,\n request,\n response,\n error: error,\n });\n handler.destroy();\n if (error) {\n throw error;\n }\n }\n}\nexport { Strategy };\n/**\n * Classes extending the `Strategy` based class should implement this method,\n * and leverage the {@link workbox-strategies.StrategyHandler}\n * arg to perform all fetching and cache logic, which will ensure all relevant\n * cache, cache options, fetch options and plugins are used (per the current\n * strategy instance).\n *\n * @name _handle\n * @instance\n * @abstract\n * @function\n * @param {Request} request\n * @param {workbox-strategies.StrategyHandler} handler\n * @return {Promise}\n *\n * @memberof workbox-strategies.Strategy\n */\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { Strategy } from './Strategy.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a [cache-first](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#cache-first-falling-back-to-network)\n * request strategy.\n *\n * A cache first strategy is useful for assets that have been revisioned,\n * such as URLs like `/styles/example.a8f5f1.css`, since they\n * can be cached for long periods of time.\n *\n * If the network request fails, and there is no cache match, this will throw\n * a `WorkboxError` exception.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-strategies\n */\nclass CacheFirst extends Strategy {\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const logs = [];\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'makeRequest',\n paramName: 'request',\n });\n }\n let response = await handler.cacheMatch(request);\n let error = undefined;\n if (!response) {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`No response found in the '${this.cacheName}' cache. ` +\n `Will respond with a network request.`);\n }\n try {\n response = await handler.fetchAndCachePut(request);\n }\n catch (err) {\n if (err instanceof Error) {\n error = err;\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (response) {\n logs.push(`Got response from network.`);\n }\n else {\n logs.push(`Unable to get a response from the network.`);\n }\n }\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`Found a cached response in the '${this.cacheName}' cache.`);\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart(this.constructor.name, request));\n for (const log of logs) {\n logger.log(log);\n }\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n if (!response) {\n throw new WorkboxError('no-response', { url: request.url, error });\n }\n return response;\n }\n}\nexport { CacheFirst };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport '../_version.js';\nexport const cacheOkAndOpaquePlugin = {\n /**\n * Returns a valid response (to allow caching) if the status is 200 (OK) or\n * 0 (opaque).\n *\n * @param {Object} options\n * @param {Response} options.response\n * @return {Response|null}\n *\n * @private\n */\n cacheWillUpdate: async ({ response }) => {\n if (response.status === 200 || response.status === 0) {\n return response;\n }\n return null;\n },\n};\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { cacheOkAndOpaquePlugin } from './plugins/cacheOkAndOpaquePlugin.js';\nimport { Strategy } from './Strategy.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a\n * [network first](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#network-first-falling-back-to-cache)\n * request strategy.\n *\n * By default, this strategy will cache responses with a 200 status code as\n * well as [opaque responses](https://developer.chrome.com/docs/workbox/caching-resources-during-runtime/#opaque-responses).\n * Opaque responses are are cross-origin requests where the response doesn't\n * support [CORS](https://enable-cors.org/).\n *\n * If the network request fails, and there is no cache match, this will throw\n * a `WorkboxError` exception.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-strategies\n */\nclass NetworkFirst extends Strategy {\n /**\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] [`CacheQueryOptions`](https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions)\n * @param {number} [options.networkTimeoutSeconds] If set, any network requests\n * that fail to respond within the timeout will fallback to the cache.\n *\n * This option can be used to combat\n * \"[lie-fi]{@link https://developers.google.com/web/fundamentals/performance/poor-connectivity/#lie-fi}\"\n * scenarios.\n */\n constructor(options = {}) {\n super(options);\n // If this instance contains no plugins with a 'cacheWillUpdate' callback,\n // prepend the `cacheOkAndOpaquePlugin` plugin to the plugins list.\n if (!this.plugins.some((p) => 'cacheWillUpdate' in p)) {\n this.plugins.unshift(cacheOkAndOpaquePlugin);\n }\n this._networkTimeoutSeconds = options.networkTimeoutSeconds || 0;\n if (process.env.NODE_ENV !== 'production') {\n if (this._networkTimeoutSeconds) {\n assert.isType(this._networkTimeoutSeconds, 'number', {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'constructor',\n paramName: 'networkTimeoutSeconds',\n });\n }\n }\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const logs = [];\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'handle',\n paramName: 'makeRequest',\n });\n }\n const promises = [];\n let timeoutId;\n if (this._networkTimeoutSeconds) {\n const { id, promise } = this._getTimeoutPromise({ request, logs, handler });\n timeoutId = id;\n promises.push(promise);\n }\n const networkPromise = this._getNetworkPromise({\n timeoutId,\n request,\n logs,\n handler,\n });\n promises.push(networkPromise);\n const response = await handler.waitUntil((async () => {\n // Promise.race() will resolve as soon as the first promise resolves.\n return ((await handler.waitUntil(Promise.race(promises))) ||\n // If Promise.race() resolved with null, it might be due to a network\n // timeout + a cache miss. If that were to happen, we'd rather wait until\n // the networkPromise resolves instead of returning null.\n // Note that it's fine to await an already-resolved promise, so we don't\n // have to check to see if it's still \"in flight\".\n (await networkPromise));\n })());\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart(this.constructor.name, request));\n for (const log of logs) {\n logger.log(log);\n }\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n if (!response) {\n throw new WorkboxError('no-response', { url: request.url });\n }\n return response;\n }\n /**\n * @param {Object} options\n * @param {Request} options.request\n * @param {Array} options.logs A reference to the logs array\n * @param {Event} options.event\n * @return {Promise}\n *\n * @private\n */\n _getTimeoutPromise({ request, logs, handler, }) {\n let timeoutId;\n const timeoutPromise = new Promise((resolve) => {\n const onNetworkTimeout = async () => {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`Timing out the network response at ` +\n `${this._networkTimeoutSeconds} seconds.`);\n }\n resolve(await handler.cacheMatch(request));\n };\n timeoutId = setTimeout(onNetworkTimeout, this._networkTimeoutSeconds * 1000);\n });\n return {\n promise: timeoutPromise,\n id: timeoutId,\n };\n }\n /**\n * @param {Object} options\n * @param {number|undefined} options.timeoutId\n * @param {Request} options.request\n * @param {Array} options.logs A reference to the logs Array.\n * @param {Event} options.event\n * @return {Promise}\n *\n * @private\n */\n async _getNetworkPromise({ timeoutId, request, logs, handler, }) {\n let error;\n let response;\n try {\n response = await handler.fetchAndCachePut(request);\n }\n catch (fetchError) {\n if (fetchError instanceof Error) {\n error = fetchError;\n }\n }\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (process.env.NODE_ENV !== 'production') {\n if (response) {\n logs.push(`Got response from network.`);\n }\n else {\n logs.push(`Unable to get a response from the network. Will respond ` +\n `with a cached response.`);\n }\n }\n if (error || !response) {\n response = await handler.cacheMatch(request);\n if (process.env.NODE_ENV !== 'production') {\n if (response) {\n logs.push(`Found a cached response in the '${this.cacheName}'` + ` cache.`);\n }\n else {\n logs.push(`No response found in the '${this.cacheName}' cache.`);\n }\n }\n }\n return response;\n }\n}\nexport { NetworkFirst };\n","/*\n Copyright 2018 Google LLC\n\n Use of this source code is governed by an MIT-style\n license that can be found in the LICENSE file or at\n https://opensource.org/licenses/MIT.\n*/\nimport { assert } from 'workbox-core/_private/assert.js';\nimport { logger } from 'workbox-core/_private/logger.js';\nimport { WorkboxError } from 'workbox-core/_private/WorkboxError.js';\nimport { cacheOkAndOpaquePlugin } from './plugins/cacheOkAndOpaquePlugin.js';\nimport { Strategy } from './Strategy.js';\nimport { messages } from './utils/messages.js';\nimport './_version.js';\n/**\n * An implementation of a\n * [stale-while-revalidate](https://developer.chrome.com/docs/workbox/caching-strategies-overview/#stale-while-revalidate)\n * request strategy.\n *\n * Resources are requested from both the cache and the network in parallel.\n * The strategy will respond with the cached version if available, otherwise\n * wait for the network response. The cache is updated with the network response\n * with each successful request.\n *\n * By default, this strategy will cache responses with a 200 status code as\n * well as [opaque responses](https://developer.chrome.com/docs/workbox/caching-resources-during-runtime/#opaque-responses).\n * Opaque responses are cross-origin requests where the response doesn't\n * support [CORS](https://enable-cors.org/).\n *\n * If the network request fails, and there is no cache match, this will throw\n * a `WorkboxError` exception.\n *\n * @extends workbox-strategies.Strategy\n * @memberof workbox-strategies\n */\nclass StaleWhileRevalidate extends Strategy {\n /**\n * @param {Object} [options]\n * @param {string} [options.cacheName] Cache name to store and retrieve\n * requests. Defaults to cache names provided by\n * {@link workbox-core.cacheNames}.\n * @param {Array} [options.plugins] [Plugins]{@link https://developers.google.com/web/tools/workbox/guides/using-plugins}\n * to use in conjunction with this caching strategy.\n * @param {Object} [options.fetchOptions] Values passed along to the\n * [`init`](https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/fetch#Parameters)\n * of [non-navigation](https://github.com/GoogleChrome/workbox/issues/1796)\n * `fetch()` requests made by this strategy.\n * @param {Object} [options.matchOptions] [`CacheQueryOptions`](https://w3c.github.io/ServiceWorker/#dictdef-cachequeryoptions)\n */\n constructor(options = {}) {\n super(options);\n // If this instance contains no plugins with a 'cacheWillUpdate' callback,\n // prepend the `cacheOkAndOpaquePlugin` plugin to the plugins list.\n if (!this.plugins.some((p) => 'cacheWillUpdate' in p)) {\n this.plugins.unshift(cacheOkAndOpaquePlugin);\n }\n }\n /**\n * @private\n * @param {Request|string} request A request to run this strategy for.\n * @param {workbox-strategies.StrategyHandler} handler The event that\n * triggered the request.\n * @return {Promise}\n */\n async _handle(request, handler) {\n const logs = [];\n if (process.env.NODE_ENV !== 'production') {\n assert.isInstance(request, Request, {\n moduleName: 'workbox-strategies',\n className: this.constructor.name,\n funcName: 'handle',\n paramName: 'request',\n });\n }\n const fetchAndCachePromise = handler.fetchAndCachePut(request).catch(() => {\n // Swallow this error because a 'no-response' error will be thrown in\n // main handler return flow. This will be in the `waitUntil()` flow.\n });\n void handler.waitUntil(fetchAndCachePromise);\n let response = await handler.cacheMatch(request);\n let error;\n if (response) {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`Found a cached response in the '${this.cacheName}'` +\n ` cache. Will update with the network response in the background.`);\n }\n }\n else {\n if (process.env.NODE_ENV !== 'production') {\n logs.push(`No response found in the '${this.cacheName}' cache. ` +\n `Will wait for the network response.`);\n }\n try {\n // NOTE(philipwalton): Really annoying that we have to type cast here.\n // https://github.com/microsoft/TypeScript/issues/20006\n response = (await fetchAndCachePromise);\n }\n catch (err) {\n if (err instanceof Error) {\n error = err;\n }\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n logger.groupCollapsed(messages.strategyStart(this.constructor.name, request));\n for (const log of logs) {\n logger.log(log);\n }\n messages.printFinalResponse(response);\n logger.groupEnd();\n }\n if (!response) {\n throw new WorkboxError('no-response', { url: request.url, error });\n }\n return response;\n }\n}\nexport { StaleWhileRevalidate };\n","import { CacheableResponsePlugin } from 'workbox-cacheable-response';\nimport { ExpirationPlugin } from 'workbox-expiration';\nimport { RegExpRoute, registerRoute, Route } from 'workbox-routing';\nimport {\n CacheFirst,\n NetworkFirst,\n StaleWhileRevalidate,\n} from 'workbox-strategies';\n\nself.__WB_DISABLE_DEV_LOGS = true;\n\nconst assetsRoute = new Route(\n ({ request, sameOrigin }) => {\n const isAsset =\n request.destination === 'style' || request.destination === 'script';\n const hasHash = /-[0-9a-f]{4,}\\./i.test(request.url);\n return sameOrigin && isAsset && hasHash;\n },\n new NetworkFirst({\n cacheName: 'assets',\n networkTimeoutSeconds: 5,\n plugins: [\n new CacheableResponsePlugin({\n statuses: [0, 200],\n }),\n ],\n }),\n);\nregisterRoute(assetsRoute);\n\nconst imageRoute = new Route(\n ({ request, sameOrigin }) => {\n const isRemote = !sameOrigin;\n const isImage = request.destination === 'image';\n const isAvatar = request.url.includes('/avatars/');\n const isCustomEmoji = request.url.includes('/custom/_emojis');\n const isEmoji = request.url.includes('/emoji/');\n return isRemote && isImage && (isAvatar || isCustomEmoji || isEmoji);\n },\n new CacheFirst({\n cacheName: 'remote-images',\n plugins: [\n new ExpirationPlugin({\n maxEntries: 50,\n maxAgeSeconds: 3 * 24 * 60 * 60, // 3 days\n purgeOnQuotaError: true,\n }),\n new CacheableResponsePlugin({\n statuses: [0, 200],\n }),\n ],\n }),\n);\nregisterRoute(imageRoute);\n\nconst iconsRoute = new Route(\n ({ request, sameOrigin }) => {\n const isIcon = request.url.includes('/icons/');\n return sameOrigin && isIcon;\n },\n new CacheFirst({\n cacheName: 'icons',\n plugins: [\n new ExpirationPlugin({\n maxEntries: 300,\n maxAgeSeconds: 3 * 24 * 60 * 60, // 3 days\n purgeOnQuotaError: true,\n }),\n new CacheableResponsePlugin({\n statuses: [0, 200],\n }),\n ],\n }),\n);\nregisterRoute(iconsRoute);\n\n// 1-day cache for\n// - /api/v1/instance\n// - /api/v1/custom_emojis\n// - /api/v1/preferences\n// - /api/v1/lists/:id\n// - /api/v1/announcements\nconst apiExtendedRoute = new RegExpRoute(\n /^https?:\\/\\/[^\\/]+\\/api\\/v\\d+\\/(instance|custom_emojis|preferences|lists\\/\\d+|announcements)$/,\n new StaleWhileRevalidate({\n cacheName: 'api-extended',\n plugins: [\n new ExpirationPlugin({\n maxAgeSeconds: 24 * 60 * 60, // 1 day\n }),\n new CacheableResponsePlugin({\n statuses: [0, 200],\n }),\n ],\n }),\n);\nregisterRoute(apiExtendedRoute);\n\nconst apiRoute = new RegExpRoute(\n // Matches:\n // - statuses/:id/context - some contexts are really huge\n /^https?:\\/\\/[^\\/]+\\/api\\/v\\d+\\/(statuses\\/\\d+\\/context)/,\n new NetworkFirst({\n cacheName: 'api',\n networkTimeoutSeconds: 5,\n plugins: [\n new ExpirationPlugin({\n maxAgeSeconds: 5 * 60, // 5 minutes\n }),\n new CacheableResponsePlugin({\n statuses: [0, 200],\n }),\n ],\n }),\n);\nregisterRoute(apiRoute);\n\n// PUSH NOTIFICATIONS\n// ==================\n\nself.addEventListener('push', (event) => {\n const { data } = event;\n if (data) {\n const payload = data.json();\n console.log('PUSH payload', payload);\n const {\n access_token,\n title,\n body,\n icon,\n notification_id,\n notification_type,\n preferred_locale,\n } = payload;\n\n if (!!navigator.setAppBadge) {\n if (notification_type === 'mention') {\n navigator.setAppBadge(1);\n }\n }\n\n event.waitUntil(\n self.registration.showNotification(title, {\n body,\n icon,\n dir: 'auto',\n badge: '/logo-badge-72.png',\n lang: preferred_locale,\n tag: notification_id,\n timestamp: Date.now(),\n data: {\n access_token,\n notification_type,\n },\n }),\n );\n }\n});\n\nself.addEventListener('notificationclick', (event) => {\n const payload = event.notification;\n console.log('NOTIFICATION CLICK payload', payload);\n const { badge, body, data, dir, icon, lang, tag, timestamp, title } = payload;\n const { access_token, notification_type } = data;\n const url = `/#/notifications?id=${tag}&access_token=${btoa(access_token)}`;\n\n event.waitUntil(\n (async () => {\n const clients = await self.clients.matchAll({\n type: 'window',\n includeUncontrolled: true,\n });\n console.log('NOTIFICATION CLICK clients 1', clients);\n if (clients.length && 'navigate' in clients[0]) {\n console.log('NOTIFICATION CLICK clients 2', clients);\n const bestClient =\n clients.find(\n (client) => client.focused || client.visibilityState === 'visible',\n ) || clients[0];\n console.log('NOTIFICATION CLICK navigate', url);\n if (bestClient) {\n console.log('NOTIFICATION CLICK postMessage', bestClient);\n bestClient.focus();\n bestClient.postMessage?.({\n type: 'notification',\n id: tag,\n accessToken: access_token,\n });\n } else {\n console.log('NOTIFICATION CLICK openWindow', url);\n await self.clients.openWindow(url);\n }\n // }\n } else {\n console.log('NOTIFICATION CLICK openWindow', url);\n await self.clients.openWindow(url);\n }\n await event.notification.close();\n })(),\n );\n});\n"],"names":["fallback","code","args","msg","messageGenerator","WorkboxError","errorCode","details","message","getFriendlyURL","url","CacheableResponse","config","response","cacheable","headerName","CacheableResponsePlugin","dontWaitFor","promise","instanceOfAny","object","constructors","c","idbProxyableTypes","cursorAdvanceMethods","getIdbProxyableTypes","getCursorAdvanceMethods","cursorRequestMap","transactionDoneMap","transactionStoreNamesMap","transformCache","reverseTransformCache","promisifyRequest","request","resolve","reject","unlisten","success","error","wrap","value","cacheDonePromiseForTransaction","tx","done","complete","idbProxyTraps","target","prop","receiver","replaceTraps","callback","wrapFunction","func","storeNames","unwrap","transformCachableValue","newValue","openDB","name","version","blocked","upgrade","blocking","terminated","openPromise","event","db","deleteDB","readMethods","writeMethods","cachedMethods","getMethod","targetFuncName","useIndex","isWrite","method","storeName","oldTraps","DB_NAME","CACHE_OBJECT_STORE","normalizeURL","unNormalizedUrl","CacheTimestampsModel","cacheName","objStore","timestamp","entry","minTimestamp","maxCount","cursor","entriesToDelete","entriesNotDeletedCount","result","urlsDeleted","CacheExpiration","urlsExpired","cache","expireOlderThan","_cacheNameDetails","_createCacheName","eachCacheNameDetail","fn","key","cacheNames","userCacheName","quotaErrorCallbacks","registerQuotaErrorCallback","ExpirationPlugin","cachedResponse","isFresh","cacheExpiration","updateTimestampDone","dateHeaderTimestamp","now","dateHeader","headerTime","defaultMethod","normalizeHandler","handler","Route","match","RegExpRoute","regExp","Router","responsePromise","payload","requestPromises","sameOrigin","params","route","err","catchHandler","catchErr","routes","matchResult","routeIndex","defaultRouter","getOrCreateDefaultRouter","registerRoute","capture","captureUrl","matchCallback","stripParams","fullURL","ignoreParams","strippedURL","param","cacheMatchIgnoreParams","matchOptions","strippedRequestURL","keysOptions","cacheKeys","cacheKey","strippedCacheKeyURL","Deferred","executeQuotaErrorCallbacks","timeout","ms","toRequest","input","StrategyHandler","strategy","options","plugin","possiblePreloadResponse","originalRequest","cb","pluginFilteredRequest","fetchResponse","responseClone","effectiveRequest","multiMatchOptions","responseToCache","hasCacheUpdateCallback","oldResponse","mode","state","statefulParam","pluginsUsed","Strategy","responseDone","handlerDone","waitUntilError","CacheFirst","cacheOkAndOpaquePlugin","NetworkFirst","p","logs","promises","timeoutId","id","networkPromise","fetchError","StaleWhileRevalidate","fetchAndCachePromise","assetsRoute","isAsset","hasHash","imageRoute","isRemote","isImage","isAvatar","isCustomEmoji","isEmoji","iconsRoute","isIcon","apiExtendedRoute","apiRoute","data","access_token","title","body","icon","notification_id","notification_type","preferred_locale","badge","dir","lang","tag","_a","clients","bestClient","client"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]} \ No newline at end of file diff --git a/version.json b/version.json new file mode 100644 index 0000000..f9e7496 --- /dev/null +++ b/version.json @@ -0,0 +1 @@ +{"buildTime":"2024-06-03T11:04:51.985Z","commitHash":"0a6030c"} \ No newline at end of file