@incodetech/core 0.0.0-dev-20260709-e9d0614f → 0.0.0-dev-20260709-36b8e7c1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/dist/authentication.esm.js +12 -12
  2. package/dist/{authenticationManager-Bfeq_w07.esm.js → authenticationManager-iFiNf_D6.esm.js} +2 -2
  3. package/dist/{authenticationStateMachine-BkWA4Vcm.esm.js → authenticationStateMachine-_-3NW0oX.esm.js} +2 -2
  4. package/dist/{backCameraStream-POavVKz4.esm.js → backCameraStream-uixCSgiq.esm.js} +1 -1
  5. package/dist/{browserSimulation-DFpmweuc.esm.js → browserSimulation-CWJhFPZ2.esm.js} +1216 -153
  6. package/dist/certificate-issuance.d.ts +28 -28
  7. package/dist/consent.d.ts +1 -1
  8. package/dist/{consentManager-IkH3cHQp.d.ts → consentManager-Cg55dDe5.d.ts} +47 -47
  9. package/dist/cpf-ocr.d.ts +1 -1
  10. package/dist/{cpfOcrManager-It-dKOPr.d.ts → cpfOcrManager-egf2L0Et.d.ts} +17 -17
  11. package/dist/{deepsightLoader--uzeMW0e.esm.js → deepsightLoader-Cj2PerlR.esm.js} +5 -5
  12. package/dist/{deepsightService-BsLpJT8o.esm.js → deepsightService-DU9yBWg_.esm.js} +2 -2
  13. package/dist/device.d.ts +1 -9
  14. package/dist/device.esm.js +3 -3
  15. package/dist/document-capture.d.ts +1 -1
  16. package/dist/document-capture.esm.js +4 -4
  17. package/dist/document-upload.d.ts +46 -46
  18. package/dist/document-upload.esm.js +2 -2
  19. package/dist/{documentCaptureManager-Dwup6SOP.esm.js → documentCaptureManager-CDbQZ1jl.esm.js} +1 -1
  20. package/dist/{documentCaptureManager-Do3W64nY.d.ts → documentCaptureManager-Cz7gBQa3.d.ts} +234 -236
  21. package/dist/{documentCaptureStateMachine-BuI5VuAW.esm.js → documentCaptureStateMachine-CM4csLi9.esm.js} +14 -16
  22. package/dist/ekyb.esm.js +6 -6
  23. package/dist/{ekybStateMachine-DHRXWhGA.esm.js → ekybStateMachine-BHf7wsHS.esm.js} +1 -1
  24. package/dist/extensibility.d.ts +8 -8
  25. package/dist/extensibility.esm.js +21 -21
  26. package/dist/face-match.d.ts +1 -1
  27. package/dist/{faceCaptureManagerFactory-Clc6JTUL.esm.js → faceCaptureManagerFactory-Cfaiq169.esm.js} +1 -1
  28. package/dist/{faceCaptureSetup--0RKZXes.esm.js → faceCaptureSetup-DYPPQEON.esm.js} +2 -2
  29. package/dist/{faceMatchManager-BLNrKbeI.d.ts → faceMatchManager-wR-6pJ-t.d.ts} +2 -2
  30. package/dist/fiscal-qr.esm.js +2 -2
  31. package/dist/flow.d.ts +2 -2
  32. package/dist/flow.esm.js +5 -5
  33. package/dist/{flowServices-DDK4bMXx.esm.js → flowServices-CN-qbIDF.esm.js} +1 -1
  34. package/dist/geolocation.esm.js +3 -3
  35. package/dist/{geolocationManager-DCfJ_S4L.esm.js → geolocationManager-Y9FZP1w1.esm.js} +1 -1
  36. package/dist/{geolocationStateMachine-fRW4mvNt.esm.js → geolocationStateMachine-BXpXtbpl.esm.js} +1 -1
  37. package/dist/getBrowser-1yNcfFZR.esm.js +8 -0
  38. package/dist/home.d.ts +10 -10
  39. package/dist/id-ocr.d.ts +1 -1
  40. package/dist/id-verification.d.ts +1 -1
  41. package/dist/id.esm.js +11 -11
  42. package/dist/{idCaptureManager-Dz6au7T1.esm.js → idCaptureManager-DnglfDHb.esm.js} +1 -1
  43. package/dist/{idCaptureStateMachine-COqpgiFu.esm.js → idCaptureStateMachine-Dqhk1l7P.esm.js} +6 -6
  44. package/dist/{idOcrManager-Ddj8Zpn6.d.ts → idOcrManager-CPX5o1j6.d.ts} +52 -52
  45. package/dist/{idVerificationManager-DLeCBgHE.d.ts → idVerificationManager-CVn4mqjE.d.ts} +25 -25
  46. package/dist/identity-reuse.d.ts +1 -1
  47. package/dist/{identityReuseManager-CQ0uu66M.d.ts → identityReuseManager-CAIW177J.d.ts} +31 -31
  48. package/dist/index.esm.js +5 -5
  49. package/dist/mandatory-consent.d.ts +1 -1
  50. package/dist/{mandatoryConsentManager-BvjgzOv_.d.ts → mandatoryConsentManager-CRKGICe7.d.ts} +50 -50
  51. package/dist/{mediaRecorderOptions-BIn657lu.esm.js → mediaRecorderOptions-DuYelylE.esm.js} +1 -1
  52. package/dist/{onDeviceFaceResults-Dt_GP4Ez.esm.js → onDeviceFaceResults-C0lcz7Za.esm.js} +3 -3
  53. package/dist/personhood.esm.js +7 -7
  54. package/dist/{recordingService-AMay1uYQ.esm.js → recordingService-CMaZX7Fs.esm.js} +3 -3
  55. package/dist/selfie.esm.js +12 -12
  56. package/dist/{selfieManager-8oeew8KZ.esm.js → selfieManager-3T3-dsnX.esm.js} +2 -2
  57. package/dist/{selfieStateMachine-xJehn2CW.esm.js → selfieStateMachine-CmH5ZjoB.esm.js} +2 -2
  58. package/dist/session.esm.js +4 -4
  59. package/dist/{sessionInitializer-D_TErCvg.esm.js → sessionInitializer-BK6kw3bD.esm.js} +119 -4
  60. package/dist/{setup-DrcSOE02.esm.js → setup-HplmI6SC.esm.js} +1 -1
  61. package/dist/trust-graph.d.ts +2 -2
  62. package/dist/video-selfie.d.ts +2 -2
  63. package/dist/video-selfie.esm.js +9 -9
  64. package/dist/wasm.esm.js +5 -5
  65. package/dist/workflow.d.ts +105 -105
  66. package/dist/workflow.esm.js +17 -17
  67. package/package.json +3 -3
  68. package/dist/thumbmarkAdapter-CVyiGp0-.esm.js +0 -1194
  69. /package/dist/{platform-BoeUeUrV.esm.js → platform-0Ot-bF_a.esm.js} +0 -0
@@ -1,121 +1,6 @@
1
- import { r as isIOS } from "./platform-BoeUeUrV.esm.js";
1
+ import { r as isIOS } from "./platform-0Ot-bF_a.esm.js";
2
+ import { t as getUserAgent } from "./getBrowser-1yNcfFZR.esm.js";
2
3
 
3
- //#region ../infra/src/providers/browser/BrowserEnvironmentProvider.ts
4
- var BrowserEnvironmentProvider = class {
5
- getScreenDimensions() {
6
- if (typeof screen === "undefined") return {
7
- width: 0,
8
- height: 0
9
- };
10
- return {
11
- width: screen.width,
12
- height: screen.height
13
- };
14
- }
15
- generateCanvasFingerprint() {
16
- try {
17
- if (typeof document === "undefined") return "";
18
- const canvas = document.createElement("canvas");
19
- const ctx = canvas.getContext("2d");
20
- if (!ctx) return "";
21
- ctx.textBaseline = "top";
22
- ctx.font = "14px Arial";
23
- ctx.fillText("fingerprint", 2, 2);
24
- return canvas.toDataURL().slice(-50);
25
- } catch {
26
- return "";
27
- }
28
- }
29
- getWebGLRenderer() {
30
- try {
31
- if (typeof document === "undefined") return "";
32
- const canvas = document.createElement("canvas");
33
- const gl = canvas.getContext("webgl") || canvas.getContext("experimental-webgl");
34
- if (!gl) return "";
35
- const debugInfo = gl.getExtension("WEBGL_debug_renderer_info");
36
- if (!debugInfo) return "";
37
- return gl.getParameter(debugInfo.UNMASKED_RENDERER_WEBGL) || "";
38
- } catch {
39
- return "";
40
- }
41
- }
42
- getWindowProperty(prop) {
43
- if (typeof window === "undefined") return;
44
- return window[prop];
45
- }
46
- getNavigatorProperty(prop) {
47
- if (typeof navigator === "undefined") return;
48
- return navigator[prop];
49
- }
50
- getNavigatorPrefixes() {
51
- if (typeof navigator === "undefined") return {
52
- webkit: false,
53
- moz: false,
54
- o: false,
55
- ms: false
56
- };
57
- const nav = navigator;
58
- return {
59
- webkit: nav.webkitGetUserMedia !== void 0,
60
- moz: nav.mozGetUserMedia !== void 0,
61
- o: nav.oGetUserMedia !== void 0,
62
- ms: nav.msGetUserMedia !== void 0
63
- };
64
- }
65
- getMaxTouchPoints() {
66
- if (typeof navigator === "undefined") return 0;
67
- return navigator.maxTouchPoints;
68
- }
69
- hasOnTouchStart() {
70
- if (typeof window !== "undefined" && "ontouchstart" in window) return true;
71
- if (typeof document !== "undefined") return "ontouchstart" in document.documentElement;
72
- return false;
73
- }
74
- getNavigatorProductSub() {
75
- if (typeof navigator === "undefined") return;
76
- return navigator.productSub;
77
- }
78
- getEvalToStringLength() {
79
- return eval.toString().length;
80
- }
81
- tryFirefoxToSource() {
82
- try {
83
- throw "a";
84
- } catch (err) {
85
- try {
86
- err.toSource();
87
- return true;
88
- } catch {
89
- return false;
90
- }
91
- }
92
- }
93
- async fetchJson(url, timeoutMs = 3e3) {
94
- try {
95
- if (typeof fetch === "undefined") return null;
96
- const controller = new AbortController();
97
- const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
98
- const response = await fetch(url, { signal: controller.signal });
99
- clearTimeout(timeoutId);
100
- return await response.json();
101
- } catch {
102
- return null;
103
- }
104
- }
105
- async enumerateVideoDeviceLabels() {
106
- try {
107
- if (typeof navigator === "undefined" || !navigator.mediaDevices?.enumerateDevices) return [];
108
- return (await navigator.mediaDevices.enumerateDevices()).filter((device) => device.kind === "videoinput").map((device) => device.label);
109
- } catch {
110
- return [];
111
- }
112
- }
113
- getTimestamp() {
114
- return Date.now();
115
- }
116
- };
117
-
118
- //#endregion
119
4
  //#region ../../node_modules/.pnpm/ua-parser-js@2.0.9/node_modules/ua-parser-js/src/main/ua-parser.mjs
120
5
  var LIBVERSION = "2.0.9", UA_MAX_LENGTH = 500, USER_AGENT = "user-agent", EMPTY = "", UNKNOWN = "?", TYPEOF = {
121
6
  FUNCTION: "function",
@@ -139,9 +24,9 @@ var extend = function(defaultRgx, extensions) {
139
24
  var extraRgx = extensions;
140
25
  if (!isExtensions(extensions)) {
141
26
  extraRgx = {};
142
- for (var i in extensions) for (var j in extensions[i]) extraRgx[j] = extensions[i][j].concat(extraRgx[j] ? extraRgx[j] : []);
27
+ for (var i in extensions) for (var j$1 in extensions[i]) extraRgx[j$1] = extensions[i][j$1].concat(extraRgx[j$1] ? extraRgx[j$1] : []);
143
28
  }
144
- for (var k in defaultRgx) mergedRgx[k] = extraRgx[k] && extraRgx[k].length % 2 === 0 ? extraRgx[k].concat(defaultRgx[k]) : defaultRgx[k];
29
+ for (var k$1 in defaultRgx) mergedRgx[k$1] = extraRgx[k$1] && extraRgx[k$1].length % 2 === 0 ? extraRgx[k$1].concat(defaultRgx[k$1]) : defaultRgx[k$1];
145
30
  return mergedRgx;
146
31
  }, enumerize = function(arr) {
147
32
  var enums = {};
@@ -191,34 +76,34 @@ var extend = function(defaultRgx, extensions) {
191
76
  };
192
77
  var rgxMapper = function(ua, arrays) {
193
78
  if (!ua || !arrays) return;
194
- var i = 0, j, k, p, q, matches, match;
79
+ var i = 0, j$1, k$1, p$1, q$1, matches, match;
195
80
  while (i < arrays.length && !matches) {
196
81
  var regex = arrays[i], props = arrays[i + 1];
197
- j = k = 0;
198
- while (j < regex.length && !matches) {
199
- if (!regex[j]) break;
200
- matches = regex[j++].exec(ua);
201
- if (!!matches) for (p = 0; p < props.length; p++) {
202
- match = matches[++k];
203
- q = props[p];
204
- if (typeof q === TYPEOF.OBJECT && q.length > 0) {
205
- if (q.length === 2) if (typeof q[1] == TYPEOF.FUNCTION) this[q[0]] = q[1].call(this, match);
206
- else this[q[0]] = q[1];
207
- else if (q.length >= 3) {
208
- if (typeof q[1] === TYPEOF.FUNCTION && !(q[1].exec && q[1].test)) if (q.length > 3) this[q[0]] = match ? q[1].apply(this, q.slice(2)) : void 0;
209
- else this[q[0]] = match ? q[1].call(this, match, q[2]) : void 0;
210
- else if (q.length == 3) this[q[0]] = match ? match.replace(q[1], q[2]) : void 0;
211
- else if (q.length == 4) this[q[0]] = match ? q[3].call(this, match.replace(q[1], q[2])) : void 0;
212
- else if (q.length > 4) this[q[0]] = match ? q[3].apply(this, [match.replace(q[1], q[2])].concat(q.slice(4))) : void 0;
82
+ j$1 = k$1 = 0;
83
+ while (j$1 < regex.length && !matches) {
84
+ if (!regex[j$1]) break;
85
+ matches = regex[j$1++].exec(ua);
86
+ if (!!matches) for (p$1 = 0; p$1 < props.length; p$1++) {
87
+ match = matches[++k$1];
88
+ q$1 = props[p$1];
89
+ if (typeof q$1 === TYPEOF.OBJECT && q$1.length > 0) {
90
+ if (q$1.length === 2) if (typeof q$1[1] == TYPEOF.FUNCTION) this[q$1[0]] = q$1[1].call(this, match);
91
+ else this[q$1[0]] = q$1[1];
92
+ else if (q$1.length >= 3) {
93
+ if (typeof q$1[1] === TYPEOF.FUNCTION && !(q$1[1].exec && q$1[1].test)) if (q$1.length > 3) this[q$1[0]] = match ? q$1[1].apply(this, q$1.slice(2)) : void 0;
94
+ else this[q$1[0]] = match ? q$1[1].call(this, match, q$1[2]) : void 0;
95
+ else if (q$1.length == 3) this[q$1[0]] = match ? match.replace(q$1[1], q$1[2]) : void 0;
96
+ else if (q$1.length == 4) this[q$1[0]] = match ? q$1[3].call(this, match.replace(q$1[1], q$1[2])) : void 0;
97
+ else if (q$1.length > 4) this[q$1[0]] = match ? q$1[3].apply(this, [match.replace(q$1[1], q$1[2])].concat(q$1.slice(4))) : void 0;
213
98
  }
214
- } else this[q] = match ? match : void 0;
99
+ } else this[q$1] = match ? match : void 0;
215
100
  }
216
101
  }
217
102
  i += 2;
218
103
  }
219
104
  }, strMapper = function(str, map) {
220
105
  for (var i in map) if (typeof map[i] === TYPEOF.OBJECT && map[i].length > 0) {
221
- for (var j = 0; j < map[i].length; j++) if (has(map[i][j], str)) return i === UNKNOWN ? void 0 : i;
106
+ for (var j$1 = 0; j$1 < map[i].length; j$1++) if (has(map[i][j$1], str)) return i === UNKNOWN ? void 0 : i;
222
107
  } else if (has(map[i], str)) return i === UNKNOWN ? void 0 : i;
223
108
  return map.hasOwnProperty("*") ? map["*"] : str;
224
109
  };
@@ -1573,8 +1458,8 @@ function UAParser(ua, extensions, headers) {
1573
1458
  }
1574
1459
  if (headers) if (typeof headers.append === TYPEOF.FUNCTION) {
1575
1460
  var kv = {};
1576
- headers.forEach(function(v, k) {
1577
- kv[String(k).toLowerCase()] = v;
1461
+ headers.forEach(function(v$1, k$1) {
1462
+ kv[String(k$1).toLowerCase()] = v$1;
1578
1463
  });
1579
1464
  headers = kv;
1580
1465
  } else {
@@ -1651,10 +1536,1196 @@ function getParsedUserAgent(userAgent) {
1651
1536
  }
1652
1537
 
1653
1538
  //#endregion
1654
- //#region ../infra/src/device/getBrowser.ts
1655
- function getUserAgent() {
1656
- if (typeof navigator === "undefined") return "";
1657
- return navigator.userAgent;
1539
+ //#region ../../node_modules/.pnpm/@thumbmarkjs+thumbmarkjs@1.6.4/node_modules/@thumbmarkjs/thumbmarkjs/dist/thumbmark.esm.js
1540
+ const e = 2592e5, t = "thumbmark", n = "https://api.thumbmarkjs.com", o = {
1541
+ exclude: [],
1542
+ include: [],
1543
+ stabilize: ["private", "iframe"],
1544
+ logging: !0,
1545
+ timeout: 5e3,
1546
+ cache_api_call: !0,
1547
+ cache_lifetime_in_ms: 0,
1548
+ performance: !1,
1549
+ experimental: !1,
1550
+ property_name_factory: (e$1) => `${t}_${e$1}`
1551
+ };
1552
+ let r = { ...o };
1553
+ const a = {
1554
+ private: [
1555
+ {
1556
+ exclude: ["canvas"],
1557
+ browsers: [
1558
+ "firefox",
1559
+ "safari>=17",
1560
+ "brave"
1561
+ ]
1562
+ },
1563
+ {
1564
+ exclude: ["audio"],
1565
+ browsers: ["samsungbrowser", "safari"]
1566
+ },
1567
+ {
1568
+ exclude: ["fonts"],
1569
+ browsers: ["firefox"]
1570
+ },
1571
+ {
1572
+ exclude: [
1573
+ "audio.sampleHash",
1574
+ "hardware.deviceMemory",
1575
+ "header.acceptLanguage.q",
1576
+ "system.hardwareConcurrency",
1577
+ "plugins"
1578
+ ],
1579
+ browsers: ["brave"]
1580
+ },
1581
+ {
1582
+ exclude: ["tls.extensions"],
1583
+ browsers: [
1584
+ "firefox",
1585
+ "chrome",
1586
+ "safari"
1587
+ ]
1588
+ },
1589
+ {
1590
+ exclude: ["header.acceptLanguage"],
1591
+ browsers: ["edge", "chrome"]
1592
+ }
1593
+ ],
1594
+ iframe: [{
1595
+ exclude: ["system.applePayVersion", "system.cookieEnabled"],
1596
+ browsers: ["safari"]
1597
+ }, { exclude: ["permissions"] }],
1598
+ vpn: [{ exclude: ["ip"] }]
1599
+ }, s = "undefined" != typeof window ? window.OfflineAudioContext || window.webkitOfflineAudioContext : null;
1600
+ function c(e$1) {
1601
+ let t$1 = 0;
1602
+ for (let n$1 = 0; n$1 < e$1.length; ++n$1) t$1 += Math.abs(e$1[n$1]);
1603
+ return t$1;
1604
+ }
1605
+ function l(e$1, t$1, n$1) {
1606
+ let o$1 = [];
1607
+ for (let t$2 = 0; t$2 < e$1[0].data.length; t$2++) {
1608
+ let n$2 = [];
1609
+ for (let o$2 = 0; o$2 < e$1.length; o$2++) n$2.push(e$1[o$2].data[t$2]);
1610
+ o$1.push(u(n$2));
1611
+ }
1612
+ const r$1 = new Uint8ClampedArray(o$1);
1613
+ return new ImageData(r$1, t$1, n$1);
1614
+ }
1615
+ function u(e$1) {
1616
+ if (0 === e$1.length) return 0;
1617
+ const t$1 = {};
1618
+ for (const n$2 of e$1) t$1[n$2] = (t$1[n$2] || 0) + 1;
1619
+ let n$1 = e$1[0];
1620
+ for (const e$2 in t$1) t$1[e$2] > t$1[n$1] && (n$1 = parseInt(e$2, 10));
1621
+ return n$1;
1622
+ }
1623
+ function d(e$1) {
1624
+ return e$1 ^= e$1 >>> 16, e$1 = Math.imul(e$1, 2246822507), e$1 ^= e$1 >>> 13, e$1 = Math.imul(e$1, 3266489909), (e$1 ^= e$1 >>> 16) >>> 0;
1625
+ }
1626
+ const m = new Uint32Array([
1627
+ 597399067,
1628
+ 2869860233,
1629
+ 951274213,
1630
+ 2716044179
1631
+ ]);
1632
+ function f(e$1, t$1) {
1633
+ return e$1 << t$1 | e$1 >>> 32 - t$1;
1634
+ }
1635
+ function h(e$1, t$1 = 0) {
1636
+ if (t$1 = t$1 ? 0 | t$1 : 0, "string" == typeof e$1 && (e$1 = function(e$2) {
1637
+ if ("undefined" != typeof TextEncoder) return new TextEncoder().encode(e$2).buffer;
1638
+ const t$2 = [];
1639
+ for (let n$2 = 0; n$2 < e$2.length; n$2++) {
1640
+ let o$2 = e$2.charCodeAt(n$2);
1641
+ o$2 < 128 ? t$2.push(o$2) : o$2 < 2048 ? t$2.push(192 | o$2 >> 6, 128 | 63 & o$2) : o$2 < 55296 || o$2 >= 57344 ? t$2.push(224 | o$2 >> 12, 128 | o$2 >> 6 & 63, 128 | 63 & o$2) : (n$2++, o$2 = 65536 + ((1023 & o$2) << 10 | 1023 & e$2.charCodeAt(n$2)), t$2.push(240 | o$2 >> 18, 128 | o$2 >> 12 & 63, 128 | o$2 >> 6 & 63, 128 | 63 & o$2));
1642
+ }
1643
+ return new Uint8Array(t$2).buffer;
1644
+ }(e$1)), !(e$1 instanceof ArrayBuffer)) throw new TypeError("Expected key to be ArrayBuffer or string");
1645
+ const n$1 = new Uint32Array([
1646
+ t$1,
1647
+ t$1,
1648
+ t$1,
1649
+ t$1
1650
+ ]);
1651
+ (function(e$2, t$2) {
1652
+ const n$2 = e$2.byteLength / 16 | 0, o$2 = new Uint32Array(e$2, 0, 4 * n$2);
1653
+ for (let e$3 = 0; e$3 < n$2; e$3++) {
1654
+ const n$3 = o$2.subarray(4 * e$3, 4 * (e$3 + 1));
1655
+ n$3[0] = Math.imul(n$3[0], m[0]), n$3[0] = f(n$3[0], 15), n$3[0] = Math.imul(n$3[0], m[1]), t$2[0] = t$2[0] ^ n$3[0], t$2[0] = f(t$2[0], 19), t$2[0] = t$2[0] + t$2[1], t$2[0] = Math.imul(t$2[0], 5) + 1444728091, n$3[1] = Math.imul(n$3[1], m[1]), n$3[1] = f(n$3[1], 16), n$3[1] = Math.imul(n$3[1], m[2]), t$2[1] = t$2[1] ^ n$3[1], t$2[1] = f(t$2[1], 17), t$2[1] = t$2[1] + t$2[2], t$2[1] = Math.imul(t$2[1], 5) + 197830471, n$3[2] = Math.imul(n$3[2], m[2]), n$3[2] = f(n$3[2], 17), n$3[2] = Math.imul(n$3[2], m[3]), t$2[2] = t$2[2] ^ n$3[2], t$2[2] = f(t$2[2], 15), t$2[2] = t$2[2] + t$2[3], t$2[2] = Math.imul(t$2[2], 5) + 2530024501, n$3[3] = Math.imul(n$3[3], m[3]), n$3[3] = f(n$3[3], 18), n$3[3] = Math.imul(n$3[3], m[0]), t$2[3] = t$2[3] ^ n$3[3], t$2[3] = f(t$2[3], 13), t$2[3] = t$2[3] + t$2[0], t$2[3] = Math.imul(t$2[3], 5) + 850148119;
1656
+ }
1657
+ })(e$1, n$1), function(e$2, t$2) {
1658
+ const n$2 = e$2.byteLength / 16 | 0, o$2 = e$2.byteLength % 16, r$1 = new Uint32Array(4), i = new Uint8Array(e$2, 16 * n$2, o$2);
1659
+ switch (o$2) {
1660
+ case 15: r$1[3] = r$1[3] ^ i[14] << 16;
1661
+ case 14: r$1[3] = r$1[3] ^ i[13] << 8;
1662
+ case 13: r$1[3] = r$1[3] ^ i[12], r$1[3] = Math.imul(r$1[3], m[3]), r$1[3] = f(r$1[3], 18), r$1[3] = Math.imul(r$1[3], m[0]), t$2[3] = t$2[3] ^ r$1[3];
1663
+ case 12: r$1[2] = r$1[2] ^ i[11] << 24;
1664
+ case 11: r$1[2] = r$1[2] ^ i[10] << 16;
1665
+ case 10: r$1[2] = r$1[2] ^ i[9] << 8;
1666
+ case 9: r$1[2] = r$1[2] ^ i[8], r$1[2] = Math.imul(r$1[2], m[2]), r$1[2] = f(r$1[2], 17), r$1[2] = Math.imul(r$1[2], m[3]), t$2[2] = t$2[2] ^ r$1[2];
1667
+ case 8: r$1[1] = r$1[1] ^ i[7] << 24;
1668
+ case 7: r$1[1] = r$1[1] ^ i[6] << 16;
1669
+ case 6: r$1[1] = r$1[1] ^ i[5] << 8;
1670
+ case 5: r$1[1] = r$1[1] ^ i[4], r$1[1] = Math.imul(r$1[1], m[1]), r$1[1] = f(r$1[1], 16), r$1[1] = Math.imul(r$1[1], m[2]), t$2[1] = t$2[1] ^ r$1[1];
1671
+ case 4: r$1[0] = r$1[0] ^ i[3] << 24;
1672
+ case 3: r$1[0] = r$1[0] ^ i[2] << 16;
1673
+ case 2: r$1[0] = r$1[0] ^ i[1] << 8;
1674
+ case 1: r$1[0] = r$1[0] ^ i[0], r$1[0] = Math.imul(r$1[0], m[0]), r$1[0] = f(r$1[0], 15), r$1[0] = Math.imul(r$1[0], m[1]), t$2[0] = t$2[0] ^ r$1[0];
1675
+ }
1676
+ }(e$1, n$1), function(e$2, t$2) {
1677
+ t$2[0] = t$2[0] ^ e$2.byteLength, t$2[1] = t$2[1] ^ e$2.byteLength, t$2[2] = t$2[2] ^ e$2.byteLength, t$2[3] = t$2[3] ^ e$2.byteLength, t$2[0] = t$2[0] + t$2[1] | 0, t$2[0] = t$2[0] + t$2[2] | 0, t$2[0] = t$2[0] + t$2[3] | 0, t$2[1] = t$2[1] + t$2[0] | 0, t$2[2] = t$2[2] + t$2[0] | 0, t$2[3] = t$2[3] + t$2[0] | 0, t$2[0] = d(t$2[0]), t$2[1] = d(t$2[1]), t$2[2] = d(t$2[2]), t$2[3] = d(t$2[3]), t$2[0] = t$2[0] + t$2[1] | 0, t$2[0] = t$2[0] + t$2[2] | 0, t$2[0] = t$2[0] + t$2[3] | 0, t$2[1] = t$2[1] + t$2[0] | 0, t$2[2] = t$2[2] + t$2[0] | 0, t$2[3] = t$2[3] + t$2[0] | 0;
1678
+ }(e$1, n$1);
1679
+ const o$1 = new Uint8Array(n$1.buffer);
1680
+ return Array.from(o$1).map(((e$2) => e$2.toString(16).padStart(2, "0"))).join("");
1681
+ }
1682
+ const p = 280;
1683
+ async function g(e$1) {
1684
+ for (var t$1; !document.body;) await w(50);
1685
+ const n$1 = document.createElement("iframe");
1686
+ n$1.setAttribute("frameBorder", "0");
1687
+ const o$1 = n$1.style;
1688
+ o$1.setProperty("position", "fixed"), o$1.setProperty("display", "block", "important"), o$1.setProperty("visibility", "visible"), o$1.setProperty("border", "0"), o$1.setProperty("opacity", "0"), n$1.src = "about:blank", document.body.appendChild(n$1);
1689
+ const r$1 = n$1.contentDocument || (null === (t$1 = n$1.contentWindow) || void 0 === t$1 ? void 0 : t$1.document);
1690
+ if (!r$1) throw new Error("Iframe document is not accessible");
1691
+ e$1({ iframe: r$1 }), setTimeout((() => {
1692
+ document.body.removeChild(n$1);
1693
+ }), 0);
1694
+ }
1695
+ function w(e$1, t$1) {
1696
+ return new Promise(((n$1) => setTimeout(n$1, e$1, t$1)));
1697
+ }
1698
+ const v = [
1699
+ "Arial",
1700
+ "Arial Black",
1701
+ "Arial Narrow",
1702
+ "Arial Rounded MT",
1703
+ "Arimo",
1704
+ "Archivo",
1705
+ "Barlow",
1706
+ "Bebas Neue",
1707
+ "Bitter",
1708
+ "Bookman",
1709
+ "Calibri",
1710
+ "Cabin",
1711
+ "Candara",
1712
+ "Century",
1713
+ "Century Gothic",
1714
+ "Comic Sans MS",
1715
+ "Constantia",
1716
+ "Courier",
1717
+ "Courier New",
1718
+ "Crimson Text",
1719
+ "DM Mono",
1720
+ "DM Sans",
1721
+ "DM Serif Display",
1722
+ "DM Serif Text",
1723
+ "Dosis",
1724
+ "Droid Sans",
1725
+ "Exo",
1726
+ "Fira Code",
1727
+ "Fira Sans",
1728
+ "Franklin Gothic Medium",
1729
+ "Garamond",
1730
+ "Geneva",
1731
+ "Georgia",
1732
+ "Gill Sans",
1733
+ "Helvetica",
1734
+ "Impact",
1735
+ "Inconsolata",
1736
+ "Indie Flower",
1737
+ "Inter",
1738
+ "Josefin Sans",
1739
+ "Karla",
1740
+ "Lato",
1741
+ "Lexend",
1742
+ "Lucida Bright",
1743
+ "Lucida Console",
1744
+ "Lucida Sans Unicode",
1745
+ "Manrope",
1746
+ "Merriweather",
1747
+ "Merriweather Sans",
1748
+ "Montserrat",
1749
+ "Myriad",
1750
+ "Noto Sans",
1751
+ "Nunito",
1752
+ "Nunito Sans",
1753
+ "Open Sans",
1754
+ "Optima",
1755
+ "Orbitron",
1756
+ "Oswald",
1757
+ "Pacifico",
1758
+ "Palatino",
1759
+ "Perpetua",
1760
+ "PT Sans",
1761
+ "PT Serif",
1762
+ "Poppins",
1763
+ "Prompt",
1764
+ "Public Sans",
1765
+ "Quicksand",
1766
+ "Rajdhani",
1767
+ "Recursive",
1768
+ "Roboto",
1769
+ "Roboto Condensed",
1770
+ "Rockwell",
1771
+ "Rubik",
1772
+ "Segoe Print",
1773
+ "Segoe Script",
1774
+ "Segoe UI",
1775
+ "Sora",
1776
+ "Source Sans Pro",
1777
+ "Space Mono",
1778
+ "Tahoma",
1779
+ "Taviraj",
1780
+ "Times",
1781
+ "Times New Roman",
1782
+ "Titillium Web",
1783
+ "Trebuchet MS",
1784
+ "Ubuntu",
1785
+ "Varela Round",
1786
+ "Verdana",
1787
+ "Work Sans"
1788
+ ], y = [
1789
+ "monospace",
1790
+ "sans-serif",
1791
+ "serif"
1792
+ ];
1793
+ function S(e$1, t$1) {
1794
+ return e$1.font = `72px ${t$1}`, e$1.measureText("WwMmLli0Oo").width;
1795
+ }
1796
+ function b() {
1797
+ var e$1;
1798
+ const t$1 = document.createElement("canvas"), n$1 = null !== (e$1 = t$1.getContext("webgl")) && void 0 !== e$1 ? e$1 : t$1.getContext("experimental-webgl");
1799
+ if (n$1 && "getParameter" in n$1) try {
1800
+ const e$2 = (n$1.getParameter(n$1.VENDOR) || "").toString(), t$2 = (n$1.getParameter(n$1.RENDERER) || "").toString();
1801
+ let o$1 = {
1802
+ vendor: e$2,
1803
+ renderer: t$2,
1804
+ version: (n$1.getParameter(n$1.VERSION) || "").toString(),
1805
+ shadingLanguageVersion: (n$1.getParameter(n$1.SHADING_LANGUAGE_VERSION) || "").toString()
1806
+ };
1807
+ if (!t$2.length || !e$2.length) {
1808
+ const e$3 = n$1.getExtension("WEBGL_debug_renderer_info");
1809
+ if (e$3) {
1810
+ const t$3 = (n$1.getParameter(e$3.UNMASKED_VENDOR_WEBGL) || "").toString(), r$1 = (n$1.getParameter(e$3.UNMASKED_RENDERER_WEBGL) || "").toString();
1811
+ t$3 && (o$1.vendorUnmasked = t$3), r$1 && (o$1.rendererUnmasked = r$1);
1812
+ }
1813
+ }
1814
+ return o$1;
1815
+ } catch (e$2) {}
1816
+ return "undefined";
1817
+ }
1818
+ function E() {
1819
+ const e$1 = new Float32Array(1), t$1 = new Uint8Array(e$1.buffer);
1820
+ return e$1[0] = Infinity, e$1[0] = e$1[0] - e$1[0], t$1[3];
1821
+ }
1822
+ const M = (e$1, t$1, n$1, o$1) => {
1823
+ const r$1 = (n$1 - t$1) / o$1;
1824
+ let i = 0;
1825
+ for (let n$2 = 0; n$2 < o$1; n$2++) i += e$1(t$1 + (n$2 + .5) * r$1);
1826
+ return i * r$1;
1827
+ };
1828
+ function P(e$1, t$1) {
1829
+ const n$1 = {};
1830
+ return t$1.forEach(((t$2) => {
1831
+ const o$1 = function(e$2) {
1832
+ if (0 === e$2.length) return null;
1833
+ const t$3 = {};
1834
+ e$2.forEach(((e$3) => {
1835
+ const n$3 = String(e$3);
1836
+ t$3[n$3] = (t$3[n$3] || 0) + 1;
1837
+ }));
1838
+ let n$2 = e$2[0], o$2 = 1;
1839
+ return Object.keys(t$3).forEach(((e$3) => {
1840
+ t$3[e$3] > o$2 && (n$2 = e$3, o$2 = t$3[e$3]);
1841
+ })), n$2;
1842
+ }(e$1.map(((e$2) => t$2 in e$2 ? e$2[t$2] : void 0)).filter(((e$2) => void 0 !== e$2)));
1843
+ o$1 && (n$1[t$2] = o$1);
1844
+ })), n$1;
1845
+ }
1846
+ const A = [
1847
+ "accelerometer",
1848
+ "accessibility",
1849
+ "accessibility-events",
1850
+ "ambient-light-sensor",
1851
+ "background-fetch",
1852
+ "background-sync",
1853
+ "bluetooth",
1854
+ "camera",
1855
+ "clipboard-read",
1856
+ "clipboard-write",
1857
+ "device-info",
1858
+ "display-capture",
1859
+ "gyroscope",
1860
+ "geolocation",
1861
+ "local-fonts",
1862
+ "magnetometer",
1863
+ "microphone",
1864
+ "midi",
1865
+ "nfc",
1866
+ "notifications",
1867
+ "payment-handler",
1868
+ "persistent-storage",
1869
+ "push",
1870
+ "speaker",
1871
+ "storage-access",
1872
+ "top-level-storage-access",
1873
+ "window-management",
1874
+ "query"
1875
+ ];
1876
+ function x() {
1877
+ var e$1, t$1, n$1, o$1, r$1, i;
1878
+ if ("undefined" == typeof navigator) return {
1879
+ name: "unknown",
1880
+ version: "unknown"
1881
+ };
1882
+ const a$1 = navigator.userAgent, s$1 = [
1883
+ /(?<name>SamsungBrowser)\/(?<version>\d+(?:\.\d+)+)/,
1884
+ /(?<name>EdgA|EdgiOS|Edg)\/(?<version>\d+(?:\.\d+)+)/,
1885
+ /(?<name>OPR|OPX)\/(?<version>\d+(?:\.\d+)+)/,
1886
+ /Opera[\s\/](?<version>\d+(?:\.\d+)+)/,
1887
+ /Opera Mini\/(?<version>\d+(?:\.\d+)+)/,
1888
+ /Opera Mobi\/(?<version>\d+(?:\.\d+)+)/,
1889
+ /(?<name>Vivaldi)\/(?<version>\d+(?:\.\d+)+)/,
1890
+ /(?<name>Brave)\/(?<version>\d+(?:\.\d+)+)/,
1891
+ /(?<name>CriOS)\/(?<version>\d+(?:\.\d+)+)/,
1892
+ /(?<name>FxiOS)\/(?<version>\d+(?:\.\d+)+)/,
1893
+ /(?<name>Chrome|Chromium)\/(?<version>\d+(?:\.\d+)+)/,
1894
+ /(?<name>Firefox|Waterfox|Iceweasel|IceCat)\/(?<version>\d+(?:\.\d+)+)/,
1895
+ /Version\/(?<version1>[\d.]+).*Safari\/[\d.]+|(?<name>Safari)\/(?<version2>[\d.]+)/,
1896
+ /(?<name>MSIE|Trident|IEMobile).+?(?<version>\d+(?:\.\d+)+)/,
1897
+ /(?<name>[A-Za-z]+)\/(?<version>\d+(?:\.\d+)+)/
1898
+ ], c$1 = {
1899
+ edg: "Edge",
1900
+ edga: "Edge",
1901
+ edgios: "Edge",
1902
+ opr: "Opera",
1903
+ opx: "Opera",
1904
+ crios: "Chrome",
1905
+ fxios: "Firefox",
1906
+ samsung: "SamsungBrowser",
1907
+ vivaldi: "Vivaldi",
1908
+ brave: "Brave"
1909
+ };
1910
+ for (const l$1 of s$1) {
1911
+ const s$2 = a$1.match(l$1);
1912
+ if (s$2) {
1913
+ let a$2 = null === (e$1 = s$2.groups) || void 0 === e$1 ? void 0 : e$1.name, u$1 = (null === (t$1 = s$2.groups) || void 0 === t$1 ? void 0 : t$1.version) || (null === (n$1 = s$2.groups) || void 0 === n$1 ? void 0 : n$1.version1) || (null === (o$1 = s$2.groups) || void 0 === o$1 ? void 0 : o$1.version2);
1914
+ if (a$2 || !(null === (r$1 = s$2.groups) || void 0 === r$1 ? void 0 : r$1.version1) && !(null === (i = s$2.groups) || void 0 === i ? void 0 : i.version2) || (a$2 = "Safari"), !a$2 && l$1.source.includes("Opera Mini") && (a$2 = "Opera Mini"), !a$2 && l$1.source.includes("Opera Mobi") && (a$2 = "Opera Mobi"), !a$2 && l$1.source.includes("Opera") && (a$2 = "Opera"), !a$2 && s$2[1] && (a$2 = s$2[1]), !u$1 && s$2[2] && (u$1 = s$2[2]), a$2) return {
1915
+ name: c$1[a$2.toLowerCase()] || a$2,
1916
+ version: u$1 || "unknown"
1917
+ };
1918
+ }
1919
+ }
1920
+ return {
1921
+ name: "unknown",
1922
+ version: "unknown"
1923
+ };
1924
+ }
1925
+ function C() {
1926
+ if ("undefined" == typeof navigator || !navigator.userAgent) return !1;
1927
+ const e$1 = navigator.userAgent;
1928
+ return /Mobi|Android|iPhone|iPod|IEMobile|Opera Mini|Opera Mobi|webOS|BlackBerry|Windows Phone/i.test(e$1) && !/iPad/i.test(e$1);
1929
+ }
1930
+ function _() {
1931
+ let e$1 = [];
1932
+ const t$1 = {
1933
+ "prefers-contrast": [
1934
+ "high",
1935
+ "more",
1936
+ "low",
1937
+ "less",
1938
+ "forced",
1939
+ "no-preference"
1940
+ ],
1941
+ "any-hover": ["hover", "none"],
1942
+ "any-pointer": [
1943
+ "none",
1944
+ "coarse",
1945
+ "fine"
1946
+ ],
1947
+ pointer: [
1948
+ "none",
1949
+ "coarse",
1950
+ "fine"
1951
+ ],
1952
+ hover: ["hover", "none"],
1953
+ update: ["fast", "slow"],
1954
+ "inverted-colors": ["inverted", "none"],
1955
+ "prefers-reduced-motion": ["reduce", "no-preference"],
1956
+ "prefers-reduced-transparency": ["reduce", "no-preference"],
1957
+ scripting: [
1958
+ "none",
1959
+ "initial-only",
1960
+ "enabled"
1961
+ ],
1962
+ "forced-colors": ["active", "none"]
1963
+ };
1964
+ return Object.keys(t$1).forEach(((n$1) => {
1965
+ t$1[n$1].forEach(((t$2) => {
1966
+ matchMedia(`(${n$1}: ${t$2})`).matches && e$1.push(`${n$1}: ${t$2}`);
1967
+ }));
1968
+ })), e$1;
1969
+ }
1970
+ function I() {
1971
+ if ("https:" === window.location.protocol && "function" == typeof window.ApplePaySession) try {
1972
+ const e$1 = window.ApplePaySession.supportsVersion;
1973
+ for (let t$1 = 15; t$1 > 0; t$1--) if (e$1(t$1)) return t$1;
1974
+ } catch (e$1) {
1975
+ return 0;
1976
+ }
1977
+ return 0;
1978
+ }
1979
+ const T = "SamsungBrowser" !== x().name ? 1 : 3;
1980
+ let R, k = null;
1981
+ function O(e$1) {
1982
+ const t$1 = [];
1983
+ return function e$2(n$1) {
1984
+ if (n$1 && n$1.toJSON && "function" == typeof n$1.toJSON && (n$1 = n$1.toJSON()), void 0 === n$1) return;
1985
+ if ("number" == typeof n$1) return isFinite(n$1) ? "" + n$1 : "null";
1986
+ if ("object" != typeof n$1) return JSON.stringify(n$1);
1987
+ let o$1, r$1;
1988
+ if (Array.isArray(n$1)) {
1989
+ for (r$1 = "[", o$1 = 0; o$1 < n$1.length; o$1++) o$1 && (r$1 += ","), r$1 += e$2(n$1[o$1]) || "null";
1990
+ return r$1 + "]";
1991
+ }
1992
+ if (null === n$1) return "null";
1993
+ if (-1 !== t$1.indexOf(n$1)) throw new TypeError("Converting circular structure to JSON");
1994
+ const i = t$1.push(n$1) - 1, a$1 = Object.keys(n$1).sort();
1995
+ for (r$1 = "", o$1 = 0; o$1 < a$1.length; o$1++) {
1996
+ const t$2 = a$1[o$1], i$1 = e$2(n$1[t$2]);
1997
+ i$1 && (r$1 && (r$1 += ","), r$1 += JSON.stringify(t$2) + ":" + i$1);
1998
+ }
1999
+ return t$1.splice(i, 1), "{" + r$1 + "}";
2000
+ }(e$1) || "";
2001
+ }
2002
+ const L = [
2003
+ "𝔄",
2004
+ "𝔅",
2005
+ "ℭ",
2006
+ "𝔇",
2007
+ "𝔈",
2008
+ "𝔉",
2009
+ "𝔸",
2010
+ "𝔹",
2011
+ "ℂ",
2012
+ "𝔻",
2013
+ "𝔼",
2014
+ "𝔽"
2015
+ ], B = [
2016
+ "β",
2017
+ "ψ",
2018
+ "λ",
2019
+ "ε",
2020
+ "ζ",
2021
+ "α",
2022
+ "ξ",
2023
+ "μ",
2024
+ "ρ",
2025
+ "φ",
2026
+ "κ",
2027
+ "τ",
2028
+ "η",
2029
+ "σ",
2030
+ "ι",
2031
+ "ω",
2032
+ "γ",
2033
+ "ν",
2034
+ "χ",
2035
+ "δ",
2036
+ "θ",
2037
+ "π",
2038
+ "υ",
2039
+ "ο"
2040
+ ];
2041
+ function D(e$1, t$1) {
2042
+ return `<math><mrow>${t$1}</mrow></math>`;
2043
+ }
2044
+ function N() {
2045
+ let e$1 = "<mo>∏</mo>";
2046
+ return L.forEach(((t$1, n$1) => {
2047
+ const o$1 = 2 * n$1, r$1 = B.slice(o$1, o$1 + 2);
2048
+ 2 === r$1.length && (e$1 += `<mmultiscripts><mi>${t$1}</mi><none/><mi>${r$1[1]}</mi><mprescripts></mprescripts><mi>${r$1[0]}</mi><none/></mmultiscripts>`);
2049
+ })), D(0, `<munderover><mmultiscripts>${e$1}</mmultiscripts></munderover>`);
2050
+ }
2051
+ function $() {
2052
+ const e$1 = [];
2053
+ return L.forEach(((t$1, n$1) => {
2054
+ const o$1 = 2 * n$1, r$1 = B.slice(o$1, o$1 + 2);
2055
+ 2 === r$1.length && e$1.push(D(0, `<mmultiscripts><mi>${t$1}</mi><none/><mi>${r$1[1]}</mi><mprescripts></mprescripts><mi>${r$1[0]}</mi><none/></mmultiscripts>`));
2056
+ })), e$1;
2057
+ }
2058
+ const V = {
2059
+ audio: async function() {
2060
+ return s ? async function() {
2061
+ return new Promise(((e$1, t$1) => {
2062
+ try {
2063
+ const t$2 = new s(1, 5e3, 44100), n$1 = t$2.createBufferSource(), o$1 = t$2.createOscillator();
2064
+ o$1.frequency.value = 1e3;
2065
+ const r$1 = t$2.createDynamicsCompressor();
2066
+ let i;
2067
+ r$1.threshold.value = -50, r$1.knee.value = 40, r$1.ratio.value = 12, r$1.attack.value = 0, r$1.release.value = .2, o$1.connect(r$1), r$1.connect(t$2.destination), o$1.start(), t$2.oncomplete = (o$2) => {
2068
+ i = o$2.renderedBuffer.getChannelData(0), e$1({
2069
+ sampleHash: c(i),
2070
+ maxChannels: t$2.destination.maxChannelCount,
2071
+ channelCountMode: n$1.channelCountMode
2072
+ });
2073
+ }, t$2.startRendering();
2074
+ } catch (e$2) {
2075
+ console.error("Error creating audio fingerprint:", e$2), t$1(e$2);
2076
+ }
2077
+ }));
2078
+ }() : null;
2079
+ },
2080
+ canvas: async function() {
2081
+ return new Promise(((e$1) => {
2082
+ const t$1 = Array.from({ length: 3 }, (() => function() {
2083
+ const e$2 = document.createElement("canvas"), t$2 = e$2.getContext("2d");
2084
+ if (!t$2) return null;
2085
+ e$2.width = p, e$2.height = 20;
2086
+ const n$1 = t$2.createLinearGradient(0, 0, e$2.width, e$2.height);
2087
+ n$1.addColorStop(0, "red"), n$1.addColorStop(1 / 6, "orange"), n$1.addColorStop(2 / 6, "yellow"), n$1.addColorStop(.5, "green"), n$1.addColorStop(4 / 6, "blue"), n$1.addColorStop(5 / 6, "indigo"), n$1.addColorStop(1, "violet"), t$2.fillStyle = n$1, t$2.fillRect(0, 0, e$2.width, e$2.height);
2088
+ const o$1 = "Random Text WMwmil10Oo";
2089
+ t$2.font = "23.123px Arial", t$2.fillStyle = "black", t$2.fillText(o$1, -5, 15), t$2.fillStyle = "rgba(0, 0, 255, 0.5)", t$2.fillText(o$1, -3.3, 17.7), t$2.beginPath(), t$2.moveTo(0, 0), t$2.lineTo(2 * e$2.width / 7, e$2.height), t$2.strokeStyle = "white", t$2.lineWidth = 2, t$2.stroke();
2090
+ return t$2.getImageData(0, 0, e$2.width, e$2.height);
2091
+ }())).filter(((e$2) => null !== e$2));
2092
+ 0 !== t$1.length ? e$1({ commonPixelsHash: h(l(t$1, p, 20).data.toString()).toString() }) : e$1(null);
2093
+ }));
2094
+ },
2095
+ fonts: async function(e$1) {
2096
+ return new Promise(((e$2) => {
2097
+ try {
2098
+ g((async ({ iframe: t$1 }) => {
2099
+ const n$1 = t$1.createElement("canvas").getContext("2d");
2100
+ if (!n$1) return void e$2(null);
2101
+ const o$1 = y.map(((e$3) => S(n$1, e$3)));
2102
+ let r$1 = {};
2103
+ v.forEach(((e$3) => {
2104
+ const t$2 = S(n$1, e$3);
2105
+ o$1.includes(t$2) || (r$1[e$3] = t$2);
2106
+ })), e$2(r$1);
2107
+ }));
2108
+ } catch (t$1) {
2109
+ e$2(null);
2110
+ }
2111
+ }));
2112
+ },
2113
+ hardware: function() {
2114
+ return new Promise(((e$1, t$1) => {
2115
+ const n$1 = void 0 !== navigator.deviceMemory ? navigator.deviceMemory : 0, o$1 = window.performance && window.performance.memory ? window.performance.memory : 0;
2116
+ e$1({
2117
+ videocard: b(),
2118
+ architecture: E(),
2119
+ deviceMemory: n$1.toString() || "undefined",
2120
+ jsHeapSizeLimit: o$1.jsHeapSizeLimit || 0
2121
+ });
2122
+ }));
2123
+ },
2124
+ locales: function() {
2125
+ return new Promise(((e$1) => {
2126
+ e$1({
2127
+ languages: navigator.language,
2128
+ timezone: Intl.DateTimeFormat().resolvedOptions().timeZone
2129
+ });
2130
+ }));
2131
+ },
2132
+ math: function() {
2133
+ return new Promise(((e$1) => {
2134
+ e$1({
2135
+ acos: Math.acos(.5),
2136
+ asin: M(Math.asin, -1, 1, 97),
2137
+ cos: M(Math.cos, 0, Math.PI, 97),
2138
+ largeCos: Math.cos(0x56bc75e2d63100000),
2139
+ largeSin: Math.sin(0x56bc75e2d63100000),
2140
+ largeTan: Math.tan(0x56bc75e2d63100000),
2141
+ sin: M(Math.sin, -Math.PI, Math.PI, 97),
2142
+ tan: M(Math.tan, 0, 2 * Math.PI, 97)
2143
+ });
2144
+ }));
2145
+ },
2146
+ permissions: async function(e$1) {
2147
+ const t$1 = (null == e$1 ? void 0 : e$1.permissions_to_check) || A;
2148
+ return P(await Promise.all(Array.from({ length: 3 }, (() => async function(e$2) {
2149
+ const t$2 = {};
2150
+ for (const n$1 of e$2) try {
2151
+ t$2[n$1] = (await navigator.permissions.query({ name: n$1 })).state.toString();
2152
+ } catch (e$3) {}
2153
+ return t$2;
2154
+ }(t$1)))), t$1);
2155
+ },
2156
+ plugins: async function() {
2157
+ const e$1 = [];
2158
+ if (navigator.plugins) for (let t$1 = 0; t$1 < navigator.plugins.length; t$1++) {
2159
+ const n$1 = navigator.plugins[t$1];
2160
+ e$1.push([
2161
+ n$1.name,
2162
+ n$1.filename,
2163
+ n$1.description
2164
+ ].join("|"));
2165
+ }
2166
+ return new Promise(((t$1) => {
2167
+ t$1({ plugins: e$1 });
2168
+ }));
2169
+ },
2170
+ screen: function() {
2171
+ return new Promise(((e$1) => {
2172
+ if ("undefined" == typeof matchMedia || "undefined" == typeof screen) return void e$1(null);
2173
+ const t$1 = {
2174
+ is_touchscreen: navigator.maxTouchPoints > 0,
2175
+ maxTouchPoints: navigator.maxTouchPoints,
2176
+ colorDepth: screen.colorDepth,
2177
+ mediaMatches: _()
2178
+ };
2179
+ C() && navigator.maxTouchPoints > 0 && (t$1.resolution = function() {
2180
+ const e$2 = window.screen.width, t$2 = window.screen.height;
2181
+ return `${Math.max(e$2, t$2).toString()}x${Math.min(e$2, t$2).toString()}`;
2182
+ }()), e$1(t$1);
2183
+ }));
2184
+ },
2185
+ system: function() {
2186
+ return new Promise(((e$1) => {
2187
+ const t$1 = x();
2188
+ e$1({
2189
+ platform: window.navigator.platform,
2190
+ productSub: navigator.productSub,
2191
+ product: navigator.product,
2192
+ useragent: navigator.userAgent,
2193
+ hardwareConcurrency: navigator.hardwareConcurrency,
2194
+ browser: {
2195
+ name: t$1.name,
2196
+ version: t$1.version
2197
+ },
2198
+ mobile: C(),
2199
+ applePayVersion: I(),
2200
+ cookieEnabled: window.navigator.cookieEnabled
2201
+ });
2202
+ }));
2203
+ },
2204
+ webgl: async function() {
2205
+ "undefined" != typeof document && (R = document.createElement("canvas"), R.width = 200, R.height = 100, k = R.getContext("webgl"));
2206
+ try {
2207
+ if (!k) throw new Error("WebGL not supported");
2208
+ return { commonPixelsHash: h(l(Array.from({ length: T }, (() => function() {
2209
+ try {
2210
+ if (!k) throw new Error("WebGL not supported");
2211
+ const e$1 = "\n attribute vec2 position;\n void main() {\n gl_Position = vec4(position, 0.0, 1.0);\n }\n ", t$1 = "\n precision mediump float;\n void main() {\n gl_FragColor = vec4(0.812, 0.195, 0.553, 0.921); // Set line color\n }\n ", n$1 = k.createShader(k.VERTEX_SHADER), o$1 = k.createShader(k.FRAGMENT_SHADER);
2212
+ if (!n$1 || !o$1) throw new Error("Failed to create shaders");
2213
+ if (k.shaderSource(n$1, e$1), k.shaderSource(o$1, t$1), k.compileShader(n$1), !k.getShaderParameter(n$1, k.COMPILE_STATUS)) throw new Error("Vertex shader compilation failed: " + k.getShaderInfoLog(n$1));
2214
+ if (k.compileShader(o$1), !k.getShaderParameter(o$1, k.COMPILE_STATUS)) throw new Error("Fragment shader compilation failed: " + k.getShaderInfoLog(o$1));
2215
+ const r$1 = k.createProgram();
2216
+ if (!r$1) throw new Error("Failed to create shader program");
2217
+ if (k.attachShader(r$1, n$1), k.attachShader(r$1, o$1), k.linkProgram(r$1), !k.getProgramParameter(r$1, k.LINK_STATUS)) throw new Error("Shader program linking failed: " + k.getProgramInfoLog(r$1));
2218
+ k.useProgram(r$1);
2219
+ const i = 137, a$1 = new Float32Array(4 * i), s$1 = 2 * Math.PI / i;
2220
+ for (let e$2 = 0; e$2 < i; e$2++) {
2221
+ const t$2 = e$2 * s$1;
2222
+ a$1[4 * e$2] = 0, a$1[4 * e$2 + 1] = 0, a$1[4 * e$2 + 2] = Math.cos(t$2) * (R.width / 2), a$1[4 * e$2 + 3] = Math.sin(t$2) * (R.height / 2);
2223
+ }
2224
+ const c$1 = k.createBuffer();
2225
+ k.bindBuffer(k.ARRAY_BUFFER, c$1), k.bufferData(k.ARRAY_BUFFER, a$1, k.STATIC_DRAW);
2226
+ const l$1 = k.getAttribLocation(r$1, "position");
2227
+ k.enableVertexAttribArray(l$1), k.vertexAttribPointer(l$1, 2, k.FLOAT, !1, 0, 0), k.viewport(0, 0, R.width, R.height), k.clearColor(0, 0, 0, 1), k.clear(k.COLOR_BUFFER_BIT), k.drawArrays(k.LINES, 0, 2 * i);
2228
+ const u$1 = new Uint8ClampedArray(R.width * R.height * 4);
2229
+ k.readPixels(0, 0, R.width, R.height, k.RGBA, k.UNSIGNED_BYTE, u$1);
2230
+ return new ImageData(u$1, R.width, R.height);
2231
+ } catch (e$1) {
2232
+ return new ImageData(1, 1);
2233
+ } finally {
2234
+ k && (k.bindBuffer(k.ARRAY_BUFFER, null), k.useProgram(null), k.viewport(0, 0, k.drawingBufferWidth, k.drawingBufferHeight), k.clearColor(0, 0, 0, 0));
2235
+ }
2236
+ }())), R.width, R.height).data.toString()).toString() };
2237
+ } catch (e$1) {
2238
+ return { webgl: "unsupported" };
2239
+ }
2240
+ }
2241
+ }, F = {
2242
+ webrtc: async function() {
2243
+ return new Promise(((e$1) => {
2244
+ try {
2245
+ const t$1 = window.RTCPeerConnection || window.webkitRTCPeerConnection || window.mozRTCPeerConnection;
2246
+ if (!t$1) return void e$1({
2247
+ supported: !1,
2248
+ error: "WebRTC not supported"
2249
+ });
2250
+ const n$1 = new t$1({
2251
+ iceCandidatePoolSize: 1,
2252
+ iceServers: []
2253
+ });
2254
+ n$1.createDataChannel("");
2255
+ (async () => {
2256
+ try {
2257
+ const o$1 = await n$1.createOffer({
2258
+ offerToReceiveAudio: !0,
2259
+ offerToReceiveVideo: !0
2260
+ });
2261
+ await n$1.setLocalDescription(o$1);
2262
+ const r$1 = o$1.sdp || "", i = [...new Set((r$1.match(/extmap:\d+ [^\n\r]+/g) || []).map(((e$2) => e$2.replace(/extmap:\d+ /, ""))))].sort(), a$1 = (e$2) => {
2263
+ const t$2 = r$1.match(/* @__PURE__ */ new RegExp(`m=${e$2} [^\\s]+ [^\\s]+ ([^\\n\\r]+)`));
2264
+ return t$2 ? t$2[1].split(" ") : [];
2265
+ }, s$1 = (e$2, t$2) => t$2.map(((t$3) => {
2266
+ const n$2 = new RegExp(`(rtpmap|fmtp|rtcp-fb):${t$3} (.+)`, "g"), o$2 = [...r$1.matchAll(n$2)];
2267
+ if (!o$2.length) return null;
2268
+ const i$1 = {};
2269
+ return o$2.forEach(((t$4) => {
2270
+ const [n$3, o$3, r$2] = t$4, a$2 = r$2.split("/");
2271
+ "rtpmap" === o$3 ? (i$1.mimeType = `${e$2}/${a$2[0]}`, i$1.clockRate = +a$2[1], "audio" === e$2 && (i$1.channels = +a$2[2] || 1)) : "rtcp-fb" === o$3 ? (i$1.feedbackSupport = i$1.feedbackSupport || [], i$1.feedbackSupport.push(r$2)) : "fmtp" === o$3 && (i$1.sdpFmtpLine = r$2);
2272
+ })), i$1;
2273
+ })).filter(Boolean), c$1 = s$1("audio", a$1("audio")), l$1 = s$1("video", a$1("video")), u$1 = {
2274
+ audio: {
2275
+ count: c$1.length,
2276
+ hash: h(O(c$1))
2277
+ },
2278
+ video: {
2279
+ count: l$1.length,
2280
+ hash: h(O(l$1))
2281
+ },
2282
+ extensionsHash: h(O(i))
2283
+ }, d$1 = await new Promise(((e$2) => {
2284
+ const t$2 = setTimeout((() => {
2285
+ n$1.removeEventListener("icecandidate", o$2), n$1.close(), e$2({
2286
+ supported: !0,
2287
+ ...u$1,
2288
+ timeout: !0
2289
+ });
2290
+ }), 3e3), o$2 = (r$2) => {
2291
+ const i$1 = r$2.candidate;
2292
+ i$1 && i$1.candidate && (clearTimeout(t$2), n$1.removeEventListener("icecandidate", o$2), n$1.close(), e$2({
2293
+ supported: !0,
2294
+ ...u$1,
2295
+ candidateType: i$1.type || ""
2296
+ }));
2297
+ };
2298
+ n$1.addEventListener("icecandidate", o$2);
2299
+ }));
2300
+ e$1({
2301
+ details: d$1,
2302
+ hash: h(O(d$1))
2303
+ });
2304
+ } catch (t$2) {
2305
+ n$1.close(), e$1({
2306
+ supported: !0,
2307
+ error: `WebRTC offer failed: ${t$2.message}`
2308
+ });
2309
+ }
2310
+ })();
2311
+ } catch (t$1) {
2312
+ e$1({
2313
+ supported: !1,
2314
+ error: `WebRTC error: ${t$1.message}`
2315
+ });
2316
+ }
2317
+ }));
2318
+ },
2319
+ mathml: async function() {
2320
+ return new Promise(((e$1) => {
2321
+ try {
2322
+ g((async ({ iframe: t$1 }) => {
2323
+ try {
2324
+ if (!function(e$2) {
2325
+ try {
2326
+ const t$2 = e$2.createElement("math");
2327
+ t$2.innerHTML = "<mrow><mi>x</mi></mrow>", t$2.style.position = "absolute", t$2.style.visibility = "hidden", e$2.body.appendChild(t$2);
2328
+ const n$2 = t$2.getBoundingClientRect();
2329
+ return e$2.body.removeChild(t$2), n$2.width > 0 && n$2.height > 0;
2330
+ } catch (e$3) {
2331
+ return !1;
2332
+ }
2333
+ }(t$1)) return void e$1({
2334
+ supported: !1,
2335
+ error: "MathML not supported"
2336
+ });
2337
+ const n$1 = [
2338
+ D("integral", "<msubsup><mo>∫</mo><mi>a</mi><mi>b</mi></msubsup><mfrac><mrow><mi>f</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mrow><mi>g</mi><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mfrac><mi>dx</mi>"),
2339
+ D("fraction", "<mfrac><mrow><mi>π</mi><mo>×</mo><msup><mi>r</mi><mn>2</mn></msup></mrow><mrow><mn>2</mn><mi>σ</mi></mrow></mfrac>"),
2340
+ D("matrix", "<mo>[</mo><mtable><mtr><mtd><mi>α</mi></mtd><mtd><mi>β</mi></mtd></mtr><mtr><mtd><mi>γ</mi></mtd><mtd><mi>δ</mi></mtd></mtr></mtable><mo>]</mo>"),
2341
+ N(),
2342
+ ...$()
2343
+ ], o$1 = [];
2344
+ let r$1 = "";
2345
+ n$1.forEach(((e$2, n$2) => {
2346
+ const i$1 = function(e$3, t$2) {
2347
+ try {
2348
+ const n$3 = t$2.createElement("math");
2349
+ n$3.innerHTML = e$3.replace(/<\/?math>/g, ""), n$3.style.whiteSpace = "nowrap", n$3.style.position = "absolute", n$3.style.visibility = "hidden", n$3.style.top = "-9999px", t$2.body.appendChild(n$3);
2350
+ const o$2 = n$3.getBoundingClientRect(), r$2 = (t$2.defaultView || window).getComputedStyle(n$3), i$2 = {
2351
+ dimensions: {
2352
+ width: o$2.width,
2353
+ height: o$2.height
2354
+ },
2355
+ fontInfo: {
2356
+ fontFamily: r$2.fontFamily,
2357
+ fontSize: r$2.fontSize,
2358
+ fontWeight: r$2.fontWeight,
2359
+ fontStyle: r$2.fontStyle,
2360
+ lineHeight: r$2.lineHeight,
2361
+ fontVariant: r$2.fontVariant || "normal",
2362
+ fontStretch: r$2.fontStretch || "normal",
2363
+ fontSizeAdjust: r$2.fontSizeAdjust || "none",
2364
+ textRendering: r$2.textRendering || "auto",
2365
+ fontFeatureSettings: r$2.fontFeatureSettings || "normal",
2366
+ fontVariantNumeric: r$2.fontVariantNumeric || "normal",
2367
+ fontKerning: r$2.fontKerning || "auto"
2368
+ }
2369
+ };
2370
+ return t$2.body.removeChild(n$3), i$2;
2371
+ } catch (e$4) {
2372
+ return { error: e$4.message };
2373
+ }
2374
+ }(e$2, t$1);
2375
+ o$1.push({
2376
+ width: i$1.dimensions.width,
2377
+ height: i$1.dimensions.height
2378
+ }), 0 === n$2 && i$1.fontInfo && (r$1 = h(O(i$1.fontInfo)));
2379
+ }));
2380
+ const i = {
2381
+ fontStyleHash: r$1,
2382
+ dimensions: o$1
2383
+ };
2384
+ e$1({
2385
+ details: i,
2386
+ hash: h(O(i))
2387
+ });
2388
+ } catch (t$2) {
2389
+ e$1({
2390
+ supported: !1,
2391
+ error: `MathML error: ${t$2.message}`
2392
+ });
2393
+ }
2394
+ }));
2395
+ } catch (t$1) {
2396
+ e$1({
2397
+ supported: !1,
2398
+ error: `MathML error: ${t$1.message}`
2399
+ });
2400
+ }
2401
+ }));
2402
+ },
2403
+ speech: async function() {
2404
+ return new Promise(((e$1) => {
2405
+ try {
2406
+ if ("undefined" == typeof window || !window.speechSynthesis || "function" != typeof window.speechSynthesis.getVoices) return void e$1({
2407
+ supported: !1,
2408
+ error: "Speech Synthesis API not supported"
2409
+ });
2410
+ let t$1 = !1, n$1 = null;
2411
+ const o$1 = (o$2) => {
2412
+ if (!t$1) {
2413
+ t$1 = !0, n$1 && clearTimeout(n$1);
2414
+ try {
2415
+ const t$2 = o$2.map(((e$2) => {
2416
+ const t$3 = (e$3) => e$3.replace(/\\/g, "\\\\").replace(/,/g, "\\,");
2417
+ return [
2418
+ t$3(e$2.voiceURI || ""),
2419
+ t$3(e$2.name || ""),
2420
+ t$3(e$2.lang || ""),
2421
+ e$2.localService ? "1" : "0",
2422
+ e$2.default ? "1" : "0"
2423
+ ].join(",");
2424
+ }));
2425
+ t$2.sort();
2426
+ const n$2 = {
2427
+ voiceCount: o$2.length,
2428
+ voicesHash: h(O(t$2))
2429
+ };
2430
+ e$1({
2431
+ details: n$2,
2432
+ hash: h(O(n$2))
2433
+ });
2434
+ } catch (t$2) {
2435
+ e$1({
2436
+ supported: !0,
2437
+ error: `Voice processing failed: ${t$2.message}`
2438
+ });
2439
+ }
2440
+ }
2441
+ }, r$1 = window.speechSynthesis.getVoices();
2442
+ if (r$1.length > 0) return void o$1(r$1);
2443
+ n$1 = setTimeout((() => {
2444
+ o$1(window.speechSynthesis.getVoices());
2445
+ }), 800);
2446
+ const i = () => {
2447
+ window.speechSynthesis.removeEventListener("voiceschanged", i);
2448
+ o$1(window.speechSynthesis.getVoices());
2449
+ };
2450
+ window.speechSynthesis.addEventListener("voiceschanged", i);
2451
+ } catch (t$1) {
2452
+ e$1({
2453
+ supported: !1,
2454
+ error: `Speech Synthesis error: ${t$1.message}`
2455
+ });
2456
+ }
2457
+ }));
2458
+ }
2459
+ }, U = {}, j = { timeout: "true" }, W = (e$1, t$1, n$1) => {
2460
+ U[e$1] = t$1;
2461
+ };
2462
+ function G(e$1, t$1) {
2463
+ var n$1;
2464
+ let o$1 = x();
2465
+ if ("unknown" === o$1.name && e$1.system && "object" == typeof e$1.system && !Array.isArray(e$1.system)) {
2466
+ const t$2 = e$1.system.browser;
2467
+ if (t$2 && "object" == typeof t$2 && !Array.isArray(t$2)) {
2468
+ const e$2 = t$2;
2469
+ o$1 = {
2470
+ name: e$2.name || "unknown",
2471
+ version: e$2.version || "unknown"
2472
+ };
2473
+ }
2474
+ }
2475
+ const r$1 = o$1.name.toLowerCase(), i = o$1.version.split(".")[0] || "0", s$1 = parseInt(i, 10), c$1 = [...(null == t$1 ? void 0 : t$1.exclude) || []], l$1 = (null == t$1 ? void 0 : t$1.stabilize) || [], u$1 = (null == t$1 ? void 0 : t$1.include) || [];
2476
+ for (const e$2 of l$1) {
2477
+ const t$2 = a[e$2];
2478
+ if (t$2) for (const e$3 of t$2) {
2479
+ const t$3 = !("browsers" in e$3), o$2 = !t$3 && (null === (n$1 = e$3.browsers) || void 0 === n$1 ? void 0 : n$1.some(((e$4) => {
2480
+ const t$4 = e$4.match(/(.+?)(>=)(\d+)/);
2481
+ if (t$4) {
2482
+ const [, e$5, , n$2] = t$4;
2483
+ return r$1 === e$5 && s$1 >= parseInt(n$2, 10);
2484
+ }
2485
+ return r$1 === e$4;
2486
+ })));
2487
+ (t$3 || o$2) && c$1.push(...e$3.exclude);
2488
+ }
2489
+ }
2490
+ return function e$2(t$2, n$2 = "") {
2491
+ const o$2 = {};
2492
+ for (const [r$2, i$1] of Object.entries(t$2)) {
2493
+ const t$3 = n$2 ? `${n$2}.${r$2}` : r$2;
2494
+ if ("object" != typeof i$1 || Array.isArray(i$1) || null === i$1) {
2495
+ const e$3 = c$1.some(((e$4) => t$3.startsWith(e$4))), n$3 = u$1.some(((e$4) => t$3.startsWith(e$4)));
2496
+ e$3 && !n$3 || (o$2[r$2] = i$1);
2497
+ } else {
2498
+ const n$3 = e$2(i$1, t$3);
2499
+ Object.keys(n$3).length > 0 && (o$2[r$2] = n$3);
2500
+ }
2501
+ }
2502
+ return o$2;
2503
+ }(e$1);
2504
+ }
2505
+ const z = "visitor_id";
2506
+ function J(e$1) {
2507
+ return e$1.storage_property_name ? e$1.storage_property_name : e$1.property_name_factory(z);
2508
+ }
2509
+ const q = `${t}_${z}`;
2510
+ function K(e$1, t$1) {
2511
+ try {
2512
+ localStorage.setItem(J(t$1), e$1);
2513
+ } catch (e$2) {}
2514
+ }
2515
+ const Y = "cache";
2516
+ function X(e$1) {
2517
+ try {
2518
+ const t$1 = localStorage.getItem(e$1.property_name_factory(Y));
2519
+ return JSON.parse(t$1) || {};
2520
+ } catch (e$2) {}
2521
+ return {};
2522
+ }
2523
+ function Z(t$1) {
2524
+ return t$1.cache_lifetime_in_ms > e ? Date.now() + e : Date.now() + t$1.cache_lifetime_in_ms;
2525
+ }
2526
+ let Q = null, ee = null;
2527
+ const te = (e$1, t$1) => {
2528
+ if (e$1.cache_api_call) {
2529
+ if (ee) return Promise.resolve(ee);
2530
+ const t$2 = function(e$2) {
2531
+ const t$3 = X(e$2);
2532
+ if (t$3 && t$3.apiResponse && t$3.apiResponseExpiry && Date.now() <= t$3.apiResponseExpiry) return t$3.apiResponse;
2533
+ }(e$1);
2534
+ if (t$2) return Promise.resolve(t$2);
2535
+ if (Q) return Q;
2536
+ }
2537
+ const o$1 = `${e$1.api_endpoint || n}/thumbmark`, r$1 = function(e$2) {
2538
+ try {
2539
+ const t$2 = J(e$2);
2540
+ let n$1 = localStorage.getItem(t$2);
2541
+ return n$1 || t$2 === q || (n$1 = localStorage.getItem(q), n$1 && K(n$1, e$2)), n$1;
2542
+ } catch (e$3) {
2543
+ return null;
2544
+ }
2545
+ }(e$1), i = {
2546
+ components: t$1,
2547
+ options: e$1,
2548
+ clientHash: h(O(t$1)),
2549
+ version: "1.6.3"
2550
+ };
2551
+ r$1 && (i.visitorId = r$1);
2552
+ const a$1 = fetch(o$1, {
2553
+ method: "POST",
2554
+ headers: {
2555
+ "x-api-key": e$1.api_key,
2556
+ Authorization: "custom-authorized",
2557
+ "Content-Type": "application/json"
2558
+ },
2559
+ body: JSON.stringify(i)
2560
+ }).then(((e$2) => {
2561
+ if (!e$2.ok) {
2562
+ if (403 === e$2.status) throw new Error("INVALID_API_KEY");
2563
+ throw new Error(`HTTP error! status: ${e$2.status}`);
2564
+ }
2565
+ return e$2.json();
2566
+ })).then(((t$2) => (t$2.visitorId && t$2.visitorId !== r$1 && K(t$2.visitorId, e$1), ee = t$2, function(e$2, t$3) {
2567
+ if (!e$2.cache_api_call || !e$2.cache_lifetime_in_ms) return;
2568
+ (function(e$3, t$4) {
2569
+ const n$1 = {
2570
+ ...X(e$3),
2571
+ ...t$4
2572
+ };
2573
+ try {
2574
+ localStorage.setItem(e$3.property_name_factory(Y), JSON.stringify(n$1));
2575
+ } catch (e$4) {}
2576
+ })(e$2, {
2577
+ apiResponseExpiry: Z(e$2),
2578
+ apiResponse: t$3
2579
+ });
2580
+ }(e$1, t$2), Q = null, t$2))).catch(((e$2) => {
2581
+ if (console.error("Error fetching pro data", e$2), Q = null, "INVALID_API_KEY" === e$2.message) throw e$2;
2582
+ return null;
2583
+ })), s$1 = e$1.timeout || 5e3, c$1 = new Promise(((t$2) => {
2584
+ setTimeout((() => {
2585
+ const n$1 = X(e$1);
2586
+ n$1 && n$1.apiResponse ? t$2(n$1.apiResponse) : t$2({
2587
+ info: { timed_out: !0 },
2588
+ ...r$1 && { visitorId: r$1 }
2589
+ });
2590
+ }), s$1);
2591
+ }));
2592
+ return Q = Promise.race([a$1, c$1]), Q;
2593
+ };
2594
+ async function ne(e$1) {
2595
+ var t$1;
2596
+ if ("undefined" == typeof document || "undefined" == typeof window) return {
2597
+ thumbmark: "",
2598
+ components: {},
2599
+ info: {},
2600
+ version: "1.6.3",
2601
+ error: "Browser environment required"
2602
+ };
2603
+ const r$1 = {
2604
+ ...o,
2605
+ ...e$1
2606
+ }, i = r$1.logging && !sessionStorage.getItem("_tmjs_l") && Math.random() < 1e-4, { elapsed: s$1, resolvedComponents: c$1 } = await oe({
2607
+ ...V,
2608
+ ...U
2609
+ }, r$1);
2610
+ let l$1 = {}, u$1 = {};
2611
+ if (i || r$1.experimental) {
2612
+ const { elapsed: e$2, resolvedComponents: t$2 } = await oe(F, r$1);
2613
+ l$1 = t$2, u$1 = e$2;
2614
+ }
2615
+ const d$1 = r$1.api_key ? te(r$1, c$1) : null;
2616
+ let m$1 = null;
2617
+ if (d$1) try {
2618
+ m$1 = await d$1;
2619
+ } catch (e$2) {
2620
+ if (e$2 instanceof Error && "INVALID_API_KEY" === e$2.message) return {
2621
+ error: "Invalid API key or quota exceeded",
2622
+ components: {},
2623
+ info: {},
2624
+ version: "1.6.3",
2625
+ thumbmark: ""
2626
+ };
2627
+ throw e$2;
2628
+ }
2629
+ const f$1 = {
2630
+ ...s$1,
2631
+ ...u$1
2632
+ }, p$1 = r$1.performance ? { elapsed: f$1 } : {}, g$1 = G((null == m$1 ? void 0 : m$1.components) || {}, r$1), w$1 = {
2633
+ ...c$1,
2634
+ ...g$1
2635
+ }, v$1 = (null == m$1 ? void 0 : m$1.info) || { uniqueness: { score: "api only" } }, y$1 = null !== (t$1 = null == m$1 ? void 0 : m$1.thumbmark) && void 0 !== t$1 ? t$1 : h(O(w$1));
2636
+ i && async function(e$2, t$2, o$1, r$2 = {}) {
2637
+ var i$1;
2638
+ const a$1 = `${n}/log`, s$2 = {
2639
+ thumbmark: e$2,
2640
+ components: t$2,
2641
+ experimental: r$2,
2642
+ version: "1.6.3",
2643
+ options: o$1,
2644
+ path: null === (i$1 = null === window || void 0 === window ? void 0 : window.location) || void 0 === i$1 ? void 0 : i$1.pathname
2645
+ };
2646
+ sessionStorage.setItem("_tmjs_l", "1");
2647
+ try {
2648
+ await fetch(a$1, {
2649
+ method: "POST",
2650
+ headers: { "Content-Type": "application/json" },
2651
+ body: JSON.stringify(s$2)
2652
+ });
2653
+ } catch (e$3) {}
2654
+ }(y$1, w$1, r$1, l$1).catch((() => {}));
2655
+ return {
2656
+ ...(null == m$1 ? void 0 : m$1.visitorId) && { visitorId: m$1.visitorId },
2657
+ thumbmark: y$1,
2658
+ components: w$1,
2659
+ info: v$1,
2660
+ version: "1.6.3",
2661
+ ...p$1,
2662
+ ...Object.keys(l$1).length > 0 && r$1.experimental && { experimental: l$1 },
2663
+ ...(null == m$1 ? void 0 : m$1.requestId) && { requestId: m$1.requestId }
2664
+ };
2665
+ }
2666
+ async function oe(e$1, t$1) {
2667
+ const n$1 = {
2668
+ ...o,
2669
+ ...t$1
2670
+ }, r$1 = Object.entries(e$1).filter((([e$2]) => {
2671
+ var t$2;
2672
+ return !(null === (t$2 = null == n$1 ? void 0 : n$1.exclude) || void 0 === t$2 ? void 0 : t$2.includes(e$2));
2673
+ })).filter((([e$2]) => {
2674
+ var t$2, o$1, r$2, i$1;
2675
+ return (null === (t$2 = null == n$1 ? void 0 : n$1.include) || void 0 === t$2 ? void 0 : t$2.some(((e$3) => e$3.includes(".")))) ? null === (o$1 = null == n$1 ? void 0 : n$1.include) || void 0 === o$1 ? void 0 : o$1.some(((t$3) => t$3.startsWith(e$2))) : 0 === (null === (r$2 = null == n$1 ? void 0 : n$1.include) || void 0 === r$2 ? void 0 : r$2.length) || (null === (i$1 = null == n$1 ? void 0 : n$1.include) || void 0 === i$1 ? void 0 : i$1.includes(e$2));
2676
+ })), i = r$1.map((([e$2]) => e$2)), s$1 = await function(e$2, t$2, n$2) {
2677
+ return Promise.all(e$2.map(((e$3) => {
2678
+ const o$1 = performance.now();
2679
+ return Promise.race([e$3.then(((e$4) => ({
2680
+ value: e$4,
2681
+ elapsed: performance.now() - o$1
2682
+ }))), (r$2 = t$2, i$1 = n$2, new Promise(((e$4) => {
2683
+ setTimeout((() => e$4(i$1)), r$2);
2684
+ }))).then(((e$4) => ({
2685
+ value: e$4,
2686
+ elapsed: performance.now() - o$1
2687
+ })))]);
2688
+ var r$2, i$1;
2689
+ })));
2690
+ }(r$1.map((([e$2, n$2]) => n$2(t$1))), (null == n$1 ? void 0 : n$1.timeout) || 5e3, j), c$1 = {}, l$1 = {};
2691
+ s$1.forEach(((e$2, t$2) => {
2692
+ var n$2;
2693
+ null != e$2.value && (l$1[i[t$2]] = e$2.value, c$1[i[t$2]] = null !== (n$2 = e$2.elapsed) && void 0 !== n$2 ? n$2 : 0);
2694
+ }));
2695
+ return {
2696
+ elapsed: c$1,
2697
+ resolvedComponents: G(l$1, n$1)
2698
+ };
2699
+ }
2700
+ var se = class {
2701
+ constructor(e$1) {
2702
+ this.options = {
2703
+ ...o,
2704
+ ...e$1
2705
+ };
2706
+ }
2707
+ async get(e$1) {
2708
+ return ne({
2709
+ ...this.options,
2710
+ ...e$1
2711
+ });
2712
+ }
2713
+ getVersion() {
2714
+ return "1.6.3";
2715
+ }
2716
+ includeComponent(e$1, t$1) {
2717
+ W(e$1, t$1);
2718
+ }
2719
+ };
2720
+
2721
+ //#endregion
2722
+ //#region ../infra/src/providers/browser/thumbmarkAdapter.ts
2723
+ /**
2724
+ * Adapter for @thumbmarkjs/thumbmarkjs. Single point of dependency so bundlers
2725
+ * resolve it from infra's node_modules when building apps that depend on core → infra.
2726
+ */
2727
+ async function getThumbmarkId() {
2728
+ return (await new se().get()).thumbmark;
1658
2729
  }
1659
2730
 
1660
2731
  //#endregion
@@ -1715,14 +2786,6 @@ function isBrowserSimulation(browserEnv) {
1715
2786
  if (isIOS(ua) && !browserEnv.hasOnTouchStart()) return true;
1716
2787
  return false;
1717
2788
  }
1718
- /**
1719
- * Zero-arg convenience over {@link isBrowserSimulation} that reads the live
1720
- * browser environment. Returns `true` when the browser appears to be
1721
- * simulated/automated.
1722
- */
1723
- function isBrowserSimulated() {
1724
- return isBrowserSimulation(new BrowserEnvironmentProvider());
1725
- }
1726
2789
 
1727
2790
  //#endregion
1728
- export { UAParser as a, getParsedUserAgent as i, isBrowserSimulation as n, BrowserEnvironmentProvider as o, getUserAgent as r, isBrowserSimulated as t };
2791
+ export { UAParser as i, getThumbmarkId as n, getParsedUserAgent as r, isBrowserSimulation as t };