@snf/access-qa-bot 2.3.1-beta.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"access-qa-bot.umd.cjs","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/react-chatbotify/dist/index.js","../node_modules/@rcb-plugins/html-renderer/dist/index.js","../node_modules/@rcb-plugins/markdown-renderer/dist/index.js","../node_modules/@rcb-plugins/input-validator/dist/index.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/config/constants.js","../src/components/BotController.js","../src/hooks/useLoginStateTransition.js","../src/components/icons/BaseIcon.js","../src/components/icons/RefreshIcon.js","../src/components/NewChatButton.js","../src/components/UserIcon.js","../src/components/LoginButton.js","../src/hooks/useHandleAIQuery.js","../src/hooks/useGetLastUserQuery.js","../src/hooks/useKeyboardNavigation.js","../src/utils/flows/qa-flow.js","../src/utils/error-handler.js","../src/components/icons/UploadIcon.js","../src/components/FileUploadComponent.js","../src/hooks/useScreenshotCapture.js","../src/utils/api-utils.js","../src/utils/flows/tickets/ticket-flow-utils.js","../src/utils/flow-context-utils.js","../src/utils/optional-field-utils.js","../src/utils/validation-utils.js","../src/utils/flows/ticket-flow.js","../src/utils/flows/tickets/access-login-flow.js","../src/utils/flows/tickets/affiliated-login-flow.js","../src/utils/flows/tickets/general-help-flow.js","../src/utils/flows/security-flow.js","../src/utils/create-bot-flow.js","../src/utils/flows/main-menu-flow.js","../src/contexts/FormContext.js","../src/components/QABot.js","../src/hooks/useThemeColors.js","../src/hooks/useChatBotSettings.js","../src/hooks/useUpdateHeader.js","../src/hooks/useRingEffect.js","../src/hooks/useFocusableSendButton.js","../src/lib.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import \"./style.css\";\nimport { jsxs as X, jsx as l, Fragment as nA } from \"react/jsx-runtime\";\nimport * as q from \"react\";\nimport { forwardRef as iA, createContext as vA, useContext as PA, Fragment as UA, useRef as AA, useState as F, useCallback as x, useEffect as V, isValidElement as se, createElement as _A, useMemo as dA } from \"react\";\nimport Te from \"react-dom/server\";\nconst Z = {\n AUDIO_BUTTON: \"audio-button\",\n NOTIFICATION_BUTTON: \"notification-button\",\n CLOSE_CHAT_BUTTON: \"close-chat-button\",\n SEND_MESSAGE_BUTTON: \"send-button\",\n VOICE_MESSAGE_BUTTON: \"voice-button\",\n FILE_ATTACHMENT_BUTTON: \"file-attachment-button\",\n EMOJI_PICKER_BUTTON: \"emoji-button\"\n}, Me = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2042%2042'%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:4'%20d='M17%209a8%208%200%200%201-8%208%208%208%200%200%201-8-8%208%208%200%200%201%208-8%208%208%200%200%201%208%208Zm0%200'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:10'%20d='M14.66%2014.66%203.34%203.34'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3c/svg%3e\", $A = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20viewBox='0%200%201000%201000'%3e%3crect%20width='100%25'%20height='100%25'%20fill='%23fff'/%3e%3cg%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-99%20362)%20scale(3.4003)'/%3e%3cpath%20d='M0%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(180%20106%20386)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-46%20282)%20scale(3.4003)'/%3e%3cpath%20d='M19%2065h4l5%204v1H14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-3%20240)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(236%20175)%20scale(3.4003)'/%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20139%20600)%20scale(3.4003)'/%3e%3cpath%20d='M184%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20219%20548)%20scale(3.4003)'/%3e%3cpath%20d='M175%2065h4l5%204v1h-14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20262%20505)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(767%20175)%20scale(3.4003)'/%3e%3crect%20width='116.7'%20height='70'%20x='-58.4'%20y='-35'%20rx='31.5'%20ry='31.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20877)%20scale(3.4003)'/%3e%3crect%20width='60'%20height='20'%20x='-30'%20y='-10'%20rx='3'%20ry='3'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='translate(502%20728)%20scale(3.4003)'/%3e%3ccircle%20r='75'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20473)%20scale(3.4003)'/%3e%3crect%20width='129.4'%20height='82.3'%20x='-64.7'%20y='-41.1'%20rx='37'%20ry='37'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23fff;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3crect%20width='108'%20height='68.6'%20x='-54'%20y='-34.3'%20rx='30.9'%20ry='30.9'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(415%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(591%20464)%20scale(3.4003)'/%3e%3crect%20width='96'%20height='53.2'%20x='-48'%20y='-26.6'%20rx='23.9'%20ry='23.9'%20style='stroke:%23162334;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(503%20875)%20scale(3.4003)'/%3e%3cpath%20stroke-linecap='round'%20d='m68%20215%207-15M81%20222l-7-22M81%20222l7-14M101%20208H87M114%20219l-7-24M113%20219l13-22M131%20214l-5-17M148%20214h-18M69%20214H51M100%20209l7-15'%20style='stroke:%23a478fc;stroke-width:3;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:10;is-custom-font:none;font-file-url:none;fill:none;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3c/g%3e%3c/svg%3e\", ke = \"data:image/svg+xml,%3csvg%20width='140'%20height='140'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cy='60.044'%20cx='70'%20fill='%235c5c5c'%20r='29'/%3e%3cpath%20d='m16.36%20156.186-.01-30.5c-.005-16.844%2024.168-30.507%2053.991-30.516%2029.823-.009%2054.004%2013.64%2054.01%2030.484l.008%2030.5-108%20.032z'%20fill='%235c5c5c'/%3e%3c/svg%3e\", He = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 0 637 637\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"m478 113-13 2-4 1h4l14-2c10-2 35-2 42-1l6 3 3 1c3 0-4-3-8-5-7-1-34-1-44 1m56 6 8 6c7 5 20 17 20 19s7 12 8 12l-3-6-4-6c0-3-15-17-25-24-5-3-8-4-4-1m-198 16-9 1a512 512 0 0 1 9-1m-180 30a412 412 0 0 0-23 4 167 167 0 0 0-32 8 439 439 0 0 1 46-9 304 304 0 0 1 11-2l6-1h-8m369 8 4 3-7-6c-1 0 0 2 3 3m-439 9c-7 3-18 13-18 15l6-5c5-5 9-8 14-10l6-4-8 4m442 12-10 11-7 6 7-6c7-5 14-14 13-16l-3 5M65 205l-1 11c0 9 0 10 4 17 5 10 7 12 22 11 10 0 15 0 38-5l5-1-6 1-16 2-21 2c-13 1-16-1-21-10-3-5-4-6-4-15l1-12c1-4 1-5-1-1m335 1c3 0 3 1 3 3l-2 6c-2 5-35 39-76 80-53 51-120 117-138 137-21 24-22 25-22 27 0 3 6 9 9 9 4 0 14-8 38-27a5073 5073 0 0 1 15-16 1421 1421 0 0 0-17 15l-31 25-6 2-4-3c-3-3-3-4-2-6 3-8 79-85 160-163 57-57 79-80 79-86 0-2-3-4-7-4-2 0-2 0 1 1m165 18c-9 17-25 32-57 53l-10 8 16-11 12-8c15-10 27-22 39-39 5-7 6-8 4-8l-4 5m-221 2a199 199 0 0 0-19 10 183 183 0 0 1 27-12c0-1-1-1-8 2m-34 16c-3 3-2 3 2 0l1-2-3 2m151 3-1 2 2-2c3-3 2-3-1 0m-16 12-11 10a281 281 0 0 0 11-10m-24 18-7 5-7 5-42 31c-10 7-24 19-22 19l7-6 16-12a343 343 0 0 0 35-25 573 573 0 0 0 20-17m-187 0-2 2 4-2 3-2-5 2m-14 6-3 2 4-1 4-3-5 2m-7 3-8 4-18 8 18-7 7-3 3-1c1-2 0-2-2-1m254 24a2672 2672 0 0 1-71 54 601 601 0 0 0 39-29 1352 1352 0 0 1 32-25m-291-8-2 2 4-2 3-2-5 2m-13 5-2 2h3c5-3 4-4-1-2m-19 9-7 3-13 6c-10 5-13 7-14 10-3 4-2 5 1 0 2-3 5-5 14-9l13-6 12-6-6 2m178 36c-17 12-21 16-21 17a390 390 0 0 1 20-17m-206 34 1 4 1 3 1 5 2 8 1 5v-6l-1-8-2-5-1-4-1-2c-1-2-1-2-1 0m222 23-9 7a683 683 0 0 0-56 44 261 261 0 0 0-26 20 1345 1345 0 0 0-46 34c-6 3-7 3-19 3-11 0-12 0-18-3-8-4-10-8-17-20l-5-10 4 10c5 10 12 18 19 22 4 2 6 2 17 2 13 0 14 0 21-3l26-19 42-33a2183 2183 0 0 0 43-34 643 643 0 0 1 24-20\", fill: \"#fff\", fillRule: \"evenodd\" }), /* @__PURE__ */ q.createElement(\"path\", { d: \"M478 114a620 620 0 0 1-39 6l-21 3a5481 5481 0 0 0-19 3 870 870 0 0 1-54 8l-1 1-6 1-12 2-13 2a992 992 0 0 0-76 12 400 400 0 0 1-45 8l-6 1-5 1h-3l-3 1-2 1-26 4-13 2-17 3c-23 5-33 9-43 19-7 8-9 13-9 27 0 8 1 9 4 14 5 9 8 11 21 10l21-2a1133 1133 0 0 1 23-4 659 659 0 0 0 74-14l3-1h3l3-1h3l2-1 2-1h3l2-1h2l24-5 38-7a2100 2100 0 0 1 93-18l3-1 10-1a2082 2082 0 0 1 120-17l2 1c2 0 8 5 8 7l1 2 1 6c0 4 0 6-3 10-2 4-16 16-18 16l-7 5-10 8a1070 1070 0 0 0-11 7 113 113 0 0 1-20 14l-2 2-3 2-2 2h-1a154 154 0 0 1-28 21l-5 4-5 4a573 573 0 0 1-50 37 175 175 0 0 0-24 18l-1 2-2 1-2 1-2 1-1 1-12 10a396 396 0 0 0-32 25l-8 6-6 5-9 7a326 326 0 0 1-25 20l-13 12a5073 5073 0 0 0-17 15c-24 20-34 27-39 27-2 0-8-6-8-9 0-2 1-3 22-27 18-20 85-86 138-137 41-41 74-75 76-80l2-6c0-2 0-3-2-3l-7 1a233 233 0 0 1-26 9l-1 1-1 1h-1l-1 1h-2l-3 2-1 1h-2l-3 2h-1l-5 2-22 10-9 4-4 2-5 2-10 4-2 1-2 1-2 1-13 6a334 334 0 0 1-38 17 75 75 0 0 0-14 6l-5 2-4 1-2 1-3 2-7 3-16 6a247 247 0 0 0-32 14l-1 1h-2l-1 1h-2l-1 1-12 6a103 103 0 0 0-27 15l-2 5-1 1v11l1 5 1 5 1 4c0 3 0 4 2 4v3l1 3 1 2 2 10 1 4 1 5 2 10 2 8 1 4 1 4c3 3 9 25 11 38l1 7v2l1 4v1l1 1v2l1 2 1 3v1l5 10c7 13 9 16 17 20 6 3 7 3 18 3 12 0 13 0 19-3 8-4 11-6 26-18a1345 1345 0 0 1 85-67 683 683 0 0 1 50-39l12-9a513 513 0 0 1 44-33 201 201 0 0 0 22-17 2270 2270 0 0 0 73-54 158 158 0 0 0 58-59c2 0 3-9 4-27l-1-19-1-4-1-6-1-3-4-6-4-6c0-2-6-8-13-14a77 77 0 0 0-28-18c-6-1-34-1-43 1\" })), Ae = iA(He), xe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M765-321q0 117-84 196-83 80-200 80-118 0-200-80t-83-196v-392q0-85 61-144 61-58 146-58 86 0 147 58 61 59 61 144v374q0 54-39 92-39 37-93 37-55 0-93-37-38-38-38-92v-372h110v372q0 9 6 14t15 5q8 0 15-5t7-14v-374q0-39-29-66t-68-27q-40 0-69 27t-29 66v392q0 71 51 119t122 48q71 0 122-48t51-119v-426h111v426Z\" })), ee = iA(xe), Oe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M125-165v-113h77v-273q0-93 55-167 56-75 146-100v-19q0-32 22-55 23-23 55-23t55 23q22 23 22 55v19q90 25 146 99 56 73 56 168v273h77v113H125ZM480-32q-38 0-66-27-27-27-27-66h186q0 39-27 66t-66 27Z\" })), Le = iA(Oe), Ne = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M137-190v-113h78v-253q0-41 11-79 11-39 35-71l-9 150h10L17-802l74-74L873-92l-74 74-175-172H137Zm609-149L319-769q20-15 41-25t44-16v-28q0-32 22-54t54-22q32 0 55 22t22 54v28q85 23 137 94t52 160v217ZM481-47q-38 0-65-27t-27-65h184q0 38-27 65t-65 27Z\" })), Re = iA(Ne), Ue = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 100 100\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"g\", { strokeLinecap: \"round\", strokeWidth: 10 }, /* @__PURE__ */ q.createElement(\"path\", { d: \"m19 19 61 61M80 19 19 80\" }))), Fe = iA(Ue), je = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M94-136v-255l351-93-351-92v-253l816 346L94-136Z\" })), ze = iA(je), Ge = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M480-372q-61 0-105-43-43-43-43-105v-240q0-61 43-105 43-43 105-43 61 0 105 43 43 44 43 105v240q0 62-43 105t-105 43ZM425-76v-122q-121-16-197-108t-76-214h109q0 91 64 154t155 63q91 0 155-63t64-154h109q0 122-77 214T534-198v122H425Z\" })), Ye = iA(Ge), Xe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"m763-343-80-79q8-20 13-44 5-23 5-54h109q0 49-11 95t-36 82ZM625-482 336-770v-2q3-56 45-96t101-40q62 0 105 43t43 105v249l-1 17q-1 7-4 12ZM427-76v-122q-120-16-196-108-77-92-77-214h109q0 91 64 154t155 63q43 0 80-14 37-15 67-41l78 79q-35 32-78 53t-93 28v122H427Zm362 27L41-796l75-75 748 748-75 74Z\" })), We = iA(Xe), Ke = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M625-511q29 0 50-21t20-50q0-29-20-50-21-20-50-20t-50 20-20 50q0 29 20 50 21 21 50 21Zm-290 0q29 0 50-21t20-49q0-30-20-50t-50-21q-29 0-50 20-20 21-20 50 0 30 20 50 21 21 50 21Zm145 268q75 0 137-43t85-115H258q24 72 85 115 62 43 137 43Zm0 198q-90 0-170-34-79-34-138-93T79-310q-34-80-34-170t34-170q34-79 93-138t138-93q80-34 170-34t170 34q79 34 138 93t93 138q34 80 34 170t-34 170q-34 79-93 138T650-79q-80 34-170 34Zm0-435Zm0 322q134 0 228-94t94-228q0-134-94-228t-228-94q-134 0-228 94t-94 228q0 134 94 228t228 94Z\" })), te = iA(Ke), qe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M553-64v-108q107-27 173-113 67-87 67-197 0-109-67-195T553-789v-108q152 26 249 144 97 117 97 271 0 155-97 273T553-64ZM61-335v-290h176l236-237v764L237-335H61Zm492 28v-346q51 23 82 70t31 103-31 103q-31 47-82 70Z\" })), Je = iA(qe), Ve = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M807-15 700-123q-33 21-71 37-38 15-80 22v-108q20-4 38-12l35-17-153-154v257L234-335H57v-290h144L10-818l74-75L882-90l-75 75Zm37-264-80-79q13-30 19-60 7-31 7-64 0-109-68-195-67-86-173-112v-108q152 26 249 144 98 117 98 271 0 55-14 107-13 51-38 96ZM661-462 549-575v-78q51 23 83 70 31 47 31 103l-1 9-1 9ZM469-655 366-759l103-103v207Z\" })), Ze = iA(Ve), _e = \"data:audio/wav;base64,UklGRmaIAABXQVZFZm10IBAAAAABAAIAQB8AAAB9AAAEABAATElTVBoAAABJTkZPSVNGVA4AAABMYXZmNjAuMTYuMTAwAGRhdGEgiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAA//////7/////////AAABAAAAAgABAAEAAQAAAAIAAQABAP//AAD+////AAD+//7////+////AAD//wAA/v8AAAAA/v8AAP//AAAAAAAAAgD////////+////AAABAAEAAgD/////AQABAAAA//8CAP//AAAAAAAA/v8AAAAA//8AAAEA//8EAAAAAAAAAAAA//8BAP//AQABAAEA/////wEA/v///wAAAAACAAAAAAABAAAA//8AAP//AAACAP//////////AAAAAAEAAAAAAAEA//8AAAEAAQADAAIAAgAAAAAA/v///wEAAAAAAAEAAAAAAAEA//8AAAEAAQD//wAA//8AAAEAAAABAAEAAAABAP//AAD//wAAAgAAAP//AQD/////AAAAAP7/AgAAAAIAAAAAAAAAAAABAAAAAQABAP//AAABAP///v8AAP////8AAP//AAD//wAA//8BAP//AAD///7///8BAP7///8AAAIAAgABAAEA/v8AAP//AQADAAEAAAACAAEA/////////v///wEA/v////7/AAD+////AAAAAAAAAgAAAAAAAAD//wEAAAAAAAAAAQABAAIA/v8AAAAA//8AAAEAAAAAAP//AgD//wEA/////wAAAQACAAAAAAAAAP//AQD/////AQAAAAEA/v8AAAEAAQABAAEA///+////AQD//wEAAgD+//7/AAAAAAAAAQAAAAAAAQAAAAAAAAAAAP//AAD//wEAAQD//wAAAQABAP7///8AAP7/AAABAP7/AQABAAEAAAABAAEAAAD+/wIAAAABAAAAAQD/////AQACAP////8AAP//AQD//wEA/v8CAAEAAAAAAAAAAQAAAAIAAQAAAAEAAgD//wEAAAAAAP7///8BAP//AgAAAP///v8CAAAAAgD///////////7/AAACAAEAAgD//wAAAAABAP//AwAAAAMA//8AAAAAAQD+/wAAAAD//wAAAQD//wEA//8BAP7/AAABAAAA//8BAAAA//8AAP//AQADAP3////+////AgD+/////v8BAAEAAQACAAAAAAAAAAAA//8AAP//AAD+/wEA/v8AAP7/AAD//wAAAQACAAAAAQAAAP//AQAAAAAAAAABAAAAAAD+//////8AAAAAAAD//wAAAAABAAEA//8AAAEA//8AAP//AgD+/wAA///+/wAA/v///wAAAQABAAAAAQD//wAA//8AAAEA//8BAAAAAgABAP//AAACAAIAAQABAP//AAAAAAAA//8BAAIAAAABAAAA//8CAAEA/v//////AAAAAAEA////////AQAAAP//AAD//wAAAAAAAP3/AAAAAAEAAAACAAAAAAAAAP//AAD//wAAAAAAAAAAAAAAAP///v///wAAAAABAAAAAAD//wEAAAABAAEAAQD//wAAAAACAAAAAQD+/wAA//8BAAEAAAD+/wAA/////wAAAAABAAAAAAD//////v8AAAAA//8AAAAAAAAAAAIAAAABAAEAAAABAP7/AAD9//////////7///8BAP//AAD///3/AQABAP//AAD//wAAAAABAAAA//8AAP//AAD/////AQABAAEA//8AAAAA//8BAAMA//8AAAAA//8AAP7/AAD//wAAAAAAAP7/AQAAAAAA/v8CAP//AAABAAIAAQABAAAA//8BAAEAAQD///7/AQD//wAAAQABAP//AAD//wEAAAAAAAAAAQAAAAIA//8AAP////8AAP//AQD//////v///wEA/v8AAAIAAgACAAEAAAAAAAEAAAAAAAAAAAAAAAAAAQD//wAA/////wAAAQACAP////8AAAAAAAD//wAAAQD+/wEA//8AAAEAAwD//wEAAQAAAAAAAAABAP////8AAAAAAQAAAAAAAAAAAAEAAQAAAP////////7/AQABAAEAAQD///////8BAAAA//8AAAAAAgABAAEA/v8BAP7///8BAP3/AQABAAIAAAD//wEAAAAAAP//AAABAAIA//8CAAAAAQAAAAEA//8BAAAA/////wAAAAD//wEAAQD//wAAAAAAAP//AAAAAAAAAQABAAAAAQAAAP//AQD//////v8AAAEAAAAAAAAA//8AAAAAAAACAAEAAQAAAP//AAABAAEA/////wAAAgABAAAAAAAAAAEAAAABAP//AQABAP7////+/wEAAAAAAP//AAABAAAAAAABAAEAAAAAAAAA//8BAP///f/+/wEAAQD///7///8AAAAAAQAAAP////8AAAAAAAABAAAAAQD/////AAD//wEA//8AAAIA//8CAAAA//8AAAAAAAD+/wEAAAD+/wAA/////wAA////////AAAAAAAA//8BAAAAAAD//wAAAAD//wEA//8AAP//AQD+/wAAAAAAAP7/AAD+/wEAAQABAP//AAABAAEAAQD//wAA/////wEA//8AAAAAAgAAAAAA//8BAAAAAgAAAAAAAAAAAP7/AQD//wAAAAD+/wAAAAADAAIA/////wAAAQD//wIA//8BAAEA/v8AAAIAAAAAAP3///8AAAAAAAAAAAAAAAABAP///////wAA//8AAAEAAQABAAEAAQABAAAAAQAAAAAAAQABAP7/AQD//wAAAQABAAEA//8BAAAAAgAAAAEAAAABAP//AAD/////AAD//wIA/////wIAAAD///7/AAAAAAAAAAACAP//AAABAP////8AAAAAAAABAAAAAgAAAAAAAQD+/wEA/////wAA/////wAAAAAAAAAA/v//////AAAAAP//AAABAAAAAQAAAAIAAAACAAAA//8AAAAA//8AAP7/AAAAAP//AAACAP//AQABAP//AQABAAAA/////////v8AAP//AQAAAAAA///+/wAAAQD+/wEAAQAAAAEA/////wAAAQD//wAA//8AAAAA/v8BAAEA//8AAP7//v8BAAAAAAAAAAEA//8AAAEA/////wAAAAD//////////wEAAAABAAEA//8CAAEA/f8AAAAA//8BAAAABAABAAEAAQAAAAAAAAAAAP7///8AAAAA/v8BAAAA//8AAAIA//8AAP////8BAP//AAAAAAAAAAD/////AQD///7/////////AQD8////AgABAAIA////////AAD//wAAAAABAAAAAAAAAAEAAgAAAP//AQD//wAAAAAAAP/////+/wAAAAABAAAAAwABAP///////wEAAAADAP//AQACAAAA//8CAAEAAAAAAP///////wIAAAAAAAAAAQAAAAAAAgD//wEAAAABAAAA/v8AAAAAAAAAAAAAAAAAAAEA/v8AAP//AQD//wAA//////7///8AAAAAAAAAAP7/AQD//wAA//8AAAEAAAABAAEAAQD/////AAD//wEAAAD/////AQAAAAEAAAD//wEAAAD/////AgD//wAAAQD//////////wAAAAD//wAAAAABAAAAAAD//wAAAQD///7/AQD//wEAAAD/////AAD//wEA//8AAAEA//8CAAAAAQD//wEAAgAAAAEAAwAAAAAA/v8BAAEAAgD//wEAAAAAAAAAAAD//wEA//8AAAAAAQACAP///////wAAAQABAAEAAAAAAAEAAQD+/wEA/f////////8AAAAA//8AAAEA//8BAAAA/v///wEAAAAAAAEA/////wAAAAAAAP//AAAAAAIAAAABAAAA/////wAAAAD//wAA/v8AAAMAAQD+/wEAAAABAAEA//8BAP//AgAAAAAAAAD//wAA/////wEA/v8CAP3/AAACAP3/AQABAAAAAQACAAEA/v8AAAAA//8BAAAAAgAAAAAAAgACAAEA/v/9/wAAAQABAP7///8AAP//AgD+/////v8CAP////8BAP//AQACAAEAAQABAP//AAD///7/AAABAAEAAgD//wEA//8CAAEAAQABAAEAAAABAAAA/v8AAAEA/v8AAP//AAABAP//AQAAAAEAAgAAAAAA/v///wEAAQAAAAIAAAD/////AgAAAAEA/v8AAP7/AQAAAAAAAQAAAAEAAAACAAEA//8BAP////8AAAIAAAAAAP//AAAAAAIAAAAAAAAAAwABAP///v8BAAAAAAAAAP3/AAABAAEA/v////////////3//v8AAAAAAQABAAIAAAD+/////v8AAAAAAQABAAEAAQAAAP//AAAAAP//AQAAAP//AAABAAAAAAAAAAAA////////AAAAAP//AQD/////AAABAAEA//8CAP7///8AAP7//v8BAAEAAAD+/////////wEAAAAAAAAAAgD//wAAAQAAAP7/AQABAP//AQAAAAAAAAD/////AAACAP////8BAAAAAAD//wAA//8AAAEAAQABAAAAAAABAAAAAQD+/wEA/v8AAAEAAQD/////AAD//wAAAQABAP7//v//////AAACAAAAAAAAAAAAAAACAAAAAQAAAAAA//8BAP//AQD//wAA///+/wIAAQD//wAAAAD//wAA/v8AAP3///8AAAAAAAAAAAAA/f8AAAAA//8CAP7/AAD///7/AAAAAAAAAAD//wEAAAAAAAEAAAAAAAAA//8BAP////8BAP7///8CAAEA//8BAP3///////////8BAAAAAAAAAAEAAgD+//////8BAAMAAQADAAEAAAACAAAAAQD/////AAABAAMAAQAAAP//AQD//wAA//8AAAAA//8CAP7//////wAAAAAAAAIA/v8AAP//AAACAP//AwD//wAA//8AAP//AwD//wEAAQABAAEAAQACAAEAAAD//wAA//8AAAIAAAAAAP///////wAAAQD//wIA//8BAP7/AAD///////8AAAAAAAAAAAEAAAD//wAAAQD//wEA//8BAAAAAAD/////AgABAAIAAAABAAAAAAAAAP//AAAAAAAA//8AAAAAAAD/////AQAAAAAAAQD//wAA///+////AAAAAAEAAgABAAEAAAAAAP//AQAAAAAAAQD+/wAAAAABAAEAAAD/////AQABAP7///8AAAIAAAACAAAA//8AAP//AgACAAAA///+/wAAAAABAAAAAQAAAAEA/v8BAAEA//8CAP//AQD+/////v8AAAAAAAACAP//AAD+/wIA/v8BAAAAAAD/////AAAAAP7///8AAP7//////wEAAAABAAAAAAD//wAAAAAAAAAAAgACAAAAAAABAAAA/f8AAP7/AgAAAAEA//8BAAAAAAD///7/AQD//wAAAAAAAAEAAAAAAAEAAAAAAAAAAQAAAAAA//8AAAAAAAABAP///////wAAAgABAAEA//8AAP//AAACAP//AQABAAEA//8BAAAAAAABAAAA//8AAAEAAAAAAAIA/v8BAP//AQD//wEAAAABAAEAAQACAAEAAAAAAAEAAAABAAAAAAD/////AAABAAEA//8AAAAAAQABAP//AAAAAP//AAD/////AQD//wAAAAABAAEA//8BAAAA//8AAP///f/+/wAA/////wAAAQAAAAIAAAAAAAAAAAD+/wEA/f8CAAAA//8AAAEAAgAAAAMAAAABAAAAAAAAAP//AQAAAAAAAQABAAAAAQAAAP//AAAAAAAA//8AAAAAAAABAAAAAQAAAAAAAAABAAIAAAAAAP7/AQD//wAAAAD+////AAAAAAAAAAABAAAA/////wAA//8AAAAAAAD/////AgD//wAA//8CAP//AQACAAEA/f////////8BAAIAAQABAP//AAD//wAA///+////AAD+/wAAAQD/////AAAAAAAA/////wAAAAABAAAAAQAAAAAA//8AAAIAAAABAP//AQABAAEA//8AAAAAAAADAAEAAAABAP//AgD//wMA//8AAAAAAAD//wAAAAD9/wEA///+/wAA//8BAAEA//8BAAAA//8AAP///v8BAP///////////v8BAAAAAQABAAAAAAAAAAAA//8AAP7/AQAAAAAAAAAAAP7/AQAAAAAAAgABAAEAAAABAAEAAAAAAAAAAAD+/wAAAAD//wEAAAAAAAAAAAAAAP//AgABAAAAAAABAAEAAAD/////AAAAAP//AAABAP////8BAAAAAQABAP7//v/+////AQAAAAAAAQAAAAEAAgAAAAAAAQAAAAEAAAD+/////v8BAP//AAABAP//AQABAAAAAAD//wAA//8CAP//AAAAAAEAAAABAAAAAAAAAP//AAD+////AwAAAAAAAQD//wEAAAACAAEAAAADAAAAAAD/////AAAAAAEAAAABAAAA//8AAAEA//8BAP///v8AAP//AAD//wAAAQABAP//AQAAAAAA/////wEAAQAAAP////8AAAEA//8BAAAAAQAAAP////8AAAAAAQAAAAIAAQAAAAEAAAAAAAEAAAD//wEAAAAAAP////8AAAAA//8BAAEAAAAAAAIA///+/wIA/v8BAAAAAQACAAAAAQAAAP7///8AAP//AAAAAAEAAAAAAP7/AAD+////AAAAAAAAAAD//wAA/v8BAAMAAAABAAIAAgD//wAA//8BAAEA//8BAP7/AAAAAP7///8BAAAAAQAAAP7/AQD/////AAAAAAEAAAABAP//AQABAAAAAgABAAAAAAAAAP///////wEA//8AAAEA//8AAAAAAQAAAAIAAAABAP7//////wAAAQABAAAAAAABAAEA///+/wAA//8BAP///v8AAP///v8BAAAA//8CAAAAAQAAAAEAAQABAAAAAAD+/wAAAAD+/wAAAAAAAAAA/f////////8AAAAAAQABAP///////wEA//8BAAEAAAAAAAAA/////wEA/v//////AAAAAP//AAABAAAAAAD+/wAAAAD9////AQAAAAEAAwD//wEAAQAAAP//AgAAAAAAAAD+/wIAAAAAAAAAAAAAAAIA//8AAAEAAQACAAAAAQD//wAAAAD//wIAAQABAAAAAAD//wEA//8BAAEAAQAAAAAAAQABAP7/AAD//wEAAAACAP7/AQAAAAAAAAD//wIAAQACAAIAAQAAAAAAAAAAAP3///8BAAAAAQACAP//AgD9/wAAAAD//wEA/v////////8AAAAAAAD//wEAAQD//wMAAQAAAAEA//8AAAEA//8AAAAAAAACAAAAAAD//wAAAQD///////8AAAAA//8BAAIA/v8BAAEA/f8AAAAAAAAAAAAAAgD/////AAD+/wAAAAD//wAAAAAAAP//////////AgABAP///v8AAAIAAQAAAP//AAABAAAA/////wAAAAAAAAEAAAABAP///v///wIA//8BAAEAAQAAAAAA///+/wEAAAAAAAAA/////////v8BAP3/AAAAAAAAAAAAAAAA//8AAP//AAAAAP//AAABAAIAAAACAP////8DAAAAAAABAAAAAwABAP//AAABAP//AAAAAP////8BAAAAAgD//wAA///+/wAAAQD//wAA//8AAP7///8AAAAA/v8AAAAAAQD//wEA/v////////8AAAAAAQAAAP//AQACAAAAAAAAAP//AAD//wAAAAD//wAAAAD+/wAAAAAAAP//AQD//wAAAgAAAAAAAQABAAAAAwD+/wAAAAD///7/AQD//wIAAQAAAP//AAD//wAA//8CAAEAAAAAAAAA/////wAAAAD//wEAAQD///////8BAAAA//8BAAEAAAAAAAAA/v///wEAAAAAAAAAAAADAAAAAAAAAAAAAQABAAEAAAD+//7//v8AAP//AQAAAAAAAAABAAEAAgAAAAAAAQD//wAA/f8AAAAAAAABAAAAAQAAAAAAAAAAAAIA//8BAP///////wIA/////wAAAAABAAEA//8BAAAAAAD//wAAAQD//wEAAAAAAAIA/v8BAP//AAAAAAEAAAABAP//AAAAAAAAAQABAP7/AAABAAAAAQD//wIAAAAAAAEA///+/wAA//8AAP//AAAAAAAAAAABAP///////wIAAQAAAAEAAQAAAP7/AQAAAAAAAQAAAAAAAQD/////AQAAAAAA///+//7/AAD+/wEA//8AAAAA///+/wEAAAABAAIAAQABAAAA//8AAP//AAD//wAAAAD//wAAAAAAAP//AQAAAAAA////////AQAAAAAAAQD+////AQABAP7/AAD///7/AgD//wAAAAAAAP//AAAAAAEA//8BAAEAAgAAAAIAAAD//wEA/////wAAAQD///7/AQD//wEAAQD/////AAAAAAEAAgAAAAAAAQD//wEA//8AAP7//////wAA//8BAAEA//8BAAAAAQD/////AAABAP//AAACAP//AQAAAP//AAABAP////8AAAAAAAABAAEAAwABAAAAAgD//wAAAAD//wEAAAABAAAAAAABAAEA/////wAA//8AAAIAAAAAAAEAAQABAAEAAQABAP//AgAAAAAA//8BAP3//v///wAA//8AAAAAAQAAAP//AQD//wEAAAACAAIAAAABAAAA//8BAAEA//8BAP//AAAAAP//AQAAAAIAAAD//wAAAAAAAAEA////////AQAAAP//AQD//wAAAQD+/wEAAAABAP///v///wAAAAAAAP//AAAAAAIAAQD//wAAAgD+/wAAAAD//wAAAAABAP///P//////AAACAP////8AAAIAAAABAAAAAAAAAAAA//8AAAAAAQADAP//AQAAAAAAAAABAAEAAQAAAAAA/v8AAAAAAAD//wAAAQD//wAAAAD//wAA/v////////8CAAEA/v8BAP7/AAAAAAAA//8AAAEAAAD//wIAAQAAAAIAAQAAAAAAAAD///7/AQABAP//AAAAAP//AAACAAEA//8BAAAAAwAAAAAAAAD//wEAAAD//wAA///////////+/wAAAQABAAIAAAABAAEAAAD//wEAAAD/////AAD+/wIAAwABAAEA/v8BAAEAAAD//wAA//8AAP//AAAAAAEAAAAAAP//AAAAAAEAAQABAAEA/v///wAAAAD//wEAAAACAAAA/f/+/wAA/v///wAA//8AAAEAAQD///7/AAAAAAAAAAABAAAAAAACAAAAAAABAAAAAAABAP//AQD//wAA//8BAP7/AgABAAEAAQAAAAAAAQD//wEA/v8AAP////8AAP///////wIAAQD//wAAAAD//wAA/v///wAAAQD//wIA/////wEAAAAAAAIAAAABAAAAAAD//wEA//8AAAAA/////wAAAQAAAAAAAAD//wEAAQAAAAAAAAACAP///////wAAAgD//wAA/v8AAAIAAAAAAAEAAAABAP//AQABAAEAAQAAAP///v8BAAEAAAAAAP////8AAAAAAQD//wIAAQAAAAEAAAAAAAAA//8BAP//AAAAAP7//v///wEAAAAAAAIAAAAAAP//AAD//wEA//8BAAAAAAABAAEAAAABAP7///8AAAIAAAABAP//AAD//wEAAAAAAP//AAAAAAEAAAAAAAAAAAAAAP7/AQD//wAAAQD+/wEA/v8BAP7/AAABAAEAAAACAAIAAAADAAAA//8AAAEAAAABAP//AQD//wIA/////wEA//8AAAEA//8AAAEAAAAAAAAAAQABAAAAAAAAAAAAAAD//////////wAA//8AAP7/AAD+/wAAAQAAAAAA/////wAABAAAAAAA//8AAAEAAAAAAAAA/v8AAP//AAAAAAAAAAD//wAAAAD///////8BAAEAAAD/////AgABAAEA/v/+/wAAAQACAAEAAAD//wAAAwABAP//AgD+/wAA/v8AAAAAAAAAAAEA//8AAAEAAAD+/wEAAAAAAAEAAgAAAAEAAAABAP//AQD+/wIA/////wAAAQD//wAAAQD+/wAAAQABAAAA////////AAACAAAAAQAAAAIA//8BAP///v///wEA//8BAAEAAQD+/wAAAQD9/wAAAQAAAAEAAAABAAAAAgAAAP//AAD+/wAA/f8AAAAA////////AgAAAAcAAQD7/wEA/f8AAAIA//8GAP7//v/+//b/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+P/F//z/rv/i/7r/6v/Z/wYABwAoADAAKQBOABkATAD0/zQA1P8PANv/0//v/6//FwCi/ywAxP8oAPn//v82APT/WwD4/00A+/8yAPv//f/8/83/+v+w/+T/sf/j/9b/AQACACoAIgAtAEIAHwBPAAEAQADe/xcA0v/k/+X/t/8IAKv/IgC//yEA6/8EACMA9/9PAPf/VAD+/zcA+/8JAPn/1P8AALf/6f+w/+P/zf////j/HAAdAC0APgAfAEsABwBCAOP/IADV/+//2v/B//3/rP8PALv/GADd/xEAFgABAEMABABaAP//QgACABcA+//n/wAAwP/w/67/4v+///3/6f8WABcAKQA0ACIARgAQAEcA8f8pANn/9f/U/87/7f+v/wgAtP8RANP/FgANAAIAOQACAFQA/f9HAAAAIAABAO3//P/E/wEAs//q/7n/9P/i/wYAEQAZADEAJABBABMASAAAADEA3/8CANL/1v/g/7H/AACy/w8Axf8ZAPv/CQAzAAIAVQD//1AAAAAsAAIA9v/7/8r/AwC2//P/tf/m/+H/AwADABEAKQApADoAHgBHAAgAPADr/wkA1//f/93/vP/6/7L/CgDA/x4A7/8hACkAAgBPAPz/UgD1/zIABAAEAPz/0v/5/7f/AACy//H/2f/+/wEAAAAkABUAMwAdADoAEQA9APD/EADU//L/1P/H/+z/tf8LALv/HADk/ygAGgADAEMA//9TAPn/QAAAABAAAQDc//z/wf8DALD/7P/Q//z/9/8HABoAFgA3ACMAMAAOADwA+P8ZANv/+P/Y/9H/5v+8/wUAu/8WANf/HgAMAAoAPQABAFMA/f9HAP7/HwAEAN//+v/H/wMAs//2/8r/8//y/wMADgAQAC4AIwAyABMAJwD8/xcA3v8LANP/5v/f/8j/AgC4/w4A1P8eAAQACgAxAAEAUgD+/0gA/v8nAAIA8f/5/8r/BAC6/+3/wP/l/+b/AQAIABkAIwArAC4AIAAoAAkAGADj/w0A0f/r/9//0P8DAL3/CgDN/xkA//8IACUAAgBJAAAATwD+/ysAAQD7//3/z/8DAMT/+f/K/+L/5P/1////EgAcACYALgApAC4ACwAcAPL/EADZ//L/1f/U//f/uv8KAMX/DwDu/wcAHwADAEUABgBNAAEANQAAAAYAAQDf////xf/+/9P/4f/b//X/9v8LAA4AGAAlACoAMAAQABkA9v8TAOL/+f/W/9r/8f/I/wcAxP8MAOr/BwATAAQAOAAGAEcAAABCAAEADwAEAOP//v/F/wIAzf/o/93/8P/s/w4ACwAZACEAKgAyABMAIQD5/xgA6v8DANb/4P/y/9H/AQDJ/wkA4/8DAAoA/f8wAAQAQwABAEAA//8VAAIA7P/+/8r/BADP/+v/2v/s/+n/CwAIAA0AHAAjADQAHAAkAP//GQDy/wQA5v/i//b/0P/7/8f/AADh/wMAAAD+/yUAAAA7AAEAOAAAABwAAAD6/wAA1/8CAMr/AADb/+3/5f8BAAIACAAVABcALwAfACgA+/8XAPn/DgDe/+//7v/Q/wMAz/8JAOP/CwDx////EAAHADEAAQArAAIAHQAEAAcAAADr/wEAzv8CANj//f/k/wEA+f/+/xQABwAqAB4ALAD+/x4A8P8SAOb/8//f/9j//f/N/wEA3v8LAO7/AgAMAAQALAAEAC0AAQAdAAQADwABAPP/BADV/wMA0/8AAOH/AQD1/wAAEAADACQAGwAwAAQAHwD0/xUA8f/4/+L/2//7/8z/AwDc/woA6f8AAAQAAwAoAAcANAAAACcAAgAUAAEA+P8CANv/AgDR/wEA4v8BAOz/AgAIAPv/JAAVADMAFAAhAPP/GQDz//7/3P/l/+3/z/8BANf/CgDn/wkA/P///xoABwAwAAIAJwACABcAAwABAAIA4f8BAND/AgDd//3/6P8CAAYA/f8YAAwALwAZACUA9v8bAPj/AwDq/+r/7P/S//7/1/8EAOX/CQD6//7/GQAFAC8AAQApAAEAGQACAAMAAgDm/wEAzv8BANv//v/p/wIA//8BABMABQArACAALAABAB4A8f8NAOv/7v/m/9n/+P/R/wMA4f8OAPT/AQATAAMAKwAHACoAAwAbAAMABQADAO7/AQDU/wEA2f8AAOL////3////EgAAACUAGgAvAAUAHQD2/xIA9f/0//T/3P/4/8///f/h/wIA7f8AAAoAAQApAAQALQADACAAAgAPAP//9P///9r//f/T/wAA3f/9//D/AQAQAP//HAAHAC8ACQAfAPv/GAD+//f/+P/j/wEA0v/+/9n/AADq/wIABgD//x0AAQAuAAEAIwAAABQAAwD8/wEA3/8AAM//AADe////7f8BAAwA//8ZAAMALwAAACEA//8dAP3//v/9/+n////U//z/1v8BAOT/AAD+/wAAGwD+/ywA/v8kAAIAGAD///3////q/wEA0P///97/AADk/wAABAAAABUAAQAqAAEAKQAAABwAAAAFAP//6f8AANr////X/wAA4/8AAPj/AgAUAAAAKgD//ywAAAAcAP7/AQAAAOv/AADU/wAA2v8CAOP/AAABAAAAFgABABsAAAAqAAEAHwAAABQAAgDv/wEA3v///9H////f////7/8BAAoAAQApAAAALgD//yEAAQAIAAAA8P8BANr//v/V////4f8AAPf//v8UAAAAFAAAACYAAQAhAP7/GwD+//T/AADo/wIA1v8CANr/AgDp/wEABgAAAB8AAQAsAAEAJAAAAAwA///z/wEA3/8AANT/AADh/wEA9P///xQAAgASAAAAJQAAACEAAAAaAP//+v8BAOj////W////2P8BAOf///8DAAAAHwAAAC4AAAAlAAAAEgAAAPL/AQDm////0f8CAN3/AADr//7/EQD//xAAAQAhAAIAJQAAAB8AAAABAP//6v8CAN//AQDX/wAA4/8AAPr/AAAXAAAAKgABACgAAAAbAP///f8AAOj/AADU/wAA2v///+f/AQANAAMAEQD+/xwA/v8kAP7/IQABAAgA/v/p////5/8AANf/AQDd/wEA8v8BABMAAQAjAAAALgAAACAAAQADAAEA7f8BANn/AgDY//7/4P/+/wEAAAAXAAIAFAAFACUA/P8jAP//EgAAAO//AQDo////1/8AAN3/AADx//7/DgAAAB0AAQAoAAAAIwAAAAoAAQDv/wMA4f8AANn/AQDi/wEA+v///xgAAAAQAP3/IwD//yUA/v8XAAAA7/8AAOv/AADc/wAA3P/+/+v/AQALAAEAGgACACkAAAAkAP7/EAABAO/////q//7/1/8AANz/AgDw/wEAEgD//w8AAAAcAAIAJQAAAB0AAAD2////7P8AAOP/AgDa/wAA5P8BAAQAAQAWAAAAIgAAACMAAAAaAP//+P///+v/AQDZ/wAA2////+7/AAARAAAADgAAABYAAAAhAAAAIAABAPz/AQDt/wAA5P8AANr/AQDg/wEA/P8BABcAAAAhAP//KQD//xwAAAD8/wEA7v8AAN3////Z/wAA6f8BAA0AAAARAAEAEQAAACMAAAAgAAEA/f8CAO3/AADv/wAA3v8BANv////1////EgAAABkA//8nAAAAIgAAAAMAAADu/wAA6P8CANn/AQDg////BQD//xMAAQAOAP//IAABACYAAAAGAAAA6f////H/AADg/wEA2f8AAO3///8PAAAAFQACACQAAAAkAAEADQABAO//AADp/wAA2////9z/AQD7/wEAFgAAAAwAAQAXAP7/JQD9/xMAAADx/wAA8f8AAOr/AADc/wEA4/8BAAkAAAAVAAAAIQD//yYA//8UAAEA9P8BAOz/AADf/wAA3P8AAPP/AAAQAAAADQABAA0AAAAlAAEAGAD///H//v/0/wEA7v8CAN//AADg//3/BAACABUAAQAfAAAAJwABABgAAQD0//7/7f///+L/AADa/wIA8P///w4A//8SAAMACQAAACAAAQAgAP//+v////P////y/wEA4/8BANr/AQD9/wAAEwD//xkAAQAjAAAAIgABAPz////s/wAA6v8BANX/AQDr//7/BwABABMAAAAHAP//FwAAACYAAAD//wEA9P8BAPb/AQDu////2v8BAPn/AAATAP//FwD//yEAAAAjAAAAAgAAAOn/AQDr//7/2P8CAOT/AAABAP//FgABAAUAAQATAP//IwAAAAEAAgDy/wEA9/8AAPb/AADb/wAA6/8BABAAAAATAP7/IQAAACYA//8UAP//7/8AAPD/AADd/wEA3P/+//7///8OAAAACgAAAAgAAAAhAP//CQACAPT/AQD2/wAA9v///97////m/wIADgABABMAAQAfAP//JwAAABMAAADw/wAA8P///+r/AQDb/wAA9f8AAA8AAAARAAIABAD//wYA/v8HAAAAAQD//wMAAgAGAAAA7f8AAOz/AAALAP//DwACABQA//8bAAAAHgD///f/AADq/wEA6/8BANj//v/t/wAACAD+/xAAAgAEAAAABAABAAcAAQADAAAA//8AAAUA///1/wAA5f///wIAAAAOAAAAEAAAABsAAAAhAAAA/v8BAOj////y////3f8AAOf/AQAGAAEADAAAAAcA//8BAP//CQABAAMA//8BAP//BQAAAAAAAADo/wAA+/8AAAoAAAALAAAAFAAAACAAAQAGAAIA7f8BAPH/AADm/wMA3P8CAP7/AgASAP//CgD//wAAAAAIAP//BQD//wEAAAACAP7/BAAAAPz/AwD8////BAAAAAEA//8HAAAAHQAAAAgA/v/x//7/8f///+f/AQDg/////P///woAAAAMAP//AAABAAYA//8EAAAAAgAAAAUAAAACAAAAAwAAAAIAAAABAAAAAQABAAAAAgAcAP//DgD///T/AQDx/wAA9P8CAOH/AAD3/wAACQAAAAoAAQABAP//AwAAAAcAAAD+/wAAAgACAAEAAAD+////AwD+/wAAAAABAP//+v8BABEAAQATAAAA9f/+//L//f/z/wIA6f8AAPb/AQAFAP//DAAAAAAAAAAFAP//BQD//wEA//8DAAEAAQAAAP7///8AAAAA//8BAAIAAAD+/wAAEAABABYAAgD6/wEA8v8BAPX/AwDp/wAA8////wMA//8JAAEABAABAAEA//8FAAEA//8AAAMAAQACAP//AQAAAAEAAgAFAP//AQABAAAAAQAAAP//EQABAAAAAAD5/wEA+P8AAPr////6/wAA+/8BAAIA//8BAAAA//8CAAUA//8BAP7/AAABAAEAAgAAAAAAAwAAAAEA/v8DAAIAAAACAAQA//8TAAAA/P8BAPr////3//////8AAPz/AQD7/wEAAgD/////AAABAAEABAAAAP//////////AAAAAAAAAAADAAAAAwAAAAAA//8EAP///v/+/xAA//8HAAAA+/////j/AQD8////AAD///n///8AAAAA//8AAP////8DAP//AgAAAAAAAAACAAIAAAD+/wAAAQD//wAA/////wIAAgD9////CQACAAYA///9////+f8BAPr/AQAAAAIA/v///wAA//8AAAAAAAAAAAEAAAABAAAAAgAAAAEAAAAAAAEAAQABAAAAAgABAP//AAD//wEAAAD///////8BAAIAAQAAAAAA/v/+//////8BAAAAAQABAP//AAD///////8BAAAAAQABAP////8CAAEAAQD//wEA/v//////AQAAAAAAAAAAAAAAAAD9/wMA/////wAAAQD+/wEA/v/+//7/AQD//wMAAAAAAAAAAAABAAEA//////7/AAACAP3/AAD//wAAAQAAAP//AQD//wAAAAAAAAEA//8CAP//AAAAAAAA/v8AAAAA//8BAP//AAABAP//AAAAAP//AQD//wAAAQABAAAAAAABAAEA/v///wAAAAD//////////wAAAAAAAP//AAD////////8/wIAAAADAAEA/////wEA/v8BAP7/AgAAAAEAAgAAAP//AgD/////AQD//wEA//////7/AQD//wMAAAAAAAAA//8CAP//AQAAAP//AAACAAAAAAABAP//AQD+/wAA/////wAA/f///wAAAAAAAP7/AAAAAAAAAgD//wEAAQACAP//AAAAAAEAAQD//wAAAAAAAAAA//8BAAMA/v8AAP7/AQAAAAAAAQAAAAAA///+//7/AAAAAAAA//8BAP7/AQAAAP//AQABAAAAAQAAAP//AAD//wIA/v///wAAAQABAP//AAD//wEA//8BAP//AgAAAP///////wAAAQABAP//AwABAAAAAAAAAAAA/////wIAAwACAAAA/v8BAAAAAAAAAAAA//8AAP////8AAAAA/////wAA/////wEA/v8CAAEAAQD//wAAAAABAAAAAAD//wEAAQABAAAA//8CAAAAAAAAAP7/AAABAAAAAQABAAAAAgABAAAAAQD//wEAAwD+/wAA/v8AAAEAAAAAAAAAAAAAAAEAAAD//wMA/v///wAAAAACAAEAAAAAAP7///8DAAEAAQD//wEA/f8BAAEAAQD//wEAAQABAAMAAgAAAAEA//8AAP//BAAAAAIA/v//////AQABAAAAAAD//wEAAAACAAIAAQAAAAAAAgAAAAAAAAABAAIAAAABAAIAAQAAAP////8AAAAAAAD//wAAAQACAP//AAAAAAAAAQAAAAEA//8AAAAAAAD/////AQD//wAAAQD9////AQAAAAAA//8BAAAA///+/////v8BAAAAAQAAAAAAAAAAAAIA//8BAAAAAAACAP//AQD//wAAAAD/////AAD9/wAAAAACAAAAAgAAAAEAAQABAAEAAAAAAAEA//8AAAEAAQACAAAAAQAAAAEA//8BAAIAAAACAP//AAABAAAAAAAAAAAAAAD//wAAAQD/////AAAAAP////8AAAEAAAAAAP7///8BAAIAAQD//wEAAQAAAP//AgAAAAAAAAD//wAA//8CAP7/AQAAAP7/AAD+////AAAAAAAAAQABAAAA//8AAAEAAAABAP7/AAAAAP7/AAD+/wAAAQABAAEA/////////v8BAP///v///wIAAAAAAAAAAQAAAAIAAQAAAAAAAAABAAEAAAAAAAAAAAD//wEAAQD//wAAAQABAAAA/v/+/////////wAAAAD//wAAAAD/////AAAAAP7/AAD//wIA//8CAP//AQAAAP////8AAAAAAQABAP////8AAP//AQACAAAAAQAAAAAAAAAAAAAA//8BAAAAAAD+/wAA/v///wEAAAD+//7///8CAP7/AAABAP3/AwAAAAAAAAABAAIAAAABAAAAAQABAAIAAAAAAP//AAAAAAEAAAACAAEAAAACAAAAAAABAAAAAwAAAAAAAAD+/wAAAQD9//////8BAAAA/v8AAAAAAAAAAAAAAAD//wMA/v8BAAEAAQACAAAA/v8BAP//AwABAAIAAQABAP//AQAAAAEAAAAAAAEA//8AAAAAAAD/////AAABAAEAAAAAAP////8AAAAAAAAAAAAA/v8AAP//AQAAAP//AAABAAIAAQAAAAAAAgABAAAA/////wAAAQABAP//AQABAAEA/////wAAAAAAAAAAAAABAAEAAQAAAAAAAAAAAAAA//8AAP7/AQD9/wAAAgD//wEAAQABAAEA/v8AAAEA/////wAAAAAAAP//AAABAAAAAAAAAAAA//8CAP//AAABAAEAAQABAAAA//8BAAIAAgD//wAA/v8AAAEAAAD///7/AAAAAAEAAAABAAAAAQABAAAAAQACAAAA///+/wAAAQABAP7////+/wAA//8AAAAAAgAAAP//AQD9/wAAAAD//wAA//8AAAAAAQAAAAAAAQD//wAAAAAAAP//AQABAAAA/v8CAP//AAD///////8AAAAAAAACAAEA//8BAP7/AAAAAAEA//8BAAAAAQD//wAAAQD+/wAA/////wAAAAD//wAAAQABAAAA//8AAAEA/////wAA//8AAAAA/v/+/wEAAgABAP//AgD//wIA/////wAA//8AAAEAAQAAAAAAAQAAAAMAAAACAP//\", re = {\n general: {\n primaryColor: \"#42b0c5\",\n secondaryColor: \"#491d8d\",\n fontFamily: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif\",\n showHeader: !0,\n showFooter: !0,\n showInputRow: !0,\n actionDisabledIcon: Me,\n embedded: !1,\n flowStartTrigger: \"ON_LOAD\"\n },\n tooltip: {\n mode: \"CLOSE\",\n text: \"Talk to me! 😊\"\n },\n chatButton: {\n icon: Ae\n },\n header: {\n title: /* @__PURE__ */ l(\"div\", { style: { cursor: \"pointer\", margin: 0, fontSize: 20, fontWeight: \"bold\" }, onClick: () => window.open(\"https://github.com/tjtanjin/\"), children: \"Tan Jin\" }),\n showAvatar: !0,\n avatar: $A,\n buttons: [Z.NOTIFICATION_BUTTON, Z.AUDIO_BUTTON, Z.CLOSE_CHAT_BUTTON],\n closeChatIcon: Fe\n },\n notification: {\n disabled: !1,\n defaultToggledOn: !0,\n volume: 0.2,\n icon: Le,\n iconDisabled: Re,\n sound: _e,\n showCount: !0\n },\n audio: {\n disabled: !0,\n defaultToggledOn: !1,\n language: \"en-US\",\n voiceNames: [\"Microsoft David - English (United States)\", \"Alex (English - United States)\"],\n rate: 1,\n volume: 1,\n icon: Je,\n iconDisabled: Ze\n },\n chatHistory: {\n disabled: !1,\n maxEntries: 30,\n storageKey: \"rcb-history\",\n storageType: \"LOCAL_STORAGE\",\n viewChatHistoryButtonText: \"Load Chat History ⟳\",\n chatHistoryLineBreakText: \"----- Previous Chat History -----\",\n autoLoad: !1\n },\n chatInput: {\n disabled: !1,\n allowNewline: !1,\n enabledPlaceholderText: \"Type your message...\",\n disabledPlaceholderText: \"\",\n showCharacterCount: !1,\n characterLimit: -1,\n botDelay: 1e3,\n sendButtonIcon: ze,\n blockSpam: !0,\n sendOptionOutput: !0,\n sendCheckboxOutput: !0,\n buttons: [Z.VOICE_MESSAGE_BUTTON, Z.SEND_MESSAGE_BUTTON]\n },\n chatWindow: {\n showScrollbar: !1,\n showTypingIndicator: !0,\n autoJumpToBottom: !1,\n showMessagePrompt: !0,\n messagePromptText: \"New Messages ↓\",\n messagePromptOffset: 30,\n defaultOpen: !1\n },\n sensitiveInput: {\n maskInTextArea: !0,\n maskInUserBubble: !0,\n asterisksCount: 10,\n hideInUserBubble: !1\n },\n userBubble: {\n animate: !0,\n showAvatar: !1,\n avatar: ke,\n simulateStream: !1,\n streamSpeed: 30\n },\n botBubble: {\n animate: !0,\n showAvatar: !1,\n avatar: $A,\n simulateStream: !1,\n streamSpeed: 30\n },\n voice: {\n disabled: !0,\n defaultToggledOn: !1,\n language: \"en-US\",\n timeoutPeriod: 1e4,\n autoSendDisabled: !1,\n autoSendPeriod: 1e3,\n sendAsAudio: !1,\n icon: Ye,\n iconDisabled: We\n },\n footer: {\n text: /* @__PURE__ */ X(\n \"div\",\n {\n style: { cursor: \"pointer\", display: \"flex\", flexDirection: \"row\", alignItems: \"center\", columnGap: 3 },\n onClick: () => window.open(\"https://react-chatbotify.com\"),\n children: [\n /* @__PURE__ */ l(\"span\", { children: \"Powered By \" }, 0),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: {\n borderRadius: \"50%\",\n width: 14,\n height: 14,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n background: \"linear-gradient(to right, #42b0c5, #491d8d)\"\n },\n children: /* @__PURE__ */ l(Ae, { style: { width: \"80%\", height: \"80%\", fill: \"#fff\" } })\n },\n 1\n ),\n /* @__PURE__ */ l(\"span\", { style: { fontWeight: \"bold\" }, children: \" React ChatBotify\" }, 2)\n ]\n }\n ),\n buttons: [Z.FILE_ATTACHMENT_BUTTON, Z.EMOJI_PICKER_BUTTON]\n },\n fileAttachment: {\n disabled: !1,\n multiple: !0,\n accept: \".png\",\n icon: ee,\n iconDisabled: ee,\n sendFileName: !0,\n showMediaDisplay: !1\n },\n emoji: {\n disabled: !1,\n icon: te,\n iconDisabled: te,\n list: [\"😀\", \"😃\", \"😄\", \"😅\", \"😊\", \"😌\", \"😇\", \"🙃\", \"🤣\", \"😍\", \"🥰\", \"🥳\", \"🎉\", \"🎈\", \"🚀\", \"⭐️\"]\n },\n toast: {\n maxCount: 3,\n forbidOnMax: !1,\n dismissOnClick: !0\n },\n event: {\n rcbPreInjectMessage: !1,\n rcbPostInjectMessage: !1,\n rcbStartSimulateStreamMessage: !1,\n rcbStopSimulateStreamMessage: !1,\n rcbStartStreamMessage: !1,\n rcbChunkStreamMessage: !1,\n rcbStopStreamMessage: !1,\n rcbRemoveMessage: !1,\n rcbLoadChatHistory: !1,\n rcbToggleChatWindow: !1,\n rcbStartSpeakAudio: !1,\n rcbToggleAudio: !1,\n rcbToggleNotifications: !1,\n rcbToggleVoice: !1,\n rcbChangePath: !1,\n rcbShowToast: !1,\n rcbDismissToast: !1,\n rcbUserSubmitText: !1,\n rcbUserUploadFile: !1,\n rcbTextAreaChangeValue: !1,\n rcbPreLoadChatBot: !1,\n rcbPostLoadChatBot: !1,\n rcbPreProcessBlock: !1,\n rcbPostProcessBlock: !1\n },\n ariaLabel: {\n chatButton: \"open chat\",\n audioButton: \"toggle audio\",\n closeChatButton: \"close chat\",\n emojiButton: \"emoji picker\",\n fileAttachmentButton: \"upload file\",\n notificationButton: \"toggle notifications\",\n sendButton: \"send message\",\n voiceButton: \"toggle voice\",\n inputTextArea: \"input text area\"\n },\n device: {\n desktopEnabled: !0,\n mobileEnabled: !0,\n applyMobileOptimizations: !0\n }\n}, ae = vA({ settings: {}, setSettings: () => null }), O = () => PA(ae), $e = ({\n children: A,\n settings: e = re,\n setSettings: o\n}) => /* @__PURE__ */ l(ae.Provider, { value: { settings: e, setSettings: o }, children: A }), ce = {\n tooltipStyle: {},\n notificationBadgeStyle: {},\n chatWindowStyle: {},\n headerStyle: {},\n bodyStyle: {},\n chatInputContainerStyle: {},\n chatInputAreaStyle: {},\n chatInputAreaFocusedStyle: {},\n chatInputAreaDisabledStyle: {},\n userBubbleStyle: {},\n botBubbleStyle: {},\n botOptionStyle: {},\n botOptionHoveredStyle: {},\n botCheckboxRowStyle: {},\n botCheckboxNextStyle: {},\n botCheckMarkStyle: {},\n botCheckMarkSelectedStyle: {},\n characterLimitStyle: {},\n characterLimitReachedStyle: {},\n chatHistoryLineBreakStyle: {},\n chatMessagePromptStyle: {},\n chatMessagePromptHoveredStyle: {},\n footerStyle: {},\n loadingSpinnerStyle: {},\n mediaDisplayContainerStyle: {},\n chatButtonStyle: {},\n chatHistoryButtonStyle: {},\n chatHistoryButtonHoveredStyle: {},\n sendButtonStyle: {},\n sendButtonHoveredStyle: {},\n sendButtonDisabledStyle: {},\n audioButtonStyle: {},\n audioButtonDisabledStyle: {},\n closeChatButtonStyle: {},\n emojiButtonStyle: {},\n emojiButtonDisabledStyle: {},\n fileAttachmentButtonStyle: {},\n fileAttachmentButtonDisabledStyle: {},\n notificationButtonStyle: {},\n notificationButtonDisabledStyle: {},\n voiceButtonStyle: {},\n voiceButtonDisabledStyle: {},\n chatIconStyle: {},\n audioIconStyle: {},\n audioIconDisabledStyle: {},\n closeChatIconStyle: {},\n emojiIconStyle: {},\n emojiIconDisabledStyle: {},\n fileAttachmentIconStyle: {},\n fileAttachmentIconDisabledStyle: {},\n notificationIconStyle: {},\n notificationIconDisabledStyle: {},\n voiceIconStyle: {},\n voiceIconDisabledStyle: {},\n sendIconStyle: {},\n sendIconDisabledStyle: {},\n sendIconHoveredStyle: {},\n rcbTypingIndicatorContainerStyle: {},\n rcbTypingIndicatorDotStyle: {},\n toastPromptContainerStyle: {},\n toastPromptStyle: {},\n toastPromptHoveredStyle: {}\n}, ie = vA({ styles: {}, setStyles: () => null }), Y = () => PA(ie), At = ({\n children: A,\n styles: e = ce,\n setStyles: o\n}) => /* @__PURE__ */ l(ie.Provider, { value: { styles: e, setStyles: o }, children: A }), et = ({ buttons: A }) => {\n var n, s, a, r, c;\n const { settings: e } = O(), { styles: o } = Y(), t = {\n backgroundImage: `linear-gradient(to right, ${(n = e.general) == null ? void 0 : n.secondaryColor},\n\t\t\t${(s = e.general) == null ? void 0 : s.primaryColor})`,\n ...o.headerStyle\n };\n return /* @__PURE__ */ X(\"div\", { style: t, className: \"rcb-chat-header-container\", children: [\n /* @__PURE__ */ X(\"div\", { className: \"rcb-chat-header\", children: [\n ((a = e.header) == null ? void 0 : a.showAvatar) && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(r = e.header) == null ? void 0 : r.avatar}\")` },\n className: \"rcb-bot-avatar\"\n }\n ),\n (c = e.header) == null ? void 0 : c.title\n ] }),\n /* @__PURE__ */ l(\"div\", { className: \"rcb-chat-header\", children: A == null ? void 0 : A.map(\n (i, u) => /* @__PURE__ */ l(UA, { children: i }, u)\n ) })\n ] });\n}, le = vA({}), $ = () => PA(le), tt = ({\n children: A,\n botIdRef: e,\n flowRef: o\n}) => {\n const t = AA(null), n = AA(\"\"), s = AA(null), a = AA(/* @__PURE__ */ new Map()), r = AA(null), c = AA(\"\"), i = AA(!1), u = AA(null), f = AA(null), w = AA(null);\n return /* @__PURE__ */ l(le.Provider, { value: {\n botIdRef: e,\n flowRef: o,\n inputRef: t,\n timeoutIdRef: s,\n streamMessageMap: a,\n chatBodyRef: r,\n paramsInputRef: c,\n keepVoiceOnRef: i,\n audioContextRef: u,\n audioBufferRef: f,\n gainNodeRef: w,\n prevInputRef: n\n }, children: A });\n}, aA = (A) => {\n const [e, o] = F(A), t = AA(A);\n return [e, (s) => {\n const a = typeof s == \"function\" ? s(t.current) : s;\n t.current = a, o(a);\n }, t];\n}, ue = vA({}), eA = () => PA(ue), ot = ({\n children: A,\n settings: e\n}) => {\n var oA, rA, qA, JA, VA, ZA;\n const [o, t, n] = aA(!1), [s, a, r] = aA(\n ((oA = e == null ? void 0 : e.chatWindow) == null ? void 0 : oA.defaultOpen) ?? !1\n ), [c, i, u] = aA(\n ((rA = e == null ? void 0 : e.audio) == null ? void 0 : rA.defaultToggledOn) ?? !1\n ), [f, w, d] = aA(\n ((qA = e == null ? void 0 : e.voice) == null ? void 0 : qA.defaultToggledOn) ?? !1\n ), [\n g,\n B,\n P\n ] = aA(\n ((JA = e == null ? void 0 : e.notification) == null ? void 0 : JA.defaultToggledOn) ?? !0\n ), [b, y] = F(!1), [D, p] = F(!1), [C, v, E] = aA(!1), [T, Q, S] = aA(!0), [\n h,\n m,\n I\n ] = aA(!1), [M, k] = F(!1), [j, N] = F(!1), [W, J] = F(0), [z, U] = F(0), [K, R] = F(!1), [L, G] = F(((VA = window.visualViewport) == null ? void 0 : VA.height) ?? window.innerHeight), [tA, _] = F(((ZA = window.visualViewport) == null ? void 0 : ZA.width) ?? window.innerWidth);\n return /* @__PURE__ */ l(ue.Provider, { value: {\n isBotTyping: o,\n setSyncedIsBotTyping: t,\n syncedIsBotTypingRef: n,\n isChatWindowOpen: s,\n setSyncedIsChatWindowOpen: a,\n syncedIsChatWindowOpenRef: r,\n audioToggledOn: c,\n setSyncedAudioToggledOn: i,\n syncedAudioToggledOnRef: u,\n voiceToggledOn: f,\n setSyncedVoiceToggledOn: w,\n syncedVoiceToggledOnRef: d,\n notificationsToggledOn: g,\n setSyncedNotificationsToggledOn: B,\n syncedNotificationsToggledOnRef: P,\n isLoadingChatHistory: b,\n setIsLoadingChatHistory: y,\n hasChatHistoryLoaded: D,\n setHasChatHistoryLoaded: p,\n isScrolling: C,\n setSyncedIsScrolling: v,\n syncedIsScrollingRef: E,\n textAreaDisabled: T,\n setSyncedTextAreaDisabled: Q,\n syncedTextAreaDisabledRef: S,\n textAreaSensitiveMode: h,\n setSyncedTextAreaSensitiveMode: m,\n syncedTextAreaSensitiveModeRef: I,\n hasInteractedPage: M,\n setHasInteractedPage: k,\n hasFlowStarted: j,\n setHasFlowStarted: N,\n unreadCount: W,\n setUnreadCount: J,\n inputLength: z,\n setInputLength: U,\n blockAllowsAttachment: K,\n setBlockAllowsAttachment: R,\n viewportHeight: L,\n setViewportHeight: G,\n viewportWidth: tA,\n setViewportWidth: _\n }, children: A });\n};\nvar H = /* @__PURE__ */ ((A) => (A.START_SPEAK_AUDIO = \"rcb-start-speak-audio\", A.TOGGLE_AUDIO = \"rcb-toggle-audio\", A.TOGGLE_NOTIFICATIONS = \"rcb-toggle-notifications\", A.TOGGLE_VOICE = \"rcb-toggle-voice\", A.TOGGLE_CHAT_WINDOW = \"rcb-toggle-chat-window\", A.PRE_INJECT_MESSAGE = \"rcb-pre-inject-message\", A.POST_INJECT_MESSAGE = \"rcb-post-inject-message\", A.START_SIMULATE_STREAM_MESSAGE = \"rcb-start-simulate-stream-message\", A.STOP_SIMULATE_STREAM_MESSAGE = \"rcb-stop-simulate-stream-message\", A.START_STREAM_MESSAGE = \"rcb-start-stream-message\", A.CHUNK_STREAM_MESSAGE = \"rcb-chunk-stream-message\", A.STOP_STREAM_MESSAGE = \"rcb-stop-stream-message\", A.REMOVE_MESSAGE = \"rcb-remove-message\", A.LOAD_CHAT_HISTORY = \"rcb-load-chat-history\", A.CHANGE_PATH = \"rcb-change-path\", A.SHOW_TOAST = \"rcb-show-toast\", A.DISMISS_TOAST = \"rcb-dismiss-toast\", A.USER_SUBMIT_TEXT = \"rcb-user-submit-text\", A.USER_UPLOAD_FILE = \"rcb-user-upload-file\", A.TEXT_AREA_CHANGE_VALUE = \"rcb-text-area-change-value\", A.PRE_LOAD_CHATBOT = \"rcb-pre-load-chatbot\", A.POST_LOAD_CHATBOT = \"rcb-post-load-chatbot\", A.PRE_PROCESS_BLOCK = \"rcb-pre-process-block\", A.POST_PROCESS_BLOCK = \"rcb-post-process-block\", A))(H || {});\nconst nt = {\n [H.START_SPEAK_AUDIO]: !0,\n [H.TOGGLE_AUDIO]: !0,\n [H.TOGGLE_VOICE]: !0,\n [H.TOGGLE_NOTIFICATIONS]: !0,\n [H.TOGGLE_CHAT_WINDOW]: !0,\n [H.PRE_INJECT_MESSAGE]: !0,\n [H.POST_INJECT_MESSAGE]: !1,\n [H.PRE_LOAD_CHATBOT]: !0,\n [H.POST_LOAD_CHATBOT]: !1,\n [H.START_SIMULATE_STREAM_MESSAGE]: !0,\n [H.STOP_SIMULATE_STREAM_MESSAGE]: !1,\n [H.START_STREAM_MESSAGE]: !0,\n [H.CHUNK_STREAM_MESSAGE]: !0,\n [H.STOP_STREAM_MESSAGE]: !0,\n [H.REMOVE_MESSAGE]: !0,\n [H.LOAD_CHAT_HISTORY]: !0,\n [H.CHANGE_PATH]: !0,\n [H.SHOW_TOAST]: !0,\n [H.DISMISS_TOAST]: !0,\n [H.USER_SUBMIT_TEXT]: !0,\n [H.USER_UPLOAD_FILE]: !0,\n [H.TEXT_AREA_CHANGE_VALUE]: !0,\n [H.PRE_PROCESS_BLOCK]: !0,\n [H.POST_PROCESS_BLOCK]: !0\n}, NA = async (A, e, o) => {\n const t = new CustomEvent(A, {\n detail: e,\n cancelable: nt[A]\n });\n return t.data = o, t.promises = [], window.dispatchEvent(t), await Promise.all(t.promises), t;\n}, fe = vA({\n paths: [],\n setSyncedPaths: () => {\n },\n syncedPathsRef: { current: [] }\n}), mA = () => PA(fe), st = ({ children: A }) => {\n const [e, o, t] = aA([]);\n return /* @__PURE__ */ l(fe.Provider, { value: { paths: e, setSyncedPaths: o, syncedPathsRef: t }, children: A });\n}, lA = () => {\n const { botIdRef: A } = $(), { syncedPathsRef: e } = mA(), o = x(() => e.current.length > 0 ? e.current.at(-1) ?? null : null, []), t = x(() => e.current.length > 1 ? e.current.at(-2) ?? null : null, []);\n return { dispatchRcbEvent: x(async (s, a) => {\n const r = { botId: A.current, currPath: o(), prevPath: t() };\n return await NA(s, r, a);\n }, [A]) };\n}, sA = () => {\n const { settings: A } = O(), {\n isChatWindowOpen: e,\n setSyncedIsChatWindowOpen: o,\n viewportHeight: t,\n setViewportHeight: n,\n viewportWidth: s,\n setViewportWidth: a,\n setUnreadCount: r,\n setSyncedIsBotTyping: c,\n setSyncedIsScrolling: i,\n syncedIsBotTypingRef: u,\n syncedIsChatWindowOpenRef: f\n } = eA(), { chatBodyRef: w } = $(), { dispatchRcbEvent: d } = lA(), g = x(() => {\n if (!w.current)\n return !1;\n const D = w.current.getBoundingClientRect(), p = window.innerHeight ?? document.documentElement.clientHeight, C = window.innerWidth ?? document.documentElement.clientWidth;\n return D.top >= 0 && D.left >= 0 && D.bottom <= p && D.right <= C;\n }, [w]), B = x(async (D) => {\n var p;\n D !== f.current && ((p = A.event) != null && p.rcbToggleChatWindow && (await d(\n H.TOGGLE_CHAT_WINDOW,\n {\n currState: f.current,\n newState: !f.current\n }\n )).defaultPrevented || o((C) => (C || r(0), !C)));\n }, [f]), P = x(async (D) => {\n D !== u.current && c((p) => !p);\n }, [u]), b = x((D, p, C, v) => (D /= v / 2, D < 1 ? C / 2 * D * D + p : (D--, -C / 2 * (D * (D - 2) - 1) + p)), []), y = x((D = 0) => {\n if (!w.current)\n return;\n const p = w.current.scrollHeight - w.current.clientHeight;\n if (D <= 0) {\n w.current.scrollTop = p, i(!1);\n return;\n }\n const C = w.current.scrollTop, v = p - C, E = 20;\n let T = 0;\n const Q = () => {\n if (!w.current)\n return;\n T += E;\n const S = b(T, C, v, D);\n w.current.scrollTop = S, T < D ? requestAnimationFrame(Q) : i(!1);\n };\n Q();\n }, [w]);\n return {\n isChatWindowOpen: e,\n setSyncedIsChatWindowOpen: o,\n toggleChatWindow: B,\n viewportHeight: t,\n setViewportHeight: n,\n viewportWidth: s,\n setViewportWidth: a,\n toggleIsBotTyping: P,\n scrollToBottom: y,\n getIsChatBotVisible: g\n };\n}, rt = () => {\n var w, d, g;\n const { settings: A } = O(), { styles: e } = Y(), { unreadCount: o, isScrolling: t } = eA(), { chatBodyRef: n } = $(), { scrollToBottom: s } = sA(), [a, r] = F(!1), c = {\n color: (w = A.general) == null ? void 0 : w.primaryColor,\n borderColor: (d = A.general) == null ? void 0 : d.primaryColor,\n ...e.chatMessagePromptHoveredStyle\n }, i = () => {\n r(!0);\n }, u = () => {\n r(!1);\n };\n return /* @__PURE__ */ l(\"div\", { className: `rcb-message-prompt-container ${(() => {\n var P;\n return n.current && ((P = A.chatWindow) == null ? void 0 : P.showMessagePrompt) && t && o > 0 ? \"visible\" : \"hidden\";\n })()}`, children: /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: i,\n onMouseLeave: u,\n style: a ? c : { ...e.chatMessagePromptStyle },\n onMouseDown: (B) => {\n B.preventDefault(), s(600);\n },\n className: \"rcb-message-prompt-text\",\n children: (g = A.chatWindow) == null ? void 0 : g.messagePromptText\n }\n ) });\n}, de = vA({\n messages: [],\n setSyncedMessages: () => {\n },\n syncedMessagesRef: { current: [] }\n}), FA = () => PA(de), at = ({ children: A }) => {\n const [e, o, t] = aA([]);\n return /* @__PURE__ */ l(de.Provider, { value: { messages: e, setSyncedMessages: o, syncedMessagesRef: t }, children: A });\n}, ct = ({\n message: A,\n isNewSender: e\n}) => {\n var f, w, d, g, B, P;\n const { settings: o } = O(), { styles: t } = Y(), n = typeof A.content == \"string\", s = A.content, a = A.contentWrapper ? /* @__PURE__ */ l(A.contentWrapper, { children: s }) : s, r = {\n backgroundColor: (f = o.general) == null ? void 0 : f.primaryColor,\n color: \"#fff\",\n maxWidth: (w = o.userBubble) != null && w.showAvatar ? \"65%\" : \"70%\",\n ...t.userBubbleStyle\n }, c = (d = o.userBubble) != null && d.animate ? \"rcb-user-message-entry\" : \"\", i = ((g = o.userBubble) == null ? void 0 : g.showAvatar) && e, u = `rcb-user-message${!e && ((B = o.userBubble) != null && B.showAvatar) ? \" rcb-user-message-offset\" : \"\"}`;\n return /* @__PURE__ */ X(\"div\", { className: \"rcb-user-message-container\", children: [\n n ? /* @__PURE__ */ l(\"div\", { style: r, className: `${u} ${c}`, children: a }) : /* @__PURE__ */ l(nA, { children: a }),\n i && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(P = o.userBubble) == null ? void 0 : P.avatar}\")` },\n className: \"rcb-message-user-avatar\"\n }\n )\n ] });\n}, it = ({\n message: A,\n isNewSender: e\n}) => {\n var f, w, d, g, B, P;\n const { settings: o } = O(), { styles: t } = Y(), n = typeof A.content == \"string\", s = A.content, a = A.contentWrapper ? /* @__PURE__ */ l(A.contentWrapper, { children: s }) : s, r = {\n backgroundColor: (f = o.general) == null ? void 0 : f.secondaryColor,\n color: \"#fff\",\n maxWidth: (w = o.botBubble) != null && w.showAvatar ? \"65%\" : \"70%\",\n ...t.botBubbleStyle\n }, c = (d = o.botBubble) != null && d.animate ? \"rcb-bot-message-entry\" : \"\", i = ((g = o.botBubble) == null ? void 0 : g.showAvatar) && e, u = `rcb-bot-message${!e && ((B = o.botBubble) != null && B.showAvatar) ? \" rcb-bot-message-offset\" : \"\"}`;\n return /* @__PURE__ */ X(\"div\", { className: \"rcb-bot-message-container\", children: [\n i && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(P = o.botBubble) == null ? void 0 : P.avatar}\")` },\n className: \"rcb-message-bot-avatar\"\n }\n ),\n n ? /* @__PURE__ */ l(\"div\", { style: r, className: `${u} ${c}`, children: a }) : /* @__PURE__ */ l(nA, { children: a })\n ] });\n}, lt = () => {\n var t, n, s;\n const { settings: A } = O(), { styles: e } = Y(), o = (t = A.botBubble) != null && t.animate ? \"rcb-bot-message-entry\" : \"\";\n return /* @__PURE__ */ X(\"div\", { className: \"rcb-bot-message-container\", children: [\n ((n = A.botBubble) == null ? void 0 : n.showAvatar) && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(s = A.botBubble) == null ? void 0 : s.avatar}\")` },\n className: \"rcb-message-bot-avatar\"\n }\n ),\n /* @__PURE__ */ l(\n \"div\",\n {\n onMouseDown: (a) => {\n a.preventDefault();\n },\n className: `rcb-bot-message ${o}`,\n children: /* @__PURE__ */ X(\"div\", { className: \"rcb-typing-indicator\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorContainerStyle }, children: [\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } })\n ] })\n }\n )\n ] });\n}, ut = () => {\n var i, u, f;\n const { settings: A } = O(), { styles: e } = Y(), { messages: o } = FA(), { scrollToBottom: t } = sA(), {\n isBotTyping: n,\n syncedIsScrollingRef: s\n } = eA(), { chatBodyRef: a } = $(), r = {\n ...e == null ? void 0 : e.bodyStyle,\n scrollbarWidth: (i = A.chatWindow) != null && i.showScrollbar ? \"auto\" : \"none\"\n };\n V(() => {\n s.current || t();\n }, [(u = a.current) == null ? void 0 : u.scrollHeight]);\n const c = (w) => w === 0 ? !0 : o[w].sender !== o[w - 1].sender;\n return /* @__PURE__ */ X(\n \"div\",\n {\n style: r,\n className: \"rcb-chat-body-container\",\n ref: a,\n children: [\n o.map((w, d) => {\n const g = c(d);\n return w.sender.toUpperCase() === \"USER\" ? /* @__PURE__ */ l(ct, { message: w, isNewSender: g }, d) : w.sender.toUpperCase() === \"BOT\" ? /* @__PURE__ */ l(it, { message: w, isNewSender: g }, d) : /* @__PURE__ */ l(\"div\", { children: w.content }, d);\n }),\n n && ((f = A.chatWindow) == null ? void 0 : f.showTypingIndicator) && /* @__PURE__ */ l(lt, {}),\n /* @__PURE__ */ l(rt, {})\n ]\n }\n );\n}, ft = ({\n checkboxes: A,\n checkedItems: e,\n path: o\n}) => {\n var P, b, y, D, p, C, v, E, T, Q, S;\n const { settings: t } = O(), { styles: n } = Y(), { paths: s } = mA(), { handleSubmitText: a } = yA(), [r, c] = F(/* @__PURE__ */ new Set()), [i, u] = F(!1), f = {\n cursor: i ? `url(\"${(P = t.general) == null ? void 0 : P.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (b = t.general) == null ? void 0 : b.primaryColor,\n borderColor: (y = t.general) == null ? void 0 : y.primaryColor,\n ...n.botCheckboxRowStyle\n }, w = {\n cursor: i || r.size < A.min ? `url(\"${(D = t.general) == null ? void 0 : D.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (p = t.general) == null ? void 0 : p.primaryColor,\n borderColor: (C = t.general) == null ? void 0 : C.primaryColor,\n ...n.botCheckboxNextStyle\n }, d = {\n cursor: i ? `url(\"${(v = t.general) == null ? void 0 : v.actionDisabledIcon}\"), auto` : \"pointer\",\n color: \"transparent\",\n ...n.botCheckMarkStyle\n }, g = {\n cursor: i ? `url(\"${(E = t.general) == null ? void 0 : E.actionDisabledIcon}\"), auto` : \"pointer\",\n color: \"#fff\",\n borderColor: (T = t.general) == null ? void 0 : T.primaryColor,\n backgroundColor: (Q = t.general) == null ? void 0 : Q.primaryColor,\n ...n.botCheckMarkSelectedStyle\n };\n V(() => {\n s.length > 0 && s[s.length - 1] !== o && u(!A.reusable);\n }, [s]);\n const B = (h) => {\n i || c((m) => {\n const I = new Set(m);\n if (I.has(h))\n e.delete(h), I.delete(h);\n else {\n if (r.size == A.max)\n return m;\n e.add(h), I.add(h);\n }\n return I;\n });\n };\n return /* @__PURE__ */ X(\"div\", { className: `rcb-checkbox-container ${(S = t.botBubble) != null && S.showAvatar ? \"rcb-checkbox-offset\" : \"\"}`, children: [\n A.items.map((h) => /* @__PURE__ */ l(\n \"div\",\n {\n onMouseDown: (m) => {\n m.preventDefault(), B(h);\n },\n style: f,\n className: \"rcb-checkbox-row-container\",\n children: /* @__PURE__ */ X(\"div\", { className: \"rcb-checkbox-row\", children: [\n /* @__PURE__ */ l(\n \"div\",\n {\n style: r.has(h) ? g : d,\n className: \"rcb-checkbox-mark\"\n }\n ),\n /* @__PURE__ */ l(\"div\", { className: \"rcb-checkbox-label\", children: h })\n ] })\n },\n h\n )),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: w,\n className: \"rcb-checkbox-next-button\",\n onMouseDown: (h) => {\n var M;\n if (h.preventDefault(), i || r.size < A.min)\n return;\n const m = Array.from(e).join(\", \");\n u(!A.reusable);\n let I;\n A.sendOutput != null ? I = A.sendOutput : I = ((M = t.chatInput) == null ? void 0 : M.sendCheckboxOutput) ?? !0, a(m, I);\n }\n }\n )\n ] });\n}, dt = async (A, e) => {\n const o = A.checkboxes;\n if (!o)\n return;\n let t;\n if (typeof o == \"function\" ? (t = o(e), t instanceof Promise && (t = await t)) : t = o, Array.isArray(t) && (t = { items: t }), !(\"items\" in t) || t.items.length == 0)\n return;\n t.min == null && (t.min = 1), t.max == null && (t.max = t.items.length), t.min > t.max && (t.min = t.max), t.reusable == null && (t.reusable = !1);\n const n = /* @__PURE__ */ new Set(), s = e.currPath, a = /* @__PURE__ */ l(ft, { checkboxes: t, checkedItems: n, path: s });\n await e.injectMessage(a);\n}, wt = async (A, e) => {\n const o = A.function;\n if (!o)\n return;\n const t = o(e);\n return t instanceof Promise ? await t : t;\n}, gt = async (A, e, o) => {\n const t = A.message;\n if (!t)\n return;\n if (typeof t == \"string\") {\n t.trim() !== \"\" && (o ? await e.simulateStreamMessage(t) : await e.injectMessage(t));\n return;\n }\n let n = t(e);\n n instanceof Promise && (n = await n), typeof n == \"string\" && n.trim() !== \"\" && (o ? await e.simulateStreamMessage(n) : await e.injectMessage(n));\n}, Bt = ({\n options: A,\n path: e\n}) => {\n var g, B, P, b, y, D;\n const { settings: o } = O(), { styles: t } = Y(), { paths: n } = mA(), { handleSubmitText: s } = yA(), [a, r] = F([]), [c, i] = F(!1), u = {\n cursor: c ? `url(\"${(g = o.general) == null ? void 0 : g.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (B = o.general) == null ? void 0 : B.primaryColor,\n borderColor: (P = o.general) == null ? void 0 : P.primaryColor,\n backgroundColor: \"#fff\",\n ...t.botOptionStyle\n }, f = {\n color: \"#fff\",\n borderColor: (b = o.general) == null ? void 0 : b.primaryColor,\n backgroundColor: (y = o.general) == null ? void 0 : y.primaryColor,\n ...t.botOptionHoveredStyle\n };\n V(() => {\n n.length > 0 && n[n.length - 1] !== e && i(!A.reusable);\n }, [n]);\n const w = (p) => {\n r((C) => {\n const v = [...C];\n return v[p] = !0, v;\n });\n }, d = (p) => {\n r((C) => {\n const v = [...C];\n return v[p] = !1, v;\n });\n };\n return /* @__PURE__ */ l(\"div\", { className: `rcb-options-container ${(D = o.botBubble) != null && D.showAvatar ? \"rcb-options-offset\" : \"\"}`, children: A.items.map((p, C) => {\n const v = a[C] && !c;\n return /* @__PURE__ */ l(\n \"div\",\n {\n className: \"rcb-options\",\n style: v ? f : u,\n onMouseEnter: () => w(C),\n onMouseLeave: () => d(C),\n onMouseDown: (E) => {\n var Q;\n if (E.preventDefault(), c)\n return;\n i(!A.reusable);\n let T;\n A.sendOutput != null ? T = A.sendOutput : T = ((Q = o.chatInput) == null ? void 0 : Q.sendOptionOutput) ?? !0, s(p, T);\n },\n children: p\n },\n p\n );\n }) });\n}, vt = async (A, e) => {\n const o = A.options;\n if (!o)\n return;\n let t;\n if (typeof o == \"function\" ? (t = o(e), t instanceof Promise && (t = await t)) : t = o, Array.isArray(t) && (t = { items: t }), !(\"items\" in t) || t.items.length == 0)\n return;\n t.reusable == null && (t.reusable = !1);\n const n = e.currPath, s = /* @__PURE__ */ l(Bt, { options: t, path: n });\n await e.injectMessage(s);\n}, Pt = async (A, e) => {\n const o = A.path;\n if (!o)\n return !1;\n if (typeof o == \"string\")\n return await e.goToPath(o), !0;\n let t = o(e);\n if (t instanceof Promise && (t = await t), !t)\n return !1;\n const n = t;\n return await e.goToPath(n), !0;\n}, ht = async (A, e) => {\n const o = A.component;\n if (o) {\n if (typeof o == \"function\") {\n let t = o(e);\n if (t instanceof Promise && (t = await t), !t)\n return;\n await e.injectMessage(t);\n return;\n }\n await e.injectMessage(o);\n }\n}, Dt = async (A, e, o, t) => {\n const n = A.transition;\n let s;\n if (typeof n == \"function\" ? (s = n(e), s instanceof Promise && (s = await s)) : s = n, typeof s == \"number\" && (s = { duration: s }), !s || s instanceof Promise || s.duration == null || typeof s.duration != \"number\")\n return;\n s.interruptable == null && (s.interruptable = !1);\n const a = setTimeout(async () => {\n const r = await t(A);\n r && await ge(r, e);\n }, s.duration);\n s.interruptable && (o.current = a);\n}, Et = async (A, e, o) => {\n const t = A.chatDisabled;\n if (t == null)\n return;\n let n;\n typeof t == \"function\" ? (n = t(e), n instanceof Promise && (n = await n)) : n = t, o(n);\n}, we = async (A, e, o) => {\n const t = A.isSensitive;\n if (!t) {\n o(!1);\n return;\n }\n let n;\n typeof t == \"function\" ? (n = t(e), n instanceof Promise && (n = await n)) : n = t, o(n);\n}, yt = async (A, e, o, t, n, s, a) => {\n if (!A)\n throw new Error(\"Block is not valid.\");\n for (const r of Object.keys(A))\n switch (r) {\n case \"message\":\n await gt(A, e, o);\n break;\n case \"options\":\n await vt(A, e);\n break;\n case \"checkboxes\":\n await dt(A, e);\n break;\n case \"component\":\n await ht(A, e);\n break;\n case \"chatDisabled\":\n await Et(A, e, n);\n break;\n case \"isSensitive\":\n await we(A, e, s);\n break;\n case \"transition\":\n await Dt(A, e, t, a);\n }\n}, ge = async (A, e) => {\n if (!A)\n throw new Error(\"Block is not valid.\");\n const o = Object.keys(A);\n for (const t of o)\n t === \"function\" && await wt(A, e);\n o.includes(\"path\") && await Pt(A, e);\n}, Ct = () => {\n var o;\n const { settings: A } = O(), { styles: e } = Y();\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-line-break-container\", children: /* @__PURE__ */ l(\n \"div\",\n {\n style: { ...e.chatHistoryLineBreakStyle },\n className: \"rcb-line-break-text\",\n \"data-testid\": \"chat-history-line-break-text\",\n children: (o = A.chatHistory) == null ? void 0 : o.chatHistoryLineBreakText\n }\n ) });\n}, mt = () => {\n var t;\n const { settings: A } = O(), { styles: e } = Y(), o = {\n borderTop: `4px solid ${(t = A.general) == null ? void 0 : t.primaryColor}`,\n ...e.loadingSpinnerStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-spinner-container\", children: /* @__PURE__ */ l(\"div\", { style: o, className: \"rcb-spinner\" }) });\n}, SA = () => {\n try {\n if (typeof crypto < \"u\" && typeof crypto.randomUUID == \"function\")\n return crypto.randomUUID();\n throw new Error(\"crypto.randomUUID not available\");\n } catch (A) {\n if (typeof crypto < \"u\" && typeof crypto.getRandomValues == \"function\")\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(e) {\n const o = crypto.getRandomValues(new Uint8Array(1))[0] % 16;\n return (e === \"x\" ? o : o & 3 | 8).toString(16);\n });\n throw console.error(A), new Error(\"crypto.getRandomValues is also not available\");\n }\n}, gA = (A, e) => ({\n id: SA(),\n content: A,\n sender: e,\n type: typeof A == \"string\" ? \"string\" : \"object\",\n timestamp: (/* @__PURE__ */ new Date()).toUTCString(),\n tags: []\n});\nlet wA, Be = !1, IA = \"rcb-history\", bA = 30, ve = !1, CA = [];\nconst HA = async (A) => {\n if (ve || !wA)\n return;\n const e = [], o = Be ? CA.length : 0;\n for (let n = A.length - 1; n >= o; n--) {\n const s = A[n];\n if (s.sender.toUpperCase() !== \"SYSTEM\" && (s.content !== \"\" && e.unshift(s), e.length === bA))\n break;\n }\n let t = e.map(St);\n if (t.length < bA) {\n const n = bA - t.length;\n t = [...CA.slice(-n), ...t];\n }\n Pe(t);\n}, Qt = (A) => {\n if (A != null)\n try {\n return JSON.parse(A);\n } catch {\n return [];\n }\n return [];\n}, jA = () => CA, bt = (A) => {\n Pe(A), CA = A;\n}, Pe = (A) => {\n wA && wA.setItem(IA, JSON.stringify(A));\n}, pt = () => {\n wA && wA.removeItem(IA);\n}, RA = (A) => {\n var e, o, t, n, s;\n ((o = (e = A.chatHistory) == null ? void 0 : e.storageType) == null ? void 0 : o.toUpperCase()) === \"SESSION_STORAGE\" ? wA = sessionStorage : wA = localStorage, IA = (t = A.chatHistory) == null ? void 0 : t.storageKey, bA = (n = A.chatHistory) == null ? void 0 : n.maxEntries, ve = (s = A.chatHistory) == null ? void 0 : s.disabled, CA = Qt(wA.getItem(IA));\n}, St = (A) => se(A.content) ? structuredClone({\n id: A.id,\n content: Te.renderToString(A.content),\n type: A.type,\n sender: A.sender.toUpperCase(),\n timestamp: A.timestamp,\n tags: A.tags\n}) : A, It = (A, e, o, t, n, s, a, r, c) => {\n var i;\n if (Be = !0, o != null)\n try {\n const u = gA(/* @__PURE__ */ l(mt, {}), \"SYSTEM\"), f = n.current.slice(1);\n t([u, ...f]);\n const w = o.map((d) => {\n if (d.type === \"object\") {\n const g = he(d.content, A, e);\n return { ...d, content: g };\n }\n return d;\n });\n setTimeout(() => {\n var B;\n const d = n.current.slice(1);\n let g = (B = A.chatHistory) != null && B.autoLoad ? gA(/* @__PURE__ */ l(nA, {}), \"SYSTEM\") : gA(/* @__PURE__ */ l(Ct, {}), \"SYSTEM\");\n t([...w, g, ...d]), c(!0);\n }, 500), setTimeout(() => {\n if (!s.current)\n return;\n const { scrollHeight: d } = s.current, g = d - a;\n s.current.scrollTop += g, r(!1);\n }, 510);\n } catch {\n wA.removeItem((i = A.chatHistory) == null ? void 0 : i.storageKey);\n }\n}, he = (A, e, o) => {\n const n = new DOMParser().parseFromString(A, \"text/html\");\n return Array.from(n.body.childNodes).map((r, c) => {\n var i;\n if (r.nodeType === Node.TEXT_NODE)\n return r.textContent;\n {\n const u = r.tagName.toLowerCase();\n let f = Array.from(r.attributes).reduce((d, g) => {\n const B = g.name.toLowerCase();\n if (B === \"style\") {\n const P = g.value.split(\";\").filter((y) => y.trim() !== \"\"), b = {};\n P.forEach((y) => {\n const [D, p] = y.split(\":\").map((v) => v.trim()), C = D.replace(/-([a-z])/g, (v, E) => E.toUpperCase());\n b[C] = p;\n }), d[B] = b;\n } else (u === \"audio\" || u === \"video\") && B === \"controls\" && g.value === \"\" ? d[B] = \"true\" : d[B] = g.value;\n return d;\n }, {});\n if (Object.prototype.hasOwnProperty.call(f, \"class\")) {\n const d = r.classList;\n f.className = d.toString(), delete f.class, (i = e.botBubble) != null && i.showAvatar && (f = Tt(d, f)), f = Mt(d, f, e, o), f = kt(d, f, e, o), f = Ht(d, f, e, o), f = xt(d, f, e, o);\n }\n if ([\n \"area\",\n \"base\",\n \"br\",\n \"col\",\n \"embed\",\n \"hr\",\n \"img\",\n \"input\",\n \"link\",\n \"meta\",\n \"source\",\n \"track\",\n \"wbr\"\n ].includes(u))\n return _A(u, { key: c, ...f });\n {\n const d = he(r.innerHTML, e, o);\n return _A(u, { key: c, ...f }, ...d);\n }\n }\n });\n}, Tt = (A, e) => ((A.contains(\"rcb-options-container\") || A.contains(\"rcb-checkbox-container\")) && (e.className = `${A.toString()} rcb-options-offset`), e), Mt = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-options\") && (e.style = {\n ...e.style,\n color: ((n = t.botOptionStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botOptionStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botOptionStyle\n }), e;\n}, kt = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-checkbox-row-container\") && (e.style = {\n ...e.style,\n color: ((n = t.botCheckboxRowStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botCheckboxRowStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botCheckboxRowStyle\n }), e;\n}, Ht = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-checkbox-next-button\") && (e.style = {\n ...e.style,\n color: ((n = t.botCheckboxNextStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botCheckboxNextStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botCheckboxNextStyle\n }), e;\n}, xt = (A, e, o, t) => {\n var n, s;\n return (A.contains(\"rcb-media-display-image-container\") || A.contains(\"rcb-media-display-video-container\")) && (e.style = {\n ...e.style,\n backgroundColor: (n = o.general) == null ? void 0 : n.primaryColor,\n maxWidth: (s = o.userBubble) != null && s.showAvatar ? \"65%\" : \"70%\",\n ...t.mediaDisplayContainerStyle\n }), e;\n}, zA = () => {\n const { settings: A } = O(), {\n notificationsToggledOn: e,\n setSyncedNotificationsToggledOn: o,\n hasInteractedPage: t,\n unreadCount: n,\n setUnreadCount: s,\n syncedNotificationsToggledOnRef: a\n } = eA(), { audioBufferRef: r, audioContextRef: c, gainNodeRef: i } = $(), { dispatchRcbEvent: u } = lA(), f = x(async () => {\n var b, y;\n const g = (b = A.notification) == null ? void 0 : b.sound;\n c.current = new AudioContext();\n const B = c.current.createGain();\n B.gain.value = ((y = A.notification) == null ? void 0 : y.volume) ?? 0.2, i.current = B;\n let P;\n if (g != null && g.startsWith(\"data:audio\")) {\n const D = atob(g.split(\",\")[1]), p = new ArrayBuffer(D.length), C = new Uint8Array(p);\n for (let v = 0; v < D.length; v++)\n C[v] = D.charCodeAt(v);\n P = p;\n } else\n P = await (await fetch(g)).arrayBuffer();\n r.current = await c.current.decodeAudioData(P);\n }, [A.notification]), w = x(() => {\n var B;\n if ((B = A.notification) != null && B.disabled || !a.current || !t || !c.current || !r.current)\n return;\n const g = c.current.createBufferSource();\n g.buffer = r.current, g.connect(i.current).connect(c.current.destination), g.start();\n }, [\n A.notification,\n a,\n t,\n c,\n r,\n i\n ]), d = x(async (g) => {\n var B;\n g !== a.current && ((B = A.event) != null && B.rcbToggleNotifications && (await u(\n H.TOGGLE_NOTIFICATIONS,\n {\n currState: a.current,\n newState: !a.current\n }\n )).defaultPrevented || o((P) => !P));\n }, [a]);\n return {\n unreadCount: n,\n setUnreadCount: s,\n notificationsToggledOn: e,\n toggleNotifications: d,\n playNotificationSound: w,\n setUpNotifications: f\n };\n}, Ot = (A, e, o, t, n) => {\n if (!window.SpeechSynthesisUtterance) {\n console.info(\"Speech Synthesis API is not supported in this environment.\");\n return;\n }\n const s = new window.SpeechSynthesisUtterance();\n s.text = A, s.lang = e, s.rate = t, s.volume = n;\n let a = !1;\n for (const r of o)\n if (window.speechSynthesis.getVoices().find((c) => {\n if (c.name === r) {\n s.voice = c, window.speechSynthesis.speak(s), a = !0;\n return;\n }\n }), a)\n break;\n a || window.speechSynthesis.speak(s);\n}, Lt = (A, e) => {\n var o, t, n, s;\n Ot(\n e,\n (o = A.audio) == null ? void 0 : o.language,\n (t = A.audio) == null ? void 0 : t.voiceNames,\n (n = A.audio) == null ? void 0 : n.rate,\n (s = A.audio) == null ? void 0 : s.volume\n );\n}, GA = () => {\n const { settings: A } = O(), { audioToggledOn: e, setSyncedAudioToggledOn: o, syncedAudioToggledOnRef: t } = eA(), { dispatchRcbEvent: n } = lA(), s = x(async (r) => {\n var c;\n r !== t.current && ((c = A.event) != null && c.rcbToggleAudio && (await n(\n H.TOGGLE_AUDIO,\n {\n currState: t.current,\n newState: !t.current\n }\n )).defaultPrevented || o((i) => !i));\n }, [t]), a = x(async (r) => {\n var i, u;\n if ((i = A.audio) != null && i.disabled || !t.current)\n return;\n let c = r;\n if ((u = A.event) != null && u.rcbStartSpeakAudio) {\n const f = await n(H.START_SPEAK_AUDIO, { textToRead: c });\n if (f.defaultPrevented)\n return;\n c = f.data.textToRead;\n }\n Lt(A, c);\n }, [A, t]);\n return {\n audioToggledOn: e,\n speakAudio: a,\n toggleAudio: s\n };\n}, hA = () => {\n var E, T;\n const { settings: A } = O(), { messages: e, setSyncedMessages: o, syncedMessagesRef: t } = FA(), {\n setSyncedIsBotTyping: n,\n setUnreadCount: s,\n syncedIsScrollingRef: a,\n syncedIsChatWindowOpenRef: r\n } = eA(), { streamMessageMap: c, chatBodyRef: i, paramsInputRef: u } = $(), { scrollToBottom: f, getIsChatBotVisible: w } = sA(), { dispatchRcbEvent: d } = lA(), { speakAudio: g } = GA(), { playNotificationSound: B } = zA(), P = x((Q, S = !1) => {\n var M, k;\n HA(Q);\n let h = !0;\n const m = Q[Q.length - 1];\n if (!m)\n return;\n const I = m.sender.toUpperCase();\n I === \"USER\" && (h = !1), (M = A.general) != null && M.embedded && w() && (h = !1), (r.current && !a.current || S) && (h = !1), h && B(), !S && (I !== \"USER\" && ((k = A.chatWindow) != null && k.autoJumpToBottom) || I === \"USER\" || !a.current) && setTimeout(() => f(), 1);\n }, [\n A,\n i,\n r,\n a,\n B,\n f,\n w\n ]), b = x(async (Q, S = \"BOT\", h = null) => {\n var J, z, U, K, R;\n if (typeof Q != \"string\")\n throw new Error(\"Content must be of type string to simulate stream.\");\n S = S.toUpperCase();\n let m = gA(Q, S);\n if ((J = A.event) != null && J.rcbStartSimulateStreamMessage) {\n const L = await d(\n H.START_SIMULATE_STREAM_MESSAGE,\n { message: m }\n );\n if (L.defaultPrevented)\n return null;\n h = L.data.simulateStreamChunker || h, m = L.data.message;\n }\n n(!1);\n let I = 30;\n S === \"BOT\" ? I = (z = A.botBubble) == null ? void 0 : z.streamSpeed : I = (U = A.userBubble) == null ? void 0 : U.streamSpeed;\n const M = { ...m, content: \"\" };\n o((L) => [...L, M]), P(t.current);\n let k = m.content;\n h && (k = h(k));\n let j = 0;\n const N = k.length;\n m.sender.toUpperCase() === \"BOT\" && (r.current || (K = A.general) != null && K.embedded) && typeof m.content == \"string\" && m.content.trim() !== \"\" && g(m.content);\n const W = new Promise((L) => {\n const G = setInterval(() => {\n if (j >= N) {\n clearInterval(G), L();\n return;\n }\n o((tA) => {\n const _ = [...tA];\n for (let oA = _.length - 1; oA >= 0; oA--)\n if (_[oA].id === M.id) {\n const rA = k[j];\n rA && (M.content += rA, _[oA] = M), j++;\n break;\n }\n return _;\n });\n }, I);\n });\n return (a.current || !r.current) && s((L) => L + 1), await W, HA(t.current), (R = A.event) != null && R.rcbStopSimulateStreamMessage && await d(H.STOP_SIMULATE_STREAM_MESSAGE, { message: m }), S === \"USER\" && (u.current = Q), m;\n }, [\n A,\n d,\n P,\n t,\n u,\n n,\n s,\n r,\n g\n ]), y = x(async (Q, S = \"BOT\") => {\n var m, I, M;\n S = S.toUpperCase();\n let h = gA(Q, S);\n if ((m = A.event) != null && m.rcbPreInjectMessage) {\n const k = await d(H.PRE_INJECT_MESSAGE, { message: h });\n if (k.defaultPrevented)\n return null;\n h = k.data.message;\n }\n return h.sender.toUpperCase() === \"BOT\" && (r.current || (I = A.general) != null && I.embedded) && typeof h.content == \"string\" && h.content.trim() !== \"\" && g(h.content), (a.current || !r.current) && s((k) => k + 1), (M = A.event) != null && M.rcbPostInjectMessage && await d(H.POST_INJECT_MESSAGE, { message: h }), o((k) => [...k, h]), P(t.current), S === \"USER\" && typeof Q == \"string\" && (u.current = Q), h;\n }, [\n A,\n d,\n P,\n u,\n t,\n r,\n g,\n s\n ]), D = x(async (Q) => {\n var h;\n const S = t.current.find((m) => m.id === Q);\n return !S || (h = A.event) != null && h.rcbRemoveMessage && (await d(H.REMOVE_MESSAGE, { message: S })).defaultPrevented ? null : (o(\n (m) => m.filter((I) => I.id !== Q)\n ), P(t.current), s((m) => Math.max(m - 1, 0)), S);\n }, [\n d,\n (E = A.event) == null ? void 0 : E.rcbRemoveMessage,\n P,\n t,\n s\n ]), p = x(async (Q, S = \"BOT\") => {\n var m, I;\n if (S = S.toUpperCase(), !c.current.has(S)) {\n const M = gA(Q, S);\n return (m = A.event) != null && m.rcbStartStreamMessage && (await d(H.START_STREAM_MESSAGE, { message: M })).defaultPrevented ? null : (n(!1), o((k) => [...k, M]), P(t.current), c.current.set(S, M.id), (a.current || !r.current) && s((k) => k + 1), M);\n }\n const h = { ...gA(Q, S), id: c.current.get(S) };\n return (I = A.event) != null && I.rcbChunkStreamMessage && (await d(H.CHUNK_STREAM_MESSAGE, { message: h })).defaultPrevented ? null : (o(\n (M) => M.map((k) => k.id === h.id ? h : k)\n ), P(t.current, !0), h);\n }, [\n d,\n A.event,\n P,\n t,\n n,\n s,\n c\n ]), C = x(async (Q = \"BOT\") => {\n var m;\n if (Q = Q.toUpperCase(), !c.current.has(Q))\n return !0;\n const S = c.current.get(Q);\n let h;\n for (let I = 0; I < 3; I++) {\n const M = t.current.find((k) => k.id === S);\n M && (h = M), await new Promise((k) => setTimeout(k, 20));\n }\n return (m = A.event) != null && m.rcbStopStreamMessage && (await d(H.STOP_STREAM_MESSAGE, { message: h })).defaultPrevented ? !1 : (c.current.delete(Q), HA(t.current), Q === \"USER\" && typeof (h == null ? void 0 : h.content) == \"string\" && (u.current = h.content), !0);\n }, [d, (T = A.event) == null ? void 0 : T.rcbStopStreamMessage, c, u]), v = x((Q) => {\n o(Q), P(Q);\n }, [P]);\n return {\n simulateStreamMessage: b,\n injectMessage: y,\n removeMessage: D,\n streamMessage: p,\n endStreamMessage: C,\n replaceMessages: v,\n messages: e\n };\n};\nlet xA, uA, pA, BA = !1, cA = null;\nconst YA = () => {\n if (!xA) {\n const A = window.SpeechRecognition || window.webkitSpeechRecognition;\n xA = A != null ? new A() : null;\n }\n return xA;\n}, Nt = (A, e, o, t, n, s, a) => {\n var r;\n (r = A.voice) != null && r.sendAsAudio ? Ut(o, s) : Rt(\n A,\n e,\n o,\n t,\n n,\n a\n );\n}, Rt = (A, e, o, t, n, s) => {\n var i, u, f;\n const a = YA();\n if (!a)\n return;\n if (!BA)\n try {\n BA = !0, a.lang = (i = A.voice) == null ? void 0 : i.language, a.start();\n } catch {\n }\n const r = (u = A.voice) == null ? void 0 : u.timeoutPeriod, c = (f = A.voice) == null ? void 0 : f.autoSendPeriod;\n a.onresult = (w) => {\n var g, B;\n clearTimeout(uA), uA = null, clearTimeout(pA);\n const d = w.results[w.results.length - 1][0].transcript;\n if (s.current) {\n const P = (g = A.chatInput) == null ? void 0 : g.characterLimit, b = s.current.value + d;\n P != null && P >= 0 && b.length > P ? t(b.slice(0, P)) : t(b), n(s.current.value.length);\n }\n r && (uA = setTimeout(async () => await OA(e, s), r)), (B = A.voice) != null && B.autoSendDisabled || (pA = setTimeout(o, c));\n }, a.onend = () => {\n BA ? (a.start(), !uA && r && (uA = setTimeout(async () => await OA(e, s), r))) : (clearTimeout(uA), uA = null, clearTimeout(pA));\n }, r && (uA = setTimeout(async () => await OA(e, s), r));\n}, Ut = (A, e) => {\n navigator.mediaDevices.getUserMedia({ audio: !0 }).then((o) => {\n if (cA = new MediaRecorder(o), !BA)\n try {\n BA = !0, cA.start();\n } catch {\n }\n cA.ondataavailable = (t) => {\n e.current && e.current.push(t.data);\n }, cA.onstop = () => {\n A(), o.getTracks().forEach((t) => t.stop());\n };\n }).catch((o) => {\n console.error(\"Unable to use microphone:\", o);\n });\n}, XA = () => {\n const A = YA();\n A && (BA = !1, A && A.stop(), cA && cA.state !== \"inactive\" && (cA.stop(), cA = null), clearTimeout(uA), uA = null, clearTimeout(pA));\n}, Ft = (A, e) => {\n var t, n, s;\n const o = YA();\n (t = e.voice) != null && t.disabled || !((n = e.chatInput) != null && n.blockSpam) || !o || (A && !BA ? (BA = !0, (s = e.voice) != null && s.sendAsAudio ? cA == null || cA.start() : o.start()) : A || XA());\n}, OA = async (A, e) => {\n var o;\n (o = e.current) != null && o.disabled || await A(), XA();\n}, TA = () => {\n const { settings: A } = O(), { voiceToggledOn: e, setSyncedVoiceToggledOn: o, syncedVoiceToggledOnRef: t } = eA(), { dispatchRcbEvent: n } = lA(), s = x(async (r) => {\n var c;\n r !== t.current && ((c = A.event) != null && c.rcbToggleVoice && (await n(\n H.TOGGLE_VOICE,\n {\n currState: t.current,\n newState: !t.current\n }\n )).defaultPrevented || o((i) => !i));\n }, [t]), a = x((r) => {\n Ft(r, A);\n }, [A]);\n return {\n voiceToggledOn: e,\n toggleVoice: s,\n syncVoice: a\n };\n}, DA = () => {\n var C;\n const { settings: A } = O(), {\n inputLength: e,\n setInputLength: o,\n textAreaDisabled: t,\n setSyncedTextAreaDisabled: n,\n textAreaSensitiveMode: s,\n setSyncedTextAreaSensitiveMode: a,\n syncedTextAreaDisabledRef: r,\n syncedTextAreaSensitiveModeRef: c\n } = eA(), { inputRef: i, chatBodyRef: u, prevInputRef: f } = $(), { dispatchRcbEvent: w } = lA(), { getIsChatBotVisible: d } = sA(), g = x(async (v) => {\n var E, T, Q;\n if (r.current && i.current) {\n i.current.value = \"\";\n return;\n }\n if (i.current && f.current !== null) {\n const S = (E = A.chatInput) == null ? void 0 : E.characterLimit, m = ((T = A.chatInput) == null ? void 0 : T.allowNewline) ? v : v.replace(/\\n/g, \" \");\n if (S != null && S >= 0 && m.length > S ? i.current.value = m.slice(0, S) : i.current.value = m, (Q = A.event) != null && Q.rcbTextAreaChangeValue && (await w(\n H.TEXT_AREA_CHANGE_VALUE,\n { currValue: i.current.value, prevValue: f.current }\n )).defaultPrevented) {\n i.current.value = f.current;\n return;\n }\n f.current = i.current.value;\n }\n }, [r, i, f, A, w]), B = x((v) => {\n var E;\n (E = i.current) != null && E.disabled || setTimeout(() => {\n var T, Q, S;\n (T = A.general) != null && T.embedded ? d() && ((Q = i.current) == null || Q.focus()) : v !== \"start\" && ((S = i.current) == null || S.focus());\n }, 100);\n }, [i, (C = A.general) == null ? void 0 : C.embedded, u, d]), P = x(() => {\n i.current && i.current.focus();\n }, []), b = x(() => {\n i.current && i.current.blur();\n }, []), y = x(() => i && i.current ? i.current.value : \"\", []), D = x((v) => {\n v !== r.current && n((E) => !E);\n }, [r]), p = x((v) => {\n v !== c.current && a((E) => !E);\n }, [c]);\n return {\n textAreaDisabled: t,\n setSyncedTextAreaDisabled: n,\n textAreaSensitiveMode: s,\n setSyncedTextAreaSensitiveMode: a,\n inputLength: e,\n setInputLength: o,\n getTextAreaValue: y,\n setTextAreaValue: g,\n updateTextAreaFocus: B,\n focusTextArea: P,\n blurTextArea: b,\n toggleTextAreaDisabled: D,\n toggleTextAreaSensitiveMode: p\n };\n}, De = vA({\n toasts: [],\n setSyncedToasts: () => {\n },\n syncedToastsRef: { current: [] }\n}), Ee = () => PA(De), jt = ({ children: A }) => {\n const [e, o, t] = aA([]);\n return /* @__PURE__ */ l(De.Provider, { value: { toasts: e, setSyncedToasts: o, syncedToastsRef: t }, children: A });\n}, EA = () => {\n const { settings: A } = O(), { toasts: e, setSyncedToasts: o, syncedToastsRef: t } = Ee(), { dispatchRcbEvent: n } = lA(), s = x(async (c, i) => {\n var g, B, P, b;\n let u = null;\n if (t.current.length >= (((g = A.toast) == null ? void 0 : g.maxCount) ?? 3)) {\n if ((B = A.toast) != null && B.forbidOnMax)\n return null;\n u = SA();\n let y = { id: u, content: c, timeout: i };\n if ((P = A.event) != null && P.rcbShowToast) {\n const D = await n(H.SHOW_TOAST, { toast: y });\n if (D.defaultPrevented)\n return null;\n y = D.data.toast;\n }\n return o((D) => [...D.slice(1), y]), u;\n }\n u = SA();\n let d = { id: u, content: c, timeout: i };\n if ((b = A.event) != null && b.rcbShowToast) {\n const y = await n(H.SHOW_TOAST, { toast: d });\n if (y.defaultPrevented)\n return null;\n d = y.data.toast;\n }\n return o((y) => [...y, d]), u;\n }, [A, n]), a = x(async (c) => {\n var u;\n const i = t.current.find((f) => f.id === c);\n return !i || (u = A.event) != null && u.rcbDismissToast && (await n(H.DISMISS_TOAST, { toast: i })).defaultPrevented ? null : (o((f) => f.filter((w) => w.id !== c)), c);\n }, [n]), r = x((c) => {\n o(c);\n }, []);\n return {\n showToast: s,\n dismissToast: a,\n toasts: e,\n replaceToasts: r\n };\n}, QA = () => {\n var j, N, W, J, z;\n const { settings: A } = O(), { paths: e, setSyncedPaths: o, syncedPathsRef: t } = mA(), { flowRef: n, streamMessageMap: s, paramsInputRef: a, keepVoiceOnRef: r, timeoutIdRef: c } = $(), {\n setSyncedIsBotTyping: i,\n setSyncedTextAreaDisabled: u,\n setSyncedTextAreaSensitiveMode: f,\n blockAllowsAttachment: w,\n setBlockAllowsAttachment: d\n } = eA(), { dispatchRcbEvent: g } = lA(), {\n endStreamMessage: B,\n injectMessage: P,\n removeMessage: b,\n simulateStreamMessage: y,\n streamMessage: D\n } = hA(), { showToast: p, dismissToast: C } = EA(), { toggleChatWindow: v } = sA(), { updateTextAreaFocus: E, setTextAreaValue: T } = DA(), { syncVoice: Q } = TA(), S = x(async (U) => {\n var K;\n if ((K = A.event) != null && K.rcbPostProcessBlock) {\n const R = await g(H.POST_PROCESS_BLOCK, {\n block: U\n });\n if (R.defaultPrevented)\n return null;\n U = R.data.block;\n }\n return U;\n }, [(j = A.event) == null ? void 0 : j.rcbPostProcessBlock, g]), h = x(async (U, K) => {\n var G, tA, _, oA;\n if (!U)\n return;\n let R = n.current[U];\n if (!R) {\n i(!1);\n return;\n }\n if ((G = A.event) != null && G.rcbPreProcessBlock) {\n const rA = await g(H.PRE_PROCESS_BLOCK, {\n block: R\n });\n if (rA.defaultPrevented)\n return;\n R = rA.data.block;\n }\n i(!0), (tA = A.chatInput) != null && tA.blockSpam && u(!0), f(!1);\n const L = {\n prevPath: K,\n currPath: U,\n goToPath: M,\n setTextAreaValue: T,\n userInput: a.current,\n endStreamMessage: B,\n injectMessage: P,\n removeMessage: b,\n simulateStreamMessage: y,\n streamMessage: D,\n toggleChatWindow: v,\n showToast: p,\n dismissToast: C\n };\n await yt(\n R,\n L,\n ((_ = A.botBubble) == null ? void 0 : _.simulateStream) ?? !1,\n c,\n u,\n f,\n S\n ), i(!1), \"chatDisabled\" in R || u((oA = A.chatInput) == null ? void 0 : oA.disabled), \"isSensitive\" in R || f(!1), d(typeof R.file == \"function\"), E(U), Q(r.current && !R.chatDisabled), U !== K && s.current.clear();\n }, [\n n,\n E,\n Q,\n (N = A.botBubble) == null ? void 0 : N.simulateStream,\n (W = A.chatInput) == null ? void 0 : W.disabled,\n a,\n B,\n P,\n b,\n y,\n D,\n v,\n p,\n C,\n r,\n s\n ]), m = x(() => t.current.length > 0 ? t.current.at(-1) ?? null : null, []), I = x(() => t.current.length > 1 ? t.current.at(-2) ?? null : null, []), M = x(async (U) => {\n var L;\n const K = m(), R = I();\n return (L = A.event) != null && L.rcbChangePath && (await g(H.CHANGE_PATH, {\n currPath: K,\n prevPath: R,\n nextPath: U\n })).defaultPrevented ? !1 : (o((G) => [...G, U]), await h(U, K), !0);\n }, [(J = A.chatInput) == null ? void 0 : J.blockSpam, (z = A.event) == null ? void 0 : z.rcbChangePath, h, g]), k = x((U) => {\n o(U);\n }, []);\n return {\n getCurrPath: m,\n getPrevPath: I,\n goToPath: M,\n blockAllowsAttachment: w,\n setBlockAllowsAttachment: d,\n paths: e,\n replacePaths: k,\n firePostProcessBlockEvent: S\n };\n}, yA = () => {\n var j, N, W, J;\n const { settings: A } = O(), {\n endStreamMessage: e,\n injectMessage: o,\n removeMessage: t,\n simulateStreamMessage: n,\n streamMessage: s\n } = hA(), { syncedPathsRef: a } = mA(), { getCurrPath: r, getPrevPath: c, goToPath: i, firePostProcessBlockEvent: u } = QA(), {\n setSyncedTextAreaSensitiveMode: f,\n setSyncedTextAreaDisabled: w,\n setSyncedIsBotTyping: d,\n setBlockAllowsAttachment: g,\n setInputLength: B,\n syncedVoiceToggledOnRef: P,\n syncedTextAreaSensitiveModeRef: b\n } = eA(), { flowRef: y, inputRef: D, keepVoiceOnRef: p, paramsInputRef: C, timeoutIdRef: v } = $(), { showToast: E, dismissToast: T } = EA(), { dispatchRcbEvent: Q } = lA(), { syncVoice: S } = TA(), { setTextAreaValue: h } = DA(), { toggleChatWindow: m } = sA(), I = x(async (z) => {\n var R, L, G, tA, _, oA;\n const U = r();\n if (!(!U || !y.current[U])) {\n if (b.current) {\n if ((R = A == null ? void 0 : A.sensitiveInput) != null && R.hideInUserBubble)\n return;\n if ((L = A == null ? void 0 : A.sensitiveInput) != null && L.maskInUserBubble) {\n (G = A.userBubble) != null && G.simulateStream ? await n(\n \"*\".repeat(((tA = A.sensitiveInput) == null ? void 0 : tA.asterisksCount) ?? 10),\n \"USER\"\n ) : await o(\"*\".repeat(((_ = A.sensitiveInput) == null ? void 0 : _.asterisksCount) ?? 10), \"USER\");\n return;\n }\n }\n (oA = A.userBubble) != null && oA.simulateStream ? await n(z, \"USER\") : await o(z, \"USER\");\n }\n }, [y, r, A, o, n, b]), M = x(async (z, U = !0) => {\n var G, tA;\n if (z = z.trim(), z === \"\")\n return;\n U && await I(z), v.current && clearTimeout(v.current), D.current && (h(\"\"), B(0));\n const K = r();\n if (!K)\n return;\n let R = y.current[K];\n const L = await u(R);\n L && ((G = A.chatInput) != null && G.blockSpam && w(!0), p.current = P.current, S(!1), setTimeout(() => {\n d(!0);\n }, 400), f(!1), setTimeout(async () => {\n var rA;\n const _ = {\n prevPath: c(),\n currPath: r(),\n goToPath: i,\n setTextAreaValue: h,\n userInput: C.current,\n injectMessage: o,\n simulateStreamMessage: n,\n streamMessage: s,\n removeMessage: t,\n endStreamMessage: e,\n toggleChatWindow: m,\n showToast: E,\n dismissToast: T\n }, oA = a.current.length;\n await ge(L, _), a.current.length === oA && (\"chatDisabled\" in R ? w(!!R.chatDisabled) : w(!!((rA = A.chatInput) != null && rA.disabled)), we(R, _, f), g(typeof R.file == \"function\"), S(p.current), d(!1));\n }, (tA = A.chatInput) == null ? void 0 : tA.botDelay));\n }, [\n v,\n (j = A.chatInput) == null ? void 0 : j.blockSpam,\n (N = A.chatInput) == null ? void 0 : N.botDelay,\n (W = A.chatInput) == null ? void 0 : W.disabled,\n p,\n P,\n S,\n I,\n c,\n r,\n i,\n o,\n n,\n s,\n t,\n e,\n m,\n E,\n T,\n y\n ]);\n return { handleSubmitText: x(async (z, U = !0) => {\n var R, L;\n z = z ?? ((R = D.current) == null ? void 0 : R.value), !((L = A.event) != null && L.rcbUserSubmitText && (await Q(H.USER_SUBMIT_TEXT, { inputText: z, sendInChat: U })).defaultPrevented || !r()) && M(z, U);\n }, [Q, r, M, D, (J = A.event) == null ? void 0 : J.rcbUserSubmitText]) };\n}, MA = () => {\n var o;\n const { settings: A } = O();\n return dA(() => {\n var a;\n if (typeof window > \"u\" || !window.navigator)\n return !1;\n if (!((a = A.device) != null && a.applyMobileOptimizations))\n return !0;\n const t = navigator.userAgent, n = !/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t), s = window.innerWidth >= 768;\n return n && s;\n }, [(o = A.device) == null ? void 0 : o.applyMobileOptimizations]);\n}, zt = ({ buttons: A }) => {\n var I, M, k, j, N, W, J, z, U, K, R;\n const e = MA(), { settings: o } = O(), { styles: t } = Y(), {\n textAreaDisabled: n,\n textAreaSensitiveMode: s,\n inputLength: a,\n hasFlowStarted: r,\n setHasFlowStarted: c,\n setInputLength: i\n } = eA(), { inputRef: u } = $(), [f, w] = F(!1), [d, g] = F(!1), { handleSubmitText: B } = yA(), { setTextAreaValue: P } = DA(), b = {\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle\n }, y = {\n outline: n ? \"\" : \"none\",\n boxShadow: n ? \"\" : `0 0 5px ${(I = o.general) == null ? void 0 : I.primaryColor}`,\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle,\n // by default inherit the base style for input area\n ...t.chatInputAreaFocusedStyle\n }, D = {\n cursor: `url(\"${(M = o.general) == null ? void 0 : M.actionDisabledIcon}\"), auto`,\n caretColor: \"transparent\",\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle,\n // by default inherit the base style for input area\n ...t.chatInputAreaDisabledStyle\n }, p = {\n color: \"#989898\",\n ...t.characterLimitStyle\n }, C = {\n color: \"#ff0000\",\n ...t.characterLimitReachedStyle\n }, v = n ? (k = o.chatInput) == null ? void 0 : k.disabledPlaceholderText : (j = o.chatInput) == null ? void 0 : j.enabledPlaceholderText, E = () => {\n n || w(!0);\n }, T = () => {\n w(!1);\n }, Q = () => {\n g(!0);\n }, S = () => {\n g(!1);\n }, h = async (L) => {\n var G;\n if (!d && L.key === \"Enter\") {\n if (L.shiftKey) {\n (G = o.chatInput) != null && G.allowNewline || L.preventDefault();\n return;\n }\n L.preventDefault(), await B();\n }\n }, m = (L) => {\n u.current && (P(L.target.value), i(u.current.value.length));\n };\n return /* @__PURE__ */ X(\n \"div\",\n {\n \"aria-label\": ((N = o.ariaLabel) == null ? void 0 : N.inputTextArea) ?? \"input text area\",\n role: \"textbox\",\n onMouseDown: (L) => {\n var G;\n L.stopPropagation(), !r && ((G = o.general) == null ? void 0 : G.flowStartTrigger) === \"ON_CHATBOT_INTERACT\" && c(!0);\n },\n style: { ...t.chatInputContainerStyle },\n className: \"rcb-chat-input\",\n children: [\n s && ((W = o.sensitiveInput) != null && W.maskInTextArea) ? /* @__PURE__ */ l(\n \"input\",\n {\n ref: u,\n type: \"password\",\n className: \"rcb-chat-input-textarea\",\n style: n ? D : f ? y : b,\n placeholder: v,\n onChange: m,\n onKeyDown: h,\n onFocus: E,\n onBlur: T,\n onCompositionStart: Q,\n onCompositionEnd: S\n }\n ) : /* @__PURE__ */ l(\n \"textarea\",\n {\n ref: u,\n style: n ? D : f ? y : b,\n rows: 1,\n className: \"rcb-chat-input-textarea\",\n placeholder: v,\n onChange: m,\n onKeyDown: h,\n onFocus: E,\n onBlur: T,\n onCompositionStart: Q,\n onCompositionEnd: S\n }\n ),\n /* @__PURE__ */ X(nA, { children: [\n A == null ? void 0 : A.map(\n (L, G) => /* @__PURE__ */ l(UA, { children: L }, G)\n ),\n ((J = o.chatInput) == null ? void 0 : J.showCharacterCount) && ((z = o.chatInput) == null ? void 0 : z.characterLimit) != null && ((U = o.chatInput) == null ? void 0 : U.characterLimit) > 0 && /* @__PURE__ */ X(\n \"div\",\n {\n className: \"rcb-chat-input-char-counter\",\n style: a >= ((K = o.chatInput) == null ? void 0 : K.characterLimit) ? C : p,\n children: [\n a,\n \"/\",\n (R = o.chatInput) == null ? void 0 : R.characterLimit\n ]\n }\n )\n ] })\n ]\n }\n );\n}, Gt = ({ buttons: A }) => {\n var t;\n const { settings: e } = O(), { styles: o } = Y();\n return /* @__PURE__ */ X(\n \"div\",\n {\n \"data-testid\": \"chatbot-footer-container\",\n style: { ...o.footerStyle },\n className: \"rcb-chat-footer-container\",\n children: [\n /* @__PURE__ */ l(\"div\", { className: \"rcb-chat-footer\", children: A == null ? void 0 : A.map(\n (n, s) => /* @__PURE__ */ l(UA, { children: n }, s)\n ) }),\n /* @__PURE__ */ l(\"span\", { children: (t = e.footer) == null ? void 0 : t.text })\n ]\n }\n );\n}, Yt = () => {\n var c, i, u, f, w, d, g;\n const { settings: A } = O(), { styles: e } = Y(), { unreadCount: o } = eA(), { isChatWindowOpen: t, toggleChatWindow: n } = sA(), s = {\n backgroundImage: `linear-gradient(to right, ${(c = A.general) == null ? void 0 : c.secondaryColor},\n\t\t\t${(i = A.general) == null ? void 0 : i.primaryColor})`,\n ...e.chatButtonStyle\n }, a = {\n backgroundImage: `url(${(u = A.chatButton) == null ? void 0 : u.icon})`,\n fill: \"#fff\",\n width: 75,\n height: 75,\n ...e.chatIconStyle\n }, r = () => {\n var P;\n const B = (P = A.chatButton) == null ? void 0 : P.icon;\n return !B || typeof B == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-toggle-icon\",\n style: a\n }\n ) : B && /* @__PURE__ */ l(\"span\", { className: \"rcb-toggle-icon\", children: /* @__PURE__ */ l(B, { style: a }) });\n };\n return /* @__PURE__ */ l(nA, { children: !((f = A.general) != null && f.embedded) && /* @__PURE__ */ X(\n \"div\",\n {\n \"aria-label\": ((w = A.ariaLabel) == null ? void 0 : w.chatButton) ?? \"open chat\",\n role: \"button\",\n style: s,\n className: `rcb-toggle-button ${t ? \"rcb-button-hide\" : \"rcb-button-show\"}`,\n onClick: () => n(!0),\n children: [\n r(),\n !((d = A.notification) != null && d.disabled) && ((g = A.notification) == null ? void 0 : g.showCount) && /* @__PURE__ */ l(\"span\", { style: { ...e.notificationBadgeStyle }, className: \"rcb-badge\", children: o })\n ]\n }\n ) });\n}, Xt = () => {\n var g, B, P, b;\n const A = MA(), { settings: e } = O(), { styles: o } = Y(), { chatBodyRef: t } = $(), { isChatWindowOpen: n, toggleChatWindow: s } = sA(), [a, r] = F(!1), [c, i] = F(!1), [u, f] = F(0);\n V(() => {\n var D, p, C;\n const y = (D = e.tooltip) == null ? void 0 : D.mode;\n if (y === \"ALWAYS\")\n if (A) {\n let v;\n n ? v = (((p = t.current) == null ? void 0 : p.offsetWidth) ?? 375) - (typeof ((C = o.chatButtonStyle) == null ? void 0 : C.width) == \"number\" ? o.chatButtonStyle.width : 75) : v = 0, f(v), r(!0);\n } else\n r(!n);\n else y === \"NEVER\" ? r(!1) : y === \"START\" ? c ? r(!1) : (i(!0), r(!0)) : y === \"CLOSE\" && r(!n);\n }, [n]);\n const w = {\n transform: `translateX(-${u}px)`,\n right: (((g = o.chatButtonStyle) == null ? void 0 : g.width) ?? 75) + 40,\n bottom: 30,\n backgroundColor: (B = e.general) == null ? void 0 : B.secondaryColor,\n color: \"#fff\",\n ...o.tooltipStyle\n }, d = {\n borderColor: `transparent transparent transparent ${w.backgroundColor}`\n };\n return /* @__PURE__ */ l(nA, { children: !((P = e.general) != null && P.embedded) && /* @__PURE__ */ X(\n \"div\",\n {\n \"data-testid\": \"chat-tooltip\",\n style: w,\n className: `rcb-chat-tooltip ${a ? \"rcb-tooltip-show\" : \"rcb-tooltip-hide\"}`,\n onClick: () => s(!0),\n children: [\n /* @__PURE__ */ l(\"span\", { children: (b = e.tooltip) == null ? void 0 : b.text }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-chat-tooltip-tail\", style: d })\n ]\n }\n ) });\n}, Wt = ({\n id: A,\n content: e,\n timeout: o\n}) => {\n var w, d;\n const { settings: t } = O(), { styles: n } = Y(), [s] = F({\n toastPromptStyle: { ...n.toastPromptStyle },\n toastPromptHoveredStyle: { ...n.toastPromptHoveredStyle }\n }), { dismissToast: a } = EA(), [r, c] = F(!1), i = {\n color: (w = t.general) == null ? void 0 : w.primaryColor,\n borderColor: (d = t.general) == null ? void 0 : d.primaryColor,\n ...s.toastPromptHoveredStyle\n };\n return V(() => {\n if (o) {\n const g = setTimeout(() => {\n a(A);\n }, o);\n return () => clearTimeout(g);\n }\n }, [A, a, o]), typeof e == \"string\" ? /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: () => {\n c(!0);\n },\n onMouseLeave: () => {\n c(!1);\n },\n style: r ? i : s.toastPromptStyle,\n onMouseDown: async (g) => {\n var B;\n (B = t.toast) != null && B.dismissOnClick && (g.preventDefault(), await a(A));\n },\n className: \"rcb-toast-prompt\",\n children: e\n }\n ) : /* @__PURE__ */ l(nA, { children: e });\n}, Kt = () => {\n var t, n, s, a, r, c, i, u, f, w, d, g;\n const { styles: A } = Y(), { toasts: e } = Ee(), o = {\n bottom: `calc(${typeof ((t = A.footerStyle) == null ? void 0 : t.height) == \"number\" ? `${(n = A.footerStyle) == null ? void 0 : n.height}px` : ((s = A.footerStyle) == null ? void 0 : s.height) ?? \"50px\"} + ${typeof ((a = A.chatInputContainerStyle) == null ? void 0 : a.height) == \"number\" ? `${(r = A.chatInputContainerStyle) == null ? void 0 : r.height}px` : ((c = A.chatInputContainerStyle) == null ? void 0 : c.height) ?? \"70px\"} + 20px)`,\n width: 300,\n minWidth: `calc(${typeof ((i = A.chatWindowStyle) == null ? void 0 : i.width) == \"number\" ? `${(u = A.chatWindowStyle) == null ? void 0 : u.width}px` : ((f = A.chatWindowStyle) == null ? void 0 : f.width) ?? \"375px\"} / 2)`,\n maxWidth: `calc(${typeof ((w = A.chatWindowStyle) == null ? void 0 : w.width) == \"number\" ? `${(d = A.chatWindowStyle) == null ? void 0 : d.width}px` : ((g = A.chatWindowStyle) == null ? void 0 : g.width) ?? \"375px\"} - 50px)`,\n ...A.toastPromptContainerStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-toast-prompt-container\", style: o, children: e.map((B) => /* @__PURE__ */ l(\n Wt,\n {\n id: B.id,\n content: B.content,\n timeout: B.timeout\n },\n B.id\n )) });\n}, ye = ({\n file: A,\n fileType: e,\n fileUrl: o\n}) => {\n var a, r, c;\n const { settings: t } = O(), { styles: n } = Y(), s = {\n backgroundColor: (a = t.general) == null ? void 0 : a.primaryColor,\n maxWidth: (r = t.userBubble) != null && r.showAvatar ? \"65%\" : \"70%\",\n ...n.mediaDisplayContainerStyle\n };\n return /* @__PURE__ */ l(nA, { children: o ? /* @__PURE__ */ X(nA, { children: [\n e === \"image\" && o && /* @__PURE__ */ l(\n \"div\",\n {\n style: s,\n className: \"rcb-media-display-image-container rcb-media-entry\",\n \"data-testid\": \"media-display-image-container\",\n children: /* @__PURE__ */ l(\"img\", { src: o, alt: \"Image Display\", className: \"rcb-media-display-image\" })\n }\n ),\n e === \"video\" && o && /* @__PURE__ */ l(\n \"div\",\n {\n style: s,\n className: \"rcb-media-display-video-container rcb-media-entry\",\n \"data-testid\": \"media-display-video-container\",\n children: /* @__PURE__ */ X(\"video\", { controls: !0, className: \"rcb-media-display-video\", children: [\n /* @__PURE__ */ l(\"source\", { src: o, type: A.type }),\n \"Your browser does not support the video tag.\"\n ] })\n }\n ),\n e === \"audio\" && o && /* @__PURE__ */ X(\n \"audio\",\n {\n \"data-testid\": \"media-display-audio-container\",\n style: {\n maxWidth: (c = t.userBubble) != null && c.showAvatar ? \"65%\" : \"70%\"\n },\n controls: !0,\n className: \"rcb-media-display-audio rcb-media-entry\",\n children: [\n /* @__PURE__ */ l(\"source\", { src: o, type: A.type }),\n \"Your browser does not support the audio tag.\"\n ]\n }\n )\n ] }) : /* @__PURE__ */ l(nA, {}) });\n}, Ce = async (A) => {\n if (!A)\n return { fileType: null, fileUrl: null };\n const e = A.type.split(\"/\")[0];\n if (![\"image\", \"video\", \"audio\"].includes(e))\n return { fileType: null, fileUrl: null };\n try {\n const o = await new Promise((t, n) => {\n const s = new FileReader();\n s.onload = () => t(s.result), s.onerror = () => n(new Error(\"File reading failed\")), s.readAsDataURL(A);\n });\n return { fileType: e, fileUrl: o };\n } catch (o) {\n return console.error(o), { fileType: null, fileUrl: null };\n }\n}, qt = () => {\n var Q, S, h, m, I, M;\n const { settings: A } = O(), { styles: e } = Y(), {\n injectMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n removeMessage: s,\n endStreamMessage: a\n } = hA(), { getCurrPath: r, getPrevPath: c, goToPath: i, blockAllowsAttachment: u } = QA(), { flowRef: f, inputRef: w } = $(), d = f.current, { showToast: g, dismissToast: B } = EA(), { dispatchRcbEvent: P } = lA(), { toggleChatWindow: b } = sA(), { setTextAreaValue: y } = DA(), { handleSubmitText: D } = yA(), p = {\n cursor: `url(\"${(Q = A.general) == null ? void 0 : Q.actionDisabledIcon}\"), auto`,\n ...e.fileAttachmentButtonStyle,\n // by default inherit the base style\n ...e.fileAttachmentButtonDisabledStyle\n }, C = {\n backgroundImage: `url(${(S = A.fileAttachment) == null ? void 0 : S.icon})`,\n fill: \"#a6a6a6\",\n ...e.fileAttachmentIconStyle\n }, v = {\n backgroundImage: `url(${(h = A.fileAttachment) == null ? void 0 : h.icon})`,\n fill: \"#a6a6a6\",\n ...e.fileAttachmentIconStyle,\n // by default inherit the base style\n ...e.fileAttachmentIconDisabledStyle\n }, E = async (k) => {\n var U, K, R, L;\n const j = k.target.files;\n if (!j)\n return;\n const N = Array.from(j);\n if (k.target.value = \"\", (U = A.event) != null && U.rcbUserUploadFile && (await P(H.USER_UPLOAD_FILE, { files: N })).defaultPrevented)\n return;\n const W = r();\n if (!W)\n return;\n const J = d[W];\n if (!J)\n return;\n const z = J.file;\n if (z != null) {\n const G = [];\n for (let tA = 0; tA < N.length; tA++) {\n if (G.push(N[tA].name), !((K = A.fileAttachment) != null && K.showMediaDisplay))\n continue;\n const _ = await Ce(N[tA]);\n !_.fileType || !_.fileUrl || await o(/* @__PURE__ */ l(\n ye,\n {\n file: N[tA],\n fileType: _.fileType,\n fileUrl: _.fileUrl\n }\n ), \"USER\");\n }\n await D(\"📄 \" + G.join(\", \"), (R = A.fileAttachment) == null ? void 0 : R.sendFileName), await z({\n userInput: (L = w.current) == null ? void 0 : L.value,\n prevPath: c(),\n currPath: r(),\n goToPath: i,\n setTextAreaValue: y,\n injectMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n removeMessage: s,\n endStreamMessage: a,\n toggleChatWindow: b,\n showToast: g,\n dismissToast: B,\n files: N\n });\n }\n }, T = () => {\n var j, N;\n const k = u ? (j = A.fileAttachment) == null ? void 0 : j.icon : (N = A.fileAttachment) == null ? void 0 : N.iconDisabled;\n return !k || typeof k == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: u ? \"rcb-attach-icon-enabled\" : \"rcb-attach-icon-disabled\",\n style: u ? C : v\n }\n ) : k && /* @__PURE__ */ l(\"span\", { className: u ? \"rcb-attach-icon-enabled\" : \"rcb-attach-icon-disabled\", children: /* @__PURE__ */ l(\n k,\n {\n style: u ? C : v\n }\n ) });\n };\n return /* @__PURE__ */ X(\n \"label\",\n {\n \"aria-label\": ((m = A.ariaLabel) == null ? void 0 : m.fileAttachmentButton) ?? \"upload file\",\n role: \"button\",\n className: u ? \"rcb-attach-button-enabled\" : \"rcb-attach-button-disabled\",\n style: u ? { ...e.fileAttachmentButtonStyle } : p,\n children: [\n /* @__PURE__ */ l(\n \"input\",\n {\n className: \"rcb-attach-input\",\n role: \"file\",\n type: \"file\",\n onChange: E,\n multiple: (I = A.fileAttachment) == null ? void 0 : I.multiple,\n accept: (M = A.fileAttachment) == null ? void 0 : M.accept,\n disabled: !u\n }\n ),\n T()\n ]\n }\n );\n}, Jt = () => {\n var P, b, y, D, p, C;\n const { settings: A } = O(), { styles: e } = Y(), { syncedTextAreaDisabledRef: o } = eA(), { inputRef: t } = $(), { textAreaDisabled: n, setTextAreaValue: s } = DA(), a = AA(null), r = AA(null), [c, i] = F(!1), u = {\n cursor: `url(\"${(P = A.general) == null ? void 0 : P.actionDisabledIcon}\"), auto`,\n ...e.emojiButtonStyle,\n // by default inherit the base style\n ...e.emojiButtonDisabledStyle\n }, f = {\n backgroundImage: `url(${(b = A.emoji) == null ? void 0 : b.icon})`,\n fill: \"#a6a6a6\",\n ...e.emojiIconStyle\n }, w = {\n backgroundImage: `url(${(y = A.emoji) == null ? void 0 : y.icon})`,\n fill: \"#a6a6a6\",\n ...e.emojiIconStyle,\n // by default inherit the base style\n ...e.emojiIconDisabledStyle\n };\n V(() => {\n const v = (Q) => {\n const S = Q.composedPath();\n a.current && !S.includes(a.current) && r.current && !S.includes(r.current) && i(!1);\n }, E = () => {\n if (a.current && r.current) {\n const Q = r.current.getBoundingClientRect(), S = a.current.offsetHeight, h = Q.top - S - 8;\n a.current.style.left = `${Q.left}px`, a.current.style.top = `${h}px`;\n }\n }, T = () => {\n E();\n };\n return document.addEventListener(\"mousedown\", v), window.addEventListener(\"resize\", T), () => {\n document.removeEventListener(\"mousedown\", v), window.removeEventListener(\"resize\", T);\n };\n }, []);\n const d = (v, E) => {\n v.preventDefault(), t.current && (s(t.current.value + E), setTimeout(() => {\n const T = t.current;\n if (T) {\n T.focus();\n const Q = T.value.length;\n T.setSelectionRange(Q, Q);\n }\n }, 50)), i(!1);\n }, g = (v) => {\n v.preventDefault(), o.current ? i(!1) : i((E) => !E);\n }, B = () => {\n var E, T;\n const v = n ? (E = A.emoji) == null ? void 0 : E.iconDisabled : (T = A.emoji) == null ? void 0 : T.icon;\n return !v || typeof v == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: `${n ? \"rcb-emoji-icon-disabled\" : \"rcb-emoji-icon-enabled\"}`,\n style: n ? w : f\n }\n ) : v && /* @__PURE__ */ l(\"span\", { className: `${n ? \"rcb-emoji-icon-disabled\" : \"rcb-emoji-icon-enabled\"}`, children: /* @__PURE__ */ l(v, { style: n ? w : f }) });\n };\n return /* @__PURE__ */ X(nA, { children: [\n /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((D = A.ariaLabel) == null ? void 0 : D.emojiButton) ?? \"emoji picker\",\n role: \"button\",\n ref: r,\n className: `${n ? \"rcb-emoji-button-disabled\" : \"rcb-emoji-button-enabled\"}`,\n style: n ? u : { ...e.emojiButtonStyle },\n onMouseDown: g,\n children: B()\n }\n ),\n c && /* @__PURE__ */ l(\"div\", { className: \"rcb-emoji-button-popup\", ref: a, children: (C = (p = A.emoji) == null ? void 0 : p.list) == null ? void 0 : C.map((v, E) => /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-emoji\",\n onMouseDown: (T) => d(T, v),\n children: v\n },\n E\n )) })\n ] });\n}, Vt = () => {\n var r, c, i;\n const { settings: A } = O(), { styles: e } = Y(), { audioToggledOn: o, toggleAudio: t } = GA(), n = {\n backgroundImage: `url(${(r = A.audio) == null ? void 0 : r.icon})`,\n fill: \"#fcec3d\",\n ...e.audioIconStyle\n }, s = {\n backgroundImage: `url(${(c = A.audio) == null ? void 0 : c.iconDisabled})`,\n fill: \"#e8eaed\",\n ...e.audioIconStyle,\n // by default inherit the base style\n ...e.audioIconDisabledStyle\n }, a = () => {\n var f, w;\n const u = o ? (f = A.audio) == null ? void 0 : f.icon : (w = A.audio) == null ? void 0 : w.iconDisabled;\n return !u || typeof u == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-audio-icon\",\n \"data-testid\": \"rcb-audio-icon\",\n style: o ? n : s\n }\n ) : u && /* @__PURE__ */ l(\"span\", { className: \"rcb-audio-icon\", \"data-testid\": \"rcb-audio-icon\", children: /* @__PURE__ */ l(\n u,\n {\n style: o ? n : s,\n \"data-testid\": \"rcb-audio-icon-svg\"\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((i = A.ariaLabel) == null ? void 0 : i.audioButton) ?? \"toggle audio\",\n role: \"button\",\n onMouseDown: async (u) => {\n u.preventDefault(), await t();\n },\n style: o ? { ...e.audioButtonStyle } : { ...e.audioButtonStyle, ...e.audioButtonDisabledStyle },\n children: a()\n }\n );\n}, Zt = () => {\n var s, a;\n const { settings: A } = O(), { styles: e } = Y(), { toggleChatWindow: o } = sA(), t = {\n backgroundImage: `url(${(s = A.header) == null ? void 0 : s.closeChatIcon})`,\n fill: \"#e8eaed\",\n stroke: \"#e8eaed\",\n ...e.closeChatIconStyle\n }, n = () => {\n var c;\n const r = (c = A.header) == null ? void 0 : c.closeChatIcon;\n return !r || typeof r == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-close-chat-icon\",\n \"data-testid\": \"rcb-close-chat-icon\",\n style: t\n }\n ) : r && /* @__PURE__ */ l(\"span\", { className: \"rcb-close-chat-icon\", \"data-testid\": \"rcb-close-chat-icon\", children: /* @__PURE__ */ l(r, { style: t }) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((a = A.ariaLabel) == null ? void 0 : a.closeChatButton) ?? \"close chat\",\n role: \"button\",\n onMouseDown: (r) => {\n r.stopPropagation(), o(!1);\n },\n style: { ...e.closeChatButtonStyle },\n children: n()\n }\n );\n}, _t = () => {\n const { notificationsToggledOn: A, toggleNotifications: e, playNotificationSound: o } = zA();\n return {\n notificationsToggledOn: A,\n toggleNotifications: e,\n playNotificationSound: o\n };\n}, $t = () => {\n var r, c, i;\n const { settings: A } = O(), { styles: e } = Y(), { notificationsToggledOn: o, toggleNotifications: t } = _t(), n = {\n backgroundImage: `url(${(r = A.notification) == null ? void 0 : r.icon})`,\n fill: \"#fcec3d\",\n ...e.notificationIconStyle\n }, s = {\n backgroundImage: `url(${(c = A.notification) == null ? void 0 : c.iconDisabled})`,\n fill: \"#e8eaed\",\n ...e.notificationIconStyle,\n // by default inherit the base style\n ...e.notificationIconDisabledStyle\n }, a = () => {\n var f, w;\n const u = o ? (f = A.notification) == null ? void 0 : f.icon : (w = A.notification) == null ? void 0 : w.iconDisabled;\n return !u || typeof u == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-notification-icon\",\n \"data-testid\": \"rcb-notification-icon\",\n style: o ? n : s\n }\n ) : u && /* @__PURE__ */ l(\"span\", { className: \"rcb-notification-icon\", \"data-testid\": \"rcb-notification-icon\", children: /* @__PURE__ */ l(\n u,\n {\n style: o ? n : s,\n \"data-testid\": \"rcb-notification-icon-svg\"\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((i = A.ariaLabel) == null ? void 0 : i.notificationButton) ?? \"toggle notifications\",\n role: \"button\",\n onMouseDown: async (u) => {\n u.preventDefault(), await t();\n },\n style: o ? { ...e.notificationButtonStyle } : { ...e.notificationButtonStyle, ...e.notificationButtonDisabledStyle },\n children: a()\n }\n );\n}, Ao = () => {\n var y, D, p;\n const { settings: A } = O(), { styles: e } = Y(), { injectMessage: o } = hA(), { inputRef: t } = $(), { voiceToggledOn: n, toggleVoice: s } = TA(), { setInputLength: a, setTextAreaValue: r, textAreaDisabled: c } = DA(), { handleSubmitText: i } = yA(), u = AA([]), [f, w] = F(!1);\n V(() => {\n var C;\n (C = A.voice) != null && C.sendAsAudio ? (P(), u.current = []) : i();\n }, [f]), V(() => {\n n ? Nt(\n A,\n s,\n B,\n r,\n a,\n u,\n t\n ) : XA();\n }, [n]);\n const d = {\n backgroundImage: `url(${(y = A.voice) == null ? void 0 : y.icon})`,\n fill: \"#9aa0a6\",\n ...e.voiceIconStyle\n }, g = {\n backgroundImage: `url(${(D = A.voice) == null ? void 0 : D.iconDisabled})`,\n fill: \"#9aa0a6\",\n ...e.voiceIconStyle,\n // by default inherit the base style\n ...e.voiceIconDisabledStyle\n }, B = () => {\n w((C) => !C);\n }, P = async () => {\n const C = new Blob(u.current, { type: \"audio/wav\" }), v = new File([C], \"voice-input.wav\", { type: \"audio/wav\" }), E = await Ce(v);\n !E.fileType || !E.fileUrl || await o(/* @__PURE__ */ l(\n ye,\n {\n file: v,\n fileType: E.fileType,\n fileUrl: E.fileUrl\n }\n ), \"USER\");\n }, b = () => {\n var v, E;\n const C = n ? (v = A.voice) == null ? void 0 : v.icon : (E = A.voice) == null ? void 0 : E.iconDisabled;\n return !C || typeof C == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: `rcb-voice-icon${n && !c ? \"-on\" : \"\"}`,\n \"data-testid\": \"rcb-voice-icon\",\n style: n && !c ? d : g\n }\n ) : C && /* @__PURE__ */ l(\"span\", { className: `rcb-voice-icon ${n && !c ? \"on\" : \"\"}`, children: /* @__PURE__ */ l(C, { style: n && !c ? d : g }) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((p = A.ariaLabel) == null ? void 0 : p.voiceButton) ?? \"toggle voice\",\n role: \"button\",\n onMouseDown: async (C) => {\n C.preventDefault(), !c && await s();\n },\n style: n && !c ? { ...e.voiceButtonStyle } : { ...e.voiceButtonStyle, ...e.voiceButtonDisabledStyle },\n className: n && !c ? \"rcb-voice-button-enabled\" : \"rcb-voice-button-disabled\",\n children: b()\n }\n );\n}, eo = () => {\n var B, P, b, y, D, p, C, v;\n const { settings: A } = O(), { styles: e } = Y(), { textAreaDisabled: o } = eA(), [t, n] = F(!1), { handleSubmitText: s } = yA(), a = {\n backgroundColor: (B = A.general) == null ? void 0 : B.primaryColor,\n ...e.sendButtonStyle\n }, r = {\n cursor: `url(\"${(P = A.general) == null ? void 0 : P.actionDisabledIcon}\"), auto`,\n backgroundColor: (b = A.general) == null ? void 0 : b.primaryColor,\n ...e.sendButtonStyle,\n // by default inherit the base style\n ...e.sendButtonDisabledStyle\n }, c = {\n backgroundColor: (y = A.general) == null ? void 0 : y.secondaryColor,\n ...e.sendButtonStyle,\n // by default inherit the base style\n ...e.sendButtonHoveredStyle\n }, i = {\n backgroundImage: `url(${(D = A.chatInput) == null ? void 0 : D.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle\n }, u = {\n backgroundImage: `url(${(p = A.chatInput) == null ? void 0 : p.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle,\n // by default inherit the base style\n ...e.sendIconDisabledStyle\n }, f = {\n backgroundImage: `url(${(C = A.chatInput) == null ? void 0 : C.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle,\n // by default inherit the base style\n ...e.sendIconHoveredStyle\n }, w = () => {\n n(!0);\n }, d = () => {\n n(!1);\n }, g = () => {\n var T;\n const E = (T = A.chatInput) == null ? void 0 : T.sendButtonIcon;\n return !E || typeof E == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-send-icon\",\n \"data-testid\": \"rcb-send-icon\",\n style: o ? u : t ? f : i\n }\n ) : E && /* @__PURE__ */ l(\"span\", { className: \"rcb-send-icon\", \"data-testid\": \"rcb-send-icon\", children: /* @__PURE__ */ l(\n E,\n {\n style: o ? u : t ? f : i\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((v = A.ariaLabel) == null ? void 0 : v.sendButton) ?? \"send message\",\n role: \"button\",\n onMouseEnter: w,\n onMouseLeave: d,\n onMouseDown: async (E) => {\n E == null || E.preventDefault(), !o && await s();\n },\n style: o ? r : t ? c : a,\n className: \"rcb-send-button\",\n children: g()\n }\n );\n}, to = (A) => Object.values(Z).includes(A), oo = (A, e) => {\n var c, i, u, f, w, d, g, B, P;\n const o = {\n [Z.AUDIO_BUTTON]: (c = A.audio) == null ? void 0 : c.disabled,\n [Z.CLOSE_CHAT_BUTTON]: (i = A.general) == null ? void 0 : i.embedded,\n [Z.EMOJI_PICKER_BUTTON]: (u = A.emoji) == null ? void 0 : u.disabled,\n [Z.FILE_ATTACHMENT_BUTTON]: (f = A.fileAttachment) == null ? void 0 : f.disabled,\n [Z.NOTIFICATION_BUTTON]: (w = A.notification) == null ? void 0 : w.disabled,\n [Z.SEND_MESSAGE_BUTTON]: !1,\n [Z.VOICE_MESSAGE_BUTTON]: (d = A.voice) == null ? void 0 : d.disabled\n }, t = {}, n = (b) => b ? b.map((y) => {\n if (typeof y == \"string\") {\n if (to(y) && !o[y]) {\n if (t[y])\n return t[y];\n const D = e[y];\n if (typeof D == \"function\") {\n const p = D();\n return t[y] = p, p;\n }\n return null;\n }\n return null;\n }\n return y;\n }).filter((y) => y !== null) : [], s = n((g = A.header) == null ? void 0 : g.buttons), a = n((B = A.chatInput) == null ? void 0 : B.buttons), r = n((P = A.footer) == null ? void 0 : P.buttons);\n return { header: s, chatInput: a, footer: r };\n}, no = () => /* @__PURE__ */ l(Vt, {}), so = () => /* @__PURE__ */ l($t, {}), ro = () => /* @__PURE__ */ l(Zt, {}), ao = () => /* @__PURE__ */ l(Ao, {}), co = () => /* @__PURE__ */ l(eo, {}), io = () => /* @__PURE__ */ l(qt, {}), lo = () => /* @__PURE__ */ l(Jt, {}), uo = () => {\n const { settings: A } = O(), e = dA(() => ({\n [Z.CLOSE_CHAT_BUTTON]: () => ro(),\n [Z.AUDIO_BUTTON]: () => no(),\n [Z.NOTIFICATION_BUTTON]: () => so(),\n [Z.EMOJI_PICKER_BUTTON]: () => lo(),\n [Z.FILE_ATTACHMENT_BUTTON]: () => io(),\n [Z.SEND_MESSAGE_BUTTON]: () => co(),\n [Z.VOICE_MESSAGE_BUTTON]: () => ao()\n }), []), { header: o, chatInput: t, footer: n } = dA(() => oo(A, e), [A, e]), s = dA(() => o, [o]), a = dA(() => t, [t]), r = dA(() => n, [n]);\n return { headerButtons: s, chatInputButtons: a, footerButtons: r };\n}, WA = () => {\n const { settings: A } = O(), { styles: e } = Y(), { setSyncedMessages: o, syncedMessagesRef: t } = FA(), {\n isLoadingChatHistory: n,\n setIsLoadingChatHistory: s,\n hasChatHistoryLoaded: a,\n setHasChatHistoryLoaded: r\n } = eA(), { chatBodyRef: c } = $(), { dispatchRcbEvent: i } = lA(), u = x(async () => {\n var d, g;\n const f = jA();\n if (!f || (d = A.event) != null && d.rcbLoadChatHistory && (await i(H.LOAD_CHAT_HISTORY, {})).defaultPrevented)\n return;\n s(!0);\n const w = ((g = c.current) == null ? void 0 : g.scrollHeight) ?? 0;\n It(\n A,\n e,\n f,\n o,\n t,\n c,\n w,\n s,\n r\n );\n }, [\n A,\n e,\n i,\n t,\n c,\n s,\n r\n ]);\n return { isLoadingChatHistory: n, setIsLoadingChatHistory: s, hasChatHistoryLoaded: a, showChatHistory: u };\n}, fo = () => {\n var c, i, u;\n const { settings: A } = O(), { styles: e } = Y(), { showChatHistory: o } = WA(), [t, n] = F(!1), s = {\n color: (c = A.general) == null ? void 0 : c.primaryColor,\n borderColor: (i = A.general) == null ? void 0 : i.primaryColor,\n ...e.chatHistoryButtonStyle,\n // by default inherit the base style\n ...e.chatHistoryButtonHoveredStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-view-history-container\", children: /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: () => {\n n(!0);\n },\n onMouseLeave: () => {\n n(!1);\n },\n style: t ? s : { ...e.chatHistoryButtonStyle },\n onMouseDown: (f) => {\n f.preventDefault(), o();\n },\n className: \"rcb-view-history-button\",\n role: \"button\",\n tabIndex: 0,\n children: /* @__PURE__ */ l(\"p\", { children: (u = A.chatHistory) == null ? void 0 : u.viewChatHistoryButtonText })\n }\n ) });\n}, me = () => {\n var a;\n const { settings: A } = O(), { hasInteractedPage: e, setHasInteractedPage: o, hasFlowStarted: t, setHasFlowStarted: n } = eA(), s = x(() => {\n var c;\n if (o(!0), !t && ((c = A.general) == null ? void 0 : c.flowStartTrigger) === \"ON_PAGE_INTERACT\" && n(!0), !window.SpeechSynthesisUtterance) {\n console.info(\"Speech Synthesis API is not supported in this environment.\");\n return;\n }\n const r = new window.SpeechSynthesisUtterance();\n r.text = \"\", r.onend = () => {\n window.removeEventListener(\"click\", s), window.removeEventListener(\"keydown\", s), window.removeEventListener(\"touchstart\", s);\n }, window.speechSynthesis.speak(r);\n }, [t, (a = A.general) == null ? void 0 : a.flowStartTrigger]);\n return {\n hasInteractedPage: e,\n handleFirstInteraction: s\n };\n}, wo = () => {\n var E, T, Q, S;\n const A = MA(), { settings: e } = O(), {\n replaceMessages: o\n } = hA(), {\n isBotTyping: t,\n isChatWindowOpen: n,\n setUnreadCount: s,\n setSyncedIsChatWindowOpen: a,\n setSyncedTextAreaDisabled: r,\n setSyncedAudioToggledOn: c,\n setSyncedVoiceToggledOn: i,\n setSyncedIsScrolling: u,\n syncedIsScrollingRef: f,\n syncedIsChatWindowOpenRef: w\n } = eA(), { chatBodyRef: d } = $(), { viewportHeight: g, setViewportHeight: B, setViewportWidth: P, scrollToBottom: b } = sA(), { setUpNotifications: y } = zA(), { handleFirstInteraction: D } = me(), { showChatHistory: p } = WA(), C = AA(0), v = AA(!1);\n V(() => (window.addEventListener(\"click\", D), window.addEventListener(\"keydown\", D), window.addEventListener(\"touchstart\", D), () => {\n window.removeEventListener(\"click\", D), window.removeEventListener(\"keydown\", D), window.removeEventListener(\"touchstart\", D);\n }), []), V(() => {\n const h = d.current;\n if (!h)\n return;\n const m = () => {\n v.current || (v.current = !0, requestAnimationFrame(() => {\n var N, W;\n if (!h)\n return;\n const { scrollTop: I, clientHeight: M, scrollHeight: k } = h, j = I + M < k - (((N = e.chatWindow) == null ? void 0 : N.messagePromptOffset) ?? 30);\n u(j), f.current = j, j || (I + M >= k - 1 && (h.scrollTop = k - M - 1), (w.current || (W = e.general) != null && W.embedded) && s(0)), v.current = !1;\n }));\n };\n return h.addEventListener(\"wheel\", m, { passive: !0 }), h.addEventListener(\"touchmove\", m, { passive: !0 }), () => {\n h.removeEventListener(\"wheel\", m), h.removeEventListener(\"touchmove\", m);\n };\n }, []), V(() => {\n var h, m, I;\n r((h = e.chatInput) == null ? void 0 : h.disabled), a((m = e.chatWindow) == null ? void 0 : m.defaultOpen), c((I = e.audio) == null ? void 0 : I.defaultToggledOn), setTimeout(() => {\n var M;\n i((M = e.voice) == null ? void 0 : M.defaultToggledOn);\n }, 1);\n }, []), V(() => {\n var h;\n (h = e.notification) != null && h.disabled || y();\n }, [(E = e.notification) == null ? void 0 : E.disabled]), V(() => {\n !f.current && (d != null && d.current) && b();\n }, [t]), V(() => {\n var h, m;\n if ((h = e.chatHistory) != null && h.disabled)\n pt();\n else if (RA(e), jA().length > 0) {\n const M = gA(/* @__PURE__ */ l(fo, {}), \"SYSTEM\");\n o([M]), (m = e.chatHistory) != null && m.autoLoad && p();\n }\n }, [(T = e.chatHistory) == null ? void 0 : T.storageKey, (Q = e.chatHistory) == null ? void 0 : Q.maxEntries, (S = e.chatHistory) == null ? void 0 : S.disabled]), V(() => {\n var h;\n A || (h = e.general) != null && h.embedded || !navigator.virtualKeyboard || (navigator.virtualKeyboard.overlaysContent = !0, navigator.virtualKeyboard.addEventListener(\"geometrychange\", (m) => {\n if (!m.target)\n return;\n const { x: I, y: M, width: k, height: j } = m.target.boundingRect;\n I == 0 && M == 0 && k == 0 && j == 0 ? (setTimeout(() => {\n var N;\n B((N = window.visualViewport) == null ? void 0 : N.height);\n }, 101), setTimeout(() => {\n var N, W;\n g != ((N = window.visualViewport) == null ? void 0 : N.height) && B((W = window.visualViewport) == null ? void 0 : W.height);\n }, 1001)) : setTimeout(() => {\n var N;\n B(((N = window.visualViewport) == null ? void 0 : N.height) - j);\n }, 101);\n }));\n }, [A]), V(() => {\n var k, j, N, W;\n if (A)\n return;\n n && (B((k = window.visualViewport) == null ? void 0 : k.height), P((j = window.visualViewport) == null ? void 0 : j.width));\n const h = () => window.scrollTo({ top: 0, left: 0, behavior: \"auto\" }), m = () => C.current = window.scrollY, I = () => {\n var J, z;\n B((J = window.visualViewport) == null ? void 0 : J.height), P((z = window.visualViewport) == null ? void 0 : z.width);\n }, M = () => {\n var J;\n window.removeEventListener(\"scroll\", h), window.removeEventListener(\"scroll\", m), (J = window.visualViewport) == null || J.removeEventListener(\"resize\", I);\n };\n return n ? (M(), document.body.style.position = \"fixed\", window.addEventListener(\"scroll\", h), (N = window.visualViewport) == null || N.addEventListener(\"resize\", I)) : (document.body.style.position = \"static\", M(), window.scrollTo({ top: C.current, left: 0, behavior: \"auto\" }), window.addEventListener(\"scroll\", m), (W = window.visualViewport) == null || W.removeEventListener(\"resize\", I)), M;\n }, [n, A]);\n}, KA = {\n DEFAULT_URL: \"https://cdn.jsdelivr.net/gh/react-chatbotify/community-themes/themes\",\n DEFAULT_EXPIRATION: \"2592000\",\n CACHE_KEY_PREFIX: \"RCB_THEME_CACHE_DATA\"\n}, go = KA.DEFAULT_URL, Bo = KA.DEFAULT_EXPIRATION, Qe = KA.CACHE_KEY_PREFIX, vo = (A, e, o) => {\n const t = localStorage.getItem(`${Qe}_${A}_${e}`);\n if (!t)\n return null;\n try {\n const n = JSON.parse(t), s = (/* @__PURE__ */ new Date()).getTime(), a = Math.floor(s / 1e3);\n return n.cacheDate + o >= a ? n : null;\n } catch (n) {\n return console.error(`Unable to fetch cache for ${A}`, n), null;\n }\n}, Po = (A, e, o, t, n) => {\n const s = (/* @__PURE__ */ new Date()).getTime(), a = Math.floor(s / 1e3), r = {\n settings: o,\n inlineStyles: t,\n cssStylesText: n,\n cacheDate: a\n };\n localStorage.setItem(`${Qe}_${A}_${e}`, JSON.stringify(r));\n}, ho = async (A, e) => {\n const o = `${e}/${A}/meta.json`;\n try {\n const t = await fetch(o);\n return t.ok ? (await t.json()).version : (console.error(`Failed to fetch meta.json from ${o}`), null);\n } catch (t) {\n return console.error(`Failed to fetch meta.json from ${o}`, t), null;\n }\n}, oe = async (A, e) => {\n const { id: o, version: t, baseUrl: n = go, cacheDuration: s = Bo } = e, a = t || await ho(o, n);\n if (!a)\n return console.error(`Unable to find version for theme: ${o}`), { settings: {}, inlineStyles: {}, cssStylesText: \"\" };\n const r = vo(o, a, s);\n if (r) {\n const y = ne(A, r.cssStylesText);\n return { settings: r.settings, inlineStyles: r.inlineStyles, cssStylesText: y };\n }\n const c = `${n}/${o}/${a}/styles.css`, i = `${n}/${o}/${a}/settings.json`, u = `${n}/${o}/${a}/styles.json`;\n let f = \"\";\n const w = await fetch(c);\n w.ok ? f = await w.text() : console.info(`Could not fetch styles.css from ${c}`);\n const d = await fetch(i);\n let g = {};\n d.ok ? g = await d.json() : console.info(`Could not fetch settings.json from ${i}`);\n const B = await fetch(u);\n let P = {};\n B.ok ? P = await B.json() : console.info(`Could not fetch styles.json from ${u}`), Po(o, a, g, P, f);\n const b = ne(A, f);\n return { settings: g, inlineStyles: P, cssStylesText: b };\n}, ne = (A, e) => e.split(new RegExp(\"(?<=})\")).map((t) => {\n const n = t.trim();\n return n.startsWith(\"@import\") || n.startsWith(\"@keyframes\") || n.startsWith(\"@media\") ? n : n ? `#${A} ${n}` : \"\";\n}).join(`\n`), Do = () => kA(re), Eo = () => kA(ce), yo = async (A, e, o, t) => {\n var r, c;\n let n = Do(), s = Eo(), a = \"\";\n if (t != null)\n if (Array.isArray(t))\n for (const i of t) {\n const u = await oe(A, i);\n n = fA(u.settings, n), s = fA(u.inlineStyles, s), a += u.cssStylesText;\n }\n else {\n const i = await oe(A, t);\n n = fA(i.settings, n), s = fA(i.inlineStyles, s), a += i.cssStylesText;\n }\n return e != null && (n = fA(e, n)), o != null && (s = fA(o, s)), ((r = n.chatInput) == null ? void 0 : r.botDelay) != null && ((c = n.chatInput) == null ? void 0 : c.botDelay) < 500 && (n.chatInput.botDelay = 500), { settings: n, inlineStyles: s, cssStylesText: a };\n}, fA = (A, e) => {\n const o = [{ source: A, target: e }];\n for (; o.length; ) {\n const t = o.pop();\n if (t == null)\n continue;\n const { source: n, target: s } = t;\n for (const a of Object.keys(n)) {\n const r = a;\n if (se(n[r]))\n s[r] = n[r];\n else if (typeof n[r] == \"object\" && n[r] !== null && !Array.isArray(n[r]))\n (typeof s[r] != \"object\" || s[r] === null) && (s[r] = {}), o.push({ source: n[r], target: s[r] });\n else\n try {\n s[r] = n[r];\n } catch {\n }\n }\n }\n return e;\n}, kA = (A) => {\n if (A === null || typeof A != \"object\")\n return A;\n const e = Array.isArray(A) ? [] : {}, o = [{ source: A, target: e }], t = /* @__PURE__ */ new WeakMap();\n for (t.set(A, e); o.length; ) {\n const n = o.pop();\n if (n == null)\n continue;\n const { source: s, target: a } = n;\n for (const r in s)\n if (Object.prototype.hasOwnProperty.call(s, r)) {\n const c = s[r];\n if (c && typeof c == \"object\")\n if (t.has(c))\n a[r] = t.get(c);\n else {\n const i = Array.isArray(c) ? [] : {};\n t.set(c, i), a[r] = i, o.push({ source: c, target: i });\n }\n else\n a[r] = c;\n }\n }\n return e;\n}, be = () => {\n const { settings: A, setSettings: e } = O(), o = x((n) => {\n !n || Object.keys(n).length === 0 || e(kA(fA(n, A)));\n }, [A]), t = x((n) => {\n e(n);\n }, []);\n return {\n settings: A,\n replaceSettings: t,\n updateSettings: o\n };\n}, pe = () => {\n const { styles: A, setStyles: e } = Y(), o = x((n) => {\n !n || Object.keys(n).length === 0 || e(kA(fA(n, A)));\n }, [A]), t = x((n) => {\n e(n);\n }, []);\n return {\n styles: A,\n replaceStyles: t,\n updateStyles: o\n };\n}, Co = (A) => {\n const { updateSettings: e } = be(), { updateStyles: o } = pe(), t = A == null ? void 0 : A.map((n) => n());\n V(() => {\n let n = {}, s = {};\n t == null || t.forEach((a) => {\n a != null && a.settings && Object.keys(a == null ? void 0 : a.settings).length !== 0 && (n = fA(a.settings, n)), a != null && a.styles && Object.keys(a == null ? void 0 : a.styles).length !== 0 && (s = fA(a.styles, s));\n }), e(n), o(s);\n }, []);\n}, mo = ({\n plugins: A\n}) => {\n var b, y, D, p, C;\n const e = MA(), { settings: o } = O(), { styles: t } = Y(), { hasFlowStarted: n, setHasFlowStarted: s } = eA(), { inputRef: a } = $(), {\n viewportHeight: r,\n viewportWidth: c,\n isChatWindowOpen: i\n } = sA(), { goToPath: u } = QA(), { headerButtons: f, chatInputButtons: w, footerButtons: d } = uo();\n wo(), Co(A), V(() => {\n var v;\n (n || ((v = o.general) == null ? void 0 : v.flowStartTrigger) === \"ON_LOAD\") && u(\"start\");\n }, [n, (b = o.general) == null ? void 0 : b.flowStartTrigger]);\n const g = dA(() => {\n var E;\n const v = \"rcb-chatbot-global \";\n return (E = o.general) != null && E.embedded ? v + \"rcb-window-embedded\" : i ? v + \"rcb-window-open\" : v + \"rcb-window-close\";\n }, [o, i]), B = () => {\n var v, E;\n return !e && !((v = o.general) != null && v.embedded) ? {\n ...t.chatWindowStyle,\n borderRadius: \"0px\",\n left: \"0px\",\n right: \"auto\",\n top: \"0px\",\n bottom: \"auto\",\n width: `${c}px`,\n height: `${r}px`,\n zIndex: 1e4\n } : (E = o.general) != null && E.embedded ? { ...t.chatWindowStyle } : {\n ...t.chatWindowStyle,\n zIndex: 1e4\n };\n };\n return /* @__PURE__ */ l(nA, { children: (() => {\n var v, E;\n return e && ((v = o.device) == null ? void 0 : v.desktopEnabled) || !e && ((E = o.device) == null ? void 0 : E.mobileEnabled);\n })() && /* @__PURE__ */ X(\n \"div\",\n {\n onMouseDown: (v) => {\n var E, T;\n !n && ((E = o.general) == null ? void 0 : E.flowStartTrigger) === \"ON_CHATBOT_INTERACT\" && s(!0), e ? (T = a.current) == null || T.blur() : v == null || v.preventDefault();\n },\n className: g,\n children: [\n /* @__PURE__ */ l(Xt, {}),\n /* @__PURE__ */ l(Yt, {}),\n i && !e && !((y = o.general) != null && y.embedded) && /* @__PURE__ */ X(nA, { children: [\n /* @__PURE__ */ l(\"style\", { children: `\n\t\t\t\t\t\t\t\t\thtml {\n\t\t\t\t\t\t\t\t\t\toverflow: hidden !important;\n\t\t\t\t\t\t\t\t\t\ttouch-action: none !important;\n\t\t\t\t\t\t\t\t\t\tscroll-behavior: auto !important;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t` }),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: {\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"#fff\",\n zIndex: 9999\n }\n }\n )\n ] }),\n /* @__PURE__ */ X(\"div\", { style: B(), className: \"rcb-chat-window\", children: [\n ((D = o.general) == null ? void 0 : D.showHeader) && /* @__PURE__ */ l(et, { buttons: f }),\n /* @__PURE__ */ l(ut, {}),\n /* @__PURE__ */ l(Kt, {}),\n ((p = o.general) == null ? void 0 : p.showInputRow) && /* @__PURE__ */ l(zt, { buttons: w }),\n ((C = o.general) == null ? void 0 : C.showFooter) && /* @__PURE__ */ l(Gt, { buttons: d })\n ] })\n ]\n }\n ) });\n}, Se = vA(void 0), Ie = () => PA(Se), Qo = ({\n children: A\n}) => {\n var u;\n const e = AA(\"\"), o = AA({}), [t, n] = F({}), [s, a] = F({}), [r, c] = F(!1);\n V(() => {\n c(!0);\n }, []);\n const i = async (f, w, d, g, B, P) => {\n e.current = f, o.current = w;\n const b = await yo(f, d, g, B);\n P.current && (P.current.textContent = b.cssStylesText), n(b.settings), a(b.inlineStyles);\n };\n return r ? /* @__PURE__ */ l(\"div\", { style: { fontFamily: (u = t.general) == null ? void 0 : u.fontFamily }, children: /* @__PURE__ */ l(Se.Provider, { value: { loadConfig: i }, children: /* @__PURE__ */ l($e, { settings: t, setSettings: n, children: /* @__PURE__ */ l(At, { styles: s, setStyles: a, children: /* @__PURE__ */ l(jt, { children: /* @__PURE__ */ l(tt, { botIdRef: e, flowRef: o, children: /* @__PURE__ */ l(st, { children: /* @__PURE__ */ l(ot, { settings: t, children: /* @__PURE__ */ l(at, { children: A }) }) }) }) }) }) }) }) }) : null;\n}, bo = ({\n id: A,\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s,\n setConfigLoaded: a,\n styleRootRef: r\n}) => {\n const c = dA(() => A, []), i = Ie(), { flowRef: u } = $();\n u && u.current !== e && (u.current = e);\n const f = async () => {\n var w, d;\n (w = o.event) != null && w.rcbPreLoadChatBot && (await NA(\n H.PRE_LOAD_CHATBOT,\n { botId: c, currPath: null, prevPath: null },\n {\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n }\n )).defaultPrevented || (i != null && i.loadConfig && (await i.loadConfig(c, e, o, t, n, r), a(!0)), (d = o.event) != null && d.rcbPostLoadChatBot && NA(\n H.POST_LOAD_CHATBOT,\n { botId: c, currPath: null, prevPath: null },\n {\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n }\n ));\n };\n return V(() => {\n f();\n }, [n]), null;\n}, LA = [\"Quickstart\", \"API Docs\", \"Examples\", \"Github\", \"Discord\"], po = {\n start: {\n message: \"Hello, I am Tan Jin 👋! Welcome to React ChatBotify, I'm excited that you are using our chatbot 😊!\",\n transition: { duration: 1e3 },\n chatDisabled: !0,\n path: \"show_options\"\n },\n show_options: {\n message: \"It looks like you have not set up a conversation flow yet. No worries! Here are a few helpful things you can check out to get started:\",\n options: LA,\n path: \"process_options\"\n },\n prompt_again: {\n message: \"Do you need any other help?\",\n options: LA,\n path: \"process_options\"\n },\n unknown_input: {\n message: \"Sorry, I do not understand your message 😢! If you require further assistance, you may click on the Github option and open an issue there or visit our discord.\",\n options: LA,\n path: \"process_options\"\n },\n process_options: {\n transition: { duration: 0 },\n path: (A) => {\n let e = \"\";\n switch (A.userInput) {\n case \"Quickstart\":\n e = \"https://react-chatbotify.com/docs/introduction/quickstart/\";\n break;\n case \"API Docs\":\n e = \"https://react-chatbotify.com/docs/api/bot_options\";\n break;\n case \"Examples\":\n e = \"https://react-chatbotify.com/docs/examples/basic_form\";\n break;\n case \"Github\":\n e = \"https://github.com/react-chatbotify/react-chatbotify/\";\n break;\n case \"Discord\":\n e = \"https://discord.gg/6R4DK4G5Zh\";\n break;\n default:\n return \"unknown_input\";\n }\n return A.injectMessage(\"Sit tight! I'll send you right there!\"), setTimeout(() => {\n window.open(e);\n }, 1e3), \"repeat\";\n }\n },\n repeat: {\n transition: { duration: 3e3 },\n path: \"prompt_again\"\n }\n}, Oo = ({\n id: A,\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n}) => {\n const a = dA(() => A || \"rcb-\" + SA(), []), r = !e || Object.keys(e).length === 0 ? po : e, c = o || {}, i = t || {}, u = s || [], [f, w] = F(!1), d = Ie(), g = AA(null), [B, P] = F(n || []);\n V(() => {\n n && P(n);\n }, [n]);\n const b = () => /* @__PURE__ */ X(nA, { children: [\n /* @__PURE__ */ l(\n bo,\n {\n styleRootRef: g,\n id: a,\n flow: r,\n settings: c,\n styles: i,\n themes: B,\n plugins: u,\n setConfigLoaded: w\n }\n ),\n f && /* @__PURE__ */ l(mo, { plugins: s })\n ] });\n return d == null ? /* @__PURE__ */ X(Qo, { children: [\n /* @__PURE__ */ l(\"style\", { ref: g }),\n /* @__PURE__ */ l(\"div\", { id: a, children: b() })\n ] }) : /* @__PURE__ */ X(nA, { children: [\n /* @__PURE__ */ l(\"style\", { ref: g }),\n /* @__PURE__ */ l(\"div\", { id: a, children: b() })\n ] });\n}, Lo = () => {\n const { audioToggledOn: A, speakAudio: e, toggleAudio: o } = GA();\n return {\n audioToggledOn: A,\n speakAudio: e,\n toggleAudio: o\n };\n}, So = () => {\n const { botIdRef: A } = $();\n return {\n getBotId: x(() => A.current, [A])\n };\n}, Io = () => {\n const { getBotId: A } = So();\n return {\n getBotId: A\n };\n}, No = () => {\n const {\n isChatWindowOpen: A,\n toggleChatWindow: e,\n toggleIsBotTyping: o,\n scrollToBottom: t,\n getIsChatBotVisible: n\n } = sA();\n return {\n isChatWindowOpen: A,\n toggleChatWindow: e,\n toggleIsBotTyping: o,\n scrollToBottom: t,\n getIsChatBotVisible: n\n };\n}, Ro = () => {\n const { hasInteractedPage: A } = me();\n return {\n hasInteractedPage: A\n };\n}, To = () => {\n const { replaceMessages: A } = hA(), { replacePaths: e, goToPath: o } = QA(), { replaceToasts: t } = EA(), { hasFlowStarted: n } = eA(), { flowRef: s, timeoutIdRef: a } = $(), { settings: r } = O(), c = x(async () => {\n RA(r), a.current && clearTimeout(a.current), A([]), t([]), e([]), await o(\"start\");\n }, [a, r, A, t, e, RA, o]), i = x(() => (s == null ? void 0 : s.current) ?? {}, [s]);\n return {\n hasFlowStarted: n,\n restartFlow: c,\n getFlow: i\n };\n}, Uo = () => {\n const { hasFlowStarted: A, restartFlow: e, getFlow: o } = To();\n return {\n hasFlowStarted: A,\n restartFlow: e,\n getFlow: o\n };\n}, Fo = () => {\n const {\n endStreamMessage: A,\n injectMessage: e,\n removeMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n messages: s,\n replaceMessages: a\n } = hA();\n return {\n endStreamMessage: A,\n injectMessage: e,\n removeMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n messages: s,\n replaceMessages: a\n };\n}, jo = (A, e) => {\n const { getBotId: o } = Io();\n V(() => {\n const t = (n) => {\n n.detail.botId === o() && e(n);\n };\n return window.addEventListener(A, t), () => {\n window.removeEventListener(A, t);\n };\n }, [o, A, e]);\n}, zo = () => {\n const {\n getCurrPath: A,\n getPrevPath: e,\n goToPath: o,\n paths: t,\n replacePaths: n\n } = QA();\n return {\n getCurrPath: A,\n getPrevPath: e,\n goToPath: o,\n paths: t,\n replacePaths: n\n };\n}, Go = () => {\n const { settings: A, replaceSettings: e, updateSettings: o } = be();\n return {\n settings: A,\n replaceSettings: e,\n updateSettings: o\n };\n}, Yo = () => {\n const { styles: A, replaceStyles: e, updateStyles: o } = pe();\n return {\n styles: A,\n replaceStyles: e,\n updateStyles: o\n };\n}, Xo = () => {\n const {\n textAreaDisabled: A,\n toggleTextAreaDisabled: e,\n textAreaSensitiveMode: o,\n toggleTextAreaSensitiveMode: t,\n getTextAreaValue: n,\n setTextAreaValue: s,\n focusTextArea: a,\n blurTextArea: r\n } = DA();\n return {\n textAreaDisabled: A,\n toggleTextAreaDisabled: e,\n textAreaSensitiveMode: o,\n toggleTextAreaSensitiveMode: t,\n getTextAreaValue: n,\n setTextAreaValue: s,\n focusTextArea: a,\n blurTextArea: r\n };\n}, Wo = () => {\n const { showToast: A, dismissToast: e, toasts: o, replaceToasts: t } = EA();\n return {\n showToast: A,\n dismissToast: e,\n toasts: o,\n replaceToasts: t\n };\n}, Ko = () => {\n const { voiceToggledOn: A, toggleVoice: e } = TA();\n return {\n voiceToggledOn: A,\n toggleVoice: e\n };\n}, qo = () => {\n const { showChatHistory: A, hasChatHistoryLoaded: e } = WA();\n return {\n showChatHistory: A,\n getHistoryMessages: jA,\n setHistoryMessages: bt,\n hasChatHistoryLoaded: e\n };\n};\nexport {\n Z as Button,\n Qo as ChatBotProvider,\n H as RcbEvent,\n Oo as default,\n Do as getDefaultSettings,\n Eo as getDefaultStyles,\n Lo as useAudio,\n Io as useBotId,\n qo as useChatHistory,\n No as useChatWindow,\n Ro as useFirstInteraction,\n Uo as useFlow,\n Fo as useMessages,\n _t as useNotifications,\n jo as useOnRcbEvent,\n zo as usePaths,\n Go as useSettings,\n Yo as useStyles,\n Xo as useTextArea,\n Wo as useToasts,\n Ko as useVoice\n};\n","import A, { useEffect as J } from \"react\";\nimport { useFlow as X, useMessages as Q, useSettings as Z, useChatHistory as ee, useOnRcbEvent as L, RcbEvent as P } from \"react-chatbotify\";\nimport { jsx as te } from \"react/jsx-runtime\";\nconst d = 1, Y = 2, G = 4, b = 8, H = 16, R = 32, N = 64, D = {\n a: {\n content: d | b,\n self: !1,\n type: d | b | R | N\n },\n address: {\n invalid: [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"address\", \"article\", \"aside\", \"section\", \"div\", \"header\", \"footer\"],\n self: !1\n },\n audio: {\n children: [\"track\", \"source\"]\n },\n br: {\n type: d | b,\n void: !0\n },\n body: {\n content: d | Y | G | b | H | R | N\n },\n button: {\n content: b,\n type: d | b | R | N\n },\n caption: {\n content: d,\n parent: [\"table\"]\n },\n col: {\n parent: [\"colgroup\"],\n void: !0\n },\n colgroup: {\n children: [\"col\"],\n parent: [\"table\"]\n },\n details: {\n children: [\"summary\"],\n type: d | R | N\n },\n dd: {\n content: d,\n parent: [\"dl\"]\n },\n dl: {\n children: [\"dt\", \"dd\"],\n type: d\n },\n dt: {\n content: d,\n invalid: [\"footer\", \"header\"],\n parent: [\"dl\"]\n },\n figcaption: {\n content: d,\n parent: [\"figure\"]\n },\n footer: {\n invalid: [\"footer\", \"header\"]\n },\n header: {\n invalid: [\"footer\", \"header\"]\n },\n hr: {\n type: d,\n void: !0\n },\n img: {\n void: !0\n },\n li: {\n content: d,\n parent: [\"ul\", \"ol\", \"menu\"]\n },\n main: {\n self: !1\n },\n ol: {\n children: [\"li\"],\n type: d\n },\n picture: {\n children: [\"source\", \"img\"],\n type: d | b | H\n },\n rb: {\n parent: [\"ruby\", \"rtc\"]\n },\n rp: {\n parent: [\"ruby\", \"rtc\"]\n },\n rt: {\n content: b,\n parent: [\"ruby\", \"rtc\"]\n },\n rtc: {\n content: b,\n parent: [\"ruby\"]\n },\n ruby: {\n children: [\"rb\", \"rp\", \"rt\", \"rtc\"]\n },\n source: {\n parent: [\"audio\", \"video\", \"picture\"],\n void: !0\n },\n summary: {\n content: b,\n parent: [\"details\"]\n },\n table: {\n children: [\"caption\", \"colgroup\", \"thead\", \"tbody\", \"tfoot\", \"tr\"],\n type: d\n },\n tbody: {\n parent: [\"table\"],\n children: [\"tr\"]\n },\n td: {\n content: d,\n parent: [\"tr\"]\n },\n tfoot: {\n parent: [\"table\"],\n children: [\"tr\"]\n },\n th: {\n content: d,\n parent: [\"tr\"]\n },\n thead: {\n parent: [\"table\"],\n children: [\"tr\"]\n },\n tr: {\n parent: [\"table\", \"tbody\", \"thead\", \"tfoot\"],\n children: [\"th\", \"td\"]\n },\n track: {\n parent: [\"audio\", \"video\"],\n void: !0\n },\n ul: {\n children: [\"li\"],\n type: d\n },\n video: {\n children: [\"track\", \"source\"]\n },\n wbr: {\n type: d | b,\n void: !0\n }\n};\nfunction S(a) {\n return (e) => {\n D[e] = {\n ...a,\n ...D[e]\n };\n };\n}\n[\"address\", \"main\", \"div\", \"figure\", \"p\", \"pre\"].forEach(S({\n content: d,\n type: d | N\n}));\n[\"abbr\", \"b\", \"bdi\", \"bdo\", \"cite\", \"code\", \"data\", \"dfn\", \"em\", \"i\", \"kbd\", \"mark\", \"q\", \"ruby\", \"samp\", \"strong\", \"sub\", \"sup\", \"time\", \"u\", \"var\"].forEach(S({\n content: b,\n type: d | b | N\n}));\n[\"p\", \"pre\"].forEach(S({\n content: b,\n type: d | N\n}));\n[\"s\", \"small\", \"span\", \"del\", \"ins\"].forEach(S({\n content: b,\n type: d | b\n}));\n[\"article\", \"aside\", \"footer\", \"header\", \"nav\", \"section\", \"blockquote\"].forEach(S({\n content: d,\n type: d | Y | N\n}));\n[\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].forEach(S({\n content: b,\n type: d | G | N\n}));\n[\"audio\", \"canvas\", \"iframe\", \"img\", \"video\"].forEach(S({\n type: d | b | H | N\n}));\nconst F = Object.freeze(D), re = [\"applet\", \"base\", \"body\", \"command\", \"embed\", \"frame\", \"frameset\", \"head\", \"html\", \"link\", \"meta\", \"noscript\", \"object\", \"script\", \"style\", \"title\"], ne = Object.keys(F).filter((a) => a !== \"canvas\" && a !== \"iframe\"), h = 1, se = 2, O = 3, x = 4, U = 5, W = Object.freeze({\n alt: h,\n cite: h,\n class: h,\n colspan: O,\n controls: x,\n datetime: h,\n default: x,\n disabled: x,\n dir: h,\n height: h,\n href: h,\n id: h,\n kind: h,\n label: h,\n lang: h,\n loading: h,\n loop: x,\n media: h,\n muted: x,\n poster: h,\n rel: h,\n role: h,\n rowspan: O,\n scope: h,\n sizes: h,\n span: O,\n start: O,\n style: U,\n src: h,\n srclang: h,\n srcset: h,\n tabindex: h,\n target: h,\n title: h,\n type: h,\n width: h\n}), ae = Object.freeze({\n class: \"className\",\n colspan: \"colSpan\",\n datetime: \"dateTime\",\n rowspan: \"rowSpan\",\n srclang: \"srcLang\",\n srcset: \"srcSet\",\n tabindex: \"tabIndex\"\n});\nfunction k() {\n return k = Object.assign || function(a) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t)\n Object.prototype.hasOwnProperty.call(t, r) && (a[r] = t[r]);\n }\n return a;\n }, k.apply(this, arguments);\n}\nfunction q({\n attributes: a = {},\n className: e,\n children: t = null,\n selfClose: r = !1,\n tagName: n\n}) {\n const s = n;\n return r ? /* @__PURE__ */ A.createElement(s, k({\n className: e\n }, a)) : /* @__PURE__ */ A.createElement(s, k({\n className: e\n }, a), t);\n}\nclass oe {\n /**\n * Filter and clean an HTML attribute value.\n */\n attribute(e, t) {\n return t;\n }\n /**\n * Filter and clean an HTML node.\n */\n node(e, t) {\n return t;\n }\n}\nfunction ie(a) {\n return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, \"default\") ? a.default : a;\n}\n/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\nvar C, j;\nfunction ce() {\n if (j) return C;\n j = 1;\n var a = /[\"'&<>]/;\n C = e;\n function e(t) {\n var r = \"\" + t, n = a.exec(r);\n if (!n)\n return r;\n var s, c = \"\", u = 0, o = 0;\n for (u = n.index; u < r.length; u++) {\n switch (r.charCodeAt(u)) {\n case 34:\n s = \"&quot;\";\n break;\n case 38:\n s = \"&amp;\";\n break;\n case 39:\n s = \"&#39;\";\n break;\n case 60:\n s = \"&lt;\";\n break;\n case 62:\n s = \"&gt;\";\n break;\n default:\n continue;\n }\n o !== u && (c += r.substring(o, u)), o = u + 1, c += s;\n }\n return o !== u ? c + r.substring(o, u) : c;\n }\n return C;\n}\nvar le = ce();\nconst ue = /* @__PURE__ */ ie(le);\nfunction w(a, e, t) {\n return e in a ? Object.defineProperty(a, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : a[e] = t, a;\n}\nconst de = /(url|image|image-set)\\(/i;\nclass pe extends oe {\n attribute(e, t) {\n return e === \"style\" && Object.keys(t).forEach((r) => {\n String(t[r]).match(de) && delete t[r];\n }), t;\n }\n}\nconst V = 1, fe = 3, he = /^<(!doctype|(html|head|body)(\\s|>))/i, me = /^(aria-|data-|\\w+:)/iu, ge = /{{{(\\w+)\\/?}}}/;\nfunction be() {\n if (!(typeof window > \"u\" || typeof document > \"u\"))\n return document.implementation.createHTMLDocument(\"Interweave\");\n}\nclass z {\n constructor(e, t = {}, r = [], n = []) {\n var s;\n if (w(this, \"allowed\", void 0), w(this, \"banned\", void 0), w(this, \"blocked\", void 0), w(this, \"container\", void 0), w(this, \"content\", []), w(this, \"props\", void 0), w(this, \"matchers\", void 0), w(this, \"filters\", void 0), w(this, \"keyIndex\", void 0), process.env.NODE_ENV !== \"production\" && e && typeof e != \"string\")\n throw new TypeError(\"Interweave parser requires a valid string.\");\n this.props = t, this.matchers = r, this.filters = [...n, new pe()], this.keyIndex = -1, this.container = this.createContainer(e || \"\"), this.allowed = new Set((s = t.allowList) !== null && s !== void 0 ? s : ne), this.banned = new Set(re), this.blocked = new Set(t.blockList);\n }\n /**\n * Loop through and apply all registered attribute filters.\n */\n applyAttributeFilters(e, t) {\n return this.filters.reduce((r, n) => r !== null && typeof n.attribute == \"function\" ? n.attribute(e, r) : r, t);\n }\n /**\n * Loop through and apply all registered node filters.\n */\n applyNodeFilters(e, t) {\n return this.filters.reduce((r, n) => r !== null && typeof n.node == \"function\" ? n.node(e, r) : r, t);\n }\n /**\n * Loop through and apply all registered matchers to the string.\n * If a match is found, create a React element, and build a new array.\n * This array allows React to interpolate and render accordingly.\n */\n applyMatchers(e, t) {\n const r = {}, {\n props: n\n } = this;\n let s = e, c = 0, u = null;\n return this.matchers.forEach((o) => {\n const m = o.asTag().toLowerCase(), f = this.getTagConfig(m);\n if (n[o.inverseName] || !this.isTagAllowed(m) || !this.canRenderChild(t, f))\n return;\n let i = \"\";\n for (; s && (u = o.match(s)); ) {\n const {\n index: l,\n length: p,\n match: g,\n valid: E,\n void: T,\n ...y\n } = u, _ = o.propName + String(c);\n l > 0 && (i += s.slice(0, l)), E ? (i += T ? `{{{${_}/}}}` : `{{{${_}}}}${g}{{{/${_}}}}`, this.keyIndex += 1, c += 1, r[_] = {\n children: g,\n matcher: o,\n props: {\n ...n,\n ...y,\n key: this.keyIndex\n }\n }) : i += g, o.greedy ? (s = i + s.slice(l + p), i = \"\") : s = s.slice(l + (p || g.length));\n }\n o.greedy || (s = i + s);\n }), c === 0 ? e : this.replaceTokens(s, r);\n }\n /**\n * Determine whether the child can be rendered within the parent.\n */\n canRenderChild(e, t) {\n return !e.tagName || !t.tagName || e.void ? !1 : e.children.length > 0 ? e.children.includes(t.tagName) : e.invalid.length > 0 && e.invalid.includes(t.tagName) ? !1 : t.parent.length > 0 ? t.parent.includes(e.tagName) : !e.self && e.tagName === t.tagName ? !1 : !!(e && e.content & t.type);\n }\n /**\n * Convert line breaks in a string to HTML `<br/>` tags.\n * If the string contains HTML, we should not convert anything,\n * as line breaks should be handled by `<br/>`s in the markup itself.\n */\n convertLineBreaks(e) {\n const {\n noHtml: t,\n disableLineBreaks: r\n } = this.props;\n if (t || r || e.match(/<((?:\\/[ a-z]+)|(?:[ a-z]+\\/))>/gi))\n return e;\n let n = e.replace(/\\r\\n/g, `\n`);\n return n = n.replace(/\\n{3,}/g, `\n\n\n`), n = n.replace(/\\n/g, \"<br/>\"), n;\n }\n /**\n * Create a detached HTML document that allows for easy HTML\n * parsing while not triggering scripts or loading external\n * resources.\n */\n createContainer(e) {\n var t;\n const n = (typeof global < \"u\" && global.INTERWEAVE_SSR_POLYFILL || be)();\n if (!n)\n return;\n const s = (t = this.props.containerTagName) !== null && t !== void 0 ? t : \"body\", c = s === \"body\" || s === \"fragment\" ? n.body : n.createElement(s);\n if (e.match(he)) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"HTML documents as Interweave content are not supported.\");\n } else\n c.innerHTML = this.convertLineBreaks(this.props.escapeHtml ? ue(e) : e);\n return c;\n }\n /**\n * Convert an elements attribute map to an object map.\n * Returns null if no attributes are defined.\n */\n extractAttributes(e) {\n const {\n allowAttributes: t\n } = this.props, r = {};\n let n = 0;\n return e.nodeType !== V || !e.attributes || ([...e.attributes].forEach((s) => {\n const {\n name: c,\n value: u\n } = s, o = c.toLowerCase(), m = W[o] || W[c];\n if (!this.isSafe(e) || !o.match(me) && (!t && (!m || m === se) || o.startsWith(\"on\") || u.replace(/(\\s|\\0|&#x0([9AD]);)/, \"\").match(/(javascript|vbscript|livescript|xss):/i)))\n return;\n let f = o === \"style\" ? this.extractStyleAttribute(e) : u;\n m === x ? f = !0 : m === O ? f = Number.parseFloat(String(f)) : m !== U && (f = String(f)), r[ae[o] || o] = this.applyAttributeFilters(o, f), n += 1;\n }), n === 0) ? null : r;\n }\n /**\n * Extract the style attribute as an object and remove values that allow for attack vectors.\n */\n extractStyleAttribute(e) {\n const t = {};\n return Array.from(e.style).forEach((r) => {\n const n = e.style[r];\n (typeof n == \"string\" || typeof n == \"number\") && (t[r.replace(/-([a-z])/g, (s, c) => String(c).toUpperCase())] = n);\n }), t;\n }\n /**\n * Return configuration for a specific tag.\n */\n getTagConfig(e) {\n const t = {\n children: [],\n content: 0,\n invalid: [],\n parent: [],\n self: !0,\n tagName: \"\",\n type: 0,\n void: !1\n };\n return F[e] ? {\n ...t,\n ...F[e],\n tagName: e\n } : t;\n }\n /**\n * Verify that a node is safe from XSS and injection attacks.\n */\n isSafe(e) {\n if (typeof HTMLAnchorElement < \"u\" && e instanceof HTMLAnchorElement) {\n const t = e.getAttribute(\"href\");\n if (t != null && t.startsWith(\"#\"))\n return !0;\n const r = e.protocol.toLowerCase();\n return r === \":\" || r === \"http:\" || r === \"https:\" || r === \"mailto:\" || r === \"tel:\";\n }\n return !0;\n }\n /**\n * Verify that an HTML tag is allowed to render.\n */\n isTagAllowed(e) {\n return this.banned.has(e) || this.blocked.has(e) ? !1 : this.props.allowElements || this.allowed.has(e);\n }\n /**\n * Parse the markup by injecting it into a detached document,\n * while looping over all child nodes and generating an\n * array to interpolate into JSX.\n */\n parse() {\n return this.container ? this.parseNode(this.container, this.getTagConfig(this.container.nodeName.toLowerCase())) : [];\n }\n /**\n * Loop over the nodes children and generate a\n * list of text nodes and React elements.\n */\n parseNode(e, t) {\n const {\n noHtml: r,\n noHtmlExceptMatchers: n,\n allowElements: s,\n transform: c,\n transformOnlyAllowList: u\n } = this.props;\n let o = [], m = \"\";\n return [...e.childNodes].forEach((f) => {\n if (f.nodeType === V) {\n const l = f.nodeName.toLowerCase(), p = this.getTagConfig(l);\n m && (o.push(m), m = \"\");\n const g = this.applyNodeFilters(l, f);\n if (!g)\n return;\n let E;\n if (c && !(u && !this.isTagAllowed(l))) {\n this.keyIndex += 1;\n const T = this.keyIndex;\n E = this.parseNode(g, p);\n const y = c(g, E, p);\n if (y === null)\n return;\n if (typeof y < \"u\") {\n o.push(/* @__PURE__ */ A.cloneElement(y, {\n key: T\n }));\n return;\n }\n this.keyIndex = T - 1;\n }\n if (this.banned.has(l))\n return;\n if (!(r || n && l !== \"br\") && this.isTagAllowed(l) && (s || this.canRenderChild(t, p))) {\n var i;\n this.keyIndex += 1;\n const T = this.extractAttributes(g), y = {\n tagName: l\n };\n T && (y.attributes = T), p.void && (y.selfClose = p.void), o.push(/* @__PURE__ */ A.createElement(q, {\n ...y,\n key: this.keyIndex\n }, (i = E) !== null && i !== void 0 ? i : this.parseNode(g, p)));\n } else\n o = [...o, ...this.parseNode(g, p.tagName ? p : t)];\n } else if (f.nodeType === fe) {\n const l = r && !n ? f.textContent : (\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n this.applyMatchers(f.textContent || \"\", t)\n );\n Array.isArray(l) ? o = [...o, ...l] : m += l;\n }\n }), m && o.push(m), o;\n }\n /**\n * Deconstruct the string into an array, by replacing custom tokens with React elements,\n * so that React can render it correctly.\n */\n replaceTokens(e, t) {\n if (!e.includes(\"{{{\"))\n return e;\n const r = [];\n let n = e, s = null;\n for (; s = n.match(ge); ) {\n const [c, u] = s, o = s.index, m = c.includes(\"/\");\n if (process.env.NODE_ENV !== \"production\" && !t[u])\n throw new Error(`Token \"${u}\" found but no matching element to replace with.`);\n o > 0 && (r.push(n.slice(0, o)), n = n.slice(o));\n const {\n children: f,\n matcher: i,\n props: l\n } = t[u];\n let p;\n if (m)\n p = c.length, r.push(i.createElement(f, l));\n else {\n const g = n.match(new RegExp(`{{{/${u}}}}`));\n if (process.env.NODE_ENV !== \"production\" && !g)\n throw new Error(`Closing token missing for interpolated element \"${u}\".`);\n p = g.index + g[0].length, r.push(i.createElement(this.replaceTokens(n.slice(c.length, g.index), t), l));\n }\n n = n.slice(p);\n }\n return n.length > 0 && r.push(n), r.length === 0 ? \"\" : r.length === 1 && typeof r[0] == \"string\" ? r[0] : r;\n }\n}\nfunction ye(a) {\n var e;\n const {\n attributes: t,\n className: r,\n containerTagName: n,\n content: s,\n emptyContent: c,\n parsedContent: u,\n tagName: o,\n noWrap: m\n } = a, f = (e = n ?? o) !== null && e !== void 0 ? e : \"span\", i = f === \"fragment\" ? !0 : m;\n let l;\n if (u)\n l = u;\n else {\n const p = new z(s ?? \"\", a).parse();\n p.length > 0 && (l = p);\n }\n return l || (l = c), i ? /* @__PURE__ */ A.createElement(A.Fragment, null, l) : /* @__PURE__ */ A.createElement(q, {\n attributes: t,\n className: r,\n tagName: f\n }, l);\n}\nfunction Ee(a) {\n const {\n attributes: e,\n className: t,\n content: r = \"\",\n disableFilters: n = !1,\n disableMatchers: s = !1,\n emptyContent: c = null,\n filters: u = [],\n matchers: o = [],\n onAfterParse: m = null,\n onBeforeParse: f = null,\n tagName: i = \"span\",\n noWrap: l = !1,\n ...p\n } = a, g = s ? [] : o, E = n ? [] : u, T = f ? [f] : [], y = m ? [m] : [];\n g.forEach((v) => {\n v.onBeforeParse && T.push(v.onBeforeParse.bind(v)), v.onAfterParse && y.push(v.onAfterParse.bind(v));\n });\n const _ = T.reduce((v, M) => {\n const I = M(v, a);\n if (process.env.NODE_ENV !== \"production\" && typeof I != \"string\")\n throw new TypeError(\"Interweave `onBeforeParse` must return a valid HTML string.\");\n return I;\n }, r ?? \"\"), K = new z(_, p, g, E), B = y.reduce((v, M) => {\n const I = M(v, a);\n if (process.env.NODE_ENV !== \"production\" && !Array.isArray(I))\n throw new TypeError(\"Interweave `onAfterParse` must return an array of strings and React elements.\");\n return I;\n }, K.parse());\n return /* @__PURE__ */ A.createElement(ye, {\n attributes: e,\n className: t,\n containerTagName: a.containerTagName,\n emptyContent: c,\n noWrap: l,\n parsedContent: B.length === 0 ? void 0 : B,\n tagName: i\n });\n}\nconst Te = ({ children: a }) => /* @__PURE__ */ te(Ee, { content: typeof a == \"string\" ? a : \"\" }), ve = {\n autoConfig: !0\n}, $ = (a, e, t) => {\n var n;\n if (!a.detail.currPath)\n return !1;\n const r = e[a.detail.currPath];\n return r ? ((n = r.renderHtml) == null ? void 0 : n.map((s) => s.toUpperCase()).includes(t)) ?? !1 : !1;\n}, Ne = (a) => {\n const e = [];\n let t = \"\", r = !1;\n for (let n = 0; n < a.length; n++) {\n const s = a[n];\n s === \"<\" ? r ? (e.push(t), t = s) : (r = !0, t = s) : s === \">\" ? (t += s, e.push(t), t = \"\", r = !1) : r ? t += s : e.push(s);\n }\n return t !== \"\" && e.push(t), e;\n}, we = (a) => typeof window.DOMParser < \"u\" ? new DOMParser().parseFromString(a, \"text/html\").body.textContent || \"\" : a.replace(/<\\/?[^>]+(>|$)/g, \"\"), Ae = (a) => {\n const { getFlow: e } = X(), { messages: t, replaceMessages: r } = Q(), { settings: n } = Z(), { hasChatHistoryLoaded: s } = ee(), c = { ...a, ...ve }, u = c.htmlComponent ? c.htmlComponent : Te;\n J(() => {\n var i, l;\n if (s) {\n const p = [...t];\n for (let g = 0; g < p.length && g < (((i = n.chatHistory) == null ? void 0 : i.maxEntries) ?? 30); g++) {\n const E = p[g];\n (l = E.tags) != null && l.includes(\"rcb-html-renderer-plugin:parsed\") && (E.contentWrapper = u);\n }\n r(p);\n }\n }, [s]);\n const o = async (i) => {\n var p;\n const l = (p = i.data.message) == null ? void 0 : p.sender.toUpperCase();\n typeof i.data.message.content == \"string\" && $(i, e(), l) && (i.type === \"rcb-start-simulate-stream-message\" && (i.data.simulateStreamChunker = Ne), i.data.message.contentWrapper = u, i.data.message.tags || (i.data.message.tags = []), i.data.message.tags.push(\"rcb-html-renderer-plugin:parsed\"));\n }, m = async (i) => {\n $(i, e(), \"BOT\") && (i.data.textToRead = we(i.data.textToRead));\n };\n L(P.PRE_INJECT_MESSAGE, o), L(P.CHUNK_STREAM_MESSAGE, o), L(P.START_STREAM_MESSAGE, o), L(P.START_SIMULATE_STREAM_MESSAGE, o), L(P.START_SPEAK_AUDIO, m);\n const f = {\n name: \"@rcb-plugins/html-renderer\"\n };\n return c != null && c.autoConfig && (f.settings = {\n event: {\n rcbPreInjectMessage: !0,\n rcbChunkStreamMessage: !0,\n rcbStartSimulateStreamMessage: !0,\n rcbStartStreamMessage: !0,\n rcbStartSpeakAudio: !0\n }\n }), f;\n}, Ie = (a) => () => Ae(a);\nexport {\n Ie as default\n};\n","import { useEffect as gr } from \"react\";\nimport { useFlow as yr, useMessages as xr, useSettings as kr, useChatHistory as br, useOnRcbEvent as Ue, RcbEvent as Ve } from \"react-chatbotify\";\nimport { jsxs as wr, jsx as ae, Fragment as Sr } from \"react/jsx-runtime\";\nfunction Cr(e, n) {\n const t = {};\n return (e[e.length - 1] === \"\" ? [...e, \"\"] : e).join(\n (t.padRight ? \" \" : \"\") + \",\" + (t.padLeft === !1 ? \"\" : \" \")\n ).trim();\n}\nconst Er = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u, Ir = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u, Ar = {};\nfunction Hn(e, n) {\n return (Ar.jsx ? Ir : Er).test(e);\n}\nconst Tr = /[ \\t\\n\\f\\r]/g;\nfunction Pr(e) {\n return typeof e == \"object\" ? e.type === \"text\" ? Un(e.value) : !1 : Un(e);\n}\nfunction Un(e) {\n return e.replace(Tr, \"\") === \"\";\n}\nclass Be {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(n, t, r) {\n this.property = n, this.normal = t, r && (this.space = r);\n }\n}\nBe.prototype.property = {};\nBe.prototype.normal = {};\nBe.prototype.space = null;\nfunction Et(e, n) {\n const t = {}, r = {};\n let i = -1;\n for (; ++i < e.length; )\n Object.assign(t, e[i].property), Object.assign(r, e[i].normal);\n return new Be(t, r, n);\n}\nfunction hn(e) {\n return e.toLowerCase();\n}\nclass te {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(n, t) {\n this.property = n, this.attribute = t;\n }\n}\nte.prototype.space = null;\nte.prototype.boolean = !1;\nte.prototype.booleanish = !1;\nte.prototype.overloadedBoolean = !1;\nte.prototype.number = !1;\nte.prototype.commaSeparated = !1;\nte.prototype.spaceSeparated = !1;\nte.prototype.commaOrSpaceSeparated = !1;\nte.prototype.mustUseProperty = !1;\nte.prototype.defined = !1;\nlet zr = 0;\nconst O = be(), $ = be(), It = be(), k = be(), U = be(), Ae = be(), Z = be();\nfunction be() {\n return 2 ** ++zr;\n}\nconst mn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n boolean: O,\n booleanish: $,\n commaOrSpaceSeparated: Z,\n commaSeparated: Ae,\n number: k,\n overloadedBoolean: It,\n spaceSeparated: U\n}, Symbol.toStringTag, { value: \"Module\" })), Ze = Object.keys(mn);\nclass Sn extends te {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(n, t, r, i) {\n let l = -1;\n if (super(n, t), Vn(this, \"space\", i), typeof r == \"number\")\n for (; ++l < Ze.length; ) {\n const o = Ze[l];\n Vn(this, Ze[l], (r & mn[o]) === mn[o]);\n }\n }\n}\nSn.prototype.defined = !0;\nfunction Vn(e, n, t) {\n t && (e[n] = t);\n}\nconst Lr = {}.hasOwnProperty;\nfunction Pe(e) {\n const n = {}, t = {};\n let r;\n for (r in e.properties)\n if (Lr.call(e.properties, r)) {\n const i = e.properties[r], l = new Sn(\n r,\n e.transform(e.attributes || {}, r),\n i,\n e.space\n );\n e.mustUseProperty && e.mustUseProperty.includes(r) && (l.mustUseProperty = !0), n[r] = l, t[hn(r)] = r, t[hn(l.attribute)] = r;\n }\n return new Be(n, t, e.space);\n}\nconst At = Pe({\n space: \"xlink\",\n transform(e, n) {\n return \"xlink:\" + n.slice(5).toLowerCase();\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n}), Tt = Pe({\n space: \"xml\",\n transform(e, n) {\n return \"xml:\" + n.slice(3).toLowerCase();\n },\n properties: { xmlLang: null, xmlBase: null, xmlSpace: null }\n});\nfunction Pt(e, n) {\n return n in e ? e[n] : n;\n}\nfunction zt(e, n) {\n return Pt(e, n.toLowerCase());\n}\nconst Lt = Pe({\n space: \"xmlns\",\n attributes: { xmlnsxlink: \"xmlns:xlink\" },\n transform: zt,\n properties: { xmlns: null, xmlnsXLink: null }\n}), vt = Pe({\n transform(e, n) {\n return n === \"role\" ? n : \"aria-\" + n.slice(4).toLowerCase();\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: $,\n ariaAutoComplete: null,\n ariaBusy: $,\n ariaChecked: $,\n ariaColCount: k,\n ariaColIndex: k,\n ariaColSpan: k,\n ariaControls: U,\n ariaCurrent: null,\n ariaDescribedBy: U,\n ariaDetails: null,\n ariaDisabled: $,\n ariaDropEffect: U,\n ariaErrorMessage: null,\n ariaExpanded: $,\n ariaFlowTo: U,\n ariaGrabbed: $,\n ariaHasPopup: null,\n ariaHidden: $,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: U,\n ariaLevel: k,\n ariaLive: null,\n ariaModal: $,\n ariaMultiLine: $,\n ariaMultiSelectable: $,\n ariaOrientation: null,\n ariaOwns: U,\n ariaPlaceholder: null,\n ariaPosInSet: k,\n ariaPressed: $,\n ariaReadOnly: $,\n ariaRelevant: null,\n ariaRequired: $,\n ariaRoleDescription: U,\n ariaRowCount: k,\n ariaRowIndex: k,\n ariaRowSpan: k,\n ariaSelected: $,\n ariaSetSize: k,\n ariaSort: null,\n ariaValueMax: k,\n ariaValueMin: k,\n ariaValueNow: k,\n ariaValueText: null,\n role: null\n }\n}), vr = Pe({\n space: \"html\",\n attributes: {\n acceptcharset: \"accept-charset\",\n classname: \"class\",\n htmlfor: \"for\",\n httpequiv: \"http-equiv\"\n },\n transform: zt,\n mustUseProperty: [\"checked\", \"multiple\", \"muted\", \"selected\"],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: Ae,\n acceptCharset: U,\n accessKey: U,\n action: null,\n allow: null,\n allowFullScreen: O,\n allowPaymentRequest: O,\n allowUserMedia: O,\n alt: null,\n as: null,\n async: O,\n autoCapitalize: null,\n autoComplete: U,\n autoFocus: O,\n autoPlay: O,\n blocking: U,\n capture: null,\n charSet: null,\n checked: O,\n cite: null,\n className: U,\n cols: k,\n colSpan: null,\n content: null,\n contentEditable: $,\n controls: O,\n controlsList: U,\n coords: k | Ae,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: O,\n defer: O,\n dir: null,\n dirName: null,\n disabled: O,\n download: It,\n draggable: $,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: O,\n formTarget: null,\n headers: U,\n height: k,\n hidden: O,\n high: k,\n href: null,\n hrefLang: null,\n htmlFor: U,\n httpEquiv: U,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: O,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: O,\n itemId: null,\n itemProp: U,\n itemRef: U,\n itemScope: O,\n itemType: U,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: O,\n low: k,\n manifest: null,\n max: null,\n maxLength: k,\n media: null,\n method: null,\n min: null,\n minLength: k,\n multiple: O,\n muted: O,\n name: null,\n nonce: null,\n noModule: O,\n noValidate: O,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: O,\n optimum: k,\n pattern: null,\n ping: U,\n placeholder: null,\n playsInline: O,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: O,\n referrerPolicy: null,\n rel: U,\n required: O,\n reversed: O,\n rows: k,\n rowSpan: k,\n sandbox: U,\n scope: null,\n scoped: O,\n seamless: O,\n selected: O,\n shadowRootClonable: O,\n shadowRootDelegatesFocus: O,\n shadowRootMode: null,\n shape: null,\n size: k,\n sizes: null,\n slot: null,\n span: k,\n spellCheck: $,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: k,\n step: null,\n style: null,\n tabIndex: k,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: O,\n useMap: null,\n value: $,\n width: k,\n wrap: null,\n writingSuggestions: null,\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null,\n // Several. Use CSS `text-align` instead,\n aLink: null,\n // `<body>`. Use CSS `a:active {color}` instead\n archive: U,\n // `<object>`. List of URIs to archives\n axis: null,\n // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null,\n // `<body>`. Use CSS `background-image` instead\n bgColor: null,\n // `<body>` and table elements. Use CSS `background-color` instead\n border: k,\n // `<table>`. Use CSS `border-width` instead,\n borderColor: null,\n // `<table>`. Use CSS `border-color` instead,\n bottomMargin: k,\n // `<body>`\n cellPadding: null,\n // `<table>`\n cellSpacing: null,\n // `<table>`\n char: null,\n // Several table elements. When `align=char`, sets the character to align on\n charOff: null,\n // Several table elements. When `char`, offsets the alignment\n classId: null,\n // `<object>`\n clear: null,\n // `<br>`. Use CSS `clear` instead\n code: null,\n // `<object>`\n codeBase: null,\n // `<object>`\n codeType: null,\n // `<object>`\n color: null,\n // `<font>` and `<hr>`. Use CSS instead\n compact: O,\n // Lists. Use CSS to reduce space between items instead\n declare: O,\n // `<object>`\n event: null,\n // `<script>`\n face: null,\n // `<font>`. Use CSS instead\n frame: null,\n // `<table>`\n frameBorder: null,\n // `<iframe>`. Use CSS `border` instead\n hSpace: k,\n // `<img>` and `<object>`\n leftMargin: k,\n // `<body>`\n link: null,\n // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null,\n // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null,\n // `<img>`. Use a `<picture>`\n marginHeight: k,\n // `<body>`\n marginWidth: k,\n // `<body>`\n noResize: O,\n // `<frame>`\n noHref: O,\n // `<area>`. Use no href instead of an explicit `nohref`\n noShade: O,\n // `<hr>`. Use background-color and height instead of borders\n noWrap: O,\n // `<td>` and `<th>`\n object: null,\n // `<applet>`\n profile: null,\n // `<head>`\n prompt: null,\n // `<isindex>`\n rev: null,\n // `<link>`\n rightMargin: k,\n // `<body>`\n rules: null,\n // `<table>`\n scheme: null,\n // `<meta>`\n scrolling: $,\n // `<frame>`. Use overflow in the child context\n standby: null,\n // `<object>`\n summary: null,\n // `<table>`\n text: null,\n // `<body>`. Use CSS `color` instead\n topMargin: k,\n // `<body>`\n valueType: null,\n // `<param>`\n version: null,\n // `<html>`. Use a doctype.\n vAlign: null,\n // Several. Use CSS `vertical-align` instead\n vLink: null,\n // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: k,\n // `<img>` and `<object>`\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: O,\n disableRemotePlayback: O,\n prefix: null,\n property: null,\n results: k,\n security: null,\n unselectable: null\n }\n}), Dr = Pe({\n space: \"svg\",\n attributes: {\n accentHeight: \"accent-height\",\n alignmentBaseline: \"alignment-baseline\",\n arabicForm: \"arabic-form\",\n baselineShift: \"baseline-shift\",\n capHeight: \"cap-height\",\n className: \"class\",\n clipPath: \"clip-path\",\n clipRule: \"clip-rule\",\n colorInterpolation: \"color-interpolation\",\n colorInterpolationFilters: \"color-interpolation-filters\",\n colorProfile: \"color-profile\",\n colorRendering: \"color-rendering\",\n crossOrigin: \"crossorigin\",\n dataType: \"datatype\",\n dominantBaseline: \"dominant-baseline\",\n enableBackground: \"enable-background\",\n fillOpacity: \"fill-opacity\",\n fillRule: \"fill-rule\",\n floodColor: \"flood-color\",\n floodOpacity: \"flood-opacity\",\n fontFamily: \"font-family\",\n fontSize: \"font-size\",\n fontSizeAdjust: \"font-size-adjust\",\n fontStretch: \"font-stretch\",\n fontStyle: \"font-style\",\n fontVariant: \"font-variant\",\n fontWeight: \"font-weight\",\n glyphName: \"glyph-name\",\n glyphOrientationHorizontal: \"glyph-orientation-horizontal\",\n glyphOrientationVertical: \"glyph-orientation-vertical\",\n hrefLang: \"hreflang\",\n horizAdvX: \"horiz-adv-x\",\n horizOriginX: \"horiz-origin-x\",\n horizOriginY: \"horiz-origin-y\",\n imageRendering: \"image-rendering\",\n letterSpacing: \"letter-spacing\",\n lightingColor: \"lighting-color\",\n markerEnd: \"marker-end\",\n markerMid: \"marker-mid\",\n markerStart: \"marker-start\",\n navDown: \"nav-down\",\n navDownLeft: \"nav-down-left\",\n navDownRight: \"nav-down-right\",\n navLeft: \"nav-left\",\n navNext: \"nav-next\",\n navPrev: \"nav-prev\",\n navRight: \"nav-right\",\n navUp: \"nav-up\",\n navUpLeft: \"nav-up-left\",\n navUpRight: \"nav-up-right\",\n onAbort: \"onabort\",\n onActivate: \"onactivate\",\n onAfterPrint: \"onafterprint\",\n onBeforePrint: \"onbeforeprint\",\n onBegin: \"onbegin\",\n onCancel: \"oncancel\",\n onCanPlay: \"oncanplay\",\n onCanPlayThrough: \"oncanplaythrough\",\n onChange: \"onchange\",\n onClick: \"onclick\",\n onClose: \"onclose\",\n onCopy: \"oncopy\",\n onCueChange: \"oncuechange\",\n onCut: \"oncut\",\n onDblClick: \"ondblclick\",\n onDrag: \"ondrag\",\n onDragEnd: \"ondragend\",\n onDragEnter: \"ondragenter\",\n onDragExit: \"ondragexit\",\n onDragLeave: \"ondragleave\",\n onDragOver: \"ondragover\",\n onDragStart: \"ondragstart\",\n onDrop: \"ondrop\",\n onDurationChange: \"ondurationchange\",\n onEmptied: \"onemptied\",\n onEnd: \"onend\",\n onEnded: \"onended\",\n onError: \"onerror\",\n onFocus: \"onfocus\",\n onFocusIn: \"onfocusin\",\n onFocusOut: \"onfocusout\",\n onHashChange: \"onhashchange\",\n onInput: \"oninput\",\n onInvalid: \"oninvalid\",\n onKeyDown: \"onkeydown\",\n onKeyPress: \"onkeypress\",\n onKeyUp: \"onkeyup\",\n onLoad: \"onload\",\n onLoadedData: \"onloadeddata\",\n onLoadedMetadata: \"onloadedmetadata\",\n onLoadStart: \"onloadstart\",\n onMessage: \"onmessage\",\n onMouseDown: \"onmousedown\",\n onMouseEnter: \"onmouseenter\",\n onMouseLeave: \"onmouseleave\",\n onMouseMove: \"onmousemove\",\n onMouseOut: \"onmouseout\",\n onMouseOver: \"onmouseover\",\n onMouseUp: \"onmouseup\",\n onMouseWheel: \"onmousewheel\",\n onOffline: \"onoffline\",\n onOnline: \"ononline\",\n onPageHide: \"onpagehide\",\n onPageShow: \"onpageshow\",\n onPaste: \"onpaste\",\n onPause: \"onpause\",\n onPlay: \"onplay\",\n onPlaying: \"onplaying\",\n onPopState: \"onpopstate\",\n onProgress: \"onprogress\",\n onRateChange: \"onratechange\",\n onRepeat: \"onrepeat\",\n onReset: \"onreset\",\n onResize: \"onresize\",\n onScroll: \"onscroll\",\n onSeeked: \"onseeked\",\n onSeeking: \"onseeking\",\n onSelect: \"onselect\",\n onShow: \"onshow\",\n onStalled: \"onstalled\",\n onStorage: \"onstorage\",\n onSubmit: \"onsubmit\",\n onSuspend: \"onsuspend\",\n onTimeUpdate: \"ontimeupdate\",\n onToggle: \"ontoggle\",\n onUnload: \"onunload\",\n onVolumeChange: \"onvolumechange\",\n onWaiting: \"onwaiting\",\n onZoom: \"onzoom\",\n overlinePosition: \"overline-position\",\n overlineThickness: \"overline-thickness\",\n paintOrder: \"paint-order\",\n panose1: \"panose-1\",\n pointerEvents: \"pointer-events\",\n referrerPolicy: \"referrerpolicy\",\n renderingIntent: \"rendering-intent\",\n shapeRendering: \"shape-rendering\",\n stopColor: \"stop-color\",\n stopOpacity: \"stop-opacity\",\n strikethroughPosition: \"strikethrough-position\",\n strikethroughThickness: \"strikethrough-thickness\",\n strokeDashArray: \"stroke-dasharray\",\n strokeDashOffset: \"stroke-dashoffset\",\n strokeLineCap: \"stroke-linecap\",\n strokeLineJoin: \"stroke-linejoin\",\n strokeMiterLimit: \"stroke-miterlimit\",\n strokeOpacity: \"stroke-opacity\",\n strokeWidth: \"stroke-width\",\n tabIndex: \"tabindex\",\n textAnchor: \"text-anchor\",\n textDecoration: \"text-decoration\",\n textRendering: \"text-rendering\",\n transformOrigin: \"transform-origin\",\n typeOf: \"typeof\",\n underlinePosition: \"underline-position\",\n underlineThickness: \"underline-thickness\",\n unicodeBidi: \"unicode-bidi\",\n unicodeRange: \"unicode-range\",\n unitsPerEm: \"units-per-em\",\n vAlphabetic: \"v-alphabetic\",\n vHanging: \"v-hanging\",\n vIdeographic: \"v-ideographic\",\n vMathematical: \"v-mathematical\",\n vectorEffect: \"vector-effect\",\n vertAdvY: \"vert-adv-y\",\n vertOriginX: \"vert-origin-x\",\n vertOriginY: \"vert-origin-y\",\n wordSpacing: \"word-spacing\",\n writingMode: \"writing-mode\",\n xHeight: \"x-height\",\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: \"playbackorder\",\n timelineBegin: \"timelinebegin\"\n },\n transform: Pt,\n properties: {\n about: Z,\n accentHeight: k,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: k,\n amplitude: k,\n arabicForm: null,\n ascent: k,\n attributeName: null,\n attributeType: null,\n azimuth: k,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: k,\n by: null,\n calcMode: null,\n capHeight: k,\n className: U,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: k,\n diffuseConstant: k,\n direction: null,\n display: null,\n dur: null,\n divisor: k,\n dominantBaseline: null,\n download: O,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: k,\n enableBackground: null,\n end: null,\n event: null,\n exponent: k,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: k,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: Ae,\n g2: Ae,\n glyphName: Ae,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: k,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: k,\n horizOriginX: k,\n horizOriginY: k,\n id: null,\n ideographic: k,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: k,\n k,\n k1: k,\n k2: k,\n k3: k,\n k4: k,\n kernelMatrix: Z,\n kernelUnitLength: null,\n keyPoints: null,\n // SEMI_COLON_SEPARATED\n keySplines: null,\n // SEMI_COLON_SEPARATED\n keyTimes: null,\n // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: k,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: k,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: k,\n overlineThickness: k,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: k,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: U,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: k,\n pointsAtY: k,\n pointsAtZ: k,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: Z,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: Z,\n rev: Z,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: Z,\n requiredFeatures: Z,\n requiredFonts: Z,\n requiredFormats: Z,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: k,\n specularExponent: k,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: k,\n strikethroughThickness: k,\n string: null,\n stroke: null,\n strokeDashArray: Z,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: k,\n strokeOpacity: k,\n strokeWidth: null,\n style: null,\n surfaceScale: k,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: Z,\n tabIndex: k,\n tableValues: null,\n target: null,\n targetX: k,\n targetY: k,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: Z,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: k,\n underlineThickness: k,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: k,\n values: null,\n vAlphabetic: k,\n vMathematical: k,\n vectorEffect: null,\n vHanging: k,\n vIdeographic: k,\n version: null,\n vertAdvY: k,\n vertOriginX: k,\n vertOriginY: k,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: k,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n}), Or = /^data[-\\w.:]+$/i, qn = /-[a-z]/g, Rr = /[A-Z]/g;\nfunction Fr(e, n) {\n const t = hn(n);\n let r = n, i = te;\n if (t in e.normal)\n return e.property[e.normal[t]];\n if (t.length > 4 && t.slice(0, 4) === \"data\" && Or.test(n)) {\n if (n.charAt(4) === \"-\") {\n const l = n.slice(5).replace(qn, Mr);\n r = \"data\" + l.charAt(0).toUpperCase() + l.slice(1);\n } else {\n const l = n.slice(4);\n if (!qn.test(l)) {\n let o = l.replace(Rr, Nr);\n o.charAt(0) !== \"-\" && (o = \"-\" + o), n = \"data\" + o;\n }\n }\n i = Sn;\n }\n return new i(r, n);\n}\nfunction Nr(e) {\n return \"-\" + e.toLowerCase();\n}\nfunction Mr(e) {\n return e.charAt(1).toUpperCase();\n}\nconst _r = {\n classId: \"classID\",\n dataType: \"datatype\",\n itemId: \"itemID\",\n strokeDashArray: \"strokeDasharray\",\n strokeDashOffset: \"strokeDashoffset\",\n strokeLineCap: \"strokeLinecap\",\n strokeLineJoin: \"strokeLinejoin\",\n strokeMiterLimit: \"strokeMiterlimit\",\n typeOf: \"typeof\",\n xLinkActuate: \"xlinkActuate\",\n xLinkArcRole: \"xlinkArcrole\",\n xLinkHref: \"xlinkHref\",\n xLinkRole: \"xlinkRole\",\n xLinkShow: \"xlinkShow\",\n xLinkTitle: \"xlinkTitle\",\n xLinkType: \"xlinkType\",\n xmlnsXLink: \"xmlnsXlink\"\n}, Br = Et([Tt, At, Lt, vt, vr], \"html\"), Cn = Et([Tt, At, Lt, vt, Dr], \"svg\");\nfunction jr(e) {\n return e.join(\" \").trim();\n}\nfunction Dt(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar Ee = {}, en, $n;\nfunction Hr() {\n if ($n) return en;\n $n = 1;\n var e = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g, n = /\\n/g, t = /^\\s*/, r = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/, i = /^:\\s*/, l = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/, o = /^[;\\s]*/, a = /^\\s+|\\s+$/g, s = `\n`, u = \"/\", c = \"*\", f = \"\", d = \"comment\", p = \"declaration\";\n en = function(w, A) {\n if (typeof w != \"string\")\n throw new TypeError(\"First argument must be a string\");\n if (!w) return [];\n A = A || {};\n var x = 1, C = 1;\n function E(P) {\n var I = P.match(n);\n I && (x += I.length);\n var v = P.lastIndexOf(s);\n C = ~v ? P.length - v : C + P.length;\n }\n function N() {\n var P = { line: x, column: C };\n return function(I) {\n return I.position = new R(P), q(), I;\n };\n }\n function R(P) {\n this.start = P, this.end = { line: x, column: C }, this.source = A.source;\n }\n R.prototype.content = w;\n function y(P) {\n var I = new Error(\n A.source + \":\" + x + \":\" + C + \": \" + P\n );\n if (I.reason = P, I.filename = A.source, I.line = x, I.column = C, I.source = w, !A.silent) throw I;\n }\n function F(P) {\n var I = P.exec(w);\n if (I) {\n var v = I[0];\n return E(v), w = w.slice(v.length), I;\n }\n }\n function q() {\n F(t);\n }\n function B(P) {\n var I;\n for (P = P || []; I = j(); )\n I !== !1 && P.push(I);\n return P;\n }\n function j() {\n var P = N();\n if (!(u != w.charAt(0) || c != w.charAt(1))) {\n for (var I = 2; f != w.charAt(I) && (c != w.charAt(I) || u != w.charAt(I + 1)); )\n ++I;\n if (I += 2, f === w.charAt(I - 1))\n return y(\"End of comment missing\");\n var v = w.slice(2, I - 2);\n return C += 2, E(v), w = w.slice(I), C += 2, P({\n type: d,\n comment: v\n });\n }\n }\n function z() {\n var P = N(), I = F(r);\n if (I) {\n if (j(), !F(i)) return y(\"property missing ':'\");\n var v = F(l), W = P({\n type: p,\n property: b(I[0].replace(e, f)),\n value: v ? b(v[0].replace(e, f)) : f\n });\n return F(o), W;\n }\n }\n function T() {\n var P = [];\n B(P);\n for (var I; I = z(); )\n I !== !1 && (P.push(I), B(P));\n return P;\n }\n return q(), T();\n };\n function b(w) {\n return w ? w.replace(a, f) : f;\n }\n return en;\n}\nvar Wn;\nfunction Ur() {\n if (Wn) return Ee;\n Wn = 1;\n var e = Ee && Ee.__importDefault || function(r) {\n return r && r.__esModule ? r : { default: r };\n };\n Object.defineProperty(Ee, \"__esModule\", { value: !0 }), Ee.default = t;\n var n = e(Hr());\n function t(r, i) {\n var l = null;\n if (!r || typeof r != \"string\")\n return l;\n var o = (0, n.default)(r), a = typeof i == \"function\";\n return o.forEach(function(s) {\n if (s.type === \"declaration\") {\n var u = s.property, c = s.value;\n a ? i(u, c, s) : c && (l = l || {}, l[u] = c);\n }\n }), l;\n }\n return Ee;\n}\nvar Vr = Ur();\nconst Yn = /* @__PURE__ */ Dt(Vr), qr = Yn.default || Yn, Ot = Rt(\"end\"), En = Rt(\"start\");\nfunction Rt(e) {\n return n;\n function n(t) {\n const r = t && t.position && t.position[e] || {};\n if (typeof r.line == \"number\" && r.line > 0 && typeof r.column == \"number\" && r.column > 0)\n return {\n line: r.line,\n column: r.column,\n offset: typeof r.offset == \"number\" && r.offset > -1 ? r.offset : void 0\n };\n }\n}\nfunction $r(e) {\n const n = En(e), t = Ot(e);\n if (n && t)\n return { start: n, end: t };\n}\nfunction Fe(e) {\n return !e || typeof e != \"object\" ? \"\" : \"position\" in e || \"type\" in e ? Qn(e.position) : \"start\" in e || \"end\" in e ? Qn(e) : \"line\" in e || \"column\" in e ? dn(e) : \"\";\n}\nfunction dn(e) {\n return Xn(e && e.line) + \":\" + Xn(e && e.column);\n}\nfunction Qn(e) {\n return dn(e && e.start) + \"-\" + dn(e && e.end);\n}\nfunction Xn(e) {\n return e && typeof e == \"number\" ? e : 1;\n}\nclass X extends Error {\n /**\n * Create a message for `reason`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // eslint-disable-next-line complexity\n constructor(n, t, r) {\n super(), typeof t == \"string\" && (r = t, t = void 0);\n let i = \"\", l = {}, o = !1;\n if (t && (\"line\" in t && \"column\" in t ? l = { place: t } : \"start\" in t && \"end\" in t ? l = { place: t } : \"type\" in t ? l = {\n ancestors: [t],\n place: t.position\n } : l = { ...t }), typeof n == \"string\" ? i = n : !l.cause && n && (o = !0, i = n.message, l.cause = n), !l.ruleId && !l.source && typeof r == \"string\") {\n const s = r.indexOf(\":\");\n s === -1 ? l.ruleId = r : (l.source = r.slice(0, s), l.ruleId = r.slice(s + 1));\n }\n if (!l.place && l.ancestors && l.ancestors) {\n const s = l.ancestors[l.ancestors.length - 1];\n s && (l.place = s.position);\n }\n const a = l.place && \"start\" in l.place ? l.place.start : l.place;\n this.ancestors = l.ancestors || void 0, this.cause = l.cause || void 0, this.column = a ? a.column : void 0, this.fatal = void 0, this.file, this.message = i, this.line = a ? a.line : void 0, this.name = Fe(l.place) || \"1:1\", this.place = l.place || void 0, this.reason = this.message, this.ruleId = l.ruleId || void 0, this.source = l.source || void 0, this.stack = o && l.cause && typeof l.cause.stack == \"string\" ? l.cause.stack : \"\", this.actual, this.expected, this.note, this.url;\n }\n}\nX.prototype.file = \"\";\nX.prototype.name = \"\";\nX.prototype.reason = \"\";\nX.prototype.message = \"\";\nX.prototype.stack = \"\";\nX.prototype.column = void 0;\nX.prototype.line = void 0;\nX.prototype.ancestors = void 0;\nX.prototype.cause = void 0;\nX.prototype.fatal = void 0;\nX.prototype.place = void 0;\nX.prototype.ruleId = void 0;\nX.prototype.source = void 0;\nconst In = {}.hasOwnProperty, Wr = /* @__PURE__ */ new Map(), Yr = /[A-Z]/g, Qr = /-([a-z])/g, Xr = /* @__PURE__ */ new Set([\"table\", \"tbody\", \"thead\", \"tfoot\", \"tr\"]), Kr = /* @__PURE__ */ new Set([\"td\", \"th\"]), Ft = \"https://github.com/syntax-tree/hast-util-to-jsx-runtime\";\nfunction Gr(e, n) {\n if (!n || n.Fragment === void 0)\n throw new TypeError(\"Expected `Fragment` in options\");\n const t = n.filePath || void 0;\n let r;\n if (n.development) {\n if (typeof n.jsxDEV != \"function\")\n throw new TypeError(\n \"Expected `jsxDEV` in options when `development: true`\"\n );\n r = li(t, n.jsxDEV);\n } else {\n if (typeof n.jsx != \"function\")\n throw new TypeError(\"Expected `jsx` in production options\");\n if (typeof n.jsxs != \"function\")\n throw new TypeError(\"Expected `jsxs` in production options\");\n r = ii(t, n.jsx, n.jsxs);\n }\n const i = {\n Fragment: n.Fragment,\n ancestors: [],\n components: n.components || {},\n create: r,\n elementAttributeNameCase: n.elementAttributeNameCase || \"react\",\n evaluater: n.createEvaluater ? n.createEvaluater() : void 0,\n filePath: t,\n ignoreInvalidStyle: n.ignoreInvalidStyle || !1,\n passKeys: n.passKeys !== !1,\n passNode: n.passNode || !1,\n schema: n.space === \"svg\" ? Cn : Br,\n stylePropertyNameCase: n.stylePropertyNameCase || \"dom\",\n tableCellAlignToStyle: n.tableCellAlignToStyle !== !1\n }, l = Nt(i, e, void 0);\n return l && typeof l != \"string\" ? l : i.create(\n e,\n i.Fragment,\n { children: l || void 0 },\n void 0\n );\n}\nfunction Nt(e, n, t) {\n if (n.type === \"element\")\n return Jr(e, n, t);\n if (n.type === \"mdxFlowExpression\" || n.type === \"mdxTextExpression\")\n return Zr(e, n);\n if (n.type === \"mdxJsxFlowElement\" || n.type === \"mdxJsxTextElement\")\n return ni(e, n, t);\n if (n.type === \"mdxjsEsm\")\n return ei(e, n);\n if (n.type === \"root\")\n return ti(e, n, t);\n if (n.type === \"text\")\n return ri(e, n);\n}\nfunction Jr(e, n, t) {\n const r = e.schema;\n let i = r;\n n.tagName.toLowerCase() === \"svg\" && r.space === \"html\" && (i = Cn, e.schema = i), e.ancestors.push(n);\n const l = _t(e, n.tagName, !1), o = oi(e, n);\n let a = Tn(e, n);\n return Xr.has(n.tagName) && (a = a.filter(function(s) {\n return typeof s == \"string\" ? !Pr(s) : !0;\n })), Mt(e, o, l, n), An(o, a), e.ancestors.pop(), e.schema = r, e.create(n, l, o, t);\n}\nfunction Zr(e, n) {\n if (n.data && n.data.estree && e.evaluater) {\n const r = n.data.estree.body[0];\n return r.type, /** @type {Child | undefined} */\n e.evaluater.evaluateExpression(r.expression);\n }\n _e(e, n.position);\n}\nfunction ei(e, n) {\n if (n.data && n.data.estree && e.evaluater)\n return (\n /** @type {Child | undefined} */\n e.evaluater.evaluateProgram(n.data.estree)\n );\n _e(e, n.position);\n}\nfunction ni(e, n, t) {\n const r = e.schema;\n let i = r;\n n.name === \"svg\" && r.space === \"html\" && (i = Cn, e.schema = i), e.ancestors.push(n);\n const l = n.name === null ? e.Fragment : _t(e, n.name, !0), o = ai(e, n), a = Tn(e, n);\n return Mt(e, o, l, n), An(o, a), e.ancestors.pop(), e.schema = r, e.create(n, l, o, t);\n}\nfunction ti(e, n, t) {\n const r = {};\n return An(r, Tn(e, n)), e.create(n, e.Fragment, r, t);\n}\nfunction ri(e, n) {\n return n.value;\n}\nfunction Mt(e, n, t, r) {\n typeof t != \"string\" && t !== e.Fragment && e.passNode && (n.node = r);\n}\nfunction An(e, n) {\n if (n.length > 0) {\n const t = n.length > 1 ? n : n[0];\n t && (e.children = t);\n }\n}\nfunction ii(e, n, t) {\n return r;\n function r(i, l, o, a) {\n const u = Array.isArray(o.children) ? t : n;\n return a ? u(l, o, a) : u(l, o);\n }\n}\nfunction li(e, n) {\n return t;\n function t(r, i, l, o) {\n const a = Array.isArray(l.children), s = En(r);\n return n(\n i,\n l,\n o,\n a,\n {\n columnNumber: s ? s.column - 1 : void 0,\n fileName: e,\n lineNumber: s ? s.line : void 0\n },\n void 0\n );\n }\n}\nfunction oi(e, n) {\n const t = {};\n let r, i;\n for (i in n.properties)\n if (i !== \"children\" && In.call(n.properties, i)) {\n const l = ui(e, i, n.properties[i]);\n if (l) {\n const [o, a] = l;\n e.tableCellAlignToStyle && o === \"align\" && typeof a == \"string\" && Kr.has(n.tagName) ? r = a : t[o] = a;\n }\n }\n if (r) {\n const l = (\n /** @type {Style} */\n t.style || (t.style = {})\n );\n l[e.stylePropertyNameCase === \"css\" ? \"text-align\" : \"textAlign\"] = r;\n }\n return t;\n}\nfunction ai(e, n) {\n const t = {};\n for (const r of n.attributes)\n if (r.type === \"mdxJsxExpressionAttribute\")\n if (r.data && r.data.estree && e.evaluater) {\n const l = r.data.estree.body[0];\n l.type;\n const o = l.expression;\n o.type;\n const a = o.properties[0];\n a.type, Object.assign(\n t,\n e.evaluater.evaluateExpression(a.argument)\n );\n } else\n _e(e, n.position);\n else {\n const i = r.name;\n let l;\n if (r.value && typeof r.value == \"object\")\n if (r.value.data && r.value.data.estree && e.evaluater) {\n const a = r.value.data.estree.body[0];\n a.type, l = e.evaluater.evaluateExpression(a.expression);\n } else\n _e(e, n.position);\n else\n l = r.value === null ? !0 : r.value;\n t[i] = /** @type {Props[keyof Props]} */\n l;\n }\n return t;\n}\nfunction Tn(e, n) {\n const t = [];\n let r = -1;\n const i = e.passKeys ? /* @__PURE__ */ new Map() : Wr;\n for (; ++r < n.children.length; ) {\n const l = n.children[r];\n let o;\n if (e.passKeys) {\n const s = l.type === \"element\" ? l.tagName : l.type === \"mdxJsxFlowElement\" || l.type === \"mdxJsxTextElement\" ? l.name : void 0;\n if (s) {\n const u = i.get(s) || 0;\n o = s + \"-\" + u, i.set(s, u + 1);\n }\n }\n const a = Nt(e, l, o);\n a !== void 0 && t.push(a);\n }\n return t;\n}\nfunction ui(e, n, t) {\n const r = Fr(e.schema, n);\n if (!(t == null || typeof t == \"number\" && Number.isNaN(t))) {\n if (Array.isArray(t) && (t = r.commaSeparated ? Cr(t) : jr(t)), r.property === \"style\") {\n let i = typeof t == \"object\" ? t : si(e, String(t));\n return e.stylePropertyNameCase === \"css\" && (i = ci(i)), [\"style\", i];\n }\n return [\n e.elementAttributeNameCase === \"react\" && r.space ? _r[r.property] || r.property : r.attribute,\n t\n ];\n }\n}\nfunction si(e, n) {\n const t = {};\n try {\n qr(n, r);\n } catch (i) {\n if (!e.ignoreInvalidStyle) {\n const l = (\n /** @type {Error} */\n i\n ), o = new X(\"Cannot parse `style` attribute\", {\n ancestors: e.ancestors,\n cause: l,\n ruleId: \"style\",\n source: \"hast-util-to-jsx-runtime\"\n });\n throw o.file = e.filePath || void 0, o.url = Ft + \"#cannot-parse-style-attribute\", o;\n }\n }\n return t;\n function r(i, l) {\n let o = i;\n o.slice(0, 2) !== \"--\" && (o.slice(0, 4) === \"-ms-\" && (o = \"ms-\" + o.slice(4)), o = o.replace(Qr, fi)), t[o] = l;\n }\n}\nfunction _t(e, n, t) {\n let r;\n if (!t)\n r = { type: \"Literal\", value: n };\n else if (n.includes(\".\")) {\n const i = n.split(\".\");\n let l = -1, o;\n for (; ++l < i.length; ) {\n const a = Hn(i[l]) ? { type: \"Identifier\", name: i[l] } : { type: \"Literal\", value: i[l] };\n o = o ? {\n type: \"MemberExpression\",\n object: o,\n property: a,\n computed: !!(l && a.type === \"Literal\"),\n optional: !1\n } : a;\n }\n r = o;\n } else\n r = Hn(n) && !/^[a-z]/.test(n) ? { type: \"Identifier\", name: n } : { type: \"Literal\", value: n };\n if (r.type === \"Literal\") {\n const i = (\n /** @type {keyof JSX.IntrinsicElements} */\n r.value\n );\n return In.call(e.components, i) ? e.components[i] : i;\n }\n if (e.evaluater)\n return e.evaluater.evaluateExpression(r);\n _e(e);\n}\nfunction _e(e, n) {\n const t = new X(\n \"Cannot handle MDX estrees without `createEvaluater`\",\n {\n ancestors: e.ancestors,\n place: n,\n ruleId: \"mdx-estree\",\n source: \"hast-util-to-jsx-runtime\"\n }\n );\n throw t.file = e.filePath || void 0, t.url = Ft + \"#cannot-handle-mdx-estrees-without-createevaluater\", t;\n}\nfunction ci(e) {\n const n = {};\n let t;\n for (t in e)\n In.call(e, t) && (n[pi(t)] = e[t]);\n return n;\n}\nfunction pi(e) {\n let n = e.replace(Yr, hi);\n return n.slice(0, 3) === \"ms-\" && (n = \"-\" + n), n;\n}\nfunction fi(e, n) {\n return n.toUpperCase();\n}\nfunction hi(e) {\n return \"-\" + e.toLowerCase();\n}\nconst nn = {\n action: [\"form\"],\n cite: [\"blockquote\", \"del\", \"ins\", \"q\"],\n data: [\"object\"],\n formAction: [\"button\", \"input\"],\n href: [\"a\", \"area\", \"base\", \"link\"],\n icon: [\"menuitem\"],\n itemId: null,\n manifest: [\"html\"],\n ping: [\"a\", \"area\"],\n poster: [\"video\"],\n src: [\n \"audio\",\n \"embed\",\n \"iframe\",\n \"img\",\n \"input\",\n \"script\",\n \"source\",\n \"track\",\n \"video\"\n ]\n}, mi = {};\nfunction di(e, n) {\n const t = mi, r = typeof t.includeImageAlt == \"boolean\" ? t.includeImageAlt : !0, i = typeof t.includeHtml == \"boolean\" ? t.includeHtml : !0;\n return Bt(e, r, i);\n}\nfunction Bt(e, n, t) {\n if (gi(e)) {\n if (\"value\" in e)\n return e.type === \"html\" && !t ? \"\" : e.value;\n if (n && \"alt\" in e && e.alt)\n return e.alt;\n if (\"children\" in e)\n return Kn(e.children, n, t);\n }\n return Array.isArray(e) ? Kn(e, n, t) : \"\";\n}\nfunction Kn(e, n, t) {\n const r = [];\n let i = -1;\n for (; ++i < e.length; )\n r[i] = Bt(e[i], n, t);\n return r.join(\"\");\n}\nfunction gi(e) {\n return !!(e && typeof e == \"object\");\n}\nconst Gn = document.createElement(\"i\");\nfunction Pn(e) {\n const n = \"&\" + e + \";\";\n Gn.innerHTML = n;\n const t = Gn.textContent;\n return t.charCodeAt(t.length - 1) === 59 && e !== \"semi\" || t === n ? !1 : t;\n}\nfunction ce(e, n, t, r) {\n const i = e.length;\n let l = 0, o;\n if (n < 0 ? n = -n > i ? 0 : i + n : n = n > i ? i : n, t = t > 0 ? t : 0, r.length < 1e4)\n o = Array.from(r), o.unshift(n, t), e.splice(...o);\n else\n for (t && e.splice(n, t); l < r.length; )\n o = r.slice(l, l + 1e4), o.unshift(n, 0), e.splice(...o), l += 1e4, n += 1e4;\n}\nfunction ne(e, n) {\n return e.length > 0 ? (ce(e, e.length, 0, n), e) : n;\n}\nconst Jn = {}.hasOwnProperty;\nfunction yi(e) {\n const n = {};\n let t = -1;\n for (; ++t < e.length; )\n xi(n, e[t]);\n return n;\n}\nfunction xi(e, n) {\n let t;\n for (t in n) {\n const i = (Jn.call(e, t) ? e[t] : void 0) || (e[t] = {}), l = n[t];\n let o;\n if (l)\n for (o in l) {\n Jn.call(i, o) || (i[o] = []);\n const a = l[o];\n ki(\n // @ts-expect-error Looks like a list.\n i[o],\n Array.isArray(a) ? a : a ? [a] : []\n );\n }\n }\n}\nfunction ki(e, n) {\n let t = -1;\n const r = [];\n for (; ++t < n.length; )\n (n[t].add === \"after\" ? e : r).push(n[t]);\n ce(e, 0, 0, r);\n}\nfunction jt(e, n) {\n const t = Number.parseInt(e, n);\n return (\n // C0 except for HT, LF, FF, CR, space.\n t < 9 || t === 11 || t > 13 && t < 32 || // Control character (DEL) of C0, and C1 controls.\n t > 126 && t < 160 || // Lone high surrogates and low surrogates.\n t > 55295 && t < 57344 || // Noncharacters.\n t > 64975 && t < 65008 || /* eslint-disable no-bitwise */\n (t & 65535) === 65535 || (t & 65535) === 65534 || /* eslint-enable no-bitwise */\n // Out of range\n t > 1114111 ? \"�\" : String.fromCodePoint(t)\n );\n}\nfunction Te(e) {\n return e.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nconst se = ye(/[A-Za-z]/), ee = ye(/[\\dA-Za-z]/), bi = ye(/[#-'*+\\--9=?A-Z^-~]/);\nfunction gn(e) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n e !== null && (e < 32 || e === 127)\n );\n}\nconst yn = ye(/\\d/), wi = ye(/[\\dA-Fa-f]/), Si = ye(/[!-/:-@[-`{-~]/);\nfunction L(e) {\n return e !== null && e < -2;\n}\nfunction G(e) {\n return e !== null && (e < 0 || e === 32);\n}\nfunction _(e) {\n return e === -2 || e === -1 || e === 32;\n}\nconst Ci = ye(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\")), Ei = ye(/\\s/);\nfunction ye(e) {\n return n;\n function n(t) {\n return t !== null && t > -1 && e.test(String.fromCharCode(t));\n }\n}\nfunction ze(e) {\n const n = [];\n let t = -1, r = 0, i = 0;\n for (; ++t < e.length; ) {\n const l = e.charCodeAt(t);\n let o = \"\";\n if (l === 37 && ee(e.charCodeAt(t + 1)) && ee(e.charCodeAt(t + 2)))\n i = 2;\n else if (l < 128)\n /[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(l)) || (o = String.fromCharCode(l));\n else if (l > 55295 && l < 57344) {\n const a = e.charCodeAt(t + 1);\n l < 56320 && a > 56319 && a < 57344 ? (o = String.fromCharCode(l, a), i = 1) : o = \"�\";\n } else\n o = String.fromCharCode(l);\n o && (n.push(e.slice(r, t), encodeURIComponent(o)), r = t + i + 1, o = \"\"), i && (t += i, i = 0);\n }\n return n.join(\"\") + e.slice(r);\n}\nfunction V(e, n, t, r) {\n const i = r ? r - 1 : Number.POSITIVE_INFINITY;\n let l = 0;\n return o;\n function o(s) {\n return _(s) ? (e.enter(t), a(s)) : n(s);\n }\n function a(s) {\n return _(s) && l++ < i ? (e.consume(s), a) : (e.exit(t), n(s));\n }\n}\nconst Ii = {\n tokenize: Ai\n};\nfunction Ai(e) {\n const n = e.attempt(this.parser.constructs.contentInitial, r, i);\n let t;\n return n;\n function r(a) {\n if (a === null) {\n e.consume(a);\n return;\n }\n return e.enter(\"lineEnding\"), e.consume(a), e.exit(\"lineEnding\"), V(e, n, \"linePrefix\");\n }\n function i(a) {\n return e.enter(\"paragraph\"), l(a);\n }\n function l(a) {\n const s = e.enter(\"chunkText\", {\n contentType: \"text\",\n previous: t\n });\n return t && (t.next = s), t = s, o(a);\n }\n function o(a) {\n if (a === null) {\n e.exit(\"chunkText\"), e.exit(\"paragraph\"), e.consume(a);\n return;\n }\n return L(a) ? (e.consume(a), e.exit(\"chunkText\"), l) : (e.consume(a), o);\n }\n}\nconst Ti = {\n tokenize: Pi\n}, Zn = {\n tokenize: zi\n};\nfunction Pi(e) {\n const n = this, t = [];\n let r = 0, i, l, o;\n return a;\n function a(E) {\n if (r < t.length) {\n const N = t[r];\n return n.containerState = N[1], e.attempt(N[0].continuation, s, u)(E);\n }\n return u(E);\n }\n function s(E) {\n if (r++, n.containerState._closeFlow) {\n n.containerState._closeFlow = void 0, i && C();\n const N = n.events.length;\n let R = N, y;\n for (; R--; )\n if (n.events[R][0] === \"exit\" && n.events[R][1].type === \"chunkFlow\") {\n y = n.events[R][1].end;\n break;\n }\n x(r);\n let F = N;\n for (; F < n.events.length; )\n n.events[F][1].end = {\n ...y\n }, F++;\n return ce(n.events, R + 1, 0, n.events.slice(N)), n.events.length = F, u(E);\n }\n return a(E);\n }\n function u(E) {\n if (r === t.length) {\n if (!i)\n return d(E);\n if (i.currentConstruct && i.currentConstruct.concrete)\n return b(E);\n n.interrupt = !!(i.currentConstruct && !i._gfmTableDynamicInterruptHack);\n }\n return n.containerState = {}, e.check(Zn, c, f)(E);\n }\n function c(E) {\n return i && C(), x(r), d(E);\n }\n function f(E) {\n return n.parser.lazy[n.now().line] = r !== t.length, o = n.now().offset, b(E);\n }\n function d(E) {\n return n.containerState = {}, e.attempt(Zn, p, b)(E);\n }\n function p(E) {\n return r++, t.push([n.currentConstruct, n.containerState]), d(E);\n }\n function b(E) {\n if (E === null) {\n i && C(), x(0), e.consume(E);\n return;\n }\n return i = i || n.parser.flow(n.now()), e.enter(\"chunkFlow\", {\n _tokenizer: i,\n contentType: \"flow\",\n previous: l\n }), w(E);\n }\n function w(E) {\n if (E === null) {\n A(e.exit(\"chunkFlow\"), !0), x(0), e.consume(E);\n return;\n }\n return L(E) ? (e.consume(E), A(e.exit(\"chunkFlow\")), r = 0, n.interrupt = void 0, a) : (e.consume(E), w);\n }\n function A(E, N) {\n const R = n.sliceStream(E);\n if (N && R.push(null), E.previous = l, l && (l.next = E), l = E, i.defineSkip(E.start), i.write(R), n.parser.lazy[E.start.line]) {\n let y = i.events.length;\n for (; y--; )\n if (\n // The token starts before the line ending…\n i.events[y][1].start.offset < o && // …and either is not ended yet…\n (!i.events[y][1].end || // …or ends after it.\n i.events[y][1].end.offset > o)\n )\n return;\n const F = n.events.length;\n let q = F, B, j;\n for (; q--; )\n if (n.events[q][0] === \"exit\" && n.events[q][1].type === \"chunkFlow\") {\n if (B) {\n j = n.events[q][1].end;\n break;\n }\n B = !0;\n }\n for (x(r), y = F; y < n.events.length; )\n n.events[y][1].end = {\n ...j\n }, y++;\n ce(n.events, q + 1, 0, n.events.slice(F)), n.events.length = y;\n }\n }\n function x(E) {\n let N = t.length;\n for (; N-- > E; ) {\n const R = t[N];\n n.containerState = R[1], R[0].exit.call(n, e);\n }\n t.length = E;\n }\n function C() {\n i.write([null]), l = void 0, i = void 0, n.containerState._closeFlow = void 0;\n }\n}\nfunction zi(e, n, t) {\n return V(e, e.attempt(this.parser.constructs.document, n, t), \"linePrefix\", this.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4);\n}\nfunction et(e) {\n if (e === null || G(e) || Ei(e))\n return 1;\n if (Ci(e))\n return 2;\n}\nfunction zn(e, n, t) {\n const r = [];\n let i = -1;\n for (; ++i < e.length; ) {\n const l = e[i].resolveAll;\n l && !r.includes(l) && (n = l(n, t), r.push(l));\n }\n return n;\n}\nconst xn = {\n name: \"attention\",\n resolveAll: Li,\n tokenize: vi\n};\nfunction Li(e, n) {\n let t = -1, r, i, l, o, a, s, u, c;\n for (; ++t < e.length; )\n if (e[t][0] === \"enter\" && e[t][1].type === \"attentionSequence\" && e[t][1]._close) {\n for (r = t; r--; )\n if (e[r][0] === \"exit\" && e[r][1].type === \"attentionSequence\" && e[r][1]._open && // If the markers are the same:\n n.sliceSerialize(e[r][1]).charCodeAt(0) === n.sliceSerialize(e[t][1]).charCodeAt(0)) {\n if ((e[r][1]._close || e[t][1]._open) && (e[t][1].end.offset - e[t][1].start.offset) % 3 && !((e[r][1].end.offset - e[r][1].start.offset + e[t][1].end.offset - e[t][1].start.offset) % 3))\n continue;\n s = e[r][1].end.offset - e[r][1].start.offset > 1 && e[t][1].end.offset - e[t][1].start.offset > 1 ? 2 : 1;\n const f = {\n ...e[r][1].end\n }, d = {\n ...e[t][1].start\n };\n nt(f, -s), nt(d, s), o = {\n type: s > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: f,\n end: {\n ...e[r][1].end\n }\n }, a = {\n type: s > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...e[t][1].start\n },\n end: d\n }, l = {\n type: s > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...e[r][1].end\n },\n end: {\n ...e[t][1].start\n }\n }, i = {\n type: s > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...o.start\n },\n end: {\n ...a.end\n }\n }, e[r][1].end = {\n ...o.start\n }, e[t][1].start = {\n ...a.end\n }, u = [], e[r][1].end.offset - e[r][1].start.offset && (u = ne(u, [[\"enter\", e[r][1], n], [\"exit\", e[r][1], n]])), u = ne(u, [[\"enter\", i, n], [\"enter\", o, n], [\"exit\", o, n], [\"enter\", l, n]]), u = ne(u, zn(n.parser.constructs.insideSpan.null, e.slice(r + 1, t), n)), u = ne(u, [[\"exit\", l, n], [\"enter\", a, n], [\"exit\", a, n], [\"exit\", i, n]]), e[t][1].end.offset - e[t][1].start.offset ? (c = 2, u = ne(u, [[\"enter\", e[t][1], n], [\"exit\", e[t][1], n]])) : c = 0, ce(e, r - 1, t - r + 3, u), t = r + u.length - c - 2;\n break;\n }\n }\n for (t = -1; ++t < e.length; )\n e[t][1].type === \"attentionSequence\" && (e[t][1].type = \"data\");\n return e;\n}\nfunction vi(e, n) {\n const t = this.parser.constructs.attentionMarkers.null, r = this.previous, i = et(r);\n let l;\n return o;\n function o(s) {\n return l = s, e.enter(\"attentionSequence\"), a(s);\n }\n function a(s) {\n if (s === l)\n return e.consume(s), a;\n const u = e.exit(\"attentionSequence\"), c = et(s), f = !c || c === 2 && i || t.includes(s), d = !i || i === 2 && c || t.includes(r);\n return u._open = !!(l === 42 ? f : f && (i || !d)), u._close = !!(l === 42 ? d : d && (c || !f)), n(s);\n }\n}\nfunction nt(e, n) {\n e.column += n, e.offset += n, e._bufferIndex += n;\n}\nconst Di = {\n name: \"autolink\",\n tokenize: Oi\n};\nfunction Oi(e, n, t) {\n let r = 0;\n return i;\n function i(p) {\n return e.enter(\"autolink\"), e.enter(\"autolinkMarker\"), e.consume(p), e.exit(\"autolinkMarker\"), e.enter(\"autolinkProtocol\"), l;\n }\n function l(p) {\n return se(p) ? (e.consume(p), o) : p === 64 ? t(p) : u(p);\n }\n function o(p) {\n return p === 43 || p === 45 || p === 46 || ee(p) ? (r = 1, a(p)) : u(p);\n }\n function a(p) {\n return p === 58 ? (e.consume(p), r = 0, s) : (p === 43 || p === 45 || p === 46 || ee(p)) && r++ < 32 ? (e.consume(p), a) : (r = 0, u(p));\n }\n function s(p) {\n return p === 62 ? (e.exit(\"autolinkProtocol\"), e.enter(\"autolinkMarker\"), e.consume(p), e.exit(\"autolinkMarker\"), e.exit(\"autolink\"), n) : p === null || p === 32 || p === 60 || gn(p) ? t(p) : (e.consume(p), s);\n }\n function u(p) {\n return p === 64 ? (e.consume(p), c) : bi(p) ? (e.consume(p), u) : t(p);\n }\n function c(p) {\n return ee(p) ? f(p) : t(p);\n }\n function f(p) {\n return p === 46 ? (e.consume(p), r = 0, c) : p === 62 ? (e.exit(\"autolinkProtocol\").type = \"autolinkEmail\", e.enter(\"autolinkMarker\"), e.consume(p), e.exit(\"autolinkMarker\"), e.exit(\"autolink\"), n) : d(p);\n }\n function d(p) {\n if ((p === 45 || ee(p)) && r++ < 63) {\n const b = p === 45 ? d : f;\n return e.consume(p), b;\n }\n return t(p);\n }\n}\nconst Ke = {\n partial: !0,\n tokenize: Ri\n};\nfunction Ri(e, n, t) {\n return r;\n function r(l) {\n return _(l) ? V(e, i, \"linePrefix\")(l) : i(l);\n }\n function i(l) {\n return l === null || L(l) ? n(l) : t(l);\n }\n}\nconst Ht = {\n continuation: {\n tokenize: Ni\n },\n exit: Mi,\n name: \"blockQuote\",\n tokenize: Fi\n};\nfunction Fi(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n if (o === 62) {\n const a = r.containerState;\n return a.open || (e.enter(\"blockQuote\", {\n _container: !0\n }), a.open = !0), e.enter(\"blockQuotePrefix\"), e.enter(\"blockQuoteMarker\"), e.consume(o), e.exit(\"blockQuoteMarker\"), l;\n }\n return t(o);\n }\n function l(o) {\n return _(o) ? (e.enter(\"blockQuotePrefixWhitespace\"), e.consume(o), e.exit(\"blockQuotePrefixWhitespace\"), e.exit(\"blockQuotePrefix\"), n) : (e.exit(\"blockQuotePrefix\"), n(o));\n }\n}\nfunction Ni(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return _(o) ? V(e, l, \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(o) : l(o);\n }\n function l(o) {\n return e.attempt(Ht, n, t)(o);\n }\n}\nfunction Mi(e) {\n e.exit(\"blockQuote\");\n}\nconst Ut = {\n name: \"characterEscape\",\n tokenize: _i\n};\nfunction _i(e, n, t) {\n return r;\n function r(l) {\n return e.enter(\"characterEscape\"), e.enter(\"escapeMarker\"), e.consume(l), e.exit(\"escapeMarker\"), i;\n }\n function i(l) {\n return Si(l) ? (e.enter(\"characterEscapeValue\"), e.consume(l), e.exit(\"characterEscapeValue\"), e.exit(\"characterEscape\"), n) : t(l);\n }\n}\nconst Vt = {\n name: \"characterReference\",\n tokenize: Bi\n};\nfunction Bi(e, n, t) {\n const r = this;\n let i = 0, l, o;\n return a;\n function a(f) {\n return e.enter(\"characterReference\"), e.enter(\"characterReferenceMarker\"), e.consume(f), e.exit(\"characterReferenceMarker\"), s;\n }\n function s(f) {\n return f === 35 ? (e.enter(\"characterReferenceMarkerNumeric\"), e.consume(f), e.exit(\"characterReferenceMarkerNumeric\"), u) : (e.enter(\"characterReferenceValue\"), l = 31, o = ee, c(f));\n }\n function u(f) {\n return f === 88 || f === 120 ? (e.enter(\"characterReferenceMarkerHexadecimal\"), e.consume(f), e.exit(\"characterReferenceMarkerHexadecimal\"), e.enter(\"characterReferenceValue\"), l = 6, o = wi, c) : (e.enter(\"characterReferenceValue\"), l = 7, o = yn, c(f));\n }\n function c(f) {\n if (f === 59 && i) {\n const d = e.exit(\"characterReferenceValue\");\n return o === ee && !Pn(r.sliceSerialize(d)) ? t(f) : (e.enter(\"characterReferenceMarker\"), e.consume(f), e.exit(\"characterReferenceMarker\"), e.exit(\"characterReference\"), n);\n }\n return o(f) && i++ < l ? (e.consume(f), c) : t(f);\n }\n}\nconst tt = {\n partial: !0,\n tokenize: Hi\n}, rt = {\n concrete: !0,\n name: \"codeFenced\",\n tokenize: ji\n};\nfunction ji(e, n, t) {\n const r = this, i = {\n partial: !0,\n tokenize: R\n };\n let l = 0, o = 0, a;\n return s;\n function s(y) {\n return u(y);\n }\n function u(y) {\n const F = r.events[r.events.length - 1];\n return l = F && F[1].type === \"linePrefix\" ? F[2].sliceSerialize(F[1], !0).length : 0, a = y, e.enter(\"codeFenced\"), e.enter(\"codeFencedFence\"), e.enter(\"codeFencedFenceSequence\"), c(y);\n }\n function c(y) {\n return y === a ? (o++, e.consume(y), c) : o < 3 ? t(y) : (e.exit(\"codeFencedFenceSequence\"), _(y) ? V(e, f, \"whitespace\")(y) : f(y));\n }\n function f(y) {\n return y === null || L(y) ? (e.exit(\"codeFencedFence\"), r.interrupt ? n(y) : e.check(tt, w, N)(y)) : (e.enter(\"codeFencedFenceInfo\"), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), d(y));\n }\n function d(y) {\n return y === null || L(y) ? (e.exit(\"chunkString\"), e.exit(\"codeFencedFenceInfo\"), f(y)) : _(y) ? (e.exit(\"chunkString\"), e.exit(\"codeFencedFenceInfo\"), V(e, p, \"whitespace\")(y)) : y === 96 && y === a ? t(y) : (e.consume(y), d);\n }\n function p(y) {\n return y === null || L(y) ? f(y) : (e.enter(\"codeFencedFenceMeta\"), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), b(y));\n }\n function b(y) {\n return y === null || L(y) ? (e.exit(\"chunkString\"), e.exit(\"codeFencedFenceMeta\"), f(y)) : y === 96 && y === a ? t(y) : (e.consume(y), b);\n }\n function w(y) {\n return e.attempt(i, N, A)(y);\n }\n function A(y) {\n return e.enter(\"lineEnding\"), e.consume(y), e.exit(\"lineEnding\"), x;\n }\n function x(y) {\n return l > 0 && _(y) ? V(e, C, \"linePrefix\", l + 1)(y) : C(y);\n }\n function C(y) {\n return y === null || L(y) ? e.check(tt, w, N)(y) : (e.enter(\"codeFlowValue\"), E(y));\n }\n function E(y) {\n return y === null || L(y) ? (e.exit(\"codeFlowValue\"), C(y)) : (e.consume(y), E);\n }\n function N(y) {\n return e.exit(\"codeFenced\"), n(y);\n }\n function R(y, F, q) {\n let B = 0;\n return j;\n function j(v) {\n return y.enter(\"lineEnding\"), y.consume(v), y.exit(\"lineEnding\"), z;\n }\n function z(v) {\n return y.enter(\"codeFencedFence\"), _(v) ? V(y, T, \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(v) : T(v);\n }\n function T(v) {\n return v === a ? (y.enter(\"codeFencedFenceSequence\"), P(v)) : q(v);\n }\n function P(v) {\n return v === a ? (B++, y.consume(v), P) : B >= o ? (y.exit(\"codeFencedFenceSequence\"), _(v) ? V(y, I, \"whitespace\")(v) : I(v)) : q(v);\n }\n function I(v) {\n return v === null || L(v) ? (y.exit(\"codeFencedFence\"), F(v)) : q(v);\n }\n }\n}\nfunction Hi(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return o === null ? t(o) : (e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), l);\n }\n function l(o) {\n return r.parser.lazy[r.now().line] ? t(o) : n(o);\n }\n}\nconst tn = {\n name: \"codeIndented\",\n tokenize: Vi\n}, Ui = {\n partial: !0,\n tokenize: qi\n};\nfunction Vi(e, n, t) {\n const r = this;\n return i;\n function i(u) {\n return e.enter(\"codeIndented\"), V(e, l, \"linePrefix\", 5)(u);\n }\n function l(u) {\n const c = r.events[r.events.length - 1];\n return c && c[1].type === \"linePrefix\" && c[2].sliceSerialize(c[1], !0).length >= 4 ? o(u) : t(u);\n }\n function o(u) {\n return u === null ? s(u) : L(u) ? e.attempt(Ui, o, s)(u) : (e.enter(\"codeFlowValue\"), a(u));\n }\n function a(u) {\n return u === null || L(u) ? (e.exit(\"codeFlowValue\"), o(u)) : (e.consume(u), a);\n }\n function s(u) {\n return e.exit(\"codeIndented\"), n(u);\n }\n}\nfunction qi(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return r.parser.lazy[r.now().line] ? t(o) : L(o) ? (e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), i) : V(e, l, \"linePrefix\", 5)(o);\n }\n function l(o) {\n const a = r.events[r.events.length - 1];\n return a && a[1].type === \"linePrefix\" && a[2].sliceSerialize(a[1], !0).length >= 4 ? n(o) : L(o) ? i(o) : t(o);\n }\n}\nconst $i = {\n name: \"codeText\",\n previous: Yi,\n resolve: Wi,\n tokenize: Qi\n};\nfunction Wi(e) {\n let n = e.length - 4, t = 3, r, i;\n if ((e[t][1].type === \"lineEnding\" || e[t][1].type === \"space\") && (e[n][1].type === \"lineEnding\" || e[n][1].type === \"space\")) {\n for (r = t; ++r < n; )\n if (e[r][1].type === \"codeTextData\") {\n e[t][1].type = \"codeTextPadding\", e[n][1].type = \"codeTextPadding\", t += 2, n -= 2;\n break;\n }\n }\n for (r = t - 1, n++; ++r <= n; )\n i === void 0 ? r !== n && e[r][1].type !== \"lineEnding\" && (i = r) : (r === n || e[r][1].type === \"lineEnding\") && (e[i][1].type = \"codeTextData\", r !== i + 2 && (e[i][1].end = e[r - 1][1].end, e.splice(i + 2, r - i - 2), n -= r - i - 2, r = i + 2), i = void 0);\n return e;\n}\nfunction Yi(e) {\n return e !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\nfunction Qi(e, n, t) {\n let r = 0, i, l;\n return o;\n function o(f) {\n return e.enter(\"codeText\"), e.enter(\"codeTextSequence\"), a(f);\n }\n function a(f) {\n return f === 96 ? (e.consume(f), r++, a) : (e.exit(\"codeTextSequence\"), s(f));\n }\n function s(f) {\n return f === null ? t(f) : f === 32 ? (e.enter(\"space\"), e.consume(f), e.exit(\"space\"), s) : f === 96 ? (l = e.enter(\"codeTextSequence\"), i = 0, c(f)) : L(f) ? (e.enter(\"lineEnding\"), e.consume(f), e.exit(\"lineEnding\"), s) : (e.enter(\"codeTextData\"), u(f));\n }\n function u(f) {\n return f === null || f === 32 || f === 96 || L(f) ? (e.exit(\"codeTextData\"), s(f)) : (e.consume(f), u);\n }\n function c(f) {\n return f === 96 ? (e.consume(f), i++, c) : i === r ? (e.exit(\"codeTextSequence\"), e.exit(\"codeText\"), n(f)) : (l.type = \"codeTextData\", u(f));\n }\n}\nclass Xi {\n /**\n * @param {ReadonlyArray<T> | null | undefined} [initial]\n * Initial items (optional).\n * @returns\n * Splice buffer.\n */\n constructor(n) {\n this.left = n ? [...n] : [], this.right = [];\n }\n /**\n * Array access;\n * does not move the cursor.\n *\n * @param {number} index\n * Index.\n * @return {T}\n * Item.\n */\n get(n) {\n if (n < 0 || n >= this.left.length + this.right.length)\n throw new RangeError(\"Cannot access index `\" + n + \"` in a splice buffer of size `\" + (this.left.length + this.right.length) + \"`\");\n return n < this.left.length ? this.left[n] : this.right[this.right.length - n + this.left.length - 1];\n }\n /**\n * The length of the splice buffer, one greater than the largest index in the\n * array.\n */\n get length() {\n return this.left.length + this.right.length;\n }\n /**\n * Remove and return `list[0]`;\n * moves the cursor to `0`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n shift() {\n return this.setCursor(0), this.right.pop();\n }\n /**\n * Slice the buffer to get an array;\n * does not move the cursor.\n *\n * @param {number} start\n * Start.\n * @param {number | null | undefined} [end]\n * End (optional).\n * @returns {Array<T>}\n * Array of items.\n */\n slice(n, t) {\n const r = t ?? Number.POSITIVE_INFINITY;\n return r < this.left.length ? this.left.slice(n, r) : n > this.left.length ? this.right.slice(this.right.length - r + this.left.length, this.right.length - n + this.left.length).reverse() : this.left.slice(n).concat(this.right.slice(this.right.length - r + this.left.length).reverse());\n }\n /**\n * Mimics the behavior of Array.prototype.splice() except for the change of\n * interface necessary to avoid segfaults when patching in very large arrays.\n *\n * This operation moves cursor is moved to `start` and results in the cursor\n * placed after any inserted items.\n *\n * @param {number} start\n * Start;\n * zero-based index at which to start changing the array;\n * negative numbers count backwards from the end of the array and values\n * that are out-of bounds are clamped to the appropriate end of the array.\n * @param {number | null | undefined} [deleteCount=0]\n * Delete count (default: `0`);\n * maximum number of elements to delete, starting from start.\n * @param {Array<T> | null | undefined} [items=[]]\n * Items to include in place of the deleted items (default: `[]`).\n * @return {Array<T>}\n * Any removed items.\n */\n splice(n, t, r) {\n const i = t || 0;\n this.setCursor(Math.trunc(n));\n const l = this.right.splice(this.right.length - i, Number.POSITIVE_INFINITY);\n return r && Oe(this.left, r), l.reverse();\n }\n /**\n * Remove and return the highest-numbered item in the array, so\n * `list[list.length - 1]`;\n * Moves the cursor to `length`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n pop() {\n return this.setCursor(Number.POSITIVE_INFINITY), this.left.pop();\n }\n /**\n * Inserts a single item to the high-numbered side of the array;\n * moves the cursor to `length`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n push(n) {\n this.setCursor(Number.POSITIVE_INFINITY), this.left.push(n);\n }\n /**\n * Inserts many items to the high-numbered side of the array.\n * Moves the cursor to `length`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n pushMany(n) {\n this.setCursor(Number.POSITIVE_INFINITY), Oe(this.left, n);\n }\n /**\n * Inserts a single item to the low-numbered side of the array;\n * Moves the cursor to `0`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n unshift(n) {\n this.setCursor(0), this.right.push(n);\n }\n /**\n * Inserts many items to the low-numbered side of the array;\n * moves the cursor to `0`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n unshiftMany(n) {\n this.setCursor(0), Oe(this.right, n.reverse());\n }\n /**\n * Move the cursor to a specific position in the array. Requires\n * time proportional to the distance moved.\n *\n * If `n < 0`, the cursor will end up at the beginning.\n * If `n > length`, the cursor will end up at the end.\n *\n * @param {number} n\n * Position.\n * @return {undefined}\n * Nothing.\n */\n setCursor(n) {\n if (!(n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0))\n if (n < this.left.length) {\n const t = this.left.splice(n, Number.POSITIVE_INFINITY);\n Oe(this.right, t.reverse());\n } else {\n const t = this.right.splice(this.left.length + this.right.length - n, Number.POSITIVE_INFINITY);\n Oe(this.left, t.reverse());\n }\n }\n}\nfunction Oe(e, n) {\n let t = 0;\n if (n.length < 1e4)\n e.push(...n);\n else\n for (; t < n.length; )\n e.push(...n.slice(t, t + 1e4)), t += 1e4;\n}\nfunction qt(e) {\n const n = {};\n let t = -1, r, i, l, o, a, s, u;\n const c = new Xi(e);\n for (; ++t < c.length; ) {\n for (; t in n; )\n t = n[t];\n if (r = c.get(t), t && r[1].type === \"chunkFlow\" && c.get(t - 1)[1].type === \"listItemPrefix\" && (s = r[1]._tokenizer.events, l = 0, l < s.length && s[l][1].type === \"lineEndingBlank\" && (l += 2), l < s.length && s[l][1].type === \"content\"))\n for (; ++l < s.length && s[l][1].type !== \"content\"; )\n s[l][1].type === \"chunkText\" && (s[l][1]._isInFirstContentOfListItem = !0, l++);\n if (r[0] === \"enter\")\n r[1].contentType && (Object.assign(n, Ki(c, t)), t = n[t], u = !0);\n else if (r[1]._container) {\n for (l = t, i = void 0; l--; )\n if (o = c.get(l), o[1].type === \"lineEnding\" || o[1].type === \"lineEndingBlank\")\n o[0] === \"enter\" && (i && (c.get(i)[1].type = \"lineEndingBlank\"), o[1].type = \"lineEnding\", i = l);\n else if (o[1].type !== \"linePrefix\") break;\n i && (r[1].end = {\n ...c.get(i)[1].start\n }, a = c.slice(i, t), a.unshift(r), c.splice(i, t - i + 1, a));\n }\n }\n return ce(e, 0, Number.POSITIVE_INFINITY, c.slice(0)), !u;\n}\nfunction Ki(e, n) {\n const t = e.get(n)[1], r = e.get(n)[2];\n let i = n - 1;\n const l = [], o = t._tokenizer || r.parser[t.contentType](t.start), a = o.events, s = [], u = {};\n let c, f, d = -1, p = t, b = 0, w = 0;\n const A = [w];\n for (; p; ) {\n for (; e.get(++i)[1] !== p; )\n ;\n l.push(i), p._tokenizer || (c = r.sliceStream(p), p.next || c.push(null), f && o.defineSkip(p.start), p._isInFirstContentOfListItem && (o._gfmTasklistFirstContentOfListItem = !0), o.write(c), p._isInFirstContentOfListItem && (o._gfmTasklistFirstContentOfListItem = void 0)), f = p, p = p.next;\n }\n for (p = t; ++d < a.length; )\n // Find a void token that includes a break.\n a[d][0] === \"exit\" && a[d - 1][0] === \"enter\" && a[d][1].type === a[d - 1][1].type && a[d][1].start.line !== a[d][1].end.line && (w = d + 1, A.push(w), p._tokenizer = void 0, p.previous = void 0, p = p.next);\n for (o.events = [], p ? (p._tokenizer = void 0, p.previous = void 0) : A.pop(), d = A.length; d--; ) {\n const x = a.slice(A[d], A[d + 1]), C = l.pop();\n s.push([C, C + x.length - 1]), e.splice(C, 2, x);\n }\n for (s.reverse(), d = -1; ++d < s.length; )\n u[b + s[d][0]] = b + s[d][1], b += s[d][1] - s[d][0] - 1;\n return u;\n}\nconst Gi = {\n resolve: Zi,\n tokenize: el\n}, Ji = {\n partial: !0,\n tokenize: nl\n};\nfunction Zi(e) {\n return qt(e), e;\n}\nfunction el(e, n) {\n let t;\n return r;\n function r(a) {\n return e.enter(\"content\"), t = e.enter(\"chunkContent\", {\n contentType: \"content\"\n }), i(a);\n }\n function i(a) {\n return a === null ? l(a) : L(a) ? e.check(Ji, o, l)(a) : (e.consume(a), i);\n }\n function l(a) {\n return e.exit(\"chunkContent\"), e.exit(\"content\"), n(a);\n }\n function o(a) {\n return e.consume(a), e.exit(\"chunkContent\"), t.next = e.enter(\"chunkContent\", {\n contentType: \"content\",\n previous: t\n }), t = t.next, i;\n }\n}\nfunction nl(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return e.exit(\"chunkContent\"), e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), V(e, l, \"linePrefix\");\n }\n function l(o) {\n if (o === null || L(o))\n return t(o);\n const a = r.events[r.events.length - 1];\n return !r.parser.constructs.disable.null.includes(\"codeIndented\") && a && a[1].type === \"linePrefix\" && a[2].sliceSerialize(a[1], !0).length >= 4 ? n(o) : e.interrupt(r.parser.constructs.flow, t, n)(o);\n }\n}\nfunction $t(e, n, t, r, i, l, o, a, s) {\n const u = s || Number.POSITIVE_INFINITY;\n let c = 0;\n return f;\n function f(x) {\n return x === 60 ? (e.enter(r), e.enter(i), e.enter(l), e.consume(x), e.exit(l), d) : x === null || x === 32 || x === 41 || gn(x) ? t(x) : (e.enter(r), e.enter(o), e.enter(a), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), w(x));\n }\n function d(x) {\n return x === 62 ? (e.enter(l), e.consume(x), e.exit(l), e.exit(i), e.exit(r), n) : (e.enter(a), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), p(x));\n }\n function p(x) {\n return x === 62 ? (e.exit(\"chunkString\"), e.exit(a), d(x)) : x === null || x === 60 || L(x) ? t(x) : (e.consume(x), x === 92 ? b : p);\n }\n function b(x) {\n return x === 60 || x === 62 || x === 92 ? (e.consume(x), p) : p(x);\n }\n function w(x) {\n return !c && (x === null || x === 41 || G(x)) ? (e.exit(\"chunkString\"), e.exit(a), e.exit(o), e.exit(r), n(x)) : c < u && x === 40 ? (e.consume(x), c++, w) : x === 41 ? (e.consume(x), c--, w) : x === null || x === 32 || x === 40 || gn(x) ? t(x) : (e.consume(x), x === 92 ? A : w);\n }\n function A(x) {\n return x === 40 || x === 41 || x === 92 ? (e.consume(x), w) : w(x);\n }\n}\nfunction Wt(e, n, t, r, i, l) {\n const o = this;\n let a = 0, s;\n return u;\n function u(p) {\n return e.enter(r), e.enter(i), e.consume(p), e.exit(i), e.enter(l), c;\n }\n function c(p) {\n return a > 999 || p === null || p === 91 || p === 93 && !s || // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n p === 94 && !a && \"_hiddenFootnoteSupport\" in o.parser.constructs ? t(p) : p === 93 ? (e.exit(l), e.enter(i), e.consume(p), e.exit(i), e.exit(r), n) : L(p) ? (e.enter(\"lineEnding\"), e.consume(p), e.exit(\"lineEnding\"), c) : (e.enter(\"chunkString\", {\n contentType: \"string\"\n }), f(p));\n }\n function f(p) {\n return p === null || p === 91 || p === 93 || L(p) || a++ > 999 ? (e.exit(\"chunkString\"), c(p)) : (e.consume(p), s || (s = !_(p)), p === 92 ? d : f);\n }\n function d(p) {\n return p === 91 || p === 92 || p === 93 ? (e.consume(p), a++, f) : f(p);\n }\n}\nfunction Yt(e, n, t, r, i, l) {\n let o;\n return a;\n function a(d) {\n return d === 34 || d === 39 || d === 40 ? (e.enter(r), e.enter(i), e.consume(d), e.exit(i), o = d === 40 ? 41 : d, s) : t(d);\n }\n function s(d) {\n return d === o ? (e.enter(i), e.consume(d), e.exit(i), e.exit(r), n) : (e.enter(l), u(d));\n }\n function u(d) {\n return d === o ? (e.exit(l), s(o)) : d === null ? t(d) : L(d) ? (e.enter(\"lineEnding\"), e.consume(d), e.exit(\"lineEnding\"), V(e, u, \"linePrefix\")) : (e.enter(\"chunkString\", {\n contentType: \"string\"\n }), c(d));\n }\n function c(d) {\n return d === o || d === null || L(d) ? (e.exit(\"chunkString\"), u(d)) : (e.consume(d), d === 92 ? f : c);\n }\n function f(d) {\n return d === o || d === 92 ? (e.consume(d), c) : c(d);\n }\n}\nfunction Ne(e, n) {\n let t;\n return r;\n function r(i) {\n return L(i) ? (e.enter(\"lineEnding\"), e.consume(i), e.exit(\"lineEnding\"), t = !0, r) : _(i) ? V(e, r, t ? \"linePrefix\" : \"lineSuffix\")(i) : n(i);\n }\n}\nconst tl = {\n name: \"definition\",\n tokenize: il\n}, rl = {\n partial: !0,\n tokenize: ll\n};\nfunction il(e, n, t) {\n const r = this;\n let i;\n return l;\n function l(p) {\n return e.enter(\"definition\"), o(p);\n }\n function o(p) {\n return Wt.call(\n r,\n e,\n a,\n // Note: we don’t need to reset the way `markdown-rs` does.\n t,\n \"definitionLabel\",\n \"definitionLabelMarker\",\n \"definitionLabelString\"\n )(p);\n }\n function a(p) {\n return i = Te(r.sliceSerialize(r.events[r.events.length - 1][1]).slice(1, -1)), p === 58 ? (e.enter(\"definitionMarker\"), e.consume(p), e.exit(\"definitionMarker\"), s) : t(p);\n }\n function s(p) {\n return G(p) ? Ne(e, u)(p) : u(p);\n }\n function u(p) {\n return $t(\n e,\n c,\n // Note: we don’t need to reset the way `markdown-rs` does.\n t,\n \"definitionDestination\",\n \"definitionDestinationLiteral\",\n \"definitionDestinationLiteralMarker\",\n \"definitionDestinationRaw\",\n \"definitionDestinationString\"\n )(p);\n }\n function c(p) {\n return e.attempt(rl, f, f)(p);\n }\n function f(p) {\n return _(p) ? V(e, d, \"whitespace\")(p) : d(p);\n }\n function d(p) {\n return p === null || L(p) ? (e.exit(\"definition\"), r.parser.defined.push(i), n(p)) : t(p);\n }\n}\nfunction ll(e, n, t) {\n return r;\n function r(a) {\n return G(a) ? Ne(e, i)(a) : t(a);\n }\n function i(a) {\n return Yt(e, l, t, \"definitionTitle\", \"definitionTitleMarker\", \"definitionTitleString\")(a);\n }\n function l(a) {\n return _(a) ? V(e, o, \"whitespace\")(a) : o(a);\n }\n function o(a) {\n return a === null || L(a) ? n(a) : t(a);\n }\n}\nconst ol = {\n name: \"hardBreakEscape\",\n tokenize: al\n};\nfunction al(e, n, t) {\n return r;\n function r(l) {\n return e.enter(\"hardBreakEscape\"), e.consume(l), i;\n }\n function i(l) {\n return L(l) ? (e.exit(\"hardBreakEscape\"), n(l)) : t(l);\n }\n}\nconst ul = {\n name: \"headingAtx\",\n resolve: sl,\n tokenize: cl\n};\nfunction sl(e, n) {\n let t = e.length - 2, r = 3, i, l;\n return e[r][1].type === \"whitespace\" && (r += 2), t - 2 > r && e[t][1].type === \"whitespace\" && (t -= 2), e[t][1].type === \"atxHeadingSequence\" && (r === t - 1 || t - 4 > r && e[t - 2][1].type === \"whitespace\") && (t -= r + 1 === t ? 2 : 4), t > r && (i = {\n type: \"atxHeadingText\",\n start: e[r][1].start,\n end: e[t][1].end\n }, l = {\n type: \"chunkText\",\n start: e[r][1].start,\n end: e[t][1].end,\n contentType: \"text\"\n }, ce(e, r, t - r + 1, [[\"enter\", i, n], [\"enter\", l, n], [\"exit\", l, n], [\"exit\", i, n]])), e;\n}\nfunction cl(e, n, t) {\n let r = 0;\n return i;\n function i(c) {\n return e.enter(\"atxHeading\"), l(c);\n }\n function l(c) {\n return e.enter(\"atxHeadingSequence\"), o(c);\n }\n function o(c) {\n return c === 35 && r++ < 6 ? (e.consume(c), o) : c === null || G(c) ? (e.exit(\"atxHeadingSequence\"), a(c)) : t(c);\n }\n function a(c) {\n return c === 35 ? (e.enter(\"atxHeadingSequence\"), s(c)) : c === null || L(c) ? (e.exit(\"atxHeading\"), n(c)) : _(c) ? V(e, a, \"whitespace\")(c) : (e.enter(\"atxHeadingText\"), u(c));\n }\n function s(c) {\n return c === 35 ? (e.consume(c), s) : (e.exit(\"atxHeadingSequence\"), a(c));\n }\n function u(c) {\n return c === null || c === 35 || G(c) ? (e.exit(\"atxHeadingText\"), a(c)) : (e.consume(c), u);\n }\n}\nconst pl = [\n \"address\",\n \"article\",\n \"aside\",\n \"base\",\n \"basefont\",\n \"blockquote\",\n \"body\",\n \"caption\",\n \"center\",\n \"col\",\n \"colgroup\",\n \"dd\",\n \"details\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"dt\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"footer\",\n \"form\",\n \"frame\",\n \"frameset\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"head\",\n \"header\",\n \"hr\",\n \"html\",\n \"iframe\",\n \"legend\",\n \"li\",\n \"link\",\n \"main\",\n \"menu\",\n \"menuitem\",\n \"nav\",\n \"noframes\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"p\",\n \"param\",\n \"search\",\n \"section\",\n \"summary\",\n \"table\",\n \"tbody\",\n \"td\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"title\",\n \"tr\",\n \"track\",\n \"ul\"\n], it = [\"pre\", \"script\", \"style\", \"textarea\"], fl = {\n concrete: !0,\n name: \"htmlFlow\",\n resolveTo: dl,\n tokenize: gl\n}, hl = {\n partial: !0,\n tokenize: xl\n}, ml = {\n partial: !0,\n tokenize: yl\n};\nfunction dl(e) {\n let n = e.length;\n for (; n-- && !(e[n][0] === \"enter\" && e[n][1].type === \"htmlFlow\"); )\n ;\n return n > 1 && e[n - 2][1].type === \"linePrefix\" && (e[n][1].start = e[n - 2][1].start, e[n + 1][1].start = e[n - 2][1].start, e.splice(n - 2, 2)), e;\n}\nfunction gl(e, n, t) {\n const r = this;\n let i, l, o, a, s;\n return u;\n function u(m) {\n return c(m);\n }\n function c(m) {\n return e.enter(\"htmlFlow\"), e.enter(\"htmlFlowData\"), e.consume(m), f;\n }\n function f(m) {\n return m === 33 ? (e.consume(m), d) : m === 47 ? (e.consume(m), l = !0, w) : m === 63 ? (e.consume(m), i = 3, r.interrupt ? n : h) : se(m) ? (e.consume(m), o = String.fromCharCode(m), A) : t(m);\n }\n function d(m) {\n return m === 45 ? (e.consume(m), i = 2, p) : m === 91 ? (e.consume(m), i = 5, a = 0, b) : se(m) ? (e.consume(m), i = 4, r.interrupt ? n : h) : t(m);\n }\n function p(m) {\n return m === 45 ? (e.consume(m), r.interrupt ? n : h) : t(m);\n }\n function b(m) {\n const le = \"CDATA[\";\n return m === le.charCodeAt(a++) ? (e.consume(m), a === le.length ? r.interrupt ? n : T : b) : t(m);\n }\n function w(m) {\n return se(m) ? (e.consume(m), o = String.fromCharCode(m), A) : t(m);\n }\n function A(m) {\n if (m === null || m === 47 || m === 62 || G(m)) {\n const le = m === 47, xe = o.toLowerCase();\n return !le && !l && it.includes(xe) ? (i = 1, r.interrupt ? n(m) : T(m)) : pl.includes(o.toLowerCase()) ? (i = 6, le ? (e.consume(m), x) : r.interrupt ? n(m) : T(m)) : (i = 7, r.interrupt && !r.parser.lazy[r.now().line] ? t(m) : l ? C(m) : E(m));\n }\n return m === 45 || ee(m) ? (e.consume(m), o += String.fromCharCode(m), A) : t(m);\n }\n function x(m) {\n return m === 62 ? (e.consume(m), r.interrupt ? n : T) : t(m);\n }\n function C(m) {\n return _(m) ? (e.consume(m), C) : j(m);\n }\n function E(m) {\n return m === 47 ? (e.consume(m), j) : m === 58 || m === 95 || se(m) ? (e.consume(m), N) : _(m) ? (e.consume(m), E) : j(m);\n }\n function N(m) {\n return m === 45 || m === 46 || m === 58 || m === 95 || ee(m) ? (e.consume(m), N) : R(m);\n }\n function R(m) {\n return m === 61 ? (e.consume(m), y) : _(m) ? (e.consume(m), R) : E(m);\n }\n function y(m) {\n return m === null || m === 60 || m === 61 || m === 62 || m === 96 ? t(m) : m === 34 || m === 39 ? (e.consume(m), s = m, F) : _(m) ? (e.consume(m), y) : q(m);\n }\n function F(m) {\n return m === s ? (e.consume(m), s = null, B) : m === null || L(m) ? t(m) : (e.consume(m), F);\n }\n function q(m) {\n return m === null || m === 34 || m === 39 || m === 47 || m === 60 || m === 61 || m === 62 || m === 96 || G(m) ? R(m) : (e.consume(m), q);\n }\n function B(m) {\n return m === 47 || m === 62 || _(m) ? E(m) : t(m);\n }\n function j(m) {\n return m === 62 ? (e.consume(m), z) : t(m);\n }\n function z(m) {\n return m === null || L(m) ? T(m) : _(m) ? (e.consume(m), z) : t(m);\n }\n function T(m) {\n return m === 45 && i === 2 ? (e.consume(m), W) : m === 60 && i === 1 ? (e.consume(m), Y) : m === 62 && i === 4 ? (e.consume(m), ie) : m === 63 && i === 3 ? (e.consume(m), h) : m === 93 && i === 5 ? (e.consume(m), pe) : L(m) && (i === 6 || i === 7) ? (e.exit(\"htmlFlowData\"), e.check(hl, fe, P)(m)) : m === null || L(m) ? (e.exit(\"htmlFlowData\"), P(m)) : (e.consume(m), T);\n }\n function P(m) {\n return e.check(ml, I, fe)(m);\n }\n function I(m) {\n return e.enter(\"lineEnding\"), e.consume(m), e.exit(\"lineEnding\"), v;\n }\n function v(m) {\n return m === null || L(m) ? P(m) : (e.enter(\"htmlFlowData\"), T(m));\n }\n function W(m) {\n return m === 45 ? (e.consume(m), h) : T(m);\n }\n function Y(m) {\n return m === 47 ? (e.consume(m), o = \"\", re) : T(m);\n }\n function re(m) {\n if (m === 62) {\n const le = o.toLowerCase();\n return it.includes(le) ? (e.consume(m), ie) : T(m);\n }\n return se(m) && o.length < 8 ? (e.consume(m), o += String.fromCharCode(m), re) : T(m);\n }\n function pe(m) {\n return m === 93 ? (e.consume(m), h) : T(m);\n }\n function h(m) {\n return m === 62 ? (e.consume(m), ie) : m === 45 && i === 2 ? (e.consume(m), h) : T(m);\n }\n function ie(m) {\n return m === null || L(m) ? (e.exit(\"htmlFlowData\"), fe(m)) : (e.consume(m), ie);\n }\n function fe(m) {\n return e.exit(\"htmlFlow\"), n(m);\n }\n}\nfunction yl(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return L(o) ? (e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), l) : t(o);\n }\n function l(o) {\n return r.parser.lazy[r.now().line] ? t(o) : n(o);\n }\n}\nfunction xl(e, n, t) {\n return r;\n function r(i) {\n return e.enter(\"lineEnding\"), e.consume(i), e.exit(\"lineEnding\"), e.attempt(Ke, n, t);\n }\n}\nconst kl = {\n name: \"htmlText\",\n tokenize: bl\n};\nfunction bl(e, n, t) {\n const r = this;\n let i, l, o;\n return a;\n function a(h) {\n return e.enter(\"htmlText\"), e.enter(\"htmlTextData\"), e.consume(h), s;\n }\n function s(h) {\n return h === 33 ? (e.consume(h), u) : h === 47 ? (e.consume(h), R) : h === 63 ? (e.consume(h), E) : se(h) ? (e.consume(h), q) : t(h);\n }\n function u(h) {\n return h === 45 ? (e.consume(h), c) : h === 91 ? (e.consume(h), l = 0, b) : se(h) ? (e.consume(h), C) : t(h);\n }\n function c(h) {\n return h === 45 ? (e.consume(h), p) : t(h);\n }\n function f(h) {\n return h === null ? t(h) : h === 45 ? (e.consume(h), d) : L(h) ? (o = f, Y(h)) : (e.consume(h), f);\n }\n function d(h) {\n return h === 45 ? (e.consume(h), p) : f(h);\n }\n function p(h) {\n return h === 62 ? W(h) : h === 45 ? d(h) : f(h);\n }\n function b(h) {\n const ie = \"CDATA[\";\n return h === ie.charCodeAt(l++) ? (e.consume(h), l === ie.length ? w : b) : t(h);\n }\n function w(h) {\n return h === null ? t(h) : h === 93 ? (e.consume(h), A) : L(h) ? (o = w, Y(h)) : (e.consume(h), w);\n }\n function A(h) {\n return h === 93 ? (e.consume(h), x) : w(h);\n }\n function x(h) {\n return h === 62 ? W(h) : h === 93 ? (e.consume(h), x) : w(h);\n }\n function C(h) {\n return h === null || h === 62 ? W(h) : L(h) ? (o = C, Y(h)) : (e.consume(h), C);\n }\n function E(h) {\n return h === null ? t(h) : h === 63 ? (e.consume(h), N) : L(h) ? (o = E, Y(h)) : (e.consume(h), E);\n }\n function N(h) {\n return h === 62 ? W(h) : E(h);\n }\n function R(h) {\n return se(h) ? (e.consume(h), y) : t(h);\n }\n function y(h) {\n return h === 45 || ee(h) ? (e.consume(h), y) : F(h);\n }\n function F(h) {\n return L(h) ? (o = F, Y(h)) : _(h) ? (e.consume(h), F) : W(h);\n }\n function q(h) {\n return h === 45 || ee(h) ? (e.consume(h), q) : h === 47 || h === 62 || G(h) ? B(h) : t(h);\n }\n function B(h) {\n return h === 47 ? (e.consume(h), W) : h === 58 || h === 95 || se(h) ? (e.consume(h), j) : L(h) ? (o = B, Y(h)) : _(h) ? (e.consume(h), B) : W(h);\n }\n function j(h) {\n return h === 45 || h === 46 || h === 58 || h === 95 || ee(h) ? (e.consume(h), j) : z(h);\n }\n function z(h) {\n return h === 61 ? (e.consume(h), T) : L(h) ? (o = z, Y(h)) : _(h) ? (e.consume(h), z) : B(h);\n }\n function T(h) {\n return h === null || h === 60 || h === 61 || h === 62 || h === 96 ? t(h) : h === 34 || h === 39 ? (e.consume(h), i = h, P) : L(h) ? (o = T, Y(h)) : _(h) ? (e.consume(h), T) : (e.consume(h), I);\n }\n function P(h) {\n return h === i ? (e.consume(h), i = void 0, v) : h === null ? t(h) : L(h) ? (o = P, Y(h)) : (e.consume(h), P);\n }\n function I(h) {\n return h === null || h === 34 || h === 39 || h === 60 || h === 61 || h === 96 ? t(h) : h === 47 || h === 62 || G(h) ? B(h) : (e.consume(h), I);\n }\n function v(h) {\n return h === 47 || h === 62 || G(h) ? B(h) : t(h);\n }\n function W(h) {\n return h === 62 ? (e.consume(h), e.exit(\"htmlTextData\"), e.exit(\"htmlText\"), n) : t(h);\n }\n function Y(h) {\n return e.exit(\"htmlTextData\"), e.enter(\"lineEnding\"), e.consume(h), e.exit(\"lineEnding\"), re;\n }\n function re(h) {\n return _(h) ? V(e, pe, \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(h) : pe(h);\n }\n function pe(h) {\n return e.enter(\"htmlTextData\"), o(h);\n }\n}\nconst Ln = {\n name: \"labelEnd\",\n resolveAll: El,\n resolveTo: Il,\n tokenize: Al\n}, wl = {\n tokenize: Tl\n}, Sl = {\n tokenize: Pl\n}, Cl = {\n tokenize: zl\n};\nfunction El(e) {\n let n = -1;\n const t = [];\n for (; ++n < e.length; ) {\n const r = e[n][1];\n if (t.push(e[n]), r.type === \"labelImage\" || r.type === \"labelLink\" || r.type === \"labelEnd\") {\n const i = r.type === \"labelImage\" ? 4 : 2;\n r.type = \"data\", n += i;\n }\n }\n return e.length !== t.length && ce(e, 0, e.length, t), e;\n}\nfunction Il(e, n) {\n let t = e.length, r = 0, i, l, o, a;\n for (; t--; )\n if (i = e[t][1], l) {\n if (i.type === \"link\" || i.type === \"labelLink\" && i._inactive)\n break;\n e[t][0] === \"enter\" && i.type === \"labelLink\" && (i._inactive = !0);\n } else if (o) {\n if (e[t][0] === \"enter\" && (i.type === \"labelImage\" || i.type === \"labelLink\") && !i._balanced && (l = t, i.type !== \"labelLink\")) {\n r = 2;\n break;\n }\n } else i.type === \"labelEnd\" && (o = t);\n const s = {\n type: e[l][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...e[l][1].start\n },\n end: {\n ...e[e.length - 1][1].end\n }\n }, u = {\n type: \"label\",\n start: {\n ...e[l][1].start\n },\n end: {\n ...e[o][1].end\n }\n }, c = {\n type: \"labelText\",\n start: {\n ...e[l + r + 2][1].end\n },\n end: {\n ...e[o - 2][1].start\n }\n };\n return a = [[\"enter\", s, n], [\"enter\", u, n]], a = ne(a, e.slice(l + 1, l + r + 3)), a = ne(a, [[\"enter\", c, n]]), a = ne(a, zn(n.parser.constructs.insideSpan.null, e.slice(l + r + 4, o - 3), n)), a = ne(a, [[\"exit\", c, n], e[o - 2], e[o - 1], [\"exit\", u, n]]), a = ne(a, e.slice(o + 1)), a = ne(a, [[\"exit\", s, n]]), ce(e, l, e.length, a), e;\n}\nfunction Al(e, n, t) {\n const r = this;\n let i = r.events.length, l, o;\n for (; i--; )\n if ((r.events[i][1].type === \"labelImage\" || r.events[i][1].type === \"labelLink\") && !r.events[i][1]._balanced) {\n l = r.events[i][1];\n break;\n }\n return a;\n function a(d) {\n return l ? l._inactive ? f(d) : (o = r.parser.defined.includes(Te(r.sliceSerialize({\n start: l.end,\n end: r.now()\n }))), e.enter(\"labelEnd\"), e.enter(\"labelMarker\"), e.consume(d), e.exit(\"labelMarker\"), e.exit(\"labelEnd\"), s) : t(d);\n }\n function s(d) {\n return d === 40 ? e.attempt(wl, c, o ? c : f)(d) : d === 91 ? e.attempt(Sl, c, o ? u : f)(d) : o ? c(d) : f(d);\n }\n function u(d) {\n return e.attempt(Cl, c, f)(d);\n }\n function c(d) {\n return n(d);\n }\n function f(d) {\n return l._balanced = !0, t(d);\n }\n}\nfunction Tl(e, n, t) {\n return r;\n function r(f) {\n return e.enter(\"resource\"), e.enter(\"resourceMarker\"), e.consume(f), e.exit(\"resourceMarker\"), i;\n }\n function i(f) {\n return G(f) ? Ne(e, l)(f) : l(f);\n }\n function l(f) {\n return f === 41 ? c(f) : $t(e, o, a, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(f);\n }\n function o(f) {\n return G(f) ? Ne(e, s)(f) : c(f);\n }\n function a(f) {\n return t(f);\n }\n function s(f) {\n return f === 34 || f === 39 || f === 40 ? Yt(e, u, t, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(f) : c(f);\n }\n function u(f) {\n return G(f) ? Ne(e, c)(f) : c(f);\n }\n function c(f) {\n return f === 41 ? (e.enter(\"resourceMarker\"), e.consume(f), e.exit(\"resourceMarker\"), e.exit(\"resource\"), n) : t(f);\n }\n}\nfunction Pl(e, n, t) {\n const r = this;\n return i;\n function i(a) {\n return Wt.call(r, e, l, o, \"reference\", \"referenceMarker\", \"referenceString\")(a);\n }\n function l(a) {\n return r.parser.defined.includes(Te(r.sliceSerialize(r.events[r.events.length - 1][1]).slice(1, -1))) ? n(a) : t(a);\n }\n function o(a) {\n return t(a);\n }\n}\nfunction zl(e, n, t) {\n return r;\n function r(l) {\n return e.enter(\"reference\"), e.enter(\"referenceMarker\"), e.consume(l), e.exit(\"referenceMarker\"), i;\n }\n function i(l) {\n return l === 93 ? (e.enter(\"referenceMarker\"), e.consume(l), e.exit(\"referenceMarker\"), e.exit(\"reference\"), n) : t(l);\n }\n}\nconst Ll = {\n name: \"labelStartImage\",\n resolveAll: Ln.resolveAll,\n tokenize: vl\n};\nfunction vl(e, n, t) {\n const r = this;\n return i;\n function i(a) {\n return e.enter(\"labelImage\"), e.enter(\"labelImageMarker\"), e.consume(a), e.exit(\"labelImageMarker\"), l;\n }\n function l(a) {\n return a === 91 ? (e.enter(\"labelMarker\"), e.consume(a), e.exit(\"labelMarker\"), e.exit(\"labelImage\"), o) : t(a);\n }\n function o(a) {\n return a === 94 && \"_hiddenFootnoteSupport\" in r.parser.constructs ? t(a) : n(a);\n }\n}\nconst Dl = {\n name: \"labelStartLink\",\n resolveAll: Ln.resolveAll,\n tokenize: Ol\n};\nfunction Ol(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return e.enter(\"labelLink\"), e.enter(\"labelMarker\"), e.consume(o), e.exit(\"labelMarker\"), e.exit(\"labelLink\"), l;\n }\n function l(o) {\n return o === 94 && \"_hiddenFootnoteSupport\" in r.parser.constructs ? t(o) : n(o);\n }\n}\nconst rn = {\n name: \"lineEnding\",\n tokenize: Rl\n};\nfunction Rl(e, n) {\n return t;\n function t(r) {\n return e.enter(\"lineEnding\"), e.consume(r), e.exit(\"lineEnding\"), V(e, n, \"linePrefix\");\n }\n}\nconst Ye = {\n name: \"thematicBreak\",\n tokenize: Fl\n};\nfunction Fl(e, n, t) {\n let r = 0, i;\n return l;\n function l(u) {\n return e.enter(\"thematicBreak\"), o(u);\n }\n function o(u) {\n return i = u, a(u);\n }\n function a(u) {\n return u === i ? (e.enter(\"thematicBreakSequence\"), s(u)) : r >= 3 && (u === null || L(u)) ? (e.exit(\"thematicBreak\"), n(u)) : t(u);\n }\n function s(u) {\n return u === i ? (e.consume(u), r++, s) : (e.exit(\"thematicBreakSequence\"), _(u) ? V(e, a, \"whitespace\")(u) : a(u));\n }\n}\nconst K = {\n continuation: {\n tokenize: Bl\n },\n exit: Hl,\n name: \"list\",\n tokenize: _l\n}, Nl = {\n partial: !0,\n tokenize: Ul\n}, Ml = {\n partial: !0,\n tokenize: jl\n};\nfunction _l(e, n, t) {\n const r = this, i = r.events[r.events.length - 1];\n let l = i && i[1].type === \"linePrefix\" ? i[2].sliceSerialize(i[1], !0).length : 0, o = 0;\n return a;\n function a(p) {\n const b = r.containerState.type || (p === 42 || p === 43 || p === 45 ? \"listUnordered\" : \"listOrdered\");\n if (b === \"listUnordered\" ? !r.containerState.marker || p === r.containerState.marker : yn(p)) {\n if (r.containerState.type || (r.containerState.type = b, e.enter(b, {\n _container: !0\n })), b === \"listUnordered\")\n return e.enter(\"listItemPrefix\"), p === 42 || p === 45 ? e.check(Ye, t, u)(p) : u(p);\n if (!r.interrupt || p === 49)\n return e.enter(\"listItemPrefix\"), e.enter(\"listItemValue\"), s(p);\n }\n return t(p);\n }\n function s(p) {\n return yn(p) && ++o < 10 ? (e.consume(p), s) : (!r.interrupt || o < 2) && (r.containerState.marker ? p === r.containerState.marker : p === 41 || p === 46) ? (e.exit(\"listItemValue\"), u(p)) : t(p);\n }\n function u(p) {\n return e.enter(\"listItemMarker\"), e.consume(p), e.exit(\"listItemMarker\"), r.containerState.marker = r.containerState.marker || p, e.check(\n Ke,\n // Can’t be empty when interrupting.\n r.interrupt ? t : c,\n e.attempt(Nl, d, f)\n );\n }\n function c(p) {\n return r.containerState.initialBlankLine = !0, l++, d(p);\n }\n function f(p) {\n return _(p) ? (e.enter(\"listItemPrefixWhitespace\"), e.consume(p), e.exit(\"listItemPrefixWhitespace\"), d) : t(p);\n }\n function d(p) {\n return r.containerState.size = l + r.sliceSerialize(e.exit(\"listItemPrefix\"), !0).length, n(p);\n }\n}\nfunction Bl(e, n, t) {\n const r = this;\n return r.containerState._closeFlow = void 0, e.check(Ke, i, l);\n function i(a) {\n return r.containerState.furtherBlankLines = r.containerState.furtherBlankLines || r.containerState.initialBlankLine, V(e, n, \"listItemIndent\", r.containerState.size + 1)(a);\n }\n function l(a) {\n return r.containerState.furtherBlankLines || !_(a) ? (r.containerState.furtherBlankLines = void 0, r.containerState.initialBlankLine = void 0, o(a)) : (r.containerState.furtherBlankLines = void 0, r.containerState.initialBlankLine = void 0, e.attempt(Ml, n, o)(a));\n }\n function o(a) {\n return r.containerState._closeFlow = !0, r.interrupt = void 0, V(e, e.attempt(K, n, t), \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(a);\n }\n}\nfunction jl(e, n, t) {\n const r = this;\n return V(e, i, \"listItemIndent\", r.containerState.size + 1);\n function i(l) {\n const o = r.events[r.events.length - 1];\n return o && o[1].type === \"listItemIndent\" && o[2].sliceSerialize(o[1], !0).length === r.containerState.size ? n(l) : t(l);\n }\n}\nfunction Hl(e) {\n e.exit(this.containerState.type);\n}\nfunction Ul(e, n, t) {\n const r = this;\n return V(e, i, \"listItemPrefixWhitespace\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 5);\n function i(l) {\n const o = r.events[r.events.length - 1];\n return !_(l) && o && o[1].type === \"listItemPrefixWhitespace\" ? n(l) : t(l);\n }\n}\nconst lt = {\n name: \"setextUnderline\",\n resolveTo: Vl,\n tokenize: ql\n};\nfunction Vl(e, n) {\n let t = e.length, r, i, l;\n for (; t--; )\n if (e[t][0] === \"enter\") {\n if (e[t][1].type === \"content\") {\n r = t;\n break;\n }\n e[t][1].type === \"paragraph\" && (i = t);\n } else\n e[t][1].type === \"content\" && e.splice(t, 1), !l && e[t][1].type === \"definition\" && (l = t);\n const o = {\n type: \"setextHeading\",\n start: {\n ...e[i][1].start\n },\n end: {\n ...e[e.length - 1][1].end\n }\n };\n return e[i][1].type = \"setextHeadingText\", l ? (e.splice(i, 0, [\"enter\", o, n]), e.splice(l + 1, 0, [\"exit\", e[r][1], n]), e[r][1].end = {\n ...e[l][1].end\n }) : e[r][1] = o, e.push([\"exit\", o, n]), e;\n}\nfunction ql(e, n, t) {\n const r = this;\n let i;\n return l;\n function l(u) {\n let c = r.events.length, f;\n for (; c--; )\n if (r.events[c][1].type !== \"lineEnding\" && r.events[c][1].type !== \"linePrefix\" && r.events[c][1].type !== \"content\") {\n f = r.events[c][1].type === \"paragraph\";\n break;\n }\n return !r.parser.lazy[r.now().line] && (r.interrupt || f) ? (e.enter(\"setextHeadingLine\"), i = u, o(u)) : t(u);\n }\n function o(u) {\n return e.enter(\"setextHeadingLineSequence\"), a(u);\n }\n function a(u) {\n return u === i ? (e.consume(u), a) : (e.exit(\"setextHeadingLineSequence\"), _(u) ? V(e, s, \"lineSuffix\")(u) : s(u));\n }\n function s(u) {\n return u === null || L(u) ? (e.exit(\"setextHeadingLine\"), n(u)) : t(u);\n }\n}\nconst $l = {\n tokenize: Wl\n};\nfunction Wl(e) {\n const n = this, t = e.attempt(\n // Try to parse a blank line.\n Ke,\n r,\n // Try to parse initial flow (essentially, only code).\n e.attempt(this.parser.constructs.flowInitial, i, V(e, e.attempt(this.parser.constructs.flow, i, e.attempt(Gi, i)), \"linePrefix\"))\n );\n return t;\n function r(l) {\n if (l === null) {\n e.consume(l);\n return;\n }\n return e.enter(\"lineEndingBlank\"), e.consume(l), e.exit(\"lineEndingBlank\"), n.currentConstruct = void 0, t;\n }\n function i(l) {\n if (l === null) {\n e.consume(l);\n return;\n }\n return e.enter(\"lineEnding\"), e.consume(l), e.exit(\"lineEnding\"), n.currentConstruct = void 0, t;\n }\n}\nconst Yl = {\n resolveAll: Xt()\n}, Ql = Qt(\"string\"), Xl = Qt(\"text\");\nfunction Qt(e) {\n return {\n resolveAll: Xt(e === \"text\" ? Kl : void 0),\n tokenize: n\n };\n function n(t) {\n const r = this, i = this.parser.constructs[e], l = t.attempt(i, o, a);\n return o;\n function o(c) {\n return u(c) ? l(c) : a(c);\n }\n function a(c) {\n if (c === null) {\n t.consume(c);\n return;\n }\n return t.enter(\"data\"), t.consume(c), s;\n }\n function s(c) {\n return u(c) ? (t.exit(\"data\"), l(c)) : (t.consume(c), s);\n }\n function u(c) {\n if (c === null)\n return !0;\n const f = i[c];\n let d = -1;\n if (f)\n for (; ++d < f.length; ) {\n const p = f[d];\n if (!p.previous || p.previous.call(r, r.previous))\n return !0;\n }\n return !1;\n }\n }\n}\nfunction Xt(e) {\n return n;\n function n(t, r) {\n let i = -1, l;\n for (; ++i <= t.length; )\n l === void 0 ? t[i] && t[i][1].type === \"data\" && (l = i, i++) : (!t[i] || t[i][1].type !== \"data\") && (i !== l + 2 && (t[l][1].end = t[i - 1][1].end, t.splice(l + 2, i - l - 2), i = l + 2), l = void 0);\n return e ? e(t, r) : t;\n }\n}\nfunction Kl(e, n) {\n let t = 0;\n for (; ++t <= e.length; )\n if ((t === e.length || e[t][1].type === \"lineEnding\") && e[t - 1][1].type === \"data\") {\n const r = e[t - 1][1], i = n.sliceStream(r);\n let l = i.length, o = -1, a = 0, s;\n for (; l--; ) {\n const u = i[l];\n if (typeof u == \"string\") {\n for (o = u.length; u.charCodeAt(o - 1) === 32; )\n a++, o--;\n if (o) break;\n o = -1;\n } else if (u === -2)\n s = !0, a++;\n else if (u !== -1) {\n l++;\n break;\n }\n }\n if (a) {\n const u = {\n type: t === e.length || s || a < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: l ? o : r.start._bufferIndex + o,\n _index: r.start._index + l,\n line: r.end.line,\n column: r.end.column - a,\n offset: r.end.offset - a\n },\n end: {\n ...r.end\n }\n };\n r.end = {\n ...u.start\n }, r.start.offset === r.end.offset ? Object.assign(r, u) : (e.splice(t, 0, [\"enter\", u, n], [\"exit\", u, n]), t += 2);\n }\n t++;\n }\n return e;\n}\nconst Gl = {\n 42: K,\n 43: K,\n 45: K,\n 48: K,\n 49: K,\n 50: K,\n 51: K,\n 52: K,\n 53: K,\n 54: K,\n 55: K,\n 56: K,\n 57: K,\n 62: Ht\n}, Jl = {\n 91: tl\n}, Zl = {\n [-2]: tn,\n [-1]: tn,\n 32: tn\n}, eo = {\n 35: ul,\n 42: Ye,\n 45: [lt, Ye],\n 60: fl,\n 61: lt,\n 95: Ye,\n 96: rt,\n 126: rt\n}, no = {\n 38: Vt,\n 92: Ut\n}, to = {\n [-5]: rn,\n [-4]: rn,\n [-3]: rn,\n 33: Ll,\n 38: Vt,\n 42: xn,\n 60: [Di, kl],\n 91: Dl,\n 92: [ol, Ut],\n 93: Ln,\n 95: xn,\n 96: $i\n}, ro = {\n null: [xn, Yl]\n}, io = {\n null: [42, 95]\n}, lo = {\n null: []\n}, oo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n attentionMarkers: io,\n contentInitial: Jl,\n disable: lo,\n document: Gl,\n flow: eo,\n flowInitial: Zl,\n insideSpan: ro,\n string: no,\n text: to\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction ao(e, n, t) {\n let r = {\n _bufferIndex: -1,\n _index: 0,\n line: t && t.line || 1,\n column: t && t.column || 1,\n offset: t && t.offset || 0\n };\n const i = {}, l = [];\n let o = [], a = [];\n const s = {\n attempt: F(R),\n check: F(y),\n consume: C,\n enter: E,\n exit: N,\n interrupt: F(y, {\n interrupt: !0\n })\n }, u = {\n code: null,\n containerState: {},\n defineSkip: w,\n events: [],\n now: b,\n parser: e,\n previous: null,\n sliceSerialize: d,\n sliceStream: p,\n write: f\n };\n let c = n.tokenize.call(u, s);\n return n.resolveAll && l.push(n), u;\n function f(z) {\n return o = ne(o, z), A(), o[o.length - 1] !== null ? [] : (q(n, 0), u.events = zn(l, u.events, u), u.events);\n }\n function d(z, T) {\n return so(p(z), T);\n }\n function p(z) {\n return uo(o, z);\n }\n function b() {\n const {\n _bufferIndex: z,\n _index: T,\n line: P,\n column: I,\n offset: v\n } = r;\n return {\n _bufferIndex: z,\n _index: T,\n line: P,\n column: I,\n offset: v\n };\n }\n function w(z) {\n i[z.line] = z.column, j();\n }\n function A() {\n let z;\n for (; r._index < o.length; ) {\n const T = o[r._index];\n if (typeof T == \"string\")\n for (z = r._index, r._bufferIndex < 0 && (r._bufferIndex = 0); r._index === z && r._bufferIndex < T.length; )\n x(T.charCodeAt(r._bufferIndex));\n else\n x(T);\n }\n }\n function x(z) {\n c = c(z);\n }\n function C(z) {\n L(z) ? (r.line++, r.column = 1, r.offset += z === -3 ? 2 : 1, j()) : z !== -1 && (r.column++, r.offset++), r._bufferIndex < 0 ? r._index++ : (r._bufferIndex++, r._bufferIndex === // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n o[r._index].length && (r._bufferIndex = -1, r._index++)), u.previous = z;\n }\n function E(z, T) {\n const P = T || {};\n return P.type = z, P.start = b(), u.events.push([\"enter\", P, u]), a.push(P), P;\n }\n function N(z) {\n const T = a.pop();\n return T.end = b(), u.events.push([\"exit\", T, u]), T;\n }\n function R(z, T) {\n q(z, T.from);\n }\n function y(z, T) {\n T.restore();\n }\n function F(z, T) {\n return P;\n function P(I, v, W) {\n let Y, re, pe, h;\n return Array.isArray(I) ? (\n /* c8 ignore next 1 */\n fe(I)\n ) : \"tokenize\" in I ? (\n // Looks like a construct.\n fe([\n /** @type {Construct} */\n I\n ])\n ) : ie(I);\n function ie(Q) {\n return Le;\n function Le(de) {\n const we = de !== null && Q[de], Se = de !== null && Q.null, He = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...Array.isArray(we) ? we : we ? [we] : [],\n ...Array.isArray(Se) ? Se : Se ? [Se] : []\n ];\n return fe(He)(de);\n }\n }\n function fe(Q) {\n return Y = Q, re = 0, Q.length === 0 ? W : m(Q[re]);\n }\n function m(Q) {\n return Le;\n function Le(de) {\n return h = B(), pe = Q, Q.partial || (u.currentConstruct = Q), Q.name && u.parser.constructs.disable.null.includes(Q.name) ? xe() : Q.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n T ? Object.assign(Object.create(u), T) : u,\n s,\n le,\n xe\n )(de);\n }\n }\n function le(Q) {\n return z(pe, h), v;\n }\n function xe(Q) {\n return h.restore(), ++re < Y.length ? m(Y[re]) : W;\n }\n }\n }\n function q(z, T) {\n z.resolveAll && !l.includes(z) && l.push(z), z.resolve && ce(u.events, T, u.events.length - T, z.resolve(u.events.slice(T), u)), z.resolveTo && (u.events = z.resolveTo(u.events, u));\n }\n function B() {\n const z = b(), T = u.previous, P = u.currentConstruct, I = u.events.length, v = Array.from(a);\n return {\n from: I,\n restore: W\n };\n function W() {\n r = z, u.previous = T, u.currentConstruct = P, u.events.length = I, a = v, j();\n }\n }\n function j() {\n r.line in i && r.column < 2 && (r.column = i[r.line], r.offset += i[r.line] - 1);\n }\n}\nfunction uo(e, n) {\n const t = n.start._index, r = n.start._bufferIndex, i = n.end._index, l = n.end._bufferIndex;\n let o;\n if (t === i)\n o = [e[t].slice(r, l)];\n else {\n if (o = e.slice(t, i), r > -1) {\n const a = o[0];\n typeof a == \"string\" ? o[0] = a.slice(r) : o.shift();\n }\n l > 0 && o.push(e[i].slice(0, l));\n }\n return o;\n}\nfunction so(e, n) {\n let t = -1;\n const r = [];\n let i;\n for (; ++t < e.length; ) {\n const l = e[t];\n let o;\n if (typeof l == \"string\")\n o = l;\n else switch (l) {\n case -5: {\n o = \"\\r\";\n break;\n }\n case -4: {\n o = `\n`;\n break;\n }\n case -3: {\n o = `\\r\n`;\n break;\n }\n case -2: {\n o = n ? \" \" : \"\t\";\n break;\n }\n case -1: {\n if (!n && i) continue;\n o = \" \";\n break;\n }\n default:\n o = String.fromCharCode(l);\n }\n i = l === -2, r.push(o);\n }\n return r.join(\"\");\n}\nfunction co(e) {\n const r = {\n constructs: (\n /** @type {FullNormalizedExtension} */\n yi([oo, ...(e || {}).extensions || []])\n ),\n content: i(Ii),\n defined: [],\n document: i(Ti),\n flow: i($l),\n lazy: {},\n string: i(Ql),\n text: i(Xl)\n };\n return r;\n function i(l) {\n return o;\n function o(a) {\n return ao(r, l, a);\n }\n }\n}\nfunction po(e) {\n for (; !qt(e); )\n ;\n return e;\n}\nconst ot = /[\\0\\t\\n\\r]/g;\nfunction fo() {\n let e = 1, n = \"\", t = !0, r;\n return i;\n function i(l, o, a) {\n const s = [];\n let u, c, f, d, p;\n for (l = n + (typeof l == \"string\" ? l.toString() : new TextDecoder(o || void 0).decode(l)), f = 0, n = \"\", t && (l.charCodeAt(0) === 65279 && f++, t = void 0); f < l.length; ) {\n if (ot.lastIndex = f, u = ot.exec(l), d = u && u.index !== void 0 ? u.index : l.length, p = l.charCodeAt(d), !u) {\n n = l.slice(f);\n break;\n }\n if (p === 10 && f === d && r)\n s.push(-3), r = void 0;\n else\n switch (r && (s.push(-5), r = void 0), f < d && (s.push(l.slice(f, d)), e += d - f), p) {\n case 0: {\n s.push(65533), e++;\n break;\n }\n case 9: {\n for (c = Math.ceil(e / 4) * 4, s.push(-2); e++ < c; ) s.push(-1);\n break;\n }\n case 10: {\n s.push(-4), e = 1;\n break;\n }\n default:\n r = !0, e = 1;\n }\n f = d + 1;\n }\n return a && (r && s.push(-5), n && s.push(n), s.push(null)), s;\n }\n}\nconst ho = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\nfunction mo(e) {\n return e.replace(ho, go);\n}\nfunction go(e, n, t) {\n if (n)\n return n;\n if (t.charCodeAt(0) === 35) {\n const i = t.charCodeAt(1), l = i === 120 || i === 88;\n return jt(t.slice(l ? 2 : 1), l ? 16 : 10);\n }\n return Pn(t) || e;\n}\nconst Kt = {}.hasOwnProperty;\nfunction yo(e, n, t) {\n return typeof n != \"string\" && (t = n, n = void 0), xo(t)(po(co(t).document().write(fo()(e, n, !0))));\n}\nfunction xo(e) {\n const n = {\n transforms: [],\n canContainEols: [\"emphasis\", \"fragment\", \"heading\", \"paragraph\", \"strong\"],\n enter: {\n autolink: l(Bn),\n autolinkProtocol: B,\n autolinkEmail: B,\n atxHeading: l(Nn),\n blockQuote: l(Se),\n characterEscape: B,\n characterReference: B,\n codeFenced: l(He),\n codeFencedFenceInfo: o,\n codeFencedFenceMeta: o,\n codeIndented: l(He, o),\n codeText: l(ar, o),\n codeTextData: B,\n data: B,\n codeFlowValue: B,\n definition: l(ur),\n definitionDestinationString: o,\n definitionLabelString: o,\n definitionTitleString: o,\n emphasis: l(sr),\n hardBreakEscape: l(Mn),\n hardBreakTrailing: l(Mn),\n htmlFlow: l(_n, o),\n htmlFlowData: B,\n htmlText: l(_n, o),\n htmlTextData: B,\n image: l(cr),\n label: o,\n link: l(Bn),\n listItem: l(pr),\n listItemValue: d,\n listOrdered: l(jn, f),\n listUnordered: l(jn),\n paragraph: l(fr),\n reference: m,\n referenceString: o,\n resourceDestinationString: o,\n resourceTitleString: o,\n setextHeading: l(Nn),\n strong: l(hr),\n thematicBreak: l(dr)\n },\n exit: {\n atxHeading: s(),\n atxHeadingSequence: R,\n autolink: s(),\n autolinkEmail: we,\n autolinkProtocol: de,\n blockQuote: s(),\n characterEscapeValue: j,\n characterReferenceMarkerHexadecimal: xe,\n characterReferenceMarkerNumeric: xe,\n characterReferenceValue: Q,\n characterReference: Le,\n codeFenced: s(A),\n codeFencedFence: w,\n codeFencedFenceInfo: p,\n codeFencedFenceMeta: b,\n codeFlowValue: j,\n codeIndented: s(x),\n codeText: s(v),\n codeTextData: j,\n data: j,\n definition: s(),\n definitionDestinationString: N,\n definitionLabelString: C,\n definitionTitleString: E,\n emphasis: s(),\n hardBreakEscape: s(T),\n hardBreakTrailing: s(T),\n htmlFlow: s(P),\n htmlFlowData: j,\n htmlText: s(I),\n htmlTextData: j,\n image: s(Y),\n label: pe,\n labelText: re,\n lineEnding: z,\n link: s(W),\n listItem: s(),\n listOrdered: s(),\n listUnordered: s(),\n paragraph: s(),\n referenceString: le,\n resourceDestinationString: h,\n resourceTitleString: ie,\n resource: fe,\n setextHeading: s(q),\n setextHeadingLineSequence: F,\n setextHeadingText: y,\n strong: s(),\n thematicBreak: s()\n }\n };\n Gt(n, (e || {}).mdastExtensions || []);\n const t = {};\n return r;\n function r(g) {\n let S = {\n type: \"root\",\n children: []\n };\n const D = {\n stack: [S],\n tokenStack: [],\n config: n,\n enter: a,\n exit: u,\n buffer: o,\n resume: c,\n data: t\n }, M = [];\n let H = -1;\n for (; ++H < g.length; )\n if (g[H][1].type === \"listOrdered\" || g[H][1].type === \"listUnordered\")\n if (g[H][0] === \"enter\")\n M.push(H);\n else {\n const oe = M.pop();\n H = i(g, oe, H);\n }\n for (H = -1; ++H < g.length; ) {\n const oe = n[g[H][0]];\n Kt.call(oe, g[H][1].type) && oe[g[H][1].type].call(Object.assign({\n sliceSerialize: g[H][2].sliceSerialize\n }, D), g[H][1]);\n }\n if (D.tokenStack.length > 0) {\n const oe = D.tokenStack[D.tokenStack.length - 1];\n (oe[1] || at).call(D, void 0, oe[0]);\n }\n for (S.position = {\n start: ge(g.length > 0 ? g[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: ge(g.length > 0 ? g[g.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n }, H = -1; ++H < n.transforms.length; )\n S = n.transforms[H](S) || S;\n return S;\n }\n function i(g, S, D) {\n let M = S - 1, H = -1, oe = !1, ke, he, ve, De;\n for (; ++M <= D; ) {\n const J = g[M];\n switch (J[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\": {\n J[0] === \"enter\" ? H++ : H--, De = void 0;\n break;\n }\n case \"lineEndingBlank\": {\n J[0] === \"enter\" && (ke && !De && !H && !ve && (ve = M), De = void 0);\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n break;\n default:\n De = void 0;\n }\n if (!H && J[0] === \"enter\" && J[1].type === \"listItemPrefix\" || H === -1 && J[0] === \"exit\" && (J[1].type === \"listUnordered\" || J[1].type === \"listOrdered\")) {\n if (ke) {\n let Ce = M;\n for (he = void 0; Ce--; ) {\n const me = g[Ce];\n if (me[1].type === \"lineEnding\" || me[1].type === \"lineEndingBlank\") {\n if (me[0] === \"exit\") continue;\n he && (g[he][1].type = \"lineEndingBlank\", oe = !0), me[1].type = \"lineEnding\", he = Ce;\n } else if (!(me[1].type === \"linePrefix\" || me[1].type === \"blockQuotePrefix\" || me[1].type === \"blockQuotePrefixWhitespace\" || me[1].type === \"blockQuoteMarker\" || me[1].type === \"listItemIndent\")) break;\n }\n ve && (!he || ve < he) && (ke._spread = !0), ke.end = Object.assign({}, he ? g[he][1].start : J[1].end), g.splice(he || M, 0, [\"exit\", ke, J[2]]), M++, D++;\n }\n if (J[1].type === \"listItemPrefix\") {\n const Ce = {\n type: \"listItem\",\n _spread: !1,\n start: Object.assign({}, J[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: void 0\n };\n ke = Ce, g.splice(M, 0, [\"enter\", Ce, J[2]]), M++, D++, ve = void 0, De = !0;\n }\n }\n }\n return g[S][1]._spread = oe, D;\n }\n function l(g, S) {\n return D;\n function D(M) {\n a.call(this, g(M), M), S && S.call(this, M);\n }\n }\n function o() {\n this.stack.push({\n type: \"fragment\",\n children: []\n });\n }\n function a(g, S, D) {\n this.stack[this.stack.length - 1].children.push(g), this.stack.push(g), this.tokenStack.push([S, D || void 0]), g.position = {\n start: ge(S.start),\n // @ts-expect-error: `end` will be patched later.\n end: void 0\n };\n }\n function s(g) {\n return S;\n function S(D) {\n g && g.call(this, D), u.call(this, D);\n }\n }\n function u(g, S) {\n const D = this.stack.pop(), M = this.tokenStack.pop();\n if (M)\n M[0].type !== g.type && (S ? S.call(this, g, M[0]) : (M[1] || at).call(this, g, M[0]));\n else throw new Error(\"Cannot close `\" + g.type + \"` (\" + Fe({\n start: g.start,\n end: g.end\n }) + \"): it’s not open\");\n D.position.end = ge(g.end);\n }\n function c() {\n return di(this.stack.pop());\n }\n function f() {\n this.data.expectingFirstListItemValue = !0;\n }\n function d(g) {\n if (this.data.expectingFirstListItemValue) {\n const S = this.stack[this.stack.length - 2];\n S.start = Number.parseInt(this.sliceSerialize(g), 10), this.data.expectingFirstListItemValue = void 0;\n }\n }\n function p() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.lang = g;\n }\n function b() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.meta = g;\n }\n function w() {\n this.data.flowCodeInside || (this.buffer(), this.data.flowCodeInside = !0);\n }\n function A() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, \"\"), this.data.flowCodeInside = void 0;\n }\n function x() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g.replace(/(\\r?\\n|\\r)$/g, \"\");\n }\n function C(g) {\n const S = this.resume(), D = this.stack[this.stack.length - 1];\n D.label = S, D.identifier = Te(this.sliceSerialize(g)).toLowerCase();\n }\n function E() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.title = g;\n }\n function N() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.url = g;\n }\n function R(g) {\n const S = this.stack[this.stack.length - 1];\n if (!S.depth) {\n const D = this.sliceSerialize(g).length;\n S.depth = D;\n }\n }\n function y() {\n this.data.setextHeadingSlurpLineEnding = !0;\n }\n function F(g) {\n const S = this.stack[this.stack.length - 1];\n S.depth = this.sliceSerialize(g).codePointAt(0) === 61 ? 1 : 2;\n }\n function q() {\n this.data.setextHeadingSlurpLineEnding = void 0;\n }\n function B(g) {\n const D = this.stack[this.stack.length - 1].children;\n let M = D[D.length - 1];\n (!M || M.type !== \"text\") && (M = mr(), M.position = {\n start: ge(g.start),\n // @ts-expect-error: we’ll add `end` later.\n end: void 0\n }, D.push(M)), this.stack.push(M);\n }\n function j(g) {\n const S = this.stack.pop();\n S.value += this.sliceSerialize(g), S.position.end = ge(g.end);\n }\n function z(g) {\n const S = this.stack[this.stack.length - 1];\n if (this.data.atHardBreak) {\n const D = S.children[S.children.length - 1];\n D.position.end = ge(g.end), this.data.atHardBreak = void 0;\n return;\n }\n !this.data.setextHeadingSlurpLineEnding && n.canContainEols.includes(S.type) && (B.call(this, g), j.call(this, g));\n }\n function T() {\n this.data.atHardBreak = !0;\n }\n function P() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g;\n }\n function I() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g;\n }\n function v() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g;\n }\n function W() {\n const g = this.stack[this.stack.length - 1];\n if (this.data.inReference) {\n const S = this.data.referenceType || \"shortcut\";\n g.type += \"Reference\", g.referenceType = S, delete g.url, delete g.title;\n } else\n delete g.identifier, delete g.label;\n this.data.referenceType = void 0;\n }\n function Y() {\n const g = this.stack[this.stack.length - 1];\n if (this.data.inReference) {\n const S = this.data.referenceType || \"shortcut\";\n g.type += \"Reference\", g.referenceType = S, delete g.url, delete g.title;\n } else\n delete g.identifier, delete g.label;\n this.data.referenceType = void 0;\n }\n function re(g) {\n const S = this.sliceSerialize(g), D = this.stack[this.stack.length - 2];\n D.label = mo(S), D.identifier = Te(S).toLowerCase();\n }\n function pe() {\n const g = this.stack[this.stack.length - 1], S = this.resume(), D = this.stack[this.stack.length - 1];\n if (this.data.inReference = !0, D.type === \"link\") {\n const M = g.children;\n D.children = M;\n } else\n D.alt = S;\n }\n function h() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.url = g;\n }\n function ie() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.title = g;\n }\n function fe() {\n this.data.inReference = void 0;\n }\n function m() {\n this.data.referenceType = \"collapsed\";\n }\n function le(g) {\n const S = this.resume(), D = this.stack[this.stack.length - 1];\n D.label = S, D.identifier = Te(this.sliceSerialize(g)).toLowerCase(), this.data.referenceType = \"full\";\n }\n function xe(g) {\n this.data.characterReferenceType = g.type;\n }\n function Q(g) {\n const S = this.sliceSerialize(g), D = this.data.characterReferenceType;\n let M;\n D ? (M = jt(S, D === \"characterReferenceMarkerNumeric\" ? 10 : 16), this.data.characterReferenceType = void 0) : M = Pn(S);\n const H = this.stack[this.stack.length - 1];\n H.value += M;\n }\n function Le(g) {\n const S = this.stack.pop();\n S.position.end = ge(g.end);\n }\n function de(g) {\n j.call(this, g);\n const S = this.stack[this.stack.length - 1];\n S.url = this.sliceSerialize(g);\n }\n function we(g) {\n j.call(this, g);\n const S = this.stack[this.stack.length - 1];\n S.url = \"mailto:\" + this.sliceSerialize(g);\n }\n function Se() {\n return {\n type: \"blockquote\",\n children: []\n };\n }\n function He() {\n return {\n type: \"code\",\n lang: null,\n meta: null,\n value: \"\"\n };\n }\n function ar() {\n return {\n type: \"inlineCode\",\n value: \"\"\n };\n }\n function ur() {\n return {\n type: \"definition\",\n identifier: \"\",\n label: null,\n title: null,\n url: \"\"\n };\n }\n function sr() {\n return {\n type: \"emphasis\",\n children: []\n };\n }\n function Nn() {\n return {\n type: \"heading\",\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n function Mn() {\n return {\n type: \"break\"\n };\n }\n function _n() {\n return {\n type: \"html\",\n value: \"\"\n };\n }\n function cr() {\n return {\n type: \"image\",\n title: null,\n url: \"\",\n alt: null\n };\n }\n function Bn() {\n return {\n type: \"link\",\n title: null,\n url: \"\",\n children: []\n };\n }\n function jn(g) {\n return {\n type: \"list\",\n ordered: g.type === \"listOrdered\",\n start: null,\n spread: g._spread,\n children: []\n };\n }\n function pr(g) {\n return {\n type: \"listItem\",\n spread: g._spread,\n checked: null,\n children: []\n };\n }\n function fr() {\n return {\n type: \"paragraph\",\n children: []\n };\n }\n function hr() {\n return {\n type: \"strong\",\n children: []\n };\n }\n function mr() {\n return {\n type: \"text\",\n value: \"\"\n };\n }\n function dr() {\n return {\n type: \"thematicBreak\"\n };\n }\n}\nfunction ge(e) {\n return {\n line: e.line,\n column: e.column,\n offset: e.offset\n };\n}\nfunction Gt(e, n) {\n let t = -1;\n for (; ++t < n.length; ) {\n const r = n[t];\n Array.isArray(r) ? Gt(e, r) : ko(e, r);\n }\n}\nfunction ko(e, n) {\n let t;\n for (t in n)\n if (Kt.call(n, t))\n switch (t) {\n case \"canContainEols\": {\n const r = n[t];\n r && e[t].push(...r);\n break;\n }\n case \"transforms\": {\n const r = n[t];\n r && e[t].push(...r);\n break;\n }\n case \"enter\":\n case \"exit\": {\n const r = n[t];\n r && Object.assign(e[t], r);\n break;\n }\n }\n}\nfunction at(e, n) {\n throw e ? new Error(\"Cannot close `\" + e.type + \"` (\" + Fe({\n start: e.start,\n end: e.end\n }) + \"): a different token (`\" + n.type + \"`, \" + Fe({\n start: n.start,\n end: n.end\n }) + \") is open\") : new Error(\"Cannot close document, a token (`\" + n.type + \"`, \" + Fe({\n start: n.start,\n end: n.end\n }) + \") is still open\");\n}\nfunction bo(e) {\n const n = this;\n n.parser = t;\n function t(r) {\n return yo(r, {\n ...n.data(\"settings\"),\n ...e,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: n.data(\"micromarkExtensions\") || [],\n mdastExtensions: n.data(\"fromMarkdownExtensions\") || []\n });\n }\n}\nfunction wo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"blockquote\",\n properties: {},\n children: e.wrap(e.all(n), !0)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction So(e, n) {\n const t = { type: \"element\", tagName: \"br\", properties: {}, children: [] };\n return e.patch(n, t), [e.applyData(n, t), { type: \"text\", value: `\n` }];\n}\nfunction Co(e, n) {\n const t = n.value ? n.value + `\n` : \"\", r = {};\n n.lang && (r.className = [\"language-\" + n.lang]);\n let i = {\n type: \"element\",\n tagName: \"code\",\n properties: r,\n children: [{ type: \"text\", value: t }]\n };\n return n.meta && (i.data = { meta: n.meta }), e.patch(n, i), i = e.applyData(n, i), i = { type: \"element\", tagName: \"pre\", properties: {}, children: [i] }, e.patch(n, i), i;\n}\nfunction Eo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"del\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Io(e, n) {\n const t = {\n type: \"element\",\n tagName: \"em\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Ao(e, n) {\n const t = typeof e.options.clobberPrefix == \"string\" ? e.options.clobberPrefix : \"user-content-\", r = String(n.identifier).toUpperCase(), i = ze(r.toLowerCase()), l = e.footnoteOrder.indexOf(r);\n let o, a = e.footnoteCounts.get(r);\n a === void 0 ? (a = 0, e.footnoteOrder.push(r), o = e.footnoteOrder.length) : o = l + 1, a += 1, e.footnoteCounts.set(r, a);\n const s = {\n type: \"element\",\n tagName: \"a\",\n properties: {\n href: \"#\" + t + \"fn-\" + i,\n id: t + \"fnref-\" + i + (a > 1 ? \"-\" + a : \"\"),\n dataFootnoteRef: !0,\n ariaDescribedBy: [\"footnote-label\"]\n },\n children: [{ type: \"text\", value: String(o) }]\n };\n e.patch(n, s);\n const u = {\n type: \"element\",\n tagName: \"sup\",\n properties: {},\n children: [s]\n };\n return e.patch(n, u), e.applyData(n, u);\n}\nfunction To(e, n) {\n const t = {\n type: \"element\",\n tagName: \"h\" + n.depth,\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Po(e, n) {\n if (e.options.allowDangerousHtml) {\n const t = { type: \"raw\", value: n.value };\n return e.patch(n, t), e.applyData(n, t);\n }\n}\nfunction Jt(e, n) {\n const t = n.referenceType;\n let r = \"]\";\n if (t === \"collapsed\" ? r += \"[]\" : t === \"full\" && (r += \"[\" + (n.label || n.identifier) + \"]\"), n.type === \"imageReference\")\n return [{ type: \"text\", value: \"![\" + n.alt + r }];\n const i = e.all(n), l = i[0];\n l && l.type === \"text\" ? l.value = \"[\" + l.value : i.unshift({ type: \"text\", value: \"[\" });\n const o = i[i.length - 1];\n return o && o.type === \"text\" ? o.value += r : i.push({ type: \"text\", value: r }), i;\n}\nfunction zo(e, n) {\n const t = String(n.identifier).toUpperCase(), r = e.definitionById.get(t);\n if (!r)\n return Jt(e, n);\n const i = { src: ze(r.url || \"\"), alt: n.alt };\n r.title !== null && r.title !== void 0 && (i.title = r.title);\n const l = { type: \"element\", tagName: \"img\", properties: i, children: [] };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Lo(e, n) {\n const t = { src: ze(n.url) };\n n.alt !== null && n.alt !== void 0 && (t.alt = n.alt), n.title !== null && n.title !== void 0 && (t.title = n.title);\n const r = { type: \"element\", tagName: \"img\", properties: t, children: [] };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction vo(e, n) {\n const t = { type: \"text\", value: n.value.replace(/\\r?\\n|\\r/g, \" \") };\n e.patch(n, t);\n const r = {\n type: \"element\",\n tagName: \"code\",\n properties: {},\n children: [t]\n };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction Do(e, n) {\n const t = String(n.identifier).toUpperCase(), r = e.definitionById.get(t);\n if (!r)\n return Jt(e, n);\n const i = { href: ze(r.url || \"\") };\n r.title !== null && r.title !== void 0 && (i.title = r.title);\n const l = {\n type: \"element\",\n tagName: \"a\",\n properties: i,\n children: e.all(n)\n };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Oo(e, n) {\n const t = { href: ze(n.url) };\n n.title !== null && n.title !== void 0 && (t.title = n.title);\n const r = {\n type: \"element\",\n tagName: \"a\",\n properties: t,\n children: e.all(n)\n };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction Ro(e, n, t) {\n const r = e.all(n), i = t ? Fo(t) : Zt(n), l = {}, o = [];\n if (typeof n.checked == \"boolean\") {\n const c = r[0];\n let f;\n c && c.type === \"element\" && c.tagName === \"p\" ? f = c : (f = { type: \"element\", tagName: \"p\", properties: {}, children: [] }, r.unshift(f)), f.children.length > 0 && f.children.unshift({ type: \"text\", value: \" \" }), f.children.unshift({\n type: \"element\",\n tagName: \"input\",\n properties: { type: \"checkbox\", checked: n.checked, disabled: !0 },\n children: []\n }), l.className = [\"task-list-item\"];\n }\n let a = -1;\n for (; ++a < r.length; ) {\n const c = r[a];\n (i || a !== 0 || c.type !== \"element\" || c.tagName !== \"p\") && o.push({ type: \"text\", value: `\n` }), c.type === \"element\" && c.tagName === \"p\" && !i ? o.push(...c.children) : o.push(c);\n }\n const s = r[r.length - 1];\n s && (i || s.type !== \"element\" || s.tagName !== \"p\") && o.push({ type: \"text\", value: `\n` });\n const u = { type: \"element\", tagName: \"li\", properties: l, children: o };\n return e.patch(n, u), e.applyData(n, u);\n}\nfunction Fo(e) {\n let n = !1;\n if (e.type === \"list\") {\n n = e.spread || !1;\n const t = e.children;\n let r = -1;\n for (; !n && ++r < t.length; )\n n = Zt(t[r]);\n }\n return n;\n}\nfunction Zt(e) {\n const n = e.spread;\n return n ?? e.children.length > 1;\n}\nfunction No(e, n) {\n const t = {}, r = e.all(n);\n let i = -1;\n for (typeof n.start == \"number\" && n.start !== 1 && (t.start = n.start); ++i < r.length; ) {\n const o = r[i];\n if (o.type === \"element\" && o.tagName === \"li\" && o.properties && Array.isArray(o.properties.className) && o.properties.className.includes(\"task-list-item\")) {\n t.className = [\"contains-task-list\"];\n break;\n }\n }\n const l = {\n type: \"element\",\n tagName: n.ordered ? \"ol\" : \"ul\",\n properties: t,\n children: e.wrap(r, !0)\n };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Mo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"p\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction _o(e, n) {\n const t = { type: \"root\", children: e.wrap(e.all(n)) };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Bo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"strong\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction jo(e, n) {\n const t = e.all(n), r = t.shift(), i = [];\n if (r) {\n const o = {\n type: \"element\",\n tagName: \"thead\",\n properties: {},\n children: e.wrap([r], !0)\n };\n e.patch(n.children[0], o), i.push(o);\n }\n if (t.length > 0) {\n const o = {\n type: \"element\",\n tagName: \"tbody\",\n properties: {},\n children: e.wrap(t, !0)\n }, a = En(n.children[1]), s = Ot(n.children[n.children.length - 1]);\n a && s && (o.position = { start: a, end: s }), i.push(o);\n }\n const l = {\n type: \"element\",\n tagName: \"table\",\n properties: {},\n children: e.wrap(i, !0)\n };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Ho(e, n, t) {\n const r = t ? t.children : void 0, l = (r ? r.indexOf(n) : 1) === 0 ? \"th\" : \"td\", o = t && t.type === \"table\" ? t.align : void 0, a = o ? o.length : n.children.length;\n let s = -1;\n const u = [];\n for (; ++s < a; ) {\n const f = n.children[s], d = {}, p = o ? o[s] : void 0;\n p && (d.align = p);\n let b = { type: \"element\", tagName: l, properties: d, children: [] };\n f && (b.children = e.all(f), e.patch(f, b), b = e.applyData(f, b)), u.push(b);\n }\n const c = {\n type: \"element\",\n tagName: \"tr\",\n properties: {},\n children: e.wrap(u, !0)\n };\n return e.patch(n, c), e.applyData(n, c);\n}\nfunction Uo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"td\",\n // Assume body cell.\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nconst ut = 9, st = 32;\nfunction Vo(e) {\n const n = String(e), t = /\\r?\\n|\\r/g;\n let r = t.exec(n), i = 0;\n const l = [];\n for (; r; )\n l.push(\n ct(n.slice(i, r.index), i > 0, !0),\n r[0]\n ), i = r.index + r[0].length, r = t.exec(n);\n return l.push(ct(n.slice(i), i > 0, !1)), l.join(\"\");\n}\nfunction ct(e, n, t) {\n let r = 0, i = e.length;\n if (n) {\n let l = e.codePointAt(r);\n for (; l === ut || l === st; )\n r++, l = e.codePointAt(r);\n }\n if (t) {\n let l = e.codePointAt(i - 1);\n for (; l === ut || l === st; )\n i--, l = e.codePointAt(i - 1);\n }\n return i > r ? e.slice(r, i) : \"\";\n}\nfunction qo(e, n) {\n const t = { type: \"text\", value: Vo(String(n.value)) };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction $o(e, n) {\n const t = {\n type: \"element\",\n tagName: \"hr\",\n properties: {},\n children: []\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nconst Wo = {\n blockquote: wo,\n break: So,\n code: Co,\n delete: Eo,\n emphasis: Io,\n footnoteReference: Ao,\n heading: To,\n html: Po,\n imageReference: zo,\n image: Lo,\n inlineCode: vo,\n linkReference: Do,\n link: Oo,\n listItem: Ro,\n list: No,\n paragraph: Mo,\n // @ts-expect-error: root is different, but hard to type.\n root: _o,\n strong: Bo,\n table: jo,\n tableCell: Uo,\n tableRow: Ho,\n text: qo,\n thematicBreak: $o,\n toml: qe,\n yaml: qe,\n definition: qe,\n footnoteDefinition: qe\n};\nfunction qe() {\n}\nconst er = -1, Ge = 0, Me = 1, Qe = 2, vn = 3, Dn = 4, On = 5, Rn = 6, nr = 7, tr = 8, pt = typeof self == \"object\" ? self : globalThis, Yo = (e, n) => {\n const t = (i, l) => (e.set(l, i), i), r = (i) => {\n if (e.has(i))\n return e.get(i);\n const [l, o] = n[i];\n switch (l) {\n case Ge:\n case er:\n return t(o, i);\n case Me: {\n const a = t([], i);\n for (const s of o)\n a.push(r(s));\n return a;\n }\n case Qe: {\n const a = t({}, i);\n for (const [s, u] of o)\n a[r(s)] = r(u);\n return a;\n }\n case vn:\n return t(new Date(o), i);\n case Dn: {\n const { source: a, flags: s } = o;\n return t(new RegExp(a, s), i);\n }\n case On: {\n const a = t(/* @__PURE__ */ new Map(), i);\n for (const [s, u] of o)\n a.set(r(s), r(u));\n return a;\n }\n case Rn: {\n const a = t(/* @__PURE__ */ new Set(), i);\n for (const s of o)\n a.add(r(s));\n return a;\n }\n case nr: {\n const { name: a, message: s } = o;\n return t(new pt[a](s), i);\n }\n case tr:\n return t(BigInt(o), i);\n case \"BigInt\":\n return t(Object(BigInt(o)), i);\n case \"ArrayBuffer\":\n return t(new Uint8Array(o).buffer, o);\n case \"DataView\": {\n const { buffer: a } = new Uint8Array(o);\n return t(new DataView(a), o);\n }\n }\n return t(new pt[l](o), i);\n };\n return r;\n}, ft = (e) => Yo(/* @__PURE__ */ new Map(), e)(0), Ie = \"\", { toString: Qo } = {}, { keys: Xo } = Object, Re = (e) => {\n const n = typeof e;\n if (n !== \"object\" || !e)\n return [Ge, n];\n const t = Qo.call(e).slice(8, -1);\n switch (t) {\n case \"Array\":\n return [Me, Ie];\n case \"Object\":\n return [Qe, Ie];\n case \"Date\":\n return [vn, Ie];\n case \"RegExp\":\n return [Dn, Ie];\n case \"Map\":\n return [On, Ie];\n case \"Set\":\n return [Rn, Ie];\n case \"DataView\":\n return [Me, t];\n }\n return t.includes(\"Array\") ? [Me, t] : t.includes(\"Error\") ? [nr, t] : [Qe, t];\n}, $e = ([e, n]) => e === Ge && (n === \"function\" || n === \"symbol\"), Ko = (e, n, t, r) => {\n const i = (o, a) => {\n const s = r.push(o) - 1;\n return t.set(a, s), s;\n }, l = (o) => {\n if (t.has(o))\n return t.get(o);\n let [a, s] = Re(o);\n switch (a) {\n case Ge: {\n let c = o;\n switch (s) {\n case \"bigint\":\n a = tr, c = o.toString();\n break;\n case \"function\":\n case \"symbol\":\n if (e)\n throw new TypeError(\"unable to serialize \" + s);\n c = null;\n break;\n case \"undefined\":\n return i([er], o);\n }\n return i([a, c], o);\n }\n case Me: {\n if (s) {\n let d = o;\n return s === \"DataView\" ? d = new Uint8Array(o.buffer) : s === \"ArrayBuffer\" && (d = new Uint8Array(o)), i([s, [...d]], o);\n }\n const c = [], f = i([a, c], o);\n for (const d of o)\n c.push(l(d));\n return f;\n }\n case Qe: {\n if (s)\n switch (s) {\n case \"BigInt\":\n return i([s, o.toString()], o);\n case \"Boolean\":\n case \"Number\":\n case \"String\":\n return i([s, o.valueOf()], o);\n }\n if (n && \"toJSON\" in o)\n return l(o.toJSON());\n const c = [], f = i([a, c], o);\n for (const d of Xo(o))\n (e || !$e(Re(o[d]))) && c.push([l(d), l(o[d])]);\n return f;\n }\n case vn:\n return i([a, o.toISOString()], o);\n case Dn: {\n const { source: c, flags: f } = o;\n return i([a, { source: c, flags: f }], o);\n }\n case On: {\n const c = [], f = i([a, c], o);\n for (const [d, p] of o)\n (e || !($e(Re(d)) || $e(Re(p)))) && c.push([l(d), l(p)]);\n return f;\n }\n case Rn: {\n const c = [], f = i([a, c], o);\n for (const d of o)\n (e || !$e(Re(d))) && c.push(l(d));\n return f;\n }\n }\n const { message: u } = o;\n return i([a, { name: s, message: u }], o);\n };\n return l;\n}, ht = (e, { json: n, lossy: t } = {}) => {\n const r = [];\n return Ko(!(n || t), !!n, /* @__PURE__ */ new Map(), r)(e), r;\n}, Xe = typeof structuredClone == \"function\" ? (\n /* c8 ignore start */\n (e, n) => n && (\"json\" in n || \"lossy\" in n) ? ft(ht(e, n)) : structuredClone(e)\n) : (e, n) => ft(ht(e, n));\nfunction Go(e, n) {\n const t = [{ type: \"text\", value: \"↩\" }];\n return n > 1 && t.push({\n type: \"element\",\n tagName: \"sup\",\n properties: {},\n children: [{ type: \"text\", value: String(n) }]\n }), t;\n}\nfunction Jo(e, n) {\n return \"Back to reference \" + (e + 1) + (n > 1 ? \"-\" + n : \"\");\n}\nfunction Zo(e) {\n const n = typeof e.options.clobberPrefix == \"string\" ? e.options.clobberPrefix : \"user-content-\", t = e.options.footnoteBackContent || Go, r = e.options.footnoteBackLabel || Jo, i = e.options.footnoteLabel || \"Footnotes\", l = e.options.footnoteLabelTagName || \"h2\", o = e.options.footnoteLabelProperties || {\n className: [\"sr-only\"]\n }, a = [];\n let s = -1;\n for (; ++s < e.footnoteOrder.length; ) {\n const u = e.footnoteById.get(\n e.footnoteOrder[s]\n );\n if (!u)\n continue;\n const c = e.all(u), f = String(u.identifier).toUpperCase(), d = ze(f.toLowerCase());\n let p = 0;\n const b = [], w = e.footnoteCounts.get(f);\n for (; w !== void 0 && ++p <= w; ) {\n b.length > 0 && b.push({ type: \"text\", value: \" \" });\n let C = typeof t == \"string\" ? t : t(s, p);\n typeof C == \"string\" && (C = { type: \"text\", value: C }), b.push({\n type: \"element\",\n tagName: \"a\",\n properties: {\n href: \"#\" + n + \"fnref-\" + d + (p > 1 ? \"-\" + p : \"\"),\n dataFootnoteBackref: \"\",\n ariaLabel: typeof r == \"string\" ? r : r(s, p),\n className: [\"data-footnote-backref\"]\n },\n children: Array.isArray(C) ? C : [C]\n });\n }\n const A = c[c.length - 1];\n if (A && A.type === \"element\" && A.tagName === \"p\") {\n const C = A.children[A.children.length - 1];\n C && C.type === \"text\" ? C.value += \" \" : A.children.push({ type: \"text\", value: \" \" }), A.children.push(...b);\n } else\n c.push(...b);\n const x = {\n type: \"element\",\n tagName: \"li\",\n properties: { id: n + \"fn-\" + d },\n children: e.wrap(c, !0)\n };\n e.patch(u, x), a.push(x);\n }\n if (a.length !== 0)\n return {\n type: \"element\",\n tagName: \"section\",\n properties: { dataFootnotes: !0, className: [\"footnotes\"] },\n children: [\n {\n type: \"element\",\n tagName: l,\n properties: {\n ...Xe(o),\n id: \"footnote-label\"\n },\n children: [{ type: \"text\", value: i }]\n },\n { type: \"text\", value: `\n` },\n {\n type: \"element\",\n tagName: \"ol\",\n properties: {},\n children: e.wrap(a, !0)\n },\n { type: \"text\", value: `\n` }\n ]\n };\n}\nconst rr = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function(e) {\n if (e == null)\n return ra;\n if (typeof e == \"function\")\n return Je(e);\n if (typeof e == \"object\")\n return Array.isArray(e) ? ea(e) : na(e);\n if (typeof e == \"string\")\n return ta(e);\n throw new Error(\"Expected function, string, or object as test\");\n }\n);\nfunction ea(e) {\n const n = [];\n let t = -1;\n for (; ++t < e.length; )\n n[t] = rr(e[t]);\n return Je(r);\n function r(...i) {\n let l = -1;\n for (; ++l < n.length; )\n if (n[l].apply(this, i)) return !0;\n return !1;\n }\n}\nfunction na(e) {\n const n = (\n /** @type {Record<string, unknown>} */\n e\n );\n return Je(t);\n function t(r) {\n const i = (\n /** @type {Record<string, unknown>} */\n /** @type {unknown} */\n r\n );\n let l;\n for (l in e)\n if (i[l] !== n[l]) return !1;\n return !0;\n }\n}\nfunction ta(e) {\n return Je(n);\n function n(t) {\n return t && t.type === e;\n }\n}\nfunction Je(e) {\n return n;\n function n(t, r, i) {\n return !!(ia(t) && e.call(\n this,\n t,\n typeof r == \"number\" ? r : void 0,\n i || void 0\n ));\n }\n}\nfunction ra() {\n return !0;\n}\nfunction ia(e) {\n return e !== null && typeof e == \"object\" && \"type\" in e;\n}\nconst ir = [], la = !0, mt = !1, oa = \"skip\";\nfunction aa(e, n, t, r) {\n let i;\n typeof n == \"function\" && typeof t != \"function\" ? (r = t, t = n) : i = n;\n const l = rr(i), o = r ? -1 : 1;\n a(e, void 0, [])();\n function a(s, u, c) {\n const f = (\n /** @type {Record<string, unknown>} */\n s && typeof s == \"object\" ? s : {}\n );\n if (typeof f.type == \"string\") {\n const p = (\n // `hast`\n typeof f.tagName == \"string\" ? f.tagName : (\n // `xast`\n typeof f.name == \"string\" ? f.name : void 0\n )\n );\n Object.defineProperty(d, \"name\", {\n value: \"node (\" + (s.type + (p ? \"<\" + p + \">\" : \"\")) + \")\"\n });\n }\n return d;\n function d() {\n let p = ir, b, w, A;\n if ((!n || l(s, u, c[c.length - 1] || void 0)) && (p = ua(t(s, c)), p[0] === mt))\n return p;\n if (\"children\" in s && s.children) {\n const x = (\n /** @type {UnistParent} */\n s\n );\n if (x.children && p[0] !== oa)\n for (w = (r ? x.children.length : -1) + o, A = c.concat(x); w > -1 && w < x.children.length; ) {\n const C = x.children[w];\n if (b = a(C, w, A)(), b[0] === mt)\n return b;\n w = typeof b[1] == \"number\" ? b[1] : w + o;\n }\n }\n return p;\n }\n }\n}\nfunction ua(e) {\n return Array.isArray(e) ? e : typeof e == \"number\" ? [la, e] : e == null ? ir : [e];\n}\nfunction lr(e, n, t, r) {\n let i, l, o;\n typeof n == \"function\" ? (l = void 0, o = n, i = t) : (l = n, o = t, i = r), aa(e, l, a, i);\n function a(s, u) {\n const c = u[u.length - 1], f = c ? c.children.indexOf(s) : void 0;\n return o(s, f, c);\n }\n}\nconst kn = {}.hasOwnProperty, sa = {};\nfunction ca(e, n) {\n const t = n || sa, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), o = { ...Wo, ...t.handlers }, a = {\n all: u,\n applyData: fa,\n definitionById: r,\n footnoteById: i,\n footnoteCounts: l,\n footnoteOrder: [],\n handlers: o,\n one: s,\n options: t,\n patch: pa,\n wrap: ma\n };\n return lr(e, function(c) {\n if (c.type === \"definition\" || c.type === \"footnoteDefinition\") {\n const f = c.type === \"definition\" ? r : i, d = String(c.identifier).toUpperCase();\n f.has(d) || f.set(d, c);\n }\n }), a;\n function s(c, f) {\n const d = c.type, p = a.handlers[d];\n if (kn.call(a.handlers, d) && p)\n return p(a, c, f);\n if (a.options.passThrough && a.options.passThrough.includes(d)) {\n if (\"children\" in c) {\n const { children: w, ...A } = c, x = Xe(A);\n return x.children = a.all(c), x;\n }\n return Xe(c);\n }\n return (a.options.unknownHandler || ha)(a, c, f);\n }\n function u(c) {\n const f = [];\n if (\"children\" in c) {\n const d = c.children;\n let p = -1;\n for (; ++p < d.length; ) {\n const b = a.one(d[p], c);\n if (b) {\n if (p && d[p - 1].type === \"break\" && (!Array.isArray(b) && b.type === \"text\" && (b.value = dt(b.value)), !Array.isArray(b) && b.type === \"element\")) {\n const w = b.children[0];\n w && w.type === \"text\" && (w.value = dt(w.value));\n }\n Array.isArray(b) ? f.push(...b) : f.push(b);\n }\n }\n }\n return f;\n }\n}\nfunction pa(e, n) {\n e.position && (n.position = $r(e));\n}\nfunction fa(e, n) {\n let t = n;\n if (e && e.data) {\n const r = e.data.hName, i = e.data.hChildren, l = e.data.hProperties;\n if (typeof r == \"string\")\n if (t.type === \"element\")\n t.tagName = r;\n else {\n const o = \"children\" in t ? t.children : [t];\n t = { type: \"element\", tagName: r, properties: {}, children: o };\n }\n t.type === \"element\" && l && Object.assign(t.properties, Xe(l)), \"children\" in t && t.children && i !== null && i !== void 0 && (t.children = i);\n }\n return t;\n}\nfunction ha(e, n) {\n const t = n.data || {}, r = \"value\" in n && !(kn.call(t, \"hProperties\") || kn.call(t, \"hChildren\")) ? { type: \"text\", value: n.value } : {\n type: \"element\",\n tagName: \"div\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction ma(e, n) {\n const t = [];\n let r = -1;\n for (n && t.push({ type: \"text\", value: `\n` }); ++r < e.length; )\n r && t.push({ type: \"text\", value: `\n` }), t.push(e[r]);\n return n && e.length > 0 && t.push({ type: \"text\", value: `\n` }), t;\n}\nfunction dt(e) {\n let n = 0, t = e.charCodeAt(n);\n for (; t === 9 || t === 32; )\n n++, t = e.charCodeAt(n);\n return e.slice(n);\n}\nfunction gt(e, n) {\n const t = ca(e, n), r = t.one(e, void 0), i = Zo(t), l = Array.isArray(r) ? { type: \"root\", children: r } : r || { type: \"root\", children: [] };\n return i && l.children.push({ type: \"text\", value: `\n` }, i), l;\n}\nfunction da(e, n) {\n return e && \"run\" in e ? async function(t, r) {\n const i = (\n /** @type {HastRoot} */\n gt(t, { file: r, ...n })\n );\n await e.run(i, r);\n } : function(t, r) {\n return (\n /** @type {HastRoot} */\n gt(t, { file: r, ...e || n })\n );\n };\n}\nfunction yt(e) {\n if (e)\n throw e;\n}\nvar ln, xt;\nfunction ga() {\n if (xt) return ln;\n xt = 1;\n var e = Object.prototype.hasOwnProperty, n = Object.prototype.toString, t = Object.defineProperty, r = Object.getOwnPropertyDescriptor, i = function(u) {\n return typeof Array.isArray == \"function\" ? Array.isArray(u) : n.call(u) === \"[object Array]\";\n }, l = function(u) {\n if (!u || n.call(u) !== \"[object Object]\")\n return !1;\n var c = e.call(u, \"constructor\"), f = u.constructor && u.constructor.prototype && e.call(u.constructor.prototype, \"isPrototypeOf\");\n if (u.constructor && !c && !f)\n return !1;\n var d;\n for (d in u)\n ;\n return typeof d > \"u\" || e.call(u, d);\n }, o = function(u, c) {\n t && c.name === \"__proto__\" ? t(u, c.name, {\n enumerable: !0,\n configurable: !0,\n value: c.newValue,\n writable: !0\n }) : u[c.name] = c.newValue;\n }, a = function(u, c) {\n if (c === \"__proto__\")\n if (e.call(u, c)) {\n if (r)\n return r(u, c).value;\n } else return;\n return u[c];\n };\n return ln = function s() {\n var u, c, f, d, p, b, w = arguments[0], A = 1, x = arguments.length, C = !1;\n for (typeof w == \"boolean\" && (C = w, w = arguments[1] || {}, A = 2), (w == null || typeof w != \"object\" && typeof w != \"function\") && (w = {}); A < x; ++A)\n if (u = arguments[A], u != null)\n for (c in u)\n f = a(w, c), d = a(u, c), w !== d && (C && d && (l(d) || (p = i(d))) ? (p ? (p = !1, b = f && i(f) ? f : []) : b = f && l(f) ? f : {}, o(w, { name: c, newValue: s(C, b, d) })) : typeof d < \"u\" && o(w, { name: c, newValue: d }));\n return w;\n }, ln;\n}\nvar ya = ga();\nconst on = /* @__PURE__ */ Dt(ya);\nfunction bn(e) {\n if (typeof e != \"object\" || e === null)\n return !1;\n const n = Object.getPrototypeOf(e);\n return (n === null || n === Object.prototype || Object.getPrototypeOf(n) === null) && !(Symbol.toStringTag in e) && !(Symbol.iterator in e);\n}\nfunction xa() {\n const e = [], n = { run: t, use: r };\n return n;\n function t(...i) {\n let l = -1;\n const o = i.pop();\n if (typeof o != \"function\")\n throw new TypeError(\"Expected function as last argument, not \" + o);\n a(null, ...i);\n function a(s, ...u) {\n const c = e[++l];\n let f = -1;\n if (s) {\n o(s);\n return;\n }\n for (; ++f < i.length; )\n (u[f] === null || u[f] === void 0) && (u[f] = i[f]);\n i = u, c ? ka(c, a)(...u) : o(null, ...u);\n }\n }\n function r(i) {\n if (typeof i != \"function\")\n throw new TypeError(\n \"Expected `middelware` to be a function, not \" + i\n );\n return e.push(i), n;\n }\n}\nfunction ka(e, n) {\n let t;\n return r;\n function r(...o) {\n const a = e.length > o.length;\n let s;\n a && o.push(i);\n try {\n s = e.apply(this, o);\n } catch (u) {\n const c = (\n /** @type {Error} */\n u\n );\n if (a && t)\n throw c;\n return i(c);\n }\n a || (s && s.then && typeof s.then == \"function\" ? s.then(l, i) : s instanceof Error ? i(s) : l(s));\n }\n function i(o, ...a) {\n t || (t = !0, n(o, ...a));\n }\n function l(o) {\n i(null, o);\n }\n}\nconst ue = { basename: ba, dirname: wa, extname: Sa, join: Ca, sep: \"/\" };\nfunction ba(e, n) {\n if (n !== void 0 && typeof n != \"string\")\n throw new TypeError('\"ext\" argument must be a string');\n je(e);\n let t = 0, r = -1, i = e.length, l;\n if (n === void 0 || n.length === 0 || n.length > e.length) {\n for (; i--; )\n if (e.codePointAt(i) === 47) {\n if (l) {\n t = i + 1;\n break;\n }\n } else r < 0 && (l = !0, r = i + 1);\n return r < 0 ? \"\" : e.slice(t, r);\n }\n if (n === e)\n return \"\";\n let o = -1, a = n.length - 1;\n for (; i--; )\n if (e.codePointAt(i) === 47) {\n if (l) {\n t = i + 1;\n break;\n }\n } else\n o < 0 && (l = !0, o = i + 1), a > -1 && (e.codePointAt(i) === n.codePointAt(a--) ? a < 0 && (r = i) : (a = -1, r = o));\n return t === r ? r = o : r < 0 && (r = e.length), e.slice(t, r);\n}\nfunction wa(e) {\n if (je(e), e.length === 0)\n return \".\";\n let n = -1, t = e.length, r;\n for (; --t; )\n if (e.codePointAt(t) === 47) {\n if (r) {\n n = t;\n break;\n }\n } else r || (r = !0);\n return n < 0 ? e.codePointAt(0) === 47 ? \"/\" : \".\" : n === 1 && e.codePointAt(0) === 47 ? \"//\" : e.slice(0, n);\n}\nfunction Sa(e) {\n je(e);\n let n = e.length, t = -1, r = 0, i = -1, l = 0, o;\n for (; n--; ) {\n const a = e.codePointAt(n);\n if (a === 47) {\n if (o) {\n r = n + 1;\n break;\n }\n continue;\n }\n t < 0 && (o = !0, t = n + 1), a === 46 ? i < 0 ? i = n : l !== 1 && (l = 1) : i > -1 && (l = -1);\n }\n return i < 0 || t < 0 || // We saw a non-dot character immediately before the dot.\n l === 0 || // The (right-most) trimmed path component is exactly `..`.\n l === 1 && i === t - 1 && i === r + 1 ? \"\" : e.slice(i, t);\n}\nfunction Ca(...e) {\n let n = -1, t;\n for (; ++n < e.length; )\n je(e[n]), e[n] && (t = t === void 0 ? e[n] : t + \"/\" + e[n]);\n return t === void 0 ? \".\" : Ea(t);\n}\nfunction Ea(e) {\n je(e);\n const n = e.codePointAt(0) === 47;\n let t = Ia(e, !n);\n return t.length === 0 && !n && (t = \".\"), t.length > 0 && e.codePointAt(e.length - 1) === 47 && (t += \"/\"), n ? \"/\" + t : t;\n}\nfunction Ia(e, n) {\n let t = \"\", r = 0, i = -1, l = 0, o = -1, a, s;\n for (; ++o <= e.length; ) {\n if (o < e.length)\n a = e.codePointAt(o);\n else {\n if (a === 47)\n break;\n a = 47;\n }\n if (a === 47) {\n if (!(i === o - 1 || l === 1)) if (i !== o - 1 && l === 2) {\n if (t.length < 2 || r !== 2 || t.codePointAt(t.length - 1) !== 46 || t.codePointAt(t.length - 2) !== 46) {\n if (t.length > 2) {\n if (s = t.lastIndexOf(\"/\"), s !== t.length - 1) {\n s < 0 ? (t = \"\", r = 0) : (t = t.slice(0, s), r = t.length - 1 - t.lastIndexOf(\"/\")), i = o, l = 0;\n continue;\n }\n } else if (t.length > 0) {\n t = \"\", r = 0, i = o, l = 0;\n continue;\n }\n }\n n && (t = t.length > 0 ? t + \"/..\" : \"..\", r = 2);\n } else\n t.length > 0 ? t += \"/\" + e.slice(i + 1, o) : t = e.slice(i + 1, o), r = o - i - 1;\n i = o, l = 0;\n } else a === 46 && l > -1 ? l++ : l = -1;\n }\n return t;\n}\nfunction je(e) {\n if (typeof e != \"string\")\n throw new TypeError(\n \"Path must be a string. Received \" + JSON.stringify(e)\n );\n}\nconst Aa = { cwd: Ta };\nfunction Ta() {\n return \"/\";\n}\nfunction wn(e) {\n return !!(e !== null && typeof e == \"object\" && \"href\" in e && e.href && \"protocol\" in e && e.protocol && // @ts-expect-error: indexing is fine.\n e.auth === void 0);\n}\nfunction Pa(e) {\n if (typeof e == \"string\")\n e = new URL(e);\n else if (!wn(e)) {\n const n = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' + e + \"`\"\n );\n throw n.code = \"ERR_INVALID_ARG_TYPE\", n;\n }\n if (e.protocol !== \"file:\") {\n const n = new TypeError(\"The URL must be of scheme file\");\n throw n.code = \"ERR_INVALID_URL_SCHEME\", n;\n }\n return za(e);\n}\nfunction za(e) {\n if (e.hostname !== \"\") {\n const r = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n );\n throw r.code = \"ERR_INVALID_FILE_URL_HOST\", r;\n }\n const n = e.pathname;\n let t = -1;\n for (; ++t < n.length; )\n if (n.codePointAt(t) === 37 && n.codePointAt(t + 1) === 50) {\n const r = n.codePointAt(t + 2);\n if (r === 70 || r === 102) {\n const i = new TypeError(\n \"File URL path must not include encoded / characters\"\n );\n throw i.code = \"ERR_INVALID_FILE_URL_PATH\", i;\n }\n }\n return decodeURIComponent(n);\n}\nconst an = (\n /** @type {const} */\n [\n \"history\",\n \"path\",\n \"basename\",\n \"stem\",\n \"extname\",\n \"dirname\"\n ]\n);\nclass or {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(n) {\n let t;\n n ? wn(n) ? t = { path: n } : typeof n == \"string\" || La(n) ? t = { value: n } : t = n : t = {}, this.cwd = \"cwd\" in t ? \"\" : Aa.cwd(), this.data = {}, this.history = [], this.messages = [], this.value, this.map, this.result, this.stored;\n let r = -1;\n for (; ++r < an.length; ) {\n const l = an[r];\n l in t && t[l] !== void 0 && t[l] !== null && (this[l] = l === \"history\" ? [...t[l]] : t[l]);\n }\n let i;\n for (i in t)\n an.includes(i) || (this[i] = t[i]);\n }\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path == \"string\" ? ue.basename(this.path) : void 0;\n }\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(n) {\n sn(n, \"basename\"), un(n, \"basename\"), this.path = ue.join(this.dirname || \"\", n);\n }\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path == \"string\" ? ue.dirname(this.path) : void 0;\n }\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(n) {\n kt(this.basename, \"dirname\"), this.path = ue.join(n || \"\", this.basename);\n }\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path == \"string\" ? ue.extname(this.path) : void 0;\n }\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(n) {\n if (un(n, \"extname\"), kt(this.dirname, \"extname\"), n) {\n if (n.codePointAt(0) !== 46)\n throw new Error(\"`extname` must start with `.`\");\n if (n.includes(\".\", 1))\n throw new Error(\"`extname` cannot contain multiple dots\");\n }\n this.path = ue.join(this.dirname, this.stem + (n || \"\"));\n }\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1];\n }\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(n) {\n wn(n) && (n = Pa(n)), sn(n, \"path\"), this.path !== n && this.history.push(n);\n }\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path == \"string\" ? ue.basename(this.path, this.extname) : void 0;\n }\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(n) {\n sn(n, \"stem\"), un(n, \"stem\"), this.path = ue.join(this.dirname || \"\", n + (this.extname || \"\"));\n }\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(n, t, r) {\n const i = this.message(n, t, r);\n throw i.fatal = !0, i;\n }\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(n, t, r) {\n const i = this.message(n, t, r);\n return i.fatal = void 0, i;\n }\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(n, t, r) {\n const i = new X(\n // @ts-expect-error: the overloads are fine.\n n,\n t,\n r\n );\n return this.path && (i.name = this.path + \":\" + i.name, i.file = this.path), i.fatal = !1, this.messages.push(i), i;\n }\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(n) {\n return this.value === void 0 ? \"\" : typeof this.value == \"string\" ? this.value : new TextDecoder(n || void 0).decode(this.value);\n }\n}\nfunction un(e, n) {\n if (e && e.includes(ue.sep))\n throw new Error(\n \"`\" + n + \"` cannot be a path: did not expect `\" + ue.sep + \"`\"\n );\n}\nfunction sn(e, n) {\n if (!e)\n throw new Error(\"`\" + n + \"` cannot be empty\");\n}\nfunction kt(e, n) {\n if (!e)\n throw new Error(\"Setting `\" + n + \"` requires `path` to be set too\");\n}\nfunction La(e) {\n return !!(e && typeof e == \"object\" && \"byteLength\" in e && \"byteOffset\" in e);\n}\nconst va = (\n /**\n * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n /** @type {unknown} */\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array<unknown>) => unknown}\n */\n function(e) {\n const r = (\n /** @type {Record<string | symbol, Function>} */\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n this.constructor.prototype\n ), i = r[e], l = function() {\n return i.apply(l, arguments);\n };\n return Object.setPrototypeOf(l, r), l;\n }\n), Da = {}.hasOwnProperty;\nclass Fn extends va {\n /**\n * Create a processor.\n */\n constructor() {\n super(\"copy\"), this.Compiler = void 0, this.Parser = void 0, this.attachers = [], this.compiler = void 0, this.freezeIndex = -1, this.frozen = void 0, this.namespace = {}, this.parser = void 0, this.transformers = xa();\n }\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n const n = (\n /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */\n new Fn()\n );\n let t = -1;\n for (; ++t < this.attachers.length; ) {\n const r = this.attachers[t];\n n.use(...r);\n }\n return n.data(on(!0, {}, this.namespace)), n;\n }\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(n, t) {\n return typeof n == \"string\" ? arguments.length === 2 ? (fn(\"data\", this.frozen), this.namespace[n] = t, this) : Da.call(this.namespace, n) && this.namespace[n] || void 0 : n ? (fn(\"data\", this.frozen), this.namespace = n, this) : this.namespace;\n }\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * The current processor.\n */\n freeze() {\n if (this.frozen)\n return this;\n const n = (\n /** @type {Processor} */\n /** @type {unknown} */\n this\n );\n for (; ++this.freezeIndex < this.attachers.length; ) {\n const [t, ...r] = this.attachers[this.freezeIndex];\n if (r[0] === !1)\n continue;\n r[0] === !0 && (r[0] = void 0);\n const i = t.call(n, ...r);\n typeof i == \"function\" && this.transformers.use(i);\n }\n return this.frozen = !0, this.freezeIndex = Number.POSITIVE_INFINITY, this;\n }\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(n) {\n this.freeze();\n const t = We(n), r = this.parser || this.Parser;\n return cn(\"parse\", r), r(String(t), t);\n }\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise<VFileWithOutput<CompileResult>>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n * Callback (optional).\n * @returns {Promise<VFile> | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(n, t) {\n const r = this;\n return this.freeze(), cn(\"process\", this.parser || this.Parser), pn(\"process\", this.compiler || this.Compiler), t ? i(void 0, t) : new Promise(i);\n function i(l, o) {\n const a = We(n), s = (\n /** @type {HeadTree extends undefined ? Node : HeadTree} */\n /** @type {unknown} */\n r.parse(a)\n );\n r.run(s, a, function(c, f, d) {\n if (c || !f || !d)\n return u(c);\n const p = (\n /** @type {CompileTree extends undefined ? Node : CompileTree} */\n /** @type {unknown} */\n f\n ), b = r.stringify(p, d);\n Fa(b) ? d.value = b : d.result = b, u(\n c,\n /** @type {VFileWithOutput<CompileResult>} */\n d\n );\n });\n function u(c, f) {\n c || !f ? o(c) : l ? l(f) : t(void 0, f);\n }\n }\n }\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput<CompileResult>}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(n) {\n let t = !1, r;\n return this.freeze(), cn(\"processSync\", this.parser || this.Parser), pn(\"processSync\", this.compiler || this.Compiler), this.process(n, i), wt(\"processSync\", \"process\", t), r;\n function i(l, o) {\n t = !0, yt(l), r = o;\n }\n }\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback<TailTree extends undefined ? Node : TailTree> |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n * Callback (optional).\n * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(n, t, r) {\n bt(n), this.freeze();\n const i = this.transformers;\n return !r && typeof t == \"function\" && (r = t, t = void 0), r ? l(void 0, r) : new Promise(l);\n function l(o, a) {\n const s = We(t);\n i.run(n, s, u);\n function u(c, f, d) {\n const p = (\n /** @type {TailTree extends undefined ? Node : TailTree} */\n f || n\n );\n c ? a(c) : o ? o(p) : r(void 0, p, d);\n }\n }\n }\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(n, t) {\n let r = !1, i;\n return this.run(n, t, l), wt(\"runSync\", \"run\", r), i;\n function l(o, a) {\n yt(o), i = a, r = !0;\n }\n }\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(n, t) {\n this.freeze();\n const r = We(t), i = this.compiler || this.Compiler;\n return pn(\"stringify\", i), bt(n), i(n, r);\n }\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array<unknown>} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Plugin<Parameters, Input, Output>} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * Current processor.\n */\n use(n, ...t) {\n const r = this.attachers, i = this.namespace;\n if (fn(\"use\", this.frozen), n != null) if (typeof n == \"function\")\n s(n, t);\n else if (typeof n == \"object\")\n Array.isArray(n) ? a(n) : o(n);\n else\n throw new TypeError(\"Expected usable value, not `\" + n + \"`\");\n return this;\n function l(u) {\n if (typeof u == \"function\")\n s(u, []);\n else if (typeof u == \"object\")\n if (Array.isArray(u)) {\n const [c, ...f] = (\n /** @type {PluginTuple<Array<unknown>>} */\n u\n );\n s(c, f);\n } else\n o(u);\n else\n throw new TypeError(\"Expected usable value, not `\" + u + \"`\");\n }\n function o(u) {\n if (!(\"plugins\" in u) && !(\"settings\" in u))\n throw new Error(\n \"Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither\"\n );\n a(u.plugins), u.settings && (i.settings = on(!0, i.settings, u.settings));\n }\n function a(u) {\n let c = -1;\n if (u != null) if (Array.isArray(u))\n for (; ++c < u.length; ) {\n const f = u[c];\n l(f);\n }\n else\n throw new TypeError(\"Expected a list of plugins, not `\" + u + \"`\");\n }\n function s(u, c) {\n let f = -1, d = -1;\n for (; ++f < r.length; )\n if (r[f][0] === u) {\n d = f;\n break;\n }\n if (d === -1)\n r.push([u, ...c]);\n else if (c.length > 0) {\n let [p, ...b] = c;\n const w = r[d][1];\n bn(w) && bn(p) && (p = on(!0, w, p)), r[d] = [u, p, ...b];\n }\n }\n }\n}\nconst Oa = new Fn().freeze();\nfunction cn(e, n) {\n if (typeof n != \"function\")\n throw new TypeError(\"Cannot `\" + e + \"` without `parser`\");\n}\nfunction pn(e, n) {\n if (typeof n != \"function\")\n throw new TypeError(\"Cannot `\" + e + \"` without `compiler`\");\n}\nfunction fn(e, n) {\n if (n)\n throw new Error(\n \"Cannot call `\" + e + \"` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.\"\n );\n}\nfunction bt(e) {\n if (!bn(e) || typeof e.type != \"string\")\n throw new TypeError(\"Expected node, got `\" + e + \"`\");\n}\nfunction wt(e, n, t) {\n if (!t)\n throw new Error(\n \"`\" + e + \"` finished async. Use `\" + n + \"` instead\"\n );\n}\nfunction We(e) {\n return Ra(e) ? e : new or(e);\n}\nfunction Ra(e) {\n return !!(e && typeof e == \"object\" && \"message\" in e && \"messages\" in e);\n}\nfunction Fa(e) {\n return typeof e == \"string\" || Na(e);\n}\nfunction Na(e) {\n return !!(e && typeof e == \"object\" && \"byteLength\" in e && \"byteOffset\" in e);\n}\nconst Ma = \"https://github.com/remarkjs/react-markdown/blob/main/changelog.md\", St = [], Ct = { allowDangerousHtml: !0 }, _a = /^(https?|ircs?|mailto|xmpp)$/i, Ba = [\n { from: \"astPlugins\", id: \"remove-buggy-html-in-markdown-parser\" },\n { from: \"allowDangerousHtml\", id: \"remove-buggy-html-in-markdown-parser\" },\n {\n from: \"allowNode\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"allowElement\"\n },\n {\n from: \"allowedTypes\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"allowedElements\"\n },\n {\n from: \"disallowedTypes\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"disallowedElements\"\n },\n { from: \"escapeHtml\", id: \"remove-buggy-html-in-markdown-parser\" },\n { from: \"includeElementIndex\", id: \"#remove-includeelementindex\" },\n {\n from: \"includeNodeIndex\",\n id: \"change-includenodeindex-to-includeelementindex\"\n },\n { from: \"linkTarget\", id: \"remove-linktarget\" },\n { from: \"plugins\", id: \"change-plugins-to-remarkplugins\", to: \"remarkPlugins\" },\n { from: \"rawSourcePos\", id: \"#remove-rawsourcepos\" },\n { from: \"renderers\", id: \"change-renderers-to-components\", to: \"components\" },\n { from: \"source\", id: \"change-source-to-children\", to: \"children\" },\n { from: \"sourcePos\", id: \"#remove-sourcepos\" },\n { from: \"transformImageUri\", id: \"#add-urltransform\", to: \"urlTransform\" },\n { from: \"transformLinkUri\", id: \"#add-urltransform\", to: \"urlTransform\" }\n];\nfunction ja(e) {\n const n = e.allowedElements, t = e.allowElement, r = e.children || \"\", i = e.className, l = e.components, o = e.disallowedElements, a = e.rehypePlugins || St, s = e.remarkPlugins || St, u = e.remarkRehypeOptions ? { ...e.remarkRehypeOptions, ...Ct } : Ct, c = e.skipHtml, f = e.unwrapDisallowed, d = e.urlTransform || Ha, p = Oa().use(bo).use(s).use(da, u).use(a), b = new or();\n typeof r == \"string\" && (b.value = r);\n for (const C of Ba)\n Object.hasOwn(e, C.from) && (\"\" + C.from + (C.to ? \"use `\" + C.to + \"` instead\" : \"remove it\") + Ma + C.id, void 0);\n const w = p.parse(b);\n let A = p.runSync(w, b);\n return i && (A = {\n type: \"element\",\n tagName: \"div\",\n properties: { className: i },\n // Assume no doctypes.\n children: (\n /** @type {Array<ElementContent>} */\n A.type === \"root\" ? A.children : [A]\n )\n }), lr(A, x), Gr(A, {\n Fragment: Sr,\n // @ts-expect-error\n // React components are allowed to return numbers,\n // but not according to the types in hast-util-to-jsx-runtime\n components: l,\n ignoreInvalidStyle: !0,\n jsx: ae,\n jsxs: wr,\n passKeys: !0,\n passNode: !0\n });\n function x(C, E, N) {\n if (C.type === \"raw\" && N && typeof E == \"number\")\n return c ? N.children.splice(E, 1) : N.children[E] = { type: \"text\", value: C.value }, E;\n if (C.type === \"element\") {\n let R;\n for (R in nn)\n if (Object.hasOwn(nn, R) && Object.hasOwn(C.properties, R)) {\n const y = C.properties[R], F = nn[R];\n (F === null || F.includes(C.tagName)) && (C.properties[R] = d(String(y || \"\"), R, C));\n }\n }\n if (C.type === \"element\") {\n let R = n ? !n.includes(C.tagName) : o ? o.includes(C.tagName) : !1;\n if (!R && t && typeof E == \"number\" && (R = !t(C, E, N)), R && N && typeof E == \"number\")\n return f && C.children ? N.children.splice(E, 1, ...C.children) : N.children.splice(E, 1), E;\n }\n }\n}\nfunction Ha(e) {\n const n = e.indexOf(\":\"), t = e.indexOf(\"?\"), r = e.indexOf(\"#\"), i = e.indexOf(\"/\");\n return (\n // If there is no protocol, it’s relative.\n n === -1 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n i !== -1 && n > i || t !== -1 && n > t || r !== -1 && n > r || // It is a protocol, it should be allowed.\n _a.test(e.slice(0, n)) ? e : \"\"\n );\n}\nconst Ua = ({ children: e }) => /* @__PURE__ */ ae(\"div\", { style: { whiteSpace: \"normal\" }, children: /* @__PURE__ */ ae(\n ja,\n {\n components: {\n p: ({ ...t }) => /* @__PURE__ */ ae(\n \"p\",\n {\n style: {\n margin: 0,\n marginBottom: \"0.5em\",\n lineHeight: 1.4,\n textAlign: \"left\"\n },\n children: t.children\n }\n ),\n ul: ({ ...t }) => /* @__PURE__ */ ae(\n \"ul\",\n {\n style: {\n paddingLeft: \"clamp(8px, 3.5vw, 16px)\",\n margin: 0,\n listStylePosition: \"inside\"\n // KEY CHANGE\n },\n children: t.children\n }\n ),\n ol: ({ ...t }) => /* @__PURE__ */ ae(\n \"ol\",\n {\n style: {\n paddingLeft: \"clamp(8px, 3.5vw, 16px)\",\n margin: 0,\n listStylePosition: \"inside\"\n // KEY CHANGE\n },\n children: t.children\n }\n ),\n // KEY CHANGE: Remove custom bullet rendering, let browser handle bullets & numbers\n li: ({ ...t }) => /* @__PURE__ */ ae(\n \"li\",\n {\n style: {\n marginBottom: \"1px\",\n lineHeight: 1.4\n },\n children: t.children\n }\n ),\n code({ inline: t, children: r }) {\n return t ? /* @__PURE__ */ ae(\n \"code\",\n {\n style: {\n backgroundColor: \"rgba(0, 0, 0, 0.3)\",\n padding: \"2px 4px\",\n borderRadius: \"4px\",\n fontFamily: \"inherit\",\n fontSize: \"0.95em\"\n },\n children: r\n }\n ) : /* @__PURE__ */ ae(\n \"pre\",\n {\n style: {\n backgroundColor: \"rgba(0, 0, 0, 0.3)\",\n padding: \"8px\",\n borderRadius: \"4px\",\n overflowX: \"auto\",\n margin: \"0.5em 0\",\n whiteSpace: \"pre-wrap\"\n // preserve line breaks\n },\n children: /* @__PURE__ */ ae(\"code\", { children: r })\n }\n );\n },\n blockquote: ({ ...t }) => /* @__PURE__ */ ae(\n \"blockquote\",\n {\n style: {\n margin: 0,\n paddingLeft: \"10px\",\n borderLeft: \"2px solid #ccc\",\n color: \"#666\",\n fontStyle: \"italic\"\n },\n children: t.children\n }\n )\n },\n children: typeof e == \"string\" ? e : \"\"\n }\n) }), Va = {\n autoConfig: !0\n}, qa = (e, n, t) => {\n var i;\n if (typeof e.data.message.content != \"string\" || !e.detail.currPath)\n return !1;\n const r = n[e.detail.currPath];\n return r ? ((i = r.renderMarkdown) == null ? void 0 : i.map((l) => l.toUpperCase()).includes(t)) ?? !1 : !1;\n}, $a = (e) => {\n const { getFlow: n } = yr(), { messages: t, replaceMessages: r } = xr(), { settings: i } = kr(), { hasChatHistoryLoaded: l } = br(), o = { ...e, ...Va }, a = o.markdownComponent ? o.markdownComponent : Ua;\n gr(() => {\n var c, f;\n if (l) {\n const d = [...t];\n for (let p = 0; p < d.length && p < (((c = i.chatHistory) == null ? void 0 : c.maxEntries) ?? 30); p++) {\n const b = d[p];\n (f = b.tags) != null && f.includes(\"rcb-markdown-renderer-plugin:parsed\") && (b.contentWrapper = a);\n }\n r(d);\n }\n }, [l]);\n const s = async (c) => {\n var d;\n const f = (d = c.data.message) == null ? void 0 : d.sender.toUpperCase();\n qa(c, n(), f) && (c.data.message.contentWrapper = a, c.data.message.tags || (c.data.message.tags = []), c.data.message.tags.push(\"rcb-markdown-renderer-plugin:parsed\"));\n };\n Ue(Ve.PRE_INJECT_MESSAGE, s), Ue(Ve.CHUNK_STREAM_MESSAGE, s), Ue(Ve.START_STREAM_MESSAGE, s), Ue(Ve.START_SIMULATE_STREAM_MESSAGE, s);\n const u = {\n name: \"@rcb-plugins/markdown-renderer\"\n };\n return o != null && o.autoConfig && (u.settings = {\n event: {\n rcbPreInjectMessage: !0,\n rcbChunkStreamMessage: !0,\n rcbStartSimulateStreamMessage: !0,\n rcbStartStreamMessage: !0\n }\n }), u;\n}, Xa = (e) => () => $a(e);\nexport {\n Xa as default\n};\n","import { useState as A, useRef as U, useEffect as B } from \"react\";\nimport { useToasts as E, useFlow as C, useStyles as I, useOnRcbEvent as f, RcbEvent as h } from \"react-chatbotify\";\nconst i = {\n autoConfig: !0,\n // defaults to true to help users enable required events\n promptBaseColors: {\n info: \"#007bff\",\n warning: \"#ffc107\",\n error: \"#dc3545\",\n success: \"#28a745\"\n },\n promptHoveredColors: {\n info: \"#0056b3\",\n warning: \"#d39e00\",\n error: \"#c82333\",\n success: \"#218838\"\n },\n textAreaHighlightColors: {\n info: \"#007bff\",\n warning: \"#ffc107\",\n error: \"#dc3545\",\n success: \"#28a745\"\n }\n}, R = (t) => ({\n ...i,\n ...t,\n promptBaseColors: {\n ...i.promptBaseColors,\n ...t == null ? void 0 : t.promptBaseColors\n },\n promptHoveredColors: {\n ...i.promptHoveredColors,\n ...t == null ? void 0 : t.promptHoveredColors\n },\n textAreaHighlightColors: {\n ...i.textAreaHighlightColors,\n ...t == null ? void 0 : t.textAreaHighlightColors\n }\n}), w = (t, e) => {\n const r = t.promptType ?? \"info\";\n let o = {};\n return e.advancedStyles && (o = e.advancedStyles[r]), e.promptBaseColors && (o.toastPromptStyle = {\n color: e.promptBaseColors[r],\n borderColor: e.promptBaseColors[r]\n }), e.promptHoveredColors && (o.toastPromptHoveredStyle = {\n color: e.promptHoveredColors[r],\n borderColor: e.promptHoveredColors[r]\n }), e.textAreaHighlightColors && (t.highlightTextArea ?? !0) && (o.chatInputAreaStyle = {\n boxShadow: `${e.textAreaHighlightColors[r]} 0px 0px 5px`\n }), o;\n}, y = (t, e, r = \"validateTextInput\") => {\n var l;\n if (!((l = t.detail) != null && l.currPath))\n return;\n const o = e[t.detail.currPath];\n if (!o)\n return;\n const u = o[r];\n return typeof u == \"function\" ? u : void 0;\n}, F = (t) => {\n const { showToast: e } = E(), { getFlow: r } = C(), { styles: o, updateStyles: u, replaceStyles: l } = I(), S = R(t), [m, v] = A(0), b = U({}), P = (a) => {\n const n = a, p = y(n, r(), \"validateTextInput\");\n if (!p)\n return;\n const s = p(n.data.inputText);\n if (s != null && s.success || a.preventDefault(), !s.promptContent)\n return;\n m === 0 && (b.current = structuredClone(o));\n const c = w(s, S);\n u(c), e(s.promptContent, s.promptDuration ?? 3e3), v((d) => d + 1);\n }, H = (a) => {\n var d, x;\n const n = a, p = (x = (d = n.data) == null ? void 0 : d.files) == null ? void 0 : x[0];\n if (!p) {\n console.error(\"No file uploaded.\"), a.preventDefault();\n return;\n }\n const s = y(n, r(), \"validateFileInput\");\n if (!s) {\n console.error(\"Validator not found for file input.\");\n return;\n }\n const c = s(p);\n if (!c.success) {\n console.error(\"Validation failed:\", c), c.promptContent && e(c.promptContent, c.promptDuration ?? 3e3), a.preventDefault();\n return;\n }\n console.log(\"Validation successful:\", c);\n }, D = () => {\n v((a) => a - 1);\n };\n f(h.USER_SUBMIT_TEXT, P), f(h.USER_UPLOAD_FILE, H), f(h.DISMISS_TOAST, D), B(() => {\n m === 0 && setTimeout(() => {\n l(b.current);\n });\n }, [m, l]);\n const T = {\n name: \"@rcb-plugins/input-validator\"\n };\n return S.autoConfig && (T.settings = {\n event: {\n rcbUserSubmitText: !0,\n rcbUserUploadFile: !0,\n rcbDismissToast: !0\n }\n }), T;\n}, M = (t) => () => F(t);\nexport {\n M as default\n};\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","export const DEFAULT_CONFIG = {\n LOGIN_URL: '/login',\n WELCOME_MESSAGE: 'Hello! What can I help you with?',\n WELCOME_MESSAGE_LOGGED_OUT: 'To ask questions, please log in.',\n WELCOME_MESSAGE_LOGIN_TRANSITION: 'Welcome! You are now logged in. What can I help you with?',\n WELCOME_MESSAGE_LOGOUT_TRANSITION: 'You have been logged out.',\n // API_ENDPOINT: 'https://access-ai.ccs.uky.edu/api/query',\n API_ENDPOINT: 'https://access-ai.ccs.uky.edu:543/api/query',\n\n // Netlify function URL\n netlifyBaseUrl: process.env.REACT_APP_NETLIFY_BASE_URL,\n\n ERRORS: {\n API_UNAVAILABLE: 'Unable to contact the Q&A Bot. Please try again later.',\n },\n\n BEHAVIOR: {\n SHOW_RATING_AFTER_FAILED_QUERY: true\n },\n\n THEME: {\n PRIMARY_COLOR: '#1a5b6e',\n SECONDARY_COLOR: '#107180',\n FONT_FAMILY: 'Arial, sans-serif'\n },\n\n CHATBOT: {\n TITLE: 'ACCESS Q&A',\n AVATAR_URL: 'https://support.access-ci.org/themes/contrib/asp-theme/images/icons/ACCESS-arrrow.svg',\n TOOLTIP_TEXT: 'Ask me about ACCESS! 😊'\n }\n};\n\n// Helper functions from strings.js\nexport const buildWelcomeMessage = (isLoggedIn, welcomeMessage) => {\n if (isLoggedIn) {\n return welcomeMessage || DEFAULT_CONFIG.WELCOME_MESSAGE;\n } else {\n // Since tickets and feedback are available to everyone, use the normal welcome\n return welcomeMessage || DEFAULT_CONFIG.WELCOME_MESSAGE;\n }\n};\n\nexport const getApiKey = (providedApiKey) => {\n // Return provided API key if available, otherwise fall back to environment variable\n return providedApiKey || process.env.REACT_APP_API_KEY;\n};","import React, { useImperativeHandle, useEffect, useRef } from 'react';\nimport { useMessages, useChatWindow } from \"react-chatbotify\";\nimport useLoginStateTransition from '../hooks/useLoginStateTransition';\n\n/**\n * BotController Component\n *\n * Handles the integration between react-chatbotify hooks and the imperative API.\n * This component must be rendered inside ChatBotProvider to access the hooks.\n *\n * @param {Object} props - Component props\n * @param {boolean} props.embedded - Whether the bot is embedded (affects chat window controls)\n * @param {boolean} props.isBotLoggedIn - Current login state\n * @param {boolean} props.currentOpen - Current open state\n * @param {React.Ref} ref - The forwarded ref for the imperative API\n */\nconst BotController = React.forwardRef(({\n embedded,\n isBotLoggedIn,\n currentOpen\n}, ref) => {\n // Get the chatbot hooks (must be inside ChatBotProvider)\n const messages = useMessages();\n const chatWindow = useChatWindow();\n\n const lastOpenRef = useRef(currentOpen);\n const fromEventRef = useRef(false);\n\n useLoginStateTransition(isBotLoggedIn);\n\n // Sync open state with chat window when it changes (but not when change came from event)\n useEffect(() => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n if (lastOpenRef.current !== currentOpen && !fromEventRef.current) {\n if (chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow(currentOpen);\n lastOpenRef.current = currentOpen;\n }\n }\n fromEventRef.current = false;\n }\n }, [currentOpen, embedded, chatWindow]);\n\n // Expose a method to mark that the next state change came from user interaction\n useEffect(() => {\n const markAsUserInteraction = () => {\n fromEventRef.current = true;\n };\n\n // Store the function on the ref so QABot can call it\n if (ref) {\n if (!ref.current) {\n ref.current = {};\n }\n ref.current._markAsUserInteraction = markAsUserInteraction;\n }\n });\n\n // An imperative method to add a message to bot\n // wrapping react-chatbotify `insertMessage`\n useImperativeHandle(ref, () => ({\n // Add a message to the chat\n addMessage: (message) => {\n if (messages && messages.injectMessage) {\n messages.injectMessage(message);\n }\n }\n }), [messages]);\n return null;\n});\n\nexport default BotController;","import { useEffect, useRef } from 'react';\nimport { useMessages } from 'react-chatbotify';\nimport { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Custom hook to handle login state transitions with automatic message injection\n * @param {boolean} isBotLoggedIn - Current login state\n */\nconst useLoginStateTransition = (isBotLoggedIn) => {\n const prevLoginStateRef = useRef(isBotLoggedIn);\n const { injectMessage } = useMessages();\n\n useEffect(() => {\n const loginStateChanged = prevLoginStateRef.current !== isBotLoggedIn;\n const justLoggedIn = !prevLoginStateRef.current && isBotLoggedIn;\n\n if (loginStateChanged) {\n if (justLoggedIn) {\n injectMessage(DEFAULT_CONFIG.WELCOME_MESSAGE_LOGIN_TRANSITION, 'bot');\n } else {\n injectMessage(DEFAULT_CONFIG.WELCOME_MESSAGE_LOGOUT_TRANSITION, 'bot');\n }\n }\n\n // Update the previous state for next comparison\n prevLoginStateRef.current = isBotLoggedIn;\n }, [isBotLoggedIn, injectMessage]);\n};\n\nexport default useLoginStateTransition;","import React from 'react';\n\nconst BaseIcon = ({\n width = 24,\n height = 24,\n color = 'currentColor',\n children,\n ...props\n}) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={width}\n height={height}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n {children}\n </svg>\n );\n};\n\nexport default BaseIcon;","import React from 'react';\nimport BaseIcon from './BaseIcon';\n\nconst RefreshIcon = (props) => {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\" />\n </BaseIcon>\n );\n};\n\nexport default RefreshIcon;","import React from 'react';\nimport { useFlow } from 'react-chatbotify';\nimport RefreshIcon from './icons/RefreshIcon';\n\nconst NewChatButton = () => {\n const { restartFlow } = useFlow();\n\n const handleNewChat = () => {\n restartFlow();\n };\n\n return (\n <button\n onClick={handleNewChat}\n tabIndex={0}\n aria-label=\"New chat conversation\"\n style={{\n backgroundColor: '#107180',\n border: 'none',\n color: '#ffffff',\n fontSize: '14px',\n cursor: 'pointer',\n padding: '8px 12px',\n borderRadius: '4px',\n transition: 'all 0.2s ease',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n fontWeight: '500',\n }}\n onMouseEnter={(e) => {\n e.target.style.backgroundColor = '#0d5f6b';\n }}\n onMouseLeave={(e) => {\n e.target.style.backgroundColor = '#107180';\n }}\n >\n <RefreshIcon width={16} height={16} />\n New Chat\n </button>\n );\n};\n\nexport default NewChatButton;","import React from 'react';\n\n/**\n * UserIcon Component\n *\n * A standalone component for the user icon that can be styled independently.\n * Visibility controlled by CSS classes on the container.\n *\n * @returns {JSX.Element} Rendered user icon\n */\nconst UserIcon = () => (\n <div\n className=\"user-login-icon\"\n style={{\n alignItems: 'center',\n justifyContent: 'center',\n width: '30px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: '#1a5b6e',\n marginRight: '5px'\n }}\n role=\"img\"\n aria-label=\"User logged in\"\n title=\"User logged in\"\n >\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"12\" cy=\"7\" r=\"4\"></circle>\n </svg>\n </div>\n);\n\nexport default UserIcon;","import React from 'react';\n\n/**\n * LoginButton Component\n *\n * A standalone component for the login button that can be styled independently\n *\n * @param {Object} props - Component props\n * @param {string} props.loginUrl - URL to navigate to for login\n * @param {string} [props.className] - Optional CSS class for styling\n * @param {Object} [props.style] - Optional inline styles\n * @returns {JSX.Element} Rendered login button\n */\nconst LoginButton = ({ loginUrl, className = '', style, isHeaderButton = false }) => {\n const headerStyle = {\n display: 'inline-block',\n padding: '6px 12px',\n backgroundColor: 'transparent',\n border: '1px solid #ccc',\n color: 'white',\n textDecoration: 'none',\n borderRadius: '4px',\n fontWeight: 'normal',\n textAlign: 'center',\n margin: '8px',\n fontSize: '12px',\n opacity: '0.8',\n transition: 'all 0.2s ease'\n };\n\n const defaultStyle = {\n display: 'inline-block',\n padding: '10px 20px',\n backgroundColor: 'white',\n border: '1px solid #107180',\n color: '#107180',\n textDecoration: 'none',\n borderRadius: '4px',\n fontWeight: 'bold',\n textAlign: 'center',\n margin: '18px',\n boxShadow: '0 2px 4px rgba(0, 0, 0, 0.2)'\n };\n\n const finalStyle = isHeaderButton ? headerStyle : defaultStyle;\n\n return (\n <>\n {isHeaderButton && (\n <style>\n {`\n .rcb-chat-header-container .qa-bot-header-login-button:hover {\n background-color: #0000001a !important;\n opacity: 1 !important;\n }\n `}\n </style>\n )}\n <a\n href={loginUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`qa-bot-login-button ${isHeaderButton ? 'qa-bot-header-login-button' : ''} ${className}`}\n style={{ ...finalStyle, ...style }}\n >\n Log In\n </a>\n </>\n );\n};\n\nexport default LoginButton;","import { useCallback } from 'react';\nimport { DEFAULT_CONFIG } from '../config/constants';\nimport useGetLastUserQuery from './useGetLastUserQuery';\n\n/**\n * Custom hook to handle AI query processing\n * @param {string} apiKey - API key for the Q&A endpoint\n * @param {string} sessionId - Session ID for tracking the conversation\n * @param {Function} setCurrentQueryId - Function to update the current query ID state\n * @returns {Function} handleQuery function that returns true for success, false for error\n */\nconst useHandleAIQuery = (apiKey, sessionId, setCurrentQueryId) => {\n const getLastUserQueryId = useGetLastUserQuery();\n\n const handleQuery = useCallback(async (params) => {\n const { userInput } = params;\n\n const actualQueryId = getLastUserQueryId();\n\n if (actualQueryId) {\n setCurrentQueryId(actualQueryId);\n }\n\n const headers = {\n 'Content-Type': 'application/json',\n 'X-Origin': 'access',\n 'X-API-KEY': apiKey,\n 'X-Session-ID': sessionId,\n 'X-Query-ID': actualQueryId\n };\n\n try {\n const requestOptions = {\n method: 'POST',\n headers,\n body: JSON.stringify({\n query: userInput\n })\n };\n\n const response = await fetch(DEFAULT_CONFIG.API_ENDPOINT, requestOptions);\n const body = await response.json();\n const text = body.response;\n await params.streamMessage(text);\n return true; // Success\n }\n\n catch (error) {\n await params.injectMessage(DEFAULT_CONFIG.ERRORS.API_UNAVAILABLE);\n return false; // Error\n }\n }, [apiKey, setCurrentQueryId, getLastUserQueryId, sessionId]);\n\n return handleQuery;\n};\n\nexport default useHandleAIQuery;","/**\n * Custom hook to get the last user query ID from localStorage history\n * @returns {string|null} The ID of the most recent USER message\n */\nconst useGetLastUserQuery = () => {\n const getLastUserQueryId = () => {\n try {\n const historyString = localStorage.getItem('rcb-history');\n if (!historyString) return null;\n\n const history = JSON.parse(historyString);\n if (!Array.isArray(history)) return null;\n\n let latestUserMessage = null;\n let latestTimestamp = null;\n\n for (const message of history) {\n if (message.sender === 'USER') {\n const messageTime = new Date(message.timestamp).getTime();\n if (!latestTimestamp || messageTime > latestTimestamp) {\n latestTimestamp = messageTime;\n latestUserMessage = message;\n }\n }\n }\n\n return latestUserMessage ? latestUserMessage.id : null;\n } catch (error) {\n console.warn('Error parsing chat history:', error);\n return null;\n }\n };\n\n return getLastUserQueryId;\n};\n\nexport default useGetLastUserQuery;","import { useEffect } from 'react';\n\n/**\n * Custom hook for keyboard navigation in chatbot options\n * Provides arrow key navigation, Enter/Space selection, and accessibility features\n */\nconst useKeyboardNavigation = () => {\n useEffect(() => {\n // Dedicated checkbox navigation handler\n const handleCheckboxNavigation = (event, elements) => {\n event.preventDefault();\n \n let currentIndex = -1;\n \n // Find currently focused element\n for (let i = 0; i < elements.length; i++) {\n if (elements[i] === document.activeElement || elements[i].contains(document.activeElement)) {\n currentIndex = i;\n break;\n }\n }\n \n // If no element is focused, start with first one\n if (currentIndex === -1) {\n currentIndex = 0;\n }\n \n let newIndex = currentIndex;\n \n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight':\n newIndex = currentIndex < elements.length - 1 ? currentIndex + 1 : 0;\n break;\n case 'ArrowUp':\n case 'ArrowLeft':\n newIndex = currentIndex > 0 ? currentIndex - 1 : elements.length - 1;\n break;\n case 'Home':\n newIndex = 0;\n break;\n case 'End':\n newIndex = elements.length - 1;\n break;\n case 'Enter':\n case ' ':\n // Handle different types of elements\n const currentElement = elements[currentIndex];\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n currentElement.dispatchEvent(mouseDownEvent);\n return;\n default:\n // No action needed for other keys\n return;\n }\n \n // Focus the new element\n elements[newIndex].focus();\n elements[newIndex].setAttribute('tabindex', '0');\n elements[newIndex].classList.add('keyboard-focused');\n \n // Remove tabindex and focus class from other elements\n elements.forEach((element, index) => {\n if (index !== newIndex) {\n element.setAttribute('tabindex', '-1');\n element.classList.remove('keyboard-focused');\n }\n });\n };\n\n const handleKeyboardNavigation = (event) => {\n // Only handle arrow keys and Enter/Space\n if (!['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight', 'Enter', ' ', 'Home', 'End'].includes(event.key)) {\n return;\n }\n\n // Don't interfere with typing in input fields\n const activeElement = document.activeElement;\n if (activeElement && (\n activeElement.tagName === 'INPUT' ||\n activeElement.tagName === 'TEXTAREA' ||\n activeElement.contentEditable === 'true' ||\n activeElement.classList.contains('rcb-chat-input-textarea')\n )) {\n return;\n }\n\n const chatWindow = document.querySelector('.rcb-chat-window');\n if (!chatWindow) return;\n \n // Special handling for checkboxes - but only if they're in the most recent message\n const allMessages = Array.from(chatWindow.querySelectorAll('.rcb-message-container, .rcb-bot-message-container, .rcb-user-message-container'))\n .filter(el => el.offsetParent !== null);\n \n if (allMessages.length > 0) {\n const lastMessage = allMessages[allMessages.length - 1];\n const checkboxContainer = lastMessage.querySelector('.rcb-checkbox-container');\n \n if (checkboxContainer && checkboxContainer.offsetParent !== null) {\n const checkboxes = Array.from(checkboxContainer.querySelectorAll('.rcb-checkbox-row-container'));\n const nextButton = checkboxContainer.querySelector('.rcb-checkbox-next-button');\n \n if (checkboxes.length > 0) {\n // Include next button in navigable elements\n const allElements = [...checkboxes];\n if (nextButton) {\n allElements.push(nextButton);\n }\n handleCheckboxNavigation(event, allElements);\n return;\n }\n }\n }\n \n // Check if chat window is visible and if there are options available - only in the most recent message\n \n let options = [];\n if (allMessages.length > 0) {\n const lastMessage = allMessages[allMessages.length - 1];\n const optionsContainers = Array.from(lastMessage.querySelectorAll('.rcb-options-container'))\n .filter(el => el.offsetParent !== null);\n \n if (optionsContainers.length > 0) {\n const lastContainer = optionsContainers[optionsContainers.length - 1];\n options = Array.from(lastContainer.querySelectorAll('.rcb-options'));\n }\n }\n \n if (options.length === 0) return;\n\n const currentIndex = options.findIndex(option => option === document.activeElement);\n \n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight':\n event.preventDefault();\n let nextIndex;\n if (currentIndex < options.length - 1) {\n nextIndex = currentIndex + 1;\n } else {\n // Wrap to first option\n nextIndex = 0;\n }\n \n // Make sure the element is focusable\n options[nextIndex].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== nextIndex) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n \n options[nextIndex].classList.add('keyboard-focused');\n options[nextIndex].focus();\n break;\n\n case 'ArrowUp':\n case 'ArrowLeft':\n event.preventDefault();\n let prevIndex;\n if (currentIndex > 0) {\n prevIndex = currentIndex - 1;\n } else {\n // Wrap to last option\n prevIndex = options.length - 1;\n }\n \n // Make sure the element is focusable\n options[prevIndex].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== prevIndex) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n \n options[prevIndex].classList.add('keyboard-focused');\n options[prevIndex].focus();\n break;\n\n case 'Enter':\n case ' ': // Space key\n event.preventDefault();\n if (document.activeElement && options.includes(document.activeElement)) {\n const activeElement = document.activeElement;\n \n // Handle checkboxes differently\n if (activeElement.classList.contains('rcb-checkbox-row-container') || activeElement.closest('.rcb-checkbox-row-container')) {\n // For checkboxes, trigger a mousedown event (React ChatBotify standard)\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n activeElement.dispatchEvent(mouseDownEvent);\n \n // Announce checkbox state\n const labelElement = activeElement.querySelector('.rcb-checkbox-label');\n const selectedText = labelElement ? labelElement.textContent : (activeElement.textContent || 'checkbox');\n const checkboxMark = activeElement.querySelector('.rcb-checkbox-mark');\n const isChecked = checkboxMark && checkboxMark.style.backgroundColor ? 'checked' : 'unchecked';\n announceToScreenReader(`${selectedText} ${isChecked}`);\n } else {\n // For regular options, use mousedown\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n activeElement.dispatchEvent(mouseDownEvent);\n \n // Announce selection to screen readers\n const selectedText = activeElement.textContent || activeElement.innerText;\n announceToScreenReader(`Selected: ${selectedText}`);\n }\n }\n break;\n\n case 'Home':\n event.preventDefault();\n if (options.length > 0) {\n options[0].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== 0) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n options[0].classList.add('keyboard-focused');\n options[0].focus();\n }\n break;\n\n case 'End':\n event.preventDefault();\n if (options.length > 0) {\n const lastIndex = options.length - 1;\n options[lastIndex].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== lastIndex) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n options[lastIndex].classList.add('keyboard-focused');\n options[lastIndex].focus();\n }\n break;\n default:\n // No action needed for other keys\n break;\n }\n };\n\n\n // Screen reader announcement helper\n const announceToScreenReader = (message) => {\n const announcement = document.createElement('div');\n announcement.setAttribute('aria-live', 'assertive');\n announcement.setAttribute('aria-atomic', 'true');\n announcement.className = 'sr-only';\n announcement.textContent = message;\n document.body.appendChild(announcement);\n setTimeout(() => {\n if (document.body.contains(announcement)) {\n document.body.removeChild(announcement);\n }\n }, 1000);\n };\n\n // Auto-focus first option when new options appear\n const handleNewOptions = () => {\n // Try multiple selectors for the chat window\n let chatWindow = document.querySelector('.rcb-chat-window');\n if (!chatWindow) {\n chatWindow = document.querySelector('[class*=\"rcb-chat\"]');\n }\n if (!chatWindow) {\n chatWindow = document.querySelector('.qa-bot');\n }\n \n if (!chatWindow) return;\n \n // Get all messages to ensure we only focus options in the most recent message\n const allMessages = Array.from(chatWindow.querySelectorAll('.rcb-message-container, .rcb-bot-message-container, .rcb-user-message-container'))\n .filter(el => el.offsetParent !== null);\n \n if (allMessages.length === 0) return;\n \n const lastMessage = allMessages[allMessages.length - 1];\n \n // Get options containers only from the last message\n let optionsContainers = Array.from(lastMessage.querySelectorAll('.rcb-options-container'))\n .filter(el => el.offsetParent !== null);\n \n let options = [];\n let optionType = 'regular';\n \n // Look for regular options first - but only in the last message\n if (optionsContainers.length > 0) {\n const lastContainer = optionsContainers[optionsContainers.length - 1];\n options = Array.from(lastContainer.querySelectorAll('.rcb-options'));\n }\n \n // If no regular options, look for checkboxes and set them up\n if (options.length === 0) {\n // First try to find checkbox container in last message, but fallback to chatWindow if not found\n let checkboxContainer = lastMessage.querySelector('.rcb-checkbox-container');\n if (!checkboxContainer && chatWindow) {\n checkboxContainer = chatWindow.querySelector('.rcb-checkbox-container');\n }\n \n if (checkboxContainer && checkboxContainer.offsetParent !== null) {\n const checkboxElements = Array.from(checkboxContainer.querySelectorAll('.rcb-checkbox-row-container'))\n .filter(el => el.offsetParent !== null && el.style.display !== 'none');\n \n if (checkboxElements.length > 0) {\n // Include next button in navigable elements\n const nextButton = checkboxContainer.querySelector('.rcb-checkbox-next-button');\n const allElements = [...checkboxElements];\n if (nextButton && nextButton.offsetParent !== null) {\n allElements.push(nextButton);\n }\n \n // Set up checkboxes for keyboard navigation\n allElements.forEach((element, index) => {\n element.setAttribute('tabindex', index === 0 ? '0' : '-1');\n if (index === 0) {\n element.classList.add('keyboard-focused');\n } else {\n element.classList.remove('keyboard-focused');\n }\n });\n \n // Add keyboard navigation hint for checkboxes if there are multiple elements\n if (checkboxElements.length > 1) {\n // Remove any existing hints first\n const existingHints = checkboxContainer.querySelectorAll('.keyboard-nav-hint');\n existingHints.forEach(hint => hint.remove());\n \n // Add new hint\n const hintElement = document.createElement('div');\n hintElement.className = 'keyboard-nav-hint';\n hintElement.textContent = 'Use arrow keys ↕ to navigate, Enter to select/deselect, or click any option';\n hintElement.style.cssText = 'font-size: 12px !important; color: #666 !important; margin-bottom: 8px !important; font-style: italic !important; display: block !important;';\n checkboxContainer.insertBefore(hintElement, checkboxContainer.firstChild);\n }\n \n // Focus first element\n setTimeout(() => {\n if (allElements[0] && allElements[0].offsetParent !== null) {\n allElements[0].focus();\n }\n }, 150);\n \n return; // Don't process as regular options\n }\n }\n }\n \n if (options.length > 0) {\n // Set tabindex and ARIA attributes for keyboard navigation\n options.forEach((option, index) => {\n const tabindex = index === 0 ? '0' : '-1';\n option.setAttribute('tabindex', tabindex);\n option.setAttribute('role', 'option');\n option.setAttribute('aria-posinset', index + 1);\n option.setAttribute('aria-setsize', options.length);\n // Add visual focus class to first option\n if (index === 0) {\n option.classList.add('keyboard-focused');\n } else {\n option.classList.remove('keyboard-focused');\n }\n });\n\n // Add keyboard navigation hint only for multiple options\n if (options.length > 1 && optionType === 'regular') {\n // Only add hints for regular options, and only if we have a container\n const lastContainer = optionsContainers.length > 0 ? optionsContainers[optionsContainers.length - 1] : null;\n if (lastContainer) {\n // Remove any existing hint first\n const existingHints = lastContainer.querySelectorAll('.keyboard-nav-hint');\n existingHints.forEach(hint => hint.remove());\n \n // Add new hint\n const hintElement = document.createElement('div');\n hintElement.className = 'keyboard-nav-hint';\n hintElement.textContent = 'Use arrow keys ↕ to navigate, Enter to select, or click any option';\n hintElement.style.cssText = 'font-size: 12px !important; color: #666 !important; margin-bottom: 8px !important; font-style: italic !important; display: block !important;';\n lastContainer.insertBefore(hintElement, lastContainer.firstChild);\n }\n } else if (optionType === 'regular') {\n // Remove hints for single options, but only for regular options\n const lastContainer = optionsContainers.length > 0 ? optionsContainers[optionsContainers.length - 1] : null;\n if (lastContainer) {\n const existingHints = lastContainer.querySelectorAll('.keyboard-nav-hint');\n existingHints.forEach(hint => hint.remove());\n }\n }\n\n // Focus first option after a short delay to allow rendering\n setTimeout(() => {\n if (options[0] && options[0].offsetParent !== null) {\n options[0].focus();\n if (options.length > 1) {\n announceToScreenReader(`${options.length} options available. Use arrow keys to navigate.`);\n }\n }\n }, 200);\n }\n };\n\n // Set up mutation observer to watch for new options\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'childList') {\n const addedNodes = Array.from(mutation.addedNodes);\n \n const hasNewOptions = addedNodes.some(node => \n node.nodeType === Node.ELEMENT_NODE && \n (node.classList?.contains('rcb-options-container') || \n node.classList?.contains('rcb-options') ||\n node.querySelector?.('.rcb-options-container') ||\n node.querySelector?.('.rcb-options'))\n );\n \n const hasNewCheckboxes = addedNodes.some(node => \n node.nodeType === Node.ELEMENT_NODE && \n (node.classList?.contains('rcb-checkbox-container') ||\n node.querySelector?.('.rcb-checkbox-container'))\n );\n\n \n if (hasNewOptions || hasNewCheckboxes) {\n // Clear tabindex from all existing elements to prevent old ones from being navigable\n document.querySelectorAll('.rcb-options[tabindex], .rcb-checkbox-row-container[tabindex], .rcb-checkbox-next-button[tabindex]').forEach(el => {\n el.setAttribute('tabindex', '-1');\n el.classList.remove('keyboard-focused');\n });\n \n setTimeout(handleNewOptions, 100);\n }\n }\n });\n });\n\n // Start observing\n const chatWindow = document.querySelector('.rcb-chat-window');\n if (chatWindow) {\n observer.observe(chatWindow, {\n childList: true,\n subtree: true\n });\n }\n\n // Add keyboard event listener to document only\n document.addEventListener('keydown', handleKeyboardNavigation);\n\n // Check for existing options on mount\n handleNewOptions();\n \n\n // Periodic check as backup to catch any missed options and checkboxes\n const periodicCheck = setInterval(() => {\n const hasVisibleOptions = document.querySelectorAll('.rcb-options-container .rcb-options').length > 0;\n const hasVisibleCheckboxes = document.querySelectorAll('.rcb-checkbox-row-container').length > 0;\n \n if (hasVisibleOptions) {\n const lastProcessedOptions = document.querySelectorAll('.rcb-options[tabindex]').length;\n const currentOptions = document.querySelectorAll('.rcb-options').length;\n \n if (currentOptions > lastProcessedOptions) {\n handleNewOptions();\n }\n }\n \n if (hasVisibleCheckboxes) {\n const lastProcessedCheckboxes = document.querySelectorAll('.rcb-checkbox-row-container[tabindex]').length;\n const currentCheckboxes = document.querySelectorAll('.rcb-checkbox-row-container').length;\n \n if (currentCheckboxes > lastProcessedCheckboxes) {\n handleNewOptions();\n }\n }\n }, 1000);\n\n // Cleanup\n return () => {\n document.removeEventListener('keydown', handleKeyboardNavigation);\n observer.disconnect();\n clearInterval(periodicCheck);\n };\n }, []);\n\n return null; // This hook doesn't return anything, just sets up event handlers\n};\n\nexport default useKeyboardNavigation;","import { handleBotError } from '../error-handler';\nimport { DEFAULT_CONFIG } from '../../config/constants';\n\n/**\n * Creates the Q&A conversation flow\n *\n * @param {Object} params Configuration\n * @param {Function} params.fetchAndStreamResponse Function to fetch and stream responses\n * @param {string} params.sessionId Current session ID\n * @param {string} params.currentQueryId Current query ID\n * @returns {Object} Q&A flow configuration\n */\nexport const createQAFlow = ({ fetchAndStreamResponse, sessionId, currentQueryId }) => {\n return {\n go_ahead_and_ask: {\n message: \"Please type your question.\",\n path: \"qa_loop\"\n },\n qa_loop: {\n message: async (chatState) => {\n try {\n await fetchAndStreamResponse(chatState);\n return \"Was this helpful?\";\n } catch (error) {\n console.error('Error in bot flow:', error);\n return handleBotError(error);\n }\n },\n options: [\"👍 Yes\", \"👎 No\"],\n chatDisabled: false,\n function: async (chatState) => {\n if (chatState.userInput === \"👍 Yes\" || chatState.userInput === \"👎 No\") {\n const apiKey = process.env.REACT_APP_API_KEY;\n if (apiKey && sessionId) {\n const isPositive = chatState.userInput === \"👍 Yes\";\n const headers = {\n 'Content-Type': 'application/json',\n 'X-Origin': 'access',\n 'X-API-KEY': apiKey,\n 'X-Session-ID': sessionId,\n 'X-Query-ID': currentQueryId,\n 'X-Feedback': isPositive ? 1 : 0\n };\n\n try {\n await fetch(`${DEFAULT_CONFIG.API_ENDPOINT}/rating`, {\n method: 'POST',\n headers\n });\n } catch (error) {\n console.error('Error sending feedback:', error);\n }\n }\n }\n },\n path: (chatState) => {\n if (chatState.userInput === \"👍 Yes\") {\n return \"qa_positive_feedback\";\n } else if (chatState.userInput === \"👎 No\") {\n return \"qa_negative_feedback\";\n }\n return \"qa_loop\";\n }\n },\n qa_positive_feedback: {\n message: \"Thank you for your feedback! It helps us improve this tool.\",\n transition: { duration: 1000 },\n path: \"go_ahead_and_ask\"\n },\n qa_negative_feedback: {\n message: \"Sorry that wasn't useful. Would you like to open a help ticket for assistance?\",\n options: [\"Open a help ticket\", \"Ask another question\"],\n chatDisabled: true,\n path: (chatState) => {\n if (chatState.userInput === \"Open a help ticket\") {\n return \"help_ticket\";\n }\n return \"qa_continue\";\n }\n },\n qa_continue: {\n message: \"Ask another question, but remember that each question must stand alone.\",\n path: \"qa_loop\"\n }\n };\n};","import { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Handles bot errors and returns user-friendly error messages\n * @param {Object|Error} error - The error object or response\n * @returns {string} User-friendly error message\n */\nexport const handleBotError = (error) => {\n console.error('Bot error:', error);\n\n // If it's an error object with a message property\n if (error && error.error) {\n return DEFAULT_CONFIG.ERRORS.API_UNAVAILABLE;\n }\n\n // If it's a standard Error object\n if (error instanceof Error) {\n return DEFAULT_CONFIG.ERRORS.API_UNAVAILABLE;\n }\n\n // Default fallback\n return DEFAULT_CONFIG.ERRORS.API_UNAVAILABLE;\n};","import React from 'react';\nimport BaseIcon from './BaseIcon';\n\nconst UploadIcon = (props) => {\n return (\n <BaseIcon {...props}>\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"17 8 12 3 7 8\" />\n <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\" />\n </BaseIcon>\n );\n};\n\nexport default UploadIcon;","import React, { useState, useRef } from 'react';\nimport useScreenshotCapture from '../hooks/useScreenshotCapture';\nimport UploadIcon from './icons/UploadIcon';\n\n/**\n * Component for handling file uploads in the feedback flow\n *\n * @param {Object} props Component props\n * @param {Function} props.onFileUpload Callback function that receives uploaded files\n * @returns {JSX.Element} File upload component\n */\nconst FileUploadComponent = ({ onFileUpload }) => {\n const [dragActive, setDragActive] = useState(false);\n const [selectedFiles, setSelectedFiles] = useState([]);\n const [previewFile, setPreviewFile] = useState(null);\n const fileInputRef = useRef(null);\n const { captureScreenshot, isCapturing } = useScreenshotCapture();\n\n // Helper function to announce messages to screen readers\n const announceToScreenReader = (message) => {\n const announcement = document.createElement('div');\n announcement.setAttribute('aria-live', 'assertive');\n announcement.setAttribute('aria-atomic', 'true');\n announcement.className = 'sr-only';\n announcement.textContent = message;\n document.body.appendChild(announcement);\n setTimeout(() => document.body.removeChild(announcement), 1000);\n };\n\n const handleFiles = (files) => {\n const newFileArray = Array.from(files);\n const updatedFiles = [...selectedFiles, ...newFileArray];\n setSelectedFiles(updatedFiles);\n\n // Announce file selection to screen readers\n const fileCount = newFileArray.length;\n const fileNames = newFileArray.map(f => f.name).join(', ');\n announceToScreenReader(`${fileCount} file${fileCount > 1 ? 's' : ''} selected: ${fileNames}`);\n\n // Programmatically scroll chat to bottom after file selection to keep Continue button in view\n setTimeout(() => {\n const chatContent = document.querySelector('.rcb-chat-content');\n if (chatContent) {\n chatContent.scrollTop = chatContent.scrollHeight;\n }\n }, 100);\n\n if (onFileUpload) {\n onFileUpload(updatedFiles);\n }\n };\n\n const handleDrag = (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (e.type === \"dragenter\" || e.type === \"dragover\") {\n setDragActive(true);\n } else if (e.type === \"dragleave\") {\n setDragActive(false);\n }\n };\n\n const handleDrop = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDragActive(false);\n\n if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n handleFiles(e.dataTransfer.files);\n }\n };\n\n const handleFileSelect = (e) => {\n if (e.target.files && e.target.files.length > 0) {\n handleFiles(e.target.files);\n }\n };\n\n const handleButtonClick = () => {\n fileInputRef.current.click();\n };\n\n const handleRemoveFile = (indexToRemove) => {\n const newFiles = selectedFiles.filter((_, idx) => idx !== indexToRemove);\n setSelectedFiles(newFiles);\n if (onFileUpload) {\n onFileUpload(newFiles);\n }\n };\n\n const handleScreenshotCapture = async () => {\n try {\n const file = await captureScreenshot();\n handleFiles([file]);\n announceToScreenReader('Screenshot captured successfully');\n } catch (error) {\n announceToScreenReader('Error capturing screenshot. Please try again.');\n }\n };\n\n const handleFilePreview = (file) => {\n setPreviewFile(file);\n };\n\n const closePreview = () => {\n setPreviewFile(null);\n };\n\n const renderFilePreview = () => {\n if (!previewFile) return null;\n\n const isImage = previewFile.type.startsWith('image/');\n const isText = previewFile.type.startsWith('text/');\n const isPDF = previewFile.type === 'application/pdf';\n\n return (\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 1000,\n }}\n onClick={closePreview}\n >\n <div\n style={{\n backgroundColor: 'white',\n padding: '20px',\n borderRadius: '8px',\n maxWidth: '90%',\n maxHeight: '90%',\n overflow: 'auto',\n position: 'relative',\n }}\n onClick={e => e.stopPropagation()}\n >\n <button\n onClick={closePreview}\n style={{\n position: 'absolute',\n top: '10px',\n right: '10px',\n background: 'none',\n border: 'none',\n fontSize: '24px',\n cursor: 'pointer',\n color: '#666',\n }}\n >\n ×\n </button>\n\n <h3 style={{ marginTop: 0, marginBottom: '16px' }}>{previewFile.name}</h3>\n\n {isImage && (\n <img\n src={URL.createObjectURL(previewFile)}\n alt={previewFile.name}\n style={{ maxWidth: '100%', maxHeight: '70vh' }}\n />\n )}\n\n {isText && (\n <pre style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n maxHeight: '70vh',\n overflow: 'auto',\n padding: '16px',\n backgroundColor: '#f5f5f5',\n borderRadius: '4px',\n }}>\n {URL.createObjectURL(previewFile)}\n </pre>\n )}\n\n {isPDF && (\n <iframe\n src={URL.createObjectURL(previewFile)}\n style={{ width: '100%', height: '70vh', border: 'none' }}\n title={previewFile.name}\n />\n )}\n\n {!isImage && !isText && !isPDF && (\n <div style={{ padding: '20px', textAlign: 'center' }}>\n Preview not available for this file type\n </div>\n )}\n </div>\n </div>\n );\n };\n\n return (\n <div className=\"file-upload-container\" style={{ padding: '16px', margin: '8px 0' }}>\n <div style={{ display: 'flex', justifyContent: 'center', marginBottom: '10px' }}>\n <button\n onClick={(e) => {\n e.preventDefault();\n handleScreenshotCapture();\n }}\n disabled={isCapturing}\n aria-describedby=\"screenshot-help\"\n aria-label={isCapturing ? 'Taking screenshot, please wait' : 'Take a screenshot to attach'}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n backgroundColor: '#107180',\n color: 'white',\n border: 'none',\n borderRadius: '5px',\n padding: '8px 12px',\n cursor: isCapturing ? 'not-allowed' : 'pointer',\n fontSize: '14px',\n fontWeight: '500',\n boxShadow: '0 1px 3px rgba(0,0,0,0.2)',\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"></path>\n <circle cx=\"12\" cy=\"13\" r=\"4\"></circle>\n </svg>\n {isCapturing ? 'Taking screenshot...' : 'Take screenshot...'}\n </button>\n <span id=\"screenshot-help\" className=\"sr-only\">\n Captures the current screen and adds it as an attachment\n </span>\n </div>\n\n <div\n className={`file-upload-dropzone ${dragActive ? \"active\" : \"\"}`}\n onDragEnter={handleDrag}\n onDragLeave={handleDrag}\n onDragOver={handleDrag}\n onDrop={handleDrop}\n role=\"button\"\n tabIndex={0}\n aria-label=\"File upload area. Click to select files or drag and drop files here.\"\n aria-describedby=\"upload-instructions\"\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleButtonClick();\n }\n }}\n style={{\n padding: '20px',\n border: '2px dashed #ccc',\n borderRadius: '8px',\n backgroundColor: dragActive ? '#f0f8ff' : '#fafafa',\n transition: 'all 0.3s ease'\n }}\n >\n <input\n ref={fileInputRef}\n type=\"file\"\n className=\"file-input\"\n onChange={handleFileSelect}\n multiple\n style={{ display: \"none\" }}\n aria-label=\"Select files to upload\"\n accept=\"image/*,application/pdf,text/*,.doc,.docx\"\n />\n <div className=\"upload-content\" onClick={handleButtonClick} style={{ cursor: 'pointer', flexDirection: 'column', alignItems: 'center', display: 'flex', textAlign: 'center', padding: '12px' }}>\n <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '8px' }}>\n <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', gap: '10px' }}>\n <UploadIcon />\n <p style={{ margin: 0, fontWeight: 'bold' }}>Upload Files</p>\n </div>\n <p id=\"upload-instructions\" style={{ margin: 0, fontSize: '14px', color: '#666' }}>\n Drag and drop files here or click to select. Accepted: Images, PDFs, Text files (Max 10MB each)\n </p>\n </div>\n {selectedFiles.length > 0 && (\n <div className=\"selected-files\" style={{ display: 'flex', flexWrap: 'wrap', gap: '8px', marginTop: '12px', alignItems: 'center' }}>\n <span style={{ fontWeight: 400, color: '#888', fontSize: '13px', marginRight: '8px', alignSelf: 'center' }}>Selected files:</span>\n {selectedFiles.map((file, index) => (\n <span\n key={index}\n style={{\n background: '#fff',\n color: '#107180',\n borderRadius: '5px',\n padding: '4px 12px',\n fontSize: '14px',\n marginRight: '4px',\n marginBottom: '4px',\n border: '1px solid #ccc',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n cursor: 'pointer',\n }}\n onClick={(e) => {\n e.stopPropagation();\n handleFilePreview(file);\n }}\n >\n <span\n onClick={e => { e.stopPropagation(); handleRemoveFile(index); }}\n style={{\n cursor: 'pointer',\n color: '#888',\n fontWeight: 'bold',\n fontSize: '15px',\n marginRight: '4px',\n userSelect: 'none',\n lineHeight: 1,\n }}\n title=\"Remove file\"\n aria-label={`Remove ${file.name}`}\n >\n &times;\n </span>\n {file.name} ({(file.size / 1024).toFixed(1)} KB)\n </span>\n ))}\n </div>\n )}\n </div>\n </div>\n {renderFilePreview()}\n </div>\n );\n};\n\nexport default FileUploadComponent;","import { useState } from 'react';\n\n/**\n * Custom hook for capturing screenshots using the Screen Capture API\n * @returns {Object} Object containing capture function and capturing state\n */\nconst useScreenshotCapture = () => {\n const [isCapturing, setIsCapturing] = useState(false);\n\n const captureScreenshot = async () => {\n try {\n setIsCapturing(true);\n\n // Request screen capture with specific options for better UX\n const stream = await navigator.mediaDevices.getDisplayMedia({\n video: {\n displaySurface: \"browser\", // Prefer capturing browser tabs\n cursor: \"always\",\n logicalSurface: true, // Capture what the user actually sees\n width: { ideal: 1920 }, // Suggest high quality\n height: { ideal: 1080 }\n },\n audio: false\n });\n\n // Create video element to capture the frame\n const video = document.createElement('video');\n video.srcObject = stream;\n\n // Wait for video metadata to load\n await new Promise(resolve => {\n video.onloadedmetadata = () => {\n video.play();\n resolve();\n };\n });\n\n // Create canvas with video dimensions\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n\n // Draw video frame to canvas\n const ctx = canvas.getContext('2d');\n ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n\n // Convert canvas to blob\n const blob = await new Promise(resolve => canvas.toBlob(resolve, 'image/png'));\n\n // Create file from blob\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-');\n const file = new File([blob], `screenshot-${timestamp}.png`, { type: 'image/png' });\n\n // Stop all tracks\n stream.getTracks().forEach(track => track.stop());\n\n setIsCapturing(false);\n return file;\n } catch (error) {\n console.error('Error capturing screenshot:', error);\n setIsCapturing(false);\n throw error;\n }\n };\n\n return {\n captureScreenshot,\n isCapturing\n };\n};\n\nexport default useScreenshotCapture;","import { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Legacy function - ProForma mapping is now handled by the API\n * @param {Object} formData Form data \n * @param {number} requestTypeId The JSM request type ID\n * @returns {Object} Form data (unchanged - API handles ProForma mapping)\n */\nconst mapProFormaFields = (formData, requestTypeId) => {\n // ProForma field mapping is now handled by the API\n // This function is kept for backward compatibility but does no transformation\n return formData;\n};\n\n/**\n * Prepares data for future API submission\n * @param {Object} formData Form data for the ticket\n * @param {string} ticketType Type of ticket to create\n * @param {Array} uploadedFiles Files uploaded by the user (if any)\n * @returns {Promise<Object>} Formatted data for API submission\n */\nexport const prepareApiSubmission = async (formData, ticketType = 'support', uploadedFiles = []) => {\n // Map ticket types to their requestTypeId values\n const REQUEST_TYPE_IDS = {\n SUPPORT: 17,\n LOGIN_ACCESS: 30,\n LOGIN_PROVIDER: 31,\n SECURITY: 26\n };\n \n const requestTypeIds = {\n support: REQUEST_TYPE_IDS.SUPPORT,\n general_help: REQUEST_TYPE_IDS.SUPPORT,\n feedback: REQUEST_TYPE_IDS.SUPPORT,\n loginAccess: REQUEST_TYPE_IDS.LOGIN_ACCESS,\n loginProvider: REQUEST_TYPE_IDS.LOGIN_PROVIDER,\n security: REQUEST_TYPE_IDS.SECURITY\n };\n\n const requestTypeId = requestTypeIds[ticketType] || requestTypeIds.support;\n \n // Determine the correct service desk ID based on ticket type\n const serviceDeskId = ticketType === 'security' ? 3 : 2;\n \n // Map ProForma fields to JSM custom field IDs (now handled by API)\n const mappedFormData = mapProFormaFields(formData, requestTypeId);\n\n // Basic submission data (API handles ProForma form mapping automatically)\n const submissionData = {\n serviceDeskId: serviceDeskId,\n requestTypeId: requestTypeId,\n requestFieldValues: {\n ...mappedFormData\n }\n };\n\n // Add file information if any files were uploaded\n if (uploadedFiles && uploadedFiles.length > 0) {\n // Process each file to convert to base64\n const processedFiles = await Promise.all(\n uploadedFiles.map(async (file) => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n // Get the base64 string by removing the data URL prefix\n const base64String = reader.result.split(',')[1];\n resolve({\n fileName: file.name,\n contentType: file.type,\n size: file.size,\n fileData: base64String\n });\n };\n reader.onerror = () => reject(new Error(`Failed to read file ${file.name}`));\n reader.readAsDataURL(file);\n });\n })\n );\n\n submissionData.attachments = processedFiles;\n }\n return submissionData;\n};\n\n/**\n * POSTs prepared data to the netlify proxy endpoint\n * @param {Object} submissionData The data to send\n * @param {string} endpointName The name of the endpoint to use\n * @returns {Promise<Object>} The response from the proxy\n */\nexport const sendPreparedDataToProxy = async (submissionData, endpointName) => {\n \n // Use versioned API endpoints (these get redirected by netlify.toml)\n const serverBaseUrl = DEFAULT_CONFIG.netlifyBaseUrl.replace('/.netlify/functions/', ''); // Get base server URL\n \n let proxyEndpoint;\n if (endpointName === 'create-support-ticket') {\n proxyEndpoint = `${serverBaseUrl}/api/v1/tickets`;\n } else if (endpointName === 'create-security-incident') {\n proxyEndpoint = `${serverBaseUrl}/api/v1/security-incidents`;\n } else {\n proxyEndpoint = `${DEFAULT_CONFIG.netlifyBaseUrl}/${endpointName}`;\n }\n \n\n try {\n const response = await fetch(proxyEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(submissionData)\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n console.error('| ❌ Post data to proxy failed:', response.status, errorText);\n return {\n success: false,\n status: response.status,\n error: errorText\n };\n }\n\n const data = await response.json();\n return {\n success: true,\n data\n };\n } catch (error) {\n console.error('| ❌ Post data to proxy exception:', error);\n return {\n success: false,\n error: error.message\n };\n }\n};\n\n/**\n * Submits a security incident to JSM\n * @param {Object} formData Security incident form data\n * @param {Array} uploadedFiles Files uploaded by the user (if any)\n * @returns {Promise<Object>} The response from the API\n */\nexport const submitSecurityIncident = async (formData, uploadedFiles = []) => {\n try {\n // Prepare the data for security incident submission\n const submissionData = await prepareApiSubmission(formData, 'security', uploadedFiles);\n \n // Submit to the security incident endpoint\n const result = await sendPreparedDataToProxy(submissionData, 'create-security-incident');\n \n return result;\n } catch (error) {\n console.error('| ❌ Security incident submission failed:', error);\n return {\n success: false,\n error: error.message\n };\n }\n};","import React from 'react';\nimport FileUploadComponent from '../../../components/FileUploadComponent';\nimport { prepareApiSubmission, sendPreparedDataToProxy } from '../../api-utils';\n\n/**\n * Creates a reusable file upload component for ticket flows\n * @param {Function} setTicketForm - Function to update ticket form state\n * @param {Object} ticketForm - Current ticket form state\n * @returns {JSX.Element} File upload component\n */\nexport const createFileUploadComponent = (setTicketForm, ticketForm) => (\n <FileUploadComponent\n onFileUpload={(files) =>\n setTicketForm({\n ...(ticketForm || {}),\n uploadedFiles: files\n })\n }\n />\n);\n\n/**\n * Creates a submission handler with external result storage to avoid React closure issues\n * @param {Function} setTicketForm - Function to update ticket form state\n * @returns {Object} Object containing submitTicket function and getSubmissionResult function\n */\nexport const createSubmissionHandler = (setTicketForm) => {\n let submissionResult = null;\n\n const submitTicket = async (formData, ticketType, uploadedFiles = []) => {\n try {\n const apiData = await prepareApiSubmission(\n formData,\n ticketType,\n uploadedFiles\n );\n const proxyResponse = await sendPreparedDataToProxy(apiData, 'create-support-ticket');\n \n if (proxyResponse.success) {\n submissionResult = {\n success: true,\n ticketKey: proxyResponse.data.data.ticketKey,\n ticketUrl: proxyResponse.data.data.ticketUrl\n };\n setTicketForm(prevForm => ({\n ...prevForm, \n ticketKey: proxyResponse.data.data.ticketKey, \n ticketUrl: proxyResponse.data.data.ticketUrl\n }));\n } else {\n console.error(`| ❌ ${ticketType} ticket creation failed:`, proxyResponse.data?.message || proxyResponse.error);\n submissionResult = {\n success: false,\n error: proxyResponse.data?.message || proxyResponse.error\n };\n setTicketForm(prevForm => ({...prevForm, submissionError: proxyResponse.data?.message || proxyResponse.error}));\n }\n } catch (error) {\n console.error(`| ❌ Error sending ${ticketType} data to proxy:`, error);\n submissionResult = {\n success: false,\n error: error.message\n };\n setTicketForm(prevForm => ({...prevForm, submissionError: error.message}));\n }\n };\n\n const getSubmissionResult = () => submissionResult;\n\n return { submitTicket, getSubmissionResult };\n};\n\n/**\n * Generates a success message with clickable URL\n * @param {Object} submissionResult - Result from ticket submission\n * @param {string} ticketType - Type of ticket for display purposes\n * @returns {string} Success message with clickable URL\n */\nexport const generateSuccessMessage = (submissionResult, ticketType = 'ticket') => {\n if (submissionResult && !submissionResult.success) {\n return `We apologize, but there was an error submitting your ${ticketType}: ${submissionResult.error}\\n\\nPlease try again or contact our support team directly.`;\n } else if (submissionResult && submissionResult.success && submissionResult.ticketUrl && submissionResult.ticketKey) {\n return `Your ${ticketType} has been submitted successfully.\\n\\nTicket: <a href=\"${submissionResult.ticketUrl}\" target=\"_blank\">${submissionResult.ticketKey}</a>\\n\\nOur support team will review your request and respond accordingly. Thank you for contacting ACCESS.`;\n } else if (submissionResult && submissionResult.success) {\n return `Your ${ticketType} has been submitted successfully.\\n\\nOur support team will review your request and respond accordingly. Thank you for contacting ACCESS.`;\n } else {\n return `Your ${ticketType} has been submitted successfully.\\n\\nOur support team will review your request and respond accordingly. Thank you for contacting ACCESS.`;\n }\n};\n\n/**\n * Generates file info string for summaries\n * @param {Array} uploadedFiles - Array of uploaded files\n * @returns {string} File information string\n */\nexport const getFileInfo = (uploadedFiles) => {\n if (uploadedFiles && uploadedFiles.length > 0) {\n return `\\nAttachments: ${uploadedFiles.length} file(s) attached`;\n }\n return '';\n};","/**\n * Utility functions for flows to access current form context\n * This solves the React closure issue by providing access to current form state\n */\n\n// Store a reference to the current form context for use in flow functions\nlet currentFormContext = null;\n\n/**\n * Sets the current form context reference\n * This should be called when the flow is created with the latest context\n */\nexport const setCurrentFormContext = (formContext) => {\n currentFormContext = formContext;\n};\n\n/**\n * Gets the current ticket form state\n * This always returns the latest state, not stale closure state\n */\nexport const getCurrentTicketForm = () => {\n if (!currentFormContext) {\n console.warn('Form context not available, returning empty form');\n return {};\n }\n const ticketForm = currentFormContext.ticketForm;\n return (ticketForm && typeof ticketForm === 'object') ? ticketForm : {};\n};\n\n/**\n * Gets the current feedback form state\n * This always returns the latest state, not stale closure state\n */\nexport const getCurrentFeedbackForm = () => {\n if (!currentFormContext) {\n console.warn('Form context not available, returning empty form');\n return {};\n }\n const feedbackForm = currentFormContext.feedbackForm;\n return (feedbackForm && typeof feedbackForm === 'object') ? feedbackForm : {};\n};\n\n/**\n * Updates the ticket form\n */\nexport const updateCurrentTicketForm = (updates) => {\n if (!currentFormContext) {\n console.warn('Form context not available, cannot update form');\n return;\n }\n currentFormContext.updateTicketForm(updates);\n};\n\n/**\n * Updates the feedback form\n */\nexport const updateCurrentFeedbackForm = (updates) => {\n if (!currentFormContext) {\n console.warn('Form context not available, cannot update form');\n return;\n }\n currentFormContext.updateFeedbackForm(updates);\n};\n\n/**\n * Gets a specific field value with fallback\n */\nexport const getCurrentFieldValue = (fieldName, formType = 'ticket', fallback = 'Not provided') => {\n const form = formType === 'ticket' ? getCurrentTicketForm() : getCurrentFeedbackForm();\n return (form && form[fieldName]) || fallback;\n};\n\n/**\n * Gets current form with user info merged\n */\nexport const getCurrentFormWithUserInfo = (userInfo = {}) => {\n const currentForm = getCurrentTicketForm() || {};\n const safeUserInfo = userInfo && typeof userInfo === 'object' ? userInfo : {};\n \n return {\n ...currentForm,\n email: safeUserInfo.email || currentForm.email,\n name: safeUserInfo.name || currentForm.name,\n accessId: safeUserInfo.username || currentForm.accessId\n };\n};","/**\n * Creates a validation function for optional fields that auto-fills with \"Not provided\"\n * and automatically submits when the user presses Enter on an empty field.\n * \n * @returns {Function} Validation function for optional fields\n */\nexport const createOptionalFieldValidator = () => {\n return (userInput) => {\n // If empty, auto-fill with \"Not provided\" and submit\n if (!userInput || userInput.trim() === '') {\n setTimeout(() => {\n const inputField = document.querySelector('.rcb-chat-input-textarea');\n if (inputField) {\n inputField.value = \"Not provided\";\n const inputEvent = new Event('input', { bubbles: true });\n inputField.dispatchEvent(inputEvent);\n \n // Auto-submit by triggering mousedown on send button\n setTimeout(() => {\n const sendButton = document.querySelector('.rcb-send-button, .rcb-chat-send-button, [aria-label*=\"send\"], button[type=\"submit\"]');\n if (sendButton) {\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n sendButton.dispatchEvent(mouseDownEvent);\n }\n }, 200);\n }\n }, 100);\n }\n \n return { success: true };\n };\n};\n\n/**\n * Processes optional field input, converting empty values to \"Not provided\"\n * \n * @param {string} userInput - The user's input\n * @returns {string} Processed input value\n */\nexport const processOptionalInput = (userInput) => {\n if (!userInput || userInput.trim() === '') {\n return \"Not provided\";\n }\n return userInput;\n};","/**\n * Email validation utility functions\n */\n\n/**\n * Validates email format using a comprehensive regex pattern\n * @param {string} email - The email address to validate\n * @returns {boolean} - True if email is valid, false otherwise\n */\nexport const isValidEmail = (email) => {\n if (!email || typeof email !== 'string') {\n return false;\n }\n \n // Comprehensive email regex pattern\n const emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n \n return emailRegex.test(email.trim());\n};\n\n/**\n * Creates email validation for chat bot flows\n * @param {string} email - The email to validate\n * @returns {Object} - Validation result with success boolean and message string\n */\nexport const validateEmail = (email) => {\n const trimmedEmail = email?.trim() || '';\n \n if (!trimmedEmail) {\n return {\n success: false,\n promptContent: \"Please enter an email address.\",\n promptDuration: 3000,\n promptType: 'error',\n highlightTextArea: true\n };\n }\n \n if (!isValidEmail(trimmedEmail)) {\n return {\n success: false,\n promptContent: \"Please enter a valid email address (e.g., user@example.com).\",\n promptDuration: 3000,\n promptType: 'error',\n highlightTextArea: true\n };\n }\n \n return {\n success: true\n };\n};","/**\n * Creates the help ticket conversation flow by combining modular ticket flows\n *\n * @param {Object} params Configuration\n * @param {Object} params.ticketForm Form state for help tickets\n * @param {Function} params.setTicketForm Function to update ticket form\n * @returns {Object} Help ticket flow configuration\n */\nimport { createAccessLoginFlow } from './tickets/access-login-flow';\nimport { createAffiliatedLoginFlow } from './tickets/affiliated-login-flow';\nimport { createGeneralHelpFlow } from './tickets/general-help-flow';\n\nexport const createTicketFlow = ({ ticketForm = {}, setTicketForm = () => {}, userInfo = {} }) => {\n // Import flows from modular ticket files\n const accessLoginFlow = createAccessLoginFlow({ ticketForm, setTicketForm, userInfo });\n const affiliatedLoginFlow = createAffiliatedLoginFlow({ ticketForm, setTicketForm, userInfo });\n const generalHelpFlow = createGeneralHelpFlow({ ticketForm, setTicketForm, userInfo });\n\n return {\n // Main ticket type selection\n help_ticket: {\n message: \"What is your help ticket related to?\",\n options: [\n \"Logging into ACCESS website\",\n \"Logging into a resource\",\n \"Another question\"\n ],\n chatDisabled: true,\n function: (chatState) => {\n setTicketForm({...(ticketForm || {}), ticketType: chatState.userInput});\n },\n path: (chatState) => {\n if (chatState.userInput === \"Logging into ACCESS website\") {\n return \"access_help\";\n } else if (chatState.userInput === \"Logging into a resource\") {\n return \"affiliated_help\";\n } else if (chatState.userInput === \"Another question\") {\n return \"general_help_summary_subject\";\n }\n return \"help_ticket\";\n }\n },\n\n // Combine all the modular flows\n ...accessLoginFlow,\n ...affiliatedLoginFlow,\n ...generalHelpFlow\n };\n};","import { \n createFileUploadComponent, \n createSubmissionHandler, \n generateSuccessMessage,\n getFileInfo\n} from './ticket-flow-utils';\nimport { getCurrentTicketForm, getCurrentFormWithUserInfo } from '../../flow-context-utils';\nimport { createOptionalFieldValidator, processOptionalInput } from '../../optional-field-utils';\nimport { validateEmail } from '../../validation-utils';\n\n/**\n * Creates the ACCESS login help ticket flow\n *\n * @param {Object} params Configuration\n * @param {Object} params.ticketForm Form state for help tickets\n * @param {Function} params.setTicketForm Function to update ticket form\n * @returns {Object} ACCESS login flow configuration\n */\nexport const createAccessLoginFlow = ({ ticketForm = {}, setTicketForm = () => {}, userInfo = {} }) => {\n const { submitTicket, getSubmissionResult } = createSubmissionHandler(setTicketForm);\n const fileUploadElement = createFileUploadComponent(setTicketForm, ticketForm);\n\n\n return {\n // PATH: ACCESS Login Help Path\n access_help: {\n message: \"If you're having trouble logging into the ACCESS website, here are some common issues:\\n\\n\" +\n \"• Make sure you're using a supported browser (Chrome, Firefox, Safari)\\n\" +\n \"• Clear your browser cookies and cache\\n\" +\n \"• Check if you're using the correct identity provider\\n\\n\" +\n \"Would you like to submit a help ticket for ACCESS login issues?\",\n options: [\"Yes, let's create a ticket\", \"Back to Main Menu\"],\n chatDisabled: true,\n path: (chatState) =>\n chatState.userInput === \"Yes, let's create a ticket\"\n ? \"access_login_description\"\n : \"start\"\n },\n\n // FORM flow - Access Login Form\n access_login_description: {\n message: \"Describe your login issue.\",\n function: (chatState) => {\n // Pre-populate form with user info on first step\n const currentForm = getCurrentTicketForm();\n const updatedForm = {\n ...currentForm,\n description: chatState.userInput,\n email: userInfo.email || currentForm.email,\n name: userInfo.name || currentForm.name,\n accessId: userInfo.username || currentForm.accessId\n };\n setTicketForm(updatedForm);\n },\n path: \"access_login_identity\"\n },\n access_login_identity: {\n message: \"Which identity provider were you using?\",\n options: [\"ACCESS\", \"Github\", \"Google\", \"Institution\", \"Microsoft\", \"ORCID\", \"Other\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, identityProvider: chatState.userInput});\n },\n path: \"access_login_browser\"\n },\n access_login_browser: {\n message: \"Which browser were you using?\",\n options: [\"Chrome\", \"Firefox\", \"Edge\", \"Safari\", \"Other\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, browser: chatState.userInput});\n },\n path: \"access_login_attachment\"\n },\n access_login_attachment: {\n message: \"Would you like to attach a screenshot?\",\n options: [\"Yes\", \"No\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, wantsAttachment: chatState.userInput});\n },\n path: (chatState) => chatState.userInput === \"Yes\"\n ? \"access_login_upload\"\n : ((chatState) => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.email) return \"access_login_email\";\n if (!formWithUserInfo.name) return \"access_login_name\";\n if (!formWithUserInfo.accessId) return \"access_login_accessid\";\n return \"access_login_summary\";\n })()\n },\n access_login_upload: {\n message: \"Please upload your screenshot.\",\n component: fileUploadElement,\n options: [\"Continue\"],\n chatDisabled: true,\n function: () => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, uploadConfirmed: true});\n },\n path: (chatState) => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.email) return \"access_login_email\";\n if (!formWithUserInfo.name) return \"access_login_name\";\n if (!formWithUserInfo.accessId) return \"access_login_accessid\";\n return \"access_login_summary\";\n }\n },\n access_login_email: {\n message: \"What is your email?\",\n validateTextInput: (email) => validateEmail(email),\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, email: chatState.userInput});\n },\n path: (chatState) => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.name) return \"access_login_name\";\n if (!formWithUserInfo.accessId) return \"access_login_accessid\";\n return \"access_login_summary\";\n }\n },\n access_login_name: {\n message: \"What is your name?\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, name: chatState.userInput});\n },\n path: (chatState) => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.accessId) return \"access_login_accessid\";\n return \"access_login_summary\";\n }\n },\n access_login_accessid: {\n message: \"What is your ACCESS ID? (Optional - press Enter to skip)\",\n validateTextInput: createOptionalFieldValidator(),\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, accessId: processOptionalInput(chatState.userInput)});\n },\n path: \"access_login_summary\"\n },\n access_login_summary: {\n message: (chatState) => {\n const currentForm = getCurrentTicketForm();\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n // Use current form state directly since Form Context always has fresh data\n const fileInfo = getFileInfo(currentForm.uploadedFiles);\n\n // Handle ACCESS ID timing issue - if coming from accessid step, use the input directly\n let finalAccessId = formWithUserInfo.accessId;\n if (chatState.prevPath === 'access_login_accessid' && chatState.userInput) {\n finalAccessId = chatState.userInput;\n } else if (!finalAccessId && chatState.prevPath === 'access_login_accessid') {\n finalAccessId = chatState.userInput;\n }\n\n return `Thank you for providing your ACCESS login issue details. Here's a summary:\\n\\n` +\n `Name: ${formWithUserInfo.name || 'Not provided'}\\n` +\n `Email: ${formWithUserInfo.email || 'Not provided'}\\n` +\n `ACCESS ID: ${finalAccessId || 'Not provided'}\\n` +\n `Identity Provider: ${currentForm.identityProvider || 'Not provided'}\\n` +\n `Browser: ${currentForm.browser || 'Not provided'}\\n` +\n `Issue Description: ${currentForm.description || 'Not provided'}${fileInfo}\\n\\n` +\n `Would you like to submit this ticket?`;\n },\n options: [\"Submit Ticket\", \"Back to Main Menu\"],\n chatDisabled: true,\n renderHtml: [\"BOT\", \"USER\"],\n function: async (chatState) => {\n if (chatState.userInput === \"Submit Ticket\") {\n const currentForm = getCurrentTicketForm();\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n const formData = {\n email: formWithUserInfo.email || \"\",\n userName: formWithUserInfo.name || \"\",\n accessId: formWithUserInfo.accessId || \"\",\n description: currentForm.description || \"\",\n // ProForma fields for request type 30\n identityProvider: currentForm.identityProvider || \"\",\n browser: currentForm.browser || \"\"\n };\n\n await submitTicket(formData, 'loginAccess', currentForm.uploadedFiles || []);\n }\n },\n path: (chatState) => {\n if (chatState.userInput === \"Submit Ticket\") {\n return \"access_login_success\";\n } else {\n return \"start\";\n }\n }\n },\n access_login_success: {\n message: () => {\n return generateSuccessMessage(getSubmissionResult(), 'ACCESS login ticket');\n },\n options: [\"Back to Main Menu\"],\n chatDisabled: true,\n renderHtml: [\"BOT\"],\n path: \"start\"\n }\n };\n};","import { \n createFileUploadComponent, \n createSubmissionHandler, \n generateSuccessMessage,\n getFileInfo\n} from './ticket-flow-utils';\nimport { getCurrentTicketForm, getCurrentFormWithUserInfo } from '../../flow-context-utils';\nimport { createOptionalFieldValidator, processOptionalInput } from '../../optional-field-utils';\nimport { validateEmail } from '../../validation-utils';\n\n/**\n * Creates the affiliated/resource provider login help ticket flow\n *\n * @param {Object} params Configuration\n * @param {Object} params.ticketForm Form state for help tickets\n * @param {Function} params.setTicketForm Function to update ticket form\n * @returns {Object} Affiliated login flow configuration\n */\nexport const createAffiliatedLoginFlow = ({ ticketForm = {}, setTicketForm = () => {}, userInfo = {} }) => {\n const { submitTicket, getSubmissionResult } = createSubmissionHandler(setTicketForm);\n const fileUploadElement = createFileUploadComponent(setTicketForm, ticketForm);\n\n\n return {\n // PATH: Affiliated/Resource Provider Login Help Path\n affiliated_help: {\n message: \"If you're having trouble logging into an affiliated infrastructure or resource provider, here are some common issues:\\n\\n\" +\n \"• Ensure your allocation is active\\n\" +\n \"• Confirm you have the correct username for that resource\\n\" +\n \"• Check <a href=\\\"https://operations.access-ci.org/infrastructure_news_view\\\">System Status News</a> to see if the resource is undergoing maintenance\\n\\n\" +\n \"Would you like to submit a help ticket for resource provider login issues?\",\n options: [\"Yes, let's create a ticket\", \"Back to Main Menu\"],\n chatDisabled: true,\n renderHtml: [\"BOT\"],\n path: (chatState) =>\n chatState.userInput === \"Yes, let's create a ticket\"\n ? \"affiliated_login_resource\"\n : \"start\"\n },\n\n // FORM flow - Affiliated/Resource Login\n affiliated_login_resource: {\n message: \"Which ACCESS Resource are you trying to access?\",\n options: [\n \"ACES\",\n \"Anvil\", \n \"Bridges-2\",\n \"DARWIN\",\n \"Delta\",\n \"DeltaAI\",\n \"Derecho\",\n \"Expanse\",\n \"FASTER\",\n \"Granite\",\n \"Jetstream2\",\n \"KyRIC\",\n \"Launch\",\n \"Neocortex\",\n \"Ookami\",\n \"Open Science Grid\",\n \"Open Storage Network\",\n \"Ranch\",\n \"Stampede3\"\n ],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, resource: chatState.userInput});\n },\n path: \"affiliated_login_userid\"\n },\n affiliated_login_userid: {\n message: \"What is your user ID at the resource?\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, userIdResource: chatState.userInput});\n },\n path: \"affiliated_login_description\"\n },\n affiliated_login_description: {\n message: \"Please describe the issue you're having logging in.\",\n function: (chatState) => {\n // Pre-populate form with user info on first step\n const currentForm = getCurrentTicketForm();\n const updatedForm = {\n ...currentForm,\n description: chatState.userInput,\n email: userInfo.email || currentForm.email,\n name: userInfo.name || currentForm.name,\n accessId: userInfo.username || currentForm.accessId\n };\n setTicketForm(updatedForm);\n },\n path: \"affiliated_login_attachment\"\n },\n affiliated_login_attachment: {\n message: \"Would you like to attach a screenshot?\",\n options: [\"Yes\", \"No\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, wantsAttachment: chatState.userInput});\n },\n path: (chatState) => chatState.userInput === \"Yes\"\n ? \"affiliated_login_upload\"\n : ((chatState) => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.email) return \"affiliated_login_email\";\n if (!formWithUserInfo.name) return \"affiliated_login_name\";\n if (!formWithUserInfo.accessId) return \"affiliated_login_accessid\";\n return \"affiliated_login_summary\";\n })()\n },\n affiliated_login_upload: {\n message: \"Please upload your screenshot.\",\n component: fileUploadElement,\n options: [\"Continue\"],\n chatDisabled: true,\n function: () => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, uploadConfirmed: true});\n },\n path: (chatState) => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.email) return \"affiliated_login_email\";\n if (!formWithUserInfo.name) return \"affiliated_login_name\";\n if (!formWithUserInfo.accessId) return \"affiliated_login_accessid\";\n return \"affiliated_login_summary\";\n }\n },\n affiliated_login_email: {\n message: \"What is your email?\",\n validateTextInput: (email) => validateEmail(email),\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, email: chatState.userInput});\n },\n path: (chatState) => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.name) return \"affiliated_login_name\";\n if (!formWithUserInfo.accessId) return \"affiliated_login_accessid\";\n return \"affiliated_login_summary\";\n }\n },\n affiliated_login_name: {\n message: \"What is your name?\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, name: chatState.userInput});\n },\n path: (chatState) => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.accessId) return \"affiliated_login_accessid\";\n return \"affiliated_login_summary\";\n }\n },\n affiliated_login_accessid: {\n message: \"What is your ACCESS ID? (Optional - press Enter to skip)\",\n validateTextInput: createOptionalFieldValidator(),\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, accessId: processOptionalInput(chatState.userInput)});\n },\n path: \"affiliated_login_summary\"\n },\n affiliated_login_summary: {\n message: (chatState) => {\n const currentForm = getCurrentTicketForm();\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n // Use current form state directly since Form Context always has fresh data\n const fileInfo = getFileInfo(currentForm.uploadedFiles);\n\n // Handle ACCESS ID timing issue - if coming from accessid step, use the input directly\n let finalAccessId = formWithUserInfo.accessId;\n if (chatState.prevPath === 'affiliated_login_accessid' && chatState.userInput) {\n finalAccessId = chatState.userInput;\n } else if (!finalAccessId && chatState.prevPath === 'affiliated_login_accessid') {\n finalAccessId = chatState.userInput;\n }\n\n return `Thank you for providing your resource login issue details. Here's a summary:\\n\\n` +\n `Name: ${formWithUserInfo.name || 'Not provided'}\\n` +\n `Email: ${formWithUserInfo.email || 'Not provided'}\\n` +\n `ACCESS ID: ${finalAccessId || 'Not provided'}\\n` +\n `Resource: ${currentForm.resource || 'Not provided'}\\n` +\n `Resource User ID: ${currentForm.userIdResource || 'Not provided'}\\n` +\n `Issue Description: ${currentForm.description || 'Not provided'}${fileInfo}\\n\\n` +\n `Would you like to submit this ticket?`;\n },\n options: [\"Submit Ticket\", \"Back to Main Menu\"],\n chatDisabled: true,\n function: async (chatState) => {\n if (chatState.userInput === \"Submit Ticket\") {\n const currentForm = getCurrentTicketForm();\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n const formData = {\n email: formWithUserInfo.email || \"\",\n userName: formWithUserInfo.name || \"\",\n accessId: formWithUserInfo.accessId || \"\",\n accessResource: currentForm.resource || \"\",\n description: currentForm.description || \"\",\n // ProForma field for request type 31\n userIdAtResource: currentForm.userIdResource || \"\"\n };\n\n await submitTicket(formData, 'loginProvider', currentForm.uploadedFiles || []);\n }\n },\n path: (chatState) => {\n if (chatState.userInput === \"Submit Ticket\") {\n return \"affiliated_login_success\";\n } else {\n return \"start\";\n }\n }\n },\n affiliated_login_success: {\n message: () => {\n return generateSuccessMessage(getSubmissionResult(), 'resource login ticket');\n },\n options: [\"Back to Main Menu\"],\n chatDisabled: true,\n renderHtml: [\"BOT\"],\n path: \"start\"\n }\n };\n};","import { \n createFileUploadComponent, \n createSubmissionHandler, \n generateSuccessMessage,\n getFileInfo\n} from './ticket-flow-utils';\nimport { getCurrentTicketForm, getCurrentFormWithUserInfo } from '../../flow-context-utils';\nimport { createOptionalFieldValidator, processOptionalInput } from '../../optional-field-utils';\nimport { validateEmail } from '../../validation-utils';\n\n/**\n * Creates the enhanced general help ticket flow with ProForma field support\n *\n * @param {Object} params Configuration\n * @param {Object} params.ticketForm Form state for help tickets\n * @param {Function} params.setTicketForm Function to update ticket form\n * @returns {Object} Enhanced general help flow configuration\n */\nexport const createGeneralHelpFlow = ({ ticketForm = {}, setTicketForm = () => {}, userInfo = {} }) => {\n const { submitTicket, getSubmissionResult } = createSubmissionHandler(setTicketForm);\n const fileUploadElement = createFileUploadComponent(setTicketForm, ticketForm);\n\n\n return {\n // FORM flow - Enhanced General Help Ticket Form Flow\n general_help_summary_subject: {\n message: \"Provide a short title for your ticket.\",\n function: (chatState) => {\n // Pre-populate form with user info on first step\n const currentForm = getCurrentTicketForm();\n const updatedForm = {\n ...currentForm,\n summary: chatState.userInput,\n email: userInfo.email || currentForm.email,\n name: userInfo.name || currentForm.name,\n accessId: userInfo.username || currentForm.accessId\n };\n setTicketForm(updatedForm);\n },\n path: \"general_help_category\"\n },\n general_help_category: {\n message: \"What type of issue are you experiencing?\",\n options: [\n \"User Account Question\",\n \"Allocation Question\",\n \"User Support Question\",\n \"CSSN/CCEP Question\",\n \"Training Question\",\n \"Metrics Question\",\n \"OnDemand Question\",\n \"Pegasus Question\",\n \"XDMoD Question\",\n \"Some Other Question\"\n ],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, category: chatState.userInput});\n },\n path: \"general_help_description\"\n },\n general_help_description: {\n message: \"Please describe your issue.\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, description: chatState.userInput});\n },\n path: \"general_help_attachment\"\n },\n general_help_attachment: {\n message: \"Would you like to attach a file to your ticket?\",\n options: [\"Yes\", \"No\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, wantsAttachment: chatState.userInput});\n },\n path: (chatState) => chatState.userInput === \"Yes\"\n ? \"general_help_upload\"\n : \"general_help_resource\"\n },\n general_help_upload: {\n message: \"Please upload your file.\",\n component: fileUploadElement,\n options: [\"Continue\"],\n chatDisabled: true,\n function: () => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, uploadConfirmed: true});\n },\n path: \"general_help_resource\"\n },\n general_help_resource: {\n message: \"Does your problem involve an ACCESS Resource?\",\n options: [\"Yes\", \"No\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, involvesResource: chatState.userInput.toLowerCase()});\n },\n path: (chatState) => chatState.userInput === \"Yes\"\n ? \"general_help_resource_details\"\n : \"general_help_keywords\"\n },\n general_help_resource_details: {\n message: \"Please select the ACCESS Resource involved with your issue:\",\n options: [\n \"ACES\",\n \"Anvil\",\n \"Bridges-2\",\n \"DARWIN\",\n \"Delta\",\n \"DeltaAI\",\n \"Derecho\",\n \"Expanse\",\n \"FASTER\",\n \"Granite\",\n \"Jetstream2\",\n \"KyRIC\",\n \"Launch\",\n \"Neocortex\",\n \"Ookami\",\n \"Open Science Grid\",\n \"Open Storage Network\",\n \"Ranch\",\n \"Stampede3\"\n ],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, resourceDetails: chatState.userInput});\n },\n path: \"general_help_user_id_at_resource\"\n },\n // NEW: Collect User ID at Resource (ProForma field)\n general_help_user_id_at_resource: {\n message: \"What is your User ID at the selected resource(s)? (Optional - press Enter to skip)\",\n validateTextInput: createOptionalFieldValidator(),\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, userIdAtResource: processOptionalInput(chatState.userInput)});\n },\n path: \"general_help_keywords\"\n },\n general_help_keywords: {\n message: \"Please add up to 5 keywords to help route your ticket.\",\n checkboxes: {\n items: [\n \" C, C++\",\n \"Abaqus\",\n \"ACCESS\",\n \"ACCESS-credits\",\n \"ACCESS-website\",\n \"Accounts\",\n \"ACLS\",\n \"Adding users\",\n \"Affiliations\",\n \"Affinity Groups\",\n \"AI\",\n \"Algorithms\",\n \"Allocation extension\",\n \"Allocation Management\",\n \"Allocation proposal\",\n \"Allocation Time\",\n \"Allocation users\",\n \"AMBER\",\n \"AMIE\",\n \"Anaconda\",\n \"Analysis\",\n \"API\",\n \"Application Status\",\n \"ARCGIS\",\n \"Architecture\",\n \"Archiving\",\n \"Astrophysics\",\n \"ATLAS\",\n \"Authentication\",\n \"AWS\",\n \"AZURE\",\n \"Backup\",\n \"BASH\",\n \"Batch Jobs\",\n \"Benchmarking\",\n \"Big Data\",\n \"Bioinformatics\",\n \"Biology\",\n \"Ceph\",\n \"CFD\",\n \"cgroups\",\n \"CHARMM\",\n \"Checkpoint\",\n \"cilogon\",\n \"citation\",\n \"Cloud\",\n \"Cloud Computing\",\n \"Cloud Lab\",\n \"Cloud Storage\",\n \"Cluster Management\",\n \"Cluster Support\",\n \"CMMC\",\n \"Community Outreach\",\n \"Compiling\",\n \"Composible Systems\",\n \"Computataional Chemistry\",\n \"COMSOL\",\n \"Conda\",\n \"Condo\",\n \"Containers\",\n \"Core dump\",\n \"Core hours\",\n \"CP2K\",\n \"CPU architecture\",\n \"CPU bound\",\n \"CUDA\",\n \"Cybersecurity\",\n \"CYVERSE\",\n \"Data\",\n \"Data Storage\",\n \"Data-access-protocols\",\n \"Data-analysis\",\n \"Data-compliance\",\n \"Data-lifecycle\",\n \"Data-management\",\n \"Data-management-software\",\n \"Data-provenance\",\n \"Data-reproducibility\",\n \"Data-retention\",\n \"Data-science\",\n \"Data-sharing\",\n \"Data-transfer\",\n \"Data-wrangling\",\n \"Database-update\",\n \"Debugging\",\n \"Debugging, Optimizatio and Profiling\",\n \"Deep-learning\",\n \"Dependencies\",\n \"Deployment\",\n \"DFT\",\n \"Distributed-computing\",\n \"DNS\",\n \"Docker\",\n \"Documentation\",\n \"DOI\",\n \"DTN\",\n \"Easybuild\",\n \"Email\",\n \"Encryption\",\n \"Environment-modules\",\n \"Errors\",\n \"Extension\",\n \"FastX\",\n \"Federated-authentication\",\n \"File transfers\",\n \"File-formats\",\n \"File-limits\",\n \"File-systems\",\n \"File-transfer\",\n \"Finite-element-analysis\",\n \"Firewall\",\n \"Fortran\",\n \"Frameworks and IDE's\",\n \"GAMESS\",\n \"Gateways\",\n \"GATK\",\n \"Gaussian\",\n \"GCC\",\n \"Genomics\",\n \"GIS\",\n \"Git\",\n \"Globus\",\n \"GPFS\",\n \"GPU\",\n \"Gravitational-waves\",\n \"Gridengine\",\n \"GROMACS\",\n \"Hadoop\",\n \"Hardware\",\n \"Image-processing\",\n \"Infiniband\",\n \"Interactive-mode\",\n \"Interconnect\",\n \"IO-Issue\",\n \"ISILON\",\n \"Java\",\n \"Jekyll\",\n \"Jetstream\",\n \"Job-accounting\",\n \"Job-array\",\n \"Job-charging\",\n \"Job-failure\",\n \"Job-sizing\",\n \"Job-submission\",\n \"Julia\",\n \"Jupyterhub\",\n \"Key-management\",\n \"Kubernetes\",\n \"KyRIC\",\n \"LAMMPS\",\n \"Library-paths\",\n \"License\",\n \"Linear-programming\",\n \"Linux\",\n \"LMOD\",\n \"login\",\n \"LSF\",\n \"Lustre\",\n \"Machine-learning\",\n \"Management\",\n \"Materials-science\",\n \"Mathematica\",\n \"MATLAB\",\n \"Memory\",\n \"Metadata\",\n \"Modules\",\n \"Molecular-dynamics\",\n \"Monte-carlo\",\n \"MPI\",\n \"NAMD\",\n \"NetCDF\",\n \"Networking\",\n \"Neural-networks\",\n \"NFS\",\n \"NLP\",\n \"NoMachine\",\n \"Nvidia\",\n \"Oceanography\",\n \"OnDemnad\",\n \"Open-science-grid\",\n \"Open-storage-network\",\n \"OpenCV\",\n \"Openfoam\",\n \"OpenMP\",\n \"OpenMPI\",\n \"OpenSHIFT\",\n \"Openstack\",\n \"Optimization\",\n \"OS\",\n \"OSG\",\n \"Parallelization\",\n \"Parameter-sweeps\",\n \"Paraview\",\n \"Particle-physics\",\n \"password\",\n \"PBS\",\n \"Pegasus\",\n \"Pending-jobs\",\n \"Performance-tuning\",\n \"Permissions\",\n \"Physiology\",\n \"PIP\",\n \"PODMAN\",\n \"Portals\",\n \"Pre-emption\",\n \"Professional and Workforce Development\",\n \"Professional-development\",\n \"Profile\",\n \"Profiling\",\n \"Programming\",\n \"Programming Languages\",\n \"Programming-best-practices\",\n \"Project-management\",\n \"Project-renewal\",\n \"Provisioning\",\n \"Pthreads\",\n \"Publication-database\",\n \"Putty\",\n \"Python\",\n \"Pytorch\",\n \"Quantum-computing\",\n \"Quantum-mechanics\",\n \"Quota\",\n \"R\",\n \"RDP\",\n \"React\",\n \"Reporting\",\n \"Research-facilitation\",\n \"Research-grants\",\n \"Resources\",\n \"Rstudio-server\",\n \"S3\",\n \"Samba\",\n \"SAS\",\n \"Scaling\",\n \"Schedulers\",\n \"Scheduling\",\n \"Science DMZ\",\n \"Science Gateways\",\n \"Scikit-learn\",\n \"Scratch\",\n \"screen\",\n \"scripting\",\n \"SDN\",\n \"Secure Computing and Data\",\n \"Secure-data-architecture\",\n \"Serverless-hpc\",\n \"setup\",\n \"sftp\",\n \"SGE\",\n \"Shell Scripting\",\n \"Shifter\",\n \"Singularity\",\n \"SLURM\",\n \"SMB\",\n \"Smrtanalysis\",\n \"Software Installations\",\n \"Software-carpentry\",\n \"SPACK\",\n \"SPARK\",\n \"Spectrum-scale\",\n \"SPSS\",\n \"SQL\",\n \"SSH\",\n \"Stampede2\",\n \"STATA\",\n \"Storage\",\n \"Supplement\",\n \"Support\",\n \"TCP\",\n \"Technical-training-for-hpc\",\n \"Tensorflow\",\n \"Terminal-emulation-and-window-management\",\n \"Tickets\",\n \"Timing-issue\",\n \"TMUX\",\n \"Tools\",\n \"Training\",\n \"Transfer SUs\",\n \"Trinity\",\n \"Tuning\",\n \"Unix-environment\",\n \"Upgrading\",\n \"Vectorization\",\n \"Version-control\",\n \"vim\",\n \"VNC\",\n \"VPN\",\n \"Workflow\",\n \"Workforce-development\",\n \"X11\",\n \"Xalt\",\n \"XDMoD\",\n \"XML\",\n \"XSEDE\",\n \"I don't see a relevant keyword\"\n ],\n min: 0,\n max: 5\n },\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, keywords: chatState.userInput});\n },\n path: (chatState) => {\n if (chatState.userInput && chatState.userInput.includes(\"I don't see a relevant keyword\")) {\n return \"general_help_additional_keywords\";\n } else {\n return \"general_help_priority\";\n }\n }\n },\n general_help_additional_keywords: {\n message: \"Please enter additional keywords, separated by commas:\",\n function: (chatState) => {\n // Get the current keywords selected from checkboxes\n const currentForm = getCurrentTicketForm();\n const currentKeywords = currentForm.keywords || [];\n const additionalKeywords = chatState.userInput;\n\n // Ensure we're working with arrays for consistency\n const keywordsArray = Array.isArray(currentKeywords)\n ? [...currentKeywords]\n : currentKeywords.split(',').map(k => k.trim());\n\n // Filter out \"I don't see a relevant keyword\" from the keywords\n const filteredKeywords = keywordsArray.filter(k => k !== \"I don't see a relevant keyword\");\n\n // Add the additional keywords - this will map to suggestedKeyword ProForma field\n const formattedKeywords = Array.isArray(filteredKeywords) && filteredKeywords.length > 0\n ? [...filteredKeywords, additionalKeywords].join(\", \")\n : additionalKeywords;\n\n setTicketForm({\n ...currentForm,\n keywords: formattedKeywords,\n suggestedKeyword: additionalKeywords // NEW: Store separately for ProForma mapping\n });\n },\n path: \"general_help_priority\"\n },\n general_help_priority: {\n message: \"Please select a priority for your issue:\",\n options: [\"Lowest\", \"Low\", \"Medium\", \"High\", \"Highest\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, priority: chatState.userInput.toLowerCase()});\n },\n path: (chatState) => {\n if (!userInfo.email) return \"general_help_email\";\n if (!userInfo.name) return \"general_help_name\";\n if (!userInfo.username) return \"general_help_accessid\";\n return \"general_help_ticket_summary\";\n }\n },\n general_help_email: {\n message: \"What is your email address?\",\n validateTextInput: (email) => validateEmail(email),\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, email: chatState.userInput});\n },\n path: (chatState) => {\n if (!userInfo.name) return \"general_help_name\";\n if (!userInfo.username) return \"general_help_accessid\";\n return \"general_help_ticket_summary\";\n }\n },\n general_help_name: {\n message: \"What is your name?\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, name: chatState.userInput});\n },\n path: (chatState) => {\n if (!userInfo.username) return \"general_help_accessid\";\n return \"general_help_ticket_summary\";\n }\n },\n general_help_accessid: {\n message: \"What is your ACCESS ID? (Optional - press Enter to skip)\",\n required: false,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, accessId: chatState.userInput || \"\"});\n },\n path: \"general_help_ticket_summary\"\n },\n general_help_ticket_summary: {\n message: (chatState) => {\n // Get current form state from context (always up-to-date)\n const currentForm = getCurrentTicketForm();\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n \n // Use current form state directly since Form Context always has fresh data\n const fileInfo = getFileInfo(currentForm.uploadedFiles);\n\n // Handle ACCESS ID timing issue - if coming from accessid step, use the input directly\n let finalAccessId = formWithUserInfo.accessId;\n if (chatState.prevPath === 'general_help_accessid' && chatState.userInput) {\n finalAccessId = chatState.userInput;\n } else if (!finalAccessId && chatState.prevPath === 'general_help_accessid') {\n finalAccessId = chatState.userInput;\n }\n\n let resourceInfo = '';\n if (currentForm.involvesResource === 'yes') {\n resourceInfo = `\\nResource: ${currentForm.resourceDetails || 'Not specified'}`;\n if (currentForm.userIdAtResource) {\n resourceInfo += `\\nUser ID at Resource: ${currentForm.userIdAtResource}`;\n }\n }\n\n return `Thank you for providing your issue details. Here's a summary:\\n\\n` +\n `Name: ${formWithUserInfo.name || 'Not provided'}\\n` +\n `Email: ${formWithUserInfo.email || 'Not provided'}\\n` +\n `ACCESS ID: ${finalAccessId || 'Not provided'}\\n` +\n `Issue Summary: ${currentForm.summary || 'Not provided'}\\n` +\n `Category: ${currentForm.category || 'Not provided'}\\n` +\n `Priority: ${currentForm.priority || 'Not provided'}\\n` +\n `Keywords: ${currentForm.keywords || 'Not provided'}\\n` +\n `Issue Description: ${currentForm.description || 'Not provided'}${resourceInfo}${fileInfo}\\n\\n` +\n `Would you like to submit this ticket?`;\n },\n options: [\"Submit Ticket\", \"Back to Main Menu\"],\n chatDisabled: true,\n function: async (chatState) => {\n if (chatState.userInput === \"Submit Ticket\") {\n const currentForm = getCurrentTicketForm();\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n const formData = {\n // Regular JSM fields\n email: formWithUserInfo.email || \"\",\n summary: currentForm.summary || \"General Support Ticket\",\n description: currentForm.description || \"\",\n priority: currentForm.priority || \"medium\",\n accessId: formWithUserInfo.accessId || \"\",\n userName: formWithUserInfo.name || \"\",\n issueType: currentForm.category || \"\",\n // ProForma fields for request type 17\n hasResourceProblem: currentForm.involvesResource === 'yes' ? 'Yes' : 'No',\n userIdAtResource: currentForm.userIdAtResource || \"\",\n resourceName: currentForm.resourceDetails || \"\",\n keywords: currentForm.keywords || \"\",\n noRelevantKeyword: currentForm.suggestedKeyword ? 'checked' : '',\n suggestedKeyword: currentForm.suggestedKeyword || \"\"\n };\n\n await submitTicket(formData, 'support', currentForm.uploadedFiles || []);\n }\n },\n path: (chatState) => {\n if (chatState.userInput === \"Submit Ticket\") {\n return \"general_help_success\";\n } else {\n return \"start\";\n }\n }\n },\n general_help_success: {\n message: () => {\n return generateSuccessMessage(getSubmissionResult(), 'support ticket');\n },\n options: [\"Back to Main Menu\"],\n chatDisabled: true,\n renderHtml: [\"BOT\"],\n path: \"start\"\n }\n };\n};","import React from 'react';\nimport FileUploadComponent from '../../components/FileUploadComponent';\nimport { submitSecurityIncident } from '../api-utils';\nimport { getCurrentTicketForm, getCurrentFormWithUserInfo } from '../flow-context-utils';\nimport { createOptionalFieldValidator, processOptionalInput } from '../optional-field-utils';\n\n/**\n * Creates the security incident conversation flow\n *\n * @param {Object} params Configuration\n * @param {Object} params.ticketForm Form state for security incident\n * @param {Function} params.setTicketForm Function to update security incident form\n * @param {Object} params.userInfo User information for pre-population\n * @returns {Object} Security incident flow configuration\n */\nexport const createSecurityFlow = ({\n ticketForm = {},\n setTicketForm = () => {},\n userInfo = {}\n}) => {\n // Store the most recent ACCESS ID input to handle timing issues\n let mostRecentAccessId = null;\n \n // Store submission result for success message\n let submissionResult = null;\n \n // Custom success message for security incidents\n const generateSecuritySuccessMessage = (result) => {\n if (result && !result.success) {\n return `We apologize, but there was an error submitting your security incident report: ${result.error}\\n\\nPlease try again or contact our cybersecurity team directly.`;\n } else if (result && result.success && result.ticketUrl && result.ticketKey) {\n return `Your security incident report has been submitted successfully.\\n\\nTicket: <a href=\"${result.ticketUrl}\" target=\"_blank\">${result.ticketKey}</a>\\n\\nOur cybersecurity team will review your report and respond accordingly. Thank you for helping keep ACCESS secure.`;\n } else if (result && result.success) {\n return `Your security incident report has been submitted successfully.\\n\\nOur cybersecurity team will review your report and respond accordingly. Thank you for helping keep ACCESS secure.`;\n } else {\n return `Your security incident report has been submitted successfully.\\n\\nOur cybersecurity team will review your report and respond accordingly. Thank you for helping keep ACCESS secure.`;\n }\n };\n // Store the FileUploadComponent JSX in a variable for better readability\n const fileUploadElement = (\n <FileUploadComponent\n onFileUpload={(files) => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({\n ...currentForm,\n uploadedFiles: files\n });\n }}\n />\n );\n\n return {\n security_incident: {\n message: \"You're reporting a security incident. Please provide a brief summary of the security concern.\",\n function: (chatState) => {\n // Pre-populate form with user info on first step\n const currentForm = getCurrentTicketForm() || {};\n const updatedForm = {\n ...currentForm,\n summary: chatState.userInput,\n email: userInfo.email || currentForm.email,\n name: userInfo.name || currentForm.name,\n accessId: userInfo.username || currentForm.accessId\n };\n setTicketForm(updatedForm);\n },\n path: \"security_priority\"\n },\n security_priority: {\n message: \"What is the priority level of this security incident?\",\n options: [\"Critical\", \"High\", \"Medium\", \"Low\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, priority: chatState.userInput});\n },\n path: \"security_description\"\n },\n security_description: {\n message: \"Please provide a detailed description of the security incident or concern.\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, description: chatState.userInput});\n },\n path: \"security_attachment\"\n },\n security_attachment: {\n message: \"Do you have any files (screenshots, logs, etc.) that would help with this security incident?\",\n options: [\"Yes\", \"No\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, wantsAttachment: chatState.userInput});\n },\n path: (chatState) => chatState.userInput === \"Yes\"\n ? \"security_upload\"\n : \"security_contact_info\"\n },\n security_upload: {\n message: \"Please upload your files.\",\n component: fileUploadElement,\n options: [\"Continue\"],\n chatDisabled: true,\n function: () => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, uploadConfirmed: true});\n },\n path: \"security_contact_info\"\n },\n security_contact_info: {\n message: (chatState) => {\n // Always merge with user info to get the most current data\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (formWithUserInfo.name && formWithUserInfo.email && formWithUserInfo.accessId) {\n return `I have your contact information:\\n\\nName: ${formWithUserInfo.name}\\nEmail: ${formWithUserInfo.email}\\nACCESS ID: ${formWithUserInfo.accessId}\\n\\nIs this correct?`;\n }\n return \"I need your contact information. What is your name?\";\n },\n options: (chatState) => {\n if (!chatState) return [];\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n return (formWithUserInfo.name && formWithUserInfo.email && formWithUserInfo.accessId) \n ? [\"Yes, that's correct\", \"Let me update it\"]\n : [];\n },\n chatDisabled: (chatState) => {\n if (!chatState) return false;\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n // Only disable chat when we have all info (showing confirmation buttons)\n // Enable chat when we need user to type their info\n const hasAllInfo = formWithUserInfo.name && formWithUserInfo.email && formWithUserInfo.accessId;\n return hasAllInfo; // Disable only when showing options, enable when expecting input\n },\n function: (chatState) => {\n if (!chatState) return;\n const currentForm = getCurrentTicketForm() || {};\n if (!currentForm.name) {\n // User is providing their name\n const updatedForm = {...currentForm, name: chatState.userInput};\n setTicketForm(updatedForm);\n }\n },\n path: (chatState) => {\n if (!chatState) return \"security_summary\";\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (chatState.userInput === \"Yes, that's correct\") {\n return \"security_summary\";\n } else if (chatState.userInput === \"Let me update it\") {\n return \"security_name\";\n } else if (!formWithUserInfo.name) {\n return \"security_email\";\n } else if (!formWithUserInfo.email) {\n return \"security_email\";\n } else if (!formWithUserInfo.accessId) {\n return \"security_accessid\";\n }\n return \"security_summary\";\n }\n },\n security_name: {\n message: \"What is your name?\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, name: chatState.userInput});\n },\n path: \"security_email\"\n },\n security_email: {\n message: \"What is your email address?\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, email: chatState.userInput});\n },\n path: \"security_accessid\"\n },\n security_accessid: {\n message: \"What is your ACCESS ID? (Optional - press Enter to skip)\",\n validateTextInput: createOptionalFieldValidator(),\n function: (chatState) => {\n // Store the processed input\n const finalInput = processOptionalInput(chatState.userInput);\n mostRecentAccessId = finalInput;\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, accessId: finalInput});\n },\n path: \"security_summary\"\n },\n security_summary: {\n message: (chatState) => {\n // Get current form state from context\n const currentForm = getCurrentTicketForm() || {};\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n \n // Create a merged form that includes the most recent data\n const finalForm = {\n ...currentForm,\n name: formWithUserInfo.name || currentForm.name,\n email: formWithUserInfo.email || currentForm.email,\n accessId: mostRecentAccessId || formWithUserInfo.accessId || currentForm.accessId\n };\n \n let fileInfo = '';\n if (currentForm.uploadedFiles && currentForm.uploadedFiles.length > 0) {\n fileInfo = `\\nAttachments: ${currentForm.uploadedFiles.length} file(s) attached`;\n }\n\n const accessIdDisplay = finalForm.accessId || 'Not provided';\n \n return `Here's a summary of your security incident report:\\n\\n` +\n `Summary: ${finalForm.summary || 'Not provided'}\\n` +\n `Priority: ${finalForm.priority || 'Not provided'}\\n` +\n `Name: ${finalForm.name || 'Not provided'}\\n` +\n `Email: ${finalForm.email || 'Not provided'}\\n` +\n `ACCESS ID: ${accessIdDisplay}\\n` +\n `Description: ${finalForm.description || 'Not provided'}${fileInfo}\\n\\n` +\n `Would you like to submit this security incident report?`;\n },\n options: [\"Submit Security Report\", \"Back to Main Menu\"],\n chatDisabled: true,\n function: async (chatState) => {\n if (chatState.userInput === \"Submit Security Report\") {\n const currentForm = getCurrentTicketForm() || {};\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n \n // Create final merged form to handle timing issues\n const finalForm = {\n ...currentForm,\n name: formWithUserInfo.name || currentForm.name,\n email: formWithUserInfo.email || currentForm.email,\n accessId: mostRecentAccessId || formWithUserInfo.accessId || currentForm.accessId\n };\n \n // Prepare form data for security incident submission\n const formData = {\n summary: finalForm.summary || \"\",\n priority: finalForm.priority || \"\",\n description: finalForm.description || \"\",\n name: finalForm.name || \"\",\n email: finalForm.email || \"\",\n accessId: finalForm.accessId || \"\"\n };\n\n try {\n // Submit the security incident\n const result = await submitSecurityIncident(\n formData,\n currentForm.uploadedFiles || []\n );\n\n if (result.success) {\n submissionResult = {\n success: true,\n ticketKey: result.data?.data?.ticketKey,\n ticketUrl: result.data?.data?.ticketUrl\n };\n setTicketForm(prevForm => ({\n ...prevForm,\n ticketKey: result.data?.data?.ticketKey,\n ticketUrl: result.data?.data?.ticketUrl\n }));\n } else {\n submissionResult = {\n success: false,\n error: result.error\n };\n setTicketForm(prevForm => ({\n ...prevForm,\n submissionError: result.error\n }));\n }\n } catch (error) {\n submissionResult = {\n success: false,\n error: error.message\n };\n setTicketForm(prevForm => ({\n ...prevForm,\n submissionError: error.message\n }));\n }\n }\n },\n path: (chatState) => {\n if (chatState.userInput === \"Submit Security Report\") {\n return \"security_success\";\n } else {\n return \"start\";\n }\n }\n },\n security_success: {\n message: () => {\n return generateSecuritySuccessMessage(submissionResult);\n },\n options: [\"Back to Main Menu\"],\n chatDisabled: true,\n renderHtml: [\"BOT\"],\n path: \"start\"\n }\n };\n};","import React from 'react';\nimport LoginButton from '../components/LoginButton';\nimport { buildWelcomeMessage } from '../config/constants';\nimport { createMainMenuFlow } from './flows/main-menu-flow';\nimport { createQAFlow } from './flows/qa-flow';\nimport { createTicketFlow } from './flows/ticket-flow';\n// import { createFeedbackFlow } from './flows/feedback-flow';\nimport { createSecurityFlow } from './flows/security-flow';\nimport { setCurrentFormContext } from './flow-context-utils';\n\nfunction createBotFlow({\n welcomeMessage,\n isBotLoggedIn,\n loginUrl,\n handleQuery,\n hasQueryError,\n sessionId,\n currentQueryId,\n ticketForm = {},\n setTicketForm = () => {},\n feedbackForm = {},\n setFeedbackForm = () => {},\n formContext,\n userInfo = {}\n}) {\n // Set the current form context for use in flow functions\n if (formContext) {\n setCurrentFormContext(formContext);\n }\n // Always create the main menu flow (available to everyone)\n const mainMenuFlow = createMainMenuFlow({\n welcome: buildWelcomeMessage(true, welcomeMessage), // Always use logged-in style welcome\n setTicketForm,\n setFeedbackForm\n });\n\n // Create Q&A flow (requires login)\n const qaFlow = isBotLoggedIn\n ? createQAFlow({\n fetchAndStreamResponse: handleQuery,\n sessionId,\n currentQueryId\n })\n : {\n go_ahead_and_ask: {\n message: \"To ask questions, you need to log in first.\",\n component: <LoginButton loginUrl={loginUrl} />,\n options: [\"Back to Main Menu\"],\n chatDisabled: true,\n path: (chatState) => {\n if (chatState.userInput === \"Back to Main Menu\") {\n return \"start\";\n }\n return \"go_ahead_and_ask\";\n }\n }\n };\n\n // Create ticket and feedback flows (available to everyone)\n const ticketFlow = createTicketFlow({\n ticketForm,\n setTicketForm,\n userInfo\n });\n\n // const feedbackFlow = createFeedbackFlow({\n // feedbackForm,\n // setFeedbackForm,\n // userInfo\n // });\n\n const securityFlow = createSecurityFlow({\n ticketForm,\n setTicketForm,\n userInfo\n });\n\n // Combine all flows with null safety\n const flow = {\n ...(mainMenuFlow || {}),\n ...(qaFlow || {}),\n ...(ticketFlow || {}),\n // ...(feedbackFlow || {}),\n ...(securityFlow || {}),\n // Add fallback loop for errors (only if logged in)\n ...(isBotLoggedIn && {\n loop: {\n message: async (params) => {\n await handleQuery(params);\n },\n path: () => hasQueryError ? 'start' : 'loop'\n }\n })\n };\n\n return flow;\n}\n\nexport { createBotFlow };\n","/**\n * Creates the main menu conversation flow\n *\n * @param {Object} params Configuration\n * @param {string} params.welcome Welcome text\n * @param {Function} params.setTicketForm Function to reset ticket form\n * @param {Function} params.setFeedbackForm Function to reset feedback form\n * @returns {Object} Main menu flow configuration\n */\nexport const createMainMenuFlow = ({\n welcome,\n setTicketForm = () => {},\n setFeedbackForm = () => {}\n}) => {\n return {\n start: {\n message: welcome,\n options: [\n \"Ask a question about ACCESS\", // AI loop\n \"Open a Help Ticket\", // Jira Ticket\n //\"Provide feedback to ACCESS\", // Feedback\n \"Report a security issue\" // Security\n ],\n chatDisabled: true,\n path: (chatState) => {\n if (chatState.userInput === \"Ask a question about ACCESS\") {\n return \"go_ahead_and_ask\";\n } else if (chatState.userInput === \"Open a Help Ticket\") {\n // Reset form data\n setTicketForm({});\n return \"help_ticket\";\n // } else if (chatState.userInput === \"Provide feedback to ACCESS\") {\n // // Reset form data\n // setFeedbackForm({});\n // return \"feedback\";\n } else if (chatState.userInput === \"Report a security issue\") {\n // Reset form data\n setTicketForm({});\n return \"security_incident\";\n }\n return \"start\";\n }\n }\n };\n};","import React, { createContext, useContext, useState } from 'react';\n\n// Create the Form Context\nconst FormContext = createContext();\n\n// Form Provider component\nexport const FormProvider = ({ children }) => {\n const [ticketForm, setTicketForm] = useState({});\n const [feedbackForm, setFeedbackForm] = useState({});\n\n const updateTicketForm = (updates) => {\n setTicketForm(prevForm => ({\n ...prevForm,\n ...updates\n }));\n };\n\n const updateFeedbackForm = (updates) => {\n setFeedbackForm(prevForm => ({\n ...prevForm,\n ...updates\n }));\n };\n\n const resetTicketForm = () => {\n setTicketForm({});\n };\n\n const resetFeedbackForm = () => {\n setFeedbackForm({});\n };\n\n const value = {\n // Form state\n ticketForm,\n feedbackForm,\n // Update functions\n updateTicketForm,\n updateFeedbackForm,\n // Reset functions\n resetTicketForm,\n resetFeedbackForm,\n // Legacy setters for compatibility\n setTicketForm,\n setFeedbackForm\n };\n\n return (\n <FormContext.Provider value={value}>\n {children}\n </FormContext.Provider>\n );\n};\n\n// Custom hook to use the Form Context\nexport const useFormContext = () => {\n const context = useContext(FormContext);\n if (!context) {\n throw new Error('useFormContext must be used within a FormProvider');\n }\n return context;\n};\n\n// Higher-order component for flows that need form context\nexport const withFormContext = (Component) => {\n return (props) => {\n const formContext = useFormContext();\n return <Component {...props} formContext={formContext} />;\n };\n};","import React, { useRef, useState, useEffect, useMemo } from 'react';\nimport ChatBot, { ChatBotProvider } from \"react-chatbotify\";\nimport HtmlRenderer from \"@rcb-plugins/html-renderer\";\nimport MarkdownRenderer from \"@rcb-plugins/markdown-renderer\";\nimport InputValidator from \"@rcb-plugins/input-validator\";\nimport { v4 as uuidv4 } from 'uuid';\nimport BotController from './BotController';\nimport useThemeColors from '../hooks/useThemeColors';\nimport useChatBotSettings from '../hooks/useChatBotSettings';\nimport useHandleAIQuery from '../hooks/useHandleAIQuery';\nimport useUpdateHeader from '../hooks/useUpdateHeader';\nimport useRingEffect from '../hooks/useRingEffect';\nimport useFocusableSendButton from '../hooks/useFocusableSendButton';\nimport useKeyboardNavigation from '../hooks/useKeyboardNavigation';\nimport { DEFAULT_CONFIG, buildWelcomeMessage } from '../config/constants';\nimport { createBotFlow } from '../utils/create-bot-flow';\nimport { FormProvider, useFormContext } from '../contexts/FormContext';\n\n\nconst generateSessionId = () => {\n return `qa_bot_session_${uuidv4()}`;\n};\n\nconst getOrCreateSessionId = () => {\n // Check if we already have a session ID in localStorage\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key && key.startsWith('qa_bot_session_')) {\n const sessionId = localStorage.getItem(key);\n if (sessionId) {\n return sessionId;\n }\n }\n }\n const newSessionId = generateSessionId();\n localStorage.setItem(newSessionId, newSessionId);\n return newSessionId;\n};\n\n/**\n * Internal QABot component that uses Form Context\n */\nconst QABotInternal = React.forwardRef((props, botRef) => {\n const {\n apiKey,\n open = false,\n onOpenChange,\n embedded = false,\n isLoggedIn,\n loginUrl = DEFAULT_CONFIG.LOGIN_URL,\n ringEffect = false,\n welcome,\n userEmail,\n userName,\n accessId\n } = props;\n\n const finalApiKey = apiKey || process.env.REACT_APP_API_KEY;\n\n const [isBotLoggedIn, setIsBotLoggedIn] = useState(isLoggedIn !== undefined ? isLoggedIn : false);\n const sessionIdRef = useRef(getOrCreateSessionId());\n const sessionId = sessionIdRef.current;\n const [currentQueryId, setCurrentQueryId] = useState(null);\n \n // Use Form Context instead of local state\n const { ticketForm, feedbackForm, updateTicketForm, updateFeedbackForm, resetTicketForm, resetFeedbackForm } = useFormContext();\n\n // Update internal state when isLoggedIn prop changes\n useEffect(() => {\n if (isLoggedIn !== undefined) {\n setIsBotLoggedIn(isLoggedIn);\n }\n }, [isLoggedIn]);\n\n // Initialize currentQueryId as null - will be set by useHandleAIQuery\n // when actual queries are processed\n\n // Listen for chat window toggle events from react-chatbotify\n useEffect(() => {\n if (!embedded && onOpenChange) {\n const handleChatWindowToggle = (event) => {\n if (botRef && botRef.current && botRef.current._markAsUserInteraction) {\n botRef.current._markAsUserInteraction();\n }\n const newOpenState = event.data.newState;\n onOpenChange(newOpenState);\n };\n window.addEventListener('rcb-toggle-chat-window', handleChatWindowToggle);\n\n return () => {\n window.removeEventListener('rcb-toggle-chat-window', handleChatWindowToggle);\n };\n }\n }, [embedded, onOpenChange, botRef]);\n\n const welcomeMessage = buildWelcomeMessage(isBotLoggedIn, welcome);\n const containerRef = useRef(null);\n const themeColors = useThemeColors(containerRef);\n\n const chatBotSettings = useChatBotSettings({\n themeColors,\n embedded,\n defaultOpen: open,\n isLoggedIn: isBotLoggedIn\n });\n\n const handleQuery = useHandleAIQuery(finalApiKey, sessionId, setCurrentQueryId);\n\n const formContext = useMemo(() => ({ \n ticketForm: ticketForm || {}, \n feedbackForm: feedbackForm || {}, \n updateTicketForm, \n updateFeedbackForm, \n resetTicketForm, \n resetFeedbackForm \n }), [ticketForm, feedbackForm, updateTicketForm, updateFeedbackForm, resetTicketForm, resetFeedbackForm]);\n \n const flow = useMemo(() => createBotFlow({\n welcomeMessage,\n isBotLoggedIn,\n loginUrl,\n handleQuery,\n sessionId,\n currentQueryId,\n ticketForm,\n setTicketForm: updateTicketForm,\n feedbackForm,\n setFeedbackForm: updateFeedbackForm,\n formContext,\n userInfo: {\n email: userEmail || null,\n name: userName || null,\n username: accessId || null\n }\n }), [welcomeMessage, isBotLoggedIn, loginUrl, handleQuery, sessionId, currentQueryId, ticketForm, feedbackForm, updateTicketForm, updateFeedbackForm, formContext, userEmail, userName, accessId]);\n\n useUpdateHeader(isBotLoggedIn, containerRef);\n useRingEffect(ringEffect, containerRef);\n useFocusableSendButton();\n useKeyboardNavigation();\n\n // Handle tooltip session tracking\n useEffect(() => {\n // Listen for chat window toggle (opening chat)\n const handleToggle = () => {\n // Mark tooltip as shown when user opens chat\n sessionStorage.setItem('qa_bot_tooltip_shown', 'true');\n };\n\n // Add event listener\n window.addEventListener('rcb-toggle-chat-window', handleToggle);\n\n // Cleanup\n return () => {\n window.removeEventListener('rcb-toggle-chat-window', handleToggle);\n };\n }, []);\n\n return (\n <div \n className={`qa-bot ${embedded ? \"embedded-qa-bot\" : \"\"}`} \n ref={containerRef}\n role=\"region\"\n aria-label=\"Ask ACCESS tool\"\n >\n <ChatBotProvider>\n <main role=\"main\" aria-label=\"Chat interface\">\n <BotController\n ref={botRef}\n embedded={embedded}\n isBotLoggedIn={isBotLoggedIn}\n currentOpen={open}\n />\n <ChatBot\n key={`chatbot-${sessionId}-${isBotLoggedIn}`}\n settings={chatBotSettings}\n flow={flow}\n plugins={[HtmlRenderer(), MarkdownRenderer(), InputValidator()]}\n />\n {/* Live region for screen reader announcements */}\n <div \n aria-live=\"polite\" \n aria-label=\"Bot response updates\"\n className=\"sr-only\"\n id=\"bot-live-region\"\n />\n \n {/* Accessibility help text */}\n <div id=\"chat-input-help\" className=\"sr-only\">\n Type your message and press Enter to send. Use arrow keys to navigate through response options. Press Enter or Space to select an option.\n </div>\n \n {/* Keyboard navigation instructions */}\n <div id=\"keyboard-help\" className=\"sr-only\">\n Available keyboard shortcuts: Arrow keys to navigate options, Enter or Space to select, Tab to move between interactive elements, Escape to close dialogs.\n </div>\n </main>\n </ChatBotProvider>\n </div>\n );\n});\n\n/**\n * Q&A Bot Component (Controlled)\n *\n * @param {Object} [props]\n * @param {string} [props.apiKey] - API key for the Q&A endpoint\n * @param {boolean} [props.open] - Whether the chat window is open (floating mode only, ignored for embedded)\n * @param {Function} [props.onOpenChange] - Callback when chat window open state changes\n * @param {boolean} [props.embedded=false] - Whether the bot is embedded in the page (always open when embedded)\n * @param {boolean} [props.isLoggedIn=false] - Whether the user is logged in\n * @param {string} [props.loginUrl='/login'] - URL to redirect for login\n * @param {boolean} [props.ringEffect=true] - Whether to apply the phone ring animation effect to the tooltip\n * @param {string} [props.welcome='Hello! What can I help you with?'] - Welcome message\n * @param {string} [props.userEmail] - User's email address (when logged in)\n * @param {string} [props.userName] - User's display name (when logged in)\n * @param {string} [props.username] - User's username/ID (when logged in)\n * @returns {JSX.Element}\n */\nconst QABot = React.forwardRef((props, ref) => {\n return (\n <FormProvider>\n <QABotInternal {...props} ref={ref} />\n </FormProvider>\n );\n});\n\nexport default QABot;","import { useMemo } from 'react';\nimport { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Custom hook to get theme colors from CSS variables\n * @param {React.RefObject} containerRef - Reference to the container element\n * @param {Object} defaultColors - Default color values if CSS variables are not found\n * @returns {Object} Theme colors object\n */\nconst useThemeColors = (containerRef, defaultColors = {}) => {\n const themeColors = useMemo(() => {\n // Get colors from CSS variables if available, fall back to defaults\n const getCSSVariable = (name, fallback) => {\n if (containerRef.current) {\n // First check the container itself\n const containerStyle = getComputedStyle(containerRef.current);\n const containerValue = containerStyle.getPropertyValue(name);\n if (containerValue && containerValue.trim() !== '') {\n return containerValue.trim();\n }\n\n // Then check parent\n if (containerRef.current.parentElement) {\n const parentStyle = getComputedStyle(containerRef.current.parentElement);\n const parentValue = parentStyle.getPropertyValue(name);\n if (parentValue && parentValue.trim() !== '') {\n return parentValue.trim();\n }\n }\n }\n return fallback;\n };\n\n return {\n primaryColor: getCSSVariable('--primary-color', defaultColors.primaryColor || DEFAULT_CONFIG.THEME.PRIMARY_COLOR),\n secondaryColor: getCSSVariable('--secondary-color', defaultColors.secondaryColor || DEFAULT_CONFIG.THEME.SECONDARY_COLOR),\n fontFamily: getCSSVariable('--font-family', defaultColors.fontFamily || DEFAULT_CONFIG.THEME.FONT_FAMILY)\n };\n }, [containerRef, defaultColors]);\n\n return themeColors;\n};\n\nexport default useThemeColors;","import React, { useMemo } from 'react';\nimport { DEFAULT_CONFIG } from '../config/constants';\nimport NewChatButton from '../components/NewChatButton';\nimport UserIcon from '../components/UserIcon';\nimport LoginButton from '../components/LoginButton';\nimport { Button } from \"react-chatbotify\"\n\n/**\n * Custom hook to generate ChatBot settings\n * @param {Object} params - Parameters for generating settings\n * @param {Object} params.themeColors - Theme colors from useThemeColors\n * @param {boolean} params.embedded - Whether the bot is embedded\n * @param {boolean} params.defaultOpen - Default open state (floating mode only)\n * @param {boolean} params.isLoggedIn - Whether user is logged in (passed to UserIcon)\n * @returns {Object} ChatBot settings object\n */\nconst useChatBotSettings = ({\n themeColors,\n embedded,\n defaultOpen,\n isLoggedIn\n}) => {\n const isBotLoggedIn = isLoggedIn;\n \n // Check if tooltip has been shown in this session\n const hasShownTooltip = sessionStorage.getItem('qa_bot_tooltip_shown');\n const tooltipMode = hasShownTooltip ? 'NEVER' : 'START';\n \n const settings = useMemo(() => {\n return {\n general: {\n ...themeColors,\n embedded: embedded,\n // Enhanced accessibility\n primaryColor: themeColors.primaryColor,\n fontFamily: 'Arial, sans-serif',\n // Ensure good contrast ratios\n secondaryColor: themeColors.secondaryColor\n },\n header: {\n title: (\n <div key=\"header-title\">\n <h1 className=\"sr-only\">{DEFAULT_CONFIG.CHATBOT.TITLE}</h1>\n <span aria-hidden=\"true\">{DEFAULT_CONFIG.CHATBOT.TITLE}</span>\n </div>\n ),\n avatar: DEFAULT_CONFIG.CHATBOT.AVATAR_URL,\n buttons: [\n isBotLoggedIn ? <UserIcon key=\"user-icon\" /> : <LoginButton key=\"login-button\" loginUrl=\"/login\" isHeaderButton={true} />,\n Button.CLOSE_CHAT_BUTTON\n ]\n },\n chatWindow: {\n defaultOpen: embedded ? true : defaultOpen,\n },\n chatInput: {\n enabledPlaceholderText: 'Type your question here...',\n disabledPlaceholderText: '',\n disabled: false,\n allowNewline: true,\n sendButtonStyle: { display: 'flex' },\n characterLimit: 1000,\n sendButtonAriaLabel: 'Send message',\n showCharacterCount: false,\n // Enhanced accessibility\n ariaLabel: 'Chat input area',\n ariaDescribedBy: 'chat-input-help'\n },\n chatHistory: {\n disabled: false\n },\n botBubble: {\n simulateStream: true,\n streamSpeed: 10,\n allowNewline: true,\n dangerouslySetInnerHTML: true,\n renderHtml: true,\n // Enhanced accessibility\n ariaLabel: 'Bot response',\n role: 'log'\n },\n chatButton: {\n icon: DEFAULT_CONFIG.CHATBOT.AVATAR_URL,\n },\n tooltip: {\n text: DEFAULT_CONFIG.CHATBOT.TOOLTIP_TEXT,\n mode: tooltipMode\n },\n audio: {\n disabled: true,\n },\n emoji: {\n disabled: true,\n },\n fileAttachment: {\n disabled: true,\n },\n notification: {\n disabled: true,\n },\n footer: {\n text: (<div key=\"footer-text\"><a href=\"https://support.access-ci.org/tools/access-qa-tool\">About this tool</a>.</div>),\n buttons: [\n <NewChatButton key=\"new-chat-button\" />\n ]\n },\n event: {\n rcbToggleChatWindow: true // Enable chat window toggle event\n }\n };\n }, [themeColors, embedded, defaultOpen, isBotLoggedIn, tooltipMode]);\n\n return settings;\n};\n\nexport default useChatBotSettings;","import { useEffect } from 'react';\n\n/**\n * Custom hook to update the chatbot header\n * This avoids relying on the beta useSettings hook from react-chatbotify\n * When this hook is stable, we can refactor to use it\n *\n * @param {boolean} isLoggedIn - Whether the user is logged in\n * @param {React.RefObject} containerRef - Reference to the chatbot container\n */\nconst useUpdateHeader = (isLoggedIn, containerRef) => {\n useEffect(() => {\n if (!containerRef.current) {\n return;\n }\n if (isLoggedIn) {\n containerRef.current.classList.add('bot-logged-in');\n } else {\n containerRef.current.classList.remove('bot-logged-in');\n }\n }, [isLoggedIn, containerRef]);\n};\n\nexport default useUpdateHeader;","import { useEffect } from 'react';\n\n/**\n * Custom hook to apply ring effect to the chatbot tooltip\n * This hook fires once when the bot is instantiated and applies the phone-ring class\n * to the .rcb-tooltip-show element if ringEffect is enabled\n * The react-chatbotify tooltip is set in config to only show on the first load\n * Once a user opens the chatbot, it won't show the tool tip when closed\n * (Unless you change the tooltip setting in the react-chatbotify settings object)\n *\n * @param {boolean} ringEffect - Whether to apply the ring effect\n * @param {React.RefObject} containerRef - Reference to the chatbot container\n */\nconst useRingEffect = (ringEffect, containerRef) => {\n useEffect(() => {\n if (!ringEffect || !containerRef.current) {\n return;\n }\n\n const timeoutId = setTimeout(() => {\n const tooltipElement = containerRef.current?.querySelector('.rcb-tooltip-show');\n if (tooltipElement) {\n tooltipElement.classList.add('phone-ring');\n }\n }, 500); // 500ms delay to make sure its rendered and gain user attention\n\n return () => {\n clearTimeout(timeoutId);\n };\n }, [ringEffect, containerRef]);\n};\n\nexport default useRingEffect;","import { useEffect } from 'react';\n\n/**\n * Hook to make the send button focusable and keyboard accessible\n */\nconst useFocusableSendButton = () => {\n useEffect(() => {\n const makeSendButtonAccessible = () => {\n const chatWindow = document.querySelector('.rcb-chat-window');\n if (!chatWindow) return;\n \n const sendButton = chatWindow.querySelector('.rcb-send-button');\n if (!sendButton) return;\n \n // Make send button focusable\n if (!sendButton.hasAttribute('tabindex')) {\n sendButton.setAttribute('tabindex', '0');\n }\n \n // Add keyboard support if not already added\n if (!sendButton.hasAttribute('data-keyboard-enabled')) {\n sendButton.setAttribute('data-keyboard-enabled', 'true');\n \n sendButton.addEventListener('keydown', (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n \n // Call the React onMouseDown handler directly\n const reactPropsKey = sendButton && Object.keys(sendButton).find(key => key.startsWith('__reactProps'));\n if (reactPropsKey) {\n const reactProps = sendButton[reactPropsKey];\n const onMouseDown = reactProps?.onMouseDown;\n if (onMouseDown && typeof onMouseDown === 'function') {\n onMouseDown(event);\n return;\n }\n }\n \n // Fallback to dispatching a mousedown event\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n sendButton.dispatchEvent(mouseDownEvent);\n }\n });\n }\n };\n\n // Check periodically in case the send button is recreated\n const interval = setInterval(makeSendButtonAccessible, 1000);\n \n // Run immediately\n makeSendButtonAccessible();\n \n return () => clearInterval(interval);\n }, []);\n};\n\nexport default useFocusableSendButton;","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport QABot from './components/QABot';\nimport './styles/index.css'; // QA Bot styles\n\n// Export for react\nexport { QABot };\n\n// React wrapper component for programmatic API\nconst ProgrammaticQABot = React.forwardRef((props, ref) => {\n const [botIsLoggedIn, setBotIsLoggedIn] = React.useState(props.isLoggedIn || false);\n const [chatOpen, setChatOpen] = React.useState(props.defaultOpen || false);\n const qaRef = React.useRef();\n\n // Expose controller methods via ref\n React.useImperativeHandle(ref, () => ({\n addMessage: (message) => {\n if (qaRef.current) {\n qaRef.current.addMessage(message);\n }\n },\n setBotIsLoggedIn: (status) => {\n setBotIsLoggedIn(status);\n },\n openChat: () => {\n if (!props.embedded && qaRef.current) {\n setChatOpen(true);\n }\n },\n closeChat: () => {\n if (!props.embedded && qaRef.current) {\n setChatOpen(false);\n }\n },\n toggleChat: () => {\n if (!props.embedded && qaRef.current) {\n setChatOpen(prev => !prev);\n }\n }\n }), [props.embedded]);\n\n return (\n <QABot\n ref={qaRef}\n apiKey={props.apiKey}\n embedded={props.embedded}\n isLoggedIn={botIsLoggedIn}\n open={props.embedded ? true : chatOpen}\n onOpenChange={props.embedded ? undefined : setChatOpen}\n loginUrl={props.loginUrl}\n ringEffect={props.ringEffect}\n welcome={props.welcome}\n userEmail={props.userEmail}\n userName={props.userName}\n username={props.username}\n />\n );\n});\n\n// Export for JS API - now React-backed for all usage\nexport function qaBot(config) {\n if (!config.target || !(config.target instanceof HTMLElement)) {\n console.error('QA Bot: A valid target DOM element is required');\n return;\n }\n\n const root = ReactDOM.createRoot(config.target);\n let wrapperRef = { current: null };\n\n root.render(\n <React.StrictMode>\n <ProgrammaticQABot\n ref={(ref) => { wrapperRef.current = ref; }}\n apiKey={config.apiKey}\n defaultOpen={config.defaultOpen}\n embedded={config.embedded}\n isLoggedIn={config.isLoggedIn}\n loginUrl={config.loginUrl}\n ringEffect={config.ringEffect}\n welcome={config.welcome}\n />\n </React.StrictMode>\n );\n\n return {\n addMessage: (message) => wrapperRef.current?.addMessage(message),\n setBotIsLoggedIn: (status) => wrapperRef.current?.setBotIsLoggedIn(status),\n openChat: () => wrapperRef.current?.openChat(),\n closeChat: () => wrapperRef.current?.closeChat(),\n toggleChat: () => wrapperRef.current?.toggleChat(),\n destroy: () => {\n wrapperRef.current = null;\n root.unmount();\n }\n };\n}\nexport default qaBot;"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","Z","AUDIO_BUTTON","NOTIFICATION_BUTTON","CLOSE_CHAT_BUTTON","SEND_MESSAGE_BUTTON","VOICE_MESSAGE_BUTTON","FILE_ATTACHMENT_BUTTON","EMOJI_PICKER_BUTTON","$A","Ae","iA","A","e","q","viewBox","d","fill","fillRule","ee","Le","forwardRef","Re","Fe","xmlns","strokeLinecap","strokeWidth","ze","Ye","We","te","Je","Ze","re","general","primaryColor","secondaryColor","fontFamily","showHeader","showFooter","showInputRow","actionDisabledIcon","embedded","flowStartTrigger","tooltip","mode","text","chatButton","icon","header","title","l","cursor","margin","fontSize","fontWeight","onClick","window","open","children","showAvatar","avatar","buttons","closeChatIcon","notification","disabled","defaultToggledOn","volume","iconDisabled","sound","showCount","audio","language","voiceNames","rate","chatHistory","maxEntries","storageKey","storageType","viewChatHistoryButtonText","chatHistoryLineBreakText","autoLoad","chatInput","allowNewline","enabledPlaceholderText","disabledPlaceholderText","showCharacterCount","characterLimit","botDelay","sendButtonIcon","blockSpam","sendOptionOutput","sendCheckboxOutput","chatWindow","showScrollbar","showTypingIndicator","autoJumpToBottom","showMessagePrompt","messagePromptText","messagePromptOffset","defaultOpen","sensitiveInput","maskInTextArea","maskInUserBubble","asterisksCount","hideInUserBubble","userBubble","animate","simulateStream","streamSpeed","botBubble","voice","timeoutPeriod","autoSendDisabled","autoSendPeriod","sendAsAudio","footer","X","jsxs","display","flexDirection","alignItems","columnGap","jsx","borderRadius","width","height","justifyContent","background","fileAttachment","multiple","accept","sendFileName","showMediaDisplay","emoji","list","toast","maxCount","forbidOnMax","dismissOnClick","event","rcbPreInjectMessage","rcbPostInjectMessage","rcbStartSimulateStreamMessage","rcbStopSimulateStreamMessage","rcbStartStreamMessage","rcbChunkStreamMessage","rcbStopStreamMessage","rcbRemoveMessage","rcbLoadChatHistory","rcbToggleChatWindow","rcbStartSpeakAudio","rcbToggleAudio","rcbToggleNotifications","rcbToggleVoice","rcbChangePath","rcbShowToast","rcbDismissToast","rcbUserSubmitText","rcbUserUploadFile","rcbTextAreaChangeValue","rcbPreLoadChatBot","rcbPostLoadChatBot","rcbPreProcessBlock","rcbPostProcessBlock","ariaLabel","audioButton","closeChatButton","emojiButton","fileAttachmentButton","notificationButton","sendButton","voiceButton","inputTextArea","device","desktopEnabled","mobileEnabled","applyMobileOptimizations","ae","vA","createContext","settings","setSettings","O","PA","$e","o","Provider","value","ce","tooltipStyle","notificationBadgeStyle","chatWindowStyle","headerStyle","bodyStyle","chatInputContainerStyle","chatInputAreaStyle","chatInputAreaFocusedStyle","chatInputAreaDisabledStyle","userBubbleStyle","botBubbleStyle","botOptionStyle","botOptionHoveredStyle","botCheckboxRowStyle","botCheckboxNextStyle","botCheckMarkStyle","botCheckMarkSelectedStyle","characterLimitStyle","characterLimitReachedStyle","chatHistoryLineBreakStyle","chatMessagePromptStyle","chatMessagePromptHoveredStyle","footerStyle","loadingSpinnerStyle","mediaDisplayContainerStyle","chatButtonStyle","chatHistoryButtonStyle","chatHistoryButtonHoveredStyle","sendButtonStyle","sendButtonHoveredStyle","sendButtonDisabledStyle","audioButtonStyle","audioButtonDisabledStyle","closeChatButtonStyle","emojiButtonStyle","emojiButtonDisabledStyle","fileAttachmentButtonStyle","fileAttachmentButtonDisabledStyle","notificationButtonStyle","notificationButtonDisabledStyle","voiceButtonStyle","voiceButtonDisabledStyle","chatIconStyle","audioIconStyle","audioIconDisabledStyle","closeChatIconStyle","emojiIconStyle","emojiIconDisabledStyle","fileAttachmentIconStyle","fileAttachmentIconDisabledStyle","notificationIconStyle","notificationIconDisabledStyle","voiceIconStyle","voiceIconDisabledStyle","sendIconStyle","sendIconDisabledStyle","sendIconHoveredStyle","rcbTypingIndicatorContainerStyle","rcbTypingIndicatorDotStyle","toastPromptContainerStyle","toastPromptStyle","toastPromptHoveredStyle","ie","styles","setStyles","Y","At","et","n","s","a","r","c","t","backgroundImage","className","map","i","u","UA","Fragment","le","$","tt","botIdRef","flowRef","AA","Map","useRef","f","w","inputRef","timeoutIdRef","streamMessageMap","chatBodyRef","paramsInputRef","keepVoiceOnRef","audioContextRef","audioBufferRef","gainNodeRef","prevInputRef","aA","F","current","ue","eA","ot","oA","rA","qA","JA","VA","ZA","g","B","P","b","y","useState","D","p","C","v","E","T","Q","S","h","m","I","M","k","j","N","W","J","z","U","K","R","L","G","visualViewport","innerHeight","tA","_","innerWidth","isBotTyping","setSyncedIsBotTyping","syncedIsBotTypingRef","isChatWindowOpen","setSyncedIsChatWindowOpen","syncedIsChatWindowOpenRef","audioToggledOn","setSyncedAudioToggledOn","syncedAudioToggledOnRef","voiceToggledOn","setSyncedVoiceToggledOn","syncedVoiceToggledOnRef","notificationsToggledOn","setSyncedNotificationsToggledOn","syncedNotificationsToggledOnRef","isLoadingChatHistory","setIsLoadingChatHistory","hasChatHistoryLoaded","setHasChatHistoryLoaded","isScrolling","setSyncedIsScrolling","syncedIsScrollingRef","textAreaDisabled","setSyncedTextAreaDisabled","syncedTextAreaDisabledRef","textAreaSensitiveMode","setSyncedTextAreaSensitiveMode","syncedTextAreaSensitiveModeRef","hasInteractedPage","setHasInteractedPage","hasFlowStarted","setHasFlowStarted","unreadCount","setUnreadCount","inputLength","setInputLength","blockAllowsAttachment","setBlockAllowsAttachment","viewportHeight","setViewportHeight","viewportWidth","setViewportWidth","H","START_SPEAK_AUDIO","TOGGLE_AUDIO","TOGGLE_NOTIFICATIONS","TOGGLE_VOICE","TOGGLE_CHAT_WINDOW","PRE_INJECT_MESSAGE","POST_INJECT_MESSAGE","START_SIMULATE_STREAM_MESSAGE","STOP_SIMULATE_STREAM_MESSAGE","START_STREAM_MESSAGE","CHUNK_STREAM_MESSAGE","STOP_STREAM_MESSAGE","REMOVE_MESSAGE","LOAD_CHAT_HISTORY","CHANGE_PATH","SHOW_TOAST","DISMISS_TOAST","USER_SUBMIT_TEXT","USER_UPLOAD_FILE","TEXT_AREA_CHANGE_VALUE","PRE_LOAD_CHATBOT","POST_LOAD_CHATBOT","PRE_PROCESS_BLOCK","POST_PROCESS_BLOCK","nt","NA","async","CustomEvent","detail","cancelable","data","promises","dispatchEvent","Promise","all","fe","paths","setSyncedPaths","syncedPathsRef","mA","st","lA","x","length","at","useCallback","dispatchRcbEvent","botId","currPath","prevPath","sA","getBoundingClientRect","documentElement","clientHeight","clientWidth","top","left","bottom","right","currState","newState","defaultPrevented","scrollHeight","scrollTop","requestAnimationFrame","toggleChatWindow","toggleIsBotTyping","scrollToBottom","getIsChatBotVisible","rt","color","borderColor","onMouseEnter","onMouseLeave","onMouseDown","preventDefault","de","messages","setSyncedMessages","syncedMessagesRef","FA","ct","message","isNewSender","content","contentWrapper","backgroundColor","maxWidth","nA","it","lt","ut","scrollbarWidth","V","sender","toUpperCase","ft","checkboxes","checkedItems","path","handleSubmitText","yA","Set","size","min","reusable","items","has","delete","max","add","Array","from","join","sendOutput","dt","isArray","injectMessage","wt","function","gt","trim","simulateStreamMessage","Bt","options","vt","ht","component","Dt","transition","duration","interruptable","setTimeout","ge","Et","chatDisabled","we","isSensitive","Error","Object","keys","includes","goToPath","Pt","Ct","mt","borderTop","SA","crypto","randomUUID","getRandomValues","replace","Uint8Array","toString","console","error","gA","id","timestamp","Date","toUTCString","tags","wA","Be","IA","bA","ve","CA","HA","unshift","St","slice","Pe","jA","bt","setItem","JSON","stringify","RA","sessionStorage","localStorage","parse","Qt","getItem","se","structuredClone","Te","renderToString","he","DOMParser","parseFromString","body","childNodes","nodeType","Node","TEXT_NODE","textContent","tagName","toLowerCase","attributes","reduce","name","split","filter","forEach","prototype","hasOwnProperty","call","classList","class","Tt","Mt","kt","Ht","xt","_A","key","innerHTML","contains","zA","AudioContext","createGain","gain","startsWith","atob","ArrayBuffer","charCodeAt","fetch","arrayBuffer","decodeAudioData","createBufferSource","buffer","connect","destination","start","toggleNotifications","playNotificationSound","setUpNotifications","Lt","SpeechSynthesisUtterance","info","lang","speechSynthesis","getVoices","find","speak","Ot","GA","textToRead","speakAudio","toggleAudio","hA","simulateStreamChunker","setInterval","clearInterval","Math","set","get","removeMessage","streamMessage","endStreamMessage","replaceMessages","xA","uA","pA","BA","cA","YA","SpeechRecognition","webkitSpeechRecognition","Rt","onresult","clearTimeout","results","transcript","OA","onend","Ut","navigator","mediaDevices","getUserMedia","then","MediaRecorder","ondataavailable","push","onstop","getTracks","stop","catch","XA","state","TA","Ft","toggleVoice","syncVoice","DA","currValue","prevValue","focus","blur","getTextAreaValue","setTextAreaValue","updateTextAreaFocus","focusTextArea","blurTextArea","toggleTextAreaDisabled","toggleTextAreaSensitiveMode","De","toasts","setSyncedToasts","syncedToastsRef","Ee","jt","EA","timeout","showToast","dismissToast","replaceToasts","QA","block","userInput","yt","file","clear","nextPath","getCurrPath","getPrevPath","replacePaths","firePostProcessBlockEvent","repeat","inputText","sendInChat","MA","dA","useMemo","userAgent","test","zt","boxSizing","outline","boxShadow","caretColor","shiftKey","target","role","stopPropagation","placeholder","onChange","onKeyDown","onFocus","onBlur","onCompositionStart","onCompositionEnd","rows","Gt","Yt","Xt","offsetWidth","transform","Wt","useEffect","Kt","minWidth","ye","fileType","fileUrl","src","alt","controls","Ce","FileReader","onload","result","onerror","readAsDataURL","qt","files","Jt","composedPath","offsetHeight","addEventListener","removeEventListener","setSelectionRange","Vt","Zt","stroke","$t","_t","Ao","Nt","Blob","File","eo","oo","values","to","uo","headerButtons","chatInputButtons","footerButtons","WA","removeItem","It","showChatHistory","fo","tabIndex","wo","handleFirstInteraction","me","passive","virtualKeyboard","overlaysContent","boundingRect","scrollTo","behavior","scrollY","position","go","Bo","Qe","oe","version","baseUrl","cacheDuration","ok","json","ho","inlineStyles","cssStylesText","getTime","floor","cacheDate","vo","ne","Po","RegExp","yo","kA","fA","source","pop","isValidElement","WeakMap","be","replaceSettings","updateSettings","pe","replaceStyles","updateStyles","mo","plugins","Co","zIndex","Se","Ie","Qo","loadConfig","bo","flow","themes","setConfigLoaded","styleRootRef","LA","po","show_options","prompt_again","unknown_input","process_options","Oo","Io","getBotId","So","Uo","restartFlow","getFlow","To","Fo","jo","Go","qo","getHistoryMessages","setHistoryMessages","self","address","invalid","br","void","button","caption","parent","col","colgroup","details","dd","dl","figcaption","hr","img","li","main","ol","picture","rb","rp","rtc","ruby","summary","table","tbody","td","tfoot","th","thead","tr","track","ul","video","wbr","freeze","cite","colspan","datetime","default","dir","href","kind","label","loading","loop","media","muted","poster","rel","rowspan","scope","sizes","span","srclang","srcset","tabindex","assign","arguments","apply","this","selfClose","attribute","node","__esModule","exec","index","substring","defineProperty","enumerable","configurable","writable","String","match","implementation","createHTMLDocument","constructor","process","env","NODE_ENV","TypeError","props","matchers","filters","keyIndex","container","createContainer","allowed","allowList","banned","blocked","blockList","applyAttributeFilters","applyNodeFilters","applyMatchers","asTag","getTagConfig","inverseName","isTagAllowed","canRenderChild","valid","propName","matcher","greedy","replaceTokens","convertLineBreaks","noHtml","disableLineBreaks","global","INTERWEAVE_SSR_POLYFILL","containerTagName","escapeHtml","extractAttributes","allowAttributes","isSafe","extractStyleAttribute","Number","parseFloat","HTMLAnchorElement","getAttribute","protocol","allowElements","parseNode","nodeName","noHtmlExceptMatchers","transformOnlyAllowList","cloneElement","emptyContent","parsedContent","noWrap","disableFilters","disableMatchers","onAfterParse","onBeforeParse","bind","autoConfig","renderHtml","Ne","htmlComponent","Er","Ir","Ar","Hn","Tr","Un","property","normal","space","hn","boolean","booleanish","overloadedBoolean","number","commaSeparated","spaceSeparated","commaOrSpaceSeparated","mustUseProperty","defined","zr","mn","__proto__","Symbol","toStringTag","Sn","super","Vn","Lr","properties","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlLang","xmlBase","xmlSpace","xmlnsxlink","xmlnsXLink","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","vr","acceptcharset","classname","htmlfor","httpequiv","abbr","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","as","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","capture","charSet","checked","cols","colSpan","contentEditable","controlsList","coords","crossOrigin","dateTime","decoding","defer","dirName","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","hidden","high","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","low","manifest","maxLength","method","minLength","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onCancel","onCanPlay","onCanPlayThrough","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFormData","onHashChange","onInput","onInvalid","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","optimum","pattern","ping","playsInline","popover","popoverTarget","popoverTargetAction","preload","readOnly","referrerPolicy","required","reversed","rowSpan","sandbox","scoped","seamless","selected","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","shape","slot","spellCheck","srcDoc","srcLang","srcSet","step","translate","typeMustMatch","useMap","wrap","writingSuggestions","align","aLink","archive","axis","bgColor","border","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","code","codeBase","codeType","compact","declare","face","frame","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","object","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","security","unselectable","Dr","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","floodColor","floodOpacity","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","begin","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cx","cy","defaultAction","descent","diffuseConstant","direction","dur","divisor","dx","dy","edgeMode","editable","elevation","end","exponent","externalResourcesRequired","filterRes","filterUnits","focusable","focusHighlight","format","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","observer","offset","opacity","operator","order","orient","orientation","origin","overflow","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","string","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","unicode","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","Or","qn","Rr","Nr","Mr","charAt","_r","Br","Cn","en","$n","Wn","Vr","__importDefault","lastIndexOf","line","column","reason","filename","silent","comment","Hr","Ur","Yn","qr","En","Qn","dn","Xn","place","ancestors","cause","ruleId","indexOf","fatal","stack","actual","expected","note","url","In","Wr","Yr","Qr","Xr","Kr","Gr","filePath","development","jsxDEV","columnNumber","fileName","lineNumber","ii","components","create","elementAttributeNameCase","evaluater","createEvaluater","ignoreInvalidStyle","passKeys","passNode","schema","stylePropertyNameCase","tableCellAlignToStyle","ui","oi","Tn","Pr","An","Jr","estree","evaluateExpression","expression","_e","Zr","argument","ai","ni","evaluateProgram","ei","ti","ri","Fr","isNaN","padRight","padLeft","Cr","jr","fi","si","pi","ci","computed","optional","hi","nn","mi","gi","Kn","Gn","Pn","splice","Jn","yi","xi","ki","parseInt","fromCodePoint","bi","gn","yn","wi","Si","Ci","Ei","fromCharCode","encodeURIComponent","POSITIVE_INFINITY","enter","consume","exit","Ii","tokenize","attempt","parser","constructs","contentInitial","contentType","previous","next","Ti","containerState","continuation","_closeFlow","events","currentConstruct","concrete","interrupt","_gfmTableDynamicInterruptHack","check","Zn","lazy","now","_tokenizer","sliceStream","defineSkip","write","disable","null","zn","resolveAll","xn","_close","_open","sliceSerialize","insideSpan","attentionMarkers","_bufferIndex","Di","Ke","partial","_container","tn","Ui","$i","resolve","Xi","RangeError","shift","setCursor","reverse","concat","trunc","Oe","pushMany","unshiftMany","_isInFirstContentOfListItem","Ki","_gfmTasklistFirstContentOfListItem","Gi","Ji","tl","rl","pl","fl","resolveTo","xe","hl","ml","kl","Ln","_inactive","_balanced","wl","Sl","Cl","Ll","Dl","rn","furtherBlankLines","initialBlankLine","Ml","marker","Nl","$l","flowInitial","Yl","Ql","Xl","Kl","_index","Gl","Jl","Zl","no","ro","ao","so","restore","transforms","canContainEols","autolink","Bn","autolinkProtocol","autolinkEmail","atxHeading","Nn","blockQuote","characterEscape","characterReference","codeFenced","He","codeFencedFenceInfo","codeFencedFenceMeta","codeIndented","codeText","ar","codeTextData","codeFlowValue","definition","ur","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","sr","hardBreakEscape","Mn","hardBreakTrailing","htmlFlow","_n","htmlFlowData","htmlText","htmlTextData","image","cr","listItem","pr","listItemValue","listOrdered","jn","listUnordered","paragraph","reference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","thematicBreak","dr","atxHeadingSequence","characterEscapeValue","characterReferenceMarkerHexadecimal","characterReferenceMarkerNumeric","characterReferenceValue","codeFencedFence","labelText","lineEnding","setextHeadingLineSequence","setextHeadingText","mdastExtensions","tokenStack","config","resume","ke","_spread","includeImageAlt","includeHtml","di","expectingFirstListItemValue","meta","flowCodeInside","identifier","depth","setextHeadingSlurpLineEnding","codePointAt","mr","atHardBreak","inReference","referenceType","characterReferenceType","ordered","spread","xo","extensions","co","TextDecoder","decode","lastIndex","ceil","ko","Vo","Wo","blockquote","patch","applyData","break","footnoteReference","clobberPrefix","footnoteOrder","footnoteCounts","dataFootnoteRef","heading","html","allowDangerousHtml","imageReference","definitionById","inlineCode","linkReference","root","tableCell","tableRow","toml","qe","yaml","footnoteDefinition","pt","globalThis","flags","BigInt","DataView","Yo","Xo","lossy","valueOf","toJSON","toISOString","Ko","Xe","Jo","rr","ra","ea","na","ta","ia","ir","la","oa","aa","ua","lr","kn","sa","ca","handlers","one","fa","footnoteById","passThrough","unknownHandler","ha","pa","ma","$r","hName","hChildren","hProperties","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","dataFootnoteBackref","dataFootnotes","Zo","da","run","ln","ya","getOwnPropertyDescriptor","newValue","ga","on","bn","getPrototypeOf","iterator","xa","ka","use","basename","je","dirname","extname","Ia","Ea","sep","Aa","cwd","wn","auth","Pa","URL","hostname","pathname","decodeURIComponent","za","an","or","history","stored","sn","un","stem","fail","va","setPrototypeOf","Da","Fn","Compiler","Parser","attachers","compiler","freezeIndex","frozen","namespace","transformers","copy","fn","cn","pn","Na","processSync","runSync","Oa","Ra","_a","Ba","ja","allowedElements","allowElement","disallowedElements","rehypePlugins","remarkPlugins","remarkRehypeOptions","skipHtml","unwrapDisallowed","urlTransform","Ha","hasOwn","Sr","wr","Ua","whiteSpace","marginBottom","lineHeight","textAlign","paddingLeft","listStylePosition","inline","padding","overflowX","borderLeft","Va","Xa","yr","xr","kr","markdownComponent","gr","renderMarkdown","qa","Ue","Ve","$a","promptBaseColors","warning","success","promptHoveredColors","textAreaHighlightColors","promptContent","promptType","advancedStyles","highlightTextArea","promptDuration","log","byteToHex","rnds8","native","v4","buf","rnds","random","rng","arr","unsafeStringify","DEFAULT_CONFIG","LOGIN_URL","WELCOME_MESSAGE","WELCOME_MESSAGE_LOGGED_OUT","WELCOME_MESSAGE_LOGIN_TRANSITION","WELCOME_MESSAGE_LOGOUT_TRANSITION","API_ENDPOINT","netlifyBaseUrl","REACT_APP_NETLIFY_BASE_URL","ERRORS","API_UNAVAILABLE","BEHAVIOR","SHOW_RATING_AFTER_FAILED_QUERY","THEME","PRIMARY_COLOR","SECONDARY_COLOR","FONT_FAMILY","CHATBOT","TITLE","AVATAR_URL","TOOLTIP_TEXT","buildWelcomeMessage","isLoggedIn","welcomeMessage","BotController","React","isBotLoggedIn","currentOpen","useMessages","useChatWindow","lastOpenRef","fromEventRef","prevLoginStateRef","loginStateChanged","justLoggedIn","useLoginStateTransition","markAsUserInteraction","_markAsUserInteraction","useImperativeHandle","addMessage","BaseIcon","_extends","strokeLinejoin","RefreshIcon","NewChatButton","useFlow","handleNewChat","gap","UserIcon","marginRight","LoginButton","loginUrl","isHeaderButton","finalStyle","useHandleAIQuery","apiKey","sessionId","setCurrentQueryId","getLastUserQueryId","historyString","latestUserMessage","latestTimestamp","messageTime","warn","params","actualQueryId","requestOptions","query","response","useKeyboardNavigation","handleKeyboardNavigation","activeElement","querySelector","allMessages","querySelectorAll","el","offsetParent","checkboxContainer","nextButton","allElements","handleCheckboxNavigation","elements","currentIndex","newIndex","currentElement","mouseDownEvent","MouseEvent","bubbles","view","setAttribute","element","remove","lastMessage","optionsContainers","lastContainer","findIndex","option","nextIndex","opt","prevIndex","closest","labelElement","selectedText","checkboxMark","isChecked","announceToScreenReader","innerText","announcement","removeChild","handleNewOptions","checkboxElements","hint","hintElement","MutationObserver","mutations","mutation","addedNodes","hasNewOptions","some","ELEMENT_NODE","hasNewCheckboxes","observe","childList","subtree","periodicCheck","hasVisibleOptions","hasVisibleCheckboxes","lastProcessedOptions","lastProcessedCheckboxes","disconnect","createQAFlow","fetchAndStreamResponse","currentQueryId","go_ahead_and_ask","qa_loop","chatState","handleBotError","REACT_APP_API_KEY","isPositive","qa_positive_feedback","qa_negative_feedback","qa_continue","UploadIcon","FileUploadComponent","onFileUpload","dragActive","setDragActive","selectedFiles","setSelectedFiles","previewFile","setPreviewFile","fileInputRef","captureScreenshot","isCapturing","useScreenshotCapture","setIsCapturing","stream","getDisplayMedia","displaySurface","logicalSurface","ideal","srcObject","onloadedmetadata","play","canvas","videoWidth","videoHeight","getContext","drawImage","blob","toBlob","handleFiles","newFileArray","updatedFiles","fileCount","fileNames","chatContent","handleDrag","handleButtonClick","click","closePreview","handleScreenshotCapture","dataTransfer","flexWrap","marginTop","alignSelf","handleFilePreview","indexToRemove","newFiles","idx","handleRemoveFile","userSelect","toFixed","renderFilePreview","isImage","isText","isPDF","maxHeight","createObjectURL","wordWrap","prepareApiSubmission","formData","ticketType","uploadedFiles","REQUEST_TYPE_IDS","requestTypeIds","support","general_help","feedback","loginAccess","loginProvider","requestTypeId","serviceDeskId","mappedFormData","mapProFormaFields","submissionData","requestFieldValues","processedFiles","reject","reader","base64String","fileData","attachments","sendPreparedDataToProxy","endpointName","serverBaseUrl","proxyEndpoint","errorText","status","createFileUploadComponent","setTicketForm","ticketForm","createSubmissionHandler","submissionResult","submitTicket","apiData","proxyResponse","ticketKey","ticketUrl","prevForm","submissionError","getSubmissionResult","generateSuccessMessage","getFileInfo","currentFormContext","getCurrentTicketForm","getCurrentFormWithUserInfo","userInfo","currentForm","safeUserInfo","email","accessId","username","createOptionalFieldValidator","inputField","inputEvent","Event","processOptionalInput","validateEmail","trimmedEmail","isValidEmail","createTicketFlow","accessLoginFlow","createAccessLoginFlow","access_help","access_login_description","updatedForm","description","access_login_identity","identityProvider","access_login_browser","browser","access_login_attachment","wantsAttachment","formWithUserInfo","access_login_upload","uploadConfirmed","access_login_email","validateTextInput","access_login_name","access_login_accessid","access_login_summary","fileInfo","finalAccessId","userName","access_login_success","affiliatedLoginFlow","createAffiliatedLoginFlow","affiliated_help","affiliated_login_resource","affiliated_login_userid","userIdResource","affiliated_login_description","affiliated_login_attachment","affiliated_login_upload","affiliated_login_email","affiliated_login_name","affiliated_login_accessid","affiliated_login_summary","accessResource","userIdAtResource","affiliated_login_success","generalHelpFlow","createGeneralHelpFlow","general_help_summary_subject","general_help_category","category","general_help_description","general_help_attachment","general_help_upload","general_help_resource","involvesResource","general_help_resource_details","resourceDetails","general_help_user_id_at_resource","general_help_keywords","keywords","general_help_additional_keywords","currentKeywords","additionalKeywords","keywordsArray","filteredKeywords","formattedKeywords","suggestedKeyword","general_help_priority","priority","general_help_email","general_help_name","general_help_accessid","general_help_ticket_summary","resourceInfo","issueType","hasResourceProblem","resourceName","noRelevantKeyword","general_help_success","help_ticket","createSecurityFlow","mostRecentAccessId","security_incident","security_priority","security_description","security_attachment","security_upload","security_contact_info","security_name","security_email","security_accessid","finalInput","security_summary","finalForm","accessIdDisplay","submitSecurityIncident","security_success","createBotFlow","handleQuery","hasQueryError","feedbackForm","setFeedbackForm","formContext","setCurrentFormContext","mainMenuFlow","createMainMenuFlow","welcome","FormContext","FormProvider","updateTicketForm","updates","updateFeedbackForm","resetTicketForm","resetFeedbackForm","getOrCreateSessionId","newSessionId","uuidv4","QABotInternal","botRef","onOpenChange","ringEffect","userEmail","finalApiKey","setIsBotLoggedIn","undefined","useFormContext","context","useContext","handleChatWindowToggle","newOpenState","containerRef","themeColors","useThemeColors","defaultColors","getCSSVariable","fallback","containerValue","getComputedStyle","getPropertyValue","parentElement","parentValue","chatBotSettings","useChatBotSettings","tooltipMode","Button","sendButtonAriaLabel","dangerouslySetInnerHTML","useUpdateHeader","useRingEffect","timeoutId","tooltipElement","makeSendButtonAccessible","hasAttribute","reactPropsKey","reactProps","interval","handleToggle","ChatBotProvider","ChatBot","MarkdownRenderer","QABot","ProgrammaticQABot","botIsLoggedIn","setBotIsLoggedIn","chatOpen","setChatOpen","qaRef","openChat","closeChat","toggleChat","prev","qaBot","HTMLElement","ReactDOM","createRoot","wrapperRef","render","StrictMode","_wrapperRef$current","_wrapperRef$current2","_wrapperRef$current3","_wrapperRef$current4","_wrapperRef$current5","destroy","unmount"],"mappings":"4pBAAA,SAASA,EAAYC,EAAKC,QACX,IAARA,IAAiBA,EAAM,CAAE,GAC9B,IAAIC,EAAWD,EAAIC,SAEnB,GAAKF,GAA2B,oBAAbG,SAAnB,CAEA,IAAIC,EAAOD,SAASC,MAAQD,SAASE,qBAAqB,QAAQ,GAC9DC,EAAQH,SAASI,cAAc,SACnCD,EAAME,KAAO,WAEI,QAAbN,GACEE,EAAKK,WACPL,EAAKM,aAAaJ,EAAOF,EAAKK,YAKhCL,EAAKO,YAAYL,GAGfA,EAAMM,WACRN,EAAMM,WAAWC,QAAUb,EAE3BM,EAAMK,YAAYR,SAASW,eAAed,GAnBU,CAqBxD,2xeCpBA,MAAMe,EAAI,CACRC,aAAc,eACdC,oBAAqB,sBACrBC,kBAAmB,oBACnBC,oBAAqB,cACrBC,qBAAsB,eACtBC,uBAAwB,yBACxBC,oBAAqB,gBAC0oBC,EAAK,wvOAAi0VC,EAAKC,cAAnuG,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,cAAe5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,qoDAAsoDC,KAAM,OAAQC,SAAU,YAA8BJ,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,63CAA60DG,EAAKR,EAAAA,YAAnc,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,mTAAupBI,EAAKT,EAAEU,YAAzV,CAACT,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,uMAA+lBM,EAAKX,EAAEU,YAA7Y,CAACT,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,2PAA6iBO,EAAKZ,cAArS,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAE+B,MAAO,6BAA8BT,QAAS,cAAe5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,IAAK,CAAEgC,cAAe,QAASC,YAAa,IAAsBZ,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,iCAAqPW,EAAKhB,EAAAA,YAAvM,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,uDAA8bY,EAAKjB,EAAAA,YAA1X,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,0OAAmrBa,EAAKlB,EAAEU,YAA9b,CAACT,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,4SAA48Bc,EAAKnB,EAAEU,YAArpB,CAACT,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,mgBAAw3Be,EAAKpB,EAAAA,YAAxW,CAACC,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,wNAAosBgB,EAAKrB,EAAEU,YAAje,CAACT,EAAGC,IAAsBC,EAAErB,cAAc,MAAO,CAAEsB,QAAS,iBAAkB5B,IAAK0B,KAAMD,GAAqBE,EAAErB,cAAc,OAAQ,CAAEuB,EAAG,+UAAm27CiB,EAAK,CACji6DC,QAAS,CACPC,aAAc,UACdC,eAAgB,UAChBC,WAAY,oJACZC,YAAY,EACZC,YAAY,EACZC,cAAc,EACdC,mBARI,wpBASJC,UAAU,EACVC,iBAAkB,WAEpBC,QAAS,CACPC,KAAM,QACNC,KAAM,kBAERC,WAAY,CACVC,KAAMtC,GAERuC,OAAQ,CACNC,MAAuBC,EAAAA,IAAE,MAAO,CAAE3D,MAAO,CAAE4D,OAAQ,UAAWC,OAAQ,EAAGC,SAAU,GAAIC,WAAY,QAAUC,QAAS,IAAMC,OAAOC,KAAK,gCAAiCC,SAAU,YACnLC,YAAY,EACZC,OAAQpD,EACRqD,QAAS,CAAC7D,EAAEE,oBAAqBF,EAAEC,aAAcD,EAAEG,mBACnD2D,cAAexC,GAEjByC,aAAc,CACZC,UAAU,EACVC,kBAAkB,EAClBC,OAAQ,GACRnB,KAAM5B,EACNgD,aAAc9C,EACd+C,MAhCwhf,ig7CAiCxhfC,WAAW,GAEbC,MAAO,CACLN,UAAU,EACVC,kBAAkB,EAClBM,SAAU,QACVC,WAAY,CAAC,4CAA6C,kCAC1DC,KAAM,EACNP,OAAQ,EACRnB,KAAMjB,EACNqC,aAAcpC,GAEhB2C,YAAa,CACXV,UAAU,EACVW,WAAY,GACZC,WAAY,cACZC,YAAa,gBACbC,0BAA2B,sBAC3BC,yBAA0B,oCAC1BC,UAAU,GAEZC,UAAW,CACTjB,UAAU,EACVkB,cAAc,EACdC,uBAAwB,uBACxBC,wBAAyB,GACzBC,oBAAoB,EACpBC,gBAAkB,EAClBC,SAAU,IACVC,eAAgB9D,EAChB+D,WAAW,EACXC,kBAAkB,EAClBC,oBAAoB,EACpB9B,QAAS,CAAC7D,EAAEK,qBAAsBL,EAAEI,sBAEtCwF,WAAY,CACVC,eAAe,EACfC,qBAAqB,EACrBC,kBAAkB,EAClBC,mBAAmB,EACnBC,kBAAmB,iBACnBC,oBAAqB,GACrBC,aAAa,GAEfC,eAAgB,CACdC,gBAAgB,EAChBC,kBAAkB,EAClBC,eAAgB,GAChBC,kBAAkB,GAEpBC,WAAY,CACVC,SAAS,EACT/C,YAAY,EACZC,OAtFg6P,+VAuFh6P+C,gBAAgB,EAChBC,YAAa,IAEfC,UAAW,CACTH,SAAS,EACT/C,YAAY,EACZC,OAAQpD,EACRmG,gBAAgB,EAChBC,YAAa,IAEfE,MAAO,CACL9C,UAAU,EACVC,kBAAkB,EAClBM,SAAU,QACVwC,cAAe,IACfC,kBAAkB,EAClBC,eAAgB,IAChBC,aAAa,EACbnE,KAAMpB,EACNwC,aAAcvC,GAEhBuF,OAAQ,CACNtE,KAAsBuE,EAACC,KACrB,MACA,CACE9H,MAAO,CAAE4D,OAAQ,UAAWmE,QAAS,OAAQC,cAAe,MAAOC,WAAY,SAAUC,UAAW,GACpGlE,QAAS,IAAMC,OAAOC,KAAK,gCAC3BC,SAAU,CACQR,EAAAA,IAAE,OAAQ,CAAEQ,SAAU,eAAiB,GACvCR,EAACwE,IACf,MACA,CACEnI,MAAO,CACLoI,aAAc,MACdC,MAAO,GACPC,OAAQ,GACRP,QAAS,OACTQ,eAAgB,SAChBN,WAAY,SACZO,WAAY,+CAEdrE,SAA0BR,EAACwE,IAACjH,EAAI,CAAElB,MAAO,CAAEqI,MAAO,MAAOC,OAAQ,MAAO7G,KAAM,WAEhF,GAEckC,MAAE,OAAQ,CAAE3D,MAAO,CAAE+D,WAAY,QAAUI,SAAU,qBAAuB,MAIlGG,QAAS,CAAC7D,EAAEM,uBAAwBN,EAAEO,sBAExCyH,eAAgB,CACdhE,UAAU,EACViE,UAAU,EACVC,OAAQ,OACRnF,KAAM7B,EACNiD,aAAcjD,EACdiH,cAAc,EACdC,kBAAkB,GAEpBC,MAAO,CACLrE,UAAU,EACVjB,KAAMlB,EACNsC,aAActC,EACdyG,KAAM,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,OAEnGC,MAAO,CACLC,SAAU,EACVC,aAAa,EACbC,gBAAgB,GAElBC,MAAO,CACLC,qBAAqB,EACrBC,sBAAsB,EACtBC,+BAA+B,EAC/BC,8BAA8B,EAC9BC,uBAAuB,EACvBC,uBAAuB,EACvBC,sBAAsB,EACtBC,kBAAkB,EAClBC,oBAAoB,EACpBC,qBAAqB,EACrBC,oBAAoB,EACpBC,gBAAgB,EAChBC,wBAAwB,EACxBC,gBAAgB,EAChBC,eAAe,EACfC,cAAc,EACdC,iBAAiB,EACjBC,mBAAmB,EACnBC,mBAAmB,EACnBC,wBAAwB,EACxBC,mBAAmB,EACnBC,oBAAoB,EACpBC,oBAAoB,EACpBC,qBAAqB,GAEvBC,UAAW,CACTtH,WAAY,YACZuH,YAAa,eACbC,gBAAiB,aACjBC,YAAa,eACbC,qBAAsB,cACtBC,mBAAoB,uBACpBC,WAAY,eACZC,YAAa,eACbC,cAAe,mBAEjBC,OAAQ,CACNC,gBAAgB,EAChBC,eAAe,EACfC,0BAA0B,IAE3BC,EAAKC,EAAEC,cAAC,CAAEC,SAAU,CAAA,EAAIC,YAAa,IAAM,OAASC,EAAI,IAAMC,EAAAA,WAAGN,GAAKO,EAAK,EAC5E9H,SAAU/C,EACVyK,SAAUxK,EAAIoB,EACdqJ,YAAaI,KACOvI,EAACwE,IAACuD,EAAGS,SAAU,CAAEC,MAAO,CAAEP,SAAUxK,EAAGyK,YAAaI,GAAK/H,SAAU/C,IAAMiL,EAAK,CAClGC,aAAc,CAAE,EAChBC,uBAAwB,CAAE,EAC1BC,gBAAiB,CAAE,EACnBC,YAAa,CAAE,EACfC,UAAW,CAAE,EACbC,wBAAyB,CAAE,EAC3BC,mBAAoB,CAAE,EACtBC,0BAA2B,CAAE,EAC7BC,2BAA4B,CAAE,EAC9BC,gBAAiB,CAAE,EACnBC,eAAgB,CAAE,EAClBC,eAAgB,CAAE,EAClBC,sBAAuB,CAAE,EACzBC,oBAAqB,CAAE,EACvBC,qBAAsB,CAAE,EACxBC,kBAAmB,CAAE,EACrBC,0BAA2B,CAAE,EAC7BC,oBAAqB,CAAE,EACvBC,2BAA4B,CAAE,EAC9BC,0BAA2B,CAAE,EAC7BC,uBAAwB,CAAE,EAC1BC,8BAA+B,CAAE,EACjCC,YAAa,CAAE,EACfC,oBAAqB,CAAE,EACvBC,2BAA4B,CAAE,EAC9BC,gBAAiB,CAAE,EACnBC,uBAAwB,CAAE,EAC1BC,8BAA+B,CAAE,EACjCC,gBAAiB,CAAE,EACnBC,uBAAwB,CAAE,EAC1BC,wBAAyB,CAAE,EAC3BC,iBAAkB,CAAE,EACpBC,yBAA0B,CAAE,EAC5BC,qBAAsB,CAAE,EACxBC,iBAAkB,CAAE,EACpBC,yBAA0B,CAAE,EAC5BC,0BAA2B,CAAE,EAC7BC,kCAAmC,CAAE,EACrCC,wBAAyB,CAAE,EAC3BC,gCAAiC,CAAE,EACnCC,iBAAkB,CAAE,EACpBC,yBAA0B,CAAE,EAC5BC,cAAe,CAAE,EACjBC,eAAgB,CAAE,EAClBC,uBAAwB,CAAE,EAC1BC,mBAAoB,CAAE,EACtBC,eAAgB,CAAE,EAClBC,uBAAwB,CAAE,EAC1BC,wBAAyB,CAAE,EAC3BC,gCAAiC,CAAE,EACnCC,sBAAuB,CAAE,EACzBC,8BAA+B,CAAE,EACjCC,eAAgB,CAAE,EAClBC,uBAAwB,CAAE,EAC1BC,cAAe,CAAE,EACjBC,sBAAuB,CAAE,EACzBC,qBAAsB,CAAE,EACxBC,iCAAkC,CAAE,EACpCC,2BAA4B,CAAE,EAC9BC,0BAA2B,CAAE,EAC7BC,iBAAkB,CAAE,EACpBC,wBAAyB,CAAA,GACxBC,EAAKzE,EAAEC,cAAC,CAAEyE,OAAQ,CAAA,EAAIC,UAAW,IAAM,OAASC,EAAI,IAAMvE,EAAAA,WAAGoE,GAAKI,EAAK,EACxErM,SAAU/C,EACViP,OAAQhP,EAAIgL,EACZiE,UAAWpE,KACSvI,EAAAA,IAAEyM,EAAGjE,SAAU,CAAEC,MAAO,CAAEiE,OAAQhP,EAAGiP,UAAWpE,GAAK/H,SAAU/C,IAAMqP,EAAK,EAAGnM,QAASlD,MAC1G,IAAIsP,EAAGC,EAAGC,EAAGC,EAAGC,EAChB,MAAQjF,SAAUxK,GAAM0K,KAAOsE,OAAQnE,GAAMqE,IAAKQ,EAAI,CACpDC,gBAAiB,6BAAgD,OAAlBN,EAAIrP,EAAEqB,cAAmB,EAASgO,EAAE9N,0BAC/D,OAAlB+N,EAAItP,EAAEqB,cAAmB,EAASiO,EAAEhO,mBACnCuJ,EAAEO,aAEP,OAAuB5E,EAAAA,KAAE,MAAO,CAAE7H,MAAO+Q,EAAGE,UAAW,4BAA6B9M,SAAU,CAC5E0D,EAAAA,KAAE,MAAO,CAAEoJ,UAAW,kBAAmB9M,SAAU,EAC9C,OAAjByM,EAAIvP,EAAEoC,aAAkB,EAASmN,EAAExM,aAA+BT,EAACwE,IACnE,MACA,CACEnI,MAAO,CAAEgR,gBAAiB,QAA0B,OAAjBH,EAAIxP,EAAEoC,aAAkB,EAASoN,EAAExM,YACtE4M,UAAW,mBAGG,OAAjBH,EAAIzP,EAAEoC,aAAkB,EAASqN,EAAEpN,SAEtBC,MAAE,MAAO,CAAEsN,UAAW,kBAAmB9M,SAAe,MAAL/C,OAAY,EAASA,EAAE8P,KACxF,CAACC,EAAGC,IAAsBzN,EAACwE,IAACkJ,EAAEC,SAAE,CAAEnN,SAAUgN,GAAKC,SAEjD,EACHG,EAAK5F,gBAAG,CAAA,GAAK6F,EAAI,IAAMxF,aAAGuF,GAAKE,EAAK,EACrCtN,SAAU/C,EACVsQ,SAAUrQ,EACVsQ,QAASzF,MAET,MAAM6E,EAAIa,EAAAA,OAAG,MAAOlB,EAAIkB,EAAAA,OAAG,IAAKjB,EAAIiB,EAAAA,OAAG,MAAOhB,EAAIgB,EAAAA,OAAmB,IAAIC,KAAQhB,EAAIe,EAAEE,OAAC,MAAOhB,EAAIc,EAAAA,OAAG,IAAKT,EAAIS,EAAEE,QAAC,GAAKV,EAAIQ,EAAEE,OAAC,MAAOC,EAAIH,EAAEE,OAAC,MAAOE,EAAIJ,EAAEE,OAAC,MAC1J,OAAuBnO,MAAE4N,EAAGpF,SAAU,CAAEC,MAAO,CAC7CsF,SAAUrQ,EACVsQ,QAASzF,EACT+F,SAAUlB,EACVmB,aAAcvB,EACdwB,iBAAkBvB,EAClBwB,YAAavB,EACbwB,eAAgBvB,EAChBwB,eAAgBnB,EAChBoB,gBAAiBnB,EACjBoB,eAAgBT,EAChBU,YAAaT,EACbU,aAAchC,GACbvM,SAAU/C,GAAI,EAChBuR,EAAMvR,IACP,MAAOC,EAAG6K,GAAK0G,EAAAA,SAAExR,GAAI2P,EAAIa,EAAEE,OAAC1Q,GAC5B,MAAO,CAACC,EAAIsP,IACV,MAAMC,EAAgB,mBAALD,EAAkBA,EAAEI,EAAE8B,SAAWlC,EAClDI,EAAE8B,QAAUjC,EAAG1E,EAAE0E,EAAE,EAClBG,EAAE,EACJ+B,EAAKnH,gBAAG,CAAA,GAAKoH,EAAK,IAAM/G,aAAG8G,GAAKE,EAAK,EACtC7O,SAAU/C,EACVyK,SAAUxK,MAEV,IAAI4R,EAAIC,EAAIC,EAAIC,EAAIC,EAAIC,EACxB,MAAOpH,EAAG6E,EAAGL,GAAKiC,GAAG,IAAMhC,EAAGC,EAAGC,GAAK8B,GACS,OAA3CM,EAAU,MAAL5R,OAAY,EAASA,EAAEgF,iBAAsB,EAAS4M,EAAGrM,eAAgB,IAC9EkK,EAAGK,EAAGC,GAAKuB,GAC2B,OAAtCO,EAAU,MAAL7R,OAAY,EAASA,EAAE0D,YAAiB,EAASmO,EAAGxO,oBAAqB,IAC9EqN,EAAGC,EAAGxQ,GAAKmR,GAC2B,OAAtCQ,EAAU,MAAL9R,OAAY,EAASA,EAAEkG,YAAiB,EAAS4L,EAAGzO,oBAAqB,IAEhF6O,EACAC,EACAC,GACEd,GAC6C,OAA7CS,EAAU,MAAL/R,OAAY,EAASA,EAAEmD,mBAAwB,EAAS4O,EAAG1O,oBAAqB,IACrFgP,EAAGC,GAAKf,EAACgB,UAAC,IAAMC,EAAGC,GAAKlB,EAACgB,UAAC,IAAMG,EAAGC,EAAGC,GAAKtB,GAAG,IAAMuB,EAAGC,EAAGC,GAAKzB,GAAG,IACpE0B,EACAC,EACAC,GACE5B,GAAG,IAAM6B,EAAGC,GAAK7B,EAAAA,UAAE,IAAM8B,EAAGC,GAAK/B,EAAAA,UAAE,IAAMgC,EAAGC,GAAKjC,EAAAA,SAAE,IAAKkC,EAAGC,GAAKnC,EAAAA,SAAE,IAAKoC,EAAGC,GAAKrC,EAACgB,UAAC,IAAMsB,EAAGC,GAAKvC,EAACgB,UAAkC,OAA/BP,EAAKpP,OAAOmR,qBAA0B,EAAS/B,EAAG/K,SAAWrE,OAAOoR,cAAeC,EAAIC,GAAK3C,EAAAA,UAAmC,OAA/BU,EAAKrP,OAAOmR,qBAA0B,EAAS9B,EAAGjL,QAAUpE,OAAOuR,YAC1Q,OAAuB7R,MAAEmP,EAAG3G,SAAU,CAAEC,MAAO,CAC7CqJ,YAAavJ,EACbwJ,qBAAsB3E,EACtB4E,qBAAsBjF,EACtBkF,iBAAkBjF,EAClBkF,0BAA2BjF,EAC3BkF,0BAA2BjF,EAC3BkF,eAAgBjF,EAChBkF,wBAAyB7E,EACzB8E,wBAAyB7E,EACzB8E,eAAgBnE,EAChBoE,wBAAyBnE,EACzBoE,wBAAyB5U,EACzB6U,uBAAwB9C,EACxB+C,gCAAiC9C,EACjC+C,gCAAiC9C,EACjC+C,qBAAsB9C,EACtB+C,wBAAyB9C,EACzB+C,qBAAsB7C,EACtB8C,wBAAyB7C,EACzB8C,YAAa7C,EACb8C,qBAAsB7C,EACtB8C,qBAAsB7C,EACtB8C,iBAAkB7C,EAClB8C,0BAA2B7C,EAC3B8C,0BAA2B7C,EAC3B8C,sBAAuB7C,EACvB8C,+BAAgC7C,EAChC8C,+BAAgC7C,EAChC8C,kBAAmB7C,EACnB8C,qBAAsB7C,EACtB8C,eAAgB7C,EAChB8C,kBAAmB7C,EACnB8C,YAAa7C,EACb8C,eAAgB7C,EAChB8C,YAAa7C,EACb8C,eAAgB7C,EAChB8C,sBAAuB7C,EACvB8C,yBAA0B7C,EAC1B8C,eAAgB7C,EAChB8C,kBAAmB7C,EACnB8C,cAAe3C,EACf4C,iBAAkB3C,GACjBpR,SAAU/C,GAAI,EAEnB,IAAI+W,EAAoB,CAAE/W,IAAOA,EAAEgX,kBAAoB,wBAAyBhX,EAAEiX,aAAe,mBAAoBjX,EAAEkX,qBAAuB,2BAA4BlX,EAAEmX,aAAe,mBAAoBnX,EAAEoX,mBAAqB,yBAA0BpX,EAAEqX,mBAAqB,yBAA0BrX,EAAEsX,oBAAsB,0BAA2BtX,EAAEuX,8BAAgC,oCAAqCvX,EAAEwX,6BAA+B,mCAAoCxX,EAAEyX,qBAAuB,2BAA4BzX,EAAE0X,qBAAuB,2BAA4B1X,EAAE2X,oBAAsB,0BAA2B3X,EAAE4X,eAAiB,qBAAsB5X,EAAE6X,kBAAoB,wBAAyB7X,EAAE8X,YAAc,kBAAmB9X,EAAE+X,WAAa,iBAAkB/X,EAAEgY,cAAgB,oBAAqBhY,EAAEiY,iBAAmB,uBAAwBjY,EAAEkY,iBAAmB,uBAAwBlY,EAAEmY,uBAAyB,6BAA8BnY,EAAEoY,iBAAmB,uBAAwBpY,EAAEqY,kBAAoB,wBAAyBrY,EAAEsY,kBAAoB,wBAAyBtY,EAAEuY,mBAAqB,yBAA0BvY,GAAvoC,CAA2oC+W,GAAK,IACxqC,MAAMyB,EAAK,CACT,CAACzB,EAAEC,oBAAoB,EACvB,CAACD,EAAEE,eAAe,EAClB,CAACF,EAAEI,eAAe,EAClB,CAACJ,EAAEG,uBAAuB,EAC1B,CAACH,EAAEK,qBAAqB,EACxB,CAACL,EAAEM,qBAAqB,EACxB,CAACN,EAAEO,sBAAsB,EACzB,CAACP,EAAEqB,mBAAmB,EACtB,CAACrB,EAAEsB,oBAAoB,EACvB,CAACtB,EAAEQ,gCAAgC,EACnC,CAACR,EAAES,+BAA+B,EAClC,CAACT,EAAEU,uBAAuB,EAC1B,CAACV,EAAEW,uBAAuB,EAC1B,CAACX,EAAEY,sBAAsB,EACzB,CAACZ,EAAEa,iBAAiB,EACpB,CAACb,EAAEc,oBAAoB,EACvB,CAACd,EAAEe,cAAc,EACjB,CAACf,EAAEgB,aAAa,EAChB,CAAChB,EAAEiB,gBAAgB,EACnB,CAACjB,EAAEkB,mBAAmB,EACtB,CAAClB,EAAEmB,mBAAmB,EACtB,CAACnB,EAAEoB,yBAAyB,EAC5B,CAACpB,EAAEuB,oBAAoB,EACvB,CAACvB,EAAEwB,qBAAqB,GACvBE,EAAKC,MAAO1Y,EAAGC,EAAG6K,KACnB,MAAM6E,EAAI,IAAIgJ,YAAY3Y,EAAG,CAC3B4Y,OAAQ3Y,EACR4Y,WAAYL,EAAGxY,KAEjB,OAAO2P,EAAEmJ,KAAOhO,EAAG6E,EAAEoJ,SAAW,GAAIlW,OAAOmW,cAAcrJ,SAAUsJ,QAAQC,IAAIvJ,EAAEoJ,UAAWpJ,CAAC,EAC5FwJ,EAAK5O,EAAAA,cAAG,CACT6O,MAAO,GACPC,eAAgB,OAEhBC,eAAgB,CAAE7H,QAAS,MACzB8H,EAAK,IAAM3O,EAAAA,WAAGuO,GAAKK,EAAK,EAAGzW,SAAU/C,MACvC,MAAOC,EAAG6K,EAAG6E,GAAK4B,EAAG,IACrB,OAAuBhP,EAAAA,IAAE4W,EAAGpO,SAAU,CAAEC,MAAO,CAAEoO,MAAOnZ,EAAGoZ,eAAgBvO,EAAGwO,eAAgB3J,GAAK5M,SAAU/C,GAAI,EAChHyZ,EAAK,KACN,MAAQnJ,SAAUtQ,GAAMoQ,KAAOkJ,eAAgBrZ,GAAMsZ,IAAMzO,EAAI4O,EAAAA,aAAE,IAAMzZ,EAAEwR,QAAQkI,OAAS,EAAI1Z,EAAEwR,QAAQmI,IAAG,IAAO,KAAO,MAAM,IAAKjK,EAAI+J,EAACG,aAAC,IAAM5Z,EAAEwR,QAAQkI,OAAS,EAAI1Z,EAAEwR,QAAQmI,IAAK,IAAK,KAAO,MAAM,IACxM,MAAO,CAAEE,iBAAkBJ,EAAAA,aAAEhB,MAAOnJ,EAAGC,KACrC,MAAMC,EAAI,CAAEsK,MAAO/Z,EAAEyR,QAASuI,SAAUlP,IAAKmP,SAAUtK,KACvD,aAAa8I,EAAGlJ,EAAGE,EAAGD,EAAE,GACvB,CAACxP,IAAK,EACRka,EAAK,KACN,MAAQzP,SAAUzK,GAAM2K,KACtB6J,iBAAkBvU,EAClBwU,0BAA2B3J,EAC3B6L,eAAgBhH,EAChBiH,kBAAmBtH,EACnBuH,cAAetH,EACfuH,iBAAkBtH,EAClB8G,eAAgB7G,EAChB6E,qBAAsB5E,EACtB+F,qBAAsB1F,EACtBwE,qBAAsBvE,EACtB0E,0BAA2B/D,GACzBgB,KAAQX,YAAaJ,GAAMR,KAAO0J,iBAAkB1Z,GAAMqZ,IAAMtH,EAAIuH,EAACG,aAAC,KACxE,IAAKjJ,EAAEa,QACL,OAAO,EACT,MAAMgB,EAAI7B,EAAEa,QAAQ0I,wBAAyBzH,EAAI7P,OAAOoR,aAAexV,SAAS2b,gBAAgBC,aAAc1H,EAAI9P,OAAOuR,YAAc3V,SAAS2b,gBAAgBE,YAChK,OAAO7H,EAAE8H,KAAO,GAAK9H,EAAE+H,MAAQ,GAAK/H,EAAEgI,QAAU/H,GAAKD,EAAEiI,OAAS/H,CAAC,GAChE,CAAC/B,IAAKwB,EAAIsH,EAACG,aAACnB,MAAOjG,IACpB,IAAIC,EACJD,IAAM9B,EAAEc,UAA6B,OAAhBiB,EAAI1S,EAAEgI,QAAkB0K,EAAEhK,4BAA8BtI,EAC3E2W,EAAEK,mBACF,CACEuD,UAAWhK,EAAEc,QACbmJ,UAAWjK,EAAEc,WAEdoJ,kBAAoB/P,GAAG6H,IAAOA,GAAKlD,EAAE,IAAKkD,KAAI,GAChD,CAAChC,IAAK0B,EAAIqH,EAACG,aAACnB,MAAOjG,IACpBA,IAAMzC,EAAEyB,SAAW/B,GAAGgD,IAAOA,GAAE,GAC9B,CAAC1C,IAAKsC,EAAIoH,EAAAA,aAAE,CAACjH,EAAGC,EAAGC,EAAGC,KAAOH,GAAKG,EAAI,GAAO,EAAID,EAAI,EAAIF,EAAIA,EAAIC,GAAWC,EAAI,KAAVF,GAAoBA,EAAI,GAAK,GAAKC,GAAK,IAAKH,EAAImH,eAAE,CAACjH,EAAI,KAC9H,IAAK7B,EAAEa,QACL,OACF,MAAMiB,EAAI9B,EAAEa,QAAQqJ,aAAelK,EAAEa,QAAQ4I,aAC7C,GAAI5H,GAAK,EAEP,OADA7B,EAAEa,QAAQsJ,UAAYrI,OAAG3C,GAAE,GAG7B,MAAM4C,EAAI/B,EAAEa,QAAQsJ,UAAWnI,EAAIF,EAAIC,EACvC,IAAIG,EAAI,EACR,MAAMC,EAAI,KACR,IAAKnC,EAAEa,QACL,OACFqB,GAL4C,GAM5C,MAAME,EAAIV,EAAEQ,EAAGH,EAAGC,EAAGH,GACrB7B,EAAEa,QAAQsJ,UAAY/H,EAAGF,EAAIL,EAAIuI,sBAAsBjI,GAAKhD,GAAE,EAAG,EAEnEgD,GAAG,GACF,CAACnC,IACJ,MAAO,CACL4D,iBAAkBvU,EAClBwU,0BAA2B3J,EAC3BmQ,iBAAkB7I,EAClBuE,eAAgBhH,EAChBiH,kBAAmBtH,EACnBuH,cAAetH,EACfuH,iBAAkBtH,EAClB0L,kBAAmB7I,EACnB8I,eAAgB5I,EAChB6I,oBAAqBjJ,EACtB,EACAkJ,EAAK,KACN,IAAIzK,EAAGxQ,EAAG+R,EACV,MAAQ1H,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,KAAOkH,YAAavL,EAAG0K,YAAa7F,GAAMgC,KAAQX,YAAa1B,GAAMc,KAAO+K,eAAgB5L,GAAM2K,KAAO1K,EAAGC,GAAK+B,EAAAA,UAAE,GAAK9B,EAAI,CACvK4L,MAA0B,OAAlB1K,EAAI5Q,EAAEsB,cAAmB,EAASsP,EAAErP,aAC5Cga,YAAgC,OAAlBnb,EAAIJ,EAAEsB,cAAmB,EAASlB,EAAEmB,gBAC/CtB,EAAEsM,+BAMP,OAAuBhK,EAAAA,IAAE,MAAO,CAAEsN,UAAW,iCAEpCP,EAAEmC,UAAkC,OAArBY,EAAIrS,EAAEiF,iBAAsB,EAASoN,EAAEhN,oBAAsBsK,GAAK7E,EAAI,EAAI,UAAY,UACtG/H,SAA0BR,EAACwE,IACjC,MACA,CACEyU,aAXG,KACL/L,GAAE,EAAG,EAWHgM,aAVG,KACLhM,GAAE,EAAG,EAUH7Q,MAAO4Q,EAAIE,EAAI,IAAKzP,EAAEqM,wBACtBoP,YAActJ,IACZA,EAAEuJ,iBAAkBpM,EAAE,IAAI,EAE5BM,UAAW,0BACX9M,SAAgC,OAArBoP,EAAInS,EAAEiF,iBAAsB,EAASkN,EAAE7M,sBAbuB,IACvE+M,CAcF,EACHuJ,EAAKrR,EAAAA,cAAG,CACTsR,SAAU,GACVC,kBAAmB,OAEnBC,kBAAmB,CAAEtK,QAAS,MAC5BuK,EAAK,IAAMpR,EAAAA,WAAGgR,GAAKhC,EAAK,EAAG7W,SAAU/C,MACvC,MAAOC,EAAG6K,EAAG6E,GAAK4B,EAAG,IACrB,OAAuBhP,EAAAA,IAAEqZ,EAAG7Q,SAAU,CAAEC,MAAO,CAAE6Q,SAAU5b,EAAG6b,kBAAmBhR,EAAGiR,kBAAmBpM,GAAK5M,SAAU/C,GAAI,EACzHic,EAAK,EACNC,QAASlc,EACTmc,YAAalc,MAEb,IAAI0Q,EAAGC,EAAGxQ,EAAG+R,EAAGC,EAAGC,EACnB,MAAQ5H,SAAUK,GAAMH,KAAOsE,OAAQU,GAAMR,IAAKG,EAAwB,iBAAbtP,EAAEoc,QAAqB7M,EAAIvP,EAAEoc,QAAS5M,EAAIxP,EAAEqc,eAAiC9Z,EAAAA,IAAEvC,EAAEqc,eAAgB,CAAEtZ,SAAUwM,IAAOA,EAAGE,EAAI,CACtL6M,gBAAoC,OAAlB3L,EAAI7F,EAAExJ,cAAmB,EAASqP,EAAEpP,aACtD+Z,MAAO,OACPiB,SAAgC,OAArB3L,EAAI9F,EAAEhF,aAAuB8K,EAAE5N,WAAa,MAAQ,SAC5D2M,EAAEhE,iBACJ+D,EAA0B,OAArBtP,EAAI0K,EAAEhF,aAAuB1F,EAAE2F,QAAU,yBAA2B,GAAIgK,GAA2B,OAArBoC,EAAIrH,EAAEhF,iBAAsB,EAASqM,EAAEnP,aAAe/C,EAAG+P,EAAI,qBAAoB/P,GAA4B,OAArBmS,EAAItH,EAAEhF,aAAuBsM,EAAEpP,WAAc,2BAA6B,IACxP,OAAuByD,EAACC,KAAC,MAAO,CAAEmJ,UAAW,6BAA8B9M,SAAU,CACnFuM,EAAoB/M,EAAAA,IAAE,MAAO,CAAE3D,MAAO6Q,EAAGI,UAAW,GAAGG,KAAKN,IAAK3M,SAAUyM,IAAuBjN,EAACwE,IAACyV,WAAI,CAAEzZ,SAAUyM,IACpHO,GAAqBxN,EAACwE,IACpB,MACA,CACEnI,MAAO,CAAEgR,gBAAiB,QAA8B,OAArByC,EAAIvH,EAAEhF,iBAAsB,EAASuM,EAAEpP,YAC1E4M,UAAW,8BAGb,EACH4M,EAAK,EACNP,QAASlc,EACTmc,YAAalc,MAEb,IAAI0Q,EAAGC,EAAGxQ,EAAG+R,EAAGC,EAAGC,EACnB,MAAQ5H,SAAUK,GAAMH,KAAOsE,OAAQU,GAAMR,IAAKG,EAAwB,iBAAbtP,EAAEoc,QAAqB7M,EAAIvP,EAAEoc,QAAS5M,EAAIxP,EAAEqc,eAAiC9Z,EAAAA,IAAEvC,EAAEqc,eAAgB,CAAEtZ,SAAUwM,IAAOA,EAAGE,EAAI,CACtL6M,gBAAoC,OAAlB3L,EAAI7F,EAAExJ,cAAmB,EAASqP,EAAEnP,eACtD8Z,MAAO,OACPiB,SAA+B,OAApB3L,EAAI9F,EAAE5E,YAAsB0K,EAAE5N,WAAa,MAAQ,SAC3D2M,EAAE/D,gBACJ8D,EAAyB,OAApBtP,EAAI0K,EAAE5E,YAAsB9F,EAAE2F,QAAU,wBAA0B,GAAIgK,GAA0B,OAApBoC,EAAIrH,EAAE5E,gBAAqB,EAASiM,EAAEnP,aAAe/C,EAAG+P,EAAI,oBAAmB/P,GAA2B,OAApBmS,EAAItH,EAAE5E,YAAsBkM,EAAEpP,WAAc,0BAA4B,IAClP,OAAuByD,EAACC,KAAC,MAAO,CAAEmJ,UAAW,4BAA6B9M,SAAU,CAClFgN,GAAqBxN,EAACwE,IACpB,MACA,CACEnI,MAAO,CAAEgR,gBAAiB,QAA6B,OAApByC,EAAIvH,EAAE5E,gBAAqB,EAASmM,EAAEpP,YACzE4M,UAAW,2BAGfP,EAAoB/M,EAAAA,IAAE,MAAO,CAAE3D,MAAO6Q,EAAGI,UAAW,GAAGG,KAAKN,IAAK3M,SAAUyM,IAAuBjN,EAAAA,IAAEia,EAAEtM,SAAE,CAAEnN,SAAUyM,MAClH,EACHkN,EAAK,KACN,IAAI/M,EAAGL,EAAGC,EACV,MAAQ9E,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,IAAKrE,EAAyB,OAApB6E,EAAI3P,EAAEkG,YAAsByJ,EAAE5J,QAAU,wBAA0B,GACzH,OAAuBU,EAACC,KAAC,MAAO,CAAEmJ,UAAW,4BAA6B9M,SAAU,EAC5D,OAApBuM,EAAItP,EAAEkG,gBAAqB,EAASoJ,EAAEtM,aAA+BT,EAACwE,IACtE,MACA,CACEnI,MAAO,CAAEgR,gBAAiB,QAA6B,OAApBL,EAAIvP,EAAEkG,gBAAqB,EAASqJ,EAAEtM,YACzE4M,UAAW,2BAGCtN,EAACwE,IACf,MACA,CACE2U,YAAclM,IACZA,EAAEmM,gBAAgB,EAEpB9L,UAAW,mBAAmB/E,IAC9B/H,SAA0B0D,EAAAA,KAAE,MAAO,CAAEoJ,UAAW,uBAAwBjR,MAAO,IAAU,MAALqB,OAAY,EAASA,EAAE0O,kCAAoC5L,SAAU,CACvIR,EAAAA,IAAE,OAAQ,CAAEsN,UAAW,UAAWjR,MAAO,IAAU,MAALqB,OAAY,EAASA,EAAE2O,8BACrErM,EAAAA,IAAE,OAAQ,CAAEsN,UAAW,UAAWjR,MAAO,IAAU,MAALqB,OAAY,EAASA,EAAE2O,8BACrErM,EAAAA,IAAE,OAAQ,CAAEsN,UAAW,UAAWjR,MAAO,IAAU,MAALqB,OAAY,EAASA,EAAE2O,qCAIzF,EACH+N,EAAK,KACN,IAAI5M,EAAGC,EAAGW,EACV,MAAQlG,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,KAAO0M,SAAU/Q,GAAMkR,KAAQb,eAAgBxL,GAAMuK,KAChG7F,YAAa/E,EACboG,qBAAsBnG,GACpBoC,KAAQX,YAAaxB,GAAMY,IAAKX,EAAI,IAC9B,MAALxP,OAAY,EAASA,EAAEqL,UAC1BsR,eAAsC,OAArB7M,EAAI/P,EAAEiF,aAAuB8K,EAAE7K,cAAgB,OAAS,QAE3E2X,EAAAA,WAAE,KACAtN,EAAEkC,SAAW9B,GAAG,GACf,CAAoB,OAAlBK,EAAIR,EAAEiC,cAAmB,EAASzB,EAAE8K,eAEzC,OAAuBrU,EAACC,KACtB,MACA,CACE9H,MAAO6Q,EACPI,UAAW,0BACXtR,IAAKiR,EACLzM,SAAU,CACR+H,EAAEgF,KAAI,CAACc,EAAGxQ,KACR,MAAM+R,EATJ,CAACvB,GAAY,IAANA,GAAe9F,EAAE8F,GAAGkM,SAAWhS,EAAE8F,EAAI,GAAGkM,OASvCpN,CAAEtP,GACZ,MAAkC,SAA3BwQ,EAAEkM,OAAOC,cAA2Cxa,EAACwE,IAACkV,EAAI,CAAEC,QAAStL,EAAGuL,YAAahK,GAAK/R,GAAgC,QAA3BwQ,EAAEkM,OAAOC,cAA0Cxa,EAAAA,IAAEka,EAAI,CAAEP,QAAStL,EAAGuL,YAAahK,GAAK/R,GAAqBmC,EAAAA,IAAE,MAAO,CAAEQ,SAAU6N,EAAEwL,SAAWhc,EAAE,IAE1PkP,IAA4B,OAArBqB,EAAI3Q,EAAEiF,iBAAsB,EAAS0L,EAAExL,sBAAwC5C,MAAEma,EAAI,CAAA,GAC5Ena,EAACwE,IAACsU,EAAI,CAAE,KAG7B,EACA2B,EAAK,EACNC,WAAYjd,EACZkd,aAAcjd,EACdkd,KAAMrS,MAEN,IAAIuH,EAAGC,EAAGC,EAAGE,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAClC,MAAQvI,SAAUkF,GAAMhF,KAAOsE,OAAQK,GAAMH,KAAOiK,MAAO7J,GAAMgK,KAAQ6D,iBAAkB5N,GAAM6N,MAAO5N,EAAGC,GAAK8B,EAACgB,SAAiB,IAAI8K,MAASvN,EAAGC,GAAKwB,EAAAA,UAAE,GAAKb,EAAI,CAChKnO,OAAQuN,EAAI,QAA2B,OAAlBsC,EAAI1C,EAAErO,cAAmB,EAAS+Q,EAAExQ,6BAA+B,UACxFyZ,MAA0B,OAAlBhJ,EAAI3C,EAAErO,cAAmB,EAASgR,EAAE/Q,aAC5Cga,YAAgC,OAAlBhJ,EAAI5C,EAAErO,cAAmB,EAASiR,EAAEhR,gBAC/C+N,EAAEvD,qBACJ6E,EAAI,CACLpO,OAAQuN,GAAKN,EAAE8N,KAAOvd,EAAEwd,IAAM,QAA2B,OAAlB/K,EAAI9C,EAAErO,cAAmB,EAASmR,EAAE5Q,6BAA+B,UAC1GyZ,MAA0B,OAAlB5I,EAAI/C,EAAErO,cAAmB,EAASoR,EAAEnR,aAC5Cga,YAAgC,OAAlB5I,EAAIhD,EAAErO,cAAmB,EAASqR,EAAEpR,gBAC/C+N,EAAEtD,sBACJ5L,EAAI,CACLoC,OAAQuN,EAAI,QAA2B,OAAlB6C,EAAIjD,EAAErO,cAAmB,EAASsR,EAAE/Q,6BAA+B,UACxFyZ,MAAO,iBACJhM,EAAErD,mBACJkG,EAAI,CACL3P,OAAQuN,EAAI,QAA2B,OAAlB8C,EAAIlD,EAAErO,cAAmB,EAASuR,EAAEhR,6BAA+B,UACxFyZ,MAAO,OACPC,YAAgC,OAAlBzI,EAAInD,EAAErO,cAAmB,EAASwR,EAAEvR,aAClD+a,gBAAoC,OAAlBvJ,EAAIpD,EAAErO,cAAmB,EAASyR,EAAExR,gBACnD+N,EAAEpD,2BAEP2Q,EAAAA,WAAE,KACAtN,EAAEoK,OAAS,GAAKpK,EAAEA,EAAEoK,OAAS,KAAO7O,GAAKkF,GAAGhQ,EAAEyd,SAAS,GACtD,CAAClO,IAcJ,OAAuB9I,EAAAA,KAAE,MAAO,CAAEoJ,UAAW,2BAA+C,OAApBmD,EAAIrD,EAAEzJ,YAAsB8M,EAAEhQ,WAAa,sBAAwB,IAAMD,SAAU,CACzJ/C,EAAE0d,MAAM5N,KAAKmD,GAAsB1Q,EAACwE,IAClC,MACA,CACE2U,YAAcxI,IACZA,EAAEyI,iBAlBA,CAAC1I,IACTlD,GAAKL,GAAGwD,IACN,MAAMC,EAAI,IAAImK,IAAIpK,GAClB,GAAIC,EAAEwK,IAAI1K,GACRhT,EAAE2d,OAAO3K,GAAIE,EAAEyK,OAAO3K,OACnB,CACH,GAAIxD,EAAE8N,MAAQvd,EAAE6d,IACd,OAAO3K,EACTjT,EAAE6d,IAAI7K,GAAIE,EAAE2K,IAAI7K,EACxB,CACM,OAAOE,CAAC,GACR,EAOwBf,CAAEa,EAAE,EAE1BrU,MAAO+R,EACPd,UAAW,6BACX9M,SAA0B0D,EAACC,KAAC,MAAO,CAAEmJ,UAAW,mBAAoB9M,SAAU,CAC5DR,EAACwE,IACf,MACA,CACEnI,MAAO6Q,EAAEkO,IAAI1K,GAAKd,EAAI/R,EACtByP,UAAW,sBAGCtN,EAACwE,IAAC,MAAO,CAAE8I,UAAW,qBAAsB9M,SAAUkQ,QAG1EA,KAEc1Q,EAACwE,IACf,MACA,CACEnI,MAAOgS,EACPf,UAAW,2BACX6L,YAAczI,IACZ,IAAIG,EACJ,GAAIH,EAAE0I,iBAAkB5L,GAAKN,EAAE8N,KAAOvd,EAAEwd,IACtC,OACF,MAAMtK,EAAI6K,MAAMC,KAAK/d,GAAGge,KAAK,MAE7B,IAAI9K,EADJnD,GAAGhQ,EAAEyd,UAEkBtK,EAAP,MAAhBnT,EAAEke,WAAyBle,EAAEke,YAAuC,OAApB9K,EAAIzD,EAAErL,gBAAqB,EAAS8O,EAAEpO,sBAAuB,EAAIwK,EAAE0D,EAAGC,EAAE,MAI5H,EACHgL,GAAKzF,MAAO1Y,EAAGC,KAChB,MAAM6K,EAAI9K,EAAEid,WACZ,IAAKnS,EACH,OACF,IAAI6E,EACJ,GAAgB,mBAAL7E,GAAmB6E,EAAI7E,EAAE7K,GAAI0P,aAAasJ,UAAYtJ,QAAUA,IAAMA,EAAI7E,EAAGiT,MAAMK,QAAQzO,KAAOA,EAAI,CAAE+N,MAAO/N,MAAQ,UAAWA,IAAwB,GAAlBA,EAAE+N,MAAM/D,OACzJ,OACO,MAAThK,EAAE6N,MAAgB7N,EAAE6N,IAAM,GAAa,MAAT7N,EAAEkO,MAAgBlO,EAAEkO,IAAMlO,EAAE+N,MAAM/D,QAAShK,EAAE6N,IAAM7N,EAAEkO,MAAQlO,EAAE6N,IAAM7N,EAAEkO,KAAoB,MAAdlO,EAAE8N,WAAqB9N,EAAE8N,UAAW,GAC/I,MAAMnO,EAAoB,IAAIgO,IAAO/N,EAAItP,EAAE+Z,SAAUxK,EAAoBjN,EAAAA,IAAEya,EAAI,CAAEC,WAAYtN,EAAGuN,aAAc5N,EAAG6N,KAAM5N,UACjHtP,EAAEoe,cAAc7O,EAAE,EACvB8O,GAAK5F,MAAO1Y,EAAGC,KAChB,MAAM6K,EAAI9K,EAAEue,SACZ,IAAKzT,EACH,OACF,MAAM6E,EAAI7E,EAAE7K,GACZ,OAAO0P,aAAasJ,cAAgBtJ,EAAIA,CAAC,EACxC6O,GAAK9F,MAAO1Y,EAAGC,EAAG6K,KACnB,MAAM6E,EAAI3P,EAAEkc,QACZ,IAAKvM,EACH,OACF,GAAgB,iBAALA,EAET,YADa,KAAbA,EAAE8O,SAAkB3T,QAAU7K,EAAEye,sBAAsB/O,SAAW1P,EAAEoe,cAAc1O,KAGnF,IAAIL,EAAIK,EAAE1P,GACVqP,aAAa2J,UAAY3J,QAAUA,GAAgB,iBAALA,GAA8B,KAAbA,EAAEmP,SAAkB3T,QAAU7K,EAAEye,sBAAsBpP,SAAWrP,EAAEoe,cAAc/O,GAAG,EAClJqP,GAAK,EACNC,QAAS5e,EACTmd,KAAMld,MAEN,IAAIkS,EAAGC,EAAGC,EAAGC,EAAGC,EAAGE,EACnB,MAAQhI,SAAUK,GAAMH,KAAOsE,OAAQU,GAAMR,KAAOiK,MAAO9J,GAAMiK,KAAQ6D,iBAAkB7N,GAAM8N,MAAO7N,EAAGC,GAAK+B,EAAAA,SAAE,KAAM9B,EAAGK,GAAKyB,EAACgB,UAAC,GAAKxC,EAAI,CACzIxN,OAAQkN,EAAI,QAA2B,OAAlByC,EAAIrH,EAAExJ,cAAmB,EAAS6Q,EAAEtQ,6BAA+B,UACxFyZ,MAA0B,OAAlBlJ,EAAItH,EAAExJ,cAAmB,EAAS8Q,EAAE7Q,aAC5Cga,YAAgC,OAAlBlJ,EAAIvH,EAAExJ,cAAmB,EAAS+Q,EAAE9Q,aAClD+a,gBAAiB,UACd3M,EAAE9D,gBACJ8E,EAAI,CACL2K,MAAO,OACPC,YAAgC,OAAlBjJ,EAAIxH,EAAExJ,cAAmB,EAASgR,EAAE/Q,aAClD+a,gBAAoC,OAAlB/J,EAAIzH,EAAExJ,cAAmB,EAASiR,EAAEhR,gBACnDoO,EAAE7D,uBAEP+Q,EAAAA,WAAE,KACAvN,EAAEqK,OAAS,GAAKrK,EAAEA,EAAEqK,OAAS,KAAO1Z,GAAK8P,GAAG/P,EAAEyd,SAAS,GACtD,CAACnO,IAYJ,OAAuB/M,EAACwE,IAAC,MAAO,CAAE8I,UAAW,0BAA8C,OAApB4C,EAAI3H,EAAE5E,YAAsBuM,EAAEzP,WAAa,qBAAuB,IAAMD,SAAU/C,EAAE0d,MAAM5N,KAAI,CAAC4C,EAAGC,KACvK,MAAMC,EAAIpD,EAAEmD,KAAOjD,EACnB,OAAuBnN,EAACwE,IACtB,MACA,CACE8I,UAAW,cACXjR,MAAOgU,EAAIjC,EAAIX,EACfwL,aAAc,IAlBV,CAAC9I,IACTjD,GAAGkD,IACD,MAAMC,EAAI,IAAID,GACd,OAAOC,EAAEF,IAAK,EAAIE,CAAC,GACnB,EAcsBhC,CAAE+B,GACtB8I,aAAc,IAdb,CAAC/I,IACNjD,GAAGkD,IACD,MAAMC,EAAI,IAAID,GACd,OAAOC,EAAEF,IAAK,EAAIE,CAAC,GACnB,EAUsBxS,CAAEuS,GACtB+I,YAAc7I,IACZ,IAAIE,EACJ,GAAIF,EAAE8I,iBAAkBjM,EACtB,OAEF,IAAIoD,EADJ/C,GAAG/P,EAAEyd,UAEkB3K,EAAP,MAAhB9S,EAAEke,WAAyBle,EAAEke,YAAuC,OAApBnL,EAAIjI,EAAExG,gBAAqB,EAASyO,EAAEhO,oBAAqB,EAAIwK,EAAEmD,EAAGI,EAAE,EAExH/P,SAAU2P,GAEZA,EACD,KACE,EACJmM,GAAKnG,MAAO1Y,EAAGC,KAChB,MAAM6K,EAAI9K,EAAE4e,QACZ,IAAK9T,EACH,OACF,IAAI6E,EACJ,GAAgB,mBAAL7E,GAAmB6E,EAAI7E,EAAE7K,GAAI0P,aAAasJ,UAAYtJ,QAAUA,IAAMA,EAAI7E,EAAGiT,MAAMK,QAAQzO,KAAOA,EAAI,CAAE+N,MAAO/N,MAAQ,UAAWA,IAAwB,GAAlBA,EAAE+N,MAAM/D,OACzJ,OACY,MAAdhK,EAAE8N,WAAqB9N,EAAE8N,UAAW,GACpC,MAAMnO,EAAIrP,EAAE+Z,SAAUzK,EAAoBhN,EAACwE,IAAC4X,GAAI,CAAEC,QAASjP,EAAGwN,KAAM7N,UAC9DrP,EAAEoe,cAAc9O,EAAE,EAYvBuP,GAAKpG,MAAO1Y,EAAGC,KAChB,MAAM6K,EAAI9K,EAAE+e,UACZ,GAAIjU,EAAG,CACL,GAAgB,mBAALA,EAAiB,CAC1B,IAAI6E,EAAI7E,EAAE7K,GACV,GAAI0P,aAAasJ,UAAYtJ,QAAUA,IAAKA,EAC1C,OAEF,kBADM1P,EAAEoe,cAAc1O,EAE5B,OACU1P,EAAEoe,cAAcvT,EAC1B,GACGkU,GAAKtG,MAAO1Y,EAAGC,EAAG6K,EAAG6E,KACtB,MAAML,EAAItP,EAAEif,WACZ,IAAI1P,EACJ,GAAgB,mBAALD,GAAmBC,EAAID,EAAErP,GAAIsP,aAAa0J,UAAY1J,QAAUA,IAAMA,EAAID,EAAe,iBAALC,IAAkBA,EAAI,CAAE2P,SAAU3P,KAAOA,GAAKA,aAAa0J,SAAyB,MAAd1J,EAAE2P,UAAyC,iBAAd3P,EAAE2P,SAClM,OACiB,MAAnB3P,EAAE4P,gBAA0B5P,EAAE4P,eAAgB,GAC9C,MAAM3P,EAAI4P,YAAW1G,UACnB,MAAMjJ,QAAUE,EAAE3P,GAClByP,SAAW4P,GAAG5P,EAAGxP,EAAE,GAClBsP,EAAE2P,UACL3P,EAAE4P,gBAAkBrU,EAAE2G,QAAUjC,EAAE,EACjC8P,GAAK5G,MAAO1Y,EAAGC,EAAG6K,KACnB,MAAM6E,EAAI3P,EAAEuf,aACZ,GAAS,MAAL5P,EACF,OACF,IAAIL,EACQ,mBAALK,GAAmBL,EAAIK,EAAE1P,GAAIqP,aAAa2J,UAAY3J,QAAUA,IAAMA,EAAIK,EAAG7E,EAAEwE,EAAE,EACvFkQ,GAAK9G,MAAO1Y,EAAGC,EAAG6K,KACnB,MAAM6E,EAAI3P,EAAEyf,YACZ,IAAK9P,EAEH,YADA7E,GAAE,GAGJ,IAAIwE,EACQ,mBAALK,GAAmBL,EAAIK,EAAE1P,GAAIqP,aAAa2J,UAAY3J,QAAUA,IAAMA,EAAIK,EAAG7E,EAAEwE,EAAE,EA2BvF+P,GAAK3G,MAAO1Y,EAAGC,KAChB,IAAKD,EACH,MAAM,IAAI0f,MAAM,uBAClB,MAAM5U,EAAI6U,OAAOC,KAAK5f,GACtB,IAAK,MAAM2P,KAAK7E,EACR,aAAN6E,SAA0B2O,GAAGte,EAAGC,GAClC6K,EAAE+U,SAAS,cAhFLnH,OAAO1Y,EAAGC,KAChB,MAAM6K,EAAI9K,EAAEmd,KACZ,IAAKrS,EACH,OAAO,EACT,GAAgB,iBAALA,EACT,aAAa7K,EAAE6f,SAAShV,IAAI,EAC9B,IAAI6E,EAAI7E,EAAE7K,GACV,GAAI0P,aAAasJ,UAAYtJ,QAAUA,IAAKA,EAC1C,OAAO,EACT,MAAML,EAAIK,EACV,aAAa1P,EAAE6f,SAASxQ,IAAI,CAAE,EAsEFyQ,CAAG/f,EAAGC,EAAE,EACnC+f,GAAK,KACN,IAAIlV,EACJ,MAAQL,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,IAC7C,OAAuB5M,EAAAA,IAAE,MAAO,CAAEsN,UAAW,2BAA4B9M,SAA0BR,EAACwE,IAClG,MACA,CACEnI,MAAO,IAAKqB,EAAEoM,2BACdwD,UAAW,sBACX,cAAe,+BACf9M,SAAiC,OAAtB+H,EAAI9K,EAAE+D,kBAAuB,EAAS+G,EAAE1G,4BAEnD,EACH6b,GAAK,KACN,IAAItQ,EACJ,MAAQlF,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,IAAKrE,EAAI,CACpDoV,UAAW,aAAgC,OAAlBvQ,EAAI3P,EAAEsB,cAAmB,EAASqO,EAAEpO,kBAC1DtB,EAAEwM,qBAEP,OAAuBlK,EAACwE,IAAC,MAAO,CAAE8I,UAAW,wBAAyB9M,SAA0BR,EAAAA,IAAE,MAAO,CAAE3D,MAAOkM,EAAG+E,UAAW,iBAAmB,EAClJsQ,GAAK,KACN,IACE,UAAWC,OAAS,KAAmC,mBAArBA,OAAOC,WACvC,OAAOD,OAAOC,aAChB,MAAM,IAAIX,MAAM,kCACjB,CAAC,MAAO1f,GACP,UAAWogB,OAAS,KAAwC,mBAA1BA,OAAOE,gBACvC,MAAO,uCAAuCC,QAAQ,SAAS,SAAStgB,GACtE,MAAM6K,EAAIsV,OAAOE,gBAAgB,IAAIE,WAAW,IAAI,GAAK,GACzD,OAAc,MAANvgB,EAAY6K,EAAQ,EAAJA,EAAQ,GAAG2V,SAAS,GACpD,IACI,MAAMC,QAAQC,MAAM3gB,GAAI,IAAI0f,MAAM,+CACtC,GACGkB,GAAK,CAAC5gB,EAAGC,KAAO,CACjB4gB,GAAIV,KACJ/D,QAASpc,EACT8c,OAAQ7c,EACRnB,KAAkB,iBAALkB,EAAgB,SAAW,SACxC8gB,WAAW,IAAqBC,MAAQC,cACxCC,KAAM,KAER,IAAIC,GAAIC,IAAK,EAAIC,GAAK,cAAeC,GAAK,GAAIC,IAAK,EAAIC,GAAK,GAC5D,MAAMC,GAAK9I,MAAO1Y,IAChB,GAAIshB,KAAOJ,GACT,OACF,MAAMjhB,EAAI,GAAI6K,EAAIqW,GAAKI,GAAG5H,OAAS,EACnC,IAAK,IAAIrK,EAAItP,EAAE2Z,OAAS,EAAGrK,GAAKxE,EAAGwE,IAAK,CACtC,MAAMC,EAAIvP,EAAEsP,GACZ,GAA+B,WAA3BC,EAAEuN,OAAOC,gBAA6C,KAAdxN,EAAE6M,SAAkBnc,EAAEwhB,QAAQlS,GAAItP,EAAE0Z,SAAW0H,IACzF,KACN,CACE,IAAI1R,EAAI1P,EAAE6P,IAAI4R,IACd,GAAI/R,EAAEgK,OAAS0H,GAAI,CACjB,MAAM/R,EAAI+R,GAAK1R,EAAEgK,OACjBhK,EAAI,IAAI4R,GAAGI,OAAOrS,MAAOK,EAC7B,CACEiS,GAAGjS,EAAE,EASJkS,GAAK,IAAMN,GAAIO,GAAM9hB,IACtB4hB,GAAG5hB,GAAIuhB,GAAKvhB,CAAC,EACZ4hB,GAAM5hB,IACPkhB,IAAMA,GAAGa,QAAQX,GAAIY,KAAKC,UAAUjiB,GAAG,EAGtCkiB,GAAMliB,IACP,IAAIC,EAAG6K,EAAG6E,EAAGL,EAAGC,EACwG2R,GAApB,qBAArC,OAA7DpW,EAA2B,OAAtB7K,EAAID,EAAE+D,kBAAuB,EAAS9D,EAAEiE,kBAAuB,EAAS4G,EAAEiS,eAA4CoF,eAAsBC,aAAchB,GAA4B,OAAtBzR,EAAI3P,EAAE+D,kBAAuB,EAAS4L,EAAE1L,WAAYod,GAA4B,OAAtB/R,EAAItP,EAAE+D,kBAAuB,EAASuL,EAAEtL,WAAYsd,GAA4B,OAAtB/R,EAAIvP,EAAE+D,kBAAuB,EAASwL,EAAElM,SAAUke,GAhBvU,CAACvhB,IACP,GAAS,MAALA,EACF,IACE,OAAOgiB,KAAKK,MAAMriB,EACxB,CAAM,MACA,MAAO,EACb,CACE,MAAO,EAAE,EASyUsiB,CAAGpB,GAAGqB,QAAQnB,IAAI,EACnWM,GAAM1hB,GAAMwiB,EAAAA,eAAGxiB,EAAEoc,SAAWqG,gBAAgB,CAC7C5B,GAAI7gB,EAAE6gB,GACNzE,QAASsG,EAAGC,eAAe3iB,EAAEoc,SAC7Btd,KAAMkB,EAAElB,KACRge,OAAQ9c,EAAE8c,OAAOC,cACjB+D,UAAW9gB,EAAE8gB,UACbG,KAAMjhB,EAAEihB,OACLjhB,EA2BF4iB,GAAK,CAAC5iB,EAAGC,EAAG6K,KACb,MAAMwE,GAAI,IAAIuT,WAAYC,gBAAgB9iB,EAAG,aAC7C,OAAO+d,MAAMC,KAAK1O,EAAEyT,KAAKC,YAAYlT,KAAI,CAACL,EAAGC,KAC3C,IAAIK,EACJ,GAAIN,EAAEwT,WAAaC,KAAKC,UACtB,OAAO1T,EAAE2T,YACX,CACE,MAAMpT,EAAIP,EAAE4T,QAAQC,cACpB,IAAI3S,EAAIoN,MAAMC,KAAKvO,EAAE8T,YAAYC,QAAO,CAACpjB,EAAG+R,KAC1C,MAAMC,EAAID,EAAEsR,KAAKH,cACjB,GAAU,UAANlR,EAAe,CACjB,MAAMC,EAAIF,EAAEnH,MAAM0Y,MAAM,KAAKC,QAAQpR,GAAmB,KAAbA,EAAEkM,SAAgBnM,EAAI,CAAE,EACnED,EAAEuR,SAASrR,IACT,MAAOE,EAAGC,GAAKH,EAAEmR,MAAM,KAAK5T,KAAK8C,GAAMA,EAAE6L,SAAS9L,EAAIF,EAAE8N,QAAQ,aAAa,CAAC3N,EAAGC,IAAMA,EAAEkK,gBACzFzK,EAAEK,GAAKD,CAAC,IACNtS,EAAEgS,GAAKE,CACrB,KAAsB,UAANtC,GAAuB,UAANA,GAAwB,aAANoC,GAAgC,KAAZD,EAAEnH,MAA+B5K,EAAEgS,GAAKD,EAAEnH,MAAzB5K,EAAEgS,GAAK,OACvF,OAAOhS,CAAC,GACP,IACH,GAAIuf,OAAOkE,UAAUC,eAAeC,KAAKpT,EAAG,SAAU,CACpD,MAAMvQ,EAAIqP,EAAEuU,UACZrT,EAAEd,UAAYzP,EAAEqgB,kBAAmB9P,EAAEsT,MAA4B,OAApBlU,EAAI9P,EAAEiG,YAAsB6J,EAAE/M,aAAe2N,EAAIuT,GAAG9jB,EAAGuQ,IAAKA,EAAIwT,GAAG/jB,EAAGuQ,EAAG1Q,EAAG6K,GAAI6F,EAAIyT,GAAGhkB,EAAGuQ,EAAG1Q,EAAG6K,GAAI6F,EAAI0T,GAAGjkB,EAAGuQ,EAAG1Q,EAAG6K,GAAI6F,EAAI2T,GAAGlkB,EAAGuQ,EAAG1Q,EAAG6K,EAC7L,CACM,GAAI,CACF,OACA,OACA,KACA,MACA,QACA,KACA,MACA,QACA,OACA,OACA,SACA,QACA,OACA+U,SAAS7P,GACT,OAAOuU,EAAAA,cAAGvU,EAAG,CAAEwU,IAAK9U,KAAMiB,IAC5B,CACE,MAAMvQ,EAAIwiB,GAAGnT,EAAEgV,UAAWxkB,EAAG6K,GAC7B,OAAOyZ,EAAE1lB,cAACmR,EAAG,CAAEwU,IAAK9U,KAAMiB,MAAQvQ,EAC1C,CACA,IACI,EACD8jB,GAAK,CAAClkB,EAAGC,MAAQD,EAAE0kB,SAAS,0BAA4B1kB,EAAE0kB,SAAS,6BAA+BzkB,EAAE4P,UAAY,GAAG7P,EAAEygB,iCAAkCxgB,GAAIkkB,GAAK,CAACnkB,EAAGC,EAAG6K,EAAG6E,KAC3K,IAAIL,EAAGC,EAAGC,EAAGC,EAAGC,EAChB,OAAO1P,EAAE0kB,SAAS,iBAAmBzkB,EAAErB,MAAQ,IAC1CqB,EAAErB,MACL0c,OAAkC,OAAzBhM,EAAIK,EAAE9D,qBAA0B,EAASyD,EAAEgM,SAA8B,OAAlB/L,EAAIzE,EAAExJ,cAAmB,EAASiO,EAAEhO,cACpGga,aAAwC,OAAzB/L,EAAIG,EAAE9D,qBAA0B,EAAS2D,EAAE8L,SAA8B,OAAlB7L,EAAI3E,EAAExJ,cAAmB,EAASmO,EAAElO,cAC1GiB,OAAQ,QAA2B,OAAlBkN,EAAI5E,EAAExJ,cAAmB,EAASoO,EAAE7N,gCAClD8N,EAAE9D,iBACH5L,CAAC,EACJmkB,GAAK,CAACpkB,EAAGC,EAAG6K,EAAG6E,KAChB,IAAIL,EAAGC,EAAGC,EAAGC,EAAGC,EAChB,OAAO1P,EAAE0kB,SAAS,gCAAkCzkB,EAAErB,MAAQ,IACzDqB,EAAErB,MACL0c,OAAuC,OAA9BhM,EAAIK,EAAE5D,0BAA+B,EAASuD,EAAEgM,SAA8B,OAAlB/L,EAAIzE,EAAExJ,cAAmB,EAASiO,EAAEhO,cACzGga,aAA6C,OAA9B/L,EAAIG,EAAE5D,0BAA+B,EAASyD,EAAE8L,SAA8B,OAAlB7L,EAAI3E,EAAExJ,cAAmB,EAASmO,EAAElO,cAC/GiB,OAAQ,QAA2B,OAAlBkN,EAAI5E,EAAExJ,cAAmB,EAASoO,EAAE7N,gCAClD8N,EAAE5D,sBACH9L,CAAC,EACJokB,GAAK,CAACrkB,EAAGC,EAAG6K,EAAG6E,KAChB,IAAIL,EAAGC,EAAGC,EAAGC,EAAGC,EAChB,OAAO1P,EAAE0kB,SAAS,8BAAgCzkB,EAAErB,MAAQ,IACvDqB,EAAErB,MACL0c,OAAwC,OAA/BhM,EAAIK,EAAE3D,2BAAgC,EAASsD,EAAEgM,SAA8B,OAAlB/L,EAAIzE,EAAExJ,cAAmB,EAASiO,EAAEhO,cAC1Gga,aAA8C,OAA/B/L,EAAIG,EAAE3D,2BAAgC,EAASwD,EAAE8L,SAA8B,OAAlB7L,EAAI3E,EAAExJ,cAAmB,EAASmO,EAAElO,cAChHiB,OAAQ,QAA2B,OAAlBkN,EAAI5E,EAAExJ,cAAmB,EAASoO,EAAE7N,gCAClD8N,EAAE3D,uBACH/L,CAAC,EACJqkB,GAAK,CAACtkB,EAAGC,EAAG6K,EAAG6E,KAChB,IAAIL,EAAGC,EACP,OAAQvP,EAAE0kB,SAAS,sCAAwC1kB,EAAE0kB,SAAS,wCAA0CzkB,EAAErB,MAAQ,IACrHqB,EAAErB,MACL0d,gBAAoC,OAAlBhN,EAAIxE,EAAExJ,cAAmB,EAASgO,EAAE/N,aACtDgb,SAAgC,OAArBhN,EAAIzE,EAAEhF,aAAuByJ,EAAEvM,WAAa,MAAQ,SAC5D2M,EAAEjD,6BACHzM,CAAC,EACJ0kB,GAAK,KACN,MAAQla,SAAUzK,GAAM2K,KACtBsK,uBAAwBhV,EACxBiV,gCAAiCpK,EACjCmL,kBAAmBtG,EACnB0G,YAAa/G,EACbgH,eAAgB/G,EAChB4F,gCAAiC3F,GAC/BmC,KAAQP,eAAgB3B,EAAG0B,gBAAiBzB,EAAG2B,YAAatB,GAAMK,KAAO0J,iBAAkB9J,GAAMyJ,IAAM9I,EAAI+I,EAAAA,aAAEhB,UAC/G,IAAIpG,EAAGC,EACP,MAAMJ,EAA4B,OAAvBG,EAAItS,EAAEoD,mBAAwB,EAASkP,EAAE7O,MACpDiM,EAAE+B,QAAU,IAAImT,aAChB,MAAMxS,EAAI1C,EAAE+B,QAAQoT,aAEpB,IAAIxS,EACJ,GAFAD,EAAE0S,KAAK9Z,OAAiC,OAAvBuH,EAAIvS,EAAEoD,mBAAwB,EAASmP,EAAEhP,SAAW,GAAKwM,EAAE0B,QAAUW,EAE7E,MAALD,GAAaA,EAAE4S,WAAW,cAAe,CAC3C,MAAMtS,EAAIuS,KAAK7S,EAAEuR,MAAM,KAAK,IAAKhR,EAAI,IAAIuS,YAAYxS,EAAEkH,QAAShH,EAAI,IAAI6N,WAAW9N,GACnF,IAAK,IAAIE,EAAI,EAAGA,EAAIH,EAAEkH,OAAQ/G,IAC5BD,EAAEC,GAAKH,EAAEyS,WAAWtS,GACtBP,EAAIK,CACL,MACCL,cAAiB8S,MAAMhT,IAAIiT,cAC7B3V,EAAEgC,cAAgB/B,EAAE+B,QAAQ4T,gBAAgBhT,EAAE,GAC7C,CAACrS,EAAEoD,eAAgBwN,EAAI8I,EAACG,aAAC,KAC1B,IAAIzH,EACJ,GAA4B,OAAvBA,EAAIpS,EAAEoD,eAAyBgP,EAAE/O,WAAamM,EAAEiC,UAAY9B,IAAMD,EAAE+B,UAAYhC,EAAEgC,QACrF,OACF,MAAMU,EAAIzC,EAAE+B,QAAQ6T,qBACpBnT,EAAEoT,OAAS9V,EAAEgC,QAASU,EAAEqT,QAAQzV,EAAE0B,SAAS+T,QAAQ9V,EAAE+B,QAAQgU,aAActT,EAAEuT,OAAO,GACnF,CACD1lB,EAAEoD,aACFoM,EACAG,EACAD,EACAD,EACAM,IAWF,MAAO,CACLsG,YAAa/G,EACbgH,eAAgB/G,EAChB0F,uBAAwBhV,EACxB0lB,oBAdMjM,eAAEhB,MAAOvG,IACf,IAAIC,EACJD,IAAM3C,EAAEiC,UAA6B,OAAhBW,EAAIpS,EAAEgI,QAAkBoK,EAAEvJ,+BAAiCmH,EAC9E+G,EAAEG,qBACF,CACEyD,UAAWnL,EAAEiC,QACbmJ,UAAWpL,EAAEiC,WAEdoJ,kBAAoB/P,GAAGuH,IAAOA,IAAG,GACnC,CAAC7C,IAMFoW,sBAAuBhV,EACvBiV,mBAAoBlV,EACrB,EAkBAmV,GAAK,CAAC9lB,EAAGC,KACV,IAAI6K,EAAG6E,EAAGL,EAAGC,EAlBP,EAACvP,EAAGC,EAAG6K,EAAG6E,EAAGL,KACnB,IAAKzM,OAAOkjB,yBAEV,YADArF,QAAQsF,KAAK,8DAGf,MAAMzW,EAAI,IAAI1M,OAAOkjB,yBACrBxW,EAAErN,KAAOlC,EAAGuP,EAAE0W,KAAOhmB,EAAGsP,EAAEzL,KAAO6L,EAAGJ,EAAEhM,OAAS+L,EAC/C,IAAIE,GAAI,EACR,IAAK,MAAMC,KAAK3E,EACd,GAAIjI,OAAOqjB,gBAAgBC,YAAYC,MAAM1W,IAC3C,GAAIA,EAAE+T,OAAShU,EAEb,OADAF,EAAEpJ,MAAQuJ,EAAG7M,OAAOqjB,gBAAgBG,MAAM9W,QAAIC,GAAI,EAE1D,IACQA,EACF,MACJA,GAAK3M,OAAOqjB,gBAAgBG,MAAM9W,EAAE,EAGpC+W,CACErmB,EACiB,OAAhB6K,EAAI9K,EAAE2D,YAAiB,EAASmH,EAAElH,SAClB,OAAhB+L,EAAI3P,EAAE2D,YAAiB,EAASgM,EAAE9L,WAClB,OAAhByL,EAAItP,EAAE2D,YAAiB,EAAS2L,EAAExL,KAClB,OAAhByL,EAAIvP,EAAE2D,YAAiB,EAAS4L,EAAEhM,OACpC,EACAgjB,GAAK,KACN,MAAQ9b,SAAUzK,GAAM2K,KAAOgK,eAAgB1U,EAAG2U,wBAAyB9J,EAAG+J,wBAAyBlF,GAAMgC,KAAQmI,iBAAkBxK,GAAMmK,IAAMlK,EAAImK,eAAEhB,MAAOjJ,IAC9J,IAAIC,EACJD,IAAME,EAAE8B,UAA6B,OAAhB/B,EAAI1P,EAAEgI,QAAkB0H,EAAE9G,uBAAyB0G,EACtEyH,EAAEE,aACF,CACE0D,UAAWhL,EAAE8B,QACbmJ,UAAWjL,EAAE8B,WAEdoJ,kBAAoB/P,GAAGiF,IAAOA,IAAG,GACnC,CAACJ,IAAKH,EAAIkK,EAACG,aAACnB,MAAOjJ,IACpB,IAAIM,EAAGC,EACP,GAAqB,OAAhBD,EAAI/P,EAAE2D,QAAkBoM,EAAE1M,WAAasM,EAAE8B,QAC5C,OACF,IAAI/B,EAAID,EACR,GAAqB,OAAhBO,EAAIhQ,EAAEgI,QAAkBgI,EAAErH,mBAAoB,CACjD,MAAMgI,QAAUrB,EAAEyH,EAAEC,kBAAmB,CAAEwP,WAAY9W,IACrD,GAAIiB,EAAEkK,iBACJ,OACFnL,EAAIiB,EAAEmI,KAAK0N,UACjB,CACIV,GAAG9lB,EAAG0P,EAAE,GACP,CAAC1P,EAAG2P,IACP,MAAO,CACLgF,eAAgB1U,EAChBwmB,WAAYjX,EACZkX,YAAanX,EACd,EACAoX,GAAK,KACN,IAAI9T,EAAGC,EACP,MAAQrI,SAAUzK,GAAM2K,KAAOkR,SAAU5b,EAAG6b,kBAAmBhR,EAAGiR,kBAAmBpM,GAAMqM,KACzF1H,qBAAsBhF,EACtBgH,eAAgB/G,EAChBmG,qBAAsBlG,EACtBkF,0BAA2BjF,GACzBkC,KAAQZ,iBAAkBrB,EAAGsB,YAAajB,EAAGkB,eAAgBjB,GAAMI,KAAO+K,eAAgBxK,EAAGyK,oBAAqBxK,GAAMsJ,KAAQJ,iBAAkB1Z,GAAMqZ,KAAQgN,WAAYtU,GAAMoU,MAAQX,sBAAuBxT,GAAMuS,KAAMtS,EAAIqH,EAACG,aAAC,CAAC9G,EAAGC,GAAI,KAC7O,IAAII,EAAGC,EACPmO,GAAGzO,GACH,IAAIE,GAAI,EACR,MAAMC,EAAIH,EAAEA,EAAE4G,OAAS,GACvB,IAAKzG,EACH,OACF,MAAMC,EAAID,EAAE4J,OAAOC,cACb,SAAN5J,IAAiBF,GAAI,GAAwB,OAAlBG,EAAIpT,EAAEsB,UAAoB8R,EAAEtR,UAAY8O,MAAQqC,GAAI,IAAMxD,EAAEgC,UAAYjC,EAAEiC,SAAWuB,KAAOC,GAAI,GAAKA,GAAKb,KAAMY,IAAY,SAANG,GAAuC,OAArBE,EAAIrT,EAAEiF,aAAuBoO,EAAEjO,kBAA2B,SAAN+N,IAAiB3D,EAAEiC,UAAY2N,YAAW,IAAMzO,KAAK,EAAE,GAC7Q,CACD3Q,EACA+P,EACAN,EACAD,EACA4C,EACAzB,EACAC,IACE0B,EAAIoH,EAAAA,aAAEhB,MAAO3F,EAAGC,EAAI,MAAOC,EAAI,QACjC,IAAIQ,EAAGC,EAAGC,EAAGC,EAAGC,EAChB,GAAgB,iBAALd,EACT,MAAM,IAAI2M,MAAM,sDAClB1M,EAAIA,EAAE+J,cACN,IAAI7J,EAAI0N,GAAG7N,EAAGC,GACd,GAAqB,OAAhBS,EAAIzT,EAAEgI,QAAkByL,EAAEtL,8BAA+B,CAC5D,MAAM2L,QAAU1T,EACd2W,EAAEQ,8BACF,CAAE2E,QAAShJ,IAEb,GAAIY,EAAE+G,iBACJ,OAAO,KACT5H,EAAIa,EAAEgF,KAAK8N,uBAAyB3T,EAAGC,EAAIY,EAAEgF,KAAKoD,OACxD,CACI5M,GAAE,GACF,IAAI6D,EAAI,GACMA,EAAR,QAANH,EAAuC,OAApBU,EAAI1T,EAAEkG,gBAAqB,EAASwN,EAAEzN,YAAwC,OAArB0N,EAAI3T,EAAE8F,iBAAsB,EAAS6N,EAAE1N,YACnH,MAAMmN,EAAI,IAAKF,EAAGkJ,QAAS,IAC3BtR,GAAGgJ,GAAM,IAAIA,EAAGV,KAAKf,EAAE1C,EAAE8B,SACzB,IAAI4B,EAAIH,EAAEkJ,QACVnJ,IAAMI,EAAIJ,EAAEI,IACZ,IAAIC,EAAI,EACR,MAAMC,EAAIF,EAAEsG,OACe,QAA3BzG,EAAE4J,OAAOC,gBAA4BtN,EAAEgC,SAA8B,OAAlBmC,EAAI5T,EAAEsB,UAAoBsS,EAAE9R,WAAiC,iBAAboR,EAAEkJ,SAA4C,KAArBlJ,EAAEkJ,QAAQqC,QAAiBtM,EAAEe,EAAEkJ,SAC3J,MAAM5I,EAAI,IAAIyF,SAASnF,IACrB,MAAMC,EAAI8S,aAAY,KACpB,GAAIvT,GAAKC,EAEP,OADAuT,cAAc/S,QAAID,IAGpBhJ,GAAGoJ,IACD,MAAMC,EAAI,IAAID,GACd,IAAK,IAAIrC,EAAKsC,EAAEwF,OAAS,EAAG9H,GAAM,EAAGA,IACnC,GAAIsC,EAAEtC,GAAIgP,KAAOzN,EAAEyN,GAAI,CACrB,MAAM/O,EAAKuB,EAAEC,GACbxB,IAAOsB,EAAEgJ,SAAWtK,EAAIqC,EAAEtC,GAAMuB,GAAIE,IACpC,KACd,CACU,OAAOa,CAAC,GACR,GACDhB,EAAE,IAEP,OAAQ3D,EAAEiC,UAAYhC,EAAEgC,UAAYlC,GAAGuE,GAAMA,EAAI,UAAUN,EAAGgO,GAAG7R,EAAE8B,SAA2B,OAAhBoC,EAAI7T,EAAEgI,QAAkB6L,EAAEzL,oCAAsChI,EAAE2W,EAAES,6BAA8B,CAAE0E,QAAShJ,IAAY,SAANF,IAAiBhD,EAAEyB,QAAUsB,GAAIG,CAAC,GAClO,CACDlT,EACAI,EACAiS,EACA1C,EACAK,EACAV,EACAC,EACAE,EACA0C,IACEI,EAAImH,EAACG,aAACnB,MAAO3F,EAAGC,EAAI,SACtB,IAAIE,EAAGC,EAAGC,EACVJ,EAAIA,EAAE+J,cACN,IAAI9J,EAAI2N,GAAG7N,EAAGC,GACd,GAAqB,OAAhBE,EAAIlT,EAAEgI,QAAkBkL,EAAEjL,oBAAqB,CAClD,MAAMoL,QAAUjT,EAAE2W,EAAEM,mBAAoB,CAAE6E,QAASjJ,IACnD,GAAII,EAAEwH,iBACJ,OAAO,KACT5H,EAAII,EAAEyF,KAAKoD,OACjB,CACI,MAAkC,QAA3BjJ,EAAE6J,OAAOC,gBAA4BtN,EAAEgC,SAA8B,OAAlB0B,EAAInT,EAAEsB,UAAoB6R,EAAErR,WAAiC,iBAAbmR,EAAEmJ,SAA4C,KAArBnJ,EAAEmJ,QAAQqC,QAAiBtM,EAAEc,EAAEmJ,UAAW5M,EAAEiC,UAAYhC,EAAEgC,UAAYlC,GAAG8D,GAAMA,EAAI,IAAqB,OAAhBD,EAAIpT,EAAEgI,QAAkBoL,EAAElL,4BAA8B9H,EAAE2W,EAAEO,oBAAqB,CAAE4E,QAASjJ,IAAMnI,GAAGuI,GAAM,IAAIA,EAAGJ,KAAKZ,EAAE1C,EAAE8B,SAAgB,SAANuB,GAA4B,iBAALD,IAAkB/C,EAAEyB,QAAUsB,GAAIE,CAAC,GACzZ,CACDjT,EACAI,EACAiS,EACArC,EACAL,EACAF,EACA0C,EACA5C,IACEkD,EAAIiH,eAAEhB,MAAO3F,IACf,IAAIE,EACJ,MAAMD,EAAIrD,EAAE8B,QAAQ2U,MAAMlT,GAAMA,EAAE2N,KAAO9N,IACzC,OAAQC,GAAsB,OAAhBC,EAAIjT,EAAEgI,QAAkBiL,EAAEzK,yBAA2BpI,EAAE2W,EAAEa,eAAgB,CAAEsE,QAASlJ,KAAM6H,iBAAmB,MAAQ/P,GAChIoI,GAAMA,EAAEyQ,QAAQxQ,GAAMA,EAAE0N,KAAO9N,MAC/BV,EAAE1C,EAAE8B,SAAUlC,GAAG2D,GAAM6T,KAAKlJ,IAAI3K,EAAI,EAAG,KAAKF,EAAE,GAChD,CACD5S,EACiB,OAAhByS,EAAI7S,EAAEgI,YAAiB,EAAS6K,EAAErK,iBACnC6J,EACA1C,EACAJ,IACEmD,EAAIgH,EAACG,aAACnB,MAAO3F,EAAGC,EAAI,SACtB,IAAIE,EAAGC,EACP,GAAIH,EAAIA,EAAE+J,eAAgBrN,EAAE+B,QAAQkM,IAAI3K,GAAI,CAC1C,MAAMI,EAAIwN,GAAG7N,EAAGC,GAChB,OAAwB,OAAhBE,EAAIlT,EAAEgI,QAAkBkL,EAAE7K,8BAAgCjI,EAAE2W,EAAEU,qBAAsB,CAAEyE,QAAS9I,KAAMyH,iBAAmB,MAAQvL,GAAE,GAAKxE,GAAGuI,GAAM,IAAIA,EAAGD,KAAKf,EAAE1C,EAAE8B,SAAU/B,EAAE+B,QAAQuV,IAAIhU,EAAGI,EAAEyN,KAAMrR,EAAEiC,UAAYhC,EAAEgC,UAAYlC,GAAG8D,GAAMA,EAAI,IAAID,EAC9P,CACI,MAAMH,EAAI,IAAK2N,GAAG7N,EAAGC,GAAI6N,GAAInR,EAAE+B,QAAQwV,IAAIjU,IAC3C,OAAwB,OAAhBG,EAAInT,EAAEgI,QAAkBmL,EAAE7K,8BAAgClI,EAAE2W,EAAEW,qBAAsB,CAAEwE,QAASjJ,KAAM4H,iBAAmB,MAAQ/P,GACrIsI,GAAMA,EAAEtD,KAAKuD,GAAMA,EAAEwN,KAAO5N,EAAE4N,GAAK5N,EAAII,MACvChB,EAAE1C,EAAE8B,SAAS,GAAKwB,EAAE,GACtB,CACD7S,EACAJ,EAAEgI,MACFqK,EACA1C,EACAL,EACAC,EACAG,IACEiD,EAAI+G,EAAAA,aAAEhB,MAAO3F,EAAI,SACnB,IAAIG,EACJ,GAAIH,EAAIA,EAAEgK,eAAgBrN,EAAE+B,QAAQkM,IAAI5K,GACtC,OAAO,EACT,MAAMC,EAAItD,EAAE+B,QAAQwV,IAAIlU,GACxB,IAAIE,EACJ,IAAK,IAAIE,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,MAAMC,EAAIzD,EAAE8B,QAAQ2U,MAAM/S,GAAMA,EAAEwN,KAAO7N,IACzCI,IAAMH,EAAIG,SAAU,IAAI6F,SAAS5F,GAAM+L,WAAW/L,EAAG,KAC3D,CACI,OAAwB,OAAhBH,EAAIlT,EAAEgI,SAAkBkL,EAAE3K,8BAA+BnI,EAAE2W,EAAEY,oBAAqB,CAAEuE,QAASjJ,KAAM4H,oBAAyBnL,EAAE+B,QAAQmM,OAAO7K,GAAIyO,GAAG7R,EAAE8B,SAAgB,SAANsB,GAA2D,iBAA9B,MAALE,OAAY,EAASA,EAAEmJ,WAAyBpM,EAAEyB,QAAUwB,EAAEmJ,UAAU,EAAG,GAC1Q,CAAChc,EAAoB,OAAhB0S,EAAI9S,EAAEgI,YAAiB,EAAS8K,EAAEvK,qBAAsBmH,EAAGM,IAGnE,MAAO,CACL0O,sBAAuBpM,EACvB+L,cAAe9L,EACf2U,cAAezU,EACf0U,cAAezU,EACf0U,iBAAkBzU,EAClB0U,gBAT0E3N,EAAAA,aAAG3G,IAC7EjI,EAAEiI,GAAIV,EAAEU,EAAE,GACT,CAACV,IAQFwJ,SAAU5b,EACX,EAEH,IAAIqnB,GAAIC,GAAIC,GAAIC,IAAK,EAAIC,GAAK,KACzB,MAACC,GAAK,KACT,IAAKL,GAAI,CACP,MAAMtnB,EAAI6C,OAAO+kB,mBAAqB/kB,OAAOglB,wBAC7CP,GAAU,MAALtnB,EAAY,IAAIA,EAAM,IAC/B,CACE,OAAOsnB,EAAE,EAWRQ,GAAK,CAAC9nB,EAAGC,EAAG6K,EAAG6E,EAAGL,EAAGC,KACtB,IAAIQ,EAAGC,EAAGW,EACV,MAAMnB,EAAImY,KACV,IAAKnY,EACH,OACF,IAAKiY,GACH,IACEA,IAAK,EAAIjY,EAAEyW,KAAwB,OAAhBlW,EAAI/P,EAAEmG,YAAiB,EAAS4J,EAAEnM,SAAU4L,EAAEkW,OACvE,CAAM,MACN,CACE,MAAMjW,EAAqB,OAAhBO,EAAIhQ,EAAEmG,YAAiB,EAAS6J,EAAE5J,cAAesJ,EAAqB,OAAhBiB,EAAI3Q,EAAEmG,YAAiB,EAASwK,EAAErK,eACnGkJ,EAAEuY,SAAYnX,IACZ,IAAIuB,EAAGC,EACP4V,aAAaT,IAAKA,GAAK,KAAMS,aAAaR,IAC1C,MAAMpnB,EAAIwQ,EAAEqX,QAAQrX,EAAEqX,QAAQtO,OAAS,GAAG,GAAGuO,WAC7C,GAAI3Y,EAAEkC,QAAS,CACb,MAAMY,EAAyB,OAApBF,EAAInS,EAAEsE,gBAAqB,EAAS6N,EAAExN,eAAgB2N,EAAI/C,EAAEkC,QAAQzG,MAAQ5K,EAClF,MAALiS,GAAaA,GAAK,GAAKC,EAAEqH,OAAStH,EAAI1C,EAAE2C,EAAEqP,MAAM,EAAGtP,IAAM1C,EAAE2C,GAAIhD,EAAEC,EAAEkC,QAAQzG,MAAM2O,OACvF,CACIlK,IAAM8X,GAAKnI,YAAW1G,eAAkByP,GAAGloB,EAAGsP,IAAIE,IAAsB,OAAhB2C,EAAIpS,EAAEmG,QAAkBiM,EAAE/L,mBAAqBmhB,GAAKpI,WAAWtU,EAAG4E,GAAG,EAC5HF,EAAE4Y,MAAQ,KACXX,IAAMjY,EAAEkW,SAAU6B,IAAM9X,IAAM8X,GAAKnI,YAAW1G,eAAkByP,GAAGloB,EAAGsP,IAAIE,MAAQuY,aAAaT,IAAKA,GAAK,KAAMS,aAAaR,IAAI,EAC/H/X,IAAM8X,GAAKnI,YAAW1G,eAAkByP,GAAGloB,EAAGsP,IAAIE,GAAG,EACvD4Y,GAAK,CAACroB,EAAGC,KACVqoB,UAAUC,aAAaC,aAAa,CAAE7kB,OAAO,IAAM8kB,MAAM3d,IACvD,GAAI4c,GAAK,IAAIgB,cAAc5d,IAAK2c,GAC9B,IACEA,IAAK,EAAIC,GAAGhC,OACpB,CAAQ,MACR,CACIgC,GAAGiB,gBAAmBhZ,IACpB1P,EAAEwR,SAAWxR,EAAEwR,QAAQmX,KAAKjZ,EAAEmJ,KAAK,EAClC4O,GAAGmB,OAAS,KACb7oB,IAAK8K,EAAEge,YAAYlF,SAASjU,GAAMA,EAAEoZ,QAAO,CAC5C,IACAC,OAAOle,IACR4V,QAAQC,MAAM,4BAA6B7V,EAAE,GAC7C,EACDme,GAAK,KACN,MAAMjpB,EAAI2nB,KACV3nB,IAAMynB,IAAK,EAAIznB,GAAKA,EAAE+oB,OAAQrB,IAAmB,aAAbA,GAAGwB,QAAyBxB,GAAGqB,OAAQrB,GAAK,MAAOM,aAAaT,IAAKA,GAAK,KAAMS,aAAaR,IAAI,EAKpIW,GAAKzP,MAAO1Y,EAAGC,KAChB,IAAI6K,EACe,OAAlBA,EAAI7K,EAAEwR,UAAoB3G,EAAEzH,gBAAkBrD,IAAKipB,IAAI,EACvDE,GAAK,KACN,MAAQ1e,SAAUzK,GAAM2K,KAAOmK,eAAgB7U,EAAG8U,wBAAyBjK,EAAGkK,wBAAyBrF,GAAMgC,KAAQmI,iBAAkBxK,GAAMmK,IAAMlK,EAAImK,eAAEhB,MAAOjJ,IAC9J,IAAIC,EACJD,IAAME,EAAE8B,UAA6B,OAAhB/B,EAAI1P,EAAEgI,QAAkB0H,EAAE5G,uBAAyBwG,EACtEyH,EAAEI,aACF,CACEwD,UAAWhL,EAAE8B,QACbmJ,UAAWjL,EAAE8B,WAEdoJ,kBAAoB/P,GAAGiF,IAAOA,IAAG,GACnC,CAACJ,IAAKH,EAAIkK,EAACG,aAAEpK,IAjBV,EAACzP,EAAGC,KACV,IAAI0P,EAAGL,EAAGC,EACV,MAAMzE,EAAI6c,KACO,OAAhBhY,EAAI1P,EAAEkG,QAAkBwJ,EAAEtM,UAAmC,OAApBiM,EAAIrP,EAAEqE,aAAsBgL,EAAExK,YAAegG,IAAM9K,IAAMynB,IAAMA,IAAK,EAAqB,OAAhBlY,EAAItP,EAAEkG,QAAkBoJ,EAAEhJ,YAAoB,MAANmhB,IAAcA,GAAGhC,QAAU5a,EAAE4a,SAAW1lB,GAAKipB,KAAK,EAe3MG,CAAG3Z,EAAGzP,EAAE,GACP,CAACA,IACJ,MAAO,CACL8U,eAAgB7U,EAChBopB,YAAa9Z,EACb+Z,UAAW9Z,EACZ,EACA+Z,GAAK,KACN,IAAI5W,EACJ,MAAQlI,SAAUzK,GAAM2K,KACtB4L,YAAatW,EACbuW,eAAgB1L,EAChB6K,iBAAkBhG,EAClBiG,0BAA2BtG,EAC3BwG,sBAAuBvG,EACvBwG,+BAAgCvG,EAChCqG,0BAA2BpG,EAC3BuG,+BAAgCtG,GAC9BiC,KAAQd,SAAUd,EAAGiB,YAAahB,EAAGsB,aAAcX,GAAMP,KAAO0J,iBAAkBlJ,GAAM6I,KAAQ2B,oBAAqBhb,GAAM8Z,IAAM/H,EAAIuH,EAACG,aAACnB,MAAO9F,IAChJ,IAAIC,EAAGC,EAAGC,EACV,GAAItD,EAAEgC,SAAW1B,EAAE0B,QACjB1B,EAAE0B,QAAQzG,MAAQ,QAGpB,GAAI+E,EAAE0B,SAAyB,OAAdd,EAAEc,QAAkB,CACnC,MAAMuB,EAAyB,OAApBH,EAAI7S,EAAEsE,gBAAqB,EAASuO,EAAElO,eAAgBuO,GAA0B,OAApBJ,EAAI9S,EAAEsE,gBAAqB,EAASwO,EAAEvO,cAAgBqO,EAAIA,EAAE2N,QAAQ,MAAO,KAClJ,GAAS,MAALvN,GAAaA,GAAK,GAAKE,EAAEyG,OAAS3G,EAAIjD,EAAE0B,QAAQzG,MAAQkI,EAAEyO,MAAM,EAAG3O,GAAKjD,EAAE0B,QAAQzG,MAAQkI,EAAoB,OAAhBH,EAAI/S,EAAEgI,QAAkB+K,EAAE3J,+BAAiCwH,EAC3JmG,EAAEoB,uBACF,CAAEqR,UAAWzZ,EAAE0B,QAAQzG,MAAOye,UAAW9Y,EAAEc,WAC1CoJ,iBAED,YADA9K,EAAE0B,QAAQzG,MAAQ2F,EAAEc,SAGtBd,EAAEc,QAAU1B,EAAE0B,QAAQzG,KAC5B,IACK,CAACyE,EAAGM,EAAGY,EAAG3Q,EAAG4Q,IAAKwB,EAAIsH,eAAG9G,IAC1B,IAAIC,EACe,OAAlBA,EAAI9C,EAAE0B,UAAoBoB,EAAExP,UAAY+b,YAAW,KAClD,IAAItM,EAAGC,EAAGC,EACS,OAAlBF,EAAI9S,EAAEsB,UAAoBwR,EAAEhR,SAAW1B,MAA2B,OAAlB2S,EAAIhD,EAAE0B,UAAoBsB,EAAE2W,SAAiB,UAAN9W,IAAqC,OAAlBI,EAAIjD,EAAE0B,UAAoBuB,EAAE0W,QAAQ,GAC9I,IAAI,GACN,CAAC3Z,EAAsB,OAAlB4C,EAAI3S,EAAEsB,cAAmB,EAASqR,EAAE7Q,SAAUkO,EAAG5P,IAAKiS,EAAIqH,EAAAA,aAAE,KAClE3J,EAAE0B,SAAW1B,EAAE0B,QAAQiY,OAAO,GAC7B,IAAKpX,EAAIoH,EAAAA,aAAE,KACZ3J,EAAE0B,SAAW1B,EAAE0B,QAAQkY,MAAM,GAC5B,IAAKpX,EAAImH,EAAAA,aAAE,IAAM3J,GAAKA,EAAE0B,QAAU1B,EAAE0B,QAAQzG,MAAQ,IAAI,IAAKyH,EAAIiH,EAAAA,aAAG9G,IACrEA,IAAMnD,EAAEgC,SAAWnC,GAAGuD,IAAOA,GAAE,GAC9B,CAACpD,IAAKiD,EAAIgH,EAACG,aAAEjH,IACdA,IAAMlD,EAAE+B,SAAWjC,GAAGqD,IAAOA,GAAE,GAC9B,CAACnD,IACJ,MAAO,CACLiG,iBAAkBhG,EAClBiG,0BAA2BtG,EAC3BwG,sBAAuBvG,EACvBwG,+BAAgCvG,EAChC+G,YAAatW,EACbuW,eAAgB1L,EAChB8e,iBAAkBrX,EAClBsX,iBAAkB1X,EAClB2X,oBAAqB1X,EACrB2X,cAAe1X,EACf2X,aAAc1X,EACd2X,uBAAwBxX,EACxByX,4BAA6BxX,EAC9B,EACAyX,GAAK5f,gBAAG,CACT6f,OAAQ,GACRC,gBAAiB,OAEjBC,gBAAiB,CAAE7Y,QAAS,MAC1B8Y,GAAK,IAAM3f,EAAAA,WAAGuf,IAAKK,GAAK,EAAGznB,SAAU/C,MACvC,MAAOC,EAAG6K,EAAG6E,GAAK4B,EAAG,IACrB,OAAuBhP,EAAAA,IAAE4nB,GAAGpf,SAAU,CAAEC,MAAO,CAAEof,OAAQnqB,EAAGoqB,gBAAiBvf,EAAGwf,gBAAiB3a,GAAK5M,SAAU/C,GAAI,EACnHyqB,GAAK,KACN,MAAQhgB,SAAUzK,GAAM2K,KAAOyf,OAAQnqB,EAAGoqB,gBAAiBvf,EAAGwf,gBAAiB3a,GAAM4a,MAAQzQ,iBAAkBxK,GAAMmK,IAAMlK,EAAImK,EAACG,aAACnB,MAAOhJ,EAAGK,KACzI,IAAIoC,EAAGC,EAAGC,EAAGC,EACb,IAAItC,EAAI,KACR,GAAIL,EAAE8B,QAAQkI,UAA6B,OAAhBxH,EAAInS,EAAE4H,YAAiB,EAASuK,EAAEtK,WAAa,GAAI,CAC5E,GAAqB,OAAhBuK,EAAIpS,EAAE4H,QAAkBwK,EAAEtK,YAC7B,OAAO,KACTkI,EAAImQ,KACJ,IAAI5N,EAAI,CAAEsO,GAAI7Q,EAAGoM,QAAS1M,EAAGgb,QAAS3a,GACtC,GAAqB,OAAhBsC,EAAIrS,EAAEgI,QAAkBqK,EAAErJ,aAAc,CAC3C,MAAMyJ,QAAUnD,EAAEyH,EAAEgB,WAAY,CAAEnQ,MAAO2K,IACzC,GAAIE,EAAEoI,iBACJ,OAAO,KACTtI,EAAIE,EAAEqG,KAAKlR,KACnB,CACM,OAAOkD,GAAG2H,GAAM,IAAIA,EAAEkP,MAAM,GAAIpP,KAAKvC,CAC3C,CACIA,EAAImQ,KACJ,IAAI/f,EAAI,CAAEygB,GAAI7Q,EAAGoM,QAAS1M,EAAGgb,QAAS3a,GACtC,GAAqB,OAAhBuC,EAAItS,EAAEgI,QAAkBsK,EAAEtJ,aAAc,CAC3C,MAAMuJ,QAAUjD,EAAEyH,EAAEgB,WAAY,CAAEnQ,MAAOxH,IACzC,GAAImS,EAAEsI,iBACJ,OAAO,KACTza,EAAImS,EAAEuG,KAAKlR,KACjB,CACI,OAAOkD,GAAGyH,GAAM,IAAIA,EAAGnS,KAAK4P,CAAC,GAC5B,CAAChQ,EAAGsP,IAAKE,EAAIkK,EAAAA,aAAEhB,MAAOhJ,IACvB,IAAIM,EACJ,MAAMD,EAAIJ,EAAE8B,QAAQ2U,MAAMzV,GAAMA,EAAEkQ,KAAOnR,IACzC,OAAQK,GAAsB,OAAhBC,EAAIhQ,EAAEgI,QAAkBgI,EAAE/G,wBAA0BqG,EAAEyH,EAAEiB,cAAe,CAAEpQ,MAAOmI,KAAM8K,iBAAmB,MAAQ/P,GAAG6F,GAAMA,EAAEgT,QAAQ/S,GAAMA,EAAEiQ,KAAOnR,MAAKA,EAAE,GACvK,CAACJ,IAGJ,MAAO,CACLqb,UAAWpb,EACXqb,aAAcpb,EACd4a,OAAQnqB,EACR4qB,cAPWnR,EAACG,aAAEnK,IACd5E,EAAE4E,EAAE,GACH,IAMF,EACAob,GAAK,KACN,IAAIxX,EAAGC,EAAGC,EAAGC,EAAGC,EAChB,MAAQjJ,SAAUzK,GAAM2K,KAAOyO,MAAOnZ,EAAGoZ,eAAgBvO,EAAGwO,eAAgB3J,GAAM4J,KAAQhJ,QAASjB,EAAGyB,iBAAkBxB,EAAG0B,eAAgBzB,EAAG0B,eAAgBzB,EAAGqB,aAAcpB,GAAMU,KACnLkE,qBAAsBvE,EACtB6F,0BAA2B5F,EAC3B+F,+BAAgCpF,EAChC8F,sBAAuB7F,EACvB8F,yBAA0BtW,GACxBuR,KAAQmI,iBAAkB3H,GAAMsH,KAClC2N,iBAAkBhV,EAClBiM,cAAehM,EACf6U,cAAe5U,EACfoM,sBAAuBnM,EACvB4U,cAAe1U,GACbkU,MAAQgE,UAAWjY,EAAGkY,aAAcjY,GAAM8X,MAAQxP,iBAAkBrI,GAAMsH,KAAQ4P,oBAAqBjX,EAAGgX,iBAAkB/W,GAAMyW,MAAQD,UAAWvW,GAAMoW,KAAMnW,EAAI0G,EAACG,aAACnB,MAAO/E,IAChL,IAAIC,EACJ,GAAqB,OAAhBA,EAAI5T,EAAEgI,QAAkB4L,EAAEpK,oBAAqB,CAClD,MAAMqK,QAAU1B,EAAE4E,EAAEwB,mBAAoB,CACtCwS,MAAOpX,IAET,GAAIE,EAAEgH,iBACJ,OAAO,KACTlH,EAAIE,EAAEiF,KAAKiS,KACjB,CACI,OAAOpX,CAAC,GACP,CAAkB,OAAhBL,EAAItT,EAAEgI,YAAiB,EAASsL,EAAE9J,oBAAqB2I,IAAKc,EAAIyG,EAAAA,aAAEhB,MAAO/E,EAAGC,KAC/E,IAAIG,EAAGG,EAAIC,EAAGtC,EACd,IAAK8B,EACH,OACF,IAAIE,EAAIvE,EAAEmC,QAAQkC,GAClB,IAAKE,EAEH,YADA9D,GAAE,GAGJ,GAAqB,OAAhBgE,EAAI/T,EAAEgI,QAAkB+L,EAAExK,mBAAoB,CACjD,MAAMuI,QAAWK,EAAE4E,EAAEuB,kBAAmB,CACtCyS,MAAOlX,IAET,GAAI/B,EAAG+I,iBACL,OACFhH,EAAI/B,EAAGgH,KAAKiS,KAClB,CACIhb,GAAE,GAA2B,OAArBmE,EAAKlU,EAAEsE,YAAsB4P,EAAGpP,WAAakL,GAAE,GAAKW,GAAE,GAC9D,MAAMmD,EAAI,CACRmG,SAAUrG,EACVoG,SAAUrG,EACVmM,SAAU1M,EACVyW,iBAAkB/W,EAClBkY,UAAWxb,EAAEiC,QACb2V,iBAAkBhV,EAClBiM,cAAehM,EACf6U,cAAe5U,EACfoM,sBAAuBnM,EACvB4U,cAAe1U,EACfwI,iBAAkBrI,EAClB+X,UAAWjY,EACXkY,aAAcjY,QAptBZ+F,OAAO1Y,EAAGC,EAAG6K,EAAG6E,EAAGL,EAAGC,EAAGC,KAC/B,IAAKxP,EACH,MAAM,IAAI0f,MAAM,uBAClB,IAAK,MAAMjQ,KAAKkQ,OAAOC,KAAK5f,GAC1B,OAAQyP,GACN,IAAK,gBACG+O,GAAGxe,EAAGC,EAAG6K,GACf,MACF,IAAK,gBACG+T,GAAG7e,EAAGC,GACZ,MACF,IAAK,mBACGke,GAAGne,EAAGC,GACZ,MACF,IAAK,kBACG6e,GAAG9e,EAAGC,GACZ,MACF,IAAK,qBACGqf,GAAGtf,EAAGC,EAAGqP,GACf,MACF,IAAK,oBACGkQ,GAAGxf,EAAGC,EAAGsP,GACf,MACF,IAAK,mBACGyP,GAAGhf,EAAGC,EAAG0P,EAAGH,GAC1B,EA6rBUyb,CACJpX,EACAC,GACsB,OAApBK,EAAInU,EAAEkG,gBAAqB,EAASiO,EAAEnO,kBAAmB,EAC3D0J,EACAM,EACAW,EACAqC,GACCjD,GAAE,GAAK,iBAAkB8D,GAAK7D,EAAwB,OAArB6B,EAAK7R,EAAEsE,gBAAqB,EAASuN,EAAGxO,UAAW,gBAAiBwQ,GAAKlD,GAAE,GAAKvQ,EAAmB,mBAAVyT,EAAEqX,MAAqBrY,EAAEc,GAAIZ,EAAEtD,EAAEgC,UAAYoC,EAAE0L,cAAe5L,IAAMC,GAAKrE,EAAEkC,QAAQ0Z,OAAO,GACtN,CACD7b,EACAuD,EACAE,EACqB,OAApBQ,EAAIvT,EAAEkG,gBAAqB,EAASqN,EAAEvN,eAClB,OAApBwN,EAAIxT,EAAEsE,gBAAqB,EAASkP,EAAEnQ,SACvCmM,EACA4C,EACAC,EACAC,EACAC,EACAE,EACAG,EACAF,EACAC,EACAlD,EACAF,IACE2D,EAAIwG,EAACG,aAAC,IAAMlK,EAAE8B,QAAQkI,OAAS,EAAIhK,EAAE8B,QAAQmI,QAAU,KAAO,MAAM,IAAKzG,EAAIuG,EAACG,aAAC,IAAMlK,EAAE8B,QAAQkI,OAAS,EAAIhK,EAAE8B,QAAQmI,IAAK,IAAK,KAAO,MAAM,IAAKxG,EAAIsG,EAAAA,aAAEhB,MAAO/E,IACjK,IAAIG,EACJ,MAAMF,EAAIV,IAAKW,EAAIV,IACnB,OAAwB,OAAhBW,EAAI9T,EAAEgI,SAAkB8L,EAAE/K,uBAAwBoJ,EAAE4E,EAAEe,YAAa,CACzEkC,SAAUpG,EACVqG,SAAUpG,EACVuX,SAAUzX,KACRkH,oBAAyB/P,GAAGiJ,GAAM,IAAIA,EAAGJ,WAAWV,EAAEU,EAAGC,IAAI,EAAG,GACnE,CAAsB,OAApBH,EAAIzT,EAAEsE,gBAAqB,EAASmP,EAAE3O,UAA4B,OAAhB4O,EAAI1T,EAAEgI,YAAiB,EAAS0L,EAAE3K,cAAekK,EAAGd,IAAKkB,EAAIqG,eAAG/F,IACrH7I,EAAE6I,EAAE,GACH,IACH,MAAO,CACL0X,YAAanY,EACboY,YAAanY,EACb2M,SAAU1M,EACVqD,sBAAuB7F,EACvB8F,yBAA0BtW,EAC1BgZ,MAAOnZ,EACPsrB,aAAclY,EACdmY,0BAA2BxY,EAC5B,EACAqK,GAAK,KACN,IAAI/J,EAAGC,EAAGC,EAAGC,EACb,MAAQhJ,SAAUzK,GAAM2K,KACtByc,iBAAkBnnB,EAClBoe,cAAevT,EACfoc,cAAevX,EACf+O,sBAAuBpP,EACvB6X,cAAe5X,GACboX,MAAQrN,eAAgB9J,GAAM+J,KAAQ8R,YAAa5b,EAAG6b,YAAa5b,EAAGoQ,SAAU/P,EAAGyb,0BAA2Bxb,GAAM8a,MACtH/U,+BAAgCpF,EAChCiF,0BAA2BhF,EAC3B0D,qBAAsBlU,EACtBsW,yBAA0BvE,EAC1BqE,eAAgBpE,EAChB4C,wBAAyB3C,EACzB2D,+BAAgC1D,GAC9BX,KAAQpB,QAASgC,EAAG1B,SAAU4B,EAAGvB,eAAgBwB,EAAGzB,eAAgB0B,EAAG7B,aAAc8B,GAAMxC,KAAOua,UAAW9X,EAAG+X,aAAc9X,GAAM2X,MAAQ3Q,iBAAkB/G,GAAM0G,KAAQ6P,UAAWtW,GAAMmW,MAAQU,iBAAkB5W,GAAMsW,MAAQtO,iBAAkB/H,GAAMgH,IAAM/G,EAAIuG,eAAEhB,MAAOhF,IAClR,IAAIG,EAAGC,EAAGC,EAAGG,EAAIC,EAAGtC,EACpB,MAAM8B,EAAIlE,IACV,GAAOkE,GAAMpB,EAAEd,QAAQkC,GAAK,CAC1B,GAAIrB,EAAEb,QAAS,CACb,GAAmD,OAA9CoC,EAAS,MAAL7T,OAAY,EAASA,EAAEyF,iBAA2BoO,EAAEhO,iBAC3D,OACF,GAAmD,OAA9CiO,EAAS,MAAL9T,OAAY,EAASA,EAAEyF,iBAA2BqO,EAAEnO,iBAK3D,YAJsB,OAArBoO,EAAI/T,EAAE8F,aAAuBiO,EAAE/N,qBAAuBsJ,EACrD,IAAImc,QAAmC,OAA1BvX,EAAKlU,EAAEyF,qBAA0B,EAASyO,EAAGtO,iBAAmB,IAC7E,cACQkF,EAAE,IAAI2gB,QAAkC,OAAzBtX,EAAInU,EAAEyF,qBAA0B,EAAS0O,EAAEvO,iBAAmB,IAAK,QAGtG,CAC6B,OAAtBiM,EAAK7R,EAAE8F,aAAuB+L,EAAG7L,qBAAuBsJ,EAAEoE,EAAG,cAAgB5I,EAAE4I,EAAG,OACzF,IACK,CAACnB,EAAG9C,EAAGzP,EAAG8K,EAAGwE,EAAGgD,IAAKc,EAAIsG,EAACG,aAACnB,MAAOhF,EAAGC,GAAI,KAC1C,IAAII,EAAGG,EACP,GAAwB,MAApBR,EAAIA,EAAE+K,QACR,OACF9K,SAAWR,EAAEO,GAAId,EAAEnB,SAAWuW,aAAapV,EAAEnB,SAAUgB,EAAEhB,UAAYwB,EAAE,IAAKb,EAAE,IAC9E,MAAMwB,EAAInE,IACV,IAAKmE,EACH,OACF,IAAIC,EAAItB,EAAEd,QAAQmC,GAClB,MAAME,QAAU9D,EAAE6D,GAClBC,IAA2B,OAApBC,EAAI/T,EAAEsE,YAAsByP,EAAEjP,WAAa8L,GAAE,GAAK8B,EAAEjB,QAAUY,EAAEZ,QAASuB,GAAE,GAAKoM,YAAW,KAChGhf,GAAE,EAAG,GACJ,KAAMuQ,GAAE,GAAKyO,YAAW1G,UACzB,IAAI5G,EACJ,MAAMqC,EAAI,CACR8F,SAAUvK,IACVsK,SAAUvK,IACVqQ,SAAU/P,EACV8Z,iBAAkB5W,EAClB+X,UAAWrY,EAAElB,QACb4M,cAAevT,EACf4T,sBAAuBpP,EACvB6X,cAAe5X,EACf2X,cAAevX,EACfyX,iBAAkBnnB,EAClBgb,iBAAkB/H,EAClByX,UAAW9X,EACX+X,aAAc9X,GACbjB,EAAKrC,EAAEiC,QAAQkI,aACZ0F,GAAGvL,EAAGK,GAAI3E,EAAEiC,QAAQkI,SAAW9H,IAA6BjB,EAAtB,iBAAkBiD,IAAQA,EAAE0L,eAA2C,OAArBzN,EAAK9R,EAAEsE,aAAsBwN,EAAGzO,WAAYmc,GAAG3L,EAAGM,EAAGxD,GAAIwB,EAAmB,mBAAV0B,EAAEqX,MAAqBlY,EAAEN,EAAEjB,SAAUrR,GAAE,GAAI,GACpL,OAArB8T,EAAKlU,EAAEsE,gBAAqB,EAAS4P,EAAGtP,UAAU,GACrD,CACDgO,EACqB,OAApBU,EAAItT,EAAEsE,gBAAqB,EAASgP,EAAExO,UAClB,OAApByO,EAAIvT,EAAEsE,gBAAqB,EAASiP,EAAE3O,SAClB,OAApB4O,EAAIxT,EAAEsE,gBAAqB,EAASkP,EAAEnQ,SACvCqP,EACAL,EACAW,EACAG,EACAzD,EACAD,EACAM,EACAjF,EACAwE,EACAC,EACAI,EACA1P,EACAiT,EACAL,EACAC,EACAP,IAEF,MAAO,CAAE6K,iBAAkB1D,EAACG,aAACnB,MAAOhF,EAAGC,GAAI,KACzC,IAAIE,EAAGC,EACPJ,EAAIA,IAAyB,OAAlBG,EAAIpB,EAAEhB,cAAmB,EAASoC,EAAE7I,SAA2B,OAAhB8I,EAAI9T,EAAEgI,QAAkB8L,EAAE5K,0BAA4B6J,EAAEgE,EAAEkB,iBAAkB,CAAEyT,UAAWhY,EAAGiY,WAAYhY,KAAMkH,mBAAqBpL,MAAQ2D,EAAEM,EAAGC,EAAE,GAC3M,CAACZ,EAAGtD,EAAG2D,EAAGX,EAAoB,OAAhBgB,EAAIzT,EAAEgI,YAAiB,EAASyL,EAAEvK,oBAAqB,EACvE0iB,GAAK,KACN,IAAI9gB,EACJ,MAAQL,SAAUzK,GAAM2K,IACxB,OAAOkhB,EAAEC,SAAC,KACR,IAAItc,EACJ,UAAW3M,OAAS,MAAQA,OAAOylB,UACjC,OAAO,EACT,GAAwB,OAAjB9Y,EAAIxP,EAAEkK,UAAmBsF,EAAEnF,yBAChC,OAAO,EACT,MAAMsF,EAAI2Y,UAAUyD,UAAWzc,GAAK,iEAAiE0c,KAAKrc,GAAIJ,EAAI1M,OAAOuR,YAAc,IACvI,OAAO9E,GAAKC,CAAC,GACZ,CAAmB,OAAjBzE,EAAI9K,EAAEkK,aAAkB,EAASY,EAAET,0BAA0B,EACjE4hB,GAAK,EAAG/oB,QAASlD,MAClB,IAAImT,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EAClC,MAAM5T,EAAI2rB,MAAQnhB,SAAUK,GAAMH,KAAOsE,OAAQU,GAAMR,KACrDwG,iBAAkBrG,EAClBwG,sBAAuBvG,EACvBgH,YAAa/G,EACb2G,eAAgB1G,EAChB2G,kBAAmB1G,EACnB8G,eAAgBzG,GACd4B,KAAQd,SAAUb,GAAMI,KAAMO,EAAGC,GAAKY,EAACgB,UAAC,IAAMpS,EAAG+R,GAAKX,EAACgB,UAAC,IAAO4K,iBAAkBhL,GAAMiL,MAAQwM,iBAAkBxX,GAAMkX,KAAMjX,EAAI,CACnI4Z,UAAWjsB,EAAI,cAAgB,gBAC5B0P,EAAEnE,oBACJ+G,EAAI,CACL4Z,QAAS7c,EAAI,GAAK,OAClB8c,UAAW9c,EAAI,GAAK,WAA8B,OAAlB6D,EAAIrI,EAAExJ,cAAmB,EAAS6R,EAAE5R,eACpE2qB,UAAWjsB,EAAI,cAAgB,gBAC5B0P,EAAEnE,sBAEFmE,EAAElE,2BACJgH,EAAI,CACLjQ,OAAQ,QAA2B,OAAlB4Q,EAAItI,EAAExJ,cAAmB,EAAS8R,EAAEvR,6BACrDwqB,WAAY,cACZH,UAAWjsB,EAAI,cAAgB,gBAC5B0P,EAAEnE,sBAEFmE,EAAEjE,4BACJgH,EAAI,CACL4I,MAAO,aACJ3L,EAAExD,qBACJwG,EAAI,CACL2I,MAAO,aACJ3L,EAAEvD,4BACJwG,EAAItD,EAAyB,OAApB+D,EAAIvI,EAAExG,gBAAqB,EAAS+O,EAAE5O,wBAA+C,OAApB6O,EAAIxI,EAAExG,gBAAqB,EAASgP,EAAE9O,uBAAwBqO,EAAI,KAC7IvD,GAAKsB,GAAE,EAAG,EACTkC,EAAI,KACLlC,GAAE,EAAG,EACJmC,EAAI,KACLZ,GAAE,EAAG,EACJa,EAAI,KACLb,GAAE,EAAG,EACJc,EAAIyF,MAAO5E,IACZ,IAAIC,EACJ,IAAK3T,GAAe,UAAV0T,EAAE0Q,IAAiB,CAC3B,GAAI1Q,EAAEwY,SAEJ,YADqB,OAApBvY,EAAIjJ,EAAExG,YAAsByP,EAAExP,cAAgBuP,EAAE6H,kBAGnD7H,EAAE6H,uBAAwBvJ,GAChC,GACKc,EAAKY,IACN9D,EAAEyB,UAAYY,EAAEyB,EAAEyY,OAAOvhB,OAAQ+E,EAAEC,EAAEyB,QAAQzG,MAAM2O,QAAQ,EAE7D,OAAuBlT,EAACC,KACtB,MACA,CACE,cAAoC,OAApB6M,EAAIzI,EAAErB,gBAAqB,EAAS8J,EAAEtJ,gBAAkB,kBACxEuiB,KAAM,UACN9Q,YAAc5H,IACZ,IAAIC,EACJD,EAAE2Y,mBAAoBhd,GAAiE,yBAAxC,OAAlBsE,EAAIjJ,EAAExJ,cAAmB,EAASyS,EAAEhS,mBAA+C2N,GAAE,EAAG,EAEvH9Q,MAAO,IAAK+Q,EAAEpE,yBACdsE,UAAW,iBACX9M,SAAU,CACRwM,GAAgC,OAAzBiE,EAAI1I,EAAErF,iBAA2B+N,EAAE9N,eAAkCnD,EAACwE,IAC3E,QACA,CACExI,IAAKyR,EACLlR,KAAM,WACN+Q,UAAW,0BACXjR,MAAO0Q,EAAImD,EAAI9B,EAAI4B,EAAID,EACvBoa,YAAa9Z,EACb+Z,SAAUzZ,EACV0Z,UAAW3Z,EACX4Z,QAASha,EACTia,OAAQha,EACRia,mBAAoBha,EACpBia,iBAAkBha,IAEFzQ,EAACwE,IACnB,WACA,CACExI,IAAKyR,EACLpR,MAAO0Q,EAAImD,EAAI9B,EAAI4B,EAAID,EACvB2a,KAAM,EACNpd,UAAW,0BACX6c,YAAa9Z,EACb+Z,SAAUzZ,EACV0Z,UAAW3Z,EACX4Z,QAASha,EACTia,OAAQha,EACRia,mBAAoBha,EACpBia,iBAAkBha,IAGNvM,OAAE+V,EAAAA,SAAI,CAAEzZ,SAAU,CAC3B,MAAL/C,OAAY,EAASA,EAAE8P,KACrB,CAACgE,EAAGC,IAAsBxR,EAACwE,IAACkJ,EAAEC,SAAE,CAAEnN,SAAU+Q,GAAKC,MAE7B,OAApBN,EAAI3I,EAAExG,gBAAqB,EAASmP,EAAE/O,qBAAkF,OAArC,OAApBgP,EAAI5I,EAAExG,gBAAqB,EAASoP,EAAE/O,kBAAiD,OAApBgP,EAAI7I,EAAExG,gBAAqB,EAASqP,EAAEhP,gBAAkB,GAAqB8B,EAACC,KAChN,MACA,CACEmJ,UAAW,8BACXjR,MAAO4Q,IAA2B,OAApBoE,EAAI9I,EAAExG,gBAAqB,EAASsP,EAAEjP,gBAAkBgO,EAAID,EAC1E3P,SAAU,CACRyM,EACA,IACqB,OAApBqE,EAAI/I,EAAExG,gBAAqB,EAASuP,EAAElP,uBAOpD,EACAuoB,GAAK,EAAGhqB,QAASlD,MAClB,IAAI2P,EACJ,MAAQlF,SAAUxK,GAAM0K,KAAOsE,OAAQnE,GAAMqE,IAC7C,OAAuB1I,EAACC,KACtB,MACA,CACE,cAAe,2BACf9H,MAAO,IAAKkM,EAAE0B,aACdqD,UAAW,4BACX9M,SAAU,CACQR,MAAE,MAAO,CAAEsN,UAAW,kBAAmB9M,SAAe,MAAL/C,OAAY,EAASA,EAAE8P,KACxF,CAACR,EAAGC,IAAsBhN,EAACwE,IAACkJ,EAAEC,SAAE,CAAEnN,SAAUuM,GAAKC,OAEnChN,EAAAA,IAAE,OAAQ,CAAEQ,SAA4B,OAAjB4M,EAAI1P,EAAEuG,aAAkB,EAASmJ,EAAEzN,SAG/E,EACAirB,GAAK,KACN,IAAIzd,EAAGK,EAAGC,EAAGW,EAAGC,EAAGxQ,EAAG+R,EACtB,MAAQ1H,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,KAAOkH,YAAavL,GAAM6G,KAAQ6C,iBAAkB7E,EAAGsL,iBAAkB3L,GAAM4K,IAAM3K,EAAI,CACpIK,gBAAiB,6BAAgD,OAAlBF,EAAI1P,EAAEsB,cAAmB,EAASoO,EAAElO,0BAC/D,OAAlBuO,EAAI/P,EAAEsB,cAAmB,EAASyO,EAAExO,mBACnCtB,EAAE0M,iBACJ6C,EAAI,CACLI,gBAAiB,OAA6B,OAArBI,EAAIhQ,EAAEmC,iBAAsB,EAAS6N,EAAE5N,QAChE/B,KAAM,OACN4G,MAAO,GACPC,OAAQ,MACLjH,EAAE2N,eAYP,OAAuBrL,MAAEia,EAAAA,SAAI,CAAEzZ,WAA+B,OAAlB4N,EAAI3Q,EAAEsB,UAAoBqP,EAAE7O,WAA6B2E,EAACC,KACpG,MACA,CACE,cAAoC,OAApBkK,EAAI5Q,EAAEyJ,gBAAqB,EAASmH,EAAEzO,aAAe,YACrEqqB,KAAM,SACN5tB,MAAO2Q,EACPM,UAAW,sBAAqBF,EAAI,kBAAoB,mBACxD/M,QAAS,IAAM0M,GAAE,GACjBvM,SAAU,CAnBP,MACL,IAAIsP,EACJ,MAAMD,EAA0B,OAArBC,EAAIrS,EAAEmC,iBAAsB,EAASkQ,EAAEjQ,KAClD,OAAQgQ,GAAiB,iBAALA,EAMhBA,GAAqB7P,EAACwE,IAAC,OAAQ,CAAE8I,UAAW,kBAAmB9M,SAA0BR,EAAAA,IAAE6P,EAAG,CAAExT,MAAO4Q,MANvDjN,EAACwE,IACnD,OACA,CACE8I,UAAW,kBACXjR,MAAO4Q,GAEuG,EAW9GC,KAC0B,OAAvBrP,EAAIJ,EAAEoD,eAAyBhD,EAAEiD,YAAsC,OAAvB8O,EAAInS,EAAEoD,mBAAwB,EAAS+O,EAAEzO,YAA8BnB,EAACwE,IAAC,OAAQ,CAAEnI,MAAO,IAAKqB,EAAEkL,wBAA0B0E,UAAW,YAAa9M,SAAU+H,QAGlN,EACHsiB,GAAK,KACN,IAAIjb,EAAGC,EAAGC,EAAGC,EACb,MAAMtS,EAAI4rB,MAAQnhB,SAAUxK,GAAM0K,KAAOsE,OAAQnE,GAAMqE,KAAO6B,YAAarB,GAAMS,KAAOoE,iBAAkBlF,EAAG2L,iBAAkB1L,GAAM2K,KAAO1K,EAAGC,GAAK+B,EAAAA,UAAE,IAAM9B,EAAGK,GAAKyB,EAACgB,UAAC,IAAMxC,EAAGW,GAAKa,EAACgB,SAAC,GACtLqK,EAAAA,WAAE,KACA,IAAIpK,EAAGC,EAAGC,EACV,MAAMJ,EAAuB,OAAlBE,EAAIxS,EAAE+B,cAAmB,EAASyQ,EAAExQ,KAC/C,GAAU,WAANsQ,EACF,GAAIvS,EAAG,CACL,IAAI4S,EACAA,EAAJtD,IAA6B,OAAlBoD,EAAI/C,EAAE8B,cAAmB,EAASiB,EAAE2a,cAAgB,MAAuE,iBAA5B,OAA1B1a,EAAI7H,EAAE6B,sBAA2B,EAASgG,EAAE1L,OAAqB6D,EAAE6B,gBAAgB1F,MAAQ,IAAU,EAAG0J,EAAEiC,GAAInD,GAAE,EACjM,MACCA,GAAGH,OACI,UAANiD,EAAgB9C,GAAE,GAAY,UAAN8C,EAAgB7C,EAAID,GAAE,IAAOM,GAAE,GAAKN,GAAE,IAAa,UAAN8C,GAAiB9C,GAAGH,EAAE,GAC/F,CAACA,IACJ,MAAMsB,EAAI,CACR0c,UAAW,eAAetd,OAC1B0K,QAAoC,OAA1BvI,EAAIrH,EAAE6B,sBAA2B,EAASwF,EAAElL,QAAU,IAAM,GACtEwT,OAAQ,GACR6B,gBAAoC,OAAlBlK,EAAInS,EAAEqB,cAAmB,EAAS8Q,EAAE5Q,eACtD8Z,MAAO,UACJxQ,EAAEI,cACJ9K,EAAI,CACLmb,YAAa,uCAAuC3K,EAAE0L,mBAExD,OAAuB/Z,MAAEia,EAAAA,SAAI,CAAEzZ,WAA+B,OAAlBsP,EAAIpS,EAAEqB,UAAoB+Q,EAAEvQ,WAA6B2E,EAACC,KACpG,MACA,CACE,cAAe,eACf9H,MAAOgS,EACPf,UAAW,qBAAoBL,EAAI,mBAAqB,oBACxD5M,QAAS,IAAM2M,GAAE,GACjBxM,SAAU,CACQR,EAAAA,IAAE,OAAQ,CAAEQ,SAA6B,OAAlBuP,EAAIrS,EAAE+B,cAAmB,EAASsQ,EAAEpQ,OAC3DK,EAACwE,IAAC,OAAQ,CAAE8I,UAAW,wBAAyBjR,MAAOwB,QAGzE,EACHmtB,GAAK,EACN1M,GAAI7gB,EACJoc,QAASnc,EACTyqB,QAAS5f,MAET,IAAI8F,EAAGxQ,EACP,MAAQqK,SAAUkF,GAAMhF,KAAOsE,OAAQK,GAAMH,KAAMI,GAAKiC,EAAAA,SAAE,CACxD1C,iBAAkB,IAAKQ,EAAER,kBACzBC,wBAAyB,IAAKO,EAAEP,4BAC5B6b,aAAcpb,GAAMib,MAAOhb,EAAGC,GAAK8B,EAAAA,UAAE,GAAKzB,EAAI,CAClDuL,MAA0B,OAAlB1K,EAAIjB,EAAErO,cAAmB,EAASsP,EAAErP,aAC5Cga,YAAgC,OAAlBnb,EAAIuP,EAAErO,cAAmB,EAASlB,EAAEmB,gBAC/CgO,EAAER,yBAEP,OAAO8N,EAAC2Q,WAAC,KACP,GAAI1iB,EAAG,CACL,MAAMqH,EAAIiN,YAAW,KACnB5P,EAAExP,EAAE,GACH8K,GACH,MAAO,IAAMkd,aAAa7V,EAChC,IACK,CAACnS,EAAGwP,EAAG1E,IAAiB,iBAAL7K,EAAgCsC,EAACwE,IACrD,MACA,CACEyU,aAAc,KACZ9L,GAAE,EAAG,EAEP+L,aAAc,KACZ/L,GAAE,EAAG,EAEP9Q,MAAO6Q,EAAIM,EAAIR,EAAET,iBACjB4M,YAAahD,MAAOvG,IAClB,IAAIC,EACa,OAAhBA,EAAIzC,EAAE/H,QAAkBwK,EAAErK,iBAAmBoK,EAAEwJ,uBAAwBnM,EAAExP,GAAG,EAE/E6P,UAAW,mBACX9M,SAAU9C,IAEMsC,EAACwE,IAACyV,EAAEtM,SAAE,CAAEnN,SAAU9C,GAAI,EACzCwtB,GAAK,KACN,IAAI9d,EAAGL,EAAGC,EAAGC,EAAGC,EAAGC,EAAGK,EAAGC,EAAGW,EAAGC,EAAGxQ,EAAG+R,EACrC,MAAQlD,OAAQjP,GAAMmP,KAAOib,OAAQnqB,GAAMsqB,KAAMzf,EAAI,CACnD2P,OAAQ,QAAoE,iBAA7B,OAAtB9K,EAAI3P,EAAEwM,kBAAuB,EAASmD,EAAEzI,QAAsB,GAA0B,OAAtBoI,EAAItP,EAAEwM,kBAAuB,EAAS8C,EAAEpI,YAAqC,OAAtBqI,EAAIvP,EAAEwM,kBAAuB,EAAS+C,EAAErI,SAAW,YAAoF,iBAA7B,OAAlCsI,EAAIxP,EAAEuL,8BAAmC,EAASiE,EAAEtI,QAAsB,GAAsC,OAAlCuI,EAAIzP,EAAEuL,8BAAmC,EAASkE,EAAEvI,YAAiD,OAAlCwI,EAAI1P,EAAEuL,8BAAmC,EAASmE,EAAExI,SAAW,iBAC1aD,MAAO,IACPymB,SAAU,QAAuE,iBAA5B,OAA1B3d,EAAI/P,EAAEoL,sBAA2B,EAAS2E,EAAE9I,OAAqB,GAA8B,OAA1B+I,EAAIhQ,EAAEoL,sBAA2B,EAAS4E,EAAE/I,WAAwC,OAA1B0J,EAAI3Q,EAAEoL,sBAA2B,EAASuF,EAAE1J,QAAU,eAChNsV,SAAU,QAAuE,iBAA5B,OAA1B3L,EAAI5Q,EAAEoL,sBAA2B,EAASwF,EAAE3J,OAAqB,GAA8B,OAA1B7G,EAAIJ,EAAEoL,sBAA2B,EAAShL,EAAE6G,WAAwC,OAA1BkL,EAAInS,EAAEoL,sBAA2B,EAAS+G,EAAElL,QAAU,qBAC7MjH,EAAE6O,2BAEP,OAAuBtM,MAAE,MAAO,CAAEsN,UAAW,6BAA8BjR,MAAOkM,EAAG/H,SAAU9C,EAAE6P,KAAKsC,GAAsB7P,EAACwE,IAC3HwmB,GACA,CACE1M,GAAIzO,EAAEyO,GACNzE,QAAShK,EAAEgK,QACXsO,QAAStY,EAAEsY,SAEbtY,EAAEyO,OACC,EACJ8M,GAAK,EACNzC,KAAMlrB,EACN4tB,SAAU3tB,EACV4tB,QAAS/iB,MAET,IAAI0E,EAAGC,EAAGC,EACV,MAAQjF,SAAUkF,GAAMhF,KAAOsE,OAAQK,GAAMH,IAAKI,EAAI,CACpD+M,gBAAoC,OAAlB9M,EAAIG,EAAErO,cAAmB,EAASkO,EAAEjO,aACtDgb,SAAgC,OAArB9M,EAAIE,EAAE7J,aAAuB2J,EAAEzM,WAAa,MAAQ,SAC5DsM,EAAE5C,4BAEP,OAAuBnK,EAACwE,IAACyV,EAAEtM,SAAE,CAAEnN,SAAU+H,EAAoBrE,OAAE+V,EAAAA,SAAI,CAAEzZ,SAAU,CACvE,UAAN9C,GAAiB6K,GAAqBvI,EAACwE,IACrC,MACA,CACEnI,MAAO2Q,EACPM,UAAW,oDACX,cAAe,gCACf9M,SAA0BR,EAAAA,IAAE,MAAO,CAAEurB,IAAKhjB,EAAGijB,IAAK,gBAAiBle,UAAW,8BAG5E,UAAN5P,GAAiB6K,GAAqBvI,EAACwE,IACrC,MACA,CACEnI,MAAO2Q,EACPM,UAAW,oDACX,cAAe,gCACf9M,SAA0B0D,EAAAA,KAAE,QAAS,CAAEunB,UAAU,EAAIne,UAAW,0BAA2B9M,SAAU,CACnFR,EAACwE,IAAC,SAAU,CAAE+mB,IAAKhjB,EAAGhM,KAAMkB,EAAElB,OAC9C,oDAIA,UAANmB,GAAiB6K,GAAqBrE,EAACC,KACrC,QACA,CACE,cAAe,gCACf9H,MAAO,CACL2d,SAAgC,OAArB7M,EAAIC,EAAE7J,aAAuB4J,EAAE1M,WAAa,MAAQ,OAEjEgrB,UAAU,EACVne,UAAW,0CACX9M,SAAU,CACQR,EAACwE,IAAC,SAAU,CAAE+mB,IAAKhjB,EAAGhM,KAAMkB,EAAElB,OAC9C,qDAIeyD,EAACwE,IAACyV,WAAI,CAAA,IAAM,EAClCyR,GAAKvV,MAAO1Y,IACb,IAAKA,EACH,MAAO,CAAE4tB,SAAU,KAAMC,QAAS,MACpC,MAAM5tB,EAAID,EAAElB,KAAK4kB,MAAM,KAAK,GAC5B,IAAK,CAAC,QAAS,QAAS,SAAS7D,SAAS5f,GACxC,MAAO,CAAE2tB,SAAU,KAAMC,QAAS,MACpC,IAKE,MAAO,CAAED,SAAU3tB,EAAG4tB,cAJN,IAAI5U,SAAQ,CAACtJ,EAAGL,KAC9B,MAAMC,EAAI,IAAI2e,WACd3e,EAAE4e,OAAS,IAAMxe,EAAEJ,EAAE6e,QAAS7e,EAAE8e,QAAU,IAAM/e,EAAE,IAAIoQ,MAAM,wBAAyBnQ,EAAE+e,cAActuB,EAAE,IAG1G,CAAC,MAAO8K,GACP,OAAO4V,QAAQC,MAAM7V,GAAI,CAAE8iB,SAAU,KAAMC,QAAS,KACxD,GACGU,GAAK,KACN,IAAIxb,EAAGC,EAAGC,EAAGC,EAAGC,EAAGC,EACnB,MAAQ3I,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,KAC3CkP,cAAevT,EACf4T,sBAAuB/O,EACvBwX,cAAe7X,EACf4X,cAAe3X,EACf6X,iBAAkB5X,GAChBmX,MAAQ0E,YAAa5b,EAAG6b,YAAa5b,EAAGoQ,SAAU/P,EAAG0G,sBAAuBzG,GAAM8a,MAAQva,QAASI,EAAGE,SAAUD,GAAMR,IAAKhQ,EAAIuQ,EAAEc,SAAWkZ,UAAWxY,EAAGyY,aAAcxY,GAAMqY,MAAQ3Q,iBAAkBzH,GAAMoH,KAAQwB,iBAAkB3I,GAAM4H,KAAQ2P,iBAAkBtX,GAAMgX,MAAQnM,iBAAkB3K,GAAM4K,KAAM3K,EAAI,CAC1TlQ,OAAQ,QAA2B,OAAlBuQ,EAAI/S,EAAEsB,cAAmB,EAASyR,EAAElR,gCAClD5B,EAAEqN,6BAEFrN,EAAEsN,mCACJoF,EAAI,CACL/C,gBAAiB,OAAiC,OAAzBoD,EAAIhT,EAAEqH,qBAA0B,EAAS2L,EAAE5Q,QACpE/B,KAAM,aACHJ,EAAEiO,yBACJ0E,EAAI,CACLhD,gBAAiB,OAAiC,OAAzBqD,EAAIjT,EAAEqH,qBAA0B,EAAS4L,EAAE7Q,QACpE/B,KAAM,aACHJ,EAAEiO,2BAEFjO,EAAEkO,iCAgEP,OAAuB1H,EAACC,KACtB,QACA,CACE,cAAoC,OAApBwM,EAAIlT,EAAEyJ,gBAAqB,EAASyJ,EAAErJ,uBAAyB,cAC/E2iB,KAAM,SACN3c,UAAWG,EAAI,4BAA8B,6BAC7CpR,MAAOoR,EAAI,IAAK/P,EAAEqN,2BAA8BoF,EAChD3P,SAAU,CACQR,EAACwE,IACf,QACA,CACE8I,UAAW,mBACX2c,KAAM,OACN1tB,KAAM,OACN6tB,SA7EHjU,MAAOrF,IACZ,IAAIM,EAAGC,EAAGC,EAAGC,EACb,MAAMR,EAAID,EAAEkZ,OAAOiC,MACnB,IAAKlb,EACH,OACF,MAAMC,EAAIwK,MAAMC,KAAK1K,GACrB,GAAID,EAAEkZ,OAAOvhB,MAAQ,GAAqB,OAAhB2I,EAAI3T,EAAEgI,QAAkB2L,EAAExK,0BAA4BkJ,EAAE0E,EAAEmB,iBAAkB,CAAEsW,MAAOjb,KAAMsH,iBACnH,OACF,MAAMrH,EAAI/D,IACV,IAAK+D,EACH,OACF,MAAMC,EAAIrT,EAAEoT,GACZ,IAAKC,EACH,OACF,MAAMC,EAAID,EAAEyX,KACZ,GAAS,MAALxX,EAAW,CACb,MAAMK,EAAI,GACV,IAAK,IAAIG,EAAK,EAAGA,EAAKX,EAAEoG,OAAQzF,IAAM,CACpC,GAAIH,EAAE6U,KAAKrV,EAAEW,GAAIuP,MAAmC,OAAzB7P,EAAI5T,EAAEqH,kBAA2BuM,EAAEnM,iBAC5D,SACF,MAAM0M,QAAU8Z,GAAG1a,EAAEW,KACpBC,EAAEyZ,WAAazZ,EAAE0Z,eAAiB/iB,EAAkBvI,EAACwE,IACpD4mB,GACA,CACEzC,KAAM3X,EAAEW,GACR0Z,SAAUzZ,EAAEyZ,SACZC,QAAS1Z,EAAE0Z,UAEZ,OACX,OACYpb,EAAE,MAAQsB,EAAEkK,KAAK,MAAiC,OAAzBpK,EAAI7T,EAAEqH,qBAA0B,EAASwM,EAAErM,oBAAqBkM,EAAE,CAC/FsX,UAA8B,OAAlBlX,EAAIlD,EAAEa,cAAmB,EAASqC,EAAE9I,MAChDiP,SAAUvK,IACVsK,SAAUvK,IACVqQ,SAAU/P,EACV8Z,iBAAkBtX,EAClB8L,cAAevT,EACf4T,sBAAuB/O,EACvBwX,cAAe7X,EACf4X,cAAe3X,EACf6X,iBAAkB5X,EAClByL,iBAAkB3I,EAClBqY,UAAWxY,EACXyY,aAAcxY,EACdoc,MAAOjb,GAEf,GAgCYjM,SAAoC,OAAzB6L,EAAInT,EAAEqH,qBAA0B,EAAS8L,EAAE7L,SACtDC,OAAkC,OAAzB6L,EAAIpT,EAAEqH,qBAA0B,EAAS+L,EAAE7L,OACpDlE,UAAW2M,IAjCd,MACL,IAAIsD,EAAGC,EACP,MAAMF,EAAIrD,EAA8B,OAAzBsD,EAAItT,EAAEqH,qBAA0B,EAASiM,EAAElR,KAAiC,OAAzBmR,EAAIvT,EAAEqH,qBAA0B,EAASkM,EAAE/P,aAC7G,OAAQ6P,GAAiB,iBAALA,EAMhBA,GAAqB9Q,MAAE,OAAQ,CAAEsN,UAAWG,EAAI,0BAA4B,2BAA4BjN,SAA0BR,EAACwE,IACrIsM,EACA,CACEzU,MAAOoR,EAAI2C,EAAIC,MATiCrQ,EAACwE,IACnD,OACA,CACE8I,UAAWG,EAAI,0BAA4B,2BAC3CpR,MAAOoR,EAAI2C,EAAIC,GAOf,EAsBAE,KAGL,EACA2b,GAAK,KACN,IAAIpc,EAAGC,EAAGC,EAAGE,EAAGC,EAAGC,EACnB,MAAQlI,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,KAAO0G,0BAA2B/K,GAAM6G,KAAQd,SAAUlB,GAAMS,KAAOuF,iBAAkBrG,EAAGua,iBAAkBta,GAAMga,KAAM/Z,EAAIgB,EAAAA,OAAG,MAAOf,EAAIe,EAAAA,OAAG,OAAQd,EAAGK,GAAKyB,YAAE,GAAKxB,EAAI,CACrNxN,OAAQ,QAA2B,OAAlB6P,EAAIrS,EAAEsB,cAAmB,EAAS+Q,EAAExQ,gCAClD5B,EAAEmN,oBAEFnN,EAAEoN,0BACJsD,EAAI,CACLf,gBAAiB,OAAwB,OAAhB0C,EAAItS,EAAE0H,YAAiB,EAAS4K,EAAElQ,QAC3D/B,KAAM,aACHJ,EAAE+N,gBACJ4C,EAAI,CACLhB,gBAAiB,OAAwB,OAAhB2C,EAAIvS,EAAE0H,YAAiB,EAAS6K,EAAEnQ,QAC3D/B,KAAM,aACHJ,EAAE+N,kBAEF/N,EAAEgO,wBAEP4O,EAAAA,WAAE,KACA,MAAMjK,EAAKG,IACT,MAAMC,EAAID,EAAE2b,eACZlf,EAAEiC,UAAYuB,EAAE6M,SAASrQ,EAAEiC,UAAYhC,EAAEgC,UAAYuB,EAAE6M,SAASpQ,EAAEgC,UAAY1B,GAAE,EAAG,EAMlF+C,EAAI,KALA,MACL,GAAItD,EAAEiC,SAAWhC,EAAEgC,QAAS,CAC1B,MAAMsB,EAAItD,EAAEgC,QAAQ0I,wBAAyBnH,EAAIxD,EAAEiC,QAAQkd,aAAc1b,EAAIF,EAAEwH,IAAMvH,EAAI,EACzFxD,EAAEiC,QAAQ7S,MAAM4b,KAAO,GAAGzH,EAAEyH,SAAUhL,EAAEiC,QAAQ7S,MAAM2b,IAAM,GAAGtH,KACvE,GAEMJ,EAAG,EAEL,OAAOpU,SAASmwB,iBAAiB,YAAahc,GAAI/P,OAAO+rB,iBAAiB,SAAU9b,GAAI,KACtFrU,SAASowB,oBAAoB,YAAajc,GAAI/P,OAAOgsB,oBAAoB,SAAU/b,EAAE,CACtF,GACA,IAuBH,OAAuBrM,EAACC,KAAC8V,WAAI,CAAEzZ,SAAU,CACvBR,EAACwE,IACf,MACA,CACE,cAAoC,OAApB0L,EAAIzS,EAAEyJ,gBAAqB,EAASgJ,EAAE7I,cAAgB,eACtE4iB,KAAM,SACNjuB,IAAKkR,EACLI,UAAW,IAAGP,EAAI,4BAA8B,4BAChD1Q,MAAO0Q,EAAIU,EAAI,IAAK/P,EAAEmN,kBACtBsO,YAtBE9I,IACNA,EAAE+I,iBAAkB7Q,EAAE2G,QAAU1B,GAAE,GAAMA,GAAG8C,IAAOA,GAAE,EAsBhD9P,SArBC,MACL,IAAI8P,EAAGC,EACP,MAAMF,EAAItD,EAAqB,OAAhBuD,EAAI7S,EAAE0H,YAAiB,EAASmL,EAAErP,aAAgC,OAAhBsP,EAAI9S,EAAE0H,YAAiB,EAASoL,EAAE1Q,KACnG,OAAQwQ,GAAiB,iBAALA,EAMhBA,GAAqBrQ,EAACwE,IAAC,OAAQ,CAAE8I,UAAW,IAAGP,EAAI,0BAA4B,0BAA4BvM,SAA0BR,EAAAA,IAAEqQ,EAAG,CAAEhU,MAAO0Q,EAAIsB,EAAID,MAN3GpO,EAACwE,IACnD,OACA,CACE8I,UAAW,IAAGP,EAAI,0BAA4B,0BAC9C1Q,MAAO0Q,EAAIsB,EAAID,GAEmJ,EAYxJyB,KAGd1C,GAAqBnN,EAACwE,IAAC,MAAO,CAAE8I,UAAW,yBAA0BtR,IAAKiR,EAAGzM,SAA2D,OAAhD4P,EAAqB,OAAhBD,EAAI1S,EAAE0H,YAAiB,EAASgL,EAAE/K,WAAgB,EAASgL,EAAE7C,KAAI,CAAC8C,EAAGC,IAAsBtQ,EAACwE,IACvL,OACA,CACE8I,UAAW,YACX6L,YAAc5I,GAvCV,EAACF,EAAGC,KACZD,EAAE+I,iBAAkBhM,EAAE8B,UAAYlC,EAAEI,EAAE8B,QAAQzG,MAAQ6H,GAAIuM,YAAW,KACnE,MAAMtM,EAAInD,EAAE8B,QACZ,GAAIqB,EAAG,CACLA,EAAE4W,QACF,MAAM3W,EAAID,EAAE9H,MAAM2O,OAClB7G,EAAEgc,kBAAkB/b,EAAGA,EAC/B,IACO,KAAMhD,GAAE,EAAG,EA+BU3P,CAAE0S,EAAGF,GACzB7P,SAAU6P,GAEZC,SAEA,EACHkc,GAAK,KACN,IAAItf,EAAGC,EAAGK,EACV,MAAQtF,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,KAAOwF,eAAgB7J,EAAG4b,YAAa/W,GAAM4W,KAAMjX,EAAI,CAClGM,gBAAiB,OAAwB,OAAhBH,EAAIzP,EAAE2D,YAAiB,EAAS8L,EAAErN,QAC3D/B,KAAM,aACHJ,EAAE4N,gBACJ0B,EAAI,CACLK,gBAAiB,OAAwB,OAAhBF,EAAI1P,EAAE2D,YAAiB,EAAS+L,EAAElM,gBAC3DnD,KAAM,aACHJ,EAAE4N,kBAEF5N,EAAE6N,wBAmBP,OAAuBvL,EAACwE,IACtB,MACA,CACE,cAAoC,OAApBgJ,EAAI/P,EAAEyJ,gBAAqB,EAASsG,EAAErG,cAAgB,eACtE8iB,KAAM,SACN9Q,YAAahD,MAAO1I,IAClBA,EAAE2L,uBAAwBhM,GAAG,EAE/B/Q,MAAOkM,EAAI,IAAK7K,EAAEgN,kBAAqB,IAAKhN,EAAEgN,oBAAqBhN,EAAEiN,0BACrEnK,SA3BG,MACL,IAAI4N,EAAGC,EACP,MAAMZ,EAAIlF,EAAqB,OAAhB6F,EAAI3Q,EAAE2D,YAAiB,EAASgN,EAAEvO,KAAwB,OAAhBwO,EAAI5Q,EAAE2D,YAAiB,EAASiN,EAAEpN,aAC3F,OAAQwM,GAAiB,iBAALA,EAOhBA,GAAqBzN,MAAE,OAAQ,CAAEsN,UAAW,iBAAkB,cAAe,iBAAkB9M,SAA0BR,EAACwE,IAC5HiJ,EACA,CACEpR,MAAOkM,EAAIwE,EAAIC,EACf,cAAe,yBAXiChN,EAACwE,IACnD,OACA,CACE8I,UAAW,iBACX,cAAe,iBACfjR,MAAOkM,EAAIwE,EAAIC,GAQf,EAWQC,IAEb,EACAwf,GAAK,KACN,IAAIzf,EAAGC,EACP,MAAQ/E,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,KAAO8L,iBAAkBnQ,GAAMoP,IAAMvK,EAAI,CACpFC,gBAAiB,OAAyB,OAAjBL,EAAIvP,EAAEqC,aAAkB,EAASkN,EAAEpM,iBAC5D9C,KAAM,UACN4uB,OAAQ,aACLhvB,EAAE8N,oBAaP,OAAuBxL,EAACwE,IACtB,MACA,CACE,cAAoC,OAApByI,EAAIxP,EAAEyJ,gBAAqB,EAAS+F,EAAE7F,kBAAoB,aAC1E6iB,KAAM,SACN9Q,YAAcjM,IACZA,EAAEgd,kBAAmB3hB,GAAE,EAAG,EAE5BlM,MAAO,IAAKqB,EAAEkN,sBACdpK,SArBG,MACL,IAAI2M,EACJ,MAAMD,EAAsB,OAAjBC,EAAI1P,EAAEqC,aAAkB,EAASqN,EAAEvM,cAC9C,OAAQsM,GAAiB,iBAALA,EAOhBA,GAAqBlN,EAAAA,IAAE,OAAQ,CAAEsN,UAAW,sBAAuB,cAAe,sBAAuB9M,SAA0BR,EAACwE,IAAC0I,EAAG,CAAE7Q,MAAO+Q,MAPjGpN,EAACwE,IACnD,OACA,CACE8I,UAAW,sBACX,cAAe,sBACfjR,MAAO+Q,GAEiJ,EAWhJL,IAEb,EAQA4f,GAAK,KACN,IAAIzf,EAAGC,EAAGK,EACV,MAAQtF,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,KAAO8F,uBAAwBnK,EAAG6a,oBAAqBhW,GAT9F,MACN,MAAQsF,uBAAwBjV,EAAG2lB,oBAAqB1lB,EAAG2lB,sBAAuB9a,GAAM6Z,KACxF,MAAO,CACL1P,uBAAwBjV,EACxB2lB,oBAAqB1lB,EACrB2lB,sBAAuB9a,EACxB,EAGyGqkB,GAAM7f,EAAI,CAClHM,gBAAiB,OAA+B,OAAvBH,EAAIzP,EAAEoD,mBAAwB,EAASqM,EAAErN,QAClE/B,KAAM,aACHJ,EAAEmO,uBACJmB,EAAI,CACLK,gBAAiB,OAA+B,OAAvBF,EAAI1P,EAAEoD,mBAAwB,EAASsM,EAAElM,gBAClEnD,KAAM,aACHJ,EAAEmO,yBAEFnO,EAAEoO,+BAmBP,OAAuB9L,EAACwE,IACtB,MACA,CACE,cAAoC,OAApBgJ,EAAI/P,EAAEyJ,gBAAqB,EAASsG,EAAEjG,qBAAuB,uBAC7E0iB,KAAM,SACN9Q,YAAahD,MAAO1I,IAClBA,EAAE2L,uBAAwBhM,GAAG,EAE/B/Q,MAAOkM,EAAI,IAAK7K,EAAEuN,yBAA4B,IAAKvN,EAAEuN,2BAA4BvN,EAAEwN,iCACnF1K,SA3BG,MACL,IAAI4N,EAAGC,EACP,MAAMZ,EAAIlF,EAA4B,OAAvB6F,EAAI3Q,EAAEoD,mBAAwB,EAASuN,EAAEvO,KAA+B,OAAvBwO,EAAI5Q,EAAEoD,mBAAwB,EAASwN,EAAEpN,aACzG,OAAQwM,GAAiB,iBAALA,EAOhBA,GAAqBzN,MAAE,OAAQ,CAAEsN,UAAW,wBAAyB,cAAe,wBAAyB9M,SAA0BR,EAACwE,IAC1IiJ,EACA,CACEpR,MAAOkM,EAAIwE,EAAIC,EACf,cAAe,gCAXiChN,EAACwE,IACnD,OACA,CACE8I,UAAW,wBACX,cAAe,wBACfjR,MAAOkM,EAAIwE,EAAIC,GAQf,EAWQC,IAEb,EACA4f,GAAK,KACN,IAAI7c,EAAGE,EAAGC,EACV,MAAQjI,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,KAAOkP,cAAevT,GAAM6b,MAAQ9V,SAAUlB,GAAMS,KAAO0E,eAAgBxF,EAAG+Z,YAAa9Z,GAAM4Z,MAAQ3S,eAAgBhH,EAAGqa,iBAAkBpa,EAAGkG,iBAAkBjG,GAAM6Z,MAAQnM,iBAAkBrN,GAAMsN,KAAMrN,EAAIQ,EAAAA,OAAG,KAAMG,EAAGC,GAAKY,EAACgB,UAAC,GACnRqK,EAAAA,WAAE,KACA,IAAIlK,EACa,OAAhBA,EAAI3S,EAAEmG,QAAkBwM,EAAEpM,aAAe8L,IAAKrC,EAAEyB,QAAU,IAAM1B,GAAG,GACnE,CAACY,IAAKkM,EAAAA,WAAE,KACTvN,EAzgCI,EAACtP,EAAGC,EAAG6K,EAAG6E,EAAGL,EAAGC,EAAGC,KACzB,IAAIC,EACa,OAAhBA,EAAIzP,EAAEmG,QAAkBsJ,EAAElJ,YAAc8hB,GAAGvd,EAAGyE,GAAKuY,GAClD9nB,EACAC,EACA6K,EACA6E,EACAL,EACAE,EACD,EAggCK6f,CACFrvB,EACAuP,EACA6C,EACA3C,EACAD,EACAQ,EACAL,GACEsZ,IAAI,GACP,CAAC3Z,IACJ,MAAMlP,EAAI,CACRwP,gBAAiB,OAAwB,OAAhB2C,EAAIvS,EAAEmG,YAAiB,EAASoM,EAAEnQ,QAC3D/B,KAAM,aACHJ,EAAEqO,gBACJ6D,EAAI,CACLvC,gBAAiB,OAAwB,OAAhB6C,EAAIzS,EAAEmG,YAAiB,EAASsM,EAAEjP,gBAC3DnD,KAAM,aACHJ,EAAEqO,kBAEFrO,EAAEsO,wBACJ6D,EAAI,KACLxB,GAAG+B,IAAOA,GAAE,EACXN,EAAIqG,UACL,MAAM/F,EAAI,IAAI2c,KAAKtf,EAAEyB,QAAS,CAAE3S,KAAM,cAAgB8T,EAAI,IAAI2c,KAAK,CAAC5c,GAAI,kBAAmB,CAAE7T,KAAM,cAAgB+T,QAAUob,GAAGrb,IAC/HC,EAAE+a,WAAa/a,EAAEgb,eAAiB/iB,EAAkBvI,EAACwE,IACpD4mB,GACA,CACEzC,KAAMtY,EACNgb,SAAU/a,EAAE+a,SACZC,QAAShb,EAAEgb,UAEZ,OAAO,EAaZ,OAAuBtrB,EAACwE,IACtB,MACA,CACE,cAAoC,OAApB2L,EAAI1S,EAAEyJ,gBAAqB,EAASiJ,EAAE1I,cAAgB,eACtEwiB,KAAM,SACN9Q,YAAahD,MAAO/F,IAClBA,EAAEgJ,kBAAmBjM,SAAWH,GAAG,EAErC3Q,MAAO0Q,IAAMI,EAAI,IAAKzP,EAAEyN,kBAAqB,IAAKzN,EAAEyN,oBAAqBzN,EAAE0N,0BAC3EkC,UAAWP,IAAMI,EAAI,2BAA6B,4BAClD3M,SAtBG,MACL,IAAI6P,EAAGC,EACP,MAAMF,EAAIrD,EAAqB,OAAhBsD,EAAI5S,EAAEmG,YAAiB,EAASyM,EAAExQ,KAAwB,OAAhByQ,EAAI7S,EAAEmG,YAAiB,EAAS0M,EAAErP,aAC3F,OAAQmP,GAAiB,iBAALA,EAOhBA,GAAqBpQ,EAAAA,IAAE,OAAQ,CAAEsN,UAAW,mBAAkBP,IAAMI,EAAI,KAAO,IAAM3M,SAA0BR,EAACwE,IAAC4L,EAAG,CAAE/T,MAAO0Q,IAAMI,EAAItP,EAAI+R,MAP3F5P,EAACwE,IACnD,OACA,CACE8I,UAAW,kBAAiBP,IAAMI,EAAI,MAAQ,IAC9C,cAAe,iBACf9Q,MAAO0Q,IAAMI,EAAItP,EAAI+R,GAE6H,EAY1IG,IAEb,EACAkd,GAAK,KACN,IAAIpd,EAAGC,EAAGC,EAAGC,EAAGE,EAAGC,EAAGC,EAAGC,EACzB,MAAQnI,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,KAAOwG,iBAAkB7K,GAAM6G,KAAOhC,EAAGL,GAAKkC,EAAAA,UAAE,IAAO4L,iBAAkB7N,GAAM8N,KAAM7N,EAAI,CACpI8M,gBAAoC,OAAlBlK,EAAIpS,EAAEsB,cAAmB,EAAS8Q,EAAE7Q,gBACnDtB,EAAE6M,iBACJ2C,EAAI,CACLjN,OAAQ,QAA2B,OAAlB6P,EAAIrS,EAAEsB,cAAmB,EAAS+Q,EAAExQ,6BACrDya,gBAAoC,OAAlBhK,EAAItS,EAAEsB,cAAmB,EAASgR,EAAE/Q,gBACnDtB,EAAE6M,mBAEF7M,EAAE+M,yBACJ0C,EAAI,CACL4M,gBAAoC,OAAlB/J,EAAIvS,EAAEsB,cAAmB,EAASiR,EAAE/Q,kBACnDvB,EAAE6M,mBAEF7M,EAAE8M,wBACJgD,EAAI,CACLH,gBAAiB,OAA4B,OAApB6C,EAAIzS,EAAEsE,gBAAqB,EAASmO,EAAE5N,kBAC/DxE,KAAM,UACHJ,EAAEuO,eACJwB,EAAI,CACLJ,gBAAiB,OAA4B,OAApB8C,EAAI1S,EAAEsE,gBAAqB,EAASoO,EAAE7N,kBAC/DxE,KAAM,UACHJ,EAAEuO,iBAEFvO,EAAEwO,uBACJkC,EAAI,CACLf,gBAAiB,OAA4B,OAApB+C,EAAI3S,EAAEsE,gBAAqB,EAASqO,EAAE9N,kBAC/DxE,KAAM,UACHJ,EAAEuO,iBAEFvO,EAAEyO,sBAsBP,OAAuBnM,EAACwE,IACtB,MACA,CACE,cAAoC,OAApB6L,EAAI5S,EAAEyJ,gBAAqB,EAASmJ,EAAE7I,aAAe,eACrEyiB,KAAM,SACNhR,aA1BG,KACLlM,GAAE,EAAG,EA0BHmM,aAzBG,KACLnM,GAAE,EAAG,EAyBHoM,YAAahD,MAAO7F,IACb,MAALA,GAAaA,EAAE8I,kBAAmB7Q,SAAWyE,GAAG,EAElD3Q,MAAOkM,EAAI2E,EAAIE,EAAID,EAAIF,EACvBK,UAAW,kBACX9M,SA7BG,MACL,IAAI+P,EACJ,MAAMD,EAAyB,OAApBC,EAAI9S,EAAEsE,gBAAqB,EAASwO,EAAEjO,eACjD,OAAQgO,GAAiB,iBAALA,EAOhBA,GAAqBtQ,MAAE,OAAQ,CAAEsN,UAAW,gBAAiB,cAAe,gBAAiB9M,SAA0BR,EAACwE,IAC1H8L,EACA,CACEjU,MAAOkM,EAAIkF,EAAIL,EAAIgB,EAAIZ,MAVyBxN,EAACwE,IACnD,OACA,CACE8I,UAAW,gBACX,cAAe,gBACfjR,MAAOkM,EAAIkF,EAAIL,EAAIgB,EAAIZ,GAOvB,EAcQoC,IAEb,EAC0Csd,GAAK,CAACzvB,EAAGC,KACpD,IAAIyP,EAAGK,EAAGC,EAAGW,EAAGC,EAAGxQ,EAAG+R,EAAGC,EAAGC,EAC5B,MAAMvH,EAAI,CACR,CAACzL,EAAEC,cAAgC,OAAhBoQ,EAAI1P,EAAE2D,YAAiB,EAAS+L,EAAErM,SACrD,CAAChE,EAAEG,mBAAuC,OAAlBuQ,EAAI/P,EAAEsB,cAAmB,EAASyO,EAAEjO,SAC5D,CAACzC,EAAEO,qBAAuC,OAAhBoQ,EAAIhQ,EAAE0H,YAAiB,EAASsI,EAAE3M,SAC5D,CAAChE,EAAEM,wBAAmD,OAAzBgR,EAAI3Q,EAAEqH,qBAA0B,EAASsJ,EAAEtN,SACxE,CAAChE,EAAEE,qBAA8C,OAAvBqR,EAAI5Q,EAAEoD,mBAAwB,EAASwN,EAAEvN,SACnE,CAAChE,EAAEI,sBAAsB,EACzB,CAACJ,EAAEK,sBAAwC,OAAhBU,EAAIJ,EAAEmG,YAAiB,EAAS/F,EAAEiD,UAC5DsM,EAAI,GAAIL,EAAKgD,GAAMA,EAAIA,EAAExC,KAAKyC,IAC/B,GAAgB,iBAALA,EAAe,CACxB,GAZE,CAACvS,GAAM2f,OAAO+P,OAAOrwB,GAAGwgB,SAAS7f,GAY/B2vB,CAAGpd,KAAOzH,EAAEyH,GAAI,CAClB,GAAI5C,EAAE4C,GACJ,OAAO5C,EAAE4C,GACX,MAAME,EAAIxS,EAAEsS,GACZ,GAAgB,mBAALE,EAAiB,CAC1B,MAAMC,EAAID,IACV,OAAO9C,EAAE4C,GAAKG,EAAGA,CAC3B,CACQ,OAAO,IACf,CACM,OAAO,IACb,CACI,OAAOH,CAAC,IACPoR,QAAQpR,GAAY,OAANA,IAAc,GAC/B,MAAO,CAAElQ,OAD8BiN,EAAoB,OAAjB6C,EAAInS,EAAEqC,aAAkB,EAAS8P,EAAEjP,SACzDoB,UADuEgL,EAAuB,OAApB8C,EAAIpS,EAAEsE,gBAAqB,EAAS8N,EAAElP,SAClGsD,OADgH8I,EAAoB,OAAjB+C,EAAIrS,EAAEwG,aAAkB,EAAS6L,EAAEnP,SAC3I,EAC8N0sB,GAAK,KAChR,MAAQnlB,SAAUzK,GAAM2K,IAAK1K,EAAI4rB,EAAAA,SAAG,KAAO,CACzC,CAACxsB,EAAEG,mBAAoB,IAF+E+C,EAACwE,IAACioB,GAAI,IAG5G,CAAC3vB,EAAEC,cAAe,IAHQiD,MAAEwsB,GAAI,CAAA,GAIhC,CAAC1vB,EAAEE,qBAAsB,IAJuCgD,MAAE2sB,GAAI,CAAA,GAKtE,CAAC7vB,EAAEO,qBAAsB,IALqO2C,EAAAA,IAAEksB,GAAI,CAAE,GAMtQ,CAACpvB,EAAEM,wBAAyB,IAN4L4C,EAAAA,IAAEgsB,GAAI,CAAE,GAOhO,CAAClvB,EAAEI,qBAAsB,IAPyJ8C,EAAAA,IAAEitB,GAAI,CAAE,GAQ1L,CAACnwB,EAAEK,sBAAuB,IARkH6C,EAACwE,IAACqoB,GAAI,OAShJ,KAAO/sB,OAAQyI,EAAGxG,UAAWqL,EAAGnJ,OAAQ8I,GAAMuc,EAAAA,SAAG,IAAM4D,GAAGzvB,EAAGC,IAAI,CAACD,EAAGC,IACzE,MAAO,CAAE4vB,cADyEhE,EAAAA,SAAG,IAAM/gB,GAAG,CAACA,IACpEglB,iBAD6EjE,WAAG,IAAMlc,GAAG,CAACA,IACrEogB,cAD8ElE,EAAEC,SAAC,IAAMxc,GAAG,CAACA,IACzE,EACjE0gB,GAAK,KACN,MAAQvlB,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,KAAO2M,kBAAmBhR,EAAGiR,kBAAmBpM,GAAMqM,KACjG5G,qBAAsB9F,EACtB+F,wBAAyB9F,EACzB+F,qBAAsB9F,EACtB+F,wBAAyB9F,GACvBkC,KAAQX,YAAatB,GAAMU,KAAO0J,iBAAkB/J,GAAM0J,IAAMzJ,EAAI0J,EAACG,aAACnB,UACxE,IAAItY,EAAG+R,EACP,MAAMxB,EAAIkR,KACV,IAAKlR,GAAsB,OAAhBvQ,EAAIJ,EAAEgI,QAAkB5H,EAAEqI,2BAA6BsH,EAAEgH,EAAEc,kBAAmB,CAAA,IAAKgD,iBAC5F,OACFtL,GAAE,GACF,MAAMqB,GAAwB,OAAlBuB,EAAIzC,EAAE+B,cAAmB,EAASU,EAAE2I,eAAiB,EA9iDxD,EAAC9a,EAAGC,EAAG6K,EAAG6E,EAAGL,EAAGC,EAAGC,EAAGC,EAAGC,KACpC,IAAIK,EACJ,GAAIoR,IAAK,EAAS,MAALrW,EACX,IACE,MAAMkF,EAAI4Q,GAAmBre,MAAE0d,GAAI,CAAA,GAAK,UAAWtP,EAAIrB,EAAEmC,QAAQkQ,MAAM,GACvEhS,EAAE,CAACK,KAAMW,IACT,MAAMC,EAAI9F,EAAEgF,KAAK1P,IACf,GAAe,WAAXA,EAAEtB,KAAmB,CACvB,MAAMqT,EAAIyQ,GAAGxiB,EAAEgc,QAASpc,EAAGC,GAC3B,MAAO,IAAKG,EAAGgc,QAASjK,EAClC,CACQ,OAAO/R,CAAC,IAEVgf,YAAW,KACT,IAAIhN,EACJ,MAAMhS,EAAIkP,EAAEmC,QAAQkQ,MAAM,GAC1B,IAAIxP,EAA2B,OAAtBC,EAAIpS,EAAE+D,cAAwBqO,EAAE/N,SAAWuc,GAAmBre,EAAAA,IAAEia,EAAAA,SAAI,CAAE,GAAG,UAAYoE,GAAmBre,EAAAA,IAAEyd,GAAI,IAAK,UAC5HrQ,EAAE,IAAIiB,EAAGuB,KAAM/R,IAAKsP,GAAE,EAAG,GACxB,KAAM0P,YAAW,KAClB,IAAK7P,EAAEkC,QACL,OACF,MAAQqJ,aAAc1a,GAAMmP,EAAEkC,QAASU,EAAI/R,EAAIoP,EAC/CD,EAAEkC,QAAQsJ,WAAa5I,EAAG1C,GAAE,EAAG,GAC9B,IACT,CAAM,MACAyR,GAAG+O,WAAkC,OAAtBlgB,EAAI/P,EAAE+D,kBAAuB,EAASgM,EAAE9L,WAC7D,GAqhDIisB,CACElwB,EACAC,EACA0Q,EACA7F,EACA6E,EACAD,EACAkB,EACArB,EACAE,EACD,GACA,CACDzP,EACAC,EACA8P,EACAJ,EACAD,EACAH,EACAE,IAEF,MAAO,CAAE2F,qBAAsB9F,EAAG+F,wBAAyB9F,EAAG+F,qBAAsB9F,EAAG2gB,gBAAiBngB,EAAG,EAC1GogB,GAAK,KACN,IAAI1gB,EAAGK,EAAGC,EACV,MAAQvF,SAAUzK,GAAM2K,KAAOsE,OAAQhP,GAAMkP,KAAOghB,gBAAiBrlB,GAAMklB,MAAOrgB,EAAGL,GAAKkC,EAACgB,UAAC,GAAKjD,EAAI,CACnG+L,MAA0B,OAAlB5L,EAAI1P,EAAEsB,cAAmB,EAASoO,EAAEnO,aAC5Cga,YAAgC,OAAlBxL,EAAI/P,EAAEsB,cAAmB,EAASyO,EAAExO,gBAC/CtB,EAAE2M,0BAEF3M,EAAE4M,+BAEP,OAAuBtK,EAAAA,IAAE,MAAO,CAAEsN,UAAW,6BAA8B9M,SAA0BR,EAACwE,IACpG,MACA,CACEyU,aAAc,KACZlM,GAAE,EAAG,EAEPmM,aAAc,KACZnM,GAAE,EAAG,EAEP1Q,MAAO+Q,EAAIJ,EAAI,IAAKtP,EAAE2M,wBACtB8O,YAAc/K,IACZA,EAAEgL,iBAAkB7Q,GAAG,EAEzB+E,UAAW,0BACX2c,KAAM,SACN6D,SAAU,EACVttB,SAA0BR,EAACwE,IAAC,IAAK,CAAEhE,SAAiC,OAAtBiN,EAAIhQ,EAAE+D,kBAAuB,EAASiM,EAAE7L,+BAEtF,EAkBHmsB,GAAK,KACN,IAAIzd,EAAGC,EAAGC,EAAGC,EACb,MAAMhT,EAAI4rB,MAAQnhB,SAAUxK,GAAM0K,KAChC0c,gBAAiBvc,GACf6b,MACFtS,YAAa1E,EACb6E,iBAAkBlF,EAClBgH,eAAgB/G,EAChBkF,0BAA2BjF,EAC3BoG,0BAA2BnG,EAC3BmF,wBAAyBlF,EACzBqF,wBAAyBhF,EACzB0F,qBAAsBzF,EACtB0F,qBAAsB/E,EACtB+D,0BAA2B9D,GACzBe,KAAQX,YAAa5Q,GAAMgQ,KAAOuG,eAAgBxE,EAAGyE,kBAAmBxE,EAAG0E,iBAAkBzE,EAAG8I,eAAgB7I,GAAM4H,KAAQ2L,mBAAoBtT,GAAMoS,MAAQ4L,uBAAwB9d,GAhCtL,MACN,IAAIjD,EACJ,MAAQ/E,SAAUzK,GAAM2K,KAAOsL,kBAAmBhW,EAAGiW,qBAAsBpL,EAAGqL,eAAgBxG,EAAGyG,kBAAmB9G,GAAMqC,IAAMpC,EAAImK,EAAAA,aAAE,KACpI,IAAIhK,EACJ,GAAI5E,GAAE,IAAM6E,GAAiE,sBAAxC,OAAlBD,EAAI1P,EAAEsB,cAAmB,EAASoO,EAAE3N,mBAA4CuN,GAAE,IAAMzM,OAAOkjB,yBAEhH,YADArF,QAAQsF,KAAK,8DAGf,MAAMvW,EAAI,IAAI5M,OAAOkjB,yBACrBtW,EAAEvN,KAAO,GAAIuN,EAAE2Y,MAAQ,KACrBvlB,OAAOgsB,oBAAoB,QAAStf,GAAI1M,OAAOgsB,oBAAoB,UAAWtf,GAAI1M,OAAOgsB,oBAAoB,aAActf,EAAE,EAC5H1M,OAAOqjB,gBAAgBG,MAAM5W,EAAE,GACjC,CAACE,EAAsB,OAAlBH,EAAIxP,EAAEsB,cAAmB,EAASkO,EAAEzN,mBAC5C,MAAO,CACLkU,kBAAmBhW,EACnBswB,uBAAwBhhB,EACzB,EAgBiMihB,IAAQL,gBAAiBzd,GAAMsd,KAAMrd,EAAInC,EAAEE,OAAC,GAAIkC,EAAIpC,EAAEE,QAAC,GACzPmM,EAAC2Q,WAAC,KAAO3qB,OAAO+rB,iBAAiB,QAASnc,GAAI5P,OAAO+rB,iBAAiB,UAAWnc,GAAI5P,OAAO+rB,iBAAiB,aAAcnc,GAAI,KAC7H5P,OAAOgsB,oBAAoB,QAASpc,GAAI5P,OAAOgsB,oBAAoB,UAAWpc,GAAI5P,OAAOgsB,oBAAoB,aAAcpc,EAAE,IAC3H,IAAKoK,EAAAA,WAAE,KACT,MAAM5J,EAAI7S,EAAEqR,QACZ,IAAKwB,EACH,OACF,MAAMC,EAAI,KACRN,EAAEnB,UAAYmB,EAAEnB,SAAU,EAAIuJ,uBAAsB,KAClD,IAAIzH,EAAGC,EACP,IAAKP,EACH,OACF,MAAQ8H,UAAW5H,EAAGkH,aAAcjH,EAAG0H,aAAczH,GAAMJ,EAAGK,EAAIH,EAAIC,EAAIC,IAA4B,OAArBE,EAAItT,EAAEgF,iBAAsB,EAASsO,EAAEhO,sBAAwB,IAChJyK,EAAEsD,GAAI3C,EAAEc,QAAU6B,EAAGA,IAAMH,EAAIC,GAAKC,EAAI,IAAMJ,EAAE8H,UAAY1H,EAAID,EAAI,IAAKxC,EAAEa,SAA8B,OAAlB+B,EAAIvT,EAAEqB,UAAoBkS,EAAE1R,WAAayN,EAAE,IAAKqD,EAAEnB,SAAU,CAAE,IACpJ,EAEL,OAAOwB,EAAE2b,iBAAiB,QAAS1b,EAAG,CAAEud,SAAS,IAAOxd,EAAE2b,iBAAiB,YAAa1b,EAAG,CAAEud,SAAS,IAAO,KAC3Gxd,EAAE4b,oBAAoB,QAAS3b,GAAID,EAAE4b,oBAAoB,YAAa3b,EAAE,CACzE,GACA,IAAK2J,EAAAA,WAAE,KACR,IAAI5J,EAAGC,EAAGC,EACV1D,EAAuB,OAApBwD,EAAIhT,EAAEqE,gBAAqB,EAAS2O,EAAE5P,UAAWmM,EAAwB,OAArB0D,EAAIjT,EAAEgF,iBAAsB,EAASiO,EAAE1N,aAAckK,EAAmB,OAAhByD,EAAIlT,EAAE0D,YAAiB,EAASwP,EAAE7P,kBAAmB8b,YAAW,KAC7K,IAAIhM,EACJrD,EAAmB,OAAhBqD,EAAInT,EAAEkG,YAAiB,EAASiN,EAAE9P,iBAAiB,GACrD,EAAE,GACJ,IAAKuZ,EAAAA,WAAE,KACR,IAAI5J,EACoB,OAAvBA,EAAIhT,EAAEmD,eAAyB6P,EAAE5P,UAAYkP,GAAG,GAChD,CAAyB,OAAvBM,EAAI5S,EAAEmD,mBAAwB,EAASyP,EAAExP,WAAYwZ,EAAC2Q,WAAC,MACzD7c,EAAEc,SAAiB,MAALrR,GAAaA,EAAEqR,SAAYa,GAAG,GAC5C,CAAC3C,IAAKkN,EAAAA,WAAE,KACT,IAAI5J,EAAGC,EACP,GAA2B,OAAtBD,EAAIhT,EAAE8D,cAAwBkP,EAAE5P,SA3qDvC6d,IAAMA,GAAG+O,WAAW7O,SA6qDb,GAAIc,GAAGjiB,GAAI4hB,KAAKlI,OAAS,EAAG,CAC/B,MAAMvG,EAAIwN,GAAmBre,EAAAA,IAAE6tB,GAAI,CAAA,GAAK,UACxCtlB,EAAE,CAACsI,IAA4B,OAAtBF,EAAIjT,EAAE8D,cAAwBmP,EAAE7O,UAAYqO,GAC3D,IACK,CAAwB,OAAtBI,EAAI7S,EAAE8D,kBAAuB,EAAS+O,EAAE7O,WAAmC,OAAtB8O,EAAI9S,EAAE8D,kBAAuB,EAASgP,EAAE/O,WAAmC,OAAtBgP,EAAI/S,EAAE8D,kBAAuB,EAASiP,EAAE3P,WAAYwZ,EAAC2Q,WAAC,KACnK,IAAIva,EACJjT,GAAwB,OAAlBiT,EAAIhT,EAAEqB,UAAoB2R,EAAEnR,WAAawmB,UAAUoI,kBAAoBpI,UAAUoI,gBAAgBC,iBAAkB,EAAIrI,UAAUoI,gBAAgB9B,iBAAiB,kBAAmB1b,IACzL,IAAKA,EAAEqZ,OACL,OACF,MAAQ7S,EAAGvG,EAAGZ,EAAGa,EAAGnM,MAAOoM,EAAGnM,OAAQoM,GAAMJ,EAAEqZ,OAAOqE,aAChD,GAALzd,GAAe,GAALC,GAAe,GAALC,GAAe,GAALC,GAAU8L,YAAW,KACjD,IAAI7L,EACJnB,EAAiC,OAA9BmB,EAAI1Q,OAAOmR,qBAA0B,EAAST,EAAErM,OAAO,GACzD,KAAMkY,YAAW,KAClB,IAAI7L,EAAGC,EACPrB,IAAqC,OAA9BoB,EAAI1Q,OAAOmR,qBAA0B,EAAST,EAAErM,SAAWkL,EAAiC,OAA9BoB,EAAI3Q,OAAOmR,qBAA0B,EAASR,EAAEtM,OAAO,GAC3H,OAASkY,YAAW,KACrB,IAAI7L,EACJnB,GAAkC,OAA9BmB,EAAI1Q,OAAOmR,qBAA0B,EAAST,EAAErM,QAAUoM,EAAE,GAC/D,IAAI,IACN,GACF,CAACtT,IAAK6c,EAAAA,WAAE,KACT,IAAIxJ,EAAGC,EAAGC,EAAGC,EACb,GAAIxT,EACF,OACFsP,IAAM8C,EAAiC,OAA9BiB,EAAIxQ,OAAOmR,qBAA0B,EAASX,EAAEnM,QAASmL,EAAiC,OAA9BiB,EAAIzQ,OAAOmR,qBAA0B,EAASV,EAAErM,QACrH,MAAMgM,EAAI,IAAMpQ,OAAOguB,SAAS,CAAEtW,IAAK,EAAGC,KAAM,EAAGsW,SAAU,SAAW5d,EAAI,IAAMP,EAAElB,QAAU5O,OAAOkuB,QAAS5d,EAAI,KAChH,IAAIM,EAAGC,EACPtB,EAAiC,OAA9BqB,EAAI5Q,OAAOmR,qBAA0B,EAASP,EAAEvM,QAASmL,EAAiC,OAA9BqB,EAAI7Q,OAAOmR,qBAA0B,EAASN,EAAEzM,MAAM,EACpHmM,EAAI,KACL,IAAIK,EACJ5Q,OAAOgsB,oBAAoB,SAAU5b,GAAIpQ,OAAOgsB,oBAAoB,SAAU3b,GAAmC,OAA9BO,EAAI5Q,OAAOmR,iBAA2BP,EAAEob,oBAAoB,SAAU1b,EAAE,EAE7J,OAAO7D,GAAK8D,IAAK3U,SAASskB,KAAKnkB,MAAMoyB,SAAW,QAASnuB,OAAO+rB,iBAAiB,SAAU3b,GAAmC,OAA9BM,EAAI1Q,OAAOmR,iBAA2BT,EAAEqb,iBAAiB,SAAUzb,KAAO1U,SAASskB,KAAKnkB,MAAMoyB,SAAW,SAAU5d,IAAKvQ,OAAOguB,SAAS,CAAEtW,IAAK5H,EAAElB,QAAS+I,KAAM,EAAGsW,SAAU,SAAWjuB,OAAO+rB,iBAAiB,SAAU1b,GAAmC,OAA9BM,EAAI3Q,OAAOmR,iBAA2BR,EAAEqb,oBAAoB,SAAU1b,IAAKC,CAAC,GAC1Y,CAAC9D,EAAGtP,GAAG,EAKTixB,GAHY,uEAGSC,GAFF,UAE8BC,GADhC,uBA2BjBC,GAAK1Y,MAAO1Y,EAAGC,KAChB,MAAQ4gB,GAAI/V,EAAGumB,QAAS1hB,EAAG2hB,QAAShiB,EAAI2hB,GAAIM,cAAehiB,EAAI2hB,IAAOjxB,EAAGuP,EAAIG,QATvE+I,OAAO1Y,EAAGC,KAChB,MAAM6K,EAAI,GAAG7K,KAAKD,cAClB,IACE,MAAM2P,QAAUwV,MAAMra,GACtB,OAAO6E,EAAE6hB,UAAY7hB,EAAE8hB,QAAQJ,SAAW3Q,QAAQC,MAAM,kCAAkC7V,KAAM,KACjG,CAAC,MAAO6E,GACP,OAAO+Q,QAAQC,MAAM,kCAAkC7V,IAAK6E,GAAI,IACpE,GAE0F+hB,CAAG5mB,EAAGwE,GAC9F,IAAKE,EACH,OAAOkR,QAAQC,MAAM,qCAAqC7V,KAAM,CAAEL,SAAU,CAAA,EAAIknB,aAAc,CAAA,EAAIC,cAAe,IACnH,MAAMniB,EA9B2E,EAACzP,EAAGC,EAAG6K,KACxF,MAAM6E,EAAIyS,aAAaG,QAAQ,GAAG4O,MAAMnxB,KAAKC,KAC7C,IAAK0P,EACH,OAAO,KACT,IACE,MAAML,EAAI0S,KAAKK,MAAM1S,GAAIJ,GAAI,IAAqBwR,MAAQ8Q,UAAWriB,EAAIuX,KAAK+K,MAAMviB,EAAI,KACxF,OAAOD,EAAEyiB,UAAYjnB,GAAK0E,EAAIF,EAAI,IACnC,CAAC,MAAOA,GACP,OAAOoR,QAAQC,MAAM,6BAA6B3gB,IAAKsP,GAAI,IAC/D,GAqBY0iB,CAAGlnB,EAAG0E,EAAGD,GACnB,GAAIE,EAAG,CACL,MAAM8C,EAAI0f,GAAGjyB,EAAGyP,EAAEmiB,eAClB,MAAO,CAAEnnB,SAAUgF,EAAEhF,SAAUknB,aAAcliB,EAAEkiB,aAAcC,cAAerf,EAChF,CACE,MAAM7C,EAAI,GAAGJ,KAAKxE,KAAK0E,eAAgBO,EAAI,GAAGT,KAAKxE,KAAK0E,kBAAmBQ,EAAI,GAAGV,KAAKxE,KAAK0E,gBAC5F,IAAImB,EAAI,GACR,MAAMC,QAAUuU,MAAMzV,GACtBkB,EAAE4gB,GAAK7gB,QAAUC,EAAE1O,OAASwe,QAAQsF,KAAK,mCAAmCtW,KAC5E,MAAMtP,QAAU+kB,MAAMpV,GACtB,IAAIoC,EAAI,CAAE,EACV/R,EAAEoxB,GAAKrf,QAAU/R,EAAEqxB,OAAS/Q,QAAQsF,KAAK,sCAAsCjW,KAC/E,MAAMqC,QAAU+S,MAAMnV,GACtB,IAAIqC,EAAI,CAAE,EACVD,EAAEof,GAAKnf,QAAUD,EAAEqf,OAAS/Q,QAAQsF,KAAK,oCAAoChW,KAlCvE,EAAChQ,EAAGC,EAAG6K,EAAG6E,EAAGL,KACnB,MAAMC,GAAI,IAAqBwR,MAAQ8Q,UAAoCpiB,EAAI,CAC7EhF,SAAUK,EACV6mB,aAAchiB,EACdiiB,cAAetiB,EACfyiB,UAJoDhL,KAAK+K,MAAMviB,EAAI,MAMrE6S,aAAaL,QAAQ,GAAGoP,MAAMnxB,KAAKC,IAAK+hB,KAAKC,UAAUxS,GAAG,EA2ByByiB,CAAGpnB,EAAG0E,EAAG2C,EAAGE,EAAG1B,GAElG,MAAO,CAAElG,SAAU0H,EAAGwf,aAActf,EAAGuf,cAD7BK,GAAGjyB,EAAG2Q,GACyC,EACxDshB,GAAK,CAACjyB,EAAGC,IAAMA,EAAEyjB,MAAM,IAAIyO,OAAO,WAAWriB,KAAKH,IACnD,MAAML,EAAIK,EAAE8O,OACZ,OAAOnP,EAAEyV,WAAW,YAAczV,EAAEyV,WAAW,eAAiBzV,EAAEyV,WAAW,UAAYzV,EAAIA,EAAI,IAAItP,KAAKsP,IAAM,EAAE,IACjH2O,KAAK,MACkCmU,GAAK1Z,MAAO1Y,EAAGC,EAAG6K,EAAG6E,KAC7D,IAAIF,EAAGC,EACP,IAAIJ,EAFS+iB,GAAGhxB,GAEFkO,EAFkB8iB,GAAGpnB,GAEXuE,EAAI,GAC5B,GAAS,MAALG,EACF,GAAIoO,MAAMK,QAAQzO,GAChB,IAAK,MAAMI,KAAKJ,EAAG,CACjB,MAAMK,QAAUohB,GAAGpxB,EAAG+P,GACtBT,EAAIgjB,GAAGtiB,EAAEvF,SAAU6E,GAAIC,EAAI+iB,GAAGtiB,EAAE2hB,aAAcpiB,GAAIC,GAAKQ,EAAE4hB,aACjE,KACS,CACH,MAAM7hB,QAAUqhB,GAAGpxB,EAAG2P,GACtBL,EAAIgjB,GAAGviB,EAAEtF,SAAU6E,GAAIC,EAAI+iB,GAAGviB,EAAE4hB,aAAcpiB,GAAIC,GAAKO,EAAE6hB,aAC/D,CACE,OAAY,MAAL3xB,IAAcqP,EAAIgjB,GAAGryB,EAAGqP,IAAU,MAALxE,IAAcyE,EAAI+iB,GAAGxnB,EAAGyE,IAA0D,OAA/B,OAApBE,EAAIH,EAAEhL,gBAAqB,EAASmL,EAAE7K,YAA2C,OAApB8K,EAAIJ,EAAEhL,gBAAqB,EAASoL,EAAE9K,UAAY,MAAQ0K,EAAEhL,UAAUM,SAAW,KAAM,CAAE6F,SAAU6E,EAAGqiB,aAAcpiB,EAAGqiB,cAAepiB,EAAG,EACxQ8iB,GAAK,CAACtyB,EAAGC,KACV,MAAM6K,EAAI,CAAC,CAAEynB,OAAQvyB,EAAGusB,OAAQtsB,IAChC,KAAO6K,EAAE6O,QAAU,CACjB,MAAMhK,EAAI7E,EAAE0nB,MACZ,GAAS,MAAL7iB,EACF,SACF,MAAQ4iB,OAAQjjB,EAAGid,OAAQhd,GAAMI,EACjC,IAAK,MAAMH,KAAKmQ,OAAOC,KAAKtQ,GAAI,CAC9B,MAAMG,EAAID,EACV,GAAIgT,EAAEiQ,eAACnjB,EAAEG,IACPF,EAAEE,GAAKH,EAAEG,QACN,GAAmB,iBAARH,EAAEG,IAA2B,OAATH,EAAEG,IAAgBsO,MAAMK,QAAQ9O,EAAEG,IAGpE,IACEF,EAAEE,GAAKH,EAAEG,EACnB,CAAU,MACV,MALwB,iBAARF,EAAEE,IAA2B,OAATF,EAAEE,MAAiBF,EAAEE,GAAK,IAAK3E,EAAE8d,KAAK,CAAE2J,OAAQjjB,EAAEG,GAAI8c,OAAQhd,EAAEE,IAMpG,CACA,CACE,OAAOxP,CAAC,EACPoyB,GAAMryB,IACP,GAAU,OAANA,GAA0B,iBAALA,EACvB,OAAOA,EACT,MAAMC,EAAI8d,MAAMK,QAAQpe,GAAK,GAAK,CAAA,EAAI8K,EAAI,CAAC,CAAEynB,OAAQvyB,EAAGusB,OAAQtsB,IAAM0P,EAAoB,IAAI+iB,QAC9F,IAAK/iB,EAAEqX,IAAIhnB,EAAGC,GAAI6K,EAAE6O,QAAU,CAC5B,MAAMrK,EAAIxE,EAAE0nB,MACZ,GAAS,MAALljB,EACF,SACF,MAAQijB,OAAQhjB,EAAGgd,OAAQ/c,GAAMF,EACjC,IAAK,MAAMG,KAAKF,EACd,GAAIoQ,OAAOkE,UAAUC,eAAeC,KAAKxU,EAAGE,GAAI,CAC9C,MAAMC,EAAIH,EAAEE,GACZ,GAAIC,GAAiB,iBAALA,EACd,GAAIC,EAAEgO,IAAIjO,GACRF,EAAEC,GAAKE,EAAEsX,IAAIvX,OACV,CACH,MAAMK,EAAIgO,MAAMK,QAAQ1O,GAAK,GAAK,CAAE,EACpCC,EAAEqX,IAAItX,EAAGK,GAAIP,EAAEC,GAAKM,EAAGjF,EAAE8d,KAAK,CAAE2J,OAAQ7iB,EAAG6c,OAAQxc,GAC/D,MAEUP,EAAEC,GAAKC,CACjB,CACA,CACE,OAAOzP,CAAC,EACP0yB,GAAK,KACN,MAAQloB,SAAUzK,EAAG0K,YAAazK,GAAM0K,IAAKG,EAAI4O,eAAGpK,KACjDA,GAA+B,IAA1BqQ,OAAOC,KAAKtQ,GAAGqK,QAAgB1Z,EAAEoyB,GAAGC,GAAGhjB,EAAGtP,IAAI,GACnD,CAACA,IAAK2P,EAAI+J,EAACG,aAAEvK,IACdrP,EAAEqP,EAAE,GACH,IACH,MAAO,CACL7E,SAAUzK,EACV4yB,gBAAiBjjB,EACjBkjB,eAAgB/nB,EACjB,EACAgoB,GAAK,KACN,MAAQ7jB,OAAQjP,EAAGkP,UAAWjP,GAAMkP,IAAKrE,EAAI4O,eAAGpK,KAC7CA,GAA+B,IAA1BqQ,OAAOC,KAAKtQ,GAAGqK,QAAgB1Z,EAAEoyB,GAAGC,GAAGhjB,EAAGtP,IAAI,GACnD,CAACA,IAAK2P,EAAI+J,EAACG,aAAEvK,IACdrP,EAAEqP,EAAE,GACH,IACH,MAAO,CACLL,OAAQjP,EACR+yB,cAAepjB,EACfqjB,aAAcloB,EACf,EASAmoB,GAAK,EACNC,QAASlzB,MAET,IAAIsS,EAAGC,EAAGE,EAAGC,EAAGC,EAChB,MAAM1S,EAAI2rB,MAAQnhB,SAAUK,GAAMH,KAAOsE,OAAQU,GAAMR,KAAOgH,eAAgB7G,EAAG8G,kBAAmB7G,GAAMoC,KAAQd,SAAUrB,GAAMY,KAChIuG,eAAgBlH,EAChBoH,cAAenH,EACf8E,iBAAkBzE,GAChBmK,KAAQ4F,SAAU9P,GAAM8a,MAAQ+E,cAAelf,EAAGmf,iBAAkBlf,EAAGmf,cAAe3vB,GAAMwvB,KAChGU,KAjBM,CAACtwB,IACP,MAAQ6yB,eAAgB5yB,GAAM0yB,MAAQK,aAAcloB,GAAMgoB,KAAMnjB,EAAS,MAAL3P,OAAY,EAASA,EAAE8P,KAAKR,GAAMA,MACtGuN,EAAAA,WAAE,KACA,IAAIvN,EAAI,GAAIC,EAAI,CAAE,EACb,MAALI,GAAaA,EAAEiU,SAASpU,IACjB,MAALA,GAAaA,EAAE/E,UAAoE,IAAxDkV,OAAOC,KAAU,MAALpQ,OAAY,EAASA,EAAE/E,UAAUkP,SAAiBrK,EAAIgjB,GAAG9iB,EAAE/E,SAAU6E,IAAU,MAALE,GAAaA,EAAEP,QAAgE,IAAtD0Q,OAAOC,KAAU,MAALpQ,OAAY,EAASA,EAAEP,QAAQ0K,SAAiBpK,EAAI+iB,GAAG9iB,EAAEP,OAAQM,GAAG,IACxNtP,EAAEqP,GAAIxE,EAAEyE,EAAE,GACb,GAAG,EAUA4jB,CAAGnzB,GAAI6c,EAAC2Q,WAAC,KACb,IAAI5a,GACHtD,GAAiE,aAAxC,OAAlBsD,EAAI9H,EAAExJ,cAAmB,EAASsR,EAAE7Q,oBAAoCiO,EAAE,QAAQ,GACzF,CAACV,EAAsB,OAAlBgD,EAAIxH,EAAExJ,cAAmB,EAASgR,EAAEvQ,mBAC5C,MAAMoQ,EAAI0Z,EAAAA,SAAG,KACX,IAAIhZ,EACJ,MAAMD,EAAI,sBACV,OAA0B,OAAlBC,EAAI/H,EAAExJ,UAAoBuR,EAAE/Q,SAAW8Q,EAAI,sBAAwB7C,EAAI6C,EAAI,kBAAoBA,EAAI,kBAAkB,GAC5H,CAAC9H,EAAGiF,IAiBP,OAAuBxN,MAAEia,EAAAA,SAAI,CAAEzZ,UAEtB9C,IAAwB,OAAjB2S,EAAI9H,EAAEZ,aAAkB,EAAS0I,EAAEzI,kBAAoBlK,IAAwB,OAAjB4S,EAAI/H,EAAEZ,aAAkB,EAAS2I,EAAEzI,iBACzF3D,EAACC,KACvB,MACA,CACEgV,YAAc9I,IACZ,IAAIC,EAAGC,GACNxD,GAAiE,yBAAxC,OAAlBuD,EAAI/H,EAAExJ,cAAmB,EAASuR,EAAE9Q,mBAA+CwN,GAAE,GAAKtP,EAAuB,OAAlB6S,EAAItD,EAAEiC,UAAoBqB,EAAE6W,OAAc,MAAL/W,GAAaA,EAAE+I,gBAAgB,EAE7K9L,UAAWsC,EACXpP,SAAU,CACQR,EAACwE,IAACqmB,GAAI,IACN7qB,EAACwE,IAAComB,GAAI,IACtBpd,IAAM9P,KAA0B,OAAlBsS,EAAIzH,EAAExJ,UAAoBiR,EAAEzQ,WAA6B2E,EAACC,KAAC8V,EAAEtM,SAAE,CAAEnN,SAAU,CACvER,MAAE,QAAS,CAAEQ,SAAU,mOAOvBR,EAACwE,IACf,MACA,CACEnI,MAAO,CACLoyB,SAAU,QACVzW,IAAK,EACLC,KAAM,EACNvT,MAAO,OACPC,OAAQ,OACRoV,gBAAiB,OACjB8W,OAAQ,WAKA3sB,EAACC,KAAC,MAAO,CAAE9H,MAtDjB,MACd,IAAIgU,EAAGC,EACP,OAAQ5S,GAA0B,OAAlB2S,EAAI9H,EAAExJ,UAAoBsR,EAAE9Q,SAUrB,OAAlB+Q,EAAI/H,EAAExJ,UAAoBuR,EAAE/Q,SAAW,IAAK6N,EAAEvE,iBAAoB,IAClEuE,EAAEvE,gBACLgoB,OAAQ,KAZ8C,IACnDzjB,EAAEvE,gBACLpE,aAAc,MACdwT,KAAM,MACNE,MAAO,OACPH,IAAK,MACLE,OAAQ,OACRxT,MAAO,GAAGyI,MACVxI,OAAQ,GAAGuI,MACX2jB,OAAQ,IAIT,EAuCqChhB,GAAKvC,UAAW,kBAAmB9M,SAAU,EACzD,OAAlB0P,EAAI3H,EAAExJ,cAAmB,EAASmR,EAAE/Q,aAA+Ba,EAAAA,IAAE8M,EAAI,CAAEnM,QAASyN,IACtEpO,EAACwE,IAAC4V,EAAI,IACNpa,EAACwE,IAAC0mB,GAAI,KACF,OAAlB/a,EAAI5H,EAAExJ,cAAmB,EAASoR,EAAE9Q,eAAiCW,EAAAA,IAAE0pB,GAAI,CAAE/oB,QAAS0N,KACpE,OAAlB+B,EAAI7H,EAAExJ,cAAmB,EAASqR,EAAEhR,aAA+BY,EAAAA,IAAE2qB,GAAI,CAAEhqB,QAAS9C,YA1CrD,IACnCwS,EAAGC,CA6CL,EACHwgB,GAAK9oB,qBAAG,GAAS+oB,GAAK,IAAM1oB,aAAGyoB,IAAKE,GAAK,EAC1CxwB,SAAU/C,MAEV,IAAIgQ,EACJ,MAAM/P,EAAIuQ,EAAAA,OAAG,IAAK1F,EAAI0F,SAAG,CAAA,IAAMb,EAAGL,GAAKkC,EAACgB,SAAC,KAAMjD,EAAGC,GAAKgC,WAAE,CAAA,IAAM/B,EAAGC,GAAK8B,EAAAA,UAAE,GACzEqL,EAAAA,WAAE,KACAnN,GAAE,EAAG,GACJ,IAMH,OAAOD,EAAoBlN,EAAAA,IAAE,MAAO,CAAE3D,MAAO,CAAE6C,WAA+B,OAAlBuO,EAAIL,EAAErO,cAAmB,EAAS0O,EAAEvO,YAAcsB,SAA0BR,EAAAA,IAAE8wB,GAAGtoB,SAAU,CAAEC,MAAO,CAAEwoB,WALxJ9a,MAAO/H,EAAGC,EAAGxQ,EAAG+R,EAAGC,EAAGC,KAC9BpS,EAAEwR,QAAUd,EAAG7F,EAAE2G,QAAUb,EAC3B,MAAM0B,QAAU8f,GAAGzhB,EAAGvQ,EAAG+R,EAAGC,GAC5BC,EAAEZ,UAAYY,EAAEZ,QAAQ2R,YAAc9Q,EAAEsf,eAAgBtiB,EAAEgD,EAAE7H,UAAW+E,EAAE8C,EAAEqf,aAAa,GAEyF5uB,SAA0BR,EAACwE,IAAC8D,EAAI,CAAEJ,SAAUkF,EAAGjF,YAAa4E,EAAGvM,SAA0BR,EAAAA,IAAE6M,EAAI,CAAEH,OAAQM,EAAGL,UAAWM,EAAGzM,SAA0BR,MAAEioB,GAAI,CAAEznB,SAA0BR,EAACwE,IAACsJ,EAAI,CAAEC,SAAUrQ,EAAGsQ,QAASzF,EAAG/H,SAA0BR,EAAAA,IAAEiX,EAAI,CAAEzW,SAA0BR,EAACwE,IAAC6K,EAAI,CAAEnH,SAAUkF,EAAG5M,SAA0BR,EAACwE,IAAC6S,EAAI,CAAE7W,SAAU/C,oBAA+B,IAAI,EACziByzB,GAAK,EACN5S,GAAI7gB,EACJ0zB,KAAMzzB,EACNwK,SAAUK,EACVmE,OAAQU,EACRgkB,OAAQrkB,EACR4jB,QAAS3jB,EACTqkB,gBAAiBpkB,EACjBqkB,aAAcpkB,MAEd,MAAMC,EAAImc,EAAAA,SAAG,IAAM7rB,GAAG,IAAK+P,EAAIujB,MAAQ/iB,QAASP,GAAMI,IACtDJ,GAAKA,EAAEyB,UAAYxR,IAAM+P,EAAEyB,QAAUxR,GAyBrC,OAAO4c,EAAC2Q,WAAC,KAxBC9U,WACR,IAAI9H,EAAGxQ,EACU,OAAhBwQ,EAAI9F,EAAE9C,QAAkB4I,EAAEvH,0BAA4BoP,EACrD1B,EAAEqB,iBACF,CAAE2B,MAAOrK,EAAGsK,SAAU,KAAMC,SAAU,MACtC,CACEyZ,KAAMzzB,EACNwK,SAAUK,EACVmE,OAAQU,EACRgkB,OAAQrkB,EACR4jB,QAAS3jB,KAEVsL,mBAA0B,MAAL9K,GAAaA,EAAEyjB,mBAAqBzjB,EAAEyjB,WAAW9jB,EAAGzP,EAAG6K,EAAG6E,EAAGL,EAAGG,GAAID,GAAE,IAAuB,OAAhBpP,EAAI0K,EAAE9C,QAAkB5H,EAAEkJ,oBAAsBmP,EACnJ1B,EAAEsB,kBACF,CAAE0B,MAAOrK,EAAGsK,SAAU,KAAMC,SAAU,MACtC,CACEyZ,KAAMzzB,EACNwK,SAAUK,EACVmE,OAAQU,EACRgkB,OAAQrkB,EACR4jB,QAAS3jB,IAEX,EAGFoB,EAAG,GACF,CAACrB,IAAK,IAAI,EACZwkB,GAAK,CAAC,aAAc,WAAY,WAAY,SAAU,WAAYC,GAAK,CACxErO,MAAO,CACLxJ,QAAS,sGACT+C,WAAY,CAAEC,SAAU,KACxBK,cAAc,EACdpC,KAAM,gBAER6W,aAAc,CACZ9X,QAAS,yIACT0C,QAASkV,GACT3W,KAAM,mBAER8W,aAAc,CACZ/X,QAAS,8BACT0C,QAASkV,GACT3W,KAAM,mBAER+W,cAAe,CACbhY,QAAS,kKACT0C,QAASkV,GACT3W,KAAM,mBAERgX,gBAAiB,CACflV,WAAY,CAAEC,SAAU,GACxB/B,KAAOnd,IACL,IAAIC,EAAI,GACR,OAAQD,EAAEgrB,WACR,IAAK,aACH/qB,EAAI,6DACJ,MACF,IAAK,WACHA,EAAI,oDACJ,MACF,IAAK,WACHA,EAAI,wDACJ,MACF,IAAK,SACHA,EAAI,wDACJ,MACF,IAAK,UACHA,EAAI,gCACJ,MACF,QACE,MAAO,gBAEX,OAAOD,EAAEqe,cAAc,yCAA0Ce,YAAW,KAC1Evc,OAAOC,KAAK7C,EAAE,GACb,KAAM,QAAQ,GAGrBwrB,OAAQ,CACNxM,WAAY,CAAEC,SAAU,KACxB/B,KAAM,iBAEPiX,GAAK,EACNvT,GAAI7gB,EACJ0zB,KAAMzzB,EACNwK,SAAUK,EACVmE,OAAQU,EACRgkB,OAAQrkB,EACR4jB,QAAS3jB,MAET,MAAMC,EAAIqc,WAAG,IAAM7rB,GAAK,OAASmgB,MAAM,IAAK1Q,EAAKxP,GAA+B,IAA1B0f,OAAOC,KAAK3f,GAAG0Z,OAAoB1Z,EAAL8zB,GAAQrkB,EAAI5E,GAAK,CAAA,EAAIiF,EAAIJ,GAAK,GAAIK,EAAIT,GAAK,IAAKoB,EAAGC,GAAKY,EAAAA,UAAE,GAAKpR,EAAIkzB,KAAMnhB,EAAI3B,SAAG,OAAQ4B,EAAGC,GAAKb,EAAAA,SAAElC,GAAK,IAC3LuN,EAAAA,WAAE,KACAvN,GAAK+C,EAAE/C,EAAE,GACR,CAACA,IACJ,MAAMgD,EAAI,IAAsB7L,EAAAA,KAAE+V,EAAEtM,SAAE,CAAEnN,SAAU,CAChCR,EAACwE,IACf0sB,GACA,CACEI,aAAc1hB,EACd0O,GAAIrR,EACJkkB,KAAMjkB,EACNhF,SAAUiF,EACVT,OAAQc,EACR4jB,OAAQvhB,EACR8gB,QAASljB,EACT4jB,gBAAiBhjB,IAGrBD,GAAqBpO,EAAAA,IAAE0wB,GAAI,CAAEC,QAAS3jB,OAExC,OAAY,MAALnP,EAA4BqG,EAACC,KAAC6sB,GAAI,CAAExwB,SAAU,CACnCR,EAAAA,IAAE,QAAS,CAAEhE,IAAK4T,IAClB5P,EAACwE,IAAC,MAAO,CAAE8Z,GAAIrR,EAAGzM,SAAUuP,SACvB7L,EAAAA,KAAE+V,EAAEtM,SAAE,CAAEnN,SAAU,CACvBR,EAAAA,IAAE,QAAS,CAAEhE,IAAK4T,IAClB5P,EAACwE,IAAC,MAAO,CAAE8Z,GAAIrR,EAAGzM,SAAUuP,QAC1C,EAaH+hB,GAAK,KACN,MAAQC,SAAUt0B,GANZ,MACN,MAAQsQ,SAAUtQ,GAAMoQ,IACxB,MAAO,CACLkkB,SAAU5a,EAAAA,aAAE,IAAM1Z,EAAEyR,SAAS,CAACzR,IAC/B,EAEuBu0B,GACxB,MAAO,CACLD,SAAUt0B,EACX,EA8BAw0B,GAAK,KACN,MAAQre,eAAgBnW,EAAGy0B,YAAax0B,EAAGy0B,QAAS5pB,GAV9C,MACN,MAAQuc,gBAAiBrnB,GAAM2mB,MAAQ4E,aAActrB,EAAG6f,SAAUhV,GAAMggB,MAAQD,cAAelb,GAAM8a,MAAQtU,eAAgB7G,GAAMqC,KAAQpB,QAAShB,EAAGuB,aAActB,GAAMY,KAAO3F,SAAUgF,GAAM9E,IAGlM,MAAO,CACLwL,eAAgB7G,EAChBmlB,YALyM/a,EAAAA,aAAEhB,UAC3MwJ,GAAGzS,GAAID,EAAEiC,SAAWuW,aAAaxY,EAAEiC,SAAUzR,EAAE,IAAK2P,EAAE,IAAK1P,EAAE,UAAW6K,EAAE,QAAQ,GACjF,CAAC0E,EAAGC,EAAGzP,EAAG2P,EAAG1P,EAAGiiB,GAAIpX,IAIrB4pB,QAJ8Bhb,EAAAA,aAAE,KAAY,MAALnK,OAAY,EAASA,EAAEkC,UAAY,CAAA,GAAI,CAAClC,IAKhF,EAEyDolB,GAC1D,MAAO,CACLxe,eAAgBnW,EAChBy0B,YAAax0B,EACby0B,QAAS5pB,EACV,EACA8pB,GAAK,KACN,MACExN,iBAAkBpnB,EAClBqe,cAAepe,EACfinB,cAAepc,EACf4T,sBAAuB/O,EACvBwX,cAAe7X,EACfuM,SAAUtM,EACV8X,gBAAiB7X,GACfmX,KACJ,MAAO,CACLS,iBAAkBpnB,EAClBqe,cAAepe,EACfinB,cAAepc,EACf4T,sBAAuB/O,EACvBwX,cAAe7X,EACfuM,SAAUtM,EACV8X,gBAAiB7X,EAClB,EACAqlB,GAAK,CAAC70B,EAAGC,KACV,MAAQq0B,SAAUxpB,GAAMupB,KACxBxX,EAAAA,WAAE,KACA,MAAMlN,EAAKL,IACTA,EAAEsJ,OAAOmB,QAAUjP,KAAO7K,EAAEqP,EAAE,EAEhC,OAAOzM,OAAO+rB,iBAAiB5uB,EAAG2P,GAAI,KACpC9M,OAAOgsB,oBAAoB7uB,EAAG2P,EAAE,CACjC,GACA,CAAC7E,EAAG9K,EAAGC,GAAG,EAgBZ60B,GAAK,KACN,MAAQrqB,SAAUzK,EAAG4yB,gBAAiB3yB,EAAG4yB,eAAgB/nB,GAAM6nB,KAC/D,MAAO,CACLloB,SAAUzK,EACV4yB,gBAAiB3yB,EACjB4yB,eAAgB/nB,EACjB,EA2CAiqB,GAAK,KACN,MAAQ5E,gBAAiBnwB,EAAGsV,qBAAsBrV,GAAM+vB,KACxD,MAAO,CACLG,gBAAiBnwB,EACjBg1B,mBAAoBnT,GACpBoT,mBAAoBnT,GACpBxM,qBAAsBrV,EACvB,ECnpGuDwS,GAAI,CAC5DjD,EAAG,CACD4M,QAAShc,EACT80B,MAAM,EACNp2B,KAAMsB,KAER+0B,QAAS,CACPC,QAAS,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,KAAM,UAAW,UAAW,QAAS,UAAW,MAAO,SAAU,UACzGF,MAAM,GAERvxB,MAAO,CACLZ,SAAU,CAAC,QAAS,WAEtBsyB,GAAI,CACFv2B,KAAMsB,EACNk1B,MAAM,GAERvS,KAAM,CACJ3G,QAAShc,KAEXm1B,OAAQ,CACNnZ,QArB2B,EAsB3Btd,KAAMsB,KAERo1B,QAAS,CACPpZ,QAzBM,EA0BNqZ,OAAQ,CAAC,UAEXC,IAAK,CACHD,OAAQ,CAAC,YACTH,MAAM,GAERK,SAAU,CACR5yB,SAAU,CAAC,OACX0yB,OAAQ,CAAC,UAEXG,QAAS,CACP7yB,SAAU,CAAC,WACXjE,KAAMsB,IAERy1B,GAAI,CACFzZ,QAzCM,EA0CNqZ,OAAQ,CAAC,OAEXK,GAAI,CACF/yB,SAAU,CAAC,KAAM,MACjBjE,KA9CM,GAgDRqf,GAAI,CACF/B,QAjDM,EAkDNgZ,QAAS,CAAC,SAAU,UACpBK,OAAQ,CAAC,OAEXM,WAAY,CACV3Z,QAtDM,EAuDNqZ,OAAQ,CAAC,WAEXjvB,OAAQ,CACN4uB,QAAS,CAAC,SAAU,WAEtB/yB,OAAQ,CACN+yB,QAAS,CAAC,SAAU,WAEtBY,GAAI,CACFl3B,KAhEM,EAiENw2B,MAAM,GAERW,IAAK,CACHX,MAAM,GAERY,GAAI,CACF9Z,QAvEM,EAwENqZ,OAAQ,CAAC,KAAM,KAAM,SAEvBU,KAAM,CACJjB,MAAM,GAERkB,GAAI,CACFrzB,SAAU,CAAC,MACXjE,KA/EM,GAiFRu3B,QAAS,CACPtzB,SAAU,CAAC,SAAU,OACrBjE,KAAMsB,IAERk2B,GAAI,CACFb,OAAQ,CAAC,OAAQ,QAEnBc,GAAI,CACFd,OAAQ,CAAC,OAAQ,QAEnBpa,GAAI,CACFe,QA5F2B,EA6F3BqZ,OAAQ,CAAC,OAAQ,QAEnBe,IAAK,CACHpa,QAhG2B,EAiG3BqZ,OAAQ,CAAC,SAEXgB,KAAM,CACJ1zB,SAAU,CAAC,KAAM,KAAM,KAAM,QAE/BwvB,OAAQ,CACNkD,OAAQ,CAAC,QAAS,QAAS,WAC3BH,MAAM,GAERoB,QAAS,CACPta,QA3G2B,EA4G3BqZ,OAAQ,CAAC,YAEXkB,MAAO,CACL5zB,SAAU,CAAC,UAAW,WAAY,QAAS,QAAS,QAAS,MAC7DjE,KAhHM,GAkHR83B,MAAO,CACLnB,OAAQ,CAAC,SACT1yB,SAAU,CAAC,OAEb8zB,GAAI,CACFza,QAvHM,EAwHNqZ,OAAQ,CAAC,OAEXqB,MAAO,CACLrB,OAAQ,CAAC,SACT1yB,SAAU,CAAC,OAEbg0B,GAAI,CACF3a,QA/HM,EAgINqZ,OAAQ,CAAC,OAEXuB,MAAO,CACLvB,OAAQ,CAAC,SACT1yB,SAAU,CAAC,OAEbk0B,GAAI,CACFxB,OAAQ,CAAC,QAAS,QAAS,QAAS,SACpC1yB,SAAU,CAAC,KAAM,OAEnBm0B,MAAO,CACLzB,OAAQ,CAAC,QAAS,SAClBH,MAAM,GAER6B,GAAI,CACFp0B,SAAU,CAAC,MACXjE,KAhJM,GAkJRs4B,MAAO,CACLr0B,SAAU,CAAC,QAAS,WAEtBs0B,IAAK,CACHv4B,KAAMsB,EACNk1B,MAAM,IAGV,SAAStiB,GAAExD,GACT,OAAQvP,IACNwS,GAAExS,GAAK,IACFuP,KACAiD,GAAExS,GACN,CAEL,CACA,CAAC,UAAW,OAAQ,MAAO,SAAU,IAAK,OAAO2jB,QAAQ5Q,GAAE,CACzDoJ,QAnKQ,EAoKRtd,KAAMsB,MAER,CAAC,OAAQ,IAAK,MAAO,MAAO,OAAQ,OAAQ,OAAQ,MAAO,KAAM,IAAK,MAAO,OAAQ,IAAK,OAAQ,OAAQ,SAAU,MAAO,MAAO,OAAQ,IAAK,OAAOwjB,QAAQ5Q,GAAE,CAC9JoJ,QAvK6B,EAwK7Btd,KAAMsB,MAER,CAAC,IAAK,OAAOwjB,QAAQ5Q,GAAE,CACrBoJ,QA3K6B,EA4K7Btd,KAAMsB,MAER,CAAC,IAAK,QAAS,OAAQ,MAAO,OAAOwjB,QAAQ5Q,GAAE,CAC7CoJ,QA/K6B,EAgL7Btd,KAAMsB,KAER,CAAC,UAAW,QAAS,SAAU,SAAU,MAAO,UAAW,cAAcwjB,QAAQ5Q,GAAE,CACjFoJ,QAnLQ,EAoLRtd,KAAMsB,MAER,CAAC,KAAM,KAAM,KAAM,KAAM,KAAM,MAAMwjB,QAAQ5Q,GAAE,CAC7CoJ,QAvL6B,EAwL7Btd,KAAMsB,MAER,CAAC,QAAS,SAAU,SAAU,MAAO,SAASwjB,QAAQ5Q,GAAE,CACtDlU,KAAMsB,MAER,MAAMoR,GAAImO,OAAO2X,OAAO7kB,IAAIpR,GAAK,CAAC,SAAU,OAAQ,OAAQ,UAAW,QAAS,QAAS,WAAY,OAAQ,OAAQ,OAAQ,OAAQ,WAAY,SAAU,SAAU,QAAS,SAAU4wB,GAAKtS,OAAOC,KAAKpO,IAAGmS,QAAQnU,GAAY,WAANA,GAAwB,WAANA,IAAqDgE,GAAImM,OAAO2X,OAAO,CACjTvJ,IAD+P,EAE/PwJ,KAF+P,EAG/PtT,MAH+P,EAI/PuT,QAJ8Q,EAK9QxJ,SALqR,EAMrRyJ,SAN+P,EAO/PC,QAPqR,EAQrRr0B,SARqR,EASrRs0B,IAT+P,EAU/PzwB,OAV+P,EAW/P0wB,KAX+P,EAY/P/W,GAZ+P,EAa/PgX,KAb+P,EAc/PC,MAd+P,EAe/P7R,KAf+P,EAgB/P8R,QAhB+P,EAiB/PC,KAjBqR,EAkBrRC,MAlB+P,EAmB/PC,MAnBqR,EAoBrRC,OApB+P,EAqB/PC,IArB+P,EAsB/P5L,KAtB+P,EAuB/P6L,QAvB8Q,EAwB9QC,MAxB+P,EAyB/PC,MAzB+P,EA0B/PC,KA1B8Q,EA2B9Q9S,MA3B8Q,EA4B9Q9mB,MA5B4R,EA6B5RkvB,IA7B+P,EA8B/P2K,QA9B+P,EA+B/PC,OA/B+P,EAgC/PC,SAhC+P,EAiC/PpM,OAjC+P,EAkC/PjqB,MAlC+P,EAmC/PxD,KAnC+P,EAoC/PmI,MApC+P,IAqC7PqD,GAAKqV,OAAO2X,OAAO,CACrBrT,MAAO,YACPuT,QAAS,UACTC,SAAU,WACVY,QAAS,UACTI,QAAS,UACTC,OAAQ,SACRC,SAAU,aAEZ,SAAStlB,KACP,OAAOA,GAAIsM,OAAOiZ,QAAU,SAASppB,GACnC,IAAK,IAAIvP,EAAI,EAAGA,EAAI44B,UAAUlf,OAAQ1Z,IAAK,CACzC,IAAI0P,EAAIkpB,UAAU54B,GAClB,IAAK,IAAIwP,KAAKE,EACZgQ,OAAOkE,UAAUC,eAAeC,KAAKpU,EAAGF,KAAOD,EAAEC,GAAKE,EAAEF,GAChE,CACI,OAAOD,CACR,EAAE6D,GAAEylB,MAAMC,KAAMF,UACnB,CACA,SAAS34B,IACPqjB,WAAY/T,EAAI,CAAE,EAClBK,UAAW5P,EACX8C,SAAU4M,EAAI,KACdqpB,UAAWvpB,GAAI,EACf4T,QAAS/T,IAET,MAAMC,EAAID,EACV,OAAOG,EAAoBzP,EAAEnB,cAAc0Q,EAAG8D,GAAE,CAC9CxD,UAAW5P,GACVuP,IAAsBxP,EAAEnB,cAAc0Q,EAAG8D,GAAE,CAC5CxD,UAAW5P,GACVuP,GAAIG,EACT,CACA,MAAMyhB,GAIJ,SAAA6H,CAAUh5B,EAAG0P,GACX,OAAOA,CACX,CAIE,IAAAupB,CAAKj5B,EAAG0P,GACN,OAAOA,CACX,EAEA,SAASX,GAAGQ,GACV,OAAOA,GAAKA,EAAE2pB,YAAcxZ,OAAOkE,UAAUC,eAAeC,KAAKvU,EAAG,WAAaA,EAAEkoB,QAAUloB,CAC/F;;;;;;;GAQA,IAAImD,GAAGW,GAsCP,MAAM5B,GAAqB1C,GArC3B,WACE,GAAIsE,GAAG,OAAOX,GACdW,GAAI,EACJ,IAAI9D,EAAI,UA+BR,OA9BAmD,GACA,SAAWhD,GACT,IAAIF,EAAI,GAAKE,EAAGL,EAAIE,EAAE4pB,KAAK3pB,GAC3B,IAAKH,EACH,OAAOG,EACT,IAAIF,EAAGG,EAAI,GAAIM,EAAI,EAAGlF,EAAI,EAC1B,IAAKkF,EAAIV,EAAE+pB,MAAOrpB,EAAIP,EAAEkK,OAAQ3J,IAAK,CACnC,OAAQP,EAAEyV,WAAWlV,IACnB,KAAK,GACHT,EAAI,SACJ,MACF,KAAK,GACHA,EAAI,QACJ,MACF,KAAK,GACHA,EAAI,QACJ,MACF,KAAK,GACHA,EAAI,OACJ,MACF,KAAK,GACHA,EAAI,OACJ,MACF,QACE,SAEJzE,IAAMkF,IAAMN,GAAKD,EAAE6pB,UAAUxuB,EAAGkF,IAAKlF,EAAIkF,EAAI,EAAGN,GAAKH,CAC3D,CACI,OAAOzE,IAAMkF,EAAIN,EAAID,EAAE6pB,UAAUxuB,EAAGkF,GAAKN,CAC7C,CAEA,CACSzE,IAET,SAAS2F,GAAEpB,EAAGvP,EAAG0P,GACf,OAAO1P,KAAKuP,EAAImQ,OAAO4Z,eAAe/pB,EAAGvP,EAAG,CAAE+K,MAAO2E,EAAG6pB,YAAY,EAAIC,cAAc,EAAIC,UAAU,IAAQlqB,EAAEvP,GAAK0P,EAAGH,CACxH,CACA,MAAMoM,GAAK,2BACX,MAAMkX,WAAW1B,GACf,SAAA6H,CAAUh5B,EAAG0P,GACX,MAAa,UAAN1P,GAAiB0f,OAAOC,KAAKjQ,GAAGiU,SAASnU,IAC9CkqB,OAAOhqB,EAAEF,IAAImqB,MAAMhe,YAAcjM,EAAEF,EAAE,IACnCE,CACR,EAEA,MAAqBiT,GAAK,uCAAwC4N,GAAK,wBAAyBnR,GAAK,iBACrG,SAASsT,KACP,YAAa9vB,OAAS,YAAcpE,SAAW,KAC7C,OAAOA,SAASo7B,eAAeC,mBAAmB,aACtD,CACA,MAAMpmB,GACJ,WAAAqmB,CAAY95B,EAAG0P,EAAI,CAAA,EAAIF,EAAI,GAAIH,EAAI,IACjC,IAAIC,EACJ,GAAIqB,GAAEmoB,KAAM,eAAW,GAASnoB,GAAEmoB,KAAM,cAAU,GAASnoB,GAAEmoB,KAAM,eAAW,GAASnoB,GAAEmoB,KAAM,iBAAa,GAASnoB,GAAEmoB,KAAM,UAAW,IAAKnoB,GAAEmoB,KAAM,aAAS,GAASnoB,GAAEmoB,KAAM,gBAAY,GAASnoB,GAAEmoB,KAAM,eAAW,GAASnoB,GAAEmoB,KAAM,gBAAY,GAAkC,eAAzBiB,QAAQC,IAAIC,UAA6Bj6B,GAAiB,iBAALA,EAChT,MAAM,IAAIk6B,UAAU,8CACtBpB,KAAKqB,MAAQzqB,EAAGopB,KAAKsB,SAAW5qB,EAAGspB,KAAKuB,QAAU,IAAIhrB,EAAG,IAAIwjB,IAAOiG,KAAKwB,YAAexB,KAAKyB,UAAYzB,KAAK0B,gBAAgBx6B,GAAK,IAAK84B,KAAK2B,QAAU,IAAIpd,IAA0B,QAArB/N,EAAII,EAAEgrB,iBAA6B,IAANprB,EAAeA,EAAI0iB,IAAK8G,KAAK6B,OAAS,IAAItd,IAAIjc,IAAK03B,KAAK8B,QAAU,IAAIvd,IAAI3N,EAAEmrB,UAC7Q,CAIE,qBAAAC,CAAsB96B,EAAG0P,GACvB,OAAOopB,KAAKuB,QAAQ9W,QAAO,CAAC/T,EAAGH,IAAY,OAANG,GAAoC,mBAAfH,EAAE2pB,UAA0B3pB,EAAE2pB,UAAUh5B,EAAGwP,GAAKA,GAAGE,EACjH,CAIE,gBAAAqrB,CAAiB/6B,EAAG0P,GAClB,OAAOopB,KAAKuB,QAAQ9W,QAAO,CAAC/T,EAAGH,IAAY,OAANG,GAA+B,mBAAVH,EAAE4pB,KAAqB5pB,EAAE4pB,KAAKj5B,EAAGwP,GAAKA,GAAGE,EACvG,CAME,aAAAsrB,CAAch7B,EAAG0P,GACf,MAAMF,EAAI,CAAA,GACR2qB,MAAO9qB,GACLypB,KACJ,IAAIxpB,EAAItP,EAAGyP,EAAI,EAAGM,EAAI,KACtB,OAAO+oB,KAAKsB,SAASzW,SAAS9Y,IAC5B,MAAMoI,EAAIpI,EAAEowB,QAAQ5X,cAAe3S,EAAIooB,KAAKoC,aAAajoB,GACzD,GAAI5D,EAAExE,EAAEswB,eAAiBrC,KAAKsC,aAAanoB,KAAO6lB,KAAKuC,eAAe3rB,EAAGgB,GACvE,OACF,IAAIZ,EAAI,GACR,KAAOR,IAAMS,EAAIlF,EAAE8uB,MAAMrqB,KAAO,CAC9B,MACE8pB,MAAO92B,EACPoX,OAAQjH,EACRknB,MAAOznB,EACPopB,MAAO1oB,EACPyiB,KAAMxiB,KACHP,GACDvC,EAAGmE,EAAIrJ,EAAE0wB,SAAW7B,OAAOjqB,GAC/BnN,EAAI,IAAMwN,GAAKR,EAAEoS,MAAM,EAAGpf,IAAKsQ,GAAK9C,GAAK+C,EAAI,MAAMqB,QAAU,MAAMA,OAAOhC,QAAQgC,OAAQ4kB,KAAKwB,UAAY,EAAG7qB,GAAK,EAAGD,EAAE0E,GAAK,CAC3HpR,SAAUoP,EACVspB,QAAS3wB,EACTsvB,MAAO,IACF9qB,KACAiD,EACHiS,IAAKuU,KAAKwB,YAETxqB,GAAKoC,EAAGrH,EAAE4wB,QAAUnsB,EAAIQ,EAAIR,EAAEoS,MAAMpf,EAAImQ,GAAI3C,EAAI,IAAMR,EAAIA,EAAEoS,MAAMpf,GAAKmQ,GAAKP,EAAEwH,QAC3F,CACM7O,EAAE4wB,SAAWnsB,EAAIQ,EAAIR,EAAE,IACf,IAANG,EAAUzP,EAAI84B,KAAK4C,cAAcpsB,EAAGE,EAC5C,CAIE,cAAA6rB,CAAer7B,EAAG0P,GAChB,SAAQ1P,EAAEojB,UAAY1T,EAAE0T,SAAWpjB,EAAEq1B,QAAYr1B,EAAE8C,SAAS4W,OAAS,EAAI1Z,EAAE8C,SAAS8c,SAASlQ,EAAE0T,WAAWpjB,EAAEm1B,QAAQzb,OAAS,GAAK1Z,EAAEm1B,QAAQvV,SAASlQ,EAAE0T,YAAgB1T,EAAE8lB,OAAO9b,OAAS,EAAIhK,EAAE8lB,OAAO5V,SAAS5f,EAAEojB,YAAYpjB,EAAEi1B,MAAQj1B,EAAEojB,UAAY1T,EAAE0T,aAAkBpjB,GAAKA,EAAEmc,QAAUzM,EAAE7Q,OAChS,CAME,iBAAA88B,CAAkB37B,GAChB,MACE47B,OAAQlsB,EACRmsB,kBAAmBrsB,GACjBspB,KAAKqB,MACT,GAAIzqB,GAAKF,GAAKxP,EAAE25B,MAAM,qCACpB,OAAO35B,EACT,IAAIqP,EAAIrP,EAAEsgB,QAAQ,QAAS,MAE3B,OAAOjR,EAAIA,EAAEiR,QAAQ,UAAW,UAGhCjR,EAAIA,EAAEiR,QAAQ,MAAO,SAAUjR,CACnC,CAME,eAAAmrB,CAAgBx6B,GACd,IAAI0P,EACJ,MAAML,UAAYysB,OAAS,KAAOA,OAAOC,yBAA2BrJ,MACpE,IAAKrjB,EACH,OACF,MAAMC,EAA0C,QAArCI,EAAIopB,KAAKqB,MAAM6B,wBAAoC,IAANtsB,EAAeA,EAAI,OAAQD,EAAU,SAANH,GAAsB,aAANA,EAAmBD,EAAEyT,KAAOzT,EAAEzQ,cAAc0Q,GACnJ,GAAItP,EAAE25B,MAAMhX,KACV,GAA6B,eAAzBoX,QAAQC,IAAIC,SACd,MAAM,IAAIxa,MAAM,gEAElBhQ,EAAE+U,UAAYsU,KAAK6C,kBAAkB7C,KAAKqB,MAAM8B,WAAaxqB,GAAGzR,GAAKA,GACvE,OAAOyP,CACX,CAKE,iBAAAysB,CAAkBl8B,GAChB,MACEm8B,gBAAiBzsB,GACfopB,KAAKqB,MAAO3qB,EAAI,CAAE,EACtB,IAAIH,EAAI,EACR,OAjHM,IAiHCrP,EAAEgjB,UAAmBhjB,EAAEsjB,aAAe,IAAItjB,EAAEsjB,YAAYK,SAASrU,IACtE,MACEkU,KAAM/T,EACN1E,MAAOgF,GACLT,EAAGzE,EAAI4E,EAAE4T,cAAepQ,EAAIM,GAAE1I,IAAM0I,GAAE9D,GAC1C,IAAKqpB,KAAKsD,OAAOp8B,KAAO6K,EAAE8uB,MAAMpJ,OAAS7gB,KAAOuD,GAtQmN,IAsQ9MA,IAAapI,EAAEia,WAAW,OAAS/U,EAAEuQ,QAAQ,uBAAwB,IAAIqZ,MAAM,2CAClI,OACF,IAAIjpB,EAAU,UAAN7F,EAAgBiuB,KAAKuD,sBAAsBr8B,GAAK+P,EAxQyN,IAyQjRkD,EAAUvC,GAAI,EAzQ4P,IAyQvPuC,EAAUvC,EAAI4rB,OAAOC,WAAW7C,OAAOhpB,IAzQ8N,IAyQxNuC,IAAYvC,EAAIgpB,OAAOhpB,IAAKlB,EAAEnF,GAAGQ,IAAMA,GAAKiuB,KAAKgC,sBAAsBjwB,EAAG6F,GAAIrB,GAAK,CAAC,IAC5I,IAANA,GAAkBG,EAAP,IACnB,CAIE,qBAAA6sB,CAAsBr8B,GACpB,MAAM0P,EAAI,CAAE,EACZ,OAAOoO,MAAMC,KAAK/d,EAAErB,OAAOglB,SAASnU,IAClC,MAAMH,EAAIrP,EAAErB,MAAM6Q,IACL,iBAALH,GAA6B,iBAALA,KAAmBK,EAAEF,EAAE8Q,QAAQ,aAAa,CAAChR,EAAGG,IAAMiqB,OAAOjqB,GAAGqN,iBAAkBzN,EAAE,IAClHK,CACR,CAIE,YAAAwrB,CAAal7B,GACX,MAAM0P,EAAI,CACR5M,SAAU,GACVqZ,QAAS,EACTgZ,QAAS,GACTK,OAAQ,GACRP,MAAM,EACN7R,QAAS,GACTvkB,KAAM,EACNw2B,MAAM,GAER,OAAO9jB,GAAEvR,GAAK,IACT0P,KACA6B,GAAEvR,GACLojB,QAASpjB,GACP0P,CACR,CAIE,MAAA0sB,CAAOp8B,GACL,UAAWw8B,kBAAoB,KAAOx8B,aAAaw8B,kBAAmB,CACpE,MAAM9sB,EAAI1P,EAAEy8B,aAAa,QACzB,GAAS,MAAL/sB,GAAaA,EAAEoV,WAAW,KAC5B,OAAO,EACT,MAAMtV,EAAIxP,EAAE08B,SAASrZ,cACrB,MAAa,MAAN7T,GAAmB,UAANA,GAAuB,WAANA,GAAwB,YAANA,GAAyB,SAANA,CAChF,CACI,OAAO,CACX,CAIE,YAAA4rB,CAAap7B,GACX,OAAO84B,KAAK6B,OAAOjd,IAAI1d,KAAM84B,KAAK8B,QAAQld,IAAI1d,KAAU84B,KAAKqB,MAAMwC,eAAiB7D,KAAK2B,QAAQ/c,IAAI1d,GACzG,CAME,KAAAoiB,GACE,OAAO0W,KAAKyB,UAAYzB,KAAK8D,UAAU9D,KAAKyB,UAAWzB,KAAKoC,aAAapC,KAAKyB,UAAUsC,SAASxZ,gBAAkB,EACvH,CAKE,SAAAuZ,CAAU58B,EAAG0P,GACX,MACEksB,OAAQpsB,EACRstB,qBAAsBztB,EACtBstB,cAAertB,EACf+d,UAAW5d,EACXstB,uBAAwBhtB,GACtB+oB,KAAKqB,MACT,IAAItvB,EAAI,GAAIoI,EAAI,GAChB,MAAO,IAAIjT,EAAE+iB,YAAYY,SAASjT,IAChC,GAnMI,IAmMAA,EAAEsS,SAAgB,CACpB,MAAM1gB,EAAIoO,EAAEmsB,SAASxZ,cAAe5Q,EAAIqmB,KAAKoC,aAAa54B,GAC1D2Q,IAAMpI,EAAE8d,KAAK1V,GAAIA,EAAI,IACrB,MAAMf,EAAI4mB,KAAKiC,iBAAiBz4B,EAAGoO,GACnC,IAAKwB,EACH,OACF,IAAIU,EACJ,GAAInD,KAAOM,GAAM+oB,KAAKsC,aAAa94B,IAAK,CACtCw2B,KAAKwB,UAAY,EACjB,MAAMznB,EAAIimB,KAAKwB,SACf1nB,EAAIkmB,KAAK8D,UAAU1qB,EAAGO,GACtB,MAAMH,EAAI7C,EAAEyC,EAAGU,EAAGH,GAClB,GAAU,OAANH,EACF,OACF,UAAWA,EAAI,IAIb,YAHAzH,EAAE8d,KAAqB5oB,EAAEi9B,aAAa1qB,EAAG,CACvCiS,IAAK1R,KAITimB,KAAKwB,SAAWznB,EAAI,CAC9B,CACQ,GAAIimB,KAAK6B,OAAOjd,IAAIpb,GAClB,OACF,GAAMkN,GAAKH,GAAW,OAAN/M,IAAew2B,KAAKsC,aAAa94B,KAAOgN,IAAKwpB,KAAKuC,eAAe3rB,EAAG+C,GAWlF5H,EAAI,IAAIA,KAAMiuB,KAAK8D,UAAU1qB,EAAGO,EAAE2Q,QAAU3Q,EAAI/C,QAXuC,CACvF,IAAII,EACJgpB,KAAKwB,UAAY,EACjB,MAAMznB,EAAIimB,KAAKoD,kBAAkBhqB,GAAII,EAAI,CACvC8Q,QAAS9gB,GAEXuQ,IAAMP,EAAEgR,WAAazQ,GAAIJ,EAAE4iB,OAAS/iB,EAAEymB,UAAYtmB,EAAE4iB,MAAOxqB,EAAE8d,KAAqB5oB,EAAEnB,cAAcqB,GAAG,IAChGqS,EACHiS,IAAKuU,KAAKwB,UACG,QAAXxqB,EAAI8C,SAAqB,IAAN9C,EAAeA,EAAIgpB,KAAK8D,UAAU1qB,EAAGO,IAC7D,CAET,MAAa,GAvOK,IAuOD/B,EAAEsS,SAAiB,CAC5B,MAAM1gB,EAAIkN,IAAMH,EAAIqB,EAAEyS,YAEpB2V,KAAKkC,cAActqB,EAAEyS,aAAe,GAAIzT,GAE1CoO,MAAMK,QAAQ7b,GAAKuI,EAAI,IAAIA,KAAMvI,GAAK2Q,GAAK3Q,CACnD,KACQ2Q,GAAKpI,EAAE8d,KAAK1V,GAAIpI,CACxB,CAKE,aAAA6wB,CAAc17B,EAAG0P,GACf,IAAK1P,EAAE4f,SAAS,OACd,OAAO5f,EACT,MAAMwP,EAAI,GACV,IAAIH,EAAIrP,EAAGsP,EAAI,KACf,KAAOA,EAAID,EAAEsqB,MAAMva,KAAO,CACxB,MAAO3P,EAAGM,GAAKT,EAAGzE,EAAIyE,EAAE8pB,MAAOnmB,EAAIxD,EAAEmQ,SAAS,KAC9C,GAA6B,eAAzBma,QAAQC,IAAIC,WAA8BvqB,EAAEK,GAC9C,MAAM,IAAI0P,MAAM,UAAU1P,qDAC5BlF,EAAI,IAAM2E,EAAEmZ,KAAKtZ,EAAEqS,MAAM,EAAG7W,IAAKwE,EAAIA,EAAEqS,MAAM7W,IAC7C,MACE/H,SAAU4N,EACV8qB,QAAS1rB,EACTqqB,MAAO73B,GACLoN,EAAEK,GACN,IAAI0C,EACJ,GAAIQ,EACFR,EAAIhD,EAAEiK,OAAQlK,EAAEmZ,KAAK7Y,EAAElR,cAAc8R,EAAGpO,QACrC,CACH,MAAM4P,EAAI7C,EAAEsqB,MAAM,IAAIzH,OAAO,OAAOniB,SACpC,GAA6B,eAAzBgqB,QAAQC,IAAIC,WAA8B/nB,EAC5C,MAAM,IAAIuN,MAAM,mDAAmD1P,OACrE0C,EAAIP,EAAEknB,MAAQlnB,EAAE,GAAGwH,OAAQlK,EAAEmZ,KAAK7Y,EAAElR,cAAck6B,KAAK4C,cAAcrsB,EAAEqS,MAAMjS,EAAEiK,OAAQxH,EAAEknB,OAAQ1pB,GAAIpN,GAC7G,CACM+M,EAAIA,EAAEqS,MAAMjP,EAClB,CACI,OAAOpD,EAAEqK,OAAS,GAAKlK,EAAEmZ,KAAKtZ,GAAiB,IAAbG,EAAEkK,OAAe,GAAkB,IAAblK,EAAEkK,QAA+B,iBAARlK,EAAE,GAAiBA,EAAE,GAAKA,CAC/G,EAEA,SAASke,GAAGne,GACV,IAAIvP,EACJ,MACEsjB,WAAY5T,EACZE,UAAWJ,EACXwsB,iBAAkB3sB,EAClB8M,QAAS7M,EACT2tB,aAAcxtB,EACdytB,cAAentB,EACfqT,QAASvY,EACTsyB,OAAQlqB,GACN1D,EAAGmB,EAAqB,QAAhB1Q,EAAIqP,GAAKxE,SAAqB,IAAN7K,EAAeA,EAAI,OAAQ8P,EAAU,aAANY,GAAwBuC,EAC3F,IAAI3Q,EACJ,GAAIyN,EACFzN,EAAIyN,MACD,CACH,MAAM0C,EAAI,IAAIgB,GAAEnE,GAAK,GAAIC,GAAG6S,QAC5B3P,EAAEiH,OAAS,IAAMpX,EAAImQ,EACzB,CACE,OAAOnQ,IAAMA,EAAImN,GAAIK,EAAoB/P,EAAEnB,cAAcmB,EAAEkQ,SAAU,KAAM3N,GAAqBvC,EAAEnB,cAAcqB,GAAG,CACjHqjB,WAAY5T,EACZE,UAAWJ,EACX4T,QAAS1S,GACRpO,EACL,CACA,SAASgoB,GAAG/a,GACV,MACE+T,WAAYtjB,EACZ4P,UAAWF,EACXyM,QAAS3M,EAAI,GACb4tB,eAAgB/tB,GAAI,EACpBguB,gBAAiB/tB,GAAI,EACrB2tB,aAAcxtB,EAAI,KAClB4qB,QAAStqB,EAAI,GACbqqB,SAAUvvB,EAAI,GACdyyB,aAAcrqB,EAAI,KAClBsqB,cAAe7sB,EAAI,KACnB0S,QAAStT,EAAI,OACbqtB,OAAQ76B,GAAI,KACTmQ,GACDlD,EAAG2C,EAAI5C,EAAI,GAAKzE,EAAG+H,EAAIvD,EAAI,GAAKU,EAAG8C,EAAInC,EAAI,CAACA,GAAK,GAAI4B,EAAIW,EAAI,CAACA,GAAK,GACvEf,EAAEyR,SAAShR,IACTA,EAAE4qB,eAAiB1qB,EAAE8V,KAAKhW,EAAE4qB,cAAcC,KAAK7qB,IAAKA,EAAE2qB,cAAgBhrB,EAAEqW,KAAKhW,EAAE2qB,aAAaE,KAAK7qB,GAAG,IAEtG,MAAMuB,EAAIrB,EAAE0Q,QAAO,CAAC5Q,EAAGQ,KACrB,MAAMD,EAAIC,EAAER,EAAGpD,GACf,GAA6B,eAAzBwqB,QAAQC,IAAIC,UAAyC,iBAAL/mB,EAClD,MAAM,IAAIgnB,UAAU,+DACtB,OAAOhnB,CAAC,GACP1D,GAAK,IAAKmE,EAAI,IAAIF,GAAES,EAAGzB,EAAGP,EAAGU,GAAIT,EAAIG,EAAEiR,QAAO,CAAC5Q,EAAGQ,KACnD,MAAMD,EAAIC,EAAER,EAAGpD,GACf,GAA6B,eAAzBwqB,QAAQC,IAAIC,WAA8Bnc,MAAMK,QAAQjL,GAC1D,MAAM,IAAIgnB,UAAU,iFACtB,OAAOhnB,CAAC,GACPS,EAAEyO,SACL,OAAuBriB,EAAEnB,cAAc8uB,GAAI,CACzCpK,WAAYtjB,EACZ4P,UAAWF,EACXssB,iBAAkBzsB,EAAEysB,iBACpBiB,aAAcxtB,EACd0tB,OAAQ76B,EACR46B,cAA4B,IAAb/qB,EAAEuH,YAAe,EAASvH,EACzCiR,QAAStT,GAEb,CACA,MAAM2S,GAAK,EAAG3f,SAAUyM,KAAwBtO,EAAAA,IAAGqpB,GAAI,CAAEnO,QAAqB,iBAAL5M,EAAgBA,EAAI,KAAO8R,GAAK,CACvGoc,YAAY,GACXttB,GAAI,CAACZ,EAAGvP,EAAG0P,KACZ,IAAIL,EACJ,IAAKE,EAAEoJ,OAAOoB,SACZ,OAAO,EACT,MAAMvK,EAAIxP,EAAEuP,EAAEoJ,OAAOoB,UACrB,QAAOvK,KAA2B,OAArBH,EAAIG,EAAEkuB,iBAAsB,EAASruB,EAAEQ,KAAKP,GAAMA,EAAEwN,gBAAe8C,SAASlQ,MAAO,EAAO,EACtGiuB,GAAMpuB,IACP,MAAMvP,EAAI,GACV,IAAI0P,EAAI,GAAIF,GAAI,EAChB,IAAK,IAAIH,EAAI,EAAGA,EAAIE,EAAEmK,OAAQrK,IAAK,CACjC,MAAMC,EAAIC,EAAEF,GACN,MAANC,EAAYE,GAAKxP,EAAE2oB,KAAKjZ,GAAIA,EAAIJ,IAAME,GAAI,EAAIE,EAAIJ,GAAW,MAANA,GAAaI,GAAKJ,EAAGtP,EAAE2oB,KAAKjZ,GAAIA,EAAI,GAAIF,GAAI,GAAMA,EAAIE,GAAKJ,EAAItP,EAAE2oB,KAAKrZ,EACjI,CACE,MAAa,KAANI,GAAY1P,EAAE2oB,KAAKjZ,GAAI1P,CAAC,EACyHH,GAAM0P,IAC9J,MAAQklB,QAASz0B,GAAMwG,MAAOoV,SAAUlM,EAAG0X,gBAAiB5X,GAAMsD,MAAOtI,SAAU6E,GAAMjQ,MAAOiW,qBAAsB/F,GAAMhP,KAAMmP,EAAI,IAAKF,KAAM8R,IAAMtR,EAAIN,EAAEmuB,cAAgBnuB,EAAEmuB,cAAgBnb,GAC/LjP,EAAAA,WAAE,KACA,IAAI1D,EAAGxN,EACP,GAAIgN,EAAG,CACL,MAAMmD,EAAI,IAAI/C,GACd,IAAK,IAAIwC,EAAI,EAAGA,EAAIO,EAAEiH,QAAUxH,IAA6B,OAAtBpC,EAAIT,EAAEvL,kBAAuB,EAASgM,EAAE/L,aAAe,IAAKmO,IAAK,CACtG,MAAMU,EAAIH,EAAEP,GACI,OAAf5P,EAAIsQ,EAAEoO,OAAiB1e,EAAEsd,SAAS,qCAAuChN,EAAEwJ,eAAiBrM,EACrG,CACMP,EAAEiD,EACR,IACK,CAACnD,IACJ,MAAMzE,EAAI4N,MAAO3I,IACf,IAAI2C,EACJ,MAAMnQ,EAA4B,OAAvBmQ,EAAI3C,EAAE+I,KAAKoD,cAAmB,EAASxJ,EAAEoK,OAAOC,cAC1B,iBAA1BhN,EAAE+I,KAAKoD,QAAQE,SAAuBhM,GAAEL,EAAG9P,IAAKsC,KAAkB,sCAAXwN,EAAEjR,OAAiDiR,EAAE+I,KAAK8N,sBAAwBgX,IAAK7tB,EAAE+I,KAAKoD,QAAQG,eAAiBrM,EAAGD,EAAE+I,KAAKoD,QAAQ+E,OAASlR,EAAE+I,KAAKoD,QAAQ+E,KAAO,IAAKlR,EAAE+I,KAAKoD,QAAQ+E,KAAK2H,KAAK,mCAAmC,EAIzS9U,GAAEzB,EAAEgF,mBAAoBvM,GAAIgJ,GAAEzB,EAAEqF,qBAAsB5M,GAAIgJ,GAAEzB,EAAEoF,qBAAsB3M,GAAIgJ,GAAEzB,EAAEkF,8BAA+BzM,GAAIgJ,GAAEzB,EAAE2E,mBAH5H0B,MAAO3I,IACZK,GAAEL,EAAG9P,IAAK,SAAW8P,EAAE+I,KAAK0N,WAlBxB,CAAChX,UAAa3M,OAAOggB,UAAY,KAAM,IAAIA,WAAYC,gBAAgBtT,EAAG,aAAauT,KAAKK,aAAe,GAAK5T,EAAE+Q,QAAQ,kBAAmB,IAkBxGf,CAAGzP,EAAE+I,KAAK0N,YAAY,IAGjE,MAAM7V,EAAI,CACR8S,KAAM,8BAER,OAAY,MAAL/T,GAAaA,EAAEguB,aAAe/sB,EAAElG,SAAW,CAChDzC,MAAO,CACLC,qBAAqB,EACrBK,uBAAuB,EACvBH,+BAA+B,EAC/BE,uBAAuB,EACvBM,oBAAoB,KAEpBgI,CAAC,ECzsBP,MAAMmtB,GAAK,0DAA2DC,GAAK,2DAA4DC,GAAK,CAAE,EAC9I,SAASC,GAAGh+B,EAAGqP,GACb,OAAQ0uB,GAAGj3B,IAAMg3B,GAAKD,IAAI9R,KAAK/rB,EACjC,CACA,MAAMi+B,GAAK,eAIX,SAASC,GAAGl+B,GACV,MAA6B,KAAtBA,EAAEsgB,QAAQ2d,GAAI,GACvB,CACA,MAAM/c,GAOJ,WAAA4Y,CAAYzqB,EAAGK,EAAGF,GAChBspB,KAAKqF,SAAW9uB,EAAGypB,KAAKsF,OAAS1uB,EAAGF,IAAMspB,KAAKuF,MAAQ7uB,EAC3D,EAKA,SAAS6P,GAAGrf,EAAGqP,GACb,MAAMK,EAAI,GAAIF,EAAI,CAAE,EACpB,IAAIM,GAAM,EACV,OAASA,EAAI9P,EAAE0Z,QACbgG,OAAOiZ,OAAOjpB,EAAG1P,EAAE8P,GAAGquB,UAAWze,OAAOiZ,OAAOnpB,EAAGxP,EAAE8P,GAAGsuB,QACzD,OAAO,IAAIld,GAAGxR,EAAGF,EAAGH,EACtB,CACA,SAASivB,GAAGt+B,GACV,OAAOA,EAAEqjB,aACX,CAZAnC,GAAG0C,UAAUua,SAAW,CAAE,EAC1Bjd,GAAG0C,UAAUwa,OAAS,CAAE,EACxBld,GAAG0C,UAAUya,MAAQ,KAWrB,MAAMp9B,GAMJ,WAAA64B,CAAYzqB,EAAGK,GACbopB,KAAKqF,SAAW9uB,EAAGypB,KAAKE,UAAYtpB,CACxC,EAEAzO,GAAG2iB,UAAUya,MAAQ,KACrBp9B,GAAG2iB,UAAU2a,SAAU,EACvBt9B,GAAG2iB,UAAU4a,YAAa,EAC1Bv9B,GAAG2iB,UAAU6a,mBAAoB,EACjCx9B,GAAG2iB,UAAU8a,QAAS,EACtBz9B,GAAG2iB,UAAU+a,gBAAiB,EAC9B19B,GAAG2iB,UAAUgb,gBAAiB,EAC9B39B,GAAG2iB,UAAUib,uBAAwB,EACrC59B,GAAG2iB,UAAUkb,iBAAkB,EAC/B79B,GAAG2iB,UAAUmb,SAAU,EACvB,IAAIC,GAAK,EACT,MAAMt0B,GAAIgoB,KAAMviB,GAAIuiB,KAAMzC,GAAKyC,KAAMtf,GAAIsf,KAAMhf,GAAIgf,KAAM7yB,GAAK6yB,KAAMtzB,GAAIszB,KACxE,SAASA,KACP,OAAO,KAAOsM,EAChB,CACA,MAAMC,GAAqBvf,OAAO2X,OAAuB3X,OAAO4Z,eAAe,CAC7E4F,UAAW,KACXX,QAAS7zB,GACT8zB,WAAYruB,GACZ0uB,sBAAuBz/B,GACvBu/B,eAAgB9+B,GAChB6+B,OAAQtrB,GACRqrB,kBAAmBxO,GACnB2O,eAAgBlrB,IACfyrB,OAAOC,YAAa,CAAEr0B,MAAO,YAAc5J,GAAKue,OAAOC,KAAKsf,IAC/D,MAAMI,WAAWp+B,GAQf,WAAA64B,CAAYzqB,EAAGK,EAAGF,EAAGM,GACnB,IAAIxN,GAAM,EACV,GAAIg9B,MAAMjwB,EAAGK,GAAI6vB,GAAGzG,KAAM,QAAShpB,GAAgB,iBAALN,EAC5C,OAASlN,EAAInB,GAAGuY,QAAU,CACxB,MAAM7O,EAAI1J,GAAGmB,GACbi9B,GAAGzG,KAAM33B,GAAGmB,IAAKkN,EAAIyvB,GAAGp0B,MAAQo0B,GAAGp0B,GAC3C,CACA,EAGA,SAAS00B,GAAGv/B,EAAGqP,EAAGK,GAChBA,IAAM1P,EAAEqP,GAAKK,EACf,CAHA2vB,GAAGzb,UAAUmb,SAAU,EAIvB,MAAMS,GAAK,CAAE,EAAC3b,eACd,SAASlC,GAAG3hB,GACV,MAAMqP,EAAI,GAAIK,EAAI,CAAE,EACpB,IAAIF,EACJ,IAAKA,KAAKxP,EAAEy/B,WACV,GAAID,GAAG1b,KAAK9jB,EAAEy/B,WAAYjwB,GAAI,CAC5B,MAAMM,EAAI9P,EAAEy/B,WAAWjwB,GAAIlN,EAAI,IAAI+8B,GACjC7vB,EACAxP,EAAEqtB,UAAUrtB,EAAEsjB,YAAc,CAAA,EAAI9T,GAChCM,EACA9P,EAAEq+B,OAEJr+B,EAAE8+B,iBAAmB9+B,EAAE8+B,gBAAgBlf,SAASpQ,KAAOlN,EAAEw8B,iBAAkB,GAAKzvB,EAAEG,GAAKlN,EAAGoN,EAAE4uB,GAAG9uB,IAAMA,EAAGE,EAAE4uB,GAAGh8B,EAAE02B,YAAcxpB,CACnI,CACE,OAAO,IAAI0R,GAAG7R,EAAGK,EAAG1P,EAAEq+B,MACxB,CACA,MAAMlvB,GAAKwS,GAAG,CACZ0c,MAAO,QACPhR,UAAS,CAACrtB,EAAGqP,IACJ,SAAWA,EAAEqS,MAAM,GAAG2B,cAE/Boc,WAAY,CACVC,aAAc,KACdC,aAAc,KACdC,UAAW,KACXC,UAAW,KACXC,UAAW,KACXC,WAAY,KACZC,UAAW,QAEX/b,GAAKtC,GAAG,CACV0c,MAAO,MACPhR,UAAS,CAACrtB,EAAGqP,IACJ,OAASA,EAAEqS,MAAM,GAAG2B,cAE7Boc,WAAY,CAAEQ,QAAS,KAAMC,QAAS,KAAMC,SAAU,QAExD,SAASrgB,GAAG9f,EAAGqP,GACb,OAAOA,KAAKrP,EAAIA,EAAEqP,GAAKA,CACzB,CACA,SAAS2c,GAAGhsB,EAAGqP,GACb,OAAOyQ,GAAG9f,EAAGqP,EAAEgU,cACjB,CACA,MAAMwC,GAAKlE,GAAG,CACZ0c,MAAO,QACP/a,WAAY,CAAE8c,WAAY,eAC1B/S,UAAWrB,GACXyT,WAAY,CAAE9+B,MAAO,KAAM0/B,WAAY,QACrCzhB,GAAK+C,GAAG,CACV0L,UAAS,CAACrtB,EAAGqP,IACE,SAANA,EAAeA,EAAI,QAAUA,EAAEqS,MAAM,GAAG2B,cAEjDoc,WAAY,CACVa,qBAAsB,KACtBC,WAAYpwB,GACZqwB,iBAAkB,KAClBC,SAAUtwB,GACVuwB,YAAavwB,GACbwwB,aAAcvtB,GACdwtB,aAAcxtB,GACdytB,YAAaztB,GACb0tB,aAAcptB,GACdqtB,YAAa,KACbC,gBAAiBttB,GACjButB,YAAa,KACbC,aAAc/wB,GACdgxB,eAAgBztB,GAChB0tB,iBAAkB,KAClBC,aAAclxB,GACdmxB,WAAY5tB,GACZ6tB,YAAapxB,GACbqxB,aAAc,KACdC,WAAYtxB,GACZuxB,YAAa,KACbC,iBAAkB,KAClBn4B,UAAW,KACXo4B,eAAgBluB,GAChBmuB,UAAWzuB,GACX0uB,SAAU,KACVC,UAAW5xB,GACX6xB,cAAe7xB,GACf8xB,oBAAqB9xB,GACrB+xB,gBAAiB,KACjBC,SAAUzuB,GACV0uB,gBAAiB,KACjBC,aAAcjvB,GACdkvB,YAAanyB,GACboyB,aAAcpyB,GACdqyB,aAAc,KACdC,aAActyB,GACduyB,oBAAqBhvB,GACrBivB,aAAcvvB,GACdwvB,aAAcxvB,GACdyvB,YAAazvB,GACb0vB,aAAc3yB,GACd4yB,YAAa3vB,GACb4vB,SAAU,KACVC,aAAc7vB,GACd8vB,aAAc9vB,GACd+vB,aAAc/vB,GACdgwB,cAAe,KACf7W,KAAM,QAEN8W,GAAK1hB,GAAG,CACV0c,MAAO,OACP/a,WAAY,CACVggB,cAAe,iBACfC,UAAW,QACXC,QAAS,MACTC,UAAW,cAEbpW,UAAWrB,GACX8S,gBAAiB,CAAC,UAAW,WAAY,QAAS,YAClDW,WAAY,CAEViE,KAAM,KACNp8B,OAAQzH,GACR8jC,cAAejwB,GACfkwB,UAAWlwB,GACXmwB,OAAQ,KACRC,MAAO,KACPC,gBAAiBr5B,GACjBs5B,oBAAqBt5B,GACrBu5B,eAAgBv5B,GAChBojB,IAAK,KACLoW,GAAI,KACJzrB,MAAO/N,GACPy5B,eAAgB,KAChBC,aAAc1wB,GACd2wB,UAAW35B,GACX45B,SAAU55B,GACV65B,SAAU7wB,GACV8wB,QAAS,KACTC,QAAS,KACTC,QAASh6B,GACT4sB,KAAM,KACN1nB,UAAW8D,GACXixB,KAAMvxB,GACNwxB,QAAS,KACTzoB,QAAS,KACT0oB,gBAAiB10B,GACjB4d,SAAUrjB,GACVo6B,aAAcpxB,GACdqxB,OAAQ3xB,GAAIvT,GACZmlC,YAAa,KACbnsB,KAAM,KACNosB,SAAU,KACVC,SAAU,KACVzN,QAAS/sB,GACTy6B,MAAOz6B,GACPgtB,IAAK,KACL0N,QAAS,KACThiC,SAAUsH,GACV26B,SAAUpV,GACVqV,UAAWn1B,GACXo1B,QAAS,KACTC,aAAc,KACdC,cAAe,KACfC,KAAM,KACNC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,eAAgBp7B,GAChBq7B,WAAY,KACZC,QAAStyB,GACTzM,OAAQmM,GACR6yB,OAAQv7B,GACRw7B,KAAM9yB,GACNukB,KAAM,KACNwO,SAAU,KACVC,QAAS1yB,GACT2yB,UAAW3yB,GACXkN,GAAI,KACJ0lB,WAAY,KACZC,YAAa,KACbC,MAAO97B,GACP+7B,UAAW,KACXC,UAAW,KACXC,GAAI,KACJC,MAAOl8B,GACPm8B,OAAQ,KACRC,SAAUpzB,GACVqzB,QAASrzB,GACTszB,UAAWt8B,GACXu8B,SAAUvzB,GACVkkB,KAAM,KACNC,MAAO,KACP7R,KAAM,KACNriB,SAAU,KACV+D,KAAM,KACNowB,QAAS,KACTC,KAAMrtB,GACNw8B,IAAK9zB,GACL+zB,SAAU,KACVvpB,IAAK,KACLwpB,UAAWh0B,GACX4kB,MAAO,KACPqP,OAAQ,KACR9pB,IAAK,KACL+pB,UAAWl0B,GACX/L,SAAUqD,GACVutB,MAAOvtB,GACP8Y,KAAM,KACN+jB,MAAO,KACPC,SAAU98B,GACV+8B,WAAY/8B,GACZg9B,QAAS,KACTC,aAAc,KACdC,WAAY,KACZC,cAAe,KACfC,cAAe,KACfC,eAAgB,KAChBC,eAAgB,KAChBnb,OAAQ,KACRob,SAAU,KACVC,UAAW,KACXC,iBAAkB,KAClBzb,SAAU,KACV/pB,QAAS,KACTylC,QAAS,KACTC,cAAe,KACfC,cAAe,KACfC,kBAAmB,KACnBC,OAAQ,KACRC,YAAa,KACbC,MAAO,KACPC,WAAY,KACZC,OAAQ,KACRC,UAAW,KACXC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,OAAQ,KACRC,iBAAkB,KAClBC,UAAW,KACXC,QAAS,KACTC,QAAS,KACT3c,QAAS,KACT4c,WAAY,KACZC,aAAc,KACdC,QAAS,KACTC,UAAW,KACXhd,UAAW,KACXid,WAAY,KACZC,QAAS,KACTC,iBAAkB,KAClBC,OAAQ,KACRC,aAAc,KACdC,iBAAkB,KAClBC,UAAW,KACXC,YAAa,KACbC,UAAW,KACXC,eAAgB,KAChB5uB,YAAa,KACbF,aAAc,KACdC,aAAc,KACd8uB,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,WAAY,KACZC,WAAY,KACZC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,aAAc,KACdC,mBAAoB,KACpBC,QAAS,KACTC,SAAU,KACVC,SAAU,KACVC,YAAa,KACbC,0BAA2B,KAC3BC,SAAU,KACVC,UAAW,KACXC,SAAU,KACVC,aAAc,KACdC,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,UAAW,KACXC,aAAc,KACdC,SAAU,KACVC,qBAAsB,KACtBC,SAAU,KACVC,eAAgB,KAChBC,UAAW,KACXC,QAAS,KACT5pC,KAAM6H,GACNgiC,QAASt5B,GACTu5B,QAAS,KACTC,KAAMl5B,GACN+Y,YAAa,KACbogB,YAAaniC,GACboiC,QAAS,KACTC,cAAe,KACfC,oBAAqB,KACrB9U,OAAQ,KACR+U,QAAS,KACTC,SAAUxiC,GACVyiC,eAAgB,KAChBhV,IAAKzkB,GACL05B,SAAU1iC,GACV2iC,SAAU3iC,GACVsiB,KAAM5Z,GACNk6B,QAASl6B,GACTm6B,QAAS75B,GACT2kB,MAAO,KACPmV,OAAQ9iC,GACR+iC,SAAU/iC,GACVgjC,SAAUhjC,GACVijC,mBAAoBjjC,GACpBkjC,yBAA0BljC,GAC1BmjC,eAAgB,KAChBC,MAAO,KACPxwB,KAAMlK,GACNklB,MAAO,KACPyV,KAAM,KACNxV,KAAMnlB,GACN46B,WAAY79B,GACZ0d,IAAK,KACLogB,OAAQ,KACRC,QAAS,KACTC,OAAQ,KACR1oB,MAAOrS,GACPg7B,KAAM,KACNzvC,MAAO,KACPyxB,SAAUhd,GACVkZ,OAAQ,KACRjqB,MAAO,KACPgsC,UAAW,KACXxvC,KAAM,KACNyvC,cAAe5jC,GACf6jC,OAAQ,KACRxjC,MAAOoF,GACPnJ,MAAOoM,GACPo7B,KAAM,KACNC,mBAAoB,KAGpBC,MAAO,KAEPC,MAAO,KAEPC,QAASl7B,GAETm7B,KAAM,KAEN1nC,WAAY,KAEZ2nC,QAAS,KAETC,OAAQ37B,GAERkI,YAAa,KAEb0zB,aAAc57B,GAEd67B,YAAa,KAEbC,YAAa,KAEbC,KAAM,KAENC,QAAS,KAETC,QAAS,KAETnkB,MAAO,KAEPokB,KAAM,KAENC,SAAU,KAEVC,SAAU,KAEVn0B,MAAO,KAEPo0B,QAAS/kC,GAETglC,QAAShlC,GAET3C,MAAO,KAEP4nC,KAAM,KAENC,MAAO,KAEPC,YAAa,KAEbC,OAAQ18B,GAER28B,WAAY38B,GAEZ48B,KAAM,KAENC,SAAU,KAEVC,OAAQ,KAERC,aAAc/8B,GAEdg9B,YAAah9B,GAEbi9B,SAAU3lC,GAEV4lC,OAAQ5lC,GAER6lC,QAAS7lC,GAETyyB,OAAQzyB,GAER8lC,OAAQ,KAERC,QAAS,KAETC,OAAQ,KAERC,IAAK,KAELC,YAAax9B,GAEby9B,MAAO,KAEPC,OAAQ,KAERC,UAAW5gC,GAEX6gC,QAAS,KAETva,QAAS,KAETx0B,KAAM,KAENgvC,UAAW79B,GAEX89B,UAAW,KAEX9f,QAAS,KAET+f,OAAQ,KAERC,MAAO,KAEPC,OAAQj+B,GAGRk+B,kBAAmB,KACnBC,YAAa,KACbC,SAAU,KACVC,wBAAyB/mC,GACzBgnC,sBAAuBhnC,GACvBinC,OAAQ,KACRxT,SAAU,KACVnW,QAAS5U,GACTw+B,SAAU,KACVC,aAAc,QAEdC,GAAKnwB,GAAG,CACV0c,MAAO,MACP/a,WAAY,CACVyuB,aAAc,gBACdC,kBAAmB,qBACnBC,WAAY,cACZC,cAAe,iBACfC,UAAW,aACXviC,UAAW,QACXwiC,SAAU,YACVC,SAAU,YACVC,mBAAoB,sBACpBC,0BAA2B,8BAC3BC,aAAc,gBACdC,eAAgB,kBAChBzN,YAAa,cACb0N,SAAU,WACVC,iBAAkB,oBAClBC,iBAAkB,oBAClBC,YAAa,eACbxyC,SAAU,YACVyyC,WAAY,cACZC,aAAc,gBACdvxC,WAAY,cACZiB,SAAU,YACVuwC,eAAgB,mBAChBC,YAAa,eACbC,UAAW,aACXC,YAAa,eACbzwC,WAAY,cACZ0wC,UAAW,aACXC,2BAA4B,+BAC5BC,yBAA0B,6BAC1BnN,SAAU,WACVoN,UAAW,cACXC,aAAc,iBACdC,aAAc,iBACdC,eAAgB,kBAChBC,cAAe,iBACfC,cAAe,iBACfC,UAAW,aACXC,UAAW,aACXC,YAAa,eACbC,QAAS,WACTC,YAAa,gBACbC,aAAc,iBACdC,QAAS,WACTC,QAAS,WACTC,QAAS,WACTC,SAAU,YACVC,MAAO,SACPC,UAAW,cACXC,WAAY,eACZ/M,QAAS,UACTgN,WAAY,aACZ/M,aAAc,eACdG,cAAe,gBACf6M,QAAS,UACT1M,SAAU,WACVC,UAAW,YACXC,iBAAkB,mBAClBzb,SAAU,WACV/pB,QAAS,UACTylC,QAAS,UACTI,OAAQ,SACRC,YAAa,cACbC,MAAO,QACPC,WAAY,aACZC,OAAQ,SACRC,UAAW,YACXC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,OAAQ,SACRC,iBAAkB,mBAClBC,UAAW,YACXuL,MAAO,QACPtL,QAAS,UACTC,QAAS,UACT3c,QAAS,UACTioB,UAAW,YACXC,WAAY,aACZrL,aAAc,eACdC,QAAS,UACTC,UAAW,YACXhd,UAAW,YACXid,WAAY,aACZC,QAAS,UACTE,OAAQ,SACRC,aAAc,eACdC,iBAAkB,mBAClBE,YAAa,cACbC,UAAW,YACX3uB,YAAa,cACbF,aAAc,eACdC,aAAc,eACd8uB,YAAa,cACbC,WAAY,aACZC,YAAa,cACbC,UAAW,YACXsK,aAAc,eACdrK,UAAW,YACXC,SAAU,WACVC,WAAY,aACZC,WAAY,aACZC,QAAS,UACTC,QAAS,UACTC,OAAQ,SACRC,UAAW,YACXC,WAAY,aACZC,WAAY,aACZC,aAAc,eACd4J,SAAU,WACV1J,QAAS,UACTC,SAAU,WACVC,SAAU,WACVG,SAAU,WACVC,UAAW,YACXC,SAAU,WACVoJ,OAAQ,SACRlJ,UAAW,YACXC,UAAW,YACXC,SAAU,WACVC,UAAW,YACXC,aAAc,eACdC,SAAU,WACVE,SAAU,WACVC,eAAgB,iBAChBC,UAAW,YACX0I,OAAQ,SACRC,iBAAkB,oBAClBC,kBAAmB,qBACnBC,WAAY,cACZC,QAAS,WACTC,cAAe,iBACfpI,eAAgB,iBAChBqI,gBAAiB,mBACjBC,eAAgB,kBAChBC,UAAW,aACXC,YAAa,eACbC,sBAAuB,yBACvBC,uBAAwB,0BACxBC,gBAAiB,mBACjBC,iBAAkB,oBAClBC,cAAe,iBACfC,eAAgB,kBAChBC,iBAAkB,oBAClBC,cAAe,iBACft1C,YAAa,eACbuvB,SAAU,WACVgmB,WAAY,cACZC,eAAgB,kBAChBC,cAAe,iBACfC,gBAAiB,mBACjBC,OAAQ,SACRC,kBAAmB,qBACnBC,mBAAoB,sBACpBC,YAAa,eACbC,aAAc,gBACdC,WAAY,eACZC,YAAa,eACbC,SAAU,YACVC,aAAc,gBACdC,cAAe,iBACfC,aAAc,gBACdC,SAAU,aACVC,YAAa,gBACbC,YAAa,gBACbC,YAAa,eACbC,YAAa,eACbC,QAAS,WAETC,cAAe,gBACfC,cAAe,iBAEjBrqB,UAAWvN,GACX2f,WAAY,CACVkY,MAAOv4C,GACP2yC,aAAc3+B,GACdwkC,WAAY,KACZC,SAAU,KACV7F,kBAAmB,KACnB8F,WAAY1kC,GACZ2kC,UAAW3kC,GACX6+B,WAAY,KACZ+F,OAAQ5kC,GACR6kC,cAAe,KACfC,cAAe,KACfC,QAAS/kC,GACTglC,UAAW,KACXlG,cAAe,KACfmG,cAAe,KACfC,YAAa,KACbC,KAAM,KACNC,MAAO,KACPC,KAAMrlC,GACNslC,GAAI,KACJC,SAAU,KACVxG,UAAW/+B,GACXxD,UAAW8D,GACXklC,KAAM,KACNxG,SAAU,KACVyG,cAAe,KACfxG,SAAU,KACVh3B,MAAO,KACPi3B,mBAAoB,KACpBC,0BAA2B,KAC3BC,aAAc,KACdC,eAAgB,KAChBt2B,QAAS,KACT28B,kBAAmB,KACnBC,iBAAkB,KAClB/T,YAAa,KACbziC,OAAQ,KACRy2C,GAAI,KACJC,GAAI,KACJ94C,EAAG,KACHuyC,SAAU,KACVwG,cAAe,KACfC,QAAS/lC,GACTgmC,gBAAiBhmC,GACjBimC,UAAW,KACX3yC,QAAS,KACT4yC,IAAK,KACLC,QAASnmC,GACTu/B,iBAAkB,KAClBtN,SAAU36B,GACV8uC,GAAI,KACJC,GAAI,KACJC,SAAU,KACVC,SAAU,KACVC,UAAWxmC,GACXw/B,iBAAkB,KAClBiH,IAAK,KACL9xC,MAAO,KACP+xC,SAAU1mC,GACV2mC,0BAA2B,KAC3B35C,KAAM,KACNyyC,YAAaz/B,GACb/S,SAAU,KACVqjB,OAAQ,KACRs2B,UAAW,KACXC,YAAa,KACbnH,WAAY,KACZC,aAAc,KACdmH,UAAW,KACXC,eAAgB,KAChB34C,WAAY,KACZiB,SAAU,KACVuwC,eAAgB,KAChBC,YAAa,KACbC,UAAW,KACXC,YAAa,KACbzwC,WAAY,KACZ03C,OAAQ,KACRC,GAAI,KACJt8B,KAAM,KACNu8B,GAAI,KACJC,GAAI,KACJC,GAAI36C,GACJ46C,GAAI56C,GACJuzC,UAAWvzC,GACXwzC,2BAA4B,KAC5BC,yBAA0B,KAC1BoH,SAAU,KACVC,kBAAmB,KACnBC,cAAe,KACfC,QAAS,KACTC,QAAS1nC,GACT2nC,kBAAmB,KACnBC,WAAY,KACZ/zC,OAAQ,KACR0wB,KAAM,KACNwO,SAAU,KACVoN,UAAWngC,GACXogC,aAAcpgC,GACdqgC,aAAcrgC,GACdwN,GAAI,KACJq6B,YAAa7nC,GACbsgC,eAAgB,KAChBwH,kBAAmB,KACnBC,GAAI,KACJC,IAAK,KACLC,UAAWjoC,GACXA,KACAkoC,GAAIloC,GACJmoC,GAAInoC,GACJooC,GAAIpoC,GACJqoC,GAAIroC,GACJsoC,aAAct8C,GACdu8C,iBAAkB,KAClBC,UAAW,KAEXC,WAAY,KAEZC,SAAU,KAEVC,QAAS,KACT/1B,KAAM,KACNg2B,aAAc,KACdrI,cAAe,KACfC,cAAe,KACfqI,kBAAmB7oC,GACnB8oC,MAAO,KACPrI,UAAW,KACXC,UAAW,KACXC,YAAa,KACboI,aAAc,KACdC,YAAa,KACbC,YAAa,KACbC,KAAM,KACNC,iBAAkB,KAClBC,UAAW,KACXC,aAAc,KACd7+B,IAAK,KACLoa,MAAO,KACP0kB,uBAAwB,KACxBC,sBAAuB,KACvBC,UAAWxpC,GACXypC,UAAW,KACXxV,OAAQ,KACR9pB,IAAK,KACLvb,KAAM,KACNwhB,KAAM,KACNwwB,QAAS,KACTC,YAAa,KACbC,aAAc,KACdC,QAAS,KACTC,QAAS,KACTC,QAAS,KACTC,SAAU,KACVC,MAAO,KACPC,UAAW,KACXC,WAAY,KACZqI,WAAY,KACZC,SAAU,KACVC,OAAQ,KACRtV,QAAS,KACTgN,WAAY,KACZ/M,aAAc,KACdG,cAAe,KACf6M,QAAS,KACT1M,SAAU,KACVC,UAAW,KACXC,iBAAkB,KAClBzb,SAAU,KACV/pB,QAAS,KACTylC,QAAS,KACTI,OAAQ,KACRC,YAAa,KACbC,MAAO,KACPC,WAAY,KACZC,OAAQ,KACRC,UAAW,KACXC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,OAAQ,KACRC,iBAAkB,KAClBC,UAAW,KACXuL,MAAO,KACPtL,QAAS,KACTC,QAAS,KACT3c,QAAS,KACTioB,UAAW,KACXC,WAAY,KACZrL,aAAc,KACdC,QAAS,KACTC,UAAW,KACXhd,UAAW,KACXid,WAAY,KACZC,QAAS,KACTE,OAAQ,KACRC,aAAc,KACdC,iBAAkB,KAClBE,YAAa,KACbC,UAAW,KACX3uB,YAAa,KACbF,aAAc,KACdC,aAAc,KACd8uB,YAAa,KACbC,WAAY,KACZC,YAAa,KACbC,UAAW,KACXsK,aAAc,KACdrK,UAAW,KACXC,SAAU,KACVC,WAAY,KACZC,WAAY,KACZC,QAAS,KACTC,QAAS,KACTC,OAAQ,KACRC,UAAW,KACXC,WAAY,KACZC,WAAY,KACZC,aAAc,KACd4J,SAAU,KACV1J,QAAS,KACTC,SAAU,KACVC,SAAU,KACVG,SAAU,KACVC,UAAW,KACXC,SAAU,KACVoJ,OAAQ,KACRlJ,UAAW,KACXC,UAAW,KACXC,SAAU,KACVC,UAAW,KACXC,aAAc,KACdC,SAAU,KACVE,SAAU,KACVC,eAAgB,KAChBC,UAAW,KACX0I,OAAQ,KACR+H,QAAS,KACTC,SAAU,KACVC,MAAO,KACPC,OAAQ,KACRC,YAAa,KACbC,OAAQ,KACRC,SAAU,KACVC,QAAS,KACTrI,iBAAkB/hC,GAClBgiC,kBAAmBhiC,GACnBiiC,WAAY,KACZC,QAAS,KACTp4B,KAAM,KACNugC,WAAYrqC,GACZsqC,oBAAqB,KACrBC,iBAAkB,KAClBC,aAAc,KACdC,MAAO,KACPjR,KAAMl5B,GACNoqC,MAAO,KACPrG,cAAe,KACflC,cAAe,KACfwI,OAAQ,KACRC,UAAW5qC,GACX6qC,UAAW7qC,GACX8qC,UAAW9qC,GACX+qC,cAAe,KACfC,oBAAqB,KACrBC,eAAgB,KAChBC,UAAW,KACXngB,SAAU/+B,GACVoQ,EAAG,KACH+uC,OAAQ,KACRpR,eAAgB,KAChBqR,KAAM,KACNC,KAAM,KACNtmB,IAAK/4B,GACLuxC,IAAKvxC,GACLo2C,gBAAiB,KACjBkJ,YAAa,KACbC,UAAW,KACXC,mBAAoBx/C,GACpBy/C,iBAAkBz/C,GAClB0/C,cAAe1/C,GACf2/C,gBAAiB3/C,GACjB4/C,SAAU,KACVC,QAAS,KACT9wB,OAAQ,KACR+wB,OAAQ,KACRC,GAAI,KACJC,GAAI,KACJC,MAAO,KACPC,KAAM,KACN7J,eAAgB,KAChB8J,KAAM,KACNC,MAAO,KACPC,aAAc,KACdC,iBAAkBtsC,GAClBusC,iBAAkBvsC,GAClBwsC,aAAc,KACdC,QAAS,KACTC,YAAa,KACbC,aAAc,KACdC,MAAO,KACPC,MAAO,KACPC,YAAa,KACbxK,UAAW,KACXC,YAAa,KACbC,sBAAuBxiC,GACvByiC,uBAAwBziC,GACxB+sC,OAAQ,KACRnxB,OAAQ,KACR8mB,gBAAiB12C,GACjB22C,iBAAkB,KAClBC,cAAe,KACfC,eAAgB,KAChBC,iBAAkB9iC,GAClB+iC,cAAe/iC,GACfvS,YAAa,KACblC,MAAO,KACPyhD,aAAchtC,GACditC,aAAc,KACdC,oBAAqB,KACrBC,WAAY,KACZC,cAAe,KACfC,qBAAsB,KACtBC,eAAgBthD,GAChBgxB,SAAUhd,GACVutC,YAAa,KACbr0B,OAAQ,KACRs0B,QAASxtC,GACTytC,QAASztC,GACTgjC,WAAY,KACZC,eAAgB,KAChBC,cAAe,KACfwK,WAAY,KACZpJ,cAAe,KACfr1C,MAAO,KACP0+C,kBAAmB,KACnBliD,KAAM,KACN23C,OAAQp3C,GACRswB,GAAI,KACJrC,UAAW,KACXkpB,gBAAiB,KACjByK,GAAI,KACJC,GAAI,KACJxK,kBAAmBrjC,GACnBsjC,mBAAoBtjC,GACpB8tC,QAAS,KACTvK,YAAa,KACbC,aAAc,KACdC,WAAYzjC,GACZqc,OAAQ,KACRqnB,YAAa1jC,GACb6jC,cAAe7jC,GACf8jC,aAAc,KACdH,SAAU3jC,GACV4jC,aAAc5jC,GACdge,QAAS,KACT+lB,SAAU/jC,GACVgkC,YAAahkC,GACbikC,YAAajkC,GACblT,QAAS,KACTihD,WAAY,KACZC,WAAY,KACZp6C,MAAO,KACPq6C,OAAQ,KACR/J,YAAa,KACbC,YAAa,KACb99B,EAAG,KACH6nC,GAAI,KACJC,GAAI,KACJC,iBAAkB,KAClBhK,QAASpkC,GACTd,EAAG,KACHmvC,GAAI,KACJC,GAAI,KACJC,iBAAkB,KAClBluC,EAAG,KACHmuC,WAAY,QAEZC,GAAK,kBAAmBC,GAAK,UAAWC,GAAK,SAqBjD,SAASC,GAAGhiD,GACV,MAAO,IAAMA,EAAEqjB,aACjB,CACA,SAAS4+B,GAAGjiD,GACV,OAAOA,EAAEkiD,OAAO,GAAGplC,aACrB,CACA,MAAMqlC,GAAK,CACT9S,QAAS,UACTqD,SAAU,WACV7L,OAAQ,SACRiP,gBAAiB,kBACjBC,iBAAkB,mBAClBC,cAAe,gBACfC,eAAgB,iBAChBC,iBAAkB,mBAClBM,OAAQ,SACR9W,aAAc,eACdC,aAAc,eACdC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,WAAY,aACZC,UAAW,YACXK,WAAY,cACX+hB,GAAK/iC,GAAG,CAAC4E,GAAI9U,GAAI0W,GAAIjH,GAAIykB,IAAK,QAASgf,GAAKhjC,GAAG,CAAC4E,GAAI9U,GAAI0W,GAAIjH,GAAIkzB,IAAK,OAIxE,SAAS/yB,GAAG/e,GACV,OAAOA,GAAKA,EAAEk5B,YAAcxZ,OAAOkE,UAAUC,eAAeC,KAAK9jB,EAAG,WAAaA,EAAEy3B,QAAUz3B,CAC/F,CACA,IAAasiD,GAAIC,GA0FbC,GA1FAl4B,GAAK,CAAA,EAiHT,IAAIm4B,GAtBJ,WACE,GAAID,GAAI,OAAOl4B,GACfk4B,GAAK,EACL,IAAIxiD,EAAIsqB,IAAMA,GAAGo4B,iBAAmB,SAASlzC,GAC3C,OAAOA,GAAKA,EAAE0pB,WAAa1pB,EAAI,CAAEioB,QAASjoB,EAC3C,EACDkQ,OAAO4Z,eAAehP,GAAI,aAAc,CAAEvf,OAAO,IAAOuf,GAAGmN,QAE3D,SAAWjoB,EAAGM,GACZ,IAAIxN,EAAI,KACR,IAAKkN,GAAiB,iBAALA,EACf,OAAOlN,EACT,IAAIuI,GAAI,EAAIwE,EAAEooB,SAASjoB,GAAID,EAAgB,mBAALO,EACtC,OAAOjF,EAAE8Y,SAAQ,SAASrU,GACxB,GAAe,gBAAXA,EAAEzQ,KAAwB,CAC5B,IAAIkR,EAAIT,EAAE6uB,SAAU1uB,EAAIH,EAAEvE,MAC1BwE,EAAIO,EAAEC,EAAGN,EAAGH,GAAKG,KAAMnN,EAAIA,GAAK,CAAE,GAAIyN,GAAKN,EACnD,CACK,IAAGnN,CACR,EAZE,IAAI+M,EAAIrP,EAjGV,WACE,GAAIuiD,GAAI,OAAOD,GACfC,GAAK,EACL,IAAIviD,EAAI,kCAAmCqP,EAAI,MAAOK,EAAI,OAAQF,EAAI,yCAA0CM,EAAI,QAASxN,EAAI,uDAAwDuI,EAAI,UAAW0E,EAAI,aACzLmB,EAAI,GAgFvB,SAAS2B,EAAE1B,GACT,OAAOA,EAAIA,EAAE2P,QAAQ/Q,EAAGmB,GAAKA,CACjC,CACE,OAlFA4xC,GAAK,SAAS3xC,EAAG5Q,GACf,GAAgB,iBAAL4Q,EACT,MAAM,IAAIupB,UAAU,mCACtB,IAAKvpB,EAAG,MAAO,GACf5Q,EAAIA,GAAK,CAAE,EACX,IAAI0Z,EAAI,EAAG/G,EAAI,EACf,SAASE,EAAER,GACT,IAAIc,EAAId,EAAEunB,MAAMtqB,GAChB6D,IAAMuG,GAAKvG,EAAEwG,QACb,IAAI/G,EAAIP,EAAEuwC,YAXgN,MAY1NjwC,GAAKC,EAAIP,EAAEsH,OAAS/G,EAAID,EAAIN,EAAEsH,MACpC,CACI,SAASpG,IACP,IAAIlB,EAAI,CAAEwwC,KAAMnpC,EAAGopC,OAAQnwC,GAC3B,OAAO,SAASQ,GACd,OAAOA,EAAE6d,SAAW,IAAInd,EAAExB,GAAInS,IAAKiT,CACpC,CACP,CACI,SAASU,EAAExB,GACT0mB,KAAKrT,MAAQrT,EAAG0mB,KAAK+gB,IAAM,CAAE+I,KAAMnpC,EAAGopC,OAAQnwC,GAAKomB,KAAKxG,OAASvyB,EAAEuyB,MACzE,CAEI,SAAShgB,EAAEF,GACT,IAAIc,EAAI,IAAIuM,MACV1f,EAAEuyB,OAAS,IAAM7Y,EAAI,IAAM/G,EAAI,KAAON,GAExC,GAAIc,EAAE4vC,OAAS1wC,EAAGc,EAAE6vC,SAAWhjD,EAAEuyB,OAAQpf,EAAE0vC,KAAOnpC,EAAGvG,EAAE2vC,OAASnwC,EAAGQ,EAAEof,OAAS3hB,GAAI5Q,EAAEijD,OAAQ,MAAM9vC,CACxG,CACI,SAAS3B,EAAEa,GACT,IAAIc,EAAId,EAAE+mB,KAAKxoB,GACf,GAAIuC,EAAG,CACL,IAAIP,EAAIO,EAAE,GACV,OAAON,EAAED,GAAIhC,EAAIA,EAAE+Q,MAAM/O,EAAE+G,QAASxG,CAC5C,CACA,CACI,SAASjT,IACPsR,EAAE7B,EACR,CACI,SAASyC,EAAEC,GACT,IAAIc,EACJ,IAAKd,EAAIA,GAAK,GAAIc,EAAIG,MACd,IAANH,GAAYd,EAAEuW,KAAKzV,GACrB,OAAOd,CACb,CACI,SAASiB,IACP,IAAIjB,EAAIkB,IACR,GA/CC,KA+CU3C,EAAEuxC,OAAO,IA/CV,KA+CqBvxC,EAAEuxC,OAAO,GAAK,CAC3C,IAAK,IAAIhvC,EAAI,EAAGxC,GAAKC,EAAEuxC,OAAOhvC,KAhDtB,KAgDkCvC,EAAEuxC,OAAOhvC,IAhDpD,KAgD+DvC,EAAEuxC,OAAOhvC,EAAI,OACvEA,EACJ,GAAIA,GAAK,EAAGxC,IAAMC,EAAEuxC,OAAOhvC,EAAI,GAC7B,OAAOZ,EAAE,0BACX,IAAIK,EAAIhC,EAAE+Q,MAAM,EAAGxO,EAAI,GACvB,OAAOR,GAAK,EAAGE,EAAED,GAAIhC,EAAIA,EAAE+Q,MAAMxO,GAAIR,GAAK,EAAGN,EAAE,CAC7CvT,KAtDuB,UAuDvBokD,QAAStwC,GAEnB,CACA,CACI,SAASc,IACP,IAAIrB,EAAIkB,IAAKJ,EAAI3B,EAAE/B,GACnB,GAAI0D,EAAG,CACL,GAAIG,KAAM9B,EAAEzB,GAAI,OAAOwC,EAAE,wBACzB,IAAIK,EAAIpB,EAAEjP,GAAIiR,EAAInB,EAAE,CAClBvT,KAhEsC,cAiEtCs/B,SAAU9rB,EAAEa,EAAE,GAAGoN,QAAQtgB,EAAG0Q,IAC5B3F,MAAO4H,EAAIN,EAAEM,EAAE,GAAG2N,QAAQtgB,EAAG0Q,IAAMA,IAErC,OAAOa,EAAE1G,GAAI0I,CACrB,CACA,CAQI,OAxDAK,EAAEgQ,UAAUzH,QAAUxL,EAwDf1Q,IAPP,WACE,IAESiT,EAFLd,EAAI,GAER,IADAD,EAAEC,GACUc,EAAIO,MACR,IAANP,IAAad,EAAEuW,KAAKzV,GAAIf,EAAEC,IAC5B,OAAOA,CACb,CACgBS,EACb,EAIMyvC,EACT,CASYY,IAaV,OAAO54B,EACT,CACS64B,GACT,MAAMC,GAAqBrkC,GAAG0jC,IAAKY,GAAKD,GAAG3rB,SAAW2rB,GAAI/8B,GAAKwB,GAAG,OAAQy7B,GAAKz7B,GAAG,SAClF,SAASA,GAAG7nB,GACV,OACA,SAAW0P,GACT,MAAMF,EAAIE,GAAKA,EAAEqhB,UAAYrhB,EAAEqhB,SAAS/wB,IAAM,CAAE,EAChD,GAAqB,iBAAVwP,EAAEozC,MAAoBpzC,EAAEozC,KAAO,GAAwB,iBAAZpzC,EAAEqzC,QAAsBrzC,EAAEqzC,OAAS,EACvF,MAAO,CACLD,KAAMpzC,EAAEozC,KACRC,OAAQrzC,EAAEqzC,OACV7F,OAA2B,iBAAZxtC,EAAEwtC,QAAsBxtC,EAAEwtC,QAAS,EAAKxtC,EAAEwtC,YAAS,EAE1E,CACA,CAMA,SAASt8C,GAAGV,GACV,OAAQA,GAAiB,iBAALA,EAAqB,aAAcA,GAAK,SAAUA,EAAIujD,GAAGvjD,EAAE+wB,UAAY,UAAW/wB,GAAK,QAASA,EAAIujD,GAAGvjD,GAAK,SAAUA,GAAK,WAAYA,EAAIwjD,GAAGxjD,GAAK,GAAnI,EACtC,CACA,SAASwjD,GAAGxjD,GACV,OAAOyjD,GAAGzjD,GAAKA,EAAE4iD,MAAQ,IAAMa,GAAGzjD,GAAKA,EAAE6iD,OAC3C,CACA,SAASU,GAAGvjD,GACV,OAAOwjD,GAAGxjD,GAAKA,EAAEylB,OAAS,IAAM+9B,GAAGxjD,GAAKA,EAAE65C,IAC5C,CACA,SAAS4J,GAAGzjD,GACV,OAAOA,GAAiB,iBAALA,EAAgBA,EAAI,CACzC,CACA,MAAMwG,WAAUiZ,MAwDd,WAAAqa,CAAYzqB,EAAGK,EAAGF,GAChB8vB,QAAqB,iBAAL5vB,IAAkBF,EAAIE,EAAGA,OAAI,GAC7C,IAAII,EAAI,GAAIxN,EAAI,CAAE,EAAEuI,GAAI,EACxB,GAAI6E,IAAqCpN,EAA/B,SAAUoN,GAAK,WAAYA,GAAuB,UAAWA,GAAK,QAASA,EAAxC,CAAEg0C,MAAOh0C,GAAsD,SAAUA,EAAQ,CAC5Hi0C,UAAW,CAACj0C,GACZg0C,MAAOh0C,EAAEqhB,UACH,IAAKrhB,IAAkB,iBAALL,EAAgBS,EAAIT,GAAK/M,EAAEshD,OAASv0C,IAAMxE,GAAI,EAAIiF,EAAIT,EAAE4M,QAAS3Z,EAAEshD,MAAQv0C,IAAK/M,EAAEuhD,SAAWvhD,EAAEgwB,QAAsB,iBAAL9iB,EAAe,CACvJ,MAAMF,EAAIE,EAAEs0C,QAAQ,MACZ,IAARx0C,EAAWhN,EAAEuhD,OAASr0C,GAAKlN,EAAEgwB,OAAS9iB,EAAEkS,MAAM,EAAGpS,GAAIhN,EAAEuhD,OAASr0C,EAAEkS,MAAMpS,EAAI,GAClF,CACI,IAAKhN,EAAEohD,OAASphD,EAAEqhD,WAAarhD,EAAEqhD,UAAW,CAC1C,MAAMr0C,EAAIhN,EAAEqhD,UAAUrhD,EAAEqhD,UAAUjqC,OAAS,GAC3CpK,IAAMhN,EAAEohD,MAAQp0C,EAAEyhB,SACxB,CACI,MAAMxhB,EAAIjN,EAAEohD,OAAS,UAAWphD,EAAEohD,MAAQphD,EAAEohD,MAAMj+B,MAAQnjB,EAAEohD,MAC5D5qB,KAAK6qB,UAAYrhD,EAAEqhD,gBAAa,EAAQ7qB,KAAK8qB,MAAQthD,EAAEshD,YAAS,EAAQ9qB,KAAK+pB,OAAStzC,EAAIA,EAAEszC,YAAS,EAAQ/pB,KAAKirB,WAAQ,EAAQjrB,KAAK7N,KAAM6N,KAAK7c,QAAUnM,EAAGgpB,KAAK8pB,KAAOrzC,EAAIA,EAAEqzC,UAAO,EAAQ9pB,KAAKtV,KAAO9iB,GAAG4B,EAAEohD,QAAU,MAAO5qB,KAAK4qB,MAAQphD,EAAEohD,YAAS,EAAQ5qB,KAAKgqB,OAAShqB,KAAK7c,QAAS6c,KAAK+qB,OAASvhD,EAAEuhD,aAAU,EAAQ/qB,KAAKxG,OAAShwB,EAAEgwB,aAAU,EAAQwG,KAAKkrB,MAAQn5C,GAAKvI,EAAEshD,OAAiC,iBAAjBthD,EAAEshD,MAAMI,MAAoB1hD,EAAEshD,MAAMI,MAAQ,GAAIlrB,KAAKmrB,OAAQnrB,KAAKorB,SAAUprB,KAAKqrB,KAAMrrB,KAAKsrB,GACte,EAEA59C,GAAEod,UAAUqH,KAAO,GACnBzkB,GAAEod,UAAUJ,KAAO,GACnBhd,GAAEod,UAAUk/B,OAAS,GACrBt8C,GAAEod,UAAU3H,QAAU,GACtBzV,GAAEod,UAAUogC,MAAQ,GACpBx9C,GAAEod,UAAUi/B,YAAS,EACrBr8C,GAAEod,UAAUg/B,UAAO,EACnBp8C,GAAEod,UAAU+/B,eAAY,EACxBn9C,GAAEod,UAAUggC,WAAQ,EACpBp9C,GAAEod,UAAUmgC,WAAQ,EACpBv9C,GAAEod,UAAU8/B,WAAQ,EACpBl9C,GAAEod,UAAUigC,YAAS,EACrBr9C,GAAEod,UAAU0O,YAAS,EACrB,MAAM+xB,GAAK,CAAA,EAAGxgC,eAAgBygC,GAAqB,IAAI9zC,IAAO+zC,GAAK,SAAUC,GAAK,YAAaC,GAAqB,IAAIpnC,IAAI,CAAC,QAAS,QAAS,QAAS,QAAS,OAAQqnC,GAAqB,IAAIrnC,IAAI,CAAC,KAAM,OAAQ8L,GAAK,0DAC1N,SAASw7B,GAAG3kD,EAAGqP,GACb,IAAKA,QAAoB,IAAfA,EAAEY,SACV,MAAM,IAAIiqB,UAAU,kCACtB,MAAMxqB,EAAIL,EAAEu1C,eAAY,EACxB,IAAIp1C,EACJ,GAAIH,EAAEw1C,YAAa,CACjB,GAAuB,mBAAZx1C,EAAEy1C,OACX,MAAM,IAAI5qB,UACR,yDAEJ1qB,EAoGJ,SAAYxP,EAAGqP,GACb,OAAOK,EACP,SAASA,EAAEF,EAAGM,EAAGxN,EAAGuI,GAClB,MAAM0E,EAAIuO,MAAMK,QAAQ7b,EAAEQ,UAAWwM,EAAIg0C,GAAG9zC,GAC5C,OAAOH,EACLS,EACAxN,EACAuI,EACA0E,EACA,CACEw1C,aAAcz1C,EAAIA,EAAEuzC,OAAS,OAAI,EACjCmC,SAAUhlD,EACVilD,WAAY31C,EAAIA,EAAEszC,UAAO,QAE3B,EAEN,CACA,CArHQ3sB,CAAGvmB,EAAGL,EAAEy1C,OAChB,KAAS,CACL,GAAoB,mBAATz1C,EAAEvI,IACX,MAAM,IAAIozB,UAAU,wCACtB,GAAqB,mBAAV7qB,EAAE5I,KACX,MAAM,IAAIyzB,UAAU,yCACtB1qB,EAuFJ,SAAYxP,EAAGqP,EAAGK,GAChB,OAAOF,EACP,SAASA,EAAEM,EAAGxN,EAAGuI,EAAG0E,GAClB,MAAMQ,EAAI+N,MAAMK,QAAQtT,EAAE/H,UAAY4M,EAAIL,EAC1C,OAAOE,EAAIQ,EAAEzN,EAAGuI,EAAG0E,GAAKQ,EAAEzN,EAAGuI,EACjC,CACA,CA7FQq6C,CAAGx1C,EAAGL,EAAEvI,IAAKuI,EAAE5I,KACvB,CACE,MAAMqJ,EAAI,CACRG,SAAUZ,EAAEY,SACZ0zC,UAAW,GACXwB,WAAY91C,EAAE81C,YAAc,CAAE,EAC9BC,OAAQ51C,EACR61C,yBAA0Bh2C,EAAEg2C,0BAA4B,QACxDC,UAAWj2C,EAAEk2C,gBAAkBl2C,EAAEk2C,uBAAoB,EACrDX,SAAUl1C,EACV81C,mBAAoBn2C,EAAEm2C,qBAAsB,EAC5CC,UAAyB,IAAfp2C,EAAEo2C,SACZC,SAAUr2C,EAAEq2C,WAAY,EACxBC,OAAoB,QAAZt2C,EAAEgvB,MAAkBgkB,GAAKD,GACjCwD,sBAAuBv2C,EAAEu2C,uBAAyB,MAClDC,uBAAmD,IAA5Bx2C,EAAEw2C,uBACxBvjD,EAAI8sB,GAAGtf,EAAG9P,OAAG,GAChB,OAAOsC,GAAiB,iBAALA,EAAgBA,EAAIwN,EAAEs1C,OACvCplD,EACA8P,EAAEG,SACF,CAAEnN,SAAUR,QAAK,QACjB,EAEJ,CACA,SAAS8sB,GAAGpvB,EAAGqP,EAAGK,GAChB,MAAe,YAAXL,EAAExQ,KAaR,SAAYmB,EAAGqP,EAAGK,GAChB,MAAMF,EAAIxP,EAAE2lD,OACZ,IAAI71C,EAAIN,EACoB,QAA5BH,EAAE+T,QAAQC,eAAuC,SAAZ7T,EAAE6uB,QAAqBvuB,EAAIuyC,GAAIriD,EAAE2lD,OAAS71C,GAAI9P,EAAE2jD,UAAUh7B,KAAKtZ,GACpG,MAAM/M,EAAI4sB,GAAGlvB,EAAGqP,EAAE+T,SAAS,GAAKvY,EAsElC,SAAY7K,EAAGqP,GACb,MAAMK,EAAI,CAAE,EACZ,IAAIF,EAAGM,EACP,IAAKA,KAAKT,EAAEowB,WACV,GAAU,aAAN3vB,GAAoBu0C,GAAGvgC,KAAKzU,EAAEowB,WAAY3vB,GAAI,CAChD,MAAMxN,EAAIwjD,GAAG9lD,EAAG8P,EAAGT,EAAEowB,WAAW3vB,IAChC,GAAIxN,EAAG,CACL,MAAOuI,EAAG0E,GAAKjN,EACftC,EAAE6lD,uBAA+B,UAANh7C,GAA6B,iBAAL0E,GAAiBm1C,GAAGhnC,IAAIrO,EAAE+T,SAAW5T,EAAID,EAAIG,EAAE7E,GAAK0E,CAC/G,CACA,CACE,GAAIC,EAAG,EAGHE,EAAE/Q,QAAU+Q,EAAE/Q,MAAQ,CAAE,IAEI,QAA5BqB,EAAE4lD,sBAAkC,aAAe,aAAep2C,CACxE,CACE,OAAOE,CACT,CAzFsCq2C,CAAG/lD,EAAGqP,GAC1C,IAAIE,EAAIy2C,GAAGhmD,EAAGqP,GACd,OAAOo1C,GAAG/mC,IAAIrO,EAAE+T,WAAa7T,EAAIA,EAAEmU,QAAO,SAASpU,GACjD,MAAmB,iBAALA,IA96ClB,SAAYtP,GACV,MAAmB,iBAALA,EAA2B,SAAXA,EAAEnB,MAAkBq/B,GAAGl+B,EAAE+K,OAAcmzB,GAAGl+B,EAC1E,CA46CmCimD,CAAG32C,EACnC,KAAI4U,GAAGlkB,EAAG6K,EAAGvI,EAAG+M,GAAI62C,GAAGr7C,EAAG0E,GAAIvP,EAAE2jD,UAAUpxB,MAAOvyB,EAAE2lD,OAASn2C,EAAGxP,EAAEolD,OAAO/1C,EAAG/M,EAAGuI,EAAG6E,EACpF,CArBWy2C,CAAGnmD,EAAGqP,EAAGK,GACH,sBAAXL,EAAExQ,MAA2C,sBAAXwQ,EAAExQ,KAqB1C,SAAYmB,EAAGqP,GACb,GAAIA,EAAEwJ,MAAQxJ,EAAEwJ,KAAKutC,QAAUpmD,EAAEslD,UAAW,CAC1C,MAAM91C,EAAIH,EAAEwJ,KAAKutC,OAAOtjC,KAAK,GAC7B,OAAOtT,EAAE3Q,KACTmB,EAAEslD,UAAUe,mBAAmB72C,EAAE82C,WACrC,CACEC,GAAGvmD,EAAGqP,EAAE0hB,SACV,CA3BWy1B,CAAGxmD,EAAGqP,GACA,sBAAXA,EAAExQ,MAA2C,sBAAXwQ,EAAExQ,KAmC1C,SAAYmB,EAAGqP,EAAGK,GAChB,MAAMF,EAAIxP,EAAE2lD,OACZ,IAAI71C,EAAIN,EACG,QAAXH,EAAEmU,MAA8B,SAAZhU,EAAE6uB,QAAqBvuB,EAAIuyC,GAAIriD,EAAE2lD,OAAS71C,GAAI9P,EAAE2jD,UAAUh7B,KAAKtZ,GACnF,MAAM/M,EAAe,OAAX+M,EAAEmU,KAAgBxjB,EAAEiQ,SAAWif,GAAGlvB,EAAGqP,EAAEmU,MAAM,GAAK3Y,EAgE9D,SAAY7K,EAAGqP,GACb,MAAMK,EAAI,CAAE,EACZ,IAAK,MAAMF,KAAKH,EAAEiU,WAChB,GAAe,8BAAX9T,EAAE3Q,KACJ,GAAI2Q,EAAEqJ,MAAQrJ,EAAEqJ,KAAKutC,QAAUpmD,EAAEslD,UAAW,CAC1C,MAAMhjD,EAAIkN,EAAEqJ,KAAKutC,OAAOtjC,KAAK,GAC7BxgB,EAAEzD,KACF,MAAMgM,EAAIvI,EAAEgkD,WACZz7C,EAAEhM,KACF,MAAM0Q,EAAI1E,EAAE40B,WAAW,GACvBlwB,EAAE1Q,KAAM6gB,OAAOiZ,OACbjpB,EACA1P,EAAEslD,UAAUe,mBAAmB92C,EAAEk3C,UAEpC,MACCF,GAAGvmD,EAAGqP,EAAE0hB,cACP,CACH,MAAMjhB,EAAIN,EAAEgU,KACZ,IAAIlhB,EACJ,GAAIkN,EAAEzE,OAA2B,iBAAXyE,EAAEzE,MACtB,GAAIyE,EAAEzE,MAAM8N,MAAQrJ,EAAEzE,MAAM8N,KAAKutC,QAAUpmD,EAAEslD,UAAW,CACtD,MAAM/1C,EAAIC,EAAEzE,MAAM8N,KAAKutC,OAAOtjC,KAAK,GACnCvT,EAAE1Q,KAAMyD,EAAItC,EAAEslD,UAAUe,mBAAmB92C,EAAE+2C,WAC9C,MACCC,GAAGvmD,EAAGqP,EAAE0hB,eAEVzuB,EAAgB,OAAZkN,EAAEzE,OAAsByE,EAAEzE,MAChC2E,EAAEI,GACFxN,CACN,CACE,OAAOoN,CACT,CA/FkEg3C,CAAG1mD,EAAGqP,GAAIE,EAAIy2C,GAAGhmD,EAAGqP,GACpF,OAAO6U,GAAGlkB,EAAG6K,EAAGvI,EAAG+M,GAAI62C,GAAGr7C,EAAG0E,GAAIvP,EAAE2jD,UAAUpxB,MAAOvyB,EAAE2lD,OAASn2C,EAAGxP,EAAEolD,OAAO/1C,EAAG/M,EAAGuI,EAAG6E,EACtF,CAxCWi3C,CAAG3mD,EAAGqP,EAAGK,GACH,aAAXL,EAAExQ,KAyBR,SAAYmB,EAAGqP,GACb,GAAIA,EAAEwJ,MAAQxJ,EAAEwJ,KAAKutC,QAAUpmD,EAAEslD,UAC/B,OAEEtlD,EAAEslD,UAAUsB,gBAAgBv3C,EAAEwJ,KAAKutC,QAEvCG,GAAGvmD,EAAGqP,EAAE0hB,SACV,CA/BW81B,CAAG7mD,EAAGqP,GACA,SAAXA,EAAExQ,KAsCR,SAAYmB,EAAGqP,EAAGK,GAChB,MAAMF,EAAI,CAAE,EACZ,OAAO02C,GAAG12C,EAAGw2C,GAAGhmD,EAAGqP,IAAKrP,EAAEolD,OAAO/1C,EAAGrP,EAAEiQ,SAAUT,EAAGE,EACrD,CAxCWo3C,CAAG9mD,EAAGqP,EAAGK,GACH,SAAXL,EAAExQ,KAwCR,SAAYmB,EAAGqP,GACb,OAAOA,EAAEtE,KACX,CAzCWg8C,CAAG/mD,EAAGqP,QADf,CAEF,CAyCA,SAAS6U,GAAGlkB,EAAGqP,EAAGK,EAAGF,GACP,iBAALE,GAAiBA,IAAM1P,EAAEiQ,UAAYjQ,EAAE0lD,WAAar2C,EAAE4pB,KAAOzpB,EACtE,CACA,SAAS02C,GAAGlmD,EAAGqP,GACb,GAAIA,EAAEqK,OAAS,EAAG,CAChB,MAAMhK,EAAIL,EAAEqK,OAAS,EAAIrK,EAAIA,EAAE,GAC/BK,IAAM1P,EAAE8C,SAAW4M,EACvB,CACA,CA8EA,SAASs2C,GAAGhmD,EAAGqP,GACb,MAAMK,EAAI,GACV,IAAIF,GAAM,EACV,MAAMM,EAAI9P,EAAEylD,SAA2B,IAAIj1C,IAAQ8zC,GACnD,OAAS90C,EAAIH,EAAEvM,SAAS4W,QAAU,CAChC,MAAMpX,EAAI+M,EAAEvM,SAAS0M,GACrB,IAAI3E,EACJ,GAAI7K,EAAEylD,SAAU,CACd,MAAMn2C,EAAe,YAAXhN,EAAEzD,KAAqByD,EAAE8gB,QAAqB,sBAAX9gB,EAAEzD,MAA2C,sBAAXyD,EAAEzD,KAA+ByD,EAAEkhB,UAAO,EACzH,GAAIlU,EAAG,CACL,MAAMS,EAAID,EAAEkX,IAAI1X,IAAM,EACtBzE,EAAIyE,EAAI,IAAMS,EAAGD,EAAEiX,IAAIzX,EAAGS,EAAI,EACtC,CACA,CACI,MAAMR,EAAI6f,GAAGpvB,EAAGsC,EAAGuI,QACb,IAAN0E,GAAgBG,EAAEiZ,KAAKpZ,EAC3B,CACE,OAAOG,CACT,CACA,SAASo2C,GAAG9lD,EAAGqP,EAAGK,GAChB,MAAMF,EAneR,SAAYxP,EAAGqP,GACb,MAAMK,EAAI4uB,GAAGjvB,GACb,IAAIG,EAAIH,EAAGS,EAAI7O,GACf,GAAIyO,KAAK1P,EAAEo+B,OACT,OAAOp+B,EAAEm+B,SAASn+B,EAAEo+B,OAAO1uB,IAC7B,GAAIA,EAAEgK,OAAS,GAAuB,SAAlBhK,EAAEgS,MAAM,EAAG,IAAiBmgC,GAAG91B,KAAK1c,GAAI,CAC1D,GAAoB,MAAhBA,EAAE6yC,OAAO,GAAY,CACvB,MAAM5/C,EAAI+M,EAAEqS,MAAM,GAAGpB,QAAQwhC,GAAIG,IACjCzyC,EAAI,OAASlN,EAAE4/C,OAAO,GAAGplC,cAAgBxa,EAAEof,MAAM,EACvD,KAAW,CACL,MAAMpf,EAAI+M,EAAEqS,MAAM,GAClB,IAAKogC,GAAG/1B,KAAKzpB,GAAI,CACf,IAAIuI,EAAIvI,EAAEge,QAAQyhC,GAAIC,IACN,MAAhBn3C,EAAEq3C,OAAO,KAAer3C,EAAI,IAAMA,GAAIwE,EAAI,OAASxE,CAC3D,CACA,CACIiF,EAAIuvB,EACR,CACE,OAAO,IAAIvvB,EAAEN,EAAGH,EAClB,CAgdY23C,CAAGhnD,EAAE2lD,OAAQt2C,GACvB,KAAW,MAALK,GAAyB,iBAALA,GAAiB4sB,OAAO2qB,MAAMv3C,IAAK,CAC3D,GAAIoO,MAAMK,QAAQzO,KAAOA,EAAIF,EAAEmvB,eAtkDnC,SAAY3+B,GACV,MAAM0P,EAAI,CAAE,EACZ,OAA4B,KAApB1P,EAAEA,EAAE0Z,OAAS,GAAY,IAAI1Z,EAAG,IAAMA,GAAGge,MAC9CtO,EAAEw3C,SAAW,IAAM,IAAM,MAAqB,IAAdx3C,EAAEy3C,QAAiB,GAAK,MACzD3oC,MACJ,CAikDoD4oC,CAAG13C,GAxbvD,SAAY1P,GACV,OAAOA,EAAEge,KAAK,KAAKQ,MACrB,CAsb4D6oC,CAAG33C,IAAoB,UAAfF,EAAE2uB,SAAsB,CACtF,IAAIruB,EAAgB,iBAALJ,EAAgBA,EASrC,SAAY1P,EAAGqP,GACb,MAAMK,EAAI,CAAE,EACZ,IACE2zC,GAAGh0C,EAAGG,EACP,CAAC,MAAOM,GACP,IAAK9P,EAAEwlD,mBAAoB,CACzB,MAAMljD,EAAC,EAGJuI,EAAI,IAAIrE,GAAE,iCAAkC,CAC7Cm9C,UAAW3jD,EAAE2jD,UACbC,MAAOthD,EACPuhD,OAAQ,QACRvxB,OAAQ,6BAEV,MAAMznB,EAAEogB,KAAOjrB,EAAE4kD,eAAY,EAAQ/5C,EAAEu5C,IAAMj7B,GAAK,gCAAiCte,CACzF,CACA,CACE,OAAO6E,EACP,SAASF,EAAEM,EAAGxN,GACZ,IAAIuI,EAAIiF,EACU,OAAlBjF,EAAE6W,MAAM,EAAG,KAAkC,SAAlB7W,EAAE6W,MAAM,EAAG,KAAkB7W,EAAI,MAAQA,EAAE6W,MAAM,IAAK7W,EAAIA,EAAEyV,QAAQkkC,GAAI8C,KAAM53C,EAAE7E,GAAKvI,CACpH,CACA,CAhCyCilD,CAAGvnD,EAAG05B,OAAOhqB,IAChD,MAAmC,QAA5B1P,EAAE4lD,wBAAoC91C,EA2EnD,SAAY9P,GACV,MAAMqP,EAAI,CAAE,EACZ,IAAIK,EACJ,IAAKA,KAAK1P,EACRqkD,GAAGvgC,KAAK9jB,EAAG0P,KAAOL,EAAEm4C,GAAG93C,IAAM1P,EAAE0P,IACjC,OAAOL,CACT,CAjFuDo4C,CAAG33C,IAAK,CAAC,QAASA,EACzE,CACI,MAAO,CAC0B,UAA/B9P,EAAEqlD,0BAAwC71C,EAAE6uB,MAAQ8jB,GAAG3yC,EAAE2uB,WAAa3uB,EAAE2uB,SAAW3uB,EAAEwpB,UACrFtpB,EAEN,CACA,CAyBA,SAASwf,GAAGlvB,EAAGqP,EAAGK,GAChB,IAAIF,EACJ,GAAKE,EAEA,GAAIL,EAAEuQ,SAAS,KAAM,CACxB,MAAM9P,EAAIT,EAAEoU,MAAM,KAClB,IAAY5Y,EAARvI,GAAI,EACR,OAASA,EAAIwN,EAAE4J,QAAU,CACvB,MAAMnK,EAAIyuB,GAAGluB,EAAExN,IAAM,CAAEzD,KAAM,aAAc2kB,KAAM1T,EAAExN,IAAO,CAAEzD,KAAM,UAAWkM,MAAO+E,EAAExN,IACtFuI,EAAIA,EAAI,CACNhM,KAAM,mBACN2xC,OAAQ3lC,EACRszB,SAAU5uB,EACVm4C,YAAaplD,GAAgB,YAAXiN,EAAE1Q,MACpB8oD,UAAU,GACRp4C,CACV,CACIC,EAAI3E,CACL,MACC2E,EAAIwuB,GAAG3uB,KAAO,SAAS0c,KAAK1c,GAAK,CAAExQ,KAAM,aAAc2kB,KAAMnU,GAAM,CAAExQ,KAAM,UAAWkM,MAAOsE,QAhB7FG,EAAI,CAAE3Q,KAAM,UAAWkM,MAAOsE,GAiBhC,GAAe,YAAXG,EAAE3Q,KAAoB,CACxB,MAAMiR,EAEJN,EACD,MACD,OAAO60C,GAAGvgC,KAAK9jB,EAAEmlD,WAAYr1C,GAAK9P,EAAEmlD,WAAWr1C,GAAKA,CACxD,CACE,GAAI9P,EAAEslD,UACJ,OAAOtlD,EAAEslD,UAAUe,mBAAmB72C,GACxC+2C,GAAGvmD,EACL,CACA,SAASumD,GAAGvmD,EAAGqP,GACb,MAAMK,EAAI,IAAIlJ,GACZ,sDACA,CACEm9C,UAAW3jD,EAAE2jD,UACbD,MAAOr0C,EACPw0C,OAAQ,aACRvxB,OAAQ,6BAGZ,MAAM5iB,EAAEub,KAAOjrB,EAAE4kD,eAAY,EAAQl1C,EAAE00C,IAAMj7B,GAAK,qDAAsDzZ,CAC1G,CAQA,SAAS83C,GAAGxnD,GACV,IAAIqP,EAAIrP,EAAEsgB,QAAQikC,GAAIqD,IACtB,MAAyB,QAAlBv4C,EAAEqS,MAAM,EAAG,KAAiBrS,EAAI,IAAMA,GAAIA,CACnD,CACA,SAASi4C,GAAGtnD,EAAGqP,GACb,OAAOA,EAAEyN,aACX,CACA,SAAS8qC,GAAG5nD,GACV,MAAO,IAAMA,EAAEqjB,aACjB,CACA,MAAMwkC,GAAK,CACThkB,OAAQ,CAAC,QACTvM,KAAM,CAAC,aAAc,MAAO,MAAO,KACnCze,KAAM,CAAC,UACP8sB,WAAY,CAAC,SAAU,SACvBhO,KAAM,CAAC,IAAK,OAAQ,OAAQ,QAC5Bx1B,KAAM,CAAC,YACP0kC,OAAQ,KACRM,SAAU,CAAC,QACXyF,KAAM,CAAC,IAAK,QACZ1U,OAAQ,CAAC,SACTrK,IAAK,CACH,QACA,QACA,SACA,MACA,QACA,SACA,SACA,QACA,UAEDi6B,GAAK,CAAE,EAKV,SAASppC,GAAG1e,EAAGqP,EAAGK,GAChB,GAiBF,SAAY1P,GACV,SAAUA,GAAiB,iBAALA,EACxB,CAnBM+nD,CAAG/nD,GAAI,CACT,GAAI,UAAWA,EACb,MAAkB,SAAXA,EAAEnB,MAAoB6Q,EAAS1P,EAAE+K,MAAP,GACnC,GAAIsE,GAAK,QAASrP,GAAKA,EAAE8tB,IACvB,OAAO9tB,EAAE8tB,IACX,GAAI,aAAc9tB,EAChB,OAAOgoD,GAAGhoD,EAAE8C,SAAUuM,EAAGK,EAC/B,CACE,OAAOoO,MAAMK,QAAQne,GAAKgoD,GAAGhoD,EAAGqP,EAAGK,GAAK,EAC1C,CACA,SAASs4C,GAAGhoD,EAAGqP,EAAGK,GAChB,MAAMF,EAAI,GACV,IAAIM,GAAM,EACV,OAASA,EAAI9P,EAAE0Z,QACblK,EAAEM,GAAK4O,GAAG1e,EAAE8P,GAAIT,EAAGK,GACrB,OAAOF,EAAEwO,KAAK,GAChB,CAIA,MAAMiqC,GAAKzpD,SAASI,cAAc,KAClC,SAASspD,GAAGloD,GACV,MAAMqP,EAAI,IAAMrP,EAAI,IACpBioD,GAAGzjC,UAAYnV,EACf,MAAMK,EAAIu4C,GAAG9kC,YACb,OAAsC,KAA/BzT,EAAEuV,WAAWvV,EAAEgK,OAAS,IAAmB,SAAN1Z,IAAgB0P,IAAML,GAASK,CAC7E,CACA,SAAS1E,GAAGhL,EAAGqP,EAAGK,EAAGF,GACnB,MAAMM,EAAI9P,EAAE0Z,OACZ,IAAW7O,EAAPvI,EAAI,EACR,GAAY+M,EAARA,EAAI,GAASA,EAAIS,EAAI,EAAIA,EAAIT,EAAQA,EAAIS,EAAIA,EAAIT,EAAGK,EAAIA,EAAI,EAAIA,EAAI,EAAGF,EAAEkK,OAAS,IACpF7O,EAAIiT,MAAMC,KAAKvO,GAAI3E,EAAE2W,QAAQnS,EAAGK,GAAI1P,EAAEmoD,UAAUt9C,QAEhD,IAAK6E,GAAK1P,EAAEmoD,OAAO94C,EAAGK,GAAIpN,EAAIkN,EAAEkK,QAC9B7O,EAAI2E,EAAEkS,MAAMpf,EAAGA,EAAI,KAAMuI,EAAE2W,QAAQnS,EAAG,GAAIrP,EAAEmoD,UAAUt9C,GAAIvI,GAAK,IAAK+M,GAAK,GAC/E,CACA,SAAS2iB,GAAGhyB,EAAGqP,GACb,OAAOrP,EAAE0Z,OAAS,GAAK1O,GAAGhL,EAAGA,EAAE0Z,OAAQ,EAAGrK,GAAIrP,GAAKqP,CACrD,CACA,MAAM+4C,GAAK,CAAE,EAACvkC,eACd,SAASwkC,GAAGroD,GACV,MAAMqP,EAAI,CAAE,EACZ,IAAIK,GAAM,EACV,OAASA,EAAI1P,EAAE0Z,QACb4uC,GAAGj5C,EAAGrP,EAAE0P,IACV,OAAOL,CACT,CACA,SAASi5C,GAAGtoD,EAAGqP,GACb,IAAIK,EACJ,IAAKA,KAAKL,EAAG,CACX,MAAMS,GAAKs4C,GAAGtkC,KAAK9jB,EAAG0P,GAAK1P,EAAE0P,QAAK,KAAY1P,EAAE0P,GAAK,CAAE,GAAGpN,EAAI+M,EAAEK,GAChE,IAAI7E,EACJ,GAAIvI,EACF,IAAKuI,KAAKvI,EAAG,CACX8lD,GAAGtkC,KAAKhU,EAAGjF,KAAOiF,EAAEjF,GAAK,IACzB,MAAM0E,EAAIjN,EAAEuI,GACZ09C,GAEEz4C,EAAEjF,GACFiT,MAAMK,QAAQ5O,GAAKA,EAAIA,EAAI,CAACA,GAAK,GAE3C,CACA,CACA,CACA,SAASg5C,GAAGvoD,EAAGqP,GACb,IAAIK,GAAM,EACV,MAAMF,EAAI,GACV,OAASE,EAAIL,EAAEqK,SACC,UAAbrK,EAAEK,GAAGmO,IAAkB7d,EAAIwP,GAAGmZ,KAAKtZ,EAAEK,IACxC1E,GAAGhL,EAAG,EAAG,EAAGwP,EACd,CACA,SAAS+a,GAAGvqB,EAAGqP,GACb,MAAMK,EAAI4sB,OAAOksB,SAASxoD,EAAGqP,GAC7B,OAEEK,EAAI,GAAW,KAANA,GAAYA,EAAI,IAAMA,EAAI,IACnCA,EAAI,KAAOA,EAAI,KACfA,EAAI,OAASA,EAAI,OACjBA,EAAI,OAASA,EAAI,SACD,OAAfA,IAAwC,QAAX,MAAJA,IAE1BA,EAAI,QAAU,IAAMgqB,OAAO+uB,cAAc/4C,EAE7C,CACA,SAAS+S,GAAGziB,GACV,OAAOA,EAAEsgB,QAAQ,cAAe,KAAKA,QAAQ,SAAU,IAAI+C,cAAcvG,aAC3E,CACA,MAAMyF,GAAKmL,GAAG,YAAaptB,GAAKotB,GAAG,cAAeg7B,GAAKh7B,GAAG,uBAC1D,SAASi7B,GAAG3oD,GACV,OAGQ,OAANA,IAAeA,EAAI,IAAY,MAANA,EAE7B,CACA,MAAM4oD,GAAKl7B,GAAG,MAAOm7B,GAAKn7B,GAAG,cAAeo7B,GAAKp7B,GAAG,kBACpD,SAAS7Z,GAAE7T,GACT,OAAa,OAANA,GAAcA,GAAM,CAC7B,CACA,SAAS8T,GAAE9T,GACT,OAAa,OAANA,IAAeA,EAAI,GAAW,KAANA,EACjC,CACA,SAASkU,GAAElU,GACT,OAAe,IAARA,IAAoB,IAARA,GAAkB,KAANA,CACjC,CACA,MAAM+oD,GAAKr7B,GAAG,IAAIwE,OAAO,gBAAiB,MAAO82B,GAAKt7B,GAAG,MACzD,SAASA,GAAG1tB,GACV,OACA,SAAW0P,GACT,OAAa,OAANA,GAAcA,GAAM,GAAI1P,EAAE+rB,KAAK2N,OAAOuvB,aAAav5C,GAC9D,CACA,CACA,SAAS5O,GAAGd,GACV,MAAMqP,EAAI,GACV,IAAIK,GAAM,EAAEF,EAAI,EAAGM,EAAI,EACvB,OAASJ,EAAI1P,EAAE0Z,QAAU,CACvB,MAAMpX,EAAItC,EAAEilB,WAAWvV,GACvB,IAAI7E,EAAI,GACR,GAAU,KAANvI,GAAYhC,GAAGN,EAAEilB,WAAWvV,EAAI,KAAOpP,GAAGN,EAAEilB,WAAWvV,EAAI,IAC7DI,EAAI,OACD,GAAIxN,EAAI,IACX,oBAAoBypB,KAAK2N,OAAOuvB,aAAa3mD,MAAQuI,EAAI6uB,OAAOuvB,aAAa3mD,SAC1E,GAAIA,EAAI,OAASA,EAAI,MAAO,CAC/B,MAAMiN,EAAIvP,EAAEilB,WAAWvV,EAAI,GAC3BpN,EAAI,OAASiN,EAAI,OAASA,EAAI,OAAS1E,EAAI6uB,OAAOuvB,aAAa3mD,EAAGiN,GAAIO,EAAI,GAAKjF,EAAI,GACpF,MACCA,EAAI6uB,OAAOuvB,aAAa3mD,GAC1BuI,IAAMwE,EAAEsZ,KAAK3oB,EAAE0hB,MAAMlS,EAAGE,GAAIw5C,mBAAmBr+C,IAAK2E,EAAIE,EAAII,EAAI,EAAGjF,EAAI,IAAKiF,IAAMJ,GAAKI,EAAGA,EAAI,EAClG,CACE,OAAOT,EAAE2O,KAAK,IAAMhe,EAAE0hB,MAAMlS,EAC9B,CACA,SAASoN,GAAE5c,EAAGqP,EAAGK,EAAGF,GAClB,MAAMM,EAAIN,EAAIA,EAAI,EAAI8sB,OAAO6sB,kBAC7B,IAAI7mD,EAAI,EACR,OACA,SAAWgN,GACT,OAAO4E,GAAE5E,IAAMtP,EAAEopD,MAAM15C,GAAIH,EAAED,IAAMD,EAAEC,EACzC,EACE,SAASC,EAAED,GACT,OAAO4E,GAAE5E,IAAMhN,IAAMwN,GAAK9P,EAAEqpD,QAAQ/5C,GAAIC,IAAMvP,EAAEspD,KAAK55C,GAAIL,EAAEC,GAC/D,CACA,CACA,MAAMi6C,GAAK,CACTC,SAEF,SAAYxpD,GACV,MAAMqP,EAAIrP,EAAEypD,QAAQ3wB,KAAK4wB,OAAOC,WAAWC,gBAG3C,SAAWr6C,GACT,GAAU,OAANA,EAEF,YADAvP,EAAEqpD,QAAQ95C,GAGZ,OAAOvP,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQ95C,GAAIvP,EAAEspD,KAAK,cAAe1sC,GAAE5c,EAAGqP,EAAG,aAC9E,IACE,SAAWE,GACT,OAAOvP,EAAEopD,MAAM,aAAc9mD,EAAEiN,EACnC,IAXE,IAAIG,EACJ,OAAOL,EAWP,SAAS/M,EAAEiN,GACT,MAAMD,EAAItP,EAAEopD,MAAM,YAAa,CAC7BS,YAAa,OACbC,SAAUp6C,IAEZ,OAAOA,IAAMA,EAAEq6C,KAAOz6C,GAAII,EAAIJ,EAAGzE,EAAE0E,EACvC,CACE,SAAS1E,EAAE0E,GACT,OAAU,OAANA,GACFvP,EAAEspD,KAAK,aAActpD,EAAEspD,KAAK,kBAActpD,EAAEqpD,QAAQ95C,IAG/CsE,GAAEtE,IAAMvP,EAAEqpD,QAAQ95C,GAAIvP,EAAEspD,KAAK,aAAchnD,IAAMtC,EAAEqpD,QAAQ95C,GAAI1E,EAC1E,CACA,GACA,MAAMm/C,GAAK,CACTR,SAIF,SAAYxpD,GACV,MAAMqP,EAAIypB,KAAMppB,EAAI,GACpB,IAAWI,EAAGxN,EAAGuI,EAAb2E,EAAI,EACR,OAAOD,EACP,SAASA,EAAEqD,GACT,GAAIpD,EAAIE,EAAEgK,OAAQ,CAChB,MAAMpG,EAAI5D,EAAEF,GACZ,OAAOH,EAAE46C,eAAiB32C,EAAE,GAAItT,EAAEypD,QAAQn2C,EAAE,GAAG42C,aAAc56C,EAAGS,EAAhC/P,CAAmC4S,EACzE,CACI,OAAO7C,EAAE6C,EACb,CACE,SAAStD,EAAEsD,GACT,GAAIpD,IAAKH,EAAE46C,eAAeE,WAAY,CACpC96C,EAAE46C,eAAeE,gBAAa,EAAQr6C,GAAK4C,IAC3C,MAAMY,EAAIjE,EAAE+6C,OAAO1wC,OACnB,IAAWpH,EAAPsB,EAAIN,EACR,KAAOM,KACL,GAAuB,SAAnBvE,EAAE+6C,OAAOx2C,GAAG,IAAyC,cAAxBvE,EAAE+6C,OAAOx2C,GAAG,GAAG/U,KAAsB,CACpEyT,EAAIjD,EAAE+6C,OAAOx2C,GAAG,GAAGimC,IACnB,KACV,CACMpgC,EAAEjK,GACF,IAAI+B,EAAI+B,EACR,KAAO/B,EAAIlC,EAAE+6C,OAAO1wC,QAClBrK,EAAE+6C,OAAO74C,GAAG,GAAGsoC,IAAM,IAChBvnC,GACFf,IACL,OAAOvG,GAAGqE,EAAE+6C,OAAQx2C,EAAI,EAAG,EAAGvE,EAAE+6C,OAAO1oC,MAAMpO,IAAKjE,EAAE+6C,OAAO1wC,OAASnI,EAAGxB,EAAE6C,EAC/E,CACI,OAAOrD,EAAEqD,EACb,CACE,SAAS7C,EAAE6C,GACT,GAAIpD,IAAME,EAAEgK,OAAQ,CAClB,IAAK5J,EACH,OAAO3P,EAAEyS,GACX,GAAI9C,EAAEu6C,kBAAoBv6C,EAAEu6C,iBAAiBC,SAC3C,OAAOj4C,EAAEO,GACXvD,EAAEk7C,aAAez6C,EAAEu6C,kBAAqBv6C,EAAE06C,8BAChD,CACI,OAAOn7C,EAAE46C,eAAiB,CAAA,EAAIjqD,EAAEyqD,MAAMC,GAAIj7C,EAAGiB,EAAf1Q,CAAkB4S,EACpD,CACE,SAASnD,EAAEmD,GACT,OAAO9C,GAAK4C,IAAK+G,EAAEjK,GAAIrP,EAAEyS,EAC7B,CACE,SAASlC,EAAEkC,GACT,OAAOvD,EAAEq6C,OAAOiB,KAAKt7C,EAAEu7C,MAAMhI,MAAQpzC,IAAME,EAAEgK,OAAQ7O,EAAIwE,EAAEu7C,MAAM5N,OAAQ3qC,EAAEO,EAC/E,CACE,SAASzS,EAAEyS,GACT,OAAOvD,EAAE46C,eAAiB,CAAA,EAAIjqD,EAAEypD,QAAQiB,GAAIj4C,EAAGJ,EAAjBrS,CAAoB4S,EACtD,CACE,SAASH,EAAEG,GACT,OAAOpD,IAAKE,EAAEiZ,KAAK,CAACtZ,EAAEg7C,iBAAkBh7C,EAAE46C,iBAAkB9pD,EAAEyS,EAClE,CACE,SAASP,EAAEO,GACT,OAAU,OAANA,GACF9C,GAAK4C,IAAK+G,EAAE,QAAIzZ,EAAEqpD,QAAQz2C,KAGrB9C,EAAIA,GAAKT,EAAEq6C,OAAOj2B,KAAKpkB,EAAEu7C,OAAQ5qD,EAAEopD,MAAM,YAAa,CAC3DyB,WAAY/6C,EACZ+5C,YAAa,OACbC,SAAUxnD,IACRqO,EAAEiC,GACV,CACE,SAASjC,EAAEiC,GACT,OAAU,OAANA,GACF7S,EAAEC,EAAEspD,KAAK,cAAc,GAAK7vC,EAAE,QAAIzZ,EAAEqpD,QAAQz2C,IAGvCiB,GAAEjB,IAAM5S,EAAEqpD,QAAQz2C,GAAI7S,EAAEC,EAAEspD,KAAK,cAAe95C,EAAI,EAAGH,EAAEk7C,eAAY,EAAQh7C,IAAMvP,EAAEqpD,QAAQz2C,GAAIjC,EAC1G,CACE,SAAS5Q,EAAE6S,EAAGU,GACZ,MAAMM,EAAIvE,EAAEy7C,YAAYl4C,GACxB,GAAIU,GAAKM,EAAE+U,KAAK,MAAO/V,EAAEk3C,SAAWxnD,EAAGA,IAAMA,EAAEynD,KAAOn3C,GAAItQ,EAAIsQ,EAAG9C,EAAEi7C,WAAWn4C,EAAE6S,OAAQ3V,EAAEk7C,MAAMp3C,GAAIvE,EAAEq6C,OAAOiB,KAAK/3C,EAAE6S,MAAMm9B,MAAO,CAC/H,IAAItwC,EAAIxC,EAAEs6C,OAAO1wC,OACjB,KAAOpH,KACL,GAEExC,EAAEs6C,OAAO93C,GAAG,GAAGmT,MAAMu3B,OAASnyC,KAC5BiF,EAAEs6C,OAAO93C,GAAG,GAAGunC,KACjB/pC,EAAEs6C,OAAO93C,GAAG,GAAGunC,IAAImD,OAASnyC,GAE5B,OACJ,MAAM0G,EAAIlC,EAAE+6C,OAAO1wC,OACnB,IAAWvH,EAAGkB,EAAVpT,EAAIsR,EACR,KAAOtR,KACL,GAAuB,SAAnBoP,EAAE+6C,OAAOnqD,GAAG,IAAyC,cAAxBoP,EAAE+6C,OAAOnqD,GAAG,GAAGpB,KAAsB,CACpE,GAAIsT,EAAG,CACLkB,EAAIhE,EAAE+6C,OAAOnqD,GAAG,GAAG45C,IACnB,KACZ,CACU1nC,GAAI,CACd,CACM,IAAKsH,EAAEjK,GAAI8C,EAAIf,EAAGe,EAAIjD,EAAE+6C,OAAO1wC,QAC7BrK,EAAE+6C,OAAO93C,GAAG,GAAGunC,IAAM,IAChBxmC,GACFf,IACLtH,GAAGqE,EAAE+6C,OAAQnqD,EAAI,EAAG,EAAGoP,EAAE+6C,OAAO1oC,MAAMnQ,IAAKlC,EAAE+6C,OAAO1wC,OAASpH,CACnE,CACA,CACE,SAASmH,EAAE7G,GACT,IAAIU,EAAI5D,EAAEgK,OACV,KAAOpG,KAAMV,GAAK,CAChB,MAAMgB,EAAIlE,EAAE4D,GACZjE,EAAE46C,eAAiBr2C,EAAE,GAAIA,EAAE,GAAG01C,KAAKxlC,KAAKzU,EAAGrP,EACjD,CACI0P,EAAEgK,OAAS9G,CACf,CACE,SAASF,IACP5C,EAAEk7C,MAAM,CAAC,OAAQ1oD,OAAI,EAAQwN,OAAI,EAAQT,EAAE46C,eAAeE,gBAAa,CAC3E,CACA,GAlHGO,GAAK,CACNlB,SAkHF,SAAYxpD,EAAGqP,EAAGK,GAChB,OAAOkN,GAAE5c,EAAGA,EAAEypD,QAAQ3wB,KAAK4wB,OAAOC,WAAWnrD,SAAU6Q,EAAGK,GAAI,aAAcopB,KAAK4wB,OAAOC,WAAWsB,QAAQC,KAAKtrC,SAAS,qBAAkB,EAAS,EACtJ,GACA,SAASxQ,GAAGpP,GACV,OAAU,OAANA,GAAc8T,GAAE9T,IAAMgpD,GAAGhpD,GACpB,EACL+oD,GAAG/oD,GACE,OADT,CAEF,CACA,SAASmrD,GAAGnrD,EAAGqP,EAAGK,GAChB,MAAMF,EAAI,GACV,IAAIM,GAAM,EACV,OAASA,EAAI9P,EAAE0Z,QAAU,CACvB,MAAMpX,EAAItC,EAAE8P,GAAGs7C,WACf9oD,IAAMkN,EAAEoQ,SAAStd,KAAO+M,EAAI/M,EAAE+M,EAAGK,GAAIF,EAAEmZ,KAAKrmB,GAChD,CACE,OAAO+M,CACT,CACA,MAAMg8C,GAAK,CACT7nC,KAAM,YACN4nC,WAGF,SAAYprD,EAAGqP,GACb,IAAYG,EAAGM,EAAGxN,EAAGuI,EAAG0E,EAAGD,EAAGS,EAAGN,EAA7BC,KACJ,OAASA,EAAI1P,EAAE0Z,QACb,GAAgB,UAAZ1Z,EAAE0P,GAAG,IAAmC,sBAAjB1P,EAAE0P,GAAG,GAAG7Q,MAAgCmB,EAAE0P,GAAG,GAAG47C,OACzE,IAAK97C,EAAIE,EAAGF,KACV,GAAgB,SAAZxP,EAAEwP,GAAG,IAAkC,sBAAjBxP,EAAEwP,GAAG,GAAG3Q,MAAgCmB,EAAEwP,GAAG,GAAG+7C,OAC1El8C,EAAEm8C,eAAexrD,EAAEwP,GAAG,IAAIyV,WAAW,KAAO5V,EAAEm8C,eAAexrD,EAAE0P,GAAG,IAAIuV,WAAW,GAAI,CACnF,IAAKjlB,EAAEwP,GAAG,GAAG87C,QAAUtrD,EAAE0P,GAAG,GAAG67C,SAAWvrD,EAAE0P,GAAG,GAAGmqC,IAAImD,OAASh9C,EAAE0P,GAAG,GAAG+V,MAAMu3B,QAAU,MAAQh9C,EAAEwP,GAAG,GAAGqqC,IAAImD,OAASh9C,EAAEwP,GAAG,GAAGiW,MAAMu3B,OAASh9C,EAAE0P,GAAG,GAAGmqC,IAAImD,OAASh9C,EAAE0P,GAAG,GAAG+V,MAAMu3B,QAAU,GACtL,SACF1tC,EAAItP,EAAEwP,GAAG,GAAGqqC,IAAImD,OAASh9C,EAAEwP,GAAG,GAAGiW,MAAMu3B,OAAS,GAAKh9C,EAAE0P,GAAG,GAAGmqC,IAAImD,OAASh9C,EAAE0P,GAAG,GAAG+V,MAAMu3B,OAAS,EAAI,EAAI,EACzG,MAAMtsC,EAAI,IACL1Q,EAAEwP,GAAG,GAAGqqC,KACV15C,EAAI,IACFH,EAAE0P,GAAG,GAAG+V,OAEblN,GAAG7H,GAAIpB,GAAIiJ,GAAGpY,EAAGmP,GAAIzE,EAAI,CACvBhM,KAAMyQ,EAAI,EAAI,iBAAmB,mBACjCmW,MAAO/U,EACPmpC,IAAK,IACA75C,EAAEwP,GAAG,GAAGqqC,MAEZtqC,EAAI,CACL1Q,KAAMyQ,EAAI,EAAI,iBAAmB,mBACjCmW,MAAO,IACFzlB,EAAE0P,GAAG,GAAG+V,OAEbo0B,IAAK15C,GACJmC,EAAI,CACLzD,KAAMyQ,EAAI,EAAI,aAAe,eAC7BmW,MAAO,IACFzlB,EAAEwP,GAAG,GAAGqqC,KAEbA,IAAK,IACA75C,EAAE0P,GAAG,GAAG+V,QAEZ3V,EAAI,CACLjR,KAAMyQ,EAAI,EAAI,SAAW,WACzBmW,MAAO,IACF5a,EAAE4a,OAEPo0B,IAAK,IACAtqC,EAAEsqC,MAEN75C,EAAEwP,GAAG,GAAGqqC,IAAM,IACZhvC,EAAE4a,OACJzlB,EAAE0P,GAAG,GAAG+V,MAAQ,IACdlW,EAAEsqC,KACJ9pC,EAAI,GAAI/P,EAAEwP,GAAG,GAAGqqC,IAAImD,OAASh9C,EAAEwP,GAAG,GAAGiW,MAAMu3B,SAAWjtC,EAAIiiB,GAAGjiB,EAAG,CAAC,CAAC,QAAS/P,EAAEwP,GAAG,GAAIH,GAAI,CAAC,OAAQrP,EAAEwP,GAAG,GAAIH,MAAOU,EAAIiiB,GAAGjiB,EAAG,CAAC,CAAC,QAASD,EAAGT,GAAI,CAAC,QAASxE,EAAGwE,GAAI,CAAC,OAAQxE,EAAGwE,GAAI,CAAC,QAAS/M,EAAG+M,KAAMU,EAAIiiB,GAAGjiB,EAAGo7C,GAAG97C,EAAEq6C,OAAOC,WAAW8B,WAAWP,KAAMlrD,EAAE0hB,MAAMlS,EAAI,EAAGE,GAAIL,IAAKU,EAAIiiB,GAAGjiB,EAAG,CAAC,CAAC,OAAQzN,EAAG+M,GAAI,CAAC,QAASE,EAAGF,GAAI,CAAC,OAAQE,EAAGF,GAAI,CAAC,OAAQS,EAAGT,KAAMrP,EAAE0P,GAAG,GAAGmqC,IAAImD,OAASh9C,EAAE0P,GAAG,GAAG+V,MAAMu3B,QAAUvtC,EAAI,EAAGM,EAAIiiB,GAAGjiB,EAAG,CAAC,CAAC,QAAS/P,EAAE0P,GAAG,GAAIL,GAAI,CAAC,OAAQrP,EAAE0P,GAAG,GAAIL,MAAQI,EAAI,EAAGzE,GAAGhL,EAAGwP,EAAI,EAAGE,EAAIF,EAAI,EAAGO,GAAIL,EAAIF,EAAIO,EAAE2J,OAASjK,EAAI,EACtgB,KACV,CAEE,IAAKC,GAAM,IAAIA,EAAI1P,EAAE0Z,QACF,sBAAjB1Z,EAAE0P,GAAG,GAAG7Q,OAAiCmB,EAAE0P,GAAG,GAAG7Q,KAAO,QAC1D,OAAOmB,CACT,EAxDEwpD,SAyDF,SAAYxpD,EAAGqP,GACb,MAAMK,EAAIopB,KAAK4wB,OAAOC,WAAW+B,iBAAiBR,KAAM17C,EAAIspB,KAAKgxB,SAAUh6C,EAAIV,GAAGI,GAClF,IAAIlN,EACJ,OACA,SAAWgN,GACT,OAAOhN,EAAIgN,EAAGtP,EAAEopD,MAAM,qBAAsB75C,EAAED,EAClD,EACE,SAASC,EAAED,GACT,GAAIA,IAAMhN,EACR,OAAOtC,EAAEqpD,QAAQ/5C,GAAIC,EACvB,MAAMQ,EAAI/P,EAAEspD,KAAK,qBAAsB75C,EAAIL,GAAGE,GAAIoB,GAAKjB,GAAW,IAANA,GAAWK,GAAKJ,EAAEkQ,SAAStQ,GAAInP,GAAK2P,GAAW,IAANA,GAAWL,GAAKC,EAAEkQ,SAASpQ,GAChI,OAAOO,EAAEw7C,SAAiB,KAANjpD,EAAWoO,EAAIA,IAAMZ,IAAM3P,IAAK4P,EAAEu7C,UAAkB,KAANhpD,EAAWnC,EAAIA,IAAMsP,IAAMiB,IAAKrB,EAAEC,EACxG,CACA,GACA,SAASiJ,GAAGvY,EAAGqP,GACbrP,EAAE6iD,QAAUxzC,EAAGrP,EAAEg9C,QAAU3tC,EAAGrP,EAAE2rD,cAAgBt8C,CAClD,CACA,MAAMu8C,GAAK,CACTpoC,KAAM,WACNgmC,SAEF,SAAYxpD,EAAGqP,EAAGK,GAChB,IAAIF,EAAI,EACR,OACA,SAAWiD,GACT,OAAOzS,EAAEopD,MAAM,YAAappD,EAAEopD,MAAM,kBAAmBppD,EAAEqpD,QAAQ52C,GAAIzS,EAAEspD,KAAK,kBAAmBtpD,EAAEopD,MAAM,oBAAqB9mD,CAChI,EACE,SAASA,EAAEmQ,GACT,OAAO8P,GAAG9P,IAAMzS,EAAEqpD,QAAQ52C,GAAI5H,GAAW,KAAN4H,EAAW/C,EAAE+C,GAAK1C,EAAE0C,EAC3D,CACE,SAAS5H,EAAE4H,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYnS,GAAGmS,IAAMjD,EAAI,EAAGD,EAAEkD,IAAM1C,EAAE0C,EACzE,CACE,SAASlD,EAAEkD,GACT,OAAa,KAANA,GAAYzS,EAAEqpD,QAAQ52C,GAAIjD,EAAI,EAAGF,IAAY,KAANmD,GAAkB,KAANA,GAAkB,KAANA,GAAYnS,GAAGmS,KAAOjD,IAAM,IAAMxP,EAAEqpD,QAAQ52C,GAAIlD,IAAMC,EAAI,EAAGO,EAAE0C,GACzI,CACE,SAASnD,EAAEmD,GACT,OAAa,KAANA,GAAYzS,EAAEspD,KAAK,oBAAqBtpD,EAAEopD,MAAM,kBAAmBppD,EAAEqpD,QAAQ52C,GAAIzS,EAAEspD,KAAK,kBAAmBtpD,EAAEspD,KAAK,YAAaj6C,GAAW,OAANoD,GAAoB,KAANA,GAAkB,KAANA,GAAYk2C,GAAGl2C,GAAK/C,EAAE+C,IAAMzS,EAAEqpD,QAAQ52C,GAAInD,EACnN,CACE,SAASS,EAAE0C,GACT,OAAa,KAANA,GAAYzS,EAAEqpD,QAAQ52C,GAAIhD,GAAKi5C,GAAGj2C,IAAMzS,EAAEqpD,QAAQ52C,GAAI1C,GAAKL,EAAE+C,EACxE,CACE,SAAShD,EAAEgD,GACT,OAAOnS,GAAGmS,GAAK/B,EAAE+B,GAAK/C,EAAE+C,EAC5B,CACE,SAAS/B,EAAE+B,GACT,OAAa,KAANA,GAAYzS,EAAEqpD,QAAQ52C,GAAIjD,EAAI,EAAGC,GAAW,KAANgD,GAAYzS,EAAEspD,KAAK,oBAAoBzqD,KAAO,gBAAiBmB,EAAEopD,MAAM,kBAAmBppD,EAAEqpD,QAAQ52C,GAAIzS,EAAEspD,KAAK,kBAAmBtpD,EAAEspD,KAAK,YAAaj6C,GAAKlP,EAAEsS,EAC9M,CACE,SAAStS,EAAEsS,GACT,IAAW,KAANA,GAAYnS,GAAGmS,KAAOjD,IAAM,GAAI,CACnC,MAAM6C,EAAU,KAANI,EAAWtS,EAAIuQ,EACzB,OAAO1Q,EAAEqpD,QAAQ52C,GAAIJ,CAC3B,CACI,OAAO3C,EAAE+C,EACb,CACA,GACA,MAAMo5C,GAAK,CACTC,SAAS,EACTtC,SAEF,SAAYxpD,EAAGqP,EAAGK,GAChB,OACA,SAAWpN,GACT,OAAO4R,GAAE5R,GAAKsa,GAAE5c,EAAG8P,EAAG,aAAR8M,CAAsBta,GAAKwN,EAAExN,EAC/C,EACE,SAASwN,EAAExN,GACT,OAAa,OAANA,GAAcuR,GAAEvR,GAAK+M,EAAE/M,GAAKoN,EAAEpN,EACzC,CACA,GACA,MAAM8hB,GAAK,CACT8lC,aAAc,CACZV,SAsBJ,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OACA,SAAWjuB,GACT,OAAOqJ,GAAErJ,GAAK+R,GAAE5c,EAAGsC,EAAG,aAAckN,EAAEk6C,OAAOC,WAAWsB,QAAQC,KAAKtrC,SAAS,qBAAkB,EAAS,EAA3FhD,CAA8F/R,GAAKvI,EAAEuI,EACvH,EACE,SAASvI,EAAEuI,GACT,OAAO7K,EAAEypD,QAAQrlC,GAAI/U,EAAGK,EAAjB1P,CAAoB6K,EAC/B,CACA,GA7BEy+C,KA8BF,SAAYtpD,GACVA,EAAEspD,KAAK,aACT,EA/BE9lC,KAAM,aACNgmC,SAEF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OACA,SAAWjuB,GACT,GAAU,KAANA,EAAU,CACZ,MAAM0E,EAAIC,EAAEy6C,eACZ,OAAO16C,EAAE1M,OAAS7C,EAAEopD,MAAM,aAAc,CACtC2C,YAAY,IACVx8C,EAAE1M,MAAO,GAAK7C,EAAEopD,MAAM,oBAAqBppD,EAAEopD,MAAM,oBAAqBppD,EAAEqpD,QAAQx+C,GAAI7K,EAAEspD,KAAK,oBAAqBhnD,CAC5H,CACI,OAAOoN,EAAE7E,EACb,EACE,SAASvI,EAAEuI,GACT,OAAOqJ,GAAErJ,IAAM7K,EAAEopD,MAAM,8BAA+BppD,EAAEqpD,QAAQx+C,GAAI7K,EAAEspD,KAAK,8BAA+BtpD,EAAEspD,KAAK,oBAAqBj6C,IAAMrP,EAAEspD,KAAK,oBAAqBj6C,EAAExE,GAC9K,CACA,GAcA,MAAMud,GAAK,CACT5E,KAAM,kBACNgmC,SAEF,SAAYxpD,EAAGqP,EAAGK,GAChB,OACA,SAAWpN,GACT,OAAOtC,EAAEopD,MAAM,mBAAoBppD,EAAEopD,MAAM,gBAAiBppD,EAAEqpD,QAAQ/mD,GAAItC,EAAEspD,KAAK,gBAAiBx5C,CACtG,EACE,SAASA,EAAExN,GACT,OAAOwmD,GAAGxmD,IAAMtC,EAAEopD,MAAM,wBAAyBppD,EAAEqpD,QAAQ/mD,GAAItC,EAAEspD,KAAK,wBAAyBtpD,EAAEspD,KAAK,mBAAoBj6C,GAAKK,EAAEpN,EACrI,CACA,GACA,MAAMwsB,GAAK,CACTtL,KAAM,qBACNgmC,SAEF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,IAAWx2B,EAAGuI,EAAViF,EAAI,EACR,OACA,SAAWY,GACT,OAAO1Q,EAAEopD,MAAM,sBAAuBppD,EAAEopD,MAAM,4BAA6BppD,EAAEqpD,QAAQ34C,GAAI1Q,EAAEspD,KAAK,4BAA6Bh6C,CACjI,EACE,SAASA,EAAEoB,GACT,OAAa,KAANA,GAAY1Q,EAAEopD,MAAM,mCAAoCppD,EAAEqpD,QAAQ34C,GAAI1Q,EAAEspD,KAAK,mCAAoCv5C,IAAM/P,EAAEopD,MAAM,2BAA4B9mD,EAAI,GAAIuI,EAAIvK,GAAImP,EAAEiB,GACxL,CACE,SAASX,EAAEW,GACT,OAAa,KAANA,GAAkB,MAANA,GAAa1Q,EAAEopD,MAAM,uCAAwCppD,EAAEqpD,QAAQ34C,GAAI1Q,EAAEspD,KAAK,uCAAwCtpD,EAAEopD,MAAM,2BAA4B9mD,EAAI,EAAGuI,EAAIg+C,GAAIp5C,IAAMzP,EAAEopD,MAAM,2BAA4B9mD,EAAI,EAAGuI,EAAI+9C,GAAIn5C,EAAEiB,GAC/P,CACE,SAASjB,EAAEiB,GACT,GAAU,KAANA,GAAYZ,EAAG,CACjB,MAAM3P,EAAIH,EAAEspD,KAAK,2BACjB,OAAOz+C,IAAMvK,IAAO4nD,GAAG14C,EAAEg8C,eAAerrD,KAAcH,EAAEopD,MAAM,4BAA6BppD,EAAEqpD,QAAQ34C,GAAI1Q,EAAEspD,KAAK,4BAA6BtpD,EAAEspD,KAAK,sBAAuBj6C,GAA7HK,EAAEgB,EACtD,CACI,OAAO7F,EAAE6F,IAAMZ,IAAMxN,GAAKtC,EAAEqpD,QAAQ34C,GAAIjB,GAAKC,EAAEgB,EACnD,CACA,GACA,MAAMN,GAAK,CACT07C,SAAS,EACTtC,SA6EF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OACA,SAAWjuB,GACT,OAAa,OAANA,EAAa6E,EAAE7E,IAAM7K,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQx+C,GAAI7K,EAAEspD,KAAK,cAAehnD,EAC3F,EACE,SAASA,EAAEuI,GACT,OAAO2E,EAAEk6C,OAAOiB,KAAKn7C,EAAEo7C,MAAMhI,MAAQlzC,EAAE7E,GAAKwE,EAAExE,EAClD,CACA,GArFGuQ,GAAK,CACNkvC,UAAU,EACV9mC,KAAM,aACNgmC,SAEF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KAAMhpB,EAAI,CAClBg8C,SAAS,EACTtC,SAgDF,SAAWl3C,EAAGf,EAAGtR,GACf,IAAIkS,EAAI,EACR,OAAOkB,EACP,SAASA,EAAEV,GACT,OAAOL,EAAE82C,MAAM,cAAe92C,EAAE+2C,QAAQ12C,GAAIL,EAAEg3C,KAAK,cAAe71C,CACxE,CACI,SAASA,EAAEd,GACT,OAAOL,EAAE82C,MAAM,mBAAoBl1C,GAAEvB,GAAKiK,GAAEtK,EAAGO,EAAG,aAAcrD,EAAEk6C,OAAOC,WAAWsB,QAAQC,KAAKtrC,SAAS,qBAAkB,EAAS,EAA3FhD,CAA8FjK,GAAKE,EAAEF,EACrJ,CACI,SAASE,EAAEF,GACT,OAAOA,IAAMpD,GAAK+C,EAAE82C,MAAM,2BAA4Bh3C,EAAEO,IAAM1S,EAAE0S,EACtE,CACI,SAASP,EAAEO,GACT,OAAOA,IAAMpD,GAAK4C,IAAKG,EAAE+2C,QAAQ12C,GAAIP,GAAKD,GAAKtH,GAAKyH,EAAEg3C,KAAK,2BAA4Bp1C,GAAEvB,GAAKiK,GAAEtK,EAAGY,EAAG,aAAR0J,CAAsBjK,GAAKO,EAAEP,IAAM1S,EAAE0S,EACzI,CACI,SAASO,EAAEP,GACT,OAAa,OAANA,GAAckB,GAAElB,IAAML,EAAEg3C,KAAK,mBAAoB/3C,EAAEoB,IAAM1S,EAAE0S,EACxE,CACA,GAhEE,IAAkBpD,EAAdjN,EAAI,EAAGuI,EAAI,EACf,OACA,SAAWyH,GACT,OAEF,SAAWA,GACT,MAAMf,EAAI/B,EAAE46C,OAAO56C,EAAE46C,OAAO1wC,OAAS,GACrC,OAAOpX,EAAIiP,GAAmB,eAAdA,EAAE,GAAG1S,KAAwB0S,EAAE,GAAGi6C,eAAej6C,EAAE,IAAI,GAAImI,OAAS,EAAGnK,EAAI+C,EAAGtS,EAAEopD,MAAM,cAAeppD,EAAEopD,MAAM,mBAAoBppD,EAAEopD,MAAM,2BAA4B35C,EAAE6C,EAC3L,CALWvC,CAAEuC,EACb,EAKE,SAAS7C,EAAE6C,GACT,OAAOA,IAAM/C,GAAK1E,IAAK7K,EAAEqpD,QAAQ/2C,GAAI7C,GAAK5E,EAAI,EAAI6E,EAAE4C,IAAMtS,EAAEspD,KAAK,2BAA4Bp1C,GAAE5B,GAAKsK,GAAE5c,EAAG0Q,EAAG,aAARkM,CAAsBtK,GAAK5B,EAAE4B,GACrI,CACE,SAAS5B,EAAE4B,GACT,OAAa,OAANA,GAAcuB,GAAEvB,IAAMtS,EAAEspD,KAAK,mBAAoB95C,EAAE+6C,UAAYl7C,EAAEiD,GAAKtS,EAAEyqD,MAAMr6C,GAAIO,EAAG2C,EAAftT,CAAkBsS,KAAOtS,EAAEopD,MAAM,uBAAwBppD,EAAEopD,MAAM,cAAe,CAC3JS,YAAa,WACX1pD,EAAEmS,GACV,CACE,SAASnS,EAAEmS,GACT,OAAa,OAANA,GAAcuB,GAAEvB,IAAMtS,EAAEspD,KAAK,eAAgBtpD,EAAEspD,KAAK,uBAAwB54C,EAAE4B,IAAM4B,GAAE5B,IAAMtS,EAAEspD,KAAK,eAAgBtpD,EAAEspD,KAAK,uBAAwB1sC,GAAE5c,EAAGyS,EAAG,aAARmK,CAAsBtK,IAAY,KAANA,GAAYA,IAAM/C,EAAIG,EAAE4C,IAAMtS,EAAEqpD,QAAQ/2C,GAAInS,EACrO,CACE,SAASsS,EAAEH,GACT,OAAa,OAANA,GAAcuB,GAAEvB,GAAK5B,EAAE4B,IAAMtS,EAAEopD,MAAM,uBAAwBppD,EAAEopD,MAAM,cAAe,CACzFS,YAAa,WACXx3C,EAAEC,GACV,CACE,SAASD,EAAEC,GACT,OAAa,OAANA,GAAcuB,GAAEvB,IAAMtS,EAAEspD,KAAK,eAAgBtpD,EAAEspD,KAAK,uBAAwB54C,EAAE4B,IAAY,KAANA,GAAYA,IAAM/C,EAAIG,EAAE4C,IAAMtS,EAAEqpD,QAAQ/2C,GAAID,EAC3I,CACE,SAAS1B,EAAE2B,GACT,OAAOtS,EAAEypD,QAAQ35C,EAAGwD,EAAGvT,EAAhBC,CAAmBsS,EAC9B,CACE,SAASvS,EAAEuS,GACT,OAAOtS,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQ/2C,GAAItS,EAAEspD,KAAK,cAAe7vC,CACtE,CACE,SAASA,EAAEnH,GACT,OAAOhQ,EAAI,GAAK4R,GAAE5B,GAAKsK,GAAE5c,EAAG0S,EAAG,aAAcpQ,EAAI,EAA1Bsa,CAA6BtK,GAAKI,EAAEJ,EAC/D,CACE,SAASI,EAAEJ,GACT,OAAa,OAANA,GAAcuB,GAAEvB,GAAKtS,EAAEyqD,MAAMr6C,GAAIO,EAAG2C,EAAftT,CAAkBsS,IAAMtS,EAAEopD,MAAM,iBAAkBx2C,EAAEN,GACpF,CACE,SAASM,EAAEN,GACT,OAAa,OAANA,GAAcuB,GAAEvB,IAAMtS,EAAEspD,KAAK,iBAAkB52C,EAAEJ,KAAOtS,EAAEqpD,QAAQ/2C,GAAIM,EACjF,CACE,SAASU,EAAEhB,GACT,OAAOtS,EAAEspD,KAAK,cAAej6C,EAAEiD,EACnC,CAoBA,GAWA,MAAM05C,GAAK,CACTxoC,KAAM,eACNgmC,SAKF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OACA,SAAW/oB,GACT,OAAO/P,EAAEopD,MAAM,gBAAiBxsC,GAAE5c,EAAGsC,EAAG,aAAc,EAAtBsa,CAAyB7M,EAC7D,EACE,SAASzN,EAAEyN,GACT,MAAMN,EAAID,EAAE46C,OAAO56C,EAAE46C,OAAO1wC,OAAS,GACrC,OAAOjK,GAAmB,eAAdA,EAAE,GAAG5Q,MAAyB4Q,EAAE,GAAG+7C,eAAe/7C,EAAE,IAAI,GAAIiK,QAAU,EAAI7O,EAAEkF,GAAKL,EAAEK,EACnG,CACE,SAASlF,EAAEkF,GACT,OAAa,OAANA,EAAaT,EAAES,GAAK8D,GAAE9D,GAAK/P,EAAEypD,QAAQwC,GAAIphD,EAAGyE,EAAjBtP,CAAoB+P,IAAM/P,EAAEopD,MAAM,iBAAkB75C,EAAEQ,GAC5F,CACE,SAASR,EAAEQ,GACT,OAAa,OAANA,GAAc8D,GAAE9D,IAAM/P,EAAEspD,KAAK,iBAAkBz+C,EAAEkF,KAAO/P,EAAEqpD,QAAQt5C,GAAIR,EACjF,CACE,SAASD,EAAES,GACT,OAAO/P,EAAEspD,KAAK,gBAAiBj6C,EAAEU,EACrC,CACA,GAvBGk8C,GAAK,CACNH,SAAS,EACTtC,SAsBF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OAAOhpB,EACP,SAASA,EAAEjF,GACT,OAAO2E,EAAEk6C,OAAOiB,KAAKn7C,EAAEo7C,MAAMhI,MAAQlzC,EAAE7E,GAAKgJ,GAAEhJ,IAAM7K,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQx+C,GAAI7K,EAAEspD,KAAK,cAAex5C,GAAK8M,GAAE5c,EAAGsC,EAAG,aAAc,EAAtBsa,CAAyB/R,EACjJ,CACE,SAASvI,EAAEuI,GACT,MAAM0E,EAAIC,EAAE46C,OAAO56C,EAAE46C,OAAO1wC,OAAS,GACrC,OAAOnK,GAAmB,eAAdA,EAAE,GAAG1Q,MAAyB0Q,EAAE,GAAGi8C,eAAej8C,EAAE,IAAI,GAAImK,QAAU,EAAIrK,EAAExE,GAAKgJ,GAAEhJ,GAAKiF,EAAEjF,GAAK6E,EAAE7E,EACjH,CACA,GACA,MAAMqhD,GAAK,CACT1oC,KAAM,WACNsmC,SAiBF,SAAY9pD,GACV,OAAa,KAANA,GAA4D,oBAAhD84B,KAAKsxB,OAAOtxB,KAAKsxB,OAAO1wC,OAAS,GAAG,GAAG7a,IAC5D,EAlBEstD,QAGF,SAAYnsD,GACV,IAA6BwP,EAAGM,EAA5BT,EAAIrP,EAAE0Z,OAAS,EAAGhK,EAAI,EAC1B,KAAsB,eAAjB1P,EAAE0P,GAAG,GAAG7Q,MAA0C,UAAjBmB,EAAE0P,GAAG,GAAG7Q,MAAuC,eAAjBmB,EAAEqP,GAAG,GAAGxQ,MAA0C,UAAjBmB,EAAEqP,GAAG,GAAGxQ,MAC3G,IAAK2Q,EAAIE,IAAKF,EAAIH,GAChB,GAAqB,iBAAjBrP,EAAEwP,GAAG,GAAG3Q,KAAyB,CACnCmB,EAAE0P,GAAG,GAAG7Q,KAAO,kBAAmBmB,EAAEqP,GAAG,GAAGxQ,KAAO,kBAAmB6Q,GAAK,EAAGL,GAAK,EACjF,KACR,CAEE,IAAKG,EAAIE,EAAI,EAAGL,MAAOG,GAAKH,QACpB,IAANS,EAAeN,IAAMH,GAAsB,eAAjBrP,EAAEwP,GAAG,GAAG3Q,OAA0BiR,EAAIN,IAAMA,IAAMH,GAAsB,eAAjBrP,EAAEwP,GAAG,GAAG3Q,QAA2BmB,EAAE8P,GAAG,GAAGjR,KAAO,eAAgB2Q,IAAMM,EAAI,IAAM9P,EAAE8P,GAAG,GAAG+pC,IAAM75C,EAAEwP,EAAI,GAAG,GAAGqqC,IAAK75C,EAAEmoD,OAAOr4C,EAAI,EAAGN,EAAIM,EAAI,GAAIT,GAAKG,EAAIM,EAAI,EAAGN,EAAIM,EAAI,GAAIA,OAAI,GAChQ,OAAO9P,CACT,EAdEwpD,SAkBF,SAAYxpD,EAAGqP,EAAGK,GAChB,IAAWI,EAAGxN,EAAVkN,EAAI,EACR,OACA,SAAWkB,GACT,OAAO1Q,EAAEopD,MAAM,YAAappD,EAAEopD,MAAM,oBAAqB75C,EAAEmB,EAC/D,EACE,SAASnB,EAAEmB,GACT,OAAa,KAANA,GAAY1Q,EAAEqpD,QAAQ34C,GAAIlB,IAAKD,IAAMvP,EAAEspD,KAAK,oBAAqBh6C,EAAEoB,GAC9E,CACE,SAASpB,EAAEoB,GACT,OAAa,OAANA,EAAahB,EAAEgB,GAAW,KAANA,GAAY1Q,EAAEopD,MAAM,SAAUppD,EAAEqpD,QAAQ34C,GAAI1Q,EAAEspD,KAAK,SAAUh6C,GAAW,KAANoB,GAAYpO,EAAItC,EAAEopD,MAAM,oBAAqBt5C,EAAI,EAAGL,EAAEiB,IAAMmD,GAAEnD,IAAM1Q,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQ34C,GAAI1Q,EAAEspD,KAAK,cAAeh6C,IAAMtP,EAAEopD,MAAM,gBAAiBr5C,EAAEW,GACjQ,CACE,SAASX,EAAEW,GACT,OAAa,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAYmD,GAAEnD,IAAM1Q,EAAEspD,KAAK,gBAAiBh6C,EAAEoB,KAAO1Q,EAAEqpD,QAAQ34C,GAAIX,EACxG,CACE,SAASN,EAAEiB,GACT,OAAa,KAANA,GAAY1Q,EAAEqpD,QAAQ34C,GAAIZ,IAAKL,GAAKK,IAAMN,GAAKxP,EAAEspD,KAAK,oBAAqBtpD,EAAEspD,KAAK,YAAaj6C,EAAEqB,KAAOpO,EAAEzD,KAAO,eAAgBkR,EAAEW,GAC9I,CACA,GACA,MAAM07C,GAOJ,WAAAtyB,CAAYzqB,GACVypB,KAAKve,KAAOlL,EAAI,IAAIA,GAAK,GAAIypB,KAAKre,MAAQ,EAC9C,CAUE,GAAAuM,CAAI3X,GACF,GAAIA,EAAI,GAAKA,GAAKypB,KAAKve,KAAKb,OAASof,KAAKre,MAAMf,OAC9C,MAAM,IAAI2yC,WAAW,wBAA0Bh9C,EAAI,kCAAoCypB,KAAKve,KAAKb,OAASof,KAAKre,MAAMf,QAAU,KACjI,OAAOrK,EAAIypB,KAAKve,KAAKb,OAASof,KAAKve,KAAKlL,GAAKypB,KAAKre,MAAMqe,KAAKre,MAAMf,OAASrK,EAAIypB,KAAKve,KAAKb,OAAS,EACvG,CAKE,UAAIA,GACF,OAAOof,KAAKve,KAAKb,OAASof,KAAKre,MAAMf,MACzC,CAQE,KAAA4yC,GACE,OAAOxzB,KAAKyzB,UAAU,GAAIzzB,KAAKre,MAAM8X,KACzC,CAYE,KAAA7Q,CAAMrS,EAAGK,GACP,MAAMF,EAAIE,GAAK4sB,OAAO6sB,kBACtB,OAAO35C,EAAIspB,KAAKve,KAAKb,OAASof,KAAKve,KAAKmH,MAAMrS,EAAGG,GAAKH,EAAIypB,KAAKve,KAAKb,OAASof,KAAKre,MAAMiH,MAAMoX,KAAKre,MAAMf,OAASlK,EAAIspB,KAAKve,KAAKb,OAAQof,KAAKre,MAAMf,OAASrK,EAAIypB,KAAKve,KAAKb,QAAQ8yC,UAAY1zB,KAAKve,KAAKmH,MAAMrS,GAAGo9C,OAAO3zB,KAAKre,MAAMiH,MAAMoX,KAAKre,MAAMf,OAASlK,EAAIspB,KAAKve,KAAKb,QAAQ8yC,UACvR,CAqBE,MAAArE,CAAO94C,EAAGK,EAAGF,GACX,MAAMM,EAAIJ,GAAK,EACfopB,KAAKyzB,UAAUzlC,KAAK4lC,MAAMr9C,IAC1B,MAAM/M,EAAIw2B,KAAKre,MAAM0tC,OAAOrvB,KAAKre,MAAMf,OAAS5J,EAAGwsB,OAAO6sB,mBAC1D,OAAO35C,GAAKm9C,GAAG7zB,KAAKve,KAAM/K,GAAIlN,EAAEkqD,SACpC,CASE,GAAAj6B,GACE,OAAOuG,KAAKyzB,UAAUjwB,OAAO6sB,mBAAoBrwB,KAAKve,KAAKgY,KAC/D,CAUE,IAAA5J,CAAKtZ,GACHypB,KAAKyzB,UAAUjwB,OAAO6sB,mBAAoBrwB,KAAKve,KAAKoO,KAAKtZ,EAC7D,CAUE,QAAAu9C,CAASv9C,GACPypB,KAAKyzB,UAAUjwB,OAAO6sB,mBAAoBwD,GAAG7zB,KAAKve,KAAMlL,EAC5D,CAUE,OAAAmS,CAAQnS,GACNypB,KAAKyzB,UAAU,GAAIzzB,KAAKre,MAAMkO,KAAKtZ,EACvC,CAUE,WAAAw9C,CAAYx9C,GACVypB,KAAKyzB,UAAU,GAAII,GAAG7zB,KAAKre,MAAOpL,EAAEm9C,UACxC,CAaE,SAAAD,CAAUl9C,GACR,KAAMA,IAAMypB,KAAKve,KAAKb,QAAUrK,EAAIypB,KAAKve,KAAKb,QAAgC,IAAtBof,KAAKre,MAAMf,QAAgBrK,EAAI,GAA0B,IAArBypB,KAAKve,KAAKb,QACpG,GAAIrK,EAAIypB,KAAKve,KAAKb,OAAQ,CACxB,MAAMhK,EAAIopB,KAAKve,KAAK4tC,OAAO94C,EAAGitB,OAAO6sB,mBACrCwD,GAAG7zB,KAAKre,MAAO/K,EAAE88C,UACzB,KAAa,CACL,MAAM98C,EAAIopB,KAAKre,MAAM0tC,OAAOrvB,KAAKve,KAAKb,OAASof,KAAKre,MAAMf,OAASrK,EAAGitB,OAAO6sB,mBAC7EwD,GAAG7zB,KAAKve,KAAM7K,EAAE88C,UACxB,CACA,EAEA,SAASG,GAAG3sD,EAAGqP,GACb,IAAIK,EAAI,EACR,GAAIL,EAAEqK,OAAS,IACb1Z,EAAE2oB,QAAQtZ,QAEV,KAAOK,EAAIL,EAAEqK,QACX1Z,EAAE2oB,QAAQtZ,EAAEqS,MAAMhS,EAAGA,EAAI,MAAOA,GAAK,GAC3C,CACA,SAAS4e,GAAGtuB,GACV,MAAMqP,EAAI,CAAE,EACZ,IAAYG,EAAGM,EAAGxN,EAAGuI,EAAG0E,EAAGD,EAAGS,EAA1BL,GAAM,EACV,MAAMD,EAAI,IAAI28C,GAAGpsD,GACjB,OAAS0P,EAAID,EAAEiK,QAAU,CACvB,KAAOhK,KAAKL,GACVK,EAAIL,EAAEK,GACR,GAAIF,EAAIC,EAAEuX,IAAItX,GAAIA,GAAmB,cAAdF,EAAE,GAAG3Q,MAAiD,mBAAzB4Q,EAAEuX,IAAItX,EAAI,GAAG,GAAG7Q,OAA8ByQ,EAAIE,EAAE,GAAGq7C,WAAWT,OAAQ9nD,EAAI,EAAGA,EAAIgN,EAAEoK,QAA2B,oBAAjBpK,EAAEhN,GAAG,GAAGzD,OAA+ByD,GAAK,GAAIA,EAAIgN,EAAEoK,QAA2B,YAAjBpK,EAAEhN,GAAG,GAAGzD,MAC3N,OAASyD,EAAIgN,EAAEoK,QAA2B,YAAjBpK,EAAEhN,GAAG,GAAGzD,MACd,cAAjByQ,EAAEhN,GAAG,GAAGzD,OAAyByQ,EAAEhN,GAAG,GAAGwqD,6BAA8B,EAAIxqD,KAC/E,GAAa,UAATkN,EAAE,GACJA,EAAE,GAAGq6C,cAAgBnqC,OAAOiZ,OAAOtpB,EAAG09C,GAAGt9C,EAAGC,IAAKA,EAAIL,EAAEK,GAAIK,GAAI,QAC5D,GAAIP,EAAE,GAAGu8C,WAAY,CACxB,IAAKzpD,EAAIoN,EAAGI,OAAI,EAAQxN,KACtB,GAAIuI,EAAI4E,EAAEuX,IAAI1kB,GAAkB,eAAduI,EAAE,GAAGhM,MAAuC,oBAAdgM,EAAE,GAAGhM,KAC1C,UAATgM,EAAE,KAAmBiF,IAAML,EAAEuX,IAAIlX,GAAG,GAAGjR,KAAO,mBAAoBgM,EAAE,GAAGhM,KAAO,aAAciR,EAAIxN,QAC7F,GAAkB,eAAduI,EAAE,GAAGhM,KAAuB,MACvCiR,IAAMN,EAAE,GAAGqqC,IAAM,IACZpqC,EAAEuX,IAAIlX,GAAG,GAAG2V,OACdlW,EAAIE,EAAEiS,MAAM5R,EAAGJ,GAAIH,EAAEiS,QAAQhS,GAAIC,EAAE04C,OAAOr4C,EAAGJ,EAAII,EAAI,EAAGP,GACjE,CACA,CACE,OAAOvE,GAAGhL,EAAG,EAAGs8B,OAAO6sB,kBAAmB15C,EAAEiS,MAAM,KAAM3R,CAC1D,CACA,SAASg9C,GAAG/sD,EAAGqP,GACb,MAAMK,EAAI1P,EAAEgnB,IAAI3X,GAAG,GAAIG,EAAIxP,EAAEgnB,IAAI3X,GAAG,GACpC,IAAIS,EAAIT,EAAI,EACZ,MAAM/M,EAAI,GAAIuI,EAAI6E,EAAEm7C,YAAcr7C,EAAEk6C,OAAOh6C,EAAEm6C,aAAan6C,EAAE+V,OAAQlW,EAAI1E,EAAEu/C,OAAQ96C,EAAI,GAAIS,EAAI,CAAE,EAChG,IAAIN,EAAGiB,EAAGvQ,GAAM,EAAEsS,EAAI/C,EAAG2C,EAAI,EAAG1B,EAAI,EACpC,MAAM5Q,EAAI,CAAC4Q,GACX,KAAO8B,GAAK,CACV,KAAOzS,EAAEgnB,MAAMlX,GAAG,KAAO2C,IAEzBnQ,EAAEqmB,KAAK7Y,GAAI2C,EAAEo4C,aAAep7C,EAAID,EAAEs7C,YAAYr4C,GAAIA,EAAEs3C,MAAQt6C,EAAEkZ,KAAK,MAAOjY,GAAK7F,EAAEkgD,WAAWt4C,EAAEgT,OAAQhT,EAAEq6C,8BAAgCjiD,EAAEmiD,oCAAqC,GAAKniD,EAAEmgD,MAAMv7C,GAAIgD,EAAEq6C,8BAAgCjiD,EAAEmiD,wCAAqC,IAAUt8C,EAAI+B,EAAGA,EAAIA,EAAEs3C,IACpS,CACE,IAAKt3C,EAAI/C,IAAKvP,EAAIoP,EAAEmK,QAEN,SAAZnK,EAAEpP,GAAG,IAAiC,UAAhBoP,EAAEpP,EAAI,GAAG,IAAkBoP,EAAEpP,GAAG,GAAGtB,OAAS0Q,EAAEpP,EAAI,GAAG,GAAGtB,MAAQ0Q,EAAEpP,GAAG,GAAGslB,MAAMm9B,OAASrzC,EAAEpP,GAAG,GAAG05C,IAAI+I,OAASjyC,EAAIxQ,EAAI,EAAGJ,EAAE4oB,KAAKhY,GAAI8B,EAAEo4C,gBAAa,EAAQp4C,EAAEq3C,cAAW,EAAQr3C,EAAIA,EAAEs3C,MAC5M,IAAKl/C,EAAEu/C,OAAS,GAAI33C,GAAKA,EAAEo4C,gBAAa,EAAQp4C,EAAEq3C,cAAW,GAAU/pD,EAAEwyB,MAAOpyB,EAAIJ,EAAE2Z,OAAQvZ,KAAO,CACnG,MAAMsZ,EAAIlK,EAAEmS,MAAM3hB,EAAEI,GAAIJ,EAAEI,EAAI,IAAKuS,EAAIpQ,EAAEiwB,MACzCjjB,EAAEqZ,KAAK,CAACjW,EAAGA,EAAI+G,EAAEC,OAAS,IAAK1Z,EAAEmoD,OAAOz1C,EAAG,EAAG+G,EAClD,CACE,IAAKnK,EAAEk9C,UAAWrsD,GAAI,IAAMA,EAAImP,EAAEoK,QAChC3J,EAAEsC,EAAI/C,EAAEnP,GAAG,IAAMkS,EAAI/C,EAAEnP,GAAG,GAAIkS,GAAK/C,EAAEnP,GAAG,GAAKmP,EAAEnP,GAAG,GAAK,EACzD,OAAO4P,CACT,CACA,MAAMk9C,GAAK,CACTd,QAMF,SAAYnsD,GACV,OAAOsuB,GAAGtuB,GAAIA,CAChB,EAPEwpD,SAQF,SAAYxpD,EAAGqP,GACb,IAAIK,EACJ,OACA,SAAWH,GACT,OAAOvP,EAAEopD,MAAM,WAAY15C,EAAI1P,EAAEopD,MAAM,eAAgB,CACrDS,YAAa,YACX/5C,EAAEP,EACV,EACE,SAASO,EAAEP,GACT,OAAa,OAANA,EAAajN,EAAEiN,GAAKsE,GAAEtE,GAAKvP,EAAEyqD,MAAMyC,GAAIriD,EAAGvI,EAAftC,CAAkBuP,IAAMvP,EAAEqpD,QAAQ95C,GAAIO,EAC5E,CACE,SAASxN,EAAEiN,GACT,OAAOvP,EAAEspD,KAAK,gBAAiBtpD,EAAEspD,KAAK,WAAYj6C,EAAEE,EACxD,CACE,SAAS1E,EAAE0E,GACT,OAAOvP,EAAEqpD,QAAQ95C,GAAIvP,EAAEspD,KAAK,gBAAiB55C,EAAEq6C,KAAO/pD,EAAEopD,MAAM,eAAgB,CAC5ES,YAAa,UACbC,SAAUp6C,IACRA,EAAIA,EAAEq6C,KAAMj6C,CACpB,CACA,GA3BGo9C,GAAK,CACNpB,SAAS,EACTtC,SA0BF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OACA,SAAWjuB,GACT,OAAO7K,EAAEspD,KAAK,gBAAiBtpD,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQx+C,GAAI7K,EAAEspD,KAAK,cAAe1sC,GAAE5c,EAAGsC,EAAG,aACtG,EACE,SAASA,EAAEuI,GACT,GAAU,OAANA,GAAcgJ,GAAEhJ,GAClB,OAAO6E,EAAE7E,GACX,MAAM0E,EAAIC,EAAE46C,OAAO56C,EAAE46C,OAAO1wC,OAAS,GACrC,OAAQlK,EAAEk6C,OAAOC,WAAWsB,QAAQC,KAAKtrC,SAAS,iBAAmBrQ,GAAmB,eAAdA,EAAE,GAAG1Q,MAAyB0Q,EAAE,GAAGi8C,eAAej8C,EAAE,IAAI,GAAImK,QAAU,EAAIrK,EAAExE,GAAK7K,EAAEuqD,UAAU/6C,EAAEk6C,OAAOC,WAAWl2B,KAAM/jB,EAAGL,EAAzCrP,CAA4C6K,EAC3M,CACA,GACA,SAASokB,GAAGjvB,EAAGqP,EAAGK,EAAGF,EAAGM,EAAGxN,EAAGuI,EAAG0E,EAAGD,GAClC,MAAMS,EAAIT,GAAKgtB,OAAO6sB,kBACtB,IAAI15C,EAAI,EACR,OACA,SAAWgK,GACT,OAAa,KAANA,GAAYzZ,EAAEopD,MAAM55C,GAAIxP,EAAEopD,MAAMt5C,GAAI9P,EAAEopD,MAAM9mD,GAAItC,EAAEqpD,QAAQ5vC,GAAIzZ,EAAEspD,KAAKhnD,GAAInC,GAAW,OAANsZ,GAAoB,KAANA,GAAkB,KAANA,GAAYkvC,GAAGlvC,GAAK/J,EAAE+J,IAAMzZ,EAAEopD,MAAM55C,GAAIxP,EAAEopD,MAAMv+C,GAAI7K,EAAEopD,MAAM75C,GAAIvP,EAAEopD,MAAM,cAAe,CACpMS,YAAa,WACXl5C,EAAE8I,GACV,EACE,SAAStZ,EAAEsZ,GACT,OAAa,KAANA,GAAYzZ,EAAEopD,MAAM9mD,GAAItC,EAAEqpD,QAAQ5vC,GAAIzZ,EAAEspD,KAAKhnD,GAAItC,EAAEspD,KAAKx5C,GAAI9P,EAAEspD,KAAK95C,GAAIH,IAAMrP,EAAEopD,MAAM75C,GAAIvP,EAAEopD,MAAM,cAAe,CACrHS,YAAa,WACXp3C,EAAEgH,GACV,CACE,SAAShH,EAAEgH,GACT,OAAa,KAANA,GAAYzZ,EAAEspD,KAAK,eAAgBtpD,EAAEspD,KAAK/5C,GAAIpP,EAAEsZ,IAAY,OAANA,GAAoB,KAANA,GAAY5F,GAAE4F,GAAK/J,EAAE+J,IAAMzZ,EAAEqpD,QAAQ5vC,GAAU,KAANA,EAAWpH,EAAII,EACvI,CACE,SAASJ,EAAEoH,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYzZ,EAAEqpD,QAAQ5vC,GAAIhH,GAAKA,EAAEgH,EACpE,CACE,SAAS9I,EAAE8I,GACT,OAAQhK,GAAY,OAANgK,GAAoB,KAANA,IAAY3F,GAAE2F,GAAuEhK,EAAIM,GAAW,KAAN0J,GAAYzZ,EAAEqpD,QAAQ5vC,GAAIhK,IAAKkB,GAAW,KAAN8I,GAAYzZ,EAAEqpD,QAAQ5vC,GAAIhK,IAAKkB,GAAW,OAAN8I,GAAoB,KAANA,GAAkB,KAANA,GAAYkvC,GAAGlvC,GAAK/J,EAAE+J,IAAMzZ,EAAEqpD,QAAQ5vC,GAAU,KAANA,EAAW1Z,EAAI4Q,IAApO3Q,EAAEspD,KAAK,eAAgBtpD,EAAEspD,KAAK/5C,GAAIvP,EAAEspD,KAAKz+C,GAAI7K,EAAEspD,KAAK95C,GAAIH,EAAEoK,GAC/G,CACE,SAAS1Z,EAAE0Z,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYzZ,EAAEqpD,QAAQ5vC,GAAI9I,GAAKA,EAAE8I,EACpE,CACA,CACA,SAAS6T,GAAGttB,EAAGqP,EAAGK,EAAGF,EAAGM,EAAGxN,GACzB,MAAMuI,EAAIiuB,KACV,IAAWxpB,EAAPC,EAAI,EACR,OACA,SAAWkD,GACT,OAAOzS,EAAEopD,MAAM55C,GAAIxP,EAAEopD,MAAMt5C,GAAI9P,EAAEqpD,QAAQ52C,GAAIzS,EAAEspD,KAAKx5C,GAAI9P,EAAEopD,MAAM9mD,GAAImN,CACxE,EACE,SAASA,EAAEgD,GACT,OAAOlD,EAAI,KAAa,OAANkD,GAAoB,KAANA,GAAkB,KAANA,IAAanD,GAKnD,KAANmD,IAAalD,GAAK,2BAA4B1E,EAAE6+C,OAAOC,WAAaj6C,EAAE+C,GAAW,KAANA,GAAYzS,EAAEspD,KAAKhnD,GAAItC,EAAEopD,MAAMt5C,GAAI9P,EAAEqpD,QAAQ52C,GAAIzS,EAAEspD,KAAKx5C,GAAI9P,EAAEspD,KAAK95C,GAAIH,GAAKwE,GAAEpB,IAAMzS,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQ52C,GAAIzS,EAAEspD,KAAK,cAAe75C,IAAMzP,EAAEopD,MAAM,cAAe,CACrPS,YAAa,WACXn5C,EAAE+B,GACV,CACE,SAAS/B,EAAE+B,GACT,OAAa,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAYoB,GAAEpB,IAAMlD,IAAM,KAAOvP,EAAEspD,KAAK,eAAgB75C,EAAEgD,KAAOzS,EAAEqpD,QAAQ52C,GAAInD,IAAMA,GAAK4E,GAAEzB,IAAW,KAANA,EAAWtS,EAAIuQ,EACrJ,CACE,SAASvQ,EAAEsS,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYzS,EAAEqpD,QAAQ52C,GAAIlD,IAAKmB,GAAKA,EAAE+B,EACzE,CACA,CACA,SAASya,GAAGltB,EAAGqP,EAAGK,EAAGF,EAAGM,EAAGxN,GACzB,IAAIuI,EACJ,OACA,SAAW1K,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYH,EAAEopD,MAAM55C,GAAIxP,EAAEopD,MAAMt5C,GAAI9P,EAAEqpD,QAAQlpD,GAAIH,EAAEspD,KAAKx5C,GAAIjF,EAAU,KAAN1K,EAAW,GAAKA,EAAGmP,GAAKI,EAAEvP,EAC9H,EACE,SAASmP,EAAEnP,GACT,OAAOA,IAAM0K,GAAK7K,EAAEopD,MAAMt5C,GAAI9P,EAAEqpD,QAAQlpD,GAAIH,EAAEspD,KAAKx5C,GAAI9P,EAAEspD,KAAK95C,GAAIH,IAAMrP,EAAEopD,MAAM9mD,GAAIyN,EAAE5P,GAC1F,CACE,SAAS4P,EAAE5P,GACT,OAAOA,IAAM0K,GAAK7K,EAAEspD,KAAKhnD,GAAIgN,EAAEzE,IAAY,OAAN1K,EAAauP,EAAEvP,GAAK0T,GAAE1T,IAAMH,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQlpD,GAAIH,EAAEspD,KAAK,cAAe1sC,GAAE5c,EAAG+P,EAAG,gBAAkB/P,EAAEopD,MAAM,cAAe,CAC3KS,YAAa,WACXp6C,EAAEtP,GACV,CACE,SAASsP,EAAEtP,GACT,OAAOA,IAAM0K,GAAW,OAAN1K,GAAc0T,GAAE1T,IAAMH,EAAEspD,KAAK,eAAgBv5C,EAAE5P,KAAOH,EAAEqpD,QAAQlpD,GAAU,KAANA,EAAWuQ,EAAIjB,EACzG,CACE,SAASiB,EAAEvQ,GACT,OAAOA,IAAM0K,GAAW,KAAN1K,GAAYH,EAAEqpD,QAAQlpD,GAAIsP,GAAKA,EAAEtP,EACvD,CACA,CACA,SAASw9B,GAAG39B,EAAGqP,GACb,IAAIK,EACJ,OACA,SAASF,EAAEM,GACT,OAAO+D,GAAE/D,IAAM9P,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQv5C,GAAI9P,EAAEspD,KAAK,cAAe55C,GAAI,EAAIF,GAAK0E,GAAEpE,GAAK8M,GAAE5c,EAAGwP,EAAGE,EAAI,aAAe,aAA3BkN,CAAyC9M,GAAKT,EAAES,EAClJ,CACA,CACA,MAAMq9C,GAAK,CACT3pC,KAAM,aACNgmC,SAKF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,IAAIhpB,EACJ,OACA,SAAW2C,GACT,OAAOzS,EAAEopD,MAAM,cAEjB,SAAW32C,GACT,OAAO6a,GAAGxJ,KACRtU,EACAxP,EACAuP,EAEAG,EACA,kBACA,wBACA,wBARK4d,CASL7a,EACN,CAbkC5H,CAAE4H,EACpC,EAaE,SAASlD,EAAEkD,GACT,OAAO3C,EAAI2S,GAAGjT,EAAEg8C,eAAeh8C,EAAE46C,OAAO56C,EAAE46C,OAAO1wC,OAAS,GAAG,IAAIgI,MAAM,GAAK,IAAU,KAANjP,GAAYzS,EAAEopD,MAAM,oBAAqBppD,EAAEqpD,QAAQ52C,GAAIzS,EAAEspD,KAAK,oBAAqBh6C,GAAKI,EAAE+C,EAC9K,CACE,SAASnD,EAAEmD,GACT,OAAOqB,GAAErB,GAAKkrB,GAAG39B,EAAG+P,EAAN4tB,CAASlrB,GAAK1C,EAAE0C,EAClC,CACE,SAAS1C,EAAE0C,GACT,OAAOwc,GACLjvB,EACAyP,EAEAC,EACA,wBACA,+BACA,qCACA,2BACA,8BATKuf,CAULxc,EACN,CACE,SAAShD,EAAEgD,GACT,OAAOzS,EAAEypD,QAAQ2D,GAAI18C,EAAGA,EAAjB1Q,CAAoByS,EAC/B,CACE,SAAS/B,EAAE+B,GACT,OAAOyB,GAAEzB,GAAKmK,GAAE5c,EAAGG,EAAG,aAARyc,CAAsBnK,GAAKtS,EAAEsS,EAC/C,CACE,SAAStS,EAAEsS,GACT,OAAa,OAANA,GAAcoB,GAAEpB,IAAMzS,EAAEspD,KAAK,cAAe95C,EAAEk6C,OAAO3qB,QAAQpW,KAAK7Y,GAAIT,EAAEoD,IAAM/C,EAAE+C,EAC3F,CACA,GAnDG26C,GAAK,CACNtB,SAAS,EACTtC,SAkDF,SAAYxpD,EAAGqP,EAAGK,GAChB,OACA,SAAWH,GACT,OAAOuE,GAAEvE,GAAKouB,GAAG39B,EAAG8P,EAAN6tB,CAASpuB,GAAKG,EAAEH,EAClC,EACE,SAASO,EAAEP,GACT,OAAO2d,GAAGltB,EAAGsC,EAAGoN,EAAG,kBAAmB,wBAAyB,wBAAxDwd,CAAiF3d,EAC5F,CACE,SAASjN,EAAEiN,GACT,OAAO2E,GAAE3E,GAAKqN,GAAE5c,EAAG6K,EAAG,aAAR+R,CAAsBrN,GAAK1E,EAAE0E,EAC/C,CACE,SAAS1E,EAAE0E,GACT,OAAa,OAANA,GAAcsE,GAAEtE,GAAKF,EAAEE,GAAKG,EAAEH,EACzC,CACA,GACA,MAAM4mB,GAAK,CACT3S,KAAM,kBACNgmC,SAEF,SAAYxpD,EAAGqP,EAAGK,GAChB,OACA,SAAWpN,GACT,OAAOtC,EAAEopD,MAAM,mBAAoBppD,EAAEqpD,QAAQ/mD,GAAIwN,CACrD,EACE,SAASA,EAAExN,GACT,OAAOuR,GAAEvR,IAAMtC,EAAEspD,KAAK,mBAAoBj6C,EAAE/M,IAAMoN,EAAEpN,EACxD,CACA,GACA,MAAM40B,GAAK,CACT1T,KAAM,aACN2oC,QAGF,SAAYnsD,EAAGqP,GACb,IAA6BS,EAAGxN,EAA5BoN,EAAI1P,EAAE0Z,OAAS,EAAGlK,EAAI,EAC1B,MAAwB,eAAjBxP,EAAEwP,GAAG,GAAG3Q,OAA0B2Q,GAAK,GAAIE,EAAI,EAAIF,GAAsB,eAAjBxP,EAAE0P,GAAG,GAAG7Q,OAA0B6Q,GAAK,GAAqB,uBAAjB1P,EAAE0P,GAAG,GAAG7Q,OAAkC2Q,IAAME,EAAI,GAAKA,EAAI,EAAIF,GAA0B,eAArBxP,EAAE0P,EAAI,GAAG,GAAG7Q,QAA2B6Q,GAAKF,EAAI,IAAME,EAAI,EAAI,GAAIA,EAAIF,IAAMM,EAAI,CAC9PjR,KAAM,iBACN4mB,MAAOzlB,EAAEwP,GAAG,GAAGiW,MACfo0B,IAAK75C,EAAE0P,GAAG,GAAGmqC,KACZv3C,EAAI,CACLzD,KAAM,YACN4mB,MAAOzlB,EAAEwP,GAAG,GAAGiW,MACfo0B,IAAK75C,EAAE0P,GAAG,GAAGmqC,IACbgQ,YAAa,QACZ7+C,GAAGhL,EAAGwP,EAAGE,EAAIF,EAAI,EAAG,CAAC,CAAC,QAASM,EAAGT,GAAI,CAAC,QAAS/M,EAAG+M,GAAI,CAAC,OAAQ/M,EAAG+M,GAAI,CAAC,OAAQS,EAAGT,MAAOrP,CAC/F,EAdEwpD,SAeF,SAAYxpD,EAAGqP,EAAGK,GAChB,IAAIF,EAAI,EACR,OACA,SAAWC,GACT,OAAOzP,EAAEopD,MAAM,cAEjB,SAAW35C,GACT,OAAOzP,EAAEopD,MAAM,sBAAuBv+C,EAAE4E,EAC5C,CAJkCnN,CAAEmN,EACpC,EAIE,SAAS5E,EAAE4E,GACT,OAAa,KAANA,GAAYD,IAAM,GAAKxP,EAAEqpD,QAAQ55C,GAAI5E,GAAW,OAAN4E,GAAcqE,GAAErE,IAAMzP,EAAEspD,KAAK,sBAAuB/5C,EAAEE,IAAMC,EAAED,EACnH,CACE,SAASF,EAAEE,GACT,OAAa,KAANA,GAAYzP,EAAEopD,MAAM,sBAAuB95C,EAAEG,IAAY,OAANA,GAAcoE,GAAEpE,IAAMzP,EAAEspD,KAAK,cAAej6C,EAAEI,IAAMyE,GAAEzE,GAAKmN,GAAE5c,EAAGuP,EAAG,aAARqN,CAAsBnN,IAAMzP,EAAEopD,MAAM,kBAAmBr5C,EAAEN,GAClL,CACE,SAASH,EAAEG,GACT,OAAa,KAANA,GAAYzP,EAAEqpD,QAAQ55C,GAAIH,IAAMtP,EAAEspD,KAAK,sBAAuB/5C,EAAEE,GAC3E,CACE,SAASM,EAAEN,GACT,OAAa,OAANA,GAAoB,KAANA,GAAYqE,GAAErE,IAAMzP,EAAEspD,KAAK,kBAAmB/5C,EAAEE,KAAOzP,EAAEqpD,QAAQ55C,GAAIM,EAC9F,CACA,GACA,MAAMs9C,GAAK,CACT,UACA,UACA,QACA,OACA,WACA,aACA,OACA,UACA,SACA,MACA,WACA,KACA,UACA,SACA,MACA,MACA,KACA,KACA,WACA,aACA,SACA,SACA,OACA,QACA,WACA,KACA,KACA,KACA,KACA,KACA,KACA,OACA,SACA,KACA,OACA,SACA,SACA,KACA,OACA,OACA,OACA,WACA,MACA,WACA,KACA,WACA,SACA,IACA,QACA,SACA,UACA,UACA,QACA,QACA,KACA,QACA,KACA,QACA,QACA,KACA,QACA,MACC7wC,GAAK,CAAC,MAAO,SAAU,QAAS,YAAa8wC,GAAK,CACnDhD,UAAU,EACV9mC,KAAM,WACN+pC,UASF,SAAYvtD,GACV,IAAIqP,EAAIrP,EAAE0Z,OACV,KAAOrK,MAAqB,UAAZrP,EAAEqP,GAAG,IAAmC,aAAjBrP,EAAEqP,GAAG,GAAGxQ,QAE/C,OAAOwQ,EAAI,GAA0B,eAArBrP,EAAEqP,EAAI,GAAG,GAAGxQ,OAA0BmB,EAAEqP,GAAG,GAAGoW,MAAQzlB,EAAEqP,EAAI,GAAG,GAAGoW,MAAOzlB,EAAEqP,EAAI,GAAG,GAAGoW,MAAQzlB,EAAEqP,EAAI,GAAG,GAAGoW,MAAOzlB,EAAEmoD,OAAO94C,EAAI,EAAG,IAAKrP,CACvJ,EAbEwpD,SAcF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,IAAIhpB,EAAGxN,EAAGuI,EAAG0E,EAAGD,EAChB,OACA,SAAW2D,GACT,OAEF,SAAWA,GACT,OAAOjT,EAAEopD,MAAM,YAAappD,EAAEopD,MAAM,gBAAiBppD,EAAEqpD,QAAQp2C,GAAIvC,CACvE,CAJWjB,CAAEwD,EACb,EAIE,SAASvC,EAAEuC,GACT,OAAa,KAANA,GAAYjT,EAAEqpD,QAAQp2C,GAAI9S,GAAW,KAAN8S,GAAYjT,EAAEqpD,QAAQp2C,GAAI3Q,GAAI,EAAIqO,GAAW,KAANsC,GAAYjT,EAAEqpD,QAAQp2C,GAAInD,EAAI,EAAGN,EAAE+6C,UAAYl7C,EAAI2D,GAAKuP,GAAGtP,IAAMjT,EAAEqpD,QAAQp2C,GAAIpI,EAAI6uB,OAAOuvB,aAAah2C,GAAIlT,GAAK2P,EAAEuD,EACnM,CACE,SAAS9S,EAAE8S,GACT,OAAa,KAANA,GAAYjT,EAAEqpD,QAAQp2C,GAAInD,EAAI,EAAG2C,GAAW,KAANQ,GAAYjT,EAAEqpD,QAAQp2C,GAAInD,EAAI,EAAGP,EAAI,EAAG8C,GAAKkQ,GAAGtP,IAAMjT,EAAEqpD,QAAQp2C,GAAInD,EAAI,EAAGN,EAAE+6C,UAAYl7C,EAAI2D,GAAKtD,EAAEuD,EACrJ,CACE,SAASR,EAAEQ,GACT,OAAa,KAANA,GAAYjT,EAAEqpD,QAAQp2C,GAAIzD,EAAE+6C,UAAYl7C,EAAI2D,GAAKtD,EAAEuD,EAC9D,CACE,SAASZ,EAAEY,GACT,MAAM/C,EAAK,SACX,OAAO+C,IAAM/C,EAAG+U,WAAW1V,MAAQvP,EAAEqpD,QAAQp2C,GAAU/C,IAANX,EAAkBC,EAAE+6C,UAAYl7C,EAAIwD,EAAIR,GAAK3C,EAAEuD,EACpG,CACE,SAAStC,EAAEsC,GACT,OAAOsP,GAAGtP,IAAMjT,EAAEqpD,QAAQp2C,GAAIpI,EAAI6uB,OAAOuvB,aAAah2C,GAAIlT,GAAK2P,EAAEuD,EACrE,CACE,SAASlT,EAAEkT,GACT,GAAU,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAYa,GAAEb,GAAI,CAC9C,MAAM/C,EAAW,KAAN+C,EAAUu6C,EAAK3iD,EAAEwY,cAC5B,OAAQnT,GAAO5N,IAAKka,GAAGoD,SAAS4tC,GAA2CH,GAAGztC,SAAS/U,EAAEwY,gBAAkBvT,EAAI,EAAGI,GAAMlQ,EAAEqpD,QAAQp2C,GAAIwG,GAAKjK,EAAE+6C,UAAYl7C,EAAE4D,GAAKJ,EAAEI,KAAOnD,EAAI,EAAGN,EAAE+6C,YAAc/6C,EAAEk6C,OAAOiB,KAAKn7C,EAAEo7C,MAAMhI,MAAQlzC,EAAEuD,GAAK3Q,EAAIoQ,EAAEO,GAAKL,EAAEK,KAA3MnD,EAAI,EAAGN,EAAE+6C,UAAYl7C,EAAE4D,GAAKJ,EAAEI,GAC3E,CACI,OAAa,KAANA,GAAY3S,GAAG2S,IAAMjT,EAAEqpD,QAAQp2C,GAAIpI,GAAK6uB,OAAOuvB,aAAah2C,GAAIlT,GAAK2P,EAAEuD,EAClF,CACE,SAASwG,EAAExG,GACT,OAAa,KAANA,GAAYjT,EAAEqpD,QAAQp2C,GAAIzD,EAAE+6C,UAAYl7C,EAAIwD,GAAKnD,EAAEuD,EAC9D,CACE,SAASP,EAAEO,GACT,OAAOiB,GAAEjB,IAAMjT,EAAEqpD,QAAQp2C,GAAIP,GAAKW,EAAEJ,EACxC,CACE,SAASL,EAAEK,GACT,OAAa,KAANA,GAAYjT,EAAEqpD,QAAQp2C,GAAII,GAAW,KAANJ,GAAkB,KAANA,GAAYsP,GAAGtP,IAAMjT,EAAEqpD,QAAQp2C,GAAIK,GAAKY,GAAEjB,IAAMjT,EAAEqpD,QAAQp2C,GAAIL,GAAKS,EAAEJ,EAC3H,CACE,SAASK,EAAEL,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAY3S,GAAG2S,IAAMjT,EAAEqpD,QAAQp2C,GAAIK,GAAKM,EAAEX,EACzF,CACE,SAASW,EAAEX,GACT,OAAa,KAANA,GAAYjT,EAAEqpD,QAAQp2C,GAAIX,GAAK4B,GAAEjB,IAAMjT,EAAEqpD,QAAQp2C,GAAIW,GAAKhB,EAAEK,EACvE,CACE,SAASX,EAAEW,GACT,OAAa,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,EAAWvD,EAAEuD,GAAW,KAANA,GAAkB,KAANA,GAAYjT,EAAEqpD,QAAQp2C,GAAI3D,EAAI2D,EAAG1B,GAAK2C,GAAEjB,IAAMjT,EAAEqpD,QAAQp2C,GAAIX,GAAKrS,EAAEgT,EAC9J,CACE,SAAS1B,EAAE0B,GACT,OAAOA,IAAM3D,GAAKtP,EAAEqpD,QAAQp2C,GAAI3D,EAAI,KAAM6C,GAAW,OAANc,GAAcY,GAAEZ,GAAKvD,EAAEuD,IAAMjT,EAAEqpD,QAAQp2C,GAAI1B,EAC9F,CACE,SAAStR,EAAEgT,GACT,OAAa,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAYa,GAAEb,GAAKW,EAAEX,IAAMjT,EAAEqpD,QAAQp2C,GAAIhT,EAC1I,CACE,SAASkS,EAAEc,GACT,OAAa,KAANA,GAAkB,KAANA,GAAYiB,GAAEjB,GAAKL,EAAEK,GAAKvD,EAAEuD,EACnD,CACE,SAASI,EAAEJ,GACT,OAAa,KAANA,GAAYjT,EAAEqpD,QAAQp2C,GAAIQ,GAAK/D,EAAEuD,EAC5C,CACE,SAASQ,EAAER,GACT,OAAa,OAANA,GAAcY,GAAEZ,GAAKJ,EAAEI,GAAKiB,GAAEjB,IAAMjT,EAAEqpD,QAAQp2C,GAAIQ,GAAK/D,EAAEuD,EACpE,CACE,SAASJ,EAAEI,GACT,OAAa,KAANA,GAAkB,IAANnD,GAAW9P,EAAEqpD,QAAQp2C,GAAIM,GAAW,KAANN,GAAkB,IAANnD,GAAW9P,EAAEqpD,QAAQp2C,GAAI/D,GAAW,KAAN+D,GAAkB,IAANnD,GAAW9P,EAAEqpD,QAAQp2C,GAAIlE,GAAY,KAANkE,GAAkB,IAANnD,GAAW9P,EAAEqpD,QAAQp2C,GAAID,GAAW,KAANC,GAAkB,IAANnD,GAAW9P,EAAEqpD,QAAQp2C,GAAI4f,IAAMhf,GAAEZ,IAAa,IAANnD,GAAiB,IAANA,EAAmE,OAANmD,GAAcY,GAAEZ,IAAMjT,EAAEspD,KAAK,gBAAiBl3C,EAAEa,KAAOjT,EAAEqpD,QAAQp2C,GAAIJ,IAAtH7S,EAAEspD,KAAK,gBAAiBtpD,EAAEyqD,MAAMgD,GAAIv0C,EAAI9G,EAAhBpS,CAAmBiT,GAC1S,CACE,SAASb,EAAEa,GACT,OAAOjT,EAAEyqD,MAAMiD,GAAIx6C,EAAGgG,EAAflZ,CAAmBiT,EAC9B,CACE,SAASC,EAAED,GACT,OAAOjT,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQp2C,GAAIjT,EAAEspD,KAAK,cAAe32C,CACtE,CACE,SAASA,EAAEM,GACT,OAAa,OAANA,GAAcY,GAAEZ,GAAKb,EAAEa,IAAMjT,EAAEopD,MAAM,gBAAiBv2C,EAAEI,GACnE,CACE,SAASM,EAAEN,GACT,OAAa,KAANA,GAAYjT,EAAEqpD,QAAQp2C,GAAID,GAAKH,EAAEI,EAC5C,CACE,SAAS/D,EAAE+D,GACT,OAAa,KAANA,GAAYjT,EAAEqpD,QAAQp2C,GAAIpI,EAAI,GAAIzJ,GAAMyR,EAAEI,EACrD,CACE,SAAS7R,EAAG6R,GACV,GAAU,KAANA,EAAU,CACZ,MAAM/C,EAAKrF,EAAEwY,cACb,OAAO7G,GAAGoD,SAAS1P,IAAOlQ,EAAEqpD,QAAQp2C,GAAIlE,GAAM8D,EAAEI,EACtD,CACI,OAAOsP,GAAGtP,IAAMpI,EAAE6O,OAAS,GAAK1Z,EAAEqpD,QAAQp2C,GAAIpI,GAAK6uB,OAAOuvB,aAAah2C,GAAI7R,GAAMyR,EAAEI,EACvF,CACE,SAAS4f,EAAG5f,GACV,OAAa,KAANA,GAAYjT,EAAEqpD,QAAQp2C,GAAID,GAAKH,EAAEI,EAC5C,CACE,SAASD,EAAEC,GACT,OAAa,KAANA,GAAYjT,EAAEqpD,QAAQp2C,GAAIlE,GAAY,KAANkE,GAAkB,IAANnD,GAAW9P,EAAEqpD,QAAQp2C,GAAID,GAAKH,EAAEI,EACvF,CACE,SAASlE,EAAGkE,GACV,OAAa,OAANA,GAAcY,GAAEZ,IAAMjT,EAAEspD,KAAK,gBAAiBpwC,EAAGjG,KAAOjT,EAAEqpD,QAAQp2C,GAAIlE,EACjF,CACE,SAASmK,EAAGjG,GACV,OAAOjT,EAAEspD,KAAK,YAAaj6C,EAAE4D,EACjC,CACA,GApHGw6C,GAAK,CACN3B,SAAS,EACTtC,SA6HF,SAAYxpD,EAAGqP,EAAGK,GAChB,OACA,SAAWI,GACT,OAAO9P,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQv5C,GAAI9P,EAAEspD,KAAK,cAAetpD,EAAEypD,QAAQoC,GAAIx8C,EAAGK,EACvF,CACA,GAjIGg+C,GAAK,CACN5B,SAAS,EACTtC,SAgHF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OACA,SAAWjuB,GACT,OAAOgJ,GAAEhJ,IAAM7K,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQx+C,GAAI7K,EAAEspD,KAAK,cAAehnD,GAAKoN,EAAE7E,EACrF,EACE,SAASvI,EAAEuI,GACT,OAAO2E,EAAEk6C,OAAOiB,KAAKn7C,EAAEo7C,MAAMhI,MAAQlzC,EAAE7E,GAAKwE,EAAExE,EAClD,CACA,GAOA,MAAM8iD,GAAK,CACTnqC,KAAM,WACNgmC,SAEF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,IAAIhpB,EAAGxN,EAAGuI,EACV,OACA,SAAWmI,GACT,OAAOhT,EAAEopD,MAAM,YAAappD,EAAEopD,MAAM,gBAAiBppD,EAAEqpD,QAAQr2C,GAAI1D,CACvE,EACE,SAASA,EAAE0D,GACT,OAAa,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAIjD,GAAW,KAANiD,GAAYhT,EAAEqpD,QAAQr2C,GAAIY,GAAW,KAANZ,GAAYhT,EAAEqpD,QAAQr2C,GAAIJ,GAAK2P,GAAGvP,IAAMhT,EAAEqpD,QAAQr2C,GAAI/S,GAAKyP,EAAEsD,EACtI,CACE,SAASjD,EAAEiD,GACT,OAAa,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAIvD,GAAW,KAANuD,GAAYhT,EAAEqpD,QAAQr2C,GAAI1Q,EAAI,EAAG+P,GAAKkQ,GAAGvP,IAAMhT,EAAEqpD,QAAQr2C,GAAIN,GAAKhD,EAAEsD,EAC9G,CACE,SAASvD,EAAEuD,GACT,OAAa,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAIP,GAAK/C,EAAEsD,EAC5C,CACE,SAAStC,EAAEsC,GACT,OAAa,OAANA,EAAatD,EAAEsD,GAAW,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAI7S,GAAK0T,GAAEb,IAAMnI,EAAI6F,EAAGxB,EAAE8D,KAAOhT,EAAEqpD,QAAQr2C,GAAItC,EACpG,CACE,SAASvQ,EAAE6S,GACT,OAAa,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAIP,GAAK/B,EAAEsC,EAC5C,CACE,SAASP,EAAEO,GACT,OAAa,KAANA,EAAWO,EAAEP,GAAW,KAANA,EAAW7S,EAAE6S,GAAKtC,EAAEsC,EACjD,CACE,SAASX,EAAEW,GACT,MAAMjE,EAAK,SACX,OAAOiE,IAAMjE,EAAGkW,WAAW3iB,MAAQtC,EAAEqpD,QAAQr2C,GAAUjE,IAANzM,EAAkBqO,EAAI0B,GAAK3C,EAAEsD,EAClF,CACE,SAASrC,EAAEqC,GACT,OAAa,OAANA,EAAatD,EAAEsD,GAAW,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAIjT,GAAK8T,GAAEb,IAAMnI,EAAI8F,EAAGzB,EAAE8D,KAAOhT,EAAEqpD,QAAQr2C,GAAIrC,EACpG,CACE,SAAS5Q,EAAEiT,GACT,OAAa,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAIyG,GAAK9I,EAAEqC,EAC5C,CACE,SAASyG,EAAEzG,GACT,OAAa,KAANA,EAAWO,EAAEP,GAAW,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAIyG,GAAK9I,EAAEqC,EAC9D,CACE,SAASN,EAAEM,GACT,OAAa,OAANA,GAAoB,KAANA,EAAWO,EAAEP,GAAKa,GAAEb,IAAMnI,EAAI6H,EAAGxD,EAAE8D,KAAOhT,EAAEqpD,QAAQr2C,GAAIN,EACjF,CACE,SAASE,EAAEI,GACT,OAAa,OAANA,EAAatD,EAAEsD,GAAW,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAIM,GAAKO,GAAEb,IAAMnI,EAAI+H,EAAG1D,EAAE8D,KAAOhT,EAAEqpD,QAAQr2C,GAAIJ,EACpG,CACE,SAASU,EAAEN,GACT,OAAa,KAANA,EAAWO,EAAEP,GAAKJ,EAAEI,EAC/B,CACE,SAASY,EAAEZ,GACT,OAAOuP,GAAGvP,IAAMhT,EAAEqpD,QAAQr2C,GAAIV,GAAK5C,EAAEsD,EACzC,CACE,SAASV,EAAEU,GACT,OAAa,KAANA,GAAY1S,GAAG0S,IAAMhT,EAAEqpD,QAAQr2C,GAAIV,GAAKf,EAAEyB,EACrD,CACE,SAASzB,EAAEyB,GACT,OAAOa,GAAEb,IAAMnI,EAAI0G,EAAGrC,EAAE8D,IAAMkB,GAAElB,IAAMhT,EAAEqpD,QAAQr2C,GAAIzB,GAAKgC,EAAEP,EAC/D,CACE,SAAS/S,EAAE+S,GACT,OAAa,KAANA,GAAY1S,GAAG0S,IAAMhT,EAAEqpD,QAAQr2C,GAAI/S,GAAW,KAAN+S,GAAkB,KAANA,GAAYc,GAAEd,GAAKb,EAAEa,GAAKtD,EAAEsD,EAC3F,CACE,SAASb,EAAEa,GACT,OAAa,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAIO,GAAW,KAANP,GAAkB,KAANA,GAAYuP,GAAGvP,IAAMhT,EAAEqpD,QAAQr2C,GAAIK,GAAKQ,GAAEb,IAAMnI,EAAIsH,EAAGjD,EAAE8D,IAAMkB,GAAElB,IAAMhT,EAAEqpD,QAAQr2C,GAAIb,GAAKoB,EAAEP,EAClJ,CACE,SAASK,EAAEL,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAY1S,GAAG0S,IAAMhT,EAAEqpD,QAAQr2C,GAAIK,GAAKI,EAAET,EACzF,CACE,SAASS,EAAET,GACT,OAAa,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAIH,GAAKgB,GAAEb,IAAMnI,EAAI4I,EAAGvE,EAAE8D,IAAMkB,GAAElB,IAAMhT,EAAEqpD,QAAQr2C,GAAIS,GAAKtB,EAAEa,EAC9F,CACE,SAASH,EAAEG,GACT,OAAa,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,EAAWtD,EAAEsD,GAAW,KAANA,GAAkB,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAIlD,EAAIkD,EAAGZ,GAAKyB,GAAEb,IAAMnI,EAAIgI,EAAG3D,EAAE8D,IAAMkB,GAAElB,IAAMhT,EAAEqpD,QAAQr2C,GAAIH,IAAM7S,EAAEqpD,QAAQr2C,GAAIE,EAClM,CACE,SAASd,EAAEY,GACT,OAAOA,IAAMlD,GAAK9P,EAAEqpD,QAAQr2C,GAAIlD,OAAI,EAAQ6C,GAAW,OAANK,EAAatD,EAAEsD,GAAKa,GAAEb,IAAMnI,EAAIuH,EAAGlD,EAAE8D,KAAOhT,EAAEqpD,QAAQr2C,GAAIZ,EAC/G,CACE,SAASc,EAAEF,GACT,OAAa,OAANA,GAAoB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,GAAkB,KAANA,EAAWtD,EAAEsD,GAAW,KAANA,GAAkB,KAANA,GAAYc,GAAEd,GAAKb,EAAEa,IAAMhT,EAAEqpD,QAAQr2C,GAAIE,EAChJ,CACE,SAASP,EAAEK,GACT,OAAa,KAANA,GAAkB,KAANA,GAAYc,GAAEd,GAAKb,EAAEa,GAAKtD,EAAEsD,EACnD,CACE,SAASO,EAAEP,GACT,OAAa,KAANA,GAAYhT,EAAEqpD,QAAQr2C,GAAIhT,EAAEspD,KAAK,gBAAiBtpD,EAAEspD,KAAK,YAAaj6C,GAAKK,EAAEsD,EACxF,CACE,SAAS9D,EAAE8D,GACT,OAAOhT,EAAEspD,KAAK,gBAAiBtpD,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQr2C,GAAIhT,EAAEspD,KAAK,cAAeloD,CAC9F,CACE,SAASA,EAAG4R,GACV,OAAOkB,GAAElB,GAAK4J,GAAE5c,EAAG6yB,EAAI,aAAcrjB,EAAEk6C,OAAOC,WAAWsB,QAAQC,KAAKtrC,SAAS,qBAAkB,EAAS,EAA5FhD,CAA+F5J,GAAK6f,EAAG7f,EACzH,CACE,SAAS6f,EAAG7f,GACV,OAAOhT,EAAEopD,MAAM,gBAAiBv+C,EAAEmI,EACtC,CACA,GACA,MAAM46C,GAAK,CACTpqC,KAAM,WACN4nC,WAUF,SAAYprD,GACV,IAAIqP,GAAM,EACV,MAAMK,EAAI,GACV,OAASL,EAAIrP,EAAE0Z,QAAU,CACvB,MAAMlK,EAAIxP,EAAEqP,GAAG,GACf,GAAIK,EAAEiZ,KAAK3oB,EAAEqP,IAAgB,eAAXG,EAAE3Q,MAAoC,cAAX2Q,EAAE3Q,MAAmC,aAAX2Q,EAAE3Q,KAAqB,CAC5F,MAAMiR,EAAe,eAAXN,EAAE3Q,KAAwB,EAAI,EACxC2Q,EAAE3Q,KAAO,OAAQwQ,GAAKS,CAC5B,CACA,CACE,OAAO9P,EAAE0Z,SAAWhK,EAAEgK,QAAU1O,GAAGhL,EAAG,EAAGA,EAAE0Z,OAAQhK,GAAI1P,CACzD,EApBEutD,UAqBF,SAAYvtD,EAAGqP,GACb,IAAyBS,EAAGxN,EAAGuI,EAAG0E,EAA9BG,EAAI1P,EAAE0Z,OAAQlK,EAAI,EACtB,KAAOE,KACL,GAAII,EAAI9P,EAAE0P,GAAG,GAAIpN,EAAG,CAClB,GAAe,SAAXwN,EAAEjR,MAA8B,cAAXiR,EAAEjR,MAAwBiR,EAAE+9C,UACnD,MACU,UAAZ7tD,EAAE0P,GAAG,IAA6B,cAAXI,EAAEjR,OAAyBiR,EAAE+9C,WAAY,EACjE,MAAM,GAAIhjD,GACT,GAAgB,UAAZ7K,EAAE0P,GAAG,KAA8B,eAAXI,EAAEjR,MAAoC,cAAXiR,EAAEjR,QAA0BiR,EAAEg+C,YAAcxrD,EAAIoN,EAAc,cAAXI,EAAEjR,MAAuB,CACjI2Q,EAAI,EACJ,KACR,MACsB,aAAXM,EAAEjR,OAAwBgM,EAAI6E,GACvC,MAAMJ,EAAI,CACRzQ,KAAuB,cAAjBmB,EAAEsC,GAAG,GAAGzD,KAAuB,OAAS,QAC9C4mB,MAAO,IACFzlB,EAAEsC,GAAG,GAAGmjB,OAEbo0B,IAAK,IACA75C,EAAEA,EAAE0Z,OAAS,GAAG,GAAGmgC,MAEvB9pC,EAAI,CACLlR,KAAM,QACN4mB,MAAO,IACFzlB,EAAEsC,GAAG,GAAGmjB,OAEbo0B,IAAK,IACA75C,EAAE6K,GAAG,GAAGgvC,MAEZpqC,EAAI,CACL5Q,KAAM,YACN4mB,MAAO,IACFzlB,EAAEsC,EAAIkN,EAAI,GAAG,GAAGqqC,KAErBA,IAAK,IACA75C,EAAE6K,EAAI,GAAG,GAAG4a,QAGnB,OAAOlW,EAAI,CAAC,CAAC,QAASD,EAAGD,GAAI,CAAC,QAASU,EAAGV,IAAKE,EAAIyiB,GAAGziB,EAAGvP,EAAE0hB,MAAMpf,EAAI,EAAGA,EAAIkN,EAAI,IAAKD,EAAIyiB,GAAGziB,EAAG,CAAC,CAAC,QAASE,EAAGJ,KAAME,EAAIyiB,GAAGziB,EAAG47C,GAAG97C,EAAEq6C,OAAOC,WAAW8B,WAAWP,KAAMlrD,EAAE0hB,MAAMpf,EAAIkN,EAAI,EAAG3E,EAAI,GAAIwE,IAAKE,EAAIyiB,GAAGziB,EAAG,CAAC,CAAC,OAAQE,EAAGJ,GAAIrP,EAAE6K,EAAI,GAAI7K,EAAE6K,EAAI,GAAI,CAAC,OAAQkF,EAAGV,KAAME,EAAIyiB,GAAGziB,EAAGvP,EAAE0hB,MAAM7W,EAAI,IAAK0E,EAAIyiB,GAAGziB,EAAG,CAAC,CAAC,OAAQD,EAAGD,KAAMrE,GAAGhL,EAAGsC,EAAGtC,EAAE0Z,OAAQnK,GAAIvP,CACvV,EA3DEwpD,SA4DF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,IAAyBx2B,EAAGuI,EAAxBiF,EAAIN,EAAE46C,OAAO1wC,OACjB,KAAO5J,KACL,IAA6B,eAAxBN,EAAE46C,OAAOt6C,GAAG,GAAGjR,MAAiD,cAAxB2Q,EAAE46C,OAAOt6C,GAAG,GAAGjR,QAA0B2Q,EAAE46C,OAAOt6C,GAAG,GAAGg+C,UAAW,CAC9GxrD,EAAIkN,EAAE46C,OAAOt6C,GAAG,GAChB,KACN,CACE,OACA,SAAW3P,GACT,OAAOmC,EAAIA,EAAEurD,UAAYn9C,EAAEvQ,IAAM0K,EAAI2E,EAAEk6C,OAAO3qB,QAAQnf,SAAS6C,GAAGjT,EAAEg8C,eAAe,CACjF/lC,MAAOnjB,EAAEu3C,IACTA,IAAKrqC,EAAEo7C,UACH5qD,EAAEopD,MAAM,YAAappD,EAAEopD,MAAM,eAAgBppD,EAAEqpD,QAAQlpD,GAAIH,EAAEspD,KAAK,eAAgBtpD,EAAEspD,KAAK,YAAah6C,GAAKI,EAAEvP,EACvH,EACE,SAASmP,EAAEnP,GACT,OAAa,KAANA,EAAWH,EAAEypD,QAAQsE,GAAIt+C,EAAG5E,EAAI4E,EAAIiB,EAAzB1Q,CAA4BG,GAAW,KAANA,EAAWH,EAAEypD,QAAQuE,GAAIv+C,EAAG5E,EAAIkF,EAAIW,EAAzB1Q,CAA4BG,GAAK0K,EAAI4E,EAAEtP,GAAKuQ,EAAEvQ,EAChH,CACE,SAAS4P,EAAE5P,GACT,OAAOH,EAAEypD,QAAQwE,GAAIx+C,EAAGiB,EAAjB1Q,CAAoBG,EAC/B,CACE,SAASsP,EAAEtP,GACT,OAAOkP,EAAElP,EACb,CACE,SAASuQ,EAAEvQ,GACT,OAAOmC,EAAEwrD,WAAY,EAAIp+C,EAAEvP,EAC/B,CACA,GAtFG4tD,GAAK,CACNvE,SAsFF,SAAYxpD,EAAGqP,EAAGK,GAChB,OACA,SAAWgB,GACT,OAAO1Q,EAAEopD,MAAM,YAAappD,EAAEopD,MAAM,kBAAmBppD,EAAEqpD,QAAQ34C,GAAI1Q,EAAEspD,KAAK,kBAAmBx5C,CACnG,EACE,SAASA,EAAEY,GACT,OAAOoD,GAAEpD,GAAKitB,GAAG39B,EAAGsC,EAANq7B,CAASjtB,GAAKpO,EAAEoO,EAClC,CACE,SAASpO,EAAEoO,GACT,OAAa,KAANA,EAAWjB,EAAEiB,GAAKue,GAAGjvB,EAAG6K,EAAG0E,EAAG,sBAAuB,6BAA8B,mCAAoC,yBAA0B,4BAA6B,GAA5J0f,CAAgKve,EAC7L,CACE,SAAS7F,EAAE6F,GACT,OAAOoD,GAAEpD,GAAKitB,GAAG39B,EAAGsP,EAANquB,CAASjtB,GAAKjB,EAAEiB,EAClC,CACE,SAASnB,EAAEmB,GACT,OAAOhB,EAAEgB,EACb,CACE,SAASpB,EAAEoB,GACT,OAAa,KAANA,GAAkB,KAANA,GAAkB,KAANA,EAAWwc,GAAGltB,EAAG+P,EAAGL,EAAG,gBAAiB,sBAAuB,sBAApDwd,CAA2Exc,GAAKjB,EAAEiB,EAChI,CACE,SAASX,EAAEW,GACT,OAAOoD,GAAEpD,GAAKitB,GAAG39B,EAAGyP,EAANkuB,CAASjtB,GAAKjB,EAAEiB,EAClC,CACE,SAASjB,EAAEiB,GACT,OAAa,KAANA,GAAY1Q,EAAEopD,MAAM,kBAAmBppD,EAAEqpD,QAAQ34C,GAAI1Q,EAAEspD,KAAK,kBAAmBtpD,EAAEspD,KAAK,YAAaj6C,GAAKK,EAAEgB,EACrH,CACA,GA/GGs9C,GAAK,CACNxE,SA+GF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OACA,SAAWvpB,GACT,OAAO+d,GAAGxJ,KAAKtU,EAAGxP,EAAGsC,EAAGuI,EAAG,YAAa,kBAAmB,kBAApDyiB,CAAuE/d,EAClF,EACE,SAASjN,EAAEiN,GACT,OAAOC,EAAEk6C,OAAO3qB,QAAQnf,SAAS6C,GAAGjT,EAAEg8C,eAAeh8C,EAAE46C,OAAO56C,EAAE46C,OAAO1wC,OAAS,GAAG,IAAIgI,MAAM,GAAG,KAAQrS,EAAEE,GAAKG,EAAEH,EACrH,CACE,SAAS1E,EAAE0E,GACT,OAAOG,EAAEH,EACb,CACA,GA1HG0+C,GAAK,CACNzE,SA0HF,SAAYxpD,EAAGqP,EAAGK,GAChB,OACA,SAAWpN,GACT,OAAOtC,EAAEopD,MAAM,aAAcppD,EAAEopD,MAAM,mBAAoBppD,EAAEqpD,QAAQ/mD,GAAItC,EAAEspD,KAAK,mBAAoBx5C,CACtG,EACE,SAASA,EAAExN,GACT,OAAa,KAANA,GAAYtC,EAAEopD,MAAM,mBAAoBppD,EAAEqpD,QAAQ/mD,GAAItC,EAAEspD,KAAK,mBAAoBtpD,EAAEspD,KAAK,aAAcj6C,GAAKK,EAAEpN,EACxH,CACA,GACA,MAAM4rD,GAAK,CACT1qC,KAAM,kBACN4nC,WAAYwC,GAAGxC,WACf5B,SAEF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OACA,SAAWvpB,GACT,OAAOvP,EAAEopD,MAAM,cAAeppD,EAAEopD,MAAM,oBAAqBppD,EAAEqpD,QAAQ95C,GAAIvP,EAAEspD,KAAK,oBAAqBhnD,CACzG,EACE,SAASA,EAAEiN,GACT,OAAa,KAANA,GAAYvP,EAAEopD,MAAM,eAAgBppD,EAAEqpD,QAAQ95C,GAAIvP,EAAEspD,KAAK,eAAgBtpD,EAAEspD,KAAK,cAAez+C,GAAK6E,EAAEH,EACjH,CACE,SAAS1E,EAAE0E,GACT,OAAa,KAANA,GAAY,2BAA4BC,EAAEk6C,OAAOC,WAAaj6C,EAAEH,GAAKF,EAAEE,EAClF,CACA,GACA,MAAM4+C,GAAK,CACT3qC,KAAM,iBACN4nC,WAAYwC,GAAGxC,WACf5B,SAEF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OACA,SAAWjuB,GACT,OAAO7K,EAAEopD,MAAM,aAAcppD,EAAEopD,MAAM,eAAgBppD,EAAEqpD,QAAQx+C,GAAI7K,EAAEspD,KAAK,eAAgBtpD,EAAEspD,KAAK,aAAchnD,CACnH,EACE,SAASA,EAAEuI,GACT,OAAa,KAANA,GAAY,2BAA4B2E,EAAEk6C,OAAOC,WAAaj6C,EAAE7E,GAAKwE,EAAExE,EAClF,CACA,GACA,MAAMujD,GAAK,CACT5qC,KAAM,aACNgmC,SAEF,SAAYxpD,EAAGqP,GACb,OACA,SAAWG,GACT,OAAOxP,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQ75C,GAAIxP,EAAEspD,KAAK,cAAe1sC,GAAE5c,EAAGqP,EAAG,aAC9E,CACA,GACA,MAAMtO,GAAK,CACTyiB,KAAM,gBACNgmC,SAEF,SAAYxpD,EAAGqP,EAAGK,GAChB,IAAWI,EAAPN,EAAI,EACR,OACA,SAAWO,GACT,OAAO/P,EAAEopD,MAAM,iBAEjB,SAAWr5C,GACT,OAAOD,EAAIC,EAAGR,EAAEQ,EACpB,CAJqClF,CAAEkF,EACvC,EAIE,SAASR,EAAEQ,GACT,OAAOA,IAAMD,GAAK9P,EAAEopD,MAAM,yBAA0B95C,EAAES,IAAMP,GAAK,IAAY,OAANO,GAAc8D,GAAE9D,KAAO/P,EAAEspD,KAAK,iBAAkBj6C,EAAEU,IAAML,EAAEK,EACrI,CACE,SAAST,EAAES,GACT,OAAOA,IAAMD,GAAK9P,EAAEqpD,QAAQt5C,GAAIP,IAAKF,IAAMtP,EAAEspD,KAAK,yBAA0Bp1C,GAAEnE,GAAK6M,GAAE5c,EAAGuP,EAAG,aAARqN,CAAsB7M,GAAKR,EAAEQ,GACpH,CACA,GACA,MAAM4D,GAAI,CACRu2C,aAAc,CACZV,SAiDJ,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OAAOtpB,EAAEy6C,eAAeE,gBAAa,EAAQnqD,EAAEyqD,MAAMoB,IACrD,SAAWt8C,GACT,OAAOC,EAAEy6C,eAAeoE,kBAAoB7+C,EAAEy6C,eAAeoE,mBAAqB7+C,EAAEy6C,eAAeqE,iBAAkB1xC,GAAE5c,EAAGqP,EAAG,iBAAkBG,EAAEy6C,eAAe3sC,KAAO,EAAlDV,CAAqDrN,EAC9K,IACE,SAAWA,GACT,OAAOC,EAAEy6C,eAAeoE,oBAAsBn6C,GAAE3E,IAAMC,EAAEy6C,eAAeoE,uBAAoB,EAAQ7+C,EAAEy6C,eAAeqE,sBAAmB,EAAQzjD,EAAE0E,KAAOC,EAAEy6C,eAAeoE,uBAAoB,EAAQ7+C,EAAEy6C,eAAeqE,sBAAmB,EAAQtuD,EAAEypD,QAAQ8E,GAAIl/C,EAAGxE,EAAjB7K,CAAoBuP,GACzQ,IACE,SAAS1E,EAAE0E,GACT,OAAOC,EAAEy6C,eAAeE,YAAa,EAAI36C,EAAE+6C,eAAY,EAAQ3tC,GAAE5c,EAAGA,EAAEypD,QAAQ91C,GAAGtE,EAAGK,GAAI,aAAcF,EAAEk6C,OAAOC,WAAWsB,QAAQC,KAAKtrC,SAAS,qBAAkB,EAAS,EAA5GhD,CAA+GrN,EAClL,CACA,GA3DE+5C,KAoEF,SAAYtpD,GACVA,EAAEspD,KAAKxwB,KAAKmxB,eAAeprD,KAC7B,EArEE2kB,KAAM,OACNgmC,SAQF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KAAMhpB,EAAIN,EAAE46C,OAAO56C,EAAE46C,OAAO1wC,OAAS,GAC/C,IAAIpX,EAAIwN,GAAmB,eAAdA,EAAE,GAAGjR,KAAwBiR,EAAE,GAAG07C,eAAe17C,EAAE,IAAI,GAAI4J,OAAS,EAAG7O,EAAI,EACxF,OACA,SAAW4H,GACT,MAAMJ,EAAI7C,EAAEy6C,eAAeprD,OAAe,KAAN4T,GAAkB,KAANA,GAAkB,KAANA,EAAW,gBAAkB,eACzF,GAAU,kBAANJ,GAAyB7C,EAAEy6C,eAAeuE,QAAU/7C,IAAMjD,EAAEy6C,eAAeuE,OAAS5F,GAAGn2C,GAAI,CAC7F,GAAIjD,EAAEy6C,eAAeprD,OAAS2Q,EAAEy6C,eAAeprD,KAAOwT,EAAGrS,EAAEopD,MAAM/2C,EAAG,CAClE05C,YAAY,KACH,kBAAN15C,EACH,OAAOrS,EAAEopD,MAAM,kBAAyB,KAAN32C,GAAkB,KAANA,EAAWzS,EAAEyqD,MAAM1pD,GAAI2O,EAAGK,EAAf/P,CAAkByS,GAAK1C,EAAE0C,GACpF,IAAKjD,EAAE+6C,WAAmB,KAAN93C,EAClB,OAAOzS,EAAEopD,MAAM,kBAAmBppD,EAAEopD,MAAM,iBAAkB95C,EAAEmD,EACtE,CACI,OAAO/C,EAAE+C,EACb,EACE,SAASnD,EAAEmD,GACT,OAAOm2C,GAAGn2C,MAAQ5H,EAAI,IAAM7K,EAAEqpD,QAAQ52C,GAAInD,KAAOE,EAAE+6C,WAAa1/C,EAAI,KAAO2E,EAAEy6C,eAAeuE,OAAS/7C,IAAMjD,EAAEy6C,eAAeuE,OAAe,KAAN/7C,GAAkB,KAANA,IAAazS,EAAEspD,KAAK,iBAAkBv5C,EAAE0C,IAAM/C,EAAE+C,EACrM,CACE,SAAS1C,EAAE0C,GACT,OAAOzS,EAAEopD,MAAM,kBAAmBppD,EAAEqpD,QAAQ52C,GAAIzS,EAAEspD,KAAK,kBAAmB95C,EAAEy6C,eAAeuE,OAASh/C,EAAEy6C,eAAeuE,QAAU/7C,EAAGzS,EAAEyqD,MAClIoB,GAEAr8C,EAAE+6C,UAAY76C,EAAID,EAClBzP,EAAEypD,QAAQgF,GAAItuD,EAAGuQ,GAEvB,CACE,SAASjB,EAAEgD,GACT,OAAOjD,EAAEy6C,eAAeqE,kBAAmB,EAAIhsD,IAAKnC,EAAEsS,EAC1D,CACE,SAAS/B,EAAE+B,GACT,OAAOyB,GAAEzB,IAAMzS,EAAEopD,MAAM,4BAA6BppD,EAAEqpD,QAAQ52C,GAAIzS,EAAEspD,KAAK,4BAA6BnpD,GAAKuP,EAAE+C,EACjH,CACE,SAAStS,EAAEsS,GACT,OAAOjD,EAAEy6C,eAAe3sC,KAAOhb,EAAIkN,EAAEg8C,eAAexrD,EAAEspD,KAAK,mBAAmB,GAAI5vC,OAAQrK,EAAEoD,EAChG,CACA,GA3CGg8C,GAAK,CACN3C,SAAS,EACTtC,SAkEF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OAAOlc,GAAE5c,GACT,SAAWsC,GACT,MAAMuI,EAAI2E,EAAE46C,OAAO56C,EAAE46C,OAAO1wC,OAAS,GACrC,OAAQxF,GAAE5R,IAAMuI,GAAmB,6BAAdA,EAAE,GAAGhM,KAAsCwQ,EAAE/M,GAAKoN,EAAEpN,EAC7E,GAJiB,2BAA4BkN,EAAEk6C,OAAOC,WAAWsB,QAAQC,KAAKtrC,SAAS,qBAAkB,EAAS,EAKlH,GAxEG2uC,GAAK,CACNzC,SAAS,EACTtC,SAoDF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,OAAOlc,GAAE5c,GACT,SAAWsC,GACT,MAAMuI,EAAI2E,EAAE46C,OAAO56C,EAAE46C,OAAO1wC,OAAS,GACrC,OAAO7O,GAAmB,mBAAdA,EAAE,GAAGhM,MAA6BgM,EAAE,GAAG2gD,eAAe3gD,EAAE,IAAI,GAAI6O,SAAWlK,EAAEy6C,eAAe3sC,KAAOjO,EAAE/M,GAAKoN,EAAEpN,EAC5H,GAJiB,iBAAkBkN,EAAEy6C,eAAe3sC,KAAO,EAK3D,GAYA,MAAMb,GAAK,CACT+G,KAAM,kBACN+pC,UAGF,SAAYvtD,EAAGqP,GACb,IAAkBG,EAAGM,EAAGxN,EAApBoN,EAAI1P,EAAE0Z,OACV,KAAOhK,KACL,GAAgB,UAAZ1P,EAAE0P,GAAG,GAAgB,CACvB,GAAqB,YAAjB1P,EAAE0P,GAAG,GAAG7Q,KAAoB,CAC9B2Q,EAAIE,EACJ,KACR,CACuB,cAAjB1P,EAAE0P,GAAG,GAAG7Q,OAAyBiR,EAAIJ,EACtC,KACkB,YAAjB1P,EAAE0P,GAAG,GAAG7Q,MAAsBmB,EAAEmoD,OAAOz4C,EAAG,IAAKpN,GAAsB,eAAjBtC,EAAE0P,GAAG,GAAG7Q,OAA0ByD,EAAIoN,GAC9F,MAAM7E,EAAI,CACRhM,KAAM,gBACN4mB,MAAO,IACFzlB,EAAE8P,GAAG,GAAG2V,OAEbo0B,IAAK,IACA75C,EAAEA,EAAE0Z,OAAS,GAAG,GAAGmgC,MAG1B,OAAO75C,EAAE8P,GAAG,GAAGjR,KAAO,oBAAqByD,GAAKtC,EAAEmoD,OAAOr4C,EAAG,EAAG,CAAC,QAASjF,EAAGwE,IAAKrP,EAAEmoD,OAAO7lD,EAAI,EAAG,EAAG,CAAC,OAAQtC,EAAEwP,GAAG,GAAIH,IAAKrP,EAAEwP,GAAG,GAAGqqC,IAAM,IACpI75C,EAAEsC,GAAG,GAAGu3C,MACR75C,EAAEwP,GAAG,GAAK3E,EAAG7K,EAAE2oB,KAAK,CAAC,OAAQ9d,EAAGwE,IAAKrP,CAC5C,EAzBEwpD,SA0BF,SAAYxpD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIspB,KACV,IAAIhpB,EACJ,OACA,SAAWC,GACT,IAAyBW,EAArBjB,EAAID,EAAE46C,OAAO1wC,OACjB,KAAOjK,KACL,GAA4B,eAAxBD,EAAE46C,OAAO36C,GAAG,GAAG5Q,MAAiD,eAAxB2Q,EAAE46C,OAAO36C,GAAG,GAAG5Q,MAAiD,YAAxB2Q,EAAE46C,OAAO36C,GAAG,GAAG5Q,KAAoB,CACrH6R,EAA4B,cAAxBlB,EAAE46C,OAAO36C,GAAG,GAAG5Q,KACnB,KACR,CACI,OAAQ2Q,EAAEk6C,OAAOiB,KAAKn7C,EAAEo7C,MAAMhI,QAAUpzC,EAAE+6C,YAAa75C,EAAmDhB,EAAEK,IAA/C/P,EAAEopD,MAAM,qBAAsBt5C,EAAIC,EAEjG,SAAWA,GACT,OAAO/P,EAAEopD,MAAM,6BAA8B75C,EAAEQ,EACnD,CAJsGlF,CAAEkF,GACxG,EAIE,SAASR,EAAEQ,GACT,OAAOA,IAAMD,GAAK9P,EAAEqpD,QAAQt5C,GAAIR,IAAMvP,EAAEspD,KAAK,6BAA8Bp1C,GAAEnE,GAAK6M,GAAE5c,EAAGsP,EAAG,aAARsN,CAAsB7M,GAAKT,EAAES,GACnH,CACE,SAAST,EAAES,GACT,OAAa,OAANA,GAAc8D,GAAE9D,IAAM/P,EAAEspD,KAAK,qBAAsBj6C,EAAEU,IAAML,EAAEK,EACxE,CACA,GACA,MAAM2+C,GAAK,CACTlF,SAEF,SAAYxpD,GACV,MAAMqP,EAAIypB,KAAMppB,EAAI1P,EAAEypD,QAEpBoC,IAMF,SAAWvpD,GACT,GAAU,OAANA,EAEF,YADAtC,EAAEqpD,QAAQ/mD,GAGZ,OAAOtC,EAAEopD,MAAM,mBAAoBppD,EAAEqpD,QAAQ/mD,GAAItC,EAAEspD,KAAK,mBAAoBj6C,EAAEg7C,sBAAmB,EAAQ36C,CAC7G,GATI1P,EAAEypD,QAAQ3wB,KAAK4wB,OAAOC,WAAWgF,YAAa7+C,EAAG8M,GAAE5c,EAAGA,EAAEypD,QAAQ3wB,KAAK4wB,OAAOC,WAAWl2B,KAAM3jB,EAAG9P,EAAEypD,QAAQwD,GAAIn9C,IAAK,gBAErH,OAAOJ,EAQP,SAASI,EAAExN,GACT,GAAU,OAANA,EAIJ,OAAOtC,EAAEopD,MAAM,cAAeppD,EAAEqpD,QAAQ/mD,GAAItC,EAAEspD,KAAK,cAAej6C,EAAEg7C,sBAAmB,EAAQ36C,EAH7F1P,EAAEqpD,QAAQ/mD,EAIhB,CACA,GACA,MAAMssD,GAAK,CACTxD,WAAYj+B,MACX0hC,GAAKxsC,GAAG,UAAWysC,GAAKzsC,GAAG,QAC9B,SAASA,GAAGriB,GACV,MAAO,CACLorD,WAAYj+B,GAAS,SAANntB,EAAe+uD,QAAK,GACnCvF,SAEF,SAAW95C,GACT,MAAMF,EAAIspB,KAAMhpB,EAAIgpB,KAAK4wB,OAAOC,WAAW3pD,GAAIsC,EAAIoN,EAAE+5C,QAAQ35C,EAAGjF,EAAG0E,GACnE,OAAO1E,EACP,SAASA,EAAE4E,GACT,OAAOM,EAAEN,GAAKnN,EAAEmN,GAAKF,EAAEE,EAC7B,CACI,SAASF,EAAEE,GACT,GAAU,OAANA,EAIJ,OAAOC,EAAE05C,MAAM,QAAS15C,EAAE25C,QAAQ55C,GAAIH,EAHpCI,EAAE25C,QAAQ55C,EAIlB,CACI,SAASH,EAAEG,GACT,OAAOM,EAAEN,IAAMC,EAAE45C,KAAK,QAAShnD,EAAEmN,KAAOC,EAAE25C,QAAQ55C,GAAIH,EAC5D,CACI,SAASS,EAAEN,GACT,GAAU,OAANA,EACF,OAAO,EACT,MAAMiB,EAAIZ,EAAEL,GACZ,IAAItP,GAAM,EACV,GAAIuQ,EACF,OAASvQ,EAAIuQ,EAAEgJ,QAAU,CACvB,MAAMjH,EAAI/B,EAAEvQ,GACZ,IAAKsS,EAAEq3C,UAAYr3C,EAAEq3C,SAAShmC,KAAKtU,EAAGA,EAAEs6C,UACtC,OAAO,CACnB,CACM,OAAO,CACb,CACA,EACA,CACA,SAAS38B,GAAGntB,GACV,OACA,SAAW0P,EAAGF,GACZ,IAAYlN,EAARwN,GAAI,EACR,OAASA,GAAKJ,EAAEgK,aACR,IAANpX,EAAeoN,EAAEI,IAAuB,SAAjBJ,EAAEI,GAAG,GAAGjR,OAAoByD,EAAIwN,EAAGA,OAASJ,EAAEI,IAAuB,SAAjBJ,EAAEI,GAAG,GAAGjR,QAAqBiR,IAAMxN,EAAI,IAAMoN,EAAEpN,GAAG,GAAGu3C,IAAMnqC,EAAEI,EAAI,GAAG,GAAG+pC,IAAKnqC,EAAEy4C,OAAO7lD,EAAI,EAAGwN,EAAIxN,EAAI,GAAIwN,EAAIxN,EAAI,GAAIA,OAAI,GACrM,OAAOtC,EAAIA,EAAE0P,EAAGF,GAAKE,CACzB,CACA,CACA,SAASq/C,GAAG/uD,EAAGqP,GACb,IAAIK,EAAI,EACR,OAASA,GAAK1P,EAAE0Z,QACd,IAAKhK,IAAM1P,EAAE0Z,QAA2B,eAAjB1Z,EAAE0P,GAAG,GAAG7Q,OAA+C,SAArBmB,EAAE0P,EAAI,GAAG,GAAG7Q,KAAiB,CACpF,MAAM2Q,EAAIxP,EAAE0P,EAAI,GAAG,GAAII,EAAIT,EAAEy7C,YAAYt7C,GACzC,IAAiCF,EAA7BhN,EAAIwN,EAAE4J,OAAQ7O,KAAQ0E,EAAI,EAC9B,KAAOjN,KAAO,CACZ,MAAMyN,EAAID,EAAExN,GACZ,GAAgB,iBAALyN,EAAe,CACxB,IAAKlF,EAAIkF,EAAE2J,OAAgC,KAAxB3J,EAAEkV,WAAWpa,EAAI,IAClC0E,IAAK1E,IACP,GAAIA,EAAG,MACPA,GAAM,CAChB,MAAe,IAAY,IAARkF,EACTT,GAAI,EAAIC,SACL,IAAU,IAANQ,EAAU,CACjBzN,IACA,KACV,CACA,CACM,GAAIiN,EAAG,CACL,MAAMQ,EAAI,CACRlR,KAAM6Q,IAAM1P,EAAE0Z,QAAUpK,GAAKC,EAAI,EAAI,aAAe,oBACpDkW,MAAO,CACLkmC,aAAcrpD,EAAIuI,EAAI2E,EAAEiW,MAAMkmC,aAAe9gD,EAC7CmkD,OAAQx/C,EAAEiW,MAAMupC,OAAS1sD,EACzBsgD,KAAMpzC,EAAEqqC,IAAI+I,KACZC,OAAQrzC,EAAEqqC,IAAIgJ,OAAStzC,EACvBytC,OAAQxtC,EAAEqqC,IAAImD,OAASztC,GAEzBsqC,IAAK,IACArqC,EAAEqqC,MAGTrqC,EAAEqqC,IAAM,IACH9pC,EAAE0V,OACJjW,EAAEiW,MAAMu3B,SAAWxtC,EAAEqqC,IAAImD,OAASt9B,OAAOiZ,OAAOnpB,EAAGO,IAAM/P,EAAEmoD,OAAOz4C,EAAG,EAAG,CAAC,QAASK,EAAGV,GAAI,CAAC,OAAQU,EAAGV,IAAKK,GAAK,EAC1H,CACMA,GACN,CACE,OAAO1P,CACT,CACA,MAAMivD,GAAK,CACT,GAAIt7C,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIA,GACJ,GAAIyQ,IACH8qC,GAAK,CACN,GAAI/B,IACHgC,GAAK,CACN,EAAG,GAAGnD,GACN,EAAG,GAAGA,GACN,GAAIA,IACHz8B,GAAK,CACN,GAAI2H,GACJ,GAAIn2B,GACJ,GAAI,CAAC0b,GAAI1b,IACT,GAAIusD,GACJ,GAAI7wC,GACJ,GAAI1b,GACJ,GAAIqa,GACJ,IAAKA,IACJg0C,GAAK,CACN,GAAItgC,GACJ,GAAI1G,IACHsH,GAAK,CACN,EAAG,GAAG0+B,GACN,EAAG,GAAGA,GACN,EAAG,GAAGA,GACN,GAAIF,GACJ,GAAIp/B,GACJ,GAAIu8B,GACJ,GAAI,CAACO,GAAI+B,IACT,GAAIQ,GACJ,GAAI,CAACh4B,GAAI/N,IACT,GAAIwlC,GACJ,GAAIvC,GACJ,GAAIa,IACHmD,GAAK,CACNnE,KAAM,CAACG,GAAIuD,KAKVp/B,GAAqB9P,OAAO2X,OAAuB3X,OAAO4Z,eAAe,CAC1E4F,UAAW,KACXwsB,iBANM,CACNR,KAAM,CAAC,GAAI,KAMXtB,eAAgBsF,GAChBjE,QANM,CACNC,KAAM,IAMN1sD,SAAUywD,GACVx7B,KAAMlE,GACNo/B,YAAaQ,GACb1D,WAAY4D,GACZlP,OAAQiP,GACRntD,KAAMytB,IACLyP,OAAOC,YAAa,CAAEr0B,MAAO,YAChC,SAASukD,GAAGtvD,EAAGqP,EAAGK,GAChB,IAAIF,EAAI,CACNm8C,cAAgB,EAChBqD,OAAQ,EACRpM,KAAMlzC,GAAKA,EAAEkzC,MAAQ,EACrBC,OAAQnzC,GAAKA,EAAEmzC,QAAU,EACzB7F,OAAQttC,GAAKA,EAAEstC,QAAU,GAE3B,MAAMltC,EAAI,GAAIxN,EAAI,GAClB,IAAIuI,EAAI,GAAI0E,EAAI,GAChB,MAAMD,EAAI,CACRm6C,QAASl4C,GA8EX,SAAWkC,EAAGZ,GACZ5S,EAAEwT,EAAGZ,EAAEkL,KACX,IA/EI0sC,MAAOl5C,EAAEe,GACT+2C,QA8DF,SAAW51C,GACTI,GAAEJ,IAAMjE,EAAEozC,OAAQpzC,EAAEqzC,OAAS,EAAGrzC,EAAEwtC,SAAgB,IAANvpC,EAAW,EAAI,EAAGJ,MAAa,IAANI,IAAajE,EAAEqzC,SAAUrzC,EAAEwtC,UAAWxtC,EAAEm8C,aAAe,EAAIn8C,EAAEw/C,UAAYx/C,EAAEm8C,eAAgBn8C,EAAEm8C,eAGlK9gD,EAAE2E,EAAEw/C,QAAQt1C,SAAWlK,EAAEm8C,gBAAmBn8C,EAAEw/C,WAAYj/C,EAAE+5C,SAAWr2C,CAC3E,EAlEI21C,MAmEF,SAAW31C,EAAGZ,GACZ,MAAMT,EAAIS,GAAK,CAAE,EACjB,OAAOT,EAAEvT,KAAO4U,EAAGrB,EAAEqT,MAAQpT,IAAKtC,EAAEq6C,OAAOzhC,KAAK,CAAC,QAASvW,EAAGrC,IAAKR,EAAEoZ,KAAKvW,GAAIA,CACjF,EArEIk3C,KAsEF,SAAW71C,GACT,MAAMZ,EAAItD,EAAEgjB,MACZ,OAAO1f,EAAEgnC,IAAMxnC,IAAKtC,EAAEq6C,OAAOzhC,KAAK,CAAC,OAAQ9V,EAAG9C,IAAK8C,CACvD,EAxEI03C,UAAWh5C,EAAEe,EAAG,CACdi4C,WAAW,KAEZx6C,EAAI,CACLu/B,KAAM,KACN2a,eAAgB,CAAE,EAClBc,WAoCF,SAAWt3C,GACT3D,EAAE2D,EAAEmvC,MAAQnvC,EAAEovC,OAAQxvC,GAC1B,EArCI+2C,OAAQ,GACRQ,IAAKv4C,EACLq3C,OAAQ1pD,EACR8pD,SAAU,KACV0B,eASF,SAAW/3C,EAAGZ,GACZ,OA4IJ,SAAY7S,EAAGqP,GACb,IAAIK,GAAM,EACV,MAAMF,EAAI,GACV,IAAIM,EACJ,OAASJ,EAAI1P,EAAE0Z,QAAU,CACvB,MAAMpX,EAAItC,EAAE0P,GACZ,IAAI7E,EACJ,GAAgB,iBAALvI,EACTuI,EAAIvI,OACD,OAAQA,GACX,OACEuI,EAAI,KACJ,MAEF,OACEA,EAAI,KAEJ,MAEF,OACEA,EAAI,OAEJ,MAEF,OACEA,EAAIwE,EAAI,IAAM,KACd,MAEF,OACE,IAAKA,GAAKS,EAAG,SACbjF,EAAI,IACJ,MAEF,QACEA,EAAI6uB,OAAOuvB,aAAa3mD,GAE5BwN,GAAU,IAANxN,EAAUkN,EAAEmZ,KAAK9d,EACzB,CACE,OAAO2E,EAAEwO,KAAK,GAChB,CAnLWuxC,CAAG98C,EAAEgB,GAAIZ,EACpB,EAVIi4C,YAAar4C,EACbu4C,MAIF,SAAWv3C,GACT,OAAO5I,EAAImnB,GAAGnnB,EAAG4I,GA2BnB,WACE,IAAIA,EACJ,KAAOjE,EAAEw/C,OAASnkD,EAAE6O,QAAU,CAC5B,MAAM7G,EAAIhI,EAAE2E,EAAEw/C,QACd,GAAgB,iBAALn8C,EACT,IAAKY,EAAIjE,EAAEw/C,OAAQx/C,EAAEm8C,aAAe,IAAMn8C,EAAEm8C,aAAe,GAAIn8C,EAAEw/C,SAAWv7C,GAAKjE,EAAEm8C,aAAe94C,EAAE6G,QAClGD,EAAE5G,EAAEoS,WAAWzV,EAAEm8C,oBAEnBlyC,EAAE5G,EACV,CACA,CArCyB9S,GAAyB,OAApB8K,EAAEA,EAAE6O,OAAS,GAAc,IAAMzZ,EAAEoP,EAAG,GAAIU,EAAEq6C,OAASe,GAAG7oD,EAAGyN,EAAEq6C,OAAQr6C,GAAIA,EAAEq6C,OACzG,GAJE,IAAI36C,EAAIJ,EAAEm6C,SAAS1lC,KAAK/T,EAAGT,GAC3B,OAAOD,EAAE+7C,YAAc9oD,EAAEqmB,KAAKtZ,GAAIU,EAOlC,SAAS0C,EAAEgB,GACT,OA2HJ,SAAYzT,EAAGqP,GACb,MAAMK,EAAIL,EAAEoW,MAAMupC,OAAQx/C,EAAIH,EAAEoW,MAAMkmC,aAAc77C,EAAIT,EAAEwqC,IAAImV,OAAQ1sD,EAAI+M,EAAEwqC,IAAI8R,aAChF,IAAI9gD,EACJ,GAAI6E,IAAMI,EACRjF,EAAI,CAAC7K,EAAE0P,GAAGgS,MAAMlS,EAAGlN,QAChB,CACH,GAAIuI,EAAI7K,EAAE0hB,MAAMhS,EAAGI,GAAIN,KAAQ,CAC7B,MAAMD,EAAI1E,EAAE,GACA,iBAAL0E,EAAgB1E,EAAE,GAAK0E,EAAEmS,MAAMlS,GAAK3E,EAAEyhD,OACnD,CACIhqD,EAAI,GAAKuI,EAAE8d,KAAK3oB,EAAE8P,GAAG4R,MAAM,EAAGpf,GAClC,CACE,OAAOuI,CACT,CAxIW8kB,CAAG9kB,EAAG4I,EACjB,CACE,SAASpB,IACP,MACEs5C,aAAcl4C,EACdu7C,OAAQn8C,EACR+vC,KAAMxwC,EACNywC,OAAQ3vC,EACR8pC,OAAQrqC,GACNnD,EACJ,MAAO,CACLm8C,aAAcl4C,EACdu7C,OAAQn8C,EACR+vC,KAAMxwC,EACNywC,OAAQ3vC,EACR8pC,OAAQrqC,EAEd,CAeE,SAAS8G,EAAEhG,GACThE,EAAIA,EAAEgE,EACV,CAkBE,SAASnB,EAAEmB,EAAGZ,GACZA,EAAE28C,SACN,CACE,SAASj+C,EAAEkC,EAAGZ,GACZ,OACA,SAAWK,EAAGP,EAAGY,GACf,IAAIrE,EAAG9N,EAAIyxB,EAAI7f,EACf,OAAO8K,MAAMK,QAAQjL,GAEnBgG,EAAGhG,GACD,aAAcA,EAEhBgG,EAAG,CAEDhG,IAGJ,SAAYJ,GACV,OAAOvS,EACP,SAASA,EAAGob,GACV,MAAM4D,EAAY,OAAP5D,GAAe7I,EAAE6I,GAAKyX,EAAY,OAAPzX,GAAe7I,EAAEo4C,KAMvD,OAAOhyC,EAN2D,IAG7D4E,MAAMK,QAAQoB,GAAMA,EAAKA,EAAK,CAACA,GAAM,MACrCzB,MAAMK,QAAQiV,GAAMA,EAAKA,EAAK,CAACA,GAAM,IAEnCla,CAAOyC,EACxB,CACA,CAZU5M,CAAGmE,GAaP,SAASgG,EAAGpG,GACV,OAAO5D,EAAI4D,EAAG1R,EAAK,EAAgB,IAAb0R,EAAE4G,OAAenG,EAAIN,EAAEH,EAAE1R,GACvD,CACM,SAAS6R,EAAEH,GACT,OACA,SAAY6I,GACV,OAAO3I,EAsBf,WACE,MAAMS,EAAIpB,IAAKQ,EAAI9C,EAAE+5C,SAAU13C,EAAIrC,EAAEs6C,iBAAkBn3C,EAAInD,EAAEq6C,OAAO1wC,OAAQ/G,EAAImL,MAAMC,KAAKxO,GAC3F,MAAO,CACLwO,KAAM7K,EACNs8C,QAASj8C,GAEX,SAASA,IACP/D,EAAIiE,EAAG1D,EAAE+5C,SAAWj3C,EAAG9C,EAAEs6C,iBAAmBj4C,EAAGrC,EAAEq6C,OAAO1wC,OAASxG,EAAG3D,EAAIoD,EAAGU,GACjF,CACA,CA/BqBlB,GAAK0gB,EAAK/f,EAAGA,EAAEg5C,UAAY/7C,EAAEs6C,iBAAmBv3C,GAAIA,EAAE0Q,MAAQzT,EAAE25C,OAAOC,WAAWsB,QAAQC,KAAKtrC,SAAS9M,EAAE0Q,MAAQgqC,IAAO16C,EAAE02C,SAAS1lC,KAI7IjR,EAAI6M,OAAOiZ,OAAOjZ,OAAO0lC,OAAOr1C,GAAI8C,GAAK9C,EACzCT,EACAY,EACAs9C,EAPkI16C,CAQlI6I,EACZ,CACA,CACM,SAASzL,EAAG4C,GACV,OAAOW,EAAEof,EAAI7f,GAAIL,CACzB,CACM,SAAS66C,EAAG16C,GACV,OAAOE,EAAEw8C,YAAapuD,EAAK8N,EAAEwK,OAASzG,EAAE/D,EAAE9N,IAAOmS,CACzD,CACA,CACA,CACE,SAAStT,EAAEwT,EAAGZ,GACZY,EAAE23C,aAAe9oD,EAAEsd,SAASnM,IAAMnR,EAAEqmB,KAAKlV,GAAIA,EAAE04C,SAAWnhD,GAAG+E,EAAEq6C,OAAQv3C,EAAG9C,EAAEq6C,OAAO1wC,OAAS7G,EAAGY,EAAE04C,QAAQp8C,EAAEq6C,OAAO1oC,MAAM7O,GAAI9C,IAAK0D,EAAE85C,YAAcx9C,EAAEq6C,OAAS32C,EAAE85C,UAAUx9C,EAAEq6C,OAAQr6C,GACtL,CAWE,SAASsD,IACP7D,EAAEozC,QAAQ9yC,GAAKN,EAAEqzC,OAAS,IAAMrzC,EAAEqzC,OAAS/yC,EAAEN,EAAEozC,MAAOpzC,EAAEwtC,QAAUltC,EAAEN,EAAEozC,MAAQ,EAClF,CACA,CAkFA,MAAMjxC,GAAK,cAoCX,MAAM8f,GAAK,oEAIX,SAAST,GAAGhxB,EAAGqP,EAAGK,GAChB,GAAIL,EACF,OAAOA,EACT,GAAwB,KAApBK,EAAEuV,WAAW,GAAW,CAC1B,MAAMnV,EAAIJ,EAAEuV,WAAW,GAAI3iB,EAAU,MAANwN,GAAmB,KAANA,EAC5C,OAAOya,GAAG7a,EAAEgS,MAAMpf,EAAI,EAAI,GAAIA,EAAI,GAAK,GAC3C,CACE,OAAO4lD,GAAGx4C,IAAM1P,CAClB,CACA,MAAMwtB,GAAK,CAAE,EAAC3J,eACd,SAASsO,GAAGnyB,EAAGqP,EAAGK,GAChB,MAAmB,iBAALL,IAAkBK,EAAIL,EAAGA,OAAI,GAE7C,SAAYrP,GACV,MAAMqP,EAAI,CACRogD,WAAY,GACZC,eAAgB,CAAC,WAAY,WAAY,UAAW,YAAa,UACjEtG,MAAO,CACLuG,SAAUrtD,EAAEstD,IACZC,iBAAkB19C,EAClB29C,cAAe39C,EACf49C,WAAYztD,EAAE0tD,GACdC,WAAY3tD,EAAE8wB,GACd88B,gBAAiB/9C,EACjBg+C,mBAAoBh+C,EACpBi+C,WAAY9tD,EAAE+tD,GACdC,oBAAqBzlD,EACrB0lD,oBAAqB1lD,EACrB2lD,aAAcluD,EAAE+tD,EAAIxlD,GACpB4lD,SAAUnuD,EAAEouD,EAAI7lD,GAChB8lD,aAAcx+C,EACd0G,KAAM1G,EACNy+C,cAAez+C,EACf0+C,WAAYvuD,EAAEwuD,GACdC,4BAA6BlmD,EAC7BmmD,sBAAuBnmD,EACvBomD,sBAAuBpmD,EACvBqmD,SAAU5uD,EAAE6uD,GACZC,gBAAiB9uD,EAAE+uD,GACnBC,kBAAmBhvD,EAAE+uD,GACrBE,SAAUjvD,EAAEkvD,EAAI3mD,GAChB4mD,aAAct/C,EACdu/C,SAAUpvD,EAAEkvD,EAAI3mD,GAChB8mD,aAAcx/C,EACdy/C,MAAOtvD,EAAEuvD,IACTh6B,MAAOhtB,EACPmlC,KAAM1tC,EAAEstD,IACRkC,SAAUxvD,EAAEyvD,IACZC,cAAe7xD,EACf8xD,YAAa3vD,EAAE4vD,GAAIxhD,GACnByhD,cAAe7vD,EAAE4vD,IACjBE,UAAW9vD,EAAE+3C,IACbgY,UAAWp/C,EACXq/C,gBAAiBznD,EACjB0nD,0BAA2B1nD,EAC3B2nD,oBAAqB3nD,EACrB4nD,cAAenwD,EAAE0tD,GACjB0C,OAAQpwD,EAAEyzB,IACV48B,cAAerwD,EAAEswD,KAEnBtJ,KAAM,CACJyG,WAAYzgD,IACZujD,mBAAoBj/C,EACpB+7C,SAAUrgD,IACVwgD,cAAevwC,EACfswC,iBAAkBl0C,EAClBs0C,WAAY3gD,IACZwjD,qBAAsBz/C,EACtB0/C,oCAAqCvF,EACrCwF,gCAAiCxF,EACjCyF,wBAAyBngD,EACzBq9C,mBAAoB5vD,EACpB6vD,WAAY9gD,EAAEvP,GACdmzD,gBAAiBviD,EACjB2/C,oBAAqB79C,EACrB89C,oBAAqBl+C,EACrBu+C,cAAev9C,EACfm9C,aAAclhD,EAAEmK,GAChBg3C,SAAUnhD,EAAEqD,GACZg+C,aAAct9C,EACdwF,KAAMxF,EACNw9C,WAAYvhD,IACZyhD,4BAA6Bz9C,EAC7B09C,sBAAuBt+C,EACvBu+C,sBAAuBr+C,EACvBs+C,SAAU5hD,IACV8hD,gBAAiB9hD,EAAEuD,GACnBy+C,kBAAmBhiD,EAAEuD,GACrB0+C,SAAUjiD,EAAE8C,GACZq/C,aAAcp+C,EACdq+C,SAAUpiD,EAAE4D,GACZy+C,aAAct+C,EACdu+C,MAAOtiD,EAAEJ,GACT2oB,MAAOhF,EACPsgC,UAAW/xD,EACXgyD,WAAY3/C,EACZu8B,KAAM1gC,EAAEiE,GACRu+C,SAAUxiD,IACV2iD,YAAa3iD,IACb6iD,cAAe7iD,IACf8iD,UAAW9iD,IACXgjD,gBAAiBpiD,EACjBqiD,0BAA2Bv/C,EAC3Bw/C,oBAAqBzjD,EACrBiwC,SAAU9lC,EACVu5C,cAAenjD,EAAErP,GACjBozD,0BAA2B9hD,EAC3B+hD,kBAAmBhhD,EACnBogD,OAAQpjD,IACRqjD,cAAerjD,MAGnB2d,GAAG5d,GAAIrP,GAAK,CAAA,GAAIuzD,iBAAmB,IACnC,MAAM7jD,EAAI,CAAE,EACZ,OAAOF,EACP,SAASA,EAAE0C,GACT,IAAIa,EAAI,CACNlU,KAAM,OACNiE,SAAU,IAEZ,MAAM0P,EAAI,CACRwxC,MAAO,CAACjxC,GACRygD,WAAY,GACZC,OAAQpkD,EACR+5C,MAAO75C,EACP+5C,KAAMv5C,EACNuV,OAAQza,EACR6oD,OAAQjkD,EACRoJ,KAAMnJ,GACLyD,EAAI,GACP,IAAI2D,GAAM,EACV,OAASA,EAAI5E,EAAEwH,QACb,GAAqB,gBAAjBxH,EAAE4E,GAAG,GAAGjY,MAA2C,kBAAjBqT,EAAE4E,GAAG,GAAGjY,KAC5C,GAAgB,UAAZqT,EAAE4E,GAAG,GACP3D,EAAEwV,KAAK7R,OACJ,CAEHA,EAAIhH,EAAEoC,EADKiB,EAAEof,MACAzb,EACvB,CACI,IAAKA,GAAM,IAAIA,EAAI5E,EAAEwH,QAAU,CAC7B,MAAMyX,EAAK9hB,EAAE6C,EAAE4E,GAAG,IAClB0W,GAAG1J,KAAKqN,EAAIjf,EAAE4E,GAAG,GAAGjY,OAASsyB,EAAGjf,EAAE4E,GAAG,GAAGjY,MAAMilB,KAAKpE,OAAOiZ,OAAO,CAC/D6yB,eAAgBt5C,EAAE4E,GAAG,GAAG00C,gBACvBh5C,GAAIN,EAAE4E,GAAG,GAClB,CACI,GAAItE,EAAEghD,WAAW95C,OAAS,EAAG,CAC3B,MAAMyX,EAAK3e,EAAEghD,WAAWhhD,EAAEghD,WAAW95C,OAAS,IAC7CyX,EAAG,IAAMxX,IAAImK,KAAKtR,OAAG,EAAQ2e,EAAG,GACvC,CACI,IAAKpe,EAAEge,SAAW,CAChBtL,MAAOrG,GAAGlN,EAAEwH,OAAS,EAAIxH,EAAE,GAAG,GAAGuT,MAAQ,CACvCm9B,KAAM,EACNC,OAAQ,EACR7F,OAAQ,IAEVnD,IAAKz6B,GAAGlN,EAAEwH,OAAS,EAAIxH,EAAEA,EAAEwH,OAAS,GAAG,GAAGmgC,IAAM,CAC9C+I,KAAM,EACNC,OAAQ,EACR7F,OAAQ,KAETlmC,GAAI,IAAMA,EAAIzH,EAAEogD,WAAW/1C,QAC5B3G,EAAI1D,EAAEogD,WAAW34C,GAAG/D,IAAMA,EAC5B,OAAOA,CACX,CACE,SAASjD,EAAEoC,EAAGa,EAAGP,GACf,IAAgCmhD,EAAIhxC,EAAItB,EAAI6I,EAAxC/W,EAAIJ,EAAI,EAAG+D,GAAI,EAAIqa,GAAK,EAC5B,OAAShe,GAAKX,GAAK,CACjB,MAAMgB,EAAItB,EAAEiB,GACZ,OAAQK,EAAE,GAAG3U,MACX,IAAK,gBACL,IAAK,cACL,IAAK,aACM,UAAT2U,EAAE,GAAiBsD,IAAMA,IAAKoT,OAAK,EACnC,MAEF,IAAK,kBACM,UAAT1W,EAAE,KAAmBmgD,IAAOzpC,IAAOpT,IAAMuK,IAAOA,EAAKlO,GAAI+W,OAAK,GAC9D,MAEF,IAAK,aACL,IAAK,gBACL,IAAK,iBACL,IAAK,iBACL,IAAK,2BACH,MACF,QACEA,OAAK,EAET,IAAKpT,GAAc,UAATtD,EAAE,IAAgC,mBAAdA,EAAE,GAAG3U,OAAqC,IAARiY,GAAqB,SAATtD,EAAE,KAAgC,kBAAdA,EAAE,GAAG3U,MAA0C,gBAAd2U,EAAE,GAAG3U,MAAyB,CAC7J,GAAI80D,EAAI,CACN,IAAI3lC,EAAK7a,EACT,IAAKwP,OAAK,EAAQqL,KAAQ,CACxB,MAAMuC,EAAKre,EAAE8b,GACb,GAAmB,eAAfuC,EAAG,GAAG1xB,MAAwC,oBAAf0xB,EAAG,GAAG1xB,KAA4B,CACnE,GAAc,SAAV0xB,EAAG,GAAe,SACtB5N,IAAOzQ,EAAEyQ,GAAI,GAAG9jB,KAAO,kBAAmBsyB,GAAK,GAAKZ,EAAG,GAAG1xB,KAAO,aAAc8jB,EAAKqL,CACrF,MAAM,GAAqB,eAAfuC,EAAG,GAAG1xB,MAAwC,qBAAf0xB,EAAG,GAAG1xB,MAA8C,+BAAf0xB,EAAG,GAAG1xB,MAAwD,qBAAf0xB,EAAG,GAAG1xB,MAA8C,mBAAf0xB,EAAG,GAAG1xB,KAA4B,KACnN,CACUwiB,KAAQsB,GAAMtB,EAAKsB,KAAQgxC,EAAGC,SAAU,GAAKD,EAAG9Z,IAAMn6B,OAAOiZ,OAAO,CAAA,EAAIhW,EAAKzQ,EAAEyQ,GAAI,GAAG8C,MAAQjS,EAAE,GAAGqmC,KAAM3nC,EAAEi2C,OAAOxlC,GAAMxP,EAAG,EAAG,CAAC,OAAQwgD,EAAIngD,EAAE,KAAML,IAAKX,GAClK,CACQ,GAAkB,mBAAdgB,EAAE,GAAG3U,KAA2B,CAClC,MAAMmvB,EAAK,CACTnvB,KAAM,WACN+0D,SAAS,EACTnuC,MAAO/F,OAAOiZ,OAAO,CAAA,EAAInlB,EAAE,GAAGiS,OAE9Bo0B,SAAK,GAEP8Z,EAAK3lC,EAAI9b,EAAEi2C,OAAOh1C,EAAG,EAAG,CAAC,QAAS6a,EAAIxa,EAAE,KAAML,IAAKX,IAAK6O,OAAK,EAAQ6I,GAAK,CACpF,CACA,CACA,CACI,OAAOhY,EAAEa,GAAG,GAAG6gD,QAAUziC,EAAI3e,CACjC,CACE,SAASlQ,EAAE4P,EAAGa,GACZ,OAAOP,EACP,SAASA,EAAEW,GACT5D,EAAEuU,KAAKgV,KAAM5mB,EAAEiB,GAAIA,GAAIJ,GAAKA,EAAE+Q,KAAKgV,KAAM3lB,EAC/C,CACA,CACE,SAAStI,IACPiuB,KAAKkrB,MAAMr7B,KAAK,CACd9pB,KAAM,WACNiE,SAAU,IAEhB,CACE,SAASyM,EAAE2C,EAAGa,EAAGP,GACfsmB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAAG5W,SAAS6lB,KAAKzW,GAAI4mB,KAAKkrB,MAAMr7B,KAAKzW,GAAI4mB,KAAK06B,WAAW7qC,KAAK,CAAC5V,EAAGP,QAAK,IAAUN,EAAE6e,SAAW,CAC3HtL,MAAOrG,GAAGrM,EAAE0S,OAEZo0B,SAAK,EAEX,CACE,SAASvqC,EAAE4C,GACT,OAAOa,EACP,SAASA,EAAEP,GACTN,GAAKA,EAAE4R,KAAKgV,KAAMtmB,GAAIzC,EAAE+T,KAAKgV,KAAMtmB,EACzC,CACA,CACE,SAASzC,EAAEmC,EAAGa,GACZ,MAAMP,EAAIsmB,KAAKkrB,MAAMzxB,MAAOpf,EAAI2lB,KAAK06B,WAAWjhC,MAChD,IAAIpf,EAEC,MAAM,IAAIsM,MAAM,iBAAmBvN,EAAErT,KAAO,MAAQ6B,GAAG,CAC1D+kB,MAAOvT,EAAEuT,MACTo0B,IAAK3nC,EAAE2nC,MACJ,oBAJH1mC,EAAE,GAAGtU,OAASqT,EAAErT,OAASkU,EAAIA,EAAE+Q,KAAKgV,KAAM5mB,EAAGiB,EAAE,KAAOA,EAAE,IAAMwG,IAAImK,KAAKgV,KAAM5mB,EAAGiB,EAAE,KAKpFX,EAAEue,SAAS8oB,IAAMz6B,GAAGlN,EAAE2nC,IAC1B,CACE,SAASpqC,IACP,OAt8EJ,SAAYzP,GACV,MAAM0P,EAAIo4C,GACV,OAAOppC,GAAG1e,EADoC,kBAArB0P,EAAEmkD,iBAA+BnkD,EAAEmkD,gBAAkD,kBAAjBnkD,EAAEokD,aAA2BpkD,EAAEokD,YAE9H,CAm8EWC,CAAGj7B,KAAKkrB,MAAMzxB,MACzB,CACE,SAAS7hB,IACPooB,KAAKjgB,KAAKm7C,6BAA8B,CAC5C,CACE,SAAS7zD,EAAE+R,GACT,GAAI4mB,KAAKjgB,KAAKm7C,4BAA6B,CAC/Bl7B,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GACvC+L,MAAQ6W,OAAOksB,SAAS1vB,KAAK0yB,eAAet5C,GAAI,IAAK4mB,KAAKjgB,KAAKm7C,iCAA8B,CACrG,CACA,CACE,SAASvhD,IACP,MAAMP,EAAI4mB,KAAK46B,SAAc56B,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC1DsM,KAAO9T,CACb,CACE,SAASG,IACP,MAAMH,EAAI4mB,KAAK46B,SAAc56B,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC1Du6C,KAAO/hD,CACb,CACE,SAASvB,IACPmoB,KAAKjgB,KAAKq7C,iBAAmBp7B,KAAKxT,SAAUwT,KAAKjgB,KAAKq7C,gBAAiB,EAC3E,CACE,SAASn0D,IACP,MAAMmS,EAAI4mB,KAAK46B,SAAc56B,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC1D3O,MAAQmH,EAAEoO,QAAQ,2BAA4B,IAAKwY,KAAKjgB,KAAKq7C,oBAAiB,CACpF,CACE,SAASz6C,IACP,MAAMvH,EAAI4mB,KAAK46B,SAAc56B,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC1D3O,MAAQmH,EAAEoO,QAAQ,eAAgB,GACxC,CACE,SAAS5N,EAAER,GACT,MAAMa,EAAI+lB,KAAK46B,SAAUlhD,EAAIsmB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC5DlH,EAAEqlB,MAAQ9kB,EAAGP,EAAE2hD,WAAa1xC,GAAGqW,KAAK0yB,eAAet5C,IAAImR,aAC3D,CACE,SAASzQ,IACP,MAAMV,EAAI4mB,KAAK46B,SAAc56B,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC1DrX,MAAQ6P,CACd,CACE,SAASoB,IACP,MAAMpB,EAAI4mB,KAAK46B,SAAc56B,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC1D0qC,IAAMlyC,CACZ,CACE,SAAS0B,EAAE1B,GACT,MAAMa,EAAI+lB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GACzC,IAAK3G,EAAEqhD,MAAO,CACZ,MAAM5hD,EAAIsmB,KAAK0yB,eAAet5C,GAAGwH,OACjC3G,EAAEqhD,MAAQ5hD,CAChB,CACA,CACE,SAASF,IACPwmB,KAAKjgB,KAAKw7C,8BAA+B,CAC7C,CACE,SAAS9iD,EAAEW,GACC4mB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GACvC06C,MAAkD,KAA1Ct7B,KAAK0yB,eAAet5C,GAAGoiD,YAAY,GAAY,EAAI,CACjE,CACE,SAASr0D,IACP64B,KAAKjgB,KAAKw7C,kCAA+B,CAC7C,CACE,SAASliD,EAAED,GACT,MAAMM,EAAIsmB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAAG5W,SAC5C,IAAIqQ,EAAIX,EAAEA,EAAEkH,OAAS,KACnBvG,GAAgB,SAAXA,EAAEtU,QAAqBsU,EAAIohD,KAAMphD,EAAE4d,SAAW,CACnDtL,MAAOrG,GAAGlN,EAAEuT,OAEZo0B,SAAK,GACJrnC,EAAEmW,KAAKxV,IAAK2lB,KAAKkrB,MAAMr7B,KAAKxV,EACnC,CACE,SAASE,EAAEnB,GACT,MAAMa,EAAI+lB,KAAKkrB,MAAMzxB,MACrBxf,EAAEhI,OAAS+tB,KAAK0yB,eAAet5C,GAAIa,EAAEge,SAAS8oB,IAAMz6B,GAAGlN,EAAE2nC,IAC7D,CACE,SAASpmC,EAAEvB,GACT,MAAMa,EAAI+lB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GACzC,GAAIof,KAAKjgB,KAAK27C,YAAa,CAGzB,OAFUzhD,EAAEjQ,SAASiQ,EAAEjQ,SAAS4W,OAAS,GACvCqX,SAAS8oB,IAAMz6B,GAAGlN,EAAE2nC,UAAM/gB,KAAKjgB,KAAK27C,iBAAc,EAE1D,EACK17B,KAAKjgB,KAAKw7C,8BAAgChlD,EAAEqgD,eAAe9vC,SAAS7M,EAAElU,QAAUsT,EAAE2R,KAAKgV,KAAM5mB,GAAImB,EAAEyQ,KAAKgV,KAAM5mB,GACnH,CACE,SAASW,IACPimB,KAAKjgB,KAAK27C,aAAc,CAC5B,CACE,SAASpiD,IACP,MAAMF,EAAI4mB,KAAK46B,SAAc56B,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC1D3O,MAAQmH,CACd,CACE,SAASgB,IACP,MAAMhB,EAAI4mB,KAAK46B,SAAc56B,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC1D3O,MAAQmH,CACd,CACE,SAASS,IACP,MAAMT,EAAI4mB,KAAK46B,SAAc56B,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC1D3O,MAAQmH,CACd,CACE,SAASqB,IACP,MAAMrB,EAAI4mB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GACzC,GAAIof,KAAKjgB,KAAK47C,YAAa,CACzB,MAAM1hD,EAAI+lB,KAAKjgB,KAAK67C,eAAiB,WACrCxiD,EAAErT,MAAQ,YAAaqT,EAAEwiD,cAAgB3hD,SAAUb,EAAEkyC,WAAYlyC,EAAE7P,KACpE,aACQ6P,EAAEiiD,kBAAmBjiD,EAAE2lB,MAChCiB,KAAKjgB,KAAK67C,mBAAgB,CAC9B,CACE,SAASxlD,IACP,MAAMgD,EAAI4mB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GACzC,GAAIof,KAAKjgB,KAAK47C,YAAa,CACzB,MAAM1hD,EAAI+lB,KAAKjgB,KAAK67C,eAAiB,WACrCxiD,EAAErT,MAAQ,YAAaqT,EAAEwiD,cAAgB3hD,SAAUb,EAAEkyC,WAAYlyC,EAAE7P,KACpE,aACQ6P,EAAEiiD,kBAAmBjiD,EAAE2lB,MAChCiB,KAAKjgB,KAAK67C,mBAAgB,CAC9B,CACE,SAAStzD,EAAG8Q,GACV,MAAMa,EAAI+lB,KAAK0yB,eAAet5C,GAAIM,EAAIsmB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GACrElH,EAAEqlB,MAjXN,SAAY73B,GACV,OAAOA,EAAEsgB,QAAQmR,GAAIT,GACvB,CA+WcgC,CAAGjgB,GAAIP,EAAE2hD,WAAa1xC,GAAG1P,GAAGsQ,aAC1C,CACE,SAASwP,IACP,MAAM3gB,EAAI4mB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAAI3G,EAAI+lB,KAAK46B,SAAUlhD,EAAIsmB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GACnG,GAAIof,KAAKjgB,KAAK47C,aAAc,EAAe,SAAXjiD,EAAE3T,KAAiB,CACjD,MAAMsU,EAAIjB,EAAEpP,SACZ0P,EAAE1P,SAAWqQ,CACd,MACCX,EAAEsb,IAAM/a,CACd,CACE,SAASC,IACP,MAAMd,EAAI4mB,KAAK46B,SAAc56B,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC1D0qC,IAAMlyC,CACZ,CACE,SAASnD,IACP,MAAMmD,EAAI4mB,KAAK46B,SAAc56B,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC1DrX,MAAQ6P,CACd,CACE,SAASgH,IACP4f,KAAKjgB,KAAK47C,iBAAc,CAC5B,CACE,SAASxhD,IACP6lB,KAAKjgB,KAAK67C,cAAgB,WAC9B,CACE,SAASxkD,EAAGgC,GACV,MAAMa,EAAI+lB,KAAK46B,SAAUlhD,EAAIsmB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GAC5DlH,EAAEqlB,MAAQ9kB,EAAGP,EAAE2hD,WAAa1xC,GAAGqW,KAAK0yB,eAAet5C,IAAImR,cAAeyV,KAAKjgB,KAAK67C,cAAgB,MACpG,CACE,SAASlH,EAAGt7C,GACV4mB,KAAKjgB,KAAK87C,uBAAyBziD,EAAErT,IACzC,CACE,SAASiU,EAAEZ,GACT,MAAMa,EAAI+lB,KAAK0yB,eAAet5C,GAAIM,EAAIsmB,KAAKjgB,KAAK87C,uBAChD,IAAIxhD,EACJX,GAAKW,EAAIoX,GAAGxX,EAAS,oCAANP,EAA0C,GAAK,IAAKsmB,KAAKjgB,KAAK87C,4BAAyB,GAAUxhD,EAAI+0C,GAAGn1C,GAC7G+lB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GACvC3O,OAASoI,CACf,CACE,SAAS5S,EAAG2R,GACA4mB,KAAKkrB,MAAMzxB,MACnBxB,SAAS8oB,IAAMz6B,GAAGlN,EAAE2nC,IAC1B,CACE,SAASl+B,EAAGzJ,GACVmB,EAAEyQ,KAAKgV,KAAM5mB,GACH4mB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GACvC0qC,IAAMtrB,KAAK0yB,eAAet5C,EAChC,CACE,SAASqN,EAAGrN,GACVmB,EAAEyQ,KAAKgV,KAAM5mB,GACH4mB,KAAKkrB,MAAMlrB,KAAKkrB,MAAMtqC,OAAS,GACvC0qC,IAAM,UAAYtrB,KAAK0yB,eAAet5C,EAC5C,CACE,SAASkhB,IACP,MAAO,CACLv0B,KAAM,aACNiE,SAAU,GAEhB,CACE,SAASutD,IACP,MAAO,CACLxxD,KAAM,OACNmnB,KAAM,KACNiuC,KAAM,KACNlpD,MAAO,GAEb,CACE,SAAS2lD,IACP,MAAO,CACL7xD,KAAM,aACNkM,MAAO,GAEb,CACE,SAAS+lD,IACP,MAAO,CACLjyD,KAAM,aACNs1D,WAAY,GACZt8B,MAAO,KACPx1B,MAAO,KACP+hD,IAAK,GAEX,CACE,SAAS+M,IACP,MAAO,CACLtyD,KAAM,WACNiE,SAAU,GAEhB,CACE,SAASktD,IACP,MAAO,CACLnxD,KAAM,UAENu1D,MAAO,EACPtxD,SAAU,GAEhB,CACE,SAASuuD,IACP,MAAO,CACLxyD,KAAM,QAEZ,CACE,SAAS2yD,IACP,MAAO,CACL3yD,KAAM,OACNkM,MAAO,GAEb,CACE,SAAS8mD,KACP,MAAO,CACLhzD,KAAM,QACNwD,MAAO,KACP+hD,IAAK,GACLt2B,IAAK,KAEX,CACE,SAAS8hC,KACP,MAAO,CACL/wD,KAAM,OACNwD,MAAO,KACP+hD,IAAK,GACLthD,SAAU,GAEhB,CACE,SAASovD,GAAGhgD,GACV,MAAO,CACLrT,KAAM,OACN+1D,QAAoB,gBAAX1iD,EAAErT,KACX4mB,MAAO,KACPovC,OAAQ3iD,EAAE0hD,QACV9wD,SAAU,GAEhB,CACE,SAASivD,GAAG7/C,GACV,MAAO,CACLrT,KAAM,WACNg2D,OAAQ3iD,EAAE0hD,QACVlvB,QAAS,KACT5hC,SAAU,GAEhB,CACE,SAASu3C,KACP,MAAO,CACLx7C,KAAM,YACNiE,SAAU,GAEhB,CACE,SAASizB,KACP,MAAO,CACLl3B,KAAM,SACNiE,SAAU,GAEhB,CACE,SAASyxD,KACP,MAAO,CACL11D,KAAM,OACNkM,MAAO,GAEb,CACE,SAAS6nD,KACP,MAAO,CACL/zD,KAAM,gBAEZ,CACA,CArgBsDi2D,CAAGplD,EAAHolD,CAxDtD,SAAY90D,GACV,MAAQsuB,GAAGtuB,KAEX,OAAOA,CACT,CAoD4D8zB,CA9E5D,SAAY9zB,GACV,MAAMwP,EAAI,CACRm6C,WAEEtB,GAAG,CAAC74B,OAAQxvB,GAAK,CAAE,GAAE+0D,YAAc,KAErC54C,QAASrM,EAAEy5C,IACXxqB,QAAS,GACTvgC,SAAUsR,EAAEk6C,IACZv2B,KAAM3jB,EAAE4+C,IACR/D,KAAM,CAAE,EACRxK,OAAQrwC,EAAE++C,IACV5sD,KAAM6N,EAAEg/C,KAEV,OAAOt/C,EACP,SAASM,EAAExN,GACT,OACA,SAAWiN,GACT,OAAO+/C,GAAG9/C,EAAGlN,EAAGiN,EACtB,CACA,CACA,CAyD+DylD,CAAGtlD,GAAGlR,WAAWwsD,MAlDhF,WACE,IAA2Bx7C,EAAvBxP,EAAI,EAAGqP,EAAI,GAAIK,GAAI,EACvB,OACA,SAAWpN,EAAGuI,EAAG0E,GACf,MAAMD,EAAI,GACV,IAAIS,EAAGN,EAAGiB,EAAGvQ,EAAGsS,EAChB,IAAKnQ,EAAI+M,GAAiB,iBAAL/M,EAAgBA,EAAEke,WAAa,IAAIy0C,YAAYpqD,QAAK,GAAQqqD,OAAO5yD,IAAKoO,EAAI,EAAGrB,EAAI,GAAIK,IAA0B,QAApBpN,EAAE2iB,WAAW,IAAgBvU,IAAKhB,OAAI,GAASgB,EAAIpO,EAAEoX,QAAU,CAC/K,GAAI/H,GAAGwjD,UAAYzkD,EAAGX,EAAI4B,GAAGwnB,KAAK72B,GAAInC,EAAI4P,QAAiB,IAAZA,EAAEqpB,MAAmBrpB,EAAEqpB,MAAQ92B,EAAEoX,OAAQjH,EAAInQ,EAAE2iB,WAAW9kB,IAAK4P,EAAG,CAC/GV,EAAI/M,EAAEof,MAAMhR,GACZ,KACR,CACM,GAAU,KAAN+B,GAAY/B,IAAMvQ,GAAKqP,EACzBF,EAAEqZ,SAAUnZ,OAAI,OAEhB,OAAQA,IAAMF,EAAEqZ,MAAO,GAAGnZ,OAAI,GAASkB,EAAIvQ,IAAMmP,EAAEqZ,KAAKrmB,EAAEof,MAAMhR,EAAGvQ,IAAKH,GAAKG,EAAIuQ,GAAI+B,GACnF,KAAK,EACHnD,EAAEqZ,KAAK,OAAQ3oB,IACf,MAEF,KAAK,EACH,IAAKyP,EAAuB,EAAnBqX,KAAKsuC,KAAKp1D,EAAI,GAAQsP,EAAEqZ,MAAK,GAAK3oB,IAAMyP,GAAKH,EAAEqZ,SACxD,MAEF,KAAK,GACHrZ,EAAEqZ,SAAU3oB,EAAI,EAChB,MAEF,QACEwP,GAAI,EAAIxP,EAAI,EAElB0Q,EAAIvQ,EAAI,CACd,CACI,OAAOoP,IAAMC,GAAKF,EAAEqZ,MAAK,GAAKtZ,GAAKC,EAAEqZ,KAAKtZ,GAAIC,EAAEqZ,KAAK,OAAQrZ,CACjE,CACA,CAgBsF6gB,GAAKnwB,EAAGqP,GAAG,KACjG,CAqgBA,SAAS+P,GAAGpf,GACV,MAAO,CACL4iD,KAAM5iD,EAAE4iD,KACRC,OAAQ7iD,EAAE6iD,OACV7F,OAAQh9C,EAAEg9C,OAEd,CACA,SAAS/vB,GAAGjtB,EAAGqP,GACb,IAAIK,GAAM,EACV,OAASA,EAAIL,EAAEqK,QAAU,CACvB,MAAMlK,EAAIH,EAAEK,GACZoO,MAAMK,QAAQ3O,GAAKyd,GAAGjtB,EAAGwP,GAAK6lD,GAAGr1D,EAAGwP,EACxC,CACA,CACA,SAAS6lD,GAAGr1D,EAAGqP,GACb,IAAIK,EACJ,IAAKA,KAAKL,EACR,GAAIme,GAAG1J,KAAKzU,EAAGK,GACb,OAAQA,GACN,IAAK,iBAAkB,CACrB,MAAMF,EAAIH,EAAEK,GACZF,GAAKxP,EAAE0P,GAAGiZ,QAAQnZ,GAClB,KACV,CACQ,IAAK,aAAc,CACjB,MAAMA,EAAIH,EAAEK,GACZF,GAAKxP,EAAE0P,GAAGiZ,QAAQnZ,GAClB,KACV,CACQ,IAAK,QACL,IAAK,OAAQ,CACX,MAAMA,EAAIH,EAAEK,GACZF,GAAKkQ,OAAOiZ,OAAO34B,EAAE0P,GAAIF,GACzB,KACV,EAEA,CACA,SAASmK,GAAG3Z,EAAGqP,GACb,MAAMrP,EAAI,IAAIyf,MAAM,iBAAmBzf,EAAEnB,KAAO,MAAQ6B,GAAG,CACzD+kB,MAAOzlB,EAAEylB,MACTo0B,IAAK75C,EAAE65C,MACJ,0BAA4BxqC,EAAExQ,KAAO,MAAQ6B,GAAG,CACnD+kB,MAAOpW,EAAEoW,MACTo0B,IAAKxqC,EAAEwqC,MACJ,aAAe,IAAIp6B,MAAM,oCAAsCpQ,EAAExQ,KAAO,MAAQ6B,GAAG,CACtF+kB,MAAOpW,EAAEoW,MACTo0B,IAAKxqC,EAAEwqC,MACJ,kBACP,CACA,SAASrmB,GAAGxzB,GACV,MAAMqP,EAAIypB,KACVzpB,EAAEq6C,OACF,SAAWl6C,GACT,OAAO2iB,GAAG3iB,EAAG,IACRH,EAAEwJ,KAAK,eACP7Y,EAIH+0D,WAAY1lD,EAAEwJ,KAAK,wBAA0B,GAC7C06C,gBAAiBlkD,EAAEwJ,KAAK,2BAA6B,IAE3D,CACA,CAoFA,SAAS2V,GAAGxuB,EAAGqP,GACb,MAAMK,EAAIL,EAAEqlD,cACZ,IAAIllD,EAAI,IACR,GAAU,cAANE,EAAoBF,GAAK,KAAa,SAANE,IAAiBF,GAAK,KAAOH,EAAEwoB,OAASxoB,EAAE8kD,YAAc,KAAiB,mBAAX9kD,EAAExQ,KAClG,MAAO,CAAC,CAAEA,KAAM,OAAQkM,MAAO,KAAOsE,EAAEye,IAAMte,IAChD,MAAMM,EAAI9P,EAAEiZ,IAAI5J,GAAI/M,EAAIwN,EAAE,GAC1BxN,GAAgB,SAAXA,EAAEzD,KAAkByD,EAAEyI,MAAQ,IAAMzI,EAAEyI,MAAQ+E,EAAE0R,QAAQ,CAAE3iB,KAAM,OAAQkM,MAAO,MACpF,MAAMF,EAAIiF,EAAEA,EAAE4J,OAAS,GACvB,OAAO7O,GAAgB,SAAXA,EAAEhM,KAAkBgM,EAAEE,OAASyE,EAAIM,EAAE6Y,KAAK,CAAE9pB,KAAM,OAAQkM,MAAOyE,IAAMM,CACrF,CAuFA,SAASif,GAAG/uB,GAEV,OADUA,EAAE60D,QACA70D,EAAE8C,SAAS4W,OAAS,CAClC,CAiGA,MAAMgD,GAAK,EAAGnD,GAAK,GACnB,SAAS+7C,GAAGt1D,GACV,MAAMqP,EAAIqqB,OAAO15B,GAAI0P,EAAI,YACzB,IAAIF,EAAIE,EAAEypB,KAAK9pB,GAAIS,EAAI,EACvB,MAAMxN,EAAI,GACV,KAAOkN,GACLlN,EAAEqmB,KACA3M,GAAG3M,EAAEqS,MAAM5R,EAAGN,EAAE4pB,OAAQtpB,EAAI,GAAG,GAC/BN,EAAE,IACDM,EAAIN,EAAE4pB,MAAQ5pB,EAAE,GAAGkK,OAAQlK,EAAIE,EAAEypB,KAAK9pB,GAC3C,OAAO/M,EAAEqmB,KAAK3M,GAAG3M,EAAEqS,MAAM5R,GAAIA,EAAI,GAAG,IAAMxN,EAAE0b,KAAK,GACnD,CACA,SAAShC,GAAGhc,EAAGqP,EAAGK,GAChB,IAAIF,EAAI,EAAGM,EAAI9P,EAAE0Z,OACjB,GAAIrK,EAAG,CACL,IAAI/M,EAAItC,EAAEs0D,YAAY9kD,GACtB,KAAOlN,IAAMoa,IAAMpa,IAAMiX,IACvB/J,IAAKlN,EAAItC,EAAEs0D,YAAY9kD,EAC7B,CACE,GAAIE,EAAG,CACL,IAAIpN,EAAItC,EAAEs0D,YAAYxkD,EAAI,GAC1B,KAAOxN,IAAMoa,IAAMpa,IAAMiX,IACvBzJ,IAAKxN,EAAItC,EAAEs0D,YAAYxkD,EAAI,EACjC,CACE,OAAOA,EAAIN,EAAIxP,EAAE0hB,MAAMlS,EAAGM,GAAK,EACjC,CAcA,MAAMylD,GAAK,CACTC,WA/TF,SAAYx1D,EAAGqP,GACb,MAAMK,EAAI,CACR7Q,KAAM,UACNukB,QAAS,aACTqc,WAAY,CAAE,EACd38B,SAAU9C,EAAEwuC,KAAKxuC,EAAEiZ,IAAI5J,IAAI,IAE7B,OAAOrP,EAAEy1D,MAAMpmD,EAAGK,GAAI1P,EAAE01D,UAAUrmD,EAAGK,EACvC,EAwTEimD,MAvTF,SAAY31D,EAAGqP,GACb,MAAMK,EAAI,CAAE7Q,KAAM,UAAWukB,QAAS,KAAMqc,WAAY,CAAA,EAAI38B,SAAU,IACtE,OAAO9C,EAAEy1D,MAAMpmD,EAAGK,GAAI,CAAC1P,EAAE01D,UAAUrmD,EAAGK,GAAI,CAAE7Q,KAAM,OAAQkM,MAAO,MAEnE,EAoTEukC,KAnTF,SAAYtvC,EAAGqP,GACb,MAAMK,EAAIL,EAAEtE,MAAQsE,EAAEtE,MAAQ,KAC5B,GAAIyE,EAAI,CAAE,EACZH,EAAE2W,OAASxW,EAAEI,UAAY,CAAC,YAAcP,EAAE2W,OAC1C,IAAIlW,EAAI,CACNjR,KAAM,UACNukB,QAAS,OACTqc,WAAYjwB,EACZ1M,SAAU,CAAC,CAAEjE,KAAM,OAAQkM,MAAO2E,KAEpC,OAAOL,EAAE4kD,OAASnkD,EAAE+I,KAAO,CAAEo7C,KAAM5kD,EAAE4kD,OAASj0D,EAAEy1D,MAAMpmD,EAAGS,GAAIA,EAAI9P,EAAE01D,UAAUrmD,EAAGS,GAAIA,EAAI,CAAEjR,KAAM,UAAWukB,QAAS,MAAOqc,WAAY,CAAA,EAAI38B,SAAU,CAACgN,IAAM9P,EAAEy1D,MAAMpmD,EAAGS,GAAIA,CAC7K,EAySE6N,OAxSF,SAAY3d,EAAGqP,GACb,MAAMK,EAAI,CACR7Q,KAAM,UACNukB,QAAS,MACTqc,WAAY,CAAE,EACd38B,SAAU9C,EAAEiZ,IAAI5J,IAElB,OAAOrP,EAAEy1D,MAAMpmD,EAAGK,GAAI1P,EAAE01D,UAAUrmD,EAAGK,EACvC,EAiSEwhD,SAhSF,SAAYlxD,EAAGqP,GACb,MAAMK,EAAI,CACR7Q,KAAM,UACNukB,QAAS,KACTqc,WAAY,CAAE,EACd38B,SAAU9C,EAAEiZ,IAAI5J,IAElB,OAAOrP,EAAEy1D,MAAMpmD,EAAGK,GAAI1P,EAAE01D,UAAUrmD,EAAGK,EACvC,EAyREkmD,kBAxRF,SAAY51D,EAAGqP,GACb,MAAMK,EAAsC,iBAA3B1P,EAAE2e,QAAQk3C,cAA4B71D,EAAE2e,QAAQk3C,cAAgB,gBAAiBrmD,EAAIkqB,OAAOrqB,EAAE8kD,YAAYr3C,cAAehN,EAAIhP,GAAG0O,EAAE6T,eAAgB/gB,EAAItC,EAAE81D,cAAchS,QAAQt0C,GAC/L,IAAI3E,EAAG0E,EAAIvP,EAAE+1D,eAAe/uC,IAAIxX,QAC1B,IAAND,GAAgBA,EAAI,EAAGvP,EAAE81D,cAAcntC,KAAKnZ,GAAI3E,EAAI7K,EAAE81D,cAAcp8C,QAAU7O,EAAIvI,EAAI,EAAGiN,GAAK,EAAGvP,EAAE+1D,eAAehvC,IAAIvX,EAAGD,GACzH,MAAMD,EAAI,CACRzQ,KAAM,UACNukB,QAAS,IACTqc,WAAY,CACV9H,KAAM,IAAMjoB,EAAI,MAAQI,EACxB8Q,GAAIlR,EAAI,SAAWI,GAAKP,EAAI,EAAI,IAAMA,EAAI,IAC1CymD,iBAAiB,EACjBh1B,gBAAiB,CAAC,mBAEpBl+B,SAAU,CAAC,CAAEjE,KAAM,OAAQkM,MAAO2uB,OAAO7uB,MAE3C7K,EAAEy1D,MAAMpmD,EAAGC,GACX,MAAMS,EAAI,CACRlR,KAAM,UACNukB,QAAS,MACTqc,WAAY,CAAE,EACd38B,SAAU,CAACwM,IAEb,OAAOtP,EAAEy1D,MAAMpmD,EAAGU,GAAI/P,EAAE01D,UAAUrmD,EAAGU,EACvC,EAkQEkmD,QAjQF,SAAYj2D,EAAGqP,GACb,MAAMK,EAAI,CACR7Q,KAAM,UACNukB,QAAS,IAAM/T,EAAE+kD,MACjB30B,WAAY,CAAE,EACd38B,SAAU9C,EAAEiZ,IAAI5J,IAElB,OAAOrP,EAAEy1D,MAAMpmD,EAAGK,GAAI1P,EAAE01D,UAAUrmD,EAAGK,EACvC,EA0PEwmD,KAzPF,SAAYl2D,EAAGqP,GACb,GAAIrP,EAAE2e,QAAQw3C,mBAAoB,CAChC,MAAMzmD,EAAI,CAAE7Q,KAAM,MAAOkM,MAAOsE,EAAEtE,OAClC,OAAO/K,EAAEy1D,MAAMpmD,EAAGK,GAAI1P,EAAE01D,UAAUrmD,EAAGK,EACzC,CACA,EAqPE0mD,eA1OF,SAAYp2D,EAAGqP,GACb,MAAMK,EAAIgqB,OAAOrqB,EAAE8kD,YAAYr3C,cAAetN,EAAIxP,EAAEq2D,eAAervC,IAAItX,GACvE,IAAKF,EACH,OAAOgf,GAAGxuB,EAAGqP,GACf,MAAMS,EAAI,CAAE+d,IAAK/sB,GAAG0O,EAAE40C,KAAO,IAAKt2B,IAAKze,EAAEye,KAC7B,OAAZte,EAAEnN,YAA8B,IAAZmN,EAAEnN,QAAqByN,EAAEzN,MAAQmN,EAAEnN,OACvD,MAAMC,EAAI,CAAEzD,KAAM,UAAWukB,QAAS,MAAOqc,WAAY3vB,EAAGhN,SAAU,IACtE,OAAO9C,EAAEy1D,MAAMpmD,EAAG/M,GAAItC,EAAE01D,UAAUrmD,EAAG/M,EACvC,EAmOEsvD,MAlOF,SAAY5xD,EAAGqP,GACb,MAAMK,EAAI,CAAEme,IAAK/sB,GAAGuO,EAAE+0C,MACZ,OAAV/0C,EAAEye,UAA0B,IAAVze,EAAEye,MAAmBpe,EAAEoe,IAAMze,EAAEye,KAAkB,OAAZze,EAAEhN,YAA8B,IAAZgN,EAAEhN,QAAqBqN,EAAErN,MAAQgN,EAAEhN,OAC9G,MAAMmN,EAAI,CAAE3Q,KAAM,UAAWukB,QAAS,MAAOqc,WAAY/vB,EAAG5M,SAAU,IACtE,OAAO9C,EAAEy1D,MAAMpmD,EAAGG,GAAIxP,EAAE01D,UAAUrmD,EAAGG,EACvC,EA8NE8mD,WA7NF,SAAYt2D,EAAGqP,GACb,MAAMK,EAAI,CAAE7Q,KAAM,OAAQkM,MAAOsE,EAAEtE,MAAMuV,QAAQ,YAAa,MAC9DtgB,EAAEy1D,MAAMpmD,EAAGK,GACX,MAAMF,EAAI,CACR3Q,KAAM,UACNukB,QAAS,OACTqc,WAAY,CAAE,EACd38B,SAAU,CAAC4M,IAEb,OAAO1P,EAAEy1D,MAAMpmD,EAAGG,GAAIxP,EAAE01D,UAAUrmD,EAAGG,EACvC,EAoNE+mD,cAnNF,SAAYv2D,EAAGqP,GACb,MAAMK,EAAIgqB,OAAOrqB,EAAE8kD,YAAYr3C,cAAetN,EAAIxP,EAAEq2D,eAAervC,IAAItX,GACvE,IAAKF,EACH,OAAOgf,GAAGxuB,EAAGqP,GACf,MAAMS,EAAI,CAAE6nB,KAAM72B,GAAG0O,EAAE40C,KAAO,KAClB,OAAZ50C,EAAEnN,YAA8B,IAAZmN,EAAEnN,QAAqByN,EAAEzN,MAAQmN,EAAEnN,OACvD,MAAMC,EAAI,CACRzD,KAAM,UACNukB,QAAS,IACTqc,WAAY3vB,EACZhN,SAAU9C,EAAEiZ,IAAI5J,IAElB,OAAOrP,EAAEy1D,MAAMpmD,EAAG/M,GAAItC,EAAE01D,UAAUrmD,EAAG/M,EACvC,EAuME0tC,KAtMF,SAAYhwC,EAAGqP,GACb,MAAMK,EAAI,CAAEioB,KAAM72B,GAAGuO,EAAE+0C,MACX,OAAZ/0C,EAAEhN,YAA8B,IAAZgN,EAAEhN,QAAqBqN,EAAErN,MAAQgN,EAAEhN,OACvD,MAAMmN,EAAI,CACR3Q,KAAM,UACNukB,QAAS,IACTqc,WAAY/vB,EACZ5M,SAAU9C,EAAEiZ,IAAI5J,IAElB,OAAOrP,EAAEy1D,MAAMpmD,EAAGG,GAAIxP,EAAE01D,UAAUrmD,EAAGG,EACvC,EA6LEsiD,SA5LF,SAAY9xD,EAAGqP,EAAGK,GAChB,MAAMF,EAAIxP,EAAEiZ,IAAI5J,GAAIS,EAAIJ,EAuB1B,SAAY1P,GACV,IAAIqP,GAAI,EACR,GAAe,SAAXrP,EAAEnB,KAAiB,CACrBwQ,EAAIrP,EAAE60D,SAAU,EAChB,MAAMnlD,EAAI1P,EAAE8C,SACZ,IAAI0M,GAAM,EACV,MAAQH,KAAOG,EAAIE,EAAEgK,QACnBrK,EAAI0f,GAAGrf,EAAEF,GACf,CACE,OAAOH,CACT,CAjC8BslB,CAAGjlB,GAAKqf,GAAG1f,GAAI/M,EAAI,CAAA,EAAIuI,EAAI,GACvD,GAAwB,kBAAbwE,EAAEq1B,QAAsB,CACjC,MAAMj1B,EAAID,EAAE,GACZ,IAAIkB,EACJjB,GAAgB,YAAXA,EAAE5Q,MAAoC,MAAd4Q,EAAE2T,QAAkB1S,EAAIjB,GAAKiB,EAAI,CAAE7R,KAAM,UAAWukB,QAAS,IAAKqc,WAAY,CAAE,EAAE38B,SAAU,IAAM0M,EAAEgS,QAAQ9Q,IAAKA,EAAE5N,SAAS4W,OAAS,GAAKhJ,EAAE5N,SAAS0e,QAAQ,CAAE3iB,KAAM,OAAQkM,MAAO,MAAQ2F,EAAE5N,SAAS0e,QAAQ,CAC1O3iB,KAAM,UACNukB,QAAS,QACTqc,WAAY,CAAE5gC,KAAM,WAAY6lC,QAASr1B,EAAEq1B,QAASthC,UAAU,GAC9DN,SAAU,KACRR,EAAEsN,UAAY,CAAC,iBACvB,CACE,IAAIL,GAAM,EACV,OAASA,EAAIC,EAAEkK,QAAU,CACvB,MAAMjK,EAAID,EAAED,IACXO,GAAW,IAANP,GAAsB,YAAXE,EAAE5Q,MAAoC,MAAd4Q,EAAE2T,UAAoBvY,EAAE8d,KAAK,CAAE9pB,KAAM,OAAQkM,MAAO,OAChF,YAAX0E,EAAE5Q,MAAoC,MAAd4Q,EAAE2T,SAAoBtT,EAA4BjF,EAAE8d,KAAKlZ,GAA/B5E,EAAE8d,QAAQlZ,EAAE3M,SACpE,CACE,MAAMwM,EAAIE,EAAEA,EAAEkK,OAAS,GACvBpK,IAAMQ,GAAgB,YAAXR,EAAEzQ,MAAoC,MAAdyQ,EAAE8T,UAAoBvY,EAAE8d,KAAK,CAAE9pB,KAAM,OAAQkM,MAAO,OAEvF,MAAMgF,EAAI,CAAElR,KAAM,UAAWukB,QAAS,KAAMqc,WAAYn9B,EAAGQ,SAAU+H,GACrE,OAAO7K,EAAEy1D,MAAMpmD,EAAGU,GAAI/P,EAAE01D,UAAUrmD,EAAGU,EACvC,EAsKErI,KAtJF,SAAY1H,EAAGqP,GACb,MAAMK,EAAI,CAAA,EAAIF,EAAIxP,EAAEiZ,IAAI5J,GACxB,IAAIS,GAAM,EACV,IAAuB,iBAAXT,EAAEoW,OAAiC,IAAZpW,EAAEoW,QAAgB/V,EAAE+V,MAAQpW,EAAEoW,SAAU3V,EAAIN,EAAEkK,QAAU,CACzF,MAAM7O,EAAI2E,EAAEM,GACZ,GAAe,YAAXjF,EAAEhM,MAAoC,OAAdgM,EAAEuY,SAAoBvY,EAAE40B,YAAc3hB,MAAMK,QAAQtT,EAAE40B,WAAW7vB,YAAc/E,EAAE40B,WAAW7vB,UAAUgQ,SAAS,kBAAmB,CAC5JlQ,EAAEE,UAAY,CAAC,sBACf,KACN,CACA,CACE,MAAMtN,EAAI,CACRzD,KAAM,UACNukB,QAAS/T,EAAEulD,QAAU,KAAO,KAC5Bn1B,WAAY/vB,EACZ5M,SAAU9C,EAAEwuC,KAAKh/B,GAAG,IAEtB,OAAOxP,EAAEy1D,MAAMpmD,EAAG/M,GAAItC,EAAE01D,UAAUrmD,EAAG/M,EACvC,EAsIE8vD,UArIF,SAAYpyD,EAAGqP,GACb,MAAMK,EAAI,CACR7Q,KAAM,UACNukB,QAAS,IACTqc,WAAY,CAAE,EACd38B,SAAU9C,EAAEiZ,IAAI5J,IAElB,OAAOrP,EAAEy1D,MAAMpmD,EAAGK,GAAI1P,EAAE01D,UAAUrmD,EAAGK,EACvC,EA+HE8mD,KA9HF,SAAYx2D,EAAGqP,GACb,MAAMK,EAAI,CAAE7Q,KAAM,OAAQiE,SAAU9C,EAAEwuC,KAAKxuC,EAAEiZ,IAAI5J,KACjD,OAAOrP,EAAEy1D,MAAMpmD,EAAGK,GAAI1P,EAAE01D,UAAUrmD,EAAGK,EACvC,EA4HEgjD,OA3HF,SAAY1yD,EAAGqP,GACb,MAAMK,EAAI,CACR7Q,KAAM,UACNukB,QAAS,SACTqc,WAAY,CAAE,EACd38B,SAAU9C,EAAEiZ,IAAI5J,IAElB,OAAOrP,EAAEy1D,MAAMpmD,EAAGK,GAAI1P,EAAE01D,UAAUrmD,EAAGK,EACvC,EAoHEgnB,MAnHF,SAAY12B,EAAGqP,GACb,MAAMK,EAAI1P,EAAEiZ,IAAI5J,GAAIG,EAAIE,EAAE48C,QAASx8C,EAAI,GACvC,GAAIN,EAAG,CACL,MAAM3E,EAAI,CACRhM,KAAM,UACNukB,QAAS,QACTqc,WAAY,CAAE,EACd38B,SAAU9C,EAAEwuC,KAAK,CAACh/B,IAAI,IAExBxP,EAAEy1D,MAAMpmD,EAAEvM,SAAS,GAAI+H,GAAIiF,EAAE6Y,KAAK9d,EACtC,CACE,GAAI6E,EAAEgK,OAAS,EAAG,CAChB,MAAM7O,EAAI,CACRhM,KAAM,UACNukB,QAAS,QACTqc,WAAY,CAAE,EACd38B,SAAU9C,EAAEwuC,KAAK9+B,GAAG,IACnBH,EAAI+zC,GAAGj0C,EAAEvM,SAAS,IAAKwM,EAAI+W,GAAGhX,EAAEvM,SAASuM,EAAEvM,SAAS4W,OAAS,IAChEnK,GAAKD,IAAMzE,EAAEkmB,SAAW,CAAEtL,MAAOlW,EAAGsqC,IAAKvqC,IAAMQ,EAAE6Y,KAAK9d,EAC1D,CACE,MAAMvI,EAAI,CACRzD,KAAM,UACNukB,QAAS,QACTqc,WAAY,CAAE,EACd38B,SAAU9C,EAAEwuC,KAAK1+B,GAAG,IAEtB,OAAO9P,EAAEy1D,MAAMpmD,EAAG/M,GAAItC,EAAE01D,UAAUrmD,EAAG/M,EACvC,EAyFEm0D,UAtEF,SAAYz2D,EAAGqP,GACb,MAAMK,EAAI,CACR7Q,KAAM,UACNukB,QAAS,KAETqc,WAAY,CAAE,EACd38B,SAAU9C,EAAEiZ,IAAI5J,IAElB,OAAOrP,EAAEy1D,MAAMpmD,EAAGK,GAAI1P,EAAE01D,UAAUrmD,EAAGK,EACvC,EA8DEgnD,SAzFF,SAAY12D,EAAGqP,EAAGK,GAChB,MAAMF,EAAIE,EAAIA,EAAE5M,cAAW,EAAQR,EAA+B,KAA1BkN,EAAIA,EAAEs0C,QAAQz0C,GAAK,GAAW,KAAO,KAAMxE,EAAI6E,GAAgB,UAAXA,EAAE7Q,KAAmB6Q,EAAEg/B,WAAQ,EAAQn/B,EAAI1E,EAAIA,EAAE6O,OAASrK,EAAEvM,SAAS4W,OACjK,IAAIpK,GAAM,EACV,MAAMS,EAAI,GACV,OAAST,EAAIC,GAAK,CAChB,MAAMmB,EAAIrB,EAAEvM,SAASwM,GAAInP,EAAI,CAAE,EAAEsS,EAAI5H,EAAIA,EAAEyE,QAAK,EAChDmD,IAAMtS,EAAEuuC,MAAQj8B,GAChB,IAAIJ,EAAI,CAAExT,KAAM,UAAWukB,QAAS9gB,EAAGm9B,WAAYt/B,EAAG2C,SAAU,IAChE4N,IAAM2B,EAAEvP,SAAW9C,EAAEiZ,IAAIvI,GAAI1Q,EAAEy1D,MAAM/kD,EAAG2B,GAAIA,EAAIrS,EAAE01D,UAAUhlD,EAAG2B,IAAKtC,EAAE4Y,KAAKtW,EAC/E,CACE,MAAM5C,EAAI,CACR5Q,KAAM,UACNukB,QAAS,KACTqc,WAAY,CAAE,EACd38B,SAAU9C,EAAEwuC,KAAKz+B,GAAG,IAEtB,OAAO/P,EAAEy1D,MAAMpmD,EAAGI,GAAIzP,EAAE01D,UAAUrmD,EAAGI,EACvC,EAyEExN,KApCF,SAAYjC,EAAGqP,GACb,MAAMK,EAAI,CAAE7Q,KAAM,OAAQkM,MAAOuqD,GAAG57B,OAAOrqB,EAAEtE,SAC7C,OAAO/K,EAAEy1D,MAAMpmD,EAAGK,GAAI1P,EAAE01D,UAAUrmD,EAAGK,EACvC,EAkCEijD,cAjCF,SAAY3yD,EAAGqP,GACb,MAAMK,EAAI,CACR7Q,KAAM,UACNukB,QAAS,KACTqc,WAAY,CAAE,EACd38B,SAAU,IAEZ,OAAO9C,EAAEy1D,MAAMpmD,EAAGK,GAAI1P,EAAE01D,UAAUrmD,EAAGK,EACvC,EA0BEinD,KAAMC,GACNC,KAAMD,GACN/F,WAAY+F,GACZE,mBAAoBF,IAEtB,SAASA,KACT,CACA,MAAuFG,GAAoB,iBAAR9hC,KAAmBA,KAAO+hC,WAyD1Hj6C,GAAM/c,GAzDqI,EAACA,EAAGqP,KAChJ,MAAMK,EAAI,CAACI,EAAGxN,KAAOtC,EAAE+mB,IAAIzkB,EAAGwN,GAAIA,GAAIN,EAAKM,IACzC,GAAI9P,EAAE0d,IAAI5N,GACR,OAAO9P,EAAEgnB,IAAIlX,GACf,MAAOxN,EAAGuI,GAAKwE,EAAES,GACjB,OAAQxN,GACN,KANc,EAOd,KAPK,EAQH,OAAOoN,EAAE7E,EAAGiF,GACd,KATsB,EASb,CACP,MAAMP,EAAIG,EAAE,GAAII,GAChB,IAAK,MAAMR,KAAKzE,EACd0E,EAAEoZ,KAAKnZ,EAAEF,IACX,OAAOC,CACf,CACM,KAf8B,EAerB,CACP,MAAMA,EAAIG,EAAE,CAAE,EAAEI,GAChB,IAAK,MAAOR,EAAGS,KAAMlF,EACnB0E,EAAEC,EAAEF,IAAME,EAAEO,GACd,OAAOR,CACf,CACM,KArBsC,EAsBpC,OAAOG,EAAE,IAAIoR,KAAKjW,GAAIiF,GACxB,KAvB8C,EAuBrC,CACP,MAAQwiB,OAAQ/iB,EAAG0nD,MAAO3nD,GAAMzE,EAChC,OAAO6E,EAAE,IAAIwiB,OAAO3iB,EAAGD,GAAIQ,EACnC,CACM,KA3BsD,EA2B7C,CACP,MAAMP,EAAIG,EAAkB,IAAIc,IAAOV,GACvC,IAAK,MAAOR,EAAGS,KAAMlF,EACnB0E,EAAEwX,IAAIvX,EAAEF,GAAIE,EAAEO,IAChB,OAAOR,CACf,CACM,KAjC8D,EAiCrD,CACP,MAAMA,EAAIG,EAAkB,IAAI2N,IAAOvN,GACvC,IAAK,MAAMR,KAAKzE,EACd0E,EAAEsO,IAAIrO,EAAEF,IACV,OAAOC,CACf,CACM,KAvCsE,EAuC7D,CACP,MAAQiU,KAAMjU,EAAG0M,QAAS3M,GAAMzE,EAChC,OAAO6E,EAAE,IAAIqnD,GAAGxnD,GAAGD,GAAIQ,EAC/B,CACM,KA3C8E,EA4C5E,OAAOJ,EAAEwnD,OAAOrsD,GAAIiF,GACtB,IAAK,SACH,OAAOJ,EAAEgQ,OAAOw3C,OAAOrsD,IAAKiF,GAC9B,IAAK,cACH,OAAOJ,EAAE,IAAI6Q,WAAW1V,GAAGya,OAAQza,GACrC,IAAK,WAAY,CACf,MAAQya,OAAQ/V,GAAM,IAAIgR,WAAW1V,GACrC,OAAO6E,EAAE,IAAIynD,SAAS5nD,GAAI1E,EAClC,EAEI,OAAO6E,EAAE,IAAIqnD,GAAGz0D,GAAGuI,GAAIiF,EAAE,EAE3B,OAAON,CAAC,EACK4nD,CAAmB,IAAI5mD,IAAOxQ,EAA9Bo3D,CAAiC,GAAI/jC,GAAK,IAAM7S,SAAU8S,IAAO,CAAA,GAAM3T,KAAM03C,IAAO33C,OAAQjf,GAAMT,IAC/G,MAAMqP,SAAWrP,EACjB,GAAU,WAANqP,IAAmBrP,EACrB,MAAO,CA5DS,EA4DJqP,GACd,MAAMK,EAAI4jB,GAAGxP,KAAK9jB,GAAG0hB,MAAM,MAC3B,OAAQhS,GACN,IAAK,QACH,MAAO,CAhEe,EAgEV2jB,IACd,IAAK,SACH,MAAO,CAlEuB,EAkElBA,IACd,IAAK,OACH,MAAO,CApE+B,EAoE1BA,IACd,IAAK,SACH,MAAO,CAtEuC,EAsElCA,IACd,IAAK,MACH,MAAO,CAxE+C,EAwE1CA,IACd,IAAK,MACH,MAAO,CA1EuD,EA0ElDA,IACd,IAAK,WACH,MAAO,CA5Ee,EA4EV3jB,GAEhB,OAAOA,EAAEkQ,SAAS,SAAW,CA9EH,EA8EQlQ,GAAKA,EAAEkQ,SAAS,SAAW,CA9Ea,EA8ERlQ,GAAK,CA9ErC,EA8E0CA,EAAE,EAC7E9E,GAAK,EAAE5K,EAAGqP,KA/EO,IA+EArP,IAAmB,aAANqP,GAA0B,WAANA,GA4ElDwP,GAAK,CAAC7e,GAAKwxB,KAAMniB,EAAGioD,MAAO5nD,GAAM,MAClC,MAAMF,EAAI,GACV,MA9EyE,EAACxP,EAAGqP,EAAGK,EAAGF,KACnF,MAAMM,EAAI,CAACjF,EAAG0E,KACZ,MAAMD,EAAIE,EAAEmZ,KAAK9d,GAAK,EACtB,OAAO6E,EAAEqX,IAAIxX,EAAGD,GAAIA,CAAC,EACpBhN,EAAKuI,IACN,GAAI6E,EAAEgO,IAAI7S,GACR,OAAO6E,EAAEsX,IAAInc,GACf,IAAK0E,EAAGD,GAAK7O,GAAGoK,GAChB,OAAQ0E,GACN,KAxFc,EAwFL,CACP,IAAIE,EAAI5E,EACR,OAAQyE,GACN,IAAK,SACHC,EA5FwE,EA4FhEE,EAAI5E,EAAE2V,WACd,MACF,IAAK,WACL,IAAK,SACH,GAAIxgB,EACF,MAAM,IAAIk6B,UAAU,uBAAyB5qB,GAC/CG,EAAI,KACJ,MACF,IAAK,YACH,OAAOK,EAAE,EArGV,GAqGgBjF,GAEnB,OAAOiF,EAAE,CAACP,EAAGE,GAAI5E,EACzB,CACM,KAzGsB,EAyGb,CACP,GAAIyE,EAAG,CACL,IAAInP,EAAI0K,EACR,MAAa,aAANyE,EAAmBnP,EAAI,IAAIogB,WAAW1V,EAAEya,QAAgB,gBAANhW,IAAwBnP,EAAI,IAAIogB,WAAW1V,IAAKiF,EAAE,CAACR,EAAG,IAAInP,IAAK0K,EAClI,CACQ,MAAM4E,EAAI,GAAIiB,EAAIZ,EAAE,CAACP,EAAGE,GAAI5E,GAC5B,IAAK,MAAM1K,KAAK0K,EACd4E,EAAEkZ,KAAKrmB,EAAEnC,IACX,OAAOuQ,CACf,CACM,KAnH8B,EAmHrB,CACP,GAAIpB,EACF,OAAQA,GACN,IAAK,SACH,OAAOQ,EAAE,CAACR,EAAGzE,EAAE2V,YAAa3V,GAC9B,IAAK,UACL,IAAK,SACL,IAAK,SACH,OAAOiF,EAAE,CAACR,EAAGzE,EAAE0sD,WAAY1sD,GAEjC,GAAIwE,GAAK,WAAYxE,EACnB,OAAOvI,EAAEuI,EAAE2sD,UACb,MAAM/nD,EAAI,GAAIiB,EAAIZ,EAAE,CAACP,EAAGE,GAAI5E,GAC5B,IAAK,MAAM1K,KAAKk3D,GAAGxsD,IAChB7K,IAAM4K,GAAGnK,GAAGoK,EAAE1K,OAASsP,EAAEkZ,KAAK,CAACrmB,EAAEnC,GAAImC,EAAEuI,EAAE1K,MAC5C,OAAOuQ,CACf,CACM,KApIsC,EAqIpC,OAAOZ,EAAE,CAACP,EAAG1E,EAAE4sD,eAAgB5sD,GACjC,KAtI8C,EAsIrC,CACP,MAAQynB,OAAQ7iB,EAAGwnD,MAAOvmD,GAAM7F,EAChC,OAAOiF,EAAE,CAACP,EAAG,CAAE+iB,OAAQ7iB,EAAGwnD,MAAOvmD,IAAM7F,EAC/C,CACM,KA1IsD,EA0I7C,CACP,MAAM4E,EAAI,GAAIiB,EAAIZ,EAAE,CAACP,EAAGE,GAAI5E,GAC5B,IAAK,MAAO1K,EAAGsS,KAAM5H,GAClB7K,IAAO4K,GAAGnK,GAAGN,MAAOyK,GAAGnK,GAAGgS,MAAShD,EAAEkZ,KAAK,CAACrmB,EAAEnC,GAAImC,EAAEmQ,KACtD,OAAO/B,CACf,CACM,KAhJ8D,EAgJrD,CACP,MAAMjB,EAAI,GAAIiB,EAAIZ,EAAE,CAACP,EAAGE,GAAI5E,GAC5B,IAAK,MAAM1K,KAAK0K,GACb7K,IAAM4K,GAAGnK,GAAGN,MAAQsP,EAAEkZ,KAAKrmB,EAAEnC,IAChC,OAAOuQ,CACf,EAEI,MAAQuL,QAASlM,GAAMlF,EACvB,OAAOiF,EAAE,CAACP,EAAG,CAAEiU,KAAMlU,EAAG2M,QAASlM,IAAMlF,EAAE,EAE3C,OAAOvI,CAAC,EAGDo1D,GAAKroD,GAAKK,KAAML,EAAmB,IAAImB,IAAOhB,EAA9CkoD,CAAiD13D,GAAIwP,CAAC,EAC5DmoD,GAA+B,mBAAnBn1C,gBAA6B,CAEzCxiB,EAAGqP,IAAMA,IAAM,SAAUA,GAAK,UAAWA,GAAK0N,GAAG8B,GAAG7e,EAAGqP,IAAMmT,gBAAgBxiB,GAC5E,CAACA,EAAGqP,IAAM0N,GAAG8B,GAAG7e,EAAGqP,IACvB,SAASwlB,GAAG70B,EAAGqP,GACb,MAAMK,EAAI,CAAC,CAAE7Q,KAAM,OAAQkM,MAAO,MAClC,OAAOsE,EAAI,GAAKK,EAAEiZ,KAAK,CACrB9pB,KAAM,UACNukB,QAAS,MACTqc,WAAY,CAAE,EACd38B,SAAU,CAAC,CAAEjE,KAAM,OAAQkM,MAAO2uB,OAAOrqB,OACvCK,CACN,CACA,SAASkoD,GAAG53D,EAAGqP,GACb,MAAO,sBAAwBrP,EAAI,IAAMqP,EAAI,EAAI,IAAMA,EAAI,GAC7D,CAwEA,MAAMwoD,GAAE,SAeG73D,GACP,GAAS,MAALA,EACF,OAAO83D,GACT,GAAgB,mBAAL93D,EACT,OAAOkB,GAAGlB,GACZ,GAAgB,iBAALA,EACT,OAAO8d,MAAMK,QAAQne,GAM3B,SAAYA,GACV,MAAMqP,EAAI,GACV,IAAIK,GAAM,EACV,OAASA,EAAI1P,EAAE0Z,QACbrK,EAAEK,GAAKmoD,GAAG73D,EAAE0P,IACd,OAAOxO,GAAGsO,GACV,SAASA,KAAKM,GACZ,IAAIxN,GAAM,EACV,OAASA,EAAI+M,EAAEqK,QACb,GAAIrK,EAAE/M,GAAGu2B,MAAMC,KAAMhpB,GAAI,OAAO,EAClC,OAAO,CACX,CACA,CAlBgCioD,CAAG/3D,GAmBnC,SAAYA,GACV,MAAMqP,EAAC,EAIP,OAAOnO,GAAGwO,GACV,SAASA,EAAEF,GACT,MAAMM,EAAC,EAKP,IAAIxN,EACJ,IAAKA,KAAKtC,EACR,GAAI8P,EAAExN,KAAO+M,EAAE/M,GAAI,OAAO,EAC5B,OAAO,CACX,CACA,CApCwC01D,CAAGh4D,GACvC,GAAgB,iBAALA,EACT,OAmCN,SAAYA,GACV,OAAOkB,GAAGmO,GACV,SAASA,EAAEK,GACT,OAAOA,GAAKA,EAAE7Q,OAASmB,CAC3B,CACA,CAxCai4D,CAAGj4D,GACZ,MAAM,IAAIyf,MAAM,+CAEpB,EAsCA,SAASve,GAAGlB,GACV,OACA,SAAW0P,EAAGF,EAAGM,GACf,SAWJ,SAAY9P,GACV,OAAa,OAANA,GAA0B,iBAALA,GAAiB,SAAUA,CACzD,CAbck4D,CAAGxoD,KAAM1P,EAAE8jB,KACnBgV,KACAppB,EACY,iBAALF,EAAgBA,OAAI,EAC3BM,QAAK,GAEX,CACA,CACA,SAASgoD,KACP,OAAO,CACT,CAIA,MAAMK,GAAK,GAAIC,IAAK,EAAIp4C,IAAK,EAAIq4C,GAAK,OACtC,SAASC,GAAGt4D,EAAGqP,EAAGK,EAAGF,GACnB,IAAIM,EACQ,mBAALT,GAA+B,mBAALK,GAAmBF,EAAIE,EAAGA,EAAIL,GAAKS,EAAIT,EACxE,MAAM/M,EAAIu1D,GAAG/nD,GAAIjF,EAAI2E,GAAI,EAAK,GAE9B,SAASD,EAAED,EAAGS,EAAGN,GACf,MAAMiB,EAEJpB,GAAiB,iBAALA,EAAgBA,EAAI,CAAA,EAElC,GAAqB,iBAAVoB,EAAE7R,KAAkB,CAC7B,MAAM4T,EAEgB,iBAAb/B,EAAE0S,QAAsB1S,EAAE0S,QAEd,iBAAV1S,EAAE8S,KAAmB9S,EAAE8S,UAAO,EAGzC9D,OAAO4Z,eAAen5B,EAAG,OAAQ,CAC/B4K,MAAO,SAAYuE,EAAEzQ,MAAQ4T,EAAI,IAAMA,EAAI,IAAM,IAAO,KAEhE,CACI,OAAOtS,EACP,SAASA,IACP,IAAYkS,EAAG1B,EAAG5Q,EAAd0S,EAAI0lD,GACR,KAAM9oD,GAAK/M,EAAEgN,EAAGS,EAAGN,EAAEA,EAAEiK,OAAS,SAAM,MAAajH,EAmBzD,SAAYzS,GACV,OAAO8d,MAAMK,QAAQne,GAAKA,EAAgB,iBAALA,EAAgB,CAACo4D,GAAIp4D,GAAU,MAALA,EAAYm4D,GAAK,CAACn4D,EACnF,CArB6Du4D,CAAG7oD,EAAEJ,EAAGG,IAAKgD,EAAE,KAAOuN,IAC3E,OAAOvN,EACT,GAAI,aAAcnD,GAAKA,EAAExM,SAAU,CACjC,MAAM2W,EAAC,EAIP,GAAIA,EAAE3W,UAAY2P,EAAE,KAAO4lD,GACzB,IAAK1nD,GAAKnB,EAAIiK,EAAE3W,SAAS4W,QAAS,GAAM7O,EAAG9K,EAAI0P,EAAEg9C,OAAOhzC,GAAI9I,GAAI,GAAMA,EAAI8I,EAAE3W,SAAS4W,QAAU,CAC7F,MAAMhH,EAAI+G,EAAE3W,SAAS6N,GACrB,GAAI0B,EAAI9C,EAAEmD,EAAG/B,EAAG5Q,EAARwP,GAAc8C,EAAE,KAAO2N,GAC7B,OAAO3N,EACT1B,EAAmB,iBAAR0B,EAAE,GAAiBA,EAAE,GAAK1B,EAAI9F,CACrD,CACA,CACM,OAAO4H,CACb,CACA,CAtCElD,CAAEvP,OAAG,EAAQ,GAAbuP,EAuCF,CAIA,SAASipD,GAAGx4D,EAAGqP,EAAGK,EAAGF,GACnB,IAAIM,EAAGxN,EAAGuI,EACE,mBAALwE,GAAmB/M,OAAI,EAAQuI,EAAIwE,EAAGS,EAAIJ,IAAMpN,EAAI+M,EAAGxE,EAAI6E,EAAGI,EAAIN,GAAI8oD,GAAGt4D,EAAGsC,GACnF,SAAWgN,EAAGS,GACZ,MAAMN,EAAIM,EAAEA,EAAE2J,OAAS,GAAIhJ,EAAIjB,EAAIA,EAAE3M,SAASghD,QAAQx0C,QAAK,EAC3D,OAAOzE,EAAEyE,EAAGoB,EAAGjB,EACnB,GAJ2FK,EAK3F,CACA,MAAM2oD,GAAK,CAAE,EAAC50C,eAAgB60C,GAAK,CAAE,EACrC,SAASC,GAAG34D,EAAGqP,GACb,MAAMK,EAAIL,GAAKqpD,GAAIlpD,EAAoB,IAAIgB,IAAOV,EAAoB,IAAIU,IAAOlO,EAAoB,IAAIkO,IAAO3F,EAAI,IAAK0qD,MAAO7lD,EAAEkpD,UAAYrpD,EAAI,CAChJ0J,IA+BF,SAAWxJ,GACT,MAAMiB,EAAI,GACV,GAAI,aAAcjB,EAAG,CACnB,MAAMtP,EAAIsP,EAAE3M,SACZ,IAAI2P,GAAM,EACV,OAASA,EAAItS,EAAEuZ,QAAU,CACvB,MAAMrH,EAAI9C,EAAEspD,IAAI14D,EAAEsS,GAAIhD,GACtB,GAAI4C,EAAG,CACL,GAAII,GAAuB,UAAlBtS,EAAEsS,EAAI,GAAG5T,QAAsBif,MAAMK,QAAQ9L,IAAiB,SAAXA,EAAExT,OAAoBwT,EAAEtH,MAAQmT,GAAG7L,EAAEtH,SAAU+S,MAAMK,QAAQ9L,IAAiB,YAAXA,EAAExT,MAAqB,CACpJ,MAAM8R,EAAI0B,EAAEvP,SAAS,GACrB6N,GAAgB,SAAXA,EAAE9R,OAAoB8R,EAAE5F,MAAQmT,GAAGvN,EAAE5F,OACtD,CACU+S,MAAMK,QAAQ9L,GAAK3B,EAAEiY,QAAQtW,GAAK3B,EAAEiY,KAAKtW,EACnD,CACA,CACA,CACI,OAAO3B,CACX,EA/CIglD,UAAWoD,GACXzC,eAAgB7mD,EAChBupD,aAAcjpD,EACdimD,eAAgBzzD,EAChBwzD,cAAe,GACf8C,SAAU/tD,EACVguD,IAWF,SAAWppD,EAAGiB,GACZ,MAAMvQ,EAAIsP,EAAE5Q,KAAM4T,EAAIlD,EAAEqpD,SAASz4D,GACjC,GAAIs4D,GAAG30C,KAAKvU,EAAEqpD,SAAUz4D,IAAMsS,EAC5B,OAAOA,EAAElD,EAAGE,EAAGiB,GACjB,GAAInB,EAAEoP,QAAQq6C,aAAezpD,EAAEoP,QAAQq6C,YAAYp5C,SAASzf,GAAI,CAC9D,GAAI,aAAcsP,EAAG,CACnB,MAAQ3M,SAAU6N,KAAM5Q,GAAM0P,EAAGgK,EAAIk+C,GAAG53D,GACxC,OAAO0Z,EAAE3W,SAAWyM,EAAE0J,IAAIxJ,GAAIgK,CACtC,CACM,OAAOk+C,GAAGloD,EAChB,CACI,OAAQF,EAAEoP,QAAQs6C,gBAAkBC,IAAI3pD,EAAGE,EAAGiB,EAClD,EAtBIiO,QAASjP,EACT+lD,MAAO0D,GACP3qB,KAAM4qB,IAER,OAAOZ,GAAGx4D,GAAG,SAASyP,GACpB,GAAe,eAAXA,EAAE5Q,MAAoC,uBAAX4Q,EAAE5Q,KAA+B,CAC9D,MAAM6R,EAAe,eAAXjB,EAAE5Q,KAAwB2Q,EAAIM,EAAG3P,EAAIu5B,OAAOjqB,EAAE0kD,YAAYr3C,cACpEpM,EAAEgN,IAAIvd,IAAMuQ,EAAEqW,IAAI5mB,EAAGsP,EAC3B,CACG,IAAGF,CAgCN,CACA,SAAS4pD,GAAGn5D,EAAGqP,GACbrP,EAAE+wB,WAAa1hB,EAAE0hB,SAv9HnB,SAAY/wB,GACV,MAAMqP,EAAIi0C,GAAGtjD,GAAI0P,EAAI2W,GAAGrmB,GACxB,GAAIqP,GAAKK,EACP,MAAO,CAAE+V,MAAOpW,EAAGwqC,IAAKnqC,EAC5B,CAm9H8B2pD,CAAGr5D,GACjC,CACA,SAAS84D,GAAG94D,EAAGqP,GACb,IAAIK,EAAIL,EACR,GAAIrP,GAAKA,EAAE6Y,KAAM,CACf,MAAMrJ,EAAIxP,EAAE6Y,KAAKygD,MAAOxpD,EAAI9P,EAAE6Y,KAAK0gD,UAAWj3D,EAAItC,EAAE6Y,KAAK2gD,YACzD,GAAgB,iBAALhqD,EACT,GAAe,YAAXE,EAAE7Q,KACJ6Q,EAAE0T,QAAU5T,MACT,CAEHE,EAAI,CAAE7Q,KAAM,UAAWukB,QAAS5T,EAAGiwB,WAAY,CAAA,EAAI38B,SADzC,aAAc4M,EAAIA,EAAE5M,SAAW,CAAC4M,GAElD,CACe,YAAXA,EAAE7Q,MAAsByD,GAAKod,OAAOiZ,OAAOjpB,EAAE+vB,WAAYk4B,GAAGr1D,IAAK,aAAcoN,GAAKA,EAAE5M,UAArB,MAAiCgN,IAA+BJ,EAAE5M,SAAWgN,EAClJ,CACE,OAAOJ,CACT,CACA,SAASwpD,GAAGl5D,EAAGqP,GACb,MAAMK,EAAIL,EAAEwJ,MAAQ,GAAIrJ,IAAI,UAAWH,IAAOopD,GAAG30C,KAAKpU,EAAG,gBAAkB+oD,GAAG30C,KAAKpU,EAAG,aAAmD,CACvI7Q,KAAM,UACNukB,QAAS,MACTqc,WAAY,CAAE,EACd38B,SAAU9C,EAAEiZ,IAAI5J,IAJoF,CAAExQ,KAAM,OAAQkM,MAAOsE,EAAEtE,OAM/H,OAAO/K,EAAEy1D,MAAMpmD,EAAGG,GAAIxP,EAAE01D,UAAUrmD,EAAGG,EACvC,CACA,SAAS4pD,GAAGp5D,EAAGqP,GACb,MAAMK,EAAI,GACV,IAAIF,GAAM,EACV,IAAKH,GAAKK,EAAEiZ,KAAK,CAAE9pB,KAAM,OAAQkM,MAAO,SAClCyE,EAAIxP,EAAE0Z,QACVlK,GAAKE,EAAEiZ,KAAK,CAAE9pB,KAAM,OAAQkM,MAAO,OACjC2E,EAAEiZ,KAAK3oB,EAAEwP,IACb,OAAOH,GAAKrP,EAAE0Z,OAAS,GAAKhK,EAAEiZ,KAAK,CAAE9pB,KAAM,OAAQkM,MAAO,OACtD2E,CACN,CACA,SAASwO,GAAGle,GACV,IAAIqP,EAAI,EAAGK,EAAI1P,EAAEilB,WAAW5V,GAC5B,KAAa,IAANK,GAAiB,KAANA,GAChBL,IAAKK,EAAI1P,EAAEilB,WAAW5V,GACxB,OAAOrP,EAAE0hB,MAAMrS,EACjB,CACA,SAASkP,GAAGve,EAAGqP,GACb,MAAMK,EAAIipD,GAAG34D,EAAGqP,GAAIG,EAAIE,EAAEmpD,IAAI74D,OAAG,GAAS8P,EAjT5C,SAAY9P,GACV,MAAMqP,EAAsC,iBAA3BrP,EAAE2e,QAAQk3C,cAA4B71D,EAAE2e,QAAQk3C,cAAgB,gBAAiBnmD,EAAI1P,EAAE2e,QAAQ86C,qBAAuB5kC,GAAIrlB,EAAIxP,EAAE2e,QAAQ+6C,mBAAqB9B,GAAI9nD,EAAI9P,EAAE2e,QAAQg7C,eAAiB,YAAar3D,EAAItC,EAAE2e,QAAQi7C,sBAAwB,KAAM/uD,EAAI7K,EAAE2e,QAAQk7C,yBAA2B,CACjTjqD,UAAW,CAAC,YACXL,EAAI,GACP,IAAID,GAAM,EACV,OAASA,EAAItP,EAAE81D,cAAcp8C,QAAU,CACrC,MAAM3J,EAAI/P,EAAE+4D,aAAa/xC,IACvBhnB,EAAE81D,cAAcxmD,IAElB,IAAKS,EACH,SACF,MAAMN,EAAIzP,EAAEiZ,IAAIlJ,GAAIW,EAAIgpB,OAAO3pB,EAAEokD,YAAYr3C,cAAe3c,EAAIW,GAAG4P,EAAE2S,eACrE,IAAI5Q,EAAI,EACR,MAAMJ,EAAI,GAAI1B,EAAI3Q,EAAE+1D,eAAe/uC,IAAItW,GACvC,UAAa,IAANC,KAAkB8B,GAAK9B,GAAK,CACjC0B,EAAEqH,OAAS,GAAKrH,EAAEsW,KAAK,CAAE9pB,KAAM,OAAQkM,MAAO,MAC9C,IAAI2H,EAAgB,iBAALhD,EAAgBA,EAAIA,EAAEJ,EAAGmD,GAC5B,iBAALC,IAAkBA,EAAI,CAAE7T,KAAM,OAAQkM,MAAO2H,IAAML,EAAEsW,KAAK,CAC/D9pB,KAAM,UACNukB,QAAS,IACTqc,WAAY,CACV9H,KAAM,IAAMtoB,EAAI,SAAWlP,GAAKsS,EAAI,EAAI,IAAMA,EAAI,IAClDqnD,oBAAqB,GACrBtwD,UAAuB,iBAALgG,EAAgBA,EAAIA,EAAEF,EAAGmD,GAC3C7C,UAAW,CAAC,0BAEd9M,SAAUgb,MAAMK,QAAQzL,GAAKA,EAAI,CAACA,IAE1C,CACI,MAAM3S,EAAI0P,EAAEA,EAAEiK,OAAS,GACvB,GAAI3Z,GAAgB,YAAXA,EAAElB,MAAoC,MAAdkB,EAAEqjB,QAAiB,CAClD,MAAM1Q,EAAI3S,EAAE+C,SAAS/C,EAAE+C,SAAS4W,OAAS,GACzChH,GAAgB,SAAXA,EAAE7T,KAAkB6T,EAAE3H,OAAS,IAAMhL,EAAE+C,SAAS6lB,KAAK,CAAE9pB,KAAM,OAAQkM,MAAO,MAAQhL,EAAE+C,SAAS6lB,QAAQtW,EAC7G,MACC5C,EAAEkZ,QAAQtW,GACZ,MAAMoH,EAAI,CACR5a,KAAM,UACNukB,QAAS,KACTqc,WAAY,CAAE7e,GAAIvR,EAAI,MAAQlP,GAC9B2C,SAAU9C,EAAEwuC,KAAK/+B,GAAG,IAEtBzP,EAAEy1D,MAAM1lD,EAAG0J,GAAIlK,EAAEoZ,KAAKlP,EAC1B,CACE,GAAiB,IAAblK,EAAEmK,OACJ,MAAO,CACL7a,KAAM,UACNukB,QAAS,UACTqc,WAAY,CAAEs6B,eAAe,EAAInqD,UAAW,CAAC,cAC7C9M,SAAU,CACR,CACEjE,KAAM,UACNukB,QAAS9gB,EACTm9B,WAAY,IACPk4B,GAAG9sD,GACN+V,GAAI,kBAEN9d,SAAU,CAAC,CAAEjE,KAAM,OAAQkM,MAAO+E,KAEpC,CAAEjR,KAAM,OAAQkM,MAAO,MAEvB,CACElM,KAAM,UACNukB,QAAS,KACTqc,WAAY,CAAE,EACd38B,SAAU9C,EAAEwuC,KAAKj/B,GAAG,IAEtB,CAAE1Q,KAAM,OAAQkM,MAAO,OAI/B,CA2OgDivD,CAAGtqD,GAAIpN,EAAIwb,MAAMK,QAAQ3O,GAAK,CAAE3Q,KAAM,OAAQiE,SAAU0M,GAAMA,GAAK,CAAE3Q,KAAM,OAAQiE,SAAU,IAC3I,OAAOgN,GAAKxN,EAAEQ,SAAS6lB,KAAK,CAAE9pB,KAAM,OAAQkM,MAAO,MAChD+E,GAAIxN,CACT,CACA,SAAS23D,GAAGj6D,EAAGqP,GACb,OAAOrP,GAAK,QAASA,EAAIyY,eAAe/I,EAAGF,GACzC,MAAMM,EAEJyO,GAAG7O,EAAG,CAAEub,KAAMzb,KAAMH,UAEhBrP,EAAEk6D,IAAIpqD,EAAGN,EACnB,EAAM,SAASE,EAAGF,GACd,OAEE+O,GAAG7O,EAAG,CAAEub,KAAMzb,KAAMxP,GAAKqP,GAE5B,CACH,CACA,SAAS2b,GAAGhrB,GACV,GAAIA,EACF,MAAMA,CACV,CACA,IAAIm6D,GAAI91C,GAwCR,IAAI+1C,GAvCJ,WACE,GAAI/1C,GAAI,OAAO81C,GACf91C,GAAK,EACL,IAAIrkB,EAAI0f,OAAOkE,UAAUC,eAAgBxU,EAAIqQ,OAAOkE,UAAUpD,SAAU9Q,EAAIgQ,OAAO4Z,eAAgB9pB,EAAIkQ,OAAO26C,yBAA0BvqD,EAAI,SAASC,GACnJ,MAA+B,mBAAjB+N,MAAMK,QAAwBL,MAAMK,QAAQpO,GAAmB,mBAAdV,EAAEyU,KAAK/T,EAC1E,EAAKzN,EAAI,SAASyN,GACd,IAAKA,GAAmB,oBAAdV,EAAEyU,KAAK/T,GACf,OAAO,EACT,IAGI5P,EAHAsP,EAAIzP,EAAE8jB,KAAK/T,EAAG,eAAgBW,EAAIX,EAAE+pB,aAAe/pB,EAAE+pB,YAAYlW,WAAa5jB,EAAE8jB,KAAK/T,EAAE+pB,YAAYlW,UAAW,iBAClH,GAAI7T,EAAE+pB,cAAgBrqB,IAAMiB,EAC1B,OAAO,EAET,IAAKvQ,KAAK4P,GAEV,cAAc5P,EAAI,KAAOH,EAAE8jB,KAAK/T,EAAG5P,EACvC,EAAK0K,EAAI,SAASkF,EAAGN,GACjBC,GAAgB,cAAXD,EAAE+T,KAAuB9T,EAAEK,EAAGN,EAAE+T,KAAM,CACzC+V,YAAY,EACZC,cAAc,EACdzuB,MAAO0E,EAAE6qD,SACT7gC,UAAU,IACP1pB,EAAEN,EAAE+T,MAAQ/T,EAAE6qD,QACvB,EAAK/qD,EAAI,SAASQ,EAAGN,GACjB,GAAU,cAANA,EACF,KAAIzP,EAAE8jB,KAAK/T,EAAGN,GAGP,OAFL,GAAID,EACF,OAAOA,EAAEO,EAAGN,GAAG1E,KACZ,CACT,OAAOgF,EAAEN,EACV,EACD,OAAO0qD,GAAK,SAAS7qD,IACnB,IAAIS,EAAGN,EAAGiB,EAAGvQ,EAAGsS,EAAGJ,EAAG1B,EAAIioB,UAAU,GAAI74B,EAAI,EAAG0Z,EAAImf,UAAUlf,OAAQhH,GAAI,EACzE,IAAiB,kBAAL/B,IAAmB+B,EAAI/B,EAAGA,EAAIioB,UAAU,IAAM,GAAI74B,EAAI,IAAU,MAAL4Q,GAAyB,iBAALA,GAA6B,mBAALA,KAAqBA,EAAI,CAAA,GAAK5Q,EAAI0Z,IAAK1Z,EACxJ,GAA2B,OAAvBgQ,EAAI6oB,UAAU74B,IAChB,IAAK0P,KAAKM,EACRW,EAAInB,EAAEoB,EAAGlB,GAAiBkB,KAAbxQ,EAAIoP,EAAEQ,EAAGN,MAAgBiD,GAAKvS,IAAMmC,EAAEnC,KAAOsS,EAAI3C,EAAE3P,MAAQsS,GAAKA,GAAI,EAAIJ,EAAI3B,GAAKZ,EAAEY,GAAKA,EAAI,IAAM2B,EAAI3B,GAAKpO,EAAEoO,GAAKA,EAAI,GAAI7F,EAAE8F,EAAG,CAAE6S,KAAM/T,EAAG6qD,SAAUhrD,EAAEoD,EAAGL,EAAGlS,aAAgBA,EAAI,KAAO0K,EAAE8F,EAAG,CAAE6S,KAAM/T,EAAG6qD,SAAUn6D,KACpO,OAAOwQ,CACX,EAAKwpD,EACL,CACSI,GACT,MAAMC,GAAqBz7C,GAAGq7C,IAC9B,SAASK,GAAGz6D,GACV,GAAgB,iBAALA,GAAuB,OAANA,EAC1B,OAAO,EACT,MAAMqP,EAAIqQ,OAAOg7C,eAAe16D,GAChC,QAAc,OAANqP,GAAcA,IAAMqQ,OAAOkE,WAA0C,OAA7BlE,OAAOg7C,eAAerrD,IAAkB8vB,OAAOC,eAAep/B,GAAQm/B,OAAOw7B,YAAY36D,EAC3I,CACA,SAAS46D,KACP,MAAM56D,EAAI,GAAIqP,EAAI,CAAE6qD,IAEpB,YAAcpqD,GACZ,IAAIxN,GAAM,EACV,MAAMuI,EAAIiF,EAAEyiB,MACZ,GAAgB,mBAAL1nB,EACT,MAAM,IAAIqvB,UAAU,2CAA6CrvB,IAEnE,SAAS0E,EAAED,KAAMS,GACf,MAAMN,EAAIzP,IAAIsC,GACd,IAAIoO,GAAM,EACV,GAAIpB,EACFzE,EAAEyE,OADJ,CAIA,OAASoB,EAAIZ,EAAE4J,SACH,OAAT3J,EAAEW,SAAwB,IAATX,EAAEW,MAAmBX,EAAEW,GAAKZ,EAAEY,IAClDZ,EAAIC,EAAGN,EAWb,SAAYzP,EAAGqP,GACb,IAAIK,EACJ,OAAOF,EACP,SAASA,KAAK3E,GACZ,MAAM0E,EAAIvP,EAAE0Z,OAAS7O,EAAE6O,OACvB,IAAIpK,EACJC,GAAK1E,EAAE8d,KAAK7Y,GACZ,IACER,EAAItP,EAAE64B,MAAMC,KAAMjuB,EACnB,CAAC,MAAOkF,GAKP,GAAIR,GAAKG,EACP,MALK,EAMP,OAAOI,EANA,EAOb,CACIP,IAAMD,GAAKA,EAAEkZ,MAAyB,mBAAVlZ,EAAEkZ,KAAqBlZ,EAAEkZ,KAAKlmB,EAAGwN,GAAKR,aAAamQ,MAAQ3P,EAAER,GAAKhN,EAAEgN,GACpG,CACE,SAASQ,EAAEjF,KAAM0E,GACfG,IAAMA,GAAI,EAAIL,EAAExE,KAAM0E,GAC1B,CACE,SAASjN,EAAEuI,GACTiF,EAAE,KAAMjF,EACZ,CACA,CArCiBgwD,CAAGprD,EAAGF,EAANsrD,IAAY9qD,GAAKlF,EAAE,QAASkF,EAH7C,CAIA,CAXIR,CAAE,QAASO,EAYf,EAnB8BgrD,IAoB5B,SAAWhrD,GACT,GAAgB,mBAALA,EACT,MAAM,IAAIoqB,UACR,+CAAiDpqB,GAErD,OAAO9P,EAAE2oB,KAAK7Y,GAAIT,CACtB,GAzBE,OAAOA,CA0BT,CA4BA,MAAMoC,GAAK,CAAEspD,SACb,SAAY/6D,EAAGqP,GACb,QAAU,IAANA,GAA4B,iBAALA,EACzB,MAAM,IAAI6qB,UAAU,mCACtB8gC,GAAGh7D,GACH,IAAiCsC,EAA7BoN,EAAI,EAAGF,GAAM,EAAEM,EAAI9P,EAAE0Z,OACzB,QAAU,IAANrK,GAA6B,IAAbA,EAAEqK,QAAgBrK,EAAEqK,OAAS1Z,EAAE0Z,OAAQ,CACzD,KAAO5J,KACL,GAAyB,KAArB9P,EAAEs0D,YAAYxkD,IAChB,GAAIxN,EAAG,CACLoN,EAAII,EAAI,EACR,KACV,OACaN,EAAI,IAAMlN,GAAI,EAAIkN,EAAIM,EAAI,GACnC,OAAON,EAAI,EAAI,GAAKxP,EAAE0hB,MAAMhS,EAAGF,EACnC,CACE,GAAIH,IAAMrP,EACR,MAAO,GACT,IAAI6K,GAAM,EAAE0E,EAAIF,EAAEqK,OAAS,EAC3B,KAAO5J,KACL,GAAyB,KAArB9P,EAAEs0D,YAAYxkD,IAChB,GAAIxN,EAAG,CACLoN,EAAII,EAAI,EACR,KACR,OAEMjF,EAAI,IAAMvI,GAAI,EAAIuI,EAAIiF,EAAI,GAAIP,GAAI,IAAOvP,EAAEs0D,YAAYxkD,KAAOT,EAAEilD,YAAY/kD,KAAOA,EAAI,IAAMC,EAAIM,IAAMP,GAAI,EAAIC,EAAI3E,IACvH,OAAO6E,IAAMF,EAAIA,EAAI3E,EAAI2E,EAAI,IAAMA,EAAIxP,EAAE0Z,QAAS1Z,EAAE0hB,MAAMhS,EAAGF,EAC/D,EA5B2ByrD,QA6B3B,SAAYj7D,GACV,GAAIg7D,GAAGh7D,GAAiB,IAAbA,EAAE0Z,OACX,MAAO,IACT,IAA0BlK,EAAtBH,GAAM,EAAEK,EAAI1P,EAAE0Z,OAClB,OAAShK,GACP,GAAyB,KAArB1P,EAAEs0D,YAAY5kD,IAChB,GAAIF,EAAG,CACLH,EAAIK,EACJ,KACR,OACWF,IAAMA,GAAI,GACnB,OAAOH,EAAI,EAAyB,KAArBrP,EAAEs0D,YAAY,GAAY,IAAM,IAAY,IAANjlD,GAAgC,KAArBrP,EAAEs0D,YAAY,GAAY,KAAOt0D,EAAE0hB,MAAM,EAAGrS,EAC9G,EAzCwC6rD,QA0CxC,SAAYl7D,GACVg7D,GAAGh7D,GACH,IAAgD6K,EAA5CwE,EAAIrP,EAAE0Z,OAAQhK,GAAM,EAAEF,EAAI,EAAGM,GAAI,EAAIxN,EAAI,EAC7C,KAAO+M,KAAO,CACZ,MAAME,EAAIvP,EAAEs0D,YAAYjlD,GACxB,GAAU,KAANE,EAOJG,EAAI,IAAM7E,GAAI,EAAI6E,EAAIL,EAAI,GAAU,KAANE,EAAWO,EAAI,EAAIA,EAAIT,EAAU,IAAN/M,IAAYA,EAAI,GAAKwN,GAAI,IAAOxN,WANvF,GAAIuI,EAAG,CACL2E,EAAIH,EAAI,EACR,KACR,CAIA,CACE,OAAOS,EAAI,GAAKJ,EAAI,GACd,IAANpN,GACM,IAANA,GAAWwN,IAAMJ,EAAI,GAAKI,IAAMN,EAAI,EAAI,GAAKxP,EAAE0hB,MAAM5R,EAAGJ,EAC1D,EA3DqDsO,KA4DrD,YAAehe,GACb,IAAY0P,EAARL,GAAI,EACR,OAASA,EAAIrP,EAAE0Z,QACbshD,GAAGh7D,EAAEqP,IAAKrP,EAAEqP,KAAOK,OAAU,IAANA,EAAe1P,EAAEqP,GAAKK,EAAI,IAAM1P,EAAEqP,IAC3D,YAAa,IAANK,EAAe,IAExB,SAAY1P,GACVg7D,GAAGh7D,GACH,MAAMqP,EAAyB,KAArBrP,EAAEs0D,YAAY,GACxB,IAAI5kD,EAGN,SAAY1P,EAAGqP,GACb,IAA0CE,EAAGD,EAAzCI,EAAI,GAAIF,EAAI,EAAGM,KAAQxN,EAAI,EAAGuI,GAAM,EACxC,OAASA,GAAK7K,EAAE0Z,QAAU,CACxB,GAAI7O,EAAI7K,EAAE0Z,OACRnK,EAAIvP,EAAEs0D,YAAYzpD,OACf,CACH,GAAU,KAAN0E,EACF,MACFA,EAAI,EACV,CACI,GAAU,KAANA,EAAU,CACZ,GAAMO,IAAMjF,EAAI,GAAW,IAANvI,EAAU,GAAIwN,IAAMjF,EAAI,GAAW,IAANvI,EAAS,CACzD,GAAIoN,EAAEgK,OAAS,GAAW,IAANlK,GAA2C,KAAhCE,EAAE4kD,YAAY5kD,EAAEgK,OAAS,IAA6C,KAAhChK,EAAE4kD,YAAY5kD,EAAEgK,OAAS,GAC5F,GAAIhK,EAAEgK,OAAS,GACb,GAAIpK,EAAII,EAAEizC,YAAY,KAAMrzC,IAAMI,EAAEgK,OAAS,EAAG,CAC9CpK,EAAI,GAAKI,EAAI,GAAIF,EAAI,IAAME,EAAIA,EAAEgS,MAAM,EAAGpS,GAAIE,EAAIE,EAAEgK,OAAS,EAAIhK,EAAEizC,YAAY,MAAO7yC,EAAIjF,EAAGvI,EAAI,EACjG,QACd,OACiB,GAAIoN,EAAEgK,OAAS,EAAG,CACvBhK,EAAI,GAAIF,EAAI,EAAGM,EAAIjF,EAAGvI,EAAI,EAC1B,QACZ,CAEQ+M,IAAMK,EAAIA,EAAEgK,OAAS,EAAIhK,EAAI,MAAQ,KAAMF,EAAI,EAChD,MACCE,EAAEgK,OAAS,EAAIhK,GAAK,IAAM1P,EAAE0hB,MAAM5R,EAAI,EAAGjF,GAAK6E,EAAI1P,EAAE0hB,MAAM5R,EAAI,EAAGjF,GAAI2E,EAAI3E,EAAIiF,EAAI,EACnFA,EAAIjF,EAAGvI,EAAI,CACjB,MAAiB,KAANiN,GAAYjN,GAAM,EAAGA,IAAMA,GAAM,CAC5C,CACE,OAAOoN,CACT,CAjCUyrD,CAAGn7D,GAAIqP,GACf,OAAoB,IAAbK,EAAEgK,SAAiBrK,IAAMK,EAAI,KAAMA,EAAEgK,OAAS,GAAqC,KAAhC1Z,EAAEs0D,YAAYt0D,EAAE0Z,OAAS,KAAchK,GAAK,KAAML,EAAI,IAAMK,EAAIA,CAC5H,CAP8B0rD,CAAG1rD,EACjC,EAjE+D2rD,IAAK,KAuGpE,SAASL,GAAGh7D,GACV,GAAgB,iBAALA,EACT,MAAM,IAAIk6B,UACR,mCAAqCnY,KAAKC,UAAUhiB,GAE1D,CACA,MAAMs7D,GAAK,CAAEC,IACb,WACE,MAAO,GACT,GACA,SAASC,GAAGx7D,GACV,SAAgB,OAANA,GAA0B,iBAALA,GAAiB,SAAUA,GAAKA,EAAE23B,MAAQ,aAAc33B,GAAKA,EAAE08B,eACnF,IAAX18B,EAAEy7D,KACJ,CACA,SAASC,GAAG17D,GACV,GAAgB,iBAALA,EACTA,EAAI,IAAI27D,IAAI37D,QACT,IAAKw7D,GAAGx7D,GAAI,CACf,MAAMqP,EAAI,IAAI6qB,UACZ,+EAAiFl6B,EAAI,KAEvF,MAAMqP,EAAEigC,KAAO,uBAAwBjgC,CAC3C,CACE,GAAmB,UAAfrP,EAAE08B,SAAsB,CAC1B,MAAMrtB,EAAI,IAAI6qB,UAAU,kCACxB,MAAM7qB,EAAEigC,KAAO,yBAA0BjgC,CAC7C,CACE,OAEF,SAAYrP,GACV,GAAmB,KAAfA,EAAE47D,SAAiB,CACrB,MAAMpsD,EAAI,IAAI0qB,UACZ,wDAEF,MAAM1qB,EAAE8/B,KAAO,4BAA6B9/B,CAChD,CACE,MAAMH,EAAIrP,EAAE67D,SACZ,IAAInsD,GAAM,EACV,OAASA,EAAIL,EAAEqK,QACb,GAAyB,KAArBrK,EAAEilD,YAAY5kD,IAAsC,KAAzBL,EAAEilD,YAAY5kD,EAAI,GAAW,CAC1D,MAAMF,EAAIH,EAAEilD,YAAY5kD,EAAI,GAC5B,GAAU,KAANF,GAAkB,MAANA,EAAW,CACzB,MAAMM,EAAI,IAAIoqB,UACZ,uDAEF,MAAMpqB,EAAEw/B,KAAO,4BAA6Bx/B,CACpD,CACA,CACE,OAAOgsD,mBAAmBzsD,EAC5B,CAtBS0sD,CAAG/7D,EACZ,CAsBA,MAAMg8D,GAAE,CAGJ,UACA,OACA,WACA,OACA,UACA,WAGJ,MAAMC,GAuBJ,WAAAniC,CAAYzqB,GACV,IAAIK,EAwWR,IAAY1P,EAvWI0P,EAAZL,EAAImsD,GAAGnsD,GAAS,CAAE6N,KAAM7N,GAAkB,iBAALA,IAuW7BrP,EAvWiDqP,IAwWhC,iBAALrP,GAAiB,eAAgBA,GAAK,eAAgBA,EAxWR,CAAE+K,MAAOsE,GAAUA,EAAQ,CAAE,EAAEypB,KAAKyiC,IAAM,QAAS7rD,EAAI,GAAK4rD,GAAGC,MAAOziC,KAAKjgB,KAAO,CAAA,EAAIigB,KAAKojC,QAAU,GAAIpjC,KAAKld,SAAW,GAAIkd,KAAK/tB,MAAO+tB,KAAKjpB,IAAKipB,KAAK3K,OAAQ2K,KAAKqjC,OACvO,IAKIrsD,EALAN,GAAM,EACV,OAASA,EAAIwsD,GAAGtiD,QAAU,CACxB,MAAMpX,EAAI05D,GAAGxsD,GACblN,KAAKoN,QAAc,IAATA,EAAEpN,IAA0B,OAAToN,EAAEpN,KAAgBw2B,KAAKx2B,GAAW,YAANA,EAAkB,IAAIoN,EAAEpN,IAAMoN,EAAEpN,GAC/F,CAEI,IAAKwN,KAAKJ,EACRssD,GAAGp8C,SAAS9P,KAAOgpB,KAAKhpB,GAAKJ,EAAEI,GACrC,CAOE,YAAIirD,GACF,MAA2B,iBAAbjiC,KAAK5b,KAAmBzL,GAAGspD,SAASjiC,KAAK5b,WAAQ,CACnE,CAaE,YAAI69C,CAAS1rD,GACX+sD,GAAG/sD,EAAG,YAAagtD,GAAGhtD,EAAG,YAAaypB,KAAK5b,KAAOzL,GAAGuM,KAAK8a,KAAKmiC,SAAW,GAAI5rD,EAClF,CAOE,WAAI4rD,GACF,MAA2B,iBAAbniC,KAAK5b,KAAmBzL,GAAGwpD,QAAQniC,KAAK5b,WAAQ,CAClE,CAWE,WAAI+9C,CAAQ5rD,GACV8U,GAAG2U,KAAKiiC,SAAU,WAAYjiC,KAAK5b,KAAOzL,GAAGuM,KAAK3O,GAAK,GAAIypB,KAAKiiC,SACpE,CAOE,WAAIG,GACF,MAA2B,iBAAbpiC,KAAK5b,KAAmBzL,GAAGypD,QAAQpiC,KAAK5b,WAAQ,CAClE,CAaE,WAAIg+C,CAAQ7rD,GACV,GAAIgtD,GAAGhtD,EAAG,WAAY8U,GAAG2U,KAAKmiC,QAAS,WAAY5rD,EAAG,CACpD,GAAyB,KAArBA,EAAEilD,YAAY,GAChB,MAAM,IAAI70C,MAAM,iCAClB,GAAIpQ,EAAEuQ,SAAS,IAAK,GAClB,MAAM,IAAIH,MAAM,yCACxB,CACIqZ,KAAK5b,KAAOzL,GAAGuM,KAAK8a,KAAKmiC,QAASniC,KAAKwjC,MAAQjtD,GAAK,IACxD,CAOE,QAAI6N,GACF,OAAO4b,KAAKojC,QAAQpjC,KAAKojC,QAAQxiD,OAAS,EAC9C,CAaE,QAAIwD,CAAK7N,GACPmsD,GAAGnsD,KAAOA,EAAIqsD,GAAGrsD,IAAK+sD,GAAG/sD,EAAG,QAASypB,KAAK5b,OAAS7N,GAAKypB,KAAKojC,QAAQvzC,KAAKtZ,EAC9E,CAOE,QAAIitD,GACF,MAA2B,iBAAbxjC,KAAK5b,KAAmBzL,GAAGspD,SAASjiC,KAAK5b,KAAM4b,KAAKoiC,cAAW,CACjF,CAaE,QAAIoB,CAAKjtD,GACP+sD,GAAG/sD,EAAG,QAASgtD,GAAGhtD,EAAG,QAASypB,KAAK5b,KAAOzL,GAAGuM,KAAK8a,KAAKmiC,SAAW,GAAI5rD,GAAKypB,KAAKoiC,SAAW,IAC/F,CA8DE,IAAAqB,CAAKltD,EAAGK,EAAGF,GACT,MAAMM,EAAIgpB,KAAK7c,QAAQ5M,EAAGK,EAAGF,GAC7B,MAAMM,EAAEi0C,OAAQ,EAAIj0C,CACxB,CA2DE,IAAAiW,CAAK1W,EAAGK,EAAGF,GACT,MAAMM,EAAIgpB,KAAK7c,QAAQ5M,EAAGK,EAAGF,GAC7B,OAAOM,EAAEi0C,WAAQ,EAAQj0C,CAC7B,CA2DE,OAAAmM,CAAQ5M,EAAGK,EAAGF,GACZ,MAAMM,EAAI,IAAItJ,GAEZ6I,EACAK,EACAF,GAEF,OAAOspB,KAAK5b,OAASpN,EAAE0T,KAAOsV,KAAK5b,KAAO,IAAMpN,EAAE0T,KAAM1T,EAAEmb,KAAO6N,KAAK5b,MAAOpN,EAAEi0C,OAAQ,EAAIjrB,KAAKld,SAAS+M,KAAK7Y,GAAIA,CACtH,CAcE,QAAA0Q,CAASnR,GACP,YAAsB,IAAfypB,KAAK/tB,MAAmB,GAA0B,iBAAd+tB,KAAK/tB,MAAoB+tB,KAAK/tB,MAAQ,IAAIkqD,YAAY5lD,QAAK,GAAQ6lD,OAAOp8B,KAAK/tB,MAC9H,EAEA,SAASsxD,GAAGr8D,EAAGqP,GACb,GAAIrP,GAAKA,EAAE4f,SAASnO,GAAG4pD,KACrB,MAAM,IAAI57C,MACR,IAAMpQ,EAAI,uCAAyCoC,GAAG4pD,IAAM,IAElE,CACA,SAASe,GAAGp8D,EAAGqP,GACb,IAAKrP,EACH,MAAM,IAAIyf,MAAM,IAAMpQ,EAAI,oBAC9B,CACA,SAAS8U,GAAGnkB,EAAGqP,GACb,IAAKrP,EACH,MAAM,IAAIyf,MAAM,YAAcpQ,EAAI,kCACtC,CAIA,MAAMmtD,GAAE,SAUGx8D,GACP,MAAMwP,EAIJspB,KAAKgB,YACN,UAAEhqB,EAAIN,EAAExP,GAAIsC,EAAI,WACf,OAAOwN,EAAE+oB,MAAMv2B,EAAGs2B,UACnB,EACD,OAAOlZ,OAAO+8C,eAAen6D,EAAGkN,GAAIlN,CAExC,EAAGo6D,GAAK,CAAA,EAAG74C,eACX,MAAM84C,WAAWH,GAIf,WAAA1iC,GACEwF,MAAM,QAASxG,KAAK8jC,cAAW,EAAQ9jC,KAAK+jC,YAAS,EAAQ/jC,KAAKgkC,UAAY,GAAIhkC,KAAKikC,cAAW,EAAQjkC,KAAKkkC,aAAc,EAAIlkC,KAAKmkC,YAAS,EAAQnkC,KAAKokC,UAAY,CAAA,EAAIpkC,KAAK4wB,YAAS,EAAQ5wB,KAAKqkC,aAAevC,IAC1N,CAYE,IAAAwC,GACE,MAAM/tD,EAAC,IAEDstD,GAEN,IAAIjtD,GAAM,EACV,OAASA,EAAIopB,KAAKgkC,UAAUpjD,QAAU,CACpC,MAAMlK,EAAIspB,KAAKgkC,UAAUptD,GACzBL,EAAEyrD,OAAOtrD,EACf,CACI,OAAOH,EAAEwJ,KAAK2hD,IAAG,EAAI,CAAA,EAAI1hC,KAAKokC,YAAa7tD,CAC/C,CA4DE,IAAAwJ,CAAKxJ,EAAGK,GACN,MAAmB,iBAALL,EAAqC,IAArBupB,UAAUlf,QAAgB2jD,GAAG,OAAQvkC,KAAKmkC,QAASnkC,KAAKokC,UAAU7tD,GAAKK,EAAGopB,MAAQ4jC,GAAG54C,KAAKgV,KAAKokC,UAAW7tD,IAAMypB,KAAKokC,UAAU7tD,SAAM,EAASA,GAAKguD,GAAG,OAAQvkC,KAAKmkC,QAASnkC,KAAKokC,UAAY7tD,EAAGypB,MAAQA,KAAKokC,SAC/O,CAkBE,MAAA7lC,GACE,GAAIyB,KAAKmkC,OACP,OAAOnkC,KACT,MAAMzpB,EAAC,KAKP,OAASypB,KAAKkkC,YAAclkC,KAAKgkC,UAAUpjD,QAAU,CACnD,MAAOhK,KAAMF,GAAKspB,KAAKgkC,UAAUhkC,KAAKkkC,aACtC,IAAa,IAATxtD,EAAE,GACJ,UACO,IAATA,EAAE,KAAcA,EAAE,QAAK,GACvB,MAAMM,EAAIJ,EAAEoU,KAAKzU,KAAMG,GACX,mBAALM,GAAmBgpB,KAAKqkC,aAAarC,IAAIhrD,EACtD,CACI,OAAOgpB,KAAKmkC,QAAS,EAAInkC,KAAKkkC,YAAc1gC,OAAO6sB,kBAAmBrwB,IAC1E,CAeE,KAAA1W,CAAM/S,GACJypB,KAAKzB,SACL,MAAM3nB,EAAI1O,GAAGqO,GAAIG,EAAIspB,KAAK4wB,QAAU5wB,KAAK+jC,OACzC,OAAOS,GAAG,QAAS9tD,GAAIA,EAAEkqB,OAAOhqB,GAAIA,EACxC,CA2CE,OAAAqqB,CAAQ1qB,EAAGK,GACT,MAAMF,EAAIspB,KACV,OAAOA,KAAKzB,SAAUimC,GAAG,UAAWxkC,KAAK4wB,QAAU5wB,KAAK+jC,QAASU,GAAG,UAAWzkC,KAAKikC,UAAYjkC,KAAK8jC,UAAWltD,EAAII,OAAE,EAAQJ,GAAK,IAAIsJ,QAAQlJ,GAC/I,SAASA,EAAExN,EAAGuI,GACZ,MAAM0E,EAAIvO,GAAGqO,GAAIC,EAGfE,EAAE4S,MAAM7S,GAgBV,SAASQ,EAAEN,EAAGiB,GACZjB,IAAMiB,EAAI7F,EAAE4E,GAAKnN,EAAIA,EAAEoO,GAAKhB,OAAE,EAAQgB,EAC9C,CAhBMlB,EAAE0qD,IAAI5qD,EAAGC,GAAG,SAASE,EAAGiB,EAAGvQ,GACzB,GAAIsP,IAAMiB,IAAMvQ,EACd,OAAO4P,EAAEN,GACX,MAAMgD,EAAC,EAIJJ,EAAI7C,EAAEwS,UAAUvP,EAAGtS,GAoT9B,IAAYH,EACS,iBADTA,EAnTDqS,IAsTX,SAAYrS,GACV,SAAUA,GAAiB,iBAALA,GAAiB,eAAgBA,GAAK,eAAgBA,EAC9E,CAJiCw9D,CAAGx9D,GApTpBG,EAAE4K,MAAQsH,EAAIlS,EAAEguB,OAAS9b,EAAGtC,EAClCN,EAEAtP,EAEV,GAIA,CACA,CAgCE,WAAAs9D,CAAYpuD,GACV,IAAYG,EAARE,GAAI,EACR,OAAOopB,KAAKzB,SAAUimC,GAAG,cAAexkC,KAAK4wB,QAAU5wB,KAAK+jC,QAASU,GAAG,cAAezkC,KAAKikC,UAAYjkC,KAAK8jC,UAAW9jC,KAAKiB,QAAQ1qB,GACrI,SAAW/M,EAAGuI,GACZ6E,GAAI,EAAIsb,GAAG1oB,GAAIkN,EAAI3E,CACzB,IAHgJwT,GAAG,cAAe,UAAW3O,GAAIF,CAIjL,CAuCE,GAAA0qD,CAAI7qD,EAAGK,EAAGF,GACRqS,GAAGxS,GAAIypB,KAAKzB,SACZ,MAAMvnB,EAAIgpB,KAAKqkC,aACf,OAAQ3tD,GAAiB,mBAALE,IAAoBF,EAAIE,EAAGA,OAAI,GAASF,EAAIlN,OAAE,EAAQkN,GAAK,IAAIwJ,QAAQ1W,GAC3F,SAASA,EAAEuI,EAAG0E,GACZ,MAAMD,EAAItO,GAAG0O,GACbI,EAAEoqD,IAAI7qD,EAAGC,GACT,SAAWG,EAAGiB,EAAGvQ,GACf,MAAMsS,EAEJ/B,GAAKrB,EAEPI,EAAIF,EAAEE,GAAK5E,EAAIA,EAAE4H,GAAKjD,OAAE,EAAQiD,EAAGtS,EAC3C,GACA,CACA,CAkBE,OAAAu9D,CAAQruD,EAAGK,GACT,IAAYI,EAARN,GAAI,EACR,OAAOspB,KAAKohC,IAAI7qD,EAAGK,GACnB,SAAW7E,EAAG0E,GACZyb,GAAGngB,GAAIiF,EAAIP,EAAGC,GAAI,CACxB,IAH8B6O,GAAG,UAAW,MAAO7O,GAAIM,CAIvD,CA8BE,SAAAkS,CAAU3S,EAAGK,GACXopB,KAAKzB,SACL,MAAM7nB,EAAIxO,GAAG0O,GAAII,EAAIgpB,KAAKikC,UAAYjkC,KAAK8jC,SAC3C,OAAOW,GAAG,YAAaztD,GAAI+R,GAAGxS,GAAIS,EAAET,EAAGG,EAC3C,CA0DE,GAAAsrD,CAAIzrD,KAAMK,GACR,MAAMF,EAAIspB,KAAKgkC,UAAWhtD,EAAIgpB,KAAKokC,UACnC,GAAIG,GAAG,MAAOvkC,KAAKmkC,QAAc,MAAL5tD,EAAW,GAAgB,mBAALA,EAChDC,EAAED,EAAGK,OACF,IAAgB,iBAALL,EAGd,MAAM,IAAI6qB,UAAU,+BAAiC7qB,EAAI,KAFzDyO,MAAMK,QAAQ9O,GAAKE,EAAEF,GAAKxE,EAAEwE,EAEiC,CAC/D,OAAOypB,KACP,SAASx2B,EAAEyN,GACT,GAAgB,mBAALA,EACTT,EAAES,EAAG,QACF,IAAgB,iBAALA,EAUd,MAAM,IAAImqB,UAAU,+BAAiCnqB,EAAI,KATzD,GAAI+N,MAAMK,QAAQpO,GAAI,CACpB,MAAON,KAAMiB,GAAE,EAIfpB,EAAEG,EAAGiB,EACN,MACC7F,EAAEkF,EAEyD,CACrE,CACI,SAASlF,EAAEkF,GACT,KAAM,YAAaA,MAAQ,aAAcA,GACvC,MAAM,IAAI0P,MACR,8KAEJlQ,EAAEQ,EAAEkjB,SAAUljB,EAAEvF,WAAasF,EAAEtF,SAAWgwD,IAAG,EAAI1qD,EAAEtF,SAAUuF,EAAEvF,UACrE,CACI,SAAS+E,EAAEQ,GACT,IAAIN,GAAM,EACV,GAAS,MAALM,EAAW,KAAI+N,MAAMK,QAAQpO,GAM/B,MAAM,IAAImqB,UAAU,oCAAsCnqB,EAAI,KAL9D,OAASN,EAAIM,EAAE2J,QAAU,CAEvBpX,EADUyN,EAAEN,GAEtB,CAE0E,CAC1E,CACI,SAASH,EAAES,EAAGN,GACZ,IAAIiB,KAAQvQ,GAAM,EAClB,OAASuQ,EAAIlB,EAAEkK,QACb,GAAIlK,EAAEkB,GAAG,KAAOX,EAAG,CACjB5P,EAAIuQ,EACJ,KACV,CACM,IAAY,IAARvQ,EACFqP,EAAEmZ,KAAK,CAAC5Y,KAAMN,SACX,GAAIA,EAAEiK,OAAS,EAAG,CACrB,IAAKjH,KAAMJ,GAAK5C,EAChB,MAAMkB,EAAInB,EAAErP,GAAG,GACfs6D,GAAG9pD,IAAM8pD,GAAGhoD,KAAOA,EAAI+nD,IAAG,EAAI7pD,EAAG8B,IAAKjD,EAAErP,GAAK,CAAC4P,EAAG0C,KAAMJ,EAC/D,CACA,CACA,EAEA,MAAMsrD,IAAK,IAAIhB,IAAKtlC,SACpB,SAASimC,GAAGt9D,EAAGqP,GACb,GAAgB,mBAALA,EACT,MAAM,IAAI6qB,UAAU,WAAal6B,EAAI,qBACzC,CACA,SAASu9D,GAAGv9D,EAAGqP,GACb,GAAgB,mBAALA,EACT,MAAM,IAAI6qB,UAAU,WAAal6B,EAAI,uBACzC,CACA,SAASq9D,GAAGr9D,EAAGqP,GACb,GAAIA,EACF,MAAM,IAAIoQ,MACR,gBAAkBzf,EAAI,mHAE5B,CACA,SAAS6hB,GAAG7hB,GACV,IAAKy6D,GAAGz6D,IAAuB,iBAAVA,EAAEnB,KACrB,MAAM,IAAIq7B,UAAU,uBAAyBl6B,EAAI,IACrD,CACA,SAASqe,GAAGre,EAAGqP,EAAGK,GAChB,IAAKA,EACH,MAAM,IAAI+P,MACR,IAAMzf,EAAI,0BAA4BqP,EAAI,YAEhD,CACA,SAASrO,GAAGhB,GACV,OAEF,SAAYA,GACV,SAAUA,GAAiB,iBAALA,GAAiB,YAAaA,GAAK,aAAcA,EACzE,CAJS49D,CAAG59D,GAAKA,EAAI,IAAIi8D,GAAGj8D,EAC5B,CAUA,MAAgFyhB,GAAK,GAAI1B,GAAK,CAAEo2C,oBAAoB,GAAM0H,GAAK,gCAAiCC,GAAK,CACnK,CAAE//C,KAAM,aAAc6C,GAAI,wCAC1B,CAAE7C,KAAM,qBAAsB6C,GAAI,wCAClC,CACE7C,KAAM,YACN6C,GAAI,qDACJ8O,GAAI,gBAEN,CACE3R,KAAM,eACN6C,GAAI,qDACJ8O,GAAI,mBAEN,CACE3R,KAAM,kBACN6C,GAAI,qDACJ8O,GAAI,sBAEN,CAAE3R,KAAM,aAAc6C,GAAI,wCAC1B,CAAE7C,KAAM,sBAAuB6C,GAAI,+BACnC,CACE7C,KAAM,mBACN6C,GAAI,kDAEN,CAAE7C,KAAM,aAAc6C,GAAI,qBAC1B,CAAE7C,KAAM,UAAW6C,GAAI,kCAAmC8O,GAAI,iBAC9D,CAAE3R,KAAM,eAAgB6C,GAAI,wBAC5B,CAAE7C,KAAM,YAAa6C,GAAI,iCAAkC8O,GAAI,cAC/D,CAAE3R,KAAM,SAAU6C,GAAI,4BAA6B8O,GAAI,YACvD,CAAE3R,KAAM,YAAa6C,GAAI,qBACzB,CAAE7C,KAAM,oBAAqB6C,GAAI,oBAAqB8O,GAAI,gBAC1D,CAAE3R,KAAM,mBAAoB6C,GAAI,oBAAqB8O,GAAI,iBAE3D,SAASquC,GAAG/9D,GACV,MAAMqP,EAAIrP,EAAEg+D,gBAAiBtuD,EAAI1P,EAAEi+D,aAAczuD,EAAIxP,EAAE8C,UAAY,GAAIgN,EAAI9P,EAAE4P,UAAWtN,EAAItC,EAAEmlD,WAAYt6C,EAAI7K,EAAEk+D,mBAAoB3uD,EAAIvP,EAAEm+D,eAAiB18C,GAAInS,EAAItP,EAAEo+D,eAAiB38C,GAAI1R,EAAI/P,EAAEq+D,oBAAsB,IAAKr+D,EAAEq+D,uBAAwBt+C,IAAOA,GAAItQ,EAAIzP,EAAEs+D,SAAU5tD,EAAI1Q,EAAEu+D,iBAAkBp+D,EAAIH,EAAEw+D,cAAgBC,GAAIhsD,EAAIkrD,KAAK7C,IAAItnC,IAAIsnC,IAAIxrD,GAAGwrD,IAAIb,GAAIlqD,GAAG+qD,IAAIvrD,GAAI8C,EAAI,IAAI4pD,GACzW,iBAALzsD,IAAkB6C,EAAEtH,MAAQyE,GACnC,IAAK,MAAMkD,KAAKorD,GACdp+C,OAAOg/C,OAAO1+D,EAAG0S,EAAEqL,QAAerL,EAAEqL,KAAQrL,EAAEgd,IAAehd,EAAEgd,GAAuChd,EAAEkO,IAC1G,MAAMjQ,EAAI8B,EAAE2P,MAAM/P,GAClB,IAAItS,EAAI0S,EAAEirD,QAAQ/sD,EAAG0B,GACrB,OAAOvC,IAAM/P,EAAI,CACflB,KAAM,UACNukB,QAAS,MACTqc,WAAY,CAAE7vB,UAAWE,GAEzBhN,SAEa,SAAX/C,EAAElB,KAAkBkB,EAAE+C,SAAW,CAAC/C,KAElCy4D,GAAGz4D,GAYP,SAAW2S,EAAGE,EAAGU,GACf,GAAe,QAAXZ,EAAE7T,MAAkByU,GAAiB,iBAALV,EAClC,OAAOnD,EAAI6D,EAAExQ,SAASqlD,OAAOv1C,EAAG,GAAKU,EAAExQ,SAAS8P,GAAK,CAAE/T,KAAM,OAAQkM,MAAO2H,EAAE3H,OAAS6H,EACzF,GAAe,YAAXF,EAAE7T,KAAoB,CACxB,IAAI+U,EACJ,IAAKA,KAAKi0C,GACR,GAAInoC,OAAOg/C,OAAO7W,GAAIj0C,IAAM8L,OAAOg/C,OAAOhsD,EAAE+sB,WAAY7rB,GAAI,CAC1D,MAAMtB,EAAII,EAAE+sB,WAAW7rB,GAAIrC,EAAIs2C,GAAGj0C,IAC3B,OAANrC,GAAcA,EAAEqO,SAASlN,EAAE0Q,YAAc1Q,EAAE+sB,WAAW7rB,GAAKzT,EAAEu5B,OAAOpnB,GAAK,IAAKsB,EAAGlB,GAC5F,CACA,CACI,GAAe,YAAXA,EAAE7T,KAAoB,CACxB,IAAI+U,EAAIvE,GAAKA,EAAEuQ,SAASlN,EAAE0Q,WAAWvY,GAAIA,EAAE+U,SAASlN,EAAE0Q,SACtD,IAAKxP,GAAKlE,GAAiB,iBAALkD,IAAkBgB,GAAKlE,EAAEgD,EAAGE,EAAGU,IAAKM,GAAKN,GAAiB,iBAALV,EACzE,OAAOlC,GAAKgC,EAAE5P,SAAWwQ,EAAExQ,SAASqlD,OAAOv1C,EAAG,KAAMF,EAAE5P,UAAYwQ,EAAExQ,SAASqlD,OAAOv1C,EAAG,GAAIA,CACnG,CACA,IA5BgB+xC,GAAG5kD,EAAG,CAClBkQ,SAAU0uD,EAAE1uD,SAIZk1C,WAAY7iD,EACZkjD,oBAAoB,EACpB1+C,IAAKuD,EAAEvD,IACPL,KAAMm4D,EAAEn4D,KACRg/C,UAAU,EACVC,UAAU,GAmBd,CACA,SAAS+Y,GAAGz+D,GACV,MAAMqP,EAAIrP,EAAE8jD,QAAQ,KAAMp0C,EAAI1P,EAAE8jD,QAAQ,KAAMt0C,EAAIxP,EAAE8jD,QAAQ,KAAMh0C,EAAI9P,EAAE8jD,QAAQ,KAChF,OAEU,IAARz0C,IACQ,IAARS,GAAYT,EAAIS,IAAW,IAANJ,GAAYL,EAAIK,IAAa,IAARF,GAAYH,EAAIG,GAC1DquD,GAAG9xC,KAAK/rB,EAAE0hB,MAAM,EAAGrS,IAAMrP,EAAI,EAEjC,CACA,MAAM6+D,GAAK,EAAG/7D,SAAU9C,KAAwBqK,EAAAA,IAAG,MAAO,CAAE1L,MAAO,CAAEmgE,WAAY,UAAYh8D,SAA0BuH,EAAEvD,IACvHi3D,GACA,CACE5Y,WAAY,CACV1yC,EAAG,KAAM/C,KAAwBrF,EAAEvD,IACjC,IACA,CACEnI,MAAO,CACL6D,OAAQ,EACRu8D,aAAc,QACdC,WAAY,IACZC,UAAW,QAEbn8D,SAAU4M,EAAE5M,WAGhBo0B,GAAI,KAAMxnB,KAAwBrF,EAAEvD,IAClC,KACA,CACEnI,MAAO,CACLugE,YAAa,0BACb18D,OAAQ,EACR28D,kBAAmB,UAGrBr8D,SAAU4M,EAAE5M,WAGhBqzB,GAAI,KAAMzmB,KAAwBrF,EAAEvD,IAClC,KACA,CACEnI,MAAO,CACLugE,YAAa,0BACb18D,OAAQ,EACR28D,kBAAmB,UAGrBr8D,SAAU4M,EAAE5M,WAIhBmzB,GAAI,KAAMvmB,KAAwBrF,EAAEvD,IAClC,KACA,CACEnI,MAAO,CACLogE,aAAc,MACdC,WAAY,KAEdl8D,SAAU4M,EAAE5M,WAGhBwsC,KAAI,EAAG8vB,OAAQ1vD,EAAG5M,SAAU0M,KACnBE,EAAoBrF,EAAEvD,IAC3B,OACA,CACEnI,MAAO,CACL0d,gBAAiB,qBACjBgjD,QAAS,UACTt4D,aAAc,MACdvF,WAAY,UACZiB,SAAU,UAEZK,SAAU0M,IAEMnF,EAAEvD,IACpB,MACA,CACEnI,MAAO,CACL0d,gBAAiB,qBACjBgjD,QAAS,MACTt4D,aAAc,MACdu4D,UAAW,OACX98D,OAAQ,UACRs8D,WAAY,YAGdh8D,SAA0BuH,EAAAA,IAAG,OAAQ,CAAEvH,SAAU0M,MAIvDgmD,WAAY,KAAM9lD,KAAwBrF,EAAEvD,IAC1C,aACA,CACEnI,MAAO,CACL6D,OAAQ,EACR08D,YAAa,OACbK,WAAY,iBACZlkD,MAAO,OACP63B,UAAW,UAEbpwC,SAAU4M,EAAE5M,YAIlBA,SAAsB,iBAAL9C,EAAgBA,EAAI,OAEnCw/D,GAAK,CACT/hC,YAAY,GAqCXgiC,GAAMz/D,GAAM,IA9BP,CAACA,IACP,MAAQy0B,QAASplB,GAAMqwD,MAAQ9jD,SAAUlM,EAAG0X,gBAAiB5X,GAAMmwD,MAAQn1D,SAAUsF,GAAM8vD,MAAQvqD,qBAAsB/S,GAAM8yB,KAAMvqB,EAAI,IAAK7K,KAAMw/D,IAAMjwD,EAAI1E,EAAEg1D,kBAAoBh1D,EAAEg1D,kBAAoBhB,GAC1MiB,EAAAA,WAAG,KACD,IAAIrwD,EAAGiB,EACP,GAAIpO,EAAG,CACL,MAAMnC,EAAI,IAAIuP,GACd,IAAK,IAAI+C,EAAI,EAAGA,EAAItS,EAAEuZ,QAAUjH,IAA6B,OAAtBhD,EAAIK,EAAEhM,kBAAuB,EAAS2L,EAAE1L,aAAe,IAAK0O,IAAK,CACtG,MAAMJ,EAAIlS,EAAEsS,GACI,OAAf/B,EAAI2B,EAAE2O,OAAiBtQ,EAAEkP,SAAS,yCAA2CvN,EAAE+J,eAAiB7M,EACzG,CACMC,EAAErP,EACR,IACK,CAACmC,IACJ,MAAMgN,EAAImJ,MAAOhJ,IACf,IAAItP,EACJ,MAAMuQ,EAA4B,OAAvBvQ,EAAIsP,EAAEoJ,KAAKoD,cAAmB,EAAS9b,EAAE0c,OAAOC,cArBvD,EAAC9c,EAAGqP,EAAGK,KACb,IAAII,EACJ,GAAqC,iBAA1B9P,EAAE6Y,KAAKoD,QAAQE,UAAwBnc,EAAE2Y,OAAOoB,SACzD,OAAO,EACT,MAAMvK,EAAIH,EAAErP,EAAE2Y,OAAOoB,UACrB,QAAOvK,KAA+B,OAAzBM,EAAIN,EAAEuwD,qBAA0B,EAASjwD,EAAED,KAAKvN,GAAMA,EAAEwa,gBAAe8C,SAASlQ,MAAO,EAAO,EAiBzGswD,CAAGvwD,EAAGJ,IAAKqB,KAAOjB,EAAEoJ,KAAKoD,QAAQG,eAAiB7M,EAAGE,EAAEoJ,KAAKoD,QAAQ+E,OAASvR,EAAEoJ,KAAKoD,QAAQ+E,KAAO,IAAKvR,EAAEoJ,KAAKoD,QAAQ+E,KAAK2H,KAAK,uCAAuC,EAE1Ks3C,GAAGC,EAAG9oD,mBAAoB9H,GAAI2wD,GAAGC,EAAGzoD,qBAAsBnI,GAAI2wD,GAAGC,EAAG1oD,qBAAsBlI,GAAI2wD,GAAGC,EAAG5oD,8BAA+BhI,GACnI,MAAMS,EAAI,CACRyT,KAAM,kCAER,OAAY,MAAL3Y,GAAaA,EAAE4yB,aAAe1tB,EAAEvF,SAAW,CAChDzC,MAAO,CACLC,qBAAqB,EACrBK,uBAAuB,EACvBH,+BAA+B,EAC/BE,uBAAuB,KAEvB2H,CAAC,EACcowD,CAAGngE,GCrrNlB8P,GAAI,CACR2tB,YAAY,EAEZ2iC,iBAAkB,CAChBr6C,KAAM,UACNs6C,QAAS,UACT3/C,MAAO,UACP4/C,QAAS,WAEXC,oBAAqB,CACnBx6C,KAAM,UACNs6C,QAAS,UACT3/C,MAAO,UACP4/C,QAAS,WAEXE,wBAAyB,CACvBz6C,KAAM,UACNs6C,QAAS,UACT3/C,MAAO,UACP4/C,QAAS,YA6BVhuD,GAAI,CAAC5C,EAAG1P,EAAGwP,EAAI,uBAChB,IAAIlN,EACJ,GAAwB,OAAjBA,EAAIoN,EAAEiJ,UAAmBrW,EAAEyX,SAChC,OACF,MAAMlP,EAAI7K,EAAE0P,EAAEiJ,OAAOoB,UACrB,IAAKlP,EACH,OACF,MAAMkF,EAAIlF,EAAE2E,GACZ,MAAmB,mBAALO,EAAkBA,OAAI,CAAM,EACzCwB,GAAK7B,IACN,MAAQgb,UAAW1qB,GHqkGb,MACN,MAAQ0qB,UAAW3qB,EAAG4qB,aAAc3qB,EAAGmqB,OAAQtf,EAAG+f,cAAelb,GAAM8a,KACvE,MAAO,CACLE,UAAW3qB,EACX4qB,aAAc3qB,EACdmqB,OAAQtf,EACR+f,cAAelb,EAChB,EG5kGwBkD,IAAO6hB,QAASjlB,GAAMkD,MAAO1D,OAAQnE,EAAGkoB,aAAchjB,EAAG+iB,cAAexwB,GHyiG3F,MACN,MAAQ0M,OAAQjP,EAAG+yB,cAAe9yB,EAAG+yB,aAAcloB,GAAMgoB,KACzD,MAAO,CACL7jB,OAAQjP,EACR+yB,cAAe9yB,EACf+yB,aAAcloB,EACf,EG/iGsGqI,GAAKH,EArCvG,CAACrD,IAAO,IACVI,MACAJ,EACH0wD,iBAAkB,IACbtwD,GAAEswD,kBAGPG,oBAAqB,IAChBzwD,GAAEywD,qBAGPC,wBAAyB,IACpB1wD,GAAE0wD,2BAyByG5sD,CAAElE,IAAKuD,EAAGN,GAAK5S,EAACwS,SAAC,GAAIF,EAAIqB,EAACjD,OAAC,CAAE,GA+B7IC,GAAEsC,EAAEgF,kBA/BiJzI,IACnJ,MAAMF,EAAIE,EAAGkD,EAAIH,GAAEjD,EAAGG,IAAK,qBAC3B,IAAKiD,EACH,OACF,MAAMnD,EAAImD,EAAEpD,EAAEwJ,KAAK4S,WACnB,GAAS,MAALnc,GAAaA,EAAEgxD,SAAW/wD,EAAEmM,kBAAmBpM,EAAEmxD,cACnD,OACI,IAANxtD,IAAYZ,EAAEb,QAAUgR,gBAAgB3X,IACxC,MAAM4E,EA9BF,EAACC,EAAG1P,KACV,MAAMwP,EAAIE,EAAEgxD,YAAc,OAC1B,IAAI71D,EAAI,CAAE,EACV,OAAO7K,EAAE2gE,iBAAmB91D,EAAI7K,EAAE2gE,eAAenxD,IAAKxP,EAAEogE,mBAAqBv1D,EAAEgE,iBAAmB,CAChGwM,MAAOrb,EAAEogE,iBAAiB5wD,GAC1B8L,YAAatb,EAAEogE,iBAAiB5wD,KAC9BxP,EAAEugE,sBAAwB11D,EAAEiE,wBAA0B,CACxDuM,MAAOrb,EAAEugE,oBAAoB/wD,GAC7B8L,YAAatb,EAAEugE,oBAAoB/wD,KACjCxP,EAAEwgE,0BAA4B9wD,EAAEkxD,oBAAqB,KAAQ/1D,EAAEU,mBAAqB,CACtF4gB,UAAW,GAAGnsB,EAAEwgE,wBAAwBhxD,mBACtC3E,CAAC,EAmBO8F,CAAErB,EAAGyD,GACfhD,EAAEN,GAAIzP,EAAEsP,EAAEmxD,cAAenxD,EAAEuxD,gBAAkB,KAAMluD,GAAGxS,GAAMA,EAAI,GAAE,IAsB1CuQ,GAAEsC,EAAEiF,kBArBtB1I,IACN,IAAIpP,EAAGsZ,EACP,MAAMpK,EAAIE,EAAGkD,EAAqD,OAAhDgH,EAAoB,OAAftZ,EAAIkP,EAAEwJ,WAAgB,EAAS1Y,EAAEouB,YAAiB,EAAS9U,EAAE,GACpF,IAAKhH,EAEH,OADAgO,QAAQC,MAAM,0BAAsBnR,EAAEmM,iBAGxC,MAAMpM,EAAIgD,GAAEjD,EAAGG,IAAK,qBACpB,IAAKF,EAEH,YADAmR,QAAQC,MAAM,uCAGhB,MAAMjR,EAAIH,EAAEmD,GACZ,IAAKhD,EAAE6wD,QAEL,OADA7/C,QAAQC,MAAM,qBAAsBjR,GAAIA,EAAEgxD,eAAiBzgE,EAAEyP,EAAEgxD,cAAehxD,EAAEoxD,gBAAkB,UAAMtxD,EAAEmM,iBAG5G+E,QAAQqgD,IAAI,yBAA0BrxD,EAAE,IAIUiB,GAAEsC,EAAE+E,eAHjD,KACLpF,GAAGpD,GAAMA,EAAI,GAAE,IAE0D4C,EAAAA,WAAE,KACrE,IAANc,GAAWkM,YAAW,KACpB7c,EAAE+P,EAAEb,QAAQ,GACZ,GACD,CAACyB,EAAG3Q,IACP,MAAMuQ,EAAI,CACR2Q,KAAM,gCAER,OAAOzQ,EAAE0qB,aAAe5qB,EAAErI,SAAW,CACnCzC,MAAO,CACLkB,mBAAmB,EACnBC,mBAAmB,EACnBF,iBAAiB,KAEjB6J,CAAC,ECxGDkuD,GAAY,GAClB,IAAK,IAAIjxD,EAAI,EAAGA,EAAI,MAAOA,EACvBixD,GAAUp4C,MAAM7Y,EAAI,KAAO0Q,SAAS,IAAIkB,MAAM,ICHlD,IAAIrB,GACJ,MAAM2gD,GAAQ,IAAIzgD,WAAW,ICA7B,IAAe0gD,GAAA,CAAE7gD,WADoB,oBAAXD,QAA0BA,OAAOC,YAAcD,OAAOC,WAAWod,KAAKrd,SCGhG,SAAS+gD,GAAGviD,EAASwiD,EAAKnkB,GACtB,GAAIikB,GAAO7gD,aAAuBzB,EAC9B,OAAOsiD,GAAO7gD,aAGlB,MAAMghD,GADNziD,EAAUA,GAAW,CAAE,GACF0iD,QAAU1iD,EAAQ2iD,SFN5B,WACX,IAAKjhD,GAAiB,CAClB,GAAsB,oBAAXF,SAA2BA,OAAOE,gBACzC,MAAM,IAAIZ,MAAM,4GAEpBY,GAAkBF,OAAOE,gBAAgBmd,KAAKrd,OACtD,CACI,OAAOE,GAAgB2gD,GAC3B,CEFsDM,GAClD,GAAIF,EAAK1nD,OAAS,GACd,MAAM,IAAI+F,MAAM,qCAcpB,OAZA2hD,EAAK,GAAgB,GAAVA,EAAK,GAAa,GAC7BA,EAAK,GAAgB,GAAVA,EAAK,GAAa,IHR1B,SAAyBG,EAAKvkB,EAAS,GAC1C,OAAQ+jB,GAAUQ,EAAIvkB,EAAS,IAC3B+jB,GAAUQ,EAAIvkB,EAAS,IACvB+jB,GAAUQ,EAAIvkB,EAAS,IACvB+jB,GAAUQ,EAAIvkB,EAAS,IACvB,IACA+jB,GAAUQ,EAAIvkB,EAAS,IACvB+jB,GAAUQ,EAAIvkB,EAAS,IACvB,IACA+jB,GAAUQ,EAAIvkB,EAAS,IACvB+jB,GAAUQ,EAAIvkB,EAAS,IACvB,IACA+jB,GAAUQ,EAAIvkB,EAAS,IACvB+jB,GAAUQ,EAAIvkB,EAAS,IACvB,IACA+jB,GAAUQ,EAAIvkB,EAAS,KACvB+jB,GAAUQ,EAAIvkB,EAAS,KACvB+jB,GAAUQ,EAAIvkB,EAAS,KACvB+jB,GAAUQ,EAAIvkB,EAAS,KACvB+jB,GAAUQ,EAAIvkB,EAAS,KACvB+jB,GAAUQ,EAAIvkB,EAAS,MAAM35B,aACrC,CGFWm+C,CAAgBJ,EAC3B,CCzBO,MAAMK,GAAiB,CAC5BC,UAAW,SACXC,gBAAiB,mCACjBC,2BAA4B,mCAC5BC,iCAAkC,4DAClCC,kCAAmC,4BAEnCC,aAAc,8CAGdC,eAAgBjoC,QAAQC,IAAIioC,2BAE5BC,OAAQ,CACNC,gBAAiB,0DAGnBC,SAAU,CACRC,gCAAgC,GAGlCC,MAAO,CACLC,cAAe,UACfC,gBAAiB,UACjBC,YAAa,qBAGfC,QAAS,CACPC,MAAO,aACPC,WAAY,wFACZC,aAAc,4BAKLC,GAAsBA,CAACC,EAAYC,IAErCA,GAAkBvB,GAAeE,gBCpBtCsB,GAAgBC,EAAM1iE,YAAW,EACrCqB,WACAshE,gBACAC,eACC9kE,KAED,MAAMsd,EAAWynD,KACXr+D,ETu/FA,MACN,MACEuP,iBAAkBxU,EAClBib,iBAAkBhb,EAClBib,kBAAmBpQ,EACnBqQ,eAAgBxL,EAChByL,oBAAqB9L,GACnB4K,IACJ,MAAO,CACL1F,iBAAkBxU,EAClBib,iBAAkBhb,EAClBib,kBAAmBpQ,EACnBqQ,eAAgBxL,EAChByL,oBAAqB9L,EACtB,ESrgGkBi0D,GAEbC,EAAc9yD,EAAMA,OAAC2yD,GACrBI,EAAe/yD,EAAMA,QAAC,GA0C5B,MC5D+B0yD,KAC/B,MAAMM,EAAoBhzD,EAAMA,OAAC0yD,IAC3B/kD,cAAEA,GAAkBilD,KAE1B91C,EAAAA,WAAU,KACR,MAAMm2C,EAAoBD,EAAkBjyD,UAAY2xD,EAClDQ,GAAgBF,EAAkBjyD,SAAW2xD,EAE/CO,GAEAtlD,EADEulD,EACYlC,GAAeI,iCAEfJ,GAAeK,kCAFkC,OAOnE2B,EAAkBjyD,QAAU2xD,CAAa,GACxC,CAACA,EAAe/kD,GAAe,EDElCwlD,CAAwBT,GAGxB51C,EAAAA,WAAU,MACH1rB,GAAYmD,GAAcA,EAAWgW,mBACpCuoD,EAAY/xD,UAAY4xD,GAAgBI,EAAahyD,SACnDxM,GAAcA,EAAWgW,mBAC3BhW,EAAWgW,iBAAiBooD,GAC5BG,EAAY/xD,QAAU4xD,GAG1BI,EAAahyD,SAAU,EACzB,GACC,CAAC4xD,EAAavhE,EAAUmD,IAG3BuoB,EAAAA,WAAU,KACR,MAAMs2C,EAAwBA,KAC5BL,EAAahyD,SAAU,CAAI,EAIzBlT,IACGA,EAAIkT,UACPlT,EAAIkT,QAAU,CAAE,GAElBlT,EAAIkT,QAAQsyD,uBAAyBD,EACvC,IAKFE,EAAmBA,oBAACzlE,GAAK,KAAO,CAE9B0lE,WAAa/nD,IACPL,GAAYA,EAASwC,eACvBxC,EAASwC,cAAcnC,EACzB,KAEA,CAACL,IACE,IAAI,IElEPqoD,GAAWA,EACfj9D,QAAQ,GACRC,SAAS,GACToU,QAAQ,eACRvY,cACGq3B,KAGD+oC,EAAAtkE,cAAA,MAAAslE,EAAA,CACEvjE,MAAM,6BACNqG,MAAOA,EACPC,OAAQA,EACR/G,QAAQ,YACRE,KAAK,OACL4uB,OAAQ3T,EACRxa,YAAY,IACZD,cAAc,QACdujE,eAAe,QACf,cAAY,OACZjqB,UAAU,SACN/f,GAEHr3B,GCrBDshE,GAAejqC,GAEjB+oC,EAAAtkE,cAACqlE,GAAa9pC,EACZ+oC,EAAAtkE,cAAA,OAAA,CAAMuB,EAAE,iHCFRkkE,GAAgBA,KACpB,MAAM7vC,YAAEA,GAAgB8vC,KAMxB,OACEpB,EAAAtkE,cAAA,SAAA,CACE+D,QANkB4hE,KACpB/vC,GAAa,EAMXpE,SAAU,EACV,aAAW,wBACXzxB,MAAO,CACL0d,gBAAiB,UACjB0yB,OAAQ,OACR1zB,MAAO,UACP5Y,SAAU,OACVF,OAAQ,UACR88D,QAAS,WACTt4D,aAAc,MACdiY,WAAY,gBACZtY,QAAS,OACTE,WAAY,SACZ49D,IAAK,MACL9hE,WAAY,OAEd6Y,aAAevb,IACbA,EAAEssB,OAAO3tB,MAAM0d,gBAAkB,SAAS,EAE5Cb,aAAexb,IACbA,EAAEssB,OAAO3tB,MAAM0d,gBAAkB,SAAS,GAG5C6mD,EAAAtkE,cAACwlE,GAAW,CAACp9D,MAAO,GAAIC,OAAQ,gBAEzB,EC7BPw9D,GAAWA,IACfvB,EAAAtkE,cAAA,MAAA,CACEgR,UAAU,kBACVjR,MAAO,CACLiI,WAAY,SACZM,eAAgB,SAChBF,MAAO,OACPC,OAAQ,OACRF,aAAc,MACdsV,gBAAiB,UACjBqoD,YAAa,OAEfn4C,KAAK,MACL,aAAW,iBACXlqB,MAAM,kBAEN6gE,EAAAtkE,cAAA,MAAA,CACEoI,MAAM,KACNC,OAAO,KACP/G,QAAQ,YACRE,KAAK,OACL4uB,OAAO,QACPnuB,YAAY,IACZD,cAAc,QACdujE,eAAe,QACf,cAAY,OACZjqB,UAAU,SAEVgpB,EAAAtkE,cAAA,OAAA,CAAMuB,EAAE,8CACR+iE,EAAAtkE,cAAA,SAAA,CAAQo6C,GAAG,KAAKC,GAAG,IAAIzpC,EAAE,QC1BzBm1D,GAAcA,EAAGC,WAAUh1D,YAAY,GAAIjR,QAAOkmE,kBAAiB,MACvE,MA8BMC,EAAaD,EA9BC,CAClBn+D,QAAS,eACT24D,QAAS,WACThjD,gBAAiB,cACjB0yB,OAAQ,iBACR1zB,MAAO,QACPg7B,eAAgB,OAChBtvC,aAAc,MACdrE,WAAY,SACZu8D,UAAW,SACXz8D,OAAQ,MACRC,SAAU,OACVw6C,QAAS,MACTj+B,WAAY,iBAGO,CACnBtY,QAAS,eACT24D,QAAS,YACThjD,gBAAiB,QACjB0yB,OAAQ,oBACR1zB,MAAO,UACPg7B,eAAgB,OAChBtvC,aAAc,MACdrE,WAAY,OACZu8D,UAAW,SACXz8D,OAAQ,OACR2pB,UAAW,gCAKb,OACE+2C,EAAAtkE,cAAAskE,EAAAjzD,SAAA,KACG40D,GACC3B,EAAAtkE,cACG,QAAA,KAAA,wMAQLskE,EAAAtkE,cAAA,IAAA,CACE+4B,KAAMitC,EACNt4C,OAAO,SACP6L,IAAI,sBACJvoB,UAAW,uBAAuBi1D,EAAiB,6BAA+B,MAAMj1D,IACxFjR,MAAO,IAAKmmE,KAAenmE,IAC5B,UAGA,ECxDDomE,GAAmBA,CAACC,EAAQC,EAAWC,KAC3C,MAAMC,ECPqBA,KACzB,IACE,MAAMC,EAAgBjjD,aAAaG,QAAQ,eAC3C,IAAK8iD,EAAe,OAAO,KAE3B,MAAMlJ,EAAUn6C,KAAKK,MAAMgjD,GAC3B,IAAKtnD,MAAMK,QAAQ+9C,GAAU,OAAO,KAEpC,IAAImJ,EAAoB,KACpBC,EAAkB,KAEtB,IAAK,MAAMrpD,KAAWigD,EACpB,GAAuB,SAAnBjgD,EAAQY,OAAmB,CAC7B,MAAM0oD,EAAc,IAAIzkD,KAAK7E,EAAQ4E,WAAW+Q,YAC3C0zC,GAAmBC,EAAcD,KACpCA,EAAkBC,EAClBF,EAAoBppD,EAExB,CAGF,OAAOopD,EAAoBA,EAAkBzkD,GAAK,IACnD,CAAC,MAAOF,GAEP,OADAD,QAAQ+kD,KAAK,8BAA+B9kD,GACrC,IACT,GDuBF,OAvCoB9G,eAAYnB,UAC9B,MAAMsS,UAAEA,GAAc06C,EAEhBC,EAAgBP,IAElBO,GACFR,EAAkBQ,GAGpB,MAAM1/B,EAAU,CACd,eAAgB,mBAChB,WAAY,SACZ,YAAag/B,EACb,eAAgBC,EAChB,aAAcS,GAGhB,IACE,MAAMC,EAAiB,CACrBt+B,OAAQ,OACRrB,UACAljB,KAAMf,KAAKC,UAAU,CACnB4jD,MAAO76C,KAIL86C,QAAiB3gD,MAAMu8C,GAAeM,aAAc4D,GAEpD1jE,SADa4jE,EAASr0C,QACVq0C,SAElB,aADMJ,EAAOv+C,cAAcjlB,IACpB,CACR,CAED,MAAOye,GAEL,aADM+kD,EAAOrnD,cAAcqjD,GAAeS,OAAOC,kBAC1C,CACT,IACC,CAAC6C,EAAQE,EAAmBC,EAAoBF,GAEjC,EE/Cda,GAAwBA,KAC5Bv4C,EAAAA,WAAU,KAER,MAiEMw4C,EAA4Bh+D,IAEhC,IAAK,CAAC,YAAa,UAAW,YAAa,aAAc,QAAS,IAAK,OAAQ,OAAO6X,SAAS7X,EAAMwc,KACnG,OAIF,MAAMyhD,EAAgBxnE,SAASwnE,cAC/B,GAAIA,IACwB,UAA1BA,EAAc5iD,SACY,aAA1B4iD,EAAc5iD,SACoB,SAAlC4iD,EAAcnhC,iBACdmhC,EAAcjiD,UAAUU,SAAS,4BAEjC,OAGF,MAAMzf,EAAaxG,SAASynE,cAAc,oBAC1C,IAAKjhE,EAAY,OAGjB,MAAMkhE,EAAcpoD,MAAMC,KAAK/Y,EAAWmhE,iBAAiB,oFACxDziD,QAAO0iD,GAA0B,OAApBA,EAAGC,eAEnB,GAAIH,EAAYxsD,OAAS,EAAG,CAC1B,MACM4sD,EADcJ,EAAYA,EAAYxsD,OAAS,GACfusD,cAAc,2BAEpD,GAAIK,GAAwD,OAAnCA,EAAkBD,aAAuB,CAChE,MAAMrpD,EAAac,MAAMC,KAAKuoD,EAAkBH,iBAAiB,gCAC3DI,EAAaD,EAAkBL,cAAc,6BAEnD,GAAIjpD,EAAWtD,OAAS,EAAG,CAEzB,MAAM8sD,EAAc,IAAIxpD,GAKxB,OAJIupD,GACFC,EAAY79C,KAAK49C,OArGME,EAAC1+D,EAAO2+D,KACvC3+D,EAAM2T,iBAEN,IAAIirD,GAAiB,EAGrB,IAAK,IAAI72D,EAAI,EAAGA,EAAI42D,EAAShtD,OAAQ5J,IACnC,GAAI42D,EAAS52D,KAAOtR,SAASwnE,eAAiBU,EAAS52D,GAAG2U,SAASjmB,SAASwnE,eAAgB,CAC1FW,EAAe72D,EACf,KACF,EAImB,IAAjB62D,IACFA,EAAe,GAGjB,IAAIC,EAAWD,EAEf,OAAQ5+D,EAAMwc,KACZ,IAAK,YACL,IAAK,aACHqiD,EAAWD,EAAeD,EAAShtD,OAAS,EAAIitD,EAAe,EAAI,EACnE,MACF,IAAK,UACL,IAAK,YACHC,EAAWD,EAAe,EAAIA,EAAe,EAAID,EAAShtD,OAAS,EACnE,MACF,IAAK,OACHktD,EAAW,EACX,MACF,IAAK,MACHA,EAAWF,EAAShtD,OAAS,EAC7B,MACF,IAAK,QACL,IAAK,IAEH,MAAMmtD,EAAiBH,EAASC,GAC1BG,EAAiB,IAAIC,WAAW,YAAa,CACjDC,SAAS,EACTpuD,YAAY,EACZquD,KAAMrkE,SAGR,YADAikE,EAAe9tD,cAAc+tD,GAE/B,QAEE,OAIJJ,EAASE,GAAUn9C,QACnBi9C,EAASE,GAAUM,aAAa,WAAY,KAC5CR,EAASE,GAAU7iD,UAAUlG,IAAI,oBAGjC6oD,EAAS/iD,SAAQ,CAACwjD,EAAS/tC,KACrBA,IAAUwtC,IACZO,EAAQD,aAAa,WAAY,MACjCC,EAAQpjD,UAAUqjD,OAAO,oBAC3B,GACA,EAyCIX,CAAyB1+D,EAAOy+D,EAElC,CACF,CACF,CAIA,IAAI7nD,EAAU,GACd,GAAIunD,EAAYxsD,OAAS,EAAG,CAC1B,MAAM2tD,EAAcnB,EAAYA,EAAYxsD,OAAS,GAC/C4tD,EAAoBxpD,MAAMC,KAAKspD,EAAYlB,iBAAiB,2BAC/DziD,QAAO0iD,GAA0B,OAApBA,EAAGC,eAEnB,GAAIiB,EAAkB5tD,OAAS,EAAG,CAChC,MAAM6tD,EAAgBD,EAAkBA,EAAkB5tD,OAAS,GACnEiF,EAAUb,MAAMC,KAAKwpD,EAAcpB,iBAAiB,gBACtD,CACF,CAEA,GAAuB,IAAnBxnD,EAAQjF,OAAc,OAE1B,MAAMitD,EAAehoD,EAAQ6oD,WAAUC,GAAUA,IAAWjpE,SAASwnE,gBAErE,OAAQj+D,EAAMwc,KACZ,IAAK,YACL,IAAK,aAEH,IAAImjD,EADJ3/D,EAAM2T,iBAGJgsD,EADEf,EAAehoD,EAAQjF,OAAS,EACtBitD,EAAe,EAGf,EAIdhoD,EAAQ+oD,GAAWR,aAAa,WAAY,KAC5CvoD,EAAQgF,SAAQ,CAACgkD,EAAK73D,KAChBA,IAAM43D,IACRC,EAAIT,aAAa,WAAY,MAC7BS,EAAI5jD,UAAUqjD,OAAO,oBACvB,IAGFzoD,EAAQ+oD,GAAW3jD,UAAUlG,IAAI,oBACjCc,EAAQ+oD,GAAWj+C,QACnB,MAEF,IAAK,UACL,IAAK,YAEH,IAAIm+C,EADJ7/D,EAAM2T,iBAGJksD,EADEjB,EAAe,EACLA,EAAe,EAGfhoD,EAAQjF,OAAS,EAI/BiF,EAAQipD,GAAWV,aAAa,WAAY,KAC5CvoD,EAAQgF,SAAQ,CAACgkD,EAAK73D,KAChBA,IAAM83D,IACRD,EAAIT,aAAa,WAAY,MAC7BS,EAAI5jD,UAAUqjD,OAAO,oBACvB,IAGFzoD,EAAQipD,GAAW7jD,UAAUlG,IAAI,oBACjCc,EAAQipD,GAAWn+C,QACnB,MAEF,IAAK,QACL,IAAK,IAEH,GADA1hB,EAAM2T,iBACFld,SAASwnE,eAAiBrnD,EAAQiB,SAASphB,SAASwnE,eAAgB,CACtE,MAAMA,EAAgBxnE,SAASwnE,cAG/B,GAAIA,EAAcjiD,UAAUU,SAAS,+BAAiCuhD,EAAc6B,QAAQ,+BAAgC,CAE1H,MAAMf,EAAiB,IAAIC,WAAW,YAAa,CACjDC,SAAS,EACTpuD,YAAY,EACZquD,KAAMrkE,SAERojE,EAAcjtD,cAAc+tD,GAG5B,MAAMgB,EAAe9B,EAAcC,cAAc,uBAC3C8B,EAAeD,EAAeA,EAAa3kD,YAAe6iD,EAAc7iD,aAAe,WACvF6kD,EAAehC,EAAcC,cAAc,sBAC3CgC,EAAYD,GAAgBA,EAAarpE,MAAM0d,gBAAkB,UAAY,YACnF6rD,EAAuB,GAAGH,KAAgBE,IAC5C,KAAO,CAEL,MAAMnB,EAAiB,IAAIC,WAAW,YAAa,CACjDC,SAAS,EACTpuD,YAAY,EACZquD,KAAMrkE,SAERojE,EAAcjtD,cAAc+tD,GAG5B,MAAMiB,EAAe/B,EAAc7iD,aAAe6iD,EAAcmC,UAChED,EAAuB,aAAaH,IACtC,CACF,CACA,MAEF,IAAK,OACHhgE,EAAM2T,iBACFiD,EAAQjF,OAAS,IACnBiF,EAAQ,GAAGuoD,aAAa,WAAY,KACpCvoD,EAAQgF,SAAQ,CAACgkD,EAAK73D,KACV,IAANA,IACF63D,EAAIT,aAAa,WAAY,MAC7BS,EAAI5jD,UAAUqjD,OAAO,oBACvB,IAEFzoD,EAAQ,GAAGoF,UAAUlG,IAAI,oBACzBc,EAAQ,GAAG8K,SAEb,MAEF,IAAK,MAEH,GADA1hB,EAAM2T,iBACFiD,EAAQjF,OAAS,EAAG,CACtB,MAAMy7C,EAAYx2C,EAAQjF,OAAS,EACnCiF,EAAQw2C,GAAW+R,aAAa,WAAY,KAC5CvoD,EAAQgF,SAAQ,CAACgkD,EAAK73D,KAChBA,IAAMqlD,IACRwS,EAAIT,aAAa,WAAY,MAC7BS,EAAI5jD,UAAUqjD,OAAO,oBACvB,IAEFzoD,EAAQw2C,GAAWpxC,UAAUlG,IAAI,oBACjCc,EAAQw2C,GAAW1rC,OACrB,EAKJ,EAKIy+C,EAA0BjsD,IAC9B,MAAMmsD,EAAe5pE,SAASI,cAAc,OAC5CwpE,EAAalB,aAAa,YAAa,aACvCkB,EAAalB,aAAa,cAAe,QACzCkB,EAAax4D,UAAY,UACzBw4D,EAAajlD,YAAclH,EAC3Bzd,SAASskB,KAAK9jB,YAAYopE,GAC1BjpD,YAAW,KACL3gB,SAASskB,KAAK2B,SAAS2jD,IACzB5pE,SAASskB,KAAKulD,YAAYD,EAC5B,GACC,IAAK,EAIJE,EAAmBA,KAEvB,IAAItjE,EAAaxG,SAASynE,cAAc,oBAQxC,GAPKjhE,IACHA,EAAaxG,SAASynE,cAAc,wBAEjCjhE,IACHA,EAAaxG,SAASynE,cAAc,aAGjCjhE,EAAY,OAGjB,MAAMkhE,EAAcpoD,MAAMC,KAAK/Y,EAAWmhE,iBAAiB,oFACxDziD,QAAO0iD,GAA0B,OAApBA,EAAGC,eAEnB,GAA2B,IAAvBH,EAAYxsD,OAAc,OAE9B,MAAM2tD,EAAcnB,EAAYA,EAAYxsD,OAAS,GAGrD,IAAI4tD,EAAoBxpD,MAAMC,KAAKspD,EAAYlB,iBAAiB,2BAC7DziD,QAAO0iD,GAA0B,OAApBA,EAAGC,eAEf1nD,EAAU,GAId,GAAI2oD,EAAkB5tD,OAAS,EAAG,CAChC,MAAM6tD,EAAgBD,EAAkBA,EAAkB5tD,OAAS,GACnEiF,EAAUb,MAAMC,KAAKwpD,EAAcpB,iBAAiB,gBACtD,CAGA,GAAuB,IAAnBxnD,EAAQjF,OAAc,CAExB,IAAI4sD,EAAoBe,EAAYpB,cAAc,2BAKlD,IAJKK,GAAqBthE,IACxBshE,EAAoBthE,EAAWihE,cAAc,4BAG3CK,GAAwD,OAAnCA,EAAkBD,aAAuB,CAChE,MAAMkC,EAAmBzqD,MAAMC,KAAKuoD,EAAkBH,iBAAiB,gCACpEziD,QAAO0iD,GAA0B,OAApBA,EAAGC,cAA8C,SAArBD,EAAGznE,MAAM+H,UAErD,GAAI6hE,EAAiB7uD,OAAS,EAAG,CAE/B,MAAM6sD,EAAaD,EAAkBL,cAAc,6BAC7CO,EAAc,IAAI+B,GAgBxB,GAfIhC,GAA0C,OAA5BA,EAAWF,cAC3BG,EAAY79C,KAAK49C,GAInBC,EAAY7iD,SAAQ,CAACwjD,EAAS/tC,KAC5B+tC,EAAQD,aAAa,WAAsB,IAAV9tC,EAAc,IAAM,MACvC,IAAVA,EACF+tC,EAAQpjD,UAAUlG,IAAI,oBAEtBspD,EAAQpjD,UAAUqjD,OAAO,mBAC3B,IAIEmB,EAAiB7uD,OAAS,EAAG,CAET4sD,EAAkBH,iBAAiB,sBAC3CxiD,SAAQ6kD,GAAQA,EAAKpB,WAGnC,MAAMqB,EAAcjqE,SAASI,cAAc,OAC3C6pE,EAAY74D,UAAY,oBACxB64D,EAAYtlD,YAAc,8EAC1BslD,EAAY9pE,MAAMO,QAAU,+IAC5BonE,EAAkBvnE,aAAa0pE,EAAanC,EAAkBxnE,WAChE,CASA,YANAqgB,YAAW,KACLqnD,EAAY,IAAsC,OAAhCA,EAAY,GAAGH,cACnCG,EAAY,GAAG/8C,OACjB,GACC,IAGL,CACF,CACF,CAEA,GAAI9K,EAAQjF,OAAS,EAAG,CAiBtB,GAfAiF,EAAQgF,SAAQ,CAAC8jD,EAAQruC,KACvB,MAAMV,EAAqB,IAAVU,EAAc,IAAM,KACrCquC,EAAOP,aAAa,WAAYxuC,GAChC+uC,EAAOP,aAAa,OAAQ,UAC5BO,EAAOP,aAAa,gBAAiB9tC,EAAQ,GAC7CquC,EAAOP,aAAa,eAAgBvoD,EAAQjF,QAE9B,IAAV0f,EACFquC,EAAO1jD,UAAUlG,IAAI,oBAErB4pD,EAAO1jD,UAAUqjD,OAAO,mBAC1B,IAIEzoD,EAAQjF,OAAS,EAA+B,CAElD,MAAM6tD,EAAgBD,EAAkB5tD,OAAS,EAAI4tD,EAAkBA,EAAkB5tD,OAAS,GAAK,KACvG,GAAI6tD,EAAe,CAEKA,EAAcpB,iBAAiB,sBACvCxiD,SAAQ6kD,GAAQA,EAAKpB,WAGnC,MAAMqB,EAAcjqE,SAASI,cAAc,OAC3C6pE,EAAY74D,UAAY,oBACxB64D,EAAYtlD,YAAc,qEAC1BslD,EAAY9pE,MAAMO,QAAU,+IAC5BqoE,EAAcxoE,aAAa0pE,EAAalB,EAAczoE,WACxD,CACF,KAAqC,CAEnC,MAAMyoE,EAAgBD,EAAkB5tD,OAAS,EAAI4tD,EAAkBA,EAAkB5tD,OAAS,GAAK,KACvG,GAAI6tD,EAAe,CACKA,EAAcpB,iBAAiB,sBACvCxiD,SAAQ6kD,GAAQA,EAAKpB,UACrC,CACF,CAGAjoD,YAAW,KACLR,EAAQ,IAAkC,OAA5BA,EAAQ,GAAG0nD,eAC3B1nD,EAAQ,GAAG8K,QACP9K,EAAQjF,OAAS,GACnBwuD,EAAuB,GAAGvpD,EAAQjF,yDAEtC,GACC,IACL,GAIIqjC,EAAW,IAAI2rB,kBAAkBC,IACrCA,EAAUhlD,SAASilD,IACjB,GAAsB,cAAlBA,EAAS/pE,KAAsB,CACjC,MAAMgqE,EAAa/qD,MAAMC,KAAK6qD,EAASC,YAEjCC,EAAgBD,EAAWE,MAAK9vC,GACpCA,EAAKjW,WAAaC,KAAK+lD,eACtB/vC,EAAKlV,WAAWU,SAAS,0BACzBwU,EAAKlV,WAAWU,SAAS,gBACzBwU,EAAKgtC,gBAAgB,2BACrBhtC,EAAKgtC,gBAAgB,mBAGlBgD,EAAmBJ,EAAWE,MAAK9vC,GACvCA,EAAKjW,WAAaC,KAAK+lD,eACtB/vC,EAAKlV,WAAWU,SAAS,2BACzBwU,EAAKgtC,gBAAgB,+BAIpB6C,GAAiBG,KAEnBzqE,SAAS2nE,iBAAiB,sGAAsGxiD,SAAQyiD,IACtIA,EAAGc,aAAa,WAAY,MAC5Bd,EAAGriD,UAAUqjD,OAAO,mBAAmB,IAGzCjoD,WAAWmpD,EAAkB,KAEjC,IACA,IAIEtjE,EAAaxG,SAASynE,cAAc,oBACtCjhE,GACF+3C,EAASmsB,QAAQlkE,EAAY,CAC3BmkE,WAAW,EACXC,SAAS,IAKb5qE,SAASmwB,iBAAiB,UAAWo3C,GAGrCuC,IAIA,MAAMe,EAAgBziD,aAAY,KAChC,MAAM0iD,EAAoB9qE,SAAS2nE,iBAAiB,uCAAuCzsD,OAAS,EAC9F6vD,EAAuB/qE,SAAS2nE,iBAAiB,+BAA+BzsD,OAAS,EAE/F,GAAI4vD,EAAmB,CACrB,MAAME,EAAuBhrE,SAAS2nE,iBAAiB,0BAA0BzsD,OAC1Dlb,SAAS2nE,iBAAiB,gBAAgBzsD,OAE5C8vD,GACnBlB,GAEJ,CAEA,GAAIiB,EAAsB,CACxB,MAAME,EAA0BjrE,SAAS2nE,iBAAiB,yCAAyCzsD,OACzElb,SAAS2nE,iBAAiB,+BAA+BzsD,OAE3D+vD,GACtBnB,GAEJ,IACC,KAGH,MAAO,KACL9pE,SAASowB,oBAAoB,UAAWm3C,GACxChpB,EAAS2sB,aACT7iD,cAAcwiD,EAAc,CAC7B,GACA,IAEI,MCxeIM,GAAeA,EAAGC,yBAAwB3E,YAAW4E,qBACzD,CACLC,iBAAkB,CAChB7tD,QAAS,6BACTiB,KAAM,WAER6sD,QAAS,CACP9tD,QAASxD,UACP,IAEE,aADMmxD,EAAuBI,GACtB,mBACR,CAAC,MAAOtpD,GAEP,OADAD,QAAQC,MAAM,qBAAsBA,GCjBfA,KAC7BD,QAAQC,MAAM,aAAcA,GAGxBA,GAASA,EAAMA,OAKEjB,MAJZgiD,GAAeS,OAAOC,iBDahB8H,CAAevpD,EACxB,GAEF/B,QAAS,CAAC,SAAU,SACpBW,cAAc,EACdhB,SAAU7F,UACR,GAA4B,WAAxBuxD,EAAUj/C,WAAkD,UAAxBi/C,EAAUj/C,UAAuB,CACvE,MAAMi6C,EAASjrC,QAAQC,IAAIkwC,kBAC3B,GAAIlF,GAAUC,EAAW,CACvB,MAAMkF,EAAqC,WAAxBH,EAAUj/C,UACvBib,EAAU,CACd,eAAgB,mBAChB,WAAY,SACZ,YAAag/B,EACb,eAAgBC,EAChB,aAAc4E,EACd,aAAcM,EAAa,EAAI,GAGjC,UACQjlD,MAAM,GAAGu8C,GAAeM,sBAAuB,CACnD16B,OAAQ,OACRrB,WAEH,CAAC,MAAOtlB,GACPD,QAAQC,MAAM,0BAA2BA,EAC3C,CACF,CACF,GAEFxD,KAAO8sD,GACuB,WAAxBA,EAAUj/C,UACL,uBAC0B,UAAxBi/C,EAAUj/C,UACZ,uBAEF,WAGXq/C,qBAAsB,CACpBnuD,QAAS,8DACT+C,WAAY,CAAEC,SAAU,KACxB/B,KAAM,oBAERmtD,qBAAsB,CACpBpuD,QAAS,iFACT0C,QAAS,CAAC,qBAAsB,wBAChCW,cAAc,EACdpC,KAAO8sD,GACuB,uBAAxBA,EAAUj/C,UACL,cAEF,eAGXu/C,YAAa,CACXruD,QAAS,0EACTiB,KAAM,aE/ENqtD,GAAcpwC,GAEhB+oC,EAAAtkE,cAACqlE,GAAa9pC,EACZ+oC,EAAAtkE,cAAA,OAAA,CAAMuB,EAAE,8CACR+iE,EAAAtkE,cAAA,WAAA,CAAUm/C,OAAO,kBACjBmlB,EAAAtkE,cAAA,OAAA,CAAM0iD,GAAG,KAAKG,GAAG,IAAIF,GAAG,KAAKG,GAAG,QCGhC8oB,GAAsBA,EAAGC,mBAC7B,MAAOC,EAAYC,GAAiBp4D,EAAAA,UAAS,IACtCq4D,EAAeC,GAAoBt4D,EAAAA,SAAS,KAC5Cu4D,EAAaC,GAAkBx4D,EAAAA,SAAS,MACzCy4D,EAAev6D,EAAMA,OAAC,OACtBw6D,kBAAEA,EAAiBC,YAAEA,GCVAC,MAC3B,MAAOD,EAAaE,GAAkB74D,EAAAA,UAAS,GA0D/C,MAAO,CACL04D,kBAzDwBxyD,UACxB,IACE2yD,GAAe,GAGf,MAAMC,QAAehjD,UAAUC,aAAagjD,gBAAgB,CAC1Dn0C,MAAO,CACLo0C,eAAgB,UAChBhpE,OAAQ,SACRipE,gBAAgB,EAChBxkE,MAAO,CAAEykE,MAAO,MAChBxkE,OAAQ,CAAEwkE,MAAO,OAEnB/nE,OAAO,IAIHyzB,EAAQ34B,SAASI,cAAc,SACrCu4B,EAAMu0C,UAAYL,QAGZ,IAAIryD,SAAQmzC,IAChBh1B,EAAMw0C,iBAAmB,KACvBx0C,EAAMy0C,OACNzf,GAAS,CACV,IAIH,MAAM0f,EAASrtE,SAASI,cAAc,UACtCitE,EAAO7kE,MAAQmwB,EAAM20C,WACrBD,EAAO5kE,OAASkwB,EAAM40C,YAGVF,EAAOG,WAAW,MAC1BC,UAAU90C,EAAO,EAAG,EAAG00C,EAAO7kE,MAAO6kE,EAAO5kE,QAGhD,MAAMilE,QAAa,IAAIlzD,SAAQmzC,GAAW0f,EAAOM,OAAOhgB,EAAS,eAG3DtrC,GAAY,IAAIC,MAAO22C,cAAcn3C,QAAQ,QAAS,KACtD2K,EAAO,IAAIqE,KAAK,CAAC48C,GAAO,cAAcrrD,QAAiB,CAAEhiB,KAAM,cAMrE,OAHAwsE,EAAOxiD,YAAYlF,SAAQsT,GAASA,EAAMnO,SAE1CsiD,GAAe,GACRngD,CACR,CAAC,MAAOvK,GAGP,MAFAD,QAAQC,MAAM,8BAA+BA,GAC7C0qD,GAAe,GACT1qD,CACR,GAKAwqD,cACD,EDpD0CC,GAGrCjD,EAA0BjsD,IAC9B,MAAMmsD,EAAe5pE,SAASI,cAAc,OAC5CwpE,EAAalB,aAAa,YAAa,aACvCkB,EAAalB,aAAa,cAAe,QACzCkB,EAAax4D,UAAY,UACzBw4D,EAAajlD,YAAclH,EAC3Bzd,SAASskB,KAAK9jB,YAAYopE,GAC1BjpD,YAAW,IAAM3gB,SAASskB,KAAKulD,YAAYD,IAAe,IAAK,EAG3DgE,EAAe79C,IACnB,MAAM89C,EAAevuD,MAAMC,KAAKwQ,GAC1B+9C,EAAe,IAAI1B,KAAkByB,GAC3CxB,EAAiByB,GAGjB,MAAMC,EAAYF,EAAa3yD,OACzB8yD,EAAYH,EAAax8D,KAAIa,GAAKA,EAAE8S,OAAMxF,KAAK,MACrDkqD,EAAuB,GAAGqE,SAAiBA,EAAY,EAAI,IAAM,gBAAgBC,KAGjFrtD,YAAW,KACT,MAAMstD,EAAcjuE,SAASynE,cAAc,qBACvCwG,IACFA,EAAY3xD,UAAY2xD,EAAY5xD,aACtC,GACC,KAEC4vD,GACFA,EAAa6B,EACf,EAGII,EAAc1sE,IAClBA,EAAE0b,iBACF1b,EAAEwsB,kBAEa,cAAXxsB,EAAEnB,MAAmC,aAAXmB,EAAEnB,KAC9B8rE,GAAc,GACM,cAAX3qE,EAAEnB,MACX8rE,GAAc,EAChB,EAmBIgC,EAAoBA,KACxB3B,EAAax5D,QAAQo7D,OAAO,EAyBxBC,EAAeA,KACnB9B,EAAe,KAAK,EAgGtB,OACE7H,EAAAtkE,cAAA,MAAA,CAAKgR,UAAU,wBAAwBjR,MAAO,CAAE0gE,QAAS,OAAQ78D,OAAQ,UACvE0gE,EAAAtkE,cAAA,MAAA,CAAKD,MAAO,CAAE+H,QAAS,OAAQQ,eAAgB,SAAU63D,aAAc,SACrEmE,EAAAtkE,cAAA,SAAA,CACE+D,QAAU3C,IACRA,EAAE0b,iBApHoBjD,WAC9B,IACE,MAAMwS,QAAaggD,IACnBmB,EAAY,CAACnhD,IACbi9C,EAAuB,mCACxB,CAAC,MAAOxnD,GACPwnD,EAAuB,gDACzB,GA8GQ4E,EAAyB,EAE3B1pE,SAAU8nE,EACV,mBAAiB,kBACjB,aAAYA,EAAc,iCAAmC,8BAC7DvsE,MAAO,CACL+H,QAAS,OACTE,WAAY,SACZ49D,IAAK,MACLnoD,gBAAiB,UACjBhB,MAAO,QACP0zB,OAAQ,OACRhoC,aAAc,MACds4D,QAAS,WACT98D,OAAQ2oE,EAAc,cAAgB,UACtCzoE,SAAU,OACVC,WAAY,MACZypB,UAAW,8BAGb+2C,EAAAtkE,cAAA,MAAA,CACE+B,MAAM,6BACNqG,MAAM,KACNC,OAAO,KACP/G,QAAQ,YACRE,KAAK,OACL4uB,OAAO,eACPnuB,YAAY,IACZD,cAAc,QACdujE,eAAe,SAEfjB,EAAAtkE,cAAA,OAAA,CAAMuB,EAAE,sFACR+iE,EAAAtkE,cAAA,SAAA,CAAQo6C,GAAG,KAAKC,GAAG,KAAKzpC,EAAE,OAE3B07D,EAAc,uBAAyB,sBAE1ChI,EAAAtkE,cAAA,OAAA,CAAMgiB,GAAG,kBAAkBhR,UAAU,WAAU,6DAKjDszD,EAAAtkE,cAAA,MAAA,CACEgR,UAAW,yBAAwB86D,EAAa,SAAW,IAC3D5hC,YAAa4jC,EACb1jC,YAAa0jC,EACbzjC,WAAYyjC,EACZvjC,OA/LcnpC,IAClBA,EAAE0b,iBACF1b,EAAEwsB,kBACFm+C,GAAc,GAEV3qE,EAAE+sE,aAAax+C,OAASvuB,EAAE+sE,aAAax+C,MAAM7U,OAAS,GACxD0yD,EAAYpsE,EAAE+sE,aAAax+C,MAC7B,EAyLIhC,KAAK,SACL6D,SAAU,EACV,aAAW,uEACX,mBAAiB,sBACjBzD,UAAY3sB,IACI,UAAVA,EAAEukB,KAA6B,MAAVvkB,EAAEukB,MACzBvkB,EAAE0b,iBACFixD,IACF,EAEFhuE,MAAO,CACL0gE,QAAS,OACTtwB,OAAQ,kBACRhoC,aAAc,MACdsV,gBAAiBquD,EAAa,UAAY,UAC1C1rD,WAAY,kBAGdkkD,EAAAtkE,cAAA,QAAA,CACEN,IAAK0sE,EACLnsE,KAAK,OACL+Q,UAAU,aACV8c,SA5MkB1sB,IACpBA,EAAEssB,OAAOiC,OAASvuB,EAAEssB,OAAOiC,MAAM7U,OAAS,GAC5C0yD,EAAYpsE,EAAEssB,OAAOiC,MACvB,EA0MMlnB,UAAQ,EACR1I,MAAO,CAAE+H,QAAS,QAClB,aAAW,yBACXY,OAAO,8CAET47D,EAAAtkE,cAAA,MAAA,CAAKgR,UAAU,iBAAiBjN,QAASgqE,EAAmBhuE,MAAO,CAAE4D,OAAQ,UAAWoE,cAAe,SAAUC,WAAY,SAAUF,QAAS,OAAQu4D,UAAW,SAAUI,QAAS,SACpL6D,EAAAtkE,cAAA,MAAA,CAAKD,MAAO,CAAE+H,QAAS,OAAQC,cAAe,SAAUC,WAAY,SAAU49D,IAAK,QACjFtB,EAAAtkE,cAAA,MAAA,CAAKD,MAAO,CAAE+H,QAAS,OAAQC,cAAe,MAAOC,WAAY,SAAU49D,IAAK,SAC9EtB,EAAAtkE,cAAC2rE,SACDrH,EAAAtkE,cAAA,IAAA,CAAGD,MAAO,CAAE6D,OAAQ,EAAGE,WAAY,SAAU,iBAE/CwgE,EAAAtkE,cAAA,IAAA,CAAGgiB,GAAG,sBAAsBjiB,MAAO,CAAE6D,OAAQ,EAAGC,SAAU,OAAQ4Y,MAAO,SAAU,oGAIpFuvD,EAAclxD,OAAS,GACtBwpD,EAAAtkE,cAAA,MAAA,CAAKgR,UAAU,iBAAiBjR,MAAO,CAAE+H,QAAS,OAAQsmE,SAAU,OAAQxI,IAAK,MAAOyI,UAAW,OAAQrmE,WAAY,WACrHs8D,EAAAtkE,cAAA,OAAA,CAAMD,MAAO,CAAE+D,WAAY,IAAK2Y,MAAO,OAAQ5Y,SAAU,OAAQiiE,YAAa,MAAOwI,UAAW,WAAY,mBAC3GtC,EAAc/6D,KAAI,CAACob,EAAMmO,IACxB8pC,EAAAtkE,cAAA,OAAA,CACE2lB,IAAK6U,EACLz6B,MAAO,CACLwI,WAAY,OACZkU,MAAO,UACPtU,aAAc,MACds4D,QAAS,WACT58D,SAAU,OACViiE,YAAa,MACb3F,aAAc,MACdhwB,OAAQ,iBACRroC,QAAS,OACTE,WAAY,SACZ49D,IAAK,MACLjiE,OAAQ,WAEVI,QAAU3C,IACRA,EAAEwsB,kBArNOvB,KACzB8/C,EAAe9/C,EAAK,EAqNJkiD,CAAkBliD,EAAK,GAGzBi4C,EAAAtkE,cAAA,OAAA,CACE+D,QAAS3C,IAAOA,EAAEwsB,kBA5OV4gD,KACxB,MAAMC,EAAWzC,EAAclnD,QAAO,CAACxP,EAAGo5D,IAAQA,IAAQF,IAC1DvC,EAAiBwC,GACb5C,GACFA,EAAa4C,EACf,EAuOqDE,CAAiBn0C,EAAM,EAC5Dz6B,MAAO,CACL4D,OAAQ,UACR8Y,MAAO,OACP3Y,WAAY,OACZD,SAAU,OACViiE,YAAa,MACb8I,WAAY,OACZxO,WAAY,GAEd38D,MAAM,cACN,aAAY,UAAU4oB,EAAKzH,QAC5B,KAGAyH,EAAKzH,KAAK,MAAIyH,EAAK3N,KAAO,MAAMmwD,QAAQ,GAAG,aAjOlCC,MACxB,IAAK5C,EAAa,OAAO,KAEzB,MAAM6C,EAAU7C,EAAYjsE,KAAKimB,WAAW,UACtC8oD,EAAS9C,EAAYjsE,KAAKimB,WAAW,SACrC+oD,EAA6B,oBAArB/C,EAAYjsE,KAE1B,OACEqkE,EAAAtkE,cAAA,MAAA,CACED,MAAO,CACLoyB,SAAU,QACVzW,IAAK,EACLC,KAAM,EACNE,MAAO,EACPD,OAAQ,EACR6B,gBAAiB,qBACjB3V,QAAS,OACTQ,eAAgB,SAChBN,WAAY,SACZusB,OAAQ,KAEVxwB,QAASkqE,GAET3J,EAAAtkE,cAAA,MAAA,CACED,MAAO,CACL0d,gBAAiB,QACjBgjD,QAAS,OACTt4D,aAAc,MACduV,SAAU,MACVwxD,UAAW,MACXvwB,SAAU,OACVxsB,SAAU,YAEZpuB,QAAS3C,GAAKA,EAAEwsB,mBAEhB02C,EAAAtkE,cAAA,SAAA,CACE+D,QAASkqE,EACTluE,MAAO,CACLoyB,SAAU,WACVzW,IAAK,OACLG,MAAO,OACPtT,WAAY,OACZ4nC,OAAQ,OACRtsC,SAAU,OACVF,OAAQ,UACR8Y,MAAO,SAEV,KAID6nD,EAAAtkE,cAAA,KAAA,CAAID,MAAO,CAAEsuE,UAAW,EAAGlO,aAAc,SAAW+L,EAAYtnD,MAE/DmqD,GACCzK,EAAAtkE,cAAA,MAAA,CACEivB,IAAK8tC,IAAIoS,gBAAgBjD,GACzBh9C,IAAKg9C,EAAYtnD,KACjB7kB,MAAO,CAAE2d,SAAU,OAAQwxD,UAAW,UAIzCF,GACC1K,EAAAtkE,cAAA,MAAA,CAAKD,MAAO,CACVmgE,WAAY,WACZkP,SAAU,aACVF,UAAW,OACXvwB,SAAU,OACV8hB,QAAS,OACThjD,gBAAiB,UACjBtV,aAAc,QAEb40D,IAAIoS,gBAAgBjD,IAIxB+C,GACC3K,EAAAtkE,cAAA,SAAA,CACEivB,IAAK8tC,IAAIoS,gBAAgBjD,GACzBnsE,MAAO,CAAEqI,MAAO,OAAQC,OAAQ,OAAQ8nC,OAAQ,QAChD1sC,MAAOyoE,EAAYtnD,QAIrBmqD,IAAYC,IAAWC,GACvB3K,EAAAtkE,cAAA,MAAA,CAAKD,MAAO,CAAE0gE,QAAS,OAAQJ,UAAW,WAAY,6CAKtD,EA+ILyO,GACG,EEjUGO,GAAuBx1D,MAAOy1D,EAAUC,EAAa,UAAWC,EAAgB,MAE3F,MAAMC,EACK,GAMLC,EAAiB,CACrBC,QAASF,EACTG,aAAcH,EACdI,SAAUJ,EACVK,YATc,GAUdC,cATgB,GAUhB/8B,SATU,IAYNg9B,EAAgBN,EAAeH,IAAeG,EAAeC,QAG7DM,EAA+B,aAAfV,EAA4B,EAAI,EAGhDW,EArCkBC,CAACb,GAGlBA,EAkCgBa,CAAkBb,GAGnCc,EAAiB,CACrBH,cAAeA,EACfD,cAAeA,EACfK,mBAAoB,IACfH,IAKP,GAAIV,GAAiBA,EAAc10D,OAAS,EAAG,CAE7C,MAAMw1D,QAAuBl2D,QAAQC,IACnCm1D,EAAcv+D,KAAI4I,SACT,IAAIO,SAAQ,CAACmzC,EAASgjB,KAC3B,MAAMC,EAAS,IAAInhD,WACnBmhD,EAAOlhD,OAAS,KAEd,MAAMmhD,EAAeD,EAAOjhD,OAAO1K,MAAM,KAAK,GAC9C0oC,EAAQ,CACNnH,SAAU/5B,EAAKzH,KACfqmC,YAAa5+B,EAAKpsB,KAClBye,KAAM2N,EAAK3N,KACXgyD,SAAUD,GACV,EAEJD,EAAOhhD,QAAU,IAAM+gD,EAAO,IAAI1vD,MAAM,uBAAuBwL,EAAKzH,SACpE4rD,EAAO/gD,cAAcpD,EAAK,OAKhC+jD,EAAeO,YAAcL,CAC/B,CACA,OAAOF,CAAc,EASVQ,GAA0B/2D,MAAOu2D,EAAgBS,KAG5D,MAAMC,EAAgBjO,GAAeO,eAAe1hD,QAAQ,uBAAwB,IAEpF,IAAIqvD,EAEFA,EADmB,0BAAjBF,EACc,GAAGC,mBACO,6BAAjBD,EACO,GAAGC,8BAEH,GAAGjO,GAAeO,kBAAkByN,IAItD,IACE,MAAM5J,QAAiB3gD,MAAMyqD,EAAe,CAC1CtoC,OAAQ,OACRrB,QAAS,CACP,eAAgB,oBAElBljB,KAAMf,KAAKC,UAAUgtD,KAGvB,IAAKnJ,EAASt0C,GAAI,CAChB,MAAMq+C,QAAkB/J,EAAS5jE,OAEjC,OADAwe,QAAQC,MAAM,iCAAkCmlD,EAASgK,OAAQD,GAC1D,CACLtP,SAAS,EACTuP,OAAQhK,EAASgK,OACjBnvD,MAAOkvD,EAEX,CAGA,MAAO,CACLtP,SAAS,EACTznD,WAHiBgtD,EAASr0C,OAK7B,CAAC,MAAO9Q,GAEP,OADAD,QAAQC,MAAM,oCAAqCA,GAC5C,CACL4/C,SAAS,EACT5/C,MAAOA,EAAMzE,QAEjB,GC7HW6zD,GAA4BA,CAACC,EAAeC,IACvD9M,EAAAtkE,cAAC4rE,GAAmB,CAClBC,aAAel8C,GACbwhD,EAAc,IACRC,GAAc,CAAA,EAClB5B,cAAe7/C,MAWV0hD,GAA2BF,IACtC,IAAIG,EAAmB,KA0CvB,MAAO,CAAEC,aAxCY13D,MAAOy1D,EAAUC,EAAYC,EAAgB,MAChE,IACE,MAAMgC,QAAgBnC,GACpBC,EACAC,EACAC,GAEIiC,QAAsBb,GAAwBY,EAAS,yBAEzDC,EAAc/P,SAChB4P,EAAmB,CACjB5P,SAAS,EACTgQ,UAAWD,EAAcx3D,KAAKA,KAAKy3D,UACnCC,UAAWF,EAAcx3D,KAAKA,KAAK03D,WAErCR,GAAcS,IAAa,IACtBA,EACHF,UAAWD,EAAcx3D,KAAKA,KAAKy3D,UACnCC,UAAWF,EAAcx3D,KAAKA,KAAK03D,gBAGrC9vD,QAAQC,MAAM,OAAOytD,4BAAsCkC,EAAcx3D,MAAMoD,SAAWo0D,EAAc3vD,OACxGwvD,EAAmB,CACjB5P,SAAS,EACT5/C,MAAO2vD,EAAcx3D,MAAMoD,SAAWo0D,EAAc3vD,OAEtDqvD,GAAcS,IAAa,IAAIA,EAAUC,gBAAiBJ,EAAcx3D,MAAMoD,SAAWo0D,EAAc3vD,UAE1G,CAAC,MAAOA,GACPD,QAAQC,MAAM,qBAAqBytD,mBAA6BztD,GAChEwvD,EAAmB,CACjB5P,SAAS,EACT5/C,MAAOA,EAAMzE,SAEf8zD,GAAcS,IAAa,IAAIA,EAAUC,gBAAiB/vD,EAAMzE,WAClE,GAKqBy0D,oBAFKA,IAAMR,EAEU,EASjCS,GAAyBA,CAACT,EAAkB/B,EAAa,WAChE+B,IAAqBA,EAAiB5P,QACjC,wDAAwD6N,MAAe+B,EAAiBxvD,kEACtFwvD,GAAoBA,EAAiB5P,SAAW4P,EAAiBK,WAAaL,EAAiBI,UACjG,QAAQnC,0DAAmE+B,EAAiBK,8BAA8BL,EAAiBI,wHACzIJ,GAAoBA,EAAiB5P,QACvC,QAAQ6N,6IAWNyC,GAAexC,GACtBA,GAAiBA,EAAc10D,OAAS,EACnC,kBAAkB00D,EAAc10D,0BAElC,GC7FT,IAAIm3D,GAAqB,KAMlB,MAQMC,GAAuBA,KAClC,IAAKD,GAEH,OADApwD,QAAQ+kD,KAAK,oDACN,CAAE,EAEX,MAAMwK,EAAaa,GAAmBb,WACtC,OAAQA,GAAoC,iBAAfA,EAA2BA,EAAa,CAAE,CAAA,EAiD5De,GAA6BA,CAACC,EAAW,MACpD,MAAMC,EAAcH,MAA0B,CAAE,EAC1CI,EAAeF,GAAgC,iBAAbA,EAAwBA,EAAW,CAAE,EAE7E,MAAO,IACFC,EACHE,MAAOD,EAAaC,OAASF,EAAYE,MACzC3tD,KAAM0tD,EAAa1tD,MAAQytD,EAAYztD,KACvC4tD,SAAUF,EAAaG,UAAYJ,EAAYG,SAChD,EC9EUE,GAA+BA,IAClCvmD,IAEDA,GAAkC,KAArBA,EAAUvM,QAC1BW,YAAW,KACT,MAAMoyD,EAAa/yE,SAASynE,cAAc,4BAC1C,GAAIsL,EAAY,CACdA,EAAWxmE,MAAQ,eACnB,MAAMymE,EAAa,IAAIC,MAAM,QAAS,CAAEzK,SAAS,IACjDuK,EAAWx4D,cAAcy4D,GAGzBryD,YAAW,KACT,MAAMrV,EAAatL,SAASynE,cAAc,wFAC1C,GAAIn8D,EAAY,CACd,MAAMg9D,EAAiB,IAAIC,WAAW,YAAa,CACjDC,SAAS,EACTpuD,YAAY,EACZquD,KAAMrkE,SAERkH,EAAWiP,cAAc+tD,EAC3B,IACC,IACL,IACC,KAGE,CAAExG,SAAS,IAUToR,GAAwB3mD,GAC9BA,GAAkC,KAArBA,EAAUvM,OAGrBuM,EAFE,eCpBE4mD,GAAiBR,IAC5B,MAAMS,EAAeT,GAAO3yD,QAAU,GAEtC,OAAKozD,EAnBsBT,OACtBA,GAA0B,iBAAVA,IAKF,uIAEDplD,KAAKolD,EAAM3yD,QAqBxBqzD,CAAaD,GAUX,CACLtR,SAAS,GAVF,CACLA,SAAS,EACTG,cAAe,+DACfI,eAAgB,IAChBH,WAAY,QACZE,mBAAmB,GAfd,CACLN,SAAS,EACTG,cAAe,iCACfI,eAAgB,IAChBH,WAAY,QACZE,mBAAmB,EAgBtB,ECtCUkR,GAAmBA,EAAG9B,aAAa,CAAE,EAAED,gBAAgBA,OAAUiB,WAAW,CAAA,MAEvF,MAAMe,ECI6BC,GAAGhC,aAAa,CAAE,EAAED,gBAAgBA,OAAUiB,WAAW,CAAA,MAC5F,MAAMb,aAAEA,EAAYO,oBAAEA,GAAwBT,GAAwBF,GAItE,MAAO,CAELkC,YAAa,CACXh2D,QAAS,qUAKT0C,QAAS,CAAC,6BAA8B,qBACxCW,cAAc,EACdpC,KAAO8sD,GACmB,+BAAxBA,EAAUj/C,UACN,2BACA,SAIRmnD,yBAA0B,CACxBj2D,QAAS,6BACTqC,SAAW0rD,IAET,MAAMiH,EAAcH,KACdqB,EAAc,IACflB,EACHmB,YAAapI,EAAUj/C,UACvBomD,MAAOH,EAASG,OAASF,EAAYE,MACrC3tD,KAAMwtD,EAASxtD,MAAQytD,EAAYztD,KACnC4tD,SAAUJ,EAASK,UAAYJ,EAAYG,UAE7CrB,EAAcoC,EAAY,EAE5Bj1D,KAAM,yBAERm1D,sBAAuB,CACrBp2D,QAAS,0CACT0C,QAAS,CAAC,SAAU,SAAU,SAAU,cAAe,YAAa,QAAS,SAC7EW,cAAc,EACdhB,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAaqB,iBAAkBtI,EAAUj/C,WAAW,EAExE7N,KAAM,wBAERq1D,qBAAsB,CACpBt2D,QAAS,gCACT0C,QAAS,CAAC,SAAU,UAAW,OAAQ,SAAU,SACjDW,cAAc,EACdhB,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAauB,QAASxI,EAAUj/C,WAAW,EAE/D7N,KAAM,2BAERu1D,wBAAyB,CACvBx2D,QAAS,yCACT0C,QAAS,CAAC,MAAO,MACjBW,cAAc,EACdhB,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAayB,gBAAiB1I,EAAUj/C,WAAW,EAEvE7N,KAAO8sD,GAAsC,QAAxBA,EAAUj/C,UAC3B,sBACA,MACE,MAAM4nD,EAAmB5B,GAA2BC,GACpD,OAAK2B,EAAiBxB,MACjBwB,EAAiBnvD,KACjBmvD,EAAiBvB,SACf,uBADgC,wBADJ,oBADC,oBAIrC,EAND,IAQNwB,oBAAqB,CACnB32D,QAAS,iCACT6C,UA5EsBgxD,GAA0BC,EAAeC,GA6E/DrxD,QAAS,CAAC,YACVW,cAAc,EACdhB,SAAUA,KACR,MAAM2yD,EAAcH,KACpBf,EAAc,IAAIkB,EAAa4B,iBAAiB,GAAM,EAExD31D,KAAO8sD,IACL,MAAM2I,EAAmB5B,GAA2BC,GACpD,OAAK2B,EAAiBxB,MACjBwB,EAAiBnvD,KACjBmvD,EAAiBvB,SACf,uBADgC,wBADJ,oBADC,oBAGP,GAGjC0B,mBAAoB,CAClB72D,QAAS,sBACT82D,kBAAoB5B,GAAUQ,GAAcR,GAC5C7yD,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAaE,MAAOnH,EAAUj/C,WAAW,EAE7D7N,KAAO8sD,IACL,MAAM2I,EAAmB5B,GAA2BC,GACpD,OAAK2B,EAAiBnvD,KACjBmvD,EAAiBvB,SACf,uBADgC,wBADJ,mBAEN,GAGjC4B,kBAAmB,CACjB/2D,QAAS,qBACTqC,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAaztD,KAAMwmD,EAAUj/C,WAAW,EAE5D7N,KAAO8sD,GACoB+G,GAA2BC,GAC9BI,SACf,uBADgC,yBAI3C6B,sBAAuB,CACrBh3D,QAAS,2DACT82D,kBAAmBzB,KACnBhzD,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAaG,SAAUM,GAAqB1H,EAAUj/C,YAAY,EAEtF7N,KAAM,wBAERg2D,qBAAsB,CACpBj3D,QAAU+tD,IACR,MAAMiH,EAAcH,KACd6B,EAAmB5B,GAA2BC,GAE9CmC,EAAWvC,GAAYK,EAAY7C,eAGzC,IAAIgF,EAAgBT,EAAiBvB,SAOrC,MAN2B,0BAAvBpH,EAAUhwD,UAAwCgwD,EAAUj/C,UAC9DqoD,EAAgBpJ,EAAUj/C,UAChBqoD,GAAwC,0BAAvBpJ,EAAUhwD,WACrCo5D,EAAgBpJ,EAAUj/C,WAIrB,uFAAS4nD,EAAiBnvD,MAAQ,0BACxBmvD,EAAiBxB,OAAS,8BACtBiC,GAAiB,sCACTnC,EAAYqB,kBAAoB,4BAC1CrB,EAAYuB,SAAW,sCACbvB,EAAYmB,aAAe,iBAAiBe,4CAC3B,EAEhDx0D,QAAS,CAAC,gBAAiB,qBAC3BW,cAAc,EACdoe,WAAY,CAAC,MAAO,QACpBpf,SAAU7F,UACR,GAA4B,kBAAxBuxD,EAAUj/C,UAA+B,CAC3C,MAAMkmD,EAAcH,KACd6B,EAAmB5B,GAA2BC,GAC9C9C,EAAW,CACfiD,MAAOwB,EAAiBxB,OAAS,GACjCkC,SAAUV,EAAiBnvD,MAAQ,GACnC4tD,SAAUuB,EAAiBvB,UAAY,GACvCgB,YAAanB,EAAYmB,aAAe,GAExCE,iBAAkBrB,EAAYqB,kBAAoB,GAClDE,QAASvB,EAAYuB,SAAW,UAG5BrC,EAAajC,EAAU,cAAe+C,EAAY7C,eAAiB,GAC3E,GAEFlxD,KAAO8sD,GACuB,kBAAxBA,EAAUj/C,UACL,uBAEA,SAIbuoD,qBAAsB,CACpBr3D,QAASA,IACA00D,GAAuBD,IAAuB,uBAEvD/xD,QAAS,CAAC,qBACVW,cAAc,EACdoe,WAAY,CAAC,OACbxgB,KAAM,SAET,EDjMuB80D,CAAsB,CAAEhC,aAAYD,gBAAeiB,aACrEuC,EEGiCC,GAAGxD,aAAa,CAAE,EAAED,gBAAgBA,OAAUiB,WAAW,CAAA,MAChG,MAAMb,aAAEA,EAAYO,oBAAEA,GAAwBT,GAAwBF,GAItE,MAAO,CAEL0D,gBAAiB,CACfx3D,QAAS,6bAKT0C,QAAS,CAAC,6BAA8B,qBACxCW,cAAc,EACdoe,WAAY,CAAC,OACbxgB,KAAO8sD,GACmB,+BAAxBA,EAAUj/C,UACN,4BACA,SAIR2oD,0BAA2B,CACzBz3D,QAAS,kDACT0C,QAAS,CACP,OACA,QACA,YACA,SACA,QACA,UACA,UACA,UACA,SACA,UACA,aACA,QACA,SACA,YACA,SACA,oBACA,uBACA,QACA,aAEFW,cAAc,EACdhB,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAajyB,SAAUgrB,EAAUj/C,WAAW,EAEhE7N,KAAM,2BAERy2D,wBAAyB,CACvB13D,QAAS,wCACTqC,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAa2C,eAAgB5J,EAAUj/C,WAAW,EAEtE7N,KAAM,gCAER22D,6BAA8B,CAC5B53D,QAAS,sDACTqC,SAAW0rD,IAET,MAAMiH,EAAcH,KACdqB,EAAc,IACflB,EACHmB,YAAapI,EAAUj/C,UACvBomD,MAAOH,EAASG,OAASF,EAAYE,MACrC3tD,KAAMwtD,EAASxtD,MAAQytD,EAAYztD,KACnC4tD,SAAUJ,EAASK,UAAYJ,EAAYG,UAE7CrB,EAAcoC,EAAY,EAE5Bj1D,KAAM,+BAER42D,4BAA6B,CAC3B73D,QAAS,yCACT0C,QAAS,CAAC,MAAO,MACjBW,cAAc,EACdhB,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAayB,gBAAiB1I,EAAUj/C,WAAW,EAEvE7N,KAAO8sD,GAAsC,QAAxBA,EAAUj/C,UAC3B,0BACA,MACE,MAAM4nD,EAAmB5B,GAA2BC,GACpD,OAAK2B,EAAiBxB,MACjBwB,EAAiBnvD,KACjBmvD,EAAiBvB,SACf,2BADgC,4BADJ,wBADC,wBAIrC,EAND,IAQN2C,wBAAyB,CACvB93D,QAAS,iCACT6C,UA/FsBgxD,GAA0BC,EAAeC,GAgG/DrxD,QAAS,CAAC,YACVW,cAAc,EACdhB,SAAUA,KACR,MAAM2yD,EAAcH,KACpBf,EAAc,IAAIkB,EAAa4B,iBAAiB,GAAM,EAExD31D,KAAO8sD,IACL,MAAM2I,EAAmB5B,GAA2BC,GACpD,OAAK2B,EAAiBxB,MACjBwB,EAAiBnvD,KACjBmvD,EAAiBvB,SACf,2BADgC,4BADJ,wBADC,wBAGH,GAGrC4C,uBAAwB,CACtB/3D,QAAS,sBACT82D,kBAAoB5B,GAAUQ,GAAcR,GAC5C7yD,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAaE,MAAOnH,EAAUj/C,WAAW,EAE7D7N,KAAO8sD,IACL,MAAM2I,EAAmB5B,GAA2BC,GACpD,OAAK2B,EAAiBnvD,KACjBmvD,EAAiBvB,SACf,2BADgC,4BADJ,uBAEF,GAGrC6C,sBAAuB,CACrBh4D,QAAS,qBACTqC,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAaztD,KAAMwmD,EAAUj/C,WAAW,EAE5D7N,KAAO8sD,GACoB+G,GAA2BC,GAC9BI,SACf,2BADgC,6BAI3C8C,0BAA2B,CACzBj4D,QAAS,2DACT82D,kBAAmBzB,KACnBhzD,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAaG,SAAUM,GAAqB1H,EAAUj/C,YAAY,EAEtF7N,KAAM,4BAEJi3D,yBAA0B,CAC5Bl4D,QAAU+tD,IACR,MAAMiH,EAAcH,KACd6B,EAAmB5B,GAA2BC,GAE9CmC,EAAWvC,GAAYK,EAAY7C,eAGzC,IAAIgF,EAAgBT,EAAiBvB,SAOrC,MAN2B,8BAAvBpH,EAAUhwD,UAA4CgwD,EAAUj/C,UAClEqoD,EAAgBpJ,EAAUj/C,UAChBqoD,GAAwC,8BAAvBpJ,EAAUhwD,WACrCo5D,EAAgBpJ,EAAUj/C,WAIrB,yFAAS4nD,EAAiBnvD,MAAQ,0BACxBmvD,EAAiBxB,OAAS,8BACtBiC,GAAiB,6BAClBnC,EAAYjyB,UAAY,qCAChBiyB,EAAY2C,gBAAkB,sCAC7B3C,EAAYmB,aAAe,iBAAiBe,4CAC3B,EAEhDx0D,QAAS,CAAC,gBAAiB,qBAC3BW,cAAc,EACdhB,SAAU7F,UACR,GAA4B,kBAAxBuxD,EAAUj/C,UAA+B,CAC3C,MAAMkmD,EAAcH,KACd6B,EAAmB5B,GAA2BC,GAC9C9C,EAAW,CACfiD,MAAOwB,EAAiBxB,OAAS,GACjCkC,SAAUV,EAAiBnvD,MAAQ,GACnC4tD,SAAUuB,EAAiBvB,UAAY,GACvCgD,eAAgBnD,EAAYjyB,UAAY,GACxCozB,YAAanB,EAAYmB,aAAe,GAExCiC,iBAAkBpD,EAAY2C,gBAAkB,UAG5CzD,EAAajC,EAAU,gBAAiB+C,EAAY7C,eAAiB,GAC7E,GAEFlxD,KAAO8sD,GACuB,kBAAxBA,EAAUj/C,UACL,2BAEA,SAIbupD,yBAA0B,CACxBr4D,QAASA,IACA00D,GAAuBD,IAAuB,yBAEvD/xD,QAAS,CAAC,qBACVW,cAAc,EACdoe,WAAY,CAAC,OACbxgB,KAAM,SAET,EFlN2Bs2D,CAA0B,CAAExD,aAAYD,gBAAeiB,aAC7EuD,EGE6BC,GAAGxE,aAAa,CAAE,EAAED,gBAAgBA,OAAUiB,WAAW,CAAA,MAC5F,MAAMb,aAAEA,EAAYO,oBAAEA,GAAwBT,GAAwBF,GAItE,MAAO,CAEL0E,6BAA8B,CAC5Bx4D,QAAS,yCACTqC,SAAW0rD,IAET,MAAMiH,EAAcH,KACdqB,EAAc,IACflB,EACHx6C,QAASuzC,EAAUj/C,UACnBomD,MAAOH,EAASG,OAASF,EAAYE,MACrC3tD,KAAMwtD,EAASxtD,MAAQytD,EAAYztD,KACnC4tD,SAAUJ,EAASK,UAAYJ,EAAYG,UAE7CrB,EAAcoC,EAAY,EAE5Bj1D,KAAM,yBAERw3D,sBAAuB,CACrBz4D,QAAS,2CACT0C,QAAS,CACP,wBACA,sBACA,wBACA,qBACA,oBACA,mBACA,oBACA,mBACA,iBACA,uBAEFW,cAAc,EACdhB,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAa0D,SAAU3K,EAAUj/C,WAAW,EAEhE7N,KAAM,4BAER03D,yBAA0B,CACxB34D,QAAS,8BACTqC,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAamB,YAAapI,EAAUj/C,WAAW,EAEnE7N,KAAM,2BAER23D,wBAAyB,CACvB54D,QAAS,kDACT0C,QAAS,CAAC,MAAO,MACjBW,cAAc,EACdhB,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAayB,gBAAiB1I,EAAUj/C,WAAW,EAEvE7N,KAAO8sD,GAAsC,QAAxBA,EAAUj/C,UAC3B,sBACA,yBAEN+pD,oBAAqB,CACnB74D,QAAS,2BACT6C,UAhEsBgxD,GAA0BC,EAAeC,GAiE/DrxD,QAAS,CAAC,YACVW,cAAc,EACdhB,SAAUA,KACR,MAAM2yD,EAAcH,KACpBf,EAAc,IAAIkB,EAAa4B,iBAAiB,GAAM,EAExD31D,KAAM,yBAER63D,sBAAuB,CACrB94D,QAAS,gDACT0C,QAAS,CAAC,MAAO,MACjBW,cAAc,EACdhB,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAa+D,iBAAkBhL,EAAUj/C,UAAU1H,eAAe,EAEtFnG,KAAO8sD,GAAsC,QAAxBA,EAAUj/C,UAC3B,gCACA,yBAENkqD,8BAA+B,CAC7Bh5D,QAAS,8DACT0C,QAAS,CACP,OACA,QACA,YACA,SACA,QACA,UACA,UACA,UACA,SACA,UACA,aACA,QACA,SACA,YACA,SACA,oBACA,uBACA,QACA,aAEFW,cAAc,EACdhB,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAaiE,gBAAiBlL,EAAUj/C,WAAW,EAEvE7N,KAAM,oCAGRi4D,iCAAkC,CAChCl5D,QAAS,qFACT82D,kBAAmBzB,KACnBhzD,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAaoD,iBAAkB3C,GAAqB1H,EAAUj/C,YAAY,EAE9F7N,KAAM,yBAERk4D,sBAAuB,CACrBn5D,QAAS,yDACTe,WAAY,CACVS,MAAO,CACL,UACA,SACA,SACA,iBACA,iBACA,WACA,OACA,eACA,eACA,kBACA,KACA,aACA,uBACA,wBACA,sBACA,kBACA,mBACA,QACA,OACA,WACA,WACA,MACA,qBACA,SACA,eACA,YACA,eACA,QACA,iBACA,MACA,QACA,SACA,OACA,aACA,eACA,WACA,iBACA,UACA,OACA,MACA,UACA,SACA,aACA,UACA,WACA,QACA,kBACA,YACA,gBACA,qBACA,kBACA,OACA,qBACA,YACA,qBACA,2BACA,SACA,QACA,QACA,aACA,YACA,aACA,OACA,mBACA,YACA,OACA,gBACA,UACA,OACA,eACA,wBACA,gBACA,kBACA,iBACA,kBACA,2BACA,kBACA,uBACA,iBACA,eACA,eACA,gBACA,iBACA,kBACA,YACA,uCACA,gBACA,eACA,aACA,MACA,wBACA,MACA,SACA,gBACA,MACA,MACA,YACA,QACA,aACA,sBACA,SACA,YACA,QACA,2BACA,iBACA,eACA,cACA,eACA,gBACA,0BACA,WACA,UACA,uBACA,SACA,WACA,OACA,WACA,MACA,WACA,MACA,MACA,SACA,OACA,MACA,sBACA,aACA,UACA,SACA,WACA,mBACA,aACA,mBACA,eACA,WACA,SACA,OACA,SACA,YACA,iBACA,YACA,eACA,cACA,aACA,iBACA,QACA,aACA,iBACA,aACA,QACA,SACA,gBACA,UACA,qBACA,QACA,OACA,QACA,MACA,SACA,mBACA,aACA,oBACA,cACA,SACA,SACA,WACA,UACA,qBACA,cACA,MACA,OACA,SACA,aACA,kBACA,MACA,MACA,YACA,SACA,eACA,WACA,oBACA,uBACA,SACA,WACA,SACA,UACA,YACA,YACA,eACA,KACA,MACA,kBACA,mBACA,WACA,mBACA,WACA,MACA,UACA,eACA,qBACA,cACA,aACA,MACA,SACA,UACA,cACA,yCACA,2BACA,UACA,YACA,cACA,wBACA,6BACA,qBACA,kBACA,eACA,WACA,uBACA,QACA,SACA,UACA,oBACA,oBACA,QACA,IACA,MACA,QACA,YACA,wBACA,kBACA,YACA,iBACA,KACA,QACA,MACA,UACA,aACA,aACA,cACA,mBACA,eACA,UACA,SACA,YACA,MACA,4BACA,2BACA,iBACA,QACA,OACA,MACA,kBACA,UACA,cACA,QACA,MACA,eACA,yBACA,qBACA,QACA,QACA,iBACA,OACA,MACA,MACA,YACA,QACA,UACA,aACA,UACA,MACA,6BACA,aACA,2CACA,UACA,eACA,OACA,QACA,WACA,eACA,UACA,SACA,mBACA,YACA,gBACA,kBACA,MACA,MACA,MACA,WACA,wBACA,MACA,OACA,QACA,MACA,QACA,kCAEFF,IAAK,EACLK,IAAK,GAEP0B,cAAc,EACdhB,SAAW0rD,IACT,MAAMiH,EAAcH,KACpBf,EAAc,IAAIkB,EAAaoE,SAAUrL,EAAUj/C,WAAW,EAEhE7N,KAAO8sD,GACDA,EAAUj/C,WAAai/C,EAAUj/C,UAAUnL,SAAS,kCAC/C,mCAEA,yBAIb01D,iCAAkC,CAChCr5D,QAAS,yDACTqC,SAAW0rD,IAET,MAAMiH,EAAcH,KACdyE,EAAkBtE,EAAYoE,UAAY,GAC1CG,EAAqBxL,EAAUj/C,UAG/B0qD,EAAgB33D,MAAMK,QAAQo3D,GAChC,IAAIA,GACJA,EAAgB9xD,MAAM,KAAK5T,KAAIuD,GAAKA,EAAEoL,SAGpCk3D,EAAmBD,EAAc/xD,QAAOtQ,GAAW,mCAANA,IAG7CuiE,EAAoB73D,MAAMK,QAAQu3D,IAAqBA,EAAiBh8D,OAAS,EACnF,IAAIg8D,EAAkBF,GAAoBx3D,KAAK,MAC/Cw3D,EAEJzF,EAAc,IACTkB,EACHoE,SAAUM,EACVC,iBAAkBJ,GAClB,EAEJt4D,KAAM,yBAER24D,sBAAuB,CACrB55D,QAAS,2C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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}
1
+ {"version":3,"file":"access-qa-bot.umd.cjs","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/react-chatbotify/dist/index.js","../node_modules/@rcb-plugins/html-renderer/dist/index.js","../node_modules/@rcb-plugins/markdown-renderer/dist/index.js","../node_modules/@rcb-plugins/input-validator/dist/index.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/native.js","../node_modules/uuid/dist/esm-browser/v4.js","../src/config/constants.js","../src/components/BotController.js","../src/hooks/useLoginStateTransition.js","../src/hooks/useThemeColors.js","../src/contexts/FormContext.js","../src/components/icons/BaseIcon.js","../src/components/icons/RefreshIcon.js","../src/components/NewChatButton.js","../src/components/UserIcon.js","../src/components/LoginButton.js","../src/hooks/useHandleAIQuery.js","../src/hooks/useGetLastUserQuery.js","../src/hooks/useKeyboardNavigation.js","../src/utils/flows/qa-flow.js","../src/utils/error-handler.js","../src/components/icons/UploadIcon.js","../src/components/FileUploadComponent.js","../src/hooks/useScreenshotCapture.js","../src/utils/api-utils.js","../src/utils/flows/tickets/ticket-flow-utils.js","../src/utils/flow-context-utils.js","../src/utils/optional-field-utils.js","../src/utils/validation-utils.js","../src/utils/flows/ticket-flow.js","../src/utils/flows/tickets/access-login-flow.js","../src/utils/flows/tickets/affiliated-login-flow.js","../src/utils/flows/tickets/general-help-flow.js","../src/utils/flows/security-flow.js","../src/utils/create-bot-flow.js","../src/utils/flows/main-menu-flow.js","../src/components/QABot.js","../src/hooks/useChatBotSettings.js","../src/hooks/useUpdateHeader.js","../src/hooks/useRingEffect.js","../src/hooks/useFocusableSendButton.js","../src/lib.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import \"./style.css\";\nimport { jsxs as X, jsx as l, Fragment as nA } from \"react/jsx-runtime\";\nimport * as q from \"react\";\nimport { forwardRef as iA, createContext as vA, useContext as PA, Fragment as UA, useRef as AA, useState as F, useCallback as x, useEffect as V, isValidElement as se, createElement as _A, useMemo as dA } from \"react\";\nimport Te from \"react-dom/server\";\nconst Z = {\n AUDIO_BUTTON: \"audio-button\",\n NOTIFICATION_BUTTON: \"notification-button\",\n CLOSE_CHAT_BUTTON: \"close-chat-button\",\n SEND_MESSAGE_BUTTON: \"send-button\",\n VOICE_MESSAGE_BUTTON: \"voice-button\",\n FILE_ATTACHMENT_BUTTON: \"file-attachment-button\",\n EMOJI_PICKER_BUTTON: \"emoji-button\"\n}, Me = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20width='32'%20height='32'%20viewBox='0%200%2042%2042'%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:4'%20d='M17%209a8%208%200%200%201-8%208%208%208%200%200%201-8-8%208%208%200%200%201%208-8%208%208%200%200%201%208%208Zm0%200'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3cpath%20style='fill:none;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke:%23b00000;stroke-opacity:1;stroke-miterlimit:10'%20d='M14.66%2014.66%203.34%203.34'%20transform='rotate(.086)%20scale(1.77778)'/%3e%3c/svg%3e\", $A = \"data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20xml:space='preserve'%20viewBox='0%200%201000%201000'%3e%3crect%20width='100%25'%20height='100%25'%20fill='%23fff'/%3e%3cg%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-99%20362)%20scale(3.4003)'/%3e%3cpath%20d='M0%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(180%20106%20386)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-46%20282)%20scale(3.4003)'/%3e%3cpath%20d='M19%2065h4l5%204v1H14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20-3%20240)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(236%20175)%20scale(3.4003)'/%3e%3crect%20width='45'%20height='30'%20x='-22.5'%20y='-15'%20rx='1.5'%20ry='1.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20139%20600)%20scale(3.4003)'/%3e%3cpath%20d='M184%2075q14%200%2014%2017%200%2016-14%2016Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='4'%20x='-12.5'%20y='-2'%20rx='.2'%20ry='.2'%20style='stroke:%2346648c;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20219%20548)%20scale(3.4003)'/%3e%3cpath%20d='M175%2065h4l5%204v1h-14v-1Z'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2346648c;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3crect%20width='25'%20height='2'%20x='-12.5'%20y='-1'%20rx='.1'%20ry='.1'%20style='stroke:%2398b0ca;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2398b0ca;fill-rule:nonzero;opacity:1'%20transform='rotate(90%20262%20505)%20scale(3.4003)'/%3e%3ccircle%20r='7.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(767%20175)%20scale(3.4003)'/%3e%3crect%20width='116.7'%20height='70'%20x='-58.4'%20y='-35'%20rx='31.5'%20ry='31.5'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20877)%20scale(3.4003)'/%3e%3crect%20width='60'%20height='20'%20x='-30'%20y='-10'%20rx='3'%20ry='3'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2337547a;fill-rule:nonzero;opacity:1'%20transform='translate(502%20728)%20scale(3.4003)'/%3e%3ccircle%20r='75'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%2371c9fc;fill-rule:nonzero;opacity:1'%20transform='translate(502%20473)%20scale(3.4003)'/%3e%3crect%20width='129.4'%20height='82.3'%20x='-64.7'%20y='-41.1'%20rx='37'%20ry='37'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23fff;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3crect%20width='108'%20height='68.6'%20x='-54'%20y='-34.3'%20rx='30.9'%20ry='30.9'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(502%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(415%20464)%20scale(3.4003)'/%3e%3ccircle%20r='19.4'%20style='stroke:none;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23a478fc;fill-rule:nonzero;opacity:1'%20transform='translate(591%20464)%20scale(3.4003)'/%3e%3crect%20width='96'%20height='53.2'%20x='-48'%20y='-26.6'%20rx='23.9'%20ry='23.9'%20style='stroke:%23162334;stroke-width:1;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:4;is-custom-font:none;font-file-url:none;fill:%23162334;fill-rule:nonzero;opacity:1'%20transform='translate(503%20875)%20scale(3.4003)'/%3e%3cpath%20stroke-linecap='round'%20d='m68%20215%207-15M81%20222l-7-22M81%20222l7-14M101%20208H87M114%20219l-7-24M113%20219l13-22M131%20214l-5-17M148%20214h-18M69%20214H51M100%20209l7-15'%20style='stroke:%23a478fc;stroke-width:3;stroke-dasharray:none;stroke-linecap:butt;stroke-dashoffset:0;stroke-linejoin:miter;stroke-miterlimit:10;is-custom-font:none;font-file-url:none;fill:none;fill-rule:nonzero;opacity:1'%20transform='translate(165%20150)%20scale(3.4003)'/%3e%3c/g%3e%3c/svg%3e\", ke = \"data:image/svg+xml,%3csvg%20width='140'%20height='140'%20xmlns='http://www.w3.org/2000/svg'%3e%3ccircle%20cy='60.044'%20cx='70'%20fill='%235c5c5c'%20r='29'/%3e%3cpath%20d='m16.36%20156.186-.01-30.5c-.005-16.844%2024.168-30.507%2053.991-30.516%2029.823-.009%2054.004%2013.64%2054.01%2030.484l.008%2030.5-108%20.032z'%20fill='%235c5c5c'/%3e%3c/svg%3e\", He = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 0 637 637\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"m478 113-13 2-4 1h4l14-2c10-2 35-2 42-1l6 3 3 1c3 0-4-3-8-5-7-1-34-1-44 1m56 6 8 6c7 5 20 17 20 19s7 12 8 12l-3-6-4-6c0-3-15-17-25-24-5-3-8-4-4-1m-198 16-9 1a512 512 0 0 1 9-1m-180 30a412 412 0 0 0-23 4 167 167 0 0 0-32 8 439 439 0 0 1 46-9 304 304 0 0 1 11-2l6-1h-8m369 8 4 3-7-6c-1 0 0 2 3 3m-439 9c-7 3-18 13-18 15l6-5c5-5 9-8 14-10l6-4-8 4m442 12-10 11-7 6 7-6c7-5 14-14 13-16l-3 5M65 205l-1 11c0 9 0 10 4 17 5 10 7 12 22 11 10 0 15 0 38-5l5-1-6 1-16 2-21 2c-13 1-16-1-21-10-3-5-4-6-4-15l1-12c1-4 1-5-1-1m335 1c3 0 3 1 3 3l-2 6c-2 5-35 39-76 80-53 51-120 117-138 137-21 24-22 25-22 27 0 3 6 9 9 9 4 0 14-8 38-27a5073 5073 0 0 1 15-16 1421 1421 0 0 0-17 15l-31 25-6 2-4-3c-3-3-3-4-2-6 3-8 79-85 160-163 57-57 79-80 79-86 0-2-3-4-7-4-2 0-2 0 1 1m165 18c-9 17-25 32-57 53l-10 8 16-11 12-8c15-10 27-22 39-39 5-7 6-8 4-8l-4 5m-221 2a199 199 0 0 0-19 10 183 183 0 0 1 27-12c0-1-1-1-8 2m-34 16c-3 3-2 3 2 0l1-2-3 2m151 3-1 2 2-2c3-3 2-3-1 0m-16 12-11 10a281 281 0 0 0 11-10m-24 18-7 5-7 5-42 31c-10 7-24 19-22 19l7-6 16-12a343 343 0 0 0 35-25 573 573 0 0 0 20-17m-187 0-2 2 4-2 3-2-5 2m-14 6-3 2 4-1 4-3-5 2m-7 3-8 4-18 8 18-7 7-3 3-1c1-2 0-2-2-1m254 24a2672 2672 0 0 1-71 54 601 601 0 0 0 39-29 1352 1352 0 0 1 32-25m-291-8-2 2 4-2 3-2-5 2m-13 5-2 2h3c5-3 4-4-1-2m-19 9-7 3-13 6c-10 5-13 7-14 10-3 4-2 5 1 0 2-3 5-5 14-9l13-6 12-6-6 2m178 36c-17 12-21 16-21 17a390 390 0 0 1 20-17m-206 34 1 4 1 3 1 5 2 8 1 5v-6l-1-8-2-5-1-4-1-2c-1-2-1-2-1 0m222 23-9 7a683 683 0 0 0-56 44 261 261 0 0 0-26 20 1345 1345 0 0 0-46 34c-6 3-7 3-19 3-11 0-12 0-18-3-8-4-10-8-17-20l-5-10 4 10c5 10 12 18 19 22 4 2 6 2 17 2 13 0 14 0 21-3l26-19 42-33a2183 2183 0 0 0 43-34 643 643 0 0 1 24-20\", fill: \"#fff\", fillRule: \"evenodd\" }), /* @__PURE__ */ q.createElement(\"path\", { d: \"M478 114a620 620 0 0 1-39 6l-21 3a5481 5481 0 0 0-19 3 870 870 0 0 1-54 8l-1 1-6 1-12 2-13 2a992 992 0 0 0-76 12 400 400 0 0 1-45 8l-6 1-5 1h-3l-3 1-2 1-26 4-13 2-17 3c-23 5-33 9-43 19-7 8-9 13-9 27 0 8 1 9 4 14 5 9 8 11 21 10l21-2a1133 1133 0 0 1 23-4 659 659 0 0 0 74-14l3-1h3l3-1h3l2-1 2-1h3l2-1h2l24-5 38-7a2100 2100 0 0 1 93-18l3-1 10-1a2082 2082 0 0 1 120-17l2 1c2 0 8 5 8 7l1 2 1 6c0 4 0 6-3 10-2 4-16 16-18 16l-7 5-10 8a1070 1070 0 0 0-11 7 113 113 0 0 1-20 14l-2 2-3 2-2 2h-1a154 154 0 0 1-28 21l-5 4-5 4a573 573 0 0 1-50 37 175 175 0 0 0-24 18l-1 2-2 1-2 1-2 1-1 1-12 10a396 396 0 0 0-32 25l-8 6-6 5-9 7a326 326 0 0 1-25 20l-13 12a5073 5073 0 0 0-17 15c-24 20-34 27-39 27-2 0-8-6-8-9 0-2 1-3 22-27 18-20 85-86 138-137 41-41 74-75 76-80l2-6c0-2 0-3-2-3l-7 1a233 233 0 0 1-26 9l-1 1-1 1h-1l-1 1h-2l-3 2-1 1h-2l-3 2h-1l-5 2-22 10-9 4-4 2-5 2-10 4-2 1-2 1-2 1-13 6a334 334 0 0 1-38 17 75 75 0 0 0-14 6l-5 2-4 1-2 1-3 2-7 3-16 6a247 247 0 0 0-32 14l-1 1h-2l-1 1h-2l-1 1-12 6a103 103 0 0 0-27 15l-2 5-1 1v11l1 5 1 5 1 4c0 3 0 4 2 4v3l1 3 1 2 2 10 1 4 1 5 2 10 2 8 1 4 1 4c3 3 9 25 11 38l1 7v2l1 4v1l1 1v2l1 2 1 3v1l5 10c7 13 9 16 17 20 6 3 7 3 18 3 12 0 13 0 19-3 8-4 11-6 26-18a1345 1345 0 0 1 85-67 683 683 0 0 1 50-39l12-9a513 513 0 0 1 44-33 201 201 0 0 0 22-17 2270 2270 0 0 0 73-54 158 158 0 0 0 58-59c2 0 3-9 4-27l-1-19-1-4-1-6-1-3-4-6-4-6c0-2-6-8-13-14a77 77 0 0 0-28-18c-6-1-34-1-43 1\" })), Ae = iA(He), xe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M765-321q0 117-84 196-83 80-200 80-118 0-200-80t-83-196v-392q0-85 61-144 61-58 146-58 86 0 147 58 61 59 61 144v374q0 54-39 92-39 37-93 37-55 0-93-37-38-38-38-92v-372h110v372q0 9 6 14t15 5q8 0 15-5t7-14v-374q0-39-29-66t-68-27q-40 0-69 27t-29 66v392q0 71 51 119t122 48q71 0 122-48t51-119v-426h111v426Z\" })), ee = iA(xe), Oe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M125-165v-113h77v-273q0-93 55-167 56-75 146-100v-19q0-32 22-55 23-23 55-23t55 23q22 23 22 55v19q90 25 146 99 56 73 56 168v273h77v113H125ZM480-32q-38 0-66-27-27-27-27-66h186q0 39-27 66t-66 27Z\" })), Le = iA(Oe), Ne = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M137-190v-113h78v-253q0-41 11-79 11-39 35-71l-9 150h10L17-802l74-74L873-92l-74 74-175-172H137Zm609-149L319-769q20-15 41-25t44-16v-28q0-32 22-54t54-22q32 0 55 22t22 54v28q85 23 137 94t52 160v217ZM481-47q-38 0-65-27t-27-65h184q0 38-27 65t-65 27Z\" })), Re = iA(Ne), Ue = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { xmlns: \"http://www.w3.org/2000/svg\", viewBox: \"0 0 100 100\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"g\", { strokeLinecap: \"round\", strokeWidth: 10 }, /* @__PURE__ */ q.createElement(\"path\", { d: \"m19 19 61 61M80 19 19 80\" }))), Fe = iA(Ue), je = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M94-136v-255l351-93-351-92v-253l816 346L94-136Z\" })), ze = iA(je), Ge = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M480-372q-61 0-105-43-43-43-43-105v-240q0-61 43-105 43-43 105-43 61 0 105 43 43 44 43 105v240q0 62-43 105t-105 43ZM425-76v-122q-121-16-197-108t-76-214h109q0 91 64 154t155 63q91 0 155-63t64-154h109q0 122-77 214T534-198v122H425Z\" })), Ye = iA(Ge), Xe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"m763-343-80-79q8-20 13-44 5-23 5-54h109q0 49-11 95t-36 82ZM625-482 336-770v-2q3-56 45-96t101-40q62 0 105 43t43 105v249l-1 17q-1 7-4 12ZM427-76v-122q-120-16-196-108-77-92-77-214h109q0 91 64 154t155 63q43 0 80-14 37-15 67-41l78 79q-35 32-78 53t-93 28v122H427Zm362 27L41-796l75-75 748 748-75 74Z\" })), We = iA(Xe), Ke = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M625-511q29 0 50-21t20-50q0-29-20-50-21-20-50-20t-50 20-20 50q0 29 20 50 21 21 50 21Zm-290 0q29 0 50-21t20-49q0-30-20-50t-50-21q-29 0-50 20-20 21-20 50 0 30 20 50 21 21 50 21Zm145 268q75 0 137-43t85-115H258q24 72 85 115 62 43 137 43Zm0 198q-90 0-170-34-79-34-138-93T79-310q-34-80-34-170t34-170q34-79 93-138t138-93q80-34 170-34t170 34q79 34 138 93t93 138q34 80 34 170t-34 170q-34 79-93 138T650-79q-80 34-170 34Zm0-435Zm0 322q134 0 228-94t94-228q0-134-94-228t-228-94q-134 0-228 94t-94 228q0 134 94 228t228 94Z\" })), te = iA(Ke), qe = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M553-64v-108q107-27 173-113 67-87 67-197 0-109-67-195T553-789v-108q152 26 249 144 97 117 97 271 0 155-97 273T553-64ZM61-335v-290h176l236-237v764L237-335H61Zm492 28v-346q51 23 82 70t31 103-31 103q-31 47-82 70Z\" })), Je = iA(qe), Ve = (A, e) => /* @__PURE__ */ q.createElement(\"svg\", { viewBox: \"0 -960 960 960\", ref: e, ...A }, /* @__PURE__ */ q.createElement(\"path\", { d: \"M807-15 700-123q-33 21-71 37-38 15-80 22v-108q20-4 38-12l35-17-153-154v257L234-335H57v-290h144L10-818l74-75L882-90l-75 75Zm37-264-80-79q13-30 19-60 7-31 7-64 0-109-68-195-67-86-173-112v-108q152 26 249 144 98 117 98 271 0 55-14 107-13 51-38 96ZM661-462 549-575v-78q51 23 83 70 31 47 31 103l-1 9-1 9ZM469-655 366-759l103-103v207Z\" })), Ze = iA(Ve), _e = \"data:audio/wav;base64,UklGRmaIAABXQVZFZm10IBAAAAABAAIAQB8AAAB9AAAEABAATElTVBoAAABJTkZPSVNGVA4AAABMYXZmNjAuMTYuMTAwAGRhdGEgiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////AAAAAAAA//////7/////////AAABAAAAAgABAAEAAQAAAAIAAQABAP//AAD+////AAD+//7////+////AAD//wAA/v8AAAAA/v8AAP//AAAAAAAAAgD////////+////AAABAAEAAgD/////AQABAAAA//8CAP//AAAAAAAA/v8AAAAA//8AAAEA//8EAAAAAAAAAAAA//8BAP//AQABAAEA/////wEA/v///wAAAAACAAAAAAABAAAA//8AAP//AAACAP//////////AAAAAAEAAAAAAAEA//8AAAEAAQADAAIAAgAAAAAA/v///wEAAAAAAAEAAAAAAAEA//8AAAEAAQD//wAA//8AAAEAAAABAAEAAAABAP//AAD//wAAAgAAAP//AQD/////AAAAAP7/AgAAAAIAAAAAAAAAAAABAAAAAQABAP//AAABAP///v8AAP////8AAP//AAD//wAA//8BAP//AAD///7///8BAP7///8AAAIAAgABAAEA/v8AAP//AQADAAEAAAACAAEA/////////v///wEA/v////7/AAD+////AAAAAAAAAgAAAAAAAAD//wEAAAAAAAAAAQABAAIA/v8AAAAA//8AAAEAAAAAAP//AgD//wEA/////wAAAQACAAAAAAAAAP//AQD/////AQAAAAEA/v8AAAEAAQABAAEA///+////AQD//wEAAgD+//7/AAAAAAAAAQAAAAAAAQAAAAAAAAAAAP//AAD//wEAAQD//wAAAQABAP7///8AAP7/AAABAP7/AQABAAEAAAABAAEAAAD+/wIAAAABAAAAAQD/////AQACAP////8AAP//AQD//wEA/v8CAAEAAAAAAAAAAQAAAAIAAQAAAAEAAgD//wEAAAAAAP7///8BAP//AgAAAP///v8CAAAAAgD///////////7/AAACAAEAAgD//wAAAAABAP//AwAAAAMA//8AAAAAAQD+/wAAAAD//wAAAQD//wEA//8BAP7/AAABAAAA//8BAAAA//8AAP//AQADAP3////+////AgD+/////v8BAAEAAQACAAAAAAAAAAAA//8AAP//AAD+/wEA/v8AAP7/AAD//wAAAQACAAAAAQAAAP//AQAAAAAAAAABAAAAAAD+//////8AAAAAAAD//wAAAAABAAEA//8AAAEA//8AAP//AgD+/wAA///+/wAA/v///wAAAQABAAAAAQD//wAA//8AAAEA//8BAAAAAgABAP//AAACAAIAAQABAP//AAAAAAAA//8BAAIAAAABAAAA//8CAAEA/v//////AAAAAAEA////////AQAAAP//AAD//wAAAAAAAP3/AAAAAAEAAAACAAAAAAAAAP//AAD//wAAAAAAAAAAAAAAAP///v///wAAAAABAAAAAAD//wEAAAABAAEAAQD//wAAAAACAAAAAQD+/wAA//8BAAEAAAD+/wAA/////wAAAAABAAAAAAD//////v8AAAAA//8AAAAAAAAAAAIAAAABAAEAAAABAP7/AAD9//////////7///8BAP//AAD///3/AQABAP//AAD//wAAAAABAAAA//8AAP//AAD/////AQABAAEA//8AAAAA//8BAAMA//8AAAAA//8AAP7/AAD//wAAAAAAAP7/AQAAAAAA/v8CAP//AAABAAIAAQABAAAA//8BAAEAAQD///7/AQD//wAAAQABAP//AAD//wEAAAAAAAAAAQAAAAIA//8AAP////8AAP//AQD//////v///wEA/v8AAAIAAgACAAEAAAAAAAEAAAAAAAAAAAAAAAAAAQD//wAA/////wAAAQACAP////8AAAAAAAD//wAAAQD+/wEA//8AAAEAAwD//wEAAQAAAAAAAAABAP////8AAAAAAQAAAAAAAAAAAAEAAQAAAP////////7/AQABAAEAAQD///////8BAAAA//8AAAAAAgABAAEA/v8BAP7///8BAP3/AQABAAIAAAD//wEAAAAAAP//AAABAAIA//8CAAAAAQAAAAEA//8BAAAA/////wAAAAD//wEAAQD//wAAAAAAAP//AAAAAAAAAQABAAAAAQAAAP//AQD//////v8AAAEAAAAAAAAA//8AAAAAAAACAAEAAQAAAP//AAABAAEA/////wAAAgABAAAAAAAAAAEAAAABAP//AQABAP7////+/wEAAAAAAP//AAABAAAAAAABAAEAAAAAAAAA//8BAP///f/+/wEAAQD///7///8AAAAAAQAAAP////8AAAAAAAABAAAAAQD/////AAD//wEA//8AAAIA//8CAAAA//8AAAAAAAD+/wEAAAD+/wAA/////wAA////////AAAAAAAA//8BAAAAAAD//wAAAAD//wEA//8AAP//AQD+/wAAAAAAAP7/AAD+/wEAAQABAP//AAABAAEAAQD//wAA/////wEA//8AAAAAAgAAAAAA//8BAAAAAgAAAAAAAAAAAP7/AQD//wAAAAD+/wAAAAADAAIA/////wAAAQD//wIA//8BAAEA/v8AAAIAAAAAAP3///8AAAAAAAAAAAAAAAABAP///////wAA//8AAAEAAQABAAEAAQABAAAAAQAAAAAAAQABAP7/AQD//wAAAQABAAEA//8BAAAAAgAAAAEAAAABAP//AAD/////AAD//wIA/////wIAAAD///7/AAAAAAAAAAACAP//AAABAP////8AAAAAAAABAAAAAgAAAAAAAQD+/wEA/////wAA/////wAAAAAAAAAA/v//////AAAAAP//AAABAAAAAQAAAAIAAAACAAAA//8AAAAA//8AAP7/AAAAAP//AAACAP//AQABAP//AQABAAAA/////////v8AAP//AQAAAAAA///+/wAAAQD+/wEAAQAAAAEA/////wAAAQD//wAA//8AAAAA/v8BAAEA//8AAP7//v8BAAAAAAAAAAEA//8AAAEA/////wAAAAD//////////wEAAAABAAEA//8CAAEA/f8AAAAA//8BAAAABAABAAEAAQAAAAAAAAAAAP7///8AAAAA/v8BAAAA//8AAAIA//8AAP////8BAP//AAAAAAAAAAD/////AQD///7/////////AQD8////AgABAAIA////////AAD//wAAAAABAAAAAAAAAAEAAgAAAP//AQD//wAAAAAAAP/////+/wAAAAABAAAAAwABAP///////wEAAAADAP//AQACAAAA//8CAAEAAAAAAP///////wIAAAAAAAAAAQAAAAAAAgD//wEAAAABAAAA/v8AAAAAAAAAAAAAAAAAAAEA/v8AAP//AQD//wAA//////7///8AAAAAAAAAAP7/AQD//wAA//8AAAEAAAABAAEAAQD/////AAD//wEAAAD/////AQAAAAEAAAD//wEAAAD/////AgD//wAAAQD//////////wAAAAD//wAAAAABAAAAAAD//wAAAQD///7/AQD//wEAAAD/////AAD//wEA//8AAAEA//8CAAAAAQD//wEAAgAAAAEAAwAAAAAA/v8BAAEAAgD//wEAAAAAAAAAAAD//wEA//8AAAAAAQACAP///////wAAAQABAAEAAAAAAAEAAQD+/wEA/f////////8AAAAA//8AAAEA//8BAAAA/v///wEAAAAAAAEA/////wAAAAAAAP//AAAAAAIAAAABAAAA/////wAAAAD//wAA/v8AAAMAAQD+/wEAAAABAAEA//8BAP//AgAAAAAAAAD//wAA/////wEA/v8CAP3/AAACAP3/AQABAAAAAQACAAEA/v8AAAAA//8BAAAAAgAAAAAAAgACAAEA/v/9/wAAAQABAP7///8AAP//AgD+/////v8CAP////8BAP//AQACAAEAAQABAP//AAD///7/AAABAAEAAgD//wEA//8CAAEAAQABAAEAAAABAAAA/v8AAAEA/v8AAP//AAABAP//AQAAAAEAAgAAAAAA/v///wEAAQAAAAIAAAD/////AgAAAAEA/v8AAP7/AQAAAAAAAQAAAAEAAAACAAEA//8BAP////8AAAIAAAAAAP//AAAAAAIAAAAAAAAAAwABAP///v8BAAAAAAAAAP3/AAABAAEA/v////////////3//v8AAAAAAQABAAIAAAD+/////v8AAAAAAQABAAEAAQAAAP//AAAAAP//AQAAAP//AAABAAAAAAAAAAAA////////AAAAAP//AQD/////AAABAAEA//8CAP7///8AAP7//v8BAAEAAAD+/////////wEAAAAAAAAAAgD//wAAAQAAAP7/AQABAP//AQAAAAAAAAD/////AAACAP////8BAAAAAAD//wAA//8AAAEAAQABAAAAAAABAAAAAQD+/wEA/v8AAAEAAQD/////AAD//wAAAQABAP7//v//////AAACAAAAAAAAAAAAAAACAAAAAQAAAAAA//8BAP//AQD//wAA///+/wIAAQD//wAAAAD//wAA/v8AAP3///8AAAAAAAAAAAAA/f8AAAAA//8CAP7/AAD///7/AAAAAAAAAAD//wEAAAAAAAEAAAAAAAAA//8BAP////8BAP7///8CAAEA//8BAP3///////////8BAAAAAAAAAAEAAgD+//////8BAAMAAQADAAEAAAACAAAAAQD/////AAABAAMAAQAAAP//AQD//wAA//8AAAAA//8CAP7//////wAAAAAAAAIA/v8AAP//AAACAP//AwD//wAA//8AAP//AwD//wEAAQABAAEAAQACAAEAAAD//wAA//8AAAIAAAAAAP///////wAAAQD//wIA//8BAP7/AAD///////8AAAAAAAAAAAEAAAD//wAAAQD//wEA//8BAAAAAAD/////AgABAAIAAAABAAAAAAAAAP//AAAAAAAA//8AAAAAAAD/////AQAAAAAAAQD//wAA///+////AAAAAAEAAgABAAEAAAAAAP//AQAAAAAAAQD+/wAAAAABAAEAAAD/////AQABAP7///8AAAIAAAACAAAA//8AAP//AgACAAAA///+/wAAAAABAAAAAQAAAAEA/v8BAAEA//8CAP//AQD+/////v8AAAAAAAACAP//AAD+/wIA/v8BAAAAAAD/////AAAAAP7///8AAP7//////wEAAAABAAAAAAD//wAAAAAAAAAAAgACAAAAAAABAAAA/f8AAP7/AgAAAAEA//8BAAAAAAD///7/AQD//wAAAAAAAAEAAAAAAAEAAAAAAAAAAQAAAAAA//8AAAAAAAABAP///////wAAAgABAAEA//8AAP//AAACAP//AQABAAEA//8BAAAAAAABAAAA//8AAAEAAAAAAAIA/v8BAP//AQD//wEAAAABAAEAAQACAAEAAAAAAAEAAAABAAAAAAD/////AAABAAEA//8AAAAAAQABAP//AAAAAP//AAD/////AQD//wAAAAABAAEA//8BAAAA//8AAP///f/+/wAA/////wAAAQAAAAIAAAAAAAAAAAD+/wEA/f8CAAAA//8AAAEAAgAAAAMAAAABAAAAAAAAAP//AQAAAAAAAQABAAAAAQAAAP//AAAAAAAA//8AAAAAAAABAAAAAQAAAAAAAAABAAIAAAAAAP7/AQD//wAAAAD+////AAAAAAAAAAABAAAA/////wAA//8AAAAAAAD/////AgD//wAA//8CAP//AQACAAEA/f////////8BAAIAAQABAP//AAD//wAA///+////AAD+/wAAAQD/////AAAAAAAA/////wAAAAABAAAAAQAAAAAA//8AAAIAAAABAP//AQABAAEA//8AAAAAAAADAAEAAAABAP//AgD//wMA//8AAAAAAAD//wAAAAD9/wEA///+/wAA//8BAAEA//8BAAAA//8AAP///v8BAP///////////v8BAAAAAQABAAAAAAAAAAAA//8AAP7/AQAAAAAAAAAAAP7/AQAAAAAAAgABAAEAAAABAAEAAAAAAAAAAAD+/wAAAAD//wEAAAAAAAAAAAAAAP//AgABAAAAAAABAAEAAAD/////AAAAAP//AAABAP////8BAAAAAQABAP7//v/+////AQAAAAAAAQAAAAEAAgAAAAAAAQAAAAEAAAD+/////v8BAP//AAABAP//AQABAAAAAAD//wAA//8CAP//AAAAAAEAAAABAAAAAAAAAP//AAD+////AwAAAAAAAQD//wEAAAACAAEAAAADAAAAAAD/////AAAAAAEAAAABAAAA//8AAAEA//8BAP///v8AAP//AAD//wAAAQABAP//AQAAAAAA/////wEAAQAAAP////8AAAEA//8BAAAAAQAAAP////8AAAAAAQAAAAIAAQAAAAEAAAAAAAEAAAD//wEAAAAAAP////8AAAAA//8BAAEAAAAAAAIA///+/wIA/v8BAAAAAQACAAAAAQAAAP7///8AAP//AAAAAAEAAAAAAP7/AAD+////AAAAAAAAAAD//wAA/v8BAAMAAAABAAIAAgD//wAA//8BAAEA//8BAP7/AAAAAP7///8BAAAAAQAAAP7/AQD/////AAAAAAEAAAABAP//AQABAAAAAgABAAAAAAAAAP///////wEA//8AAAEA//8AAAAAAQAAAAIAAAABAP7//////wAAAQABAAAAAAABAAEA///+/wAA//8BAP///v8AAP///v8BAAAA//8CAAAAAQAAAAEAAQABAAAAAAD+/wAAAAD+/wAAAAAAAAAA/f////////8AAAAAAQABAP///////wEA//8BAAEAAAAAAAAA/////wEA/v//////AAAAAP//AAABAAAAAAD+/wAAAAD9////AQAAAAEAAwD//wEAAQAAAP//AgAAAAAAAAD+/wIAAAAAAAAAAAAAAAIA//8AAAEAAQACAAAAAQD//wAAAAD//wIAAQABAAAAAAD//wEA//8BAAEAAQAAAAAAAQABAP7/AAD//wEAAAACAP7/AQAAAAAAAAD//wIAAQACAAIAAQAAAAAAAAAAAP3///8BAAAAAQACAP//AgD9/wAAAAD//wEA/v////////8AAAAAAAD//wEAAQD//wMAAQAAAAEA//8AAAEA//8AAAAAAAACAAAAAAD//wAAAQD///////8AAAAA//8BAAIA/v8BAAEA/f8AAAAAAAAAAAAAAgD/////AAD+/wAAAAD//wAAAAAAAP//////////AgABAP///v8AAAIAAQAAAP//AAABAAAA/////wAAAAAAAAEAAAABAP///v///wIA//8BAAEAAQAAAAAA///+/wEAAAAAAAAA/////////v8BAP3/AAAAAAAAAAAAAAAA//8AAP//AAAAAP//AAABAAIAAAACAP////8DAAAAAAABAAAAAwABAP//AAABAP//AAAAAP////8BAAAAAgD//wAA///+/wAAAQD//wAA//8AAP7///8AAAAA/v8AAAAAAQD//wEA/v////////8AAAAAAQAAAP//AQACAAAAAAAAAP//AAD//wAAAAD//wAAAAD+/wAAAAAAAP//AQD//wAAAgAAAAAAAQABAAAAAwD+/wAAAAD///7/AQD//wIAAQAAAP//AAD//wAA//8CAAEAAAAAAAAA/////wAAAAD//wEAAQD///////8BAAAA//8BAAEAAAAAAAAA/v///wEAAAAAAAAAAAADAAAAAAAAAAAAAQABAAEAAAD+//7//v8AAP//AQAAAAAAAAABAAEAAgAAAAAAAQD//wAA/f8AAAAAAAABAAAAAQAAAAAAAAAAAAIA//8BAP///////wIA/////wAAAAABAAEA//8BAAAAAAD//wAAAQD//wEAAAAAAAIA/v8BAP//AAAAAAEAAAABAP//AAAAAAAAAQABAP7/AAABAAAAAQD//wIAAAAAAAEA///+/wAA//8AAP//AAAAAAAAAAABAP///////wIAAQAAAAEAAQAAAP7/AQAAAAAAAQAAAAAAAQD/////AQAAAAAA///+//7/AAD+/wEA//8AAAAA///+/wEAAAABAAIAAQABAAAA//8AAP//AAD//wAAAAD//wAAAAAAAP//AQAAAAAA////////AQAAAAAAAQD+////AQABAP7/AAD///7/AgD//wAAAAAAAP//AAAAAAEA//8BAAEAAgAAAAIAAAD//wEA/////wAAAQD///7/AQD//wEAAQD/////AAAAAAEAAgAAAAAAAQD//wEA//8AAP7//////wAA//8BAAEA//8BAAAAAQD/////AAABAP//AAACAP//AQAAAP//AAABAP////8AAAAAAAABAAEAAwABAAAAAgD//wAAAAD//wEAAAABAAAAAAABAAEA/////wAA//8AAAIAAAAAAAEAAQABAAEAAQABAP//AgAAAAAA//8BAP3//v///wAA//8AAAAAAQAAAP//AQD//wEAAAACAAIAAAABAAAA//8BAAEA//8BAP//AAAAAP//AQAAAAIAAAD//wAAAAAAAAEA////////AQAAAP//AQD//wAAAQD+/wEAAAABAP///v///wAAAAAAAP//AAAAAAIAAQD//wAAAgD+/wAAAAD//wAAAAABAP///P//////AAACAP////8AAAIAAAABAAAAAAAAAAAA//8AAAAAAQADAP//AQAAAAAAAAABAAEAAQAAAAAA/v8AAAAAAAD//wAAAQD//wAAAAD//wAA/v////////8CAAEA/v8BAP7/AAAAAAAA//8AAAEAAAD//wIAAQAAAAIAAQAAAAAAAAD///7/AQABAP//AAAAAP//AAACAAEA//8BAAAAAwAAAAAAAAD//wEAAAD//wAA///////////+/wAAAQABAAIAAAABAAEAAAD//wEAAAD/////AAD+/wIAAwABAAEA/v8BAAEAAAD//wAA//8AAP//AAAAAAEAAAAAAP//AAAAAAEAAQABAAEA/v///wAAAAD//wEAAAACAAAA/f/+/wAA/v///wAA//8AAAEAAQD///7/AAAAAAAAAAABAAAAAAACAAAAAAABAAAAAAABAP//AQD//wAA//8BAP7/AgABAAEAAQAAAAAAAQD//wEA/v8AAP////8AAP///////wIAAQD//wAAAAD//wAA/v///wAAAQD//wIA/////wEAAAAAAAIAAAABAAAAAAD//wEA//8AAAAA/////wAAAQAAAAAAAAD//wEAAQAAAAAAAAACAP///////wAAAgD//wAA/v8AAAIAAAAAAAEAAAABAP//AQABAAEAAQAAAP///v8BAAEAAAAAAP////8AAAAAAQD//wIAAQAAAAEAAAAAAAAA//8BAP//AAAAAP7//v///wEAAAAAAAIAAAAAAP//AAD//wEA//8BAAAAAAABAAEAAAABAP7///8AAAIAAAABAP//AAD//wEAAAAAAP//AAAAAAEAAAAAAAAAAAAAAP7/AQD//wAAAQD+/wEA/v8BAP7/AAABAAEAAAACAAIAAAADAAAA//8AAAEAAAABAP//AQD//wIA/////wEA//8AAAEA//8AAAEAAAAAAAAAAQABAAAAAAAAAAAAAAD//////////wAA//8AAP7/AAD+/wAAAQAAAAAA/////wAABAAAAAAA//8AAAEAAAAAAAAA/v8AAP//AAAAAAAAAAD//wAAAAD///////8BAAEAAAD/////AgABAAEA/v/+/wAAAQACAAEAAAD//wAAAwABAP//AgD+/wAA/v8AAAAAAAAAAAEA//8AAAEAAAD+/wEAAAAAAAEAAgAAAAEAAAABAP//AQD+/wIA/////wAAAQD//wAAAQD+/wAAAQABAAAA////////AAACAAAAAQAAAAIA//8BAP///v///wEA//8BAAEAAQD+/wAAAQD9/wAAAQAAAAEAAAABAAAAAgAAAP//AAD+/wAA/f8AAAAA////////AgAAAAcAAQD7/wEA/f8AAAIA//8GAP7//v/+//b/AQD//wQADgD///3/9/8FAPr/6/8EABAACQD9/wIA/P/5/w4A///t/wQA/P8LAB0ACQD5////AQD2/+7/AgD6//r//v/z/xIA9f8oAAMA4f8OANz/EQAdAAAA5P/w/2MAAQDq/w0A1/8bALz/BgDb/+j/lQD9/yMABAACAA0Alf8NAKr/CwCMAPD/QwDq/wkA9v+g/wgAk/8QAD0ABgAWAAQAMwD7/9T/8//f//z/JwAEAOL/DwBxAAwAzf/+/xUA8v+O//H/fAD5/xUA+/9m//P/yf/r/y8ACAAbAEQA3f9AAAcB9f/p/sD/+QHv/8/9EQCv+ez/j+v8/3pS7/83By4AF6Go/7PNjgDMEn7/Sk0NAeEfIv+9DCwAKfuY/9fRAv2A3mjzfQg/Ft3fzTQE703jljkirPskFOdBEUYzORerLDvvDg7C6dcbwNJj/b/CisId8XfblBZS/oYksP1YRdoQJjjDJbwGNSTX66wU48FG8Iu1eM+/5ITdKwGN8jUTGfehN3oUszrBH7kmdhFKB+YNheG6B9fOivltwZ38JMcC66z7o9pJNBnxgTdvCjIvJg+GG7MMlQUJFJL5hCZ61IQap7895EXN8Msh6NjdpxE07wU5Nf+kRH8Q2TrWHZkYhSYj5ygQgMu19dK86/YRw8jmHuuM4W8Qbv5ZLRgHY0o+ARU6uwKJE20PlfdwIXTNRxCMuj/2VMpT9GDjYOkhCEXj7iUA9dw5hgMGRv0K0yz0FXv0URP01aENm8LuBEm/OfEJ3UXsrwCA7scgnOqlQLv+2EE0ELEoMBUWA20W49bZDLLFYfq6wsDsttSk77f7uPvdHIkCojVN9kJJxvkaMtUHnQSVEmbdqB4+v2ELnr5F6vvZvumY9ujyGBvO8Hk7X/54PcoIBzJ/C0IOqQ7M3SQNcMhaDWDDIgXy0FLqd/OR2/0WS/fzLn0HVEImB0Q0VQYxEJsHh+tMEaLLuwznxCH7UM8z8pXmjPRhDfrwJzLP+xE+YALhOkkCOhqyDvLoSA2ezOQHA8gJBzXOofoa4YHxuxEa76Ys2+zRPCX4jTG6Fq0dww9C+I8LBczmCmjDxgPZzK737+Zg7RUOT/asKAX2rTfj7z066f+pHd0dRu8dGvfW/wdHw18Bp8oc9VnnxPAgCJP0Eyok7qk/HfWDNd4GZhaDD3LyxBjV1EAZHM1pB6bQa/Dq4//pqAcQ7h0iq/ETMxz4QDjXB2oeaReV9owM+t49BcXMRwt4yeT/DODq82sDoe7KJm/rEzr49DguBQbSGrcS7vyRGLDWQAhHzKn7U9Y+AQvotfbMBCPw7R3++Ncv6fvRMPj+HBj2Bcj6DgzF4kMNIs5dBkrSDPz+6eT9PwFY+iMaru4+MSzyGTHY/SocuQpy/WgNZt6DCTvQUwd20XEFA+Rz/YoEPvdKHnrv1Swb8pMwQ/2QHGwDqPsaCNfhwRD9z/MOpNNcBUjopf7OANny4hkY7TcvSvSWLVn7ihr7BAoBwQoM45cL2NGGDNfSGQm940EBZwJY+IYbPPArKabruy5V+NgcvAGm/4IFzeRHDxrR2xDP1XEJCOno/SX+z/QzF4DxWyvQ/Lkqw/6jG5T5XwLgAA7mlAa91ZwM5tUSDmnllgMx/3T2sRZ287UnxfckKxX+exrTAmwEUv/u6qICM9XGB2jTWQZ65gb/Q/0L/lkS3fyUJUT2vC6F+fkiFwUsA5gJd+R+AiPVcASv1gIHzueb+tn/2fPhEMzzvyGG+q4rEgOVIbcLsgjBEsbmHgxw0gP6DNo/8vDo0/mn+O34UhBW+Egmbv7FKjMCWB4vCcIEfAzX6zgHJtnhAifUYAAU6MP3Zf5L88IN7vLsIW/0tSu/Asce7hGMBtMPhu4PC5TatgNB1rP9reLY9pD43u8wEKLyoR+O+ssoCQSiI50JbQxtEEzwfgpT2tYA2NV4/b/hhvh39Yz0twqD9F8fivmGKscDOiUvDBkNMwe/8aoGoN8uC/XXnQKc3Z3zevHk8v0Js/bXGvT3mSfS/3MokwjBEokPzPesDdLiyQNN1BD7eNgw8yfwRvqYCFX+MxpR9UIovPaLJzEI5BNgDxP8uwtn4gILV9c0AQjaAPXe6tTyewNI9AMX1Pj5KNb/mSqOB3oaog3l/rkL1eP9BOrRi/961j/69Oqk9FwBNfdzGFH6vChI+lsr9wQ/G+EIggDFCv3nWwqZ1NwDC9M0+6Pllfen/nP4bxTM9uMldPcQLlP+NSOcCWsHeA2K6UQK0NRiCCPRiv9t4CD4Pfgy9TESMPFSJ7r2tjFNAzol1whnBu8N/unNDZTY/wP91G77od/H9pr1DfTpDUr2pSF7+rAspABzJ7wKiA6TDb3voQnM2BwEOtV+/Kbh5/YT9KPxJQh99r8cXwKFKWsDLiXNBYcT5At1+T0KJN5X/h3TbPr23qH7fvJS+tkDbvWzFYL2MCgIBGMqkAy8Fi8P9vsWC6jimv8a1B71udoY9BLuc/aUAlT6wRa0/R4nlgPFKYYLJBnoC7/9Vgh446UB59Ud/NraHPkL7Ob1WgIS9TYXxvhAJigDTSRVDZQVlw2vAA0GI+uB/wzbIfu+2kz7hOm5+S/9sva8EVH5NCK0/0EoDwZAHIoLZQMpDtDrQAoH3Lj9yNqI8NXmZe7P+bT3qw7o/9IgrgNPJ78HvB3oC0AIfQ1G8OAIpN6C/t7ay/Cc49zoC/da83AK7gCdGsAIjCfgC1cjOw23DQ8MT/ReBKbg+Png1RPx3d7K8KH29PfkDDT7shxpAcEiLgzpHnoScw5hDSD4ygSA41P9OtvQ8rbicuvW8w3wLAbM/msWMQeRIjULSyCNEeAP6g6m+SEFFeYk+Y/enO9r5Anwb/Ge9kgD3fuKFSoD8B7ZChAe3w8xEpwQdv1+BVzqRvbO37LvqOF68efvnfdYAXr+fxHEA34flQsjIO4UvRNRD/MAnf0L7Mf08dyH7+PfL/Ab7yD2LQCMAMcRKA2sHmYQKyESDTYXOQhHAaYAKOtw9QDfu+1e3vvt7OxI+Yb/FQXHDicL5h6eEPAiYBBJFycHGAT0+kXtuvCr3xPuR+D38vXpjP3p+cQHfQ7TC2Yedg4nIuwMDBnoAxMF5vhh86vxXuM28evasPNf5UH9SfpNB5sNzAwXHM0RRiMDDxodjQIlCaH1TfC88abgku+j39TwUOf4+Rb3TQoYCsET8BgJEHkj0AtkHkIE6wk292rzRfCD4zjvEN/s8OvmL/3J9BsK8gaLDtYZbw/9IRcMQx1tBOMNe/rf9kfxOOQZ79Hc/vUH48P8rfVTBMEJ/AoxGEMKBSF5Cz4exgvlDZIBevig9ETl7u7q3BbvfuNk9gfyGAB6BdIM8BfZFHYi7A2/IbADJBIIAMb49fjg5GjwAdsN76vfwfSG8tIAIQZXCgQWow4yIiwS3yFUDQ4Tt/5w/YbyhOa/76Xag+/73xP2Yu9fAS8BHQmeErEP7SKwErUnaw0tGPL/H/0D8zfmpe0c2r/t/9zv8nbs0QCRAKQNqxN1E1wjyBNiJRwKZRdT/G4B4fP56sXvidyS7qLbufT+5zcBjP3uCdYSuQzZIDURxCW4EB8cwwWuBB74Y+zd7rDbA+sm2fbtRudn+U/9VwdIEX0SQSC7FP8l1w5JHFAIFAdd/LXs7+3j2nbqkdoy7+fn9fmM/FQHsg+rDkUetA7AJB0QOxziCrMHO/058Y3zMd0G7o7Yvuwa53T2mvstBVIOoQxXHdMOCyToDVAdJwp1CQUCZe/e9eTejO9P3VXu4OdE8xD6IAD6CqELvRjkEDsiqxGXHfIK3gqf/+z0/fRL4jPsv9yl7uXnY/pA+PYB7Ai0CA8Xkw4GHngPFxxfDY0OmQN5+FTxeOZH6gTgjfBK5Zn4hfM3BOkFEwvOFR4LPx+jDvAcbA20DdYBp/kX9jHpNO6I4ZHs4uVy9D/zWwBxBGgMDRRZEI4cBg5wG0QNdRD0BlX8IffZ6IjsQ+Au6z3mO/Et9br90gS0CLQR3w/PGgAUTRsLEX8PSwfg/Kr58etY7FzjVOgw57fuHfSc+XcDAwg1ECMT7xfnFegXdxOKD2wHkf9w9nvvuu0F5hrpl+ck7Cj0+/gZAuoHzwwhFDIWYxn4F90Rmg6NBFABNfdY8n7s9+Yw6k3oxu388oX6pP/oCoQMpxIhFu8TyBccEmIP6QY4AQL3IPMJ7DLp5+Y/6KPuofFz/QH/rQnECoYSdxVQFSoYTw+LEIYGwQIm/Bn0c+9m6dboJOju6M/wbPPY/TIHawrgFbMT7BuTFygWWxJOCEgERfuw9Kztaekx4pHnFeSR8LT0K/13B/QICBaSE/obIxeGGM0SxQ4xB5H7lfYO6pLpLOOY53Hn1e4Q9Pj6MwPsCHkPIRM0Gb4W+BvUEU0QDgck/3L5PvBe7FHmYueY5LTuDewl+Ur7owUGEHUPdR6fGH0eCw3dEl4XVACdEwHxLNa/50a1MuIt45DoNTRF/Zw3zg1uCq0YnNwEIfLjOxeBAFAF7Ssx8MsokN7oDM3fuM8ZCaCv3w3tyMbeFgjG3qNTfSLbaAhczkBvPtHE0+0hjHisCKhzqKALluMRTGUoxU11SNURRy++yhf048Zc1p314e1zN0INPT3sGycYhQtBykjleKcJyZG62dKGFI8EAmEoPsVfelSSGaktksvG8WGvD79aubutwv4o1JQ9nxZDVEcwWg6XJ5bBeRVKuO4Bkff58iU/rvgRT7ASsR0OBYDDetkun5zHj7wo2oETMgmEW6xAeWhvTSoriCRRzxXsnJ7LxW6tSr7l9nzhEEUIHdhUxi3CFIMXINC5/sq+oPFt5Ovz5CQADrVNlyRjL0AWpOPd4DaoQsFHrm/KivMx8TxFViy/ZktPiTvoQBLwLwkMsIfRnK49tL3fOslTKhz+C0nMK8koDjP+6bQYR8j/7IndStuzDp/+OTqJJoQxySOK/9jxy8FgyEO0LMUd2HLthB+CJRJaSkbQURc6SwxAEui/9tY4rE21Ksz10xcTYgQEQogiATrtHFIAggvh0Vv56NA383X2+wEALFMcoDooG58WjPji1EnKjbNdx73KIeuXEKMYSUo8QO5Q/UN3H74biNYu28itib5lwlfIoAHc8ZM1YiMsPJcylRN2DlrjFuwy05btpOWEARAVeBs2O8kp6R7vBwjg1sLivi+7WNAz3v38AxQONJU3YlFfTT4voDIW6/Xti7Y4utO337ay6lvf8yzzG3s/WjccJ6YXjO28AHrLcPRa4CbuuRIJBF4x/CaeHjUYD/NI373HbcWxxj3V2/JF9ukxFiaoTvVUPTNtP43v/Pz9uvm/orvyswTobtj4IqwPaDzANPYmOCUJ894Bc9Wx6k3dXe2DCIwMgixjIhgp2RCJ/Ebui8gMzAy988kc5mTrPi4gItdWCU09P+tK7PWoFXm4wdQttCCtS+NUslsfjPCvPWE0+y1nSjr8+SGr0uHwh9Wx3gP/H++5KkEIUy9bGVIHew890t/nt7vHyW3ad9BVHOEBGVC1PEJI2VenEfMylMqP8iiov7b6xKOowQsayYVEDhTwPl9N7gssQc/YcxKY0jXghfJ02zEiuewLMMIQGQz1HR/WQgPhvUPeCdyGyeQU9tvhR9oYxknZY3UaXV5i0zAQxK9zsvjA45AA/GSvwjarAA1AYVDKFmxhcuKTKOTYBuGa8I3IMRbg1wklJA2RETUtqOTHGvbHld6X2HW81QZey4M38wx0RnVc2SbsbxjmvS6aubfEWMBshQjvSJPzI9ru6jc1TX8gHmy89B45uN4B75Xr+cQ1C+jPvR7P/mMSKic67uAfrc8P7GzWmMeOADrLejG1Aq1CnkPoJcJkqe9xObDFjeARwZSY/OZ0kwocedhqNEI1tCDfaCP7aUbk5X8C5ev2zfoDIMWmGqjrFhWAI9v0ZyuT0+j9NtU9ySL5ab2IJR7vez9mP9krE3Is/HdKfc0F5wfE8ZGT4R2Q/RBUz8EqGC1gIbNnCgSVUYjq1wlH7tTKhwN3xPIWdefOD9YfZfWpLtTccwlU2/jOdfQmvWkbs+MCNkwtNC7GZHQGwlLk2GkAE8VZpkHb9I3IBmm+kiIkHwAoWGTEEHxWKvHkCR7los8f9SDILA5B5xYXtBgpCSQuVeu8D4PYCNc65Pu+/QiJ3YktTCHQNdddZBopWk3pfQidxBWsT8wSkUT17MHLIdwTNjCCUGUZk1Og9aIbEeN/217t6sdrB0TkLxz4EtgO3CuT7zQPQ9vq2pThPMLt/hLfnyMXGrw3JE9UIeRSyfIeFmnOqchazLOiPusYuCkT0PPOKYk5rSERTf4Cvyrc6TH13Ogf2vf98eJ3E/b/hRHcGdb5FA0w4j7mF+CSzsT4KuGZHCkTmTA7Riklf054/p8awdfWz8fLBaeo4ZG5EwpN9msoMjRoJRZHIgZ5JwvtOPVe7DXb0f1e5Y8NCALKDbAWNv3gD3joPfD84g7Pg/TN1PATfQTwKL9ACiRgVbIGniuY5f/kgdSxsJXebq4F/cHV4RsVGQkjTUh0D1BEAflnFE7uBOQP9VPVRAXs6L0OdQqsBJ0Zgu/XBn7j3d7j7uzNGAwM7IEmuyXSKHhQ1wy6RZDkxAWVz9q85N2RnfEBzsAQH2UJISCYRpENtk3F9+Ihpu6y62T009BoBFni3g9+CwQHqyLE8vgI++SA2nnthcQEBdLh1CDrHpYoRVXqEsJT5e6ZEXTWOcVg2Juhj/IutksVbfSpJc85jRpcTx0Aty0J7cz2Iu0P2Dn+rODLC70A8wnyFor6EgyF69/tyuus0+L9Et0nGN4FmiWpOZEZRU9x+HAva90/6VTYGa4Z66WoPwkH1rAh2R0rIbpJSAn7Quvw3BSk6cznCPZX130HiuUOD14EhwLLEZjucgB66A/kePf04IQQffksJcUmtiA6Q+sD8zHn4oL5RdOexB7frbPn/wPMxCAEBeUltzlwEmJE8/iHIc3sQvhy8EfdSf994d8IV/axAzMKW/XEBnntVvI09mLm6gqq868fPRUGIb4zaQtnM6bq1AvA1STaIt2auhT51Me4Ffz0/CCYKq8XgjySAhwlR/OK/8XzD+kz/EjrVQE299L+/gN59Yf7FvJZ6+r5a+jcCdb8vxevGRwbwi/TDxssGPZYB53fjN0U3LrGRu/L0JoKKPQqHqsffhy2MP0IayGa9YMEyvAS8Tr62+wqBHj2gQM/Acv4Ifyb7hXyM/AE7gwC3/pSGDIOxCOnIkoXVylA+vsTwd3m7eTWttJA6pPNegmX4/Ae1ww2HucrWgwjK2f3dBOe70n6nPbM6boCQeuqBZv40/2iAmHx5P1Q7eny3/pk8kIT/f+QI8EaahwsLZQArB9V4jj3adem1LPkrM5SAl/hBRwYAgMi2CBQD3csJPg8HCfvAQAs9lfsoAJF6v0HMfbjAbkBTvJBAKXpMPbp8ory0Qxv+gIkkA3NJWEj6wv1JqznxAzc0p3k/dtuylL6MdD8F5r1ySKbIGoWcjBV/+UhF/C9CFbz/+7o/8HiJAiE7GADI//V9NsGD+nMAt7uTvhwBnrxlCBw/iwopBvQFMcrRPEUGDrWhu/A19XPn/AGzsoPt+hkIb0SOxsxMaQEaCsa8nkNm/FX78b8fOHQCNDpuwdz/qP4gwq/6EEFuuoP+UoBRvOJGjj8eiWiEAMaciEW/Hgdsd7WADjXEN2n6N/M7AV+3kYc2gUIHv4lwQw2LAr4cRcT8QH6Zfjb56ADt+lsB7n6U/4/BQzvBgA96qj23vlI9CUUWv1uJEMTzR15JqcBIh6+4ZH8FdaJ2zfmfs/1BBPgsxuxBe8ctCPZC80ldPiUEvLxCPyT+VjvdgXb8W4Jwv2J/xoCcO2z/NblY/JP9bfw9BET/fkl0BQ4I90ldgjeHWXleACQ01zgtd8K077+5d+SGTYACCBiHqgRKySO+zoQ2u9q+tv1HfJZBPj4uAsBBPIDZAfw8DX7GOSa6HHuc+YdCyf5YyT1FvAmXyx+DwQnnOzhBFbVAOCZ2ZTO5/YE2soXqPs0I1se/hTcJ2j8sRWV7nv8ZfNu7dMBKvFbDEgAZQdPDdz2EAbC53Pyu+oy5VwBDu19HKAG3yfOIIYYiysN9jgYd9jM8cbWBdXE74vUIBAi7OUglw02G38lGwVSIF/wCwcl7VvySvqw740K1PrzDVEHbQD6BXvr7vTL5HHof/by76sVtQWrKXcdeiEHJegA/BS23QP3udG/3XbjN9iqBVvpCSE4Cfwk9x70DjMeNPIQCynoNPin9NvxWwcp+H4PWgMEBiIEAfHz+izkOe8x7ybvIAw6/ZAl2hQkKNojaA25G1fmEv/P0P3ftNtp1hf7zeVzGpkE8CYGHGoY/h6P+moNGegq/FPuY/bDAeP5FRDw/vEK+/yx9i/3UuXl88/pe/iaAzQBeCD7D9oqRRqQFocV9O4fAefQkuoe1fDezfSU57kXqf7JJyoVYB20G/T/1g4I6cr8felq86D75vZrDbwAZQ6zBSH+nf5j6v70qeku8tr91fnnF0II9iOLF1cYpxuC+pALZ92s8XfXx9/a66nh6wsA9R4hqg2RHvkaIAiPFvLx/Qen7FX4yPcr8iIGvfe6CpsABAH9ABjwDPvN6j72MvoC+gsTOAWiIaUS4BooF6wA6grr4vH2k9dJ6M3nA+ZuBpfw+RzwBj0dVhdAC4IVFvfwB7LuNPym9ur27AQA+BQLKP70AUn/G/JM+vPqn/Yv9UD7mQzYBa0f/Q8KHwUVhAcyDZzpzPmq2ebnu+Mr5rn+bPM9FpUGPBwCE08Q/RKX/W0Je/Lg/Yz1hPet/1X4OwZV/pUCVgAP+Bf9yu+Z90z1gvd7BiP+FhftC3wbXRm+DRAVOPT//V/gaedt4U3iR/Y/7jIPAgOzGvIUhhQrGWoCPg1r82T8jvMv8pH+bPRuBhz+3QNxBA36egGK8Or4BfK79v0ByfzmFUMJ6xz9FPgQcBWy+J8D6OOW60Tgb+Bx8MXplgg8AnsYtRZCF24ZvAcxDG34rvv88wbyn/qz9P8CsP+YBJEHWvz6ARTyfvX+8Zbym/9m/OARUgzxGhYXSxPTFDf+cwMW6aDuLOEd47PspOe/Apf7HBSsEeAW+RpJDKgR1/w9/4D0dfI6+IvzlQEb/XgFCwZq/2cFs/Re+0nvkvK3+G/1iQx3BAMc6ROhGYIXaQXuCiPsDPYk35Pmpue55UX+dPRBEz4KDhmhGY4ONheU/VgF2/P587328+9pAMX3iAaUA9oCHwg797IB/u7k9tP0i/O3Bp/8SRgnDowbrBgWDdoQQfRP/NTgteiC4aDiFvbW7U4PPwfDG2MbxBQWGy0BPAjy8bbz0fEZ7Mz9QfRxCFQEoAciDdj72wbH7+P2D/Bz7q/+Z/YVE5QKQR7ZGWwVdhhl+7MDROKs6MjcVN0F79ToLwsBBLUclBsGGTMfgwWdCxjzJfRH79HqTPpe8/0HsANbC1ENWQAYCHXwefmJ6xfvxvh18ugOIwWDHhIYGBvSGpsDnAjm5orua9qU3sbnSOUFBJv9+hqaFzEdMyH/Cz4TTvYY+pnt++eO9YXqbgQ7/NQLYQ59BJcPE/Xz/0Lsf/AE9Vrw1AmJ/20b0BLyGqQbNgfYDgHt3vMg3yXgguce49r+O/gEFCISMBmqHigODxZo/Ov/TvIx7kH2oOzlASr4ggirBlkDbAs09gUEw+1B9pH0H/K/B0X9uhn5DhAchxjbCrAOWfAf+IvfeOUY5L/kR/q79OcRFQwDG/4bBxEeGP79wgP58eLvqfSh66UA+fYzCQcHFQZ/DQ35MQXF7Qn3NvDL8McCGvnIF5QK9B1RF5gPUxP99UT/4eH96V/hgOJ29CvvCQ1tB1cachnKFMoYZQJEB/TyjPOQ8gXsLP7b9R4JkQaLCM8Oc/zGBvnuw/at7a7tlvwJ9HMSFwfXHhIZJRa+GYj9mAQV5dLqB95b4OXsbesuBy4E/Bl8GdUZmxuBCYoJYfYt8wfvLerK9rXzeQTzBpAKehKGA6AJgPW89evtm+n89W3wsAm9BV8awxpsGh4ePAe5CQXtkOzz3l7c+eaP5TX+hgDXE2waUxrPH8oPfA0f/qLzh/Id6En0j/LA/qcF8wU7Ed4CUwsh+Xv5w/Lw65H3Ye/bBggB2hXqFOEXWhxOCZUOl/Ig9EfjD+Ee5qPjDPlK+bIO9RIpGPIdOxFWEgkC0vpl9m7ru/UU7+P8UAAeA34P8wH9Dm36R/7e88zsLveN6z8FQPy1E8USkhfvHJ0LIxKf9kf5tOW15FLla+Nl9c71UgppDkwW8xoKE5sS1gVq/RD5h+509Z3vvPqL/bgBiQwYAlEPzvurAib11PGR9s/sVAJt9ygR1wpxF0YYOw4vFFf6OwDP6M/rg+WL5h/yY/ImBtgGKBRwFWgURBOHCPwCpvph81r17+8/+qv5qAEGCJMCbg4f/FsG9/RI97D1HO9GAAT16Q55BfgWKhT5ENcUt/4HBTLrdfAV5OXmde5a740C9gLBEgoUGBZOFWMMNQaW/Ub0BPUd7ir31/bx/hcGRAPLD9D/WAov+E36qfQF7rD7q/AFCm0BdxWmEwUUOxfaBFsIF/Hq8pDlRefP6ajtu/oJAXsN9RJQFjoVHRFFBw4Dg/VZ9zfuUvX99Tf7dQa4AfIQpQHQCjr7OPkA9hPsYPkG8GkFfAIKEgMV6hShGN8J2Ai79sPxz+es5F/nteoL9un/pgl5FU4VdBovEysKswbQ8+359ukf9Xjy6Pg5BTr/MxMMAVcQdf1H/cT41utO+Szr6QFl/PkNYhK0ExYc8AxPEJT8OfZ17JniSee/5OfwwfoZA6UT8BFgHeQUjBCZCyL5Iv506RX2m+zi9oH+T/xaEDgAPBNg/90DEfs88Ej5b+oW/w34LgoWDQQSaRlyD6gS7QEi/bTwcOg758HklOy59I39uAwpDzUbWBYSFakP6f+NAY7sYvYy6mz0hfgX+rQLyQByEwsCXAm2/fz2F/n27D/7yfMZBWEF9Q9jFC4S8BOCB8EC0/UZ7rzoEefE6d/xFvgDBk0KFhbbFDQWkRJDBmMGGvMY+brrv/MW9XX3Ewad/mUPRQKaCQMAqPr1+h3xavov9fQBmQO2DPoQUhH/EXcKJgT9+izxTez16Pnod/He8yoE/AV+E2gTzBR8FLQGowm/9C37xe0o8wL2SvWEBAX9IQ2yAoQJUQJX/UP94/MY+lL1P/6wAHMIhQwvEJAPsQ1RBoQANfdF8IntU+jU8CHv4f7dAMINYRGlEkEW1wlrDRj7Of7u8YzzcfRz877+FfsSCHYCIQl1A+kBi/4m+RH6DfdE/Dn+ngVTCPYOsAyLD8EGkgSa+j/0SfGb6cDyVOxr/e76pwlJDHoPsRWJCv4RC/5OBM3zXPZK9JTxeP0W98gGOQAlCXEEDANqAWT58vug9SH7TPzYAWcHeQugDYQPHgpcCDv+/vjH8afrEe9W6qP47faOB3UJ8hBBFSwOPBOoAUgGb/Uy+Jzy8vGJ+fn12wM1/4MJxASgBm0Cxv0R/Cn37fnc+PP/kAFIClAKExCMCwwLywKB/Df2ie128PjoHfbX8lMDNgWuDh8UrQ/rFaEELgrv9mH6kfG68Wz3ZPS/Ajz9qgqwA0gJHgNh/6n9S/ZX+iD2c/4X/xIIlwlbD/cM2QyHBb7/5PjW7/zw0egD9K3wNgA8Al0MwBGvD2YViAcFDIj6N/2F8qHzAvVr9P/+NvyECNICYgqoAgMDQv2j+Xr5E/c1/c38SQc8BfUPGwoHD/oG1AI1/TPye/R46Ff0ee3l/E7+wQfcD3YNdRZcCZAOpP4n/wb2t/PX9WbzCf24+4YFigOECBEENQMX/h37cvga+G/62PxnBPoELQ/8CUsRdQfPBjz+SvUS9dboVfP86mb6ofo/BQANJw0HFjYMqhCVAggCUvd29SHzGPO3+Oj5JgMxAvQJqgSCB8T/5/5b+cP3cPll+DYCRgA0DT4JIxGTCyYJUATh+Gv4++rF8OHp/vMX94IAigmNDd0U4hCWEu4HdAWN+XH3t/Bv8qTz9feI//cAsgooBekLjgF3Apf6b/dM+Jn09/77+3UKuQciEVsOQAz+CZb9RPyM7rLvhOkL73nyNvvAAzcLDhITE2QU4QwwChr+wvs18k3zcfEY9T/7N/0eB8cD1Qt0A/wFjv0i+0n5l/S4/Gr4ugZKBEQPSw4pDhwNHQIuAGTytvED6mDtc+/H9lT/GgcoD60SnBT+EAgNRgPh/kn0x/Qn75b0lfag+9ADcwJ3DEsDrQmh/lD+NPri9Bz8HPaEBEUBNg0EDUEOnQ7YBD4DL/YL9CvsYu1d7lH0ffumA/oKbxDbEksR7g7hBQ4DcPfc9/fwbfQi9hb5ygFGADAKTQOjCHkAJv/9+9j2zPsy9/IBJgA1Cs0Kbw0CDlgHkQVp+lr3D++X7svtFvL995r/2AazDcIQMxIlEMAJaAbm+p76+/C09BbzevdW/r/+VAksA1ALhgErA9P8d/hZ+yn1TwAg/K4ItQdhDW0OHQmSCRr9xfsK8bjvle0877T1yvoGBE4K3A7QEgYQ4g33B3f/4vzX8mn2GvG99+L5lP2uBcoBUAtBAZoGi/1y/JX7yvY2/1v6Jge0A9gMGAtECsMJiP+G/0fzBfQY7qHw1POE+OEAYAbPDPIPSBATDvkJWQIO/3T2NPeo8v/2j/hP/MMCgwEaCR4Cnwag/gX+hvvi95P9Q/reBC4DwwuwCoYLAAqlAj0ARva69KXu3fB78f73VP31BKUKxQ6KEFsOCAz/A2cB2/eH+Arzq/ax9/f6TQFGADcIzgHqBkv/SP9L/PL4Vv0d+m4DpAFMCisJqQv8Ce8EXgJi+Wn3O/BM8TvwdvUG+qEBWweLDXYPKhDcDXgHrwTb+dj6pfGk9sH0GPmk/1n+2AhtARkJUwCOATH9Kfn7/JX38AFn/uoIJQitC2QMnQaKBrP72/n18TLwNfCd8R74e/2VBMELhw0iEvwN2AupBon9Nv1i8sn3BvKw+Jj7IP2ZBmQAhQoIANoE1f2Z+6L9ivd5ARH8agdvBaYKbwtiB1UIJf4H/U70YvK+8AzxXPZy+nQBAQj4Cn8Qvg2hDccIagH5/0P1Wvka8pL4IPnt+7IDTf+tCeX/cAZj/of9zf2B944AafrdBdkDyAmIC14IDgqtAIz/2vbN81rx4+939Jr3XP7IBc8IURCcDUYPewrSAyQCePaY+hPxQ/jt9sL6lwJ8/lYKOgBaCG//Qv82/mr3mv9h+B8EQgGKCHwKkAigC6wCogKS+aP13/Iv71/zBfV9+3MDUAbvDxENIBHhC14GRQTA9wf8YvA/+Lr0w/mCALf9+wlKABIK7P92AVr+d/jk/jb32wK+/qoHuwgACUYMagRTBab7e/jr8xbw2vLd8sX5h/9KBAANwAuHEfgLugm/BbT7kP0j8t34UPN5+RH9Kv39BgwA2gkYABoEaP6e+0H+EfizAdD89waWBXIJWgrkBXMGVv1A/OH0f/OT8h3zUPhM/J0CqAi8CjoPEgzkCokGg/+i/tj1q/lH9Nn5+fox/f8D2/86CO//wQQi/sL9kP2d+YYAEfwDBt4CtAkrCIgH5AaG/3//HvY499nxbfQ59tD5kQDqA/sJ0QvkDLYLQAj5A9D/LPpr+Y71w/iE+Jf8cP95AJ4EKgH/BMv+ewHN/LL9qP5v/UUE6gBoCe0EFQkFBQ4CLQAy+Ij5KfKT9or0HPra/R0C/gcxCZYMbAp0CfoEpwHO/Of6vPc++Wf4GvyW/Z7/ugKQAD8E3f4XAjH9Xf+d/uf+VwPpAC4IeAO3CIwDRwPq/2r6f/rN8wP4QfTQ+ub7RwG6BTcHYAv6CPQJVAVqA2f+uPxC+dz5BPlj+yP9a/7cAeP/sgMh/wUC6P1W/9D+mv6aAnoAEgduA1YIYAQmBGMBXvzD+6j15/d99D/5C/p1/9sCbAaNCUwJVwpgBpkF2P/1/jn6vfrh+NL6KPxH/coAN/8wAxn/TgIL/vv/lP78/vcBbACXBuICcwi2A/4ERQGp/Y78w/bk+L/0Uvk0+Ur+YwETBQwIQgl3CbMHxAV6ASMA4PpI/PT32vsD+oT9Pf/C/rQDYP5gBHP9pQEB/tD+PAG//uYFJgF7CI8DOAYaA5r/HP9L+BL64PQb+MT3i/tV/7ECrQa7CH8JfwnmBlEEdAHM/Oj82/ef+zb4B/0B/Z3+iAKt/ggFvv1dA8f9DgBYAFL+vgR2/+wHNgLXBnIDOgHqAA/69vui9dX44/Y5+jj9y/+3BGcG9AiICQkIuwZlA7b/K/5S+XH7fvfs+9f6yf20ANz+7ASN/sQEQ/44AbP/NP5KA4f+9AZDAVcHXwPxAiwC6fvd/Wv2i/kk9j/5afsK/vkCzAQ9CPsIkgivB6oEwwF1/xD7AfzZ95n7z/kn/Qv/av6AA3f+RART/g0CiP+v/8ACSP9rBsoAWAdhAs0DpgFB/TH+f/dt+g/21vkp+nj9aQFeA04HwAehCJAHhwWuAqcAf/zp/Ab50vsJ+qn8WP6+/YUCDP7GA0X+EQKl/9T/oAJf/90F3gDVBqkC/wNoAjr+Gv+8+PT6x/Zm+df5KfwwALgB7gXNBtEHDQilBVEEhQFL/gn+6/mk/Kz5A/32/JD98AB5/fACev1UAvj+vgBEAhoADwYQAZ8HRgLoBO4Btv45/5L4qvtS9ur5WPm8+8//iADABYsF4weJB8MFMwVzAR8A+f2L+/n83fm1/Yf7OP4t/3z9NQKw/AYDwP34AUgB1ADBBaEALggnATIGUAErAO7/cvkv/SP2Hfs0+Mr7Uf5U/7oE3QPRB4MGdwZqBXkCJgHK/qv8Lv2m+nX9svvz/X7+nf0NAfX8MgKP/dMBZgBQAX8EgQFyB+UBtAY4AeIBRP9Y++38+/aN+2P3Mvxo/Aj/7ALEAi4HXwVTB0sFDQSBAtn/c/4s/Uj7yvzS+nr9+/zA/UgAiP2mAtr9HgPP/wYCTwOdAG0GIgCjBnEA/wJrACf9Gv9Y+DT9aPcm/AX7Ov0UAZkACwZRBFkH5gX+BC0E9AAhAND9G/yo/En6Dv25+6b9KP/Z/TsCNP5dA43/gQIpAuwAMwX3/5EG+v9gBDsADP+m/4T5QP459+P8m/nc/FL/Jv8ABdgCggdqBewF2gTwAUcBQv4X/af8vvru/Gf7nP1v/t/9vgEF/moDHf/4ApkBWwGnBOf/RQZv/6oEov8mAJz/9/rK/hz4s/1J+Xf98P31/mcD3AGTBkQEJgZvBBoD/gGV/zr+WP17+878dPsW/fL9Z/0jAc79AgP//tcCUQFfAScEDADlBcf/+QQiAAsB7v/6+7L+nPgs/Q75y/wb/aj+ZQIIAugF2gQTBuEElAPvAUcA7/3//V/7Mv2e+zT9Iv5A/RQBev2DAp7+JwLmABEBwQN9AK4FnAAbBcwArgEnAN/8bf5a+Zz8Hvls/Gb8sP5ZAUYCBAXYBMsFkATsA5MBBAHT/Zv+zft0/ab8TP0q/1L9TgFm/aABLf6MADsApP8gAw0AdQV7AYwFdgKoApMB6/3d/sH5Cfyy+DP7YvuM/VcA1AGpBGAFFQaxBYkEcQJvAdT9t/4E+2/9p/tW/cr+gP3XAZr9vwId/kYBpv9X/0QC/P7cBFUAtwX6AYcDGwIW/yQAofoT/cP4YPuj+sH8Hf+dALIDigTqBb8FLQVZA14C7P5R/6z7ev2S+w/9Gv5b/TMBq/2XAib+mwFw/3b/rgF6/igEvf9ZBRwCAgQ0A0gAhQHW+7X9L/mU+vb51Prd/bj+ogLpA5AF0waGBU0FIQN5ABYA5vvl/Z76Ff3l/B79qABc/e4C7v1NAkD/3/9iATD+xQPl/iUFZgE0BH4D1wDRAqD8Nv/h+UP7DPor+jP9Kv2YAWMCxQQmBkgF2wV5A7EBxQDt/KD+z/qM/Wz8S/0MAEj9lwKI/WECrf4WAOgARf6IA83+KAUrAYAELANmAacCKf2k/yH6HvwI+s365vwD/RIBhQE/BEkF7ASbBXUDPQIaAZ/9G/8R+wz+HfyY/Zb/Vv2aAkr91wIi/pgAPgA2/gQDCf4cBTYAFwXOAmcCWwMW/uEAZ/oE/Y35yfr8+zf8QABqAPcDkwRABbIF7wMTA18BrP4T/5z7+/29+8b9c/68/ZgBmP3rAu39uwF0/2f//gFa/n8EiP9MBaUBWwOrAlH/PwE++y7+e/mj+wX72vsc/xv/SgNIA10FawWgBPYDBAILAF3/jfzW/cL7n/3K/eX91wD2/XUCCP68AfL+uP8hAYf+1AM6/1UFTwEvBMgCcgDmAe376/5g+Qf8Q/qj+zT+YP7JAmMCZQUBBfMEYgRcAgIBjP8y/dv9l/uj/RH9IP4xAFb+bQI+/kMCpP5AAFcAb/70Arb+/gS4ALUEkwKWAV0CD/3Y/735q/yd+Xv77vyU/ccBrQE/Bd8ElwXLBDEDgwH7/3T9x/1q+1/9pvz+/eL/iv6sAoP+6wKh/rcA0v82/iYCxv1/BN7/+ARzApICEwMq/uoARfpz/V/5Xvv4+5P8nwBxAKEEUQTaBU4FFASpAsEASf4V/mH7JP3m+6z9Lf+D/o0Cwf5qA8D+WgFt/1T+UgEo/bgD8/7dBC0CZQPcA4b/OAJR+z7+XPkS+/b6VPtU/x7/2QPTA/oF5AW6BNoDegE0/2r+dvsK/Tb7YP1J/mb+KwL7/u8DBv9dAmT/Gf/JAPT87QLJ/W0E0QDDA2gDoAAxA3f8/v/T+UD8cPoS+yL+s/20Ak4ChwVsBTYFsQRsAq0AKv9L/EH9v/oq/RD9Av4mAcL+1QMM/z4Dav8gAJcAQ/2XAh39OATI/+8D1wItAXADI/3cAC36GP07+kX7df0P/fMBVgEgBQEFUgUjBfMCiwHA//D8lv3L+jX9ivzu/YUAp/6cA+b+fwMk/6AAOACK/S8C5vwHBED/NQSEAu8BsQMH/pABovqx/e35OPuK/FD88wBNAJUEYgSFBWMFogOfAm8AEf7i/SX7Jf3Y+8D9Zf+T/uAC7v7FAxT/mgHq/2r+qgEA/boDgP5jBIYBnQJYA9f+MwIl+9f+2/nv++L7BPwbADX/BgQwA4UFCAUIBEIDAwEz/2P+6ftA/cf7jv2c/ln+JALO/qIDAP8DAq3/0/5WAQD9UQMj/koEHgEJA0wDwP+mAgr8e/8U+kf8QPuv++n+gf4YA7ECXAUZBbYEyAPyAb//3f4Q/DD9ZPs6/R7+K/74Ae/+8gNA/6wCqf9k/9kA5/yrAlH9/wM1AF0D/QKSADED0/xyAG36BP3k+qf7H/61/UUCtAECBZ4E8wRABHYC0AB3/+H8cP1E+y39Iv39/dsA0v6HAzv/NAOM/20AfwCo/S4CSP29A3P/sQNDAmgBJgPH/S8B4Prl/YD67vsh/Q79QgGcAIIEAwQsBacEOAPoASYAyv3F/Uj7Iv1A/Mz9x//D/hgDL/+0A3P/YQE8AEj+wgEF/UsDmP6WA4EB3AEpA6H+9AGs+8b+yfo0/KX8fvxFALP/lwNlA9QEzgScA78CAgG8/oT+t/tY/dH7gP3d/kv+WAL2/rsDhf8fAkYAJv+NAUH96gL1/VsDigAVAqECV/9QAoz8tf81+/X8Ufxy/FH/5v6bApECcASZBPwDTAPJAYn/Nv8b/Ij9g/s//RP+8/3HAdj+4QOV//ICXwDp/2MBZP1/AmX9AQOw/yMCJwLe/6cCPf2RAJv7lf0h/FD8rf4A/uYBmgELBGEEAQQLBDACoADH/6r8Cf4k+4D9GP3j/foAi/7UAzH/mQMCAM4ALQHP/XACBv0oA9/+fAKfAVYAygKX/VYBwftr/vP7ffw+/lT9aQGQALsDuwP9A0wEWwKuAQgAsv1D/ln7rv1c/BX+7v+c/kADHf/yA7b/xgHFAJj+DQL6/PwCB/7MAqcA+ACAAjr+7QEK/GL/vvsE/a/9Cf3PALX/cAMPAxoEXgSxAmwCTgCB/lv+hfuu/cH7Df4C/8L+0gI//1AEpv+PAmAAJP+QAcP8uAJV/fcCHQCPAagC9f6tAnD8HQCW+yD9C/1g/BAAwP7+AoQCKwS0BC4DZwPhAHj/t/7F+7D9I/vi/ff9k/4JAjf/dgSe/3MDJQAYADgBBf1sAp388wIL/wMCAgKx/wUDEP0zAZ/7E/5k/HH8If/a/UACZQERBDwEugPzA6wBnQBC/5X8tv3r+o394fxR/voALf87BMX/WAQpAGUB2wDg/eQBUfyXAtL9NQLQAHwAtgIG/vUBM/xG/zb8Ff07/nn9PAFRAIgDaQP0AxAEcQKVAQYAsv0J/jD7Zv0N/PH9rP/r/nEDtf+yBDcAkgLFAOr+jQFl/EcC6PxFArn/8QBUAq3+oQKj/HMAF/zQ/aL9Fv17ABT/GgM3AhEE5wP2An4CmQD0/mH+7Ptc/dX7pv3C/qf+jgKa/3EEQAAeA9IAtP9xAeb8EgK5/B8CF/8XAdMBJ/+wAir9/ABc/Ef+WP0m/db/r/5pAs0BugPRAx8D9gIuAYf//v4j/LD9YfuT/ff9TP4AAj7/cgQIAKwDxwBbAHoBPf0fAo38MgKa/koBcQFv/6oCef1MAXH8nf4t/RL9Xf8//t8BPwFsA64DOANYA5QBOwCE/6j8B/5d+6n9af0r/lkBDP9FBMv/CgSCAPMASwFy/QkCOPxDAvX9iQEZAdX/9gLO/QoCmPxC/wT9I/33/qL9cwFzACwDRANLA7ID2QEpAd//eP1R/mn7xf2n/Br+VwDQ/ssDkv9mBEUA1gEUATD+6gE3/F8CU/3WAVYANACrAh3+cAKs/AUAyfyZ/Yz+Vf0QAYr/8wJ6AksDrQMdAugBLQBs/qL+zfvz/UH8Hv5s/6b+/wJK/1gE8f+ZAtEAQ//PAcb8bgL1/CYCVf+sANkBkv52Atn80QCi/Hv+Ff6W/XEACv+LArkBRwNHA3QCKwKsAB//Av9n/CP+Qfwg/sz+iP4/AhP/DgSz//cCjgDi/5sBJf1mAtf8VgLw/hIBkAH7/nwCGv0hAYb8xf6l/ZP98P+w/jQCOgE+AxcDrgKQAgQB3/9O//L8Pv4E/Bz+3/2J/lIBDv/YA5v/qANKAPUAOgHW/RwCo/xcAvz9fAGkAKn/UgKt/cABsvyp/0P9+v09/0r+jwFrAAIDkgL2AtwCjwG9AMr/rf1x/hf8/v1A/UH+bQDf/kQDiP/TA0sAxAEiAZ3+7QHL/D4Cbf2cAdz/CQDvASX+FwL0/GMAKv11/sL+GP7rALL/lQLzAfEC0wIAAmMBWwCQ/t3+avwZ/rv8E/5i/4v+iQJF//sDFgCyAg0Bpf/jATL9OwIA/cMB7f5eAEUBjv4gAjn9BwEi/R3/bf5B/msAPP8oAjsB1QKLAjwCyAHKAFv/SP8a/UT+uvwI/qT+Y/6QARb/aAPi/+8CygCOAKEBFv4bAkf92QFv/r0AcwAU/5IBl/0ZASH9nv8E/qD+0f8e/7YByAC9AioCgwL5ATwB/v+h/6v9Z/7U/Pj9Mv5I/uAABf/4AuX/DAO4AB4BbQGs/uEBaf3DAST+5QAFAHf/cAEI/k0BVv0DAMf93/5M/wf/LQFsAIIC1AGjAt8BnQFSAA4AK/6t/gr9+P3s/Sj+TwDi/o8Cwv8QA5kAhgFUAQ7/uwF7/bQB3v0RAav/3/9NAX7+igGR/VUAo/3o/sD+r/6NAOn/LwKbAcwCLQIXAv8AigDD/uj+Hv3p/YH90v2x/47+OAKe/zQDowADAmQBhv+/AaL9oQGQ/QYBN/8FABAB0/6vAez9tADB/S3/kf6T/iQAgv+xATsBigIuAj8CXwEHATr/Zf9T/Sr+QP3A/Sv/Q/7DAUr/OwNzAHcCQwEmALMB6v2qAVn9HwGw/jIAsAAH/8QBFv4dAcT9i/95/ov+3P8Y/1sBtABfAg0CTgLNAUMB2P++/639dP7z/OD9cf4v/hoBEP8kAygADQMGAd8AiwFb/qsBMP1PARn+fAAqAE//uQFL/qYB2P0wAD7+wv59/6n+BQEAAC4CoAFiAgEChQGcABEAZf60/g39Af7S/Rj+OgDj/psC7/84A+UAogF2AQ7/mwFT/VABlP2ZAHb/p/9XAZv+0wHv/bkAGv4u/xz/pv6kAJX/7AE2AWMC7gHQAfwAdgDp/gX/Tv0c/pb9AP6w/6P+JgKb/zEDogAVAlUBof+lAa/9gAGA/eAAC//a//gAvf7AAf/98AAC/m//5f65/lEAaP+xAfMATQLoAfABRAG6AE3/Xf90/WX+Tv0d/iD/jP69AWf/PQNXAJACFwEhAIoB0P2VATj9GgGa/iQAxADz/uQBFv5TAev9p/+r/pr+DAAM/24BogAoAuoB6wGdAe0Awv+g/679nv4d/Tz+r/5//k0BMv8iAxYAwwLgAHsAbQES/qIBJf1CAVj+ZQB8AED/8AFP/pwB+v0DAHz+r/65/8f+FQEpAPcBqgEAAs8BLgFNAP7/M/7i/jH9Uf5I/lz+uQDy/s8C0v/xArIACwFkAX7+pQE3/W4B7/2YAAEAiP/BAYH+1AH9/WEAT/7Y/mT/jP7EALP/xgFPAf0B4QFwAcMATwC4/ij/a/1u/vT9Uv4jAMv+ZQKf/wsDhQCaAS8BFv+LAUz9aQGK/cYAb//G/3IBwv4TAiP+CQE6/lf/GP9y/mYALP+MAcEACAK+Aa8BJAGsAFT/cf/B/Yr+yf1C/pf/nP7rAWD/8QJTAOYBJAGL/48BlP18AXD94gAL/+7/HQH5/goCVf5SAU7+rv/m/p/+///6/iYBWADTAX8BwwE7AQIBsP/e/wz+x/7O/Tn+SP9e/nYBGP/LAhYAIwINAQsAkwH6/Y0BY/0CAaf+HQCvADP/9gGL/pwBXP4eAMb+1P64/8j+zAD9/5cBNgHJAVwBRwElAEMAhP4d/9b9W/7d/jb+7ADU/oAC2/9QAt8AhACGAWj+lQFv/RwBP/48ABwAXP+kAaj+vwFv/oMAvf4k/4f/0/54ALb/UwHuALcBRwF7AV0ApgDR/n7/+v1//qf+Gv6KAIL+QQKH/38CsgD7AIcB0v6yAYb9NAHz/VoAr/93/2EBzf7QAYn+0AC+/m7/Zf/Z/kAAfv8JAboAjAFTAXsBpQDeACz/0v8H/sz+Vf45/vn/aP7VAT//fgJqAHQBYgFy/78B3/1iAdT9jABE/5j/8QDh/pkBlP4OAcH+z/9O/wv/GQBU/+UAZgBaASoBcgHGAAYBif8mAFP+Ef9C/lT+i/9A/loB5/5lAgUAxAErAfT/vwFE/pEB1f3AAOP+wP97AP/+eAGc/jUBuv4YADb/MP/x/0D/rgAfAEMB7wBuAd0AIQHg/1wAsv5d/1L+gP5A/zn+4QDC/gkC0//fAfYAaQCgAcz+oQEM/vwAlf4EAPf/Fv8WAaj+NgGr/nEAHP+R/8H/W/91AOL/GAGkAG4BzQBEARAAqAD//qb/fP6w/hf/N/57AIP+tAF8/88BswC9AJYBLf+8AUP+IwF6/jIAq/9O/9kAvP41Aaj+sAAA/87/mv9W/0kArv/3AGkAVQHFAE4BTwDJAFD/2f+i/uf+5P5U/hMAdv5eAUP/3gFoABwBVwGi/6oBdf5LAVP+eQBF/3v/iADO/jUBpv7tAOv+EwCC/2//LwCA/9EAIgA+AaYARAF9AOYArv8ZANv+Lv/L/oD+pf9q/ucABv+vARcAXgEiATMApgHo/nMBYv6pAOf+tv8EAPj+7wCu/gEB3f5pAF//t/8FAIj/qADn/yEBaABHAX8A9gDu/0QANf9j/93+sv5u/3P+iQDg/moBy/9qAdcAfACBAUz/fwGP/uMAwv4BAKv/MP+jAML++ADI/pcALv/5/87/oP94AM3/CwExAEQBbQAcAQkAfQBh/5X/AP/H/lb/dP5GAMb+LAGe/3IBoQC+AGEBnP+AAb/+BQGs/isAbP9W/2gA4P7tAMv+uwAb/yEArv+//00Axf/eABsAMQFgACYBIQClAIf/2v/7/gH/IP+H/vf/rP4EAWD/ewFaAP4ANAHl/3cB2/4iAZ3+YQA7/5b/LQD//uIA1/7VABH/SgCG/7z/HgCl/7MACAAZAWwALAFaANAAxP8EABT/Nv/o/qP+o/+c/rsALv+HASEAXQEHAVEAZAEP/zgBav6NANX+x//f/yn/1ADm/hABAv+SAF7/2v/u/4v/iwDJ/w0BRAA/AWQA8QD//0QATP9c//X+s/5g/4/+aQAP/1IB8/91Ad8AoQBcAWP/PQGC/qQApP7m/4//TP+oAP3+GQEF/8oATv8WANL/l/9ZALT/4AAfACMBZwAJARQAcABt/5n/A//j/kD/kP4uAOT+MAHE/40BrwDlAEMBmP9DAZT+yQB7/goAT/9l/3sAD/8gAQ7/4ABQ/yoAu/+P/zYAmf+zABIADgF2AA8BSwCfAKD/2//5/g//Cv+f/ub/zv4RAX3/oQFqACIBKAHl/0wBsf7yAF7+OgAZ/4r/PAAN/wYB9v73ADn/TQCg/6v/LACM/60ABQADAXEADQFjAKQAuP/3/wv/M//p/rn+pv/E/tcAWf+cAUcAZAECATsATwHy/gkBY/5vAOH+rP8GAB7/9ADu/hEBHP9wAJL/tv8cAH7/oADi//gAbQAHAYYAtADp/xoAKf9W/9D+3f5i/8D+fwA8/2gBBACCAc8AkQBBAUf/KAGF/qQAtv7b/7H/OP+qAO3+9gAJ/5MAb//l//z/jP+HAMr/9gBZAA4BjgDHACEANgBY/4v/3/7v/iz/wv43ACL/RQHW/4UBpwDTACMBjv8wAaT+twCv/v7/h/9Y/5EA9v76AAD/qwBV//v/2v+O/2UAuf/UAEEACQGaAOMARQBqAIf/r//n/hP/A//K/uL/Bv8AAaX/gwFuAAcBFgHs/0MB1/7kAJb+MgA6/3z/SgAB/+4A6f7MADv/LQDH/53/XACc/9IAFQADAX0A4gBoAGkAxf/J/xn/Nv/9/uH+pv/0/r4AfP90AT8ALwHiACUAMgEC/wcBkv5nABr/qf8hACL/6gDv/ucAIv9NAKH/oP86AH3/vgDn//YAewDtAIgAhQD+//D/QP9S/+T+9f5u//r+dwBj/1QBFwBWAcIAbAAiATz/+wCQ/oEA2P7T/8//P/+7APj++QAa/4gAi//U/xkAgf+cAMX/5ABMAOMAhQCTADEAEwCC/4L//f4V/zj/+v4xAEj/KgHe/2gBlQCpAA8Biv8kAbL+tgC5/gAAkP9W/4QA9f78AAH/qwBw/wMABgCG/4wAqP/XAC0A4ACHAJoATgAdAJv/mv8L/zL/If8L//b/Of/yAMP/ZAFrAPMA8ADX/xkB3/7PAK3+LwBF/37/RAAI/+wA8v7PAFP/MwDt/53/fwCM/9QA9f/hAGUAowBkAC8A3P+y/0D/SP8e/yD/qf89/6UAov9MATIAFgG8ACUACAEk/+YAs/5iACf/r/8TAB7/zwDp/twALv9ZAMD/v/9mAJT/zgDc/+QAUwCqAGgAQAD5/8j/X/9j/w7/Nv+A/zv/YACN/yMBFQAyAaUAcAD5AG3/7QDF/oAA6P7S/7X/Nv+EAPH+5AAc/5IAov8EAEcApP/BAMX/6AApAL4AWwBTABgA3P+P/3X/Nv84/3D/Mf85AHn/6QD3/yABhwCUAOQAsP/1APT+nQDl/v3/if9b/1YA/f7JABT/nACB/yIAGACx/5wAuP/cAA0A0ABcAHsALwAGALb/kf9I/0D/V/8p//T/W/+6ANH/HwFsAM0A3ADx//0AFf+xAN/+HABg/3z/LAAQ/7YAFv+vAG3/NQAAAML/fQCq/9EA9v/JAEsAhgBRAB4A5f+l/2f/Tf9J/zH/wf9W/3wAv/8MAUsA5wDHAC4A7gBS/7kA+P5AAEb/rP/9/zH/mgAP/7QAUv9HAND/zP9dAKf/xgDn/9AAQACYAE8ALwDx/73/df9k/0T/Mv+j/2D/XACq//cAJwD0AKAASgDdAGn/xgD3/mAANv/L/+H/Sf+MABb/wgBA/2oAuP/t/z4An/+tAND/zQAkAKkATABPABcA2/+c/3T/Wf86/4z/VP80AJb/zwAOAPUAiQB0ANUArf/WABD/cwAb/+r/rv9k/1kAJP+yADf/hwCe/xMAJgC9/5EAx//IAAMAtQA4AGgAIAD0/8f/i/9x/0r/g/9I/wkAg/+fAPP/4wBzAJEAxQDb/9EAP/+CABT///+F/3z/LgA1/6gARP+eAIr/MgAHAM//cAC0/7AA4/+3ACUAdgAmABEA2f+j/4b/U/+F/0H/4f9y/3kA3//YAFoAswC9ABEA1gBj/5EAG/8LAGT/jv8JADz/jwA9/6sAgP9SAPb/6/9lALv/qgDT/6cACwB0ABwAKQD3/8H/rP9w/4//Sv/Y/2f/VQC8/7EAPAClAK4ALADYAJD/rQAy/zUAV/+n/9j/RP9lADH/lwBt/2sA3v8LAFIAw/+YAM3/qAD9/4AAHwA0AP//1v/E/4X/nP9O/8P/W/8yAKr/mQAkALAAkABUAMkAtf+tAEP/VABB/8z/tv9m/0EAO/+UAFv/hQC+/zIAMQDg/5IAw/+vAOP/iwAPAEcACgDq/9H/lP+l/1j/s/9c/xEAoP95AAsAqQBxAG0AswDp/7UAbf9wAE//9/+S/3n/DQA+/2wASP+IAKX/QwAZAPH/gQDE/7AA2v+SAAQAUgAPAPf/6P+e/7X/Yf+w/2r//P+V/14A7v+YAF0AeACgABIAtgCQ/3kAV/8QAH3/kv/v/0j/XQBI/40Aj/9gAP//AgBnAMv/qADK/6EA+/9pABcACwD//7H/y/9z/7H/Zv/a/5H/KADg/34AQACMAI0AOgCyALf/kgBk/ywAaf+z/8b/Wf83AD3/gABv/3EA6P8iAFkA4v+nAMX/pADr/3YA+f8gAAEAuv/f/3X/x/9e/9X/gf8XAMj/aQArAIAAfwBGALIA1/+eAH//SABw/9P/uf9q/yYAP/9tAGX/WwDL/ycAQADo/54A0P+uAOr/ggAVACsAFQDP/+D/iv/A/2X/xP94/wAAu/9RABQAewBvAFgAnwD3/6EAj/9cAGz/8/+o/4L/FwBH/2UAUv9xAK7/NAAoAPT/iADH/68A1v+MAPv/QAACANr/AwCO/9r/aP/Q/3T/8/+w/zwACAB0AF8AXQCcABIAmgCq/2oAf/8MAKH/oP/7/1f/TABP/2EAnv8+AAYA/v9wAND/qADP/50A9f9XABAA8f8DAKH/4/9x/8z/bv/p/6L/KQD5/2MATQBmAI0AIACaAL//cwCD/xsAlf+w/+L/Y/87AF7/ZQCT/1AA7f8XAFYA2v+ZAMr/mwDt/2MAAAAOAAMArv/u/3j/0v9n/+X/kf8eAOX/XgA3AGgAgAAqAJoA0v95AIf/IQCL/8P/zv9//y4AYv9iAIv/VADh/xsAQgDo/4MAzP+bAOn/dQD9/yIAAADI/+//hf/V/3P/3P+K/xQA2v9JAC0AZgBzADsAlQDl/4EAnv8wAIf/2P/E/4z/FwBm/1cAef9fAMz/JgAtAPH/dgDO/5cA6P98AP3/KwACANv/9v+R/9r/eP/Z/5H//v/G/z0AFABlAFoARwCHAPf/ggCo/0YAg//q/7X/mv8IAGn/TgBx/14Auf8uABwA+P9xAM7/mgDj/4cA/v8/AAIA5v/8/5z/3f+B/9H/kf/3/7//NgABAGgASgBUAH8ACQCKALn/XACF/wUAo/+u//H/cv8+AGr/ZACd/0AABAAJAF4A2P+RAND/kgD5/04AAAD3/wAApf/q/4D/z/+K/+n/tP8fAPj/VwA7AGUAcgAnAIQA0f9pAIz/HgCU/8b/2f9+/zUAZf9jAJH/UADr/xMAUQDi/40AyP+RAOX/WQACAAMABAC7//b/if/V/4X/5P+o/w8A6f9KAC0AZgBpADsAfQDq/2IAmv8vAIf/3P+9/5H/EABt/1IAg/9gAN3/LQA5APz/fgDS/4oA4v9lAPr/HAABANH/8/+c/+H/hv/r/53////U/zQAHABRAFkAQgB/APr/aACz/0EAiv/v/63/n//6/2r/SAB+/18AzP9DACEACQByAOD/hgDQ/2oA7v8yAAEA3//+/6v/4v+M/+j/lv/8/8b/LAAMAEgARwBBAHQAEgBzAMf/TQCX/wAAov+u/+//e/83AH//WgC8/1AADgAcAFsA6P+CAMr/bwDj/zsA+//0/wEAsP/r/43/4/+P//P/tv8XAP7/RAA9AEQAdAAhAHgA3P9WAKX/DACd/7z/1P+I/yAAhP9TALL/VwD6/yEARwDy/3QAzv90AN7/RAAAAP//BAC+//7/lv/j/5D/6/+u/wkA8f83ADAARgBjACkAdwDt/2IAsf8eAKj/z//L/4//CwCB/0QAqf9TAOv/HwA/AO//cQDM/3wA3P9KAP//DQAFAM3/BgCi/+j/l//s/6X/AwDf/yoAHABIAFgAOABzAP//aADC/zUArf/l/8j/mv8EAH3/NgCc/0wA1P8nACgA+v9jANr/fADc/18A/f8aAP7/3P8GAK3/8f+a/+X/oP/1/9H/GQAJAD8AQwA9AGsABwBvANL/RgCu//r/xP+w//r/gf8yAI3/OQDC/yMAGAAAAF8A4P95AN3/ZQAAACUABwDn/wYAuf/6/6b/6f+1/+//z/8TAPv/OQAvAD0AXAAPAG8A3v9LALH/CQC8/7z/9/+H/ygAjP9CALj/JQAMAAAATwDb/3cA1v9xAPv/MwAPAPb/EgDC//b/pf/l/67/5v/I/wYA6f8vACAAQwBOABgAbQDm/1sAtf8ZALr/z//v/5P/IACH/0MArP8vAPH/DAA/AOD/ZwDV/3MA9f9LABYABQAUAM3/9/+s/+X/qP/d/8L//v/k/yIAGQBBAEcAKABoAPH/YgDF/ygAtP/i/93/n/8VAIP/OACb/ywA2v8RADIA8P9jANn/dQDy/1AACAALABkA0v8HAKz/7v+r/9//v//x/97/HAASACwAPAAlAFkACwBmAN3/NwDM//z/2f+1/wMAjf8oAJf/LgDK/xcAHQD4/1YA2v9zAOz/ZAAGAB4ABgDj/wcAsf/6/6X/5/+2/+//1/8TAAoAMwAvACQAUQAPAFgA5P89ANH/BwDZ/8f/9v+Y/x4Ak/8sAL//HQALAPv/SADe/3IA4f9qAP//MwAEAO//CQC6//z/pf/t/7L/6f/Q/wkA/f8tACcAKABUABQAUQDt/zcA0v8TANn/2f/v/6z/FQCM/y4Atv8kAPf/BQA/AOH/ZQDm/2gA+/88AA8A/v8VAMn/+P+m/+n/r//b/8j/+v/y/x4AIwAqAEgAHQBUAPv/OwDY/yIA1v/m/+T/t/8NAJr/KQCp/ykA6f8NACsA7v9bANv/XgDz/0UABwAQABUA1f8BALH/7/+u/+T/xf/0/+7/GwAfAC4APgAiAFUACABDANr/KgDW//D/4f+6/woAo/8kAKX/KwDh/xQAGQDz/1sA3P9aAOz/QgACACIAAgDn/wIAv//1/6n/6f+///L/3f8VAA4ALgA0ACYAVQAOAEgA6/8wANL/AQDc/8b/+f+k/x0Anf8oAND/HwAMAPf/SADw/2AA8v9KAPX/KgD3//H/+P/F//z/rv/i/7r/6v/Z/wYABwAoADAAKQBOABkATAD0/zQA1P8PANv/0//v/6//FwCi/ywAxP8oAPn//v82APT/WwD4/00A+/8yAPv//f/8/83/+v+w/+T/sf/j/9b/AQACACoAIgAtAEIAHwBPAAEAQADe/xcA0v/k/+X/t/8IAKv/IgC//yEA6/8EACMA9/9PAPf/VAD+/zcA+/8JAPn/1P8AALf/6f+w/+P/zf////j/HAAdAC0APgAfAEsABwBCAOP/IADV/+//2v/B//3/rP8PALv/GADd/xEAFgABAEMABABaAP//QgACABcA+//n/wAAwP/w/67/4v+///3/6f8WABcAKQA0ACIARgAQAEcA8f8pANn/9f/U/87/7f+v/wgAtP8RANP/FgANAAIAOQACAFQA/f9HAAAAIAABAO3//P/E/wEAs//q/7n/9P/i/wYAEQAZADEAJABBABMASAAAADEA3/8CANL/1v/g/7H/AACy/w8Axf8ZAPv/CQAzAAIAVQD//1AAAAAsAAIA9v/7/8r/AwC2//P/tf/m/+H/AwADABEAKQApADoAHgBHAAgAPADr/wkA1//f/93/vP/6/7L/CgDA/x4A7/8hACkAAgBPAPz/UgD1/zIABAAEAPz/0v/5/7f/AACy//H/2f/+/wEAAAAkABUAMwAdADoAEQA9APD/EADU//L/1P/H/+z/tf8LALv/HADk/ygAGgADAEMA//9TAPn/QAAAABAAAQDc//z/wf8DALD/7P/Q//z/9/8HABoAFgA3ACMAMAAOADwA+P8ZANv/+P/Y/9H/5v+8/wUAu/8WANf/HgAMAAoAPQABAFMA/f9HAP7/HwAEAN//+v/H/wMAs//2/8r/8//y/wMADgAQAC4AIwAyABMAJwD8/xcA3v8LANP/5v/f/8j/AgC4/w4A1P8eAAQACgAxAAEAUgD+/0gA/v8nAAIA8f/5/8r/BAC6/+3/wP/l/+b/AQAIABkAIwArAC4AIAAoAAkAGADj/w0A0f/r/9//0P8DAL3/CgDN/xkA//8IACUAAgBJAAAATwD+/ysAAQD7//3/z/8DAMT/+f/K/+L/5P/1////EgAcACYALgApAC4ACwAcAPL/EADZ//L/1f/U//f/uv8KAMX/DwDu/wcAHwADAEUABgBNAAEANQAAAAYAAQDf////xf/+/9P/4f/b//X/9v8LAA4AGAAlACoAMAAQABkA9v8TAOL/+f/W/9r/8f/I/wcAxP8MAOr/BwATAAQAOAAGAEcAAABCAAEADwAEAOP//v/F/wIAzf/o/93/8P/s/w4ACwAZACEAKgAyABMAIQD5/xgA6v8DANb/4P/y/9H/AQDJ/wkA4/8DAAoA/f8wAAQAQwABAEAA//8VAAIA7P/+/8r/BADP/+v/2v/s/+n/CwAIAA0AHAAjADQAHAAkAP//GQDy/wQA5v/i//b/0P/7/8f/AADh/wMAAAD+/yUAAAA7AAEAOAAAABwAAAD6/wAA1/8CAMr/AADb/+3/5f8BAAIACAAVABcALwAfACgA+/8XAPn/DgDe/+//7v/Q/wMAz/8JAOP/CwDx////EAAHADEAAQArAAIAHQAEAAcAAADr/wEAzv8CANj//f/k/wEA+f/+/xQABwAqAB4ALAD+/x4A8P8SAOb/8//f/9j//f/N/wEA3v8LAO7/AgAMAAQALAAEAC0AAQAdAAQADwABAPP/BADV/wMA0/8AAOH/AQD1/wAAEAADACQAGwAwAAQAHwD0/xUA8f/4/+L/2//7/8z/AwDc/woA6f8AAAQAAwAoAAcANAAAACcAAgAUAAEA+P8CANv/AgDR/wEA4v8BAOz/AgAIAPv/JAAVADMAFAAhAPP/GQDz//7/3P/l/+3/z/8BANf/CgDn/wkA/P///xoABwAwAAIAJwACABcAAwABAAIA4f8BAND/AgDd//3/6P8CAAYA/f8YAAwALwAZACUA9v8bAPj/AwDq/+r/7P/S//7/1/8EAOX/CQD6//7/GQAFAC8AAQApAAEAGQACAAMAAgDm/wEAzv8BANv//v/p/wIA//8BABMABQArACAALAABAB4A8f8NAOv/7v/m/9n/+P/R/wMA4f8OAPT/AQATAAMAKwAHACoAAwAbAAMABQADAO7/AQDU/wEA2f8AAOL////3////EgAAACUAGgAvAAUAHQD2/xIA9f/0//T/3P/4/8///f/h/wIA7f8AAAoAAQApAAQALQADACAAAgAPAP//9P///9r//f/T/wAA3f/9//D/AQAQAP//HAAHAC8ACQAfAPv/GAD+//f/+P/j/wEA0v/+/9n/AADq/wIABgD//x0AAQAuAAEAIwAAABQAAwD8/wEA3/8AAM//AADe////7f8BAAwA//8ZAAMALwAAACEA//8dAP3//v/9/+n////U//z/1v8BAOT/AAD+/wAAGwD+/ywA/v8kAAIAGAD///3////q/wEA0P///97/AADk/wAABAAAABUAAQAqAAEAKQAAABwAAAAFAP//6f8AANr////X/wAA4/8AAPj/AgAUAAAAKgD//ywAAAAcAP7/AQAAAOv/AADU/wAA2v8CAOP/AAABAAAAFgABABsAAAAqAAEAHwAAABQAAgDv/wEA3v///9H////f////7/8BAAoAAQApAAAALgD//yEAAQAIAAAA8P8BANr//v/V////4f8AAPf//v8UAAAAFAAAACYAAQAhAP7/GwD+//T/AADo/wIA1v8CANr/AgDp/wEABgAAAB8AAQAsAAEAJAAAAAwA///z/wEA3/8AANT/AADh/wEA9P///xQAAgASAAAAJQAAACEAAAAaAP//+v8BAOj////W////2P8BAOf///8DAAAAHwAAAC4AAAAlAAAAEgAAAPL/AQDm////0f8CAN3/AADr//7/EQD//xAAAQAhAAIAJQAAAB8AAAABAP//6v8CAN//AQDX/wAA4/8AAPr/AAAXAAAAKgABACgAAAAbAP///f8AAOj/AADU/wAA2v///+f/AQANAAMAEQD+/xwA/v8kAP7/IQABAAgA/v/p////5/8AANf/AQDd/wEA8v8BABMAAQAjAAAALgAAACAAAQADAAEA7f8BANn/AgDY//7/4P/+/wEAAAAXAAIAFAAFACUA/P8jAP//EgAAAO//AQDo////1/8AAN3/AADx//7/DgAAAB0AAQAoAAAAIwAAAAoAAQDv/wMA4f8AANn/AQDi/wEA+v///xgAAAAQAP3/IwD//yUA/v8XAAAA7/8AAOv/AADc/wAA3P/+/+v/AQALAAEAGgACACkAAAAkAP7/EAABAO/////q//7/1/8AANz/AgDw/wEAEgD//w8AAAAcAAIAJQAAAB0AAAD2////7P8AAOP/AgDa/wAA5P8BAAQAAQAWAAAAIgAAACMAAAAaAP//+P///+v/AQDZ/wAA2////+7/AAARAAAADgAAABYAAAAhAAAAIAABAPz/AQDt/wAA5P8AANr/AQDg/wEA/P8BABcAAAAhAP//KQD//xwAAAD8/wEA7v8AAN3////Z/wAA6f8BAA0AAAARAAEAEQAAACMAAAAgAAEA/f8CAO3/AADv/wAA3v8BANv////1////EgAAABkA//8nAAAAIgAAAAMAAADu/wAA6P8CANn/AQDg////BQD//xMAAQAOAP//IAABACYAAAAGAAAA6f////H/AADg/wEA2f8AAO3///8PAAAAFQACACQAAAAkAAEADQABAO//AADp/wAA2////9z/AQD7/wEAFgAAAAwAAQAXAP7/JQD9/xMAAADx/wAA8f8AAOr/AADc/wEA4/8BAAkAAAAVAAAAIQD//yYA//8UAAEA9P8BAOz/AADf/wAA3P8AAPP/AAAQAAAADQABAA0AAAAlAAEAGAD///H//v/0/wEA7v8CAN//AADg//3/BAACABUAAQAfAAAAJwABABgAAQD0//7/7f///+L/AADa/wIA8P///w4A//8SAAMACQAAACAAAQAgAP//+v////P////y/wEA4/8BANr/AQD9/wAAEwD//xkAAQAjAAAAIgABAPz////s/wAA6v8BANX/AQDr//7/BwABABMAAAAHAP//FwAAACYAAAD//wEA9P8BAPb/AQDu////2v8BAPn/AAATAP//FwD//yEAAAAjAAAAAgAAAOn/AQDr//7/2P8CAOT/AAABAP//FgABAAUAAQATAP//IwAAAAEAAgDy/wEA9/8AAPb/AADb/wAA6/8BABAAAAATAP7/IQAAACYA//8UAP//7/8AAPD/AADd/wEA3P/+//7///8OAAAACgAAAAgAAAAhAP//CQACAPT/AQD2/wAA9v///97////m/wIADgABABMAAQAfAP//JwAAABMAAADw/wAA8P///+r/AQDb/wAA9f8AAA8AAAARAAIABAD//wYA/v8HAAAAAQD//wMAAgAGAAAA7f8AAOz/AAALAP//DwACABQA//8bAAAAHgD///f/AADq/wEA6/8BANj//v/t/wAACAD+/xAAAgAEAAAABAABAAcAAQADAAAA//8AAAUA///1/wAA5f///wIAAAAOAAAAEAAAABsAAAAhAAAA/v8BAOj////y////3f8AAOf/AQAGAAEADAAAAAcA//8BAP//CQABAAMA//8BAP//BQAAAAAAAADo/wAA+/8AAAoAAAALAAAAFAAAACAAAQAGAAIA7f8BAPH/AADm/wMA3P8CAP7/AgASAP//CgD//wAAAAAIAP//BQD//wEAAAACAP7/BAAAAPz/AwD8////BAAAAAEA//8HAAAAHQAAAAgA/v/x//7/8f///+f/AQDg/////P///woAAAAMAP//AAABAAYA//8EAAAAAgAAAAUAAAACAAAAAwAAAAIAAAABAAAAAQABAAAAAgAcAP//DgD///T/AQDx/wAA9P8CAOH/AAD3/wAACQAAAAoAAQABAP//AwAAAAcAAAD+/wAAAgACAAEAAAD+////AwD+/wAAAAABAP//+v8BABEAAQATAAAA9f/+//L//f/z/wIA6f8AAPb/AQAFAP//DAAAAAAAAAAFAP//BQD//wEA//8DAAEAAQAAAP7///8AAAAA//8BAAIAAAD+/wAAEAABABYAAgD6/wEA8v8BAPX/AwDp/wAA8////wMA//8JAAEABAABAAEA//8FAAEA//8AAAMAAQACAP//AQAAAAEAAgAFAP//AQABAAAAAQAAAP//EQABAAAAAAD5/wEA+P8AAPr////6/wAA+/8BAAIA//8BAAAA//8CAAUA//8BAP7/AAABAAEAAgAAAAAAAwAAAAEA/v8DAAIAAAACAAQA//8TAAAA/P8BAPr////3//////8AAPz/AQD7/wEAAgD/////AAABAAEABAAAAP//////////AAAAAAAAAAADAAAAAwAAAAAA//8EAP///v/+/xAA//8HAAAA+/////j/AQD8////AAD///n///8AAAAA//8AAP////8DAP//AgAAAAAAAAACAAIAAAD+/wAAAQD//wAA/////wIAAgD9////CQACAAYA///9////+f8BAPr/AQAAAAIA/v///wAA//8AAAAAAAAAAAEAAAABAAAAAgAAAAEAAAAAAAEAAQABAAAAAgABAP//AAD//wEAAAD///////8BAAIAAQAAAAAA/v/+//////8BAAAAAQABAP//AAD///////8BAAAAAQABAP////8CAAEAAQD//wEA/v//////AQAAAAAAAAAAAAAAAAD9/wMA/////wAAAQD+/wEA/v/+//7/AQD//wMAAAAAAAAAAAABAAEA//////7/AAACAP3/AAD//wAAAQAAAP//AQD//wAAAAAAAAEA//8CAP//AAAAAAAA/v8AAAAA//8BAP//AAABAP//AAAAAP//AQD//wAAAQABAAAAAAABAAEA/v///wAAAAD//////////wAAAAAAAP//AAD////////8/wIAAAADAAEA/////wEA/v8BAP7/AgAAAAEAAgAAAP//AgD/////AQD//wEA//////7/AQD//wMAAAAAAAAA//8CAP//AQAAAP//AAACAAAAAAABAP//AQD+/wAA/////wAA/f///wAAAAAAAP7/AAAAAAAAAgD//wEAAQACAP//AAAAAAEAAQD//wAAAAAAAAAA//8BAAMA/v8AAP7/AQAAAAAAAQAAAAAA///+//7/AAAAAAAA//8BAP7/AQAAAP//AQABAAAAAQAAAP//AAD//wIA/v///wAAAQABAP//AAD//wEA//8BAP//AgAAAP///////wAAAQABAP//AwABAAAAAAAAAAAA/////wIAAwACAAAA/v8BAAAAAAAAAAAA//8AAP////8AAAAA/////wAA/////wEA/v8CAAEAAQD//wAAAAABAAAAAAD//wEAAQABAAAA//8CAAAAAAAAAP7/AAABAAAAAQABAAAAAgABAAAAAQD//wEAAwD+/wAA/v8AAAEAAAAAAAAAAAAAAAEAAAD//wMA/v///wAAAAACAAEAAAAAAP7///8DAAEAAQD//wEA/f8BAAEAAQD//wEAAQABAAMAAgAAAAEA//8AAP//BAAAAAIA/v//////AQABAAAAAAD//wEAAAACAAIAAQAAAAAAAgAAAAAAAAABAAIAAAABAAIAAQAAAP////8AAAAAAAD//wAAAQACAP//AAAAAAAAAQAAAAEA//8AAAAAAAD/////AQD//wAAAQD9////AQAAAAAA//8BAAAA///+/////v8BAAAAAQAAAAAAAAAAAAIA//8BAAAAAAACAP//AQD//wAAAAD/////AAD9/wAAAAACAAAAAgAAAAEAAQABAAEAAAAAAAEA//8AAAEAAQACAAAAAQAAAAEA//8BAAIAAAACAP//AAABAAAAAAAAAAAAAAD//wAAAQD/////AAAAAP////8AAAEAAAAAAP7///8BAAIAAQD//wEAAQAAAP//AgAAAAAAAAD//wAA//8CAP7/AQAAAP7/AAD+////AAAAAAAAAQABAAAA//8AAAEAAAABAP7/AAAAAP7/AAD+/wAAAQABAAEA/////////v8BAP///v///wIAAAAAAAAAAQAAAAIAAQAAAAAAAAABAAEAAAAAAAAAAAD//wEAAQD//wAAAQABAAAA/v/+/////////wAAAAD//wAAAAD/////AAAAAP7/AAD//wIA//8CAP//AQAAAP////8AAAAAAQABAP////8AAP//AQACAAAAAQAAAAAAAAAAAAAA//8BAAAAAAD+/wAA/v///wEAAAD+//7///8CAP7/AAABAP3/AwAAAAAAAAABAAIAAAABAAAAAQABAAIAAAAAAP//AAAAAAEAAAACAAEAAAACAAAAAAABAAAAAwAAAAAAAAD+/wAAAQD9//////8BAAAA/v8AAAAAAAAAAAAAAAD//wMA/v8BAAEAAQACAAAA/v8BAP//AwABAAIAAQABAP//AQAAAAEAAAAAAAEA//8AAAAAAAD/////AAABAAEAAAAAAP////8AAAAAAAAAAAAA/v8AAP//AQAAAP//AAABAAIAAQAAAAAAAgABAAAA/////wAAAQABAP//AQABAAEA/////wAAAAAAAAAAAAABAAEAAQAAAAAAAAAAAAAA//8AAP7/AQD9/wAAAgD//wEAAQABAAEA/v8AAAEA/////wAAAAAAAP//AAABAAAAAAAAAAAA//8CAP//AAABAAEAAQABAAAA//8BAAIAAgD//wAA/v8AAAEAAAD///7/AAAAAAEAAAABAAAAAQABAAAAAQACAAAA///+/wAAAQABAP7////+/wAA//8AAAAAAgAAAP//AQD9/wAAAAD//wAA//8AAAAAAQAAAAAAAQD//wAAAAAAAP//AQABAAAA/v8CAP//AAD///////8AAAAAAAACAAEA//8BAP7/AAAAAAEA//8BAAAAAQD//wAAAQD+/wAA/////wAAAAD//wAAAQABAAAA//8AAAEA/////wAA//8AAAAA/v/+/wEAAgABAP//AgD//wIA/////wAA//8AAAEAAQAAAAAAAQAAAAMAAAACAP//\", re = {\n general: {\n primaryColor: \"#42b0c5\",\n secondaryColor: \"#491d8d\",\n fontFamily: \"-apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif\",\n showHeader: !0,\n showFooter: !0,\n showInputRow: !0,\n actionDisabledIcon: Me,\n embedded: !1,\n flowStartTrigger: \"ON_LOAD\"\n },\n tooltip: {\n mode: \"CLOSE\",\n text: \"Talk to me! 😊\"\n },\n chatButton: {\n icon: Ae\n },\n header: {\n title: /* @__PURE__ */ l(\"div\", { style: { cursor: \"pointer\", margin: 0, fontSize: 20, fontWeight: \"bold\" }, onClick: () => window.open(\"https://github.com/tjtanjin/\"), children: \"Tan Jin\" }),\n showAvatar: !0,\n avatar: $A,\n buttons: [Z.NOTIFICATION_BUTTON, Z.AUDIO_BUTTON, Z.CLOSE_CHAT_BUTTON],\n closeChatIcon: Fe\n },\n notification: {\n disabled: !1,\n defaultToggledOn: !0,\n volume: 0.2,\n icon: Le,\n iconDisabled: Re,\n sound: _e,\n showCount: !0\n },\n audio: {\n disabled: !0,\n defaultToggledOn: !1,\n language: \"en-US\",\n voiceNames: [\"Microsoft David - English (United States)\", \"Alex (English - United States)\"],\n rate: 1,\n volume: 1,\n icon: Je,\n iconDisabled: Ze\n },\n chatHistory: {\n disabled: !1,\n maxEntries: 30,\n storageKey: \"rcb-history\",\n storageType: \"LOCAL_STORAGE\",\n viewChatHistoryButtonText: \"Load Chat History ⟳\",\n chatHistoryLineBreakText: \"----- Previous Chat History -----\",\n autoLoad: !1\n },\n chatInput: {\n disabled: !1,\n allowNewline: !1,\n enabledPlaceholderText: \"Type your message...\",\n disabledPlaceholderText: \"\",\n showCharacterCount: !1,\n characterLimit: -1,\n botDelay: 1e3,\n sendButtonIcon: ze,\n blockSpam: !0,\n sendOptionOutput: !0,\n sendCheckboxOutput: !0,\n buttons: [Z.VOICE_MESSAGE_BUTTON, Z.SEND_MESSAGE_BUTTON]\n },\n chatWindow: {\n showScrollbar: !1,\n showTypingIndicator: !0,\n autoJumpToBottom: !1,\n showMessagePrompt: !0,\n messagePromptText: \"New Messages ↓\",\n messagePromptOffset: 30,\n defaultOpen: !1\n },\n sensitiveInput: {\n maskInTextArea: !0,\n maskInUserBubble: !0,\n asterisksCount: 10,\n hideInUserBubble: !1\n },\n userBubble: {\n animate: !0,\n showAvatar: !1,\n avatar: ke,\n simulateStream: !1,\n streamSpeed: 30\n },\n botBubble: {\n animate: !0,\n showAvatar: !1,\n avatar: $A,\n simulateStream: !1,\n streamSpeed: 30\n },\n voice: {\n disabled: !0,\n defaultToggledOn: !1,\n language: \"en-US\",\n timeoutPeriod: 1e4,\n autoSendDisabled: !1,\n autoSendPeriod: 1e3,\n sendAsAudio: !1,\n icon: Ye,\n iconDisabled: We\n },\n footer: {\n text: /* @__PURE__ */ X(\n \"div\",\n {\n style: { cursor: \"pointer\", display: \"flex\", flexDirection: \"row\", alignItems: \"center\", columnGap: 3 },\n onClick: () => window.open(\"https://react-chatbotify.com\"),\n children: [\n /* @__PURE__ */ l(\"span\", { children: \"Powered By \" }, 0),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: {\n borderRadius: \"50%\",\n width: 14,\n height: 14,\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n background: \"linear-gradient(to right, #42b0c5, #491d8d)\"\n },\n children: /* @__PURE__ */ l(Ae, { style: { width: \"80%\", height: \"80%\", fill: \"#fff\" } })\n },\n 1\n ),\n /* @__PURE__ */ l(\"span\", { style: { fontWeight: \"bold\" }, children: \" React ChatBotify\" }, 2)\n ]\n }\n ),\n buttons: [Z.FILE_ATTACHMENT_BUTTON, Z.EMOJI_PICKER_BUTTON]\n },\n fileAttachment: {\n disabled: !1,\n multiple: !0,\n accept: \".png\",\n icon: ee,\n iconDisabled: ee,\n sendFileName: !0,\n showMediaDisplay: !1\n },\n emoji: {\n disabled: !1,\n icon: te,\n iconDisabled: te,\n list: [\"😀\", \"😃\", \"😄\", \"😅\", \"😊\", \"😌\", \"😇\", \"🙃\", \"🤣\", \"😍\", \"🥰\", \"🥳\", \"🎉\", \"🎈\", \"🚀\", \"⭐️\"]\n },\n toast: {\n maxCount: 3,\n forbidOnMax: !1,\n dismissOnClick: !0\n },\n event: {\n rcbPreInjectMessage: !1,\n rcbPostInjectMessage: !1,\n rcbStartSimulateStreamMessage: !1,\n rcbStopSimulateStreamMessage: !1,\n rcbStartStreamMessage: !1,\n rcbChunkStreamMessage: !1,\n rcbStopStreamMessage: !1,\n rcbRemoveMessage: !1,\n rcbLoadChatHistory: !1,\n rcbToggleChatWindow: !1,\n rcbStartSpeakAudio: !1,\n rcbToggleAudio: !1,\n rcbToggleNotifications: !1,\n rcbToggleVoice: !1,\n rcbChangePath: !1,\n rcbShowToast: !1,\n rcbDismissToast: !1,\n rcbUserSubmitText: !1,\n rcbUserUploadFile: !1,\n rcbTextAreaChangeValue: !1,\n rcbPreLoadChatBot: !1,\n rcbPostLoadChatBot: !1,\n rcbPreProcessBlock: !1,\n rcbPostProcessBlock: !1\n },\n ariaLabel: {\n chatButton: \"open chat\",\n audioButton: \"toggle audio\",\n closeChatButton: \"close chat\",\n emojiButton: \"emoji picker\",\n fileAttachmentButton: \"upload file\",\n notificationButton: \"toggle notifications\",\n sendButton: \"send message\",\n voiceButton: \"toggle voice\",\n inputTextArea: \"input text area\"\n },\n device: {\n desktopEnabled: !0,\n mobileEnabled: !0,\n applyMobileOptimizations: !0\n }\n}, ae = vA({ settings: {}, setSettings: () => null }), O = () => PA(ae), $e = ({\n children: A,\n settings: e = re,\n setSettings: o\n}) => /* @__PURE__ */ l(ae.Provider, { value: { settings: e, setSettings: o }, children: A }), ce = {\n tooltipStyle: {},\n notificationBadgeStyle: {},\n chatWindowStyle: {},\n headerStyle: {},\n bodyStyle: {},\n chatInputContainerStyle: {},\n chatInputAreaStyle: {},\n chatInputAreaFocusedStyle: {},\n chatInputAreaDisabledStyle: {},\n userBubbleStyle: {},\n botBubbleStyle: {},\n botOptionStyle: {},\n botOptionHoveredStyle: {},\n botCheckboxRowStyle: {},\n botCheckboxNextStyle: {},\n botCheckMarkStyle: {},\n botCheckMarkSelectedStyle: {},\n characterLimitStyle: {},\n characterLimitReachedStyle: {},\n chatHistoryLineBreakStyle: {},\n chatMessagePromptStyle: {},\n chatMessagePromptHoveredStyle: {},\n footerStyle: {},\n loadingSpinnerStyle: {},\n mediaDisplayContainerStyle: {},\n chatButtonStyle: {},\n chatHistoryButtonStyle: {},\n chatHistoryButtonHoveredStyle: {},\n sendButtonStyle: {},\n sendButtonHoveredStyle: {},\n sendButtonDisabledStyle: {},\n audioButtonStyle: {},\n audioButtonDisabledStyle: {},\n closeChatButtonStyle: {},\n emojiButtonStyle: {},\n emojiButtonDisabledStyle: {},\n fileAttachmentButtonStyle: {},\n fileAttachmentButtonDisabledStyle: {},\n notificationButtonStyle: {},\n notificationButtonDisabledStyle: {},\n voiceButtonStyle: {},\n voiceButtonDisabledStyle: {},\n chatIconStyle: {},\n audioIconStyle: {},\n audioIconDisabledStyle: {},\n closeChatIconStyle: {},\n emojiIconStyle: {},\n emojiIconDisabledStyle: {},\n fileAttachmentIconStyle: {},\n fileAttachmentIconDisabledStyle: {},\n notificationIconStyle: {},\n notificationIconDisabledStyle: {},\n voiceIconStyle: {},\n voiceIconDisabledStyle: {},\n sendIconStyle: {},\n sendIconDisabledStyle: {},\n sendIconHoveredStyle: {},\n rcbTypingIndicatorContainerStyle: {},\n rcbTypingIndicatorDotStyle: {},\n toastPromptContainerStyle: {},\n toastPromptStyle: {},\n toastPromptHoveredStyle: {}\n}, ie = vA({ styles: {}, setStyles: () => null }), Y = () => PA(ie), At = ({\n children: A,\n styles: e = ce,\n setStyles: o\n}) => /* @__PURE__ */ l(ie.Provider, { value: { styles: e, setStyles: o }, children: A }), et = ({ buttons: A }) => {\n var n, s, a, r, c;\n const { settings: e } = O(), { styles: o } = Y(), t = {\n backgroundImage: `linear-gradient(to right, ${(n = e.general) == null ? void 0 : n.secondaryColor},\n\t\t\t${(s = e.general) == null ? void 0 : s.primaryColor})`,\n ...o.headerStyle\n };\n return /* @__PURE__ */ X(\"div\", { style: t, className: \"rcb-chat-header-container\", children: [\n /* @__PURE__ */ X(\"div\", { className: \"rcb-chat-header\", children: [\n ((a = e.header) == null ? void 0 : a.showAvatar) && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(r = e.header) == null ? void 0 : r.avatar}\")` },\n className: \"rcb-bot-avatar\"\n }\n ),\n (c = e.header) == null ? void 0 : c.title\n ] }),\n /* @__PURE__ */ l(\"div\", { className: \"rcb-chat-header\", children: A == null ? void 0 : A.map(\n (i, u) => /* @__PURE__ */ l(UA, { children: i }, u)\n ) })\n ] });\n}, le = vA({}), $ = () => PA(le), tt = ({\n children: A,\n botIdRef: e,\n flowRef: o\n}) => {\n const t = AA(null), n = AA(\"\"), s = AA(null), a = AA(/* @__PURE__ */ new Map()), r = AA(null), c = AA(\"\"), i = AA(!1), u = AA(null), f = AA(null), w = AA(null);\n return /* @__PURE__ */ l(le.Provider, { value: {\n botIdRef: e,\n flowRef: o,\n inputRef: t,\n timeoutIdRef: s,\n streamMessageMap: a,\n chatBodyRef: r,\n paramsInputRef: c,\n keepVoiceOnRef: i,\n audioContextRef: u,\n audioBufferRef: f,\n gainNodeRef: w,\n prevInputRef: n\n }, children: A });\n}, aA = (A) => {\n const [e, o] = F(A), t = AA(A);\n return [e, (s) => {\n const a = typeof s == \"function\" ? s(t.current) : s;\n t.current = a, o(a);\n }, t];\n}, ue = vA({}), eA = () => PA(ue), ot = ({\n children: A,\n settings: e\n}) => {\n var oA, rA, qA, JA, VA, ZA;\n const [o, t, n] = aA(!1), [s, a, r] = aA(\n ((oA = e == null ? void 0 : e.chatWindow) == null ? void 0 : oA.defaultOpen) ?? !1\n ), [c, i, u] = aA(\n ((rA = e == null ? void 0 : e.audio) == null ? void 0 : rA.defaultToggledOn) ?? !1\n ), [f, w, d] = aA(\n ((qA = e == null ? void 0 : e.voice) == null ? void 0 : qA.defaultToggledOn) ?? !1\n ), [\n g,\n B,\n P\n ] = aA(\n ((JA = e == null ? void 0 : e.notification) == null ? void 0 : JA.defaultToggledOn) ?? !0\n ), [b, y] = F(!1), [D, p] = F(!1), [C, v, E] = aA(!1), [T, Q, S] = aA(!0), [\n h,\n m,\n I\n ] = aA(!1), [M, k] = F(!1), [j, N] = F(!1), [W, J] = F(0), [z, U] = F(0), [K, R] = F(!1), [L, G] = F(((VA = window.visualViewport) == null ? void 0 : VA.height) ?? window.innerHeight), [tA, _] = F(((ZA = window.visualViewport) == null ? void 0 : ZA.width) ?? window.innerWidth);\n return /* @__PURE__ */ l(ue.Provider, { value: {\n isBotTyping: o,\n setSyncedIsBotTyping: t,\n syncedIsBotTypingRef: n,\n isChatWindowOpen: s,\n setSyncedIsChatWindowOpen: a,\n syncedIsChatWindowOpenRef: r,\n audioToggledOn: c,\n setSyncedAudioToggledOn: i,\n syncedAudioToggledOnRef: u,\n voiceToggledOn: f,\n setSyncedVoiceToggledOn: w,\n syncedVoiceToggledOnRef: d,\n notificationsToggledOn: g,\n setSyncedNotificationsToggledOn: B,\n syncedNotificationsToggledOnRef: P,\n isLoadingChatHistory: b,\n setIsLoadingChatHistory: y,\n hasChatHistoryLoaded: D,\n setHasChatHistoryLoaded: p,\n isScrolling: C,\n setSyncedIsScrolling: v,\n syncedIsScrollingRef: E,\n textAreaDisabled: T,\n setSyncedTextAreaDisabled: Q,\n syncedTextAreaDisabledRef: S,\n textAreaSensitiveMode: h,\n setSyncedTextAreaSensitiveMode: m,\n syncedTextAreaSensitiveModeRef: I,\n hasInteractedPage: M,\n setHasInteractedPage: k,\n hasFlowStarted: j,\n setHasFlowStarted: N,\n unreadCount: W,\n setUnreadCount: J,\n inputLength: z,\n setInputLength: U,\n blockAllowsAttachment: K,\n setBlockAllowsAttachment: R,\n viewportHeight: L,\n setViewportHeight: G,\n viewportWidth: tA,\n setViewportWidth: _\n }, children: A });\n};\nvar H = /* @__PURE__ */ ((A) => (A.START_SPEAK_AUDIO = \"rcb-start-speak-audio\", A.TOGGLE_AUDIO = \"rcb-toggle-audio\", A.TOGGLE_NOTIFICATIONS = \"rcb-toggle-notifications\", A.TOGGLE_VOICE = \"rcb-toggle-voice\", A.TOGGLE_CHAT_WINDOW = \"rcb-toggle-chat-window\", A.PRE_INJECT_MESSAGE = \"rcb-pre-inject-message\", A.POST_INJECT_MESSAGE = \"rcb-post-inject-message\", A.START_SIMULATE_STREAM_MESSAGE = \"rcb-start-simulate-stream-message\", A.STOP_SIMULATE_STREAM_MESSAGE = \"rcb-stop-simulate-stream-message\", A.START_STREAM_MESSAGE = \"rcb-start-stream-message\", A.CHUNK_STREAM_MESSAGE = \"rcb-chunk-stream-message\", A.STOP_STREAM_MESSAGE = \"rcb-stop-stream-message\", A.REMOVE_MESSAGE = \"rcb-remove-message\", A.LOAD_CHAT_HISTORY = \"rcb-load-chat-history\", A.CHANGE_PATH = \"rcb-change-path\", A.SHOW_TOAST = \"rcb-show-toast\", A.DISMISS_TOAST = \"rcb-dismiss-toast\", A.USER_SUBMIT_TEXT = \"rcb-user-submit-text\", A.USER_UPLOAD_FILE = \"rcb-user-upload-file\", A.TEXT_AREA_CHANGE_VALUE = \"rcb-text-area-change-value\", A.PRE_LOAD_CHATBOT = \"rcb-pre-load-chatbot\", A.POST_LOAD_CHATBOT = \"rcb-post-load-chatbot\", A.PRE_PROCESS_BLOCK = \"rcb-pre-process-block\", A.POST_PROCESS_BLOCK = \"rcb-post-process-block\", A))(H || {});\nconst nt = {\n [H.START_SPEAK_AUDIO]: !0,\n [H.TOGGLE_AUDIO]: !0,\n [H.TOGGLE_VOICE]: !0,\n [H.TOGGLE_NOTIFICATIONS]: !0,\n [H.TOGGLE_CHAT_WINDOW]: !0,\n [H.PRE_INJECT_MESSAGE]: !0,\n [H.POST_INJECT_MESSAGE]: !1,\n [H.PRE_LOAD_CHATBOT]: !0,\n [H.POST_LOAD_CHATBOT]: !1,\n [H.START_SIMULATE_STREAM_MESSAGE]: !0,\n [H.STOP_SIMULATE_STREAM_MESSAGE]: !1,\n [H.START_STREAM_MESSAGE]: !0,\n [H.CHUNK_STREAM_MESSAGE]: !0,\n [H.STOP_STREAM_MESSAGE]: !0,\n [H.REMOVE_MESSAGE]: !0,\n [H.LOAD_CHAT_HISTORY]: !0,\n [H.CHANGE_PATH]: !0,\n [H.SHOW_TOAST]: !0,\n [H.DISMISS_TOAST]: !0,\n [H.USER_SUBMIT_TEXT]: !0,\n [H.USER_UPLOAD_FILE]: !0,\n [H.TEXT_AREA_CHANGE_VALUE]: !0,\n [H.PRE_PROCESS_BLOCK]: !0,\n [H.POST_PROCESS_BLOCK]: !0\n}, NA = async (A, e, o) => {\n const t = new CustomEvent(A, {\n detail: e,\n cancelable: nt[A]\n });\n return t.data = o, t.promises = [], window.dispatchEvent(t), await Promise.all(t.promises), t;\n}, fe = vA({\n paths: [],\n setSyncedPaths: () => {\n },\n syncedPathsRef: { current: [] }\n}), mA = () => PA(fe), st = ({ children: A }) => {\n const [e, o, t] = aA([]);\n return /* @__PURE__ */ l(fe.Provider, { value: { paths: e, setSyncedPaths: o, syncedPathsRef: t }, children: A });\n}, lA = () => {\n const { botIdRef: A } = $(), { syncedPathsRef: e } = mA(), o = x(() => e.current.length > 0 ? e.current.at(-1) ?? null : null, []), t = x(() => e.current.length > 1 ? e.current.at(-2) ?? null : null, []);\n return { dispatchRcbEvent: x(async (s, a) => {\n const r = { botId: A.current, currPath: o(), prevPath: t() };\n return await NA(s, r, a);\n }, [A]) };\n}, sA = () => {\n const { settings: A } = O(), {\n isChatWindowOpen: e,\n setSyncedIsChatWindowOpen: o,\n viewportHeight: t,\n setViewportHeight: n,\n viewportWidth: s,\n setViewportWidth: a,\n setUnreadCount: r,\n setSyncedIsBotTyping: c,\n setSyncedIsScrolling: i,\n syncedIsBotTypingRef: u,\n syncedIsChatWindowOpenRef: f\n } = eA(), { chatBodyRef: w } = $(), { dispatchRcbEvent: d } = lA(), g = x(() => {\n if (!w.current)\n return !1;\n const D = w.current.getBoundingClientRect(), p = window.innerHeight ?? document.documentElement.clientHeight, C = window.innerWidth ?? document.documentElement.clientWidth;\n return D.top >= 0 && D.left >= 0 && D.bottom <= p && D.right <= C;\n }, [w]), B = x(async (D) => {\n var p;\n D !== f.current && ((p = A.event) != null && p.rcbToggleChatWindow && (await d(\n H.TOGGLE_CHAT_WINDOW,\n {\n currState: f.current,\n newState: !f.current\n }\n )).defaultPrevented || o((C) => (C || r(0), !C)));\n }, [f]), P = x(async (D) => {\n D !== u.current && c((p) => !p);\n }, [u]), b = x((D, p, C, v) => (D /= v / 2, D < 1 ? C / 2 * D * D + p : (D--, -C / 2 * (D * (D - 2) - 1) + p)), []), y = x((D = 0) => {\n if (!w.current)\n return;\n const p = w.current.scrollHeight - w.current.clientHeight;\n if (D <= 0) {\n w.current.scrollTop = p, i(!1);\n return;\n }\n const C = w.current.scrollTop, v = p - C, E = 20;\n let T = 0;\n const Q = () => {\n if (!w.current)\n return;\n T += E;\n const S = b(T, C, v, D);\n w.current.scrollTop = S, T < D ? requestAnimationFrame(Q) : i(!1);\n };\n Q();\n }, [w]);\n return {\n isChatWindowOpen: e,\n setSyncedIsChatWindowOpen: o,\n toggleChatWindow: B,\n viewportHeight: t,\n setViewportHeight: n,\n viewportWidth: s,\n setViewportWidth: a,\n toggleIsBotTyping: P,\n scrollToBottom: y,\n getIsChatBotVisible: g\n };\n}, rt = () => {\n var w, d, g;\n const { settings: A } = O(), { styles: e } = Y(), { unreadCount: o, isScrolling: t } = eA(), { chatBodyRef: n } = $(), { scrollToBottom: s } = sA(), [a, r] = F(!1), c = {\n color: (w = A.general) == null ? void 0 : w.primaryColor,\n borderColor: (d = A.general) == null ? void 0 : d.primaryColor,\n ...e.chatMessagePromptHoveredStyle\n }, i = () => {\n r(!0);\n }, u = () => {\n r(!1);\n };\n return /* @__PURE__ */ l(\"div\", { className: `rcb-message-prompt-container ${(() => {\n var P;\n return n.current && ((P = A.chatWindow) == null ? void 0 : P.showMessagePrompt) && t && o > 0 ? \"visible\" : \"hidden\";\n })()}`, children: /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: i,\n onMouseLeave: u,\n style: a ? c : { ...e.chatMessagePromptStyle },\n onMouseDown: (B) => {\n B.preventDefault(), s(600);\n },\n className: \"rcb-message-prompt-text\",\n children: (g = A.chatWindow) == null ? void 0 : g.messagePromptText\n }\n ) });\n}, de = vA({\n messages: [],\n setSyncedMessages: () => {\n },\n syncedMessagesRef: { current: [] }\n}), FA = () => PA(de), at = ({ children: A }) => {\n const [e, o, t] = aA([]);\n return /* @__PURE__ */ l(de.Provider, { value: { messages: e, setSyncedMessages: o, syncedMessagesRef: t }, children: A });\n}, ct = ({\n message: A,\n isNewSender: e\n}) => {\n var f, w, d, g, B, P;\n const { settings: o } = O(), { styles: t } = Y(), n = typeof A.content == \"string\", s = A.content, a = A.contentWrapper ? /* @__PURE__ */ l(A.contentWrapper, { children: s }) : s, r = {\n backgroundColor: (f = o.general) == null ? void 0 : f.primaryColor,\n color: \"#fff\",\n maxWidth: (w = o.userBubble) != null && w.showAvatar ? \"65%\" : \"70%\",\n ...t.userBubbleStyle\n }, c = (d = o.userBubble) != null && d.animate ? \"rcb-user-message-entry\" : \"\", i = ((g = o.userBubble) == null ? void 0 : g.showAvatar) && e, u = `rcb-user-message${!e && ((B = o.userBubble) != null && B.showAvatar) ? \" rcb-user-message-offset\" : \"\"}`;\n return /* @__PURE__ */ X(\"div\", { className: \"rcb-user-message-container\", children: [\n n ? /* @__PURE__ */ l(\"div\", { style: r, className: `${u} ${c}`, children: a }) : /* @__PURE__ */ l(nA, { children: a }),\n i && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(P = o.userBubble) == null ? void 0 : P.avatar}\")` },\n className: \"rcb-message-user-avatar\"\n }\n )\n ] });\n}, it = ({\n message: A,\n isNewSender: e\n}) => {\n var f, w, d, g, B, P;\n const { settings: o } = O(), { styles: t } = Y(), n = typeof A.content == \"string\", s = A.content, a = A.contentWrapper ? /* @__PURE__ */ l(A.contentWrapper, { children: s }) : s, r = {\n backgroundColor: (f = o.general) == null ? void 0 : f.secondaryColor,\n color: \"#fff\",\n maxWidth: (w = o.botBubble) != null && w.showAvatar ? \"65%\" : \"70%\",\n ...t.botBubbleStyle\n }, c = (d = o.botBubble) != null && d.animate ? \"rcb-bot-message-entry\" : \"\", i = ((g = o.botBubble) == null ? void 0 : g.showAvatar) && e, u = `rcb-bot-message${!e && ((B = o.botBubble) != null && B.showAvatar) ? \" rcb-bot-message-offset\" : \"\"}`;\n return /* @__PURE__ */ X(\"div\", { className: \"rcb-bot-message-container\", children: [\n i && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(P = o.botBubble) == null ? void 0 : P.avatar}\")` },\n className: \"rcb-message-bot-avatar\"\n }\n ),\n n ? /* @__PURE__ */ l(\"div\", { style: r, className: `${u} ${c}`, children: a }) : /* @__PURE__ */ l(nA, { children: a })\n ] });\n}, lt = () => {\n var t, n, s;\n const { settings: A } = O(), { styles: e } = Y(), o = (t = A.botBubble) != null && t.animate ? \"rcb-bot-message-entry\" : \"\";\n return /* @__PURE__ */ X(\"div\", { className: \"rcb-bot-message-container\", children: [\n ((n = A.botBubble) == null ? void 0 : n.showAvatar) && /* @__PURE__ */ l(\n \"div\",\n {\n style: { backgroundImage: `url(\"${(s = A.botBubble) == null ? void 0 : s.avatar}\")` },\n className: \"rcb-message-bot-avatar\"\n }\n ),\n /* @__PURE__ */ l(\n \"div\",\n {\n onMouseDown: (a) => {\n a.preventDefault();\n },\n className: `rcb-bot-message ${o}`,\n children: /* @__PURE__ */ X(\"div\", { className: \"rcb-typing-indicator\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorContainerStyle }, children: [\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-dot\", style: { ...e == null ? void 0 : e.rcbTypingIndicatorDotStyle } })\n ] })\n }\n )\n ] });\n}, ut = () => {\n var i, u, f;\n const { settings: A } = O(), { styles: e } = Y(), { messages: o } = FA(), { scrollToBottom: t } = sA(), {\n isBotTyping: n,\n syncedIsScrollingRef: s\n } = eA(), { chatBodyRef: a } = $(), r = {\n ...e == null ? void 0 : e.bodyStyle,\n scrollbarWidth: (i = A.chatWindow) != null && i.showScrollbar ? \"auto\" : \"none\"\n };\n V(() => {\n s.current || t();\n }, [(u = a.current) == null ? void 0 : u.scrollHeight]);\n const c = (w) => w === 0 ? !0 : o[w].sender !== o[w - 1].sender;\n return /* @__PURE__ */ X(\n \"div\",\n {\n style: r,\n className: \"rcb-chat-body-container\",\n ref: a,\n children: [\n o.map((w, d) => {\n const g = c(d);\n return w.sender.toUpperCase() === \"USER\" ? /* @__PURE__ */ l(ct, { message: w, isNewSender: g }, d) : w.sender.toUpperCase() === \"BOT\" ? /* @__PURE__ */ l(it, { message: w, isNewSender: g }, d) : /* @__PURE__ */ l(\"div\", { children: w.content }, d);\n }),\n n && ((f = A.chatWindow) == null ? void 0 : f.showTypingIndicator) && /* @__PURE__ */ l(lt, {}),\n /* @__PURE__ */ l(rt, {})\n ]\n }\n );\n}, ft = ({\n checkboxes: A,\n checkedItems: e,\n path: o\n}) => {\n var P, b, y, D, p, C, v, E, T, Q, S;\n const { settings: t } = O(), { styles: n } = Y(), { paths: s } = mA(), { handleSubmitText: a } = yA(), [r, c] = F(/* @__PURE__ */ new Set()), [i, u] = F(!1), f = {\n cursor: i ? `url(\"${(P = t.general) == null ? void 0 : P.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (b = t.general) == null ? void 0 : b.primaryColor,\n borderColor: (y = t.general) == null ? void 0 : y.primaryColor,\n ...n.botCheckboxRowStyle\n }, w = {\n cursor: i || r.size < A.min ? `url(\"${(D = t.general) == null ? void 0 : D.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (p = t.general) == null ? void 0 : p.primaryColor,\n borderColor: (C = t.general) == null ? void 0 : C.primaryColor,\n ...n.botCheckboxNextStyle\n }, d = {\n cursor: i ? `url(\"${(v = t.general) == null ? void 0 : v.actionDisabledIcon}\"), auto` : \"pointer\",\n color: \"transparent\",\n ...n.botCheckMarkStyle\n }, g = {\n cursor: i ? `url(\"${(E = t.general) == null ? void 0 : E.actionDisabledIcon}\"), auto` : \"pointer\",\n color: \"#fff\",\n borderColor: (T = t.general) == null ? void 0 : T.primaryColor,\n backgroundColor: (Q = t.general) == null ? void 0 : Q.primaryColor,\n ...n.botCheckMarkSelectedStyle\n };\n V(() => {\n s.length > 0 && s[s.length - 1] !== o && u(!A.reusable);\n }, [s]);\n const B = (h) => {\n i || c((m) => {\n const I = new Set(m);\n if (I.has(h))\n e.delete(h), I.delete(h);\n else {\n if (r.size == A.max)\n return m;\n e.add(h), I.add(h);\n }\n return I;\n });\n };\n return /* @__PURE__ */ X(\"div\", { className: `rcb-checkbox-container ${(S = t.botBubble) != null && S.showAvatar ? \"rcb-checkbox-offset\" : \"\"}`, children: [\n A.items.map((h) => /* @__PURE__ */ l(\n \"div\",\n {\n onMouseDown: (m) => {\n m.preventDefault(), B(h);\n },\n style: f,\n className: \"rcb-checkbox-row-container\",\n children: /* @__PURE__ */ X(\"div\", { className: \"rcb-checkbox-row\", children: [\n /* @__PURE__ */ l(\n \"div\",\n {\n style: r.has(h) ? g : d,\n className: \"rcb-checkbox-mark\"\n }\n ),\n /* @__PURE__ */ l(\"div\", { className: \"rcb-checkbox-label\", children: h })\n ] })\n },\n h\n )),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: w,\n className: \"rcb-checkbox-next-button\",\n onMouseDown: (h) => {\n var M;\n if (h.preventDefault(), i || r.size < A.min)\n return;\n const m = Array.from(e).join(\", \");\n u(!A.reusable);\n let I;\n A.sendOutput != null ? I = A.sendOutput : I = ((M = t.chatInput) == null ? void 0 : M.sendCheckboxOutput) ?? !0, a(m, I);\n }\n }\n )\n ] });\n}, dt = async (A, e) => {\n const o = A.checkboxes;\n if (!o)\n return;\n let t;\n if (typeof o == \"function\" ? (t = o(e), t instanceof Promise && (t = await t)) : t = o, Array.isArray(t) && (t = { items: t }), !(\"items\" in t) || t.items.length == 0)\n return;\n t.min == null && (t.min = 1), t.max == null && (t.max = t.items.length), t.min > t.max && (t.min = t.max), t.reusable == null && (t.reusable = !1);\n const n = /* @__PURE__ */ new Set(), s = e.currPath, a = /* @__PURE__ */ l(ft, { checkboxes: t, checkedItems: n, path: s });\n await e.injectMessage(a);\n}, wt = async (A, e) => {\n const o = A.function;\n if (!o)\n return;\n const t = o(e);\n return t instanceof Promise ? await t : t;\n}, gt = async (A, e, o) => {\n const t = A.message;\n if (!t)\n return;\n if (typeof t == \"string\") {\n t.trim() !== \"\" && (o ? await e.simulateStreamMessage(t) : await e.injectMessage(t));\n return;\n }\n let n = t(e);\n n instanceof Promise && (n = await n), typeof n == \"string\" && n.trim() !== \"\" && (o ? await e.simulateStreamMessage(n) : await e.injectMessage(n));\n}, Bt = ({\n options: A,\n path: e\n}) => {\n var g, B, P, b, y, D;\n const { settings: o } = O(), { styles: t } = Y(), { paths: n } = mA(), { handleSubmitText: s } = yA(), [a, r] = F([]), [c, i] = F(!1), u = {\n cursor: c ? `url(\"${(g = o.general) == null ? void 0 : g.actionDisabledIcon}\"), auto` : \"pointer\",\n color: (B = o.general) == null ? void 0 : B.primaryColor,\n borderColor: (P = o.general) == null ? void 0 : P.primaryColor,\n backgroundColor: \"#fff\",\n ...t.botOptionStyle\n }, f = {\n color: \"#fff\",\n borderColor: (b = o.general) == null ? void 0 : b.primaryColor,\n backgroundColor: (y = o.general) == null ? void 0 : y.primaryColor,\n ...t.botOptionHoveredStyle\n };\n V(() => {\n n.length > 0 && n[n.length - 1] !== e && i(!A.reusable);\n }, [n]);\n const w = (p) => {\n r((C) => {\n const v = [...C];\n return v[p] = !0, v;\n });\n }, d = (p) => {\n r((C) => {\n const v = [...C];\n return v[p] = !1, v;\n });\n };\n return /* @__PURE__ */ l(\"div\", { className: `rcb-options-container ${(D = o.botBubble) != null && D.showAvatar ? \"rcb-options-offset\" : \"\"}`, children: A.items.map((p, C) => {\n const v = a[C] && !c;\n return /* @__PURE__ */ l(\n \"div\",\n {\n className: \"rcb-options\",\n style: v ? f : u,\n onMouseEnter: () => w(C),\n onMouseLeave: () => d(C),\n onMouseDown: (E) => {\n var Q;\n if (E.preventDefault(), c)\n return;\n i(!A.reusable);\n let T;\n A.sendOutput != null ? T = A.sendOutput : T = ((Q = o.chatInput) == null ? void 0 : Q.sendOptionOutput) ?? !0, s(p, T);\n },\n children: p\n },\n p\n );\n }) });\n}, vt = async (A, e) => {\n const o = A.options;\n if (!o)\n return;\n let t;\n if (typeof o == \"function\" ? (t = o(e), t instanceof Promise && (t = await t)) : t = o, Array.isArray(t) && (t = { items: t }), !(\"items\" in t) || t.items.length == 0)\n return;\n t.reusable == null && (t.reusable = !1);\n const n = e.currPath, s = /* @__PURE__ */ l(Bt, { options: t, path: n });\n await e.injectMessage(s);\n}, Pt = async (A, e) => {\n const o = A.path;\n if (!o)\n return !1;\n if (typeof o == \"string\")\n return await e.goToPath(o), !0;\n let t = o(e);\n if (t instanceof Promise && (t = await t), !t)\n return !1;\n const n = t;\n return await e.goToPath(n), !0;\n}, ht = async (A, e) => {\n const o = A.component;\n if (o) {\n if (typeof o == \"function\") {\n let t = o(e);\n if (t instanceof Promise && (t = await t), !t)\n return;\n await e.injectMessage(t);\n return;\n }\n await e.injectMessage(o);\n }\n}, Dt = async (A, e, o, t) => {\n const n = A.transition;\n let s;\n if (typeof n == \"function\" ? (s = n(e), s instanceof Promise && (s = await s)) : s = n, typeof s == \"number\" && (s = { duration: s }), !s || s instanceof Promise || s.duration == null || typeof s.duration != \"number\")\n return;\n s.interruptable == null && (s.interruptable = !1);\n const a = setTimeout(async () => {\n const r = await t(A);\n r && await ge(r, e);\n }, s.duration);\n s.interruptable && (o.current = a);\n}, Et = async (A, e, o) => {\n const t = A.chatDisabled;\n if (t == null)\n return;\n let n;\n typeof t == \"function\" ? (n = t(e), n instanceof Promise && (n = await n)) : n = t, o(n);\n}, we = async (A, e, o) => {\n const t = A.isSensitive;\n if (!t) {\n o(!1);\n return;\n }\n let n;\n typeof t == \"function\" ? (n = t(e), n instanceof Promise && (n = await n)) : n = t, o(n);\n}, yt = async (A, e, o, t, n, s, a) => {\n if (!A)\n throw new Error(\"Block is not valid.\");\n for (const r of Object.keys(A))\n switch (r) {\n case \"message\":\n await gt(A, e, o);\n break;\n case \"options\":\n await vt(A, e);\n break;\n case \"checkboxes\":\n await dt(A, e);\n break;\n case \"component\":\n await ht(A, e);\n break;\n case \"chatDisabled\":\n await Et(A, e, n);\n break;\n case \"isSensitive\":\n await we(A, e, s);\n break;\n case \"transition\":\n await Dt(A, e, t, a);\n }\n}, ge = async (A, e) => {\n if (!A)\n throw new Error(\"Block is not valid.\");\n const o = Object.keys(A);\n for (const t of o)\n t === \"function\" && await wt(A, e);\n o.includes(\"path\") && await Pt(A, e);\n}, Ct = () => {\n var o;\n const { settings: A } = O(), { styles: e } = Y();\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-line-break-container\", children: /* @__PURE__ */ l(\n \"div\",\n {\n style: { ...e.chatHistoryLineBreakStyle },\n className: \"rcb-line-break-text\",\n \"data-testid\": \"chat-history-line-break-text\",\n children: (o = A.chatHistory) == null ? void 0 : o.chatHistoryLineBreakText\n }\n ) });\n}, mt = () => {\n var t;\n const { settings: A } = O(), { styles: e } = Y(), o = {\n borderTop: `4px solid ${(t = A.general) == null ? void 0 : t.primaryColor}`,\n ...e.loadingSpinnerStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-spinner-container\", children: /* @__PURE__ */ l(\"div\", { style: o, className: \"rcb-spinner\" }) });\n}, SA = () => {\n try {\n if (typeof crypto < \"u\" && typeof crypto.randomUUID == \"function\")\n return crypto.randomUUID();\n throw new Error(\"crypto.randomUUID not available\");\n } catch (A) {\n if (typeof crypto < \"u\" && typeof crypto.getRandomValues == \"function\")\n return \"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g, function(e) {\n const o = crypto.getRandomValues(new Uint8Array(1))[0] % 16;\n return (e === \"x\" ? o : o & 3 | 8).toString(16);\n });\n throw console.error(A), new Error(\"crypto.getRandomValues is also not available\");\n }\n}, gA = (A, e) => ({\n id: SA(),\n content: A,\n sender: e,\n type: typeof A == \"string\" ? \"string\" : \"object\",\n timestamp: (/* @__PURE__ */ new Date()).toUTCString(),\n tags: []\n});\nlet wA, Be = !1, IA = \"rcb-history\", bA = 30, ve = !1, CA = [];\nconst HA = async (A) => {\n if (ve || !wA)\n return;\n const e = [], o = Be ? CA.length : 0;\n for (let n = A.length - 1; n >= o; n--) {\n const s = A[n];\n if (s.sender.toUpperCase() !== \"SYSTEM\" && (s.content !== \"\" && e.unshift(s), e.length === bA))\n break;\n }\n let t = e.map(St);\n if (t.length < bA) {\n const n = bA - t.length;\n t = [...CA.slice(-n), ...t];\n }\n Pe(t);\n}, Qt = (A) => {\n if (A != null)\n try {\n return JSON.parse(A);\n } catch {\n return [];\n }\n return [];\n}, jA = () => CA, bt = (A) => {\n Pe(A), CA = A;\n}, Pe = (A) => {\n wA && wA.setItem(IA, JSON.stringify(A));\n}, pt = () => {\n wA && wA.removeItem(IA);\n}, RA = (A) => {\n var e, o, t, n, s;\n ((o = (e = A.chatHistory) == null ? void 0 : e.storageType) == null ? void 0 : o.toUpperCase()) === \"SESSION_STORAGE\" ? wA = sessionStorage : wA = localStorage, IA = (t = A.chatHistory) == null ? void 0 : t.storageKey, bA = (n = A.chatHistory) == null ? void 0 : n.maxEntries, ve = (s = A.chatHistory) == null ? void 0 : s.disabled, CA = Qt(wA.getItem(IA));\n}, St = (A) => se(A.content) ? structuredClone({\n id: A.id,\n content: Te.renderToString(A.content),\n type: A.type,\n sender: A.sender.toUpperCase(),\n timestamp: A.timestamp,\n tags: A.tags\n}) : A, It = (A, e, o, t, n, s, a, r, c) => {\n var i;\n if (Be = !0, o != null)\n try {\n const u = gA(/* @__PURE__ */ l(mt, {}), \"SYSTEM\"), f = n.current.slice(1);\n t([u, ...f]);\n const w = o.map((d) => {\n if (d.type === \"object\") {\n const g = he(d.content, A, e);\n return { ...d, content: g };\n }\n return d;\n });\n setTimeout(() => {\n var B;\n const d = n.current.slice(1);\n let g = (B = A.chatHistory) != null && B.autoLoad ? gA(/* @__PURE__ */ l(nA, {}), \"SYSTEM\") : gA(/* @__PURE__ */ l(Ct, {}), \"SYSTEM\");\n t([...w, g, ...d]), c(!0);\n }, 500), setTimeout(() => {\n if (!s.current)\n return;\n const { scrollHeight: d } = s.current, g = d - a;\n s.current.scrollTop += g, r(!1);\n }, 510);\n } catch {\n wA.removeItem((i = A.chatHistory) == null ? void 0 : i.storageKey);\n }\n}, he = (A, e, o) => {\n const n = new DOMParser().parseFromString(A, \"text/html\");\n return Array.from(n.body.childNodes).map((r, c) => {\n var i;\n if (r.nodeType === Node.TEXT_NODE)\n return r.textContent;\n {\n const u = r.tagName.toLowerCase();\n let f = Array.from(r.attributes).reduce((d, g) => {\n const B = g.name.toLowerCase();\n if (B === \"style\") {\n const P = g.value.split(\";\").filter((y) => y.trim() !== \"\"), b = {};\n P.forEach((y) => {\n const [D, p] = y.split(\":\").map((v) => v.trim()), C = D.replace(/-([a-z])/g, (v, E) => E.toUpperCase());\n b[C] = p;\n }), d[B] = b;\n } else (u === \"audio\" || u === \"video\") && B === \"controls\" && g.value === \"\" ? d[B] = \"true\" : d[B] = g.value;\n return d;\n }, {});\n if (Object.prototype.hasOwnProperty.call(f, \"class\")) {\n const d = r.classList;\n f.className = d.toString(), delete f.class, (i = e.botBubble) != null && i.showAvatar && (f = Tt(d, f)), f = Mt(d, f, e, o), f = kt(d, f, e, o), f = Ht(d, f, e, o), f = xt(d, f, e, o);\n }\n if ([\n \"area\",\n \"base\",\n \"br\",\n \"col\",\n \"embed\",\n \"hr\",\n \"img\",\n \"input\",\n \"link\",\n \"meta\",\n \"source\",\n \"track\",\n \"wbr\"\n ].includes(u))\n return _A(u, { key: c, ...f });\n {\n const d = he(r.innerHTML, e, o);\n return _A(u, { key: c, ...f }, ...d);\n }\n }\n });\n}, Tt = (A, e) => ((A.contains(\"rcb-options-container\") || A.contains(\"rcb-checkbox-container\")) && (e.className = `${A.toString()} rcb-options-offset`), e), Mt = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-options\") && (e.style = {\n ...e.style,\n color: ((n = t.botOptionStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botOptionStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botOptionStyle\n }), e;\n}, kt = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-checkbox-row-container\") && (e.style = {\n ...e.style,\n color: ((n = t.botCheckboxRowStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botCheckboxRowStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botCheckboxRowStyle\n }), e;\n}, Ht = (A, e, o, t) => {\n var n, s, a, r, c;\n return A.contains(\"rcb-checkbox-next-button\") && (e.style = {\n ...e.style,\n color: ((n = t.botCheckboxNextStyle) == null ? void 0 : n.color) ?? ((s = o.general) == null ? void 0 : s.primaryColor),\n borderColor: ((a = t.botCheckboxNextStyle) == null ? void 0 : a.color) ?? ((r = o.general) == null ? void 0 : r.primaryColor),\n cursor: `url(\"${(c = o.general) == null ? void 0 : c.actionDisabledIcon}\"), auto`,\n ...t.botCheckboxNextStyle\n }), e;\n}, xt = (A, e, o, t) => {\n var n, s;\n return (A.contains(\"rcb-media-display-image-container\") || A.contains(\"rcb-media-display-video-container\")) && (e.style = {\n ...e.style,\n backgroundColor: (n = o.general) == null ? void 0 : n.primaryColor,\n maxWidth: (s = o.userBubble) != null && s.showAvatar ? \"65%\" : \"70%\",\n ...t.mediaDisplayContainerStyle\n }), e;\n}, zA = () => {\n const { settings: A } = O(), {\n notificationsToggledOn: e,\n setSyncedNotificationsToggledOn: o,\n hasInteractedPage: t,\n unreadCount: n,\n setUnreadCount: s,\n syncedNotificationsToggledOnRef: a\n } = eA(), { audioBufferRef: r, audioContextRef: c, gainNodeRef: i } = $(), { dispatchRcbEvent: u } = lA(), f = x(async () => {\n var b, y;\n const g = (b = A.notification) == null ? void 0 : b.sound;\n c.current = new AudioContext();\n const B = c.current.createGain();\n B.gain.value = ((y = A.notification) == null ? void 0 : y.volume) ?? 0.2, i.current = B;\n let P;\n if (g != null && g.startsWith(\"data:audio\")) {\n const D = atob(g.split(\",\")[1]), p = new ArrayBuffer(D.length), C = new Uint8Array(p);\n for (let v = 0; v < D.length; v++)\n C[v] = D.charCodeAt(v);\n P = p;\n } else\n P = await (await fetch(g)).arrayBuffer();\n r.current = await c.current.decodeAudioData(P);\n }, [A.notification]), w = x(() => {\n var B;\n if ((B = A.notification) != null && B.disabled || !a.current || !t || !c.current || !r.current)\n return;\n const g = c.current.createBufferSource();\n g.buffer = r.current, g.connect(i.current).connect(c.current.destination), g.start();\n }, [\n A.notification,\n a,\n t,\n c,\n r,\n i\n ]), d = x(async (g) => {\n var B;\n g !== a.current && ((B = A.event) != null && B.rcbToggleNotifications && (await u(\n H.TOGGLE_NOTIFICATIONS,\n {\n currState: a.current,\n newState: !a.current\n }\n )).defaultPrevented || o((P) => !P));\n }, [a]);\n return {\n unreadCount: n,\n setUnreadCount: s,\n notificationsToggledOn: e,\n toggleNotifications: d,\n playNotificationSound: w,\n setUpNotifications: f\n };\n}, Ot = (A, e, o, t, n) => {\n if (!window.SpeechSynthesisUtterance) {\n console.info(\"Speech Synthesis API is not supported in this environment.\");\n return;\n }\n const s = new window.SpeechSynthesisUtterance();\n s.text = A, s.lang = e, s.rate = t, s.volume = n;\n let a = !1;\n for (const r of o)\n if (window.speechSynthesis.getVoices().find((c) => {\n if (c.name === r) {\n s.voice = c, window.speechSynthesis.speak(s), a = !0;\n return;\n }\n }), a)\n break;\n a || window.speechSynthesis.speak(s);\n}, Lt = (A, e) => {\n var o, t, n, s;\n Ot(\n e,\n (o = A.audio) == null ? void 0 : o.language,\n (t = A.audio) == null ? void 0 : t.voiceNames,\n (n = A.audio) == null ? void 0 : n.rate,\n (s = A.audio) == null ? void 0 : s.volume\n );\n}, GA = () => {\n const { settings: A } = O(), { audioToggledOn: e, setSyncedAudioToggledOn: o, syncedAudioToggledOnRef: t } = eA(), { dispatchRcbEvent: n } = lA(), s = x(async (r) => {\n var c;\n r !== t.current && ((c = A.event) != null && c.rcbToggleAudio && (await n(\n H.TOGGLE_AUDIO,\n {\n currState: t.current,\n newState: !t.current\n }\n )).defaultPrevented || o((i) => !i));\n }, [t]), a = x(async (r) => {\n var i, u;\n if ((i = A.audio) != null && i.disabled || !t.current)\n return;\n let c = r;\n if ((u = A.event) != null && u.rcbStartSpeakAudio) {\n const f = await n(H.START_SPEAK_AUDIO, { textToRead: c });\n if (f.defaultPrevented)\n return;\n c = f.data.textToRead;\n }\n Lt(A, c);\n }, [A, t]);\n return {\n audioToggledOn: e,\n speakAudio: a,\n toggleAudio: s\n };\n}, hA = () => {\n var E, T;\n const { settings: A } = O(), { messages: e, setSyncedMessages: o, syncedMessagesRef: t } = FA(), {\n setSyncedIsBotTyping: n,\n setUnreadCount: s,\n syncedIsScrollingRef: a,\n syncedIsChatWindowOpenRef: r\n } = eA(), { streamMessageMap: c, chatBodyRef: i, paramsInputRef: u } = $(), { scrollToBottom: f, getIsChatBotVisible: w } = sA(), { dispatchRcbEvent: d } = lA(), { speakAudio: g } = GA(), { playNotificationSound: B } = zA(), P = x((Q, S = !1) => {\n var M, k;\n HA(Q);\n let h = !0;\n const m = Q[Q.length - 1];\n if (!m)\n return;\n const I = m.sender.toUpperCase();\n I === \"USER\" && (h = !1), (M = A.general) != null && M.embedded && w() && (h = !1), (r.current && !a.current || S) && (h = !1), h && B(), !S && (I !== \"USER\" && ((k = A.chatWindow) != null && k.autoJumpToBottom) || I === \"USER\" || !a.current) && setTimeout(() => f(), 1);\n }, [\n A,\n i,\n r,\n a,\n B,\n f,\n w\n ]), b = x(async (Q, S = \"BOT\", h = null) => {\n var J, z, U, K, R;\n if (typeof Q != \"string\")\n throw new Error(\"Content must be of type string to simulate stream.\");\n S = S.toUpperCase();\n let m = gA(Q, S);\n if ((J = A.event) != null && J.rcbStartSimulateStreamMessage) {\n const L = await d(\n H.START_SIMULATE_STREAM_MESSAGE,\n { message: m }\n );\n if (L.defaultPrevented)\n return null;\n h = L.data.simulateStreamChunker || h, m = L.data.message;\n }\n n(!1);\n let I = 30;\n S === \"BOT\" ? I = (z = A.botBubble) == null ? void 0 : z.streamSpeed : I = (U = A.userBubble) == null ? void 0 : U.streamSpeed;\n const M = { ...m, content: \"\" };\n o((L) => [...L, M]), P(t.current);\n let k = m.content;\n h && (k = h(k));\n let j = 0;\n const N = k.length;\n m.sender.toUpperCase() === \"BOT\" && (r.current || (K = A.general) != null && K.embedded) && typeof m.content == \"string\" && m.content.trim() !== \"\" && g(m.content);\n const W = new Promise((L) => {\n const G = setInterval(() => {\n if (j >= N) {\n clearInterval(G), L();\n return;\n }\n o((tA) => {\n const _ = [...tA];\n for (let oA = _.length - 1; oA >= 0; oA--)\n if (_[oA].id === M.id) {\n const rA = k[j];\n rA && (M.content += rA, _[oA] = M), j++;\n break;\n }\n return _;\n });\n }, I);\n });\n return (a.current || !r.current) && s((L) => L + 1), await W, HA(t.current), (R = A.event) != null && R.rcbStopSimulateStreamMessage && await d(H.STOP_SIMULATE_STREAM_MESSAGE, { message: m }), S === \"USER\" && (u.current = Q), m;\n }, [\n A,\n d,\n P,\n t,\n u,\n n,\n s,\n r,\n g\n ]), y = x(async (Q, S = \"BOT\") => {\n var m, I, M;\n S = S.toUpperCase();\n let h = gA(Q, S);\n if ((m = A.event) != null && m.rcbPreInjectMessage) {\n const k = await d(H.PRE_INJECT_MESSAGE, { message: h });\n if (k.defaultPrevented)\n return null;\n h = k.data.message;\n }\n return h.sender.toUpperCase() === \"BOT\" && (r.current || (I = A.general) != null && I.embedded) && typeof h.content == \"string\" && h.content.trim() !== \"\" && g(h.content), (a.current || !r.current) && s((k) => k + 1), (M = A.event) != null && M.rcbPostInjectMessage && await d(H.POST_INJECT_MESSAGE, { message: h }), o((k) => [...k, h]), P(t.current), S === \"USER\" && typeof Q == \"string\" && (u.current = Q), h;\n }, [\n A,\n d,\n P,\n u,\n t,\n r,\n g,\n s\n ]), D = x(async (Q) => {\n var h;\n const S = t.current.find((m) => m.id === Q);\n return !S || (h = A.event) != null && h.rcbRemoveMessage && (await d(H.REMOVE_MESSAGE, { message: S })).defaultPrevented ? null : (o(\n (m) => m.filter((I) => I.id !== Q)\n ), P(t.current), s((m) => Math.max(m - 1, 0)), S);\n }, [\n d,\n (E = A.event) == null ? void 0 : E.rcbRemoveMessage,\n P,\n t,\n s\n ]), p = x(async (Q, S = \"BOT\") => {\n var m, I;\n if (S = S.toUpperCase(), !c.current.has(S)) {\n const M = gA(Q, S);\n return (m = A.event) != null && m.rcbStartStreamMessage && (await d(H.START_STREAM_MESSAGE, { message: M })).defaultPrevented ? null : (n(!1), o((k) => [...k, M]), P(t.current), c.current.set(S, M.id), (a.current || !r.current) && s((k) => k + 1), M);\n }\n const h = { ...gA(Q, S), id: c.current.get(S) };\n return (I = A.event) != null && I.rcbChunkStreamMessage && (await d(H.CHUNK_STREAM_MESSAGE, { message: h })).defaultPrevented ? null : (o(\n (M) => M.map((k) => k.id === h.id ? h : k)\n ), P(t.current, !0), h);\n }, [\n d,\n A.event,\n P,\n t,\n n,\n s,\n c\n ]), C = x(async (Q = \"BOT\") => {\n var m;\n if (Q = Q.toUpperCase(), !c.current.has(Q))\n return !0;\n const S = c.current.get(Q);\n let h;\n for (let I = 0; I < 3; I++) {\n const M = t.current.find((k) => k.id === S);\n M && (h = M), await new Promise((k) => setTimeout(k, 20));\n }\n return (m = A.event) != null && m.rcbStopStreamMessage && (await d(H.STOP_STREAM_MESSAGE, { message: h })).defaultPrevented ? !1 : (c.current.delete(Q), HA(t.current), Q === \"USER\" && typeof (h == null ? void 0 : h.content) == \"string\" && (u.current = h.content), !0);\n }, [d, (T = A.event) == null ? void 0 : T.rcbStopStreamMessage, c, u]), v = x((Q) => {\n o(Q), P(Q);\n }, [P]);\n return {\n simulateStreamMessage: b,\n injectMessage: y,\n removeMessage: D,\n streamMessage: p,\n endStreamMessage: C,\n replaceMessages: v,\n messages: e\n };\n};\nlet xA, uA, pA, BA = !1, cA = null;\nconst YA = () => {\n if (!xA) {\n const A = window.SpeechRecognition || window.webkitSpeechRecognition;\n xA = A != null ? new A() : null;\n }\n return xA;\n}, Nt = (A, e, o, t, n, s, a) => {\n var r;\n (r = A.voice) != null && r.sendAsAudio ? Ut(o, s) : Rt(\n A,\n e,\n o,\n t,\n n,\n a\n );\n}, Rt = (A, e, o, t, n, s) => {\n var i, u, f;\n const a = YA();\n if (!a)\n return;\n if (!BA)\n try {\n BA = !0, a.lang = (i = A.voice) == null ? void 0 : i.language, a.start();\n } catch {\n }\n const r = (u = A.voice) == null ? void 0 : u.timeoutPeriod, c = (f = A.voice) == null ? void 0 : f.autoSendPeriod;\n a.onresult = (w) => {\n var g, B;\n clearTimeout(uA), uA = null, clearTimeout(pA);\n const d = w.results[w.results.length - 1][0].transcript;\n if (s.current) {\n const P = (g = A.chatInput) == null ? void 0 : g.characterLimit, b = s.current.value + d;\n P != null && P >= 0 && b.length > P ? t(b.slice(0, P)) : t(b), n(s.current.value.length);\n }\n r && (uA = setTimeout(async () => await OA(e, s), r)), (B = A.voice) != null && B.autoSendDisabled || (pA = setTimeout(o, c));\n }, a.onend = () => {\n BA ? (a.start(), !uA && r && (uA = setTimeout(async () => await OA(e, s), r))) : (clearTimeout(uA), uA = null, clearTimeout(pA));\n }, r && (uA = setTimeout(async () => await OA(e, s), r));\n}, Ut = (A, e) => {\n navigator.mediaDevices.getUserMedia({ audio: !0 }).then((o) => {\n if (cA = new MediaRecorder(o), !BA)\n try {\n BA = !0, cA.start();\n } catch {\n }\n cA.ondataavailable = (t) => {\n e.current && e.current.push(t.data);\n }, cA.onstop = () => {\n A(), o.getTracks().forEach((t) => t.stop());\n };\n }).catch((o) => {\n console.error(\"Unable to use microphone:\", o);\n });\n}, XA = () => {\n const A = YA();\n A && (BA = !1, A && A.stop(), cA && cA.state !== \"inactive\" && (cA.stop(), cA = null), clearTimeout(uA), uA = null, clearTimeout(pA));\n}, Ft = (A, e) => {\n var t, n, s;\n const o = YA();\n (t = e.voice) != null && t.disabled || !((n = e.chatInput) != null && n.blockSpam) || !o || (A && !BA ? (BA = !0, (s = e.voice) != null && s.sendAsAudio ? cA == null || cA.start() : o.start()) : A || XA());\n}, OA = async (A, e) => {\n var o;\n (o = e.current) != null && o.disabled || await A(), XA();\n}, TA = () => {\n const { settings: A } = O(), { voiceToggledOn: e, setSyncedVoiceToggledOn: o, syncedVoiceToggledOnRef: t } = eA(), { dispatchRcbEvent: n } = lA(), s = x(async (r) => {\n var c;\n r !== t.current && ((c = A.event) != null && c.rcbToggleVoice && (await n(\n H.TOGGLE_VOICE,\n {\n currState: t.current,\n newState: !t.current\n }\n )).defaultPrevented || o((i) => !i));\n }, [t]), a = x((r) => {\n Ft(r, A);\n }, [A]);\n return {\n voiceToggledOn: e,\n toggleVoice: s,\n syncVoice: a\n };\n}, DA = () => {\n var C;\n const { settings: A } = O(), {\n inputLength: e,\n setInputLength: o,\n textAreaDisabled: t,\n setSyncedTextAreaDisabled: n,\n textAreaSensitiveMode: s,\n setSyncedTextAreaSensitiveMode: a,\n syncedTextAreaDisabledRef: r,\n syncedTextAreaSensitiveModeRef: c\n } = eA(), { inputRef: i, chatBodyRef: u, prevInputRef: f } = $(), { dispatchRcbEvent: w } = lA(), { getIsChatBotVisible: d } = sA(), g = x(async (v) => {\n var E, T, Q;\n if (r.current && i.current) {\n i.current.value = \"\";\n return;\n }\n if (i.current && f.current !== null) {\n const S = (E = A.chatInput) == null ? void 0 : E.characterLimit, m = ((T = A.chatInput) == null ? void 0 : T.allowNewline) ? v : v.replace(/\\n/g, \" \");\n if (S != null && S >= 0 && m.length > S ? i.current.value = m.slice(0, S) : i.current.value = m, (Q = A.event) != null && Q.rcbTextAreaChangeValue && (await w(\n H.TEXT_AREA_CHANGE_VALUE,\n { currValue: i.current.value, prevValue: f.current }\n )).defaultPrevented) {\n i.current.value = f.current;\n return;\n }\n f.current = i.current.value;\n }\n }, [r, i, f, A, w]), B = x((v) => {\n var E;\n (E = i.current) != null && E.disabled || setTimeout(() => {\n var T, Q, S;\n (T = A.general) != null && T.embedded ? d() && ((Q = i.current) == null || Q.focus()) : v !== \"start\" && ((S = i.current) == null || S.focus());\n }, 100);\n }, [i, (C = A.general) == null ? void 0 : C.embedded, u, d]), P = x(() => {\n i.current && i.current.focus();\n }, []), b = x(() => {\n i.current && i.current.blur();\n }, []), y = x(() => i && i.current ? i.current.value : \"\", []), D = x((v) => {\n v !== r.current && n((E) => !E);\n }, [r]), p = x((v) => {\n v !== c.current && a((E) => !E);\n }, [c]);\n return {\n textAreaDisabled: t,\n setSyncedTextAreaDisabled: n,\n textAreaSensitiveMode: s,\n setSyncedTextAreaSensitiveMode: a,\n inputLength: e,\n setInputLength: o,\n getTextAreaValue: y,\n setTextAreaValue: g,\n updateTextAreaFocus: B,\n focusTextArea: P,\n blurTextArea: b,\n toggleTextAreaDisabled: D,\n toggleTextAreaSensitiveMode: p\n };\n}, De = vA({\n toasts: [],\n setSyncedToasts: () => {\n },\n syncedToastsRef: { current: [] }\n}), Ee = () => PA(De), jt = ({ children: A }) => {\n const [e, o, t] = aA([]);\n return /* @__PURE__ */ l(De.Provider, { value: { toasts: e, setSyncedToasts: o, syncedToastsRef: t }, children: A });\n}, EA = () => {\n const { settings: A } = O(), { toasts: e, setSyncedToasts: o, syncedToastsRef: t } = Ee(), { dispatchRcbEvent: n } = lA(), s = x(async (c, i) => {\n var g, B, P, b;\n let u = null;\n if (t.current.length >= (((g = A.toast) == null ? void 0 : g.maxCount) ?? 3)) {\n if ((B = A.toast) != null && B.forbidOnMax)\n return null;\n u = SA();\n let y = { id: u, content: c, timeout: i };\n if ((P = A.event) != null && P.rcbShowToast) {\n const D = await n(H.SHOW_TOAST, { toast: y });\n if (D.defaultPrevented)\n return null;\n y = D.data.toast;\n }\n return o((D) => [...D.slice(1), y]), u;\n }\n u = SA();\n let d = { id: u, content: c, timeout: i };\n if ((b = A.event) != null && b.rcbShowToast) {\n const y = await n(H.SHOW_TOAST, { toast: d });\n if (y.defaultPrevented)\n return null;\n d = y.data.toast;\n }\n return o((y) => [...y, d]), u;\n }, [A, n]), a = x(async (c) => {\n var u;\n const i = t.current.find((f) => f.id === c);\n return !i || (u = A.event) != null && u.rcbDismissToast && (await n(H.DISMISS_TOAST, { toast: i })).defaultPrevented ? null : (o((f) => f.filter((w) => w.id !== c)), c);\n }, [n]), r = x((c) => {\n o(c);\n }, []);\n return {\n showToast: s,\n dismissToast: a,\n toasts: e,\n replaceToasts: r\n };\n}, QA = () => {\n var j, N, W, J, z;\n const { settings: A } = O(), { paths: e, setSyncedPaths: o, syncedPathsRef: t } = mA(), { flowRef: n, streamMessageMap: s, paramsInputRef: a, keepVoiceOnRef: r, timeoutIdRef: c } = $(), {\n setSyncedIsBotTyping: i,\n setSyncedTextAreaDisabled: u,\n setSyncedTextAreaSensitiveMode: f,\n blockAllowsAttachment: w,\n setBlockAllowsAttachment: d\n } = eA(), { dispatchRcbEvent: g } = lA(), {\n endStreamMessage: B,\n injectMessage: P,\n removeMessage: b,\n simulateStreamMessage: y,\n streamMessage: D\n } = hA(), { showToast: p, dismissToast: C } = EA(), { toggleChatWindow: v } = sA(), { updateTextAreaFocus: E, setTextAreaValue: T } = DA(), { syncVoice: Q } = TA(), S = x(async (U) => {\n var K;\n if ((K = A.event) != null && K.rcbPostProcessBlock) {\n const R = await g(H.POST_PROCESS_BLOCK, {\n block: U\n });\n if (R.defaultPrevented)\n return null;\n U = R.data.block;\n }\n return U;\n }, [(j = A.event) == null ? void 0 : j.rcbPostProcessBlock, g]), h = x(async (U, K) => {\n var G, tA, _, oA;\n if (!U)\n return;\n let R = n.current[U];\n if (!R) {\n i(!1);\n return;\n }\n if ((G = A.event) != null && G.rcbPreProcessBlock) {\n const rA = await g(H.PRE_PROCESS_BLOCK, {\n block: R\n });\n if (rA.defaultPrevented)\n return;\n R = rA.data.block;\n }\n i(!0), (tA = A.chatInput) != null && tA.blockSpam && u(!0), f(!1);\n const L = {\n prevPath: K,\n currPath: U,\n goToPath: M,\n setTextAreaValue: T,\n userInput: a.current,\n endStreamMessage: B,\n injectMessage: P,\n removeMessage: b,\n simulateStreamMessage: y,\n streamMessage: D,\n toggleChatWindow: v,\n showToast: p,\n dismissToast: C\n };\n await yt(\n R,\n L,\n ((_ = A.botBubble) == null ? void 0 : _.simulateStream) ?? !1,\n c,\n u,\n f,\n S\n ), i(!1), \"chatDisabled\" in R || u((oA = A.chatInput) == null ? void 0 : oA.disabled), \"isSensitive\" in R || f(!1), d(typeof R.file == \"function\"), E(U), Q(r.current && !R.chatDisabled), U !== K && s.current.clear();\n }, [\n n,\n E,\n Q,\n (N = A.botBubble) == null ? void 0 : N.simulateStream,\n (W = A.chatInput) == null ? void 0 : W.disabled,\n a,\n B,\n P,\n b,\n y,\n D,\n v,\n p,\n C,\n r,\n s\n ]), m = x(() => t.current.length > 0 ? t.current.at(-1) ?? null : null, []), I = x(() => t.current.length > 1 ? t.current.at(-2) ?? null : null, []), M = x(async (U) => {\n var L;\n const K = m(), R = I();\n return (L = A.event) != null && L.rcbChangePath && (await g(H.CHANGE_PATH, {\n currPath: K,\n prevPath: R,\n nextPath: U\n })).defaultPrevented ? !1 : (o((G) => [...G, U]), await h(U, K), !0);\n }, [(J = A.chatInput) == null ? void 0 : J.blockSpam, (z = A.event) == null ? void 0 : z.rcbChangePath, h, g]), k = x((U) => {\n o(U);\n }, []);\n return {\n getCurrPath: m,\n getPrevPath: I,\n goToPath: M,\n blockAllowsAttachment: w,\n setBlockAllowsAttachment: d,\n paths: e,\n replacePaths: k,\n firePostProcessBlockEvent: S\n };\n}, yA = () => {\n var j, N, W, J;\n const { settings: A } = O(), {\n endStreamMessage: e,\n injectMessage: o,\n removeMessage: t,\n simulateStreamMessage: n,\n streamMessage: s\n } = hA(), { syncedPathsRef: a } = mA(), { getCurrPath: r, getPrevPath: c, goToPath: i, firePostProcessBlockEvent: u } = QA(), {\n setSyncedTextAreaSensitiveMode: f,\n setSyncedTextAreaDisabled: w,\n setSyncedIsBotTyping: d,\n setBlockAllowsAttachment: g,\n setInputLength: B,\n syncedVoiceToggledOnRef: P,\n syncedTextAreaSensitiveModeRef: b\n } = eA(), { flowRef: y, inputRef: D, keepVoiceOnRef: p, paramsInputRef: C, timeoutIdRef: v } = $(), { showToast: E, dismissToast: T } = EA(), { dispatchRcbEvent: Q } = lA(), { syncVoice: S } = TA(), { setTextAreaValue: h } = DA(), { toggleChatWindow: m } = sA(), I = x(async (z) => {\n var R, L, G, tA, _, oA;\n const U = r();\n if (!(!U || !y.current[U])) {\n if (b.current) {\n if ((R = A == null ? void 0 : A.sensitiveInput) != null && R.hideInUserBubble)\n return;\n if ((L = A == null ? void 0 : A.sensitiveInput) != null && L.maskInUserBubble) {\n (G = A.userBubble) != null && G.simulateStream ? await n(\n \"*\".repeat(((tA = A.sensitiveInput) == null ? void 0 : tA.asterisksCount) ?? 10),\n \"USER\"\n ) : await o(\"*\".repeat(((_ = A.sensitiveInput) == null ? void 0 : _.asterisksCount) ?? 10), \"USER\");\n return;\n }\n }\n (oA = A.userBubble) != null && oA.simulateStream ? await n(z, \"USER\") : await o(z, \"USER\");\n }\n }, [y, r, A, o, n, b]), M = x(async (z, U = !0) => {\n var G, tA;\n if (z = z.trim(), z === \"\")\n return;\n U && await I(z), v.current && clearTimeout(v.current), D.current && (h(\"\"), B(0));\n const K = r();\n if (!K)\n return;\n let R = y.current[K];\n const L = await u(R);\n L && ((G = A.chatInput) != null && G.blockSpam && w(!0), p.current = P.current, S(!1), setTimeout(() => {\n d(!0);\n }, 400), f(!1), setTimeout(async () => {\n var rA;\n const _ = {\n prevPath: c(),\n currPath: r(),\n goToPath: i,\n setTextAreaValue: h,\n userInput: C.current,\n injectMessage: o,\n simulateStreamMessage: n,\n streamMessage: s,\n removeMessage: t,\n endStreamMessage: e,\n toggleChatWindow: m,\n showToast: E,\n dismissToast: T\n }, oA = a.current.length;\n await ge(L, _), a.current.length === oA && (\"chatDisabled\" in R ? w(!!R.chatDisabled) : w(!!((rA = A.chatInput) != null && rA.disabled)), we(R, _, f), g(typeof R.file == \"function\"), S(p.current), d(!1));\n }, (tA = A.chatInput) == null ? void 0 : tA.botDelay));\n }, [\n v,\n (j = A.chatInput) == null ? void 0 : j.blockSpam,\n (N = A.chatInput) == null ? void 0 : N.botDelay,\n (W = A.chatInput) == null ? void 0 : W.disabled,\n p,\n P,\n S,\n I,\n c,\n r,\n i,\n o,\n n,\n s,\n t,\n e,\n m,\n E,\n T,\n y\n ]);\n return { handleSubmitText: x(async (z, U = !0) => {\n var R, L;\n z = z ?? ((R = D.current) == null ? void 0 : R.value), !((L = A.event) != null && L.rcbUserSubmitText && (await Q(H.USER_SUBMIT_TEXT, { inputText: z, sendInChat: U })).defaultPrevented || !r()) && M(z, U);\n }, [Q, r, M, D, (J = A.event) == null ? void 0 : J.rcbUserSubmitText]) };\n}, MA = () => {\n var o;\n const { settings: A } = O();\n return dA(() => {\n var a;\n if (typeof window > \"u\" || !window.navigator)\n return !1;\n if (!((a = A.device) != null && a.applyMobileOptimizations))\n return !0;\n const t = navigator.userAgent, n = !/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(t), s = window.innerWidth >= 768;\n return n && s;\n }, [(o = A.device) == null ? void 0 : o.applyMobileOptimizations]);\n}, zt = ({ buttons: A }) => {\n var I, M, k, j, N, W, J, z, U, K, R;\n const e = MA(), { settings: o } = O(), { styles: t } = Y(), {\n textAreaDisabled: n,\n textAreaSensitiveMode: s,\n inputLength: a,\n hasFlowStarted: r,\n setHasFlowStarted: c,\n setInputLength: i\n } = eA(), { inputRef: u } = $(), [f, w] = F(!1), [d, g] = F(!1), { handleSubmitText: B } = yA(), { setTextAreaValue: P } = DA(), b = {\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle\n }, y = {\n outline: n ? \"\" : \"none\",\n boxShadow: n ? \"\" : `0 0 5px ${(I = o.general) == null ? void 0 : I.primaryColor}`,\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle,\n // by default inherit the base style for input area\n ...t.chatInputAreaFocusedStyle\n }, D = {\n cursor: `url(\"${(M = o.general) == null ? void 0 : M.actionDisabledIcon}\"), auto`,\n caretColor: \"transparent\",\n boxSizing: e ? \"content-box\" : \"border-box\",\n ...t.chatInputAreaStyle,\n // by default inherit the base style for input area\n ...t.chatInputAreaDisabledStyle\n }, p = {\n color: \"#989898\",\n ...t.characterLimitStyle\n }, C = {\n color: \"#ff0000\",\n ...t.characterLimitReachedStyle\n }, v = n ? (k = o.chatInput) == null ? void 0 : k.disabledPlaceholderText : (j = o.chatInput) == null ? void 0 : j.enabledPlaceholderText, E = () => {\n n || w(!0);\n }, T = () => {\n w(!1);\n }, Q = () => {\n g(!0);\n }, S = () => {\n g(!1);\n }, h = async (L) => {\n var G;\n if (!d && L.key === \"Enter\") {\n if (L.shiftKey) {\n (G = o.chatInput) != null && G.allowNewline || L.preventDefault();\n return;\n }\n L.preventDefault(), await B();\n }\n }, m = (L) => {\n u.current && (P(L.target.value), i(u.current.value.length));\n };\n return /* @__PURE__ */ X(\n \"div\",\n {\n \"aria-label\": ((N = o.ariaLabel) == null ? void 0 : N.inputTextArea) ?? \"input text area\",\n role: \"textbox\",\n onMouseDown: (L) => {\n var G;\n L.stopPropagation(), !r && ((G = o.general) == null ? void 0 : G.flowStartTrigger) === \"ON_CHATBOT_INTERACT\" && c(!0);\n },\n style: { ...t.chatInputContainerStyle },\n className: \"rcb-chat-input\",\n children: [\n s && ((W = o.sensitiveInput) != null && W.maskInTextArea) ? /* @__PURE__ */ l(\n \"input\",\n {\n ref: u,\n type: \"password\",\n className: \"rcb-chat-input-textarea\",\n style: n ? D : f ? y : b,\n placeholder: v,\n onChange: m,\n onKeyDown: h,\n onFocus: E,\n onBlur: T,\n onCompositionStart: Q,\n onCompositionEnd: S\n }\n ) : /* @__PURE__ */ l(\n \"textarea\",\n {\n ref: u,\n style: n ? D : f ? y : b,\n rows: 1,\n className: \"rcb-chat-input-textarea\",\n placeholder: v,\n onChange: m,\n onKeyDown: h,\n onFocus: E,\n onBlur: T,\n onCompositionStart: Q,\n onCompositionEnd: S\n }\n ),\n /* @__PURE__ */ X(nA, { children: [\n A == null ? void 0 : A.map(\n (L, G) => /* @__PURE__ */ l(UA, { children: L }, G)\n ),\n ((J = o.chatInput) == null ? void 0 : J.showCharacterCount) && ((z = o.chatInput) == null ? void 0 : z.characterLimit) != null && ((U = o.chatInput) == null ? void 0 : U.characterLimit) > 0 && /* @__PURE__ */ X(\n \"div\",\n {\n className: \"rcb-chat-input-char-counter\",\n style: a >= ((K = o.chatInput) == null ? void 0 : K.characterLimit) ? C : p,\n children: [\n a,\n \"/\",\n (R = o.chatInput) == null ? void 0 : R.characterLimit\n ]\n }\n )\n ] })\n ]\n }\n );\n}, Gt = ({ buttons: A }) => {\n var t;\n const { settings: e } = O(), { styles: o } = Y();\n return /* @__PURE__ */ X(\n \"div\",\n {\n \"data-testid\": \"chatbot-footer-container\",\n style: { ...o.footerStyle },\n className: \"rcb-chat-footer-container\",\n children: [\n /* @__PURE__ */ l(\"div\", { className: \"rcb-chat-footer\", children: A == null ? void 0 : A.map(\n (n, s) => /* @__PURE__ */ l(UA, { children: n }, s)\n ) }),\n /* @__PURE__ */ l(\"span\", { children: (t = e.footer) == null ? void 0 : t.text })\n ]\n }\n );\n}, Yt = () => {\n var c, i, u, f, w, d, g;\n const { settings: A } = O(), { styles: e } = Y(), { unreadCount: o } = eA(), { isChatWindowOpen: t, toggleChatWindow: n } = sA(), s = {\n backgroundImage: `linear-gradient(to right, ${(c = A.general) == null ? void 0 : c.secondaryColor},\n\t\t\t${(i = A.general) == null ? void 0 : i.primaryColor})`,\n ...e.chatButtonStyle\n }, a = {\n backgroundImage: `url(${(u = A.chatButton) == null ? void 0 : u.icon})`,\n fill: \"#fff\",\n width: 75,\n height: 75,\n ...e.chatIconStyle\n }, r = () => {\n var P;\n const B = (P = A.chatButton) == null ? void 0 : P.icon;\n return !B || typeof B == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-toggle-icon\",\n style: a\n }\n ) : B && /* @__PURE__ */ l(\"span\", { className: \"rcb-toggle-icon\", children: /* @__PURE__ */ l(B, { style: a }) });\n };\n return /* @__PURE__ */ l(nA, { children: !((f = A.general) != null && f.embedded) && /* @__PURE__ */ X(\n \"div\",\n {\n \"aria-label\": ((w = A.ariaLabel) == null ? void 0 : w.chatButton) ?? \"open chat\",\n role: \"button\",\n style: s,\n className: `rcb-toggle-button ${t ? \"rcb-button-hide\" : \"rcb-button-show\"}`,\n onClick: () => n(!0),\n children: [\n r(),\n !((d = A.notification) != null && d.disabled) && ((g = A.notification) == null ? void 0 : g.showCount) && /* @__PURE__ */ l(\"span\", { style: { ...e.notificationBadgeStyle }, className: \"rcb-badge\", children: o })\n ]\n }\n ) });\n}, Xt = () => {\n var g, B, P, b;\n const A = MA(), { settings: e } = O(), { styles: o } = Y(), { chatBodyRef: t } = $(), { isChatWindowOpen: n, toggleChatWindow: s } = sA(), [a, r] = F(!1), [c, i] = F(!1), [u, f] = F(0);\n V(() => {\n var D, p, C;\n const y = (D = e.tooltip) == null ? void 0 : D.mode;\n if (y === \"ALWAYS\")\n if (A) {\n let v;\n n ? v = (((p = t.current) == null ? void 0 : p.offsetWidth) ?? 375) - (typeof ((C = o.chatButtonStyle) == null ? void 0 : C.width) == \"number\" ? o.chatButtonStyle.width : 75) : v = 0, f(v), r(!0);\n } else\n r(!n);\n else y === \"NEVER\" ? r(!1) : y === \"START\" ? c ? r(!1) : (i(!0), r(!0)) : y === \"CLOSE\" && r(!n);\n }, [n]);\n const w = {\n transform: `translateX(-${u}px)`,\n right: (((g = o.chatButtonStyle) == null ? void 0 : g.width) ?? 75) + 40,\n bottom: 30,\n backgroundColor: (B = e.general) == null ? void 0 : B.secondaryColor,\n color: \"#fff\",\n ...o.tooltipStyle\n }, d = {\n borderColor: `transparent transparent transparent ${w.backgroundColor}`\n };\n return /* @__PURE__ */ l(nA, { children: !((P = e.general) != null && P.embedded) && /* @__PURE__ */ X(\n \"div\",\n {\n \"data-testid\": \"chat-tooltip\",\n style: w,\n className: `rcb-chat-tooltip ${a ? \"rcb-tooltip-show\" : \"rcb-tooltip-hide\"}`,\n onClick: () => s(!0),\n children: [\n /* @__PURE__ */ l(\"span\", { children: (b = e.tooltip) == null ? void 0 : b.text }),\n /* @__PURE__ */ l(\"span\", { className: \"rcb-chat-tooltip-tail\", style: d })\n ]\n }\n ) });\n}, Wt = ({\n id: A,\n content: e,\n timeout: o\n}) => {\n var w, d;\n const { settings: t } = O(), { styles: n } = Y(), [s] = F({\n toastPromptStyle: { ...n.toastPromptStyle },\n toastPromptHoveredStyle: { ...n.toastPromptHoveredStyle }\n }), { dismissToast: a } = EA(), [r, c] = F(!1), i = {\n color: (w = t.general) == null ? void 0 : w.primaryColor,\n borderColor: (d = t.general) == null ? void 0 : d.primaryColor,\n ...s.toastPromptHoveredStyle\n };\n return V(() => {\n if (o) {\n const g = setTimeout(() => {\n a(A);\n }, o);\n return () => clearTimeout(g);\n }\n }, [A, a, o]), typeof e == \"string\" ? /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: () => {\n c(!0);\n },\n onMouseLeave: () => {\n c(!1);\n },\n style: r ? i : s.toastPromptStyle,\n onMouseDown: async (g) => {\n var B;\n (B = t.toast) != null && B.dismissOnClick && (g.preventDefault(), await a(A));\n },\n className: \"rcb-toast-prompt\",\n children: e\n }\n ) : /* @__PURE__ */ l(nA, { children: e });\n}, Kt = () => {\n var t, n, s, a, r, c, i, u, f, w, d, g;\n const { styles: A } = Y(), { toasts: e } = Ee(), o = {\n bottom: `calc(${typeof ((t = A.footerStyle) == null ? void 0 : t.height) == \"number\" ? `${(n = A.footerStyle) == null ? void 0 : n.height}px` : ((s = A.footerStyle) == null ? void 0 : s.height) ?? \"50px\"} + ${typeof ((a = A.chatInputContainerStyle) == null ? void 0 : a.height) == \"number\" ? `${(r = A.chatInputContainerStyle) == null ? void 0 : r.height}px` : ((c = A.chatInputContainerStyle) == null ? void 0 : c.height) ?? \"70px\"} + 20px)`,\n width: 300,\n minWidth: `calc(${typeof ((i = A.chatWindowStyle) == null ? void 0 : i.width) == \"number\" ? `${(u = A.chatWindowStyle) == null ? void 0 : u.width}px` : ((f = A.chatWindowStyle) == null ? void 0 : f.width) ?? \"375px\"} / 2)`,\n maxWidth: `calc(${typeof ((w = A.chatWindowStyle) == null ? void 0 : w.width) == \"number\" ? `${(d = A.chatWindowStyle) == null ? void 0 : d.width}px` : ((g = A.chatWindowStyle) == null ? void 0 : g.width) ?? \"375px\"} - 50px)`,\n ...A.toastPromptContainerStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-toast-prompt-container\", style: o, children: e.map((B) => /* @__PURE__ */ l(\n Wt,\n {\n id: B.id,\n content: B.content,\n timeout: B.timeout\n },\n B.id\n )) });\n}, ye = ({\n file: A,\n fileType: e,\n fileUrl: o\n}) => {\n var a, r, c;\n const { settings: t } = O(), { styles: n } = Y(), s = {\n backgroundColor: (a = t.general) == null ? void 0 : a.primaryColor,\n maxWidth: (r = t.userBubble) != null && r.showAvatar ? \"65%\" : \"70%\",\n ...n.mediaDisplayContainerStyle\n };\n return /* @__PURE__ */ l(nA, { children: o ? /* @__PURE__ */ X(nA, { children: [\n e === \"image\" && o && /* @__PURE__ */ l(\n \"div\",\n {\n style: s,\n className: \"rcb-media-display-image-container rcb-media-entry\",\n \"data-testid\": \"media-display-image-container\",\n children: /* @__PURE__ */ l(\"img\", { src: o, alt: \"Image Display\", className: \"rcb-media-display-image\" })\n }\n ),\n e === \"video\" && o && /* @__PURE__ */ l(\n \"div\",\n {\n style: s,\n className: \"rcb-media-display-video-container rcb-media-entry\",\n \"data-testid\": \"media-display-video-container\",\n children: /* @__PURE__ */ X(\"video\", { controls: !0, className: \"rcb-media-display-video\", children: [\n /* @__PURE__ */ l(\"source\", { src: o, type: A.type }),\n \"Your browser does not support the video tag.\"\n ] })\n }\n ),\n e === \"audio\" && o && /* @__PURE__ */ X(\n \"audio\",\n {\n \"data-testid\": \"media-display-audio-container\",\n style: {\n maxWidth: (c = t.userBubble) != null && c.showAvatar ? \"65%\" : \"70%\"\n },\n controls: !0,\n className: \"rcb-media-display-audio rcb-media-entry\",\n children: [\n /* @__PURE__ */ l(\"source\", { src: o, type: A.type }),\n \"Your browser does not support the audio tag.\"\n ]\n }\n )\n ] }) : /* @__PURE__ */ l(nA, {}) });\n}, Ce = async (A) => {\n if (!A)\n return { fileType: null, fileUrl: null };\n const e = A.type.split(\"/\")[0];\n if (![\"image\", \"video\", \"audio\"].includes(e))\n return { fileType: null, fileUrl: null };\n try {\n const o = await new Promise((t, n) => {\n const s = new FileReader();\n s.onload = () => t(s.result), s.onerror = () => n(new Error(\"File reading failed\")), s.readAsDataURL(A);\n });\n return { fileType: e, fileUrl: o };\n } catch (o) {\n return console.error(o), { fileType: null, fileUrl: null };\n }\n}, qt = () => {\n var Q, S, h, m, I, M;\n const { settings: A } = O(), { styles: e } = Y(), {\n injectMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n removeMessage: s,\n endStreamMessage: a\n } = hA(), { getCurrPath: r, getPrevPath: c, goToPath: i, blockAllowsAttachment: u } = QA(), { flowRef: f, inputRef: w } = $(), d = f.current, { showToast: g, dismissToast: B } = EA(), { dispatchRcbEvent: P } = lA(), { toggleChatWindow: b } = sA(), { setTextAreaValue: y } = DA(), { handleSubmitText: D } = yA(), p = {\n cursor: `url(\"${(Q = A.general) == null ? void 0 : Q.actionDisabledIcon}\"), auto`,\n ...e.fileAttachmentButtonStyle,\n // by default inherit the base style\n ...e.fileAttachmentButtonDisabledStyle\n }, C = {\n backgroundImage: `url(${(S = A.fileAttachment) == null ? void 0 : S.icon})`,\n fill: \"#a6a6a6\",\n ...e.fileAttachmentIconStyle\n }, v = {\n backgroundImage: `url(${(h = A.fileAttachment) == null ? void 0 : h.icon})`,\n fill: \"#a6a6a6\",\n ...e.fileAttachmentIconStyle,\n // by default inherit the base style\n ...e.fileAttachmentIconDisabledStyle\n }, E = async (k) => {\n var U, K, R, L;\n const j = k.target.files;\n if (!j)\n return;\n const N = Array.from(j);\n if (k.target.value = \"\", (U = A.event) != null && U.rcbUserUploadFile && (await P(H.USER_UPLOAD_FILE, { files: N })).defaultPrevented)\n return;\n const W = r();\n if (!W)\n return;\n const J = d[W];\n if (!J)\n return;\n const z = J.file;\n if (z != null) {\n const G = [];\n for (let tA = 0; tA < N.length; tA++) {\n if (G.push(N[tA].name), !((K = A.fileAttachment) != null && K.showMediaDisplay))\n continue;\n const _ = await Ce(N[tA]);\n !_.fileType || !_.fileUrl || await o(/* @__PURE__ */ l(\n ye,\n {\n file: N[tA],\n fileType: _.fileType,\n fileUrl: _.fileUrl\n }\n ), \"USER\");\n }\n await D(\"📄 \" + G.join(\", \"), (R = A.fileAttachment) == null ? void 0 : R.sendFileName), await z({\n userInput: (L = w.current) == null ? void 0 : L.value,\n prevPath: c(),\n currPath: r(),\n goToPath: i,\n setTextAreaValue: y,\n injectMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n removeMessage: s,\n endStreamMessage: a,\n toggleChatWindow: b,\n showToast: g,\n dismissToast: B,\n files: N\n });\n }\n }, T = () => {\n var j, N;\n const k = u ? (j = A.fileAttachment) == null ? void 0 : j.icon : (N = A.fileAttachment) == null ? void 0 : N.iconDisabled;\n return !k || typeof k == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: u ? \"rcb-attach-icon-enabled\" : \"rcb-attach-icon-disabled\",\n style: u ? C : v\n }\n ) : k && /* @__PURE__ */ l(\"span\", { className: u ? \"rcb-attach-icon-enabled\" : \"rcb-attach-icon-disabled\", children: /* @__PURE__ */ l(\n k,\n {\n style: u ? C : v\n }\n ) });\n };\n return /* @__PURE__ */ X(\n \"label\",\n {\n \"aria-label\": ((m = A.ariaLabel) == null ? void 0 : m.fileAttachmentButton) ?? \"upload file\",\n role: \"button\",\n className: u ? \"rcb-attach-button-enabled\" : \"rcb-attach-button-disabled\",\n style: u ? { ...e.fileAttachmentButtonStyle } : p,\n children: [\n /* @__PURE__ */ l(\n \"input\",\n {\n className: \"rcb-attach-input\",\n role: \"file\",\n type: \"file\",\n onChange: E,\n multiple: (I = A.fileAttachment) == null ? void 0 : I.multiple,\n accept: (M = A.fileAttachment) == null ? void 0 : M.accept,\n disabled: !u\n }\n ),\n T()\n ]\n }\n );\n}, Jt = () => {\n var P, b, y, D, p, C;\n const { settings: A } = O(), { styles: e } = Y(), { syncedTextAreaDisabledRef: o } = eA(), { inputRef: t } = $(), { textAreaDisabled: n, setTextAreaValue: s } = DA(), a = AA(null), r = AA(null), [c, i] = F(!1), u = {\n cursor: `url(\"${(P = A.general) == null ? void 0 : P.actionDisabledIcon}\"), auto`,\n ...e.emojiButtonStyle,\n // by default inherit the base style\n ...e.emojiButtonDisabledStyle\n }, f = {\n backgroundImage: `url(${(b = A.emoji) == null ? void 0 : b.icon})`,\n fill: \"#a6a6a6\",\n ...e.emojiIconStyle\n }, w = {\n backgroundImage: `url(${(y = A.emoji) == null ? void 0 : y.icon})`,\n fill: \"#a6a6a6\",\n ...e.emojiIconStyle,\n // by default inherit the base style\n ...e.emojiIconDisabledStyle\n };\n V(() => {\n const v = (Q) => {\n const S = Q.composedPath();\n a.current && !S.includes(a.current) && r.current && !S.includes(r.current) && i(!1);\n }, E = () => {\n if (a.current && r.current) {\n const Q = r.current.getBoundingClientRect(), S = a.current.offsetHeight, h = Q.top - S - 8;\n a.current.style.left = `${Q.left}px`, a.current.style.top = `${h}px`;\n }\n }, T = () => {\n E();\n };\n return document.addEventListener(\"mousedown\", v), window.addEventListener(\"resize\", T), () => {\n document.removeEventListener(\"mousedown\", v), window.removeEventListener(\"resize\", T);\n };\n }, []);\n const d = (v, E) => {\n v.preventDefault(), t.current && (s(t.current.value + E), setTimeout(() => {\n const T = t.current;\n if (T) {\n T.focus();\n const Q = T.value.length;\n T.setSelectionRange(Q, Q);\n }\n }, 50)), i(!1);\n }, g = (v) => {\n v.preventDefault(), o.current ? i(!1) : i((E) => !E);\n }, B = () => {\n var E, T;\n const v = n ? (E = A.emoji) == null ? void 0 : E.iconDisabled : (T = A.emoji) == null ? void 0 : T.icon;\n return !v || typeof v == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: `${n ? \"rcb-emoji-icon-disabled\" : \"rcb-emoji-icon-enabled\"}`,\n style: n ? w : f\n }\n ) : v && /* @__PURE__ */ l(\"span\", { className: `${n ? \"rcb-emoji-icon-disabled\" : \"rcb-emoji-icon-enabled\"}`, children: /* @__PURE__ */ l(v, { style: n ? w : f }) });\n };\n return /* @__PURE__ */ X(nA, { children: [\n /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((D = A.ariaLabel) == null ? void 0 : D.emojiButton) ?? \"emoji picker\",\n role: \"button\",\n ref: r,\n className: `${n ? \"rcb-emoji-button-disabled\" : \"rcb-emoji-button-enabled\"}`,\n style: n ? u : { ...e.emojiButtonStyle },\n onMouseDown: g,\n children: B()\n }\n ),\n c && /* @__PURE__ */ l(\"div\", { className: \"rcb-emoji-button-popup\", ref: a, children: (C = (p = A.emoji) == null ? void 0 : p.list) == null ? void 0 : C.map((v, E) => /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-emoji\",\n onMouseDown: (T) => d(T, v),\n children: v\n },\n E\n )) })\n ] });\n}, Vt = () => {\n var r, c, i;\n const { settings: A } = O(), { styles: e } = Y(), { audioToggledOn: o, toggleAudio: t } = GA(), n = {\n backgroundImage: `url(${(r = A.audio) == null ? void 0 : r.icon})`,\n fill: \"#fcec3d\",\n ...e.audioIconStyle\n }, s = {\n backgroundImage: `url(${(c = A.audio) == null ? void 0 : c.iconDisabled})`,\n fill: \"#e8eaed\",\n ...e.audioIconStyle,\n // by default inherit the base style\n ...e.audioIconDisabledStyle\n }, a = () => {\n var f, w;\n const u = o ? (f = A.audio) == null ? void 0 : f.icon : (w = A.audio) == null ? void 0 : w.iconDisabled;\n return !u || typeof u == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-audio-icon\",\n \"data-testid\": \"rcb-audio-icon\",\n style: o ? n : s\n }\n ) : u && /* @__PURE__ */ l(\"span\", { className: \"rcb-audio-icon\", \"data-testid\": \"rcb-audio-icon\", children: /* @__PURE__ */ l(\n u,\n {\n style: o ? n : s,\n \"data-testid\": \"rcb-audio-icon-svg\"\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((i = A.ariaLabel) == null ? void 0 : i.audioButton) ?? \"toggle audio\",\n role: \"button\",\n onMouseDown: async (u) => {\n u.preventDefault(), await t();\n },\n style: o ? { ...e.audioButtonStyle } : { ...e.audioButtonStyle, ...e.audioButtonDisabledStyle },\n children: a()\n }\n );\n}, Zt = () => {\n var s, a;\n const { settings: A } = O(), { styles: e } = Y(), { toggleChatWindow: o } = sA(), t = {\n backgroundImage: `url(${(s = A.header) == null ? void 0 : s.closeChatIcon})`,\n fill: \"#e8eaed\",\n stroke: \"#e8eaed\",\n ...e.closeChatIconStyle\n }, n = () => {\n var c;\n const r = (c = A.header) == null ? void 0 : c.closeChatIcon;\n return !r || typeof r == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-close-chat-icon\",\n \"data-testid\": \"rcb-close-chat-icon\",\n style: t\n }\n ) : r && /* @__PURE__ */ l(\"span\", { className: \"rcb-close-chat-icon\", \"data-testid\": \"rcb-close-chat-icon\", children: /* @__PURE__ */ l(r, { style: t }) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((a = A.ariaLabel) == null ? void 0 : a.closeChatButton) ?? \"close chat\",\n role: \"button\",\n onMouseDown: (r) => {\n r.stopPropagation(), o(!1);\n },\n style: { ...e.closeChatButtonStyle },\n children: n()\n }\n );\n}, _t = () => {\n const { notificationsToggledOn: A, toggleNotifications: e, playNotificationSound: o } = zA();\n return {\n notificationsToggledOn: A,\n toggleNotifications: e,\n playNotificationSound: o\n };\n}, $t = () => {\n var r, c, i;\n const { settings: A } = O(), { styles: e } = Y(), { notificationsToggledOn: o, toggleNotifications: t } = _t(), n = {\n backgroundImage: `url(${(r = A.notification) == null ? void 0 : r.icon})`,\n fill: \"#fcec3d\",\n ...e.notificationIconStyle\n }, s = {\n backgroundImage: `url(${(c = A.notification) == null ? void 0 : c.iconDisabled})`,\n fill: \"#e8eaed\",\n ...e.notificationIconStyle,\n // by default inherit the base style\n ...e.notificationIconDisabledStyle\n }, a = () => {\n var f, w;\n const u = o ? (f = A.notification) == null ? void 0 : f.icon : (w = A.notification) == null ? void 0 : w.iconDisabled;\n return !u || typeof u == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-notification-icon\",\n \"data-testid\": \"rcb-notification-icon\",\n style: o ? n : s\n }\n ) : u && /* @__PURE__ */ l(\"span\", { className: \"rcb-notification-icon\", \"data-testid\": \"rcb-notification-icon\", children: /* @__PURE__ */ l(\n u,\n {\n style: o ? n : s,\n \"data-testid\": \"rcb-notification-icon-svg\"\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((i = A.ariaLabel) == null ? void 0 : i.notificationButton) ?? \"toggle notifications\",\n role: \"button\",\n onMouseDown: async (u) => {\n u.preventDefault(), await t();\n },\n style: o ? { ...e.notificationButtonStyle } : { ...e.notificationButtonStyle, ...e.notificationButtonDisabledStyle },\n children: a()\n }\n );\n}, Ao = () => {\n var y, D, p;\n const { settings: A } = O(), { styles: e } = Y(), { injectMessage: o } = hA(), { inputRef: t } = $(), { voiceToggledOn: n, toggleVoice: s } = TA(), { setInputLength: a, setTextAreaValue: r, textAreaDisabled: c } = DA(), { handleSubmitText: i } = yA(), u = AA([]), [f, w] = F(!1);\n V(() => {\n var C;\n (C = A.voice) != null && C.sendAsAudio ? (P(), u.current = []) : i();\n }, [f]), V(() => {\n n ? Nt(\n A,\n s,\n B,\n r,\n a,\n u,\n t\n ) : XA();\n }, [n]);\n const d = {\n backgroundImage: `url(${(y = A.voice) == null ? void 0 : y.icon})`,\n fill: \"#9aa0a6\",\n ...e.voiceIconStyle\n }, g = {\n backgroundImage: `url(${(D = A.voice) == null ? void 0 : D.iconDisabled})`,\n fill: \"#9aa0a6\",\n ...e.voiceIconStyle,\n // by default inherit the base style\n ...e.voiceIconDisabledStyle\n }, B = () => {\n w((C) => !C);\n }, P = async () => {\n const C = new Blob(u.current, { type: \"audio/wav\" }), v = new File([C], \"voice-input.wav\", { type: \"audio/wav\" }), E = await Ce(v);\n !E.fileType || !E.fileUrl || await o(/* @__PURE__ */ l(\n ye,\n {\n file: v,\n fileType: E.fileType,\n fileUrl: E.fileUrl\n }\n ), \"USER\");\n }, b = () => {\n var v, E;\n const C = n ? (v = A.voice) == null ? void 0 : v.icon : (E = A.voice) == null ? void 0 : E.iconDisabled;\n return !C || typeof C == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: `rcb-voice-icon${n && !c ? \"-on\" : \"\"}`,\n \"data-testid\": \"rcb-voice-icon\",\n style: n && !c ? d : g\n }\n ) : C && /* @__PURE__ */ l(\"span\", { className: `rcb-voice-icon ${n && !c ? \"on\" : \"\"}`, children: /* @__PURE__ */ l(C, { style: n && !c ? d : g }) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((p = A.ariaLabel) == null ? void 0 : p.voiceButton) ?? \"toggle voice\",\n role: \"button\",\n onMouseDown: async (C) => {\n C.preventDefault(), !c && await s();\n },\n style: n && !c ? { ...e.voiceButtonStyle } : { ...e.voiceButtonStyle, ...e.voiceButtonDisabledStyle },\n className: n && !c ? \"rcb-voice-button-enabled\" : \"rcb-voice-button-disabled\",\n children: b()\n }\n );\n}, eo = () => {\n var B, P, b, y, D, p, C, v;\n const { settings: A } = O(), { styles: e } = Y(), { textAreaDisabled: o } = eA(), [t, n] = F(!1), { handleSubmitText: s } = yA(), a = {\n backgroundColor: (B = A.general) == null ? void 0 : B.primaryColor,\n ...e.sendButtonStyle\n }, r = {\n cursor: `url(\"${(P = A.general) == null ? void 0 : P.actionDisabledIcon}\"), auto`,\n backgroundColor: (b = A.general) == null ? void 0 : b.primaryColor,\n ...e.sendButtonStyle,\n // by default inherit the base style\n ...e.sendButtonDisabledStyle\n }, c = {\n backgroundColor: (y = A.general) == null ? void 0 : y.secondaryColor,\n ...e.sendButtonStyle,\n // by default inherit the base style\n ...e.sendButtonHoveredStyle\n }, i = {\n backgroundImage: `url(${(D = A.chatInput) == null ? void 0 : D.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle\n }, u = {\n backgroundImage: `url(${(p = A.chatInput) == null ? void 0 : p.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle,\n // by default inherit the base style\n ...e.sendIconDisabledStyle\n }, f = {\n backgroundImage: `url(${(C = A.chatInput) == null ? void 0 : C.sendButtonIcon})`,\n fill: \"#fff\",\n ...e.sendIconStyle,\n // by default inherit the base style\n ...e.sendIconHoveredStyle\n }, w = () => {\n n(!0);\n }, d = () => {\n n(!1);\n }, g = () => {\n var T;\n const E = (T = A.chatInput) == null ? void 0 : T.sendButtonIcon;\n return !E || typeof E == \"string\" ? /* @__PURE__ */ l(\n \"span\",\n {\n className: \"rcb-send-icon\",\n \"data-testid\": \"rcb-send-icon\",\n style: o ? u : t ? f : i\n }\n ) : E && /* @__PURE__ */ l(\"span\", { className: \"rcb-send-icon\", \"data-testid\": \"rcb-send-icon\", children: /* @__PURE__ */ l(\n E,\n {\n style: o ? u : t ? f : i\n }\n ) });\n };\n return /* @__PURE__ */ l(\n \"div\",\n {\n \"aria-label\": ((v = A.ariaLabel) == null ? void 0 : v.sendButton) ?? \"send message\",\n role: \"button\",\n onMouseEnter: w,\n onMouseLeave: d,\n onMouseDown: async (E) => {\n E == null || E.preventDefault(), !o && await s();\n },\n style: o ? r : t ? c : a,\n className: \"rcb-send-button\",\n children: g()\n }\n );\n}, to = (A) => Object.values(Z).includes(A), oo = (A, e) => {\n var c, i, u, f, w, d, g, B, P;\n const o = {\n [Z.AUDIO_BUTTON]: (c = A.audio) == null ? void 0 : c.disabled,\n [Z.CLOSE_CHAT_BUTTON]: (i = A.general) == null ? void 0 : i.embedded,\n [Z.EMOJI_PICKER_BUTTON]: (u = A.emoji) == null ? void 0 : u.disabled,\n [Z.FILE_ATTACHMENT_BUTTON]: (f = A.fileAttachment) == null ? void 0 : f.disabled,\n [Z.NOTIFICATION_BUTTON]: (w = A.notification) == null ? void 0 : w.disabled,\n [Z.SEND_MESSAGE_BUTTON]: !1,\n [Z.VOICE_MESSAGE_BUTTON]: (d = A.voice) == null ? void 0 : d.disabled\n }, t = {}, n = (b) => b ? b.map((y) => {\n if (typeof y == \"string\") {\n if (to(y) && !o[y]) {\n if (t[y])\n return t[y];\n const D = e[y];\n if (typeof D == \"function\") {\n const p = D();\n return t[y] = p, p;\n }\n return null;\n }\n return null;\n }\n return y;\n }).filter((y) => y !== null) : [], s = n((g = A.header) == null ? void 0 : g.buttons), a = n((B = A.chatInput) == null ? void 0 : B.buttons), r = n((P = A.footer) == null ? void 0 : P.buttons);\n return { header: s, chatInput: a, footer: r };\n}, no = () => /* @__PURE__ */ l(Vt, {}), so = () => /* @__PURE__ */ l($t, {}), ro = () => /* @__PURE__ */ l(Zt, {}), ao = () => /* @__PURE__ */ l(Ao, {}), co = () => /* @__PURE__ */ l(eo, {}), io = () => /* @__PURE__ */ l(qt, {}), lo = () => /* @__PURE__ */ l(Jt, {}), uo = () => {\n const { settings: A } = O(), e = dA(() => ({\n [Z.CLOSE_CHAT_BUTTON]: () => ro(),\n [Z.AUDIO_BUTTON]: () => no(),\n [Z.NOTIFICATION_BUTTON]: () => so(),\n [Z.EMOJI_PICKER_BUTTON]: () => lo(),\n [Z.FILE_ATTACHMENT_BUTTON]: () => io(),\n [Z.SEND_MESSAGE_BUTTON]: () => co(),\n [Z.VOICE_MESSAGE_BUTTON]: () => ao()\n }), []), { header: o, chatInput: t, footer: n } = dA(() => oo(A, e), [A, e]), s = dA(() => o, [o]), a = dA(() => t, [t]), r = dA(() => n, [n]);\n return { headerButtons: s, chatInputButtons: a, footerButtons: r };\n}, WA = () => {\n const { settings: A } = O(), { styles: e } = Y(), { setSyncedMessages: o, syncedMessagesRef: t } = FA(), {\n isLoadingChatHistory: n,\n setIsLoadingChatHistory: s,\n hasChatHistoryLoaded: a,\n setHasChatHistoryLoaded: r\n } = eA(), { chatBodyRef: c } = $(), { dispatchRcbEvent: i } = lA(), u = x(async () => {\n var d, g;\n const f = jA();\n if (!f || (d = A.event) != null && d.rcbLoadChatHistory && (await i(H.LOAD_CHAT_HISTORY, {})).defaultPrevented)\n return;\n s(!0);\n const w = ((g = c.current) == null ? void 0 : g.scrollHeight) ?? 0;\n It(\n A,\n e,\n f,\n o,\n t,\n c,\n w,\n s,\n r\n );\n }, [\n A,\n e,\n i,\n t,\n c,\n s,\n r\n ]);\n return { isLoadingChatHistory: n, setIsLoadingChatHistory: s, hasChatHistoryLoaded: a, showChatHistory: u };\n}, fo = () => {\n var c, i, u;\n const { settings: A } = O(), { styles: e } = Y(), { showChatHistory: o } = WA(), [t, n] = F(!1), s = {\n color: (c = A.general) == null ? void 0 : c.primaryColor,\n borderColor: (i = A.general) == null ? void 0 : i.primaryColor,\n ...e.chatHistoryButtonStyle,\n // by default inherit the base style\n ...e.chatHistoryButtonHoveredStyle\n };\n return /* @__PURE__ */ l(\"div\", { className: \"rcb-view-history-container\", children: /* @__PURE__ */ l(\n \"div\",\n {\n onMouseEnter: () => {\n n(!0);\n },\n onMouseLeave: () => {\n n(!1);\n },\n style: t ? s : { ...e.chatHistoryButtonStyle },\n onMouseDown: (f) => {\n f.preventDefault(), o();\n },\n className: \"rcb-view-history-button\",\n role: \"button\",\n tabIndex: 0,\n children: /* @__PURE__ */ l(\"p\", { children: (u = A.chatHistory) == null ? void 0 : u.viewChatHistoryButtonText })\n }\n ) });\n}, me = () => {\n var a;\n const { settings: A } = O(), { hasInteractedPage: e, setHasInteractedPage: o, hasFlowStarted: t, setHasFlowStarted: n } = eA(), s = x(() => {\n var c;\n if (o(!0), !t && ((c = A.general) == null ? void 0 : c.flowStartTrigger) === \"ON_PAGE_INTERACT\" && n(!0), !window.SpeechSynthesisUtterance) {\n console.info(\"Speech Synthesis API is not supported in this environment.\");\n return;\n }\n const r = new window.SpeechSynthesisUtterance();\n r.text = \"\", r.onend = () => {\n window.removeEventListener(\"click\", s), window.removeEventListener(\"keydown\", s), window.removeEventListener(\"touchstart\", s);\n }, window.speechSynthesis.speak(r);\n }, [t, (a = A.general) == null ? void 0 : a.flowStartTrigger]);\n return {\n hasInteractedPage: e,\n handleFirstInteraction: s\n };\n}, wo = () => {\n var E, T, Q, S;\n const A = MA(), { settings: e } = O(), {\n replaceMessages: o\n } = hA(), {\n isBotTyping: t,\n isChatWindowOpen: n,\n setUnreadCount: s,\n setSyncedIsChatWindowOpen: a,\n setSyncedTextAreaDisabled: r,\n setSyncedAudioToggledOn: c,\n setSyncedVoiceToggledOn: i,\n setSyncedIsScrolling: u,\n syncedIsScrollingRef: f,\n syncedIsChatWindowOpenRef: w\n } = eA(), { chatBodyRef: d } = $(), { viewportHeight: g, setViewportHeight: B, setViewportWidth: P, scrollToBottom: b } = sA(), { setUpNotifications: y } = zA(), { handleFirstInteraction: D } = me(), { showChatHistory: p } = WA(), C = AA(0), v = AA(!1);\n V(() => (window.addEventListener(\"click\", D), window.addEventListener(\"keydown\", D), window.addEventListener(\"touchstart\", D), () => {\n window.removeEventListener(\"click\", D), window.removeEventListener(\"keydown\", D), window.removeEventListener(\"touchstart\", D);\n }), []), V(() => {\n const h = d.current;\n if (!h)\n return;\n const m = () => {\n v.current || (v.current = !0, requestAnimationFrame(() => {\n var N, W;\n if (!h)\n return;\n const { scrollTop: I, clientHeight: M, scrollHeight: k } = h, j = I + M < k - (((N = e.chatWindow) == null ? void 0 : N.messagePromptOffset) ?? 30);\n u(j), f.current = j, j || (I + M >= k - 1 && (h.scrollTop = k - M - 1), (w.current || (W = e.general) != null && W.embedded) && s(0)), v.current = !1;\n }));\n };\n return h.addEventListener(\"wheel\", m, { passive: !0 }), h.addEventListener(\"touchmove\", m, { passive: !0 }), () => {\n h.removeEventListener(\"wheel\", m), h.removeEventListener(\"touchmove\", m);\n };\n }, []), V(() => {\n var h, m, I;\n r((h = e.chatInput) == null ? void 0 : h.disabled), a((m = e.chatWindow) == null ? void 0 : m.defaultOpen), c((I = e.audio) == null ? void 0 : I.defaultToggledOn), setTimeout(() => {\n var M;\n i((M = e.voice) == null ? void 0 : M.defaultToggledOn);\n }, 1);\n }, []), V(() => {\n var h;\n (h = e.notification) != null && h.disabled || y();\n }, [(E = e.notification) == null ? void 0 : E.disabled]), V(() => {\n !f.current && (d != null && d.current) && b();\n }, [t]), V(() => {\n var h, m;\n if ((h = e.chatHistory) != null && h.disabled)\n pt();\n else if (RA(e), jA().length > 0) {\n const M = gA(/* @__PURE__ */ l(fo, {}), \"SYSTEM\");\n o([M]), (m = e.chatHistory) != null && m.autoLoad && p();\n }\n }, [(T = e.chatHistory) == null ? void 0 : T.storageKey, (Q = e.chatHistory) == null ? void 0 : Q.maxEntries, (S = e.chatHistory) == null ? void 0 : S.disabled]), V(() => {\n var h;\n A || (h = e.general) != null && h.embedded || !navigator.virtualKeyboard || (navigator.virtualKeyboard.overlaysContent = !0, navigator.virtualKeyboard.addEventListener(\"geometrychange\", (m) => {\n if (!m.target)\n return;\n const { x: I, y: M, width: k, height: j } = m.target.boundingRect;\n I == 0 && M == 0 && k == 0 && j == 0 ? (setTimeout(() => {\n var N;\n B((N = window.visualViewport) == null ? void 0 : N.height);\n }, 101), setTimeout(() => {\n var N, W;\n g != ((N = window.visualViewport) == null ? void 0 : N.height) && B((W = window.visualViewport) == null ? void 0 : W.height);\n }, 1001)) : setTimeout(() => {\n var N;\n B(((N = window.visualViewport) == null ? void 0 : N.height) - j);\n }, 101);\n }));\n }, [A]), V(() => {\n var k, j, N, W;\n if (A)\n return;\n n && (B((k = window.visualViewport) == null ? void 0 : k.height), P((j = window.visualViewport) == null ? void 0 : j.width));\n const h = () => window.scrollTo({ top: 0, left: 0, behavior: \"auto\" }), m = () => C.current = window.scrollY, I = () => {\n var J, z;\n B((J = window.visualViewport) == null ? void 0 : J.height), P((z = window.visualViewport) == null ? void 0 : z.width);\n }, M = () => {\n var J;\n window.removeEventListener(\"scroll\", h), window.removeEventListener(\"scroll\", m), (J = window.visualViewport) == null || J.removeEventListener(\"resize\", I);\n };\n return n ? (M(), document.body.style.position = \"fixed\", window.addEventListener(\"scroll\", h), (N = window.visualViewport) == null || N.addEventListener(\"resize\", I)) : (document.body.style.position = \"static\", M(), window.scrollTo({ top: C.current, left: 0, behavior: \"auto\" }), window.addEventListener(\"scroll\", m), (W = window.visualViewport) == null || W.removeEventListener(\"resize\", I)), M;\n }, [n, A]);\n}, KA = {\n DEFAULT_URL: \"https://cdn.jsdelivr.net/gh/react-chatbotify/community-themes/themes\",\n DEFAULT_EXPIRATION: \"2592000\",\n CACHE_KEY_PREFIX: \"RCB_THEME_CACHE_DATA\"\n}, go = KA.DEFAULT_URL, Bo = KA.DEFAULT_EXPIRATION, Qe = KA.CACHE_KEY_PREFIX, vo = (A, e, o) => {\n const t = localStorage.getItem(`${Qe}_${A}_${e}`);\n if (!t)\n return null;\n try {\n const n = JSON.parse(t), s = (/* @__PURE__ */ new Date()).getTime(), a = Math.floor(s / 1e3);\n return n.cacheDate + o >= a ? n : null;\n } catch (n) {\n return console.error(`Unable to fetch cache for ${A}`, n), null;\n }\n}, Po = (A, e, o, t, n) => {\n const s = (/* @__PURE__ */ new Date()).getTime(), a = Math.floor(s / 1e3), r = {\n settings: o,\n inlineStyles: t,\n cssStylesText: n,\n cacheDate: a\n };\n localStorage.setItem(`${Qe}_${A}_${e}`, JSON.stringify(r));\n}, ho = async (A, e) => {\n const o = `${e}/${A}/meta.json`;\n try {\n const t = await fetch(o);\n return t.ok ? (await t.json()).version : (console.error(`Failed to fetch meta.json from ${o}`), null);\n } catch (t) {\n return console.error(`Failed to fetch meta.json from ${o}`, t), null;\n }\n}, oe = async (A, e) => {\n const { id: o, version: t, baseUrl: n = go, cacheDuration: s = Bo } = e, a = t || await ho(o, n);\n if (!a)\n return console.error(`Unable to find version for theme: ${o}`), { settings: {}, inlineStyles: {}, cssStylesText: \"\" };\n const r = vo(o, a, s);\n if (r) {\n const y = ne(A, r.cssStylesText);\n return { settings: r.settings, inlineStyles: r.inlineStyles, cssStylesText: y };\n }\n const c = `${n}/${o}/${a}/styles.css`, i = `${n}/${o}/${a}/settings.json`, u = `${n}/${o}/${a}/styles.json`;\n let f = \"\";\n const w = await fetch(c);\n w.ok ? f = await w.text() : console.info(`Could not fetch styles.css from ${c}`);\n const d = await fetch(i);\n let g = {};\n d.ok ? g = await d.json() : console.info(`Could not fetch settings.json from ${i}`);\n const B = await fetch(u);\n let P = {};\n B.ok ? P = await B.json() : console.info(`Could not fetch styles.json from ${u}`), Po(o, a, g, P, f);\n const b = ne(A, f);\n return { settings: g, inlineStyles: P, cssStylesText: b };\n}, ne = (A, e) => e.split(new RegExp(\"(?<=})\")).map((t) => {\n const n = t.trim();\n return n.startsWith(\"@import\") || n.startsWith(\"@keyframes\") || n.startsWith(\"@media\") ? n : n ? `#${A} ${n}` : \"\";\n}).join(`\n`), Do = () => kA(re), Eo = () => kA(ce), yo = async (A, e, o, t) => {\n var r, c;\n let n = Do(), s = Eo(), a = \"\";\n if (t != null)\n if (Array.isArray(t))\n for (const i of t) {\n const u = await oe(A, i);\n n = fA(u.settings, n), s = fA(u.inlineStyles, s), a += u.cssStylesText;\n }\n else {\n const i = await oe(A, t);\n n = fA(i.settings, n), s = fA(i.inlineStyles, s), a += i.cssStylesText;\n }\n return e != null && (n = fA(e, n)), o != null && (s = fA(o, s)), ((r = n.chatInput) == null ? void 0 : r.botDelay) != null && ((c = n.chatInput) == null ? void 0 : c.botDelay) < 500 && (n.chatInput.botDelay = 500), { settings: n, inlineStyles: s, cssStylesText: a };\n}, fA = (A, e) => {\n const o = [{ source: A, target: e }];\n for (; o.length; ) {\n const t = o.pop();\n if (t == null)\n continue;\n const { source: n, target: s } = t;\n for (const a of Object.keys(n)) {\n const r = a;\n if (se(n[r]))\n s[r] = n[r];\n else if (typeof n[r] == \"object\" && n[r] !== null && !Array.isArray(n[r]))\n (typeof s[r] != \"object\" || s[r] === null) && (s[r] = {}), o.push({ source: n[r], target: s[r] });\n else\n try {\n s[r] = n[r];\n } catch {\n }\n }\n }\n return e;\n}, kA = (A) => {\n if (A === null || typeof A != \"object\")\n return A;\n const e = Array.isArray(A) ? [] : {}, o = [{ source: A, target: e }], t = /* @__PURE__ */ new WeakMap();\n for (t.set(A, e); o.length; ) {\n const n = o.pop();\n if (n == null)\n continue;\n const { source: s, target: a } = n;\n for (const r in s)\n if (Object.prototype.hasOwnProperty.call(s, r)) {\n const c = s[r];\n if (c && typeof c == \"object\")\n if (t.has(c))\n a[r] = t.get(c);\n else {\n const i = Array.isArray(c) ? [] : {};\n t.set(c, i), a[r] = i, o.push({ source: c, target: i });\n }\n else\n a[r] = c;\n }\n }\n return e;\n}, be = () => {\n const { settings: A, setSettings: e } = O(), o = x((n) => {\n !n || Object.keys(n).length === 0 || e(kA(fA(n, A)));\n }, [A]), t = x((n) => {\n e(n);\n }, []);\n return {\n settings: A,\n replaceSettings: t,\n updateSettings: o\n };\n}, pe = () => {\n const { styles: A, setStyles: e } = Y(), o = x((n) => {\n !n || Object.keys(n).length === 0 || e(kA(fA(n, A)));\n }, [A]), t = x((n) => {\n e(n);\n }, []);\n return {\n styles: A,\n replaceStyles: t,\n updateStyles: o\n };\n}, Co = (A) => {\n const { updateSettings: e } = be(), { updateStyles: o } = pe(), t = A == null ? void 0 : A.map((n) => n());\n V(() => {\n let n = {}, s = {};\n t == null || t.forEach((a) => {\n a != null && a.settings && Object.keys(a == null ? void 0 : a.settings).length !== 0 && (n = fA(a.settings, n)), a != null && a.styles && Object.keys(a == null ? void 0 : a.styles).length !== 0 && (s = fA(a.styles, s));\n }), e(n), o(s);\n }, []);\n}, mo = ({\n plugins: A\n}) => {\n var b, y, D, p, C;\n const e = MA(), { settings: o } = O(), { styles: t } = Y(), { hasFlowStarted: n, setHasFlowStarted: s } = eA(), { inputRef: a } = $(), {\n viewportHeight: r,\n viewportWidth: c,\n isChatWindowOpen: i\n } = sA(), { goToPath: u } = QA(), { headerButtons: f, chatInputButtons: w, footerButtons: d } = uo();\n wo(), Co(A), V(() => {\n var v;\n (n || ((v = o.general) == null ? void 0 : v.flowStartTrigger) === \"ON_LOAD\") && u(\"start\");\n }, [n, (b = o.general) == null ? void 0 : b.flowStartTrigger]);\n const g = dA(() => {\n var E;\n const v = \"rcb-chatbot-global \";\n return (E = o.general) != null && E.embedded ? v + \"rcb-window-embedded\" : i ? v + \"rcb-window-open\" : v + \"rcb-window-close\";\n }, [o, i]), B = () => {\n var v, E;\n return !e && !((v = o.general) != null && v.embedded) ? {\n ...t.chatWindowStyle,\n borderRadius: \"0px\",\n left: \"0px\",\n right: \"auto\",\n top: \"0px\",\n bottom: \"auto\",\n width: `${c}px`,\n height: `${r}px`,\n zIndex: 1e4\n } : (E = o.general) != null && E.embedded ? { ...t.chatWindowStyle } : {\n ...t.chatWindowStyle,\n zIndex: 1e4\n };\n };\n return /* @__PURE__ */ l(nA, { children: (() => {\n var v, E;\n return e && ((v = o.device) == null ? void 0 : v.desktopEnabled) || !e && ((E = o.device) == null ? void 0 : E.mobileEnabled);\n })() && /* @__PURE__ */ X(\n \"div\",\n {\n onMouseDown: (v) => {\n var E, T;\n !n && ((E = o.general) == null ? void 0 : E.flowStartTrigger) === \"ON_CHATBOT_INTERACT\" && s(!0), e ? (T = a.current) == null || T.blur() : v == null || v.preventDefault();\n },\n className: g,\n children: [\n /* @__PURE__ */ l(Xt, {}),\n /* @__PURE__ */ l(Yt, {}),\n i && !e && !((y = o.general) != null && y.embedded) && /* @__PURE__ */ X(nA, { children: [\n /* @__PURE__ */ l(\"style\", { children: `\n\t\t\t\t\t\t\t\t\thtml {\n\t\t\t\t\t\t\t\t\t\toverflow: hidden !important;\n\t\t\t\t\t\t\t\t\t\ttouch-action: none !important;\n\t\t\t\t\t\t\t\t\t\tscroll-behavior: auto !important;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t` }),\n /* @__PURE__ */ l(\n \"div\",\n {\n style: {\n position: \"fixed\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n backgroundColor: \"#fff\",\n zIndex: 9999\n }\n }\n )\n ] }),\n /* @__PURE__ */ X(\"div\", { style: B(), className: \"rcb-chat-window\", children: [\n ((D = o.general) == null ? void 0 : D.showHeader) && /* @__PURE__ */ l(et, { buttons: f }),\n /* @__PURE__ */ l(ut, {}),\n /* @__PURE__ */ l(Kt, {}),\n ((p = o.general) == null ? void 0 : p.showInputRow) && /* @__PURE__ */ l(zt, { buttons: w }),\n ((C = o.general) == null ? void 0 : C.showFooter) && /* @__PURE__ */ l(Gt, { buttons: d })\n ] })\n ]\n }\n ) });\n}, Se = vA(void 0), Ie = () => PA(Se), Qo = ({\n children: A\n}) => {\n var u;\n const e = AA(\"\"), o = AA({}), [t, n] = F({}), [s, a] = F({}), [r, c] = F(!1);\n V(() => {\n c(!0);\n }, []);\n const i = async (f, w, d, g, B, P) => {\n e.current = f, o.current = w;\n const b = await yo(f, d, g, B);\n P.current && (P.current.textContent = b.cssStylesText), n(b.settings), a(b.inlineStyles);\n };\n return r ? /* @__PURE__ */ l(\"div\", { style: { fontFamily: (u = t.general) == null ? void 0 : u.fontFamily }, children: /* @__PURE__ */ l(Se.Provider, { value: { loadConfig: i }, children: /* @__PURE__ */ l($e, { settings: t, setSettings: n, children: /* @__PURE__ */ l(At, { styles: s, setStyles: a, children: /* @__PURE__ */ l(jt, { children: /* @__PURE__ */ l(tt, { botIdRef: e, flowRef: o, children: /* @__PURE__ */ l(st, { children: /* @__PURE__ */ l(ot, { settings: t, children: /* @__PURE__ */ l(at, { children: A }) }) }) }) }) }) }) }) }) : null;\n}, bo = ({\n id: A,\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s,\n setConfigLoaded: a,\n styleRootRef: r\n}) => {\n const c = dA(() => A, []), i = Ie(), { flowRef: u } = $();\n u && u.current !== e && (u.current = e);\n const f = async () => {\n var w, d;\n (w = o.event) != null && w.rcbPreLoadChatBot && (await NA(\n H.PRE_LOAD_CHATBOT,\n { botId: c, currPath: null, prevPath: null },\n {\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n }\n )).defaultPrevented || (i != null && i.loadConfig && (await i.loadConfig(c, e, o, t, n, r), a(!0)), (d = o.event) != null && d.rcbPostLoadChatBot && NA(\n H.POST_LOAD_CHATBOT,\n { botId: c, currPath: null, prevPath: null },\n {\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n }\n ));\n };\n return V(() => {\n f();\n }, [n]), null;\n}, LA = [\"Quickstart\", \"API Docs\", \"Examples\", \"Github\", \"Discord\"], po = {\n start: {\n message: \"Hello, I am Tan Jin 👋! Welcome to React ChatBotify, I'm excited that you are using our chatbot 😊!\",\n transition: { duration: 1e3 },\n chatDisabled: !0,\n path: \"show_options\"\n },\n show_options: {\n message: \"It looks like you have not set up a conversation flow yet. No worries! Here are a few helpful things you can check out to get started:\",\n options: LA,\n path: \"process_options\"\n },\n prompt_again: {\n message: \"Do you need any other help?\",\n options: LA,\n path: \"process_options\"\n },\n unknown_input: {\n message: \"Sorry, I do not understand your message 😢! If you require further assistance, you may click on the Github option and open an issue there or visit our discord.\",\n options: LA,\n path: \"process_options\"\n },\n process_options: {\n transition: { duration: 0 },\n path: (A) => {\n let e = \"\";\n switch (A.userInput) {\n case \"Quickstart\":\n e = \"https://react-chatbotify.com/docs/introduction/quickstart/\";\n break;\n case \"API Docs\":\n e = \"https://react-chatbotify.com/docs/api/bot_options\";\n break;\n case \"Examples\":\n e = \"https://react-chatbotify.com/docs/examples/basic_form\";\n break;\n case \"Github\":\n e = \"https://github.com/react-chatbotify/react-chatbotify/\";\n break;\n case \"Discord\":\n e = \"https://discord.gg/6R4DK4G5Zh\";\n break;\n default:\n return \"unknown_input\";\n }\n return A.injectMessage(\"Sit tight! I'll send you right there!\"), setTimeout(() => {\n window.open(e);\n }, 1e3), \"repeat\";\n }\n },\n repeat: {\n transition: { duration: 3e3 },\n path: \"prompt_again\"\n }\n}, Oo = ({\n id: A,\n flow: e,\n settings: o,\n styles: t,\n themes: n,\n plugins: s\n}) => {\n const a = dA(() => A || \"rcb-\" + SA(), []), r = !e || Object.keys(e).length === 0 ? po : e, c = o || {}, i = t || {}, u = s || [], [f, w] = F(!1), d = Ie(), g = AA(null), [B, P] = F(n || []);\n V(() => {\n n && P(n);\n }, [n]);\n const b = () => /* @__PURE__ */ X(nA, { children: [\n /* @__PURE__ */ l(\n bo,\n {\n styleRootRef: g,\n id: a,\n flow: r,\n settings: c,\n styles: i,\n themes: B,\n plugins: u,\n setConfigLoaded: w\n }\n ),\n f && /* @__PURE__ */ l(mo, { plugins: s })\n ] });\n return d == null ? /* @__PURE__ */ X(Qo, { children: [\n /* @__PURE__ */ l(\"style\", { ref: g }),\n /* @__PURE__ */ l(\"div\", { id: a, children: b() })\n ] }) : /* @__PURE__ */ X(nA, { children: [\n /* @__PURE__ */ l(\"style\", { ref: g }),\n /* @__PURE__ */ l(\"div\", { id: a, children: b() })\n ] });\n}, Lo = () => {\n const { audioToggledOn: A, speakAudio: e, toggleAudio: o } = GA();\n return {\n audioToggledOn: A,\n speakAudio: e,\n toggleAudio: o\n };\n}, So = () => {\n const { botIdRef: A } = $();\n return {\n getBotId: x(() => A.current, [A])\n };\n}, Io = () => {\n const { getBotId: A } = So();\n return {\n getBotId: A\n };\n}, No = () => {\n const {\n isChatWindowOpen: A,\n toggleChatWindow: e,\n toggleIsBotTyping: o,\n scrollToBottom: t,\n getIsChatBotVisible: n\n } = sA();\n return {\n isChatWindowOpen: A,\n toggleChatWindow: e,\n toggleIsBotTyping: o,\n scrollToBottom: t,\n getIsChatBotVisible: n\n };\n}, Ro = () => {\n const { hasInteractedPage: A } = me();\n return {\n hasInteractedPage: A\n };\n}, To = () => {\n const { replaceMessages: A } = hA(), { replacePaths: e, goToPath: o } = QA(), { replaceToasts: t } = EA(), { hasFlowStarted: n } = eA(), { flowRef: s, timeoutIdRef: a } = $(), { settings: r } = O(), c = x(async () => {\n RA(r), a.current && clearTimeout(a.current), A([]), t([]), e([]), await o(\"start\");\n }, [a, r, A, t, e, RA, o]), i = x(() => (s == null ? void 0 : s.current) ?? {}, [s]);\n return {\n hasFlowStarted: n,\n restartFlow: c,\n getFlow: i\n };\n}, Uo = () => {\n const { hasFlowStarted: A, restartFlow: e, getFlow: o } = To();\n return {\n hasFlowStarted: A,\n restartFlow: e,\n getFlow: o\n };\n}, Fo = () => {\n const {\n endStreamMessage: A,\n injectMessage: e,\n removeMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n messages: s,\n replaceMessages: a\n } = hA();\n return {\n endStreamMessage: A,\n injectMessage: e,\n removeMessage: o,\n simulateStreamMessage: t,\n streamMessage: n,\n messages: s,\n replaceMessages: a\n };\n}, jo = (A, e) => {\n const { getBotId: o } = Io();\n V(() => {\n const t = (n) => {\n n.detail.botId === o() && e(n);\n };\n return window.addEventListener(A, t), () => {\n window.removeEventListener(A, t);\n };\n }, [o, A, e]);\n}, zo = () => {\n const {\n getCurrPath: A,\n getPrevPath: e,\n goToPath: o,\n paths: t,\n replacePaths: n\n } = QA();\n return {\n getCurrPath: A,\n getPrevPath: e,\n goToPath: o,\n paths: t,\n replacePaths: n\n };\n}, Go = () => {\n const { settings: A, replaceSettings: e, updateSettings: o } = be();\n return {\n settings: A,\n replaceSettings: e,\n updateSettings: o\n };\n}, Yo = () => {\n const { styles: A, replaceStyles: e, updateStyles: o } = pe();\n return {\n styles: A,\n replaceStyles: e,\n updateStyles: o\n };\n}, Xo = () => {\n const {\n textAreaDisabled: A,\n toggleTextAreaDisabled: e,\n textAreaSensitiveMode: o,\n toggleTextAreaSensitiveMode: t,\n getTextAreaValue: n,\n setTextAreaValue: s,\n focusTextArea: a,\n blurTextArea: r\n } = DA();\n return {\n textAreaDisabled: A,\n toggleTextAreaDisabled: e,\n textAreaSensitiveMode: o,\n toggleTextAreaSensitiveMode: t,\n getTextAreaValue: n,\n setTextAreaValue: s,\n focusTextArea: a,\n blurTextArea: r\n };\n}, Wo = () => {\n const { showToast: A, dismissToast: e, toasts: o, replaceToasts: t } = EA();\n return {\n showToast: A,\n dismissToast: e,\n toasts: o,\n replaceToasts: t\n };\n}, Ko = () => {\n const { voiceToggledOn: A, toggleVoice: e } = TA();\n return {\n voiceToggledOn: A,\n toggleVoice: e\n };\n}, qo = () => {\n const { showChatHistory: A, hasChatHistoryLoaded: e } = WA();\n return {\n showChatHistory: A,\n getHistoryMessages: jA,\n setHistoryMessages: bt,\n hasChatHistoryLoaded: e\n };\n};\nexport {\n Z as Button,\n Qo as ChatBotProvider,\n H as RcbEvent,\n Oo as default,\n Do as getDefaultSettings,\n Eo as getDefaultStyles,\n Lo as useAudio,\n Io as useBotId,\n qo as useChatHistory,\n No as useChatWindow,\n Ro as useFirstInteraction,\n Uo as useFlow,\n Fo as useMessages,\n _t as useNotifications,\n jo as useOnRcbEvent,\n zo as usePaths,\n Go as useSettings,\n Yo as useStyles,\n Xo as useTextArea,\n Wo as useToasts,\n Ko as useVoice\n};\n","import A, { useEffect as J } from \"react\";\nimport { useFlow as X, useMessages as Q, useSettings as Z, useChatHistory as ee, useOnRcbEvent as L, RcbEvent as P } from \"react-chatbotify\";\nimport { jsx as te } from \"react/jsx-runtime\";\nconst d = 1, Y = 2, G = 4, b = 8, H = 16, R = 32, N = 64, D = {\n a: {\n content: d | b,\n self: !1,\n type: d | b | R | N\n },\n address: {\n invalid: [\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\", \"address\", \"article\", \"aside\", \"section\", \"div\", \"header\", \"footer\"],\n self: !1\n },\n audio: {\n children: [\"track\", \"source\"]\n },\n br: {\n type: d | b,\n void: !0\n },\n body: {\n content: d | Y | G | b | H | R | N\n },\n button: {\n content: b,\n type: d | b | R | N\n },\n caption: {\n content: d,\n parent: [\"table\"]\n },\n col: {\n parent: [\"colgroup\"],\n void: !0\n },\n colgroup: {\n children: [\"col\"],\n parent: [\"table\"]\n },\n details: {\n children: [\"summary\"],\n type: d | R | N\n },\n dd: {\n content: d,\n parent: [\"dl\"]\n },\n dl: {\n children: [\"dt\", \"dd\"],\n type: d\n },\n dt: {\n content: d,\n invalid: [\"footer\", \"header\"],\n parent: [\"dl\"]\n },\n figcaption: {\n content: d,\n parent: [\"figure\"]\n },\n footer: {\n invalid: [\"footer\", \"header\"]\n },\n header: {\n invalid: [\"footer\", \"header\"]\n },\n hr: {\n type: d,\n void: !0\n },\n img: {\n void: !0\n },\n li: {\n content: d,\n parent: [\"ul\", \"ol\", \"menu\"]\n },\n main: {\n self: !1\n },\n ol: {\n children: [\"li\"],\n type: d\n },\n picture: {\n children: [\"source\", \"img\"],\n type: d | b | H\n },\n rb: {\n parent: [\"ruby\", \"rtc\"]\n },\n rp: {\n parent: [\"ruby\", \"rtc\"]\n },\n rt: {\n content: b,\n parent: [\"ruby\", \"rtc\"]\n },\n rtc: {\n content: b,\n parent: [\"ruby\"]\n },\n ruby: {\n children: [\"rb\", \"rp\", \"rt\", \"rtc\"]\n },\n source: {\n parent: [\"audio\", \"video\", \"picture\"],\n void: !0\n },\n summary: {\n content: b,\n parent: [\"details\"]\n },\n table: {\n children: [\"caption\", \"colgroup\", \"thead\", \"tbody\", \"tfoot\", \"tr\"],\n type: d\n },\n tbody: {\n parent: [\"table\"],\n children: [\"tr\"]\n },\n td: {\n content: d,\n parent: [\"tr\"]\n },\n tfoot: {\n parent: [\"table\"],\n children: [\"tr\"]\n },\n th: {\n content: d,\n parent: [\"tr\"]\n },\n thead: {\n parent: [\"table\"],\n children: [\"tr\"]\n },\n tr: {\n parent: [\"table\", \"tbody\", \"thead\", \"tfoot\"],\n children: [\"th\", \"td\"]\n },\n track: {\n parent: [\"audio\", \"video\"],\n void: !0\n },\n ul: {\n children: [\"li\"],\n type: d\n },\n video: {\n children: [\"track\", \"source\"]\n },\n wbr: {\n type: d | b,\n void: !0\n }\n};\nfunction S(a) {\n return (e) => {\n D[e] = {\n ...a,\n ...D[e]\n };\n };\n}\n[\"address\", \"main\", \"div\", \"figure\", \"p\", \"pre\"].forEach(S({\n content: d,\n type: d | N\n}));\n[\"abbr\", \"b\", \"bdi\", \"bdo\", \"cite\", \"code\", \"data\", \"dfn\", \"em\", \"i\", \"kbd\", \"mark\", \"q\", \"ruby\", \"samp\", \"strong\", \"sub\", \"sup\", \"time\", \"u\", \"var\"].forEach(S({\n content: b,\n type: d | b | N\n}));\n[\"p\", \"pre\"].forEach(S({\n content: b,\n type: d | N\n}));\n[\"s\", \"small\", \"span\", \"del\", \"ins\"].forEach(S({\n content: b,\n type: d | b\n}));\n[\"article\", \"aside\", \"footer\", \"header\", \"nav\", \"section\", \"blockquote\"].forEach(S({\n content: d,\n type: d | Y | N\n}));\n[\"h1\", \"h2\", \"h3\", \"h4\", \"h5\", \"h6\"].forEach(S({\n content: b,\n type: d | G | N\n}));\n[\"audio\", \"canvas\", \"iframe\", \"img\", \"video\"].forEach(S({\n type: d | b | H | N\n}));\nconst F = Object.freeze(D), re = [\"applet\", \"base\", \"body\", \"command\", \"embed\", \"frame\", \"frameset\", \"head\", \"html\", \"link\", \"meta\", \"noscript\", \"object\", \"script\", \"style\", \"title\"], ne = Object.keys(F).filter((a) => a !== \"canvas\" && a !== \"iframe\"), h = 1, se = 2, O = 3, x = 4, U = 5, W = Object.freeze({\n alt: h,\n cite: h,\n class: h,\n colspan: O,\n controls: x,\n datetime: h,\n default: x,\n disabled: x,\n dir: h,\n height: h,\n href: h,\n id: h,\n kind: h,\n label: h,\n lang: h,\n loading: h,\n loop: x,\n media: h,\n muted: x,\n poster: h,\n rel: h,\n role: h,\n rowspan: O,\n scope: h,\n sizes: h,\n span: O,\n start: O,\n style: U,\n src: h,\n srclang: h,\n srcset: h,\n tabindex: h,\n target: h,\n title: h,\n type: h,\n width: h\n}), ae = Object.freeze({\n class: \"className\",\n colspan: \"colSpan\",\n datetime: \"dateTime\",\n rowspan: \"rowSpan\",\n srclang: \"srcLang\",\n srcset: \"srcSet\",\n tabindex: \"tabIndex\"\n});\nfunction k() {\n return k = Object.assign || function(a) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t)\n Object.prototype.hasOwnProperty.call(t, r) && (a[r] = t[r]);\n }\n return a;\n }, k.apply(this, arguments);\n}\nfunction q({\n attributes: a = {},\n className: e,\n children: t = null,\n selfClose: r = !1,\n tagName: n\n}) {\n const s = n;\n return r ? /* @__PURE__ */ A.createElement(s, k({\n className: e\n }, a)) : /* @__PURE__ */ A.createElement(s, k({\n className: e\n }, a), t);\n}\nclass oe {\n /**\n * Filter and clean an HTML attribute value.\n */\n attribute(e, t) {\n return t;\n }\n /**\n * Filter and clean an HTML node.\n */\n node(e, t) {\n return t;\n }\n}\nfunction ie(a) {\n return a && a.__esModule && Object.prototype.hasOwnProperty.call(a, \"default\") ? a.default : a;\n}\n/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\nvar C, j;\nfunction ce() {\n if (j) return C;\n j = 1;\n var a = /[\"'&<>]/;\n C = e;\n function e(t) {\n var r = \"\" + t, n = a.exec(r);\n if (!n)\n return r;\n var s, c = \"\", u = 0, o = 0;\n for (u = n.index; u < r.length; u++) {\n switch (r.charCodeAt(u)) {\n case 34:\n s = \"&quot;\";\n break;\n case 38:\n s = \"&amp;\";\n break;\n case 39:\n s = \"&#39;\";\n break;\n case 60:\n s = \"&lt;\";\n break;\n case 62:\n s = \"&gt;\";\n break;\n default:\n continue;\n }\n o !== u && (c += r.substring(o, u)), o = u + 1, c += s;\n }\n return o !== u ? c + r.substring(o, u) : c;\n }\n return C;\n}\nvar le = ce();\nconst ue = /* @__PURE__ */ ie(le);\nfunction w(a, e, t) {\n return e in a ? Object.defineProperty(a, e, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : a[e] = t, a;\n}\nconst de = /(url|image|image-set)\\(/i;\nclass pe extends oe {\n attribute(e, t) {\n return e === \"style\" && Object.keys(t).forEach((r) => {\n String(t[r]).match(de) && delete t[r];\n }), t;\n }\n}\nconst V = 1, fe = 3, he = /^<(!doctype|(html|head|body)(\\s|>))/i, me = /^(aria-|data-|\\w+:)/iu, ge = /{{{(\\w+)\\/?}}}/;\nfunction be() {\n if (!(typeof window > \"u\" || typeof document > \"u\"))\n return document.implementation.createHTMLDocument(\"Interweave\");\n}\nclass z {\n constructor(e, t = {}, r = [], n = []) {\n var s;\n if (w(this, \"allowed\", void 0), w(this, \"banned\", void 0), w(this, \"blocked\", void 0), w(this, \"container\", void 0), w(this, \"content\", []), w(this, \"props\", void 0), w(this, \"matchers\", void 0), w(this, \"filters\", void 0), w(this, \"keyIndex\", void 0), process.env.NODE_ENV !== \"production\" && e && typeof e != \"string\")\n throw new TypeError(\"Interweave parser requires a valid string.\");\n this.props = t, this.matchers = r, this.filters = [...n, new pe()], this.keyIndex = -1, this.container = this.createContainer(e || \"\"), this.allowed = new Set((s = t.allowList) !== null && s !== void 0 ? s : ne), this.banned = new Set(re), this.blocked = new Set(t.blockList);\n }\n /**\n * Loop through and apply all registered attribute filters.\n */\n applyAttributeFilters(e, t) {\n return this.filters.reduce((r, n) => r !== null && typeof n.attribute == \"function\" ? n.attribute(e, r) : r, t);\n }\n /**\n * Loop through and apply all registered node filters.\n */\n applyNodeFilters(e, t) {\n return this.filters.reduce((r, n) => r !== null && typeof n.node == \"function\" ? n.node(e, r) : r, t);\n }\n /**\n * Loop through and apply all registered matchers to the string.\n * If a match is found, create a React element, and build a new array.\n * This array allows React to interpolate and render accordingly.\n */\n applyMatchers(e, t) {\n const r = {}, {\n props: n\n } = this;\n let s = e, c = 0, u = null;\n return this.matchers.forEach((o) => {\n const m = o.asTag().toLowerCase(), f = this.getTagConfig(m);\n if (n[o.inverseName] || !this.isTagAllowed(m) || !this.canRenderChild(t, f))\n return;\n let i = \"\";\n for (; s && (u = o.match(s)); ) {\n const {\n index: l,\n length: p,\n match: g,\n valid: E,\n void: T,\n ...y\n } = u, _ = o.propName + String(c);\n l > 0 && (i += s.slice(0, l)), E ? (i += T ? `{{{${_}/}}}` : `{{{${_}}}}${g}{{{/${_}}}}`, this.keyIndex += 1, c += 1, r[_] = {\n children: g,\n matcher: o,\n props: {\n ...n,\n ...y,\n key: this.keyIndex\n }\n }) : i += g, o.greedy ? (s = i + s.slice(l + p), i = \"\") : s = s.slice(l + (p || g.length));\n }\n o.greedy || (s = i + s);\n }), c === 0 ? e : this.replaceTokens(s, r);\n }\n /**\n * Determine whether the child can be rendered within the parent.\n */\n canRenderChild(e, t) {\n return !e.tagName || !t.tagName || e.void ? !1 : e.children.length > 0 ? e.children.includes(t.tagName) : e.invalid.length > 0 && e.invalid.includes(t.tagName) ? !1 : t.parent.length > 0 ? t.parent.includes(e.tagName) : !e.self && e.tagName === t.tagName ? !1 : !!(e && e.content & t.type);\n }\n /**\n * Convert line breaks in a string to HTML `<br/>` tags.\n * If the string contains HTML, we should not convert anything,\n * as line breaks should be handled by `<br/>`s in the markup itself.\n */\n convertLineBreaks(e) {\n const {\n noHtml: t,\n disableLineBreaks: r\n } = this.props;\n if (t || r || e.match(/<((?:\\/[ a-z]+)|(?:[ a-z]+\\/))>/gi))\n return e;\n let n = e.replace(/\\r\\n/g, `\n`);\n return n = n.replace(/\\n{3,}/g, `\n\n\n`), n = n.replace(/\\n/g, \"<br/>\"), n;\n }\n /**\n * Create a detached HTML document that allows for easy HTML\n * parsing while not triggering scripts or loading external\n * resources.\n */\n createContainer(e) {\n var t;\n const n = (typeof global < \"u\" && global.INTERWEAVE_SSR_POLYFILL || be)();\n if (!n)\n return;\n const s = (t = this.props.containerTagName) !== null && t !== void 0 ? t : \"body\", c = s === \"body\" || s === \"fragment\" ? n.body : n.createElement(s);\n if (e.match(he)) {\n if (process.env.NODE_ENV !== \"production\")\n throw new Error(\"HTML documents as Interweave content are not supported.\");\n } else\n c.innerHTML = this.convertLineBreaks(this.props.escapeHtml ? ue(e) : e);\n return c;\n }\n /**\n * Convert an elements attribute map to an object map.\n * Returns null if no attributes are defined.\n */\n extractAttributes(e) {\n const {\n allowAttributes: t\n } = this.props, r = {};\n let n = 0;\n return e.nodeType !== V || !e.attributes || ([...e.attributes].forEach((s) => {\n const {\n name: c,\n value: u\n } = s, o = c.toLowerCase(), m = W[o] || W[c];\n if (!this.isSafe(e) || !o.match(me) && (!t && (!m || m === se) || o.startsWith(\"on\") || u.replace(/(\\s|\\0|&#x0([9AD]);)/, \"\").match(/(javascript|vbscript|livescript|xss):/i)))\n return;\n let f = o === \"style\" ? this.extractStyleAttribute(e) : u;\n m === x ? f = !0 : m === O ? f = Number.parseFloat(String(f)) : m !== U && (f = String(f)), r[ae[o] || o] = this.applyAttributeFilters(o, f), n += 1;\n }), n === 0) ? null : r;\n }\n /**\n * Extract the style attribute as an object and remove values that allow for attack vectors.\n */\n extractStyleAttribute(e) {\n const t = {};\n return Array.from(e.style).forEach((r) => {\n const n = e.style[r];\n (typeof n == \"string\" || typeof n == \"number\") && (t[r.replace(/-([a-z])/g, (s, c) => String(c).toUpperCase())] = n);\n }), t;\n }\n /**\n * Return configuration for a specific tag.\n */\n getTagConfig(e) {\n const t = {\n children: [],\n content: 0,\n invalid: [],\n parent: [],\n self: !0,\n tagName: \"\",\n type: 0,\n void: !1\n };\n return F[e] ? {\n ...t,\n ...F[e],\n tagName: e\n } : t;\n }\n /**\n * Verify that a node is safe from XSS and injection attacks.\n */\n isSafe(e) {\n if (typeof HTMLAnchorElement < \"u\" && e instanceof HTMLAnchorElement) {\n const t = e.getAttribute(\"href\");\n if (t != null && t.startsWith(\"#\"))\n return !0;\n const r = e.protocol.toLowerCase();\n return r === \":\" || r === \"http:\" || r === \"https:\" || r === \"mailto:\" || r === \"tel:\";\n }\n return !0;\n }\n /**\n * Verify that an HTML tag is allowed to render.\n */\n isTagAllowed(e) {\n return this.banned.has(e) || this.blocked.has(e) ? !1 : this.props.allowElements || this.allowed.has(e);\n }\n /**\n * Parse the markup by injecting it into a detached document,\n * while looping over all child nodes and generating an\n * array to interpolate into JSX.\n */\n parse() {\n return this.container ? this.parseNode(this.container, this.getTagConfig(this.container.nodeName.toLowerCase())) : [];\n }\n /**\n * Loop over the nodes children and generate a\n * list of text nodes and React elements.\n */\n parseNode(e, t) {\n const {\n noHtml: r,\n noHtmlExceptMatchers: n,\n allowElements: s,\n transform: c,\n transformOnlyAllowList: u\n } = this.props;\n let o = [], m = \"\";\n return [...e.childNodes].forEach((f) => {\n if (f.nodeType === V) {\n const l = f.nodeName.toLowerCase(), p = this.getTagConfig(l);\n m && (o.push(m), m = \"\");\n const g = this.applyNodeFilters(l, f);\n if (!g)\n return;\n let E;\n if (c && !(u && !this.isTagAllowed(l))) {\n this.keyIndex += 1;\n const T = this.keyIndex;\n E = this.parseNode(g, p);\n const y = c(g, E, p);\n if (y === null)\n return;\n if (typeof y < \"u\") {\n o.push(/* @__PURE__ */ A.cloneElement(y, {\n key: T\n }));\n return;\n }\n this.keyIndex = T - 1;\n }\n if (this.banned.has(l))\n return;\n if (!(r || n && l !== \"br\") && this.isTagAllowed(l) && (s || this.canRenderChild(t, p))) {\n var i;\n this.keyIndex += 1;\n const T = this.extractAttributes(g), y = {\n tagName: l\n };\n T && (y.attributes = T), p.void && (y.selfClose = p.void), o.push(/* @__PURE__ */ A.createElement(q, {\n ...y,\n key: this.keyIndex\n }, (i = E) !== null && i !== void 0 ? i : this.parseNode(g, p)));\n } else\n o = [...o, ...this.parseNode(g, p.tagName ? p : t)];\n } else if (f.nodeType === fe) {\n const l = r && !n ? f.textContent : (\n // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing\n this.applyMatchers(f.textContent || \"\", t)\n );\n Array.isArray(l) ? o = [...o, ...l] : m += l;\n }\n }), m && o.push(m), o;\n }\n /**\n * Deconstruct the string into an array, by replacing custom tokens with React elements,\n * so that React can render it correctly.\n */\n replaceTokens(e, t) {\n if (!e.includes(\"{{{\"))\n return e;\n const r = [];\n let n = e, s = null;\n for (; s = n.match(ge); ) {\n const [c, u] = s, o = s.index, m = c.includes(\"/\");\n if (process.env.NODE_ENV !== \"production\" && !t[u])\n throw new Error(`Token \"${u}\" found but no matching element to replace with.`);\n o > 0 && (r.push(n.slice(0, o)), n = n.slice(o));\n const {\n children: f,\n matcher: i,\n props: l\n } = t[u];\n let p;\n if (m)\n p = c.length, r.push(i.createElement(f, l));\n else {\n const g = n.match(new RegExp(`{{{/${u}}}}`));\n if (process.env.NODE_ENV !== \"production\" && !g)\n throw new Error(`Closing token missing for interpolated element \"${u}\".`);\n p = g.index + g[0].length, r.push(i.createElement(this.replaceTokens(n.slice(c.length, g.index), t), l));\n }\n n = n.slice(p);\n }\n return n.length > 0 && r.push(n), r.length === 0 ? \"\" : r.length === 1 && typeof r[0] == \"string\" ? r[0] : r;\n }\n}\nfunction ye(a) {\n var e;\n const {\n attributes: t,\n className: r,\n containerTagName: n,\n content: s,\n emptyContent: c,\n parsedContent: u,\n tagName: o,\n noWrap: m\n } = a, f = (e = n ?? o) !== null && e !== void 0 ? e : \"span\", i = f === \"fragment\" ? !0 : m;\n let l;\n if (u)\n l = u;\n else {\n const p = new z(s ?? \"\", a).parse();\n p.length > 0 && (l = p);\n }\n return l || (l = c), i ? /* @__PURE__ */ A.createElement(A.Fragment, null, l) : /* @__PURE__ */ A.createElement(q, {\n attributes: t,\n className: r,\n tagName: f\n }, l);\n}\nfunction Ee(a) {\n const {\n attributes: e,\n className: t,\n content: r = \"\",\n disableFilters: n = !1,\n disableMatchers: s = !1,\n emptyContent: c = null,\n filters: u = [],\n matchers: o = [],\n onAfterParse: m = null,\n onBeforeParse: f = null,\n tagName: i = \"span\",\n noWrap: l = !1,\n ...p\n } = a, g = s ? [] : o, E = n ? [] : u, T = f ? [f] : [], y = m ? [m] : [];\n g.forEach((v) => {\n v.onBeforeParse && T.push(v.onBeforeParse.bind(v)), v.onAfterParse && y.push(v.onAfterParse.bind(v));\n });\n const _ = T.reduce((v, M) => {\n const I = M(v, a);\n if (process.env.NODE_ENV !== \"production\" && typeof I != \"string\")\n throw new TypeError(\"Interweave `onBeforeParse` must return a valid HTML string.\");\n return I;\n }, r ?? \"\"), K = new z(_, p, g, E), B = y.reduce((v, M) => {\n const I = M(v, a);\n if (process.env.NODE_ENV !== \"production\" && !Array.isArray(I))\n throw new TypeError(\"Interweave `onAfterParse` must return an array of strings and React elements.\");\n return I;\n }, K.parse());\n return /* @__PURE__ */ A.createElement(ye, {\n attributes: e,\n className: t,\n containerTagName: a.containerTagName,\n emptyContent: c,\n noWrap: l,\n parsedContent: B.length === 0 ? void 0 : B,\n tagName: i\n });\n}\nconst Te = ({ children: a }) => /* @__PURE__ */ te(Ee, { content: typeof a == \"string\" ? a : \"\" }), ve = {\n autoConfig: !0\n}, $ = (a, e, t) => {\n var n;\n if (!a.detail.currPath)\n return !1;\n const r = e[a.detail.currPath];\n return r ? ((n = r.renderHtml) == null ? void 0 : n.map((s) => s.toUpperCase()).includes(t)) ?? !1 : !1;\n}, Ne = (a) => {\n const e = [];\n let t = \"\", r = !1;\n for (let n = 0; n < a.length; n++) {\n const s = a[n];\n s === \"<\" ? r ? (e.push(t), t = s) : (r = !0, t = s) : s === \">\" ? (t += s, e.push(t), t = \"\", r = !1) : r ? t += s : e.push(s);\n }\n return t !== \"\" && e.push(t), e;\n}, we = (a) => typeof window.DOMParser < \"u\" ? new DOMParser().parseFromString(a, \"text/html\").body.textContent || \"\" : a.replace(/<\\/?[^>]+(>|$)/g, \"\"), Ae = (a) => {\n const { getFlow: e } = X(), { messages: t, replaceMessages: r } = Q(), { settings: n } = Z(), { hasChatHistoryLoaded: s } = ee(), c = { ...a, ...ve }, u = c.htmlComponent ? c.htmlComponent : Te;\n J(() => {\n var i, l;\n if (s) {\n const p = [...t];\n for (let g = 0; g < p.length && g < (((i = n.chatHistory) == null ? void 0 : i.maxEntries) ?? 30); g++) {\n const E = p[g];\n (l = E.tags) != null && l.includes(\"rcb-html-renderer-plugin:parsed\") && (E.contentWrapper = u);\n }\n r(p);\n }\n }, [s]);\n const o = async (i) => {\n var p;\n const l = (p = i.data.message) == null ? void 0 : p.sender.toUpperCase();\n typeof i.data.message.content == \"string\" && $(i, e(), l) && (i.type === \"rcb-start-simulate-stream-message\" && (i.data.simulateStreamChunker = Ne), i.data.message.contentWrapper = u, i.data.message.tags || (i.data.message.tags = []), i.data.message.tags.push(\"rcb-html-renderer-plugin:parsed\"));\n }, m = async (i) => {\n $(i, e(), \"BOT\") && (i.data.textToRead = we(i.data.textToRead));\n };\n L(P.PRE_INJECT_MESSAGE, o), L(P.CHUNK_STREAM_MESSAGE, o), L(P.START_STREAM_MESSAGE, o), L(P.START_SIMULATE_STREAM_MESSAGE, o), L(P.START_SPEAK_AUDIO, m);\n const f = {\n name: \"@rcb-plugins/html-renderer\"\n };\n return c != null && c.autoConfig && (f.settings = {\n event: {\n rcbPreInjectMessage: !0,\n rcbChunkStreamMessage: !0,\n rcbStartSimulateStreamMessage: !0,\n rcbStartStreamMessage: !0,\n rcbStartSpeakAudio: !0\n }\n }), f;\n}, Ie = (a) => () => Ae(a);\nexport {\n Ie as default\n};\n","import { useEffect as gr } from \"react\";\nimport { useFlow as yr, useMessages as xr, useSettings as kr, useChatHistory as br, useOnRcbEvent as Ue, RcbEvent as Ve } from \"react-chatbotify\";\nimport { jsxs as wr, jsx as ae, Fragment as Sr } from \"react/jsx-runtime\";\nfunction Cr(e, n) {\n const t = {};\n return (e[e.length - 1] === \"\" ? [...e, \"\"] : e).join(\n (t.padRight ? \" \" : \"\") + \",\" + (t.padLeft === !1 ? \"\" : \" \")\n ).trim();\n}\nconst Er = /^[$_\\p{ID_Start}][$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u, Ir = /^[$_\\p{ID_Start}][-$_\\u{200C}\\u{200D}\\p{ID_Continue}]*$/u, Ar = {};\nfunction Hn(e, n) {\n return (Ar.jsx ? Ir : Er).test(e);\n}\nconst Tr = /[ \\t\\n\\f\\r]/g;\nfunction Pr(e) {\n return typeof e == \"object\" ? e.type === \"text\" ? Un(e.value) : !1 : Un(e);\n}\nfunction Un(e) {\n return e.replace(Tr, \"\") === \"\";\n}\nclass Be {\n /**\n * @constructor\n * @param {Properties} property\n * @param {Normal} normal\n * @param {string} [space]\n */\n constructor(n, t, r) {\n this.property = n, this.normal = t, r && (this.space = r);\n }\n}\nBe.prototype.property = {};\nBe.prototype.normal = {};\nBe.prototype.space = null;\nfunction Et(e, n) {\n const t = {}, r = {};\n let i = -1;\n for (; ++i < e.length; )\n Object.assign(t, e[i].property), Object.assign(r, e[i].normal);\n return new Be(t, r, n);\n}\nfunction hn(e) {\n return e.toLowerCase();\n}\nclass te {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n */\n constructor(n, t) {\n this.property = n, this.attribute = t;\n }\n}\nte.prototype.space = null;\nte.prototype.boolean = !1;\nte.prototype.booleanish = !1;\nte.prototype.overloadedBoolean = !1;\nte.prototype.number = !1;\nte.prototype.commaSeparated = !1;\nte.prototype.spaceSeparated = !1;\nte.prototype.commaOrSpaceSeparated = !1;\nte.prototype.mustUseProperty = !1;\nte.prototype.defined = !1;\nlet zr = 0;\nconst O = be(), $ = be(), It = be(), k = be(), U = be(), Ae = be(), Z = be();\nfunction be() {\n return 2 ** ++zr;\n}\nconst mn = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n boolean: O,\n booleanish: $,\n commaOrSpaceSeparated: Z,\n commaSeparated: Ae,\n number: k,\n overloadedBoolean: It,\n spaceSeparated: U\n}, Symbol.toStringTag, { value: \"Module\" })), Ze = Object.keys(mn);\nclass Sn extends te {\n /**\n * @constructor\n * @param {string} property\n * @param {string} attribute\n * @param {number|null} [mask]\n * @param {string} [space]\n */\n constructor(n, t, r, i) {\n let l = -1;\n if (super(n, t), Vn(this, \"space\", i), typeof r == \"number\")\n for (; ++l < Ze.length; ) {\n const o = Ze[l];\n Vn(this, Ze[l], (r & mn[o]) === mn[o]);\n }\n }\n}\nSn.prototype.defined = !0;\nfunction Vn(e, n, t) {\n t && (e[n] = t);\n}\nconst Lr = {}.hasOwnProperty;\nfunction Pe(e) {\n const n = {}, t = {};\n let r;\n for (r in e.properties)\n if (Lr.call(e.properties, r)) {\n const i = e.properties[r], l = new Sn(\n r,\n e.transform(e.attributes || {}, r),\n i,\n e.space\n );\n e.mustUseProperty && e.mustUseProperty.includes(r) && (l.mustUseProperty = !0), n[r] = l, t[hn(r)] = r, t[hn(l.attribute)] = r;\n }\n return new Be(n, t, e.space);\n}\nconst At = Pe({\n space: \"xlink\",\n transform(e, n) {\n return \"xlink:\" + n.slice(5).toLowerCase();\n },\n properties: {\n xLinkActuate: null,\n xLinkArcRole: null,\n xLinkHref: null,\n xLinkRole: null,\n xLinkShow: null,\n xLinkTitle: null,\n xLinkType: null\n }\n}), Tt = Pe({\n space: \"xml\",\n transform(e, n) {\n return \"xml:\" + n.slice(3).toLowerCase();\n },\n properties: { xmlLang: null, xmlBase: null, xmlSpace: null }\n});\nfunction Pt(e, n) {\n return n in e ? e[n] : n;\n}\nfunction zt(e, n) {\n return Pt(e, n.toLowerCase());\n}\nconst Lt = Pe({\n space: \"xmlns\",\n attributes: { xmlnsxlink: \"xmlns:xlink\" },\n transform: zt,\n properties: { xmlns: null, xmlnsXLink: null }\n}), vt = Pe({\n transform(e, n) {\n return n === \"role\" ? n : \"aria-\" + n.slice(4).toLowerCase();\n },\n properties: {\n ariaActiveDescendant: null,\n ariaAtomic: $,\n ariaAutoComplete: null,\n ariaBusy: $,\n ariaChecked: $,\n ariaColCount: k,\n ariaColIndex: k,\n ariaColSpan: k,\n ariaControls: U,\n ariaCurrent: null,\n ariaDescribedBy: U,\n ariaDetails: null,\n ariaDisabled: $,\n ariaDropEffect: U,\n ariaErrorMessage: null,\n ariaExpanded: $,\n ariaFlowTo: U,\n ariaGrabbed: $,\n ariaHasPopup: null,\n ariaHidden: $,\n ariaInvalid: null,\n ariaKeyShortcuts: null,\n ariaLabel: null,\n ariaLabelledBy: U,\n ariaLevel: k,\n ariaLive: null,\n ariaModal: $,\n ariaMultiLine: $,\n ariaMultiSelectable: $,\n ariaOrientation: null,\n ariaOwns: U,\n ariaPlaceholder: null,\n ariaPosInSet: k,\n ariaPressed: $,\n ariaReadOnly: $,\n ariaRelevant: null,\n ariaRequired: $,\n ariaRoleDescription: U,\n ariaRowCount: k,\n ariaRowIndex: k,\n ariaRowSpan: k,\n ariaSelected: $,\n ariaSetSize: k,\n ariaSort: null,\n ariaValueMax: k,\n ariaValueMin: k,\n ariaValueNow: k,\n ariaValueText: null,\n role: null\n }\n}), vr = Pe({\n space: \"html\",\n attributes: {\n acceptcharset: \"accept-charset\",\n classname: \"class\",\n htmlfor: \"for\",\n httpequiv: \"http-equiv\"\n },\n transform: zt,\n mustUseProperty: [\"checked\", \"multiple\", \"muted\", \"selected\"],\n properties: {\n // Standard Properties.\n abbr: null,\n accept: Ae,\n acceptCharset: U,\n accessKey: U,\n action: null,\n allow: null,\n allowFullScreen: O,\n allowPaymentRequest: O,\n allowUserMedia: O,\n alt: null,\n as: null,\n async: O,\n autoCapitalize: null,\n autoComplete: U,\n autoFocus: O,\n autoPlay: O,\n blocking: U,\n capture: null,\n charSet: null,\n checked: O,\n cite: null,\n className: U,\n cols: k,\n colSpan: null,\n content: null,\n contentEditable: $,\n controls: O,\n controlsList: U,\n coords: k | Ae,\n crossOrigin: null,\n data: null,\n dateTime: null,\n decoding: null,\n default: O,\n defer: O,\n dir: null,\n dirName: null,\n disabled: O,\n download: It,\n draggable: $,\n encType: null,\n enterKeyHint: null,\n fetchPriority: null,\n form: null,\n formAction: null,\n formEncType: null,\n formMethod: null,\n formNoValidate: O,\n formTarget: null,\n headers: U,\n height: k,\n hidden: O,\n high: k,\n href: null,\n hrefLang: null,\n htmlFor: U,\n httpEquiv: U,\n id: null,\n imageSizes: null,\n imageSrcSet: null,\n inert: O,\n inputMode: null,\n integrity: null,\n is: null,\n isMap: O,\n itemId: null,\n itemProp: U,\n itemRef: U,\n itemScope: O,\n itemType: U,\n kind: null,\n label: null,\n lang: null,\n language: null,\n list: null,\n loading: null,\n loop: O,\n low: k,\n manifest: null,\n max: null,\n maxLength: k,\n media: null,\n method: null,\n min: null,\n minLength: k,\n multiple: O,\n muted: O,\n name: null,\n nonce: null,\n noModule: O,\n noValidate: O,\n onAbort: null,\n onAfterPrint: null,\n onAuxClick: null,\n onBeforeMatch: null,\n onBeforePrint: null,\n onBeforeToggle: null,\n onBeforeUnload: null,\n onBlur: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onContextLost: null,\n onContextMenu: null,\n onContextRestored: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFormData: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLanguageChange: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadEnd: null,\n onLoadStart: null,\n onMessage: null,\n onMessageError: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRejectionHandled: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onScrollEnd: null,\n onSecurityPolicyViolation: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onSlotChange: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnhandledRejection: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onWheel: null,\n open: O,\n optimum: k,\n pattern: null,\n ping: U,\n placeholder: null,\n playsInline: O,\n popover: null,\n popoverTarget: null,\n popoverTargetAction: null,\n poster: null,\n preload: null,\n readOnly: O,\n referrerPolicy: null,\n rel: U,\n required: O,\n reversed: O,\n rows: k,\n rowSpan: k,\n sandbox: U,\n scope: null,\n scoped: O,\n seamless: O,\n selected: O,\n shadowRootClonable: O,\n shadowRootDelegatesFocus: O,\n shadowRootMode: null,\n shape: null,\n size: k,\n sizes: null,\n slot: null,\n span: k,\n spellCheck: $,\n src: null,\n srcDoc: null,\n srcLang: null,\n srcSet: null,\n start: k,\n step: null,\n style: null,\n tabIndex: k,\n target: null,\n title: null,\n translate: null,\n type: null,\n typeMustMatch: O,\n useMap: null,\n value: $,\n width: k,\n wrap: null,\n writingSuggestions: null,\n // Legacy.\n // See: https://html.spec.whatwg.org/#other-elements,-attributes-and-apis\n align: null,\n // Several. Use CSS `text-align` instead,\n aLink: null,\n // `<body>`. Use CSS `a:active {color}` instead\n archive: U,\n // `<object>`. List of URIs to archives\n axis: null,\n // `<td>` and `<th>`. Use `scope` on `<th>`\n background: null,\n // `<body>`. Use CSS `background-image` instead\n bgColor: null,\n // `<body>` and table elements. Use CSS `background-color` instead\n border: k,\n // `<table>`. Use CSS `border-width` instead,\n borderColor: null,\n // `<table>`. Use CSS `border-color` instead,\n bottomMargin: k,\n // `<body>`\n cellPadding: null,\n // `<table>`\n cellSpacing: null,\n // `<table>`\n char: null,\n // Several table elements. When `align=char`, sets the character to align on\n charOff: null,\n // Several table elements. When `char`, offsets the alignment\n classId: null,\n // `<object>`\n clear: null,\n // `<br>`. Use CSS `clear` instead\n code: null,\n // `<object>`\n codeBase: null,\n // `<object>`\n codeType: null,\n // `<object>`\n color: null,\n // `<font>` and `<hr>`. Use CSS instead\n compact: O,\n // Lists. Use CSS to reduce space between items instead\n declare: O,\n // `<object>`\n event: null,\n // `<script>`\n face: null,\n // `<font>`. Use CSS instead\n frame: null,\n // `<table>`\n frameBorder: null,\n // `<iframe>`. Use CSS `border` instead\n hSpace: k,\n // `<img>` and `<object>`\n leftMargin: k,\n // `<body>`\n link: null,\n // `<body>`. Use CSS `a:link {color: *}` instead\n longDesc: null,\n // `<frame>`, `<iframe>`, and `<img>`. Use an `<a>`\n lowSrc: null,\n // `<img>`. Use a `<picture>`\n marginHeight: k,\n // `<body>`\n marginWidth: k,\n // `<body>`\n noResize: O,\n // `<frame>`\n noHref: O,\n // `<area>`. Use no href instead of an explicit `nohref`\n noShade: O,\n // `<hr>`. Use background-color and height instead of borders\n noWrap: O,\n // `<td>` and `<th>`\n object: null,\n // `<applet>`\n profile: null,\n // `<head>`\n prompt: null,\n // `<isindex>`\n rev: null,\n // `<link>`\n rightMargin: k,\n // `<body>`\n rules: null,\n // `<table>`\n scheme: null,\n // `<meta>`\n scrolling: $,\n // `<frame>`. Use overflow in the child context\n standby: null,\n // `<object>`\n summary: null,\n // `<table>`\n text: null,\n // `<body>`. Use CSS `color` instead\n topMargin: k,\n // `<body>`\n valueType: null,\n // `<param>`\n version: null,\n // `<html>`. Use a doctype.\n vAlign: null,\n // Several. Use CSS `vertical-align` instead\n vLink: null,\n // `<body>`. Use CSS `a:visited {color}` instead\n vSpace: k,\n // `<img>` and `<object>`\n // Non-standard Properties.\n allowTransparency: null,\n autoCorrect: null,\n autoSave: null,\n disablePictureInPicture: O,\n disableRemotePlayback: O,\n prefix: null,\n property: null,\n results: k,\n security: null,\n unselectable: null\n }\n}), Dr = Pe({\n space: \"svg\",\n attributes: {\n accentHeight: \"accent-height\",\n alignmentBaseline: \"alignment-baseline\",\n arabicForm: \"arabic-form\",\n baselineShift: \"baseline-shift\",\n capHeight: \"cap-height\",\n className: \"class\",\n clipPath: \"clip-path\",\n clipRule: \"clip-rule\",\n colorInterpolation: \"color-interpolation\",\n colorInterpolationFilters: \"color-interpolation-filters\",\n colorProfile: \"color-profile\",\n colorRendering: \"color-rendering\",\n crossOrigin: \"crossorigin\",\n dataType: \"datatype\",\n dominantBaseline: \"dominant-baseline\",\n enableBackground: \"enable-background\",\n fillOpacity: \"fill-opacity\",\n fillRule: \"fill-rule\",\n floodColor: \"flood-color\",\n floodOpacity: \"flood-opacity\",\n fontFamily: \"font-family\",\n fontSize: \"font-size\",\n fontSizeAdjust: \"font-size-adjust\",\n fontStretch: \"font-stretch\",\n fontStyle: \"font-style\",\n fontVariant: \"font-variant\",\n fontWeight: \"font-weight\",\n glyphName: \"glyph-name\",\n glyphOrientationHorizontal: \"glyph-orientation-horizontal\",\n glyphOrientationVertical: \"glyph-orientation-vertical\",\n hrefLang: \"hreflang\",\n horizAdvX: \"horiz-adv-x\",\n horizOriginX: \"horiz-origin-x\",\n horizOriginY: \"horiz-origin-y\",\n imageRendering: \"image-rendering\",\n letterSpacing: \"letter-spacing\",\n lightingColor: \"lighting-color\",\n markerEnd: \"marker-end\",\n markerMid: \"marker-mid\",\n markerStart: \"marker-start\",\n navDown: \"nav-down\",\n navDownLeft: \"nav-down-left\",\n navDownRight: \"nav-down-right\",\n navLeft: \"nav-left\",\n navNext: \"nav-next\",\n navPrev: \"nav-prev\",\n navRight: \"nav-right\",\n navUp: \"nav-up\",\n navUpLeft: \"nav-up-left\",\n navUpRight: \"nav-up-right\",\n onAbort: \"onabort\",\n onActivate: \"onactivate\",\n onAfterPrint: \"onafterprint\",\n onBeforePrint: \"onbeforeprint\",\n onBegin: \"onbegin\",\n onCancel: \"oncancel\",\n onCanPlay: \"oncanplay\",\n onCanPlayThrough: \"oncanplaythrough\",\n onChange: \"onchange\",\n onClick: \"onclick\",\n onClose: \"onclose\",\n onCopy: \"oncopy\",\n onCueChange: \"oncuechange\",\n onCut: \"oncut\",\n onDblClick: \"ondblclick\",\n onDrag: \"ondrag\",\n onDragEnd: \"ondragend\",\n onDragEnter: \"ondragenter\",\n onDragExit: \"ondragexit\",\n onDragLeave: \"ondragleave\",\n onDragOver: \"ondragover\",\n onDragStart: \"ondragstart\",\n onDrop: \"ondrop\",\n onDurationChange: \"ondurationchange\",\n onEmptied: \"onemptied\",\n onEnd: \"onend\",\n onEnded: \"onended\",\n onError: \"onerror\",\n onFocus: \"onfocus\",\n onFocusIn: \"onfocusin\",\n onFocusOut: \"onfocusout\",\n onHashChange: \"onhashchange\",\n onInput: \"oninput\",\n onInvalid: \"oninvalid\",\n onKeyDown: \"onkeydown\",\n onKeyPress: \"onkeypress\",\n onKeyUp: \"onkeyup\",\n onLoad: \"onload\",\n onLoadedData: \"onloadeddata\",\n onLoadedMetadata: \"onloadedmetadata\",\n onLoadStart: \"onloadstart\",\n onMessage: \"onmessage\",\n onMouseDown: \"onmousedown\",\n onMouseEnter: \"onmouseenter\",\n onMouseLeave: \"onmouseleave\",\n onMouseMove: \"onmousemove\",\n onMouseOut: \"onmouseout\",\n onMouseOver: \"onmouseover\",\n onMouseUp: \"onmouseup\",\n onMouseWheel: \"onmousewheel\",\n onOffline: \"onoffline\",\n onOnline: \"ononline\",\n onPageHide: \"onpagehide\",\n onPageShow: \"onpageshow\",\n onPaste: \"onpaste\",\n onPause: \"onpause\",\n onPlay: \"onplay\",\n onPlaying: \"onplaying\",\n onPopState: \"onpopstate\",\n onProgress: \"onprogress\",\n onRateChange: \"onratechange\",\n onRepeat: \"onrepeat\",\n onReset: \"onreset\",\n onResize: \"onresize\",\n onScroll: \"onscroll\",\n onSeeked: \"onseeked\",\n onSeeking: \"onseeking\",\n onSelect: \"onselect\",\n onShow: \"onshow\",\n onStalled: \"onstalled\",\n onStorage: \"onstorage\",\n onSubmit: \"onsubmit\",\n onSuspend: \"onsuspend\",\n onTimeUpdate: \"ontimeupdate\",\n onToggle: \"ontoggle\",\n onUnload: \"onunload\",\n onVolumeChange: \"onvolumechange\",\n onWaiting: \"onwaiting\",\n onZoom: \"onzoom\",\n overlinePosition: \"overline-position\",\n overlineThickness: \"overline-thickness\",\n paintOrder: \"paint-order\",\n panose1: \"panose-1\",\n pointerEvents: \"pointer-events\",\n referrerPolicy: \"referrerpolicy\",\n renderingIntent: \"rendering-intent\",\n shapeRendering: \"shape-rendering\",\n stopColor: \"stop-color\",\n stopOpacity: \"stop-opacity\",\n strikethroughPosition: \"strikethrough-position\",\n strikethroughThickness: \"strikethrough-thickness\",\n strokeDashArray: \"stroke-dasharray\",\n strokeDashOffset: \"stroke-dashoffset\",\n strokeLineCap: \"stroke-linecap\",\n strokeLineJoin: \"stroke-linejoin\",\n strokeMiterLimit: \"stroke-miterlimit\",\n strokeOpacity: \"stroke-opacity\",\n strokeWidth: \"stroke-width\",\n tabIndex: \"tabindex\",\n textAnchor: \"text-anchor\",\n textDecoration: \"text-decoration\",\n textRendering: \"text-rendering\",\n transformOrigin: \"transform-origin\",\n typeOf: \"typeof\",\n underlinePosition: \"underline-position\",\n underlineThickness: \"underline-thickness\",\n unicodeBidi: \"unicode-bidi\",\n unicodeRange: \"unicode-range\",\n unitsPerEm: \"units-per-em\",\n vAlphabetic: \"v-alphabetic\",\n vHanging: \"v-hanging\",\n vIdeographic: \"v-ideographic\",\n vMathematical: \"v-mathematical\",\n vectorEffect: \"vector-effect\",\n vertAdvY: \"vert-adv-y\",\n vertOriginX: \"vert-origin-x\",\n vertOriginY: \"vert-origin-y\",\n wordSpacing: \"word-spacing\",\n writingMode: \"writing-mode\",\n xHeight: \"x-height\",\n // These were camelcased in Tiny. Now lowercased in SVG 2\n playbackOrder: \"playbackorder\",\n timelineBegin: \"timelinebegin\"\n },\n transform: Pt,\n properties: {\n about: Z,\n accentHeight: k,\n accumulate: null,\n additive: null,\n alignmentBaseline: null,\n alphabetic: k,\n amplitude: k,\n arabicForm: null,\n ascent: k,\n attributeName: null,\n attributeType: null,\n azimuth: k,\n bandwidth: null,\n baselineShift: null,\n baseFrequency: null,\n baseProfile: null,\n bbox: null,\n begin: null,\n bias: k,\n by: null,\n calcMode: null,\n capHeight: k,\n className: U,\n clip: null,\n clipPath: null,\n clipPathUnits: null,\n clipRule: null,\n color: null,\n colorInterpolation: null,\n colorInterpolationFilters: null,\n colorProfile: null,\n colorRendering: null,\n content: null,\n contentScriptType: null,\n contentStyleType: null,\n crossOrigin: null,\n cursor: null,\n cx: null,\n cy: null,\n d: null,\n dataType: null,\n defaultAction: null,\n descent: k,\n diffuseConstant: k,\n direction: null,\n display: null,\n dur: null,\n divisor: k,\n dominantBaseline: null,\n download: O,\n dx: null,\n dy: null,\n edgeMode: null,\n editable: null,\n elevation: k,\n enableBackground: null,\n end: null,\n event: null,\n exponent: k,\n externalResourcesRequired: null,\n fill: null,\n fillOpacity: k,\n fillRule: null,\n filter: null,\n filterRes: null,\n filterUnits: null,\n floodColor: null,\n floodOpacity: null,\n focusable: null,\n focusHighlight: null,\n fontFamily: null,\n fontSize: null,\n fontSizeAdjust: null,\n fontStretch: null,\n fontStyle: null,\n fontVariant: null,\n fontWeight: null,\n format: null,\n fr: null,\n from: null,\n fx: null,\n fy: null,\n g1: Ae,\n g2: Ae,\n glyphName: Ae,\n glyphOrientationHorizontal: null,\n glyphOrientationVertical: null,\n glyphRef: null,\n gradientTransform: null,\n gradientUnits: null,\n handler: null,\n hanging: k,\n hatchContentUnits: null,\n hatchUnits: null,\n height: null,\n href: null,\n hrefLang: null,\n horizAdvX: k,\n horizOriginX: k,\n horizOriginY: k,\n id: null,\n ideographic: k,\n imageRendering: null,\n initialVisibility: null,\n in: null,\n in2: null,\n intercept: k,\n k,\n k1: k,\n k2: k,\n k3: k,\n k4: k,\n kernelMatrix: Z,\n kernelUnitLength: null,\n keyPoints: null,\n // SEMI_COLON_SEPARATED\n keySplines: null,\n // SEMI_COLON_SEPARATED\n keyTimes: null,\n // SEMI_COLON_SEPARATED\n kerning: null,\n lang: null,\n lengthAdjust: null,\n letterSpacing: null,\n lightingColor: null,\n limitingConeAngle: k,\n local: null,\n markerEnd: null,\n markerMid: null,\n markerStart: null,\n markerHeight: null,\n markerUnits: null,\n markerWidth: null,\n mask: null,\n maskContentUnits: null,\n maskUnits: null,\n mathematical: null,\n max: null,\n media: null,\n mediaCharacterEncoding: null,\n mediaContentEncodings: null,\n mediaSize: k,\n mediaTime: null,\n method: null,\n min: null,\n mode: null,\n name: null,\n navDown: null,\n navDownLeft: null,\n navDownRight: null,\n navLeft: null,\n navNext: null,\n navPrev: null,\n navRight: null,\n navUp: null,\n navUpLeft: null,\n navUpRight: null,\n numOctaves: null,\n observer: null,\n offset: null,\n onAbort: null,\n onActivate: null,\n onAfterPrint: null,\n onBeforePrint: null,\n onBegin: null,\n onCancel: null,\n onCanPlay: null,\n onCanPlayThrough: null,\n onChange: null,\n onClick: null,\n onClose: null,\n onCopy: null,\n onCueChange: null,\n onCut: null,\n onDblClick: null,\n onDrag: null,\n onDragEnd: null,\n onDragEnter: null,\n onDragExit: null,\n onDragLeave: null,\n onDragOver: null,\n onDragStart: null,\n onDrop: null,\n onDurationChange: null,\n onEmptied: null,\n onEnd: null,\n onEnded: null,\n onError: null,\n onFocus: null,\n onFocusIn: null,\n onFocusOut: null,\n onHashChange: null,\n onInput: null,\n onInvalid: null,\n onKeyDown: null,\n onKeyPress: null,\n onKeyUp: null,\n onLoad: null,\n onLoadedData: null,\n onLoadedMetadata: null,\n onLoadStart: null,\n onMessage: null,\n onMouseDown: null,\n onMouseEnter: null,\n onMouseLeave: null,\n onMouseMove: null,\n onMouseOut: null,\n onMouseOver: null,\n onMouseUp: null,\n onMouseWheel: null,\n onOffline: null,\n onOnline: null,\n onPageHide: null,\n onPageShow: null,\n onPaste: null,\n onPause: null,\n onPlay: null,\n onPlaying: null,\n onPopState: null,\n onProgress: null,\n onRateChange: null,\n onRepeat: null,\n onReset: null,\n onResize: null,\n onScroll: null,\n onSeeked: null,\n onSeeking: null,\n onSelect: null,\n onShow: null,\n onStalled: null,\n onStorage: null,\n onSubmit: null,\n onSuspend: null,\n onTimeUpdate: null,\n onToggle: null,\n onUnload: null,\n onVolumeChange: null,\n onWaiting: null,\n onZoom: null,\n opacity: null,\n operator: null,\n order: null,\n orient: null,\n orientation: null,\n origin: null,\n overflow: null,\n overlay: null,\n overlinePosition: k,\n overlineThickness: k,\n paintOrder: null,\n panose1: null,\n path: null,\n pathLength: k,\n patternContentUnits: null,\n patternTransform: null,\n patternUnits: null,\n phase: null,\n ping: U,\n pitch: null,\n playbackOrder: null,\n pointerEvents: null,\n points: null,\n pointsAtX: k,\n pointsAtY: k,\n pointsAtZ: k,\n preserveAlpha: null,\n preserveAspectRatio: null,\n primitiveUnits: null,\n propagate: null,\n property: Z,\n r: null,\n radius: null,\n referrerPolicy: null,\n refX: null,\n refY: null,\n rel: Z,\n rev: Z,\n renderingIntent: null,\n repeatCount: null,\n repeatDur: null,\n requiredExtensions: Z,\n requiredFeatures: Z,\n requiredFonts: Z,\n requiredFormats: Z,\n resource: null,\n restart: null,\n result: null,\n rotate: null,\n rx: null,\n ry: null,\n scale: null,\n seed: null,\n shapeRendering: null,\n side: null,\n slope: null,\n snapshotTime: null,\n specularConstant: k,\n specularExponent: k,\n spreadMethod: null,\n spacing: null,\n startOffset: null,\n stdDeviation: null,\n stemh: null,\n stemv: null,\n stitchTiles: null,\n stopColor: null,\n stopOpacity: null,\n strikethroughPosition: k,\n strikethroughThickness: k,\n string: null,\n stroke: null,\n strokeDashArray: Z,\n strokeDashOffset: null,\n strokeLineCap: null,\n strokeLineJoin: null,\n strokeMiterLimit: k,\n strokeOpacity: k,\n strokeWidth: null,\n style: null,\n surfaceScale: k,\n syncBehavior: null,\n syncBehaviorDefault: null,\n syncMaster: null,\n syncTolerance: null,\n syncToleranceDefault: null,\n systemLanguage: Z,\n tabIndex: k,\n tableValues: null,\n target: null,\n targetX: k,\n targetY: k,\n textAnchor: null,\n textDecoration: null,\n textRendering: null,\n textLength: null,\n timelineBegin: null,\n title: null,\n transformBehavior: null,\n type: null,\n typeOf: Z,\n to: null,\n transform: null,\n transformOrigin: null,\n u1: null,\n u2: null,\n underlinePosition: k,\n underlineThickness: k,\n unicode: null,\n unicodeBidi: null,\n unicodeRange: null,\n unitsPerEm: k,\n values: null,\n vAlphabetic: k,\n vMathematical: k,\n vectorEffect: null,\n vHanging: k,\n vIdeographic: k,\n version: null,\n vertAdvY: k,\n vertOriginX: k,\n vertOriginY: k,\n viewBox: null,\n viewTarget: null,\n visibility: null,\n width: null,\n widths: null,\n wordSpacing: null,\n writingMode: null,\n x: null,\n x1: null,\n x2: null,\n xChannelSelector: null,\n xHeight: k,\n y: null,\n y1: null,\n y2: null,\n yChannelSelector: null,\n z: null,\n zoomAndPan: null\n }\n}), Or = /^data[-\\w.:]+$/i, qn = /-[a-z]/g, Rr = /[A-Z]/g;\nfunction Fr(e, n) {\n const t = hn(n);\n let r = n, i = te;\n if (t in e.normal)\n return e.property[e.normal[t]];\n if (t.length > 4 && t.slice(0, 4) === \"data\" && Or.test(n)) {\n if (n.charAt(4) === \"-\") {\n const l = n.slice(5).replace(qn, Mr);\n r = \"data\" + l.charAt(0).toUpperCase() + l.slice(1);\n } else {\n const l = n.slice(4);\n if (!qn.test(l)) {\n let o = l.replace(Rr, Nr);\n o.charAt(0) !== \"-\" && (o = \"-\" + o), n = \"data\" + o;\n }\n }\n i = Sn;\n }\n return new i(r, n);\n}\nfunction Nr(e) {\n return \"-\" + e.toLowerCase();\n}\nfunction Mr(e) {\n return e.charAt(1).toUpperCase();\n}\nconst _r = {\n classId: \"classID\",\n dataType: \"datatype\",\n itemId: \"itemID\",\n strokeDashArray: \"strokeDasharray\",\n strokeDashOffset: \"strokeDashoffset\",\n strokeLineCap: \"strokeLinecap\",\n strokeLineJoin: \"strokeLinejoin\",\n strokeMiterLimit: \"strokeMiterlimit\",\n typeOf: \"typeof\",\n xLinkActuate: \"xlinkActuate\",\n xLinkArcRole: \"xlinkArcrole\",\n xLinkHref: \"xlinkHref\",\n xLinkRole: \"xlinkRole\",\n xLinkShow: \"xlinkShow\",\n xLinkTitle: \"xlinkTitle\",\n xLinkType: \"xlinkType\",\n xmlnsXLink: \"xmlnsXlink\"\n}, Br = Et([Tt, At, Lt, vt, vr], \"html\"), Cn = Et([Tt, At, Lt, vt, Dr], \"svg\");\nfunction jr(e) {\n return e.join(\" \").trim();\n}\nfunction Dt(e) {\n return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, \"default\") ? e.default : e;\n}\nvar Ee = {}, en, $n;\nfunction Hr() {\n if ($n) return en;\n $n = 1;\n var e = /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//g, n = /\\n/g, t = /^\\s*/, r = /^(\\*?[-#/*\\\\\\w]+(\\[[0-9a-z_-]+\\])?)\\s*/, i = /^:\\s*/, l = /^((?:'(?:\\\\'|.)*?'|\"(?:\\\\\"|.)*?\"|\\([^)]*?\\)|[^};])+)/, o = /^[;\\s]*/, a = /^\\s+|\\s+$/g, s = `\n`, u = \"/\", c = \"*\", f = \"\", d = \"comment\", p = \"declaration\";\n en = function(w, A) {\n if (typeof w != \"string\")\n throw new TypeError(\"First argument must be a string\");\n if (!w) return [];\n A = A || {};\n var x = 1, C = 1;\n function E(P) {\n var I = P.match(n);\n I && (x += I.length);\n var v = P.lastIndexOf(s);\n C = ~v ? P.length - v : C + P.length;\n }\n function N() {\n var P = { line: x, column: C };\n return function(I) {\n return I.position = new R(P), q(), I;\n };\n }\n function R(P) {\n this.start = P, this.end = { line: x, column: C }, this.source = A.source;\n }\n R.prototype.content = w;\n function y(P) {\n var I = new Error(\n A.source + \":\" + x + \":\" + C + \": \" + P\n );\n if (I.reason = P, I.filename = A.source, I.line = x, I.column = C, I.source = w, !A.silent) throw I;\n }\n function F(P) {\n var I = P.exec(w);\n if (I) {\n var v = I[0];\n return E(v), w = w.slice(v.length), I;\n }\n }\n function q() {\n F(t);\n }\n function B(P) {\n var I;\n for (P = P || []; I = j(); )\n I !== !1 && P.push(I);\n return P;\n }\n function j() {\n var P = N();\n if (!(u != w.charAt(0) || c != w.charAt(1))) {\n for (var I = 2; f != w.charAt(I) && (c != w.charAt(I) || u != w.charAt(I + 1)); )\n ++I;\n if (I += 2, f === w.charAt(I - 1))\n return y(\"End of comment missing\");\n var v = w.slice(2, I - 2);\n return C += 2, E(v), w = w.slice(I), C += 2, P({\n type: d,\n comment: v\n });\n }\n }\n function z() {\n var P = N(), I = F(r);\n if (I) {\n if (j(), !F(i)) return y(\"property missing ':'\");\n var v = F(l), W = P({\n type: p,\n property: b(I[0].replace(e, f)),\n value: v ? b(v[0].replace(e, f)) : f\n });\n return F(o), W;\n }\n }\n function T() {\n var P = [];\n B(P);\n for (var I; I = z(); )\n I !== !1 && (P.push(I), B(P));\n return P;\n }\n return q(), T();\n };\n function b(w) {\n return w ? w.replace(a, f) : f;\n }\n return en;\n}\nvar Wn;\nfunction Ur() {\n if (Wn) return Ee;\n Wn = 1;\n var e = Ee && Ee.__importDefault || function(r) {\n return r && r.__esModule ? r : { default: r };\n };\n Object.defineProperty(Ee, \"__esModule\", { value: !0 }), Ee.default = t;\n var n = e(Hr());\n function t(r, i) {\n var l = null;\n if (!r || typeof r != \"string\")\n return l;\n var o = (0, n.default)(r), a = typeof i == \"function\";\n return o.forEach(function(s) {\n if (s.type === \"declaration\") {\n var u = s.property, c = s.value;\n a ? i(u, c, s) : c && (l = l || {}, l[u] = c);\n }\n }), l;\n }\n return Ee;\n}\nvar Vr = Ur();\nconst Yn = /* @__PURE__ */ Dt(Vr), qr = Yn.default || Yn, Ot = Rt(\"end\"), En = Rt(\"start\");\nfunction Rt(e) {\n return n;\n function n(t) {\n const r = t && t.position && t.position[e] || {};\n if (typeof r.line == \"number\" && r.line > 0 && typeof r.column == \"number\" && r.column > 0)\n return {\n line: r.line,\n column: r.column,\n offset: typeof r.offset == \"number\" && r.offset > -1 ? r.offset : void 0\n };\n }\n}\nfunction $r(e) {\n const n = En(e), t = Ot(e);\n if (n && t)\n return { start: n, end: t };\n}\nfunction Fe(e) {\n return !e || typeof e != \"object\" ? \"\" : \"position\" in e || \"type\" in e ? Qn(e.position) : \"start\" in e || \"end\" in e ? Qn(e) : \"line\" in e || \"column\" in e ? dn(e) : \"\";\n}\nfunction dn(e) {\n return Xn(e && e.line) + \":\" + Xn(e && e.column);\n}\nfunction Qn(e) {\n return dn(e && e.start) + \"-\" + dn(e && e.end);\n}\nfunction Xn(e) {\n return e && typeof e == \"number\" ? e : 1;\n}\nclass X extends Error {\n /**\n * Create a message for `reason`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {Options | null | undefined} [options]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | Options | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns\n * Instance of `VFileMessage`.\n */\n // eslint-disable-next-line complexity\n constructor(n, t, r) {\n super(), typeof t == \"string\" && (r = t, t = void 0);\n let i = \"\", l = {}, o = !1;\n if (t && (\"line\" in t && \"column\" in t ? l = { place: t } : \"start\" in t && \"end\" in t ? l = { place: t } : \"type\" in t ? l = {\n ancestors: [t],\n place: t.position\n } : l = { ...t }), typeof n == \"string\" ? i = n : !l.cause && n && (o = !0, i = n.message, l.cause = n), !l.ruleId && !l.source && typeof r == \"string\") {\n const s = r.indexOf(\":\");\n s === -1 ? l.ruleId = r : (l.source = r.slice(0, s), l.ruleId = r.slice(s + 1));\n }\n if (!l.place && l.ancestors && l.ancestors) {\n const s = l.ancestors[l.ancestors.length - 1];\n s && (l.place = s.position);\n }\n const a = l.place && \"start\" in l.place ? l.place.start : l.place;\n this.ancestors = l.ancestors || void 0, this.cause = l.cause || void 0, this.column = a ? a.column : void 0, this.fatal = void 0, this.file, this.message = i, this.line = a ? a.line : void 0, this.name = Fe(l.place) || \"1:1\", this.place = l.place || void 0, this.reason = this.message, this.ruleId = l.ruleId || void 0, this.source = l.source || void 0, this.stack = o && l.cause && typeof l.cause.stack == \"string\" ? l.cause.stack : \"\", this.actual, this.expected, this.note, this.url;\n }\n}\nX.prototype.file = \"\";\nX.prototype.name = \"\";\nX.prototype.reason = \"\";\nX.prototype.message = \"\";\nX.prototype.stack = \"\";\nX.prototype.column = void 0;\nX.prototype.line = void 0;\nX.prototype.ancestors = void 0;\nX.prototype.cause = void 0;\nX.prototype.fatal = void 0;\nX.prototype.place = void 0;\nX.prototype.ruleId = void 0;\nX.prototype.source = void 0;\nconst In = {}.hasOwnProperty, Wr = /* @__PURE__ */ new Map(), Yr = /[A-Z]/g, Qr = /-([a-z])/g, Xr = /* @__PURE__ */ new Set([\"table\", \"tbody\", \"thead\", \"tfoot\", \"tr\"]), Kr = /* @__PURE__ */ new Set([\"td\", \"th\"]), Ft = \"https://github.com/syntax-tree/hast-util-to-jsx-runtime\";\nfunction Gr(e, n) {\n if (!n || n.Fragment === void 0)\n throw new TypeError(\"Expected `Fragment` in options\");\n const t = n.filePath || void 0;\n let r;\n if (n.development) {\n if (typeof n.jsxDEV != \"function\")\n throw new TypeError(\n \"Expected `jsxDEV` in options when `development: true`\"\n );\n r = li(t, n.jsxDEV);\n } else {\n if (typeof n.jsx != \"function\")\n throw new TypeError(\"Expected `jsx` in production options\");\n if (typeof n.jsxs != \"function\")\n throw new TypeError(\"Expected `jsxs` in production options\");\n r = ii(t, n.jsx, n.jsxs);\n }\n const i = {\n Fragment: n.Fragment,\n ancestors: [],\n components: n.components || {},\n create: r,\n elementAttributeNameCase: n.elementAttributeNameCase || \"react\",\n evaluater: n.createEvaluater ? n.createEvaluater() : void 0,\n filePath: t,\n ignoreInvalidStyle: n.ignoreInvalidStyle || !1,\n passKeys: n.passKeys !== !1,\n passNode: n.passNode || !1,\n schema: n.space === \"svg\" ? Cn : Br,\n stylePropertyNameCase: n.stylePropertyNameCase || \"dom\",\n tableCellAlignToStyle: n.tableCellAlignToStyle !== !1\n }, l = Nt(i, e, void 0);\n return l && typeof l != \"string\" ? l : i.create(\n e,\n i.Fragment,\n { children: l || void 0 },\n void 0\n );\n}\nfunction Nt(e, n, t) {\n if (n.type === \"element\")\n return Jr(e, n, t);\n if (n.type === \"mdxFlowExpression\" || n.type === \"mdxTextExpression\")\n return Zr(e, n);\n if (n.type === \"mdxJsxFlowElement\" || n.type === \"mdxJsxTextElement\")\n return ni(e, n, t);\n if (n.type === \"mdxjsEsm\")\n return ei(e, n);\n if (n.type === \"root\")\n return ti(e, n, t);\n if (n.type === \"text\")\n return ri(e, n);\n}\nfunction Jr(e, n, t) {\n const r = e.schema;\n let i = r;\n n.tagName.toLowerCase() === \"svg\" && r.space === \"html\" && (i = Cn, e.schema = i), e.ancestors.push(n);\n const l = _t(e, n.tagName, !1), o = oi(e, n);\n let a = Tn(e, n);\n return Xr.has(n.tagName) && (a = a.filter(function(s) {\n return typeof s == \"string\" ? !Pr(s) : !0;\n })), Mt(e, o, l, n), An(o, a), e.ancestors.pop(), e.schema = r, e.create(n, l, o, t);\n}\nfunction Zr(e, n) {\n if (n.data && n.data.estree && e.evaluater) {\n const r = n.data.estree.body[0];\n return r.type, /** @type {Child | undefined} */\n e.evaluater.evaluateExpression(r.expression);\n }\n _e(e, n.position);\n}\nfunction ei(e, n) {\n if (n.data && n.data.estree && e.evaluater)\n return (\n /** @type {Child | undefined} */\n e.evaluater.evaluateProgram(n.data.estree)\n );\n _e(e, n.position);\n}\nfunction ni(e, n, t) {\n const r = e.schema;\n let i = r;\n n.name === \"svg\" && r.space === \"html\" && (i = Cn, e.schema = i), e.ancestors.push(n);\n const l = n.name === null ? e.Fragment : _t(e, n.name, !0), o = ai(e, n), a = Tn(e, n);\n return Mt(e, o, l, n), An(o, a), e.ancestors.pop(), e.schema = r, e.create(n, l, o, t);\n}\nfunction ti(e, n, t) {\n const r = {};\n return An(r, Tn(e, n)), e.create(n, e.Fragment, r, t);\n}\nfunction ri(e, n) {\n return n.value;\n}\nfunction Mt(e, n, t, r) {\n typeof t != \"string\" && t !== e.Fragment && e.passNode && (n.node = r);\n}\nfunction An(e, n) {\n if (n.length > 0) {\n const t = n.length > 1 ? n : n[0];\n t && (e.children = t);\n }\n}\nfunction ii(e, n, t) {\n return r;\n function r(i, l, o, a) {\n const u = Array.isArray(o.children) ? t : n;\n return a ? u(l, o, a) : u(l, o);\n }\n}\nfunction li(e, n) {\n return t;\n function t(r, i, l, o) {\n const a = Array.isArray(l.children), s = En(r);\n return n(\n i,\n l,\n o,\n a,\n {\n columnNumber: s ? s.column - 1 : void 0,\n fileName: e,\n lineNumber: s ? s.line : void 0\n },\n void 0\n );\n }\n}\nfunction oi(e, n) {\n const t = {};\n let r, i;\n for (i in n.properties)\n if (i !== \"children\" && In.call(n.properties, i)) {\n const l = ui(e, i, n.properties[i]);\n if (l) {\n const [o, a] = l;\n e.tableCellAlignToStyle && o === \"align\" && typeof a == \"string\" && Kr.has(n.tagName) ? r = a : t[o] = a;\n }\n }\n if (r) {\n const l = (\n /** @type {Style} */\n t.style || (t.style = {})\n );\n l[e.stylePropertyNameCase === \"css\" ? \"text-align\" : \"textAlign\"] = r;\n }\n return t;\n}\nfunction ai(e, n) {\n const t = {};\n for (const r of n.attributes)\n if (r.type === \"mdxJsxExpressionAttribute\")\n if (r.data && r.data.estree && e.evaluater) {\n const l = r.data.estree.body[0];\n l.type;\n const o = l.expression;\n o.type;\n const a = o.properties[0];\n a.type, Object.assign(\n t,\n e.evaluater.evaluateExpression(a.argument)\n );\n } else\n _e(e, n.position);\n else {\n const i = r.name;\n let l;\n if (r.value && typeof r.value == \"object\")\n if (r.value.data && r.value.data.estree && e.evaluater) {\n const a = r.value.data.estree.body[0];\n a.type, l = e.evaluater.evaluateExpression(a.expression);\n } else\n _e(e, n.position);\n else\n l = r.value === null ? !0 : r.value;\n t[i] = /** @type {Props[keyof Props]} */\n l;\n }\n return t;\n}\nfunction Tn(e, n) {\n const t = [];\n let r = -1;\n const i = e.passKeys ? /* @__PURE__ */ new Map() : Wr;\n for (; ++r < n.children.length; ) {\n const l = n.children[r];\n let o;\n if (e.passKeys) {\n const s = l.type === \"element\" ? l.tagName : l.type === \"mdxJsxFlowElement\" || l.type === \"mdxJsxTextElement\" ? l.name : void 0;\n if (s) {\n const u = i.get(s) || 0;\n o = s + \"-\" + u, i.set(s, u + 1);\n }\n }\n const a = Nt(e, l, o);\n a !== void 0 && t.push(a);\n }\n return t;\n}\nfunction ui(e, n, t) {\n const r = Fr(e.schema, n);\n if (!(t == null || typeof t == \"number\" && Number.isNaN(t))) {\n if (Array.isArray(t) && (t = r.commaSeparated ? Cr(t) : jr(t)), r.property === \"style\") {\n let i = typeof t == \"object\" ? t : si(e, String(t));\n return e.stylePropertyNameCase === \"css\" && (i = ci(i)), [\"style\", i];\n }\n return [\n e.elementAttributeNameCase === \"react\" && r.space ? _r[r.property] || r.property : r.attribute,\n t\n ];\n }\n}\nfunction si(e, n) {\n const t = {};\n try {\n qr(n, r);\n } catch (i) {\n if (!e.ignoreInvalidStyle) {\n const l = (\n /** @type {Error} */\n i\n ), o = new X(\"Cannot parse `style` attribute\", {\n ancestors: e.ancestors,\n cause: l,\n ruleId: \"style\",\n source: \"hast-util-to-jsx-runtime\"\n });\n throw o.file = e.filePath || void 0, o.url = Ft + \"#cannot-parse-style-attribute\", o;\n }\n }\n return t;\n function r(i, l) {\n let o = i;\n o.slice(0, 2) !== \"--\" && (o.slice(0, 4) === \"-ms-\" && (o = \"ms-\" + o.slice(4)), o = o.replace(Qr, fi)), t[o] = l;\n }\n}\nfunction _t(e, n, t) {\n let r;\n if (!t)\n r = { type: \"Literal\", value: n };\n else if (n.includes(\".\")) {\n const i = n.split(\".\");\n let l = -1, o;\n for (; ++l < i.length; ) {\n const a = Hn(i[l]) ? { type: \"Identifier\", name: i[l] } : { type: \"Literal\", value: i[l] };\n o = o ? {\n type: \"MemberExpression\",\n object: o,\n property: a,\n computed: !!(l && a.type === \"Literal\"),\n optional: !1\n } : a;\n }\n r = o;\n } else\n r = Hn(n) && !/^[a-z]/.test(n) ? { type: \"Identifier\", name: n } : { type: \"Literal\", value: n };\n if (r.type === \"Literal\") {\n const i = (\n /** @type {keyof JSX.IntrinsicElements} */\n r.value\n );\n return In.call(e.components, i) ? e.components[i] : i;\n }\n if (e.evaluater)\n return e.evaluater.evaluateExpression(r);\n _e(e);\n}\nfunction _e(e, n) {\n const t = new X(\n \"Cannot handle MDX estrees without `createEvaluater`\",\n {\n ancestors: e.ancestors,\n place: n,\n ruleId: \"mdx-estree\",\n source: \"hast-util-to-jsx-runtime\"\n }\n );\n throw t.file = e.filePath || void 0, t.url = Ft + \"#cannot-handle-mdx-estrees-without-createevaluater\", t;\n}\nfunction ci(e) {\n const n = {};\n let t;\n for (t in e)\n In.call(e, t) && (n[pi(t)] = e[t]);\n return n;\n}\nfunction pi(e) {\n let n = e.replace(Yr, hi);\n return n.slice(0, 3) === \"ms-\" && (n = \"-\" + n), n;\n}\nfunction fi(e, n) {\n return n.toUpperCase();\n}\nfunction hi(e) {\n return \"-\" + e.toLowerCase();\n}\nconst nn = {\n action: [\"form\"],\n cite: [\"blockquote\", \"del\", \"ins\", \"q\"],\n data: [\"object\"],\n formAction: [\"button\", \"input\"],\n href: [\"a\", \"area\", \"base\", \"link\"],\n icon: [\"menuitem\"],\n itemId: null,\n manifest: [\"html\"],\n ping: [\"a\", \"area\"],\n poster: [\"video\"],\n src: [\n \"audio\",\n \"embed\",\n \"iframe\",\n \"img\",\n \"input\",\n \"script\",\n \"source\",\n \"track\",\n \"video\"\n ]\n}, mi = {};\nfunction di(e, n) {\n const t = mi, r = typeof t.includeImageAlt == \"boolean\" ? t.includeImageAlt : !0, i = typeof t.includeHtml == \"boolean\" ? t.includeHtml : !0;\n return Bt(e, r, i);\n}\nfunction Bt(e, n, t) {\n if (gi(e)) {\n if (\"value\" in e)\n return e.type === \"html\" && !t ? \"\" : e.value;\n if (n && \"alt\" in e && e.alt)\n return e.alt;\n if (\"children\" in e)\n return Kn(e.children, n, t);\n }\n return Array.isArray(e) ? Kn(e, n, t) : \"\";\n}\nfunction Kn(e, n, t) {\n const r = [];\n let i = -1;\n for (; ++i < e.length; )\n r[i] = Bt(e[i], n, t);\n return r.join(\"\");\n}\nfunction gi(e) {\n return !!(e && typeof e == \"object\");\n}\nconst Gn = document.createElement(\"i\");\nfunction Pn(e) {\n const n = \"&\" + e + \";\";\n Gn.innerHTML = n;\n const t = Gn.textContent;\n return t.charCodeAt(t.length - 1) === 59 && e !== \"semi\" || t === n ? !1 : t;\n}\nfunction ce(e, n, t, r) {\n const i = e.length;\n let l = 0, o;\n if (n < 0 ? n = -n > i ? 0 : i + n : n = n > i ? i : n, t = t > 0 ? t : 0, r.length < 1e4)\n o = Array.from(r), o.unshift(n, t), e.splice(...o);\n else\n for (t && e.splice(n, t); l < r.length; )\n o = r.slice(l, l + 1e4), o.unshift(n, 0), e.splice(...o), l += 1e4, n += 1e4;\n}\nfunction ne(e, n) {\n return e.length > 0 ? (ce(e, e.length, 0, n), e) : n;\n}\nconst Jn = {}.hasOwnProperty;\nfunction yi(e) {\n const n = {};\n let t = -1;\n for (; ++t < e.length; )\n xi(n, e[t]);\n return n;\n}\nfunction xi(e, n) {\n let t;\n for (t in n) {\n const i = (Jn.call(e, t) ? e[t] : void 0) || (e[t] = {}), l = n[t];\n let o;\n if (l)\n for (o in l) {\n Jn.call(i, o) || (i[o] = []);\n const a = l[o];\n ki(\n // @ts-expect-error Looks like a list.\n i[o],\n Array.isArray(a) ? a : a ? [a] : []\n );\n }\n }\n}\nfunction ki(e, n) {\n let t = -1;\n const r = [];\n for (; ++t < n.length; )\n (n[t].add === \"after\" ? e : r).push(n[t]);\n ce(e, 0, 0, r);\n}\nfunction jt(e, n) {\n const t = Number.parseInt(e, n);\n return (\n // C0 except for HT, LF, FF, CR, space.\n t < 9 || t === 11 || t > 13 && t < 32 || // Control character (DEL) of C0, and C1 controls.\n t > 126 && t < 160 || // Lone high surrogates and low surrogates.\n t > 55295 && t < 57344 || // Noncharacters.\n t > 64975 && t < 65008 || /* eslint-disable no-bitwise */\n (t & 65535) === 65535 || (t & 65535) === 65534 || /* eslint-enable no-bitwise */\n // Out of range\n t > 1114111 ? \"�\" : String.fromCodePoint(t)\n );\n}\nfunction Te(e) {\n return e.replace(/[\\t\\n\\r ]+/g, \" \").replace(/^ | $/g, \"\").toLowerCase().toUpperCase();\n}\nconst se = ye(/[A-Za-z]/), ee = ye(/[\\dA-Za-z]/), bi = ye(/[#-'*+\\--9=?A-Z^-~]/);\nfunction gn(e) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n e !== null && (e < 32 || e === 127)\n );\n}\nconst yn = ye(/\\d/), wi = ye(/[\\dA-Fa-f]/), Si = ye(/[!-/:-@[-`{-~]/);\nfunction L(e) {\n return e !== null && e < -2;\n}\nfunction G(e) {\n return e !== null && (e < 0 || e === 32);\n}\nfunction _(e) {\n return e === -2 || e === -1 || e === 32;\n}\nconst Ci = ye(new RegExp(\"\\\\p{P}|\\\\p{S}\", \"u\")), Ei = ye(/\\s/);\nfunction ye(e) {\n return n;\n function n(t) {\n return t !== null && t > -1 && e.test(String.fromCharCode(t));\n }\n}\nfunction ze(e) {\n const n = [];\n let t = -1, r = 0, i = 0;\n for (; ++t < e.length; ) {\n const l = e.charCodeAt(t);\n let o = \"\";\n if (l === 37 && ee(e.charCodeAt(t + 1)) && ee(e.charCodeAt(t + 2)))\n i = 2;\n else if (l < 128)\n /[!#$&-;=?-Z_a-z~]/.test(String.fromCharCode(l)) || (o = String.fromCharCode(l));\n else if (l > 55295 && l < 57344) {\n const a = e.charCodeAt(t + 1);\n l < 56320 && a > 56319 && a < 57344 ? (o = String.fromCharCode(l, a), i = 1) : o = \"�\";\n } else\n o = String.fromCharCode(l);\n o && (n.push(e.slice(r, t), encodeURIComponent(o)), r = t + i + 1, o = \"\"), i && (t += i, i = 0);\n }\n return n.join(\"\") + e.slice(r);\n}\nfunction V(e, n, t, r) {\n const i = r ? r - 1 : Number.POSITIVE_INFINITY;\n let l = 0;\n return o;\n function o(s) {\n return _(s) ? (e.enter(t), a(s)) : n(s);\n }\n function a(s) {\n return _(s) && l++ < i ? (e.consume(s), a) : (e.exit(t), n(s));\n }\n}\nconst Ii = {\n tokenize: Ai\n};\nfunction Ai(e) {\n const n = e.attempt(this.parser.constructs.contentInitial, r, i);\n let t;\n return n;\n function r(a) {\n if (a === null) {\n e.consume(a);\n return;\n }\n return e.enter(\"lineEnding\"), e.consume(a), e.exit(\"lineEnding\"), V(e, n, \"linePrefix\");\n }\n function i(a) {\n return e.enter(\"paragraph\"), l(a);\n }\n function l(a) {\n const s = e.enter(\"chunkText\", {\n contentType: \"text\",\n previous: t\n });\n return t && (t.next = s), t = s, o(a);\n }\n function o(a) {\n if (a === null) {\n e.exit(\"chunkText\"), e.exit(\"paragraph\"), e.consume(a);\n return;\n }\n return L(a) ? (e.consume(a), e.exit(\"chunkText\"), l) : (e.consume(a), o);\n }\n}\nconst Ti = {\n tokenize: Pi\n}, Zn = {\n tokenize: zi\n};\nfunction Pi(e) {\n const n = this, t = [];\n let r = 0, i, l, o;\n return a;\n function a(E) {\n if (r < t.length) {\n const N = t[r];\n return n.containerState = N[1], e.attempt(N[0].continuation, s, u)(E);\n }\n return u(E);\n }\n function s(E) {\n if (r++, n.containerState._closeFlow) {\n n.containerState._closeFlow = void 0, i && C();\n const N = n.events.length;\n let R = N, y;\n for (; R--; )\n if (n.events[R][0] === \"exit\" && n.events[R][1].type === \"chunkFlow\") {\n y = n.events[R][1].end;\n break;\n }\n x(r);\n let F = N;\n for (; F < n.events.length; )\n n.events[F][1].end = {\n ...y\n }, F++;\n return ce(n.events, R + 1, 0, n.events.slice(N)), n.events.length = F, u(E);\n }\n return a(E);\n }\n function u(E) {\n if (r === t.length) {\n if (!i)\n return d(E);\n if (i.currentConstruct && i.currentConstruct.concrete)\n return b(E);\n n.interrupt = !!(i.currentConstruct && !i._gfmTableDynamicInterruptHack);\n }\n return n.containerState = {}, e.check(Zn, c, f)(E);\n }\n function c(E) {\n return i && C(), x(r), d(E);\n }\n function f(E) {\n return n.parser.lazy[n.now().line] = r !== t.length, o = n.now().offset, b(E);\n }\n function d(E) {\n return n.containerState = {}, e.attempt(Zn, p, b)(E);\n }\n function p(E) {\n return r++, t.push([n.currentConstruct, n.containerState]), d(E);\n }\n function b(E) {\n if (E === null) {\n i && C(), x(0), e.consume(E);\n return;\n }\n return i = i || n.parser.flow(n.now()), e.enter(\"chunkFlow\", {\n _tokenizer: i,\n contentType: \"flow\",\n previous: l\n }), w(E);\n }\n function w(E) {\n if (E === null) {\n A(e.exit(\"chunkFlow\"), !0), x(0), e.consume(E);\n return;\n }\n return L(E) ? (e.consume(E), A(e.exit(\"chunkFlow\")), r = 0, n.interrupt = void 0, a) : (e.consume(E), w);\n }\n function A(E, N) {\n const R = n.sliceStream(E);\n if (N && R.push(null), E.previous = l, l && (l.next = E), l = E, i.defineSkip(E.start), i.write(R), n.parser.lazy[E.start.line]) {\n let y = i.events.length;\n for (; y--; )\n if (\n // The token starts before the line ending…\n i.events[y][1].start.offset < o && // …and either is not ended yet…\n (!i.events[y][1].end || // …or ends after it.\n i.events[y][1].end.offset > o)\n )\n return;\n const F = n.events.length;\n let q = F, B, j;\n for (; q--; )\n if (n.events[q][0] === \"exit\" && n.events[q][1].type === \"chunkFlow\") {\n if (B) {\n j = n.events[q][1].end;\n break;\n }\n B = !0;\n }\n for (x(r), y = F; y < n.events.length; )\n n.events[y][1].end = {\n ...j\n }, y++;\n ce(n.events, q + 1, 0, n.events.slice(F)), n.events.length = y;\n }\n }\n function x(E) {\n let N = t.length;\n for (; N-- > E; ) {\n const R = t[N];\n n.containerState = R[1], R[0].exit.call(n, e);\n }\n t.length = E;\n }\n function C() {\n i.write([null]), l = void 0, i = void 0, n.containerState._closeFlow = void 0;\n }\n}\nfunction zi(e, n, t) {\n return V(e, e.attempt(this.parser.constructs.document, n, t), \"linePrefix\", this.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4);\n}\nfunction et(e) {\n if (e === null || G(e) || Ei(e))\n return 1;\n if (Ci(e))\n return 2;\n}\nfunction zn(e, n, t) {\n const r = [];\n let i = -1;\n for (; ++i < e.length; ) {\n const l = e[i].resolveAll;\n l && !r.includes(l) && (n = l(n, t), r.push(l));\n }\n return n;\n}\nconst xn = {\n name: \"attention\",\n resolveAll: Li,\n tokenize: vi\n};\nfunction Li(e, n) {\n let t = -1, r, i, l, o, a, s, u, c;\n for (; ++t < e.length; )\n if (e[t][0] === \"enter\" && e[t][1].type === \"attentionSequence\" && e[t][1]._close) {\n for (r = t; r--; )\n if (e[r][0] === \"exit\" && e[r][1].type === \"attentionSequence\" && e[r][1]._open && // If the markers are the same:\n n.sliceSerialize(e[r][1]).charCodeAt(0) === n.sliceSerialize(e[t][1]).charCodeAt(0)) {\n if ((e[r][1]._close || e[t][1]._open) && (e[t][1].end.offset - e[t][1].start.offset) % 3 && !((e[r][1].end.offset - e[r][1].start.offset + e[t][1].end.offset - e[t][1].start.offset) % 3))\n continue;\n s = e[r][1].end.offset - e[r][1].start.offset > 1 && e[t][1].end.offset - e[t][1].start.offset > 1 ? 2 : 1;\n const f = {\n ...e[r][1].end\n }, d = {\n ...e[t][1].start\n };\n nt(f, -s), nt(d, s), o = {\n type: s > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: f,\n end: {\n ...e[r][1].end\n }\n }, a = {\n type: s > 1 ? \"strongSequence\" : \"emphasisSequence\",\n start: {\n ...e[t][1].start\n },\n end: d\n }, l = {\n type: s > 1 ? \"strongText\" : \"emphasisText\",\n start: {\n ...e[r][1].end\n },\n end: {\n ...e[t][1].start\n }\n }, i = {\n type: s > 1 ? \"strong\" : \"emphasis\",\n start: {\n ...o.start\n },\n end: {\n ...a.end\n }\n }, e[r][1].end = {\n ...o.start\n }, e[t][1].start = {\n ...a.end\n }, u = [], e[r][1].end.offset - e[r][1].start.offset && (u = ne(u, [[\"enter\", e[r][1], n], [\"exit\", e[r][1], n]])), u = ne(u, [[\"enter\", i, n], [\"enter\", o, n], [\"exit\", o, n], [\"enter\", l, n]]), u = ne(u, zn(n.parser.constructs.insideSpan.null, e.slice(r + 1, t), n)), u = ne(u, [[\"exit\", l, n], [\"enter\", a, n], [\"exit\", a, n], [\"exit\", i, n]]), e[t][1].end.offset - e[t][1].start.offset ? (c = 2, u = ne(u, [[\"enter\", e[t][1], n], [\"exit\", e[t][1], n]])) : c = 0, ce(e, r - 1, t - r + 3, u), t = r + u.length - c - 2;\n break;\n }\n }\n for (t = -1; ++t < e.length; )\n e[t][1].type === \"attentionSequence\" && (e[t][1].type = \"data\");\n return e;\n}\nfunction vi(e, n) {\n const t = this.parser.constructs.attentionMarkers.null, r = this.previous, i = et(r);\n let l;\n return o;\n function o(s) {\n return l = s, e.enter(\"attentionSequence\"), a(s);\n }\n function a(s) {\n if (s === l)\n return e.consume(s), a;\n const u = e.exit(\"attentionSequence\"), c = et(s), f = !c || c === 2 && i || t.includes(s), d = !i || i === 2 && c || t.includes(r);\n return u._open = !!(l === 42 ? f : f && (i || !d)), u._close = !!(l === 42 ? d : d && (c || !f)), n(s);\n }\n}\nfunction nt(e, n) {\n e.column += n, e.offset += n, e._bufferIndex += n;\n}\nconst Di = {\n name: \"autolink\",\n tokenize: Oi\n};\nfunction Oi(e, n, t) {\n let r = 0;\n return i;\n function i(p) {\n return e.enter(\"autolink\"), e.enter(\"autolinkMarker\"), e.consume(p), e.exit(\"autolinkMarker\"), e.enter(\"autolinkProtocol\"), l;\n }\n function l(p) {\n return se(p) ? (e.consume(p), o) : p === 64 ? t(p) : u(p);\n }\n function o(p) {\n return p === 43 || p === 45 || p === 46 || ee(p) ? (r = 1, a(p)) : u(p);\n }\n function a(p) {\n return p === 58 ? (e.consume(p), r = 0, s) : (p === 43 || p === 45 || p === 46 || ee(p)) && r++ < 32 ? (e.consume(p), a) : (r = 0, u(p));\n }\n function s(p) {\n return p === 62 ? (e.exit(\"autolinkProtocol\"), e.enter(\"autolinkMarker\"), e.consume(p), e.exit(\"autolinkMarker\"), e.exit(\"autolink\"), n) : p === null || p === 32 || p === 60 || gn(p) ? t(p) : (e.consume(p), s);\n }\n function u(p) {\n return p === 64 ? (e.consume(p), c) : bi(p) ? (e.consume(p), u) : t(p);\n }\n function c(p) {\n return ee(p) ? f(p) : t(p);\n }\n function f(p) {\n return p === 46 ? (e.consume(p), r = 0, c) : p === 62 ? (e.exit(\"autolinkProtocol\").type = \"autolinkEmail\", e.enter(\"autolinkMarker\"), e.consume(p), e.exit(\"autolinkMarker\"), e.exit(\"autolink\"), n) : d(p);\n }\n function d(p) {\n if ((p === 45 || ee(p)) && r++ < 63) {\n const b = p === 45 ? d : f;\n return e.consume(p), b;\n }\n return t(p);\n }\n}\nconst Ke = {\n partial: !0,\n tokenize: Ri\n};\nfunction Ri(e, n, t) {\n return r;\n function r(l) {\n return _(l) ? V(e, i, \"linePrefix\")(l) : i(l);\n }\n function i(l) {\n return l === null || L(l) ? n(l) : t(l);\n }\n}\nconst Ht = {\n continuation: {\n tokenize: Ni\n },\n exit: Mi,\n name: \"blockQuote\",\n tokenize: Fi\n};\nfunction Fi(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n if (o === 62) {\n const a = r.containerState;\n return a.open || (e.enter(\"blockQuote\", {\n _container: !0\n }), a.open = !0), e.enter(\"blockQuotePrefix\"), e.enter(\"blockQuoteMarker\"), e.consume(o), e.exit(\"blockQuoteMarker\"), l;\n }\n return t(o);\n }\n function l(o) {\n return _(o) ? (e.enter(\"blockQuotePrefixWhitespace\"), e.consume(o), e.exit(\"blockQuotePrefixWhitespace\"), e.exit(\"blockQuotePrefix\"), n) : (e.exit(\"blockQuotePrefix\"), n(o));\n }\n}\nfunction Ni(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return _(o) ? V(e, l, \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(o) : l(o);\n }\n function l(o) {\n return e.attempt(Ht, n, t)(o);\n }\n}\nfunction Mi(e) {\n e.exit(\"blockQuote\");\n}\nconst Ut = {\n name: \"characterEscape\",\n tokenize: _i\n};\nfunction _i(e, n, t) {\n return r;\n function r(l) {\n return e.enter(\"characterEscape\"), e.enter(\"escapeMarker\"), e.consume(l), e.exit(\"escapeMarker\"), i;\n }\n function i(l) {\n return Si(l) ? (e.enter(\"characterEscapeValue\"), e.consume(l), e.exit(\"characterEscapeValue\"), e.exit(\"characterEscape\"), n) : t(l);\n }\n}\nconst Vt = {\n name: \"characterReference\",\n tokenize: Bi\n};\nfunction Bi(e, n, t) {\n const r = this;\n let i = 0, l, o;\n return a;\n function a(f) {\n return e.enter(\"characterReference\"), e.enter(\"characterReferenceMarker\"), e.consume(f), e.exit(\"characterReferenceMarker\"), s;\n }\n function s(f) {\n return f === 35 ? (e.enter(\"characterReferenceMarkerNumeric\"), e.consume(f), e.exit(\"characterReferenceMarkerNumeric\"), u) : (e.enter(\"characterReferenceValue\"), l = 31, o = ee, c(f));\n }\n function u(f) {\n return f === 88 || f === 120 ? (e.enter(\"characterReferenceMarkerHexadecimal\"), e.consume(f), e.exit(\"characterReferenceMarkerHexadecimal\"), e.enter(\"characterReferenceValue\"), l = 6, o = wi, c) : (e.enter(\"characterReferenceValue\"), l = 7, o = yn, c(f));\n }\n function c(f) {\n if (f === 59 && i) {\n const d = e.exit(\"characterReferenceValue\");\n return o === ee && !Pn(r.sliceSerialize(d)) ? t(f) : (e.enter(\"characterReferenceMarker\"), e.consume(f), e.exit(\"characterReferenceMarker\"), e.exit(\"characterReference\"), n);\n }\n return o(f) && i++ < l ? (e.consume(f), c) : t(f);\n }\n}\nconst tt = {\n partial: !0,\n tokenize: Hi\n}, rt = {\n concrete: !0,\n name: \"codeFenced\",\n tokenize: ji\n};\nfunction ji(e, n, t) {\n const r = this, i = {\n partial: !0,\n tokenize: R\n };\n let l = 0, o = 0, a;\n return s;\n function s(y) {\n return u(y);\n }\n function u(y) {\n const F = r.events[r.events.length - 1];\n return l = F && F[1].type === \"linePrefix\" ? F[2].sliceSerialize(F[1], !0).length : 0, a = y, e.enter(\"codeFenced\"), e.enter(\"codeFencedFence\"), e.enter(\"codeFencedFenceSequence\"), c(y);\n }\n function c(y) {\n return y === a ? (o++, e.consume(y), c) : o < 3 ? t(y) : (e.exit(\"codeFencedFenceSequence\"), _(y) ? V(e, f, \"whitespace\")(y) : f(y));\n }\n function f(y) {\n return y === null || L(y) ? (e.exit(\"codeFencedFence\"), r.interrupt ? n(y) : e.check(tt, w, N)(y)) : (e.enter(\"codeFencedFenceInfo\"), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), d(y));\n }\n function d(y) {\n return y === null || L(y) ? (e.exit(\"chunkString\"), e.exit(\"codeFencedFenceInfo\"), f(y)) : _(y) ? (e.exit(\"chunkString\"), e.exit(\"codeFencedFenceInfo\"), V(e, p, \"whitespace\")(y)) : y === 96 && y === a ? t(y) : (e.consume(y), d);\n }\n function p(y) {\n return y === null || L(y) ? f(y) : (e.enter(\"codeFencedFenceMeta\"), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), b(y));\n }\n function b(y) {\n return y === null || L(y) ? (e.exit(\"chunkString\"), e.exit(\"codeFencedFenceMeta\"), f(y)) : y === 96 && y === a ? t(y) : (e.consume(y), b);\n }\n function w(y) {\n return e.attempt(i, N, A)(y);\n }\n function A(y) {\n return e.enter(\"lineEnding\"), e.consume(y), e.exit(\"lineEnding\"), x;\n }\n function x(y) {\n return l > 0 && _(y) ? V(e, C, \"linePrefix\", l + 1)(y) : C(y);\n }\n function C(y) {\n return y === null || L(y) ? e.check(tt, w, N)(y) : (e.enter(\"codeFlowValue\"), E(y));\n }\n function E(y) {\n return y === null || L(y) ? (e.exit(\"codeFlowValue\"), C(y)) : (e.consume(y), E);\n }\n function N(y) {\n return e.exit(\"codeFenced\"), n(y);\n }\n function R(y, F, q) {\n let B = 0;\n return j;\n function j(v) {\n return y.enter(\"lineEnding\"), y.consume(v), y.exit(\"lineEnding\"), z;\n }\n function z(v) {\n return y.enter(\"codeFencedFence\"), _(v) ? V(y, T, \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(v) : T(v);\n }\n function T(v) {\n return v === a ? (y.enter(\"codeFencedFenceSequence\"), P(v)) : q(v);\n }\n function P(v) {\n return v === a ? (B++, y.consume(v), P) : B >= o ? (y.exit(\"codeFencedFenceSequence\"), _(v) ? V(y, I, \"whitespace\")(v) : I(v)) : q(v);\n }\n function I(v) {\n return v === null || L(v) ? (y.exit(\"codeFencedFence\"), F(v)) : q(v);\n }\n }\n}\nfunction Hi(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return o === null ? t(o) : (e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), l);\n }\n function l(o) {\n return r.parser.lazy[r.now().line] ? t(o) : n(o);\n }\n}\nconst tn = {\n name: \"codeIndented\",\n tokenize: Vi\n}, Ui = {\n partial: !0,\n tokenize: qi\n};\nfunction Vi(e, n, t) {\n const r = this;\n return i;\n function i(u) {\n return e.enter(\"codeIndented\"), V(e, l, \"linePrefix\", 5)(u);\n }\n function l(u) {\n const c = r.events[r.events.length - 1];\n return c && c[1].type === \"linePrefix\" && c[2].sliceSerialize(c[1], !0).length >= 4 ? o(u) : t(u);\n }\n function o(u) {\n return u === null ? s(u) : L(u) ? e.attempt(Ui, o, s)(u) : (e.enter(\"codeFlowValue\"), a(u));\n }\n function a(u) {\n return u === null || L(u) ? (e.exit(\"codeFlowValue\"), o(u)) : (e.consume(u), a);\n }\n function s(u) {\n return e.exit(\"codeIndented\"), n(u);\n }\n}\nfunction qi(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return r.parser.lazy[r.now().line] ? t(o) : L(o) ? (e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), i) : V(e, l, \"linePrefix\", 5)(o);\n }\n function l(o) {\n const a = r.events[r.events.length - 1];\n return a && a[1].type === \"linePrefix\" && a[2].sliceSerialize(a[1], !0).length >= 4 ? n(o) : L(o) ? i(o) : t(o);\n }\n}\nconst $i = {\n name: \"codeText\",\n previous: Yi,\n resolve: Wi,\n tokenize: Qi\n};\nfunction Wi(e) {\n let n = e.length - 4, t = 3, r, i;\n if ((e[t][1].type === \"lineEnding\" || e[t][1].type === \"space\") && (e[n][1].type === \"lineEnding\" || e[n][1].type === \"space\")) {\n for (r = t; ++r < n; )\n if (e[r][1].type === \"codeTextData\") {\n e[t][1].type = \"codeTextPadding\", e[n][1].type = \"codeTextPadding\", t += 2, n -= 2;\n break;\n }\n }\n for (r = t - 1, n++; ++r <= n; )\n i === void 0 ? r !== n && e[r][1].type !== \"lineEnding\" && (i = r) : (r === n || e[r][1].type === \"lineEnding\") && (e[i][1].type = \"codeTextData\", r !== i + 2 && (e[i][1].end = e[r - 1][1].end, e.splice(i + 2, r - i - 2), n -= r - i - 2, r = i + 2), i = void 0);\n return e;\n}\nfunction Yi(e) {\n return e !== 96 || this.events[this.events.length - 1][1].type === \"characterEscape\";\n}\nfunction Qi(e, n, t) {\n let r = 0, i, l;\n return o;\n function o(f) {\n return e.enter(\"codeText\"), e.enter(\"codeTextSequence\"), a(f);\n }\n function a(f) {\n return f === 96 ? (e.consume(f), r++, a) : (e.exit(\"codeTextSequence\"), s(f));\n }\n function s(f) {\n return f === null ? t(f) : f === 32 ? (e.enter(\"space\"), e.consume(f), e.exit(\"space\"), s) : f === 96 ? (l = e.enter(\"codeTextSequence\"), i = 0, c(f)) : L(f) ? (e.enter(\"lineEnding\"), e.consume(f), e.exit(\"lineEnding\"), s) : (e.enter(\"codeTextData\"), u(f));\n }\n function u(f) {\n return f === null || f === 32 || f === 96 || L(f) ? (e.exit(\"codeTextData\"), s(f)) : (e.consume(f), u);\n }\n function c(f) {\n return f === 96 ? (e.consume(f), i++, c) : i === r ? (e.exit(\"codeTextSequence\"), e.exit(\"codeText\"), n(f)) : (l.type = \"codeTextData\", u(f));\n }\n}\nclass Xi {\n /**\n * @param {ReadonlyArray<T> | null | undefined} [initial]\n * Initial items (optional).\n * @returns\n * Splice buffer.\n */\n constructor(n) {\n this.left = n ? [...n] : [], this.right = [];\n }\n /**\n * Array access;\n * does not move the cursor.\n *\n * @param {number} index\n * Index.\n * @return {T}\n * Item.\n */\n get(n) {\n if (n < 0 || n >= this.left.length + this.right.length)\n throw new RangeError(\"Cannot access index `\" + n + \"` in a splice buffer of size `\" + (this.left.length + this.right.length) + \"`\");\n return n < this.left.length ? this.left[n] : this.right[this.right.length - n + this.left.length - 1];\n }\n /**\n * The length of the splice buffer, one greater than the largest index in the\n * array.\n */\n get length() {\n return this.left.length + this.right.length;\n }\n /**\n * Remove and return `list[0]`;\n * moves the cursor to `0`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n shift() {\n return this.setCursor(0), this.right.pop();\n }\n /**\n * Slice the buffer to get an array;\n * does not move the cursor.\n *\n * @param {number} start\n * Start.\n * @param {number | null | undefined} [end]\n * End (optional).\n * @returns {Array<T>}\n * Array of items.\n */\n slice(n, t) {\n const r = t ?? Number.POSITIVE_INFINITY;\n return r < this.left.length ? this.left.slice(n, r) : n > this.left.length ? this.right.slice(this.right.length - r + this.left.length, this.right.length - n + this.left.length).reverse() : this.left.slice(n).concat(this.right.slice(this.right.length - r + this.left.length).reverse());\n }\n /**\n * Mimics the behavior of Array.prototype.splice() except for the change of\n * interface necessary to avoid segfaults when patching in very large arrays.\n *\n * This operation moves cursor is moved to `start` and results in the cursor\n * placed after any inserted items.\n *\n * @param {number} start\n * Start;\n * zero-based index at which to start changing the array;\n * negative numbers count backwards from the end of the array and values\n * that are out-of bounds are clamped to the appropriate end of the array.\n * @param {number | null | undefined} [deleteCount=0]\n * Delete count (default: `0`);\n * maximum number of elements to delete, starting from start.\n * @param {Array<T> | null | undefined} [items=[]]\n * Items to include in place of the deleted items (default: `[]`).\n * @return {Array<T>}\n * Any removed items.\n */\n splice(n, t, r) {\n const i = t || 0;\n this.setCursor(Math.trunc(n));\n const l = this.right.splice(this.right.length - i, Number.POSITIVE_INFINITY);\n return r && Oe(this.left, r), l.reverse();\n }\n /**\n * Remove and return the highest-numbered item in the array, so\n * `list[list.length - 1]`;\n * Moves the cursor to `length`.\n *\n * @returns {T | undefined}\n * Item, optional.\n */\n pop() {\n return this.setCursor(Number.POSITIVE_INFINITY), this.left.pop();\n }\n /**\n * Inserts a single item to the high-numbered side of the array;\n * moves the cursor to `length`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n push(n) {\n this.setCursor(Number.POSITIVE_INFINITY), this.left.push(n);\n }\n /**\n * Inserts many items to the high-numbered side of the array.\n * Moves the cursor to `length`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n pushMany(n) {\n this.setCursor(Number.POSITIVE_INFINITY), Oe(this.left, n);\n }\n /**\n * Inserts a single item to the low-numbered side of the array;\n * Moves the cursor to `0`.\n *\n * @param {T} item\n * Item.\n * @returns {undefined}\n * Nothing.\n */\n unshift(n) {\n this.setCursor(0), this.right.push(n);\n }\n /**\n * Inserts many items to the low-numbered side of the array;\n * moves the cursor to `0`.\n *\n * @param {Array<T>} items\n * Items.\n * @returns {undefined}\n * Nothing.\n */\n unshiftMany(n) {\n this.setCursor(0), Oe(this.right, n.reverse());\n }\n /**\n * Move the cursor to a specific position in the array. Requires\n * time proportional to the distance moved.\n *\n * If `n < 0`, the cursor will end up at the beginning.\n * If `n > length`, the cursor will end up at the end.\n *\n * @param {number} n\n * Position.\n * @return {undefined}\n * Nothing.\n */\n setCursor(n) {\n if (!(n === this.left.length || n > this.left.length && this.right.length === 0 || n < 0 && this.left.length === 0))\n if (n < this.left.length) {\n const t = this.left.splice(n, Number.POSITIVE_INFINITY);\n Oe(this.right, t.reverse());\n } else {\n const t = this.right.splice(this.left.length + this.right.length - n, Number.POSITIVE_INFINITY);\n Oe(this.left, t.reverse());\n }\n }\n}\nfunction Oe(e, n) {\n let t = 0;\n if (n.length < 1e4)\n e.push(...n);\n else\n for (; t < n.length; )\n e.push(...n.slice(t, t + 1e4)), t += 1e4;\n}\nfunction qt(e) {\n const n = {};\n let t = -1, r, i, l, o, a, s, u;\n const c = new Xi(e);\n for (; ++t < c.length; ) {\n for (; t in n; )\n t = n[t];\n if (r = c.get(t), t && r[1].type === \"chunkFlow\" && c.get(t - 1)[1].type === \"listItemPrefix\" && (s = r[1]._tokenizer.events, l = 0, l < s.length && s[l][1].type === \"lineEndingBlank\" && (l += 2), l < s.length && s[l][1].type === \"content\"))\n for (; ++l < s.length && s[l][1].type !== \"content\"; )\n s[l][1].type === \"chunkText\" && (s[l][1]._isInFirstContentOfListItem = !0, l++);\n if (r[0] === \"enter\")\n r[1].contentType && (Object.assign(n, Ki(c, t)), t = n[t], u = !0);\n else if (r[1]._container) {\n for (l = t, i = void 0; l--; )\n if (o = c.get(l), o[1].type === \"lineEnding\" || o[1].type === \"lineEndingBlank\")\n o[0] === \"enter\" && (i && (c.get(i)[1].type = \"lineEndingBlank\"), o[1].type = \"lineEnding\", i = l);\n else if (o[1].type !== \"linePrefix\") break;\n i && (r[1].end = {\n ...c.get(i)[1].start\n }, a = c.slice(i, t), a.unshift(r), c.splice(i, t - i + 1, a));\n }\n }\n return ce(e, 0, Number.POSITIVE_INFINITY, c.slice(0)), !u;\n}\nfunction Ki(e, n) {\n const t = e.get(n)[1], r = e.get(n)[2];\n let i = n - 1;\n const l = [], o = t._tokenizer || r.parser[t.contentType](t.start), a = o.events, s = [], u = {};\n let c, f, d = -1, p = t, b = 0, w = 0;\n const A = [w];\n for (; p; ) {\n for (; e.get(++i)[1] !== p; )\n ;\n l.push(i), p._tokenizer || (c = r.sliceStream(p), p.next || c.push(null), f && o.defineSkip(p.start), p._isInFirstContentOfListItem && (o._gfmTasklistFirstContentOfListItem = !0), o.write(c), p._isInFirstContentOfListItem && (o._gfmTasklistFirstContentOfListItem = void 0)), f = p, p = p.next;\n }\n for (p = t; ++d < a.length; )\n // Find a void token that includes a break.\n a[d][0] === \"exit\" && a[d - 1][0] === \"enter\" && a[d][1].type === a[d - 1][1].type && a[d][1].start.line !== a[d][1].end.line && (w = d + 1, A.push(w), p._tokenizer = void 0, p.previous = void 0, p = p.next);\n for (o.events = [], p ? (p._tokenizer = void 0, p.previous = void 0) : A.pop(), d = A.length; d--; ) {\n const x = a.slice(A[d], A[d + 1]), C = l.pop();\n s.push([C, C + x.length - 1]), e.splice(C, 2, x);\n }\n for (s.reverse(), d = -1; ++d < s.length; )\n u[b + s[d][0]] = b + s[d][1], b += s[d][1] - s[d][0] - 1;\n return u;\n}\nconst Gi = {\n resolve: Zi,\n tokenize: el\n}, Ji = {\n partial: !0,\n tokenize: nl\n};\nfunction Zi(e) {\n return qt(e), e;\n}\nfunction el(e, n) {\n let t;\n return r;\n function r(a) {\n return e.enter(\"content\"), t = e.enter(\"chunkContent\", {\n contentType: \"content\"\n }), i(a);\n }\n function i(a) {\n return a === null ? l(a) : L(a) ? e.check(Ji, o, l)(a) : (e.consume(a), i);\n }\n function l(a) {\n return e.exit(\"chunkContent\"), e.exit(\"content\"), n(a);\n }\n function o(a) {\n return e.consume(a), e.exit(\"chunkContent\"), t.next = e.enter(\"chunkContent\", {\n contentType: \"content\",\n previous: t\n }), t = t.next, i;\n }\n}\nfunction nl(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return e.exit(\"chunkContent\"), e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), V(e, l, \"linePrefix\");\n }\n function l(o) {\n if (o === null || L(o))\n return t(o);\n const a = r.events[r.events.length - 1];\n return !r.parser.constructs.disable.null.includes(\"codeIndented\") && a && a[1].type === \"linePrefix\" && a[2].sliceSerialize(a[1], !0).length >= 4 ? n(o) : e.interrupt(r.parser.constructs.flow, t, n)(o);\n }\n}\nfunction $t(e, n, t, r, i, l, o, a, s) {\n const u = s || Number.POSITIVE_INFINITY;\n let c = 0;\n return f;\n function f(x) {\n return x === 60 ? (e.enter(r), e.enter(i), e.enter(l), e.consume(x), e.exit(l), d) : x === null || x === 32 || x === 41 || gn(x) ? t(x) : (e.enter(r), e.enter(o), e.enter(a), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), w(x));\n }\n function d(x) {\n return x === 62 ? (e.enter(l), e.consume(x), e.exit(l), e.exit(i), e.exit(r), n) : (e.enter(a), e.enter(\"chunkString\", {\n contentType: \"string\"\n }), p(x));\n }\n function p(x) {\n return x === 62 ? (e.exit(\"chunkString\"), e.exit(a), d(x)) : x === null || x === 60 || L(x) ? t(x) : (e.consume(x), x === 92 ? b : p);\n }\n function b(x) {\n return x === 60 || x === 62 || x === 92 ? (e.consume(x), p) : p(x);\n }\n function w(x) {\n return !c && (x === null || x === 41 || G(x)) ? (e.exit(\"chunkString\"), e.exit(a), e.exit(o), e.exit(r), n(x)) : c < u && x === 40 ? (e.consume(x), c++, w) : x === 41 ? (e.consume(x), c--, w) : x === null || x === 32 || x === 40 || gn(x) ? t(x) : (e.consume(x), x === 92 ? A : w);\n }\n function A(x) {\n return x === 40 || x === 41 || x === 92 ? (e.consume(x), w) : w(x);\n }\n}\nfunction Wt(e, n, t, r, i, l) {\n const o = this;\n let a = 0, s;\n return u;\n function u(p) {\n return e.enter(r), e.enter(i), e.consume(p), e.exit(i), e.enter(l), c;\n }\n function c(p) {\n return a > 999 || p === null || p === 91 || p === 93 && !s || // To do: remove in the future once we’ve switched from\n // `micromark-extension-footnote` to `micromark-extension-gfm-footnote`,\n // which doesn’t need this.\n // Hidden footnotes hook.\n /* c8 ignore next 3 */\n p === 94 && !a && \"_hiddenFootnoteSupport\" in o.parser.constructs ? t(p) : p === 93 ? (e.exit(l), e.enter(i), e.consume(p), e.exit(i), e.exit(r), n) : L(p) ? (e.enter(\"lineEnding\"), e.consume(p), e.exit(\"lineEnding\"), c) : (e.enter(\"chunkString\", {\n contentType: \"string\"\n }), f(p));\n }\n function f(p) {\n return p === null || p === 91 || p === 93 || L(p) || a++ > 999 ? (e.exit(\"chunkString\"), c(p)) : (e.consume(p), s || (s = !_(p)), p === 92 ? d : f);\n }\n function d(p) {\n return p === 91 || p === 92 || p === 93 ? (e.consume(p), a++, f) : f(p);\n }\n}\nfunction Yt(e, n, t, r, i, l) {\n let o;\n return a;\n function a(d) {\n return d === 34 || d === 39 || d === 40 ? (e.enter(r), e.enter(i), e.consume(d), e.exit(i), o = d === 40 ? 41 : d, s) : t(d);\n }\n function s(d) {\n return d === o ? (e.enter(i), e.consume(d), e.exit(i), e.exit(r), n) : (e.enter(l), u(d));\n }\n function u(d) {\n return d === o ? (e.exit(l), s(o)) : d === null ? t(d) : L(d) ? (e.enter(\"lineEnding\"), e.consume(d), e.exit(\"lineEnding\"), V(e, u, \"linePrefix\")) : (e.enter(\"chunkString\", {\n contentType: \"string\"\n }), c(d));\n }\n function c(d) {\n return d === o || d === null || L(d) ? (e.exit(\"chunkString\"), u(d)) : (e.consume(d), d === 92 ? f : c);\n }\n function f(d) {\n return d === o || d === 92 ? (e.consume(d), c) : c(d);\n }\n}\nfunction Ne(e, n) {\n let t;\n return r;\n function r(i) {\n return L(i) ? (e.enter(\"lineEnding\"), e.consume(i), e.exit(\"lineEnding\"), t = !0, r) : _(i) ? V(e, r, t ? \"linePrefix\" : \"lineSuffix\")(i) : n(i);\n }\n}\nconst tl = {\n name: \"definition\",\n tokenize: il\n}, rl = {\n partial: !0,\n tokenize: ll\n};\nfunction il(e, n, t) {\n const r = this;\n let i;\n return l;\n function l(p) {\n return e.enter(\"definition\"), o(p);\n }\n function o(p) {\n return Wt.call(\n r,\n e,\n a,\n // Note: we don’t need to reset the way `markdown-rs` does.\n t,\n \"definitionLabel\",\n \"definitionLabelMarker\",\n \"definitionLabelString\"\n )(p);\n }\n function a(p) {\n return i = Te(r.sliceSerialize(r.events[r.events.length - 1][1]).slice(1, -1)), p === 58 ? (e.enter(\"definitionMarker\"), e.consume(p), e.exit(\"definitionMarker\"), s) : t(p);\n }\n function s(p) {\n return G(p) ? Ne(e, u)(p) : u(p);\n }\n function u(p) {\n return $t(\n e,\n c,\n // Note: we don’t need to reset the way `markdown-rs` does.\n t,\n \"definitionDestination\",\n \"definitionDestinationLiteral\",\n \"definitionDestinationLiteralMarker\",\n \"definitionDestinationRaw\",\n \"definitionDestinationString\"\n )(p);\n }\n function c(p) {\n return e.attempt(rl, f, f)(p);\n }\n function f(p) {\n return _(p) ? V(e, d, \"whitespace\")(p) : d(p);\n }\n function d(p) {\n return p === null || L(p) ? (e.exit(\"definition\"), r.parser.defined.push(i), n(p)) : t(p);\n }\n}\nfunction ll(e, n, t) {\n return r;\n function r(a) {\n return G(a) ? Ne(e, i)(a) : t(a);\n }\n function i(a) {\n return Yt(e, l, t, \"definitionTitle\", \"definitionTitleMarker\", \"definitionTitleString\")(a);\n }\n function l(a) {\n return _(a) ? V(e, o, \"whitespace\")(a) : o(a);\n }\n function o(a) {\n return a === null || L(a) ? n(a) : t(a);\n }\n}\nconst ol = {\n name: \"hardBreakEscape\",\n tokenize: al\n};\nfunction al(e, n, t) {\n return r;\n function r(l) {\n return e.enter(\"hardBreakEscape\"), e.consume(l), i;\n }\n function i(l) {\n return L(l) ? (e.exit(\"hardBreakEscape\"), n(l)) : t(l);\n }\n}\nconst ul = {\n name: \"headingAtx\",\n resolve: sl,\n tokenize: cl\n};\nfunction sl(e, n) {\n let t = e.length - 2, r = 3, i, l;\n return e[r][1].type === \"whitespace\" && (r += 2), t - 2 > r && e[t][1].type === \"whitespace\" && (t -= 2), e[t][1].type === \"atxHeadingSequence\" && (r === t - 1 || t - 4 > r && e[t - 2][1].type === \"whitespace\") && (t -= r + 1 === t ? 2 : 4), t > r && (i = {\n type: \"atxHeadingText\",\n start: e[r][1].start,\n end: e[t][1].end\n }, l = {\n type: \"chunkText\",\n start: e[r][1].start,\n end: e[t][1].end,\n contentType: \"text\"\n }, ce(e, r, t - r + 1, [[\"enter\", i, n], [\"enter\", l, n], [\"exit\", l, n], [\"exit\", i, n]])), e;\n}\nfunction cl(e, n, t) {\n let r = 0;\n return i;\n function i(c) {\n return e.enter(\"atxHeading\"), l(c);\n }\n function l(c) {\n return e.enter(\"atxHeadingSequence\"), o(c);\n }\n function o(c) {\n return c === 35 && r++ < 6 ? (e.consume(c), o) : c === null || G(c) ? (e.exit(\"atxHeadingSequence\"), a(c)) : t(c);\n }\n function a(c) {\n return c === 35 ? (e.enter(\"atxHeadingSequence\"), s(c)) : c === null || L(c) ? (e.exit(\"atxHeading\"), n(c)) : _(c) ? V(e, a, \"whitespace\")(c) : (e.enter(\"atxHeadingText\"), u(c));\n }\n function s(c) {\n return c === 35 ? (e.consume(c), s) : (e.exit(\"atxHeadingSequence\"), a(c));\n }\n function u(c) {\n return c === null || c === 35 || G(c) ? (e.exit(\"atxHeadingText\"), a(c)) : (e.consume(c), u);\n }\n}\nconst pl = [\n \"address\",\n \"article\",\n \"aside\",\n \"base\",\n \"basefont\",\n \"blockquote\",\n \"body\",\n \"caption\",\n \"center\",\n \"col\",\n \"colgroup\",\n \"dd\",\n \"details\",\n \"dialog\",\n \"dir\",\n \"div\",\n \"dl\",\n \"dt\",\n \"fieldset\",\n \"figcaption\",\n \"figure\",\n \"footer\",\n \"form\",\n \"frame\",\n \"frameset\",\n \"h1\",\n \"h2\",\n \"h3\",\n \"h4\",\n \"h5\",\n \"h6\",\n \"head\",\n \"header\",\n \"hr\",\n \"html\",\n \"iframe\",\n \"legend\",\n \"li\",\n \"link\",\n \"main\",\n \"menu\",\n \"menuitem\",\n \"nav\",\n \"noframes\",\n \"ol\",\n \"optgroup\",\n \"option\",\n \"p\",\n \"param\",\n \"search\",\n \"section\",\n \"summary\",\n \"table\",\n \"tbody\",\n \"td\",\n \"tfoot\",\n \"th\",\n \"thead\",\n \"title\",\n \"tr\",\n \"track\",\n \"ul\"\n], it = [\"pre\", \"script\", \"style\", \"textarea\"], fl = {\n concrete: !0,\n name: \"htmlFlow\",\n resolveTo: dl,\n tokenize: gl\n}, hl = {\n partial: !0,\n tokenize: xl\n}, ml = {\n partial: !0,\n tokenize: yl\n};\nfunction dl(e) {\n let n = e.length;\n for (; n-- && !(e[n][0] === \"enter\" && e[n][1].type === \"htmlFlow\"); )\n ;\n return n > 1 && e[n - 2][1].type === \"linePrefix\" && (e[n][1].start = e[n - 2][1].start, e[n + 1][1].start = e[n - 2][1].start, e.splice(n - 2, 2)), e;\n}\nfunction gl(e, n, t) {\n const r = this;\n let i, l, o, a, s;\n return u;\n function u(m) {\n return c(m);\n }\n function c(m) {\n return e.enter(\"htmlFlow\"), e.enter(\"htmlFlowData\"), e.consume(m), f;\n }\n function f(m) {\n return m === 33 ? (e.consume(m), d) : m === 47 ? (e.consume(m), l = !0, w) : m === 63 ? (e.consume(m), i = 3, r.interrupt ? n : h) : se(m) ? (e.consume(m), o = String.fromCharCode(m), A) : t(m);\n }\n function d(m) {\n return m === 45 ? (e.consume(m), i = 2, p) : m === 91 ? (e.consume(m), i = 5, a = 0, b) : se(m) ? (e.consume(m), i = 4, r.interrupt ? n : h) : t(m);\n }\n function p(m) {\n return m === 45 ? (e.consume(m), r.interrupt ? n : h) : t(m);\n }\n function b(m) {\n const le = \"CDATA[\";\n return m === le.charCodeAt(a++) ? (e.consume(m), a === le.length ? r.interrupt ? n : T : b) : t(m);\n }\n function w(m) {\n return se(m) ? (e.consume(m), o = String.fromCharCode(m), A) : t(m);\n }\n function A(m) {\n if (m === null || m === 47 || m === 62 || G(m)) {\n const le = m === 47, xe = o.toLowerCase();\n return !le && !l && it.includes(xe) ? (i = 1, r.interrupt ? n(m) : T(m)) : pl.includes(o.toLowerCase()) ? (i = 6, le ? (e.consume(m), x) : r.interrupt ? n(m) : T(m)) : (i = 7, r.interrupt && !r.parser.lazy[r.now().line] ? t(m) : l ? C(m) : E(m));\n }\n return m === 45 || ee(m) ? (e.consume(m), o += String.fromCharCode(m), A) : t(m);\n }\n function x(m) {\n return m === 62 ? (e.consume(m), r.interrupt ? n : T) : t(m);\n }\n function C(m) {\n return _(m) ? (e.consume(m), C) : j(m);\n }\n function E(m) {\n return m === 47 ? (e.consume(m), j) : m === 58 || m === 95 || se(m) ? (e.consume(m), N) : _(m) ? (e.consume(m), E) : j(m);\n }\n function N(m) {\n return m === 45 || m === 46 || m === 58 || m === 95 || ee(m) ? (e.consume(m), N) : R(m);\n }\n function R(m) {\n return m === 61 ? (e.consume(m), y) : _(m) ? (e.consume(m), R) : E(m);\n }\n function y(m) {\n return m === null || m === 60 || m === 61 || m === 62 || m === 96 ? t(m) : m === 34 || m === 39 ? (e.consume(m), s = m, F) : _(m) ? (e.consume(m), y) : q(m);\n }\n function F(m) {\n return m === s ? (e.consume(m), s = null, B) : m === null || L(m) ? t(m) : (e.consume(m), F);\n }\n function q(m) {\n return m === null || m === 34 || m === 39 || m === 47 || m === 60 || m === 61 || m === 62 || m === 96 || G(m) ? R(m) : (e.consume(m), q);\n }\n function B(m) {\n return m === 47 || m === 62 || _(m) ? E(m) : t(m);\n }\n function j(m) {\n return m === 62 ? (e.consume(m), z) : t(m);\n }\n function z(m) {\n return m === null || L(m) ? T(m) : _(m) ? (e.consume(m), z) : t(m);\n }\n function T(m) {\n return m === 45 && i === 2 ? (e.consume(m), W) : m === 60 && i === 1 ? (e.consume(m), Y) : m === 62 && i === 4 ? (e.consume(m), ie) : m === 63 && i === 3 ? (e.consume(m), h) : m === 93 && i === 5 ? (e.consume(m), pe) : L(m) && (i === 6 || i === 7) ? (e.exit(\"htmlFlowData\"), e.check(hl, fe, P)(m)) : m === null || L(m) ? (e.exit(\"htmlFlowData\"), P(m)) : (e.consume(m), T);\n }\n function P(m) {\n return e.check(ml, I, fe)(m);\n }\n function I(m) {\n return e.enter(\"lineEnding\"), e.consume(m), e.exit(\"lineEnding\"), v;\n }\n function v(m) {\n return m === null || L(m) ? P(m) : (e.enter(\"htmlFlowData\"), T(m));\n }\n function W(m) {\n return m === 45 ? (e.consume(m), h) : T(m);\n }\n function Y(m) {\n return m === 47 ? (e.consume(m), o = \"\", re) : T(m);\n }\n function re(m) {\n if (m === 62) {\n const le = o.toLowerCase();\n return it.includes(le) ? (e.consume(m), ie) : T(m);\n }\n return se(m) && o.length < 8 ? (e.consume(m), o += String.fromCharCode(m), re) : T(m);\n }\n function pe(m) {\n return m === 93 ? (e.consume(m), h) : T(m);\n }\n function h(m) {\n return m === 62 ? (e.consume(m), ie) : m === 45 && i === 2 ? (e.consume(m), h) : T(m);\n }\n function ie(m) {\n return m === null || L(m) ? (e.exit(\"htmlFlowData\"), fe(m)) : (e.consume(m), ie);\n }\n function fe(m) {\n return e.exit(\"htmlFlow\"), n(m);\n }\n}\nfunction yl(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return L(o) ? (e.enter(\"lineEnding\"), e.consume(o), e.exit(\"lineEnding\"), l) : t(o);\n }\n function l(o) {\n return r.parser.lazy[r.now().line] ? t(o) : n(o);\n }\n}\nfunction xl(e, n, t) {\n return r;\n function r(i) {\n return e.enter(\"lineEnding\"), e.consume(i), e.exit(\"lineEnding\"), e.attempt(Ke, n, t);\n }\n}\nconst kl = {\n name: \"htmlText\",\n tokenize: bl\n};\nfunction bl(e, n, t) {\n const r = this;\n let i, l, o;\n return a;\n function a(h) {\n return e.enter(\"htmlText\"), e.enter(\"htmlTextData\"), e.consume(h), s;\n }\n function s(h) {\n return h === 33 ? (e.consume(h), u) : h === 47 ? (e.consume(h), R) : h === 63 ? (e.consume(h), E) : se(h) ? (e.consume(h), q) : t(h);\n }\n function u(h) {\n return h === 45 ? (e.consume(h), c) : h === 91 ? (e.consume(h), l = 0, b) : se(h) ? (e.consume(h), C) : t(h);\n }\n function c(h) {\n return h === 45 ? (e.consume(h), p) : t(h);\n }\n function f(h) {\n return h === null ? t(h) : h === 45 ? (e.consume(h), d) : L(h) ? (o = f, Y(h)) : (e.consume(h), f);\n }\n function d(h) {\n return h === 45 ? (e.consume(h), p) : f(h);\n }\n function p(h) {\n return h === 62 ? W(h) : h === 45 ? d(h) : f(h);\n }\n function b(h) {\n const ie = \"CDATA[\";\n return h === ie.charCodeAt(l++) ? (e.consume(h), l === ie.length ? w : b) : t(h);\n }\n function w(h) {\n return h === null ? t(h) : h === 93 ? (e.consume(h), A) : L(h) ? (o = w, Y(h)) : (e.consume(h), w);\n }\n function A(h) {\n return h === 93 ? (e.consume(h), x) : w(h);\n }\n function x(h) {\n return h === 62 ? W(h) : h === 93 ? (e.consume(h), x) : w(h);\n }\n function C(h) {\n return h === null || h === 62 ? W(h) : L(h) ? (o = C, Y(h)) : (e.consume(h), C);\n }\n function E(h) {\n return h === null ? t(h) : h === 63 ? (e.consume(h), N) : L(h) ? (o = E, Y(h)) : (e.consume(h), E);\n }\n function N(h) {\n return h === 62 ? W(h) : E(h);\n }\n function R(h) {\n return se(h) ? (e.consume(h), y) : t(h);\n }\n function y(h) {\n return h === 45 || ee(h) ? (e.consume(h), y) : F(h);\n }\n function F(h) {\n return L(h) ? (o = F, Y(h)) : _(h) ? (e.consume(h), F) : W(h);\n }\n function q(h) {\n return h === 45 || ee(h) ? (e.consume(h), q) : h === 47 || h === 62 || G(h) ? B(h) : t(h);\n }\n function B(h) {\n return h === 47 ? (e.consume(h), W) : h === 58 || h === 95 || se(h) ? (e.consume(h), j) : L(h) ? (o = B, Y(h)) : _(h) ? (e.consume(h), B) : W(h);\n }\n function j(h) {\n return h === 45 || h === 46 || h === 58 || h === 95 || ee(h) ? (e.consume(h), j) : z(h);\n }\n function z(h) {\n return h === 61 ? (e.consume(h), T) : L(h) ? (o = z, Y(h)) : _(h) ? (e.consume(h), z) : B(h);\n }\n function T(h) {\n return h === null || h === 60 || h === 61 || h === 62 || h === 96 ? t(h) : h === 34 || h === 39 ? (e.consume(h), i = h, P) : L(h) ? (o = T, Y(h)) : _(h) ? (e.consume(h), T) : (e.consume(h), I);\n }\n function P(h) {\n return h === i ? (e.consume(h), i = void 0, v) : h === null ? t(h) : L(h) ? (o = P, Y(h)) : (e.consume(h), P);\n }\n function I(h) {\n return h === null || h === 34 || h === 39 || h === 60 || h === 61 || h === 96 ? t(h) : h === 47 || h === 62 || G(h) ? B(h) : (e.consume(h), I);\n }\n function v(h) {\n return h === 47 || h === 62 || G(h) ? B(h) : t(h);\n }\n function W(h) {\n return h === 62 ? (e.consume(h), e.exit(\"htmlTextData\"), e.exit(\"htmlText\"), n) : t(h);\n }\n function Y(h) {\n return e.exit(\"htmlTextData\"), e.enter(\"lineEnding\"), e.consume(h), e.exit(\"lineEnding\"), re;\n }\n function re(h) {\n return _(h) ? V(e, pe, \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(h) : pe(h);\n }\n function pe(h) {\n return e.enter(\"htmlTextData\"), o(h);\n }\n}\nconst Ln = {\n name: \"labelEnd\",\n resolveAll: El,\n resolveTo: Il,\n tokenize: Al\n}, wl = {\n tokenize: Tl\n}, Sl = {\n tokenize: Pl\n}, Cl = {\n tokenize: zl\n};\nfunction El(e) {\n let n = -1;\n const t = [];\n for (; ++n < e.length; ) {\n const r = e[n][1];\n if (t.push(e[n]), r.type === \"labelImage\" || r.type === \"labelLink\" || r.type === \"labelEnd\") {\n const i = r.type === \"labelImage\" ? 4 : 2;\n r.type = \"data\", n += i;\n }\n }\n return e.length !== t.length && ce(e, 0, e.length, t), e;\n}\nfunction Il(e, n) {\n let t = e.length, r = 0, i, l, o, a;\n for (; t--; )\n if (i = e[t][1], l) {\n if (i.type === \"link\" || i.type === \"labelLink\" && i._inactive)\n break;\n e[t][0] === \"enter\" && i.type === \"labelLink\" && (i._inactive = !0);\n } else if (o) {\n if (e[t][0] === \"enter\" && (i.type === \"labelImage\" || i.type === \"labelLink\") && !i._balanced && (l = t, i.type !== \"labelLink\")) {\n r = 2;\n break;\n }\n } else i.type === \"labelEnd\" && (o = t);\n const s = {\n type: e[l][1].type === \"labelLink\" ? \"link\" : \"image\",\n start: {\n ...e[l][1].start\n },\n end: {\n ...e[e.length - 1][1].end\n }\n }, u = {\n type: \"label\",\n start: {\n ...e[l][1].start\n },\n end: {\n ...e[o][1].end\n }\n }, c = {\n type: \"labelText\",\n start: {\n ...e[l + r + 2][1].end\n },\n end: {\n ...e[o - 2][1].start\n }\n };\n return a = [[\"enter\", s, n], [\"enter\", u, n]], a = ne(a, e.slice(l + 1, l + r + 3)), a = ne(a, [[\"enter\", c, n]]), a = ne(a, zn(n.parser.constructs.insideSpan.null, e.slice(l + r + 4, o - 3), n)), a = ne(a, [[\"exit\", c, n], e[o - 2], e[o - 1], [\"exit\", u, n]]), a = ne(a, e.slice(o + 1)), a = ne(a, [[\"exit\", s, n]]), ce(e, l, e.length, a), e;\n}\nfunction Al(e, n, t) {\n const r = this;\n let i = r.events.length, l, o;\n for (; i--; )\n if ((r.events[i][1].type === \"labelImage\" || r.events[i][1].type === \"labelLink\") && !r.events[i][1]._balanced) {\n l = r.events[i][1];\n break;\n }\n return a;\n function a(d) {\n return l ? l._inactive ? f(d) : (o = r.parser.defined.includes(Te(r.sliceSerialize({\n start: l.end,\n end: r.now()\n }))), e.enter(\"labelEnd\"), e.enter(\"labelMarker\"), e.consume(d), e.exit(\"labelMarker\"), e.exit(\"labelEnd\"), s) : t(d);\n }\n function s(d) {\n return d === 40 ? e.attempt(wl, c, o ? c : f)(d) : d === 91 ? e.attempt(Sl, c, o ? u : f)(d) : o ? c(d) : f(d);\n }\n function u(d) {\n return e.attempt(Cl, c, f)(d);\n }\n function c(d) {\n return n(d);\n }\n function f(d) {\n return l._balanced = !0, t(d);\n }\n}\nfunction Tl(e, n, t) {\n return r;\n function r(f) {\n return e.enter(\"resource\"), e.enter(\"resourceMarker\"), e.consume(f), e.exit(\"resourceMarker\"), i;\n }\n function i(f) {\n return G(f) ? Ne(e, l)(f) : l(f);\n }\n function l(f) {\n return f === 41 ? c(f) : $t(e, o, a, \"resourceDestination\", \"resourceDestinationLiteral\", \"resourceDestinationLiteralMarker\", \"resourceDestinationRaw\", \"resourceDestinationString\", 32)(f);\n }\n function o(f) {\n return G(f) ? Ne(e, s)(f) : c(f);\n }\n function a(f) {\n return t(f);\n }\n function s(f) {\n return f === 34 || f === 39 || f === 40 ? Yt(e, u, t, \"resourceTitle\", \"resourceTitleMarker\", \"resourceTitleString\")(f) : c(f);\n }\n function u(f) {\n return G(f) ? Ne(e, c)(f) : c(f);\n }\n function c(f) {\n return f === 41 ? (e.enter(\"resourceMarker\"), e.consume(f), e.exit(\"resourceMarker\"), e.exit(\"resource\"), n) : t(f);\n }\n}\nfunction Pl(e, n, t) {\n const r = this;\n return i;\n function i(a) {\n return Wt.call(r, e, l, o, \"reference\", \"referenceMarker\", \"referenceString\")(a);\n }\n function l(a) {\n return r.parser.defined.includes(Te(r.sliceSerialize(r.events[r.events.length - 1][1]).slice(1, -1))) ? n(a) : t(a);\n }\n function o(a) {\n return t(a);\n }\n}\nfunction zl(e, n, t) {\n return r;\n function r(l) {\n return e.enter(\"reference\"), e.enter(\"referenceMarker\"), e.consume(l), e.exit(\"referenceMarker\"), i;\n }\n function i(l) {\n return l === 93 ? (e.enter(\"referenceMarker\"), e.consume(l), e.exit(\"referenceMarker\"), e.exit(\"reference\"), n) : t(l);\n }\n}\nconst Ll = {\n name: \"labelStartImage\",\n resolveAll: Ln.resolveAll,\n tokenize: vl\n};\nfunction vl(e, n, t) {\n const r = this;\n return i;\n function i(a) {\n return e.enter(\"labelImage\"), e.enter(\"labelImageMarker\"), e.consume(a), e.exit(\"labelImageMarker\"), l;\n }\n function l(a) {\n return a === 91 ? (e.enter(\"labelMarker\"), e.consume(a), e.exit(\"labelMarker\"), e.exit(\"labelImage\"), o) : t(a);\n }\n function o(a) {\n return a === 94 && \"_hiddenFootnoteSupport\" in r.parser.constructs ? t(a) : n(a);\n }\n}\nconst Dl = {\n name: \"labelStartLink\",\n resolveAll: Ln.resolveAll,\n tokenize: Ol\n};\nfunction Ol(e, n, t) {\n const r = this;\n return i;\n function i(o) {\n return e.enter(\"labelLink\"), e.enter(\"labelMarker\"), e.consume(o), e.exit(\"labelMarker\"), e.exit(\"labelLink\"), l;\n }\n function l(o) {\n return o === 94 && \"_hiddenFootnoteSupport\" in r.parser.constructs ? t(o) : n(o);\n }\n}\nconst rn = {\n name: \"lineEnding\",\n tokenize: Rl\n};\nfunction Rl(e, n) {\n return t;\n function t(r) {\n return e.enter(\"lineEnding\"), e.consume(r), e.exit(\"lineEnding\"), V(e, n, \"linePrefix\");\n }\n}\nconst Ye = {\n name: \"thematicBreak\",\n tokenize: Fl\n};\nfunction Fl(e, n, t) {\n let r = 0, i;\n return l;\n function l(u) {\n return e.enter(\"thematicBreak\"), o(u);\n }\n function o(u) {\n return i = u, a(u);\n }\n function a(u) {\n return u === i ? (e.enter(\"thematicBreakSequence\"), s(u)) : r >= 3 && (u === null || L(u)) ? (e.exit(\"thematicBreak\"), n(u)) : t(u);\n }\n function s(u) {\n return u === i ? (e.consume(u), r++, s) : (e.exit(\"thematicBreakSequence\"), _(u) ? V(e, a, \"whitespace\")(u) : a(u));\n }\n}\nconst K = {\n continuation: {\n tokenize: Bl\n },\n exit: Hl,\n name: \"list\",\n tokenize: _l\n}, Nl = {\n partial: !0,\n tokenize: Ul\n}, Ml = {\n partial: !0,\n tokenize: jl\n};\nfunction _l(e, n, t) {\n const r = this, i = r.events[r.events.length - 1];\n let l = i && i[1].type === \"linePrefix\" ? i[2].sliceSerialize(i[1], !0).length : 0, o = 0;\n return a;\n function a(p) {\n const b = r.containerState.type || (p === 42 || p === 43 || p === 45 ? \"listUnordered\" : \"listOrdered\");\n if (b === \"listUnordered\" ? !r.containerState.marker || p === r.containerState.marker : yn(p)) {\n if (r.containerState.type || (r.containerState.type = b, e.enter(b, {\n _container: !0\n })), b === \"listUnordered\")\n return e.enter(\"listItemPrefix\"), p === 42 || p === 45 ? e.check(Ye, t, u)(p) : u(p);\n if (!r.interrupt || p === 49)\n return e.enter(\"listItemPrefix\"), e.enter(\"listItemValue\"), s(p);\n }\n return t(p);\n }\n function s(p) {\n return yn(p) && ++o < 10 ? (e.consume(p), s) : (!r.interrupt || o < 2) && (r.containerState.marker ? p === r.containerState.marker : p === 41 || p === 46) ? (e.exit(\"listItemValue\"), u(p)) : t(p);\n }\n function u(p) {\n return e.enter(\"listItemMarker\"), e.consume(p), e.exit(\"listItemMarker\"), r.containerState.marker = r.containerState.marker || p, e.check(\n Ke,\n // Can’t be empty when interrupting.\n r.interrupt ? t : c,\n e.attempt(Nl, d, f)\n );\n }\n function c(p) {\n return r.containerState.initialBlankLine = !0, l++, d(p);\n }\n function f(p) {\n return _(p) ? (e.enter(\"listItemPrefixWhitespace\"), e.consume(p), e.exit(\"listItemPrefixWhitespace\"), d) : t(p);\n }\n function d(p) {\n return r.containerState.size = l + r.sliceSerialize(e.exit(\"listItemPrefix\"), !0).length, n(p);\n }\n}\nfunction Bl(e, n, t) {\n const r = this;\n return r.containerState._closeFlow = void 0, e.check(Ke, i, l);\n function i(a) {\n return r.containerState.furtherBlankLines = r.containerState.furtherBlankLines || r.containerState.initialBlankLine, V(e, n, \"listItemIndent\", r.containerState.size + 1)(a);\n }\n function l(a) {\n return r.containerState.furtherBlankLines || !_(a) ? (r.containerState.furtherBlankLines = void 0, r.containerState.initialBlankLine = void 0, o(a)) : (r.containerState.furtherBlankLines = void 0, r.containerState.initialBlankLine = void 0, e.attempt(Ml, n, o)(a));\n }\n function o(a) {\n return r.containerState._closeFlow = !0, r.interrupt = void 0, V(e, e.attempt(K, n, t), \"linePrefix\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 4)(a);\n }\n}\nfunction jl(e, n, t) {\n const r = this;\n return V(e, i, \"listItemIndent\", r.containerState.size + 1);\n function i(l) {\n const o = r.events[r.events.length - 1];\n return o && o[1].type === \"listItemIndent\" && o[2].sliceSerialize(o[1], !0).length === r.containerState.size ? n(l) : t(l);\n }\n}\nfunction Hl(e) {\n e.exit(this.containerState.type);\n}\nfunction Ul(e, n, t) {\n const r = this;\n return V(e, i, \"listItemPrefixWhitespace\", r.parser.constructs.disable.null.includes(\"codeIndented\") ? void 0 : 5);\n function i(l) {\n const o = r.events[r.events.length - 1];\n return !_(l) && o && o[1].type === \"listItemPrefixWhitespace\" ? n(l) : t(l);\n }\n}\nconst lt = {\n name: \"setextUnderline\",\n resolveTo: Vl,\n tokenize: ql\n};\nfunction Vl(e, n) {\n let t = e.length, r, i, l;\n for (; t--; )\n if (e[t][0] === \"enter\") {\n if (e[t][1].type === \"content\") {\n r = t;\n break;\n }\n e[t][1].type === \"paragraph\" && (i = t);\n } else\n e[t][1].type === \"content\" && e.splice(t, 1), !l && e[t][1].type === \"definition\" && (l = t);\n const o = {\n type: \"setextHeading\",\n start: {\n ...e[i][1].start\n },\n end: {\n ...e[e.length - 1][1].end\n }\n };\n return e[i][1].type = \"setextHeadingText\", l ? (e.splice(i, 0, [\"enter\", o, n]), e.splice(l + 1, 0, [\"exit\", e[r][1], n]), e[r][1].end = {\n ...e[l][1].end\n }) : e[r][1] = o, e.push([\"exit\", o, n]), e;\n}\nfunction ql(e, n, t) {\n const r = this;\n let i;\n return l;\n function l(u) {\n let c = r.events.length, f;\n for (; c--; )\n if (r.events[c][1].type !== \"lineEnding\" && r.events[c][1].type !== \"linePrefix\" && r.events[c][1].type !== \"content\") {\n f = r.events[c][1].type === \"paragraph\";\n break;\n }\n return !r.parser.lazy[r.now().line] && (r.interrupt || f) ? (e.enter(\"setextHeadingLine\"), i = u, o(u)) : t(u);\n }\n function o(u) {\n return e.enter(\"setextHeadingLineSequence\"), a(u);\n }\n function a(u) {\n return u === i ? (e.consume(u), a) : (e.exit(\"setextHeadingLineSequence\"), _(u) ? V(e, s, \"lineSuffix\")(u) : s(u));\n }\n function s(u) {\n return u === null || L(u) ? (e.exit(\"setextHeadingLine\"), n(u)) : t(u);\n }\n}\nconst $l = {\n tokenize: Wl\n};\nfunction Wl(e) {\n const n = this, t = e.attempt(\n // Try to parse a blank line.\n Ke,\n r,\n // Try to parse initial flow (essentially, only code).\n e.attempt(this.parser.constructs.flowInitial, i, V(e, e.attempt(this.parser.constructs.flow, i, e.attempt(Gi, i)), \"linePrefix\"))\n );\n return t;\n function r(l) {\n if (l === null) {\n e.consume(l);\n return;\n }\n return e.enter(\"lineEndingBlank\"), e.consume(l), e.exit(\"lineEndingBlank\"), n.currentConstruct = void 0, t;\n }\n function i(l) {\n if (l === null) {\n e.consume(l);\n return;\n }\n return e.enter(\"lineEnding\"), e.consume(l), e.exit(\"lineEnding\"), n.currentConstruct = void 0, t;\n }\n}\nconst Yl = {\n resolveAll: Xt()\n}, Ql = Qt(\"string\"), Xl = Qt(\"text\");\nfunction Qt(e) {\n return {\n resolveAll: Xt(e === \"text\" ? Kl : void 0),\n tokenize: n\n };\n function n(t) {\n const r = this, i = this.parser.constructs[e], l = t.attempt(i, o, a);\n return o;\n function o(c) {\n return u(c) ? l(c) : a(c);\n }\n function a(c) {\n if (c === null) {\n t.consume(c);\n return;\n }\n return t.enter(\"data\"), t.consume(c), s;\n }\n function s(c) {\n return u(c) ? (t.exit(\"data\"), l(c)) : (t.consume(c), s);\n }\n function u(c) {\n if (c === null)\n return !0;\n const f = i[c];\n let d = -1;\n if (f)\n for (; ++d < f.length; ) {\n const p = f[d];\n if (!p.previous || p.previous.call(r, r.previous))\n return !0;\n }\n return !1;\n }\n }\n}\nfunction Xt(e) {\n return n;\n function n(t, r) {\n let i = -1, l;\n for (; ++i <= t.length; )\n l === void 0 ? t[i] && t[i][1].type === \"data\" && (l = i, i++) : (!t[i] || t[i][1].type !== \"data\") && (i !== l + 2 && (t[l][1].end = t[i - 1][1].end, t.splice(l + 2, i - l - 2), i = l + 2), l = void 0);\n return e ? e(t, r) : t;\n }\n}\nfunction Kl(e, n) {\n let t = 0;\n for (; ++t <= e.length; )\n if ((t === e.length || e[t][1].type === \"lineEnding\") && e[t - 1][1].type === \"data\") {\n const r = e[t - 1][1], i = n.sliceStream(r);\n let l = i.length, o = -1, a = 0, s;\n for (; l--; ) {\n const u = i[l];\n if (typeof u == \"string\") {\n for (o = u.length; u.charCodeAt(o - 1) === 32; )\n a++, o--;\n if (o) break;\n o = -1;\n } else if (u === -2)\n s = !0, a++;\n else if (u !== -1) {\n l++;\n break;\n }\n }\n if (a) {\n const u = {\n type: t === e.length || s || a < 2 ? \"lineSuffix\" : \"hardBreakTrailing\",\n start: {\n _bufferIndex: l ? o : r.start._bufferIndex + o,\n _index: r.start._index + l,\n line: r.end.line,\n column: r.end.column - a,\n offset: r.end.offset - a\n },\n end: {\n ...r.end\n }\n };\n r.end = {\n ...u.start\n }, r.start.offset === r.end.offset ? Object.assign(r, u) : (e.splice(t, 0, [\"enter\", u, n], [\"exit\", u, n]), t += 2);\n }\n t++;\n }\n return e;\n}\nconst Gl = {\n 42: K,\n 43: K,\n 45: K,\n 48: K,\n 49: K,\n 50: K,\n 51: K,\n 52: K,\n 53: K,\n 54: K,\n 55: K,\n 56: K,\n 57: K,\n 62: Ht\n}, Jl = {\n 91: tl\n}, Zl = {\n [-2]: tn,\n [-1]: tn,\n 32: tn\n}, eo = {\n 35: ul,\n 42: Ye,\n 45: [lt, Ye],\n 60: fl,\n 61: lt,\n 95: Ye,\n 96: rt,\n 126: rt\n}, no = {\n 38: Vt,\n 92: Ut\n}, to = {\n [-5]: rn,\n [-4]: rn,\n [-3]: rn,\n 33: Ll,\n 38: Vt,\n 42: xn,\n 60: [Di, kl],\n 91: Dl,\n 92: [ol, Ut],\n 93: Ln,\n 95: xn,\n 96: $i\n}, ro = {\n null: [xn, Yl]\n}, io = {\n null: [42, 95]\n}, lo = {\n null: []\n}, oo = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({\n __proto__: null,\n attentionMarkers: io,\n contentInitial: Jl,\n disable: lo,\n document: Gl,\n flow: eo,\n flowInitial: Zl,\n insideSpan: ro,\n string: no,\n text: to\n}, Symbol.toStringTag, { value: \"Module\" }));\nfunction ao(e, n, t) {\n let r = {\n _bufferIndex: -1,\n _index: 0,\n line: t && t.line || 1,\n column: t && t.column || 1,\n offset: t && t.offset || 0\n };\n const i = {}, l = [];\n let o = [], a = [];\n const s = {\n attempt: F(R),\n check: F(y),\n consume: C,\n enter: E,\n exit: N,\n interrupt: F(y, {\n interrupt: !0\n })\n }, u = {\n code: null,\n containerState: {},\n defineSkip: w,\n events: [],\n now: b,\n parser: e,\n previous: null,\n sliceSerialize: d,\n sliceStream: p,\n write: f\n };\n let c = n.tokenize.call(u, s);\n return n.resolveAll && l.push(n), u;\n function f(z) {\n return o = ne(o, z), A(), o[o.length - 1] !== null ? [] : (q(n, 0), u.events = zn(l, u.events, u), u.events);\n }\n function d(z, T) {\n return so(p(z), T);\n }\n function p(z) {\n return uo(o, z);\n }\n function b() {\n const {\n _bufferIndex: z,\n _index: T,\n line: P,\n column: I,\n offset: v\n } = r;\n return {\n _bufferIndex: z,\n _index: T,\n line: P,\n column: I,\n offset: v\n };\n }\n function w(z) {\n i[z.line] = z.column, j();\n }\n function A() {\n let z;\n for (; r._index < o.length; ) {\n const T = o[r._index];\n if (typeof T == \"string\")\n for (z = r._index, r._bufferIndex < 0 && (r._bufferIndex = 0); r._index === z && r._bufferIndex < T.length; )\n x(T.charCodeAt(r._bufferIndex));\n else\n x(T);\n }\n }\n function x(z) {\n c = c(z);\n }\n function C(z) {\n L(z) ? (r.line++, r.column = 1, r.offset += z === -3 ? 2 : 1, j()) : z !== -1 && (r.column++, r.offset++), r._bufferIndex < 0 ? r._index++ : (r._bufferIndex++, r._bufferIndex === // Points w/ non-negative `_bufferIndex` reference\n // strings.\n /** @type {string} */\n o[r._index].length && (r._bufferIndex = -1, r._index++)), u.previous = z;\n }\n function E(z, T) {\n const P = T || {};\n return P.type = z, P.start = b(), u.events.push([\"enter\", P, u]), a.push(P), P;\n }\n function N(z) {\n const T = a.pop();\n return T.end = b(), u.events.push([\"exit\", T, u]), T;\n }\n function R(z, T) {\n q(z, T.from);\n }\n function y(z, T) {\n T.restore();\n }\n function F(z, T) {\n return P;\n function P(I, v, W) {\n let Y, re, pe, h;\n return Array.isArray(I) ? (\n /* c8 ignore next 1 */\n fe(I)\n ) : \"tokenize\" in I ? (\n // Looks like a construct.\n fe([\n /** @type {Construct} */\n I\n ])\n ) : ie(I);\n function ie(Q) {\n return Le;\n function Le(de) {\n const we = de !== null && Q[de], Se = de !== null && Q.null, He = [\n // To do: add more extension tests.\n /* c8 ignore next 2 */\n ...Array.isArray(we) ? we : we ? [we] : [],\n ...Array.isArray(Se) ? Se : Se ? [Se] : []\n ];\n return fe(He)(de);\n }\n }\n function fe(Q) {\n return Y = Q, re = 0, Q.length === 0 ? W : m(Q[re]);\n }\n function m(Q) {\n return Le;\n function Le(de) {\n return h = B(), pe = Q, Q.partial || (u.currentConstruct = Q), Q.name && u.parser.constructs.disable.null.includes(Q.name) ? xe() : Q.tokenize.call(\n // If we do have fields, create an object w/ `context` as its\n // prototype.\n // This allows a “live binding”, which is needed for `interrupt`.\n T ? Object.assign(Object.create(u), T) : u,\n s,\n le,\n xe\n )(de);\n }\n }\n function le(Q) {\n return z(pe, h), v;\n }\n function xe(Q) {\n return h.restore(), ++re < Y.length ? m(Y[re]) : W;\n }\n }\n }\n function q(z, T) {\n z.resolveAll && !l.includes(z) && l.push(z), z.resolve && ce(u.events, T, u.events.length - T, z.resolve(u.events.slice(T), u)), z.resolveTo && (u.events = z.resolveTo(u.events, u));\n }\n function B() {\n const z = b(), T = u.previous, P = u.currentConstruct, I = u.events.length, v = Array.from(a);\n return {\n from: I,\n restore: W\n };\n function W() {\n r = z, u.previous = T, u.currentConstruct = P, u.events.length = I, a = v, j();\n }\n }\n function j() {\n r.line in i && r.column < 2 && (r.column = i[r.line], r.offset += i[r.line] - 1);\n }\n}\nfunction uo(e, n) {\n const t = n.start._index, r = n.start._bufferIndex, i = n.end._index, l = n.end._bufferIndex;\n let o;\n if (t === i)\n o = [e[t].slice(r, l)];\n else {\n if (o = e.slice(t, i), r > -1) {\n const a = o[0];\n typeof a == \"string\" ? o[0] = a.slice(r) : o.shift();\n }\n l > 0 && o.push(e[i].slice(0, l));\n }\n return o;\n}\nfunction so(e, n) {\n let t = -1;\n const r = [];\n let i;\n for (; ++t < e.length; ) {\n const l = e[t];\n let o;\n if (typeof l == \"string\")\n o = l;\n else switch (l) {\n case -5: {\n o = \"\\r\";\n break;\n }\n case -4: {\n o = `\n`;\n break;\n }\n case -3: {\n o = `\\r\n`;\n break;\n }\n case -2: {\n o = n ? \" \" : \"\t\";\n break;\n }\n case -1: {\n if (!n && i) continue;\n o = \" \";\n break;\n }\n default:\n o = String.fromCharCode(l);\n }\n i = l === -2, r.push(o);\n }\n return r.join(\"\");\n}\nfunction co(e) {\n const r = {\n constructs: (\n /** @type {FullNormalizedExtension} */\n yi([oo, ...(e || {}).extensions || []])\n ),\n content: i(Ii),\n defined: [],\n document: i(Ti),\n flow: i($l),\n lazy: {},\n string: i(Ql),\n text: i(Xl)\n };\n return r;\n function i(l) {\n return o;\n function o(a) {\n return ao(r, l, a);\n }\n }\n}\nfunction po(e) {\n for (; !qt(e); )\n ;\n return e;\n}\nconst ot = /[\\0\\t\\n\\r]/g;\nfunction fo() {\n let e = 1, n = \"\", t = !0, r;\n return i;\n function i(l, o, a) {\n const s = [];\n let u, c, f, d, p;\n for (l = n + (typeof l == \"string\" ? l.toString() : new TextDecoder(o || void 0).decode(l)), f = 0, n = \"\", t && (l.charCodeAt(0) === 65279 && f++, t = void 0); f < l.length; ) {\n if (ot.lastIndex = f, u = ot.exec(l), d = u && u.index !== void 0 ? u.index : l.length, p = l.charCodeAt(d), !u) {\n n = l.slice(f);\n break;\n }\n if (p === 10 && f === d && r)\n s.push(-3), r = void 0;\n else\n switch (r && (s.push(-5), r = void 0), f < d && (s.push(l.slice(f, d)), e += d - f), p) {\n case 0: {\n s.push(65533), e++;\n break;\n }\n case 9: {\n for (c = Math.ceil(e / 4) * 4, s.push(-2); e++ < c; ) s.push(-1);\n break;\n }\n case 10: {\n s.push(-4), e = 1;\n break;\n }\n default:\n r = !0, e = 1;\n }\n f = d + 1;\n }\n return a && (r && s.push(-5), n && s.push(n), s.push(null)), s;\n }\n}\nconst ho = /\\\\([!-/:-@[-`{-~])|&(#(?:\\d{1,7}|x[\\da-f]{1,6})|[\\da-z]{1,31});/gi;\nfunction mo(e) {\n return e.replace(ho, go);\n}\nfunction go(e, n, t) {\n if (n)\n return n;\n if (t.charCodeAt(0) === 35) {\n const i = t.charCodeAt(1), l = i === 120 || i === 88;\n return jt(t.slice(l ? 2 : 1), l ? 16 : 10);\n }\n return Pn(t) || e;\n}\nconst Kt = {}.hasOwnProperty;\nfunction yo(e, n, t) {\n return typeof n != \"string\" && (t = n, n = void 0), xo(t)(po(co(t).document().write(fo()(e, n, !0))));\n}\nfunction xo(e) {\n const n = {\n transforms: [],\n canContainEols: [\"emphasis\", \"fragment\", \"heading\", \"paragraph\", \"strong\"],\n enter: {\n autolink: l(Bn),\n autolinkProtocol: B,\n autolinkEmail: B,\n atxHeading: l(Nn),\n blockQuote: l(Se),\n characterEscape: B,\n characterReference: B,\n codeFenced: l(He),\n codeFencedFenceInfo: o,\n codeFencedFenceMeta: o,\n codeIndented: l(He, o),\n codeText: l(ar, o),\n codeTextData: B,\n data: B,\n codeFlowValue: B,\n definition: l(ur),\n definitionDestinationString: o,\n definitionLabelString: o,\n definitionTitleString: o,\n emphasis: l(sr),\n hardBreakEscape: l(Mn),\n hardBreakTrailing: l(Mn),\n htmlFlow: l(_n, o),\n htmlFlowData: B,\n htmlText: l(_n, o),\n htmlTextData: B,\n image: l(cr),\n label: o,\n link: l(Bn),\n listItem: l(pr),\n listItemValue: d,\n listOrdered: l(jn, f),\n listUnordered: l(jn),\n paragraph: l(fr),\n reference: m,\n referenceString: o,\n resourceDestinationString: o,\n resourceTitleString: o,\n setextHeading: l(Nn),\n strong: l(hr),\n thematicBreak: l(dr)\n },\n exit: {\n atxHeading: s(),\n atxHeadingSequence: R,\n autolink: s(),\n autolinkEmail: we,\n autolinkProtocol: de,\n blockQuote: s(),\n characterEscapeValue: j,\n characterReferenceMarkerHexadecimal: xe,\n characterReferenceMarkerNumeric: xe,\n characterReferenceValue: Q,\n characterReference: Le,\n codeFenced: s(A),\n codeFencedFence: w,\n codeFencedFenceInfo: p,\n codeFencedFenceMeta: b,\n codeFlowValue: j,\n codeIndented: s(x),\n codeText: s(v),\n codeTextData: j,\n data: j,\n definition: s(),\n definitionDestinationString: N,\n definitionLabelString: C,\n definitionTitleString: E,\n emphasis: s(),\n hardBreakEscape: s(T),\n hardBreakTrailing: s(T),\n htmlFlow: s(P),\n htmlFlowData: j,\n htmlText: s(I),\n htmlTextData: j,\n image: s(Y),\n label: pe,\n labelText: re,\n lineEnding: z,\n link: s(W),\n listItem: s(),\n listOrdered: s(),\n listUnordered: s(),\n paragraph: s(),\n referenceString: le,\n resourceDestinationString: h,\n resourceTitleString: ie,\n resource: fe,\n setextHeading: s(q),\n setextHeadingLineSequence: F,\n setextHeadingText: y,\n strong: s(),\n thematicBreak: s()\n }\n };\n Gt(n, (e || {}).mdastExtensions || []);\n const t = {};\n return r;\n function r(g) {\n let S = {\n type: \"root\",\n children: []\n };\n const D = {\n stack: [S],\n tokenStack: [],\n config: n,\n enter: a,\n exit: u,\n buffer: o,\n resume: c,\n data: t\n }, M = [];\n let H = -1;\n for (; ++H < g.length; )\n if (g[H][1].type === \"listOrdered\" || g[H][1].type === \"listUnordered\")\n if (g[H][0] === \"enter\")\n M.push(H);\n else {\n const oe = M.pop();\n H = i(g, oe, H);\n }\n for (H = -1; ++H < g.length; ) {\n const oe = n[g[H][0]];\n Kt.call(oe, g[H][1].type) && oe[g[H][1].type].call(Object.assign({\n sliceSerialize: g[H][2].sliceSerialize\n }, D), g[H][1]);\n }\n if (D.tokenStack.length > 0) {\n const oe = D.tokenStack[D.tokenStack.length - 1];\n (oe[1] || at).call(D, void 0, oe[0]);\n }\n for (S.position = {\n start: ge(g.length > 0 ? g[0][1].start : {\n line: 1,\n column: 1,\n offset: 0\n }),\n end: ge(g.length > 0 ? g[g.length - 2][1].end : {\n line: 1,\n column: 1,\n offset: 0\n })\n }, H = -1; ++H < n.transforms.length; )\n S = n.transforms[H](S) || S;\n return S;\n }\n function i(g, S, D) {\n let M = S - 1, H = -1, oe = !1, ke, he, ve, De;\n for (; ++M <= D; ) {\n const J = g[M];\n switch (J[1].type) {\n case \"listUnordered\":\n case \"listOrdered\":\n case \"blockQuote\": {\n J[0] === \"enter\" ? H++ : H--, De = void 0;\n break;\n }\n case \"lineEndingBlank\": {\n J[0] === \"enter\" && (ke && !De && !H && !ve && (ve = M), De = void 0);\n break;\n }\n case \"linePrefix\":\n case \"listItemValue\":\n case \"listItemMarker\":\n case \"listItemPrefix\":\n case \"listItemPrefixWhitespace\":\n break;\n default:\n De = void 0;\n }\n if (!H && J[0] === \"enter\" && J[1].type === \"listItemPrefix\" || H === -1 && J[0] === \"exit\" && (J[1].type === \"listUnordered\" || J[1].type === \"listOrdered\")) {\n if (ke) {\n let Ce = M;\n for (he = void 0; Ce--; ) {\n const me = g[Ce];\n if (me[1].type === \"lineEnding\" || me[1].type === \"lineEndingBlank\") {\n if (me[0] === \"exit\") continue;\n he && (g[he][1].type = \"lineEndingBlank\", oe = !0), me[1].type = \"lineEnding\", he = Ce;\n } else if (!(me[1].type === \"linePrefix\" || me[1].type === \"blockQuotePrefix\" || me[1].type === \"blockQuotePrefixWhitespace\" || me[1].type === \"blockQuoteMarker\" || me[1].type === \"listItemIndent\")) break;\n }\n ve && (!he || ve < he) && (ke._spread = !0), ke.end = Object.assign({}, he ? g[he][1].start : J[1].end), g.splice(he || M, 0, [\"exit\", ke, J[2]]), M++, D++;\n }\n if (J[1].type === \"listItemPrefix\") {\n const Ce = {\n type: \"listItem\",\n _spread: !1,\n start: Object.assign({}, J[1].start),\n // @ts-expect-error: we’ll add `end` in a second.\n end: void 0\n };\n ke = Ce, g.splice(M, 0, [\"enter\", Ce, J[2]]), M++, D++, ve = void 0, De = !0;\n }\n }\n }\n return g[S][1]._spread = oe, D;\n }\n function l(g, S) {\n return D;\n function D(M) {\n a.call(this, g(M), M), S && S.call(this, M);\n }\n }\n function o() {\n this.stack.push({\n type: \"fragment\",\n children: []\n });\n }\n function a(g, S, D) {\n this.stack[this.stack.length - 1].children.push(g), this.stack.push(g), this.tokenStack.push([S, D || void 0]), g.position = {\n start: ge(S.start),\n // @ts-expect-error: `end` will be patched later.\n end: void 0\n };\n }\n function s(g) {\n return S;\n function S(D) {\n g && g.call(this, D), u.call(this, D);\n }\n }\n function u(g, S) {\n const D = this.stack.pop(), M = this.tokenStack.pop();\n if (M)\n M[0].type !== g.type && (S ? S.call(this, g, M[0]) : (M[1] || at).call(this, g, M[0]));\n else throw new Error(\"Cannot close `\" + g.type + \"` (\" + Fe({\n start: g.start,\n end: g.end\n }) + \"): it’s not open\");\n D.position.end = ge(g.end);\n }\n function c() {\n return di(this.stack.pop());\n }\n function f() {\n this.data.expectingFirstListItemValue = !0;\n }\n function d(g) {\n if (this.data.expectingFirstListItemValue) {\n const S = this.stack[this.stack.length - 2];\n S.start = Number.parseInt(this.sliceSerialize(g), 10), this.data.expectingFirstListItemValue = void 0;\n }\n }\n function p() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.lang = g;\n }\n function b() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.meta = g;\n }\n function w() {\n this.data.flowCodeInside || (this.buffer(), this.data.flowCodeInside = !0);\n }\n function A() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g.replace(/^(\\r?\\n|\\r)|(\\r?\\n|\\r)$/g, \"\"), this.data.flowCodeInside = void 0;\n }\n function x() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g.replace(/(\\r?\\n|\\r)$/g, \"\");\n }\n function C(g) {\n const S = this.resume(), D = this.stack[this.stack.length - 1];\n D.label = S, D.identifier = Te(this.sliceSerialize(g)).toLowerCase();\n }\n function E() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.title = g;\n }\n function N() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.url = g;\n }\n function R(g) {\n const S = this.stack[this.stack.length - 1];\n if (!S.depth) {\n const D = this.sliceSerialize(g).length;\n S.depth = D;\n }\n }\n function y() {\n this.data.setextHeadingSlurpLineEnding = !0;\n }\n function F(g) {\n const S = this.stack[this.stack.length - 1];\n S.depth = this.sliceSerialize(g).codePointAt(0) === 61 ? 1 : 2;\n }\n function q() {\n this.data.setextHeadingSlurpLineEnding = void 0;\n }\n function B(g) {\n const D = this.stack[this.stack.length - 1].children;\n let M = D[D.length - 1];\n (!M || M.type !== \"text\") && (M = mr(), M.position = {\n start: ge(g.start),\n // @ts-expect-error: we’ll add `end` later.\n end: void 0\n }, D.push(M)), this.stack.push(M);\n }\n function j(g) {\n const S = this.stack.pop();\n S.value += this.sliceSerialize(g), S.position.end = ge(g.end);\n }\n function z(g) {\n const S = this.stack[this.stack.length - 1];\n if (this.data.atHardBreak) {\n const D = S.children[S.children.length - 1];\n D.position.end = ge(g.end), this.data.atHardBreak = void 0;\n return;\n }\n !this.data.setextHeadingSlurpLineEnding && n.canContainEols.includes(S.type) && (B.call(this, g), j.call(this, g));\n }\n function T() {\n this.data.atHardBreak = !0;\n }\n function P() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g;\n }\n function I() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g;\n }\n function v() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.value = g;\n }\n function W() {\n const g = this.stack[this.stack.length - 1];\n if (this.data.inReference) {\n const S = this.data.referenceType || \"shortcut\";\n g.type += \"Reference\", g.referenceType = S, delete g.url, delete g.title;\n } else\n delete g.identifier, delete g.label;\n this.data.referenceType = void 0;\n }\n function Y() {\n const g = this.stack[this.stack.length - 1];\n if (this.data.inReference) {\n const S = this.data.referenceType || \"shortcut\";\n g.type += \"Reference\", g.referenceType = S, delete g.url, delete g.title;\n } else\n delete g.identifier, delete g.label;\n this.data.referenceType = void 0;\n }\n function re(g) {\n const S = this.sliceSerialize(g), D = this.stack[this.stack.length - 2];\n D.label = mo(S), D.identifier = Te(S).toLowerCase();\n }\n function pe() {\n const g = this.stack[this.stack.length - 1], S = this.resume(), D = this.stack[this.stack.length - 1];\n if (this.data.inReference = !0, D.type === \"link\") {\n const M = g.children;\n D.children = M;\n } else\n D.alt = S;\n }\n function h() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.url = g;\n }\n function ie() {\n const g = this.resume(), S = this.stack[this.stack.length - 1];\n S.title = g;\n }\n function fe() {\n this.data.inReference = void 0;\n }\n function m() {\n this.data.referenceType = \"collapsed\";\n }\n function le(g) {\n const S = this.resume(), D = this.stack[this.stack.length - 1];\n D.label = S, D.identifier = Te(this.sliceSerialize(g)).toLowerCase(), this.data.referenceType = \"full\";\n }\n function xe(g) {\n this.data.characterReferenceType = g.type;\n }\n function Q(g) {\n const S = this.sliceSerialize(g), D = this.data.characterReferenceType;\n let M;\n D ? (M = jt(S, D === \"characterReferenceMarkerNumeric\" ? 10 : 16), this.data.characterReferenceType = void 0) : M = Pn(S);\n const H = this.stack[this.stack.length - 1];\n H.value += M;\n }\n function Le(g) {\n const S = this.stack.pop();\n S.position.end = ge(g.end);\n }\n function de(g) {\n j.call(this, g);\n const S = this.stack[this.stack.length - 1];\n S.url = this.sliceSerialize(g);\n }\n function we(g) {\n j.call(this, g);\n const S = this.stack[this.stack.length - 1];\n S.url = \"mailto:\" + this.sliceSerialize(g);\n }\n function Se() {\n return {\n type: \"blockquote\",\n children: []\n };\n }\n function He() {\n return {\n type: \"code\",\n lang: null,\n meta: null,\n value: \"\"\n };\n }\n function ar() {\n return {\n type: \"inlineCode\",\n value: \"\"\n };\n }\n function ur() {\n return {\n type: \"definition\",\n identifier: \"\",\n label: null,\n title: null,\n url: \"\"\n };\n }\n function sr() {\n return {\n type: \"emphasis\",\n children: []\n };\n }\n function Nn() {\n return {\n type: \"heading\",\n // @ts-expect-error `depth` will be set later.\n depth: 0,\n children: []\n };\n }\n function Mn() {\n return {\n type: \"break\"\n };\n }\n function _n() {\n return {\n type: \"html\",\n value: \"\"\n };\n }\n function cr() {\n return {\n type: \"image\",\n title: null,\n url: \"\",\n alt: null\n };\n }\n function Bn() {\n return {\n type: \"link\",\n title: null,\n url: \"\",\n children: []\n };\n }\n function jn(g) {\n return {\n type: \"list\",\n ordered: g.type === \"listOrdered\",\n start: null,\n spread: g._spread,\n children: []\n };\n }\n function pr(g) {\n return {\n type: \"listItem\",\n spread: g._spread,\n checked: null,\n children: []\n };\n }\n function fr() {\n return {\n type: \"paragraph\",\n children: []\n };\n }\n function hr() {\n return {\n type: \"strong\",\n children: []\n };\n }\n function mr() {\n return {\n type: \"text\",\n value: \"\"\n };\n }\n function dr() {\n return {\n type: \"thematicBreak\"\n };\n }\n}\nfunction ge(e) {\n return {\n line: e.line,\n column: e.column,\n offset: e.offset\n };\n}\nfunction Gt(e, n) {\n let t = -1;\n for (; ++t < n.length; ) {\n const r = n[t];\n Array.isArray(r) ? Gt(e, r) : ko(e, r);\n }\n}\nfunction ko(e, n) {\n let t;\n for (t in n)\n if (Kt.call(n, t))\n switch (t) {\n case \"canContainEols\": {\n const r = n[t];\n r && e[t].push(...r);\n break;\n }\n case \"transforms\": {\n const r = n[t];\n r && e[t].push(...r);\n break;\n }\n case \"enter\":\n case \"exit\": {\n const r = n[t];\n r && Object.assign(e[t], r);\n break;\n }\n }\n}\nfunction at(e, n) {\n throw e ? new Error(\"Cannot close `\" + e.type + \"` (\" + Fe({\n start: e.start,\n end: e.end\n }) + \"): a different token (`\" + n.type + \"`, \" + Fe({\n start: n.start,\n end: n.end\n }) + \") is open\") : new Error(\"Cannot close document, a token (`\" + n.type + \"`, \" + Fe({\n start: n.start,\n end: n.end\n }) + \") is still open\");\n}\nfunction bo(e) {\n const n = this;\n n.parser = t;\n function t(r) {\n return yo(r, {\n ...n.data(\"settings\"),\n ...e,\n // Note: these options are not in the readme.\n // The goal is for them to be set by plugins on `data` instead of being\n // passed by users.\n extensions: n.data(\"micromarkExtensions\") || [],\n mdastExtensions: n.data(\"fromMarkdownExtensions\") || []\n });\n }\n}\nfunction wo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"blockquote\",\n properties: {},\n children: e.wrap(e.all(n), !0)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction So(e, n) {\n const t = { type: \"element\", tagName: \"br\", properties: {}, children: [] };\n return e.patch(n, t), [e.applyData(n, t), { type: \"text\", value: `\n` }];\n}\nfunction Co(e, n) {\n const t = n.value ? n.value + `\n` : \"\", r = {};\n n.lang && (r.className = [\"language-\" + n.lang]);\n let i = {\n type: \"element\",\n tagName: \"code\",\n properties: r,\n children: [{ type: \"text\", value: t }]\n };\n return n.meta && (i.data = { meta: n.meta }), e.patch(n, i), i = e.applyData(n, i), i = { type: \"element\", tagName: \"pre\", properties: {}, children: [i] }, e.patch(n, i), i;\n}\nfunction Eo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"del\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Io(e, n) {\n const t = {\n type: \"element\",\n tagName: \"em\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Ao(e, n) {\n const t = typeof e.options.clobberPrefix == \"string\" ? e.options.clobberPrefix : \"user-content-\", r = String(n.identifier).toUpperCase(), i = ze(r.toLowerCase()), l = e.footnoteOrder.indexOf(r);\n let o, a = e.footnoteCounts.get(r);\n a === void 0 ? (a = 0, e.footnoteOrder.push(r), o = e.footnoteOrder.length) : o = l + 1, a += 1, e.footnoteCounts.set(r, a);\n const s = {\n type: \"element\",\n tagName: \"a\",\n properties: {\n href: \"#\" + t + \"fn-\" + i,\n id: t + \"fnref-\" + i + (a > 1 ? \"-\" + a : \"\"),\n dataFootnoteRef: !0,\n ariaDescribedBy: [\"footnote-label\"]\n },\n children: [{ type: \"text\", value: String(o) }]\n };\n e.patch(n, s);\n const u = {\n type: \"element\",\n tagName: \"sup\",\n properties: {},\n children: [s]\n };\n return e.patch(n, u), e.applyData(n, u);\n}\nfunction To(e, n) {\n const t = {\n type: \"element\",\n tagName: \"h\" + n.depth,\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Po(e, n) {\n if (e.options.allowDangerousHtml) {\n const t = { type: \"raw\", value: n.value };\n return e.patch(n, t), e.applyData(n, t);\n }\n}\nfunction Jt(e, n) {\n const t = n.referenceType;\n let r = \"]\";\n if (t === \"collapsed\" ? r += \"[]\" : t === \"full\" && (r += \"[\" + (n.label || n.identifier) + \"]\"), n.type === \"imageReference\")\n return [{ type: \"text\", value: \"![\" + n.alt + r }];\n const i = e.all(n), l = i[0];\n l && l.type === \"text\" ? l.value = \"[\" + l.value : i.unshift({ type: \"text\", value: \"[\" });\n const o = i[i.length - 1];\n return o && o.type === \"text\" ? o.value += r : i.push({ type: \"text\", value: r }), i;\n}\nfunction zo(e, n) {\n const t = String(n.identifier).toUpperCase(), r = e.definitionById.get(t);\n if (!r)\n return Jt(e, n);\n const i = { src: ze(r.url || \"\"), alt: n.alt };\n r.title !== null && r.title !== void 0 && (i.title = r.title);\n const l = { type: \"element\", tagName: \"img\", properties: i, children: [] };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Lo(e, n) {\n const t = { src: ze(n.url) };\n n.alt !== null && n.alt !== void 0 && (t.alt = n.alt), n.title !== null && n.title !== void 0 && (t.title = n.title);\n const r = { type: \"element\", tagName: \"img\", properties: t, children: [] };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction vo(e, n) {\n const t = { type: \"text\", value: n.value.replace(/\\r?\\n|\\r/g, \" \") };\n e.patch(n, t);\n const r = {\n type: \"element\",\n tagName: \"code\",\n properties: {},\n children: [t]\n };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction Do(e, n) {\n const t = String(n.identifier).toUpperCase(), r = e.definitionById.get(t);\n if (!r)\n return Jt(e, n);\n const i = { href: ze(r.url || \"\") };\n r.title !== null && r.title !== void 0 && (i.title = r.title);\n const l = {\n type: \"element\",\n tagName: \"a\",\n properties: i,\n children: e.all(n)\n };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Oo(e, n) {\n const t = { href: ze(n.url) };\n n.title !== null && n.title !== void 0 && (t.title = n.title);\n const r = {\n type: \"element\",\n tagName: \"a\",\n properties: t,\n children: e.all(n)\n };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction Ro(e, n, t) {\n const r = e.all(n), i = t ? Fo(t) : Zt(n), l = {}, o = [];\n if (typeof n.checked == \"boolean\") {\n const c = r[0];\n let f;\n c && c.type === \"element\" && c.tagName === \"p\" ? f = c : (f = { type: \"element\", tagName: \"p\", properties: {}, children: [] }, r.unshift(f)), f.children.length > 0 && f.children.unshift({ type: \"text\", value: \" \" }), f.children.unshift({\n type: \"element\",\n tagName: \"input\",\n properties: { type: \"checkbox\", checked: n.checked, disabled: !0 },\n children: []\n }), l.className = [\"task-list-item\"];\n }\n let a = -1;\n for (; ++a < r.length; ) {\n const c = r[a];\n (i || a !== 0 || c.type !== \"element\" || c.tagName !== \"p\") && o.push({ type: \"text\", value: `\n` }), c.type === \"element\" && c.tagName === \"p\" && !i ? o.push(...c.children) : o.push(c);\n }\n const s = r[r.length - 1];\n s && (i || s.type !== \"element\" || s.tagName !== \"p\") && o.push({ type: \"text\", value: `\n` });\n const u = { type: \"element\", tagName: \"li\", properties: l, children: o };\n return e.patch(n, u), e.applyData(n, u);\n}\nfunction Fo(e) {\n let n = !1;\n if (e.type === \"list\") {\n n = e.spread || !1;\n const t = e.children;\n let r = -1;\n for (; !n && ++r < t.length; )\n n = Zt(t[r]);\n }\n return n;\n}\nfunction Zt(e) {\n const n = e.spread;\n return n ?? e.children.length > 1;\n}\nfunction No(e, n) {\n const t = {}, r = e.all(n);\n let i = -1;\n for (typeof n.start == \"number\" && n.start !== 1 && (t.start = n.start); ++i < r.length; ) {\n const o = r[i];\n if (o.type === \"element\" && o.tagName === \"li\" && o.properties && Array.isArray(o.properties.className) && o.properties.className.includes(\"task-list-item\")) {\n t.className = [\"contains-task-list\"];\n break;\n }\n }\n const l = {\n type: \"element\",\n tagName: n.ordered ? \"ol\" : \"ul\",\n properties: t,\n children: e.wrap(r, !0)\n };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Mo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"p\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction _o(e, n) {\n const t = { type: \"root\", children: e.wrap(e.all(n)) };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction Bo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"strong\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction jo(e, n) {\n const t = e.all(n), r = t.shift(), i = [];\n if (r) {\n const o = {\n type: \"element\",\n tagName: \"thead\",\n properties: {},\n children: e.wrap([r], !0)\n };\n e.patch(n.children[0], o), i.push(o);\n }\n if (t.length > 0) {\n const o = {\n type: \"element\",\n tagName: \"tbody\",\n properties: {},\n children: e.wrap(t, !0)\n }, a = En(n.children[1]), s = Ot(n.children[n.children.length - 1]);\n a && s && (o.position = { start: a, end: s }), i.push(o);\n }\n const l = {\n type: \"element\",\n tagName: \"table\",\n properties: {},\n children: e.wrap(i, !0)\n };\n return e.patch(n, l), e.applyData(n, l);\n}\nfunction Ho(e, n, t) {\n const r = t ? t.children : void 0, l = (r ? r.indexOf(n) : 1) === 0 ? \"th\" : \"td\", o = t && t.type === \"table\" ? t.align : void 0, a = o ? o.length : n.children.length;\n let s = -1;\n const u = [];\n for (; ++s < a; ) {\n const f = n.children[s], d = {}, p = o ? o[s] : void 0;\n p && (d.align = p);\n let b = { type: \"element\", tagName: l, properties: d, children: [] };\n f && (b.children = e.all(f), e.patch(f, b), b = e.applyData(f, b)), u.push(b);\n }\n const c = {\n type: \"element\",\n tagName: \"tr\",\n properties: {},\n children: e.wrap(u, !0)\n };\n return e.patch(n, c), e.applyData(n, c);\n}\nfunction Uo(e, n) {\n const t = {\n type: \"element\",\n tagName: \"td\",\n // Assume body cell.\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nconst ut = 9, st = 32;\nfunction Vo(e) {\n const n = String(e), t = /\\r?\\n|\\r/g;\n let r = t.exec(n), i = 0;\n const l = [];\n for (; r; )\n l.push(\n ct(n.slice(i, r.index), i > 0, !0),\n r[0]\n ), i = r.index + r[0].length, r = t.exec(n);\n return l.push(ct(n.slice(i), i > 0, !1)), l.join(\"\");\n}\nfunction ct(e, n, t) {\n let r = 0, i = e.length;\n if (n) {\n let l = e.codePointAt(r);\n for (; l === ut || l === st; )\n r++, l = e.codePointAt(r);\n }\n if (t) {\n let l = e.codePointAt(i - 1);\n for (; l === ut || l === st; )\n i--, l = e.codePointAt(i - 1);\n }\n return i > r ? e.slice(r, i) : \"\";\n}\nfunction qo(e, n) {\n const t = { type: \"text\", value: Vo(String(n.value)) };\n return e.patch(n, t), e.applyData(n, t);\n}\nfunction $o(e, n) {\n const t = {\n type: \"element\",\n tagName: \"hr\",\n properties: {},\n children: []\n };\n return e.patch(n, t), e.applyData(n, t);\n}\nconst Wo = {\n blockquote: wo,\n break: So,\n code: Co,\n delete: Eo,\n emphasis: Io,\n footnoteReference: Ao,\n heading: To,\n html: Po,\n imageReference: zo,\n image: Lo,\n inlineCode: vo,\n linkReference: Do,\n link: Oo,\n listItem: Ro,\n list: No,\n paragraph: Mo,\n // @ts-expect-error: root is different, but hard to type.\n root: _o,\n strong: Bo,\n table: jo,\n tableCell: Uo,\n tableRow: Ho,\n text: qo,\n thematicBreak: $o,\n toml: qe,\n yaml: qe,\n definition: qe,\n footnoteDefinition: qe\n};\nfunction qe() {\n}\nconst er = -1, Ge = 0, Me = 1, Qe = 2, vn = 3, Dn = 4, On = 5, Rn = 6, nr = 7, tr = 8, pt = typeof self == \"object\" ? self : globalThis, Yo = (e, n) => {\n const t = (i, l) => (e.set(l, i), i), r = (i) => {\n if (e.has(i))\n return e.get(i);\n const [l, o] = n[i];\n switch (l) {\n case Ge:\n case er:\n return t(o, i);\n case Me: {\n const a = t([], i);\n for (const s of o)\n a.push(r(s));\n return a;\n }\n case Qe: {\n const a = t({}, i);\n for (const [s, u] of o)\n a[r(s)] = r(u);\n return a;\n }\n case vn:\n return t(new Date(o), i);\n case Dn: {\n const { source: a, flags: s } = o;\n return t(new RegExp(a, s), i);\n }\n case On: {\n const a = t(/* @__PURE__ */ new Map(), i);\n for (const [s, u] of o)\n a.set(r(s), r(u));\n return a;\n }\n case Rn: {\n const a = t(/* @__PURE__ */ new Set(), i);\n for (const s of o)\n a.add(r(s));\n return a;\n }\n case nr: {\n const { name: a, message: s } = o;\n return t(new pt[a](s), i);\n }\n case tr:\n return t(BigInt(o), i);\n case \"BigInt\":\n return t(Object(BigInt(o)), i);\n case \"ArrayBuffer\":\n return t(new Uint8Array(o).buffer, o);\n case \"DataView\": {\n const { buffer: a } = new Uint8Array(o);\n return t(new DataView(a), o);\n }\n }\n return t(new pt[l](o), i);\n };\n return r;\n}, ft = (e) => Yo(/* @__PURE__ */ new Map(), e)(0), Ie = \"\", { toString: Qo } = {}, { keys: Xo } = Object, Re = (e) => {\n const n = typeof e;\n if (n !== \"object\" || !e)\n return [Ge, n];\n const t = Qo.call(e).slice(8, -1);\n switch (t) {\n case \"Array\":\n return [Me, Ie];\n case \"Object\":\n return [Qe, Ie];\n case \"Date\":\n return [vn, Ie];\n case \"RegExp\":\n return [Dn, Ie];\n case \"Map\":\n return [On, Ie];\n case \"Set\":\n return [Rn, Ie];\n case \"DataView\":\n return [Me, t];\n }\n return t.includes(\"Array\") ? [Me, t] : t.includes(\"Error\") ? [nr, t] : [Qe, t];\n}, $e = ([e, n]) => e === Ge && (n === \"function\" || n === \"symbol\"), Ko = (e, n, t, r) => {\n const i = (o, a) => {\n const s = r.push(o) - 1;\n return t.set(a, s), s;\n }, l = (o) => {\n if (t.has(o))\n return t.get(o);\n let [a, s] = Re(o);\n switch (a) {\n case Ge: {\n let c = o;\n switch (s) {\n case \"bigint\":\n a = tr, c = o.toString();\n break;\n case \"function\":\n case \"symbol\":\n if (e)\n throw new TypeError(\"unable to serialize \" + s);\n c = null;\n break;\n case \"undefined\":\n return i([er], o);\n }\n return i([a, c], o);\n }\n case Me: {\n if (s) {\n let d = o;\n return s === \"DataView\" ? d = new Uint8Array(o.buffer) : s === \"ArrayBuffer\" && (d = new Uint8Array(o)), i([s, [...d]], o);\n }\n const c = [], f = i([a, c], o);\n for (const d of o)\n c.push(l(d));\n return f;\n }\n case Qe: {\n if (s)\n switch (s) {\n case \"BigInt\":\n return i([s, o.toString()], o);\n case \"Boolean\":\n case \"Number\":\n case \"String\":\n return i([s, o.valueOf()], o);\n }\n if (n && \"toJSON\" in o)\n return l(o.toJSON());\n const c = [], f = i([a, c], o);\n for (const d of Xo(o))\n (e || !$e(Re(o[d]))) && c.push([l(d), l(o[d])]);\n return f;\n }\n case vn:\n return i([a, o.toISOString()], o);\n case Dn: {\n const { source: c, flags: f } = o;\n return i([a, { source: c, flags: f }], o);\n }\n case On: {\n const c = [], f = i([a, c], o);\n for (const [d, p] of o)\n (e || !($e(Re(d)) || $e(Re(p)))) && c.push([l(d), l(p)]);\n return f;\n }\n case Rn: {\n const c = [], f = i([a, c], o);\n for (const d of o)\n (e || !$e(Re(d))) && c.push(l(d));\n return f;\n }\n }\n const { message: u } = o;\n return i([a, { name: s, message: u }], o);\n };\n return l;\n}, ht = (e, { json: n, lossy: t } = {}) => {\n const r = [];\n return Ko(!(n || t), !!n, /* @__PURE__ */ new Map(), r)(e), r;\n}, Xe = typeof structuredClone == \"function\" ? (\n /* c8 ignore start */\n (e, n) => n && (\"json\" in n || \"lossy\" in n) ? ft(ht(e, n)) : structuredClone(e)\n) : (e, n) => ft(ht(e, n));\nfunction Go(e, n) {\n const t = [{ type: \"text\", value: \"↩\" }];\n return n > 1 && t.push({\n type: \"element\",\n tagName: \"sup\",\n properties: {},\n children: [{ type: \"text\", value: String(n) }]\n }), t;\n}\nfunction Jo(e, n) {\n return \"Back to reference \" + (e + 1) + (n > 1 ? \"-\" + n : \"\");\n}\nfunction Zo(e) {\n const n = typeof e.options.clobberPrefix == \"string\" ? e.options.clobberPrefix : \"user-content-\", t = e.options.footnoteBackContent || Go, r = e.options.footnoteBackLabel || Jo, i = e.options.footnoteLabel || \"Footnotes\", l = e.options.footnoteLabelTagName || \"h2\", o = e.options.footnoteLabelProperties || {\n className: [\"sr-only\"]\n }, a = [];\n let s = -1;\n for (; ++s < e.footnoteOrder.length; ) {\n const u = e.footnoteById.get(\n e.footnoteOrder[s]\n );\n if (!u)\n continue;\n const c = e.all(u), f = String(u.identifier).toUpperCase(), d = ze(f.toLowerCase());\n let p = 0;\n const b = [], w = e.footnoteCounts.get(f);\n for (; w !== void 0 && ++p <= w; ) {\n b.length > 0 && b.push({ type: \"text\", value: \" \" });\n let C = typeof t == \"string\" ? t : t(s, p);\n typeof C == \"string\" && (C = { type: \"text\", value: C }), b.push({\n type: \"element\",\n tagName: \"a\",\n properties: {\n href: \"#\" + n + \"fnref-\" + d + (p > 1 ? \"-\" + p : \"\"),\n dataFootnoteBackref: \"\",\n ariaLabel: typeof r == \"string\" ? r : r(s, p),\n className: [\"data-footnote-backref\"]\n },\n children: Array.isArray(C) ? C : [C]\n });\n }\n const A = c[c.length - 1];\n if (A && A.type === \"element\" && A.tagName === \"p\") {\n const C = A.children[A.children.length - 1];\n C && C.type === \"text\" ? C.value += \" \" : A.children.push({ type: \"text\", value: \" \" }), A.children.push(...b);\n } else\n c.push(...b);\n const x = {\n type: \"element\",\n tagName: \"li\",\n properties: { id: n + \"fn-\" + d },\n children: e.wrap(c, !0)\n };\n e.patch(u, x), a.push(x);\n }\n if (a.length !== 0)\n return {\n type: \"element\",\n tagName: \"section\",\n properties: { dataFootnotes: !0, className: [\"footnotes\"] },\n children: [\n {\n type: \"element\",\n tagName: l,\n properties: {\n ...Xe(o),\n id: \"footnote-label\"\n },\n children: [{ type: \"text\", value: i }]\n },\n { type: \"text\", value: `\n` },\n {\n type: \"element\",\n tagName: \"ol\",\n properties: {},\n children: e.wrap(a, !0)\n },\n { type: \"text\", value: `\n` }\n ]\n };\n}\nconst rr = (\n // Note: overloads in JSDoc can’t yet use different `@template`s.\n /**\n * @type {(\n * (<Condition extends string>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & {type: Condition}) &\n * (<Condition extends Props>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Condition) &\n * (<Condition extends TestFunction>(test: Condition) => (node: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node & Predicate<Condition, Node>) &\n * ((test?: null | undefined) => (node?: unknown, index?: number | null | undefined, parent?: Parent | null | undefined, context?: unknown) => node is Node) &\n * ((test?: Test) => Check)\n * )}\n */\n /**\n * @param {Test} [test]\n * @returns {Check}\n */\n function(e) {\n if (e == null)\n return ra;\n if (typeof e == \"function\")\n return Je(e);\n if (typeof e == \"object\")\n return Array.isArray(e) ? ea(e) : na(e);\n if (typeof e == \"string\")\n return ta(e);\n throw new Error(\"Expected function, string, or object as test\");\n }\n);\nfunction ea(e) {\n const n = [];\n let t = -1;\n for (; ++t < e.length; )\n n[t] = rr(e[t]);\n return Je(r);\n function r(...i) {\n let l = -1;\n for (; ++l < n.length; )\n if (n[l].apply(this, i)) return !0;\n return !1;\n }\n}\nfunction na(e) {\n const n = (\n /** @type {Record<string, unknown>} */\n e\n );\n return Je(t);\n function t(r) {\n const i = (\n /** @type {Record<string, unknown>} */\n /** @type {unknown} */\n r\n );\n let l;\n for (l in e)\n if (i[l] !== n[l]) return !1;\n return !0;\n }\n}\nfunction ta(e) {\n return Je(n);\n function n(t) {\n return t && t.type === e;\n }\n}\nfunction Je(e) {\n return n;\n function n(t, r, i) {\n return !!(ia(t) && e.call(\n this,\n t,\n typeof r == \"number\" ? r : void 0,\n i || void 0\n ));\n }\n}\nfunction ra() {\n return !0;\n}\nfunction ia(e) {\n return e !== null && typeof e == \"object\" && \"type\" in e;\n}\nconst ir = [], la = !0, mt = !1, oa = \"skip\";\nfunction aa(e, n, t, r) {\n let i;\n typeof n == \"function\" && typeof t != \"function\" ? (r = t, t = n) : i = n;\n const l = rr(i), o = r ? -1 : 1;\n a(e, void 0, [])();\n function a(s, u, c) {\n const f = (\n /** @type {Record<string, unknown>} */\n s && typeof s == \"object\" ? s : {}\n );\n if (typeof f.type == \"string\") {\n const p = (\n // `hast`\n typeof f.tagName == \"string\" ? f.tagName : (\n // `xast`\n typeof f.name == \"string\" ? f.name : void 0\n )\n );\n Object.defineProperty(d, \"name\", {\n value: \"node (\" + (s.type + (p ? \"<\" + p + \">\" : \"\")) + \")\"\n });\n }\n return d;\n function d() {\n let p = ir, b, w, A;\n if ((!n || l(s, u, c[c.length - 1] || void 0)) && (p = ua(t(s, c)), p[0] === mt))\n return p;\n if (\"children\" in s && s.children) {\n const x = (\n /** @type {UnistParent} */\n s\n );\n if (x.children && p[0] !== oa)\n for (w = (r ? x.children.length : -1) + o, A = c.concat(x); w > -1 && w < x.children.length; ) {\n const C = x.children[w];\n if (b = a(C, w, A)(), b[0] === mt)\n return b;\n w = typeof b[1] == \"number\" ? b[1] : w + o;\n }\n }\n return p;\n }\n }\n}\nfunction ua(e) {\n return Array.isArray(e) ? e : typeof e == \"number\" ? [la, e] : e == null ? ir : [e];\n}\nfunction lr(e, n, t, r) {\n let i, l, o;\n typeof n == \"function\" ? (l = void 0, o = n, i = t) : (l = n, o = t, i = r), aa(e, l, a, i);\n function a(s, u) {\n const c = u[u.length - 1], f = c ? c.children.indexOf(s) : void 0;\n return o(s, f, c);\n }\n}\nconst kn = {}.hasOwnProperty, sa = {};\nfunction ca(e, n) {\n const t = n || sa, r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), l = /* @__PURE__ */ new Map(), o = { ...Wo, ...t.handlers }, a = {\n all: u,\n applyData: fa,\n definitionById: r,\n footnoteById: i,\n footnoteCounts: l,\n footnoteOrder: [],\n handlers: o,\n one: s,\n options: t,\n patch: pa,\n wrap: ma\n };\n return lr(e, function(c) {\n if (c.type === \"definition\" || c.type === \"footnoteDefinition\") {\n const f = c.type === \"definition\" ? r : i, d = String(c.identifier).toUpperCase();\n f.has(d) || f.set(d, c);\n }\n }), a;\n function s(c, f) {\n const d = c.type, p = a.handlers[d];\n if (kn.call(a.handlers, d) && p)\n return p(a, c, f);\n if (a.options.passThrough && a.options.passThrough.includes(d)) {\n if (\"children\" in c) {\n const { children: w, ...A } = c, x = Xe(A);\n return x.children = a.all(c), x;\n }\n return Xe(c);\n }\n return (a.options.unknownHandler || ha)(a, c, f);\n }\n function u(c) {\n const f = [];\n if (\"children\" in c) {\n const d = c.children;\n let p = -1;\n for (; ++p < d.length; ) {\n const b = a.one(d[p], c);\n if (b) {\n if (p && d[p - 1].type === \"break\" && (!Array.isArray(b) && b.type === \"text\" && (b.value = dt(b.value)), !Array.isArray(b) && b.type === \"element\")) {\n const w = b.children[0];\n w && w.type === \"text\" && (w.value = dt(w.value));\n }\n Array.isArray(b) ? f.push(...b) : f.push(b);\n }\n }\n }\n return f;\n }\n}\nfunction pa(e, n) {\n e.position && (n.position = $r(e));\n}\nfunction fa(e, n) {\n let t = n;\n if (e && e.data) {\n const r = e.data.hName, i = e.data.hChildren, l = e.data.hProperties;\n if (typeof r == \"string\")\n if (t.type === \"element\")\n t.tagName = r;\n else {\n const o = \"children\" in t ? t.children : [t];\n t = { type: \"element\", tagName: r, properties: {}, children: o };\n }\n t.type === \"element\" && l && Object.assign(t.properties, Xe(l)), \"children\" in t && t.children && i !== null && i !== void 0 && (t.children = i);\n }\n return t;\n}\nfunction ha(e, n) {\n const t = n.data || {}, r = \"value\" in n && !(kn.call(t, \"hProperties\") || kn.call(t, \"hChildren\")) ? { type: \"text\", value: n.value } : {\n type: \"element\",\n tagName: \"div\",\n properties: {},\n children: e.all(n)\n };\n return e.patch(n, r), e.applyData(n, r);\n}\nfunction ma(e, n) {\n const t = [];\n let r = -1;\n for (n && t.push({ type: \"text\", value: `\n` }); ++r < e.length; )\n r && t.push({ type: \"text\", value: `\n` }), t.push(e[r]);\n return n && e.length > 0 && t.push({ type: \"text\", value: `\n` }), t;\n}\nfunction dt(e) {\n let n = 0, t = e.charCodeAt(n);\n for (; t === 9 || t === 32; )\n n++, t = e.charCodeAt(n);\n return e.slice(n);\n}\nfunction gt(e, n) {\n const t = ca(e, n), r = t.one(e, void 0), i = Zo(t), l = Array.isArray(r) ? { type: \"root\", children: r } : r || { type: \"root\", children: [] };\n return i && l.children.push({ type: \"text\", value: `\n` }, i), l;\n}\nfunction da(e, n) {\n return e && \"run\" in e ? async function(t, r) {\n const i = (\n /** @type {HastRoot} */\n gt(t, { file: r, ...n })\n );\n await e.run(i, r);\n } : function(t, r) {\n return (\n /** @type {HastRoot} */\n gt(t, { file: r, ...e || n })\n );\n };\n}\nfunction yt(e) {\n if (e)\n throw e;\n}\nvar ln, xt;\nfunction ga() {\n if (xt) return ln;\n xt = 1;\n var e = Object.prototype.hasOwnProperty, n = Object.prototype.toString, t = Object.defineProperty, r = Object.getOwnPropertyDescriptor, i = function(u) {\n return typeof Array.isArray == \"function\" ? Array.isArray(u) : n.call(u) === \"[object Array]\";\n }, l = function(u) {\n if (!u || n.call(u) !== \"[object Object]\")\n return !1;\n var c = e.call(u, \"constructor\"), f = u.constructor && u.constructor.prototype && e.call(u.constructor.prototype, \"isPrototypeOf\");\n if (u.constructor && !c && !f)\n return !1;\n var d;\n for (d in u)\n ;\n return typeof d > \"u\" || e.call(u, d);\n }, o = function(u, c) {\n t && c.name === \"__proto__\" ? t(u, c.name, {\n enumerable: !0,\n configurable: !0,\n value: c.newValue,\n writable: !0\n }) : u[c.name] = c.newValue;\n }, a = function(u, c) {\n if (c === \"__proto__\")\n if (e.call(u, c)) {\n if (r)\n return r(u, c).value;\n } else return;\n return u[c];\n };\n return ln = function s() {\n var u, c, f, d, p, b, w = arguments[0], A = 1, x = arguments.length, C = !1;\n for (typeof w == \"boolean\" && (C = w, w = arguments[1] || {}, A = 2), (w == null || typeof w != \"object\" && typeof w != \"function\") && (w = {}); A < x; ++A)\n if (u = arguments[A], u != null)\n for (c in u)\n f = a(w, c), d = a(u, c), w !== d && (C && d && (l(d) || (p = i(d))) ? (p ? (p = !1, b = f && i(f) ? f : []) : b = f && l(f) ? f : {}, o(w, { name: c, newValue: s(C, b, d) })) : typeof d < \"u\" && o(w, { name: c, newValue: d }));\n return w;\n }, ln;\n}\nvar ya = ga();\nconst on = /* @__PURE__ */ Dt(ya);\nfunction bn(e) {\n if (typeof e != \"object\" || e === null)\n return !1;\n const n = Object.getPrototypeOf(e);\n return (n === null || n === Object.prototype || Object.getPrototypeOf(n) === null) && !(Symbol.toStringTag in e) && !(Symbol.iterator in e);\n}\nfunction xa() {\n const e = [], n = { run: t, use: r };\n return n;\n function t(...i) {\n let l = -1;\n const o = i.pop();\n if (typeof o != \"function\")\n throw new TypeError(\"Expected function as last argument, not \" + o);\n a(null, ...i);\n function a(s, ...u) {\n const c = e[++l];\n let f = -1;\n if (s) {\n o(s);\n return;\n }\n for (; ++f < i.length; )\n (u[f] === null || u[f] === void 0) && (u[f] = i[f]);\n i = u, c ? ka(c, a)(...u) : o(null, ...u);\n }\n }\n function r(i) {\n if (typeof i != \"function\")\n throw new TypeError(\n \"Expected `middelware` to be a function, not \" + i\n );\n return e.push(i), n;\n }\n}\nfunction ka(e, n) {\n let t;\n return r;\n function r(...o) {\n const a = e.length > o.length;\n let s;\n a && o.push(i);\n try {\n s = e.apply(this, o);\n } catch (u) {\n const c = (\n /** @type {Error} */\n u\n );\n if (a && t)\n throw c;\n return i(c);\n }\n a || (s && s.then && typeof s.then == \"function\" ? s.then(l, i) : s instanceof Error ? i(s) : l(s));\n }\n function i(o, ...a) {\n t || (t = !0, n(o, ...a));\n }\n function l(o) {\n i(null, o);\n }\n}\nconst ue = { basename: ba, dirname: wa, extname: Sa, join: Ca, sep: \"/\" };\nfunction ba(e, n) {\n if (n !== void 0 && typeof n != \"string\")\n throw new TypeError('\"ext\" argument must be a string');\n je(e);\n let t = 0, r = -1, i = e.length, l;\n if (n === void 0 || n.length === 0 || n.length > e.length) {\n for (; i--; )\n if (e.codePointAt(i) === 47) {\n if (l) {\n t = i + 1;\n break;\n }\n } else r < 0 && (l = !0, r = i + 1);\n return r < 0 ? \"\" : e.slice(t, r);\n }\n if (n === e)\n return \"\";\n let o = -1, a = n.length - 1;\n for (; i--; )\n if (e.codePointAt(i) === 47) {\n if (l) {\n t = i + 1;\n break;\n }\n } else\n o < 0 && (l = !0, o = i + 1), a > -1 && (e.codePointAt(i) === n.codePointAt(a--) ? a < 0 && (r = i) : (a = -1, r = o));\n return t === r ? r = o : r < 0 && (r = e.length), e.slice(t, r);\n}\nfunction wa(e) {\n if (je(e), e.length === 0)\n return \".\";\n let n = -1, t = e.length, r;\n for (; --t; )\n if (e.codePointAt(t) === 47) {\n if (r) {\n n = t;\n break;\n }\n } else r || (r = !0);\n return n < 0 ? e.codePointAt(0) === 47 ? \"/\" : \".\" : n === 1 && e.codePointAt(0) === 47 ? \"//\" : e.slice(0, n);\n}\nfunction Sa(e) {\n je(e);\n let n = e.length, t = -1, r = 0, i = -1, l = 0, o;\n for (; n--; ) {\n const a = e.codePointAt(n);\n if (a === 47) {\n if (o) {\n r = n + 1;\n break;\n }\n continue;\n }\n t < 0 && (o = !0, t = n + 1), a === 46 ? i < 0 ? i = n : l !== 1 && (l = 1) : i > -1 && (l = -1);\n }\n return i < 0 || t < 0 || // We saw a non-dot character immediately before the dot.\n l === 0 || // The (right-most) trimmed path component is exactly `..`.\n l === 1 && i === t - 1 && i === r + 1 ? \"\" : e.slice(i, t);\n}\nfunction Ca(...e) {\n let n = -1, t;\n for (; ++n < e.length; )\n je(e[n]), e[n] && (t = t === void 0 ? e[n] : t + \"/\" + e[n]);\n return t === void 0 ? \".\" : Ea(t);\n}\nfunction Ea(e) {\n je(e);\n const n = e.codePointAt(0) === 47;\n let t = Ia(e, !n);\n return t.length === 0 && !n && (t = \".\"), t.length > 0 && e.codePointAt(e.length - 1) === 47 && (t += \"/\"), n ? \"/\" + t : t;\n}\nfunction Ia(e, n) {\n let t = \"\", r = 0, i = -1, l = 0, o = -1, a, s;\n for (; ++o <= e.length; ) {\n if (o < e.length)\n a = e.codePointAt(o);\n else {\n if (a === 47)\n break;\n a = 47;\n }\n if (a === 47) {\n if (!(i === o - 1 || l === 1)) if (i !== o - 1 && l === 2) {\n if (t.length < 2 || r !== 2 || t.codePointAt(t.length - 1) !== 46 || t.codePointAt(t.length - 2) !== 46) {\n if (t.length > 2) {\n if (s = t.lastIndexOf(\"/\"), s !== t.length - 1) {\n s < 0 ? (t = \"\", r = 0) : (t = t.slice(0, s), r = t.length - 1 - t.lastIndexOf(\"/\")), i = o, l = 0;\n continue;\n }\n } else if (t.length > 0) {\n t = \"\", r = 0, i = o, l = 0;\n continue;\n }\n }\n n && (t = t.length > 0 ? t + \"/..\" : \"..\", r = 2);\n } else\n t.length > 0 ? t += \"/\" + e.slice(i + 1, o) : t = e.slice(i + 1, o), r = o - i - 1;\n i = o, l = 0;\n } else a === 46 && l > -1 ? l++ : l = -1;\n }\n return t;\n}\nfunction je(e) {\n if (typeof e != \"string\")\n throw new TypeError(\n \"Path must be a string. Received \" + JSON.stringify(e)\n );\n}\nconst Aa = { cwd: Ta };\nfunction Ta() {\n return \"/\";\n}\nfunction wn(e) {\n return !!(e !== null && typeof e == \"object\" && \"href\" in e && e.href && \"protocol\" in e && e.protocol && // @ts-expect-error: indexing is fine.\n e.auth === void 0);\n}\nfunction Pa(e) {\n if (typeof e == \"string\")\n e = new URL(e);\n else if (!wn(e)) {\n const n = new TypeError(\n 'The \"path\" argument must be of type string or an instance of URL. Received `' + e + \"`\"\n );\n throw n.code = \"ERR_INVALID_ARG_TYPE\", n;\n }\n if (e.protocol !== \"file:\") {\n const n = new TypeError(\"The URL must be of scheme file\");\n throw n.code = \"ERR_INVALID_URL_SCHEME\", n;\n }\n return za(e);\n}\nfunction za(e) {\n if (e.hostname !== \"\") {\n const r = new TypeError(\n 'File URL host must be \"localhost\" or empty on darwin'\n );\n throw r.code = \"ERR_INVALID_FILE_URL_HOST\", r;\n }\n const n = e.pathname;\n let t = -1;\n for (; ++t < n.length; )\n if (n.codePointAt(t) === 37 && n.codePointAt(t + 1) === 50) {\n const r = n.codePointAt(t + 2);\n if (r === 70 || r === 102) {\n const i = new TypeError(\n \"File URL path must not include encoded / characters\"\n );\n throw i.code = \"ERR_INVALID_FILE_URL_PATH\", i;\n }\n }\n return decodeURIComponent(n);\n}\nconst an = (\n /** @type {const} */\n [\n \"history\",\n \"path\",\n \"basename\",\n \"stem\",\n \"extname\",\n \"dirname\"\n ]\n);\nclass or {\n /**\n * Create a new virtual file.\n *\n * `options` is treated as:\n *\n * * `string` or `Uint8Array` — `{value: options}`\n * * `URL` — `{path: options}`\n * * `VFile` — shallow copies its data over to the new file\n * * `object` — all fields are shallow copied over to the new file\n *\n * Path related fields are set in the following order (least specific to\n * most specific): `history`, `path`, `basename`, `stem`, `extname`,\n * `dirname`.\n *\n * You cannot set `dirname` or `extname` without setting either `history`,\n * `path`, `basename`, or `stem` too.\n *\n * @param {Compatible | null | undefined} [value]\n * File value.\n * @returns\n * New instance.\n */\n constructor(n) {\n let t;\n n ? wn(n) ? t = { path: n } : typeof n == \"string\" || La(n) ? t = { value: n } : t = n : t = {}, this.cwd = \"cwd\" in t ? \"\" : Aa.cwd(), this.data = {}, this.history = [], this.messages = [], this.value, this.map, this.result, this.stored;\n let r = -1;\n for (; ++r < an.length; ) {\n const l = an[r];\n l in t && t[l] !== void 0 && t[l] !== null && (this[l] = l === \"history\" ? [...t[l]] : t[l]);\n }\n let i;\n for (i in t)\n an.includes(i) || (this[i] = t[i]);\n }\n /**\n * Get the basename (including extname) (example: `'index.min.js'`).\n *\n * @returns {string | undefined}\n * Basename.\n */\n get basename() {\n return typeof this.path == \"string\" ? ue.basename(this.path) : void 0;\n }\n /**\n * Set basename (including extname) (`'index.min.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} basename\n * Basename.\n * @returns {undefined}\n * Nothing.\n */\n set basename(n) {\n sn(n, \"basename\"), un(n, \"basename\"), this.path = ue.join(this.dirname || \"\", n);\n }\n /**\n * Get the parent path (example: `'~'`).\n *\n * @returns {string | undefined}\n * Dirname.\n */\n get dirname() {\n return typeof this.path == \"string\" ? ue.dirname(this.path) : void 0;\n }\n /**\n * Set the parent path (example: `'~'`).\n *\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} dirname\n * Dirname.\n * @returns {undefined}\n * Nothing.\n */\n set dirname(n) {\n kt(this.basename, \"dirname\"), this.path = ue.join(n || \"\", this.basename);\n }\n /**\n * Get the extname (including dot) (example: `'.js'`).\n *\n * @returns {string | undefined}\n * Extname.\n */\n get extname() {\n return typeof this.path == \"string\" ? ue.extname(this.path) : void 0;\n }\n /**\n * Set the extname (including dot) (example: `'.js'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be set if there’s no `path` yet.\n *\n * @param {string | undefined} extname\n * Extname.\n * @returns {undefined}\n * Nothing.\n */\n set extname(n) {\n if (un(n, \"extname\"), kt(this.dirname, \"extname\"), n) {\n if (n.codePointAt(0) !== 46)\n throw new Error(\"`extname` must start with `.`\");\n if (n.includes(\".\", 1))\n throw new Error(\"`extname` cannot contain multiple dots\");\n }\n this.path = ue.join(this.dirname, this.stem + (n || \"\"));\n }\n /**\n * Get the full path (example: `'~/index.min.js'`).\n *\n * @returns {string}\n * Path.\n */\n get path() {\n return this.history[this.history.length - 1];\n }\n /**\n * Set the full path (example: `'~/index.min.js'`).\n *\n * Cannot be nullified.\n * You can set a file URL (a `URL` object with a `file:` protocol) which will\n * be turned into a path with `url.fileURLToPath`.\n *\n * @param {URL | string} path\n * Path.\n * @returns {undefined}\n * Nothing.\n */\n set path(n) {\n wn(n) && (n = Pa(n)), sn(n, \"path\"), this.path !== n && this.history.push(n);\n }\n /**\n * Get the stem (basename w/o extname) (example: `'index.min'`).\n *\n * @returns {string | undefined}\n * Stem.\n */\n get stem() {\n return typeof this.path == \"string\" ? ue.basename(this.path, this.extname) : void 0;\n }\n /**\n * Set the stem (basename w/o extname) (example: `'index.min'`).\n *\n * Cannot contain path separators (`'/'` on unix, macOS, and browsers, `'\\'`\n * on windows).\n * Cannot be nullified (use `file.path = file.dirname` instead).\n *\n * @param {string} stem\n * Stem.\n * @returns {undefined}\n * Nothing.\n */\n set stem(n) {\n sn(n, \"stem\"), un(n, \"stem\"), this.path = ue.join(this.dirname || \"\", n + (this.extname || \"\"));\n }\n // Normal prototypal methods.\n /**\n * Create a fatal message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `true` (error; file not usable)\n * and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {never}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {never}\n * Never.\n * @throws {VFileMessage}\n * Message.\n */\n fail(n, t, r) {\n const i = this.message(n, t, r);\n throw i.fatal = !0, i;\n }\n /**\n * Create an info message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `undefined` (info; change\n * likely not needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n info(n, t, r) {\n const i = this.message(n, t, r);\n return i.fatal = void 0, i;\n }\n /**\n * Create a message for `reason` associated with the file.\n *\n * The `fatal` field of the message is set to `false` (warning; change may be\n * needed) and the `file` field is set to the current file path.\n * The message is added to the `messages` field on `file`.\n *\n * > 🪦 **Note**: also has obsolete signatures.\n *\n * @overload\n * @param {string} reason\n * @param {MessageOptions | null | undefined} [options]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {string} reason\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Node | NodeLike | null | undefined} parent\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {Point | Position | null | undefined} place\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @overload\n * @param {Error | VFileMessage} cause\n * @param {string | null | undefined} [origin]\n * @returns {VFileMessage}\n *\n * @param {Error | VFileMessage | string} causeOrReason\n * Reason for message, should use markdown.\n * @param {Node | NodeLike | MessageOptions | Point | Position | string | null | undefined} [optionsOrParentOrPlace]\n * Configuration (optional).\n * @param {string | null | undefined} [origin]\n * Place in code where the message originates (example:\n * `'my-package:my-rule'` or `'my-rule'`).\n * @returns {VFileMessage}\n * Message.\n */\n message(n, t, r) {\n const i = new X(\n // @ts-expect-error: the overloads are fine.\n n,\n t,\n r\n );\n return this.path && (i.name = this.path + \":\" + i.name, i.file = this.path), i.fatal = !1, this.messages.push(i), i;\n }\n /**\n * Serialize the file.\n *\n * > **Note**: which encodings are supported depends on the engine.\n * > For info on Node.js, see:\n * > <https://nodejs.org/api/util.html#whatwg-supported-encodings>.\n *\n * @param {string | null | undefined} [encoding='utf8']\n * Character encoding to understand `value` as when it’s a `Uint8Array`\n * (default: `'utf-8'`).\n * @returns {string}\n * Serialized file.\n */\n toString(n) {\n return this.value === void 0 ? \"\" : typeof this.value == \"string\" ? this.value : new TextDecoder(n || void 0).decode(this.value);\n }\n}\nfunction un(e, n) {\n if (e && e.includes(ue.sep))\n throw new Error(\n \"`\" + n + \"` cannot be a path: did not expect `\" + ue.sep + \"`\"\n );\n}\nfunction sn(e, n) {\n if (!e)\n throw new Error(\"`\" + n + \"` cannot be empty\");\n}\nfunction kt(e, n) {\n if (!e)\n throw new Error(\"Setting `\" + n + \"` requires `path` to be set too\");\n}\nfunction La(e) {\n return !!(e && typeof e == \"object\" && \"byteLength\" in e && \"byteOffset\" in e);\n}\nconst va = (\n /**\n * @type {new <Parameters extends Array<unknown>, Result>(property: string | symbol) => (...parameters: Parameters) => Result}\n */\n /** @type {unknown} */\n /**\n * @this {Function}\n * @param {string | symbol} property\n * @returns {(...parameters: Array<unknown>) => unknown}\n */\n function(e) {\n const r = (\n /** @type {Record<string | symbol, Function>} */\n // Prototypes do exist.\n // type-coverage:ignore-next-line\n this.constructor.prototype\n ), i = r[e], l = function() {\n return i.apply(l, arguments);\n };\n return Object.setPrototypeOf(l, r), l;\n }\n), Da = {}.hasOwnProperty;\nclass Fn extends va {\n /**\n * Create a processor.\n */\n constructor() {\n super(\"copy\"), this.Compiler = void 0, this.Parser = void 0, this.attachers = [], this.compiler = void 0, this.freezeIndex = -1, this.frozen = void 0, this.namespace = {}, this.parser = void 0, this.transformers = xa();\n }\n /**\n * Copy a processor.\n *\n * @deprecated\n * This is a private internal method and should not be used.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * New *unfrozen* processor ({@linkcode Processor}) that is\n * configured to work the same as its ancestor.\n * When the descendant processor is configured in the future it does not\n * affect the ancestral processor.\n */\n copy() {\n const n = (\n /** @type {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>} */\n new Fn()\n );\n let t = -1;\n for (; ++t < this.attachers.length; ) {\n const r = this.attachers[t];\n n.use(...r);\n }\n return n.data(on(!0, {}, this.namespace)), n;\n }\n /**\n * Configure the processor with info available to all plugins.\n * Information is stored in an object.\n *\n * Typically, options can be given to a specific plugin, but sometimes it\n * makes sense to have information shared with several plugins.\n * For example, a list of HTML elements that are self-closing, which is\n * needed during all phases.\n *\n * > **Note**: setting information cannot occur on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * > **Note**: to register custom data in TypeScript, augment the\n * > {@linkcode Data} interface.\n *\n * @example\n * This example show how to get and set info:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * const processor = unified().data('alpha', 'bravo')\n *\n * processor.data('alpha') // => 'bravo'\n *\n * processor.data() // => {alpha: 'bravo'}\n *\n * processor.data({charlie: 'delta'})\n *\n * processor.data() // => {charlie: 'delta'}\n * ```\n *\n * @template {keyof Data} Key\n *\n * @overload\n * @returns {Data}\n *\n * @overload\n * @param {Data} dataset\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Key} key\n * @returns {Data[Key]}\n *\n * @overload\n * @param {Key} key\n * @param {Data[Key]} value\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @param {Data | Key} [key]\n * Key to get or set, or entire dataset to set, or nothing to get the\n * entire dataset (optional).\n * @param {Data[Key]} [value]\n * Value to set (optional).\n * @returns {unknown}\n * The current processor when setting, the value at `key` when getting, or\n * the entire dataset when getting without key.\n */\n data(n, t) {\n return typeof n == \"string\" ? arguments.length === 2 ? (fn(\"data\", this.frozen), this.namespace[n] = t, this) : Da.call(this.namespace, n) && this.namespace[n] || void 0 : n ? (fn(\"data\", this.frozen), this.namespace = n, this) : this.namespace;\n }\n /**\n * Freeze a processor.\n *\n * Frozen processors are meant to be extended and not to be configured\n * directly.\n *\n * When a processor is frozen it cannot be unfrozen.\n * New processors working the same way can be created by calling the\n * processor.\n *\n * It’s possible to freeze processors explicitly by calling `.freeze()`.\n * Processors freeze automatically when `.parse()`, `.run()`, `.runSync()`,\n * `.stringify()`, `.process()`, or `.processSync()` are called.\n *\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * The current processor.\n */\n freeze() {\n if (this.frozen)\n return this;\n const n = (\n /** @type {Processor} */\n /** @type {unknown} */\n this\n );\n for (; ++this.freezeIndex < this.attachers.length; ) {\n const [t, ...r] = this.attachers[this.freezeIndex];\n if (r[0] === !1)\n continue;\n r[0] === !0 && (r[0] = void 0);\n const i = t.call(n, ...r);\n typeof i == \"function\" && this.transformers.use(i);\n }\n return this.frozen = !0, this.freezeIndex = Number.POSITIVE_INFINITY, this;\n }\n /**\n * Parse text to a syntax tree.\n *\n * > **Note**: `parse` freezes the processor if not already *frozen*.\n *\n * > **Note**: `parse` performs the parse phase, not the run phase or other\n * > phases.\n *\n * @param {Compatible | undefined} [file]\n * file to parse (optional); typically `string` or `VFile`; any value\n * accepted as `x` in `new VFile(x)`.\n * @returns {ParseTree extends undefined ? Node : ParseTree}\n * Syntax tree representing `file`.\n */\n parse(n) {\n this.freeze();\n const t = We(n), r = this.parser || this.Parser;\n return cn(\"parse\", r), r(String(t), t);\n }\n /**\n * Process the given file as configured on the processor.\n *\n * > **Note**: `process` freezes the processor if not already *frozen*.\n *\n * > **Note**: `process` performs the parse, run, and stringify phases.\n *\n * @overload\n * @param {Compatible | undefined} file\n * @param {ProcessCallback<VFileWithOutput<CompileResult>>} done\n * @returns {undefined}\n *\n * @overload\n * @param {Compatible | undefined} [file]\n * @returns {Promise<VFileWithOutput<CompileResult>>}\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`]; any value accepted as\n * `x` in `new VFile(x)`.\n * @param {ProcessCallback<VFileWithOutput<CompileResult>> | undefined} [done]\n * Callback (optional).\n * @returns {Promise<VFile> | undefined}\n * Nothing if `done` is given.\n * Otherwise a promise, rejected with a fatal error or resolved with the\n * processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n process(n, t) {\n const r = this;\n return this.freeze(), cn(\"process\", this.parser || this.Parser), pn(\"process\", this.compiler || this.Compiler), t ? i(void 0, t) : new Promise(i);\n function i(l, o) {\n const a = We(n), s = (\n /** @type {HeadTree extends undefined ? Node : HeadTree} */\n /** @type {unknown} */\n r.parse(a)\n );\n r.run(s, a, function(c, f, d) {\n if (c || !f || !d)\n return u(c);\n const p = (\n /** @type {CompileTree extends undefined ? Node : CompileTree} */\n /** @type {unknown} */\n f\n ), b = r.stringify(p, d);\n Fa(b) ? d.value = b : d.result = b, u(\n c,\n /** @type {VFileWithOutput<CompileResult>} */\n d\n );\n });\n function u(c, f) {\n c || !f ? o(c) : l ? l(f) : t(void 0, f);\n }\n }\n }\n /**\n * Process the given file as configured on the processor.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `processSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `processSync` performs the parse, run, and stringify phases.\n *\n * @param {Compatible | undefined} [file]\n * File (optional); typically `string` or `VFile`; any value accepted as\n * `x` in `new VFile(x)`.\n * @returns {VFileWithOutput<CompileResult>}\n * The processed file.\n *\n * The parsed, transformed, and compiled value is available at\n * `file.value` (see note).\n *\n * > **Note**: unified typically compiles by serializing: most\n * > compilers return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n processSync(n) {\n let t = !1, r;\n return this.freeze(), cn(\"processSync\", this.parser || this.Parser), pn(\"processSync\", this.compiler || this.Compiler), this.process(n, i), wt(\"processSync\", \"process\", t), r;\n function i(l, o) {\n t = !0, yt(l), r = o;\n }\n }\n /**\n * Run *transformers* on a syntax tree.\n *\n * > **Note**: `run` freezes the processor if not already *frozen*.\n *\n * > **Note**: `run` performs the run phase, not other phases.\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} file\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} done\n * @returns {undefined}\n *\n * @overload\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * @param {Compatible | undefined} [file]\n * @returns {Promise<TailTree extends undefined ? Node : TailTree>}\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {(\n * RunCallback<TailTree extends undefined ? Node : TailTree> |\n * Compatible\n * )} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @param {RunCallback<TailTree extends undefined ? Node : TailTree>} [done]\n * Callback (optional).\n * @returns {Promise<TailTree extends undefined ? Node : TailTree> | undefined}\n * Nothing if `done` is given.\n * Otherwise, a promise rejected with a fatal error or resolved with the\n * transformed tree.\n */\n run(n, t, r) {\n bt(n), this.freeze();\n const i = this.transformers;\n return !r && typeof t == \"function\" && (r = t, t = void 0), r ? l(void 0, r) : new Promise(l);\n function l(o, a) {\n const s = We(t);\n i.run(n, s, u);\n function u(c, f, d) {\n const p = (\n /** @type {TailTree extends undefined ? Node : TailTree} */\n f || n\n );\n c ? a(c) : o ? o(p) : r(void 0, p, d);\n }\n }\n }\n /**\n * Run *transformers* on a syntax tree.\n *\n * An error is thrown if asynchronous transforms are configured.\n *\n * > **Note**: `runSync` freezes the processor if not already *frozen*.\n *\n * > **Note**: `runSync` performs the run phase, not other phases.\n *\n * @param {HeadTree extends undefined ? Node : HeadTree} tree\n * Tree to transform and inspect.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {TailTree extends undefined ? Node : TailTree}\n * Transformed tree.\n */\n runSync(n, t) {\n let r = !1, i;\n return this.run(n, t, l), wt(\"runSync\", \"run\", r), i;\n function l(o, a) {\n yt(o), i = a, r = !0;\n }\n }\n /**\n * Compile a syntax tree.\n *\n * > **Note**: `stringify` freezes the processor if not already *frozen*.\n *\n * > **Note**: `stringify` performs the stringify phase, not the run phase\n * > or other phases.\n *\n * @param {CompileTree extends undefined ? Node : CompileTree} tree\n * Tree to compile.\n * @param {Compatible | undefined} [file]\n * File associated with `node` (optional); any value accepted as `x` in\n * `new VFile(x)`.\n * @returns {CompileResult extends undefined ? Value : CompileResult}\n * Textual representation of the tree (see note).\n *\n * > **Note**: unified typically compiles by serializing: most compilers\n * > return `string` (or `Uint8Array`).\n * > Some compilers, such as the one configured with\n * > [`rehype-react`][rehype-react], return other values (in this case, a\n * > React tree).\n * > If you’re using a compiler that doesn’t serialize, expect different\n * > result values.\n * >\n * > To register custom results in TypeScript, add them to\n * > {@linkcode CompileResultMap}.\n *\n * [rehype-react]: https://github.com/rehypejs/rehype-react\n */\n stringify(n, t) {\n this.freeze();\n const r = We(t), i = this.compiler || this.Compiler;\n return pn(\"stringify\", i), bt(n), i(n, r);\n }\n /**\n * Configure the processor to use a plugin, a list of usable values, or a\n * preset.\n *\n * If the processor is already using a plugin, the previous plugin\n * configuration is changed based on the options that are passed in.\n * In other words, the plugin is not added a second time.\n *\n * > **Note**: `use` cannot be called on *frozen* processors.\n * > Call the processor first to create a new unfrozen processor.\n *\n * @example\n * There are many ways to pass plugins to `.use()`.\n * This example gives an overview:\n *\n * ```js\n * import {unified} from 'unified'\n *\n * unified()\n * // Plugin with options:\n * .use(pluginA, {x: true, y: true})\n * // Passing the same plugin again merges configuration (to `{x: true, y: false, z: true}`):\n * .use(pluginA, {y: false, z: true})\n * // Plugins:\n * .use([pluginB, pluginC])\n * // Two plugins, the second with options:\n * .use([pluginD, [pluginE, {}]])\n * // Preset with plugins and settings:\n * .use({plugins: [pluginF, [pluginG, {}]], settings: {position: false}})\n * // Settings only:\n * .use({settings: {position: false}})\n * ```\n *\n * @template {Array<unknown>} [Parameters=[]]\n * @template {Node | string | undefined} [Input=undefined]\n * @template [Output=Input]\n *\n * @overload\n * @param {Preset | null | undefined} [preset]\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {PluggableList} list\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n *\n * @overload\n * @param {Plugin<Parameters, Input, Output>} plugin\n * @param {...(Parameters | [boolean])} parameters\n * @returns {UsePlugin<ParseTree, HeadTree, TailTree, CompileTree, CompileResult, Input, Output>}\n *\n * @param {PluggableList | Plugin | Preset | null | undefined} value\n * Usable value.\n * @param {...unknown} parameters\n * Parameters, when a plugin is given as a usable value.\n * @returns {Processor<ParseTree, HeadTree, TailTree, CompileTree, CompileResult>}\n * Current processor.\n */\n use(n, ...t) {\n const r = this.attachers, i = this.namespace;\n if (fn(\"use\", this.frozen), n != null) if (typeof n == \"function\")\n s(n, t);\n else if (typeof n == \"object\")\n Array.isArray(n) ? a(n) : o(n);\n else\n throw new TypeError(\"Expected usable value, not `\" + n + \"`\");\n return this;\n function l(u) {\n if (typeof u == \"function\")\n s(u, []);\n else if (typeof u == \"object\")\n if (Array.isArray(u)) {\n const [c, ...f] = (\n /** @type {PluginTuple<Array<unknown>>} */\n u\n );\n s(c, f);\n } else\n o(u);\n else\n throw new TypeError(\"Expected usable value, not `\" + u + \"`\");\n }\n function o(u) {\n if (!(\"plugins\" in u) && !(\"settings\" in u))\n throw new Error(\n \"Expected usable value but received an empty preset, which is probably a mistake: presets typically come with `plugins` and sometimes with `settings`, but this has neither\"\n );\n a(u.plugins), u.settings && (i.settings = on(!0, i.settings, u.settings));\n }\n function a(u) {\n let c = -1;\n if (u != null) if (Array.isArray(u))\n for (; ++c < u.length; ) {\n const f = u[c];\n l(f);\n }\n else\n throw new TypeError(\"Expected a list of plugins, not `\" + u + \"`\");\n }\n function s(u, c) {\n let f = -1, d = -1;\n for (; ++f < r.length; )\n if (r[f][0] === u) {\n d = f;\n break;\n }\n if (d === -1)\n r.push([u, ...c]);\n else if (c.length > 0) {\n let [p, ...b] = c;\n const w = r[d][1];\n bn(w) && bn(p) && (p = on(!0, w, p)), r[d] = [u, p, ...b];\n }\n }\n }\n}\nconst Oa = new Fn().freeze();\nfunction cn(e, n) {\n if (typeof n != \"function\")\n throw new TypeError(\"Cannot `\" + e + \"` without `parser`\");\n}\nfunction pn(e, n) {\n if (typeof n != \"function\")\n throw new TypeError(\"Cannot `\" + e + \"` without `compiler`\");\n}\nfunction fn(e, n) {\n if (n)\n throw new Error(\n \"Cannot call `\" + e + \"` on a frozen processor.\\nCreate a new processor first, by calling it: use `processor()` instead of `processor`.\"\n );\n}\nfunction bt(e) {\n if (!bn(e) || typeof e.type != \"string\")\n throw new TypeError(\"Expected node, got `\" + e + \"`\");\n}\nfunction wt(e, n, t) {\n if (!t)\n throw new Error(\n \"`\" + e + \"` finished async. Use `\" + n + \"` instead\"\n );\n}\nfunction We(e) {\n return Ra(e) ? e : new or(e);\n}\nfunction Ra(e) {\n return !!(e && typeof e == \"object\" && \"message\" in e && \"messages\" in e);\n}\nfunction Fa(e) {\n return typeof e == \"string\" || Na(e);\n}\nfunction Na(e) {\n return !!(e && typeof e == \"object\" && \"byteLength\" in e && \"byteOffset\" in e);\n}\nconst Ma = \"https://github.com/remarkjs/react-markdown/blob/main/changelog.md\", St = [], Ct = { allowDangerousHtml: !0 }, _a = /^(https?|ircs?|mailto|xmpp)$/i, Ba = [\n { from: \"astPlugins\", id: \"remove-buggy-html-in-markdown-parser\" },\n { from: \"allowDangerousHtml\", id: \"remove-buggy-html-in-markdown-parser\" },\n {\n from: \"allowNode\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"allowElement\"\n },\n {\n from: \"allowedTypes\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"allowedElements\"\n },\n {\n from: \"disallowedTypes\",\n id: \"replace-allownode-allowedtypes-and-disallowedtypes\",\n to: \"disallowedElements\"\n },\n { from: \"escapeHtml\", id: \"remove-buggy-html-in-markdown-parser\" },\n { from: \"includeElementIndex\", id: \"#remove-includeelementindex\" },\n {\n from: \"includeNodeIndex\",\n id: \"change-includenodeindex-to-includeelementindex\"\n },\n { from: \"linkTarget\", id: \"remove-linktarget\" },\n { from: \"plugins\", id: \"change-plugins-to-remarkplugins\", to: \"remarkPlugins\" },\n { from: \"rawSourcePos\", id: \"#remove-rawsourcepos\" },\n { from: \"renderers\", id: \"change-renderers-to-components\", to: \"components\" },\n { from: \"source\", id: \"change-source-to-children\", to: \"children\" },\n { from: \"sourcePos\", id: \"#remove-sourcepos\" },\n { from: \"transformImageUri\", id: \"#add-urltransform\", to: \"urlTransform\" },\n { from: \"transformLinkUri\", id: \"#add-urltransform\", to: \"urlTransform\" }\n];\nfunction ja(e) {\n const n = e.allowedElements, t = e.allowElement, r = e.children || \"\", i = e.className, l = e.components, o = e.disallowedElements, a = e.rehypePlugins || St, s = e.remarkPlugins || St, u = e.remarkRehypeOptions ? { ...e.remarkRehypeOptions, ...Ct } : Ct, c = e.skipHtml, f = e.unwrapDisallowed, d = e.urlTransform || Ha, p = Oa().use(bo).use(s).use(da, u).use(a), b = new or();\n typeof r == \"string\" && (b.value = r);\n for (const C of Ba)\n Object.hasOwn(e, C.from) && (\"\" + C.from + (C.to ? \"use `\" + C.to + \"` instead\" : \"remove it\") + Ma + C.id, void 0);\n const w = p.parse(b);\n let A = p.runSync(w, b);\n return i && (A = {\n type: \"element\",\n tagName: \"div\",\n properties: { className: i },\n // Assume no doctypes.\n children: (\n /** @type {Array<ElementContent>} */\n A.type === \"root\" ? A.children : [A]\n )\n }), lr(A, x), Gr(A, {\n Fragment: Sr,\n // @ts-expect-error\n // React components are allowed to return numbers,\n // but not according to the types in hast-util-to-jsx-runtime\n components: l,\n ignoreInvalidStyle: !0,\n jsx: ae,\n jsxs: wr,\n passKeys: !0,\n passNode: !0\n });\n function x(C, E, N) {\n if (C.type === \"raw\" && N && typeof E == \"number\")\n return c ? N.children.splice(E, 1) : N.children[E] = { type: \"text\", value: C.value }, E;\n if (C.type === \"element\") {\n let R;\n for (R in nn)\n if (Object.hasOwn(nn, R) && Object.hasOwn(C.properties, R)) {\n const y = C.properties[R], F = nn[R];\n (F === null || F.includes(C.tagName)) && (C.properties[R] = d(String(y || \"\"), R, C));\n }\n }\n if (C.type === \"element\") {\n let R = n ? !n.includes(C.tagName) : o ? o.includes(C.tagName) : !1;\n if (!R && t && typeof E == \"number\" && (R = !t(C, E, N)), R && N && typeof E == \"number\")\n return f && C.children ? N.children.splice(E, 1, ...C.children) : N.children.splice(E, 1), E;\n }\n }\n}\nfunction Ha(e) {\n const n = e.indexOf(\":\"), t = e.indexOf(\"?\"), r = e.indexOf(\"#\"), i = e.indexOf(\"/\");\n return (\n // If there is no protocol, it’s relative.\n n === -1 || // If the first colon is after a `?`, `#`, or `/`, it’s not a protocol.\n i !== -1 && n > i || t !== -1 && n > t || r !== -1 && n > r || // It is a protocol, it should be allowed.\n _a.test(e.slice(0, n)) ? e : \"\"\n );\n}\nconst Ua = ({ children: e }) => /* @__PURE__ */ ae(\"div\", { style: { whiteSpace: \"normal\" }, children: /* @__PURE__ */ ae(\n ja,\n {\n components: {\n p: ({ ...t }) => /* @__PURE__ */ ae(\n \"p\",\n {\n style: {\n margin: 0,\n marginBottom: \"0.5em\",\n lineHeight: 1.4,\n textAlign: \"left\"\n },\n children: t.children\n }\n ),\n ul: ({ ...t }) => /* @__PURE__ */ ae(\n \"ul\",\n {\n style: {\n paddingLeft: \"clamp(8px, 3.5vw, 16px)\",\n margin: 0,\n listStylePosition: \"inside\"\n // KEY CHANGE\n },\n children: t.children\n }\n ),\n ol: ({ ...t }) => /* @__PURE__ */ ae(\n \"ol\",\n {\n style: {\n paddingLeft: \"clamp(8px, 3.5vw, 16px)\",\n margin: 0,\n listStylePosition: \"inside\"\n // KEY CHANGE\n },\n children: t.children\n }\n ),\n // KEY CHANGE: Remove custom bullet rendering, let browser handle bullets & numbers\n li: ({ ...t }) => /* @__PURE__ */ ae(\n \"li\",\n {\n style: {\n marginBottom: \"1px\",\n lineHeight: 1.4\n },\n children: t.children\n }\n ),\n code({ inline: t, children: r }) {\n return t ? /* @__PURE__ */ ae(\n \"code\",\n {\n style: {\n backgroundColor: \"rgba(0, 0, 0, 0.3)\",\n padding: \"2px 4px\",\n borderRadius: \"4px\",\n fontFamily: \"inherit\",\n fontSize: \"0.95em\"\n },\n children: r\n }\n ) : /* @__PURE__ */ ae(\n \"pre\",\n {\n style: {\n backgroundColor: \"rgba(0, 0, 0, 0.3)\",\n padding: \"8px\",\n borderRadius: \"4px\",\n overflowX: \"auto\",\n margin: \"0.5em 0\",\n whiteSpace: \"pre-wrap\"\n // preserve line breaks\n },\n children: /* @__PURE__ */ ae(\"code\", { children: r })\n }\n );\n },\n blockquote: ({ ...t }) => /* @__PURE__ */ ae(\n \"blockquote\",\n {\n style: {\n margin: 0,\n paddingLeft: \"10px\",\n borderLeft: \"2px solid #ccc\",\n color: \"#666\",\n fontStyle: \"italic\"\n },\n children: t.children\n }\n )\n },\n children: typeof e == \"string\" ? e : \"\"\n }\n) }), Va = {\n autoConfig: !0\n}, qa = (e, n, t) => {\n var i;\n if (typeof e.data.message.content != \"string\" || !e.detail.currPath)\n return !1;\n const r = n[e.detail.currPath];\n return r ? ((i = r.renderMarkdown) == null ? void 0 : i.map((l) => l.toUpperCase()).includes(t)) ?? !1 : !1;\n}, $a = (e) => {\n const { getFlow: n } = yr(), { messages: t, replaceMessages: r } = xr(), { settings: i } = kr(), { hasChatHistoryLoaded: l } = br(), o = { ...e, ...Va }, a = o.markdownComponent ? o.markdownComponent : Ua;\n gr(() => {\n var c, f;\n if (l) {\n const d = [...t];\n for (let p = 0; p < d.length && p < (((c = i.chatHistory) == null ? void 0 : c.maxEntries) ?? 30); p++) {\n const b = d[p];\n (f = b.tags) != null && f.includes(\"rcb-markdown-renderer-plugin:parsed\") && (b.contentWrapper = a);\n }\n r(d);\n }\n }, [l]);\n const s = async (c) => {\n var d;\n const f = (d = c.data.message) == null ? void 0 : d.sender.toUpperCase();\n qa(c, n(), f) && (c.data.message.contentWrapper = a, c.data.message.tags || (c.data.message.tags = []), c.data.message.tags.push(\"rcb-markdown-renderer-plugin:parsed\"));\n };\n Ue(Ve.PRE_INJECT_MESSAGE, s), Ue(Ve.CHUNK_STREAM_MESSAGE, s), Ue(Ve.START_STREAM_MESSAGE, s), Ue(Ve.START_SIMULATE_STREAM_MESSAGE, s);\n const u = {\n name: \"@rcb-plugins/markdown-renderer\"\n };\n return o != null && o.autoConfig && (u.settings = {\n event: {\n rcbPreInjectMessage: !0,\n rcbChunkStreamMessage: !0,\n rcbStartSimulateStreamMessage: !0,\n rcbStartStreamMessage: !0\n }\n }), u;\n}, Xa = (e) => () => $a(e);\nexport {\n Xa as default\n};\n","import { useState as A, useRef as U, useEffect as B } from \"react\";\nimport { useToasts as E, useFlow as C, useStyles as I, useOnRcbEvent as f, RcbEvent as h } from \"react-chatbotify\";\nconst i = {\n autoConfig: !0,\n // defaults to true to help users enable required events\n promptBaseColors: {\n info: \"#007bff\",\n warning: \"#ffc107\",\n error: \"#dc3545\",\n success: \"#28a745\"\n },\n promptHoveredColors: {\n info: \"#0056b3\",\n warning: \"#d39e00\",\n error: \"#c82333\",\n success: \"#218838\"\n },\n textAreaHighlightColors: {\n info: \"#007bff\",\n warning: \"#ffc107\",\n error: \"#dc3545\",\n success: \"#28a745\"\n }\n}, R = (t) => ({\n ...i,\n ...t,\n promptBaseColors: {\n ...i.promptBaseColors,\n ...t == null ? void 0 : t.promptBaseColors\n },\n promptHoveredColors: {\n ...i.promptHoveredColors,\n ...t == null ? void 0 : t.promptHoveredColors\n },\n textAreaHighlightColors: {\n ...i.textAreaHighlightColors,\n ...t == null ? void 0 : t.textAreaHighlightColors\n }\n}), w = (t, e) => {\n const r = t.promptType ?? \"info\";\n let o = {};\n return e.advancedStyles && (o = e.advancedStyles[r]), e.promptBaseColors && (o.toastPromptStyle = {\n color: e.promptBaseColors[r],\n borderColor: e.promptBaseColors[r]\n }), e.promptHoveredColors && (o.toastPromptHoveredStyle = {\n color: e.promptHoveredColors[r],\n borderColor: e.promptHoveredColors[r]\n }), e.textAreaHighlightColors && (t.highlightTextArea ?? !0) && (o.chatInputAreaStyle = {\n boxShadow: `${e.textAreaHighlightColors[r]} 0px 0px 5px`\n }), o;\n}, y = (t, e, r = \"validateTextInput\") => {\n var l;\n if (!((l = t.detail) != null && l.currPath))\n return;\n const o = e[t.detail.currPath];\n if (!o)\n return;\n const u = o[r];\n return typeof u == \"function\" ? u : void 0;\n}, F = (t) => {\n const { showToast: e } = E(), { getFlow: r } = C(), { styles: o, updateStyles: u, replaceStyles: l } = I(), S = R(t), [m, v] = A(0), b = U({}), P = (a) => {\n const n = a, p = y(n, r(), \"validateTextInput\");\n if (!p)\n return;\n const s = p(n.data.inputText);\n if (s != null && s.success || a.preventDefault(), !s.promptContent)\n return;\n m === 0 && (b.current = structuredClone(o));\n const c = w(s, S);\n u(c), e(s.promptContent, s.promptDuration ?? 3e3), v((d) => d + 1);\n }, H = (a) => {\n var d, x;\n const n = a, p = (x = (d = n.data) == null ? void 0 : d.files) == null ? void 0 : x[0];\n if (!p) {\n console.error(\"No file uploaded.\"), a.preventDefault();\n return;\n }\n const s = y(n, r(), \"validateFileInput\");\n if (!s) {\n console.error(\"Validator not found for file input.\");\n return;\n }\n const c = s(p);\n if (!c.success) {\n console.error(\"Validation failed:\", c), c.promptContent && e(c.promptContent, c.promptDuration ?? 3e3), a.preventDefault();\n return;\n }\n console.log(\"Validation successful:\", c);\n }, D = () => {\n v((a) => a - 1);\n };\n f(h.USER_SUBMIT_TEXT, P), f(h.USER_UPLOAD_FILE, H), f(h.DISMISS_TOAST, D), B(() => {\n m === 0 && setTimeout(() => {\n l(b.current);\n });\n }, [m, l]);\n const T = {\n name: \"@rcb-plugins/input-validator\"\n };\n return S.autoConfig && (T.settings = {\n event: {\n rcbUserSubmitText: !0,\n rcbUserUploadFile: !0,\n rcbDismissToast: !0\n }\n }), T;\n}, M = (t) => () => F(t);\nexport {\n M as default\n};\n","import validate from './validate.js';\nconst byteToHex = [];\nfor (let i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).slice(1));\n}\nexport function unsafeStringify(arr, offset = 0) {\n return (byteToHex[arr[offset + 0]] +\n byteToHex[arr[offset + 1]] +\n byteToHex[arr[offset + 2]] +\n byteToHex[arr[offset + 3]] +\n '-' +\n byteToHex[arr[offset + 4]] +\n byteToHex[arr[offset + 5]] +\n '-' +\n byteToHex[arr[offset + 6]] +\n byteToHex[arr[offset + 7]] +\n '-' +\n byteToHex[arr[offset + 8]] +\n byteToHex[arr[offset + 9]] +\n '-' +\n byteToHex[arr[offset + 10]] +\n byteToHex[arr[offset + 11]] +\n byteToHex[arr[offset + 12]] +\n byteToHex[arr[offset + 13]] +\n byteToHex[arr[offset + 14]] +\n byteToHex[arr[offset + 15]]).toLowerCase();\n}\nfunction stringify(arr, offset = 0) {\n const uuid = unsafeStringify(arr, offset);\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n return uuid;\n}\nexport default stringify;\n","let getRandomValues;\nconst rnds8 = new Uint8Array(16);\nexport default function rng() {\n if (!getRandomValues) {\n if (typeof crypto === 'undefined' || !crypto.getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n getRandomValues = crypto.getRandomValues.bind(crypto);\n }\n return getRandomValues(rnds8);\n}\n","const randomUUID = typeof crypto !== 'undefined' && crypto.randomUUID && crypto.randomUUID.bind(crypto);\nexport default { randomUUID };\n","import native from './native.js';\nimport rng from './rng.js';\nimport { unsafeStringify } from './stringify.js';\nfunction v4(options, buf, offset) {\n if (native.randomUUID && !buf && !options) {\n return native.randomUUID();\n }\n options = options || {};\n const rnds = options.random ?? options.rng?.() ?? rng();\n if (rnds.length < 16) {\n throw new Error('Random bytes length must be >= 16');\n }\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n if (buf) {\n offset = offset || 0;\n if (offset < 0 || offset + 16 > buf.length) {\n throw new RangeError(`UUID byte range ${offset}:${offset + 15} is out of buffer bounds`);\n }\n for (let i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n return buf;\n }\n return unsafeStringify(rnds);\n}\nexport default v4;\n","export const DEFAULT_CONFIG = {\n LOGIN_URL: '/login',\n WELCOME_MESSAGE: 'Hello! What can I help you with?',\n WELCOME_MESSAGE_LOGGED_OUT: 'To ask questions, please log in.',\n WELCOME_MESSAGE_LOGIN_TRANSITION: 'Welcome! You are now logged in. What can I help you with?',\n WELCOME_MESSAGE_LOGOUT_TRANSITION: 'You have been logged out.',\n API_ENDPOINT: 'https://access-ai.ccs.uky.edu/api/query',\n //API_ENDPOINT: 'https://access-ai.ccs.uky.edu:543/api/query',\n\n // Netlify function URL\n netlifyBaseUrl: process.env.REACT_APP_NETLIFY_BASE_URL,\n\n ERRORS: {\n API_UNAVAILABLE: 'Unable to contact the Q&A Bot. Please try again later.',\n },\n\n BEHAVIOR: {\n SHOW_RATING_AFTER_FAILED_QUERY: true\n },\n\n THEME: {\n PRIMARY_COLOR: '#1a5b6e',\n SECONDARY_COLOR: '#107180',\n FONT_FAMILY: 'Arial, sans-serif'\n },\n\n CHATBOT: {\n TITLE: 'ACCESS Q&A',\n AVATAR_URL: 'https://support.access-ci.org/themes/contrib/asp-theme/images/icons/ACCESS-arrrow.svg',\n TOOLTIP_TEXT: 'Ask me about ACCESS! 😊'\n }\n};\n\n// Helper functions from strings.js\nexport const buildWelcomeMessage = (isLoggedIn, welcomeMessage) => {\n if (isLoggedIn) {\n return welcomeMessage || DEFAULT_CONFIG.WELCOME_MESSAGE;\n } else {\n // Since tickets and feedback are available to everyone, use the normal welcome\n return welcomeMessage || DEFAULT_CONFIG.WELCOME_MESSAGE;\n }\n};\n\nexport const getApiKey = (providedApiKey) => {\n // Return provided API key if available, otherwise fall back to environment variable\n return providedApiKey || process.env.REACT_APP_API_KEY;\n};","import React, { useImperativeHandle, useEffect, useRef } from 'react';\nimport { useMessages, useChatWindow } from \"react-chatbotify\";\nimport useLoginStateTransition from '../hooks/useLoginStateTransition';\n\n/**\n * BotController Component\n *\n * Handles the integration between react-chatbotify hooks and the imperative API.\n * This component must be rendered inside ChatBotProvider to access the hooks.\n *\n * @param {Object} props - Component props\n * @param {boolean} props.embedded - Whether the bot is embedded (affects chat window controls)\n * @param {boolean} props.isBotLoggedIn - Current login state\n * @param {boolean} props.currentOpen - Current open state\n * @param {React.Ref} ref - The forwarded ref for the imperative API\n */\nconst BotController = React.forwardRef(({\n embedded,\n isBotLoggedIn,\n currentOpen\n}, ref) => {\n // Get the chatbot hooks (must be inside ChatBotProvider)\n const messages = useMessages();\n const chatWindow = useChatWindow();\n\n const lastOpenRef = useRef(currentOpen);\n const fromEventRef = useRef(false);\n\n useLoginStateTransition(isBotLoggedIn);\n\n // Sync open state with chat window when it changes (but not when change came from event)\n useEffect(() => {\n if (!embedded && chatWindow && chatWindow.toggleChatWindow) {\n if (lastOpenRef.current !== currentOpen && !fromEventRef.current) {\n if (chatWindow && chatWindow.toggleChatWindow) {\n chatWindow.toggleChatWindow(currentOpen);\n lastOpenRef.current = currentOpen;\n }\n }\n fromEventRef.current = false;\n }\n }, [currentOpen, embedded, chatWindow]);\n\n // Expose a method to mark that the next state change came from user interaction\n useEffect(() => {\n const markAsUserInteraction = () => {\n fromEventRef.current = true;\n };\n\n // Store the function on the ref so QABot can call it\n if (ref) {\n if (!ref.current) {\n ref.current = {};\n }\n ref.current._markAsUserInteraction = markAsUserInteraction;\n }\n });\n\n // An imperative method to add a message to bot\n // wrapping react-chatbotify `insertMessage`\n useImperativeHandle(ref, () => ({\n // Add a message to the chat\n addMessage: (message) => {\n if (messages && messages.injectMessage) {\n messages.injectMessage(message);\n }\n }\n }), [messages]);\n return null;\n});\n\nBotController.displayName = 'BotController';\n\nexport default BotController;","import { useEffect, useRef } from 'react';\nimport { useMessages } from 'react-chatbotify';\nimport { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Custom hook to handle login state transitions with automatic message injection\n * @param {boolean} isBotLoggedIn - Current login state\n */\nconst useLoginStateTransition = (isBotLoggedIn) => {\n const prevLoginStateRef = useRef(isBotLoggedIn);\n const { injectMessage } = useMessages();\n\n useEffect(() => {\n const loginStateChanged = prevLoginStateRef.current !== isBotLoggedIn;\n const justLoggedIn = !prevLoginStateRef.current && isBotLoggedIn;\n\n if (loginStateChanged) {\n if (justLoggedIn) {\n injectMessage(DEFAULT_CONFIG.WELCOME_MESSAGE_LOGIN_TRANSITION, 'bot');\n } else {\n injectMessage(DEFAULT_CONFIG.WELCOME_MESSAGE_LOGOUT_TRANSITION, 'bot');\n }\n }\n\n // Update the previous state for next comparison\n prevLoginStateRef.current = isBotLoggedIn;\n }, [isBotLoggedIn, injectMessage]);\n};\n\nexport default useLoginStateTransition;","import { useMemo } from 'react';\nimport { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Custom hook to get theme colors from CSS variables\n * @param {React.RefObject} containerRef - Reference to the container element\n * @param {Object} defaultColors - Default color values if CSS variables are not found\n * @returns {Object} Theme colors object\n */\nconst useThemeColors = (containerRef, defaultColors = {}) => {\n const themeColors = useMemo(() => {\n // Get colors from CSS variables if available, fall back to defaults\n const getCSSVariable = (name, fallback) => {\n if (containerRef.current) {\n // First check the container itself\n const containerStyle = getComputedStyle(containerRef.current);\n const containerValue = containerStyle.getPropertyValue(name);\n if (containerValue && containerValue.trim() !== '') {\n return containerValue.trim();\n }\n\n // Then check parent\n if (containerRef.current.parentElement) {\n const parentStyle = getComputedStyle(containerRef.current.parentElement);\n const parentValue = parentStyle.getPropertyValue(name);\n if (parentValue && parentValue.trim() !== '') {\n return parentValue.trim();\n }\n }\n }\n return fallback;\n };\n\n return {\n primaryColor: getCSSVariable('--primary-color', defaultColors.primaryColor || DEFAULT_CONFIG.THEME.PRIMARY_COLOR),\n secondaryColor: getCSSVariable('--secondary-color', defaultColors.secondaryColor || DEFAULT_CONFIG.THEME.SECONDARY_COLOR),\n fontFamily: getCSSVariable('--font-family', defaultColors.fontFamily || DEFAULT_CONFIG.THEME.FONT_FAMILY)\n };\n }, [containerRef, defaultColors]);\n\n return themeColors;\n};\n\nexport default useThemeColors;","import React, { createContext, useContext, useState } from 'react';\n\n// Create the Form Context\nconst FormContext = createContext();\n\n// Form Provider component\nexport const FormProvider = ({ children }) => {\n const [ticketForm, setTicketForm] = useState({});\n const [feedbackForm, setFeedbackForm] = useState({});\n\n const updateTicketForm = (updates) => {\n setTicketForm(prevForm => ({\n ...prevForm,\n ...updates\n }));\n };\n\n const updateFeedbackForm = (updates) => {\n setFeedbackForm(prevForm => ({\n ...prevForm,\n ...updates\n }));\n };\n\n const resetTicketForm = () => {\n setTicketForm({});\n };\n\n const resetFeedbackForm = () => {\n setFeedbackForm({});\n };\n\n const value = {\n // Form state\n ticketForm,\n feedbackForm,\n // Update functions\n updateTicketForm,\n updateFeedbackForm,\n // Reset functions\n resetTicketForm,\n resetFeedbackForm,\n // Legacy setters for compatibility\n setTicketForm,\n setFeedbackForm\n };\n\n return (\n <FormContext.Provider value={value}>\n {children}\n </FormContext.Provider>\n );\n};\n\n// Custom hook to use the Form Context\nexport const useFormContext = () => {\n const context = useContext(FormContext);\n if (!context) {\n throw new Error('useFormContext must be used within a FormProvider');\n }\n return context;\n};\n\n// Higher-order component for flows that need form context\nexport const withFormContext = (Component) => {\n const WrappedComponent = (props) => {\n const formContext = useFormContext();\n return <Component {...props} formContext={formContext} />;\n };\n WrappedComponent.displayName = `withFormContext(${Component.displayName || Component.name || 'Component'})`;\n return WrappedComponent;\n};","import React from 'react';\n\nconst BaseIcon = ({\n width = 24,\n height = 24,\n color = 'currentColor',\n children,\n ...props\n}) => {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width={width}\n height={height}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke={color}\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n {...props}\n >\n {children}\n </svg>\n );\n};\n\nexport default BaseIcon;","import React from 'react';\nimport BaseIcon from './BaseIcon';\n\nconst RefreshIcon = (props) => {\n return (\n <BaseIcon {...props}>\n <path d=\"M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15\" />\n </BaseIcon>\n );\n};\n\nexport default RefreshIcon;","import React from 'react';\nimport { useFlow } from 'react-chatbotify';\nimport { useFormContext } from '../contexts/FormContext';\nimport RefreshIcon from './icons/RefreshIcon';\n\nconst NewChatButton = () => {\n const { restartFlow } = useFlow();\n const { resetTicketForm, resetFeedbackForm } = useFormContext();\n\n const handleNewChat = () => {\n // Clear all form state to ensure a clean start\n resetTicketForm();\n resetFeedbackForm();\n restartFlow();\n };\n\n return (\n <button\n onClick={handleNewChat}\n tabIndex={0}\n aria-label=\"New chat conversation\"\n style={{\n backgroundColor: '#107180',\n border: 'none',\n color: '#ffffff',\n fontSize: '14px',\n cursor: 'pointer',\n padding: '8px 12px',\n borderRadius: '4px',\n transition: 'all 0.2s ease',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n fontWeight: '500',\n }}\n onMouseEnter={(e) => {\n e.target.style.backgroundColor = '#0d5f6b';\n }}\n onMouseLeave={(e) => {\n e.target.style.backgroundColor = '#107180';\n }}\n >\n <RefreshIcon width={16} height={16} />\n New Chat\n </button>\n );\n};\n\nexport default NewChatButton;","import React from 'react';\n\n/**\n * UserIcon Component\n *\n * A standalone component for the user icon that can be styled independently.\n * Visibility controlled by CSS classes on the container.\n *\n * @returns {JSX.Element} Rendered user icon\n */\nconst UserIcon = () => (\n <div\n className=\"user-login-icon\"\n style={{\n alignItems: 'center',\n justifyContent: 'center',\n width: '30px',\n height: '30px',\n borderRadius: '50%',\n backgroundColor: '#1a5b6e',\n marginRight: '5px'\n }}\n role=\"img\"\n aria-label=\"User logged in\"\n title=\"User logged in\"\n >\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"white\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\"\n >\n <path d=\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"></path>\n <circle cx=\"12\" cy=\"7\" r=\"4\"></circle>\n </svg>\n </div>\n);\n\nexport default UserIcon;","import React from 'react';\n\n/**\n * LoginButton Component\n *\n * A standalone component for the login button that can be styled independently\n *\n * @param {Object} props - Component props\n * @param {string} props.loginUrl - URL to navigate to for login\n * @param {string} [props.className] - Optional CSS class for styling\n * @param {Object} [props.style] - Optional inline styles\n * @returns {JSX.Element} Rendered login button\n */\nconst LoginButton = ({ loginUrl, className = '', style, isHeaderButton = false }) => {\n const headerStyle = {\n display: 'inline-block',\n padding: '6px 12px',\n backgroundColor: 'transparent',\n border: '1px solid #ccc',\n color: 'white',\n textDecoration: 'none',\n borderRadius: '4px',\n fontWeight: 'normal',\n textAlign: 'center',\n margin: '8px',\n fontSize: '12px',\n opacity: '0.8',\n transition: 'all 0.2s ease'\n };\n\n const defaultStyle = {\n display: 'inline-block',\n padding: '10px 20px',\n backgroundColor: 'white',\n border: '1px solid #107180',\n color: '#107180',\n textDecoration: 'none',\n borderRadius: '4px',\n fontWeight: 'bold',\n textAlign: 'center',\n margin: '18px',\n boxShadow: '0 2px 4px rgba(0, 0, 0, 0.2)'\n };\n\n const finalStyle = isHeaderButton ? headerStyle : defaultStyle;\n\n return (\n <>\n {isHeaderButton && (\n <style>\n {`\n .rcb-chat-header-container .qa-bot-header-login-button:hover {\n background-color: #0000001a !important;\n opacity: 1 !important;\n }\n `}\n </style>\n )}\n <a\n href={loginUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={`qa-bot-login-button ${isHeaderButton ? 'qa-bot-header-login-button' : ''} ${className}`}\n style={{ ...finalStyle, ...style }}\n >\n Log In\n </a>\n </>\n );\n};\n\nexport default LoginButton;","import { useCallback } from 'react';\nimport { DEFAULT_CONFIG } from '../config/constants';\nimport useGetLastUserQuery from './useGetLastUserQuery';\n\n/**\n * Custom hook to handle AI query processing\n * @param {string} apiKey - API key for the Q&A endpoint\n * @param {string} sessionId - Session ID for tracking the conversation\n * @param {Function} setCurrentQueryId - Function to update the current query ID state\n * @returns {Function} handleQuery function that returns true for success, false for error\n */\nconst useHandleAIQuery = (apiKey, sessionId, setCurrentQueryId) => {\n const getLastUserQueryId = useGetLastUserQuery();\n\n const handleQuery = useCallback(async (params) => {\n const { userInput } = params;\n\n const actualQueryId = getLastUserQueryId();\n\n if (actualQueryId) {\n setCurrentQueryId(actualQueryId);\n }\n\n const headers = {\n 'Content-Type': 'application/json',\n 'X-Origin': 'access',\n 'X-API-KEY': apiKey,\n 'X-Session-ID': sessionId,\n 'X-Query-ID': actualQueryId\n };\n\n try {\n const requestOptions = {\n method: 'POST',\n headers,\n body: JSON.stringify({\n query: userInput\n })\n };\n\n const response = await fetch(DEFAULT_CONFIG.API_ENDPOINT, requestOptions);\n const body = await response.json();\n const text = body.response;\n await params.streamMessage(text);\n return true; // Success\n }\n\n catch (error) {\n await params.injectMessage(DEFAULT_CONFIG.ERRORS.API_UNAVAILABLE);\n return false; // Error\n }\n }, [apiKey, setCurrentQueryId, getLastUserQueryId, sessionId]);\n\n return handleQuery;\n};\n\nexport default useHandleAIQuery;","/**\n * Custom hook to get the last user query ID from localStorage history\n * @returns {string|null} The ID of the most recent USER message\n */\nconst useGetLastUserQuery = () => {\n const getLastUserQueryId = () => {\n try {\n const historyString = localStorage.getItem('rcb-history');\n if (!historyString) return null;\n\n const history = JSON.parse(historyString);\n if (!Array.isArray(history)) return null;\n\n let latestUserMessage = null;\n let latestTimestamp = null;\n\n for (const message of history) {\n if (message.sender === 'USER') {\n const messageTime = new Date(message.timestamp).getTime();\n if (!latestTimestamp || messageTime > latestTimestamp) {\n latestTimestamp = messageTime;\n latestUserMessage = message;\n }\n }\n }\n\n return latestUserMessage ? latestUserMessage.id : null;\n } catch (error) {\n console.warn('Error parsing chat history:', error);\n return null;\n }\n };\n\n return getLastUserQueryId;\n};\n\nexport default useGetLastUserQuery;","import { useEffect } from 'react';\n\n/**\n * Custom hook for keyboard navigation in chatbot options\n * Provides arrow key navigation, Enter/Space selection, and accessibility features\n */\nconst useKeyboardNavigation = () => {\n useEffect(() => {\n // Dedicated checkbox navigation handler\n const handleCheckboxNavigation = (event, elements) => {\n event.preventDefault();\n \n let currentIndex = -1;\n \n // Find currently focused element\n for (let i = 0; i < elements.length; i++) {\n if (elements[i] === document.activeElement || elements[i].contains(document.activeElement)) {\n currentIndex = i;\n break;\n }\n }\n \n // If no element is focused, start with first one\n if (currentIndex === -1) {\n currentIndex = 0;\n }\n \n let newIndex = currentIndex;\n \n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight':\n newIndex = currentIndex < elements.length - 1 ? currentIndex + 1 : 0;\n break;\n case 'ArrowUp':\n case 'ArrowLeft':\n newIndex = currentIndex > 0 ? currentIndex - 1 : elements.length - 1;\n break;\n case 'Home':\n newIndex = 0;\n break;\n case 'End':\n newIndex = elements.length - 1;\n break;\n case 'Enter':\n case ' ': {\n // Handle different types of elements\n const currentElement = elements[currentIndex];\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n currentElement.dispatchEvent(mouseDownEvent);\n return;\n }\n default:\n // No action needed for other keys\n return;\n }\n \n // Focus the new element\n elements[newIndex].focus();\n elements[newIndex].setAttribute('tabindex', '0');\n elements[newIndex].classList.add('keyboard-focused');\n \n // Remove tabindex and focus class from other elements\n elements.forEach((element, index) => {\n if (index !== newIndex) {\n element.setAttribute('tabindex', '-1');\n element.classList.remove('keyboard-focused');\n }\n });\n };\n\n const handleKeyboardNavigation = (event) => {\n // Only handle arrow keys and Enter/Space\n if (!['ArrowDown', 'ArrowUp', 'ArrowLeft', 'ArrowRight', 'Enter', ' ', 'Home', 'End'].includes(event.key)) {\n return;\n }\n\n // Don't interfere with typing in input fields\n const activeElement = document.activeElement;\n if (activeElement && (\n activeElement.tagName === 'INPUT' ||\n activeElement.tagName === 'TEXTAREA' ||\n activeElement.contentEditable === 'true' ||\n activeElement.classList.contains('rcb-chat-input-textarea')\n )) {\n return;\n }\n\n const chatWindow = document.querySelector('.rcb-chat-window');\n if (!chatWindow) return;\n \n // Special handling for checkboxes - but only if they're in the most recent message\n const allMessages = Array.from(chatWindow.querySelectorAll('.rcb-message-container, .rcb-bot-message-container, .rcb-user-message-container'))\n .filter(el => el.offsetParent !== null);\n \n if (allMessages.length > 0) {\n const lastMessage = allMessages[allMessages.length - 1];\n const checkboxContainer = lastMessage.querySelector('.rcb-checkbox-container');\n \n if (checkboxContainer && checkboxContainer.offsetParent !== null) {\n const checkboxes = Array.from(checkboxContainer.querySelectorAll('.rcb-checkbox-row-container'));\n const nextButton = checkboxContainer.querySelector('.rcb-checkbox-next-button');\n \n if (checkboxes.length > 0) {\n // Include next button in navigable elements\n const allElements = [...checkboxes];\n if (nextButton) {\n allElements.push(nextButton);\n }\n handleCheckboxNavigation(event, allElements);\n return;\n }\n }\n }\n \n // Check if chat window is visible and if there are options available - only in the most recent message\n \n let options = [];\n if (allMessages.length > 0) {\n const lastMessage = allMessages[allMessages.length - 1];\n const optionsContainers = Array.from(lastMessage.querySelectorAll('.rcb-options-container'))\n .filter(el => el.offsetParent !== null);\n \n if (optionsContainers.length > 0) {\n const lastContainer = optionsContainers[optionsContainers.length - 1];\n options = Array.from(lastContainer.querySelectorAll('.rcb-options'));\n }\n }\n \n if (options.length === 0) return;\n\n const currentIndex = options.findIndex(option => option === document.activeElement);\n \n switch (event.key) {\n case 'ArrowDown':\n case 'ArrowRight': {\n event.preventDefault();\n let nextIndex;\n if (currentIndex < options.length - 1) {\n nextIndex = currentIndex + 1;\n } else {\n // Wrap to first option\n nextIndex = 0;\n }\n \n // Make sure the element is focusable\n options[nextIndex].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== nextIndex) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n \n options[nextIndex].classList.add('keyboard-focused');\n options[nextIndex].focus();\n break;\n }\n\n case 'ArrowUp':\n case 'ArrowLeft': {\n event.preventDefault();\n let prevIndex;\n if (currentIndex > 0) {\n prevIndex = currentIndex - 1;\n } else {\n // Wrap to last option\n prevIndex = options.length - 1;\n }\n \n // Make sure the element is focusable\n options[prevIndex].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== prevIndex) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n \n options[prevIndex].classList.add('keyboard-focused');\n options[prevIndex].focus();\n break;\n }\n\n case 'Enter':\n case ' ': // Space key\n event.preventDefault();\n if (document.activeElement && options.includes(document.activeElement)) {\n const activeElement = document.activeElement;\n \n // Handle checkboxes differently\n if (activeElement.classList.contains('rcb-checkbox-row-container') || activeElement.closest('.rcb-checkbox-row-container')) {\n // For checkboxes, trigger a mousedown event (React ChatBotify standard)\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n activeElement.dispatchEvent(mouseDownEvent);\n \n // Announce checkbox state\n const labelElement = activeElement.querySelector('.rcb-checkbox-label');\n const selectedText = labelElement ? labelElement.textContent : (activeElement.textContent || 'checkbox');\n const checkboxMark = activeElement.querySelector('.rcb-checkbox-mark');\n const isChecked = checkboxMark && checkboxMark.style.backgroundColor ? 'checked' : 'unchecked';\n announceToScreenReader(`${selectedText} ${isChecked}`);\n } else {\n // For regular options, use mousedown\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n activeElement.dispatchEvent(mouseDownEvent);\n \n // Announce selection to screen readers\n const selectedText = activeElement.textContent || activeElement.innerText;\n announceToScreenReader(`Selected: ${selectedText}`);\n }\n }\n break;\n\n case 'Home':\n event.preventDefault();\n if (options.length > 0) {\n options[0].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== 0) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n options[0].classList.add('keyboard-focused');\n options[0].focus();\n }\n break;\n\n case 'End':\n event.preventDefault();\n if (options.length > 0) {\n const lastIndex = options.length - 1;\n options[lastIndex].setAttribute('tabindex', '0');\n options.forEach((opt, i) => {\n if (i !== lastIndex) {\n opt.setAttribute('tabindex', '-1');\n opt.classList.remove('keyboard-focused');\n }\n });\n options[lastIndex].classList.add('keyboard-focused');\n options[lastIndex].focus();\n }\n break;\n default:\n // No action needed for other keys\n break;\n }\n };\n\n\n // Screen reader announcement helper\n const announceToScreenReader = (message) => {\n const announcement = document.createElement('div');\n announcement.setAttribute('aria-live', 'assertive');\n announcement.setAttribute('aria-atomic', 'true');\n announcement.className = 'sr-only';\n announcement.textContent = message;\n document.body.appendChild(announcement);\n setTimeout(() => {\n if (document.body.contains(announcement)) {\n document.body.removeChild(announcement);\n }\n }, 1000);\n };\n\n // Auto-focus first option when new options appear\n const handleNewOptions = () => {\n // Try multiple selectors for the chat window\n let chatWindow = document.querySelector('.rcb-chat-window');\n if (!chatWindow) {\n chatWindow = document.querySelector('[class*=\"rcb-chat\"]');\n }\n if (!chatWindow) {\n chatWindow = document.querySelector('.qa-bot');\n }\n \n if (!chatWindow) return;\n \n // Get all messages to ensure we only focus options in the most recent message\n const allMessages = Array.from(chatWindow.querySelectorAll('.rcb-message-container, .rcb-bot-message-container, .rcb-user-message-container'))\n .filter(el => el.offsetParent !== null);\n \n if (allMessages.length === 0) return;\n \n const lastMessage = allMessages[allMessages.length - 1];\n \n // Get options containers only from the last message\n const optionsContainers = Array.from(lastMessage.querySelectorAll('.rcb-options-container'))\n .filter(el => el.offsetParent !== null);\n \n let options = [];\n const optionType = 'regular';\n \n // Look for regular options first - but only in the last message\n if (optionsContainers.length > 0) {\n const lastContainer = optionsContainers[optionsContainers.length - 1];\n options = Array.from(lastContainer.querySelectorAll('.rcb-options'));\n }\n \n // If no regular options, look for checkboxes and set them up\n if (options.length === 0) {\n // First try to find checkbox container in last message, but fallback to chatWindow if not found\n let checkboxContainer = lastMessage.querySelector('.rcb-checkbox-container');\n if (!checkboxContainer && chatWindow) {\n checkboxContainer = chatWindow.querySelector('.rcb-checkbox-container');\n }\n \n if (checkboxContainer && checkboxContainer.offsetParent !== null) {\n const checkboxElements = Array.from(checkboxContainer.querySelectorAll('.rcb-checkbox-row-container'))\n .filter(el => el.offsetParent !== null && el.style.display !== 'none');\n \n if (checkboxElements.length > 0) {\n // Include next button in navigable elements\n const nextButton = checkboxContainer.querySelector('.rcb-checkbox-next-button');\n const allElements = [...checkboxElements];\n if (nextButton && nextButton.offsetParent !== null) {\n allElements.push(nextButton);\n }\n \n // Set up checkboxes for keyboard navigation\n allElements.forEach((element, index) => {\n element.setAttribute('tabindex', index === 0 ? '0' : '-1');\n if (index === 0) {\n element.classList.add('keyboard-focused');\n } else {\n element.classList.remove('keyboard-focused');\n }\n });\n \n // Add keyboard navigation hint for checkboxes if there are multiple elements\n if (checkboxElements.length > 1) {\n // Remove any existing hints first\n const existingHints = checkboxContainer.querySelectorAll('.keyboard-nav-hint');\n existingHints.forEach(hint => hint.remove());\n \n // Add new hint\n const hintElement = document.createElement('div');\n hintElement.className = 'keyboard-nav-hint';\n hintElement.textContent = 'Use arrow keys ↕ to navigate, Enter to select/deselect, or click any option';\n hintElement.style.cssText = 'font-size: 12px !important; color: #666 !important; margin-bottom: 8px !important; font-style: italic !important; display: block !important;';\n checkboxContainer.insertBefore(hintElement, checkboxContainer.firstChild);\n }\n \n // Focus first element\n setTimeout(() => {\n if (allElements[0] && allElements[0].offsetParent !== null) {\n allElements[0].focus();\n }\n }, 150);\n \n return; // Don't process as regular options\n }\n }\n }\n \n if (options.length > 0) {\n // Set tabindex and ARIA attributes for keyboard navigation\n options.forEach((option, index) => {\n const tabindex = index === 0 ? '0' : '-1';\n option.setAttribute('tabindex', tabindex);\n option.setAttribute('role', 'option');\n option.setAttribute('aria-posinset', index + 1);\n option.setAttribute('aria-setsize', options.length);\n // Add visual focus class to first option\n if (index === 0) {\n option.classList.add('keyboard-focused');\n } else {\n option.classList.remove('keyboard-focused');\n }\n });\n\n // Add keyboard navigation hint only for multiple options\n if (options.length > 1 && optionType === 'regular') {\n // Only add hints for regular options, and only if we have a container\n const lastContainer = optionsContainers.length > 0 ? optionsContainers[optionsContainers.length - 1] : null;\n if (lastContainer) {\n // Remove any existing hint first\n const existingHints = lastContainer.querySelectorAll('.keyboard-nav-hint');\n existingHints.forEach(hint => hint.remove());\n \n // Add new hint\n const hintElement = document.createElement('div');\n hintElement.className = 'keyboard-nav-hint';\n hintElement.textContent = 'Use arrow keys ↕ to navigate, Enter to select, or click any option';\n hintElement.style.cssText = 'font-size: 12px !important; color: #666 !important; margin-bottom: 8px !important; font-style: italic !important; display: block !important;';\n lastContainer.insertBefore(hintElement, lastContainer.firstChild);\n }\n } else if (optionType === 'regular') {\n // Remove hints for single options, but only for regular options\n const lastContainer = optionsContainers.length > 0 ? optionsContainers[optionsContainers.length - 1] : null;\n if (lastContainer) {\n const existingHints = lastContainer.querySelectorAll('.keyboard-nav-hint');\n existingHints.forEach(hint => hint.remove());\n }\n }\n\n // Focus first option after a short delay to allow rendering\n setTimeout(() => {\n if (options[0] && options[0].offsetParent !== null) {\n options[0].focus();\n if (options.length > 1) {\n announceToScreenReader(`${options.length} options available. Use arrow keys to navigate.`);\n }\n }\n }, 200);\n }\n };\n\n // Set up mutation observer to watch for new options\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'childList') {\n const addedNodes = Array.from(mutation.addedNodes);\n \n const hasNewOptions = addedNodes.some(node => \n node.nodeType === Node.ELEMENT_NODE && \n (node.classList?.contains('rcb-options-container') || \n node.classList?.contains('rcb-options') ||\n node.querySelector?.('.rcb-options-container') ||\n node.querySelector?.('.rcb-options'))\n );\n \n const hasNewCheckboxes = addedNodes.some(node => \n node.nodeType === Node.ELEMENT_NODE && \n (node.classList?.contains('rcb-checkbox-container') ||\n node.querySelector?.('.rcb-checkbox-container'))\n );\n\n \n if (hasNewOptions || hasNewCheckboxes) {\n // Clear tabindex from all existing elements to prevent old ones from being navigable\n document.querySelectorAll('.rcb-options[tabindex], .rcb-checkbox-row-container[tabindex], .rcb-checkbox-next-button[tabindex]').forEach(el => {\n el.setAttribute('tabindex', '-1');\n el.classList.remove('keyboard-focused');\n });\n \n setTimeout(handleNewOptions, 100);\n }\n }\n });\n });\n\n // Start observing\n const chatWindow = document.querySelector('.rcb-chat-window');\n if (chatWindow) {\n observer.observe(chatWindow, {\n childList: true,\n subtree: true\n });\n }\n\n // Add keyboard event listener to document only\n document.addEventListener('keydown', handleKeyboardNavigation);\n\n // Check for existing options on mount\n handleNewOptions();\n \n\n // Periodic check as backup to catch any missed options and checkboxes\n const periodicCheck = setInterval(() => {\n const hasVisibleOptions = document.querySelectorAll('.rcb-options-container .rcb-options').length > 0;\n const hasVisibleCheckboxes = document.querySelectorAll('.rcb-checkbox-row-container').length > 0;\n \n if (hasVisibleOptions) {\n const lastProcessedOptions = document.querySelectorAll('.rcb-options[tabindex]').length;\n const currentOptions = document.querySelectorAll('.rcb-options').length;\n \n if (currentOptions > lastProcessedOptions) {\n handleNewOptions();\n }\n }\n \n if (hasVisibleCheckboxes) {\n const lastProcessedCheckboxes = document.querySelectorAll('.rcb-checkbox-row-container[tabindex]').length;\n const currentCheckboxes = document.querySelectorAll('.rcb-checkbox-row-container').length;\n \n if (currentCheckboxes > lastProcessedCheckboxes) {\n handleNewOptions();\n }\n }\n }, 1000);\n\n // Cleanup\n return () => {\n document.removeEventListener('keydown', handleKeyboardNavigation);\n observer.disconnect();\n clearInterval(periodicCheck);\n };\n }, []);\n\n return null; // This hook doesn't return anything, just sets up event handlers\n};\n\nexport default useKeyboardNavigation;","import { handleBotError } from '../error-handler';\nimport { DEFAULT_CONFIG } from '../../config/constants';\n\n/**\n * Creates the Q&A conversation flow\n *\n * @param {Object} params Configuration\n * @param {Function} params.fetchAndStreamResponse Function to fetch and stream responses\n * @param {string} params.sessionId Current session ID\n * @param {string} params.currentQueryId Current query ID\n * @returns {Object} Q&A flow configuration\n */\nexport const createQAFlow = ({ fetchAndStreamResponse, sessionId, currentQueryId }) => {\n return {\n go_ahead_and_ask: {\n message: \"Please type your question.\",\n path: \"qa_loop\"\n },\n qa_loop: {\n message: async (chatState) => {\n try {\n await fetchAndStreamResponse(chatState);\n return \"Was this helpful?\";\n } catch (error) {\n console.error('Error in bot flow:', error);\n return handleBotError(error);\n }\n },\n renderMarkdown: [\"BOT\"],\n options: [\"👍 Yes\", \"👎 No\"],\n chatDisabled: false,\n function: async (chatState) => {\n if (chatState.userInput === \"👍 Yes\" || chatState.userInput === \"👎 No\") {\n const apiKey = process.env.REACT_APP_API_KEY;\n if (apiKey && sessionId) {\n const isPositive = chatState.userInput === \"👍 Yes\";\n const headers = {\n 'Content-Type': 'application/json',\n 'X-Origin': 'access',\n 'X-API-KEY': apiKey,\n 'X-Session-ID': sessionId,\n 'X-Query-ID': currentQueryId,\n 'X-Feedback': isPositive ? 1 : 0\n };\n\n try {\n await fetch(`${DEFAULT_CONFIG.API_ENDPOINT}/rating`, {\n method: 'POST',\n headers\n });\n } catch (error) {\n console.error('Error sending feedback:', error);\n }\n }\n }\n },\n path: (chatState) => {\n if (chatState.userInput === \"👍 Yes\") {\n return \"qa_positive_feedback\";\n } else if (chatState.userInput === \"👎 No\") {\n return \"qa_negative_feedback\";\n }\n return \"qa_loop\";\n }\n },\n qa_positive_feedback: {\n message: \"Thank you for your feedback! It helps us improve this tool.\",\n transition: { duration: 1000 },\n path: \"go_ahead_and_ask\"\n },\n qa_negative_feedback: {\n message: \"Sorry that wasn't useful. Would you like to open a help ticket for assistance?\",\n options: [\"Open a help ticket\", \"Ask another question\"],\n chatDisabled: true,\n path: (chatState) => {\n if (chatState.userInput === \"Open a help ticket\") {\n return \"help_ticket\";\n }\n return \"qa_continue\";\n }\n },\n qa_continue: {\n message: \"Ask another question, but remember that each question must stand alone.\",\n path: \"qa_loop\"\n }\n };\n};","import { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Handles bot errors and returns user-friendly error messages\n * @param {Object|Error} error - The error object or response\n * @returns {string} User-friendly error message\n */\nexport const handleBotError = (error) => {\n console.error('Bot error:', error);\n\n // If it's an error object with a message property\n if (error && error.error) {\n return DEFAULT_CONFIG.ERRORS.API_UNAVAILABLE;\n }\n\n // If it's a standard Error object\n if (error instanceof Error) {\n return DEFAULT_CONFIG.ERRORS.API_UNAVAILABLE;\n }\n\n // Default fallback\n return DEFAULT_CONFIG.ERRORS.API_UNAVAILABLE;\n};","import React from 'react';\nimport BaseIcon from './BaseIcon';\n\nconst UploadIcon = (props) => {\n return (\n <BaseIcon {...props}>\n <path d=\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\" />\n <polyline points=\"17 8 12 3 7 8\" />\n <line x1=\"12\" y1=\"3\" x2=\"12\" y2=\"15\" />\n </BaseIcon>\n );\n};\n\nexport default UploadIcon;","import React, { useState, useRef } from 'react';\nimport useScreenshotCapture from '../hooks/useScreenshotCapture';\nimport UploadIcon from './icons/UploadIcon';\n\n/**\n * Component for handling file uploads in the feedback flow\n *\n * @param {Object} props Component props\n * @param {Function} props.onFileUpload Callback function that receives uploaded files\n * @returns {JSX.Element} File upload component\n */\nconst FileUploadComponent = ({ onFileUpload }) => {\n const [dragActive, setDragActive] = useState(false);\n const [selectedFiles, setSelectedFiles] = useState([]);\n const [previewFile, setPreviewFile] = useState(null);\n const fileInputRef = useRef(null);\n const { captureScreenshot, isCapturing } = useScreenshotCapture();\n\n // Helper function to announce messages to screen readers\n const announceToScreenReader = (message) => {\n const announcement = document.createElement('div');\n announcement.setAttribute('aria-live', 'assertive');\n announcement.setAttribute('aria-atomic', 'true');\n announcement.className = 'sr-only';\n announcement.textContent = message;\n document.body.appendChild(announcement);\n setTimeout(() => document.body.removeChild(announcement), 1000);\n };\n\n const handleFiles = (files) => {\n const newFileArray = Array.from(files);\n const updatedFiles = [...selectedFiles, ...newFileArray];\n setSelectedFiles(updatedFiles);\n\n // Announce file selection to screen readers\n const fileCount = newFileArray.length;\n const fileNames = newFileArray.map(f => f.name).join(', ');\n announceToScreenReader(`${fileCount} file${fileCount > 1 ? 's' : ''} selected: ${fileNames}`);\n\n // Programmatically scroll chat to bottom after file selection to keep Continue button in view\n setTimeout(() => {\n const chatContent = document.querySelector('.rcb-chat-content');\n if (chatContent) {\n chatContent.scrollTop = chatContent.scrollHeight;\n }\n }, 100);\n\n if (onFileUpload) {\n onFileUpload(updatedFiles);\n }\n };\n\n const handleDrag = (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n if (e.type === \"dragenter\" || e.type === \"dragover\") {\n setDragActive(true);\n } else if (e.type === \"dragleave\") {\n setDragActive(false);\n }\n };\n\n const handleDrop = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDragActive(false);\n\n if (e.dataTransfer.files && e.dataTransfer.files.length > 0) {\n handleFiles(e.dataTransfer.files);\n }\n };\n\n const handleFileSelect = (e) => {\n if (e.target.files && e.target.files.length > 0) {\n handleFiles(e.target.files);\n }\n };\n\n const handleButtonClick = () => {\n fileInputRef.current.click();\n };\n\n const handleRemoveFile = (indexToRemove) => {\n const newFiles = selectedFiles.filter((_, idx) => idx !== indexToRemove);\n setSelectedFiles(newFiles);\n if (onFileUpload) {\n onFileUpload(newFiles);\n }\n };\n\n const handleScreenshotCapture = async () => {\n try {\n const file = await captureScreenshot();\n handleFiles([file]);\n announceToScreenReader('Screenshot captured successfully');\n } catch (error) {\n announceToScreenReader('Error capturing screenshot. Please try again.');\n }\n };\n\n const handleFilePreview = (file) => {\n setPreviewFile(file);\n };\n\n const closePreview = () => {\n setPreviewFile(null);\n };\n\n const renderFilePreview = () => {\n if (!previewFile) return null;\n\n const isImage = previewFile.type.startsWith('image/');\n const isText = previewFile.type.startsWith('text/');\n const isPDF = previewFile.type === 'application/pdf';\n\n return (\n <div\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n backgroundColor: 'rgba(0, 0, 0, 0.7)',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n zIndex: 1000,\n }}\n onClick={closePreview}\n >\n <div\n style={{\n backgroundColor: 'white',\n padding: '20px',\n borderRadius: '8px',\n maxWidth: '90%',\n maxHeight: '90%',\n overflow: 'auto',\n position: 'relative',\n }}\n onClick={e => e.stopPropagation()}\n >\n <button\n onClick={closePreview}\n style={{\n position: 'absolute',\n top: '10px',\n right: '10px',\n background: 'none',\n border: 'none',\n fontSize: '24px',\n cursor: 'pointer',\n color: '#666',\n }}\n >\n ×\n </button>\n\n <h3 style={{ marginTop: 0, marginBottom: '16px' }}>{previewFile.name}</h3>\n\n {isImage && (\n <img\n src={URL.createObjectURL(previewFile)}\n alt={previewFile.name}\n style={{ maxWidth: '100%', maxHeight: '70vh' }}\n />\n )}\n\n {isText && (\n <pre style={{\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word',\n maxHeight: '70vh',\n overflow: 'auto',\n padding: '16px',\n backgroundColor: '#f5f5f5',\n borderRadius: '4px',\n }}>\n {URL.createObjectURL(previewFile)}\n </pre>\n )}\n\n {isPDF && (\n <iframe\n src={URL.createObjectURL(previewFile)}\n style={{ width: '100%', height: '70vh', border: 'none' }}\n title={previewFile.name}\n />\n )}\n\n {!isImage && !isText && !isPDF && (\n <div style={{ padding: '20px', textAlign: 'center' }}>\n Preview not available for this file type\n </div>\n )}\n </div>\n </div>\n );\n };\n\n return (\n <div className=\"file-upload-container\" style={{ padding: '16px', margin: '8px 0' }}>\n <div style={{ display: 'flex', justifyContent: 'center', marginBottom: '10px' }}>\n <button\n onClick={(e) => {\n e.preventDefault();\n handleScreenshotCapture();\n }}\n disabled={isCapturing}\n aria-describedby=\"screenshot-help\"\n aria-label={isCapturing ? 'Taking screenshot, please wait' : 'Take a screenshot to attach'}\n style={{\n display: 'flex',\n alignItems: 'center',\n gap: '8px',\n backgroundColor: '#107180',\n color: 'white',\n border: 'none',\n borderRadius: '5px',\n padding: '8px 12px',\n cursor: isCapturing ? 'not-allowed' : 'pointer',\n fontSize: '14px',\n fontWeight: '500',\n boxShadow: '0 1px 3px rgba(0,0,0,0.2)',\n }}\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"></path>\n <circle cx=\"12\" cy=\"13\" r=\"4\"></circle>\n </svg>\n {isCapturing ? 'Taking screenshot...' : 'Take screenshot...'}\n </button>\n <span id=\"screenshot-help\" className=\"sr-only\">\n Captures the current screen and adds it as an attachment\n </span>\n </div>\n\n <div\n className={`file-upload-dropzone ${dragActive ? \"active\" : \"\"}`}\n onDragEnter={handleDrag}\n onDragLeave={handleDrag}\n onDragOver={handleDrag}\n onDrop={handleDrop}\n role=\"button\"\n tabIndex={0}\n aria-label=\"File upload area. Click to select files or drag and drop files here.\"\n aria-describedby=\"upload-instructions\"\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n handleButtonClick();\n }\n }}\n style={{\n padding: '20px',\n border: '2px dashed #ccc',\n borderRadius: '8px',\n backgroundColor: dragActive ? '#f0f8ff' : '#fafafa',\n transition: 'all 0.3s ease'\n }}\n >\n <input\n ref={fileInputRef}\n type=\"file\"\n className=\"file-input\"\n onChange={handleFileSelect}\n multiple\n style={{ display: \"none\" }}\n aria-label=\"Select files to upload\"\n accept=\"image/*,application/pdf,text/*,.doc,.docx\"\n />\n <div className=\"upload-content\" onClick={handleButtonClick} style={{ cursor: 'pointer', flexDirection: 'column', alignItems: 'center', display: 'flex', textAlign: 'center', padding: '12px' }}>\n <div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '8px' }}>\n <div style={{ display: 'flex', flexDirection: 'row', alignItems: 'center', gap: '10px' }}>\n <UploadIcon />\n <p style={{ margin: 0, fontWeight: 'bold' }}>Upload Files</p>\n </div>\n <p id=\"upload-instructions\" style={{ margin: 0, fontSize: '14px', color: '#666' }}>\n Drag and drop files here or click to select. Accepted: Images, PDFs, Text files (Max 10MB each)\n </p>\n </div>\n {selectedFiles.length > 0 && (\n <div className=\"selected-files\" style={{ display: 'flex', flexWrap: 'wrap', gap: '8px', marginTop: '12px', alignItems: 'center' }}>\n <span style={{ fontWeight: 400, color: '#888', fontSize: '13px', marginRight: '8px', alignSelf: 'center' }}>Selected files:</span>\n {selectedFiles.map((file, index) => (\n <span\n key={index}\n style={{\n background: '#fff',\n color: '#107180',\n borderRadius: '5px',\n padding: '4px 12px',\n fontSize: '14px',\n marginRight: '4px',\n marginBottom: '4px',\n border: '1px solid #ccc',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n cursor: 'pointer',\n }}\n onClick={(e) => {\n e.stopPropagation();\n handleFilePreview(file);\n }}\n >\n <span\n onClick={e => { e.stopPropagation(); handleRemoveFile(index); }}\n style={{\n cursor: 'pointer',\n color: '#888',\n fontWeight: 'bold',\n fontSize: '15px',\n marginRight: '4px',\n userSelect: 'none',\n lineHeight: 1,\n }}\n title=\"Remove file\"\n aria-label={`Remove ${file.name}`}\n >\n &times;\n </span>\n {file.name} ({(file.size / 1024).toFixed(1)} KB)\n </span>\n ))}\n </div>\n )}\n </div>\n </div>\n {renderFilePreview()}\n </div>\n );\n};\n\nexport default FileUploadComponent;","import { useState } from 'react';\n\n/**\n * Custom hook for capturing screenshots using the Screen Capture API\n * @returns {Object} Object containing capture function and capturing state\n */\nconst useScreenshotCapture = () => {\n const [isCapturing, setIsCapturing] = useState(false);\n\n const captureScreenshot = async () => {\n try {\n setIsCapturing(true);\n\n // Request screen capture with specific options for better UX\n const stream = await navigator.mediaDevices.getDisplayMedia({\n video: {\n displaySurface: \"browser\", // Prefer capturing browser tabs\n cursor: \"always\",\n logicalSurface: true, // Capture what the user actually sees\n width: { ideal: 1920 }, // Suggest high quality\n height: { ideal: 1080 }\n },\n audio: false\n });\n\n // Create video element to capture the frame\n const video = document.createElement('video');\n video.srcObject = stream;\n\n // Wait for video metadata to load\n await new Promise(resolve => {\n video.onloadedmetadata = () => {\n video.play();\n resolve();\n };\n });\n\n // Create canvas with video dimensions\n const canvas = document.createElement('canvas');\n canvas.width = video.videoWidth;\n canvas.height = video.videoHeight;\n\n // Draw video frame to canvas\n const ctx = canvas.getContext('2d');\n ctx.drawImage(video, 0, 0, canvas.width, canvas.height);\n\n // Convert canvas to blob\n const blob = await new Promise(resolve => canvas.toBlob(resolve, 'image/png'));\n\n // Create file from blob\n const timestamp = new Date().toISOString().replace(/[:.]/g, '-');\n const file = new File([blob], `screenshot-${timestamp}.png`, { type: 'image/png' });\n\n // Stop all tracks\n stream.getTracks().forEach(track => track.stop());\n\n setIsCapturing(false);\n return file;\n } catch (error) {\n console.error('Error capturing screenshot:', error);\n setIsCapturing(false);\n throw error;\n }\n };\n\n return {\n captureScreenshot,\n isCapturing\n };\n};\n\nexport default useScreenshotCapture;","import { DEFAULT_CONFIG } from '../config/constants';\n\n/**\n * Legacy function - ProForma mapping is now handled by the API\n * @param {Object} formData Form data\n * @param {number} requestTypeId The JSM request type ID\n * @returns {Object} Form data (unchanged - API handles ProForma mapping)\n */\nconst mapProFormaFields = (formData) => {\n // ProForma field mapping is now handled by the API\n // This function is kept for backward compatibility but does no transformation\n return formData;\n};\n\n/**\n * Prepares data for future API submission\n * @param {Object} formData Form data for the ticket\n * @param {string} ticketType Type of ticket to create\n * @param {Array} uploadedFiles Files uploaded by the user (if any)\n * @returns {Promise<Object>} Formatted data for API submission\n */\nexport const prepareApiSubmission = async (formData, ticketType = 'support', uploadedFiles = []) => {\n // Map ticket types to their requestTypeId values\n const REQUEST_TYPE_IDS = {\n SUPPORT: 17,\n LOGIN_ACCESS: 30,\n LOGIN_PROVIDER: 31,\n SECURITY: 26\n };\n\n const requestTypeIds = {\n support: REQUEST_TYPE_IDS.SUPPORT,\n general_help: REQUEST_TYPE_IDS.SUPPORT,\n feedback: REQUEST_TYPE_IDS.SUPPORT,\n loginAccess: REQUEST_TYPE_IDS.LOGIN_ACCESS,\n loginProvider: REQUEST_TYPE_IDS.LOGIN_PROVIDER,\n security: REQUEST_TYPE_IDS.SECURITY\n };\n\n const requestTypeId = requestTypeIds[ticketType] || requestTypeIds.support;\n\n // Determine the correct service desk ID based on ticket type\n const serviceDeskId = ticketType === 'security' ? 3 : 2;\n\n // Map ProForma fields to JSM custom field IDs (now handled by API)\n const mappedFormData = mapProFormaFields(formData, requestTypeId);\n\n // Basic submission data (API handles ProForma form mapping automatically)\n const submissionData = {\n serviceDeskId: serviceDeskId,\n requestTypeId: requestTypeId,\n requestFieldValues: {\n ...mappedFormData\n }\n };\n\n // Add file information if any files were uploaded\n if (uploadedFiles && uploadedFiles.length > 0) {\n // Process each file to convert to base64\n const processedFiles = await Promise.all(\n uploadedFiles.map(async (file) => {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => {\n // Get the base64 string by removing the data URL prefix\n const base64String = reader.result.split(',')[1];\n resolve({\n fileName: file.name,\n contentType: file.type,\n size: file.size,\n fileData: base64String\n });\n };\n reader.onerror = () => reject(new Error(`Failed to read file ${file.name}`));\n reader.readAsDataURL(file);\n });\n })\n );\n\n submissionData.attachments = processedFiles;\n }\n return submissionData;\n};\n\n/**\n * POSTs prepared data to the netlify proxy endpoint\n * @param {Object} submissionData The data to send\n * @param {string} endpointName The name of the endpoint to use\n * @returns {Promise<Object>} The response from the proxy\n */\nexport const sendPreparedDataToProxy = async (submissionData, endpointName) => {\n\n // Use versioned API endpoints\n // These get redirected by netlify.toml in backend repo (e.g. /api/v1/tickets → /.netlify/functions/tickets)\n // But some legacy env files might have \"/.netlify/functions/\" or \"/.netlify/functions\"\n // Once we are sure no one else is developing with that pattern we can remove these replaces\n const serverBaseUrl = DEFAULT_CONFIG.netlifyBaseUrl\n .replace('/.netlify/functions/', '')\n .replace('/.netlify/functions', '');\n\n let proxyEndpoint;\n if (endpointName === 'create-support-ticket') {\n proxyEndpoint = `${serverBaseUrl}/api/v1/tickets`;\n } else if (endpointName === 'create-security-incident') {\n proxyEndpoint = `${serverBaseUrl}/api/v1/security-incidents`;\n } else {\n proxyEndpoint = `${DEFAULT_CONFIG.netlifyBaseUrl}/${endpointName}`;\n }\n\n\n try {\n const response = await fetch(proxyEndpoint, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(submissionData)\n });\n\n if (!response.ok) {\n const errorText = await response.text();\n console.error('| ❌ Post data to proxy failed:', response.status, errorText);\n return {\n success: false,\n status: response.status,\n error: errorText\n };\n }\n\n const data = await response.json();\n return {\n success: true,\n data\n };\n } catch (error) {\n console.error('| ❌ Post data to proxy exception:', error);\n return {\n success: false,\n error: error.message\n };\n }\n};\n\n/**\n * Submits a security incident to JSM\n * @param {Object} formData Security incident form data\n * @param {Array} uploadedFiles Files uploaded by the user (if any)\n * @returns {Promise<Object>} The response from the API\n */\nexport const submitSecurityIncident = async (formData, uploadedFiles = []) => {\n try {\n // Prepare the data for security incident submission\n const submissionData = await prepareApiSubmission(formData, 'security', uploadedFiles);\n\n // Submit to the security incident endpoint\n const result = await sendPreparedDataToProxy(submissionData, 'create-security-incident');\n\n return result;\n } catch (error) {\n console.error('| ❌ Security incident submission failed:', error);\n return {\n success: false,\n error: error.message\n };\n }\n};","import React from 'react';\nimport FileUploadComponent from '../../../components/FileUploadComponent';\nimport { prepareApiSubmission, sendPreparedDataToProxy } from '../../api-utils';\n\n/**\n * Creates a reusable file upload component for ticket flows\n * @param {Function} setTicketForm - Function to update ticket form state\n * @param {Object} ticketForm - Current ticket form state\n * @returns {JSX.Element} File upload component\n */\nexport const createFileUploadComponent = (setTicketForm, ticketForm) => (\n <FileUploadComponent\n onFileUpload={(files) =>\n setTicketForm({\n ...(ticketForm || {}),\n uploadedFiles: files\n })\n }\n />\n);\n\n/**\n * Creates a submission handler with external result storage to avoid React closure issues\n * @param {Function} setTicketForm - Function to update ticket form state\n * @returns {Object} Object containing submitTicket function and getSubmissionResult function\n */\nexport const createSubmissionHandler = (setTicketForm) => {\n let submissionResult = null;\n\n const submitTicket = async (formData, ticketType, uploadedFiles = []) => {\n try {\n const apiData = await prepareApiSubmission(\n formData,\n ticketType,\n uploadedFiles\n );\n const proxyResponse = await sendPreparedDataToProxy(apiData, 'create-support-ticket');\n \n if (proxyResponse.success) {\n submissionResult = {\n success: true,\n ticketKey: proxyResponse.data.data.ticketKey,\n ticketUrl: proxyResponse.data.data.ticketUrl\n };\n setTicketForm(prevForm => ({\n ...prevForm, \n ticketKey: proxyResponse.data.data.ticketKey, \n ticketUrl: proxyResponse.data.data.ticketUrl\n }));\n } else {\n console.error(`| ❌ ${ticketType} ticket creation failed:`, proxyResponse.data?.message || proxyResponse.error);\n submissionResult = {\n success: false,\n error: proxyResponse.data?.message || proxyResponse.error\n };\n setTicketForm(prevForm => ({...prevForm, submissionError: proxyResponse.data?.message || proxyResponse.error}));\n }\n } catch (error) {\n console.error(`| ❌ Error sending ${ticketType} data to proxy:`, error);\n submissionResult = {\n success: false,\n error: error.message\n };\n setTicketForm(prevForm => ({...prevForm, submissionError: error.message}));\n }\n };\n\n const getSubmissionResult = () => submissionResult;\n\n return { submitTicket, getSubmissionResult };\n};\n\n/**\n * Generates a success message with clickable URL\n * @param {Object} submissionResult - Result from ticket submission\n * @param {string} ticketType - Type of ticket for display purposes\n * @returns {string} Success message with clickable URL\n */\nexport const generateSuccessMessage = (submissionResult, ticketType = 'ticket') => {\n if (submissionResult && !submissionResult.success) {\n return `We apologize, but there was an error submitting your ${ticketType}: ${submissionResult.error}\\n\\nPlease try again or contact our support team directly.`;\n } else if (submissionResult && submissionResult.success && submissionResult.ticketUrl && submissionResult.ticketKey) {\n return `Your ${ticketType} has been submitted successfully.\\n\\nTicket: <a href=\"${submissionResult.ticketUrl}\" target=\"_blank\">${submissionResult.ticketKey}</a>\\n\\nOur support team will review your request and respond accordingly. Thank you for contacting ACCESS.`;\n } else if (submissionResult && submissionResult.success) {\n return `Your ${ticketType} has been submitted successfully.\\n\\nOur support team will review your request and respond accordingly. Thank you for contacting ACCESS.`;\n } else {\n return `Your ${ticketType} has been submitted successfully.\\n\\nOur support team will review your request and respond accordingly. Thank you for contacting ACCESS.`;\n }\n};\n\n/**\n * Generates file info string for summaries\n * @param {Array} uploadedFiles - Array of uploaded files\n * @returns {string} File information string\n */\nexport const getFileInfo = (uploadedFiles) => {\n if (uploadedFiles && uploadedFiles.length > 0) {\n return `\\nAttachments: ${uploadedFiles.length} file(s) attached`;\n }\n return '';\n};","/**\n * Utility functions for flows to access current form context\n * This solves the React closure issue by providing access to current form state\n */\n\n// Store a reference to the current form context for use in flow functions\nlet currentFormContext = null;\n\n/**\n * Sets the current form context reference\n * This should be called when the flow is created with the latest context\n */\nexport const setCurrentFormContext = (formContext) => {\n currentFormContext = formContext;\n};\n\n/**\n * Gets the current ticket form state\n * This always returns the latest state, not stale closure state\n */\nexport const getCurrentTicketForm = () => {\n if (!currentFormContext) {\n console.warn('Form context not available, returning empty form');\n return {};\n }\n const ticketForm = currentFormContext.ticketForm;\n return (ticketForm && typeof ticketForm === 'object') ? ticketForm : {};\n};\n\n/**\n * Gets the current feedback form state\n * This always returns the latest state, not stale closure state\n */\nexport const getCurrentFeedbackForm = () => {\n if (!currentFormContext) {\n console.warn('Form context not available, returning empty form');\n return {};\n }\n const feedbackForm = currentFormContext.feedbackForm;\n return (feedbackForm && typeof feedbackForm === 'object') ? feedbackForm : {};\n};\n\n/**\n * Updates the ticket form\n */\nexport const updateCurrentTicketForm = (updates) => {\n if (!currentFormContext) {\n console.warn('Form context not available, cannot update form');\n return;\n }\n currentFormContext.updateTicketForm(updates);\n};\n\n/**\n * Updates the feedback form\n */\nexport const updateCurrentFeedbackForm = (updates) => {\n if (!currentFormContext) {\n console.warn('Form context not available, cannot update form');\n return;\n }\n currentFormContext.updateFeedbackForm(updates);\n};\n\n/**\n * Gets a specific field value with fallback\n */\nexport const getCurrentFieldValue = (fieldName, formType = 'ticket', fallback = 'Not provided') => {\n const form = formType === 'ticket' ? getCurrentTicketForm() : getCurrentFeedbackForm();\n return (form && form[fieldName]) || fallback;\n};\n\n/**\n * Gets current form with user info merged\n */\nexport const getCurrentFormWithUserInfo = (userInfo = {}) => {\n const currentForm = getCurrentTicketForm() || {};\n const safeUserInfo = userInfo && typeof userInfo === 'object' ? userInfo : {};\n \n return {\n ...currentForm,\n email: safeUserInfo.email || currentForm.email,\n name: safeUserInfo.name || currentForm.name,\n accessId: safeUserInfo.accessId || currentForm.accessId\n };\n};","/**\n * Creates a validation function for optional fields that auto-fills with \"Not provided\"\n * and automatically submits when the user presses Enter on an empty field.\n * \n * @returns {Function} Validation function for optional fields\n */\nexport const createOptionalFieldValidator = () => {\n return (userInput) => {\n // If empty, auto-fill with \"Not provided\" and submit\n if (!userInput || userInput.trim() === '') {\n setTimeout(() => {\n const inputField = document.querySelector('.rcb-chat-input-textarea');\n if (inputField) {\n inputField.value = \"Not provided\";\n const inputEvent = new Event('input', { bubbles: true });\n inputField.dispatchEvent(inputEvent);\n \n // Auto-submit by triggering mousedown on send button\n setTimeout(() => {\n const sendButton = document.querySelector('.rcb-send-button, .rcb-chat-send-button, [aria-label*=\"send\"], button[type=\"submit\"]');\n if (sendButton) {\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n sendButton.dispatchEvent(mouseDownEvent);\n }\n }, 200);\n }\n }, 100);\n }\n \n return { success: true };\n };\n};\n\n/**\n * Processes optional field input, converting empty values to \"Not provided\"\n * \n * @param {string} userInput - The user's input\n * @returns {string} Processed input value\n */\nexport const processOptionalInput = (userInput) => {\n if (!userInput || userInput.trim() === '') {\n return \"Not provided\";\n }\n return userInput;\n};","/**\n * Email validation utility functions\n */\n\n/**\n * Validates email format using a comprehensive regex pattern\n * @param {string} email - The email address to validate\n * @returns {boolean} - True if email is valid, false otherwise\n */\nexport const isValidEmail = (email) => {\n if (!email || typeof email !== 'string') {\n return false;\n }\n \n // Comprehensive email regex pattern\n const emailRegex = /^[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;\n \n return emailRegex.test(email.trim());\n};\n\n/**\n * Creates email validation for chat bot flows\n * @param {string} email - The email to validate\n * @returns {Object} - Validation result with success boolean and message string\n */\nexport const validateEmail = (email) => {\n const trimmedEmail = email?.trim() || '';\n \n if (!trimmedEmail) {\n return {\n success: false,\n promptContent: \"Please enter an email address.\",\n promptDuration: 3000,\n promptType: 'error',\n highlightTextArea: true\n };\n }\n \n if (!isValidEmail(trimmedEmail)) {\n return {\n success: false,\n promptContent: \"Please enter a valid email address (e.g., user@example.com).\",\n promptDuration: 3000,\n promptType: 'error',\n highlightTextArea: true\n };\n }\n \n return {\n success: true\n };\n};","/**\n * Creates the help ticket conversation flow by combining modular ticket flows\n *\n * @param {Object} params Configuration\n * @param {Object} params.ticketForm Form state for help tickets\n * @param {Function} params.setTicketForm Function to update ticket form\n * @returns {Object} Help ticket flow configuration\n */\nimport { createAccessLoginFlow } from './tickets/access-login-flow';\nimport { createAffiliatedLoginFlow } from './tickets/affiliated-login-flow';\nimport { createGeneralHelpFlow } from './tickets/general-help-flow';\n\nexport const createTicketFlow = ({ ticketForm = {}, setTicketForm = () => {}, userInfo = {} }) => {\n // Import flows from modular ticket files\n const accessLoginFlow = createAccessLoginFlow({ ticketForm, setTicketForm, userInfo });\n const affiliatedLoginFlow = createAffiliatedLoginFlow({ ticketForm, setTicketForm, userInfo });\n const generalHelpFlow = createGeneralHelpFlow({ ticketForm, setTicketForm, userInfo });\n\n return {\n // Main ticket type selection\n help_ticket: {\n message: \"What is your help ticket related to?\",\n options: [\n \"Logging into ACCESS website\",\n \"Logging into a resource\",\n \"Another question\"\n ],\n chatDisabled: true,\n function: (chatState) => {\n setTicketForm({...(ticketForm || {}), ticketType: chatState.userInput});\n },\n path: (chatState) => {\n if (chatState.userInput === \"Logging into ACCESS website\") {\n return \"access_help\";\n } else if (chatState.userInput === \"Logging into a resource\") {\n return \"affiliated_help\";\n } else if (chatState.userInput === \"Another question\") {\n return \"general_help_summary_subject\";\n }\n return \"help_ticket\";\n }\n },\n\n // Combine all the modular flows\n ...accessLoginFlow,\n ...affiliatedLoginFlow,\n ...generalHelpFlow\n };\n};","import { \n createFileUploadComponent, \n createSubmissionHandler, \n generateSuccessMessage,\n getFileInfo\n} from './ticket-flow-utils';\nimport { getCurrentTicketForm, getCurrentFormWithUserInfo } from '../../flow-context-utils';\nimport { createOptionalFieldValidator, processOptionalInput } from '../../optional-field-utils';\nimport { validateEmail } from '../../validation-utils';\n\n/**\n * Creates the ACCESS login help ticket flow\n *\n * @param {Object} params Configuration\n * @param {Object} params.ticketForm Form state for help tickets\n * @param {Function} params.setTicketForm Function to update ticket form\n * @returns {Object} ACCESS login flow configuration\n */\nexport const createAccessLoginFlow = ({ ticketForm = {}, setTicketForm = () => {}, userInfo = {} }) => {\n const { submitTicket, getSubmissionResult } = createSubmissionHandler(setTicketForm);\n const fileUploadElement = createFileUploadComponent(setTicketForm, ticketForm);\n\n\n return {\n // PATH: ACCESS Login Help Path\n access_help: {\n message: \"If you're having trouble logging into the ACCESS website, here are some common issues:\\n\\n\" +\n \"• Make sure you're using a supported browser (Chrome, Firefox, Safari)\\n\" +\n \"• Clear your browser cookies and cache\\n\" +\n \"• Check if you're using the correct identity provider\\n\\n\" +\n \"Would you like to submit a help ticket for ACCESS login issues?\",\n options: [\"Yes, let's create a ticket\", \"Back to Main Menu\"],\n chatDisabled: true,\n path: (chatState) =>\n chatState.userInput === \"Yes, let's create a ticket\"\n ? \"access_login_description\"\n : \"start\"\n },\n\n // FORM flow - Access Login Form\n access_login_description: {\n message: \"Describe your login issue.\",\n function: (chatState) => {\n // Pre-populate form with user info on first step\n const currentForm = getCurrentTicketForm();\n const updatedForm = {\n ...currentForm,\n description: chatState.userInput,\n email: userInfo.email || currentForm.email,\n name: userInfo.name || currentForm.name,\n accessId: userInfo.accessId || currentForm.accessId\n };\n setTicketForm(updatedForm);\n },\n path: \"access_login_identity\"\n },\n access_login_identity: {\n message: \"Which identity provider were you using?\",\n options: [\"ACCESS\", \"Github\", \"Google\", \"Institution\", \"Microsoft\", \"ORCID\", \"Other\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, identityProvider: chatState.userInput});\n },\n path: \"access_login_browser\"\n },\n access_login_browser: {\n message: \"Which browser were you using?\",\n options: [\"Chrome\", \"Firefox\", \"Edge\", \"Safari\", \"Other\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, browser: chatState.userInput});\n },\n path: \"access_login_attachment\"\n },\n access_login_attachment: {\n message: \"Would you like to attach a screenshot?\",\n options: [\"Yes\", \"No\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, wantsAttachment: chatState.userInput});\n },\n path: (chatState) => chatState.userInput === \"Yes\"\n ? \"access_login_upload\"\n : (() => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.email) return \"access_login_email\";\n if (!formWithUserInfo.name) return \"access_login_name\";\n if (!formWithUserInfo.accessId) return \"access_login_accessid\";\n return \"access_login_summary\";\n })()\n },\n access_login_upload: {\n message: \"Please upload your screenshot.\",\n component: fileUploadElement,\n options: [\"Continue\"],\n chatDisabled: true,\n function: () => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, uploadConfirmed: true});\n },\n path: () => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.email) return \"access_login_email\";\n if (!formWithUserInfo.name) return \"access_login_name\";\n if (!formWithUserInfo.accessId) return \"access_login_accessid\";\n return \"access_login_summary\";\n }\n },\n access_login_email: {\n message: \"What is your email?\",\n validateTextInput: (email) => validateEmail(email),\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, email: chatState.userInput});\n },\n path: () => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.name) return \"access_login_name\";\n if (!formWithUserInfo.accessId) return \"access_login_accessid\";\n return \"access_login_summary\";\n }\n },\n access_login_name: {\n message: \"What is your name?\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, name: chatState.userInput});\n },\n path: () => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.accessId) return \"access_login_accessid\";\n return \"access_login_summary\";\n }\n },\n access_login_accessid: {\n message: \"What is your ACCESS ID? (Optional - press Enter to skip)\",\n validateTextInput: createOptionalFieldValidator(),\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, accessId: processOptionalInput(chatState.userInput)});\n },\n path: \"access_login_summary\"\n },\n access_login_summary: {\n message: (chatState) => {\n const currentForm = getCurrentTicketForm();\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n // Use current form state directly since Form Context always has fresh data\n const fileInfo = getFileInfo(currentForm.uploadedFiles);\n\n // Handle ACCESS ID timing issue - if coming from accessid step, use the input directly\n let finalAccessId = formWithUserInfo.accessId;\n if (chatState.prevPath === 'access_login_accessid' && chatState.userInput) {\n finalAccessId = chatState.userInput;\n } else if (!finalAccessId && chatState.prevPath === 'access_login_accessid') {\n finalAccessId = chatState.userInput;\n }\n\n return `Thank you for providing your ACCESS login issue details. Here's a summary:\\n\\n` +\n `Name: ${formWithUserInfo.name || 'Not provided'}\\n` +\n `Email: ${formWithUserInfo.email || 'Not provided'}\\n` +\n `ACCESS ID: ${finalAccessId || 'Not provided'}\\n` +\n `Identity Provider: ${currentForm.identityProvider || 'Not provided'}\\n` +\n `Browser: ${currentForm.browser || 'Not provided'}\\n` +\n `Issue Description: ${currentForm.description || 'Not provided'}${fileInfo}\\n\\n` +\n `Would you like to submit this ticket?`;\n },\n options: [\"Submit Ticket\", \"Back to Main Menu\"],\n chatDisabled: true,\n renderHtml: [\"BOT\", \"USER\"],\n function: async (chatState) => {\n if (chatState.userInput === \"Submit Ticket\") {\n const currentForm = getCurrentTicketForm();\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n const formData = {\n email: formWithUserInfo.email || \"\",\n name: formWithUserInfo.name || \"\",\n accessId: formWithUserInfo.accessId || \"\",\n description: currentForm.description || \"\",\n // ProForma fields for request type 30\n identityProvider: currentForm.identityProvider || \"\",\n browser: currentForm.browser || \"\"\n };\n\n await submitTicket(formData, 'loginAccess', currentForm.uploadedFiles || []);\n }\n },\n path: (chatState) => {\n if (chatState.userInput === \"Submit Ticket\") {\n return \"access_login_success\";\n } else {\n return \"start\";\n }\n }\n },\n access_login_success: {\n message: () => {\n return generateSuccessMessage(getSubmissionResult(), 'ACCESS login ticket');\n },\n options: [\"Back to Main Menu\"],\n chatDisabled: true,\n renderHtml: [\"BOT\"],\n path: \"start\"\n }\n };\n};","import { \n createFileUploadComponent, \n createSubmissionHandler, \n generateSuccessMessage,\n getFileInfo\n} from './ticket-flow-utils';\nimport { getCurrentTicketForm, getCurrentFormWithUserInfo } from '../../flow-context-utils';\nimport { createOptionalFieldValidator, processOptionalInput } from '../../optional-field-utils';\nimport { validateEmail } from '../../validation-utils';\n\n/**\n * Creates the affiliated/resource provider login help ticket flow\n *\n * @param {Object} params Configuration\n * @param {Object} params.ticketForm Form state for help tickets\n * @param {Function} params.setTicketForm Function to update ticket form\n * @returns {Object} Affiliated login flow configuration\n */\nexport const createAffiliatedLoginFlow = ({ ticketForm = {}, setTicketForm = () => {}, userInfo = {} }) => {\n const { submitTicket, getSubmissionResult } = createSubmissionHandler(setTicketForm);\n const fileUploadElement = createFileUploadComponent(setTicketForm, ticketForm);\n\n\n return {\n // PATH: Affiliated/Resource Provider Login Help Path\n affiliated_help: {\n message: \"If you're having trouble logging into an affiliated infrastructure or resource provider, here are some common issues:\\n\\n\" +\n \"• Ensure your allocation is active\\n\" +\n \"• Confirm you have the correct username for that resource\\n\" +\n \"• Check <a href=\\\"https://operations.access-ci.org/infrastructure_news_view\\\">System Status News</a> to see if the resource is undergoing maintenance\\n\\n\" +\n \"Would you like to submit a help ticket for resource provider login issues?\",\n options: [\"Yes, let's create a ticket\", \"Back to Main Menu\"],\n chatDisabled: true,\n renderHtml: [\"BOT\"],\n path: (chatState) =>\n chatState.userInput === \"Yes, let's create a ticket\"\n ? \"affiliated_login_resource\"\n : \"start\"\n },\n\n // FORM flow - Affiliated/Resource Login\n affiliated_login_resource: {\n message: \"Which ACCESS Resource are you trying to access?\",\n options: [\n \"ACES\",\n \"Anvil\", \n \"Bridges-2\",\n \"DARWIN\",\n \"Delta\",\n \"DeltaAI\",\n \"Derecho\",\n \"Expanse\",\n \"FASTER\",\n \"Granite\",\n \"Jetstream2\",\n \"KyRIC\",\n \"Launch\",\n \"Neocortex\",\n \"Ookami\",\n \"Open Science Grid\",\n \"Open Storage Network\",\n \"Ranch\",\n \"Stampede3\"\n ],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, resource: chatState.userInput});\n },\n path: \"affiliated_login_userid\"\n },\n affiliated_login_userid: {\n message: \"What is your user ID at the resource?\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, userIdResource: chatState.userInput});\n },\n path: \"affiliated_login_description\"\n },\n affiliated_login_description: {\n message: \"Please describe the issue you're having logging in.\",\n function: (chatState) => {\n // Pre-populate form with user info on first step\n const currentForm = getCurrentTicketForm();\n const updatedForm = {\n ...currentForm,\n description: chatState.userInput,\n email: userInfo.email || currentForm.email,\n name: userInfo.name || currentForm.name,\n accessId: userInfo.accessId || currentForm.accessId\n };\n setTicketForm(updatedForm);\n },\n path: \"affiliated_login_attachment\"\n },\n affiliated_login_attachment: {\n message: \"Would you like to attach a screenshot?\",\n options: [\"Yes\", \"No\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, wantsAttachment: chatState.userInput});\n },\n path: (chatState) => chatState.userInput === \"Yes\"\n ? \"affiliated_login_upload\"\n : (() => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.email) return \"affiliated_login_email\";\n if (!formWithUserInfo.name) return \"affiliated_login_name\";\n if (!formWithUserInfo.accessId) return \"affiliated_login_accessid\";\n return \"affiliated_login_summary\";\n })()\n },\n affiliated_login_upload: {\n message: \"Please upload your screenshot.\",\n component: fileUploadElement,\n options: [\"Continue\"],\n chatDisabled: true,\n function: () => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, uploadConfirmed: true});\n },\n path: () => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.email) return \"affiliated_login_email\";\n if (!formWithUserInfo.name) return \"affiliated_login_name\";\n if (!formWithUserInfo.accessId) return \"affiliated_login_accessid\";\n return \"affiliated_login_summary\";\n }\n },\n affiliated_login_email: {\n message: \"What is your email?\",\n validateTextInput: (email) => validateEmail(email),\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, email: chatState.userInput});\n },\n path: () => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.name) return \"affiliated_login_name\";\n if (!formWithUserInfo.accessId) return \"affiliated_login_accessid\";\n return \"affiliated_login_summary\";\n }\n },\n affiliated_login_name: {\n message: \"What is your name?\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, name: chatState.userInput});\n },\n path: () => {\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (!formWithUserInfo.accessId) return \"affiliated_login_accessid\";\n return \"affiliated_login_summary\";\n }\n },\n affiliated_login_accessid: {\n message: \"What is your ACCESS ID? (Optional - press Enter to skip)\",\n validateTextInput: createOptionalFieldValidator(),\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, accessId: processOptionalInput(chatState.userInput)});\n },\n path: \"affiliated_login_summary\"\n },\n affiliated_login_summary: {\n message: (chatState) => {\n const currentForm = getCurrentTicketForm();\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n // Use current form state directly since Form Context always has fresh data\n const fileInfo = getFileInfo(currentForm.uploadedFiles);\n\n // Handle ACCESS ID timing issue - if coming from accessid step, use the input directly\n let finalAccessId = formWithUserInfo.accessId;\n if (chatState.prevPath === 'affiliated_login_accessid' && chatState.userInput) {\n finalAccessId = chatState.userInput;\n } else if (!finalAccessId && chatState.prevPath === 'affiliated_login_accessid') {\n finalAccessId = chatState.userInput;\n }\n\n return `Thank you for providing your resource login issue details. Here's a summary:\\n\\n` +\n `Name: ${formWithUserInfo.name || 'Not provided'}\\n` +\n `Email: ${formWithUserInfo.email || 'Not provided'}\\n` +\n `ACCESS ID: ${finalAccessId || 'Not provided'}\\n` +\n `Resource: ${currentForm.resource || 'Not provided'}\\n` +\n `Resource User ID: ${currentForm.userIdResource || 'Not provided'}\\n` +\n `Issue Description: ${currentForm.description || 'Not provided'}${fileInfo}\\n\\n` +\n `Would you like to submit this ticket?`;\n },\n options: [\"Submit Ticket\", \"Back to Main Menu\"],\n chatDisabled: true,\n function: async (chatState) => {\n if (chatState.userInput === \"Submit Ticket\") {\n const currentForm = getCurrentTicketForm();\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n const formData = {\n email: formWithUserInfo.email || \"\",\n name: formWithUserInfo.name || \"\",\n accessId: formWithUserInfo.accessId || \"\",\n accessResource: currentForm.resource || \"\",\n description: currentForm.description || \"\",\n // ProForma field for request type 31\n userIdAtResource: currentForm.userIdResource || \"\"\n };\n\n await submitTicket(formData, 'loginProvider', currentForm.uploadedFiles || []);\n }\n },\n path: (chatState) => {\n if (chatState.userInput === \"Submit Ticket\") {\n return \"affiliated_login_success\";\n } else {\n return \"start\";\n }\n }\n },\n affiliated_login_success: {\n message: () => {\n return generateSuccessMessage(getSubmissionResult(), 'resource login ticket');\n },\n options: [\"Back to Main Menu\"],\n chatDisabled: true,\n renderHtml: [\"BOT\"],\n path: \"start\"\n }\n };\n};","import { \n createFileUploadComponent, \n createSubmissionHandler, \n generateSuccessMessage,\n getFileInfo\n} from './ticket-flow-utils';\nimport { getCurrentTicketForm, getCurrentFormWithUserInfo } from '../../flow-context-utils';\nimport { createOptionalFieldValidator, processOptionalInput } from '../../optional-field-utils';\nimport { validateEmail } from '../../validation-utils';\n\n/**\n * Creates the enhanced general help ticket flow with ProForma field support\n *\n * @param {Object} params Configuration\n * @param {Object} params.ticketForm Form state for help tickets\n * @param {Function} params.setTicketForm Function to update ticket form\n * @returns {Object} Enhanced general help flow configuration\n */\nexport const createGeneralHelpFlow = ({ ticketForm = {}, setTicketForm = () => {}, userInfo = {} }) => {\n const { submitTicket, getSubmissionResult } = createSubmissionHandler(setTicketForm);\n const fileUploadElement = createFileUploadComponent(setTicketForm, ticketForm);\n\n\n return {\n // FORM flow - Enhanced General Help Ticket Form Flow\n general_help_summary_subject: {\n message: \"Provide a short title for your ticket.\",\n function: (chatState) => {\n // Pre-populate form with user info on first step\n const currentForm = getCurrentTicketForm();\n const updatedForm = {\n ...currentForm,\n summary: chatState.userInput,\n email: userInfo.email || currentForm.email,\n name: userInfo.name || currentForm.name,\n accessId: userInfo.accessId || currentForm.accessId\n };\n setTicketForm(updatedForm);\n },\n path: \"general_help_category\"\n },\n general_help_category: {\n message: \"What type of issue are you experiencing?\",\n options: [\n \"User Account Question\",\n \"Allocation Question\",\n \"User Support Question\",\n \"CSSN/CCEP Question\",\n \"Training Question\",\n \"Metrics Question\",\n \"OnDemand Question\",\n \"Pegasus Question\",\n \"XDMoD Question\",\n \"Some Other Question\"\n ],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, category: chatState.userInput});\n },\n path: \"general_help_description\"\n },\n general_help_description: {\n message: \"Please describe your issue.\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, description: chatState.userInput});\n },\n path: \"general_help_attachment\"\n },\n general_help_attachment: {\n message: \"Would you like to attach a file to your ticket?\",\n options: [\"Yes\", \"No\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, wantsAttachment: chatState.userInput});\n },\n path: (chatState) => chatState.userInput === \"Yes\"\n ? \"general_help_upload\"\n : \"general_help_resource\"\n },\n general_help_upload: {\n message: \"Please upload your file.\",\n component: fileUploadElement,\n options: [\"Continue\"],\n chatDisabled: true,\n function: () => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, uploadConfirmed: true});\n },\n path: \"general_help_resource\"\n },\n general_help_resource: {\n message: \"Does your problem involve an ACCESS Resource?\",\n options: [\"Yes\", \"No\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, involvesResource: chatState.userInput.toLowerCase()});\n },\n path: (chatState) => chatState.userInput === \"Yes\"\n ? \"general_help_resource_details\"\n : \"general_help_keywords\"\n },\n general_help_resource_details: {\n message: \"Please select the ACCESS Resource involved with your issue:\",\n options: [\n \"ACES\",\n \"Anvil\",\n \"Bridges-2\",\n \"DARWIN\",\n \"Delta\",\n \"DeltaAI\",\n \"Derecho\",\n \"Expanse\",\n \"FASTER\",\n \"Granite\",\n \"Jetstream2\",\n \"KyRIC\",\n \"Launch\",\n \"Neocortex\",\n \"Ookami\",\n \"Open Science Grid\",\n \"Open Storage Network\",\n \"Ranch\",\n \"Stampede3\"\n ],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, resourceDetails: chatState.userInput});\n },\n path: \"general_help_user_id_at_resource\"\n },\n // NEW: Collect User ID at Resource (ProForma field)\n general_help_user_id_at_resource: {\n message: \"What is your User ID at the selected resource(s)? (Optional - press Enter to skip)\",\n validateTextInput: createOptionalFieldValidator(),\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, userIdAtResource: processOptionalInput(chatState.userInput)});\n },\n path: \"general_help_keywords\"\n },\n general_help_keywords: {\n message: \"Please add up to 5 keywords to help route your ticket.\",\n checkboxes: {\n items: [\n \" C, C++\",\n \"Abaqus\",\n \"ACCESS\",\n \"ACCESS-credits\",\n \"ACCESS-website\",\n \"Accounts\",\n \"ACLS\",\n \"Adding users\",\n \"Affiliations\",\n \"Affinity Groups\",\n \"AI\",\n \"Algorithms\",\n \"Allocation extension\",\n \"Allocation Management\",\n \"Allocation proposal\",\n \"Allocation Time\",\n \"Allocation users\",\n \"AMBER\",\n \"AMIE\",\n \"Anaconda\",\n \"Analysis\",\n \"API\",\n \"Application Status\",\n \"ARCGIS\",\n \"Architecture\",\n \"Archiving\",\n \"Astrophysics\",\n \"ATLAS\",\n \"Authentication\",\n \"AWS\",\n \"AZURE\",\n \"Backup\",\n \"BASH\",\n \"Batch Jobs\",\n \"Benchmarking\",\n \"Big Data\",\n \"Bioinformatics\",\n \"Biology\",\n \"Ceph\",\n \"CFD\",\n \"cgroups\",\n \"CHARMM\",\n \"Checkpoint\",\n \"cilogon\",\n \"citation\",\n \"Cloud\",\n \"Cloud Computing\",\n \"Cloud Lab\",\n \"Cloud Storage\",\n \"Cluster Management\",\n \"Cluster Support\",\n \"CMMC\",\n \"Community Outreach\",\n \"Compiling\",\n \"Composible Systems\",\n \"Computataional Chemistry\",\n \"COMSOL\",\n \"Conda\",\n \"Condo\",\n \"Containers\",\n \"Core dump\",\n \"Core hours\",\n \"CP2K\",\n \"CPU architecture\",\n \"CPU bound\",\n \"CUDA\",\n \"Cybersecurity\",\n \"CYVERSE\",\n \"Data\",\n \"Data Storage\",\n \"Data-access-protocols\",\n \"Data-analysis\",\n \"Data-compliance\",\n \"Data-lifecycle\",\n \"Data-management\",\n \"Data-management-software\",\n \"Data-provenance\",\n \"Data-reproducibility\",\n \"Data-retention\",\n \"Data-science\",\n \"Data-sharing\",\n \"Data-transfer\",\n \"Data-wrangling\",\n \"Database-update\",\n \"Debugging\",\n \"Debugging, Optimizatio and Profiling\",\n \"Deep-learning\",\n \"Dependencies\",\n \"Deployment\",\n \"DFT\",\n \"Distributed-computing\",\n \"DNS\",\n \"Docker\",\n \"Documentation\",\n \"DOI\",\n \"DTN\",\n \"Easybuild\",\n \"Email\",\n \"Encryption\",\n \"Environment-modules\",\n \"Errors\",\n \"Extension\",\n \"FastX\",\n \"Federated-authentication\",\n \"File transfers\",\n \"File-formats\",\n \"File-limits\",\n \"File-systems\",\n \"File-transfer\",\n \"Finite-element-analysis\",\n \"Firewall\",\n \"Fortran\",\n \"Frameworks and IDE's\",\n \"GAMESS\",\n \"Gateways\",\n \"GATK\",\n \"Gaussian\",\n \"GCC\",\n \"Genomics\",\n \"GIS\",\n \"Git\",\n \"Globus\",\n \"GPFS\",\n \"GPU\",\n \"Gravitational-waves\",\n \"Gridengine\",\n \"GROMACS\",\n \"Hadoop\",\n \"Hardware\",\n \"Image-processing\",\n \"Infiniband\",\n \"Interactive-mode\",\n \"Interconnect\",\n \"IO-Issue\",\n \"ISILON\",\n \"Java\",\n \"Jekyll\",\n \"Jetstream\",\n \"Job-accounting\",\n \"Job-array\",\n \"Job-charging\",\n \"Job-failure\",\n \"Job-sizing\",\n \"Job-submission\",\n \"Julia\",\n \"Jupyterhub\",\n \"Key-management\",\n \"Kubernetes\",\n \"KyRIC\",\n \"LAMMPS\",\n \"Library-paths\",\n \"License\",\n \"Linear-programming\",\n \"Linux\",\n \"LMOD\",\n \"login\",\n \"LSF\",\n \"Lustre\",\n \"Machine-learning\",\n \"Management\",\n \"Materials-science\",\n \"Mathematica\",\n \"MATLAB\",\n \"Memory\",\n \"Metadata\",\n \"Modules\",\n \"Molecular-dynamics\",\n \"Monte-carlo\",\n \"MPI\",\n \"NAMD\",\n \"NetCDF\",\n \"Networking\",\n \"Neural-networks\",\n \"NFS\",\n \"NLP\",\n \"NoMachine\",\n \"Nvidia\",\n \"Oceanography\",\n \"OnDemnad\",\n \"Open-science-grid\",\n \"Open-storage-network\",\n \"OpenCV\",\n \"Openfoam\",\n \"OpenMP\",\n \"OpenMPI\",\n \"OpenSHIFT\",\n \"Openstack\",\n \"Optimization\",\n \"OS\",\n \"OSG\",\n \"Parallelization\",\n \"Parameter-sweeps\",\n \"Paraview\",\n \"Particle-physics\",\n \"password\",\n \"PBS\",\n \"Pegasus\",\n \"Pending-jobs\",\n \"Performance-tuning\",\n \"Permissions\",\n \"Physiology\",\n \"PIP\",\n \"PODMAN\",\n \"Portals\",\n \"Pre-emption\",\n \"Professional and Workforce Development\",\n \"Professional-development\",\n \"Profile\",\n \"Profiling\",\n \"Programming\",\n \"Programming Languages\",\n \"Programming-best-practices\",\n \"Project-management\",\n \"Project-renewal\",\n \"Provisioning\",\n \"Pthreads\",\n \"Publication-database\",\n \"Putty\",\n \"Python\",\n \"Pytorch\",\n \"Quantum-computing\",\n \"Quantum-mechanics\",\n \"Quota\",\n \"R\",\n \"RDP\",\n \"React\",\n \"Reporting\",\n \"Research-facilitation\",\n \"Research-grants\",\n \"Resources\",\n \"Rstudio-server\",\n \"S3\",\n \"Samba\",\n \"SAS\",\n \"Scaling\",\n \"Schedulers\",\n \"Scheduling\",\n \"Science DMZ\",\n \"Science Gateways\",\n \"Scikit-learn\",\n \"Scratch\",\n \"screen\",\n \"scripting\",\n \"SDN\",\n \"Secure Computing and Data\",\n \"Secure-data-architecture\",\n \"Serverless-hpc\",\n \"setup\",\n \"sftp\",\n \"SGE\",\n \"Shell Scripting\",\n \"Shifter\",\n \"Singularity\",\n \"SLURM\",\n \"SMB\",\n \"Smrtanalysis\",\n \"Software Installations\",\n \"Software-carpentry\",\n \"SPACK\",\n \"SPARK\",\n \"Spectrum-scale\",\n \"SPSS\",\n \"SQL\",\n \"SSH\",\n \"Stampede2\",\n \"STATA\",\n \"Storage\",\n \"Supplement\",\n \"Support\",\n \"TCP\",\n \"Technical-training-for-hpc\",\n \"Tensorflow\",\n \"Terminal-emulation-and-window-management\",\n \"Tickets\",\n \"Timing-issue\",\n \"TMUX\",\n \"Tools\",\n \"Training\",\n \"Transfer SUs\",\n \"Trinity\",\n \"Tuning\",\n \"Unix-environment\",\n \"Upgrading\",\n \"Vectorization\",\n \"Version-control\",\n \"vim\",\n \"VNC\",\n \"VPN\",\n \"Workflow\",\n \"Workforce-development\",\n \"X11\",\n \"Xalt\",\n \"XDMoD\",\n \"XML\",\n \"XSEDE\",\n \"I don't see a relevant keyword\"\n ],\n min: 0,\n max: 5\n },\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, keywords: chatState.userInput});\n },\n path: (chatState) => {\n if (chatState.userInput && chatState.userInput.includes(\"I don't see a relevant keyword\")) {\n return \"general_help_additional_keywords\";\n } else {\n return \"general_help_priority\";\n }\n }\n },\n general_help_additional_keywords: {\n message: \"Please enter additional keywords, separated by commas:\",\n function: (chatState) => {\n // Get the current keywords selected from checkboxes\n const currentForm = getCurrentTicketForm();\n const currentKeywords = currentForm.keywords || [];\n const additionalKeywords = chatState.userInput;\n\n // Ensure we're working with arrays for consistency\n const keywordsArray = Array.isArray(currentKeywords)\n ? [...currentKeywords]\n : currentKeywords.split(',').map(k => k.trim());\n\n // Filter out \"I don't see a relevant keyword\" from the keywords\n const filteredKeywords = keywordsArray.filter(k => k !== \"I don't see a relevant keyword\");\n\n // Add the additional keywords - this will map to suggestedKeyword ProForma field\n const formattedKeywords = Array.isArray(filteredKeywords) && filteredKeywords.length > 0\n ? [...filteredKeywords, additionalKeywords].join(\", \")\n : additionalKeywords;\n\n setTicketForm({\n ...currentForm,\n keywords: formattedKeywords,\n suggestedKeyword: additionalKeywords // NEW: Store separately for ProForma mapping\n });\n },\n path: \"general_help_priority\"\n },\n general_help_priority: {\n message: \"Please select a priority for your issue:\",\n options: [\"Lowest\", \"Low\", \"Medium\", \"High\", \"Highest\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, priority: chatState.userInput.toLowerCase()});\n },\n path: () => {\n if (!userInfo.email) return \"general_help_email\";\n if (!userInfo.name) return \"general_help_name\";\n if (!userInfo.accessId) return \"general_help_accessid\";\n return \"general_help_ticket_summary\";\n }\n },\n general_help_email: {\n message: \"What is your email address?\",\n validateTextInput: (email) => validateEmail(email),\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, email: chatState.userInput});\n },\n path: () => {\n if (!userInfo.name) return \"general_help_name\";\n if (!userInfo.accessId) return \"general_help_accessid\";\n return \"general_help_ticket_summary\";\n }\n },\n general_help_name: {\n message: \"What is your name?\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, name: chatState.userInput});\n },\n path: () => {\n if (!userInfo.accessId) return \"general_help_accessid\";\n return \"general_help_ticket_summary\";\n }\n },\n general_help_accessid: {\n message: \"What is your ACCESS ID? (Optional - press Enter to skip)\",\n required: false,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm();\n setTicketForm({...currentForm, accessId: chatState.userInput || \"\"});\n },\n path: \"general_help_ticket_summary\"\n },\n general_help_ticket_summary: {\n message: (chatState) => {\n // Get current form state from context (always up-to-date)\n const currentForm = getCurrentTicketForm();\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n \n // Use current form state directly since Form Context always has fresh data\n const fileInfo = getFileInfo(currentForm.uploadedFiles);\n\n // Handle ACCESS ID timing issue - if coming from accessid step, use the input directly\n let finalAccessId = formWithUserInfo.accessId;\n if (chatState.prevPath === 'general_help_accessid' && chatState.userInput) {\n finalAccessId = chatState.userInput;\n } else if (!finalAccessId && chatState.prevPath === 'general_help_accessid') {\n finalAccessId = chatState.userInput;\n }\n\n let resourceInfo = '';\n if (currentForm.involvesResource === 'yes') {\n resourceInfo = `\\nResource: ${currentForm.resourceDetails || 'Not specified'}`;\n if (currentForm.userIdAtResource) {\n resourceInfo += `\\nUser ID at Resource: ${currentForm.userIdAtResource}`;\n }\n }\n\n return `Thank you for providing your issue details. Here's a summary:\\n\\n` +\n `Name: ${formWithUserInfo.name || 'Not provided'}\\n` +\n `Email: ${formWithUserInfo.email || 'Not provided'}\\n` +\n `ACCESS ID: ${finalAccessId || 'Not provided'}\\n` +\n `Issue Summary: ${currentForm.summary || 'Not provided'}\\n` +\n `Category: ${currentForm.category || 'Not provided'}\\n` +\n `Priority: ${currentForm.priority || 'Not provided'}\\n` +\n `Keywords: ${currentForm.keywords || 'Not provided'}\\n` +\n `Issue Description: ${currentForm.description || 'Not provided'}${resourceInfo}${fileInfo}\\n\\n` +\n `Would you like to submit this ticket?`;\n },\n options: [\"Submit Ticket\", \"Back to Main Menu\"],\n chatDisabled: true,\n function: async (chatState) => {\n if (chatState.userInput === \"Submit Ticket\") {\n const currentForm = getCurrentTicketForm();\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n const formData = {\n // Regular JSM fields\n email: formWithUserInfo.email || \"\",\n summary: currentForm.summary || \"General Support Ticket\",\n description: currentForm.description || \"\",\n priority: currentForm.priority || \"medium\",\n accessId: formWithUserInfo.accessId || \"\",\n name: formWithUserInfo.name || \"\",\n issueType: currentForm.category || \"\",\n // ProForma fields for request type 17\n hasResourceProblem: currentForm.involvesResource === 'yes' ? 'Yes' : 'No',\n userIdAtResource: currentForm.userIdAtResource || \"\",\n resourceName: currentForm.resourceDetails || \"\",\n keywords: currentForm.keywords || \"\",\n noRelevantKeyword: currentForm.suggestedKeyword ? 'checked' : '',\n suggestedKeyword: currentForm.suggestedKeyword || \"\"\n };\n\n await submitTicket(formData, 'support', currentForm.uploadedFiles || []);\n }\n },\n path: (chatState) => {\n if (chatState.userInput === \"Submit Ticket\") {\n return \"general_help_success\";\n } else {\n return \"start\";\n }\n }\n },\n general_help_success: {\n message: () => {\n return generateSuccessMessage(getSubmissionResult(), 'support ticket');\n },\n options: [\"Back to Main Menu\"],\n chatDisabled: true,\n renderHtml: [\"BOT\"],\n path: \"start\"\n }\n };\n};","import React from 'react';\nimport FileUploadComponent from '../../components/FileUploadComponent';\nimport { submitSecurityIncident } from '../api-utils';\nimport { getCurrentTicketForm, getCurrentFormWithUserInfo } from '../flow-context-utils';\nimport { createOptionalFieldValidator, processOptionalInput } from '../optional-field-utils';\n\n/**\n * Creates the security incident conversation flow\n *\n * @param {Object} params Configuration\n * @param {Object} params.ticketForm Form state for security incident\n * @param {Function} params.setTicketForm Function to update security incident form\n * @param {Object} params.userInfo User information for pre-population\n * @returns {Object} Security incident flow configuration\n */\nexport const createSecurityFlow = ({\n setTicketForm = () => {},\n userInfo = {}\n}) => {\n // Store the most recent ACCESS ID input to handle timing issues\n let mostRecentAccessId = null;\n \n // Store submission result for success message\n let submissionResult = null;\n \n // Custom success message for security incidents\n const generateSecuritySuccessMessage = (result) => {\n if (result && !result.success) {\n return `We apologize, but there was an error submitting your security incident report: ${result.error}\\n\\nPlease try again or contact our cybersecurity team directly.`;\n } else if (result && result.success && result.ticketUrl && result.ticketKey) {\n return `Your security incident report has been submitted successfully.\\n\\nTicket: <a href=\"${result.ticketUrl}\" target=\"_blank\">${result.ticketKey}</a>\\n\\nOur cybersecurity team will review your report and respond accordingly. Thank you for helping keep ACCESS secure.`;\n } else if (result && result.success) {\n return `Your security incident report has been submitted successfully.\\n\\nOur cybersecurity team will review your report and respond accordingly. Thank you for helping keep ACCESS secure.`;\n } else {\n return `Your security incident report has been submitted successfully.\\n\\nOur cybersecurity team will review your report and respond accordingly. Thank you for helping keep ACCESS secure.`;\n }\n };\n // Store the FileUploadComponent JSX in a variable for better readability\n const fileUploadElement = (\n <FileUploadComponent\n onFileUpload={(files) => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({\n ...currentForm,\n uploadedFiles: files\n });\n }}\n />\n );\n\n return {\n security_incident: {\n message: \"You're reporting a security incident. Please provide a brief summary of the security concern.\",\n function: (chatState) => {\n // Pre-populate form with user info on first step\n const currentForm = getCurrentTicketForm() || {};\n const updatedForm = {\n ...currentForm,\n summary: chatState.userInput,\n email: userInfo.email || currentForm.email,\n name: userInfo.name || currentForm.name,\n accessId: userInfo.accessId || currentForm.accessId\n };\n setTicketForm(updatedForm);\n },\n path: \"security_priority\"\n },\n security_priority: {\n message: \"What is the priority level of this security incident?\",\n options: [\"Critical\", \"High\", \"Medium\", \"Low\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, priority: chatState.userInput});\n },\n path: \"security_description\"\n },\n security_description: {\n message: \"Please provide a detailed description of the security incident or concern.\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, description: chatState.userInput});\n },\n path: \"security_attachment\"\n },\n security_attachment: {\n message: \"Do you have any files (screenshots, logs, etc.) that would help with this security incident?\",\n options: [\"Yes\", \"No\"],\n chatDisabled: true,\n function: (chatState) => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, wantsAttachment: chatState.userInput});\n },\n path: (chatState) => chatState.userInput === \"Yes\"\n ? \"security_upload\"\n : \"security_contact_info\"\n },\n security_upload: {\n message: \"Please upload your files.\",\n component: fileUploadElement,\n options: [\"Continue\"],\n chatDisabled: true,\n function: () => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, uploadConfirmed: true});\n },\n path: \"security_contact_info\"\n },\n security_contact_info: {\n message: () => {\n // Always merge with user info to get the most current data\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (formWithUserInfo.name && formWithUserInfo.email && formWithUserInfo.accessId) {\n return `I have your contact information:\\n\\nName: ${formWithUserInfo.name}\\nEmail: ${formWithUserInfo.email}\\nACCESS ID: ${formWithUserInfo.accessId}\\n\\nIs this correct?`;\n }\n return \"I need your contact information. What is your name?\";\n },\n options: (chatState) => {\n if (!chatState) return [];\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n return (formWithUserInfo.name && formWithUserInfo.email && formWithUserInfo.accessId) \n ? [\"Yes, that's correct\", \"Let me update it\"]\n : [];\n },\n chatDisabled: (chatState) => {\n if (!chatState) return false;\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n // Only disable chat when we have all info (showing confirmation buttons)\n // Enable chat when we need user to type their info\n const hasAllInfo = formWithUserInfo.name && formWithUserInfo.email && formWithUserInfo.accessId;\n return hasAllInfo; // Disable only when showing options, enable when expecting input\n },\n function: (chatState) => {\n if (!chatState) return;\n const currentForm = getCurrentTicketForm() || {};\n if (!currentForm.name) {\n // User is providing their name\n const updatedForm = {...currentForm, name: chatState.userInput};\n setTicketForm(updatedForm);\n }\n },\n path: (chatState) => {\n if (!chatState) return \"security_summary\";\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n if (chatState.userInput === \"Yes, that's correct\") {\n return \"security_summary\";\n } else if (chatState.userInput === \"Let me update it\") {\n return \"security_name\";\n } else if (!formWithUserInfo.name) {\n return \"security_email\";\n } else if (!formWithUserInfo.email) {\n return \"security_email\";\n } else if (!formWithUserInfo.accessId) {\n return \"security_accessid\";\n }\n return \"security_summary\";\n }\n },\n security_name: {\n message: \"What is your name?\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, name: chatState.userInput});\n },\n path: \"security_email\"\n },\n security_email: {\n message: \"What is your email address?\",\n function: (chatState) => {\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, email: chatState.userInput});\n },\n path: \"security_accessid\"\n },\n security_accessid: {\n message: \"What is your ACCESS ID? (Optional - press Enter to skip)\",\n validateTextInput: createOptionalFieldValidator(),\n function: (chatState) => {\n // Store the processed input\n const finalInput = processOptionalInput(chatState.userInput);\n mostRecentAccessId = finalInput;\n const currentForm = getCurrentTicketForm() || {};\n setTicketForm({...currentForm, accessId: finalInput});\n },\n path: \"security_summary\"\n },\n security_summary: {\n message: () => {\n // Get current form state from context\n const currentForm = getCurrentTicketForm() || {};\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n \n // Create a merged form that includes the most recent data\n const finalForm = {\n ...currentForm,\n name: formWithUserInfo.name || currentForm.name,\n email: formWithUserInfo.email || currentForm.email,\n accessId: mostRecentAccessId || formWithUserInfo.accessId || currentForm.accessId\n };\n \n let fileInfo = '';\n if (currentForm.uploadedFiles && currentForm.uploadedFiles.length > 0) {\n fileInfo = `\\nAttachments: ${currentForm.uploadedFiles.length} file(s) attached`;\n }\n\n const accessIdDisplay = finalForm.accessId || 'Not provided';\n \n return `Here's a summary of your security incident report:\\n\\n` +\n `Summary: ${finalForm.summary || 'Not provided'}\\n` +\n `Priority: ${finalForm.priority || 'Not provided'}\\n` +\n `Name: ${finalForm.name || 'Not provided'}\\n` +\n `Email: ${finalForm.email || 'Not provided'}\\n` +\n `ACCESS ID: ${accessIdDisplay}\\n` +\n `Description: ${finalForm.description || 'Not provided'}${fileInfo}\\n\\n` +\n `Would you like to submit this security incident report?`;\n },\n options: [\"Submit Security Report\", \"Back to Main Menu\"],\n chatDisabled: true,\n function: async (chatState) => {\n if (chatState.userInput === \"Submit Security Report\") {\n const currentForm = getCurrentTicketForm() || {};\n const formWithUserInfo = getCurrentFormWithUserInfo(userInfo);\n \n // Create final merged form to handle timing issues\n const finalForm = {\n ...currentForm,\n name: formWithUserInfo.name || currentForm.name,\n email: formWithUserInfo.email || currentForm.email,\n accessId: mostRecentAccessId || formWithUserInfo.accessId || currentForm.accessId\n };\n \n // Prepare form data for security incident submission\n const formData = {\n summary: finalForm.summary || \"\",\n priority: finalForm.priority || \"\",\n description: finalForm.description || \"\",\n name: finalForm.name || \"\",\n email: finalForm.email || \"\",\n accessId: finalForm.accessId || \"\"\n };\n\n try {\n // Submit the security incident\n const result = await submitSecurityIncident(\n formData,\n currentForm.uploadedFiles || []\n );\n\n if (result.success) {\n submissionResult = {\n success: true,\n ticketKey: result.data?.data?.ticketKey,\n ticketUrl: result.data?.data?.ticketUrl\n };\n setTicketForm(prevForm => ({\n ...prevForm,\n ticketKey: result.data?.data?.ticketKey,\n ticketUrl: result.data?.data?.ticketUrl\n }));\n } else {\n submissionResult = {\n success: false,\n error: result.error\n };\n setTicketForm(prevForm => ({\n ...prevForm,\n submissionError: result.error\n }));\n }\n } catch (error) {\n submissionResult = {\n success: false,\n error: error.message\n };\n setTicketForm(prevForm => ({\n ...prevForm,\n submissionError: error.message\n }));\n }\n }\n },\n path: (chatState) => {\n if (chatState.userInput === \"Submit Security Report\") {\n return \"security_success\";\n } else {\n return \"start\";\n }\n }\n },\n security_success: {\n message: () => {\n return generateSecuritySuccessMessage(submissionResult);\n },\n options: [\"Back to Main Menu\"],\n chatDisabled: true,\n renderHtml: [\"BOT\"],\n path: \"start\"\n }\n };\n};","import React from 'react';\nimport LoginButton from '../components/LoginButton';\nimport { buildWelcomeMessage } from '../config/constants';\nimport { createMainMenuFlow } from './flows/main-menu-flow';\nimport { createQAFlow } from './flows/qa-flow';\nimport { createTicketFlow } from './flows/ticket-flow';\n// import { createFeedbackFlow } from './flows/feedback-flow';\nimport { createSecurityFlow } from './flows/security-flow';\nimport { setCurrentFormContext } from './flow-context-utils';\n\nfunction createBotFlow({\n welcomeMessage,\n isBotLoggedIn,\n loginUrl,\n handleQuery,\n hasQueryError,\n sessionId,\n currentQueryId,\n ticketForm = {},\n setTicketForm = () => {},\n // feedbackForm = {},\n // setFeedbackForm = () => {},\n formContext,\n userInfo = {}\n}) {\n // Set the current form context for use in flow functions\n if (formContext) {\n setCurrentFormContext(formContext);\n }\n // Always create the main menu flow (available to everyone)\n const mainMenuFlow = createMainMenuFlow({\n welcome: buildWelcomeMessage(true, welcomeMessage), // Always use logged-in style welcome\n setTicketForm,\n // setFeedbackForm\n });\n\n // Create Q&A flow (requires login)\n const qaFlow = isBotLoggedIn\n ? createQAFlow({\n fetchAndStreamResponse: handleQuery,\n sessionId,\n currentQueryId\n })\n : {\n go_ahead_and_ask: {\n message: \"To ask questions, you need to log in first.\",\n component: <LoginButton loginUrl={loginUrl} />,\n options: [\"Back to Main Menu\"],\n chatDisabled: true,\n path: (chatState) => {\n if (chatState.userInput === \"Back to Main Menu\") {\n return \"start\";\n }\n return \"go_ahead_and_ask\";\n }\n }\n };\n\n // Create ticket and feedback flows (available to everyone)\n const ticketFlow = createTicketFlow({\n ticketForm,\n setTicketForm,\n userInfo\n });\n\n // TODO: Add feedback flow back in\n // const feedbackFlow = createFeedbackFlow({\n // feedbackForm,\n // setFeedbackForm,\n // userInfo\n // });\n\n const securityFlow = createSecurityFlow({\n ticketForm,\n setTicketForm,\n userInfo\n });\n\n // Combine all flows with null safety\n const flow = {\n ...(mainMenuFlow || {}),\n ...(qaFlow || {}),\n ...(ticketFlow || {}),\n //...(feedbackFlow || {}), // TODO: add feedback flow back in\n ...(securityFlow || {}),\n // Add fallback loop for errors (only if logged in)\n ...(isBotLoggedIn && {\n loop: {\n message: async (params) => {\n await handleQuery(params);\n },\n renderMarkdown: [\"BOT\"],\n path: () => hasQueryError ? 'start' : 'loop'\n }\n })\n };\n\n return flow;\n}\n\nexport { createBotFlow };\n","/**\n * Creates the main menu conversation flow\n *\n * @param {Object} params Configuration\n * @param {string} params.welcome Welcome text\n * @param {Function} params.setTicketForm Function to reset ticket form\n * @param {Function} params.setFeedbackForm Function to reset feedback form\n * @returns {Object} Main menu flow configuration\n */\nexport const createMainMenuFlow = ({\n welcome,\n setTicketForm = () => {},\n setFeedbackForm = () => {}\n}) => {\n return {\n start: {\n message: welcome,\n options: [\n \"Ask a question about ACCESS\", // AI loop\n \"Open a Help Ticket\", // Jira Ticket\n // \"Provide feedback to ACCESS\", // TODO: Add feedback flow back in\n \"Report a security issue\" // Security\n ],\n chatDisabled: true,\n path: (chatState) => {\n if (chatState.userInput === \"Ask a question about ACCESS\") {\n return \"go_ahead_and_ask\";\n } else if (chatState.userInput === \"Open a Help Ticket\") {\n // Reset form data\n setTicketForm({});\n return \"help_ticket\";\n // } else if (chatState.userInput === \"Provide feedback to ACCESS\") {\n // // Reset form data\n // setFeedbackForm({});\n // return \"feedback\";\n } else if (chatState.userInput === \"Report a security issue\") {\n // Reset form data\n setTicketForm({});\n return \"security_incident\";\n }\n return \"start\";\n }\n }\n };\n};","import React, { useRef, useState, useEffect, useMemo } from 'react';\nimport ChatBot, { ChatBotProvider } from \"react-chatbotify\";\nimport HtmlRenderer from \"@rcb-plugins/html-renderer\";\nimport MarkdownRenderer from \"@rcb-plugins/markdown-renderer\";\nimport InputValidator from \"@rcb-plugins/input-validator\";\nimport { v4 as uuidv4 } from 'uuid';\nimport BotController from './BotController';\nimport useThemeColors from '../hooks/useThemeColors';\nimport useChatBotSettings from '../hooks/useChatBotSettings';\nimport useHandleAIQuery from '../hooks/useHandleAIQuery';\nimport useUpdateHeader from '../hooks/useUpdateHeader';\nimport useRingEffect from '../hooks/useRingEffect';\nimport useFocusableSendButton from '../hooks/useFocusableSendButton';\nimport useKeyboardNavigation from '../hooks/useKeyboardNavigation';\nimport { DEFAULT_CONFIG, buildWelcomeMessage } from '../config/constants';\nimport { createBotFlow } from '../utils/create-bot-flow';\nimport { FormProvider, useFormContext } from '../contexts/FormContext';\n\n\nconst generateSessionId = () => {\n return `qa_bot_session_${uuidv4()}`;\n};\n\nconst getOrCreateSessionId = () => {\n // Check if we already have a session ID in localStorage\n for (let i = 0; i < localStorage.length; i++) {\n const key = localStorage.key(i);\n if (key && key.startsWith('qa_bot_session_')) {\n const sessionId = localStorage.getItem(key);\n if (sessionId) {\n return sessionId;\n }\n }\n }\n const newSessionId = generateSessionId();\n localStorage.setItem(newSessionId, newSessionId);\n return newSessionId;\n};\n\n/**\n * Internal QABot component that uses Form Context\n */\nconst QABotInternal = React.forwardRef((props, botRef) => {\n const {\n apiKey,\n open = false,\n onOpenChange,\n embedded = false,\n isLoggedIn,\n loginUrl = DEFAULT_CONFIG.LOGIN_URL,\n ringEffect = false,\n welcome,\n userEmail,\n userName,\n accessId\n } = props;\n\n const finalApiKey = apiKey || process.env.REACT_APP_API_KEY;\n\n const [isBotLoggedIn, setIsBotLoggedIn] = useState(isLoggedIn !== undefined ? isLoggedIn : false);\n const sessionIdRef = useRef(getOrCreateSessionId());\n const sessionId = sessionIdRef.current;\n const [currentQueryId, setCurrentQueryId] = useState(null);\n \n // Use Form Context instead of local state\n const { ticketForm, feedbackForm, updateTicketForm, updateFeedbackForm, resetTicketForm, resetFeedbackForm } = useFormContext();\n\n // Update internal state when isLoggedIn prop changes\n useEffect(() => {\n if (isLoggedIn !== undefined) {\n setIsBotLoggedIn(isLoggedIn);\n }\n }, [isLoggedIn]);\n\n // Initialize currentQueryId as null - will be set by useHandleAIQuery\n // when actual queries are processed\n\n // Listen for chat window toggle events from react-chatbotify\n useEffect(() => {\n if (!embedded && onOpenChange) {\n const handleChatWindowToggle = (event) => {\n if (botRef && botRef.current && botRef.current._markAsUserInteraction) {\n botRef.current._markAsUserInteraction();\n }\n const newOpenState = event.data.newState;\n onOpenChange(newOpenState);\n };\n window.addEventListener('rcb-toggle-chat-window', handleChatWindowToggle);\n\n return () => {\n window.removeEventListener('rcb-toggle-chat-window', handleChatWindowToggle);\n };\n }\n }, [embedded, onOpenChange, botRef]);\n\n const welcomeMessage = buildWelcomeMessage(isBotLoggedIn, welcome);\n const containerRef = useRef(null);\n const themeColors = useThemeColors(containerRef);\n\n const chatBotSettings = useChatBotSettings({\n themeColors,\n embedded,\n defaultOpen: open,\n isLoggedIn: isBotLoggedIn\n });\n\n const handleQuery = useHandleAIQuery(finalApiKey, sessionId, setCurrentQueryId);\n\n const formContext = useMemo(() => ({ \n ticketForm: ticketForm || {}, \n feedbackForm: feedbackForm || {}, \n updateTicketForm, \n updateFeedbackForm, \n resetTicketForm, \n resetFeedbackForm \n }), [ticketForm, feedbackForm, updateTicketForm, updateFeedbackForm, resetTicketForm, resetFeedbackForm]);\n \n const flow = useMemo(() => createBotFlow({\n welcomeMessage,\n isBotLoggedIn,\n loginUrl,\n handleQuery,\n sessionId,\n currentQueryId,\n ticketForm,\n setTicketForm: updateTicketForm,\n feedbackForm,\n setFeedbackForm: updateFeedbackForm,\n formContext,\n userInfo: {\n email: userEmail || null,\n name: userName || null,\n accessId: accessId || null\n }\n }), [welcomeMessage, isBotLoggedIn, loginUrl, handleQuery, sessionId, currentQueryId, ticketForm, feedbackForm, updateTicketForm, updateFeedbackForm, formContext, userEmail, userName, accessId]);\n\n useUpdateHeader(isBotLoggedIn, containerRef);\n useRingEffect(ringEffect, containerRef);\n useFocusableSendButton();\n useKeyboardNavigation();\n\n // Handle tooltip session tracking\n useEffect(() => {\n // Listen for chat window toggle (opening chat)\n const handleToggle = () => {\n // Mark tooltip as shown when user opens chat\n sessionStorage.setItem('qa_bot_tooltip_shown', 'true');\n };\n\n // Add event listener\n window.addEventListener('rcb-toggle-chat-window', handleToggle);\n\n // Cleanup\n return () => {\n window.removeEventListener('rcb-toggle-chat-window', handleToggle);\n };\n }, []);\n\n return (\n <div \n className={`qa-bot ${embedded ? \"embedded-qa-bot\" : \"\"}`} \n ref={containerRef}\n role=\"region\"\n aria-label=\"Ask ACCESS tool\"\n >\n <ChatBotProvider>\n <main role=\"main\" aria-label=\"Chat interface\">\n <BotController\n ref={botRef}\n embedded={embedded}\n isBotLoggedIn={isBotLoggedIn}\n currentOpen={open}\n />\n <ChatBot\n key={`chatbot-${sessionId}-${isBotLoggedIn}`}\n settings={chatBotSettings}\n flow={flow}\n plugins={[HtmlRenderer(), MarkdownRenderer(), InputValidator()]}\n />\n {/* Live region for screen reader announcements */}\n <div \n aria-live=\"polite\" \n aria-label=\"Bot response updates\"\n className=\"sr-only\"\n id=\"bot-live-region\"\n />\n \n {/* Accessibility help text */}\n <div id=\"chat-input-help\" className=\"sr-only\">\n Type your message and press Enter to send. Use arrow keys to navigate through response options. Press Enter or Space to select an option.\n </div>\n \n {/* Keyboard navigation instructions */}\n <div id=\"keyboard-help\" className=\"sr-only\">\n Available keyboard shortcuts: Arrow keys to navigate options, Enter or Space to select, Tab to move between interactive elements, Escape to close dialogs.\n </div>\n </main>\n </ChatBotProvider>\n </div>\n );\n});\n\nQABotInternal.displayName = 'QABotInternal';\n\n/**\n * Q&A Bot Component (Controlled)\n *\n * @param {Object} [props]\n * @param {string} [props.apiKey] - API key for the Q&A endpoint\n * @param {boolean} [props.open] - Whether the chat window is open (floating mode only, ignored for embedded)\n * @param {Function} [props.onOpenChange] - Callback when chat window open state changes\n * @param {boolean} [props.embedded=false] - Whether the bot is embedded in the page (always open when embedded)\n * @param {boolean} [props.isLoggedIn=false] - Whether the user is logged in\n * @param {string} [props.loginUrl='/login'] - URL to redirect for login\n * @param {boolean} [props.ringEffect=true] - Whether to apply the phone ring animation effect to the tooltip\n * @param {string} [props.welcome='Hello! What can I help you with?'] - Welcome message\n * @param {string} [props.userEmail] - User's email address (when logged in)\n * @param {string} [props.userName] - User's display name (when logged in)\n * @param {string} [props.accessId] - User's ACCESS ID (when logged in)\n * @returns {JSX.Element}\n */\nconst QABot = React.forwardRef((props, ref) => {\n return (\n <FormProvider>\n <QABotInternal {...props} ref={ref} />\n </FormProvider>\n );\n});\n\nQABot.displayName = 'QABot';\n\nexport default QABot;","import React, { useMemo } from 'react';\nimport { DEFAULT_CONFIG } from '../config/constants';\nimport NewChatButton from '../components/NewChatButton';\nimport UserIcon from '../components/UserIcon';\nimport LoginButton from '../components/LoginButton';\nimport { Button } from \"react-chatbotify\"\n\n/**\n * Custom hook to generate ChatBot settings\n * @param {Object} params - Parameters for generating settings\n * @param {Object} params.themeColors - Theme colors from useThemeColors\n * @param {boolean} params.embedded - Whether the bot is embedded\n * @param {boolean} params.defaultOpen - Default open state (floating mode only)\n * @param {boolean} params.isLoggedIn - Whether user is logged in (passed to UserIcon)\n * @returns {Object} ChatBot settings object\n */\nconst useChatBotSettings = ({\n themeColors,\n embedded,\n defaultOpen,\n isLoggedIn\n}) => {\n const isBotLoggedIn = isLoggedIn;\n \n // Check if tooltip has been shown in this session\n const hasShownTooltip = sessionStorage.getItem('qa_bot_tooltip_shown');\n const tooltipMode = hasShownTooltip ? 'NEVER' : 'START';\n \n const settings = useMemo(() => {\n return {\n general: {\n ...themeColors,\n embedded: embedded,\n // Enhanced accessibility\n primaryColor: themeColors.primaryColor,\n fontFamily: 'Arial, sans-serif',\n // Ensure good contrast ratios\n secondaryColor: themeColors.secondaryColor\n },\n header: {\n title: (\n <div key=\"header-title\">\n <h1 className=\"sr-only\">{DEFAULT_CONFIG.CHATBOT.TITLE}</h1>\n <span aria-hidden=\"true\">{DEFAULT_CONFIG.CHATBOT.TITLE}</span>\n </div>\n ),\n avatar: DEFAULT_CONFIG.CHATBOT.AVATAR_URL,\n buttons: [\n isBotLoggedIn ? <UserIcon key=\"user-icon\" /> : <LoginButton key=\"login-button\" loginUrl=\"/login\" isHeaderButton={true} />,\n Button.CLOSE_CHAT_BUTTON\n ]\n },\n chatWindow: {\n defaultOpen: embedded ? true : defaultOpen,\n },\n chatInput: {\n enabledPlaceholderText: 'Type your question here...',\n disabledPlaceholderText: '',\n disabled: false,\n allowNewline: true,\n sendButtonStyle: { display: 'flex' },\n characterLimit: 1000,\n sendButtonAriaLabel: 'Send message',\n showCharacterCount: false,\n // Enhanced accessibility\n ariaLabel: 'Chat input area',\n ariaDescribedBy: 'chat-input-help'\n },\n chatHistory: {\n disabled: false\n },\n botBubble: {\n simulateStream: true,\n streamSpeed: 10,\n allowNewline: true,\n dangerouslySetInnerHTML: true,\n renderHtml: true,\n // Enhanced accessibility\n ariaLabel: 'Bot response',\n role: 'log'\n },\n chatButton: {\n icon: DEFAULT_CONFIG.CHATBOT.AVATAR_URL,\n },\n tooltip: {\n text: DEFAULT_CONFIG.CHATBOT.TOOLTIP_TEXT,\n mode: tooltipMode\n },\n audio: {\n disabled: true,\n },\n emoji: {\n disabled: true,\n },\n fileAttachment: {\n disabled: true,\n },\n notification: {\n disabled: true,\n },\n footer: {\n text: (<div key=\"footer-text\"><a href=\"https://support.access-ci.org/tools/access-qa-tool\">About this tool</a>.</div>),\n buttons: [\n <NewChatButton key=\"new-chat-button\" />\n ]\n },\n event: {\n rcbToggleChatWindow: true // Enable chat window toggle event\n }\n };\n }, [themeColors, embedded, defaultOpen, isBotLoggedIn, tooltipMode]);\n\n return settings;\n};\n\nexport default useChatBotSettings;","import { useEffect } from 'react';\n\n/**\n * Custom hook to update the chatbot header\n * This avoids relying on the beta useSettings hook from react-chatbotify\n * When this hook is stable, we can refactor to use it\n *\n * @param {boolean} isLoggedIn - Whether the user is logged in\n * @param {React.RefObject} containerRef - Reference to the chatbot container\n */\nconst useUpdateHeader = (isLoggedIn, containerRef) => {\n useEffect(() => {\n if (!containerRef.current) {\n return;\n }\n if (isLoggedIn) {\n containerRef.current.classList.add('bot-logged-in');\n } else {\n containerRef.current.classList.remove('bot-logged-in');\n }\n }, [isLoggedIn, containerRef]);\n};\n\nexport default useUpdateHeader;","import { useEffect } from 'react';\n\n/**\n * Custom hook to apply ring effect to the chatbot tooltip\n * This hook fires once when the bot is instantiated and applies the phone-ring class\n * to the .rcb-tooltip-show element if ringEffect is enabled\n * The react-chatbotify tooltip is set in config to only show on the first load\n * Once a user opens the chatbot, it won't show the tool tip when closed\n * (Unless you change the tooltip setting in the react-chatbotify settings object)\n *\n * @param {boolean} ringEffect - Whether to apply the ring effect\n * @param {React.RefObject} containerRef - Reference to the chatbot container\n */\nconst useRingEffect = (ringEffect, containerRef) => {\n useEffect(() => {\n if (!ringEffect || !containerRef.current) {\n return;\n }\n\n const timeoutId = setTimeout(() => {\n const tooltipElement = containerRef.current?.querySelector('.rcb-tooltip-show');\n if (tooltipElement) {\n tooltipElement.classList.add('phone-ring');\n }\n }, 500); // 500ms delay to make sure its rendered and gain user attention\n\n return () => {\n clearTimeout(timeoutId);\n };\n }, [ringEffect, containerRef]);\n};\n\nexport default useRingEffect;","import { useEffect } from 'react';\n\n/**\n * Hook to make the send button focusable and keyboard accessible\n */\nconst useFocusableSendButton = () => {\n useEffect(() => {\n const makeSendButtonAccessible = () => {\n const chatWindow = document.querySelector('.rcb-chat-window');\n if (!chatWindow) return;\n \n const sendButton = chatWindow.querySelector('.rcb-send-button');\n if (!sendButton) return;\n \n // Make send button focusable\n if (!sendButton.hasAttribute('tabindex')) {\n sendButton.setAttribute('tabindex', '0');\n }\n \n // Add keyboard support if not already added\n if (!sendButton.hasAttribute('data-keyboard-enabled')) {\n sendButton.setAttribute('data-keyboard-enabled', 'true');\n \n sendButton.addEventListener('keydown', (event) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n \n // Call the React onMouseDown handler directly\n const reactPropsKey = sendButton && Object.keys(sendButton).find(key => key.startsWith('__reactProps'));\n if (reactPropsKey) {\n const reactProps = sendButton[reactPropsKey];\n const onMouseDown = reactProps?.onMouseDown;\n if (onMouseDown && typeof onMouseDown === 'function') {\n onMouseDown(event);\n return;\n }\n }\n \n // Fallback to dispatching a mousedown event\n const mouseDownEvent = new MouseEvent('mousedown', {\n bubbles: true,\n cancelable: true,\n view: window\n });\n sendButton.dispatchEvent(mouseDownEvent);\n }\n });\n }\n };\n\n // Check periodically in case the send button is recreated\n const interval = setInterval(makeSendButtonAccessible, 1000);\n \n // Run immediately\n makeSendButtonAccessible();\n \n return () => clearInterval(interval);\n }, []);\n};\n\nexport default useFocusableSendButton;","import React from 'react';\nimport ReactDOM from 'react-dom/client';\nimport QABot from './components/QABot';\nimport './styles/index.css'; // QA Bot styles\n\n// Export for react\nexport { QABot };\n\n// React wrapper component for programmatic API\nconst ProgrammaticQABot = React.forwardRef((props, ref) => {\n const [botIsLoggedIn, setBotIsLoggedIn] = React.useState(props.isLoggedIn || false);\n const [chatOpen, setChatOpen] = React.useState(props.defaultOpen || false);\n const qaRef = React.useRef();\n\n // Expose controller methods via ref\n React.useImperativeHandle(ref, () => ({\n addMessage: (message) => {\n if (qaRef.current) {\n qaRef.current.addMessage(message);\n }\n },\n setBotIsLoggedIn: (status) => {\n setBotIsLoggedIn(status);\n },\n openChat: () => {\n if (!props.embedded && qaRef.current) {\n setChatOpen(true);\n }\n },\n closeChat: () => {\n if (!props.embedded && qaRef.current) {\n setChatOpen(false);\n }\n },\n toggleChat: () => {\n if (!props.embedded && qaRef.current) {\n setChatOpen(prev => !prev);\n }\n }\n }), [props.embedded]);\n\n return (\n <QABot\n ref={qaRef}\n apiKey={props.apiKey}\n embedded={props.embedded}\n isLoggedIn={botIsLoggedIn}\n open={props.embedded ? true : chatOpen}\n onOpenChange={props.embedded ? undefined : setChatOpen}\n loginUrl={props.loginUrl}\n ringEffect={props.ringEffect}\n welcome={props.welcome}\n userEmail={props.userEmail}\n userName={props.userName}\n accessId={props.accessId}\n />\n );\n});\n\nProgrammaticQABot.displayName = 'ProgrammaticQABot';\n\n// Export for JS API - now React-backed for all usage\nexport function qaBot(config) {\n if (!config.target || !(config.target instanceof HTMLElement)) {\n console.error('QA Bot: A valid target DOM element is required');\n return;\n }\n\n const root = ReactDOM.createRoot(config.target);\n const wrapperRef = { current: null };\n\n root.render(\n <React.StrictMode>\n <ProgrammaticQABot\n ref={(ref) => { wrapperRef.current = ref; }}\n apiKey={config.apiKey}\n defaultOpen={config.defaultOpen}\n embedded={config.embedded}\n isLoggedIn={config.isLoggedIn}\n loginUrl={config.loginUrl}\n ringEffect={config.ringEffect}\n welcome={config.welcome}\n userEmail={config.userEmail}\n userName={config.userName}\n accessId={config.accessId}\n />\n </React.StrictMode>\n );\n\n return {\n addMessage: (message) => wrapperRef.current?.addMessage(message),\n setBotIsLoggedIn: (status) => wrapperRef.current?.setBotIsLoggedIn(status),\n openChat: () => wrapperRef.current?.openChat(),\n closeChat: () => wrapperRef.current?.closeChat(),\n toggleChat: () => wrapperRef.current?.toggleChat(),\n destroy: () => {\n wrapperRef.current = null;\n root.unmount();\n }\n };\n}\nexport default qaBot;"],"names":["styleInject","css","ref","insertAt","document","head","getElementsByTagName","style","createElement","type","firstChild","insertBefore","appendChild","styleSheet","cssText","createTextNode","Z","AUDIO_BUTTON","NOTIFICATION_BUTTON","CLOSE_CHAT_BUTTON","SEND_MESSAGE_BUTTON","VOICE_MESSAGE_BUTTON","FILE_ATTACHMENT_BUTTON","EMOJI_PICKER_BUTTON","$A","Ae","iA","A","e","q","viewBox","d","fill","fillRule","ee","Le","forwardRef","Re","Fe","xmlns","strokeLinecap","strokeWidth","ze","Ye","We","te","Je","Ze","re","general","primaryColor","secondaryColor","fontFamily","showHeader","showFooter","showInputRow","actionDisabledIcon","embedded","flowStartTrigger","tooltip","mode","text","chatButton","icon","header","title","l","cursor","margin","fontSize","fontWeight","onClick","window","open","children","showAvatar","avatar","buttons","closeChatIcon","notification","disabled","defaultToggledOn","volume","iconDisabled","sound","showCount","audio","language","voiceNames","rate","chatHistory","maxEntries","storageKey","storageType","viewChatHistoryButtonText","chatHistoryLineBreakText","autoLoad","chatInput","allowNewline","enabledPlaceholderText","disabledPlaceholderText","showCharacterCount","characterLimit","botDelay","sendButtonIcon","blockSpam","sendOptionOutput","sendCheckboxOutput","chatWindow","showScrollbar","showTypingIndicator","autoJumpToBottom","showMessagePrompt","messagePromptText","messagePromptOffset","defaultOpen","sensitiveInput","maskInTextArea","maskInUserBubble","asterisksCount","hideInUserBubble","userBubble","animate","simulateStream","streamSpeed","botBubble","voice","timeoutPeriod","autoSendDisabled","autoSendPeriod","sendAsAudio","footer","X","jsxs","display","flexDirection","alignItems","columnGap","jsx","borderRadius","width","height","justifyContent","background","fileAttachment","multiple","accept","sendFileName","showMediaDisplay","emoji","list","toast","maxCount","forbidOnMax","dismissOnClick","event","rcbPreInjectMessage","rcbPostInjectMessage","rcbStartSimulateStreamMessage","rcbStopSimulateStreamMessage","rcbStartStreamMessage","rcbChunkStreamMessage","rcbStopStreamMessage","rcbRemoveMessage","rcbLoadChatHistory","rcbToggleChatWindow","rcbStartSpeakAudio","rcbToggleAudio","rcbToggleNotifications","rcbToggleVoice","rcbChangePath","rcbShowToast","rcbDismissToast","rcbUserSubmitText","rcbUserUploadFile","rcbTextAreaChangeValue","rcbPreLoadChatBot","rcbPostLoadChatBot","rcbPreProcessBlock","rcbPostProcessBlock","ariaLabel","audioButton","closeChatButton","emojiButton","fileAttachmentButton","notificationButton","sendButton","voiceButton","inputTextArea","device","desktopEnabled","mobileEnabled","applyMobileOptimizations","ae","vA","createContext","settings","setSettings","O","PA","$e","o","Provider","value","ce","tooltipStyle","notificationBadgeStyle","chatWindowStyle","headerStyle","bodyStyle","chatInputContainerStyle","chatInputAreaStyle","chatInputAreaFocusedStyle","chatInputAreaDisabledStyle","userBubbleStyle","botBubbleStyle","botOptionStyle","botOptionHoveredStyle","botCheckboxRowStyle","botCheckboxNextStyle","botCheckMarkStyle","botCheckMarkSelectedStyle","characterLimitStyle","characterLimitReachedStyle","chatHistoryLineBreakStyle","chatMessagePromptStyle","chatMessagePromptHoveredStyle","footerStyle","loadingSpinnerStyle","mediaDisplayContainerStyle","chatButtonStyle","chatHistoryButtonStyle","chatHistoryButtonHoveredStyle","sendButtonStyle","sendButtonHoveredStyle","sendButtonDisabledStyle","audioButtonStyle","audioButtonDisabledStyle","closeChatButtonStyle","emojiButtonStyle","emojiButtonDisabledStyle","fileAttachmentButtonStyle","fileAttachmentButtonDisabledStyle","notificationButtonStyle","notificationButtonDisabledStyle","voiceButtonStyle","voiceButtonDisabledStyle","chatIconStyle","audioIconStyle","audioIconDisabledStyle","closeChatIconStyle","emojiIconStyle","emojiIconDisabledStyle","fileAttachmentIconStyle","fileAttachmentIconDisabledStyle","notificationIconStyle","notificationIconDisabledStyle","voiceIconStyle","voiceIconDisabledStyle","sendIconStyle","sendIconDisabledStyle","sendIconHoveredStyle","rcbTypingIndicatorContainerStyle","rcbTypingIndicatorDotStyle","toastPromptContainerStyle","toastPromptStyle","toastPromptHoveredStyle","ie","styles","setStyles","Y","At","et","n","s","a","r","c","t","backgroundImage","className","map","i","u","UA","Fragment","le","$","tt","botIdRef","flowRef","AA","Map","useRef","f","w","inputRef","timeoutIdRef","streamMessageMap","chatBodyRef","paramsInputRef","keepVoiceOnRef","audioContextRef","audioBufferRef","gainNodeRef","prevInputRef","aA","F","current","ue","eA","ot","oA","rA","qA","JA","VA","ZA","g","B","P","b","y","useState","D","p","C","v","E","T","Q","S","h","m","I","M","k","j","N","W","J","z","U","K","R","L","G","visualViewport","innerHeight","tA","_","innerWidth","isBotTyping","setSyncedIsBotTyping","syncedIsBotTypingRef","isChatWindowOpen","setSyncedIsChatWindowOpen","syncedIsChatWindowOpenRef","audioToggledOn","setSyncedAudioToggledOn","syncedAudioToggledOnRef","voiceToggledOn","setSyncedVoiceToggledOn","syncedVoiceToggledOnRef","notificationsToggledOn","setSyncedNotificationsToggledOn","syncedNotificationsToggledOnRef","isLoadingChatHistory","setIsLoadingChatHistory","hasChatHistoryLoaded","setHasChatHistoryLoaded","isScrolling","setSyncedIsScrolling","syncedIsScrollingRef","textAreaDisabled","setSyncedTextAreaDisabled","syncedTextAreaDisabledRef","textAreaSensitiveMode","setSyncedTextAreaSensitiveMode","syncedTextAreaSensitiveModeRef","hasInteractedPage","setHasInteractedPage","hasFlowStarted","setHasFlowStarted","unreadCount","setUnreadCount","inputLength","setInputLength","blockAllowsAttachment","setBlockAllowsAttachment","viewportHeight","setViewportHeight","viewportWidth","setViewportWidth","H","START_SPEAK_AUDIO","TOGGLE_AUDIO","TOGGLE_NOTIFICATIONS","TOGGLE_VOICE","TOGGLE_CHAT_WINDOW","PRE_INJECT_MESSAGE","POST_INJECT_MESSAGE","START_SIMULATE_STREAM_MESSAGE","STOP_SIMULATE_STREAM_MESSAGE","START_STREAM_MESSAGE","CHUNK_STREAM_MESSAGE","STOP_STREAM_MESSAGE","REMOVE_MESSAGE","LOAD_CHAT_HISTORY","CHANGE_PATH","SHOW_TOAST","DISMISS_TOAST","USER_SUBMIT_TEXT","USER_UPLOAD_FILE","TEXT_AREA_CHANGE_VALUE","PRE_LOAD_CHATBOT","POST_LOAD_CHATBOT","PRE_PROCESS_BLOCK","POST_PROCESS_BLOCK","nt","NA","async","CustomEvent","detail","cancelable","data","promises","dispatchEvent","Promise","all","fe","paths","setSyncedPaths","syncedPathsRef","mA","st","lA","x","length","at","useCallback","dispatchRcbEvent","botId","currPath","prevPath","sA","getBoundingClientRect","documentElement","clientHeight","clientWidth","top","left","bottom","right","currState","newState","defaultPrevented","scrollHeight","scrollTop","requestAnimationFrame","toggleChatWindow","toggleIsBotTyping","scrollToBottom","getIsChatBotVisible","rt","color","borderColor","onMouseEnter","onMouseLeave","onMouseDown","preventDefault","de","messages","setSyncedMessages","syncedMessagesRef","FA","ct","message","isNewSender","content","contentWrapper","backgroundColor","maxWidth","nA","it","lt","ut","scrollbarWidth","V","sender","toUpperCase","ft","checkboxes","checkedItems","path","handleSubmitText","yA","Set","size","min","reusable","items","has","delete","max","add","Array","from","join","sendOutput","dt","isArray","injectMessage","wt","function","gt","trim","simulateStreamMessage","Bt","options","vt","ht","component","Dt","transition","duration","interruptable","setTimeout","ge","Et","chatDisabled","we","isSensitive","Error","Object","keys","includes","goToPath","Pt","Ct","mt","borderTop","SA","crypto","randomUUID","getRandomValues","replace","Uint8Array","toString","console","error","gA","id","timestamp","Date","toUTCString","tags","wA","Be","IA","bA","ve","CA","HA","unshift","St","slice","Pe","jA","bt","setItem","JSON","stringify","RA","sessionStorage","localStorage","parse","Qt","getItem","se","structuredClone","Te","renderToString","he","DOMParser","parseFromString","body","childNodes","nodeType","Node","TEXT_NODE","textContent","tagName","toLowerCase","attributes","reduce","name","split","filter","forEach","prototype","hasOwnProperty","call","classList","class","Tt","Mt","kt","Ht","xt","_A","key","innerHTML","contains","zA","AudioContext","createGain","gain","startsWith","atob","ArrayBuffer","charCodeAt","fetch","arrayBuffer","decodeAudioData","createBufferSource","buffer","connect","destination","start","toggleNotifications","playNotificationSound","setUpNotifications","Lt","SpeechSynthesisUtterance","info","lang","speechSynthesis","getVoices","find","speak","Ot","GA","textToRead","speakAudio","toggleAudio","hA","simulateStreamChunker","setInterval","clearInterval","Math","set","get","removeMessage","streamMessage","endStreamMessage","replaceMessages","xA","uA","pA","BA","cA","YA","SpeechRecognition","webkitSpeechRecognition","Rt","onresult","clearTimeout","results","transcript","OA","onend","Ut","navigator","mediaDevices","getUserMedia","then","MediaRecorder","ondataavailable","push","onstop","getTracks","stop","catch","XA","state","TA","Ft","toggleVoice","syncVoice","DA","currValue","prevValue","focus","blur","getTextAreaValue","setTextAreaValue","updateTextAreaFocus","focusTextArea","blurTextArea","toggleTextAreaDisabled","toggleTextAreaSensitiveMode","De","toasts","setSyncedToasts","syncedToastsRef","Ee","jt","EA","timeout","showToast","dismissToast","replaceToasts","QA","block","userInput","yt","file","clear","nextPath","getCurrPath","getPrevPath","replacePaths","firePostProcessBlockEvent","repeat","inputText","sendInChat","MA","dA","useMemo","userAgent","test","zt","boxSizing","outline","boxShadow","caretColor","shiftKey","target","role","stopPropagation","placeholder","onChange","onKeyDown","onFocus","onBlur","onCompositionStart","onCompositionEnd","rows","Gt","Yt","Xt","offsetWidth","transform","Wt","useEffect","Kt","minWidth","ye","fileType","fileUrl","src","alt","controls","Ce","FileReader","onload","result","onerror","readAsDataURL","qt","files","Jt","composedPath","offsetHeight","addEventListener","removeEventListener","setSelectionRange","Vt","Zt","stroke","$t","_t","Ao","Nt","Blob","File","eo","oo","values","to","uo","headerButtons","chatInputButtons","footerButtons","WA","removeItem","It","showChatHistory","fo","tabIndex","wo","handleFirstInteraction","me","passive","virtualKeyboard","overlaysContent","boundingRect","scrollTo","behavior","scrollY","position","go","Bo","Qe","oe","version","baseUrl","cacheDuration","ok","json","ho","inlineStyles","cssStylesText","getTime","floor","cacheDate","vo","ne","Po","RegExp","yo","kA","fA","source","pop","isValidElement","WeakMap","be","replaceSettings","updateSettings","pe","replaceStyles","updateStyles","mo","plugins","Co","zIndex","Se","Ie","Qo","loadConfig","bo","flow","themes","setConfigLoaded","styleRootRef","LA","po","show_options","prompt_again","unknown_input","process_options","Oo","Io","getBotId","So","Uo","restartFlow","getFlow","To","Fo","jo","Go","qo","getHistoryMessages","setHistoryMessages","self","address","invalid","br","void","button","caption","parent","col","colgroup","details","dd","dl","figcaption","hr","img","li","main","ol","picture","rb","rp","rtc","ruby","summary","table","tbody","td","tfoot","th","thead","tr","track","ul","video","wbr","freeze","cite","colspan","datetime","default","dir","href","kind","label","loading","loop","media","muted","poster","rel","rowspan","scope","sizes","span","srclang","srcset","tabindex","assign","arguments","apply","this","selfClose","attribute","node","__esModule","exec","index","substring","defineProperty","enumerable","configurable","writable","String","match","implementation","createHTMLDocument","constructor","process","env","NODE_ENV","TypeError","props","matchers","filters","keyIndex","container","createContainer","allowed","allowList","banned","blocked","blockList","applyAttributeFilters","applyNodeFilters","applyMatchers","asTag","getTagConfig","inverseName","isTagAllowed","canRenderChild","valid","propName","matcher","greedy","replaceTokens","convertLineBreaks","noHtml","disableLineBreaks","global","INTERWEAVE_SSR_POLYFILL","containerTagName","escapeHtml","extractAttributes","allowAttributes","isSafe","extractStyleAttribute","Number","parseFloat","HTMLAnchorElement","getAttribute","protocol","allowElements","parseNode","nodeName","noHtmlExceptMatchers","transformOnlyAllowList","cloneElement","emptyContent","parsedContent","noWrap","disableFilters","disableMatchers","onAfterParse","onBeforeParse","bind","autoConfig","renderHtml","Ne","htmlComponent","Er","Ir","Ar","Hn","Tr","Un","property","normal","space","hn","boolean","booleanish","overloadedBoolean","number","commaSeparated","spaceSeparated","commaOrSpaceSeparated","mustUseProperty","defined","zr","mn","__proto__","Symbol","toStringTag","Sn","super","Vn","Lr","properties","xLinkActuate","xLinkArcRole","xLinkHref","xLinkRole","xLinkShow","xLinkTitle","xLinkType","xmlLang","xmlBase","xmlSpace","xmlnsxlink","xmlnsXLink","ariaActiveDescendant","ariaAtomic","ariaAutoComplete","ariaBusy","ariaChecked","ariaColCount","ariaColIndex","ariaColSpan","ariaControls","ariaCurrent","ariaDescribedBy","ariaDetails","ariaDisabled","ariaDropEffect","ariaErrorMessage","ariaExpanded","ariaFlowTo","ariaGrabbed","ariaHasPopup","ariaHidden","ariaInvalid","ariaKeyShortcuts","ariaLabelledBy","ariaLevel","ariaLive","ariaModal","ariaMultiLine","ariaMultiSelectable","ariaOrientation","ariaOwns","ariaPlaceholder","ariaPosInSet","ariaPressed","ariaReadOnly","ariaRelevant","ariaRequired","ariaRoleDescription","ariaRowCount","ariaRowIndex","ariaRowSpan","ariaSelected","ariaSetSize","ariaSort","ariaValueMax","ariaValueMin","ariaValueNow","ariaValueText","vr","acceptcharset","classname","htmlfor","httpequiv","abbr","acceptCharset","accessKey","action","allow","allowFullScreen","allowPaymentRequest","allowUserMedia","as","autoCapitalize","autoComplete","autoFocus","autoPlay","blocking","capture","charSet","checked","cols","colSpan","contentEditable","controlsList","coords","crossOrigin","dateTime","decoding","defer","dirName","download","draggable","encType","enterKeyHint","fetchPriority","form","formAction","formEncType","formMethod","formNoValidate","formTarget","headers","hidden","high","hrefLang","htmlFor","httpEquiv","imageSizes","imageSrcSet","inert","inputMode","integrity","is","isMap","itemId","itemProp","itemRef","itemScope","itemType","low","manifest","maxLength","method","minLength","nonce","noModule","noValidate","onAbort","onAfterPrint","onAuxClick","onBeforeMatch","onBeforePrint","onBeforeToggle","onBeforeUnload","onCancel","onCanPlay","onCanPlayThrough","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragExit","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFormData","onHashChange","onInput","onInvalid","onKeyPress","onKeyUp","onLanguageChange","onLoad","onLoadedData","onLoadedMetadata","onLoadEnd","onLoadStart","onMessage","onMessageError","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onOffline","onOnline","onPageHide","onPageShow","onPaste","onPause","onPlay","onPlaying","onPopState","onProgress","onRateChange","onRejectionHandled","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onStorage","onSubmit","onSuspend","onTimeUpdate","onToggle","onUnhandledRejection","onUnload","onVolumeChange","onWaiting","onWheel","optimum","pattern","ping","playsInline","popover","popoverTarget","popoverTargetAction","preload","readOnly","referrerPolicy","required","reversed","rowSpan","sandbox","scoped","seamless","selected","shadowRootClonable","shadowRootDelegatesFocus","shadowRootMode","shape","slot","spellCheck","srcDoc","srcLang","srcSet","step","translate","typeMustMatch","useMap","wrap","writingSuggestions","align","aLink","archive","axis","bgColor","border","bottomMargin","cellPadding","cellSpacing","char","charOff","classId","code","codeBase","codeType","compact","declare","face","frame","frameBorder","hSpace","leftMargin","link","longDesc","lowSrc","marginHeight","marginWidth","noResize","noHref","noShade","object","profile","prompt","rev","rightMargin","rules","scheme","scrolling","standby","topMargin","valueType","vAlign","vLink","vSpace","allowTransparency","autoCorrect","autoSave","disablePictureInPicture","disableRemotePlayback","prefix","security","unselectable","Dr","accentHeight","alignmentBaseline","arabicForm","baselineShift","capHeight","clipPath","clipRule","colorInterpolation","colorInterpolationFilters","colorProfile","colorRendering","dataType","dominantBaseline","enableBackground","fillOpacity","floodColor","floodOpacity","fontSizeAdjust","fontStretch","fontStyle","fontVariant","glyphName","glyphOrientationHorizontal","glyphOrientationVertical","horizAdvX","horizOriginX","horizOriginY","imageRendering","letterSpacing","lightingColor","markerEnd","markerMid","markerStart","navDown","navDownLeft","navDownRight","navLeft","navNext","navPrev","navRight","navUp","navUpLeft","navUpRight","onActivate","onBegin","onEnd","onFocusIn","onFocusOut","onMouseWheel","onRepeat","onShow","onZoom","overlinePosition","overlineThickness","paintOrder","panose1","pointerEvents","renderingIntent","shapeRendering","stopColor","stopOpacity","strikethroughPosition","strikethroughThickness","strokeDashArray","strokeDashOffset","strokeLineCap","strokeLineJoin","strokeMiterLimit","strokeOpacity","textAnchor","textDecoration","textRendering","transformOrigin","typeOf","underlinePosition","underlineThickness","unicodeBidi","unicodeRange","unitsPerEm","vAlphabetic","vHanging","vIdeographic","vMathematical","vectorEffect","vertAdvY","vertOriginX","vertOriginY","wordSpacing","writingMode","xHeight","playbackOrder","timelineBegin","about","accumulate","additive","alphabetic","amplitude","ascent","attributeName","attributeType","azimuth","bandwidth","baseFrequency","baseProfile","bbox","begin","bias","by","calcMode","clip","clipPathUnits","contentScriptType","contentStyleType","cx","cy","defaultAction","descent","diffuseConstant","direction","dur","divisor","dx","dy","edgeMode","editable","elevation","end","exponent","externalResourcesRequired","filterRes","filterUnits","focusable","focusHighlight","format","fr","fx","fy","g1","g2","glyphRef","gradientTransform","gradientUnits","handler","hanging","hatchContentUnits","hatchUnits","ideographic","initialVisibility","in","in2","intercept","k1","k2","k3","k4","kernelMatrix","kernelUnitLength","keyPoints","keySplines","keyTimes","kerning","lengthAdjust","limitingConeAngle","local","markerHeight","markerUnits","markerWidth","mask","maskContentUnits","maskUnits","mathematical","mediaCharacterEncoding","mediaContentEncodings","mediaSize","mediaTime","numOctaves","observer","offset","opacity","operator","order","orient","orientation","origin","overflow","overlay","pathLength","patternContentUnits","patternTransform","patternUnits","phase","pitch","points","pointsAtX","pointsAtY","pointsAtZ","preserveAlpha","preserveAspectRatio","primitiveUnits","propagate","radius","refX","refY","repeatCount","repeatDur","requiredExtensions","requiredFeatures","requiredFonts","requiredFormats","resource","restart","rotate","rx","ry","scale","seed","side","slope","snapshotTime","specularConstant","specularExponent","spreadMethod","spacing","startOffset","stdDeviation","stemh","stemv","stitchTiles","string","surfaceScale","syncBehavior","syncBehaviorDefault","syncMaster","syncTolerance","syncToleranceDefault","systemLanguage","tableValues","targetX","targetY","textLength","transformBehavior","u1","u2","unicode","viewTarget","visibility","widths","x1","x2","xChannelSelector","y1","y2","yChannelSelector","zoomAndPan","Or","qn","Rr","Nr","Mr","charAt","_r","Br","Cn","en","$n","Wn","Vr","__importDefault","lastIndexOf","line","column","reason","filename","silent","comment","Hr","Ur","Yn","qr","En","Qn","dn","Xn","place","ancestors","cause","ruleId","indexOf","fatal","stack","actual","expected","note","url","In","Wr","Yr","Qr","Xr","Kr","Gr","filePath","development","jsxDEV","columnNumber","fileName","lineNumber","ii","components","create","elementAttributeNameCase","evaluater","createEvaluater","ignoreInvalidStyle","passKeys","passNode","schema","stylePropertyNameCase","tableCellAlignToStyle","ui","oi","Tn","Pr","An","Jr","estree","evaluateExpression","expression","_e","Zr","argument","ai","ni","evaluateProgram","ei","ti","ri","Fr","isNaN","padRight","padLeft","Cr","jr","fi","si","pi","ci","computed","optional","hi","nn","mi","gi","Kn","Gn","Pn","splice","Jn","yi","xi","ki","parseInt","fromCodePoint","bi","gn","yn","wi","Si","Ci","Ei","fromCharCode","encodeURIComponent","POSITIVE_INFINITY","enter","consume","exit","Ii","tokenize","attempt","parser","constructs","contentInitial","contentType","previous","next","Ti","containerState","continuation","_closeFlow","events","currentConstruct","concrete","interrupt","_gfmTableDynamicInterruptHack","check","Zn","lazy","now","_tokenizer","sliceStream","defineSkip","write","disable","null","zn","resolveAll","xn","_close","_open","sliceSerialize","insideSpan","attentionMarkers","_bufferIndex","Di","Ke","partial","_container","tn","Ui","$i","resolve","Xi","RangeError","shift","setCursor","reverse","concat","trunc","Oe","pushMany","unshiftMany","_isInFirstContentOfListItem","Ki","_gfmTasklistFirstContentOfListItem","Gi","Ji","tl","rl","pl","fl","resolveTo","xe","hl","ml","kl","Ln","_inactive","_balanced","wl","Sl","Cl","Ll","Dl","rn","furtherBlankLines","initialBlankLine","Ml","marker","Nl","$l","flowInitial","Yl","Ql","Xl","Kl","_index","Gl","Jl","Zl","no","ro","ao","so","restore","transforms","canContainEols","autolink","Bn","autolinkProtocol","autolinkEmail","atxHeading","Nn","blockQuote","characterEscape","characterReference","codeFenced","He","codeFencedFenceInfo","codeFencedFenceMeta","codeIndented","codeText","ar","codeTextData","codeFlowValue","definition","ur","definitionDestinationString","definitionLabelString","definitionTitleString","emphasis","sr","hardBreakEscape","Mn","hardBreakTrailing","htmlFlow","_n","htmlFlowData","htmlText","htmlTextData","image","cr","listItem","pr","listItemValue","listOrdered","jn","listUnordered","paragraph","reference","referenceString","resourceDestinationString","resourceTitleString","setextHeading","strong","thematicBreak","dr","atxHeadingSequence","characterEscapeValue","characterReferenceMarkerHexadecimal","characterReferenceMarkerNumeric","characterReferenceValue","codeFencedFence","labelText","lineEnding","setextHeadingLineSequence","setextHeadingText","mdastExtensions","tokenStack","config","resume","ke","_spread","includeImageAlt","includeHtml","di","expectingFirstListItemValue","meta","flowCodeInside","identifier","depth","setextHeadingSlurpLineEnding","codePointAt","mr","atHardBreak","inReference","referenceType","characterReferenceType","ordered","spread","xo","extensions","co","TextDecoder","decode","lastIndex","ceil","ko","Vo","Wo","blockquote","patch","applyData","break","footnoteReference","clobberPrefix","footnoteOrder","footnoteCounts","dataFootnoteRef","heading","html","allowDangerousHtml","imageReference","definitionById","inlineCode","linkReference","root","tableCell","tableRow","toml","qe","yaml","footnoteDefinition","pt","globalThis","flags","BigInt","DataView","Yo","Xo","lossy","valueOf","toJSON","toISOString","Ko","Xe","Jo","rr","ra","ea","na","ta","ia","ir","la","oa","aa","ua","lr","kn","sa","ca","handlers","one","fa","footnoteById","passThrough","unknownHandler","ha","pa","ma","$r","hName","hChildren","hProperties","footnoteBackContent","footnoteBackLabel","footnoteLabel","footnoteLabelTagName","footnoteLabelProperties","dataFootnoteBackref","dataFootnotes","Zo","da","run","ln","ya","getOwnPropertyDescriptor","newValue","ga","on","bn","getPrototypeOf","iterator","xa","ka","use","basename","je","dirname","extname","Ia","Ea","sep","Aa","cwd","wn","auth","Pa","URL","hostname","pathname","decodeURIComponent","za","an","or","history","stored","sn","un","stem","fail","va","setPrototypeOf","Da","Fn","Compiler","Parser","attachers","compiler","freezeIndex","frozen","namespace","transformers","copy","fn","cn","pn","Na","processSync","runSync","Oa","Ra","_a","Ba","ja","allowedElements","allowElement","disallowedElements","rehypePlugins","remarkPlugins","remarkRehypeOptions","skipHtml","unwrapDisallowed","urlTransform","Ha","hasOwn","Sr","wr","Ua","whiteSpace","marginBottom","lineHeight","textAlign","paddingLeft","listStylePosition","inline","padding","overflowX","borderLeft","Va","Xa","yr","xr","kr","markdownComponent","gr","renderMarkdown","qa","Ue","Ve","$a","promptBaseColors","warning","success","promptHoveredColors","textAreaHighlightColors","promptContent","promptType","advancedStyles","highlightTextArea","promptDuration","log","byteToHex","rnds8","native","v4","buf","rnds","random","rng","arr","unsafeStringify","DEFAULT_CONFIG","LOGIN_URL","WELCOME_MESSAGE","WELCOME_MESSAGE_LOGGED_OUT","WELCOME_MESSAGE_LOGIN_TRANSITION","WELCOME_MESSAGE_LOGOUT_TRANSITION","API_ENDPOINT","netlifyBaseUrl","REACT_APP_NETLIFY_BASE_URL","ERRORS","API_UNAVAILABLE","BEHAVIOR","SHOW_RATING_AFTER_FAILED_QUERY","THEME","PRIMARY_COLOR","SECONDARY_COLOR","FONT_FAMILY","CHATBOT","TITLE","AVATAR_URL","TOOLTIP_TEXT","buildWelcomeMessage","isLoggedIn","welcomeMessage","BotController","React","isBotLoggedIn","currentOpen","useMessages","useChatWindow","lastOpenRef","fromEventRef","prevLoginStateRef","loginStateChanged","justLoggedIn","useLoginStateTransition","markAsUserInteraction","_markAsUserInteraction","useImperativeHandle","addMessage","displayName","FormContext","FormProvider","ticketForm","setTicketForm","feedbackForm","setFeedbackForm","updateTicketForm","updates","prevForm","updateFeedbackForm","resetTicketForm","resetFeedbackForm","useFormContext","context","useContext","BaseIcon","_extends","strokeLinejoin","RefreshIcon","NewChatButton","useFlow","handleNewChat","gap","UserIcon","marginRight","LoginButton","loginUrl","isHeaderButton","finalStyle","useHandleAIQuery","apiKey","sessionId","setCurrentQueryId","getLastUserQueryId","historyString","latestUserMessage","latestTimestamp","messageTime","warn","params","actualQueryId","requestOptions","query","response","useKeyboardNavigation","handleKeyboardNavigation","activeElement","querySelector","allMessages","querySelectorAll","el","offsetParent","checkboxContainer","nextButton","allElements","handleCheckboxNavigation","elements","currentIndex","newIndex","currentElement","mouseDownEvent","MouseEvent","bubbles","view","setAttribute","element","remove","lastMessage","optionsContainers","lastContainer","findIndex","option","nextIndex","opt","prevIndex","closest","labelElement","selectedText","checkboxMark","isChecked","announceToScreenReader","innerText","announcement","removeChild","handleNewOptions","checkboxElements","hint","hintElement","MutationObserver","mutations","mutation","addedNodes","hasNewOptions","some","ELEMENT_NODE","hasNewCheckboxes","observe","childList","subtree","periodicCheck","hasVisibleOptions","hasVisibleCheckboxes","lastProcessedOptions","lastProcessedCheckboxes","disconnect","createQAFlow","fetchAndStreamResponse","currentQueryId","go_ahead_and_ask","qa_loop","chatState","handleBotError","REACT_APP_API_KEY","isPositive","qa_positive_feedback","qa_negative_feedback","qa_continue","UploadIcon","FileUploadComponent","onFileUpload","dragActive","setDragActive","selectedFiles","setSelectedFiles","previewFile","setPreviewFile","fileInputRef","captureScreenshot","isCapturing","useScreenshotCapture","setIsCapturing","stream","getDisplayMedia","displaySurface","logicalSurface","ideal","srcObject","onloadedmetadata","play","canvas","videoWidth","videoHeight","getContext","drawImage","blob","toBlob","handleFiles","newFileArray","updatedFiles","fileCount","fileNames","chatContent","handleDrag","handleButtonClick","click","closePreview","handleScreenshotCapture","dataTransfer","flexWrap","marginTop","alignSelf","handleFilePreview","indexToRemove","newFiles","idx","handleRemoveFile","userSelect","toFixed","renderFilePreview","isImage","isText","isPDF","maxHeight","createObjectURL","wordWrap","prepareApiSubmission","formData","ticketType","uploadedFiles","REQUEST_TYPE_IDS","requestTypeIds","support","general_help","feedback","loginAccess","loginProvider","submissionData","serviceDeskId","requestTypeId","requestFieldValues","processedFiles","reject","reader","base64String","fileData","attachments","sendPreparedDataToProxy","endpointName","serverBaseUrl","proxyEndpoint","errorText","status","createFileUploadComponent","createSubmissionHandler","submissionResult","submitTicket","apiData","proxyResponse","ticketKey","ticketUrl","submissionError","getSubmissionResult","generateSuccessMessage","getFileInfo","currentFormContext","getCurrentTicketForm","getCurrentFormWithUserInfo","userInfo","currentForm","safeUserInfo","email","accessId","createOptionalFieldValidator","inputField","inputEvent","Event","processOptionalInput","validateEmail","trimmedEmail","isValidEmail","createTicketFlow","accessLoginFlow","createAccessLoginFlow","access_help","access_login_description","updatedForm","description","access_login_identity","identityProvider","access_login_browser","browser","access_login_attachment","wantsAttachment","formWithUserInfo","access_login_upload","uploadConfirmed","access_login_email","validateTextInput","access_login_name","access_login_accessid","access_login_summary","fileInfo","finalAccessId","access_login_success","affiliatedLoginFlow","createAffiliatedLoginFlow","affiliated_help","affiliated_login_resource","affiliated_login_userid","userIdResource","affiliated_login_description","affiliated_login_attachment","affiliated_login_upload","affiliated_login_email","affiliated_login_name","affiliated_login_accessid","affiliated_login_summary","accessResource","userIdAtResource","affiliated_login_success","generalHelpFlow","createGeneralHelpFlow","general_help_summary_subject","general_help_category","category","general_help_description","general_help_attachment","general_help_upload","general_help_resource","involvesResource","general_help_resource_details","resourceDetails","general_help_user_id_at_resource","general_help_keywords","keywords","general_help_additional_keywords","currentKeywords","additionalKeywords","keywordsArray","filteredKeywords","formattedKeywords","suggestedKeyword","general_help_priority","priority","general_help_email","general_help_name","general_help_accessid","general_help_ticket_summary","resourceInfo","issueType","hasResourceProblem","resourceName","noRelevantKeyword","general_help_success","help_ticket","createSecurityFlow","mostRecentAccessId","security_incident","security_priority","security_description","security_attachment","security_upload","security_contact_info","security_name","security_email","security_accessid","finalInput","security_summary","finalForm","accessIdDisplay","submitSecurityIncident","security_success","createBotFlow","handleQuery","hasQueryError","formContext","setCurrentFormContext","mainMenuFlow","createMainMenuFlow","welcome","getOrCreateSessionId","newSessionId","uuidv4","QABotInternal","botRef","onOpenChange","ringEffect","userEmail","userName","finalApiKey","setIsBotLoggedIn","undefined","handleChatWindowToggle","newOpenState","containerRef","themeColors","useThemeColors","defaultColors","getCSSVariable","fallback","containerValue","getComputedStyle","getPropertyValue","parentElement","parentValue","chatBotSettings","useChatBotSettings","tooltipMode","Button","sendButtonAriaLabel","dangerouslySetInnerHTML","useUpdateHeader","useRingEffect","timeoutId","tooltipElement","makeSendButtonAccessible","hasAttribute","reactPropsKey","reactProps","interval","handleToggle","ChatBotProvider","ChatBot","MarkdownRenderer","QABot","ProgrammaticQABot","botIsLoggedIn","setBotIsLoggedIn","chatOpen","setChatOpen","qaRef","openChat","closeChat","toggleChat","prev","qaBot","HTMLElement","ReactDOM","createRoot","wrapperRef","render","StrictMode","_wrapperRef$current","_wrapperRef$current2","_wrapperRef$current3","_wrapperRef$current4","_wrapperRef$current5","destroy","unmount"],"mappings":"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D,UAC3B,sBACA,yBAENwqD,oBAAqB,CACnBt5D,QAAS,2BACT6C,UAhEsB8xD,GAA0BvM,EAAeD,GAiE/DzlD,QAAS,CAAC,YACVW,cAAc,EACdhB,SAAUA,KACR,MAAMszD,EAAcH,KACpBpN,EAAc,IAAIuN,EAAa2B,iBAAiB,GAAM,EAExDr2D,KAAM,yBAERs4D,sBAAuB,CACrBv5D,QAAS,gDACT0C,QAAS,CAAC,MAAO,MACjBW,cAAc,EACdhB,SAAW0sD,IACT,MAAM4G,EAAcH,KACpBpN,EAAc,IAAIuN,EAAa6D,iBAAkBzK,EAAUjgD,UAAU1H,eAAe,EAEtFnG,KAAO8tD,GAAsC,QAAxBA,EAAUjgD,UAC3B,gCACA,yBAEN2qD,8BAA+B,CAC7Bz5D,QAAS,8DACT0C,QAAS,CACP,OACA,QACA,YACA,SACA,QACA,UACA,UACA,UACA,SACA,UACA,aACA,QACA,SACA,YACA,SACA,oBACA,uBACA,QACA,aAEFW,cAAc,EACdhB,SAAW0sD,IACT,MAAM4G,EAAcH,KACpBpN,EAAc,IAAIuN,EAAa+D,gBAAiB3K,EAAUjgD,WAAW,EAEvE7N,KAAM,oCAGR04D,iCAAkC,CAChC35D,QAAS,qFACTw3D,kBAAmBzB,KACnB1zD,SAAW0sD,IACT,MAAM4G,EAAcH,KACpBpN,EAAc,IAAIuN,EAAakD,iBAAkB1C,GAAqBpH,EAAUjgD,YAAY,EAE9F7N,KAAM,yBAER24D,sBAAuB,CACrB55D,QAAS,yDACTe,WAAY,CACVS,MAAO,CACL,UACA,SACA,SACA,iBACA,iBACA,WACA,OACA,eACA,eACA,kBACA,KACA,aACA,uBACA,wBACA,sBACA,kBACA,mBACA,QACA,OACA,WACA,WACA,MACA,qBACA,SACA,eACA,YACA,eACA,QACA,iBACA,MACA,QACA,SACA,OACA,aACA,eACA,WACA,iBACA,UACA,OACA,MACA,UACA,SACA,aACA,UACA,WACA,QACA,kBACA,YACA,gBACA,qBACA,kBACA,OACA,qBACA,YACA,qBACA,2BACA,SACA,QACA,QACA,aACA,YACA,aACA,OACA,mBACA,YACA,OACA,gBACA,UACA,OACA,eACA,wBACA,gBACA,kBACA,iBACA,kBACA,2BACA,kBACA,uBACA,iBACA,eACA,eACA,gBACA,iBACA,kBACA,YACA,uCACA,gBACA,eACA,aACA,MACA,wBACA,MACA,SACA,gBACA,MACA,MACA,YACA,QACA,aACA,sBACA,SACA,YACA,QACA,2BACA,iBACA,eACA,cACA,eACA,gBACA,0BACA,WACA,UACA,uBACA,SACA,WACA,OACA,WACA,MACA,WACA,MACA,MACA,SACA,OACA,MACA,sBACA,aACA,UACA,SACA,WACA,mBACA,aACA,mBACA,eACA,WACA,SACA,OACA,SACA,YACA,iBACA,YACA,eACA,cACA,aACA,iBACA,QACA,aACA,iBACA,aACA,QACA,SACA,gBACA,UACA,qBACA,QACA,OACA,QACA,MACA,SACA,mBACA,aACA,oBACA,cACA,SACA,SACA,WACA,UACA,qBACA,cACA,MACA,OACA,SACA,aACA,kBACA,MACA,MACA,YACA,SACA,eACA,WACA,oBACA,uBACA,SACA,WACA,SACA,UACA,YACA,YACA,eACA,KACA,MACA,kBACA,mBACA,WACA,mBACA,WACA,MACA,UACA,eACA,qBACA,cACA,aACA,MACA,SACA,UACA,cACA,yCACA,2BACA,UACA,YACA,cACA,wBACA,6BACA,qBACA,kBACA,eACA,WACA,uBACA,QACA,SACA,UACA,oBACA,oBACA,QACA,IACA,MACA,QACA,YACA,wBACA,kBACA,YACA,iBACA,KACA,QACA,MACA,UACA,aACA,aACA,cACA,mBACA,eACA,UACA,SACA,YACA,MACA,4BACA,2BACA,iBACA,QACA,OACA,MACA,kBACA,UACA,cACA,QACA,MACA,eACA,yBACA,qBACA,QACA,QACA,iBACA,OACA,MACA,MACA,YACA,QACA,UACA,aACA,UACA,MACA,6BACA,aACA,2CACA,UACA,eACA,OACA,QACA,WACA,eACA,UACA,SACA,mBACA,YACA,gBACA,kBACA,MACA,MACA,MACA,WACA,wBACA,MACA,OACA,QA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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}