@smileid/web-components 2.0.2 → 10.0.2
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-ChpBVvNE.js +1532 -0
- package/dist/esm/DocumentCaptureScreens-ChpBVvNE.js.map +1 -0
- package/dist/esm/EndUserConsent-CMHp-34-.js +715 -0
- package/dist/esm/EndUserConsent-CMHp-34-.js.map +1 -0
- package/dist/esm/Navigation-juBE4qOw.js +136 -0
- package/dist/esm/Navigation-juBE4qOw.js.map +1 -0
- package/dist/esm/PoweredBySmileId-CxbaihMu.js +33 -0
- package/dist/esm/PoweredBySmileId-CxbaihMu.js.map +1 -0
- package/dist/esm/SelfieCaptureScreens-DMo-z-32.js +7618 -0
- package/dist/esm/SelfieCaptureScreens-DMo-z-32.js.map +1 -0
- package/dist/esm/SignaturePad-C7MtmT8m.js +324 -0
- package/dist/esm/SignaturePad-C7MtmT8m.js.map +1 -0
- package/dist/esm/TotpConsent-CQU5jQi4.js +730 -0
- package/dist/esm/TotpConsent-CQU5jQi4.js.map +1 -0
- package/dist/esm/combobox.js +300 -0
- package/dist/esm/combobox.js.map +1 -0
- package/dist/esm/document.js +5 -0
- package/dist/esm/document.js.map +1 -0
- package/dist/esm/end-user-consent.js +5 -0
- package/dist/esm/end-user-consent.js.map +1 -0
- package/dist/esm/main.js +22 -0
- package/dist/esm/main.js.map +1 -0
- package/dist/esm/navigation.js +5 -0
- package/dist/esm/navigation.js.map +1 -0
- package/dist/esm/package-D_4zJ9ck.js +105 -0
- package/dist/esm/package-D_4zJ9ck.js.map +1 -0
- package/dist/esm/selfie.js +5 -0
- package/dist/esm/selfie.js.map +1 -0
- package/dist/esm/signature-pad.js +5 -0
- package/dist/esm/signature-pad.js.map +1 -0
- package/dist/esm/smart-camera-web.js +302 -0
- package/dist/esm/smart-camera-web.js.map +1 -0
- package/dist/esm/styles-D2i3GFLK.js +405 -0
- package/dist/esm/styles-D2i3GFLK.js.map +1 -0
- package/dist/esm/totp-consent.js +5 -0
- package/dist/esm/totp-consent.js.map +1 -0
- package/dist/smart-camera-web.js +4130 -0
- package/dist/smart-camera-web.js.map +1 -0
- package/dist/types/combobox.d.ts +21 -0
- package/dist/types/document.d.ts +21 -0
- package/dist/types/end-user-consent.d.ts +21 -0
- package/dist/types/main.d.ts +331 -0
- package/dist/types/navigation.d.ts +21 -0
- package/dist/types/selfie.d.ts +21 -0
- package/dist/types/signature-pad.d.ts +21 -0
- package/dist/types/smart-camera-web.d.ts +21 -0
- package/dist/types/totp-consent.d.ts +21 -0
- package/{src → lib}/components/camera-permission/CameraPermission.js +0 -1
- package/{src → lib}/components/document/src/document-capture/DocumentCapture.js +0 -1
- package/{src → lib}/components/document/src/document-capture-review/DocumentCaptureReview.js +0 -1
- package/{src → lib}/components/selfie/src/SelfieCaptureScreens.js +188 -37
- package/{src → lib}/components/selfie/src/index.js +0 -2
- package/{src → lib}/components/selfie/src/selfie-capture/SelfieCapture.js +3 -4
- package/{src → lib}/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.js +0 -1
- package/{src → lib}/components/selfie/src/selfie-capture-review/SelfieCaptureReview.js +0 -8
- package/lib/components/selfie/src/selfie-capture-wrapper/SelfieCaptureWrapper.tsx +226 -0
- package/lib/components/selfie/src/selfie-capture-wrapper/index.ts +1 -0
- package/lib/components/selfie/src/smartselfie-capture/OvalProgress.tsx +81 -0
- package/lib/components/selfie/src/smartselfie-capture/SmartSelfieCapture.tsx +223 -0
- package/lib/components/selfie/src/smartselfie-capture/components/AlertDisplay.tsx +34 -0
- package/lib/components/selfie/src/smartselfie-capture/components/CameraPreview.tsx +97 -0
- package/lib/components/selfie/src/smartselfie-capture/components/CaptureControls.tsx +74 -0
- package/lib/components/selfie/src/smartselfie-capture/components/index.ts +3 -0
- package/lib/components/selfie/src/smartselfie-capture/constants.ts +23 -0
- package/lib/components/selfie/src/smartselfie-capture/hooks/index.ts +2 -0
- package/lib/components/selfie/src/smartselfie-capture/hooks/useCamera.ts +94 -0
- package/lib/components/selfie/src/smartselfie-capture/hooks/useFaceCapture.ts +558 -0
- package/lib/components/selfie/src/smartselfie-capture/index.ts +1 -0
- package/lib/components/selfie/src/smartselfie-capture/utils/alertMessages.ts +12 -0
- package/lib/components/selfie/src/smartselfie-capture/utils/canvas.ts +105 -0
- package/lib/components/selfie/src/smartselfie-capture/utils/faceDetection.ts +129 -0
- package/lib/components/selfie/src/smartselfie-capture/utils/imageCapture.ts +65 -0
- package/lib/components/selfie/src/smartselfie-capture/utils/index.ts +4 -0
- package/lib/components/selfie/src/smartselfie-capture/utils/mediapipeManager.ts +60 -0
- package/{src → lib}/components/signature-pad/package.json +1 -1
- package/{src → lib}/components/smart-camera-web/src/README.md +0 -1
- package/{src → lib}/styles/src/styles.js +0 -1
- package/package.json +76 -24
- package/src/index.js +0 -5
- /package/{src → lib}/components/README.md +0 -0
- /package/{src → lib}/components/attribution/PoweredBySmileId.js +0 -0
- /package/{src → lib}/components/camera-permission/CameraPermission.stories.js +0 -0
- /package/{src → lib}/components/combobox/src/Combobox.js +0 -0
- /package/{src → lib}/components/combobox/src/index.js +0 -0
- /package/{src → lib}/components/document/src/DocumentCaptureScreens.js +0 -0
- /package/{src → lib}/components/document/src/DocumentCaptureScreens.stories.js +0 -0
- /package/{src → lib}/components/document/src/README.md +0 -0
- /package/{src → lib}/components/document/src/document-capture/DocumentCapture.stories.js +0 -0
- /package/{src → lib}/components/document/src/document-capture/README.md +0 -0
- /package/{src → lib}/components/document/src/document-capture/index.js +0 -0
- /package/{src → lib}/components/document/src/document-capture-instructions/DocumentCaptureInstructions.js +0 -0
- /package/{src → lib}/components/document/src/document-capture-instructions/DocumentCaptureInstructions.stories.js +0 -0
- /package/{src → lib}/components/document/src/document-capture-instructions/README.md +0 -0
- /package/{src → lib}/components/document/src/document-capture-instructions/index.js +0 -0
- /package/{src → lib}/components/document/src/document-capture-review/DocumentCaptureReview.stories.js +0 -0
- /package/{src → lib}/components/document/src/document-capture-review/README.md +0 -0
- /package/{src → lib}/components/document/src/document-capture-review/index.js +0 -0
- /package/{src → lib}/components/document/src/index.js +0 -0
- /package/{src → lib}/components/end-user-consent/src/EndUserConsent.js +0 -0
- /package/{src → lib}/components/end-user-consent/src/EndUserConsent.stories.js +0 -0
- /package/{src → lib}/components/end-user-consent/src/index.js +0 -0
- /package/{src → lib}/components/navigation/src/Navigation.js +0 -0
- /package/{src → lib}/components/navigation/src/Navigation.stories.js +0 -0
- /package/{src → lib}/components/navigation/src/index.js +0 -0
- /package/{src → lib}/components/selfie/README.md +0 -0
- /package/{src → lib}/components/selfie/src/SelfieCaptureScreens.stories.js +0 -0
- /package/{src → lib}/components/selfie/src/selfie-capture/SelfieCapture.stories.js +0 -0
- /package/{src → lib}/components/selfie/src/selfie-capture/index.js +0 -0
- /package/{src → lib}/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.stories.js +0 -0
- /package/{src → lib}/components/selfie/src/selfie-capture-instructions/index.js +0 -0
- /package/{src → lib}/components/selfie/src/selfie-capture-review/SelfieCaptureReview.stories.js +0 -0
- /package/{src → lib}/components/selfie/src/selfie-capture-review/index.js +0 -0
- /package/{src → lib}/components/signature-pad/package-lock.json +0 -0
- /package/{src → lib}/components/signature-pad/src/SignaturePad.js +0 -0
- /package/{src → lib}/components/signature-pad/src/SignaturePad.stories.js +0 -0
- /package/{src → lib}/components/signature-pad/src/index.js +0 -0
- /package/{src → lib}/components/smart-camera-web/src/SmartCameraWeb.js +0 -0
- /package/{src → lib}/components/smart-camera-web/src/SmartCameraWeb.stories.js +0 -0
- /package/{src → lib}/components/totp-consent/src/TotpConsent.js +0 -0
- /package/{src → lib}/components/totp-consent/src/index.js +0 -0
- /package/{src → lib}/domain/camera/src/README.md +0 -0
- /package/{src → lib}/domain/camera/src/SmartCamera.js +0 -0
- /package/{src → lib}/domain/constants/src/Constants.js +0 -0
- /package/{src → lib}/domain/file-upload/README.md +0 -0
- /package/{src → lib}/domain/file-upload/src/SmartFileUpload.js +0 -0
- /package/{src → lib}/styles/README.md +0 -0
- /package/{src → lib}/styles/src/typography.js +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smart-camera-web.js","sources":["../lib/components/combobox/src/Combobox.js","../lib/domain/constants/src/Constants.js","../lib/styles/src/typography.js","../lib/styles/src/styles.js","../lib/domain/camera/src/SmartCamera.js","../lib/components/navigation/src/Navigation.js","../lib/components/document/src/document-capture/DocumentCapture.js","../lib/components/document/src/document-capture-review/DocumentCaptureReview.js","../lib/domain/file-upload/src/SmartFileUpload.js","../lib/components/document/src/document-capture-instructions/DocumentCaptureInstructions.js","../lib/components/document/src/DocumentCaptureScreens.js","../../../node_modules/validate.js/validate.js","../lib/components/totp-consent/src/TotpConsent.js","../lib/components/attribution/PoweredBySmileId.js","../lib/components/end-user-consent/src/EndUserConsent.js","../lib/components/selfie/src/selfie-capture-instructions/SelfieCaptureInstructions.js","../lib/components/selfie/src/selfie-capture-review/SelfieCaptureReview.js","../../../node_modules/preact/dist/preact.module.js","../../../node_modules/preact/jsx-runtime/dist/jsxRuntime.module.js","../../../node_modules/preact/hooks/dist/hooks.module.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","../../../node_modules/preact-custom-element/dist/preact-custom-element.esm.js","../lib/utils/props.ts","../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","../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","../../../node_modules/signature_pad/dist/signature_pad.js","../lib/components/signature-pad/src/SignaturePad.js","../lib/components/camera-permission/CameraPermission.js","../lib/components/smart-camera-web/src/SmartCameraWeb.js"],"sourcesContent":["function generateId(prefix) {\r\n const id = [...Array(30)].map(() => Math.random().toString(36)[3]).join('');\r\n return `${prefix}-${id}`;\r\n}\r\n\r\n// check if element is visible in browser view port\r\nfunction isElementInView(element) {\r\n const bounding = element.getBoundingClientRect();\r\n\r\n return (\r\n bounding.top >= 0 &&\r\n bounding.left >= 0 &&\r\n bounding.bottom <=\r\n (window.innerHeight || document.documentElement.clientHeight) &&\r\n bounding.right <=\r\n (window.innerWidth || document.documentElement.clientWidth)\r\n );\r\n}\r\n\r\n// check if an element is currently scrollable\r\nfunction isScrollable(element) {\r\n return element && element.clientHeight < element.scrollHeight;\r\n}\r\n\r\n// ensure a given child element is within the parent's visible scroll area\r\n// if the child is not visible, scroll the parent\r\nfunction maintainScrollVisibility(activeElement, scrollParent) {\r\n const { offsetHeight, offsetTop } = activeElement;\r\n const { offsetHeight: parentOffsetHeight, scrollTop } = scrollParent;\r\n\r\n const isAbove = offsetTop < scrollTop;\r\n const isBelow = offsetTop + offsetHeight > scrollTop + parentOffsetHeight;\r\n\r\n if (isAbove) {\r\n scrollParent.scrollTo(0, offsetTop);\r\n } else if (isBelow) {\r\n scrollParent.scrollTo(0, offsetTop - parentOffsetHeight + offsetHeight);\r\n }\r\n}\r\n\r\nclass ComboboxRoot extends HTMLElement {\r\n constructor() {\r\n super();\r\n\r\n this.handleRoaming = this.handleRoaming.bind(this);\r\n }\r\n\r\n connectedCallback() {\r\n this.trigger = this.querySelector('smileid-combobox-trigger');\r\n\r\n document.addEventListener('click', this.handleRoaming);\r\n this.addEventListener('focusout', this.handleRoaming);\r\n this.addEventListener('blur', this.handleRoaming);\r\n }\r\n\r\n disconnectedCallback() {\r\n document.removeEventListener('click', this.handleRoaming);\r\n this.removeEventListener('focusout', this.handleRoaming);\r\n this.removeEventListener('blur', this.handleRoaming);\r\n }\r\n\r\n handleRoaming(event) {\r\n const target = event.relatedTarget || event.target;\r\n if (this.contains(target)) {\r\n return;\r\n }\r\n\r\n if (this.trigger.getAttribute('expanded') === 'true') {\r\n this.trigger.setAttribute('expanded', 'false');\r\n }\r\n }\r\n}\r\n\r\nclass ComboboxTrigger extends HTMLElement {\r\n constructor() {\r\n super();\r\n\r\n this.handleKeyUp = this.handleKeyUp.bind(this);\r\n this.handleKeyDown = this.handleKeyDown.bind(this);\r\n this.handleSelection = this.handleSelection.bind(this);\r\n\r\n this.toggleExpansionState = this.toggleExpansionState.bind(this);\r\n }\r\n\r\n get type() {\r\n return this.getAttribute('type') || 'text';\r\n }\r\n\r\n get label() {\r\n return this.getAttribute('label') || '';\r\n }\r\n\r\n get value() {\r\n return this.getAttribute('value') || '';\r\n }\r\n\r\n get disabled() {\r\n return this.hasAttribute('disabled');\r\n }\r\n\r\n connectedCallback() {\r\n if (!this.label) {\r\n throw new Error('<combobox-trigger>: a label attribute is required');\r\n }\r\n\r\n this.innerHTML = `${\r\n this.type === 'text'\r\n ? `\r\n <div>\r\n <input ${this.value ? `value=\"${this.value}\" ` : ''}${\r\n this.disabled ? ' disabled ' : ''\r\n }type=\"text\" placeholder=\"${this.label}\" />\r\n <button ${this.disabled ? 'disabled ' : ''}tabindex='-1' type='button'>\r\n <span class=\"visually-hidden\">Toggle</span>\r\n </button>\r\n </div>\r\n `\r\n : `<button ${this.disabled ? 'disabled ' : ''}type=\"button\">${\r\n this.value || this.label\r\n }</button>`\r\n }`;\r\n\r\n this.setAttribute('expanded', false);\r\n\r\n this.inputTrigger = this.querySelector('input');\r\n this.buttonTrigger = this.querySelector('button');\r\n\r\n this.buttonTrigger.setAttribute('aria-expanded', false);\r\n this.buttonTrigger.setAttribute('role', 'combobox');\r\n\r\n this.buttonTrigger.addEventListener('keydown', this.handleKeyDown);\r\n this.buttonTrigger.addEventListener('click', this.toggleExpansionState);\r\n\r\n if (this.inputTrigger) {\r\n this.inputTrigger.setAttribute('aria-expanded', false);\r\n this.inputTrigger.setAttribute('role', 'combobox');\r\n\r\n this.inputTrigger.addEventListener('keydown', this.handleKeyDown);\r\n this.inputTrigger.addEventListener('keyup', this.handleKeyUp);\r\n this.inputTrigger.addEventListener('change', (e) => e.stopPropagation());\r\n }\r\n\r\n this.listbox = this.parentElement.querySelector('smileid-combobox-listbox');\r\n\r\n this.options = Array.from(\r\n this.parentElement.querySelectorAll('smileid-combobox-option'),\r\n );\r\n this.options.forEach((node) => {\r\n node.addEventListener('combobox.option.select', this.handleSelection);\r\n });\r\n }\r\n\r\n disconnectedCallback() {\r\n this.buttonTrigger.removeEventListener('keydown', this.handleKeyDown);\r\n this.buttonTrigger.removeEventListener('click', this.toggleExpansionState);\r\n\r\n if (this.inputTrigger) {\r\n this.inputTrigger.removeEventListener('keydown', this.handleKeyDown);\r\n this.inputTrigger.removeEventListener('keyup', this.handleKeyUp);\r\n this.inputTrigger.removeEventListener('change', (e) =>\r\n e.stopPropagation(),\r\n );\r\n }\r\n\r\n if (this.options) {\r\n this.options.forEach((node) => {\r\n node.removeEventListener(\r\n 'combobox.option.select',\r\n this.handleSelection,\r\n );\r\n });\r\n }\r\n }\r\n\r\n handleKeyDown(event) {\r\n if (event.ctrlKey || event.shiftKey) {\r\n return;\r\n }\r\n\r\n const { key } = event;\r\n\r\n switch (key) {\r\n case 'Enter':\r\n case 'Space':\r\n case ' ':\r\n if (this.getAttribute('expanded') === 'true') {\r\n if (this.inputTrigger && (key === 'Space' || key === ' ')) {\r\n this.resetListbox();\r\n } else {\r\n event.preventDefault();\r\n const selectedOption = this.buttonTrigger.getAttribute(\r\n 'aria-activedescendant',\r\n );\r\n if (selectedOption) {\r\n document.getElementById(selectedOption).click();\r\n }\r\n }\r\n } else {\r\n event.preventDefault();\r\n this.toggleExpansionState();\r\n }\r\n break;\r\n case 'Esc':\r\n case 'Escape':\r\n event.preventDefault();\r\n if (this.getAttribute('expanded') === 'true') {\r\n this.toggleExpansionState();\r\n }\r\n break;\r\n case 'Down':\r\n case 'ArrowDown':\r\n event.preventDefault();\r\n if (this.getAttribute('expanded') !== 'true') {\r\n this.toggleExpansionState();\r\n this.focusListbox('First');\r\n } else {\r\n this.focusListbox('Down');\r\n }\r\n break;\r\n case 'Up':\r\n case 'ArrowUp':\r\n event.preventDefault();\r\n if (this.getAttribute('expanded') !== 'true') {\r\n this.toggleExpansionState();\r\n this.focusListbox('Last');\r\n } else {\r\n this.focusListbox('Up');\r\n }\r\n break;\r\n case 'Left':\r\n case 'ArrowLeft':\r\n case 'Right':\r\n case 'ArrowRight':\r\n case 'Home':\r\n case 'End':\r\n this.resetListbox();\r\n break;\r\n case 'Tab':\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n handleKeyUp(event) {\r\n const { key } = event;\r\n\r\n const isPrintableCharacter = (str) => str.length === 1 && str.match(/\\S| /);\r\n\r\n if (event.key === 'Escape' || event.key === 'Esc') {\r\n event.preventDefault();\r\n if (this.getAttribute('expanded') === 'true') {\r\n this.toggleExpansionState();\r\n } else if (this.inputTrigger) {\r\n this.inputTrigger.value = '';\r\n\r\n this.listbox.dispatchEvent(\r\n new CustomEvent('combobox.listbox.filter', { detail: '' }),\r\n );\r\n }\r\n }\r\n\r\n if (isPrintableCharacter(key) || key === 'Backspace') {\r\n this.resetListbox();\r\n this.filterListbox(event.target.value);\r\n }\r\n }\r\n\r\n toggleExpansionState() {\r\n const listboxIsExpanded = this.getAttribute('expanded') === 'true';\r\n this.setAttribute('expanded', !listboxIsExpanded);\r\n this.buttonTrigger.setAttribute('aria-expanded', !listboxIsExpanded);\r\n if (this.inputTrigger) {\r\n this.inputTrigger.setAttribute('aria-expanded', !listboxIsExpanded);\r\n }\r\n }\r\n\r\n handleSelection(event) {\r\n if (this.inputTrigger) {\r\n this.inputTrigger.value = event.detail.label;\r\n } else {\r\n this.buttonTrigger.textContent = event.detail.label;\r\n }\r\n\r\n this.toggleExpansionState();\r\n this.parentElement.dispatchEvent(\r\n new CustomEvent('combobox.change', {\r\n detail: {\r\n value: event.detail.value,\r\n },\r\n }),\r\n );\r\n }\r\n\r\n filterListbox(value) {\r\n if (this.getAttribute('expanded') !== 'true') {\r\n this.toggleExpansionState();\r\n }\r\n\r\n this.listbox.dispatchEvent(\r\n new CustomEvent('combobox.listbox.filter', { detail: value }),\r\n );\r\n }\r\n\r\n focusListbox(direction) {\r\n this.resetListbox();\r\n this.listbox.dispatchEvent(\r\n new CustomEvent('combobox.listbox.focus', {\r\n detail: {\r\n direction,\r\n },\r\n }),\r\n );\r\n }\r\n\r\n resetListbox() {\r\n this.listbox.dispatchEvent(new CustomEvent('combobox.listbox.reset'));\r\n }\r\n}\r\n\r\nclass ComboboxListbox extends HTMLElement {\r\n constructor() {\r\n super();\r\n\r\n this.handleFilter = this.handleFilter.bind(this);\r\n this.handleFocus = this.handleFocus.bind(this);\r\n this.handleReset = this.handleReset.bind(this);\r\n\r\n this.handleOptionSelection = this.handleOptionSelection.bind(this);\r\n }\r\n\r\n get emptyLabel() {\r\n return this.getAttribute('empty-label');\r\n }\r\n\r\n get emptyState() {\r\n return `\r\n <p id='empty-state' style=\"text-align: center;\">\r\n ${this.emptyLabel || 'No items'}\r\n </p>\r\n `;\r\n }\r\n\r\n connectedCallback() {\r\n this.setAttribute('role', 'listbox');\r\n this.setAttribute('id', generateId('listbox'));\r\n\r\n this.addEventListener('combobox.listbox.filter', this.handleFilter);\r\n this.addEventListener('combobox.listbox.focus', this.handleFocus);\r\n this.addEventListener('combobox.listbox.reset', this.handleReset);\r\n\r\n this.triggers = Array.from(\r\n this.parentElement.querySelectorAll(\r\n 'smileid-combobox-trigger input, smileid-combobox-trigger button',\r\n ),\r\n );\r\n this.triggers.forEach((node) =>\r\n node.setAttribute('aria-controls', this.getAttribute('id')),\r\n );\r\n\r\n this.optionNodes = Array.from(\r\n this.querySelectorAll('smileid-combobox-option'),\r\n );\r\n this.selectedNode =\r\n this.optionNodes.find(\r\n (node) =>\r\n !node.hasAttribute('hidden') && node.hasAttribute('aria-selected'),\r\n ) || this.optionNodes.filter((node) => !node.hasAttribute('hidden'))[0];\r\n this.selectedNode.setAttribute('tabindex', '0');\r\n\r\n this.optionNodes.forEach((node) => {\r\n node.addEventListener(\r\n 'combobox.option.select',\r\n this.handleOptionSelection,\r\n );\r\n });\r\n\r\n if (this.optionNodes.length === 0) {\r\n this.innerHTML = this.emptyState;\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n this.removeEventListener('combobox.listbox.filter', this.handleFilter);\r\n this.removeEventListener('combobox.listbox.focus', this.handleFocus);\r\n this.removeEventListener('combobox.listbox.reset', this.handleReset);\r\n this.optionNodes.forEach((node) => {\r\n node.removeEventListener(\r\n 'combobox.option.select',\r\n this.handleOptionSelection,\r\n );\r\n });\r\n }\r\n\r\n static get observedAttributes() {\r\n return ['search-term'];\r\n }\r\n\r\n attributeChangedCallback(name, oldValue, newValue) {\r\n switch (name) {\r\n case 'search-term':\r\n if (oldValue && !newValue) {\r\n this.optionNodes.forEach((node) => {\r\n node.removeAttribute('hidden');\r\n });\r\n } else if (newValue) {\r\n this.filterNodes(newValue);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n filterNodes(searchTerm) {\r\n this.optionNodes.forEach((node) => {\r\n const value = node.getAttribute('value').toLowerCase();\r\n const label = node.getAttribute('label').toLowerCase();\r\n\r\n const containsSearchTerm =\r\n value.includes(searchTerm.toLowerCase()) ||\r\n label.includes(searchTerm.toLowerCase());\r\n\r\n if (containsSearchTerm) {\r\n node.removeAttribute('hidden');\r\n } else {\r\n node.setAttribute('hidden', true);\r\n }\r\n });\r\n\r\n const optionsVisible = this.optionNodes.find(\r\n (node) => !node.hasAttribute('hidden'),\r\n );\r\n const emptyState = this.querySelector('#empty-state');\r\n\r\n if (!optionsVisible && !emptyState) {\r\n this.insertAdjacentHTML('afterbegin', this.emptyState);\r\n } else if (optionsVisible && emptyState) {\r\n this.removeChild(emptyState);\r\n }\r\n }\r\n\r\n handleFilter(event) {\r\n const searchTerm = event.detail;\r\n this.setAttribute('search-term', searchTerm);\r\n }\r\n\r\n handleFocus(event) {\r\n this.setSelected(event.detail.direction);\r\n }\r\n\r\n handleReset() {\r\n this.optionNodes.forEach((node) => node.setAttribute('tabindex', '-1'));\r\n }\r\n\r\n handleOptionSelection(event) {\r\n const inputTrigger = this.triggers.filter(\r\n (node) => node.tagName === 'INPUT',\r\n )[0];\r\n\r\n if (inputTrigger) {\r\n this.setAttribute('search-term', event.detail.label);\r\n }\r\n }\r\n\r\n setSelected(direction) {\r\n const visibleOptions = this.optionNodes.filter(\r\n (node) => !node.hasAttribute('hidden'),\r\n );\r\n this.selectedNode.setAttribute('tabindex', '0');\r\n const currentIndex = visibleOptions.findIndex(\r\n (node) => node === this.selectedNode,\r\n );\r\n const lastIndex = visibleOptions.length - 1;\r\n\r\n let nextIndex;\r\n switch (direction) {\r\n case 'First':\r\n nextIndex = 0;\r\n break;\r\n case 'Last':\r\n nextIndex = lastIndex;\r\n break;\r\n case 'Up':\r\n if (currentIndex === 0) {\r\n nextIndex = lastIndex;\r\n } else {\r\n nextIndex = currentIndex - 1;\r\n }\r\n break;\r\n default:\r\n if (currentIndex === lastIndex) {\r\n nextIndex = 0;\r\n } else {\r\n nextIndex = currentIndex + 1;\r\n }\r\n break;\r\n }\r\n\r\n if (currentIndex !== nextIndex) {\r\n this.swapSelected(this.selectedNode, visibleOptions[nextIndex]);\r\n }\r\n }\r\n\r\n swapSelected(currentNode, newNode) {\r\n currentNode.setAttribute('tabindex', '-1');\r\n newNode.setAttribute('tabindex', '0');\r\n\r\n this.selectedNode = newNode;\r\n\r\n // ACTION: ensure the new option is in view\r\n if (isScrollable(this)) {\r\n maintainScrollVisibility(this.selectedNode, this);\r\n }\r\n\r\n // ACTION: scroll into view if node is not visible\r\n if (!isElementInView(newNode)) {\r\n newNode.scrollIntoView({ behavior: 'smooth', block: 'nearest' });\r\n }\r\n\r\n this.triggers.forEach((node) =>\r\n node.setAttribute('aria-activedescendant', newNode.id),\r\n );\r\n }\r\n}\r\n\r\nclass ComboboxOption extends HTMLElement {\r\n connectedCallback() {\r\n this.setAttribute('role', 'option');\r\n this.setAttribute('tabindex', '-1');\r\n this.setAttribute('id', generateId('option'));\r\n\r\n this.options = Array.from(\r\n this.parentElement.querySelectorAll('smileid-combobox-option'),\r\n );\r\n this.addEventListener('click', this.select);\r\n }\r\n\r\n disconnectedCallback() {\r\n this.removeEventListener('click', this.select);\r\n }\r\n\r\n get value() {\r\n return this.getAttribute('value');\r\n }\r\n\r\n get label() {\r\n return this.getAttribute('label');\r\n }\r\n\r\n select() {\r\n const selectedOption = this.options.find((node) =>\r\n node.getAttribute('aria-selected'),\r\n );\r\n\r\n if (selectedOption) {\r\n selectedOption.removeAttribute('aria-selected');\r\n }\r\n\r\n this.setAttribute('aria-selected', true);\r\n\r\n this.dispatchEvent(\r\n new CustomEvent('combobox.option.select', {\r\n detail: {\r\n id: this.getAttribute('id'),\r\n label: this.label,\r\n value: this.value,\r\n },\r\n }),\r\n );\r\n }\r\n}\r\n\r\nconst Root = ComboboxRoot;\r\nconst Trigger = ComboboxTrigger;\r\nconst List = ComboboxListbox;\r\nconst Option = ComboboxOption;\r\n\r\nif (\r\n 'customElements' in window &&\r\n !window.customElements.get('smileid-combobox')\r\n) {\r\n window.customElements.define('smileid-combobox', Root);\r\n window.customElements.define('smileid-combobox-trigger', Trigger);\r\n window.customElements.define('smileid-combobox-listbox', List);\r\n window.customElements.define('smileid-combobox-option', Option);\r\n}\r\n\r\nexport { Root, Trigger, List, Option };\r\n","/**\r\n * The type of image submitted in the job request\r\n * @readonly\r\n * @enum {number}\r\n */\r\nexport const IMAGE_TYPE = {\r\n /** ID_CARD_BACK_IMAGE_BASE64 Base64 encoded back of ID card image (.jpg or .png) */\r\n ID_CARD_BACK_IMAGE_BASE64: 7,\r\n /** ID_CARD_BACK_IMAGE_FILE Back of ID card image in .png or .jpg file format */\r\n ID_CARD_BACK_IMAGE_FILE: 5,\r\n /** ID_CARD_IMAGE_BASE64 Base64 encoded ID card image (.png or .jpg) */\r\n ID_CARD_IMAGE_BASE64: 3,\r\n /** ID_CARD_IMAGE_FILE ID card image in .png or .jpg file format */\r\n ID_CARD_IMAGE_FILE: 1,\r\n /** LIVENESS_IMAGE_BASE64 Base64 encoded liveness image (.jpg or .png) */\r\n LIVENESS_IMAGE_BASE64: 6,\r\n /** LIVENESS_IMAGE_FILE Liveness image in .png or .jpg file format */\r\n LIVENESS_IMAGE_FILE: 4,\r\n /** SELFIE_IMAGE_BASE64 Base64 encoded selfie image (.png or .jpg) */\r\n SELFIE_IMAGE_BASE64: 2,\r\n /** SELFIE_IMAGE_FILE Selfie image in .png or .jpg file format */\r\n SELFIE_IMAGE_FILE: 0,\r\n};\r\n\r\nexport const DEFAULT_NO_OF_LIVENESS_FRAMES = 8;\r\nexport const PORTRAIT_ID_PREVIEW_WIDTH = 396;\r\nexport const PORTRAIT_ID_PREVIEW_HEIGHT = 527;\r\n","const typography = `\r\n .text-xs {\r\n font-size: 0.75rem;\r\n line-height: 1rem;\r\n }\r\n .text-sm {\r\n font-size: 0.875rem;\r\n line-height: 1.125rem;\r\n }\r\n .text-base {\r\n font-size: 1rem;\r\n line-height: 1rem;\r\n }\r\n .text-lg {\r\n font-size: 1.125rem;\r\n line-height: 1.75rem;\r\n }\r\n .text-xl {\r\n font-size: 1.25rem;\r\n line-height: 1.75rem;\r\n }\r\n .text-2xl {\r\n font-size: 1.5rem;\r\n line-height: 2rem;\r\n }\r\n .text-3xl {\r\n font-size: 1.875rem;\r\n line-height: 2.25rem;\r\n }\r\n .text-4xl {\r\n font-size: 2rem;\r\n line-height: 2.5rem;\r\n }\r\n .text-5xl {\r\n font-size: 2.25rem;\r\n line-height: 2.5rem;\r\n }\r\n .font-bold {\r\n font-weight: 700;\r\n }\r\n .font-semibold {\r\n font-weight: 600;\r\n }\r\n .font-medium {\r\n font-weight: 500;\r\n }\r\n .font-normal {\r\n font-weight: 400;\r\n }\r\n`;\r\n\r\nexport default typography;\r\n","import typography from './typography';\r\n\r\nconst styles = (\r\n themeColor,\r\n) => `<link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" />\r\n<link\r\n href=\"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&display=swap\"\r\n rel=\"stylesheet\"\r\n as=\"style\"\r\n/>\r\n<style>\r\n${typography}\r\n:host {\r\n --theme-color: ${themeColor || '#001096'};\r\n --color-active: #001096;\r\n --color-default: #2d2b2a;\r\n --color-disabled: #848282;\r\n --web-digital-blue: #001096;\r\n }\r\n\r\n * {\r\n font-family: \"DM Sans\", sans-serif;\r\n }\r\n\r\n [hidden] {\r\n display: none !important;\r\n }\r\n\r\n [disabled] {\r\n cursor: not-allowed !important;\r\n filter: grayscale(75%);\r\n }\r\n\r\n .visually-hidden {\r\n border: 0;\r\n clip: rect(1px 1px 1px 1px);\r\n clip: rect(1px, 1px, 1px, 1px);\r\n height: auto;\r\n margin: 0;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n white-space: nowrap;\r\n width: 1px;\r\n }\r\n\r\n img {\r\n height: auto;\r\n max-width: 100%;\r\n }\r\n\r\n video {\r\n background-color: black;\r\n }\r\n\r\n a {\r\n color: currentColor;\r\n text-decoration: none;\r\n }\r\n\r\n svg {\r\n max-width: 100%;\r\n }\r\n\r\n .color-gray {\r\n color: #797979;\r\n }\r\n\r\n .color-red {\r\n color: red;\r\n }\r\n\r\n .color-richblue {\r\n color: #4e6577;\r\n }\r\n\r\n .color-richblue-shade {\r\n color: #0e1b42;\r\n }\r\n\r\n .color-digital-blue {\r\n color: var(--web-digital-blue) !important;\r\n }\r\n\r\n .color-deep-blue {\r\n color: #001096;\r\n }\r\n\r\n .title-color {\r\n color: ${themeColor || '#001096'};\r\n }\r\n \r\n .theme-color {\r\n color: ${themeColor || '#001096'};\r\n }\r\n\r\n .center {\r\n text-align: center;\r\n margin-left: auto;\r\n margin-right: auto;\r\n }\r\n\r\n .font-size-small {\r\n font-size: 0.75rem;\r\n }\r\n\r\n .font-size-large {\r\n font-size: 1.5rem;\r\n }\r\n\r\n .text-transform-uppercase {\r\n text-transform: uppercase;\r\n }\r\n\r\n [id*=-\"screen\"] {\r\n min-block-size: 100%;\r\n }\r\n\r\n [data-variant~=\"full-width\"] {\r\n inline-size: 100%;\r\n }\r\n\r\n .flow > * + * {\r\n margin-top: var(--flow-space, 1rem);\r\n }\r\n\r\n .button {\r\n --button-color: ${themeColor || 'var(--active-color)'};\r\n -webkit-appearance: none;\r\n appearance: none;\r\n border-radius: 2.5rem;\r\n border: 0;\r\n background-color: transparent;\r\n color: #fff;\r\n cursor: pointer;\r\n display: block;\r\n font-size: 18px;\r\n font-weight: 600;\r\n padding: 0.75rem 1.5rem;\r\n text-align: center;\r\n }\r\n\r\n .button:hover,\r\n .button:focus,\r\n .button:active {\r\n --button-color: var(--color-default);\r\n }\r\n\r\n .button:disabled {\r\n --button-color: var(--color-disabled);\r\n }\r\n\r\n .button[data-variant~=\"solid\"] {\r\n background-color: var(--button-color);\r\n border: 2px solid var(--button-color);\r\n }\r\n\r\n .button[data-variant~=\"outline\"] {\r\n color: var(--button-color);\r\n border: 2px solid var(--button-color);\r\n }\r\n\r\n .button[data-variant~=\"ghost\"] {\r\n padding: 0px;\r\n color: var(--button-color);\r\n background-color: transparent;\r\n }\r\n\r\n .icon-btn {\r\n appearance: none;\r\n background: none;\r\n border: none;\r\n color: hsl(0deg 0% 94%);\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 4px 8px;\r\n }\r\n .justify-right {\r\n justify-content: end !important;\r\n }\r\n .nav {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n .back-wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .back-button-text {\r\n font-size: 11px;\r\n line-height: 11px;\r\n color: rgb(21, 31, 114);\r\n }\r\n\r\n\r\n .selfie-capture-review-image {\r\n overflow: hidden;\r\n aspect-ratio: 1/1;\r\n }\r\n\r\n #review-image {\r\n scale: 1.75;\r\n }\r\n\r\n @media (max-aspect-ratio: 1/1) {\r\n #review-image {\r\n transform: scaleX(-1) translateY(-10%);\r\n }\r\n }\r\n\r\n .tips,\r\n .powered-by {\r\n align-items: center;\r\n border-radius: 0.25rem;\r\n color: #4e6577;\r\n display: flex;\r\n justify-content: center;\r\n letter-spacing: 0.075em;\r\n }\r\n\r\n .powered-by {\r\n box-shadow: 0px 2.57415px 2.57415px rgba(0, 0, 0, 0.06);\r\n display: inline-flex;\r\n font-size: 0.5rem;\r\n }\r\n\r\n .tips {\r\n margin-left: auto;\r\n margin-right: auto;\r\n max-width: 17rem;\r\n }\r\n\r\n .tips > * + *,\r\n .powered-by > * + * {\r\n display: inline-block;\r\n margin-left: 0.5em;\r\n }\r\n\r\n .powered-by .company {\r\n color: #18406d;\r\n font-weight: 700;\r\n letter-spacing: 0.15rem;\r\n }\r\n\r\n .logo-mark {\r\n background-color: #004071;\r\n display: inline-block;\r\n padding: 0.25em 0.5em;\r\n }\r\n\r\n .logo-mark svg {\r\n height: auto;\r\n justify-self: center;\r\n width: 0.75em;\r\n }\r\n\r\n #document-capture-instructions-screen,\r\n #back-of-document-capture-instructions-screen {\r\n display: flex;\r\n flex-direction: column;\r\n max-block-size: 100%;\r\n max-inline-size: 40ch;\r\n justify-content: space-between;\r\n }\r\n\r\n #document-capture-instructions-screen header p {\r\n margin-block: 0 !important;\r\n }\r\n\r\n .description {\r\n color: var(--neutral-off-black, #2D2B2A);\r\n text-align: center;\r\n\r\n /* p */\r\n font-family: DM Sans;\r\n font-size: 0.875rem;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 18px;\r\n }\r\n\r\n .padding-bottom-2 {\r\n padding-bottom: 2rem;\r\n }\r\n\r\n .instructions-wrapper {\r\n display: inline-flex;\r\n flex-direction: column;\r\n gap: 1.5rem;\r\n margin-block-start: 2rem;\r\n margin-block-end: 2rem;\r\n }\r\n .instructions {\r\n display: flex;\r\n align-items: center;\r\n text-align: initial;\r\n }\r\n\r\n .instructions svg {\r\n flex-shrink: 0;\r\n margin-inline-end: 2rem;\r\n }\r\n\r\n .instructions p {\r\n margin-block: 0;\r\n }\r\n\r\n .instruction {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n }\r\n\r\n .instruction-body {\r\n font-size: 0.75rem;\r\n }\r\n\r\n .instruction-header {\r\n color: ${themeColor};\r\n }\r\n\r\n .flex-column {\r\n display: flex;\r\n flex-direction: column;\r\n }\r\n\r\n @keyframes spin {\r\n 0% {\r\n transform: translate3d(-50%, -50%, 0) rotate(0deg);\r\n }\r\n 100% {\r\n transform: translate3d(-50%, -50%, 0) rotate(360deg);\r\n }\r\n}\r\n\r\n.spinner {\r\n animation: 1.5s linear infinite spin;\r\n animation-play-state: inherit;\r\n border: solid 5px #cfd0d1;\r\n border-bottom-color: var(--color-active);\r\n border-radius: 50%;\r\n content: \"\";\r\n display: block;\r\n height: 25px;\r\n width: 25px;\r\n will-change: transform;\r\n position: relative;\r\n top: .675rem;\r\n left: 1.25rem;\r\n }\r\n\r\n</style>`;\r\n\r\nexport default styles;\r\n","class SmartCamera {\r\n static stream = null;\r\n\r\n static async getMedia(constraints) {\r\n SmartCamera.stream = await navigator.mediaDevices.getUserMedia(constraints);\r\n return SmartCamera.stream;\r\n }\r\n\r\n static environmentOptions = {\r\n facingMode: 'environment',\r\n height: {\r\n ideal: 1080,\r\n max: 1440,\r\n min: 720,\r\n },\r\n width: {\r\n ideal: 1920,\r\n max: 2560,\r\n min: 1280,\r\n },\r\n // NOTE: Special case for multi-camera Samsung devices (learnt from Acuant)\r\n // \"We found out that some triple camera Samsung devices (S10, S20, Note 20, etc) capture images blurry at edges.\r\n // Zooming to 2X, matching the telephoto lens, doesn't solve it completely but mitigates it.\"\r\n zoom: SmartCamera.isSamsungMultiCameraDevice() ? 2.0 : 1.0,\r\n };\r\n\r\n static stopMedia() {\r\n if (SmartCamera.stream) {\r\n SmartCamera.stream.getTracks().forEach((track) => track.stop());\r\n SmartCamera.stream = null;\r\n }\r\n }\r\n\r\n static async supportsAgentMode() {\r\n try {\r\n const devices = await navigator.mediaDevices.enumerateDevices();\r\n const videoDevices = devices.filter(\r\n (device) => device.kind === 'videoinput',\r\n );\r\n\r\n let hasBackCamera = false;\r\n\r\n videoDevices.forEach((device) => {\r\n // Check if the device label or device ID indicates a back camera\r\n if (\r\n device.label.toLowerCase().includes('back') ||\r\n device.label.toLowerCase().includes('rear')\r\n ) {\r\n hasBackCamera = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n\r\n return hasBackCamera;\r\n } catch (error) {\r\n console.warn('Error accessing media devices: ', error);\r\n return false;\r\n }\r\n }\r\n\r\n static isSamsungMultiCameraDevice() {\r\n const matchedModelNumber = navigator.userAgent.match(/SM-[N|G]\\d{3}/);\r\n if (!matchedModelNumber) {\r\n return false;\r\n }\r\n\r\n const modelNumber = parseInt(matchedModelNumber[0].match(/\\d{3}/)[0], 10);\r\n const smallerModelNumber = 970; // S10e\r\n return !Number.isNaN(modelNumber) && modelNumber >= smallerModelNumber;\r\n }\r\n\r\n static handleCameraError(e) {\r\n switch (e.name) {\r\n case 'NotAllowedError':\r\n case 'SecurityError':\r\n return `\r\n Looks like camera access was not granted, or was blocked by a browser\r\n level setting / extension. Please follow the prompt from the URL bar,\r\n or extensions, and enable access.\r\n You may need to refresh to start all over again\r\n `;\r\n case 'AbortError':\r\n return `\r\n Oops! Something happened, and we lost access to your stream.\r\n Please refresh to start all over again\r\n `;\r\n case 'NotReadableError':\r\n return `\r\n There seems to be a problem with your device's camera, or its connection.\r\n Please check this, and when resolved, try again. Or try another device.\r\n `;\r\n case 'NotFoundError':\r\n return `\r\n We are unable to find a video stream.\r\n You may need to refresh to start all over again\r\n `;\r\n case 'TypeError':\r\n return `\r\n This site is insecure, and as such cannot have access to your camera.\r\n Try to navigate to a secure version of this page, or contact the owner.\r\n `;\r\n default:\r\n return e.message;\r\n }\r\n }\r\n}\r\n\r\nexport default SmartCamera;\r\n","class Navigation extends HTMLElement {\r\n connectedCallback() {\r\n const shadow = this.attachShadow({ mode: 'open' });\r\n\r\n const style = document.createElement('style');\r\n style.textContent = `\r\n:host {\r\n display: flex;\r\n max-inline-size: 100%;\r\n justify-content: ${this.showBackButton ? 'space-between' : 'flex-end'};\r\n}\r\n\r\nbutton {\r\n --button-color: var(--color-default);\r\n --flow-space: 3rem;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background-color: transparent;\r\n border-radius: 2.5rem;\r\n border: none;\r\n color: #ffffff;\r\n cursor: pointer;\r\n display: inline-flex;\r\n font-size: 20px;\r\n font-weight: 500;\r\n inline-size: 100%;\r\n justify-content: center;\r\n letter-spacing: 0.05ch;\r\n line-height: 1;\r\n padding: 1rem 2.5rem;\r\n text-align: center;\r\n text-decoration: none;\r\n}\r\n\r\nbutton[data-type=\"icon\"] {\r\n align-items: center;\r\n background-color: transparent;\r\n border: 0;\r\n cursor: pointer;\r\n display: flex;\r\n padding: 0;\r\n width: auto;\r\n}\r\n\r\n:host::part(back-button) {\r\n display: flex;\r\n align-items: center;\r\n}\r\n\r\n:host::part(back-button-text) {\r\n line-height: 1;\r\n color: ${this.hasThemeColor ? this.themeColor : 'rgb(21, 31, 114)'} !important;\r\n}\r\n\r\n:host::part(close-button) {\r\n}\r\n\r\n.visually-hidden {\r\n clip: rect(0 0 0 0);\r\n clip-path: inset(50%);\r\n block-size: 1px;\r\n overflow: hidden;\r\n position: absolute;\r\n white-space: nowrap;\r\n inline-size: 1px;\r\n}\r\n `;\r\n\r\n const backButton = document.createElement('button');\r\n backButton.setAttribute('class', 'back-button');\r\n backButton.setAttribute('data-type', 'icon');\r\n backButton.setAttribute('part', 'back-button');\r\n backButton.setAttribute('type', 'button');\r\n backButton.innerHTML = `\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"40\"\r\n height=\"40\"\r\n viewBox=\"0 0 24 24\"\r\n fill=\"none\"\r\n >\r\n <path\r\n fill=\"#DBDBC4\"\r\n d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\"\r\n opacity=\".4\"\r\n />\r\n <path\r\n fill=\"${this.themeColor}\"\r\n d=\"M15.5 11.25h-5.19l1.72-1.72c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-3 3c-.29.29-.29.77 0 1.06l3 3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-1.72-1.72h5.19c.41 0 .75-.34.75-.75s-.34-.75-.75-.75Z\"\r\n />\r\n </svg>\r\n <span part=\"back-button-text\">Back</span>\r\n `;\r\n\r\n const closeButton = document.createElement('button');\r\n closeButton.setAttribute('class', 'close-button');\r\n closeButton.setAttribute('data-type', 'icon');\r\n closeButton.setAttribute('part', 'close-button');\r\n closeButton.setAttribute('type', 'button');\r\n closeButton.innerHTML = `\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 24 24\"\r\n width=\"40\"\r\n height=\"40\"\r\n fill=\"none\"\r\n >\r\n <path\r\n fill=\"#DBDBC4\"\r\n d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\"\r\n opacity=\".4\"\r\n />\r\n <path\r\n fill=\"#91190F\"\r\n d=\"m13.06 12 2.3-2.3c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-2.3 2.3-2.3-2.3a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.3 2.3-2.3 2.3c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l2.3-2.3 2.3 2.3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-2.3-2.3Z\"\r\n />\r\n </svg>\r\n <span class=\"visually-hidden\"\r\n >Close SmileIdentity Verification frame</span\r\n >\r\n `;\r\n\r\n shadow.appendChild(style);\r\n if (this.showBackButton) shadow.appendChild(backButton);\r\n shadow.appendChild(closeButton);\r\n\r\n // Back Button Controls\r\n this.backButton = backButton;\r\n this.backButton.addEventListener('click', () => this.handleBack());\r\n\r\n // Close Button Controls\r\n this.closeButton = closeButton;\r\n this.closeButton.addEventListener('click', () => this.handleClose());\r\n }\r\n\r\n disconnectedCallback() {\r\n this.backButton.removeEventListener('click', () => this.handleBack());\r\n this.closeButton.removeEventListener('click', () => this.handleClose());\r\n }\r\n\r\n handleBack() {\r\n this.dispatchEvent(new CustomEvent('navigation.back'));\r\n }\r\n\r\n handleClose() {\r\n this.dispatchEvent(new CustomEvent('navigation.close'));\r\n }\r\n\r\n get showBackButton() {\r\n return !this.hasAttribute('hide-back');\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#001096';\r\n }\r\n\r\n get hasThemeColor() {\r\n return this.getAttribute('theme-color')?.trim();\r\n }\r\n}\r\n\r\nif (\r\n 'customElements' in window &&\r\n !window.customElements.get('smileid-navigation')\r\n) {\r\n window.customElements.define('smileid-navigation', Navigation);\r\n}\r\n\r\nexport default Navigation;\r\n","import SmartCamera from '../../../../domain/camera/src/SmartCamera';\r\nimport styles from '../../../../styles/src/styles';\r\nimport '../../../navigation/src';\r\n\r\nfunction hasMoreThanNColors(data, n = 16) {\r\n const colors = new Set();\r\n for (let i = 0; i < Math.min(data.length, 10000); i += 4) {\r\n // eslint-disable-next-line no-bitwise\r\n colors.add((data[i] << 16) | (data[i + 1] << 8) | data[i + 2]);\r\n if (colors.size > n) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction templateString() {\r\n return `\r\n <style>\r\n .visually-hidden {\r\n border: 0;\r\n clip: rect(1px 1px 1px 1px);\r\n clip: rect(1px, 1px, 1px, 1px);\r\n height: auto;\r\n margin: 0;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n white-space: nowrap;\r\n width: 1px;\r\n }\r\n\r\n .mobile-camera-screen video {\r\n display: block;\r\n object-fit: cover;\r\n object-position: center;\r\n width: 100%;\r\n }\r\n\r\n .id-video.mobile-camera-screen {\r\n display: flex;\r\n align-items: stretch;\r\n justify-content: center;\r\n max-height: 300px;\r\n height: 15rem;\r\n width: 100%;\r\n overflow: visible;\r\n margin: 0 auto;\r\n }\r\n \r\n @media (max-width: 600px) {\r\n .section {\r\n width: 99%;\r\n height: 100vh;\r\n justify-content: center;\r\n }\r\n }\r\n\r\n\r\n\r\n #document-capture-screen,\r\n #back-of-document-capture-screen {\r\n block-size: 45rem;\r\n display: flex;\r\n flex-direction: column;\r\n max-block-size: 100%;\r\n max-inline-size: 40ch;\r\n }\r\n\r\n #document-capture-screen header p {\r\n margin-block: 0 !important;\r\n }\r\n\r\n .padding-bottom-2 {\r\n padding-bottom: 2rem;\r\n }\r\n @media (min-width: 600px) {\r\n video {\r\n object-fit: contain;\r\n -webkit-tap-highlight-color: transparent;\r\n content: normal;\r\n }\r\n \r\n .id-video {\r\n width: 99%;\r\n text-align: center;\r\n position: relative;\r\n overflow: hidden;\r\n }\r\n\r\n .id-video-container {\r\n margin: auto;\r\n padding: 0px;\r\n }\r\n }\r\n .id-video-container {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n }\r\n .id-video {\r\n width: 100%;\r\n text-align: center;\r\n position: relative;\r\n background: white;\r\n }\r\n .video-overlay {\r\n position: absolute;\r\n border-style: solid;\r\n border-color: rgba(0, 0, 0, 0.48);\r\n box-sizing: border-box;\r\n inset: 0px;\r\n }\r\n \r\n .video-overlay .inner-border {\r\n position: absolute;\r\n border-width: 0.25rem;\r\n border-color: #9394ab;\r\n border-style: solid;\r\n border-radius: 0.25rem;\r\n inset: -1px;\r\n }\r\n canvas {\r\n border-width: 0.25rem;\r\n border-color: #9394ab;\r\n border-style: solid;\r\n border-radius: 0.25rem;\r\n }\r\n \r\n .description {\r\n align-self: center;\r\n padding-bottom: 1.75rem;\r\n }\r\n .reset-margin-block {\r\n margin-block: 0;\r\n }\r\n .align-items-center {\r\n align-items: center;\r\n }\r\n .id-side {\r\n padding-bottom: 0.5rem;\r\n }\r\n \r\n .circle-progress {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 10rem;\r\n }\r\n\r\n .portrait .sticky {\r\n position: -webkit-sticky; /* Safari */\r\n position: sticky;\r\n bottom: 0;\r\n }\r\n .video-footer {\r\n background-color: rgba(255, 255, 255, 0.17);\r\n padding-top: 10px;\r\n }\r\n </style>\r\n ${styles(this.themeColor)}\r\n <div id='document-capture-screen' class='flow center flex-column'>\r\n <smileid-navigation theme-color='${this.themeColor}' ${this.showNavigation ? 'show-navigation' : ''} ${this.hideBack ? 'hide-back' : ''}></smileid-navigation>\r\n <h2 class='text-base font-bold title-color'>${this.documentName}</h2>\r\n <div class=\"circle-progress\" id=\"loader\">\r\n ${this.cameraError ? '' : '<p class=\"spinner\"></p>'}\r\n ${this.cameraError ? `<p style=\"--flow-space: 4rem\" class='color-red | center'>${this.cameraError}</p>` : '<p style=\"--flow-space: 4rem\">Checking permissions</p>'}\r\n </div>\r\n <div class='section | flow ${this.isPortraitCaptureView ? 'portrait' : 'landscape'}' ${this.cameraError ? 'hidden' : ''}>\r\n <div class='id-video-container'>\r\n <div class='id-video ${this.isPortraitCaptureView ? 'portrait' : 'landscape'}' hidden>\r\n </div>\r\n <div class='video-footer sticky'>\r\n <h2 class='text-base font-bold title-color reset-margin-block id-side'>${this.title}</h2>\r\n <h4 class='text-base font-normal title-color description reset-margin-block'>Make sure all corners are visible and there is no glare.</h4>\r\n <div class='actions' hidden>\r\n <button id='capture-id-image' class='button icon-btn | center' type='button'>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"70\" height=\"70\" viewBox=\"0 0 70 70\" fill=\"none\" aria-hidden=\"true\" focusable=\"false\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M35 70C54.33 70 70 54.33 70 35C70 15.67 54.33 0 35 0C15.67 0 0 15.67 0 35C0 54.33 15.67 70 35 70ZM61 35C61 49.3594 49.3594 61 35 61C20.6406 61 9 49.3594 9 35C9 20.6406 20.6406 9 35 9C49.3594 9 61 20.6406 61 35ZM65 35C65 51.5685 51.5685 65 35 65C18.4315 65 5 51.5685 5 35C5 18.4315 18.4315 5 35 5C51.5685 5 65 18.4315 65 35Z\" fill=\"${this.themeColor}\"/>\r\n </svg>\r\n <span class='visually-hidden'>Capture Document</span>\r\n </button>\r\n </div>\r\n ${this.hideAttribution ? '' : '<powered-by-smile-id></powered-by-smile-id>'}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `;\r\n}\r\n\r\nconst documentCaptureScale = 0.6;\r\n\r\nclass DocumentCapture extends HTMLElement {\r\n constructor() {\r\n super();\r\n this.templateString = templateString.bind(this);\r\n this.render = () => this.templateString();\r\n\r\n this.attachShadow({ mode: 'open' });\r\n this.IdSides = {\r\n back: 'Back',\r\n front: 'Front',\r\n };\r\n }\r\n\r\n connectedCallback() {\r\n const template = document.createElement('template');\r\n template.innerHTML = this.render();\r\n this.shadowRoot.innerHTML = '';\r\n this.shadowRoot.appendChild(template.content.cloneNode(true));\r\n this.setUpEventListeners();\r\n }\r\n\r\n async getUserMedia() {\r\n if (SmartCamera.stream) {\r\n return;\r\n }\r\n if (!this.hasAttribute('data-camera-error')) return;\r\n\r\n try {\r\n await SmartCamera.getMedia({\r\n audio: false,\r\n video: {\r\n ...SmartCamera.environmentOptions,\r\n aspectRatio: { ideal: 16 / 9 },\r\n },\r\n });\r\n } catch (error) {\r\n console.error(error.constraint);\r\n console.error(error.message);\r\n }\r\n\r\n this.handleIDStream(SmartCamera.stream);\r\n }\r\n\r\n _captureIDImage() {\r\n const imageDetails = this._drawIDImage();\r\n this._stopIDVideoStream();\r\n\r\n this.dispatchEvent(\r\n new CustomEvent('document-capture.publish', {\r\n detail: {\r\n ...imageDetails,\r\n },\r\n }),\r\n );\r\n }\r\n\r\n _drawIDImage(video = this._IDVideo) {\r\n const canvas = document.createElement('canvas');\r\n if (this.isPortraitCaptureView) {\r\n canvas.width = video.videoWidth;\r\n canvas.height = (canvas.width * 16) / 9;\r\n\r\n const previewCanvas = document.createElement('canvas');\r\n previewCanvas.width = canvas.width;\r\n previewCanvas.height = canvas.height;\r\n\r\n this.updatePortraitId(canvas, video, 1, 1);\r\n this.updatePortraitId(previewCanvas, video);\r\n const image = canvas.toDataURL('image/jpeg');\r\n const previewImage = previewCanvas.toDataURL('image/jpeg');\r\n return {\r\n image,\r\n originalHeight: canvas.height,\r\n originalWidth: canvas.width,\r\n previewImage,\r\n ...this.idCardRegion,\r\n };\r\n }\r\n\r\n canvas.width = 2240;\r\n canvas.height = 1260;\r\n\r\n const height = canvas.width / (video.videoWidth / video.videoHeight);\r\n canvas.height = height;\r\n\r\n const previewCanvas = document.createElement('canvas');\r\n previewCanvas.height = canvas.height;\r\n previewCanvas.width = canvas.width;\r\n const isPortrait = video.videoWidth < video.videoHeight;\r\n if (isPortrait) {\r\n const intermediateCanvas = document.createElement('canvas');\r\n previewCanvas.height = canvas.width / 1.75;\r\n canvas.width = 2240;\r\n canvas.height = canvas.width / 1.77;\r\n this._capturePortraitToLandscapeImage(intermediateCanvas, video);\r\n this._drawLandscapeImageFromCanvas(canvas, intermediateCanvas, 1, 1);\r\n this._drawLandscapeImageFromCanvas(previewCanvas, intermediateCanvas);\r\n } else {\r\n this._drawLandscapeImage(canvas, video, 1, 1);\r\n this._drawLandscapeImage(previewCanvas, video);\r\n }\r\n const image = canvas.toDataURL('image/jpeg');\r\n\r\n const previewImage = previewCanvas.toDataURL('image/jpeg');\r\n return {\r\n image,\r\n originalHeight: canvas.height,\r\n originalWidth: canvas.width,\r\n previewImage,\r\n ...this.idCardRegion,\r\n };\r\n }\r\n\r\n _drawImage(canvas, enableImageTests = true, video = SmartCamera.stream) {\r\n this.resetErrorMessage();\r\n const context = canvas.getContext('2d');\r\n\r\n context.drawImage(\r\n video,\r\n 0,\r\n 0,\r\n video.videoWidth,\r\n video.videoHeight,\r\n 0,\r\n 0,\r\n canvas.width,\r\n canvas.height,\r\n );\r\n\r\n if (enableImageTests) {\r\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\r\n\r\n const hasEnoughColors = hasMoreThanNColors(imageData.data);\r\n\r\n if (hasEnoughColors) {\r\n return context;\r\n }\r\n throw new Error(\r\n 'Unable to capture webcam images - Please try another device',\r\n );\r\n } else {\r\n return context;\r\n }\r\n }\r\n\r\n handleIDStream(stream) {\r\n try {\r\n const videoExists = this.shadowRoot.querySelector('canvas');\r\n if (videoExists) {\r\n // remove canvas\r\n videoExists.remove();\r\n }\r\n let video = null;\r\n let canvas = null;\r\n video = document.createElement('video');\r\n canvas = document.createElement('canvas');\r\n const videoContainer = this.shadowRoot.querySelector(\r\n '.id-video-container',\r\n );\r\n\r\n video.muted = true;\r\n video.setAttribute('muted', 'true');\r\n\r\n video.autoplay = true;\r\n video.playsInline = true;\r\n if ('srcObject' in video) {\r\n video.srcObject = stream;\r\n } else {\r\n video.src = window.URL.createObjectURL(stream);\r\n }\r\n\r\n canvas.width = videoContainer.clientWidth;\r\n canvas.height = (videoContainer.clientWidth * 9) / 16;\r\n if (this.isPortraitCaptureView) {\r\n canvas.height = (videoContainer.clientWidth * 16) / 9;\r\n }\r\n\r\n video.onloadedmetadata = () => {\r\n video.play();\r\n\r\n this.shadowRoot.querySelector('#loader').hidden = true;\r\n this.shadowRoot.querySelector('.id-video').hidden = false;\r\n this.shadowRoot.querySelector('.actions').hidden = false;\r\n if (!videoExists) {\r\n videoContainer.prepend(canvas);\r\n }\r\n };\r\n\r\n const onVideoStart = () => {\r\n if (video.paused || video.ended) return;\r\n video.removeEventListener('playing', onVideoStart);\r\n const aspectRatio = video.videoWidth / video.videoHeight;\r\n const portrait = aspectRatio < 1;\r\n if (this.isPortraitCaptureView) {\r\n this.updatePortraitId(canvas, video);\r\n requestAnimationFrame(onVideoStart);\r\n return;\r\n }\r\n\r\n if (portrait) {\r\n videoContainer.classList.add('mobile-camera-screen');\r\n const intermediateCanvas = document.createElement('canvas');\r\n this._capturePortraitToLandscapeImage(intermediateCanvas, video);\r\n this._drawLandscapeImageFromCanvas(canvas, intermediateCanvas);\r\n } else {\r\n this._drawLandscapeImage(canvas, video);\r\n }\r\n requestAnimationFrame(onVideoStart);\r\n };\r\n\r\n video.addEventListener('playing', onVideoStart);\r\n\r\n this._IDStream = stream;\r\n this._IDVideo = video;\r\n } catch (error) {\r\n this.setAttribute(\r\n 'data-camera-error',\r\n SmartCamera.handleCameraError(error),\r\n );\r\n if (error.name !== 'AbortError') {\r\n console.error(error);\r\n }\r\n SmartCamera.stopMedia();\r\n }\r\n }\r\n\r\n _drawLandscapeImage(\r\n canvas,\r\n video = this._IDVideo,\r\n scaleHeight = documentCaptureScale,\r\n scaleWidth = documentCaptureScale,\r\n ) {\r\n const heightScaleFactor = this.height\r\n ? this.height / video.videoHeight\r\n : scaleHeight;\r\n const widthScaleFactor = this.width\r\n ? this.width / video.videoWidth\r\n : scaleWidth;\r\n const scaleHeightOffset = (1 - scaleHeight) / 2;\r\n const scaleWidthOffset = (1 - scaleWidth) / 2;\r\n const width = video.videoWidth * widthScaleFactor;\r\n const height = video.videoHeight * heightScaleFactor;\r\n const startX = video.videoWidth * scaleWidthOffset;\r\n const startY = video.videoHeight * scaleHeightOffset;\r\n\r\n canvas\r\n .getContext('2d')\r\n .drawImage(\r\n video,\r\n startX,\r\n startY,\r\n width,\r\n height,\r\n 0,\r\n 0,\r\n canvas.width,\r\n canvas.height,\r\n );\r\n }\r\n\r\n _capturePortraitToLandscapeImage(canvas, video = this._IDVideo) {\r\n const { videoHeight, videoWidth } = video;\r\n const cropWidth = videoWidth;\r\n const cropHeight = (videoWidth * 9) / 16; // convert to landscape aspect ratio\r\n const startX = 0;\r\n const startY = (videoHeight - cropHeight) / 2;\r\n\r\n canvas.width = cropWidth;\r\n canvas.height = cropHeight;\r\n\r\n canvas\r\n .getContext('2d')\r\n .drawImage(\r\n video,\r\n startX,\r\n startY,\r\n cropWidth,\r\n cropHeight,\r\n 0,\r\n 0,\r\n canvas.width,\r\n canvas.height,\r\n );\r\n }\r\n\r\n _drawLandscapeImageFromCanvas(\r\n canvas,\r\n sourceCanvas,\r\n scaleHeight = documentCaptureScale,\r\n scaleWidth = documentCaptureScale,\r\n ) {\r\n const heightScaleFactor = this.height\r\n ? this.height / sourceCanvas.height\r\n : scaleHeight;\r\n const widthScaleFactor = this.width\r\n ? this.width / sourceCanvas.width\r\n : scaleWidth;\r\n const scaleHeightOffset = (1 - scaleHeight) / 2;\r\n const scaleWidthOffset = (1 - scaleWidth) / 2;\r\n const width = sourceCanvas.width * widthScaleFactor;\r\n const height = sourceCanvas.height * heightScaleFactor;\r\n const startX = sourceCanvas.width * scaleWidthOffset;\r\n const startY = sourceCanvas.height * scaleHeightOffset;\r\n\r\n canvas\r\n .getContext('2d')\r\n .drawImage(\r\n sourceCanvas,\r\n startX,\r\n startY,\r\n width,\r\n height,\r\n 0,\r\n 0,\r\n canvas.width,\r\n canvas.height,\r\n );\r\n }\r\n\r\n _drawPortraitToLandscapeImage(canvas, video = this._IDVideo) {\r\n const { videoHeight, videoWidth } = video;\r\n const cropWidth = 600;\r\n const cropHeight = 400;\r\n\r\n canvas.width = cropWidth;\r\n canvas.height = cropHeight;\r\n\r\n const startX = (videoWidth - cropWidth) / 2;\r\n const startY = (videoHeight - cropHeight) / 2;\r\n\r\n canvas\r\n .getContext('2d')\r\n .drawImage(\r\n video,\r\n startX,\r\n startY,\r\n cropWidth,\r\n cropHeight,\r\n 0,\r\n 0,\r\n canvas.width,\r\n canvas.height,\r\n );\r\n }\r\n\r\n updatePortraitId(\r\n destinationCanvas,\r\n video = this._IDVideo,\r\n scaleHeight = documentCaptureScale,\r\n scaleWidth = documentCaptureScale,\r\n ) {\r\n const { videoWidth, videoHeight } = video;\r\n\r\n if (videoWidth && videoHeight) {\r\n const intermediateCanvas = document.createElement('canvas');\r\n const aspectRatio = 9 / 16;\r\n let cropWidth;\r\n let cropHeight;\r\n let offsetX;\r\n let offsetY;\r\n\r\n if (videoWidth / videoHeight > aspectRatio) {\r\n // we scale the canvas to portrait aspect ratio\r\n cropHeight = videoHeight;\r\n cropWidth = cropHeight * aspectRatio;\r\n offsetX = (videoWidth - cropWidth) / 2;\r\n offsetY = 0;\r\n } else {\r\n // video already has portrait aspect ratio\r\n cropWidth = videoWidth;\r\n cropHeight = cropWidth;\r\n offsetX = 0;\r\n offsetY = 0;\r\n }\r\n\r\n intermediateCanvas.height = cropHeight;\r\n intermediateCanvas.width = cropWidth;\r\n // draw the video frame onto the intermediate canvas\r\n intermediateCanvas\r\n .getContext('2d')\r\n .drawImage(\r\n video,\r\n offsetX,\r\n offsetY,\r\n cropWidth,\r\n cropHeight,\r\n 0,\r\n 0,\r\n intermediateCanvas.width,\r\n intermediateCanvas.height,\r\n );\r\n\r\n // draw the intermediate canvas onto the destination canvas\r\n // we scale image based on the scaleHeight and scaleWidth\r\n const heightScaleFactor = this.height\r\n ? this.height / cropWidth\r\n : scaleHeight;\r\n const widthScaleFactor = this.width\r\n ? this.width / cropHeight\r\n : scaleWidth;\r\n const scaleHeightOffset = (1 - scaleHeight) / 2;\r\n const scaleWidthOffset = (1 - scaleWidth) / 2;\r\n const width = cropWidth * widthScaleFactor;\r\n const height = cropHeight * heightScaleFactor;\r\n const startX = cropWidth * scaleWidthOffset;\r\n const startY = cropHeight * scaleHeightOffset;\r\n destinationCanvas\r\n .getContext('2d')\r\n .drawImage(\r\n intermediateCanvas,\r\n startX,\r\n startY,\r\n width,\r\n height,\r\n 0,\r\n 0,\r\n destinationCanvas.width,\r\n destinationCanvas.height,\r\n );\r\n }\r\n }\r\n\r\n _stopIDVideoStream(stream = this._IDStream) {\r\n stream.getTracks().forEach((track) => track.stop());\r\n }\r\n\r\n setUpEventListeners() {\r\n this.captureIDImage = this.shadowRoot.querySelector('#capture-id-image');\r\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\r\n\r\n if (SmartCamera.stream) {\r\n this.handleIDStream(SmartCamera.stream);\r\n }\r\n\r\n this.navigation.addEventListener('navigation.back', () => {\r\n this.handleBackEvents();\r\n });\r\n\r\n this.navigation.addEventListener('navigation.close', () => {\r\n this.handleCloseEvents();\r\n });\r\n\r\n this.captureIDImage.addEventListener('click', () => {\r\n this._captureIDImage();\r\n });\r\n\r\n this.getUserMedia();\r\n }\r\n\r\n get hideBack() {\r\n return this.hasAttribute('hide-back-to-host');\r\n }\r\n\r\n get showNavigation() {\r\n return this.hasAttribute('show-navigation');\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#001096';\r\n }\r\n\r\n get hideAttribution() {\r\n return this.hasAttribute('hide-attribution');\r\n }\r\n\r\n get documentCaptureModes() {\r\n return this.getAttribute('document-capture-modes') || 'camera';\r\n }\r\n\r\n get supportBothCaptureModes() {\r\n const value = this.documentCaptureModes;\r\n return value.includes('camera') && value.includes('upload');\r\n }\r\n\r\n get title() {\r\n return (\r\n this.getAttribute('title') ||\r\n `${this.IdSides[this.sideOfId]} of ${this.documentName}`\r\n );\r\n }\r\n\r\n get height() {\r\n return this.getAttribute('height');\r\n }\r\n\r\n get width() {\r\n return this.getAttribute('width');\r\n }\r\n\r\n get hidden() {\r\n return this.getAttribute('hidden');\r\n }\r\n\r\n get sideOfId() {\r\n return (this.getAttribute('side-of-id') || 'front').toLowerCase();\r\n }\r\n\r\n get isFrontOfId() {\r\n return this.sideOfId === 'front';\r\n }\r\n\r\n get isBackOfId() {\r\n return !this.isFrontOfId;\r\n }\r\n\r\n get documentType() {\r\n return this.getAttribute('document-type') || '';\r\n }\r\n\r\n get documentName() {\r\n return this.getAttribute('document-name') || 'Document';\r\n }\r\n\r\n get isPortraitCaptureView() {\r\n return this.getAttribute('document-type') === 'GREEN_BOOK';\r\n }\r\n\r\n get cameraError() {\r\n return this.getAttribute('data-camera-error');\r\n }\r\n\r\n static get observedAttributes() {\r\n return [\r\n 'data-camera-error',\r\n 'data-camera-ready',\r\n 'document-name',\r\n 'document-type',\r\n 'hidden',\r\n 'hide-back-to-host',\r\n 'show-navigation',\r\n 'title',\r\n ];\r\n }\r\n\r\n attributeChangedCallback(name) {\r\n switch (name) {\r\n case 'data-camera-error':\r\n case 'data-camera-ready':\r\n case 'document-name':\r\n case 'document-type':\r\n case 'hidden':\r\n case 'title':\r\n this.connectedCallback();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n handleBackEvents() {\r\n this.dispatchEvent(new CustomEvent('document-capture.cancelled'));\r\n SmartCamera.stopMedia();\r\n }\r\n\r\n handleCloseEvents() {\r\n this.dispatchEvent(new CustomEvent('document-capture.close'));\r\n SmartCamera.stopMedia();\r\n }\r\n}\r\n\r\nif ('customElements' in window && !customElements.get('document-capture')) {\r\n window.customElements.define('document-capture', DocumentCapture);\r\n}\r\n\r\nexport default DocumentCapture;\r\n","import styles from '../../../../styles/src/styles';\r\nimport '../../../navigation/src';\r\n\r\nfunction templateString() {\r\n return `\r\n <style>\r\n .retake-photo.button[data-variant~=\"ghost\"] {\r\n color: #FF5805;\r\n }\r\n\r\n\r\n @media (max-width: 600px) {\r\n .id-camera-screen {\r\n width: 100%;\r\n height: 100vh;\r\n }\r\n \r\n .section {\r\n width: 100%;\r\n height: 100vh;\r\n justify-content: center;\r\n }\r\n }\r\n \r\n .id-image-container {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 1.75rem;\r\n }\r\n\r\n .id-image {\r\n width: 100%;\r\n text-align: center;\r\n position: relative;\r\n background: white;\r\n }\r\n img {\r\n height: 100%;\r\n min-height: 100px;\r\n width: 98%;\r\n }\r\n\r\n .action-buttons {\r\n width: 80%;\r\n }\r\n\r\n\r\n .icon-btn {\r\n appearance: none;\r\n background: none;\r\n border: none;\r\n color: hsl(0deg 0% 94%);\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 4px 8px;\r\n }\r\n .justify-right {\r\n justify-content: end !important;\r\n }\r\n .nav {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n .back-wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .back-button-text {\r\n font-size: 11px;\r\n line-height: 11px;\r\n color: rgb(21, 31, 114);\r\n }\r\n\r\n\r\n\r\n .tips,\r\n .powered-by {\r\n align-items: center;\r\n border-radius: 0.25rem;\r\n color: #4e6577;\r\n display: flex;\r\n justify-content: center;\r\n letter-spacing: 0.075em;\r\n }\r\n\r\n .powered-by {\r\n box-shadow: 0px 2.57415px 2.57415px rgba(0, 0, 0, 0.06);\r\n display: inline-flex;\r\n font-size: 0.5rem;\r\n }\r\n\r\n .tips {\r\n margin-left: auto;\r\n margin-right: auto;\r\n max-width: 17rem;\r\n }\r\n\r\n .tips > * + *,\r\n .powered-by > * + * {\r\n display: inline-block;\r\n margin-left: 0.5em;\r\n }\r\n\r\n .powered-by .company {\r\n color: #18406d;\r\n font-weight: 700;\r\n letter-spacing: 0.15rem;\r\n }\r\n\r\n .logo-mark {\r\n background-color: #004071;\r\n display: inline-block;\r\n padding: 0.25em 0.5em;\r\n }\r\n\r\n .logo-mark svg {\r\n height: auto;\r\n justify-self: center;\r\n width: 0.75em;\r\n }\r\n \r\n #document-capture-review-screen {\r\n block-size: 45rem;\r\n display: flex;\r\n flex-direction: column;\r\n max-block-size: 100%;\r\n max-inline-size: 40ch;\r\n }\r\n\r\n #document-capture-review-screen .id-image-container.landscape {\r\n height: auto;\r\n }\r\n\r\n #document-capture-review-screen header p {\r\n margin-block: 0 !important;\r\n }\r\n\r\n .description {\r\n color: var(--neutral-off-black, #2D2B2A);\r\n text-align: center;\r\n\r\n /* p */\r\n font-family: DM Sans;\r\n font-size: 0.875rem;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 18px;\r\n }\r\n\r\n .padding-bottom-2 {\r\n padding-bottom: 2rem;\r\n }\r\n img {\r\n border-width: 0.25rem;\r\n border-color: #9394ab;\r\n border-style: solid;\r\n border-radius: 0.25rem;\r\n }\r\n\r\n .instructions-wrapper {\r\n display: inline-flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n gap: 2rem;\r\n margin-block-start: 2rem;\r\n margin-block-end: 4rem;\r\n }\r\n .instructions {\r\n display: flex;\r\n align-items: center;\r\n text-align: initial;\r\n }\r\n\r\n .instructions svg {\r\n flex-shrink: 0;\r\n margin-inline-end: 2rem;\r\n }\r\n\r\n .instructions p {\r\n margin-block: 0;\r\n }\r\n\r\n .instruction-body {\r\n font-size: 0.75rem;\r\n }\r\n\r\n h1 {\r\n color: var(--web-digital-blue, #001096);\r\n text-align: center;\r\n\r\n /* h1 */\r\n font-size: 1.5rem;\r\n font-style: normal;\r\n font-weight: 700;\r\n line-height: 36px; /* 150% */\r\n }\r\n\r\n .p2 {\r\n font-size: 1rem;\r\n font-style: normal;\r\n font-weight: 500;\r\n line-height: 1rem;\r\n }\r\n\r\n .instruction-header {\r\n color: var(--web-digital-blue, #001096);\r\n }\r\n\r\n .h2 {\r\n font-size: 1rem;\r\n font-style: normal;\r\n font-weight: 700;\r\n line-height: 1.5rem;\r\n }\r\n </style>\r\n ${styles(this.themeColor)}\r\n <div id='document-capture-review-screen' class='flow center'>\r\n <smileid-navigation ${this.showNavigation ? 'show-navigation' : ''} hide-back></smileid-navigation>\r\n <h1 class=\"header-title title-color\">\r\n Is the document clear and readable?\r\n </h1>\r\n <p class=\"description\">Make sure all corners of the document \r\n are visible and there is no glare</p>\r\n <div class='section | flow'>\r\n <div class='id-image-container'>\r\n <div class='id-image'>\r\n <div class='video-overlay'></div>\r\n ${this.imageSrc ? `<img alt='your ID card' id='document-capture-review-image' src='${this.imageSrc}' />` : ''}\r\n </div>\r\n <div class='flow action-buttons'>\r\n <button data-variant='solid full-width' class='button' type='button' id='select-id-image'>\r\n Yes, my ID is readable\r\n </button>\r\n <button data-variant='ghost full-width' class='button retake-photo' type='button' id='re-capture-id-image'>\r\n No, retake photo\r\n </button>\r\n </div>\r\n </div>\r\n\r\n ${\r\n this.hideAttribution\r\n ? ''\r\n : `\r\n <powered-by-smile-id></powered-by-smile-id>\r\n `\r\n }\r\n </div>\r\n </div>\r\n `;\r\n}\r\n\r\nclass IdReview extends HTMLElement {\r\n constructor() {\r\n super();\r\n this.templateString = templateString.bind(this);\r\n this.render = () => this.templateString();\r\n\r\n this.attachShadow({ mode: 'open' });\r\n }\r\n\r\n connectedCallback() {\r\n const template = document.createElement('template');\r\n template.innerHTML = this.render();\r\n this.shadowRoot.innerHTML = '';\r\n this.shadowRoot.appendChild(template.content.cloneNode(true));\r\n this.setUpEventListeners();\r\n }\r\n\r\n static get observedAttributes() {\r\n return ['hide-back-to-host', 'show-navigation', 'data-image'];\r\n }\r\n\r\n get hideBack() {\r\n return this.hasAttribute('hide-back-to-host');\r\n }\r\n\r\n get showNavigation() {\r\n return this.hasAttribute('show-navigation');\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#001096';\r\n }\r\n\r\n get hideAttribution() {\r\n return this.hasAttribute('hide-attribution');\r\n }\r\n\r\n get imageSrc() {\r\n return this.getAttribute('data-image');\r\n }\r\n\r\n get title() {\r\n return this.getAttribute('title') || 'Submit Front of ID';\r\n }\r\n\r\n handleBackEvents() {\r\n this.dispatchEvent(new CustomEvent('document-capture-review.cancelled'));\r\n }\r\n\r\n handleCloseEvents() {\r\n this.dispatchEvent(new CustomEvent('document-capture-review.close'));\r\n }\r\n\r\n attributeChangedCallback(name) {\r\n switch (name) {\r\n case 'data-image':\r\n case 'hide-back-to-host':\r\n case 'show-navigation':\r\n this.shadowRoot.innerHTML = this.render();\r\n this.setUpEventListeners();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n setUpEventListeners() {\r\n this.selectIDImage = this.shadowRoot.querySelector('#select-id-image');\r\n this.reCaptureIDImage = this.shadowRoot.querySelector(\r\n '#re-capture-id-image',\r\n );\r\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\r\n this.navigation.addEventListener('navigation.back', () => {\r\n this.handleBackEvents();\r\n });\r\n\r\n this.navigation.addEventListener('navigation.close', () => {\r\n this.handleCloseEvents();\r\n });\r\n\r\n this.selectIDImage.addEventListener('click', () => {\r\n this.dispatchEvent(\r\n new CustomEvent('document-capture-review.accepted', {\r\n detail: {},\r\n }),\r\n );\r\n });\r\n this.reCaptureIDImage.addEventListener('click', () => {\r\n this.dispatchEvent(\r\n new CustomEvent('document-capture-review.rejected', {\r\n detail: {},\r\n }),\r\n );\r\n });\r\n }\r\n}\r\n\r\nif (\r\n 'customElements' in window &&\r\n !customElements.get('document-capture-review')\r\n) {\r\n window.customElements.define('document-capture-review', IdReview);\r\n}\r\n\r\nexport default IdReview;\r\n","class SmartFileUpload {\r\n static memoryLimit = 10240000;\r\n\r\n static supportedTypes = ['image/jpeg', 'image/png'];\r\n\r\n static getHumanSize(numberOfBytes) {\r\n // Approximate to the closest prefixed unit\r\n const units = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n const exponent = Math.min(\r\n Math.floor(Math.log(numberOfBytes) / Math.log(1024)),\r\n units.length - 1,\r\n );\r\n const approx = numberOfBytes / 1024 ** exponent;\r\n const output =\r\n exponent === 0\r\n ? `${numberOfBytes} bytes`\r\n : `${approx.toFixed(0)} ${units[exponent]}`;\r\n\r\n return output;\r\n }\r\n\r\n static getData(file) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n\r\n reader.onload = (e) => {\r\n resolve(e.target.result);\r\n };\r\n reader.onerror = () => {\r\n reject(\r\n new Error(\r\n 'An error occurred reading the file. Please check the file, and try again',\r\n ),\r\n );\r\n };\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n\r\n static async retrieve(files) {\r\n if (files.length > 1) {\r\n throw new Error('Only one file upload is permitted at a time');\r\n }\r\n\r\n const file = files[0];\r\n\r\n if (!SmartFileUpload.supportedTypes.includes(file.type)) {\r\n throw new Error(\r\n 'Unsupported file format. Please ensure that you are providing a JPG or PNG image',\r\n );\r\n }\r\n\r\n if (file.size > SmartFileUpload.memoryLimit) {\r\n throw new Error(\r\n `${file.name} is too large. Please ensure that the file is less than ${SmartFileUpload.getHumanSize(SmartFileUpload.memoryLimit)}.`,\r\n );\r\n }\r\n\r\n const imageAsDataUrl = await SmartFileUpload.getData(file);\r\n\r\n return imageAsDataUrl;\r\n }\r\n}\r\n\r\nexport default SmartFileUpload;\r\n","import SmartFileUpload from '../../../../domain/file-upload/src/SmartFileUpload';\r\nimport styles from '../../../../styles/src/styles';\r\nimport '../../../navigation/src';\r\n\r\nfunction frontDocumentIcon() {\r\n return `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"173\" height=\"103\" viewBox=\"0 0 173 103\" fill=\"none\">\r\n <path d=\"M15.3799 21.2759C15.3799 16.8576 18.9616 13.2759 23.3799 13.2759H64.2764C68.6947 13.2759 72.2764 16.8576 72.2764 21.2759V73.5517C72.2764 77.97 68.6947 81.5517 64.2764 81.5517H23.3799C18.9616 81.5517 15.3799 77.97 15.3799 73.5517V21.2759Z\" fill=\"#F6C969\"/>\r\n <g filter=\"url(#filter0_d_1281_4127)\">\r\n <path d=\"M60.2117 80.8741C60.2117 80.8741 49.3661 81.5134 44.1952 81.5134C39.0242 81.5134 28.1787 80.8741 28.1787 80.8741C28.1787 80.8741 34.6256 78.4515 35.3307 76.8701C35.7001 76.0962 35.8344 73.2362 35.9015 70.578C35.9687 67.9199 35.9015 65.5646 35.9015 65.5646L44.1952 65.6992L52.4888 65.5646C52.4888 65.5646 52.3881 72.0921 52.7575 75.3223C52.7813 75.8503 52.8832 76.372 53.0597 76.8701C53.7984 78.4515 60.2117 80.8741 60.2117 80.8741Z\" fill=\"url(#paint0_linear_1281_4127)\"/>\r\n <path d=\"M31.3688 47.126C31.3688 47.126 29.1191 46.3184 28.4812 46.6549C27.8432 46.9914 26.8695 48.6737 27.0038 50.6589C27.0373 51.1636 27.4403 53.6872 29.1527 54.9321C29.6564 55.2686 30.1265 56.951 31.2345 57.1865C32.3426 57.422 32.5105 56.6818 32.5105 56.6818L31.3688 47.126Z\" fill=\"url(#paint1_linear_1281_4127)\"/>\r\n <path style=\"mix-blend-mode:multiply\" opacity=\"0.6\" d=\"M31.906 51.6683C31.906 51.6683 30.6637 47.7652 28.9848 48.3035C27.3059 48.8419 27.8767 51.6009 27.8767 51.6009C27.8767 51.6009 28.2461 49.0438 29.7571 49.8849C30.5629 50.2887 29.2534 51.029 29.2534 52.072C29.2534 53.1151 30.16 54.36 30.4622 53.6871C30.7644 53.0142 30.9659 50.6252 31.906 51.6683Z\" fill=\"url(#paint2_linear_1281_4127)\"/>\r\n <path style=\"mix-blend-mode:multiply\" opacity=\"0.6\" d=\"M30.462 53.687C30.7306 52.7785 30.932 51.399 31.4357 51.5335C31.5749 51.5809 31.6986 51.6655 31.7933 51.7781C31.888 51.8908 31.9501 52.0273 31.973 52.1729L31.8386 51.1971C31.8386 51.1971 30.8985 49.683 29.7568 50.9952\" fill=\"url(#paint3_linear_1281_4127)\"/>\r\n <path d=\"M57.3575 47.126C57.3575 47.126 59.6407 46.3184 60.2787 46.6549C60.9167 46.9914 61.8568 48.6737 61.7561 50.6589C61.7225 51.1636 61.286 53.6872 59.5736 54.9321C59.1035 55.2686 58.5998 56.951 57.4918 57.1865C56.3837 57.422 56.2158 56.6818 56.2158 56.6818L57.3575 47.126Z\" fill=\"url(#paint4_linear_1281_4127)\"/>\r\n <path style=\"mix-blend-mode:multiply\" opacity=\"0.6\" d=\"M56.8203 51.6683C56.8203 51.6683 58.0627 47.7652 59.7415 48.3035C61.4204 48.8419 60.8832 51.6009 60.8832 51.6009C60.8832 51.6009 60.5138 49.0438 58.9693 49.8849C58.1634 50.2887 59.4729 51.029 59.4729 52.072C59.4729 53.1151 58.5663 54.36 58.2641 53.6871C57.9619 53.0142 57.7605 50.6252 56.8203 51.6683Z\" fill=\"url(#paint5_linear_1281_4127)\"/>\r\n <path style=\"mix-blend-mode:multiply\" opacity=\"0.6\" d=\"M58.264 56.749C58.1297 56.9509 57.0552 57.5229 56.4844 56.9509C55.9135 56.3789 56.6858 52.7113 56.753 52.173C56.753 52.173 56.5515 56.177 56.8201 56.3452C56.4172 56.1097 58.2304 56.7826 58.264 56.749Z\" fill=\"url(#paint6_linear_1281_4127)\"/>\r\n <path d=\"M64.4757 81.9845H23.9141L32.5771 78.6534L33.5508 75.457C34.2424 75.3865 34.938 75.364 35.6326 75.3897L35.4312 76.5673C35.4312 76.5673 37.6473 78.8553 44.1949 78.8553C50.0038 78.8553 52.9586 76.5673 52.9586 76.5673L52.7908 75.5243V75.3897C53.4854 75.364 54.181 75.3865 54.8725 75.457L55.8463 78.6534L64.4757 81.9845Z\" fill=\"#151F72\"/>\r\n <path style=\"mix-blend-mode:multiply\" opacity=\"0.6\" d=\"M33.5509 75.4568C33.383 75.9951 37.7817 79.8309 44.0607 79.8309C48.0849 79.8356 51.9521 78.2662 54.839 75.4568L55.8128 78.6533C55.8128 78.6533 48.7615 81.5133 43.7249 81.5133C38.6883 81.5133 32.5771 78.6533 32.5771 78.6533L33.5509 75.4568Z\" fill=\"url(#paint7_linear_1281_4127)\"/>\r\n <path d=\"M56.115 37.1326C51.4478 29.6629 38.8898 29.4947 33.2487 35.854C27.6077 42.2133 30.8983 45.1406 31.1334 54.6292C31.3348 60.0464 31.5699 63.613 35.0955 66.6076C36.1386 67.4711 37.2258 68.2797 38.3525 69.0302C43.7249 73.0679 51.4813 69.5349 53.5296 66.473C57.2231 63.6467 56.8537 60.7866 57.2902 54.7301C57.626 46.8903 60.0436 43.2227 56.115 37.1326Z\" fill=\"url(#paint8_linear_1281_4127)\"/>\r\n </g>\r\n <g filter=\"url(#filter1_d_1281_4127)\">\r\n <mask id=\"path-12-inside-1_1281_4127\" fill=\"white\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 0C10.268 0 4 6.26801 4 14V80.8276C4 88.5596 10.268 94.8276 18 94.8276H155C162.732 94.8276 169 88.5596 169 80.8276V14C169 6.26801 162.732 0 155 0H18ZM23.7858 14.4876C19.3676 14.4876 15.7858 18.0693 15.7858 22.4876V72.3401C15.7858 76.7584 19.3676 80.3401 23.7858 80.3401H62.7858C67.2041 80.3401 70.7858 76.7584 70.7858 72.3401V22.4876C70.7858 18.0693 67.2041 14.4876 62.7858 14.4876H23.7858Z\"/>\r\n </mask>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 0C10.268 0 4 6.26801 4 14V80.8276C4 88.5596 10.268 94.8276 18 94.8276H155C162.732 94.8276 169 88.5596 169 80.8276V14C169 6.26801 162.732 0 155 0H18ZM23.7858 14.4876C19.3676 14.4876 15.7858 18.0693 15.7858 22.4876V72.3401C15.7858 76.7584 19.3676 80.3401 23.7858 80.3401H62.7858C67.2041 80.3401 70.7858 76.7584 70.7858 72.3401V22.4876C70.7858 18.0693 67.2041 14.4876 62.7858 14.4876H23.7858Z\" fill=\"#F9F0E7\"/>\r\n <path d=\"M5.5 14C5.5 7.09644 11.0964 1.5 18 1.5V-1.5C9.43959 -1.5 2.5 5.43958 2.5 14H5.5ZM5.5 80.8276V14H2.5V80.8276H5.5ZM18 93.3276C11.0964 93.3276 5.5 87.7311 5.5 80.8276H2.5C2.5 89.388 9.43958 96.3276 18 96.3276V93.3276ZM155 93.3276H18V96.3276H155V93.3276ZM167.5 80.8276C167.5 87.7311 161.904 93.3276 155 93.3276V96.3276C163.56 96.3276 170.5 89.388 170.5 80.8276H167.5ZM167.5 14V80.8276H170.5V14H167.5ZM155 1.5C161.904 1.5 167.5 7.09644 167.5 14H170.5C170.5 5.43959 163.56 -1.5 155 -1.5V1.5ZM18 1.5H155V-1.5H18V1.5ZM17.2858 22.4876C17.2858 18.8977 20.196 15.9876 23.7858 15.9876V12.9876C18.5391 12.9876 14.2858 17.2409 14.2858 22.4876H17.2858ZM17.2858 72.3401V22.4876H14.2858V72.3401H17.2858ZM23.7858 78.8401C20.196 78.8401 17.2858 75.9299 17.2858 72.3401H14.2858C14.2858 77.5868 18.5391 81.8401 23.7858 81.8401V78.8401ZM62.7858 78.8401H23.7858V81.8401H62.7858V78.8401ZM69.2858 72.3401C69.2858 75.9299 66.3757 78.8401 62.7858 78.8401V81.8401C68.0325 81.8401 72.2858 77.5868 72.2858 72.3401H69.2858ZM69.2858 22.4876V72.3401H72.2858V22.4876H69.2858ZM62.7858 15.9876C66.3757 15.9876 69.2858 18.8977 69.2858 22.4876H72.2858C72.2858 17.2409 68.0325 12.9876 62.7858 12.9876V15.9876ZM23.7858 15.9876H62.7858V12.9876H23.7858V15.9876Z\" fill=\"#001096\" mask=\"url(#path-12-inside-1_1281_4127)\"/>\r\n </g>\r\n <rect x=\"86.501\" y=\"23.7069\" width=\"64.8214\" height=\"1.42241\" rx=\"0.711207\" fill=\"#2D2B2A\"/>\r\n <rect x=\"86.501\" y=\"34.2433\" width=\"64.8214\" height=\"1.42241\" rx=\"0.711207\" fill=\"#2D2B2A\"/>\r\n <rect x=\"86.501\" y=\"44.1212\" width=\"32.7381\" height=\"1.42241\" rx=\"0.711207\" fill=\"#2D2B2A\"/>\r\n <rect x=\"27.5713\" y=\"86.2667\" width=\"32.7381\" height=\"2.63621\" rx=\"1.3181\" fill=\"#DBDBC4\"/>\r\n <defs>\r\n <filter id=\"filter0_d_1281_4127\" x=\"19.9141\" y=\"31.2932\" width=\"48.5615\" height=\"58.6913\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\r\n <feOffset dy=\"4\"/>\r\n <feGaussianBlur stdDeviation=\"2\"/>\r\n <feComposite in2=\"hardAlpha\" operator=\"out\"/>\r\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"/>\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1281_4127\"/>\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_1281_4127\" result=\"shape\"/>\r\n </filter>\r\n <filter id=\"filter1_d_1281_4127\" x=\"0\" y=\"0\" width=\"173\" height=\"102.828\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\r\n <feOffset dy=\"4\"/>\r\n <feGaussianBlur stdDeviation=\"2\"/>\r\n <feComposite in2=\"hardAlpha\" operator=\"out\"/>\r\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"/>\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1281_4127\"/>\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_1281_4127\" result=\"shape\"/>\r\n </filter>\r\n <linearGradient id=\"paint0_linear_1281_4127\" x1=\"44.1986\" y1=\"81.4966\" x2=\"44.1986\" y2=\"65.578\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FFB09A\"/>\r\n <stop offset=\"0.21\" stop-color=\"#FF9B8D\"/>\r\n <stop offset=\"0.47\" stop-color=\"#FF8781\"/>\r\n <stop offset=\"0.74\" stop-color=\"#FF7B79\"/>\r\n <stop offset=\"1\" stop-color=\"#FF7777\"/>\r\n </linearGradient>\r\n <linearGradient id=\"paint1_linear_1281_4127\" x1=\"29.7538\" y1=\"57.2504\" x2=\"29.7538\" y2=\"46.5708\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FFB09A\"/>\r\n <stop offset=\"0.21\" stop-color=\"#FF9B8D\"/>\r\n <stop offset=\"0.47\" stop-color=\"#FF8781\"/>\r\n <stop offset=\"0.74\" stop-color=\"#FF7B79\"/>\r\n <stop offset=\"1\" stop-color=\"#FF7777\"/>\r\n </linearGradient>\r\n <linearGradient id=\"paint2_linear_1281_4127\" x1=\"29.888\" y1=\"53.8755\" x2=\"29.888\" y2=\"48.2632\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FFE7D8\"/>\r\n <stop offset=\"0.29\" stop-color=\"#FABDC9\"/>\r\n <stop offset=\"0.59\" stop-color=\"#F597BB\"/>\r\n <stop offset=\"0.84\" stop-color=\"#F280B3\"/>\r\n <stop offset=\"0.99\" stop-color=\"#F177B0\"/>\r\n </linearGradient>\r\n <linearGradient id=\"paint3_linear_1281_4127\" x1=\"30.8683\" y1=\"53.6937\" x2=\"30.8683\" y2=\"50.4636\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FFE7D8\"/>\r\n <stop offset=\"0.99\" stop-color=\"#CE77F1\"/>\r\n </linearGradient>\r\n <linearGradient id=\"paint4_linear_1281_4127\" x1=\"58.9759\" y1=\"57.2504\" x2=\"58.9759\" y2=\"46.5708\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FFB09A\"/>\r\n <stop offset=\"0.21\" stop-color=\"#FF9B8D\"/>\r\n <stop offset=\"0.47\" stop-color=\"#FF8781\"/>\r\n <stop offset=\"0.74\" stop-color=\"#FF7B79\"/>\r\n <stop offset=\"1\" stop-color=\"#FF7777\"/>\r\n </linearGradient>\r\n <linearGradient id=\"paint5_linear_1281_4127\" x1=\"58.845\" y1=\"53.8755\" x2=\"58.845\" y2=\"48.2632\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FFE7D8\"/>\r\n <stop offset=\"0.29\" stop-color=\"#FABDC9\"/>\r\n <stop offset=\"0.59\" stop-color=\"#F597BB\"/>\r\n <stop offset=\"0.84\" stop-color=\"#F280B3\"/>\r\n <stop offset=\"0.99\" stop-color=\"#F177B0\"/>\r\n </linearGradient>\r\n <linearGradient id=\"paint6_linear_1281_4127\" x1=\"54.5402\" y1=\"54.6965\" x2=\"59.1672\" y2=\"54.6965\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FFE7D8\"/>\r\n <stop offset=\"0.29\" stop-color=\"#FABDC9\"/>\r\n <stop offset=\"0.59\" stop-color=\"#F597BB\"/>\r\n <stop offset=\"0.84\" stop-color=\"#F280B3\"/>\r\n <stop offset=\"0.99\" stop-color=\"#F177B0\"/>\r\n </linearGradient>\r\n <linearGradient id=\"paint7_linear_1281_4127\" x1=\"44.195\" y1=\"75.4635\" x2=\"44.195\" y2=\"81.4965\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#151F72\"/>\r\n <stop offset=\"0.19\" stop-color=\"#151F72\"/>\r\n <stop offset=\"0.54\" stop-color=\"#7FCBF5\"/>\r\n <stop offset=\"0.82\" stop-color=\"#C574EC\"/>\r\n <stop offset=\"0.99\" stop-color=\"#FBD1EE\"/>\r\n </linearGradient>\r\n <linearGradient id=\"paint8_linear_1281_4127\" x1=\"30.0589\" y1=\"51.0693\" x2=\"58.3379\" y2=\"51.0693\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FFB09A\"/>\r\n <stop offset=\"0.06\" stop-color=\"#FF9B89\"/>\r\n <stop offset=\"0.13\" stop-color=\"#FF8A7B\"/>\r\n <stop offset=\"0.23\" stop-color=\"#FF7F71\"/>\r\n <stop offset=\"0.36\" stop-color=\"#FF786C\"/>\r\n <stop offset=\"0.71\" stop-color=\"#FF766A\"/>\r\n </linearGradient>\r\n </defs>\r\n</svg>`;\r\n}\r\n\r\nfunction backDocumentIcon() {\r\n return `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"182\" height=\"108\" viewBox=\"0 0 182 108\" fill=\"none\">\r\n <path d=\"M143 68C143 65.7909 144.791 64 147 64H164C166.209 64 168 65.7909 168 68V89C168 91.2091 166.209 93 164 93H147C144.791 93 143 91.2091 143 89V68Z\" fill=\"#F6C969\"/>\r\n <g filter=\"url(#filter0_d_1281_4284)\">\r\n <mask id=\"path-2-inside-1_1281_4284\" fill=\"white\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 0C10.268 0 4 6.26801 4 14V86C4 93.732 10.268 100 18 100H164C171.732 100 178 93.732 178 86V14C178 6.26801 171.732 0 164 0H18ZM148 67C145.791 67 144 68.7909 144 71V85C144 87.2091 145.791 89 148 89H162C164.209 89 166 87.2091 166 85V71C166 68.7909 164.209 67 162 67H148Z\"/>\r\n </mask>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 0C10.268 0 4 6.26801 4 14V86C4 93.732 10.268 100 18 100H164C171.732 100 178 93.732 178 86V14C178 6.26801 171.732 0 164 0H18ZM148 67C145.791 67 144 68.7909 144 71V85C144 87.2091 145.791 89 148 89H162C164.209 89 166 87.2091 166 85V71C166 68.7909 164.209 67 162 67H148Z\" fill=\"#F9F0E7\"/>\r\n <path d=\"M5.5 14C5.5 7.09644 11.0964 1.5 18 1.5V-1.5C9.43959 -1.5 2.5 5.43959 2.5 14H5.5ZM5.5 86V14H2.5V86H5.5ZM18 98.5C11.0964 98.5 5.5 92.9036 5.5 86H2.5C2.5 94.5604 9.43959 101.5 18 101.5V98.5ZM164 98.5H18V101.5H164V98.5ZM176.5 86C176.5 92.9036 170.904 98.5 164 98.5V101.5C172.56 101.5 179.5 94.5604 179.5 86H176.5ZM176.5 14V86H179.5V14H176.5ZM164 1.5C170.904 1.5 176.5 7.09644 176.5 14H179.5C179.5 5.43959 172.56 -1.5 164 -1.5V1.5ZM18 1.5H164V-1.5H18V1.5ZM145.5 71C145.5 69.6193 146.619 68.5 148 68.5V65.5C144.962 65.5 142.5 67.9624 142.5 71H145.5ZM145.5 85V71H142.5V85H145.5ZM148 87.5C146.619 87.5 145.5 86.3807 145.5 85H142.5C142.5 88.0376 144.962 90.5 148 90.5V87.5ZM162 87.5H148V90.5H162V87.5ZM164.5 85C164.5 86.3807 163.381 87.5 162 87.5V90.5C165.038 90.5 167.5 88.0376 167.5 85H164.5ZM164.5 71V85H167.5V71H164.5ZM162 68.5C163.381 68.5 164.5 69.6193 164.5 71H167.5C167.5 67.9624 165.038 65.5 162 65.5V68.5ZM148 68.5H162V65.5H148V68.5Z\" fill=\"#001096\" mask=\"url(#path-2-inside-1_1281_4284)\"/>\r\n </g>\r\n <rect x=\"134\" y=\"10\" width=\"3\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\r\n <rect x=\"148.733\" y=\"10\" width=\"2\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\r\n <rect x=\"154\" y=\"10\" width=\"2\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\r\n <rect x=\"166\" y=\"10\" width=\"1.3\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\r\n <rect x=\"157\" y=\"10\" width=\"2\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\r\n <rect x=\"141.8\" y=\"10\" width=\"5\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\r\n <rect x=\"161\" y=\"10\" width=\"4\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\r\n <rect x=\"137.767\" y=\"10\" width=\"1\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\r\n <rect x=\"151.2\" y=\"10\" width=\"1\" height=\"9\" rx=\"0.5\" fill=\"#DBDBC4\"/>\r\n <rect x=\"20.25\" y=\"32.25\" width=\"98.5\" height=\"0.5\" rx=\"0.25\" fill=\"#2D2B2A\" stroke=\"#2D2B2A\" stroke-width=\"0.5\"/>\r\n <rect x=\"20.25\" y=\"41.75\" width=\"98.5\" height=\"0.5\" rx=\"0.25\" fill=\"#2D2B2A\" stroke=\"#2D2B2A\" stroke-width=\"0.5\"/>\r\n <rect x=\"20.25\" y=\"51.25\" width=\"49.5\" height=\"0.5\" rx=\"0.25\" fill=\"#2D2B2A\" stroke=\"#2D2B2A\" stroke-width=\"0.5\"/>\r\n <rect x=\"20.25\" y=\"75.25\" width=\"49.5\" height=\"0.5\" rx=\"0.25\" fill=\"#2D2B2A\" stroke=\"#2D2B2A\" stroke-width=\"0.5\"/>\r\n <rect x=\"20.25\" y=\"84.75\" width=\"49.5\" height=\"0.5\" rx=\"0.25\" fill=\"#2D2B2A\" stroke=\"#2D2B2A\" stroke-width=\"0.5\"/>\r\n <defs>\r\n <filter id=\"filter0_d_1281_4284\" x=\"0\" y=\"0\" width=\"182\" height=\"108\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\r\n <feOffset dy=\"4\"/>\r\n <feGaussianBlur stdDeviation=\"2\"/>\r\n <feComposite in2=\"hardAlpha\" operator=\"out\"/>\r\n <feColorMatrix type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"/>\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1281_4284\"/>\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_1281_4284\" result=\"shape\"/>\r\n </filter>\r\n </defs>\r\n</svg>`;\r\n}\r\n\r\nfunction templateString() {\r\n return `\r\n <div id=\"document-capture-instructions-screen\" class=\"flow center\">\r\n <section className=\"main\">\r\n <smileid-navigation theme-color='${this.themeColor}' ${this.showNavigation ? 'show-navigation' : ''} ${this.hideBack ? 'hide-back' : ''}></smileid-navigation>\r\n <header>\r\n ${this.isFrontOfId ? frontDocumentIcon() : backDocumentIcon()}\r\n <h1 class='text-2xl title-color font-bold'>${this.title}</h1>\r\n <p class=\"description text-sm font-normal\">\r\n We'll use it to verify your identity.\r\n </p>\r\n <p class=\"description padding-bottom-2\">\r\n Please follow the instructions below.\r\n </p>\r\n </header>\r\n <div class=\"flow instructions-wrapper\">\r\n <div class=\"instructions\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"38\"\r\n height=\"38\"\r\n viewBox=\"0 0 38 38\"\r\n fill=\"none\"\r\n >\r\n <g clip-path=\"url(#clip0_604_670)\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M19.6064 4.5419H18.394L18.9912 0L19.6064 4.5419Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M26.7541 6.77667L25.7046 6.17048L28.4913 2.54239L26.7541 6.77667Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M31.8298 12.2957L31.2236 11.2462L35.4489 9.49097L31.8298 12.2957Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M33.4674 19.6062V18.3938L38.0003 18.9909L33.4674 19.6062Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M31.2236 26.7538L31.8298 25.7043L35.4579 28.491L31.2236 26.7538Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M25.7046 31.8295L26.7541 31.2233L28.5094 35.4486L25.7046 31.8295Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M18.394 33.4671H19.6064L19.0093 38L18.394 33.4671Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M11.2464 31.2233L12.2959 31.8295L9.50928 35.4576L11.2464 31.2233Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M6.17068 25.7043L6.77687 26.7538L2.55164 28.509L6.17068 25.7043Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M4.54215 18.3938V19.6062L0.000244141 19.009L4.54215 18.3938Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M6.77689 11.2462L6.1707 12.2957L2.5426 9.50903L6.77689 11.2462Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M12.296 6.17047L11.2464 6.77666L9.49121 2.55142L12.296 6.17047Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_604_670\">\r\n <rect\r\n width=\"38\"\r\n height=\"38\"\r\n fill=\"white\"\r\n transform=\"translate(0.000244141)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div class=\"instruction\">\r\n <p class=\"instruction-header font-bold text-base\">Good Light</p>\r\n <p class=\"instruction-body text-xs font-medium\">\r\n Make sure the image is taken in a well-lit environment where the ID document is easy to read.\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"instructions\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"38\"\r\n height=\"36\"\r\n viewBox=\"0 0 38 36\"\r\n fill=\"none\"\r\n >\r\n <g clip-path=\"url(#clip0_604_672)\">\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M36.2874 27.3719H1.65906L1.95178 28H35.9947L36.2874 27.3719Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M35.2032 29.4766H2.75403C2.84799 29.6529 2.95641 29.8292 3.07928 30.0055H34.878L35.2032 29.4766Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M33.7396 31.5813H4.20679L4.54288 32H33.4035L33.7396 31.5813Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M31.7989 33.6859H6.14746L6.49439 33.9945H31.452L31.7989 33.6859Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M29.0993 35.7906H8.84705L9.18314 36H28.7632L29.0993 35.7906Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_604_672\">\r\n <rect\r\n width=\"37.9459\"\r\n height=\"36\"\r\n fill=\"white\"\r\n transform=\"translate(0.000244141)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div>\r\n <p class=\"instruction-header font-bold text-base\">Clear Image</p>\r\n <p class=\"instruction-body text-xs font-medium\">\r\n Hold your camera steady so the words on the ID are not blurry.\r\n </p>\r\n </div>\r\n </div>\r\n <div id=\"error\" class='color-red'>\r\n </div>\r\n </div>\r\n </section>\r\n <section className=\"footer\">\r\n <div class='flow'>\r\n ${\r\n this.supportBothCaptureModes || this.documentCaptureModes === 'camera'\r\n ? `\r\n <button data-variant='solid full-width' class='button' type='button' id='take-photo'>\r\n Take Photo\r\n </button>\r\n `\r\n : ''\r\n }\r\n ${\r\n this.supportBothCaptureModes || this.documentCaptureModes === 'upload'\r\n ? `\r\n <label id='upload-photo-label' data-variant='${\r\n this.supportBothCaptureModes ? 'outline' : 'solid'\r\n }' class='button'>\r\n <input type='file' hidden onclick='this.value=null;' id='upload-photo' name='document' accept='image/png, image/jpeg' />\r\n <span>Upload Photo</span>\r\n </label>\r\n `\r\n : ''\r\n }\r\n</div>\r\n${this.hideAttribution ? '' : '<powered-by-smile-id></powered-by-smile-id>'}\r\n </section>\r\n </div>\r\n ${styles(this.themeColor)}\r\n `;\r\n}\r\n\r\nclass DocumentInstruction extends HTMLElement {\r\n constructor() {\r\n super();\r\n this.templateString = templateString.bind(this);\r\n this.render = () => this.templateString();\r\n\r\n this.attachShadow({ mode: 'open' });\r\n }\r\n\r\n connectedCallback() {\r\n const template = document.createElement('template');\r\n template.innerHTML = this.render();\r\n\r\n this.shadowRoot.appendChild(template.content.cloneNode(true));\r\n\r\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\r\n this.takeDocumentPhotoButton = this.shadowRoot.querySelector('#take-photo');\r\n this.uploadDocumentPhotoButton =\r\n this.shadowRoot.querySelector('#upload-photo');\r\n\r\n this.navigation.addEventListener('navigation.back', () => {\r\n this.handleBackEvents();\r\n });\r\n\r\n this.navigation.addEventListener('navigation.close', () => {\r\n this.handleCloseEvents();\r\n });\r\n\r\n if (this.takeDocumentPhotoButton) {\r\n this.takeDocumentPhotoButton.addEventListener('click', () => {\r\n this.dispatchEvent(\r\n new CustomEvent('document-capture-instructions.capture'),\r\n );\r\n });\r\n }\r\n\r\n if (this.uploadDocumentPhotoButton) {\r\n this.uploadDocumentPhotoButton.addEventListener(\r\n 'change',\r\n async (event) => {\r\n this.shadowRoot.querySelector('#error').innerHTML = '';\r\n try {\r\n const { files } = event.target;\r\n\r\n // validate file, and convert file to data url\r\n const fileData = await SmartFileUpload.retrieve(files);\r\n\r\n this.dispatchEvent(\r\n new CustomEvent('document-capture-instructions.upload', {\r\n detail: { image: fileData, previewImage: fileData },\r\n }),\r\n );\r\n } catch (error) {\r\n this.shadowRoot.querySelector('#error').innerHTML = error.message;\r\n }\r\n },\r\n );\r\n }\r\n }\r\n\r\n get hideBack() {\r\n return this.hasAttribute('hide-back-to-host');\r\n }\r\n\r\n get showNavigation() {\r\n return this.hasAttribute('show-navigation');\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#001096';\r\n }\r\n\r\n get hideAttribution() {\r\n return this.hasAttribute('hide-attribution');\r\n }\r\n\r\n get documentCaptureModes() {\r\n return this.getAttribute('document-capture-modes') || 'camera';\r\n }\r\n\r\n get supportBothCaptureModes() {\r\n const value = this.documentCaptureModes;\r\n return value.includes('camera') && value.includes('upload');\r\n }\r\n\r\n get title() {\r\n return this.getAttribute('title') || 'Submit Front of ID';\r\n }\r\n\r\n get sideOfId() {\r\n return (this.getAttribute('side-of-id') || 'front').toLowerCase();\r\n }\r\n\r\n get isFrontOfId() {\r\n return this.sideOfId === 'front';\r\n }\r\n\r\n get isBackOfId() {\r\n return !this.isFrontOfId;\r\n }\r\n\r\n handleBackEvents() {\r\n this.dispatchEvent(\r\n new CustomEvent('document-capture-instructions.cancelled'),\r\n );\r\n }\r\n\r\n handleCloseEvents() {\r\n this.dispatchEvent(new CustomEvent('document-capture-instructions.close'));\r\n }\r\n}\r\n\r\nif (\r\n 'customElements' in window &&\r\n !customElements.get('document-capture-instructions')\r\n) {\r\n window.customElements.define(\r\n 'document-capture-instructions',\r\n DocumentInstruction,\r\n );\r\n}\r\n\r\nexport default DocumentInstruction;\r\n","import { IMAGE_TYPE } from '../../../domain/constants/src/Constants';\r\nimport styles from '../../../styles/src/styles';\r\nimport SmartCamera from '../../../domain/camera/src/SmartCamera';\r\n\r\nimport './document-capture';\r\nimport './document-capture-review';\r\nimport './document-capture-instructions';\r\nimport packageJson from '../../../../package.json';\r\n\r\nconst COMPONENTS_VERSION = packageJson.version;\r\n\r\nconst smartCameraWeb = document.querySelector('smart-camera-web');\r\n\r\nasync function getPermissions(captureScreen) {\r\n try {\r\n const stream = await SmartCamera.getMedia({\r\n audio: false,\r\n video: SmartCamera.environmentOptions,\r\n });\r\n const devices = await navigator.mediaDevices.enumerateDevices();\r\n const videoDevice = devices.find(\r\n (device) =>\r\n device.kind === 'videoinput' &&\r\n stream.getVideoTracks()[0].getSettings().deviceId === device.deviceId,\r\n );\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.camera-name', {\r\n detail: { cameraName: videoDevice?.label },\r\n }),\r\n );\r\n captureScreen.removeAttribute('data-camera-error');\r\n captureScreen.setAttribute('data-camera-ready', true);\r\n } catch (error) {\r\n captureScreen.removeAttribute('data-camera-ready');\r\n captureScreen.setAttribute(\r\n 'data-camera-error',\r\n SmartCamera.handleCameraError(error),\r\n );\r\n }\r\n}\r\n\r\nclass DocumentCaptureScreens extends HTMLElement {\r\n constructor() {\r\n super();\r\n this.activeScreen = null;\r\n this.smartCameraWeb = this.closest('smart-camera-web');\r\n smartCameraWeb?.dispatchEvent(new CustomEvent('metadata.initialize'));\r\n }\r\n\r\n connectedCallback() {\r\n this.innerHTML = `\r\n ${styles(this.themeColor)}\r\n <div>\r\n <document-capture-instructions theme-color='${this.themeColor}' id='document-capture-instructions-front' ${this.title}\r\n ${this.documentCaptureModes} ${this.showNavigation} ${this.hideInstructions ? 'hidden' : ''}\r\n ${this.hideAttribution}\r\n ></document-capture-instructions>\r\n <document-capture id='document-capture-front' side-of-id='Front'\r\n ${this.title} ${this.showNavigation} ${this.hideInstructions ? '' : 'hidden'} ${this.hideAttribution}\r\n ${this.documentCaptureModes} ${this.documentType} theme-color='${this.themeColor}'\r\n ></document-capture>\r\n <document-capture-instructions id='document-capture-instructions-back' side-of-id='Back' title='Submit Back of ID'\r\n ${this.documentCaptureModes} ${this.showNavigation} theme-color='${this.themeColor}' ${this.hideAttribution} hidden\r\n ></document-capture-instructions>\r\n <document-capture id='document-capture-back' side-of-id='Back' ${this.title} ${this.showNavigation}\r\n ${this.documentCaptureModes} theme-color='${this.themeColor}' ${this.hideAttribution}\r\n hidden \r\n ></document-capture>\r\n <document-capture-review id='front-of-document-capture-review' theme-color='${this.themeColor}' ${this.hideAttribution} hidden></document-capture-review>\r\n <document-capture-review id='back-of-document-capture-review' theme-color='${this.themeColor}' ${this.hideAttribution} hidden></document-capture-review>\r\n </div>\r\n `;\r\n\r\n this._data = {\r\n images: [],\r\n meta: {\r\n libraryVersion: COMPONENTS_VERSION,\r\n },\r\n };\r\n\r\n this.documentInstruction = this.querySelector(\r\n 'document-capture-instructions',\r\n );\r\n this.documentInstructionBack = this.querySelector(\r\n '#document-capture-instructions-back',\r\n );\r\n this.idCapture = this.querySelector('#document-capture-front');\r\n this.idReview = this.querySelector('#front-of-document-capture-review');\r\n this.idCaptureBack = this.querySelector('#document-capture-back');\r\n this.backOfIdReview = this.querySelector(\r\n '#back-of-document-capture-review',\r\n );\r\n this.thankYouScreen = this.querySelector('thank-you');\r\n\r\n if (this.hideInstructions) {\r\n getPermissions(this.idCapture);\r\n this.setActiveScreen(this.idCapture);\r\n } else {\r\n this.setActiveScreen(this.documentInstruction);\r\n }\r\n\r\n this.setUpEventListeners();\r\n }\r\n\r\n disconnectedCallback() {\r\n SmartCamera.stopMedia();\r\n if (this.activeScreen) {\r\n this.activeScreen.removeAttribute('hidden');\r\n }\r\n this.activeScreen = null;\r\n this.innerHTML = '';\r\n }\r\n\r\n setUpEventListeners() {\r\n this.documentInstruction.addEventListener(\r\n 'document-capture-instructions.cancelled',\r\n () => {\r\n this.handleBackEvents();\r\n },\r\n );\r\n\r\n this.documentInstruction.addEventListener(\r\n 'document-capture-instructions.capture',\r\n async () => {\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.document-front-capture-start'),\r\n );\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.document-front-origin', {\r\n detail: { imageOrigin: 'camera_manual_capture' },\r\n }),\r\n );\r\n this.setActiveScreen(this.idCapture);\r\n await getPermissions(this.idCapture);\r\n },\r\n );\r\n this.documentInstruction.addEventListener(\r\n 'document-capture-instructions.upload',\r\n async (event) => {\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.document-front-origin', {\r\n detail: { imageOrigin: 'gallery' },\r\n }),\r\n );\r\n this.idReview.setAttribute('data-image', event.detail.previewImage);\r\n this._data.images.push({\r\n image: event.detail.image.split(',')[1],\r\n image_type_id: IMAGE_TYPE.ID_CARD_IMAGE_BASE64,\r\n });\r\n this.setActiveScreen(this.idReview);\r\n },\r\n );\r\n\r\n this.idCapture.addEventListener('document-capture.publish', (event) => {\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.document-front-capture-end'),\r\n );\r\n this.idReview.setAttribute('data-image', event.detail.previewImage);\r\n this._data.images.push({\r\n image: event.detail.image.split(',')[1],\r\n image_type_id: IMAGE_TYPE.ID_CARD_IMAGE_BASE64,\r\n });\r\n SmartCamera.stopMedia();\r\n this.setActiveScreen(this.idReview);\r\n });\r\n\r\n this.idCapture.addEventListener('document-capture.cancelled', () => {\r\n if (this.hideInstructions) {\r\n this.handleBackEvents();\r\n } else {\r\n this.setActiveScreen(this.documentInstruction);\r\n }\r\n });\r\n\r\n this.idReview.addEventListener(\r\n 'document-capture-review.rejected',\r\n async () => {\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.document-front-capture-retry'),\r\n );\r\n this.idReview.removeAttribute('data-image');\r\n this._data.images.pop();\r\n if (this.hideInstructions) {\r\n this.setActiveScreen(this.idCapture);\r\n await getPermissions(this.idCapture);\r\n } else {\r\n this.setActiveScreen(this.documentInstruction);\r\n }\r\n },\r\n );\r\n\r\n this.idReview.addEventListener(\r\n 'document-capture-review.accepted',\r\n async () => {\r\n if (this.hideBackOfId) {\r\n this._publishSelectedImages();\r\n } else if (this.hideInstructions) {\r\n this.setActiveScreen(this.idCaptureBack);\r\n await getPermissions(this.idCaptureBack);\r\n } else {\r\n this.setActiveScreen(this.documentInstructionBack);\r\n }\r\n },\r\n );\r\n\r\n this.documentInstructionBack.addEventListener(\r\n 'document-capture-instructions.capture',\r\n async () => {\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.document-back-capture-start'),\r\n );\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.document-back-origin', {\r\n detail: { imageOrigin: 'camera_manual_capture' },\r\n }),\r\n );\r\n this.setActiveScreen(this.idCaptureBack);\r\n await getPermissions(this.idCaptureBack);\r\n },\r\n );\r\n\r\n this.documentInstructionBack.addEventListener(\r\n 'document-capture-instructions.cancelled',\r\n async () => {\r\n this.idReview.removeAttribute('data-image');\r\n this._data.images.pop();\r\n if (this.hideInstructions) {\r\n this.setActiveScreen(this.idCapture);\r\n await getPermissions(this.idCapture);\r\n } else {\r\n this.setActiveScreen(this.documentInstruction);\r\n }\r\n },\r\n );\r\n\r\n this.documentInstructionBack.addEventListener(\r\n 'document-capture-instructions.upload',\r\n async (event) => {\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.document-back-origin', {\r\n detail: { imageOrigin: 'gallery' },\r\n }),\r\n );\r\n this.backOfIdReview.setAttribute('data-image', event.detail.image);\r\n this._data.images.push({\r\n image: event.detail.image.split(',')[1],\r\n image_type_id: IMAGE_TYPE.ID_CARD_BACK_IMAGE_BASE64,\r\n });\r\n this.setActiveScreen(this.backOfIdReview);\r\n },\r\n );\r\n this.idCaptureBack.addEventListener('document-capture.publish', (event) => {\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.document-back-capture-end'),\r\n );\r\n this.backOfIdReview.setAttribute('data-image', event.detail.previewImage);\r\n this._data.images.push({\r\n image: event.detail.image.split(',')[1],\r\n image_type_id: IMAGE_TYPE.ID_CARD_BACK_IMAGE_BASE64,\r\n });\r\n this.setActiveScreen(this.backOfIdReview);\r\n SmartCamera.stopMedia();\r\n });\r\n\r\n this.idCaptureBack.addEventListener(\r\n 'document-capture.cancelled',\r\n async () => {\r\n if (this.hideInstructions) {\r\n this.setActiveScreen(this.idCapture);\r\n await getPermissions(this.idCapture);\r\n } else {\r\n this.setActiveScreen(this.documentInstructionBack);\r\n }\r\n },\r\n );\r\n\r\n this.backOfIdReview.addEventListener(\r\n 'document-capture-review.rejected',\r\n async () => {\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.document-back-capture-retry'),\r\n );\r\n this.backOfIdReview.removeAttribute('data-image');\r\n this._data.images.pop();\r\n if (this.hideInstructions) {\r\n this.setActiveScreen(this.idCaptureBack);\r\n await getPermissions(this.idCaptureBack);\r\n } else {\r\n this.setActiveScreen(this.documentInstructionBack);\r\n }\r\n },\r\n );\r\n\r\n this.backOfIdReview.addEventListener(\r\n 'document-capture-review.accepted',\r\n () => {\r\n this._publishSelectedImages();\r\n },\r\n );\r\n\r\n const screens = [\r\n this.documentInstruction,\r\n this.idCapture,\r\n this.documentInstructionBack,\r\n this.idCaptureBack,\r\n this.idReview,\r\n this.backOfIdReview,\r\n ];\r\n\r\n screens.forEach((screen) => {\r\n screen.addEventListener(`${screen.nodeName.toLowerCase()}.close`, () =>\r\n this.handleCloseEvents(),\r\n );\r\n });\r\n }\r\n\r\n _publishSelectedImages() {\r\n this.dispatchEvent(\r\n new CustomEvent('document-capture-screens.publish', {\r\n detail: this._data,\r\n }),\r\n );\r\n }\r\n\r\n get hideInstructions() {\r\n return this.hasAttribute('hide-instructions');\r\n }\r\n\r\n get hideBackOfId() {\r\n return this.hasAttribute('hide-back-of-id');\r\n }\r\n\r\n get showNavigation() {\r\n return this.hasAttribute('show-navigation') ? 'show-navigation' : '';\r\n }\r\n\r\n get title() {\r\n return this.hasAttribute('title')\r\n ? `title=${this.getAttribute('title')}`\r\n : '';\r\n }\r\n\r\n get documentCaptureModes() {\r\n return this.hasAttribute('document-capture-modes')\r\n ? `document-capture-modes='${this.getAttribute('document-capture-modes')}'`\r\n : '';\r\n }\r\n\r\n get documentType() {\r\n return this.hasAttribute('document-type')\r\n ? `document-type='${this.getAttribute('document-type')}'`\r\n : '';\r\n }\r\n\r\n get hideAttribution() {\r\n return this.hasAttribute('hide-attribution') ? 'hide-attribution' : '';\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#001096';\r\n }\r\n\r\n handleBackEvents() {\r\n this.dispatchEvent(new CustomEvent('document-capture-screens.cancelled'));\r\n }\r\n\r\n handleCloseEvents() {\r\n this.dispatchEvent(new CustomEvent('document-capture-screens.close'));\r\n }\r\n\r\n setActiveScreen(screen) {\r\n this.activeScreen?.setAttribute('hidden', '');\r\n screen.removeAttribute('hidden');\r\n this.activeScreen = screen;\r\n }\r\n\r\n static get observedAttributes() {\r\n return [\r\n 'document-capture-modes',\r\n 'document-type',\r\n 'hide-back-to-host',\r\n 'show-navigation',\r\n 'hide-back-of-id',\r\n ];\r\n }\r\n\r\n attributeChangedCallback(name) {\r\n switch (name) {\r\n case 'document-capture-modes':\r\n case 'document-type':\r\n case 'hide-back-of-id':\r\n case 'hide-back-to-host':\r\n case 'show-navigation':\r\n this.connectedCallback();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n\r\nif (\r\n 'customElements' in window &&\r\n !customElements.get('document-capture-screens')\r\n) {\r\n customElements.define('document-capture-screens', DocumentCaptureScreens);\r\n}\r\n\r\nexport default DocumentCaptureScreens;\r\n","/*!\n * validate.js 0.13.1\n *\n * (c) 2013-2019 Nicklas Ansman, 2013 Wrapp\n * Validate.js may be freely distributed under the MIT license.\n * For all details and documentation:\n * http://validatejs.org/\n */\n\n(function(exports, module, define) {\n \"use strict\";\n\n // The main function that calls the validators specified by the constraints.\n // The options are the following:\n // - format (string) - An option that controls how the returned value is formatted\n // * flat - Returns a flat array of just the error messages\n // * grouped - Returns the messages grouped by attribute (default)\n // * detailed - Returns an array of the raw validation data\n // - fullMessages (boolean) - If `true` (default) the attribute name is prepended to the error.\n //\n // Please note that the options are also passed to each validator.\n var validate = function(attributes, constraints, options) {\n options = v.extend({}, v.options, options);\n\n var results = v.runValidations(attributes, constraints, options)\n , attr\n , validator;\n\n if (results.some(function(r) { return v.isPromise(r.error); })) {\n throw new Error(\"Use validate.async if you want support for promises\");\n }\n return validate.processValidationResults(results, options);\n };\n\n var v = validate;\n\n // Copies over attributes from one or more sources to a single destination.\n // Very much similar to underscore's extend.\n // The first argument is the target object and the remaining arguments will be\n // used as sources.\n v.extend = function(obj) {\n [].slice.call(arguments, 1).forEach(function(source) {\n for (var attr in source) {\n obj[attr] = source[attr];\n }\n });\n return obj;\n };\n\n v.extend(validate, {\n // This is the version of the library as a semver.\n // The toString function will allow it to be coerced into a string\n version: {\n major: 0,\n minor: 13,\n patch: 1,\n metadata: null,\n toString: function() {\n var version = v.format(\"%{major}.%{minor}.%{patch}\", v.version);\n if (!v.isEmpty(v.version.metadata)) {\n version += \"+\" + v.version.metadata;\n }\n return version;\n }\n },\n\n // Below is the dependencies that are used in validate.js\n\n // The constructor of the Promise implementation.\n // If you are using Q.js, RSVP or any other A+ compatible implementation\n // override this attribute to be the constructor of that promise.\n // Since jQuery promises aren't A+ compatible they won't work.\n Promise: typeof Promise !== \"undefined\" ? Promise : /* istanbul ignore next */ null,\n\n EMPTY_STRING_REGEXP: /^\\s*$/,\n\n // Runs the validators specified by the constraints object.\n // Will return an array of the format:\n // [{attribute: \"<attribute name>\", error: \"<validation result>\"}, ...]\n runValidations: function(attributes, constraints, options) {\n var results = []\n , attr\n , validatorName\n , value\n , validators\n , validator\n , validatorOptions\n , error;\n\n if (v.isDomElement(attributes) || v.isJqueryElement(attributes)) {\n attributes = v.collectFormValues(attributes);\n }\n\n // Loops through each constraints, finds the correct validator and run it.\n for (attr in constraints) {\n value = v.getDeepObjectValue(attributes, attr);\n // This allows the constraints for an attribute to be a function.\n // The function will be called with the value, attribute name, the complete dict of\n // attributes as well as the options and constraints passed in.\n // This is useful when you want to have different\n // validations depending on the attribute value.\n validators = v.result(constraints[attr], value, attributes, attr, options, constraints);\n\n for (validatorName in validators) {\n validator = v.validators[validatorName];\n\n if (!validator) {\n error = v.format(\"Unknown validator %{name}\", {name: validatorName});\n throw new Error(error);\n }\n\n validatorOptions = validators[validatorName];\n // This allows the options to be a function. The function will be\n // called with the value, attribute name, the complete dict of\n // attributes as well as the options and constraints passed in.\n // This is useful when you want to have different\n // validations depending on the attribute value.\n validatorOptions = v.result(validatorOptions, value, attributes, attr, options, constraints);\n if (!validatorOptions) {\n continue;\n }\n results.push({\n attribute: attr,\n value: value,\n validator: validatorName,\n globalOptions: options,\n attributes: attributes,\n options: validatorOptions,\n error: validator.call(validator,\n value,\n validatorOptions,\n attr,\n attributes,\n options)\n });\n }\n }\n\n return results;\n },\n\n // Takes the output from runValidations and converts it to the correct\n // output format.\n processValidationResults: function(errors, options) {\n errors = v.pruneEmptyErrors(errors, options);\n errors = v.expandMultipleErrors(errors, options);\n errors = v.convertErrorMessages(errors, options);\n\n var format = options.format || \"grouped\";\n\n if (typeof v.formatters[format] === 'function') {\n errors = v.formatters[format](errors);\n } else {\n throw new Error(v.format(\"Unknown format %{format}\", options));\n }\n\n return v.isEmpty(errors) ? undefined : errors;\n },\n\n // Runs the validations with support for promises.\n // This function will return a promise that is settled when all the\n // validation promises have been completed.\n // It can be called even if no validations returned a promise.\n async: function(attributes, constraints, options) {\n options = v.extend({}, v.async.options, options);\n\n var WrapErrors = options.wrapErrors || function(errors) {\n return errors;\n };\n\n // Removes unknown attributes\n if (options.cleanAttributes !== false) {\n attributes = v.cleanAttributes(attributes, constraints);\n }\n\n var results = v.runValidations(attributes, constraints, options);\n\n return new v.Promise(function(resolve, reject) {\n v.waitForResults(results).then(function() {\n var errors = v.processValidationResults(results, options);\n if (errors) {\n reject(new WrapErrors(errors, options, attributes, constraints));\n } else {\n resolve(attributes);\n }\n }, function(err) {\n reject(err);\n });\n });\n },\n\n single: function(value, constraints, options) {\n options = v.extend({}, v.single.options, options, {\n format: \"flat\",\n fullMessages: false\n });\n return v({single: value}, {single: constraints}, options);\n },\n\n // Returns a promise that is resolved when all promises in the results array\n // are settled. The promise returned from this function is always resolved,\n // never rejected.\n // This function modifies the input argument, it replaces the promises\n // with the value returned from the promise.\n waitForResults: function(results) {\n // Create a sequence of all the results starting with a resolved promise.\n return results.reduce(function(memo, result) {\n // If this result isn't a promise skip it in the sequence.\n if (!v.isPromise(result.error)) {\n return memo;\n }\n\n return memo.then(function() {\n return result.error.then(function(error) {\n result.error = error || null;\n });\n });\n }, new v.Promise(function(r) { r(); })); // A resolved promise\n },\n\n // If the given argument is a call: function the and: function return the value\n // otherwise just return the value. Additional arguments will be passed as\n // arguments to the function.\n // Example:\n // ```\n // result('foo') // 'foo'\n // result(Math.max, 1, 2) // 2\n // ```\n result: function(value) {\n var args = [].slice.call(arguments, 1);\n if (typeof value === 'function') {\n value = value.apply(null, args);\n }\n return value;\n },\n\n // Checks if the value is a number. This function does not consider NaN a\n // number like many other `isNumber` functions do.\n isNumber: function(value) {\n return typeof value === 'number' && !isNaN(value);\n },\n\n // Returns false if the object is not a function\n isFunction: function(value) {\n return typeof value === 'function';\n },\n\n // A simple check to verify that the value is an integer. Uses `isNumber`\n // and a simple modulo check.\n isInteger: function(value) {\n return v.isNumber(value) && value % 1 === 0;\n },\n\n // Checks if the value is a boolean\n isBoolean: function(value) {\n return typeof value === 'boolean';\n },\n\n // Uses the `Object` function to check if the given argument is an object.\n isObject: function(obj) {\n return obj === Object(obj);\n },\n\n // Simply checks if the object is an instance of a date\n isDate: function(obj) {\n return obj instanceof Date;\n },\n\n // Returns false if the object is `null` of `undefined`\n isDefined: function(obj) {\n return obj !== null && obj !== undefined;\n },\n\n // Checks if the given argument is a promise. Anything with a `then`\n // function is considered a promise.\n isPromise: function(p) {\n return !!p && v.isFunction(p.then);\n },\n\n isJqueryElement: function(o) {\n return o && v.isString(o.jquery);\n },\n\n isDomElement: function(o) {\n if (!o) {\n return false;\n }\n\n if (!o.querySelectorAll || !o.querySelector) {\n return false;\n }\n\n if (v.isObject(document) && o === document) {\n return true;\n }\n\n // http://stackoverflow.com/a/384380/699304\n /* istanbul ignore else */\n if (typeof HTMLElement === \"object\") {\n return o instanceof HTMLElement;\n } else {\n return o &&\n typeof o === \"object\" &&\n o !== null &&\n o.nodeType === 1 &&\n typeof o.nodeName === \"string\";\n }\n },\n\n isEmpty: function(value) {\n var attr;\n\n // Null and undefined are empty\n if (!v.isDefined(value)) {\n return true;\n }\n\n // functions are non empty\n if (v.isFunction(value)) {\n return false;\n }\n\n // Whitespace only strings are empty\n if (v.isString(value)) {\n return v.EMPTY_STRING_REGEXP.test(value);\n }\n\n // For arrays we use the length property\n if (v.isArray(value)) {\n return value.length === 0;\n }\n\n // Dates have no attributes but aren't empty\n if (v.isDate(value)) {\n return false;\n }\n\n // If we find at least one property we consider it non empty\n if (v.isObject(value)) {\n for (attr in value) {\n return false;\n }\n return true;\n }\n\n return false;\n },\n\n // Formats the specified strings with the given values like so:\n // ```\n // format(\"Foo: %{foo}\", {foo: \"bar\"}) // \"Foo bar\"\n // ```\n // If you want to write %{...} without having it replaced simply\n // prefix it with % like this `Foo: %%{foo}` and it will be returned\n // as `\"Foo: %{foo}\"`\n format: v.extend(function(str, vals) {\n if (!v.isString(str)) {\n return str;\n }\n return str.replace(v.format.FORMAT_REGEXP, function(m0, m1, m2) {\n if (m1 === '%') {\n return \"%{\" + m2 + \"}\";\n } else {\n return String(vals[m2]);\n }\n });\n }, {\n // Finds %{key} style patterns in the given string\n FORMAT_REGEXP: /(%?)%\\{([^\\}]+)\\}/g\n }),\n\n // \"Prettifies\" the given string.\n // Prettifying means replacing [.\\_-] with spaces as well as splitting\n // camel case words.\n prettify: function(str) {\n if (v.isNumber(str)) {\n // If there are more than 2 decimals round it to two\n if ((str * 100) % 1 === 0) {\n return \"\" + str;\n } else {\n return parseFloat(Math.round(str * 100) / 100).toFixed(2);\n }\n }\n\n if (v.isArray(str)) {\n return str.map(function(s) { return v.prettify(s); }).join(\", \");\n }\n\n if (v.isObject(str)) {\n if (!v.isDefined(str.toString)) {\n return JSON.stringify(str);\n }\n\n return str.toString();\n }\n\n // Ensure the string is actually a string\n str = \"\" + str;\n\n return str\n // Splits keys separated by periods\n .replace(/([^\\s])\\.([^\\s])/g, '$1 $2')\n // Removes backslashes\n .replace(/\\\\+/g, '')\n // Replaces - and - with space\n .replace(/[_-]/g, ' ')\n // Splits camel cased words\n .replace(/([a-z])([A-Z])/g, function(m0, m1, m2) {\n return \"\" + m1 + \" \" + m2.toLowerCase();\n })\n .toLowerCase();\n },\n\n stringifyValue: function(value, options) {\n var prettify = options && options.prettify || v.prettify;\n return prettify(value);\n },\n\n isString: function(value) {\n return typeof value === 'string';\n },\n\n isArray: function(value) {\n return {}.toString.call(value) === '[object Array]';\n },\n\n // Checks if the object is a hash, which is equivalent to an object that\n // is neither an array nor a function.\n isHash: function(value) {\n return v.isObject(value) && !v.isArray(value) && !v.isFunction(value);\n },\n\n contains: function(obj, value) {\n if (!v.isDefined(obj)) {\n return false;\n }\n if (v.isArray(obj)) {\n return obj.indexOf(value) !== -1;\n }\n return value in obj;\n },\n\n unique: function(array) {\n if (!v.isArray(array)) {\n return array;\n }\n return array.filter(function(el, index, array) {\n return array.indexOf(el) == index;\n });\n },\n\n forEachKeyInKeypath: function(object, keypath, callback) {\n if (!v.isString(keypath)) {\n return undefined;\n }\n\n var key = \"\"\n , i\n , escape = false;\n\n for (i = 0; i < keypath.length; ++i) {\n switch (keypath[i]) {\n case '.':\n if (escape) {\n escape = false;\n key += '.';\n } else {\n object = callback(object, key, false);\n key = \"\";\n }\n break;\n\n case '\\\\':\n if (escape) {\n escape = false;\n key += '\\\\';\n } else {\n escape = true;\n }\n break;\n\n default:\n escape = false;\n key += keypath[i];\n break;\n }\n }\n\n return callback(object, key, true);\n },\n\n getDeepObjectValue: function(obj, keypath) {\n if (!v.isObject(obj)) {\n return undefined;\n }\n\n return v.forEachKeyInKeypath(obj, keypath, function(obj, key) {\n if (v.isObject(obj)) {\n return obj[key];\n }\n });\n },\n\n // This returns an object with all the values of the form.\n // It uses the input name as key and the value as value\n // So for example this:\n // <input type=\"text\" name=\"email\" value=\"foo@bar.com\" />\n // would return:\n // {email: \"foo@bar.com\"}\n collectFormValues: function(form, options) {\n var values = {}\n , i\n , j\n , input\n , inputs\n , option\n , value;\n\n if (v.isJqueryElement(form)) {\n form = form[0];\n }\n\n if (!form) {\n return values;\n }\n\n options = options || {};\n\n inputs = form.querySelectorAll(\"input[name], textarea[name]\");\n for (i = 0; i < inputs.length; ++i) {\n input = inputs.item(i);\n\n if (v.isDefined(input.getAttribute(\"data-ignored\"))) {\n continue;\n }\n\n var name = input.name.replace(/\\./g, \"\\\\\\\\.\");\n value = v.sanitizeFormValue(input.value, options);\n if (input.type === \"number\") {\n value = value ? +value : null;\n } else if (input.type === \"checkbox\") {\n if (input.attributes.value) {\n if (!input.checked) {\n value = values[name] || null;\n }\n } else {\n value = input.checked;\n }\n } else if (input.type === \"radio\") {\n if (!input.checked) {\n value = values[name] || null;\n }\n }\n values[name] = value;\n }\n\n inputs = form.querySelectorAll(\"select[name]\");\n for (i = 0; i < inputs.length; ++i) {\n input = inputs.item(i);\n if (v.isDefined(input.getAttribute(\"data-ignored\"))) {\n continue;\n }\n\n if (input.multiple) {\n value = [];\n for (j in input.options) {\n option = input.options[j];\n if (option && option.selected) {\n value.push(v.sanitizeFormValue(option.value, options));\n }\n }\n } else {\n var _val = typeof input.options[input.selectedIndex] !== 'undefined' ? input.options[input.selectedIndex].value : /* istanbul ignore next */ '';\n value = v.sanitizeFormValue(_val, options);\n }\n values[input.name] = value;\n }\n\n return values;\n },\n\n sanitizeFormValue: function(value, options) {\n if (options.trim && v.isString(value)) {\n value = value.trim();\n }\n\n if (options.nullify !== false && value === \"\") {\n return null;\n }\n return value;\n },\n\n capitalize: function(str) {\n if (!v.isString(str)) {\n return str;\n }\n return str[0].toUpperCase() + str.slice(1);\n },\n\n // Remove all errors who's error attribute is empty (null or undefined)\n pruneEmptyErrors: function(errors) {\n return errors.filter(function(error) {\n return !v.isEmpty(error.error);\n });\n },\n\n // In\n // [{error: [\"err1\", \"err2\"], ...}]\n // Out\n // [{error: \"err1\", ...}, {error: \"err2\", ...}]\n //\n // All attributes in an error with multiple messages are duplicated\n // when expanding the errors.\n expandMultipleErrors: function(errors) {\n var ret = [];\n errors.forEach(function(error) {\n // Removes errors without a message\n if (v.isArray(error.error)) {\n error.error.forEach(function(msg) {\n ret.push(v.extend({}, error, {error: msg}));\n });\n } else {\n ret.push(error);\n }\n });\n return ret;\n },\n\n // Converts the error mesages by prepending the attribute name unless the\n // message is prefixed by ^\n convertErrorMessages: function(errors, options) {\n options = options || {};\n\n var ret = []\n , prettify = options.prettify || v.prettify;\n errors.forEach(function(errorInfo) {\n var error = v.result(errorInfo.error,\n errorInfo.value,\n errorInfo.attribute,\n errorInfo.options,\n errorInfo.attributes,\n errorInfo.globalOptions);\n\n if (!v.isString(error)) {\n ret.push(errorInfo);\n return;\n }\n\n if (error[0] === '^') {\n error = error.slice(1);\n } else if (options.fullMessages !== false) {\n error = v.capitalize(prettify(errorInfo.attribute)) + \" \" + error;\n }\n error = error.replace(/\\\\\\^/g, \"^\");\n error = v.format(error, {\n value: v.stringifyValue(errorInfo.value, options)\n });\n ret.push(v.extend({}, errorInfo, {error: error}));\n });\n return ret;\n },\n\n // In:\n // [{attribute: \"<attributeName>\", ...}]\n // Out:\n // {\"<attributeName>\": [{attribute: \"<attributeName>\", ...}]}\n groupErrorsByAttribute: function(errors) {\n var ret = {};\n errors.forEach(function(error) {\n var list = ret[error.attribute];\n if (list) {\n list.push(error);\n } else {\n ret[error.attribute] = [error];\n }\n });\n return ret;\n },\n\n // In:\n // [{error: \"<message 1>\", ...}, {error: \"<message 2>\", ...}]\n // Out:\n // [\"<message 1>\", \"<message 2>\"]\n flattenErrorsToArray: function(errors) {\n return errors\n .map(function(error) { return error.error; })\n .filter(function(value, index, self) {\n return self.indexOf(value) === index;\n });\n },\n\n cleanAttributes: function(attributes, whitelist) {\n function whitelistCreator(obj, key, last) {\n if (v.isObject(obj[key])) {\n return obj[key];\n }\n return (obj[key] = last ? true : {});\n }\n\n function buildObjectWhitelist(whitelist) {\n var ow = {}\n , lastObject\n , attr;\n for (attr in whitelist) {\n if (!whitelist[attr]) {\n continue;\n }\n v.forEachKeyInKeypath(ow, attr, whitelistCreator);\n }\n return ow;\n }\n\n function cleanRecursive(attributes, whitelist) {\n if (!v.isObject(attributes)) {\n return attributes;\n }\n\n var ret = v.extend({}, attributes)\n , w\n , attribute;\n\n for (attribute in attributes) {\n w = whitelist[attribute];\n\n if (v.isObject(w)) {\n ret[attribute] = cleanRecursive(ret[attribute], w);\n } else if (!w) {\n delete ret[attribute];\n }\n }\n return ret;\n }\n\n if (!v.isObject(whitelist) || !v.isObject(attributes)) {\n return {};\n }\n\n whitelist = buildObjectWhitelist(whitelist);\n return cleanRecursive(attributes, whitelist);\n },\n\n exposeModule: function(validate, root, exports, module, define) {\n if (exports) {\n if (module && module.exports) {\n exports = module.exports = validate;\n }\n exports.validate = validate;\n } else {\n root.validate = validate;\n if (validate.isFunction(define) && define.amd) {\n define([], function () { return validate; });\n }\n }\n },\n\n warn: function(msg) {\n if (typeof console !== \"undefined\" && console.warn) {\n console.warn(\"[validate.js] \" + msg);\n }\n },\n\n error: function(msg) {\n if (typeof console !== \"undefined\" && console.error) {\n console.error(\"[validate.js] \" + msg);\n }\n }\n });\n\n validate.validators = {\n // Presence validates that the value isn't empty\n presence: function(value, options) {\n options = v.extend({}, this.options, options);\n if (options.allowEmpty !== false ? !v.isDefined(value) : v.isEmpty(value)) {\n return options.message || this.message || \"can't be blank\";\n }\n },\n length: function(value, options, attribute) {\n // Empty values are allowed\n if (!v.isDefined(value)) {\n return;\n }\n\n options = v.extend({}, this.options, options);\n\n var is = options.is\n , maximum = options.maximum\n , minimum = options.minimum\n , tokenizer = options.tokenizer || function(val) { return val; }\n , err\n , errors = [];\n\n value = tokenizer(value);\n var length = value.length;\n if(!v.isNumber(length)) {\n return options.message || this.notValid || \"has an incorrect length\";\n }\n\n // Is checks\n if (v.isNumber(is) && length !== is) {\n err = options.wrongLength ||\n this.wrongLength ||\n \"is the wrong length (should be %{count} characters)\";\n errors.push(v.format(err, {count: is}));\n }\n\n if (v.isNumber(minimum) && length < minimum) {\n err = options.tooShort ||\n this.tooShort ||\n \"is too short (minimum is %{count} characters)\";\n errors.push(v.format(err, {count: minimum}));\n }\n\n if (v.isNumber(maximum) && length > maximum) {\n err = options.tooLong ||\n this.tooLong ||\n \"is too long (maximum is %{count} characters)\";\n errors.push(v.format(err, {count: maximum}));\n }\n\n if (errors.length > 0) {\n return options.message || errors;\n }\n },\n numericality: function(value, options, attribute, attributes, globalOptions) {\n // Empty values are fine\n if (!v.isDefined(value)) {\n return;\n }\n\n options = v.extend({}, this.options, options);\n\n var errors = []\n , name\n , count\n , checks = {\n greaterThan: function(v, c) { return v > c; },\n greaterThanOrEqualTo: function(v, c) { return v >= c; },\n equalTo: function(v, c) { return v === c; },\n lessThan: function(v, c) { return v < c; },\n lessThanOrEqualTo: function(v, c) { return v <= c; },\n divisibleBy: function(v, c) { return v % c === 0; }\n }\n , prettify = options.prettify ||\n (globalOptions && globalOptions.prettify) ||\n v.prettify;\n\n // Strict will check that it is a valid looking number\n if (v.isString(value) && options.strict) {\n var pattern = \"^-?(0|[1-9]\\\\d*)\";\n if (!options.onlyInteger) {\n pattern += \"(\\\\.\\\\d+)?\";\n }\n pattern += \"$\";\n\n if (!(new RegExp(pattern).test(value))) {\n return options.message ||\n options.notValid ||\n this.notValid ||\n this.message ||\n \"must be a valid number\";\n }\n }\n\n // Coerce the value to a number unless we're being strict.\n if (options.noStrings !== true && v.isString(value) && !v.isEmpty(value)) {\n value = +value;\n }\n\n // If it's not a number we shouldn't continue since it will compare it.\n if (!v.isNumber(value)) {\n return options.message ||\n options.notValid ||\n this.notValid ||\n this.message ||\n \"is not a number\";\n }\n\n // Same logic as above, sort of. Don't bother with comparisons if this\n // doesn't pass.\n if (options.onlyInteger && !v.isInteger(value)) {\n return options.message ||\n options.notInteger ||\n this.notInteger ||\n this.message ||\n \"must be an integer\";\n }\n\n for (name in checks) {\n count = options[name];\n if (v.isNumber(count) && !checks[name](value, count)) {\n // This picks the default message if specified\n // For example the greaterThan check uses the message from\n // this.notGreaterThan so we capitalize the name and prepend \"not\"\n var key = \"not\" + v.capitalize(name);\n var msg = options[key] ||\n this[key] ||\n this.message ||\n \"must be %{type} %{count}\";\n\n errors.push(v.format(msg, {\n count: count,\n type: prettify(name)\n }));\n }\n }\n\n if (options.odd && value % 2 !== 1) {\n errors.push(options.notOdd ||\n this.notOdd ||\n this.message ||\n \"must be odd\");\n }\n if (options.even && value % 2 !== 0) {\n errors.push(options.notEven ||\n this.notEven ||\n this.message ||\n \"must be even\");\n }\n\n if (errors.length) {\n return options.message || errors;\n }\n },\n datetime: v.extend(function(value, options) {\n if (!v.isFunction(this.parse) || !v.isFunction(this.format)) {\n throw new Error(\"Both the parse and format functions needs to be set to use the datetime/date validator\");\n }\n\n // Empty values are fine\n if (!v.isDefined(value)) {\n return;\n }\n\n options = v.extend({}, this.options, options);\n\n var err\n , errors = []\n , earliest = options.earliest ? this.parse(options.earliest, options) : NaN\n , latest = options.latest ? this.parse(options.latest, options) : NaN;\n\n value = this.parse(value, options);\n\n // 86400000 is the number of milliseconds in a day, this is used to remove\n // the time from the date\n if (isNaN(value) || options.dateOnly && value % 86400000 !== 0) {\n err = options.notValid ||\n options.message ||\n this.notValid ||\n \"must be a valid date\";\n return v.format(err, {value: arguments[0]});\n }\n\n if (!isNaN(earliest) && value < earliest) {\n err = options.tooEarly ||\n options.message ||\n this.tooEarly ||\n \"must be no earlier than %{date}\";\n err = v.format(err, {\n value: this.format(value, options),\n date: this.format(earliest, options)\n });\n errors.push(err);\n }\n\n if (!isNaN(latest) && value > latest) {\n err = options.tooLate ||\n options.message ||\n this.tooLate ||\n \"must be no later than %{date}\";\n err = v.format(err, {\n date: this.format(latest, options),\n value: this.format(value, options)\n });\n errors.push(err);\n }\n\n if (errors.length) {\n return v.unique(errors);\n }\n }, {\n parse: null,\n format: null\n }),\n date: function(value, options) {\n options = v.extend({}, options, {dateOnly: true});\n return v.validators.datetime.call(v.validators.datetime, value, options);\n },\n format: function(value, options) {\n if (v.isString(options) || (options instanceof RegExp)) {\n options = {pattern: options};\n }\n\n options = v.extend({}, this.options, options);\n\n var message = options.message || this.message || \"is invalid\"\n , pattern = options.pattern\n , match;\n\n // Empty values are allowed\n if (!v.isDefined(value)) {\n return;\n }\n if (!v.isString(value)) {\n return message;\n }\n\n if (v.isString(pattern)) {\n pattern = new RegExp(options.pattern, options.flags);\n }\n match = pattern.exec(value);\n if (!match || match[0].length != value.length) {\n return message;\n }\n },\n inclusion: function(value, options) {\n // Empty values are fine\n if (!v.isDefined(value)) {\n return;\n }\n if (v.isArray(options)) {\n options = {within: options};\n }\n options = v.extend({}, this.options, options);\n if (v.contains(options.within, value)) {\n return;\n }\n var message = options.message ||\n this.message ||\n \"^%{value} is not included in the list\";\n return v.format(message, {value: value});\n },\n exclusion: function(value, options) {\n // Empty values are fine\n if (!v.isDefined(value)) {\n return;\n }\n if (v.isArray(options)) {\n options = {within: options};\n }\n options = v.extend({}, this.options, options);\n if (!v.contains(options.within, value)) {\n return;\n }\n var message = options.message || this.message || \"^%{value} is restricted\";\n if (v.isString(options.within[value])) {\n value = options.within[value];\n }\n return v.format(message, {value: value});\n },\n email: v.extend(function(value, options) {\n options = v.extend({}, this.options, options);\n var message = options.message || this.message || \"is not a valid email\";\n // Empty values are fine\n if (!v.isDefined(value)) {\n return;\n }\n if (!v.isString(value)) {\n return message;\n }\n if (!this.PATTERN.exec(value)) {\n return message;\n }\n }, {\n PATTERN: /^(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])$/i\n }),\n equality: function(value, options, attribute, attributes, globalOptions) {\n if (!v.isDefined(value)) {\n return;\n }\n\n if (v.isString(options)) {\n options = {attribute: options};\n }\n options = v.extend({}, this.options, options);\n var message = options.message ||\n this.message ||\n \"is not equal to %{attribute}\";\n\n if (v.isEmpty(options.attribute) || !v.isString(options.attribute)) {\n throw new Error(\"The attribute must be a non empty string\");\n }\n\n var otherValue = v.getDeepObjectValue(attributes, options.attribute)\n , comparator = options.comparator || function(v1, v2) {\n return v1 === v2;\n }\n , prettify = options.prettify ||\n (globalOptions && globalOptions.prettify) ||\n v.prettify;\n\n if (!comparator(value, otherValue, options, attribute, attributes)) {\n return v.format(message, {attribute: prettify(options.attribute)});\n }\n },\n // A URL validator that is used to validate URLs with the ability to\n // restrict schemes and some domains.\n url: function(value, options) {\n if (!v.isDefined(value)) {\n return;\n }\n\n options = v.extend({}, this.options, options);\n\n var message = options.message || this.message || \"is not a valid url\"\n , schemes = options.schemes || this.schemes || ['http', 'https']\n , allowLocal = options.allowLocal || this.allowLocal || false\n , allowDataUrl = options.allowDataUrl || this.allowDataUrl || false;\n if (!v.isString(value)) {\n return message;\n }\n\n // https://gist.github.com/dperini/729294\n var regex =\n \"^\" +\n // protocol identifier\n \"(?:(?:\" + schemes.join(\"|\") + \")://)\" +\n // user:pass authentication\n \"(?:\\\\S+(?::\\\\S*)?@)?\" +\n \"(?:\";\n\n var tld = \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff]{2,}))\";\n\n if (allowLocal) {\n tld += \"?\";\n } else {\n regex +=\n // IP address exclusion\n // private & local networks\n \"(?!(?:10|127)(?:\\\\.\\\\d{1,3}){3})\" +\n \"(?!(?:169\\\\.254|192\\\\.168)(?:\\\\.\\\\d{1,3}){2})\" +\n \"(?!172\\\\.(?:1[6-9]|2\\\\d|3[0-1])(?:\\\\.\\\\d{1,3}){2})\";\n }\n\n regex +=\n // IP address dotted notation octets\n // excludes loopback network 0.0.0.0\n // excludes reserved space >= 224.0.0.0\n // excludes network & broacast addresses\n // (first & last IP address of each class)\n \"(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])\" +\n \"(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}\" +\n \"(?:\\\\.(?:[1-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))\" +\n \"|\" +\n // host name\n \"(?:(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)\" +\n // domain name\n \"(?:\\\\.(?:[a-z\\\\u00a1-\\\\uffff0-9]-*)*[a-z\\\\u00a1-\\\\uffff0-9]+)*\" +\n tld +\n \")\" +\n // port number\n \"(?::\\\\d{2,5})?\" +\n // resource path\n \"(?:[/?#]\\\\S*)?\" +\n \"$\";\n\n if (allowDataUrl) {\n // RFC 2397\n var mediaType = \"\\\\w+\\\\/[-+.\\\\w]+(?:;[\\\\w=]+)*\";\n var urlchar = \"[A-Za-z0-9-_.!~\\\\*'();\\\\/?:@&=+$,%]*\";\n var dataurl = \"data:(?:\"+mediaType+\")?(?:;base64)?,\"+urlchar;\n regex = \"(?:\"+regex+\")|(?:^\"+dataurl+\"$)\";\n }\n\n var PATTERN = new RegExp(regex, 'i');\n if (!PATTERN.exec(value)) {\n return message;\n }\n },\n type: v.extend(function(value, originalOptions, attribute, attributes, globalOptions) {\n if (v.isString(originalOptions)) {\n originalOptions = {type: originalOptions};\n }\n\n if (!v.isDefined(value)) {\n return;\n }\n\n var options = v.extend({}, this.options, originalOptions);\n\n var type = options.type;\n if (!v.isDefined(type)) {\n throw new Error(\"No type was specified\");\n }\n\n var check;\n if (v.isFunction(type)) {\n check = type;\n } else {\n check = this.types[type];\n }\n\n if (!v.isFunction(check)) {\n throw new Error(\"validate.validators.type.types.\" + type + \" must be a function.\");\n }\n\n if (!check(value, options, attribute, attributes, globalOptions)) {\n var message = originalOptions.message ||\n this.messages[type] ||\n this.message ||\n options.message ||\n (v.isFunction(type) ? \"must be of the correct type\" : \"must be of type %{type}\");\n\n if (v.isFunction(message)) {\n message = message(value, originalOptions, attribute, attributes, globalOptions);\n }\n\n return v.format(message, {attribute: v.prettify(attribute), type: type});\n }\n }, {\n types: {\n object: function(value) {\n return v.isObject(value) && !v.isArray(value);\n },\n array: v.isArray,\n integer: v.isInteger,\n number: v.isNumber,\n string: v.isString,\n date: v.isDate,\n boolean: v.isBoolean\n },\n messages: {}\n })\n };\n\n validate.formatters = {\n detailed: function(errors) {return errors;},\n flat: v.flattenErrorsToArray,\n grouped: function(errors) {\n var attr;\n\n errors = v.groupErrorsByAttribute(errors);\n for (attr in errors) {\n errors[attr] = v.flattenErrorsToArray(errors[attr]);\n }\n return errors;\n },\n constraint: function(errors) {\n var attr;\n errors = v.groupErrorsByAttribute(errors);\n for (attr in errors) {\n errors[attr] = errors[attr].map(function(result) {\n return result.validator;\n }).sort();\n }\n return errors;\n }\n };\n\n validate.exposeModule(validate, this, exports, module, define);\n}).call(this,\n typeof exports !== 'undefined' ? /* istanbul ignore next */ exports : null,\n typeof module !== 'undefined' ? /* istanbul ignore next */ module : null,\n typeof define !== 'undefined' ? /* istanbul ignore next */ define : null);\n","import validate from 'validate.js';\r\n\r\nfunction postData(url, data) {\r\n return fetch(url, {\r\n body: JSON.stringify(data),\r\n cache: 'no-cache',\r\n headers: {\r\n Accept: 'application/json',\r\n 'Content-Type': 'application/json',\r\n },\r\n method: 'POST',\r\n mode: 'cors',\r\n });\r\n}\r\n\r\nfunction markup() {\r\n return `\r\n <style>\r\n *,\r\n *::before,\r\n *::after {\r\n box-sizing: border-box;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n :host {\r\n --flow-space: 1.5rem;\r\n\r\n --color-dark: #404040;\r\n --color-grey: #555B69;\r\n\r\n --color-success: #1EB244;\r\n --color-failure: #FFEDEB;\r\n --color-failure-tint: #F86B58;\r\n\r\n --color-richblue: #043C93;\r\n --color-theme: ${this.themeColor};\r\n\r\n --color-active: #2D2B2A;\r\n --color-default: #001096;\r\n --color-disabled: #848282;\r\n }\r\n\r\n html {\r\n font-family: 'DM Sans', sans-serif;\r\n }\r\n\r\n [hidden] {\r\n display: none !important;\r\n }\r\n\r\n [disabled] {\r\n cursor: not-allowed !important;\r\n }\r\n\r\n .visually-hidden {\r\n border: 0;\r\n clip: rect(1px 1px 1px 1px);\r\n clip: rect(1px, 1px, 1px, 1px);\r\n height: auto;\r\n margin: 0;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n white-space: nowrap;\r\n width: 1px;\r\n }\r\n\r\n .color-dark {\r\n color: var(--color-dark);\r\n }\r\n\r\n .color-grey {\r\n color: var(--color-grey);\r\n }\r\n\r\n .flow > * + * {\r\n margin-top: var(--flow-space);\r\n }\r\n\r\n .center {\r\n margin-left: auto;\r\n margin-right: auto;\r\n\r\n text-align: center;\r\n }\r\n\r\n h1 {\r\n font-size: 1.5rem;\r\n font-weight: 700;\r\n }\r\n\r\n button, input, select, textarea {\r\n font: inherit\r\n }\r\n\r\n label,\r\n input,\r\n select,\r\n textarea {\r\n --flow-space: .5rem;\r\n display: block;\r\n width: 100%;\r\n }\r\n\r\n input,\r\n select,\r\n textarea {\r\n border: 1px solid #d1d8d6;\r\n border-radius: .5rem;\r\n padding: .75rem 1rem;\r\n }\r\n\r\n button {\r\n --button-color: var(--color-default);\r\n --flow-space: 3rem;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background-color: transparent;\r\n border-radius: 2.5rem;\r\n border: none;\r\n color: #ffffff;\r\n cursor: pointer;\r\n display: inline-flex;\r\n font-size: 20px;\r\n font-weight: 500;\r\n inline-size: 100%;\r\n justify-content: center;\r\n letter-spacing: .05ch;\r\n line-height: 1;\r\n padding: 1rem 2.5rem;\r\n text-align: center;\r\n text-decoration: none;\r\n }\r\n\r\n button[data-variant='solid'] {\r\n background-color: var(--button-color);\r\n border: 2px solid var(--button-color);\r\n }\r\n\r\n button[data-variant='outline'] {\r\n color: var(--button-color);\r\n border: 2px solid var(--button-color);\r\n }\r\n\r\n button[data-variant='ghost'] {\r\n color: var(--button-color);\r\n }\r\n\r\n button:hover,\r\n button:focus,\r\n button:active {\r\n --button-color: var(--color-active);\r\n }\r\n\r\n button:disabled {\r\n --button-color: var(--color-disabled);\r\n }\r\n\r\n button[data-type='icon'] {\r\n height: 2rem;\r\n padding: 0;\r\n width: 2rem;\r\n background: transparent;\r\n }\r\n\r\n input {\r\n font: inherit;\r\n }\r\n\r\n fieldset {\r\n margin: 0;\r\n border: none;\r\n }\r\n\r\n .font-weight:bold {\r\n font-weight: bold;\r\n }\r\n\r\n .justify-right {\r\n justify-content: end !important;\r\n }\r\n .nav {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n .back-wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .back-button-text {\r\n font-size: 11px;\r\n line-height: 11px;\r\n color: ${this.themeColor || 'rgb(21, 31, 114)'};\r\n }\r\n\r\n #error,\r\n .validation-message {\r\n color: red;\r\n text-transform: capitalize;\r\n }\r\n\r\n .input-group {\r\n --flow-space: 1.5rem;\r\n text-align: initial;\r\n }\r\n\r\n .input-radio {\r\n --flow-space: 1.5rem;\r\n background-color: #F8F8F8;\r\n border-radius: .5rem;\r\n padding: .625rem 1rem;\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .otp-mode {\r\n display: flex;\r\n align-items: center;\r\n text-align: initial;\r\n }\r\n\r\n .otp-mode :first-child {\r\n margin: 0;\r\n margin-inline-end: 1rem;\r\n }\r\n\r\n .otp-mode :nth-child(2n) {\r\n --flow-space: .5rem;\r\n }\r\n\r\n .input-radio [type='radio'] {\r\n border-radius: 50%;\r\n inline-size: 2rem;\r\n block-size: 2rem;\r\n margin-inline-end: .5rem;\r\n background-color: white;\r\n border: .125rem solid #f5f5f5;\r\n }\r\n\r\n #totp-token {\r\n block-size: 3rem;\r\n inline-size: 20rem;\r\n max-inline-size: 100%;\r\n background-color: #F5F5F5;\r\n border: none;\r\n border-bottom: 2px solid #2F718D;\r\n font-size: 1.5rem;\r\n text-align: center;\r\n font-weight: 700;\r\n letter-spacing: 2rem;\r\n padding: .5rem 1rem;\r\n margin-inline: auto;\r\n }\r\n\r\n @keyframes spin {\r\n 0% {\r\n transform: translate3d(-50%, -50%, 0) rotate(0deg);\r\n }\r\n 100% {\r\n transform: translate3d(-50%, -50%, 0) rotate(360deg);\r\n }\r\n }\r\n\r\n .spinner {\r\n animation: 1.5s linear infinite spin;\r\n animation-play-state: inherit;\r\n border: solid 5px #cfd0d1;\r\n border-bottom-color: var(--color-active);\r\n border-radius: 50%;\r\n content: \"\";\r\n display: block;\r\n height: 25px;\r\n width: 25px;\r\n will-change: transform;\r\n position: relative;\r\n top: .675rem;\r\n left: 1.25rem;\r\n }\r\n </style>\r\n\r\n <div class='flow center' id='id-entry'>\r\n <div class=\"nav\">\r\n <div class=\"back-wrapper\">\r\n <button type='button' data-type='icon' id=\"back-button\" class=\"back-button\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\">\r\n <path fill=\"#DBDBC4\" d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\" opacity=\".4\"/>\r\n <path fill=\"${this.themeColor}\" d=\"M15.5 11.25h-5.19l1.72-1.72c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-3 3c-.29.29-.29.77 0 1.06l3 3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-1.72-1.72h5.19c.41 0 .75-.34.75-.75s-.34-.75-.75-.75Z\"/>\r\n </svg>\r\n </button>\r\n <div class=\"back-button-text\">Back</div>\r\n </div>\r\n <button data-type='icon' type='button' class='close-iframe'>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\">\r\n <path fill=\"#DBDBC4\" d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\" opacity=\".4\"/>\r\n <path fill=\"#91190F\" d=\"m13.06 12 2.3-2.3c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-2.3 2.3-2.3-2.3a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.3 2.3-2.3 2.3c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l2.3-2.3 2.3 2.3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-2.3-2.3Z\"/>\r\n </svg>\r\n <span class='visually-hidden'>Close SmileIdentity Verification frame</span>\r\n </button>\r\n </div>\r\n <h1>\r\n Enter your ${this.idTypeLabel}\r\n </h1>\r\n\r\n <form name='id-entry-form' class='flow' novalidate style='--flow-space: 5.5rem'>\r\n <div id='id-number' class=\"input-group flow\">\r\n <label class='required' for=\"id_number\">\r\n ${this.idTypeLabel}\r\n </label>\r\n\r\n <input aria-required='true' id=\"id_number\" name=\"id_number\"\r\n maxlength='11' placeholder='' />\r\n\r\n <p>\r\n <small>${this.idHint}</small>\r\n </p>\r\n </div>\r\n\r\n <button data-variant='solid' id='query-otp-modes' type='submit'>\r\n <span class='text'>Continue</span>\r\n <svg aria-hidden='true' width=\"25\" height=\"24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M7 12h11m0 0-4.588-4M18 12l-4.588 4\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <span hidden class='spinner'></span>\r\n </button>\r\n </form>\r\n </div>\r\n\r\n <div hidden class='flow center' id='select-mode'>\r\n <div class=\"nav\">\r\n <div class=\"back-wrapper\">\r\n <button type='button' data-type='icon' id=\"back-to-entry-button\" class=\"back-button\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\">\r\n <path fill=\"#DBDBC4\" d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\" opacity=\".4\"/>\r\n <path fill=\"${this.themeColor}\" d=\"M15.5 11.25h-5.19l1.72-1.72c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-3 3c-.29.29-.29.77 0 1.06l3 3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-1.72-1.72h5.19c.41 0 .75-.34.75-.75s-.34-.75-.75-.75Z\"/>\r\n </svg>\r\n </button>\r\n <div class=\"back-button-text\">Back</div>\r\n </div>\r\n <button data-type='icon' type='button' class='close-iframe'>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\">\r\n <path fill=\"#DBDBC4\" d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\" opacity=\".4\"/>\r\n <path fill=\"#91190F\" d=\"m13.06 12 2.3-2.3c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-2.3 2.3-2.3-2.3a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.3 2.3-2.3 2.3c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l2.3-2.3 2.3 2.3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-2.3-2.3Z\"/>\r\n </svg>\r\n <span class='visually-hidden'>Close SmileIdentity Verification frame</span>\r\n </button>\r\n </div>\r\n <h1>\r\n Select contact method\r\n </h1>\r\n\r\n <form name='select-mode-form' novalidate style='--flow-space: 4.25rem' id='otp-entry' class='flow center'>\r\n <fieldset class='flow center'>\r\n <legend class='flow' style='--flow-space: 1.5rem'>\r\n <p>\r\n NIBSS, the data custodian of BVN, \r\n will send you a One-Time Password (OTP) \r\n </p>\r\n\r\n <p>\r\n <small>\r\n The request will be from Chams Plc, who is NIBSS' technical partner.\r\n </small>\r\n </p>\r\n </legend>\r\n\r\n <div class='flow center'>\r\n ${\r\n this.modes.length\r\n ? this.modes\r\n .map(\r\n (mode) => `<label class='input-radio'>\r\n <input type=\"radio\" id=\"\" name=\"mode\" value=\"${Object.keys(mode)[0]}\">\r\n <div class='otp-mode'>\r\n ${\r\n Object.keys(mode)[0].includes('sms')\r\n ? `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"37\" fill=\"none\">\r\n <path stroke=\"#2F718D\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M16.697 24.12c4.914 0 7.37 0 8.897-1.652 1.527-1.651 1.527-4.31 1.527-9.625 0-5.316 0-7.974-1.527-9.625-1.526-1.651-3.983-1.651-8.897-1.651h-5.211c-4.914 0-7.37 0-8.897 1.651-1.527 1.651-1.527 4.31-1.527 9.625 0 5.316 0 7.974 1.527 9.625.85.92 1.991 1.328 3.685 1.508\"/>\r\n <g filter=\"url(#sms)\">\r\n <path stroke=\"#2F718D\" stroke-linecap=\"round\" stroke-width=\"2\" d=\"M16.697 24.12c-1.61 0-3.384.703-5.005 1.613-2.602 1.462-3.903 2.193-4.545 1.727-.64-.465-.52-1.91-.277-4.799l.055-.656\" shape-rendering=\"crispEdges\"/>\r\n </g>\r\n <defs>\r\n <filter id=\"sms\" width=\"20.023\" height=\"15.595\" x=\"1.675\" y=\"21.005\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\r\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/>\r\n <feOffset dy=\"4\"/>\r\n <feGaussianBlur stdDeviation=\"2\"/>\r\n <feComposite in2=\"hardAlpha\" operator=\"out\"/>\r\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"/>\r\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_2_404\"/>\r\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_2_404\" result=\"shape\"/>\r\n </filter>\r\n </defs>\r\n </svg>\r\n `\r\n : `\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"35\" height=\"24\" fill=\"none\">\r\n <path stroke=\"#2F718D\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M4.062 4.367c0-1.437 1.221-2.603 2.727-2.603h21.815c1.506 0 2.727 1.166 2.727 2.603v15.62c0 1.438-1.221 2.604-2.727 2.604H6.789c-1.506 0-2.727-1.166-2.727-2.604V4.367Z\"/>\r\n <g filter=\"url(#message)\">\r\n <path stroke=\"#2F718D\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"1.5\" d=\"m5.426 3.066 8.647 7.338c2.067 1.754 5.18 1.754 7.247 0l8.648-7.338\" shape-rendering=\"crispEdges\"/>\r\n </g>\r\n <defs>\r\n <filter id=\"message\" width=\"34.042\" height=\"18.154\" x=\".676\" y=\"2.316\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\r\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/>\r\n <feOffset dy=\"4\"/>\r\n <feGaussianBlur stdDeviation=\"2\"/>\r\n <feComposite in2=\"hardAlpha\" operator=\"out\"/>\r\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.25 0\"/>\r\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_2_394\"/>\r\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_2_394\" result=\"shape\"/>\r\n </filter>\r\n </defs>\r\n </svg>\r\n `\r\n }\r\n <div class='flow'>\r\n <p>\r\n ${Object.values(mode)[0]}\r\n </p>\r\n <p>\r\n <small>\r\n An OTP will be sent by ${\r\n Object.keys(mode)[0].includes(\r\n 'sms',\r\n )\r\n ? 'sms'\r\n : 'email'\r\n } to verify your identity\r\n </small>\r\n </p>\r\n </div>\r\n </div>\r\n </label>`,\r\n )\r\n .join('\\n')\r\n : 'No modes yet'\r\n }\r\n </div>\r\n </fieldset>\r\n\r\n <button data-variant='ghost' id='contact-methods-outdated' style='--flow-space: .5rem' class='' type='button'>\r\n I am no longer using any of these options\r\n </button>\r\n\r\n <button data-variant='solid' id='select-otp-mode' type='submit'>\r\n <span class='text'>Continue</span>\r\n <svg aria-hidden='true' width=\"25\" height=\"24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M7 12h11m0 0-4.588-4M18 12l-4.588 4\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <span hidden class='spinner'></span>\r\n </button>\r\n </form>\r\n </div>\r\n\r\n <div hidden class='flow center' id='otp-verification'>\r\n <div class=\"nav justify-right\">\r\n <button data-type='icon' type='button' class='close-iframe'>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\">\r\n <path fill=\"#DBDBC4\" d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\" opacity=\".4\"/>\r\n <path fill=\"#91190F\" d=\"m13.06 12 2.3-2.3c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-2.3 2.3-2.3-2.3a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.3 2.3-2.3 2.3c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l2.3-2.3 2.3 2.3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-2.3-2.3Z\"/>\r\n </svg>\r\n <span class='visually-hidden'>Close SmileIdentity Verification frame</span>\r\n </button>\r\n </div>\r\n <h1>\r\n OTP Verification\r\n </h1>\r\n\r\n <div style='--flow-space: 4.25rem' id='otp-entry'>\r\n <form name='otp-submission-form' novalidate style='--flow-space: 1.5rem' class='flow center'>\r\n <label for='totp-token'>\r\n Enter the OTP sent to <span class='font-weight:bold'>${\r\n this.selectedOtpDeliveryMode\r\n }</span>\r\n </label>\r\n <input type='text' id='totp-token' maxlength='6' inputmode='numeric' autocomplete='one-time-code' />\r\n\r\n <p>\r\n Didn't receive the OTP${\r\n !this.selectedOtpDeliveryMode\r\n ? '?'\r\n : ` at <span class='font-weight:bold'>${this.selectedOtpDeliveryMode}</span>?`\r\n }\r\n </p>\r\n\r\n <button style='--flow-space: .5rem' data-variant='ghost' class='try-another-method' type='button'>\r\n Try another contact method\r\n </button>\r\n\r\n <button data-variant='solid' id='submit-otp' type='submit'>\r\n <span class='text'>Submit</span>\r\n <svg aria-hidden='true' width=\"25\" height=\"24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M7 12h11m0 0-4.588-4M18 12l-4.588 4\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <span hidden class='spinner'></span>\r\n </button>\r\n </form>\r\n </div>\r\n </div>\r\n `;\r\n}\r\n\r\nclass TotpConsent extends HTMLElement {\r\n constructor() {\r\n super();\r\n\r\n this.templateString = markup.bind(this);\r\n this.render = () => this.templateString();\r\n\r\n this.attachShadow({ mode: 'open' });\r\n\r\n this.modes = [];\r\n this['otp-delivery-mode'] = '';\r\n\r\n this.queryOtpModes = this.queryOtpModes.bind(this);\r\n this.selectOtpMode = this.selectOtpMode.bind(this);\r\n this.submitOtp = this.submitOtp.bind(this);\r\n this.switchContactMethod = this.switchContactMethod.bind(this);\r\n this.handleTotpConsentGrant = this.handleTotpConsentGrant.bind(this);\r\n this.handleTotpConsentContactMethodsOutdated =\r\n this.handleTotpConsentContactMethodsOutdated.bind(this);\r\n this.pages = [];\r\n }\r\n\r\n static get observedAttributes() {\r\n return ['modes', 'otp-delivery-mode'];\r\n }\r\n\r\n attributeChangedCallback(name) {\r\n switch (name) {\r\n case 'modes':\r\n case 'otp-delivery-mode': {\r\n const updatedTemplate = document.createElement('template');\r\n updatedTemplate.innerHTML = this.render();\r\n const updatedNode = updatedTemplate.content\r\n .cloneNode(true)\r\n .querySelector(`#${this.activeScreen.id}`);\r\n updatedNode.hidden = false;\r\n this.shadowRoot.replaceChild(updatedNode, this.activeScreen);\r\n this.setUpEventListeners();\r\n this.setActiveScreen(updatedNode);\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n setUpEventListeners() {\r\n // Screens\r\n this.idEntryScreen = this.shadowRoot.querySelector('#id-entry');\r\n this.selectModeScreen = this.shadowRoot.querySelector('#select-mode');\r\n this.otpVerificationScreen =\r\n this.shadowRoot.querySelector('#otp-verification');\r\n\r\n if (!this.activeScreen) {\r\n this.activeScreen = this.idEntryScreen;\r\n }\r\n\r\n // Buttons\r\n this.queryOtpModesButton =\r\n this.idEntryScreen.querySelector('#query-otp-modes');\r\n this.backButton = this.idEntryScreen.querySelector('#back-button');\r\n this.selectOtpModeButton =\r\n this.selectModeScreen.querySelector('#select-otp-mode');\r\n this.entryBackbutton = this.selectModeScreen.querySelector(\r\n '#back-to-entry-button',\r\n );\r\n this.contactMethodsOutdatedButton = this.selectModeScreen.querySelector(\r\n '#contact-methods-outdated',\r\n );\r\n this.submitOtpButton =\r\n this.otpVerificationScreen.querySelector('#submit-otp');\r\n this.switchContactMethodButton = this.otpVerificationScreen.querySelector(\r\n '.try-another-method',\r\n );\r\n const CloseIframeButtons =\r\n this.shadowRoot.querySelectorAll('.close-iframe');\r\n\r\n // Input Elements\r\n this.idNumberInput = this.idEntryScreen.querySelector('#id_number');\r\n this.modeInputs = this.selectModeScreen.querySelectorAll('[name=\"mode\"]');\r\n this.otpInput = this.otpVerificationScreen.querySelector('#totp-token');\r\n\r\n // Event Handlers\r\n this.queryOtpModesButton.addEventListener('click', (e) =>\r\n this.queryOtpModes(e),\r\n );\r\n this.selectOtpModeButton.addEventListener('click', (e) =>\r\n this.selectOtpMode(e),\r\n );\r\n this.submitOtpButton.addEventListener('click', (e) => this.submitOtp(e));\r\n this.switchContactMethodButton.addEventListener('click', (e) =>\r\n this.switchContactMethod(e),\r\n );\r\n this.contactMethodsOutdatedButton.addEventListener('click', (e) =>\r\n this.handleTotpConsentContactMethodsOutdated(e),\r\n );\r\n\r\n this.entryBackbutton.addEventListener('click', () => {\r\n this.handleBackClick();\r\n });\r\n\r\n this.backButton.addEventListener('click', () => {\r\n this.handleBackClick();\r\n });\r\n\r\n CloseIframeButtons.forEach((button) => {\r\n button.addEventListener(\r\n 'click',\r\n () => {\r\n this.closeWindow();\r\n },\r\n false,\r\n );\r\n });\r\n }\r\n\r\n closeWindow() {\r\n const referenceWindow = window.parent;\r\n [referenceWindow.parent, referenceWindow].forEach((win) => {\r\n win.postMessage('SmileIdentity::Close', '*');\r\n });\r\n }\r\n\r\n handleBackClick() {\r\n const page = this.pages.pop();\r\n if (page) {\r\n this.setActiveScreen(page);\r\n } else {\r\n this.dispatchEvent(\r\n new CustomEvent('end-user-consent.totp.cancelled', {}),\r\n );\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n const template = document.createElement('template');\r\n template.innerHTML = this.render();\r\n\r\n this.shadowRoot.appendChild(template.content.cloneNode(true));\r\n this.setUpEventListeners();\r\n }\r\n\r\n switchContactMethod() {\r\n this.queryOtpModes();\r\n }\r\n\r\n resetForm() {\r\n const invalidElements =\r\n this.activeScreen.querySelectorAll('[aria-invalid]');\r\n invalidElements.forEach((el) => el.removeAttribute('aria-invalid'));\r\n\r\n const validationMessages = this.activeScreen.querySelectorAll(\r\n '.validation-message',\r\n );\r\n validationMessages.forEach((el) => el.remove());\r\n }\r\n\r\n handleIdNumberValidationErrors(errors) {\r\n const fields = Object.keys(errors);\r\n\r\n fields.forEach((field) => {\r\n const input = this.activeScreen.querySelector(`#${field}`);\r\n input.setAttribute('aria-invalid', 'true');\r\n input.setAttribute('aria-describedby', `${field}-hint`);\r\n\r\n const errorDiv = document.createElement('div');\r\n errorDiv.setAttribute('id', `${field}-hint`);\r\n errorDiv.setAttribute('class', 'validation-message');\r\n // eslint-disable-next-line prefer-destructuring\r\n errorDiv.textContent = errors[field][0];\r\n\r\n input.insertAdjacentElement('afterend', errorDiv);\r\n });\r\n }\r\n\r\n handleActiveScreenErrors(error) {\r\n const submitButton = this.activeScreen.querySelector('[type=\"submit\"]');\r\n const errorDiv = document.createElement('div');\r\n errorDiv.setAttribute('class', 'validation-message');\r\n errorDiv.textContent = error;\r\n submitButton.insertAdjacentElement('beforebegin', errorDiv);\r\n }\r\n\r\n validateIdNumber(idNumber) {\r\n const validationConstraints = {\r\n id_number: {\r\n format: new RegExp(this.idRegex),\r\n presence: {\r\n allowEmpty: false,\r\n message: 'is required',\r\n },\r\n },\r\n };\r\n\r\n const errors = validate({ id_number: idNumber }, validationConstraints);\r\n\r\n if (errors) {\r\n this.handleIdNumberValidationErrors(errors);\r\n }\r\n\r\n return errors;\r\n }\r\n\r\n async queryOtpModes(event) {\r\n if (event) {\r\n // ACTION: disable another submission\r\n event.preventDefault();\r\n\r\n // ACTION: Reset any form validation errors'\r\n this.resetForm();\r\n }\r\n\r\n // ACTION: Validate idNumber\r\n const validationErrors = this.validateIdNumber(this.idNumberInput.value);\r\n\r\n // ACTION: Get and set idNumber\r\n localStorage.setItem('idNumber', this.idNumberInput.value || this.idNumber);\r\n\r\n if (!validationErrors) {\r\n const data = {\r\n country: this.country,\r\n id_number: this.idNumber,\r\n id_type: this.idType,\r\n partner_id: this.partnerId,\r\n token: this.token,\r\n };\r\n const url = `${this.baseUrl}/totp_consent`;\r\n\r\n try {\r\n this.toggleLoading();\r\n const response = await postData(url, data);\r\n const json = await response.json();\r\n this.toggleLoading();\r\n\r\n if (!response.ok) {\r\n this.handleActiveScreenErrors(json.error);\r\n } else {\r\n this.sessionId = json.session_id;\r\n this.modes = json.modes;\r\n this.setActiveScreen(this.selectModeScreen);\r\n this.setAttribute('modes', json.modes);\r\n }\r\n } catch (error) {\r\n this.toggleLoading();\r\n this.handleActiveScreenErrors(error.message);\r\n }\r\n }\r\n }\r\n\r\n async selectOtpMode(event) {\r\n // ACTION: disable another submission\r\n event.preventDefault();\r\n\r\n // ACTION: Reset any form validation errors'\r\n this.resetForm();\r\n\r\n // ACTION: Get mode\r\n this.mode = Array.prototype.find.call(\r\n this.modeInputs,\r\n (node) => node.checked,\r\n ).value;\r\n const data = {\r\n country: this.country,\r\n id_number: this.idNumber,\r\n id_type: this.idType,\r\n mode: this.mode,\r\n partner_id: this.partnerId,\r\n session_id: this.sessionId,\r\n token: this.token,\r\n };\r\n const url = `${this.baseUrl}/totp_consent/mode`;\r\n\r\n try {\r\n this.toggleLoading();\r\n const response = await postData(url, data);\r\n const json = await response.json();\r\n this.toggleLoading();\r\n\r\n if (!response.ok) {\r\n this.handleActiveScreenErrors(json.error);\r\n } else {\r\n this.selectedOtpDeliveryMode = this.modes.filter(\r\n (mode) => mode[this.mode],\r\n )[0][this.mode];\r\n this.setActiveScreen(this.otpVerificationScreen);\r\n this.setAttribute('otp-delivery-mode', this.selectedOtpDeliveryMode);\r\n }\r\n } catch (error) {\r\n this.toggleLoading();\r\n this.handleActiveScreenErrors(error.message);\r\n }\r\n }\r\n\r\n async submitOtp(event) {\r\n // ACTION: disable another submission\r\n event.preventDefault();\r\n\r\n // ACTION: Reset any form validation errors'\r\n this.resetForm();\r\n\r\n this.otp = this.otpInput.value;\r\n\r\n const data = {\r\n country: this.country,\r\n id_number: this.idNumber,\r\n id_type: this.idType,\r\n otp: this.otp,\r\n partner_id: this.partnerId,\r\n session_id: this.sessionId,\r\n token: this.token,\r\n };\r\n const url = `${this.baseUrl}/totp_consent/otp`;\r\n\r\n try {\r\n this.toggleLoading();\r\n const response = await postData(url, data);\r\n const json = await response.json();\r\n this.toggleLoading();\r\n\r\n if (!response.ok) {\r\n this.handleActiveScreenErrors(json.error);\r\n } else {\r\n this.handleTotpConsentGrant(event);\r\n }\r\n } catch (error) {\r\n this.toggleLoading();\r\n this.handleActiveScreenErrors(error.message);\r\n }\r\n }\r\n\r\n toggleLoading() {\r\n const button = this.activeScreen.querySelector('button[type=\"submit\"]');\r\n const text = button.querySelector('.text');\r\n const arrow = button.querySelector('svg');\r\n const spinner = button.querySelector('.spinner');\r\n\r\n button.toggleAttribute('disabled');\r\n text.toggleAttribute('hidden');\r\n arrow.toggleAttribute('hidden');\r\n spinner.toggleAttribute('hidden');\r\n }\r\n\r\n setActiveScreen(screen) {\r\n this.activeScreen.hidden = true;\r\n screen.hidden = false;\r\n this.activeScreen = screen;\r\n }\r\n\r\n get baseUrl() {\r\n return this.getAttribute('base-url');\r\n }\r\n\r\n get country() {\r\n return this.getAttribute('country');\r\n }\r\n\r\n get idHint() {\r\n return this.getAttribute('id-hint') || 'Your BVN should be 11 digits long';\r\n }\r\n\r\n get idNumber() {\r\n return localStorage.getItem('idNumber');\r\n }\r\n\r\n get idRegex() {\r\n return this.getAttribute('id-regex');\r\n }\r\n\r\n get idType() {\r\n return this.getAttribute('id-type');\r\n }\r\n\r\n get idTypeLabel() {\r\n return this.getAttribute('id-type-label');\r\n }\r\n\r\n get partnerId() {\r\n return this.getAttribute('partner-id');\r\n }\r\n\r\n get partnerName() {\r\n return this.getAttribute('partner-name');\r\n }\r\n\r\n get token() {\r\n return this.getAttribute('token');\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#001096';\r\n }\r\n\r\n get hideBack() {\r\n return this.hasAttribute('hide-back');\r\n }\r\n\r\n get showNavigation() {\r\n return this.hasAttribute('show-navigation');\r\n }\r\n\r\n handleTotpConsentGrant() {\r\n const customEvent = new CustomEvent('end-user-consent.totp.granted', {\r\n detail: {\r\n consented: {\r\n contact_information: true,\r\n document_information: true,\r\n personal_details: true,\r\n },\r\n id_number: this.idNumber,\r\n session_id: this.sessionId,\r\n },\r\n });\r\n\r\n this.dispatchEvent(customEvent);\r\n }\r\n\r\n handleTotpConsentContactMethodsOutdated() {\r\n const tag = 'end-user-consent.totp.denied.contact-methods-outdated';\r\n const customEvent = new CustomEvent(tag, {\r\n detail: {\r\n data: {\r\n id_number: this.idNumber,\r\n session_id: this.sessionId,\r\n },\r\n message: tag,\r\n },\r\n });\r\n\r\n this.dispatchEvent(customEvent);\r\n }\r\n}\r\n\r\nif ('customElements' in window && !window.customElements.get('totp-consent')) {\r\n window.customElements.define('totp-consent', TotpConsent);\r\n}\r\n\r\nexport {\r\n // eslint-disable-next-line import/prefer-default-export\r\n TotpConsent,\r\n};\r\n","class PoweredBySmileId extends HTMLElement {\r\n constructor() {\r\n super();\r\n const template = document.createElement('template');\r\n template.innerHTML = `\r\n <p style='margin-inline: auto; max-inline-size: 10rem'>\r\n <svg viewBox=\"0 0 90 9\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M0.544 7V1.4H2.616C3.064 1.4 3.43467 1.47467 3.728 1.624C4.02133 1.77333 4.24 1.97867 4.384 2.24C4.528 2.50133 4.6 2.79467 4.6 3.12C4.6 3.42933 4.53067 3.71467 4.392 3.976C4.25333 4.232 4.03733 4.44 3.744 4.6C3.45067 4.75467 3.07467 4.832 2.616 4.832H1.568V7H0.544ZM1.568 4H2.552C2.90933 4 3.16533 3.92267 3.32 3.768C3.48 3.608 3.56 3.392 3.56 3.12C3.56 2.84267 3.48 2.62667 3.32 2.472C3.16533 2.312 2.90933 2.232 2.552 2.232H1.568V4ZM7.08025 7.096C6.69625 7.096 6.34958 7.008 6.04025 6.832C5.73625 6.656 5.49358 6.41333 5.31225 6.104C5.13625 5.78933 5.04825 5.42667 5.04825 5.016C5.04825 4.60533 5.13892 4.24533 5.32025 3.936C5.50158 3.62133 5.74425 3.376 6.04825 3.2C6.35758 3.024 6.70425 2.936 7.08825 2.936C7.46692 2.936 7.80825 3.024 8.11225 3.2C8.42158 3.376 8.66425 3.62133 8.84025 3.936C9.02158 4.24533 9.11225 4.60533 9.11225 5.016C9.11225 5.42667 9.02158 5.78933 8.84025 6.104C8.66425 6.41333 8.42158 6.656 8.11225 6.832C7.80292 7.008 7.45892 7.096 7.08025 7.096ZM7.08025 6.208C7.34692 6.208 7.57892 6.10933 7.77625 5.912C7.97358 5.70933 8.07225 5.41067 8.07225 5.016C8.07225 4.62133 7.97358 4.32533 7.77625 4.128C7.57892 3.92533 7.34958 3.824 7.08825 3.824C6.81625 3.824 6.58158 3.92533 6.38425 4.128C6.19225 4.32533 6.09625 4.62133 6.09625 5.016C6.09625 5.41067 6.19225 5.70933 6.38425 5.912C6.58158 6.10933 6.81358 6.208 7.08025 6.208ZM10.6632 7L9.50319 3.032H10.5192L11.2072 5.888L12.0072 3.032H13.1432L13.9432 5.888L14.6392 3.032H15.6552L14.4872 7H13.4232L12.5752 4.032L11.7272 7H10.6632ZM18.0886 7.096C17.6886 7.096 17.334 7.01067 17.0246 6.84C16.7153 6.66933 16.4726 6.42933 16.2966 6.12C16.1206 5.81067 16.0326 5.45333 16.0326 5.048C16.0326 4.63733 16.118 4.272 16.2886 3.952C16.4646 3.632 16.7046 3.384 17.0086 3.208C17.318 3.02667 17.6806 2.936 18.0966 2.936C18.486 2.936 18.83 3.02133 19.1286 3.192C19.4273 3.36267 19.6593 3.59733 19.8246 3.896C19.9953 4.18933 20.0806 4.51733 20.0806 4.88C20.0806 4.93867 20.078 5 20.0726 5.064C20.0726 5.128 20.07 5.19467 20.0646 5.264H17.0486C17.07 5.57333 17.1766 5.816 17.3686 5.992C17.566 6.168 17.8033 6.256 18.0806 6.256C18.2886 6.256 18.462 6.21067 18.6006 6.12C18.7446 6.024 18.8513 5.90133 18.9206 5.752H19.9606C19.886 6.00267 19.7606 6.232 19.5846 6.44C19.414 6.64267 19.2006 6.80267 18.9446 6.92C18.694 7.03733 18.4086 7.096 18.0886 7.096ZM18.0966 3.768C17.846 3.768 17.6246 3.84 17.4326 3.984C17.2406 4.12267 17.118 4.336 17.0646 4.624H19.0406C19.0246 4.36267 18.9286 4.15467 18.7526 4C18.5766 3.84533 18.358 3.768 18.0966 3.768ZM20.9419 7V3.032H21.8539L21.9499 3.776C22.0939 3.52 22.2885 3.31733 22.5339 3.168C22.7845 3.01333 23.0779 2.936 23.4139 2.936V4.016H23.1259C22.9019 4.016 22.7019 4.05067 22.5259 4.12C22.3499 4.18933 22.2112 4.30933 22.1099 4.48C22.0139 4.65067 21.9659 4.888 21.9659 5.192V7H20.9419ZM25.9714 7.096C25.5714 7.096 25.2168 7.01067 24.9074 6.84C24.5981 6.66933 24.3554 6.42933 24.1794 6.12C24.0034 5.81067 23.9154 5.45333 23.9154 5.048C23.9154 4.63733 24.0008 4.272 24.1714 3.952C24.3474 3.632 24.5874 3.384 24.8914 3.208C25.2008 3.02667 25.5634 2.936 25.9794 2.936C26.3688 2.936 26.7128 3.02133 27.0114 3.192C27.3101 3.36267 27.5421 3.59733 27.7074 3.896C27.8781 4.18933 27.9634 4.51733 27.9634 4.88C27.9634 4.93867 27.9608 5 27.9554 5.064C27.9554 5.128 27.9528 5.19467 27.9474 5.264H24.9314C24.9528 5.57333 25.0594 5.816 25.2514 5.992C25.4488 6.168 25.6861 6.256 25.9634 6.256C26.1714 6.256 26.3448 6.21067 26.4834 6.12C26.6274 6.024 26.7341 5.90133 26.8034 5.752H27.8434C27.7688 6.00267 27.6434 6.232 27.4674 6.44C27.2968 6.64267 27.0834 6.80267 26.8274 6.92C26.5768 7.03733 26.2914 7.096 25.9714 7.096ZM25.9794 3.768C25.7288 3.768 25.5074 3.84 25.3154 3.984C25.1234 4.12267 25.0008 4.336 24.9474 4.624H26.9234C26.9074 4.36267 26.8114 4.15467 26.6354 4C26.4594 3.84533 26.2408 3.768 25.9794 3.768ZM30.6487 7.096C30.2754 7.096 29.942 7.00533 29.6487 6.824C29.3554 6.64267 29.1234 6.39467 28.9527 6.08C28.782 5.76533 28.6967 5.408 28.6967 5.008C28.6967 4.608 28.782 4.25333 28.9527 3.944C29.1234 3.62933 29.3554 3.384 29.6487 3.208C29.942 3.02667 30.2754 2.936 30.6487 2.936C30.9474 2.936 31.2087 2.992 31.4327 3.104C31.6567 3.216 31.838 3.37333 31.9767 3.576V1.24H33.0007V7H32.0887L31.9767 6.432C31.8487 6.608 31.678 6.76267 31.4647 6.896C31.2567 7.02933 30.9847 7.096 30.6487 7.096ZM30.8647 6.2C31.1954 6.2 31.4647 6.09067 31.6727 5.872C31.886 5.648 31.9927 5.36267 31.9927 5.016C31.9927 4.66933 31.886 4.38667 31.6727 4.168C31.4647 3.944 31.1954 3.832 30.8647 3.832C30.5394 3.832 30.27 3.94133 30.0567 4.16C29.8434 4.37867 29.7367 4.66133 29.7367 5.008C29.7367 5.35467 29.8434 5.64 30.0567 5.864C30.27 6.088 30.5394 6.2 30.8647 6.2ZM38.3017 7.096C38.003 7.096 37.7417 7.04 37.5177 6.928C37.2937 6.816 37.1124 6.65867 36.9737 6.456L36.8617 7H35.9497V1.24H36.9737V3.6C37.1017 3.424 37.2697 3.26933 37.4777 3.136C37.691 3.00267 37.9657 2.936 38.3017 2.936C38.675 2.936 39.0084 3.02667 39.3017 3.208C39.595 3.38933 39.827 3.63733 39.9977 3.952C40.1684 4.26667 40.2537 4.624 40.2537 5.024C40.2537 5.424 40.1684 5.78133 39.9977 6.096C39.827 6.40533 39.595 6.65067 39.3017 6.832C39.0084 7.008 38.675 7.096 38.3017 7.096ZM38.0857 6.2C38.411 6.2 38.6804 6.09067 38.8937 5.872C39.107 5.65333 39.2137 5.37067 39.2137 5.024C39.2137 4.67733 39.107 4.392 38.8937 4.168C38.6804 3.944 38.411 3.832 38.0857 3.832C37.755 3.832 37.483 3.944 37.2697 4.168C37.0617 4.38667 36.9577 4.66933 36.9577 5.016C36.9577 5.36267 37.0617 5.648 37.2697 5.872C37.483 6.09067 37.755 6.2 38.0857 6.2ZM41.3051 8.76L42.2251 6.736H41.9851L40.4411 3.032H41.5531L42.6651 5.824L43.8251 3.032H44.9131L42.3931 8.76H41.3051Z\" fill=\"#001096\"/>\r\n <g clipPath=\"url(#clip0_1923_23296)\">\r\n <path d=\"M58.5141 6.02913C58.5644 6.37005 58.8092 6.77098 59.4839 6.77098C60.0578 6.77098 60.336 6.56623 60.336 6.23338C60.336 5.90053 60.142 5.75579 59.788 5.71292L58.5988 5.58482C57.5612 5.47387 56.9539 4.86819 56.9539 3.87872C56.9539 2.77779 57.7801 2.04401 59.4335 2.04401C61.2135 2.04401 61.9221 2.88874 61.9894 3.88679H60.3195C60.2687 3.51157 59.965 3.27253 59.442 3.27253C58.9783 3.27253 58.6577 3.44349 58.6577 3.75062C58.6577 3.99774 58.8097 4.18534 59.2141 4.21964L60.1844 4.30486C61.4918 4.41582 62.0397 5.04672 62.0397 6.0962C62.0397 7.21377 61.3477 7.999 59.4504 7.999C57.5532 7.999 56.9534 7.02667 56.8691 6.02862H58.5141V6.02913Z\" fill=\"#001096\" />\r\n <path d=\"M70.1965 5.28736V7.85484H68.5431V5.56019C68.5431 5.09925 68.3746 4.80069 67.9194 4.80069C67.4212 4.80069 67.2108 5.11639 67.2108 5.78159V7.85484H65.5824V5.56019C65.5824 5.09925 65.4133 4.80069 64.9581 4.80069C64.4605 4.80069 64.2496 5.11639 64.2496 5.78159V7.85484H62.5967V3.58932H64.2496V4.24644C64.5113 3.75171 64.9581 3.45265 65.6586 3.45265C66.3592 3.45265 66.8309 3.7855 67.0587 4.35689C67.3285 3.80265 67.7842 3.45265 68.5351 3.45265C69.6735 3.45265 70.197 4.16928 70.197 5.28736H70.1965Z\" fill=\"#001096\" />\r\n <path d=\"M70.9785 3.8535V2.18118H72.6319V3.8535H70.9785ZM70.9785 7.85476V4.2504H72.6319V7.85476H70.9785Z\" fill=\"#001096\" />\r\n <path d=\"M73.4121 7.85475V2.18167H75.065V7.85525H73.4121V7.85475Z\" fill=\"#001096\" />\r\n <path d=\"M78.7264 6.53958H80.3579C80.1968 7.3243 79.5696 7.99151 78.0179 7.99151C76.2294 7.99151 75.6221 6.8568 75.6221 5.71351C75.6221 4.48499 76.3391 3.45265 78.0179 3.45265C79.8653 3.45265 80.3629 4.59594 80.3629 5.77302C80.3629 5.91776 80.3539 6.05443 80.3374 6.13966H77.2336C77.3178 6.68583 77.5881 6.89059 78.0518 6.89059C78.3729 6.89059 78.6083 6.73526 78.7269 6.53908L78.7264 6.53958ZM77.2416 5.21877H78.8022C78.7519 4.77497 78.5404 4.52785 78.0428 4.52785C77.5791 4.52785 77.3348 4.70689 77.2416 5.21877Z\" fill=\"#001096\" />\r\n <path d=\"M83.5907 7.85476H81.8994L81.9034 2.18118H83.5902L83.5912 7.85476H83.5907Z\" fill=\"#001096\" />\r\n <path d=\"M89.9995 5.00535C89.9995 6.46434 89.1474 7.85475 87.3345 7.85475H84.3652V2.18167H87.3345C89.1479 2.18167 89.9995 3.54686 89.9995 5.00535ZM86.9376 6.5067C87.8401 6.5067 88.2364 5.99482 88.2364 5.00535C88.2364 4.01588 87.8226 3.52971 86.9376 3.52971H86.06V6.5067H86.9376Z\" fill=\"#001096\" />\r\n <path d=\"M52.2123 3.88737H48V7.86846H52.2123V3.88737Z\" fill=\"#001096\" />\r\n <path d=\"M53.2359 0C53.2165 0 53.1975 0.00201727 53.1786 0.00252159C53.1591 0.00252159 53.1402 0 53.1207 0C52.0457 0 51.0869 0.708567 51.0869 2.27044V3.8888H55.2882V2.27044C55.2882 0.708567 54.3174 0 53.2359 0Z\" fill=\"#FF9B00\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1923_23296\">\r\n <rect width=\"42\" height=\"8\" fill=\"white\" transform=\"translate(48)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </p>\r\n `;\r\n\r\n this.attachShadow({ mode: 'open' }).appendChild(\r\n template.content.cloneNode(true),\r\n );\r\n }\r\n}\r\n\r\nif (\r\n window.customElements &&\r\n !window.customElements.get('powered-by-smile-id')\r\n) {\r\n window.customElements.define('powered-by-smile-id', PoweredBySmileId);\r\n}\r\n\r\nexport default PoweredBySmileId;\r\n","import styles from '../../../styles/src/styles';\r\nimport '../../totp-consent/src/TotpConsent';\r\nimport '../../attribution/PoweredBySmileId';\r\n\r\nfunction templateString() {\r\n return `\r\n <style>\r\n *,\r\n *::before,\r\n *::after {\r\n box-sizing: border-box;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n\r\n :host {\r\n --flow-space: 1.5rem;\r\n\r\n --color-dark: #404040;\r\n --color-grey: #555B69;\r\n\r\n --color-success: #1EB244;\r\n --color-failure: #FFEDEB;\r\n --color-failure-tint: #F86B58;\r\n --color-danger: #FF5805;\r\n \r\n --color-primary-blue: #151F72;\r\n --color-richblue: #043C93;\r\n --color-theme: ${this.themeColor};\r\n }\r\n\r\n html {\r\n font-family: 'DM Sans', sans-serif;\r\n }\r\n\r\n [hidden] {\r\n display: none !important;\r\n }\r\n\r\n [disabled] {\r\n cursor: not-allowed !important;\r\n filter: grayscale(75%);\r\n }\r\n\r\n .visually-hidden {\r\n border: 0;\r\n clip: rect(1px 1px 1px 1px);\r\n clip: rect(1px, 1px, 1px, 1px);\r\n height: auto;\r\n margin: 0;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n white-space: nowrap;\r\n width: 1px;\r\n }\r\n\r\n .color-dark {\r\n color: var(--color-dark);\r\n }\r\n\r\n .color-grey {\r\n color: var(--color-grey);\r\n }\r\n\r\n .flow > * + * {\r\n margin-top: var(--flow-space);\r\n }\r\n\r\n .center {\r\n margin-left: auto;\r\n margin-right: auto;\r\n\r\n text-align: center;\r\n }\r\n\r\n h1 {\r\n font-size: 20px;\r\n font-weight: 400;\r\n }\r\n\r\n ol[role=list], ul[role=list] {\r\n list-style: none;\r\n padding-left: 0;\r\n }\r\n\r\n button {\r\n --button-color: var(--color-default);\r\n --flow-space: 3rem;\r\n -webkit-appearance: none;\r\n -moz-appearance: none;\r\n align-items: center;\r\n appearance: none;\r\n background-color: transparent;\r\n border-radius: 2.5rem;\r\n border: none;\r\n color: #ffffff;\r\n cursor: pointer;\r\n display: inline-flex;\r\n font-size: 20px;\r\n font-weight: 500;\r\n inline-size: 100%;\r\n justify-content: center;\r\n letter-spacing: .05ch;\r\n line-height: 1;\r\n padding: 1rem 2.5rem;\r\n text-align: center;\r\n text-decoration: none;\r\n }\r\n\r\n button[data-variant='solid'] {\r\n background-color: var(--button-color);\r\n border: 2px solid var(--button-color);\r\n }\r\n\r\n button[data-variant='outline'] {\r\n color: var(--button-color);\r\n border: 2px solid var(--button-color);\r\n }\r\n\r\n button[data-variant='ghost'] {\r\n color: var(--button-color);\r\n }\r\n\r\n button:hover,\r\n button:focus,\r\n button:active {\r\n --button-color: var(--theme-color);\r\n }\r\n\r\n button:disabled {\r\n --button-color: var(--color-disabled);\r\n }\r\n\r\n button[data-type='icon'] {\r\n align-items: center;\r\n background-color: transparent;\r\n border: 0;\r\n cursor: pointer;\r\n display: flex;\r\n padding: 0;\r\n }\r\n\r\n button[data-type='icon'] {\r\n height: 2rem;\r\n padding: 0;\r\n width: 2rem;\r\n background: transparent;\r\n }\r\n\r\n .nav {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n .justify-right {\r\n justify-content: end !important;\r\n }\r\n\r\n .back-wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n \r\n .back-button-text {\r\n font-size: 11px;\r\n line-height: 1;\r\n color: ${this.themeColor} !important;\r\n }\r\n\r\n img {\r\n border-radius: 50%;\r\n position: relative;\r\n }\r\n\r\n img::before {\r\n background-color: #ffffff;\r\n border-radius: 50%;\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n }\r\n\r\n .demo-tip {\r\n align-items: center;\r\n background-color: #f5fcff;\r\n border-radius: .75rem;\r\n border: 1px solid #A9D1E8;\r\n color: inherit;\r\n display: flex;\r\n font-size: .875rem;\r\n max-width: 36rem;\r\n padding: 1rem;\r\n text-align: left;\r\n text-decoration: none;\r\n }\r\n\r\n .demo-tip > * + * {\r\n margin-left: .5rem;\r\n }\r\n\r\n .callout {\r\n font-size: .875rem;\r\n padding: 1rem 1.5rem;\r\n max-width: 20.6875rem;\r\n }\r\n\r\n .processing-list {\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n gap: 2rem;\r\n padding-top: 2rem;\r\n\r\n }\r\n\r\n .processing-list__items {\r\n display: flex;\r\n align-items: center;\r\n gap: 1rem;\r\n }\r\n\r\n .processing-list__items > * + p {\r\n margin-left: 1rem;\r\n }\r\n\r\n .processing-list__items-item {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.5rem;\r\n }\r\n .processing-list__item__title {\r\n color: var(--color-theme);\r\n }\r\n\r\n .processing-list__items-item__description {\r\n width: 269px\r\n }\r\n\r\n .theme {\r\n font-weight: 700;\r\n color: var(--color-theme);\r\n }\r\n\r\n .tooltip {\r\n position: relative;\r\n }\r\n\r\n .tooltip__trigger {\r\n }\r\n\r\n .tooltip__trigger:focus + .tooltip__content,\r\n .tooltip__trigger:hover + .tooltip__content {\r\n display: flex;\r\n }\r\n\r\n .tooltip__content {\r\n align-items: flex-start;\r\n background-color: #ffffff;\r\n border-radius: .5rem;\r\n box-shadow: 0px 12px 36px rgba(0, 0, 0, 0.08);\r\n display: none;\r\n padding: 1.25rem;\r\n position: absolute;\r\n right: 20px;\r\n bottom: -50px;\r\n width: 200px;\r\n }\r\n\r\n .tooltip__content > :last-child {\r\n margin-left: 1rem;\r\n }\r\n\r\n .tooltip__content .title {\r\n font-size: .75rem;\r\n font-weight: 700;\r\n }\r\n\r\n .tooltip__content .description {\r\n --flow-space: .25rem;\r\n font-size: .625rem;\r\n color: #6B7280;\r\n }\r\n\r\n svg {\r\n flex-shrink: 0;\r\n }\r\n\r\n [disabled] {\r\n cursor: not-allowed;\r\n filter: opacity(.7);\r\n }\r\n\r\n .credits {\r\n --flow-space: 2rem;\r\n margin-inline: auto;\r\n max-inline-size: 10rem;\r\n }\r\n\r\n .company-name {\r\n text-transform: uppercase;\r\n letter-spacing: .1rem;\r\n border-left: 1px solid #cecece;\r\n margin-left: .75rem;\r\n padding-left: .75rem;\r\n display: inline-flex;\r\n align-items: center;\r\n }\r\n\r\n .company-name svg {\r\n margin-right: .5rem;\r\n }\r\n #cancel {\r\n color: var(--color-danger);\r\n }\r\n </style>\r\n ${styles(this.themeColor)}\r\n <div id='consent-screen'>\r\n <section class='flow center'>\r\n <div class=\"nav ${this.hideBack ? 'justify-right' : ''}\">\r\n <div class=\"back-wrapper\" ${this.hideBack ? 'hidden' : ''}>\r\n <button type='button' data-type='icon' id=\"back-button\" class=\"back-button\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\">\r\n <path fill=\"#DBDBC4\" d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\" opacity=\".4\"/>\r\n <path fill=\"${this.themeColor}\" d=\"M15.5 11.25h-5.19l1.72-1.72c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-3 3c-.29.29-.29.77 0 1.06l3 3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-1.72-1.72h5.19c.41 0 .75-.34.75-.75s-.34-.75-.75-.75Z\"/>\r\n </svg>\r\n </button>\r\n <div class=\"back-button-text\">Back</div>\r\n </div>\r\n <button data-type='icon' type='button' class='close-iframe'>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" fill=\"none\">\r\n <path fill=\"#DBDBC4\" d=\"M12 22c5.523 0 10-4.477 10-10S17.523 2 12 2 2 6.477 2 12s4.477 10 10 10Z\" opacity=\".4\"/>\r\n <path fill=\"#91190F\" d=\"m13.06 12 2.3-2.3c.29-.29.29-.77 0-1.06a.754.754 0 0 0-1.06 0l-2.3 2.3-2.3-2.3a.754.754 0 0 0-1.06 0c-.29.29-.29.77 0 1.06l2.3 2.3-2.3 2.3c-.29.29-.29.77 0 1.06.15.15.34.22.53.22s.38-.07.53-.22l2.3-2.3 2.3 2.3c.15.15.34.22.53.22s.38-.07.53-.22c.29-.29.29-.77 0-1.06l-2.3-2.3Z\"/>\r\n </svg>\r\n <span class='visually-hidden'>Close SmileIdentity Verification frame</span>\r\n </button>\r\n </div>\r\n <img alt='' width='50' height='50' src='${this.partnerLogoURL}' />\r\n <p class='demo-tip' ${this.demoMode ? '' : 'hidden'}>\r\n <svg aria-hidden='true' width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4.46045\" y=\"4.46069\" width=\"47.7205\" height=\"47.7205\" rx=\"23.8603\" fill=\"white\"/>\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M35.1578 25.7487H34.2813V23.1195C34.2813 20.2273 31.915 17.861 29.0229 17.861C26.1307 17.861 23.7644 20.2273 23.7644 23.1195V25.7487H22.888C21.3981 25.7487 20.2588 26.888 20.2588 28.3779V34.5128C20.2588 36.0027 21.3981 37.142 22.888 37.142H35.1578C36.6476 37.142 37.787 36.0027 37.787 34.5128V28.3779C37.787 26.888 36.6476 25.7487 35.1578 25.7487ZM25.5171 23.1194C25.5171 21.1913 27.0946 19.6138 29.0227 19.6138C30.9508 19.6138 32.5283 21.1913 32.5283 23.1194V25.7487H25.5171V23.1194ZM35.1577 35.3892C35.6836 35.3892 36.0342 35.0386 36.0342 34.5128V28.3779C36.0342 27.8521 35.6836 27.5015 35.1577 27.5015H22.888C22.3622 27.5015 22.0116 27.8521 22.0116 28.3779V34.5128C22.0116 35.0386 22.3622 35.3892 22.888 35.3892H35.1577Z\" fill=\"#2D9CDB\"/>\r\n <rect x=\"4.46045\" y=\"4.46069\" width=\"47.7205\" height=\"47.7205\" rx=\"23.8603\" stroke=\"#DDF2F7\" stroke-width=\"7.15808\"/>\r\n </svg>\r\n\r\n <span>\r\n This consent screen is for illustrative purposes only. Demo App does not collect personal ID data.\r\n </span>\r\n </p>\r\n <h1 class='text-base font-bold'>\r\n <span class='theme'>${this.partnerName}</span>\r\n wants to access your\r\n <span class='theme'>${this.idTypeLabel}</span>\r\n information\r\n </h1>\r\n <p class='text-base font-normal'>\r\n This will allow ${this.partnerName} to:\r\n </p>\r\n </section>\r\n\r\n <ul role='list' class='processing-list flow' style='--flow-space: 0rem; margin: var(--flow-space) auto;'>\r\n <li class='processing-list__items'>\r\n <svg width=\"20\" height=\"24\" viewBox=\"0 0 20 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path opacity=\"0.4\" d=\"M9.49983 0C13.0841 0 15.9894 2.90479 15.9894 6.4883C15.9894 10.0718 13.0841 12.9766 9.49983 12.9766C5.91561 12.9766 3.01025 10.0718 3.01025 6.4883C3.01025 2.90479 5.91561 0 9.49983 0Z\" fill=\"#5E646E\"/>\r\n <path d=\"M1.47086 20.2288H17.5251C18.0342 20.2288 18.5313 20.1561 19 20.0227C18.3413 15.3646 14.3409 11.7811 9.50001 11.7811C4.65909 11.7811 0.658656 15.3646 0 20.0227C0.468737 20.1561 0.961716 20.2288 1.4749 20.2288\" fill=\"#151F72\"/>\r\n <path d=\"M14.9238 19.0148L13.8262 17.931C13.8262 17.931 13.6341 17.7956 13.5244 17.7956C13.4146 17.7956 13.3049 17.8498 13.2226 17.931C13.1402 18.0123 13.0854 18.1207 13.0854 18.2291C13.0854 18.3374 13.1402 18.4458 13.2226 18.5271L14.622 19.9089C14.622 19.9089 14.814 20.0443 14.9238 20.0443C15.0335 20.0443 15.1433 19.9901 15.2256 19.9089L17.8323 17.335C17.8323 17.335 17.9421 17.1724 17.9421 17.0369C17.9421 16.9015 17.9146 16.8202 17.8323 16.7389C17.75 16.6576 17.6677 16.6305 17.5579 16.6305C17.4482 16.6305 17.3384 16.6576 17.2835 16.7389L15.0061 18.9877L14.9238 19.0148ZM15.5 24C15.5 24 15.4177 24 15.3902 24C15.3628 24 15.3354 24 15.3079 24C14.0457 23.6207 13.0305 22.8621 12.2073 21.7241C11.4116 20.5862 11 19.3128 11 17.931V15.2217C11 15.0591 11.0549 14.8965 11.1646 14.734C11.2744 14.5714 11.4116 14.4901 11.5488 14.4089L15.1982 13.0542C15.1982 13.0542 15.3902 13 15.5 13C15.6098 13 15.6921 13 15.8018 13.0542L19.4512 14.4089C19.6159 14.4631 19.753 14.5714 19.8354 14.734C19.9177 14.8965 20 15.032 20 15.2217V17.931C20 19.3128 19.5884 20.5862 18.7927 21.7241C17.9969 22.8621 16.9543 23.6478 15.6921 24H15.5Z\" fill=\"#2CC05C\"/>\r\n </svg> \r\n <div class='processing-list__items-item'>\r\n <p class='font-medium text-base processing-list__item__title'>Process your personal details</p>\r\n <p class='text-xs font-medium processing-list__items-item__description'>Partner can process your names, DoB and gender</p>\r\n </div\r\n </li>\r\n <li class='processing-list__items'>\r\n <svg width=\"20\" height=\"21\" viewBox=\"0 0 20 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M15.0226 7.222C14.8323 7.222 14.642 7.152 14.4918 7.002L12.4888 5.002C12.3491 4.86086 12.2708 4.67043 12.2708 4.472C12.2708 4.27357 12.3491 4.08313 12.4888 3.942C12.7792 3.652 13.2599 3.652 13.5504 3.942L15.0226 5.412L18.4978 1.952C18.7882 1.662 19.269 1.662 19.5594 1.952C19.8498 2.242 19.8498 2.722 19.5594 3.012L15.5534 7.012C15.4032 7.142 15.2129 7.222 15.0226 7.222Z\" fill=\"#2CC05C\"/>\r\n <path opacity=\"0.4\" d=\"M9.80472 12.71L6.5298 15.98C6.16926 15.66 5.81874 15.33 5.47822 14.99C4.46547 13.972 3.5314 12.8789 2.68403 11.72C1.8628 10.58 1.2018 9.44 0.721083 8.31C0.240361 7.17 0 6.08 0 5.04C0 4.36 0.12018 3.71 0.360541 3.11C0.600902 2.5 0.981474 1.94 1.51227 1.44C2.15323 0.81 2.85429 0.5 3.5954 0.5C3.87582 0.5 4.15624 0.56 4.40662 0.68C4.66701 0.8 4.89735 0.98 5.07762 1.24L7.40111 4.51C7.58138 4.76 7.71158 4.99 7.80171 5.21C7.89185 5.42 7.94192 5.63 7.94192 5.82C7.94192 6.06 7.87182 6.3 7.73161 6.53C7.60141 6.76 7.41113 7 7.17077 7.24L6.40962 8.03C6.29946 8.14 6.24938 8.27 6.24938 8.43C6.24938 8.51 6.2594 8.58 6.27943 8.66C6.30947 8.74 6.33952 8.8 6.35955 8.86C6.53982 9.19 6.85028 9.62 7.29095 10.14C7.74162 10.66 8.22234 11.19 8.74313 11.72C9.10367 12.07 9.45419 12.41 9.80472 12.71Z\" fill=\"#5E646E\"/>\r\n <path d=\"M20 16.83C19.9987 17.2074 19.9131 17.5798 19.7496 17.92C19.5794 18.28 19.359 18.62 19.0686 18.94C18.5779 19.48 18.037 19.87 17.4261 20.12C17.4161 20.12 17.4061 20.13 17.3961 20.13C16.8052 20.37 16.1642 20.5 15.4732 20.5C14.4517 20.5 13.36 20.26 12.2083 19.77C11.0566 19.28 9.90483 18.62 8.76312 17.79C8.37253 17.5 7.98195 17.21 7.61139 16.9L10.8863 13.63C11.1667 13.84 11.4171 14 11.6274 14.11C11.6775 14.13 11.7376 14.16 11.8077 14.19C11.8878 14.22 11.9679 14.23 12.0581 14.23C12.2283 14.23 12.3585 14.17 12.4687 14.06L13.2298 13.31C13.4802 13.06 13.7206 12.87 13.9509 12.75C14.1813 12.61 14.4116 12.54 14.662 12.54C14.8523 12.54 15.0526 12.58 15.2729 12.67C15.4932 12.76 15.7236 12.89 15.9739 13.06L19.2889 15.41C19.5493 15.59 19.7296 15.8 19.8397 16.05C19.9399 16.3 20 16.55 20 16.83Z\" fill=\"#151F72\"/>\r\n </svg>\r\n <div class='processing-list__items-item'>\r\n <p class='font-medium text-base processing-list__item__title'>Process your contact information</p>\r\n <p class='text-xs font-medium processing-list__items-item__description'>Partner can process your phone numbers and address</p>\r\n </div\r\n </li>\r\n <li class='processing-list__items'>\r\n <svg width=\"20\" height=\"18\" viewBox=\"0 0 20 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect opacity=\"0.4\" y=\"2\" width=\"19\" height=\"16\" rx=\"4\" fill=\"#5E646E\"/>\r\n <path d=\"M0 8H19V14C19 16.2091 17.2091 18 15 18H4C1.79086 18 0 16.2091 0 14V8Z\" fill=\"#151F72\"/>\r\n <path d=\"M4.66669 9C5.77129 9 6.66669 9.89539 6.66669 11C6.66669 12.1046 5.77129 13 4.66669 13C3.56208 13 2.66669 12.1046 2.66669 11C2.66669 9.89539 3.56208 9 4.66669 9Z\" fill=\"#2CC05C\"/>\r\n <path d=\"M2.41287 15H6.91933C7.06224 15 7.20176 14.9771 7.33333 14.935C7.14845 13.4645 6.02552 12.3333 4.66667 12.3333C3.30781 12.3333 2.18489 13.4645 2 14.935C2.13158 14.9771 2.26996 15 2.41401 15\" fill=\"#2CC05C\"/>\r\n <rect x=\"10\" y=\"10\" width=\"7\" height=\"1\" rx=\"0.5\" fill=\"#2CC05C\"/>\r\n <rect x=\"10\" y=\"12\" width=\"5.25\" height=\"1\" rx=\"0.5\" fill=\"#2CC05C\"/>\r\n <rect x=\"10\" y=\"14\" width=\"3.5\" height=\"1\" rx=\"0.5\" fill=\"#2CC05C\"/>\r\n <g clip-path=\"url(#clip0_641_419)\">\r\n <path d=\"M17.7221 0.583344H15.2779C14.2162 0.583344 13.5833 1.21626 13.5833 2.27793V4.71918C13.5833 5.78376 14.2162 6.41668 15.2779 6.41668H17.7191C18.7808 6.41668 19.4137 5.78376 19.4137 4.72209V2.27793C19.4166 1.21626 18.7837 0.583344 17.7221 0.583344Z\" fill=\"#151F72\"/>\r\n <path d=\"M16.0859 4.54474C16.0279 4.54469 15.9723 4.52161 15.9313 4.48058L15.1059 3.65516C15.0652 3.614 15.0424 3.55845 15.0424 3.50058C15.0424 3.4427 15.0652 3.38716 15.1059 3.34599C15.1904 3.26141 15.3304 3.26141 15.415 3.34599L16.0859 4.01683L17.585 2.51766C17.6696 2.43308 17.8096 2.43308 17.8942 2.51766C17.9788 2.60224 17.9788 2.74224 17.8942 2.82683L16.2404 4.48058C16.1995 4.52161 16.1439 4.54469 16.0859 4.54474Z\" fill=\"#2CC05C\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_641_419\">\r\n <rect width=\"7\" height=\"7\" fill=\"white\" transform=\"translate(13)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div class='processing-list__items-item'>\r\n <p class='font-medium text-base processing-list__item__title'>Process your document information</p>\r\n <p class='text-xs font-medium processing-list__items-item__description'>Partner can process your photo, ID expiration date, country of issuance and document number</p>\r\n </div\r\n </li>\r\n </ul>\r\n\r\n <section class='callout | flow center' style='--flow-space: 2rem; margin: var(--flow-space) auto;'>\r\n <p>\r\n You can view <span class='theme'>${this.partnerName}</span>'s privacy policy\r\n <a class='theme' href='${\r\n this.partnerPolicyURL\r\n }' rel='noreferer noopener' target='_blank'>here</a>\r\n </p>\r\n\r\n <p style='--flow-space: .75rem'>\r\n By choosing \"Allow\", you grant\r\n <span class='theme'>${this.partnerName}</span>\r\n consent to process your personal data to offer you this service\r\n </p>\r\n </section>\r\n\r\n <section class='flow' style='--flow-space: 2.5rem'>\r\n <button id='allow' data-variant='solid'>\r\n Allow\r\n </button>\r\n\r\n <button id='cancel' data-variant='ghost' class='color-danger' style='--flow-space: 1.5rem'>\r\n Cancel\r\n </button>\r\n </section>\r\n </div>\r\n\r\n <totp-consent\r\n hidden\r\n base-url='${this.baseUrl}'\r\n country='${this.country}'\r\n id-hint='${this.idHint}'\r\n id-regex='${this.idRegex}'\r\n id-type='${this.idType}'\r\n id-type-label='${this.idTypeLabel}'\r\n partner-id='${this.partnerId}'\r\n partner-name='${this.partnerName}'\r\n token='${this.token}'\r\n theme-color='${this.themeColor}'\r\n ${this.hideAttribution ? 'hide-attribution' : ''}\r\n >\r\n </totp-consent>\r\n\r\n <div hidden id='consent-rejected-screen' class='flow'>\r\n <section class='flow center'>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"185\" height=\"138\" fill=\"none\">\r\n <g filter=\"url(#a)\">\r\n <path fill=\"url(#b)\" d=\"M115.503 88.266H70.86a3.443 3.443 0 0 1-3.445-3.444V23.59a3.443 3.443 0 0 1 3.445-3.444h44.643a3.443 3.443 0 0 1 3.444 3.444v61.232a3.443 3.443 0 0 1-3.444 3.444Z\"/>\r\n </g>\r\n <path fill=\"#D5DDEA\" d=\"M98.982 71.746H87.38a2.33 2.33 0 0 1-2.334-2.334 2.33 2.33 0 0 1 2.334-2.334h11.603a2.33 2.33 0 0 1 2.334 2.334 2.33 2.33 0 0 1-2.334 2.334Zm5.326 5.054H82.032c-.68 0-1.224-.544-1.224-1.224 0-.68.544-1.224 1.224-1.224h22.276c.68 0 1.224.544 1.224 1.224 0 .657-.544 1.223-1.224 1.223Z\"/>\r\n <path fill=\"#D9DEEA\" d=\"M108.41 44.439c0 4.578-2.017 8.68-5.213 11.467a15.186 15.186 0 0 1-10.016 3.739 15.09 15.09 0 0 1-10.016-3.762 15.17 15.17 0 0 1-5.212-11.467c0-8.407 6.82-15.228 15.228-15.228 8.407 0 15.229 6.844 15.229 15.251Z\"/>\r\n <path fill=\"#fff\" d=\"M103.197 55.906a15.187 15.187 0 0 1-10.016 3.739 15.09 15.09 0 0 1-10.016-3.762c1.11-.43 2.56-.997 4.51-1.79a1.87 1.87 0 0 0 .996-.952 1.8 1.8 0 0 0 .159-.77v-3.649c-.068-.068-.113-.159-.159-.227a3.648 3.648 0 0 1-.589-1.586l-.317-.158c-.93.226-.861-.771-1.11-2.697-.091-.793.022-.952.385-1.088l.294-.408c-1.813-4.079-.906-6.64.884-7.546-.59-1.292-.635-1.768-.635-1.768s3.808.635 5.1.386c1.654-.34 4.214.067 5.166 2.266 1.586.611 2.198 1.631 2.334 2.696.136.998-.158 2.085-.453 2.924a1.077 1.077 0 0 1-.068.158c0 .023-.023.046-.023.068-.045.114-.068.204-.113.295-.023.045-.023.09-.045.136-.023.09-.068.181-.09.25 0 .022 0 .022-.023.044l-.069.204a2.466 2.466 0 0 1-.068.227c.023.023.023.068.046.09.25.114.34.34.25 1.043-.228 1.836-.16 2.946-1.111 2.697l-.839 1.45c-.022.159-.045.25-.068.34-.022.272-.022.816-.022 3.807 0 .363.113.703.294.997.204.317.499.59.861.748 0 0 .023 0 .023.023 1.971.838 3.422 1.382 4.532 1.813Z\"/>\r\n <path fill=\"url(#c)\" d=\"M99.254 42.92c.068-.453-.136-1.042-.294-1.427-.023-.068-.068-.136-.091-.204-.725-1.45-2.357-2.062-3.898-2.153-3.943-.204-4.328.544-5.552-.589.386.567.408 1.496-.181 2.629-.408.793-1.201 1.155-1.926 1.382-1.813-4.079-.907-6.64.883-7.546-.589-1.292-.634-1.768-.634-1.768s3.807.635 5.099.386c1.654-.34 4.215.067 5.167 2.266 1.586.611 2.198 1.631 2.334 2.696.272 1.7-.725 3.58-.907 4.329Z\"/>\r\n <path fill=\"url(#d)\" d=\"M97.804 53.368v.702h-9.156v-.929a1.8 1.8 0 0 0 .16-.77v-3.649c-.069-.068-.114-.159-.16-.227v-.226c.204.34.454.634.748.906l2.856 2.017c.657.567 1.631.567 2.311.023l2.674-2.402c.09-.068.181-.159.272-.25-.023.272-.023.816-.023 3.807.046.363.136.703.318.998Z\"/>\r\n <g filter=\"url(#e)\">\r\n <path fill=\"url(#f)\" d=\"M54.86 77.728H26.15a3.443 3.443 0 0 1-3.445-3.444V34.128a3.443 3.443 0 0 1 3.445-3.445h28.71a3.443 3.443 0 0 1 3.444 3.445v40.179a3.424 3.424 0 0 1-3.444 3.421Z\"/>\r\n </g>\r\n <path fill=\"#D5DDEA\" d=\"M44.504 66.33h-8.022a1.615 1.615 0 0 1-1.609-1.61c0-.883.725-1.608 1.609-1.608h8.022c.884 0 1.61.725 1.61 1.609s-.726 1.609-1.61 1.609Zm3.694 3.49H32.811a.837.837 0 0 1-.838-.839c0-.476.385-.838.838-.838h15.387c.476 0 .839.385.839.838a.851.851 0 0 1-.839.839Z\"/>\r\n <path fill=\"#D9DEEA\" d=\"M51.008 47.453a10.52 10.52 0 0 1-3.603 7.931 10.5 10.5 0 0 1-6.912 2.584c-2.651 0-5.076-.975-6.911-2.584a10.52 10.52 0 0 1-3.604-7.931c0-5.801 4.714-10.515 10.515-10.515 5.802 0 10.515 4.714 10.515 10.515Z\"/>\r\n <path fill=\"#fff\" d=\"M47.405 55.385a10.5 10.5 0 0 1-6.912 2.584c-2.651 0-5.076-.975-6.912-2.584a87.84 87.84 0 0 0 3.105-1.246c.317-.136.544-.363.68-.658.068-.158.113-.34.113-.543v-2.516a.69.69 0 0 1-.113-.158 2.36 2.36 0 0 1-.408-1.088l-.227-.113c-.634.158-.589-.544-.77-1.859-.068-.544.023-.657.25-.748l.203-.271c-1.246-2.833-.612-4.6.612-5.213-.408-.883-.43-1.223-.43-1.223s2.628.43 3.535.272c1.155-.227 2.9.045 3.557 1.563 1.088.43 1.519 1.133 1.61 1.858.09.703-.114 1.428-.295 2.017-.023.046-.023.068-.045.114 0 .022-.023.022-.023.045l-.068.204c-.023.023-.023.068-.045.09-.023.069-.046.114-.068.182v.023c-.023.045-.046.09-.046.136-.022.068-.045.113-.045.158.023.023.023.045.023.068.18.09.226.227.158.703-.158 1.269-.113 2.04-.77 1.858l-.567 1.02c-.022.113-.045.158-.045.249-.023.181-.023.567-.023 2.629 0 .249.068.475.204.68.136.226.34.407.59.498h.022c1.405.59 2.402.974 3.15 1.27Z\"/>\r\n <path fill=\"url(#g)\" d=\"M44.708 46.41c.046-.317-.09-.702-.204-.997l-.068-.136c-.498-.997-1.631-1.427-2.696-1.473-2.72-.136-2.992.386-3.83-.407.272.407.294 1.02-.113 1.813-.295.543-.839.793-1.315.951-1.246-2.832-.612-4.6.612-5.212-.408-.884-.43-1.224-.43-1.224s2.628.431 3.535.272c1.155-.226 2.9.046 3.557 1.564 1.088.43 1.519 1.133 1.61 1.858.135 1.179-.544 2.47-.658 2.992Z\"/>\r\n <path fill=\"url(#h)\" d=\"M43.711 53.64v.498H37.39v-.657a1.37 1.37 0 0 0 .113-.544v-2.515a.69.69 0 0 1-.113-.16v-.135c.136.227.317.453.52.612l1.972 1.382a1.264 1.264 0 0 0 1.61.023l1.858-1.654a.689.689 0 0 0 .18-.182c-.022.181-.022.567-.022 2.629 0 .25.068.498.204.703Z\"/>\r\n <g filter=\"url(#i)\">\r\n <path fill=\"url(#j)\" d=\"M159.533 77.728h-28.712a3.443 3.443 0 0 1-3.444-3.444V34.128a3.443 3.443 0 0 1 3.444-3.445h28.712a3.443 3.443 0 0 1 3.445 3.445v40.179a3.424 3.424 0 0 1-3.445 3.421Z\"/>\r\n </g>\r\n <path fill=\"#D5DDEA\" d=\"M149.177 66.33h-8.022a1.616 1.616 0 0 1-1.609-1.61c0-.883.726-1.608 1.609-1.608h8.022c.884 0 1.609.725 1.609 1.609.023.884-.702 1.609-1.609 1.609Zm3.694 3.49h-15.387a.836.836 0 0 1-.838-.839c0-.476.385-.838.838-.838h15.387c.476 0 .839.385.839.838a.837.837 0 0 1-.839.839Z\"/>\r\n <path fill=\"#D9DEEA\" d=\"M155.704 47.453c0 3.172-1.405 6.005-3.604 7.931a10.498 10.498 0 0 1-6.911 2.584c-2.652 0-5.076-.975-6.912-2.584a10.52 10.52 0 0 1-3.603-7.931c0-5.801 4.713-10.515 10.515-10.515 5.801 0 10.515 4.714 10.515 10.515Z\"/>\r\n <path fill=\"#fff\" d=\"M152.101 55.385a10.501 10.501 0 0 1-6.912 2.584c-2.651 0-5.076-.975-6.912-2.584a87.84 87.84 0 0 0 3.105-1.246c.317-.136.544-.363.68-.658.068-.158.113-.34.113-.543v-2.516a.677.677 0 0 1-.113-.158 2.352 2.352 0 0 1-.408-1.088l-.227-.113c-.634.158-.589-.544-.77-1.859-.068-.544.022-.657.249-.748l.204-.271c-1.246-2.833-.612-4.6.612-5.213-.408-.883-.431-1.223-.431-1.223s2.629.43 3.535.272c1.156-.227 2.901.045 3.558 1.563 1.088.43 1.519 1.133 1.609 1.858.091.703-.113 1.428-.294 2.017-.023.046-.023.068-.046.114 0 .022-.022.022-.022.045l-.068.204c-.023.023-.023.068-.046.09-.022.069-.045.114-.068.182v.023c-.022.045-.045.09-.045.136-.023.068-.045.113-.045.158.022.023.022.045.022.068.182.09.227.227.159.703-.159 1.269-.113 2.04-.77 1.858l-.567 1.02c-.023.113-.045.158-.045.249-.023.181-.023.567-.023 2.629 0 .249.068.475.204.68.136.226.34.407.589.498h.023c1.382.59 2.379.974 3.15 1.27Z\"/>\r\n <path fill=\"url(#k)\" d=\"M149.382 46.41c.045-.317-.091-.702-.204-.997l-.068-.136c-.499-.997-1.632-1.427-2.697-1.473-2.719-.136-2.991.386-3.83-.407.272.407.295 1.02-.113 1.813-.295.543-.839.793-1.315.951-1.246-2.832-.611-4.6.612-5.212-.408-.884-.43-1.224-.43-1.224s2.628.431 3.535.272c1.156-.226 2.901.046 3.558 1.564 1.088.43 1.518 1.133 1.609 1.858.136 1.179-.521 2.47-.657 2.992Z\"/>\r\n <path fill=\"url(#l)\" d=\"M148.385 53.64v.498h-6.323v-.657a1.37 1.37 0 0 0 .113-.544v-2.515a.71.71 0 0 1-.113-.16v-.135c.136.227.317.453.521.612l1.972 1.382a1.264 1.264 0 0 0 1.609.023l1.858-1.654a.683.683 0 0 0 .181-.182c-.022.181-.022.567-.022 2.629 0 .25.068.498.204.703Z\"/>\r\n <path fill=\"#F97B6A\" d=\"M154.163 120.944 125.496 92.3l6.572-6.572 28.644 28.667-6.549 6.549Z\"/>\r\n <path fill=\"#F97B6A\" d=\"m168.44 135.334-21.982-21.982a4.72 4.72 0 0 1 0-6.662 4.719 4.719 0 0 1 6.663 0l21.981 21.981a4.719 4.719 0 0 1 0 6.663 4.72 4.72 0 0 1-6.662 0Z\"/>\r\n <path fill=\"url(#m)\" d=\"m166.876 136.739-28.282-28.282c-.657-.657-.657-1.722 0-2.402l7.229-7.229a1.71 1.71 0 0 1 2.403 0l28.281 28.282c.657.657.657 1.722 0 2.402l-7.229 7.229c-.68.657-1.745.657-2.402 0Z\"/>\r\n <path fill=\"url(#n)\" d=\"M93.045 0c-30.004 0-54.32 24.316-54.32 54.32 0 29.98 24.316 54.319 54.297 54.319 30.004 0 54.32-24.316 54.32-54.32C147.342 24.316 123.026 0 93.045 0Zm0 98.577c-24.09 0-43.6-19.829-43.6-44.28 0-24.452 19.51-44.258 43.6-44.258 24.089 0 43.6 19.829 43.6 44.28 0 24.452-19.534 44.258-43.6 44.258Z\"/>\r\n <defs>\r\n <linearGradient id=\"b\" x1=\"93.164\" x2=\"93.164\" y1=\"18.57\" y2=\"89.001\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FDFEFF\"/>\r\n <stop offset=\".996\" stop-color=\"#ECF0F5\"/>\r\n </linearGradient>\r\n <linearGradient id=\"c\" x1=\"86.316\" x2=\"100.21\" y1=\"38.084\" y2=\"38.084\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#B0BACC\"/>\r\n <stop offset=\"1\" stop-color=\"#969EAE\"/>\r\n </linearGradient>\r\n <linearGradient id=\"d\" x1=\"93.229\" x2=\"93.229\" y1=\"54.105\" y2=\"50.91\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#fff\"/>\r\n <stop offset=\"1\" stop-color=\"#E2E5EC\"/>\r\n </linearGradient>\r\n <linearGradient id=\"f\" x1=\"40.493\" x2=\"40.493\" y1=\"29.595\" y2=\"78.236\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FDFEFF\"/>\r\n <stop offset=\".996\" stop-color=\"#ECF0F5\"/>\r\n </linearGradient>\r\n <linearGradient id=\"g\" x1=\"35.801\" x2=\"45.385\" y1=\"43.069\" y2=\"43.069\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#B0BACC\"/>\r\n <stop offset=\"1\" stop-color=\"#969EAE\"/>\r\n </linearGradient>\r\n <linearGradient id=\"h\" x1=\"40.552\" x2=\"40.552\" y1=\"54.162\" y2=\"51.953\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#fff\"/>\r\n <stop offset=\"1\" stop-color=\"#E2E5EC\"/>\r\n </linearGradient>\r\n <linearGradient id=\"j\" x1=\"145.166\" x2=\"145.166\" y1=\"29.595\" y2=\"78.236\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FDFEFF\"/>\r\n <stop offset=\".996\" stop-color=\"#ECF0F5\"/>\r\n </linearGradient>\r\n <linearGradient id=\"k\" x1=\"140.474\" x2=\"150.059\" y1=\"43.069\" y2=\"43.069\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#B0BACC\"/>\r\n <stop offset=\"1\" stop-color=\"#969EAE\"/>\r\n </linearGradient>\r\n <linearGradient id=\"l\" x1=\"145.225\" x2=\"145.225\" y1=\"54.162\" y2=\"51.953\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#fff\"/>\r\n <stop offset=\"1\" stop-color=\"#E2E5EC\"/>\r\n </linearGradient>\r\n <linearGradient id=\"m\" x1=\"138.084\" x2=\"177.007\" y1=\"117.787\" y2=\"117.787\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FF6551\"/>\r\n <stop offset=\"1\" stop-color=\"#FF9F92\"/>\r\n </linearGradient>\r\n <linearGradient id=\"n\" x1=\"38.676\" x2=\"147.361\" y1=\"54.331\" y2=\"54.331\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#FF6551\"/>\r\n <stop offset=\"1\" stop-color=\"#FF9F92\"/>\r\n </linearGradient>\r\n <filter id=\"a\" width=\"95.532\" height=\"112.12\" x=\"45.415\" y=\"9.146\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\r\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/>\r\n <feOffset dy=\"11\"/>\r\n <feGaussianBlur stdDeviation=\"11\"/>\r\n <feColorMatrix values=\"0 0 0 0 0.397708 0 0 0 0 0.47749 0 0 0 0 0.575 0 0 0 0.27 0\"/>\r\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1211:246\"/>\r\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_1211:246\" result=\"shape\"/>\r\n </filter>\r\n <filter id=\"e\" width=\"79.601\" height=\"91.045\" x=\".704\" y=\"19.683\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\r\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/>\r\n <feOffset dy=\"11\"/>\r\n <feGaussianBlur stdDeviation=\"11\"/>\r\n <feColorMatrix values=\"0 0 0 0 0.397708 0 0 0 0 0.47749 0 0 0 0 0.575 0 0 0 0.27 0\"/>\r\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1211:246\"/>\r\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_1211:246\" result=\"shape\"/>\r\n </filter>\r\n <filter id=\"i\" width=\"79.601\" height=\"91.045\" x=\"105.377\" y=\"19.683\" color-interpolation-filters=\"sRGB\" filterUnits=\"userSpaceOnUse\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\r\n <feColorMatrix in=\"SourceAlpha\" result=\"hardAlpha\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\"/>\r\n <feOffset dy=\"11\"/>\r\n <feGaussianBlur stdDeviation=\"11\"/>\r\n <feColorMatrix values=\"0 0 0 0 0.397708 0 0 0 0 0.47749 0 0 0 0 0.575 0 0 0 0.27 0\"/>\r\n <feBlend in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_1211:246\"/>\r\n <feBlend in=\"SourceGraphic\" in2=\"effect1_dropShadow_1211:246\" result=\"shape\"/>\r\n </filter>\r\n </defs>\r\n </svg>\r\n\r\n <h1 style='font-size: 36px; line-height: 1; font-weight: 500; --flow-space: 1.5rem'>\r\n Consent Denied\r\n </h1>\r\n\r\n <p class='color-grey' style='--flow-space: 1rem'>\r\n We cannot verify you without your consent\r\n </p>\r\n\r\n <p>\r\n Wish to correct that?\r\n </p>\r\n </section>\r\n\r\n <button data-variant='solid' type='button' id='back-to-consent'>\r\n <svg style='transform: rotate(.5turn);' width=\"25\" height=\"24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M7 12h11m0 0-4.588-4M18 12l-4.588 4\" stroke=\"#fff\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n Go Back\r\n </button>\r\n\r\n <button data-variant='outline' id='confirm-consent-rejection' style='--flow-space: 1rem; border-radius: 2rem'>\r\n No, Cancel Verification\r\n </button>\r\n\r\n ${this.hideAttribution ? '' : '<powered-by-smile-id></powered-by-smile-id>'}\r\n </div>\r\n `;\r\n}\r\n\r\nclass EndUserConsent extends HTMLElement {\r\n constructor() {\r\n super();\r\n\r\n this.idRequiresTotpConsent = ['BVN_MFA'];\r\n this.templateString = templateString.bind(this);\r\n this.render = () => this.templateString();\r\n\r\n this.attachShadow({ mode: 'open' });\r\n }\r\n\r\n connectedCallback() {\r\n this.pages = [];\r\n const template = document.createElement('template');\r\n template.innerHTML = this.render();\r\n\r\n this.shadowRoot.appendChild(template.content.cloneNode(true));\r\n\r\n this.consentScreen = this.shadowRoot.querySelector('#consent-screen');\r\n this.totpConsentApp = this.shadowRoot.querySelector('totp-consent');\r\n this.consentRejectedScreen = this.shadowRoot.querySelector(\r\n '#consent-rejected-screen',\r\n );\r\n\r\n this.allowButton = this.shadowRoot.querySelector('#allow');\r\n this.rejectButton = this.shadowRoot.querySelector('#cancel');\r\n this.backToConsentButton =\r\n this.shadowRoot.querySelector('#back-to-consent');\r\n this.confirmConsentRejectionButton = this.shadowRoot.querySelector(\r\n '#confirm-consent-rejection',\r\n );\r\n this.backButton = this.shadowRoot.querySelector('#back-button');\r\n const CloseIframeButtons =\r\n this.shadowRoot.querySelectorAll('.close-iframe');\r\n\r\n this.allowButton.addEventListener('click', (e) =>\r\n this.handleConsentGrant(e),\r\n );\r\n this.rejectButton.addEventListener('click', (e) =>\r\n this.handleConsentGrant(e),\r\n );\r\n\r\n this.backToConsentButton.addEventListener('click', () =>\r\n this.setActiveScreen(this.consentScreen),\r\n );\r\n this.confirmConsentRejectionButton.addEventListener('click', (e) =>\r\n this.handleConsentRejection(e),\r\n );\r\n\r\n this.totpConsentApp.addEventListener(\r\n 'end-user-consent.totp.denied.contact-methods-outdated',\r\n (e) => this.handleTotpConsentEvents(e),\r\n );\r\n this.totpConsentApp.addEventListener('end-user-consent.totp.granted', (e) =>\r\n this.handleTotpConsentEvents(e),\r\n );\r\n this.totpConsentApp.addEventListener(\r\n 'end-user-consent.totp.cancelled',\r\n (e) => this.handleBackEvents(e),\r\n );\r\n\r\n this.backButton.addEventListener('click', (e) => {\r\n this.handleBackEvents(e);\r\n });\r\n\r\n CloseIframeButtons.forEach((button) => {\r\n button.addEventListener(\r\n 'click',\r\n () => {\r\n this.closeWindow();\r\n },\r\n false,\r\n );\r\n });\r\n\r\n this.activeScreen = this.consentScreen;\r\n }\r\n\r\n setActiveScreen(screen) {\r\n this.activeScreen.hidden = true;\r\n screen.hidden = false;\r\n this.activeScreen = screen;\r\n }\r\n\r\n get baseUrl() {\r\n return this.getAttribute('base-url');\r\n }\r\n\r\n get country() {\r\n return this.getAttribute('country');\r\n }\r\n\r\n get demoMode() {\r\n return !!this.hasAttribute('demo-mode');\r\n }\r\n\r\n get hideBack() {\r\n return this.hasAttribute('hide-back-to-host');\r\n }\r\n\r\n get idHint() {\r\n return this.getAttribute('id-hint') || 'Your BVN should be 11 digits long';\r\n }\r\n\r\n get hideAttribution() {\r\n return this.hasAttribute('hide-attribution');\r\n }\r\n\r\n get idRegex() {\r\n return this.getAttribute('id-regex');\r\n }\r\n\r\n get idType() {\r\n return this.getAttribute('id-type');\r\n }\r\n\r\n get idTypeLabel() {\r\n return this.getAttribute('id-type-label');\r\n }\r\n\r\n get partnerId() {\r\n return this.getAttribute('partner-id');\r\n }\r\n\r\n get partnerName() {\r\n return this.getAttribute('partner-name');\r\n }\r\n\r\n get partnerLogoURL() {\r\n return this.getAttribute('partner-logo');\r\n }\r\n\r\n get partnerPolicyURL() {\r\n return this.getAttribute('policy-url');\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#151F72';\r\n }\r\n\r\n get token() {\r\n return this.getAttribute('token');\r\n }\r\n\r\n handleConsentGrant(e) {\r\n const granted = e.target === this.allowButton;\r\n\r\n if (granted) {\r\n if (this.idRequiresTotpConsent.includes(this.idType)) {\r\n this.setActiveScreen(this.totpConsentApp);\r\n this.pages.push(this.consentScreen);\r\n } else {\r\n this.dispatchEvent(\r\n new CustomEvent('end-user-consent.granted', {\r\n detail: {\r\n consented: {\r\n contact_information: granted,\r\n document_information: granted,\r\n personal_details: granted,\r\n },\r\n },\r\n }),\r\n );\r\n }\r\n } else {\r\n this.setActiveScreen(this.consentRejectedScreen);\r\n }\r\n }\r\n\r\n handleConsentRejection() {\r\n this.dispatchEvent(new CustomEvent('end-user-consent.denied'));\r\n }\r\n\r\n handleTotpConsentEvents(e) {\r\n const customEvent = new CustomEvent(e.type, {\r\n detail: {\r\n ...e.detail,\r\n },\r\n });\r\n this.dispatchEvent(customEvent);\r\n }\r\n\r\n handleBackEvents() {\r\n const page = this.pages.pop();\r\n if (page) {\r\n this.setActiveScreen(page);\r\n } else {\r\n this.dispatchEvent(new CustomEvent('end-user-consent.cancelled'));\r\n }\r\n }\r\n\r\n closeWindow() {\r\n const referenceWindow = window.parent;\r\n referenceWindow.postMessage('SmileIdentity::Close', '*');\r\n }\r\n}\r\n\r\nif (\r\n 'customElements' in window &&\r\n !window.customElements.get('end-user-consent')\r\n) {\r\n window.customElements.define('end-user-consent', EndUserConsent);\r\n}\r\n\r\nexport {\r\n // eslint-disable-next-line import/prefer-default-export\r\n EndUserConsent,\r\n};\r\n","import styles from '../../../../styles/src/styles';\r\nimport '../../../navigation/src';\r\n\r\nfunction templateString() {\r\n return `\r\n <link rel=\"preconnect\" href=\"https://fonts.gstatic.com\" />\r\n <link\r\n href=\"https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;700&display=swap\"\r\n rel=\"stylesheet\"\r\n />\r\n <style>\r\n :host {\r\n --theme-color: ${this.themeColor || '#001096'}\r\n --color-active: #001096;\r\n --color-default: #2d2b2a;\r\n --color-disabled: #848282;\r\n }\r\n\r\n * {\r\n font-family: \"DM Sans\", sans-serif;\r\n }\r\n\r\n [hidden] {\r\n display: none !important;\r\n }\r\n\r\n [disabled] {\r\n cursor: not-allowed !important;\r\n filter: grayscale(75%);\r\n }\r\n\r\n .visually-hidden {\r\n border: 0;\r\n clip: rect(1px 1px 1px 1px);\r\n clip: rect(1px, 1px, 1px, 1px);\r\n height: auto;\r\n margin: 0;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n white-space: nowrap;\r\n width: 1px;\r\n }\r\n\r\n img {\r\n height: auto;\r\n max-width: 100%;\r\n transform: scaleX(-1);\r\n }\r\n\r\n video {\r\n background-color: black;\r\n }\r\n\r\n a {\r\n color: currentColor;\r\n text-decoration: none;\r\n }\r\n\r\n svg {\r\n max-width: 100%;\r\n }\r\n\r\n .color-gray {\r\n color: #797979;\r\n }\r\n\r\n .color-red {\r\n color: red;\r\n }\r\n\r\n .color-richblue {\r\n color: #4e6577;\r\n }\r\n\r\n .color-richblue-shade {\r\n color: #0e1b42;\r\n }\r\n\r\n .color-digital-blue {\r\n color: #001096 !important;\r\n }\r\n\r\n .color-deep-blue {\r\n color: #001096;\r\n }\r\n\r\n .center {\r\n text-align: center;\r\n margin-left: auto;\r\n margin-right: auto;\r\n }\r\n\r\n .font-size-small {\r\n font-size: 0.75rem;\r\n }\r\n\r\n .font-size-large {\r\n font-size: 1.5rem;\r\n }\r\n\r\n .text-transform-uppercase {\r\n text-transform: uppercase;\r\n }\r\n\r\n [id*=-\"screen\"] {\r\n min-block-size: 100%;\r\n }\r\n\r\n [data-variant~=\"full-width\"] {\r\n inline-size: 100%;\r\n }\r\n\r\n .flow > * + * {\r\n margin-top: 1rem;\r\n }\r\n\r\n .button {\r\n --button-color: var(--theme-color);\r\n -webkit-appearance: none;\r\n appearance: none;\r\n border-radius: 2.5rem;\r\n border: 0;\r\n background-color: transparent;\r\n color: #fff;\r\n cursor: pointer;\r\n display: block;\r\n font-size: 18px;\r\n font-weight: 600;\r\n padding: 0.75rem 1.5rem;\r\n text-align: center;\r\n }\r\n\r\n .button:hover,\r\n .button:focus,\r\n .button:active {\r\n --button-color: var(--color-default);\r\n }\r\n\r\n .button:disabled {\r\n --button-color: var(--color-disabled);\r\n }\r\n\r\n .button[data-variant~=\"solid\"] {\r\n background-color: var(--button-color);\r\n border: 2px solid var(--button-color);\r\n }\r\n\r\n .button[data-variant~=\"outline\"] {\r\n color: var(--button-color);\r\n border: 2px solid var(--button-color);\r\n }\r\n\r\n .button[data-variant~=\"ghost\"] {\r\n padding: 0px;\r\n color: var(--button-color);\r\n background-color: transparent;\r\n }\r\n\r\n .icon-btn {\r\n appearance: none;\r\n background: none;\r\n border: none;\r\n color: hsl(0deg 0% 94%);\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 4px 8px;\r\n }\r\n .justify-right {\r\n justify-content: end !important;\r\n }\r\n .nav {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n .back-wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .back-button {\r\n display: block !important;\r\n }\r\n .back-button-text {\r\n font-size: 11px;\r\n line-height: 11px;\r\n color: rgb(21, 31, 114);\r\n }\r\n .section {\r\n border: 1px solid #f4f4f4;\r\n border-radius: 0.5rem;\r\n margin-left: auto;\r\n margin-right: auto;\r\n max-width: 35ch;\r\n padding: 1rem;\r\n }\r\n\r\n .selfie-capture-review-image {\r\n overflow: hidden;\r\n aspect-ratio: 1/1;\r\n }\r\n\r\n #review-image {\r\n scale: 1.75;\r\n }\r\n\r\n @media (max-aspect-ratio: 1/1) {\r\n #review-image {\r\n transform: scaleX(-1) translateY(-10%);\r\n }\r\n }\r\n\r\n .tips,\r\n .powered-by {\r\n align-items: center;\r\n border-radius: 0.25rem;\r\n color: #4e6577;\r\n display: flex;\r\n justify-content: center;\r\n letter-spacing: 0.075em;\r\n }\r\n\r\n .powered-by {\r\n box-shadow: 0px 2.57415px 2.57415px rgba(0, 0, 0, 0.06);\r\n display: inline-flex;\r\n font-size: 0.5rem;\r\n }\r\n\r\n .tips {\r\n margin-left: auto;\r\n margin-right: auto;\r\n max-width: 17rem;\r\n }\r\n\r\n .tips > * + *,\r\n .powered-by > * + * {\r\n display: inline-block;\r\n margin-left: 0.5em;\r\n }\r\n\r\n .powered-by .company {\r\n color: #18406d;\r\n font-weight: 700;\r\n letter-spacing: 0.15rem;\r\n }\r\n\r\n .logo-mark {\r\n background-color: #004071;\r\n display: inline-block;\r\n padding: 0.25em 0.5em;\r\n }\r\n\r\n .logo-mark svg {\r\n height: auto;\r\n justify-self: center;\r\n width: 0.75em;\r\n }\r\n\r\n #selfie-capture-instruction-screen {\r\n display: flex;\r\n flex-direction: column;\r\n max-block-size: 100%;\r\n max-inline-size: 40ch;\r\n }\r\n\r\n #selfie-capture-instruction-screen header p {\r\n margin-block: 0 !important;\r\n }\r\n\r\n .instructions {\r\n margin-block-start: 1.5rem;\r\n display: flex;\r\n align-items: center;\r\n text-align: initial;\r\n gap: 1rem;\r\n }\r\n\r\n .instructions svg {\r\n flex-shrink: 0;\r\n margin-inline-end: 1rem;\r\n }\r\n\r\n .instructions p {\r\n margin-block: 0;\r\n }\r\n\r\n h1 {\r\n color: ${this.themeColor};\r\n text-align: center;\r\n\r\n /* h1 */\r\n font-size: 1.5rem;\r\n font-style: normal;\r\n font-weight: 700;\r\n line-height: 36px; /* 150% */\r\n }\r\n\r\n .tip-header {\r\n color: ${this.themeColor};\r\n }\r\n </style>\r\n ${styles(this.themeColor)}\r\n <div id=\"selfie-capture-instruction-screen\" class=\"flow center\">\r\n <smileid-navigation theme-color=${this.themeColor} ${this.hideBack ? 'hide-back' : ''} ${this.showNavigation ? '' : 'hidden'}></smileid-navigation>\r\n <header>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"65\" height=\"91\" viewBox=\"0 0 65 91\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_604_692)\">\r\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\"/>\r\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\"/>\r\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\"/>\r\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\"/>\r\n <path d=\"M44.2729 28.3906L30.0112 36.521L30.4015 19.73L44.6631 11.5643L44.2729 28.3906Z\" fill=\"#F8CEEB\"/>\r\n <path d=\"M53.959 33.8711L39.6974 42.0368L40.0876 25.2104L54.3493 17.0447L53.959 33.8711Z\" fill=\"#7ECAF0\"/>\r\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\"/>\r\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\"/>\r\n <path d=\"M54.0676 54.5139L63.5044 48.8933L63.469 36.026L60.9146 37.4754V47.4439L54.0676 51.5798V54.5139Z\" fill=\"#FF5805\"/>\r\n <path d=\"M30.4053 52.2515L34.9463 49.6356V60.8414L44.0638 55.1855V60.4172L30.4407 68.7244L30.4053 52.2515Z\" fill=\"#FF5805\"/>\r\n <path d=\"M31.4317 66.9921L43.0681 59.8869V56.9529L33.9506 62.6088V51.3323L31.3962 52.817L31.4317 66.9921Z\" fill=\"#FF5805\"/>\r\n <path d=\"M30.4053 19.7312L42.5383 13.0148V18.1759L34.9463 22.3471V32.4924L30.4407 35.073L30.4053 19.7312Z\" fill=\"#FF5805\"/>\r\n <path d=\"M31.3962 33.377L33.9506 31.9276V21.7823L41.5426 17.6111V14.6771L31.3962 20.2976V28.7815V33.377Z\" fill=\"#FF5805\"/>\r\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\"/>\r\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\"/>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_604_692\">\r\n <rect width=\"64\" height=\"90\" fill=\"white\" transform=\"translate(0.5 0.5)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <h1 class='text-2xl title-color font-bold'>Next, we'll take a quick selfie</h1>\r\n </header>\r\n <div class=\"flow instructions-wrapper\">\r\n <div class=\"instructions\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"38\"\r\n height=\"38\"\r\n viewBox=\"0 0 38 38\"\r\n fill=\"none\"\r\n >\r\n <g clip-path=\"url(#clip0_604_670)\">\r\n <path\r\n fill-rule=\"evenodd\"\r\n clip-rule=\"evenodd\"\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M19.6064 4.5419H18.394L18.9912 0L19.6064 4.5419Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M26.7541 6.77667L25.7046 6.17048L28.4913 2.54239L26.7541 6.77667Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M31.8298 12.2957L31.2236 11.2462L35.4489 9.49097L31.8298 12.2957Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M33.4674 19.6062V18.3938L38.0003 18.9909L33.4674 19.6062Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M31.2236 26.7538L31.8298 25.7043L35.4579 28.491L31.2236 26.7538Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M25.7046 31.8295L26.7541 31.2233L28.5094 35.4486L25.7046 31.8295Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M18.394 33.4671H19.6064L19.0093 38L18.394 33.4671Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M11.2464 31.2233L12.2959 31.8295L9.50928 35.4576L11.2464 31.2233Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M6.17068 25.7043L6.77687 26.7538L2.55164 28.509L6.17068 25.7043Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M4.54215 18.3938V19.6062L0.000244141 19.009L4.54215 18.3938Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M6.77689 11.2462L6.1707 12.2957L2.5426 9.50903L6.77689 11.2462Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M12.296 6.17047L11.2464 6.77666L9.49121 2.55142L12.296 6.17047Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_604_670\">\r\n <rect\r\n width=\"38\"\r\n height=\"38\"\r\n fill=\"white\"\r\n transform=\"translate(0.000244141)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div class=\"instruction\">\r\n <p class=\"text-base title-color font-bold tip-header\">Good Light</p>\r\n <p class=\"tip-body\">\r\n Make sure you are in a well-lit environment where your face is\r\n clear and visible.\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"instructions\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"38\"\r\n height=\"36\"\r\n viewBox=\"0 0 38 36\"\r\n fill=\"none\"\r\n >\r\n <g clip-path=\"url(#clip0_604_672)\">\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M36.2874 27.3719H1.65906L1.95178 28H35.9947L36.2874 27.3719Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M35.2032 29.4766H2.75403C2.84799 29.6529 2.95641 29.8292 3.07928 30.0055H34.878L35.2032 29.4766Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M33.7396 31.5813H4.20679L4.54288 32H33.4035L33.7396 31.5813Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M31.7989 33.6859H6.14746L6.49439 33.9945H31.452L31.7989 33.6859Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\n d=\"M29.0993 35.7906H8.84705L9.18314 36H28.7632L29.0993 35.7906Z\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_604_672\">\r\n <rect\r\n width=\"37.9459\"\r\n height=\"36\"\r\n fill=\"white\"\r\n transform=\"translate(0.000244141)\"\r\n />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div class=\"instruction\">\r\n <p class=\"text-base title-color font-bold tip-header\">Clear Image</p>\r\n <p>\r\n Hold your phone steady so the selfie is clear and sharp. Don't\r\n take blurry images.\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"instructions\">\r\n <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"38\"\r\n height=\"38\"\r\n viewBox=\"0 0 38 38\"\r\n fill=\"none\"\r\n >\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n <path\r\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\"\r\n fill=\"${this.themeColor}\"\r\n />\r\n </svg>\r\n <div class=\"instruction\">\r\n <p class=\"text-base title-color font-bold tip-header\">Remove Obstructions</p>\r\n <p>\r\n Remove anything that covers your face, such glasses, masks, hats\r\n and scarves.\r\n </p>\r\n </div>\r\n </div>\r\n <div class=\"instructions\">\r\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>\r\n <div class=\"instruction\">\r\n <p class=\"text-base title-color font-bold tip-header\">Big Smile</p>\r\n <p>\r\n When asked to smile, give a big smile, showing your teeth and keep your eyes open.\r\n </p>\r\n </div>\r\n </div>\r\n <section class='flow' style='--flow-space: 2.5rem'>\r\n <button id='allow' data-variant='solid full-width' class='button theme-background'>\r\n Allow\r\n </button>\r\n <button id='cancel' data-variant='outline full-width' class=\"button\" style='--flow-space: 1.5rem' ${this.hideBack || !this.showNavigation ? 'hidden' : ''}>\r\n Cancel\r\n </button>\r\n </section>\r\n </div>\r\n ${\r\n this.hideAttribution\r\n ? ''\r\n : `\r\n <powered-by-smile-id></powered-by-smile-id>\r\n `\r\n }\r\n </div>\r\n `;\r\n}\r\n\r\nclass SelfieCaptureInstructions extends HTMLElement {\r\n constructor() {\r\n super();\r\n this.templateString = templateString.bind(this);\r\n this.render = () => this.templateString();\r\n\r\n this.attachShadow({ mode: 'open' });\r\n }\r\n\r\n connectedCallback() {\r\n this.pages = [];\r\n const template = document.createElement('template');\r\n template.innerHTML = this.render();\r\n\r\n this.shadowRoot.appendChild(template.content.cloneNode(true));\r\n\r\n this.allowButton = this.shadowRoot.querySelector('#allow');\r\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\r\n this.cancelButton = this.shadowRoot.querySelector('#cancel');\r\n\r\n this.navigation.addEventListener('navigation.back', () => {\r\n this.handleBackEvents();\r\n });\r\n\r\n if (this.allowButton) {\r\n this.allowButton.addEventListener('click', () => {\r\n this.dispatchEvent(\r\n new CustomEvent('selfie-capture-instructions.capture'),\r\n );\r\n });\r\n }\r\n\r\n this.navigation.addEventListener(\r\n 'navigation.close',\r\n () => {\r\n this.handleCloseEvents();\r\n },\r\n false,\r\n );\r\n\r\n this.cancelButton.addEventListener('click', () => {\r\n this.handleBackEvents();\r\n });\r\n }\r\n\r\n get hideBack() {\r\n return this.hasAttribute('hide-back');\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#001096';\r\n }\r\n\r\n get hideAttribution() {\r\n return this.hasAttribute('hide-attribution');\r\n }\r\n\r\n handleBackEvents() {\r\n this.dispatchEvent(\r\n new CustomEvent('selfie-capture-instructions.cancelled'),\r\n );\r\n }\r\n\r\n get showNavigation() {\r\n return this.hasAttribute('show-navigation');\r\n }\r\n\r\n handleCloseEvents() {\r\n this.dispatchEvent(new CustomEvent('selfie-capture-instructions.close'));\r\n }\r\n\r\n static get observedAttributes() {\r\n return ['show-navigation'];\r\n }\r\n}\r\n\r\nif (\r\n 'customElements' in window &&\r\n !window.customElements.get('selfie-capture-instructions')\r\n) {\r\n window.customElements.define(\r\n 'selfie-capture-instructions',\r\n SelfieCaptureInstructions,\r\n );\r\n}\r\n\r\nexport default SelfieCaptureInstructions;\r\n","import styles from '../../../../styles/src/styles';\r\nimport '../../../navigation/src';\r\n\r\nfunction templateString() {\r\n return `\r\n <style>\r\n .retake-photo.button[data-variant~=\"ghost\"] {\r\n color: #FF5805;\r\n }\r\n .icon-btn {\r\n appearance: none;\r\n background: none;\r\n border: none;\r\n color: hsl(0deg 0% 94%);\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 4px 8px;\r\n }\r\n .justify-right {\r\n justify-content: end !important;\r\n }\r\n .nav {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n .back-wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n .back-button-text {\r\n font-size: 11px;\r\n line-height: 11px;\r\n color: rgb(21, 31, 114);\r\n }\r\n .section {\r\n border-radius: .5rem;\r\n margin-left: auto;\r\n margin-right: auto;\r\n max-width: 35ch;\r\n padding: 1rem;\r\n }\r\n .selfie-capture-review-image {\r\n overflow: hidden;\r\n aspect-ratio: 1/1;\r\n }\r\n #review-image {\r\n scale: 1.75;\r\n }\r\n @media (max-aspect-ratio: 1/1) {\r\n #review-image {\r\n transform: scaleX(-1) translateY(-10%);\r\n }\r\n }\r\n .tips,\r\n .powered-by {\r\n align-items: center;\r\n border-radius: 0.25rem;\r\n color: #4e6577;\r\n display: flex;\r\n justify-content: center;\r\n letter-spacing: 0.075em;\r\n }\r\n .powered-by {\r\n box-shadow: 0px 2.57415px 2.57415px rgba(0, 0, 0, 0.06);\r\n display: inline-flex;\r\n font-size: 0.5rem;\r\n }\r\n .tips {\r\n margin-left: auto;\r\n margin-right: auto;\r\n max-width: 17rem;\r\n }\r\n .tips > * + *,\r\n .powered-by > * + * {\r\n display: inline-block;\r\n margin-left: 0.5em;\r\n }\r\n .powered-by .company {\r\n color: #18406d;\r\n font-weight: 700;\r\n letter-spacing: 0.15rem;\r\n }\r\n .logo-mark {\r\n background-color: #004071;\r\n display: inline-block;\r\n padding: 0.25em 0.5em;\r\n }\r\n .logo-mark svg {\r\n height: auto;\r\n justify-self: center;\r\n width: 0.75em;\r\n }\r\n #selfie-capture-review-screen {\r\n block-size: 45rem;\r\n display: flex;\r\n flex-direction: column;\r\n max-block-size: 100%;\r\n max-inline-size: 40ch;\r\n }\r\n #selfie-capture-review-screen .selfie-review-container.landscape {\r\n height: auto;\r\n }\r\n #selfie-capture-review-screen header p {\r\n margin-block: 0 !important;\r\n }\r\n .selfie-review-container.portrait {\r\n width: 100%;\r\n position: relative;\r\n height: calc(200px * 1.4);\r\n }\r\n \r\n .selfie-review-container.portrait img {\r\n width: calc(213px + 0.9rem);\r\n height: 100%;\r\n position: absolute;\r\n top: 239px;\r\n left: 161px;\r\n padding-bottom: calc((214px * 1.4) / 3);\r\n padding-top: calc((191px * 1.4) / 3);\r\n object-fit: cover;\r\n \r\n transform: translateX(-50%) translateY(-50%);\r\n z-index: 1;\r\n block-size: 100%;\r\n }\r\n\r\n .selfie-container img {\r\n background-color: black;\r\n position: absolute;\r\n left: 50%;\r\n height: calc(100% - 6px);\r\n clip-path: ellipse(101px 118px);\r\n }\r\n\r\n .description {\r\n color: var(--neutral-off-black, #2D2B2A);\r\n text-align: center;\r\n /* p */\r\n font-family: DM Sans;\r\n font-size: 0.875rem;\r\n font-style: normal;\r\n font-weight: 400;\r\n line-height: 18px;\r\n }\r\n .padding-bottom-2 {\r\n padding-bottom: 2rem;\r\n }\r\n .instructions-wrapper {\r\n display: inline-flex;\r\n flex-direction: column;\r\n align-items: flex-start;\r\n gap: 2rem;\r\n margin-block-start: 2rem;\r\n margin-block-end: 4rem;\r\n }\r\n .instructions {\r\n display: flex;\r\n align-items: center;\r\n text-align: initial;\r\n }\r\n .instructions svg {\r\n flex-shrink: 0;\r\n margin-inline-end: 2rem;\r\n }\r\n .instructions p {\r\n margin-block: 0;\r\n }\r\n .instruction-body {\r\n font-size: 0.75rem;\r\n }\r\n h1 {\r\n color: var(--web-digital-blue, #001096);\r\n text-align: center;\r\n /* h1 */\r\n font-size: 1.5rem;\r\n font-style: normal;\r\n font-weight: 700;\r\n line-height: 36px; /* 150% */\r\n }\r\n .p2 {\r\n font-size: 1rem;\r\n font-style: normal;\r\n font-weight: 500;\r\n line-height: 1rem;\r\n }\r\n .instruction-header {\r\n color: var(--web-digital-blue, #001096);\r\n }\r\n .h2 {\r\n font-size: 1rem;\r\n font-style: normal;\r\n font-weight: 700;\r\n line-height: 1.5rem;\r\n }\r\n </style>\r\n ${styles(this.themeColor)}\r\n <div id='selfie-capture-review-screen' class='flow center'>\r\n <smileid-navigation ${this.showNavigation ? 'show-navigation' : ''} hide-back></smileid-navigation>\r\n <h1 class=\"header-title text-2xl title-color font-bold\">\r\n Is your whole face visible and clear in this photo?\r\n </h1>\r\n <div class='section | flow'>\r\n <div class='selfie-review-container ${this.isPortraitCaptureView ? 'portrait' : 'landscape'}'>\r\n ${\r\n this.imageSrc\r\n ? `<img\r\n alt='your ID card'\r\n id='document-capture-review-image'\r\n src='${this.imageSrc}'\r\n width='396'\r\n />`\r\n : ''\r\n }\r\n </div>\r\n <div class='flow action-buttons'>\r\n <button data-variant='solid full-width' class='button' type='button' id='select-id-image'>\r\n Yes, use this\r\n </button>\r\n <button data-variant='ghost full-width' class='button retake-photo' type='button' id='re-capture-image'>\r\n No, Retake Selfie\r\n </button>\r\n </div>\r\n ${\r\n this.hideAttribution\r\n ? ''\r\n : `\r\n <powered-by-smile-id></powered-by-smile-id>\r\n `\r\n }\r\n </div>\r\n </div>\r\n `;\r\n}\r\n\r\nclass SelfieCaptureReview extends HTMLElement {\r\n constructor() {\r\n super();\r\n this.templateString = templateString.bind(this);\r\n this.render = () => this.templateString();\r\n\r\n this.attachShadow({ mode: 'open' });\r\n }\r\n\r\n connectedCallback() {\r\n const template = document.createElement('template');\r\n template.innerHTML = this.render();\r\n this.shadowRoot.innerHTML = '';\r\n this.shadowRoot.appendChild(template.content.cloneNode(true));\r\n this.setUpEventListeners();\r\n }\r\n\r\n static get observedAttributes() {\r\n return ['hide-back-to-host', 'show-navigation', 'data-image'];\r\n }\r\n\r\n get hideBack() {\r\n return this.hasAttribute('hide-back-to-host');\r\n }\r\n\r\n get showNavigation() {\r\n return this.hasAttribute('show-navigation');\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#001096';\r\n }\r\n\r\n get hideAttribution() {\r\n return this.hasAttribute('hide-attribution');\r\n }\r\n\r\n get imageSrc() {\r\n return this.getAttribute('data-image');\r\n }\r\n\r\n get title() {\r\n return this.getAttribute('title') || 'Submit Front of ID';\r\n }\r\n\r\n handleBackEvents() {\r\n this.dispatchEvent(new CustomEvent('selfie-capture-review.cancelled'));\r\n }\r\n\r\n handleCloseEvents() {\r\n this.dispatchEvent(new CustomEvent('selfie-capture-review.close'));\r\n }\r\n\r\n attributeChangedCallback(name) {\r\n switch (name) {\r\n case 'data-image':\r\n case 'hide-back-to-host':\r\n case 'show-navigation':\r\n this.shadowRoot.innerHTML = this.render();\r\n this.setUpEventListeners();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n setUpEventListeners() {\r\n this.selectImage = this.shadowRoot.querySelector('#select-id-image');\r\n this.reCaptureImage = this.shadowRoot.querySelector('#re-capture-image');\r\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\r\n\r\n this.navigation.addEventListener('navigation.back', () => {\r\n this.handleBackEvents();\r\n });\r\n this.navigation.addEventListener('navigation.close', () => {\r\n this.handleCloseEvents();\r\n });\r\n\r\n this.selectImage.addEventListener('click', () => {\r\n this.dispatchEvent(\r\n new CustomEvent('selfie-capture-review.accepted', {\r\n detail: {},\r\n }),\r\n );\r\n });\r\n this.reCaptureImage.addEventListener('click', () => {\r\n this.dispatchEvent(\r\n new CustomEvent('selfie-capture-review.rejected', {\r\n detail: {},\r\n }),\r\n );\r\n });\r\n }\r\n}\r\n\r\nif (\r\n 'customElements' in window &&\r\n !customElements.get('selfie-capture-review')\r\n) {\r\n window.customElements.define('selfie-capture-review', SelfieCaptureReview);\r\n}\r\n\r\nexport default SelfieCaptureReview;\r\n","var n,l,u,t,i,r,o,e,f,c,s,a,h,p={},v=[],y=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,w=Array.isArray;function d(n,l){for(var u in l)n[u]=l[u];return n}function g(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function _(l,u,t){var i,r,o,e={};for(o in u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:e[o]=u[o];if(arguments.length>2&&(e.children=arguments.length>3?n.call(arguments,2):t),\"function\"==typeof l&&null!=l.defaultProps)for(o in l.defaultProps)void 0===e[o]&&(e[o]=l.defaultProps[o]);return m(l,e,i,r,null)}function m(n,t,i,r,o){var e={type:n,props:t,key:i,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:null==o?++u:o,__i:-1,__u:0};return null==o&&null!=l.vnode&&l.vnode(e),e}function b(){return{current:null}}function k(n){return n.children}function x(n,l){this.props=n,this.context=l}function S(n,l){if(null==l)return n.__?S(n.__,n.__i+1):null;for(var u;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e)return u.__e;return\"function\"==typeof n.type?S(n):null}function C(n){var l,u;if(null!=(n=n.__)&&null!=n.__c){for(n.__e=n.__c.base=null,l=0;l<n.__k.length;l++)if(null!=(u=n.__k[l])&&null!=u.__e){n.__e=n.__c.base=u.__e;break}return C(n)}}function M(n){(!n.__d&&(n.__d=!0)&&i.push(n)&&!$.__r++||r!=l.debounceRendering)&&((r=l.debounceRendering)||o)($)}function $(){for(var n,u,t,r,o,f,c,s=1;i.length;)i.length>s&&i.sort(e),n=i.shift(),s=i.length,n.__d&&(t=void 0,o=(r=(u=n).__v).__e,f=[],c=[],u.__P&&((t=d({},r)).__v=r.__v+1,l.vnode&&l.vnode(t),O(u.__P,t,r,u.__n,u.__P.namespaceURI,32&r.__u?[o]:null,f,null==o?S(r):o,!!(32&r.__u),c),t.__v=r.__v,t.__.__k[t.__i]=t,z(f,t,c),t.__e!=o&&C(t)));$.__r=0}function I(n,l,u,t,i,r,o,e,f,c,s){var a,h,y,w,d,g,_=t&&t.__k||v,m=l.length;for(f=P(u,l,_,f,m),a=0;a<m;a++)null!=(y=u.__k[a])&&(h=-1==y.__i?p:_[y.__i]||p,y.__i=a,g=O(n,y,h,i,r,o,e,f,c,s),w=y.__e,y.ref&&h.ref!=y.ref&&(h.ref&&q(h.ref,null,y),s.push(y.ref,y.__c||w,y)),null==d&&null!=w&&(d=w),4&y.__u||h.__k===y.__k?f=A(y,f,n):\"function\"==typeof y.type&&void 0!==g?f=g:w&&(f=w.nextSibling),y.__u&=-7);return u.__e=d,f}function P(n,l,u,t,i){var r,o,e,f,c,s=u.length,a=s,h=0;for(n.__k=new Array(i),r=0;r<i;r++)null!=(o=l[r])&&\"boolean\"!=typeof o&&\"function\"!=typeof o?(f=r+h,(o=n.__k[r]=\"string\"==typeof o||\"number\"==typeof o||\"bigint\"==typeof o||o.constructor==String?m(null,o,null,null,null):w(o)?m(k,{children:o},null,null,null):null==o.constructor&&o.__b>0?m(o.type,o.props,o.key,o.ref?o.ref:null,o.__v):o).__=n,o.__b=n.__b+1,e=null,-1!=(c=o.__i=L(o,u,f,a))&&(a--,(e=u[c])&&(e.__u|=2)),null==e||null==e.__v?(-1==c&&(i>s?h--:i<s&&h++),\"function\"!=typeof o.type&&(o.__u|=4)):c!=f&&(c==f-1?h--:c==f+1?h++:(c>f?h--:h++,o.__u|=4))):n.__k[r]=null;if(a)for(r=0;r<s;r++)null!=(e=u[r])&&0==(2&e.__u)&&(e.__e==t&&(t=S(e)),B(e,e));return t}function A(n,l,u){var t,i;if(\"function\"==typeof n.type){for(t=n.__k,i=0;t&&i<t.length;i++)t[i]&&(t[i].__=n,l=A(t[i],l,u));return l}n.__e!=l&&(l&&n.type&&!u.contains(l)&&(l=S(n)),u.insertBefore(n.__e,l||null),l=n.__e);do{l=l&&l.nextSibling}while(null!=l&&8==l.nodeType);return l}function H(n,l){return l=l||[],null==n||\"boolean\"==typeof n||(w(n)?n.some(function(n){H(n,l)}):l.push(n)),l}function L(n,l,u,t){var i,r,o=n.key,e=n.type,f=l[u];if(null===f&&null==n.key||f&&o==f.key&&e==f.type&&0==(2&f.__u))return u;if(t>(null!=f&&0==(2&f.__u)?1:0))for(i=u-1,r=u+1;i>=0||r<l.length;){if(i>=0){if((f=l[i])&&0==(2&f.__u)&&o==f.key&&e==f.type)return i;i--}if(r<l.length){if((f=l[r])&&0==(2&f.__u)&&o==f.key&&e==f.type)return r;r++}}return-1}function T(n,l,u){\"-\"==l[0]?n.setProperty(l,null==u?\"\":u):n[l]=null==u?\"\":\"number\"!=typeof u||y.test(l)?u:u+\"px\"}function j(n,l,u,t,i){var r,o;n:if(\"style\"==l)if(\"string\"==typeof u)n.style.cssText=u;else{if(\"string\"==typeof t&&(n.style.cssText=t=\"\"),t)for(l in t)u&&l in u||T(n.style,l,\"\");if(u)for(l in u)t&&u[l]==t[l]||T(n.style,l,u[l])}else if(\"o\"==l[0]&&\"n\"==l[1])r=l!=(l=l.replace(f,\"$1\")),o=l.toLowerCase(),l=o in n||\"onFocusOut\"==l||\"onFocusIn\"==l?o.slice(2):l.slice(2),n.l||(n.l={}),n.l[l+r]=u,u?t?u.u=t.u:(u.u=c,n.addEventListener(l,r?a:s,r)):n.removeEventListener(l,r?a:s,r);else{if(\"http://www.w3.org/2000/svg\"==i)l=l.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=l&&\"height\"!=l&&\"href\"!=l&&\"list\"!=l&&\"form\"!=l&&\"tabIndex\"!=l&&\"download\"!=l&&\"rowSpan\"!=l&&\"colSpan\"!=l&&\"role\"!=l&&\"popover\"!=l&&l in n)try{n[l]=null==u?\"\":u;break n}catch(n){}\"function\"==typeof u||(null==u||!1===u&&\"-\"!=l[4]?n.removeAttribute(l):n.setAttribute(l,\"popover\"==l&&1==u?\"\":u))}}function F(n){return function(u){if(this.l){var t=this.l[u.type+n];if(null==u.t)u.t=c++;else if(u.t<t.u)return;return t(l.event?l.event(u):u)}}}function O(n,u,t,i,r,o,e,f,c,s){var a,h,p,v,y,_,m,b,S,C,M,$,P,A,H,L,T,j=u.type;if(null!=u.constructor)return null;128&t.__u&&(c=!!(32&t.__u),o=[f=u.__e=t.__e]),(a=l.__b)&&a(u);n:if(\"function\"==typeof j)try{if(b=u.props,S=\"prototype\"in j&&j.prototype.render,C=(a=j.contextType)&&i[a.__c],M=a?C?C.props.value:a.__:i,t.__c?m=(h=u.__c=t.__c).__=h.__E:(S?u.__c=h=new j(b,M):(u.__c=h=new x(b,M),h.constructor=j,h.render=D),C&&C.sub(h),h.props=b,h.state||(h.state={}),h.context=M,h.__n=i,p=h.__d=!0,h.__h=[],h._sb=[]),S&&null==h.__s&&(h.__s=h.state),S&&null!=j.getDerivedStateFromProps&&(h.__s==h.state&&(h.__s=d({},h.__s)),d(h.__s,j.getDerivedStateFromProps(b,h.__s))),v=h.props,y=h.state,h.__v=u,p)S&&null==j.getDerivedStateFromProps&&null!=h.componentWillMount&&h.componentWillMount(),S&&null!=h.componentDidMount&&h.__h.push(h.componentDidMount);else{if(S&&null==j.getDerivedStateFromProps&&b!==v&&null!=h.componentWillReceiveProps&&h.componentWillReceiveProps(b,M),!h.__e&&null!=h.shouldComponentUpdate&&!1===h.shouldComponentUpdate(b,h.__s,M)||u.__v==t.__v){for(u.__v!=t.__v&&(h.props=b,h.state=h.__s,h.__d=!1),u.__e=t.__e,u.__k=t.__k,u.__k.some(function(n){n&&(n.__=u)}),$=0;$<h._sb.length;$++)h.__h.push(h._sb[$]);h._sb=[],h.__h.length&&e.push(h);break n}null!=h.componentWillUpdate&&h.componentWillUpdate(b,h.__s,M),S&&null!=h.componentDidUpdate&&h.__h.push(function(){h.componentDidUpdate(v,y,_)})}if(h.context=M,h.props=b,h.__P=n,h.__e=!1,P=l.__r,A=0,S){for(h.state=h.__s,h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),H=0;H<h._sb.length;H++)h.__h.push(h._sb[H]);h._sb=[]}else do{h.__d=!1,P&&P(u),a=h.render(h.props,h.state,h.context),h.state=h.__s}while(h.__d&&++A<25);h.state=h.__s,null!=h.getChildContext&&(i=d(d({},i),h.getChildContext())),S&&!p&&null!=h.getSnapshotBeforeUpdate&&(_=h.getSnapshotBeforeUpdate(v,y)),L=a,null!=a&&a.type===k&&null==a.key&&(L=N(a.props.children)),f=I(n,w(L)?L:[L],u,t,i,r,o,e,f,c,s),h.base=u.__e,u.__u&=-161,h.__h.length&&e.push(h),m&&(h.__E=h.__=null)}catch(n){if(u.__v=null,c||null!=o)if(n.then){for(u.__u|=c?160:128;f&&8==f.nodeType&&f.nextSibling;)f=f.nextSibling;o[o.indexOf(f)]=null,u.__e=f}else for(T=o.length;T--;)g(o[T]);else u.__e=t.__e,u.__k=t.__k;l.__e(n,u,t)}else null==o&&u.__v==t.__v?(u.__k=t.__k,u.__e=t.__e):f=u.__e=V(t.__e,u,t,i,r,o,e,c,s);return(a=l.diffed)&&a(u),128&u.__u?void 0:f}function z(n,u,t){for(var i=0;i<t.length;i++)q(t[i],t[++i],t[++i]);l.__c&&l.__c(u,n),n.some(function(u){try{n=u.__h,u.__h=[],n.some(function(n){n.call(u)})}catch(n){l.__e(n,u.__v)}})}function N(n){return\"object\"!=typeof n||null==n||n.__b&&n.__b>0?n:w(n)?n.map(N):d({},n)}function V(u,t,i,r,o,e,f,c,s){var a,h,v,y,d,_,m,b=i.props,k=t.props,x=t.type;if(\"svg\"==x?o=\"http://www.w3.org/2000/svg\":\"math\"==x?o=\"http://www.w3.org/1998/Math/MathML\":o||(o=\"http://www.w3.org/1999/xhtml\"),null!=e)for(a=0;a<e.length;a++)if((d=e[a])&&\"setAttribute\"in d==!!x&&(x?d.localName==x:3==d.nodeType)){u=d,e[a]=null;break}if(null==u){if(null==x)return document.createTextNode(k);u=document.createElementNS(o,x,k.is&&k),c&&(l.__m&&l.__m(t,e),c=!1),e=null}if(null==x)b===k||c&&u.data==k||(u.data=k);else{if(e=e&&n.call(u.childNodes),b=i.props||p,!c&&null!=e)for(b={},a=0;a<u.attributes.length;a++)b[(d=u.attributes[a]).name]=d.value;for(a in b)if(d=b[a],\"children\"==a);else if(\"dangerouslySetInnerHTML\"==a)v=d;else if(!(a in k)){if(\"value\"==a&&\"defaultValue\"in k||\"checked\"==a&&\"defaultChecked\"in k)continue;j(u,a,null,d,o)}for(a in k)d=k[a],\"children\"==a?y=d:\"dangerouslySetInnerHTML\"==a?h=d:\"value\"==a?_=d:\"checked\"==a?m=d:c&&\"function\"!=typeof d||b[a]===d||j(u,a,d,b[a],o);if(h)c||v&&(h.__html==v.__html||h.__html==u.innerHTML)||(u.innerHTML=h.__html),t.__k=[];else if(v&&(u.innerHTML=\"\"),I(\"template\"==t.type?u.content:u,w(y)?y:[y],t,i,r,\"foreignObject\"==x?\"http://www.w3.org/1999/xhtml\":o,e,f,e?e[0]:i.__k&&S(i,0),c,s),null!=e)for(a=e.length;a--;)g(e[a]);c||(a=\"value\",\"progress\"==x&&null==_?u.removeAttribute(\"value\"):null!=_&&(_!==u[a]||\"progress\"==x&&!_||\"option\"==x&&_!=b[a])&&j(u,a,_,b[a],o),a=\"checked\",null!=m&&m!=u[a]&&j(u,a,m,b[a],o))}return u}function q(n,u,t){try{if(\"function\"==typeof n){var i=\"function\"==typeof n.__u;i&&n.__u(),i&&null==u||(n.__u=n(u))}else n.current=u}catch(n){l.__e(n,t)}}function B(n,u,t){var i,r;if(l.unmount&&l.unmount(n),(i=n.ref)&&(i.current&&i.current!=n.__e||q(i,null,u)),null!=(i=n.__c)){if(i.componentWillUnmount)try{i.componentWillUnmount()}catch(n){l.__e(n,u)}i.base=i.__P=null}if(i=n.__k)for(r=0;r<i.length;r++)i[r]&&B(i[r],u,t||\"function\"!=typeof n.type);t||g(n.__e),n.__c=n.__=n.__e=void 0}function D(n,l,u){return this.constructor(n,u)}function E(u,t,i){var r,o,e,f;t==document&&(t=document.documentElement),l.__&&l.__(u,t),o=(r=\"function\"==typeof i)?null:i&&i.__k||t.__k,e=[],f=[],O(t,u=(!r&&i||t).__k=_(k,null,[u]),o||p,p,t.namespaceURI,!r&&i?[i]:o?null:t.firstChild?n.call(t.childNodes):null,e,!r&&i?i:o?o.__e:t.firstChild,r,f),z(e,u,f)}function G(n,l){E(n,l,G)}function J(l,u,t){var i,r,o,e,f=d({},l.props);for(o in l.type&&l.type.defaultProps&&(e=l.type.defaultProps),u)\"key\"==o?i=u[o]:\"ref\"==o?r=u[o]:f[o]=void 0===u[o]&&null!=e?e[o]:u[o];return arguments.length>2&&(f.children=arguments.length>3?n.call(arguments,2):t),m(l.type,f,i||l.key,r||l.ref,null)}function K(n){function l(n){var u,t;return this.getChildContext||(u=new Set,(t={})[l.__c]=this,this.getChildContext=function(){return t},this.componentWillUnmount=function(){u=null},this.shouldComponentUpdate=function(n){this.props.value!=n.value&&u.forEach(function(n){n.__e=!0,M(n)})},this.sub=function(n){u.add(n);var l=n.componentWillUnmount;n.componentWillUnmount=function(){u&&u.delete(n),l&&l.call(n)}}),n.children}return l.__c=\"__cC\"+h++,l.__=n,l.Provider=l.__l=(l.Consumer=function(n,l){return n.children(l)}).contextType=l,l}n=v.slice,l={__e:function(n,l,u,t){for(var i,r,o;l=l.__;)if((i=l.__c)&&!i.__)try{if((r=i.constructor)&&null!=r.getDerivedStateFromError&&(i.setState(r.getDerivedStateFromError(n)),o=i.__d),null!=i.componentDidCatch&&(i.componentDidCatch(n,t||{}),o=i.__d),o)return i.__E=i}catch(l){n=l}throw n}},u=0,t=function(n){return null!=n&&null==n.constructor},x.prototype.setState=function(n,l){var u;u=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=d({},this.state),\"function\"==typeof n&&(n=n(d({},u),this.props)),n&&d(u,n),null!=n&&this.__v&&(l&&this._sb.push(l),M(this))},x.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),M(this))},x.prototype.render=k,i=[],o=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout,e=function(n,l){return n.__v.__b-l.__v.__b},$.__r=0,f=/(PointerCapture)$|Capture$/i,c=0,s=F(!1),a=F(!0),h=0;export{x as Component,k as Fragment,J as cloneElement,K as createContext,_ as createElement,b as createRef,_ as h,G as hydrate,t as isValidElement,l as options,E as render,H as toChildArray};\n//# sourceMappingURL=preact.module.js.map\n","import{options as r,Fragment as e}from\"preact\";export{Fragment}from\"preact\";var t=/[\"&<]/;function n(r){if(0===r.length||!1===t.test(r))return r;for(var e=0,n=0,o=\"\",f=\"\";n<r.length;n++){switch(r.charCodeAt(n)){case 34:f=\""\";break;case 38:f=\"&\";break;case 60:f=\"<\";break;default:continue}n!==e&&(o+=r.slice(e,n)),o+=f,e=n+1}return n!==e&&(o+=r.slice(e,n)),o}var o=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,f=0,i=Array.isArray;function u(e,t,n,o,i,u){t||(t={});var a,c,p=t;if(\"ref\"in p)for(c in p={},t)\"ref\"==c?a=t[c]:p[c]=t[c];var l={type:e,props:p,key:n,ref:a,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--f,__i:-1,__u:0,__source:i,__self:u};if(\"function\"==typeof e&&(a=e.defaultProps))for(c in a)void 0===p[c]&&(p[c]=a[c]);return r.vnode&&r.vnode(l),l}function a(r){var t=u(e,{tpl:r,exprs:[].slice.call(arguments,1)});return t.key=t.__v,t}var c={},p=/[A-Z]/g;function l(e,t){if(r.attr){var f=r.attr(e,t);if(\"string\"==typeof f)return f}if(t=function(r){return null!==r&&\"object\"==typeof r&&\"function\"==typeof r.valueOf?r.valueOf():r}(t),\"ref\"===e||\"key\"===e)return\"\";if(\"style\"===e&&\"object\"==typeof t){var i=\"\";for(var u in t){var a=t[u];if(null!=a&&\"\"!==a){var l=\"-\"==u[0]?u:c[u]||(c[u]=u.replace(p,\"-$&\").toLowerCase()),s=\";\";\"number\"!=typeof a||l.startsWith(\"--\")||o.test(l)||(s=\"px;\"),i=i+l+\":\"+a+s}}return e+'=\"'+n(i)+'\"'}return null==t||!1===t||\"function\"==typeof t||\"object\"==typeof t?\"\":!0===t?e:e+'=\"'+n(\"\"+t)+'\"'}function s(r){if(null==r||\"boolean\"==typeof r||\"function\"==typeof r)return null;if(\"object\"==typeof r){if(void 0===r.constructor)return r;if(i(r)){for(var e=0;e<r.length;e++)r[e]=s(r[e]);return r}}return n(\"\"+r)}export{u as jsx,l as jsxAttr,u as jsxDEV,s as jsxEscape,a as jsxTemplate,u as jsxs};\n//# sourceMappingURL=jsxRuntime.module.js.map\n","import{options as n}from\"preact\";var t,r,u,i,o=0,f=[],c=n,e=c.__b,a=c.__r,v=c.diffed,l=c.__c,m=c.unmount,s=c.__;function p(n,t){c.__h&&c.__h(r,n,o||t),o=0;var u=r.__H||(r.__H={__:[],__h:[]});return n>=u.__.length&&u.__.push({}),u.__[n]}function d(n){return o=1,h(D,n)}function h(n,u,i){var o=p(t++,2);if(o.t=n,!o.__c&&(o.__=[i?i(u):D(void 0,u),function(n){var t=o.__N?o.__N[0]:o.__[0],r=o.t(t,n);t!==r&&(o.__N=[r,o.__[1]],o.__c.setState({}))}],o.__c=r,!r.__f)){var f=function(n,t,r){if(!o.__c.__H)return!0;var u=o.__c.__H.__.filter(function(n){return!!n.__c});if(u.every(function(n){return!n.__N}))return!c||c.call(this,n,t,r);var i=o.__c.props!==n;return u.forEach(function(n){if(n.__N){var t=n.__[0];n.__=n.__N,n.__N=void 0,t!==n.__[0]&&(i=!0)}}),c&&c.call(this,n,t,r)||i};r.__f=!0;var c=r.shouldComponentUpdate,e=r.componentWillUpdate;r.componentWillUpdate=function(n,t,r){if(this.__e){var u=c;c=void 0,f(n,t,r),c=u}e&&e.call(this,n,t,r)},r.shouldComponentUpdate=f}return o.__N||o.__}function y(n,u){var i=p(t++,3);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__H.__h.push(i))}function _(n,u){var i=p(t++,4);!c.__s&&C(i.__H,u)&&(i.__=n,i.u=u,r.__h.push(i))}function A(n){return o=5,T(function(){return{current:n}},[])}function F(n,t,r){o=6,_(function(){if(\"function\"==typeof n){var r=n(t());return function(){n(null),r&&\"function\"==typeof r&&r()}}if(n)return n.current=t(),function(){return n.current=null}},null==r?r:r.concat(n))}function T(n,r){var u=p(t++,7);return C(u.__H,r)&&(u.__=n(),u.__H=r,u.__h=n),u.__}function q(n,t){return o=8,T(function(){return n},t)}function x(n){var u=r.context[n.__c],i=p(t++,9);return i.c=n,u?(null==i.__&&(i.__=!0,u.sub(r)),u.props.value):n.__}function P(n,t){c.useDebugValue&&c.useDebugValue(t?t(n):n)}function b(n){var u=p(t++,10),i=d();return u.__=n,r.componentDidCatch||(r.componentDidCatch=function(n,t){u.__&&u.__(n,t),i[1](n)}),[i[0],function(){i[1](void 0)}]}function g(){var n=p(t++,11);if(!n.__){for(var u=r.__v;null!==u&&!u.__m&&null!==u.__;)u=u.__;var i=u.__m||(u.__m=[0,0]);n.__=\"P\"+i[0]+\"-\"+i[1]++}return n.__}function j(){for(var n;n=f.shift();)if(n.__P&&n.__H)try{n.__H.__h.forEach(z),n.__H.__h.forEach(B),n.__H.__h=[]}catch(t){n.__H.__h=[],c.__e(t,n.__v)}}c.__b=function(n){r=null,e&&e(n)},c.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),s&&s(n,t)},c.__r=function(n){a&&a(n),t=0;var i=(r=n.__c).__H;i&&(u===r?(i.__h=[],r.__h=[],i.__.forEach(function(n){n.__N&&(n.__=n.__N),n.u=n.__N=void 0})):(i.__h.forEach(z),i.__h.forEach(B),i.__h=[],t=0)),u=r},c.diffed=function(n){v&&v(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(1!==f.push(t)&&i===c.requestAnimationFrame||((i=c.requestAnimationFrame)||w)(j)),t.__H.__.forEach(function(n){n.u&&(n.__H=n.u),n.u=void 0})),u=r=null},c.__c=function(n,t){t.some(function(n){try{n.__h.forEach(z),n.__h=n.__h.filter(function(n){return!n.__||B(n)})}catch(r){t.some(function(n){n.__h&&(n.__h=[])}),t=[],c.__e(r,n.__v)}}),l&&l(n,t)},c.unmount=function(n){m&&m(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.forEach(function(n){try{z(n)}catch(n){t=n}}),r.__H=void 0,t&&c.__e(t,r.__v))};var k=\"function\"==typeof requestAnimationFrame;function w(n){var t,r=function(){clearTimeout(u),k&&cancelAnimationFrame(t),setTimeout(n)},u=setTimeout(r,35);k&&(t=requestAnimationFrame(r))}function z(n){var t=r,u=n.__c;\"function\"==typeof u&&(n.__c=void 0,u()),r=t}function B(n){var t=r;n.__c=n.__(),r=t}function C(n,t){return!n||n.length!==t.length||t.some(function(t,r){return t!==n[r]})}function D(n,t){return\"function\"==typeof t?t(n):t}export{q as useCallback,x as useContext,P as useDebugValue,y as useEffect,b as useErrorBoundary,g as useId,F as useImperativeHandle,_ as useLayoutEffect,T as useMemo,h as useReducer,A as useRef,d as useState};\n//# sourceMappingURL=hooks.module.js.map\n","/**\n * @license @tabler/icons-preact v3.34.0 - 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.0 - 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.0 - 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\", \"IconLoader2\", [[\"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{h as t,hydrate as e,render as n,cloneElement as o}from\"preact\";function r(){return(r=Object.assign?Object.assign.bind():function(t){for(var e=1;e<arguments.length;e++){var n=arguments[e];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(t[o]=n[o])}return t}).apply(this,arguments)}var i=[\"context\",\"children\"];function a(t){this.getChildContext=function(){return t.context};var e=t.children,n=function(t,e){if(null==t)return{};var n,o,r={},i=Object.keys(t);for(o=0;o<i.length;o++)e.indexOf(n=i[o])>=0||(r[n]=t[n]);return r}(t,i);return o(e,n)}function s(){var o=new CustomEvent(\"_preact\",{detail:{},bubbles:!0,cancelable:!0});this.dispatchEvent(o),this._vdom=t(a,r({},this._props,{context:o.detail.context}),function e(n,o){if(3===n.nodeType)return n.data;if(1!==n.nodeType)return null;var r=[],i={},a=0,s=n.attributes,l=n.childNodes;for(a=s.length;a--;)\"slot\"!==s[a].name&&(i[s[a].name]=s[a].value,i[c(s[a].name)]=s[a].value);for(a=l.length;a--;){var u=e(l[a],null),d=l[a].slot;d?i[d]=t(p,{name:d},u):r[a]=u}var h=o?t(p,null,r):r;return t(o||n.nodeName.toLowerCase(),i,h)}(this,this._vdomComponent)),(this.hasAttribute(\"hydrate\")?e:n)(this._vdom,this._root)}function c(t){return t.replace(/-(\\w)/g,function(t,e){return e?e.toUpperCase():\"\"})}function l(t,e,r){if(this._vdom){var i={};i[t]=r=null==r?void 0:r,i[c(t)]=r,this._vdom=o(this._vdom,i),n(this._vdom,this._root)}}function u(){n(this._vdom=null,this._root)}function p(e,n){var o=this;return t(\"slot\",r({},e,{ref:function(t){t?(o.ref=t,o._listener||(o._listener=function(t){t.stopPropagation(),t.detail.context=n},t.addEventListener(\"_preact\",o._listener))):o.ref.removeEventListener(\"_preact\",o._listener)}}))}export default function(t,e,n,o){function r(){var e=Reflect.construct(HTMLElement,[],r);return e._vdomComponent=t,e._root=o&&o.shadow?e.attachShadow({mode:o.mode||\"open\"}):e,e}return(r.prototype=Object.create(HTMLElement.prototype)).constructor=r,r.prototype.connectedCallback=s,r.prototype.attributeChangedCallback=l,r.prototype.disconnectedCallback=u,n=n||t.observedAttributes||Object.keys(t.propTypes||{}),r.observedAttributes=n,n.forEach(function(t){Object.defineProperty(r.prototype,t,{get:function(){return this._vdom.props[t]},set:function(e){this._vdom?this.attributeChangedCallback(t,null,e):(this._props||(this._props={}),this._props[t]=e,this.connectedCallback());var n=typeof e;null!=e&&\"string\"!==n&&\"boolean\"!==n&&\"number\"!==n||this.setAttribute(t,e)}})}),customElements.define(e||t.tagName||t.displayName||t.name,r)}\n//# sourceMappingURL=preact-custom-element.esm.js.map\n","export const getBoolProp = (\r\n value: string | boolean | undefined,\r\n defaultValue: boolean = false,\r\n): boolean => {\r\n if (typeof value === 'boolean') return value;\r\n if (typeof value === 'string') {\r\n return value === 'true' || value === '';\r\n }\r\n return defaultValue;\r\n};\r\n\r\nexport const getStringProp = (\r\n element: HTMLElement,\r\n attributeName: string,\r\n defaultValue: string = '',\r\n): string => element.getAttribute(attributeName) || defaultValue;\r\n","import { useRef, useState } from 'preact/hooks';\r\n\r\nexport const useCamera = () => {\r\n const videoRef = useRef<HTMLVideoElement>(null);\r\n const streamRef = useRef<MediaStream | null>(null);\r\n const [facingMode, setFacingMode] = useState<'user' | 'environment'>('user');\r\n const [agentSupported, setAgentSupported] = useState(false);\r\n\r\n const startCamera = async () => {\r\n try {\r\n if (streamRef.current) {\r\n streamRef.current.getTracks().forEach((track) => track.stop());\r\n streamRef.current = null;\r\n }\r\n\r\n if (videoRef.current) {\r\n videoRef.current.srcObject = null;\r\n }\r\n\r\n const stream = await navigator.mediaDevices.getUserMedia({\r\n video: { facingMode },\r\n });\r\n streamRef.current = stream;\r\n\r\n const devices = await navigator.mediaDevices.enumerateDevices();\r\n const videoDevice = devices.find(\r\n (device) =>\r\n device.kind === 'videoinput' &&\r\n stream.getVideoTracks()[0].getSettings().deviceId === device.deviceId,\r\n );\r\n\r\n const smartCameraWeb = document.querySelector('smart-camera-web');\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.camera-name', {\r\n detail: { cameraName: videoDevice?.label },\r\n }),\r\n );\r\n\r\n if (videoRef.current) {\r\n videoRef.current.srcObject = stream;\r\n await videoRef.current.play();\r\n }\r\n } catch (error) {\r\n console.error('Failed to start camera:', error);\r\n }\r\n };\r\n\r\n const switchCamera = async () => {\r\n const newFacingMode = facingMode === 'user' ? 'environment' : 'user';\r\n setFacingMode(newFacingMode);\r\n\r\n if (streamRef.current) {\r\n streamRef.current.getTracks().forEach((track) => track.stop());\r\n streamRef.current = null;\r\n }\r\n\r\n await startCamera();\r\n };\r\n\r\n const checkAgentSupport = async () => {\r\n try {\r\n const devices = await navigator.mediaDevices.enumerateDevices();\r\n const videoDevices = devices.filter(\r\n (device) => device.kind === 'videoinput',\r\n );\r\n setAgentSupported(videoDevices.length > 1);\r\n } catch (error) {\r\n setAgentSupported(false);\r\n }\r\n };\r\n\r\n const stopCamera = () => {\r\n if (streamRef.current) {\r\n streamRef.current.getTracks().forEach((track) => track.stop());\r\n streamRef.current = null;\r\n }\r\n\r\n if (videoRef.current) {\r\n videoRef.current.srcObject = null;\r\n videoRef.current.load();\r\n }\r\n };\r\n\r\n return {\r\n videoRef,\r\n streamRef,\r\n facingMode,\r\n agentSupported,\r\n startCamera,\r\n switchCamera,\r\n checkAgentSupport,\r\n stopCamera,\r\n };\r\n};\r\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","/**\r\n * Calculate the size of a face relative to the video frame\r\n */\r\nexport const calculateFaceSize = (landmarks: any): number => {\r\n if (!landmarks || landmarks.length === 0) return 0;\r\n\r\n const face = landmarks[0];\r\n\r\n if (!face || face.length === 0) return 0;\r\n\r\n // Get bounding box of face landmarks\r\n let minX = 1;\r\n let maxX = 0;\r\n let minY = 1;\r\n let maxY = 0;\r\n\r\n face.forEach((landmark: any) => {\r\n if (\r\n landmark &&\r\n typeof landmark.x === 'number' &&\r\n typeof landmark.y === 'number'\r\n ) {\r\n minX = Math.min(minX, landmark.x);\r\n maxX = Math.max(maxX, landmark.x);\r\n minY = Math.min(minY, landmark.y);\r\n maxY = Math.max(maxY, landmark.y);\r\n }\r\n });\r\n\r\n // Calculate face size as percentage of video area\r\n const faceWidth = maxX - minX;\r\n const faceHeight = maxY - minY;\r\n const faceSize = Math.max(faceWidth, faceHeight);\r\n\r\n return faceSize;\r\n};\r\n\r\n/**\r\n * Check if a face is positioned within the oval bounds\r\n */\r\nexport const isFaceInBounds = (\r\n landmarks: any,\r\n videoAspectRatio: number,\r\n): boolean => {\r\n if (!landmarks || landmarks.length === 0) return false;\r\n\r\n const face = landmarks[0];\r\n\r\n let minX = 1;\r\n let maxX = 0;\r\n let minY = 1;\r\n let maxY = 0;\r\n face.forEach((landmark: any) => {\r\n minX = Math.min(minX, landmark.x);\r\n maxX = Math.max(maxX, landmark.x);\r\n minY = Math.min(minY, landmark.y);\r\n maxY = Math.max(maxY, landmark.y);\r\n });\r\n\r\n const ovalCenterX = 0.5;\r\n const ovalCenterY = 0.6;\r\n\r\n const isLandscape = videoAspectRatio > 1;\r\n let ovalWidth;\r\n let ovalHeight;\r\n if (isLandscape) {\r\n ovalWidth = 0.4;\r\n ovalHeight = 0.3;\r\n } else {\r\n ovalWidth = 0.35;\r\n ovalHeight = 0.5;\r\n }\r\n\r\n const faceCenterX = (minX + maxX) / 2;\r\n const faceCenterY = (minY + maxY) / 2;\r\n\r\n const centerTolerance = 0.2;\r\n const centerOvalWidth = ovalWidth * (1 + centerTolerance);\r\n const centerOvalHeight = ovalHeight * (1 + centerTolerance);\r\n\r\n const checkPointInCenterOval = (x: number, y: number) => {\r\n const dx = (x - ovalCenterX) / centerOvalWidth;\r\n const dy = (y - ovalCenterY) / centerOvalHeight;\r\n return dx * dx + dy * dy <= 1;\r\n };\r\n const centerInBounds = checkPointInCenterOval(faceCenterX, faceCenterY);\r\n\r\n const toleranceX = 0.2;\r\n const toleranceY = 0.1;\r\n const adjustedOvalWidth = ovalWidth * (1 + toleranceX);\r\n const adjustedOvalHeight = ovalHeight * (1 + toleranceY);\r\n\r\n const checkPointInExpandedOval = (x: number, y: number) => {\r\n const dx = (x - ovalCenterX) / adjustedOvalWidth;\r\n const dy = (y - ovalCenterY) / adjustedOvalHeight;\r\n return dx * dx + dy * dy <= 1;\r\n };\r\n\r\n const topLeft = checkPointInExpandedOval(minX, minY);\r\n const topRight = checkPointInExpandedOval(maxX, minY);\r\n const bottomLeft = checkPointInExpandedOval(minX, maxY);\r\n const bottomRight = checkPointInExpandedOval(maxX, maxY);\r\n\r\n return centerInBounds && topLeft && topRight && bottomLeft && bottomRight;\r\n};\r\n\r\n/**\r\n * Calculate mouth opening using face landmarks\r\n */\r\nexport const calculateMouthOpening = (landmarks: any): number => {\r\n if (!landmarks || landmarks.length === 0) return 0;\r\n\r\n const face = landmarks[0];\r\n if (!face || face.length === 0) return 0;\r\n\r\n // MediaPipe face landmark indices for mouth\r\n const upperLipCenter = face[13]; // Upper lip center\r\n const lowerLipCenter = face[14]; // Lower lip center\r\n\r\n if (!upperLipCenter || !lowerLipCenter) return 0;\r\n\r\n const mouthHeight = Math.abs(lowerLipCenter.y - upperLipCenter.y);\r\n\r\n const faceTop = Math.min(...face.map((p: any) => p.y));\r\n const faceBottom = Math.max(...face.map((p: any) => p.y));\r\n const faceHeight = faceBottom - faceTop;\r\n\r\n return faceHeight > 0 ? mouthHeight / faceHeight : 0;\r\n};\r\n","import { DrawingUtils, FaceLandmarker } from '@mediapipe/tasks-vision';\r\n\r\n/**\r\n * Create a cropped square canvas from video for face detection\r\n */\r\nexport const createCroppedVideoFrame = (\r\n videoElement: HTMLVideoElement,\r\n): HTMLCanvasElement | null => {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx) return null;\r\n\r\n const sourceWidth = videoElement.videoWidth;\r\n const sourceHeight = videoElement.videoHeight;\r\n\r\n const squareSize = Math.min(sourceWidth, sourceHeight);\r\n const cropX = (sourceWidth - squareSize) / 2;\r\n const cropY = (sourceHeight - squareSize) / 2;\r\n\r\n canvas.width = squareSize;\r\n canvas.height = squareSize;\r\n\r\n ctx.drawImage(\r\n videoElement,\r\n cropX,\r\n cropY,\r\n squareSize,\r\n squareSize,\r\n 0,\r\n 0,\r\n squareSize,\r\n squareSize,\r\n );\r\n\r\n return canvas;\r\n};\r\n\r\n/**\r\n * Draw face mesh overlay on canvas\r\n */\r\nexport const drawFaceMesh = (\r\n canvas: HTMLCanvasElement,\r\n landmarks: any[],\r\n capturesTaken: number,\r\n smileCheckpoint: number,\r\n): void => {\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx) return;\r\n\r\n const canvasWidth = canvas.width;\r\n const canvasHeight = canvas.height;\r\n\r\n ctx.clearRect(0, 0, canvasWidth, canvasHeight);\r\n const drawingUtils = new DrawingUtils(ctx);\r\n\r\n // use this if scaling is needed\r\n // const scaleFactor = Math.sqrt(canvasWidth * canvasHeight) / 500;\r\n\r\n landmarks.forEach((landmark) => {\r\n if (!landmark || landmark.length === 0) return;\r\n\r\n const outlineColor = 'rgba(162, 155, 254,0.4)';\r\n const lineWidth = 2; // Math.max(1, scaleFactor * 2);\r\n ctx.strokeStyle = 'rgba(255, 255, 255, 0.6)';\r\n ctx.lineWidth = lineWidth;\r\n ctx.lineCap = 'round';\r\n ctx.lineJoin = 'round';\r\n\r\n drawingUtils.drawLandmarks(landmark, {\r\n color: 'rgba(9, 132, 227,0.7)',\r\n lineWidth: 0.5,\r\n radius: 0.5,\r\n });\r\n drawingUtils.drawConnectors(\r\n landmark,\r\n FaceLandmarker.FACE_LANDMARKS_FACE_OVAL,\r\n {\r\n color: outlineColor,\r\n lineWidth,\r\n },\r\n );\r\n\r\n const isInSmileZone = capturesTaken > 0 && capturesTaken >= smileCheckpoint;\r\n if (isInSmileZone) {\r\n drawingUtils.drawConnectors(\r\n landmark,\r\n FaceLandmarker.FACE_LANDMARKS_LIPS,\r\n {\r\n color: outlineColor,\r\n lineWidth,\r\n },\r\n );\r\n }\r\n });\r\n};\r\n\r\n/**\r\n * Clear canvas completely\r\n */\r\nexport const clearCanvas = (canvas: HTMLCanvasElement): void => {\r\n const ctx = canvas.getContext('2d');\r\n if (ctx) {\r\n ctx.clearRect(0, 0, canvas.width, canvas.height);\r\n }\r\n};\r\n","export const captureImageFromVideo = (\r\n videoElement: HTMLVideoElement,\r\n isReference: boolean = false,\r\n): string | null => {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx) return null;\r\n\r\n const isPortrait = videoElement.videoHeight > videoElement.videoWidth;\r\n\r\n if (isReference) {\r\n if (isPortrait) {\r\n canvas.width = 480;\r\n canvas.height = Math.max(\r\n 640,\r\n (canvas.width * videoElement.videoHeight) / videoElement.videoWidth,\r\n );\r\n } else {\r\n canvas.width = 640;\r\n canvas.height = Math.max(\r\n 480,\r\n (canvas.width * videoElement.videoHeight) / videoElement.videoWidth,\r\n );\r\n }\r\n } else if (isPortrait) {\r\n canvas.width = 240;\r\n canvas.height = Math.max(\r\n 320,\r\n (canvas.width * videoElement.videoHeight) / videoElement.videoWidth,\r\n );\r\n } else {\r\n canvas.width = 320;\r\n canvas.height = Math.max(\r\n 240,\r\n (canvas.width * videoElement.videoHeight) / videoElement.videoWidth,\r\n );\r\n }\r\n\r\n // capture more of the user's head and avoid clipping\r\n // zoom out only for high resolution (>720p) webcams\r\n const zoomOutFactor = videoElement.videoHeight > 720 ? 1.3 : 1.0;\r\n const sourceWidth = videoElement.videoWidth * zoomOutFactor;\r\n const sourceHeight = videoElement.videoHeight * zoomOutFactor;\r\n\r\n // center the zoomed out area\r\n const offsetX = (sourceWidth - videoElement.videoWidth) / 2;\r\n const offsetY = (sourceHeight - videoElement.videoHeight) / 2;\r\n\r\n // vertical offset to shift up and capture full head\r\n const verticalOffset = videoElement.videoHeight * 0.05;\r\n\r\n ctx.drawImage(\r\n videoElement,\r\n -offsetX,\r\n -offsetY - verticalOffset,\r\n sourceWidth,\r\n sourceHeight,\r\n 0,\r\n 0,\r\n canvas.width,\r\n canvas.height,\r\n );\r\n\r\n return canvas.toDataURL('image/jpeg');\r\n};\r\n","/**\r\n * The type of image submitted in the job request\r\n * @readonly\r\n * @enum {number}\r\n */\r\nexport const ImageType = {\r\n /** ID_CARD_BACK_IMAGE_BASE64 Base64 encoded back of ID card image (.jpg or .png) */\r\n ID_CARD_BACK_IMAGE_BASE64: 7,\r\n /** ID_CARD_BACK_IMAGE_FILE Back of ID card image in .png or .jpg file format */\r\n ID_CARD_BACK_IMAGE_FILE: 5,\r\n /** ID_CARD_IMAGE_BASE64 Base64 encoded ID card image (.png or .jpg) */\r\n ID_CARD_IMAGE_BASE64: 3,\r\n /** ID_CARD_IMAGE_FILE ID card image in .png or .jpg file format */\r\n ID_CARD_IMAGE_FILE: 1,\r\n /** LIVENESS_IMAGE_BASE64 Base64 encoded liveness image (.jpg or .png) */\r\n LIVENESS_IMAGE_BASE64: 6,\r\n /** LIVENESS_IMAGE_FILE Liveness image in .png or .jpg file format */\r\n LIVENESS_IMAGE_FILE: 4,\r\n /** SELFIE_IMAGE_BASE64 Base64 encoded selfie image (.png or .jpg) */\r\n SELFIE_IMAGE_BASE64: 2,\r\n /** SELFIE_IMAGE_FILE Selfie image in .png or .jpg file format */\r\n SELFIE_IMAGE_FILE: 0,\r\n};\r\n","export const MESSAGES = {\r\n 'multiple-faces': 'Ensure only one face is visible',\r\n 'no-face': 'Position your face in the oval',\r\n 'out-of-bounds': 'Position your face in the oval',\r\n 'too-close': 'Move farther away',\r\n 'too-far': 'Move closer',\r\n 'neutral-expression': 'Neutral expression',\r\n 'smile-required': 'Smile!',\r\n 'open-mouth-smile': 'Bigger smile!',\r\n};\r\n\r\nexport type MessageKey = keyof typeof MESSAGES;\r\n","import { FaceLandmarker, FilesetResolver } from '@mediapipe/tasks-vision';\r\n\r\ndeclare global {\r\n interface Window {\r\n __smileIdentityMediapipe?: {\r\n instance: FaceLandmarker | null;\r\n loading: Promise<FaceLandmarker> | null;\r\n loaded: boolean;\r\n };\r\n }\r\n}\r\n\r\nexport const getMediapipeInstance = async (): Promise<FaceLandmarker> => {\r\n if (!window.__smileIdentityMediapipe) {\r\n window.__smileIdentityMediapipe = {\r\n instance: null,\r\n loading: null,\r\n loaded: false,\r\n };\r\n }\r\n\r\n const mediapipeGlobal = window.__smileIdentityMediapipe;\r\n\r\n if (mediapipeGlobal.loaded && mediapipeGlobal.instance) {\r\n return mediapipeGlobal.instance;\r\n }\r\n\r\n if (mediapipeGlobal.loading) {\r\n return mediapipeGlobal.loading;\r\n }\r\n\r\n mediapipeGlobal.loading = (async () => {\r\n try {\r\n const vision = await FilesetResolver.forVisionTasks(\r\n 'https://web-models.smileidentity.com/mediapipe-tasks-vision-wasm',\r\n );\r\n\r\n const faceLandmarker = await FaceLandmarker.createFromOptions(vision, {\r\n baseOptions: {\r\n modelAssetPath: `https://web-models.smileidentity.com/face_landmarker/face_landmarker.task`,\r\n delegate: 'GPU',\r\n },\r\n outputFaceBlendshapes: true,\r\n runningMode: 'VIDEO',\r\n numFaces: 2,\r\n });\r\n\r\n mediapipeGlobal.instance = faceLandmarker;\r\n mediapipeGlobal.loaded = true;\r\n mediapipeGlobal.loading = null;\r\n\r\n return faceLandmarker;\r\n } catch (error) {\r\n mediapipeGlobal.loading = null;\r\n throw error;\r\n }\r\n })();\r\n\r\n return mediapipeGlobal.loading;\r\n};\r\n","import { useRef } from 'preact/hooks';\r\nimport { useSignal, useComputed } from '@preact/signals';\r\nimport { FaceLandmarker } from '@mediapipe/tasks-vision';\r\nimport {\r\n calculateFaceSize,\r\n isFaceInBounds,\r\n calculateMouthOpening,\r\n} from '../utils/faceDetection';\r\nimport {\r\n createCroppedVideoFrame,\r\n drawFaceMesh,\r\n clearCanvas,\r\n} from '../utils/canvas';\r\nimport { captureImageFromVideo } from '../utils/imageCapture';\r\nimport { ImageType } from '../constants';\r\nimport { MESSAGES, type MessageKey } from '../utils/alertMessages';\r\nimport { getMediapipeInstance } from '../utils/mediapipeManager';\r\nimport packageJson from '../../../../../../package.json';\r\n\r\nconst COMPONENTS_VERSION = packageJson.version;\r\n\r\ninterface UseFaceCaptureProps {\r\n videoRef: React.RefObject<HTMLVideoElement>;\r\n canvasRef: React.RefObject<HTMLCanvasElement>;\r\n interval: number;\r\n duration: number;\r\n smileThreshold: number;\r\n mouthOpenThreshold: number;\r\n minFaceSize: number;\r\n maxFaceSize: number;\r\n smileCooldown: number;\r\n}\r\n\r\nexport const useFaceCapture = ({\r\n videoRef,\r\n canvasRef,\r\n interval,\r\n duration,\r\n smileThreshold,\r\n mouthOpenThreshold,\r\n minFaceSize,\r\n maxFaceSize,\r\n smileCooldown,\r\n}: UseFaceCaptureProps) => {\r\n const faceLandmarkerRef = useRef<FaceLandmarker | null>(null);\r\n const animationFrameRef = useRef<number | null>(null);\r\n const captureTimerRef = useRef<NodeJS.Timeout | null>(null);\r\n const resumeCaptureRef = useRef<(() => void) | null>(null);\r\n\r\n const faceDetected = useSignal(false);\r\n const faceInBounds = useSignal(false);\r\n const faceProximity = useSignal<'too-close' | 'too-far' | 'good'>('good');\r\n const multipleFaces = useSignal(false);\r\n const videoAspectRatio = useSignal(16 / 9);\r\n const faceLandmarks = useSignal<any[]>([]);\r\n const currentSmileScore = useSignal(0);\r\n const currentFaceSize = useSignal(0);\r\n const currentMouthOpen = useSignal(0);\r\n const lastSmileTime = useSignal(0);\r\n const alertTitle = useSignal('');\r\n\r\n const isCapturing = useSignal(false);\r\n const isPaused = useSignal(false);\r\n const countdown = useSignal(0);\r\n const capturedImages = useSignal<string[]>([]);\r\n const referencePhoto = useSignal<string | null>(null);\r\n const totalCaptures = useSignal(1);\r\n const capturesTaken = useSignal(0);\r\n const hasFinishedCapture = useSignal(false);\r\n\r\n const smileCheckpoint = useComputed(() =>\r\n Math.floor(totalCaptures.value * 0.4),\r\n );\r\n const neutralZone = useComputed(() => Math.floor(totalCaptures.value * 0.2));\r\n\r\n const isReadyToCapture = useComputed(\r\n () =>\r\n faceDetected.value &&\r\n faceInBounds.value &&\r\n faceProximity.value === 'good' &&\r\n !multipleFaces.value,\r\n );\r\n\r\n const initializeFaceLandmarker = async () => {\r\n try {\r\n faceLandmarkerRef.current = await getMediapipeInstance();\r\n } catch (error) {\r\n console.error('Failed to initialize MediaPipe:', error);\r\n }\r\n };\r\n\r\n const updateAlert = (messageKey: MessageKey | null) => {\r\n if (messageKey && MESSAGES[messageKey]) {\r\n alertTitle.value = MESSAGES[messageKey];\r\n } else {\r\n alertTitle.value = '';\r\n }\r\n };\r\n\r\n const setupCanvas = () => {\r\n if (videoRef.current && canvasRef.current) {\r\n const { videoWidth, videoHeight } = videoRef.current;\r\n\r\n videoAspectRatio.value = videoWidth / videoHeight;\r\n\r\n canvasRef.current.width = videoWidth;\r\n canvasRef.current.height = videoHeight;\r\n\r\n const container = videoRef.current.parentElement;\r\n if (container) {\r\n canvasRef.current.style.left = '50%';\r\n canvasRef.current.style.top = '50%';\r\n canvasRef.current.style.transform = 'translate(-50%, -50%) scaleX(-1)';\r\n }\r\n }\r\n };\r\n\r\n const updateCaptureAlerts = () => {\r\n const isInNeutralZone = capturesTaken.value < neutralZone.value;\r\n const isInSmileZone = capturesTaken.value >= smileCheckpoint.value;\r\n\r\n if (isInNeutralZone && currentSmileScore.value >= smileThreshold) {\r\n updateAlert('neutral-expression');\r\n } else if (isInNeutralZone) {\r\n alertTitle.value = 'Capturing...';\r\n } else if (isInSmileZone) {\r\n const timeSinceSmile = Date.now() - lastSmileTime.value;\r\n if (timeSinceSmile > smileCooldown) {\r\n if (\r\n currentSmileScore.value >= smileThreshold &&\r\n currentMouthOpen.value < mouthOpenThreshold\r\n ) {\r\n updateAlert('open-mouth-smile');\r\n } else {\r\n updateAlert('smile-required');\r\n }\r\n } else {\r\n alertTitle.value = 'Keep smiling!';\r\n }\r\n } else {\r\n updateAlert(null);\r\n }\r\n };\r\n\r\n const updateAlerts = () => {\r\n if (multipleFaces.value) {\r\n updateAlert('multiple-faces');\r\n } else if (!faceDetected.value) {\r\n updateAlert('no-face');\r\n } else if (faceProximity.value === 'too-close') {\r\n updateAlert('too-close');\r\n } else if (faceProximity.value === 'too-far') {\r\n updateAlert('too-far');\r\n } else if (!faceInBounds.value) {\r\n updateAlert('out-of-bounds');\r\n } else if (isCapturing.value) {\r\n updateCaptureAlerts();\r\n } else {\r\n alertTitle.value = 'Ready to capture';\r\n }\r\n };\r\n\r\n const stopDetectionLoop = () => {\r\n if (animationFrameRef.current) {\r\n cancelAnimationFrame(animationFrameRef.current);\r\n animationFrameRef.current = null;\r\n }\r\n };\r\n\r\n const detectFace = async () => {\r\n if (!faceLandmarkerRef.current || !videoRef.current) {\r\n stopDetectionLoop();\r\n return;\r\n }\r\n\r\n try {\r\n const croppedCanvas = createCroppedVideoFrame(videoRef.current);\r\n const detectionSource = croppedCanvas || videoRef.current;\r\n\r\n const results = faceLandmarkerRef.current.detectForVideo(\r\n detectionSource,\r\n performance.now(),\r\n );\r\n\r\n faceLandmarks.value = results.faceLandmarks || [];\r\n\r\n if (results.faceLandmarks && canvasRef.current && videoRef.current) {\r\n // we run detection on a cropped video frame\r\n // adjust landmark coordinates back to full video space\r\n if (croppedCanvas) {\r\n const sourceWidth = videoRef.current.videoWidth;\r\n const sourceHeight = videoRef.current.videoHeight;\r\n const squareSize = Math.min(sourceWidth, sourceHeight);\r\n const offsetX = (sourceWidth - squareSize) / (2 * sourceWidth);\r\n const offsetY = (sourceHeight - squareSize) / (2 * sourceHeight);\r\n const scaleFactor = squareSize / sourceWidth;\r\n const scaleFactorY = squareSize / sourceHeight;\r\n\r\n const adjustedLandmarks = results.faceLandmarks.map((face) =>\r\n face.map((landmark: any) => ({\r\n x: landmark.x * scaleFactor + offsetX,\r\n y: landmark.y * scaleFactorY + offsetY,\r\n z: landmark.z,\r\n })),\r\n );\r\n\r\n drawFaceMesh(\r\n canvasRef.current,\r\n adjustedLandmarks,\r\n capturesTaken.value,\r\n smileCheckpoint.value,\r\n );\r\n } else {\r\n drawFaceMesh(\r\n canvasRef.current,\r\n results.faceLandmarks,\r\n capturesTaken.value,\r\n smileCheckpoint.value,\r\n );\r\n }\r\n } else if (canvasRef.current) {\r\n clearCanvas(canvasRef.current);\r\n }\r\n\r\n // Check number of faces\r\n const numFaces = results.faceLandmarks ? results.faceLandmarks.length : 0;\r\n multipleFaces.value = numFaces > 1;\r\n\r\n // Check if face is detected\r\n const hasFace =\r\n results.faceBlendshapes &&\r\n results.faceBlendshapes.length > 0 &&\r\n numFaces === 1;\r\n faceDetected.value = hasFace;\r\n\r\n if (hasFace && results.faceLandmarks) {\r\n // Calculate face size and position\r\n const faceSize = calculateFaceSize(results.faceLandmarks);\r\n currentFaceSize.value = faceSize;\r\n\r\n // Check face proximity\r\n if (faceSize > maxFaceSize) {\r\n faceProximity.value = 'too-close';\r\n } else if (faceSize < minFaceSize) {\r\n faceProximity.value = 'too-far';\r\n } else {\r\n faceProximity.value = 'good';\r\n }\r\n\r\n // Check face position\r\n faceInBounds.value = isFaceInBounds(\r\n results.faceLandmarks,\r\n videoAspectRatio.value,\r\n );\r\n\r\n // Get smile and mouth open data\r\n const blendshapes = results.faceBlendshapes[0].categories;\r\n const smileLeft =\r\n blendshapes.find((b) => b.categoryName === 'mouthSmileLeft')?.score ||\r\n 0;\r\n const smileRight =\r\n blendshapes.find((b) => b.categoryName === 'mouthSmileRight')\r\n ?.score || 0;\r\n const mouthOpen = calculateMouthOpening(results.faceLandmarks);\r\n const smileScore = (smileLeft + smileRight) / 2;\r\n\r\n currentSmileScore.value = smileScore;\r\n currentMouthOpen.value = mouthOpen;\r\n\r\n if (smileScore >= smileThreshold && mouthOpen >= mouthOpenThreshold) {\r\n lastSmileTime.value = Date.now();\r\n\r\n if (isPaused.value && isCapturing.value && resumeCaptureRef.current) {\r\n // defer execution\r\n setTimeout(() => {\r\n const stillSmiling = Date.now() - lastSmileTime.value <= 100;\r\n if (\r\n stillSmiling &&\r\n isPaused.value &&\r\n isCapturing.value &&\r\n resumeCaptureRef.current\r\n ) {\r\n resumeCaptureRef.current();\r\n }\r\n }, 0);\r\n }\r\n }\r\n } else {\r\n // No face detected or multiple faces - reset values\r\n currentSmileScore.value = 0;\r\n currentFaceSize.value = 0;\r\n currentMouthOpen.value = 0;\r\n faceInBounds.value = false;\r\n faceProximity.value = 'good';\r\n }\r\n\r\n updateAlerts();\r\n } catch (error) {\r\n faceDetected.value = false;\r\n faceInBounds.value = false;\r\n multipleFaces.value = false;\r\n faceProximity.value = 'good';\r\n currentMouthOpen.value = 0;\r\n\r\n if (isCapturing.value) {\r\n updateAlert('no-face');\r\n }\r\n }\r\n\r\n animationFrameRef.current = requestAnimationFrame(detectFace);\r\n };\r\n\r\n const startDetectionLoop = () => {\r\n if (animationFrameRef.current) {\r\n cancelAnimationFrame(animationFrameRef.current);\r\n }\r\n animationFrameRef.current = requestAnimationFrame(detectFace);\r\n };\r\n\r\n const captureImage = () => {\r\n if (!videoRef.current) return;\r\n\r\n const isReference = capturesTaken.value === totalCaptures.value - 1;\r\n const imageData = captureImageFromVideo(videoRef.current, isReference);\r\n\r\n if (!imageData) return;\r\n\r\n if (isReference) {\r\n referencePhoto.value = imageData;\r\n } else {\r\n capturedImages.value = [...capturedImages.value, imageData];\r\n }\r\n\r\n capturesTaken.value++;\r\n countdown.value = totalCaptures.value - capturesTaken.value;\r\n };\r\n\r\n const stopCapture = () => {\r\n if (captureTimerRef.current) {\r\n clearInterval(captureTimerRef.current);\r\n captureTimerRef.current = null;\r\n }\r\n\r\n isCapturing.value = false;\r\n isPaused.value = false;\r\n\r\n if (capturesTaken.value >= totalCaptures.value && referencePhoto.value) {\r\n const livenessImages = capturedImages.value.map((img) => ({\r\n image: img.split(',')[1],\r\n image_type_id: ImageType.LIVENESS_IMAGE_BASE64,\r\n }));\r\n\r\n const referenceImage = {\r\n image: referencePhoto.value.split(',')[1],\r\n image_type_id: ImageType.SELFIE_IMAGE_BASE64,\r\n };\r\n\r\n const eventDetail = {\r\n images: [...livenessImages, referenceImage],\r\n referenceImage: referencePhoto.value,\r\n previewImage: referencePhoto.value,\r\n meta: { libraryVersion: COMPONENTS_VERSION },\r\n };\r\n\r\n window.dispatchEvent(\r\n new CustomEvent('selfie-capture.publish', {\r\n detail: eventDetail,\r\n }),\r\n );\r\n\r\n const smartCameraWeb = document.querySelector('smart-camera-web');\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.selfie-capture-end'),\r\n );\r\n\r\n hasFinishedCapture.value = true;\r\n }\r\n };\r\n\r\n const pauseCapture = () => {\r\n if (captureTimerRef.current) {\r\n clearInterval(captureTimerRef.current);\r\n captureTimerRef.current = null;\r\n }\r\n isPaused.value = true;\r\n\r\n if (\r\n !multipleFaces.value &&\r\n faceDetected.value &&\r\n faceInBounds.value &&\r\n faceProximity.value === 'good'\r\n ) {\r\n updateAlert('smile-required');\r\n }\r\n };\r\n\r\n const startCaptureInterval = () => {\r\n if (captureTimerRef.current) {\r\n clearInterval(captureTimerRef.current);\r\n }\r\n\r\n captureTimerRef.current = setInterval(() => {\r\n if (capturesTaken.value >= totalCaptures.value) {\r\n stopCapture();\r\n return;\r\n }\r\n\r\n if (multipleFaces.value) {\r\n pauseCapture();\r\n return;\r\n }\r\n\r\n if (!faceDetected.value) {\r\n return;\r\n }\r\n\r\n if (!faceInBounds.value) {\r\n pauseCapture();\r\n return;\r\n }\r\n\r\n if (faceProximity.value !== 'good') {\r\n pauseCapture();\r\n return;\r\n }\r\n\r\n const isInNeutralZone = capturesTaken.value < neutralZone.value;\r\n const isInSmileZone = capturesTaken.value >= smileCheckpoint.value;\r\n\r\n if (isInNeutralZone && currentSmileScore.value >= smileThreshold) {\r\n return;\r\n }\r\n\r\n if (isInSmileZone) {\r\n const timeSinceSmile = Date.now() - lastSmileTime.value;\r\n if (timeSinceSmile > smileCooldown) {\r\n pauseCapture();\r\n return;\r\n }\r\n }\r\n\r\n captureImage();\r\n }, interval);\r\n };\r\n\r\n const resumeCapture = () => {\r\n if (\r\n faceDetected.value &&\r\n faceProximity.value === 'good' &&\r\n faceInBounds.value &&\r\n !multipleFaces.value\r\n ) {\r\n const isInSmileZone = capturesTaken.value >= smileCheckpoint.value;\r\n if (isInSmileZone) {\r\n const timeSinceSmile = Date.now() - lastSmileTime.value;\r\n if (timeSinceSmile > smileCooldown) {\r\n return;\r\n }\r\n }\r\n\r\n isPaused.value = false;\r\n updateAlert(null);\r\n startCaptureInterval();\r\n }\r\n };\r\n\r\n resumeCaptureRef.current = resumeCapture;\r\n\r\n const startCapture = async () => {\r\n capturedImages.value = [];\r\n isCapturing.value = true;\r\n isPaused.value = false;\r\n totalCaptures.value = Math.ceil(duration / interval);\r\n capturesTaken.value = 0;\r\n countdown.value = totalCaptures.value;\r\n\r\n startCaptureInterval();\r\n };\r\n\r\n const handleCancel = () => {\r\n stopCapture();\r\n window.dispatchEvent(\r\n new CustomEvent('selfie-capture.cancelled', {\r\n detail: { meta: { libraryVersion: COMPONENTS_VERSION } },\r\n }),\r\n );\r\n\r\n // TODO: remove - for backwards compatibility\r\n window.dispatchEvent(\r\n new CustomEvent('selfie-capture-screens.cancelled', {\r\n detail: { meta: { libraryVersion: COMPONENTS_VERSION } },\r\n }),\r\n );\r\n };\r\n\r\n const handleClose = () => {\r\n stopCapture();\r\n\r\n window.dispatchEvent(\r\n new CustomEvent('selfie-capture.close', {\r\n detail: { meta: { libraryVersion: COMPONENTS_VERSION } },\r\n }),\r\n );\r\n\r\n // TODO: remove - backwards compatibility\r\n window.dispatchEvent(\r\n new CustomEvent('selfie-capture-screens.close', {\r\n detail: { meta: { libraryVersion: COMPONENTS_VERSION } },\r\n }),\r\n );\r\n };\r\n\r\n const cleanup = () => {\r\n if (captureTimerRef.current) {\r\n clearInterval(captureTimerRef.current);\r\n }\r\n stopDetectionLoop();\r\n };\r\n\r\n return {\r\n faceDetected,\r\n faceInBounds,\r\n faceProximity,\r\n multipleFaces,\r\n videoAspectRatio,\r\n faceLandmarks,\r\n currentSmileScore,\r\n currentFaceSize,\r\n currentMouthOpen,\r\n lastSmileTime,\r\n alertTitle,\r\n isReadyToCapture,\r\n\r\n isCapturing,\r\n isPaused,\r\n countdown,\r\n capturedImages,\r\n referencePhoto,\r\n totalCaptures,\r\n capturesTaken,\r\n hasFinishedCapture,\r\n smileCheckpoint,\r\n neutralZone,\r\n\r\n initializeFaceLandmarker,\r\n setupCanvas,\r\n startDetectionLoop,\r\n stopDetectionLoop,\r\n updateAlert,\r\n startCapture,\r\n stopCapture,\r\n pauseCapture,\r\n resumeCapture,\r\n handleCancel,\r\n handleClose,\r\n cleanup,\r\n };\r\n};\r\n","import { useEffect, useRef } from 'preact/hooks';\r\n\r\ninterface OvalProgressProps {\r\n progress: number;\r\n duration?: number;\r\n themeColor?: string;\r\n}\r\n\r\nconst OvalProgress = ({\r\n progress,\r\n duration = 1000,\r\n themeColor = '#001096',\r\n}: OvalProgressProps) => {\r\n const pathRef = useRef<SVGPathElement>(null);\r\n const prevProgress = useRef(progress);\r\n\r\n useEffect(() => {\r\n const path = pathRef.current;\r\n if (!path) return;\r\n\r\n const pathLength = path.getTotalLength();\r\n path.style.opacity = progress > 0 ? '1' : '0';\r\n const fromOffset = pathLength * (1 - prevProgress.current);\r\n const toOffset = pathLength * (1 - progress);\r\n\r\n // If no change, skip\r\n if (fromOffset === toOffset) return;\r\n\r\n path.style.transition = 'none';\r\n path.style.strokeDasharray = `${pathLength} ${pathLength}`;\r\n path.style.strokeDashoffset = `${fromOffset}`;\r\n\r\n // Force style flush\r\n path.getBoundingClientRect();\r\n\r\n path.style.transition = `stroke-dashoffset ${duration}ms ease-out`;\r\n path.style.strokeDashoffset = `${toOffset}`;\r\n\r\n prevProgress.current = progress;\r\n }, [progress, duration]);\r\n\r\n return (\r\n <div\r\n style={{\r\n position: 'absolute',\r\n top: '0',\r\n left: '0',\r\n width: '100%',\r\n height: '100%',\r\n pointerEvents: 'none',\r\n }}\r\n >\r\n <svg\r\n viewBox=\"0 0 285 380\"\r\n preserveAspectRatio=\"xMidYMid meet\"\r\n style={{ width: '100%', height: '100%' }}\r\n >\r\n {/* id is referenced by parent */}\r\n <clipPath id=\"selfie-clip-path\" clipPathUnits=\"objectBoundingBox\">\r\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\" />\r\n </clipPath>\r\n <path\r\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\"\r\n stroke={themeColor}\r\n fill=\"none\"\r\n style={{ strokeWidth: '8' }}\r\n />\r\n <path\r\n ref={pathRef}\r\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\"\r\n stroke=\"#22c55e\"\r\n style={{ strokeWidth: '8' }}\r\n fill=\"none\"\r\n strokeLinecap=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n );\r\n};\r\n\r\nexport default OvalProgress;\r\n","import type { FunctionComponent, Ref } from 'preact';\r\nimport OvalProgress from '../OvalProgress';\r\n\r\ninterface CameraPreviewProps {\r\n videoRef: Ref<HTMLVideoElement>;\r\n canvasRef: Ref<HTMLCanvasElement>;\r\n facingMode: 'user' | 'environment';\r\n multipleFaces: boolean;\r\n progress: number;\r\n interval: number;\r\n themeColor: string;\r\n}\r\n\r\nexport const CameraPreview: FunctionComponent<CameraPreviewProps> = ({\r\n videoRef,\r\n canvasRef,\r\n facingMode,\r\n multipleFaces,\r\n progress,\r\n interval,\r\n themeColor,\r\n}) => (\r\n <>\r\n <div className=\"camera-preview-container\">\r\n <div\r\n className=\"video-wrapper\"\r\n style={{\r\n clipPath: multipleFaces ? 'none' : 'url(#selfie-clip-path)',\r\n }}\r\n >\r\n <div className=\"video-container\">\r\n <video\r\n ref={videoRef}\r\n autoPlay\r\n playsInline\r\n muted\r\n className={`camera-video ${facingMode === 'user' ? 'mirror' : ''}`}\r\n />\r\n <canvas\r\n ref={canvasRef}\r\n className={`camera-canvas ${facingMode === 'user' ? 'mirror' : ''}`}\r\n />\r\n </div>\r\n </div>\r\n {!multipleFaces && (\r\n <OvalProgress\r\n progress={progress}\r\n duration={interval}\r\n themeColor={themeColor}\r\n />\r\n )}\r\n </div>\r\n\r\n <style>{`\r\n .camera-preview-container {\r\n position: relative;\r\n width: 100%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n }\r\n\r\n .video-wrapper {\r\n width: 100%;\r\n max-width: 300px;\r\n margin: 0 auto;\r\n position: relative;\r\n aspect-ratio: 3 / 4;\r\n overflow: hidden;\r\n }\r\n\r\n .video-container {\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 100%;\r\n }\r\n\r\n .camera-video,\r\n .camera-canvas {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translate(-50%, -50%);\r\n }\r\n\r\n .camera-video.mirror,\r\n .camera-canvas.mirror {\r\n transform: translate(-50%, -50%) scaleX(-1);\r\n }\r\n\r\n .camera-canvas {\r\n pointer-events: none;\r\n }\r\n `}</style>\r\n </>\r\n);\r\n","import type { FunctionComponent } from 'preact';\r\n\r\ninterface AlertDisplayProps {\r\n alertTitle: string;\r\n}\r\n\r\nexport const AlertDisplay: FunctionComponent<AlertDisplayProps> = ({\r\n alertTitle,\r\n}) =>\r\n alertTitle ? (\r\n <>\r\n <div className=\"alert-message\">\r\n <div className=\"alert-title\">{alertTitle}</div>\r\n </div>\r\n\r\n <style>{`\r\n .alert-message {\r\n margin-top: 1.5rem;\r\n color: #000;\r\n color: #151F72;\r\n padding: 0.5rem 1.5rem;\r\n border-radius: 4px;\r\n text-align: start;\r\n width: 100%;\r\n }\r\n\r\n .alert-title {\r\n font-size: 16px;\r\n font-weight: bold;\r\n text-align: center;\r\n }\r\n `}</style>\r\n </>\r\n ) : null;\r\n","import type { FunctionComponent } from 'preact';\r\n\r\ninterface CaptureControlsProps {\r\n isCapturing: boolean;\r\n hasFinishedCapture: boolean;\r\n isReadyToCapture: boolean;\r\n allowAgentMode: boolean;\r\n agentSupported: boolean;\r\n showAgentModeForTests: boolean;\r\n facingMode: 'user' | 'environment';\r\n themeColor?: string;\r\n onStartCapture: () => void;\r\n onSwitchCamera: () => void;\r\n}\r\n\r\nexport const CaptureControls: FunctionComponent<CaptureControlsProps> = ({\r\n isCapturing,\r\n hasFinishedCapture,\r\n isReadyToCapture,\r\n allowAgentMode,\r\n agentSupported,\r\n showAgentModeForTests,\r\n facingMode,\r\n themeColor = '#001096',\r\n onStartCapture,\r\n onSwitchCamera,\r\n}) => (\r\n <>\r\n <div className=\"controls\">\r\n <button\r\n class=\"btn-primary\"\r\n onClick={onStartCapture}\r\n disabled={isCapturing || hasFinishedCapture || !isReadyToCapture}\r\n >\r\n Start Capture\r\n </button>\r\n\r\n {allowAgentMode && (agentSupported || showAgentModeForTests) && (\r\n <button\r\n onClick={onSwitchCamera}\r\n className=\"agent-mode-btn\"\r\n disabled={isCapturing || hasFinishedCapture}\r\n >\r\n {facingMode === 'user' ? 'Agent Mode Off' : 'Agent Mode On'}\r\n </button>\r\n )}\r\n </div>\r\n\r\n <style>{`\r\n .controls {\r\n margin: 1.5rem 0;\r\n display: flex;\r\n flex-direction: column;\r\n gap: 1rem;\r\n justify-content: center;\r\n }\r\n\r\n .agent-mode-btn {\r\n padding: 8px 16px;\r\n font-size: 14px;\r\n background: ${themeColor};\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n }\r\n\r\n .agent-mode-btn:disabled {\r\n background: #ccc;\r\n cursor: not-allowed;\r\n }\r\n `}</style>\r\n </>\r\n);\r\n","import { useRef, useEffect } from 'preact/hooks';\r\nimport register from 'preact-custom-element';\r\nimport type { FunctionComponent } from 'preact';\r\n\r\nimport { getBoolProp } from '../../../../utils/props';\r\nimport { useFaceCapture, useCamera } from './hooks';\r\nimport { CameraPreview } from './components/CameraPreview';\r\nimport { AlertDisplay } from './components/AlertDisplay';\r\nimport { CaptureControls } from './components/CaptureControls';\r\n\r\nimport '../../../navigation/src';\r\nimport '../../../attribution/PoweredBySmileId';\r\n\r\ninterface Props {\r\n interval?: number;\r\n duration?: number;\r\n 'theme-color'?: string;\r\n 'show-navigation'?: string | boolean;\r\n 'allow-agent-mode'?: string | boolean;\r\n 'show-agent-mode-for-tests'?: string | boolean;\r\n 'hide-attribution'?: string | boolean;\r\n 'disable-image-tests'?: string | boolean;\r\n}\r\n\r\nconst SmartSelfieCapture: FunctionComponent<Props> = ({\r\n interval = 350,\r\n duration = 2800,\r\n 'theme-color': themeColor = '#001096',\r\n 'show-navigation': showNavigationProp = false,\r\n 'allow-agent-mode': allowAgentModeProp = false,\r\n 'show-agent-mode-for-tests': showAgentModeForTestsProp = false,\r\n 'hide-attribution': hideAttributionProp = false,\r\n}) => {\r\n const canvasRef = useRef<HTMLCanvasElement>(null);\r\n const navigationRef = useRef<HTMLElement | null>(null);\r\n\r\n const showNavigation = getBoolProp(showNavigationProp);\r\n const allowAgentMode = getBoolProp(allowAgentModeProp);\r\n const showAgentModeForTests = getBoolProp(showAgentModeForTestsProp);\r\n const hideAttribution = getBoolProp(hideAttributionProp);\r\n\r\n const smileCooldown = 300;\r\n const smileThreshold = 0.25;\r\n const mouthOpenThreshold = 0.05;\r\n const minFaceSize = 0.35;\r\n const maxFaceSize = 0.5;\r\n\r\n const camera = useCamera();\r\n\r\n const faceCapture = useFaceCapture({\r\n videoRef: camera.videoRef,\r\n canvasRef,\r\n interval,\r\n duration,\r\n smileThreshold,\r\n mouthOpenThreshold,\r\n minFaceSize,\r\n maxFaceSize,\r\n smileCooldown,\r\n });\r\n\r\n useEffect(() => {\r\n const initializeCamera = async () => {\r\n await camera.startCamera();\r\n await camera.checkAgentSupport();\r\n await faceCapture.initializeFaceLandmarker();\r\n\r\n setTimeout(() => {\r\n faceCapture.setupCanvas();\r\n faceCapture.startDetectionLoop();\r\n }, 500);\r\n };\r\n\r\n initializeCamera();\r\n\r\n return () => {\r\n faceCapture.stopDetectionLoop();\r\n camera.stopCamera();\r\n faceCapture.cleanup();\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n const navigation = navigationRef.current;\r\n\r\n if (navigation && showNavigation) {\r\n const handleNavigationBack = () => {\r\n faceCapture.handleCancel();\r\n };\r\n\r\n const handleNavigationClose = () => {\r\n faceCapture.handleClose();\r\n };\r\n\r\n navigation.addEventListener('navigation.back', handleNavigationBack);\r\n navigation.addEventListener('navigation.close', handleNavigationClose);\r\n\r\n return () => {\r\n navigation.removeEventListener('navigation.back', handleNavigationBack);\r\n navigation.removeEventListener(\r\n 'navigation.close',\r\n handleNavigationClose,\r\n );\r\n };\r\n }\r\n return undefined;\r\n }, [showNavigation]);\r\n\r\n return (\r\n <div className=\"smartselfie-capture\">\r\n {showNavigation && (\r\n // @ts-ignore\r\n <smileid-navigation ref={navigationRef} theme-color={themeColor} />\r\n )}\r\n\r\n <CameraPreview\r\n videoRef={camera.videoRef}\r\n canvasRef={canvasRef}\r\n facingMode={camera.facingMode}\r\n multipleFaces={faceCapture.multipleFaces.value}\r\n progress={\r\n faceCapture.capturesTaken.value > 0\r\n ? faceCapture.capturesTaken.value / faceCapture.totalCaptures.value\r\n : 0\r\n }\r\n interval={interval}\r\n themeColor={themeColor}\r\n />\r\n\r\n <AlertDisplay alertTitle={faceCapture.alertTitle.value} />\r\n\r\n {!faceCapture.isCapturing.value &&\r\n !faceCapture.hasFinishedCapture.value && (\r\n <CaptureControls\r\n isCapturing={faceCapture.isCapturing.value}\r\n hasFinishedCapture={faceCapture.hasFinishedCapture.value}\r\n isReadyToCapture={faceCapture.isReadyToCapture.value}\r\n allowAgentMode={allowAgentMode}\r\n agentSupported={camera.agentSupported}\r\n showAgentModeForTests={showAgentModeForTests}\r\n facingMode={camera.facingMode}\r\n themeColor={themeColor}\r\n onStartCapture={faceCapture.startCapture}\r\n onSwitchCamera={camera.switchCamera}\r\n />\r\n )}\r\n\r\n {/* @ts-ignore */}\r\n {!hideAttribution && <powered-by-smile-id />}\r\n\r\n <style>{`\r\n * {\r\n box-sizing: border-box;\r\n }\r\n\r\n button {\r\n padding: 10px 20px;\r\n background: ${themeColor || '#001096'};\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n font-size: 16px;\r\n }\r\n\r\n button:disabled {\r\n background: #ccc;\r\n cursor: not-allowed;\r\n }\r\n\r\n button.btn-primary {\r\n background-color: ${themeColor || '#001096'};\r\n border-radius: 2.5rem;\r\n color: white;\r\n border: none;\r\n height: 3.125rem;\r\n display: inline-block;\r\n padding: 0.75rem 1.5rem;\r\n text-align: center;\r\n font-size: 1.125rem;\r\n font-weight: 600;\r\n font-family: \"DM Sans\", sans-serif;\r\n cursor: pointer;\r\n }\r\n \r\n button.btn-primary:hover {\r\n background-color: #2d2b2a;\r\n }\r\n \r\n button.btn-primary:disabled {\r\n background-color: #666;\r\n cursor: not-allowed;\r\n }\r\n\r\n .smartselfie-capture {\r\n font-family: sans-serif;\r\n max-width: 356px;\r\n margin: 0 auto;\r\n }\r\n `}</style>\r\n </div>\r\n );\r\n};\r\n\r\nif (!customElements.get('smartselfie-capture')) {\r\n register(\r\n SmartSelfieCapture,\r\n 'smartselfie-capture',\r\n [\r\n 'interval',\r\n 'duration',\r\n 'theme-color',\r\n 'show-navigation',\r\n 'allow-agent-mode',\r\n 'show-agent-mode-for-tests',\r\n 'hide-attribution',\r\n 'disable-image-tests',\r\n ],\r\n { shadow: true },\r\n );\r\n}\r\n\r\nexport default SmartSelfieCapture;\r\n","import { IMAGE_TYPE } from '../../../../domain/constants/src/Constants';\r\nimport SmartCamera from '../../../../domain/camera/src/SmartCamera';\r\nimport styles from '../../../../styles/src/styles';\r\nimport packageJson from '../../../../../package.json';\r\nimport '../../../navigation/src';\r\n\r\nconst COMPONENTS_VERSION = packageJson.version;\r\n\r\nconst DEFAULT_NO_OF_LIVENESS_FRAMES = 8;\r\n\r\nfunction hasMoreThanNColors(data, n = 16) {\r\n const colors = new Set();\r\n for (let i = 0; i < Math.min(data.length, 10000); i += 4) {\r\n // eslint-disable-next-line no-bitwise\r\n colors.add((data[i] << 16) | (data[i + 1] << 8) | data[i + 2]);\r\n if (colors.size > n) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n\r\nfunction getLivenessFramesIndices(\r\n totalNoOfFrames,\r\n numberOfFramesRequired = DEFAULT_NO_OF_LIVENESS_FRAMES,\r\n) {\r\n const selectedFrames = [];\r\n\r\n if (totalNoOfFrames < numberOfFramesRequired) {\r\n throw new Error(\r\n 'SmartCameraWeb: Minimum required no of frames is ',\r\n numberOfFramesRequired,\r\n );\r\n }\r\n\r\n const frameDivisor = numberOfFramesRequired - 1;\r\n const frameInterval = Math.floor(totalNoOfFrames / frameDivisor);\r\n\r\n // NOTE: when we have satisfied our required 8 frames, but have good\r\n // candidates, we need to start replacing from the second frame\r\n let replacementFrameIndex = 1;\r\n\r\n for (let i = 0; i < totalNoOfFrames; i += frameInterval) {\r\n if (selectedFrames.length < 8) {\r\n selectedFrames.push(i);\r\n } else {\r\n // ACTION: replace frame, then sort selectedframes\r\n selectedFrames[replacementFrameIndex] = i;\r\n selectedFrames.sort((a, b) => a - b);\r\n\r\n // ACTION: update replacement frame index\r\n replacementFrameIndex += 1;\r\n }\r\n }\r\n\r\n // INFO: if we don't satisfy our requirement, we add the last index\r\n const lastFrameIndex = totalNoOfFrames - 1;\r\n\r\n if (selectedFrames.length < 8 && !selectedFrames.includes(lastFrameIndex)) {\r\n selectedFrames.push(lastFrameIndex);\r\n }\r\n\r\n return selectedFrames;\r\n}\r\n\r\nfunction templateString() {\r\n return `\r\n ${styles(this.themeColor)}\r\n <style>\r\n :host {\r\n --theme-color: ${this.themeColor || '#001096'};\r\n --color-active: #001096;\r\n --color-default: #2D2B2A;\r\n --color-disabled: #848282;\r\n }\r\n\r\n * {\r\n font-family: 'DM Sans', sans-serif;\r\n }\r\n\r\n [hidden] {\r\n display: none !important;\r\n }\r\n\r\n [disabled] {\r\n cursor: not-allowed !important;\r\n filter: grayscale(75%);\r\n }\r\n\r\n .visually-hidden {\r\n border: 0;\r\n clip: rect(1px 1px 1px 1px);\r\n clip: rect(1px, 1px, 1px, 1px);\r\n height: auto;\r\n margin: 0;\r\n overflow: hidden;\r\n padding: 0;\r\n position: absolute;\r\n white-space: nowrap;\r\n width: 1px;\r\n }\r\n\r\n img {\r\n height: auto;\r\n max-width: 100%;\r\n transform: scaleX(-1);\r\n }\r\n\r\n video {\r\n background-color: black;\r\n }\r\n\r\n a {\r\n color: currentColor;\r\n text-decoration: none;\r\n }\r\n\r\n svg {\r\n max-width: 100%;\r\n }\r\n\r\n .color-gray {\r\n color: #797979;\r\n }\r\n\r\n .color-red {\r\n color: red;\r\n }\r\n\r\n .color-richblue {\r\n color: #4E6577;\r\n }\r\n\r\n .color-richblue-shade {\r\n color: #0E1B42;\r\n }\r\n\r\n .color-digital-blue {\r\n color: #001096 !important;\r\n }\r\n\r\n .color-deep-blue {\r\n color: #001096;\r\n }\r\n\r\n .title-color {\r\n color: ${this.themeColor};\r\n }\r\n \r\n .theme-color {\r\n color: ${this.themeColor};\r\n }\r\n\r\n .center {\r\n text-align: center;\r\n margin-left: auto;\r\n margin-right: auto;\r\n }\r\n\r\n .font-size-small {\r\n font-size: .75rem;\r\n }\r\n\r\n .font-size-large {\r\n font-size: 1.5rem;\r\n }\r\n\r\n .text-transform-uppercase {\r\n text-transform: uppercase;\r\n }\r\n\r\n [id*=-\"screen\"] {\r\n min-block-size: 100%;\r\n }\r\n\r\n [data-variant~=\"full-width\"] {\r\n inline-size: 100%;\r\n }\r\n\r\n .flow > * + * {\r\n margin-top: 1rem;\r\n }\r\n\r\n .button {\r\n --button-color: ${this.themeColor};\r\n -webkit-appearance: none;\r\n appearance: none;\r\n border-radius: 2.5rem;\r\n border: 0;\r\n background-color: transparent;\r\n color: #fff;\r\n cursor: pointer;\r\n display: block;\r\n font-size: 18px;\r\n font-weight: 600;\r\n padding: .75rem 1.5rem;\r\n text-align: center;\r\n }\r\n\r\n .button:hover,\r\n .button:focus,\r\n .button:active {\r\n --button-color: var(--color-default);\r\n }\r\n\r\n .button:disabled {\r\n --button-color: var(--color-disabled);\r\n }\r\n\r\n .button[data-variant~='solid'] {\r\n background-color: var(--button-color);\r\n border: 2px solid var(--button-color);\r\n }\r\n\r\n .button[data-variant~='outline'] {\r\n color: var(--button-color);\r\n border: 2px solid var(--button-color);\r\n }\r\n\r\n .button[data-variant~='ghost'] {\r\n padding: 0px;\r\n color: var(--button-color);\r\n background-color: transparent;\r\n }\r\n\r\n .icon-btn {\r\n appearance: none;\r\n background: none;\r\n border: none;\r\n color: hsl(0deg 0% 94%);\r\n cursor: pointer;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n padding: 4px 8px;\r\n }\r\n .justify-right {\r\n justify-content: end !important;\r\n }\r\n .nav {\r\n display: flex;\r\n justify-content: space-between;\r\n }\r\n\r\n .back-wrapper {\r\n display: flex;\r\n align-items: center;\r\n }\r\n\r\n .back-button {\r\n display: block !important;\r\n }\r\n .back-button-text {\r\n font-size: 11px;\r\n line-height: 11px;\r\n color: rgb(21, 31, 114);\r\n }\r\n .section {\r\n border-radius: .5rem;\r\n margin-left: auto;\r\n margin-right: auto;\r\n max-width: 35ch;\r\n padding: 1rem;\r\n }\r\n\r\n .selfie-capture-review-image {\r\n overflow: hidden;\r\n aspect-ratio: 1/1;\r\n }\r\n\r\n #review-image {\r\n scale: 1.75;\r\n }\r\n\r\n @media (max-aspect-ratio: 1/1) {\r\n #review-image {\r\n transform: scaleX(-1) translateY(-10%);\r\n }\r\n }\r\n\r\n .tips,\r\n .powered-by {\r\n align-items: center;\r\n border-radius: .25rem;\r\n display: flex;\r\n justify-content: center;\r\n letter-spacing: .075em;\r\n }\r\n\r\n .powered-by {\r\n box-shadow: 0px 2.57415px 2.57415px rgba(0, 0, 0, 0.06);\r\n display: inline-flex;\r\n font-size: .5rem;\r\n }\r\n\r\n .tips {\r\n margin-left: auto;\r\n margin-right: auto;\r\n max-width: 17rem;\r\n font-size: 0.875rem;\r\n font-weight: 600;\r\n }\r\n\r\n .tips > * + *,\r\n .powered-by > * + * {\r\n display: inline-block;\r\n margin-left: .5em;\r\n }\r\n\r\n .powered-by .company {\r\n color: #18406D;\r\n font-weight: 700;\r\n letter-spacing: .15rem;\r\n }\r\n\r\n .logo-mark {\r\n background-color: #004071;\r\n display: inline-block;\r\n padding: .25em .5em;\r\n }\r\n\r\n .logo-mark svg {\r\n height: auto;\r\n justify-self: center;\r\n width: .75em;\r\n }\r\n\r\n .id-video-container.portrait {\r\n width: 100%;\r\n position: relative;\r\n height: calc(200px * 1.4);\r\n }\r\n\r\n .id-video-container.portrait video {\r\n width: calc(213px + 0.9rem);\r\n height: 100%;\r\n position: absolute;\r\n top: 239px;\r\n left: 161px;\r\n padding-bottom: calc((214px * 1.4) / 3);\r\n padding-top: calc((191px * 1.4) / 3);\r\n object-fit: cover;\r\n\r\n transform: translateX(-50%) translateY(-50%);\r\n z-index: 1;\r\n block-size: 100%;\r\n }\r\n\r\n .video-container,\r\n .id-video-container.landscape {\r\n position: relative;\r\n z-index: 1;\r\n width: 100%;\r\n }\r\n\r\n .video-container video,\r\n .id-video-container.landscape video {\r\n left: 50%;\r\n min-width: auto;\r\n position: absolute;\r\n top: 50%;\r\n transform: translateX(-50%) translateY(50%);\r\n }\r\n\r\n .video-container #smile-cta-box {\r\n color: #fff;\r\n width: 100%;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n padding: 2rem 0;\r\n opacity: 0;\r\n transition: opacity 0.5s ease-in-out;\r\n }\r\n\r\n .video-container #smile-cta {\r\n font-size: 1.2rem;\r\n font-weight: bold;\r\n margin-top: 0;\r\n margin-bottom: 0;\r\n }\r\n\r\n .video-container video {\r\n height: 150%;\r\n transform: scaleX(-1) translateX(50%) translateY(-50%);\r\n }\r\n\r\n .video-container video.agent-mode {\r\n min-height: 100%;\r\n transform: scaleX(1) translateX(-50%) translateY(-50%);\r\n }\r\n\r\n .video-container .video {\r\n background-color: black;\r\n position: absolute;\r\n left: 50%;\r\n height: calc(100% - 6px);\r\n clip-path: ellipse(101px 118px);\r\n }\r\n\r\n .id-video-container.landscape {\r\n min-height: calc((2 * 10rem) + 198px);\r\n height: auto;\r\n }\r\n\r\n .id-video-container.portrait .image-frame-portrait {\r\n border-width: 0.9rem;\r\n border-color: rgba(0, 0, 0, 0.7);\r\n border-style: solid;\r\n height: auto;\r\n position: absolute;\r\n top: 80px;\r\n left: 47px;\r\n z-index: 2;\r\n width: 200px;\r\n height: calc(200px * 1.4);\r\n }\r\n\r\n .id-video-container.landscape .image-frame {\r\n border-width: 10rem 1rem;\r\n border-color: rgba(0, 0, 0, 0.7);\r\n border-style: solid;\r\n height: auto;\r\n width: 90%;\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n z-index: 2;\r\n }\r\n\r\n .id-video-container.landscape video {\r\n width: 100%;\r\n transform: translateX(-50%) translateY(-50%);\r\n z-index: 1;\r\n height: 100%;\r\n block-size: 100%;\r\n }\r\n\r\n .id-video-container.landscape img {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n transform: translateX(-50%) translateY(-50%);\r\n max-width: 90%;\r\n }\r\n\r\n .actions {\r\n background-color: rgba(0, 0, 0, .7);\r\n bottom: 0;\r\n display: flex;\r\n justify-content: space-between;\r\n padding: 1rem;\r\n position: absolute;\r\n width: 90%;\r\n z-index: 2;\r\n }\r\n\r\n #back-of-id-camera-screen .id-video-container.portrait .actions,\r\n #id-camera-screen .id-video-container.portrait .actions {\r\n top: 145%;\r\n width: calc(200px * 1.4);\r\n }\r\n\r\n #back-of-id-camera-screen .section.portrait, #id-camera-screen .section.portrait {\r\n min-height: calc((200px * 1.4) + 260px);\r\n }\r\n\r\n #selfie-capture-screen,\r\n #back-of-id-entry-screen {\r\n block-size: 45rem;\r\n display: flex;\r\n flex-direction: column;\r\n max-block-size: 100%;\r\n max-inline-size: 40ch;\r\n }\r\n\r\n #selfie-capture-screen header p {\r\n margin-block: 0 !important;\r\n }\r\n\r\n .document-tips {\r\n margin-block-start: 1.5rem;\r\n display: flex;\r\n align-items: center;\r\n text-align: initial;\r\n }\r\n\r\n .document-tips svg {\r\n flex-shrink: 0;\r\n margin-inline-end: 1rem;\r\n }\r\n\r\n .document-tips p {\r\n margin-block: 0;\r\n }\r\n\r\n .document-tips p:first-of-type {\r\n font-size; 1.875rem;\r\n font-weight: bold\r\n }\r\n\r\n [type='file'] {\r\n display: none;\r\n }\r\n\r\n .document-tips > * + * {\r\n margin-inline-start; 1em;\r\n }\r\n </style>\r\n <div id='selfie-capture-screen' class='flow center'>\r\n <smileid-navigation theme-color='${this.themeColor}' ${this.showNavigation ? 'show-navigation' : ''} ${this.hideBack ? 'hide-back' : ''}></smileid-navigation>\r\n\r\n <div class='tips'>Fit your head inside the oval frame</div>\r\n\r\n <div className=\"error\">\r\n ${this.cameraError ? `<p class=\"color-red\">${this.cameraError}</p>` : ''}\r\n </div>\r\n <div class='section | flow' ${this.cameraError ? 'hidden' : ''}>\r\n <div class='video-container'>\r\n <div class='video'>\r\n </div>\r\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;\">\r\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\"/>\r\n </svg>\r\n <div id=\"smile-cta-box\">\r\n <div>\r\n <svg width=\"120\" height=\"120\" xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"70 70 360 360\" fill=\"currentColor\">\r\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\"/>\r\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\"/>\r\n <path id=\"mouth\"\r\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\">\r\n <animate\r\n id=\"mouthAnim\"\r\n attributeName=\"d\"\r\n begin=\"indefinite\"\r\n dur=\"1s\"\r\n fill=\"freeze\"\r\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\" />\r\n </path>\r\n <circle fill=\"none\" stroke=\"currentColor\" stroke-width=\"10px\" cx=\"287.3\" cy=\"263.68\" r=\"14\"/>\r\n <circle fill=\"none\" stroke=\"currentColor\" stroke-width=\"10px\" cx=\"209.16\" cy=\"263.68\" r=\"14\"/>\r\n </svg>\r\n </div>\r\n <div>\r\n <p id='smile-cta'>SMILE</p>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n ${this.allowAgentMode ? `<button data-variant='outline small' id='switch-camera' class='button | center' type='button'>${this.inAgentMode ? 'Agent Mode On' : 'Agent Mode Off'}</button>` : ''}\r\n\r\n <button data-variant='solid' id='start-image-capture' class='button | center' type='button'>\r\n Take Selfie\r\n </button>\r\n\r\n ${this.hideAttribution ? '' : '<powered-by-smile-id></powered-by-smile-id>'}\r\n </div>\r\n </div>\r\n `;\r\n}\r\n\r\nasync function getPermissions(\r\n captureScreen,\r\n constraints = { facingMode: 'user' },\r\n) {\r\n try {\r\n const stream = await SmartCamera.getMedia({\r\n audio: false,\r\n video: constraints,\r\n });\r\n const devices = await navigator.mediaDevices.enumerateDevices();\r\n const videoDevice = devices.find(\r\n (device) =>\r\n device.kind === 'videoinput' &&\r\n stream.getVideoTracks()[0].getSettings().deviceId === device.deviceId,\r\n );\r\n window.dispatchEvent(\r\n new CustomEvent('metadata.camera-name', {\r\n detail: { cameraName: videoDevice?.label },\r\n }),\r\n );\r\n captureScreen?.removeAttribute('data-camera-error');\r\n captureScreen?.setAttribute('data-camera-ready', true);\r\n } catch (error) {\r\n captureScreen?.removeAttribute('data-camera-ready');\r\n captureScreen?.setAttribute(\r\n 'data-camera-error',\r\n SmartCamera.handleCameraError(error),\r\n );\r\n }\r\n}\r\n\r\nclass SelfieCaptureScreen extends HTMLElement {\r\n constructor() {\r\n super();\r\n this.templateString = templateString.bind(this);\r\n this.render = () => this.templateString();\r\n\r\n this.attachShadow({ mode: 'open' });\r\n this.facingMode = 'user';\r\n if (this.allowAgentMode) {\r\n this.facingMode = 'environment';\r\n }\r\n }\r\n\r\n connectedCallback() {\r\n const template = document.createElement('template');\r\n template.innerHTML = this.render();\r\n this.shadowRoot.innerHTML = '';\r\n this.shadowRoot.appendChild(template.content.cloneNode(true));\r\n this.videoContainer = this.shadowRoot.querySelector(\r\n '.video-container > .video',\r\n );\r\n this.init();\r\n }\r\n\r\n init() {\r\n this._videoStreamDurationInMS = 7800;\r\n this._imageCaptureIntervalInMS = 200;\r\n\r\n this._data = {\r\n images: [],\r\n meta: {\r\n libraryVersion: COMPONENTS_VERSION,\r\n },\r\n };\r\n this._rawImages = [];\r\n\r\n this.setUpEventListeners();\r\n }\r\n\r\n reset() {\r\n this.disconnectedCallback();\r\n this.connectedCallback();\r\n }\r\n\r\n _startImageCapture() {\r\n this.startImageCapture.disabled = true;\r\n if (this.switchCamera) {\r\n this.switchCamera.disabled = true;\r\n }\r\n\r\n /**\r\n * this was culled from https://jakearchibald.com/2013/animated-line-drawing-svg/\r\n */\r\n // NOTE: initialise image outline\r\n const imageOutlineLength = this.imageOutline.getTotalLength();\r\n // Clear any previous transition\r\n this.imageOutline.style.transition = 'none';\r\n // Set up the starting positions\r\n this.imageOutline.style.strokeDasharray = `${imageOutlineLength} ${imageOutlineLength}`;\r\n this.imageOutline.style.strokeDashoffset = imageOutlineLength;\r\n // Trigger a layout so styles are calculated & the browser\r\n // picks up the starting position before animating\r\n this.imageOutline.getBoundingClientRect();\r\n // Define our transition\r\n this.imageOutline.style.transition = `stroke-dashoffset ${this._videoStreamDurationInMS / 1000}s ease-in-out`;\r\n // Go!\r\n this.imageOutline.style.strokeDashoffset = '0';\r\n\r\n setTimeout(() => {\r\n this.smileCTABox.style.opacity = 1;\r\n this.mouthAnim.beginElement();\r\n }, 1500);\r\n\r\n setTimeout(() => {\r\n this.smileCTABox.style.opacity = 0;\r\n }, 3500);\r\n\r\n setTimeout(() => {\r\n this.smileCTABox.style.opacity = 1;\r\n this.smileCTA.textContent = 'BIGGER SMILE';\r\n this.mouth.setAttribute(\r\n 'd',\r\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',\r\n );\r\n this.mouthAnim.beginElement();\r\n }, 4000);\r\n\r\n this._imageCaptureInterval = setInterval(() => {\r\n this._capturePOLPhoto();\r\n }, this._imageCaptureIntervalInMS);\r\n\r\n this._videoStreamTimeout = setTimeout(() => {\r\n this._stopVideoStream();\r\n }, this._videoStreamDurationInMS);\r\n }\r\n\r\n async _switchCamera() {\r\n this.facingMode = this.facingMode === 'user' ? 'environment' : 'user';\r\n if (this.facingMode === 'user') {\r\n this.shadowRoot.querySelector('video').classList.remove('agent-mode');\r\n } else {\r\n this.shadowRoot.querySelector('video').classList.add('agent-mode');\r\n }\r\n this.startImageCapture.disabled = true;\r\n this.switchCamera.disabled = true;\r\n SmartCamera.stopMedia();\r\n await getPermissions(this, { facingMode: this.facingMode });\r\n this.handleStream(SmartCamera.stream);\r\n }\r\n\r\n _stopVideoStream() {\r\n try {\r\n clearTimeout(this._videoStreamTimeout);\r\n clearInterval(this._imageCaptureInterval);\r\n clearInterval(this._drawingInterval);\r\n\r\n this._capturePOLPhoto(); // NOTE: capture the last photo\r\n this._captureReferencePhoto();\r\n SmartCamera.stopMedia();\r\n\r\n const totalNoOfFrames = this._rawImages.length;\r\n this._data.referenceImage = this._referenceImage;\r\n this._data.previewImage = this._referenceImage;\r\n\r\n const livenessFramesIndices = getLivenessFramesIndices(totalNoOfFrames);\r\n\r\n this._data.images = this._data.images.concat(\r\n livenessFramesIndices.map((imageIndex) => ({\r\n image: this._rawImages[imageIndex].split(',')[1],\r\n image_type_id: IMAGE_TYPE.LIVENESS_IMAGE_BASE64,\r\n })),\r\n );\r\n\r\n this._publishImages();\r\n } catch (error) {\r\n console.error(error);\r\n // Todo: handle error\r\n }\r\n }\r\n\r\n _capturePOLPhoto() {\r\n const canvas = document.createElement('canvas');\r\n // Determine orientation of the video\r\n const isPortrait = this._video.videoHeight > this._video.videoWidth;\r\n\r\n // Set dimensions based on orientation, ensuring minimums\r\n if (isPortrait) {\r\n // Portrait orientation (taller than wide)\r\n canvas.width = 240;\r\n canvas.height = Math.max(\r\n 320,\r\n (canvas.width * this._video.videoHeight) / this._video.videoWidth,\r\n );\r\n } else {\r\n // Landscape orientation (wider than tall)\r\n canvas.height = 240;\r\n canvas.width = Math.max(\r\n 320,\r\n (canvas.height * this._video.videoWidth) / this._video.videoHeight,\r\n );\r\n }\r\n\r\n // NOTE: we do not want to test POL images\r\n this._drawImage(canvas, false);\r\n\r\n this._rawImages.push(canvas.toDataURL('image/jpeg'));\r\n }\r\n\r\n _captureReferencePhoto() {\r\n const canvas = document.createElement('canvas');\r\n // Determine orientation of the video\r\n const isPortrait = this._video.videoHeight > this._video.videoWidth;\r\n\r\n // Set dimensions based on orientation, ensuring minimums\r\n if (isPortrait) {\r\n // Portrait orientation (taller than wide)\r\n canvas.width = 480;\r\n canvas.height = Math.max(\r\n 640,\r\n (canvas.width * this._video.videoHeight) / this._video.videoWidth,\r\n );\r\n } else {\r\n // Landscape orientation (wider than tall)\r\n canvas.height = 480;\r\n canvas.width = Math.max(\r\n 640,\r\n (canvas.height * this._video.videoWidth) / this._video.videoHeight,\r\n );\r\n }\r\n\r\n // NOTE: we want to test the image quality of the reference photo\r\n this._drawImage(canvas, !this.disableImageTests);\r\n\r\n const image = canvas.toDataURL('image/jpeg');\r\n\r\n this._referenceImage = image;\r\n\r\n this._data.images.push({\r\n image: image.split(',')[1],\r\n image_type_id: IMAGE_TYPE.SELFIE_IMAGE_BASE64,\r\n });\r\n }\r\n\r\n _publishImages() {\r\n this.dispatchEvent(\r\n new CustomEvent('selfie-capture.publish', {\r\n detail: this._data,\r\n }),\r\n );\r\n }\r\n\r\n resetErrorMessage() {\r\n this.errorMessage.textContent = '';\r\n }\r\n\r\n _drawImage(canvas, enableImageTests = true, video = this._video) {\r\n // this.resetErrorMessage();\r\n const context = canvas.getContext('2d');\r\n\r\n context.drawImage(\r\n video,\r\n 0,\r\n 0,\r\n video.videoWidth,\r\n video.videoHeight,\r\n 0,\r\n 0,\r\n canvas.width,\r\n canvas.height,\r\n );\r\n\r\n if (enableImageTests) {\r\n const imageData = context.getImageData(0, 0, canvas.width, canvas.height);\r\n\r\n const hasEnoughColors = hasMoreThanNColors(imageData.data);\r\n\r\n if (hasEnoughColors) {\r\n return context;\r\n }\r\n throw new Error(\r\n 'Unable to capture webcam images - Please try another device',\r\n );\r\n } else {\r\n return context;\r\n }\r\n }\r\n\r\n handleStream(stream) {\r\n try {\r\n const videoExists = this.shadowRoot.querySelector('video');\r\n let video = null;\r\n if (videoExists) {\r\n video = this.shadowRoot.querySelector('video');\r\n } else {\r\n video = document.createElement('video');\r\n }\r\n\r\n video.autoplay = true;\r\n video.playsInline = true;\r\n video.muted = true;\r\n\r\n if ('srcObject' in video) {\r\n video.srcObject = stream;\r\n } else {\r\n video.src = window.URL.createObjectURL(stream);\r\n }\r\n\r\n video.onloadedmetadata = () => {\r\n video.play();\r\n };\r\n\r\n this._video = video;\r\n const videoContainer = this.shadowRoot.querySelector(\r\n '.video-container > .video',\r\n );\r\n this._data.permissionGranted = true;\r\n\r\n if (!videoExists) {\r\n videoContainer.prepend(video);\r\n }\r\n } catch (error) {\r\n this.setAttribute(\r\n 'data-camera-error',\r\n SmartCamera.handleCameraError(error),\r\n );\r\n if (error.name !== 'AbortError') {\r\n console.error(error);\r\n }\r\n SmartCamera.stopMedia();\r\n }\r\n }\r\n\r\n setUpEventListeners() {\r\n this.navigation = this.shadowRoot.querySelector('smileid-navigation');\r\n\r\n this.startImageCapture = this.shadowRoot.querySelector(\r\n '#start-image-capture',\r\n );\r\n\r\n this.switchCamera = this.shadowRoot.querySelector('#switch-camera');\r\n this.imageOutline = this.shadowRoot.querySelector('#image-outline path');\r\n this.smileCTABox = this.shadowRoot.querySelector('#smile-cta-box');\r\n this.smileCTA = this.shadowRoot.querySelector('#smile-cta');\r\n this.mouth = this.shadowRoot.querySelector('#mouth');\r\n this.mouthAnim = this.shadowRoot.querySelector('#mouthAnim');\r\n\r\n this.startImageCapture.addEventListener('click', () => {\r\n this._startImageCapture();\r\n });\r\n\r\n this.switchCamera?.addEventListener('click', () => {\r\n this._switchCamera();\r\n });\r\n\r\n this.navigation.addEventListener('navigation.back', () => {\r\n this.handleBackEvents();\r\n });\r\n\r\n this.navigation.addEventListener('navigation.close', () => {\r\n this.closeWindow();\r\n });\r\n\r\n if (SmartCamera.stream) {\r\n this.handleStream(SmartCamera.stream);\r\n } else if (this.hasAttribute('data-camera-ready')) {\r\n getPermissions(this, { facingMode: this.facingMode });\r\n }\r\n\r\n this.setupAgentMode();\r\n }\r\n\r\n disconnectedCallback() {\r\n SmartCamera.stopMedia();\r\n clearTimeout(this._videoStreamTimeout);\r\n }\r\n\r\n get hideBack() {\r\n return this.hasAttribute('hide-back');\r\n }\r\n\r\n get showNavigation() {\r\n return this.hasAttribute('show-navigation');\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#001096';\r\n }\r\n\r\n get hideAttribution() {\r\n return this.hasAttribute('hide-attribution');\r\n }\r\n\r\n async setupAgentMode() {\r\n if (!this.allowAgentMode) {\r\n return;\r\n }\r\n\r\n const supportAgentMode = await SmartCamera.supportsAgentMode();\r\n\r\n if (supportAgentMode || this.hasAttribute('show-agent-mode-for-tests')) {\r\n this.switchCamera.hidden = false;\r\n if (this.facingMode === 'user') {\r\n this.shadowRoot.querySelector('video')?.classList?.remove('agent-mode');\r\n } else {\r\n this.shadowRoot.querySelector('video')?.classList?.add('agent-mode');\r\n }\r\n } else {\r\n this.switchCamera.hidden = true;\r\n }\r\n }\r\n\r\n get hasAgentSupport() {\r\n return this.hasAttribute('has-agent-support');\r\n }\r\n\r\n get title() {\r\n return this.getAttribute('title') || 'Submit Front of ID';\r\n }\r\n\r\n get hidden() {\r\n return this.getAttribute('hidden');\r\n }\r\n\r\n get cameraError() {\r\n return this.getAttribute('data-camera-error');\r\n }\r\n\r\n get disableImageTests() {\r\n return this.hasAttribute('disable-image-tests');\r\n }\r\n\r\n get allowAgentMode() {\r\n return this.getAttribute('allow-agent-mode') === 'true';\r\n }\r\n\r\n get inAgentMode() {\r\n return this.facingMode === 'environment';\r\n }\r\n\r\n static get observedAttributes() {\r\n return [\r\n 'allow-agent-mode',\r\n 'data-camera-error',\r\n 'data-camera-ready',\r\n 'disable-image-tests',\r\n 'hidden',\r\n 'hide-back-to-host',\r\n 'show-navigation',\r\n 'title',\r\n ];\r\n }\r\n\r\n attributeChangedCallback(name) {\r\n switch (name) {\r\n case 'data-camera-error':\r\n case 'data-camera-ready':\r\n case 'hidden':\r\n case 'title':\r\n case 'allow-agent-mode':\r\n this.shadowRoot.innerHTML = this.render();\r\n this.init();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n handleBackEvents() {\r\n this.stopMedia();\r\n this.dispatchEvent(new CustomEvent('selfie-capture.cancelled'));\r\n }\r\n\r\n closeWindow() {\r\n this.stopMedia();\r\n this.dispatchEvent(new CustomEvent('selfie-capture.close'));\r\n }\r\n\r\n stopMedia() {\r\n this.removeAttribute('data-camera-ready');\r\n SmartCamera.stopMedia();\r\n }\r\n}\r\n\r\nif ('customElements' in window && !customElements.get('selfie-capture')) {\r\n window.customElements.define('selfie-capture', SelfieCaptureScreen);\r\n}\r\n\r\nexport default SelfieCaptureScreen;\r\n","import { useState, useEffect } from 'preact/hooks';\r\nimport { IconLoader2 } from '@tabler/icons-preact';\r\nimport register from 'preact-custom-element';\r\nimport type { FunctionComponent } from 'preact';\r\n\r\nimport { getBoolProp } from '@/utils/props';\r\nimport SmartSelfieCapture from '../smartselfie-capture/SmartSelfieCapture';\r\nimport '../selfie-capture/SelfieCapture';\r\nimport { getMediapipeInstance } from '../smartselfie-capture/utils/mediapipeManager';\r\n\r\ninterface Props {\r\n timeout?: number;\r\n interval?: number;\r\n duration?: number;\r\n 'theme-color'?: string;\r\n 'show-navigation'?: string | boolean;\r\n 'allow-agent-mode'?: string | boolean;\r\n 'show-agent-mode-for-tests'?: string | boolean;\r\n 'hide-attribution'?: string | boolean;\r\n 'disable-image-tests'?: string | boolean;\r\n key?: string;\r\n 'start-countdown'?: string | boolean;\r\n hidden?: string | boolean;\r\n}\r\n\r\nconst SelfieCaptureWrapper: FunctionComponent<Props> = ({\r\n timeout = 20000,\r\n 'start-countdown': startCountdownProp = false,\r\n hidden: hiddenProp = false,\r\n ...props\r\n}) => {\r\n const hidden = getBoolProp(hiddenProp);\r\n const startCountdown = getBoolProp(startCountdownProp);\r\n const [mediapipeReady, setMediapipeReady] = useState(false);\r\n const [loadingProgress, setLoadingProgress] = useState(0);\r\n const [initialSessionCompleted, setInitialSessionCompleted] = useState(false);\r\n const [mediapipeLoading, setMediapipeLoading] = useState(false);\r\n const [usingSelfieCapture, setUsingSelfieCapture] = useState(false);\r\n\r\n useEffect(() => {\r\n if (mediapipeReady || mediapipeLoading) return;\r\n\r\n const loadMediapipe = async () => {\r\n setMediapipeLoading(true);\r\n try {\r\n await getMediapipeInstance();\r\n setMediapipeReady(true);\r\n } catch (error) {\r\n console.error('Failed to load Mediapipe:', error);\r\n }\r\n setMediapipeLoading(false);\r\n };\r\n\r\n loadMediapipe();\r\n }, [mediapipeReady, mediapipeLoading]);\r\n\r\n useEffect(() => {\r\n if (hidden || !startCountdown || mediapipeReady) return undefined;\r\n\r\n const timer = setInterval(() => {\r\n setLoadingProgress((prev: number) => Math.min(prev + 1, 100));\r\n }, timeout / 100);\r\n\r\n return () => {\r\n clearInterval(timer);\r\n };\r\n }, [hidden, startCountdown, timeout, mediapipeReady]);\r\n\r\n useEffect(() => {\r\n if (hidden || mediapipeReady || loadingProgress < 100) return undefined;\r\n\r\n const setupEventForwarding = () => {\r\n const selfieCapture = document.querySelector('selfie-capture');\r\n if (\r\n selfieCapture &&\r\n !selfieCapture.hasAttribute('data-backup-events-setup')\r\n ) {\r\n selfieCapture.setAttribute('data-backup-events-setup', 'true');\r\n\r\n const forwardEvent = (event: Event) => {\r\n const customEvent = event as CustomEvent;\r\n window.dispatchEvent(\r\n new CustomEvent(customEvent.type, {\r\n detail: customEvent.detail,\r\n bubbles: true,\r\n }),\r\n );\r\n };\r\n\r\n selfieCapture.addEventListener('selfie-capture.publish', forwardEvent);\r\n selfieCapture.addEventListener(\r\n 'selfie-capture.cancelled',\r\n forwardEvent,\r\n );\r\n selfieCapture.addEventListener('selfie-capture.close', forwardEvent);\r\n\r\n return () => {\r\n selfieCapture.removeEventListener(\r\n 'selfie-capture.publish',\r\n forwardEvent,\r\n );\r\n selfieCapture.removeEventListener(\r\n 'selfie-capture.cancelled',\r\n forwardEvent,\r\n );\r\n selfieCapture.removeEventListener(\r\n 'selfie-capture.close',\r\n forwardEvent,\r\n );\r\n };\r\n }\r\n return undefined;\r\n };\r\n\r\n const timeoutId = setTimeout(setupEventForwarding, 200);\r\n return () => {\r\n clearTimeout(timeoutId);\r\n };\r\n }, [hidden, mediapipeReady, loadingProgress]);\r\n\r\n if (hidden) {\r\n return null;\r\n }\r\n\r\n // on retakes, prefer SmartSelfieCapture if Mediapipe is ready\r\n if (initialSessionCompleted && mediapipeReady && !usingSelfieCapture) {\r\n return <SmartSelfieCapture {...props} />;\r\n }\r\n\r\n // use SmartSelfieCapture if mediapipe loads\r\n if (!initialSessionCompleted && mediapipeReady && !usingSelfieCapture) {\r\n return <SmartSelfieCapture {...props} />;\r\n }\r\n\r\n if (loadingProgress >= 100) {\r\n if (!usingSelfieCapture) {\r\n setUsingSelfieCapture(true);\r\n }\r\n\r\n const propsWithoutHidden = { ...props };\r\n delete (propsWithoutHidden as any).hidden;\r\n\r\n return (\r\n // @ts-ignore\r\n <selfie-capture\r\n {...propsWithoutHidden}\r\n ref={(el: HTMLElement) => {\r\n if (el && !el.hasAttribute('data-events-setup')) {\r\n el.setAttribute('data-events-setup', 'true');\r\n\r\n const forwardEvent = (event: Event) => {\r\n const customEvent = event as CustomEvent;\r\n\r\n if (\r\n customEvent.type === 'selfie-capture.publish' ||\r\n customEvent.type === 'selfie-capture.cancelled' ||\r\n customEvent.type === 'selfie-capture.close'\r\n ) {\r\n setInitialSessionCompleted(true);\r\n }\r\n\r\n window.dispatchEvent(\r\n new CustomEvent(customEvent.type, {\r\n detail: customEvent.detail,\r\n bubbles: true,\r\n }),\r\n );\r\n };\r\n\r\n el.addEventListener('selfie-capture.publish', forwardEvent);\r\n el.addEventListener('selfie-capture.cancelled', forwardEvent);\r\n el.addEventListener('selfie-capture.close', forwardEvent);\r\n }\r\n }}\r\n />\r\n );\r\n }\r\n\r\n return (\r\n <div style={{ textAlign: 'center', marginTop: '20%' }}>\r\n <div\r\n style={{\r\n marginBottom: '16px',\r\n display: 'flex',\r\n justifyContent: 'center',\r\n }}\r\n >\r\n <IconLoader2\r\n size={48}\r\n style={{ animation: 'spin 1s linear infinite' }}\r\n />\r\n </div>\r\n <p>Loading... {loadingProgress}%</p>\r\n <style>{`\r\n @keyframes spin {\r\n from { transform: rotate(0deg); }\r\n to { transform: rotate(360deg); }\r\n }\r\n `}</style>\r\n </div>\r\n );\r\n};\r\n\r\nif (!customElements.get('selfie-capture-wrapper')) {\r\n register(\r\n SelfieCaptureWrapper,\r\n 'selfie-capture-wrapper',\r\n [\r\n 'timeout',\r\n 'interval',\r\n 'duration',\r\n 'theme-color',\r\n 'show-navigation',\r\n 'allow-agent-mode',\r\n 'show-agent-mode-for-tests',\r\n 'hide-attribution',\r\n 'disable-image-tests',\r\n 'key',\r\n 'start-countdown',\r\n 'hidden',\r\n ],\r\n { shadow: true },\r\n );\r\n}\r\n\r\nexport default SelfieCaptureWrapper;\r\n","import './selfie-capture-instructions';\r\nimport './selfie-capture-review';\r\nimport './selfie-capture-wrapper/index.ts';\r\nimport SmartCamera from '../../../domain/camera/src/SmartCamera';\r\nimport styles from '../../../styles/src/styles';\r\nimport packageJson from '../../../../package.json';\r\n\r\nconst COMPONENTS_VERSION = packageJson.version;\r\n\r\nconst smartCameraWeb = document.querySelector('smart-camera-web');\r\n\r\nasync function getPermissions(captureScreen, facingMode = 'user') {\r\n try {\r\n const stream = await SmartCamera.getMedia({\r\n audio: false,\r\n video: { facingMode },\r\n });\r\n const devices = await navigator.mediaDevices.enumerateDevices();\r\n const videoDevice = devices.find(\r\n (device) =>\r\n device.kind === 'videoinput' &&\r\n stream.getVideoTracks()[0].getSettings().deviceId === device.deviceId,\r\n );\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.camera-name', {\r\n detail: { cameraName: videoDevice?.label },\r\n }),\r\n );\r\n captureScreen.removeAttribute('data-camera-error');\r\n captureScreen.setAttribute('data-camera-ready', true);\r\n } catch (error) {\r\n captureScreen.removeAttribute('data-camera-ready');\r\n captureScreen.setAttribute(\r\n 'data-camera-error',\r\n SmartCamera.handleCameraError(error),\r\n );\r\n }\r\n}\r\n\r\nconst cropImageFromDataUri = (\r\n dataUri,\r\n cropPercentX = 0,\r\n cropPercentY = 0,\r\n quality = 0.9,\r\n) =>\r\n new Promise((resolve, reject) => {\r\n if (!dataUri || typeof dataUri !== 'string') {\r\n reject(new Error('Invalid data URI provided'));\r\n return;\r\n }\r\n\r\n if (\r\n cropPercentX < 0 ||\r\n cropPercentX >= 99 ||\r\n cropPercentY < 0 ||\r\n cropPercentY >= 99\r\n ) {\r\n reject(new Error('Crop percentages must be between 0 and 99'));\r\n return;\r\n }\r\n\r\n const img = new Image();\r\n\r\n img.onload = () => {\r\n try {\r\n const canvas = document.createElement('canvas');\r\n const ctx = canvas.getContext('2d');\r\n\r\n const originalWidth = img.width;\r\n const originalHeight = img.height;\r\n const cropAmountX = (originalWidth * cropPercentX) / 100;\r\n const cropAmountY = (originalHeight * cropPercentY) / 100;\r\n\r\n const newWidth = originalWidth - cropAmountX * 2;\r\n const newHeight = originalHeight - cropAmountY * 2;\r\n canvas.width = newWidth;\r\n canvas.height = newHeight;\r\n\r\n ctx.drawImage(\r\n img,\r\n cropAmountX,\r\n cropAmountY,\r\n newWidth,\r\n newHeight,\r\n 0,\r\n 0,\r\n newWidth,\r\n newHeight,\r\n );\r\n\r\n const croppedDataUri = canvas.toDataURL('image/jpeg', quality);\r\n resolve(croppedDataUri);\r\n } catch (error) {\r\n reject(new Error(`Failed to process image: ${error.message}`));\r\n }\r\n };\r\n\r\n img.onerror = () => {\r\n reject(new Error('Failed to load image from data URI'));\r\n };\r\n\r\n img.src = dataUri;\r\n });\r\n\r\nclass SelfieCaptureScreens extends HTMLElement {\r\n constructor() {\r\n super();\r\n this.activeScreen = null;\r\n this._remountKey = 0; // Counter for forcing wrapper remounts\r\n smartCameraWeb?.dispatchEvent(new CustomEvent('metadata.initialize'));\r\n }\r\n\r\n connectedCallback() {\r\n this.innerHTML = `\r\n ${styles(this.themeColor)}\r\n <div>\r\n <selfie-capture-instructions theme-color='${this.themeColor}' ${this.showNavigation} ${this.hideAttribution} ${this.hideBack} hidden></selfie-capture-instructions>\r\n <selfie-capture-wrapper theme-color='${this.themeColor}' ${this.showNavigation} ${this.allowAgentMode} ${this.allowAgentModeTests} ${this.hideAttribution} ${this.disableImageTests} key=\"${this._remountKey}\" start-countdown=\"false\" hidden></selfie-capture-wrapper>\r\n <selfie-capture-review theme-color='${this.themeColor}' ${this.showNavigation} ${this.hideAttribution} hidden></selfie-capture-review>\r\n </div>\r\n `;\r\n\r\n this._data = {\r\n images: [],\r\n meta: {\r\n libraryVersion: COMPONENTS_VERSION,\r\n },\r\n };\r\n this.selfieInstruction = this.querySelector('selfie-capture-instructions');\r\n this.selfieCapture = this.querySelector('selfie-capture-wrapper');\r\n this.selfieReview = this.querySelector('selfie-capture-review');\r\n\r\n if (this.hideInstructions && !this.hasAttribute('hidden')) {\r\n getPermissions(this.selfieCapture, this.getAgentMode());\r\n }\r\n\r\n // If the initial screen is selfie-capture, we need to get permissions\r\n if (this.getAttribute('initial-screen') === 'selfie-capture') {\r\n getPermissions(this.selfieCapture, this.getAgentMode()).then(() =>\r\n this.setActiveScreen(this.selfieCapture),\r\n );\r\n } else if (this.hideInstructions) {\r\n this.setActiveScreen(this.selfieCapture);\r\n } else {\r\n this.setActiveScreen(this.selfieInstruction);\r\n }\r\n\r\n this.setUpEventListeners();\r\n }\r\n\r\n getAgentMode() {\r\n return this.inAgentMode ? 'environment' : 'user';\r\n }\r\n\r\n disconnectedCallback() {\r\n SmartCamera.stopMedia();\r\n if (this.activeScreen) {\r\n this.activeScreen.removeAttribute('hidden');\r\n }\r\n this.activeScreen = null;\r\n this.innerHTML = '';\r\n }\r\n\r\n setUpEventListeners() {\r\n this.selfieInstruction.addEventListener(\r\n 'selfie-capture-instructions.capture',\r\n async () => {\r\n await getPermissions(this.selfieCapture, this.getAgentMode()).then(() =>\r\n this.setActiveScreen(this.selfieCapture),\r\n );\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.selfie-capture-start'),\r\n );\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.selfie-origin', {\r\n detail: {\r\n imageOrigin: {\r\n environment: 'back_camera',\r\n user: 'front_camera',\r\n }[this.getAgentMode()],\r\n },\r\n }),\r\n );\r\n },\r\n );\r\n this.selfieInstruction.addEventListener(\r\n 'selfie-capture-instructions.cancelled',\r\n () => {\r\n this.handleBackEvents();\r\n },\r\n );\r\n // Setup selfie-wrapper event listeners\r\n this.setupSelfieWrapperEventListeners();\r\n\r\n this.selfieReview.addEventListener(\r\n 'selfie-capture-review.rejected',\r\n async () => {\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.selfie-capture-retry'),\r\n );\r\n this.selfieReview.removeAttribute('data-image');\r\n this._data.images = [];\r\n\r\n // Force remount by incrementing key\r\n this.forceWrapperRemount();\r\n\r\n if (this.hideInstructions) {\r\n this.setActiveScreen(this.selfieCapture);\r\n await getPermissions(this.selfieCapture, this.getAgentMode());\r\n } else {\r\n this.setActiveScreen(this.selfieInstruction);\r\n }\r\n },\r\n );\r\n\r\n this.selfieReview.addEventListener(\r\n 'selfie-capture-review.accepted',\r\n async () => {\r\n this._publishSelectedImages();\r\n },\r\n );\r\n\r\n [this.selfieInstruction, this.selfieCapture, this.selfieReview].forEach(\r\n (screen) => {\r\n screen.addEventListener(\r\n `${screen.nodeName.toLowerCase()}.close`,\r\n () => {\r\n this.handleCloseEvent();\r\n },\r\n );\r\n },\r\n );\r\n }\r\n\r\n // Force remount of selfie-capture-wrapper component for clean state\r\n forceWrapperRemount() {\r\n this._remountKey++;\r\n const container = this.querySelector('div');\r\n const oldSelfieCapture = this.selfieCapture;\r\n\r\n // Create new selfie-capture-wrapper element with same attributes\r\n const newSelfieCapture = document.createElement('selfie-capture-wrapper');\r\n newSelfieCapture.setAttribute('theme-color', this.themeColor);\r\n newSelfieCapture.setAttribute('key', this._remountKey.toString());\r\n newSelfieCapture.setAttribute('start-countdown', 'false');\r\n\r\n // Copy all the correct attributes based on the getter logic\r\n const showNav = this.hasAttribute('show-navigation');\r\n const allowAgent = this.getAttribute('allow-agent-mode') === 'true';\r\n const allowAgentTests = this.hasAttribute('show-agent-mode-for-tests');\r\n const hideAttr = this.hasAttribute('hide-attribution');\r\n const disableTests = this.hasAttribute('disable-image-tests');\r\n\r\n if (showNav) newSelfieCapture.setAttribute('show-navigation', '');\r\n if (allowAgent) newSelfieCapture.setAttribute('allow-agent-mode', 'true');\r\n if (allowAgentTests)\r\n newSelfieCapture.setAttribute('show-agent-mode-for-tests', '');\r\n if (hideAttr) newSelfieCapture.setAttribute('hide-attribution', '');\r\n if (disableTests) newSelfieCapture.setAttribute('disable-image-tests', '');\r\n newSelfieCapture.setAttribute('hidden', '');\r\n\r\n // Replace old element with new one\r\n container.replaceChild(newSelfieCapture, oldSelfieCapture);\r\n\r\n // Update reference\r\n this.selfieCapture = newSelfieCapture;\r\n\r\n // Re-add event listeners for the new element\r\n this.setupSelfieWrapperEventListeners();\r\n }\r\n\r\n // Override setActiveScreen to enable countdown when selfie-capture is active\r\n setActiveScreen(screen) {\r\n this.activeScreen?.setAttribute('hidden', '');\r\n screen.removeAttribute('hidden');\r\n this.activeScreen = screen;\r\n\r\n // If activating selfie-capture-wrapper, enable the countdown and ensure permissions\r\n if (screen === this.selfieCapture) {\r\n screen.setAttribute('start-countdown', 'true');\r\n getPermissions(this.selfieCapture, this.getAgentMode());\r\n } else if (this.selfieCapture) {\r\n // Disable countdown when not on capture screen\r\n this.selfieCapture.setAttribute('start-countdown', 'false');\r\n }\r\n }\r\n\r\n setupSelfieWrapperEventListeners() {\r\n window.addEventListener('selfie-capture.cancelled', () => {\r\n SmartCamera.stopMedia();\r\n\r\n // Force remount of selfie-capture-wrapper for clean state on next visit\r\n this.forceWrapperRemount();\r\n\r\n if (this.hideInstructions) {\r\n this.handleBackEvents();\r\n return;\r\n }\r\n\r\n this.setActiveScreen(this.selfieInstruction);\r\n });\r\n\r\n // Add specific close event handler for selfie-capture-wrapper\r\n window.addEventListener('selfie-capture.close', () => {\r\n SmartCamera.stopMedia();\r\n\r\n // Force remount of selfie-capture-wrapper for clean state on next visit\r\n this.forceWrapperRemount();\r\n\r\n this.handleCloseEvent();\r\n });\r\n\r\n window.addEventListener('selfie-capture.publish', async (event) => {\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.selfie-capture-end'),\r\n );\r\n this.selfieReview.setAttribute(\r\n 'data-image',\r\n await cropImageFromDataUri(event.detail.referenceImage, 20, 20),\r\n );\r\n this._data.images = event.detail.images;\r\n SmartCamera.stopMedia();\r\n this.setActiveScreen(this.selfieReview);\r\n });\r\n\r\n // Also listen for the publish event on the parent SelfieCaptureScreens element\r\n // in case smartselfie-capture dispatches it there\r\n this.addEventListener('selfie-capture.publish', async (event) => {\r\n smartCameraWeb?.dispatchEvent(\r\n new CustomEvent('metadata.selfie-capture-end'),\r\n );\r\n this.selfieReview.setAttribute(\r\n 'data-image',\r\n await cropImageFromDataUri(event.detail.referenceImage, 20, 20),\r\n );\r\n this._data.images = event.detail.images;\r\n SmartCamera.stopMedia();\r\n this.setActiveScreen(this.selfieReview);\r\n });\r\n }\r\n\r\n _publishSelectedImages() {\r\n this.dispatchEvent(\r\n new CustomEvent('selfie-capture-screens.publish', { detail: this._data }),\r\n );\r\n }\r\n\r\n get hideInstructions() {\r\n return this.hasAttribute('hide-instructions');\r\n }\r\n\r\n get hideAttribution() {\r\n return this.hasAttribute('hide-attribution') ? 'hide-attribution=\"\"' : '';\r\n }\r\n\r\n get hideBackOfId() {\r\n return this.hasAttribute('hide-back-of-id');\r\n }\r\n\r\n get showNavigation() {\r\n return this.hasAttribute('show-navigation') ? 'show-navigation=\"\"' : '';\r\n }\r\n\r\n get inAgentMode() {\r\n return this.getAttribute('allow-agent-mode') === 'true';\r\n }\r\n\r\n get allowAgentMode() {\r\n return this.inAgentMode ? 'allow-agent-mode=\"true\"' : '';\r\n }\r\n\r\n get allowAgentModeTests() {\r\n return this.hasAttribute('show-agent-mode-for-tests')\r\n ? 'show-agent-mode-for-tests=\"\"'\r\n : '';\r\n }\r\n\r\n get hideBack() {\r\n return this.hasAttribute('hide-back-to-host') ||\r\n this.hasAttribute('hide-back')\r\n ? 'hide-back=\"\"'\r\n : '';\r\n }\r\n\r\n get disableImageTests() {\r\n return this.hasAttribute('disable-image-tests')\r\n ? 'disable-image-tests=\"\"'\r\n : '';\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#001096';\r\n }\r\n\r\n handleBackEvents() {\r\n this.dispatchEvent(new CustomEvent('selfie-capture-screens.cancelled'));\r\n }\r\n\r\n handleCloseEvent() {\r\n this.dispatchEvent(new CustomEvent('selfie-capture-screens.close'));\r\n }\r\n\r\n static get observedAttributes() {\r\n return [\r\n 'title',\r\n 'hidden',\r\n 'show-navigation',\r\n 'hide-back-to-host',\r\n 'initial-screen',\r\n ];\r\n }\r\n\r\n attributeChangedCallback(name) {\r\n switch (name) {\r\n case 'title':\r\n case 'hidden':\r\n case 'initial-screen':\r\n this.connectedCallback();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n}\r\n\r\nif (\r\n 'customElements' in window &&\r\n !customElements.get('selfie-capture-screens')\r\n) {\r\n customElements.define('selfie-capture-screens', SelfieCaptureScreens);\r\n}\r\n\r\nexport default SelfieCaptureScreens;\r\n","/*!\n * Signature Pad v5.0.2 | https://github.com/szimek/signature_pad\n * (c) 2024 Szymon Nowak | Released under the MIT license\n */\n\nclass Point {\n constructor(x, y, pressure, time) {\n if (isNaN(x) || isNaN(y)) {\n throw new Error(`Point is invalid: (${x}, ${y})`);\n }\n this.x = +x;\n this.y = +y;\n this.pressure = pressure || 0;\n this.time = time || Date.now();\n }\n distanceTo(start) {\n return Math.sqrt(Math.pow(this.x - start.x, 2) + Math.pow(this.y - start.y, 2));\n }\n equals(other) {\n return (this.x === other.x &&\n this.y === other.y &&\n this.pressure === other.pressure &&\n this.time === other.time);\n }\n velocityFrom(start) {\n return this.time !== start.time\n ? this.distanceTo(start) / (this.time - start.time)\n : 0;\n }\n}\n\nclass Bezier {\n static fromPoints(points, widths) {\n const c2 = this.calculateControlPoints(points[0], points[1], points[2]).c2;\n const c3 = this.calculateControlPoints(points[1], points[2], points[3]).c1;\n return new Bezier(points[1], c2, c3, points[2], widths.start, widths.end);\n }\n static calculateControlPoints(s1, s2, s3) {\n const dx1 = s1.x - s2.x;\n const dy1 = s1.y - s2.y;\n const dx2 = s2.x - s3.x;\n const dy2 = s2.y - s3.y;\n const m1 = { x: (s1.x + s2.x) / 2.0, y: (s1.y + s2.y) / 2.0 };\n const m2 = { x: (s2.x + s3.x) / 2.0, y: (s2.y + s3.y) / 2.0 };\n const l1 = Math.sqrt(dx1 * dx1 + dy1 * dy1);\n const l2 = Math.sqrt(dx2 * dx2 + dy2 * dy2);\n const dxm = m1.x - m2.x;\n const dym = m1.y - m2.y;\n const k = l2 / (l1 + l2);\n const cm = { x: m2.x + dxm * k, y: m2.y + dym * k };\n const tx = s2.x - cm.x;\n const ty = s2.y - cm.y;\n return {\n c1: new Point(m1.x + tx, m1.y + ty),\n c2: new Point(m2.x + tx, m2.y + ty),\n };\n }\n constructor(startPoint, control2, control1, endPoint, startWidth, endWidth) {\n this.startPoint = startPoint;\n this.control2 = control2;\n this.control1 = control1;\n this.endPoint = endPoint;\n this.startWidth = startWidth;\n this.endWidth = endWidth;\n }\n length() {\n const steps = 10;\n let length = 0;\n let px;\n let py;\n for (let i = 0; i <= steps; i += 1) {\n const t = i / steps;\n const cx = this.point(t, this.startPoint.x, this.control1.x, this.control2.x, this.endPoint.x);\n const cy = this.point(t, this.startPoint.y, this.control1.y, this.control2.y, this.endPoint.y);\n if (i > 0) {\n const xdiff = cx - px;\n const ydiff = cy - py;\n length += Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n }\n px = cx;\n py = cy;\n }\n return length;\n }\n point(t, start, c1, c2, end) {\n return (start * (1.0 - t) * (1.0 - t) * (1.0 - t))\n + (3.0 * c1 * (1.0 - t) * (1.0 - t) * t)\n + (3.0 * c2 * (1.0 - t) * t * t)\n + (end * t * t * t);\n }\n}\n\nclass SignatureEventTarget {\n constructor() {\n try {\n this._et = new EventTarget();\n }\n catch (error) {\n this._et = document;\n }\n }\n addEventListener(type, listener, options) {\n this._et.addEventListener(type, listener, options);\n }\n dispatchEvent(event) {\n return this._et.dispatchEvent(event);\n }\n removeEventListener(type, callback, options) {\n this._et.removeEventListener(type, callback, options);\n }\n}\n\nfunction throttle(fn, wait = 250) {\n let previous = 0;\n let timeout = null;\n let result;\n let storedContext;\n let storedArgs;\n const later = () => {\n previous = Date.now();\n timeout = null;\n result = fn.apply(storedContext, storedArgs);\n if (!timeout) {\n storedContext = null;\n storedArgs = [];\n }\n };\n return function wrapper(...args) {\n const now = Date.now();\n const remaining = wait - (now - previous);\n storedContext = this;\n storedArgs = args;\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n previous = now;\n result = fn.apply(storedContext, storedArgs);\n if (!timeout) {\n storedContext = null;\n storedArgs = [];\n }\n }\n else if (!timeout) {\n timeout = window.setTimeout(later, remaining);\n }\n return result;\n };\n}\n\nclass SignaturePad extends SignatureEventTarget {\n constructor(canvas, options = {}) {\n var _a, _b, _c;\n super();\n this.canvas = canvas;\n this._drawingStroke = false;\n this._isEmpty = true;\n this._lastPoints = [];\n this._data = [];\n this._lastVelocity = 0;\n this._lastWidth = 0;\n this._handleMouseDown = (event) => {\n if (!this._isLeftButtonPressed(event, true) || this._drawingStroke) {\n return;\n }\n this._strokeBegin(this._pointerEventToSignatureEvent(event));\n };\n this._handleMouseMove = (event) => {\n if (!this._isLeftButtonPressed(event, true) || !this._drawingStroke) {\n this._strokeEnd(this._pointerEventToSignatureEvent(event), false);\n return;\n }\n this._strokeMoveUpdate(this._pointerEventToSignatureEvent(event));\n };\n this._handleMouseUp = (event) => {\n if (this._isLeftButtonPressed(event)) {\n return;\n }\n this._strokeEnd(this._pointerEventToSignatureEvent(event));\n };\n this._handleTouchStart = (event) => {\n if (event.targetTouches.length !== 1 || this._drawingStroke) {\n return;\n }\n if (event.cancelable) {\n event.preventDefault();\n }\n this._strokeBegin(this._touchEventToSignatureEvent(event));\n };\n this._handleTouchMove = (event) => {\n if (event.targetTouches.length !== 1) {\n return;\n }\n if (event.cancelable) {\n event.preventDefault();\n }\n if (!this._drawingStroke) {\n this._strokeEnd(this._touchEventToSignatureEvent(event), false);\n return;\n }\n this._strokeMoveUpdate(this._touchEventToSignatureEvent(event));\n };\n this._handleTouchEnd = (event) => {\n if (event.targetTouches.length !== 0) {\n return;\n }\n if (event.cancelable) {\n event.preventDefault();\n }\n this.canvas.removeEventListener('touchmove', this._handleTouchMove);\n this._strokeEnd(this._touchEventToSignatureEvent(event));\n };\n this._handlePointerDown = (event) => {\n if (!this._isLeftButtonPressed(event) || this._drawingStroke) {\n return;\n }\n event.preventDefault();\n this._strokeBegin(this._pointerEventToSignatureEvent(event));\n };\n this._handlePointerMove = (event) => {\n if (!this._isLeftButtonPressed(event, true) || !this._drawingStroke) {\n this._strokeEnd(this._pointerEventToSignatureEvent(event), false);\n return;\n }\n event.preventDefault();\n this._strokeMoveUpdate(this._pointerEventToSignatureEvent(event));\n };\n this._handlePointerUp = (event) => {\n if (this._isLeftButtonPressed(event)) {\n return;\n }\n event.preventDefault();\n this._strokeEnd(this._pointerEventToSignatureEvent(event));\n };\n this.velocityFilterWeight = options.velocityFilterWeight || 0.7;\n this.minWidth = options.minWidth || 0.5;\n this.maxWidth = options.maxWidth || 2.5;\n this.throttle = (_a = options.throttle) !== null && _a !== void 0 ? _a : 16;\n this.minDistance = (_b = options.minDistance) !== null && _b !== void 0 ? _b : 5;\n this.dotSize = options.dotSize || 0;\n this.penColor = options.penColor || 'black';\n this.backgroundColor = options.backgroundColor || 'rgba(0,0,0,0)';\n this.compositeOperation = options.compositeOperation || 'source-over';\n this.canvasContextOptions = (_c = options.canvasContextOptions) !== null && _c !== void 0 ? _c : {};\n this._strokeMoveUpdate = this.throttle\n ? throttle(SignaturePad.prototype._strokeUpdate, this.throttle)\n : SignaturePad.prototype._strokeUpdate;\n this._ctx = canvas.getContext('2d', this.canvasContextOptions);\n this.clear();\n this.on();\n }\n clear() {\n const { _ctx: ctx, canvas } = this;\n ctx.fillStyle = this.backgroundColor;\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n this._data = [];\n this._reset(this._getPointGroupOptions());\n this._isEmpty = true;\n }\n fromDataURL(dataUrl, options = {}) {\n return new Promise((resolve, reject) => {\n const image = new Image();\n const ratio = options.ratio || window.devicePixelRatio || 1;\n const width = options.width || this.canvas.width / ratio;\n const height = options.height || this.canvas.height / ratio;\n const xOffset = options.xOffset || 0;\n const yOffset = options.yOffset || 0;\n this._reset(this._getPointGroupOptions());\n image.onload = () => {\n this._ctx.drawImage(image, xOffset, yOffset, width, height);\n resolve();\n };\n image.onerror = (error) => {\n reject(error);\n };\n image.crossOrigin = 'anonymous';\n image.src = dataUrl;\n this._isEmpty = false;\n });\n }\n toDataURL(type = 'image/png', encoderOptions) {\n switch (type) {\n case 'image/svg+xml':\n if (typeof encoderOptions !== 'object') {\n encoderOptions = undefined;\n }\n return `data:image/svg+xml;base64,${btoa(this.toSVG(encoderOptions))}`;\n default:\n if (typeof encoderOptions !== 'number') {\n encoderOptions = undefined;\n }\n return this.canvas.toDataURL(type, encoderOptions);\n }\n }\n on() {\n this.canvas.style.touchAction = 'none';\n this.canvas.style.msTouchAction = 'none';\n this.canvas.style.userSelect = 'none';\n const isIOS = /Macintosh/.test(navigator.userAgent) && 'ontouchstart' in document;\n if (window.PointerEvent && !isIOS) {\n this._handlePointerEvents();\n }\n else {\n this._handleMouseEvents();\n if ('ontouchstart' in window) {\n this._handleTouchEvents();\n }\n }\n }\n off() {\n this.canvas.style.touchAction = 'auto';\n this.canvas.style.msTouchAction = 'auto';\n this.canvas.style.userSelect = 'auto';\n this.canvas.removeEventListener('pointerdown', this._handlePointerDown);\n this.canvas.removeEventListener('mousedown', this._handleMouseDown);\n this.canvas.removeEventListener('touchstart', this._handleTouchStart);\n this._removeMoveUpEventListeners();\n }\n _getListenerFunctions() {\n var _a;\n const canvasWindow = window.document === this.canvas.ownerDocument\n ? window\n : (_a = this.canvas.ownerDocument.defaultView) !== null && _a !== void 0 ? _a : this.canvas.ownerDocument;\n return {\n addEventListener: canvasWindow.addEventListener.bind(canvasWindow),\n removeEventListener: canvasWindow.removeEventListener.bind(canvasWindow),\n };\n }\n _removeMoveUpEventListeners() {\n const { removeEventListener } = this._getListenerFunctions();\n removeEventListener('pointermove', this._handlePointerMove);\n removeEventListener('pointerup', this._handlePointerUp);\n removeEventListener('mousemove', this._handleMouseMove);\n removeEventListener('mouseup', this._handleMouseUp);\n removeEventListener('touchmove', this._handleTouchMove);\n removeEventListener('touchend', this._handleTouchEnd);\n }\n isEmpty() {\n return this._isEmpty;\n }\n fromData(pointGroups, { clear = true } = {}) {\n if (clear) {\n this.clear();\n }\n this._fromData(pointGroups, this._drawCurve.bind(this), this._drawDot.bind(this));\n this._data = this._data.concat(pointGroups);\n }\n toData() {\n return this._data;\n }\n _isLeftButtonPressed(event, only) {\n if (only) {\n return event.buttons === 1;\n }\n return (event.buttons & 1) === 1;\n }\n _pointerEventToSignatureEvent(event) {\n return {\n event: event,\n type: event.type,\n x: event.clientX,\n y: event.clientY,\n pressure: 'pressure' in event ? event.pressure : 0,\n };\n }\n _touchEventToSignatureEvent(event) {\n const touch = event.changedTouches[0];\n return {\n event: event,\n type: event.type,\n x: touch.clientX,\n y: touch.clientY,\n pressure: touch.force,\n };\n }\n _getPointGroupOptions(group) {\n return {\n penColor: group && 'penColor' in group ? group.penColor : this.penColor,\n dotSize: group && 'dotSize' in group ? group.dotSize : this.dotSize,\n minWidth: group && 'minWidth' in group ? group.minWidth : this.minWidth,\n maxWidth: group && 'maxWidth' in group ? group.maxWidth : this.maxWidth,\n velocityFilterWeight: group && 'velocityFilterWeight' in group\n ? group.velocityFilterWeight\n : this.velocityFilterWeight,\n compositeOperation: group && 'compositeOperation' in group\n ? group.compositeOperation\n : this.compositeOperation,\n };\n }\n _strokeBegin(event) {\n const cancelled = !this.dispatchEvent(new CustomEvent('beginStroke', { detail: event, cancelable: true }));\n if (cancelled) {\n return;\n }\n const { addEventListener } = this._getListenerFunctions();\n switch (event.event.type) {\n case 'mousedown':\n addEventListener('mousemove', this._handleMouseMove);\n addEventListener('mouseup', this._handleMouseUp);\n break;\n case 'touchstart':\n addEventListener('touchmove', this._handleTouchMove);\n addEventListener('touchend', this._handleTouchEnd);\n break;\n case 'pointerdown':\n addEventListener('pointermove', this._handlePointerMove);\n addEventListener('pointerup', this._handlePointerUp);\n break;\n }\n this._drawingStroke = true;\n const pointGroupOptions = this._getPointGroupOptions();\n const newPointGroup = Object.assign(Object.assign({}, pointGroupOptions), { points: [] });\n this._data.push(newPointGroup);\n this._reset(pointGroupOptions);\n this._strokeUpdate(event);\n }\n _strokeUpdate(event) {\n if (!this._drawingStroke) {\n return;\n }\n if (this._data.length === 0) {\n this._strokeBegin(event);\n return;\n }\n this.dispatchEvent(new CustomEvent('beforeUpdateStroke', { detail: event }));\n const point = this._createPoint(event.x, event.y, event.pressure);\n const lastPointGroup = this._data[this._data.length - 1];\n const lastPoints = lastPointGroup.points;\n const lastPoint = lastPoints.length > 0 && lastPoints[lastPoints.length - 1];\n const isLastPointTooClose = lastPoint\n ? point.distanceTo(lastPoint) <= this.minDistance\n : false;\n const pointGroupOptions = this._getPointGroupOptions(lastPointGroup);\n if (!lastPoint || !(lastPoint && isLastPointTooClose)) {\n const curve = this._addPoint(point, pointGroupOptions);\n if (!lastPoint) {\n this._drawDot(point, pointGroupOptions);\n }\n else if (curve) {\n this._drawCurve(curve, pointGroupOptions);\n }\n lastPoints.push({\n time: point.time,\n x: point.x,\n y: point.y,\n pressure: point.pressure,\n });\n }\n this.dispatchEvent(new CustomEvent('afterUpdateStroke', { detail: event }));\n }\n _strokeEnd(event, shouldUpdate = true) {\n this._removeMoveUpEventListeners();\n if (!this._drawingStroke) {\n return;\n }\n if (shouldUpdate) {\n this._strokeUpdate(event);\n }\n this._drawingStroke = false;\n this.dispatchEvent(new CustomEvent('endStroke', { detail: event }));\n }\n _handlePointerEvents() {\n this._drawingStroke = false;\n this.canvas.addEventListener('pointerdown', this._handlePointerDown);\n }\n _handleMouseEvents() {\n this._drawingStroke = false;\n this.canvas.addEventListener('mousedown', this._handleMouseDown);\n }\n _handleTouchEvents() {\n this.canvas.addEventListener('touchstart', this._handleTouchStart);\n }\n _reset(options) {\n this._lastPoints = [];\n this._lastVelocity = 0;\n this._lastWidth = (options.minWidth + options.maxWidth) / 2;\n this._ctx.fillStyle = options.penColor;\n this._ctx.globalCompositeOperation = options.compositeOperation;\n }\n _createPoint(x, y, pressure) {\n const rect = this.canvas.getBoundingClientRect();\n return new Point(x - rect.left, y - rect.top, pressure, new Date().getTime());\n }\n _addPoint(point, options) {\n const { _lastPoints } = this;\n _lastPoints.push(point);\n if (_lastPoints.length > 2) {\n if (_lastPoints.length === 3) {\n _lastPoints.unshift(_lastPoints[0]);\n }\n const widths = this._calculateCurveWidths(_lastPoints[1], _lastPoints[2], options);\n const curve = Bezier.fromPoints(_lastPoints, widths);\n _lastPoints.shift();\n return curve;\n }\n return null;\n }\n _calculateCurveWidths(startPoint, endPoint, options) {\n const velocity = options.velocityFilterWeight * endPoint.velocityFrom(startPoint) +\n (1 - options.velocityFilterWeight) * this._lastVelocity;\n const newWidth = this._strokeWidth(velocity, options);\n const widths = {\n end: newWidth,\n start: this._lastWidth,\n };\n this._lastVelocity = velocity;\n this._lastWidth = newWidth;\n return widths;\n }\n _strokeWidth(velocity, options) {\n return Math.max(options.maxWidth / (velocity + 1), options.minWidth);\n }\n _drawCurveSegment(x, y, width) {\n const ctx = this._ctx;\n ctx.moveTo(x, y);\n ctx.arc(x, y, width, 0, 2 * Math.PI, false);\n this._isEmpty = false;\n }\n _drawCurve(curve, options) {\n const ctx = this._ctx;\n const widthDelta = curve.endWidth - curve.startWidth;\n const drawSteps = Math.ceil(curve.length()) * 2;\n ctx.beginPath();\n ctx.fillStyle = options.penColor;\n for (let i = 0; i < drawSteps; i += 1) {\n const t = i / drawSteps;\n const tt = t * t;\n const ttt = tt * t;\n const u = 1 - t;\n const uu = u * u;\n const uuu = uu * u;\n let x = uuu * curve.startPoint.x;\n x += 3 * uu * t * curve.control1.x;\n x += 3 * u * tt * curve.control2.x;\n x += ttt * curve.endPoint.x;\n let y = uuu * curve.startPoint.y;\n y += 3 * uu * t * curve.control1.y;\n y += 3 * u * tt * curve.control2.y;\n y += ttt * curve.endPoint.y;\n const width = Math.min(curve.startWidth + ttt * widthDelta, options.maxWidth);\n this._drawCurveSegment(x, y, width);\n }\n ctx.closePath();\n ctx.fill();\n }\n _drawDot(point, options) {\n const ctx = this._ctx;\n const width = options.dotSize > 0\n ? options.dotSize\n : (options.minWidth + options.maxWidth) / 2;\n ctx.beginPath();\n this._drawCurveSegment(point.x, point.y, width);\n ctx.closePath();\n ctx.fillStyle = options.penColor;\n ctx.fill();\n }\n _fromData(pointGroups, drawCurve, drawDot) {\n for (const group of pointGroups) {\n const { points } = group;\n const pointGroupOptions = this._getPointGroupOptions(group);\n if (points.length > 1) {\n for (let j = 0; j < points.length; j += 1) {\n const basicPoint = points[j];\n const point = new Point(basicPoint.x, basicPoint.y, basicPoint.pressure, basicPoint.time);\n if (j === 0) {\n this._reset(pointGroupOptions);\n }\n const curve = this._addPoint(point, pointGroupOptions);\n if (curve) {\n drawCurve(curve, pointGroupOptions);\n }\n }\n }\n else {\n this._reset(pointGroupOptions);\n drawDot(points[0], pointGroupOptions);\n }\n }\n }\n toSVG({ includeBackgroundColor = false } = {}) {\n const pointGroups = this._data;\n const ratio = Math.max(window.devicePixelRatio || 1, 1);\n const minX = 0;\n const minY = 0;\n const maxX = this.canvas.width / ratio;\n const maxY = this.canvas.height / ratio;\n const svg = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svg.setAttribute('xmlns', 'http://www.w3.org/2000/svg');\n svg.setAttribute('xmlns:xlink', 'http://www.w3.org/1999/xlink');\n svg.setAttribute('viewBox', `${minX} ${minY} ${maxX} ${maxY}`);\n svg.setAttribute('width', maxX.toString());\n svg.setAttribute('height', maxY.toString());\n if (includeBackgroundColor && this.backgroundColor) {\n const rect = document.createElement('rect');\n rect.setAttribute('width', '100%');\n rect.setAttribute('height', '100%');\n rect.setAttribute('fill', this.backgroundColor);\n svg.appendChild(rect);\n }\n this._fromData(pointGroups, (curve, { penColor }) => {\n const path = document.createElement('path');\n if (!isNaN(curve.control1.x) &&\n !isNaN(curve.control1.y) &&\n !isNaN(curve.control2.x) &&\n !isNaN(curve.control2.y)) {\n const attr = `M ${curve.startPoint.x.toFixed(3)},${curve.startPoint.y.toFixed(3)} ` +\n `C ${curve.control1.x.toFixed(3)},${curve.control1.y.toFixed(3)} ` +\n `${curve.control2.x.toFixed(3)},${curve.control2.y.toFixed(3)} ` +\n `${curve.endPoint.x.toFixed(3)},${curve.endPoint.y.toFixed(3)}`;\n path.setAttribute('d', attr);\n path.setAttribute('stroke-width', (curve.endWidth * 2.25).toFixed(3));\n path.setAttribute('stroke', penColor);\n path.setAttribute('fill', 'none');\n path.setAttribute('stroke-linecap', 'round');\n svg.appendChild(path);\n }\n }, (point, { penColor, dotSize, minWidth, maxWidth }) => {\n const circle = document.createElement('circle');\n const size = dotSize > 0 ? dotSize : (minWidth + maxWidth) / 2;\n circle.setAttribute('r', size.toString());\n circle.setAttribute('cx', point.x.toString());\n circle.setAttribute('cy', point.y.toString());\n circle.setAttribute('fill', penColor);\n svg.appendChild(circle);\n });\n return svg.outerHTML;\n }\n}\n\nexport { SignaturePad as default };\n//# sourceMappingURL=signature_pad.js.map\n","import SignaturePadCore from 'signature_pad';\r\n\r\nclass SmartFileUpload {\r\n static memoryLimit = 2048000;\r\n\r\n static supportedTypes = ['image/jpeg', 'image/png', 'image/svg+xml'];\r\n\r\n static getHumanSize(numberOfBytes) {\r\n // Approximate to the closest prefixed unit\r\n const units = ['B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\r\n const exponent = Math.min(\r\n Math.floor(Math.log(numberOfBytes) / Math.log(1024)),\r\n units.length - 1,\r\n );\r\n const approx = numberOfBytes / 1024 ** exponent;\r\n const output =\r\n exponent === 0\r\n ? `${numberOfBytes} bytes`\r\n : `${approx.toFixed(0)} ${units[exponent]}`;\r\n\r\n return output;\r\n }\r\n\r\n static getData(file) {\r\n return new Promise((resolve, reject) => {\r\n const reader = new FileReader();\r\n\r\n reader.onload = (e) => {\r\n resolve(e.target.result);\r\n };\r\n reader.onerror = () => {\r\n reject(\r\n new Error(\r\n 'An error occurred reading the file. Please check the file, and try again',\r\n ),\r\n );\r\n };\r\n reader.readAsDataURL(file);\r\n });\r\n }\r\n\r\n static async retrieve(files) {\r\n if (files.length > 1) {\r\n throw new Error('Only one file upload is permitted at a time');\r\n }\r\n\r\n const file = files[0];\r\n\r\n if (!SmartFileUpload.supportedTypes.includes(file.type)) {\r\n throw new Error(\r\n 'Unsupported file format. Please ensure that you are providing a JPG, PNG or SVG image',\r\n );\r\n }\r\n\r\n if (file.size > SmartFileUpload.memoryLimit) {\r\n throw new Error(\r\n `${\r\n file.name\r\n } is too large. Please ensure that the file is less than ${SmartFileUpload.getHumanSize(\r\n SmartFileUpload.memoryLimit,\r\n )}.`,\r\n );\r\n }\r\n\r\n const imageAsDataUrl = await SmartFileUpload.getData(file);\r\n\r\n return imageAsDataUrl;\r\n }\r\n}\r\n\r\nclass SignaturePad extends HTMLElement {\r\n connectedCallback() {\r\n const shadow = this.attachShadow({ mode: 'open' });\r\n\r\n const style = document.createElement('style');\r\n style.textContent = `\r\n:host {\r\n display: block;\r\n block-size: auto;\r\n inline-size: 30rem;\r\n max-inline-size: 100%;\r\n position: relative;\r\n --color-active: #2D2B2A;\r\n --color-default: #001096;\r\n --color-disabled: #848282;\r\n}\r\n\r\n:host::part(upload) {\r\n text-align: center;\r\n}\r\n\r\n:host::part(signature-controls) {\r\n display: inline-flex;\r\n position: absolute;\r\n top: 1rem;\r\n right: 1rem;\r\n}\r\n\r\n:host::part(upload) svg + * {\r\n margin-inline-start: .5rem;\r\n}\r\n\r\n:host::part(canvas) {\r\n background-color: #F9F0E7;\r\n --dot-bg: #F9F0E7;\r\n --dot-color: black;\r\n --dot-size: 1px;\r\n --dot-space: 22px;\r\n background:\r\n linear-gradient(90deg, var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space),\r\n linear-gradient(var(--dot-bg) calc(var(--dot-space) - var(--dot-size)), transparent 1%) center / var(--dot-space) var(--dot-space),\r\n var(--dot-color);\r\n border-radius: 2rem;\r\n inline-size: 30rem;\r\n max-inline-size: 100%;\r\n aspect-ratio: 2 / 1;\r\n}\r\n\r\n:host::part(upload-preview-image) {\r\n max-inline-size: 10rem;\r\n margin-inline: auto;\r\n}\r\n\r\n.visually-hidden {\r\n clip: rect(0 0 0 0); \r\n clip-path: inset(50%);\r\n height: 1px;\r\n overflow: hidden;\r\n position: absolute;\r\n white-space: nowrap; \r\n width: 1px;\r\n}\r\n\r\nbutton,\r\nlabel {\r\n font: inherit;\r\n cursor: pointer;\r\n}\r\n\r\nlabel {\r\n display: inline-flex;\r\n text-decoration: underline;\r\n}\r\n\r\nlabel svg + * {\r\n margin-inline-start: .5rem;\r\n}\r\n\r\n[type=\"file\"] {\r\n display: none;\r\n}\r\n\r\n.center {\r\n text-align: center;\r\n margin-inline: auto;\r\n}\r\n\r\n.color-red {\r\n color: red;\r\n}\r\n\r\nbutton[data-variant=\"icon\"] {\r\n appearance: none;\r\n -webkit-appearance: none;\r\n background-color: transparent;\r\n border: 0px;\r\n}\r\n\r\nbutton[data-variant=\"text\"] {\r\n appearance: none;\r\n -webkit-appearance: none;\r\n background-color: transparent;\r\n border: 0px;\r\n text-decoration: underline;\r\n display: inline-flex;\r\n align-items: baseline;\r\n}\r\n\r\nbutton[data-variant=\"solid\"] {\r\n --button-color: ${this.themeColor};\r\n border-radius: 2.5rem;\r\n border: 0;\r\n background-color: transparent;\r\n color: #fff;\r\n cursor: pointer;\r\n inline-size: 100%;\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n font-size: 18px;\r\n font-weight: 600;\r\n padding: .75rem 1.5rem;\r\n text-align: center;\r\n background-color: var(--button-color);\r\n border: 2px solid var(--button-color);\r\n}\r\n\r\nbutton:hover,\r\nbutton:focus,\r\nbutton:active {\r\n --button-color: var(--color-active);\r\n}\r\n\r\nbutton:disabled {\r\n --button-color: var(--color-disabled);\r\n}\r\n`;\r\n\r\n const wrapper = document.createElement('div');\r\n const errorMessage = document.createElement('div');\r\n errorMessage.innerHTML = `\r\n <p id=\"error\" class=\"color-red | center\"><p>\r\n `;\r\n\r\n const signatureControls = document.createElement('div');\r\n signatureControls.setAttribute('id', 'controls');\r\n signatureControls.setAttribute('part', 'signature-controls');\r\n signatureControls.innerHTML = `\r\n <button data-variant=\"icon\" type=\"button\" name=\"clear\" id=\"clear\">\r\n <span class=\"visually-hidden\">\r\n Clear Signature\r\n </span>\r\n <svg fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" viewBox=\"0 0 17 18\">\r\n <path d=\"M3.314 15.646a8.004 8.004 0 01-2.217-4.257 8.06 8.06 0 01.545-4.655l1.789.788a6.062 6.062 0 001.264 6.737 6.033 6.033 0 008.551 0c2.358-2.37 2.358-6.224 0-8.592a5.996 5.996 0 00-4.405-1.782l.662 2.354-3.128-.796-3.127-.796 2.25-2.324L7.748 0l.55 1.953a7.966 7.966 0 016.33 2.326 8.004 8.004 0 012.342 5.684 8.005 8.005 0 01-2.343 5.683A7.928 7.928 0 018.97 18a7.928 7.928 0 01-5.656-2.354z\" fill=\"currentColor\" />\r\n </svg>\r\n </button>\r\n `;\r\n\r\n const canvas = document.createElement('canvas');\r\n\r\n /**\r\n * NOTE: In order to make this responsive, we need to calculate the width\r\n * / height of the canvas element relative to the closest visible element\r\n *\r\n * Within our consuming context, we do follow these steps:\r\n * - Find the closest ancestor that is visible\r\n * - Find the visible child of that ancestor\r\n * - Get the reference width / inline-size of the element\r\n * - Compute the canvas.height as the lesser of the reference width or the\r\n * inline size of the canvas set in CSS\r\n * - Compute the canvas.height as half the size of the canvas.width or the\r\n * block size computed by the aspect-ratio property\r\n */\r\n\r\n const closestVisibleAncestor = this.parentElement.closest(':not([hidden])');\r\n const visibleChild = closestVisibleAncestor.querySelector(':not([hidden])');\r\n const containerWidth = visibleChild.offsetWidth;\r\n\r\n const remInPx = getComputedStyle(document.documentElement).fontSize.split(\r\n 'px',\r\n )[0];\r\n const componentMaxInlineSize = 30 * remInPx; // 30rem from the style declaration\r\n const aspectRatio = 2; // 2 from the canvas style aspect ratio declaration\r\n\r\n canvas.width =\r\n containerWidth < componentMaxInlineSize\r\n ? containerWidth\r\n : componentMaxInlineSize;\r\n canvas.height =\r\n (containerWidth < componentMaxInlineSize\r\n ? containerWidth\r\n : componentMaxInlineSize) / aspectRatio;\r\n\r\n canvas.setAttribute('id', 'signature-canvas');\r\n canvas.setAttribute('part', 'canvas');\r\n\r\n const uploadControl = document.createElement('div');\r\n uploadControl.setAttribute('id', 'signature-upload-wrapper');\r\n uploadControl.innerHTML = `\r\n <p part=\"upload\">\r\n <strong>or</strong>\r\n <label>\r\n <input type='file' onclick='this.value=null;' id='upload-signature' accept='image/jpeg, image/png, image/svg+xml' />\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" fill=\"none\">\r\n <rect width=\"16\" height=\"16\" fill=\"#F9F0E7\" rx=\"2\"/>\r\n <mask id=\"sign\" width=\"16\" height=\"16\" x=\"0\" y=\"0\" maskUnits=\"userSpaceOnUse\" style=\"mask-type:alpha\">\r\n <rect width=\"16\" height=\"16\" fill=\"#D9D9D9\" rx=\"2\"/>\r\n </mask>\r\n <g mask=\"url(#sign)\">\r\n <path fill=\"#2D2B2A\" d=\"M0 13.333h16V16H0z\"/>\r\n </g>\r\n <path fill=\"#2D2B2A\" fill-rule=\"evenodd\" d=\"M2.69 7.346a.23.23 0 0 1 .059-.073.275.275 0 0 1 .284-.034c.07.036.146.064.224.084h.12c0-.012.105-.048.105-.395a.796.796 0 0 1 .211-.61.667.667 0 0 1 .607-.096c.202.061.39.154.555.275.194.138.38.286.555.443.146.134.31.25.489.347l.092.047c.119.06.238-.023.185-.143l-.04-.12a.817.817 0 0 1-.066-.694.675.675 0 0 1 .244-.273.774.774 0 0 1 .364-.12c.324-.028.651 0 .964.083h.026c.027-.861.225-1.83.82-2.523.593-.694 1.478-.993 2.205-.837.726.155 1.307.73 1.307 1.602 0 1.34-.872 2.26-1.915 2.93.471.374.85.835 1.11 1.351.027.046.05.094.065.144h.014a.55.55 0 0 0 .079.203.44.44 0 0 0 .04.18c.002.025.011.05.026.07h-.013c.037.17.041.344.013.515a.955.955 0 0 1-.188.493 1.097 1.097 0 0 1-.433.344 1.346 1.346 0 0 1-1.122.012 2.194 2.194 0 0 1-.846-.67 5.024 5.024 0 0 1-.462-.681h-.026a.502.502 0 0 0-.106-.144.014.014 0 0 1-.01-.003.011.011 0 0 1-.003-.009.035.035 0 0 1-.013-.023.047.047 0 0 1-.011-.017.626.626 0 0 0-.055-.163.24.24 0 0 0-.014-.095h.014a3.477 3.477 0 0 1-.198-.49 6.318 6.318 0 0 1-.278-1.699L7.51 6.51c-.243-.07-.5-.094-.753-.071-.158.024-.198.071-.211.107-.014.036-.04.168.053.359.092.191.171.478.118.658a.45.45 0 0 1-.21.25.66.66 0 0 1-.305.06 1.521 1.521 0 0 1-.568-.19 3.533 3.533 0 0 1-.58-.42 3.54 3.54 0 0 0-.49-.394 1.49 1.49 0 0 0-.409-.203c-.053-.024-.079-.024-.092-.012H4.05c-.014.012-.066.072-.066.275 0 .395-.12.705-.423.813a.813.813 0 0 1-.41.024 1.646 1.646 0 0 1-.343-.12.237.237 0 0 1-.126-.127.208.208 0 0 1 .007-.172Zm5.731.766c.068.204.152.404.251.598.011.053.03.105.053.155.036.068.08.132.132.191.02.05.047.099.08.144.085.152.186.296.303.43.167.22.389.4.647.526a.847.847 0 0 0 .687-.011.655.655 0 0 0 .247-.204.573.573 0 0 0 .11-.287 1.435 1.435 0 0 0-.04-.454h-.014a.496.496 0 0 0-.079-.335.491.491 0 0 0-.119-.191 3.842 3.842 0 0 0-1.017-1.16l-.356.18a.253.253 0 0 1-.193.027.248.248 0 0 1-.088-.041.22.22 0 0 1-.063-.07.219.219 0 0 1-.02-.172.242.242 0 0 1 .113-.14l.172-.083a3.388 3.388 0 0 0-.463-.251l-.58-.24c.022.47.101.935.237 1.388Zm.568-1.555c.24.12.474.252.7.395 1.017-.634 1.81-1.459 1.81-2.63 0-.67-.41-1.053-.912-1.16-.502-.108-1.189.083-1.704.669-.515.586-.7 1.47-.713 2.32v.083c.251.084.515.192.819.323Z\" clip-rule=\"evenodd\"/>\r\n </svg>\r\n <span>upload a signature</span>\r\n </label>\r\n </p>\r\n `;\r\n\r\n const publishSignatureContainer = document.createElement('p');\r\n publishSignatureContainer.innerHTML = `\r\n <button data-variant=\"solid\" type=\"button\" name=\"publish\" id=\"publish\">\r\n <span>\r\n Continue\r\n </span>\r\n <svg\r\n aria-hidden=\"true\"\r\n width=\"25\"\r\n height=\"24\"\r\n fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n >\r\n <path\r\n d=\"M7 12h11m0 0-4.588-4M18 12l-4.588 4\"\r\n stroke=\"#fff\"\r\n stroke-width=\"1.5\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </button>\r\n `;\r\n\r\n wrapper.appendChild(errorMessage);\r\n wrapper.appendChild(signatureControls);\r\n wrapper.appendChild(canvas);\r\n if (this.allowUpload) wrapper.appendChild(uploadControl);\r\n wrapper.appendChild(publishSignatureContainer);\r\n\r\n shadow.appendChild(style);\r\n shadow.appendChild(wrapper);\r\n\r\n this.core = new SignaturePadCore(canvas);\r\n\r\n // Error Message\r\n this.errorMessage = errorMessage.querySelector('#error');\r\n\r\n // Canvas Resize / Sizing\r\n if (window) {\r\n window.onresize = this.resizeCanvas();\r\n }\r\n\r\n // Signature Pad Controls\r\n this.clearSignatureButton = signatureControls.querySelector('#clear');\r\n this.clearSignatureButton.addEventListener('click', () =>\r\n this.clearSignature(),\r\n );\r\n\r\n // Upload Controls\r\n this.uploadSignatureButton =\r\n uploadControl.querySelector('#upload-signature');\r\n this.uploadSignatureButton.addEventListener('change', (event) =>\r\n this.uploadSignature(event),\r\n );\r\n\r\n // Publish Signature\r\n this.publishSignatureButton =\r\n publishSignatureContainer.querySelector('#publish');\r\n this.publishSignatureButton.addEventListener('click', () =>\r\n this.publishSignature(),\r\n );\r\n }\r\n\r\n disconnectedCallback() {\r\n this.publishSignatureButton.removeEventListener('click', () =>\r\n this.publishSignature(),\r\n );\r\n this.clearSignatureButton.removeEventListener('click', () =>\r\n this.clearSignature(),\r\n );\r\n this.uploadSignatureButton.removeEventListener('change', (event) =>\r\n this.uploadSignature(event),\r\n );\r\n }\r\n\r\n // Adjust canvas coordinate space taking into account pixel ratio,\r\n // to make it look crisp on mobile devices.\r\n // This also causes canvas to be cleared.\r\n resizeCanvas() {\r\n // When zoomed out to less than 100%, for some very strange reason,\r\n // some browsers report devicePixelRatio as less than 1\r\n // and only part of the canvas is cleared then.\r\n const canvas = this.shadowRoot.querySelector('canvas');\r\n const ratio = Math.max(window.devicePixelRatio || 1, 1);\r\n\r\n // This part causes the canvas to be cleared\r\n canvas.width = (canvas.offsetWidth || canvas.width) * ratio;\r\n canvas.height = (canvas.offsetHeight || canvas.height) * ratio;\r\n canvas.getContext('2d').scale(ratio, ratio);\r\n\r\n // This library does not listen for canvas changes, so after the canvas is automatically\r\n // cleared by the browser, SignaturePad#isEmpty might still return false, even though the\r\n // canvas looks empty, because the internal data of this library wasn't cleared. To make sure\r\n // that the state of this library is consistent with visual state of the canvas, you\r\n // have to clear it manually.\r\n // signaturePad.clear();\r\n\r\n // If you want to keep the drawing on resize instead of clearing it you can reset the data.\r\n this.core.fromData(this.core.toData());\r\n }\r\n\r\n publishSignature() {\r\n try {\r\n this.resetErrorMessage();\r\n const previewImage = this.shadowRoot.querySelector('img');\r\n let image = previewImage ? previewImage.src : undefined;\r\n if (!image && !this.core.isEmpty()) {\r\n image = this.core.toDataURL('image/svg+xml');\r\n }\r\n\r\n if (image) {\r\n this.dispatchEvent(\r\n new CustomEvent('signature-pad.publish', {\r\n detail: image,\r\n }),\r\n );\r\n } else {\r\n throw new Error(\r\n `No signature present. ${\r\n this.allowUpload ? 'Draw or upload' : 'Draw'\r\n } a signature`,\r\n );\r\n }\r\n } catch (error) {\r\n this.handleError(error.message);\r\n }\r\n }\r\n\r\n resetErrorMessage() {\r\n this.errorMessage.textContent = '';\r\n }\r\n\r\n handleError(error) {\r\n this.errorMessage.textContent = error;\r\n }\r\n\r\n clearSignature() {\r\n this.resetErrorMessage();\r\n const canvas = this.shadowRoot.querySelector('canvas');\r\n const img = this.shadowRoot.querySelector('img');\r\n\r\n if (img) {\r\n img.remove();\r\n canvas.removeAttribute('hidden');\r\n }\r\n\r\n this.core.clear();\r\n }\r\n\r\n previewUpload(fileData) {\r\n const canvas = this.shadowRoot.querySelector('canvas');\r\n let img = this.shadowRoot.querySelector('img');\r\n\r\n if (!img) {\r\n img = document.createElement('img');\r\n }\r\n\r\n img.src = fileData;\r\n img.setAttribute('part', 'upload-preview-image');\r\n canvas.setAttribute('hidden', true);\r\n canvas.insertAdjacentElement('afterend', img);\r\n }\r\n\r\n async uploadSignature(event) {\r\n try {\r\n this.resetErrorMessage();\r\n const { files } = event.target;\r\n\r\n // validate file, and convert file to data url\r\n const fileData = await SmartFileUpload.retrieve(files);\r\n\r\n // swap out canvas for an image for preview\r\n this.previewUpload(fileData);\r\n } catch (error) {\r\n this.handleError(error.message);\r\n }\r\n }\r\n\r\n get allowUpload() {\r\n return this.hasAttribute('allow-upload');\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#001096';\r\n }\r\n}\r\n\r\nif (\r\n 'customElements' in window &&\r\n !window.customElements.get('smileid-signature-pad')\r\n) {\r\n window.customElements.define('smileid-signature-pad', SignaturePad);\r\n}\r\n\r\nexport default SignaturePad;\r\n","import SmartCamera from '../../domain/camera/src/SmartCamera';\r\nimport styles from '../../styles/src/styles';\r\nimport '../attribution/PoweredBySmileId';\r\nimport '../navigation/src';\r\n\r\nfunction templateString() {\r\n return `\r\n ${styles(this.themeColor)}\r\n <style>\r\n .camera-permission-screen {\r\n display: flex;\r\n flex-direction: column;\r\n max-block-size: 100%;\r\n max-inline-size: 40ch;\r\n }\r\n .camera-permission {\r\n display: flex;\r\n flex-direction: column;\r\n gap: 1.5rem;\r\n align-items: center;\r\n margin-top: auto;\r\n margin-bottom: auto;\r\n }\r\n .camera-permission svg {\r\n flex-shrink: 0;\r\n margin-inline-end: 2rem;\r\n }\r\n .camera-permission p {\r\n margin-block: 0;\r\n text-align: center;\r\n }\r\n </style>\r\n <div class='camera-permission-screen flow center'>\r\n <smileid-navigation theme-color='${this.themeColor}' ${this.showNavigation ? 'show-navigation' : ''} ${this.hideBack ? 'hide-back' : ''}></smileid-navigation>\r\n <div class='flow center'>\r\n <p class='color-red | center' id='error'>\r\n </p>\r\n </div>\r\n <div class='section | flow camera-permission-wrapper'>\r\n <div class='center camera-permission'>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"43\" height=\"33\" viewBox=\"0 0 43 33\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_658_1399)\">\r\n <path d=\"M6.36288 7.14178H36.6374C38.1923 7.14178 39.6835 7.7593 40.783 8.85849C41.8824 9.95768 42.5001 11.4485 42.5001 13.003V29.8478C42.5001 30.6838 42.1679 31.4856 41.5766 32.0767C40.9853 32.6679 40.1833 33 39.347 33H6.36288C4.80798 33 3.31676 32.3825 2.21728 31.2833C1.1178 30.1841 0.500122 28.6933 0.500122 27.1388L0.500122 13.003C0.500122 11.4485 1.1178 9.95768 2.21728 8.85849C3.31676 7.7593 4.80798 7.14178 6.36288 7.14178Z\" fill=\"#B2B2B2\"/>\r\n <path d=\"M10.454 23.1789C10.7438 21.9337 9.96906 20.6893 8.7235 20.3995C7.47794 20.1098 6.23325 20.8843 5.9434 22.1296C5.65355 23.3748 6.4283 24.6191 7.67386 24.9089C8.91942 25.1987 10.1641 24.4241 10.454 23.1789Z\" fill=\"#DBDBC4\"/>\r\n <path d=\"M10.0768 22.9365C10.2425 21.9024 9.53826 20.9298 8.50389 20.7642C7.46952 20.5985 6.49668 21.3025 6.331 22.3366C6.16532 23.3707 6.86954 24.3433 7.90391 24.509C8.93828 24.6746 9.91112 23.9706 10.0768 22.9365Z\" fill=\"#FF5805\"/>\r\n <path d=\"M10.9694 16.2784H5.20514C4.83782 16.2784 4.54004 16.576 4.54004 16.9433V18.5194C4.54004 18.8866 4.83782 19.1843 5.20514 19.1843H10.9694C11.3367 19.1843 11.6345 18.8866 11.6345 18.5194V16.9433C11.6345 16.576 11.3367 16.2784 10.9694 16.2784Z\" fill=\"#2D2B2A\"/>\r\n <path d=\"M37.9183 22.6813C37.9183 19.8492 37.9183 17.0418 37.9429 14.2097C37.9429 11.8948 37.9183 9.57985 37.9676 7.28955C37.5348 7.16853 37.0868 7.11047 36.6374 7.11716H36.0708C36.0954 9.87537 36.1201 12.6089 36.1201 15.3672C36.1201 20.9082 36.1201 26.4739 36.1447 32.0149V32.9754H37.8937C37.8937 29.5522 37.8937 26.1291 37.9183 22.6813Z\" fill=\"#DBDBC4\"/>\r\n <path d=\"M0.500136 12.9291C0.496683 12.9634 0.500492 12.9981 0.511315 13.0309C0.522139 13.0637 0.539736 13.0938 0.562964 13.1194C0.586192 13.1449 0.614532 13.1653 0.646146 13.1792C0.67776 13.1931 0.71194 13.2002 0.746471 13.2H10.4767C12.8169 13.2 12.1271 11.2545 15.1324 11.2545H41.9582C41.9989 11.2523 42.0385 11.2411 42.0742 11.2215C42.1099 11.2019 42.1408 11.1745 42.1644 11.1414C42.1881 11.1083 42.204 11.0702 42.2109 11.0301C42.2179 10.99 42.2157 10.9488 42.2045 10.9097C41.8333 9.80556 41.125 8.84568 40.1793 8.16529C39.2335 7.48491 38.0981 7.11831 36.933 7.11716H6.31363C5.55019 7.11716 4.79423 7.26749 4.0889 7.55957C3.38358 7.85164 2.7427 8.27975 2.20287 8.81944C1.66304 9.35913 1.23482 9.99983 0.942663 10.705C0.650508 11.4101 0.500136 12.1659 0.500136 12.9291Z\" fill=\"#5E646E\"/>\r\n <path d=\"M29.7154 1.3791H23.4585C21.4632 1.3791 19.7388 2.48731 19.394 4.01418L18.113 9.45671L18.1623 9.50597H35.0116C35.0362 9.50597 35.0608 9.48134 35.0362 9.45671L33.7799 4.01418C33.4104 2.48731 31.7107 1.3791 29.7154 1.3791Z\" fill=\"#5E646E\"/>\r\n <path d=\"M30.8977 4.06343V3.71865C30.8977 3.32677 30.742 2.95093 30.4649 2.67382C30.1877 2.39672 29.8117 2.24104 29.4197 2.24104H23.6555C23.2678 2.2475 22.8982 2.40603 22.6263 2.68244C22.3544 2.95885 22.2021 3.331 22.2021 3.71865V4.06343H30.8977Z\" fill=\"#2D2B2A\"/>\r\n <path d=\"M14.0731 4.72836H6.70771C6.4084 4.72836 6.16577 4.97093 6.16577 5.27015V6.63695C6.16577 6.93617 6.4084 7.17874 6.70771 7.17874H14.0731C14.3724 7.17874 14.615 6.93617 14.615 6.63695V5.27015C14.615 4.97093 14.3724 4.72836 14.0731 4.72836Z\" fill=\"#2D2B2A\"/>\r\n <path d=\"M8.99862 8.76717H7.12648C6.73194 8.76717 6.41211 9.08692 6.41211 9.48135V11.0181C6.41211 11.4125 6.73194 11.7322 7.12648 11.7322H8.99862C9.39315 11.7322 9.71299 11.4125 9.71299 11.0181V9.48135C9.71299 9.08692 9.39315 8.76717 8.99862 8.76717Z\" fill=\"#FCFCFC\"/>\r\n <path d=\"M8.77703 10.2448C8.77709 10.1521 8.75846 10.0604 8.72227 9.97507C8.68608 9.88977 8.63306 9.81263 8.56638 9.74827C8.4997 9.6839 8.42073 9.63363 8.33418 9.60047C8.24763 9.5673 8.15529 9.55191 8.06266 9.55522C7.97208 9.55522 7.88239 9.57305 7.79871 9.60771C7.71503 9.64236 7.63899 9.69315 7.57494 9.75718C7.5109 9.82121 7.46009 9.89723 7.42543 9.98089C7.39076 10.0646 7.37292 10.1542 7.37292 10.2448C7.37281 10.43 7.44469 10.608 7.57338 10.7413C7.70206 10.8745 7.8775 10.9526 8.06266 10.9589C8.25212 10.9589 8.43382 10.8837 8.56779 10.7498C8.70176 10.6158 8.77703 10.4342 8.77703 10.2448Z\" fill=\"#5E646E\"/>\r\n <path d=\"M26.9318 30.0202C33.7069 30.0202 39.1992 24.5293 39.1992 17.756C39.1992 10.9827 33.7069 5.49179 26.9318 5.49179C20.1566 5.49179 14.6643 10.9827 14.6643 17.756C14.6643 24.5293 20.1566 30.0202 26.9318 30.0202Z\" fill=\"#FCFCFC\"/>\r\n <path d=\"M26.9319 28.3455C32.7819 28.3455 37.5242 23.6044 37.5242 17.756C37.5242 11.9075 32.7819 7.16641 26.9319 7.16641C21.0818 7.16641 16.3395 11.9075 16.3395 17.756C16.3395 23.6044 21.0818 28.3455 26.9319 28.3455Z\" fill=\"#0A462F\"/>\r\n <path d=\"M26.9318 24.0358C30.401 24.0358 33.2133 21.2242 33.2133 17.756C33.2133 14.2877 30.401 11.4761 26.9318 11.4761C23.4626 11.4761 20.6503 14.2877 20.6503 17.756C20.6503 21.2242 23.4626 24.0358 26.9318 24.0358Z\" fill=\"#2D2B2A\"/>\r\n <path opacity=\"0.49\" d=\"M28.4098 19.1104C30.1376 19.1104 31.5383 17.7102 31.5383 15.9828C31.5383 14.2555 30.1376 12.8552 28.4098 12.8552C26.682 12.8552 25.2814 14.2555 25.2814 15.9828C25.2814 17.7102 26.682 19.1104 28.4098 19.1104Z\" fill=\"url(#paint0_linear_658_1399)\"/>\r\n <g style=\"mix-blend-mode:screen\" opacity=\"0.24\">\r\n <path d=\"M30.9717 14.6776C30.9717 14.9977 30.8445 15.3046 30.6182 15.5309C30.3918 15.7572 30.0848 15.8843 29.7647 15.8843C29.4445 15.8843 29.1375 15.7572 28.9112 15.5309C28.6848 15.3046 28.5576 14.9977 28.5576 14.6776C28.5576 14.5203 28.589 14.3645 28.6499 14.2195C28.7109 14.0744 28.8002 13.943 28.9126 13.8329C29.025 13.7228 29.1583 13.6363 29.3046 13.5783C29.4509 13.5204 29.6073 13.4922 29.7647 13.4955C29.922 13.4922 30.0784 13.5204 30.2247 13.5783C30.371 13.6363 30.5043 13.7228 30.6167 13.8329C30.7291 13.943 30.8184 14.0744 30.8794 14.2195C30.9403 14.3645 30.9717 14.5203 30.9717 14.6776Z\" fill=\"#00FFFF\"/>\r\n </g>\r\n </g>\r\n <defs>\r\n <linearGradient id=\"paint0_linear_658_1399\" x1=\"25.2617\" y1=\"15.9804\" x2=\"31.5383\" y2=\"15.9804\" gradientUnits=\"userSpaceOnUse\">\r\n <stop stop-color=\"#7F47DD\" stop-opacity=\"0.1\"/>\r\n <stop offset=\"0.99\" stop-color=\"#00FFFF\"/>\r\n </linearGradient>\r\n <clipPath id=\"clip0_658_1399\">\r\n <rect width=\"42\" height=\"33\" fill=\"white\" transform=\"translate(0.500122)\"/>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <p class='text-2xl font-bold'>We need access to your camera so that we can capture your details.</p>\r\n <div class='flow action-buttons'>\r\n <button data-variant='solid full-width' class='button' type='button' id='request-camera-access'>\r\n Request Camera Access\r\n </button>\r\n ${this.hideAttribution ? '' : '<powered-by-smile-id></powered-by-smile-id>'}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n `;\r\n}\r\n\r\nclass CameraPermission extends HTMLElement {\r\n connectedCallback() {\r\n this.templateString = templateString.bind(this);\r\n this.render = () => this.templateString();\r\n this.attachShadow({ mode: 'open' });\r\n this.shadowRoot.innerHTML = this.render();\r\n this.setUpEventListeners();\r\n }\r\n\r\n setUpEventListeners() {\r\n const errorMessage = this.shadowRoot.querySelector('#error');\r\n const permissionButton = this.shadowRoot.getElementById(\r\n 'request-camera-access',\r\n );\r\n errorMessage.textContent = '';\r\n permissionButton.addEventListener('click', async () => {\r\n permissionButton.setAttribute('disabled', true);\r\n try {\r\n await SmartCamera.getMedia({\r\n audio: false,\r\n video: true,\r\n });\r\n this.dispatchEvent(new CustomEvent('camera-permission.granted'));\r\n } catch (error) {\r\n this.dispatchEvent(\r\n new CustomEvent('camera-permission.denied', { detail: error }),\r\n );\r\n errorMessage.textContent = SmartCamera.handleCameraError(error);\r\n }\r\n permissionButton.removeAttribute('disabled');\r\n });\r\n }\r\n\r\n get showNavigation() {\r\n return this.hasAttribute('show-navigation');\r\n }\r\n\r\n get hideAttribution() {\r\n return this.hasAttribute('hide-attribution');\r\n }\r\n\r\n get hideBack() {\r\n return this.hasAttribute('hide-back');\r\n }\r\n\r\n get themeColor() {\r\n return this.getAttribute('theme-color') || '#001096';\r\n }\r\n}\r\n\r\nif (window.customElements && !window.customElements.get('camera-permission')) {\r\n window.customElements.define('camera-permission', CameraPermission);\r\n}\r\n\r\nexport default CameraPermission;\r\n","import styles from '../../../styles/src/styles';\r\nimport SmartCamera from '../../../domain/camera/src/SmartCamera';\r\n\r\nimport '../../document/src';\r\nimport '../../selfie/src';\r\nimport '../../camera-permission/CameraPermission';\r\nimport packageJson from '../../../../package.json';\r\n\r\nconst COMPONENTS_VERSION = packageJson.version;\r\n\r\nfunction scwTemplateString() {\r\n return `\r\n ${styles(this.themeColor)}\r\n <div>\r\n <camera-permission ${this.applyComponentThemeColor} ${this.title} ${this.showNavigation} ${this.hideInstructions ? '' : 'hidden'} ${this.hideAttribution}></camera-permission>\r\n <selfie-capture-screens ${this.applyComponentThemeColor} ${this.title} ${this.showNavigation} ${this.disableImageTests} ${this.hideAttribution} ${this.hideInstructions} hidden\r\n ${this.hideBackToHost} ${this.allowAgentMode} ${this.allowAgentModeTests}\r\n ></selfie-capture-screens>\r\n <document-capture-screens ${this.applyComponentThemeColor} document-type=${this.documentType} ${this.title} ${this.documentCaptureModes} ${this.showNavigation} ${this.hideAttribution}\r\n ${this.hideBackOfId} ${this.applyComponentThemeColor} hidden></document-capture-screens>\r\n </div>\r\n`;\r\n}\r\nclass SmartCameraWeb extends HTMLElement {\r\n constructor() {\r\n super();\r\n this.scwTemplateString = scwTemplateString.bind(this);\r\n this.render = () => this.scwTemplateString();\r\n this.attachShadow({ mode: 'open' });\r\n this.activeScreen = null;\r\n }\r\n\r\n connectedCallback() {\r\n this.shadowRoot.innerHTML = this.render();\r\n\r\n this._data = {\r\n images: [],\r\n meta: {\r\n libraryVersion: COMPONENTS_VERSION,\r\n },\r\n };\r\n\r\n if (\r\n 'mediaDevices' in navigator &&\r\n 'getUserMedia' in navigator.mediaDevices\r\n ) {\r\n this.setUpEventListeners();\r\n } else {\r\n this.shadowRoot.innerHTML =\r\n '<h1 class=\"error-message\">Your browser does not support this integration</h1>';\r\n }\r\n }\r\n\r\n disconnectedCallback() {\r\n SmartCamera.stopMedia();\r\n if (this.activeScreen) {\r\n this.activeScreen.removeAttribute('hidden');\r\n }\r\n this.activeScreen = null;\r\n this.shadowRoot.innerHTML = '';\r\n }\r\n\r\n static get observedAttributes() {\r\n return [\r\n 'allow-agent-mode',\r\n 'disable-image-tests',\r\n 'document-capture-modes',\r\n 'document-type',\r\n 'hide-attribution',\r\n 'hide-back-of-id',\r\n 'hide-back-to-host',\r\n 'show-navigation',\r\n 'theme-color',\r\n ];\r\n }\r\n\r\n attributeChangedCallback(name) {\r\n switch (name) {\r\n case 'allow-agent-mode':\r\n case 'disable-image-tests':\r\n case 'document-capture-modes':\r\n case 'document-type':\r\n case 'hide-attribution':\r\n case 'hide-back-of-id':\r\n case 'hide-back-to-host':\r\n case 'show-navigation':\r\n case 'theme-color':\r\n this.disconnectedCallback();\r\n this.shadowRoot.innerHTML = this.render();\r\n this.setUpEventListeners();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n setUpEventListeners() {\r\n this.cameraPermission = this.shadowRoot.querySelector('camera-permission');\r\n this.SelfieCaptureScreens = this.shadowRoot.querySelector(\r\n 'selfie-capture-screens',\r\n );\r\n this.documentCapture = this.shadowRoot.querySelector(\r\n 'document-capture-screens',\r\n );\r\n\r\n if (this.hideInstructions) {\r\n this.setActiveScreen(this.cameraPermission);\r\n } else {\r\n this.setActiveScreen(this.SelfieCaptureScreens);\r\n }\r\n this.cameraPermission.addEventListener('camera-permission.granted', () => {\r\n this.setActiveScreen(this.SelfieCaptureScreens);\r\n this.SelfieCaptureScreens.removeAttribute('data-camera-error');\r\n this.SelfieCaptureScreens.setAttribute('data-camera-ready', true);\r\n });\r\n\r\n this.SelfieCaptureScreens.addEventListener(\r\n 'selfie-capture-screens.publish',\r\n (event) => {\r\n this._data.images = event.detail.images;\r\n if (!this.captureId) {\r\n this._publishSelectedImages();\r\n } else {\r\n this.setActiveScreen(this.documentCapture);\r\n }\r\n },\r\n );\r\n\r\n this.SelfieCaptureScreens.addEventListener(\r\n 'selfie-capture-screens.cancelled',\r\n () => {\r\n if (this.hideInstructions) {\r\n this.setActiveScreen(this.cameraPermission);\r\n } else {\r\n this.handleBackEvents();\r\n }\r\n },\r\n );\r\n this.SelfieCaptureScreens.addEventListener(\r\n 'selfie-capture-screens.back',\r\n () => {\r\n if (!this.hideInstructions) {\r\n this.setActiveScreen(this.cameraPermission);\r\n }\r\n },\r\n );\r\n\r\n this.documentCapture.addEventListener(\r\n 'document-capture-screens.publish',\r\n (event) => {\r\n this._data.images = [...this._data.images, ...event.detail.images];\r\n this._publishSelectedImages();\r\n },\r\n );\r\n\r\n this.documentCapture.addEventListener(\r\n 'document-capture-screens.cancelled',\r\n () => {\r\n this.SelfieCaptureScreens.setAttribute(\r\n 'initial-screen',\r\n 'selfie-capture',\r\n );\r\n this.setActiveScreen(this.SelfieCaptureScreens);\r\n this.SelfieCaptureScreens.removeAttribute('data-camera-error');\r\n this.SelfieCaptureScreens.setAttribute('data-camera-ready', true);\r\n },\r\n );\r\n\r\n [\r\n this.cameraPermission,\r\n this.SelfieCaptureScreens,\r\n this.documentCapture,\r\n ].forEach((screen) => {\r\n screen.addEventListener(`${screen.nodeName.toLowerCase()}.close`, () =>\r\n this.handleCloseEvent(),\r\n );\r\n });\r\n this.documentCapture.addEventListener(\r\n 'document-capture-screens.back',\r\n () => {\r\n this.setActiveScreen(this.SelfieCaptureScreens);\r\n this.reset();\r\n },\r\n );\r\n }\r\n\r\n reset() {\r\n this.disconnectedCallback();\r\n this.connectedCallback();\r\n }\r\n\r\n handleBackEvents() {\r\n this.dispatchEvent(new CustomEvent('smart-camera-web.cancelled'));\r\n }\r\n\r\n _publishSelectedImages() {\r\n this.dispatchEvent(\r\n new CustomEvent('smart-camera-web.publish', { detail: this._data }),\r\n );\r\n }\r\n\r\n get captureId() {\r\n return this.hasAttribute('capture-id');\r\n }\r\n\r\n get documentType() {\r\n return this.getAttribute('document-type');\r\n }\r\n\r\n get isPortraitCaptureView() {\r\n return this.getAttribute('document-type') === 'GREEN_BOOK';\r\n }\r\n\r\n get hideInstructions() {\r\n return this.hasAttribute('hide-instructions') ? 'hide-instructions' : '';\r\n }\r\n\r\n get hideBackOfId() {\r\n return this.hasAttribute('hide-back-of-id') ? 'hide-back-of-id' : '';\r\n }\r\n\r\n get showNavigation() {\r\n return this.hasAttribute('show-navigation') ? 'show-navigation' : '';\r\n }\r\n\r\n get hideBackToHost() {\r\n return this.hasAttribute('hide-back-to-host') ||\r\n this.hasAttribute('hide-back')\r\n ? 'hide-back'\r\n : '';\r\n }\r\n\r\n get allowAgentMode() {\r\n return this.hasAttribute('allow-agent-mode')\r\n ? `allow-agent-mode=${this.getAttribute('allow-agent-mode')}`\r\n : '';\r\n }\r\n\r\n get allowAgentModeTests() {\r\n return this.hasAttribute('show-agent-mode-for-tests')\r\n ? 'show-agent-mode-for-tests'\r\n : '';\r\n }\r\n\r\n get title() {\r\n return this.hasAttribute('title')\r\n ? `title=${this.getAttribute('title')}`\r\n : '';\r\n }\r\n\r\n get documentCaptureModes() {\r\n return this.hasAttribute('document-capture-modes')\r\n ? `document-capture-modes='${this.getAttribute('document-capture-modes')}'`\r\n : '';\r\n }\r\n\r\n get disableImageTests() {\r\n return this.hasAttribute('disable-image-tests')\r\n ? 'disable-image-tests'\r\n : '';\r\n }\r\n\r\n get hideAttribution() {\r\n return this.hasAttribute('hide-attribution') ? 'hide-attribution' : '';\r\n }\r\n\r\n get hasThemeColor() {\r\n return (\r\n this.hasAttribute('theme-color') &&\r\n ![null, undefined, 'null', 'undefined'].includes(\r\n this.getAttribute('theme-color'),\r\n )\r\n );\r\n }\r\n\r\n get themeColor() {\r\n return this.hasThemeColor ? this.getAttribute('theme-color') : '#001096';\r\n }\r\n\r\n get applyComponentThemeColor() {\r\n return this.hasThemeColor ? `theme-color='${this.themeColor}'` : '';\r\n }\r\n\r\n setActiveScreen(screen) {\r\n this.activeScreen?.setAttribute('hidden', '');\r\n screen.removeAttribute('hidden');\r\n this.activeScreen = screen;\r\n }\r\n\r\n handleCloseEvent() {\r\n this.dispatchEvent(new CustomEvent('smart-camera-web.close'));\r\n }\r\n}\r\n\r\nif ('customElements' in window && !customElements.get('smart-camera-web')) {\r\n customElements.define('smart-camera-web', SmartCameraWeb);\r\n}\r\n\r\nexport default SmartCameraWeb;\r\n"],"names":["generateId","prefix","id","isElementInView","element","bounding","isScrollable","maintainScrollVisibility","activeElement","scrollParent","offsetHeight","offsetTop","parentOffsetHeight","scrollTop","isAbove","isBelow","ComboboxRoot","event","target","ComboboxTrigger","node","key","selectedOption","isPrintableCharacter","str","listboxIsExpanded","value","direction","ComboboxListbox","name","oldValue","newValue","searchTerm","label","optionsVisible","emptyState","visibleOptions","currentIndex","lastIndex","nextIndex","currentNode","newNode","ComboboxOption","Root","Trigger","List","Option","IMAGE_TYPE","typography","styles","themeColor","SmartCamera","constraints","track","videoDevices","device","hasBackCamera","error","matchedModelNumber","modelNumber","Navigation","shadow","style","backButton","closeButton","hasMoreThanNColors","data","n","colors","i","templateString","documentCaptureScale","DocumentCapture","template","imageDetails","video","canvas","previewCanvas","image","previewImage","height","intermediateCanvas","enableImageTests","context","imageData","stream","videoExists","videoContainer","onVideoStart","portrait","scaleHeight","scaleWidth","heightScaleFactor","widthScaleFactor","scaleHeightOffset","scaleWidthOffset","width","startX","startY","videoHeight","videoWidth","cropWidth","cropHeight","sourceCanvas","destinationCanvas","aspectRatio","offsetX","offsetY","IdReview","SmartFileUpload$1","SmartFileUpload","numberOfBytes","units","exponent","approx","file","resolve","reject","reader","e","files","frontDocumentIcon","backDocumentIcon","DocumentInstruction","fileData","COMPONENTS_VERSION","packageJson","smartCameraWeb","getPermissions","captureScreen","videoDevice","DocumentCaptureScreens","screen","exports","module","define","validate","attributes","options","v","results","r","obj","source","attr","version","validatorName","validators","validator","validatorOptions","errors","format","WrapErrors","err","memo","result","args","p","o","vals","m0","m1","m2","s","prettify","array","el","index","object","keypath","callback","escape","form","values","j","input","inputs","option","_val","ret","msg","errorInfo","list","self","whitelist","whitelistCreator","last","buildObjectWhitelist","ow","cleanRecursive","w","attribute","root","is","maximum","minimum","tokenizer","val","length","globalOptions","count","checks","c","pattern","earliest","latest","message","match","otherValue","comparator","v1","v2","schemes","allowLocal","allowDataUrl","regex","tld","mediaType","urlchar","dataurl","PATTERN","originalOptions","type","check","this","postData","url","markup","mode","TotpConsent","updatedTemplate","updatedNode","CloseIframeButtons","button","referenceWindow","win","page","field","errorDiv","submitButton","idNumber","validationConstraints","validationErrors","response","json","text","arrow","spinner","customEvent","tag","PoweredBySmileId","EndUserConsent","granted","SelfieCaptureInstructions","SelfieCaptureReview","l","u","t","f","a","y","d","g","_","m","k","x","S","C","M","$","O","z","I","h","P","q","A","L","B","H","T","F","b","D","N","V","E","G","J","defaultAttributes","createPreactComponent","iconName","iconNamePascal","iconNode","Component","color","size","stroke","title","children","className","classes","rest","attrs","toChildArray","IconLoader2","register","getBoolProp","defaultValue","useCamera","videoRef","useRef","streamRef","facingMode","setFacingMode","useState","agentSupported","setAgentSupported","startCamera","useSignal","useComputed","R","U","X","W","K","Y","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","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","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","ctx","sourceWidth","sourceHeight","squareSize","cropX","cropY","drawFaceMesh","capturesTaken","smileCheckpoint","canvasWidth","canvasHeight","drawingUtils","DrawingUtils","outlineColor","lineWidth","FaceLandmarker","clearCanvas","captureImageFromVideo","isReference","isPortrait","zoomOutFactor","verticalOffset","ImageType","MESSAGES","getMediapipeInstance","mediapipeGlobal","vision","FilesetResolver","faceLandmarker","useFaceCapture","canvasRef","interval","duration","smileThreshold","mouthOpenThreshold","minFaceSize","maxFaceSize","smileCooldown","faceLandmarkerRef","animationFrameRef","captureTimerRef","resumeCaptureRef","faceDetected","faceInBounds","faceProximity","multipleFaces","faceLandmarks","currentSmileScore","currentFaceSize","currentMouthOpen","lastSmileTime","alertTitle","isCapturing","isPaused","countdown","capturedImages","referencePhoto","totalCaptures","hasFinishedCapture","neutralZone","isReadyToCapture","initializeFaceLandmarker","updateAlert","messageKey","setupCanvas","updateCaptureAlerts","isInNeutralZone","isInSmileZone","updateAlerts","stopDetectionLoop","detectFace","croppedCanvas","detectionSource","scaleFactor","scaleFactorY","adjustedLandmarks","numFaces","hasFace","faceSize","blendshapes","smileLeft","smileRight","mouthOpen","smileScore","startDetectionLoop","captureImage","stopCapture","livenessImages","img","referenceImage","eventDetail","pauseCapture","startCaptureInterval","resumeCapture","OvalProgress","progress","pathRef","prevProgress","useEffect","path","pathLength","fromOffset","toOffset","jsx","jsxs","CameraPreview","Fragment","AlertDisplay","CaptureControls","allowAgentMode","showAgentModeForTests","onStartCapture","onSwitchCamera","SmartSelfieCapture","showNavigationProp","allowAgentModeProp","showAgentModeForTestsProp","hideAttributionProp","navigationRef","showNavigation","hideAttribution","camera","faceCapture","navigation","handleNavigationBack","handleNavigationClose","DEFAULT_NO_OF_LIVENESS_FRAMES","getLivenessFramesIndices","totalNoOfFrames","numberOfFramesRequired","selectedFrames","frameDivisor","frameInterval","replacementFrameIndex","lastFrameIndex","SelfieCaptureScreen","imageOutlineLength","livenessFramesIndices","imageIndex","SelfieCaptureWrapper","timeout","startCountdownProp","hiddenProp","props","hidden","startCountdown","mediapipeReady","setMediapipeReady","loadingProgress","setLoadingProgress","initialSessionCompleted","setInitialSessionCompleted","mediapipeLoading","setMediapipeLoading","usingSelfieCapture","setUsingSelfieCapture","timer","prev","timeoutId","selfieCapture","forwardEvent","propsWithoutHidden","cropImageFromDataUri","dataUri","cropPercentX","cropPercentY","quality","originalWidth","originalHeight","cropAmountX","cropAmountY","newWidth","newHeight","croppedDataUri","SelfieCaptureScreens","container","oldSelfieCapture","newSelfieCapture","showNav","allowAgent","allowAgentTests","hideAttr","disableTests","Point","pressure","time","start","other","Bezier","points","widths","c2","c3","s1","s2","s3","dx1","dy1","dx2","dy2","l1","l2","dxm","dym","cm","tx","ty","startPoint","control2","control1","endPoint","startWidth","endWidth","px","py","cx","cy","xdiff","ydiff","c1","end","SignatureEventTarget","listener","throttle","wait","previous","storedContext","storedArgs","later","now","remaining","SignaturePad","_b","dataUrl","ratio","xOffset","yOffset","encoderOptions","isIOS","canvasWindow","removeEventListener","pointGroups","clear","only","touch","group","addEventListener","pointGroupOptions","newPointGroup","point","lastPointGroup","lastPoints","lastPoint","isLastPointTooClose","curve","shouldUpdate","rect","_lastPoints","velocity","widthDelta","drawSteps","ttt","uu","uuu","drawCurve","drawDot","basicPoint","includeBackgroundColor","svg","penColor","dotSize","minWidth","maxWidth","circle","wrapper","errorMessage","signatureControls","containerWidth","componentMaxInlineSize","uploadControl","publishSignatureContainer","SignaturePadCore","CameraPermission","permissionButton","scwTemplateString","SmartCameraWeb"],"mappings":"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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAsRpC,KAAK,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iBAWf,KAAK,UAAU;AAAA;AAAA;AAAA,MAG1BrB,GAAO,KAAK,UAAU,CAAC;AAAA;AAAA,sCAES,KAAK,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CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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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","x_google_ignoreList":[11,17,18,19,20,21,22,23,26,27,28,44]}
|