diff --git a/.changeset/biometrics-core-bump.md b/.changeset/biometrics-core-bump.md deleted file mode 100644 index 5f9a9d6f..00000000 --- a/.changeset/biometrics-core-bump.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@microblink/biometrics-core": patch ---- - -Improved face detector performance and liveness frame sampling diff --git a/README.md b/README.md index 11b4be28..76a52f72 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,8 @@ Please follow the documentation at [docs.microblink.com](https://docs.microblink.com)! +> **Windows users:** We recommend Windows Subsystem for Linux (WSL) to install dependencies and run the repository commands. + ## Questions & Issues Have questions, feedback, or running into issues? We're here to help! Contact us at [support@microblink.com](mailto:support@microblink.com). We value your input and are committed to making BlinkID the best solution for your app. @@ -36,11 +38,11 @@ Have questions, feedback, or running into issues? We're here to help! Contact us ### Biometrics -| Package | Version | -| -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | -| [@microblink/biometrics](https://github.com/microblink/web-sdks/tree/main/packages/biometrics) | [![npm](https://img.shields.io/npm/v/@microblink/biometrics.svg)](https://www.npmjs.com/package/@microblink/biometrics) | -| [@microblink/biometrics-core](https://github.com/microblink/web-sdks/tree/main/packages/biometrics-core) | [![npm](https://img.shields.io/npm/v/@microblink/biometrics-core.svg)](https://www.npmjs.com/package/@microblink/biometrics-core) | -| [@microblink/biometrics-ux-manager](https://github.com/microblink/web-sdks/tree/main/packages/biometrics-ux-manager) | [![npm](https://img.shields.io/npm/v/@microblink/biometrics-ux-manager.svg)](https://www.npmjs.com/package/@microblink/biometrics-ux-manager) | +| Package | Version | Changelog | +| -------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------- | +| [@microblink/biometrics](https://github.com/microblink/web-sdks/tree/main/packages/biometrics) | [![npm](https://img.shields.io/npm/v/@microblink/biometrics.svg)](https://www.npmjs.com/package/@microblink/biometrics) | [CHANGELOG](https://github.com/microblink/web-sdks/blob/main/packages/biometrics/CHANGELOG.md) | +| [@microblink/biometrics-core](https://github.com/microblink/web-sdks/tree/main/packages/biometrics-core) | [![npm](https://img.shields.io/npm/v/@microblink/biometrics-core.svg)](https://www.npmjs.com/package/@microblink/biometrics-core) | [CHANGELOG](https://github.com/microblink/web-sdks/blob/main/packages/biometrics-core/CHANGELOG.md) | +| [@microblink/biometrics-ux-manager](https://github.com/microblink/web-sdks/tree/main/packages/biometrics-ux-manager) | [![npm](https://img.shields.io/npm/v/@microblink/biometrics-ux-manager.svg)](https://www.npmjs.com/package/@microblink/biometrics-ux-manager) | [CHANGELOG](https://github.com/microblink/web-sdks/blob/main/packages/biometrics-ux-manager/CHANGELOG.md) | ### Camera Manager diff --git a/apps/examples/blinkid-advanced-setup/src/App.tsx b/apps/examples/blinkid-advanced-setup/src/App.tsx index 757525a4..584922d5 100644 --- a/apps/examples/blinkid-advanced-setup/src/App.tsx +++ b/apps/examples/blinkid-advanced-setup/src/App.tsx @@ -59,6 +59,13 @@ export const App: Component = () => { console.log("creating new session"); + /* Optionally use one of our presets for the scanning session settings + const scanningSettings = await blinkIdCore.buildDocumentVideoSettings({ + scenario: "general", + captureEnvironment: "hand-held", + }); + */ + /* * Initialize the session with the default settings. * For additional configuration look at the BlinkIdSessionSettings type. diff --git a/docs/biometrics/OssDependencies.md b/docs/biometrics/OssDependencies.md index a44331c2..895ad7ef 100644 --- a/docs/biometrics/OssDependencies.md +++ b/docs/biometrics/OssDependencies.md @@ -129,7 +129,7 @@ This report includes: | Package | License | URL | Description | |---------|---------|-----|-------------| | concurrentqueue/1.0.4.mb.1 | BSD-2-Clause,BSL-1.0 | N/A | N/A | -| ConfigEx/27.0.0-biometrics.alpha.1 | MIT | [Link](https://github.com/microblink/config_ex) | N/A | +| ConfigEx/27.0.0-biometrics.alpha.3 | MIT | [Link](https://github.com/microblink/config_ex) | N/A | | core-identity++http_archive+adv-obfuscator | BSD-3-Clause-Clear | [Link](https://github.com/microblink/ADVObfuscator) | N/A | | core-identity++http_archive+kiwaku | BSL-1.0 | [Link](https://github.com/microblink/kiwaku) | N/A | | core-identity++http_archive+micro-ecc | BSD-2-Clause | [Link](https://github.com/microblink/micro-ecc) | N/A | @@ -137,18 +137,18 @@ This report includes: | core-identity++http_archive+utfcpp | BSL-1.0 | [Link](https://github.com/nemtrif/utfcpp) | N/A | | cpuinfo/0.0.0-20260312-7607ca5.mb.1 | BSD-2-Clause | N/A | N/A | | eigen/5.0.1.bcr.2 | MPL-2.0 | N/A | N/A | -| Err/27.0.0-biometrics.alpha.1 | BSL-1.0 | [Link](https://github.com/microblink/err) | N/A | -| Functionoid/27.0.0-biometrics.alpha.1 | BSL-1.0 | [Link](https://github.com/microblink/functionoid) | N/A | -| Hash/27.0.0-biometrics.alpha.1 | Zlib | [Link](https://github.com/stbrumme/hash-library) | N/A | +| Err/27.0.0-biometrics.alpha.3 | BSL-1.0 | [Link](https://github.com/microblink/err) | N/A | +| Functionoid/27.0.0-biometrics.alpha.3 | BSL-1.0 | [Link](https://github.com/microblink/functionoid) | N/A | +| Hash/27.0.0-biometrics.alpha.3 | Zlib | [Link](https://github.com/stbrumme/hash-library) | N/A | | libbacktrace/1.0.0-20250926-7939218.mb.1 | BSD-3-Clause | N/A | N/A | | libdeflate/1.25 | MIT | N/A | N/A | | libjpeg_turbo/3.1.3.bcr.6 | BSD-3-Clause-Modification,IJG,Zlib | N/A | N/A | -| libpng/1.6.58 | libpng-2.0 | N/A | N/A | -| MMap/27.0.0-biometrics.alpha.1 | BSL-1.0 | [Link](https://github.com/microblink/mmap) | N/A | -| nanopb/27.0.0-biometrics.alpha.1 | Zlib | [Link](https://github.com/nanopb/nanopb) | N/A | +| libpng/1.6.58.bcr.1 | libpng-2.0 | N/A | N/A | +| MMap/27.0.0-biometrics.alpha.3 | BSL-1.0 | [Link](https://github.com/microblink/mmap) | N/A | +| nanopb/27.0.0-biometrics.alpha.3 | Zlib | [Link](https://github.com/nanopb/nanopb) | N/A | | opencv/5.0.0.mb.4 | Apache-2.0 | N/A | N/A | | pthreadpool/0.0.0-20250926-560c60d.mb.1 | BSD-2-Clause | N/A | N/A | | rapidjson/1.1.0.mb.20250205 | MIT | N/A | N/A | -| sweater/27.0.0-biometrics.alpha.1 | MIT | [Link](https://github.com/microblink/sweater) | N/A | +| sweater/27.0.0-biometrics.alpha.3 | MIT | [Link](https://github.com/microblink/sweater) | N/A | | xnnpack/20230525.6.0 | BSD-3-Clause | [Link](https://github.com/microblink/XNNPACK) | N/A | | zlib/1.3.2.mb.2 | Zlib | N/A | N/A | diff --git a/packages/biometrics-common/CHANGELOG.md b/packages/biometrics-common/CHANGELOG.md new file mode 100644 index 00000000..1648ff2c --- /dev/null +++ b/packages/biometrics-common/CHANGELOG.md @@ -0,0 +1,9 @@ +# @microblink/biometrics-common + +## 1000.0.2 + +## 1000.0.1 + +## 1000.0.0 + +Added shared face capture types, errors, diagnostics, and utilities for Biometrics packages diff --git a/packages/biometrics-common/package.json b/packages/biometrics-common/package.json index e24c2088..373092e1 100644 --- a/packages/biometrics-common/package.json +++ b/packages/biometrics-common/package.json @@ -1,6 +1,6 @@ { "name": "@microblink/biometrics-common", - "version": "0.1.0", + "version": "1000.0.2", "private": true, "description": "Biometrics Common Utilities", "keywords": [], diff --git a/packages/biometrics-core/CHANGELOG.md b/packages/biometrics-core/CHANGELOG.md index 2e55fd9a..8b73bb7a 100644 --- a/packages/biometrics-core/CHANGELOG.md +++ b/packages/biometrics-core/CHANGELOG.md @@ -1,5 +1,11 @@ # @microblink/biometrics-core +## 1000.0.2 + +### Patch Changes + +- Improved face detector performance and liveness frame sampling + ## 1000.0.1 ### Patch Changes diff --git a/packages/biometrics-core/package.json b/packages/biometrics-core/package.json index 9c242181..3f300027 100644 --- a/packages/biometrics-core/package.json +++ b/packages/biometrics-core/package.json @@ -1,6 +1,6 @@ { "name": "@microblink/biometrics-core", - "version": "1000.0.1", + "version": "1000.0.2", "description": "Biometrics Core SDK", "keywords": [], "license": "ISC", diff --git a/packages/biometrics-ux-manager/CHANGELOG.md b/packages/biometrics-ux-manager/CHANGELOG.md index 81ca4f6e..18370902 100644 --- a/packages/biometrics-ux-manager/CHANGELOG.md +++ b/packages/biometrics-ux-manager/CHANGELOG.md @@ -1,5 +1,14 @@ # @microblink/biometrics-ux-manager +## 1000.0.2 + +### Patch Changes + +- Fixed the face guide shrinking relative to the camera video at low browser zoom levels +- Fixed success animation not scaling properly on large monitors +- Updated dependencies + - @microblink/biometrics-core@1000.0.2 + ## 1000.0.1 ### Patch Changes diff --git a/packages/biometrics-ux-manager/package.json b/packages/biometrics-ux-manager/package.json index d9ea4bad..22ad09d1 100644 --- a/packages/biometrics-ux-manager/package.json +++ b/packages/biometrics-ux-manager/package.json @@ -1,6 +1,6 @@ { "name": "@microblink/biometrics-ux-manager", - "version": "1000.0.1", + "version": "1000.0.2", "description": "Biometrics guided capture UX manager for Web", "keywords": [ "biometrics", diff --git a/packages/biometrics-ux-manager/src/ui/BiometricsFeedbackUi.tsx b/packages/biometrics-ux-manager/src/ui/BiometricsFeedbackUi.tsx index f73e7583..1f4cf6d3 100644 --- a/packages/biometrics-ux-manager/src/ui/BiometricsFeedbackUi.tsx +++ b/packages/biometrics-ux-manager/src/ui/BiometricsFeedbackUi.tsx @@ -203,6 +203,7 @@ export function BiometricsFeedbackUi(props: B frameWidth={state().frameSize.width} frameHeight={state().frameSize.height} mirrorX={state().mirrorX} + isDesktop={props.manager.isDesktop} landmarksVisible={!!state().landmarks} showProgress={showProgress()} captureComplete={isCaptureComplete()} diff --git a/packages/biometrics-ux-manager/src/ui/UiFeedbackOverlay.tsx b/packages/biometrics-ux-manager/src/ui/UiFeedbackOverlay.tsx index 1bb376e6..a181846e 100644 --- a/packages/biometrics-ux-manager/src/ui/UiFeedbackOverlay.tsx +++ b/packages/biometrics-ux-manager/src/ui/UiFeedbackOverlay.tsx @@ -29,6 +29,7 @@ export type UiFeedbackOverlayProps = { frameWidth: number; frameHeight: number; mirrorX: boolean; + isDesktop: boolean; landmarksVisible: boolean; showProgress: boolean; captureComplete: boolean; @@ -97,15 +98,7 @@ function SuccessAnimation(props: { onComplete: () => void; anchor?: FaceAnchor }
@@ -240,6 +233,7 @@ export function UiFeedbackOverlay(props: UiFeedbackOverlayProps) { props.frameWidth, props.frameHeight, props.mirrorX, + props.isDesktop, props.faceCenter, ), ); diff --git a/packages/biometrics-ux-manager/src/ui/locales/ak.ts b/packages/biometrics-ux-manager/src/ui/locales/ak.ts index 6d1b3a2e..455d81a6 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/ak.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/ak.ts @@ -34,10 +34,10 @@ export default { ok: "Ɛyɛ pɛ! Mma wo ho nhinhim", too_blurry: "Mma wo ho nhinhim", too_bright: "Kɔ baabi a hann no nyɛ den pii", - too_close: "Kɔ akyirikyiri", + too_close: "Kɔ akyiri", too_close_to_border: "Fa w'anim hyɛ mfinimfini", too_dark: "Kɔ baabi a hann wɔ hɔ pii", - too_far: "Bɛn ho", + too_far: "Bra bɛn", }, help_button: { aria_label: "Mmoa", diff --git a/packages/biometrics-ux-manager/src/ui/locales/am.ts b/packages/biometrics-ux-manager/src/ui/locales/am.ts index 17ec2289..2f89c1b8 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/am.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/am.ts @@ -34,10 +34,10 @@ export default { ok: "በጣም ጥሩ! ሳይንቀሳቀሱ ይቆዩ", too_blurry: "ሳይንቀሳቀሱ ይቆዩ", too_bright: "ለስላሳ ብርሃን ወዳለበት ቦታ ይሂዱ", - too_close: "ራቅ ብለው ይሂዱ", + too_close: "ወደ ኋላ ይንቀሳቀሱ", too_close_to_border: "ፊትዎን መሃል ያድርጉ", too_dark: "ወደ ብሩህ ቦታ ይሂዱ", - too_far: "ይቅረቡ", + too_far: "ወደ ፊት ይንቀሳቀሱ", }, help_button: { aria_label: "እገዛ", diff --git a/packages/biometrics-ux-manager/src/ui/locales/ar.ts b/packages/biometrics-ux-manager/src/ui/locales/ar.ts index 9896fa01..0b69166c 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/ar.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/ar.ts @@ -34,10 +34,10 @@ export default { ok: "ممتاز! ابقَ ثابتًا", too_blurry: "ابقَ ثابتًا", too_bright: "انتقل إلى مكان بإضاءة أكثر نعومة", - too_close: "انقل إلى موضع أبعد", + too_close: "ابتعد قليلًا", too_close_to_border: "ضع وجهك في الوسط", too_dark: "انتقل إلى مكان أكثر إضاءة", - too_far: "انقل إلى موضع أقرب", + too_far: "اقترب قليلًا", }, help_button: { aria_label: "المساعدة", diff --git a/packages/biometrics-ux-manager/src/ui/locales/bn.ts b/packages/biometrics-ux-manager/src/ui/locales/bn.ts index 94ca0fb2..3563717a 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/bn.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/bn.ts @@ -34,10 +34,10 @@ export default { ok: "ঠিক আছে! স্থির থাকুন", too_blurry: "স্থির থাকুন", too_bright: "নরম আলো আছে এমন জায়গায় যান", - too_close: "আরও দূরে যান", + too_close: "আরও দূরে সরুন", too_close_to_border: "মুখ মাঝখানে রাখুন", too_dark: "আরও উজ্জ্বল জায়গায় যান", - too_far: "আরও কাছে যান", + too_far: "আরও কাছে আসুন", }, help_button: { aria_label: "সহায়তা", diff --git a/packages/biometrics-ux-manager/src/ui/locales/cs.ts b/packages/biometrics-ux-manager/src/ui/locales/cs.ts index 17255239..a1f6e9cf 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/cs.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/cs.ts @@ -34,10 +34,10 @@ export default { ok: "Výborně! Nehýbejte se", too_blurry: "Nehýbejte se", too_bright: "Přejděte na místo s mírnějším osvětlením", - too_close: "Kousek dál", + too_close: "Odstupte dál", too_close_to_border: "Umístěte obličej doprostřed", too_dark: "Přejděte na světlejší místo", - too_far: "Kousek blíž", + too_far: "Přibližte se", }, help_button: { aria_label: "Nápověda", diff --git a/packages/biometrics-ux-manager/src/ui/locales/da.ts b/packages/biometrics-ux-manager/src/ui/locales/da.ts index b71f6139..09149204 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/da.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/da.ts @@ -34,10 +34,10 @@ export default { ok: "Perfekt! Hold dig i ro", too_blurry: "Hold dig i ro", too_bright: "Flyt til et sted med blødere belysning", - too_close: "Flyt længere væk", + too_close: "Flyt dig længere væk", too_close_to_border: "Centrer dit ansigt", too_dark: "Flyt til et lysere sted", - too_far: "Flyt tættere på", + too_far: "Flyt dig tættere på", }, help_button: { aria_label: "Hjælp", diff --git a/packages/biometrics-ux-manager/src/ui/locales/de.ts b/packages/biometrics-ux-manager/src/ui/locales/de.ts index 4dd21bbf..c43fdd9d 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/de.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/de.ts @@ -34,10 +34,10 @@ export default { ok: "Perfekt. Halten Sie still", too_blurry: "Halten Sie still", too_bright: "Gehen Sie an einen Ort mit weniger grellem Licht", - too_close: "Bewegen Sie sich weiter weg", + too_close: "Gehen Sie weiter zurück", too_close_to_border: "Positionieren Sie Ihr Gesicht in der Mitte", too_dark: "Gehen Sie an einen helleren Ort", - too_far: "Kommen Sie näher", + too_far: "Gehen Sie näher heran", }, help_button: { aria_label: "Hilfe", diff --git a/packages/biometrics-ux-manager/src/ui/locales/es.ts b/packages/biometrics-ux-manager/src/ui/locales/es.ts index 733bca92..a7b2a972 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/es.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/es.ts @@ -34,10 +34,10 @@ export default { ok: "Perfecto. No te muevas", too_blurry: "No te muevas", too_bright: "Muévete a un lugar con luz más suave", - too_close: "Alejarse", + too_close: "Aléjate", too_close_to_border: "Centra tu rostro", too_dark: "Muévete a un lugar más iluminado", - too_far: "Acercarse", + too_far: "Acércate", }, help_button: { aria_label: "Ayuda", diff --git a/packages/biometrics-ux-manager/src/ui/locales/es_MX.ts b/packages/biometrics-ux-manager/src/ui/locales/es_MX.ts index a3526f39..27fe3234 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/es_MX.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/es_MX.ts @@ -34,10 +34,10 @@ export default { ok: "Perfecto. No te muevas", too_blurry: "No te muevas", too_bright: "Muévete a un lugar con luz más suave", - too_close: "Alejar más", + too_close: "Aléjate", too_close_to_border: "Centra tu rostro", too_dark: "Muévete a un lugar más iluminado", - too_far: "Acercar más", + too_far: "Acércate", }, help_button: { aria_label: "Ayuda", diff --git a/packages/biometrics-ux-manager/src/ui/locales/fa-latn.ts b/packages/biometrics-ux-manager/src/ui/locales/fa-latn.ts index 685c3a0f..f4fabe8e 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/fa-latn.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/fa-latn.ts @@ -2,79 +2,79 @@ /** Localization strings for fa-latn. Generated by core-i18n. */ export default { - close: "بستن", + close: "Bastan", error_dialogs: { - cancel_btn: "Eskan ra laghv konid", + cancel_btn: "Eskan râ laghv konid", check_internet_connection: { - aria_description: "Be internet vasl shavid, sepas eskan ra dobare anjam dahid.", - title: "Ettesal be internet ra barresi konid", + aria_description: "Be internet vasl shavid, sepas dobare scan konid.", + title: "Ettesal be internet ra barrasi konid", }, network_error: { - aria_description: "Eskan ra dobare anjam dahid. Agar moshkel edame dasht, laghv konid va ba'dan dobare talash konid.", - title: "Khatā-ye shabake", + aria_description: "Dobare scan konid. Agar moshkel edame dasht, laghv konid va ba'dan dobare talash konid.", + title: "Khataye shabake", }, - retry_btn: "دوباره امتحان کنید", + retry_btn: "Dobâre talâsh konid", scanning_not_available: { - aria_description: "In panjare ra ببندید va ba'dan dobare talash konid.", - title: "Eskan dar dastres nist", + aria_description: "In panjare ra bebandid va ba'dan dobare talash konid.", + title: "Esken dar dastres nist", }, scanning_unsuccessful: { - details: "Chehre-ye shomā tashkhis dāde nashod. Lotfan dobare talāsh konid.", - title: "Eskan nāmovaffaq bud", + details: "Chehre-ye shoma tashkhis dade nashod. Lotfan dobare talash konid.", + title: "Esken namovafagh bud", }, }, feedback_messages: { - angled_pitch: "Mostaghim be dorbin negah konid", - angled_roll: "Mostaghim be dorbin negah konid", - angled_yaw: "Mostaghim be dorbin negah konid", - capture_complete_aria: "Movaffaq! Chehre sabt shod", - face_not_found: "Chehre-ye khod ra dar markaz-e safhe gharār dahid", - multiple_faces: "Motma'en shavid faghat yek chehre namāyān ast", - not_still: "Bi-harekat bamanid", - ok: "Āli ast! Bi-harekat bamanid", - too_blurry: "Bi-harekat bamanid", - too_bright: "Be makāni bā nur-e melāyem-tar بروید", - too_close: "دورتر حرکت کن", - too_close_to_border: "Chehre-ye khod ra dar markaz gharār dahid", - too_dark: "Be makāni roshan-tar بروید", - too_far: "نزدیکتر حرکت کن", + angled_pitch: "Mostaghim be dowbin negah konid", + angled_roll: "Mostaghim be dowbin negah konid", + angled_yaw: "Mostaghim be dowbin negah konid", + capture_complete_aria: "Movafagh. Chehre sabt shod", + face_not_found: "Chehre-ye khod ra dar markaz-e safhe gharar dahid", + multiple_faces: "Motmaen shavid faghat yek chehre namayan ast", + not_still: "Bi-harekat bemanid", + ok: "Mogheiyat dorost ast. Bi-harekat bemanid", + too_blurry: "Bi-harekat bemanid", + too_bright: "Be jayi ba nur-e molayem tar beravid", + too_close: "Door tar beravid", + too_close_to_border: "Chehre-ye khod ra dar markaz gharar dahid", + too_dark: "Be jayi roshan tar beravid", + too_far: "Nazdik tar beravid", }, help_button: { - aria_label: "کمک", - tooltip: "به کمک نیاز دارید؟", + aria_label: "Rahnama", + tooltip: "Be rahnama niaz dârid?", }, help_modal: { - aria: "Rāhnamā-ye sabt-e chehre", - back_btn: "برگشت", - done_btn: "انجام شد", + aria: "Rahnamaye sabt-e chehre", + back_btn: "Bazgasht", + done_btn: "Anjam shod", done_btn_aria: "Sabt-e chehre ra edame dahid", - next_btn: "بعدی", + next_btn: "Ba'di", steps: { camera_lens: { - details: "Lenz-e dorbin ra az nazar-e lak ya gard-o-khāk barresi konid. Lenz-e kasif mitavānad aks ra tār konad va sabt-e vāzeh-e chehre-ye shomā ra sakht-tar konad.", - title: "لنز دوربین خود را تمیز کنید", + details: "Lenz-e dorbin ra az nazar-e lak ya gard-o-ghobar barresi konid. Lenz-e kasif mitavanad aks-e shoma ra tar konad va sabt-e vazeh-e chehreye shoma ra baraye sistem دشvar konad.", + title: "Lenze dorbin ra tamiz konid", }, centered_face: { - details: "Mostaghim be dorbin negāh konid va chehre-ye khod ra dar markaz-e safhe gharār dahid. Dastgāh ra sābet negah dārid va tā zamāni ke chehre sabt mishavad, hālat-e chehre-ye bi-taraf ra hefz konid.", - title: "Chehre-ye khod ra dar markaz negah dārid", + details: "Mostaghim be dorbin negah konid va chehreye khod ra dar markaz-e safhe gharar dahid. Dastgah ra sabet negah darid va ta zamani ke chehreye shoma sabt mishavad, halat-e chehreye khonsa ra hefz konid.", + title: "Chehreye khod ra dar markaz negah darid", }, lighting: { - details: "Motma'en shavid ke chehre-ye shomā be-vāzehi dide mishavad. Az nur-e kheili tārīk ya kheili roshan parhiz konid va ru be manba'-e nur bāshid, na posht be ān.", - title: "Nur-e monāseb peydā konid", + details: "Motma'en shavid ke chehreye shoma be-vazeh dide mishavad. Az nur-e kheyli kam ya kheyli shadid parhiz konid va ro be manba-e nur gharar begirid, na posht be an.", + title: "Nur-e monaseb peyda konid", }, obstructions: { - details: "Motma'en shavid ke chizi chehre-ye shomā rā napushānde ast. Aynak-e āftābi, kolāh yā har chizi rā ke cheshmhā yā vizhegihā-ye chehre rā mipushānad, bardārid.", - title: "Mavāne' rā bardārid", + details: "Motma'en shavid hich chizi chehreye shoma ra napushanade ast. Aynak-e aftabi, kolah ya har chizi ra ke cheshmanha ya vizhegihaye chehreye shoma ra mipushanad, bardarid.", + title: "Mavane' ra bardarid", }, }, }, onboarding_modal: { - aria: "Rahnemay-e sabt-e chehre", + aria: "Rahnamaye sabte chehre", cancel_btn: "Laghv", - details: "Bi-harekat bemanid va chehre-ye khod ra dar markaz-e safhe-ye dorbin qarar dahid.", - start_btn: "شروع اسکن", - title: "Mostaghim be dorbin negah konid", + details: "Sabet bamanid va suratetan ra dar markaz-e namayeshgar-e dowbin gharar dahid.", + start_btn: "Eskan râ shoru konid", + title: "Mostaghim be dowbin negah konid", }, - processing: "Dar hal-e pardazesh...", + processing: "Dar hale pardazesh...", sdk_aria: "Chehre-ye khod ra sabt konid", } as const; diff --git a/packages/biometrics-ux-manager/src/ui/locales/fil.ts b/packages/biometrics-ux-manager/src/ui/locales/fil.ts index 8ab6b13a..af156ab4 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/fil.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/fil.ts @@ -34,10 +34,10 @@ export default { ok: "Ayos! Huwag gumalaw", too_blurry: "Huwag gumalaw", too_bright: "Lumipat sa lugar na mas banayad ang ilaw", - too_close: "Ilayo pa", + too_close: "Lumayo pa", too_close_to_border: "Igitna ang iyong mukha", too_dark: "Lumipat sa mas maliwanag na lugar", - too_far: "Ilapit pa", + too_far: "Lumapit pa", }, help_button: { aria_label: "Tulong", diff --git a/packages/biometrics-ux-manager/src/ui/locales/fr_CA.ts b/packages/biometrics-ux-manager/src/ui/locales/fr_CA.ts index 7ad3e1b6..7abb7472 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/fr_CA.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/fr_CA.ts @@ -34,10 +34,10 @@ export default { ok: "Parfait ! Restez immobile", too_blurry: "Restez immobile", too_bright: "Déplacez-vous vers un endroit où l’éclairage est plus doux", - too_close: "Éloignez-vous", + too_close: "Reculez", too_close_to_border: "Centrez votre visage", too_dark: "Déplacez-vous vers un endroit plus éclairé", - too_far: "Rapprochez-vous", + too_far: "Approchez-vous", }, help_button: { aria_label: "Aide", diff --git a/packages/biometrics-ux-manager/src/ui/locales/he.ts b/packages/biometrics-ux-manager/src/ui/locales/he.ts index ce52767e..14f58e6c 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/he.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/he.ts @@ -34,10 +34,10 @@ export default { ok: "מצוין! הישארו ללא תזוזה", too_blurry: "הישארו ללא תזוזה", too_bright: "עברו למקום עם תאורה רכה יותר", - too_close: "התרחק/י", + too_close: "התרחקו", too_close_to_border: "מרכזו את פניכם", too_dark: "עברו למקום מואר יותר", - too_far: "קרב/י", + too_far: "התקרבו", }, help_button: { aria_label: "עזרה", diff --git a/packages/biometrics-ux-manager/src/ui/locales/hi.ts b/packages/biometrics-ux-manager/src/ui/locales/hi.ts index d67d7d6d..e220c6e3 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/hi.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/hi.ts @@ -34,10 +34,10 @@ export default { ok: "बिल्कुल सही! स्थिर रहें", too_blurry: "स्थिर रहें", too_bright: "नरम रोशनी वाली जगह पर जाएँ", - too_close: "दूर जाएँ", + too_close: "थोड़ा दूर जाएँ", too_close_to_border: "अपने चेहरे को बीच में रखें", too_dark: "ज़्यादा रोशनी वाली जगह पर जाएँ", - too_far: "पास आएँ", + too_far: "थोड़ा पास आएँ", }, help_button: { aria_label: "सहायता", diff --git a/packages/biometrics-ux-manager/src/ui/locales/hr.ts b/packages/biometrics-ux-manager/src/ui/locales/hr.ts index 02d544b4..8c6fd767 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/hr.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/hr.ts @@ -34,10 +34,10 @@ export default { ok: "Odlično! Ostanite mirni", too_blurry: "Ostanite mirni", too_bright: "Pomaknite se na slabije osvijetljeno mjesto", - too_close: "Udaljite dokument", + too_close: "Pomaknite se dalje", too_close_to_border: "Centrirajte lice", too_dark: "Pomaknite se na više osvijetljeno mjesto", - too_far: "Približite dokument", + too_far: "Pomaknite se bliže", }, help_button: { aria_label: "Pomoć", diff --git a/packages/biometrics-ux-manager/src/ui/locales/id.ts b/packages/biometrics-ux-manager/src/ui/locales/id.ts index c7ca529f..7396da67 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/id.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/id.ts @@ -34,10 +34,10 @@ export default { ok: "Sempurna! Tetap diam", too_blurry: "Tetap diam", too_bright: "Pindah ke tempat dengan pencahayaan yang lebih lembut", - too_close: "Mohon jauhkan", + too_close: "Menjauh", too_close_to_border: "Posisikan wajah Anda di tengah", too_dark: "Pindah ke tempat yang lebih terang", - too_far: "Mohon dekatkan", + too_far: "Mendekat", }, help_button: { aria_label: "Bantuan", diff --git a/packages/biometrics-ux-manager/src/ui/locales/is.ts b/packages/biometrics-ux-manager/src/ui/locales/is.ts index db5e5acb..2db214e2 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/is.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/is.ts @@ -34,10 +34,10 @@ export default { ok: "Fullkomið! Haltu kyrru fyrir", too_blurry: "Haltu kyrru fyrir", too_bright: "Farðu á stað með mýkri lýsingu", - too_close: "Færið fjær", + too_close: "Færðu þig fjær", too_close_to_border: "Settu andlit þitt í miðjuna", too_dark: "Farðu á bjartari stað", - too_far: "Færið nær", + too_far: "Færðu þig nær", }, help_button: { aria_label: "Hjálp", diff --git a/packages/biometrics-ux-manager/src/ui/locales/it.ts b/packages/biometrics-ux-manager/src/ui/locales/it.ts index 26408041..e5c104cf 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/it.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/it.ts @@ -34,7 +34,7 @@ export default { ok: "Perfetto. Rimani fermo", too_blurry: "Rimani fermo", too_bright: "Spostati in un punto con luce più soffusa", - too_close: "Spostati più lontano", + too_close: "Allontanati", too_close_to_border: "Centra il viso", too_dark: "Spostati in un punto più luminoso", too_far: "Avvicinati", diff --git a/packages/biometrics-ux-manager/src/ui/locales/ja.ts b/packages/biometrics-ux-manager/src/ui/locales/ja.ts index f6cbc374..c1905e7b 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/ja.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/ja.ts @@ -34,10 +34,10 @@ export default { ok: "そのまま動かないでください", too_blurry: "動かないでください", too_bright: "光がやわらかい場所に移動してください", - too_close: "遠くへ移動", + too_close: "もう少し離れてください", too_close_to_border: "顔を中央に合わせてください", too_dark: "明るい場所に移動してください", - too_far: "近くへ移動", + too_far: "もう少し近づいてください", }, help_button: { aria_label: "ヘルプ", diff --git a/packages/biometrics-ux-manager/src/ui/locales/ka_GE.ts b/packages/biometrics-ux-manager/src/ui/locales/ka_GE.ts index 9a42fc47..c361b1cf 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/ka_GE.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/ka_GE.ts @@ -34,7 +34,7 @@ export default { ok: "შესანიშნავია! არ იმოძრაოთ", too_blurry: "არ იმოძრაოთ", too_bright: "გადადით უფრო რბილად განათებულ ადგილას", - too_close: "გადადით მოშორებით", + too_close: "დაშორდით", too_close_to_border: "მოათავსეთ სახე ცენტრში", too_dark: "გადადით უკეთ განათებულ ადგილას", too_far: "მიუახლოვდით", diff --git a/packages/biometrics-ux-manager/src/ui/locales/kk.ts b/packages/biometrics-ux-manager/src/ui/locales/kk.ts index 136ce351..935ff2d1 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/kk.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/kk.ts @@ -34,10 +34,10 @@ export default { ok: "Дұрыс! Қозғалмай тұрыңыз", too_blurry: "Қозғалмай тұрыңыз", too_bright: "Жарығы жұмсағырақ жерге барыңыз", - too_close: "Алыстаңыз", + too_close: "Алысырақ жылжыңыз", too_close_to_border: "Бетіңізді ортаға орналастырыңыз", too_dark: "Жарығырақ жерге барыңыз", - too_far: "Жақындатыңыз", + too_far: "Жақынырақ жылжыңыз", }, help_button: { aria_label: "Анықтама", diff --git a/packages/biometrics-ux-manager/src/ui/locales/km_KH.ts b/packages/biometrics-ux-manager/src/ui/locales/km_KH.ts index c1641432..f7b95ad6 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/km_KH.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/km_KH.ts @@ -34,10 +34,10 @@ export default { ok: "ល្អណាស់! នៅឲ្យនឹង", too_blurry: "នៅឲ្យនឹង", too_bright: "ផ្លាស់ទីទៅកន្លែងដែលមានពន្លឺមិនសូវខ្លាំង", - too_close: "ផ្លាស់ទីទៅឆ្ងាយ", + too_close: "ថយក្រោយបន្តិច", too_close_to_border: "ដាក់មុខរបស់អ្នកនៅកណ្ដាល", too_dark: "ផ្លាស់ទីទៅកន្លែងដែលមានពន្លឺភ្លឺជាងនេះ", - too_far: "ផ្លាស់ទីទៅជិត", + too_far: "ចូលមកជិតបន្តិច", }, help_button: { aria_label: "ជំនួយ", diff --git a/packages/biometrics-ux-manager/src/ui/locales/ko.ts b/packages/biometrics-ux-manager/src/ui/locales/ko.ts index 42507bc4..c2f3dc10 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/ko.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/ko.ts @@ -34,10 +34,10 @@ export default { ok: "좋습니다! 움직이지 마세요", too_blurry: "움직이지 마세요", too_bright: "조명이 더 부드러운 곳으로 이동하세요", - too_close: "더 멀리 이동", + too_close: "더 멀리 이동하세요", too_close_to_border: "얼굴을 중앙에 맞추세요", too_dark: "더 밝은 곳으로 이동하세요", - too_far: "더 가까이 이동", + too_far: "더 가까이 이동하세요", }, help_button: { aria_label: "도움말", diff --git a/packages/biometrics-ux-manager/src/ui/locales/lv.ts b/packages/biometrics-ux-manager/src/ui/locales/lv.ts index 53fc040d..dc4fe787 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/lv.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/lv.ts @@ -34,10 +34,10 @@ export default { ok: "Lieliski! Nekustieties", too_blurry: "Nekustieties", too_bright: "Pārejiet uz vietu ar maigāku apgaismojumu", - too_close: "Pārvietot tālāk", + too_close: "Pavirzieties tālāk no kameras", too_close_to_border: "Novietojiet seju centrā", too_dark: "Pārejiet uz gaišāku vietu", - too_far: "Pārvietot tuvāk", + too_far: "Pavirzieties tuvāk", }, help_button: { aria_label: "Palīdzība", diff --git a/packages/biometrics-ux-manager/src/ui/locales/ms.ts b/packages/biometrics-ux-manager/src/ui/locales/ms.ts index 6583e92c..65ea5097 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/ms.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/ms.ts @@ -34,10 +34,10 @@ export default { ok: "Bagus! Jangan bergerak", too_blurry: "Jangan bergerak", too_bright: "Bergerak ke tempat dengan pencahayaan yang lebih lembut", - too_close: "Jauhkan lagi", + too_close: "Jauhkan wajah daripada kamera", too_close_to_border: "Letakkan wajah anda di tengah", too_dark: "Bergerak ke tempat yang lebih terang", - too_far: "Dekatkan lagi", + too_far: "Dekatkan wajah kepada kamera", }, help_button: { aria_label: "Bantuan", diff --git a/packages/biometrics-ux-manager/src/ui/locales/ne.ts b/packages/biometrics-ux-manager/src/ui/locales/ne.ts index 65cd985c..f63d3e53 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/ne.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/ne.ts @@ -34,10 +34,10 @@ export default { ok: "ठीक छ! नचल्नुहोस्", too_blurry: "नचल्नुहोस्", too_bright: "नरम प्रकाश भएको ठाउँमा जानुहोस्", - too_close: "पर जानुहोस्", + too_close: "अलि टाढा जानुहोस्", too_close_to_border: "आफ्नो अनुहार बीचमा राख्नुहोस्", too_dark: "उज्यालो ठाउँमा जानुहोस्", - too_far: "नजिक जानुहोस्", + too_far: "अलि नजिक आउनुहोस्", }, help_button: { aria_label: "मद्दत", diff --git a/packages/biometrics-ux-manager/src/ui/locales/nl.ts b/packages/biometrics-ux-manager/src/ui/locales/nl.ts index 2e48c406..da3ed329 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/nl.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/nl.ts @@ -34,10 +34,10 @@ export default { ok: "Perfect! Blijf stil", too_blurry: "Blijf stil", too_bright: "Ga naar een plek met zachter licht", - too_close: "Beweeg verder weg", + too_close: "Ga verder weg", too_close_to_border: "Centreer je gezicht", too_dark: "Ga naar een lichtere plek", - too_far: "Beweeg dichterbij", + too_far: "Kom dichterbij", }, help_button: { aria_label: "Help", diff --git a/packages/biometrics-ux-manager/src/ui/locales/no.ts b/packages/biometrics-ux-manager/src/ui/locales/no.ts index 4f58fcdb..48d63388 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/no.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/no.ts @@ -34,10 +34,10 @@ export default { ok: "Perfekt! Hold deg i ro", too_blurry: "Hold deg i ro", too_bright: "Flytt til et sted med mykere lys", - too_close: "Flytt lenger bort", + too_close: "Flytt deg lenger unna", too_close_to_border: "Plasser ansiktet midt på skjermen", too_dark: "Flytt til et lysere sted", - too_far: "Flytt nærmere", + too_far: "Flytt deg nærmere", }, help_button: { aria_label: "Hjelp", diff --git a/packages/biometrics-ux-manager/src/ui/locales/pl.ts b/packages/biometrics-ux-manager/src/ui/locales/pl.ts index 82eb2f16..d09221e5 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/pl.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/pl.ts @@ -34,10 +34,10 @@ export default { ok: "Doskonale! Nie ruszaj się", too_blurry: "Nie ruszaj się", too_bright: "Przejdź w miejsce z łagodniejszym oświetleniem", - too_close: "Przesuń dalej", + too_close: "Odsuń się", too_close_to_border: "Umieść twarz na środku", too_dark: "Przejdź w jaśniejsze miejsce", - too_far: "Przesuń bliżej", + too_far: "Przysuń się", }, help_button: { aria_label: "Pomoc", diff --git a/packages/biometrics-ux-manager/src/ui/locales/ps_AF.ts b/packages/biometrics-ux-manager/src/ui/locales/ps_AF.ts index 38fda140..b373be8b 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/ps_AF.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/ps_AF.ts @@ -34,10 +34,10 @@ export default { ok: "ښه! بې‌حرکته پاتې شئ", too_blurry: "بې‌حرکته پاتې شئ", too_bright: "داسې ځای ته لاړ شئ چې رڼا یې نرمه وي", - too_close: "نور لاړ شه", + too_close: "لرې شئ", too_close_to_border: "خپل مخ په منځ کې ونیسئ", too_dark: "روښانه ځای ته لاړ شئ", - too_far: "نږدې شه", + too_far: "نږدې شئ", }, help_button: { aria_label: "مرسته", diff --git a/packages/biometrics-ux-manager/src/ui/locales/pt.ts b/packages/biometrics-ux-manager/src/ui/locales/pt.ts index 801e04e6..f4a4bbba 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/pt.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/pt.ts @@ -34,10 +34,10 @@ export default { ok: "Perfeito! Mantenha-se imóvel", too_blurry: "Mantenha-se imóvel", too_bright: "Vá para um local com luz mais suave", - too_close: "Afaste", + too_close: "Afaste-se", too_close_to_border: "Centre o rosto", too_dark: "Vá para um local mais iluminado", - too_far: "Aproxime", + too_far: "Aproxime-se", }, help_button: { aria_label: "Ajuda", diff --git a/packages/biometrics-ux-manager/src/ui/locales/pt_BR.ts b/packages/biometrics-ux-manager/src/ui/locales/pt_BR.ts index 62783743..4fea1d5e 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/pt_BR.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/pt_BR.ts @@ -34,10 +34,10 @@ export default { ok: "Perfeito! Fique imóvel", too_blurry: "Fique imóvel", too_bright: "Vá para um local com iluminação mais suave", - too_close: "Afaste", + too_close: "Afaste-se", too_close_to_border: "Centralize seu rosto", too_dark: "Vá para um local mais iluminado", - too_far: "Aproxime", + too_far: "Aproxime-se", }, help_button: { aria_label: "Ajuda", diff --git a/packages/biometrics-ux-manager/src/ui/locales/ro.ts b/packages/biometrics-ux-manager/src/ui/locales/ro.ts index ee0ac212..e5571466 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/ro.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/ro.ts @@ -34,10 +34,10 @@ export default { ok: "Perfect! Nu vă mișcați", too_blurry: "Nu vă mișcați", too_bright: "Mutați-vă într-un loc cu lumină mai blândă", - too_close: "Îndepărtați", + too_close: "Îndepărtați-vă", too_close_to_border: "Centrați-vă fața", too_dark: "Mutați-vă într-un loc mai luminos", - too_far: "Apropiați", + too_far: "Apropiați-vă", }, help_button: { aria_label: "Ajutor", diff --git a/packages/biometrics-ux-manager/src/ui/locales/ru.ts b/packages/biometrics-ux-manager/src/ui/locales/ru.ts index 648940e9..245ff26b 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/ru.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/ru.ts @@ -34,10 +34,10 @@ export default { ok: "Отлично! Не двигайтесь", too_blurry: "Не двигайтесь", too_bright: "Перейдите в место с более мягким освещением", - too_close: "Сместитесь подальше", + too_close: "Отодвиньтесь", too_close_to_border: "Расположите лицо по центру", too_dark: "Перейдите в более освещённое место", - too_far: "Сместитесь поближе", + too_far: "Подойдите ближе", }, help_button: { aria_label: "Помощь", diff --git a/packages/biometrics-ux-manager/src/ui/locales/si.ts b/packages/biometrics-ux-manager/src/ui/locales/si.ts index 9d0f64b9..cc184948 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/si.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/si.ts @@ -34,10 +34,10 @@ export default { ok: "හොඳයි! නිශ්චලව සිටින්න", too_blurry: "නිශ්චලව සිටින්න", too_bright: "මෘදු ආලෝකයක් ඇති ස්ථානයකට යන්න", - too_close: "මදක් ඈත් කරන්න", + too_close: "තව ඈතට යන්න", too_close_to_border: "ඔබේ මුහුණ මැදට ගෙන එන්න", too_dark: "වැඩි ආලෝකයක් ඇති ස්ථානයකට යන්න", - too_far: "මදක් ළං කරන්න", + too_far: "තව ළඟට එන්න", }, help_button: { aria_label: "උදව්", diff --git a/packages/biometrics-ux-manager/src/ui/locales/sk.ts b/packages/biometrics-ux-manager/src/ui/locales/sk.ts index 50b10c64..f1911ebe 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/sk.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/sk.ts @@ -34,10 +34,10 @@ export default { ok: "Správne! Nehýbte sa", too_blurry: "Nehýbte sa", too_bright: "Presuňte sa na miesto s miernejším osvetlením", - too_close: "Posuňte sa ďalej", + too_close: "Vzdiaľte sa", too_close_to_border: "Umiestnite tvár do stredu", too_dark: "Presuňte sa na svetlejšie miesto", - too_far: "Posuňte sa bližšie", + too_far: "Priblížte sa", }, help_button: { aria_label: "Pomoc", diff --git a/packages/biometrics-ux-manager/src/ui/locales/sl.ts b/packages/biometrics-ux-manager/src/ui/locales/sl.ts index 695649e4..3816c474 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/sl.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/sl.ts @@ -34,10 +34,10 @@ export default { ok: "Odlično! Ostanite pri miru", too_blurry: "Ostanite pri miru", too_bright: "Premaknite se na mesto z blažjo osvetlitvijo", - too_close: "Oddaljite", + too_close: "Odmaknite se", too_close_to_border: "Postavite obraz na sredino", too_dark: "Premaknite se na svetlejše mesto", - too_far: "Približajte", + too_far: "Pomaknite se bližje", }, help_button: { aria_label: "Pomoč", diff --git a/packages/biometrics-ux-manager/src/ui/locales/sr.ts b/packages/biometrics-ux-manager/src/ui/locales/sr.ts index 3a632580..6606d198 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/sr.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/sr.ts @@ -6,20 +6,20 @@ export default { error_dialogs: { cancel_btn: "Otkaži skeniranje", check_internet_connection: { - aria_description: "Povežite se na internet, a zatim pokušajte ponovo da skenirate.", + aria_description: "Povežite se sa internetom, a zatim ponovo skenirajte.", title: "Proverite internet vezu", }, network_error: { aria_description: "Pokušajte ponovo da skenirate. Ako se problem nastavi, otkažite i pokušajte ponovo kasnije.", - title: "Greška mreže", + title: "Greška na mreži", }, - retry_btn: "Pokušaj ponovo", + retry_btn: "Pokušajte ponovo", scanning_not_available: { aria_description: "Zatvorite ovaj dijalog i pokušajte ponovo kasnije.", title: "Skeniranje nije dostupno", }, scanning_unsuccessful: { - details: "Nije moguće prepoznati lice. Pokušajte ponovo.", + details: "Nije moguće otkriti vaše lice. Pokušajte ponovo.", title: "Skeniranje nije uspelo", }, }, @@ -29,52 +29,52 @@ export default { angled_yaw: "Gledajte pravo u kameru", capture_complete_aria: "Uspešno! Lice je snimljeno", face_not_found: "Postavite lice na sredinu ekrana", - multiple_faces: "Treba da bude vidljivo samo jedno lice", - not_still: "Mirujte", - ok: "Odlično! Mirujte", - too_blurry: "Mirujte", - too_bright: "Pređite na mesto s blažim osvetljenjem", - too_close: "Udaljite", + multiple_faces: "Neka bude vidljivo samo jedno lice", + not_still: "Ostanite mirni", + ok: "Položaj je dobar. Ostanite mirni", + too_blurry: "Ostanite mirni", + too_bright: "Pomerite se na mesto sa blažim osvetljenjem", + too_close: "Odmaknite se", too_close_to_border: "Postavite lice na sredinu", - too_dark: "Pređite na svetlije mesto", - too_far: "Približite", + too_dark: "Pomerite se na svetlije mesto", + too_far: "Približite se", }, help_button: { - aria_label: "Pomoć", - tooltip: "Potrebna vam je pomoć?", + aria_label: "Pomoć", + tooltip: "Treba vam pomoć?", }, help_modal: { aria: "Pomoć za snimanje lica", back_btn: "Nazad", - done_btn: "Završeno", + done_btn: "Gotovo", done_btn_aria: "Nastavite snimanje lica", - next_btn: "Sledeći", + next_btn: "Dalje", steps: { camera_lens: { details: "Proverite da li na objektivu kamere ima mrlja ili prašine. Prljav objektiv može zamutiti fotografiju i otežati sistemu da jasno snimi vaše lice.", - title: "Očistite sočiva kamere", + title: "Očistite objektiv kamere", }, centered_face: { - details: "Gledajte pravo u kameru i postavite lice na sredinu ekrana. Držite uređaj mirno i zadržite neutralan izraz lica dok se lice ne snimi.", - title: "Držite lice na sredini", + details: "Gledajte pravo u kameru i postavite lice u sredinu ekrana. Držite uređaj mirno i zadržite neutralan izraz lica dok se lice ne snimi.", + title: "Držite lice u sredini", }, lighting: { - details: "Uverite se da vam je lice jasno vidljivo. Izbegavajte veoma tamno ili veoma jako osvetljenje i okrenite se ka izvoru svetlosti, umesto da vam bude iza leđa.", - title: "Pronađite dobro osvetljeno mesto", + details: "Uverite se da je lice jasno vidljivo. Izbegavajte veoma tamno ili veoma jako osvetljenje i okrenite se ka izvoru svetlosti, umesto da bude iza vas.", + title: "Pronađite dobro osvetljenje", }, obstructions: { - details: "Uverite se da vam ništa ne prekriva lice. Skinite naočare za sunce, kape ili bilo šta što zaklanja oči ili crte lica.", - title: "Uklonite sve što prekriva lice", + details: "Uverite se da vam ništa ne prekriva lice. Uklonite naočare za sunce, kape ili bilo šta što zaklanja oči ili crte lica.", + title: "Uklonite prepreke", }, }, }, onboarding_modal: { aria: "Uputstva za snimanje lica", cancel_btn: "Otkaži", - details: "Mirujte i postavite lice u sredinu prikaza kamere.", - start_btn: "Pokreni skeniranje", + details: "Mirujte i postavite lice u sredinu ekrana kamere.", + start_btn: "Započnite skeniranje", title: "Gledajte pravo u kameru", }, processing: "Obrada...", - sdk_aria: "Snimite lice", + sdk_aria: "Snimite svoje lice", } as const; diff --git a/packages/biometrics-ux-manager/src/ui/locales/sv.ts b/packages/biometrics-ux-manager/src/ui/locales/sv.ts index c3086a51..47b02590 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/sv.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/sv.ts @@ -34,10 +34,10 @@ export default { ok: "Perfekt! Håll dig stilla", too_blurry: "Håll dig stilla", too_bright: "Flytta till en plats med mjukare ljus", - too_close: "Flytta längre bort", + too_close: "Flytta dig längre bort", too_close_to_border: "Centrera ansiktet", too_dark: "Flytta till en ljusare plats", - too_far: "Flytta närmare", + too_far: "Flytta dig närmare", }, help_button: { aria_label: "Hjälp", diff --git a/packages/biometrics-ux-manager/src/ui/locales/sw.ts b/packages/biometrics-ux-manager/src/ui/locales/sw.ts index eeffbcef..2b7bc851 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/sw.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/sw.ts @@ -34,10 +34,10 @@ export default { ok: "Sawa kabisa! Usisonge", too_blurry: "Usisonge", too_bright: "Nenda mahali penye mwanga usio mkali sana", - too_close: "Songa mbali", + too_close: "Sogea mbali zaidi", too_close_to_border: "Weka uso wako katikati", too_dark: "Nenda mahali penye mwanga zaidi", - too_far: "Songa karibu", + too_far: "Sogea karibu zaidi", }, help_button: { aria_label: "Usaidizi", diff --git a/packages/biometrics-ux-manager/src/ui/locales/th.ts b/packages/biometrics-ux-manager/src/ui/locales/th.ts index 20491c46..54b51dcc 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/th.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/th.ts @@ -34,10 +34,10 @@ export default { ok: "ตำแหน่งถูกต้อง อยู่นิ่งๆ", too_blurry: "อยู่นิ่งๆ", too_bright: "ย้ายไปยังบริเวณที่มีแสงนุ่มนวลกว่า", - too_close: "เลื่อนออกห่าง", + too_close: "ถอยออก", too_close_to_border: "จัดใบหน้าของคุณให้อยู่กึ่งกลาง", too_dark: "ย้ายไปยังบริเวณที่สว่างกว่า", - too_far: "เลื่อนเข้าใกล้", + too_far: "ขยับเข้าใกล้", }, help_button: { aria_label: "ช่วยเหลือ", diff --git a/packages/biometrics-ux-manager/src/ui/locales/tr.ts b/packages/biometrics-ux-manager/src/ui/locales/tr.ts index 584a0196..d00ce8ac 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/tr.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/tr.ts @@ -34,10 +34,10 @@ export default { ok: "Mükemmel! Hareketsiz durun", too_blurry: "Hareketsiz durun", too_bright: "Daha yumuşak ışıklı bir yere geçin", - too_close: "Uzaklaş", + too_close: "Uzaklaşın", too_close_to_border: "Yüzünüzü ortalayın", too_dark: "Daha aydınlık bir yere geçin", - too_far: "Yaklaş", + too_far: "Yaklaşın", }, help_button: { aria_label: "Yardım", diff --git a/packages/biometrics-ux-manager/src/ui/locales/uk.ts b/packages/biometrics-ux-manager/src/ui/locales/uk.ts index 96a02ced..970d5fc1 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/uk.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/uk.ts @@ -34,10 +34,10 @@ export default { ok: "Чудово! Не рухайтеся", too_blurry: "Не рухайтеся", too_bright: "Перейдіть у місце з м’якшим освітленням", - too_close: "Віддаляйтесь", + too_close: "Відійдіть далі", too_close_to_border: "Розташуйте обличчя по центру", too_dark: "Перейдіть у світліше місце", - too_far: "Наблизьтесь", + too_far: "Підійдіть ближче", }, help_button: { aria_label: "Допомога", diff --git a/packages/biometrics-ux-manager/src/ui/locales/ur.ts b/packages/biometrics-ux-manager/src/ui/locales/ur.ts index 9df33ac1..fba36b4f 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/ur.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/ur.ts @@ -34,10 +34,10 @@ export default { ok: "درست! ساکن رہیں", too_blurry: "ساکن رہیں", too_bright: "نرم روشنی والی جگہ پر جائیں", - too_close: "اور دور جائیں", + too_close: "مزید دور ہٹیں", too_close_to_border: "اپنے چہرے کو درمیان میں رکھیں", too_dark: "زیادہ روشن جگہ پر جائیں", - too_far: "اور قریب جائیں", + too_far: "مزید قریب آئیں", }, help_button: { aria_label: "مدد", diff --git a/packages/biometrics-ux-manager/src/ui/locales/uz.ts b/packages/biometrics-ux-manager/src/ui/locales/uz.ts index 7fa6a684..d45b44d3 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/uz.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/uz.ts @@ -34,10 +34,10 @@ export default { ok: "Ajoyib! Qimirlamang", too_blurry: "Qimirlamang", too_bright: "Yorug‘ligi yumshoqroq joyga o‘ting", - too_close: "Uzoqlashtiring", + too_close: "Orqaroqqa turing", too_close_to_border: "Yuzingizni markazga joylashtiring", too_dark: "Yorug‘roq joyga o‘ting", - too_far: "Yaqinlashtiring", + too_far: "Yaqinroqqa turing", }, help_button: { aria_label: "Yordam", diff --git a/packages/biometrics-ux-manager/src/ui/locales/vi.ts b/packages/biometrics-ux-manager/src/ui/locales/vi.ts index 84937e61..09141b57 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/vi.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/vi.ts @@ -34,10 +34,10 @@ export default { ok: "Hoàn hảo! Giữ yên", too_blurry: "Giữ yên", too_bright: "Di chuyển đến nơi có ánh sáng dịu hơn", - too_close: "Di chuyển xa hơn", + too_close: "Lùi ra xa hơn", too_close_to_border: "Đưa khuôn mặt vào giữa", too_dark: "Di chuyển đến nơi sáng hơn", - too_far: "Di chuyển gần hơn", + too_far: "Lại gần hơn", }, help_button: { aria_label: "Trợ giúp", diff --git a/packages/biometrics-ux-manager/src/ui/locales/yo.ts b/packages/biometrics-ux-manager/src/ui/locales/yo.ts index c4ad62f3..30608432 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/yo.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/yo.ts @@ -34,10 +34,10 @@ export default { ok: "Ó dáa! Dúró jẹ́ẹ́", too_blurry: "Dúró jẹ́ẹ́", too_bright: "Gbe lọ sí ibi tí ìmọ́lẹ̀ kò le gan", - too_close: "Sún jìnnà síi", + too_close: "Sún kúrò ní kamẹ́rà", too_close_to_border: "Gbe ojú rẹ sí àárín", too_dark: "Gbe lọ sí ibi tí ìmọ́lẹ̀ pọ̀ síi", - too_far: "Sún mọ́ síi", + too_far: "Sún mọ́ kamẹ́rà", }, help_button: { aria_label: "Ìrànlọ́wọ́", diff --git a/packages/biometrics-ux-manager/src/ui/locales/zh_CN.ts b/packages/biometrics-ux-manager/src/ui/locales/zh_CN.ts index 2361548d..77c7076d 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/zh_CN.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/zh_CN.ts @@ -34,10 +34,10 @@ export default { ok: "位置合适!请保持不动", too_blurry: "保持不动", too_bright: "移至光线较柔和的位置", - too_close: "离远一些", + too_close: "请离镜头远一些", too_close_to_border: "将面部置于中央", too_dark: "移至光线更充足的位置", - too_far: "靠近一些", + too_far: "请靠近一些", }, help_button: { aria_label: "帮助", diff --git a/packages/biometrics-ux-manager/src/ui/locales/zh_TW.ts b/packages/biometrics-ux-manager/src/ui/locales/zh_TW.ts index 16cda78b..ecf5d66d 100644 --- a/packages/biometrics-ux-manager/src/ui/locales/zh_TW.ts +++ b/packages/biometrics-ux-manager/src/ui/locales/zh_TW.ts @@ -34,10 +34,10 @@ export default { ok: "位置正確!請保持不動", too_blurry: "請保持不動", too_bright: "移至光線較柔和的位置", - too_close: "再離遠一點", + too_close: "請往後移", too_close_to_border: "將臉部置中", too_dark: "移至較明亮的位置", - too_far: "再靠近一點", + too_far: "請靠近", }, help_button: { aria_label: "說明", diff --git a/packages/biometrics-ux-manager/src/ui/videoContainProjection.test.ts b/packages/biometrics-ux-manager/src/ui/videoContainProjection.test.ts index a69fbadc..5a70718e 100644 --- a/packages/biometrics-ux-manager/src/ui/videoContainProjection.test.ts +++ b/packages/biometrics-ux-manager/src/ui/videoContainProjection.test.ts @@ -43,6 +43,7 @@ describe("videoContainProjection", () => { 100, 100, false, + false, ); expect(anchor).toMatchObject({ @@ -52,6 +53,22 @@ describe("videoContainProjection", () => { }); }); + test("scales the face anchor proportionally with the rendered video height", () => { + const faceBounds = { x: 0.25, y: 0.25, width: 0.5, height: 0.5 }; + const small = faceAnchorPercent(faceBounds, { width: 960, height: 540 }, 1920, 1080, false, true); + const large = faceAnchorPercent(faceBounds, { width: 3840, height: 2160 }, 1920, 1080, false, true); + + expect(large?.scale).toBeCloseTo((small?.scale ?? 0) * 4); + }); + + test("keeps the face anchor size independent of the video height when not scaling with video", () => { + const faceBounds = { x: 0.25, y: 0.25, width: 0.5, height: 0.5 }; + const small = faceAnchorPercent(faceBounds, { width: 960, height: 540 }, 1920, 1080, false, false); + const large = faceAnchorPercent(faceBounds, { width: 3840, height: 2160 }, 1920, 1080, false, false); + + expect(large?.scale).toBeCloseTo(small?.scale ?? 0); + }); + test("projects a landmark center inside a pillarboxed video", () => { const anchor = faceAnchorPercent( { x: 0.25, y: 0.25, width: 0.5, height: 0.5 }, @@ -59,6 +76,7 @@ describe("videoContainProjection", () => { 100, 200, false, + false, { x: 0.6, y: 0.4 }, ); @@ -66,7 +84,9 @@ describe("videoContainProjection", () => { expect(anchor?.top).toBe("40%"); }); test("positions an animation from landmarks without a detected box", () => { - expect(faceAnchorPercent(undefined, { width: 100, height: 100 }, 100, 100, false, { x: 0.3, y: 0.4 })).toEqual({ + expect( + faceAnchorPercent(undefined, { width: 100, height: 100 }, 100, 100, false, false, { x: 0.3, y: 0.4 }), + ).toEqual({ left: "30%", top: "40%", scale: 1, diff --git a/packages/biometrics-ux-manager/src/ui/videoContainProjection.ts b/packages/biometrics-ux-manager/src/ui/videoContainProjection.ts index cb2b4296..146e47fc 100644 --- a/packages/biometrics-ux-manager/src/ui/videoContainProjection.ts +++ b/packages/biometrics-ux-manager/src/ui/videoContainProjection.ts @@ -7,6 +7,7 @@ const FACE_SCALE_REFERENCE_HEIGHT = 0.45; const FACE_SCALE_INFLUENCE = 0.15; const FACE_SCALE_MIN = 0.92; const FACE_SCALE_MAX = 1.08; +const FACE_VISUAL_REFERENCE_VIDEO_HEIGHT = 900; export type Size = { width: number; height: number }; export type RenderedVideoRect = Size & { offsetX: number; offsetY: number }; @@ -96,6 +97,7 @@ export function faceAnchorPercent( frameWidth: number, frameHeight: number, mirrorX: boolean, + scaleWithVideo: boolean, faceCenter?: { x: number; y: number }, ): FaceAnchor | undefined { if ((!faceBounds && !faceCenter) || container.width <= 0 || container.height <= 0) { @@ -116,7 +118,8 @@ export function faceAnchorPercent( ? (faceBounds.height * rect.height) / container.height : FACE_SCALE_REFERENCE_HEIGHT; const sizeRatio = faceHeightFraction / FACE_SCALE_REFERENCE_HEIGHT; - const scale = Math.min(FACE_SCALE_MAX, Math.max(FACE_SCALE_MIN, 1 + (sizeRatio - 1) * FACE_SCALE_INFLUENCE)); + const faceScale = Math.min(FACE_SCALE_MAX, Math.max(FACE_SCALE_MIN, 1 + (sizeRatio - 1) * FACE_SCALE_INFLUENCE)); + const displayScale = scaleWithVideo ? rect.height / FACE_VISUAL_REFERENCE_VIDEO_HEIGHT : 1; - return { ...position, scale }; + return { ...position, scale: faceScale * displayScale }; } diff --git a/packages/biometrics-wasm/CHANGELOG.md b/packages/biometrics-wasm/CHANGELOG.md new file mode 100644 index 00000000..079a40ce --- /dev/null +++ b/packages/biometrics-wasm/CHANGELOG.md @@ -0,0 +1,17 @@ +# @microblink/biometrics-wasm + +## 1000.0.2 + +### Patch Changes + +- Improved face detector performance and liveness frame sampling + +## 1000.0.1 + +### Patch Changes + +- Optimized liveness frame format + +## 1000.0.0 + +Added the Biometrics WebAssembly module for on-device face analysis and liveness frame capture diff --git a/packages/biometrics-wasm/dist/build-info.json b/packages/biometrics-wasm/dist/build-info.json index 0a9c1ac6..64083bee 100644 --- a/packages/biometrics-wasm/dist/build-info.json +++ b/packages/biometrics-wasm/dist/build-info.json @@ -1,3 +1,3 @@ { - "emscriptenVersion": "6.0.10" + "emscriptenVersion": "6.0.11" } diff --git a/packages/biometrics-wasm/dist/simd-relaxed-threads/biometrics-wasm.js b/packages/biometrics-wasm/dist/simd-relaxed-threads/biometrics-wasm.js index 1a90b61e..cfd9bbae 100644 --- a/packages/biometrics-wasm/dist/simd-relaxed-threads/biometrics-wasm.js +++ b/packages/biometrics-wasm/dist/simd-relaxed-threads/biometrics-wasm.js @@ -7,8 +7,8 @@ location.pathname.lastIndexOf("/"))+"/");var e=Module.locateFile?Module.locateFi d=c.ib;if(d==1){let e=[];self.onmessage=f=>e.push(f);oa=()=>{postMessage({ib:3});for(let f of e)a(f);self.onmessage=a};for(let f of c.Bc)if(!Module[f]||Module[f].proxy)Module[f]=(...g)=>{postMessage({ib:9,Ac:f,tc:g})},f=="print"&&(ha=Module[f]),f=="printErr"&&(p=Module[f]);v=c.Yc;na();ia=c.Zc;qa();ra();oa()}else if(d==2){sa(c.hb);ta(c.hb,0,0,1,0,0);ua();va(c.hb);pa||(wa(),pa=!0);try{xa(c.Uc,c.Ob)}catch(e){if(e!="unwind")throw e;}}else d==4?pa&&ya():d&&(p(`worker: received unknown command ${d}`),p(c))}catch(e){throw za&& Aa(),e;}}self.onmessage=a}var za=!1;function na(){if(!z?.buffer?.growable){var a=v.buffer;z=new Int8Array(a);B=new Int16Array(a);C=new Uint8Array(a);Ba=new Uint16Array(a);F=new Int32Array(a);G=new Uint32Array(a);Ca=new Float32Array(a);Da=new Float64Array(a);H=new BigInt64Array(a);Ea=new BigUint64Array(a)}}function Fa(){za=!0;h||(Module.noFSInit||Ga||(Ga=!0,Ha("/dev/tty","/dev/stdin"),Ha("/dev/tty","/dev/stdout"),Ha("/dev/tty1","/dev/stderr"),Ia("/dev/stdin",0),Ia("/dev/stdout",1),Ia("/dev/stderr", 1)),Ja.pa(),Ka=!1)}function I(a){Module.onAbort?.(a);a=`Aborted(${a})`;p(a);ja=!0;throw new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");}var La;async function Ma(a){try{var b=await ea(a);return new Uint8Array(b)}catch{}if(fa)a=fa(a);else throw"both async and sync fetching of the wasm failed";return a}async function Na(a,b){try{var c=await Ma(a);return await WebAssembly.instantiate(c,b)}catch(d){p(`failed to asynchronously prepare wasm: ${d}`),I(d)}}async function Oa(a){var b= -La;try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){p(`wasm streaming compile failed: ${d}`),p("falling back to ArrayBuffer instantiation")}return Na(b,a)}function Pa(){Qa={G:Ra,j:Sa,P:Ta,t:Ua,$:Va,u:Wa,ca:Xa,x:Ya,fa:Za,oa:$a,i:ab,da:bb,w:cb,f:db,h:eb,c:fb,ha:gb,ea:hb,n:ib,ga:jb,X:kb,N:lb,r:mb,I:nb,p:ob,W:va,ba:pb,F:qb,e:rb,B:sb,ja:tb,g:ub,v:vb,d:wb,ia:xb,la:yb,ma:zb,J:Ab,b:Bb,ka:Cb,S:Db,T:Eb,R:Fb,K:Gb,U:Hb,A:Ib,Q:Jb,na:Kb,q:Lb,aa:Mb,O:Nb, -k:Ob,z:Pb,M:Qb,Z:Rb,_:Sb,y:Tb,m:Ub,Y:Vb,s:Wb,V:Xb,l:Yb,C:Zb,o:$b,D:ac,E:bc,a:v,H:cc,L:dc};return{a:Qa}}async function qa(){function a(e,f){Ja=e.exports;ec.push(Ja.wa);e=Ja;fc=e.qa;hc=e.ra;J=e.sa;ic=e.ua;wa=e.va;jc=e.xa;ta=e.za;Aa=e.Ba;kc=e.Ca;lc=e.Da;mc=e.Ea;nc=e.Fa;oc=e.Ga;pc=e.Ha;qc=e.Ia;rc=e.Ja;sc=e.Ka;tc=e.La;uc=e.Ma;Module.__ZN2MB2NN28LinearDefragmentingAllocator10Allocation4nullE=e.ta.value;vc=e.ya;ia=f;return Ja}var b=Pa(),c=Module.instantiateWasm;if(c)return new Promise(e=>{c(b,(f,g)=>e(a(f, +La;try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){p(`wasm streaming compile failed: ${d}`),p("falling back to ArrayBuffer instantiation")}return Na(b,a)}function Pa(){Qa={G:Ra,k:Sa,P:Ta,t:Ua,$:Va,u:Wa,ca:Xa,x:Ya,fa:Za,oa:$a,i:ab,da:bb,w:cb,f:db,h:eb,c:fb,ha:gb,ea:hb,n:ib,ga:jb,X:kb,N:lb,r:mb,I:nb,p:ob,W:va,ba:pb,F:qb,e:rb,B:sb,ja:tb,g:ub,v:vb,d:wb,ia:xb,la:yb,ma:zb,J:Ab,b:Bb,ka:Cb,S:Db,T:Eb,R:Fb,K:Gb,U:Hb,A:Ib,Q:Jb,na:Kb,q:Lb,aa:Mb,O:Nb, +j:Ob,z:Pb,M:Qb,Z:Rb,_:Sb,y:Tb,m:Ub,Y:Vb,s:Wb,V:Xb,l:Yb,C:Zb,o:$b,D:ac,E:bc,a:v,H:cc,L:dc};return{a:Qa}}async function qa(){function a(e,f){Ja=e.exports;ec.push(Ja.wa);e=Ja;fc=e.qa;hc=e.ra;J=e.sa;ic=e.ua;wa=e.va;jc=e.xa;ta=e.za;Aa=e.Ba;kc=e.Ca;lc=e.Da;mc=e.Ea;nc=e.Fa;oc=e.Ga;pc=e.Ha;qc=e.Ia;rc=e.Ja;sc=e.Ka;tc=e.La;uc=e.Ma;Module.__ZN2MB2NN28LinearDefragmentingAllocator10Allocation4nullE=e.ta.value;vc=e.ya;ia=f;return Ja}var b=Pa(),c=Module.instantiateWasm;if(c)return new Promise(e=>{c(b,(f,g)=>e(a(f, g)))});if(h){var d=new WebAssembly.Instance(ia,Pa());return a(d,ia)}La??=Module.locateFile?Module.locateFile?Module.locateFile("biometrics-wasm.wasm",da):da+"biometrics-wasm.wasm":(new URL("biometrics-wasm.wasm",import.meta.url)).href;return function(e){return a(e.instance,e.module)}(await Oa(b))}class wc{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var z,xc=a=>{a.terminate();a.onmessage=()=>{}},yc=[],zc=null,Ac=async()=>zc,K=0,Bc=null,Cc=()=>{K|| (zc=new Promise(a=>Bc=a));K++},Hc=a=>{if(Dc.length==0){var b=Ec();Fc(b)}b=Dc.pop();if(!b)return 6;Gc[a.hb]=b;b.hb=a.hb;b.postMessage({ib:2,Uc:a.Tc,Ob:a.Ob,hb:a.hb},a.Wc);return 0},Ic=0,Da,H,L=(a,b,...c)=>{var d=8*c.length*2,e=uc(),f=tc(d),g=f>>3,k;for(k of c)typeof k=="bigint"?((u(),H)[g++]=1n,(u(),H)[g++]=k):((u(),H)[g++]=0n,(u(),Da)[g++]=k);a=lc(a,0,d,f,b);sc(e);return a};function cc(a){if(h)return L(0,1,a);ka=a;if(!(Jc||Ic>0)){for(var b of Object.values(Gc))xc(b);for(b of Dc)xc(b);Dc=[];Gc={}; ja=!0}throw new wc(a);}function Kc(a){if(h)return L(1,0,a);Tb(a)}var Tb=a=>{ka=a;if(h)throw Kc(a),"unwind";cc(a)},Lc=!Atomics.waitAsync||globalThis.navigator?.userAgent&&Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2])<91,F,Dc=[],ec=[],Gc={};function Mc(){for(var a=Math.min(navigator.hardwareConcurrency,16);a--;)Ec();yc.push(async()=>{var b=Nc();Cc("loading-workers");await b;K--;K||Bc()})}var Oc=a=>{var b=a.hb;delete Gc[b];Dc.push(a);a.hb=0;Lc||Atomics.notify((u(),F),b>>2);mc(b)}; @@ -72,17 +72,17 @@ bb:(k,m)=>m,lb:ie(b,c,d!==0),eb:null})},fb=(a,b,c)=>{function d(f){var g=(u(),G) W(a,{name:b,Xa(c){var d=(u(),G)[c>>2];d=ce(c+4,d,!0);J(c);return d},bb(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e=typeof d=="string";if(!(e||ArrayBuffer.isView(d)&&d.BYTES_PER_ELEMENT==1))throw new V("Cannot pass non-string to std::string");var f=e?fd(d):d.length;var g=hc(4+f+1),k=g+4;(u(),G)[g>>2]=f;e?Ve(d,k,f+1):(u(),C).set(d,k);c!==null&&c.push(J,g);return g},lb:Ae,eb(c){J(c)}})},We=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Xe=(a,b,c)=>{a>>=1;b=cd((u(),Ba),a,b/2, c);if(b-a>16&&We)return We.decode((u(),Ba).slice(a,b));for(c="";a{if(c<2)return 0;c-=2;var d=b;c=c>1]=f;b+=2}(u(),B)[b>>1]=0;return b-d},Ze=a=>a.length*2,$e=(a,b,c)=>{var d="";a>>=2;for(var e=0;!(e>=b/4);e++){var f=(u(),G)[a+e];if(!f&&!c)break;d+=String.fromCodePoint(f)}return d},af=(a,b,c=2147483647)=>{if(c<4)return 0;var d=b;c=d+c-4;for(var e= 0;e65535&&e++;(u(),F)[b>>2]=f;b+=4;if(b+4>c)break}(u(),F)[b>>2]=0;return b-d},bf=a=>{for(var b=0,c=0;c65535&&c++,b+=4;return b},ib=(a,b,c)=>{c=U(c);if(b===2){var d=Xe;var e=Ye;var f=Ze}else d=$e,e=af,f=bf;W(a,{name:c,Xa:g=>{var k=(u(),G)[g>>2];k=d(g+4,k*b,!0);J(g);return k},bb:(g,k)=>{if(typeof k!="string")throw new V(`Cannot pass non-string to C++ string type ${c}`);var m=f(k),n=hc(4+m+b);(u(),G)[n>>2]=m/b;e(k,n+4,m+b);g!==null&& -g.push(J,n);return n},lb:Ae,eb(g){J(g)}})},jb=(a,b)=>{b=U(b);W(a,{Jc:!0,name:b,Xa:()=>{},bb:()=>{}})},kb=a=>{var b=!aa;try{Atomics.wait((u(),F),0,0,0),b=!0}catch(c){}ta(a,!ba,1,b,262144,!1);ua()},cf=a=>{if(!(a instanceof wc||a=="unwind"))throw a;},Pc=a=>{if(!ja)try{a()}catch(b){cf(b)}finally{if(!(Jc||Ic>0))try{h?fc()&&nc(ka):Tb(ka)}catch(b){cf(b)}}},va=a=>{Lc||(Atomics.waitAsync((u(),F),a>>2,a).value.then(ya),a+=112,Atomics.store((u(),F),a>>2,1))},ya=()=>{var a=fc();a&&Pc(()=>{va(a);pc()})},lb=(a, -b)=>{a==b?setTimeout(ya):h?postMessage({Yb:a,ib:4}):(a=Gc[a])&&a.postMessage({ib:4})},df=[],mb=(a,b,c,d,e,f,g)=>{df.length=0;c=e>>3;for(d=e+d>>3;ckc(f,g,k));else return a},nb=()=>{Jc=!1;Ic=0},ob=a=>{h?postMessage({ib:6,Vc:a}):Oc(Gc[a])},pb=()=>{},qb=()=>{throw new ma;},gf=[],hf=a=>{var b=gf.length;gf.push(a);return b},jf=(a,b)=>{for(var c=Array(a),d=0;d> -2],g=fe[f];if(void 0===g)throw a=`${`parameter ${d}`} has unknown type ${Je(f)}`,new V(a);c[e]=g}return c},kf={},lf=a=>{var b=kf[a];return b===void 0?U(a):b},rb=(a,b,c)=>{var d;[b,...d]=jf(a,b);var e=b.bb.bind(b),f=d.map(k=>k.lb.bind(k));a--;var g=Array(a);b=`methodCaller<(${d.map(k=>k.name)}) => ${b.name}>`;return hf(pe(b,(k,m,n,l)=>{for(var q=0,w=0;w>2]=X(k));return r}))},tb=a=>{if(!a)return X(globalThis);a=lf(a);return X(globalThis[a])},ub=(a,b)=>{a=Z(a);b=Z(b);return X(a[b])},vb=a=>{a>9&&(Se[a+1]+=1)},wb=(a,b,c,d,e)=>gf[a](b,c,d,e),xb=()=>X([]),yb=a=>X(lf(a)),zb=()=>X({}),Ab=a=>{for(var b=Z(a);b.length;){var c=b.pop();b.pop()(c)}sb(a)},Bb=(a,b,c)=>{a=Z(a);b=Z(b);c=Z(c);a[b]=c},Cb=a=>{a=Z(a);return X(typeof a)},mf=a=>a%4===0&&(a%100!==0||a%400===0),nf=[0,31,60,91,121,152,182,213,244,274,305,335],of=[0,31,59, -90,120,151,181,212,243,273,304,334];function Db(a,b){a=a<-9007199254740992||a>9007199254740992?NaN:Number(a);a=new Date(a*1E3);if(isNaN(a.getTime()))return 1;(u(),F)[b>>2]=a.getSeconds();(u(),F)[b+4>>2]=a.getMinutes();(u(),F)[b+8>>2]=a.getHours();(u(),F)[b+12>>2]=a.getDate();(u(),F)[b+16>>2]=a.getMonth();(u(),F)[b+20>>2]=a.getFullYear()-1900;(u(),F)[b+24>>2]=a.getDay();var c=(mf(a.getFullYear())?nf:of)[a.getMonth()]+a.getDate()-1|0;(u(),F)[b+28>>2]=c;(u(),F)[b+36>>2]=-(a.getTimezoneOffset()*60);c= -(new Date(a.getFullYear(),6,1)).getTimezoneOffset();var d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();a=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0;(u(),F)[b+32>>2]=a;return 0}function Eb(a){var b=(()=>{var c=new Date((u(),F)[a+20>>2]+1900,(u(),F)[a+16>>2],(u(),F)[a+12>>2],(u(),F)[a+8>>2],(u(),F)[a+4>>2],(u(),F)[a>>2],0);if(isNaN(c.getTime()))return-1;var d=(u(),F)[a+32>>2],e=c.getTimezoneOffset(),f=(new Date(c.getFullYear(),6,1)).getTimezoneOffset(),g=(new Date(c.getFullYear(),0,1)).getTimezoneOffset(), -k=Math.min(g,f);if(d<0)d=Number(f!=g&&k==e);else if(d>0!=(k==e)&&(f=Math.max(g,f),c.setTime(c.getTime()+((d>0?k:f)-e)*6E4),isNaN(c.getTime())))return-1;(u(),F)[a+32>>2]=d;(u(),F)[a+24>>2]=c.getDay();d=(mf(c.getFullYear())?nf:of)[c.getMonth()]+c.getDate()-1|0;(u(),F)[a+28>>2]=d;(u(),F)[a>>2]=c.getSeconds();(u(),F)[a+4>>2]=c.getMinutes();(u(),F)[a+8>>2]=c.getHours();(u(),F)[a+12>>2]=c.getDate();(u(),F)[a+16>>2]=c.getMonth();(u(),F)[a+20>>2]=c.getYear();return c.getTime()/1E3})();return BigInt(b)}function Fb(a, -b,c,d,e,f){if(h)return L(7,1,a,b,c,d,e,f);f=f<-9007199254740992||f>9007199254740992?NaN:Number(f);try{var g=R(e);if(c&2){c=f;if((g.node.mode&61440)!==32768)throw new N(43);if(!(d&2)){var k=(u(),C).subarray(a,a+b);g.Na.Ib&&g.Na.Ib(g,k,c,b,d)}}}catch(m){if(typeof T=="undefined"||m.name!=="ErrnoError")throw m;return-m.Ua}}var pf={},Ob=()=>performance.timeOrigin+performance.now();function Gb(a,b){if(h)return L(8,1,a,b);pf[a]&&(clearTimeout(pf[a].id),delete pf[a]);if(!b)return 0;var c=setTimeout(()=>{delete pf[a]; -Pc(()=>oc(a,performance.timeOrigin+performance.now()))},b);pf[a]={id:c,od:b};return 0}var Hb=(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();var g=Math.max(f,e);(u(),G)[a>>2]=g*60;(u(),F)[b>>2]=Number(f!=e);b=k=>{var m=Math.abs(k);return`UTC${k>=0?"-":"+"}${String(Math.floor(m/60)).padStart(2,"0")}${String(m%60).padStart(2,"0")}`};a=b(f);b=b(e);e= -0&&a<=3))return 28;if(a===0)a=Date.now();else if(qf)a=performance.timeOrigin+performance.now();else return 52;a=Math.round(a*1E3*1E3);(u(),H)[c>>3]=BigInt(a);return 0}var rf=[],Kb=(a,b,c)=>{rf.length=0;for(var d;d=(u(),C)[b++];){var e=d!=105;e&=d!=112;c+=e&&c%8?4:0;rf.push(d==112?(u(),G)[c>>2]:d==106?(u(),H)[c>>3]:d==105?(u(),F)[c>>2]:(u(),Da)[c>>3]);c+=e?8:4}return ef[a](...rf)},Lb=()=>{},Mb=()=>{Ic+=1;throw"unwind";},Nb=()=>2147483648,Qb=a=>{var b=(u(),C).length;a>>>=0;if(a<=b||a>2147483648)return!1; -for(var c=1;c<=4;c*=2){a:{var d=(Math.min(2147483648,Math.ceil(Math.max(a,b+2097152/c)/65536)*65536)-v.buffer.byteLength+65535)/65536|0;try{v.grow(d);na();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},sf={},uf=()=>{if(!tf){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in sf)sf[b]===void 0?delete a[b]:a[b]=sf[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`); +g.push(J,n);return n},lb:Ae,eb(g){J(g)}})},jb=(a,b)=>{b=U(b);W(a,{Jc:!0,name:b,Xa:()=>{},bb:()=>{}})},kb=a=>{var b=!aa;try{Atomics.wait((u(),F),0,0,0),b=!0}catch(c){}ta(a,!ba,1,b,262144,!1);ua()},cf=a=>{if(!(a instanceof wc||a=="unwind"))throw a;},Pc=(a,...b)=>{if(!ja)try{a(...b)}catch(c){cf(c)}finally{if(!(Jc||Ic>0))try{h?fc()&&nc(ka):Tb(ka)}catch(c){cf(c)}}},va=a=>{Lc||(Atomics.waitAsync((u(),F),a>>2,a).value.then(ya),a+=112,Atomics.store((u(),F),a>>2,1))},ya=()=>{var a=fc();a&&Pc(()=>{va(a);pc()})}, +lb=(a,b)=>{a==b?setTimeout(ya):h?postMessage({Yb:a,ib:4}):(a=Gc[a])&&a.postMessage({ib:4})},df=[],mb=(a,b,c,d,e,f,g)=>{df.length=0;c=e>>3;for(d=e+d>>3;ckc(f,g,k));else return a},nb=()=>{Jc=!1;Ic=0},ob=a=>{h?postMessage({ib:6,Vc:a}):Oc(Gc[a])},pb=()=>{},qb=()=>{throw new ma;},gf=[],hf=a=>{var b=gf.length;gf.push(a);return b},jf=(a,b)=>{for(var c=Array(a),d=0;d>2],g=fe[f];if(void 0===g)throw a=`${`parameter ${d}`} has unknown type ${Je(f)}`,new V(a);c[e]=g}return c},kf={},lf=a=>{var b=kf[a];return b===void 0?U(a):b},rb=(a,b,c)=>{var d;[b,...d]=jf(a,b);var e=b.bb.bind(b),f=d.map(k=>k.lb.bind(k));a--;var g=Array(a);b=`methodCaller<(${d.map(k=>k.name)}) => ${b.name}>`;return hf(pe(b,(k,m,n,l)=>{for(var q=0,w=0;w>2]=X(k));return r}))},tb=a=>{if(!a)return X(globalThis);a=lf(a);return X(globalThis[a])},ub=(a,b)=>{a=Z(a);b=Z(b);return X(a[b])},vb=a=>{a>9&&(Se[a+1]+=1)},wb=(a,b,c,d,e)=>gf[a](b,c,d,e),xb=()=>X([]),yb=a=>X(lf(a)),zb=()=>X({}),Ab=a=>{for(var b=Z(a);b.length;){var c=b.pop();b.pop()(c)}sb(a)},Bb=(a,b,c)=>{a=Z(a);b=Z(b);c=Z(c);a[b]=c},Cb=a=>{a=Z(a);return X(typeof a)},mf=a=>a%4===0&&(a%100!==0||a%400===0),nf=[0,31,60,91,121,152,182,213,244,274,305, +335],of=[0,31,59,90,120,151,181,212,243,273,304,334];function Db(a,b){a=a<-9007199254740992||a>9007199254740992?NaN:Number(a);a=new Date(a*1E3);if(isNaN(a.getTime()))return 1;(u(),F)[b>>2]=a.getSeconds();(u(),F)[b+4>>2]=a.getMinutes();(u(),F)[b+8>>2]=a.getHours();(u(),F)[b+12>>2]=a.getDate();(u(),F)[b+16>>2]=a.getMonth();(u(),F)[b+20>>2]=a.getFullYear()-1900;(u(),F)[b+24>>2]=a.getDay();var c=(mf(a.getFullYear())?nf:of)[a.getMonth()]+a.getDate()-1|0;(u(),F)[b+28>>2]=c;(u(),F)[b+36>>2]=-(a.getTimezoneOffset()* +60);c=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();var d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();a=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0;(u(),F)[b+32>>2]=a;return 0}function Eb(a){var b=(()=>{var c=new Date((u(),F)[a+20>>2]+1900,(u(),F)[a+16>>2],(u(),F)[a+12>>2],(u(),F)[a+8>>2],(u(),F)[a+4>>2],(u(),F)[a>>2],0);if(isNaN(c.getTime()))return-1;var d=(u(),F)[a+32>>2],e=c.getTimezoneOffset(),f=(new Date(c.getFullYear(),6,1)).getTimezoneOffset(),g=(new Date(c.getFullYear(),0, +1)).getTimezoneOffset(),k=Math.min(g,f);if(d<0)d=Number(f!=g&&k==e);else if(d>0!=(k==e)&&(f=Math.max(g,f),c.setTime(c.getTime()+((d>0?k:f)-e)*6E4),isNaN(c.getTime())))return-1;(u(),F)[a+32>>2]=d;(u(),F)[a+24>>2]=c.getDay();d=(mf(c.getFullYear())?nf:of)[c.getMonth()]+c.getDate()-1|0;(u(),F)[a+28>>2]=d;(u(),F)[a>>2]=c.getSeconds();(u(),F)[a+4>>2]=c.getMinutes();(u(),F)[a+8>>2]=c.getHours();(u(),F)[a+12>>2]=c.getDate();(u(),F)[a+16>>2]=c.getMonth();(u(),F)[a+20>>2]=c.getYear();return c.getTime()/1E3})(); +return BigInt(b)}function Fb(a,b,c,d,e,f){if(h)return L(7,1,a,b,c,d,e,f);f=f<-9007199254740992||f>9007199254740992?NaN:Number(f);try{var g=R(e);if(c&2){c=f;if((g.node.mode&61440)!==32768)throw new N(43);if(!(d&2)){var k=(u(),C).subarray(a,a+b);g.Na.Ib&&g.Na.Ib(g,k,c,b,d)}}}catch(m){if(typeof T=="undefined"||m.name!=="ErrnoError")throw m;return-m.Ua}}var pf={},Ob=()=>performance.timeOrigin+performance.now();function Gb(a,b){if(h)return L(8,1,a,b);pf[a]&&(clearTimeout(pf[a].id),delete pf[a]);if(!b)return 0; +var c=setTimeout(()=>{delete pf[a];Pc(oc,a,performance.timeOrigin+performance.now())},b);pf[a]={id:c,od:b};return 0}var Hb=(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();var g=Math.max(f,e);(u(),G)[a>>2]=g*60;(u(),F)[b>>2]=Number(f!=e);b=k=>{var m=Math.abs(k);return`UTC${k>=0?"-":"+"}${String(Math.floor(m/60)).padStart(2,"0")}${String(m%60).padStart(2,"0")}`};a=b(f);b=b(e);e=0&&a<=3))return 28;if(a===0)a=Date.now();else if(qf)a=performance.timeOrigin+performance.now();else return 52;a=Math.round(a*1E6);(u(),H)[c>>3]=BigInt(a);return 0}var rf=[],Kb=(a,b,c)=>{rf.length=0;for(var d;d=(u(),C)[b++];){var e=d!=105;e&=d!=112;c+=e&&c%8?4:0;rf.push(d==112?(u(),G)[c>>2]:d==106?(u(),H)[c>>3]:d==105?(u(),F)[c>>2]:(u(),Da)[c>>3]);c+=e?8:4}return ef[a](...rf)},Lb=()=>{},Mb=()=>{Ic+=1;throw"unwind";},Nb=()=>2147483648,Qb=a=>{var b=(u(),C).length;a>>>= +0;if(a<=b||a>2147483648)return!1;for(var c=1;c<=4;c*=2){a:{var d=(Math.min(2147483648,Math.ceil(Math.max(a,b+2097152/c)/65536)*65536)-v.buffer.byteLength+65535)/65536|0;try{v.grow(d);na();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},sf={},uf=()=>{if(!tf){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in sf)sf[b]===void 0?delete a[b]:a[b]=sf[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`); tf=c}return tf},tf;function Rb(a,b){if(h)return L(9,1,a,b);var c=0,d=0,e;for(e of uf()){var f=b+c;(u(),G)[a+d>>2]=f;c+=Ve(e,f,Infinity)+1;d+=4}return 0}function Sb(a,b){if(h)return L(10,1,a,b);var c=uf();(u(),G)[a>>2]=c.length;a=0;for(var d of c)a+=fd(d)+1;(u(),G)[b>>2]=a;return 0}function Ub(a){if(h)return L(11,1,a);try{var b=R(a);Ud(b);return 0}catch(c){if(typeof T=="undefined"||c.name!=="ErrnoError")throw c;return c.Ua}}function Vb(a,b){if(h)return L(12,1,a,b);try{var c=R(a),d=c.Ra?2:P(c.mode)? 3:(c.mode&61440)===40960?7:4;(u(),z)[b]=d;(u(),B)[b+2>>1]=0;(u(),H)[b+8>>3]=BigInt(0);(u(),H)[b+16>>3]=BigInt(0);return 0}catch(e){if(typeof T=="undefined"||e.name!=="ErrnoError")throw e;return e.Ua}}function Wb(a,b,c,d){if(h)return L(13,1,a,b,c,d);try{a:{var e=R(a);a=b;for(var f,g=b=0;g>2],m=(u(),G)[a+4>>2];a+=8;try{var n=e,l=(u(),z),q=k,w=m,r=f;if(w<0||r<0)throw new N(28);if(n.nb===null)throw new N(8);if((n.flags&2097155)===1)throw new N(8);if(P(n.node.mode))throw new N(31); if(!n.Na.read)throw new N(28);var t=typeof r!="undefined";if(!t)r=n.position;else if(!n.seekable)throw new N(70);var x=n.Na.read(n,l,q,w,r);t||(n.position+=x);var y=x}catch(A){if(b>0&&A instanceof N&&(A.Ua==6||A.Ua==6))break;throw A;}if(y<0){var D=-1;break a}b+=y;if(y>2]=D;return 0}catch(A){if(typeof T=="undefined"||A.name!=="ErrnoError")throw A;return A.Ua}}function Xb(a,b,c,d){if(h)return L(14,1,a,b,c,d);b=b<-9007199254740992||b>9007199254740992? @@ -94,5 +94,5 @@ le(this);var c=this.Aa;--c.count.value;0===c.count.value&&(c.Wa?c.ab.pb(c.Wa):c. Fe(this.Sa.rb,{Ta:this.Nc,Pa:c,ab:this,Wa:a}):Fe(this.Sa.rb,{Ta:this,Pa:a})}var c=this.zc(a);if(!c)return this.jc(a),null;var d=De(this.Sa,c);if(void 0!==d){if(0===d.Aa.count.value)return d.Aa.Pa=c,d.Aa.Wa=a,d.clone();d=d.clone();this.jc(a);return d}d=this.Sa.yc(c);d=qe[d];if(!d)return b.call(this);d=this.Fb?d.vc:d.pointerType;var e=Be(c,this.Sa,d.Sa);return e===null?b.call(this):this.Gb?Fe(d.Sa.rb,{Ta:d,Pa:e,ab:this,Wa:a}):Fe(d.Sa.rb,{Ta:d,Pa:e})}});h||(v=Module.wasmMemory?Module.wasmMemory:new WebAssembly.Memory({initial:(Module.INITIAL_MEMORY|| 209715200)/65536,maximum:32768,shared:!0}),na());Module.noExitRuntime&&(Jc=Module.noExitRuntime);Module.printErr&&(p=Module.printErr);Module.addRunDependency=Cc;Module.removeRunDependency=()=>{K--;K||Bc()};Module.FS_preloadFile=async(a,b,c,d,e,f,g,k)=>{var m=b?ad(Xc(a+"/"+b)):a;Cc(`cp ${m}`);try{var n=c;typeof c=="string"&&(n=await wd(c));n=await yd(n,m);k?.();f||Zd(a,b,n,d,e,g)}finally{K--,K||Bc()}};Module.FS_unlink=(...a)=>Sd(...a);Module.FS_createPath=(...a)=>Xd(...a);Module.FS_createDevice=(...a)=> $d(...a);Module.FS_createDataFile=(...a)=>Zd(...a);Module.FS_createLazyFile=(...a)=>be(...a);var ff=[cc,Kc,Uc,Ua,Va,Wa,function(a,b,c,d,e,f,g){if(h)return L(6,1,a,b,c,d,e,f,g);e=e<-9007199254740992||e>9007199254740992?NaN:Number(e);try{var k=R(d);if(b&2&&!(c&2)&&(k.flags&2097155)!==2)throw new N(2);if((k.flags&2097155)===1)throw new N(2);if(!k.Na.yb)throw new N(43);if(!a)throw new N(28);var m=k.Na.yb(k,a,e,b,c);var n=m.Pa;(u(),F)[f>>2]=m.bc;(u(),G)[g>>2]=n;return 0}catch(l){if(typeof T=="undefined"|| -l.name!=="ErrnoError")throw l;return-l.Ua}},Fb,Gb,Rb,Sb,Ub,Vb,Wb,Xb,Yb],ef={153443:(a,b)=>{a=Error(ce(a));a.kind="loadError";a.code=b;throw a;}};function Ib(){var a=Module.allowedThreads;return a?a:navigator.hardwareConcurrency}var fc,hc,J,ic,wa,jc,ta,Aa,kc,lc,mc,nc,oc,pc,qc,rc,sc,tc,uc,vc,Qa;function $b(a,b){var c=uc();try{Rc(a)(b)}catch(d){sc(c);if(!(d instanceof la))throw d;qc(1,0)}}function bc(a,b,c,d){var e=uc();try{Rc(a)(b,c,d)}catch(f){sc(e);if(!(f instanceof la))throw f;qc(1,0)}}function ac(a, +l.name!=="ErrnoError")throw l;return-l.Ua}},Fb,Gb,Rb,Sb,Ub,Vb,Wb,Xb,Yb],ef={141411:(a,b)=>{a=Error(ce(a));a.kind="loadError";a.code=b;throw a;}};function Ib(){var a=Module.allowedThreads;return a?a:navigator.hardwareConcurrency}var fc,hc,J,ic,wa,jc,ta,Aa,kc,lc,mc,nc,oc,pc,qc,rc,sc,tc,uc,vc,Qa;function $b(a,b){var c=uc();try{Rc(a)(b)}catch(d){sc(c);if(!(d instanceof la))throw d;qc(1,0)}}function bc(a,b,c,d){var e=uc();try{Rc(a)(b,c,d)}catch(f){sc(e);if(!(f instanceof la))throw f;qc(1,0)}}function ac(a, b,c){var d=uc();try{Rc(a)(b,c)}catch(e){sc(d);if(!(e instanceof la))throw e;qc(1,0)}}function Zb(a,b,c,d){var e=uc();try{return Rc(a)(b,c,d)}catch(f){sc(e);if(!(f instanceof la))throw f;qc(1,0)}}async function ra(){if(h)Fa();else{var a=Module.preRun;a&&(typeof a=="function"&&(a=[a]),yc.push(...a));for(a=yc;a.length>0;)a.shift()(Module);K&&await Ac();ja||Fa()}}var Ja;h||(Ja=await (qa()),await (ra()));;return Module}export default createModule;var isPthread=globalThis.name=="em-pthread";isPthread&&createModule(); diff --git a/packages/biometrics-wasm/dist/simd-relaxed-threads/biometrics-wasm.wasm b/packages/biometrics-wasm/dist/simd-relaxed-threads/biometrics-wasm.wasm index 17d4d406..2f2375a1 100644 Binary files a/packages/biometrics-wasm/dist/simd-relaxed-threads/biometrics-wasm.wasm and b/packages/biometrics-wasm/dist/simd-relaxed-threads/biometrics-wasm.wasm differ diff --git a/packages/biometrics-wasm/dist/simd-relaxed/biometrics-wasm.js b/packages/biometrics-wasm/dist/simd-relaxed/biometrics-wasm.js index f20df966..7b0752d1 100644 --- a/packages/biometrics-wasm/dist/simd-relaxed/biometrics-wasm.js +++ b/packages/biometrics-wasm/dist/simd-relaxed/biometrics-wasm.js @@ -53,34 +53,34 @@ var h=b[1]!==null&&c!==null,n=Ac(b),l=(c=Bc(b))&&!f&&!n;c&&!l&&(n=!0);var k=!b[0 b)=>{for(var c=[],d=0;d>2]);return c},Gc=a=>{a=a.trim();var b=a.indexOf("(");return b===-1?a:a.slice(0,b)},Hc=[],Y=[0,1,,1,null,1,!0,1,!1,1],Ic=a=>{a>9&&0===--Y[a+1]&&(Y[a]=void 0,Hc.push(a))},Z=a=>{if(!a)throw new T(`Cannot use deleted val. handle = ${a}`);return Y[a]},V=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:let b=Hc.pop()||Y.length;Y[b]=a;Y[b+1]=1;return b}},Jc={name:"emscripten::val",za:a=>{var b=Z(a);Ic(a);return b}, Ea:(a,b)=>V(b),La:mc,Ga:null},pa,qa,Kc=(a,b)=>{switch(b){case 4:return function(c){return this.za(pa[c>>2])};case 8:return function(c){return this.za(qa[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Lc=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Mc=(a,b,c)=>{a>>=1;b=Ma(oa,a,b/2,c);if(b-a>16&&Lc)return Lc.decode(oa.subarray(a,b));for(c="";a{if(c<2)return 0;c-=2;var d=b;c=c>1]=a.charCodeAt(e),b+=2;w[b>>1]=0;return b-d},Oc=a=>a.length*2,Pc=(a,b,c)=>{var d="";a>>=2;for(var e=0;!(e>=b/4);e++){var f=D[a+e];if(!f&&!c)break;d+=String.fromCodePoint(f)}return d},Qc=(a,b,c=2147483647)=>{if(c<4)return 0;var d=b;c=d+c-4;for(var e=0;e65535&&e++;A[b>>2]=f;b+=4;if(b+4>c)break}A[b>>2]=0;return b-d},Rc=a=>{for(var b=0,c=0;c65535&&c++,b+=4;return b},Sc=0,Tc=[],Uc=a=>{var b=Tc.length; -Tc.push(a);return b},Vc=(a,b)=>{for(var c=Array(a),d=0;d>2],g=Rb[f];if(void 0===g)throw a=`${`parameter ${d}`} has unknown type ${xc(f)}`,new T(a);c[e]=g}return c},Wc={},Xc=a=>{var b=Wc[a];return b===void 0?S(a):b},Yc=a=>a%4===0&&(a%100!==0||a%400===0),Zc=[0,31,60,91,121,152,182,213,244,274,305,335],$c=[0,31,59,90,120,151,181,212,243,273,304,334],ad={},bd=a=>{if(!(a instanceof wa||a=="unwind"))throw a;},cd=a=>{ja=a;ya||Sc>0||(ia=!0);throw new wa(a);},dd=a=>{if(!ia)try{a()}catch(b){bd(b)}finally{if(!(ya|| -Sc>0))try{ja=a=ja,cd(a)}catch(b){bd(b)}}},ed=[],fd={},hd=()=>{if(!gd){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in fd)fd[b]===void 0?delete a[b]:a[b]=fd[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);gd=c}return gd},gd;O=Array(4096);zb(K,"/");Q("/tmp");Q("/home");Q("/home/web_user");(function(){Q("/dev");Sa(259,{read:()=>0,write:(d,e,f,g)=>g,Ha:()=>0});Cb("/dev/null", -259);Ra(1280,Ua);Ra(1536,Va);Cb("/dev/tty",1280);Cb("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{b||(Ja(a),b=a.byteLength);return a[--b]};Nb("/dev","random",c);Nb("/dev","urandom",c);Q("/dev/shm");Q("/dev/shm/tmp")})();(function(){Q("/proc");var a=Q("/proc/self");Q("/proc/self/fd");zb({Ja(){var b=Za(a,"fd",16895,73);b.pa={Ha:K.pa.Ha};b.qa={Wa(c,d){c=+d;var e=P(c);c={parent:null,Ja:{Jb:"fake"},qa:{Za:()=>e.path},id:c+1};return c.parent=c},wb(){return Array.from(lb.entries()).filter(([,c])=> -c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();(()=>{var a=$b.prototype;Object.assign(a,{isAliasOf:function(c){if(!(this instanceof $b&&c instanceof $b))return!1;var d=this.oa.va.ua,e=this.oa.ra;c.oa=c.oa;var f=c.oa.va.ua;for(c=c.oa.ra;d.Ba;)e=d.$a(e),d=d.Ba;for(;f.Ba;)c=f.$a(c),f=f.Ba;return d===f&&e===c},clone:function(){this.oa.ra||Vb(this);if(this.oa.Ya)return this.oa.count.value+=1,this;var c=Yb,d=Object,e=d.create,f=Object.getPrototypeOf(this),g=this.oa;c=c(e.call(d,f,{oa:{value:{count:g.count, -Ua:g.Ua,Ya:g.Ya,ra:g.ra,va:g.va,xa:g.xa,Da:g.Da}}}));c.oa.count.value+=1;c.oa.Ua=!1;return c},["delete"](){this.oa.ra||Vb(this);if(this.oa.Ua&&!this.oa.Ya)throw new T("Object already scheduled for deletion");Xb(this);var c=this.oa;--c.count.value;0===c.count.value&&(c.xa?c.Da.Pa(c.xa):c.va.ua.Pa(c.ra));this.oa.Ya||(this.oa.xa=void 0,this.oa.ra=void 0)},isDeleted:function(){return!this.oa.ra},deleteLater:function(){this.oa.ra||Vb(this);if(this.oa.Ua&&!this.oa.Ya)throw new T("Object already scheduled for deletion"); -Zb.push(this);this.oa.Ua=!0;return this}});var b=Symbol.dispose;b&&(a[b]=a["delete"])})();Object.assign(tc.prototype,{Ub(a){this.Kb&&(a=this.Kb(a));return a},Fb(a){this.Pa?.(a)},La:mc,za:function(a){function b(){return this.eb?sc(this.ua.Ra,{va:this.fc,ra:c,Da:this,xa:a}):sc(this.ua.Ra,{va:this,ra:a})}var c=this.Ub(a);if(!c)return this.Fb(a),null;var d=qc(this.ua,c);if(void 0!==d){if(0===d.oa.count.value)return d.oa.ra=c,d.oa.xa=a,d.clone();d=d.clone();this.Fb(a);return d}d=this.ua.Tb(c);d=bc[d]; -if(!d)return b.call(this);d=this.cb?d.Qb:d.pointerType;var e=nc(c,this.ua,d.ua);return e===null?b.call(this):this.eb?sc(d.ua.Ra,{va:d,ra:e,Da:this,xa:a}):sc(d.ua.Ra,{va:d,ra:e})}});na=Module.wasmMemory?Module.wasmMemory:new WebAssembly.Memory({initial:(Module.INITIAL_MEMORY||209715200)/65536,maximum:32768});ma();Module.noExitRuntime&&(ya=Module.noExitRuntime);Module.printErr&&(m=Module.printErr);Module.addRunDependency=gb;Module.removeRunDependency=()=>{N--;N||fb()};Module.FS_preloadFile=async(a, -b,c,d,e,f,g,h)=>{var n=b?Ka(Ga(a+"/"+b)):a;gb(`cp ${n}`);try{var l=c;typeof c=="string"&&(l=await cb(c));l=await ib(l,n);h?.();f||Mb(a,b,l,d,e,g)}finally{N--,N||fb()}};Module.FS_unlink=(...a)=>Eb(...a);Module.FS_createPath=(...a)=>Kb(...a);Module.FS_createDevice=(...a)=>Nb(...a);Module.FS_createDataFile=(...a)=>Mb(...a);Module.FS_createLazyFile=(...a)=>Pb(...a);var jd={152477:(a,b)=>{a=Error(a?H(z,a):"");a.kind="loadError";a.code=b;throw a;}},kd,X,wc,Wa,ld,md,Ec,Dc,Aa,rd={K:(a,b)=>Ba(a)(b),m:(a,b, -c)=>{(new Ca(a)).init(b,c);Da++;F()},s:function(a,b,c){Ea=c;try{var d=P(a);switch(b){case 0:var e=G();if(e<0)break;for(;lb[e];)e++;return xb(d,e).Na;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=G(),d.flags=d.flags&-289793|e&289792,0;case 12:return e=G(),w[e+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(f){if(typeof R=="undefined"||f.name!=="ErrnoError")throw f;return-f.ya}},V:function(a,b,c){Ea=c;try{var d=P(a);switch(b){case 21509:return d.ta?0:-59;case 21505:if(!d.ta)return-59; -if(d.ta.Ka.Xb){a=[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];var e=G();A[e>>2]=25856;A[e+4>>2]=5;A[e+8>>2]=191;A[e+12>>2]=35387;for(var f=0;f<32;f++)u[e+f+17]=a[f]||0}return 0;case 21510:case 21511:case 21512:return d.ta?0:-59;case 21506:case 21507:case 21508:if(!d.ta)return-59;if(d.ta.Ka.Yb)for(e=G(),a=[],f=0;f<32;f++)a.push(u[e+f+17]);return 0;case 21519:if(!d.ta)return-59;e=G();return A[e>>2]=0;case 21520:return d.ta?-28:-59;case 21537:case 21531:e=G();if(!d.pa.Wb)throw new J(59); -return d.pa.Wb(d,b,e);case 21523:if(!d.ta)return-59;d.ta.Ka.Zb&&(f=[24,80],e=G(),w[e>>1]=f[0],w[e+2>>1]=f[1]);return 0;case 21524:return d.ta?0:-59;case 21515:return d.ta?0:-59;default:return-28}}catch(g){if(typeof R=="undefined"||g.name!=="ErrnoError")throw g;return-g.ya}},t:function(a,b,c,d){Ea=d;try{b=b?H(z,b):"";var e=b;if(e.charAt(0)==="/")b=e;else{var f=a===-100?"/":P(a).path;if(e.length==0)throw new J(44);b=f+"/"+e}var g=d?G():0;c&64&&(g&=-19);return Gb(b,c,g).Na}catch(h){if(typeof R=="undefined"|| -h.name!=="ErrnoError")throw h;return-h.ya}},W:()=>F(""),v:(a,b,c,d,e)=>{b=S(b);d=d===0n;var f=g=>g;if(d){let g=c*8;f=h=>BigInt.asUintN(g,h);e=f(e)}U(a,{name:b,za:f,Ea:(g,h)=>{typeof h=="number"&&(h=BigInt(h));return h},La:Ub(b,c,!d),Ga:null})},Z:(a,b,c,d)=>{b=S(b);U(a,{name:b,za:function(e){return!!e},Ea:function(e,f){return f?c:d},La:function(e){return this.za(z[e])},Ga:null})},ca:(a,b,c,d,e,f,g,h,n,l,k,p,r)=>{k=S(k);f=W(e,f);h&&=W(g,h);l&&=W(n,l);r=W(p,r);var q=ec(k);dc(q,function(){yc(`Cannot construct ${k} due to unbound types`, -[d])});zc([a,b,c],d?[d]:[],t=>{t=t[0];if(d){var v=t.ua;var x=v.Ra}else x=$b.prototype;t=ac(k,function(...C){if(Object.getPrototypeOf(this)!==B)throw new T(`Use 'new' to construct ${k}`);if(void 0===y.Eb)throw new T(`${k} has no accessible constructor`);var pc=y.Eb[C.length];if(void 0===pc)throw new T(`Tried to invoke ctor of ${k} with invalid number of parameters (${C.length}) - expected (${Object.keys(y.Eb).toString()}) parameters instead!`);return pc.apply(this,C)});var B=Object.create(x,{constructor:{value:t}}); +Tc.push(a);return b},Vc=(a,b)=>{for(var c=Array(a),d=0;d>2],g=Rb[f];if(void 0===g)throw a=`${`parameter ${d}`} has unknown type ${xc(f)}`,new T(a);c[e]=g}return c},Wc={},Xc=a=>{var b=Wc[a];return b===void 0?S(a):b},Yc=a=>a%4===0&&(a%100!==0||a%400===0),Zc=[0,31,60,91,121,152,182,213,244,274,305,335],$c=[0,31,59,90,120,151,181,212,243,273,304,334],ad={},bd=a=>{if(!(a instanceof wa||a=="unwind"))throw a;},cd=a=>{ja=a;ya||Sc>0||(ia=!0);throw new wa(a);},dd=[],ed={},gd=()=>{if(!fd){var a= +{USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in ed)ed[b]===void 0?delete a[b]:a[b]=ed[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);fd=c}return fd},fd;O=Array(4096);zb(K,"/");Q("/tmp");Q("/home");Q("/home/web_user");(function(){Q("/dev");Sa(259,{read:()=>0,write:(d,e,f,g)=>g,Ha:()=>0});Cb("/dev/null",259);Ra(1280,Ua);Ra(1536,Va);Cb("/dev/tty",1280);Cb("/dev/tty1",1536);var a= +new Uint8Array(1024),b=0,c=()=>{b||(Ja(a),b=a.byteLength);return a[--b]};Nb("/dev","random",c);Nb("/dev","urandom",c);Q("/dev/shm");Q("/dev/shm/tmp")})();(function(){Q("/proc");var a=Q("/proc/self");Q("/proc/self/fd");zb({Ja(){var b=Za(a,"fd",16895,73);b.pa={Ha:K.pa.Ha};b.qa={Wa(c,d){c=+d;var e=P(c);c={parent:null,Ja:{Jb:"fake"},qa:{Za:()=>e.path},id:c+1};return c.parent=c},wb(){return Array.from(lb.entries()).filter(([,c])=>c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();(()=>{var a= +$b.prototype;Object.assign(a,{isAliasOf:function(c){if(!(this instanceof $b&&c instanceof $b))return!1;var d=this.oa.va.ua,e=this.oa.ra;c.oa=c.oa;var f=c.oa.va.ua;for(c=c.oa.ra;d.Ba;)e=d.$a(e),d=d.Ba;for(;f.Ba;)c=f.$a(c),f=f.Ba;return d===f&&e===c},clone:function(){this.oa.ra||Vb(this);if(this.oa.Ya)return this.oa.count.value+=1,this;var c=Yb,d=Object,e=d.create,f=Object.getPrototypeOf(this),g=this.oa;c=c(e.call(d,f,{oa:{value:{count:g.count,Ua:g.Ua,Ya:g.Ya,ra:g.ra,va:g.va,xa:g.xa,Da:g.Da}}}));c.oa.count.value+= +1;c.oa.Ua=!1;return c},["delete"](){this.oa.ra||Vb(this);if(this.oa.Ua&&!this.oa.Ya)throw new T("Object already scheduled for deletion");Xb(this);var c=this.oa;--c.count.value;0===c.count.value&&(c.xa?c.Da.Pa(c.xa):c.va.ua.Pa(c.ra));this.oa.Ya||(this.oa.xa=void 0,this.oa.ra=void 0)},isDeleted:function(){return!this.oa.ra},deleteLater:function(){this.oa.ra||Vb(this);if(this.oa.Ua&&!this.oa.Ya)throw new T("Object already scheduled for deletion");Zb.push(this);this.oa.Ua=!0;return this}});var b=Symbol.dispose; +b&&(a[b]=a["delete"])})();Object.assign(tc.prototype,{Ub(a){this.Kb&&(a=this.Kb(a));return a},Fb(a){this.Pa?.(a)},La:mc,za:function(a){function b(){return this.eb?sc(this.ua.Ra,{va:this.fc,ra:c,Da:this,xa:a}):sc(this.ua.Ra,{va:this,ra:a})}var c=this.Ub(a);if(!c)return this.Fb(a),null;var d=qc(this.ua,c);if(void 0!==d){if(0===d.oa.count.value)return d.oa.ra=c,d.oa.xa=a,d.clone();d=d.clone();this.Fb(a);return d}d=this.ua.Tb(c);d=bc[d];if(!d)return b.call(this);d=this.cb?d.Qb:d.pointerType;var e=nc(c, +this.ua,d.ua);return e===null?b.call(this):this.eb?sc(d.ua.Ra,{va:d,ra:e,Da:this,xa:a}):sc(d.ua.Ra,{va:d,ra:e})}});na=Module.wasmMemory?Module.wasmMemory:new WebAssembly.Memory({initial:(Module.INITIAL_MEMORY||209715200)/65536,maximum:32768});ma();Module.noExitRuntime&&(ya=Module.noExitRuntime);Module.printErr&&(m=Module.printErr);Module.addRunDependency=gb;Module.removeRunDependency=()=>{N--;N||fb()};Module.FS_preloadFile=async(a,b,c,d,e,f,g,h)=>{var n=b?Ka(Ga(a+"/"+b)):a;gb(`cp ${n}`);try{var l= +c;typeof c=="string"&&(l=await cb(c));l=await ib(l,n);h?.();f||Mb(a,b,l,d,e,g)}finally{N--,N||fb()}};Module.FS_unlink=(...a)=>Eb(...a);Module.FS_createPath=(...a)=>Kb(...a);Module.FS_createDevice=(...a)=>Nb(...a);Module.FS_createDataFile=(...a)=>Mb(...a);Module.FS_createLazyFile=(...a)=>Pb(...a);var hd={140461:(a,b)=>{a=Error(a?H(z,a):"");a.kind="loadError";a.code=b;throw a;}},jd,X,wc,Wa,kd,ld,Ec,Dc,Aa,qd={K:(a,b)=>Ba(a)(b),m:(a,b,c)=>{(new Ca(a)).init(b,c);Da++;F()},s:function(a,b,c){Ea=c;try{var d= +P(a);switch(b){case 0:var e=G();if(e<0)break;for(;lb[e];)e++;return xb(d,e).Na;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=G(),d.flags=d.flags&-289793|e&289792,0;case 12:return e=G(),w[e+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(f){if(typeof R=="undefined"||f.name!=="ErrnoError")throw f;return-f.ya}},V:function(a,b,c){Ea=c;try{var d=P(a);switch(b){case 21509:return d.ta?0:-59;case 21505:if(!d.ta)return-59;if(d.ta.Ka.Xb){a=[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0];var e=G();A[e>>2]=25856;A[e+4>>2]=5;A[e+8>>2]=191;A[e+12>>2]=35387;for(var f=0;f<32;f++)u[e+f+17]=a[f]||0}return 0;case 21510:case 21511:case 21512:return d.ta?0:-59;case 21506:case 21507:case 21508:if(!d.ta)return-59;if(d.ta.Ka.Yb)for(e=G(),a=[],f=0;f<32;f++)a.push(u[e+f+17]);return 0;case 21519:if(!d.ta)return-59;e=G();return A[e>>2]=0;case 21520:return d.ta?-28:-59;case 21537:case 21531:e=G();if(!d.pa.Wb)throw new J(59);return d.pa.Wb(d,b,e);case 21523:if(!d.ta)return-59; +d.ta.Ka.Zb&&(f=[24,80],e=G(),w[e>>1]=f[0],w[e+2>>1]=f[1]);return 0;case 21524:return d.ta?0:-59;case 21515:return d.ta?0:-59;default:return-28}}catch(g){if(typeof R=="undefined"||g.name!=="ErrnoError")throw g;return-g.ya}},t:function(a,b,c,d){Ea=d;try{b=b?H(z,b):"";var e=b;if(e.charAt(0)==="/")b=e;else{var f=a===-100?"/":P(a).path;if(e.length==0)throw new J(44);b=f+"/"+e}var g=d?G():0;c&64&&(g&=-19);return Gb(b,c,g).Na}catch(h){if(typeof R=="undefined"||h.name!=="ErrnoError")throw h;return-h.ya}}, +W:()=>F(""),v:(a,b,c,d,e)=>{b=S(b);d=d===0n;var f=g=>g;if(d){let g=c*8;f=h=>BigInt.asUintN(g,h);e=f(e)}U(a,{name:b,za:f,Ea:(g,h)=>{typeof h=="number"&&(h=BigInt(h));return h},La:Ub(b,c,!d),Ga:null})},Z:(a,b,c,d)=>{b=S(b);U(a,{name:b,za:function(e){return!!e},Ea:function(e,f){return f?c:d},La:function(e){return this.za(z[e])},Ga:null})},ca:(a,b,c,d,e,f,g,h,n,l,k,p,r)=>{k=S(k);f=W(e,f);h&&=W(g,h);l&&=W(n,l);r=W(p,r);var q=ec(k);dc(q,function(){yc(`Cannot construct ${k} due to unbound types`,[d])}); +zc([a,b,c],d?[d]:[],t=>{t=t[0];if(d){var v=t.ua;var x=v.Ra}else x=$b.prototype;t=ac(k,function(...C){if(Object.getPrototypeOf(this)!==B)throw new T(`Use 'new' to construct ${k}`);if(void 0===y.Eb)throw new T(`${k} has no accessible constructor`);var pc=y.Eb[C.length];if(void 0===pc)throw new T(`Tried to invoke ctor of ${k} with invalid number of parameters (${C.length}) - expected (${Object.keys(y.Eb).toString()}) parameters instead!`);return pc.apply(this,C)});var B=Object.create(x,{constructor:{value:t}}); t.prototype=B;var y=new fc(k,t,B,r,v,f,h,l);if(y.Ba){var L;(L=y.Ba).xb??(L.xb=[]);y.Ba.xb.push(y)}v=new tc(k,y,!0,!1,!1);L=new tc(k+"*",y,!1,!1,!1);x=new tc(k+" const*",y,!1,!0,!1);bc[a]={pointerType:L,Qb:x};uc(q,t);return[v,L,x]})},l:(a,b,c,d,e,f,g,h,n)=>{var l=Fc(c,d);b=S(b);b=Gc(b);f=W(e,f);zc([],[a],k=>{function p(){yc(`Cannot call ${r} due to unbound types`,l)}k=k[0];var r=`${k.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&k.ua.hc.push(b);var q=k.ua.Ra,t=q[b];void 0===t||void 0=== t.wa&&t.className!==k.name&&t.Ta===c-2?(p.Ta=c-2,p.className=k.name,q[b]=p):(cc(q,b,r),q[b].wa[c-2]=p);zc([],l,v=>{v=Cc(r,v,k,f,g,n);void 0===q[b].wa?(v.Ta=c-2,q[b]=v):q[b].wa[c-2]=v;return[]});return[]})},X:a=>U(a,Jc),u:(a,b,c)=>{b=S(b);U(a,{name:b,za:d=>d,Ea:(d,e)=>e,La:Kc(b,c),Ga:null})},i:(a,b,c,d,e,f,g)=>{var h=Fc(b,c);a=S(a);a=Gc(a);e=W(d,e);dc(a,function(){yc(`Cannot call ${a} due to unbound types`,h)},b-1);zc([],h,n=>{uc(a,Cc(a,[n[0],null].concat(n.slice(1)),null,e,f,g),b-1);return[]})},k:(a, b,c,d,e)=>{b=S(b);var f=h=>h;if(d===0){var g=32-8*c;f=h=>h<>>g;e=f(e)}U(a,{name:b,za:f,Ea:(h,n)=>n,La:Ub(b,c,d!==0),Ga:null})},e:(a,b,c)=>{function d(f){return new e(u.buffer,D[f+4>>2],D[f>>2])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=S(c);U(a,{name:c,za:d,La:d},{Vb:!0})},ba:(a,b,c,d,e,f,g,h,n,l,k,p)=>{c=S(c);f=W(e,f);h=W(g,h);l=W(n,l);p=W(k,p);zc([a],[b],r=>{r=r[0];return[new tc(c,r.ua,!1,!1,!0,r,d,f, -h,l,p)]})},Y:(a,b)=>{b=S(b);U(a,{name:b,za(c){var d=(d=c+4)?H(z,d,D[c>>2],!0):"";X(c);return d},Ea(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e=typeof d=="string";if(!(e||ArrayBuffer.isView(d)&&d.BYTES_PER_ELEMENT==1))throw new T("Cannot pass non-string to std::string");var f=e?Oa(d):d.length;var g=kd(4+f+1),h=g+4;D[g>>2]=f;e?I(d,z,h,f+1):z.set(d,h);c!==null&&c.push(X,g);return g},La:mc,Ga(c){X(c)}})},p:(a,b,c)=>{c=S(c);if(b===2){var d=Mc;var e=Nc;var f=Oc}else d=Pc,e=Qc,f=Rc;U(a,{name:c, -za:g=>{var h=d(g+4,D[g>>2]*b,!0);X(g);return h},Ea:(g,h)=>{if(typeof h!="string")throw new T(`Cannot pass non-string to C++ string type ${c}`);var n=f(h),l=kd(4+n+b);D[l>>2]=n/b;e(h,l+4,n+b);g!==null&&g.push(X,l);return l},La:mc,Ga(g){X(g)}})},_:(a,b)=>{b=S(b);U(a,{bc:!0,name:b,za:()=>{},Ea:()=>{}})},M:()=>{ya=!1;Sc=0},D:()=>{throw new la;},g:(a,b,c)=>{var d;[b,...d]=Vc(a,b);var e=b.Ea.bind(b),f=d.map(h=>h.La.bind(h));a--;var g=Array(a);b=`methodCaller<(${d.map(h=>h.name)}) => ${b.name}>`;return Uc(ac(b, +h,l,p)]})},Y:(a,b)=>{b=S(b);U(a,{name:b,za(c){var d=(d=c+4)?H(z,d,D[c>>2],!0):"";X(c);return d},Ea(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e=typeof d=="string";if(!(e||ArrayBuffer.isView(d)&&d.BYTES_PER_ELEMENT==1))throw new T("Cannot pass non-string to std::string");var f=e?Oa(d):d.length;var g=jd(4+f+1),h=g+4;D[g>>2]=f;e?I(d,z,h,f+1):z.set(d,h);c!==null&&c.push(X,g);return g},La:mc,Ga(c){X(c)}})},p:(a,b,c)=>{c=S(c);if(b===2){var d=Mc;var e=Nc;var f=Oc}else d=Pc,e=Qc,f=Rc;U(a,{name:c, +za:g=>{var h=d(g+4,D[g>>2]*b,!0);X(g);return h},Ea:(g,h)=>{if(typeof h!="string")throw new T(`Cannot pass non-string to C++ string type ${c}`);var n=f(h),l=jd(4+n+b);D[l>>2]=n/b;e(h,l+4,n+b);g!==null&&g.push(X,l);return l},La:mc,Ga(g){X(g)}})},_:(a,b)=>{b=S(b);U(a,{bc:!0,name:b,za:()=>{},Ea:()=>{}})},M:()=>{ya=!1;Sc=0},D:()=>{throw new la;},g:(a,b,c)=>{var d;[b,...d]=Vc(a,b);var e=b.Ea.bind(b),f=d.map(h=>h.La.bind(h));a--;var g=Array(a);b=`methodCaller<(${d.map(h=>h.name)}) => ${b.name}>`;return Uc(ac(b, (h,n,l,k)=>{for(var p=0,r=0;r>2]=V(h));return q}))},z:Ic,h:a=>{if(!a)return V(globalThis);a=Xc(a);return V(globalThis[a])},j:(a,b)=>{a=Z(a);b=Z(b);return V(a[b])},w:a=>{a>9&&(Y[a+1]+=1)},f:(a,b,c,d,e)=>Tc[a](b,c,d,e),x:()=>V([]),b:a=>V(Xc(a)),d:()=>V({}),F:a=>{for(var b=Z(a);b.length;){var c=b.pop();b.pop()(c)}Ic(a)}, c:(a,b,c)=>{a=Z(a);b=Z(b);c=Z(c);a[b]=c},aa:a=>{a=Z(a);return V(typeof a)},O:function(a,b){a=a<-9007199254740992||a>9007199254740992?NaN:Number(a);a=new Date(a*1E3);if(isNaN(a.getTime()))return 1;A[b>>2]=a.getSeconds();A[b+4>>2]=a.getMinutes();A[b+8>>2]=a.getHours();A[b+12>>2]=a.getDate();A[b+16>>2]=a.getMonth();A[b+20>>2]=a.getFullYear()-1900;A[b+24>>2]=a.getDay();A[b+28>>2]=(Yc(a.getFullYear())?Zc:$c)[a.getMonth()]+a.getDate()-1|0;A[b+36>>2]=-(a.getTimezoneOffset()*60);var c=(new Date(a.getFullYear(), 6,1)).getTimezoneOffset(),d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();A[b+32>>2]=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0;return 0},P:function(a){var b=(()=>{var c=new Date(A[a+20>>2]+1900,A[a+16>>2],A[a+12>>2],A[a+8>>2],A[a+4>>2],A[a>>2],0);if(isNaN(c.getTime()))return-1;var d=A[a+32>>2],e=c.getTimezoneOffset(),f=(new Date(c.getFullYear(),6,1)).getTimezoneOffset(),g=(new Date(c.getFullYear(),0,1)).getTimezoneOffset(),h=Math.min(g,f);if(d<0)d=Number(f!=g&&h==e);else if(d>0!=(h==e)&& (f=Math.max(g,f),c.setTime(c.getTime()+((d>0?h:f)-e)*6E4),isNaN(c.getTime())))return-1;A[a+32>>2]=d;A[a+24>>2]=c.getDay();A[a+28>>2]=(Yc(c.getFullYear())?Zc:$c)[c.getMonth()]+c.getDate()-1|0;A[a>>2]=c.getSeconds();A[a+4>>2]=c.getMinutes();A[a+8>>2]=c.getHours();A[a+12>>2]=c.getDate();A[a+16>>2]=c.getMonth();A[a+20>>2]=c.getYear();return c.getTime()/1E3})();return BigInt(b)},N:function(a,b,c,d,e,f){f=f<-9007199254740992||f>9007199254740992?NaN:Number(f);try{var g=P(e);if(c&2){if((g.node.mode&61440)!== -32768)throw new J(43);d&2||g.pa.gb&&g.pa.gb(g,z.subarray(a,a+b),f,b,d)}}catch(h){if(typeof R=="undefined"||h.name!=="ErrnoError")throw h;return-h.ya}},E:(a,b)=>{ad[a]&&(clearTimeout(ad[a].id),delete ad[a]);if(!b)return 0;var c=setTimeout(()=>{delete ad[a];dd(()=>ld(a,performance.now()))},b);ad[a]={id:c,Dc:b};return 0},Q:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();D[a>>2]=Math.max(f,e)*60;A[b>>2]=Number(f!=e);b=g=>{var h= -Math.abs(g);return`UTC${g>=0?"-":"+"}${String(Math.floor(h/60)).padStart(2,"0")}${String(h%60).padStart(2,"0")}`};a=b(f);b=b(e);e=0&&a<=3))return 28;E[c>>3]=BigInt(Math.round((a===0?Date.now():performance.now())*1E3*1E3));return 0},y:(a,b,c)=>{ed.length=0;for(var d;d=z[b++];){var e=d!=105;e&=d!=112;c+=e&&c%8?4:0;ed.push(d==112?D[c>>2]:d==106?E[c>>3]:d==105?A[c>>2]:qa[c>>3]);c+=e?8:4}return jd[a](...ed)},J:()=>2147483648, -I:a=>{var b=z.length;a>>>=0;if(a>2147483648)return!1;for(var c=1;c<=4;c*=2){a:{var d=(Math.min(2147483648,Math.ceil(Math.max(a,b+2097152/c)/65536)*65536)-na.buffer.byteLength+65535)/65536|0;try{na.grow(d);ma();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},T:(a,b)=>{var c=0,d=0,e;for(e of hd()){var f=b+c;D[a+d>>2]=f;c+=I(e,z,f,Infinity)+1;d+=4}return 0},U:(a,b)=>{var c=hd();D[a>>2]=c.length;a=0;for(var d of c)a+=Oa(d)+1;D[b>>2]=a;return 0},$:a=>{ja=a;cd(a)},o:function(a){try{var b=P(a); -Hb(b);return 0}catch(c){if(typeof R=="undefined"||c.name!=="ErrnoError")throw c;return c.ya}},S:function(a,b){try{var c=P(a);u[b]=c.ta?2:M(c.mode)?3:(c.mode&61440)===40960?7:4;w[b+2>>1]=0;E[b+8>>3]=BigInt(0);E[b+16>>3]=BigInt(0);return 0}catch(d){if(typeof R=="undefined"||d.name!=="ErrnoError")throw d;return d.ya}},r:function(a,b,c,d){try{a:{var e=P(a);a=b;for(var f,g=b=0;g>2],n=D[a+4>>2];a+=8;try{var l=e,k=h,p=n,r=f,q=u;if(p<0||r<0)throw new J(28);if(l.Na===null)throw new J(8); -if((l.flags&2097155)===1)throw new J(8);if(M(l.node.mode))throw new J(31);if(!l.pa.read)throw new J(28);var t=typeof r!="undefined";if(!t)r=l.position;else if(!l.seekable)throw new J(70);var v=l.pa.read(l,q,k,p,r);t||(l.position+=v);var x=v}catch(y){if(b>0&&y instanceof J&&(y.ya==6||y.ya==6))break;throw y;}if(x<0){var B=-1;break a}b+=x;if(x>2]=B;return 0}catch(y){if(typeof R=="undefined"||y.name!=="ErrnoError")throw y;return y.ya}},R:function(a,b,c,d){b= -b<-9007199254740992||b>9007199254740992?NaN:Number(b);try{if(isNaN(b))return 22;var e=P(a);Ib(e,b,c);E[d>>3]=BigInt(e.position);e.pb&&!b&&c===0&&(e.pb=null);return 0}catch(f){if(typeof R=="undefined"||f.name!=="ErrnoError")throw f;return f.ya}},n:function(a,b,c,d){try{var e=P(a);a=b;if(c==1)var f=Jb(e,u,D[a>>2],D[a+4>>2]);else{for(var g=b=0,h=a;g>2];var n=new Uint8Array(b);for(g=h=0;g>2],k=D[a+4>>2];n.set(z.subarray(l,l+k),h);h+=k}f=Jb(e,n,0,b)}D[d>>2]= -f;return 0}catch(p){if(typeof R=="undefined"||p.name!=="ErrnoError")throw p;return p.ya}},A:nd,q:od,B:pd,C:qd,a:na,L:cd,G:(a,b)=>Ja(z.subarray(a,a+b))};function od(a,b){var c=Dc();try{Ba(a)(b)}catch(d){Ec(c);if(!(d instanceof ka))throw d;md(1,0)}}function qd(a,b,c,d){var e=Dc();try{Ba(a)(b,c,d)}catch(f){Ec(e);if(!(f instanceof ka))throw f;md(1,0)}}function pd(a,b,c){var d=Dc();try{Ba(a)(b,c)}catch(e){Ec(d);if(!(e instanceof ka))throw e;md(1,0)}}function nd(a,b,c,d){var e=Dc();try{return Ba(a)(b,c, -d)}catch(f){Ec(e);if(!(f instanceof ka))throw f;md(1,0)}}var sd;sd=await (async function(){function a(d){d=sd=d.exports;kd=d.ea;X=d.fa;wc=d.ha;Wa=d.ja;ld=d.ka;md=d.la;Ec=d.ma;Dc=d.na;Module.__ZN2MB2NN28LinearDefragmentingAllocator10Allocation4nullE=d.ga.value;Aa=d.ia;return sd}var b={a:rd},c=Module.instantiateWasm;if(c)return new Promise(d=>{c(b,e=>d(a(e)))});sa??=Module.locateFile?Module.locateFile?Module.locateFile("biometrics-wasm.wasm",da):da+"biometrics-wasm.wasm":(new URL("biometrics-wasm.wasm", -import.meta.url)).href;return function(d){return a(d.instance)}(await va(b))}());await (async function(){var a=Module.preRun;a&&(typeof a=="function"&&(a=[a]),xa.push(...a));for(;xa.length>0;)xa.shift()(Module);N&&await eb();ia||(Module.noFSInit||nb||(nb=!0,Db("/dev/tty","/dev/stdin"),Db("/dev/tty","/dev/stdout"),Db("/dev/tty1","/dev/stderr"),Gb("/dev/stdin",0),Gb("/dev/stdout",1),Gb("/dev/stderr",1)),sd.da(),ob=!1)}());;return Module}export default createModule; +32768)throw new J(43);d&2||g.pa.gb&&g.pa.gb(g,z.subarray(a,a+b),f,b,d)}}catch(h){if(typeof R=="undefined"||h.name!=="ErrnoError")throw h;return-h.ya}},E:(a,b)=>{ad[a]&&(clearTimeout(ad[a].id),delete ad[a]);if(!b)return 0;var c=setTimeout(()=>{delete ad[a];var d=kd,e=[a,performance.now()];if(!ia)try{d(...e)}catch(f){bd(f)}finally{if(!(ya||Sc>0))try{ja=d=ja,cd(d)}catch(f){bd(f)}}},b);ad[a]={id:c,Dc:b};return 0},Q:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e, +6,1)).getTimezoneOffset();D[a>>2]=Math.max(f,e)*60;A[b>>2]=Number(f!=e);b=g=>{var h=Math.abs(g);return`UTC${g>=0?"-":"+"}${String(Math.floor(h/60)).padStart(2,"0")}${String(h%60).padStart(2,"0")}`};a=b(f);b=b(e);e=0&&a<=3))return 28;E[c>>3]=BigInt(Math.round((a===0?Date.now():performance.now())*1E6));return 0},y:(a,b,c)=>{dd.length=0;for(var d;d=z[b++];){var e=d!=105;e&=d!=112;c+=e&&c%8?4:0;dd.push(d==112?D[c>>2]:d== +106?E[c>>3]:d==105?A[c>>2]:qa[c>>3]);c+=e?8:4}return hd[a](...dd)},J:()=>2147483648,I:a=>{var b=z.length;a>>>=0;if(a>2147483648)return!1;for(var c=1;c<=4;c*=2){a:{var d=(Math.min(2147483648,Math.ceil(Math.max(a,b+2097152/c)/65536)*65536)-na.buffer.byteLength+65535)/65536|0;try{na.grow(d);ma();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},T:(a,b)=>{var c=0,d=0,e;for(e of gd()){var f=b+c;D[a+d>>2]=f;c+=I(e,z,f,Infinity)+1;d+=4}return 0},U:(a,b)=>{var c=gd();D[a>>2]=c.length;a=0;for(var d of c)a+= +Oa(d)+1;D[b>>2]=a;return 0},$:a=>{ja=a;cd(a)},o:function(a){try{var b=P(a);Hb(b);return 0}catch(c){if(typeof R=="undefined"||c.name!=="ErrnoError")throw c;return c.ya}},S:function(a,b){try{var c=P(a);u[b]=c.ta?2:M(c.mode)?3:(c.mode&61440)===40960?7:4;w[b+2>>1]=0;E[b+8>>3]=BigInt(0);E[b+16>>3]=BigInt(0);return 0}catch(d){if(typeof R=="undefined"||d.name!=="ErrnoError")throw d;return d.ya}},r:function(a,b,c,d){try{a:{var e=P(a);a=b;for(var f,g=b=0;g>2],n=D[a+4>>2];a+=8;try{var l=e, +k=h,p=n,r=f,q=u;if(p<0||r<0)throw new J(28);if(l.Na===null)throw new J(8);if((l.flags&2097155)===1)throw new J(8);if(M(l.node.mode))throw new J(31);if(!l.pa.read)throw new J(28);var t=typeof r!="undefined";if(!t)r=l.position;else if(!l.seekable)throw new J(70);var v=l.pa.read(l,q,k,p,r);t||(l.position+=v);var x=v}catch(y){if(b>0&&y instanceof J&&(y.ya==6||y.ya==6))break;throw y;}if(x<0){var B=-1;break a}b+=x;if(x>2]=B;return 0}catch(y){if(typeof R=="undefined"|| +y.name!=="ErrnoError")throw y;return y.ya}},R:function(a,b,c,d){b=b<-9007199254740992||b>9007199254740992?NaN:Number(b);try{if(isNaN(b))return 22;var e=P(a);Ib(e,b,c);E[d>>3]=BigInt(e.position);e.pb&&!b&&c===0&&(e.pb=null);return 0}catch(f){if(typeof R=="undefined"||f.name!=="ErrnoError")throw f;return f.ya}},n:function(a,b,c,d){try{var e=P(a);a=b;if(c==1)var f=Jb(e,u,D[a>>2],D[a+4>>2]);else{for(var g=b=0,h=a;g>2];var n=new Uint8Array(b);for(g=h=0;g>2], +k=D[a+4>>2];n.set(z.subarray(l,l+k),h);h+=k}f=Jb(e,n,0,b)}D[d>>2]=f;return 0}catch(p){if(typeof R=="undefined"||p.name!=="ErrnoError")throw p;return p.ya}},A:md,q:nd,B:od,C:pd,a:na,L:cd,G:(a,b)=>Ja(z.subarray(a,a+b))};function nd(a,b){var c=Dc();try{Ba(a)(b)}catch(d){Ec(c);if(!(d instanceof ka))throw d;ld(1,0)}}function pd(a,b,c,d){var e=Dc();try{Ba(a)(b,c,d)}catch(f){Ec(e);if(!(f instanceof ka))throw f;ld(1,0)}}function od(a,b,c){var d=Dc();try{Ba(a)(b,c)}catch(e){Ec(d);if(!(e instanceof ka))throw e; +ld(1,0)}}function md(a,b,c,d){var e=Dc();try{return Ba(a)(b,c,d)}catch(f){Ec(e);if(!(f instanceof ka))throw f;ld(1,0)}}var rd;rd=await (async function(){function a(d){d=rd=d.exports;jd=d.ea;X=d.fa;wc=d.ha;Wa=d.ja;kd=d.ka;ld=d.la;Ec=d.ma;Dc=d.na;Module.__ZN2MB2NN28LinearDefragmentingAllocator10Allocation4nullE=d.ga.value;Aa=d.ia;return rd}var b={a:qd},c=Module.instantiateWasm;if(c)return new Promise(d=>{c(b,e=>d(a(e)))});sa??=Module.locateFile?Module.locateFile?Module.locateFile("biometrics-wasm.wasm", +da):da+"biometrics-wasm.wasm":(new URL("biometrics-wasm.wasm",import.meta.url)).href;return function(d){return a(d.instance)}(await va(b))}());await (async function(){var a=Module.preRun;a&&(typeof a=="function"&&(a=[a]),xa.push(...a));for(;xa.length>0;)xa.shift()(Module);N&&await eb();ia||(Module.noFSInit||nb||(nb=!0,Db("/dev/tty","/dev/stdin"),Db("/dev/tty","/dev/stdout"),Db("/dev/tty1","/dev/stderr"),Gb("/dev/stdin",0),Gb("/dev/stdout",1),Gb("/dev/stderr",1)),rd.da(),ob=!1)}());;return Module}export default createModule; diff --git a/packages/biometrics-wasm/dist/simd-relaxed/biometrics-wasm.wasm b/packages/biometrics-wasm/dist/simd-relaxed/biometrics-wasm.wasm index f0491289..beee30dd 100644 Binary files a/packages/biometrics-wasm/dist/simd-relaxed/biometrics-wasm.wasm and b/packages/biometrics-wasm/dist/simd-relaxed/biometrics-wasm.wasm differ diff --git a/packages/biometrics-wasm/dist/simd-threads/biometrics-wasm.js b/packages/biometrics-wasm/dist/simd-threads/biometrics-wasm.js index baaf2c7d..97d1d396 100644 --- a/packages/biometrics-wasm/dist/simd-threads/biometrics-wasm.js +++ b/packages/biometrics-wasm/dist/simd-threads/biometrics-wasm.js @@ -7,8 +7,8 @@ location.pathname.lastIndexOf("/"))+"/");var e=Module.locateFile?Module.locateFi d=c.ib;if(d==1){let e=[];self.onmessage=f=>e.push(f);oa=()=>{postMessage({ib:3});for(let f of e)a(f);self.onmessage=a};for(let f of c.Bc)if(!Module[f]||Module[f].proxy)Module[f]=(...g)=>{postMessage({ib:9,Ac:f,tc:g})},f=="print"&&(ha=Module[f]),f=="printErr"&&(p=Module[f]);v=c.Yc;na();ia=c.Zc;qa();ra();oa()}else if(d==2){sa(c.hb);ta(c.hb,0,0,1,0,0);ua();va(c.hb);pa||(wa(),pa=!0);try{xa(c.Uc,c.Ob)}catch(e){if(e!="unwind")throw e;}}else d==4?pa&&ya():d&&(p(`worker: received unknown command ${d}`),p(c))}catch(e){throw za&& Aa(),e;}}self.onmessage=a}var za=!1;function na(){if(!z?.buffer?.growable){var a=v.buffer;z=new Int8Array(a);B=new Int16Array(a);C=new Uint8Array(a);Ba=new Uint16Array(a);F=new Int32Array(a);G=new Uint32Array(a);Ca=new Float32Array(a);Da=new Float64Array(a);H=new BigInt64Array(a);Ea=new BigUint64Array(a)}}function Fa(){za=!0;h||(Module.noFSInit||Ga||(Ga=!0,Ha("/dev/tty","/dev/stdin"),Ha("/dev/tty","/dev/stdout"),Ha("/dev/tty1","/dev/stderr"),Ia("/dev/stdin",0),Ia("/dev/stdout",1),Ia("/dev/stderr", 1)),Ja.pa(),Ka=!1)}function I(a){Module.onAbort?.(a);a=`Aborted(${a})`;p(a);ja=!0;throw new WebAssembly.RuntimeError(a+". Build with -sASSERTIONS for more info.");}var La;async function Ma(a){try{var b=await ea(a);return new Uint8Array(b)}catch{}if(fa)a=fa(a);else throw"both async and sync fetching of the wasm failed";return a}async function Na(a,b){try{var c=await Ma(a);return await WebAssembly.instantiate(c,b)}catch(d){p(`failed to asynchronously prepare wasm: ${d}`),I(d)}}async function Oa(a){var b= -La;try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){p(`wasm streaming compile failed: ${d}`),p("falling back to ArrayBuffer instantiation")}return Na(b,a)}function Pa(){Qa={G:Ra,j:Sa,P:Ta,t:Ua,$:Va,u:Wa,ca:Xa,x:Ya,fa:Za,oa:$a,i:ab,da:bb,w:cb,f:db,h:eb,c:fb,ha:gb,ea:hb,n:ib,ga:jb,X:kb,N:lb,r:mb,I:nb,p:ob,W:va,ba:pb,F:qb,e:rb,B:sb,ja:tb,g:ub,v:vb,d:wb,ia:xb,la:yb,ma:zb,J:Ab,b:Bb,ka:Cb,S:Db,T:Eb,R:Fb,K:Gb,U:Hb,A:Ib,Q:Jb,na:Kb,q:Lb,aa:Mb,O:Nb, -k:Ob,z:Pb,M:Qb,Z:Rb,_:Sb,y:Tb,m:Ub,Y:Vb,s:Wb,V:Xb,l:Yb,C:Zb,o:$b,D:ac,E:bc,a:v,H:cc,L:dc};return{a:Qa}}async function qa(){function a(e,f){Ja=e.exports;ec.push(Ja.wa);e=Ja;fc=e.qa;hc=e.ra;J=e.sa;ic=e.ua;wa=e.va;jc=e.xa;ta=e.za;Aa=e.Ba;kc=e.Ca;lc=e.Da;mc=e.Ea;nc=e.Fa;oc=e.Ga;pc=e.Ha;qc=e.Ia;rc=e.Ja;sc=e.Ka;tc=e.La;uc=e.Ma;Module.__ZN2MB2NN28LinearDefragmentingAllocator10Allocation4nullE=e.ta.value;vc=e.ya;ia=f;return Ja}var b=Pa(),c=Module.instantiateWasm;if(c)return new Promise(e=>{c(b,(f,g)=>e(a(f, +La;try{var c=fetch(b,{credentials:"same-origin"});return await WebAssembly.instantiateStreaming(c,a)}catch(d){p(`wasm streaming compile failed: ${d}`),p("falling back to ArrayBuffer instantiation")}return Na(b,a)}function Pa(){Qa={G:Ra,k:Sa,P:Ta,t:Ua,$:Va,u:Wa,ca:Xa,x:Ya,fa:Za,oa:$a,i:ab,da:bb,w:cb,f:db,h:eb,c:fb,ha:gb,ea:hb,n:ib,ga:jb,X:kb,N:lb,r:mb,I:nb,p:ob,W:va,ba:pb,F:qb,e:rb,B:sb,ja:tb,g:ub,v:vb,d:wb,ia:xb,la:yb,ma:zb,J:Ab,b:Bb,ka:Cb,S:Db,T:Eb,R:Fb,K:Gb,U:Hb,A:Ib,Q:Jb,na:Kb,q:Lb,aa:Mb,O:Nb, +j:Ob,z:Pb,M:Qb,Z:Rb,_:Sb,y:Tb,m:Ub,Y:Vb,s:Wb,V:Xb,l:Yb,C:Zb,o:$b,D:ac,E:bc,a:v,H:cc,L:dc};return{a:Qa}}async function qa(){function a(e,f){Ja=e.exports;ec.push(Ja.wa);e=Ja;fc=e.qa;hc=e.ra;J=e.sa;ic=e.ua;wa=e.va;jc=e.xa;ta=e.za;Aa=e.Ba;kc=e.Ca;lc=e.Da;mc=e.Ea;nc=e.Fa;oc=e.Ga;pc=e.Ha;qc=e.Ia;rc=e.Ja;sc=e.Ka;tc=e.La;uc=e.Ma;Module.__ZN2MB2NN28LinearDefragmentingAllocator10Allocation4nullE=e.ta.value;vc=e.ya;ia=f;return Ja}var b=Pa(),c=Module.instantiateWasm;if(c)return new Promise(e=>{c(b,(f,g)=>e(a(f, g)))});if(h){var d=new WebAssembly.Instance(ia,Pa());return a(d,ia)}La??=Module.locateFile?Module.locateFile?Module.locateFile("biometrics-wasm.wasm",da):da+"biometrics-wasm.wasm":(new URL("biometrics-wasm.wasm",import.meta.url)).href;return function(e){return a(e.instance,e.module)}(await Oa(b))}class wc{name="ExitStatus";constructor(a){this.message=`Program terminated with exit(${a})`;this.status=a}}var z,xc=a=>{a.terminate();a.onmessage=()=>{}},yc=[],zc=null,Ac=async()=>zc,K=0,Bc=null,Cc=()=>{K|| (zc=new Promise(a=>Bc=a));K++},Hc=a=>{if(Dc.length==0){var b=Ec();Fc(b)}b=Dc.pop();if(!b)return 6;Gc[a.hb]=b;b.hb=a.hb;b.postMessage({ib:2,Uc:a.Tc,Ob:a.Ob,hb:a.hb},a.Wc);return 0},Ic=0,Da,H,L=(a,b,...c)=>{var d=8*c.length*2,e=uc(),f=tc(d),g=f>>3,k;for(k of c)typeof k=="bigint"?((u(),H)[g++]=1n,(u(),H)[g++]=k):((u(),H)[g++]=0n,(u(),Da)[g++]=k);a=lc(a,0,d,f,b);sc(e);return a};function cc(a){if(h)return L(0,1,a);ka=a;if(!(Jc||Ic>0)){for(var b of Object.values(Gc))xc(b);for(b of Dc)xc(b);Dc=[];Gc={}; ja=!0}throw new wc(a);}function Kc(a){if(h)return L(1,0,a);Tb(a)}var Tb=a=>{ka=a;if(h)throw Kc(a),"unwind";cc(a)},Lc=!Atomics.waitAsync||globalThis.navigator?.userAgent&&Number((navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)||[])[2])<91,F,Dc=[],ec=[],Gc={};function Mc(){for(var a=Math.min(navigator.hardwareConcurrency,16);a--;)Ec();yc.push(async()=>{var b=Nc();Cc("loading-workers");await b;K--;K||Bc()})}var Oc=a=>{var b=a.hb;delete Gc[b];Dc.push(a);a.hb=0;Lc||Atomics.notify((u(),F),b>>2);mc(b)}; @@ -72,17 +72,17 @@ bb:(k,m)=>m,lb:ie(b,c,d!==0),eb:null})},fb=(a,b,c)=>{function d(f){var g=(u(),G) W(a,{name:b,Xa(c){var d=(u(),G)[c>>2];d=ce(c+4,d,!0);J(c);return d},bb(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e=typeof d=="string";if(!(e||ArrayBuffer.isView(d)&&d.BYTES_PER_ELEMENT==1))throw new V("Cannot pass non-string to std::string");var f=e?fd(d):d.length;var g=hc(4+f+1),k=g+4;(u(),G)[g>>2]=f;e?Ve(d,k,f+1):(u(),C).set(d,k);c!==null&&c.push(J,g);return g},lb:Ae,eb(c){J(c)}})},We=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Xe=(a,b,c)=>{a>>=1;b=cd((u(),Ba),a,b/2, c);if(b-a>16&&We)return We.decode((u(),Ba).slice(a,b));for(c="";a{if(c<2)return 0;c-=2;var d=b;c=c>1]=f;b+=2}(u(),B)[b>>1]=0;return b-d},Ze=a=>a.length*2,$e=(a,b,c)=>{var d="";a>>=2;for(var e=0;!(e>=b/4);e++){var f=(u(),G)[a+e];if(!f&&!c)break;d+=String.fromCodePoint(f)}return d},af=(a,b,c=2147483647)=>{if(c<4)return 0;var d=b;c=d+c-4;for(var e= 0;e65535&&e++;(u(),F)[b>>2]=f;b+=4;if(b+4>c)break}(u(),F)[b>>2]=0;return b-d},bf=a=>{for(var b=0,c=0;c65535&&c++,b+=4;return b},ib=(a,b,c)=>{c=U(c);if(b===2){var d=Xe;var e=Ye;var f=Ze}else d=$e,e=af,f=bf;W(a,{name:c,Xa:g=>{var k=(u(),G)[g>>2];k=d(g+4,k*b,!0);J(g);return k},bb:(g,k)=>{if(typeof k!="string")throw new V(`Cannot pass non-string to C++ string type ${c}`);var m=f(k),n=hc(4+m+b);(u(),G)[n>>2]=m/b;e(k,n+4,m+b);g!==null&& -g.push(J,n);return n},lb:Ae,eb(g){J(g)}})},jb=(a,b)=>{b=U(b);W(a,{Jc:!0,name:b,Xa:()=>{},bb:()=>{}})},kb=a=>{var b=!aa;try{Atomics.wait((u(),F),0,0,0),b=!0}catch(c){}ta(a,!ba,1,b,262144,!1);ua()},cf=a=>{if(!(a instanceof wc||a=="unwind"))throw a;},Pc=a=>{if(!ja)try{a()}catch(b){cf(b)}finally{if(!(Jc||Ic>0))try{h?fc()&&nc(ka):Tb(ka)}catch(b){cf(b)}}},va=a=>{Lc||(Atomics.waitAsync((u(),F),a>>2,a).value.then(ya),a+=112,Atomics.store((u(),F),a>>2,1))},ya=()=>{var a=fc();a&&Pc(()=>{va(a);pc()})},lb=(a, -b)=>{a==b?setTimeout(ya):h?postMessage({Yb:a,ib:4}):(a=Gc[a])&&a.postMessage({ib:4})},df=[],mb=(a,b,c,d,e,f,g)=>{df.length=0;c=e>>3;for(d=e+d>>3;ckc(f,g,k));else return a},nb=()=>{Jc=!1;Ic=0},ob=a=>{h?postMessage({ib:6,Vc:a}):Oc(Gc[a])},pb=()=>{},qb=()=>{throw new ma;},gf=[],hf=a=>{var b=gf.length;gf.push(a);return b},jf=(a,b)=>{for(var c=Array(a),d=0;d> -2],g=fe[f];if(void 0===g)throw a=`${`parameter ${d}`} has unknown type ${Je(f)}`,new V(a);c[e]=g}return c},kf={},lf=a=>{var b=kf[a];return b===void 0?U(a):b},rb=(a,b,c)=>{var d;[b,...d]=jf(a,b);var e=b.bb.bind(b),f=d.map(k=>k.lb.bind(k));a--;var g=Array(a);b=`methodCaller<(${d.map(k=>k.name)}) => ${b.name}>`;return hf(pe(b,(k,m,n,l)=>{for(var q=0,w=0;w>2]=X(k));return r}))},tb=a=>{if(!a)return X(globalThis);a=lf(a);return X(globalThis[a])},ub=(a,b)=>{a=Z(a);b=Z(b);return X(a[b])},vb=a=>{a>9&&(Se[a+1]+=1)},wb=(a,b,c,d,e)=>gf[a](b,c,d,e),xb=()=>X([]),yb=a=>X(lf(a)),zb=()=>X({}),Ab=a=>{for(var b=Z(a);b.length;){var c=b.pop();b.pop()(c)}sb(a)},Bb=(a,b,c)=>{a=Z(a);b=Z(b);c=Z(c);a[b]=c},Cb=a=>{a=Z(a);return X(typeof a)},mf=a=>a%4===0&&(a%100!==0||a%400===0),nf=[0,31,60,91,121,152,182,213,244,274,305,335],of=[0,31,59, -90,120,151,181,212,243,273,304,334];function Db(a,b){a=a<-9007199254740992||a>9007199254740992?NaN:Number(a);a=new Date(a*1E3);if(isNaN(a.getTime()))return 1;(u(),F)[b>>2]=a.getSeconds();(u(),F)[b+4>>2]=a.getMinutes();(u(),F)[b+8>>2]=a.getHours();(u(),F)[b+12>>2]=a.getDate();(u(),F)[b+16>>2]=a.getMonth();(u(),F)[b+20>>2]=a.getFullYear()-1900;(u(),F)[b+24>>2]=a.getDay();var c=(mf(a.getFullYear())?nf:of)[a.getMonth()]+a.getDate()-1|0;(u(),F)[b+28>>2]=c;(u(),F)[b+36>>2]=-(a.getTimezoneOffset()*60);c= -(new Date(a.getFullYear(),6,1)).getTimezoneOffset();var d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();a=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0;(u(),F)[b+32>>2]=a;return 0}function Eb(a){var b=(()=>{var c=new Date((u(),F)[a+20>>2]+1900,(u(),F)[a+16>>2],(u(),F)[a+12>>2],(u(),F)[a+8>>2],(u(),F)[a+4>>2],(u(),F)[a>>2],0);if(isNaN(c.getTime()))return-1;var d=(u(),F)[a+32>>2],e=c.getTimezoneOffset(),f=(new Date(c.getFullYear(),6,1)).getTimezoneOffset(),g=(new Date(c.getFullYear(),0,1)).getTimezoneOffset(), -k=Math.min(g,f);if(d<0)d=Number(f!=g&&k==e);else if(d>0!=(k==e)&&(f=Math.max(g,f),c.setTime(c.getTime()+((d>0?k:f)-e)*6E4),isNaN(c.getTime())))return-1;(u(),F)[a+32>>2]=d;(u(),F)[a+24>>2]=c.getDay();d=(mf(c.getFullYear())?nf:of)[c.getMonth()]+c.getDate()-1|0;(u(),F)[a+28>>2]=d;(u(),F)[a>>2]=c.getSeconds();(u(),F)[a+4>>2]=c.getMinutes();(u(),F)[a+8>>2]=c.getHours();(u(),F)[a+12>>2]=c.getDate();(u(),F)[a+16>>2]=c.getMonth();(u(),F)[a+20>>2]=c.getYear();return c.getTime()/1E3})();return BigInt(b)}function Fb(a, -b,c,d,e,f){if(h)return L(7,1,a,b,c,d,e,f);f=f<-9007199254740992||f>9007199254740992?NaN:Number(f);try{var g=R(e);if(c&2){c=f;if((g.node.mode&61440)!==32768)throw new N(43);if(!(d&2)){var k=(u(),C).subarray(a,a+b);g.Na.Ib&&g.Na.Ib(g,k,c,b,d)}}}catch(m){if(typeof T=="undefined"||m.name!=="ErrnoError")throw m;return-m.Ua}}var pf={},Ob=()=>performance.timeOrigin+performance.now();function Gb(a,b){if(h)return L(8,1,a,b);pf[a]&&(clearTimeout(pf[a].id),delete pf[a]);if(!b)return 0;var c=setTimeout(()=>{delete pf[a]; -Pc(()=>oc(a,performance.timeOrigin+performance.now()))},b);pf[a]={id:c,od:b};return 0}var Hb=(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();var g=Math.max(f,e);(u(),G)[a>>2]=g*60;(u(),F)[b>>2]=Number(f!=e);b=k=>{var m=Math.abs(k);return`UTC${k>=0?"-":"+"}${String(Math.floor(m/60)).padStart(2,"0")}${String(m%60).padStart(2,"0")}`};a=b(f);b=b(e);e= -0&&a<=3))return 28;if(a===0)a=Date.now();else if(qf)a=performance.timeOrigin+performance.now();else return 52;a=Math.round(a*1E3*1E3);(u(),H)[c>>3]=BigInt(a);return 0}var rf=[],Kb=(a,b,c)=>{rf.length=0;for(var d;d=(u(),C)[b++];){var e=d!=105;e&=d!=112;c+=e&&c%8?4:0;rf.push(d==112?(u(),G)[c>>2]:d==106?(u(),H)[c>>3]:d==105?(u(),F)[c>>2]:(u(),Da)[c>>3]);c+=e?8:4}return ef[a](...rf)},Lb=()=>{},Mb=()=>{Ic+=1;throw"unwind";},Nb=()=>2147483648,Qb=a=>{var b=(u(),C).length;a>>>=0;if(a<=b||a>2147483648)return!1; -for(var c=1;c<=4;c*=2){a:{var d=(Math.min(2147483648,Math.ceil(Math.max(a,b+2097152/c)/65536)*65536)-v.buffer.byteLength+65535)/65536|0;try{v.grow(d);na();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},sf={},uf=()=>{if(!tf){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in sf)sf[b]===void 0?delete a[b]:a[b]=sf[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`); +g.push(J,n);return n},lb:Ae,eb(g){J(g)}})},jb=(a,b)=>{b=U(b);W(a,{Jc:!0,name:b,Xa:()=>{},bb:()=>{}})},kb=a=>{var b=!aa;try{Atomics.wait((u(),F),0,0,0),b=!0}catch(c){}ta(a,!ba,1,b,262144,!1);ua()},cf=a=>{if(!(a instanceof wc||a=="unwind"))throw a;},Pc=(a,...b)=>{if(!ja)try{a(...b)}catch(c){cf(c)}finally{if(!(Jc||Ic>0))try{h?fc()&&nc(ka):Tb(ka)}catch(c){cf(c)}}},va=a=>{Lc||(Atomics.waitAsync((u(),F),a>>2,a).value.then(ya),a+=112,Atomics.store((u(),F),a>>2,1))},ya=()=>{var a=fc();a&&Pc(()=>{va(a);pc()})}, +lb=(a,b)=>{a==b?setTimeout(ya):h?postMessage({Yb:a,ib:4}):(a=Gc[a])&&a.postMessage({ib:4})},df=[],mb=(a,b,c,d,e,f,g)=>{df.length=0;c=e>>3;for(d=e+d>>3;ckc(f,g,k));else return a},nb=()=>{Jc=!1;Ic=0},ob=a=>{h?postMessage({ib:6,Vc:a}):Oc(Gc[a])},pb=()=>{},qb=()=>{throw new ma;},gf=[],hf=a=>{var b=gf.length;gf.push(a);return b},jf=(a,b)=>{for(var c=Array(a),d=0;d>2],g=fe[f];if(void 0===g)throw a=`${`parameter ${d}`} has unknown type ${Je(f)}`,new V(a);c[e]=g}return c},kf={},lf=a=>{var b=kf[a];return b===void 0?U(a):b},rb=(a,b,c)=>{var d;[b,...d]=jf(a,b);var e=b.bb.bind(b),f=d.map(k=>k.lb.bind(k));a--;var g=Array(a);b=`methodCaller<(${d.map(k=>k.name)}) => ${b.name}>`;return hf(pe(b,(k,m,n,l)=>{for(var q=0,w=0;w>2]=X(k));return r}))},tb=a=>{if(!a)return X(globalThis);a=lf(a);return X(globalThis[a])},ub=(a,b)=>{a=Z(a);b=Z(b);return X(a[b])},vb=a=>{a>9&&(Se[a+1]+=1)},wb=(a,b,c,d,e)=>gf[a](b,c,d,e),xb=()=>X([]),yb=a=>X(lf(a)),zb=()=>X({}),Ab=a=>{for(var b=Z(a);b.length;){var c=b.pop();b.pop()(c)}sb(a)},Bb=(a,b,c)=>{a=Z(a);b=Z(b);c=Z(c);a[b]=c},Cb=a=>{a=Z(a);return X(typeof a)},mf=a=>a%4===0&&(a%100!==0||a%400===0),nf=[0,31,60,91,121,152,182,213,244,274,305, +335],of=[0,31,59,90,120,151,181,212,243,273,304,334];function Db(a,b){a=a<-9007199254740992||a>9007199254740992?NaN:Number(a);a=new Date(a*1E3);if(isNaN(a.getTime()))return 1;(u(),F)[b>>2]=a.getSeconds();(u(),F)[b+4>>2]=a.getMinutes();(u(),F)[b+8>>2]=a.getHours();(u(),F)[b+12>>2]=a.getDate();(u(),F)[b+16>>2]=a.getMonth();(u(),F)[b+20>>2]=a.getFullYear()-1900;(u(),F)[b+24>>2]=a.getDay();var c=(mf(a.getFullYear())?nf:of)[a.getMonth()]+a.getDate()-1|0;(u(),F)[b+28>>2]=c;(u(),F)[b+36>>2]=-(a.getTimezoneOffset()* +60);c=(new Date(a.getFullYear(),6,1)).getTimezoneOffset();var d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();a=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0;(u(),F)[b+32>>2]=a;return 0}function Eb(a){var b=(()=>{var c=new Date((u(),F)[a+20>>2]+1900,(u(),F)[a+16>>2],(u(),F)[a+12>>2],(u(),F)[a+8>>2],(u(),F)[a+4>>2],(u(),F)[a>>2],0);if(isNaN(c.getTime()))return-1;var d=(u(),F)[a+32>>2],e=c.getTimezoneOffset(),f=(new Date(c.getFullYear(),6,1)).getTimezoneOffset(),g=(new Date(c.getFullYear(),0, +1)).getTimezoneOffset(),k=Math.min(g,f);if(d<0)d=Number(f!=g&&k==e);else if(d>0!=(k==e)&&(f=Math.max(g,f),c.setTime(c.getTime()+((d>0?k:f)-e)*6E4),isNaN(c.getTime())))return-1;(u(),F)[a+32>>2]=d;(u(),F)[a+24>>2]=c.getDay();d=(mf(c.getFullYear())?nf:of)[c.getMonth()]+c.getDate()-1|0;(u(),F)[a+28>>2]=d;(u(),F)[a>>2]=c.getSeconds();(u(),F)[a+4>>2]=c.getMinutes();(u(),F)[a+8>>2]=c.getHours();(u(),F)[a+12>>2]=c.getDate();(u(),F)[a+16>>2]=c.getMonth();(u(),F)[a+20>>2]=c.getYear();return c.getTime()/1E3})(); +return BigInt(b)}function Fb(a,b,c,d,e,f){if(h)return L(7,1,a,b,c,d,e,f);f=f<-9007199254740992||f>9007199254740992?NaN:Number(f);try{var g=R(e);if(c&2){c=f;if((g.node.mode&61440)!==32768)throw new N(43);if(!(d&2)){var k=(u(),C).subarray(a,a+b);g.Na.Ib&&g.Na.Ib(g,k,c,b,d)}}}catch(m){if(typeof T=="undefined"||m.name!=="ErrnoError")throw m;return-m.Ua}}var pf={},Ob=()=>performance.timeOrigin+performance.now();function Gb(a,b){if(h)return L(8,1,a,b);pf[a]&&(clearTimeout(pf[a].id),delete pf[a]);if(!b)return 0; +var c=setTimeout(()=>{delete pf[a];Pc(oc,a,performance.timeOrigin+performance.now())},b);pf[a]={id:c,od:b};return 0}var Hb=(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();var g=Math.max(f,e);(u(),G)[a>>2]=g*60;(u(),F)[b>>2]=Number(f!=e);b=k=>{var m=Math.abs(k);return`UTC${k>=0?"-":"+"}${String(Math.floor(m/60)).padStart(2,"0")}${String(m%60).padStart(2,"0")}`};a=b(f);b=b(e);e=0&&a<=3))return 28;if(a===0)a=Date.now();else if(qf)a=performance.timeOrigin+performance.now();else return 52;a=Math.round(a*1E6);(u(),H)[c>>3]=BigInt(a);return 0}var rf=[],Kb=(a,b,c)=>{rf.length=0;for(var d;d=(u(),C)[b++];){var e=d!=105;e&=d!=112;c+=e&&c%8?4:0;rf.push(d==112?(u(),G)[c>>2]:d==106?(u(),H)[c>>3]:d==105?(u(),F)[c>>2]:(u(),Da)[c>>3]);c+=e?8:4}return ef[a](...rf)},Lb=()=>{},Mb=()=>{Ic+=1;throw"unwind";},Nb=()=>2147483648,Qb=a=>{var b=(u(),C).length;a>>>= +0;if(a<=b||a>2147483648)return!1;for(var c=1;c<=4;c*=2){a:{var d=(Math.min(2147483648,Math.ceil(Math.max(a,b+2097152/c)/65536)*65536)-v.buffer.byteLength+65535)/65536|0;try{v.grow(d);na();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},sf={},uf=()=>{if(!tf){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in sf)sf[b]===void 0?delete a[b]:a[b]=sf[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`); tf=c}return tf},tf;function Rb(a,b){if(h)return L(9,1,a,b);var c=0,d=0,e;for(e of uf()){var f=b+c;(u(),G)[a+d>>2]=f;c+=Ve(e,f,Infinity)+1;d+=4}return 0}function Sb(a,b){if(h)return L(10,1,a,b);var c=uf();(u(),G)[a>>2]=c.length;a=0;for(var d of c)a+=fd(d)+1;(u(),G)[b>>2]=a;return 0}function Ub(a){if(h)return L(11,1,a);try{var b=R(a);Ud(b);return 0}catch(c){if(typeof T=="undefined"||c.name!=="ErrnoError")throw c;return c.Ua}}function Vb(a,b){if(h)return L(12,1,a,b);try{var c=R(a),d=c.Ra?2:P(c.mode)? 3:(c.mode&61440)===40960?7:4;(u(),z)[b]=d;(u(),B)[b+2>>1]=0;(u(),H)[b+8>>3]=BigInt(0);(u(),H)[b+16>>3]=BigInt(0);return 0}catch(e){if(typeof T=="undefined"||e.name!=="ErrnoError")throw e;return e.Ua}}function Wb(a,b,c,d){if(h)return L(13,1,a,b,c,d);try{a:{var e=R(a);a=b;for(var f,g=b=0;g>2],m=(u(),G)[a+4>>2];a+=8;try{var n=e,l=(u(),z),q=k,w=m,r=f;if(w<0||r<0)throw new N(28);if(n.nb===null)throw new N(8);if((n.flags&2097155)===1)throw new N(8);if(P(n.node.mode))throw new N(31); if(!n.Na.read)throw new N(28);var t=typeof r!="undefined";if(!t)r=n.position;else if(!n.seekable)throw new N(70);var x=n.Na.read(n,l,q,w,r);t||(n.position+=x);var y=x}catch(A){if(b>0&&A instanceof N&&(A.Ua==6||A.Ua==6))break;throw A;}if(y<0){var D=-1;break a}b+=y;if(y>2]=D;return 0}catch(A){if(typeof T=="undefined"||A.name!=="ErrnoError")throw A;return A.Ua}}function Xb(a,b,c,d){if(h)return L(14,1,a,b,c,d);b=b<-9007199254740992||b>9007199254740992? @@ -94,5 +94,5 @@ le(this);var c=this.Aa;--c.count.value;0===c.count.value&&(c.Wa?c.ab.pb(c.Wa):c. Fe(this.Sa.rb,{Ta:this.Nc,Pa:c,ab:this,Wa:a}):Fe(this.Sa.rb,{Ta:this,Pa:a})}var c=this.zc(a);if(!c)return this.jc(a),null;var d=De(this.Sa,c);if(void 0!==d){if(0===d.Aa.count.value)return d.Aa.Pa=c,d.Aa.Wa=a,d.clone();d=d.clone();this.jc(a);return d}d=this.Sa.yc(c);d=qe[d];if(!d)return b.call(this);d=this.Fb?d.vc:d.pointerType;var e=Be(c,this.Sa,d.Sa);return e===null?b.call(this):this.Gb?Fe(d.Sa.rb,{Ta:d,Pa:e,ab:this,Wa:a}):Fe(d.Sa.rb,{Ta:d,Pa:e})}});h||(v=Module.wasmMemory?Module.wasmMemory:new WebAssembly.Memory({initial:(Module.INITIAL_MEMORY|| 209715200)/65536,maximum:32768,shared:!0}),na());Module.noExitRuntime&&(Jc=Module.noExitRuntime);Module.printErr&&(p=Module.printErr);Module.addRunDependency=Cc;Module.removeRunDependency=()=>{K--;K||Bc()};Module.FS_preloadFile=async(a,b,c,d,e,f,g,k)=>{var m=b?ad(Xc(a+"/"+b)):a;Cc(`cp ${m}`);try{var n=c;typeof c=="string"&&(n=await wd(c));n=await yd(n,m);k?.();f||Zd(a,b,n,d,e,g)}finally{K--,K||Bc()}};Module.FS_unlink=(...a)=>Sd(...a);Module.FS_createPath=(...a)=>Xd(...a);Module.FS_createDevice=(...a)=> $d(...a);Module.FS_createDataFile=(...a)=>Zd(...a);Module.FS_createLazyFile=(...a)=>be(...a);var ff=[cc,Kc,Uc,Ua,Va,Wa,function(a,b,c,d,e,f,g){if(h)return L(6,1,a,b,c,d,e,f,g);e=e<-9007199254740992||e>9007199254740992?NaN:Number(e);try{var k=R(d);if(b&2&&!(c&2)&&(k.flags&2097155)!==2)throw new N(2);if((k.flags&2097155)===1)throw new N(2);if(!k.Na.yb)throw new N(43);if(!a)throw new N(28);var m=k.Na.yb(k,a,e,b,c);var n=m.Pa;(u(),F)[f>>2]=m.bc;(u(),G)[g>>2]=n;return 0}catch(l){if(typeof T=="undefined"|| -l.name!=="ErrnoError")throw l;return-l.Ua}},Fb,Gb,Rb,Sb,Ub,Vb,Wb,Xb,Yb],ef={153443:(a,b)=>{a=Error(ce(a));a.kind="loadError";a.code=b;throw a;}};function Ib(){var a=Module.allowedThreads;return a?a:navigator.hardwareConcurrency}var fc,hc,J,ic,wa,jc,ta,Aa,kc,lc,mc,nc,oc,pc,qc,rc,sc,tc,uc,vc,Qa;function $b(a,b){var c=uc();try{Rc(a)(b)}catch(d){sc(c);if(!(d instanceof la))throw d;qc(1,0)}}function bc(a,b,c,d){var e=uc();try{Rc(a)(b,c,d)}catch(f){sc(e);if(!(f instanceof la))throw f;qc(1,0)}}function ac(a, +l.name!=="ErrnoError")throw l;return-l.Ua}},Fb,Gb,Rb,Sb,Ub,Vb,Wb,Xb,Yb],ef={141411:(a,b)=>{a=Error(ce(a));a.kind="loadError";a.code=b;throw a;}};function Ib(){var a=Module.allowedThreads;return a?a:navigator.hardwareConcurrency}var fc,hc,J,ic,wa,jc,ta,Aa,kc,lc,mc,nc,oc,pc,qc,rc,sc,tc,uc,vc,Qa;function $b(a,b){var c=uc();try{Rc(a)(b)}catch(d){sc(c);if(!(d instanceof la))throw d;qc(1,0)}}function bc(a,b,c,d){var e=uc();try{Rc(a)(b,c,d)}catch(f){sc(e);if(!(f instanceof la))throw f;qc(1,0)}}function ac(a, b,c){var d=uc();try{Rc(a)(b,c)}catch(e){sc(d);if(!(e instanceof la))throw e;qc(1,0)}}function Zb(a,b,c,d){var e=uc();try{return Rc(a)(b,c,d)}catch(f){sc(e);if(!(f instanceof la))throw f;qc(1,0)}}async function ra(){if(h)Fa();else{var a=Module.preRun;a&&(typeof a=="function"&&(a=[a]),yc.push(...a));for(a=yc;a.length>0;)a.shift()(Module);K&&await Ac();ja||Fa()}}var Ja;h||(Ja=await (qa()),await (ra()));;return Module}export default createModule;var isPthread=globalThis.name=="em-pthread";isPthread&&createModule(); diff --git a/packages/biometrics-wasm/dist/simd-threads/biometrics-wasm.wasm b/packages/biometrics-wasm/dist/simd-threads/biometrics-wasm.wasm index 1bbdf603..4cc0420c 100644 Binary files a/packages/biometrics-wasm/dist/simd-threads/biometrics-wasm.wasm and b/packages/biometrics-wasm/dist/simd-threads/biometrics-wasm.wasm differ diff --git a/packages/biometrics-wasm/dist/simd/biometrics-wasm.js b/packages/biometrics-wasm/dist/simd/biometrics-wasm.js index c1650cc6..a7836127 100644 --- a/packages/biometrics-wasm/dist/simd/biometrics-wasm.js +++ b/packages/biometrics-wasm/dist/simd/biometrics-wasm.js @@ -53,34 +53,34 @@ var h=b[1]!==null&&c!==null,n=Ac(b),l=(c=Bc(b))&&!f&&!n;c&&!l&&(n=!0);var k=!b[0 b)=>{for(var c=[],d=0;d>2]);return c},Gc=a=>{a=a.trim();var b=a.indexOf("(");return b===-1?a:a.slice(0,b)},Hc=[],Y=[0,1,,1,null,1,!0,1,!1,1],Ic=a=>{a>9&&0===--Y[a+1]&&(Y[a]=void 0,Hc.push(a))},Z=a=>{if(!a)throw new T(`Cannot use deleted val. handle = ${a}`);return Y[a]},V=a=>{switch(a){case void 0:return 2;case null:return 4;case !0:return 6;case !1:return 8;default:let b=Hc.pop()||Y.length;Y[b]=a;Y[b+1]=1;return b}},Jc={name:"emscripten::val",za:a=>{var b=Z(a);Ic(a);return b}, Ea:(a,b)=>V(b),La:mc,Ga:null},pa,qa,Kc=(a,b)=>{switch(b){case 4:return function(c){return this.za(pa[c>>2])};case 8:return function(c){return this.za(qa[c>>3])};default:throw new TypeError(`invalid float width (${b}): ${a}`);}},Lc=globalThis.TextDecoder?new TextDecoder("utf-16le"):void 0,Mc=(a,b,c)=>{a>>=1;b=Ma(oa,a,b/2,c);if(b-a>16&&Lc)return Lc.decode(oa.subarray(a,b));for(c="";a{if(c<2)return 0;c-=2;var d=b;c=c>1]=a.charCodeAt(e),b+=2;w[b>>1]=0;return b-d},Oc=a=>a.length*2,Pc=(a,b,c)=>{var d="";a>>=2;for(var e=0;!(e>=b/4);e++){var f=D[a+e];if(!f&&!c)break;d+=String.fromCodePoint(f)}return d},Qc=(a,b,c=2147483647)=>{if(c<4)return 0;var d=b;c=d+c-4;for(var e=0;e65535&&e++;A[b>>2]=f;b+=4;if(b+4>c)break}A[b>>2]=0;return b-d},Rc=a=>{for(var b=0,c=0;c65535&&c++,b+=4;return b},Sc=0,Tc=[],Uc=a=>{var b=Tc.length; -Tc.push(a);return b},Vc=(a,b)=>{for(var c=Array(a),d=0;d>2],g=Rb[f];if(void 0===g)throw a=`${`parameter ${d}`} has unknown type ${xc(f)}`,new T(a);c[e]=g}return c},Wc={},Xc=a=>{var b=Wc[a];return b===void 0?S(a):b},Yc=a=>a%4===0&&(a%100!==0||a%400===0),Zc=[0,31,60,91,121,152,182,213,244,274,305,335],$c=[0,31,59,90,120,151,181,212,243,273,304,334],ad={},bd=a=>{if(!(a instanceof wa||a=="unwind"))throw a;},cd=a=>{ja=a;ya||Sc>0||(ia=!0);throw new wa(a);},dd=a=>{if(!ia)try{a()}catch(b){bd(b)}finally{if(!(ya|| -Sc>0))try{ja=a=ja,cd(a)}catch(b){bd(b)}}},ed=[],fd={},hd=()=>{if(!gd){var a={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in fd)fd[b]===void 0?delete a[b]:a[b]=fd[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);gd=c}return gd},gd;O=Array(4096);zb(K,"/");Q("/tmp");Q("/home");Q("/home/web_user");(function(){Q("/dev");Sa(259,{read:()=>0,write:(d,e,f,g)=>g,Ha:()=>0});Cb("/dev/null", -259);Ra(1280,Ua);Ra(1536,Va);Cb("/dev/tty",1280);Cb("/dev/tty1",1536);var a=new Uint8Array(1024),b=0,c=()=>{b||(Ja(a),b=a.byteLength);return a[--b]};Nb("/dev","random",c);Nb("/dev","urandom",c);Q("/dev/shm");Q("/dev/shm/tmp")})();(function(){Q("/proc");var a=Q("/proc/self");Q("/proc/self/fd");zb({Ja(){var b=Za(a,"fd",16895,73);b.pa={Ha:K.pa.Ha};b.qa={Wa(c,d){c=+d;var e=P(c);c={parent:null,Ja:{Jb:"fake"},qa:{Za:()=>e.path},id:c+1};return c.parent=c},wb(){return Array.from(lb.entries()).filter(([,c])=> -c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();(()=>{var a=$b.prototype;Object.assign(a,{isAliasOf:function(c){if(!(this instanceof $b&&c instanceof $b))return!1;var d=this.oa.va.ua,e=this.oa.ra;c.oa=c.oa;var f=c.oa.va.ua;for(c=c.oa.ra;d.Ba;)e=d.$a(e),d=d.Ba;for(;f.Ba;)c=f.$a(c),f=f.Ba;return d===f&&e===c},clone:function(){this.oa.ra||Vb(this);if(this.oa.Ya)return this.oa.count.value+=1,this;var c=Yb,d=Object,e=d.create,f=Object.getPrototypeOf(this),g=this.oa;c=c(e.call(d,f,{oa:{value:{count:g.count, -Ua:g.Ua,Ya:g.Ya,ra:g.ra,va:g.va,xa:g.xa,Da:g.Da}}}));c.oa.count.value+=1;c.oa.Ua=!1;return c},["delete"](){this.oa.ra||Vb(this);if(this.oa.Ua&&!this.oa.Ya)throw new T("Object already scheduled for deletion");Xb(this);var c=this.oa;--c.count.value;0===c.count.value&&(c.xa?c.Da.Pa(c.xa):c.va.ua.Pa(c.ra));this.oa.Ya||(this.oa.xa=void 0,this.oa.ra=void 0)},isDeleted:function(){return!this.oa.ra},deleteLater:function(){this.oa.ra||Vb(this);if(this.oa.Ua&&!this.oa.Ya)throw new T("Object already scheduled for deletion"); -Zb.push(this);this.oa.Ua=!0;return this}});var b=Symbol.dispose;b&&(a[b]=a["delete"])})();Object.assign(tc.prototype,{Ub(a){this.Kb&&(a=this.Kb(a));return a},Fb(a){this.Pa?.(a)},La:mc,za:function(a){function b(){return this.eb?sc(this.ua.Ra,{va:this.fc,ra:c,Da:this,xa:a}):sc(this.ua.Ra,{va:this,ra:a})}var c=this.Ub(a);if(!c)return this.Fb(a),null;var d=qc(this.ua,c);if(void 0!==d){if(0===d.oa.count.value)return d.oa.ra=c,d.oa.xa=a,d.clone();d=d.clone();this.Fb(a);return d}d=this.ua.Tb(c);d=bc[d]; -if(!d)return b.call(this);d=this.cb?d.Qb:d.pointerType;var e=nc(c,this.ua,d.ua);return e===null?b.call(this):this.eb?sc(d.ua.Ra,{va:d,ra:e,Da:this,xa:a}):sc(d.ua.Ra,{va:d,ra:e})}});na=Module.wasmMemory?Module.wasmMemory:new WebAssembly.Memory({initial:(Module.INITIAL_MEMORY||209715200)/65536,maximum:32768});ma();Module.noExitRuntime&&(ya=Module.noExitRuntime);Module.printErr&&(m=Module.printErr);Module.addRunDependency=gb;Module.removeRunDependency=()=>{N--;N||fb()};Module.FS_preloadFile=async(a, -b,c,d,e,f,g,h)=>{var n=b?Ka(Ga(a+"/"+b)):a;gb(`cp ${n}`);try{var l=c;typeof c=="string"&&(l=await cb(c));l=await ib(l,n);h?.();f||Mb(a,b,l,d,e,g)}finally{N--,N||fb()}};Module.FS_unlink=(...a)=>Eb(...a);Module.FS_createPath=(...a)=>Kb(...a);Module.FS_createDevice=(...a)=>Nb(...a);Module.FS_createDataFile=(...a)=>Mb(...a);Module.FS_createLazyFile=(...a)=>Pb(...a);var jd={152477:(a,b)=>{a=Error(a?H(z,a):"");a.kind="loadError";a.code=b;throw a;}},kd,X,wc,Wa,ld,md,Ec,Dc,Aa,rd={K:(a,b)=>Ba(a)(b),m:(a,b, -c)=>{(new Ca(a)).init(b,c);Da++;F()},s:function(a,b,c){Ea=c;try{var d=P(a);switch(b){case 0:var e=G();if(e<0)break;for(;lb[e];)e++;return xb(d,e).Na;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=G(),d.flags=d.flags&-289793|e&289792,0;case 12:return e=G(),w[e+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(f){if(typeof R=="undefined"||f.name!=="ErrnoError")throw f;return-f.ya}},V:function(a,b,c){Ea=c;try{var d=P(a);switch(b){case 21509:return d.ta?0:-59;case 21505:if(!d.ta)return-59; -if(d.ta.Ka.Xb){a=[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];var e=G();A[e>>2]=25856;A[e+4>>2]=5;A[e+8>>2]=191;A[e+12>>2]=35387;for(var f=0;f<32;f++)u[e+f+17]=a[f]||0}return 0;case 21510:case 21511:case 21512:return d.ta?0:-59;case 21506:case 21507:case 21508:if(!d.ta)return-59;if(d.ta.Ka.Yb)for(e=G(),a=[],f=0;f<32;f++)a.push(u[e+f+17]);return 0;case 21519:if(!d.ta)return-59;e=G();return A[e>>2]=0;case 21520:return d.ta?-28:-59;case 21537:case 21531:e=G();if(!d.pa.Wb)throw new J(59); -return d.pa.Wb(d,b,e);case 21523:if(!d.ta)return-59;d.ta.Ka.Zb&&(f=[24,80],e=G(),w[e>>1]=f[0],w[e+2>>1]=f[1]);return 0;case 21524:return d.ta?0:-59;case 21515:return d.ta?0:-59;default:return-28}}catch(g){if(typeof R=="undefined"||g.name!=="ErrnoError")throw g;return-g.ya}},t:function(a,b,c,d){Ea=d;try{b=b?H(z,b):"";var e=b;if(e.charAt(0)==="/")b=e;else{var f=a===-100?"/":P(a).path;if(e.length==0)throw new J(44);b=f+"/"+e}var g=d?G():0;c&64&&(g&=-19);return Gb(b,c,g).Na}catch(h){if(typeof R=="undefined"|| -h.name!=="ErrnoError")throw h;return-h.ya}},W:()=>F(""),v:(a,b,c,d,e)=>{b=S(b);d=d===0n;var f=g=>g;if(d){let g=c*8;f=h=>BigInt.asUintN(g,h);e=f(e)}U(a,{name:b,za:f,Ea:(g,h)=>{typeof h=="number"&&(h=BigInt(h));return h},La:Ub(b,c,!d),Ga:null})},Z:(a,b,c,d)=>{b=S(b);U(a,{name:b,za:function(e){return!!e},Ea:function(e,f){return f?c:d},La:function(e){return this.za(z[e])},Ga:null})},ca:(a,b,c,d,e,f,g,h,n,l,k,p,r)=>{k=S(k);f=W(e,f);h&&=W(g,h);l&&=W(n,l);r=W(p,r);var q=ec(k);dc(q,function(){yc(`Cannot construct ${k} due to unbound types`, -[d])});zc([a,b,c],d?[d]:[],t=>{t=t[0];if(d){var v=t.ua;var x=v.Ra}else x=$b.prototype;t=ac(k,function(...C){if(Object.getPrototypeOf(this)!==B)throw new T(`Use 'new' to construct ${k}`);if(void 0===y.Eb)throw new T(`${k} has no accessible constructor`);var pc=y.Eb[C.length];if(void 0===pc)throw new T(`Tried to invoke ctor of ${k} with invalid number of parameters (${C.length}) - expected (${Object.keys(y.Eb).toString()}) parameters instead!`);return pc.apply(this,C)});var B=Object.create(x,{constructor:{value:t}}); +Tc.push(a);return b},Vc=(a,b)=>{for(var c=Array(a),d=0;d>2],g=Rb[f];if(void 0===g)throw a=`${`parameter ${d}`} has unknown type ${xc(f)}`,new T(a);c[e]=g}return c},Wc={},Xc=a=>{var b=Wc[a];return b===void 0?S(a):b},Yc=a=>a%4===0&&(a%100!==0||a%400===0),Zc=[0,31,60,91,121,152,182,213,244,274,305,335],$c=[0,31,59,90,120,151,181,212,243,273,304,334],ad={},bd=a=>{if(!(a instanceof wa||a=="unwind"))throw a;},cd=a=>{ja=a;ya||Sc>0||(ia=!0);throw new wa(a);},dd=[],ed={},gd=()=>{if(!fd){var a= +{USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:(globalThis.navigator?.language??"C").replace("-","_")+".UTF-8",_:"./this.program"},b;for(b in ed)ed[b]===void 0?delete a[b]:a[b]=ed[b];var c=[];for(b in a)c.push(`${b}=${a[b]}`);fd=c}return fd},fd;O=Array(4096);zb(K,"/");Q("/tmp");Q("/home");Q("/home/web_user");(function(){Q("/dev");Sa(259,{read:()=>0,write:(d,e,f,g)=>g,Ha:()=>0});Cb("/dev/null",259);Ra(1280,Ua);Ra(1536,Va);Cb("/dev/tty",1280);Cb("/dev/tty1",1536);var a= +new Uint8Array(1024),b=0,c=()=>{b||(Ja(a),b=a.byteLength);return a[--b]};Nb("/dev","random",c);Nb("/dev","urandom",c);Q("/dev/shm");Q("/dev/shm/tmp")})();(function(){Q("/proc");var a=Q("/proc/self");Q("/proc/self/fd");zb({Ja(){var b=Za(a,"fd",16895,73);b.pa={Ha:K.pa.Ha};b.qa={Wa(c,d){c=+d;var e=P(c);c={parent:null,Ja:{Jb:"fake"},qa:{Za:()=>e.path},id:c+1};return c.parent=c},wb(){return Array.from(lb.entries()).filter(([,c])=>c).map(([c])=>c.toString())}};return b}},"/proc/self/fd")})();(()=>{var a= +$b.prototype;Object.assign(a,{isAliasOf:function(c){if(!(this instanceof $b&&c instanceof $b))return!1;var d=this.oa.va.ua,e=this.oa.ra;c.oa=c.oa;var f=c.oa.va.ua;for(c=c.oa.ra;d.Ba;)e=d.$a(e),d=d.Ba;for(;f.Ba;)c=f.$a(c),f=f.Ba;return d===f&&e===c},clone:function(){this.oa.ra||Vb(this);if(this.oa.Ya)return this.oa.count.value+=1,this;var c=Yb,d=Object,e=d.create,f=Object.getPrototypeOf(this),g=this.oa;c=c(e.call(d,f,{oa:{value:{count:g.count,Ua:g.Ua,Ya:g.Ya,ra:g.ra,va:g.va,xa:g.xa,Da:g.Da}}}));c.oa.count.value+= +1;c.oa.Ua=!1;return c},["delete"](){this.oa.ra||Vb(this);if(this.oa.Ua&&!this.oa.Ya)throw new T("Object already scheduled for deletion");Xb(this);var c=this.oa;--c.count.value;0===c.count.value&&(c.xa?c.Da.Pa(c.xa):c.va.ua.Pa(c.ra));this.oa.Ya||(this.oa.xa=void 0,this.oa.ra=void 0)},isDeleted:function(){return!this.oa.ra},deleteLater:function(){this.oa.ra||Vb(this);if(this.oa.Ua&&!this.oa.Ya)throw new T("Object already scheduled for deletion");Zb.push(this);this.oa.Ua=!0;return this}});var b=Symbol.dispose; +b&&(a[b]=a["delete"])})();Object.assign(tc.prototype,{Ub(a){this.Kb&&(a=this.Kb(a));return a},Fb(a){this.Pa?.(a)},La:mc,za:function(a){function b(){return this.eb?sc(this.ua.Ra,{va:this.fc,ra:c,Da:this,xa:a}):sc(this.ua.Ra,{va:this,ra:a})}var c=this.Ub(a);if(!c)return this.Fb(a),null;var d=qc(this.ua,c);if(void 0!==d){if(0===d.oa.count.value)return d.oa.ra=c,d.oa.xa=a,d.clone();d=d.clone();this.Fb(a);return d}d=this.ua.Tb(c);d=bc[d];if(!d)return b.call(this);d=this.cb?d.Qb:d.pointerType;var e=nc(c, +this.ua,d.ua);return e===null?b.call(this):this.eb?sc(d.ua.Ra,{va:d,ra:e,Da:this,xa:a}):sc(d.ua.Ra,{va:d,ra:e})}});na=Module.wasmMemory?Module.wasmMemory:new WebAssembly.Memory({initial:(Module.INITIAL_MEMORY||209715200)/65536,maximum:32768});ma();Module.noExitRuntime&&(ya=Module.noExitRuntime);Module.printErr&&(m=Module.printErr);Module.addRunDependency=gb;Module.removeRunDependency=()=>{N--;N||fb()};Module.FS_preloadFile=async(a,b,c,d,e,f,g,h)=>{var n=b?Ka(Ga(a+"/"+b)):a;gb(`cp ${n}`);try{var l= +c;typeof c=="string"&&(l=await cb(c));l=await ib(l,n);h?.();f||Mb(a,b,l,d,e,g)}finally{N--,N||fb()}};Module.FS_unlink=(...a)=>Eb(...a);Module.FS_createPath=(...a)=>Kb(...a);Module.FS_createDevice=(...a)=>Nb(...a);Module.FS_createDataFile=(...a)=>Mb(...a);Module.FS_createLazyFile=(...a)=>Pb(...a);var hd={140461:(a,b)=>{a=Error(a?H(z,a):"");a.kind="loadError";a.code=b;throw a;}},jd,X,wc,Wa,kd,ld,Ec,Dc,Aa,qd={K:(a,b)=>Ba(a)(b),m:(a,b,c)=>{(new Ca(a)).init(b,c);Da++;F()},s:function(a,b,c){Ea=c;try{var d= +P(a);switch(b){case 0:var e=G();if(e<0)break;for(;lb[e];)e++;return xb(d,e).Na;case 1:case 2:return 0;case 3:return d.flags;case 4:return e=G(),d.flags=d.flags&-289793|e&289792,0;case 12:return e=G(),w[e+0>>1]=2,0;case 13:case 14:return 0}return-28}catch(f){if(typeof R=="undefined"||f.name!=="ErrnoError")throw f;return-f.ya}},V:function(a,b,c){Ea=c;try{var d=P(a);switch(b){case 21509:return d.ta?0:-59;case 21505:if(!d.ta)return-59;if(d.ta.Ka.Xb){a=[3,28,127,21,4,0,1,0,17,19,26,0,18,15,23,22,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0];var e=G();A[e>>2]=25856;A[e+4>>2]=5;A[e+8>>2]=191;A[e+12>>2]=35387;for(var f=0;f<32;f++)u[e+f+17]=a[f]||0}return 0;case 21510:case 21511:case 21512:return d.ta?0:-59;case 21506:case 21507:case 21508:if(!d.ta)return-59;if(d.ta.Ka.Yb)for(e=G(),a=[],f=0;f<32;f++)a.push(u[e+f+17]);return 0;case 21519:if(!d.ta)return-59;e=G();return A[e>>2]=0;case 21520:return d.ta?-28:-59;case 21537:case 21531:e=G();if(!d.pa.Wb)throw new J(59);return d.pa.Wb(d,b,e);case 21523:if(!d.ta)return-59; +d.ta.Ka.Zb&&(f=[24,80],e=G(),w[e>>1]=f[0],w[e+2>>1]=f[1]);return 0;case 21524:return d.ta?0:-59;case 21515:return d.ta?0:-59;default:return-28}}catch(g){if(typeof R=="undefined"||g.name!=="ErrnoError")throw g;return-g.ya}},t:function(a,b,c,d){Ea=d;try{b=b?H(z,b):"";var e=b;if(e.charAt(0)==="/")b=e;else{var f=a===-100?"/":P(a).path;if(e.length==0)throw new J(44);b=f+"/"+e}var g=d?G():0;c&64&&(g&=-19);return Gb(b,c,g).Na}catch(h){if(typeof R=="undefined"||h.name!=="ErrnoError")throw h;return-h.ya}}, +W:()=>F(""),v:(a,b,c,d,e)=>{b=S(b);d=d===0n;var f=g=>g;if(d){let g=c*8;f=h=>BigInt.asUintN(g,h);e=f(e)}U(a,{name:b,za:f,Ea:(g,h)=>{typeof h=="number"&&(h=BigInt(h));return h},La:Ub(b,c,!d),Ga:null})},Z:(a,b,c,d)=>{b=S(b);U(a,{name:b,za:function(e){return!!e},Ea:function(e,f){return f?c:d},La:function(e){return this.za(z[e])},Ga:null})},ca:(a,b,c,d,e,f,g,h,n,l,k,p,r)=>{k=S(k);f=W(e,f);h&&=W(g,h);l&&=W(n,l);r=W(p,r);var q=ec(k);dc(q,function(){yc(`Cannot construct ${k} due to unbound types`,[d])}); +zc([a,b,c],d?[d]:[],t=>{t=t[0];if(d){var v=t.ua;var x=v.Ra}else x=$b.prototype;t=ac(k,function(...C){if(Object.getPrototypeOf(this)!==B)throw new T(`Use 'new' to construct ${k}`);if(void 0===y.Eb)throw new T(`${k} has no accessible constructor`);var pc=y.Eb[C.length];if(void 0===pc)throw new T(`Tried to invoke ctor of ${k} with invalid number of parameters (${C.length}) - expected (${Object.keys(y.Eb).toString()}) parameters instead!`);return pc.apply(this,C)});var B=Object.create(x,{constructor:{value:t}}); t.prototype=B;var y=new fc(k,t,B,r,v,f,h,l);if(y.Ba){var L;(L=y.Ba).xb??(L.xb=[]);y.Ba.xb.push(y)}v=new tc(k,y,!0,!1,!1);L=new tc(k+"*",y,!1,!1,!1);x=new tc(k+" const*",y,!1,!0,!1);bc[a]={pointerType:L,Qb:x};uc(q,t);return[v,L,x]})},l:(a,b,c,d,e,f,g,h,n)=>{var l=Fc(c,d);b=S(b);b=Gc(b);f=W(e,f);zc([],[a],k=>{function p(){yc(`Cannot call ${r} due to unbound types`,l)}k=k[0];var r=`${k.name}.${b}`;b.startsWith("@@")&&(b=Symbol[b.substring(2)]);h&&k.ua.hc.push(b);var q=k.ua.Ra,t=q[b];void 0===t||void 0=== t.wa&&t.className!==k.name&&t.Ta===c-2?(p.Ta=c-2,p.className=k.name,q[b]=p):(cc(q,b,r),q[b].wa[c-2]=p);zc([],l,v=>{v=Cc(r,v,k,f,g,n);void 0===q[b].wa?(v.Ta=c-2,q[b]=v):q[b].wa[c-2]=v;return[]});return[]})},X:a=>U(a,Jc),u:(a,b,c)=>{b=S(b);U(a,{name:b,za:d=>d,Ea:(d,e)=>e,La:Kc(b,c),Ga:null})},i:(a,b,c,d,e,f,g)=>{var h=Fc(b,c);a=S(a);a=Gc(a);e=W(d,e);dc(a,function(){yc(`Cannot call ${a} due to unbound types`,h)},b-1);zc([],h,n=>{uc(a,Cc(a,[n[0],null].concat(n.slice(1)),null,e,f,g),b-1);return[]})},k:(a, b,c,d,e)=>{b=S(b);var f=h=>h;if(d===0){var g=32-8*c;f=h=>h<>>g;e=f(e)}U(a,{name:b,za:f,Ea:(h,n)=>n,La:Ub(b,c,d!==0),Ga:null})},e:(a,b,c)=>{function d(f){return new e(u.buffer,D[f+4>>2],D[f>>2])}var e=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,BigInt64Array,BigUint64Array][b];c=S(c);U(a,{name:c,za:d,La:d},{Vb:!0})},ba:(a,b,c,d,e,f,g,h,n,l,k,p)=>{c=S(c);f=W(e,f);h=W(g,h);l=W(n,l);p=W(k,p);zc([a],[b],r=>{r=r[0];return[new tc(c,r.ua,!1,!1,!0,r,d,f, -h,l,p)]})},Y:(a,b)=>{b=S(b);U(a,{name:b,za(c){var d=(d=c+4)?H(z,d,D[c>>2],!0):"";X(c);return d},Ea(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e=typeof d=="string";if(!(e||ArrayBuffer.isView(d)&&d.BYTES_PER_ELEMENT==1))throw new T("Cannot pass non-string to std::string");var f=e?Oa(d):d.length;var g=kd(4+f+1),h=g+4;D[g>>2]=f;e?I(d,z,h,f+1):z.set(d,h);c!==null&&c.push(X,g);return g},La:mc,Ga(c){X(c)}})},p:(a,b,c)=>{c=S(c);if(b===2){var d=Mc;var e=Nc;var f=Oc}else d=Pc,e=Qc,f=Rc;U(a,{name:c, -za:g=>{var h=d(g+4,D[g>>2]*b,!0);X(g);return h},Ea:(g,h)=>{if(typeof h!="string")throw new T(`Cannot pass non-string to C++ string type ${c}`);var n=f(h),l=kd(4+n+b);D[l>>2]=n/b;e(h,l+4,n+b);g!==null&&g.push(X,l);return l},La:mc,Ga(g){X(g)}})},_:(a,b)=>{b=S(b);U(a,{bc:!0,name:b,za:()=>{},Ea:()=>{}})},M:()=>{ya=!1;Sc=0},D:()=>{throw new la;},g:(a,b,c)=>{var d;[b,...d]=Vc(a,b);var e=b.Ea.bind(b),f=d.map(h=>h.La.bind(h));a--;var g=Array(a);b=`methodCaller<(${d.map(h=>h.name)}) => ${b.name}>`;return Uc(ac(b, +h,l,p)]})},Y:(a,b)=>{b=S(b);U(a,{name:b,za(c){var d=(d=c+4)?H(z,d,D[c>>2],!0):"";X(c);return d},Ea(c,d){d instanceof ArrayBuffer&&(d=new Uint8Array(d));var e=typeof d=="string";if(!(e||ArrayBuffer.isView(d)&&d.BYTES_PER_ELEMENT==1))throw new T("Cannot pass non-string to std::string");var f=e?Oa(d):d.length;var g=jd(4+f+1),h=g+4;D[g>>2]=f;e?I(d,z,h,f+1):z.set(d,h);c!==null&&c.push(X,g);return g},La:mc,Ga(c){X(c)}})},p:(a,b,c)=>{c=S(c);if(b===2){var d=Mc;var e=Nc;var f=Oc}else d=Pc,e=Qc,f=Rc;U(a,{name:c, +za:g=>{var h=d(g+4,D[g>>2]*b,!0);X(g);return h},Ea:(g,h)=>{if(typeof h!="string")throw new T(`Cannot pass non-string to C++ string type ${c}`);var n=f(h),l=jd(4+n+b);D[l>>2]=n/b;e(h,l+4,n+b);g!==null&&g.push(X,l);return l},La:mc,Ga(g){X(g)}})},_:(a,b)=>{b=S(b);U(a,{bc:!0,name:b,za:()=>{},Ea:()=>{}})},M:()=>{ya=!1;Sc=0},D:()=>{throw new la;},g:(a,b,c)=>{var d;[b,...d]=Vc(a,b);var e=b.Ea.bind(b),f=d.map(h=>h.La.bind(h));a--;var g=Array(a);b=`methodCaller<(${d.map(h=>h.name)}) => ${b.name}>`;return Uc(ac(b, (h,n,l,k)=>{for(var p=0,r=0;r>2]=V(h));return q}))},z:Ic,h:a=>{if(!a)return V(globalThis);a=Xc(a);return V(globalThis[a])},j:(a,b)=>{a=Z(a);b=Z(b);return V(a[b])},w:a=>{a>9&&(Y[a+1]+=1)},f:(a,b,c,d,e)=>Tc[a](b,c,d,e),x:()=>V([]),b:a=>V(Xc(a)),d:()=>V({}),F:a=>{for(var b=Z(a);b.length;){var c=b.pop();b.pop()(c)}Ic(a)}, c:(a,b,c)=>{a=Z(a);b=Z(b);c=Z(c);a[b]=c},aa:a=>{a=Z(a);return V(typeof a)},O:function(a,b){a=a<-9007199254740992||a>9007199254740992?NaN:Number(a);a=new Date(a*1E3);if(isNaN(a.getTime()))return 1;A[b>>2]=a.getSeconds();A[b+4>>2]=a.getMinutes();A[b+8>>2]=a.getHours();A[b+12>>2]=a.getDate();A[b+16>>2]=a.getMonth();A[b+20>>2]=a.getFullYear()-1900;A[b+24>>2]=a.getDay();A[b+28>>2]=(Yc(a.getFullYear())?Zc:$c)[a.getMonth()]+a.getDate()-1|0;A[b+36>>2]=-(a.getTimezoneOffset()*60);var c=(new Date(a.getFullYear(), 6,1)).getTimezoneOffset(),d=(new Date(a.getFullYear(),0,1)).getTimezoneOffset();A[b+32>>2]=(c!=d&&a.getTimezoneOffset()==Math.min(d,c))|0;return 0},P:function(a){var b=(()=>{var c=new Date(A[a+20>>2]+1900,A[a+16>>2],A[a+12>>2],A[a+8>>2],A[a+4>>2],A[a>>2],0);if(isNaN(c.getTime()))return-1;var d=A[a+32>>2],e=c.getTimezoneOffset(),f=(new Date(c.getFullYear(),6,1)).getTimezoneOffset(),g=(new Date(c.getFullYear(),0,1)).getTimezoneOffset(),h=Math.min(g,f);if(d<0)d=Number(f!=g&&h==e);else if(d>0!=(h==e)&& (f=Math.max(g,f),c.setTime(c.getTime()+((d>0?h:f)-e)*6E4),isNaN(c.getTime())))return-1;A[a+32>>2]=d;A[a+24>>2]=c.getDay();A[a+28>>2]=(Yc(c.getFullYear())?Zc:$c)[c.getMonth()]+c.getDate()-1|0;A[a>>2]=c.getSeconds();A[a+4>>2]=c.getMinutes();A[a+8>>2]=c.getHours();A[a+12>>2]=c.getDate();A[a+16>>2]=c.getMonth();A[a+20>>2]=c.getYear();return c.getTime()/1E3})();return BigInt(b)},N:function(a,b,c,d,e,f){f=f<-9007199254740992||f>9007199254740992?NaN:Number(f);try{var g=P(e);if(c&2){if((g.node.mode&61440)!== -32768)throw new J(43);d&2||g.pa.gb&&g.pa.gb(g,z.subarray(a,a+b),f,b,d)}}catch(h){if(typeof R=="undefined"||h.name!=="ErrnoError")throw h;return-h.ya}},E:(a,b)=>{ad[a]&&(clearTimeout(ad[a].id),delete ad[a]);if(!b)return 0;var c=setTimeout(()=>{delete ad[a];dd(()=>ld(a,performance.now()))},b);ad[a]={id:c,Dc:b};return 0},Q:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e,6,1)).getTimezoneOffset();D[a>>2]=Math.max(f,e)*60;A[b>>2]=Number(f!=e);b=g=>{var h= -Math.abs(g);return`UTC${g>=0?"-":"+"}${String(Math.floor(h/60)).padStart(2,"0")}${String(h%60).padStart(2,"0")}`};a=b(f);b=b(e);e=0&&a<=3))return 28;E[c>>3]=BigInt(Math.round((a===0?Date.now():performance.now())*1E3*1E3));return 0},y:(a,b,c)=>{ed.length=0;for(var d;d=z[b++];){var e=d!=105;e&=d!=112;c+=e&&c%8?4:0;ed.push(d==112?D[c>>2]:d==106?E[c>>3]:d==105?A[c>>2]:qa[c>>3]);c+=e?8:4}return jd[a](...ed)},J:()=>2147483648, -I:a=>{var b=z.length;a>>>=0;if(a>2147483648)return!1;for(var c=1;c<=4;c*=2){a:{var d=(Math.min(2147483648,Math.ceil(Math.max(a,b+2097152/c)/65536)*65536)-na.buffer.byteLength+65535)/65536|0;try{na.grow(d);ma();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},T:(a,b)=>{var c=0,d=0,e;for(e of hd()){var f=b+c;D[a+d>>2]=f;c+=I(e,z,f,Infinity)+1;d+=4}return 0},U:(a,b)=>{var c=hd();D[a>>2]=c.length;a=0;for(var d of c)a+=Oa(d)+1;D[b>>2]=a;return 0},$:a=>{ja=a;cd(a)},o:function(a){try{var b=P(a); -Hb(b);return 0}catch(c){if(typeof R=="undefined"||c.name!=="ErrnoError")throw c;return c.ya}},S:function(a,b){try{var c=P(a);u[b]=c.ta?2:M(c.mode)?3:(c.mode&61440)===40960?7:4;w[b+2>>1]=0;E[b+8>>3]=BigInt(0);E[b+16>>3]=BigInt(0);return 0}catch(d){if(typeof R=="undefined"||d.name!=="ErrnoError")throw d;return d.ya}},r:function(a,b,c,d){try{a:{var e=P(a);a=b;for(var f,g=b=0;g>2],n=D[a+4>>2];a+=8;try{var l=e,k=h,p=n,r=f,q=u;if(p<0||r<0)throw new J(28);if(l.Na===null)throw new J(8); -if((l.flags&2097155)===1)throw new J(8);if(M(l.node.mode))throw new J(31);if(!l.pa.read)throw new J(28);var t=typeof r!="undefined";if(!t)r=l.position;else if(!l.seekable)throw new J(70);var v=l.pa.read(l,q,k,p,r);t||(l.position+=v);var x=v}catch(y){if(b>0&&y instanceof J&&(y.ya==6||y.ya==6))break;throw y;}if(x<0){var B=-1;break a}b+=x;if(x>2]=B;return 0}catch(y){if(typeof R=="undefined"||y.name!=="ErrnoError")throw y;return y.ya}},R:function(a,b,c,d){b= -b<-9007199254740992||b>9007199254740992?NaN:Number(b);try{if(isNaN(b))return 22;var e=P(a);Ib(e,b,c);E[d>>3]=BigInt(e.position);e.pb&&!b&&c===0&&(e.pb=null);return 0}catch(f){if(typeof R=="undefined"||f.name!=="ErrnoError")throw f;return f.ya}},n:function(a,b,c,d){try{var e=P(a);a=b;if(c==1)var f=Jb(e,u,D[a>>2],D[a+4>>2]);else{for(var g=b=0,h=a;g>2];var n=new Uint8Array(b);for(g=h=0;g>2],k=D[a+4>>2];n.set(z.subarray(l,l+k),h);h+=k}f=Jb(e,n,0,b)}D[d>>2]= -f;return 0}catch(p){if(typeof R=="undefined"||p.name!=="ErrnoError")throw p;return p.ya}},A:nd,q:od,B:pd,C:qd,a:na,L:cd,G:(a,b)=>Ja(z.subarray(a,a+b))};function od(a,b){var c=Dc();try{Ba(a)(b)}catch(d){Ec(c);if(!(d instanceof ka))throw d;md(1,0)}}function qd(a,b,c,d){var e=Dc();try{Ba(a)(b,c,d)}catch(f){Ec(e);if(!(f instanceof ka))throw f;md(1,0)}}function pd(a,b,c){var d=Dc();try{Ba(a)(b,c)}catch(e){Ec(d);if(!(e instanceof ka))throw e;md(1,0)}}function nd(a,b,c,d){var e=Dc();try{return Ba(a)(b,c, -d)}catch(f){Ec(e);if(!(f instanceof ka))throw f;md(1,0)}}var sd;sd=await (async function(){function a(d){d=sd=d.exports;kd=d.ea;X=d.fa;wc=d.ha;Wa=d.ja;ld=d.ka;md=d.la;Ec=d.ma;Dc=d.na;Module.__ZN2MB2NN28LinearDefragmentingAllocator10Allocation4nullE=d.ga.value;Aa=d.ia;return sd}var b={a:rd},c=Module.instantiateWasm;if(c)return new Promise(d=>{c(b,e=>d(a(e)))});sa??=Module.locateFile?Module.locateFile?Module.locateFile("biometrics-wasm.wasm",da):da+"biometrics-wasm.wasm":(new URL("biometrics-wasm.wasm", -import.meta.url)).href;return function(d){return a(d.instance)}(await va(b))}());await (async function(){var a=Module.preRun;a&&(typeof a=="function"&&(a=[a]),xa.push(...a));for(;xa.length>0;)xa.shift()(Module);N&&await eb();ia||(Module.noFSInit||nb||(nb=!0,Db("/dev/tty","/dev/stdin"),Db("/dev/tty","/dev/stdout"),Db("/dev/tty1","/dev/stderr"),Gb("/dev/stdin",0),Gb("/dev/stdout",1),Gb("/dev/stderr",1)),sd.da(),ob=!1)}());;return Module}export default createModule; +32768)throw new J(43);d&2||g.pa.gb&&g.pa.gb(g,z.subarray(a,a+b),f,b,d)}}catch(h){if(typeof R=="undefined"||h.name!=="ErrnoError")throw h;return-h.ya}},E:(a,b)=>{ad[a]&&(clearTimeout(ad[a].id),delete ad[a]);if(!b)return 0;var c=setTimeout(()=>{delete ad[a];var d=kd,e=[a,performance.now()];if(!ia)try{d(...e)}catch(f){bd(f)}finally{if(!(ya||Sc>0))try{ja=d=ja,cd(d)}catch(f){bd(f)}}},b);ad[a]={id:c,Dc:b};return 0},Q:(a,b,c,d)=>{var e=(new Date).getFullYear(),f=(new Date(e,0,1)).getTimezoneOffset();e=(new Date(e, +6,1)).getTimezoneOffset();D[a>>2]=Math.max(f,e)*60;A[b>>2]=Number(f!=e);b=g=>{var h=Math.abs(g);return`UTC${g>=0?"-":"+"}${String(Math.floor(h/60)).padStart(2,"0")}${String(h%60).padStart(2,"0")}`};a=b(f);b=b(e);e=0&&a<=3))return 28;E[c>>3]=BigInt(Math.round((a===0?Date.now():performance.now())*1E6));return 0},y:(a,b,c)=>{dd.length=0;for(var d;d=z[b++];){var e=d!=105;e&=d!=112;c+=e&&c%8?4:0;dd.push(d==112?D[c>>2]:d== +106?E[c>>3]:d==105?A[c>>2]:qa[c>>3]);c+=e?8:4}return hd[a](...dd)},J:()=>2147483648,I:a=>{var b=z.length;a>>>=0;if(a>2147483648)return!1;for(var c=1;c<=4;c*=2){a:{var d=(Math.min(2147483648,Math.ceil(Math.max(a,b+2097152/c)/65536)*65536)-na.buffer.byteLength+65535)/65536|0;try{na.grow(d);ma();var e=1;break a}catch(f){}e=void 0}if(e)return!0}return!1},T:(a,b)=>{var c=0,d=0,e;for(e of gd()){var f=b+c;D[a+d>>2]=f;c+=I(e,z,f,Infinity)+1;d+=4}return 0},U:(a,b)=>{var c=gd();D[a>>2]=c.length;a=0;for(var d of c)a+= +Oa(d)+1;D[b>>2]=a;return 0},$:a=>{ja=a;cd(a)},o:function(a){try{var b=P(a);Hb(b);return 0}catch(c){if(typeof R=="undefined"||c.name!=="ErrnoError")throw c;return c.ya}},S:function(a,b){try{var c=P(a);u[b]=c.ta?2:M(c.mode)?3:(c.mode&61440)===40960?7:4;w[b+2>>1]=0;E[b+8>>3]=BigInt(0);E[b+16>>3]=BigInt(0);return 0}catch(d){if(typeof R=="undefined"||d.name!=="ErrnoError")throw d;return d.ya}},r:function(a,b,c,d){try{a:{var e=P(a);a=b;for(var f,g=b=0;g>2],n=D[a+4>>2];a+=8;try{var l=e, +k=h,p=n,r=f,q=u;if(p<0||r<0)throw new J(28);if(l.Na===null)throw new J(8);if((l.flags&2097155)===1)throw new J(8);if(M(l.node.mode))throw new J(31);if(!l.pa.read)throw new J(28);var t=typeof r!="undefined";if(!t)r=l.position;else if(!l.seekable)throw new J(70);var v=l.pa.read(l,q,k,p,r);t||(l.position+=v);var x=v}catch(y){if(b>0&&y instanceof J&&(y.ya==6||y.ya==6))break;throw y;}if(x<0){var B=-1;break a}b+=x;if(x>2]=B;return 0}catch(y){if(typeof R=="undefined"|| +y.name!=="ErrnoError")throw y;return y.ya}},R:function(a,b,c,d){b=b<-9007199254740992||b>9007199254740992?NaN:Number(b);try{if(isNaN(b))return 22;var e=P(a);Ib(e,b,c);E[d>>3]=BigInt(e.position);e.pb&&!b&&c===0&&(e.pb=null);return 0}catch(f){if(typeof R=="undefined"||f.name!=="ErrnoError")throw f;return f.ya}},n:function(a,b,c,d){try{var e=P(a);a=b;if(c==1)var f=Jb(e,u,D[a>>2],D[a+4>>2]);else{for(var g=b=0,h=a;g>2];var n=new Uint8Array(b);for(g=h=0;g>2], +k=D[a+4>>2];n.set(z.subarray(l,l+k),h);h+=k}f=Jb(e,n,0,b)}D[d>>2]=f;return 0}catch(p){if(typeof R=="undefined"||p.name!=="ErrnoError")throw p;return p.ya}},A:md,q:nd,B:od,C:pd,a:na,L:cd,G:(a,b)=>Ja(z.subarray(a,a+b))};function nd(a,b){var c=Dc();try{Ba(a)(b)}catch(d){Ec(c);if(!(d instanceof ka))throw d;ld(1,0)}}function pd(a,b,c,d){var e=Dc();try{Ba(a)(b,c,d)}catch(f){Ec(e);if(!(f instanceof ka))throw f;ld(1,0)}}function od(a,b,c){var d=Dc();try{Ba(a)(b,c)}catch(e){Ec(d);if(!(e instanceof ka))throw e; +ld(1,0)}}function md(a,b,c,d){var e=Dc();try{return Ba(a)(b,c,d)}catch(f){Ec(e);if(!(f instanceof ka))throw f;ld(1,0)}}var rd;rd=await (async function(){function a(d){d=rd=d.exports;jd=d.ea;X=d.fa;wc=d.ha;Wa=d.ja;kd=d.ka;ld=d.la;Ec=d.ma;Dc=d.na;Module.__ZN2MB2NN28LinearDefragmentingAllocator10Allocation4nullE=d.ga.value;Aa=d.ia;return rd}var b={a:qd},c=Module.instantiateWasm;if(c)return new Promise(d=>{c(b,e=>d(a(e)))});sa??=Module.locateFile?Module.locateFile?Module.locateFile("biometrics-wasm.wasm", +da):da+"biometrics-wasm.wasm":(new URL("biometrics-wasm.wasm",import.meta.url)).href;return function(d){return a(d.instance)}(await va(b))}());await (async function(){var a=Module.preRun;a&&(typeof a=="function"&&(a=[a]),xa.push(...a));for(;xa.length>0;)xa.shift()(Module);N&&await eb();ia||(Module.noFSInit||nb||(nb=!0,Db("/dev/tty","/dev/stdin"),Db("/dev/tty","/dev/stdout"),Db("/dev/tty1","/dev/stderr"),Gb("/dev/stdin",0),Gb("/dev/stdout",1),Gb("/dev/stderr",1)),rd.da(),ob=!1)}());;return Module}export default createModule; diff --git a/packages/biometrics-wasm/dist/simd/biometrics-wasm.wasm b/packages/biometrics-wasm/dist/simd/biometrics-wasm.wasm index 14163a3f..2edbb013 100644 Binary files a/packages/biometrics-wasm/dist/simd/biometrics-wasm.wasm and b/packages/biometrics-wasm/dist/simd/biometrics-wasm.wasm differ diff --git a/packages/biometrics-wasm/dist/size-manifest.json b/packages/biometrics-wasm/dist/size-manifest.json index a09fa0b4..d0a18718 100644 --- a/packages/biometrics-wasm/dist/size-manifest.json +++ b/packages/biometrics-wasm/dist/size-manifest.json @@ -1,9 +1,9 @@ { "wasm": { - "simd": 1413796, - "simd-threads": 1439798, - "simd-relaxed": 1406776, - "simd-relaxed-threads": 1432821 + "simd": 1121742, + "simd-threads": 1147974, + "simd-relaxed": 1114606, + "simd-relaxed-threads": 1140849 }, "data": { "simd": 198569, diff --git a/packages/biometrics-wasm/package.json b/packages/biometrics-wasm/package.json index 87b17fb5..e443640c 100644 --- a/packages/biometrics-wasm/package.json +++ b/packages/biometrics-wasm/package.json @@ -1,6 +1,6 @@ { "name": "@microblink/biometrics-wasm", - "version": "1.0.0", + "version": "1000.0.2", "private": true, "files": [ "dist", diff --git a/packages/biometrics-worker/CHANGELOG.md b/packages/biometrics-worker/CHANGELOG.md new file mode 100644 index 00000000..9aaeff45 --- /dev/null +++ b/packages/biometrics-worker/CHANGELOG.md @@ -0,0 +1,9 @@ +# @microblink/biometrics-worker + +## 1000.0.2 + +## 1000.0.1 + +## 1000.0.0 + +Added face capture processing in a Web Worker to keep the main browser thread responsive diff --git a/packages/biometrics-worker/package.json b/packages/biometrics-worker/package.json index 1b6d740f..2a3e4548 100644 --- a/packages/biometrics-worker/package.json +++ b/packages/biometrics-worker/package.json @@ -1,6 +1,6 @@ { "name": "@microblink/biometrics-worker", - "version": "1.0.0", + "version": "1000.0.2", "private": true, "files": [ "dist", diff --git a/packages/biometrics/CHANGELOG.md b/packages/biometrics/CHANGELOG.md index d6df9c56..6080c6ad 100644 --- a/packages/biometrics/CHANGELOG.md +++ b/packages/biometrics/CHANGELOG.md @@ -1,5 +1,13 @@ # @microblink/biometrics +## 1000.0.2 + +### Patch Changes + +- Updated dependencies + - @microblink/biometrics-core@1000.0.2 + - @microblink/biometrics-ux-manager@1000.0.2 + ## 1000.0.1 ### Patch Changes diff --git a/packages/biometrics/package.json b/packages/biometrics/package.json index d699d817..32031b97 100644 --- a/packages/biometrics/package.json +++ b/packages/biometrics/package.json @@ -1,6 +1,6 @@ { "name": "@microblink/biometrics", - "version": "1000.0.1", + "version": "1000.0.2", "description": "Biometrics browser SDK for guided and headless face capture.", "keywords": [], "license": "ISC", diff --git a/release-manifest.json b/release-manifest.json index b7f8851b..f6915459 100644 --- a/release-manifest.json +++ b/release-manifest.json @@ -1,10 +1,10 @@ { "baselineRef": "origin/main", "selected": [ - "blinkid-verify" + "biometrics" ], "changed": [ - "blinkid-verify" + "biometrics" ], "products": { "camera-manager": { @@ -26,16 +26,16 @@ "baselineVersion": "3001.0.2" }, "biometrics": { - "selected": false, - "changed": false, - "newVersion": "1000.0.1", + "selected": true, + "changed": true, + "newVersion": "1000.0.2", "baselineVersion": "1000.0.1" }, "blinkid-verify": { - "selected": true, - "changed": true, + "selected": false, + "changed": false, "newVersion": "4000.0.0", - "baselineVersion": "4000.0.0-next.1" + "baselineVersion": "4000.0.0" } } }