@getopenpay/openpay-js-react 0.5.2-alpha.f4e728d → 0.5.3-alpha.06a0f22

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 (27) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/{Resource-CG66x3yU-BIfmNPF-.js → Resource-vMTYzHnH-rvlNMnjl.js} +3 -3
  3. package/dist/SimpleSpanProcessor-Cza16vjV-BxJK0M6w.js +957 -0
  4. package/dist/detect-resources-Ci98P4IY-DDYqc---.js +854 -0
  5. package/dist/diag-api-DUHYukMW-CSfPAY48.js +6 -0
  6. package/dist/{index-BR3hj-Iu-DXclVTr3.js → index-BDhIvQX0-B_JQNCPs.js} +5 -5
  7. package/dist/{index-D_pIW5xT-DslEKVM6.js → index-BaTbkF8M-UZLB4k05.js} +6 -6
  8. package/dist/{index-Bx3Hc25_-BHGA2htW.js → index-BnnW1rC5-CnjXsIEi.js} +2 -2
  9. package/dist/index-BxLG8KOU.js +8468 -0
  10. package/dist/{index-BUHwPKEK-CNW2xnW9.js → index-C2IubpCq-DRIrh3js.js} +29 -29
  11. package/dist/{index-BtdQ9zVo-BxOtHY2-.js → index-C6ufRvNF-CizjFdpJ.js} +69 -69
  12. package/dist/{index-5To_e19N-BJVdje8n.js → index-D0Vc2R2I-DvaXNNYJ.js} +33 -33
  13. package/dist/{index-CivLldgd-DSp8c5b6.js → index-D3XRtQyO-DuEFUy65.js} +12 -12
  14. package/dist/{index-D0jlc51g-C9SUJQjY.js → index-DK5ZdQ5i-C3VM5nh_.js} +15 -15
  15. package/dist/{index-sRxamKF6-Bpsmi4pl.js → index-DNntq8aU-CXDCzFwp.js} +2 -2
  16. package/dist/index.d.ts +3 -52
  17. package/dist/index.js +7 -7
  18. package/dist/{metrics-api-BlEkCK9d-BlLG6cK7.js → metrics-api-twSlCzy8-BXDlL26U.js} +12 -12
  19. package/dist/{sdk-info-DKhdLODI-BimXbZMc.js → sdk-info-BR744-Co-CJxbWmkd.js} +15 -15
  20. package/dist/{url-DgAYxBDj-Bolnkb0Z.js → url-vZYDLDqv-D6TOr8OV.js} +163 -163
  21. package/dist/{utils-19Xh0C18-0H04lrSm.js → utils-B87eBo34-CyTUnMYt.js} +2 -2
  22. package/dist/{utils-tMp7Y4zF-CdVxOFvW.js → utils-kdGzYc-2-BQl4zHJC.js} +12 -12
  23. package/package.json +1 -1
  24. package/dist/SimpleSpanProcessor-DZHwNXyd-BVdtLHpX.js +0 -957
  25. package/dist/detect-resources-DNpQy0K0-lNcYqBWx.js +0 -854
  26. package/dist/diag-api-B2N9Zjft-CQ9YbTyT.js +0 -6
  27. package/dist/index-H0dupMK0.js +0 -9113
@@ -1,9 +1,9 @@
1
- import { r as D } from "./diag-api-B2N9Zjft-CQ9YbTyT.js";
2
- import { j as M, q as B, Z as G, z as W, y as v, a as X, Q as Z, x as I, p as C, S as Q, O as $ } from "./url-DgAYxBDj-Bolnkb0Z.js";
3
- import { F as Y, H as J, Y as K } from "./utils-tMp7Y4zF-CdVxOFvW.js";
1
+ import { r as D } from "./diag-api-DUHYukMW-CSfPAY48.js";
2
+ import { j as M, q as B, Z as W, z as X, y as v, a as Z, Q as G, x as I, p as C, S as Q, O as $ } from "./url-vZYDLDqv-D6TOr8OV.js";
3
+ import { F as Y, H as J, Y as K } from "./utils-kdGzYc-2-BQl4zHJC.js";
4
4
  import { l as b } from "./utils-BGeftTvk-CchVJ54o.js";
5
- import { T as E, x as k, R as x, s as V, b as tt } from "./utils-19Xh0C18-0H04lrSm.js";
6
- import { G as P, U as h, s as et } from "./index-H0dupMK0.js";
5
+ import { T as E, x as k, R as x, s as V, b as tt } from "./utils-B87eBo34-CyTUnMYt.js";
6
+ import { U as P, L as h, r as et } from "./index-BxLG8KOU.js";
7
7
  var g;
8
8
  (function(o) {
9
9
  o.COMPONENT = "component", o.HTTP_ERROR_NAME = "http.error_name", o.HTTP_STATUS_TEXT = "http.status_text";
@@ -267,7 +267,7 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
267
267
  k(r, n, this.getConfig().ignoreNetworkEvents), r.end(n[E.RESPONSE_END]);
268
268
  }, i.prototype._addFinalSpanAttributes = function(t, n) {
269
269
  var r = x(n.url);
270
- t.setAttribute(M, n.status), n.statusText != null && t.setAttribute(g.HTTP_STATUS_TEXT, n.statusText), t.setAttribute(B, r.host), t.setAttribute(G, r.protocol.replace(":", "")), typeof navigator < "u" && t.setAttribute(W, navigator.userAgent);
270
+ t.setAttribute(M, n.status), n.statusText != null && t.setAttribute(g.HTTP_STATUS_TEXT, n.statusText), t.setAttribute(B, r.host), t.setAttribute(W, r.protocol.replace(":", "")), typeof navigator < "u" && t.setAttribute(X, navigator.userAgent);
271
271
  }, i.prototype._addHeaders = function(t, n) {
272
272
  if (!V(n, this.getConfig().propagateTraceHeaderCorsUrls)) {
273
273
  var r = {};
@@ -300,14 +300,14 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
300
300
  this._tasksCount === 0 && this.getConfig().clearTimingResources && (performance.clearResourceTimings(), this._usedResources = /* @__PURE__ */ new WeakSet());
301
301
  }, i.prototype._createSpan = function(t, n) {
302
302
  var r;
303
- if (n === void 0 && (n = {}), X(t, this.getConfig().ignoreUrls)) {
303
+ if (n === void 0 && (n = {}), Z(t, this.getConfig().ignoreUrls)) {
304
304
  this._diag.debug("ignoring span as url matches ignored url");
305
305
  return;
306
306
  }
307
307
  var e = (n.method || "GET").toUpperCase(), s = "HTTP " + e;
308
308
  return this.tracer.startSpan(s, {
309
309
  kind: et.CLIENT,
310
- attributes: (r = {}, r[g.COMPONENT] = this.moduleName, r[Z] = e, r[I] = t, r)
310
+ attributes: (r = {}, r[g.COMPONENT] = this.moduleName, r[G] = e, r[I] = t, r)
311
311
  });
312
312
  }, i.prototype._findResourceAndAddNetworkEvents = function(t, n, r) {
313
313
  var e = n.entries;
@@ -363,12 +363,12 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
363
363
  }
364
364
  function N(f, p, y) {
365
365
  try {
366
- var H = y.clone(), q = y.clone(), A = H.body;
366
+ var F = y.clone(), H = y.clone(), A = F.body;
367
367
  if (A) {
368
- var L = A.getReader(), R = function() {
369
- L.read().then(function(m) {
368
+ var q = A.getReader(), R = function() {
369
+ q.read().then(function(m) {
370
370
  var z = m.done;
371
- z ? w(f, q) : R();
371
+ z ? w(f, H) : R();
372
372
  }, function(m) {
373
373
  T(f, m);
374
374
  });
@@ -380,7 +380,7 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
380
380
  p(y);
381
381
  }
382
382
  }
383
- function F(f, p, y) {
383
+ function L(f, p, y) {
384
384
  try {
385
385
  T(f, y);
386
386
  } finally {
@@ -389,7 +389,7 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
389
389
  }
390
390
  return new Promise(function(f, p) {
391
391
  return h.with(P.setSpan(h.active(), l), function() {
392
- return r._addHeaders(u, c), r._tasksCount++, n.apply(a, u instanceof Request ? [u] : [c, u]).then(N.bind(a, l, f), F.bind(a, l, p));
392
+ return r._addHeaders(u, c), r._tasksCount++, n.apply(a, u instanceof Request ? [u] : [c, u]).then(N.bind(a, l, f), L.bind(a, l, p));
393
393
  });
394
394
  });
395
395
  };
@@ -428,4 +428,4 @@ var O = "0.57.0", lt = /* @__PURE__ */ function() {
428
428
  export {
429
429
  St as FetchInstrumentation
430
430
  };
431
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtRDBqbGM1MWctIX57MDA2fX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLUIyTjlaamZ0LSF+ezAwN31+LmpzJztcbmltcG9ydCB7IGogYXMgakEsIHEgYXMgcUEsIFogYXMgWkEsIHogYXMgekEsIHkgYXMgeV8sIGEgYXMgWmUsIFEgYXMgUUEsIHggYXMgeEEsIHAgYXMgcF8sIFMgYXMgU3IsIE8gfSBmcm9tICcuL3VybC1EZ0FZeEJEai0hfnswMDh9fi5qcyc7XG5pbXBvcnQgeyBGLCBIIGFzIEgkMSwgWSB9IGZyb20gJy4vdXRpbHMtdE1wN1k0ekYtIX57MDA5fX4uanMnO1xuaW1wb3J0IHsgbCB9IGZyb20gJy4vdXRpbHMtQkdlZnRUdmstIX57MDBhfX4uanMnO1xuaW1wb3J0IHsgVCwgeCwgUiwgcywgYiBhcyBiJDEgfSBmcm9tICcuL3V0aWxzLTE5WGgwQzE4LSF+ezAwNX1+LmpzJztcbmltcG9ydCB7IEcgYXMgR2UsIFUgYXMgVWUsIHMgYXMgc3QgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcblxudmFyIHk7XG4oZnVuY3Rpb24oYSkge1xuICBhLkNPTVBPTkVOVCA9IFwiY29tcG9uZW50XCIsIGEuSFRUUF9FUlJPUl9OQU1FID0gXCJodHRwLmVycm9yX25hbWVcIiwgYS5IVFRQX1NUQVRVU19URVhUID0gXCJodHRwLnN0YXR1c190ZXh0XCI7XG59KSh5IHx8ICh5ID0ge30pKTtcbnZhciBuZSA9IGZ1bmN0aW9uKGEsIG8sIGUsIHIpIHtcbiAgZnVuY3Rpb24gbih0KSB7XG4gICAgcmV0dXJuIHQgaW5zdGFuY2VvZiBlID8gdCA6IG5ldyBlKGZ1bmN0aW9uKGkpIHtcbiAgICAgIGkodCk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoZSB8fCAoZSA9IFByb21pc2UpKShmdW5jdGlvbih0LCBpKSB7XG4gICAgZnVuY3Rpb24gcyhjKSB7XG4gICAgICB0cnkge1xuICAgICAgICB1KHIubmV4dChjKSk7XG4gICAgICB9IGNhdGNoIChoKSB7XG4gICAgICAgIGkoaCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGYoYykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdShyLnRocm93KGMpKTtcbiAgICAgIH0gY2F0Y2ggKGgpIHtcbiAgICAgICAgaShoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdShjKSB7XG4gICAgICBjLmRvbmUgPyB0KGMudmFsdWUpIDogbihjLnZhbHVlKS50aGVuKHMsIGYpO1xuICAgIH1cbiAgICB1KChyID0gci5hcHBseShhLCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufSwgYWUgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdO1xuICAgIHJldHVybiB0WzFdO1xuICB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCByLCBuLCB0LCBpO1xuICByZXR1cm4gaSA9IHsgbmV4dDogcygwKSwgdGhyb3c6IHMoMSksIHJldHVybjogcygyKSB9LCB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiAoaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pLCBpO1xuICBmdW5jdGlvbiBzKHUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oYykge1xuICAgICAgcmV0dXJuIGYoW3UsIGNdKTtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIGYodSkge1xuICAgIGlmIChyKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICBmb3IgKDsgZTsgKSB0cnkge1xuICAgICAgaWYgKHIgPSAxLCBuICYmICh0ID0gdVswXSAmIDIgPyBuLnJldHVybiA6IHVbMF0gPyBuLnRocm93IHx8ICgodCA9IG4ucmV0dXJuKSAmJiB0LmNhbGwobiksIDApIDogbi5uZXh0KSAmJiAhKHQgPSB0LmNhbGwobiwgdVsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgc3dpdGNoIChuID0gMCwgdCAmJiAodSA9IFt1WzBdICYgMiwgdC52YWx1ZV0pLCB1WzBdKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHQgPSB1O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcmV0dXJuIGUubGFiZWwrKywgeyB2YWx1ZTogdVsxXSwgZG9uZTogITEgfTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGUubGFiZWwrKywgbiA9IHVbMV0sIHUgPSBbMF07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICB1ID0gZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAodCA9IGUudHJ5cywgISh0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKHVbMF0gPT09IDYgfHwgdVswXSA9PT0gMikpIHtcbiAgICAgICAgICAgIGUgPSAwO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSAzICYmICghdCB8fCB1WzFdID4gdFswXSAmJiB1WzFdIDwgdFszXSkpIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB1WzFdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSA2ICYmIGUubGFiZWwgPCB0WzFdKSB7XG4gICAgICAgICAgICBlLmxhYmVsID0gdFsxXSwgdCA9IHU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHQgJiYgZS5sYWJlbCA8IHRbMl0pIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB0WzJdLCBlLm9wcy5wdXNoKHUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRbMl0gJiYgZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHUgPSBvLmNhbGwoYSwgZSk7XG4gICAgfSBjYXRjaCAoYykge1xuICAgICAgdSA9IFs2LCBjXSwgbiA9IDA7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHIgPSB0ID0gMDtcbiAgICB9XG4gICAgaWYgKHVbMF0gJiA1KSB0aHJvdyB1WzFdO1xuICAgIHJldHVybiB7IHZhbHVlOiB1WzBdID8gdVsxXSA6IHZvaWQgMCwgZG9uZTogITAgfTtcbiAgfVxufSwgaWUgPSBmdW5jdGlvbihhKSB7XG4gIHZhciBvID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBlID0gbyAmJiBhW29dLCByID0gMDtcbiAgaWYgKGUpIHJldHVybiBlLmNhbGwoYSk7XG4gIGlmIChhICYmIHR5cGVvZiBhLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIGEgJiYgciA+PSBhLmxlbmd0aCAmJiAoYSA9IHZvaWQgMCksIHsgdmFsdWU6IGEgJiYgYVtyKytdLCBkb25lOiAhYSB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihvID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgb2UgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgYVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiBhO1xuICB2YXIgciA9IGUuY2FsbChhKSwgbiwgdCA9IFtdLCBpO1xuICB0cnkge1xuICAgIGZvciAoOyAobyA9PT0gdm9pZCAwIHx8IG8tLSA+IDApICYmICEobiA9IHIubmV4dCgpKS5kb25lOyApIHQucHVzaChuLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGkgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG4gJiYgIW4uZG9uZSAmJiAoZSA9IHIucmV0dXJuKSAmJiBlLmNhbGwocik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChpKSB0aHJvdyBpLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIFUgPSByLmNyZWF0ZUNvbXBvbmVudExvZ2dlcih7XG4gIG5hbWVzcGFjZTogXCJAb3BlbnRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWluc3RydW1lbnRhdGlvbi1mZXRjaC91dGlsc1wiXG59KTtcbmZ1bmN0aW9uIHNlKCkge1xuICBmb3IgKHZhciBhID0gW10sIG8gPSAwOyBvIDwgYXJndW1lbnRzLmxlbmd0aDsgbysrKVxuICAgIGFbb10gPSBhcmd1bWVudHNbb107XG4gIGlmIChhWzBdIGluc3RhbmNlb2YgVVJMIHx8IHR5cGVvZiBhWzBdID09IFwic3RyaW5nXCIpIHtcbiAgICB2YXIgZSA9IGFbMV07XG4gICAgaWYgKCEoZSAhPSBudWxsICYmIGUuYm9keSkpXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgaWYgKGUuYm9keSBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtKSB7XG4gICAgICB2YXIgciA9IHVlKGUuYm9keSksIG4gPSByLmJvZHksIHQgPSByLmxlbmd0aDtcbiAgICAgIHJldHVybiBlLmJvZHkgPSBuLCB0O1xuICAgIH0gZWxzZVxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmZShlLmJvZHkpKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgaSA9IGFbMF07XG4gICAgcmV0dXJuIGkgIT0gbnVsbCAmJiBpLmJvZHkgPyBpLmNsb25lKCkudGV4dCgpLnRoZW4oZnVuY3Rpb24ocykge1xuICAgICAgcmV0dXJuIGIocyk7XG4gICAgfSkgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxufVxuZnVuY3Rpb24gdWUoYSkge1xuICBpZiAoIWEucGlwZVRocm91Z2gpXG4gICAgcmV0dXJuIFUud2FybihcIlBsYXRmb3JtIGhhcyBSZWFkYWJsZVN0cmVhbSBidXQgbm90IHBpcGVUaHJvdWdoIVwiKSwge1xuICAgICAgYm9keTogYSxcbiAgICAgIGxlbmd0aDogUHJvbWlzZS5yZXNvbHZlKHZvaWQgMClcbiAgICB9O1xuICB2YXIgbyA9IDAsIGUsIHIgPSBuZXcgUHJvbWlzZShmdW5jdGlvbih0KSB7XG4gICAgZSA9IHQ7XG4gIH0pLCBuID0gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgc3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIH0sXG4gICAgdHJhbnNmb3JtOiBmdW5jdGlvbih0LCBpKSB7XG4gICAgICByZXR1cm4gbmUodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcztcbiAgICAgICAgcmV0dXJuIGFlKHRoaXMsIGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgICBzd2l0Y2ggKGYubGFiZWwpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgcmV0dXJuIFs0LCB0XTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgcmV0dXJuIHMgPSBmLnNlbnQoKSwgbyArPSBzLmJ5dGVMZW5ndGgsIGkuZW5xdWV1ZSh0KSwgW1xuICAgICAgICAgICAgICAgIDJcbiAgICAgICAgICAgICAgICAvKnJldHVybiovXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZmx1c2g6IGZ1bmN0aW9uKCkge1xuICAgICAgZShvKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGJvZHk6IGEucGlwZVRocm91Z2gobiksXG4gICAgbGVuZ3RoOiByXG4gIH07XG59XG5mdW5jdGlvbiBmZShhKSB7XG4gIGlmICh0eXBlb2YgRG9jdW1lbnQgPCBcInVcIiAmJiBhIGluc3RhbmNlb2YgRG9jdW1lbnQpXG4gICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoZG9jdW1lbnQpLmxlbmd0aDtcbiAgaWYgKGEgaW5zdGFuY2VvZiBCbG9iKVxuICAgIHJldHVybiBhLnNpemU7XG4gIGlmIChhLmJ5dGVMZW5ndGggIT09IHZvaWQgMClcbiAgICByZXR1cm4gYS5ieXRlTGVuZ3RoO1xuICBpZiAoYSBpbnN0YW5jZW9mIEZvcm1EYXRhKVxuICAgIHJldHVybiBsZShhKTtcbiAgaWYgKGEgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIGIoYS50b1N0cmluZygpKTtcbiAgaWYgKHR5cGVvZiBhID09IFwic3RyaW5nXCIpXG4gICAgcmV0dXJuIGIoYSk7XG4gIFUud2FybihcInVua25vd24gYm9keSB0eXBlXCIpO1xufVxudmFyIGNlID0gbmV3IFRleHRFbmNvZGVyKCk7XG5mdW5jdGlvbiBiKGEpIHtcbiAgcmV0dXJuIGNlLmVuY29kZShhKS5ieXRlTGVuZ3RoO1xufVxuZnVuY3Rpb24gbGUoYSkge1xuICB2YXIgbywgZSwgciA9IDA7XG4gIHRyeSB7XG4gICAgZm9yICh2YXIgbiA9IGllKGEuZW50cmllcygpKSwgdCA9IG4ubmV4dCgpOyAhdC5kb25lOyB0ID0gbi5uZXh0KCkpIHtcbiAgICAgIHZhciBpID0gb2UodC52YWx1ZSwgMiksIHMgPSBpWzBdLCBmID0gaVsxXTtcbiAgICAgIHIgKz0gcy5sZW5ndGgsIGYgaW5zdGFuY2VvZiBCbG9iID8gciArPSBmLnNpemUgOiByICs9IGYubGVuZ3RoO1xuICAgIH1cbiAgfSBjYXRjaCAodSkge1xuICAgIG8gPSB7IGVycm9yOiB1IH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIHQgJiYgIXQuZG9uZSAmJiAoZSA9IG4ucmV0dXJuKSAmJiBlLmNhbGwobik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChvKSB0aHJvdyBvLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcjtcbn1cbnZhciBrID0gXCIwLjU3LjBcIiwgZGUgPSAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7XG4gIHZhciBhID0gZnVuY3Rpb24obywgZSkge1xuICAgIHJldHVybiBhID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24ociwgbikge1xuICAgICAgci5fX3Byb3RvX18gPSBuO1xuICAgIH0gfHwgZnVuY3Rpb24ociwgbikge1xuICAgICAgZm9yICh2YXIgdCBpbiBuKSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobiwgdCkgJiYgKHJbdF0gPSBuW3RdKTtcbiAgICB9LCBhKG8sIGUpO1xuICB9O1xuICByZXR1cm4gZnVuY3Rpb24obywgZSkge1xuICAgIGlmICh0eXBlb2YgZSAhPSBcImZ1bmN0aW9uXCIgJiYgZSAhPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGUpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICBhKG8sIGUpO1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yID0gbztcbiAgICB9XG4gICAgby5wcm90b3R5cGUgPSBlID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShlKSA6IChyLnByb3RvdHlwZSA9IGUucHJvdG90eXBlLCBuZXcgcigpKTtcbiAgfTtcbn0oKSwgaGUgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgYVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiBhO1xuICB2YXIgciA9IGUuY2FsbChhKSwgbiwgdCA9IFtdLCBpO1xuICB0cnkge1xuICAgIGZvciAoOyAobyA9PT0gdm9pZCAwIHx8IG8tLSA+IDApICYmICEobiA9IHIubmV4dCgpKS5kb25lOyApIHQucHVzaChuLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGkgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG4gJiYgIW4uZG9uZSAmJiAoZSA9IHIucmV0dXJuKSAmJiBlLmNhbGwocik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChpKSB0aHJvdyBpLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIHBlID0gZnVuY3Rpb24oYSwgbywgZSkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgciA9IDAsIG4gPSBvLmxlbmd0aCwgdDsgciA8IG47IHIrKylcbiAgICAodCB8fCAhKHIgaW4gbykpICYmICh0IHx8ICh0ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobywgMCwgcikpLCB0W3JdID0gb1tyXSk7XG4gIHJldHVybiBhLmNvbmNhdCh0IHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG8pKTtcbn0sIFMsIHZlID0gMzAwLCBIID0gdHlwZW9mIHByb2Nlc3MgPT0gXCJvYmplY3RcIiAmJiAoKFMgPSBwcm9jZXNzLnJlbGVhc2UpID09PSBudWxsIHx8IFMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IFMubmFtZSkgPT09IFwibm9kZVwiLCBiZSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbihhKSB7XG4gICAgZGUobywgYSk7XG4gICAgZnVuY3Rpb24gbyhlKSB7XG4gICAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSk7XG4gICAgICB2YXIgciA9IGEuY2FsbCh0aGlzLCBcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1mZXRjaFwiLCBrLCBlKSB8fCB0aGlzO1xuICAgICAgcmV0dXJuIHIuY29tcG9uZW50ID0gXCJmZXRjaFwiLCByLnZlcnNpb24gPSBrLCByLm1vZHVsZU5hbWUgPSByLmNvbXBvbmVudCwgci5fdXNlZFJlc291cmNlcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha1NldCgpLCByLl90YXNrc0NvdW50ID0gMCwgcjtcbiAgICB9XG4gICAgcmV0dXJuIG8ucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbigpIHtcbiAgICB9LCBvLnByb3RvdHlwZS5fYWRkQ2hpbGRTcGFuID0gZnVuY3Rpb24oZSwgcikge1xuICAgICAgdmFyIG4gPSB0aGlzLnRyYWNlci5zdGFydFNwYW4oXCJDT1JTIFByZWZsaWdodFwiLCB7XG4gICAgICAgIHN0YXJ0VGltZTogcltULkZFVENIX1NUQVJUXVxuICAgICAgfSwgR2Uuc2V0U3BhbihVZS5hY3RpdmUoKSwgZSkpO1xuICAgICAgeChuLCByLCB0aGlzLmdldENvbmZpZygpLmlnbm9yZU5ldHdvcmtFdmVudHMpLCBuLmVuZChyW1QuUkVTUE9OU0VfRU5EXSk7XG4gICAgfSwgby5wcm90b3R5cGUuX2FkZEZpbmFsU3BhbkF0dHJpYnV0ZXMgPSBmdW5jdGlvbihlLCByKSB7XG4gICAgICB2YXIgbiA9IFIoci51cmwpO1xuICAgICAgZS5zZXRBdHRyaWJ1dGUoakEsIHIuc3RhdHVzKSwgci5zdGF0dXNUZXh0ICE9IG51bGwgJiYgZS5zZXRBdHRyaWJ1dGUoeS5IVFRQX1NUQVRVU19URVhULCByLnN0YXR1c1RleHQpLCBlLnNldEF0dHJpYnV0ZShxQSwgbi5ob3N0KSwgZS5zZXRBdHRyaWJ1dGUoWkEsIG4ucHJvdG9jb2wucmVwbGFjZShcIjpcIiwgXCJcIikpLCB0eXBlb2YgbmF2aWdhdG9yIDwgXCJ1XCIgJiYgZS5zZXRBdHRyaWJ1dGUoekEsIG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9hZGRIZWFkZXJzID0gZnVuY3Rpb24oZSwgcikge1xuICAgICAgaWYgKCFzKHIsIHRoaXMuZ2V0Q29uZmlnKCkucHJvcGFnYXRlVHJhY2VIZWFkZXJDb3JzVXJscykpIHtcbiAgICAgICAgdmFyIG4gPSB7fTtcbiAgICAgICAgeV8uaW5qZWN0KFVlLmFjdGl2ZSgpLCBuKSwgT2JqZWN0LmtleXMobikubGVuZ3RoID4gMCAmJiB0aGlzLl9kaWFnLmRlYnVnKFwiaGVhZGVycyBpbmplY3Qgc2tpcHBlZCBkdWUgdG8gQ09SUyBwb2xpY3lcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChlIGluc3RhbmNlb2YgUmVxdWVzdClcbiAgICAgICAgeV8uaW5qZWN0KFVlLmFjdGl2ZSgpLCBlLmhlYWRlcnMsIHtcbiAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHQsIGksIHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0LnNldChpLCB0eXBlb2YgcyA9PSBcInN0cmluZ1wiID8gcyA6IFN0cmluZyhzKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIGVsc2UgaWYgKGUuaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpXG4gICAgICAgIHlfLmluamVjdChVZS5hY3RpdmUoKSwgZS5oZWFkZXJzLCB7XG4gICAgICAgICAgc2V0OiBmdW5jdGlvbih0LCBpLCBzKSB7XG4gICAgICAgICAgICByZXR1cm4gdC5zZXQoaSwgdHlwZW9mIHMgPT0gXCJzdHJpbmdcIiA/IHMgOiBTdHJpbmcocykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICBlbHNlIGlmIChlLmhlYWRlcnMgaW5zdGFuY2VvZiBNYXApXG4gICAgICAgIHlfLmluamVjdChVZS5hY3RpdmUoKSwgZS5oZWFkZXJzLCB7XG4gICAgICAgICAgc2V0OiBmdW5jdGlvbih0LCBpLCBzKSB7XG4gICAgICAgICAgICByZXR1cm4gdC5zZXQoaSwgdHlwZW9mIHMgPT0gXCJzdHJpbmdcIiA/IHMgOiBTdHJpbmcocykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIG4gPSB7fTtcbiAgICAgICAgeV8uaW5qZWN0KFVlLmFjdGl2ZSgpLCBuKSwgZS5oZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgbiwgZS5oZWFkZXJzIHx8IHt9KTtcbiAgICAgIH1cbiAgICB9LCBvLnByb3RvdHlwZS5fY2xlYXJSZXNvdXJjZXMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMuX3Rhc2tzQ291bnQgPT09IDAgJiYgdGhpcy5nZXRDb25maWcoKS5jbGVhclRpbWluZ1Jlc291cmNlcyAmJiAocGVyZm9ybWFuY2UuY2xlYXJSZXNvdXJjZVRpbWluZ3MoKSwgdGhpcy5fdXNlZFJlc291cmNlcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha1NldCgpKTtcbiAgICB9LCBvLnByb3RvdHlwZS5fY3JlYXRlU3BhbiA9IGZ1bmN0aW9uKGUsIHIpIHtcbiAgICAgIHZhciBuO1xuICAgICAgaWYgKHIgPT09IHZvaWQgMCAmJiAociA9IHt9KSwgWmUoZSwgdGhpcy5nZXRDb25maWcoKS5pZ25vcmVVcmxzKSkge1xuICAgICAgICB0aGlzLl9kaWFnLmRlYnVnKFwiaWdub3Jpbmcgc3BhbiBhcyB1cmwgbWF0Y2hlcyBpZ25vcmVkIHVybFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIHQgPSAoci5tZXRob2QgfHwgXCJHRVRcIikudG9VcHBlckNhc2UoKSwgaSA9IFwiSFRUUCBcIiArIHQ7XG4gICAgICByZXR1cm4gdGhpcy50cmFjZXIuc3RhcnRTcGFuKGksIHtcbiAgICAgICAga2luZDogc3QuQ0xJRU5ULFxuICAgICAgICBhdHRyaWJ1dGVzOiAobiA9IHt9LCBuW3kuQ09NUE9ORU5UXSA9IHRoaXMubW9kdWxlTmFtZSwgbltRQV0gPSB0LCBuW3hBXSA9IGUsIG4pXG4gICAgICB9KTtcbiAgICB9LCBvLnByb3RvdHlwZS5fZmluZFJlc291cmNlQW5kQWRkTmV0d29ya0V2ZW50cyA9IGZ1bmN0aW9uKGUsIHIsIG4pIHtcbiAgICAgIHZhciB0ID0gci5lbnRyaWVzO1xuICAgICAgaWYgKCF0Lmxlbmd0aCkge1xuICAgICAgICBpZiAoIXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUpXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0ID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShcInJlc291cmNlXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGkgPSBiJDEoci5zcGFuVXJsLCByLnN0YXJ0VGltZSwgbiwgdCwgdGhpcy5fdXNlZFJlc291cmNlcywgXCJmZXRjaFwiKTtcbiAgICAgIGlmIChpLm1haW5SZXF1ZXN0KSB7XG4gICAgICAgIHZhciBzID0gaS5tYWluUmVxdWVzdDtcbiAgICAgICAgdGhpcy5fbWFya1Jlc291cmNlQXNVc2VkKHMpO1xuICAgICAgICB2YXIgZiA9IGkuY29yc1ByZUZsaWdodFJlcXVlc3Q7XG4gICAgICAgIGYgJiYgKHRoaXMuX2FkZENoaWxkU3BhbihlLCBmKSwgdGhpcy5fbWFya1Jlc291cmNlQXNVc2VkKGYpKSwgeChlLCBzLCB0aGlzLmdldENvbmZpZygpLmlnbm9yZU5ldHdvcmtFdmVudHMpO1xuICAgICAgfVxuICAgIH0sIG8ucHJvdG90eXBlLl9tYXJrUmVzb3VyY2VBc1VzZWQgPSBmdW5jdGlvbihlKSB7XG4gICAgICB0aGlzLl91c2VkUmVzb3VyY2VzLmFkZChlKTtcbiAgICB9LCBvLnByb3RvdHlwZS5fZW5kU3BhbiA9IGZ1bmN0aW9uKGUsIHIsIG4pIHtcbiAgICAgIHZhciB0ID0gdGhpcywgaSA9IE8oRGF0ZS5ub3coKSksIHMgPSBwXygpO1xuICAgICAgdGhpcy5fYWRkRmluYWxTcGFuQXR0cmlidXRlcyhlLCBuKSwgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGY7XG4gICAgICAgIChmID0gci5vYnNlcnZlcikgPT09IG51bGwgfHwgZiA9PT0gdm9pZCAwIHx8IGYuZGlzY29ubmVjdCgpLCB0Ll9maW5kUmVzb3VyY2VBbmRBZGROZXR3b3JrRXZlbnRzKGUsIHIsIHMpLCB0Ll90YXNrc0NvdW50LS0sIHQuX2NsZWFyUmVzb3VyY2VzKCksIGUuZW5kKGkpO1xuICAgICAgfSwgdmUpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9wYXRjaENvbnN0cnVjdG9yID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgZSA9IHRoaXM7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ocikge1xuICAgICAgICB2YXIgbiA9IGU7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICBmb3IgKHZhciBpID0gW10sIHMgPSAwOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKVxuICAgICAgICAgICAgaVtzXSA9IGFyZ3VtZW50c1tzXTtcbiAgICAgICAgICB2YXIgZiA9IHRoaXMsIHUgPSBSKGlbMF0gaW5zdGFuY2VvZiBSZXF1ZXN0ID8gaVswXS51cmwgOiBTdHJpbmcoaVswXSkpLmhyZWYsIGMgPSBpWzBdIGluc3RhbmNlb2YgUmVxdWVzdCA/IGlbMF0gOiBpWzFdIHx8IHt9LCBoID0gbi5fY3JlYXRlU3Bhbih1LCBjKTtcbiAgICAgICAgICBpZiAoIWgpXG4gICAgICAgICAgICByZXR1cm4gci5hcHBseSh0aGlzLCBpKTtcbiAgICAgICAgICB2YXIgbSA9IG4uX3ByZXBhcmVTcGFuRGF0YSh1KTtcbiAgICAgICAgICBuLmdldENvbmZpZygpLm1lYXN1cmVSZXF1ZXN0U2l6ZSAmJiBzZS5hcHBseSh2b2lkIDAsIHBlKFtdLCBoZShpKSwgITEpKS50aGVuKGZ1bmN0aW9uKGwpIHtcbiAgICAgICAgICAgIGwgJiYgaC5zZXRBdHRyaWJ1dGUoU3IsIGwpO1xuICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGwpIHtcbiAgICAgICAgICAgIG4uX2RpYWcud2FybihcImdldEZldGNoQm9keUxlbmd0aFwiLCBsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBmdW5jdGlvbiBFKGwsIGQpIHtcbiAgICAgICAgICAgIG4uX2FwcGx5QXR0cmlidXRlc0FmdGVyRmV0Y2gobCwgYywgZCksIG4uX2VuZFNwYW4obCwgbSwge1xuICAgICAgICAgICAgICBzdGF0dXM6IGQuc3RhdHVzIHx8IDAsXG4gICAgICAgICAgICAgIHN0YXR1c1RleHQ6IGQubWVzc2FnZSxcbiAgICAgICAgICAgICAgdXJsOiB1XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gdyhsLCBkKSB7XG4gICAgICAgICAgICBuLl9hcHBseUF0dHJpYnV0ZXNBZnRlckZldGNoKGwsIGMsIGQpLCBkLnN0YXR1cyA+PSAyMDAgJiYgZC5zdGF0dXMgPCA0MDAgPyBuLl9lbmRTcGFuKGwsIG0sIGQpIDogbi5fZW5kU3BhbihsLCBtLCB7XG4gICAgICAgICAgICAgIHN0YXR1czogZC5zdGF0dXMsXG4gICAgICAgICAgICAgIHN0YXR1c1RleHQ6IGQuc3RhdHVzVGV4dCxcbiAgICAgICAgICAgICAgdXJsOiB1XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gTShsLCBkLCB2KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB2YXIgaiA9IHYuY2xvbmUoKSwgRCA9IHYuY2xvbmUoKSwgUiA9IGouYm9keTtcbiAgICAgICAgICAgICAgaWYgKFIpIHtcbiAgICAgICAgICAgICAgICB2YXIgQiA9IFIuZ2V0UmVhZGVyKCksIEEgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgIEIucmVhZCgpLnRoZW4oZnVuY3Rpb24oZykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgRiA9IGcuZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgRiA/IHcobCwgRCkgOiBBKCk7XG4gICAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbihnKSB7XG4gICAgICAgICAgICAgICAgICAgIEUobCwgZyk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIEEoKTtcbiAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgICAgdyhsLCB2KTtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgIGQodik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGZ1bmN0aW9uIEwobCwgZCwgdikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgRShsLCB2KTtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgIGQodik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihsLCBkKSB7XG4gICAgICAgICAgICByZXR1cm4gVWUud2l0aChHZS5zZXRTcGFuKFVlLmFjdGl2ZSgpLCBoKSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuLl9hZGRIZWFkZXJzKGMsIHUpLCBuLl90YXNrc0NvdW50KyssIHIuYXBwbHkoZiwgYyBpbnN0YW5jZW9mIFJlcXVlc3QgPyBbY10gOiBbdSwgY10pLnRoZW4oTS5iaW5kKGYsIGgsIGwpLCBMLmJpbmQoZiwgaCwgZCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH0sIG8ucHJvdG90eXBlLl9hcHBseUF0dHJpYnV0ZXNBZnRlckZldGNoID0gZnVuY3Rpb24oZSwgciwgbikge1xuICAgICAgdmFyIHQgPSB0aGlzLCBpID0gdGhpcy5nZXRDb25maWcoKS5hcHBseUN1c3RvbUF0dHJpYnV0ZXNPblNwYW47XG4gICAgICBpICYmIEYoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpKGUsIHIsIG4pO1xuICAgICAgfSwgZnVuY3Rpb24ocykge1xuICAgICAgICBzICYmIHQuX2RpYWcuZXJyb3IoXCJhcHBseUN1c3RvbUF0dHJpYnV0ZXNPblNwYW5cIiwgcyk7XG4gICAgICB9LCAhMCk7XG4gICAgfSwgby5wcm90b3R5cGUuX3ByZXBhcmVTcGFuRGF0YSA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHZhciByID0gcF8oKSwgbiA9IFtdO1xuICAgICAgaWYgKHR5cGVvZiBQZXJmb3JtYW5jZU9ic2VydmVyICE9IFwiZnVuY3Rpb25cIilcbiAgICAgICAgcmV0dXJuIHsgZW50cmllczogbiwgc3RhcnRUaW1lOiByLCBzcGFuVXJsOiBlIH07XG4gICAgICB2YXIgdCA9IG5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKGZ1bmN0aW9uKGkpIHtcbiAgICAgICAgdmFyIHMgPSBpLmdldEVudHJpZXMoKTtcbiAgICAgICAgcy5mb3JFYWNoKGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgICBmLmluaXRpYXRvclR5cGUgPT09IFwiZmV0Y2hcIiAmJiBmLm5hbWUgPT09IGUgJiYgbi5wdXNoKGYpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHQub2JzZXJ2ZSh7XG4gICAgICAgIGVudHJ5VHlwZXM6IFtcInJlc291cmNlXCJdXG4gICAgICB9KSwgeyBlbnRyaWVzOiBuLCBvYnNlcnZlcjogdCwgc3RhcnRUaW1lOiByLCBzcGFuVXJsOiBlIH07XG4gICAgfSwgby5wcm90b3R5cGUuZW5hYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoSCkge1xuICAgICAgICB0aGlzLl9kaWFnLndhcm4oXCJ0aGlzIGluc3RydW1lbnRhdGlvbiBpcyBpbnRlbmRlZCBmb3Igd2ViIHVzYWdlIG9ubHksIGl0IGRvZXMgbm90IGluc3RydW1lbnQgTm9kZS5qcydzIGZldGNoKClcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIEgkMShmZXRjaCkgJiYgKHRoaXMuX3Vud3JhcChsLCBcImZldGNoXCIpLCB0aGlzLl9kaWFnLmRlYnVnKFwicmVtb3ZpbmcgcHJldmlvdXMgcGF0Y2ggZm9yIGNvbnN0cnVjdG9yXCIpKSwgdGhpcy5fd3JhcChsLCBcImZldGNoXCIsIHRoaXMuX3BhdGNoQ29uc3RydWN0b3IoKSk7XG4gICAgfSwgby5wcm90b3R5cGUuZGlzYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgSCB8fCAodGhpcy5fdW53cmFwKGwsIFwiZmV0Y2hcIiksIHRoaXMuX3VzZWRSZXNvdXJjZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtTZXQoKSk7XG4gICAgfSwgbztcbiAgfShZKVxuKTtcblxuZXhwb3J0IHsgYmUgYXMgRmV0Y2hJbnN0cnVtZW50YXRpb24gfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUFBLFNBQVM7QUFDbEIsU0FBUyxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUFDLFNBQVM7QUFDNUcsU0FBUyxLQUFBQyxHQUFHLEtBQUtDLEdBQUssS0FBQUMsU0FBUztBQUMvQixTQUFTLEtBQUFDLFNBQVM7QUFDbEIsU0FBUyxLQUFBQyxHQUFHLEtBQUFDLEdBQUcsS0FBQUMsR0FBRyxLQUFBQyxHQUFHLEtBQUtDLFVBQVc7QUFDckMsU0FBUyxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsVUFBVTtBQUUxQyxJQUFJQztBQUFBLENBQ0gsU0FBU0MsR0FBRztBQUNYLEVBQUFBLEVBQUUsWUFBWSxhQUFhQSxFQUFFLGtCQUFrQixtQkFBbUJBLEVBQUUsbUJBQW1CO0FBQ3pGLEdBQUdELE1BQU1BLElBQUksQ0FBQyxFQUFFO0FBQ2hCLElBQUlFLEtBQUssU0FBU0QsR0FBR0UsR0FBR0MsR0FBRzVCLEdBQUc7QUFDNUIsV0FBUzZCLEVBQUVDLEdBQUc7QUFDWixXQUFPQSxhQUFhRixJQUFJRSxJQUFJLElBQUlGLEVBQUUsU0FBU0csR0FBRztBQUM1QyxNQUFBQSxFQUFFRCxDQUFDO0FBQUEsSUFDTCxDQUFDO0FBQUEsRUFDSDtBQUNBLFNBQU8sS0FBS0YsTUFBTUEsSUFBSSxVQUFVLFNBQVNFLEdBQUdDLEdBQUc7QUFDN0MsYUFBU1osRUFBRWEsR0FBRztBQUNaLFVBQUk7QUFDRixVQUFFaEMsRUFBRSxLQUFLZ0MsQ0FB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LEdBQUcsRUFBRSxTQUFTRCxHQUFHLFVBQVVDLEdBQUcsV0FBVzlCLEdBQUcsU0FBUzRCLEVBQUU7QUFBQSxJQUMxRCxHQUFHRCxFQUFFLFVBQVUsU0FBUyxXQUFXO0FBQ2pDLFVBQUl1QixHQUFHO0FBQ0wsYUFBSyxNQUFNLEtBQUssK0ZBQStGO0FBQy9HO0FBQUEsTUFDRjtBQUNBLE1BQUFyQyxFQUFJLEtBQUssTUFBTSxLQUFLLFFBQVFFLEdBQUcsT0FBTyxHQUFHLEtBQUssTUFBTSxNQUFNLHlDQUF5QyxJQUFJLEtBQUssTUFBTUEsR0FBRyxTQUFTLEtBQUssa0JBQWtCLENBQUM7QUFBQSxJQUN4SixHQUFHWSxFQUFFLFVBQVUsVUFBVSxXQUFXO0FBQ2xDLE1BQUF1QixNQUFNLEtBQUssUUFBUW5DLEdBQUcsT0FBTyxHQUFHLEtBQUssaUJBQWlDLG9CQUFJLFFBQVE7QUFBQSxJQUNwRixHQUFHWTtBQUFBLEVBQ0wsRUFBRWIsQ0FBQztBQUFBOyIsCiAgIm5hbWVzIjogWyJyIiwgImpBIiwgInFBIiwgIlpBIiwgInpBIiwgInlfIiwgIlplIiwgIlFBIiwgInhBIiwgInBfIiwgIlNyIiwgIk8iLCAiRiIsICJIJDEiLCAiWSIsICJsIiwgIlQiLCAieCIsICJSIiwgInMiLCAiYiQxIiwgIkdlIiwgIlVlIiwgInN0IiwgInkiLCAiYSIsICJuZSIsICJvIiwgImUiLCAibiIsICJ0IiwgImkiLCAiYyIsICJoIiwgImYiLCAiYWUiLCAiaWUiLCAib2UiLCAic2UiLCAidWUiLCAiZmUiLCAiYiIsICJsZSIsICJjZSIsICJrIiwgImRlIiwgImhlIiwgInBlIiwgIlMiLCAidmUiLCAiSCIsICJiZSIsICJ1IiwgIm0iLCAiRSIsICJkIiwgIk0iLCAidiIsICJqIiwgIkQiLCAiQiIsICJBIiwgImciLCAiTCJdCn0K
431
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtREs1WmRRNWktIX57MDA2fX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLURVSFl1a01XLSF+ezAwN31+LmpzJztcbmltcG9ydCB7IGogYXMgakEsIHEgYXMgcUEsIFogYXMgWkEsIHogYXMgekEsIHkgYXMgeV8sIGEgYXMgWmUsIFEgYXMgUUEsIHggYXMgeEEsIHAgYXMgcF8sIFMgYXMgU3IsIE8gfSBmcm9tICcuL3VybC12WllETERxdi0hfnswMDh9fi5qcyc7XG5pbXBvcnQgeyBGLCBIIGFzIEgkMSwgWSB9IGZyb20gJy4vdXRpbHMta2RHelljLTItIX57MDA5fX4uanMnO1xuaW1wb3J0IHsgbCB9IGZyb20gJy4vdXRpbHMtQkdlZnRUdmstIX57MDBhfX4uanMnO1xuaW1wb3J0IHsgVCwgeCwgUiwgcywgYiBhcyBiJDEgfSBmcm9tICcuL3V0aWxzLUI4N2VCbzM0LSF+ezAwNX1+LmpzJztcbmltcG9ydCB7IFUgYXMgVWUsIEwgYXMgTGUsIHIgYXMgcnQgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcblxudmFyIHk7XG4oZnVuY3Rpb24oYSkge1xuICBhLkNPTVBPTkVOVCA9IFwiY29tcG9uZW50XCIsIGEuSFRUUF9FUlJPUl9OQU1FID0gXCJodHRwLmVycm9yX25hbWVcIiwgYS5IVFRQX1NUQVRVU19URVhUID0gXCJodHRwLnN0YXR1c190ZXh0XCI7XG59KSh5IHx8ICh5ID0ge30pKTtcbnZhciBuZSA9IGZ1bmN0aW9uKGEsIG8sIGUsIHIpIHtcbiAgZnVuY3Rpb24gbih0KSB7XG4gICAgcmV0dXJuIHQgaW5zdGFuY2VvZiBlID8gdCA6IG5ldyBlKGZ1bmN0aW9uKGkpIHtcbiAgICAgIGkodCk7XG4gICAgfSk7XG4gIH1cbiAgcmV0dXJuIG5ldyAoZSB8fCAoZSA9IFByb21pc2UpKShmdW5jdGlvbih0LCBpKSB7XG4gICAgZnVuY3Rpb24gcyhjKSB7XG4gICAgICB0cnkge1xuICAgICAgICB1KHIubmV4dChjKSk7XG4gICAgICB9IGNhdGNoIChoKSB7XG4gICAgICAgIGkoaCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIGYoYykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdShyLnRocm93KGMpKTtcbiAgICAgIH0gY2F0Y2ggKGgpIHtcbiAgICAgICAgaShoKTtcbiAgICAgIH1cbiAgICB9XG4gICAgZnVuY3Rpb24gdShjKSB7XG4gICAgICBjLmRvbmUgPyB0KGMudmFsdWUpIDogbihjLnZhbHVlKS50aGVuKHMsIGYpO1xuICAgIH1cbiAgICB1KChyID0gci5hcHBseShhLCBbXSkpLm5leHQoKSk7XG4gIH0pO1xufSwgYWUgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0geyBsYWJlbDogMCwgc2VudDogZnVuY3Rpb24oKSB7XG4gICAgaWYgKHRbMF0gJiAxKSB0aHJvdyB0WzFdO1xuICAgIHJldHVybiB0WzFdO1xuICB9LCB0cnlzOiBbXSwgb3BzOiBbXSB9LCByLCBuLCB0LCBpO1xuICByZXR1cm4gaSA9IHsgbmV4dDogcygwKSwgdGhyb3c6IHMoMSksIHJldHVybjogcygyKSB9LCB0eXBlb2YgU3ltYm9sID09IFwiZnVuY3Rpb25cIiAmJiAoaVtTeW1ib2wuaXRlcmF0b3JdID0gZnVuY3Rpb24oKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pLCBpO1xuICBmdW5jdGlvbiBzKHUpIHtcbiAgICByZXR1cm4gZnVuY3Rpb24oYykge1xuICAgICAgcmV0dXJuIGYoW3UsIGNdKTtcbiAgICB9O1xuICB9XG4gIGZ1bmN0aW9uIGYodSkge1xuICAgIGlmIChyKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgZXhlY3V0aW5nLlwiKTtcbiAgICBmb3IgKDsgZTsgKSB0cnkge1xuICAgICAgaWYgKHIgPSAxLCBuICYmICh0ID0gdVswXSAmIDIgPyBuLnJldHVybiA6IHVbMF0gPyBuLnRocm93IHx8ICgodCA9IG4ucmV0dXJuKSAmJiB0LmNhbGwobiksIDApIDogbi5uZXh0KSAmJiAhKHQgPSB0LmNhbGwobiwgdVsxXSkpLmRvbmUpIHJldHVybiB0O1xuICAgICAgc3dpdGNoIChuID0gMCwgdCAmJiAodSA9IFt1WzBdICYgMiwgdC52YWx1ZV0pLCB1WzBdKSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIHQgPSB1O1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcmV0dXJuIGUubGFiZWwrKywgeyB2YWx1ZTogdVsxXSwgZG9uZTogITEgfTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGUubGFiZWwrKywgbiA9IHVbMV0sIHUgPSBbMF07XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNzpcbiAgICAgICAgICB1ID0gZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICBpZiAodCA9IGUudHJ5cywgISh0ID0gdC5sZW5ndGggPiAwICYmIHRbdC5sZW5ndGggLSAxXSkgJiYgKHVbMF0gPT09IDYgfHwgdVswXSA9PT0gMikpIHtcbiAgICAgICAgICAgIGUgPSAwO1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSAzICYmICghdCB8fCB1WzFdID4gdFswXSAmJiB1WzFdIDwgdFszXSkpIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB1WzFdO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh1WzBdID09PSA2ICYmIGUubGFiZWwgPCB0WzFdKSB7XG4gICAgICAgICAgICBlLmxhYmVsID0gdFsxXSwgdCA9IHU7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHQgJiYgZS5sYWJlbCA8IHRbMl0pIHtcbiAgICAgICAgICAgIGUubGFiZWwgPSB0WzJdLCBlLm9wcy5wdXNoKHUpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRbMl0gJiYgZS5vcHMucG9wKCksIGUudHJ5cy5wb3AoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHUgPSBvLmNhbGwoYSwgZSk7XG4gICAgfSBjYXRjaCAoYykge1xuICAgICAgdSA9IFs2LCBjXSwgbiA9IDA7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHIgPSB0ID0gMDtcbiAgICB9XG4gICAgaWYgKHVbMF0gJiA1KSB0aHJvdyB1WzFdO1xuICAgIHJldHVybiB7IHZhbHVlOiB1WzBdID8gdVsxXSA6IHZvaWQgMCwgZG9uZTogITAgfTtcbiAgfVxufSwgaWUgPSBmdW5jdGlvbihhKSB7XG4gIHZhciBvID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBlID0gbyAmJiBhW29dLCByID0gMDtcbiAgaWYgKGUpIHJldHVybiBlLmNhbGwoYSk7XG4gIGlmIChhICYmIHR5cGVvZiBhLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIGEgJiYgciA+PSBhLmxlbmd0aCAmJiAoYSA9IHZvaWQgMCksIHsgdmFsdWU6IGEgJiYgYVtyKytdLCBkb25lOiAhYSB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihvID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgb2UgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgYVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiBhO1xuICB2YXIgciA9IGUuY2FsbChhKSwgbiwgdCA9IFtdLCBpO1xuICB0cnkge1xuICAgIGZvciAoOyAobyA9PT0gdm9pZCAwIHx8IG8tLSA+IDApICYmICEobiA9IHIubmV4dCgpKS5kb25lOyApIHQucHVzaChuLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGkgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG4gJiYgIW4uZG9uZSAmJiAoZSA9IHIucmV0dXJuKSAmJiBlLmNhbGwocik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChpKSB0aHJvdyBpLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIFUgPSByLmNyZWF0ZUNvbXBvbmVudExvZ2dlcih7XG4gIG5hbWVzcGFjZTogXCJAb3BlbnRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWluc3RydW1lbnRhdGlvbi1mZXRjaC91dGlsc1wiXG59KTtcbmZ1bmN0aW9uIHNlKCkge1xuICBmb3IgKHZhciBhID0gW10sIG8gPSAwOyBvIDwgYXJndW1lbnRzLmxlbmd0aDsgbysrKVxuICAgIGFbb10gPSBhcmd1bWVudHNbb107XG4gIGlmIChhWzBdIGluc3RhbmNlb2YgVVJMIHx8IHR5cGVvZiBhWzBdID09IFwic3RyaW5nXCIpIHtcbiAgICB2YXIgZSA9IGFbMV07XG4gICAgaWYgKCEoZSAhPSBudWxsICYmIGUuYm9keSkpXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgaWYgKGUuYm9keSBpbnN0YW5jZW9mIFJlYWRhYmxlU3RyZWFtKSB7XG4gICAgICB2YXIgciA9IHVlKGUuYm9keSksIG4gPSByLmJvZHksIHQgPSByLmxlbmd0aDtcbiAgICAgIHJldHVybiBlLmJvZHkgPSBuLCB0O1xuICAgIH0gZWxzZVxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmZShlLmJvZHkpKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgaSA9IGFbMF07XG4gICAgcmV0dXJuIGkgIT0gbnVsbCAmJiBpLmJvZHkgPyBpLmNsb25lKCkudGV4dCgpLnRoZW4oZnVuY3Rpb24ocykge1xuICAgICAgcmV0dXJuIGIocyk7XG4gICAgfSkgOiBQcm9taXNlLnJlc29sdmUoKTtcbiAgfVxufVxuZnVuY3Rpb24gdWUoYSkge1xuICBpZiAoIWEucGlwZVRocm91Z2gpXG4gICAgcmV0dXJuIFUud2FybihcIlBsYXRmb3JtIGhhcyBSZWFkYWJsZVN0cmVhbSBidXQgbm90IHBpcGVUaHJvdWdoIVwiKSwge1xuICAgICAgYm9keTogYSxcbiAgICAgIGxlbmd0aDogUHJvbWlzZS5yZXNvbHZlKHZvaWQgMClcbiAgICB9O1xuICB2YXIgbyA9IDAsIGUsIHIgPSBuZXcgUHJvbWlzZShmdW5jdGlvbih0KSB7XG4gICAgZSA9IHQ7XG4gIH0pLCBuID0gbmV3IFRyYW5zZm9ybVN0cmVhbSh7XG4gICAgc3RhcnQ6IGZ1bmN0aW9uKCkge1xuICAgIH0sXG4gICAgdHJhbnNmb3JtOiBmdW5jdGlvbih0LCBpKSB7XG4gICAgICByZXR1cm4gbmUodGhpcywgdm9pZCAwLCB2b2lkIDAsIGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgcztcbiAgICAgICAgcmV0dXJuIGFlKHRoaXMsIGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgICBzd2l0Y2ggKGYubGFiZWwpIHtcbiAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgcmV0dXJuIFs0LCB0XTtcbiAgICAgICAgICAgIGNhc2UgMTpcbiAgICAgICAgICAgICAgcmV0dXJuIHMgPSBmLnNlbnQoKSwgbyArPSBzLmJ5dGVMZW5ndGgsIGkuZW5xdWV1ZSh0KSwgW1xuICAgICAgICAgICAgICAgIDJcbiAgICAgICAgICAgICAgICAvKnJldHVybiovXG4gICAgICAgICAgICAgIF07XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgZmx1c2g6IGZ1bmN0aW9uKCkge1xuICAgICAgZShvKTtcbiAgICB9XG4gIH0pO1xuICByZXR1cm4ge1xuICAgIGJvZHk6IGEucGlwZVRocm91Z2gobiksXG4gICAgbGVuZ3RoOiByXG4gIH07XG59XG5mdW5jdGlvbiBmZShhKSB7XG4gIGlmICh0eXBlb2YgRG9jdW1lbnQgPCBcInVcIiAmJiBhIGluc3RhbmNlb2YgRG9jdW1lbnQpXG4gICAgcmV0dXJuIG5ldyBYTUxTZXJpYWxpemVyKCkuc2VyaWFsaXplVG9TdHJpbmcoZG9jdW1lbnQpLmxlbmd0aDtcbiAgaWYgKGEgaW5zdGFuY2VvZiBCbG9iKVxuICAgIHJldHVybiBhLnNpemU7XG4gIGlmIChhLmJ5dGVMZW5ndGggIT09IHZvaWQgMClcbiAgICByZXR1cm4gYS5ieXRlTGVuZ3RoO1xuICBpZiAoYSBpbnN0YW5jZW9mIEZvcm1EYXRhKVxuICAgIHJldHVybiBsZShhKTtcbiAgaWYgKGEgaW5zdGFuY2VvZiBVUkxTZWFyY2hQYXJhbXMpXG4gICAgcmV0dXJuIGIoYS50b1N0cmluZygpKTtcbiAgaWYgKHR5cGVvZiBhID09IFwic3RyaW5nXCIpXG4gICAgcmV0dXJuIGIoYSk7XG4gIFUud2FybihcInVua25vd24gYm9keSB0eXBlXCIpO1xufVxudmFyIGNlID0gbmV3IFRleHRFbmNvZGVyKCk7XG5mdW5jdGlvbiBiKGEpIHtcbiAgcmV0dXJuIGNlLmVuY29kZShhKS5ieXRlTGVuZ3RoO1xufVxuZnVuY3Rpb24gbGUoYSkge1xuICB2YXIgbywgZSwgciA9IDA7XG4gIHRyeSB7XG4gICAgZm9yICh2YXIgbiA9IGllKGEuZW50cmllcygpKSwgdCA9IG4ubmV4dCgpOyAhdC5kb25lOyB0ID0gbi5uZXh0KCkpIHtcbiAgICAgIHZhciBpID0gb2UodC52YWx1ZSwgMiksIHMgPSBpWzBdLCBmID0gaVsxXTtcbiAgICAgIHIgKz0gcy5sZW5ndGgsIGYgaW5zdGFuY2VvZiBCbG9iID8gciArPSBmLnNpemUgOiByICs9IGYubGVuZ3RoO1xuICAgIH1cbiAgfSBjYXRjaCAodSkge1xuICAgIG8gPSB7IGVycm9yOiB1IH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIHQgJiYgIXQuZG9uZSAmJiAoZSA9IG4ucmV0dXJuKSAmJiBlLmNhbGwobik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChvKSB0aHJvdyBvLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gcjtcbn1cbnZhciBrID0gXCIwLjU3LjBcIiwgZGUgPSAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7XG4gIHZhciBhID0gZnVuY3Rpb24obywgZSkge1xuICAgIHJldHVybiBhID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24ociwgbikge1xuICAgICAgci5fX3Byb3RvX18gPSBuO1xuICAgIH0gfHwgZnVuY3Rpb24ociwgbikge1xuICAgICAgZm9yICh2YXIgdCBpbiBuKSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwobiwgdCkgJiYgKHJbdF0gPSBuW3RdKTtcbiAgICB9LCBhKG8sIGUpO1xuICB9O1xuICByZXR1cm4gZnVuY3Rpb24obywgZSkge1xuICAgIGlmICh0eXBlb2YgZSAhPSBcImZ1bmN0aW9uXCIgJiYgZSAhPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKGUpICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICBhKG8sIGUpO1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yID0gbztcbiAgICB9XG4gICAgby5wcm90b3R5cGUgPSBlID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShlKSA6IChyLnByb3RvdHlwZSA9IGUucHJvdG90eXBlLCBuZXcgcigpKTtcbiAgfTtcbn0oKSwgaGUgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgYVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiBhO1xuICB2YXIgciA9IGUuY2FsbChhKSwgbiwgdCA9IFtdLCBpO1xuICB0cnkge1xuICAgIGZvciAoOyAobyA9PT0gdm9pZCAwIHx8IG8tLSA+IDApICYmICEobiA9IHIubmV4dCgpKS5kb25lOyApIHQucHVzaChuLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGkgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG4gJiYgIW4uZG9uZSAmJiAoZSA9IHIucmV0dXJuKSAmJiBlLmNhbGwocik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChpKSB0aHJvdyBpLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIHBlID0gZnVuY3Rpb24oYSwgbywgZSkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgciA9IDAsIG4gPSBvLmxlbmd0aCwgdDsgciA8IG47IHIrKylcbiAgICAodCB8fCAhKHIgaW4gbykpICYmICh0IHx8ICh0ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobywgMCwgcikpLCB0W3JdID0gb1tyXSk7XG4gIHJldHVybiBhLmNvbmNhdCh0IHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG8pKTtcbn0sIFMsIHZlID0gMzAwLCBIID0gdHlwZW9mIHByb2Nlc3MgPT0gXCJvYmplY3RcIiAmJiAoKFMgPSBwcm9jZXNzLnJlbGVhc2UpID09PSBudWxsIHx8IFMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IFMubmFtZSkgPT09IFwibm9kZVwiLCBiZSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbihhKSB7XG4gICAgZGUobywgYSk7XG4gICAgZnVuY3Rpb24gbyhlKSB7XG4gICAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSk7XG4gICAgICB2YXIgciA9IGEuY2FsbCh0aGlzLCBcIkBvcGVudGVsZW1ldHJ5L2luc3RydW1lbnRhdGlvbi1mZXRjaFwiLCBrLCBlKSB8fCB0aGlzO1xuICAgICAgcmV0dXJuIHIuY29tcG9uZW50ID0gXCJmZXRjaFwiLCByLnZlcnNpb24gPSBrLCByLm1vZHVsZU5hbWUgPSByLmNvbXBvbmVudCwgci5fdXNlZFJlc291cmNlcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha1NldCgpLCByLl90YXNrc0NvdW50ID0gMCwgcjtcbiAgICB9XG4gICAgcmV0dXJuIG8ucHJvdG90eXBlLmluaXQgPSBmdW5jdGlvbigpIHtcbiAgICB9LCBvLnByb3RvdHlwZS5fYWRkQ2hpbGRTcGFuID0gZnVuY3Rpb24oZSwgcikge1xuICAgICAgdmFyIG4gPSB0aGlzLnRyYWNlci5zdGFydFNwYW4oXCJDT1JTIFByZWZsaWdodFwiLCB7XG4gICAgICAgIHN0YXJ0VGltZTogcltULkZFVENIX1NUQVJUXVxuICAgICAgfSwgVWUuc2V0U3BhbihMZS5hY3RpdmUoKSwgZSkpO1xuICAgICAgeChuLCByLCB0aGlzLmdldENvbmZpZygpLmlnbm9yZU5ldHdvcmtFdmVudHMpLCBuLmVuZChyW1QuUkVTUE9OU0VfRU5EXSk7XG4gICAgfSwgby5wcm90b3R5cGUuX2FkZEZpbmFsU3BhbkF0dHJpYnV0ZXMgPSBmdW5jdGlvbihlLCByKSB7XG4gICAgICB2YXIgbiA9IFIoci51cmwpO1xuICAgICAgZS5zZXRBdHRyaWJ1dGUoakEsIHIuc3RhdHVzKSwgci5zdGF0dXNUZXh0ICE9IG51bGwgJiYgZS5zZXRBdHRyaWJ1dGUoeS5IVFRQX1NUQVRVU19URVhULCByLnN0YXR1c1RleHQpLCBlLnNldEF0dHJpYnV0ZShxQSwgbi5ob3N0KSwgZS5zZXRBdHRyaWJ1dGUoWkEsIG4ucHJvdG9jb2wucmVwbGFjZShcIjpcIiwgXCJcIikpLCB0eXBlb2YgbmF2aWdhdG9yIDwgXCJ1XCIgJiYgZS5zZXRBdHRyaWJ1dGUoekEsIG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9hZGRIZWFkZXJzID0gZnVuY3Rpb24oZSwgcikge1xuICAgICAgaWYgKCFzKHIsIHRoaXMuZ2V0Q29uZmlnKCkucHJvcGFnYXRlVHJhY2VIZWFkZXJDb3JzVXJscykpIHtcbiAgICAgICAgdmFyIG4gPSB7fTtcbiAgICAgICAgeV8uaW5qZWN0KExlLmFjdGl2ZSgpLCBuKSwgT2JqZWN0LmtleXMobikubGVuZ3RoID4gMCAmJiB0aGlzLl9kaWFnLmRlYnVnKFwiaGVhZGVycyBpbmplY3Qgc2tpcHBlZCBkdWUgdG8gQ09SUyBwb2xpY3lcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChlIGluc3RhbmNlb2YgUmVxdWVzdClcbiAgICAgICAgeV8uaW5qZWN0KExlLmFjdGl2ZSgpLCBlLmhlYWRlcnMsIHtcbiAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHQsIGksIHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0LnNldChpLCB0eXBlb2YgcyA9PSBcInN0cmluZ1wiID8gcyA6IFN0cmluZyhzKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIGVsc2UgaWYgKGUuaGVhZGVycyBpbnN0YW5jZW9mIEhlYWRlcnMpXG4gICAgICAgIHlfLmluamVjdChMZS5hY3RpdmUoKSwgZS5oZWFkZXJzLCB7XG4gICAgICAgICAgc2V0OiBmdW5jdGlvbih0LCBpLCBzKSB7XG4gICAgICAgICAgICByZXR1cm4gdC5zZXQoaSwgdHlwZW9mIHMgPT0gXCJzdHJpbmdcIiA/IHMgOiBTdHJpbmcocykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICBlbHNlIGlmIChlLmhlYWRlcnMgaW5zdGFuY2VvZiBNYXApXG4gICAgICAgIHlfLmluamVjdChMZS5hY3RpdmUoKSwgZS5oZWFkZXJzLCB7XG4gICAgICAgICAgc2V0OiBmdW5jdGlvbih0LCBpLCBzKSB7XG4gICAgICAgICAgICByZXR1cm4gdC5zZXQoaSwgdHlwZW9mIHMgPT0gXCJzdHJpbmdcIiA/IHMgOiBTdHJpbmcocykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICBlbHNlIHtcbiAgICAgICAgdmFyIG4gPSB7fTtcbiAgICAgICAgeV8uaW5qZWN0KExlLmFjdGl2ZSgpLCBuKSwgZS5oZWFkZXJzID0gT2JqZWN0LmFzc2lnbih7fSwgbiwgZS5oZWFkZXJzIHx8IHt9KTtcbiAgICAgIH1cbiAgICB9LCBvLnByb3RvdHlwZS5fY2xlYXJSZXNvdXJjZXMgPSBmdW5jdGlvbigpIHtcbiAgICAgIHRoaXMuX3Rhc2tzQ291bnQgPT09IDAgJiYgdGhpcy5nZXRDb25maWcoKS5jbGVhclRpbWluZ1Jlc291cmNlcyAmJiAocGVyZm9ybWFuY2UuY2xlYXJSZXNvdXJjZVRpbWluZ3MoKSwgdGhpcy5fdXNlZFJlc291cmNlcyA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgV2Vha1NldCgpKTtcbiAgICB9LCBvLnByb3RvdHlwZS5fY3JlYXRlU3BhbiA9IGZ1bmN0aW9uKGUsIHIpIHtcbiAgICAgIHZhciBuO1xuICAgICAgaWYgKHIgPT09IHZvaWQgMCAmJiAociA9IHt9KSwgWmUoZSwgdGhpcy5nZXRDb25maWcoKS5pZ25vcmVVcmxzKSkge1xuICAgICAgICB0aGlzLl9kaWFnLmRlYnVnKFwiaWdub3Jpbmcgc3BhbiBhcyB1cmwgbWF0Y2hlcyBpZ25vcmVkIHVybFwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdmFyIHQgPSAoci5tZXRob2QgfHwgXCJHRVRcIikudG9VcHBlckNhc2UoKSwgaSA9IFwiSFRUUCBcIiArIHQ7XG4gICAgICByZXR1cm4gdGhpcy50cmFjZXIuc3RhcnRTcGFuKGksIHtcbiAgICAgICAga2luZDogcnQuQ0xJRU5ULFxuICAgICAgICBhdHRyaWJ1dGVzOiAobiA9IHt9LCBuW3kuQ09NUE9ORU5UXSA9IHRoaXMubW9kdWxlTmFtZSwgbltRQV0gPSB0LCBuW3hBXSA9IGUsIG4pXG4gICAgICB9KTtcbiAgICB9LCBvLnByb3RvdHlwZS5fZmluZFJlc291cmNlQW5kQWRkTmV0d29ya0V2ZW50cyA9IGZ1bmN0aW9uKGUsIHIsIG4pIHtcbiAgICAgIHZhciB0ID0gci5lbnRyaWVzO1xuICAgICAgaWYgKCF0Lmxlbmd0aCkge1xuICAgICAgICBpZiAoIXBlcmZvcm1hbmNlLmdldEVudHJpZXNCeVR5cGUpXG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB0ID0gcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZShcInJlc291cmNlXCIpO1xuICAgICAgfVxuICAgICAgdmFyIGkgPSBiJDEoci5zcGFuVXJsLCByLnN0YXJ0VGltZSwgbiwgdCwgdGhpcy5fdXNlZFJlc291cmNlcywgXCJmZXRjaFwiKTtcbiAgICAgIGlmIChpLm1haW5SZXF1ZXN0KSB7XG4gICAgICAgIHZhciBzID0gaS5tYWluUmVxdWVzdDtcbiAgICAgICAgdGhpcy5fbWFya1Jlc291cmNlQXNVc2VkKHMpO1xuICAgICAgICB2YXIgZiA9IGkuY29yc1ByZUZsaWdodFJlcXVlc3Q7XG4gICAgICAgIGYgJiYgKHRoaXMuX2FkZENoaWxkU3BhbihlLCBmKSwgdGhpcy5fbWFya1Jlc291cmNlQXNVc2VkKGYpKSwgeChlLCBzLCB0aGlzLmdldENvbmZpZygpLmlnbm9yZU5ldHdvcmtFdmVudHMpO1xuICAgICAgfVxuICAgIH0sIG8ucHJvdG90eXBlLl9tYXJrUmVzb3VyY2VBc1VzZWQgPSBmdW5jdGlvbihlKSB7XG4gICAgICB0aGlzLl91c2VkUmVzb3VyY2VzLmFkZChlKTtcbiAgICB9LCBvLnByb3RvdHlwZS5fZW5kU3BhbiA9IGZ1bmN0aW9uKGUsIHIsIG4pIHtcbiAgICAgIHZhciB0ID0gdGhpcywgaSA9IE8oRGF0ZS5ub3coKSksIHMgPSBwXygpO1xuICAgICAgdGhpcy5fYWRkRmluYWxTcGFuQXR0cmlidXRlcyhlLCBuKSwgc2V0VGltZW91dChmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIGY7XG4gICAgICAgIChmID0gci5vYnNlcnZlcikgPT09IG51bGwgfHwgZiA9PT0gdm9pZCAwIHx8IGYuZGlzY29ubmVjdCgpLCB0Ll9maW5kUmVzb3VyY2VBbmRBZGROZXR3b3JrRXZlbnRzKGUsIHIsIHMpLCB0Ll90YXNrc0NvdW50LS0sIHQuX2NsZWFyUmVzb3VyY2VzKCksIGUuZW5kKGkpO1xuICAgICAgfSwgdmUpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9wYXRjaENvbnN0cnVjdG9yID0gZnVuY3Rpb24oKSB7XG4gICAgICB2YXIgZSA9IHRoaXM7XG4gICAgICByZXR1cm4gZnVuY3Rpb24ocikge1xuICAgICAgICB2YXIgbiA9IGU7XG4gICAgICAgIHJldHVybiBmdW5jdGlvbigpIHtcbiAgICAgICAgICBmb3IgKHZhciBpID0gW10sIHMgPSAwOyBzIDwgYXJndW1lbnRzLmxlbmd0aDsgcysrKVxuICAgICAgICAgICAgaVtzXSA9IGFyZ3VtZW50c1tzXTtcbiAgICAgICAgICB2YXIgZiA9IHRoaXMsIHUgPSBSKGlbMF0gaW5zdGFuY2VvZiBSZXF1ZXN0ID8gaVswXS51cmwgOiBTdHJpbmcoaVswXSkpLmhyZWYsIGMgPSBpWzBdIGluc3RhbmNlb2YgUmVxdWVzdCA/IGlbMF0gOiBpWzFdIHx8IHt9LCBoID0gbi5fY3JlYXRlU3Bhbih1LCBjKTtcbiAgICAgICAgICBpZiAoIWgpXG4gICAgICAgICAgICByZXR1cm4gci5hcHBseSh0aGlzLCBpKTtcbiAgICAgICAgICB2YXIgbSA9IG4uX3ByZXBhcmVTcGFuRGF0YSh1KTtcbiAgICAgICAgICBuLmdldENvbmZpZygpLm1lYXN1cmVSZXF1ZXN0U2l6ZSAmJiBzZS5hcHBseSh2b2lkIDAsIHBlKFtdLCBoZShpKSwgITEpKS50aGVuKGZ1bmN0aW9uKGwpIHtcbiAgICAgICAgICAgIGwgJiYgaC5zZXRBdHRyaWJ1dGUoU3IsIGwpO1xuICAgICAgICAgIH0pLmNhdGNoKGZ1bmN0aW9uKGwpIHtcbiAgICAgICAgICAgIG4uX2RpYWcud2FybihcImdldEZldGNoQm9keUxlbmd0aFwiLCBsKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBmdW5jdGlvbiBFKGwsIGQpIHtcbiAgICAgICAgICAgIG4uX2FwcGx5QXR0cmlidXRlc0FmdGVyRmV0Y2gobCwgYywgZCksIG4uX2VuZFNwYW4obCwgbSwge1xuICAgICAgICAgICAgICBzdGF0dXM6IGQuc3RhdHVzIHx8IDAsXG4gICAgICAgICAgICAgIHN0YXR1c1RleHQ6IGQubWVzc2FnZSxcbiAgICAgICAgICAgICAgdXJsOiB1XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gdyhsLCBkKSB7XG4gICAgICAgICAgICBuLl9hcHBseUF0dHJpYnV0ZXNBZnRlckZldGNoKGwsIGMsIGQpLCBkLnN0YXR1cyA+PSAyMDAgJiYgZC5zdGF0dXMgPCA0MDAgPyBuLl9lbmRTcGFuKGwsIG0sIGQpIDogbi5fZW5kU3BhbihsLCBtLCB7XG4gICAgICAgICAgICAgIHN0YXR1czogZC5zdGF0dXMsXG4gICAgICAgICAgICAgIHN0YXR1c1RleHQ6IGQuc3RhdHVzVGV4dCxcbiAgICAgICAgICAgICAgdXJsOiB1XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gTShsLCBkLCB2KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICB2YXIgaiA9IHYuY2xvbmUoKSwgRCA9IHYuY2xvbmUoKSwgUiA9IGouYm9keTtcbiAgICAgICAgICAgICAgaWYgKFIpIHtcbiAgICAgICAgICAgICAgICB2YXIgQiA9IFIuZ2V0UmVhZGVyKCksIEEgPSBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgICAgIEIucmVhZCgpLnRoZW4oZnVuY3Rpb24oZykge1xuICAgICAgICAgICAgICAgICAgICB2YXIgRiA9IGcuZG9uZTtcbiAgICAgICAgICAgICAgICAgICAgRiA/IHcobCwgRCkgOiBBKCk7XG4gICAgICAgICAgICAgICAgICB9LCBmdW5jdGlvbihnKSB7XG4gICAgICAgICAgICAgICAgICAgIEUobCwgZyk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIEEoKTtcbiAgICAgICAgICAgICAgfSBlbHNlXG4gICAgICAgICAgICAgICAgdyhsLCB2KTtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgIGQodik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIGZ1bmN0aW9uIEwobCwgZCwgdikge1xuICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgRShsLCB2KTtcbiAgICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICAgIGQodik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShmdW5jdGlvbihsLCBkKSB7XG4gICAgICAgICAgICByZXR1cm4gTGUud2l0aChVZS5zZXRTcGFuKExlLmFjdGl2ZSgpLCBoKSwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgIHJldHVybiBuLl9hZGRIZWFkZXJzKGMsIHUpLCBuLl90YXNrc0NvdW50KyssIHIuYXBwbHkoZiwgYyBpbnN0YW5jZW9mIFJlcXVlc3QgPyBbY10gOiBbdSwgY10pLnRoZW4oTS5iaW5kKGYsIGgsIGwpLCBMLmJpbmQoZiwgaCwgZCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH0sIG8ucHJvdG90eXBlLl9hcHBseUF0dHJpYnV0ZXNBZnRlckZldGNoID0gZnVuY3Rpb24oZSwgciwgbikge1xuICAgICAgdmFyIHQgPSB0aGlzLCBpID0gdGhpcy5nZXRDb25maWcoKS5hcHBseUN1c3RvbUF0dHJpYnV0ZXNPblNwYW47XG4gICAgICBpICYmIEYoZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpKGUsIHIsIG4pO1xuICAgICAgfSwgZnVuY3Rpb24ocykge1xuICAgICAgICBzICYmIHQuX2RpYWcuZXJyb3IoXCJhcHBseUN1c3RvbUF0dHJpYnV0ZXNPblNwYW5cIiwgcyk7XG4gICAgICB9LCAhMCk7XG4gICAgfSwgby5wcm90b3R5cGUuX3ByZXBhcmVTcGFuRGF0YSA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHZhciByID0gcF8oKSwgbiA9IFtdO1xuICAgICAgaWYgKHR5cGVvZiBQZXJmb3JtYW5jZU9ic2VydmVyICE9IFwiZnVuY3Rpb25cIilcbiAgICAgICAgcmV0dXJuIHsgZW50cmllczogbiwgc3RhcnRUaW1lOiByLCBzcGFuVXJsOiBlIH07XG4gICAgICB2YXIgdCA9IG5ldyBQZXJmb3JtYW5jZU9ic2VydmVyKGZ1bmN0aW9uKGkpIHtcbiAgICAgICAgdmFyIHMgPSBpLmdldEVudHJpZXMoKTtcbiAgICAgICAgcy5mb3JFYWNoKGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgICBmLmluaXRpYXRvclR5cGUgPT09IFwiZmV0Y2hcIiAmJiBmLm5hbWUgPT09IGUgJiYgbi5wdXNoKGYpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHQub2JzZXJ2ZSh7XG4gICAgICAgIGVudHJ5VHlwZXM6IFtcInJlc291cmNlXCJdXG4gICAgICB9KSwgeyBlbnRyaWVzOiBuLCBvYnNlcnZlcjogdCwgc3RhcnRUaW1lOiByLCBzcGFuVXJsOiBlIH07XG4gICAgfSwgby5wcm90b3R5cGUuZW5hYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAoSCkge1xuICAgICAgICB0aGlzLl9kaWFnLndhcm4oXCJ0aGlzIGluc3RydW1lbnRhdGlvbiBpcyBpbnRlbmRlZCBmb3Igd2ViIHVzYWdlIG9ubHksIGl0IGRvZXMgbm90IGluc3RydW1lbnQgTm9kZS5qcydzIGZldGNoKClcIik7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIEgkMShmZXRjaCkgJiYgKHRoaXMuX3Vud3JhcChsLCBcImZldGNoXCIpLCB0aGlzLl9kaWFnLmRlYnVnKFwicmVtb3ZpbmcgcHJldmlvdXMgcGF0Y2ggZm9yIGNvbnN0cnVjdG9yXCIpKSwgdGhpcy5fd3JhcChsLCBcImZldGNoXCIsIHRoaXMuX3BhdGNoQ29uc3RydWN0b3IoKSk7XG4gICAgfSwgby5wcm90b3R5cGUuZGlzYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgSCB8fCAodGhpcy5fdW53cmFwKGwsIFwiZmV0Y2hcIiksIHRoaXMuX3VzZWRSZXNvdXJjZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtTZXQoKSk7XG4gICAgfSwgbztcbiAgfShZKVxuKTtcblxuZXhwb3J0IHsgYmUgYXMgRmV0Y2hJbnN0cnVtZW50YXRpb24gfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUFBLFNBQVM7QUFDbEIsU0FBUyxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUFDLFNBQVM7QUFDNUcsU0FBUyxLQUFBQyxHQUFHLEtBQUtDLEdBQUssS0FBQUMsU0FBUztBQUMvQixTQUFTLEtBQUFDLFNBQVM7QUFDbEIsU0FBUyxLQUFBQyxHQUFHLEtBQUFDLEdBQUcsS0FBQUMsR0FBRyxLQUFBQyxHQUFHLEtBQUtDLFVBQVc7QUFDckMsU0FBUyxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsVUFBVTtBQUUxQyxJQUFJQztBQUFBLENBQ0gsU0FBU0MsR0FBRztBQUNYLEVBQUFBLEVBQUUsWUFBWSxhQUFhQSxFQUFFLGtCQUFrQixtQkFBbUJBLEVBQUUsbUJBQW1CO0FBQ3pGLEdBQUdELE1BQU1BLElBQUksQ0FBQyxFQUFFO0FBQ2hCLElBQUlFLEtBQUssU0FBU0QsR0FBR0UsR0FBR0MsR0FBRzVCLEdBQUc7QUFDNUIsV0FBUzZCLEVBQUVDLEdBQUc7QUFDWixXQUFPQSxhQUFhRixJQUFJRSxJQUFJLElBQUlGLEVBQUUsU0FBU0csR0FBRztBQUM1QyxNQUFBQSxFQUFFRCxDQUFDO0FBQUEsSUFDTCxDQUFDO0FBQUEsRUFDSDtBQUNBLFNBQU8sS0FBS0YsTUFBTUEsSUFBSSxVQUFVLFNBQVNFLEdBQUdDLEdBQUc7QUFDN0MsYUFBU1osRUFBRWEsR0FBRztBQUNaLFVBQUk7QUFDRixVQUFFaEMsRUFBRSxLQUFLZ0MsQ0FB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QUcsRUFBRSxTQUFTRCxHQUFHLFVBQVVDLEdBQUcsV0FBVzlCLEdBQUcsU0FBUzRCLEVBQUU7QUFBQSxJQUMxRCxHQUFHRCxFQUFFLFVBQVUsU0FBUyxXQUFXO0FBQ2pDLFVBQUl1QixHQUFHO0FBQ0wsYUFBSyxNQUFNLEtBQUssK0ZBQStGO0FBQy9HO0FBQUEsTUFDRjtBQUNBLE1BQUFyQyxFQUFJLEtBQUssTUFBTSxLQUFLLFFBQVFFLEdBQUcsT0FBTyxHQUFHLEtBQUssTUFBTSxNQUFNLHlDQUF5QyxJQUFJLEtBQUssTUFBTUEsR0FBRyxTQUFTLEtBQUssa0JBQWtCLENBQUM7QUFBQSxJQUN4SixHQUFHWSxFQUFFLFVBQVUsVUFBVSxXQUFXO0FBQ2xDLE1BQUF1QixNQUFNLEtBQUssUUFBUW5DLEdBQUcsT0FBTyxHQUFHLEtBQUssaUJBQWlDLG9CQUFJLFFBQVE7QUFBQSxJQUNwRixHQUFHWTtBQUFBLEVBQ0wsRUFBRWIsQ0FBQztBQUFBOyIsCiAgIm5hbWVzIjogWyJyIiwgImpBIiwgInFBIiwgIlpBIiwgInpBIiwgInlfIiwgIlplIiwgIlFBIiwgInhBIiwgInBfIiwgIlNyIiwgIk8iLCAiRiIsICJIJDEiLCAiWSIsICJsIiwgIlQiLCAieCIsICJSIiwgInMiLCAiYiQxIiwgIlVlIiwgIkxlIiwgInJ0IiwgInkiLCAiYSIsICJuZSIsICJvIiwgImUiLCAibiIsICJ0IiwgImkiLCAiYyIsICJoIiwgImYiLCAiYWUiLCAiaWUiLCAib2UiLCAic2UiLCAidWUiLCAiZmUiLCAiYiIsICJsZSIsICJjZSIsICJrIiwgImRlIiwgImhlIiwgInBlIiwgIlMiLCAidmUiLCAiSCIsICJiZSIsICJ1IiwgIm0iLCAiRSIsICJkIiwgIk0iLCAidiIsICJqIiwgIkQiLCAiQiIsICJBIiwgImciXQp9Cg==
@@ -1,4 +1,4 @@
1
- import { I as s, g as e, r as o, D as p, n, S, i as c, j as l, a as m, G as t, P as i, o as d, O as P, W as B, z as I } from "./SimpleSpanProcessor-DZHwNXyd-BVdtLHpX.js";
1
+ import { I as s, g as e, r as o, D as p, n, S, i as c, j as l, a as m, G as t, P as i, o as d, O as P, W as B, z as I } from "./SimpleSpanProcessor-Cza16vjV-BxJK0M6w.js";
2
2
  export {
3
3
  s as AlwaysOffSampler,
4
4
  e as AlwaysOnSampler,
@@ -16,4 +16,4 @@ export {
16
16
  B as TraceIdRatioBasedSampler,
17
17
  I as Tracer
18
18
  };
19
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtc1J4YW1LRjYtIX57MDAxfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB7IEkgYXMgQWx3YXlzT2ZmU2FtcGxlciwgZyBhcyBBbHdheXNPblNhbXBsZXIsIHIgYXMgQmFzaWNUcmFjZXJQcm92aWRlciwgRCBhcyBCYXRjaFNwYW5Qcm9jZXNzb3IsIG4gYXMgQ29uc29sZVNwYW5FeHBvcnRlciwgUyBhcyBGb3JjZUZsdXNoU3RhdGUsIGkgYXMgSW5NZW1vcnlTcGFuRXhwb3J0ZXIsIGogYXMgTm9vcFNwYW5Qcm9jZXNzb3IsIGEgYXMgUGFyZW50QmFzZWRTYW1wbGVyLCBHIGFzIFJhbmRvbUlkR2VuZXJhdG9yLCBQIGFzIFNhbXBsaW5nRGVjaXNpb24sIG8gYXMgU2ltcGxlU3BhblByb2Nlc3NvciwgTyBhcyBTcGFuLCBXIGFzIFRyYWNlSWRSYXRpb0Jhc2VkU2FtcGxlciwgeiBhcyBUcmFjZXIgfSBmcm9tICcuL1NpbXBsZVNwYW5Qcm9jZXNzb3ItRFpId05YeWQtIX57MDAyfX4uanMnOyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQWMsS0FBTEEsR0FBNEIsS0FBTEMsR0FBMkIsS0FBTEMsR0FBK0IsS0FBTEMsR0FBOEIsR0FBMEIsR0FBc0IsS0FBTEMsR0FBZ0MsS0FBTEMsR0FBNkIsS0FBTEMsR0FBOEIsS0FBTEMsR0FBNkIsS0FBTEMsR0FBNEIsS0FBTEMsR0FBK0IsS0FBTEMsR0FBZ0IsS0FBTEMsR0FBb0MsS0FBTEMsU0FBbUI7IiwKICAibmFtZXMiOiBbIkkiLCAiZyIsICJyIiwgIkQiLCAiaSIsICJqIiwgImEiLCAiRyIsICJQIiwgIm8iLCAiTyIsICJXIiwgInoiXQp9Cg==
19
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtRE5udHE4YVUtIX57MDAxfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImV4cG9ydCB7IEkgYXMgQWx3YXlzT2ZmU2FtcGxlciwgZyBhcyBBbHdheXNPblNhbXBsZXIsIHIgYXMgQmFzaWNUcmFjZXJQcm92aWRlciwgRCBhcyBCYXRjaFNwYW5Qcm9jZXNzb3IsIG4gYXMgQ29uc29sZVNwYW5FeHBvcnRlciwgUyBhcyBGb3JjZUZsdXNoU3RhdGUsIGkgYXMgSW5NZW1vcnlTcGFuRXhwb3J0ZXIsIGogYXMgTm9vcFNwYW5Qcm9jZXNzb3IsIGEgYXMgUGFyZW50QmFzZWRTYW1wbGVyLCBHIGFzIFJhbmRvbUlkR2VuZXJhdG9yLCBQIGFzIFNhbXBsaW5nRGVjaXNpb24sIG8gYXMgU2ltcGxlU3BhblByb2Nlc3NvciwgTyBhcyBTcGFuLCBXIGFzIFRyYWNlSWRSYXRpb0Jhc2VkU2FtcGxlciwgeiBhcyBUcmFjZXIgfSBmcm9tICcuL1NpbXBsZVNwYW5Qcm9jZXNzb3ItQ3phMTZ2alYtIX57MDAyfX4uanMnOyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQWMsS0FBTEEsR0FBNEIsS0FBTEMsR0FBMkIsS0FBTEMsR0FBK0IsS0FBTEMsR0FBOEIsR0FBMEIsR0FBc0IsS0FBTEMsR0FBZ0MsS0FBTEMsR0FBNkIsS0FBTEMsR0FBOEIsS0FBTEMsR0FBNkIsS0FBTEMsR0FBNEIsS0FBTEMsR0FBK0IsS0FBTEMsR0FBZ0IsS0FBTEMsR0FBb0MsS0FBTEMsU0FBbUI7IiwKICAibmFtZXMiOiBbIkkiLCAiZyIsICJyIiwgIkQiLCAiaSIsICJqIiwgImEiLCAiRyIsICJQIiwgIm8iLCAiTyIsICJXIiwgInoiXQp9Cg==
package/dist/index.d.ts CHANGED
@@ -4,12 +4,6 @@
4
4
  import { FC } from 'react';
5
5
  import { z } from 'zod';
6
6
 
7
- declare type AirwallexACHFlowParams = {
8
- verificationMethod?: 'plaid' /*| 'micro_deposit'*/;
9
- defaultAccountType?: 'personal' | 'business';
10
- defaultFieldValues?: DefaultFieldValues;
11
- };
12
-
13
7
  declare type AirwallexApplePayFlowCustomParams = {
14
8
  overridePaymentRequest?: {
15
9
  amount: Amount;
@@ -20,22 +14,6 @@ declare type AirwallexApplePayFlowCustomParams = {
20
14
  defaultFieldValues?: DefaultFieldValues;
21
15
  };
22
16
 
23
- declare type AirwallexBACSFlowParams = {
24
- verificationMethod?: 'truelayer' /*| 'micro_deposit'*/;
25
- defaultFieldValues?: DefaultFieldValues;
26
- // sortCode?: string;
27
- // accountNumber?: string;
28
- };
29
-
30
- declare type AirwallexEFTFlowParams = {
31
- verificationMethod?: 'plaid' /*| 'micro_deposit'*/;
32
- defaultAccountType?: 'personal' | 'business';
33
- defaultFieldValues?: DefaultFieldValues;
34
- // institutionNumber?: string;
35
- // transitNumber?: string;
36
- // accountNumber?: string;
37
- };
38
-
39
17
  declare type AirwallexGooglePayFlowCustomParams = {
40
18
  overridePaymentRequest?: {
41
19
  amount: Amount;
@@ -45,12 +23,6 @@ declare type AirwallexGooglePayFlowCustomParams = {
45
23
  defaultFieldValues?: DefaultFieldValues;
46
24
  };
47
25
 
48
- declare type AirwallexSEPAFlowParams = {
49
- verificationMethod?: 'truelayer' /*| 'micro_deposit'*/;
50
- defaultFieldValues?: DefaultFieldValues;
51
- // iban?: string;
52
- };
53
-
54
26
  declare type AllCallbacks = {
55
27
  onFocus?: (elementId: string, field: AllFieldNames) => void;
56
28
  onBlur?: (
@@ -450,13 +422,8 @@ declare type LoopConnectToken = ExchangableToken;
450
422
  declare type LoopCryptoFlowCustomParams =
451
423
  | {
452
424
  customer: Omit<CustomerResponse, 'paymentMethods' | 'merchants' | 'dateCreated'>;
453
- payin: PayInCompleteEvent;
454
- mode: 'checkout';
455
- success: true;
456
- }
457
- | {
458
- customer: Omit<CustomerResponse, 'paymentMethods' | 'merchants' | 'dateCreated'>;
459
- mode: 'setup';
425
+ paymentMethod: Omit<PaymentMethodResponse, 'customer' | 'dateCreated'>;
426
+ mode: 'setup' | 'payment' | 'subscription';
460
427
  success: true;
461
428
  }
462
429
  | {
@@ -506,11 +473,6 @@ declare type OnSetupPaymentMethodSuccess = (paymentMethodId: string) => void;
506
473
 
507
474
  declare type OnValidationError = (field: AllFieldNames, errors: string[], elementId?: string) => void;
508
475
 
509
- /**
510
- * @deprecated Use interface PayInCreatedEvent for data returned from the creation of a PayIn
511
- */
512
- declare interface PayInCompleteEvent extends PayinResponse {}
513
-
514
476
  export declare enum PayInFailed {
515
477
  // Create payment method
516
478
  METHOD_CREATION_FAILED = 'methodCreationFailed',
@@ -773,7 +735,7 @@ declare interface PaymentMethodPreAuthorization {
773
735
  authorization: string;
774
736
  }
775
737
 
776
- declare interface PaymentMethodResponse {
738
+ export declare interface PaymentMethodResponse {
777
739
  /**
778
740
  * The unique identifier for the payment method
779
741
  * @example "1234567890abcdef"
@@ -923,11 +885,6 @@ declare type ProcessorSpecificSubmitSettings<T extends SubmitMethod = SubmitMeth
923
885
  [SubmitMethods.authorizenetApplePay]: ApplePayFlowCustomParams;
924
886
  [SubmitMethods.adyenGooglePay]: GooglePayFlowCustomParams;
925
887
  [SubmitMethods.adyenApplePay]: ApplePayFlowCustomParams;
926
-
927
- [SubmitMethods.airwallexACH]: AirwallexACHFlowParams;
928
- [SubmitMethods.airwallexEFT]: AirwallexEFTFlowParams;
929
- [SubmitMethods.airwallexBACS]: AirwallexBACSFlowParams;
930
- [SubmitMethods.airwallexSEPA]: AirwallexSEPAFlowParams;
931
888
  }[T];
932
889
 
933
890
  declare type PRStatuses = Record<PaymentRequestProvider, PaymentRequestStatus>;
@@ -997,12 +954,6 @@ export declare enum SubmitMethods {
997
954
  * @deprecated Use applePay instead
998
955
  */
999
956
  adyenApplePay = 'adyen-apple-pay',
1000
-
1001
- // DD
1002
- airwallexACH = 'airwallex-ach',
1003
- airwallexEFT = 'airwallex-eft',
1004
- airwallexBACS = 'airwallex-bacs',
1005
- airwallexSEPA = 'airwallex-sepa',
1006
957
  }
1007
958
 
1008
959
  export declare type SubmitSettings<T extends SubmitMethod = SubmitMethod> = ProcessorSpecificSubmitSettings<T> &
package/dist/index.js CHANGED
@@ -1,14 +1,14 @@
1
1
  import "penpal";
2
- import { C as r, c as n, d as o, e as d, h as l, F as i, j as E, k as p, l as C, S as F, u, v } from "./index-H0dupMK0.js";
2
+ import { C as n, f as r, i as o, k as i, E as d, F as l, m as E, P as p, n as C, S as F, u, v } from "./index-BxLG8KOU.js";
3
3
  import "uuid";
4
4
  import "chalk";
5
5
  export {
6
- r as CardCvcElement,
7
- n as CardElement,
6
+ n as CardCvcElement,
7
+ r as CardElement,
8
8
  o as CardExpiryElement,
9
- d as CardNumberElement,
10
- l as ElementsForm,
11
- i as FieldName,
9
+ i as CardNumberElement,
10
+ d as ElementsForm,
11
+ l as FieldName,
12
12
  E as LoopEnvironment,
13
13
  p as PayInFailed,
14
14
  C as PayInState,
@@ -16,4 +16,4 @@ export {
16
16
  u as useOpenPayElements,
17
17
  v as validateNonCdeFormFields
18
18
  };
19
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCAncGVucGFsJztcbmV4cG9ydCB7IEMgYXMgQ2FyZEN2Y0VsZW1lbnQsIGMgYXMgQ2FyZEVsZW1lbnQsIGQgYXMgQ2FyZEV4cGlyeUVsZW1lbnQsIGUgYXMgQ2FyZE51bWJlckVsZW1lbnQsIGggYXMgRWxlbWVudHNGb3JtLCBGIGFzIEZpZWxkTmFtZSwgaiBhcyBMb29wRW52aXJvbm1lbnQsIGsgYXMgUGF5SW5GYWlsZWQsIGwgYXMgUGF5SW5TdGF0ZSwgUyBhcyBTdWJtaXRNZXRob2RzLCB1IGFzIHVzZU9wZW5QYXlFbGVtZW50cywgdiBhcyB2YWxpZGF0ZU5vbkNkZUZvcm1GaWVsZHMgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcbmltcG9ydCAndXVpZCc7XG5pbXBvcnQgJ2NoYWxrJzsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxPQUFPO0FBQ1AsU0FBYyxLQUFMQSxHQUEwQixLQUFMQyxHQUF1QixLQUFMQyxHQUE2QixLQUFMQyxHQUE2QixLQUFMQyxHQUF3QixLQUFMQyxHQUFxQixLQUFMQyxHQUEyQixLQUFMQyxHQUF1QixLQUFMQyxHQUFzQixLQUFMQyxHQUF5QixHQUF5QixTQUFnQztBQUM5USxPQUFPO0FBQ1AsT0FBTzsiLAogICJuYW1lcyI6IFsiQyIsICJjIiwgImQiLCAiZSIsICJoIiwgIkYiLCAiaiIsICJrIiwgImwiLCAiUyJdCn0K
19
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXguanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCAncGVucGFsJztcbmV4cG9ydCB7IEMgYXMgQ2FyZEN2Y0VsZW1lbnQsIGYgYXMgQ2FyZEVsZW1lbnQsIGkgYXMgQ2FyZEV4cGlyeUVsZW1lbnQsIGsgYXMgQ2FyZE51bWJlckVsZW1lbnQsIEUgYXMgRWxlbWVudHNGb3JtLCBGIGFzIEZpZWxkTmFtZSwgbSBhcyBMb29wRW52aXJvbm1lbnQsIFAgYXMgUGF5SW5GYWlsZWQsIG4gYXMgUGF5SW5TdGF0ZSwgUyBhcyBTdWJtaXRNZXRob2RzLCB1IGFzIHVzZU9wZW5QYXlFbGVtZW50cywgdiBhcyB2YWxpZGF0ZU5vbkNkZUZvcm1GaWVsZHMgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcbmltcG9ydCAndXVpZCc7XG5pbXBvcnQgJ2NoYWxrJzsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxPQUFPO0FBQ1AsU0FBYyxLQUFMQSxHQUEwQixLQUFMQyxHQUF1QixLQUFMQyxHQUE2QixLQUFMQyxHQUE2QixLQUFMQyxHQUF3QixLQUFMQyxHQUFxQixLQUFMQyxHQUEyQixLQUFMQyxHQUF1QixLQUFMQyxHQUFzQixLQUFMQyxHQUF5QixHQUF5QixTQUFnQztBQUM5USxPQUFPO0FBQ1AsT0FBTzsiLAogICJuYW1lcyI6IFsiQyIsICJmIiwgImkiLCAiayIsICJFIiwgIkYiLCAibSIsICJQIiwgIm4iLCAiUyJdCn0K
@@ -1,4 +1,4 @@
1
- import { Z as l, a as f, b as y, K as h } from "./index-H0dupMK0.js";
1
+ import { b as l, e as f, t as y, B as h } from "./index-BxLG8KOU.js";
2
2
  var o = /* @__PURE__ */ function() {
3
3
  var t = function(n, e) {
4
4
  return t = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, u) {
@@ -30,11 +30,11 @@ var o = /* @__PURE__ */ function() {
30
30
  }, t.prototype.createUpDownCounter = function(n, e) {
31
31
  return k;
32
32
  }, t.prototype.createObservableGauge = function(n, e) {
33
- return j;
34
- }, t.prototype.createObservableCounter = function(n, e) {
35
33
  return G;
34
+ }, t.prototype.createObservableCounter = function(n, e) {
35
+ return B;
36
36
  }, t.prototype.createObservableUpDownCounter = function(n, e) {
37
- return D;
37
+ return j;
38
38
  }, t.prototype.addBatchObservableCallback = function(n, e) {
39
39
  }, t.prototype.removeBatchObservableCallback = function(n) {
40
40
  }, t;
@@ -122,11 +122,11 @@ var o = /* @__PURE__ */ function() {
122
122
  }
123
123
  return n;
124
124
  }(a)
125
- ), s = new b(), C = new g(), M = new d(), P = new v(), k = new w(), G = new m(), j = new O(), D = new _();
126
- function B() {
125
+ ), s = new b(), C = new g(), M = new d(), P = new v(), k = new w(), B = new m(), G = new O(), j = new _();
126
+ function E() {
127
127
  return s;
128
128
  }
129
- var E = (
129
+ var D = (
130
130
  /** @class */
131
131
  function() {
132
132
  function t() {
@@ -135,7 +135,7 @@ var E = (
135
135
  return s;
136
136
  }, t;
137
137
  }()
138
- ), I = new E(), p = "metrics", U = (
138
+ ), I = new D(), p = "metrics", U = (
139
139
  /** @class */
140
140
  function() {
141
141
  function t() {
@@ -152,9 +152,9 @@ var E = (
152
152
  h(p, f.instance());
153
153
  }, t;
154
154
  }()
155
- ), K = U.getInstance();
155
+ ), H = U.getInstance();
156
156
  export {
157
- B as D,
158
- K as k
157
+ E as D,
158
+ H as k
159
159
  };
160
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWV0cmljcy1hcGktQmxFa0NLOWQtIX57MDBkfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IFogYXMgWnQsIGEgYXMgRXQsIGIgYXMgaXQsIEsgYXMgS3QgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcblxudmFyIG8gPSAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7XG4gIHZhciB0ID0gZnVuY3Rpb24oZSwgbikge1xuICAgIHJldHVybiB0ID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24ociwgYSkge1xuICAgICAgci5fX3Byb3RvX18gPSBhO1xuICAgIH0gfHwgZnVuY3Rpb24ociwgYSkge1xuICAgICAgZm9yICh2YXIgdSBpbiBhKSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwgdSkgJiYgKHJbdV0gPSBhW3VdKTtcbiAgICB9LCB0KGUsIG4pO1xuICB9O1xuICByZXR1cm4gZnVuY3Rpb24oZSwgbikge1xuICAgIGlmICh0eXBlb2YgbiAhPSBcImZ1bmN0aW9uXCIgJiYgbiAhPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKG4pICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICB0KGUsIG4pO1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZTtcbiAgICB9XG4gICAgZS5wcm90b3R5cGUgPSBuID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShuKSA6IChyLnByb3RvdHlwZSA9IG4ucHJvdG90eXBlLCBuZXcgcigpKTtcbiAgfTtcbn0oKSwgTyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiB0KCkge1xuICAgIH1cbiAgICByZXR1cm4gdC5wcm90b3R5cGUuY3JlYXRlR2F1Z2UgPSBmdW5jdGlvbihlLCBuKSB7XG4gICAgICByZXR1cm4gaDtcbiAgICB9LCB0LnByb3RvdHlwZS5jcmVhdGVIaXN0b2dyYW0gPSBmdW5jdGlvbihlLCBuKSB7XG4gICAgICByZXR1cm4gUDtcbiAgICB9LCB0LnByb3RvdHlwZS5jcmVhdGVDb3VudGVyID0gZnVuY3Rpb24oZSwgbikge1xuICAgICAgcmV0dXJuIG07XG4gICAgfSwgdC5wcm90b3R5cGUuY3JlYXRlVXBEb3duQ291bnRlciA9IGZ1bmN0aW9uKGUsIG4pIHtcbiAgICAgIHJldHVybiBkO1xuICAgIH0sIHQucHJvdG90eXBlLmNyZWF0ZU9ic2VydmFibGVHYXVnZSA9IGZ1bmN0aW9uKGUsIG4pIHtcbiAgICAgIHJldHVybiBSO1xuICAgIH0sIHQucHJvdG90eXBlLmNyZWF0ZU9ic2VydmFibGVDb3VudGVyID0gZnVuY3Rpb24oZSwgbikge1xuICAgICAgcmV0dXJuIHc7XG4gICAgfSwgdC5wcm90b3R5cGUuY3JlYXRlT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXIgPSBmdW5jdGlvbihlLCBuKSB7XG4gICAgICByZXR1cm4gRztcbiAgICB9LCB0LnByb3RvdHlwZS5hZGRCYXRjaE9ic2VydmFibGVDYWxsYmFjayA9IGZ1bmN0aW9uKGUsIG4pIHtcbiAgICB9LCB0LnByb3RvdHlwZS5yZW1vdmVCYXRjaE9ic2VydmFibGVDYWxsYmFjayA9IGZ1bmN0aW9uKGUpIHtcbiAgICB9LCB0O1xuICB9KClcbiksIGkgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHQoKSB7XG4gICAgfVxuICAgIHJldHVybiB0O1xuICB9KClcbiksIE0gPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIGIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIE4gPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUucmVjb3JkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIHkgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUucmVjb3JkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIHAgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gdCgpIHtcbiAgICB9XG4gICAgcmV0dXJuIHQucHJvdG90eXBlLmFkZENhbGxiYWNrID0gZnVuY3Rpb24oZSkge1xuICAgIH0sIHQucHJvdG90eXBlLnJlbW92ZUNhbGxiYWNrID0gZnVuY3Rpb24oZSkge1xuICAgIH0sIHQ7XG4gIH0oKVxuKSwgZyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbih0KSB7XG4gICAgbyhlLCB0KTtcbiAgICBmdW5jdGlvbiBlKCkge1xuICAgICAgcmV0dXJuIHQgIT09IG51bGwgJiYgdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIHJldHVybiBlO1xuICB9KHApXG4pLCBDID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKHQpIHtcbiAgICBvKGUsIHQpO1xuICAgIGZ1bmN0aW9uIGUoKSB7XG4gICAgICByZXR1cm4gdCAhPT0gbnVsbCAmJiB0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIGU7XG4gIH0ocClcbiksIEUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZTtcbiAgfShwKVxuKSwgbCA9IG5ldyBPKCksIG0gPSBuZXcgTSgpLCBoID0gbmV3IE4oKSwgUCA9IG5ldyB5KCksIGQgPSBuZXcgYigpLCB3ID0gbmV3IGcoKSwgUiA9IG5ldyBDKCksIEcgPSBuZXcgRSgpO1xuZnVuY3Rpb24gRCgpIHtcbiAgcmV0dXJuIGw7XG59XG52YXIgSSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiB0KCkge1xuICAgIH1cbiAgICByZXR1cm4gdC5wcm90b3R5cGUuZ2V0TWV0ZXIgPSBmdW5jdGlvbihlLCBuLCByKSB7XG4gICAgICByZXR1cm4gbDtcbiAgICB9LCB0O1xuICB9KClcbiksIFQgPSBuZXcgSSgpLCBjID0gXCJtZXRyaWNzXCIsIFUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gdCgpIHtcbiAgICB9XG4gICAgcmV0dXJuIHQuZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgdCgpKSwgdGhpcy5faW5zdGFuY2U7XG4gICAgfSwgdC5wcm90b3R5cGUuc2V0R2xvYmFsTWV0ZXJQcm92aWRlciA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHJldHVybiBadChjLCBlLCBFdC5pbnN0YW5jZSgpKTtcbiAgICB9LCB0LnByb3RvdHlwZS5nZXRNZXRlclByb3ZpZGVyID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gaXQoYykgfHwgVDtcbiAgICB9LCB0LnByb3RvdHlwZS5nZXRNZXRlciA9IGZ1bmN0aW9uKGUsIG4sIHIpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1ldGVyUHJvdmlkZXIoKS5nZXRNZXRlcihlLCBuLCByKTtcbiAgICB9LCB0LnByb3RvdHlwZS5kaXNhYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICBLdChjLCBFdC5pbnN0YW5jZSgpKTtcbiAgICB9LCB0O1xuICB9KClcbiksIGsgPSBVLmdldEluc3RhbmNlKCk7XG5cbmV4cG9ydCB7IEQsIGsgfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLFNBQVU7QUFFbkQsSUFBSSxJQUFvQiwyQkFBVztBQUNqQyxNQUFJLElBQUksU0FBU0MsR0FBR0MsR0FBRztBQUNyQixXQUFPLElBQUksT0FBTyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsRUFBRSxhQUFhLFNBQVMsU0FBUyxHQUFHQyxHQUFHO0FBQ3ZGLFFBQUUsWUFBWUE7QUFBQSxJQUNoQixLQUFLLFNBQVMsR0FBR0EsR0FBRztBQUNsQixlQUFTQyxLQUFLRCxFQUFHLFFBQU8sVUFBVSxlQUFlLEtBQUtBLEdBQUdDLENBQUMsTUFB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RyxTQUFTRSxJQUFJO0FBQ1gsU0FBT0Q7QUFDVDtBQUNBLElBQUlFO0FBQUE7QUFBQSxFQUVGLFdBQVc7QUFDVCxhQUFTLElBQUk7QUFBQSxJQUNiO0FBQ0EsV0FBTyxFQUFFLFVBQVUsV0FBVyxTQUFTckIsR0FBR0MsR0FBRyxHQUFHO0FBQzlDLGFBQU9rQjtBQUFBLElBQ1QsR0FBRztBQUFBLEVBQ0wsRUFBRTtBQUFBLEdBQ0RHLElBQUksSUFBSUQsRUFBRSxHQUFHRSxJQUFJLFdBQVc7QUFBQTtBQUFBLEVBRTdCLFdBQVc7QUFDVCxhQUFTLElBQUk7QUFBQSxJQUNiO0FBQ0EsV0FBTyxFQUFFLGNBQWMsV0FBVztBQUNoQyxhQUFPLEtBQUssY0FBYyxLQUFLLFlBQVksSUFBSSxFQUFFLElBQUksS0FBSztBQUFBLElBQzVELEdBQUcsRUFBRSxVQUFVLHlCQUF5QixTQUFTdkIsR0FBRztBQUNsRCxhQUFPSixFQUFHMkIsR0FBR3ZCLEdBQUdILEVBQUcsU0FBUyxDQUFDO0FBQUEsSUFDL0IsR0FBRyxFQUFFLFVBQVUsbUJBQW1CLFdBQVc7QUFDM0MsYUFBT0MsRUFBR3lCLENBQUMsS0FBS0Q7QUFBQSxJQUNsQixHQUFHLEVBQUUsVUFBVSxXQUFXLFNBQVN0QixHQUFHQyxHQUFHLEdBQUc7QUFDMUMsYUFBTyxLQUFLLGlCQUFpQixFQUFFLFNBQVNELEdBQUdDLEdBQUcsQ0FBQztBQUFBLElBQ2pELEdBQUcsRUFBRSxVQUFVLFVBQVUsV0FBVztBQUNsQyxNQUFBRixFQUFHd0IsR0FBRzFCLEVBQUcsU0FBUyxDQUFDO0FBQUEsSUFDckIsR0FBRztBQUFBLEVBQ0wsRUFBRTtBQUFBLEdBQ0QyQixJQUFJLEVBQUUsWUFBWTsiLAogICJuYW1lcyI6IFsiWnQiLCAiRXQiLCAiaXQiLCAiS3QiLCAiZSIsICJuIiwgImEiLCAidSIsICJPIiwgImgiLCAibSIsICJkIiwgIlIiLCAidyIsICJHIiwgIk0iLCAiYiIsICJOIiwgInkiLCAicCIsICJnIiwgIkMiLCAiRSIsICJsIiwgIkQiLCAiSSIsICJUIiwgImMiLCAiayJdCn0K
160
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsibWV0cmljcy1hcGktdHdTbEN6eTgtIX57MDBkfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IGIgYXMgSHQsIGUgYXMgZ3QsIHQgYXMgdHQsIEIgYXMgQnQgfSBmcm9tICcuL2luZGV4LSF+ezAwNH1+LmpzJztcblxudmFyIG8gPSAvKiBAX19QVVJFX18gKi8gZnVuY3Rpb24oKSB7XG4gIHZhciB0ID0gZnVuY3Rpb24oZSwgbikge1xuICAgIHJldHVybiB0ID0gT2JqZWN0LnNldFByb3RvdHlwZU9mIHx8IHsgX19wcm90b19fOiBbXSB9IGluc3RhbmNlb2YgQXJyYXkgJiYgZnVuY3Rpb24ociwgYSkge1xuICAgICAgci5fX3Byb3RvX18gPSBhO1xuICAgIH0gfHwgZnVuY3Rpb24ociwgYSkge1xuICAgICAgZm9yICh2YXIgdSBpbiBhKSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoYSwgdSkgJiYgKHJbdV0gPSBhW3VdKTtcbiAgICB9LCB0KGUsIG4pO1xuICB9O1xuICByZXR1cm4gZnVuY3Rpb24oZSwgbikge1xuICAgIGlmICh0eXBlb2YgbiAhPSBcImZ1bmN0aW9uXCIgJiYgbiAhPT0gbnVsbClcbiAgICAgIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDbGFzcyBleHRlbmRzIHZhbHVlIFwiICsgU3RyaW5nKG4pICsgXCIgaXMgbm90IGEgY29uc3RydWN0b3Igb3IgbnVsbFwiKTtcbiAgICB0KGUsIG4pO1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgICB0aGlzLmNvbnN0cnVjdG9yID0gZTtcbiAgICB9XG4gICAgZS5wcm90b3R5cGUgPSBuID09PSBudWxsID8gT2JqZWN0LmNyZWF0ZShuKSA6IChyLnByb3RvdHlwZSA9IG4ucHJvdG90eXBlLCBuZXcgcigpKTtcbiAgfTtcbn0oKSwgTyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiB0KCkge1xuICAgIH1cbiAgICByZXR1cm4gdC5wcm90b3R5cGUuY3JlYXRlR2F1Z2UgPSBmdW5jdGlvbihlLCBuKSB7XG4gICAgICByZXR1cm4gaDtcbiAgICB9LCB0LnByb3RvdHlwZS5jcmVhdGVIaXN0b2dyYW0gPSBmdW5jdGlvbihlLCBuKSB7XG4gICAgICByZXR1cm4gUDtcbiAgICB9LCB0LnByb3RvdHlwZS5jcmVhdGVDb3VudGVyID0gZnVuY3Rpb24oZSwgbikge1xuICAgICAgcmV0dXJuIG07XG4gICAgfSwgdC5wcm90b3R5cGUuY3JlYXRlVXBEb3duQ291bnRlciA9IGZ1bmN0aW9uKGUsIG4pIHtcbiAgICAgIHJldHVybiBkO1xuICAgIH0sIHQucHJvdG90eXBlLmNyZWF0ZU9ic2VydmFibGVHYXVnZSA9IGZ1bmN0aW9uKGUsIG4pIHtcbiAgICAgIHJldHVybiBSO1xuICAgIH0sIHQucHJvdG90eXBlLmNyZWF0ZU9ic2VydmFibGVDb3VudGVyID0gZnVuY3Rpb24oZSwgbikge1xuICAgICAgcmV0dXJuIHc7XG4gICAgfSwgdC5wcm90b3R5cGUuY3JlYXRlT2JzZXJ2YWJsZVVwRG93bkNvdW50ZXIgPSBmdW5jdGlvbihlLCBuKSB7XG4gICAgICByZXR1cm4gRztcbiAgICB9LCB0LnByb3RvdHlwZS5hZGRCYXRjaE9ic2VydmFibGVDYWxsYmFjayA9IGZ1bmN0aW9uKGUsIG4pIHtcbiAgICB9LCB0LnByb3RvdHlwZS5yZW1vdmVCYXRjaE9ic2VydmFibGVDYWxsYmFjayA9IGZ1bmN0aW9uKGUpIHtcbiAgICB9LCB0O1xuICB9KClcbiksIGkgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHQoKSB7XG4gICAgfVxuICAgIHJldHVybiB0O1xuICB9KClcbiksIE0gPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIGIgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUuYWRkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIE4gPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUucmVjb3JkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIHkgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZS5wcm90b3R5cGUucmVjb3JkID0gZnVuY3Rpb24obiwgcikge1xuICAgIH0sIGU7XG4gIH0oaSlcbiksIHAgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gdCgpIHtcbiAgICB9XG4gICAgcmV0dXJuIHQucHJvdG90eXBlLmFkZENhbGxiYWNrID0gZnVuY3Rpb24oZSkge1xuICAgIH0sIHQucHJvdG90eXBlLnJlbW92ZUNhbGxiYWNrID0gZnVuY3Rpb24oZSkge1xuICAgIH0sIHQ7XG4gIH0oKVxuKSwgZyA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbih0KSB7XG4gICAgbyhlLCB0KTtcbiAgICBmdW5jdGlvbiBlKCkge1xuICAgICAgcmV0dXJuIHQgIT09IG51bGwgJiYgdC5hcHBseSh0aGlzLCBhcmd1bWVudHMpIHx8IHRoaXM7XG4gICAgfVxuICAgIHJldHVybiBlO1xuICB9KHApXG4pLCBDID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKHQpIHtcbiAgICBvKGUsIHQpO1xuICAgIGZ1bmN0aW9uIGUoKSB7XG4gICAgICByZXR1cm4gdCAhPT0gbnVsbCAmJiB0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cykgfHwgdGhpcztcbiAgICB9XG4gICAgcmV0dXJuIGU7XG4gIH0ocClcbiksIEUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24odCkge1xuICAgIG8oZSwgdCk7XG4gICAgZnVuY3Rpb24gZSgpIHtcbiAgICAgIHJldHVybiB0ICE9PSBudWxsICYmIHQuYXBwbHkodGhpcywgYXJndW1lbnRzKSB8fCB0aGlzO1xuICAgIH1cbiAgICByZXR1cm4gZTtcbiAgfShwKVxuKSwgbCA9IG5ldyBPKCksIG0gPSBuZXcgTSgpLCBoID0gbmV3IE4oKSwgUCA9IG5ldyB5KCksIGQgPSBuZXcgYigpLCB3ID0gbmV3IGcoKSwgUiA9IG5ldyBDKCksIEcgPSBuZXcgRSgpO1xuZnVuY3Rpb24gRCgpIHtcbiAgcmV0dXJuIGw7XG59XG52YXIgSSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICBmdW5jdGlvbigpIHtcbiAgICBmdW5jdGlvbiB0KCkge1xuICAgIH1cbiAgICByZXR1cm4gdC5wcm90b3R5cGUuZ2V0TWV0ZXIgPSBmdW5jdGlvbihlLCBuLCByKSB7XG4gICAgICByZXR1cm4gbDtcbiAgICB9LCB0O1xuICB9KClcbiksIFQgPSBuZXcgSSgpLCBjID0gXCJtZXRyaWNzXCIsIFUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gdCgpIHtcbiAgICB9XG4gICAgcmV0dXJuIHQuZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgdCgpKSwgdGhpcy5faW5zdGFuY2U7XG4gICAgfSwgdC5wcm90b3R5cGUuc2V0R2xvYmFsTWV0ZXJQcm92aWRlciA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHJldHVybiBIdChjLCBlLCBndC5pbnN0YW5jZSgpKTtcbiAgICB9LCB0LnByb3RvdHlwZS5nZXRNZXRlclByb3ZpZGVyID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdHQoYykgfHwgVDtcbiAgICB9LCB0LnByb3RvdHlwZS5nZXRNZXRlciA9IGZ1bmN0aW9uKGUsIG4sIHIpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldE1ldGVyUHJvdmlkZXIoKS5nZXRNZXRlcihlLCBuLCByKTtcbiAgICB9LCB0LnByb3RvdHlwZS5kaXNhYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICBCdChjLCBndC5pbnN0YW5jZSgpKTtcbiAgICB9LCB0O1xuICB9KClcbiksIGsgPSBVLmdldEluc3RhbmNlKCk7XG5cbmV4cG9ydCB7IEQsIGsgfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLFNBQVU7QUFFbkQsSUFBSSxJQUFvQiwyQkFBVztBQUNqQyxNQUFJLElBQUksU0FBU0MsR0FBR0MsR0FBRztBQUNyQixXQUFPLElBQUksT0FBTyxrQkFBa0IsRUFBRSxXQUFXLENBQUMsRUFBRSxhQUFhLFNBQVMsU0FBUyxHQUFHQyxHQUFHO0FBQ3ZGLFFBQUUsWUFBWUE7QUFBQSxJQUNoQixLQUFLLFNBQVMsR0FBR0EsR0FBRztBQUNsQixlQUFTQyxLQUFLRCxFQUFHLFFBQU8sVUFBVSxlQUFlLEtBQUtBLEdBQUdDLENBQUMsTUFB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RyxTQUFTRSxJQUFJO0FBQ1gsU0FBT0Q7QUFDVDtBQUNBLElBQUlFO0FBQUE7QUFBQSxFQUVGLFdBQVc7QUFDVCxhQUFTLElBQUk7QUFBQSxJQUNiO0FBQ0EsV0FBTyxFQUFFLFVBQVUsV0FBVyxTQUFTckIsR0FBR0MsR0FBRyxHQUFHO0FBQzlDLGFBQU9rQjtBQUFBLElBQ1QsR0FBRztBQUFBLEVBQ0wsRUFBRTtBQUFBLEdBQ0RHLElBQUksSUFBSUQsRUFBRSxHQUFHRSxJQUFJLFdBQVc7QUFBQTtBQUFBLEVBRTdCLFdBQVc7QUFDVCxhQUFTLElBQUk7QUFBQSxJQUNiO0FBQ0EsV0FBTyxFQUFFLGNBQWMsV0FBVztBQUNoQyxhQUFPLEtBQUssY0FBYyxLQUFLLFlBQVksSUFBSSxFQUFFLElBQUksS0FBSztBQUFBLElBQzVELEdBQUcsRUFBRSxVQUFVLHlCQUF5QixTQUFTdkIsR0FBRztBQUNsRCxhQUFPSixFQUFHMkIsR0FBR3ZCLEdBQUdILEVBQUcsU0FBUyxDQUFDO0FBQUEsSUFDL0IsR0FBRyxFQUFFLFVBQVUsbUJBQW1CLFdBQVc7QUFDM0MsYUFBT0MsRUFBR3lCLENBQUMsS0FBS0Q7QUFBQSxJQUNsQixHQUFHLEVBQUUsVUFBVSxXQUFXLFNBQVN0QixHQUFHQyxHQUFHLEdBQUc7QUFDMUMsYUFBTyxLQUFLLGlCQUFpQixFQUFFLFNBQVNELEdBQUdDLEdBQUcsQ0FBQztBQUFBLElBQ2pELEdBQUcsRUFBRSxVQUFVLFVBQVUsV0FBVztBQUNsQyxNQUFBRixFQUFHd0IsR0FBRzFCLEVBQUcsU0FBUyxDQUFDO0FBQUEsSUFDckIsR0FBRztBQUFBLEVBQ0wsRUFBRTtBQUFBLEdBQ0QyQixJQUFJLEVBQUUsWUFBWTsiLAogICJuYW1lcyI6IFsiSHQiLCAiZ3QiLCAidHQiLCAiQnQiLCAiZSIsICJuIiwgImEiLCAidSIsICJPIiwgImgiLCAibSIsICJkIiwgIlIiLCAidyIsICJHIiwgIk0iLCAiYiIsICJOIiwgInkiLCAicCIsICJnIiwgIkMiLCAiRSIsICJsIiwgIkQiLCAiSSIsICJUIiwgImMiLCAiayJdCn0K