@smileid/web-components 11.4.2 → 11.4.3
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.
- package/dist/esm/{DocumentCaptureScreens-zEVFc_Kr.js → DocumentCaptureScreens-D1oMAv4n.js} +4 -4
- package/dist/esm/{DocumentCaptureScreens-zEVFc_Kr.js.map → DocumentCaptureScreens-D1oMAv4n.js.map} +1 -1
- package/dist/esm/{EndUserConsent-BXvS7t8z.js → EndUserConsent-D26UoVk5.js} +3 -3
- package/dist/esm/{EndUserConsent-BXvS7t8z.js.map → EndUserConsent-D26UoVk5.js.map} +1 -1
- package/dist/esm/{Navigation-BRFmg7s1.js → Navigation-nvehze1F.js} +2 -2
- package/dist/esm/{Navigation-BRFmg7s1.js.map → Navigation-nvehze1F.js.map} +1 -1
- package/dist/esm/{SelfieCaptureScreens-DsFp21uW.js → SelfieCaptureScreens-CC-y0CpT.js} +1140 -1110
- package/dist/esm/SelfieCaptureScreens-CC-y0CpT.js.map +1 -0
- package/dist/esm/{TotpConsent-Cn2DkVza.js → TotpConsent-owUOdKzP.js} +2 -2
- package/dist/esm/{TotpConsent-Cn2DkVza.js.map → TotpConsent-owUOdKzP.js.map} +1 -1
- package/dist/esm/combobox.js +1 -1
- package/dist/esm/document.js +1 -1
- package/dist/esm/end-user-consent.js +1 -1
- package/dist/esm/{index-DBUdxnp9.js → index-5Nn2kzHI.js} +4 -4
- package/dist/esm/{index-DBUdxnp9.js.map → index-5Nn2kzHI.js.map} +1 -1
- package/dist/esm/localisation.js +1 -1
- package/dist/esm/main.js +6 -6
- package/dist/esm/navigation.js +1 -1
- package/dist/esm/{package-Do9oHVnx.js → package-BxstV9r_.js} +3 -3
- package/dist/esm/{package-Do9oHVnx.js.map → package-BxstV9r_.js.map} +1 -1
- package/dist/esm/selfie.js +1 -1
- package/dist/esm/smart-camera-web.js +5 -5
- package/dist/esm/totp-consent.js +1 -1
- package/dist/smart-camera-web.js +43 -34
- package/dist/smart-camera-web.js.map +1 -1
- package/dist/types/main.d.ts +4 -4
- package/lib/components/selfie/src/smartselfie-capture/SmartSelfieCapture.tsx +72 -39
- package/lib/components/selfie/src/smartselfie-capture/hooks/useCamera.ts +12 -0
- package/lib/components/signature-pad/package.json +1 -1
- package/package.json +10 -1
- package/dist/esm/SelfieCaptureScreens-DsFp21uW.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SelfieCaptureScreens-DsFp21uW.js","sources":["../../lib/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.js","../../lib/components/selfie/src/selfie-capture-review/SelfieCaptureReview.js","../../../../node_modules/@tabler/icons-preact/dist/esm/defaultAttributes.mjs","../../../../node_modules/@tabler/icons-preact/dist/esm/createPreactComponent.mjs","../../../../node_modules/@tabler/icons-preact/dist/esm/icons/IconLoader2.mjs","../../lib/components/selfie/src/smartselfie-capture/hooks/useCamera.ts","../../../../node_modules/@preact/signals-core/dist/signals-core.module.js","../../../../node_modules/@preact/signals/dist/signals.module.js","../../../../node_modules/@mediapipe/tasks-vision/vision_bundle.mjs","../../node_modules/lodash/now.js","../../node_modules/lodash/_trimmedEndIndex.js","../../node_modules/lodash/_baseTrim.js","../../node_modules/lodash/isSymbol.js","../../node_modules/lodash/toNumber.js","../../node_modules/lodash/debounce.js","../../node_modules/lodash/throttle.js","../../lib/components/selfie/src/smartselfie-capture/utils/faceDetection.ts","../../lib/components/selfie/src/smartselfie-capture/utils/canvas.ts","../../lib/components/selfie/src/smartselfie-capture/utils/imageCapture.ts","../../lib/components/selfie/src/smartselfie-capture/constants.ts","../../lib/components/selfie/src/smartselfie-capture/utils/alertMessages.ts","../../lib/components/selfie/src/smartselfie-capture/utils/mediapipeManager.ts","../../lib/components/selfie/src/smartselfie-capture/hooks/useFaceCapture.ts","../../lib/components/selfie/src/smartselfie-capture/OvalProgress.tsx","../../lib/components/selfie/src/smartselfie-capture/components/CameraPreview.tsx","../../lib/components/selfie/src/smartselfie-capture/components/AlertDisplay.tsx","../../lib/components/selfie/src/smartselfie-capture/components/CaptureControls.tsx","../../lib/components/selfie/src/smartselfie-capture/SmartSelfieCapture.tsx","../../lib/components/selfie/src/selfie-capture/SelfieCapture.js","../../lib/components/selfie/src/selfie-capture-wrapper/SelfieCaptureWrapper.tsx","../../lib/components/selfie/src/SelfieCaptureScreens.js"],"sourcesContent":["import styles from '../../../../styles/src/styles';\nimport '../../../navigation/src';\nimport { t, getDirection } from '../../../../domain/localisation';\n\nfunction templateString() {\n return `\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" />\n <link\n href=\"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;700&display=swap\"\n rel=\"stylesheet\"\n />\n <style>\n :host {\n --theme-color: ${this.themeColor || '#001096'}\n --color-active: #001096;\n --color-default: #2d2b2a;\n --color-disabled: #848282;\n }\n\n * {\n font-family: \"DM Sans\", sans-serif;\n }\n\n [hidden] {\n display: none !important;\n }\n\n [disabled] {\n cursor: not-allowed !important;\n filter: grayscale(75%);\n }\n\n .visually-hidden {\n border: 0;\n clip: rect(1px 1px 1px 1px);\n clip: rect(1px, 1px, 1px, 1px);\n height: auto;\n margin: 0;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n img {\n height: auto;\n max-width: 100%;\n transform: scaleX(-1);\n }\n\n video {\n background-color: black;\n }\n\n a {\n color: currentColor;\n text-decoration: none;\n }\n\n svg {\n max-width: 100%;\n }\n\n .color-gray {\n color: #797979;\n }\n\n .color-red {\n color: red;\n }\n\n .color-richblue {\n color: #4e6577;\n }\n\n .color-richblue-shade {\n color: #0e1b42;\n }\n\n .color-digital-blue {\n color: #001096 !important;\n }\n\n .color-deep-blue {\n color: #001096;\n }\n\n .center {\n text-align: center;\n margin-left: auto;\n margin-right: auto;\n }\n\n .font-size-small {\n font-size: 0.75rem;\n }\n\n .font-size-large {\n font-size: 1.5rem;\n }\n\n .text-transform-uppercase {\n text-transform: uppercase;\n }\n\n [id*=-\"screen\"] {\n min-block-size: 100%;\n }\n\n [data-variant~=\"full-width\"] {\n inline-size: 100%;\n }\n\n .flow > * + * {\n margin-top: 1rem;\n }\n\n .button {\n --button-color: var(--theme-color);\n -webkit-appearance: none;\n appearance: none;\n border-radius: 2.5rem;\n border: 0;\n background-color: transparent;\n color: #fff;\n cursor: pointer;\n display: block;\n font-size: 18px;\n font-weight: 600;\n padding: 0.75rem 1.5rem;\n text-align: center;\n }\n\n .button:hover,\n .button:focus,\n .button:active {\n --button-color: var(--color-default);\n }\n\n .button:disabled {\n --button-color: var(--color-disabled);\n }\n\n .button[data-variant~=\"solid\"] {\n background-color: var(--button-color);\n border: 2px solid var(--button-color);\n }\n\n .button[data-variant~=\"outline\"] {\n color: var(--button-color);\n border: 2px solid var(--button-color);\n }\n\n .button[data-variant~=\"ghost\"] {\n padding: 0px;\n color: var(--button-color);\n background-color: transparent;\n }\n\n .icon-btn {\n appearance: none;\n background: none;\n border: none;\n color: hsl(0deg 0% 94%);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 4px 8px;\n }\n .justify-right {\n justify-content: end !important;\n }\n .nav {\n display: flex;\n justify-content: space-between;\n }\n\n .back-wrapper {\n display: flex;\n align-items: center;\n }\n\n .back-button {\n display: block !important;\n }\n .back-button-text {\n font-size: 11px;\n line-height: 11px;\n color: rgb(21, 31, 114);\n }\n .section {\n border: 1px solid #f4f4f4;\n border-radius: 0.5rem;\n margin-left: auto;\n margin-right: auto;\n max-width: 35ch;\n padding: 1rem;\n }\n\n .selfie-capture-review-image {\n overflow: hidden;\n aspect-ratio: 1/1;\n }\n\n #review-image {\n scale: 1.75;\n }\n\n @media (max-aspect-ratio: 1/1) {\n #review-image {\n transform: scaleX(-1) translateY(-10%);\n }\n }\n\n .tips,\n .powered-by {\n align-items: center;\n border-radius: 0.25rem;\n color: #4e6577;\n display: flex;\n justify-content: center;\n letter-spacing: 0.075em;\n }\n\n .powered-by {\n box-shadow: 0px 2.57415px 2.57415px rgba(0, 0, 0, 0.06);\n display: inline-flex;\n font-size: 0.5rem;\n }\n\n .tips {\n margin-left: auto;\n margin-right: auto;\n max-width: 17rem;\n }\n\n .tips > * + *,\n .powered-by > * + * {\n display: inline-block;\n margin-left: 0.5em;\n }\n\n .powered-by .company {\n color: #18406d;\n font-weight: 700;\n letter-spacing: 0.15rem;\n }\n\n .logo-mark {\n background-color: #004071;\n display: inline-block;\n padding: 0.25em 0.5em;\n }\n\n .logo-mark svg {\n height: auto;\n justify-self: center;\n width: 0.75em;\n }\n\n #selfie-capture-instruction-screen {\n box-sizing: border-box;\n height: 100%;\n padding: 1rem;\n display: flex;\n flex-direction: column;\n max-block-size: 100%;\n max-inline-size: 40ch;\n }\n\n #selfie-capture-instruction-screen header p {\n margin-block: 0 !important;\n }\n\n header h1 {\n font-size: 1.25rem;\n }\n\n .instructions {\n display: flex;\n align-items: center;\n text-align: initial;\n gap: 0.5rem;\n }\n\n .instructions svg {\n flex-shrink: 0;\n margin-inline-end: 0.25rem;\n }\n\n .instructions p {\n margin-block: 0;\n }\n\n h1 {\n color: ${this.themeColor};\n text-align: center;\n margin-top: 0;\n margin-bottom: 1rem;\n\n /* h1 */\n font-size: 1.5rem;\n font-style: normal;\n font-weight: 700;\n line-height: 36px; /* 150% */\n }\n\n .controls {\n width: 100%;\n margin-top: 1rem;\n }\n\n .content-root {\n height: 100%;\n display: flex;\n align-items: center;\n flex-direction: column;\n }\n\n .content-header, .content-body, .content-footer {\n width: 100%;\n }\n\n .content-body {\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: space-between;\n }\n\n .tip-header {\n color: ${this.themeColor};\n }\n\n .tip-body {\n text-align: justify;\n }\n </style>\n ${styles(this.themeColor)}\n <div id=\"selfie-capture-instruction-screen\" class=\"center\" dir=\"${this.direction}\">\n <div class=\"content-root\">\n <div class=\"content-header\">\n ${this.showNavigation ? `<smileid-navigation theme-color='${this.themeColor}' ${this.hideBack ? 'hide-back' : ''}></smileid-navigation>` : ''}\n </div>\n <div class=\"content-body\">\n <header>\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"65\" height=\"91\" viewBox=\"0 0 65 91\" fill=\"none\">\n <g clip-path=\"url(#clip0_604_692)\">\n <path d=\"M36.6833 60.4888C26.9272 54.8682 13.1977 54.3026 5.53473 59.2162C-2.12824 64.1298 -0.851078 72.9318 8.05358 78.9413L17.8806 85.1274L51.5126 69.6797L36.7188 60.4534H36.6478L36.6833 60.4888Z\" fill=\"#3B3837\"/>\n <path d=\"M27.5624 90.5007L17.9127 85.0923C17.9127 85.0923 17.9127 74.6288 18.1256 70.4929C18.232 68.2305 23.2342 37.441 44.1655 34.6484C48.1389 34.1182 56.8662 40.5871 56.8662 40.5871\" fill=\"#91190F\"/>\n <path d=\"M27.5624 90.5007L17.9127 85.0923C17.9127 85.0923 17.9127 74.6288 18.1256 70.4929C18.232 68.2305 23.2342 37.441 44.1655 34.6484C48.1389 34.1182 56.8662 40.5871 56.8662 40.5871\" fill=\"#3B3837\"/>\n <path d=\"M64.0705 51.9698C63.8931 41.0114 56.2301 36.5927 46.7224 42.0366C37.0727 47.5511 29.055 60.9486 28.3454 72.2958L27.5649 90.4655L63.7512 69.5739L64.1769 51.8991H64.106L64.0705 51.9698Z\" fill=\"#7ECAF0\"/>\n <path d=\"M44.2729 28.3906L30.0112 36.521L30.4015 19.73L44.6631 11.5643L44.2729 28.3906Z\" fill=\"#F8CEEB\"/>\n <path d=\"M53.959 33.8711L39.6974 42.0368L40.0876 25.2104L54.3493 17.0447L53.959 33.8711Z\" fill=\"#7ECAF0\"/>\n <path d=\"M44.6631 11.5643L54.3483 17.0434L40.0866 25.2092L39.6964 42.0356L30.0112 36.521L30.4015 19.73L44.6631 11.5643Z\" fill=\"#3B3837\"/>\n <path d=\"M53.0767 51.0497L59.9591 46.8785L59.9237 36.9099L64.4647 34.3294L64.5002 49.4236L53.0767 56.2461V51.0497Z\" fill=\"#FF5805\"/>\n <path d=\"M54.0676 54.5139L63.5044 48.8933L63.469 36.026L60.9146 37.4754V47.4439L54.0676 51.5798V54.5139Z\" fill=\"#FF5805\"/>\n <path d=\"M30.4053 52.2515L34.9463 49.6356V60.8414L44.0638 55.1855V60.4172L30.4407 68.7244L30.4053 52.2515Z\" fill=\"#FF5805\"/>\n <path d=\"M31.4317 66.9921L43.0681 59.8869V56.9529L33.9506 62.6088V51.3323L31.3962 52.817L31.4317 66.9921Z\" fill=\"#FF5805\"/>\n <path d=\"M30.4053 19.7312L42.5383 13.0148V18.1759L34.9463 22.3471V32.4924L30.4407 35.073L30.4053 19.7312Z\" fill=\"#FF5805\"/>\n <path d=\"M31.3962 33.377L33.9506 31.9276V21.7823L41.5426 17.6111V14.6771L31.3962 20.2976V28.7815V33.377Z\" fill=\"#FF5805\"/>\n <path d=\"M59.9223 8.27746L53.5365 11.9538V6.79277L64.4279 0.500549L64.4633 16.5846L59.9578 19.1651L59.9223 8.27746Z\" fill=\"#FF5805\"/>\n <path d=\"M60.9142 17.4682L63.504 16.0189L63.4685 2.19722L54.4929 7.35826L54.5284 10.2569L60.9142 6.58057V17.4682Z\" fill=\"#FF5805\"/>\n </g>\n <defs>\n <clipPath id=\"clip0_604_692\">\n <rect width=\"64\" height=\"90\" fill=\"white\" transform=\"translate(0.5 0.5)\"/>\n </clipPath>\n </defs>\n </svg>\n <h1 class='title-color font-bold'>${t('selfie.instructions.title')}</h1>\n </header>\n <div class=\"instructions-wrapper\">\n <div class=\"instructions\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"38\"\n height=\"38\"\n viewBox=\"0 0 38 38\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_604_670)\">\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M31.8569 19C31.8569 21.5428 31.1029 24.0285 29.6902 26.1428C28.2774 28.2571 26.2695 29.9049 23.9203 30.878C21.571 31.8511 18.986 32.1057 16.492 31.6096C13.9981 31.1136 11.7072 29.8891 9.90919 28.091C8.11115 26.293 6.88668 24.0022 6.3906 21.5082C5.89452 19.0143 6.14913 16.4292 7.12222 14.08C8.09531 11.7307 9.74318 9.72279 11.8574 8.31008C13.9717 6.89737 16.4574 6.14334 19.0002 6.14334C22.41 6.14334 25.6802 7.49788 28.0913 9.90897C30.5024 12.3201 31.8569 15.5902 31.8569 19Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M19.6064 4.5419H18.394L18.9912 0L19.6064 4.5419Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M26.7541 6.77667L25.7046 6.17048L28.4913 2.54239L26.7541 6.77667Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M31.8298 12.2957L31.2236 11.2462L35.4489 9.49097L31.8298 12.2957Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M33.4674 19.6062V18.3938L38.0003 18.9909L33.4674 19.6062Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M31.2236 26.7538L31.8298 25.7043L35.4579 28.491L31.2236 26.7538Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M25.7046 31.8295L26.7541 31.2233L28.5094 35.4486L25.7046 31.8295Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M18.394 33.4671H19.6064L19.0093 38L18.394 33.4671Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M11.2464 31.2233L12.2959 31.8295L9.50928 35.4576L11.2464 31.2233Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M6.17068 25.7043L6.77687 26.7538L2.55164 28.509L6.17068 25.7043Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M4.54215 18.3938V19.6062L0.000244141 19.009L4.54215 18.3938Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M6.77689 11.2462L6.1707 12.2957L2.5426 9.50903L6.77689 11.2462Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M12.296 6.17047L11.2464 6.77666L9.49121 2.55142L12.296 6.17047Z\"\n fill=\"${this.themeColor}\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_604_670\">\n <rect\n width=\"38\"\n height=\"38\"\n fill=\"white\"\n transform=\"translate(0.000244141)\"\n />\n </clipPath>\n </defs>\n </svg>\n <div class=\"instruction\">\n <p class=\"text-base title-color font-bold tip-header\">${t('selfie.instructions.tips.goodLight.header')}</p>\n <p class=\"tip-body\">\n ${t('selfie.instructions.tips.goodLight.body')}\n </p>\n </div>\n </div>\n <div class=\"instructions\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"38\"\n height=\"36\"\n viewBox=\"0 0 38 36\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_604_672)\">\n <path\n d=\"M36.7211 12.6391H1.22537C1.06275 13.0909 0.910962 13.5427 0.77002 14.0055H37.1764C37.0463 13.5427 36.8946 13.0909 36.7211 12.6391Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.3716 14.7438H0.574875C0.466458 15.1625 0.379725 15.5813 0.303833 16.011H37.6426C37.5667 15.5813 37.48 15.1625 37.3716 14.7438Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.7727 16.8485H0.173703C0.119494 17.2342 0.0869685 17.6198 0.0544434 18.0055H37.892C37.8594 17.6198 37.8269 17.2342 37.7727 16.8485Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.9462 19.4711C37.9462 19.2948 37.9462 19.1295 37.9353 18.9532H0.0110865C0.000244802 19.1295 0.000244141 19.2948 0.000244141 19.4711C0.000244141 19.6474 0.000244802 19.8347 0.0110865 20.011H37.9353C37.9462 19.8347 37.9462 19.6474 37.9462 19.4711Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.8811 21.0579H0.0653076C0.086991 21.3774 0.119515 21.697 0.162882 22.0055H37.7836C37.8269 21.697 37.8595 21.3774 37.8811 21.0579Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.5992 23.1625H0.347168C0.401376 23.449 0.466426 23.7245 0.531477 24H37.4149C37.48 23.7245 37.545 23.449 37.5992 23.1625Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M37.0788 25.2672H0.867554C0.954287 25.5096 1.03018 25.7631 1.11691 26.0055H36.8295C36.9162 25.7631 37.0029 25.5096 37.0788 25.2672Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M36.2874 27.3719H1.65906L1.95178 28H35.9947L36.2874 27.3719Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M35.2032 29.4766H2.75403C2.84799 29.6529 2.95641 29.8292 3.07928 30.0055H34.878L35.2032 29.4766Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M33.7396 31.5813H4.20679L4.54288 32H33.4035L33.7396 31.5813Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M31.7989 33.6859H6.14746L6.49439 33.9945H31.452L31.7989 33.6859Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M29.0993 35.7906H8.84705L9.18314 36H28.7632L29.0993 35.7906Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M34.2384 8.01102C33.8914 7.53719 33.5228 7.07438 33.1325 6.63361C29.8258 2.60055 24.6977 0 18.9407 0C12.891 0 7.53525 2.86501 4.25021 7.26171H4.28274C4.08759 7.51515 3.89244 7.75757 3.70813 8.01102H34.2384Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M34.531 8.44077H3.41533C3.06839 8.94765 2.74314 9.47658 2.43958 10.0165H35.5068C35.2124 9.47215 34.8866 8.94597 34.531 8.44077Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M35.7887 10.5344H2.15776C1.9084 11.0193 1.68072 11.5151 1.47473 12.011H36.4717C36.2657 11.5151 36.0381 11.0193 35.7887 10.5344Z\"\n fill=\"${this.themeColor}\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_604_672\">\n <rect\n width=\"37.9459\"\n height=\"36\"\n fill=\"white\"\n transform=\"translate(0.000244141)\"\n />\n </clipPath>\n </defs>\n </svg>\n <div class=\"instruction\">\n <p class=\"text-base title-color font-bold tip-header\">${t('selfie.instructions.tips.clearImage.header')}</p>\n <p class=\"tip-body\">\n ${t('selfie.instructions.tips.clearImage.body')}\n </p>\n </div>\n </div>\n <div class=\"instructions\">\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"38\"\n height=\"38\"\n viewBox=\"0 0 38 38\"\n fill=\"none\"\n >\n <path\n d=\"M18.9496 0C18.9496 0 13.9842 6.03205e-06 11.1469 1.09139C8.30957 2.18277 8.41092 4.46476 7.80292 6.15145C7.28787 7.56786 6.91455 9.02989 6.68824 10.517C6.68824 10.517 4.86424 11.3107 3.24291 12.2036C2.43378 12.6113 1.72475 13.1862 1.16487 13.8886C0.604986 14.5909 0.207618 15.404 0.000244141 16.2715C0.506911 21.4308 6.68824 23.6136 6.68824 23.6136C6.67321 21.7242 6.77473 19.8356 6.99225 17.9582C7.29625 16.47 7.90424 15.7754 10.4376 14.6841C12.9709 13.5927 18.9496 13.1958 18.9496 13.1958C18.9496 13.1958 24.9282 13.5927 27.4616 14.6841C29.9949 15.7754 30.7042 16.47 31.0082 17.9582C31.2258 19.8356 31.3273 21.7242 31.3122 23.6136C31.3122 23.6136 37.3922 21.4308 38.0002 16.2715C37.5126 14.5484 36.3463 13.0853 34.7576 12.2036L31.2109 10.517C30.9867 9.03874 30.6479 7.57936 30.1976 6.15145C29.4882 4.46476 28.4749 1.78591 26.8536 1.09139C25.2322 0.396873 18.9496 0 18.9496 0Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M10.7416 21.53C12.8058 21.6524 14.8473 22.0188 16.8216 22.6214C18.6235 23.1643 20.5642 23.0588 22.2936 22.3238C24.8269 21.2324 27.5629 21.4308 30.1976 21.6292C30.7849 21.6319 31.3675 21.7326 31.9202 21.9269C32.4269 22.1253 32.4269 22.423 32.4269 23.2167C32.14 24.7237 31.6635 26.19 31.0083 27.5822C30.7799 28.1169 30.4019 28.5776 29.9179 28.9111C29.4338 29.2446 28.8634 29.4375 28.2723 29.4674C27.2359 29.6525 26.1773 29.6859 25.1309 29.5666C24.279 29.5405 23.4506 29.2863 22.736 28.8315C22.0214 28.3766 21.4478 27.7387 21.0776 26.987C20.8887 26.3594 20.6161 25.7589 20.2669 25.201C19.8616 24.705 19.5576 24.5065 19.0509 24.6057C18.7188 24.5693 18.3842 24.6489 18.1061 24.8304C17.828 25.0119 17.6243 25.2837 17.5309 25.5979C16.9229 27.0862 16.4162 28.6736 14.6936 29.2689C13.939 29.5055 13.1548 29.6391 12.3629 29.6658C11.2345 29.6928 10.1081 29.5591 9.01892 29.2689C7.39759 28.7728 6.89092 27.3838 6.38425 25.8956C6.24296 25.2819 6.03928 24.6836 5.77625 24.1096C5.57359 23.5143 5.37092 23.1175 5.67492 22.5222C5.97892 21.9269 6.18159 22.0261 6.68825 21.9269C8.02604 21.6866 9.38168 21.5538 10.7416 21.53ZM12.0589 28.8721C14.4909 28.5744 14.8963 28.5744 15.6056 27.3838C16.0105 26.8072 16.3184 26.1708 16.5176 25.4987C16.9229 24.3081 16.7203 23.7128 15.6056 23.2167C13.2959 22.2331 10.6949 22.127 8.30959 22.9191C8.07105 23.0198 7.85723 23.1693 7.68248 23.3575C7.50772 23.5458 7.37604 23.7684 7.29626 24.0105C7.12045 24.8478 7.19957 25.7172 7.52382 26.5109C7.84807 27.3046 8.40315 27.9876 9.12025 28.4752C10.0603 28.8088 11.0617 28.9441 12.0589 28.8721ZM25.7389 28.9713C26.8173 28.9934 27.8881 28.7904 28.8802 28.376C30.7042 27.5823 30.7043 25.7963 30.7043 24.1096C30.7043 22.423 29.9949 22.9191 29.2856 22.7206C27.3226 22.2044 25.2509 22.2387 23.3069 22.8198C23.0246 22.8282 22.7476 22.8972 22.4956 23.0221C22.2436 23.1469 22.0228 23.3245 21.8487 23.5423C21.6746 23.7601 21.5516 24.0127 21.4884 24.2822C21.4252 24.5517 21.4233 24.8315 21.4829 25.1018C21.6856 27.3838 23.1043 28.5744 25.7389 28.9713Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M11.9576 24.4073C10.8429 24.4073 9.93091 25.1018 9.93091 25.7963V26.2924C9.9546 26.4062 10.0183 26.5082 10.1109 26.5807C10.2034 26.6532 10.319 26.6916 10.4376 26.6893C10.8429 26.6893 11.0456 26.4909 11.0456 26.2924V25.7963C11.0456 25.4987 11.4509 25.201 11.9576 25.201C12.4642 25.201 12.8696 25.4987 12.8696 25.7963V26.2924C12.8696 26.4909 13.1736 26.6893 13.4776 26.6893C13.5961 26.6916 13.7117 26.6532 13.8043 26.5807C13.8969 26.5082 13.9606 26.4062 13.9842 26.2924V25.7963C13.9842 25.1018 13.0722 24.4073 11.9576 24.4073Z\"\n fill=\"${this.themeColor}\"\n />\n <path\n d=\"M26.1442 24.4073C24.9282 24.4073 24.0162 25.1018 24.0162 25.7963V26.2924C24.0162 26.4909 24.3202 26.6893 24.6242 26.6893C24.9282 26.6893 25.2322 26.4909 25.2322 26.2924V25.7963C25.2322 25.4987 25.6376 25.201 26.1442 25.201C26.6509 25.201 27.0562 25.4987 27.0562 25.7963V26.2924C27.0799 26.4062 27.1436 26.5082 27.2362 26.5807C27.3287 26.6532 27.4444 26.6916 27.5629 26.6893C27.8669 26.6893 28.1709 26.4909 28.1709 26.2924V25.7963C28.1709 25.1018 27.2589 24.4073 26.1442 24.4073Z\"\n fill=\"${this.themeColor}\"\n />\n </svg>\n <div class=\"instruction\">\n <p class=\"text-base title-color font-bold tip-header\">${t('selfie.instructions.tips.removeObstructions.header')}</p>\n <p class=\"tip-body\">\n ${t('selfie.instructions.tips.removeObstructions.body')}\n </p>\n </div>\n </div>\n <div class=\"instructions\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"38\" height=\"38\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"${this.themeColor}\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" class=\"icon icon-tabler icons-tabler-outline icon-tabler-mood-happy\"><path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/><path d=\"M12 12m-9 0a9 9 0 1 0 18 0a9 9 0 1 0 -18 0\" /><path d=\"M9 9l.01 0\" /><path d=\"M15 9l.01 0\" /><path d=\"M8 13a4 4 0 1 0 8 0h-8\" /></svg>\n <div class=\"instruction\">\n <p class=\"text-base title-color font-bold tip-header\">${t('selfie.instructions.tips.wideSmile.header')}</p>\n <p class=\"tip-body\">\n ${t('selfie.instructions.tips.wideSmile.body')}\n </p>\n </div>\n </div>\n </div>\n <section class=\"controls\">\n <button id='allow' data-variant='solid full-width' class='button theme-background'>\n ${t('selfie.instructions.allowButton')}\n </button>\n </section>\n ${\n this.hideAttribution\n ? ''\n : `\n <div class=\"content-footer\">\n <powered-by-smile-id></powered-by-smile-id>\n </div>\n `\n }\n </div>\n </div>\n</div>\n `;\n}\n\nclass SelfieCaptureInstructions extends HTMLElement {\n constructor() {\n super();\n this.templateString = templateString.bind(this);\n this.render = () => this.templateString();\n\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n this.pages = [];\n const template = document.createElement('template');\n template.innerHTML = this.render();\n\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n\n this.allowButton = this.shadowRoot.querySelector('#allow');\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\n\n this.navigation?.addEventListener('navigation.back', () => {\n this.handleBackEvents();\n });\n\n if (this.allowButton) {\n this.allowButton.addEventListener('click', () => {\n this.dispatchEvent(\n new CustomEvent('selfie-capture-instructions.capture'),\n );\n });\n }\n\n this.navigation?.addEventListener(\n 'navigation.close',\n () => {\n this.handleCloseEvents();\n },\n false,\n );\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution');\n }\n\n handleBackEvents() {\n this.dispatchEvent(\n new CustomEvent('selfie-capture-instructions.cancelled'),\n );\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation');\n }\n\n get direction() {\n return this.getAttribute('dir') || getDirection() || 'ltr';\n }\n\n handleCloseEvents() {\n this.dispatchEvent(new CustomEvent('selfie-capture-instructions.close'));\n }\n\n static get observedAttributes() {\n return ['show-navigation'];\n }\n}\n\nif (\n 'customElements' in window &&\n !window.customElements.get('selfie-capture-instructions')\n) {\n window.customElements.define(\n 'selfie-capture-instructions',\n SelfieCaptureInstructions,\n );\n}\n\nexport default SelfieCaptureInstructions;\n","import styles from '../../../../styles/src/styles';\nimport '../../../navigation/src';\nimport { t, getDirection } from '../../../../domain/localisation';\n\nfunction templateString() {\n return `\n <style>\n .retake-photo.button[data-variant~=\"ghost\"] {\n color: #FF5805;\n }\n\n #selfie-capture-review-screen {\n display: flex;\n flex-direction: column;\n padding: 1rem;\n }\n\n #selfie-capture-review-screen .selfie-review-container.landscape {\n height: auto;\n }\n\n #selfie-capture-review-screen header p {\n margin-block: 0 !important;\n }\n\n .selfie-review-container.portrait {\n width: 100%;\n position: relative;\n height: calc(200px * 1.4);\n }\n\n .selfie-review-container.portrait img {\n width: calc(213px + 0.9rem);\n height: 100%;\n position: absolute;\n top: 239px;\n left: 161px;\n padding-bottom: calc((214px * 1.4) / 3);\n padding-top: calc((191px * 1.4) / 3);\n object-fit: cover;\n \n transform: translateX(-50%) translateY(-50%);\n z-index: 1;\n block-size: 100%;\n }\n\n h1 {\n color: var(--web-digital-blue, #001096);\n text-align: center;\n /* h1 */\n font-size: 1.25rem;\n font-style: normal;\n font-weight: 700;\n line-height: 36px; /* 150% */\n margin-top: 0;\n }\n </style>\n ${styles(this.themeColor)}\n <div id='selfie-capture-review-screen' class='center' dir='${this.direction}'>\n ${this.showNavigation ? `<smileid-navigation hide-back></smileid-navigation>` : ''}\n <h1 class=\"header-title title-color font-bold\">\n ${t('selfie.review.question')}\n </h1>\n <div class='section | flow'>\n <div class='selfie-review-container ${this.isPortraitCaptureView ? 'portrait' : 'landscape'}'>\n ${\n this.imageSrc\n ? `<img\n alt='your ID card'\n id='document-capture-review-image'\n src='${this.imageSrc}'\n width='396'\n style='max-width: 90%;${this.shouldMirror ? ' transform: scaleX(-1);' : ''}'\n />`\n : ''\n }\n </div>\n <div class='flow action-buttons'>\n <button data-variant='solid full-width' class='button' type='button' id='select-id-image'>\n ${t('selfie.review.acceptButton')}\n </button>\n <button data-variant='ghost full-width' class='button retake-photo' type='button' id='re-capture-image'>\n ${t('selfie.review.retakeButton')}\n </button>\n </div>\n ${\n this.hideAttribution\n ? ''\n : `\n <powered-by-smile-id></powered-by-smile-id>\n `\n }\n </div>\n </div>\n `;\n}\n\nclass SelfieCaptureReview extends HTMLElement {\n constructor() {\n super();\n this.templateString = templateString.bind(this);\n this.render = () => this.templateString();\n\n this.attachShadow({ mode: 'open' });\n }\n\n connectedCallback() {\n const template = document.createElement('template');\n template.innerHTML = this.render();\n this.shadowRoot.innerHTML = '';\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n this.setUpEventListeners();\n }\n\n static get observedAttributes() {\n return [\n 'hide-back-to-host',\n 'show-navigation',\n 'data-image',\n 'mirror-image',\n ];\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back-to-host');\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution');\n }\n\n get imageSrc() {\n return this.getAttribute('data-image');\n }\n\n get shouldMirror() {\n return this.getAttribute('mirror-image') !== 'false';\n }\n\n get title() {\n return this.getAttribute('title') || t('selfie.review.title');\n }\n\n get direction() {\n return this.getAttribute('dir') || getDirection() || 'ltr';\n }\n\n handleBackEvents() {\n this.dispatchEvent(new CustomEvent('selfie-capture-review.cancelled'));\n }\n\n handleCloseEvents() {\n this.dispatchEvent(new CustomEvent('selfie-capture-review.close'));\n }\n\n attributeChangedCallback(name) {\n switch (name) {\n case 'data-image':\n case 'hide-back-to-host':\n case 'show-navigation':\n case 'mirror-image':\n this.shadowRoot.innerHTML = this.render();\n this.setUpEventListeners();\n break;\n default:\n break;\n }\n }\n\n setUpEventListeners() {\n this.selectImage = this.shadowRoot.querySelector('#select-id-image');\n this.reCaptureImage = this.shadowRoot.querySelector('#re-capture-image');\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\n\n this.navigation?.addEventListener('navigation.back', () => {\n this.handleBackEvents();\n });\n this.navigation?.addEventListener('navigation.close', () => {\n this.handleCloseEvents();\n });\n\n this.selectImage.addEventListener('click', () => {\n this.dispatchEvent(\n new CustomEvent('selfie-capture-review.accepted', {\n detail: {},\n }),\n );\n });\n this.reCaptureImage.addEventListener('click', () => {\n this.dispatchEvent(\n new CustomEvent('selfie-capture-review.rejected', {\n detail: {},\n }),\n );\n });\n }\n}\n\nif (\n 'customElements' in window &&\n !customElements.get('selfie-capture-review')\n) {\n window.customElements.define('selfie-capture-review', SelfieCaptureReview);\n}\n\nexport default SelfieCaptureReview;\n","/**\n * @license @tabler/icons-preact v3.34.1 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nvar defaultAttributes = {\n outline: {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": 2,\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\"\n },\n filled: {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 24,\n height: 24,\n viewBox: \"0 0 24 24\",\n fill: \"currentColor\",\n stroke: \"none\"\n }\n};\n\nexport { defaultAttributes as default };\n//# sourceMappingURL=defaultAttributes.mjs.map\n","/**\n * @license @tabler/icons-preact v3.34.1 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport { h, toChildArray } from 'preact';\nimport defaultAttributes from './defaultAttributes.mjs';\n\nconst createPreactComponent = (type, iconName, iconNamePascal, iconNode) => {\n const Component = ({\n color = \"currentColor\",\n size = 24,\n stroke = 2,\n title,\n children,\n className = \"\",\n class: classes = \"\",\n style,\n ...rest\n }) => h(\n \"svg\",\n {\n ...defaultAttributes[type],\n width: String(size),\n height: String(size),\n class: [`tabler-icon`, `tabler-icon-${iconName}`, classes, className].join(\" \"),\n ...type === \"filled\" ? {\n fill: color\n } : {\n \"stroke-width\": stroke,\n stroke: color\n },\n style,\n ...rest\n },\n [\n title && h(\"title\", {}, title),\n ...iconNode.map(([tag, attrs]) => h(tag, attrs)),\n ...toChildArray(children)\n ]\n );\n Component.displayName = `${iconNamePascal}`;\n return Component;\n};\n\nexport { createPreactComponent as default };\n//# sourceMappingURL=createPreactComponent.mjs.map\n","/**\n * @license @tabler/icons-preact v3.34.1 - MIT\n *\n * This source code is licensed under the MIT license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createPreactComponent from '../createPreactComponent.mjs';\n\nvar IconLoader2 = createPreactComponent(\"outline\", \"loader-2\", \"Loader2\", [[\"path\", { \"d\": \"M12 3a9 9 0 1 0 9 9\", \"key\": \"svg-0\" }]]);\n\nexport { IconLoader2 as default };\n//# sourceMappingURL=IconLoader2.mjs.map\n","import { useRef, useState, useEffect } from 'preact/hooks';\n\nexport const useCamera = (initialFacingMode: CameraFacingMode = 'user') => {\n const videoRef = useRef<HTMLVideoElement>(null);\n const streamRef = useRef<MediaStream | null>(null);\n const [facingMode, setFacingMode] = useState(initialFacingMode);\n const [agentSupported, setAgentSupported] = useState(false);\n const onCameraSwitchCallbackRef = useRef<(() => void) | null>(null);\n const isSwitchingCameraRef = useRef(false);\n const timeoutIdsRef = useRef<Set<NodeJS.Timeout>>(new Set());\n\n const registerCameraSwitchCallback = (callback: () => void) => {\n onCameraSwitchCallbackRef.current = callback;\n };\n\n useEffect(() => {\n const video = videoRef.current;\n if (!video) return undefined;\n\n const handleVideoReady = () => {\n if (isSwitchingCameraRef.current && onCameraSwitchCallbackRef.current) {\n const timeoutId = setTimeout(() => {\n onCameraSwitchCallbackRef.current?.();\n isSwitchingCameraRef.current = false;\n timeoutIdsRef.current.delete(timeoutId);\n }, 100);\n timeoutIdsRef.current.add(timeoutId);\n }\n };\n\n video.addEventListener('loadedmetadata', handleVideoReady);\n\n return () => {\n video.removeEventListener('loadedmetadata', handleVideoReady);\n timeoutIdsRef.current.forEach((timeoutId) => clearTimeout(timeoutId));\n timeoutIdsRef.current.clear();\n };\n }, [videoRef.current?.src]);\n\n useEffect(\n () => () => {\n timeoutIdsRef.current.forEach((timeoutId) => clearTimeout(timeoutId));\n timeoutIdsRef.current.clear();\n },\n [],\n );\n\n const startCamera = async (\n targetFacingMode?: CameraFacingMode,\n callback?: (cameraName?: string) => void,\n ) => {\n try {\n if (streamRef.current) {\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n }\n\n if (videoRef.current) {\n videoRef.current.srcObject = null;\n }\n\n const stream = await navigator.mediaDevices.getUserMedia({\n video: { facingMode: targetFacingMode || facingMode },\n });\n streamRef.current = stream;\n\n const track = stream.getVideoTracks()[0];\n const settings = track.getSettings();\n const actualFacingMode = settings.facingMode as\n | CameraFacingMode\n | undefined;\n\n const requestedFacingMode = targetFacingMode || facingMode;\n\n if (actualFacingMode && actualFacingMode !== requestedFacingMode) {\n setFacingMode(actualFacingMode);\n } else if (actualFacingMode && actualFacingMode !== facingMode) {\n setFacingMode(actualFacingMode);\n }\n\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevice = devices.find(\n (device) =>\n device.kind === 'videoinput' &&\n stream.getVideoTracks()[0].getSettings().deviceId === device.deviceId,\n );\n\n callback?.(videoDevice?.label);\n\n if (videoRef.current) {\n videoRef.current.srcObject = stream;\n await videoRef.current.play();\n // Video ready callback will be handled by useEffect\n }\n } catch (error) {\n console.error('Failed to start camera:', error);\n }\n };\n\n const switchCamera = async () => {\n const newFacingMode = facingMode === 'user' ? 'environment' : 'user';\n isSwitchingCameraRef.current = true;\n\n const previousFacingMode = facingMode;\n try {\n setFacingMode(newFacingMode);\n if (streamRef.current) {\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n }\n\n await startCamera(newFacingMode);\n } catch {\n setFacingMode(previousFacingMode);\n isSwitchingCameraRef.current = false;\n\n try {\n await startCamera(previousFacingMode);\n } catch (restoreError) {\n console.error('Failed to restore previous camera:', restoreError);\n }\n }\n };\n\n const detectBrowserEngine = () => {\n const userAgent = navigator.userAgent.toLowerCase();\n\n const isGecko =\n userAgent.includes('firefox') ||\n (userAgent.includes('gecko') &&\n !userAgent.includes('chrome') &&\n !userAgent.includes('edge'));\n\n const hasFirefoxFeatures =\n 'mozInnerScreenX' in window ||\n 'mozInputSource' in window ||\n 'mozPaintCount' in window ||\n typeof (window as any).InstallTrigger !== 'undefined';\n\n const supportsMozCSS =\n CSS.supports &&\n (CSS.supports('-moz-appearance', 'none') ||\n CSS.supports('-moz-user-select', 'none'));\n\n return {\n isGecko: isGecko || hasFirefoxFeatures || supportsMozCSS,\n isChromium:\n userAgent.includes('chrome') ||\n userAgent.includes('chromium') ||\n userAgent.includes('edge'),\n isWebKit: userAgent.includes('webkit') && !userAgent.includes('chrome'),\n };\n };\n\n const checkAgentSupport = async () => {\n try {\n const isMobile =\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\n navigator.userAgent,\n ) ||\n (navigator.maxTouchPoints && navigator.maxTouchPoints > 1);\n\n // mobile devices generally support both cameras\n // also, ios crashes if we try to check for cameras\n if (isMobile) {\n setAgentSupported(true);\n return;\n }\n\n const { isGecko } = detectBrowserEngine();\n\n let userCameraId: string | null = null;\n let environmentCameraId: string | null = null;\n\n // test if we can get a user-facing camera\n try {\n const userStream = await navigator.mediaDevices.getUserMedia({\n video: { facingMode: 'user' },\n });\n userCameraId =\n userStream.getVideoTracks()[0].getSettings().deviceId ?? null;\n userStream.getTracks().forEach((track) => track.stop());\n } catch {\n // no user-facing camera available\n }\n\n // test if we can get an environment-facing camera\n try {\n const envStream = await navigator.mediaDevices.getUserMedia({\n video: { facingMode: 'environment' },\n });\n environmentCameraId =\n envStream.getVideoTracks()[0].getSettings().deviceId ?? null;\n envStream.getTracks().forEach((track) => track.stop());\n } catch {\n // no environment-facing camera available\n }\n\n const hasBothCameras =\n userCameraId &&\n environmentCameraId &&\n userCameraId !== environmentCameraId;\n\n if (!hasBothCameras) {\n setAgentSupported(false);\n return;\n }\n\n setAgentSupported(!isGecko);\n } catch {\n setAgentSupported(false);\n }\n };\n\n const stopCamera = () => {\n if (streamRef.current) {\n streamRef.current.getTracks().forEach((track) => track.stop());\n streamRef.current = null;\n }\n\n if (videoRef.current) {\n videoRef.current.srcObject = null;\n videoRef.current.load();\n }\n };\n\n return {\n videoRef,\n streamRef,\n facingMode,\n agentSupported,\n startCamera,\n switchCamera,\n checkAgentSupport,\n stopCamera,\n registerCameraSwitchCallback,\n };\n};\n","var i=Symbol.for(\"preact-signals\");function t(){if(!(s>1)){var i,t=!1;while(void 0!==h){var r=h;h=void 0;f++;while(void 0!==r){var o=r.o;r.o=void 0;r.f&=-3;if(!(8&r.f)&&c(r))try{r.c()}catch(r){if(!t){i=r;t=!0}}r=o}}f=0;s--;if(t)throw i}else s--}function r(i){if(s>0)return i();s++;try{return i()}finally{t()}}var o=void 0;function n(i){var t=o;o=void 0;try{return i()}finally{o=t}}var h=void 0,s=0,f=0,v=0;function e(i){if(void 0!==o){var t=i.n;if(void 0===t||t.t!==o){t={i:0,S:i,p:o.s,n:void 0,t:o,e:void 0,x:void 0,r:t};if(void 0!==o.s)o.s.n=t;o.s=t;i.n=t;if(32&o.f)i.S(t);return t}else if(-1===t.i){t.i=0;if(void 0!==t.n){t.n.p=t.p;if(void 0!==t.p)t.p.n=t.n;t.p=o.s;t.n=void 0;o.s.n=t;o.s=t}return t}}}function u(i,t){this.v=i;this.i=0;this.n=void 0;this.t=void 0;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched}u.prototype.brand=i;u.prototype.h=function(){return!0};u.prototype.S=function(i){var t=this,r=this.t;if(r!==i&&void 0===i.e){i.x=r;this.t=i;if(void 0!==r)r.e=i;else n(function(){var i;null==(i=t.W)||i.call(t)})}};u.prototype.U=function(i){var t=this;if(void 0!==this.t){var r=i.e,o=i.x;if(void 0!==r){r.x=o;i.e=void 0}if(void 0!==o){o.e=r;i.x=void 0}if(i===this.t){this.t=o;if(void 0===o)n(function(){var i;null==(i=t.Z)||i.call(t)})}}};u.prototype.subscribe=function(i){var t=this;return E(function(){var r=t.value,n=o;o=void 0;try{i(r)}finally{o=n}})};u.prototype.valueOf=function(){return this.value};u.prototype.toString=function(){return this.value+\"\"};u.prototype.toJSON=function(){return this.value};u.prototype.peek=function(){var i=o;o=void 0;try{return this.value}finally{o=i}};Object.defineProperty(u.prototype,\"value\",{get:function(){var i=e(this);if(void 0!==i)i.i=this.i;return this.v},set:function(i){if(i!==this.v){if(f>100)throw new Error(\"Cycle detected\");this.v=i;this.i++;v++;s++;try{for(var r=this.t;void 0!==r;r=r.x)r.t.N()}finally{t()}}}});function d(i,t){return new u(i,t)}function c(i){for(var t=i.s;void 0!==t;t=t.n)if(t.S.i!==t.i||!t.S.h()||t.S.i!==t.i)return!0;return!1}function a(i){for(var t=i.s;void 0!==t;t=t.n){var r=t.S.n;if(void 0!==r)t.r=r;t.S.n=t;t.i=-1;if(void 0===t.n){i.s=t;break}}}function l(i){var t=i.s,r=void 0;while(void 0!==t){var o=t.p;if(-1===t.i){t.S.U(t);if(void 0!==o)o.n=t.n;if(void 0!==t.n)t.n.p=o}else r=t;t.S.n=t.r;if(void 0!==t.r)t.r=void 0;t=o}i.s=r}function y(i,t){u.call(this,void 0);this.x=i;this.s=void 0;this.g=v-1;this.f=4;this.W=null==t?void 0:t.watched;this.Z=null==t?void 0:t.unwatched}y.prototype=new u;y.prototype.h=function(){this.f&=-3;if(1&this.f)return!1;if(32==(36&this.f))return!0;this.f&=-5;if(this.g===v)return!0;this.g=v;this.f|=1;if(this.i>0&&!c(this)){this.f&=-2;return!0}var i=o;try{a(this);o=this;var t=this.x();if(16&this.f||this.v!==t||0===this.i){this.v=t;this.f&=-17;this.i++}}catch(i){this.v=i;this.f|=16;this.i++}o=i;l(this);this.f&=-2;return!0};y.prototype.S=function(i){if(void 0===this.t){this.f|=36;for(var t=this.s;void 0!==t;t=t.n)t.S.S(t)}u.prototype.S.call(this,i)};y.prototype.U=function(i){if(void 0!==this.t){u.prototype.U.call(this,i);if(void 0===this.t){this.f&=-33;for(var t=this.s;void 0!==t;t=t.n)t.S.U(t)}}};y.prototype.N=function(){if(!(2&this.f)){this.f|=6;for(var i=this.t;void 0!==i;i=i.x)i.t.N()}};Object.defineProperty(y.prototype,\"value\",{get:function(){if(1&this.f)throw new Error(\"Cycle detected\");var i=e(this);this.h();if(void 0!==i)i.i=this.i;if(16&this.f)throw this.v;return this.v}});function w(i,t){return new y(i,t)}function _(i){var r=i.u;i.u=void 0;if(\"function\"==typeof r){s++;var n=o;o=void 0;try{r()}catch(t){i.f&=-2;i.f|=8;b(i);throw t}finally{o=n;t()}}}function b(i){for(var t=i.s;void 0!==t;t=t.n)t.S.U(t);i.x=void 0;i.s=void 0;_(i)}function g(i){if(o!==this)throw new Error(\"Out-of-order effect\");l(this);o=i;this.f&=-2;if(8&this.f)b(this);t()}function p(i){this.x=i;this.u=void 0;this.s=void 0;this.o=void 0;this.f=32}p.prototype.c=function(){var i=this.S();try{if(8&this.f)return;if(void 0===this.x)return;var t=this.x();if(\"function\"==typeof t)this.u=t}finally{i()}};p.prototype.S=function(){if(1&this.f)throw new Error(\"Cycle detected\");this.f|=1;this.f&=-9;_(this);a(this);s++;var i=o;o=this;return g.bind(this,i)};p.prototype.N=function(){if(!(2&this.f)){this.f|=2;this.o=h;h=this}};p.prototype.d=function(){this.f|=8;if(!(1&this.f))b(this)};p.prototype.dispose=function(){this.d()};function E(i){var t=new p(i);try{t.c()}catch(i){t.d();throw i}var r=t.d.bind(t);r[Symbol.dispose]=r;return r}export{u as Signal,r as batch,w as computed,E as effect,d as signal,n as untracked};//# sourceMappingURL=signals-core.module.js.map\n","import{Component as i,options as n,isValidElement as r,Fragment as t}from\"preact\";import{useMemo as f,useRef as o,useEffect as e}from\"preact/hooks\";import{effect as u,Signal as a,computed as c,signal as v,batch as s}from\"@preact/signals-core\";export{Signal,batch,computed,effect,signal,untracked}from\"@preact/signals-core\";var h,l,d,p=[],m=[];u(function(){h=this.N})();function _(i,r){n[i]=r.bind(null,n[i]||function(){})}function g(i){if(d)d();d=i&&i.S()}function b(i){var n=this,t=i.data,o=useSignal(t);o.value=t;var e=f(function(){var i=n,t=n.__v;while(t=t.__)if(t.__c){t.__c.__$f|=4;break}var f=c(function(){var i=o.value.value;return 0===i?0:!0===i?\"\":i||\"\"}),e=c(function(){return!Array.isArray(f.value)&&!r(f.value)}),a=u(function(){this.N=T;if(e.value){var n=f.value;if(i.__v&&i.__v.__e&&3===i.__v.__e.nodeType)i.__v.__e.data=n}}),v=n.__$u.d;n.__$u.d=function(){a();v.call(this)};return[e,f]},[]),a=e[0],v=e[1];return a.value?v.peek():v.value}b.displayName=\"_st\";Object.defineProperties(a.prototype,{constructor:{configurable:!0,value:void 0},type:{configurable:!0,value:b},props:{configurable:!0,get:function(){return{data:this}}},__b:{configurable:!0,value:1}});_(\"__b\",function(i,n){if(\"string\"==typeof n.type){var r,t=n.props;for(var f in t)if(\"children\"!==f){var o=t[f];if(o instanceof a){if(!r)n.__np=r={};r[f]=o;t[f]=o.peek()}}}i(n)});_(\"__r\",function(i,n){if(n.type!==t){g();var r,f=n.__c;if(f){f.__$f&=-2;if(void 0===(r=f.__$u))f.__$u=r=function(i){var n;u(function(){n=this});n.c=function(){f.__$f|=1;f.setState({})};return n}()}l=f;g(r)}i(n)});_(\"__e\",function(i,n,r,t){g();l=void 0;i(n,r,t)});_(\"diffed\",function(i,n){g();l=void 0;var r;if(\"string\"==typeof n.type&&(r=n.__e)){var t=n.__np,f=n.props;if(t){var o=r.U;if(o)for(var e in o){var u=o[e];if(void 0!==u&&!(e in t)){u.d();o[e]=void 0}}else{o={};r.U=o}for(var a in t){var c=o[a],v=t[a];if(void 0===c){c=y(r,a,v,f);o[a]=c}else c.o(v,f)}}}i(n)});function y(i,n,r,t){var f=n in i&&void 0===i.ownerSVGElement,o=v(r);return{o:function(i,n){o.value=i;t=n},d:u(function(){this.N=T;var r=o.value.value;if(t[n]!==r){t[n]=r;if(f)i[n]=r;else if(r)i.setAttribute(n,r);else i.removeAttribute(n)}})}}_(\"unmount\",function(i,n){if(\"string\"==typeof n.type){var r=n.__e;if(r){var t=r.U;if(t){r.U=void 0;for(var f in t){var o=t[f];if(o)o.d()}}}}else{var e=n.__c;if(e){var u=e.__$u;if(u){e.__$u=void 0;u.d()}}}i(n)});_(\"__h\",function(i,n,r,t){if(t<3||9===t)n.__$f|=2;i(n,r,t)});i.prototype.shouldComponentUpdate=function(i,n){var r=this.__$u,t=r&&void 0!==r.s;for(var f in n)return!0;if(this.__f||\"boolean\"==typeof this.u&&!0===this.u){var o=2&this.__$f;if(!(t||o||4&this.__$f))return!0;if(1&this.__$f)return!0}else{if(!(t||4&this.__$f))return!0;if(3&this.__$f)return!0}for(var e in i)if(\"__source\"!==e&&i[e]!==this.props[e])return!0;for(var u in this.props)if(!(u in i))return!0;return!1};function useSignal(i,n){return f(function(){return v(i,n)},[])}function useComputed(i,n){var r=o(i);r.current=i;l.__$f|=4;return f(function(){return c(function(){return r.current()},n)},[])}var k=\"undefined\"==typeof requestAnimationFrame?setTimeout:function(i){var n=function(){clearTimeout(r);cancelAnimationFrame(t);i()},r=setTimeout(n,35),t=requestAnimationFrame(n)},q=function(i){queueMicrotask(function(){queueMicrotask(i)})};function A(){s(function(){var i;while(i=p.shift())h.call(i)})}function w(){if(1===p.push(this))(n.requestAnimationFrame||k)(A)}function F(){s(function(){var i;while(i=m.shift())h.call(i)})}function T(){if(1===m.push(this))(n.requestAnimationFrame||q)(F)}function useSignalEffect(i){var n=o(i);n.current=i;e(function(){return u(function(){this.N=w;return n.current()})},[])}export{useComputed,useSignal,useSignalEffect};//# sourceMappingURL=signals.module.js.map\n","var t=\"undefined\"!=typeof self?self:{};function e(){throw Error(\"Invalid UTF8\")}function n(t,e){return e=String.fromCharCode.apply(null,e),null==t?e:t+e}let r,i;const s=\"undefined\"!=typeof TextDecoder;let o;const a=\"undefined\"!=typeof TextEncoder;function c(t){if(a)t=(o||=new TextEncoder).encode(t);else{let n=0;const r=new Uint8Array(3*t.length);for(let i=0;i<t.length;i++){var e=t.charCodeAt(i);if(e<128)r[n++]=e;else{if(e<2048)r[n++]=e>>6|192;else{if(e>=55296&&e<=57343){if(e<=56319&&i<t.length){const s=t.charCodeAt(++i);if(s>=56320&&s<=57343){e=1024*(e-55296)+s-56320+65536,r[n++]=e>>18|240,r[n++]=e>>12&63|128,r[n++]=e>>6&63|128,r[n++]=63&e|128;continue}i--}e=65533}r[n++]=e>>12|224,r[n++]=e>>6&63|128}r[n++]=63&e|128}}t=n===r.length?r:r.subarray(0,n)}return t}var h,u;t:{for(var l=[\"CLOSURE_FLAGS\"],d=t,f=0;f<l.length;f++)if(null==(d=d[l[f]])){u=null;break t}u=d}var p,g=u&&u[610401301];h=null!=g&&g;const m=t.navigator;function y(t){return!!h&&(!!p&&p.brands.some((({brand:e})=>e&&-1!=e.indexOf(t))))}function _(e){var n;return(n=t.navigator)&&(n=n.userAgent)||(n=\"\"),-1!=n.indexOf(e)}function v(){return!!h&&(!!p&&p.brands.length>0)}function E(){return v()?y(\"Chromium\"):(_(\"Chrome\")||_(\"CriOS\"))&&!(!v()&&_(\"Edge\"))||_(\"Silk\")}function w(t){return w[\" \"](t),t}p=m&&m.userAgentData||null,w[\" \"]=function(){};var T=!v()&&(_(\"Trident\")||_(\"MSIE\"));!_(\"Android\")||E(),E(),_(\"Safari\")&&(E()||!v()&&_(\"Coast\")||!v()&&_(\"Opera\")||!v()&&_(\"Edge\")||(v()?y(\"Microsoft Edge\"):_(\"Edg/\"))||v()&&y(\"Opera\"));var A={},b=null;function k(t){const e=t.length;let n=3*e/4;n%3?n=Math.floor(n):-1!=\"=.\".indexOf(t[e-1])&&(n=-1!=\"=.\".indexOf(t[e-2])?n-2:n-1);const r=new Uint8Array(n);let i=0;return function(t,e){function n(e){for(;r<t.length;){const e=t.charAt(r++),n=b[e];if(null!=n)return n;if(!/^[\\s\\xa0]*$/.test(e))throw Error(\"Unknown base64 encoding at char: \"+e)}return e}S();let r=0;for(;;){const t=n(-1),r=n(0),i=n(64),s=n(64);if(64===s&&-1===t)break;e(t<<2|r>>4),64!=i&&(e(r<<4&240|i>>2),64!=s&&e(i<<6&192|s))}}(t,(function(t){r[i++]=t})),i!==n?r.subarray(0,i):r}function S(){if(!b){b={};var t=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789\".split(\"\"),e=[\"+/=\",\"+/\",\"-_=\",\"-_.\",\"-_\"];for(let n=0;n<5;n++){const r=t.concat(e[n].split(\"\"));A[n]=r;for(let t=0;t<r.length;t++){const e=r[t];void 0===b[e]&&(b[e]=t)}}}}var x=\"undefined\"!=typeof Uint8Array,L=!T&&\"function\"==typeof btoa;function R(t){if(!L){var e;void 0===e&&(e=0),S(),e=A[e];var n=Array(Math.floor(t.length/3)),r=e[64]||\"\";let c=0,h=0;for(;c<t.length-2;c+=3){var i=t[c],s=t[c+1],o=t[c+2],a=e[i>>2];i=e[(3&i)<<4|s>>4],s=e[(15&s)<<2|o>>6],o=e[63&o],n[h++]=a+i+s+o}switch(a=0,o=r,t.length-c){case 2:o=e[(15&(a=t[c+1]))<<2]||r;case 1:t=t[c],n[h]=e[t>>2]+e[(3&t)<<4|a>>4]+o+r}return n.join(\"\")}for(e=\"\",n=0,r=t.length-10240;n<r;)e+=String.fromCharCode.apply(null,t.subarray(n,n+=10240));return e+=String.fromCharCode.apply(null,n?t.subarray(n):t),btoa(e)}const F=/[-_.]/g,I={\"-\":\"+\",_:\"/\",\".\":\"=\"};function M(t){return I[t]||\"\"}function P(t){if(!L)return k(t);F.test(t)&&(t=t.replace(F,M)),t=atob(t);const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=t.charCodeAt(n);return e}function C(t){return x&&null!=t&&t instanceof Uint8Array}var O={};function U(){return B||=new N(null,O)}function D(t){j(O);var e=t.g;return null==(e=null==e||C(e)?e:\"string\"==typeof e?P(e):null)?e:t.g=e}var N=class{h(){return new Uint8Array(D(this)||0)}constructor(t,e){if(j(e),this.g=t,null!=t&&0===t.length)throw Error(\"ByteString should be constructed with non-empty values\")}};let B,G;function j(t){if(t!==O)throw Error(\"illegal external caller\")}function V(t,e){t.__closure__error__context__984382||(t.__closure__error__context__984382={}),t.__closure__error__context__984382.severity=e}function X(t){return V(t=Error(t),\"warning\"),t}function H(e){if(null!=e){var n=G??={},r=n[e]||0;r>=5||(n[e]=r+1,V(e=Error(),\"incident\"),function(e){t.setTimeout((()=>{throw e}),0)}(e))}}var W=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol();function z(t,e,n=!1){return\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol()?n&&Symbol.for&&t?Symbol.for(t):null!=t?Symbol(t):Symbol():e}var K=z(\"jas\",void 0,!0),Y=z(void 0,\"0di\"),$=z(void 0,\"1oa\"),q=z(void 0,Symbol()),J=z(void 0,\"0actk\"),Z=z(void 0,\"8utk\");const Q=W?K:\"Ea\",tt={Ea:{value:0,configurable:!0,writable:!0,enumerable:!1}},et=Object.defineProperties;function nt(t,e){W||Q in t||et(t,tt),t[Q]|=e}function rt(t,e){W||Q in t||et(t,tt),t[Q]=e}function it(t){return nt(t,34),t}function st(t,e){rt(e,-15615&(0|t))}function ot(t,e){rt(e,-15581&(34|t))}function at(){return\"function\"==typeof BigInt}function ct(t){return Array.prototype.slice.call(t)}var ht,ut={};function lt(t){return null!==t&&\"object\"==typeof t&&!Array.isArray(t)&&t.constructor===Object}function dt(t,e){if(null!=t)if(\"string\"==typeof t)t=t?new N(t,O):U();else if(t.constructor!==N)if(C(t))t=t.length?new N(new Uint8Array(t),O):U();else{if(!e)throw Error();t=void 0}return t}const ft=[];function pt(t){if(2&t)throw Error()}rt(ft,55),ht=Object.freeze(ft);class gt{constructor(t,e,n){this.g=t,this.h=e,this.l=n}next(){const t=this.g.next();return t.done||(t.value=this.h.call(this.l,t.value)),t}[Symbol.iterator](){return this}}function mt(t){return q?t[q]:void 0}var yt=Object.freeze({});function _t(t){return t.Na=!0,t}var vt=_t((t=>\"number\"==typeof t)),Et=_t((t=>\"string\"==typeof t)),wt=_t((t=>\"boolean\"==typeof t)),Tt=\"function\"==typeof t.BigInt&&\"bigint\"==typeof t.BigInt(0);function At(t){var e=t;if(Et(e)){if(!/^\\s*(?:-?[1-9]\\d*|0)?\\s*$/.test(e))throw Error(String(e))}else if(vt(e)&&!Number.isSafeInteger(e))throw Error(String(e));return Tt?BigInt(t):t=wt(t)?t?\"1\":\"0\":Et(t)?t.trim()||\"0\":String(t)}var bt=_t((t=>Tt?t>=St&&t<=Lt:\"-\"===t[0]?Rt(t,kt):Rt(t,xt)));const kt=Number.MIN_SAFE_INTEGER.toString(),St=Tt?BigInt(Number.MIN_SAFE_INTEGER):void 0,xt=Number.MAX_SAFE_INTEGER.toString(),Lt=Tt?BigInt(Number.MAX_SAFE_INTEGER):void 0;function Rt(t,e){if(t.length>e.length)return!1;if(t.length<e.length||t===e)return!0;for(let n=0;n<t.length;n++){const r=t[n],i=e[n];if(r>i)return!1;if(r<i)return!0}}const Ft=\"function\"==typeof Uint8Array.prototype.slice;let It,Mt=0,Pt=0;function Ct(t){const e=t>>>0;Mt=e,Pt=(t-e)/4294967296>>>0}function Ot(t){if(t<0){Ct(-t);const[e,n]=Xt(Mt,Pt);Mt=e>>>0,Pt=n>>>0}else Ct(t)}function Ut(t){const e=It||=new DataView(new ArrayBuffer(8));e.setFloat32(0,+t,!0),Pt=0,Mt=e.getUint32(0,!0)}function Dt(t,e){const n=4294967296*e+(t>>>0);return Number.isSafeInteger(n)?n:Bt(t,e)}function Nt(t,e){const n=2147483648&e;return n&&(e=~e>>>0,0==(t=1+~t>>>0)&&(e=e+1>>>0)),\"number\"==typeof(t=Dt(t,e))?n?-t:t:n?\"-\"+t:t}function Bt(t,e){if(t>>>=0,(e>>>=0)<=2097151)var n=\"\"+(4294967296*e+t);else at()?n=\"\"+(BigInt(e)<<BigInt(32)|BigInt(t)):(t=(16777215&t)+6777216*(n=16777215&(t>>>24|e<<8))+6710656*(e=e>>16&65535),n+=8147497*e,e*=2,t>=1e7&&(n+=t/1e7>>>0,t%=1e7),n>=1e7&&(e+=n/1e7>>>0,n%=1e7),n=e+Gt(n)+Gt(t));return n}function Gt(t){return t=String(t),\"0000000\".slice(t.length)+t}function jt(){var t=Mt,e=Pt;if(2147483648&e)if(at())t=\"\"+(BigInt(0|e)<<BigInt(32)|BigInt(t>>>0));else{const[n,r]=Xt(t,e);t=\"-\"+Bt(n,r)}else t=Bt(t,e);return t}function Vt(t){if(t.length<16)Ot(Number(t));else if(at())t=BigInt(t),Mt=Number(t&BigInt(4294967295))>>>0,Pt=Number(t>>BigInt(32)&BigInt(4294967295));else{const e=+(\"-\"===t[0]);Pt=Mt=0;const n=t.length;for(let r=e,i=(n-e)%6+e;i<=n;r=i,i+=6){const e=Number(t.slice(r,i));Pt*=1e6,Mt=1e6*Mt+e,Mt>=4294967296&&(Pt+=Math.trunc(Mt/4294967296),Pt>>>=0,Mt>>>=0)}if(e){const[t,e]=Xt(Mt,Pt);Mt=t,Pt=e}}}function Xt(t,e){return e=~e,t?t=1+~t:e+=1,[t,e]}const Ht=\"function\"==typeof BigInt?BigInt.asIntN:void 0,Wt=\"function\"==typeof BigInt?BigInt.asUintN:void 0,zt=Number.isSafeInteger,Kt=Number.isFinite,Yt=Math.trunc,$t=At(0);function qt(t){return null==t||\"number\"==typeof t?t:\"NaN\"===t||\"Infinity\"===t||\"-Infinity\"===t?Number(t):void 0}function Jt(t){return null==t||\"boolean\"==typeof t?t:\"number\"==typeof t?!!t:void 0}const Zt=/^-?([1-9][0-9]*|0)(\\.[0-9]+)?$/;function Qt(t){switch(typeof t){case\"bigint\":return!0;case\"number\":return Kt(t);case\"string\":return Zt.test(t);default:return!1}}function te(t){if(null==t)return t;if(\"string\"==typeof t&&t)t=+t;else if(\"number\"!=typeof t)return;return Kt(t)?0|t:void 0}function ee(t){if(null==t)return t;if(\"string\"==typeof t&&t)t=+t;else if(\"number\"!=typeof t)return;return Kt(t)?t>>>0:void 0}function ne(t){if(\"-\"===t[0])return!1;const e=t.length;return e<20||20===e&&Number(t.substring(0,6))<184467}function re(t){const e=t.length;return\"-\"===t[0]?e<20||20===e&&Number(t.substring(0,7))>-922337:e<19||19===e&&Number(t.substring(0,6))<922337}function ie(t){return re(t)?t:(Vt(t),jt())}function se(t){return t=Yt(t),zt(t)||(Ot(t),t=Nt(Mt,Pt)),t}function oe(t){var e=Yt(Number(t));return zt(e)?String(e):(-1!==(e=t.indexOf(\".\"))&&(t=t.substring(0,e)),ie(t))}function ae(t){var e=Yt(Number(t));return zt(e)?At(e):(-1!==(e=t.indexOf(\".\"))&&(t=t.substring(0,e)),at()?At(Ht(64,BigInt(t))):At(ie(t)))}function ce(t){if(zt(t))t=At(se(t));else{if(t=Yt(t),zt(t))t=String(t);else{const e=String(t);re(e)?t=e:(Ot(t),t=jt())}t=At(t)}return t}function he(t){return null==t?t:\"bigint\"==typeof t?(bt(t)?t=Number(t):(t=Ht(64,t),t=bt(t)?Number(t):String(t)),t):Qt(t)?\"number\"==typeof t?se(t):oe(t):void 0}function ue(t){if(null==t)return t;var e=typeof t;if(\"bigint\"===e)return String(Wt(64,t));if(Qt(t)){if(\"string\"===e)return e=Yt(Number(t)),zt(e)&&e>=0?t=String(e):(-1!==(e=t.indexOf(\".\"))&&(t=t.substring(0,e)),ne(t)||(Vt(t),t=Bt(Mt,Pt))),t;if(\"number\"===e)return(t=Yt(t))>=0&&zt(t)?t:function(t){if(t<0){Ot(t);var e=Bt(Mt,Pt);return t=Number(e),zt(t)?t:e}return ne(e=String(t))?e:(Ot(t),Dt(Mt,Pt))}(t)}}function le(t){if(\"string\"!=typeof t)throw Error();return t}function de(t){if(null!=t&&\"string\"!=typeof t)throw Error();return t}function fe(t){return null==t||\"string\"==typeof t?t:void 0}function pe(t,e,n,r){if(null!=t&&\"object\"==typeof t&&t.W===ut)return t;if(!Array.isArray(t))return n?2&r?((t=e[Y])||(it((t=new e).u),t=e[Y]=t),e=t):e=new e:e=void 0,e;let i=n=0|t[Q];return 0===i&&(i|=32&r),i|=2&r,i!==n&&rt(t,i),new e(t)}function ge(t,e,n){if(e)t:{if(!Qt(e=t))throw X(\"int64\");switch(typeof e){case\"string\":e=ae(e);break t;case\"bigint\":e=At(Ht(64,e));break t;default:e=ce(e)}}else t=typeof(e=t),e=null==e?e:\"bigint\"===t?At(Ht(64,e)):Qt(e)?\"string\"===t?ae(e):ce(e):void 0;return null==(t=e)?n?$t:void 0:t}function me(t){return t}const ye={};let _e=function(){try{return w(new class extends Map{constructor(){super()}}),!1}catch{return!0}}();class ve{constructor(){this.g=new Map}get(t){return this.g.get(t)}set(t,e){return this.g.set(t,e),this.size=this.g.size,this}delete(t){return t=this.g.delete(t),this.size=this.g.size,t}clear(){this.g.clear(),this.size=this.g.size}has(t){return this.g.has(t)}entries(){return this.g.entries()}keys(){return this.g.keys()}values(){return this.g.values()}forEach(t,e){return this.g.forEach(t,e)}[Symbol.iterator](){return this.entries()}}const Ee=_e?(Object.setPrototypeOf(ve.prototype,Map.prototype),Object.defineProperties(ve.prototype,{size:{value:0,configurable:!0,enumerable:!0,writable:!0}}),ve):class extends Map{constructor(){super()}};function we(t){return t}function Te(t){if(2&t.M)throw Error(\"Cannot mutate an immutable Map\")}var Ae=class extends Ee{constructor(t,e,n=we,r=we){super();let i=0|t[Q];i|=64,rt(t,i),this.M=i,this.I=e,this.S=n,this.X=this.I?be:r;for(let s=0;s<t.length;s++){const o=t[s],a=n(o[0],!1,!0);let c=o[1];e?void 0===c&&(c=null):c=r(o[1],!1,!0,void 0,void 0,i),super.set(a,c)}}La(){var t=Ce;if(0!==this.size)return Array.from(super.entries(),(e=>(e[0]=t(e[0]),e[1]=t(e[1]),e)))}da(t=ke){const e=[],n=super.entries();for(var r;!(r=n.next()).done;)(r=r.value)[0]=t(r[0]),r[1]=t(r[1]),e.push(r);return e}clear(){Te(this),super.clear()}delete(t){return Te(this),super.delete(this.S(t,!0,!1))}entries(){if(this.I){var t=super.keys();t=new gt(t,Se,this)}else t=super.entries();return t}values(){if(this.I){var t=super.keys();t=new gt(t,Ae.prototype.get,this)}else t=super.values();return t}forEach(t,e){this.I?super.forEach(((n,r,i)=>{t.call(e,i.get(r),r,i)})):super.forEach(t,e)}set(t,e){return Te(this),null==(t=this.S(t,!0,!1))?this:null==e?(super.delete(t),this):super.set(t,this.X(e,!0,!0,this.I,!1,this.M))}Ja(t){const e=this.S(t[0],!1,!0);t=t[1],t=this.I?void 0===t?null:t:this.X(t,!1,!0,void 0,!1,this.M),super.set(e,t)}has(t){return super.has(this.S(t,!1,!1))}get(t){t=this.S(t,!1,!1);const e=super.get(t);if(void 0!==e){var n=this.I;return n?((n=this.X(e,!1,!0,n,this.pa,this.M))!==e&&super.set(t,n),n):e}}[Symbol.iterator](){return this.entries()}};function be(t,e,n,r,i,s){return t=pe(t,r,n,s),i&&(t=je(t)),t}function ke(t){return t}function Se(t){return[t,this.get(t)]}let xe,Le,Re,Fe;function Ie(){return xe||=new Ae(it([]),void 0,void 0,void 0,ye)}function Me(t,e,n,r,i){if(null!=t){if(Array.isArray(t)){const s=0|t[Q];return 0===t.length&&1&s?void 0:i&&2&s?t:Pe(t,e,n,void 0!==r,i)}return e(t,r)}}function Pe(t,e,n,r,i){const s=r||n?0|t[Q]:0,o=r?!!(32&s):void 0;let a=0;const c=(r=ct(t)).length;for(let t=0;t<c;t++){var h=r[t];if(t===c-1&<(h)){var u=e,l=n,d=o,f=i;let t;for(let e in h){const n=Me(h[e],u,l,d,f);null!=n&&((t??={})[e]=n)}h=t}else h=Me(r[t],e,n,o,i);r[t]=h,null!=h&&(a=t+1)}return a<c&&(r.length=a),n&&((t=mt(t))&&(r[q]=ct(t)),n(s,r)),r}function Ce(t){return Me(t,Oe,void 0,void 0,!1)}function Oe(t){switch(typeof t){case\"number\":return Number.isFinite(t)?t:\"\"+t;case\"bigint\":return bt(t)?Number(t):\"\"+t;case\"boolean\":return t?1:0;case\"object\":if(C(t))return C(t)&&H(Z),R(t);if(t.W===ut)return Ue(t);if(t instanceof N){const e=t.g;return null==e?\"\":\"string\"==typeof e?e:t.g=R(e)}return t instanceof Ae?t.La():void 0}return t}function Ue(t){var e=t.u;t=Pe(e,Oe,void 0,void 0,!1);var n=0|e[Q];if((e=t.length)&&!(512&n)){var r=t[e-1],i=!1;lt(r)?(e--,i=!0):r=void 0;var s=e-(n=512&n?0:-1),o=(Le??me)(s,n,t,r);if(r&&(t[e]=void 0),s<o&&r){for(var a in s=!0,r){const c=+a;c<=o?(t[i=c+n]=r[a],e=Math.max(i+1,e),i=!1,delete r[a]):s=!1}s&&(r=void 0)}for(s=e-1;e>0;s=e-1)if(null==(a=t[s]))e--,i=!0;else{if(!((s-=n)>=o))break;(r??={})[s]=a,e--,i=!0}i&&(t.length=e),r&&t.push(r)}return t}function De(t,e,n){return t=Ne(t,e[0],e[1],n?1:2),e!==Re&&n&&nt(t,8192),t}function Ne(t,e,n,r){if(null==t){var i=96;n?(t=[n],i|=512):t=[],e&&(i=-16760833&i|(1023&e)<<14)}else{if(!Array.isArray(t))throw Error(\"narr\");if(8192&(i=0|t[Q])||!(64&i)||2&i||H(J),1024&i)throw Error(\"farr\");if(64&i)return t;if(1===r||2===r||(i|=64),n&&(i|=512,n!==t[0]))throw Error(\"mid\");t:{var s=(n=t).length;if(s){var o=s-1;if(lt(r=n[o])){if((o-=e=512&(i|=256)?0:-1)>=1024)throw Error(\"pvtlmt\");for(var a in r)(s=+a)<o&&(n[s+e]=r[a],delete r[a]);i=-16760833&i|(1023&o)<<14;break t}}if(e){if((a=Math.max(e,s-(512&i?0:-1)))>1024)throw Error(\"spvt\");i=-16760833&i|(1023&a)<<14}}}return rt(t,i),t}function Be(t,e,n=ot){if(null!=t){if(x&&t instanceof Uint8Array)return e?t:new Uint8Array(t);if(Array.isArray(t)){var r=0|t[Q];return 2&r?t:(e&&=0===r||!!(32&r)&&!(64&r||!(16&r)),e?(rt(t,34|r),4&r&&Object.freeze(t),t):Pe(t,Be,4&r?ot:n,!0,!0))}return t.W===ut?t=2&(r=0|(n=t.u)[Q])?t:new t.constructor(Ge(n,r,!0)):t instanceof Ae&&!(2&t.M)&&(n=it(t.da(Be)),t=new Ae(n,t.I,t.S,t.X)),t}}function Ge(t,e,n){const r=n||2&e?ot:st,i=!!(32&e);return t=function(t,e,n){const r=ct(t);var i=r.length;const s=256&e?r[i-1]:void 0;for(i+=s?-1:0,e=512&e?1:0;e<i;e++)r[e]=n(r[e]);if(s){e=r[e]={};for(const t in s)e[t]=n(s[t])}return(t=mt(t))&&(r[q]=ct(t)),r}(t,e,(t=>Be(t,i,r))),nt(t,32|(n?2:0)),t}function je(t){const e=t.u,n=0|e[Q];return 2&n?new t.constructor(Ge(e,n,!1)):t}function Ve(t,e){return Xe(t=t.u,0|t[Q],e)}function Xe(t,e,n){if(-1===n)return null;const r=n+(512&e?0:-1),i=t.length-1;return r>=i&&256&e?t[i][n]:r<=i?t[r]:void 0}function He(t,e,n){const r=t.u;let i=0|r[Q];return pt(i),We(r,i,e,n),t}function We(t,e,n,r){const i=512&e?0:-1,s=n+i;var o=t.length-1;return s>=o&&256&e?(t[o][n]=r,e):s<=o?(t[s]=r,e):(void 0!==r&&(n>=(o=e>>14&1023||536870912)?null!=r&&(t[o+i]={[n]:r},rt(t,e|=256)):t[s]=r),e)}function ze(t,e){let n=0|(t=t.u)[Q];const r=Xe(t,n,e),i=qt(r);return null!=i&&i!==r&&We(t,n,e,i),i}function Ke(t){let e=0|(t=t.u)[Q];const n=Xe(t,e,1),r=dt(n,!0);return null!=r&&r!==n&&We(t,e,1,r),r}function Ye(){return void 0===yt?2:4}function $e(t,e,n,r,i){const s=t.u,o=2&(t=0|s[Q])?1:r;i=!!i;let a=0|(r=qe(s,t,e))[Q];if(!(4&a)){4&a&&(r=ct(r),a=pn(a,t),t=We(s,t,e,r));let i=0,o=0;for(;i<r.length;i++){const t=n(r[i]);null!=t&&(r[o++]=t)}o<i&&(r.length=o),a=Je(a,t),n=-2049&(20|a),a=n&=-4097,rt(r,a),2&a&&Object.freeze(r)}return 1===o||4===o&&32&a?Ze(a)||(i=a,a|=2,a!==i&&rt(r,a),Object.freeze(r)):(2===o&&Ze(a)&&(r=ct(r),a=pn(a,t),a=gn(a,t,i),rt(r,a),t=We(s,t,e,r)),Ze(a)||(e=a,a=gn(a,t,i),a!==e&&rt(r,a))),r}function qe(t,e,n){return t=Xe(t,e,n),Array.isArray(t)?t:ht}function Je(t,e){return 0===t&&(t=pn(t,e)),1|t}function Ze(t){return!!(2&t)&&!!(4&t)||!!(1024&t)}function Qe(t){t=ct(t);for(let e=0;e<t.length;e++){const n=t[e]=ct(t[e]);Array.isArray(n[1])&&(n[1]=it(n[1]))}return t}function tn(t,e,n,r){let i=0|(t=t.u)[Q];pt(i),We(t,i,e,(\"0\"===r?0===Number(n):n===r)?void 0:n)}function en(t,e,n,r){pt(e);let i=qe(t,e,n);const s=i!==ht;if(64&e||!(8192&e)||!s){const o=s?0|i[Q]:0;let a=o;(!s||2&a||Ze(a)||4&a&&!(32&a))&&(i=ct(i),a=pn(a,e),e=We(t,e,n,i)),a=-13&Je(a,e),a=gn(r?-17&a:16|a,e,!0),a!==o&&rt(i,a)}return i}function nn(t,e){var n=Ts;return on(rn(t=t.u),t,0|t[Q],n)===e?e:-1}function rn(t){if(W)return t[$]??(t[$]=new Map);if($ in t)return t[$];const e=new Map;return Object.defineProperty(t,$,{value:e}),e}function sn(t,e,n,r){const i=rn(t),s=on(i,t,e,n);return s!==r&&(s&&(e=We(t,e,s)),i.set(n,r)),e}function on(t,e,n,r){let i=t.get(r);if(null!=i)return i;i=0;for(let t=0;t<r.length;t++){const s=r[t];null!=Xe(e,n,s)&&(0!==i&&(n=We(e,n,i)),i=s)}return t.set(r,i),i}function an(t,e,n){let r=0|t[Q];const i=Xe(t,r,n);let s;if(null!=i&&i.W===ut)return(e=je(i))!==i&&We(t,r,n,e),e.u;if(Array.isArray(i)){const t=0|i[Q];s=2&t?De(Ge(i,t,!1),e,!0):64&t?i:De(s,e,!0)}else s=De(void 0,e,!0);return s!==i&&We(t,r,n,s),s}function cn(t,e,n){let r=0|(t=t.u)[Q];const i=Xe(t,r,n);return(e=pe(i,e,!1,r))!==i&&null!=e&&We(t,r,n,e),e}function hn(t,e,n){if(null==(e=cn(t,e,n)))return e;let r=0|(t=t.u)[Q];if(!(2&r)){const i=je(e);i!==e&&We(t,r,n,e=i)}return e}function un(t,e,n,r,i,s,o){t=t.u;var a=!!(2&e);const c=a?1:i;s=!!s,o&&=!a;var h=0|(i=qe(t,e,r))[Q];if(!(a=!!(4&h))){var u=i,l=e;const t=!!(2&(h=Je(h,e)));t&&(l|=2);let r=!t,s=!0,o=0,a=0;for(;o<u.length;o++){const e=pe(u[o],n,!1,l);if(e instanceof n){if(!t){const t=!!(2&(0|e.u[Q]));r&&=!t,s&&=t}u[a++]=e}}a<o&&(u.length=a),h|=4,h=s?16|h:-17&h,rt(u,h=r?8|h:-9&h),t&&Object.freeze(u)}if(o&&!(8&h||!i.length&&(1===c||4===c&&32&h))){for(Ze(h)&&(i=ct(i),h=pn(h,e),e=We(t,e,r,i)),n=i,o=h,u=0;u<n.length;u++)(h=n[u])!==(l=je(h))&&(n[u]=l);o|=8,rt(n,o=n.length?-17&o:16|o),h=o}return 1===c||4===c&&32&h?Ze(h)||(e=h,(h|=!i.length||16&h&&(!a||32&h)?2:1024)!==e&&rt(i,h),Object.freeze(i)):(2===c&&Ze(h)&&(rt(i=ct(i),h=gn(h=pn(h,e),e,s)),e=We(t,e,r,i)),Ze(h)||(r=h,(h=gn(h,e,s))!==r&&rt(i,h))),i}function ln(t,e,n){const r=0|t.u[Q];return un(t,r,e,n,Ye(),!1,!(2&r))}function dn(t,e,n,r){return null==r&&(r=void 0),He(t,n,r)}function fn(t,e,n,r){null==r&&(r=void 0);t:{let i=0|(t=t.u)[Q];if(pt(i),null==r){const r=rn(t);if(on(r,t,i,n)!==e)break t;r.set(n,0)}else i=sn(t,i,n,e);We(t,i,e,r)}}function pn(t,e){return-1025&(t=32|(2&e?2|t:-3&t))}function gn(t,e,n){return 32&e&&n||(t&=-33),t}function mn(t,e,n){pt(0|t.u[Q]),$e(t,e,fe,2,!0).push(le(n))}function yn(t,e,n,r){const i=0|t.u[Q];pt(i),t=un(t,i,n,e,2,!0),r=null!=r?r:new n,t.push(r),t[Q]=2&(0|r.u[Q])?-9&t[Q]:-17&t[Q]}function _n(t,e){return te(Ve(t,e))}function vn(t,e){return fe(Ve(t,e))}function En(t,e){return ze(t,e)??0}function wn(t,e,n){if(null!=n&&\"boolean\"!=typeof n)throw t=typeof n,Error(`Expected boolean but got ${\"object\"!=t?t:n?Array.isArray(n)?\"array\":t:\"null\"}: ${n}`);He(t,e,n)}function Tn(t,e,n){if(null!=n){if(\"number\"!=typeof n)throw X(\"int32\");if(!Kt(n))throw X(\"int32\");n|=0}He(t,e,n)}function An(t,e,n){if(null!=n&&\"number\"!=typeof n)throw Error(`Value of float/double field must be a number, found ${typeof n}: ${n}`);He(t,e,n)}function bn(t,e,n){{const o=t.u;let a=0|o[Q];if(pt(a),null==n)We(o,a,e);else{var r=t=0|n[Q],i=Ze(t),s=i||Object.isFrozen(n);for(i||(t=0),s||(n=ct(n),r=0,t=gn(t=pn(t,a),a,!0),s=!1),t|=21,i=0;i<n.length;i++){const e=n[i],o=le(e);Object.is(e,o)||(s&&(n=ct(n),r=0,t=gn(t=pn(t,a),a,!0),s=!1),n[i]=o)}t!==r&&(s&&(n=ct(n),t=gn(t=pn(t,a),a,!0)),rt(n,t)),We(o,a,e,n)}}}function kn(t,e){return Error(`Invalid wire type: ${t} (at position ${e})`)}function Sn(){return Error(\"Failed to read varint, encoding is invalid.\")}function xn(t,e){return Error(`Tried to read past the end of the data ${e} > ${t}`)}function Ln(t){if(\"string\"==typeof t)return{buffer:P(t),O:!1};if(Array.isArray(t))return{buffer:new Uint8Array(t),O:!1};if(t.constructor===Uint8Array)return{buffer:t,O:!1};if(t.constructor===ArrayBuffer)return{buffer:new Uint8Array(t),O:!1};if(t.constructor===N)return{buffer:D(t)||new Uint8Array(0),O:!0};if(t instanceof Uint8Array)return{buffer:new Uint8Array(t.buffer,t.byteOffset,t.byteLength),O:!1};throw Error(\"Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers\")}function Rn(t,e){let n,r=0,i=0,s=0;const o=t.h;let a=t.g;do{n=o[a++],r|=(127&n)<<s,s+=7}while(s<32&&128&n);for(s>32&&(i|=(127&n)>>4),s=3;s<32&&128&n;s+=7)n=o[a++],i|=(127&n)<<s;if(Dn(t,a),n<128)return e(r>>>0,i>>>0);throw Sn()}function Fn(t){let e=0,n=t.g;const r=n+10,i=t.h;for(;n<r;){const r=i[n++];if(e|=r,0==(128&r))return Dn(t,n),!!(127&e)}throw Sn()}function In(t){const e=t.h;let n=t.g,r=e[n++],i=127&r;if(128&r&&(r=e[n++],i|=(127&r)<<7,128&r&&(r=e[n++],i|=(127&r)<<14,128&r&&(r=e[n++],i|=(127&r)<<21,128&r&&(r=e[n++],i|=r<<28,128&r&&128&e[n++]&&128&e[n++]&&128&e[n++]&&128&e[n++]&&128&e[n++])))))throw Sn();return Dn(t,n),i}function Mn(t){return In(t)>>>0}function Pn(t){var e=t.h;const n=t.g,r=e[n],i=e[n+1],s=e[n+2];return e=e[n+3],Dn(t,t.g+4),(r<<0|i<<8|s<<16|e<<24)>>>0}function Cn(t){var e=Pn(t);t=2*(e>>31)+1;const n=e>>>23&255;return e&=8388607,255==n?e?NaN:t*(1/0):0==n?1401298464324817e-60*t*e:t*Math.pow(2,n-150)*(e+8388608)}function On(t){return In(t)}function Un(t,e,{aa:n=!1}={}){t.aa=n,e&&(e=Ln(e),t.h=e.buffer,t.m=e.O,t.j=0,t.l=t.h.length,t.g=t.j)}function Dn(t,e){if(t.g=e,e>t.l)throw xn(t.l,e)}function Nn(t,e){if(e<0)throw Error(`Tried to read a negative byte length: ${e}`);const n=t.g,r=n+e;if(r>t.l)throw xn(e,t.l-n);return t.g=r,n}function Bn(t,e){if(0==e)return U();var n=Nn(t,e);return t.aa&&t.m?n=t.h.subarray(n,n+e):(t=t.h,n=n===(e=n+e)?new Uint8Array(0):Ft?t.slice(n,e):new Uint8Array(t.subarray(n,e))),0==n.length?U():new N(n,O)}Ae.prototype.toJSON=void 0;var Gn=[];function jn(t){var e=t.g;if(e.g==e.l)return!1;t.l=t.g.g;var n=Mn(t.g);if(e=n>>>3,!((n&=7)>=0&&n<=5))throw kn(n,t.l);if(e<1)throw Error(`Invalid field number: ${e} (at position ${t.l})`);return t.m=e,t.h=n,!0}function Vn(t){switch(t.h){case 0:0!=t.h?Vn(t):Fn(t.g);break;case 1:Dn(t=t.g,t.g+8);break;case 2:if(2!=t.h)Vn(t);else{var e=Mn(t.g);Dn(t=t.g,t.g+e)}break;case 5:Dn(t=t.g,t.g+4);break;case 3:for(e=t.m;;){if(!jn(t))throw Error(\"Unmatched start-group tag: stream EOF\");if(4==t.h){if(t.m!=e)throw Error(\"Unmatched end-group tag\");break}Vn(t)}break;default:throw kn(t.h,t.l)}}function Xn(t,e,n){const r=t.g.l,i=Mn(t.g),s=t.g.g+i;let o=s-r;if(o<=0&&(t.g.l=s,n(e,t,void 0,void 0,void 0),o=s-t.g.g),o)throw Error(`Message parsing ended unexpectedly. Expected to read ${i} bytes, instead read ${i-o} bytes, either the data ended unexpectedly or the message misreported its own length`);return t.g.g=s,t.g.l=r,e}function Hn(t){var o=Mn(t.g),a=Nn(t=t.g,o);if(t=t.h,s){var c,h=t;(c=i)||(c=i=new TextDecoder(\"utf-8\",{fatal:!0})),o=a+o,h=0===a&&o===h.length?h:h.subarray(a,o);try{var u=c.decode(h)}catch(t){if(void 0===r){try{c.decode(new Uint8Array([128]))}catch(t){}try{c.decode(new Uint8Array([97])),r=!0}catch(t){r=!1}}throw!r&&(i=void 0),t}}else{o=(u=a)+o,a=[];let r,i=null;for(;u<o;){var l=t[u++];l<128?a.push(l):l<224?u>=o?e():(r=t[u++],l<194||128!=(192&r)?(u--,e()):a.push((31&l)<<6|63&r)):l<240?u>=o-1?e():(r=t[u++],128!=(192&r)||224===l&&r<160||237===l&&r>=160||128!=(192&(c=t[u++]))?(u--,e()):a.push((15&l)<<12|(63&r)<<6|63&c)):l<=244?u>=o-2?e():(r=t[u++],128!=(192&r)||r-144+(l<<28)>>30!=0||128!=(192&(c=t[u++]))||128!=(192&(h=t[u++]))?(u--,e()):(l=(7&l)<<18|(63&r)<<12|(63&c)<<6|63&h,l-=65536,a.push(55296+(l>>10&1023),56320+(1023&l)))):e(),a.length>=8192&&(i=n(i,a),a.length=0)}u=n(i,a)}return u}function Wn(t){const e=Mn(t.g);return Bn(t.g,e)}function zn(t,e,n){var r=Mn(t.g);for(r=t.g.g+r;t.g.g<r;)n.push(e(t.g))}var Kn=[];function Yn(t,e,n){e.g?e.m(t,e.g,e.h,n):e.m(t,e.h,n)}var $n=class{constructor(t,e){this.u=Ne(t,e)}toJSON(){try{var t=Ue(this)}finally{Le=void 0}return t}l(){var t=_o;return t.g?t.l(this,t.g,t.h):t.l(this,t.h,t.defaultValue)}clone(){const t=this.u;return new this.constructor(Ge(t,0|t[Q],!1))}O(){return!!(2&(0|this.u[Q]))}};function qn(t){return t?/^\\d+$/.test(t)?(Vt(t),new Jn(Mt,Pt)):null:Zn||=new Jn(0,0)}$n.prototype.W=ut,$n.prototype.toString=function(){return this.u.toString()};var Jn=class{constructor(t,e){this.h=t>>>0,this.g=e>>>0}};let Zn;function Qn(t){return t?/^-?\\d+$/.test(t)?(Vt(t),new tr(Mt,Pt)):null:er||=new tr(0,0)}var tr=class{constructor(t,e){this.h=t>>>0,this.g=e>>>0}};let er;function nr(t,e,n){for(;n>0||e>127;)t.g.push(127&e|128),e=(e>>>7|n<<25)>>>0,n>>>=7;t.g.push(e)}function rr(t,e){for(;e>127;)t.g.push(127&e|128),e>>>=7;t.g.push(e)}function ir(t,e){if(e>=0)rr(t,e);else{for(let n=0;n<9;n++)t.g.push(127&e|128),e>>=7;t.g.push(1)}}function sr(t,e){t.g.push(e>>>0&255),t.g.push(e>>>8&255),t.g.push(e>>>16&255),t.g.push(e>>>24&255)}function or(t,e){0!==e.length&&(t.l.push(e),t.h+=e.length)}function ar(t,e,n){rr(t.g,8*e+n)}function cr(t,e){return ar(t,e,2),e=t.g.end(),or(t,e),e.push(t.h),e}function hr(t,e){var n=e.pop();for(n=t.h+t.g.length()-n;n>127;)e.push(127&n|128),n>>>=7,t.h++;e.push(n),t.h++}function ur(t,e,n){ar(t,e,2),rr(t.g,n.length),or(t,t.g.end()),or(t,n)}function lr(t,e,n,r){null!=n&&(e=cr(t,e),r(n,t),hr(t,e))}function dr(){const t=class{constructor(){throw Error()}};return Object.setPrototypeOf(t,t.prototype),t}var fr=dr(),pr=dr(),gr=dr(),mr=dr(),yr=dr(),_r=dr(),vr=dr(),Er=dr(),wr=dr(),Tr=class{constructor(t,e,n){this.g=t,this.h=e,t=fr,this.l=!!t&&n===t||!1}};function Ar(t,e){return new Tr(t,e,fr)}function br(t,e,n,r,i){lr(t,n,Or(e,r),i)}const kr=Ar((function(t,e,n,r,i){return 2===t.h&&(Xn(t,an(e,r,n),i),!0)}),br),Sr=Ar((function(t,e,n,r,i){return 2===t.h&&(Xn(t,an(e,r,n),i),!0)}),br);var xr=Symbol(),Lr=Symbol(),Rr=Symbol(),Fr=Symbol();let Ir,Mr;function Pr(t,e,n,r){var i=r[t];if(i)return i;(i={}).Ma=r,i.T=function(t){switch(typeof t){case\"boolean\":return Re||=[0,void 0,!0];case\"number\":return t>0?void 0:0===t?Fe||=[0,void 0]:[-t,void 0];case\"string\":return[0,t];case\"object\":return t}}(r[0]);var s=r[1];let o=1;s&&s.constructor===Object&&(i.ga=s,\"function\"==typeof(s=r[++o])&&(i.la=!0,Ir??=s,Mr??=r[o+1],s=r[o+=2]));const a={};for(;s&&Array.isArray(s)&&s.length&&\"number\"==typeof s[0]&&s[0]>0;){for(var c=0;c<s.length;c++)a[s[c]]=s;s=r[++o]}for(c=1;void 0!==s;){let t;\"number\"==typeof s&&(c+=s,s=r[++o]);var h=void 0;if(s instanceof Tr?t=s:(t=kr,o--),t?.l){s=r[++o],h=r;var u=o;\"function\"==typeof s&&(s=s(),h[u]=s),h=s}for(u=c+1,\"number\"==typeof(s=r[++o])&&s<0&&(u-=s,s=r[++o]);c<u;c++){const r=a[c];h?n(i,c,t,h,r):e(i,c,t,r)}}return r[t]=i}function Cr(t){return Array.isArray(t)?t[0]instanceof Tr?t:[Sr,t]:[t,void 0]}function Or(t,e){return t instanceof $n?t.u:Array.isArray(t)?De(t,e,!1):void 0}function Ur(t,e,n,r){const i=n.g;t[e]=r?(t,e,n)=>i(t,e,n,r):i}function Dr(t,e,n,r,i){const s=n.g;let o,a;t[e]=(t,e,n)=>s(t,e,n,a||=Pr(Lr,Ur,Dr,r).T,o||=Nr(r),i)}function Nr(t){let e=t[Rr];if(null!=e)return e;const n=Pr(Lr,Ur,Dr,t);return e=n.la?(t,e)=>Ir(t,e,n):(t,e)=>{const r=0|t[Q];for(;jn(e)&&4!=e.h;){var i=e.m,s=n[i];if(null==s){var o=n.ga;o&&(o=o[i])&&(null!=(o=Br(o))&&(s=n[i]=o))}null!=s&&s(e,t,i)||(i=(s=e).l,Vn(s),s.fa?s=void 0:(o=s.g.g-i,s.g.g=i,s=Bn(s.g,o)),i=t,s&&((o=i[q])?o.push(s):i[q]=[s]))}return 8192&r&&it(t),!0},t[Rr]=e}function Br(t){const e=(t=Cr(t))[0].g;if(t=t[1]){const n=Nr(t),r=Pr(Lr,Ur,Dr,t).T;return(t,i,s)=>e(t,i,s,r,n)}return e}function Gr(t,e,n){t[e]=n.h}function jr(t,e,n,r){let i,s;const o=n.h;t[e]=(t,e,n)=>o(t,e,n,s||=Pr(xr,Gr,jr,r).T,i||=Vr(r))}function Vr(t){let e=t[Fr];if(!e){const n=Pr(xr,Gr,jr,t);e=(t,e)=>Xr(t,e,n),t[Fr]=e}return e}function Xr(t,e,n){!function(t,e,n){const r=512&e?0:-1,i=t.length,s=i+((e=64&e?256&e:!!i&<(t[i-1]))?-1:0);for(let e=0;e<s;e++)n(e-r,t[e]);if(e){t=t[i-1];for(const e in t)!isNaN(e)&&n(+e,t[e])}}(t,0|t[Q]|(n.T[1]?512:0),((t,r)=>{if(null!=r){var i=function(t,e){var n=t[e];if(n)return n;if((n=t.ga)&&(n=n[e])){var r=(n=Cr(n))[0].h;if(n=n[1]){const e=Vr(n),i=Pr(xr,Gr,jr,n).T;n=t.la?Mr(i,e):(t,n,s)=>r(t,n,s,i,e)}else n=r;return t[e]=n}}(n,t);i&&i(e,r,t)}})),(t=mt(t))&&function(t,e){or(t,t.g.end());for(let n=0;n<e.length;n++)or(t,D(e[n])||new Uint8Array(0))}(e,t)}function Hr(t,e){if(Array.isArray(e)){var n=0|e[Q];if(4&n)return e;for(var r=0,i=0;r<e.length;r++){const n=t(e[r]);null!=n&&(e[i++]=n)}return i<r&&(e.length=i),rt(e,-6145&(5|n)),2&n&&Object.freeze(e),e}}function Wr(t,e,n){return new Tr(t,e,n)}function zr(t,e,n){return new Tr(t,e,n)}function Kr(t,e,n){We(t,0|t[Q],e,n)}var Yr=Ar((function(t,e,n,r,i){return 2===t.h&&(t=Xn(t,De([void 0,void 0],r,!0),i),pt(r=0|e[Q]),(i=Xe(e,r,n))instanceof Ae?0!=(2&i.M)?((i=i.da()).push(t),We(e,r,n,i)):i.Ja(t):Array.isArray(i)?(2&(0|i[Q])&&We(e,r,n,i=Qe(i)),i.push(t)):We(e,r,n,[t]),!0)}),(function(t,e,n,r,i){if(e instanceof Ae)e.forEach(((e,s)=>{lr(t,n,De([s,e],r,!1),i)}));else if(Array.isArray(e))for(let s=0;s<e.length;s++){const o=e[s];Array.isArray(o)&&lr(t,n,De(o,r,!1),i)}}));function $r(t,e,n){if(e=function(t){if(null==t)return t;const e=typeof t;if(\"bigint\"===e)return String(Ht(64,t));if(Qt(t)){if(\"string\"===e)return oe(t);if(\"number\"===e)return se(t)}}(e),null!=e){if(\"string\"==typeof e)Qn(e);if(null!=e)switch(ar(t,n,0),typeof e){case\"number\":t=t.g,Ot(e),nr(t,Mt,Pt);break;case\"bigint\":n=BigInt.asUintN(64,e),n=new tr(Number(n&BigInt(4294967295)),Number(n>>BigInt(32))),nr(t.g,n.h,n.g);break;default:n=Qn(e),nr(t.g,n.h,n.g)}}}function qr(t,e,n){null!=(e=te(e))&&null!=e&&(ar(t,n,0),ir(t.g,e))}function Jr(t,e,n){null!=(e=Jt(e))&&(ar(t,n,0),t.g.g.push(e?1:0))}function Zr(t,e,n){null!=(e=fe(e))&&ur(t,n,c(e))}function Qr(t,e,n,r,i){lr(t,n,Or(e,r),i)}function ti(t,e,n){null==e||\"string\"==typeof e||e instanceof N||(C(e)?C(e)&&H(Z):e=void 0),null!=e&&ur(t,n,Ln(e).buffer)}function ei(t,e,n){return(5===t.h||2===t.h)&&(e=en(e,0|e[Q],n,!1),2==t.h?zn(t,Cn,e):e.push(Cn(t.g)),!0)}var ni=Wr((function(t,e,n){if(1!==t.h)return!1;var r=t.g;t=Pn(r);const i=Pn(r);r=2*(i>>31)+1;const s=i>>>20&2047;return t=4294967296*(1048575&i)+t,Kr(e,n,2047==s?t?NaN:r*(1/0):0==s?5e-324*r*t:r*Math.pow(2,s-1075)*(t+4503599627370496)),!0}),(function(t,e,n){null!=(e=qt(e))&&(ar(t,n,1),t=t.g,(n=It||=new DataView(new ArrayBuffer(8))).setFloat64(0,+e,!0),Mt=n.getUint32(0,!0),Pt=n.getUint32(4,!0),sr(t,Mt),sr(t,Pt))}),dr()),ri=Wr((function(t,e,n){return 5===t.h&&(Kr(e,n,Cn(t.g)),!0)}),(function(t,e,n){null!=(e=qt(e))&&(ar(t,n,5),t=t.g,Ut(e),sr(t,Mt))}),vr),ii=zr(ei,(function(t,e,n){if(null!=(e=Hr(qt,e)))for(let o=0;o<e.length;o++){var r=t,i=n,s=e[o];null!=s&&(ar(r,i,5),r=r.g,Ut(s),sr(r,Mt))}}),vr),si=zr(ei,(function(t,e,n){if(null!=(e=Hr(qt,e))&&e.length){ar(t,n,2),rr(t.g,4*e.length);for(let r=0;r<e.length;r++)n=t.g,Ut(e[r]),sr(n,Mt)}}),vr),oi=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,Rn(t.g,Nt)),!0)}),$r,_r),ai=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,0===(t=Rn(t.g,Nt))?void 0:t),!0)}),$r,_r),ci=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,Rn(t.g,Dt)),!0)}),(function(t,e,n){if(null!=(e=ue(e))){if(\"string\"==typeof e)qn(e);if(null!=e)switch(ar(t,n,0),typeof e){case\"number\":t=t.g,Ot(e),nr(t,Mt,Pt);break;case\"bigint\":n=BigInt.asUintN(64,e),n=new Jn(Number(n&BigInt(4294967295)),Number(n>>BigInt(32))),nr(t.g,n.h,n.g);break;default:n=qn(e),nr(t.g,n.h,n.g)}}}),dr()),hi=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,In(t.g)),!0)}),qr,mr),ui=zr((function(t,e,n){return(0===t.h||2===t.h)&&(e=en(e,0|e[Q],n,!1),2==t.h?zn(t,In,e):e.push(In(t.g)),!0)}),(function(t,e,n){if(null!=(e=Hr(te,e))&&e.length){n=cr(t,n);for(let n=0;n<e.length;n++)ir(t.g,e[n]);hr(t,n)}}),mr),li=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,0===(t=In(t.g))?void 0:t),!0)}),qr,mr),di=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,Fn(t.g)),!0)}),Jr,pr),fi=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,!1===(t=Fn(t.g))?void 0:t),!0)}),Jr,pr),pi=zr((function(t,e,n){return 2===t.h&&(t=Hn(t),en(e,0|e[Q],n,!1).push(t),!0)}),(function(t,e,n){if(null!=(e=Hr(fe,e)))for(let o=0;o<e.length;o++){var r=t,i=n,s=e[o];null!=s&&ur(r,i,c(s))}}),gr),gi=Wr((function(t,e,n){return 2===t.h&&(Kr(e,n,\"\"===(t=Hn(t))?void 0:t),!0)}),Zr,gr),mi=Wr((function(t,e,n){return 2===t.h&&(Kr(e,n,Hn(t)),!0)}),Zr,gr),yi=function(t,e,n=fr){return new Tr(t,e,n)}((function(t,e,n,r,i){return 2===t.h&&(r=De(void 0,r,!0),en(e,0|e[Q],n,!0).push(r),Xn(t,r,i),!0)}),(function(t,e,n,r,i){if(Array.isArray(e))for(let s=0;s<e.length;s++)Qr(t,e[s],n,r,i)})),_i=Ar((function(t,e,n,r,i,s){return 2===t.h&&(sn(e,0|e[Q],s,n),Xn(t,e=an(e,r,n),i),!0)}),Qr),vi=Wr((function(t,e,n){return 2===t.h&&(Kr(e,n,Wn(t)),!0)}),ti,Er),Ei=zr((function(t,e,n){return(0===t.h||2===t.h)&&(e=en(e,0|e[Q],n,!1),2==t.h?zn(t,Mn,e):e.push(Mn(t.g)),!0)}),(function(t,e,n){if(null!=(e=Hr(ee,e)))for(let o=0;o<e.length;o++){var r=t,i=n,s=e[o];null!=s&&(ar(r,i,0),rr(r.g,s))}}),yr),wi=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,0===(t=Mn(t.g))?void 0:t),!0)}),(function(t,e,n){null!=(e=ee(e))&&null!=e&&(ar(t,n,0),rr(t.g,e))}),yr),Ti=Wr((function(t,e,n){return 0===t.h&&(Kr(e,n,In(t.g)),!0)}),(function(t,e,n){null!=(e=te(e))&&(e=parseInt(e,10),ar(t,n,0),ir(t.g,e))}),wr);class Ai{constructor(t,e){this.h=t,this.g=e,this.l=hn,this.m=dn,this.defaultValue=void 0}register(){w(this)}}function bi(t,e){return new Ai(t,e)}function ki(t,e){return(n,r)=>{if(Kn.length){const t=Kn.pop();t.o(r),Un(t.g,n,r),n=t}else n=new class{constructor(t,e){if(Gn.length){const n=Gn.pop();Un(n,t,e),t=n}else t=new class{constructor(t,e){this.h=null,this.m=!1,this.g=this.l=this.j=0,Un(this,t,e)}clear(){this.h=null,this.m=!1,this.g=this.l=this.j=0,this.aa=!1}}(t,e);this.g=t,this.l=this.g.g,this.h=this.m=-1,this.o(e)}o({fa:t=!1}={}){this.fa=t}}(n,r);try{const r=new t,s=r.u;Nr(e)(s,n);var i=r}finally{n.g.clear(),n.m=-1,n.h=-1,Kn.length<100&&Kn.push(n)}return i}}function Si(t){return function(){const e=new class{constructor(){this.l=[],this.h=0,this.g=new class{constructor(){this.g=[]}length(){return this.g.length}end(){const t=this.g;return this.g=[],t}}}};Xr(this.u,e,Pr(xr,Gr,jr,t)),or(e,e.g.end());const n=new Uint8Array(e.h),r=e.l,i=r.length;let s=0;for(let t=0;t<i;t++){const e=r[t];n.set(e,s),s+=e.length}return e.l=[n],n}}var xi=class extends $n{constructor(t){super(t)}},Li=[0,gi,Wr((function(t,e,n){return 2===t.h&&(Kr(e,n,(t=Wn(t))===U()?void 0:t),!0)}),(function(t,e,n){if(null!=e){if(e instanceof $n){const r=e.Oa;return void(r&&(e=r(e),null!=e&&ur(t,n,Ln(e).buffer)))}if(Array.isArray(e))return}ti(t,e,n)}),Er)];let Ri,Fi=globalThis.trustedTypes;function Ii(t){void 0===Ri&&(Ri=function(){let t=null;if(!Fi)return t;try{const e=t=>t;t=Fi.createPolicy(\"goog#html\",{createHTML:e,createScript:e,createScriptURL:e})}catch(t){}return t}());var e=Ri;return new class{constructor(t){this.g=t}toString(){return this.g+\"\"}}(e?e.createScriptURL(t):t)}function Mi(t,...e){if(0===e.length)return Ii(t[0]);let n=t[0];for(let r=0;r<e.length;r++)n+=encodeURIComponent(e[r])+t[r+1];return Ii(n)}var Pi=[0,hi,Ti,di,-1,ui,Ti,-1],Ci=class extends $n{constructor(t){super(t)}},Oi=[0,di,mi,di,Ti,-1,zr((function(t,e,n){return(0===t.h||2===t.h)&&(e=en(e,0|e[Q],n,!1),2==t.h?zn(t,On,e):e.push(In(t.g)),!0)}),(function(t,e,n){if(null!=(e=Hr(te,e))&&e.length){n=cr(t,n);for(let n=0;n<e.length;n++)ir(t.g,e[n]);hr(t,n)}}),wr),mi,-1,[0,di,-1],Ti,di,-1],Ui=[0,mi,-2],Di=class extends $n{constructor(t){super(t)}},Ni=[0],Bi=[0,hi,di,1,di,-3],Gi=class extends $n{constructor(t){super(t,2)}},ji={};ji[336783863]=[0,mi,di,-1,hi,[0,[1,2,3,4,5,6,7,8,9],_i,Ni,_i,Oi,_i,Ui,_i,Bi,_i,Pi,_i,[0,mi,-2],_i,[0,mi,Ti],_i,[0,Ti,mi,-1],_i,[0,Ti,-1]],[0,mi],di,[0,[1,3],[2,4],_i,[0,ui],-1,_i,[0,pi],-1,yi,[0,mi,-1]],mi];var Vi=[0,ai,-1,fi,-3,ai,ui,gi,li,ai,-1,fi,li,fi,-2,gi];function Xi(t,e){tn(t,2,de(e),\"\")}function Hi(t,e){mn(t,3,e)}function Wi(t,e){mn(t,4,e)}var zi=class extends $n{constructor(t){super(t,500)}o(t){return dn(this,0,7,t)}},Ki=[-1,{}],Yi=[0,mi,1,Ki],$i=[0,mi,pi,Ki];function qi(t,e){yn(t,1,zi,e)}function Ji(t,e){mn(t,10,e)}function Zi(t,e){mn(t,15,e)}var Qi=class extends $n{constructor(t){super(t,500)}o(t){return dn(this,0,1001,t)}},ts=[-500,yi,[-500,gi,-1,pi,-3,[-2,ji,di],yi,Li,li,-1,Yi,$i,yi,[0,gi,fi],gi,Vi,li,pi,987,pi],4,yi,[-500,mi,-1,[-1,{}],998,mi],yi,[-500,mi,pi,-1,[-2,{},di],997,pi,-1],li,yi,[-500,mi,pi,Ki,998,pi],pi,li,Yi,$i,yi,[0,gi,-1,Ki],pi,-2,Vi,gi,-1,fi,[0,fi,wi],978,Ki,yi,Li];Qi.prototype.g=Si(ts);var es=ki(Qi,ts),ns=class extends $n{constructor(t){super(t)}},rs=class extends $n{constructor(t){super(t)}g(){return ln(this,ns,1)}},is=[0,yi,[0,hi,ri,mi,-1]],ss=ki(rs,is),os=class extends $n{constructor(t){super(t)}},as=class extends $n{constructor(t){super(t)}},cs=class extends $n{constructor(t){super(t)}h(){return hn(this,os,2)}g(){return ln(this,as,5)}},hs=ki(class extends $n{constructor(t){super(t)}},[0,pi,ui,si,[0,Ti,[0,hi,-3],[0,ri,-3],[0,hi,-1,[0,yi,[0,hi,-2]]],yi,[0,ri,-1,mi,ri]],mi,-1,oi,yi,[0,hi,ri],pi,oi]),us=class extends $n{constructor(t){super(t)}},ls=ki(class extends $n{constructor(t){super(t)}},[0,yi,[0,ri,-4]]),ds=class extends $n{constructor(t){super(t)}},fs=ki(class extends $n{constructor(t){super(t)}},[0,yi,[0,ri,-4]]),ps=class extends $n{constructor(t){super(t)}},gs=[0,hi,-1,si,Ti],ms=class extends $n{constructor(t){super(t)}};ms.prototype.g=Si([0,ri,-4,oi]);var ys=class extends $n{constructor(t){super(t)}},_s=ki(class extends $n{constructor(t){super(t)}},[0,yi,[0,1,hi,mi,is],oi]),vs=class extends $n{constructor(t){super(t)}},Es=class extends $n{constructor(t){super(t)}ma(){const t=Ke(this);return null==t?U():t}},ws=class extends $n{constructor(t){super(t)}},Ts=[1,2],As=ki(class extends $n{constructor(t){super(t)}},[0,yi,[0,Ts,_i,[0,si],_i,[0,vi],hi,mi],oi]),bs=class extends $n{constructor(t){super(t)}},ks=[0,mi,hi,ri,pi,-1],Ss=class extends $n{constructor(t){super(t)}},xs=[0,di,-1],Ls=class extends $n{constructor(t){super(t)}},Rs=[1,2,3,4,5],Fs=class extends $n{constructor(t){super(t)}g(){return null!=Ke(this)}h(){return null!=vn(this,2)}},Is=class extends $n{constructor(t){super(t)}g(){return Jt(Ve(this,2))??!1}},Ms=[0,vi,mi,[0,hi,oi,-1],[0,ci,oi]],Ps=[0,Ms,di,[0,Rs,_i,Bi,_i,Oi,_i,Pi,_i,Ni,_i,Ui],Ti],Cs=class extends $n{constructor(t){super(t)}},Os=[0,Ps,ri,-1,hi],Us=bi(502141897,Cs);ji[502141897]=Os;var Ds=ki(class extends $n{constructor(t){super(t)}},[0,[0,Ti,-1,ii,Ei],gs]),Ns=class extends $n{constructor(t){super(t)}},Bs=class extends $n{constructor(t){super(t)}},Gs=[0,Ps,ri,[0,Ps],di],js=[0,Ps,Os,Gs,ri,[0,[0,Ms]]],Vs=bi(508968150,Bs);ji[508968150]=js,ji[508968149]=Gs;var Xs=class extends $n{constructor(t){super(t)}},Hs=bi(513916220,Xs);ji[513916220]=[0,Ps,js,hi];var Ws=class extends $n{constructor(t){super(t)}h(){return hn(this,bs,2)}g(){He(this,2)}},zs=[0,Ps,ks];ji[478825465]=zs;var Ks=class extends $n{constructor(t){super(t)}},Ys=class extends $n{constructor(t){super(t)}},$s=class extends $n{constructor(t){super(t)}},qs=class extends $n{constructor(t){super(t)}},Js=class extends $n{constructor(t){super(t)}},Zs=[0,Ps,[0,Ps],zs,-1],Qs=[0,Ps,ri,hi],to=[0,Ps,ri],eo=[0,Ps,Qs,to,ri],no=bi(479097054,Js);ji[479097054]=[0,Ps,eo,Zs],ji[463370452]=Zs,ji[464864288]=Qs;var ro=bi(462713202,qs);ji[462713202]=eo,ji[474472470]=to;var io=class extends $n{constructor(t){super(t)}},so=class extends $n{constructor(t){super(t)}},oo=class extends $n{constructor(t){super(t)}},ao=class extends $n{constructor(t){super(t)}},co=[0,Ps,ri,-1,hi],ho=[0,Ps,ri,di];ao.prototype.g=Si([0,Ps,to,[0,Ps],Os,Gs,co,ho]);var uo=class extends $n{constructor(t){super(t)}},lo=bi(456383383,uo);ji[456383383]=[0,Ps,ks];var fo=class extends $n{constructor(t){super(t)}},po=bi(476348187,fo);ji[476348187]=[0,Ps,xs];var go=class extends $n{constructor(t){super(t)}},mo=class extends $n{constructor(t){super(t)}},yo=[0,Ti,-1],_o=bi(458105876,class extends $n{constructor(t){super(t)}g(){var t=this.u;const e=0|t[Q],n=2&e;return t=function(t,e,n){var r=mo;const i=2&e;let s=!1;if(null==n){if(i)return Ie();n=[]}else if(n.constructor===Ae){if(0==(2&n.M)||i)return n;n=n.da()}else Array.isArray(n)?s=!!(2&(0|n[Q])):n=[];if(i){if(!n.length)return Ie();s||(s=!0,it(n))}else s&&(s=!1,n=Qe(n));return s||(64&(0|n[Q])?n[Q]&=-33:32&e&&nt(n,32)),We(t,e,2,r=new Ae(n,r,ge,void 0)),r}(t,e,Xe(t,e,2)),!n&&mo&&(t.pa=!0),t}});ji[458105876]=[0,yo,Yr,[!0,oi,[0,mi,-1,pi]]];var vo=class extends $n{constructor(t){super(t)}},Eo=bi(458105758,vo);ji[458105758]=[0,Ps,mi,yo];var wo=class extends $n{constructor(t){super(t)}},To=bi(443442058,wo);ji[443442058]=[0,Ps,mi,hi,ri,pi,-1,di,ri],ji[514774813]=co;var Ao=class extends $n{constructor(t){super(t)}},bo=bi(516587230,Ao);function ko(t,e){return e=e?e.clone():new bs,void 0!==t.displayNamesLocale?He(e,1,de(t.displayNamesLocale)):void 0===t.displayNamesLocale&&He(e,1),void 0!==t.maxResults?Tn(e,2,t.maxResults):\"maxResults\"in t&&He(e,2),void 0!==t.scoreThreshold?An(e,3,t.scoreThreshold):\"scoreThreshold\"in t&&He(e,3),void 0!==t.categoryAllowlist?bn(e,4,t.categoryAllowlist):\"categoryAllowlist\"in t&&He(e,4),void 0!==t.categoryDenylist?bn(e,5,t.categoryDenylist):\"categoryDenylist\"in t&&He(e,5),e}function So(t,e=-1,n=\"\"){return{categories:t.map((t=>({index:_n(t,1)??0??-1,score:En(t,2)??0,categoryName:vn(t,3)??\"\"??\"\",displayName:vn(t,4)??\"\"??\"\"}))),headIndex:e,headName:n}}function xo(t){var e=$e(t,3,qt,Ye()),n=$e(t,2,te,Ye()),r=$e(t,1,fe,Ye()),i=$e(t,9,fe,Ye());const s={categories:[],keypoints:[]};for(let t=0;t<e.length;t++)s.categories.push({score:e[t],index:n[t]??-1,categoryName:r[t]??\"\",displayName:i[t]??\"\"});if((e=hn(t,cs,4)?.h())&&(s.boundingBox={originX:_n(e,1)??0,originY:_n(e,2)??0,width:_n(e,3)??0,height:_n(e,4)??0,angle:0}),hn(t,cs,4)?.g().length)for(const e of hn(t,cs,4).g())s.keypoints.push({x:ze(e,1)??0,y:ze(e,2)??0,score:ze(e,4)??0,label:vn(e,3)??\"\"});return s}function Lo(t){const e=[];for(const n of ln(t,ds,1))e.push({x:En(n,1)??0,y:En(n,2)??0,z:En(n,3)??0,visibility:En(n,4)??0});return e}function Ro(t){const e=[];for(const n of ln(t,us,1))e.push({x:En(n,1)??0,y:En(n,2)??0,z:En(n,3)??0,visibility:En(n,4)??0});return e}function Fo(t){return Array.from(t,(t=>t>127?t-256:t))}function Io(t,e){if(t.length!==e.length)throw Error(`Cannot compute cosine similarity between embeddings of different sizes (${t.length} vs. ${e.length}).`);let n=0,r=0,i=0;for(let s=0;s<t.length;s++)n+=t[s]*e[s],r+=t[s]*t[s],i+=e[s]*e[s];if(r<=0||i<=0)throw Error(\"Cannot compute cosine similarity on embedding with 0 norm.\");return n/Math.sqrt(r*i)}let Mo;ji[516587230]=[0,Ps,co,ho,ri],ji[518928384]=ho;const Po=new Uint8Array([0,97,115,109,1,0,0,0,1,5,1,96,0,1,123,3,2,1,0,10,10,1,8,0,65,0,253,15,253,98,11]);async function Co(){if(void 0===Mo)try{await WebAssembly.instantiate(Po),Mo=!0}catch{Mo=!1}return Mo}async function Oo(t,e=Mi``){const n=await Co()?\"wasm_internal\":\"wasm_nosimd_internal\";return{wasmLoaderPath:`${e}/${t}_${n}.js`,wasmBinaryPath:`${e}/${t}_${n}.wasm`}}var Uo=class{};function Do(){var t=navigator;return\"undefined\"!=typeof OffscreenCanvas&&(!function(t=navigator){return(t=t.userAgent).includes(\"Safari\")&&!t.includes(\"Chrome\")}(t)||!!((t=t.userAgent.match(/Version\\/([\\d]+).*Safari/))&&t.length>=1&&Number(t[1])>=17))}async function No(t){if(\"function\"!=typeof importScripts){const e=document.createElement(\"script\");return e.src=t.toString(),e.crossOrigin=\"anonymous\",new Promise(((t,n)=>{e.addEventListener(\"load\",(()=>{t()}),!1),e.addEventListener(\"error\",(t=>{n(t)}),!1),document.body.appendChild(e)}))}importScripts(t.toString())}function Bo(t){return void 0!==t.videoWidth?[t.videoWidth,t.videoHeight]:void 0!==t.naturalWidth?[t.naturalWidth,t.naturalHeight]:void 0!==t.displayWidth?[t.displayWidth,t.displayHeight]:[t.width,t.height]}function Go(t,e,n){t.m||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\"),n(e=t.i.stringToNewUTF8(e)),t.i._free(e)}function jo(t,e,n){if(!t.i.canvas)throw Error(\"No OpenGL canvas configured.\");if(n?t.i._bindTextureToStream(n):t.i._bindTextureToCanvas(),!(n=t.i.canvas.getContext(\"webgl2\")||t.i.canvas.getContext(\"webgl\")))throw Error(\"Failed to obtain WebGL context from the provided canvas. `getContext()` should only be invoked with `webgl` or `webgl2`.\");t.i.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!0),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),t.i.gpuOriginForWebTexturesIsBottomLeft&&n.pixelStorei(n.UNPACK_FLIP_Y_WEBGL,!1);const[r,i]=Bo(e);return!t.l||r===t.i.canvas.width&&i===t.i.canvas.height||(t.i.canvas.width=r,t.i.canvas.height=i),[r,i]}function Vo(t,e,n){t.m||console.error(\"No wasm multistream support detected: ensure dependency inclusion of :gl_graph_runner_internal_multi_input target\");const r=new Uint32Array(e.length);for(let n=0;n<e.length;n++)r[n]=t.i.stringToNewUTF8(e[n]);e=t.i._malloc(4*r.length),t.i.HEAPU32.set(r,e>>2),n(e);for(const e of r)t.i._free(e);t.i._free(e)}function Xo(t,e,n){t.i.simpleListeners=t.i.simpleListeners||{},t.i.simpleListeners[e]=n}function Ho(t,e,n){let r=[];t.i.simpleListeners=t.i.simpleListeners||{},t.i.simpleListeners[e]=(t,e,i)=>{e?(n(r,i),r=[]):r.push(t)}}Uo.forVisionTasks=function(t){return Oo(\"vision\",t)},Uo.forTextTasks=function(t){return Oo(\"text\",t)},Uo.forGenAiExperimentalTasks=function(t){return Oo(\"genai_experimental\",t)},Uo.forGenAiTasks=function(t){return Oo(\"genai\",t)},Uo.forAudioTasks=function(t){return Oo(\"audio\",t)},Uo.isSimdSupported=function(){return Co()};async function Wo(t,e,n,r){return t=await(async(t,e,n,r,i)=>{if(e&&await No(e),!self.ModuleFactory)throw Error(\"ModuleFactory not set.\");if(n&&(await No(n),!self.ModuleFactory))throw Error(\"ModuleFactory not set.\");return self.Module&&i&&((e=self.Module).locateFile=i.locateFile,i.mainScriptUrlOrBlob&&(e.mainScriptUrlOrBlob=i.mainScriptUrlOrBlob)),i=await self.ModuleFactory(self.Module||i),self.ModuleFactory=self.Module=void 0,new t(i,r)})(t,n.wasmLoaderPath,n.assetLoaderPath,e,{locateFile:t=>t.endsWith(\".wasm\")?n.wasmBinaryPath.toString():n.assetBinaryPath&&t.endsWith(\".data\")?n.assetBinaryPath.toString():t}),await t.o(r),t}function zo(t,e){const n=hn(t.baseOptions,Fs,1)||new Fs;\"string\"==typeof e?(He(n,2,de(e)),He(n,1)):e instanceof Uint8Array&&(He(n,1,dt(e,!1)),He(n,2)),dn(t.baseOptions,0,1,n)}function Ko(t){try{const e=t.G.length;if(1===e)throw Error(t.G[0].message);if(e>1)throw Error(\"Encountered multiple errors: \"+t.G.map((t=>t.message)).join(\", \"))}finally{t.G=[]}}function Yo(t,e){t.B=Math.max(t.B,e)}function $o(t,e){t.A=new zi,Xi(t.A,\"PassThroughCalculator\"),Hi(t.A,\"free_memory\"),Wi(t.A,\"free_memory_unused_out\"),Ji(e,\"free_memory\"),qi(e,t.A)}function qo(t,e){Hi(t.A,e),Wi(t.A,e+\"_unused_out\")}function Jo(t){t.g.addBoolToStream(!0,\"free_memory\",t.B)}var Zo=class{constructor(t){this.g=t,this.G=[],this.B=0,this.g.setAutoRenderToScreen(!1)}l(t,e=!0){if(e){const e=t.baseOptions||{};if(t.baseOptions?.modelAssetBuffer&&t.baseOptions?.modelAssetPath)throw Error(\"Cannot set both baseOptions.modelAssetPath and baseOptions.modelAssetBuffer\");if(!(hn(this.baseOptions,Fs,1)?.g()||hn(this.baseOptions,Fs,1)?.h()||t.baseOptions?.modelAssetBuffer||t.baseOptions?.modelAssetPath))throw Error(\"Either baseOptions.modelAssetPath or baseOptions.modelAssetBuffer must be set\");if(function(t,e){let n=hn(t.baseOptions,Ls,3);if(!n){var r=n=new Ls,i=new Di;fn(r,4,Rs,i)}\"delegate\"in e&&(\"GPU\"===e.delegate?(e=n,r=new Ci,fn(e,2,Rs,r)):(e=n,r=new Di,fn(e,4,Rs,r))),dn(t.baseOptions,0,3,n)}(this,e),e.modelAssetPath)return fetch(e.modelAssetPath.toString()).then((t=>{if(t.ok)return t.arrayBuffer();throw Error(`Failed to fetch model: ${e.modelAssetPath} (${t.status})`)})).then((t=>{try{this.g.i.FS_unlink(\"/model.dat\")}catch{}this.g.i.FS_createDataFile(\"/\",\"model.dat\",new Uint8Array(t),!0,!1,!1),zo(this,\"/model.dat\"),this.m(),this.J()}));if(e.modelAssetBuffer instanceof Uint8Array)zo(this,e.modelAssetBuffer);else if(e.modelAssetBuffer)return async function(t){const e=[];for(var n=0;;){const{done:r,value:i}=await t.read();if(r)break;e.push(i),n+=i.length}if(0===e.length)return new Uint8Array(0);if(1===e.length)return e[0];t=new Uint8Array(n),n=0;for(const r of e)t.set(r,n),n+=r.length;return t}(e.modelAssetBuffer).then((t=>{zo(this,t),this.m(),this.J()}))}return this.m(),this.J(),Promise.resolve()}J(){}ca(){let t;if(this.g.ca((e=>{t=es(e)})),!t)throw Error(\"Failed to retrieve CalculatorGraphConfig\");return t}setGraph(t,e){this.g.attachErrorListener(((t,e)=>{this.G.push(Error(e))})),this.g.Ha(),this.g.setGraph(t,e),this.A=void 0,Ko(this)}finishProcessing(){this.g.finishProcessing(),Ko(this)}close(){this.A=void 0,this.g.closeGraph()}};function Qo(t,e){if(!t)throw Error(`Unable to obtain required WebGL resource: ${e}`);return t}Zo.prototype.close=Zo.prototype.close;class ta{constructor(t,e,n,r){this.g=t,this.h=e,this.m=n,this.l=r}bind(){this.g.bindVertexArray(this.h)}close(){this.g.deleteVertexArray(this.h),this.g.deleteBuffer(this.m),this.g.deleteBuffer(this.l)}}function ea(t,e,n){const r=t.g;if(n=Qo(r.createShader(n),\"Failed to create WebGL shader\"),r.shaderSource(n,e),r.compileShader(n),!r.getShaderParameter(n,r.COMPILE_STATUS))throw Error(`Could not compile WebGL shader: ${r.getShaderInfoLog(n)}`);return r.attachShader(t.h,n),n}function na(t,e){const n=t.g,r=Qo(n.createVertexArray(),\"Failed to create vertex array\");n.bindVertexArray(r);const i=Qo(n.createBuffer(),\"Failed to create buffer\");n.bindBuffer(n.ARRAY_BUFFER,i),n.enableVertexAttribArray(t.P),n.vertexAttribPointer(t.P,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),n.STATIC_DRAW);const s=Qo(n.createBuffer(),\"Failed to create buffer\");return n.bindBuffer(n.ARRAY_BUFFER,s),n.enableVertexAttribArray(t.J),n.vertexAttribPointer(t.J,2,n.FLOAT,!1,0,0),n.bufferData(n.ARRAY_BUFFER,new Float32Array(e?[0,1,0,0,1,0,1,1]:[0,0,0,1,1,1,1,0]),n.STATIC_DRAW),n.bindBuffer(n.ARRAY_BUFFER,null),n.bindVertexArray(null),new ta(n,r,i,s)}function ra(t,e){if(t.g){if(e!==t.g)throw Error(\"Cannot change GL context once initialized\")}else t.g=e}function ia(t,e,n,r){return ra(t,e),t.h||(t.m(),t.C()),n?(t.s||(t.s=na(t,!0)),n=t.s):(t.v||(t.v=na(t,!1)),n=t.v),e.useProgram(t.h),n.bind(),t.l(),t=r(),n.g.bindVertexArray(null),t}function sa(t,e,n){return ra(t,e),t=Qo(e.createTexture(),\"Failed to create texture\"),e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,n??e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,n??e.LINEAR),e.bindTexture(e.TEXTURE_2D,null),t}function oa(t,e,n){ra(t,e),t.A||(t.A=Qo(e.createFramebuffer(),\"Failed to create framebuffe.\")),e.bindFramebuffer(e.FRAMEBUFFER,t.A),e.framebufferTexture2D(e.FRAMEBUFFER,e.COLOR_ATTACHMENT0,e.TEXTURE_2D,n,0)}function aa(t){t.g?.bindFramebuffer(t.g.FRAMEBUFFER,null)}var ca=class{G(){return\"\\n precision mediump float;\\n varying vec2 vTex;\\n uniform sampler2D inputTexture;\\n void main() {\\n gl_FragColor = texture2D(inputTexture, vTex);\\n }\\n \"}m(){const t=this.g;if(this.h=Qo(t.createProgram(),\"Failed to create WebGL program\"),this.Z=ea(this,\"\\n attribute vec2 aVertex;\\n attribute vec2 aTex;\\n varying vec2 vTex;\\n void main(void) {\\n gl_Position = vec4(aVertex, 0.0, 1.0);\\n vTex = aTex;\\n }\",t.VERTEX_SHADER),this.Y=ea(this,this.G(),t.FRAGMENT_SHADER),t.linkProgram(this.h),!t.getProgramParameter(this.h,t.LINK_STATUS))throw Error(`Error during program linking: ${t.getProgramInfoLog(this.h)}`);this.P=t.getAttribLocation(this.h,\"aVertex\"),this.J=t.getAttribLocation(this.h,\"aTex\")}C(){}l(){}close(){if(this.h){const t=this.g;t.deleteProgram(this.h),t.deleteShader(this.Z),t.deleteShader(this.Y)}this.A&&this.g.deleteFramebuffer(this.A),this.v&&this.v.close(),this.s&&this.s.close()}};var ha=class extends ca{G(){return\"\\n precision mediump float;\\n uniform sampler2D backgroundTexture;\\n uniform sampler2D maskTexture;\\n uniform sampler2D colorMappingTexture;\\n varying vec2 vTex;\\n void main() {\\n vec4 backgroundColor = texture2D(backgroundTexture, vTex);\\n float category = texture2D(maskTexture, vTex).r;\\n vec4 categoryColor = texture2D(colorMappingTexture, vec2(category, 0.0));\\n gl_FragColor = mix(backgroundColor, categoryColor, categoryColor.a);\\n }\\n \"}C(){const t=this.g;t.activeTexture(t.TEXTURE1),this.B=sa(this,t,t.LINEAR),t.activeTexture(t.TEXTURE2),this.j=sa(this,t,t.NEAREST)}m(){super.m();const t=this.g;this.L=Qo(t.getUniformLocation(this.h,\"backgroundTexture\"),\"Uniform location\"),this.U=Qo(t.getUniformLocation(this.h,\"colorMappingTexture\"),\"Uniform location\"),this.K=Qo(t.getUniformLocation(this.h,\"maskTexture\"),\"Uniform location\")}l(){super.l();const t=this.g;t.uniform1i(this.K,0),t.uniform1i(this.L,1),t.uniform1i(this.U,2)}close(){this.B&&this.g.deleteTexture(this.B),this.j&&this.g.deleteTexture(this.j),super.close()}},ua=class extends ca{G(){return\"\\n precision mediump float;\\n uniform sampler2D maskTexture;\\n uniform sampler2D defaultTexture;\\n uniform sampler2D overlayTexture;\\n varying vec2 vTex;\\n void main() {\\n float confidence = texture2D(maskTexture, vTex).r;\\n vec4 defaultColor = texture2D(defaultTexture, vTex);\\n vec4 overlayColor = texture2D(overlayTexture, vTex);\\n // Apply the alpha from the overlay and merge in the default color\\n overlayColor = mix(defaultColor, overlayColor, overlayColor.a);\\n gl_FragColor = mix(defaultColor, overlayColor, confidence);\\n }\\n \"}C(){const t=this.g;t.activeTexture(t.TEXTURE1),this.j=sa(this,t),t.activeTexture(t.TEXTURE2),this.B=sa(this,t)}m(){super.m();const t=this.g;this.K=Qo(t.getUniformLocation(this.h,\"defaultTexture\"),\"Uniform location\"),this.L=Qo(t.getUniformLocation(this.h,\"overlayTexture\"),\"Uniform location\"),this.H=Qo(t.getUniformLocation(this.h,\"maskTexture\"),\"Uniform location\")}l(){super.l();const t=this.g;t.uniform1i(this.H,0),t.uniform1i(this.K,1),t.uniform1i(this.L,2)}close(){this.j&&this.g.deleteTexture(this.j),this.B&&this.g.deleteTexture(this.B),super.close()}};function la(t,e){switch(e){case 0:return t.g.find((t=>t instanceof Uint8Array));case 1:return t.g.find((t=>t instanceof Float32Array));case 2:return t.g.find((t=>\"undefined\"!=typeof WebGLTexture&&t instanceof WebGLTexture));default:throw Error(`Type is not supported: ${e}`)}}function da(t){var e=la(t,1);if(!e){if(e=la(t,0))e=new Float32Array(e).map((t=>t/255));else{e=new Float32Array(t.width*t.height);const r=pa(t);var n=ma(t);if(oa(n,r,fa(t)),\"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod\".split(\";\").includes(navigator.platform)||navigator.userAgent.includes(\"Mac\")&&\"document\"in self&&\"ontouchend\"in self.document){n=new Float32Array(t.width*t.height*4),r.readPixels(0,0,t.width,t.height,r.RGBA,r.FLOAT,n);for(let t=0,r=0;t<e.length;++t,r+=4)e[t]=n[r]}else r.readPixels(0,0,t.width,t.height,r.RED,r.FLOAT,e)}t.g.push(e)}return e}function fa(t){let e=la(t,2);if(!e){const n=pa(t);e=ya(t);const r=da(t),i=ga(t);n.texImage2D(n.TEXTURE_2D,0,i,t.width,t.height,0,n.RED,n.FLOAT,r),_a(t)}return e}function pa(t){if(!t.canvas)throw Error(\"Conversion to different image formats require that a canvas is passed when initializing the image.\");return t.h||(t.h=Qo(t.canvas.getContext(\"webgl2\"),\"You cannot use a canvas that is already bound to a different type of rendering context.\")),t.h}function ga(t){if(t=pa(t),!va)if(t.getExtension(\"EXT_color_buffer_float\")&&t.getExtension(\"OES_texture_float_linear\")&&t.getExtension(\"EXT_float_blend\"))va=t.R32F;else{if(!t.getExtension(\"EXT_color_buffer_half_float\"))throw Error(\"GPU does not fully support 4-channel float32 or float16 formats\");va=t.R16F}return va}function ma(t){return t.l||(t.l=new ca),t.l}function ya(t){const e=pa(t);e.viewport(0,0,t.width,t.height),e.activeTexture(e.TEXTURE0);let n=la(t,2);return n||(n=sa(ma(t),e,t.m?e.LINEAR:e.NEAREST),t.g.push(n),t.j=!0),e.bindTexture(e.TEXTURE_2D,n),n}function _a(t){t.h.bindTexture(t.h.TEXTURE_2D,null)}var va,Ea=class{constructor(t,e,n,r,i,s,o){this.g=t,this.m=e,this.j=n,this.canvas=r,this.l=i,this.width=s,this.height=o,this.j&&(0===--wa&&console.error(\"You seem to be creating MPMask instances without invoking .close(). This leaks resources.\"))}Da(){return!!la(this,0)}ja(){return!!la(this,1)}R(){return!!la(this,2)}ia(){return(e=la(t=this,0))||(e=da(t),e=new Uint8Array(e.map((t=>255*t))),t.g.push(e)),e;var t,e}ha(){return da(this)}N(){return fa(this)}clone(){const t=[];for(const e of this.g){let n;if(e instanceof Uint8Array)n=new Uint8Array(e);else if(e instanceof Float32Array)n=new Float32Array(e);else{if(!(e instanceof WebGLTexture))throw Error(`Type is not supported: ${e}`);{const t=pa(this),e=ma(this);t.activeTexture(t.TEXTURE1),n=sa(e,t,this.m?t.LINEAR:t.NEAREST),t.bindTexture(t.TEXTURE_2D,n);const r=ga(this);t.texImage2D(t.TEXTURE_2D,0,r,this.width,this.height,0,t.RED,t.FLOAT,null),t.bindTexture(t.TEXTURE_2D,null),oa(e,t,n),ia(e,t,!1,(()=>{ya(this),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),_a(this)})),aa(e),_a(this)}}t.push(n)}return new Ea(t,this.m,this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&pa(this).deleteTexture(la(this,2)),wa=-1}};Ea.prototype.close=Ea.prototype.close,Ea.prototype.clone=Ea.prototype.clone,Ea.prototype.getAsWebGLTexture=Ea.prototype.N,Ea.prototype.getAsFloat32Array=Ea.prototype.ha,Ea.prototype.getAsUint8Array=Ea.prototype.ia,Ea.prototype.hasWebGLTexture=Ea.prototype.R,Ea.prototype.hasFloat32Array=Ea.prototype.ja,Ea.prototype.hasUint8Array=Ea.prototype.Da;var wa=250;const Ta={color:\"white\",lineWidth:4,radius:6};function Aa(t){return{...Ta,fillColor:(t=t||{}).color,...t}}function ba(t,e){return t instanceof Function?t(e):t}function ka(t,e,n){return Math.max(Math.min(e,n),Math.min(Math.max(e,n),t))}function Sa(t){if(!t.l)throw Error(\"CPU rendering requested but CanvasRenderingContext2D not provided.\");return t.l}function xa(t){if(!t.j)throw Error(\"GPU rendering requested but WebGL2RenderingContext not provided.\");return t.j}function La(t,e,n){if(e.R())n(e.N());else{const r=e.ja()?e.ha():e.ia();t.m=t.m??new ca;const i=xa(t);n((t=new Ea([r],e.m,!1,i.canvas,t.m,e.width,e.height)).N()),t.close()}}function Ra(t,e,n,r){const i=function(t){return t.g||(t.g=new ha),t.g}(t),s=xa(t),o=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n;ia(i,s,!0,(()=>{!function(t,e,n,r){const i=t.g;if(i.activeTexture(i.TEXTURE0),i.bindTexture(i.TEXTURE_2D,e),i.activeTexture(i.TEXTURE1),i.bindTexture(i.TEXTURE_2D,t.B),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,i.RGBA,i.UNSIGNED_BYTE,n),t.H&&function(t,e){if(t!==e)return!1;t=t.entries(),e=e.entries();for(const[r,i]of t){t=r;const s=i;var n=e.next();if(n.done)return!1;const[o,a]=n.value;if(n=a,t!==o||s[0]!==n[0]||s[1]!==n[1]||s[2]!==n[2]||s[3]!==n[3])return!1}return!!e.next().done}(t.H,r))i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,t.j);else{t.H=r;const e=Array(1024).fill(0);r.forEach(((t,n)=>{if(4!==t.length)throw Error(`Color at index ${n} is not a four-channel value.`);e[4*n]=t[0],e[4*n+1]=t[1],e[4*n+2]=t[2],e[4*n+3]=t[3]})),i.activeTexture(i.TEXTURE2),i.bindTexture(i.TEXTURE_2D,t.j),i.texImage2D(i.TEXTURE_2D,0,i.RGBA,256,1,0,i.RGBA,i.UNSIGNED_BYTE,new Uint8Array(e))}}(i,e,o,r),s.clearColor(0,0,0,0),s.clear(s.COLOR_BUFFER_BIT),s.drawArrays(s.TRIANGLE_FAN,0,4);const t=i.g;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,null)}))}function Fa(t,e,n,r){const i=xa(t),s=function(t){return t.h||(t.h=new ua),t.h}(t),o=Array.isArray(n)?new ImageData(new Uint8ClampedArray(n),1,1):n,a=Array.isArray(r)?new ImageData(new Uint8ClampedArray(r),1,1):r;ia(s,i,!0,(()=>{var t=s.g;t.activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,s.j),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,o),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,s.B),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,a),i.clearColor(0,0,0,0),i.clear(i.COLOR_BUFFER_BIT),i.drawArrays(i.TRIANGLE_FAN,0,4),i.bindTexture(i.TEXTURE_2D,null),(t=s.g).activeTexture(t.TEXTURE0),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE1),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE2),t.bindTexture(t.TEXTURE_2D,null)}))}var Ia=class{constructor(t,e){\"undefined\"!=typeof CanvasRenderingContext2D&&t instanceof CanvasRenderingContext2D||t instanceof OffscreenCanvasRenderingContext2D?(this.l=t,this.j=e):this.j=t}wa(t,e){if(t){var n=Sa(this);e=Aa(e),n.save();var r=n.canvas,i=0;for(const s of t)n.fillStyle=ba(e.fillColor,{index:i,from:s}),n.strokeStyle=ba(e.color,{index:i,from:s}),n.lineWidth=ba(e.lineWidth,{index:i,from:s}),(t=new Path2D).arc(s.x*r.width,s.y*r.height,ba(e.radius,{index:i,from:s}),0,2*Math.PI),n.fill(t),n.stroke(t),++i;n.restore()}}va(t,e,n){if(t&&e){var r=Sa(this);n=Aa(n),r.save();var i=r.canvas,s=0;for(const o of e){r.beginPath(),e=t[o.start];const a=t[o.end];e&&a&&(r.strokeStyle=ba(n.color,{index:s,from:e,to:a}),r.lineWidth=ba(n.lineWidth,{index:s,from:e,to:a}),r.moveTo(e.x*i.width,e.y*i.height),r.lineTo(a.x*i.width,a.y*i.height)),++s,r.stroke()}r.restore()}}sa(t,e){const n=Sa(this);e=Aa(e),n.save(),n.beginPath(),n.lineWidth=ba(e.lineWidth,{}),n.strokeStyle=ba(e.color,{}),n.fillStyle=ba(e.fillColor,{}),n.moveTo(t.originX,t.originY),n.lineTo(t.originX+t.width,t.originY),n.lineTo(t.originX+t.width,t.originY+t.height),n.lineTo(t.originX,t.originY+t.height),n.lineTo(t.originX,t.originY),n.stroke(),n.fill(),n.restore()}ta(t,e,n=[0,0,0,255]){this.l?function(t,e,n,r){const i=xa(t);La(t,e,(e=>{Ra(t,e,n,r),(e=Sa(t)).drawImage(i.canvas,0,0,e.canvas.width,e.canvas.height)}))}(this,t,n,e):Ra(this,t.N(),n,e)}ua(t,e,n){this.l?function(t,e,n,r){const i=xa(t);La(t,e,(e=>{Fa(t,e,n,r),(e=Sa(t)).drawImage(i.canvas,0,0,e.canvas.width,e.canvas.height)}))}(this,t,e,n):Fa(this,t.N(),e,n)}close(){this.g?.close(),this.g=void 0,this.h?.close(),this.h=void 0,this.m?.close(),this.m=void 0}};function Ma(t,e){switch(e){case 0:return t.g.find((t=>t instanceof ImageData));case 1:return t.g.find((t=>\"undefined\"!=typeof ImageBitmap&&t instanceof ImageBitmap));case 2:return t.g.find((t=>\"undefined\"!=typeof WebGLTexture&&t instanceof WebGLTexture));default:throw Error(`Type is not supported: ${e}`)}}function Pa(t){var e=Ma(t,0);if(!e){e=Oa(t);const n=Ua(t),r=new Uint8Array(t.width*t.height*4);oa(n,e,Ca(t)),e.readPixels(0,0,t.width,t.height,e.RGBA,e.UNSIGNED_BYTE,r),aa(n),e=new ImageData(new Uint8ClampedArray(r.buffer),t.width,t.height),t.g.push(e)}return e}function Ca(t){let e=Ma(t,2);if(!e){const n=Oa(t);e=Da(t);const r=Ma(t,1)||Pa(t);n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,r),Na(t)}return e}function Oa(t){if(!t.canvas)throw Error(\"Conversion to different image formats require that a canvas is passed when initializing the image.\");return t.h||(t.h=Qo(t.canvas.getContext(\"webgl2\"),\"You cannot use a canvas that is already bound to a different type of rendering context.\")),t.h}function Ua(t){return t.l||(t.l=new ca),t.l}function Da(t){const e=Oa(t);e.viewport(0,0,t.width,t.height),e.activeTexture(e.TEXTURE0);let n=Ma(t,2);return n||(n=sa(Ua(t),e),t.g.push(n),t.m=!0),e.bindTexture(e.TEXTURE_2D,n),n}function Na(t){t.h.bindTexture(t.h.TEXTURE_2D,null)}function Ba(t){const e=Oa(t);return ia(Ua(t),e,!0,(()=>function(t,e){const n=t.canvas;if(n.width===t.width&&n.height===t.height)return e();const r=n.width,i=n.height;return n.width=t.width,n.height=t.height,t=e(),n.width=r,n.height=i,t}(t,(()=>{if(e.bindFramebuffer(e.FRAMEBUFFER,null),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT),e.drawArrays(e.TRIANGLE_FAN,0,4),!(t.canvas instanceof OffscreenCanvas))throw Error(\"Conversion to ImageBitmap requires that the MediaPipe Tasks is initialized with an OffscreenCanvas\");return t.canvas.transferToImageBitmap()}))))}Ia.prototype.close=Ia.prototype.close,Ia.prototype.drawConfidenceMask=Ia.prototype.ua,Ia.prototype.drawCategoryMask=Ia.prototype.ta,Ia.prototype.drawBoundingBox=Ia.prototype.sa,Ia.prototype.drawConnectors=Ia.prototype.va,Ia.prototype.drawLandmarks=Ia.prototype.wa,Ia.lerp=function(t,e,n,r,i){return ka(r*(1-(t-e)/(n-e))+i*(1-(n-t)/(n-e)),r,i)},Ia.clamp=ka;var Ga=class{constructor(t,e,n,r,i,s,o){this.g=t,this.j=e,this.m=n,this.canvas=r,this.l=i,this.width=s,this.height=o,(this.j||this.m)&&(0===--ja&&console.error(\"You seem to be creating MPImage instances without invoking .close(). This leaks resources.\"))}Ca(){return!!Ma(this,0)}ka(){return!!Ma(this,1)}R(){return!!Ma(this,2)}Aa(){return Pa(this)}za(){var t=Ma(this,1);return t||(Ca(this),Da(this),t=Ba(this),Na(this),this.g.push(t),this.j=!0),t}N(){return Ca(this)}clone(){const t=[];for(const e of this.g){let n;if(e instanceof ImageData)n=new ImageData(e.data,this.width,this.height);else if(e instanceof WebGLTexture){const t=Oa(this),e=Ua(this);t.activeTexture(t.TEXTURE1),n=sa(e,t),t.bindTexture(t.TEXTURE_2D,n),t.texImage2D(t.TEXTURE_2D,0,t.RGBA,this.width,this.height,0,t.RGBA,t.UNSIGNED_BYTE,null),t.bindTexture(t.TEXTURE_2D,null),oa(e,t,n),ia(e,t,!1,(()=>{Da(this),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.drawArrays(t.TRIANGLE_FAN,0,4),Na(this)})),aa(e),Na(this)}else{if(!(e instanceof ImageBitmap))throw Error(`Type is not supported: ${e}`);Ca(this),Da(this),n=Ba(this),Na(this)}t.push(n)}return new Ga(t,this.ka(),this.R(),this.canvas,this.l,this.width,this.height)}close(){this.j&&Ma(this,1).close(),this.m&&Oa(this).deleteTexture(Ma(this,2)),ja=-1}};Ga.prototype.close=Ga.prototype.close,Ga.prototype.clone=Ga.prototype.clone,Ga.prototype.getAsWebGLTexture=Ga.prototype.N,Ga.prototype.getAsImageBitmap=Ga.prototype.za,Ga.prototype.getAsImageData=Ga.prototype.Aa,Ga.prototype.hasWebGLTexture=Ga.prototype.R,Ga.prototype.hasImageBitmap=Ga.prototype.ka,Ga.prototype.hasImageData=Ga.prototype.Ca;var ja=250;function Va(...t){return t.map((([t,e])=>({start:t,end:e})))}const Xa=function(t){return class extends t{Ha(){this.i._registerModelResourcesGraphService()}}}((Ha=class{constructor(t,e){this.l=!0,this.i=t,this.g=null,this.h=0,this.m=\"function\"==typeof this.i._addIntToInputStream,void 0!==e?this.i.canvas=e:Do()?this.i.canvas=new OffscreenCanvas(1,1):(console.warn(\"OffscreenCanvas not supported and GraphRunner constructor glCanvas parameter is undefined. Creating backup canvas.\"),this.i.canvas=document.createElement(\"canvas\"))}async initializeGraph(t){const e=await(await fetch(t)).arrayBuffer();t=!(t.endsWith(\".pbtxt\")||t.endsWith(\".textproto\")),this.setGraph(new Uint8Array(e),t)}setGraphFromString(t){this.setGraph((new TextEncoder).encode(t),!1)}setGraph(t,e){const n=t.length,r=this.i._malloc(n);this.i.HEAPU8.set(t,r),e?this.i._changeBinaryGraph(n,r):this.i._changeTextGraph(n,r),this.i._free(r)}configureAudio(t,e,n,r,i){this.i._configureAudio||console.warn('Attempting to use configureAudio without support for input audio. Is build dep \":gl_graph_runner_audio\" missing?'),Go(this,r||\"input_audio\",(r=>{Go(this,i=i||\"audio_header\",(i=>{this.i._configureAudio(r,i,t,e??0,n)}))}))}setAutoResizeCanvas(t){this.l=t}setAutoRenderToScreen(t){this.i._setAutoRenderToScreen(t)}setGpuBufferVerticalFlip(t){this.i.gpuOriginForWebTexturesIsBottomLeft=t}ca(t){Xo(this,\"__graph_config__\",(e=>{t(e)})),Go(this,\"__graph_config__\",(t=>{this.i._getGraphConfig(t,void 0)})),delete this.i.simpleListeners.__graph_config__}attachErrorListener(t){this.i.errorListener=t}attachEmptyPacketListener(t,e){this.i.emptyPacketListeners=this.i.emptyPacketListeners||{},this.i.emptyPacketListeners[t]=e}addAudioToStream(t,e,n){this.addAudioToStreamWithShape(t,0,0,e,n)}addAudioToStreamWithShape(t,e,n,r,i){const s=4*t.length;this.h!==s&&(this.g&&this.i._free(this.g),this.g=this.i._malloc(s),this.h=s),this.i.HEAPF32.set(t,this.g/4),Go(this,r,(t=>{this.i._addAudioToInputStream(this.g,e,n,t,i)}))}addGpuBufferToStream(t,e,n){Go(this,e,(e=>{const[r,i]=jo(this,t,e);this.i._addBoundTextureToStream(e,r,i,n)}))}addBoolToStream(t,e,n){Go(this,e,(e=>{this.i._addBoolToInputStream(t,e,n)}))}addDoubleToStream(t,e,n){Go(this,e,(e=>{this.i._addDoubleToInputStream(t,e,n)}))}addFloatToStream(t,e,n){Go(this,e,(e=>{this.i._addFloatToInputStream(t,e,n)}))}addIntToStream(t,e,n){Go(this,e,(e=>{this.i._addIntToInputStream(t,e,n)}))}addUintToStream(t,e,n){Go(this,e,(e=>{this.i._addUintToInputStream(t,e,n)}))}addStringToStream(t,e,n){Go(this,e,(e=>{Go(this,t,(t=>{this.i._addStringToInputStream(t,e,n)}))}))}addStringRecordToStream(t,e,n){Go(this,e,(e=>{Vo(this,Object.keys(t),(r=>{Vo(this,Object.values(t),(i=>{this.i._addFlatHashMapToInputStream(r,i,Object.keys(t).length,e,n)}))}))}))}addProtoToStream(t,e,n,r){Go(this,n,(n=>{Go(this,e,(e=>{const i=this.i._malloc(t.length);this.i.HEAPU8.set(t,i),this.i._addProtoToInputStream(i,t.length,e,n,r),this.i._free(i)}))}))}addEmptyPacketToStream(t,e){Go(this,t,(t=>{this.i._addEmptyPacketToInputStream(t,e)}))}addBoolVectorToStream(t,e,n){Go(this,e,(e=>{const r=this.i._allocateBoolVector(t.length);if(!r)throw Error(\"Unable to allocate new bool vector on heap.\");for(const e of t)this.i._addBoolVectorEntry(r,e);this.i._addBoolVectorToInputStream(r,e,n)}))}addDoubleVectorToStream(t,e,n){Go(this,e,(e=>{const r=this.i._allocateDoubleVector(t.length);if(!r)throw Error(\"Unable to allocate new double vector on heap.\");for(const e of t)this.i._addDoubleVectorEntry(r,e);this.i._addDoubleVectorToInputStream(r,e,n)}))}addFloatVectorToStream(t,e,n){Go(this,e,(e=>{const r=this.i._allocateFloatVector(t.length);if(!r)throw Error(\"Unable to allocate new float vector on heap.\");for(const e of t)this.i._addFloatVectorEntry(r,e);this.i._addFloatVectorToInputStream(r,e,n)}))}addIntVectorToStream(t,e,n){Go(this,e,(e=>{const r=this.i._allocateIntVector(t.length);if(!r)throw Error(\"Unable to allocate new int vector on heap.\");for(const e of t)this.i._addIntVectorEntry(r,e);this.i._addIntVectorToInputStream(r,e,n)}))}addUintVectorToStream(t,e,n){Go(this,e,(e=>{const r=this.i._allocateUintVector(t.length);if(!r)throw Error(\"Unable to allocate new unsigned int vector on heap.\");for(const e of t)this.i._addUintVectorEntry(r,e);this.i._addUintVectorToInputStream(r,e,n)}))}addStringVectorToStream(t,e,n){Go(this,e,(e=>{const r=this.i._allocateStringVector(t.length);if(!r)throw Error(\"Unable to allocate new string vector on heap.\");for(const e of t)Go(this,e,(t=>{this.i._addStringVectorEntry(r,t)}));this.i._addStringVectorToInputStream(r,e,n)}))}addBoolToInputSidePacket(t,e){Go(this,e,(e=>{this.i._addBoolToInputSidePacket(t,e)}))}addDoubleToInputSidePacket(t,e){Go(this,e,(e=>{this.i._addDoubleToInputSidePacket(t,e)}))}addFloatToInputSidePacket(t,e){Go(this,e,(e=>{this.i._addFloatToInputSidePacket(t,e)}))}addIntToInputSidePacket(t,e){Go(this,e,(e=>{this.i._addIntToInputSidePacket(t,e)}))}addUintToInputSidePacket(t,e){Go(this,e,(e=>{this.i._addUintToInputSidePacket(t,e)}))}addStringToInputSidePacket(t,e){Go(this,e,(e=>{Go(this,t,(t=>{this.i._addStringToInputSidePacket(t,e)}))}))}addProtoToInputSidePacket(t,e,n){Go(this,n,(n=>{Go(this,e,(e=>{const r=this.i._malloc(t.length);this.i.HEAPU8.set(t,r),this.i._addProtoToInputSidePacket(r,t.length,e,n),this.i._free(r)}))}))}addBoolVectorToInputSidePacket(t,e){Go(this,e,(e=>{const n=this.i._allocateBoolVector(t.length);if(!n)throw Error(\"Unable to allocate new bool vector on heap.\");for(const e of t)this.i._addBoolVectorEntry(n,e);this.i._addBoolVectorToInputSidePacket(n,e)}))}addDoubleVectorToInputSidePacket(t,e){Go(this,e,(e=>{const n=this.i._allocateDoubleVector(t.length);if(!n)throw Error(\"Unable to allocate new double vector on heap.\");for(const e of t)this.i._addDoubleVectorEntry(n,e);this.i._addDoubleVectorToInputSidePacket(n,e)}))}addFloatVectorToInputSidePacket(t,e){Go(this,e,(e=>{const n=this.i._allocateFloatVector(t.length);if(!n)throw Error(\"Unable to allocate new float vector on heap.\");for(const e of t)this.i._addFloatVectorEntry(n,e);this.i._addFloatVectorToInputSidePacket(n,e)}))}addIntVectorToInputSidePacket(t,e){Go(this,e,(e=>{const n=this.i._allocateIntVector(t.length);if(!n)throw Error(\"Unable to allocate new int vector on heap.\");for(const e of t)this.i._addIntVectorEntry(n,e);this.i._addIntVectorToInputSidePacket(n,e)}))}addUintVectorToInputSidePacket(t,e){Go(this,e,(e=>{const n=this.i._allocateUintVector(t.length);if(!n)throw Error(\"Unable to allocate new unsigned int vector on heap.\");for(const e of t)this.i._addUintVectorEntry(n,e);this.i._addUintVectorToInputSidePacket(n,e)}))}addStringVectorToInputSidePacket(t,e){Go(this,e,(e=>{const n=this.i._allocateStringVector(t.length);if(!n)throw Error(\"Unable to allocate new string vector on heap.\");for(const e of t)Go(this,e,(t=>{this.i._addStringVectorEntry(n,t)}));this.i._addStringVectorToInputSidePacket(n,e)}))}attachBoolListener(t,e){Xo(this,t,e),Go(this,t,(t=>{this.i._attachBoolListener(t)}))}attachBoolVectorListener(t,e){Ho(this,t,e),Go(this,t,(t=>{this.i._attachBoolVectorListener(t)}))}attachIntListener(t,e){Xo(this,t,e),Go(this,t,(t=>{this.i._attachIntListener(t)}))}attachIntVectorListener(t,e){Ho(this,t,e),Go(this,t,(t=>{this.i._attachIntVectorListener(t)}))}attachUintListener(t,e){Xo(this,t,e),Go(this,t,(t=>{this.i._attachUintListener(t)}))}attachUintVectorListener(t,e){Ho(this,t,e),Go(this,t,(t=>{this.i._attachUintVectorListener(t)}))}attachDoubleListener(t,e){Xo(this,t,e),Go(this,t,(t=>{this.i._attachDoubleListener(t)}))}attachDoubleVectorListener(t,e){Ho(this,t,e),Go(this,t,(t=>{this.i._attachDoubleVectorListener(t)}))}attachFloatListener(t,e){Xo(this,t,e),Go(this,t,(t=>{this.i._attachFloatListener(t)}))}attachFloatVectorListener(t,e){Ho(this,t,e),Go(this,t,(t=>{this.i._attachFloatVectorListener(t)}))}attachStringListener(t,e){Xo(this,t,e),Go(this,t,(t=>{this.i._attachStringListener(t)}))}attachStringVectorListener(t,e){Ho(this,t,e),Go(this,t,(t=>{this.i._attachStringVectorListener(t)}))}attachProtoListener(t,e,n){Xo(this,t,e),Go(this,t,(t=>{this.i._attachProtoListener(t,n||!1)}))}attachProtoVectorListener(t,e,n){Ho(this,t,e),Go(this,t,(t=>{this.i._attachProtoVectorListener(t,n||!1)}))}attachAudioListener(t,e,n){this.i._attachAudioListener||console.warn('Attempting to use attachAudioListener without support for output audio. Is build dep \":gl_graph_runner_audio_out\" missing?'),Xo(this,t,((t,n)=>{t=new Float32Array(t.buffer,t.byteOffset,t.length/4),e(t,n)})),Go(this,t,(t=>{this.i._attachAudioListener(t,n||!1)}))}finishProcessing(){this.i._waitUntilIdle()}closeGraph(){this.i._closeGraph(),this.i.simpleListeners=void 0,this.i.emptyPacketListeners=void 0}},class extends Ha{get ea(){return this.i}oa(t,e,n){Go(this,e,(e=>{const[r,i]=jo(this,t,e);this.ea._addBoundTextureAsImageToStream(e,r,i,n)}))}V(t,e){Xo(this,t,e),Go(this,t,(t=>{this.ea._attachImageListener(t)}))}ba(t,e){Ho(this,t,e),Go(this,t,(t=>{this.ea._attachImageVectorListener(t)}))}}));var Ha,Wa=class extends Xa{};async function za(t,e,n){return async function(t,e,n,r){return Wo(t,e,n,r)}(t,n.canvas??(Do()?void 0:document.createElement(\"canvas\")),e,n)}function Ka(t,e,n,r){if(t.U){const s=new ms;if(n?.regionOfInterest){if(!t.na)throw Error(\"This task doesn't support region-of-interest.\");var i=n.regionOfInterest;if(i.left>=i.right||i.top>=i.bottom)throw Error(\"Expected RectF with left < right and top < bottom.\");if(i.left<0||i.top<0||i.right>1||i.bottom>1)throw Error(\"Expected RectF values to be in [0,1].\");An(s,1,(i.left+i.right)/2),An(s,2,(i.top+i.bottom)/2),An(s,4,i.right-i.left),An(s,3,i.bottom-i.top)}else An(s,1,.5),An(s,2,.5),An(s,4,1),An(s,3,1);if(n?.rotationDegrees){if(n?.rotationDegrees%90!=0)throw Error(\"Expected rotation to be a multiple of 90°.\");if(An(s,5,-Math.PI*n.rotationDegrees/180),n?.rotationDegrees%180!=0){const[t,r]=Bo(e);n=En(s,3)*r/t,i=En(s,4)*t/r,An(s,4,n),An(s,3,i)}}t.g.addProtoToStream(s.g(),\"mediapipe.NormalizedRect\",t.U,r)}t.g.oa(e,t.Z,r??performance.now()),t.finishProcessing()}function Ya(t,e,n){if(t.baseOptions?.g())throw Error(\"Task is not initialized with image mode. 'runningMode' must be set to 'IMAGE'.\");Ka(t,e,n,t.B+1)}function $a(t,e,n,r){if(!t.baseOptions?.g())throw Error(\"Task is not initialized with video mode. 'runningMode' must be set to 'VIDEO'.\");Ka(t,e,n,r)}function qa(t,e,n,r){var i=e.data;const s=e.width,o=s*(e=e.height);if((i instanceof Uint8Array||i instanceof Float32Array)&&i.length!==o)throw Error(\"Unsupported channel count: \"+i.length/o);return t=new Ea([i],n,!1,t.g.i.canvas,t.P,s,e),r?t.clone():t}var Ja=class extends Zo{constructor(t,e,n,r){super(t),this.g=t,this.Z=e,this.U=n,this.na=r,this.P=new ca}l(t,e=!0){if(\"runningMode\"in t&&wn(this.baseOptions,2,!!t.runningMode&&\"IMAGE\"!==t.runningMode),void 0!==t.canvas&&this.g.i.canvas!==t.canvas)throw Error(\"You must create a new task to reset the canvas.\");return super.l(t,e)}close(){this.P.close(),super.close()}};Ja.prototype.close=Ja.prototype.close;var Za=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect_in\",!1),this.j={detections:[]},dn(t=this.h=new Cs,0,1,e=new Is),An(this.h,2,.5),An(this.h,3,.3)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return\"minDetectionConfidence\"in t&&An(this.h,2,t.minDetectionConfidence??.5),\"minSuppressionThreshold\"in t&&An(this.h,3,t.minSuppressionThreshold??.3),this.l(t)}D(t,e){return this.j={detections:[]},Ya(this,t,e),this.j}F(t,e,n){return this.j={detections:[]},$a(this,t,n,e),this.j}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect_in\"),Zi(t,\"detections\");const e=new Gi;Yn(e,Us,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.face_detector.FaceDetectorGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect_in\"),Wi(n,\"DETECTIONS:detections\"),n.o(e),qi(t,n),this.g.attachProtoVectorListener(\"detections\",((t,e)=>{for(const e of t)t=hs(e),this.j.detections.push(xo(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"detections\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Za.prototype.detectForVideo=Za.prototype.F,Za.prototype.detect=Za.prototype.D,Za.prototype.setOptions=Za.prototype.o,Za.createFromModelPath=async function(t,e){return za(Za,t,{baseOptions:{modelAssetPath:e}})},Za.createFromModelBuffer=function(t,e){return za(Za,t,{baseOptions:{modelAssetBuffer:e}})},Za.createFromOptions=function(t,e){return za(Za,t,e)};var Qa=Va([61,146],[146,91],[91,181],[181,84],[84,17],[17,314],[314,405],[405,321],[321,375],[375,291],[61,185],[185,40],[40,39],[39,37],[37,0],[0,267],[267,269],[269,270],[270,409],[409,291],[78,95],[95,88],[88,178],[178,87],[87,14],[14,317],[317,402],[402,318],[318,324],[324,308],[78,191],[191,80],[80,81],[81,82],[82,13],[13,312],[312,311],[311,310],[310,415],[415,308]),tc=Va([263,249],[249,390],[390,373],[373,374],[374,380],[380,381],[381,382],[382,362],[263,466],[466,388],[388,387],[387,386],[386,385],[385,384],[384,398],[398,362]),ec=Va([276,283],[283,282],[282,295],[295,285],[300,293],[293,334],[334,296],[296,336]),nc=Va([474,475],[475,476],[476,477],[477,474]),rc=Va([33,7],[7,163],[163,144],[144,145],[145,153],[153,154],[154,155],[155,133],[33,246],[246,161],[161,160],[160,159],[159,158],[158,157],[157,173],[173,133]),ic=Va([46,53],[53,52],[52,65],[65,55],[70,63],[63,105],[105,66],[66,107]),sc=Va([469,470],[470,471],[471,472],[472,469]),oc=Va([10,338],[338,297],[297,332],[332,284],[284,251],[251,389],[389,356],[356,454],[454,323],[323,361],[361,288],[288,397],[397,365],[365,379],[379,378],[378,400],[400,377],[377,152],[152,148],[148,176],[176,149],[149,150],[150,136],[136,172],[172,58],[58,132],[132,93],[93,234],[234,127],[127,162],[162,21],[21,54],[54,103],[103,67],[67,109],[109,10]),ac=[...Qa,...tc,...ec,...rc,...ic,...oc],cc=Va([127,34],[34,139],[139,127],[11,0],[0,37],[37,11],[232,231],[231,120],[120,232],[72,37],[37,39],[39,72],[128,121],[121,47],[47,128],[232,121],[121,128],[128,232],[104,69],[69,67],[67,104],[175,171],[171,148],[148,175],[118,50],[50,101],[101,118],[73,39],[39,40],[40,73],[9,151],[151,108],[108,9],[48,115],[115,131],[131,48],[194,204],[204,211],[211,194],[74,40],[40,185],[185,74],[80,42],[42,183],[183,80],[40,92],[92,186],[186,40],[230,229],[229,118],[118,230],[202,212],[212,214],[214,202],[83,18],[18,17],[17,83],[76,61],[61,146],[146,76],[160,29],[29,30],[30,160],[56,157],[157,173],[173,56],[106,204],[204,194],[194,106],[135,214],[214,192],[192,135],[203,165],[165,98],[98,203],[21,71],[71,68],[68,21],[51,45],[45,4],[4,51],[144,24],[24,23],[23,144],[77,146],[146,91],[91,77],[205,50],[50,187],[187,205],[201,200],[200,18],[18,201],[91,106],[106,182],[182,91],[90,91],[91,181],[181,90],[85,84],[84,17],[17,85],[206,203],[203,36],[36,206],[148,171],[171,140],[140,148],[92,40],[40,39],[39,92],[193,189],[189,244],[244,193],[159,158],[158,28],[28,159],[247,246],[246,161],[161,247],[236,3],[3,196],[196,236],[54,68],[68,104],[104,54],[193,168],[168,8],[8,193],[117,228],[228,31],[31,117],[189,193],[193,55],[55,189],[98,97],[97,99],[99,98],[126,47],[47,100],[100,126],[166,79],[79,218],[218,166],[155,154],[154,26],[26,155],[209,49],[49,131],[131,209],[135,136],[136,150],[150,135],[47,126],[126,217],[217,47],[223,52],[52,53],[53,223],[45,51],[51,134],[134,45],[211,170],[170,140],[140,211],[67,69],[69,108],[108,67],[43,106],[106,91],[91,43],[230,119],[119,120],[120,230],[226,130],[130,247],[247,226],[63,53],[53,52],[52,63],[238,20],[20,242],[242,238],[46,70],[70,156],[156,46],[78,62],[62,96],[96,78],[46,53],[53,63],[63,46],[143,34],[34,227],[227,143],[123,117],[117,111],[111,123],[44,125],[125,19],[19,44],[236,134],[134,51],[51,236],[216,206],[206,205],[205,216],[154,153],[153,22],[22,154],[39,37],[37,167],[167,39],[200,201],[201,208],[208,200],[36,142],[142,100],[100,36],[57,212],[212,202],[202,57],[20,60],[60,99],[99,20],[28,158],[158,157],[157,28],[35,226],[226,113],[113,35],[160,159],[159,27],[27,160],[204,202],[202,210],[210,204],[113,225],[225,46],[46,113],[43,202],[202,204],[204,43],[62,76],[76,77],[77,62],[137,123],[123,116],[116,137],[41,38],[38,72],[72,41],[203,129],[129,142],[142,203],[64,98],[98,240],[240,64],[49,102],[102,64],[64,49],[41,73],[73,74],[74,41],[212,216],[216,207],[207,212],[42,74],[74,184],[184,42],[169,170],[170,211],[211,169],[170,149],[149,176],[176,170],[105,66],[66,69],[69,105],[122,6],[6,168],[168,122],[123,147],[147,187],[187,123],[96,77],[77,90],[90,96],[65,55],[55,107],[107,65],[89,90],[90,180],[180,89],[101,100],[100,120],[120,101],[63,105],[105,104],[104,63],[93,137],[137,227],[227,93],[15,86],[86,85],[85,15],[129,102],[102,49],[49,129],[14,87],[87,86],[86,14],[55,8],[8,9],[9,55],[100,47],[47,121],[121,100],[145,23],[23,22],[22,145],[88,89],[89,179],[179,88],[6,122],[122,196],[196,6],[88,95],[95,96],[96,88],[138,172],[172,136],[136,138],[215,58],[58,172],[172,215],[115,48],[48,219],[219,115],[42,80],[80,81],[81,42],[195,3],[3,51],[51,195],[43,146],[146,61],[61,43],[171,175],[175,199],[199,171],[81,82],[82,38],[38,81],[53,46],[46,225],[225,53],[144,163],[163,110],[110,144],[52,65],[65,66],[66,52],[229,228],[228,117],[117,229],[34,127],[127,234],[234,34],[107,108],[108,69],[69,107],[109,108],[108,151],[151,109],[48,64],[64,235],[235,48],[62,78],[78,191],[191,62],[129,209],[209,126],[126,129],[111,35],[35,143],[143,111],[117,123],[123,50],[50,117],[222,65],[65,52],[52,222],[19,125],[125,141],[141,19],[221,55],[55,65],[65,221],[3,195],[195,197],[197,3],[25,7],[7,33],[33,25],[220,237],[237,44],[44,220],[70,71],[71,139],[139,70],[122,193],[193,245],[245,122],[247,130],[130,33],[33,247],[71,21],[21,162],[162,71],[170,169],[169,150],[150,170],[188,174],[174,196],[196,188],[216,186],[186,92],[92,216],[2,97],[97,167],[167,2],[141,125],[125,241],[241,141],[164,167],[167,37],[37,164],[72,38],[38,12],[12,72],[38,82],[82,13],[13,38],[63,68],[68,71],[71,63],[226,35],[35,111],[111,226],[101,50],[50,205],[205,101],[206,92],[92,165],[165,206],[209,198],[198,217],[217,209],[165,167],[167,97],[97,165],[220,115],[115,218],[218,220],[133,112],[112,243],[243,133],[239,238],[238,241],[241,239],[214,135],[135,169],[169,214],[190,173],[173,133],[133,190],[171,208],[208,32],[32,171],[125,44],[44,237],[237,125],[86,87],[87,178],[178,86],[85,86],[86,179],[179,85],[84,85],[85,180],[180,84],[83,84],[84,181],[181,83],[201,83],[83,182],[182,201],[137,93],[93,132],[132,137],[76,62],[62,183],[183,76],[61,76],[76,184],[184,61],[57,61],[61,185],[185,57],[212,57],[57,186],[186,212],[214,207],[207,187],[187,214],[34,143],[143,156],[156,34],[79,239],[239,237],[237,79],[123,137],[137,177],[177,123],[44,1],[1,4],[4,44],[201,194],[194,32],[32,201],[64,102],[102,129],[129,64],[213,215],[215,138],[138,213],[59,166],[166,219],[219,59],[242,99],[99,97],[97,242],[2,94],[94,141],[141,2],[75,59],[59,235],[235,75],[24,110],[110,228],[228,24],[25,130],[130,226],[226,25],[23,24],[24,229],[229,23],[22,23],[23,230],[230,22],[26,22],[22,231],[231,26],[112,26],[26,232],[232,112],[189,190],[190,243],[243,189],[221,56],[56,190],[190,221],[28,56],[56,221],[221,28],[27,28],[28,222],[222,27],[29,27],[27,223],[223,29],[30,29],[29,224],[224,30],[247,30],[30,225],[225,247],[238,79],[79,20],[20,238],[166,59],[59,75],[75,166],[60,75],[75,240],[240,60],[147,177],[177,215],[215,147],[20,79],[79,166],[166,20],[187,147],[147,213],[213,187],[112,233],[233,244],[244,112],[233,128],[128,245],[245,233],[128,114],[114,188],[188,128],[114,217],[217,174],[174,114],[131,115],[115,220],[220,131],[217,198],[198,236],[236,217],[198,131],[131,134],[134,198],[177,132],[132,58],[58,177],[143,35],[35,124],[124,143],[110,163],[163,7],[7,110],[228,110],[110,25],[25,228],[356,389],[389,368],[368,356],[11,302],[302,267],[267,11],[452,350],[350,349],[349,452],[302,303],[303,269],[269,302],[357,343],[343,277],[277,357],[452,453],[453,357],[357,452],[333,332],[332,297],[297,333],[175,152],[152,377],[377,175],[347,348],[348,330],[330,347],[303,304],[304,270],[270,303],[9,336],[336,337],[337,9],[278,279],[279,360],[360,278],[418,262],[262,431],[431,418],[304,408],[408,409],[409,304],[310,415],[415,407],[407,310],[270,409],[409,410],[410,270],[450,348],[348,347],[347,450],[422,430],[430,434],[434,422],[313,314],[314,17],[17,313],[306,307],[307,375],[375,306],[387,388],[388,260],[260,387],[286,414],[414,398],[398,286],[335,406],[406,418],[418,335],[364,367],[367,416],[416,364],[423,358],[358,327],[327,423],[251,284],[284,298],[298,251],[281,5],[5,4],[4,281],[373,374],[374,253],[253,373],[307,320],[320,321],[321,307],[425,427],[427,411],[411,425],[421,313],[313,18],[18,421],[321,405],[405,406],[406,321],[320,404],[404,405],[405,320],[315,16],[16,17],[17,315],[426,425],[425,266],[266,426],[377,400],[400,369],[369,377],[322,391],[391,269],[269,322],[417,465],[465,464],[464,417],[386,257],[257,258],[258,386],[466,260],[260,388],[388,466],[456,399],[399,419],[419,456],[284,332],[332,333],[333,284],[417,285],[285,8],[8,417],[346,340],[340,261],[261,346],[413,441],[441,285],[285,413],[327,460],[460,328],[328,327],[355,371],[371,329],[329,355],[392,439],[439,438],[438,392],[382,341],[341,256],[256,382],[429,420],[420,360],[360,429],[364,394],[394,379],[379,364],[277,343],[343,437],[437,277],[443,444],[444,283],[283,443],[275,440],[440,363],[363,275],[431,262],[262,369],[369,431],[297,338],[338,337],[337,297],[273,375],[375,321],[321,273],[450,451],[451,349],[349,450],[446,342],[342,467],[467,446],[293,334],[334,282],[282,293],[458,461],[461,462],[462,458],[276,353],[353,383],[383,276],[308,324],[324,325],[325,308],[276,300],[300,293],[293,276],[372,345],[345,447],[447,372],[352,345],[345,340],[340,352],[274,1],[1,19],[19,274],[456,248],[248,281],[281,456],[436,427],[427,425],[425,436],[381,256],[256,252],[252,381],[269,391],[391,393],[393,269],[200,199],[199,428],[428,200],[266,330],[330,329],[329,266],[287,273],[273,422],[422,287],[250,462],[462,328],[328,250],[258,286],[286,384],[384,258],[265,353],[353,342],[342,265],[387,259],[259,257],[257,387],[424,431],[431,430],[430,424],[342,353],[353,276],[276,342],[273,335],[335,424],[424,273],[292,325],[325,307],[307,292],[366,447],[447,345],[345,366],[271,303],[303,302],[302,271],[423,266],[266,371],[371,423],[294,455],[455,460],[460,294],[279,278],[278,294],[294,279],[271,272],[272,304],[304,271],[432,434],[434,427],[427,432],[272,407],[407,408],[408,272],[394,430],[430,431],[431,394],[395,369],[369,400],[400,395],[334,333],[333,299],[299,334],[351,417],[417,168],[168,351],[352,280],[280,411],[411,352],[325,319],[319,320],[320,325],[295,296],[296,336],[336,295],[319,403],[403,404],[404,319],[330,348],[348,349],[349,330],[293,298],[298,333],[333,293],[323,454],[454,447],[447,323],[15,16],[16,315],[315,15],[358,429],[429,279],[279,358],[14,15],[15,316],[316,14],[285,336],[336,9],[9,285],[329,349],[349,350],[350,329],[374,380],[380,252],[252,374],[318,402],[402,403],[403,318],[6,197],[197,419],[419,6],[318,319],[319,325],[325,318],[367,364],[364,365],[365,367],[435,367],[367,397],[397,435],[344,438],[438,439],[439,344],[272,271],[271,311],[311,272],[195,5],[5,281],[281,195],[273,287],[287,291],[291,273],[396,428],[428,199],[199,396],[311,271],[271,268],[268,311],[283,444],[444,445],[445,283],[373,254],[254,339],[339,373],[282,334],[334,296],[296,282],[449,347],[347,346],[346,449],[264,447],[447,454],[454,264],[336,296],[296,299],[299,336],[338,10],[10,151],[151,338],[278,439],[439,455],[455,278],[292,407],[407,415],[415,292],[358,371],[371,355],[355,358],[340,345],[345,372],[372,340],[346,347],[347,280],[280,346],[442,443],[443,282],[282,442],[19,94],[94,370],[370,19],[441,442],[442,295],[295,441],[248,419],[419,197],[197,248],[263,255],[255,359],[359,263],[440,275],[275,274],[274,440],[300,383],[383,368],[368,300],[351,412],[412,465],[465,351],[263,467],[467,466],[466,263],[301,368],[368,389],[389,301],[395,378],[378,379],[379,395],[412,351],[351,419],[419,412],[436,426],[426,322],[322,436],[2,164],[164,393],[393,2],[370,462],[462,461],[461,370],[164,0],[0,267],[267,164],[302,11],[11,12],[12,302],[268,12],[12,13],[13,268],[293,300],[300,301],[301,293],[446,261],[261,340],[340,446],[330,266],[266,425],[425,330],[426,423],[423,391],[391,426],[429,355],[355,437],[437,429],[391,327],[327,326],[326,391],[440,457],[457,438],[438,440],[341,382],[382,362],[362,341],[459,457],[457,461],[461,459],[434,430],[430,394],[394,434],[414,463],[463,362],[362,414],[396,369],[369,262],[262,396],[354,461],[461,457],[457,354],[316,403],[403,402],[402,316],[315,404],[404,403],[403,315],[314,405],[405,404],[404,314],[313,406],[406,405],[405,313],[421,418],[418,406],[406,421],[366,401],[401,361],[361,366],[306,408],[408,407],[407,306],[291,409],[409,408],[408,291],[287,410],[410,409],[409,287],[432,436],[436,410],[410,432],[434,416],[416,411],[411,434],[264,368],[368,383],[383,264],[309,438],[438,457],[457,309],[352,376],[376,401],[401,352],[274,275],[275,4],[4,274],[421,428],[428,262],[262,421],[294,327],[327,358],[358,294],[433,416],[416,367],[367,433],[289,455],[455,439],[439,289],[462,370],[370,326],[326,462],[2,326],[326,370],[370,2],[305,460],[460,455],[455,305],[254,449],[449,448],[448,254],[255,261],[261,446],[446,255],[253,450],[450,449],[449,253],[252,451],[451,450],[450,252],[256,452],[452,451],[451,256],[341,453],[453,452],[452,341],[413,464],[464,463],[463,413],[441,413],[413,414],[414,441],[258,442],[442,441],[441,258],[257,443],[443,442],[442,257],[259,444],[444,443],[443,259],[260,445],[445,444],[444,260],[467,342],[342,445],[445,467],[459,458],[458,250],[250,459],[289,392],[392,290],[290,289],[290,328],[328,460],[460,290],[376,433],[433,435],[435,376],[250,290],[290,392],[392,250],[411,416],[416,433],[433,411],[341,463],[463,464],[464,341],[453,464],[464,465],[465,453],[357,465],[465,412],[412,357],[343,412],[412,399],[399,343],[360,363],[363,440],[440,360],[437,399],[399,456],[456,437],[420,456],[456,363],[363,420],[401,435],[435,288],[288,401],[372,383],[383,353],[353,372],[339,255],[255,249],[249,339],[448,261],[261,255],[255,448],[133,243],[243,190],[190,133],[133,155],[155,112],[112,133],[33,246],[246,247],[247,33],[33,130],[130,25],[25,33],[398,384],[384,286],[286,398],[362,398],[398,414],[414,362],[362,463],[463,341],[341,362],[263,359],[359,467],[467,263],[263,249],[249,255],[255,263],[466,467],[467,260],[260,466],[75,60],[60,166],[166,75],[238,239],[239,79],[79,238],[162,127],[127,139],[139,162],[72,11],[11,37],[37,72],[121,232],[232,120],[120,121],[73,72],[72,39],[39,73],[114,128],[128,47],[47,114],[233,232],[232,128],[128,233],[103,104],[104,67],[67,103],[152,175],[175,148],[148,152],[119,118],[118,101],[101,119],[74,73],[73,40],[40,74],[107,9],[9,108],[108,107],[49,48],[48,131],[131,49],[32,194],[194,211],[211,32],[184,74],[74,185],[185,184],[191,80],[80,183],[183,191],[185,40],[40,186],[186,185],[119,230],[230,118],[118,119],[210,202],[202,214],[214,210],[84,83],[83,17],[17,84],[77,76],[76,146],[146,77],[161,160],[160,30],[30,161],[190,56],[56,173],[173,190],[182,106],[106,194],[194,182],[138,135],[135,192],[192,138],[129,203],[203,98],[98,129],[54,21],[21,68],[68,54],[5,51],[51,4],[4,5],[145,144],[144,23],[23,145],[90,77],[77,91],[91,90],[207,205],[205,187],[187,207],[83,201],[201,18],[18,83],[181,91],[91,182],[182,181],[180,90],[90,181],[181,180],[16,85],[85,17],[17,16],[205,206],[206,36],[36,205],[176,148],[148,140],[140,176],[165,92],[92,39],[39,165],[245,193],[193,244],[244,245],[27,159],[159,28],[28,27],[30,247],[247,161],[161,30],[174,236],[236,196],[196,174],[103,54],[54,104],[104,103],[55,193],[193,8],[8,55],[111,117],[117,31],[31,111],[221,189],[189,55],[55,221],[240,98],[98,99],[99,240],[142,126],[126,100],[100,142],[219,166],[166,218],[218,219],[112,155],[155,26],[26,112],[198,209],[209,131],[131,198],[169,135],[135,150],[150,169],[114,47],[47,217],[217,114],[224,223],[223,53],[53,224],[220,45],[45,134],[134,220],[32,211],[211,140],[140,32],[109,67],[67,108],[108,109],[146,43],[43,91],[91,146],[231,230],[230,120],[120,231],[113,226],[226,247],[247,113],[105,63],[63,52],[52,105],[241,238],[238,242],[242,241],[124,46],[46,156],[156,124],[95,78],[78,96],[96,95],[70,46],[46,63],[63,70],[116,143],[143,227],[227,116],[116,123],[123,111],[111,116],[1,44],[44,19],[19,1],[3,236],[236,51],[51,3],[207,216],[216,205],[205,207],[26,154],[154,22],[22,26],[165,39],[39,167],[167,165],[199,200],[200,208],[208,199],[101,36],[36,100],[100,101],[43,57],[57,202],[202,43],[242,20],[20,99],[99,242],[56,28],[28,157],[157,56],[124,35],[35,113],[113,124],[29,160],[160,27],[27,29],[211,204],[204,210],[210,211],[124,113],[113,46],[46,124],[106,43],[43,204],[204,106],[96,62],[62,77],[77,96],[227,137],[137,116],[116,227],[73,41],[41,72],[72,73],[36,203],[203,142],[142,36],[235,64],[64,240],[240,235],[48,49],[49,64],[64,48],[42,41],[41,74],[74,42],[214,212],[212,207],[207,214],[183,42],[42,184],[184,183],[210,169],[169,211],[211,210],[140,170],[170,176],[176,140],[104,105],[105,69],[69,104],[193,122],[122,168],[168,193],[50,123],[123,187],[187,50],[89,96],[96,90],[90,89],[66,65],[65,107],[107,66],[179,89],[89,180],[180,179],[119,101],[101,120],[120,119],[68,63],[63,104],[104,68],[234,93],[93,227],[227,234],[16,15],[15,85],[85,16],[209,129],[129,49],[49,209],[15,14],[14,86],[86,15],[107,55],[55,9],[9,107],[120,100],[100,121],[121,120],[153,145],[145,22],[22,153],[178,88],[88,179],[179,178],[197,6],[6,196],[196,197],[89,88],[88,96],[96,89],[135,138],[138,136],[136,135],[138,215],[215,172],[172,138],[218,115],[115,219],[219,218],[41,42],[42,81],[81,41],[5,195],[195,51],[51,5],[57,43],[43,61],[61,57],[208,171],[171,199],[199,208],[41,81],[81,38],[38,41],[224,53],[53,225],[225,224],[24,144],[144,110],[110,24],[105,52],[52,66],[66,105],[118,229],[229,117],[117,118],[227,34],[34,234],[234,227],[66,107],[107,69],[69,66],[10,109],[109,151],[151,10],[219,48],[48,235],[235,219],[183,62],[62,191],[191,183],[142,129],[129,126],[126,142],[116,111],[111,143],[143,116],[118,117],[117,50],[50,118],[223,222],[222,52],[52,223],[94,19],[19,141],[141,94],[222,221],[221,65],[65,222],[196,3],[3,197],[197,196],[45,220],[220,44],[44,45],[156,70],[70,139],[139,156],[188,122],[122,245],[245,188],[139,71],[71,162],[162,139],[149,170],[170,150],[150,149],[122,188],[188,196],[196,122],[206,216],[216,92],[92,206],[164,2],[2,167],[167,164],[242,141],[141,241],[241,242],[0,164],[164,37],[37,0],[11,72],[72,12],[12,11],[12,38],[38,13],[13,12],[70,63],[63,71],[71,70],[31,226],[226,111],[111,31],[36,101],[101,205],[205,36],[203,206],[206,165],[165,203],[126,209],[209,217],[217,126],[98,165],[165,97],[97,98],[237,220],[220,218],[218,237],[237,239],[239,241],[241,237],[210,214],[214,169],[169,210],[140,171],[171,32],[32,140],[241,125],[125,237],[237,241],[179,86],[86,178],[178,179],[180,85],[85,179],[179,180],[181,84],[84,180],[180,181],[182,83],[83,181],[181,182],[194,201],[201,182],[182,194],[177,137],[137,132],[132,177],[184,76],[76,183],[183,184],[185,61],[61,184],[184,185],[186,57],[57,185],[185,186],[216,212],[212,186],[186,216],[192,214],[214,187],[187,192],[139,34],[34,156],[156,139],[218,79],[79,237],[237,218],[147,123],[123,177],[177,147],[45,44],[44,4],[4,45],[208,201],[201,32],[32,208],[98,64],[64,129],[129,98],[192,213],[213,138],[138,192],[235,59],[59,219],[219,235],[141,242],[242,97],[97,141],[97,2],[2,141],[141,97],[240,75],[75,235],[235,240],[229,24],[24,228],[228,229],[31,25],[25,226],[226,31],[230,23],[23,229],[229,230],[231,22],[22,230],[230,231],[232,26],[26,231],[231,232],[233,112],[112,232],[232,233],[244,189],[189,243],[243,244],[189,221],[221,190],[190,189],[222,28],[28,221],[221,222],[223,27],[27,222],[222,223],[224,29],[29,223],[223,224],[225,30],[30,224],[224,225],[113,247],[247,225],[225,113],[99,60],[60,240],[240,99],[213,147],[147,215],[215,213],[60,20],[20,166],[166,60],[192,187],[187,213],[213,192],[243,112],[112,244],[244,243],[244,233],[233,245],[245,244],[245,128],[128,188],[188,245],[188,114],[114,174],[174,188],[134,131],[131,220],[220,134],[174,217],[217,236],[236,174],[236,198],[198,134],[134,236],[215,177],[177,58],[58,215],[156,143],[143,124],[124,156],[25,110],[110,7],[7,25],[31,228],[228,25],[25,31],[264,356],[356,368],[368,264],[0,11],[11,267],[267,0],[451,452],[452,349],[349,451],[267,302],[302,269],[269,267],[350,357],[357,277],[277,350],[350,452],[452,357],[357,350],[299,333],[333,297],[297,299],[396,175],[175,377],[377,396],[280,347],[347,330],[330,280],[269,303],[303,270],[270,269],[151,9],[9,337],[337,151],[344,278],[278,360],[360,344],[424,418],[418,431],[431,424],[270,304],[304,409],[409,270],[272,310],[310,407],[407,272],[322,270],[270,410],[410,322],[449,450],[450,347],[347,449],[432,422],[422,434],[434,432],[18,313],[313,17],[17,18],[291,306],[306,375],[375,291],[259,387],[387,260],[260,259],[424,335],[335,418],[418,424],[434,364],[364,416],[416,434],[391,423],[423,327],[327,391],[301,251],[251,298],[298,301],[275,281],[281,4],[4,275],[254,373],[373,253],[253,254],[375,307],[307,321],[321,375],[280,425],[425,411],[411,280],[200,421],[421,18],[18,200],[335,321],[321,406],[406,335],[321,320],[320,405],[405,321],[314,315],[315,17],[17,314],[423,426],[426,266],[266,423],[396,377],[377,369],[369,396],[270,322],[322,269],[269,270],[413,417],[417,464],[464,413],[385,386],[386,258],[258,385],[248,456],[456,419],[419,248],[298,284],[284,333],[333,298],[168,417],[417,8],[8,168],[448,346],[346,261],[261,448],[417,413],[413,285],[285,417],[326,327],[327,328],[328,326],[277,355],[355,329],[329,277],[309,392],[392,438],[438,309],[381,382],[382,256],[256,381],[279,429],[429,360],[360,279],[365,364],[364,379],[379,365],[355,277],[277,437],[437,355],[282,443],[443,283],[283,282],[281,275],[275,363],[363,281],[395,431],[431,369],[369,395],[299,297],[297,337],[337,299],[335,273],[273,321],[321,335],[348,450],[450,349],[349,348],[359,446],[446,467],[467,359],[283,293],[293,282],[282,283],[250,458],[458,462],[462,250],[300,276],[276,383],[383,300],[292,308],[308,325],[325,292],[283,276],[276,293],[293,283],[264,372],[372,447],[447,264],[346,352],[352,340],[340,346],[354,274],[274,19],[19,354],[363,456],[456,281],[281,363],[426,436],[436,425],[425,426],[380,381],[381,252],[252,380],[267,269],[269,393],[393,267],[421,200],[200,428],[428,421],[371,266],[266,329],[329,371],[432,287],[287,422],[422,432],[290,250],[250,328],[328,290],[385,258],[258,384],[384,385],[446,265],[265,342],[342,446],[386,387],[387,257],[257,386],[422,424],[424,430],[430,422],[445,342],[342,276],[276,445],[422,273],[273,424],[424,422],[306,292],[292,307],[307,306],[352,366],[366,345],[345,352],[268,271],[271,302],[302,268],[358,423],[423,371],[371,358],[327,294],[294,460],[460,327],[331,279],[279,294],[294,331],[303,271],[271,304],[304,303],[436,432],[432,427],[427,436],[304,272],[272,408],[408,304],[395,394],[394,431],[431,395],[378,395],[395,400],[400,378],[296,334],[334,299],[299,296],[6,351],[351,168],[168,6],[376,352],[352,411],[411,376],[307,325],[325,320],[320,307],[285,295],[295,336],[336,285],[320,319],[319,404],[404,320],[329,330],[330,349],[349,329],[334,293],[293,333],[333,334],[366,323],[323,447],[447,366],[316,15],[15,315],[315,316],[331,358],[358,279],[279,331],[317,14],[14,316],[316,317],[8,285],[285,9],[9,8],[277,329],[329,350],[350,277],[253,374],[374,252],[252,253],[319,318],[318,403],[403,319],[351,6],[6,419],[419,351],[324,318],[318,325],[325,324],[397,367],[367,365],[365,397],[288,435],[435,397],[397,288],[278,344],[344,439],[439,278],[310,272],[272,311],[311,310],[248,195],[195,281],[281,248],[375,273],[273,291],[291,375],[175,396],[396,199],[199,175],[312,311],[311,268],[268,312],[276,283],[283,445],[445,276],[390,373],[373,339],[339,390],[295,282],[282,296],[296,295],[448,449],[449,346],[346,448],[356,264],[264,454],[454,356],[337,336],[336,299],[299,337],[337,338],[338,151],[151,337],[294,278],[278,455],[455,294],[308,292],[292,415],[415,308],[429,358],[358,355],[355,429],[265,340],[340,372],[372,265],[352,346],[346,280],[280,352],[295,442],[442,282],[282,295],[354,19],[19,370],[370,354],[285,441],[441,295],[295,285],[195,248],[248,197],[197,195],[457,440],[440,274],[274,457],[301,300],[300,368],[368,301],[417,351],[351,465],[465,417],[251,301],[301,389],[389,251],[394,395],[395,379],[379,394],[399,412],[412,419],[419,399],[410,436],[436,322],[322,410],[326,2],[2,393],[393,326],[354,370],[370,461],[461,354],[393,164],[164,267],[267,393],[268,302],[302,12],[12,268],[312,268],[268,13],[13,312],[298,293],[293,301],[301,298],[265,446],[446,340],[340,265],[280,330],[330,425],[425,280],[322,426],[426,391],[391,322],[420,429],[429,437],[437,420],[393,391],[391,326],[326,393],[344,440],[440,438],[438,344],[458,459],[459,461],[461,458],[364,434],[434,394],[394,364],[428,396],[396,262],[262,428],[274,354],[354,457],[457,274],[317,316],[316,402],[402,317],[316,315],[315,403],[403,316],[315,314],[314,404],[404,315],[314,313],[313,405],[405,314],[313,421],[421,406],[406,313],[323,366],[366,361],[361,323],[292,306],[306,407],[407,292],[306,291],[291,408],[408,306],[291,287],[287,409],[409,291],[287,432],[432,410],[410,287],[427,434],[434,411],[411,427],[372,264],[264,383],[383,372],[459,309],[309,457],[457,459],[366,352],[352,401],[401,366],[1,274],[274,4],[4,1],[418,421],[421,262],[262,418],[331,294],[294,358],[358,331],[435,433],[433,367],[367,435],[392,289],[289,439],[439,392],[328,462],[462,326],[326,328],[94,2],[2,370],[370,94],[289,305],[305,455],[455,289],[339,254],[254,448],[448,339],[359,255],[255,446],[446,359],[254,253],[253,449],[449,254],[253,252],[252,450],[450,253],[252,256],[256,451],[451,252],[256,341],[341,452],[452,256],[414,413],[413,463],[463,414],[286,441],[441,414],[414,286],[286,258],[258,441],[441,286],[258,257],[257,442],[442,258],[257,259],[259,443],[443,257],[259,260],[260,444],[444,259],[260,467],[467,445],[445,260],[309,459],[459,250],[250,309],[305,289],[289,290],[290,305],[305,290],[290,460],[460,305],[401,376],[376,435],[435,401],[309,250],[250,392],[392,309],[376,411],[411,433],[433,376],[453,341],[341,464],[464,453],[357,453],[453,465],[465,357],[343,357],[357,412],[412,343],[437,343],[343,399],[399,437],[344,360],[360,440],[440,344],[420,437],[437,456],[456,420],[360,420],[420,363],[363,360],[361,401],[401,288],[288,361],[265,372],[372,353],[353,265],[390,339],[339,249],[249,390],[339,448],[448,255],[255,339]);function hc(t){t.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]}}var uc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!1),this.j={faceLandmarks:[],faceBlendshapes:[],facialTransformationMatrixes:[]},this.outputFacialTransformationMatrixes=this.outputFaceBlendshapes=!1,dn(t=this.h=new Bs,0,1,e=new Is),this.v=new Ns,dn(this.h,0,3,this.v),this.s=new Cs,dn(this.h,0,2,this.s),Tn(this.s,4,1),An(this.s,2,.5),An(this.v,2,.5),An(this.h,4,.5)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return\"numFaces\"in t&&Tn(this.s,4,t.numFaces??1),\"minFaceDetectionConfidence\"in t&&An(this.s,2,t.minFaceDetectionConfidence??.5),\"minTrackingConfidence\"in t&&An(this.h,4,t.minTrackingConfidence??.5),\"minFacePresenceConfidence\"in t&&An(this.v,2,t.minFacePresenceConfidence??.5),\"outputFaceBlendshapes\"in t&&(this.outputFaceBlendshapes=!!t.outputFaceBlendshapes),\"outputFacialTransformationMatrixes\"in t&&(this.outputFacialTransformationMatrixes=!!t.outputFacialTransformationMatrixes),this.l(t)}D(t,e){return hc(this),Ya(this,t,e),this.j}F(t,e,n){return hc(this),$a(this,t,n,e),this.j}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\"),Zi(t,\"face_landmarks\");const e=new Gi;Yn(e,Vs,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.face_landmarker.FaceLandmarkerGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"NORM_LANDMARKS:face_landmarks\"),n.o(e),qi(t,n),this.g.attachProtoVectorListener(\"face_landmarks\",((t,e)=>{for(const e of t)t=fs(e),this.j.faceLandmarks.push(Lo(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"face_landmarks\",(t=>{Yo(this,t)})),this.outputFaceBlendshapes&&(Zi(t,\"blendshapes\"),Wi(n,\"BLENDSHAPES:blendshapes\"),this.g.attachProtoVectorListener(\"blendshapes\",((t,e)=>{if(this.outputFaceBlendshapes)for(const e of t)t=ss(e),this.j.faceBlendshapes.push(So(t.g()??[]));Yo(this,e)})),this.g.attachEmptyPacketListener(\"blendshapes\",(t=>{Yo(this,t)}))),this.outputFacialTransformationMatrixes&&(Zi(t,\"face_geometry\"),Wi(n,\"FACE_GEOMETRY:face_geometry\"),this.g.attachProtoVectorListener(\"face_geometry\",((t,e)=>{if(this.outputFacialTransformationMatrixes)for(const e of t)(t=hn(Ds(e),ps,2))&&this.j.facialTransformationMatrixes.push({rows:_n(t,1)??0??0,columns:_n(t,2)??0??0,data:$e(t,3,qt,Ye()).slice()??[]});Yo(this,e)})),this.g.attachEmptyPacketListener(\"face_geometry\",(t=>{Yo(this,t)}))),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};uc.prototype.detectForVideo=uc.prototype.F,uc.prototype.detect=uc.prototype.D,uc.prototype.setOptions=uc.prototype.o,uc.createFromModelPath=function(t,e){return za(uc,t,{baseOptions:{modelAssetPath:e}})},uc.createFromModelBuffer=function(t,e){return za(uc,t,{baseOptions:{modelAssetBuffer:e}})},uc.createFromOptions=function(t,e){return za(uc,t,e)},uc.FACE_LANDMARKS_LIPS=Qa,uc.FACE_LANDMARKS_LEFT_EYE=tc,uc.FACE_LANDMARKS_LEFT_EYEBROW=ec,uc.FACE_LANDMARKS_LEFT_IRIS=nc,uc.FACE_LANDMARKS_RIGHT_EYE=rc,uc.FACE_LANDMARKS_RIGHT_EYEBROW=ic,uc.FACE_LANDMARKS_RIGHT_IRIS=sc,uc.FACE_LANDMARKS_FACE_OVAL=oc,uc.FACE_LANDMARKS_CONTOURS=ac,uc.FACE_LANDMARKS_TESSELATION=cc;var lc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!0),dn(t=this.j=new Xs,0,1,e=new Is)}get baseOptions(){return hn(this.j,Is,1)}set baseOptions(t){dn(this.j,0,1,t)}o(t){return super.l(t)}Ka(t,e,n){const r=\"function\"!=typeof e?e:{};if(this.h=\"function\"==typeof e?e:n,Ya(this,t,r??{}),!this.h)return this.s}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\"),Zi(t,\"stylized_image\");const e=new Gi;Yn(e,Hs,this.j);const n=new zi;Xi(n,\"mediapipe.tasks.vision.face_stylizer.FaceStylizerGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"STYLIZED_IMAGE:stylized_image\"),n.o(e),qi(t,n),this.g.V(\"stylized_image\",((t,e)=>{var n=!this.h,r=t.data,i=t.width;const s=i*(t=t.height);if(r instanceof Uint8Array)if(r.length===3*s){const e=new Uint8ClampedArray(4*s);for(let t=0;t<s;++t)e[4*t]=r[3*t],e[4*t+1]=r[3*t+1],e[4*t+2]=r[3*t+2],e[4*t+3]=255;r=new ImageData(e,i,t)}else{if(r.length!==4*s)throw Error(\"Unsupported channel count: \"+r.length/s);r=new ImageData(new Uint8ClampedArray(r.buffer,r.byteOffset,r.length),i,t)}else if(!(r instanceof WebGLTexture))throw Error(`Unsupported format: ${r.constructor.name}`);i=new Ga([r],!1,!1,this.g.i.canvas,this.P,i,t),this.s=n=n?i.clone():i,this.h&&this.h(n),Yo(this,e)})),this.g.attachEmptyPacketListener(\"stylized_image\",(t=>{this.s=null,this.h&&this.h(null),Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};lc.prototype.stylize=lc.prototype.Ka,lc.prototype.setOptions=lc.prototype.o,lc.createFromModelPath=function(t,e){return za(lc,t,{baseOptions:{modelAssetPath:e}})},lc.createFromModelBuffer=function(t,e){return za(lc,t,{baseOptions:{modelAssetBuffer:e}})},lc.createFromOptions=function(t,e){return za(lc,t,e)};var dc=Va([0,1],[1,2],[2,3],[3,4],[0,5],[5,6],[6,7],[7,8],[5,9],[9,10],[10,11],[11,12],[9,13],[13,14],[14,15],[15,16],[13,17],[0,17],[17,18],[18,19],[19,20]);function fc(t){t.gestures=[],t.landmarks=[],t.worldLandmarks=[],t.handedness=[]}function pc(t){return 0===t.gestures.length?{gestures:[],landmarks:[],worldLandmarks:[],handedness:[],handednesses:[]}:{gestures:t.gestures,landmarks:t.landmarks,worldLandmarks:t.worldLandmarks,handedness:t.handedness,handednesses:t.handedness}}function gc(t,e=!0){const n=[];for(const i of t){var r=ss(i);t=[];for(const n of r.g())r=e&&null!=_n(n,1)?_n(n,1)??0:-1,t.push({score:En(n,2)??0,index:r,categoryName:vn(n,3)??\"\"??\"\",displayName:vn(n,4)??\"\"??\"\"});n.push(t)}return n}var mc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!1),this.gestures=[],this.landmarks=[],this.worldLandmarks=[],this.handedness=[],dn(t=this.j=new Js,0,1,e=new Is),this.s=new qs,dn(this.j,0,2,this.s),this.C=new $s,dn(this.s,0,3,this.C),this.v=new Ys,dn(this.s,0,2,this.v),this.h=new Ks,dn(this.j,0,3,this.h),An(this.v,2,.5),An(this.s,4,.5),An(this.C,2,.5)}get baseOptions(){return hn(this.j,Is,1)}set baseOptions(t){dn(this.j,0,1,t)}o(t){if(Tn(this.v,3,t.numHands??1),\"minHandDetectionConfidence\"in t&&An(this.v,2,t.minHandDetectionConfidence??.5),\"minTrackingConfidence\"in t&&An(this.s,4,t.minTrackingConfidence??.5),\"minHandPresenceConfidence\"in t&&An(this.C,2,t.minHandPresenceConfidence??.5),t.cannedGesturesClassifierOptions){var e=new Ws,n=e,r=ko(t.cannedGesturesClassifierOptions,hn(this.h,Ws,3)?.h());dn(n,0,2,r),dn(this.h,0,3,e)}else void 0===t.cannedGesturesClassifierOptions&&hn(this.h,Ws,3)?.g();return t.customGesturesClassifierOptions?(dn(n=e=new Ws,0,2,r=ko(t.customGesturesClassifierOptions,hn(this.h,Ws,4)?.h())),dn(this.h,0,4,e)):void 0===t.customGesturesClassifierOptions&&hn(this.h,Ws,4)?.g(),this.l(t)}Fa(t,e){return fc(this),Ya(this,t,e),pc(this)}Ga(t,e,n){return fc(this),$a(this,t,n,e),pc(this)}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\"),Zi(t,\"hand_gestures\"),Zi(t,\"hand_landmarks\"),Zi(t,\"world_hand_landmarks\"),Zi(t,\"handedness\");const e=new Gi;Yn(e,no,this.j);const n=new zi;Xi(n,\"mediapipe.tasks.vision.gesture_recognizer.GestureRecognizerGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"HAND_GESTURES:hand_gestures\"),Wi(n,\"LANDMARKS:hand_landmarks\"),Wi(n,\"WORLD_LANDMARKS:world_hand_landmarks\"),Wi(n,\"HANDEDNESS:handedness\"),n.o(e),qi(t,n),this.g.attachProtoVectorListener(\"hand_landmarks\",((t,e)=>{for(const e of t){t=fs(e);const n=[];for(const e of ln(t,ds,1))n.push({x:En(e,1)??0,y:En(e,2)??0,z:En(e,3)??0,visibility:En(e,4)??0});this.landmarks.push(n)}Yo(this,e)})),this.g.attachEmptyPacketListener(\"hand_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoVectorListener(\"world_hand_landmarks\",((t,e)=>{for(const e of t){t=ls(e);const n=[];for(const e of ln(t,us,1))n.push({x:En(e,1)??0,y:En(e,2)??0,z:En(e,3)??0,visibility:En(e,4)??0});this.worldLandmarks.push(n)}Yo(this,e)})),this.g.attachEmptyPacketListener(\"world_hand_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoVectorListener(\"hand_gestures\",((t,e)=>{this.gestures.push(...gc(t,!1)),Yo(this,e)})),this.g.attachEmptyPacketListener(\"hand_gestures\",(t=>{Yo(this,t)})),this.g.attachProtoVectorListener(\"handedness\",((t,e)=>{this.handedness.push(...gc(t)),Yo(this,e)})),this.g.attachEmptyPacketListener(\"handedness\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};function yc(t){return{landmarks:t.landmarks,worldLandmarks:t.worldLandmarks,handednesses:t.handedness,handedness:t.handedness}}mc.prototype.recognizeForVideo=mc.prototype.Ga,mc.prototype.recognize=mc.prototype.Fa,mc.prototype.setOptions=mc.prototype.o,mc.createFromModelPath=function(t,e){return za(mc,t,{baseOptions:{modelAssetPath:e}})},mc.createFromModelBuffer=function(t,e){return za(mc,t,{baseOptions:{modelAssetBuffer:e}})},mc.createFromOptions=function(t,e){return za(mc,t,e)},mc.HAND_CONNECTIONS=dc;var _c=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!1),this.landmarks=[],this.worldLandmarks=[],this.handedness=[],dn(t=this.h=new qs,0,1,e=new Is),this.s=new $s,dn(this.h,0,3,this.s),this.j=new Ys,dn(this.h,0,2,this.j),Tn(this.j,3,1),An(this.j,2,.5),An(this.s,2,.5),An(this.h,4,.5)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return\"numHands\"in t&&Tn(this.j,3,t.numHands??1),\"minHandDetectionConfidence\"in t&&An(this.j,2,t.minHandDetectionConfidence??.5),\"minTrackingConfidence\"in t&&An(this.h,4,t.minTrackingConfidence??.5),\"minHandPresenceConfidence\"in t&&An(this.s,2,t.minHandPresenceConfidence??.5),this.l(t)}D(t,e){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],Ya(this,t,e),yc(this)}F(t,e,n){return this.landmarks=[],this.worldLandmarks=[],this.handedness=[],$a(this,t,n,e),yc(this)}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\"),Zi(t,\"hand_landmarks\"),Zi(t,\"world_hand_landmarks\"),Zi(t,\"handedness\");const e=new Gi;Yn(e,ro,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.hand_landmarker.HandLandmarkerGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"LANDMARKS:hand_landmarks\"),Wi(n,\"WORLD_LANDMARKS:world_hand_landmarks\"),Wi(n,\"HANDEDNESS:handedness\"),n.o(e),qi(t,n),this.g.attachProtoVectorListener(\"hand_landmarks\",((t,e)=>{for(const e of t)t=fs(e),this.landmarks.push(Lo(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"hand_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoVectorListener(\"world_hand_landmarks\",((t,e)=>{for(const e of t)t=ls(e),this.worldLandmarks.push(Ro(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"world_hand_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoVectorListener(\"handedness\",((t,e)=>{var n=this.handedness,r=n.push;const i=[];for(const e of t){t=ss(e);const n=[];for(const e of t.g())n.push({score:En(e,2)??0,index:_n(e,1)??0??-1,categoryName:vn(e,3)??\"\"??\"\",displayName:vn(e,4)??\"\"??\"\"});i.push(n)}r.call(n,...i),Yo(this,e)})),this.g.attachEmptyPacketListener(\"handedness\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};_c.prototype.detectForVideo=_c.prototype.F,_c.prototype.detect=_c.prototype.D,_c.prototype.setOptions=_c.prototype.o,_c.createFromModelPath=function(t,e){return za(_c,t,{baseOptions:{modelAssetPath:e}})},_c.createFromModelBuffer=function(t,e){return za(_c,t,{baseOptions:{modelAssetBuffer:e}})},_c.createFromOptions=function(t,e){return za(_c,t,e)},_c.HAND_CONNECTIONS=dc;var vc=Va([0,1],[1,2],[2,3],[3,7],[0,4],[4,5],[5,6],[6,8],[9,10],[11,12],[11,13],[13,15],[15,17],[15,19],[15,21],[17,19],[12,14],[14,16],[16,18],[16,20],[16,22],[18,20],[11,23],[12,24],[23,24],[23,25],[24,26],[25,27],[26,28],[27,29],[28,30],[29,31],[30,32],[27,31],[28,32]);function Ec(t){t.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]}}function wc(t){try{if(!t.C)return t.h;t.C(t.h)}finally{Jo(t)}}function Tc(t,e){t=fs(t),e.push(Lo(t))}var Ac=class extends Ja{constructor(t,e){super(new Wa(t,e),\"input_frames_image\",null,!1),this.h={faceLandmarks:[],faceBlendshapes:[],poseLandmarks:[],poseWorldLandmarks:[],poseSegmentationMasks:[],leftHandLandmarks:[],leftHandWorldLandmarks:[],rightHandLandmarks:[],rightHandWorldLandmarks:[]},this.outputPoseSegmentationMasks=this.outputFaceBlendshapes=!1,dn(t=this.j=new ao,0,1,e=new Is),this.K=new $s,dn(this.j,0,2,this.K),this.Y=new io,dn(this.j,0,3,this.Y),this.s=new Cs,dn(this.j,0,4,this.s),this.H=new Ns,dn(this.j,0,5,this.H),this.v=new so,dn(this.j,0,6,this.v),this.L=new oo,dn(this.j,0,7,this.L),An(this.s,2,.5),An(this.s,3,.3),An(this.H,2,.5),An(this.v,2,.5),An(this.v,3,.3),An(this.L,2,.5),An(this.K,2,.5)}get baseOptions(){return hn(this.j,Is,1)}set baseOptions(t){dn(this.j,0,1,t)}o(t){return\"minFaceDetectionConfidence\"in t&&An(this.s,2,t.minFaceDetectionConfidence??.5),\"minFaceSuppressionThreshold\"in t&&An(this.s,3,t.minFaceSuppressionThreshold??.3),\"minFacePresenceConfidence\"in t&&An(this.H,2,t.minFacePresenceConfidence??.5),\"outputFaceBlendshapes\"in t&&(this.outputFaceBlendshapes=!!t.outputFaceBlendshapes),\"minPoseDetectionConfidence\"in t&&An(this.v,2,t.minPoseDetectionConfidence??.5),\"minPoseSuppressionThreshold\"in t&&An(this.v,3,t.minPoseSuppressionThreshold??.3),\"minPosePresenceConfidence\"in t&&An(this.L,2,t.minPosePresenceConfidence??.5),\"outputPoseSegmentationMasks\"in t&&(this.outputPoseSegmentationMasks=!!t.outputPoseSegmentationMasks),\"minHandLandmarksConfidence\"in t&&An(this.K,2,t.minHandLandmarksConfidence??.5),this.l(t)}D(t,e,n){const r=\"function\"!=typeof e?e:{};return this.C=\"function\"==typeof e?e:n,Ec(this),Ya(this,t,r),wc(this)}F(t,e,n,r){const i=\"function\"!=typeof n?n:{};return this.C=\"function\"==typeof n?n:r,Ec(this),$a(this,t,i,e),wc(this)}m(){var t=new Qi;Ji(t,\"input_frames_image\"),Zi(t,\"pose_landmarks\"),Zi(t,\"pose_world_landmarks\"),Zi(t,\"face_landmarks\"),Zi(t,\"left_hand_landmarks\"),Zi(t,\"left_hand_world_landmarks\"),Zi(t,\"right_hand_landmarks\"),Zi(t,\"right_hand_world_landmarks\");const e=new Gi,n=new xi;tn(n,1,de(\"type.googleapis.com/mediapipe.tasks.vision.holistic_landmarker.proto.HolisticLandmarkerGraphOptions\"),\"\"),function(t,e){if(null!=e)if(Array.isArray(e))He(t,2,Pe(e,Oe,void 0,void 0,!1));else{if(!(\"string\"==typeof e||e instanceof N||C(e)))throw Error(\"invalid value in Any.value field: \"+e+\" expected a ByteString, a base64 encoded string, a Uint8Array or a jspb array\");tn(t,2,dt(e,!1),U())}}(n,this.j.g());const r=new zi;Xi(r,\"mediapipe.tasks.vision.holistic_landmarker.HolisticLandmarkerGraph\"),yn(r,8,xi,n),Hi(r,\"IMAGE:input_frames_image\"),Wi(r,\"POSE_LANDMARKS:pose_landmarks\"),Wi(r,\"POSE_WORLD_LANDMARKS:pose_world_landmarks\"),Wi(r,\"FACE_LANDMARKS:face_landmarks\"),Wi(r,\"LEFT_HAND_LANDMARKS:left_hand_landmarks\"),Wi(r,\"LEFT_HAND_WORLD_LANDMARKS:left_hand_world_landmarks\"),Wi(r,\"RIGHT_HAND_LANDMARKS:right_hand_landmarks\"),Wi(r,\"RIGHT_HAND_WORLD_LANDMARKS:right_hand_world_landmarks\"),r.o(e),qi(t,r),$o(this,t),this.g.attachProtoListener(\"pose_landmarks\",((t,e)=>{Tc(t,this.h.poseLandmarks),Yo(this,e)})),this.g.attachEmptyPacketListener(\"pose_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoListener(\"pose_world_landmarks\",((t,e)=>{var n=this.h.poseWorldLandmarks;t=ls(t),n.push(Ro(t)),Yo(this,e)})),this.g.attachEmptyPacketListener(\"pose_world_landmarks\",(t=>{Yo(this,t)})),this.outputPoseSegmentationMasks&&(Wi(r,\"POSE_SEGMENTATION_MASK:pose_segmentation_mask\"),qo(this,\"pose_segmentation_mask\"),this.g.V(\"pose_segmentation_mask\",((t,e)=>{this.h.poseSegmentationMasks=[qa(this,t,!0,!this.C)],Yo(this,e)})),this.g.attachEmptyPacketListener(\"pose_segmentation_mask\",(t=>{this.h.poseSegmentationMasks=[],Yo(this,t)}))),this.g.attachProtoListener(\"face_landmarks\",((t,e)=>{Tc(t,this.h.faceLandmarks),Yo(this,e)})),this.g.attachEmptyPacketListener(\"face_landmarks\",(t=>{Yo(this,t)})),this.outputFaceBlendshapes&&(Zi(t,\"extra_blendshapes\"),Wi(r,\"FACE_BLENDSHAPES:extra_blendshapes\"),this.g.attachProtoListener(\"extra_blendshapes\",((t,e)=>{var n=this.h.faceBlendshapes;this.outputFaceBlendshapes&&(t=ss(t),n.push(So(t.g()??[]))),Yo(this,e)})),this.g.attachEmptyPacketListener(\"extra_blendshapes\",(t=>{Yo(this,t)}))),this.g.attachProtoListener(\"left_hand_landmarks\",((t,e)=>{Tc(t,this.h.leftHandLandmarks),Yo(this,e)})),this.g.attachEmptyPacketListener(\"left_hand_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoListener(\"left_hand_world_landmarks\",((t,e)=>{var n=this.h.leftHandWorldLandmarks;t=ls(t),n.push(Ro(t)),Yo(this,e)})),this.g.attachEmptyPacketListener(\"left_hand_world_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoListener(\"right_hand_landmarks\",((t,e)=>{Tc(t,this.h.rightHandLandmarks),Yo(this,e)})),this.g.attachEmptyPacketListener(\"right_hand_landmarks\",(t=>{Yo(this,t)})),this.g.attachProtoListener(\"right_hand_world_landmarks\",((t,e)=>{var n=this.h.rightHandWorldLandmarks;t=ls(t),n.push(Ro(t)),Yo(this,e)})),this.g.attachEmptyPacketListener(\"right_hand_world_landmarks\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Ac.prototype.detectForVideo=Ac.prototype.F,Ac.prototype.detect=Ac.prototype.D,Ac.prototype.setOptions=Ac.prototype.o,Ac.createFromModelPath=function(t,e){return za(Ac,t,{baseOptions:{modelAssetPath:e}})},Ac.createFromModelBuffer=function(t,e){return za(Ac,t,{baseOptions:{modelAssetBuffer:e}})},Ac.createFromOptions=function(t,e){return za(Ac,t,e)},Ac.HAND_CONNECTIONS=dc,Ac.POSE_CONNECTIONS=vc,Ac.FACE_LANDMARKS_LIPS=Qa,Ac.FACE_LANDMARKS_LEFT_EYE=tc,Ac.FACE_LANDMARKS_LEFT_EYEBROW=ec,Ac.FACE_LANDMARKS_LEFT_IRIS=nc,Ac.FACE_LANDMARKS_RIGHT_EYE=rc,Ac.FACE_LANDMARKS_RIGHT_EYEBROW=ic,Ac.FACE_LANDMARKS_RIGHT_IRIS=sc,Ac.FACE_LANDMARKS_FACE_OVAL=oc,Ac.FACE_LANDMARKS_CONTOURS=ac,Ac.FACE_LANDMARKS_TESSELATION=cc;var bc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"input_image\",\"norm_rect\",!0),this.j={classifications:[]},dn(t=this.h=new uo,0,1,e=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return dn(this.h,0,2,ko(t,hn(this.h,bs,2))),this.l(t)}qa(t,e){return this.j={classifications:[]},Ya(this,t,e),this.j}ra(t,e,n){return this.j={classifications:[]},$a(this,t,n,e),this.j}m(){var t=new Qi;Ji(t,\"input_image\"),Ji(t,\"norm_rect\"),Zi(t,\"classifications\");const e=new Gi;Yn(e,lo,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.image_classifier.ImageClassifierGraph\"),Hi(n,\"IMAGE:input_image\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"CLASSIFICATIONS:classifications\"),n.o(e),qi(t,n),this.g.attachProtoListener(\"classifications\",((t,e)=>{this.j=function(t){const e={classifications:ln(t,ys,1).map((t=>So(hn(t,rs,4)?.g()??[],_n(t,2)??0,vn(t,3)??\"\")))};return null!=he(Ve(t,2))&&(e.timestampMs=he(Ve(t,2))??0),e}(_s(t)),Yo(this,e)})),this.g.attachEmptyPacketListener(\"classifications\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};bc.prototype.classifyForVideo=bc.prototype.ra,bc.prototype.classify=bc.prototype.qa,bc.prototype.setOptions=bc.prototype.o,bc.createFromModelPath=function(t,e){return za(bc,t,{baseOptions:{modelAssetPath:e}})},bc.createFromModelBuffer=function(t,e){return za(bc,t,{baseOptions:{modelAssetBuffer:e}})},bc.createFromOptions=function(t,e){return za(bc,t,e)};var kc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!0),this.h=new fo,this.embeddings={embeddings:[]},dn(t=this.h,0,1,e=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){var e=this.h,n=hn(this.h,Ss,2);return n=n?n.clone():new Ss,void 0!==t.l2Normalize?wn(n,1,t.l2Normalize):\"l2Normalize\"in t&&He(n,1),void 0!==t.quantize?wn(n,2,t.quantize):\"quantize\"in t&&He(n,2),dn(e,0,2,n),this.l(t)}xa(t,e){return Ya(this,t,e),this.embeddings}ya(t,e,n){return $a(this,t,n,e),this.embeddings}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\"),Zi(t,\"embeddings_out\");const e=new Gi;Yn(e,po,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.image_embedder.ImageEmbedderGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"EMBEDDINGS:embeddings_out\"),n.o(e),qi(t,n),this.g.attachProtoListener(\"embeddings_out\",((t,e)=>{t=As(t),this.embeddings=function(t){return{embeddings:ln(t,ws,1).map((t=>{const e={headIndex:_n(t,3)??0??-1,headName:vn(t,4)??\"\"??\"\"};if(void 0!==cn(t,vs,nn(t,1)))t=$e(t=hn(t,vs,nn(t,1)),1,qt,Ye()),e.floatEmbedding=t.slice();else{const n=new Uint8Array(0);e.quantizedEmbedding=hn(t,Es,nn(t,2))?.ma()?.h()??n}return e})),timestampMs:he(Ve(t,2))??0}}(t),Yo(this,e)})),this.g.attachEmptyPacketListener(\"embeddings_out\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};kc.cosineSimilarity=function(t,e){if(t.floatEmbedding&&e.floatEmbedding)t=Io(t.floatEmbedding,e.floatEmbedding);else{if(!t.quantizedEmbedding||!e.quantizedEmbedding)throw Error(\"Cannot compute cosine similarity between quantized and float embeddings.\");t=Io(Fo(t.quantizedEmbedding),Fo(e.quantizedEmbedding))}return t},kc.prototype.embedForVideo=kc.prototype.ya,kc.prototype.embed=kc.prototype.xa,kc.prototype.setOptions=kc.prototype.o,kc.createFromModelPath=function(t,e){return za(kc,t,{baseOptions:{modelAssetPath:e}})},kc.createFromModelBuffer=function(t,e){return za(kc,t,{baseOptions:{modelAssetBuffer:e}})},kc.createFromOptions=function(t,e){return za(kc,t,e)};var Sc=class{constructor(t,e,n){this.confidenceMasks=t,this.categoryMask=e,this.qualityScores=n}close(){this.confidenceMasks?.forEach((t=>{t.close()})),this.categoryMask?.close()}};function xc(t){t.categoryMask=void 0,t.confidenceMasks=void 0,t.qualityScores=void 0}function Lc(t){try{const e=new Sc(t.confidenceMasks,t.categoryMask,t.qualityScores);if(!t.j)return e;t.j(e)}finally{Jo(t)}}Sc.prototype.close=Sc.prototype.close;var Rc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!1),this.s=[],this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new vo,this.v=new go,dn(this.h,0,3,this.v),dn(t=this.h,0,1,e=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return void 0!==t.displayNamesLocale?He(this.h,2,de(t.displayNamesLocale)):\"displayNamesLocale\"in t&&He(this.h,2),\"outputCategoryMask\"in t&&(this.outputCategoryMask=t.outputCategoryMask??!1),\"outputConfidenceMasks\"in t&&(this.outputConfidenceMasks=t.outputConfidenceMasks??!0),super.l(t)}J(){!function(t){const e=ln(t.ca(),zi,1).filter((t=>(vn(t,1)??\"\").includes(\"mediapipe.tasks.TensorsToSegmentationCalculator\")));if(t.s=[],e.length>1)throw Error(\"The graph has more than one mediapipe.tasks.TensorsToSegmentationCalculator.\");1===e.length&&(hn(e[0],Gi,7)?.l()?.g()??new Map).forEach(((e,n)=>{t.s[Number(n)]=vn(e,1)??\"\"}))}(this)}segment(t,e,n){const r=\"function\"!=typeof e?e:{};return this.j=\"function\"==typeof e?e:n,xc(this),Ya(this,t,r),Lc(this)}Ia(t,e,n,r){const i=\"function\"!=typeof n?n:{};return this.j=\"function\"==typeof n?n:r,xc(this),$a(this,t,i,e),Lc(this)}Ba(){return this.s}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\");const e=new Gi;Yn(e,Eo,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.image_segmenter.ImageSegmenterGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),n.o(e),qi(t,n),$o(this,t),this.outputConfidenceMasks&&(Zi(t,\"confidence_masks\"),Wi(n,\"CONFIDENCE_MASKS:confidence_masks\"),qo(this,\"confidence_masks\"),this.g.ba(\"confidence_masks\",((t,e)=>{this.confidenceMasks=t.map((t=>qa(this,t,!0,!this.j))),Yo(this,e)})),this.g.attachEmptyPacketListener(\"confidence_masks\",(t=>{this.confidenceMasks=[],Yo(this,t)}))),this.outputCategoryMask&&(Zi(t,\"category_mask\"),Wi(n,\"CATEGORY_MASK:category_mask\"),qo(this,\"category_mask\"),this.g.V(\"category_mask\",((t,e)=>{this.categoryMask=qa(this,t,!1,!this.j),Yo(this,e)})),this.g.attachEmptyPacketListener(\"category_mask\",(t=>{this.categoryMask=void 0,Yo(this,t)}))),Zi(t,\"quality_scores\"),Wi(n,\"QUALITY_SCORES:quality_scores\"),this.g.attachFloatVectorListener(\"quality_scores\",((t,e)=>{this.qualityScores=t,Yo(this,e)})),this.g.attachEmptyPacketListener(\"quality_scores\",(t=>{this.categoryMask=void 0,Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Rc.prototype.getLabels=Rc.prototype.Ba,Rc.prototype.segmentForVideo=Rc.prototype.Ia,Rc.prototype.segment=Rc.prototype.segment,Rc.prototype.setOptions=Rc.prototype.o,Rc.createFromModelPath=function(t,e){return za(Rc,t,{baseOptions:{modelAssetPath:e}})},Rc.createFromModelBuffer=function(t,e){return za(Rc,t,{baseOptions:{modelAssetBuffer:e}})},Rc.createFromOptions=function(t,e){return za(Rc,t,e)};var Fc=class{constructor(t,e,n){this.confidenceMasks=t,this.categoryMask=e,this.qualityScores=n}close(){this.confidenceMasks?.forEach((t=>{t.close()})),this.categoryMask?.close()}};Fc.prototype.close=Fc.prototype.close;var Ic=class extends $n{constructor(t){super(t)}},Mc=[0,hi,-2],Pc=[0,ni,-3,di,ni,-1],Cc=[0,Pc],Oc=[0,Pc,hi,-1],Uc=class extends $n{constructor(t){super(t)}},Dc=[0,ni,-1,di],Nc=class extends $n{constructor(t){super(t)}},Bc=class extends $n{constructor(t){super(t)}},Gc=[1,2,3,4,5,6,7,8,9,10,14,15],jc=class extends $n{constructor(t){super(t)}};jc.prototype.g=Si([0,yi,[0,Gc,_i,Pc,_i,[0,Pc,Mc],_i,Cc,_i,[0,Cc,Mc],_i,Dc,_i,[0,ni,-3,di,Ti],_i,[0,ni,-3,di],_i,[0,mi,ni,-2,di,hi,di,-1,2,ni,Mc],_i,Oc,_i,[0,Oc,Mc],ni,Mc,mi,_i,[0,ni,-3,di,Mc,-1],_i,[0,yi,Dc]],mi,[0,mi,hi,-1,di]]);var Vc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect_in\",!1),this.outputCategoryMask=!1,this.outputConfidenceMasks=!0,this.h=new vo,this.s=new go,dn(this.h,0,3,this.s),dn(t=this.h,0,1,e=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return\"outputCategoryMask\"in t&&(this.outputCategoryMask=t.outputCategoryMask??!1),\"outputConfidenceMasks\"in t&&(this.outputConfidenceMasks=t.outputConfidenceMasks??!0),super.l(t)}segment(t,e,n,r){const i=\"function\"!=typeof n?n:{};this.j=\"function\"==typeof n?n:r,this.qualityScores=this.categoryMask=this.confidenceMasks=void 0,n=this.B+1,r=new jc;const s=new Bc;var o=new Ic;if(Tn(o,1,255),dn(s,0,12,o),e.keypoint&&e.scribble)throw Error(\"Cannot provide both keypoint and scribble.\");if(e.keypoint){var a=new Uc;wn(a,3,!0),An(a,1,e.keypoint.x),An(a,2,e.keypoint.y),fn(s,5,Gc,a)}else{if(!e.scribble)throw Error(\"Must provide either a keypoint or a scribble.\");for(a of(o=new Nc,e.scribble))wn(e=new Uc,3,!0),An(e,1,a.x),An(e,2,a.y),yn(o,1,Uc,e);fn(s,15,Gc,o)}yn(r,1,Bc,s),this.g.addProtoToStream(r.g(),\"drishti.RenderData\",\"roi_in\",n),Ya(this,t,i);t:{try{const t=new Fc(this.confidenceMasks,this.categoryMask,this.qualityScores);if(!this.j){var c=t;break t}this.j(t)}finally{Jo(this)}c=void 0}return c}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"roi_in\"),Ji(t,\"norm_rect_in\");const e=new Gi;Yn(e,Eo,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.interactive_segmenter.InteractiveSegmenterGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"ROI:roi_in\"),Hi(n,\"NORM_RECT:norm_rect_in\"),n.o(e),qi(t,n),$o(this,t),this.outputConfidenceMasks&&(Zi(t,\"confidence_masks\"),Wi(n,\"CONFIDENCE_MASKS:confidence_masks\"),qo(this,\"confidence_masks\"),this.g.ba(\"confidence_masks\",((t,e)=>{this.confidenceMasks=t.map((t=>qa(this,t,!0,!this.j))),Yo(this,e)})),this.g.attachEmptyPacketListener(\"confidence_masks\",(t=>{this.confidenceMasks=[],Yo(this,t)}))),this.outputCategoryMask&&(Zi(t,\"category_mask\"),Wi(n,\"CATEGORY_MASK:category_mask\"),qo(this,\"category_mask\"),this.g.V(\"category_mask\",((t,e)=>{this.categoryMask=qa(this,t,!1,!this.j),Yo(this,e)})),this.g.attachEmptyPacketListener(\"category_mask\",(t=>{this.categoryMask=void 0,Yo(this,t)}))),Zi(t,\"quality_scores\"),Wi(n,\"QUALITY_SCORES:quality_scores\"),this.g.attachFloatVectorListener(\"quality_scores\",((t,e)=>{this.qualityScores=t,Yo(this,e)})),this.g.attachEmptyPacketListener(\"quality_scores\",(t=>{this.categoryMask=void 0,Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Vc.prototype.segment=Vc.prototype.segment,Vc.prototype.setOptions=Vc.prototype.o,Vc.createFromModelPath=function(t,e){return za(Vc,t,{baseOptions:{modelAssetPath:e}})},Vc.createFromModelBuffer=function(t,e){return za(Vc,t,{baseOptions:{modelAssetBuffer:e}})},Vc.createFromOptions=function(t,e){return za(Vc,t,e)};var Xc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"input_frame_gpu\",\"norm_rect\",!1),this.j={detections:[]},dn(t=this.h=new wo,0,1,e=new Is)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return void 0!==t.displayNamesLocale?He(this.h,2,de(t.displayNamesLocale)):\"displayNamesLocale\"in t&&He(this.h,2),void 0!==t.maxResults?Tn(this.h,3,t.maxResults):\"maxResults\"in t&&He(this.h,3),void 0!==t.scoreThreshold?An(this.h,4,t.scoreThreshold):\"scoreThreshold\"in t&&He(this.h,4),void 0!==t.categoryAllowlist?bn(this.h,5,t.categoryAllowlist):\"categoryAllowlist\"in t&&He(this.h,5),void 0!==t.categoryDenylist?bn(this.h,6,t.categoryDenylist):\"categoryDenylist\"in t&&He(this.h,6),this.l(t)}D(t,e){return this.j={detections:[]},Ya(this,t,e),this.j}F(t,e,n){return this.j={detections:[]},$a(this,t,n,e),this.j}m(){var t=new Qi;Ji(t,\"input_frame_gpu\"),Ji(t,\"norm_rect\"),Zi(t,\"detections\");const e=new Gi;Yn(e,To,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.ObjectDetectorGraph\"),Hi(n,\"IMAGE:input_frame_gpu\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"DETECTIONS:detections\"),n.o(e),qi(t,n),this.g.attachProtoVectorListener(\"detections\",((t,e)=>{for(const e of t)t=hs(e),this.j.detections.push(xo(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"detections\",(t=>{Yo(this,t)})),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Xc.prototype.detectForVideo=Xc.prototype.F,Xc.prototype.detect=Xc.prototype.D,Xc.prototype.setOptions=Xc.prototype.o,Xc.createFromModelPath=async function(t,e){return za(Xc,t,{baseOptions:{modelAssetPath:e}})},Xc.createFromModelBuffer=function(t,e){return za(Xc,t,{baseOptions:{modelAssetBuffer:e}})},Xc.createFromOptions=function(t,e){return za(Xc,t,e)};var Hc=class{constructor(t,e,n){this.landmarks=t,this.worldLandmarks=e,this.segmentationMasks=n}close(){this.segmentationMasks?.forEach((t=>{t.close()}))}};function Wc(t){t.landmarks=[],t.worldLandmarks=[],t.segmentationMasks=void 0}function zc(t){try{const e=new Hc(t.landmarks,t.worldLandmarks,t.segmentationMasks);if(!t.s)return e;t.s(e)}finally{Jo(t)}}Hc.prototype.close=Hc.prototype.close;var Kc=class extends Ja{constructor(t,e){super(new Wa(t,e),\"image_in\",\"norm_rect\",!1),this.landmarks=[],this.worldLandmarks=[],this.outputSegmentationMasks=!1,dn(t=this.h=new Ao,0,1,e=new Is),this.v=new oo,dn(this.h,0,3,this.v),this.j=new so,dn(this.h,0,2,this.j),Tn(this.j,4,1),An(this.j,2,.5),An(this.v,2,.5),An(this.h,4,.5)}get baseOptions(){return hn(this.h,Is,1)}set baseOptions(t){dn(this.h,0,1,t)}o(t){return\"numPoses\"in t&&Tn(this.j,4,t.numPoses??1),\"minPoseDetectionConfidence\"in t&&An(this.j,2,t.minPoseDetectionConfidence??.5),\"minTrackingConfidence\"in t&&An(this.h,4,t.minTrackingConfidence??.5),\"minPosePresenceConfidence\"in t&&An(this.v,2,t.minPosePresenceConfidence??.5),\"outputSegmentationMasks\"in t&&(this.outputSegmentationMasks=t.outputSegmentationMasks??!1),this.l(t)}D(t,e,n){const r=\"function\"!=typeof e?e:{};return this.s=\"function\"==typeof e?e:n,Wc(this),Ya(this,t,r),zc(this)}F(t,e,n,r){const i=\"function\"!=typeof n?n:{};return this.s=\"function\"==typeof n?n:r,Wc(this),$a(this,t,i,e),zc(this)}m(){var t=new Qi;Ji(t,\"image_in\"),Ji(t,\"norm_rect\"),Zi(t,\"normalized_landmarks\"),Zi(t,\"world_landmarks\"),Zi(t,\"segmentation_masks\");const e=new Gi;Yn(e,bo,this.h);const n=new zi;Xi(n,\"mediapipe.tasks.vision.pose_landmarker.PoseLandmarkerGraph\"),Hi(n,\"IMAGE:image_in\"),Hi(n,\"NORM_RECT:norm_rect\"),Wi(n,\"NORM_LANDMARKS:normalized_landmarks\"),Wi(n,\"WORLD_LANDMARKS:world_landmarks\"),n.o(e),qi(t,n),$o(this,t),this.g.attachProtoVectorListener(\"normalized_landmarks\",((t,e)=>{this.landmarks=[];for(const e of t)t=fs(e),this.landmarks.push(Lo(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"normalized_landmarks\",(t=>{this.landmarks=[],Yo(this,t)})),this.g.attachProtoVectorListener(\"world_landmarks\",((t,e)=>{this.worldLandmarks=[];for(const e of t)t=ls(e),this.worldLandmarks.push(Ro(t));Yo(this,e)})),this.g.attachEmptyPacketListener(\"world_landmarks\",(t=>{this.worldLandmarks=[],Yo(this,t)})),this.outputSegmentationMasks&&(Wi(n,\"SEGMENTATION_MASK:segmentation_masks\"),qo(this,\"segmentation_masks\"),this.g.ba(\"segmentation_masks\",((t,e)=>{this.segmentationMasks=t.map((t=>qa(this,t,!0,!this.s))),Yo(this,e)})),this.g.attachEmptyPacketListener(\"segmentation_masks\",(t=>{this.segmentationMasks=[],Yo(this,t)}))),t=t.g(),this.setGraph(new Uint8Array(t),!0)}};Kc.prototype.detectForVideo=Kc.prototype.F,Kc.prototype.detect=Kc.prototype.D,Kc.prototype.setOptions=Kc.prototype.o,Kc.createFromModelPath=function(t,e){return za(Kc,t,{baseOptions:{modelAssetPath:e}})},Kc.createFromModelBuffer=function(t,e){return za(Kc,t,{baseOptions:{modelAssetBuffer:e}})},Kc.createFromOptions=function(t,e){return za(Kc,t,e)},Kc.POSE_CONNECTIONS=vc;export{Ia as DrawingUtils,Za as FaceDetector,uc as FaceLandmarker,lc as FaceStylizer,Uo as FilesetResolver,mc as GestureRecognizer,_c as HandLandmarker,Ac as HolisticLandmarker,bc as ImageClassifier,kc as ImageEmbedder,Rc as ImageSegmenter,Sc as ImageSegmenterResult,Vc as InteractiveSegmenter,Fc as InteractiveSegmenterResult,Ga as MPImage,Ea as MPMask,Xc as ObjectDetector,Kc as PoseLandmarker,Zo as TaskRunner,Ja as VisionTaskRunner};\n//# sourceMappingURL=vision_bundle_mjs.js.map\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","/**\n * Calculate the size of a face relative to the video frame\n */\nexport const calculateFaceSize = (landmarks: any): number => {\n if (!landmarks || landmarks.length === 0) return 0;\n\n const face = landmarks[0];\n\n if (!face || face.length === 0) return 0;\n\n // Get bounding box of face landmarks\n let minX = 1;\n let maxX = 0;\n let minY = 1;\n let maxY = 0;\n\n face.forEach((landmark: any) => {\n if (\n landmark &&\n typeof landmark.x === 'number' &&\n typeof landmark.y === 'number'\n ) {\n minX = Math.min(minX, landmark.x);\n maxX = Math.max(maxX, landmark.x);\n minY = Math.min(minY, landmark.y);\n maxY = Math.max(maxY, landmark.y);\n }\n });\n\n // Calculate face size as percentage of video area\n const faceWidth = maxX - minX;\n const faceHeight = maxY - minY;\n const faceSize = Math.max(faceWidth, faceHeight);\n\n return faceSize;\n};\n\n/**\n * Check if a face is positioned within the oval bounds\n */\nexport const isFaceInBounds = (\n landmarks: any,\n videoAspectRatio: number,\n): boolean => {\n if (!landmarks || landmarks.length === 0) return false;\n\n const face = landmarks[0];\n\n let minX = 1;\n let maxX = 0;\n let minY = 1;\n let maxY = 0;\n face.forEach((landmark: any) => {\n minX = Math.min(minX, landmark.x);\n maxX = Math.max(maxX, landmark.x);\n minY = Math.min(minY, landmark.y);\n maxY = Math.max(maxY, landmark.y);\n });\n\n const ovalCenterX = 0.5;\n const ovalCenterY = 0.6;\n\n const isLandscape = videoAspectRatio > 1;\n let ovalWidth;\n let ovalHeight;\n if (isLandscape) {\n ovalWidth = 0.4;\n ovalHeight = 0.3;\n } else {\n ovalWidth = 0.35;\n ovalHeight = 0.5;\n }\n\n const faceCenterX = (minX + maxX) / 2;\n const faceCenterY = (minY + maxY) / 2;\n\n const centerTolerance = 0.2;\n const centerOvalWidth = ovalWidth * (1 + centerTolerance);\n const centerOvalHeight = ovalHeight * (1 + centerTolerance);\n\n const checkPointInCenterOval = (x: number, y: number) => {\n const dx = (x - ovalCenterX) / centerOvalWidth;\n const dy = (y - ovalCenterY) / centerOvalHeight;\n return dx * dx + dy * dy <= 1;\n };\n const centerInBounds = checkPointInCenterOval(faceCenterX, faceCenterY);\n\n const toleranceX = 0.2;\n const toleranceY = 0.1;\n const adjustedOvalWidth = ovalWidth * (1 + toleranceX);\n const adjustedOvalHeight = ovalHeight * (1 + toleranceY);\n\n const checkPointInExpandedOval = (x: number, y: number) => {\n const dx = (x - ovalCenterX) / adjustedOvalWidth;\n const dy = (y - ovalCenterY) / adjustedOvalHeight;\n return dx * dx + dy * dy <= 1;\n };\n\n const topLeft = checkPointInExpandedOval(minX, minY);\n const topRight = checkPointInExpandedOval(maxX, minY);\n const bottomLeft = checkPointInExpandedOval(minX, maxY);\n const bottomRight = checkPointInExpandedOval(maxX, maxY);\n\n return centerInBounds && topLeft && topRight && bottomLeft && bottomRight;\n};\n\n/**\n * Calculate mouth opening using face landmarks\n */\nexport const calculateMouthOpening = (landmarks: any): number => {\n if (!landmarks || landmarks.length === 0) return 0;\n\n const face = landmarks[0];\n if (!face || face.length === 0) return 0;\n\n // MediaPipe face landmark indices for mouth\n const upperLipCenter = face[13]; // Upper lip center\n const lowerLipCenter = face[14]; // Lower lip center\n\n if (!upperLipCenter || !lowerLipCenter) return 0;\n\n const mouthHeight = Math.abs(lowerLipCenter.y - upperLipCenter.y);\n\n const faceTop = Math.min(...face.map((p: any) => p.y));\n const faceBottom = Math.max(...face.map((p: any) => p.y));\n const faceHeight = faceBottom - faceTop;\n\n return faceHeight > 0 ? mouthHeight / faceHeight : 0;\n};\n","import { DrawingUtils, FaceLandmarker } from '@mediapipe/tasks-vision';\n\n/**\n * Create a cropped square canvas from video for face detection\n */\nexport const createCroppedVideoFrame = (\n videoElement: HTMLVideoElement,\n): HTMLCanvasElement | null => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n if (!ctx) return null;\n\n const sourceWidth = videoElement.videoWidth;\n const sourceHeight = videoElement.videoHeight;\n\n const squareSize = Math.min(sourceWidth, sourceHeight);\n const cropX = (sourceWidth - squareSize) / 2;\n const cropY = (sourceHeight - squareSize) / 2;\n\n canvas.width = squareSize;\n canvas.height = squareSize;\n\n ctx.drawImage(\n videoElement,\n cropX,\n cropY,\n squareSize,\n squareSize,\n 0,\n 0,\n squareSize,\n squareSize,\n );\n\n return canvas;\n};\n\n/**\n * Draw face mesh overlay on canvas\n */\nexport const drawFaceMesh = (\n canvas: HTMLCanvasElement,\n landmarks: any[],\n capturesTaken: number,\n smileCheckpoint: number,\n): void => {\n const ctx = canvas.getContext('2d');\n if (!ctx) return;\n\n const canvasWidth = canvas.width;\n const canvasHeight = canvas.height;\n\n ctx.clearRect(0, 0, canvasWidth, canvasHeight);\n const drawingUtils = new DrawingUtils(ctx);\n\n // use this if scaling is needed\n // const scaleFactor = Math.sqrt(canvasWidth * canvasHeight) / 500;\n\n landmarks.forEach((landmark) => {\n if (!landmark || landmark.length === 0) return;\n\n const outlineColor = 'rgba(162, 155, 254,0.4)';\n const lineWidth = 2; // Math.max(1, scaleFactor * 2);\n ctx.strokeStyle = 'rgba(255, 255, 255, 0.6)';\n ctx.lineWidth = lineWidth;\n ctx.lineCap = 'round';\n ctx.lineJoin = 'round';\n\n drawingUtils.drawLandmarks(landmark, {\n color: 'rgba(9, 132, 227,0.7)',\n lineWidth: 0.5,\n radius: 0.5,\n });\n drawingUtils.drawConnectors(\n landmark,\n FaceLandmarker.FACE_LANDMARKS_FACE_OVAL,\n {\n color: outlineColor,\n lineWidth,\n },\n );\n\n const isInSmileZone = capturesTaken > 0 && capturesTaken >= smileCheckpoint;\n if (isInSmileZone) {\n drawingUtils.drawConnectors(\n landmark,\n FaceLandmarker.FACE_LANDMARKS_LIPS,\n {\n color: outlineColor,\n lineWidth,\n },\n );\n }\n });\n};\n\n/**\n * Clear canvas completely\n */\nexport const clearCanvas = (canvas: HTMLCanvasElement): void => {\n const ctx = canvas.getContext('2d');\n if (ctx) {\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n }\n};\n","import { JPEG_QUALITY } from '../../../../../domain/constants/src/Constants';\n\nexport const captureImageFromVideo = (\n videoElement: HTMLVideoElement,\n isReference: boolean = false,\n): string | null => {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n if (!ctx) return null;\n\n const isPortrait = videoElement.videoHeight > videoElement.videoWidth;\n\n if (isReference) {\n if (isPortrait) {\n canvas.width = 480;\n canvas.height = Math.max(\n 640,\n (canvas.width * videoElement.videoHeight) / videoElement.videoWidth,\n );\n } else {\n canvas.width = 640;\n canvas.height = Math.max(\n 480,\n (canvas.width * videoElement.videoHeight) / videoElement.videoWidth,\n );\n }\n } else if (isPortrait) {\n canvas.width = 240;\n canvas.height = Math.max(\n 320,\n (canvas.width * videoElement.videoHeight) / videoElement.videoWidth,\n );\n } else {\n canvas.width = 320;\n canvas.height = Math.max(\n 240,\n (canvas.width * videoElement.videoHeight) / videoElement.videoWidth,\n );\n }\n\n // capture more of the user's head and avoid clipping\n const zoomOutFactor = 1;\n const sourceWidth = videoElement.videoWidth * zoomOutFactor;\n const sourceHeight = videoElement.videoHeight * zoomOutFactor;\n\n // center the zoomed out area\n const offsetX = (sourceWidth - videoElement.videoWidth) / 2;\n const offsetY = (sourceHeight - videoElement.videoHeight) / 2;\n\n // vertical offset to shift up and capture full head\n const verticalOffset = 0;\n\n ctx.drawImage(\n videoElement,\n -offsetX,\n -offsetY - verticalOffset,\n sourceWidth,\n sourceHeight,\n 0,\n 0,\n canvas.width,\n canvas.height,\n );\n\n return canvas.toDataURL('image/jpeg', JPEG_QUALITY);\n};\n","/**\n * The type of image submitted in the job request\n * @readonly\n * @enum {number}\n */\nexport const ImageType = {\n /** ID_CARD_BACK_IMAGE_BASE64 Base64 encoded back of ID card image (.jpg or .png) */\n ID_CARD_BACK_IMAGE_BASE64: 7,\n /** ID_CARD_BACK_IMAGE_FILE Back of ID card image in .png or .jpg file format */\n ID_CARD_BACK_IMAGE_FILE: 5,\n /** ID_CARD_IMAGE_BASE64 Base64 encoded ID card image (.png or .jpg) */\n ID_CARD_IMAGE_BASE64: 3,\n /** ID_CARD_IMAGE_FILE ID card image in .png or .jpg file format */\n ID_CARD_IMAGE_FILE: 1,\n /** LIVENESS_IMAGE_BASE64 Base64 encoded liveness image (.jpg or .png) */\n LIVENESS_IMAGE_BASE64: 6,\n /** LIVENESS_IMAGE_FILE Liveness image in .png or .jpg file format */\n LIVENESS_IMAGE_FILE: 4,\n /** SELFIE_IMAGE_BASE64 Base64 encoded selfie image (.png or .jpg) */\n SELFIE_IMAGE_BASE64: 2,\n /** SELFIE_IMAGE_FILE Selfie image in .png or .jpg file format */\n SELFIE_IMAGE_FILE: 0,\n};\n","import { t } from '../../../../../domain/localisation';\n\nexport const MESSAGES = {\n 'no-face': () => t('selfie.smart.alert.noFace'),\n 'out-of-bounds': () => t('selfie.smart.alert.outOfBounds'),\n 'too-close': () => t('selfie.smart.alert.tooClose'),\n 'too-far': () => t('selfie.smart.alert.tooFar'),\n 'neutral-expression': () => t('selfie.smart.alert.neutralExpression'),\n 'smile-required': () => t('selfie.smart.alert.smileRequired'),\n 'open-mouth-smile': () => t('selfie.smart.alert.openMouthSmile'),\n initializing: () => t('selfie.smart.alert.initializing'),\n};\n\nexport type MessageKey = keyof typeof MESSAGES;\n","import { FaceLandmarker, FilesetResolver } from '@mediapipe/tasks-vision';\n\nconst EXCLUDED_GPUS = [\n 'adreno-830',\n 'adreno-8xx',\n 'adreno-9xx',\n 'adreno-840',\n 'adreno-810',\n];\n\nconst normalizeGpuText = (value: string): string =>\n value\n .toLowerCase()\n .replace(/\\(tm\\)|\\btm\\b/g, '')\n .replace(/[^a-z0-9]/g, '');\n\nconst matchesExcludedGpu = (value: string): boolean => {\n const normalizedValue = normalizeGpuText(value);\n\n return EXCLUDED_GPUS.some((gpuPattern) => {\n const normalizedPattern = normalizeGpuText(gpuPattern);\n\n if (normalizedPattern.endsWith('xx')) {\n const familyPrefix = normalizedPattern.slice(0, -2);\n return new RegExp(`${familyPrefix}\\\\d{2}`).test(normalizedValue);\n }\n\n return normalizedValue.includes(normalizedPattern);\n });\n};\n\n/**\n * @description Gets the GPU renderer string using WebGL debug info extension.\n * @returns {string | null} The GPU renderer string or null if unavailable.\n */\nconst getGpuRenderer = (): string | null => {\n try {\n const canvas = document.createElement('canvas');\n const gl =\n canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\n if (!gl || !(gl instanceof WebGLRenderingContext)) return null;\n\n const ext = gl.getExtension('WEBGL_debug_renderer_info');\n if (!ext) return null;\n\n return gl.getParameter(ext.UNMASKED_RENDERER_WEBGL) as string | null;\n } catch {\n return null;\n }\n};\n\n/**\n * @description Checks if the GPU renderer matches any excluded GPU.\n * @param {string | null} [renderer] Optional GPU renderer string to use. If not provided, it will be fetched via WebGL.\n * @returns {boolean} True if the GPU is excluded.\n */\nconst isExcludedGpuFromWebGL = (renderer?: string | null): boolean => {\n const rendererString = (renderer ?? getGpuRenderer())?.toLowerCase() ?? '';\n if (!rendererString) return false;\n\n return matchesExcludedGpu(rendererString);\n};\n\ndeclare global {\n interface Window {\n __smileIdentityMediapipe?: {\n instance: FaceLandmarker | null;\n loading: Promise<FaceLandmarker> | null;\n loaded: boolean;\n supportsWasmReftypes?: boolean;\n };\n }\n}\n\n/**\n * @description Detects whether the current runtime supports the WebAssembly\n * reference-types proposal (the `externref` value type). MediaPipe Tasks\n * Vision ships a .wasm that uses `externref`; on older engines (e.g. Chrome\n * < 96, Safari < 15, Firefox < 79) `WebAssembly.instantiate` throws\n * `CompileError: invalid value type 'externref'`. We probe support once with\n * `WebAssembly.validate` against a tiny module whose only feature is an\n * `externref`-typed global so callers can short-circuit and fall back to the\n * legacy selfie capture flow instead of triggering an unhandled rejection.\n * @returns {boolean} True if the runtime accepts reftypes / externref.\n */\nconst supportsWasmReftypes = (): boolean => {\n if (typeof WebAssembly === 'undefined' || !WebAssembly.validate) {\n return false;\n }\n\n try {\n // Minimal module: magic + version + global section with one externref\n // global (value type 0x6f) initialized to ref.null extern (0xd0 0x6f 0x0b).\n const bytes = new Uint8Array([\n 0x00,\n 0x61,\n 0x73,\n 0x6d, // \\0asm magic\n 0x01,\n 0x00,\n 0x00,\n 0x00, // version 1\n 0x06,\n 0x06,\n 0x01, // global section, 6 bytes, 1 global\n 0x6f,\n 0x00, // externref, immutable\n 0xd0,\n 0x6f,\n 0x0b, // ref.null extern; end\n ]);\n return WebAssembly.validate(bytes);\n } catch {\n return false;\n }\n};\n\nexport class UnsupportedMediapipeEnvironmentError extends Error {\n constructor(message: string) {\n super(message);\n this.name = 'UnsupportedMediapipeEnvironmentError';\n }\n}\n\n/**\n * @description Reads system architecture hints from User-Agent Client Hints.\n * @returns {Promise<string | null>} Lower-cased hint string or null when hints are unavailable.\n */\nconst getSystemArchitectureHints = async (): Promise<string | null> => {\n if (typeof navigator === 'undefined' || !(navigator as any).userAgentData) {\n return null;\n }\n\n try {\n const hints = await (navigator as any).userAgentData.getHighEntropyValues([\n 'architecture',\n 'model',\n 'platform',\n 'platformVersion',\n 'fullVersionList',\n ]);\n\n return JSON.stringify(hints).toLowerCase();\n } catch (error) {\n console.warn('UA-CH architecture hints fetch failed.', error);\n return null;\n }\n};\n\n/**\n * @description Determines the MediaPipe delegate based on WebGL renderer info and UA-CH hints.\n * Uses WebGL renderer as primary detection, UA-CH hints as secondary.\n * @returns {Promise<'CPU' | 'GPU'>} CPU when excluded GPU is detected; otherwise GPU.\n */\nconst getDelegateFromGpuDetection = async (): Promise<'CPU' | 'GPU'> => {\n const renderer = getGpuRenderer();\n const hasWebGlRendererInfo = !!renderer;\n\n // Primary check: WebGL renderer info (most reliable for GPU detection)\n if (isExcludedGpuFromWebGL(renderer)) {\n console.info(`[SmileID] Excluded GPU via WebGL: ${renderer}. Using CPU.`);\n return 'CPU';\n }\n\n // Secondary check: UA-CH hints (may contain GPU info in some browsers)\n const hintString = await getSystemArchitectureHints();\n const hasUaHints = !!hintString;\n\n if (hintString) {\n const hasExcludedGpuInHints = matchesExcludedGpu(hintString);\n\n if (hasExcludedGpuInHints) {\n console.info(`[SmileID] Excluded GPU via UA-CH hints. Using CPU.`);\n return 'CPU';\n }\n }\n\n if (!hasWebGlRendererInfo && !hasUaHints) {\n console.info(\n '[SmileID] No WebGL renderer or UA-CH hints available. Using CPU.',\n );\n return 'CPU';\n }\n\n // Default to GPU when no exclusion is detected\n console.info(\n `[SmileID] No excluded GPU detected. WebGL renderer: ${renderer ?? 'unavailable'}. Using GPU.`,\n );\n return 'GPU';\n};\n\n// this was added because devices (mostly older) that do not support FP16 will fail to load the model.\nconst hasFP16Support = () => {\n const canvas = document.createElement('canvas');\n const gl =\n canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\n if (!gl) return false;\n\n const hasHalfFloatExt = (gl as any).getExtension('OES_texture_half_float');\n const hasHalfFloatLinear = (gl as any).getExtension(\n 'OES_texture_half_float_linear',\n );\n const hasColorBufferHalfFloat = (gl as any).getExtension(\n 'EXT_color_buffer_half_float',\n );\n\n return !!(hasHalfFloatExt && hasColorBufferHalfFloat && hasHalfFloatLinear);\n};\n\nexport const getMediapipeInstance = async (): Promise<FaceLandmarker> => {\n if (!window.__smileIdentityMediapipe) {\n window.__smileIdentityMediapipe = {\n instance: null,\n loading: null,\n loaded: false,\n };\n }\n\n const mediapipeGlobal = window.__smileIdentityMediapipe;\n\n if (mediapipeGlobal.loaded && mediapipeGlobal.instance) {\n return mediapipeGlobal.instance;\n }\n\n if (mediapipeGlobal.loading) {\n return mediapipeGlobal.loading;\n }\n\n // Fail fast on engines that don't support WebAssembly reftypes/externref.\n // The MediaPipe Tasks Vision .wasm uses externref globals; instantiating it\n // on older browsers throws an unhandled `CompileError`. We detect once and\n // cache the result so callers fall back to the legacy capture flow.\n if (mediapipeGlobal.supportsWasmReftypes === undefined) {\n mediapipeGlobal.supportsWasmReftypes = supportsWasmReftypes();\n }\n if (!mediapipeGlobal.supportsWasmReftypes) {\n throw new UnsupportedMediapipeEnvironmentError(\n 'WebAssembly reference types (externref) are not supported in this browser; MediaPipe Tasks Vision cannot be loaded.',\n );\n }\n\n mediapipeGlobal.loading = (async () => {\n try {\n const vision = await FilesetResolver.forVisionTasks(\n 'https://web-models.smileidentity.com/mediapipe-tasks-vision-wasm',\n );\n\n const gpuDelegate = await getDelegateFromGpuDetection();\n const delegate =\n gpuDelegate === 'CPU' || !hasFP16Support() ? 'CPU' : 'GPU';\n\n const faceLandmarker = await FaceLandmarker.createFromOptions(vision, {\n baseOptions: {\n modelAssetPath: `https://web-models.smileidentity.com/face_landmarker/face_landmarker.task`,\n delegate,\n },\n outputFaceBlendshapes: true,\n runningMode: 'VIDEO',\n numFaces: 2,\n });\n\n mediapipeGlobal.instance = faceLandmarker;\n mediapipeGlobal.loaded = true;\n mediapipeGlobal.loading = null;\n\n return faceLandmarker;\n } catch (error) {\n mediapipeGlobal.loading = null;\n throw error;\n }\n })();\n\n return mediapipeGlobal.loading;\n};\n\nexport const __testUtils = {\n matchesExcludedGpu,\n getDelegateFromGpuDetection,\n supportsWasmReftypes,\n};\n","import { useRef } from 'preact/hooks';\nimport { useSignal, useComputed } from '@preact/signals';\nimport type { RefObject } from 'preact';\nimport { FaceLandmarker } from '@mediapipe/tasks-vision';\nimport throttle from 'lodash/throttle';\nimport {\n calculateFaceSize,\n isFaceInBounds,\n calculateMouthOpening,\n} from '../utils/faceDetection';\nimport {\n createCroppedVideoFrame,\n drawFaceMesh,\n clearCanvas,\n} from '../utils/canvas';\nimport { captureImageFromVideo } from '../utils/imageCapture';\nimport { ImageType } from '../constants';\nimport { MESSAGES, type MessageKey } from '../utils/alertMessages';\nimport { getMediapipeInstance } from '../utils/mediapipeManager';\nimport { t } from '../../../../../domain/localisation';\nimport packageJson from '../../../../../../package.json';\n\nconst COMPONENTS_VERSION = packageJson.version;\n\ninterface UseFaceCaptureProps {\n videoRef: RefObject<HTMLVideoElement>;\n canvasRef: RefObject<HTMLCanvasElement>;\n interval: number;\n duration: number;\n smileThreshold: number;\n mouthOpenThreshold: number;\n minFaceSize: number;\n maxFaceSize: number;\n smileCooldown: number;\n getFacingMode: () => CameraFacingMode;\n}\n\nexport const useFaceCapture = ({\n videoRef,\n canvasRef,\n interval,\n duration,\n smileThreshold,\n mouthOpenThreshold,\n minFaceSize,\n maxFaceSize,\n smileCooldown,\n getFacingMode,\n}: UseFaceCaptureProps) => {\n const faceLandmarkerRef = useRef<FaceLandmarker | null>(null);\n const animationFrameRef = useRef<number | null>(null);\n const captureTimerRef = useRef<NodeJS.Timeout | null>(null);\n const resumeCaptureRef = useRef<(() => void) | null>(null);\n const fallbackTimerRef = useRef<NodeJS.Timeout | null>(null);\n\n const faceDetected = useSignal(false);\n const faceInBounds = useSignal(false);\n const faceProximity = useSignal<'too-close' | 'too-far' | 'good'>('good');\n const videoAspectRatio = useSignal(16 / 9);\n const faceLandmarks = useSignal<any[]>([]);\n const currentSmileScore = useSignal(0);\n const currentFaceSize = useSignal(0);\n const currentMouthOpen = useSignal(0);\n const lastSmileTime = useSignal(0);\n const alertTitle = useSignal('');\n const isInitializing = useSignal(true);\n const captureButtonFallbackEnabled = useSignal(false);\n\n const isCapturing = useSignal(false);\n const isPaused = useSignal(false);\n const countdown = useSignal(0);\n const capturedImages = useSignal<string[]>([]);\n const referencePhoto = useSignal<string | null>(null);\n const totalCaptures = useSignal(1);\n const capturesTaken = useSignal(0);\n const hasFinishedCapture = useSignal(false);\n\n const smileCheckpoint = useComputed(() =>\n Math.floor(totalCaptures.value * 0.4),\n );\n const neutralZone = useComputed(() => Math.floor(totalCaptures.value * 0.2));\n\n const isReadyToCapture = useComputed(\n () =>\n faceDetected.value &&\n faceInBounds.value &&\n faceProximity.value === 'good',\n );\n\n const updateAlertImmediate = (messageKey: MessageKey | null) => {\n if (messageKey && MESSAGES[messageKey]) {\n alertTitle.value = MESSAGES[messageKey]?.();\n } else {\n alertTitle.value = '';\n }\n };\n\n const updateAlert = useRef(\n throttle((messageKey: MessageKey | null) => {\n updateAlertImmediate(messageKey);\n }, 600),\n ).current;\n\n const CAPTURE_FALLBACK_TIMEOUT_MS = 10000;\n\n const startFallbackTimer = () => {\n if (fallbackTimerRef.current) {\n clearTimeout(fallbackTimerRef.current);\n }\n fallbackTimerRef.current = setTimeout(() => {\n if (!isReadyToCapture.value) {\n captureButtonFallbackEnabled.value = true;\n }\n }, CAPTURE_FALLBACK_TIMEOUT_MS);\n };\n\n const initializeFaceLandmarker = async () => {\n try {\n const isAlreadyLoaded =\n window.__smileIdentityMediapipe?.loaded &&\n window.__smileIdentityMediapipe?.instance;\n\n if (!isAlreadyLoaded) {\n isInitializing.value = true;\n updateAlertImmediate('initializing');\n }\n\n faceLandmarkerRef.current = await getMediapipeInstance();\n isInitializing.value = false;\n startFallbackTimer();\n } catch (error) {\n console.error('Failed to initialize MediaPipe:', error);\n isInitializing.value = false;\n // MediaPipe failed — start the fallback timer so the button eventually\n // enables and the user isn't permanently stuck.\n startFallbackTimer();\n }\n startFallbackTimer();\n };\n\n const setupCanvas = () => {\n if (videoRef.current && canvasRef.current) {\n const { videoWidth, videoHeight } = videoRef.current;\n\n videoAspectRatio.value = videoWidth / videoHeight;\n\n canvasRef.current.width = videoWidth;\n canvasRef.current.height = videoHeight;\n\n const container = videoRef.current.parentElement;\n if (container) {\n canvasRef.current.style.left = '50%';\n canvasRef.current.style.top = '50%';\n }\n }\n };\n\n const updateCaptureAlerts = () => {\n const isInNeutralZone = capturesTaken.value < neutralZone.value;\n const isInSmileZone = capturesTaken.value >= smileCheckpoint.value;\n\n if (isInNeutralZone) {\n alertTitle.value = t('selfie.smart.status.capturing');\n } else if (isInSmileZone) {\n const timeSinceSmile = Date.now() - lastSmileTime.value;\n if (timeSinceSmile > smileCooldown) {\n if (\n currentSmileScore.value >= smileThreshold &&\n currentMouthOpen.value < mouthOpenThreshold\n ) {\n updateAlert('open-mouth-smile');\n } else {\n updateAlert('smile-required');\n }\n } else {\n alertTitle.value = t('selfie.smart.status.keepSmiling');\n }\n } else {\n updateAlert(null);\n }\n };\n\n const updateAlerts = () => {\n if (isInitializing.value) {\n updateAlertImmediate('initializing');\n } else if (!faceDetected.value) {\n updateAlert('no-face');\n } else if (faceProximity.value === 'too-close') {\n updateAlert('too-close');\n } else if (faceProximity.value === 'too-far') {\n updateAlert('too-far');\n } else if (!faceInBounds.value) {\n updateAlert('out-of-bounds');\n } else if (isCapturing.value) {\n updateCaptureAlerts();\n } else {\n alertTitle.value = t('selfie.smart.status.readyToCapture');\n }\n };\n\n const stopDetectionLoop = () => {\n if (animationFrameRef.current) {\n cancelAnimationFrame(animationFrameRef.current);\n animationFrameRef.current = null;\n }\n };\n\n const detectFace = async () => {\n if (!faceLandmarkerRef.current || !videoRef.current) {\n stopDetectionLoop();\n return;\n }\n\n // ensure video has valid dimensions before processing\n if (\n videoRef.current.videoWidth <= 0 ||\n videoRef.current.videoHeight <= 0 ||\n videoRef.current.readyState < 2\n ) {\n animationFrameRef.current = requestAnimationFrame(detectFace);\n return;\n }\n\n try {\n if (isInitializing.value) {\n isInitializing.value = false;\n }\n\n const croppedCanvas = createCroppedVideoFrame(videoRef.current);\n const detectionSource = croppedCanvas || videoRef.current;\n\n const results = faceLandmarkerRef.current.detectForVideo(\n detectionSource,\n performance.now(),\n );\n\n faceLandmarks.value = results.faceLandmarks || [];\n\n if (results.faceLandmarks && canvasRef.current && videoRef.current) {\n // we run detection on a cropped video frame\n // adjust landmark coordinates back to full video space\n if (croppedCanvas) {\n const sourceWidth = videoRef.current.videoWidth;\n const sourceHeight = videoRef.current.videoHeight;\n const squareSize = Math.min(sourceWidth, sourceHeight);\n const offsetX = (sourceWidth - squareSize) / (2 * sourceWidth);\n const offsetY = (sourceHeight - squareSize) / (2 * sourceHeight);\n const scaleFactor = squareSize / sourceWidth;\n const scaleFactorY = squareSize / sourceHeight;\n\n const adjustedLandmarks = results.faceLandmarks.map((face) =>\n face.map((landmark: any) => ({\n x: landmark.x * scaleFactor + offsetX,\n y: landmark.y * scaleFactorY + offsetY,\n z: landmark.z,\n })),\n );\n\n drawFaceMesh(\n canvasRef.current,\n adjustedLandmarks,\n capturesTaken.value,\n smileCheckpoint.value,\n );\n } else {\n drawFaceMesh(\n canvasRef.current,\n results.faceLandmarks,\n capturesTaken.value,\n smileCheckpoint.value,\n );\n }\n } else if (canvasRef.current) {\n clearCanvas(canvasRef.current);\n }\n\n // Check number of faces\n const numFaces = results.faceLandmarks ? results.faceLandmarks.length : 0;\n\n // Check if face is detected\n const hasFace =\n results.faceBlendshapes &&\n results.faceBlendshapes.length > 0 &&\n numFaces >= 1;\n faceDetected.value = hasFace;\n\n if (hasFace && results.faceLandmarks) {\n // Calculate face size and position\n const faceSize = calculateFaceSize(results.faceLandmarks);\n currentFaceSize.value = faceSize;\n\n // Check face proximity\n if (faceSize > maxFaceSize) {\n faceProximity.value = 'too-close';\n } else if (faceSize < minFaceSize) {\n faceProximity.value = 'too-far';\n } else {\n faceProximity.value = 'good';\n }\n\n // Check face position\n faceInBounds.value = isFaceInBounds(\n results.faceLandmarks,\n videoAspectRatio.value,\n );\n\n // Get smile and mouth open data\n const blendshapes = results.faceBlendshapes[0].categories;\n const smileLeft =\n blendshapes.find((b) => b.categoryName === 'mouthSmileLeft')?.score ||\n 0;\n const smileRight =\n blendshapes.find((b) => b.categoryName === 'mouthSmileRight')\n ?.score || 0;\n const mouthOpen = calculateMouthOpening(results.faceLandmarks);\n const smileScore = (smileLeft + smileRight) / 2;\n\n currentSmileScore.value = smileScore;\n currentMouthOpen.value = mouthOpen;\n\n if (smileScore >= smileThreshold && mouthOpen >= mouthOpenThreshold) {\n lastSmileTime.value = Date.now();\n\n if (isPaused.value && isCapturing.value && resumeCaptureRef.current) {\n // defer execution\n setTimeout(() => {\n const stillSmiling = Date.now() - lastSmileTime.value <= 100;\n if (\n stillSmiling &&\n isPaused.value &&\n isCapturing.value &&\n resumeCaptureRef.current\n ) {\n resumeCaptureRef.current();\n }\n }, 0);\n }\n }\n } else {\n // No face detected - reset values\n currentSmileScore.value = 0;\n currentFaceSize.value = 0;\n currentMouthOpen.value = 0;\n faceInBounds.value = false;\n faceProximity.value = 'good';\n }\n\n updateAlerts();\n } catch {\n faceDetected.value = false;\n faceInBounds.value = false;\n faceProximity.value = 'good';\n currentMouthOpen.value = 0;\n\n if (isCapturing.value) {\n updateAlert('no-face');\n }\n }\n\n animationFrameRef.current = requestAnimationFrame(detectFace);\n };\n\n const startDetectionLoop = () => {\n if (animationFrameRef.current) {\n cancelAnimationFrame(animationFrameRef.current);\n }\n animationFrameRef.current = requestAnimationFrame(detectFace);\n };\n\n const captureImage = () => {\n if (!videoRef.current) return;\n\n const isReference = capturesTaken.value === totalCaptures.value - 1;\n const imageData = captureImageFromVideo(videoRef.current, isReference);\n\n if (!imageData) return;\n\n if (isReference) {\n referencePhoto.value = imageData;\n } else {\n capturedImages.value = [...capturedImages.value, imageData];\n }\n\n capturesTaken.value++;\n countdown.value = totalCaptures.value - capturesTaken.value;\n };\n\n const stopCapture = () => {\n if (captureTimerRef.current) {\n clearInterval(captureTimerRef.current);\n captureTimerRef.current = null;\n }\n\n isCapturing.value = false;\n isPaused.value = false;\n\n if (capturesTaken.value >= totalCaptures.value && referencePhoto.value) {\n const livenessImages = capturedImages.value.map((img) => ({\n image: img.split(',')[1],\n image_type_id: ImageType.LIVENESS_IMAGE_BASE64,\n }));\n\n const referenceImage = {\n image: referencePhoto.value.split(',')[1],\n image_type_id: ImageType.SELFIE_IMAGE_BASE64,\n };\n\n const eventDetail = {\n images: [...livenessImages, referenceImage],\n referenceImage: referencePhoto.value,\n previewImage: referencePhoto.value,\n facingMode: getFacingMode(),\n meta: { libraryVersion: COMPONENTS_VERSION },\n };\n\n window.dispatchEvent(\n new CustomEvent('selfie-capture.publish', {\n detail: eventDetail,\n }),\n );\n\n hasFinishedCapture.value = true;\n }\n };\n\n const pauseCapture = () => {\n if (captureTimerRef.current) {\n clearInterval(captureTimerRef.current);\n captureTimerRef.current = null;\n }\n isPaused.value = true;\n\n if (\n faceDetected.value &&\n faceInBounds.value &&\n faceProximity.value === 'good'\n ) {\n updateAlert('smile-required');\n }\n };\n\n const startCaptureInterval = () => {\n if (captureTimerRef.current) {\n clearInterval(captureTimerRef.current);\n }\n\n captureTimerRef.current = setInterval(() => {\n if (capturesTaken.value >= totalCaptures.value) {\n stopCapture();\n return;\n }\n\n if (!faceDetected.value) {\n return;\n }\n\n if (!faceInBounds.value) {\n pauseCapture();\n return;\n }\n\n if (faceProximity.value !== 'good') {\n pauseCapture();\n return;\n }\n\n const isInSmileZone = capturesTaken.value >= smileCheckpoint.value;\n\n if (isInSmileZone) {\n const timeSinceSmile = Date.now() - lastSmileTime.value;\n if (timeSinceSmile > smileCooldown) {\n pauseCapture();\n return;\n }\n }\n\n captureImage();\n }, interval);\n };\n\n const resumeCapture = () => {\n if (\n faceDetected.value &&\n faceProximity.value === 'good' &&\n faceInBounds.value\n ) {\n const isInSmileZone = capturesTaken.value >= smileCheckpoint.value;\n if (isInSmileZone) {\n const timeSinceSmile = Date.now() - lastSmileTime.value;\n if (timeSinceSmile > smileCooldown) {\n return;\n }\n }\n\n isPaused.value = false;\n updateAlert(null);\n startCaptureInterval();\n }\n };\n\n resumeCaptureRef.current = resumeCapture;\n\n const startCapture = async () => {\n capturedImages.value = [];\n isCapturing.value = true;\n isPaused.value = false;\n totalCaptures.value = Math.ceil(duration / interval);\n capturesTaken.value = 0;\n countdown.value = totalCaptures.value;\n\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-capture-start'),\n );\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-origin', {\n detail: {\n imageOrigin: {\n environment: 'back_camera',\n user: 'front_camera',\n }[getFacingMode()],\n },\n }),\n );\n\n startCaptureInterval();\n };\n\n const handleCancel = () => {\n stopCapture();\n window.dispatchEvent(\n new CustomEvent('selfie-capture.cancelled', {\n detail: { meta: { libraryVersion: COMPONENTS_VERSION } },\n }),\n );\n\n // TODO: remove - for backwards compatibility\n window.dispatchEvent(\n new CustomEvent('selfie-capture-screens.cancelled', {\n detail: { meta: { libraryVersion: COMPONENTS_VERSION } },\n }),\n );\n };\n\n const handleClose = () => {\n stopCapture();\n\n window.dispatchEvent(\n new CustomEvent('selfie-capture.close', {\n detail: { meta: { libraryVersion: COMPONENTS_VERSION } },\n }),\n );\n\n // TODO: remove - backwards compatibility\n window.dispatchEvent(\n new CustomEvent('selfie-capture-screens.close', {\n detail: { meta: { libraryVersion: COMPONENTS_VERSION } },\n }),\n );\n };\n\n const cleanup = () => {\n if (captureTimerRef.current) {\n clearInterval(captureTimerRef.current);\n }\n if (fallbackTimerRef.current) {\n clearTimeout(fallbackTimerRef.current);\n }\n stopDetectionLoop();\n updateAlert.cancel();\n };\n\n const resetFaceDetectionState = () => {\n faceDetected.value = false;\n faceInBounds.value = false;\n faceProximity.value = 'good';\n faceLandmarks.value = [];\n currentSmileScore.value = 0;\n currentFaceSize.value = 0;\n currentMouthOpen.value = 0;\n lastSmileTime.value = 0;\n captureButtonFallbackEnabled.value = false;\n if (fallbackTimerRef.current) {\n clearTimeout(fallbackTimerRef.current);\n fallbackTimerRef.current = null;\n }\n\n if (canvasRef.current) {\n clearCanvas(canvasRef.current);\n }\n };\n\n return {\n faceDetected,\n faceInBounds,\n faceProximity,\n videoAspectRatio,\n faceLandmarks,\n currentSmileScore,\n currentFaceSize,\n currentMouthOpen,\n lastSmileTime,\n alertTitle,\n isInitializing,\n isReadyToCapture,\n captureButtonFallbackEnabled,\n\n isCapturing,\n isPaused,\n countdown,\n capturedImages,\n referencePhoto,\n totalCaptures,\n capturesTaken,\n hasFinishedCapture,\n smileCheckpoint,\n neutralZone,\n\n initializeFaceLandmarker,\n setupCanvas,\n startDetectionLoop,\n stopDetectionLoop,\n updateAlert,\n startCapture,\n stopCapture,\n pauseCapture,\n resumeCapture,\n handleCancel,\n handleClose,\n cleanup,\n resetFaceDetectionState,\n };\n};\n","import { useEffect, useRef } from 'preact/hooks';\n\ninterface OvalProgressProps {\n progress: number;\n duration?: number;\n themeColor?: string;\n}\n\nconst OvalProgress = ({\n progress,\n duration = 1000,\n themeColor = '#001096',\n}: OvalProgressProps) => {\n const pathRef = useRef<SVGPathElement>(null);\n const prevProgress = useRef(progress);\n\n useEffect(() => {\n const path = pathRef.current;\n if (!path) return;\n\n const pathLength = path.getTotalLength();\n path.style.opacity = progress > 0 ? '1' : '0';\n const fromOffset = pathLength * (1 - prevProgress.current);\n const toOffset = pathLength * (1 - progress);\n\n // If no change, skip\n if (fromOffset === toOffset) return;\n\n path.style.transition = 'none';\n path.style.strokeDasharray = `${pathLength} ${pathLength}`;\n path.style.strokeDashoffset = `${fromOffset}`;\n\n // Force style flush\n path.getBoundingClientRect();\n\n path.style.transition = `stroke-dashoffset ${duration}ms ease-out`;\n path.style.strokeDashoffset = `${toOffset}`;\n\n prevProgress.current = progress;\n }, [progress, duration]);\n\n return (\n <div\n style={{\n position: 'absolute',\n top: '0',\n left: '0',\n width: '100%',\n height: '100%',\n pointerEvents: 'none',\n }}\n >\n <svg\n viewBox=\"0 0 285 380\"\n preserveAspectRatio=\"xMidYMid meet\"\n style={{ width: '100%', height: '100%' }}\n >\n {/* id is referenced by parent */}\n <clipPath id=\"selfie-clip-path\" clipPathUnits=\"objectBoundingBox\">\n <path d=\"M0.085 0.382 C0.087 0.357 0.092 0.294 0.131 0.236 C0.200 0.133 0.340 0.063 0.501 0.063 C0.730 0.063 0.915 0.205 0.915 0.382 C0.915 0.424 0.899 0.513 0.891 0.549 C0.882 0.588 0.871 0.626 0.857 0.664 C0.792 0.825 0.639 0.937 0.501 0.937 C0.314 0.937 0.182 0.755 0.144 0.666 C0.126 0.624 0.110 0.557 0.107 0.547 C0.092 0.485 0.081 0.439 0.085 0.382 Z\" />\n </clipPath>\n <path\n d=\"M142.693 24C208.319 24 261 77.97 261 145.008C261 160.97 256.319 194.788 254.129 208.356C251.64 223.188 248.348 237.875 244.27 252.35C225.747 313.203 182.328 356 142.693 356C89.414 356 51.871 286.667 41.016 252.948C35.937 236.987 31.356 211.748 30.559 207.857C26.277 184.114 22.991 166.556 24.285 145.008C24.883 135.631 26.277 111.789 37.431 89.742C57.049 50.636 96.983 24 142.693 24Z\"\n stroke={themeColor}\n fill=\"none\"\n style={{ strokeWidth: '8' }}\n />\n <path\n ref={pathRef}\n d=\"M142.693 24C208.319 24 261 77.97 261 145.008C261 160.97 256.319 194.788 254.129 208.356C251.64 223.188 248.348 237.875 244.27 252.35C225.747 313.203 182.328 356 142.693 356C89.414 356 51.871 286.667 41.016 252.948C35.937 236.987 31.356 211.748 30.559 207.857C26.277 184.114 22.991 166.556 24.285 145.008C24.883 135.631 26.277 111.789 37.431 89.742C57.049 50.636 96.983 24 142.693 24Z\"\n stroke=\"#22c55e\"\n style={{ strokeWidth: '8' }}\n fill=\"none\"\n strokeLinecap=\"round\"\n />\n </svg>\n </div>\n );\n};\n\nexport default OvalProgress;\n","import type { FunctionComponent, Ref } from 'preact';\nimport OvalProgress from '../OvalProgress';\n\ninterface CameraPreviewProps {\n videoRef: Ref<HTMLVideoElement>;\n canvasRef: Ref<HTMLCanvasElement>;\n facingMode: 'user' | 'environment';\n progress: number;\n interval: number;\n themeColor: string;\n}\n\nexport const CameraPreview: FunctionComponent<CameraPreviewProps> = ({\n videoRef,\n canvasRef,\n facingMode,\n progress,\n interval,\n themeColor,\n}) => (\n <>\n <div className=\"camera-preview-container\">\n <div\n className=\"video-wrapper\"\n style={{\n clipPath: 'url(#selfie-clip-path)',\n }}\n >\n <div className=\"video-container\">\n <video\n ref={videoRef}\n autoPlay\n playsInline\n muted\n className={`camera-video ${facingMode === 'user' ? 'mirror' : ''}`}\n />\n <canvas\n ref={canvasRef}\n className={`camera-canvas ${facingMode === 'user' ? 'mirror' : ''}`}\n />\n </div>\n </div>\n <OvalProgress\n progress={progress}\n duration={interval}\n themeColor={themeColor}\n />\n </div>\n\n <style>{`\n .camera-preview-container {\n position: relative;\n width: 100%;\n max-width: 300px;\n margin: 0 auto;\n }\n\n .video-wrapper {\n width: 100%;\n max-width: 300px;\n margin: 0 auto;\n position: relative;\n aspect-ratio: 3 / 4;\n overflow: hidden;\n }\n\n .video-container {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n }\n\n .camera-video,\n .camera-canvas {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .camera-video.mirror,\n .camera-canvas.mirror {\n transform: translate(-50%, -50%) scaleX(-1);\n }\n\n .camera-canvas {\n pointer-events: none;\n }\n `}</style>\n </>\n);\n","import type { FunctionComponent } from 'preact';\n\ninterface AlertDisplayProps {\n alertTitle: string;\n}\n\nexport const AlertDisplay: FunctionComponent<AlertDisplayProps> = ({\n alertTitle,\n}) =>\n alertTitle ? (\n <>\n <div className=\"alert-message\">\n <div className=\"alert-title\">{alertTitle}</div>\n </div>\n\n <style>{`\n .alert-message {\n margin-top: 1.5rem;\n color: #000;\n color: #151F72;\n padding: 0.5rem 1.5rem;\n border-radius: 4px;\n text-align: start;\n width: 100%;\n }\n\n .alert-title {\n font-size: 16px;\n font-weight: bold;\n text-align: center;\n }\n `}</style>\n </>\n ) : null;\n","import type { FunctionComponent } from 'preact';\nimport { t } from '../../../../../domain/localisation';\n\ninterface CaptureControlsProps {\n isCapturing: boolean;\n hasFinishedCapture: boolean;\n isReadyToCapture: boolean;\n captureButtonFallbackEnabled: boolean;\n allowAgentMode: boolean;\n agentSupported: boolean;\n showAgentModeForTests: boolean;\n facingMode: 'user' | 'environment';\n themeColor?: string;\n onStartCapture: () => void;\n onSwitchCamera: () => void;\n}\n\nexport const CaptureControls: FunctionComponent<CaptureControlsProps> = ({\n isCapturing,\n hasFinishedCapture,\n isReadyToCapture,\n captureButtonFallbackEnabled,\n allowAgentMode,\n agentSupported,\n showAgentModeForTests,\n facingMode,\n themeColor = '#001096',\n onStartCapture,\n onSwitchCamera,\n}) => (\n <>\n <div className=\"controls\">\n <button\n id=\"start-image-capture\"\n class=\"btn-primary\"\n onClick={onStartCapture}\n disabled={\n isCapturing ||\n hasFinishedCapture ||\n (!isReadyToCapture && !captureButtonFallbackEnabled)\n }\n >\n {t('selfie.capture.button.startCapture')}\n </button>\n\n {allowAgentMode && (agentSupported || showAgentModeForTests) && (\n <button\n id=\"switch-camera\"\n onClick={onSwitchCamera}\n className=\"agent-mode-btn\"\n disabled={isCapturing || hasFinishedCapture}\n >\n {facingMode === 'user'\n ? t('selfie.capture.agentMode.off')\n : t('selfie.capture.agentMode.on')}\n </button>\n )}\n </div>\n\n <style>{`\n .controls {\n margin: 1.5rem 0;\n display: flex;\n flex-direction: column;\n gap: 1rem;\n justify-content: center;\n max-width: 356px;\n margin: 0 auto;\n }\n\n .agent-mode-btn {\n padding: 8px 16px;\n font-size: 14px;\n background: ${themeColor};\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n }\n\n .agent-mode-btn:disabled {\n background: #ccc;\n cursor: not-allowed;\n }\n `}</style>\n </>\n);\n","import { useRef, useEffect } from 'preact/hooks';\nimport register from 'preact-custom-element';\nimport type { FunctionComponent } from 'preact';\n\nimport { getBoolProp } from '../../../../utils/props';\nimport { useFaceCapture, useCamera } from './hooks';\nimport { CameraPreview } from './components/CameraPreview';\nimport { AlertDisplay } from './components/AlertDisplay';\nimport { CaptureControls } from './components/CaptureControls';\n\nimport '../../../navigation/src';\nimport '../../../attribution/PoweredBySmileId';\n\ninterface Props {\n interval?: number;\n duration?: number;\n 'theme-color'?: string;\n 'show-navigation'?: string | boolean;\n 'allow-agent-mode'?: string | boolean;\n 'show-agent-mode-for-tests'?: string | boolean;\n 'hide-attribution'?: string | boolean;\n 'disable-image-tests'?: string | boolean;\n}\n\nconst SmartSelfieCapture: FunctionComponent<Props> = ({\n interval = 350,\n duration = 2800,\n 'theme-color': themeColor = '#001096',\n 'show-navigation': showNavigationProp = false,\n 'allow-agent-mode': allowAgentModeProp = false,\n 'show-agent-mode-for-tests': showAgentModeForTestsProp = false,\n 'hide-attribution': hideAttributionProp = false,\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const navigationRef = useRef<HTMLElement | null>(null);\n\n const showNavigation = getBoolProp(showNavigationProp);\n const allowAgentMode = getBoolProp(allowAgentModeProp);\n const showAgentModeForTests = getBoolProp(showAgentModeForTestsProp);\n const hideAttribution = getBoolProp(hideAttributionProp);\n\n const smileCooldown = 300;\n const smileThreshold = 0.25;\n const mouthOpenThreshold = 0.05;\n const minFaceSize = 0.35;\n const maxFaceSize = 0.5;\n\n const initialFacingMode = allowAgentMode ? 'environment' : 'user';\n const camera = useCamera(initialFacingMode);\n\n const faceCapture = useFaceCapture({\n videoRef: camera.videoRef,\n canvasRef,\n interval,\n duration,\n smileThreshold,\n mouthOpenThreshold,\n minFaceSize,\n maxFaceSize,\n smileCooldown,\n getFacingMode: () => camera.facingMode,\n });\n\n useEffect(() => {\n const initializeCamera = async () => {\n await camera.startCamera(initialFacingMode, (cameraName) => {\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.camera-name', {\n detail: { cameraName },\n }),\n );\n });\n await camera.checkAgentSupport();\n await faceCapture.initializeFaceLandmarker();\n\n setTimeout(() => {\n faceCapture.setupCanvas();\n faceCapture.startDetectionLoop();\n }, 500);\n };\n\n camera.registerCameraSwitchCallback(() => {\n try {\n faceCapture.resetFaceDetectionState();\n faceCapture.setupCanvas();\n faceCapture.stopDetectionLoop();\n faceCapture.startDetectionLoop();\n } catch (error) {\n console.error('Error during camera switch callback:', error);\n }\n });\n\n initializeCamera();\n\n return () => {\n faceCapture.stopDetectionLoop();\n camera.stopCamera();\n faceCapture.cleanup();\n };\n }, []);\n\n useEffect(() => {\n const navigation = navigationRef.current;\n\n if (navigation && showNavigation) {\n const handleNavigationBack = () => {\n faceCapture.handleCancel();\n };\n\n const handleNavigationClose = () => {\n faceCapture.handleClose();\n };\n\n navigation.addEventListener('navigation.back', handleNavigationBack);\n navigation.addEventListener('navigation.close', handleNavigationClose);\n\n return () => {\n navigation.removeEventListener('navigation.back', handleNavigationBack);\n navigation.removeEventListener(\n 'navigation.close',\n handleNavigationClose,\n );\n };\n }\n return undefined;\n }, [showNavigation]);\n\n useEffect(() => {\n if (faceCapture.hasFinishedCapture.value) {\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-capture-end'),\n );\n }\n }, [faceCapture.hasFinishedCapture.value]);\n\n return (\n <div className=\"smartselfie-capture\">\n {showNavigation && (\n // @ts-expect-error --- preact-custom-element doesn't have proper types for refs\n <smileid-navigation ref={navigationRef} theme-color={themeColor} />\n )}\n\n <CameraPreview\n videoRef={camera.videoRef}\n canvasRef={canvasRef}\n facingMode={camera.facingMode}\n progress={\n faceCapture.capturesTaken.value > 0\n ? faceCapture.capturesTaken.value / faceCapture.totalCaptures.value\n : 0\n }\n interval={interval}\n themeColor={themeColor}\n />\n\n <AlertDisplay alertTitle={faceCapture.alertTitle.value} />\n\n {!faceCapture.isCapturing.value &&\n !faceCapture.hasFinishedCapture.value && (\n <CaptureControls\n isCapturing={faceCapture.isCapturing.value}\n hasFinishedCapture={faceCapture.hasFinishedCapture.value}\n isReadyToCapture={faceCapture.isReadyToCapture.value}\n captureButtonFallbackEnabled={\n faceCapture.captureButtonFallbackEnabled.value\n }\n allowAgentMode={allowAgentMode}\n agentSupported={camera.agentSupported}\n showAgentModeForTests={showAgentModeForTests}\n facingMode={camera.facingMode}\n themeColor={themeColor}\n onStartCapture={faceCapture.startCapture}\n onSwitchCamera={camera.switchCamera}\n />\n )}\n\n {/* @ts-expect-error -- preact-custom-element doesn't have proper types for refs */}\n {!hideAttribution && <powered-by-smile-id />}\n\n <style>{`\n * {\n box-sizing: border-box;\n }\n\n button {\n padding: 10px 20px;\n background: ${themeColor || '#001096'};\n color: white;\n border: none;\n border-radius: 4px;\n cursor: pointer;\n font-size: 16px;\n }\n\n button:disabled {\n background: #ccc;\n cursor: not-allowed;\n }\n\n button.btn-primary {\n background-color: ${themeColor || '#001096'};\n border-radius: 2.5rem;\n color: white;\n border: none;\n height: 3.125rem;\n display: inline-block;\n padding: 0.75rem 1.5rem;\n text-align: center;\n font-size: 1.125rem;\n font-weight: 600;\n font-family: \"DM Sans\", sans-serif;\n cursor: pointer;\n }\n \n button.btn-primary:hover {\n background-color: #2d2b2a;\n }\n \n button.btn-primary:disabled {\n background-color: #666;\n cursor: not-allowed;\n }\n\n .smartselfie-capture {\n padding: 1rem;\n font-family: sans-serif;\n }\n `}</style>\n </div>\n );\n};\n\nif (!customElements.get('smartselfie-capture')) {\n register(\n SmartSelfieCapture,\n 'smartselfie-capture',\n [\n 'interval',\n 'duration',\n 'theme-color',\n 'show-navigation',\n 'allow-agent-mode',\n 'show-agent-mode-for-tests',\n 'hide-attribution',\n 'disable-image-tests',\n ],\n { shadow: true },\n );\n}\n\nexport default SmartSelfieCapture;\n","import {\n IMAGE_TYPE,\n JPEG_QUALITY,\n} from '../../../../domain/constants/src/Constants';\nimport SmartCamera from '../../../../domain/camera/src/SmartCamera';\nimport styles from '../../../../styles/src/styles';\nimport packageJson from '../../../../../package.json';\nimport '../../../navigation/src';\nimport { t, tHtml, getDirection } from '../../../../domain/localisation';\n\nconst COMPONENTS_VERSION = packageJson.version;\n\nconst DEFAULT_NO_OF_LIVENESS_FRAMES = 8;\n\nfunction hasMoreThanNColors(data, n = 16) {\n const colors = new Set();\n for (let i = 0; i < Math.min(data.length, 10000); i += 4) {\n // eslint-disable-next-line no-bitwise\n colors.add((data[i] << 16) | (data[i + 1] << 8) | data[i + 2]);\n if (colors.size > n) {\n return true;\n }\n }\n return false;\n}\n\nfunction getLivenessFramesIndices(\n totalNoOfFrames,\n numberOfFramesRequired = DEFAULT_NO_OF_LIVENESS_FRAMES,\n) {\n const selectedFrames = [];\n\n if (totalNoOfFrames < numberOfFramesRequired) {\n throw new Error(\n tHtml('selfie.capture.error.minFrames', {\n count: numberOfFramesRequired,\n }),\n );\n }\n\n const frameDivisor = numberOfFramesRequired - 1;\n const frameInterval = Math.floor(totalNoOfFrames / frameDivisor);\n\n // NOTE: when we have satisfied our required 8 frames, but have good\n // candidates, we need to start replacing from the second frame\n let replacementFrameIndex = 1;\n\n for (let i = 0; i < totalNoOfFrames; i += frameInterval) {\n if (selectedFrames.length < 8) {\n selectedFrames.push(i);\n } else {\n // ACTION: replace frame, then sort selectedframes\n selectedFrames[replacementFrameIndex] = i;\n selectedFrames.sort((a, b) => a - b);\n\n // ACTION: update replacement frame index\n replacementFrameIndex += 1;\n }\n }\n\n // INFO: if we don't satisfy our requirement, we add the last index\n const lastFrameIndex = totalNoOfFrames - 1;\n\n if (selectedFrames.length < 8 && !selectedFrames.includes(lastFrameIndex)) {\n selectedFrames.push(lastFrameIndex);\n }\n\n return selectedFrames;\n}\n\nfunction templateString() {\n return `\n ${styles(this.themeColor)}\n <style>\n :host {\n --theme-color: ${this.themeColor || '#001096'};\n --color-active: #001096;\n --color-default: #2D2B2A;\n --color-disabled: #848282;\n }\n\n * {\n font-family: 'DM Sans', sans-serif;\n }\n\n [hidden] {\n display: none !important;\n }\n\n [disabled] {\n cursor: not-allowed !important;\n filter: grayscale(75%);\n }\n\n .visually-hidden {\n border: 0;\n clip: rect(1px 1px 1px 1px);\n clip: rect(1px, 1px, 1px, 1px);\n height: auto;\n margin: 0;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n }\n\n img {\n height: auto;\n max-width: 100%;\n transform: scaleX(-1);\n }\n\n video {\n background-color: black;\n }\n\n a {\n color: currentColor;\n text-decoration: none;\n }\n\n svg {\n max-width: 100%;\n }\n\n .color-gray {\n color: #797979;\n }\n\n .color-red {\n color: red;\n }\n\n .color-richblue {\n color: #4E6577;\n }\n\n .color-richblue-shade {\n color: #0E1B42;\n }\n\n .color-digital-blue {\n color: #001096 !important;\n }\n\n .color-deep-blue {\n color: #001096;\n }\n\n .title-color {\n color: ${this.themeColor};\n }\n\n .theme-color {\n color: ${this.themeColor};\n }\n\n .center {\n text-align: center;\n margin-left: auto;\n margin-right: auto;\n }\n\n .font-size-small {\n font-size: .75rem;\n }\n\n .font-size-large {\n font-size: 1.5rem;\n }\n\n .text-transform-uppercase {\n text-transform: uppercase;\n }\n\n [id*=-\"screen\"] {\n min-block-size: 100%;\n }\n\n [data-variant~=\"full-width\"] {\n inline-size: 100%;\n }\n\n .flow > * + * {\n margin-top: 1rem;\n }\n\n .button {\n --button-color: ${this.themeColor};\n -webkit-appearance: none;\n appearance: none;\n border-radius: 2.5rem;\n border: 0;\n background-color: transparent;\n color: #fff;\n cursor: pointer;\n display: block;\n font-size: 18px;\n font-weight: 600;\n padding: .75rem 1.5rem;\n text-align: center;\n }\n\n .button:hover,\n .button:focus,\n .button:active {\n --button-color: var(--color-default);\n }\n\n .button:disabled {\n --button-color: var(--color-disabled);\n }\n\n .button[data-variant~='solid'] {\n background-color: var(--button-color);\n border: 2px solid var(--button-color);\n }\n\n .button[data-variant~='outline'] {\n color: var(--button-color);\n border: 2px solid var(--button-color);\n }\n\n .button[data-variant~='ghost'] {\n padding: 0px;\n color: var(--button-color);\n background-color: transparent;\n }\n\n .icon-btn {\n appearance: none;\n background: none;\n border: none;\n color: hsl(0deg 0% 94%);\n cursor: pointer;\n display: flex;\n align-items: center;\n justify-content: center;\n padding: 4px 8px;\n }\n .justify-right {\n justify-content: end !important;\n }\n .nav {\n display: flex;\n justify-content: space-between;\n }\n\n .back-wrapper {\n display: flex;\n align-items: center;\n }\n\n .back-button {\n display: block !important;\n }\n .back-button-text {\n font-size: 11px;\n line-height: 11px;\n color: rgb(21, 31, 114);\n }\n .section {\n border-radius: .5rem;\n margin-left: auto;\n margin-right: auto;\n max-width: 35ch;\n padding: 1rem;\n }\n\n .selfie-capture-review-image {\n overflow: hidden;\n aspect-ratio: 1/1;\n }\n\n #review-image {\n scale: 1.75;\n }\n\n @media (max-aspect-ratio: 1/1) {\n #review-image {\n transform: scaleX(-1) translateY(-10%);\n }\n }\n\n .tips,\n .powered-by {\n align-items: center;\n border-radius: .25rem;\n display: flex;\n justify-content: center;\n letter-spacing: .075em;\n }\n\n .powered-by {\n box-shadow: 0px 2.57415px 2.57415px rgba(0, 0, 0, 0.06);\n display: inline-flex;\n font-size: .5rem;\n }\n\n .tips {\n margin-left: auto;\n margin-right: auto;\n max-width: 17rem;\n font-size: 0.875rem;\n font-weight: 600;\n }\n\n .tips > * + *,\n .powered-by > * + * {\n display: inline-block;\n margin-left: .5em;\n }\n\n .powered-by .company {\n color: #18406D;\n font-weight: 700;\n letter-spacing: .15rem;\n }\n\n .logo-mark {\n background-color: #004071;\n display: inline-block;\n padding: .25em .5em;\n }\n\n .logo-mark svg {\n height: auto;\n justify-self: center;\n width: .75em;\n }\n\n .id-video-container.portrait {\n width: 100%;\n position: relative;\n height: calc(200px * 1.4);\n }\n\n .id-video-container.portrait video {\n width: calc(213px + 0.9rem);\n height: 100%;\n position: absolute;\n top: 239px;\n left: 161px;\n padding-bottom: calc((214px * 1.4) / 3);\n padding-top: calc((191px * 1.4) / 3);\n object-fit: cover;\n\n transform: translateX(-50%) translateY(-50%);\n z-index: 1;\n block-size: 100%;\n }\n\n .video-container,\n .id-video-container.landscape {\n position: relative;\n z-index: 1;\n width: 100%;\n overflow: hidden;\n }\n\n .video-container video,\n .id-video-container.landscape video {\n left: 50%;\n min-width: auto;\n position: absolute;\n top: 50%;\n transform: translateX(-50%) translateY(50%);\n }\n\n .video-container #smile-cta-box {\n color: #fff;\n width: 100%;\n position: absolute;\n top: 0;\n left: 0;\n padding: 2rem 0;\n opacity: 0;\n transition: opacity 0.5s ease-in-out;\n }\n\n .video-container #smile-cta {\n font-size: 1.2rem;\n font-weight: bold;\n margin-top: 0;\n margin-bottom: 0;\n }\n\n .video-container video {\n height: 150%;\n transform: scaleX(-1) translateX(50%) translateY(-50%);\n }\n\n .video-container video.agent-mode {\n min-height: 100%;\n transform: scaleX(1) translateX(-50%) translateY(-50%);\n }\n\n .video-container .video {\n background-color: black;\n position: absolute;\n left: 50%;\n height: calc(100% - 6px);\n clip-path: ellipse(101px 118px);\n }\n\n .id-video-container.landscape {\n min-height: calc((2 * 10rem) + 198px);\n height: auto;\n }\n\n .id-video-container.portrait .image-frame-portrait {\n border-width: 0.9rem;\n border-color: rgba(0, 0, 0, 0.7);\n border-style: solid;\n height: auto;\n position: absolute;\n top: 80px;\n left: 47px;\n z-index: 2;\n width: 200px;\n height: calc(200px * 1.4);\n }\n\n .id-video-container.landscape .image-frame {\n border-width: 10rem 1rem;\n border-color: rgba(0, 0, 0, 0.7);\n border-style: solid;\n height: auto;\n width: 90%;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 2;\n }\n\n .id-video-container.landscape video {\n width: 100%;\n transform: translateX(-50%) translateY(-50%);\n z-index: 1;\n height: 100%;\n block-size: 100%;\n }\n\n .id-video-container.landscape img {\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translateX(-50%) translateY(-50%);\n max-width: 90%;\n }\n\n .actions {\n background-color: rgba(0, 0, 0, .7);\n bottom: 0;\n display: flex;\n justify-content: space-between;\n padding: 1rem;\n position: absolute;\n width: 90%;\n z-index: 2;\n }\n\n #back-of-id-camera-screen .id-video-container.portrait .actions,\n #id-camera-screen .id-video-container.portrait .actions {\n top: 145%;\n width: calc(200px * 1.4);\n }\n\n #back-of-id-camera-screen .section.portrait, #id-camera-screen .section.portrait {\n min-height: calc((200px * 1.4) + 260px);\n }\n\n #selfie-capture-screen,\n #back-of-id-entry-screen {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n max-block-size: 100%;\n max-inline-size: 40ch;\n padding: 1rem;\n }\n\n #selfie-capture-screen header p {\n margin-block: 0 !important;\n }\n\n .document-tips {\n margin-block-start: 1.5rem;\n display: flex;\n align-items: center;\n text-align: initial;\n }\n\n .document-tips svg {\n flex-shrink: 0;\n margin-inline-end: 1rem;\n }\n\n .document-tips p {\n margin-block: 0;\n }\n\n .document-tips p:first-of-type {\n font-size; 1.875rem;\n font-weight: bold\n }\n\n [type='file'] {\n display: none;\n }\n\n .document-tips > * + * {\n margin-inline-start; 1em;\n }\n </style>\n <div id='selfie-capture-screen' class='flow center' dir='${this.direction}'>\n <smileid-navigation theme-color='${this.themeColor}' ${this.showNavigation ? 'show-navigation' : ''} ${this.hideBack ? 'hide-back' : ''}></smileid-navigation>\n\n <div class='tips'>${t('selfie.capture.tip.fitHead')}</div>\n\n <div className=\"error\">\n ${this.cameraError ? `<p class=\"color-red\">${this.cameraError}</p>` : ''}\n </div>\n <div class='section | flow' ${this.cameraError ? 'hidden' : ''}>\n <div class='video-container'>\n <div class='video'>\n </div>\n <svg id=\"image-outline\" width=\"215\" height=\"245\" viewBox=\"0 0 215 245\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" style=\"position: relative;\">\n <path d=\"M210.981 122.838C210.981 188.699 164.248 241.268 107.55 241.268C50.853 241.268 4.12018 188.699 4.12018 122.838C4.12018 56.9763 50.853 4.40771 107.55 4.40771C164.248 4.40771 210.981 56.9763 210.981 122.838Z\" stroke=\"${this.themeColor}\" stroke-width=\"7.13965\"/>\n </svg>\n <div id=\"smile-cta-box\">\n <div>\n <svg width=\"120\" height=\"120\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"70 70 360 360\" fill=\"currentColor\">\n <path d=\"M354.02,247.69c4.12-12.26,6.39-24.53,6.39-35.75,0-54.63-50.19-99.08-111.88-99.08s-111.95,44.45-111.95,99.08c0,11.22,2.28,23.49,6.39,35.75-6.6,4.66-10.94,12.33-10.94,21.04,0,13.45,10.36,24.4,23.46,25.51.52,26.93,12.56,53.51,35.04,71.64v.73c.07.03.14.05.21.08,3.66,1.63,6.74,4.28,9.92,6.66.08.06.17.12.25.17,0-.08-.01-.16-.01-.25,15.23,9.12,32.95,13.89,51.85,12.96h0c15.54-.72,30.01-5.37,42.59-12.99,2.91-2.85,7.01-4.93,10.42-6.71.25-.16.51-.28.77-.43v-.76c20.36-16.83,33.62-42.32,34.85-71.11,13.15-1.05,23.57-12.03,23.57-25.53,0-8.7-4.35-16.38-10.94-21.04ZM155.53,283.54c-7.18-1.09-12.71-7.31-12.71-14.85s5.53-13.75,12.71-14.85v29.7ZM330.53,289.9c0,45.26-33.98,83.65-78.48,85.72-47.29,2.31-86.52-35.65-86.52-83.18v-40.7c15.63-4.03,38.45-15.61,65.91-46.31.08.59.13,1.21.11,1.87-.13,4.43-3.09,9.32-8.58,14.14-1.79,1.57-2.32,4.13-1.31,6.28,1.01,2.14,3.29,3.35,5.68,3,2.19-.35,48.6-8.13,71.88-38.36,3.84,13.25,12.48,33.59,31.31,48.79v48.75ZM339.42,234.31c-27.83-21.03-32.1-56.22-32.15-56.57-.26-2.37-2.08-4.28-4.43-4.67-2.33-.39-4.68.83-5.69,2.99-11.08,23.62-39.34,35.42-56.72,40.63,1.35-2.97,2.08-6,2.16-9.06.26-9.11-5.24-14.81-5.88-15.43-1.06-1.05-2.53-1.59-3.99-1.53-1.48.07-2.87.75-3.83,1.88-32.09,37.93-57.18,47.4-69.28,49.67-.68.13-1.29.39-1.84.74-.11,0-.18-.03-.29-.03-1.65,0-3.26.19-4.82.49-3.58-10.9-5.56-21.72-5.56-31.57,0-48.78,45.46-88.46,101.33-88.46s101.26,39.68,101.26,88.46c0,9.84-1.98,20.67-5.56,31.57-.85-.16-1.73-.19-2.61-.27v-4.6c0-1.67-.78-3.25-2.12-4.26ZM341.53,283.54v-29.7c7.18,1.09,12.72,7.3,12.72,14.85s-5.53,13.76-12.72,14.85Z\"/>\n <path d=\"M259.05,305.3c2.08-2.08,2.08-5.46,0-7.55-2.09-2.08-5.47-2.07-7.54,0-1.75,1.75-4.79,1.75-6.54,0-2.08-2.08-5.45-2.09-7.54,0-2.08,2.08-2.08,5.46,0,7.55,5.98,5.98,15.65,5.98,21.63,0h0Z\"/>\n <path id=\"mouth\"\n d=\"m 213.88314,319.4551 c -1.58,0.97 -0.35309,9.33393 1.50671,9.30586 6.05679,-0.0914 16.11631,0.17227 34.57066,0.13346 18.45435,-0.0388 28.15778,-0.0418 31.09964,-0.79956 1.80122,-0.46394 2.75061,-7.48365 1.16061,-8.45365 -1.6,-1.74874 -2.96432,-0.94348 -6.77747,-1.56441 -12.83012,0.04 -36.52534,0.50197 -41.29469,0.43262 -2.51525,-0.0713 -18.41588,-0.61 -20.01588,0.35 z m 57.29363,1.36599 c -9.24417,-2.23757 -8.08363,-2.42362 -20.78363,-2.42362 -12.7,0 -17.77931,2.69528 -26.84042,5.36549 12.57883,3.28731 33.57775,-4.29887 49.70067,2.24964 z\">\n <animate\n id=\"mouthAnim\"\n attributeName=\"d\"\n begin=\"indefinite\"\n dur=\"1s\"\n fill=\"freeze\"\n to=\"m 211.72,312.36 c -1.58,0.97 -2.56,2.86 -2.56,4.72 0,21.54 17.40021,38.7239 38.94021,38.7239 21.54,0 39.18979,-17.1739 39.18979,-39.0439 0,-1.86 -0.97,-3.59 -2.56,-4.56 -1.6,-0.97 -3.57,-1.03 -5.22,-0.18 -21.07,10.85 -41.53,10.85 -62.58,0 -1.65,-0.85 -3.62,-0.61 -5.22,0.35 z m 63.61,13.22 c -3.62,11.52 -14.4,19.9 -27.1,19.9 -12.7,0 -23.49,-8.38 -27.1,-19.9 18.03,6.94 36.2,6.94 54.2,0 z\" />\n </path>\n <circle fill=\"none\" stroke=\"currentColor\" stroke-width=\"10px\" cx=\"287.3\" cy=\"263.68\" r=\"14\"/>\n <circle fill=\"none\" stroke=\"currentColor\" stroke-width=\"10px\" cx=\"209.16\" cy=\"263.68\" r=\"14\"/>\n </svg>\n </div>\n <div>\n <p id='smile-cta'>${t('selfie.capture.cta.smile')}</p>\n </div>\n </div>\n </div>\n\n ${this.allowAgentMode ? `<button data-variant='outline small' id='switch-camera' class='button | center' type='button'>${this.inAgentMode ? t('selfie.capture.agentMode.on') : t('selfie.capture.agentMode.off')}</button>` : ''}\n\n <button data-variant='solid' id='start-image-capture' class='button | center' type='button'>\n ${t('selfie.capture.button.takeSelfie')}\n </button>\n\n ${this.hideAttribution ? '' : '<powered-by-smile-id></powered-by-smile-id>'}\n </div>\n </div>\n `;\n}\n\nasync function getPermissions(\n captureScreen,\n constraints = { facingMode: 'user' },\n) {\n try {\n const stream = await SmartCamera.getMedia({\n audio: false,\n video: constraints,\n });\n const devices = await navigator.mediaDevices.enumerateDevices();\n const videoDevice = devices.find(\n (device) =>\n device.kind === 'videoinput' &&\n stream.getVideoTracks()[0].getSettings().deviceId === device.deviceId,\n );\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.camera-name', {\n detail: { cameraName: videoDevice?.label },\n }),\n );\n captureScreen?.removeAttribute('data-camera-error');\n captureScreen?.setAttribute('data-camera-ready', true);\n } catch (error) {\n captureScreen?.removeAttribute('data-camera-ready');\n captureScreen?.setAttribute(\n 'data-camera-error',\n SmartCamera.handleCameraError(error),\n );\n }\n}\n\nclass SelfieCaptureScreen extends HTMLElement {\n constructor() {\n super();\n this.templateString = templateString.bind(this);\n this.render = () => this.templateString();\n\n this.attachShadow({ mode: 'open' });\n this.facingMode = 'user';\n if (this.allowAgentMode) {\n this.facingMode = 'environment';\n }\n }\n\n connectedCallback() {\n const template = document.createElement('template');\n template.innerHTML = this.render();\n this.shadowRoot.innerHTML = '';\n this.shadowRoot.appendChild(template.content.cloneNode(true));\n this.videoContainer = this.shadowRoot.querySelector(\n '.video-container > .video',\n );\n this.init();\n }\n\n init() {\n this._videoStreamDurationInMS = 7800;\n this._imageCaptureIntervalInMS = 200;\n\n this._data = {\n images: [],\n meta: {\n libraryVersion: COMPONENTS_VERSION,\n },\n };\n this._rawImages = [];\n\n this.setUpEventListeners();\n }\n\n reset() {\n this.disconnectedCallback();\n this.connectedCallback();\n }\n\n _startImageCapture() {\n this.startImageCapture.disabled = true;\n if (this.switchCamera) {\n this.switchCamera.disabled = true;\n }\n\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-capture-start'),\n );\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-origin', {\n detail: {\n imageOrigin: {\n environment: 'back_camera',\n user: 'front_camera',\n }[this.inAgentMode ? 'environment' : 'user'],\n },\n }),\n );\n\n /**\n * this was culled from https://jakearchibald.com/2013/animated-line-drawing-svg/\n */\n // NOTE: initialise image outline\n const imageOutlineLength = this.imageOutline.getTotalLength();\n // Clear any previous transition\n this.imageOutline.style.transition = 'none';\n // Set up the starting positions\n this.imageOutline.style.strokeDasharray = `${imageOutlineLength} ${imageOutlineLength}`;\n this.imageOutline.style.strokeDashoffset = imageOutlineLength;\n // Trigger a layout so styles are calculated & the browser\n // picks up the starting position before animating\n this.imageOutline.getBoundingClientRect();\n // Define our transition\n this.imageOutline.style.transition = `stroke-dashoffset ${this._videoStreamDurationInMS / 1000}s ease-in-out`;\n // Go!\n this.imageOutline.style.strokeDashoffset = '0';\n\n setTimeout(() => {\n this.smileCTABox.style.opacity = 1;\n this.mouthAnim.beginElement();\n }, 1500);\n\n setTimeout(() => {\n this.smileCTABox.style.opacity = 0;\n }, 3500);\n\n setTimeout(() => {\n this.smileCTABox.style.opacity = 1;\n this.smileCTA.textContent = t('selfie.capture.cta.widerSmile');\n this.mouth.setAttribute(\n 'd',\n 'm 213.88314,319.4551 c -1.58,0.97 -0.35309,9.33393 1.50671,9.30586 6.05679,-0.0914 16.11631,0.17227 34.57066,0.13346 18.45435,-0.0388 28.15778,-0.0418 31.09964,-0.79956 1.80122,-0.46394 2.75061,-7.48365 1.16061,-8.45365 -1.6,-1.74874 -2.96432,-0.94348 -6.77747,-1.56441 -12.83012,0.04 -36.52534,0.50197 -41.29469,0.43262 -2.51525,-0.0713 -18.41588,-0.61 -20.01588,0.35 z m 57.29363,1.36599 c -9.24417,-2.23757 -8.08363,-2.42362 -20.78363,-2.42362 -12.7,0 -17.77931,2.69528 -26.84042,5.36549 12.57883,3.28731 33.57775,-4.29887 49.70067,2.24964 z',\n );\n this.mouthAnim.beginElement();\n }, 4000);\n\n this._imageCaptureInterval = setInterval(() => {\n this._capturePOLPhoto();\n }, this._imageCaptureIntervalInMS);\n\n this._videoStreamTimeout = setTimeout(() => {\n this._stopVideoStream();\n }, this._videoStreamDurationInMS);\n }\n\n async _switchCamera() {\n this.facingMode = this.facingMode === 'user' ? 'environment' : 'user';\n if (this.facingMode === 'user') {\n this.shadowRoot.querySelector('video').classList.remove('agent-mode');\n } else {\n this.shadowRoot.querySelector('video').classList.add('agent-mode');\n }\n this.startImageCapture.disabled = true;\n this.switchCamera.disabled = true;\n SmartCamera.stopMedia();\n await getPermissions(this, { facingMode: this.facingMode });\n this.handleStream(SmartCamera.stream);\n }\n\n _stopVideoStream() {\n try {\n clearTimeout(this._videoStreamTimeout);\n clearInterval(this._imageCaptureInterval);\n clearInterval(this._drawingInterval);\n\n this._capturePOLPhoto(); // NOTE: capture the last photo\n this._captureReferencePhoto();\n SmartCamera.stopMedia();\n\n const totalNoOfFrames = this._rawImages.length;\n this._data.referenceImage = this._referenceImage;\n this._data.previewImage = this._referenceImage;\n\n const livenessFramesIndices = getLivenessFramesIndices(totalNoOfFrames);\n\n this._data.images = this._data.images.concat(\n livenessFramesIndices.map((imageIndex) => ({\n image: this._rawImages[imageIndex].split(',')[1],\n image_type_id: IMAGE_TYPE.LIVENESS_IMAGE_BASE64,\n })),\n );\n\n this._publishImages();\n } catch (error) {\n console.error(error);\n // Todo: handle error\n }\n }\n\n _capturePOLPhoto() {\n const canvas = document.createElement('canvas');\n // Determine orientation of the video\n const isPortrait = this._video.videoHeight > this._video.videoWidth;\n\n // Set dimensions based on orientation, ensuring minimums\n if (isPortrait) {\n // Portrait orientation (taller than wide)\n canvas.width = 240;\n canvas.height = Math.max(\n 320,\n (canvas.width * this._video.videoHeight) / this._video.videoWidth,\n );\n } else {\n // Landscape orientation (wider than tall)\n canvas.height = 240;\n canvas.width = Math.max(\n 320,\n (canvas.height * this._video.videoWidth) / this._video.videoHeight,\n );\n }\n\n // NOTE: we do not want to test POL images\n this._drawImage(canvas, false);\n\n this._rawImages.push(canvas.toDataURL('image/jpeg', JPEG_QUALITY));\n }\n\n _captureReferencePhoto() {\n const canvas = document.createElement('canvas');\n // Determine orientation of the video\n const isPortrait = this._video.videoHeight > this._video.videoWidth;\n\n // Set dimensions based on orientation, ensuring minimums\n if (isPortrait) {\n // Portrait orientation (taller than wide)\n canvas.width = 480;\n canvas.height = Math.max(\n 640,\n (canvas.width * this._video.videoHeight) / this._video.videoWidth,\n );\n } else {\n // Landscape orientation (wider than tall)\n canvas.height = 480;\n canvas.width = Math.max(\n 640,\n (canvas.height * this._video.videoWidth) / this._video.videoHeight,\n );\n }\n\n // NOTE: we want to test the image quality of the reference photo\n this._drawImage(canvas, !this.disableImageTests);\n\n const image = canvas.toDataURL('image/jpeg', JPEG_QUALITY);\n\n this._referenceImage = image;\n\n this._data.images.push({\n image: image.split(',')[1],\n image_type_id: IMAGE_TYPE.SELFIE_IMAGE_BASE64,\n });\n }\n\n _publishImages() {\n const eventDetail = {\n ...this._data,\n facingMode: this.facingMode,\n };\n\n this.dispatchEvent(\n new CustomEvent('selfie-capture.publish', {\n detail: eventDetail,\n }),\n );\n }\n\n resetErrorMessage() {\n this.errorMessage.textContent = '';\n }\n\n _drawImage(canvas, enableImageTests = true, video = this._video) {\n // this.resetErrorMessage();\n const context = canvas.getContext('2d');\n\n context.drawImage(\n video,\n 0,\n 0,\n video.videoWidth,\n video.videoHeight,\n 0,\n 0,\n canvas.width,\n canvas.height,\n );\n\n if (enableImageTests) {\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\n\n const hasEnoughColors = hasMoreThanNColors(imageData.data);\n\n if (hasEnoughColors) {\n return context;\n }\n throw new Error(t('selfie.capture.error.webcamCapture'));\n } else {\n return context;\n }\n }\n\n handleStream(stream) {\n try {\n const videoContainer = this.shadowRoot.querySelector('.video');\n if (!videoContainer) {\n return;\n }\n\n const videoExists = this.shadowRoot.querySelector('video');\n let video = null;\n if (videoExists) {\n video = this.shadowRoot.querySelector('video');\n } else {\n video = document.createElement('video');\n }\n\n video.autoplay = true;\n video.playsInline = true;\n video.muted = true;\n\n if ('srcObject' in video) {\n video.srcObject = stream;\n } else {\n video.src = window.URL.createObjectURL(stream);\n }\n\n video.onloadedmetadata = () => {\n video.play();\n };\n\n this._video = video;\n this._data.permissionGranted = true;\n\n if (!videoExists) {\n videoContainer.prepend(video);\n }\n } catch (error) {\n this.setAttribute(\n 'data-camera-error',\n SmartCamera.handleCameraError(error),\n );\n if (error.name !== 'AbortError') {\n console.error(error);\n }\n SmartCamera.stopMedia();\n }\n }\n\n setUpEventListeners() {\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\n\n this.startImageCapture = this.shadowRoot.querySelector(\n '#start-image-capture',\n );\n\n this.switchCamera = this.shadowRoot.querySelector('#switch-camera');\n this.imageOutline = this.shadowRoot.querySelector('#image-outline path');\n this.smileCTABox = this.shadowRoot.querySelector('#smile-cta-box');\n this.smileCTA = this.shadowRoot.querySelector('#smile-cta');\n this.mouth = this.shadowRoot.querySelector('#mouth');\n this.mouthAnim = this.shadowRoot.querySelector('#mouthAnim');\n\n this.startImageCapture.addEventListener('click', () => {\n this._startImageCapture();\n });\n\n this.switchCamera?.addEventListener('click', () => {\n this._switchCamera();\n });\n\n this.navigation?.addEventListener('navigation.back', () => {\n this.handleBackEvents();\n });\n\n this.navigation?.addEventListener('navigation.close', () => {\n this.closeWindow();\n });\n\n if (SmartCamera.stream) {\n this.handleStream(SmartCamera.stream);\n } else if (\n this.hasAttribute('data-camera-ready') ||\n !this.hasAttribute('data-camera-error')\n ) {\n getPermissions(this, { facingMode: this.facingMode });\n }\n\n this.setupAgentMode();\n }\n\n disconnectedCallback() {\n SmartCamera.stopMedia();\n clearTimeout(this._videoStreamTimeout);\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back');\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation');\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution');\n }\n\n async setupAgentMode() {\n if (!this.allowAgentMode) {\n return;\n }\n\n const supportAgentMode = await SmartCamera.supportsAgentMode();\n\n if (supportAgentMode || this.hasAttribute('show-agent-mode-for-tests')) {\n this.switchCamera.hidden = false;\n if (this.facingMode === 'user') {\n this.shadowRoot.querySelector('video')?.classList?.remove('agent-mode');\n } else {\n this.shadowRoot.querySelector('video')?.classList?.add('agent-mode');\n }\n } else {\n this.switchCamera.hidden = true;\n }\n }\n\n get hasAgentSupport() {\n return this.hasAttribute('has-agent-support');\n }\n\n get title() {\n return this.getAttribute('title') || t('selfie.instructions.title');\n }\n\n get direction() {\n return this.getAttribute('dir') || getDirection() || 'ltr';\n }\n\n get hidden() {\n return this.getAttribute('hidden');\n }\n\n get cameraError() {\n return this.getAttribute('data-camera-error');\n }\n\n get disableImageTests() {\n return this.hasAttribute('disable-image-tests');\n }\n\n get allowAgentMode() {\n return this.getAttribute('allow-agent-mode') === 'true';\n }\n\n get inAgentMode() {\n return this.facingMode === 'environment';\n }\n\n static get observedAttributes() {\n return [\n 'allow-agent-mode',\n 'data-camera-error',\n 'data-camera-ready',\n 'disable-image-tests',\n 'hidden',\n 'hide-back-to-host',\n 'show-navigation',\n 'title',\n ];\n }\n\n attributeChangedCallback(name) {\n switch (name) {\n case 'data-camera-error':\n case 'hidden':\n case 'title':\n this.shadowRoot.innerHTML = this.render();\n this.init();\n break;\n case 'allow-agent-mode':\n // only re-render if the shadowRoot is empty or not initialized\n if (!this.shadowRoot.innerHTML.trim()) {\n this.shadowRoot.innerHTML = this.render();\n this.init();\n } else {\n // update the setupAgentMode\n this.setupAgentMode();\n }\n break;\n case 'show-navigation':\n // update the navigation element if it exists\n if (this.shadowRoot.innerHTML.trim()) {\n const navigation =\n this.shadowRoot.querySelector('smileid-navigation');\n if (navigation) {\n if (this.showNavigation) {\n navigation.setAttribute('show-navigation', '');\n } else {\n navigation.removeAttribute('show-navigation');\n }\n }\n } else {\n this.shadowRoot.innerHTML = this.render();\n this.init();\n }\n break;\n case 'data-camera-ready':\n // don't re-render, just handle the stream\n if (this.hasAttribute('data-camera-ready') && SmartCamera.stream) {\n this.handleStream(SmartCamera.stream);\n }\n break;\n default:\n break;\n }\n }\n\n handleBackEvents() {\n this.stopMedia();\n this.dispatchEvent(new CustomEvent('selfie-capture.cancelled'));\n }\n\n closeWindow() {\n this.stopMedia();\n this.dispatchEvent(new CustomEvent('selfie-capture.close'));\n }\n\n stopMedia() {\n this.removeAttribute('data-camera-ready');\n SmartCamera.stopMedia();\n }\n}\n\nif ('customElements' in window && !customElements.get('selfie-capture')) {\n window.customElements.define('selfie-capture', SelfieCaptureScreen);\n}\n\nexport default SelfieCaptureScreen;\n","import { useState, useEffect } from 'preact/hooks';\nimport { IconLoader2 } from '@tabler/icons-preact';\nimport register from 'preact-custom-element';\nimport type { FunctionComponent } from 'preact';\n\nimport { getBoolProp } from '../../../../utils/props';\nimport { translate, translateHtml } from '../../../../domain/localisation';\nimport SmartSelfieCapture from '../smartselfie-capture/SmartSelfieCapture';\n// Legacy web component fallback (used when Mediapipe isn't available)\nimport '../selfie-capture/SelfieCapture';\n// Mediapipe loader/manager used by SmartSelfieCapture\nimport {\n getMediapipeInstance,\n UnsupportedMediapipeEnvironmentError,\n} from '../smartselfie-capture/utils/mediapipeManager';\n\n// Minimal typing for the optional Sentry SDK that host pages may expose on\n// `window`. We only depend on `captureException`, so keep the surface tight.\n// Sentry tag values are expected to be strings, so the type enforces that.\ntype SentryTags = Record<string, string>;\ndeclare global {\n interface Window {\n Sentry?: {\n captureException: (\n error: unknown,\n context?: { tags?: SentryTags },\n ) => void;\n };\n }\n}\n\ninterface Props {\n timeout?: number;\n interval?: number;\n duration?: number;\n 'theme-color'?: string;\n 'show-navigation'?: string | boolean;\n 'allow-agent-mode'?: string | boolean;\n 'allow-legacy-selfie-fallback'?: string | boolean;\n 'show-agent-mode-for-tests'?: string | boolean;\n 'hide-attribution'?: string | boolean;\n 'disable-image-tests'?: string | boolean;\n key?: string;\n 'start-countdown'?: string | boolean;\n hidden?: string | boolean;\n}\n\nconst DEFAULT_MEDIAPIPE_WAIT_MS = 90 * 1000; // For when legacy fallback is NOT allowed, we wait the full 90s for mediapipe to load before showing an error.\nconst DEFAULT_WAIT_MS = 20 * 1000; // default for when legacy fallback is allowed we wait for 20s\n// Cap retries on transient init failures so we don't spin forever, while still\n// allowing recovery from short-lived issues (e.g. CDN hiccups while the\n// wrapper is preloading in a hidden state). Retries are spaced with\n// exponential backoff (base * 2^(attempt-1)) so we don't hammer the CDN.\nconst MAX_MEDIAPIPE_INIT_ATTEMPTS = 3;\nconst MEDIAPIPE_RETRY_BASE_DELAY_MS = 500;\n\n// Wrapper component that decides whether to use the modern\n// SmartSelfieCapture (Mediapipe-based) or fallback to the legacy `selfie-capture`\n// web component after a timeout (default 90 seconds).\nconst SelfieCaptureWrapper: FunctionComponent<Props> = ({\n timeout = DEFAULT_MEDIAPIPE_WAIT_MS,\n 'start-countdown': startCountdownProp = false,\n 'allow-legacy-selfie-fallback': allowLegacySelfieFallbackProp = false,\n hidden: hiddenProp = false,\n ...props\n}) => {\n // Detect if tests are running under Cypress/Electron (affects loading behavior)\n const isParentCypress = (() => {\n try {\n return (\n !!(window.parent as any).Cypress ||\n (window.parent.navigator.userAgent.includes('Electron') &&\n (window.parent as any).__Cypress)\n );\n } catch {\n return false;\n }\n })();\n const isCypress =\n isParentCypress ||\n !!(window as any).Cypress ||\n (window.navigator.userAgent.includes('Electron') &&\n (window as any).__Cypress);\n\n const hidden = getBoolProp(hiddenProp);\n const startCountdown = getBoolProp(startCountdownProp);\n const allowLegacySelfieFallback = getBoolProp(allowLegacySelfieFallbackProp);\n const loadingTime = allowLegacySelfieFallback ? DEFAULT_WAIT_MS : timeout;\n\n // Component state:\n // - mediapipeReady: whether the mediapipe instance has successfully loaded\n // - loadingProgress: percentage used for the visible loading UI\n // - initialSessionCompleted: set when the legacy component emits publish/cancel/close\n // - mediapipeLoading: true while attempting to load mediapipe\n // - usingSelfieCapture: whether we've mounted the legacy `selfie-capture` element\n const [mediapipeReady, setMediapipeReady] = useState(false);\n const [loadingProgress, setLoadingProgress] = useState(isCypress ? 100 : 0);\n const [initialSessionCompleted, setInitialSessionCompleted] = useState(false);\n const [mediapipeLoading, setMediapipeLoading] = useState(false);\n // `unsupportedEnvironment` is a permanent, one-shot signal: we know\n // MediaPipe cannot run here, so stop trying.\n const [unsupportedEnvironment, setUnsupportedEnvironment] = useState(false);\n // Bounded retry counter for transient init failures.\n const [mediapipeInitAttempts, setMediapipeInitAttempts] = useState(0);\n // Dedup flag so we only report a given init failure to Sentry once per\n // wrapper instance, even if we end up retrying.\n const [mediapipeInitReported, setMediapipeInitReported] = useState(false);\n const [usingSelfieCapture, setUsingSelfieCapture] = useState(false);\n\n // Attempt to load Mediapipe (with a small bounded retry budget). If\n // Mediapipe is already ready, currently loading, the environment is\n // definitively unsupported, we've exhausted our retry budget, or we're\n // running under Cypress, skip the attempt. On transient failure we wait\n // (exponential backoff) before allowing the effect to re-run.\n useEffect(() => {\n if (\n mediapipeReady ||\n mediapipeLoading ||\n unsupportedEnvironment ||\n mediapipeInitAttempts >= MAX_MEDIAPIPE_INIT_ATTEMPTS ||\n isCypress\n )\n return undefined;\n\n let cancelled = false;\n let retryTimeoutId: ReturnType<typeof setTimeout> | null = null;\n\n const loadMediapipe = async () => {\n setMediapipeLoading(true);\n const attemptNumber = mediapipeInitAttempts + 1;\n setMediapipeInitAttempts(attemptNumber);\n try {\n await getMediapipeInstance();\n if (cancelled) return;\n setMediapipeReady(true);\n setMediapipeLoading(false);\n } catch (error) {\n if (cancelled) return;\n // Loading failed; we'll fall back to the legacy selfie-capture component\n // after the loadingProgress reaches 100% (or sooner for definitively\n // unsupported environments — see below).\n console.error('Failed to load Mediapipe:', error);\n const isUnsupportedEnvironment =\n error instanceof UnsupportedMediapipeEnvironmentError;\n // Report to Sentry (when the host page has exposed it on window) so we\n // can observe how often users land on the fallback path and which\n // environments are affected. Dedup so retries don't flood Sentry.\n if (!mediapipeInitReported) {\n setMediapipeInitReported(true);\n window.Sentry?.captureException(error, {\n tags: {\n area: 'mediapipe_init',\n mediapipe_unsupported_environment: isUnsupportedEnvironment\n ? 'true'\n : 'false',\n },\n });\n }\n // When the environment definitively cannot run MediaPipe (e.g. no\n // WebAssembly reftypes support), there is no point retrying or keeping\n // the user staring at the loading spinner for the full countdown —\n // mark as unsupported and short-circuit to the fallback decision\n // immediately.\n if (isUnsupportedEnvironment) {\n setUnsupportedEnvironment(true);\n setLoadingProgress(100);\n setMediapipeLoading(false);\n return;\n }\n // Transient failure: wait with exponential backoff before allowing the\n // effect to re-run by flipping mediapipeLoading back to false. If\n // we've exhausted our retry budget, just release the loading flag so\n // the countdown / fallback UI can proceed.\n const hasRetriesLeft = attemptNumber < MAX_MEDIAPIPE_INIT_ATTEMPTS;\n if (!hasRetriesLeft) {\n setMediapipeLoading(false);\n return;\n }\n const backoffMs =\n MEDIAPIPE_RETRY_BASE_DELAY_MS * 2 ** (attemptNumber - 1);\n retryTimeoutId = setTimeout(() => {\n retryTimeoutId = null;\n if (cancelled) return;\n setMediapipeLoading(false);\n }, backoffMs);\n }\n };\n\n loadMediapipe();\n\n return () => {\n cancelled = true;\n if (retryTimeoutId !== null) {\n clearTimeout(retryTimeoutId);\n }\n };\n }, [\n mediapipeReady,\n mediapipeLoading,\n unsupportedEnvironment,\n mediapipeInitAttempts,\n mediapipeInitReported,\n ]);\n\n // When using the loading countdown (startCountdown), increment the\n // visible loading progress. This is only used while mediapipe hasn't\n // reported ready; once mediapipeReady becomes true we stop the timer.\n useEffect(() => {\n if (hidden || !startCountdown || mediapipeReady) return undefined;\n\n const timer = setInterval(() => {\n setLoadingProgress((prev: number) => Math.min(prev + 1, 100));\n }, loadingTime / 100);\n\n return () => {\n clearInterval(timer);\n };\n }, [hidden, startCountdown, loadingTime, mediapipeReady]);\n\n useEffect(() => {\n if (hidden || mediapipeReady || loadingProgress < 100) return undefined;\n\n const setupEventForwarding = () => {\n const selfieCapture = document.querySelector('selfie-capture');\n if (\n selfieCapture &&\n !selfieCapture.hasAttribute('data-backup-events-setup')\n ) {\n selfieCapture.setAttribute('data-backup-events-setup', 'true');\n\n const forwardEvent = (event: Event) => {\n const customEvent = event as CustomEvent;\n window.dispatchEvent(\n new CustomEvent(customEvent.type, {\n detail: customEvent.detail,\n bubbles: true,\n }),\n );\n };\n\n selfieCapture.addEventListener('selfie-capture.publish', forwardEvent);\n selfieCapture.addEventListener(\n 'selfie-capture.cancelled',\n forwardEvent,\n );\n selfieCapture.addEventListener('selfie-capture.close', forwardEvent);\n\n return () => {\n selfieCapture.removeEventListener(\n 'selfie-capture.publish',\n forwardEvent,\n );\n selfieCapture.removeEventListener(\n 'selfie-capture.cancelled',\n forwardEvent,\n );\n selfieCapture.removeEventListener(\n 'selfie-capture.close',\n forwardEvent,\n );\n };\n }\n return undefined;\n };\n\n const timeoutId = setTimeout(setupEventForwarding, 200);\n return () => {\n clearTimeout(timeoutId);\n };\n }, [hidden, mediapipeReady, loadingProgress]);\n\n // Dispatch allow_legacy_selfie_fallback config for observability\n useEffect(() => {\n if (hidden) return;\n\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.allow-legacy-selfie-fallback', {\n detail: {\n allow_legacy_selfie_fallback: allowLegacySelfieFallback,\n },\n }),\n );\n }, [hidden, allowLegacySelfieFallback]);\n\n // Announce to any `smart-camera-web` element which liveness version is active.\n // The old capture uses 0.0.1, the new one 1.0.0.\n useEffect(() => {\n if (hidden || mediapipeLoading) return;\n\n const smartCameraWeb = document.querySelector('smart-camera-web');\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.active-liveness-version', {\n detail: {\n version: usingSelfieCapture ? '0.0.1' : '1.0.0',\n },\n }),\n );\n }, [usingSelfieCapture, hidden, mediapipeLoading]);\n\n if (hidden) {\n return null;\n }\n\n // on retakes, prefer SmartSelfieCapture if Mediapipe is ready\n if (initialSessionCompleted && mediapipeReady && !usingSelfieCapture) {\n return <SmartSelfieCapture {...props} />;\n }\n\n // use SmartSelfieCapture if mediapipe loads\n if (!initialSessionCompleted && mediapipeReady && !usingSelfieCapture) {\n return <SmartSelfieCapture {...props} />;\n }\n\n if (loadingProgress >= 100) {\n // When loading completes without Mediapipe becoming ready, check if legacy\n // fallback is allowed. Legacy is allowed if:\n // 1. allow-legacy-selfie-fallback attribute is set to true, OR\n // 2. Running under Cypress (to keep existing test behavior)\n const legacyFallbackAllowed = allowLegacySelfieFallback || isCypress;\n\n if (legacyFallbackAllowed) {\n // Mount the legacy `selfie-capture` web component. We also set\n // `usingSelfieCapture` so other effects can react (e.g. metadata dispatch).\n if (!usingSelfieCapture) {\n setUsingSelfieCapture(true);\n }\n\n const propsWithoutHidden = { ...props };\n delete (propsWithoutHidden as any).hidden;\n\n return (\n // @ts-expect-error --- preact-custom-element doesn't have proper types for refs\n <selfie-capture\n {...propsWithoutHidden}\n ref={(el: HTMLElement) => {\n if (el && !el.hasAttribute('data-events-setup')) {\n el.setAttribute('data-events-setup', 'true');\n\n const forwardEvent = (event: Event) => {\n const customEvent = event as CustomEvent;\n\n if (\n customEvent.type === 'selfie-capture.publish' ||\n customEvent.type === 'selfie-capture.cancelled' ||\n customEvent.type === 'selfie-capture.close'\n ) {\n setInitialSessionCompleted(true);\n }\n\n window.dispatchEvent(\n new CustomEvent(customEvent.type, {\n detail: customEvent.detail,\n bubbles: true,\n }),\n );\n };\n\n el.addEventListener('selfie-capture.publish', forwardEvent);\n el.addEventListener('selfie-capture.cancelled', forwardEvent);\n el.addEventListener('selfie-capture.close', forwardEvent);\n }\n }}\n />\n );\n }\n\n // Legacy fallback is NOT allowed: show error message\n return (\n <div style={{ textAlign: 'center', marginTop: '20%', padding: '0 20px' }}>\n <p style={{ fontSize: '1.2rem', color: '#333' }}>\n {translate('selfie.capture.loading.connectionError')}\n </p>\n </div>\n );\n }\n\n // Midpoint threshold (40s out of 90s ≈ 44%)\n const SLOW_CONNECTION_THRESHOLD = 44;\n\n return (\n <div style={{ textAlign: 'center', marginTop: '20%' }}>\n <div\n style={{\n marginBottom: '16px',\n display: 'flex',\n justifyContent: 'center',\n }}\n >\n <IconLoader2\n size={48}\n style={{ animation: 'spin 1s linear infinite' }}\n />\n </div>\n {loadingProgress >= SLOW_CONNECTION_THRESHOLD ? (\n <p>{translate('selfie.capture.loading.slowConnection')}</p>\n ) : (\n <p>\n {translateHtml('selfie.capture.loading.progress', {\n progress: loadingProgress,\n })}\n </p>\n )}\n <style>{`\n @keyframes spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `}</style>\n </div>\n );\n};\n\nif (!customElements.get('selfie-capture-wrapper')) {\n register(\n SelfieCaptureWrapper,\n 'selfie-capture-wrapper',\n [\n 'timeout',\n 'interval',\n 'duration',\n 'theme-color',\n 'show-navigation',\n 'allow-agent-mode',\n 'allow-legacy-selfie-fallback',\n 'show-agent-mode-for-tests',\n 'hide-attribution',\n 'disable-image-tests',\n 'key',\n 'start-countdown',\n 'hidden',\n ],\n { shadow: true },\n );\n}\n\nexport default SelfieCaptureWrapper;\n","import './selfie-capture-instructions';\nimport './selfie-capture-review';\nimport './selfie-capture-wrapper/index.ts';\nimport SmartCamera from '../../../domain/camera/src/SmartCamera';\nimport styles from '../../../styles/src/styles';\nimport packageJson from '../../../../package.json';\nimport { JPEG_QUALITY } from '../../../domain/constants/src/Constants';\n\nconst COMPONENTS_VERSION = packageJson.version;\n\nconst smartCameraWeb = document.querySelector('smart-camera-web');\n\nconst cropImageFromDataUri = (dataUri, cropPercentX = 0, cropPercentY = 0) =>\n new Promise((resolve, reject) => {\n if (!dataUri || typeof dataUri !== 'string') {\n reject(new Error('Invalid data URI provided'));\n return;\n }\n\n if (\n cropPercentX < 0 ||\n cropPercentX >= 99 ||\n cropPercentY < 0 ||\n cropPercentY >= 99\n ) {\n reject(new Error('Crop percentages must be between 0 and 99'));\n return;\n }\n\n const img = new Image();\n\n img.onload = () => {\n try {\n const canvas = document.createElement('canvas');\n const ctx = canvas.getContext('2d');\n\n const originalWidth = img.width;\n const originalHeight = img.height;\n const cropAmountX = (originalWidth * cropPercentX) / 100;\n const cropAmountY = (originalHeight * cropPercentY) / 100;\n\n const newWidth = originalWidth - cropAmountX * 2;\n const newHeight = originalHeight - cropAmountY * 2;\n canvas.width = newWidth;\n canvas.height = newHeight;\n\n ctx.drawImage(\n img,\n cropAmountX,\n cropAmountY,\n newWidth,\n newHeight,\n 0,\n 0,\n newWidth,\n newHeight,\n );\n\n const croppedDataUri = canvas.toDataURL('image/jpeg', JPEG_QUALITY);\n resolve(croppedDataUri);\n } catch (error) {\n reject(new Error(`Failed to process image: ${error.message}`));\n }\n };\n\n img.onerror = () => {\n reject(new Error('Failed to load image from data URI'));\n };\n\n img.src = dataUri;\n });\n\nclass SelfieCaptureScreens extends HTMLElement {\n constructor() {\n super();\n this.activeScreen = null;\n this._remountKey = 0; // Counter for forcing wrapper remounts\n smartCameraWeb?.dispatchEvent(new CustomEvent('metadata.initialize'));\n }\n\n connectedCallback() {\n this.innerHTML = `\n ${styles(this.themeColor)}\n <div style=\"height: 100%;\">\n <selfie-capture-instructions theme-color='${this.themeColor}' ${this.showNavigation} ${this.hideAttribution} ${this.hideBack} hidden></selfie-capture-instructions>\n <selfie-capture-wrapper theme-color='${this.themeColor}' ${this.showNavigation} ${this.allowAgentMode} ${this.allowAgentModeTests} ${this.hideAttribution} ${this.disableImageTests} ${this.allowLegacySelfieFallback} key=\"${this._remountKey}\" start-countdown=\"false\" hidden></selfie-capture-wrapper>\n <selfie-capture-review theme-color='${this.themeColor}' ${this.showNavigation} ${this.hideAttribution} hidden></selfie-capture-review>\n </div>\n `;\n\n this._data = {\n images: [],\n meta: {\n libraryVersion: COMPONENTS_VERSION,\n },\n };\n this.selfieInstruction = this.querySelector('selfie-capture-instructions');\n this.selfieCapture = this.querySelector('selfie-capture-wrapper');\n this.selfieReview = this.querySelector('selfie-capture-review');\n\n if (\n this.getAttribute('initial-screen') === 'selfie-capture' ||\n this.hideInstructions\n ) {\n this.setActiveScreen(this.selfieCapture);\n } else {\n this.setActiveScreen(this.selfieInstruction);\n }\n\n this.setUpEventListeners();\n }\n\n getAgentMode() {\n return this.inAgentMode ? 'environment' : 'user';\n }\n\n disconnectedCallback() {\n SmartCamera.stopMedia();\n smartCameraWeb?.dispatchEvent(new CustomEvent('metadata.cleanup'));\n\n if (this._selfieWrapperListeners) {\n this._selfieWrapperListeners.forEach(({ event, handler }) => {\n window.removeEventListener(event, handler);\n });\n this._selfieWrapperListeners = null;\n }\n\n if (this.activeScreen) {\n this.activeScreen.removeAttribute('hidden');\n }\n this.activeScreen = null;\n this.innerHTML = '';\n }\n\n setUpEventListeners() {\n this.selfieInstruction.addEventListener(\n 'selfie-capture-instructions.capture',\n async () => {\n this.setActiveScreen(this.selfieCapture);\n },\n );\n this.selfieInstruction.addEventListener(\n 'selfie-capture-instructions.cancelled',\n () => {\n this.handleBackEvents();\n },\n );\n this.setupSelfieWrapperEventListeners();\n\n this.selfieReview.addEventListener(\n 'selfie-capture-review.rejected',\n async () => {\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-capture-retry'),\n );\n this.selfieReview.removeAttribute('data-image');\n this.selfieReview.removeAttribute('mirror-image');\n this._data.images = [];\n\n await this.forceWrapperRemount();\n\n this.setActiveScreen(this.selfieCapture);\n },\n );\n\n this.selfieReview.addEventListener(\n 'selfie-capture-review.accepted',\n async () => {\n this._publishSelectedImages();\n },\n );\n\n [this.selfieInstruction, this.selfieCapture, this.selfieReview].forEach(\n (screen) => {\n screen.addEventListener(\n `${screen.nodeName.toLowerCase()}.close`,\n () => {\n this.handleCloseEvent();\n },\n );\n },\n );\n }\n\n // Force remount of selfie-capture-wrapper component for clean state\n async forceWrapperRemount() {\n SmartCamera.stopMedia();\n\n this._remountKey++;\n\n const container = this.querySelector('div');\n const oldWrapper = this.selfieCapture;\n\n if (oldWrapper && container) {\n // recreate wrapper element\n const newWrapper = document.createElement('selfie-capture-wrapper');\n\n // copy attributes from old wrapper, but skip key and start-countdown\n const attributesToCopy = Array.from(oldWrapper.attributes);\n\n attributesToCopy.forEach((attr) => {\n newWrapper.setAttribute(attr.name, attr.value);\n });\n oldWrapper.remove();\n await new Promise((resolve) => {\n setTimeout(resolve, 50);\n });\n\n newWrapper.setAttribute('key', this._remountKey.toString());\n newWrapper.setAttribute('start-countdown', 'false');\n newWrapper.setAttribute('hidden', '');\n\n const reviewElement = container.querySelector('selfie-capture-review');\n if (reviewElement) {\n container.insertBefore(newWrapper, reviewElement);\n } else {\n container.appendChild(newWrapper);\n }\n\n this.selfieCapture = newWrapper;\n\n this.setupSelfieWrapperEventListeners();\n }\n\n // give time for the new component to initialize\n return new Promise((resolve) => {\n setTimeout(() => {\n resolve();\n }, 200);\n });\n }\n\n // Override setActiveScreen to enable countdown when selfie-capture is active\n setActiveScreen(screen) {\n if (this.activeScreen === screen) {\n return;\n }\n\n this.activeScreen?.setAttribute('hidden', '');\n screen.removeAttribute('hidden');\n this.activeScreen = screen;\n\n // If activating selfie-capture-wrapper, enable the countdown\n if (screen === this.selfieCapture) {\n screen.setAttribute('start-countdown', 'true');\n } else if (this.selfieCapture) {\n // Disable countdown when not on capture screen\n this.selfieCapture.setAttribute('start-countdown', 'false');\n }\n }\n\n setupSelfieWrapperEventListeners() {\n // Remove existing event listeners if they exist\n if (this._selfieWrapperListeners) {\n this._selfieWrapperListeners.forEach(({ event, handler }) => {\n window.removeEventListener(event, handler);\n });\n }\n\n // Create new event handlers\n const cancelledHandler = async () => {\n SmartCamera.stopMedia();\n\n // Force remount of selfie-capture-wrapper for clean state on next visit\n await this.forceWrapperRemount();\n\n if (this.hideInstructions) {\n this.handleBackEvents();\n return;\n }\n\n this.setActiveScreen(this.selfieInstruction);\n };\n\n const closeHandler = async () => {\n SmartCamera.stopMedia();\n\n // Force remount of selfie-capture-wrapper for clean state on next visit\n await this.forceWrapperRemount();\n\n this.handleCloseEvent();\n };\n\n const publishHandler = async (event) => {\n smartCameraWeb?.dispatchEvent(\n new CustomEvent('metadata.selfie-capture-end'),\n );\n this.selfieReview.setAttribute(\n 'data-image',\n await cropImageFromDataUri(event.detail.referenceImage, 20, 20),\n );\n const shouldMirror = event.detail.facingMode === 'user';\n this.selfieReview.setAttribute(\n 'mirror-image',\n shouldMirror ? 'true' : 'false',\n );\n this._data.images = event.detail.images;\n SmartCamera.stopMedia();\n this.setActiveScreen(this.selfieReview);\n };\n\n // Store references to remove them later\n this._selfieWrapperListeners = [\n { event: 'selfie-capture.cancelled', handler: cancelledHandler },\n { event: 'selfie-capture.close', handler: closeHandler },\n { event: 'selfie-capture.publish', handler: publishHandler },\n ];\n\n // Add event listeners\n this._selfieWrapperListeners.forEach(({ event, handler }) => {\n window.addEventListener(event, handler);\n });\n\n // Also listen for the publish event on the parent SelfieCaptureScreens element\n // in case smartselfie-capture dispatches it there\n this.addEventListener('selfie-capture.publish', publishHandler);\n }\n\n _publishSelectedImages() {\n this.dispatchEvent(\n new CustomEvent('selfie-capture-screens.publish', { detail: this._data }),\n );\n }\n\n get hideInstructions() {\n return this.hasAttribute('hide-instructions');\n }\n\n get hideAttribution() {\n return this.hasAttribute('hide-attribution') ? 'hide-attribution=\"\"' : '';\n }\n\n get hideBackOfId() {\n return this.hasAttribute('hide-back-of-id');\n }\n\n get showNavigation() {\n return this.hasAttribute('show-navigation') ? 'show-navigation=\"\"' : '';\n }\n\n get inAgentMode() {\n return this.getAttribute('allow-agent-mode') === 'true';\n }\n\n get allowAgentMode() {\n return this.inAgentMode ? 'allow-agent-mode=\"true\"' : '';\n }\n\n get allowAgentModeTests() {\n return this.hasAttribute('show-agent-mode-for-tests')\n ? 'show-agent-mode-for-tests=\"\"'\n : '';\n }\n\n get hideBack() {\n return this.hasAttribute('hide-back-to-host') ||\n this.hasAttribute('hide-back')\n ? 'hide-back=\"\"'\n : '';\n }\n\n get disableImageTests() {\n return this.hasAttribute('disable-image-tests')\n ? 'disable-image-tests=\"\"'\n : '';\n }\n\n get allowLegacySelfieFallback() {\n return this.hasAttribute('allow-legacy-selfie-fallback')\n ? `allow-legacy-selfie-fallback='${this.getAttribute('allow-legacy-selfie-fallback')}'`\n : '';\n }\n\n get themeColor() {\n return this.getAttribute('theme-color') || '#001096';\n }\n\n handleBackEvents() {\n this.dispatchEvent(new CustomEvent('selfie-capture-screens.cancelled'));\n }\n\n handleCloseEvent() {\n this.dispatchEvent(new CustomEvent('selfie-capture-screens.close'));\n }\n\n static get observedAttributes() {\n return [\n 'title',\n 'hidden',\n 'show-navigation',\n 'hide-back-to-host',\n 'initial-screen',\n 'allow-agent-mode',\n 'allow-legacy-selfie-fallback',\n 'show-agent-mode-for-tests',\n 'disable-image-tests',\n ];\n }\n\n attributeChangedCallback(name) {\n switch (name) {\n case 'title':\n case 'hidden':\n case 'initial-screen':\n case 'allow-agent-mode':\n case 'allow-legacy-selfie-fallback':\n case 'show-agent-mode-for-tests':\n case 'disable-image-tests':\n this.connectedCallback();\n break;\n default:\n break;\n }\n }\n}\n\nif (\n 'customElements' in window &&\n !customElements.get('selfie-capture-screens')\n) {\n customElements.define('selfie-capture-screens', SelfieCaptureScreens);\n}\n\nexport default SelfieCaptureScreens;\n"],"names":["templateString","styles","t","SelfieCaptureInstructions","template","getDirection","SelfieCaptureReview","name","defaultAttributes","createPreactComponent","type","iconName","iconNamePascal","iconNode","Component","color","size","stroke","title","children","className","classes","style","rest","h","tag","attrs","toChildArray","IconLoader2","useCamera","initialFacingMode","videoRef","useRef","streamRef","facingMode","setFacingMode","useState","agentSupported","setAgentSupported","onCameraSwitchCallbackRef","isSwitchingCameraRef","timeoutIdsRef","registerCameraSwitchCallback","callback","useEffect","video","handleVideoReady","timeoutId","startCamera","targetFacingMode","track","stream","actualFacingMode","videoDevice","device","error","switchCamera","newFacingMode","previousFacingMode","restoreError","detectBrowserEngine","userAgent","isGecko","hasFirefoxFeatures","supportsMozCSS","userCameraId","environmentCameraId","userStream","envStream","i","s","r","f","o","c","n","v","e","u","E","d","a","l","y","w","_","b","g","p","m","useSignal","T","useComputed","q","F","A","k","S","x","L","R","I","M","P","C","O","U","B","N","D","j","G","V","X","H","W","z","K","Y","$","J","Z","Q","tt","et","nt","rt","it","st","ot","at","ct","ht","ut","lt","dt","ft","pt","gt","mt","yt","_t","vt","Et","wt","Tt","At","bt","St","Lt","Rt","kt","xt","Ft","It","Mt","Pt","Ct","Ot","Xt","Ut","Dt","Bt","Nt","Gt","jt","Vt","Ht","Wt","zt","Kt","Yt","$t","qt","Jt","Zt","Qt","te","ee","ne","re","ie","se","oe","ae","ce","he","ue","le","de","fe","pe","ge","me","ye","_e","ve","Ee","we","Te","Ae","be","Ce","ke","Se","je","xe","Le","Re","Fe","Ie","Me","Pe","Oe","Ue","De","Ne","Be","Ge","Ve","Xe","He","We","ze","Ke","Ye","$e","qe","pn","Je","Ze","gn","Qe","tn","en","nn","Ts","on","rn","sn","an","cn","hn","un","ln","dn","fn","mn","yn","_n","vn","En","wn","Tn","An","bn","kn","Sn","xn","Ln","Rn","Dn","Fn","In","Mn","Pn","Cn","On","Un","Nn","Bn","Gn","jn","Vn","Xn","Hn","Wn","zn","Kn","Yn","$n","_o","qn","Jn","Zn","Qn","tr","er","nr","rr","ir","sr","or","ar","cr","hr","ur","lr","dr","fr","pr","gr","mr","yr","_r","vr","Er","wr","Tr","Ar","br","Or","kr","Sr","xr","Lr","Rr","Fr","Ir","Mr","Pr","Cr","Ur","Dr","Nr","Br","Gr","jr","Vr","Xr","Hr","Wr","zr","Kr","Yr","$r","qr","Jr","Zr","Qr","ti","ei","ni","ri","ii","si","oi","ai","ci","hi","ui","li","di","fi","pi","gi","mi","yi","_i","vi","Ei","wi","Ti","Ai","bi","ki","Si","xi","Li","Ri","Fi","Ii","Mi","Pi","Ci","Oi","Ui","Di","Ni","Bi","Gi","ji","Vi","Xi","Hi","Wi","zi","Ki","Yi","$i","qi","Ji","Zi","Qi","ts","es","ns","rs","is","ss","os","as","cs","hs","us","ls","ds","fs","ps","gs","ms","ys","_s","vs","Es","ws","As","bs","ks","Ss","xs","Ls","Rs","Fs","Is","Ms","Ps","Cs","Os","Us","Ds","Ns","Bs","Gs","js","Vs","Xs","Hs","Ws","zs","Ks","Ys","$s","qs","Js","Zs","Qs","to","eo","no","ro","io","so","oo","ao","co","ho","uo","lo","fo","po","go","mo","yo","vo","Eo","wo","To","Ao","bo","ko","So","xo","Lo","Ro","Fo","Io","Mo","Po","Co","Oo","Uo","Do","No","Bo","Go","jo","Vo","Xo","Ho","Wo","zo","Ko","Yo","$o","qo","Jo","Zo","Qo","ta","ea","na","ra","ia","sa","oa","aa","ca","ha","ua","la","da","pa","ma","fa","ya","ga","_a","va","Ea","wa","Ta","Aa","ba","ka","Sa","xa","La","Ra","Fa","Ia","Ma","Pa","Oa","Ua","Ca","Da","Na","Ba","Ga","ja","Va","Xa","Ha","Wa","za","Ka","Ya","$a","qa","Ja","Za","Qa","tc","ec","nc","rc","ic","sc","oc","ac","cc","hc","uc","lc","dc","fc","pc","gc","mc","yc","_c","vc","Ec","wc","Tc","Ac","bc","kc","Sc","xc","Lc","Rc","Fc","Ic","Mc","Pc","Cc","Oc","Uc","Dc","Nc","Bc","Gc","jc","Vc","Xc","Hc","Wc","zc","Kc","root","require$$0","now","now_1","reWhitespace","trimmedEndIndex","string","index","_trimmedEndIndex","reTrimStart","baseTrim","_baseTrim","baseGetTag","isObjectLike","require$$1","symbolTag","isSymbol","value","isSymbol_1","isObject","require$$2","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","toNumber","other","isBinary","toNumber_1","FUNC_ERROR_TEXT","nativeMax","nativeMin","debounce","func","wait","options","lastArgs","lastThis","maxWait","result","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","leadingEdge","timerExpired","remainingWait","timeSinceLastCall","timeSinceLastInvoke","timeWaiting","shouldInvoke","trailingEdge","cancel","flush","debounced","isInvoking","debounce_1","throttle","throttle_1","calculateFaceSize","landmarks","face","minX","maxX","minY","maxY","landmark","faceWidth","faceHeight","isFaceInBounds","videoAspectRatio","ovalCenterX","ovalCenterY","isLandscape","ovalWidth","ovalHeight","faceCenterX","faceCenterY","centerTolerance","centerOvalWidth","centerOvalHeight","centerInBounds","dx","dy","toleranceX","toleranceY","adjustedOvalWidth","adjustedOvalHeight","checkPointInExpandedOval","topLeft","topRight","bottomLeft","bottomRight","calculateMouthOpening","upperLipCenter","lowerLipCenter","mouthHeight","faceTop","createCroppedVideoFrame","videoElement","canvas","ctx","sourceWidth","sourceHeight","squareSize","cropX","cropY","drawFaceMesh","capturesTaken","smileCheckpoint","canvasWidth","canvasHeight","drawingUtils","DrawingUtils","outlineColor","lineWidth","FaceLandmarker","clearCanvas","captureImageFromVideo","isReference","isPortrait","zoomOutFactor","offsetX","offsetY","JPEG_QUALITY","ImageType","MESSAGES","EXCLUDED_GPUS","normalizeGpuText","matchesExcludedGpu","normalizedValue","gpuPattern","normalizedPattern","familyPrefix","getGpuRenderer","gl","ext","isExcludedGpuFromWebGL","renderer","rendererString","supportsWasmReftypes","bytes","UnsupportedMediapipeEnvironmentError","message","getSystemArchitectureHints","hints","getDelegateFromGpuDetection","hasWebGlRendererInfo","hintString","hasUaHints","hasFP16Support","hasHalfFloatExt","hasHalfFloatLinear","hasColorBufferHalfFloat","getMediapipeInstance","mediapipeGlobal","vision","FilesetResolver","delegate","faceLandmarker","COMPONENTS_VERSION","packageJson","useFaceCapture","canvasRef","interval","duration","smileThreshold","mouthOpenThreshold","minFaceSize","maxFaceSize","smileCooldown","getFacingMode","faceLandmarkerRef","animationFrameRef","captureTimerRef","resumeCaptureRef","fallbackTimerRef","faceDetected","faceInBounds","faceProximity","faceLandmarks","currentSmileScore","currentFaceSize","currentMouthOpen","lastSmileTime","alertTitle","isInitializing","captureButtonFallbackEnabled","isCapturing","isPaused","countdown","capturedImages","referencePhoto","totalCaptures","hasFinishedCapture","neutralZone","isReadyToCapture","updateAlertImmediate","messageKey","updateAlert","CAPTURE_FALLBACK_TIMEOUT_MS","startFallbackTimer","initializeFaceLandmarker","setupCanvas","videoWidth","videoHeight","updateCaptureAlerts","isInNeutralZone","isInSmileZone","updateAlerts","stopDetectionLoop","detectFace","croppedCanvas","detectionSource","results","scaleFactor","scaleFactorY","adjustedLandmarks","numFaces","hasFace","faceSize","blendshapes","smileLeft","smileRight","mouthOpen","smileScore","startDetectionLoop","captureImage","imageData","stopCapture","livenessImages","img","referenceImage","eventDetail","pauseCapture","startCaptureInterval","resumeCapture","smartCameraWeb","OvalProgress","progress","themeColor","pathRef","prevProgress","path","pathLength","fromOffset","toOffset","jsx","jsxs","CameraPreview","Fragment","AlertDisplay","CaptureControls","allowAgentMode","showAgentModeForTests","onStartCapture","onSwitchCamera","SmartSelfieCapture","showNavigationProp","allowAgentModeProp","showAgentModeForTestsProp","hideAttributionProp","navigationRef","showNavigation","getBoolProp","hideAttribution","camera","faceCapture","initializeCamera","cameraName","navigation","handleNavigationBack","handleNavigationClose","register","DEFAULT_NO_OF_LIVENESS_FRAMES","hasMoreThanNColors","data","colors","getLivenessFramesIndices","totalNoOfFrames","numberOfFramesRequired","selectedFrames","tHtml","frameDivisor","frameInterval","replacementFrameIndex","lastFrameIndex","getPermissions","captureScreen","constraints","SmartCamera","SelfieCaptureScreen","imageOutlineLength","livenessFramesIndices","imageIndex","IMAGE_TYPE","image","enableImageTests","context","videoContainer","videoExists","DEFAULT_MEDIAPIPE_WAIT_MS","DEFAULT_WAIT_MS","MAX_MEDIAPIPE_INIT_ATTEMPTS","MEDIAPIPE_RETRY_BASE_DELAY_MS","SelfieCaptureWrapper","timeout","startCountdownProp","allowLegacySelfieFallbackProp","hiddenProp","props","isCypress","hidden","startCountdown","allowLegacySelfieFallback","loadingTime","mediapipeReady","setMediapipeReady","loadingProgress","setLoadingProgress","initialSessionCompleted","setInitialSessionCompleted","mediapipeLoading","setMediapipeLoading","unsupportedEnvironment","setUnsupportedEnvironment","mediapipeInitAttempts","setMediapipeInitAttempts","mediapipeInitReported","setMediapipeInitReported","usingSelfieCapture","setUsingSelfieCapture","cancelled","retryTimeoutId","attemptNumber","isUnsupportedEnvironment","backoffMs","timer","prev","selfieCapture","forwardEvent","event","customEvent","propsWithoutHidden","el","translate","translateHtml","cropImageFromDataUri","dataUri","cropPercentX","cropPercentY","resolve","reject","originalWidth","originalHeight","cropAmountX","cropAmountY","newWidth","newHeight","croppedDataUri","SelfieCaptureScreens","handler","screen","container","oldWrapper","newWrapper","attr","reviewElement","cancelledHandler","closeHandler","publishHandler","shouldMirror"],"mappings":"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G,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,IAAG,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,IAAG,CAAC,GAAE,CAAC,GAAE,GAAG,GAAE,CAAC,KAAI,EAAE,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,GAAE,CAAC,KAAI,GAAG,CAAC;AAAE,SAASqB,GAAGhjB,GAAE;AAAC,EAAAA,EAAE,IAAE,EAAC,eAAc,CAAA,GAAG,iBAAgB,CAAA,GAAG,8BAA6B,CAAA,EAAE;AAAC;AAAC,IAAIijB,IAAG,cAAcb,GAAE;AAAA,EAAC,YAAYpiB,GAAE2E,GAAE;AAAC,UAAM,IAAImd,GAAG9hB,GAAE2E,CAAC,GAAE,YAAW,aAAY,EAAE,GAAE,KAAK,IAAE,EAAC,eAAc,CAAA,GAAG,iBAAgB,CAAA,GAAG,8BAA6B,CAAA,EAAE,GAAE,KAAK,qCAAmC,KAAK,wBAAsB,IAAGwK,EAAGnP,IAAE,KAAK,IAAE,IAAI8a,MAAG,GAAE,GAAEnW,IAAE,IAAI2V,GAAE,GAAE,KAAK,IAAE,IAAIO,MAAG1L,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAE,KAAK,IAAE,IAAIsL,MAAGtL,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAEQ,GAAG,KAAK,GAAE,GAAE,CAAC,GAAEC,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAOZ,EAAG,KAAK,GAAEsL,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYta,GAAE;AAAC,IAAAmP,EAAG,KAAK,GAAE,GAAE,GAAEnP,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE;AAAC,WAAM,cAAaA,KAAG2P,GAAG,KAAK,GAAE,GAAE3P,EAAE,YAAU,CAAC,GAAE,gCAA+BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,8BAA4B,GAAE,GAAE,2BAA0BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,yBAAuB,GAAE,GAAE,+BAA8BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,6BAA2B,GAAE,GAAE,2BAA0BA,MAAI,KAAK,wBAAsB,CAAC,CAACA,EAAE,wBAAuB,wCAAuCA,MAAI,KAAK,qCAAmC,CAAC,CAACA,EAAE,qCAAoC,KAAK,EAAEA,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE2E,GAAE;AAAC,WAAOqe,GAAG,IAAI,GAAEf,GAAG,MAAKjiB,GAAE2E,CAAC,GAAE,KAAK;AAAA,EAAC;AAAA,EAAC,EAAE3E,GAAE2E,GAAEF,GAAE;AAAC,WAAOue,GAAG,IAAI,GAAEd,GAAG,MAAKliB,GAAEyE,GAAEE,CAAC,GAAE,KAAK;AAAA,EAAC;AAAA,EAAC,IAAG;AAAC,QAAI3E,IAAE,IAAIuY;AAAG,IAAAF,EAAGrY,GAAE,UAAU,GAAEqY,EAAGrY,GAAE,WAAW,GAAEsY,EAAGtY,GAAE,gBAAgB;AAAE,UAAM2E,IAAE,IAAI+S;AAAG,IAAArG,GAAG1M,GAAEsW,IAAG,KAAK,CAAC;AAAE,UAAMxW,IAAE,IAAIuT;AAAG,IAAAH,GAAGpT,GAAE,4DAA4D,GAAEqT,EAAGrT,GAAE,gBAAgB,GAAEqT,EAAGrT,GAAE,qBAAqB,GAAEsT,EAAGtT,GAAE,+BAA+B,GAAEA,EAAE,EAAEE,CAAC,GAAEyT,GAAGpY,GAAEyE,CAAC,GAAE,KAAK,EAAE,0BAA0B,mBAAkB,CAACzE,GAAE2E,MAAI;AAAC,iBAAUA,KAAK3E,EAAE,CAAAA,IAAEqZ,GAAG1U,CAAC,GAAE,KAAK,EAAE,cAAc,KAAK4Y,GAAGvd,CAAC,CAAC;AAAE,MAAA2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,mBAAkB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,0BAAwBsY,EAAGtY,GAAE,aAAa,GAAE+X,EAAGtT,GAAE,yBAAyB,GAAE,KAAK,EAAE,0BAA0B,gBAAe,CAACzE,GAAE2E,MAAI;AAAC,UAAG,KAAK,sBAAsB,YAAUA,KAAK3E,EAAE,CAAAA,IAAE6Y,GAAGlU,CAAC,GAAE,KAAK,EAAE,gBAAgB,KAAK0Y,GAAGrd,EAAE,EAAC,KAAI,EAAE,CAAC;AAAE,MAAA2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,gBAAe,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,MAAK,KAAK,uCAAqCsY,EAAGtY,GAAE,eAAe,GAAE+X,EAAGtT,GAAE,6BAA6B,GAAE,KAAK,EAAE,0BAA0B,kBAAiB,CAACzE,GAAE2E,MAAI;AAAC,UAAG,KAAK,mCAAmC,YAAUA,KAAK3E,EAAE,EAACA,IAAEgP,EAAG4L,GAAGjW,CAAC,GAAE2U,IAAG,CAAC,MAAI,KAAK,EAAE,6BAA6B,KAAK,EAAC,MAAK/J,GAAGvP,GAAE,CAAC,KAAG,KAAG,GAAE,SAAQuP,GAAGvP,GAAE,CAAC,KAAG,KAAG,GAAE,MAAKgO,GAAGhO,GAAE,GAAE2K,IAAGoD,GAAE,CAAE,EAAE,MAAK,KAAI,CAAA,EAAE,CAAC;AAAE,MAAA4Q,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,kBAAiB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,IAAIA,IAAEA,EAAE,EAAC,GAAG,KAAK,SAAS,IAAI,WAAWA,CAAC,GAAE,EAAE;AAAA,EAAC;AAAC;AAAEijB,EAAG,UAAU,iBAAeA,EAAG,UAAU,GAAEA,EAAG,UAAU,SAAOA,EAAG,UAAU,GAAEA,EAAG,UAAU,aAAWA,EAAG,UAAU,GAAEA,EAAG,sBAAoB,SAASjjB,GAAE2E,GAAE;AAAC,SAAOod,EAAGkB,GAAGjjB,GAAE,EAAC,aAAY,EAAC,gBAAe2E,EAAC,EAAC,CAAC;AAAC,GAAEse,EAAG,wBAAsB,SAASjjB,GAAE2E,GAAE;AAAC,SAAOod,EAAGkB,GAAGjjB,GAAE,EAAC,aAAY,EAAC,kBAAiB2E,EAAC,EAAC,CAAC;AAAC,GAAEse,EAAG,oBAAkB,SAASjjB,GAAE2E,GAAE;AAAC,SAAOod,EAAGkB,GAAGjjB,GAAE2E,CAAC;AAAC,GAAEse,EAAG,sBAAoBX,IAAGW,EAAG,0BAAwBV,IAAGU,EAAG,8BAA4BT,IAAGS,EAAG,2BAAyBR,IAAGQ,EAAG,2BAAyBP,IAAGO,EAAG,+BAA6BN,IAAGM,EAAG,4BAA0BL,IAAGK,EAAG,2BAAyBJ,IAAGI,EAAG,0BAAwBH,IAAGG,EAAG,6BAA2BF;AAAG,IAAIG,KAAG,cAAcd,GAAE;AAAA,EAAC,YAAYpiB,GAAE2E,GAAE;AAAC,UAAM,IAAImd,GAAG9hB,GAAE2E,CAAC,GAAE,YAAW,aAAY,EAAE,GAAEwK,EAAGnP,IAAE,KAAK,IAAE,IAAIkb,MAAG,GAAE,GAAEvW,IAAE,IAAI2V,GAAE;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAOtL,EAAG,KAAK,GAAEsL,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYta,GAAE;AAAC,IAAAmP,EAAG,KAAK,GAAE,GAAE,GAAEnP,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE;AAAC,WAAO,MAAM,EAAEA,CAAC;AAAA,EAAC;AAAA,EAAC,GAAGA,GAAE2E,GAAEF,GAAE;AAAC,UAAM,IAAc,OAAOE,KAAnB,aAAqBA,IAAE,CAAA;AAAG,QAAG,KAAK,IAAc,OAAOA,KAAnB,aAAqBA,IAAEF,GAAEwd,GAAG,MAAKjiB,GAAE,KAAG,CAAA,CAAE,GAAE,CAAC,KAAK,EAAE,QAAO,KAAK;AAAA,EAAC;AAAA,EAAC,IAAG;AAAC,QAAIA,IAAE,IAAIuY;AAAG,IAAAF,EAAGrY,GAAE,UAAU,GAAEqY,EAAGrY,GAAE,WAAW,GAAEsY,EAAGtY,GAAE,gBAAgB;AAAE,UAAM2E,IAAE,IAAI+S;AAAG,IAAArG,GAAG1M,GAAEwW,IAAG,KAAK,CAAC;AAAE,UAAM1W,IAAE,IAAIuT;AAAG,IAAAH,GAAGpT,GAAE,wDAAwD,GAAEqT,EAAGrT,GAAE,gBAAgB,GAAEqT,EAAGrT,GAAE,qBAAqB,GAAEsT,EAAGtT,GAAE,+BAA+B,GAAEA,EAAE,EAAEE,CAAC,GAAEyT,GAAGpY,GAAEyE,CAAC,GAAE,KAAK,EAAE,EAAE,mBAAkB,CAACzE,GAAE2E,MAAI;AAAC,UAAIF,IAAE,CAAC,KAAK,GAAEJ,IAAErE,EAAE,MAAKmE,IAAEnE,EAAE;AAAM,YAAMoE,IAAED,KAAGnE,IAAEA,EAAE;AAAQ,UAAGqE,aAAa,WAAW,KAAGA,EAAE,WAAS,IAAED,GAAE;AAAC,cAAMO,IAAE,IAAI,kBAAkB,IAAEP,CAAC;AAAE,iBAAQpE,IAAE,GAAEA,IAAEoE,GAAE,EAAEpE,EAAE,CAAA2E,EAAE,IAAE3E,CAAC,IAAEqE,EAAE,IAAErE,CAAC,GAAE2E,EAAE,IAAE3E,IAAE,CAAC,IAAEqE,EAAE,IAAErE,IAAE,CAAC,GAAE2E,EAAE,IAAE3E,IAAE,CAAC,IAAEqE,EAAE,IAAErE,IAAE,CAAC,GAAE2E,EAAE,IAAE3E,IAAE,CAAC,IAAE;AAAI,QAAAqE,IAAE,IAAI,UAAUM,GAAER,GAAEnE,CAAC;AAAA,MAAC,OAAK;AAAC,YAAGqE,EAAE,WAAS,IAAED,EAAE,OAAM,MAAM,gCAA8BC,EAAE,SAAOD,CAAC;AAAE,QAAAC,IAAE,IAAI,UAAU,IAAI,kBAAkBA,EAAE,QAAOA,EAAE,YAAWA,EAAE,MAAM,GAAEF,GAAEnE,CAAC;AAAA,MAAC;AAAA,eAAS,EAAEqE,aAAa,cAAc,OAAM,MAAM,uBAAuBA,EAAE,YAAY,IAAI,EAAE;AAAE,MAAAF,IAAE,IAAIsd,GAAG,CAACpd,CAAC,GAAE,IAAG,IAAG,KAAK,EAAE,EAAE,QAAO,KAAK,GAAEF,GAAEnE,CAAC,GAAE,KAAK,IAAEyE,IAAEA,IAAEN,EAAE,MAAK,IAAGA,GAAE,KAAK,KAAG,KAAK,EAAEM,CAAC,GAAEka,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,mBAAkB,CAAA3E,MAAG;AAAC,WAAK,IAAE,MAAK,KAAK,KAAG,KAAK,EAAE,IAAI,GAAE2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAGA,IAAEA,EAAE,EAAC,GAAG,KAAK,SAAS,IAAI,WAAWA,CAAC,GAAE,EAAE;AAAA,EAAC;AAAC;AAAEkjB,GAAG,UAAU,UAAQA,GAAG,UAAU,IAAGA,GAAG,UAAU,aAAWA,GAAG,UAAU,GAAEA,GAAG,sBAAoB,SAASljB,GAAE2E,GAAE;AAAC,SAAOod,EAAGmB,IAAGljB,GAAE,EAAC,aAAY,EAAC,gBAAe2E,EAAC,EAAC,CAAC;AAAC,GAAEue,GAAG,wBAAsB,SAASljB,GAAE2E,GAAE;AAAC,SAAOod,EAAGmB,IAAGljB,GAAE,EAAC,aAAY,EAAC,kBAAiB2E,EAAC,EAAC,CAAC;AAAC,GAAEue,GAAG,oBAAkB,SAASljB,GAAE2E,GAAE;AAAC,SAAOod,EAAGmB,IAAGljB,GAAE2E,CAAC;AAAC;AAAE,IAAIwe,KAAGxB,GAAG,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,CAAC;AAAE,SAASyB,GAAGpjB,GAAE;AAAC,EAAAA,EAAE,WAAS,CAAA,GAAGA,EAAE,YAAU,CAAA,GAAGA,EAAE,iBAAe,CAAA,GAAGA,EAAE,aAAW,CAAA;AAAE;AAAC,SAASqjB,GAAGrjB,GAAE;AAAC,SAAWA,EAAE,SAAS,WAAf,IAAsB,EAAC,UAAS,CAAA,GAAG,WAAU,CAAA,GAAG,gBAAe,CAAA,GAAG,YAAW,CAAA,GAAG,cAAa,CAAA,EAAE,IAAE,EAAC,UAASA,EAAE,UAAS,WAAUA,EAAE,WAAU,gBAAeA,EAAE,gBAAe,YAAWA,EAAE,YAAW,cAAaA,EAAE,WAAU;AAAC;AAAC,SAASsjB,GAAGtjB,GAAE2E,IAAE,IAAG;AAAC,QAAMF,IAAE,CAAA;AAAG,aAAUN,KAAKnE,GAAE;AAAC,QAAI,IAAE6Y,GAAG1U,CAAC;AAAE,IAAAnE,IAAE,CAAA;AAAG,eAAUyE,KAAK,EAAE,EAAC,EAAG,KAAEE,KAAS4K,GAAG9K,GAAE,CAAC,KAAZ,OAAc8K,GAAG9K,GAAE,CAAC,KAAG,IAAE,IAAGzE,EAAE,KAAK,EAAC,OAAMyP,GAAGhL,GAAE,CAAC,KAAG,GAAE,OAAM,GAAE,cAAa+K,GAAG/K,GAAE,CAAC,KAAG,MAAI,IAAG,aAAY+K,GAAG/K,GAAE,CAAC,KAAG,MAAI,GAAE,CAAC;AAAE,IAAAA,EAAE,KAAKzE,CAAC;AAAA,EAAC;AAAC,SAAOyE;AAAC;AAAC,IAAI8e,KAAG,cAAcnB,GAAE;AAAA,EAAC,YAAYpiB,GAAE2E,GAAE;AAAC,UAAM,IAAImd,GAAG9hB,GAAE2E,CAAC,GAAE,YAAW,aAAY,EAAE,GAAE,KAAK,WAAS,CAAA,GAAG,KAAK,YAAU,CAAA,GAAG,KAAK,iBAAe,CAAA,GAAG,KAAK,aAAW,CAAA,GAAGwK,EAAGnP,IAAE,KAAK,IAAE,IAAI0b,MAAG,GAAE,GAAE/W,IAAE,IAAI2V,GAAE,GAAE,KAAK,IAAE,IAAImB,MAAGtM,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAE,KAAK,IAAE,IAAIqM,MAAGrM,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAE,KAAK,IAAE,IAAIoM,MAAGpM,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAE,KAAK,IAAE,IAAImM,MAAGnM,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAES,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAOZ,EAAG,KAAK,GAAEsL,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYta,GAAE;AAAC,IAAAmP,EAAG,KAAK,GAAE,GAAE,GAAEnP,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE;AAAC,QAAG2P,GAAG,KAAK,GAAE,GAAE3P,EAAE,YAAU,CAAC,GAAE,gCAA+BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,8BAA4B,GAAE,GAAE,2BAA0BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,yBAAuB,GAAE,GAAE,+BAA8BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,6BAA2B,GAAE,GAAEA,EAAE,iCAAgC;AAAC,UAAI2E,IAAE,IAAIyW,MAAG3W,IAAEE,GAAE,IAAEyY,GAAGpd,EAAE,iCAAgCgP,EAAG,KAAK,GAAEoM,IAAG,CAAC,GAAG,EAAC,CAAE;AAAE,MAAAjM,EAAG1K,GAAE,GAAE,GAAE,CAAC,GAAE0K,EAAG,KAAK,GAAE,GAAE,GAAExK,CAAC;AAAA,IAAC,MAAM,CAAS3E,EAAE,oCAAX,UAA4CgP,EAAG,KAAK,GAAEoM,IAAG,CAAC,GAAG,EAAC;AAAG,WAAOpb,EAAE,mCAAiCmP,EAAG1K,IAAEE,IAAE,IAAIyW,MAAG,GAAE,GAAE,IAAEgC,GAAGpd,EAAE,iCAAgCgP,EAAG,KAAK,GAAEoM,IAAG,CAAC,GAAG,EAAC,CAAE,CAAC,GAAEjM,EAAG,KAAK,GAAE,GAAE,GAAExK,CAAC,KAAY3E,EAAE,oCAAX,UAA4CgP,EAAG,KAAK,GAAEoM,IAAG,CAAC,GAAG,EAAC,GAAG,KAAK,EAAEpb,CAAC;AAAA,EAAC;AAAA,EAAC,GAAGA,GAAE2E,GAAE;AAAC,WAAOye,GAAG,IAAI,GAAEnB,GAAG,MAAKjiB,GAAE2E,CAAC,GAAE0e,GAAG,IAAI;AAAA,EAAC;AAAA,EAAC,GAAGrjB,GAAE2E,GAAEF,GAAE;AAAC,WAAO2e,GAAG,IAAI,GAAElB,GAAG,MAAKliB,GAAEyE,GAAEE,CAAC,GAAE0e,GAAG,IAAI;AAAA,EAAC;AAAA,EAAC,IAAG;AAAC,QAAIrjB,IAAE,IAAIuY;AAAG,IAAAF,EAAGrY,GAAE,UAAU,GAAEqY,EAAGrY,GAAE,WAAW,GAAEsY,EAAGtY,GAAE,eAAe,GAAEsY,EAAGtY,GAAE,gBAAgB,GAAEsY,EAAGtY,GAAE,sBAAsB,GAAEsY,EAAGtY,GAAE,YAAY;AAAE,UAAM2E,IAAE,IAAI+S;AAAG,IAAArG,GAAG1M,GAAEoX,IAAG,KAAK,CAAC;AAAE,UAAMtX,IAAE,IAAIuT;AAAG,IAAAH,GAAGpT,GAAE,kEAAkE,GAAEqT,EAAGrT,GAAE,gBAAgB,GAAEqT,EAAGrT,GAAE,qBAAqB,GAAEsT,EAAGtT,GAAE,6BAA6B,GAAEsT,EAAGtT,GAAE,0BAA0B,GAAEsT,EAAGtT,GAAE,sCAAsC,GAAEsT,EAAGtT,GAAE,uBAAuB,GAAEA,EAAE,EAAEE,CAAC,GAAEyT,GAAGpY,GAAEyE,CAAC,GAAE,KAAK,EAAE,0BAA0B,mBAAkB,CAACzE,GAAE2E,MAAI;AAAC,iBAAUA,KAAK3E,GAAE;AAAC,QAAAA,IAAEqZ,GAAG1U,CAAC;AAAE,cAAMF,IAAE,CAAA;AAAG,mBAAUE,KAAKuK,GAAGlP,GAAEoZ,IAAG,CAAC,EAAE,CAAA3U,EAAE,KAAK,EAAC,GAAEgL,GAAG9K,GAAE,CAAC,KAAG,GAAE,GAAE8K,GAAG9K,GAAE,CAAC,KAAG,GAAE,GAAE8K,GAAG9K,GAAE,CAAC,KAAG,GAAE,YAAW8K,GAAG9K,GAAE,CAAC,KAAG,EAAC,CAAC;AAAE,aAAK,UAAU,KAAKF,CAAC;AAAA,MAAC;AAAC,MAAAka,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,mBAAkB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,yBAAwB,CAACA,GAAE2E,MAAI;AAAC,iBAAUA,KAAK3E,GAAE;AAAC,QAAAA,IAAEmZ,GAAGxU,CAAC;AAAE,cAAMF,IAAE,CAAA;AAAG,mBAAUE,KAAKuK,GAAGlP,GAAEkZ,IAAG,CAAC,EAAE,CAAAzU,EAAE,KAAK,EAAC,GAAEgL,GAAG9K,GAAE,CAAC,KAAG,GAAE,GAAE8K,GAAG9K,GAAE,CAAC,KAAG,GAAE,GAAE8K,GAAG9K,GAAE,CAAC,KAAG,GAAE,YAAW8K,GAAG9K,GAAE,CAAC,KAAG,EAAC,CAAC;AAAE,aAAK,eAAe,KAAKF,CAAC;AAAA,MAAC;AAAC,MAAAka,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,yBAAwB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,KAAI,KAAK,EAAE,0BAA0B,kBAAiB,CAACA,GAAE2E,MAAI;AAAC,WAAK,SAAS,KAAK,GAAG2e,GAAGtjB,GAAE,EAAE,CAAC,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,kBAAiB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,eAAc,CAACA,GAAE2E,MAAI;AAAC,WAAK,WAAW,KAAK,GAAG2e,GAAGtjB,CAAC,CAAC,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,eAAc,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAGA,IAAEA,EAAE,EAAC,GAAG,KAAK,SAAS,IAAI,WAAWA,CAAC,GAAE,EAAE;AAAA,EAAC;AAAC;AAAE,SAASwjB,GAAGxjB,GAAE;AAAC,SAAM,EAAC,WAAUA,EAAE,WAAU,gBAAeA,EAAE,gBAAe,cAAaA,EAAE,YAAW,YAAWA,EAAE,WAAU;AAAC;AAACujB,GAAG,UAAU,oBAAkBA,GAAG,UAAU,IAAGA,GAAG,UAAU,YAAUA,GAAG,UAAU,IAAGA,GAAG,UAAU,aAAWA,GAAG,UAAU,GAAEA,GAAG,sBAAoB,SAASvjB,GAAE2E,GAAE;AAAC,SAAOod,EAAGwB,IAAGvjB,GAAE,EAAC,aAAY,EAAC,gBAAe2E,EAAC,EAAC,CAAC;AAAC,GAAE4e,GAAG,wBAAsB,SAASvjB,GAAE2E,GAAE;AAAC,SAAOod,EAAGwB,IAAGvjB,GAAE,EAAC,aAAY,EAAC,kBAAiB2E,EAAC,EAAC,CAAC;AAAC,GAAE4e,GAAG,oBAAkB,SAASvjB,GAAE2E,GAAE;AAAC,SAAOod,EAAGwB,IAAGvjB,GAAE2E,CAAC;AAAC,GAAE4e,GAAG,mBAAiBJ;AAAG,IAAIM,KAAG,cAAcrB,GAAE;AAAA,EAAC,YAAYpiB,GAAE2E,GAAE;AAAC,UAAM,IAAImd,GAAG9hB,GAAE2E,CAAC,GAAE,YAAW,aAAY,EAAE,GAAE,KAAK,YAAU,CAAA,GAAG,KAAK,iBAAe,CAAA,GAAG,KAAK,aAAW,CAAA,GAAGwK,EAAGnP,IAAE,KAAK,IAAE,IAAIyb,MAAG,GAAE,GAAE9W,IAAE,IAAI2V,GAAE,GAAE,KAAK,IAAE,IAAIkB,MAAGrM,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAE,KAAK,IAAE,IAAIoM,MAAGpM,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAEQ,GAAG,KAAK,GAAE,GAAE,CAAC,GAAEC,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAOZ,EAAG,KAAK,GAAEsL,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYta,GAAE;AAAC,IAAAmP,EAAG,KAAK,GAAE,GAAE,GAAEnP,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE;AAAC,WAAM,cAAaA,KAAG2P,GAAG,KAAK,GAAE,GAAE3P,EAAE,YAAU,CAAC,GAAE,gCAA+BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,8BAA4B,GAAE,GAAE,2BAA0BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,yBAAuB,GAAE,GAAE,+BAA8BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,6BAA2B,GAAE,GAAE,KAAK,EAAEA,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE2E,GAAE;AAAC,WAAO,KAAK,YAAU,CAAA,GAAG,KAAK,iBAAe,CAAA,GAAG,KAAK,aAAW,CAAA,GAAGsd,GAAG,MAAKjiB,GAAE2E,CAAC,GAAE6e,GAAG,IAAI;AAAA,EAAC;AAAA,EAAC,EAAExjB,GAAE2E,GAAEF,GAAE;AAAC,WAAO,KAAK,YAAU,CAAA,GAAG,KAAK,iBAAe,CAAA,GAAG,KAAK,aAAW,CAAA,GAAGyd,GAAG,MAAKliB,GAAEyE,GAAEE,CAAC,GAAE6e,GAAG,IAAI;AAAA,EAAC;AAAA,EAAC,IAAG;AAAC,QAAIxjB,IAAE,IAAIuY;AAAG,IAAAF,EAAGrY,GAAE,UAAU,GAAEqY,EAAGrY,GAAE,WAAW,GAAEsY,EAAGtY,GAAE,gBAAgB,GAAEsY,EAAGtY,GAAE,sBAAsB,GAAEsY,EAAGtY,GAAE,YAAY;AAAE,UAAM2E,IAAE,IAAI+S;AAAG,IAAArG,GAAG1M,GAAEqX,IAAG,KAAK,CAAC;AAAE,UAAMvX,IAAE,IAAIuT;AAAG,IAAAH,GAAGpT,GAAE,4DAA4D,GAAEqT,EAAGrT,GAAE,gBAAgB,GAAEqT,EAAGrT,GAAE,qBAAqB,GAAEsT,EAAGtT,GAAE,0BAA0B,GAAEsT,EAAGtT,GAAE,sCAAsC,GAAEsT,EAAGtT,GAAE,uBAAuB,GAAEA,EAAE,EAAEE,CAAC,GAAEyT,GAAGpY,GAAEyE,CAAC,GAAE,KAAK,EAAE,0BAA0B,mBAAkB,CAACzE,GAAE2E,MAAI;AAAC,iBAAUA,KAAK3E,EAAE,CAAAA,IAAEqZ,GAAG1U,CAAC,GAAE,KAAK,UAAU,KAAK4Y,GAAGvd,CAAC,CAAC;AAAE,MAAA2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,mBAAkB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,yBAAwB,CAACA,GAAE2E,MAAI;AAAC,iBAAUA,KAAK3E,EAAE,CAAAA,IAAEmZ,GAAGxU,CAAC,GAAE,KAAK,eAAe,KAAK6Y,GAAGxd,CAAC,CAAC;AAAE,MAAA2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,yBAAwB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,eAAc,CAACA,GAAE2E,MAAI;AAAC,UAAIF,IAAE,KAAK,YAAWJ,IAAEI,EAAE;AAAK,YAAMN,IAAE,CAAA;AAAG,iBAAUQ,KAAK3E,GAAE;AAAC,QAAAA,IAAE6Y,GAAGlU,CAAC;AAAE,cAAMF,IAAE,CAAA;AAAG,mBAAUE,KAAK3E,EAAE,EAAC,EAAG,CAAAyE,EAAE,KAAK,EAAC,OAAMgL,GAAG9K,GAAE,CAAC,KAAG,GAAE,OAAM4K,GAAG5K,GAAE,CAAC,KAAG,KAAG,IAAG,cAAa6K,GAAG7K,GAAE,CAAC,KAAG,MAAI,IAAG,aAAY6K,GAAG7K,GAAE,CAAC,KAAG,MAAI,GAAE,CAAC;AAAE,QAAAR,EAAE,KAAKM,CAAC;AAAA,MAAC;AAAC,MAAAJ,EAAE,KAAKI,GAAE,GAAGN,CAAC,GAAEwa,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,eAAc,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAGA,IAAEA,EAAE,EAAC,GAAG,KAAK,SAAS,IAAI,WAAWA,CAAC,GAAE,EAAE;AAAA,EAAC;AAAC;AAAEyjB,GAAG,UAAU,iBAAeA,GAAG,UAAU,GAAEA,GAAG,UAAU,SAAOA,GAAG,UAAU,GAAEA,GAAG,UAAU,aAAWA,GAAG,UAAU,GAAEA,GAAG,sBAAoB,SAASzjB,GAAE2E,GAAE;AAAC,SAAOod,EAAG0B,IAAGzjB,GAAE,EAAC,aAAY,EAAC,gBAAe2E,EAAC,EAAC,CAAC;AAAC,GAAE8e,GAAG,wBAAsB,SAASzjB,GAAE2E,GAAE;AAAC,SAAOod,EAAG0B,IAAGzjB,GAAE,EAAC,aAAY,EAAC,kBAAiB2E,EAAC,EAAC,CAAC;AAAC,GAAE8e,GAAG,oBAAkB,SAASzjB,GAAE2E,GAAE;AAAC,SAAOod,EAAG0B,IAAGzjB,GAAE2E,CAAC;AAAC,GAAE8e,GAAG,mBAAiBN;AAAG,IAAIO,KAAG/B,GAAG,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,CAAC,GAAE,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,GAAE,CAAC,IAAG,EAAE,CAAC;AAAE,SAASgC,GAAG3jB,GAAE;AAAC,EAAAA,EAAE,IAAE,EAAC,eAAc,CAAA,GAAG,iBAAgB,CAAA,GAAG,eAAc,CAAA,GAAG,oBAAmB,CAAA,GAAG,uBAAsB,CAAA,GAAG,mBAAkB,CAAA,GAAG,wBAAuB,CAAA,GAAG,oBAAmB,CAAA,GAAG,yBAAwB,CAAA,EAAE;AAAC;AAAC,SAAS4jB,GAAG5jB,GAAE;AAAC,MAAG;AAAC,QAAG,CAACA,EAAE,EAAE,QAAOA,EAAE;AAAE,IAAAA,EAAE,EAAEA,EAAE,CAAC;AAAA,EAAC,UAAC;AAAQ,IAAA8e,GAAG9e,CAAC;AAAA,EAAC;AAAC;AAAC,SAAS6jB,GAAG7jB,GAAE2E,GAAE;AAAC,EAAA3E,IAAEqZ,GAAGrZ,CAAC,GAAE2E,EAAE,KAAK4Y,GAAGvd,CAAC,CAAC;AAAC;AAAC,IAAI8jB,IAAG,cAAc1B,GAAE;AAAA,EAAC,YAAYpiB,GAAE2E,GAAE;AAAC,UAAM,IAAImd,GAAG9hB,GAAE2E,CAAC,GAAE,sBAAqB,MAAK,EAAE,GAAE,KAAK,IAAE,EAAC,eAAc,CAAA,GAAG,iBAAgB,CAAA,GAAG,eAAc,CAAA,GAAG,oBAAmB,CAAA,GAAG,uBAAsB,CAAA,GAAG,mBAAkB,CAAA,GAAG,wBAAuB,CAAA,GAAG,oBAAmB,CAAA,GAAG,yBAAwB,CAAA,EAAE,GAAE,KAAK,8BAA4B,KAAK,wBAAsB,IAAGwK,EAAGnP,IAAE,KAAK,IAAE,IAAIoc,MAAG,GAAE,GAAEzX,IAAE,IAAI2V,GAAE,GAAE,KAAK,IAAE,IAAIkB,MAAGrM,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAE,KAAK,IAAE,IAAI8M,MAAG9M,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAE,KAAK,IAAE,IAAIsL,MAAGtL,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAE,KAAK,IAAE,IAAI0L,MAAG1L,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAE,KAAK,IAAE,IAAI+M,MAAG/M,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAE,KAAK,IAAE,IAAIgN,MAAGhN,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAES,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAOZ,EAAG,KAAK,GAAEsL,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYta,GAAE;AAAC,IAAAmP,EAAG,KAAK,GAAE,GAAE,GAAEnP,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE;AAAC,WAAM,gCAA+BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,8BAA4B,GAAE,GAAE,iCAAgCA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,+BAA6B,GAAE,GAAE,+BAA8BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,6BAA2B,GAAE,GAAE,2BAA0BA,MAAI,KAAK,wBAAsB,CAAC,CAACA,EAAE,wBAAuB,gCAA+BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,8BAA4B,GAAE,GAAE,iCAAgCA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,+BAA6B,GAAE,GAAE,+BAA8BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,6BAA2B,GAAE,GAAE,iCAAgCA,MAAI,KAAK,8BAA4B,CAAC,CAACA,EAAE,8BAA6B,gCAA+BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,8BAA4B,GAAE,GAAE,KAAK,EAAEA,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE2E,GAAEF,GAAE;AAAC,UAAM,IAAc,OAAOE,KAAnB,aAAqBA,IAAE,CAAA;AAAG,WAAO,KAAK,IAAc,OAAOA,KAAnB,aAAqBA,IAAEF,GAAEkf,GAAG,IAAI,GAAE1B,GAAG,MAAKjiB,GAAE,CAAC,GAAE4jB,GAAG,IAAI;AAAA,EAAC;AAAA,EAAC,EAAE5jB,GAAE2E,GAAEF,GAAE,GAAE;AAAC,UAAMN,IAAc,OAAOM,KAAnB,aAAqBA,IAAE,CAAA;AAAG,WAAO,KAAK,IAAc,OAAOA,KAAnB,aAAqBA,IAAE,GAAEkf,GAAG,IAAI,GAAEzB,GAAG,MAAKliB,GAAEmE,GAAEQ,CAAC,GAAEif,GAAG,IAAI;AAAA,EAAC;AAAA,EAAC,IAAG;AAAC,QAAI5jB,IAAE,IAAIuY;AAAG,IAAAF,EAAGrY,GAAE,oBAAoB,GAAEsY,EAAGtY,GAAE,gBAAgB,GAAEsY,EAAGtY,GAAE,sBAAsB,GAAEsY,EAAGtY,GAAE,gBAAgB,GAAEsY,EAAGtY,GAAE,qBAAqB,GAAEsY,EAAGtY,GAAE,2BAA2B,GAAEsY,EAAGtY,GAAE,sBAAsB,GAAEsY,EAAGtY,GAAE,4BAA4B;AAAE,UAAM2E,IAAE,IAAI+S,MAAGjT,IAAE,IAAIoS;AAAG,IAAAtI,GAAG9J,GAAE,GAAEkH,GAAG,qGAAqG,GAAE,EAAE,IAAE,SAAS3L,GAAE2E,GAAE;AAAC,UAASA,KAAN,KAAQ,KAAG,MAAM,QAAQA,CAAC,EAAE,CAAAgJ,EAAG3N,GAAE,GAAEkN,GAAGvI,GAAEwI,IAAG,QAAO,QAAO,EAAE,CAAC;AAAA,WAAM;AAAC,YAAG,EAAY,OAAOxI,KAAjB,YAAoBA,aAAa+B,MAAGJ,GAAE3B,CAAC,GAAG,OAAM,MAAM,uCAAqCA,IAAE,+EAA+E;AAAE,QAAA4J,GAAGvO,GAAE,GAAEqI,GAAG1D,GAAE,EAAE,GAAE6B,GAAC,CAAE;AAAA,MAAC;AAAA,IAAC,GAAE/B,GAAE,KAAK,EAAE,EAAC,CAAE;AAAE,UAAM,IAAE,IAAIuT;AAAG,IAAAH,GAAG,GAAE,oEAAoE,GAAEvI,GAAG,GAAE,GAAEuH,IAAGpS,CAAC,GAAEqT,EAAG,GAAE,0BAA0B,GAAEC,EAAG,GAAE,+BAA+B,GAAEA,EAAG,GAAE,2CAA2C,GAAEA,EAAG,GAAE,+BAA+B,GAAEA,EAAG,GAAE,yCAAyC,GAAEA,EAAG,GAAE,qDAAqD,GAAEA,EAAG,GAAE,2CAA2C,GAAEA,EAAG,GAAE,uDAAuD,GAAE,EAAE,EAAEpT,CAAC,GAAEyT,GAAGpY,GAAE,CAAC,GAAE4e,GAAG,MAAK5e,CAAC,GAAE,KAAK,EAAE,oBAAoB,mBAAkB,CAACA,GAAE2E,MAAI;AAAC,MAAAkf,GAAG7jB,GAAE,KAAK,EAAE,aAAa,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,mBAAkB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,oBAAoB,yBAAwB,CAACA,GAAE2E,MAAI;AAAC,UAAIF,IAAE,KAAK,EAAE;AAAmB,MAAAzE,IAAEmZ,GAAGnZ,CAAC,GAAEyE,EAAE,KAAK+Y,GAAGxd,CAAC,CAAC,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,yBAAwB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,gCAA8B+X,EAAG,GAAE,+CAA+C,GAAE8G,GAAG,MAAK,wBAAwB,GAAE,KAAK,EAAE,EAAE,2BAA0B,CAAC7e,GAAE2E,MAAI;AAAC,WAAK,EAAE,wBAAsB,CAACwd,GAAG,MAAKniB,GAAE,IAAG,CAAC,KAAK,CAAC,CAAC,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,2BAA0B,CAAA3E,MAAG;AAAC,WAAK,EAAE,wBAAsB,CAAA,GAAG2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,IAAI,KAAK,EAAE,oBAAoB,mBAAkB,CAACA,GAAE2E,MAAI;AAAC,MAAAkf,GAAG7jB,GAAE,KAAK,EAAE,aAAa,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,mBAAkB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,0BAAwBsY,EAAGtY,GAAE,mBAAmB,GAAE+X,EAAG,GAAE,oCAAoC,GAAE,KAAK,EAAE,oBAAoB,sBAAqB,CAAC/X,GAAE2E,MAAI;AAAC,UAAIF,IAAE,KAAK,EAAE;AAAgB,WAAK,0BAAwBzE,IAAE6Y,GAAG7Y,CAAC,GAAEyE,EAAE,KAAK4Y,GAAGrd,EAAE,EAAC,KAAI,CAAA,CAAE,CAAC,IAAG2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,sBAAqB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,IAAI,KAAK,EAAE,oBAAoB,wBAAuB,CAACA,GAAE2E,MAAI;AAAC,MAAAkf,GAAG7jB,GAAE,KAAK,EAAE,iBAAiB,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,wBAAuB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,oBAAoB,8BAA6B,CAACA,GAAE2E,MAAI;AAAC,UAAIF,IAAE,KAAK,EAAE;AAAuB,MAAAzE,IAAEmZ,GAAGnZ,CAAC,GAAEyE,EAAE,KAAK+Y,GAAGxd,CAAC,CAAC,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,8BAA6B,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,oBAAoB,yBAAwB,CAACA,GAAE2E,MAAI;AAAC,MAAAkf,GAAG7jB,GAAE,KAAK,EAAE,kBAAkB,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,yBAAwB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,oBAAoB,+BAA8B,CAACA,GAAE2E,MAAI;AAAC,UAAIF,IAAE,KAAK,EAAE;AAAwB,MAAAzE,IAAEmZ,GAAGnZ,CAAC,GAAEyE,EAAE,KAAK+Y,GAAGxd,CAAC,CAAC,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,+BAA8B,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAGA,IAAEA,EAAE,EAAC,GAAG,KAAK,SAAS,IAAI,WAAWA,CAAC,GAAE,EAAE;AAAA,EAAC;AAAC;AAAE8jB,EAAG,UAAU,iBAAeA,EAAG,UAAU,GAAEA,EAAG,UAAU,SAAOA,EAAG,UAAU,GAAEA,EAAG,UAAU,aAAWA,EAAG,UAAU,GAAEA,EAAG,sBAAoB,SAAS9jB,GAAE2E,GAAE;AAAC,SAAOod,EAAG+B,GAAG9jB,GAAE,EAAC,aAAY,EAAC,gBAAe2E,EAAC,EAAC,CAAC;AAAC,GAAEmf,EAAG,wBAAsB,SAAS9jB,GAAE2E,GAAE;AAAC,SAAOod,EAAG+B,GAAG9jB,GAAE,EAAC,aAAY,EAAC,kBAAiB2E,EAAC,EAAC,CAAC;AAAC,GAAEmf,EAAG,oBAAkB,SAAS9jB,GAAE2E,GAAE;AAAC,SAAOod,EAAG+B,GAAG9jB,GAAE2E,CAAC;AAAC,GAAEmf,EAAG,mBAAiBX,IAAGW,EAAG,mBAAiBJ,IAAGI,EAAG,sBAAoBxB,IAAGwB,EAAG,0BAAwBvB,IAAGuB,EAAG,8BAA4BtB,IAAGsB,EAAG,2BAAyBrB,IAAGqB,EAAG,2BAAyBpB,IAAGoB,EAAG,+BAA6BnB,IAAGmB,EAAG,4BAA0BlB,IAAGkB,EAAG,2BAAyBjB,IAAGiB,EAAG,0BAAwBhB,IAAGgB,EAAG,6BAA2Bf;AAAG,IAAIgB,KAAG,cAAc3B,GAAE;AAAA,EAAC,YAAYpiB,GAAE2E,GAAE;AAAC,UAAM,IAAImd,GAAG9hB,GAAE2E,CAAC,GAAE,eAAc,aAAY,EAAE,GAAE,KAAK,IAAE,EAAC,iBAAgB,CAAA,EAAE,GAAEwK,EAAGnP,IAAE,KAAK,IAAE,IAAIuc,MAAG,GAAE,GAAE5X,IAAE,IAAI2V,GAAE;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAOtL,EAAG,KAAK,GAAEsL,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYta,GAAE;AAAC,IAAAmP,EAAG,KAAK,GAAE,GAAE,GAAEnP,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE;AAAC,WAAOmP,EAAG,KAAK,GAAE,GAAE,GAAEiO,GAAGpd,GAAEgP,EAAG,KAAK,GAAE+K,IAAG,CAAC,CAAC,CAAC,GAAE,KAAK,EAAE/Z,CAAC;AAAA,EAAC;AAAA,EAAC,GAAGA,GAAE2E,GAAE;AAAC,WAAO,KAAK,IAAE,EAAC,iBAAgB,CAAA,EAAE,GAAEsd,GAAG,MAAKjiB,GAAE2E,CAAC,GAAE,KAAK;AAAA,EAAC;AAAA,EAAC,GAAG3E,GAAE2E,GAAEF,GAAE;AAAC,WAAO,KAAK,IAAE,EAAC,iBAAgB,CAAA,EAAE,GAAEyd,GAAG,MAAKliB,GAAEyE,GAAEE,CAAC,GAAE,KAAK;AAAA,EAAC;AAAA,EAAC,IAAG;AAAC,QAAI3E,IAAE,IAAIuY;AAAG,IAAAF,EAAGrY,GAAE,aAAa,GAAEqY,EAAGrY,GAAE,WAAW,GAAEsY,EAAGtY,GAAE,iBAAiB;AAAE,UAAM2E,IAAE,IAAI+S;AAAG,IAAArG,GAAG1M,GAAE6X,IAAG,KAAK,CAAC;AAAE,UAAM/X,IAAE,IAAIuT;AAAG,IAAAH,GAAGpT,GAAE,8DAA8D,GAAEqT,EAAGrT,GAAE,mBAAmB,GAAEqT,EAAGrT,GAAE,qBAAqB,GAAEsT,EAAGtT,GAAE,iCAAiC,GAAEA,EAAE,EAAEE,CAAC,GAAEyT,GAAGpY,GAAEyE,CAAC,GAAE,KAAK,EAAE,oBAAoB,oBAAmB,CAACzE,GAAE2E,MAAI;AAAC,WAAK,KAAE,SAAS3E,GAAE;AAAC,cAAM2E,IAAE,EAAC,iBAAgBuK,GAAGlP,GAAEyZ,IAAG,CAAC,EAAE,KAAK,CAAAzZ,MAAGqd,GAAGrO,EAAGhP,GAAE2Y,IAAG,CAAC,GAAG,EAAC,KAAI,CAAA,GAAGpJ,GAAGvP,GAAE,CAAC,KAAG,GAAEwP,GAAGxP,GAAE,CAAC,KAAG,EAAE,EAAC,EAAE;AAAE,eAAawL,GAAGiC,GAAGzN,GAAE,CAAC,CAAC,KAAhB,SAAoB2E,EAAE,cAAY6G,GAAGiC,GAAGzN,GAAE,CAAC,CAAC,KAAG,IAAG2E;AAAA,MAAC,GAAE+U,GAAG1Z,CAAC,CAAC,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,oBAAmB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAGA,IAAEA,EAAE,EAAC,GAAG,KAAK,SAAS,IAAI,WAAWA,CAAC,GAAE,EAAE;AAAA,EAAC;AAAC;AAAE+jB,GAAG,UAAU,mBAAiBA,GAAG,UAAU,IAAGA,GAAG,UAAU,WAASA,GAAG,UAAU,IAAGA,GAAG,UAAU,aAAWA,GAAG,UAAU,GAAEA,GAAG,sBAAoB,SAAS/jB,GAAE2E,GAAE;AAAC,SAAOod,EAAGgC,IAAG/jB,GAAE,EAAC,aAAY,EAAC,gBAAe2E,EAAC,EAAC,CAAC;AAAC,GAAEof,GAAG,wBAAsB,SAAS/jB,GAAE2E,GAAE;AAAC,SAAOod,EAAGgC,IAAG/jB,GAAE,EAAC,aAAY,EAAC,kBAAiB2E,EAAC,EAAC,CAAC;AAAC,GAAEof,GAAG,oBAAkB,SAAS/jB,GAAE2E,GAAE;AAAC,SAAOod,EAAGgC,IAAG/jB,GAAE2E,CAAC;AAAC;AAAE,IAAIqf,KAAG,cAAc5B,GAAE;AAAA,EAAC,YAAYpiB,GAAE2E,GAAE;AAAC,UAAM,IAAImd,GAAG9hB,GAAE2E,CAAC,GAAE,YAAW,aAAY,EAAE,GAAE,KAAK,IAAE,IAAI8X,MAAG,KAAK,aAAW,EAAC,YAAW,CAAA,EAAE,GAAEtN,EAAGnP,IAAE,KAAK,GAAE,GAAE,GAAE2E,IAAE,IAAI2V,GAAE;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAOtL,EAAG,KAAK,GAAEsL,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYta,GAAE;AAAC,IAAAmP,EAAG,KAAK,GAAE,GAAE,GAAEnP,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE;AAAC,QAAI2E,IAAE,KAAK,GAAEF,IAAEuK,EAAG,KAAK,GAAEiL,IAAG,CAAC;AAAE,WAAOxV,IAAEA,IAAEA,EAAE,MAAK,IAAG,IAAIwV,MAAYja,EAAE,gBAAX,SAAuB0P,GAAGjL,GAAE,GAAEzE,EAAE,WAAW,IAAE,iBAAgBA,KAAG2N,EAAGlJ,GAAE,CAAC,GAAWzE,EAAE,aAAX,SAAoB0P,GAAGjL,GAAE,GAAEzE,EAAE,QAAQ,IAAE,cAAaA,KAAG2N,EAAGlJ,GAAE,CAAC,GAAE0K,EAAGxK,GAAE,GAAE,GAAEF,CAAC,GAAE,KAAK,EAAEzE,CAAC;AAAA,EAAC;AAAA,EAAC,GAAGA,GAAE2E,GAAE;AAAC,WAAOsd,GAAG,MAAKjiB,GAAE2E,CAAC,GAAE,KAAK;AAAA,EAAU;AAAA,EAAC,GAAG3E,GAAE2E,GAAEF,GAAE;AAAC,WAAOyd,GAAG,MAAKliB,GAAEyE,GAAEE,CAAC,GAAE,KAAK;AAAA,EAAU;AAAA,EAAC,IAAG;AAAC,QAAI3E,IAAE,IAAIuY;AAAG,IAAAF,EAAGrY,GAAE,UAAU,GAAEqY,EAAGrY,GAAE,WAAW,GAAEsY,EAAGtY,GAAE,gBAAgB;AAAE,UAAM2E,IAAE,IAAI+S;AAAG,IAAArG,GAAG1M,GAAE+X,IAAG,KAAK,CAAC;AAAE,UAAMjY,IAAE,IAAIuT;AAAG,IAAAH,GAAGpT,GAAE,0DAA0D,GAAEqT,EAAGrT,GAAE,gBAAgB,GAAEqT,EAAGrT,GAAE,qBAAqB,GAAEsT,EAAGtT,GAAE,2BAA2B,GAAEA,EAAE,EAAEE,CAAC,GAAEyT,GAAGpY,GAAEyE,CAAC,GAAE,KAAK,EAAE,oBAAoB,mBAAkB,CAACzE,GAAE2E,MAAI;AAAC,MAAA3E,IAAE8Z,GAAG9Z,CAAC,GAAE,KAAK,cAAW,SAASA,GAAE;AAAC,eAAM,EAAC,YAAWkP,GAAGlP,GAAE6Z,IAAG,CAAC,EAAE,KAAK,CAAA7Z,MAAG;AAAC,gBAAM2E,IAAE,EAAC,WAAU4K,GAAGvP,GAAE,CAAC,KAAG,KAAG,IAAG,UAASwP,GAAGxP,GAAE,CAAC,KAAG,MAAI,GAAE;AAAE,cAAY+O,GAAG/O,GAAE2Z,IAAGlL,GAAGzO,GAAE,CAAC,CAAC,MAAxB,OAA0B,CAAAA,IAAEgO,GAAGhO,IAAEgP,EAAGhP,GAAE2Z,IAAGlL,GAAGzO,GAAE,CAAC,CAAC,GAAE,GAAE2K,IAAGoD,GAAE,CAAE,GAAEpJ,EAAE,iBAAe3E,EAAE,MAAK;AAAA,eAAO;AAAC,kBAAMyE,IAAE,IAAI,WAAW,CAAC;AAAE,YAAAE,EAAE,qBAAmBqK,EAAGhP,GAAE4Z,IAAGnL,GAAGzO,GAAE,CAAC,CAAC,GAAG,GAAE,GAAI,EAAC,KAAIyE;AAAA,UAAC;AAAC,iBAAOE;AAAA,QAAC,EAAC,GAAG,aAAY6G,GAAGiC,GAAGzN,GAAE,CAAC,CAAC,KAAG,EAAC;AAAA,MAAC,GAAEA,CAAC,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,mBAAkB,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAGA,IAAEA,EAAE,EAAC,GAAG,KAAK,SAAS,IAAI,WAAWA,CAAC,GAAE,EAAE;AAAA,EAAC;AAAC;AAAEgkB,GAAG,mBAAiB,SAAShkB,GAAE2E,GAAE;AAAC,MAAG3E,EAAE,kBAAgB2E,EAAE,eAAe,CAAA3E,IAAE0d,GAAG1d,EAAE,gBAAe2E,EAAE,cAAc;AAAA,OAAM;AAAC,QAAG,CAAC3E,EAAE,sBAAoB,CAAC2E,EAAE,mBAAmB,OAAM,MAAM,0EAA0E;AAAE,IAAA3E,IAAE0d,GAAGD,GAAGzd,EAAE,kBAAkB,GAAEyd,GAAG9Y,EAAE,kBAAkB,CAAC;AAAA,EAAC;AAAC,SAAO3E;AAAC,GAAEgkB,GAAG,UAAU,gBAAcA,GAAG,UAAU,IAAGA,GAAG,UAAU,QAAMA,GAAG,UAAU,IAAGA,GAAG,UAAU,aAAWA,GAAG,UAAU,GAAEA,GAAG,sBAAoB,SAAShkB,GAAE2E,GAAE;AAAC,SAAOod,EAAGiC,IAAGhkB,GAAE,EAAC,aAAY,EAAC,gBAAe2E,EAAC,EAAC,CAAC;AAAC,GAAEqf,GAAG,wBAAsB,SAAShkB,GAAE2E,GAAE;AAAC,SAAOod,EAAGiC,IAAGhkB,GAAE,EAAC,aAAY,EAAC,kBAAiB2E,EAAC,EAAC,CAAC;AAAC,GAAEqf,GAAG,oBAAkB,SAAShkB,GAAE2E,GAAE;AAAC,SAAOod,EAAGiC,IAAGhkB,GAAE2E,CAAC;AAAC;AAAE,IAAIsf,KAAG,MAAK;AAAA,EAAC,YAAYjkB,GAAE2E,GAAEF,GAAE;AAAC,SAAK,kBAAgBzE,GAAE,KAAK,eAAa2E,GAAE,KAAK,gBAAcF;AAAA,EAAC;AAAA,EAAC,QAAO;AAAC,SAAK,iBAAiB,SAAS,CAAAzE,MAAG;AAAC,MAAAA,EAAE,MAAK;AAAA,IAAE,EAAC,GAAG,KAAK,cAAc,MAAK;AAAA,EAAE;AAAC;AAAE,SAASkkB,GAAGlkB,GAAE;AAAC,EAAAA,EAAE,eAAa,QAAOA,EAAE,kBAAgB,QAAOA,EAAE,gBAAc;AAAM;AAAC,SAASmkB,GAAGnkB,GAAE;AAAC,MAAG;AAAC,UAAM2E,IAAE,IAAIsf,GAAGjkB,EAAE,iBAAgBA,EAAE,cAAaA,EAAE,aAAa;AAAE,QAAG,CAACA,EAAE,EAAE,QAAO2E;AAAE,IAAA3E,EAAE,EAAE2E,CAAC;AAAA,EAAC,UAAC;AAAQ,IAAAma,GAAG9e,CAAC;AAAA,EAAC;AAAC;AAACikB,GAAG,UAAU,QAAMA,GAAG,UAAU;AAAM,IAAIG,KAAG,cAAchC,GAAE;AAAA,EAAC,YAAYpiB,GAAE2E,GAAE;AAAC,UAAM,IAAImd,GAAG9hB,GAAE2E,CAAC,GAAE,YAAW,aAAY,EAAE,GAAE,KAAK,IAAE,CAAA,GAAG,KAAK,qBAAmB,IAAG,KAAK,wBAAsB,IAAG,KAAK,IAAE,IAAImY,MAAG,KAAK,IAAE,IAAIH,MAAGxN,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAEA,EAAGnP,IAAE,KAAK,GAAE,GAAE,GAAE2E,IAAE,IAAI2V,GAAE;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAOtL,EAAG,KAAK,GAAEsL,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYta,GAAE;AAAC,IAAAmP,EAAG,KAAK,GAAE,GAAE,GAAEnP,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE;AAAC,WAAgBA,EAAE,uBAAX,SAA8B2N,EAAG,KAAK,GAAE,GAAEhC,GAAG3L,EAAE,kBAAkB,CAAC,IAAE,wBAAuBA,KAAG2N,EAAG,KAAK,GAAE,CAAC,GAAE,wBAAuB3N,MAAI,KAAK,qBAAmBA,EAAE,sBAAoB,KAAI,2BAA0BA,MAAI,KAAK,wBAAsBA,EAAE,yBAAuB,KAAI,MAAM,EAAEA,CAAC;AAAA,EAAC;AAAA,EAAC,IAAG;AAAC,KAAC,SAASA,GAAE;AAAC,YAAM2E,IAAEuK,GAAGlP,EAAE,GAAE,GAAGgY,IAAG,CAAC,EAAE,QAAQ,CAAAhY,OAAIwP,GAAGxP,GAAE,CAAC,KAAG,IAAI,SAAS,iDAAiD,EAAC;AAAG,UAAGA,EAAE,IAAE,CAAA,GAAG2E,EAAE,SAAO,EAAE,OAAM,MAAM,8EAA8E;AAAE,MAAIA,EAAE,WAAN,MAAeqK,EAAGrK,EAAE,CAAC,GAAE+S,IAAG,CAAC,GAAG,EAAC,GAAI,EAAC,KAAI,oBAAI,OAAK,SAAS,CAAC/S,GAAEF,MAAI;AAAC,QAAAzE,EAAE,EAAE,OAAOyE,CAAC,CAAC,IAAE+K,GAAG7K,GAAE,CAAC,KAAG;AAAA,MAAE,EAAC;AAAA,IAAE,GAAE,IAAI;AAAA,EAAC;AAAA,EAAC,QAAQ3E,GAAE2E,GAAEF,GAAE;AAAC,UAAM,IAAc,OAAOE,KAAnB,aAAqBA,IAAE,CAAA;AAAG,WAAO,KAAK,IAAc,OAAOA,KAAnB,aAAqBA,IAAEF,GAAEyf,GAAG,IAAI,GAAEjC,GAAG,MAAKjiB,GAAE,CAAC,GAAEmkB,GAAG,IAAI;AAAA,EAAC;AAAA,EAAC,GAAGnkB,GAAE2E,GAAEF,GAAE,GAAE;AAAC,UAAMN,IAAc,OAAOM,KAAnB,aAAqBA,IAAE,CAAA;AAAG,WAAO,KAAK,IAAc,OAAOA,KAAnB,aAAqBA,IAAE,GAAEyf,GAAG,IAAI,GAAEhC,GAAG,MAAKliB,GAAEmE,GAAEQ,CAAC,GAAEwf,GAAG,IAAI;AAAA,EAAC;AAAA,EAAC,KAAI;AAAC,WAAO,KAAK;AAAA,EAAC;AAAA,EAAC,IAAG;AAAC,QAAInkB,IAAE,IAAIuY;AAAG,IAAAF,EAAGrY,GAAE,UAAU,GAAEqY,EAAGrY,GAAE,WAAW;AAAE,UAAM2E,IAAE,IAAI+S;AAAG,IAAArG,GAAG1M,GAAEoY,IAAG,KAAK,CAAC;AAAE,UAAMtY,IAAE,IAAIuT;AAAG,IAAAH,GAAGpT,GAAE,4DAA4D,GAAEqT,EAAGrT,GAAE,gBAAgB,GAAEqT,EAAGrT,GAAE,qBAAqB,GAAEA,EAAE,EAAEE,CAAC,GAAEyT,GAAGpY,GAAEyE,CAAC,GAAEma,GAAG,MAAK5e,CAAC,GAAE,KAAK,0BAAwBsY,EAAGtY,GAAE,kBAAkB,GAAE+X,EAAGtT,GAAE,mCAAmC,GAAEoa,GAAG,MAAK,kBAAkB,GAAE,KAAK,EAAE,GAAG,qBAAoB,CAAC7e,GAAE2E,MAAI;AAAC,WAAK,kBAAgB3E,EAAE,KAAK,CAAAA,MAAGmiB,GAAG,MAAKniB,GAAE,IAAG,CAAC,KAAK,CAAC,KAAI2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,qBAAoB,CAAA3E,MAAG;AAAC,WAAK,kBAAgB,CAAA,GAAG2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,IAAI,KAAK,uBAAqBsY,EAAGtY,GAAE,eAAe,GAAE+X,EAAGtT,GAAE,6BAA6B,GAAEoa,GAAG,MAAK,eAAe,GAAE,KAAK,EAAE,EAAE,kBAAiB,CAAC7e,GAAE2E,MAAI;AAAC,WAAK,eAAawd,GAAG,MAAKniB,GAAE,IAAG,CAAC,KAAK,CAAC,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,kBAAiB,CAAA3E,MAAG;AAAC,WAAK,eAAa,QAAO2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,IAAIsY,EAAGtY,GAAE,gBAAgB,GAAE+X,EAAGtT,GAAE,+BAA+B,GAAE,KAAK,EAAE,0BAA0B,mBAAkB,CAACzE,GAAE2E,MAAI;AAAC,WAAK,gBAAc3E,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,mBAAkB,CAAA3E,MAAG;AAAC,WAAK,eAAa,QAAO2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAGA,IAAEA,EAAE,EAAC,GAAG,KAAK,SAAS,IAAI,WAAWA,CAAC,GAAE,EAAE;AAAA,EAAC;AAAC;AAAEokB,GAAG,UAAU,YAAUA,GAAG,UAAU,IAAGA,GAAG,UAAU,kBAAgBA,GAAG,UAAU,IAAGA,GAAG,UAAU,UAAQA,GAAG,UAAU,SAAQA,GAAG,UAAU,aAAWA,GAAG,UAAU,GAAEA,GAAG,sBAAoB,SAASpkB,GAAE2E,GAAE;AAAC,SAAOod,EAAGqC,IAAGpkB,GAAE,EAAC,aAAY,EAAC,gBAAe2E,EAAC,EAAC,CAAC;AAAC,GAAEyf,GAAG,wBAAsB,SAASpkB,GAAE2E,GAAE;AAAC,SAAOod,EAAGqC,IAAGpkB,GAAE,EAAC,aAAY,EAAC,kBAAiB2E,EAAC,EAAC,CAAC;AAAC,GAAEyf,GAAG,oBAAkB,SAASpkB,GAAE2E,GAAE;AAAC,SAAOod,EAAGqC,IAAGpkB,GAAE2E,CAAC;AAAC;AAAE,IAAI0f,KAAG,MAAK;AAAA,EAAC,YAAYrkB,GAAE2E,GAAEF,GAAE;AAAC,SAAK,kBAAgBzE,GAAE,KAAK,eAAa2E,GAAE,KAAK,gBAAcF;AAAA,EAAC;AAAA,EAAC,QAAO;AAAC,SAAK,iBAAiB,SAAS,CAAAzE,MAAG;AAAC,MAAAA,EAAE,MAAK;AAAA,IAAE,EAAC,GAAG,KAAK,cAAc,MAAK;AAAA,EAAE;AAAC;AAAEqkB,GAAG,UAAU,QAAMA,GAAG,UAAU;AAAM,IAAIC,KAAG,cAAchT,EAAE;AAAA,EAAC,YAAYtR,GAAE;AAAC,UAAMA,CAAC;AAAA,EAAC;AAAC,GAAEukB,KAAG,CAAC,GAAE5O,IAAG,EAAE,GAAE6O,KAAG,CAAC,GAAEpP,IAAG,IAAGU,GAAGV,IAAG,EAAE,GAAEqP,KAAG,CAAC,GAAED,EAAE,GAAEE,KAAG,CAAC,GAAEF,IAAG7O,IAAG,EAAE,GAAEgP,KAAG,cAAcrT,EAAE;AAAA,EAAC,YAAYtR,GAAE;AAAC,UAAMA,CAAC;AAAA,EAAC;AAAC,GAAE4kB,KAAG,CAAC,GAAExP,IAAG,IAAGU,CAAE,GAAE+O,KAAG,cAAcvT,EAAE;AAAA,EAAC,YAAYtR,GAAE;AAAC,UAAMA,CAAC;AAAA,EAAC;AAAC,GAAE8kB,KAAG,cAAcxT,EAAE;AAAA,EAAC,YAAYtR,GAAE;AAAC,UAAMA,CAAC;AAAA,EAAC;AAAC,GAAE+kB,KAAG,CAAC,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,GAAE,IAAG,IAAG,EAAE,GAAEC,KAAG,cAAc1T,EAAE;AAAA,EAAC,YAAYtR,GAAE;AAAC,UAAMA,CAAC;AAAA,EAAC;AAAC;AAAEglB,GAAG,UAAU,IAAEpO,GAAG,CAAC,GAAET,IAAG,CAAC,GAAE4O,IAAG3O,GAAGoO,IAAGpO,GAAG,CAAC,GAAEoO,IAAGD,EAAE,GAAEnO,GAAGqO,IAAGrO,GAAG,CAAC,GAAEqO,IAAGF,EAAE,GAAEnO,GAAGwO,IAAGxO,GAAG,CAAC,GAAEhB,IAAG,IAAGU,GAAGU,EAAE,GAAEJ,GAAG,CAAC,GAAEhB,IAAG,IAAGU,CAAE,GAAEM,GAAG,CAAC,GAAEF,GAAGd,IAAG,IAAGU,GAAGH,IAAGG,GAAG,IAAG,GAAEV,IAAGmP,EAAE,GAAEnO,GAAGsO,IAAGtO,GAAG,CAAC,GAAEsO,IAAGH,EAAE,GAAEnP,IAAGmP,IAAGrO,GAAGE,GAAG,CAAC,GAAEhB,IAAG,IAAGU,GAAGyO,IAAG,EAAE,GAAEnO,GAAG,CAAC,GAAED,IAAGyO,EAAE,CAAC,GAAE1O,GAAG,CAAC,GAAEA,GAAGP,IAAG,IAAGG,CAAE,CAAC,CAAC;AAAE,IAAImP,KAAG,cAAc7C,GAAE;AAAA,EAAC,YAAYpiB,GAAE2E,GAAE;AAAC,UAAM,IAAImd,GAAG9hB,GAAE2E,CAAC,GAAE,YAAW,gBAAe,EAAE,GAAE,KAAK,qBAAmB,IAAG,KAAK,wBAAsB,IAAG,KAAK,IAAE,IAAImY,MAAG,KAAK,IAAE,IAAIH,MAAGxN,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAEA,EAAGnP,IAAE,KAAK,GAAE,GAAE,GAAE2E,IAAE,IAAI2V,GAAE;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAOtL,EAAG,KAAK,GAAEsL,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYta,GAAE;AAAC,IAAAmP,EAAG,KAAK,GAAE,GAAE,GAAEnP,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE;AAAC,WAAM,wBAAuBA,MAAI,KAAK,qBAAmBA,EAAE,sBAAoB,KAAI,2BAA0BA,MAAI,KAAK,wBAAsBA,EAAE,yBAAuB,KAAI,MAAM,EAAEA,CAAC;AAAA,EAAC;AAAA,EAAC,QAAQA,GAAE2E,GAAEF,GAAE,GAAE;AAAC,UAAMN,IAAc,OAAOM,KAAnB,aAAqBA,IAAE,CAAA;AAAG,SAAK,IAAc,OAAOA,KAAnB,aAAqBA,IAAE,GAAE,KAAK,gBAAc,KAAK,eAAa,KAAK,kBAAgB,QAAOA,IAAE,KAAK,IAAE,GAAE,IAAE,IAAIugB;AAAG,UAAM,IAAE,IAAIF;AAAG,QAAI,IAAE,IAAIR;AAAG,QAAG3U,GAAG,GAAE,GAAE,GAAG,GAAER,EAAG,GAAE,GAAE,IAAG,CAAC,GAAExK,EAAE,YAAUA,EAAE,SAAS,OAAM,MAAM,4CAA4C;AAAE,QAAGA,EAAE,UAAS;AAAC,UAAI,IAAE,IAAIggB;AAAG,MAAAjV,GAAG,GAAE,GAAE,EAAE,GAAEE,EAAG,GAAE,GAAEjL,EAAE,SAAS,CAAC,GAAEiL,EAAG,GAAE,GAAEjL,EAAE,SAAS,CAAC,GAAEyK,GAAG,GAAE,GAAE2V,IAAG,CAAC;AAAA,IAAC,OAAK;AAAC,UAAG,CAACpgB,EAAE,SAAS,OAAM,MAAM,+CAA+C;AAAE,WAAI,MAAK,IAAE,IAAIkgB,MAAGlgB,EAAE,UAAU,CAAA+K,GAAG/K,IAAE,IAAIggB,MAAG,GAAE,EAAE,GAAE/U,EAAGjL,GAAE,GAAE,EAAE,CAAC,GAAEiL,EAAGjL,GAAE,GAAE,EAAE,CAAC,GAAE2K,GAAG,GAAE,GAAEqV,IAAGhgB,CAAC;AAAE,MAAAyK,GAAG,GAAE,IAAG2V,IAAG,CAAC;AAAA,IAAC;AAAC,IAAAzV,GAAG,GAAE,GAAEwV,IAAG,CAAC,GAAE,KAAK,EAAE,iBAAiB,EAAE,EAAC,GAAG,sBAAqB,UAASrgB,CAAC,GAAEwd,GAAG,MAAKjiB,GAAEmE,CAAC;AAAE,IAAAnE,GAAE;AAAC,UAAG;AAAC,cAAMA,IAAE,IAAIqkB,GAAG,KAAK,iBAAgB,KAAK,cAAa,KAAK,aAAa;AAAE,YAAG,CAAC,KAAK,GAAE;AAAC,cAAI,IAAErkB;AAAE,gBAAMA;AAAA,QAAC;AAAC,aAAK,EAAEA,CAAC;AAAA,MAAC,UAAC;AAAQ,QAAA8e,GAAG,IAAI;AAAA,MAAC;AAAC,UAAE;AAAA,IAAM;AAAC,WAAO;AAAA,EAAC;AAAA,EAAC,IAAG;AAAC,QAAI9e,IAAE,IAAIuY;AAAG,IAAAF,EAAGrY,GAAE,UAAU,GAAEqY,EAAGrY,GAAE,QAAQ,GAAEqY,EAAGrY,GAAE,cAAc;AAAE,UAAM2E,IAAE,IAAI+S;AAAG,IAAArG,GAAG1M,GAAEoY,IAAG,KAAK,CAAC;AAAE,UAAMtY,IAAE,IAAIuT;AAAG,IAAAH,GAAGpT,GAAE,wEAAwE,GAAEqT,EAAGrT,GAAE,gBAAgB,GAAEqT,EAAGrT,GAAE,YAAY,GAAEqT,EAAGrT,GAAE,wBAAwB,GAAEA,EAAE,EAAEE,CAAC,GAAEyT,GAAGpY,GAAEyE,CAAC,GAAEma,GAAG,MAAK5e,CAAC,GAAE,KAAK,0BAAwBsY,EAAGtY,GAAE,kBAAkB,GAAE+X,EAAGtT,GAAE,mCAAmC,GAAEoa,GAAG,MAAK,kBAAkB,GAAE,KAAK,EAAE,GAAG,qBAAoB,CAAC7e,GAAE2E,MAAI;AAAC,WAAK,kBAAgB3E,EAAE,KAAK,CAAAA,MAAGmiB,GAAG,MAAKniB,GAAE,IAAG,CAAC,KAAK,CAAC,EAAC,GAAG2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,qBAAoB,CAAA3E,MAAG;AAAC,WAAK,kBAAgB,CAAA,GAAG2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,IAAI,KAAK,uBAAqBsY,EAAGtY,GAAE,eAAe,GAAE+X,EAAGtT,GAAE,6BAA6B,GAAEoa,GAAG,MAAK,eAAe,GAAE,KAAK,EAAE,EAAE,kBAAiB,CAAC7e,GAAE2E,MAAI;AAAC,WAAK,eAAawd,GAAG,MAAKniB,GAAE,IAAG,CAAC,KAAK,CAAC,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,kBAAiB,CAAA3E,MAAG;AAAC,WAAK,eAAa,QAAO2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,IAAIsY,EAAGtY,GAAE,gBAAgB,GAAE+X,EAAGtT,GAAE,+BAA+B,GAAE,KAAK,EAAE,0BAA0B,mBAAkB,CAACzE,GAAE2E,MAAI;AAAC,WAAK,gBAAc3E,GAAE2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,mBAAkB,CAAA3E,MAAG;AAAC,WAAK,eAAa,QAAO2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAGA,IAAEA,EAAE,EAAC,GAAG,KAAK,SAAS,IAAI,WAAWA,CAAC,GAAE,EAAE;AAAA,EAAC;AAAC;AAAEilB,GAAG,UAAU,UAAQA,GAAG,UAAU,SAAQA,GAAG,UAAU,aAAWA,GAAG,UAAU,GAAEA,GAAG,sBAAoB,SAASjlB,GAAE2E,GAAE;AAAC,SAAOod,EAAGkD,IAAGjlB,GAAE,EAAC,aAAY,EAAC,gBAAe2E,EAAC,EAAC,CAAC;AAAC,GAAEsgB,GAAG,wBAAsB,SAASjlB,GAAE2E,GAAE;AAAC,SAAOod,EAAGkD,IAAGjlB,GAAE,EAAC,aAAY,EAAC,kBAAiB2E,EAAC,EAAC,CAAC;AAAC,GAAEsgB,GAAG,oBAAkB,SAASjlB,GAAE2E,GAAE;AAAC,SAAOod,EAAGkD,IAAGjlB,GAAE2E,CAAC;AAAC;AAAE,IAAIugB,KAAG,cAAc9C,GAAE;AAAA,EAAC,YAAYpiB,GAAE2E,GAAE;AAAC,UAAM,IAAImd,GAAG9hB,GAAE2E,CAAC,GAAE,mBAAkB,aAAY,EAAE,GAAE,KAAK,IAAE,EAAC,YAAW,CAAA,EAAE,GAAEwK,EAAGnP,IAAE,KAAK,IAAE,IAAIgd,MAAG,GAAE,GAAErY,IAAE,IAAI2V,GAAE;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAOtL,EAAG,KAAK,GAAEsL,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYta,GAAE;AAAC,IAAAmP,EAAG,KAAK,GAAE,GAAE,GAAEnP,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE;AAAC,WAAgBA,EAAE,uBAAX,SAA8B2N,EAAG,KAAK,GAAE,GAAEhC,GAAG3L,EAAE,kBAAkB,CAAC,IAAE,wBAAuBA,KAAG2N,EAAG,KAAK,GAAE,CAAC,GAAW3N,EAAE,eAAX,SAAsB2P,GAAG,KAAK,GAAE,GAAE3P,EAAE,UAAU,IAAE,gBAAeA,KAAG2N,EAAG,KAAK,GAAE,CAAC,GAAW3N,EAAE,mBAAX,SAA0B4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,cAAc,IAAE,oBAAmBA,KAAG2N,EAAG,KAAK,GAAE,CAAC,GAAW3N,EAAE,sBAAX,SAA6B6P,GAAG,KAAK,GAAE,GAAE7P,EAAE,iBAAiB,IAAE,uBAAsBA,KAAG2N,EAAG,KAAK,GAAE,CAAC,GAAW3N,EAAE,qBAAX,SAA4B6P,GAAG,KAAK,GAAE,GAAE7P,EAAE,gBAAgB,IAAE,sBAAqBA,KAAG2N,EAAG,KAAK,GAAE,CAAC,GAAE,KAAK,EAAE3N,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE2E,GAAE;AAAC,WAAO,KAAK,IAAE,EAAC,YAAW,CAAA,EAAE,GAAEsd,GAAG,MAAKjiB,GAAE2E,CAAC,GAAE,KAAK;AAAA,EAAC;AAAA,EAAC,EAAE3E,GAAE2E,GAAEF,GAAE;AAAC,WAAO,KAAK,IAAE,EAAC,YAAW,CAAA,EAAE,GAAEyd,GAAG,MAAKliB,GAAEyE,GAAEE,CAAC,GAAE,KAAK;AAAA,EAAC;AAAA,EAAC,IAAG;AAAC,QAAI3E,IAAE,IAAIuY;AAAG,IAAAF,EAAGrY,GAAE,iBAAiB,GAAEqY,EAAGrY,GAAE,WAAW,GAAEsY,EAAGtY,GAAE,YAAY;AAAE,UAAM2E,IAAE,IAAI+S;AAAG,IAAArG,GAAG1M,GAAEsY,IAAG,KAAK,CAAC;AAAE,UAAMxY,IAAE,IAAIuT;AAAG,IAAAH,GAAGpT,GAAE,4CAA4C,GAAEqT,EAAGrT,GAAE,uBAAuB,GAAEqT,EAAGrT,GAAE,qBAAqB,GAAEsT,EAAGtT,GAAE,uBAAuB,GAAEA,EAAE,EAAEE,CAAC,GAAEyT,GAAGpY,GAAEyE,CAAC,GAAE,KAAK,EAAE,0BAA0B,eAAc,CAACzE,GAAE2E,MAAI;AAAC,iBAAUA,KAAK3E,EAAE,CAAAA,IAAEiZ,GAAGtU,CAAC,GAAE,KAAK,EAAE,WAAW,KAAK2Y,GAAGtd,CAAC,CAAC;AAAE,MAAA2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,eAAc,CAAA3E,MAAG;AAAC,MAAA2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAGA,IAAEA,EAAE,EAAC,GAAG,KAAK,SAAS,IAAI,WAAWA,CAAC,GAAE,EAAE;AAAA,EAAC;AAAC;AAAEklB,GAAG,UAAU,iBAAeA,GAAG,UAAU,GAAEA,GAAG,UAAU,SAAOA,GAAG,UAAU,GAAEA,GAAG,UAAU,aAAWA,GAAG,UAAU,GAAEA,GAAG,sBAAoB,eAAellB,GAAE2E,GAAE;AAAC,SAAOod,EAAGmD,IAAGllB,GAAE,EAAC,aAAY,EAAC,gBAAe2E,EAAC,EAAC,CAAC;AAAC,GAAEugB,GAAG,wBAAsB,SAASllB,GAAE2E,GAAE;AAAC,SAAOod,EAAGmD,IAAGllB,GAAE,EAAC,aAAY,EAAC,kBAAiB2E,EAAC,EAAC,CAAC;AAAC,GAAEugB,GAAG,oBAAkB,SAASllB,GAAE2E,GAAE;AAAC,SAAOod,EAAGmD,IAAGllB,GAAE2E,CAAC;AAAC;AAAE,IAAIwgB,KAAG,MAAK;AAAA,EAAC,YAAYnlB,GAAE2E,GAAEF,GAAE;AAAC,SAAK,YAAUzE,GAAE,KAAK,iBAAe2E,GAAE,KAAK,oBAAkBF;AAAA,EAAC;AAAA,EAAC,QAAO;AAAC,SAAK,mBAAmB,SAAS,CAAAzE,MAAG;AAAC,MAAAA,EAAE,MAAK;AAAA,IAAE,EAAC;AAAA,EAAE;AAAC;AAAE,SAASolB,GAAGplB,GAAE;AAAC,EAAAA,EAAE,YAAU,CAAA,GAAGA,EAAE,iBAAe,CAAA,GAAGA,EAAE,oBAAkB;AAAM;AAAC,SAASqlB,GAAGrlB,GAAE;AAAC,MAAG;AAAC,UAAM2E,IAAE,IAAIwgB,GAAGnlB,EAAE,WAAUA,EAAE,gBAAeA,EAAE,iBAAiB;AAAE,QAAG,CAACA,EAAE,EAAE,QAAO2E;AAAE,IAAA3E,EAAE,EAAE2E,CAAC;AAAA,EAAC,UAAC;AAAQ,IAAAma,GAAG9e,CAAC;AAAA,EAAC;AAAC;AAACmlB,GAAG,UAAU,QAAMA,GAAG,UAAU;AAAM,IAAIG,KAAG,cAAclD,GAAE;AAAA,EAAC,YAAYpiB,GAAE2E,GAAE;AAAC,UAAM,IAAImd,GAAG9hB,GAAE2E,CAAC,GAAE,YAAW,aAAY,EAAE,GAAE,KAAK,YAAU,CAAA,GAAG,KAAK,iBAAe,CAAA,GAAG,KAAK,0BAAwB,IAAGwK,EAAGnP,IAAE,KAAK,IAAE,IAAIkd,MAAG,GAAE,GAAEvY,IAAE,IAAI2V,GAAE,GAAE,KAAK,IAAE,IAAI6B,MAAGhN,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAE,KAAK,IAAE,IAAI+M,MAAG/M,EAAG,KAAK,GAAE,GAAE,GAAE,KAAK,CAAC,GAAEQ,GAAG,KAAK,GAAE,GAAE,CAAC,GAAEC,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE,GAAEA,EAAG,KAAK,GAAE,GAAE,GAAE;AAAA,EAAC;AAAA,EAAC,IAAI,cAAa;AAAC,WAAOZ,EAAG,KAAK,GAAEsL,GAAG,CAAC;AAAA,EAAC;AAAA,EAAC,IAAI,YAAYta,GAAE;AAAC,IAAAmP,EAAG,KAAK,GAAE,GAAE,GAAEnP,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE;AAAC,WAAM,cAAaA,KAAG2P,GAAG,KAAK,GAAE,GAAE3P,EAAE,YAAU,CAAC,GAAE,gCAA+BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,8BAA4B,GAAE,GAAE,2BAA0BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,yBAAuB,GAAE,GAAE,+BAA8BA,KAAG4P,EAAG,KAAK,GAAE,GAAE5P,EAAE,6BAA2B,GAAE,GAAE,6BAA4BA,MAAI,KAAK,0BAAwBA,EAAE,2BAAyB,KAAI,KAAK,EAAEA,CAAC;AAAA,EAAC;AAAA,EAAC,EAAEA,GAAE2E,GAAEF,GAAE;AAAC,UAAM,IAAc,OAAOE,KAAnB,aAAqBA,IAAE,CAAA;AAAG,WAAO,KAAK,IAAc,OAAOA,KAAnB,aAAqBA,IAAEF,GAAE2gB,GAAG,IAAI,GAAEnD,GAAG,MAAKjiB,GAAE,CAAC,GAAEqlB,GAAG,IAAI;AAAA,EAAC;AAAA,EAAC,EAAErlB,GAAE2E,GAAEF,GAAE,GAAE;AAAC,UAAMN,IAAc,OAAOM,KAAnB,aAAqBA,IAAE,CAAA;AAAG,WAAO,KAAK,IAAc,OAAOA,KAAnB,aAAqBA,IAAE,GAAE2gB,GAAG,IAAI,GAAElD,GAAG,MAAKliB,GAAEmE,GAAEQ,CAAC,GAAE0gB,GAAG,IAAI;AAAA,EAAC;AAAA,EAAC,IAAG;AAAC,QAAIrlB,IAAE,IAAIuY;AAAG,IAAAF,EAAGrY,GAAE,UAAU,GAAEqY,EAAGrY,GAAE,WAAW,GAAEsY,EAAGtY,GAAE,sBAAsB,GAAEsY,EAAGtY,GAAE,iBAAiB,GAAEsY,EAAGtY,GAAE,oBAAoB;AAAE,UAAM2E,IAAE,IAAI+S;AAAG,IAAArG,GAAG1M,GAAEwY,IAAG,KAAK,CAAC;AAAE,UAAM1Y,IAAE,IAAIuT;AAAG,IAAAH,GAAGpT,GAAE,4DAA4D,GAAEqT,EAAGrT,GAAE,gBAAgB,GAAEqT,EAAGrT,GAAE,qBAAqB,GAAEsT,EAAGtT,GAAE,qCAAqC,GAAEsT,EAAGtT,GAAE,iCAAiC,GAAEA,EAAE,EAAEE,CAAC,GAAEyT,GAAGpY,GAAEyE,CAAC,GAAEma,GAAG,MAAK5e,CAAC,GAAE,KAAK,EAAE,0BAA0B,yBAAwB,CAACA,GAAE2E,MAAI;AAAC,WAAK,YAAU,CAAA;AAAG,iBAAUA,KAAK3E,EAAE,CAAAA,IAAEqZ,GAAG1U,CAAC,GAAE,KAAK,UAAU,KAAK4Y,GAAGvd,CAAC,CAAC;AAAE,MAAA2e,EAAG,MAAKha,CAAC;AAAA,IAAC,KAAI,KAAK,EAAE,0BAA0B,yBAAwB,CAAA3E,MAAG;AAAC,WAAK,YAAU,CAAA,GAAG2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,oBAAmB,CAACA,GAAE2E,MAAI;AAAC,WAAK,iBAAe,CAAA;AAAG,iBAAUA,KAAK3E,EAAE,CAAAA,IAAEmZ,GAAGxU,CAAC,GAAE,KAAK,eAAe,KAAK6Y,GAAGxd,CAAC,CAAC;AAAE,MAAA2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,oBAAmB,CAAA3E,MAAG;AAAC,WAAK,iBAAe,CAAA,GAAG2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,4BAA0B+X,EAAGtT,GAAE,sCAAsC,GAAEoa,GAAG,MAAK,oBAAoB,GAAE,KAAK,EAAE,GAAG,uBAAsB,CAAC7e,GAAE2E,MAAI;AAAC,WAAK,oBAAkB3E,EAAE,KAAK,CAAAA,MAAGmiB,GAAG,MAAKniB,GAAE,IAAG,CAAC,KAAK,CAAC,EAAC,GAAG2e,EAAG,MAAKha,CAAC;AAAA,IAAC,EAAC,GAAG,KAAK,EAAE,0BAA0B,uBAAsB,CAAA3E,MAAG;AAAC,WAAK,oBAAkB,CAAA,GAAG2e,EAAG,MAAK3e,CAAC;AAAA,IAAC,EAAC,IAAIA,IAAEA,EAAE,EAAC,GAAG,KAAK,SAAS,IAAI,WAAWA,CAAC,GAAE,EAAE;AAAA,EAAC;AAAC;AAAEslB,GAAG,UAAU,iBAAeA,GAAG,UAAU,GAAEA,GAAG,UAAU,SAAOA,GAAG,UAAU,GAAEA,GAAG,UAAU,aAAWA,GAAG,UAAU,GAAEA,GAAG,sBAAoB,SAAStlB,GAAE2E,GAAE;AAAC,SAAOod,EAAGuD,IAAGtlB,GAAE,EAAC,aAAY,EAAC,gBAAe2E,EAAC,EAAC,CAAC;AAAC,GAAE2gB,GAAG,wBAAsB,SAAStlB,GAAE2E,GAAE;AAAC,SAAOod,EAAGuD,IAAGtlB,GAAE,EAAC,aAAY,EAAC,kBAAiB2E,EAAC,EAAC,CAAC;AAAC,GAAE2gB,GAAG,oBAAkB,SAAStlB,GAAE2E,GAAE;AAAC,SAAOod,EAAGuD,IAAGtlB,GAAE2E,CAAC;AAAC,GAAE2gB,GAAG,mBAAiB5B;;;;;ACAzmsI,MAAI6B,IAAOC,GAAA,GAkBPC,IAAM,WAAW;AACnB,WAAOF,EAAK,KAAK,IAAG;AAAA,EACtB;AAEA,SAAAG,KAAiBD;;;;;;ACrBjB,MAAIE,IAAe;AAUnB,WAASC,EAAgBC,GAAQ;AAG/B,aAFIC,IAAQD,EAAO,QAEZC,OAAWH,EAAa,KAAKE,EAAO,OAAOC,CAAK,CAAC;AAAG;AAC3D,WAAOA;AAAA,EACT;AAEA,SAAAC,KAAiBH;;;;;;AClBjB,MAAIA,IAAkBJ,GAAA,GAGlBQ,IAAc;AASlB,WAASC,EAASJ,GAAQ;AACxB,WAAOA,KACHA,EAAO,MAAM,GAAGD,EAAgBC,CAAM,IAAI,CAAC,EAAE,QAAQG,GAAa,EAAE;AAAA,EAE1E;AAEA,SAAAE,KAAiBD;;;;;;AClBjB,MAAIE,IAAaX,GAAA,GACbY,IAAeC,GAAA,GAGfC,IAAY;AAmBhB,WAASC,EAASC,GAAO;AACvB,WAAO,OAAOA,KAAS,YACpBJ,EAAaI,CAAK,KAAKL,EAAWK,CAAK,KAAKF;AAAA,EACjD;AAEA,SAAAG,KAAiBF;;;;;;AC5BjB,MAAIN,IAAWT,GAAA,GACXkB,IAAWL,GAAA,GACXE,IAAWI,GAAA,GAGXC,IAAM,KAGNC,IAAa,sBAGbC,IAAa,cAGbC,IAAY,eAGZC,IAAe;AAyBnB,WAASC,EAAST,GAAO;AACvB,QAAI,OAAOA,KAAS;AAClB,aAAOA;AAET,QAAID,EAASC,CAAK;AAChB,aAAOI;AAET,QAAIF,EAASF,CAAK,GAAG;AACnB,UAAIU,IAAQ,OAAOV,EAAM,WAAW,aAAaA,EAAM,QAAO,IAAKA;AACnE,MAAAA,IAAQE,EAASQ,CAAK,IAAKA,IAAQ,KAAMA;AAAA,IAC7C;AACE,QAAI,OAAOV,KAAS;AAClB,aAAOA,MAAU,IAAIA,IAAQ,CAACA;AAEhC,IAAAA,IAAQP,EAASO,CAAK;AACtB,QAAIW,IAAWL,EAAW,KAAKN,CAAK;AACpC,WAAQW,KAAYJ,EAAU,KAAKP,CAAK,IACpCQ,EAAaR,EAAM,MAAM,CAAC,GAAGW,IAAW,IAAI,CAAC,IAC5CN,EAAW,KAAKL,CAAK,IAAII,IAAM,CAACJ;AAAA,EACvC;AAEA,SAAAY,KAAiBH;;;;;;AC/DjB,MAAIP,IAAWlB,GAAA,GACXC,IAAMY,GAAA,GACNY,IAAWN,GAAA,GAGXU,IAAkB,uBAGlBC,IAAY,KAAK,KACjBC,IAAY,KAAK;AAwDrB,WAASC,EAASC,GAAMC,GAAMC,GAAS;AACrC,QAAIC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,IAAiB,GACjBC,IAAU,IACVC,IAAS,IACTC,IAAW;AAEf,QAAI,OAAOZ,KAAQ;AACjB,YAAM,IAAI,UAAUJ,CAAe;AAErC,IAAAK,IAAOT,EAASS,CAAI,KAAK,GACrBhB,EAASiB,CAAO,MAClBQ,IAAU,CAAC,CAACR,EAAQ,SACpBS,IAAS,aAAaT,GACtBG,IAAUM,IAASd,EAAUL,EAASU,EAAQ,OAAO,KAAK,GAAGD,CAAI,IAAII,GACrEO,IAAW,cAAcV,IAAU,CAAC,CAACA,EAAQ,WAAWU;AAG1D,aAASC,EAAWC,GAAM;AACxB,UAAIC,IAAOZ,GACPa,IAAUZ;AAEd,aAAAD,IAAWC,IAAW,QACtBK,IAAiBK,GACjBR,IAASN,EAAK,MAAMgB,GAASD,CAAI,GAC1BT;AAAA,IACX;AAEE,aAASW,EAAYH,GAAM;AAEzB,aAAAL,IAAiBK,GAEjBP,IAAU,WAAWW,IAAcjB,CAAI,GAEhCS,IAAUG,EAAWC,CAAI,IAAIR;AAAA,IACxC;AAEE,aAASa,EAAcL,GAAM;AAC3B,UAAIM,IAAoBN,IAAON,GAC3Ba,IAAsBP,IAAOL,GAC7Ba,KAAcrB,IAAOmB;AAEzB,aAAOT,IACHb,EAAUwB,IAAajB,IAAUgB,CAAmB,IACpDC;AAAA,IACR;AAEE,aAASC,EAAaT,GAAM;AAC1B,UAAIM,IAAoBN,IAAON,GAC3Ba,IAAsBP,IAAOL;AAKjC,aAAQD,MAAiB,UAAcY,KAAqBnB,KACzDmB,IAAoB,KAAOT,KAAUU,KAAuBhB;AAAA,IACnE;AAEE,aAASa,KAAe;AACtB,UAAIJ,IAAO9C,EAAG;AACd,UAAIuD,EAAaT,CAAI;AACnB,eAAOU,EAAaV,CAAI;AAG1B,MAAAP,IAAU,WAAWW,IAAcC,EAAcL,CAAI,CAAC;AAAA,IAC1D;AAEE,aAASU,EAAaV,GAAM;AAK1B,aAJAP,IAAU,QAINK,KAAYT,IACPU,EAAWC,CAAI,KAExBX,IAAWC,IAAW,QACfE;AAAA,IACX;AAEE,aAASmB,KAAS;AAChB,MAAIlB,MAAY,UACd,aAAaA,CAAO,GAEtBE,IAAiB,GACjBN,IAAWK,IAAeJ,IAAWG,IAAU;AAAA,IACnD;AAEE,aAASmB,KAAQ;AACf,aAAOnB,MAAY,SAAYD,IAASkB,EAAaxD,EAAG,CAAE;AAAA,IAC9D;AAEE,aAAS2D,IAAY;AACnB,UAAIb,IAAO9C,EAAG,GACV4D,IAAaL,EAAaT,CAAI;AAMlC,UAJAX,IAAW,WACXC,IAAW,MACXI,IAAeM,GAEXc,GAAY;AACd,YAAIrB,MAAY;AACd,iBAAOU,EAAYT,CAAY;AAEjC,YAAIG;AAEF,8BAAaJ,CAAO,GACpBA,IAAU,WAAWW,IAAcjB,CAAI,GAChCY,EAAWL,CAAY;AAAA,MAEtC;AACI,aAAID,MAAY,WACdA,IAAU,WAAWW,IAAcjB,CAAI,IAElCK;AAAA,IACX;AACE,WAAAqB,EAAU,SAASF,IACnBE,EAAU,QAAQD,IACXC;AAAA,EACT;AAEA,SAAAE,KAAiB9B;;;;;;AC9LjB,MAAIA,IAAWhC,GAAA,GACXkB,IAAWL,GAAA,GAGXgB,IAAkB;AA8CtB,WAASkC,EAAS9B,GAAMC,GAAMC,GAAS;AACrC,QAAIQ,IAAU,IACVE,IAAW;AAEf,QAAI,OAAOZ,KAAQ;AACjB,YAAM,IAAI,UAAUJ,CAAe;AAErC,WAAIX,EAASiB,CAAO,MAClBQ,IAAU,aAAaR,IAAU,CAAC,CAACA,EAAQ,UAAUQ,GACrDE,IAAW,cAAcV,IAAU,CAAC,CAACA,EAAQ,WAAWU,IAEnDb,EAASC,GAAMC,GAAM;AAAA,MAC1B,SAAWS;AAAA,MACX,SAAWT;AAAA,MACX,UAAYW;AAAA,IAChB,CAAG;AAAA,EACH;AAEA,SAAAmB,KAAiBD;;;mCCjEJE,KAAoB,CAACC,MAA2B;AAC3D,MAAI,CAACA,KAAaA,EAAU,WAAW,EAAG,QAAO;AAEjD,QAAMC,IAAOD,EAAU,CAAC;AAExB,MAAI,CAACC,KAAQA,EAAK,WAAW,EAAG,QAAO;AAGvC,MAAIC,IAAO,GACPC,IAAO,GACPC,IAAO,GACPC,IAAO;AAEX,EAAAJ,EAAK,QAAQ,CAACK,MAAkB;AAC9B,IACEA,KACA,OAAOA,EAAS,KAAM,YACtB,OAAOA,EAAS,KAAM,aAEtBJ,IAAO,KAAK,IAAIA,GAAMI,EAAS,CAAC,GAChCH,IAAO,KAAK,IAAIA,GAAMG,EAAS,CAAC,GAChCF,IAAO,KAAK,IAAIA,GAAME,EAAS,CAAC,GAChCD,IAAO,KAAK,IAAIA,GAAMC,EAAS,CAAC;AAAA,EAEpC,CAAC;AAGD,QAAMC,IAAYJ,IAAOD,GACnBM,IAAaH,IAAOD;AAG1B,SAFiB,KAAK,IAAIG,GAAWC,CAAU;AAGjD,GAKaC,KAAiB,CAC5BT,GACAU,MACY;AACZ,MAAI,CAACV,KAAaA,EAAU,WAAW,EAAG,QAAO;AAEjD,QAAMC,IAAOD,EAAU,CAAC;AAExB,MAAIE,IAAO,GACPC,IAAO,GACPC,IAAO,GACPC,IAAO;AACX,EAAAJ,EAAK,QAAQ,CAACK,MAAkB;AAC9B,IAAAJ,IAAO,KAAK,IAAIA,GAAMI,EAAS,CAAC,GAChCH,IAAO,KAAK,IAAIA,GAAMG,EAAS,CAAC,GAChCF,IAAO,KAAK,IAAIA,GAAME,EAAS,CAAC,GAChCD,IAAO,KAAK,IAAIA,GAAMC,EAAS,CAAC;AAAA,EAClC,CAAC;AAED,QAAMK,IAAc,KACdC,IAAc,KAEdC,IAAcH,IAAmB;AACvC,MAAII,GACAC;AACJ,EAAIF,KACFC,IAAY,KACZC,IAAa,QAEbD,IAAY,MACZC,IAAa;AAGf,QAAMC,KAAed,IAAOC,KAAQ,GAC9Bc,KAAeb,IAAOC,KAAQ,GAE9Ba,IAAkB,KAClBC,IAAkBL,KAAa,IAAII,IACnCE,IAAmBL,KAAc,IAAIG,IAOrCG,KALyB,CAAC/kB,GAAWf,MAAc;AACvD,UAAM+lB,KAAMhlB,IAAIqkB,KAAeQ,GACzBI,KAAMhmB,IAAIqlB,KAAeQ;AAC/B,WAAOE,IAAKA,IAAKC,IAAKA,KAAM;AAAA,EAC9B,GAC8CP,GAAaC,CAAW,GAEhEO,IAAa,KACbC,IAAa,KACbC,IAAoBZ,KAAa,IAAIU,IACrCG,IAAqBZ,KAAc,IAAIU,IAEvCG,IAA2B,CAACtlB,GAAWf,MAAc;AACzD,UAAM+lB,KAAMhlB,IAAIqkB,KAAee,GACzBH,KAAMhmB,IAAIqlB,KAAee;AAC/B,WAAOL,IAAKA,IAAKC,IAAKA,KAAM;AAAA,EAC9B,GAEMM,KAAUD,EAAyB1B,GAAME,CAAI,GAC7C0B,IAAWF,EAAyBzB,GAAMC,CAAI,GAC9C2B,KAAaH,EAAyB1B,GAAMG,CAAI,GAChD2B,KAAcJ,EAAyBzB,GAAME,CAAI;AAEvD,SAAOgB,KAAkBQ,MAAWC,KAAYC,MAAcC;AAChE,GAKaC,KAAwB,CAACjC,MAA2B;AAC/D,MAAI,CAACA,KAAaA,EAAU,WAAW,EAAG,QAAO;AAEjD,QAAMC,IAAOD,EAAU,CAAC;AACxB,MAAI,CAACC,KAAQA,EAAK,WAAW,EAAG,QAAO;AAGvC,QAAMiC,IAAiBjC,EAAK,EAAE,GACxBkC,IAAiBlC,EAAK,EAAE;AAE9B,MAAI,CAACiC,KAAkB,CAACC,EAAgB,QAAO;AAE/C,QAAMC,IAAc,KAAK,IAAID,EAAe,IAAID,EAAe,CAAC,GAE1DG,IAAU,KAAK,IAAI,GAAGpC,EAAK,IAAI,CAACrkB,MAAWA,EAAE,CAAC,CAAC,GAE/C4kB,IADa,KAAK,IAAI,GAAGP,EAAK,IAAI,CAACrkB,MAAWA,EAAE,CAAC,CAAC,IACxBymB;AAEhC,SAAO7B,IAAa,IAAI4B,IAAc5B,IAAa;AACrD,GC3Ha8B,KAA0B,CACrCC,MAC6B;AAC7B,QAAMC,IAAS,SAAS,cAAc,QAAQ,GACxCC,IAAMD,EAAO,WAAW,IAAI;AAClC,MAAI,CAACC,EAAK,QAAO;AAEjB,QAAMC,IAAcH,EAAa,YAC3BI,IAAeJ,EAAa,aAE5BK,IAAa,KAAK,IAAIF,GAAaC,CAAY,GAC/CE,KAASH,IAAcE,KAAc,GACrCE,KAASH,IAAeC,KAAc;AAE5C,SAAAJ,EAAO,QAAQI,GACfJ,EAAO,SAASI,GAEhBH,EAAI;AAAA,IACFF;AAAA,IACAM;AAAA,IACAC;AAAA,IACAF;AAAA,IACAA;AAAA,IACA;AAAA,IACA;AAAA,IACAA;AAAA,IACAA;AAAA,EAAA,GAGKJ;AACT,GAKaO,KAAe,CAC1BP,GACAxC,GACAgD,GACAC,MACS;AACT,QAAMR,IAAMD,EAAO,WAAW,IAAI;AAClC,MAAI,CAACC,EAAK;AAEV,QAAMS,IAAcV,EAAO,OACrBW,IAAeX,EAAO;AAE5B,EAAAC,EAAI,UAAU,GAAG,GAAGS,GAAaC,CAAY;AAC7C,QAAMC,IAAe,IAAIC,GAAaZ,CAAG;AAKzC,EAAAzC,EAAU,QAAQ,CAACM,MAAa;AAC9B,QAAI,CAACA,KAAYA,EAAS,WAAW,EAAG;AAExC,UAAMgD,IAAe,2BACfC,IAAY;AAClB,IAAAd,EAAI,cAAc,4BAClBA,EAAI,YAAYc,GAChBd,EAAI,UAAU,SACdA,EAAI,WAAW,SAEfW,EAAa,cAAc9C,GAAU;AAAA,MACnC,OAAO;AAAA,MACP,WAAW;AAAA,MACX,QAAQ;AAAA,IAAA,CACT,GACD8C,EAAa;AAAA,MACX9C;AAAA,MACAkD,EAAe;AAAA,MACf;AAAA,QACE,OAAOF;AAAA,QACP,WAAAC;AAAA,MAAA;AAAA,IACF,GAGoBP,IAAgB,KAAKA,KAAiBC,KAE1DG,EAAa;AAAA,MACX9C;AAAA,MACAkD,EAAe;AAAA,MACf;AAAA,QACE,OAAOF;AAAA,QACP,WAAAC;AAAA,MAAA;AAAA,IACF;AAAA,EAGN,CAAC;AACH,GAKaE,KAAc,CAACjB,MAAoC;AAC9D,QAAMC,IAAMD,EAAO,WAAW,IAAI;AAClC,EAAIC,KACFA,EAAI,UAAU,GAAG,GAAGD,EAAO,OAAOA,EAAO,MAAM;AAEnD,GCtGakB,KAAwB,CACnCnB,GACAoB,IAAuB,OACL;AAClB,QAAMnB,IAAS,SAAS,cAAc,QAAQ,GACxCC,IAAMD,EAAO,WAAW,IAAI;AAClC,MAAI,CAACC,EAAK,QAAO;AAEjB,QAAMmB,IAAarB,EAAa,cAAcA,EAAa;AAE3D,EAAIoB,IACEC,KACFpB,EAAO,QAAQ,KACfA,EAAO,SAAS,KAAK;AAAA,IACnB;AAAA,IACCA,EAAO,QAAQD,EAAa,cAAeA,EAAa;AAAA,EAAA,MAG3DC,EAAO,QAAQ,KACfA,EAAO,SAAS,KAAK;AAAA,IACnB;AAAA,IACCA,EAAO,QAAQD,EAAa,cAAeA,EAAa;AAAA,EAAA,KAGpDqB,KACTpB,EAAO,QAAQ,KACfA,EAAO,SAAS,KAAK;AAAA,IACnB;AAAA,IACCA,EAAO,QAAQD,EAAa,cAAeA,EAAa;AAAA,EAAA,MAG3DC,EAAO,QAAQ,KACfA,EAAO,SAAS,KAAK;AAAA,IACnB;AAAA,IACCA,EAAO,QAAQD,EAAa,cAAeA,EAAa;AAAA,EAAA;AAK7D,QAAMsB,IAAgB,GAChBnB,IAAcH,EAAa,aAAasB,GACxClB,IAAeJ,EAAa,cAAcsB,GAG1CC,KAAWpB,IAAcH,EAAa,cAAc,GACpDwB,KAAWpB,IAAeJ,EAAa,eAAe;AAK5D,SAAAE,EAAI;AAAA,IACFF;AAAA,IACA,CAACuB;AAAA,IACD,CAACC,IALoB;AAAA,IAMrBrB;AAAA,IACAC;AAAA,IACA;AAAA,IACA;AAAA,IACAH,EAAO;AAAA,IACPA,EAAO;AAAA,EAAA,GAGFA,EAAO,UAAU,cAAcwB,EAAY;AACpD,GC5DaC,KAAY;AAAA;AAAA,EAUvB,uBAAuB;AAAA;AAAA,EAIvB,qBAAqB;AAGvB,GCpBaC,KAAW;AAAA,EACtB,WAAW,MAAM5tB,EAAE,2BAA2B;AAAA,EAC9C,iBAAiB,MAAMA,EAAE,gCAAgC;AAAA,EACzD,aAAa,MAAMA,EAAE,6BAA6B;AAAA,EAClD,WAAW,MAAMA,EAAE,2BAA2B;AAAA,EAC9C,sBAAsB,MAAMA,EAAE,sCAAsC;AAAA,EACpE,kBAAkB,MAAMA,EAAE,kCAAkC;AAAA,EAC5D,oBAAoB,MAAMA,EAAE,mCAAmC;AAAA,EAC/D,cAAc,MAAMA,EAAE,iCAAiC;AACzD,GCTM6tB,KAAgB;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAEMC,KAAmB,CAACtH,MACxBA,EACG,YAAA,EACA,QAAQ,kBAAkB,EAAE,EAC5B,QAAQ,cAAc,EAAE,GAEvBuH,KAAqB,CAACvH,MAA2B;AACrD,QAAMwH,IAAkBF,GAAiBtH,CAAK;AAE9C,SAAOqH,GAAc,KAAK,CAACI,MAAe;AACxC,UAAMC,IAAoBJ,GAAiBG,CAAU;AAErD,QAAIC,EAAkB,SAAS,IAAI,GAAG;AACpC,YAAMC,IAAeD,EAAkB,MAAM,GAAG,EAAE;AAClD,aAAO,IAAI,OAAO,GAAGC,CAAY,QAAQ,EAAE,KAAKH,CAAe;AAAA,IACjE;AAEA,WAAOA,EAAgB,SAASE,CAAiB;AAAA,EACnD,CAAC;AACH,GAMME,KAAiB,MAAqB;AAC1C,MAAI;AACF,UAAMlC,IAAS,SAAS,cAAc,QAAQ,GACxCmC,IACJnC,EAAO,WAAW,OAAO,KAAKA,EAAO,WAAW,oBAAoB;AACtE,QAAI,CAACmC,KAAM,EAAEA,aAAc,uBAAwB,QAAO;AAE1D,UAAMC,IAAMD,EAAG,aAAa,2BAA2B;AACvD,WAAKC,IAEED,EAAG,aAAaC,EAAI,uBAAuB,IAFjC;AAAA,EAGnB,QAAQ;AACN,WAAO;AAAA,EACT;AACF,GAOMC,KAAyB,CAACC,MAAsC;AACpE,QAAMC,KAAkBD,KAAYJ,GAAA,IAAmB,iBAAiB;AACxE,SAAKK,IAEEV,GAAmBU,CAAc,IAFZ;AAG9B,GAwBMC,KAAuB,MAAe;AAC1C,MAAI,OAAO,cAAgB,OAAe,CAAC,YAAY;AACrD,WAAO;AAGT,MAAI;AAGF,UAAMC,IAAQ,IAAI,WAAW;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,IAAA,CACD;AACD,WAAO,YAAY,SAASA,CAAK;AAAA,EACnC,QAAQ;AACN,WAAO;AAAA,EACT;AACF;AAEO,MAAMC,WAA6C,MAAM;AAAA,EAC9D,YAAYC,GAAiB;AAC3B,UAAMA,CAAO,GACb,KAAK,OAAO;AAAA,EACd;AACF;AAMA,MAAMC,KAA6B,YAAoC;AACrE,MAAI,OAAO,YAAc,OAAe,CAAE,UAAkB;AAC1D,WAAO;AAGT,MAAI;AACF,UAAMC,IAAQ,MAAO,UAAkB,cAAc,qBAAqB;AAAA,MACxE;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACD;AAED,WAAO,KAAK,UAAUA,CAAK,EAAE,YAAA;AAAA,EAC/B,SAAS1rB,GAAO;AACd,mBAAQ,KAAK,0CAA0CA,CAAK,GACrD;AAAA,EACT;AACF,GAOM2rB,KAA8B,YAAoC;AACtE,QAAMR,IAAWJ,GAAA,GACXa,IAAuB,CAAC,CAACT;AAG/B,MAAID,GAAuBC,CAAQ;AACjC,mBAAQ,KAAK,qCAAqCA,CAAQ,cAAc,GACjE;AAIT,QAAMU,IAAa,MAAMJ,GAAA,GACnBK,IAAa,CAAC,CAACD;AAErB,SAAIA,KAC4BnB,GAAmBmB,CAAU,KAGzD,QAAQ,KAAK,oDAAoD,GAC1D,SAIP,CAACD,KAAwB,CAACE,KAC5B,QAAQ;AAAA,IACN;AAAA,EAAA,GAEK,UAIT,QAAQ;AAAA,IACN,uDAAuDX,KAAY,aAAa;AAAA,EAAA,GAE3E;AACT,GAGMY,KAAiB,MAAM;AAC3B,QAAMlD,IAAS,SAAS,cAAc,QAAQ,GACxCmC,IACJnC,EAAO,WAAW,OAAO,KAAKA,EAAO,WAAW,oBAAoB;AACtE,MAAI,CAACmC,EAAI,QAAO;AAEhB,QAAMgB,IAAmBhB,EAAW,aAAa,wBAAwB,GACnEiB,IAAsBjB,EAAW;AAAA,IACrC;AAAA,EAAA,GAEIkB,IAA2BlB,EAAW;AAAA,IAC1C;AAAA,EAAA;AAGF,SAAO,CAAC,EAAEgB,KAAmBE,KAA2BD;AAC1D,GAEaE,KAAuB,YAAqC;AACvE,EAAK,OAAO,6BACV,OAAO,2BAA2B;AAAA,IAChC,UAAU;AAAA,IACV,SAAS;AAAA,IACT,QAAQ;AAAA,EAAA;AAIZ,QAAMC,IAAkB,OAAO;AAE/B,MAAIA,EAAgB,UAAUA,EAAgB;AAC5C,WAAOA,EAAgB;AAGzB,MAAIA,EAAgB;AAClB,WAAOA,EAAgB;AAUzB,MAHIA,EAAgB,yBAAyB,WAC3CA,EAAgB,uBAAuBf,GAAA,IAErC,CAACe,EAAgB;AACnB,UAAM,IAAIb;AAAA,MACR;AAAA,IAAA;AAIJ,SAAAa,EAAgB,WAAW,YAAY;AACrC,QAAI;AACF,YAAMC,IAAS,MAAMC,GAAgB;AAAA,QACnC;AAAA,MAAA,GAIIC,IADc,MAAMZ,GAAA,MAER,SAAS,CAACI,GAAA,IAAmB,QAAQ,OAEjDS,IAAiB,MAAM3C,EAAe,kBAAkBwC,GAAQ;AAAA,QACpE,aAAa;AAAA,UACX,gBAAgB;AAAA,UAChB,UAAAE;AAAA,QAAA;AAAA,QAEF,uBAAuB;AAAA,QACvB,aAAa;AAAA,QACb,UAAU;AAAA,MAAA,CACX;AAED,aAAAH,EAAgB,WAAWI,GAC3BJ,EAAgB,SAAS,IACzBA,EAAgB,UAAU,MAEnBI;AAAA,IACT,SAASxsB,GAAO;AACd,YAAAosB,EAAgB,UAAU,MACpBpsB;AAAA,IACR;AAAA,EACF,GAAA,GAEOosB,EAAgB;AACzB,GC3PMK,KAAqBC,GAAY,SAe1BC,KAAiB,CAAC;AAAA,EAC7B,UAAAnuB;AAAA,EACA,WAAAouB;AAAA,EACA,UAAAC;AAAA,EACA,UAAAC;AAAA,EACA,gBAAAC;AAAA,EACA,oBAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,eAAAC;AAAA,EACA,eAAAC;AACF,MAA2B;AACzB,QAAMC,IAAoB5uB,GAA8B,IAAI,GACtD6uB,IAAoB7uB,GAAsB,IAAI,GAC9C8uB,IAAkB9uB,GAA8B,IAAI,GACpD+uB,IAAmB/uB,GAA4B,IAAI,GACnDgvB,IAAmBhvB,GAA8B,IAAI,GAErDivB,IAAevrB,GAAU,EAAK,GAC9BwrB,IAAexrB,GAAU,EAAK,GAC9ByrB,IAAgBzrB,GAA4C,MAAM,GAClE4kB,IAAmB5kB,GAAU,KAAK,CAAC,GACnC0rB,IAAgB1rB,GAAiB,EAAE,GACnC2rB,IAAoB3rB,GAAU,CAAC,GAC/B4rB,IAAkB5rB,GAAU,CAAC,GAC7B6rB,IAAmB7rB,GAAU,CAAC,GAC9B8rB,IAAgB9rB,GAAU,CAAC,GAC3B+rB,KAAa/rB,GAAU,EAAE,GACzBgsB,IAAiBhsB,GAAU,EAAI,GAC/BisB,KAA+BjsB,GAAU,EAAK,GAE9CksB,KAAclsB,GAAU,EAAK,GAC7BmsB,IAAWnsB,GAAU,EAAK,GAC1BosB,IAAYpsB,GAAU,CAAC,GACvBqsB,IAAiBrsB,GAAoB,EAAE,GACvCssB,IAAiBtsB,GAAyB,IAAI,GAC9CusB,KAAgBvsB,GAAU,CAAC,GAC3BknB,IAAgBlnB,GAAU,CAAC,GAC3BwsB,KAAqBxsB,GAAU,EAAK,GAEpCmnB,KAAkBjnB;AAAA,IAAY,MAClC,KAAK,MAAMqsB,GAAc,QAAQ,GAAG;AAAA,EAAA,GAEhCE,KAAcvsB,GAAY,MAAM,KAAK,MAAMqsB,GAAc,QAAQ,GAAG,CAAC,GAErEG,KAAmBxsB;AAAA,IACvB,MACEqrB,EAAa,SACbC,EAAa,SACbC,EAAc,UAAU;AAAA,EAAA,GAGtBkB,KAAuB,CAACC,MAAkC;AAC9D,IAAIA,KAAcxE,GAASwE,CAAU,IACnCb,GAAW,QAAQ3D,GAASwE,CAAU,IAAA,IAEtCb,GAAW,QAAQ;AAAA,EAEvB,GAEMc,KAAcvwB;AAAAA,IAClBynB,GAAS,CAAC6I,MAAkC;AAC1C,MAAAD,GAAqBC,CAAU;AAAA,IACjC,GAAG,GAAG;AAAA,EAAA,EACN,SAEIE,KAA8B,KAE9BC,KAAqB,MAAM;AAC/B,IAAIzB,EAAiB,WACnB,aAAaA,EAAiB,OAAO,GAEvCA,EAAiB,UAAU,WAAW,MAAM;AAC1C,MAAKoB,GAAiB,UACpBT,GAA6B,QAAQ;AAAA,IAEzC,GAAGa,EAA2B;AAAA,EAChC,GAEME,KAA2B,YAAY;AAC3C,QAAI;AAKF,MAHE,OAAO,0BAA0B,UACjC,OAAO,0BAA0B,aAGjChB,EAAe,QAAQ,IACvBW,GAAqB,cAAc,IAGrCzB,EAAkB,UAAU,MAAMlB,GAAA,GAClCgC,EAAe,QAAQ,IACvBe,GAAA;AAAA,IACF,SAASlvB,GAAO;AACd,cAAQ,MAAM,mCAAmCA,CAAK,GACtDmuB,EAAe,QAAQ,IAGvBe,GAAA;AAAA,IACF;AACA,IAAAA,GAAA;AAAA,EACF,GAEME,KAAc,MAAM;AACxB,QAAI5wB,EAAS,WAAWouB,EAAU,SAAS;AACzC,YAAM,EAAE,YAAAyC,GAAY,aAAAC,GAAA,IAAgB9wB,EAAS;AAE7C,MAAAuoB,EAAiB,QAAQsI,IAAaC,IAEtC1C,EAAU,QAAQ,QAAQyC,GAC1BzC,EAAU,QAAQ,SAAS0C,IAET9wB,EAAS,QAAQ,kBAEjCouB,EAAU,QAAQ,MAAM,OAAO,OAC/BA,EAAU,QAAQ,MAAM,MAAM;AAAA,IAElC;AAAA,EACF,GAEM2C,KAAsB,MAAM;AAChC,UAAMC,IAAkBnG,EAAc,QAAQuF,GAAY,OACpDa,KAAgBpG,EAAc,SAASC,GAAgB;AAE7D,IAAIkG,IACFtB,GAAW,QAAQvxB,EAAE,+BAA+B,IAC3C8yB,KACc,KAAK,IAAA,IAAQxB,EAAc,QAC7Bd,IAEjBW,EAAkB,SAASf,KAC3BiB,EAAiB,QAAQhB,IAEzBgC,GAAY,kBAAkB,IAE9BA,GAAY,gBAAgB,IAG9Bd,GAAW,QAAQvxB,EAAE,iCAAiC,IAGxDqyB,GAAY,IAAI;AAAA,EAEpB,GAEMU,KAAe,MAAM;AACzB,IAAIvB,EAAe,QACjBW,GAAqB,cAAc,IACzBpB,EAAa,QAEdE,EAAc,UAAU,cACjCoB,GAAY,WAAW,IACdpB,EAAc,UAAU,YACjCoB,GAAY,SAAS,IACXrB,EAAa,QAEdU,GAAY,QACrBkB,GAAA,IAEArB,GAAW,QAAQvxB,EAAE,oCAAoC,IAJzDqyB,GAAY,eAAe,IAN3BA,GAAY,SAAS;AAAA,EAYzB,GAEMW,KAAoB,MAAM;AAC9B,IAAIrC,EAAkB,YACpB,qBAAqBA,EAAkB,OAAO,GAC9CA,EAAkB,UAAU;AAAA,EAEhC,GAEMsC,KAAa,YAAY;AAC7B,QAAI,CAACvC,EAAkB,WAAW,CAAC7uB,EAAS,SAAS;AACnD,MAAAmxB,GAAA;AACA;AAAA,IACF;AAGA,QACEnxB,EAAS,QAAQ,cAAc,KAC/BA,EAAS,QAAQ,eAAe,KAChCA,EAAS,QAAQ,aAAa,GAC9B;AACA,MAAA8uB,EAAkB,UAAU,sBAAsBsC,EAAU;AAC5D;AAAA,IACF;AAEA,QAAI;AACF,MAAIzB,EAAe,UACjBA,EAAe,QAAQ;AAGzB,YAAM0B,IAAgBlH,GAAwBnqB,EAAS,OAAO,GACxDsxB,KAAkBD,KAAiBrxB,EAAS,SAE5CuxB,KAAU1C,EAAkB,QAAQ;AAAA,QACxCyC;AAAA,QACA,YAAY,IAAA;AAAA,MAAI;AAKlB,UAFAjC,EAAc,QAAQkC,GAAQ,iBAAiB,CAAA,GAE3CA,GAAQ,iBAAiBnD,EAAU,WAAWpuB,EAAS;AAGzD,YAAIqxB,GAAe;AACjB,gBAAM9G,KAAcvqB,EAAS,QAAQ,YAC/BwqB,KAAexqB,EAAS,QAAQ,aAChCyqB,KAAa,KAAK,IAAIF,IAAaC,EAAY,GAC/CmB,MAAWpB,KAAcE,OAAe,IAAIF,KAC5CqB,MAAWpB,KAAeC,OAAe,IAAID,KAC7CgH,KAAc/G,KAAaF,IAC3BkH,KAAehH,KAAaD,IAE5BkH,KAAoBH,GAAQ,cAAc;AAAA,YAAI,CAACzJ,OACnDA,GAAK,IAAI,CAACK,QAAmB;AAAA,cAC3B,GAAGA,GAAS,IAAIqJ,KAAc7F;AAAA,cAC9B,GAAGxD,GAAS,IAAIsJ,KAAe7F;AAAA,cAC/B,GAAGzD,GAAS;AAAA,YAAA,EACZ;AAAA,UAAA;AAGJ,UAAAyC;AAAA,YACEwD,EAAU;AAAA,YACVsD;AAAA,YACA7G,EAAc;AAAA,YACdC,GAAgB;AAAA,UAAA;AAAA,QAEpB;AACE,UAAAF;AAAA,YACEwD,EAAU;AAAA,YACVmD,GAAQ;AAAA,YACR1G,EAAc;AAAA,YACdC,GAAgB;AAAA,UAAA;AAAA,UAGtB,CAAWsD,EAAU,WACnB9C,GAAY8C,EAAU,OAAO;AAI/B,YAAMuD,KAAWJ,GAAQ,gBAAgBA,GAAQ,cAAc,SAAS,GAGlEK,KACJL,GAAQ,mBACRA,GAAQ,gBAAgB,SAAS,KACjCI,MAAY;AAGd,UAFAzC,EAAa,QAAQ0C,IAEjBA,MAAWL,GAAQ,eAAe;AAEpC,cAAMM,KAAWjK,GAAkB2J,GAAQ,aAAa;AACxD,QAAAhC,EAAgB,QAAQsC,IAGpBA,KAAWnD,IACbU,EAAc,QAAQ,cACbyC,KAAWpD,IACpBW,EAAc,QAAQ,YAEtBA,EAAc,QAAQ,QAIxBD,EAAa,QAAQ7G;AAAA,UACnBiJ,GAAQ;AAAA,UACRhJ,EAAiB;AAAA,QAAA;AAInB,cAAMuJ,KAAcP,GAAQ,gBAAgB,CAAC,EAAE,YACzCQ,KACJD,GAAY,KAAK,CAACvuB,OAAMA,GAAE,iBAAiB,gBAAgB,GAAG,SAC9D,GACIyuB,KACJF,GAAY,KAAK,CAACvuB,OAAMA,GAAE,iBAAiB,iBAAiB,GACxD,SAAS,GACT0uB,KAAYnI,GAAsByH,GAAQ,aAAa,GACvDW,MAAcH,KAAYC,MAAc;AAE9C,QAAA1C,EAAkB,QAAQ4C,IAC1B1C,EAAiB,QAAQyC,IAErBC,MAAc3D,KAAkB0D,MAAazD,MAC/CiB,EAAc,QAAQ,KAAK,IAAA,GAEvBK,EAAS,SAASD,GAAY,SAASb,EAAiB,WAE1D,WAAW,MAAM;AAEf,UADqB,KAAK,IAAA,IAAQS,EAAc,SAAS,OAGvDK,EAAS,SACTD,GAAY,SACZb,EAAiB,WAEjBA,EAAiB,QAAA;AAAA,QAErB,GAAG,CAAC;AAAA,MAGV;AAEE,QAAAM,EAAkB,QAAQ,GAC1BC,EAAgB,QAAQ,GACxBC,EAAiB,QAAQ,GACzBL,EAAa,QAAQ,IACrBC,EAAc,QAAQ;AAGxB,MAAA8B,GAAA;AAAA,IACF,QAAQ;AACN,MAAAhC,EAAa,QAAQ,IACrBC,EAAa,QAAQ,IACrBC,EAAc,QAAQ,QACtBI,EAAiB,QAAQ,GAErBK,GAAY,SACdW,GAAY,SAAS;AAAA,IAEzB;AAEA,IAAA1B,EAAkB,UAAU,sBAAsBsC,EAAU;AAAA,EAC9D,GAEMe,KAAqB,MAAM;AAC/B,IAAIrD,EAAkB,WACpB,qBAAqBA,EAAkB,OAAO,GAEhDA,EAAkB,UAAU,sBAAsBsC,EAAU;AAAA,EAC9D,GAEMgB,KAAe,MAAM;AACzB,QAAI,CAACpyB,EAAS,QAAS;AAEvB,UAAMwrB,IAAcX,EAAc,UAAUqF,GAAc,QAAQ,GAC5DmC,KAAY9G,GAAsBvrB,EAAS,SAASwrB,CAAW;AAErE,IAAK6G,OAED7G,IACFyE,EAAe,QAAQoC,KAEvBrC,EAAe,QAAQ,CAAC,GAAGA,EAAe,OAAOqC,EAAS,GAG5DxH,EAAc,SACdkF,EAAU,QAAQG,GAAc,QAAQrF,EAAc;AAAA,EACxD,GAEMyH,KAAc,MAAM;AASxB,QARIvD,EAAgB,YAClB,cAAcA,EAAgB,OAAO,GACrCA,EAAgB,UAAU,OAG5Bc,GAAY,QAAQ,IACpBC,EAAS,QAAQ,IAEbjF,EAAc,SAASqF,GAAc,SAASD,EAAe,OAAO;AACtE,YAAMsC,IAAiBvC,EAAe,MAAM,IAAI,CAACwC,QAAS;AAAA,QACxD,OAAOA,GAAI,MAAM,GAAG,EAAE,CAAC;AAAA,QACvB,eAAe1G,GAAU;AAAA,MAAA,EACzB,GAEI2G,KAAiB;AAAA,QACrB,OAAOxC,EAAe,MAAM,MAAM,GAAG,EAAE,CAAC;AAAA,QACxC,eAAenE,GAAU;AAAA,MAAA,GAGrB4G,KAAc;AAAA,QAClB,QAAQ,CAAC,GAAGH,GAAgBE,EAAc;AAAA,QAC1C,gBAAgBxC,EAAe;AAAA,QAC/B,cAAcA,EAAe;AAAA,QAC7B,YAAYrB,EAAA;AAAA,QACZ,MAAM,EAAE,gBAAgBX,GAAA;AAAA,MAAmB;AAG7C,aAAO;AAAA,QACL,IAAI,YAAY,0BAA0B;AAAA,UACxC,QAAQyE;AAAA,QAAA,CACT;AAAA,MAAA,GAGHvC,GAAmB,QAAQ;AAAA,IAC7B;AAAA,EACF,GAEMwC,KAAe,MAAM;AACzB,IAAI5D,EAAgB,YAClB,cAAcA,EAAgB,OAAO,GACrCA,EAAgB,UAAU,OAE5Be,EAAS,QAAQ,IAGfZ,EAAa,SACbC,EAAa,SACbC,EAAc,UAAU,UAExBoB,GAAY,gBAAgB;AAAA,EAEhC,GAEMoC,KAAuB,MAAM;AACjC,IAAI7D,EAAgB,WAClB,cAAcA,EAAgB,OAAO,GAGvCA,EAAgB,UAAU,YAAY,MAAM;AAC1C,UAAIlE,EAAc,SAASqF,GAAc,OAAO;AAC9C,QAAAoC,GAAA;AACA;AAAA,MACF;AAEA,UAAI,CAACpD,EAAa;AAChB;AAGF,UAAI,CAACC,EAAa,OAAO;AACvB,QAAAwD,GAAA;AACA;AAAA,MACF;AAEA,UAAIvD,EAAc,UAAU,QAAQ;AAClC,QAAAuD,GAAA;AACA;AAAA,MACF;AAIA,UAFsB9H,EAAc,SAASC,GAAgB,SAGpC,KAAK,IAAA,IAAQ2E,EAAc,QAC7Bd,GAAe;AAClC,QAAAgE,GAAA;AACA;AAAA,MACF;AAGF,MAAAP,GAAA;AAAA,IACF,GAAG/D,CAAQ;AAAA,EACb,GAEMwE,KAAgB,MAAM;AAC1B,QACE3D,EAAa,SACbE,EAAc,UAAU,UACxBD,EAAa,OACb;AAEA,UADsBtE,EAAc,SAASC,GAAgB,SAEpC,KAAK,IAAA,IAAQ2E,EAAc,QAC7Bd;AACnB;AAIJ,MAAAmB,EAAS,QAAQ,IACjBU,GAAY,IAAI,GAChBoC,GAAA;AAAA,IACF;AAAA,EACF;AAEA,SAAA5D,EAAiB,UAAU6D,IA4FpB;AAAA,IACL,cAAA3D;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,kBAAA7G;AAAA,IACA,eAAA8G;AAAA,IACA,mBAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,kBAAAU;AAAA,IACA,8BAAAT;AAAA,IAEA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,WAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAArF;AAAA,IACA,oBAAAsF;AAAA,IACA,iBAAArF;AAAA,IACA,aAAAsF;AAAA,IAEA,0BAAAO;AAAA,IACA,aAAAC;AAAA,IACA,oBAAAuB;AAAA,IACA,mBAAAhB;AAAA,IACA,aAAAX;AAAA,IACA,cAzHmB,YAAY;AAC/B,MAAAR,EAAe,QAAQ,CAAA,GACvBH,GAAY,QAAQ,IACpBC,EAAS,QAAQ,IACjBI,GAAc,QAAQ,KAAK,KAAK5B,IAAWD,CAAQ,GACnDxD,EAAc,QAAQ,GACtBkF,EAAU,QAAQG,GAAc;AAEhC,YAAM4C,IAAiB,SAAS,cAAc,kBAAkB;AAChE,MAAAA,GAAgB;AAAA,QACd,IAAI,YAAY,+BAA+B;AAAA,MAAA,GAEjDA,GAAgB;AAAA,QACd,IAAI,YAAY,0BAA0B;AAAA,UACxC,QAAQ;AAAA,YACN,aAAa;AAAA,cACX,aAAa;AAAA,cACb,MAAM;AAAA,YAAA,EACNlE,GAAe;AAAA,UAAA;AAAA,QACnB,CACD;AAAA,MAAA,GAGHgE,GAAA;AAAA,IACF;AAAA,IAkGE,aAAAN;AAAA,IACA,cAAAK;AAAA,IACA,eAAAE;AAAA,IACA,cAnGmB,MAAM;AACzB,MAAAP,GAAA,GACA,OAAO;AAAA,QACL,IAAI,YAAY,4BAA4B;AAAA,UAC1C,QAAQ,EAAE,MAAM,EAAE,gBAAgBrE,KAAmB;AAAA,QAAE,CACxD;AAAA,MAAA,GAIH,OAAO;AAAA,QACL,IAAI,YAAY,oCAAoC;AAAA,UAClD,QAAQ,EAAE,MAAM,EAAE,gBAAgBA,KAAmB;AAAA,QAAE,CACxD;AAAA,MAAA;AAAA,IAEL;AAAA,IAsFE,aApFkB,MAAM;AACxB,MAAAqE,GAAA,GAEA,OAAO;AAAA,QACL,IAAI,YAAY,wBAAwB;AAAA,UACtC,QAAQ,EAAE,MAAM,EAAE,gBAAgBrE,KAAmB;AAAA,QAAE,CACxD;AAAA,MAAA,GAIH,OAAO;AAAA,QACL,IAAI,YAAY,gCAAgC;AAAA,UAC9C,QAAQ,EAAE,MAAM,EAAE,gBAAgBA,KAAmB;AAAA,QAAE,CACxD;AAAA,MAAA;AAAA,IAEL;AAAA,IAsEE,SApEc,MAAM;AACpB,MAAIc,EAAgB,WAClB,cAAcA,EAAgB,OAAO,GAEnCE,EAAiB,WACnB,aAAaA,EAAiB,OAAO,GAEvCkC,GAAA,GACAX,GAAY,OAAA;AAAA,IACd;AAAA,IA4DE,yBA1D8B,MAAM;AACpC,MAAAtB,EAAa,QAAQ,IACrBC,EAAa,QAAQ,IACrBC,EAAc,QAAQ,QACtBC,EAAc,QAAQ,CAAA,GACtBC,EAAkB,QAAQ,GAC1BC,EAAgB,QAAQ,GACxBC,EAAiB,QAAQ,GACzBC,EAAc,QAAQ,GACtBG,GAA6B,QAAQ,IACjCX,EAAiB,YACnB,aAAaA,EAAiB,OAAO,GACrCA,EAAiB,UAAU,OAGzBb,EAAU,WACZ9C,GAAY8C,EAAU,OAAO;AAAA,IAEjC;AAAA,EAwCE;AAEJ,GChnBM2E,KAAe,CAAC;AAAA,EACpB,UAAAC;AAAA,EACA,UAAA1E,IAAW;AAAA,EACX,YAAA2E,IAAa;AACf,MAAyB;AACvB,QAAMC,IAAUjzB,GAAuB,IAAI,GACrCkzB,IAAelzB,GAAO+yB,CAAQ;AAEpCnyB,SAAAA,GAAU,MAAM;AACd,UAAMuyB,IAAOF,EAAQ;AACrB,QAAI,CAACE,EAAM;AAEX,UAAMC,IAAaD,EAAK,eAAA;AACxB,IAAAA,EAAK,MAAM,UAAUJ,IAAW,IAAI,MAAM;AAC1C,UAAMM,IAAaD,KAAc,IAAIF,EAAa,UAC5CI,IAAWF,KAAc,IAAIL;AAGnC,IAAIM,MAAeC,MAEnBH,EAAK,MAAM,aAAa,QACxBA,EAAK,MAAM,kBAAkB,GAAGC,CAAU,IAAIA,CAAU,IACxDD,EAAK,MAAM,mBAAmB,GAAGE,CAAU,IAG3CF,EAAK,sBAAA,GAELA,EAAK,MAAM,aAAa,qBAAqB9E,CAAQ,eACrD8E,EAAK,MAAM,mBAAmB,GAAGG,CAAQ,IAEzCJ,EAAa,UAAUH;AAAA,EACzB,GAAG,CAACA,GAAU1E,CAAQ,CAAC,GAGrBkF,gBAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAO;AAAA,QACL,UAAU;AAAA,QACV,KAAK;AAAA,QACL,MAAM;AAAA,QACN,OAAO;AAAA,QACP,QAAQ;AAAA,QACR,eAAe;AAAA,MAAA;AAAA,MAGjB,UAAAC,gBAAAA;AAAAA,QAAC;AAAA,QAAA;AAAA,UACC,SAAQ;AAAA,UACR,qBAAoB;AAAA,UACpB,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAA;AAAA,UAGhC,UAAA;AAAA,YAAAD,gBAAAA,EAAC,YAAA,EAAS,IAAG,oBAAmB,eAAc,qBAC5C,UAAAA,gBAAAA,EAAC,QAAA,EAAK,GAAE,8VAAA,CAA8V,EAAA,CACxW;AAAA,YACAA,gBAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,GAAE;AAAA,gBACF,QAAQP;AAAA,gBACR,MAAK;AAAA,gBACL,OAAO,EAAE,aAAa,IAAA;AAAA,cAAI;AAAA,YAAA;AAAA,YAE5BO,gBAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,KAAKN;AAAA,gBACL,GAAE;AAAA,gBACF,QAAO;AAAA,gBACP,OAAO,EAAE,aAAa,IAAA;AAAA,gBACtB,MAAK;AAAA,gBACL,eAAc;AAAA,cAAA;AAAA,YAAA;AAAA,UAChB;AAAA,QAAA;AAAA,MAAA;AAAA,IACF;AAAA,EAAA;AAGN,GClEaQ,KAAuD,CAAC;AAAA,EACnE,UAAA1zB;AAAA,EACA,WAAAouB;AAAA,EACA,YAAAjuB;AAAA,EACA,UAAA6yB;AAAA,EACA,UAAA3E;AAAA,EACA,YAAA4E;AACF,MACEQ,gBAAAA,EAAAE,IAAA,EACE,UAAA;AAAA,EAAAF,gBAAAA,EAAC,OAAA,EAAI,WAAU,4BACb,UAAA;AAAA,IAAAD,gBAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAU;AAAA,QACV,OAAO;AAAA,UACL,UAAU;AAAA,QAAA;AAAA,QAGZ,UAAAC,gBAAAA,EAAC,OAAA,EAAI,WAAU,mBACb,UAAA;AAAA,UAAAD,gBAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAKxzB;AAAA,cACL,UAAQ;AAAA,cACR,aAAW;AAAA,cACX,OAAK;AAAA,cACL,WAAW,gBAAgBG,MAAe,SAAS,WAAW,EAAE;AAAA,YAAA;AAAA,UAAA;AAAA,UAElEqzB,gBAAAA;AAAAA,YAAC;AAAA,YAAA;AAAA,cACC,KAAKpF;AAAA,cACL,WAAW,iBAAiBjuB,MAAe,SAAS,WAAW,EAAE;AAAA,YAAA;AAAA,UAAA;AAAA,QACnE,EAAA,CACF;AAAA,MAAA;AAAA,IAAA;AAAA,IAEFqzB,gBAAAA;AAAAA,MAACT;AAAA,MAAA;AAAA,QACC,UAAAC;AAAA,QACA,UAAU3E;AAAA,QACV,YAAA4E;AAAA,MAAA;AAAA,IAAA;AAAA,EACF,GACF;AAAA,oBAEC,SAAA,EAAO,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,CAyCN;AAAA,GACJ,GCrFWW,KAAqD,CAAC;AAAA,EACjE,YAAAlE;AACF,MACEA,IACE+D,gBAAAA,EAAAE,IAAA,EACE,UAAA;AAAA,EAAAH,gBAAAA,EAAC,OAAA,EAAI,WAAU,iBACb,UAAAA,gBAAAA,EAAC,SAAI,WAAU,eAAe,aAAW,EAAA,CAC3C;AAAA,oBAEC,SAAA,EAAO,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAA,CAgBN;AAAA,EAAA,CACJ,IACE,MChBOK,KAA2D,CAAC;AAAA,EACvE,aAAAhE;AAAA,EACA,oBAAAM;AAAA,EACA,kBAAAE;AAAA,EACA,8BAAAT;AAAA,EACA,gBAAAkE;AAAA,EACA,gBAAAxzB;AAAA,EACA,uBAAAyzB;AAAA,EACA,YAAA5zB;AAAA,EACA,YAAA8yB,IAAa;AAAA,EACb,gBAAAe;AAAA,EACA,gBAAAC;AACF,MACER,gBAAAA,EAAAE,IAAA,EACE,UAAA;AAAA,EAAAF,gBAAAA,EAAC,OAAA,EAAI,WAAU,YACb,UAAA;AAAA,IAAAD,gBAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAG;AAAA,QACH,OAAM;AAAA,QACN,SAASQ;AAAA,QACT,UACEnE,KACAM,KACC,CAACE,KAAoB,CAACT;AAAA,QAGxB,YAAE,oCAAoC;AAAA,MAAA;AAAA,IAAA;AAAA,IAGxCkE,MAAmBxzB,KAAkByzB,MACpCP,gBAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAG;AAAA,QACH,SAASS;AAAA,QACT,WAAU;AAAA,QACV,UAAUpE,KAAeM;AAAA,QAExB,gBAAe,SACZhyB,EAAE,8BAA8B,IAChCA,EAAE,6BAA6B;AAAA,MAAA;AAAA,IAAA;AAAA,EACrC,GAEJ;AAAA,oBAEC,SAAA,EAAO,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAcU80B,CAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAAA,CAW1B;AAAA,GACJ,GC7DIiB,KAA+C,CAAC;AAAA,EACpD,UAAA7F,IAAW;AAAA,EACX,UAAAC,IAAW;AAAA,EACX,eAAe2E,IAAa;AAAA,EAC5B,mBAAmBkB,IAAqB;AAAA,EACxC,oBAAoBC,IAAqB;AAAA,EACzC,6BAA6BC,IAA4B;AAAA,EACzD,oBAAoBC,IAAsB;AAC5C,MAAM;AACJ,QAAMlG,IAAYnuB,GAA0B,IAAI,GAC1Cs0B,IAAgBt0B,GAA2B,IAAI,GAE/Cu0B,IAAiBC,GAAYN,CAAkB,GAC/CL,IAAiBW,GAAYL,CAAkB,GAC/CL,IAAwBU,GAAYJ,CAAyB,GAC7DK,IAAkBD,GAAYH,CAAmB,GAEjD3F,IAAgB,KAChBJ,IAAiB,MACjBC,IAAqB,MACrBC,IAAc,MACdC,IAAc,KAEd3uB,IAAoB+zB,IAAiB,gBAAgB,QACrDa,IAAS70B,GAAUC,CAAiB,GAEpC60B,IAAczG,GAAe;AAAA,IACjC,UAAUwG,EAAO;AAAA,IACjB,WAAAvG;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,oBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,aAAAC;AAAA,IACA,eAAAC;AAAA,IACA,eAAe,MAAMgG,EAAO;AAAA,EAAA,CAC7B;AAED9zB,SAAAA,GAAU,MAAM;AACd,UAAMg0B,IAAmB,YAAY;AACnC,YAAMF,EAAO,YAAY50B,GAAmB,CAAC+0B,MAAe;AAE1D,QADuB,SAAS,cAAc,kBAAkB,GAChD;AAAA,UACd,IAAI,YAAY,wBAAwB;AAAA,YACtC,QAAQ,EAAE,YAAAA,EAAA;AAAA,UAAW,CACtB;AAAA,QAAA;AAAA,MAEL,CAAC,GACD,MAAMH,EAAO,kBAAA,GACb,MAAMC,EAAY,yBAAA,GAElB,WAAW,MAAM;AACf,QAAAA,EAAY,YAAA,GACZA,EAAY,mBAAA;AAAA,MACd,GAAG,GAAG;AAAA,IACR;AAEA,WAAAD,EAAO,6BAA6B,MAAM;AACxC,UAAI;AACF,QAAAC,EAAY,wBAAA,GACZA,EAAY,YAAA,GACZA,EAAY,kBAAA,GACZA,EAAY,mBAAA;AAAA,MACd,SAASpzB,GAAO;AACd,gBAAQ,MAAM,wCAAwCA,CAAK;AAAA,MAC7D;AAAA,IACF,CAAC,GAEDqzB,EAAA,GAEO,MAAM;AACX,MAAAD,EAAY,kBAAA,GACZD,EAAO,WAAA,GACPC,EAAY,QAAA;AAAA,IACd;AAAA,EACF,GAAG,CAAA,CAAE,GAEL/zB,GAAU,MAAM;AACd,UAAMk0B,IAAaR,EAAc;AAEjC,QAAIQ,KAAcP,GAAgB;AAChC,YAAMQ,IAAuB,MAAM;AACjC,QAAAJ,EAAY,aAAA;AAAA,MACd,GAEMK,IAAwB,MAAM;AAClC,QAAAL,EAAY,YAAA;AAAA,MACd;AAEA,aAAAG,EAAW,iBAAiB,mBAAmBC,CAAoB,GACnED,EAAW,iBAAiB,oBAAoBE,CAAqB,GAE9D,MAAM;AACX,QAAAF,EAAW,oBAAoB,mBAAmBC,CAAoB,GACtED,EAAW;AAAA,UACT;AAAA,UACAE;AAAA,QAAA;AAAA,MAEJ;AAAA,IACF;AAAA,EAEF,GAAG,CAACT,CAAc,CAAC,GAEnB3zB,GAAU,MAAM;AACd,IAAI+zB,EAAY,mBAAmB,SACV,SAAS,cAAc,kBAAkB,GAChD;AAAA,MACd,IAAI,YAAY,6BAA6B;AAAA,IAAA;AAAA,EAGnD,GAAG,CAACA,EAAY,mBAAmB,KAAK,CAAC,GAGvCnB,gBAAAA,EAAC,OAAA,EAAI,WAAU,uBACZ,UAAA;AAAA,IAAAe;AAAA,IAEChB,gBAAAA,EAAC,sBAAA,EAAmB,KAAKe,GAAe,eAAatB,GAAY;AAAA,IAGnEO,gBAAAA;AAAAA,MAACE;AAAA,MAAA;AAAA,QACC,UAAUiB,EAAO;AAAA,QACjB,WAAAvG;AAAA,QACA,YAAYuG,EAAO;AAAA,QACnB,UACEC,EAAY,cAAc,QAAQ,IAC9BA,EAAY,cAAc,QAAQA,EAAY,cAAc,QAC5D;AAAA,QAEN,UAAAvG;AAAA,QACA,YAAA4E;AAAA,MAAA;AAAA,IAAA;AAAA,IAGFO,gBAAAA,EAACI,IAAA,EAAa,YAAYgB,EAAY,WAAW,OAAO;AAAA,IAEvD,CAACA,EAAY,YAAY,SACxB,CAACA,EAAY,mBAAmB,SAC9BpB,gBAAAA;AAAAA,MAACK;AAAA,MAAA;AAAA,QACC,aAAae,EAAY,YAAY;AAAA,QACrC,oBAAoBA,EAAY,mBAAmB;AAAA,QACnD,kBAAkBA,EAAY,iBAAiB;AAAA,QAC/C,8BACEA,EAAY,6BAA6B;AAAA,QAE3C,gBAAAd;AAAA,QACA,gBAAgBa,EAAO;AAAA,QACvB,uBAAAZ;AAAA,QACA,YAAYY,EAAO;AAAA,QACnB,YAAA1B;AAAA,QACA,gBAAgB2B,EAAY;AAAA,QAC5B,gBAAgBD,EAAO;AAAA,MAAA;AAAA,IAAA;AAAA,IAK5B,CAACD,KAAmBlB,gBAAAA,EAAC,uBAAA,EAAoB;AAAA,sBAEzC,SAAA,EAAO,UAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wBAOUP,KAAc,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAcjBA,KAAc,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAA,CA2B7C;AAAA,EAAA,GACJ;AAEJ;AAEK,eAAe,IAAI,qBAAqB,KAC3CiC;AAAA,EACEhB;AAAA,EACA;AAAA,EACA;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAAA,EAEF,EAAE,QAAQ,GAAA;AAAK;AC9OnB,MAAMjG,KAAqBC,GAAY,SAEjCiH,KAAgC;AAEtC,SAASC,GAAmBC,GAAMzyB,IAAI,IAAI;AACxC,QAAM0yB,wBAAa,IAAA;AACnB,WAAShzB,IAAI,GAAGA,IAAI,KAAK,IAAI+yB,EAAK,QAAQ,GAAK,GAAG/yB,KAAK;AAGrD,QADAgzB,EAAO,IAAKD,EAAK/yB,CAAC,KAAK,KAAO+yB,EAAK/yB,IAAI,CAAC,KAAK,IAAK+yB,EAAK/yB,IAAI,CAAC,CAAC,GACzDgzB,EAAO,OAAO1yB;AAChB,aAAO;AAGX,SAAO;AACT;AAEA,SAAS2yB,GACPC,GACAC,IAAyBN,IACzB;AACA,QAAMO,IAAiB,CAAA;AAEvB,MAAIF,IAAkBC;AACpB,UAAM,IAAI;AAAA,MACRE,GAAM,kCAAkC;AAAA,QACtC,OAAOF;AAAA,MAAA,CACR;AAAA,IAAA;AAIL,QAAMG,IAAeH,IAAyB,GACxCI,IAAgB,KAAK,MAAML,IAAkBI,CAAY;AAI/D,MAAIE,IAAwB;AAE5B,WAASxzB,IAAI,GAAGA,IAAIkzB,GAAiBlzB,KAAKuzB;AACxC,IAAIH,EAAe,SAAS,IAC1BA,EAAe,KAAKpzB,CAAC,KAGrBozB,EAAeI,CAAqB,IAAIxzB,GACxCozB,EAAe,KAAK,CAACxyB,GAAGK,MAAML,IAAIK,CAAC,GAGnCuyB,KAAyB;AAK7B,QAAMC,IAAiBP,IAAkB;AAEzC,SAAIE,EAAe,SAAS,KAAK,CAACA,EAAe,SAASK,CAAc,KACtEL,EAAe,KAAKK,CAAc,GAG7BL;AACT;AAEA,SAASz3B,KAAiB;AACxB,SAAO;AAAA,MACHC,GAAO,KAAK,UAAU,CAAC;AAAA;AAAA;AAAA,qBAGR,KAAK,cAAc,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,aA4EpC,KAAK,UAAU;AAAA;AAAA;AAAA;AAAA,aAIf,KAAK,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sBAkCN,KAAK,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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","x_google_ignoreList":[2,3,4,6,7,8,9,10,11,12,13,14,15]}
|