@getopenpay/openpay-js 0.5.13 → 0.5.15

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 (47) hide show
  1. package/dist/{ExportResult-B-YLKMaU.js → ExportResult-BacsqwKA.js} +1 -1
  2. package/dist/{Resource-BZeevyoh.js → Resource-Ds5bbQ3b.js} +4 -4
  3. package/dist/SimpleSpanProcessor-0bSccE1S.js +910 -0
  4. package/dist/_commonjsHelpers-CdLE1o9f.js +30 -0
  5. package/dist/detect-resources-UwRkF4Xd.js +862 -0
  6. package/dist/{diag-api-CHLb_Weo.js → diag-api-CMlZXyyv.js} +2 -2
  7. package/dist/index-1jECpTsg.js +147 -0
  8. package/dist/index-BZEpD-f0.js +6718 -0
  9. package/dist/index-BhZy-TW3.js +430 -0
  10. package/dist/index-BmKZeOoc.js +1619 -0
  11. package/dist/index-CDdbDQxQ.js +6 -0
  12. package/dist/index-CWTkU3J-.js +18 -0
  13. package/dist/index-DFO-DCsT.js +127 -0
  14. package/dist/index-DsxDp11a.js +28 -0
  15. package/dist/index-JNJd_YS1.js +1012 -0
  16. package/dist/index-j7i6AeZa.js +7005 -0
  17. package/dist/index.d.ts +29 -4
  18. package/dist/index.es.js +2 -2
  19. package/dist/index.umd.js +45 -45
  20. package/dist/lifecycle-D1BdEbZs.js +119 -0
  21. package/dist/{metrics-api-ClKmMX3Y.js → metrics-api-C9pRFfr-.js} +2 -2
  22. package/dist/sdk-info-ChuKu8zW.js +285 -0
  23. package/dist/suppress-tracing-B94rObkn.js +17 -0
  24. package/dist/url-CdPstDG9.js +798 -0
  25. package/dist/utils--M6ihaNw.js +101 -0
  26. package/dist/utils-De78ey-v.js +12 -0
  27. package/dist/utils-VJ-0MC7c.js +270 -0
  28. package/package.json +4 -4
  29. package/dist/SimpleSpanProcessor-CwJD-GjM.js +0 -957
  30. package/dist/_commonjsHelpers-f76XedMs.js +0 -25
  31. package/dist/detect-resources-BatabDmW.js +0 -854
  32. package/dist/index-ByaN1AdQ.js +0 -6685
  33. package/dist/index-CU4AI3HW.js +0 -52
  34. package/dist/index-Cb34s3AM.js +0 -1599
  35. package/dist/index-CmtkHZgE.js +0 -330
  36. package/dist/index-CtZ-xuHu.js +0 -7041
  37. package/dist/index-D5OCmVN-.js +0 -19
  38. package/dist/index-DLJd6nUV.js +0 -150
  39. package/dist/index-DjekHBls.js +0 -431
  40. package/dist/index-DoKHV9rR.js +0 -130
  41. package/dist/index-_ZTp3kCj.js +0 -830
  42. package/dist/lifecycle-BjQ-7GLm.js +0 -119
  43. package/dist/sdk-info-DYuuxEVK.js +0 -484
  44. package/dist/url-BAeEv8aD.js +0 -797
  45. package/dist/utils--qqdHZ_b.js +0 -142
  46. package/dist/utils-Bf8wDuNo.js +0 -381
  47. package/dist/utils-CX5YT7yI.js +0 -14
@@ -0,0 +1,101 @@
1
+ import { S as l, a as L, u as h, h as O, t as R } from "./url-CdPstDG9.js";
2
+ var T;
3
+ (function(t) {
4
+ t.CONNECT_END = "connectEnd", t.CONNECT_START = "connectStart", t.DECODED_BODY_SIZE = "decodedBodySize", t.DOM_COMPLETE = "domComplete", t.DOM_CONTENT_LOADED_EVENT_END = "domContentLoadedEventEnd", t.DOM_CONTENT_LOADED_EVENT_START = "domContentLoadedEventStart", t.DOM_INTERACTIVE = "domInteractive", t.DOMAIN_LOOKUP_END = "domainLookupEnd", t.DOMAIN_LOOKUP_START = "domainLookupStart", t.ENCODED_BODY_SIZE = "encodedBodySize", t.FETCH_START = "fetchStart", t.LOAD_EVENT_END = "loadEventEnd", t.LOAD_EVENT_START = "loadEventStart", t.NAVIGATION_START = "navigationStart", t.REDIRECT_END = "redirectEnd", t.REDIRECT_START = "redirectStart", t.REQUEST_START = "requestStart", t.RESPONSE_END = "responseEnd", t.RESPONSE_START = "responseStart", t.SECURE_CONNECTION_START = "secureConnectionStart", t.UNLOAD_EVENT_END = "unloadEventEnd", t.UNLOAD_EVENT_START = "unloadEventStart";
5
+ })(T || (T = {}));
6
+ var v;
7
+ function I() {
8
+ return v || (v = document.createElement("a")), v;
9
+ }
10
+ function D(t, E) {
11
+ return E in t;
12
+ }
13
+ function u(t, E, n, S) {
14
+ var d = void 0, i = void 0;
15
+ D(n, E) && typeof n[E] == "number" && (d = n[E]);
16
+ var _ = T.FETCH_START;
17
+ if (D(n, _) && typeof n[_] == "number" && (i = n[_]), d !== void 0 && i !== void 0 && d >= i)
18
+ return t.addEvent(E, d), t;
19
+ }
20
+ function y(t, E, n) {
21
+ n === void 0 && (n = !1), n || (u(t, T.FETCH_START, E), u(t, T.DOMAIN_LOOKUP_START, E), u(t, T.DOMAIN_LOOKUP_END, E), u(t, T.CONNECT_START, E), D(E, "name") && E.name.startsWith("https:") && u(t, T.SECURE_CONNECTION_START, E), u(t, T.CONNECT_END, E), u(t, T.REQUEST_START, E), u(t, T.RESPONSE_START, E), u(t, T.RESPONSE_END, E));
22
+ var S = E[T.ENCODED_BODY_SIZE];
23
+ S !== void 0 && t.setAttribute(l, S);
24
+ var d = E[T.DECODED_BODY_SIZE];
25
+ d !== void 0 && S !== d && t.setAttribute(L, d);
26
+ }
27
+ function U(t) {
28
+ return t.slice().sort(function(E, n) {
29
+ var S = E[T.FETCH_START], d = n[T.FETCH_START];
30
+ return S > d ? 1 : S < d ? -1 : 0;
31
+ });
32
+ }
33
+ function A() {
34
+ return typeof location < "u" ? location.origin : void 0;
35
+ }
36
+ function V(t, E, n, S, d, i) {
37
+ d === void 0 && (d = /* @__PURE__ */ new WeakSet());
38
+ var _ = C(t);
39
+ t = _.toString();
40
+ var r = H(t, E, n, S, d, i);
41
+ if (r.length === 0)
42
+ return {
43
+ mainRequest: void 0
44
+ };
45
+ if (r.length === 1)
46
+ return {
47
+ mainRequest: r[0]
48
+ };
49
+ var a = U(r);
50
+ if (_.origin !== A() && a.length > 1) {
51
+ var e = a[0], f = p(a, e[T.RESPONSE_END], n), o = e[T.RESPONSE_END], N = f[T.FETCH_START];
52
+ return N < o && (f = e, e = void 0), {
53
+ corsPreFlightRequest: e,
54
+ mainRequest: f
55
+ };
56
+ } else
57
+ return {
58
+ mainRequest: r[0]
59
+ };
60
+ }
61
+ function p(t, E, n) {
62
+ for (var S = O(n), d = O(R(E)), i = t[1], _, r = t.length, a = 1; a < r; a++) {
63
+ var e = t[a], f = O(R(e[T.FETCH_START])), o = O(R(e[T.RESPONSE_END])), N = S - o;
64
+ f >= d && (!_ || N < _) && (_ = N, i = e);
65
+ }
66
+ return i;
67
+ }
68
+ function H(t, E, n, S, d, i) {
69
+ var _ = O(E), r = O(n), a = S.filter(function(e) {
70
+ var f = O(R(e[T.FETCH_START])), o = O(R(e[T.RESPONSE_END]));
71
+ return e.initiatorType.toLowerCase() === i && e.name === t && f >= _ && o <= r;
72
+ });
73
+ return a.length > 0 && (a = a.filter(function(e) {
74
+ return !d.has(e);
75
+ })), a;
76
+ }
77
+ function C(t) {
78
+ if (typeof URL == "function")
79
+ return new URL(t, typeof document < "u" ? document.baseURI : typeof location < "u" ? location.href : void 0);
80
+ var E = I();
81
+ return E.href = t, E;
82
+ }
83
+ function b(t, E) {
84
+ var n = E || [];
85
+ (typeof n == "string" || n instanceof RegExp) && (n = [n]);
86
+ var S = C(t);
87
+ return S.origin === A() ? !0 : n.some(function(d) {
88
+ return h(t, d);
89
+ });
90
+ }
91
+ export {
92
+ T as P,
93
+ u as a,
94
+ y as b,
95
+ U as c,
96
+ V as g,
97
+ D as h,
98
+ C as p,
99
+ b as s
100
+ };
101
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidXRpbHMtIX57MDBjfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IFMgYXMgU0VNQVRUUlNfSFRUUF9SRVNQT05TRV9DT05URU5UX0xFTkdUSCwgYSBhcyBTRU1BVFRSU19IVFRQX1JFU1BPTlNFX0NPTlRFTlRfTEVOR1RIX1VOQ09NUFJFU1NFRCwgdSBhcyB1cmxNYXRjaGVzLCBoIGFzIGhyVGltZVRvTmFub3NlY29uZHMsIHQgYXMgdGltZUlucHV0VG9IclRpbWUgfSBmcm9tICcuL3VybC0hfnswMGR9fi5qcyc7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgUGVyZm9ybWFuY2VUaW1pbmdOYW1lcztcbihmdW5jdGlvbiAoUGVyZm9ybWFuY2VUaW1pbmdOYW1lcykge1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJDT05ORUNUX0VORFwiXSA9IFwiY29ubmVjdEVuZFwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJDT05ORUNUX1NUQVJUXCJdID0gXCJjb25uZWN0U3RhcnRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiREVDT0RFRF9CT0RZX1NJWkVcIl0gPSBcImRlY29kZWRCb2R5U2l6ZVwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJET01fQ09NUExFVEVcIl0gPSBcImRvbUNvbXBsZXRlXCI7XG4gICAgUGVyZm9ybWFuY2VUaW1pbmdOYW1lc1tcIkRPTV9DT05URU5UX0xPQURFRF9FVkVOVF9FTkRcIl0gPSBcImRvbUNvbnRlbnRMb2FkZWRFdmVudEVuZFwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJET01fQ09OVEVOVF9MT0FERURfRVZFTlRfU1RBUlRcIl0gPSBcImRvbUNvbnRlbnRMb2FkZWRFdmVudFN0YXJ0XCI7XG4gICAgUGVyZm9ybWFuY2VUaW1pbmdOYW1lc1tcIkRPTV9JTlRFUkFDVElWRVwiXSA9IFwiZG9tSW50ZXJhY3RpdmVcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiRE9NQUlOX0xPT0tVUF9FTkRcIl0gPSBcImRvbWFpbkxvb2t1cEVuZFwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJET01BSU5fTE9PS1VQX1NUQVJUXCJdID0gXCJkb21haW5Mb29rdXBTdGFydFwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJFTkNPREVEX0JPRFlfU0laRVwiXSA9IFwiZW5jb2RlZEJvZHlTaXplXCI7XG4gICAgUGVyZm9ybWFuY2VUaW1pbmdOYW1lc1tcIkZFVENIX1NUQVJUXCJdID0gXCJmZXRjaFN0YXJ0XCI7XG4gICAgUGVyZm9ybWFuY2VUaW1pbmdOYW1lc1tcIkxPQURfRVZFTlRfRU5EXCJdID0gXCJsb2FkRXZlbnRFbmRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiTE9BRF9FVkVOVF9TVEFSVFwiXSA9IFwibG9hZEV2ZW50U3RhcnRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiTkFWSUdBVElPTl9TVEFSVFwiXSA9IFwibmF2aWdhdGlvblN0YXJ0XCI7XG4gICAgUGVyZm9ybWFuY2VUaW1pbmdOYW1lc1tcIlJFRElSRUNUX0VORFwiXSA9IFwicmVkaXJlY3RFbmRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiUkVESVJFQ1RfU1RBUlRcIl0gPSBcInJlZGlyZWN0U3RhcnRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiUkVRVUVTVF9TVEFSVFwiXSA9IFwicmVxdWVzdFN0YXJ0XCI7XG4gICAgUGVyZm9ybWFuY2VUaW1pbmdOYW1lc1tcIlJFU1BPTlNFX0VORFwiXSA9IFwicmVzcG9uc2VFbmRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiUkVTUE9OU0VfU1RBUlRcIl0gPSBcInJlc3BvbnNlU3RhcnRcIjtcbiAgICBQZXJmb3JtYW5jZVRpbWluZ05hbWVzW1wiU0VDVVJFX0NPTk5FQ1RJT05fU1RBUlRcIl0gPSBcInNlY3VyZUNvbm5lY3Rpb25TdGFydFwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJVTkxPQURfRVZFTlRfRU5EXCJdID0gXCJ1bmxvYWRFdmVudEVuZFwiO1xuICAgIFBlcmZvcm1hbmNlVGltaW5nTmFtZXNbXCJVTkxPQURfRVZFTlRfU1RBUlRcIl0gPSBcInVubG9hZEV2ZW50U3RhcnRcIjtcbn0pKFBlcmZvcm1hbmNlVGltaW5nTmFtZXMgfHwgKFBlcmZvcm1hbmNlVGltaW5nTmFtZXMgPSB7fSkpO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLy8gVXNlZCB0byBub3JtYWxpemUgcmVsYXRpdmUgVVJMc1xudmFyIHVybE5vcm1hbGl6aW5nQW5jaG9yO1xuZnVuY3Rpb24gZ2V0VXJsTm9ybWFsaXppbmdBbmNob3IoKSB7XG4gICAgaWYgKCF1cmxOb3JtYWxpemluZ0FuY2hvcikge1xuICAgICAgICB1cmxOb3JtYWxpemluZ0FuY2hvciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICB9XG4gICAgcmV0dXJuIHVybE5vcm1hbGl6aW5nQW5jaG9yO1xufVxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gdG8gYmUgYWJsZSB0byB1c2UgZW51bSBhcyB0eXBlZCBrZXkgaW4gdHlwZSBhbmQgaW4gaW50ZXJmYWNlIHdoZW4gdXNpbmcgZm9yRWFjaFxuICogQHBhcmFtIG9ialxuICogQHBhcmFtIGtleVxuICovXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZnVuY3Rpb24gaGFzS2V5KG9iaiwga2V5KSB7XG4gICAgcmV0dXJuIGtleSBpbiBvYmo7XG59XG4vKipcbiAqIEhlbHBlciBmdW5jdGlvbiBmb3Igc3RhcnRpbmcgYW4gZXZlbnQgb24gc3BhbiBiYXNlZCBvbiB7QGxpbmsgUGVyZm9ybWFuY2VFbnRyaWVzfVxuICogQHBhcmFtIHNwYW5cbiAqIEBwYXJhbSBwZXJmb3JtYW5jZU5hbWUgbmFtZSBvZiBwZXJmb3JtYW5jZSBlbnRyeSBmb3IgdGltZSBzdGFydFxuICogQHBhcmFtIGVudHJpZXNcbiAqIEBwYXJhbSByZWZQZXJmTmFtZSBuYW1lIG9mIHBlcmZvcm1hbmNlIGVudHJ5IHRvIHVzZSBmb3IgcmVmZXJlbmNlXG4gKi9cbmZ1bmN0aW9uIGFkZFNwYW5OZXR3b3JrRXZlbnQoc3BhbiwgcGVyZm9ybWFuY2VOYW1lLCBlbnRyaWVzLCByZWZQZXJmTmFtZSkge1xuICAgIHZhciBwZXJmVGltZSA9IHVuZGVmaW5lZDtcbiAgICB2YXIgcmVmVGltZSA9IHVuZGVmaW5lZDtcbiAgICBpZiAoaGFzS2V5KGVudHJpZXMsIHBlcmZvcm1hbmNlTmFtZSkgJiZcbiAgICAgICAgdHlwZW9mIGVudHJpZXNbcGVyZm9ybWFuY2VOYW1lXSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcGVyZlRpbWUgPSBlbnRyaWVzW3BlcmZvcm1hbmNlTmFtZV07XG4gICAgfVxuICAgIHZhciByZWZOYW1lID0gUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5GRVRDSF9TVEFSVDtcbiAgICAvLyBVc2UgYSByZWZlcmVuY2UgdGltZSB3aGljaCBpcyB0aGUgZWFybGllc3QgcG9zc2libGUgdmFsdWUgc28gdGhhdCB0aGUgcGVyZm9ybWFuY2UgdGltaW5ncyB0aGF0IGFyZSBlYXJsaWVyIHNob3VsZCBub3QgYmUgYWRkZWRcbiAgICAvLyB1c2luZyBGRVRDSCBTVEFSVCB0aW1lIGluIGNhc2Ugbm8gcmVmZXJlbmNlIGlzIHByb3ZpZGVkXG4gICAgaWYgKGhhc0tleShlbnRyaWVzLCByZWZOYW1lKSAmJiB0eXBlb2YgZW50cmllc1tyZWZOYW1lXSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgcmVmVGltZSA9IGVudHJpZXNbcmVmTmFtZV07XG4gICAgfVxuICAgIGlmIChwZXJmVGltZSAhPT0gdW5kZWZpbmVkICYmIHJlZlRpbWUgIT09IHVuZGVmaW5lZCAmJiBwZXJmVGltZSA+PSByZWZUaW1lKSB7XG4gICAgICAgIHNwYW4uYWRkRXZlbnQocGVyZm9ybWFuY2VOYW1lLCBwZXJmVGltZSk7XG4gICAgICAgIHJldHVybiBzcGFuO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xufVxuLyoqXG4gKiBIZWxwZXIgZnVuY3Rpb24gZm9yIGFkZGluZyBuZXR3b3JrIGV2ZW50cyBhbmQgY29udGVudCBsZW5ndGggYXR0cmlidXRlc1xuICogQHBhcmFtIHNwYW5cbiAqIEBwYXJhbSByZXNvdXJjZVxuICogQHBhcmFtIGlnbm9yZU5ldHdvcmtFdmVudHNcbiAqL1xuZnVuY3Rpb24gYWRkU3Bhbk5ldHdvcmtFdmVudHMoc3BhbiwgcmVzb3VyY2UsIGlnbm9yZU5ldHdvcmtFdmVudHMpIHtcbiAgICBpZiAoaWdub3JlTmV0d29ya0V2ZW50cyA9PT0gdm9pZCAwKSB7IGlnbm9yZU5ldHdvcmtFdmVudHMgPSBmYWxzZTsgfVxuICAgIGlmICghaWdub3JlTmV0d29ya0V2ZW50cykge1xuICAgICAgICBhZGRTcGFuTmV0d29ya0V2ZW50KHNwYW4sIFBlcmZvcm1hbmNlVGltaW5nTmFtZXMuRkVUQ0hfU1RBUlQsIHJlc291cmNlKTtcbiAgICAgICAgYWRkU3Bhbk5ldHdvcmtFdmVudChzcGFuLCBQZXJmb3JtYW5jZVRpbWluZ05hbWVzLkRPTUFJTl9MT09LVVBfU1RBUlQsIHJlc291cmNlKTtcbiAgICAgICAgYWRkU3Bhbk5ldHdvcmtFdmVudChzcGFuLCBQZXJmb3JtYW5jZVRpbWluZ05hbWVzLkRPTUFJTl9MT09LVVBfRU5ELCByZXNvdXJjZSk7XG4gICAgICAgIGFkZFNwYW5OZXR3b3JrRXZlbnQoc3BhbiwgUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5DT05ORUNUX1NUQVJULCByZXNvdXJjZSk7XG4gICAgICAgIGlmIChoYXNLZXkocmVzb3VyY2UsICduYW1lJykgJiZcbiAgICAgICAgICAgIHJlc291cmNlWyduYW1lJ10uc3RhcnRzV2l0aCgnaHR0cHM6JykpIHtcbiAgICAgICAgICAgIGFkZFNwYW5OZXR3b3JrRXZlbnQoc3BhbiwgUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5TRUNVUkVfQ09OTkVDVElPTl9TVEFSVCwgcmVzb3VyY2UpO1xuICAgICAgICB9XG4gICAgICAgIGFkZFNwYW5OZXR3b3JrRXZlbnQoc3BhbiwgUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5DT05ORUNUX0VORCwgcmVzb3VyY2UpO1xuICAgICAgICBhZGRTcGFuTmV0d29ya0V2ZW50KHNwYW4sIFBlcmZvcm1hbmNlVGltaW5nTmFtZXMuUkVRVUVTVF9TVEFSVCwgcmVzb3VyY2UpO1xuICAgICAgICBhZGRTcGFuTmV0d29ya0V2ZW50KHNwYW4sIFBlcmZvcm1hbmNlVGltaW5nTmFtZXMuUkVTUE9OU0VfU1RBUlQsIHJlc291cmNlKTtcbiAgICAgICAgYWRkU3Bhbk5ldHdvcmtFdmVudChzcGFuLCBQZXJmb3JtYW5jZVRpbWluZ05hbWVzLlJFU1BPTlNFX0VORCwgcmVzb3VyY2UpO1xuICAgIH1cbiAgICB2YXIgZW5jb2RlZExlbmd0aCA9IHJlc291cmNlW1BlcmZvcm1hbmNlVGltaW5nTmFtZXMuRU5DT0RFRF9CT0RZX1NJWkVdO1xuICAgIGlmIChlbmNvZGVkTGVuZ3RoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoU0VNQVRUUlNfSFRUUF9SRVNQT05TRV9DT05URU5UX0xFTkdUSCwgZW5jb2RlZExlbmd0aCk7XG4gICAgfVxuICAgIHZhciBkZWNvZGVkTGVuZ3RoID0gcmVzb3VyY2VbUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5ERUNPREVEX0JPRFlfU0laRV07XG4gICAgLy8gU3BlYzogTm90IHNldCBpZiB0cmFuc3BvcnQgZW5jb2Rpbmcgbm90IHVzZWQgKGluIHdoaWNoIGNhc2UgZW5jb2RlZCBhbmQgZGVjb2RlZCBzaXplcyBtYXRjaClcbiAgICBpZiAoZGVjb2RlZExlbmd0aCAhPT0gdW5kZWZpbmVkICYmIGVuY29kZWRMZW5ndGggIT09IGRlY29kZWRMZW5ndGgpIHtcbiAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGUoU0VNQVRUUlNfSFRUUF9SRVNQT05TRV9DT05URU5UX0xFTkdUSF9VTkNPTVBSRVNTRUQsIGRlY29kZWRMZW5ndGgpO1xuICAgIH1cbn1cbi8qKlxuICogc29ydCByZXNvdXJjZXMgYnkgc3RhcnRUaW1lXG4gKiBAcGFyYW0gZmlsdGVyZWRSZXNvdXJjZXNcbiAqL1xuZnVuY3Rpb24gc29ydFJlc291cmNlcyhmaWx0ZXJlZFJlc291cmNlcykge1xuICAgIHJldHVybiBmaWx0ZXJlZFJlc291cmNlcy5zbGljZSgpLnNvcnQoZnVuY3Rpb24gKGEsIGIpIHtcbiAgICAgICAgdmFyIHZhbHVlQSA9IGFbUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5GRVRDSF9TVEFSVF07XG4gICAgICAgIHZhciB2YWx1ZUIgPSBiW1BlcmZvcm1hbmNlVGltaW5nTmFtZXMuRkVUQ0hfU1RBUlRdO1xuICAgICAgICBpZiAodmFsdWVBID4gdmFsdWVCKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIGlmICh2YWx1ZUEgPCB2YWx1ZUIpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICB9KTtcbn1cbi8qKiBSZXR1cm5zIHRoZSBvcmlnaW4gaWYgcHJlc2VudCAoaWYgaW4gYnJvd3NlciBjb250ZXh0KS4gKi9cbmZ1bmN0aW9uIGdldE9yaWdpbigpIHtcbiAgICByZXR1cm4gdHlwZW9mIGxvY2F0aW9uICE9PSAndW5kZWZpbmVkJyA/IGxvY2F0aW9uLm9yaWdpbiA6IHVuZGVmaW5lZDtcbn1cbi8qKlxuICogR2V0IGNsb3Nlc3QgcGVyZm9ybWFuY2UgcmVzb3VyY2UgaWdub3JpbmcgdGhlIHJlc291cmNlcyB0aGF0IGhhdmUgYmVlblxuICogYWxyZWFkeSB1c2VkLlxuICogQHBhcmFtIHNwYW5VcmxcbiAqIEBwYXJhbSBzdGFydFRpbWVIUlxuICogQHBhcmFtIGVuZFRpbWVIUlxuICogQHBhcmFtIHJlc291cmNlc1xuICogQHBhcmFtIGlnbm9yZWRSZXNvdXJjZXNcbiAqIEBwYXJhbSBpbml0aWF0b3JUeXBlXG4gKi9cbmZ1bmN0aW9uIGdldFJlc291cmNlKHNwYW5VcmwsIHN0YXJ0VGltZUhSLCBlbmRUaW1lSFIsIHJlc291cmNlcywgaWdub3JlZFJlc291cmNlcywgaW5pdGlhdG9yVHlwZSkge1xuICAgIGlmIChpZ25vcmVkUmVzb3VyY2VzID09PSB2b2lkIDApIHsgaWdub3JlZFJlc291cmNlcyA9IG5ldyBXZWFrU2V0KCk7IH1cbiAgICAvLyBkZS1yZWxhdGl2aXplIHRoZSBVUkwgYmVmb3JlIHVzYWdlIChkb2VzIG5vIGhhcm0gdG8gYWJzb2x1dGUgVVJMcylcbiAgICB2YXIgcGFyc2VkU3BhblVybCA9IHBhcnNlVXJsKHNwYW5VcmwpO1xuICAgIHNwYW5VcmwgPSBwYXJzZWRTcGFuVXJsLnRvU3RyaW5nKCk7XG4gICAgdmFyIGZpbHRlcmVkUmVzb3VyY2VzID0gZmlsdGVyUmVzb3VyY2VzRm9yU3BhbihzcGFuVXJsLCBzdGFydFRpbWVIUiwgZW5kVGltZUhSLCByZXNvdXJjZXMsIGlnbm9yZWRSZXNvdXJjZXMsIGluaXRpYXRvclR5cGUpO1xuICAgIGlmIChmaWx0ZXJlZFJlc291cmNlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1haW5SZXF1ZXN0OiB1bmRlZmluZWQsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGlmIChmaWx0ZXJlZFJlc291cmNlcy5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG1haW5SZXF1ZXN0OiBmaWx0ZXJlZFJlc291cmNlc1swXSxcbiAgICAgICAgfTtcbiAgICB9XG4gICAgdmFyIHNvcnRlZCA9IHNvcnRSZXNvdXJjZXMoZmlsdGVyZWRSZXNvdXJjZXMpO1xuICAgIGlmIChwYXJzZWRTcGFuVXJsLm9yaWdpbiAhPT0gZ2V0T3JpZ2luKCkgJiYgc29ydGVkLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgdmFyIGNvcnNQcmVGbGlnaHRSZXF1ZXN0ID0gc29ydGVkWzBdO1xuICAgICAgICB2YXIgbWFpblJlcXVlc3QgPSBmaW5kTWFpblJlcXVlc3Qoc29ydGVkLCBjb3JzUHJlRmxpZ2h0UmVxdWVzdFtQZXJmb3JtYW5jZVRpbWluZ05hbWVzLlJFU1BPTlNFX0VORF0sIGVuZFRpbWVIUik7XG4gICAgICAgIHZhciByZXNwb25zZUVuZCA9IGNvcnNQcmVGbGlnaHRSZXF1ZXN0W1BlcmZvcm1hbmNlVGltaW5nTmFtZXMuUkVTUE9OU0VfRU5EXTtcbiAgICAgICAgdmFyIGZldGNoU3RhcnQgPSBtYWluUmVxdWVzdFtQZXJmb3JtYW5jZVRpbWluZ05hbWVzLkZFVENIX1NUQVJUXTtcbiAgICAgICAgLy8gbm8gY29yc1ByZUZsaWdodFJlcXVlc3RcbiAgICAgICAgaWYgKGZldGNoU3RhcnQgPCByZXNwb25zZUVuZCkge1xuICAgICAgICAgICAgbWFpblJlcXVlc3QgPSBjb3JzUHJlRmxpZ2h0UmVxdWVzdDtcbiAgICAgICAgICAgIGNvcnNQcmVGbGlnaHRSZXF1ZXN0ID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb3JzUHJlRmxpZ2h0UmVxdWVzdDogY29yc1ByZUZsaWdodFJlcXVlc3QsXG4gICAgICAgICAgICBtYWluUmVxdWVzdDogbWFpblJlcXVlc3QsXG4gICAgICAgIH07XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWFpblJlcXVlc3Q6IGZpbHRlcmVkUmVzb3VyY2VzWzBdLFxuICAgICAgICB9O1xuICAgIH1cbn1cbi8qKlxuICogV2lsbCBmaW5kIHRoZSBtYWluIHJlcXVlc3Qgc2tpcHBpbmcgdGhlIGNvcnMgcHJlIGZsaWdodCByZXF1ZXN0c1xuICogQHBhcmFtIHJlc291cmNlc1xuICogQHBhcmFtIGNvcnNQcmVGbGlnaHRSZXF1ZXN0RW5kVGltZVxuICogQHBhcmFtIHNwYW5FbmRUaW1lSFJcbiAqL1xuZnVuY3Rpb24gZmluZE1haW5SZXF1ZXN0KHJlc291cmNlcywgY29yc1ByZUZsaWdodFJlcXVlc3RFbmRUaW1lLCBzcGFuRW5kVGltZUhSKSB7XG4gICAgdmFyIHNwYW5FbmRUaW1lID0gaHJUaW1lVG9OYW5vc2Vjb25kcyhzcGFuRW5kVGltZUhSKTtcbiAgICB2YXIgbWluVGltZSA9IGhyVGltZVRvTmFub3NlY29uZHModGltZUlucHV0VG9IclRpbWUoY29yc1ByZUZsaWdodFJlcXVlc3RFbmRUaW1lKSk7XG4gICAgdmFyIG1haW5SZXF1ZXN0ID0gcmVzb3VyY2VzWzFdO1xuICAgIHZhciBiZXN0R2FwO1xuICAgIHZhciBsZW5ndGggPSByZXNvdXJjZXMubGVuZ3RoO1xuICAgIGZvciAodmFyIGkgPSAxOyBpIDwgbGVuZ3RoOyBpKyspIHtcbiAgICAgICAgdmFyIHJlc291cmNlID0gcmVzb3VyY2VzW2ldO1xuICAgICAgICB2YXIgcmVzb3VyY2VTdGFydFRpbWUgPSBoclRpbWVUb05hbm9zZWNvbmRzKHRpbWVJbnB1dFRvSHJUaW1lKHJlc291cmNlW1BlcmZvcm1hbmNlVGltaW5nTmFtZXMuRkVUQ0hfU1RBUlRdKSk7XG4gICAgICAgIHZhciByZXNvdXJjZUVuZFRpbWUgPSBoclRpbWVUb05hbm9zZWNvbmRzKHRpbWVJbnB1dFRvSHJUaW1lKHJlc291cmNlW1BlcmZvcm1hbmNlVGltaW5nTmFtZXMuUkVTUE9OU0VfRU5EXSkpO1xuICAgICAgICB2YXIgY3VycmVudEdhcCA9IHNwYW5FbmRUaW1lIC0gcmVzb3VyY2VFbmRUaW1lO1xuICAgICAgICBpZiAocmVzb3VyY2VTdGFydFRpbWUgPj0gbWluVGltZSAmJiAoIWJlc3RHYXAgfHwgY3VycmVudEdhcCA8IGJlc3RHYXApKSB7XG4gICAgICAgICAgICBiZXN0R2FwID0gY3VycmVudEdhcDtcbiAgICAgICAgICAgIG1haW5SZXF1ZXN0ID0gcmVzb3VyY2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG1haW5SZXF1ZXN0O1xufVxuLyoqXG4gKiBGaWx0ZXIgYWxsIHJlc291cmNlcyB0aGF0IGhhcyBzdGFydGVkIGFuZCBmaW5pc2hlZCBhY2NvcmRpbmcgdG8gc3BhbiBzdGFydCB0aW1lIGFuZCBlbmQgdGltZS5cbiAqICAgICBJdCB3aWxsIHJldHVybiB0aGUgY2xvc2VzdCByZXNvdXJjZSB0byBhIHN0YXJ0IHRpbWVcbiAqIEBwYXJhbSBzcGFuVXJsXG4gKiBAcGFyYW0gc3RhcnRUaW1lSFJcbiAqIEBwYXJhbSBlbmRUaW1lSFJcbiAqIEBwYXJhbSByZXNvdXJjZXNcbiAqIEBwYXJhbSBpZ25vcmVkUmVzb3VyY2VzXG4gKi9cbmZ1bmN0aW9uIGZpbHRlclJlc291cmNlc0ZvclNwYW4oc3BhblVybCwgc3RhcnRUaW1lSFIsIGVuZFRpbWVIUiwgcmVzb3VyY2VzLCBpZ25vcmVkUmVzb3VyY2VzLCBpbml0aWF0b3JUeXBlKSB7XG4gICAgdmFyIHN0YXJ0VGltZSA9IGhyVGltZVRvTmFub3NlY29uZHMoc3RhcnRUaW1lSFIpO1xuICAgIHZhciBlbmRUaW1lID0gaHJUaW1lVG9OYW5vc2Vjb25kcyhlbmRUaW1lSFIpO1xuICAgIHZhciBmaWx0ZXJlZFJlc291cmNlcyA9IHJlc291cmNlcy5maWx0ZXIoZnVuY3Rpb24gKHJlc291cmNlKSB7XG4gICAgICAgIHZhciByZXNvdXJjZVN0YXJ0VGltZSA9IGhyVGltZVRvTmFub3NlY29uZHModGltZUlucHV0VG9IclRpbWUocmVzb3VyY2VbUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5GRVRDSF9TVEFSVF0pKTtcbiAgICAgICAgdmFyIHJlc291cmNlRW5kVGltZSA9IGhyVGltZVRvTmFub3NlY29uZHModGltZUlucHV0VG9IclRpbWUocmVzb3VyY2VbUGVyZm9ybWFuY2VUaW1pbmdOYW1lcy5SRVNQT05TRV9FTkRdKSk7XG4gICAgICAgIHJldHVybiAocmVzb3VyY2UuaW5pdGlhdG9yVHlwZS50b0xvd2VyQ2FzZSgpID09PVxuICAgICAgICAgICAgKGluaXRpYXRvclR5cGUpICYmXG4gICAgICAgICAgICByZXNvdXJjZS5uYW1lID09PSBzcGFuVXJsICYmXG4gICAgICAgICAgICByZXNvdXJjZVN0YXJ0VGltZSA+PSBzdGFydFRpbWUgJiZcbiAgICAgICAgICAgIHJlc291cmNlRW5kVGltZSA8PSBlbmRUaW1lKTtcbiAgICB9KTtcbiAgICBpZiAoZmlsdGVyZWRSZXNvdXJjZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBmaWx0ZXJlZFJlc291cmNlcyA9IGZpbHRlcmVkUmVzb3VyY2VzLmZpbHRlcihmdW5jdGlvbiAocmVzb3VyY2UpIHtcbiAgICAgICAgICAgIHJldHVybiAhaWdub3JlZFJlc291cmNlcy5oYXMocmVzb3VyY2UpO1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIGZpbHRlcmVkUmVzb3VyY2VzO1xufVxuLyoqXG4gKiBQYXJzZXMgdXJsIHVzaW5nIFVSTCBjb25zdHJ1Y3RvciBvciBmYWxsYmFjayB0byBhbmNob3IgZWxlbWVudC5cbiAqIEBwYXJhbSB1cmxcbiAqL1xuZnVuY3Rpb24gcGFyc2VVcmwodXJsKSB7XG4gICAgaWYgKHR5cGVvZiBVUkwgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBVUkwodXJsLCB0eXBlb2YgZG9jdW1lbnQgIT09ICd1bmRlZmluZWQnXG4gICAgICAgICAgICA/IGRvY3VtZW50LmJhc2VVUklcbiAgICAgICAgICAgIDogdHlwZW9mIGxvY2F0aW9uICE9PSAndW5kZWZpbmVkJyAvLyBTb21lIEpTIHJ1bnRpbWVzIChlLmcuIERlbm8pIGRvbid0IGRlZmluZSB0aGlzXG4gICAgICAgICAgICAgICAgPyBsb2NhdGlvbi5ocmVmXG4gICAgICAgICAgICAgICAgOiB1bmRlZmluZWQpO1xuICAgIH1cbiAgICB2YXIgZWxlbWVudCA9IGdldFVybE5vcm1hbGl6aW5nQW5jaG9yKCk7XG4gICAgZWxlbWVudC5ocmVmID0gdXJsO1xuICAgIHJldHVybiBlbGVtZW50O1xufVxuLyoqXG4gKiBDaGVja3MgaWYgdHJhY2UgaGVhZGVycyBzaG91bGQgYmUgcHJvcGFnYXRlZFxuICogQHBhcmFtIHNwYW5VcmxcbiAqIEBwcml2YXRlXG4gKi9cbmZ1bmN0aW9uIHNob3VsZFByb3BhZ2F0ZVRyYWNlSGVhZGVycyhzcGFuVXJsLCBwcm9wYWdhdGVUcmFjZUhlYWRlckNvcnNVcmxzKSB7XG4gICAgdmFyIHByb3BhZ2F0ZVRyYWNlSGVhZGVyVXJscyA9IHByb3BhZ2F0ZVRyYWNlSGVhZGVyQ29yc1VybHMgfHwgW107XG4gICAgaWYgKHR5cGVvZiBwcm9wYWdhdGVUcmFjZUhlYWRlclVybHMgPT09ICdzdHJpbmcnIHx8XG4gICAgICAgIHByb3BhZ2F0ZVRyYWNlSGVhZGVyVXJscyBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICBwcm9wYWdhdGVUcmFjZUhlYWRlclVybHMgPSBbcHJvcGFnYXRlVHJhY2VIZWFkZXJVcmxzXTtcbiAgICB9XG4gICAgdmFyIHBhcnNlZFNwYW5VcmwgPSBwYXJzZVVybChzcGFuVXJsKTtcbiAgICBpZiAocGFyc2VkU3BhblVybC5vcmlnaW4gPT09IGdldE9yaWdpbigpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHByb3BhZ2F0ZVRyYWNlSGVhZGVyVXJscy5zb21lKGZ1bmN0aW9uIChwcm9wYWdhdGVUcmFjZUhlYWRlclVybCkge1xuICAgICAgICAgICAgcmV0dXJuIHVybE1hdGNoZXMoc3BhblVybCwgcHJvcGFnYXRlVHJhY2VIZWFkZXJVcmwpO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCB7IFBlcmZvcm1hbmNlVGltaW5nTmFtZXMgYXMgUCwgYWRkU3Bhbk5ldHdvcmtFdmVudCBhcyBhLCBhZGRTcGFuTmV0d29ya0V2ZW50cyBhcyBiLCBzb3J0UmVzb3VyY2VzIGFzIGMsIGdldFJlc291cmNlIGFzIGcsIGhhc0tleSBhcyBoLCBwYXJzZVVybCBhcyBwLCBzaG91bGRQcm9wYWdhdGVUcmFjZUhlYWRlcnMgYXMgcyB9OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVMsS0FBS0EsR0FBdUMsS0FBS0MsR0FBb0QsS0FBS0MsR0FBWSxLQUFLQyxHQUFxQixLQUFLQyxTQUF5QjtBQWlCdkwsSUFBSUM7QUFBQSxDQUNILFNBQVVBLEdBQXdCO0FBQy9CLEVBQUFBLEVBQXVCLGNBQWlCLGNBQ3hDQSxFQUF1QixnQkFBbUIsZ0JBQzFDQSxFQUF1QixvQkFBdUIsbUJBQzlDQSxFQUF1QixlQUFrQixlQUN6Q0EsRUFBdUIsK0JBQWtDLDRCQUN6REEsRUFBdUIsaUNBQW9DLDhCQUMzREEsRUFBdUIsa0JBQXFCLGtCQUM1Q0EsRUFBdUIsb0JBQXVCLG1CQUM5Q0EsRUFBdUIsc0JBQXlCLHFCQUNoREEsRUFBdUIsb0JBQXVCLG1CQUM5Q0EsRUFBdUIsY0FBaUIsY0FDeENBLEVBQXVCLGlCQUFvQixnQkFDM0NBLEVBQXVCLG1CQUFzQixrQkFDN0NBLEVBQXVCLG1CQUFzQixtQkFDN0NBLEVBQXVCLGVBQWtCLGVBQ3pDQSxFQUF1QixpQkFBb0IsaUJBQzNDQSxFQUF1QixnQkFBbUIsZ0JBQzFDQSxFQUF1QixlQUFrQixlQUN6Q0EsRUFBdUIsaUJBQW9CLGlCQUMzQ0EsRUFBdUIsMEJBQTZCLHlCQUNwREEsRUFBdUIsbUJBQXNCLGtCQUM3Q0EsRUFBdUIscUJBQXdCO0FBQ25ELEdBQUdBLE1BQTJCQSxJQUF5QixDQUFDLEVBQUU7QUFrQjFELElBQUlDO0FBQ0osU0FBU0MsSUFBMEI7QUFDL0IsU0FBS0QsTUFDREEsSUFBdUIsU0FBUyxjQUFjLEdBQUcsSUFFOUNBO0FBQ1g7QUFPQSxTQUFTRSxFQUFPQyxHQUFLQyxHQUFLO0FBQ3RCLFNBQU9BLEtBQU9EO0FBQ2xCO0FBUUEsU0FBU0UsRUFBb0JDLEdBQU1DLEdBQWlCQyxHQUFTQyxHQUFhO0FBQ3RFLE1BQUlDLElBQVcsUUFDWEMsSUFBVTtBQUNkLEVBQUlULEVBQU9NLEdBQVNELENBQWUsS0FDL0IsT0FBT0MsRUFBUUQsQ0FBZSxLQUFNLGFBQ3BDRyxJQUFXRixFQUFRRCxDQUFlO0FBRXRDLE1BQUlLLElBQVViLEVBQXVCO0FBTXJDLE1BSElHLEVBQU9NLEdBQVNJLENBQU8sS0FBSyxPQUFPSixFQUFRSSxDQUFPLEtBQU0sYUFDeERELElBQVVILEVBQVFJLENBQU8sSUFFekJGLE1BQWEsVUFBYUMsTUFBWSxVQUFhRCxLQUFZQztBQUMvRCxXQUFBTCxFQUFLLFNBQVNDLEdBQWlCRyxDQUFRLEdBQ2hDSjtBQUdmO0FBT0EsU0FBU08sRUFBcUJQLEdBQU1RLEdBQVVDLEdBQXFCO0FBQy9ELEVBQUlBLE1BQXdCLFdBQVVBLElBQXNCLEtBQ3ZEQSxNQUNEVixFQUFvQkMsR0FBTVAsRUFBdUIsYUFBYWUsQ0FBUSxHQUN0RVQsRUFBb0JDLEdBQU1QLEVBQXVCLHFCQUFxQmUsQ0FBUSxHQUM5RVQsRUFBb0JDLEdBQU1QLEVBQXVCLG1CQUFtQmUsQ0FBUSxHQUM1RVQsRUFBb0JDLEdBQU1QLEVBQXVCLGVBQWVlLENBQVEsR0FDcEVaLEVBQU9ZLEdBQVUsTUFBTSxLQUN2QkEsRUFBUyxLQUFRLFdBQVcsUUFBUSxLQUNwQ1QsRUFBb0JDLEdBQU1QLEVBQXVCLHlCQUF5QmUsQ0FBUSxHQUV0RlQsRUFBb0JDLEdBQU1QLEVBQXVCLGFBQWFlLENBQVEsR0FDdEVULEVBQW9CQyxHQUFNUCxFQUF1QixlQUFlZSxDQUFRLEdBQ3hFVCxFQUFvQkMsR0FBTVAsRUFBdUIsZ0JBQWdCZSxDQUFRLEdBQ3pFVCxFQUFvQkMsR0FBTVAsRUFBdUIsY0FBY2UsQ0FBUTtBQUUzRSxNQUFJRSxJQUFnQkYsRUFBU2YsRUFBdUIsaUJBQWlCO0FBQ3JFLEVBQUlpQixNQUFrQixVQUNsQlYsRUFBSyxhQUFhWixHQUF1Q3NCLENBQWE7QUFFMUUsTUFBSUMsSUFBZ0JILEVBQVNmLEVBQXVCLGlCQUFpQjtBQUVyRSxFQUFJa0IsTUFBa0IsVUFBYUQsTUFBa0JDLEtBQ2pEWCxFQUFLLGFBQWFYLEdBQW9Ec0IsQ0FBYTtBQUUzRjtBQUtBLFNBQVNDLEVBQWNDLEdBQW1CO0FBQ3RDLFNBQU9BLEVBQWtCLE1BQU0sRUFBRSxLQUFLLFNBQVVDLEdBQUdDLEdBQUc7QUFDbEQsUUFBSUMsSUFBU0YsRUFBRXJCLEVBQXVCLFdBQVcsR0FDN0N3QixJQUFTRixFQUFFdEIsRUFBdUIsV0FBVztBQUNqRCxXQUFJdUIsSUFBU0MsSUFDRixJQUVGRCxJQUFTQyxJQUNQLEtBRUo7QUFBQSxFQUNYLENBQUM7QUFDTDtBQUVBLFNBQVNDLElBQVk7QUFDakIsU0FBTyxPQUFPLFdBQWEsTUFBYyxTQUFTLFNBQVM7QUFDL0Q7QUFXQSxTQUFTQyxFQUFZQyxHQUFTQyxHQUFhQyxHQUFXQyxHQUFXQyxHQUFrQkMsR0FBZTtBQUM5RixFQUFJRCxNQUFxQixXQUFVQSxJQUFtQixvQkFBSSxRQUFRO0FBRWxFLE1BQUlFLElBQWdCQyxFQUFTUCxDQUFPO0FBQ3BDLEVBQUFBLElBQVVNLEVBQWMsU0FBUztBQUNqQyxNQUFJYixJQUFvQmUsRUFBdUJSLEdBQVNDLEdBQWFDLEdBQVdDLEdBQVdDLEdBQWtCQyxDQUFhO0FBQzFILE1BQUlaLEVBQWtCLFdBQVc7QUFDN0IsV0FBTztBQUFBLE1BQ0gsYUFBYTtBQUFBLElBQ2pCO0FBRUosTUFBSUEsRUFBa0IsV0FBVztBQUM3QixXQUFPO0FBQUEsTUFDSCxhQUFhQSxFQUFrQixDQUFDO0FBQUEsSUFDcEM7QUFFSixNQUFJZ0IsSUFBU2pCLEVBQWNDLENBQWlCO0FBQzVDLE1BQUlhLEVBQWMsV0FBV1IsRUFBVSxLQUFLVyxFQUFPLFNBQVMsR0FBRztBQUMzRCxRQUFJQyxJQUF1QkQsRUFBTyxDQUFDLEdBQy9CRSxJQUFjQyxFQUFnQkgsR0FBUUMsRUFBcUJyQyxFQUF1QixZQUFZLEdBQUc2QixDQUFTLEdBQzFHVyxJQUFjSCxFQUFxQnJDLEVBQXVCLFlBQVksR0FDdEV5QyxJQUFhSCxFQUFZdEMsRUFBdUIsV0FBVztBQUUvRCxXQUFJeUMsSUFBYUQsTUFDYkYsSUFBY0QsR0FDZEEsSUFBdUIsU0FFcEI7QUFBQSxNQUNILHNCQUFzQkE7QUFBQSxNQUN0QixhQUFhQztBQUFBLElBQ2pCO0FBQUEsRUFDSjtBQUVJLFdBQU87QUFBQSxNQUNILGFBQWFsQixFQUFrQixDQUFDO0FBQUEsSUFDcEM7QUFFUjtBQU9BLFNBQVNtQixFQUFnQlQsR0FBV1ksR0FBNkJDLEdBQWU7QUFNNUUsV0FMSUMsSUFBYzlDLEVBQW9CNkMsQ0FBYSxHQUMvQ0UsSUFBVS9DLEVBQW9CQyxFQUFrQjJDLENBQTJCLENBQUMsR0FDNUVKLElBQWNSLEVBQVUsQ0FBQyxHQUN6QmdCLEdBQ0FDLElBQVNqQixFQUFVLFFBQ2RrQixJQUFJLEdBQUdBLElBQUlELEdBQVFDLEtBQUs7QUFDN0IsUUFBSWpDLElBQVdlLEVBQVVrQixDQUFDLEdBQ3RCQyxJQUFvQm5ELEVBQW9CQyxFQUFrQmdCLEVBQVNmLEVBQXVCLFdBQVcsQ0FBQyxDQUFDLEdBQ3ZHa0QsSUFBa0JwRCxFQUFvQkMsRUFBa0JnQixFQUFTZixFQUF1QixZQUFZLENBQUMsQ0FBQyxHQUN0R21ELElBQWFQLElBQWNNO0FBQy9CLElBQUlELEtBQXFCSixNQUFZLENBQUNDLEtBQVdLLElBQWFMLE9BQzFEQSxJQUFVSyxHQUNWYixJQUFjdkI7QUFBQSxFQUV0QjtBQUNBLFNBQU91QjtBQUNYO0FBVUEsU0FBU0gsRUFBdUJSLEdBQVNDLEdBQWFDLEdBQVdDLEdBQVdDLEdBQWtCQyxHQUFlO0FBQ3pHLE1BQUlvQixJQUFZdEQsRUFBb0I4QixDQUFXLEdBQzNDeUIsSUFBVXZELEVBQW9CK0IsQ0FBUyxHQUN2Q1QsSUFBb0JVLEVBQVUsT0FBTyxTQUFVZixHQUFVO0FBQ3pELFFBQUlrQyxJQUFvQm5ELEVBQW9CQyxFQUFrQmdCLEVBQVNmLEVBQXVCLFdBQVcsQ0FBQyxDQUFDLEdBQ3ZHa0QsSUFBa0JwRCxFQUFvQkMsRUFBa0JnQixFQUFTZixFQUF1QixZQUFZLENBQUMsQ0FBQztBQUMxRyxXQUFRZSxFQUFTLGNBQWMsWUFBWSxNQUN0Q2lCLEtBQ0RqQixFQUFTLFNBQVNZLEtBQ2xCc0IsS0FBcUJHLEtBQ3JCRixLQUFtQkc7QUFBQSxFQUMzQixDQUFDO0FBQ0QsU0FBSWpDLEVBQWtCLFNBQVMsTUFDM0JBLElBQW9CQSxFQUFrQixPQUFPLFNBQVVMLEdBQVU7QUFDN0QsV0FBTyxDQUFDZ0IsRUFBaUIsSUFBSWhCLENBQVE7QUFBQSxFQUN6QyxDQUFDLElBRUVLO0FBQ1g7QUFLQSxTQUFTYyxFQUFTb0IsR0FBSztBQUNuQixNQUFJLE9BQU8sT0FBUTtBQUNmLFdBQU8sSUFBSSxJQUFJQSxHQUFLLE9BQU8sV0FBYSxNQUNsQyxTQUFTLFVBQ1QsT0FBTyxXQUFhLE1BQ2hCLFNBQVMsT0FDVCxNQUFTO0FBRXZCLE1BQUlDLElBQVVyRCxFQUF3QjtBQUN0QyxTQUFBcUQsRUFBUSxPQUFPRCxHQUNSQztBQUNYO0FBTUEsU0FBU0MsRUFBNEI3QixHQUFTOEIsR0FBOEI7QUFDeEUsTUFBSUMsSUFBMkJELEtBQWdDLENBQUM7QUFDaEUsR0FBSSxPQUFPQyxLQUE2QixZQUNwQ0EsYUFBb0MsWUFDcENBLElBQTJCLENBQUNBLENBQXdCO0FBRXhELE1BQUl6QixJQUFnQkMsRUFBU1AsQ0FBTztBQUNwQyxTQUFJTSxFQUFjLFdBQVdSLEVBQVUsSUFDNUIsS0FHQWlDLEVBQXlCLEtBQUssU0FBVUMsR0FBeUI7QUFDcEUsV0FBTzlELEVBQVc4QixHQUFTZ0MsQ0FBdUI7QUFBQSxFQUN0RCxDQUFDO0FBRVQ7IiwKICAibmFtZXMiOiBbIlNFTUFUVFJTX0hUVFBfUkVTUE9OU0VfQ09OVEVOVF9MRU5HVEgiLCAiU0VNQVRUUlNfSFRUUF9SRVNQT05TRV9DT05URU5UX0xFTkdUSF9VTkNPTVBSRVNTRUQiLCAidXJsTWF0Y2hlcyIsICJoclRpbWVUb05hbm9zZWNvbmRzIiwgInRpbWVJbnB1dFRvSHJUaW1lIiwgIlBlcmZvcm1hbmNlVGltaW5nTmFtZXMiLCAidXJsTm9ybWFsaXppbmdBbmNob3IiLCAiZ2V0VXJsTm9ybWFsaXppbmdBbmNob3IiLCAiaGFzS2V5IiwgIm9iaiIsICJrZXkiLCAiYWRkU3Bhbk5ldHdvcmtFdmVudCIsICJzcGFuIiwgInBlcmZvcm1hbmNlTmFtZSIsICJlbnRyaWVzIiwgInJlZlBlcmZOYW1lIiwgInBlcmZUaW1lIiwgInJlZlRpbWUiLCAicmVmTmFtZSIsICJhZGRTcGFuTmV0d29ya0V2ZW50cyIsICJyZXNvdXJjZSIsICJpZ25vcmVOZXR3b3JrRXZlbnRzIiwgImVuY29kZWRMZW5ndGgiLCAiZGVjb2RlZExlbmd0aCIsICJzb3J0UmVzb3VyY2VzIiwgImZpbHRlcmVkUmVzb3VyY2VzIiwgImEiLCAiYiIsICJ2YWx1ZUEiLCAidmFsdWVCIiwgImdldE9yaWdpbiIsICJnZXRSZXNvdXJjZSIsICJzcGFuVXJsIiwgInN0YXJ0VGltZUhSIiwgImVuZFRpbWVIUiIsICJyZXNvdXJjZXMiLCAiaWdub3JlZFJlc291cmNlcyIsICJpbml0aWF0b3JUeXBlIiwgInBhcnNlZFNwYW5VcmwiLCAicGFyc2VVcmwiLCAiZmlsdGVyUmVzb3VyY2VzRm9yU3BhbiIsICJzb3J0ZWQiLCAiY29yc1ByZUZsaWdodFJlcXVlc3QiLCAibWFpblJlcXVlc3QiLCAiZmluZE1haW5SZXF1ZXN0IiwgInJlc3BvbnNlRW5kIiwgImZldGNoU3RhcnQiLCAiY29yc1ByZUZsaWdodFJlcXVlc3RFbmRUaW1lIiwgInNwYW5FbmRUaW1lSFIiLCAic3BhbkVuZFRpbWUiLCAibWluVGltZSIsICJiZXN0R2FwIiwgImxlbmd0aCIsICJpIiwgInJlc291cmNlU3RhcnRUaW1lIiwgInJlc291cmNlRW5kVGltZSIsICJjdXJyZW50R2FwIiwgInN0YXJ0VGltZSIsICJlbmRUaW1lIiwgInVybCIsICJlbGVtZW50IiwgInNob3VsZFByb3BhZ2F0ZVRyYWNlSGVhZGVycyIsICJwcm9wYWdhdGVUcmFjZUhlYWRlckNvcnNVcmxzIiwgInByb3BhZ2F0ZVRyYWNlSGVhZGVyVXJscyIsICJwcm9wYWdhdGVUcmFjZUhlYWRlclVybCJdCn0K
@@ -0,0 +1,12 @@
1
+ // @__NO_SIDE_EFFECTS__
2
+ function o(t) {
3
+ for (var n = {}, a = t.length, r = 0; r < a; r++) {
4
+ var e = t[r];
5
+ e && (n[String(e).toUpperCase().replace(/[-.]/g, "_")] = e);
6
+ }
7
+ return n;
8
+ }
9
+ export {
10
+ o as c
11
+ };
12
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidXRpbHMtIX57MDA3fX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbIi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG4vKipcbiAqIENyZWF0ZXMgYSBjb25zdCBtYXAgZnJvbSB0aGUgZ2l2ZW4gdmFsdWVzXG4gKiBAcGFyYW0gdmFsdWVzIC0gQW4gYXJyYXkgb2YgdmFsdWVzIHRvIGJlIHVzZWQgYXMga2V5cyBhbmQgdmFsdWVzIGluIHRoZSBtYXAuXG4gKiBAcmV0dXJucyBBIHBvcHVsYXRlZCB2ZXJzaW9uIG9mIHRoZSBtYXAgd2l0aCB0aGUgdmFsdWVzIGFuZCBrZXlzIGRlcml2ZWQgZnJvbSB0aGUgdmFsdWVzLlxuICovXG4vKiNfX05PX1NJREVfRUZGRUNUU19fKi9cbmZ1bmN0aW9uIGNyZWF0ZUNvbnN0TWFwKHZhbHVlcykge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBwcmVmZXItY29uc3QsIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgICB2YXIgcmVzID0ge307XG4gICAgdmFyIGxlbiA9IHZhbHVlcy5sZW5ndGg7XG4gICAgZm9yICh2YXIgbHAgPSAwOyBscCA8IGxlbjsgbHArKykge1xuICAgICAgICB2YXIgdmFsID0gdmFsdWVzW2xwXTtcbiAgICAgICAgaWYgKHZhbCkge1xuICAgICAgICAgICAgcmVzW1N0cmluZyh2YWwpLnRvVXBwZXJDYXNlKCkucmVwbGFjZSgvWy0uXS9nLCAnXycpXSA9IHZhbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzO1xufVxuXG5leHBvcnQgeyBjcmVhdGVDb25zdE1hcCBhcyBjIH07Il0sCiAgIm1hcHBpbmdzIjogIjtBQXFCQSxTQUFTQSxFQUFlQyxHQUFRO0FBSTVCLFdBRklDLElBQU0sQ0FBQyxHQUNQQyxJQUFNRixFQUFPLFFBQ1JHLElBQUssR0FBR0EsSUFBS0QsR0FBS0MsS0FBTTtBQUM3QixRQUFJQyxJQUFNSixFQUFPRyxDQUFFO0FBQ25CLElBQUlDLE1BQ0FILEVBQUksT0FBT0csQ0FBRyxFQUFFLFlBQVksRUFBRSxRQUFRLFNBQVMsR0FBRyxDQUFDLElBQUlBO0FBQUEsRUFFL0Q7QUFDQSxTQUFPSDtBQUNYOyIsCiAgIm5hbWVzIjogWyJjcmVhdGVDb25zdE1hcCIsICJ2YWx1ZXMiLCAicmVzIiwgImxlbiIsICJscCIsICJ2YWwiXQp9Cg==
@@ -0,0 +1,270 @@
1
+ import { d as P } from "./diag-api-CMlZXyyv.js";
2
+ import { m as O } from "./metrics-api-C9pRFfr-.js";
3
+ import { t as x } from "./index-j7i6AeZa.js";
4
+ var w = (
5
+ /** @class */
6
+ function() {
7
+ function r() {
8
+ }
9
+ return r.prototype.emit = function(t) {
10
+ }, r;
11
+ }()
12
+ ), A = new w(), I = (
13
+ /** @class */
14
+ function() {
15
+ function r() {
16
+ }
17
+ return r.prototype.getLogger = function(t, e, n) {
18
+ return new w();
19
+ }, r;
20
+ }()
21
+ ), b = new I(), E = (
22
+ /** @class */
23
+ function() {
24
+ function r(t, e, n, i) {
25
+ this._provider = t, this.name = e, this.version = n, this.options = i;
26
+ }
27
+ return r.prototype.emit = function(t) {
28
+ this._getLogger().emit(t);
29
+ }, r.prototype._getLogger = function() {
30
+ if (this._delegate)
31
+ return this._delegate;
32
+ var t = this._provider.getDelegateLogger(this.name, this.version, this.options);
33
+ return t ? (this._delegate = t, this._delegate) : A;
34
+ }, r;
35
+ }()
36
+ ), d = (
37
+ /** @class */
38
+ function() {
39
+ function r() {
40
+ }
41
+ return r.prototype.getLogger = function(t, e, n) {
42
+ var i;
43
+ return (i = this.getDelegateLogger(t, e, n)) !== null && i !== void 0 ? i : new E(this, t, e, n);
44
+ }, r.prototype.getDelegate = function() {
45
+ var t;
46
+ return (t = this._delegate) !== null && t !== void 0 ? t : b;
47
+ }, r.prototype.setDelegate = function(t) {
48
+ this._delegate = t;
49
+ }, r.prototype.getDelegateLogger = function(t, e, n) {
50
+ var i;
51
+ return (i = this._delegate) === null || i === void 0 ? void 0 : i.getLogger(t, e, n);
52
+ }, r;
53
+ }()
54
+ ), j = typeof globalThis == "object" ? globalThis : typeof self == "object" ? self : typeof window == "object" ? window : typeof global == "object" ? global : {}, l = Symbol.for("io.opentelemetry.js.api.logs"), g = j;
55
+ function T(r, t, e) {
56
+ return function(n) {
57
+ return n === r ? t : e;
58
+ };
59
+ }
60
+ var v = 1, S = (
61
+ /** @class */
62
+ function() {
63
+ function r() {
64
+ this._proxyLoggerProvider = new d();
65
+ }
66
+ return r.getInstance = function() {
67
+ return this._instance || (this._instance = new r()), this._instance;
68
+ }, r.prototype.setGlobalLoggerProvider = function(t) {
69
+ return g[l] ? this.getLoggerProvider() : (g[l] = T(v, t, b), this._proxyLoggerProvider.setDelegate(t), t);
70
+ }, r.prototype.getLoggerProvider = function() {
71
+ var t, e;
72
+ return (e = (t = g[l]) === null || t === void 0 ? void 0 : t.call(g, v)) !== null && e !== void 0 ? e : this._proxyLoggerProvider;
73
+ }, r.prototype.getLogger = function(t, e, n) {
74
+ return this.getLoggerProvider().getLogger(t, e, n);
75
+ }, r.prototype.disable = function() {
76
+ delete g[l], this._proxyLoggerProvider = new d();
77
+ }, r;
78
+ }()
79
+ ), k = S.getInstance(), h, m;
80
+ function D() {
81
+ if (m) return h;
82
+ m = 1;
83
+ function r(o) {
84
+ return typeof o == "function";
85
+ }
86
+ var t = console.error.bind(console);
87
+ function e(o, a, s) {
88
+ var c = !!o[a] && o.propertyIsEnumerable(a);
89
+ Object.defineProperty(o, a, {
90
+ configurable: !0,
91
+ enumerable: c,
92
+ writable: !0,
93
+ value: s
94
+ });
95
+ }
96
+ function n(o) {
97
+ o && o.logger && (r(o.logger) ? t = o.logger : t("new logger isn't a function, not replacing"));
98
+ }
99
+ function i(o, a, s) {
100
+ if (!o || !o[a]) {
101
+ t("no original function " + a + " to wrap");
102
+ return;
103
+ }
104
+ if (!s) {
105
+ t("no wrapper function"), t(new Error().stack);
106
+ return;
107
+ }
108
+ if (!r(o[a]) || !r(s)) {
109
+ t("original object and wrapper must be functions");
110
+ return;
111
+ }
112
+ var c = o[a], f = s(c, a);
113
+ return e(f, "__original", c), e(f, "__unwrap", function() {
114
+ o[a] === f && e(o, a, c);
115
+ }), e(f, "__wrapped", !0), e(o, a, f), f;
116
+ }
117
+ function u(o, a, s) {
118
+ if (o)
119
+ Array.isArray(o) || (o = [o]);
120
+ else {
121
+ t("must provide one or more modules to patch"), t(new Error().stack);
122
+ return;
123
+ }
124
+ if (!(a && Array.isArray(a))) {
125
+ t("must provide one or more functions to wrap on modules");
126
+ return;
127
+ }
128
+ o.forEach(function(c) {
129
+ a.forEach(function(f) {
130
+ i(c, f, s);
131
+ });
132
+ });
133
+ }
134
+ function y(o, a) {
135
+ if (!o || !o[a]) {
136
+ t("no function to unwrap."), t(new Error().stack);
137
+ return;
138
+ }
139
+ if (!o[a].__unwrap)
140
+ t("no original to unwrap to -- has " + a + " already been unwrapped?");
141
+ else
142
+ return o[a].__unwrap();
143
+ }
144
+ function L(o, a) {
145
+ if (o)
146
+ Array.isArray(o) || (o = [o]);
147
+ else {
148
+ t("must provide one or more modules to patch"), t(new Error().stack);
149
+ return;
150
+ }
151
+ if (!(a && Array.isArray(a))) {
152
+ t("must provide one or more functions to unwrap on modules");
153
+ return;
154
+ }
155
+ o.forEach(function(s) {
156
+ a.forEach(function(c) {
157
+ y(s, c);
158
+ });
159
+ });
160
+ }
161
+ return n.wrap = i, n.massWrap = u, n.unwrap = y, n.massUnwrap = L, h = n, h;
162
+ }
163
+ var p = D(), _ = function() {
164
+ return _ = Object.assign || function(r) {
165
+ for (var t, e = 1, n = arguments.length; e < n; e++) {
166
+ t = arguments[e];
167
+ for (var i in t) Object.prototype.hasOwnProperty.call(t, i) && (r[i] = t[i]);
168
+ }
169
+ return r;
170
+ }, _.apply(this, arguments);
171
+ }, G = (
172
+ /** @class */
173
+ function() {
174
+ function r(t, e, n) {
175
+ this.instrumentationName = t, this.instrumentationVersion = e, this._config = {}, this._wrap = p.wrap, this._unwrap = p.unwrap, this._massWrap = p.massWrap, this._massUnwrap = p.massUnwrap, this.setConfig(n), this._diag = P.createComponentLogger({
176
+ namespace: t
177
+ }), this._tracer = x.getTracer(t, e), this._meter = O.getMeter(t, e), this._logger = k.getLogger(t, e), this._updateMetricInstruments();
178
+ }
179
+ return Object.defineProperty(r.prototype, "meter", {
180
+ /* Returns meter */
181
+ get: function() {
182
+ return this._meter;
183
+ },
184
+ enumerable: !1,
185
+ configurable: !0
186
+ }), r.prototype.setMeterProvider = function(t) {
187
+ this._meter = t.getMeter(this.instrumentationName, this.instrumentationVersion), this._updateMetricInstruments();
188
+ }, Object.defineProperty(r.prototype, "logger", {
189
+ /* Returns logger */
190
+ get: function() {
191
+ return this._logger;
192
+ },
193
+ enumerable: !1,
194
+ configurable: !0
195
+ }), r.prototype.setLoggerProvider = function(t) {
196
+ this._logger = t.getLogger(this.instrumentationName, this.instrumentationVersion);
197
+ }, r.prototype.getModuleDefinitions = function() {
198
+ var t, e = (t = this.init()) !== null && t !== void 0 ? t : [];
199
+ return Array.isArray(e) ? e : [e];
200
+ }, r.prototype._updateMetricInstruments = function() {
201
+ }, r.prototype.getConfig = function() {
202
+ return this._config;
203
+ }, r.prototype.setConfig = function(t) {
204
+ this._config = _({ enabled: !0 }, t);
205
+ }, r.prototype.setTracerProvider = function(t) {
206
+ this._tracer = t.getTracer(this.instrumentationName, this.instrumentationVersion);
207
+ }, Object.defineProperty(r.prototype, "tracer", {
208
+ /* Returns tracer */
209
+ get: function() {
210
+ return this._tracer;
211
+ },
212
+ enumerable: !1,
213
+ configurable: !0
214
+ }), r.prototype._runSpanCustomizationHook = function(t, e, n, i) {
215
+ if (t)
216
+ try {
217
+ t(n, i);
218
+ } catch (u) {
219
+ this._diag.error("Error running span customization hook due to exception in handler", { triggerName: e }, u);
220
+ }
221
+ }, r;
222
+ }()
223
+ ), M = /* @__PURE__ */ function() {
224
+ var r = function(t, e) {
225
+ return r = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(n, i) {
226
+ n.__proto__ = i;
227
+ } || function(n, i) {
228
+ for (var u in i) Object.prototype.hasOwnProperty.call(i, u) && (n[u] = i[u]);
229
+ }, r(t, e);
230
+ };
231
+ return function(t, e) {
232
+ if (typeof e != "function" && e !== null)
233
+ throw new TypeError("Class extends value " + String(e) + " is not a constructor or null");
234
+ r(t, e);
235
+ function n() {
236
+ this.constructor = t;
237
+ }
238
+ t.prototype = e === null ? Object.create(e) : (n.prototype = e.prototype, new n());
239
+ };
240
+ }(), W = (
241
+ /** @class */
242
+ function(r) {
243
+ M(t, r);
244
+ function t(e, n, i) {
245
+ var u = r.call(this, e, n, i) || this;
246
+ return u._config.enabled && u.enable(), u;
247
+ }
248
+ return t;
249
+ }(G)
250
+ );
251
+ function B(r, t, e) {
252
+ var n, i;
253
+ try {
254
+ i = r();
255
+ } catch (u) {
256
+ n = u;
257
+ } finally {
258
+ return t(n, i), i;
259
+ }
260
+ }
261
+ function U(r) {
262
+ return typeof r == "function" && typeof r.__original == "function" && typeof r.__unwrap == "function" && r.__wrapped === !0;
263
+ }
264
+ export {
265
+ W as I,
266
+ U as i,
267
+ k as l,
268
+ B as s
269
+ };
270
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidXRpbHMtIX57MDBnfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGQgYXMgZGlhZyB9IGZyb20gJy4vZGlhZy1hcGktIX57MDA4fX4uanMnO1xuaW1wb3J0IHsgbSBhcyBtZXRyaWNzIH0gZnJvbSAnLi9tZXRyaWNzLWFwaS0hfnswMGZ9fi5qcyc7XG5pbXBvcnQgeyB0IGFzIHRyYWNlIH0gZnJvbSAnLi9pbmRleC0hfnswMDl9fi5qcyc7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgTm9vcExvZ2dlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBOb29wTG9nZ2VyKCkge1xuICAgIH1cbiAgICBOb29wTG9nZ2VyLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24gKF9sb2dSZWNvcmQpIHsgfTtcbiAgICByZXR1cm4gTm9vcExvZ2dlcjtcbn0oKSk7XG52YXIgTk9PUF9MT0dHRVIgPSBuZXcgTm9vcExvZ2dlcigpO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xudmFyIE5vb3BMb2dnZXJQcm92aWRlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBOb29wTG9nZ2VyUHJvdmlkZXIoKSB7XG4gICAgfVxuICAgIE5vb3BMb2dnZXJQcm92aWRlci5wcm90b3R5cGUuZ2V0TG9nZ2VyID0gZnVuY3Rpb24gKF9uYW1lLCBfdmVyc2lvbiwgX29wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBOb29wTG9nZ2VyKCk7XG4gICAgfTtcbiAgICByZXR1cm4gTm9vcExvZ2dlclByb3ZpZGVyO1xufSgpKTtcbnZhciBOT09QX0xPR0dFUl9QUk9WSURFUiA9IG5ldyBOb29wTG9nZ2VyUHJvdmlkZXIoKTtcblxuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbnZhciBQcm94eUxvZ2dlciA9IC8qKiBAY2xhc3MgKi8gKGZ1bmN0aW9uICgpIHtcbiAgICBmdW5jdGlvbiBQcm94eUxvZ2dlcihfcHJvdmlkZXIsIG5hbWUsIHZlcnNpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fcHJvdmlkZXIgPSBfcHJvdmlkZXI7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIHRoaXMudmVyc2lvbiA9IHZlcnNpb247XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdGlvbnM7XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEVtaXQgYSBsb2cgcmVjb3JkLiBUaGlzIG1ldGhvZCBzaG91bGQgb25seSBiZSB1c2VkIGJ5IGxvZyBhcHBlbmRlcnMuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbG9nUmVjb3JkXG4gICAgICovXG4gICAgUHJveHlMb2dnZXIucHJvdG90eXBlLmVtaXQgPSBmdW5jdGlvbiAobG9nUmVjb3JkKSB7XG4gICAgICAgIHRoaXMuX2dldExvZ2dlcigpLmVtaXQobG9nUmVjb3JkKTtcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFRyeSB0byBnZXQgYSBsb2dnZXIgZnJvbSB0aGUgcHJveHkgbG9nZ2VyIHByb3ZpZGVyLlxuICAgICAqIElmIHRoZSBwcm94eSBsb2dnZXIgcHJvdmlkZXIgaGFzIG5vIGRlbGVnYXRlLCByZXR1cm4gYSBub29wIGxvZ2dlci5cbiAgICAgKi9cbiAgICBQcm94eUxvZ2dlci5wcm90b3R5cGUuX2dldExvZ2dlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGU7XG4gICAgICAgIH1cbiAgICAgICAgdmFyIGxvZ2dlciA9IHRoaXMuX3Byb3ZpZGVyLmdldERlbGVnYXRlTG9nZ2VyKHRoaXMubmFtZSwgdGhpcy52ZXJzaW9uLCB0aGlzLm9wdGlvbnMpO1xuICAgICAgICBpZiAoIWxvZ2dlcikge1xuICAgICAgICAgICAgcmV0dXJuIE5PT1BfTE9HR0VSO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2RlbGVnYXRlID0gbG9nZ2VyO1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVsZWdhdGU7XG4gICAgfTtcbiAgICByZXR1cm4gUHJveHlMb2dnZXI7XG59KCkpO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xudmFyIFByb3h5TG9nZ2VyUHJvdmlkZXIgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gUHJveHlMb2dnZXJQcm92aWRlcigpIHtcbiAgICB9XG4gICAgUHJveHlMb2dnZXJQcm92aWRlci5wcm90b3R5cGUuZ2V0TG9nZ2VyID0gZnVuY3Rpb24gKG5hbWUsIHZlcnNpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKChfYSA9IHRoaXMuZ2V0RGVsZWdhdGVMb2dnZXIobmFtZSwgdmVyc2lvbiwgb3B0aW9ucykpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IG5ldyBQcm94eUxvZ2dlcih0aGlzLCBuYW1lLCB2ZXJzaW9uLCBvcHRpb25zKSk7XG4gICAgfTtcbiAgICBQcm94eUxvZ2dlclByb3ZpZGVyLnByb3RvdHlwZS5nZXREZWxlZ2F0ZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICByZXR1cm4gKF9hID0gdGhpcy5fZGVsZWdhdGUpICE9PSBudWxsICYmIF9hICE9PSB2b2lkIDAgPyBfYSA6IE5PT1BfTE9HR0VSX1BST1ZJREVSO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBkZWxlZ2F0ZSBsb2dnZXIgcHJvdmlkZXJcbiAgICAgKi9cbiAgICBQcm94eUxvZ2dlclByb3ZpZGVyLnByb3RvdHlwZS5zZXREZWxlZ2F0ZSA9IGZ1bmN0aW9uIChkZWxlZ2F0ZSkge1xuICAgICAgICB0aGlzLl9kZWxlZ2F0ZSA9IGRlbGVnYXRlO1xuICAgIH07XG4gICAgUHJveHlMb2dnZXJQcm92aWRlci5wcm90b3R5cGUuZ2V0RGVsZWdhdGVMb2dnZXIgPSBmdW5jdGlvbiAobmFtZSwgdmVyc2lvbiwgb3B0aW9ucykge1xuICAgICAgICB2YXIgX2E7XG4gICAgICAgIHJldHVybiAoX2EgPSB0aGlzLl9kZWxlZ2F0ZSkgPT09IG51bGwgfHwgX2EgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9hLmdldExvZ2dlcihuYW1lLCB2ZXJzaW9uLCBvcHRpb25zKTtcbiAgICB9O1xuICAgIHJldHVybiBQcm94eUxvZ2dlclByb3ZpZGVyO1xufSgpKTtcblxuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8vIFVwZGF0ZXMgdG8gdGhpcyBmaWxlIHNob3VsZCBhbHNvIGJlIHJlcGxpY2F0ZWQgdG8gQG9wZW50ZWxlbWV0cnkvYXBpIGFuZFxuLy8gQG9wZW50ZWxlbWV0cnkvY29yZSB0b28uXG4vKipcbiAqIC0gZ2xvYmFsVGhpcyAoTmV3IHN0YW5kYXJkKVxuICogLSBzZWxmIChXaWxsIHJldHVybiB0aGUgY3VycmVudCB3aW5kb3cgaW5zdGFuY2UgZm9yIHN1cHBvcnRlZCBicm93c2VycylcbiAqIC0gd2luZG93IChmYWxsYmFjayBmb3Igb2xkZXIgYnJvd3NlciBpbXBsZW1lbnRhdGlvbnMpXG4gKiAtIGdsb2JhbCAoTm9kZUpTIGltcGxlbWVudGF0aW9uKVxuICogLSA8b2JqZWN0PiAoV2hlbiBhbGwgZWxzZSBmYWlscylcbiAqL1xuLyoqIG9ubHkgZ2xvYmFscyB0aGF0IGNvbW1vbiB0byBub2RlIGFuZCBicm93c2VycyBhcmUgYWxsb3dlZCAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vZGUvbm8tdW5zdXBwb3J0ZWQtZmVhdHVyZXMvZXMtYnVpbHRpbnMsIG5vLXVuZGVmXG52YXIgX2dsb2JhbFRoaXMgPSB0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCdcbiAgICA/IGdsb2JhbFRoaXNcbiAgICA6IHR5cGVvZiBzZWxmID09PSAnb2JqZWN0J1xuICAgICAgICA/IHNlbGZcbiAgICAgICAgOiB0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0J1xuICAgICAgICAgICAgPyB3aW5kb3dcbiAgICAgICAgICAgIDogdHlwZW9mIGdsb2JhbCA9PT0gJ29iamVjdCdcbiAgICAgICAgICAgICAgICA/IGdsb2JhbFxuICAgICAgICAgICAgICAgIDoge307XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgR0xPQkFMX0xPR1NfQVBJX0tFWSA9IFN5bWJvbC5mb3IoJ2lvLm9wZW50ZWxlbWV0cnkuanMuYXBpLmxvZ3MnKTtcbnZhciBfZ2xvYmFsID0gX2dsb2JhbFRoaXM7XG4vKipcbiAqIE1ha2UgYSBmdW5jdGlvbiB3aGljaCBhY2NlcHRzIGEgdmVyc2lvbiBpbnRlZ2VyIGFuZCByZXR1cm5zIHRoZSBpbnN0YW5jZSBvZiBhbiBBUEkgaWYgdGhlIHZlcnNpb25cbiAqIGlzIGNvbXBhdGlibGUsIG9yIGEgZmFsbGJhY2sgdmVyc2lvbiAodXN1YWxseSBOT09QKSBpZiBpdCBpcyBub3QuXG4gKlxuICogQHBhcmFtIHJlcXVpcmVkVmVyc2lvbiBCYWNrd2FyZHMgY29tcGF0aWJpbGl0eSB2ZXJzaW9uIHdoaWNoIGlzIHJlcXVpcmVkIHRvIHJldHVybiB0aGUgaW5zdGFuY2VcbiAqIEBwYXJhbSBpbnN0YW5jZSBJbnN0YW5jZSB3aGljaCBzaG91bGQgYmUgcmV0dXJuZWQgaWYgdGhlIHJlcXVpcmVkIHZlcnNpb24gaXMgY29tcGF0aWJsZVxuICogQHBhcmFtIGZhbGxiYWNrIEZhbGxiYWNrIGluc3RhbmNlLCB1c3VhbGx5IE5PT1AsIHdoaWNoIHdpbGwgYmUgcmV0dXJuZWQgaWYgdGhlIHJlcXVpcmVkIHZlcnNpb24gaXMgbm90IGNvbXBhdGlibGVcbiAqL1xuZnVuY3Rpb24gbWFrZUdldHRlcihyZXF1aXJlZFZlcnNpb24sIGluc3RhbmNlLCBmYWxsYmFjaykge1xuICAgIHJldHVybiBmdW5jdGlvbiAodmVyc2lvbikge1xuICAgICAgICByZXR1cm4gdmVyc2lvbiA9PT0gcmVxdWlyZWRWZXJzaW9uID8gaW5zdGFuY2UgOiBmYWxsYmFjaztcbiAgICB9O1xufVxuLyoqXG4gKiBBIG51bWJlciB3aGljaCBzaG91bGQgYmUgaW5jcmVtZW50ZWQgZWFjaCB0aW1lIGEgYmFja3dhcmRzIGluY29tcGF0aWJsZVxuICogY2hhbmdlIGlzIG1hZGUgdG8gdGhlIEFQSS4gVGhpcyBudW1iZXIgaXMgdXNlZCB3aGVuIGFuIEFQSSBwYWNrYWdlXG4gKiBhdHRlbXB0cyB0byBhY2Nlc3MgdGhlIGdsb2JhbCBBUEkgdG8gZW5zdXJlIGl0IGlzIGdldHRpbmcgYSBjb21wYXRpYmxlXG4gKiB2ZXJzaW9uLiBJZiB0aGUgZ2xvYmFsIEFQSSBpcyBub3QgY29tcGF0aWJsZSB3aXRoIHRoZSBBUEkgcGFja2FnZVxuICogYXR0ZW1wdGluZyB0byBnZXQgaXQsIGEgTk9PUCBBUEkgaW1wbGVtZW50YXRpb24gd2lsbCBiZSByZXR1cm5lZC5cbiAqL1xudmFyIEFQSV9CQUNLV0FSRFNfQ09NUEFUSUJJTElUWV9WRVJTSU9OID0gMTtcblxuLypcbiAqIENvcHlyaWdodCBUaGUgT3BlblRlbGVtZXRyeSBBdXRob3JzXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgaHR0cHM6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbnZhciBMb2dzQVBJID0gLyoqIEBjbGFzcyAqLyAoZnVuY3Rpb24gKCkge1xuICAgIGZ1bmN0aW9uIExvZ3NBUEkoKSB7XG4gICAgICAgIHRoaXMuX3Byb3h5TG9nZ2VyUHJvdmlkZXIgPSBuZXcgUHJveHlMb2dnZXJQcm92aWRlcigpO1xuICAgIH1cbiAgICBMb2dzQVBJLmdldEluc3RhbmNlID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIXRoaXMuX2luc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLl9pbnN0YW5jZSA9IG5ldyBMb2dzQVBJKCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlO1xuICAgIH07XG4gICAgTG9nc0FQSS5wcm90b3R5cGUuc2V0R2xvYmFsTG9nZ2VyUHJvdmlkZXIgPSBmdW5jdGlvbiAocHJvdmlkZXIpIHtcbiAgICAgICAgaWYgKF9nbG9iYWxbR0xPQkFMX0xPR1NfQVBJX0tFWV0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldExvZ2dlclByb3ZpZGVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgX2dsb2JhbFtHTE9CQUxfTE9HU19BUElfS0VZXSA9IG1ha2VHZXR0ZXIoQVBJX0JBQ0tXQVJEU19DT01QQVRJQklMSVRZX1ZFUlNJT04sIHByb3ZpZGVyLCBOT09QX0xPR0dFUl9QUk9WSURFUik7XG4gICAgICAgIHRoaXMuX3Byb3h5TG9nZ2VyUHJvdmlkZXIuc2V0RGVsZWdhdGUocHJvdmlkZXIpO1xuICAgICAgICByZXR1cm4gcHJvdmlkZXI7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBnbG9iYWwgbG9nZ2VyIHByb3ZpZGVyLlxuICAgICAqXG4gICAgICogQHJldHVybnMgTG9nZ2VyUHJvdmlkZXJcbiAgICAgKi9cbiAgICBMb2dzQVBJLnByb3RvdHlwZS5nZXRMb2dnZXJQcm92aWRlciA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF9hLCBfYjtcbiAgICAgICAgcmV0dXJuICgoX2IgPSAoX2EgPSBfZ2xvYmFsW0dMT0JBTF9MT0dTX0FQSV9LRVldKSA9PT0gbnVsbCB8fCBfYSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2EuY2FsbChfZ2xvYmFsLCBBUElfQkFDS1dBUkRTX0NPTVBBVElCSUxJVFlfVkVSU0lPTikpICE9PSBudWxsICYmIF9iICE9PSB2b2lkIDAgPyBfYiA6IHRoaXMuX3Byb3h5TG9nZ2VyUHJvdmlkZXIpO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogUmV0dXJucyBhIGxvZ2dlciBmcm9tIHRoZSBnbG9iYWwgbG9nZ2VyIHByb3ZpZGVyLlxuICAgICAqXG4gICAgICogQHJldHVybnMgTG9nZ2VyXG4gICAgICovXG4gICAgTG9nc0FQSS5wcm90b3R5cGUuZ2V0TG9nZ2VyID0gZnVuY3Rpb24gKG5hbWUsIHZlcnNpb24sIG9wdGlvbnMpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0TG9nZ2VyUHJvdmlkZXIoKS5nZXRMb2dnZXIobmFtZSwgdmVyc2lvbiwgb3B0aW9ucyk7XG4gICAgfTtcbiAgICAvKiogUmVtb3ZlIHRoZSBnbG9iYWwgbG9nZ2VyIHByb3ZpZGVyICovXG4gICAgTG9nc0FQSS5wcm90b3R5cGUuZGlzYWJsZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgZGVsZXRlIF9nbG9iYWxbR0xPQkFMX0xPR1NfQVBJX0tFWV07XG4gICAgICAgIHRoaXMuX3Byb3h5TG9nZ2VyUHJvdmlkZXIgPSBuZXcgUHJveHlMb2dnZXJQcm92aWRlcigpO1xuICAgIH07XG4gICAgcmV0dXJuIExvZ3NBUEk7XG59KCkpO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xudmFyIGxvZ3MgPSBMb2dzQVBJLmdldEluc3RhbmNlKCk7XG5cbnZhciBzaGltbWVyXzE7XG52YXIgaGFzUmVxdWlyZWRTaGltbWVyO1xuXG5mdW5jdGlvbiByZXF1aXJlU2hpbW1lciAoKSB7XG5cdGlmIChoYXNSZXF1aXJlZFNoaW1tZXIpIHJldHVybiBzaGltbWVyXzE7XG5cdGhhc1JlcXVpcmVkU2hpbW1lciA9IDE7XG5cblx0ZnVuY3Rpb24gaXNGdW5jdGlvbiAoZnVua3Rpb24pIHtcblx0ICByZXR1cm4gdHlwZW9mIGZ1bmt0aW9uID09PSAnZnVuY3Rpb24nXG5cdH1cblxuXHQvLyBEZWZhdWx0IHRvIGNvbXBsYWluaW5nIGxvdWRseSB3aGVuIHRoaW5ncyBkb24ndCBnbyBhY2NvcmRpbmcgdG8gcGxhbi5cblx0dmFyIGxvZ2dlciA9IGNvbnNvbGUuZXJyb3IuYmluZChjb25zb2xlKTtcblxuXHQvLyBTZXRzIGEgcHJvcGVydHkgb24gYW4gb2JqZWN0LCBwcmVzZXJ2aW5nIGl0cyBlbnVtZXJhYmlsaXR5LlxuXHQvLyBUaGlzIGZ1bmN0aW9uIGFzc3VtZXMgdGhhdCB0aGUgcHJvcGVydHkgaXMgYWxyZWFkeSB3cml0YWJsZS5cblx0ZnVuY3Rpb24gZGVmaW5lUHJvcGVydHkgKG9iaiwgbmFtZSwgdmFsdWUpIHtcblx0ICB2YXIgZW51bWVyYWJsZSA9ICEhb2JqW25hbWVdICYmIG9iai5wcm9wZXJ0eUlzRW51bWVyYWJsZShuYW1lKTtcblx0ICBPYmplY3QuZGVmaW5lUHJvcGVydHkob2JqLCBuYW1lLCB7XG5cdCAgICBjb25maWd1cmFibGU6IHRydWUsXG5cdCAgICBlbnVtZXJhYmxlOiBlbnVtZXJhYmxlLFxuXHQgICAgd3JpdGFibGU6IHRydWUsXG5cdCAgICB2YWx1ZTogdmFsdWVcblx0ICB9KTtcblx0fVxuXG5cdC8vIEtlZXAgaW5pdGlhbGl6YXRpb24gaWRlbXBvdGVudC5cblx0ZnVuY3Rpb24gc2hpbW1lciAob3B0aW9ucykge1xuXHQgIGlmIChvcHRpb25zICYmIG9wdGlvbnMubG9nZ2VyKSB7XG5cdCAgICBpZiAoIWlzRnVuY3Rpb24ob3B0aW9ucy5sb2dnZXIpKSBsb2dnZXIoXCJuZXcgbG9nZ2VyIGlzbid0IGEgZnVuY3Rpb24sIG5vdCByZXBsYWNpbmdcIik7XG5cdCAgICBlbHNlIGxvZ2dlciA9IG9wdGlvbnMubG9nZ2VyO1xuXHQgIH1cblx0fVxuXG5cdGZ1bmN0aW9uIHdyYXAgKG5vZHVsZSwgbmFtZSwgd3JhcHBlcikge1xuXHQgIGlmICghbm9kdWxlIHx8ICFub2R1bGVbbmFtZV0pIHtcblx0ICAgIGxvZ2dlcignbm8gb3JpZ2luYWwgZnVuY3Rpb24gJyArIG5hbWUgKyAnIHRvIHdyYXAnKTtcblx0ICAgIHJldHVyblxuXHQgIH1cblxuXHQgIGlmICghd3JhcHBlcikge1xuXHQgICAgbG9nZ2VyKCdubyB3cmFwcGVyIGZ1bmN0aW9uJyk7XG5cdCAgICBsb2dnZXIoKG5ldyBFcnJvcigpKS5zdGFjayk7XG5cdCAgICByZXR1cm5cblx0ICB9XG5cblx0ICBpZiAoIWlzRnVuY3Rpb24obm9kdWxlW25hbWVdKSB8fCAhaXNGdW5jdGlvbih3cmFwcGVyKSkge1xuXHQgICAgbG9nZ2VyKCdvcmlnaW5hbCBvYmplY3QgYW5kIHdyYXBwZXIgbXVzdCBiZSBmdW5jdGlvbnMnKTtcblx0ICAgIHJldHVyblxuXHQgIH1cblxuXHQgIHZhciBvcmlnaW5hbCA9IG5vZHVsZVtuYW1lXTtcblx0ICB2YXIgd3JhcHBlZCA9IHdyYXBwZXIob3JpZ2luYWwsIG5hbWUpO1xuXG5cdCAgZGVmaW5lUHJvcGVydHkod3JhcHBlZCwgJ19fb3JpZ2luYWwnLCBvcmlnaW5hbCk7XG5cdCAgZGVmaW5lUHJvcGVydHkod3JhcHBlZCwgJ19fdW53cmFwJywgZnVuY3Rpb24gKCkge1xuXHQgICAgaWYgKG5vZHVsZVtuYW1lXSA9PT0gd3JhcHBlZCkgZGVmaW5lUHJvcGVydHkobm9kdWxlLCBuYW1lLCBvcmlnaW5hbCk7XG5cdCAgfSk7XG5cdCAgZGVmaW5lUHJvcGVydHkod3JhcHBlZCwgJ19fd3JhcHBlZCcsIHRydWUpO1xuXG5cdCAgZGVmaW5lUHJvcGVydHkobm9kdWxlLCBuYW1lLCB3cmFwcGVkKTtcblx0ICByZXR1cm4gd3JhcHBlZFxuXHR9XG5cblx0ZnVuY3Rpb24gbWFzc1dyYXAgKG5vZHVsZXMsIG5hbWVzLCB3cmFwcGVyKSB7XG5cdCAgaWYgKCFub2R1bGVzKSB7XG5cdCAgICBsb2dnZXIoJ211c3QgcHJvdmlkZSBvbmUgb3IgbW9yZSBtb2R1bGVzIHRvIHBhdGNoJyk7XG5cdCAgICBsb2dnZXIoKG5ldyBFcnJvcigpKS5zdGFjayk7XG5cdCAgICByZXR1cm5cblx0ICB9IGVsc2UgaWYgKCFBcnJheS5pc0FycmF5KG5vZHVsZXMpKSB7XG5cdCAgICBub2R1bGVzID0gW25vZHVsZXNdO1xuXHQgIH1cblxuXHQgIGlmICghKG5hbWVzICYmIEFycmF5LmlzQXJyYXkobmFtZXMpKSkge1xuXHQgICAgbG9nZ2VyKCdtdXN0IHByb3ZpZGUgb25lIG9yIG1vcmUgZnVuY3Rpb25zIHRvIHdyYXAgb24gbW9kdWxlcycpO1xuXHQgICAgcmV0dXJuXG5cdCAgfVxuXG5cdCAgbm9kdWxlcy5mb3JFYWNoKGZ1bmN0aW9uIChub2R1bGUpIHtcblx0ICAgIG5hbWVzLmZvckVhY2goZnVuY3Rpb24gKG5hbWUpIHtcblx0ICAgICAgd3JhcChub2R1bGUsIG5hbWUsIHdyYXBwZXIpO1xuXHQgICAgfSk7XG5cdCAgfSk7XG5cdH1cblxuXHRmdW5jdGlvbiB1bndyYXAgKG5vZHVsZSwgbmFtZSkge1xuXHQgIGlmICghbm9kdWxlIHx8ICFub2R1bGVbbmFtZV0pIHtcblx0ICAgIGxvZ2dlcignbm8gZnVuY3Rpb24gdG8gdW53cmFwLicpO1xuXHQgICAgbG9nZ2VyKChuZXcgRXJyb3IoKSkuc3RhY2spO1xuXHQgICAgcmV0dXJuXG5cdCAgfVxuXG5cdCAgaWYgKCFub2R1bGVbbmFtZV0uX191bndyYXApIHtcblx0ICAgIGxvZ2dlcignbm8gb3JpZ2luYWwgdG8gdW53cmFwIHRvIC0tIGhhcyAnICsgbmFtZSArICcgYWxyZWFkeSBiZWVuIHVud3JhcHBlZD8nKTtcblx0ICB9IGVsc2Uge1xuXHQgICAgcmV0dXJuIG5vZHVsZVtuYW1lXS5fX3Vud3JhcCgpXG5cdCAgfVxuXHR9XG5cblx0ZnVuY3Rpb24gbWFzc1Vud3JhcCAobm9kdWxlcywgbmFtZXMpIHtcblx0ICBpZiAoIW5vZHVsZXMpIHtcblx0ICAgIGxvZ2dlcignbXVzdCBwcm92aWRlIG9uZSBvciBtb3JlIG1vZHVsZXMgdG8gcGF0Y2gnKTtcblx0ICAgIGxvZ2dlcigobmV3IEVycm9yKCkpLnN0YWNrKTtcblx0ICAgIHJldHVyblxuXHQgIH0gZWxzZSBpZiAoIUFycmF5LmlzQXJyYXkobm9kdWxlcykpIHtcblx0ICAgIG5vZHVsZXMgPSBbbm9kdWxlc107XG5cdCAgfVxuXG5cdCAgaWYgKCEobmFtZXMgJiYgQXJyYXkuaXNBcnJheShuYW1lcykpKSB7XG5cdCAgICBsb2dnZXIoJ211c3QgcHJvdmlkZSBvbmUgb3IgbW9yZSBmdW5jdGlvbnMgdG8gdW53cmFwIG9uIG1vZHVsZXMnKTtcblx0ICAgIHJldHVyblxuXHQgIH1cblxuXHQgIG5vZHVsZXMuZm9yRWFjaChmdW5jdGlvbiAobm9kdWxlKSB7XG5cdCAgICBuYW1lcy5mb3JFYWNoKGZ1bmN0aW9uIChuYW1lKSB7XG5cdCAgICAgIHVud3JhcChub2R1bGUsIG5hbWUpO1xuXHQgICAgfSk7XG5cdCAgfSk7XG5cdH1cblxuXHRzaGltbWVyLndyYXAgPSB3cmFwO1xuXHRzaGltbWVyLm1hc3NXcmFwID0gbWFzc1dyYXA7XG5cdHNoaW1tZXIudW53cmFwID0gdW53cmFwO1xuXHRzaGltbWVyLm1hc3NVbndyYXAgPSBtYXNzVW53cmFwO1xuXG5cdHNoaW1tZXJfMSA9IHNoaW1tZXI7XG5cdHJldHVybiBzaGltbWVyXzE7XG59XG5cbnZhciBzaGltbWVyRXhwb3J0cyA9IHJlcXVpcmVTaGltbWVyKCk7XG5cbi8qXG4gKiBDb3B5cmlnaHQgVGhlIE9wZW5UZWxlbWV0cnkgQXV0aG9yc1xuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgIGh0dHBzOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG52YXIgX19hc3NpZ24gPSAodW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX2Fzc2lnbikgfHwgZnVuY3Rpb24gKCkge1xuICAgIF9fYXNzaWduID0gT2JqZWN0LmFzc2lnbiB8fCBmdW5jdGlvbih0KSB7XG4gICAgICAgIGZvciAodmFyIHMsIGkgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgaSA8IG47IGkrKykge1xuICAgICAgICAgICAgcyA9IGFyZ3VtZW50c1tpXTtcbiAgICAgICAgICAgIGZvciAodmFyIHAgaW4gcykgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChzLCBwKSlcbiAgICAgICAgICAgICAgICB0W3BdID0gc1twXTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdDtcbiAgICB9O1xuICAgIHJldHVybiBfX2Fzc2lnbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufTtcbi8qKlxuICogQmFzZSBhYnN0cmFjdCBpbnRlcm5hbCBjbGFzcyBmb3IgaW5zdHJ1bWVudGluZyBub2RlIGFuZCB3ZWIgcGx1Z2luc1xuICovXG52YXIgSW5zdHJ1bWVudGF0aW9uQWJzdHJhY3QgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoKSB7XG4gICAgZnVuY3Rpb24gSW5zdHJ1bWVudGF0aW9uQWJzdHJhY3QoaW5zdHJ1bWVudGF0aW9uTmFtZSwgaW5zdHJ1bWVudGF0aW9uVmVyc2lvbiwgY29uZmlnKSB7XG4gICAgICAgIHRoaXMuaW5zdHJ1bWVudGF0aW9uTmFtZSA9IGluc3RydW1lbnRhdGlvbk5hbWU7XG4gICAgICAgIHRoaXMuaW5zdHJ1bWVudGF0aW9uVmVyc2lvbiA9IGluc3RydW1lbnRhdGlvblZlcnNpb247XG4gICAgICAgIHRoaXMuX2NvbmZpZyA9IHt9O1xuICAgICAgICAvKiBBcGkgdG8gd3JhcCBpbnN0cnVtZW50ZWQgbWV0aG9kICovXG4gICAgICAgIHRoaXMuX3dyYXAgPSBzaGltbWVyRXhwb3J0cy53cmFwO1xuICAgICAgICAvKiBBcGkgdG8gdW53cmFwIGluc3RydW1lbnRlZCBtZXRob2RzICovXG4gICAgICAgIHRoaXMuX3Vud3JhcCA9IHNoaW1tZXJFeHBvcnRzLnVud3JhcDtcbiAgICAgICAgLyogQXBpIHRvIG1hc3Mgd3JhcCBpbnN0cnVtZW50ZWQgbWV0aG9kICovXG4gICAgICAgIHRoaXMuX21hc3NXcmFwID0gc2hpbW1lckV4cG9ydHMubWFzc1dyYXA7XG4gICAgICAgIC8qIEFwaSB0byBtYXNzIHVud3JhcCBpbnN0cnVtZW50ZWQgbWV0aG9kcyAqL1xuICAgICAgICB0aGlzLl9tYXNzVW53cmFwID0gc2hpbW1lckV4cG9ydHMubWFzc1Vud3JhcDtcbiAgICAgICAgdGhpcy5zZXRDb25maWcoY29uZmlnKTtcbiAgICAgICAgdGhpcy5fZGlhZyA9IGRpYWcuY3JlYXRlQ29tcG9uZW50TG9nZ2VyKHtcbiAgICAgICAgICAgIG5hbWVzcGFjZTogaW5zdHJ1bWVudGF0aW9uTmFtZSxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuX3RyYWNlciA9IHRyYWNlLmdldFRyYWNlcihpbnN0cnVtZW50YXRpb25OYW1lLCBpbnN0cnVtZW50YXRpb25WZXJzaW9uKTtcbiAgICAgICAgdGhpcy5fbWV0ZXIgPSBtZXRyaWNzLmdldE1ldGVyKGluc3RydW1lbnRhdGlvbk5hbWUsIGluc3RydW1lbnRhdGlvblZlcnNpb24pO1xuICAgICAgICB0aGlzLl9sb2dnZXIgPSBsb2dzLmdldExvZ2dlcihpbnN0cnVtZW50YXRpb25OYW1lLCBpbnN0cnVtZW50YXRpb25WZXJzaW9uKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlTWV0cmljSW5zdHJ1bWVudHMoKTtcbiAgICB9XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KEluc3RydW1lbnRhdGlvbkFic3RyYWN0LnByb3RvdHlwZSwgXCJtZXRlclwiLCB7XG4gICAgICAgIC8qIFJldHVybnMgbWV0ZXIgKi9cbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbWV0ZXI7XG4gICAgICAgIH0sXG4gICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICB9KTtcbiAgICAvKipcbiAgICAgKiBTZXRzIE1ldGVyUHJvdmlkZXIgdG8gdGhpcyBwbHVnaW5cbiAgICAgKiBAcGFyYW0gbWV0ZXJQcm92aWRlclxuICAgICAqL1xuICAgIEluc3RydW1lbnRhdGlvbkFic3RyYWN0LnByb3RvdHlwZS5zZXRNZXRlclByb3ZpZGVyID0gZnVuY3Rpb24gKG1ldGVyUHJvdmlkZXIpIHtcbiAgICAgICAgdGhpcy5fbWV0ZXIgPSBtZXRlclByb3ZpZGVyLmdldE1ldGVyKHRoaXMuaW5zdHJ1bWVudGF0aW9uTmFtZSwgdGhpcy5pbnN0cnVtZW50YXRpb25WZXJzaW9uKTtcbiAgICAgICAgdGhpcy5fdXBkYXRlTWV0cmljSW5zdHJ1bWVudHMoKTtcbiAgICB9O1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShJbnN0cnVtZW50YXRpb25BYnN0cmFjdC5wcm90b3R5cGUsIFwibG9nZ2VyXCIsIHtcbiAgICAgICAgLyogUmV0dXJucyBsb2dnZXIgKi9cbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fbG9nZ2VyO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogU2V0cyBMb2dnZXJQcm92aWRlciB0byB0aGlzIHBsdWdpblxuICAgICAqIEBwYXJhbSBsb2dnZXJQcm92aWRlclxuICAgICAqL1xuICAgIEluc3RydW1lbnRhdGlvbkFic3RyYWN0LnByb3RvdHlwZS5zZXRMb2dnZXJQcm92aWRlciA9IGZ1bmN0aW9uIChsb2dnZXJQcm92aWRlcikge1xuICAgICAgICB0aGlzLl9sb2dnZXIgPSBsb2dnZXJQcm92aWRlci5nZXRMb2dnZXIodGhpcy5pbnN0cnVtZW50YXRpb25OYW1lLCB0aGlzLmluc3RydW1lbnRhdGlvblZlcnNpb24pO1xuICAgIH07XG4gICAgLyoqXG4gICAgICogQGV4cGVyaW1lbnRhbFxuICAgICAqXG4gICAgICogR2V0IG1vZHVsZSBkZWZpbml0aW9ucyBkZWZpbmVkIGJ5IHtAbGluayBpbml0fS5cbiAgICAgKiBUaGlzIGNhbiBiZSB1c2VkIGZvciBleHBlcmltZW50YWwgY29tcGlsZS10aW1lIGluc3RydW1lbnRhdGlvbi5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIGFuIGFycmF5IG9mIHtAbGluayBJbnN0cnVtZW50YXRpb25Nb2R1bGVEZWZpbml0aW9ufVxuICAgICAqL1xuICAgIEluc3RydW1lbnRhdGlvbkFic3RyYWN0LnByb3RvdHlwZS5nZXRNb2R1bGVEZWZpbml0aW9ucyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF9hO1xuICAgICAgICB2YXIgaW5pdFJlc3VsdCA9IChfYSA9IHRoaXMuaW5pdCgpKSAhPT0gbnVsbCAmJiBfYSAhPT0gdm9pZCAwID8gX2EgOiBbXTtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KGluaXRSZXN1bHQpKSB7XG4gICAgICAgICAgICByZXR1cm4gW2luaXRSZXN1bHRdO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpbml0UmVzdWx0O1xuICAgIH07XG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgbmV3IG1ldHJpYyBpbnN0cnVtZW50cyB3aXRoIHRoZSBjdXJyZW50IE1ldGVyLlxuICAgICAqL1xuICAgIEluc3RydW1lbnRhdGlvbkFic3RyYWN0LnByb3RvdHlwZS5fdXBkYXRlTWV0cmljSW5zdHJ1bWVudHMgPSBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9O1xuICAgIC8qIFJldHVybnMgSW5zdHJ1bWVudGF0aW9uQ29uZmlnICovXG4gICAgSW5zdHJ1bWVudGF0aW9uQWJzdHJhY3QucHJvdG90eXBlLmdldENvbmZpZyA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcbiAgICB9O1xuICAgIC8qKlxuICAgICAqIFNldHMgSW5zdHJ1bWVudGF0aW9uQ29uZmlnIHRvIHRoaXMgcGx1Z2luXG4gICAgICogQHBhcmFtIGNvbmZpZ1xuICAgICAqL1xuICAgIEluc3RydW1lbnRhdGlvbkFic3RyYWN0LnByb3RvdHlwZS5zZXRDb25maWcgPSBmdW5jdGlvbiAoY29uZmlnKSB7XG4gICAgICAgIC8vIGNvcHkgY29uZmlnIGZpcnN0IGxldmVsIHByb3BlcnRpZXMgdG8gZW5zdXJlIHRoZXkgYXJlIGltbXV0YWJsZS5cbiAgICAgICAgLy8gbmVzdGVkIHByb3BlcnRpZXMgYXJlIG5vdCBjb3BpZWQsIHRodXMgYXJlIG11dGFibGUgZnJvbSB0aGUgb3V0c2lkZS5cbiAgICAgICAgdGhpcy5fY29uZmlnID0gX19hc3NpZ24oeyBlbmFibGVkOiB0cnVlIH0sIGNvbmZpZyk7XG4gICAgfTtcbiAgICAvKipcbiAgICAgKiBTZXRzIFRyYWNlUHJvdmlkZXIgdG8gdGhpcyBwbHVnaW5cbiAgICAgKiBAcGFyYW0gdHJhY2VyUHJvdmlkZXJcbiAgICAgKi9cbiAgICBJbnN0cnVtZW50YXRpb25BYnN0cmFjdC5wcm90b3R5cGUuc2V0VHJhY2VyUHJvdmlkZXIgPSBmdW5jdGlvbiAodHJhY2VyUHJvdmlkZXIpIHtcbiAgICAgICAgdGhpcy5fdHJhY2VyID0gdHJhY2VyUHJvdmlkZXIuZ2V0VHJhY2VyKHRoaXMuaW5zdHJ1bWVudGF0aW9uTmFtZSwgdGhpcy5pbnN0cnVtZW50YXRpb25WZXJzaW9uKTtcbiAgICB9O1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShJbnN0cnVtZW50YXRpb25BYnN0cmFjdC5wcm90b3R5cGUsIFwidHJhY2VyXCIsIHtcbiAgICAgICAgLyogUmV0dXJucyB0cmFjZXIgKi9cbiAgICAgICAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fdHJhY2VyO1xuICAgICAgICB9LFxuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gICAgLyoqXG4gICAgICogRXhlY3V0ZSBzcGFuIGN1c3RvbWl6YXRpb24gaG9vaywgaWYgY29uZmlndXJlZCwgYW5kIGxvZyBhbnkgZXJyb3JzLlxuICAgICAqIEFueSBzZW1hbnRpY3Mgb2YgdGhlIHRyaWdnZXIgYW5kIGluZm8gYXJlIGRlZmluZWQgYnkgdGhlIHNwZWNpZmljIGluc3RydW1lbnRhdGlvbi5cbiAgICAgKiBAcGFyYW0gaG9va0hhbmRsZXIgVGhlIG9wdGlvbmFsIGhvb2sgaGFuZGxlciB3aGljaCB0aGUgdXNlciBoYXMgY29uZmlndXJlZCB2aWEgaW5zdHJ1bWVudGF0aW9uIGNvbmZpZ1xuICAgICAqIEBwYXJhbSB0cmlnZ2VyTmFtZSBUaGUgbmFtZSBvZiB0aGUgdHJpZ2dlciBmb3IgZXhlY3V0aW5nIHRoZSBob29rIGZvciBsb2dnaW5nIHB1cnBvc2VzXG4gICAgICogQHBhcmFtIHNwYW4gVGhlIHNwYW4gdG8gd2hpY2ggdGhlIGhvb2sgc2hvdWxkIGJlIGFwcGxpZWRcbiAgICAgKiBAcGFyYW0gaW5mbyBUaGUgaW5mbyBvYmplY3QgdG8gYmUgcGFzc2VkIHRvIHRoZSBob29rLCB3aXRoIHVzZWZ1bCBkYXRhIHRoZSBob29rIG1heSB1c2VcbiAgICAgKi9cbiAgICBJbnN0cnVtZW50YXRpb25BYnN0cmFjdC5wcm90b3R5cGUuX3J1blNwYW5DdXN0b21pemF0aW9uSG9vayA9IGZ1bmN0aW9uIChob29rSGFuZGxlciwgdHJpZ2dlck5hbWUsIHNwYW4sIGluZm8pIHtcbiAgICAgICAgaWYgKCFob29rSGFuZGxlcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBob29rSGFuZGxlcihzcGFuLCBpbmZvKTtcbiAgICAgICAgfVxuICAgICAgICBjYXRjaCAoZSkge1xuICAgICAgICAgICAgdGhpcy5fZGlhZy5lcnJvcihcIkVycm9yIHJ1bm5pbmcgc3BhbiBjdXN0b21pemF0aW9uIGhvb2sgZHVlIHRvIGV4Y2VwdGlvbiBpbiBoYW5kbGVyXCIsIHsgdHJpZ2dlck5hbWU6IHRyaWdnZXJOYW1lIH0sIGUpO1xuICAgICAgICB9XG4gICAgfTtcbiAgICByZXR1cm4gSW5zdHJ1bWVudGF0aW9uQWJzdHJhY3Q7XG59KCkpO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xudmFyIF9fZXh0ZW5kcyA9ICh1bmRlZmluZWQgJiYgdW5kZWZpbmVkLl9fZXh0ZW5kcykgfHwgKGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgZXh0ZW5kU3RhdGljcyA9IGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHxcbiAgICAgICAgICAgICh7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uIChkLCBiKSB7IGQuX19wcm90b19fID0gYjsgfSkgfHxcbiAgICAgICAgICAgIGZ1bmN0aW9uIChkLCBiKSB7IGZvciAodmFyIHAgaW4gYikgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChiLCBwKSkgZFtwXSA9IGJbcF07IH07XG4gICAgICAgIHJldHVybiBleHRlbmRTdGF0aWNzKGQsIGIpO1xuICAgIH07XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChkLCBiKSB7XG4gICAgICAgIGlmICh0eXBlb2YgYiAhPT0gXCJmdW5jdGlvblwiICYmIGIgIT09IG51bGwpXG4gICAgICAgICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhiKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgICAgIGV4dGVuZFN0YXRpY3MoZCwgYik7XG4gICAgICAgIGZ1bmN0aW9uIF9fKCkgeyB0aGlzLmNvbnN0cnVjdG9yID0gZDsgfVxuICAgICAgICBkLnByb3RvdHlwZSA9IGIgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGIpIDogKF9fLnByb3RvdHlwZSA9IGIucHJvdG90eXBlLCBuZXcgX18oKSk7XG4gICAgfTtcbn0pKCk7XG4vKipcbiAqIEJhc2UgYWJzdHJhY3QgY2xhc3MgZm9yIGluc3RydW1lbnRpbmcgd2ViIHBsdWdpbnNcbiAqL1xudmFyIEluc3RydW1lbnRhdGlvbkJhc2UgPSAvKiogQGNsYXNzICovIChmdW5jdGlvbiAoX3N1cGVyKSB7XG4gICAgX19leHRlbmRzKEluc3RydW1lbnRhdGlvbkJhc2UsIF9zdXBlcik7XG4gICAgZnVuY3Rpb24gSW5zdHJ1bWVudGF0aW9uQmFzZShpbnN0cnVtZW50YXRpb25OYW1lLCBpbnN0cnVtZW50YXRpb25WZXJzaW9uLCBjb25maWcpIHtcbiAgICAgICAgdmFyIF90aGlzID0gX3N1cGVyLmNhbGwodGhpcywgaW5zdHJ1bWVudGF0aW9uTmFtZSwgaW5zdHJ1bWVudGF0aW9uVmVyc2lvbiwgY29uZmlnKSB8fCB0aGlzO1xuICAgICAgICBpZiAoX3RoaXMuX2NvbmZpZy5lbmFibGVkKSB7XG4gICAgICAgICAgICBfdGhpcy5lbmFibGUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gX3RoaXM7XG4gICAgfVxuICAgIHJldHVybiBJbnN0cnVtZW50YXRpb25CYXNlO1xufShJbnN0cnVtZW50YXRpb25BYnN0cmFjdCkpO1xuXG4vKlxuICogQ29weXJpZ2h0IFRoZSBPcGVuVGVsZW1ldHJ5IEF1dGhvcnNcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICBodHRwczovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuKHVuZGVmaW5lZCAmJiB1bmRlZmluZWQuX19hd2FpdGVyKSB8fCBmdW5jdGlvbiAodGhpc0FyZywgX2FyZ3VtZW50cywgUCwgZ2VuZXJhdG9yKSB7XG4gICAgZnVuY3Rpb24gYWRvcHQodmFsdWUpIHsgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgUCA/IHZhbHVlIDogbmV3IFAoZnVuY3Rpb24gKHJlc29sdmUpIHsgcmVzb2x2ZSh2YWx1ZSk7IH0pOyB9XG4gICAgcmV0dXJuIG5ldyAoUCB8fCAoUCA9IFByb21pc2UpKShmdW5jdGlvbiAocmVzb2x2ZSwgcmVqZWN0KSB7XG4gICAgICAgIGZ1bmN0aW9uIGZ1bGZpbGxlZCh2YWx1ZSkgeyB0cnkgeyBzdGVwKGdlbmVyYXRvci5uZXh0KHZhbHVlKSk7IH0gY2F0Y2ggKGUpIHsgcmVqZWN0KGUpOyB9IH1cbiAgICAgICAgZnVuY3Rpb24gcmVqZWN0ZWQodmFsdWUpIHsgdHJ5IHsgc3RlcChnZW5lcmF0b3JbXCJ0aHJvd1wiXSh2YWx1ZSkpOyB9IGNhdGNoIChlKSB7IHJlamVjdChlKTsgfSB9XG4gICAgICAgIGZ1bmN0aW9uIHN0ZXAocmVzdWx0KSB7IHJlc3VsdC5kb25lID8gcmVzb2x2ZShyZXN1bHQudmFsdWUpIDogYWRvcHQocmVzdWx0LnZhbHVlKS50aGVuKGZ1bGZpbGxlZCwgcmVqZWN0ZWQpOyB9XG4gICAgICAgIHN0ZXAoKGdlbmVyYXRvciA9IGdlbmVyYXRvci5hcHBseSh0aGlzQXJnLCBfYXJndW1lbnRzIHx8IFtdKSkubmV4dCgpKTtcbiAgICB9KTtcbn07XG4odW5kZWZpbmVkICYmIHVuZGVmaW5lZC5fX2dlbmVyYXRvcikgfHwgZnVuY3Rpb24gKHRoaXNBcmcsIGJvZHkpIHtcbiAgICB2YXIgXyA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkgeyBpZiAodFswXSAmIDEpIHRocm93IHRbMV07IHJldHVybiB0WzFdOyB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCBmLCB5LCB0LCBnO1xuICAgIHJldHVybiBnID0geyBuZXh0OiB2ZXJiKDApLCBcInRocm93XCI6IHZlcmIoMSksIFwicmV0dXJuXCI6IHZlcmIoMikgfSwgdHlwZW9mIFN5bWJvbCA9PT0gXCJmdW5jdGlvblwiICYmIChnW1N5bWJvbC5pdGVyYXRvcl0gPSBmdW5jdGlvbigpIHsgcmV0dXJuIHRoaXM7IH0pLCBnO1xuICAgIGZ1bmN0aW9uIHZlcmIobikgeyByZXR1cm4gZnVuY3Rpb24gKHYpIHsgcmV0dXJuIHN0ZXAoW24sIHZdKTsgfTsgfVxuICAgIGZ1bmN0aW9uIHN0ZXAob3ApIHtcbiAgICAgICAgaWYgKGYpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJHZW5lcmF0b3IgaXMgYWxyZWFkeSBleGVjdXRpbmcuXCIpO1xuICAgICAgICB3aGlsZSAoXykgdHJ5IHtcbiAgICAgICAgICAgIGlmIChmID0gMSwgeSAmJiAodCA9IG9wWzBdICYgMiA/IHlbXCJyZXR1cm5cIl0gOiBvcFswXSA/IHlbXCJ0aHJvd1wiXSB8fCAoKHQgPSB5W1wicmV0dXJuXCJdKSAmJiB0LmNhbGwoeSksIDApIDogeS5uZXh0KSAmJiAhKHQgPSB0LmNhbGwoeSwgb3BbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgICAgICAgIGlmICh5ID0gMCwgdCkgb3AgPSBbb3BbMF0gJiAyLCB0LnZhbHVlXTtcbiAgICAgICAgICAgIHN3aXRjaCAob3BbMF0pIHtcbiAgICAgICAgICAgICAgICBjYXNlIDA6IGNhc2UgMTogdCA9IG9wOyBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQ6IF8ubGFiZWwrKzsgcmV0dXJuIHsgdmFsdWU6IG9wWzFdLCBkb25lOiBmYWxzZSB9O1xuICAgICAgICAgICAgICAgIGNhc2UgNTogXy5sYWJlbCsrOyB5ID0gb3BbMV07IG9wID0gWzBdOyBjb250aW51ZTtcbiAgICAgICAgICAgICAgICBjYXNlIDc6IG9wID0gXy5vcHMucG9wKCk7IF8udHJ5cy5wb3AoKTsgY29udGludWU7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEodCA9IF8udHJ5cywgdCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmIChvcFswXSA9PT0gNiB8fCBvcFswXSA9PT0gMikpIHsgXyA9IDA7IGNvbnRpbnVlOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gMyAmJiAoIXQgfHwgKG9wWzFdID4gdFswXSAmJiBvcFsxXSA8IHRbM10pKSkgeyBfLmxhYmVsID0gb3BbMV07IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChvcFswXSA9PT0gNiAmJiBfLmxhYmVsIDwgdFsxXSkgeyBfLmxhYmVsID0gdFsxXTsgdCA9IG9wOyBicmVhazsgfVxuICAgICAgICAgICAgICAgICAgICBpZiAodCAmJiBfLmxhYmVsIDwgdFsyXSkgeyBfLmxhYmVsID0gdFsyXTsgXy5vcHMucHVzaChvcCk7IGJyZWFrOyB9XG4gICAgICAgICAgICAgICAgICAgIGlmICh0WzJdKSBfLm9wcy5wb3AoKTtcbiAgICAgICAgICAgICAgICAgICAgXy50cnlzLnBvcCgpOyBjb250aW51ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIG9wID0gYm9keS5jYWxsKHRoaXNBcmcsIF8pO1xuICAgICAgICB9IGNhdGNoIChlKSB7IG9wID0gWzYsIGVdOyB5ID0gMDsgfSBmaW5hbGx5IHsgZiA9IHQgPSAwOyB9XG4gICAgICAgIGlmIChvcFswXSAmIDUpIHRocm93IG9wWzFdOyByZXR1cm4geyB2YWx1ZTogb3BbMF0gPyBvcFsxXSA6IHZvaWQgMCwgZG9uZTogdHJ1ZSB9O1xuICAgIH1cbn07XG4vKipcbiAqIGZ1bmN0aW9uIHRvIGV4ZWN1dGUgcGF0Y2hlZCBmdW5jdGlvbiBhbmQgYmVpbmcgYWJsZSB0byBjYXRjaCBlcnJvcnNcbiAqIEBwYXJhbSBleGVjdXRlIC0gZnVuY3Rpb24gdG8gYmUgZXhlY3V0ZWRcbiAqIEBwYXJhbSBvbkZpbmlzaCAtIGNhbGxiYWNrIHRvIHJ1biB3aGVuIGV4ZWN1dGUgZmluaXNoZXNcbiAqL1xuZnVuY3Rpb24gc2FmZUV4ZWN1dGVJblRoZU1pZGRsZShleGVjdXRlLCBvbkZpbmlzaCwgcHJldmVudFRocm93aW5nRXJyb3IpIHtcbiAgICB2YXIgZXJyb3I7XG4gICAgdmFyIHJlc3VsdDtcbiAgICB0cnkge1xuICAgICAgICByZXN1bHQgPSBleGVjdXRlKCk7XG4gICAgfVxuICAgIGNhdGNoIChlKSB7XG4gICAgICAgIGVycm9yID0gZTtcbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICAgIG9uRmluaXNoKGVycm9yLCByZXN1bHQpO1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW5zYWZlLWZpbmFsbHlcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4vKipcbiAqIENoZWNrcyBpZiBjZXJ0YWluIGZ1bmN0aW9uIGhhcyBiZWVuIGFscmVhZHkgd3JhcHBlZFxuICogQHBhcmFtIGZ1bmNcbiAqL1xuZnVuY3Rpb24gaXNXcmFwcGVkKGZ1bmMpIHtcbiAgICByZXR1cm4gKHR5cGVvZiBmdW5jID09PSAnZnVuY3Rpb24nICYmXG4gICAgICAgIHR5cGVvZiBmdW5jLl9fb3JpZ2luYWwgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgdHlwZW9mIGZ1bmMuX191bndyYXAgPT09ICdmdW5jdGlvbicgJiZcbiAgICAgICAgZnVuYy5fX3dyYXBwZWQgPT09IHRydWUpO1xufVxuXG5leHBvcnQgeyBJbnN0cnVtZW50YXRpb25CYXNlIGFzIEksIGlzV3JhcHBlZCBhcyBpLCBsb2dzIGFzIGwsIHNhZmVFeGVjdXRlSW5UaGVNaWRkbGUgYXMgcyB9OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVMsS0FBS0EsU0FBWTtBQUMxQixTQUFTLEtBQUtDLFNBQWU7QUFDN0IsU0FBUyxLQUFLQyxTQUFhO0FBaUIzQixJQUFJQztBQUFBO0FBQUEsRUFBNEIsV0FBWTtBQUN4QyxhQUFTQSxJQUFhO0FBQUEsSUFDdEI7QUFDQSxXQUFBQSxFQUFXLFVBQVUsT0FBTyxTQUFVQyxHQUFZO0FBQUEsSUFBRSxHQUM3Q0Q7QUFBQSxFQUNYLEVBQUU7QUFBQSxHQUNFRSxJQUFjLElBQUlGLEVBQVcsR0FpQjdCRztBQUFBO0FBQUEsRUFBb0MsV0FBWTtBQUNoRCxhQUFTQSxJQUFxQjtBQUFBLElBQzlCO0FBQ0EsV0FBQUEsRUFBbUIsVUFBVSxZQUFZLFNBQVVDLEdBQU9DLEdBQVVDLEdBQVU7QUFDMUUsYUFBTyxJQUFJTixFQUFXO0FBQUEsSUFDMUIsR0FDT0c7QUFBQSxFQUNYLEVBQUU7QUFBQSxHQUNFSSxJQUF1QixJQUFJSixFQUFtQixHQWlCOUNLO0FBQUE7QUFBQSxFQUE2QixXQUFZO0FBQ3pDLGFBQVNBLEVBQVlDLEdBQVdDLEdBQU1DLEdBQVNDLEdBQVM7QUFDcEQsV0FBSyxZQUFZSCxHQUNqQixLQUFLLE9BQU9DLEdBQ1osS0FBSyxVQUFVQyxHQUNmLEtBQUssVUFBVUM7QUFBQSxJQUNuQjtBQU1BLFdBQUFKLEVBQVksVUFBVSxPQUFPLFNBQVVLLEdBQVc7QUFDOUMsV0FBSyxXQUFXLEVBQUUsS0FBS0EsQ0FBUztBQUFBLElBQ3BDLEdBS0FMLEVBQVksVUFBVSxhQUFhLFdBQVk7QUFDM0MsVUFBSSxLQUFLO0FBQ0wsZUFBTyxLQUFLO0FBRWhCLFVBQUlNLElBQVMsS0FBSyxVQUFVLGtCQUFrQixLQUFLLE1BQU0sS0FBSyxTQUFTLEtBQUssT0FBTztBQUNuRixhQUFLQSxLQUdMLEtBQUssWUFBWUEsR0FDVixLQUFLLGFBSERa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bWV0cmljcyIsICJ0cmFjZSIsICJOb29wTG9nZ2VyIiwgIl9sb2dSZWNvcmQiLCAiTk9PUF9MT0dHRVIiLCAiTm9vcExvZ2dlclByb3ZpZGVyIiwgIl9uYW1lIiwgIl92ZXJzaW9uIiwgIl9vcHRpb25zIiwgIk5PT1BfTE9HR0VSX1BST1ZJREVSIiwgIlByb3h5TG9nZ2VyIiwgIl9wcm92aWRlciIsICJuYW1lIiwgInZlcnNpb24iLCAib3B0aW9ucyIsICJsb2dSZWNvcmQiLCAibG9nZ2VyIiwgIlByb3h5TG9nZ2VyUHJvdmlkZXIiLCAiX2EiLCAiZGVsZWdhdGUiLCAiX2dsb2JhbFRoaXMiLCAiR0xPQkFMX0xPR1NfQVBJX0tFWSIsICJfZ2xvYmFsIiwgIm1ha2VHZXR0ZXIiLCAicmVxdWlyZWRWZXJzaW9uIiwgImluc3RhbmNlIiwgImZhbGxiYWNrIiwgIkFQSV9CQUNLV0FSRFNfQ09NUEFUSUJJTElUWV9WRVJTSU9OIiwgIkxvZ3NBUEkiLCAicHJvdmlkZXIiLCAiX2IiLCAibG9ncyIsICJzaGltbWVyXzEiLCAiaGFzUmVxdWlyZWRTaGltbWVyIiwgInJlcXVpcmVTaGltbWVyIiwgImlzRnVuY3Rpb24iLCAiZnVua3Rpb24iLCAiZGVmaW5lUHJvcGVydHkiLCAib2JqIiwgInZhbHVlIiwgImVudW1lcmFibGUiLCAic2hpbW1lciIsICJ3cmFwIiwgIm5vZHVsZSIsICJ3cmFwcGVyIiwgIm9yaWdpbmFsIiwgIndyYXBwZWQiLCAibWFzc1dyYXAiLCAibm9kdWxlcyIsICJuYW1lcyIsICJ1bndyYXAiLCAibWFzc1Vud3JhcCIsICJzaGltbWVyRXhwb3J0cyIsICJfX2Fzc2lnbiIsICJ0IiwgInMiLCAiaSIsICJwIiwgIkluc3RydW1lbnRhdGlvbkFic3RyYWN0IiwgImluc3RydW1lbnRhdGlvbk5hbWUiLCAiaW5zdHJ1bWVudGF0aW9uVmVyc2lvbiIsICJjb25maWciLCAibWV0ZXJQcm92aWRlciIsICJsb2dnZXJQcm92aWRlciIsICJpbml0UmVzdWx0IiwgInRyYWNlclByb3ZpZGVyIiwgImhvb2tIYW5kbGVyIiwgInRyaWdnZXJOYW1lIiwgInNwYW4iLCAiaW5mbyIsICJlIiwgIl9fZXh0ZW5kcyIsICJleHRlbmRTdGF0aWNzIiwgImQiLCAiYiIsICJfXyIsICJJbnN0cnVtZW50YXRpb25CYXNlIiwgIl9zdXBlciIsICJfdGhpcyIsICJzYWZlRXhlY3V0ZUluVGhlTWlkZGxlIiwgImV4ZWN1dGUiLCAib25GaW5pc2giLCAicHJldmVudFRocm93aW5nRXJyb3IiLCAiZXJyb3IiLCAicmVzdWx0IiwgImlzV3JhcHBlZCIsICJmdW5jIl0KfQo=
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@getopenpay/openpay-js",
3
- "version": "0.5.13",
3
+ "version": "0.5.15",
4
4
  "description": "Accept payments through OpenPay, right on your site",
5
5
  "author": "OpenPay <info@getopenpay.com> (https://getopenpay.com)",
6
6
  "license": "ISC",
@@ -12,8 +12,8 @@
12
12
  "exports": {
13
13
  ".": {
14
14
  "import": "./dist/index.es.js",
15
- "default": "./dist/index.umd.js",
16
- "types": "./dist/index.d.ts"
15
+ "types": "./dist/index.d.ts",
16
+ "default": "./dist/index.umd.js"
17
17
  }
18
18
  },
19
19
  "files": [
@@ -44,7 +44,7 @@
44
44
  "@stripe/stripe-js": "^4.3.0",
45
45
  "@types/applepayjs": "^14.0.9",
46
46
  "@types/googlepay": "^0.7.6",
47
- "vite": "^5.3.4",
47
+ "vite": "^7.1.2",
48
48
  "vite-plugin-dts": "^4.0.0-beta.2"
49
49
  }
50
50
  }