@getopenpay/openpay-js-react 0.5.22 → 0.5.23-alpha.c686112
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/.tsbuildinfo +1 -1
- package/dist/{Resource-RDv_OYD--DOVnTQf8.js → Resource-Bqufvd6P-CJbkxWxw.js} +2 -2
- package/dist/SimpleSpanProcessor-hO22ueIJ-Cv9FGl6y.js +910 -0
- package/dist/{detect-resources-DMhxBMbn-CFwz6AUc.js → detect-resources-C8l3Awo8-BCTDt4gu.js} +6 -6
- package/dist/diag-api-DOqutZFx-Bzvr0pOP.js +6 -0
- package/dist/{index-CdfoeJAp-DGy9f5LV.js → index-3xhH0P5D-of95_Ufe.js} +25 -25
- package/dist/{index-BLOR260n-DBg_rw_q.js → index-4xtCQEYG-DzfD39q4.js} +2 -2
- package/dist/{index-Bv4btlG--BgXZ8It_.js → index-BOfDQO-_-YUeoiHy8.js} +2 -2
- package/dist/{index-CfJbMSyU-DwTBDANB.js → index-BSsuz-Yb-9-_R6HXl.js} +26 -26
- package/dist/{index-C0Xt-V6u-DKR4MQKn.js → index-C-zvuDDY-DTwCMH9r.js} +9 -9
- package/dist/{index-qx6PYu51-ffvgBpdC.js → index-CRKTmEaC-BP3-EWkX.js} +2 -2
- package/dist/{index-52xvCCmQ-BCriUhy8.js → index-CRX8skg5-DfeUBXoe.js} +2 -2
- package/dist/index-CsisjU7H.js +10409 -0
- package/dist/{index-CO9X9rD6-DMEmfuB6.js → index-DdEgRUDs-CjIZC5mx.js} +40 -40
- package/dist/{index-CyHGGg8O-B-FjeveS.js → index-K18LjHNf-CkejilYI.js} +5 -5
- package/dist/index.js +8 -8
- package/dist/{metrics-api-BE_EH1nB-CMvMqYuL.js → metrics-api-nJX9ZPfo-CQIWHKE5.js} +17 -17
- package/dist/{suppress-tracing-DC92UyIm-DTVYi1he.js → suppress-tracing-Ba9zc_dY-CrFklNqj.js} +2 -2
- package/dist/{url-D5ihpicR-nwwImGw7.js → url-DLlFYdQX-B8neI6Dm.js} +26 -26
- package/dist/{utils-cnUBBxg7-CQDXrQZ_.js → utils-AiTA4e5h-dYPSrQK7.js} +8 -8
- package/dist/{utils-BsYV6OtD-BJDXHCRo.js → utils-D366CLjx-D5uWGo_B.js} +2 -2
- package/package.json +1 -1
- package/dist/SimpleSpanProcessor-Bd-6B4X9-a_QNmJDG.js +0 -910
- package/dist/diag-api-D2LkPxpn-DzR6SHCy.js +0 -6
- package/dist/index-VZYud60f.js +0 -10123
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { r as B } from "./diag-api-
|
|
2
|
-
import { J as M, q as z, Z as $, $ as W, y as v, a as
|
|
3
|
-
import { B as
|
|
4
|
-
import { T as E, y as k, C as
|
|
5
|
-
import {
|
|
1
|
+
import { r as B } from "./diag-api-DOqutZFx-Bzvr0pOP.js";
|
|
2
|
+
import { J as M, q as z, Z as $, $ as W, y as v, a as V, x as X, k as Z, p as C, O as G, E as I, h as b } from "./url-DLlFYdQX-B8neI6Dm.js";
|
|
3
|
+
import { B as J, U as K, W as Q } from "./utils-AiTA4e5h-dYPSrQK7.js";
|
|
4
|
+
import { T as E, y as k, C as O, b as Y, V as tt } from "./utils-D366CLjx-D5uWGo_B.js";
|
|
5
|
+
import { V as x, O as h, l as et } from "./index-CsisjU7H.js";
|
|
6
6
|
var g;
|
|
7
7
|
(function(o) {
|
|
8
8
|
o.COMPONENT = "component", o.HTTP_ERROR_NAME = "http.error_name", o.HTTP_STATUS_TEXT = "http.status_text";
|
|
@@ -117,7 +117,7 @@ var nt = function(o, i, t, n) {
|
|
|
117
117
|
}
|
|
118
118
|
}
|
|
119
119
|
return e;
|
|
120
|
-
},
|
|
120
|
+
}, N = B.createComponentLogger({
|
|
121
121
|
namespace: "@opentelemetry/opentelemetry-instrumentation-fetch/utils"
|
|
122
122
|
});
|
|
123
123
|
function st() {
|
|
@@ -141,7 +141,7 @@ function st() {
|
|
|
141
141
|
}
|
|
142
142
|
function at(o) {
|
|
143
143
|
if (!o.pipeThrough)
|
|
144
|
-
return
|
|
144
|
+
return N.warn("Platform has ReadableStream but not pipeThrough!"), {
|
|
145
145
|
body: o,
|
|
146
146
|
length: Promise.resolve(void 0)
|
|
147
147
|
};
|
|
@@ -188,7 +188,7 @@ function ut(o) {
|
|
|
188
188
|
return S(o.toString());
|
|
189
189
|
if (typeof o == "string")
|
|
190
190
|
return S(o);
|
|
191
|
-
|
|
191
|
+
N.warn("unknown body type");
|
|
192
192
|
}
|
|
193
193
|
var ct = new TextEncoder();
|
|
194
194
|
function S(o) {
|
|
@@ -212,7 +212,7 @@ function ft(o) {
|
|
|
212
212
|
}
|
|
213
213
|
return n;
|
|
214
214
|
}
|
|
215
|
-
var
|
|
215
|
+
var P = "0.57.2", lt = /* @__PURE__ */ (function() {
|
|
216
216
|
var o = function(i, t) {
|
|
217
217
|
return o = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(n, r) {
|
|
218
218
|
n.__proto__ = r;
|
|
@@ -249,23 +249,23 @@ var O = "0.57.2", lt = /* @__PURE__ */ (function() {
|
|
|
249
249
|
if (arguments.length === 2) for (var n = 0, r = i.length, e; n < r; n++)
|
|
250
250
|
(e || !(n in i)) && (e || (e = Array.prototype.slice.call(i, 0, n)), e[n] = i[n]);
|
|
251
251
|
return o.concat(e || Array.prototype.slice.call(i));
|
|
252
|
-
}, _, yt = 300,
|
|
252
|
+
}, _, yt = 300, U = typeof process == "object" && ((_ = process.release) === null || _ === void 0 ? void 0 : _.name) === "node", _t = (
|
|
253
253
|
/** @class */
|
|
254
254
|
(function(o) {
|
|
255
255
|
lt(i, o);
|
|
256
256
|
function i(t) {
|
|
257
257
|
t === void 0 && (t = {});
|
|
258
|
-
var n = o.call(this, "@opentelemetry/instrumentation-fetch",
|
|
259
|
-
return n.component = "fetch", n.version =
|
|
258
|
+
var n = o.call(this, "@opentelemetry/instrumentation-fetch", P, t) || this;
|
|
259
|
+
return n.component = "fetch", n.version = P, n.moduleName = n.component, n._usedResources = /* @__PURE__ */ new WeakSet(), n._tasksCount = 0, n;
|
|
260
260
|
}
|
|
261
261
|
return i.prototype.init = function() {
|
|
262
262
|
}, i.prototype._addChildSpan = function(t, n) {
|
|
263
263
|
var r = this.tracer.startSpan("CORS Preflight", {
|
|
264
264
|
startTime: n[E.FETCH_START]
|
|
265
|
-
},
|
|
265
|
+
}, x.setSpan(h.active(), t));
|
|
266
266
|
k(r, n, this.getConfig().ignoreNetworkEvents), r.end(n[E.RESPONSE_END]);
|
|
267
267
|
}, i.prototype._addFinalSpanAttributes = function(t, n) {
|
|
268
|
-
var r =
|
|
268
|
+
var r = O(n.url);
|
|
269
269
|
t.setAttribute(M, n.status), n.statusText != null && t.setAttribute(g.HTTP_STATUS_TEXT, n.statusText), t.setAttribute(z, r.host), t.setAttribute($, r.protocol.replace(":", "")), typeof navigator < "u" && t.setAttribute(W, navigator.userAgent);
|
|
270
270
|
}, i.prototype._addHeaders = function(t, n) {
|
|
271
271
|
if (!Y(n, this.getConfig().propagateTraceHeaderCorsUrls)) {
|
|
@@ -299,14 +299,14 @@ var O = "0.57.2", lt = /* @__PURE__ */ (function() {
|
|
|
299
299
|
this._tasksCount === 0 && this.getConfig().clearTimingResources && (performance.clearResourceTimings(), this._usedResources = /* @__PURE__ */ new WeakSet());
|
|
300
300
|
}, i.prototype._createSpan = function(t, n) {
|
|
301
301
|
var r;
|
|
302
|
-
if (n === void 0 && (n = {}),
|
|
302
|
+
if (n === void 0 && (n = {}), V(t, this.getConfig().ignoreUrls)) {
|
|
303
303
|
this._diag.debug("ignoring span as url matches ignored url");
|
|
304
304
|
return;
|
|
305
305
|
}
|
|
306
306
|
var e = (n.method || "GET").toUpperCase(), s = "HTTP " + e;
|
|
307
307
|
return this.tracer.startSpan(s, {
|
|
308
308
|
kind: et.CLIENT,
|
|
309
|
-
attributes: (r = {}, r[g.COMPONENT] = this.moduleName, r[
|
|
309
|
+
attributes: (r = {}, r[g.COMPONENT] = this.moduleName, r[X] = e, r[Z] = t, r)
|
|
310
310
|
});
|
|
311
311
|
}, i.prototype._findResourceAndAddNetworkEvents = function(t, n, r) {
|
|
312
312
|
var e = n.entries;
|
|
@@ -325,7 +325,7 @@ var O = "0.57.2", lt = /* @__PURE__ */ (function() {
|
|
|
325
325
|
}, i.prototype._markResourceAsUsed = function(t) {
|
|
326
326
|
this._usedResources.add(t);
|
|
327
327
|
}, i.prototype._endSpan = function(t, n, r) {
|
|
328
|
-
var e = this, s =
|
|
328
|
+
var e = this, s = G(Date.now()), a = C();
|
|
329
329
|
this._addFinalSpanAttributes(t, r), setTimeout(function() {
|
|
330
330
|
var c;
|
|
331
331
|
(c = n.observer) === null || c === void 0 || c.disconnect(), e._findResourceAndAddNetworkEvents(t, n, a), e._tasksCount--, e._clearResources(), t.end(s);
|
|
@@ -337,12 +337,12 @@ var O = "0.57.2", lt = /* @__PURE__ */ (function() {
|
|
|
337
337
|
return function() {
|
|
338
338
|
for (var e = [], s = 0; s < arguments.length; s++)
|
|
339
339
|
e[s] = arguments[s];
|
|
340
|
-
var a = this, c =
|
|
340
|
+
var a = this, c = O(e[0] instanceof Request ? e[0].url : String(e[0])).href, u = e[0] instanceof Request ? e[0] : e[1] || {}, l = r._createSpan(c, u);
|
|
341
341
|
if (!l)
|
|
342
342
|
return n.apply(this, e);
|
|
343
343
|
var y = r._prepareSpanData(c);
|
|
344
344
|
r.getConfig().measureRequestSize && st.apply(void 0, ht([], pt(e), !1)).then(function(f) {
|
|
345
|
-
f && l.setAttribute(
|
|
345
|
+
f && l.setAttribute(I, f);
|
|
346
346
|
}).catch(function(f) {
|
|
347
347
|
r._diag.warn("getFetchBodyLength", f);
|
|
348
348
|
});
|
|
@@ -360,7 +360,7 @@ var O = "0.57.2", lt = /* @__PURE__ */ (function() {
|
|
|
360
360
|
url: c
|
|
361
361
|
});
|
|
362
362
|
}
|
|
363
|
-
function
|
|
363
|
+
function j(f, p, d) {
|
|
364
364
|
try {
|
|
365
365
|
var F = d.clone(), L = d.clone(), A = F.body;
|
|
366
366
|
if (A) {
|
|
@@ -387,15 +387,15 @@ var O = "0.57.2", lt = /* @__PURE__ */ (function() {
|
|
|
387
387
|
}
|
|
388
388
|
}
|
|
389
389
|
return new Promise(function(f, p) {
|
|
390
|
-
return h.with(
|
|
391
|
-
return r._addHeaders(u, c), r._tasksCount++, n.apply(a, u instanceof Request ? [u] : [c, u]).then(
|
|
390
|
+
return h.with(x.setSpan(h.active(), l), function() {
|
|
391
|
+
return r._addHeaders(u, c), r._tasksCount++, n.apply(a, u instanceof Request ? [u] : [c, u]).then(j.bind(a, l, f), q.bind(a, l, p));
|
|
392
392
|
});
|
|
393
393
|
});
|
|
394
394
|
};
|
|
395
395
|
};
|
|
396
396
|
}, i.prototype._applyAttributesAfterFetch = function(t, n, r) {
|
|
397
397
|
var e = this, s = this.getConfig().applyCustomAttributesOnSpan;
|
|
398
|
-
s &&
|
|
398
|
+
s && J(function() {
|
|
399
399
|
return s(t, n, r);
|
|
400
400
|
}, function(a) {
|
|
401
401
|
a && e._diag.error("applyCustomAttributesOnSpan", a);
|
|
@@ -414,17 +414,17 @@ var O = "0.57.2", lt = /* @__PURE__ */ (function() {
|
|
|
414
414
|
entryTypes: ["resource"]
|
|
415
415
|
}), { entries: r, observer: e, startTime: n, spanUrl: t };
|
|
416
416
|
}, i.prototype.enable = function() {
|
|
417
|
-
if (
|
|
417
|
+
if (U) {
|
|
418
418
|
this._diag.warn("this instrumentation is intended for web usage only, it does not instrument Node.js's fetch()");
|
|
419
419
|
return;
|
|
420
420
|
}
|
|
421
421
|
K(fetch) && (this._unwrap(b, "fetch"), this._diag.debug("removing previous patch for constructor")), this._wrap(b, "fetch", this._patchConstructor());
|
|
422
422
|
}, i.prototype.disable = function() {
|
|
423
|
-
|
|
423
|
+
U || (this._unwrap(b, "fetch"), this._usedResources = /* @__PURE__ */ new WeakSet());
|
|
424
424
|
}, i;
|
|
425
425
|
})(Q)
|
|
426
426
|
);
|
|
427
427
|
export {
|
|
428
428
|
_t as FetchInstrumentation
|
|
429
429
|
};
|
|
430
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtQ2ZKYk1TeVUtIX57MDA5fX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLUQyTGtQeHBuLSF+ezAwYX1+LmpzJztcbmltcG9ydCB7IEogYXMgSkEsIHEgYXMgcUEsIFogYXMgWkEsICQgYXMgJEEsIHkgYXMgeV8sIGEgYXMgWmUsIHggYXMgeEEsIGsgYXMga0EsIHAgYXMgcF8sIE8sIEUgYXMgRXIsIGggYXMgaF8gfSBmcm9tICcuL3VybC1ENWlocGljUi0hfnswMGJ9fi5qcyc7XG5pbXBvcnQgeyBCLCBVIGFzIFUkMSwgVyB9IGZyb20gJy4vdXRpbHMtY25VQkJ4ZzctIX57MDBjfX4uanMnO1xuaW1wb3J0IHsgVCwgeSBhcyB5JDEsIEMsIGIgYXMgYiQxLCBWIH0gZnJvbSAnLi91dGlscy1Cc1lWNk90RC0hfnswMDh9fi5qcyc7XG5pbXBvcnQgeyBqIGFzIGplLCB4IGFzIHhlLCBhIGFzIGF0IH0gZnJvbSAnLi9pbmRleC0hfnswMDd9fi5qcyc7XG5cbnZhciB5O1xuKGZ1bmN0aW9uKGEpIHtcbiAgYS5DT01QT05FTlQgPSBcImNvbXBvbmVudFwiLCBhLkhUVFBfRVJST1JfTkFNRSA9IFwiaHR0cC5lcnJvcl9uYW1lXCIsIGEuSFRUUF9TVEFUVVNfVEVYVCA9IFwiaHR0cC5zdGF0dXNfdGV4dFwiO1xufSkoeSB8fCAoeSA9IHt9KSk7XG52YXIgbmUgPSBmdW5jdGlvbihhLCBvLCBlLCByKSB7XG4gIGZ1bmN0aW9uIG4odCkge1xuICAgIHJldHVybiB0IGluc3RhbmNlb2YgZSA/IHQgOiBuZXcgZShmdW5jdGlvbihpKSB7XG4gICAgICBpKHQpO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBuZXcgKGUgfHwgKGUgPSBQcm9taXNlKSkoZnVuY3Rpb24odCwgaSkge1xuICAgIGZ1bmN0aW9uIHMoYykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdShyLm5leHQoYykpO1xuICAgICAgfSBjYXRjaCAoaCkge1xuICAgICAgICBpKGgpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmKGMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHUoci50aHJvdyhjKSk7XG4gICAgICB9IGNhdGNoIChoKSB7XG4gICAgICAgIGkoaCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHUoYykge1xuICAgICAgYy5kb25lID8gdChjLnZhbHVlKSA6IG4oYy52YWx1ZSkudGhlbihzLCBmKTtcbiAgICB9XG4gICAgdSgociA9IHIuYXBwbHkoYSwgW10pKS5uZXh0KCkpO1xuICB9KTtcbn0sIGFlID0gZnVuY3Rpb24oYSwgbykge1xuICB2YXIgZSA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTtcbiAgICByZXR1cm4gdFsxXTtcbiAgfSwgdHJ5czogW10sIG9wczogW10gfSwgciwgbiwgdCwgaTtcbiAgcmV0dXJuIGkgPSB7IG5leHQ6IHMoMCksIHRocm93OiBzKDEpLCByZXR1cm46IHMoMikgfSwgdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgKGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgaTtcbiAgZnVuY3Rpb24gcyh1KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGMpIHtcbiAgICAgIHJldHVybiBmKFt1LCBjXSk7XG4gICAgfTtcbiAgfVxuICBmdW5jdGlvbiBmKHUpIHtcbiAgICBpZiAocikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgZm9yICg7IGU7ICkgdHJ5IHtcbiAgICAgIGlmIChyID0gMSwgbiAmJiAodCA9IHVbMF0gJiAyID8gbi5yZXR1cm4gOiB1WzBdID8gbi50aHJvdyB8fCAoKHQgPSBuLnJldHVybikgJiYgdC5jYWxsKG4pLCAwKSA6IG4ubmV4dCkgJiYgISh0ID0gdC5jYWxsKG4sIHVbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgIHN3aXRjaCAobiA9IDAsIHQgJiYgKHUgPSBbdVswXSAmIDIsIHQudmFsdWVdKSwgdVswXSkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICB0ID0gdTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHJldHVybiBlLmxhYmVsKyssIHsgdmFsdWU6IHVbMV0sIGRvbmU6ICExIH07XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBlLmxhYmVsKyssIG4gPSB1WzFdLCB1ID0gWzBdO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgdSA9IGUub3BzLnBvcCgpLCBlLnRyeXMucG9wKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgaWYgKHQgPSBlLnRyeXMsICEodCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmICh1WzBdID09PSA2IHx8IHVbMF0gPT09IDIpKSB7XG4gICAgICAgICAgICBlID0gMDtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodVswXSA9PT0gMyAmJiAoIXQgfHwgdVsxXSA+IHRbMF0gJiYgdVsxXSA8IHRbM10pKSB7XG4gICAgICAgICAgICBlLmxhYmVsID0gdVsxXTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodVswXSA9PT0gNiAmJiBlLmxhYmVsIDwgdFsxXSkge1xuICAgICAgICAgICAgZS5sYWJlbCA9IHRbMV0sIHQgPSB1O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0ICYmIGUubGFiZWwgPCB0WzJdKSB7XG4gICAgICAgICAgICBlLmxhYmVsID0gdFsyXSwgZS5vcHMucHVzaCh1KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0WzJdICYmIGUub3BzLnBvcCgpLCBlLnRyeXMucG9wKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB1ID0gby5jYWxsKGEsIGUpO1xuICAgIH0gY2F0Y2ggKGMpIHtcbiAgICAgIHUgPSBbNiwgY10sIG4gPSAwO1xuICAgIH0gZmluYWxseSB7XG4gICAgICByID0gdCA9IDA7XG4gICAgfVxuICAgIGlmICh1WzBdICYgNSkgdGhyb3cgdVsxXTtcbiAgICByZXR1cm4geyB2YWx1ZTogdVswXSA/IHVbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgfVxufSwgaWUgPSBmdW5jdGlvbihhKSB7XG4gIHZhciBvID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBlID0gbyAmJiBhW29dLCByID0gMDtcbiAgaWYgKGUpIHJldHVybiBlLmNhbGwoYSk7XG4gIGlmIChhICYmIHR5cGVvZiBhLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIGEgJiYgciA+PSBhLmxlbmd0aCAmJiAoYSA9IHZvaWQgMCksIHsgdmFsdWU6IGEgJiYgYVtyKytdLCBkb25lOiAhYSB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihvID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgb2UgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgYVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiBhO1xuICB2YXIgciA9IGUuY2FsbChhKSwgbiwgdCA9IFtdLCBpO1xuICB0cnkge1xuICAgIGZvciAoOyAobyA9PT0gdm9pZCAwIHx8IG8tLSA+IDApICYmICEobiA9IHIubmV4dCgpKS5kb25lOyApIHQucHVzaChuLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGkgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG4gJiYgIW4uZG9uZSAmJiAoZSA9IHIucmV0dXJuKSAmJiBlLmNhbGwocik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChpKSB0aHJvdyBpLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIFUgPSByLmNyZWF0ZUNvbXBvbmVudExvZ2dlcih7XG4gIG5hbWVzcGFjZTogXCJAb3BlbnRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWluc3RydW1lbnRhdGlvbi1mZXRjaC91dGlsc1wiXG59KTtcbmZ1bmN0aW9uIHNlKCkge1xuICBmb3IgKHZhciBhID0gW10sIG8gPSAwOyBvIDwgYXJndW1lbnRzLmxlbmd0aDsgbysrKVxuICAgIGFbb10gPSBhcmd1bWVudHNbb107XG4gIGlmIChhWzBdIGluc3RhbmNlb2YgVVJMIHx8IHR5cGVvZiBhWzBdID09IFwic3RyaW5nXCIpIHtcbiAgICB2YXIgZSA9IGFbMV07XG4gICAgaWYgKCFlPy5ib2R5KVxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIGlmIChlLmJvZHkgaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbSkge1xuICAgICAgdmFyIHIgPSB1ZShlLmJvZHkpLCBuID0gci5ib2R5LCB0ID0gci5sZW5ndGg7XG4gICAgICByZXR1cm4gZS5ib2R5ID0gbiwgdDtcbiAgICB9IGVsc2VcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmUoZS5ib2R5KSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGkgPSBhWzBdO1xuICAgIHJldHVybiBpPy5ib2R5ID8gaS5jbG9uZSgpLnRleHQoKS50aGVuKGZ1bmN0aW9uKHMpIHtcbiAgICAgIHJldHVybiBiKHMpO1xuICAgIH0pIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cbn1cbmZ1bmN0aW9uIHVlKGEpIHtcbiAgaWYgKCFhLnBpcGVUaHJvdWdoKVxuICAgIHJldHVybiBVLndhcm4oXCJQbGF0Zm9ybSBoYXMgUmVhZGFibGVTdHJlYW0gYnV0IG5vdCBwaXBlVGhyb3VnaCFcIiksIHtcbiAgICAgIGJvZHk6IGEsXG4gICAgICBsZW5ndGg6IFByb21pc2UucmVzb2x2ZSh2b2lkIDApXG4gICAgfTtcbiAgdmFyIG8gPSAwLCBlLCByID0gbmV3IFByb21pc2UoZnVuY3Rpb24odCkge1xuICAgIGUgPSB0O1xuICB9KSwgbiA9IG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgIHN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB9LFxuICAgIHRyYW5zZm9ybTogZnVuY3Rpb24odCwgaSkge1xuICAgICAgcmV0dXJuIG5lKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHM7XG4gICAgICAgIHJldHVybiBhZSh0aGlzLCBmdW5jdGlvbihmKSB7XG4gICAgICAgICAgc3dpdGNoIChmLmxhYmVsKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIHJldHVybiBbNCwgdF07XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgIHJldHVybiBzID0gZi5zZW50KCksIG8gKz0gcy5ieXRlTGVuZ3RoLCBpLmVucXVldWUodCksIFtcbiAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICAgICAgLypyZXR1cm4qL1xuICAgICAgICAgICAgICBdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGZsdXNoOiBmdW5jdGlvbigpIHtcbiAgICAgIGUobyk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBib2R5OiBhLnBpcGVUaHJvdWdoKG4pLFxuICAgIGxlbmd0aDogclxuICB9O1xufVxuZnVuY3Rpb24gZmUoYSkge1xuICBpZiAodHlwZW9mIERvY3VtZW50IDwgXCJ1XCIgJiYgYSBpbnN0YW5jZW9mIERvY3VtZW50KVxuICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKGRvY3VtZW50KS5sZW5ndGg7XG4gIGlmIChhIGluc3RhbmNlb2YgQmxvYilcbiAgICByZXR1cm4gYS5zaXplO1xuICBpZiAoYS5ieXRlTGVuZ3RoICE9PSB2b2lkIDApXG4gICAgcmV0dXJuIGEuYnl0ZUxlbmd0aDtcbiAgaWYgKGEgaW5zdGFuY2VvZiBGb3JtRGF0YSlcbiAgICByZXR1cm4gbGUoYSk7XG4gIGlmIChhIGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zKVxuICAgIHJldHVybiBiKGEudG9TdHJpbmcoKSk7XG4gIGlmICh0eXBlb2YgYSA9PSBcInN0cmluZ1wiKVxuICAgIHJldHVybiBiKGEpO1xuICBVLndhcm4oXCJ1bmtub3duIGJvZHkgdHlwZVwiKTtcbn1cbnZhciBjZSA9IG5ldyBUZXh0RW5jb2RlcigpO1xuZnVuY3Rpb24gYihhKSB7XG4gIHJldHVybiBjZS5lbmNvZGUoYSkuYnl0ZUxlbmd0aDtcbn1cbmZ1bmN0aW9uIGxlKGEpIHtcbiAgdmFyIG8sIGUsIHIgPSAwO1xuICB0cnkge1xuICAgIGZvciAodmFyIG4gPSBpZShhLmVudHJpZXMoKSksIHQgPSBuLm5leHQoKTsgIXQuZG9uZTsgdCA9IG4ubmV4dCgpKSB7XG4gICAgICB2YXIgaSA9IG9lKHQudmFsdWUsIDIpLCBzID0gaVswXSwgZiA9IGlbMV07XG4gICAgICByICs9IHMubGVuZ3RoLCBmIGluc3RhbmNlb2YgQmxvYiA/IHIgKz0gZi5zaXplIDogciArPSBmLmxlbmd0aDtcbiAgICB9XG4gIH0gY2F0Y2ggKHUpIHtcbiAgICBvID0geyBlcnJvcjogdSB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICB0ICYmICF0LmRvbmUgJiYgKGUgPSBuLnJldHVybikgJiYgZS5jYWxsKG4pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAobykgdGhyb3cgby5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHI7XG59XG52YXIgayA9IFwiMC41Ny4yXCIsIGRlID0gLyogQF9fUFVSRV9fICovIChmdW5jdGlvbigpIHtcbiAgdmFyIGEgPSBmdW5jdGlvbihvLCBlKSB7XG4gICAgcmV0dXJuIGEgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihyLCBuKSB7XG4gICAgICByLl9fcHJvdG9fXyA9IG47XG4gICAgfSB8fCBmdW5jdGlvbihyLCBuKSB7XG4gICAgICBmb3IgKHZhciB0IGluIG4pIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLCB0KSAmJiAoclt0XSA9IG5bdF0pO1xuICAgIH0sIGEobywgZSk7XG4gIH07XG4gIHJldHVybiBmdW5jdGlvbihvLCBlKSB7XG4gICAgaWYgKHR5cGVvZiBlICE9IFwiZnVuY3Rpb25cIiAmJiBlICE9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoZSkgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICAgIGEobywgZSk7XG4gICAgZnVuY3Rpb24gcigpIHtcbiAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBvO1xuICAgIH1cbiAgICBvLnByb3RvdHlwZSA9IGUgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGUpIDogKHIucHJvdG90eXBlID0gZS5wcm90b3R5cGUsIG5ldyByKCkpO1xuICB9O1xufSkoKSwgaGUgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgYVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiBhO1xuICB2YXIgciA9IGUuY2FsbChhKSwgbiwgdCA9IFtdLCBpO1xuICB0cnkge1xuICAgIGZvciAoOyAobyA9PT0gdm9pZCAwIHx8IG8tLSA+IDApICYmICEobiA9IHIubmV4dCgpKS5kb25lOyApIHQucHVzaChuLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGkgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG4gJiYgIW4uZG9uZSAmJiAoZSA9IHIucmV0dXJuKSAmJiBlLmNhbGwocik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChpKSB0aHJvdyBpLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIHBlID0gZnVuY3Rpb24oYSwgbywgZSkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgciA9IDAsIG4gPSBvLmxlbmd0aCwgdDsgciA8IG47IHIrKylcbiAgICAodCB8fCAhKHIgaW4gbykpICYmICh0IHx8ICh0ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobywgMCwgcikpLCB0W3JdID0gb1tyXSk7XG4gIHJldHVybiBhLmNvbmNhdCh0IHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG8pKTtcbn0sIFMsIHZlID0gMzAwLCBIID0gdHlwZW9mIHByb2Nlc3MgPT0gXCJvYmplY3RcIiAmJiAoKFMgPSBwcm9jZXNzLnJlbGVhc2UpID09PSBudWxsIHx8IFMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IFMubmFtZSkgPT09IFwibm9kZVwiLCBTZSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oYSkge1xuICAgIGRlKG8sIGEpO1xuICAgIGZ1bmN0aW9uIG8oZSkge1xuICAgICAgZSA9PT0gdm9pZCAwICYmIChlID0ge30pO1xuICAgICAgdmFyIHIgPSBhLmNhbGwodGhpcywgXCJAb3BlbnRlbGVtZXRyeS9pbnN0cnVtZW50YXRpb24tZmV0Y2hcIiwgaywgZSkgfHwgdGhpcztcbiAgICAgIHJldHVybiByLmNvbXBvbmVudCA9IFwiZmV0Y2hcIiwgci52ZXJzaW9uID0gaywgci5tb2R1bGVOYW1lID0gci5jb21wb25lbnQsIHIuX3VzZWRSZXNvdXJjZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtTZXQoKSwgci5fdGFza3NDb3VudCA9IDAsIHI7XG4gICAgfVxuICAgIHJldHVybiBvLnByb3RvdHlwZS5pbml0ID0gZnVuY3Rpb24oKSB7XG4gICAgfSwgby5wcm90b3R5cGUuX2FkZENoaWxkU3BhbiA9IGZ1bmN0aW9uKGUsIHIpIHtcbiAgICAgIHZhciBuID0gdGhpcy50cmFjZXIuc3RhcnRTcGFuKFwiQ09SUyBQcmVmbGlnaHRcIiwge1xuICAgICAgICBzdGFydFRpbWU6IHJbVC5GRVRDSF9TVEFSVF1cbiAgICAgIH0sIGplLnNldFNwYW4oeGUuYWN0aXZlKCksIGUpKTtcbiAgICAgIHkkMShuLCByLCB0aGlzLmdldENvbmZpZygpLmlnbm9yZU5ldHdvcmtFdmVudHMpLCBuLmVuZChyW1QuUkVTUE9OU0VfRU5EXSk7XG4gICAgfSwgby5wcm90b3R5cGUuX2FkZEZpbmFsU3BhbkF0dHJpYnV0ZXMgPSBmdW5jdGlvbihlLCByKSB7XG4gICAgICB2YXIgbiA9IEMoci51cmwpO1xuICAgICAgZS5zZXRBdHRyaWJ1dGUoSkEsIHIuc3RhdHVzKSwgci5zdGF0dXNUZXh0ICE9IG51bGwgJiYgZS5zZXRBdHRyaWJ1dGUoeS5IVFRQX1NUQVRVU19URVhULCByLnN0YXR1c1RleHQpLCBlLnNldEF0dHJpYnV0ZShxQSwgbi5ob3N0KSwgZS5zZXRBdHRyaWJ1dGUoWkEsIG4ucHJvdG9jb2wucmVwbGFjZShcIjpcIiwgXCJcIikpLCB0eXBlb2YgbmF2aWdhdG9yIDwgXCJ1XCIgJiYgZS5zZXRBdHRyaWJ1dGUoJEEsIG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9hZGRIZWFkZXJzID0gZnVuY3Rpb24oZSwgcikge1xuICAgICAgaWYgKCFiJDEociwgdGhpcy5nZXRDb25maWcoKS5wcm9wYWdhdGVUcmFjZUhlYWRlckNvcnNVcmxzKSkge1xuICAgICAgICB2YXIgbiA9IHt9O1xuICAgICAgICB5Xy5pbmplY3QoeGUuYWN0aXZlKCksIG4pLCBPYmplY3Qua2V5cyhuKS5sZW5ndGggPiAwICYmIHRoaXMuX2RpYWcuZGVidWcoXCJoZWFkZXJzIGluamVjdCBza2lwcGVkIGR1ZSB0byBDT1JTIHBvbGljeVwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBSZXF1ZXN0KVxuICAgICAgICB5Xy5pbmplY3QoeGUuYWN0aXZlKCksIGUuaGVhZGVycywge1xuICAgICAgICAgIHNldDogZnVuY3Rpb24odCwgaSwgcykge1xuICAgICAgICAgICAgcmV0dXJuIHQuc2V0KGksIHR5cGVvZiBzID09IFwic3RyaW5nXCIgPyBzIDogU3RyaW5nKHMpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgZWxzZSBpZiAoZS5oZWFkZXJzIGluc3RhbmNlb2YgSGVhZGVycylcbiAgICAgICAgeV8uaW5qZWN0KHhlLmFjdGl2ZSgpLCBlLmhlYWRlcnMsIHtcbiAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHQsIGksIHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0LnNldChpLCB0eXBlb2YgcyA9PSBcInN0cmluZ1wiID8gcyA6IFN0cmluZyhzKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIGVsc2UgaWYgKGUuaGVhZGVycyBpbnN0YW5jZW9mIE1hcClcbiAgICAgICAgeV8uaW5qZWN0KHhlLmFjdGl2ZSgpLCBlLmhlYWRlcnMsIHtcbiAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHQsIGksIHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0LnNldChpLCB0eXBlb2YgcyA9PSBcInN0cmluZ1wiID8gcyA6IFN0cmluZyhzKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgbiA9IHt9O1xuICAgICAgICB5Xy5pbmplY3QoeGUuYWN0aXZlKCksIG4pLCBlLmhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHt9LCBuLCBlLmhlYWRlcnMgfHwge30pO1xuICAgICAgfVxuICAgIH0sIG8ucHJvdG90eXBlLl9jbGVhclJlc291cmNlcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgdGhpcy5fdGFza3NDb3VudCA9PT0gMCAmJiB0aGlzLmdldENvbmZpZygpLmNsZWFyVGltaW5nUmVzb3VyY2VzICYmIChwZXJmb3JtYW5jZS5jbGVhclJlc291cmNlVGltaW5ncygpLCB0aGlzLl91c2VkUmVzb3VyY2VzID0gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrU2V0KCkpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9jcmVhdGVTcGFuID0gZnVuY3Rpb24oZSwgcikge1xuICAgICAgdmFyIG47XG4gICAgICBpZiAociA9PT0gdm9pZCAwICYmIChyID0ge30pLCBaZShlLCB0aGlzLmdldENvbmZpZygpLmlnbm9yZVVybHMpKSB7XG4gICAgICAgIHRoaXMuX2RpYWcuZGVidWcoXCJpZ25vcmluZyBzcGFuIGFzIHVybCBtYXRjaGVzIGlnbm9yZWQgdXJsXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIgdCA9IChyLm1ldGhvZCB8fCBcIkdFVFwiKS50b1VwcGVyQ2FzZSgpLCBpID0gXCJIVFRQIFwiICsgdDtcbiAgICAgIHJldHVybiB0aGlzLnRyYWNlci5zdGFydFNwYW4oaSwge1xuICAgICAgICBraW5kOiBhdC5DTElFTlQsXG4gICAgICAgIGF0dHJpYnV0ZXM6IChuID0ge30sIG5beS5DT01QT05FTlRdID0gdGhpcy5tb2R1bGVOYW1lLCBuW3hBXSA9IHQsIG5ba0FdID0gZSwgbilcbiAgICAgIH0pO1xuICAgIH0sIG8ucHJvdG90eXBlLl9maW5kUmVzb3VyY2VBbmRBZGROZXR3b3JrRXZlbnRzID0gZnVuY3Rpb24oZSwgciwgbikge1xuICAgICAgdmFyIHQgPSByLmVudHJpZXM7XG4gICAgICBpZiAoIXQubGVuZ3RoKSB7XG4gICAgICAgIGlmICghcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSlcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIHQgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKFwicmVzb3VyY2VcIik7XG4gICAgICB9XG4gICAgICB2YXIgaSA9IFYoci5zcGFuVXJsLCByLnN0YXJ0VGltZSwgbiwgdCwgdGhpcy5fdXNlZFJlc291cmNlcywgXCJmZXRjaFwiKTtcbiAgICAgIGlmIChpLm1haW5SZXF1ZXN0KSB7XG4gICAgICAgIHZhciBzID0gaS5tYWluUmVxdWVzdDtcbiAgICAgICAgdGhpcy5fbWFya1Jlc291cmNlQXNVc2VkKHMpO1xuICAgICAgICB2YXIgZiA9IGkuY29yc1ByZUZsaWdodFJlcXVlc3Q7XG4gICAgICAgIGYgJiYgKHRoaXMuX2FkZENoaWxkU3BhbihlLCBmKSwgdGhpcy5fbWFya1Jlc291cmNlQXNVc2VkKGYpKSwgeSQxKGUsIHMsIHRoaXMuZ2V0Q29uZmlnKCkuaWdub3JlTmV0d29ya0V2ZW50cyk7XG4gICAgICB9XG4gICAgfSwgby5wcm90b3R5cGUuX21hcmtSZXNvdXJjZUFzVXNlZCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHRoaXMuX3VzZWRSZXNvdXJjZXMuYWRkKGUpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9lbmRTcGFuID0gZnVuY3Rpb24oZSwgciwgbikge1xuICAgICAgdmFyIHQgPSB0aGlzLCBpID0gTyhEYXRlLm5vdygpKSwgcyA9IHBfKCk7XG4gICAgICB0aGlzLl9hZGRGaW5hbFNwYW5BdHRyaWJ1dGVzKGUsIG4pLCBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgZjtcbiAgICAgICAgKGYgPSByLm9ic2VydmVyKSA9PT0gbnVsbCB8fCBmID09PSB2b2lkIDAgfHwgZi5kaXNjb25uZWN0KCksIHQuX2ZpbmRSZXNvdXJjZUFuZEFkZE5ldHdvcmtFdmVudHMoZSwgciwgcyksIHQuX3Rhc2tzQ291bnQtLSwgdC5fY2xlYXJSZXNvdXJjZXMoKSwgZS5lbmQoaSk7XG4gICAgICB9LCB2ZSk7XG4gICAgfSwgby5wcm90b3R5cGUuX3BhdGNoQ29uc3RydWN0b3IgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBlID0gdGhpcztcbiAgICAgIHJldHVybiBmdW5jdGlvbihyKSB7XG4gICAgICAgIHZhciBuID0gZTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGZvciAodmFyIGkgPSBbXSwgcyA9IDA7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspXG4gICAgICAgICAgICBpW3NdID0gYXJndW1lbnRzW3NdO1xuICAgICAgICAgIHZhciBmID0gdGhpcywgdSA9IEMoaVswXSBpbnN0YW5jZW9mIFJlcXVlc3QgPyBpWzBdLnVybCA6IFN0cmluZyhpWzBdKSkuaHJlZiwgYyA9IGlbMF0gaW5zdGFuY2VvZiBSZXF1ZXN0ID8gaVswXSA6IGlbMV0gfHwge30sIGggPSBuLl9jcmVhdGVTcGFuKHUsIGMpO1xuICAgICAgICAgIGlmICghaClcbiAgICAgICAgICAgIHJldHVybiByLmFwcGx5KHRoaXMsIGkpO1xuICAgICAgICAgIHZhciBnID0gbi5fcHJlcGFyZVNwYW5EYXRhKHUpO1xuICAgICAgICAgIG4uZ2V0Q29uZmlnKCkubWVhc3VyZVJlcXVlc3RTaXplICYmIHNlLmFwcGx5KHZvaWQgMCwgcGUoW10sIGhlKGkpLCBmYWxzZSkpLnRoZW4oZnVuY3Rpb24obCkge1xuICAgICAgICAgICAgbCAmJiBoLnNldEF0dHJpYnV0ZShFciwgbCk7XG4gICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24obCkge1xuICAgICAgICAgICAgbi5fZGlhZy53YXJuKFwiZ2V0RmV0Y2hCb2R5TGVuZ3RoXCIsIGwpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGZ1bmN0aW9uIEUobCwgZCkge1xuICAgICAgICAgICAgbi5fYXBwbHlBdHRyaWJ1dGVzQWZ0ZXJGZXRjaChsLCBjLCBkKSwgbi5fZW5kU3BhbihsLCBnLCB7XG4gICAgICAgICAgICAgIHN0YXR1czogZC5zdGF0dXMgfHwgMCxcbiAgICAgICAgICAgICAgc3RhdHVzVGV4dDogZC5tZXNzYWdlLFxuICAgICAgICAgICAgICB1cmw6IHVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmdW5jdGlvbiB3KGwsIGQpIHtcbiAgICAgICAgICAgIG4uX2FwcGx5QXR0cmlidXRlc0FmdGVyRmV0Y2gobCwgYywgZCksIGQuc3RhdHVzID49IDIwMCAmJiBkLnN0YXR1cyA8IDQwMCA/IG4uX2VuZFNwYW4obCwgZywgZCkgOiBuLl9lbmRTcGFuKGwsIGcsIHtcbiAgICAgICAgICAgICAgc3RhdHVzOiBkLnN0YXR1cyxcbiAgICAgICAgICAgICAgc3RhdHVzVGV4dDogZC5zdGF0dXNUZXh0LFxuICAgICAgICAgICAgICB1cmw6IHVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmdW5jdGlvbiBNKGwsIGQsIHYpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHZhciBqID0gdi5jbG9uZSgpLCBEID0gdi5jbG9uZSgpLCBSID0gai5ib2R5O1xuICAgICAgICAgICAgICBpZiAoUikge1xuICAgICAgICAgICAgICAgIHZhciBCID0gUi5nZXRSZWFkZXIoKSwgQSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgQi5yZWFkKCkudGhlbihmdW5jdGlvbihtKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBGID0gbS5kb25lO1xuICAgICAgICAgICAgICAgICAgICBGID8gdyhsLCBEKSA6IEEoKTtcbiAgICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uKG0pIHtcbiAgICAgICAgICAgICAgICAgICAgRShsLCBtKTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgQSgpO1xuICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICB3KGwsIHYpO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgZCh2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gTChsLCBkLCB2KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBFKGwsIHYpO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgZCh2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwsIGQpIHtcbiAgICAgICAgICAgIHJldHVybiB4ZS53aXRoKGplLnNldFNwYW4oeGUuYWN0aXZlKCksIGgpLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG4uX2FkZEhlYWRlcnMoYywgdSksIG4uX3Rhc2tzQ291bnQrKywgci5hcHBseShmLCBjIGluc3RhbmNlb2YgUmVxdWVzdCA/IFtjXSA6IFt1LCBjXSkudGhlbihNLmJpbmQoZiwgaCwgbCksIEwuYmluZChmLCBoLCBkKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfSwgby5wcm90b3R5cGUuX2FwcGx5QXR0cmlidXRlc0FmdGVyRmV0Y2ggPSBmdW5jdGlvbihlLCByLCBuKSB7XG4gICAgICB2YXIgdCA9IHRoaXMsIGkgPSB0aGlzLmdldENvbmZpZygpLmFwcGx5Q3VzdG9tQXR0cmlidXRlc09uU3BhbjtcbiAgICAgIGkgJiYgQihmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGkoZSwgciwgbik7XG4gICAgICB9LCBmdW5jdGlvbihzKSB7XG4gICAgICAgIHMgJiYgdC5fZGlhZy5lcnJvcihcImFwcGx5Q3VzdG9tQXR0cmlidXRlc09uU3BhblwiLCBzKTtcbiAgICAgIH0pO1xuICAgIH0sIG8ucHJvdG90eXBlLl9wcmVwYXJlU3BhbkRhdGEgPSBmdW5jdGlvbihlKSB7XG4gICAgICB2YXIgciA9IHBfKCksIG4gPSBbXTtcbiAgICAgIGlmICh0eXBlb2YgUGVyZm9ybWFuY2VPYnNlcnZlciAhPSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIHJldHVybiB7IGVudHJpZXM6IG4sIHN0YXJ0VGltZTogciwgc3BhblVybDogZSB9O1xuICAgICAgdmFyIHQgPSBuZXcgUGVyZm9ybWFuY2VPYnNlcnZlcihmdW5jdGlvbihpKSB7XG4gICAgICAgIHZhciBzID0gaS5nZXRFbnRyaWVzKCk7XG4gICAgICAgIHMuZm9yRWFjaChmdW5jdGlvbihmKSB7XG4gICAgICAgICAgZi5pbml0aWF0b3JUeXBlID09PSBcImZldGNoXCIgJiYgZi5uYW1lID09PSBlICYmIG4ucHVzaChmKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0Lm9ic2VydmUoe1xuICAgICAgICBlbnRyeVR5cGVzOiBbXCJyZXNvdXJjZVwiXVxuICAgICAgfSksIHsgZW50cmllczogbiwgb2JzZXJ2ZXI6IHQsIHN0YXJ0VGltZTogciwgc3BhblVybDogZSB9O1xuICAgIH0sIG8ucHJvdG90eXBlLmVuYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKEgpIHtcbiAgICAgICAgdGhpcy5fZGlhZy53YXJuKFwidGhpcyBpbnN0cnVtZW50YXRpb24gaXMgaW50ZW5kZWQgZm9yIHdlYiB1c2FnZSBvbmx5LCBpdCBkb2VzIG5vdCBpbnN0cnVtZW50IE5vZGUuanMncyBmZXRjaCgpXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBVJDEoZmV0Y2gpICYmICh0aGlzLl91bndyYXAoaF8sIFwiZmV0Y2hcIiksIHRoaXMuX2RpYWcuZGVidWcoXCJyZW1vdmluZyBwcmV2aW91cyBwYXRjaCBmb3IgY29uc3RydWN0b3JcIikpLCB0aGlzLl93cmFwKGhfLCBcImZldGNoXCIsIHRoaXMuX3BhdGNoQ29uc3RydWN0b3IoKSk7XG4gICAgfSwgby5wcm90b3R5cGUuZGlzYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgSCB8fCAodGhpcy5fdW53cmFwKGhfLCBcImZldGNoXCIpLCB0aGlzLl91c2VkUmVzb3VyY2VzID0gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrU2V0KCkpO1xuICAgIH0sIG87XG4gIH0pKFcpXG4pO1xuXG5leHBvcnQgeyBTZSBhcyBGZXRjaEluc3RydW1lbnRhdGlvbiB9OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVMsS0FBQUEsU0FBUztBQUNsQixTQUFTLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUFDLEdBQUcsS0FBS0MsR0FBSSxLQUFLQyxTQUFVO0FBQ3JILFNBQVMsS0FBQUMsR0FBRyxLQUFLQyxHQUFLLEtBQUFDLFNBQVM7QUFDL0IsU0FBUyxLQUFBQyxHQUFHLEtBQUtDLEdBQUssS0FBQUMsR0FBRyxLQUFLQyxHQUFLLEtBQUFDLFVBQVM7QUFDNUMsU0FBUyxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsVUFBVTtBQUUxQyxJQUFJQztBQUFBLENBQ0gsU0FBU0MsR0FBRztBQUNYLEVBQUFBLEVBQUUsWUFBWSxhQUFhQSxFQUFFLGtCQUFrQixtQkFBbUJBLEVBQUUsbUJBQW1CO0FBQ3pGLEdBQUdELE1BQU1BLElBQUksQ0FBQyxFQUFFO0FBQ2hCLElBQUlFLEtBQUssU0FBU0QsR0FBR0UsR0FBR0MsR0FBRzVCLEdBQUc7QUFDNUIsV0FBUzZCLEVBQUVDLEdBQUc7QUFDWixXQUFPQSxhQUFhRixJQUFJRSxJQUFJLElBQUlGLEVBQUUsU0FBU0csR0FBRztBQUM1QyxNQUFBQSxFQUFFRCxDQUFDO0FBQUEsSUFDTCxDQUFDO0FBQUEsRUFDSDtBQUNBLFNBQU8sS0FBS0YsTUFBTUEsSUFBSSxVQUFVLFNBQVNFLEdBQUdDLEdBQUc7QUFDN0MsYUFBU0MsRUFBRUMsR0FBRztBQUNaLFVBQUk7QUFDRixVQUFFakMsRUFBRSxLQUFLaUMsQ0FBQyxDQUFDO0FBQUEsTUFDYixTQUFTQyxHQUFHO0FBQ1YsUUFBQUgsRUFBRUcsQ0FBQztBQUFBLE1BQ0w7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O0FBQ0wsYUFBSyxNQUFNLEtBQUssK0ZBQStGO0FBQy9HO0FBQUEsTUFDRjtBQUNBLE1BQUFyQyxFQUFJLEtBQUssTUFBTSxLQUFLLFFBQVFGLEdBQUksT0FBTyxHQUFHLEtBQUssTUFBTSxNQUFNLHlDQUF5QyxJQUFJLEtBQUssTUFBTUEsR0FBSSxTQUFTLEtBQUssa0JBQWtCLENBQUM7QUFBQSxJQUMxSixHQUFHZSxFQUFFLFVBQVUsVUFBVSxXQUFXO0FBQ2xDLE1BQUF3QixNQUFNLEtBQUssUUFBUXZDLEdBQUksT0FBTyxHQUFHLEtBQUssaUJBQWlDLG9CQUFJLFFBQVE7QUFBQSxJQUNyRixHQUFHZTtBQUFBLEVBQ0wsR0FBR1osQ0FBQztBQUFBOyIsCiAgIm5hbWVzIjogWyJyIiwgIkpBIiwgInFBIiwgIlpBIiwgIiRBIiwgInlfIiwgIlplIiwgInhBIiwgImtBIiwgInBfIiwgIk8iLCAiRXIiLCAiaF8iLCAiQiIsICJVJDEiLCAiVyIsICJUIiwgInkkMSIsICJDIiwgImIkMSIsICJWIiwgImplIiwgInhlIiwgImF0IiwgInkiLCAiYSIsICJuZSIsICJvIiwgImUiLCAibiIsICJ0IiwgImkiLCAicyIsICJjIiwgImgiLCAiZiIsICJhZSIsICJpZSIsICJvZSIsICJzZSIsICJ1ZSIsICJmZSIsICJiIiwgImxlIiwgImNlIiwgImsiLCAiZGUiLCAiaGUiLCAicGUiLCAiUyIsICJ2ZSIsICJIIiwgIlNlIiwgInUiLCAiZyIsICJsIiwgIkUiLCAiZCIsICJNIiwgInYiLCAiaiIsICJEIiwgIlIiLCAiQSIsICJGIiwgIkwiXQp9Cg==
|
|
430
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtQlNzdXotWWItIX57MDA5fX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLURPcXV0WkZ4LSF+ezAwYX1+LmpzJztcbmltcG9ydCB7IEogYXMgSkEsIHEgYXMgcUEsIFogYXMgWkEsICQgYXMgJEEsIHkgYXMgeV8sIGEgYXMgWmUsIHggYXMgeEEsIGsgYXMga0EsIHAgYXMgcF8sIE8sIEUgYXMgRXIsIGggYXMgaF8gfSBmcm9tICcuL3VybC1ETGxGWWRRWC0hfnswMGJ9fi5qcyc7XG5pbXBvcnQgeyBCLCBVIGFzIFUkMSwgVyB9IGZyb20gJy4vdXRpbHMtQWlUQTRlNWgtIX57MDBjfX4uanMnO1xuaW1wb3J0IHsgVCwgeSBhcyB5JDEsIEMsIGIgYXMgYiQxLCBWIH0gZnJvbSAnLi91dGlscy1EMzY2Q0xqeC0hfnswMDh9fi5qcyc7XG5pbXBvcnQgeyBWIGFzIFZlLCBPIGFzIE9lLCBsIGFzIGx0IH0gZnJvbSAnLi9pbmRleC0hfnswMDd9fi5qcyc7XG5cbnZhciB5O1xuKGZ1bmN0aW9uKGEpIHtcbiAgYS5DT01QT05FTlQgPSBcImNvbXBvbmVudFwiLCBhLkhUVFBfRVJST1JfTkFNRSA9IFwiaHR0cC5lcnJvcl9uYW1lXCIsIGEuSFRUUF9TVEFUVVNfVEVYVCA9IFwiaHR0cC5zdGF0dXNfdGV4dFwiO1xufSkoeSB8fCAoeSA9IHt9KSk7XG52YXIgbmUgPSBmdW5jdGlvbihhLCBvLCBlLCByKSB7XG4gIGZ1bmN0aW9uIG4odCkge1xuICAgIHJldHVybiB0IGluc3RhbmNlb2YgZSA/IHQgOiBuZXcgZShmdW5jdGlvbihpKSB7XG4gICAgICBpKHQpO1xuICAgIH0pO1xuICB9XG4gIHJldHVybiBuZXcgKGUgfHwgKGUgPSBQcm9taXNlKSkoZnVuY3Rpb24odCwgaSkge1xuICAgIGZ1bmN0aW9uIHMoYykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgdShyLm5leHQoYykpO1xuICAgICAgfSBjYXRjaCAoaCkge1xuICAgICAgICBpKGgpO1xuICAgICAgfVxuICAgIH1cbiAgICBmdW5jdGlvbiBmKGMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHUoci50aHJvdyhjKSk7XG4gICAgICB9IGNhdGNoIChoKSB7XG4gICAgICAgIGkoaCk7XG4gICAgICB9XG4gICAgfVxuICAgIGZ1bmN0aW9uIHUoYykge1xuICAgICAgYy5kb25lID8gdChjLnZhbHVlKSA6IG4oYy52YWx1ZSkudGhlbihzLCBmKTtcbiAgICB9XG4gICAgdSgociA9IHIuYXBwbHkoYSwgW10pKS5uZXh0KCkpO1xuICB9KTtcbn0sIGFlID0gZnVuY3Rpb24oYSwgbykge1xuICB2YXIgZSA9IHsgbGFiZWw6IDAsIHNlbnQ6IGZ1bmN0aW9uKCkge1xuICAgIGlmICh0WzBdICYgMSkgdGhyb3cgdFsxXTtcbiAgICByZXR1cm4gdFsxXTtcbiAgfSwgdHJ5czogW10sIG9wczogW10gfSwgciwgbiwgdCwgaTtcbiAgcmV0dXJuIGkgPSB7IG5leHQ6IHMoMCksIHRocm93OiBzKDEpLCByZXR1cm46IHMoMikgfSwgdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgKGlbU3ltYm9sLml0ZXJhdG9yXSA9IGZ1bmN0aW9uKCkge1xuICAgIHJldHVybiB0aGlzO1xuICB9KSwgaTtcbiAgZnVuY3Rpb24gcyh1KSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGMpIHtcbiAgICAgIHJldHVybiBmKFt1LCBjXSk7XG4gICAgfTtcbiAgfVxuICBmdW5jdGlvbiBmKHUpIHtcbiAgICBpZiAocikgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkdlbmVyYXRvciBpcyBhbHJlYWR5IGV4ZWN1dGluZy5cIik7XG4gICAgZm9yICg7IGU7ICkgdHJ5IHtcbiAgICAgIGlmIChyID0gMSwgbiAmJiAodCA9IHVbMF0gJiAyID8gbi5yZXR1cm4gOiB1WzBdID8gbi50aHJvdyB8fCAoKHQgPSBuLnJldHVybikgJiYgdC5jYWxsKG4pLCAwKSA6IG4ubmV4dCkgJiYgISh0ID0gdC5jYWxsKG4sIHVbMV0pKS5kb25lKSByZXR1cm4gdDtcbiAgICAgIHN3aXRjaCAobiA9IDAsIHQgJiYgKHUgPSBbdVswXSAmIDIsIHQudmFsdWVdKSwgdVswXSkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICB0ID0gdTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIHJldHVybiBlLmxhYmVsKyssIHsgdmFsdWU6IHVbMV0sIGRvbmU6ICExIH07XG4gICAgICAgIGNhc2UgNTpcbiAgICAgICAgICBlLmxhYmVsKyssIG4gPSB1WzFdLCB1ID0gWzBdO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgdSA9IGUub3BzLnBvcCgpLCBlLnRyeXMucG9wKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgaWYgKHQgPSBlLnRyeXMsICEodCA9IHQubGVuZ3RoID4gMCAmJiB0W3QubGVuZ3RoIC0gMV0pICYmICh1WzBdID09PSA2IHx8IHVbMF0gPT09IDIpKSB7XG4gICAgICAgICAgICBlID0gMDtcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodVswXSA9PT0gMyAmJiAoIXQgfHwgdVsxXSA+IHRbMF0gJiYgdVsxXSA8IHRbM10pKSB7XG4gICAgICAgICAgICBlLmxhYmVsID0gdVsxXTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodVswXSA9PT0gNiAmJiBlLmxhYmVsIDwgdFsxXSkge1xuICAgICAgICAgICAgZS5sYWJlbCA9IHRbMV0sIHQgPSB1O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmICh0ICYmIGUubGFiZWwgPCB0WzJdKSB7XG4gICAgICAgICAgICBlLmxhYmVsID0gdFsyXSwgZS5vcHMucHVzaCh1KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0WzJdICYmIGUub3BzLnBvcCgpLCBlLnRyeXMucG9wKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICB1ID0gby5jYWxsKGEsIGUpO1xuICAgIH0gY2F0Y2ggKGMpIHtcbiAgICAgIHUgPSBbNiwgY10sIG4gPSAwO1xuICAgIH0gZmluYWxseSB7XG4gICAgICByID0gdCA9IDA7XG4gICAgfVxuICAgIGlmICh1WzBdICYgNSkgdGhyb3cgdVsxXTtcbiAgICByZXR1cm4geyB2YWx1ZTogdVswXSA/IHVbMV0gOiB2b2lkIDAsIGRvbmU6IHRydWUgfTtcbiAgfVxufSwgaWUgPSBmdW5jdGlvbihhKSB7XG4gIHZhciBvID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgU3ltYm9sLml0ZXJhdG9yLCBlID0gbyAmJiBhW29dLCByID0gMDtcbiAgaWYgKGUpIHJldHVybiBlLmNhbGwoYSk7XG4gIGlmIChhICYmIHR5cGVvZiBhLmxlbmd0aCA9PSBcIm51bWJlclwiKSByZXR1cm4ge1xuICAgIG5leHQ6IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIGEgJiYgciA+PSBhLmxlbmd0aCAmJiAoYSA9IHZvaWQgMCksIHsgdmFsdWU6IGEgJiYgYVtyKytdLCBkb25lOiAhYSB9O1xuICAgIH1cbiAgfTtcbiAgdGhyb3cgbmV3IFR5cGVFcnJvcihvID8gXCJPYmplY3QgaXMgbm90IGl0ZXJhYmxlLlwiIDogXCJTeW1ib2wuaXRlcmF0b3IgaXMgbm90IGRlZmluZWQuXCIpO1xufSwgb2UgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgYVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiBhO1xuICB2YXIgciA9IGUuY2FsbChhKSwgbiwgdCA9IFtdLCBpO1xuICB0cnkge1xuICAgIGZvciAoOyAobyA9PT0gdm9pZCAwIHx8IG8tLSA+IDApICYmICEobiA9IHIubmV4dCgpKS5kb25lOyApIHQucHVzaChuLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGkgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG4gJiYgIW4uZG9uZSAmJiAoZSA9IHIucmV0dXJuKSAmJiBlLmNhbGwocik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChpKSB0aHJvdyBpLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIFUgPSByLmNyZWF0ZUNvbXBvbmVudExvZ2dlcih7XG4gIG5hbWVzcGFjZTogXCJAb3BlbnRlbGVtZXRyeS9vcGVudGVsZW1ldHJ5LWluc3RydW1lbnRhdGlvbi1mZXRjaC91dGlsc1wiXG59KTtcbmZ1bmN0aW9uIHNlKCkge1xuICBmb3IgKHZhciBhID0gW10sIG8gPSAwOyBvIDwgYXJndW1lbnRzLmxlbmd0aDsgbysrKVxuICAgIGFbb10gPSBhcmd1bWVudHNbb107XG4gIGlmIChhWzBdIGluc3RhbmNlb2YgVVJMIHx8IHR5cGVvZiBhWzBdID09IFwic3RyaW5nXCIpIHtcbiAgICB2YXIgZSA9IGFbMV07XG4gICAgaWYgKCFlPy5ib2R5KVxuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgIGlmIChlLmJvZHkgaW5zdGFuY2VvZiBSZWFkYWJsZVN0cmVhbSkge1xuICAgICAgdmFyIHIgPSB1ZShlLmJvZHkpLCBuID0gci5ib2R5LCB0ID0gci5sZW5ndGg7XG4gICAgICByZXR1cm4gZS5ib2R5ID0gbiwgdDtcbiAgICB9IGVsc2VcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZmUoZS5ib2R5KSk7XG4gIH0gZWxzZSB7XG4gICAgdmFyIGkgPSBhWzBdO1xuICAgIHJldHVybiBpPy5ib2R5ID8gaS5jbG9uZSgpLnRleHQoKS50aGVuKGZ1bmN0aW9uKHMpIHtcbiAgICAgIHJldHVybiBiKHMpO1xuICAgIH0pIDogUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cbn1cbmZ1bmN0aW9uIHVlKGEpIHtcbiAgaWYgKCFhLnBpcGVUaHJvdWdoKVxuICAgIHJldHVybiBVLndhcm4oXCJQbGF0Zm9ybSBoYXMgUmVhZGFibGVTdHJlYW0gYnV0IG5vdCBwaXBlVGhyb3VnaCFcIiksIHtcbiAgICAgIGJvZHk6IGEsXG4gICAgICBsZW5ndGg6IFByb21pc2UucmVzb2x2ZSh2b2lkIDApXG4gICAgfTtcbiAgdmFyIG8gPSAwLCBlLCByID0gbmV3IFByb21pc2UoZnVuY3Rpb24odCkge1xuICAgIGUgPSB0O1xuICB9KSwgbiA9IG5ldyBUcmFuc2Zvcm1TdHJlYW0oe1xuICAgIHN0YXJ0OiBmdW5jdGlvbigpIHtcbiAgICB9LFxuICAgIHRyYW5zZm9ybTogZnVuY3Rpb24odCwgaSkge1xuICAgICAgcmV0dXJuIG5lKHRoaXMsIHZvaWQgMCwgdm9pZCAwLCBmdW5jdGlvbigpIHtcbiAgICAgICAgdmFyIHM7XG4gICAgICAgIHJldHVybiBhZSh0aGlzLCBmdW5jdGlvbihmKSB7XG4gICAgICAgICAgc3dpdGNoIChmLmxhYmVsKSB7XG4gICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgIHJldHVybiBbNCwgdF07XG4gICAgICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgICAgIHJldHVybiBzID0gZi5zZW50KCksIG8gKz0gcy5ieXRlTGVuZ3RoLCBpLmVucXVldWUodCksIFtcbiAgICAgICAgICAgICAgICAyXG4gICAgICAgICAgICAgICAgLypyZXR1cm4qL1xuICAgICAgICAgICAgICBdO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9LFxuICAgIGZsdXNoOiBmdW5jdGlvbigpIHtcbiAgICAgIGUobyk7XG4gICAgfVxuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBib2R5OiBhLnBpcGVUaHJvdWdoKG4pLFxuICAgIGxlbmd0aDogclxuICB9O1xufVxuZnVuY3Rpb24gZmUoYSkge1xuICBpZiAodHlwZW9mIERvY3VtZW50IDwgXCJ1XCIgJiYgYSBpbnN0YW5jZW9mIERvY3VtZW50KVxuICAgIHJldHVybiBuZXcgWE1MU2VyaWFsaXplcigpLnNlcmlhbGl6ZVRvU3RyaW5nKGRvY3VtZW50KS5sZW5ndGg7XG4gIGlmIChhIGluc3RhbmNlb2YgQmxvYilcbiAgICByZXR1cm4gYS5zaXplO1xuICBpZiAoYS5ieXRlTGVuZ3RoICE9PSB2b2lkIDApXG4gICAgcmV0dXJuIGEuYnl0ZUxlbmd0aDtcbiAgaWYgKGEgaW5zdGFuY2VvZiBGb3JtRGF0YSlcbiAgICByZXR1cm4gbGUoYSk7XG4gIGlmIChhIGluc3RhbmNlb2YgVVJMU2VhcmNoUGFyYW1zKVxuICAgIHJldHVybiBiKGEudG9TdHJpbmcoKSk7XG4gIGlmICh0eXBlb2YgYSA9PSBcInN0cmluZ1wiKVxuICAgIHJldHVybiBiKGEpO1xuICBVLndhcm4oXCJ1bmtub3duIGJvZHkgdHlwZVwiKTtcbn1cbnZhciBjZSA9IG5ldyBUZXh0RW5jb2RlcigpO1xuZnVuY3Rpb24gYihhKSB7XG4gIHJldHVybiBjZS5lbmNvZGUoYSkuYnl0ZUxlbmd0aDtcbn1cbmZ1bmN0aW9uIGxlKGEpIHtcbiAgdmFyIG8sIGUsIHIgPSAwO1xuICB0cnkge1xuICAgIGZvciAodmFyIG4gPSBpZShhLmVudHJpZXMoKSksIHQgPSBuLm5leHQoKTsgIXQuZG9uZTsgdCA9IG4ubmV4dCgpKSB7XG4gICAgICB2YXIgaSA9IG9lKHQudmFsdWUsIDIpLCBzID0gaVswXSwgZiA9IGlbMV07XG4gICAgICByICs9IHMubGVuZ3RoLCBmIGluc3RhbmNlb2YgQmxvYiA/IHIgKz0gZi5zaXplIDogciArPSBmLmxlbmd0aDtcbiAgICB9XG4gIH0gY2F0Y2ggKHUpIHtcbiAgICBvID0geyBlcnJvcjogdSB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICB0ICYmICF0LmRvbmUgJiYgKGUgPSBuLnJldHVybikgJiYgZS5jYWxsKG4pO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAobykgdGhyb3cgby5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHI7XG59XG52YXIgayA9IFwiMC41Ny4yXCIsIGRlID0gLyogQF9fUFVSRV9fICovIChmdW5jdGlvbigpIHtcbiAgdmFyIGEgPSBmdW5jdGlvbihvLCBlKSB7XG4gICAgcmV0dXJuIGEgPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbihyLCBuKSB7XG4gICAgICByLl9fcHJvdG9fXyA9IG47XG4gICAgfSB8fCBmdW5jdGlvbihyLCBuKSB7XG4gICAgICBmb3IgKHZhciB0IGluIG4pIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChuLCB0KSAmJiAoclt0XSA9IG5bdF0pO1xuICAgIH0sIGEobywgZSk7XG4gIH07XG4gIHJldHVybiBmdW5jdGlvbihvLCBlKSB7XG4gICAgaWYgKHR5cGVvZiBlICE9IFwiZnVuY3Rpb25cIiAmJiBlICE9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoZSkgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICAgIGEobywgZSk7XG4gICAgZnVuY3Rpb24gcigpIHtcbiAgICAgIHRoaXMuY29uc3RydWN0b3IgPSBvO1xuICAgIH1cbiAgICBvLnByb3RvdHlwZSA9IGUgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGUpIDogKHIucHJvdG90eXBlID0gZS5wcm90b3R5cGUsIG5ldyByKCkpO1xuICB9O1xufSkoKSwgaGUgPSBmdW5jdGlvbihhLCBvKSB7XG4gIHZhciBlID0gdHlwZW9mIFN5bWJvbCA9PSBcImZ1bmN0aW9uXCIgJiYgYVtTeW1ib2wuaXRlcmF0b3JdO1xuICBpZiAoIWUpIHJldHVybiBhO1xuICB2YXIgciA9IGUuY2FsbChhKSwgbiwgdCA9IFtdLCBpO1xuICB0cnkge1xuICAgIGZvciAoOyAobyA9PT0gdm9pZCAwIHx8IG8tLSA+IDApICYmICEobiA9IHIubmV4dCgpKS5kb25lOyApIHQucHVzaChuLnZhbHVlKTtcbiAgfSBjYXRjaCAocykge1xuICAgIGkgPSB7IGVycm9yOiBzIH07XG4gIH0gZmluYWxseSB7XG4gICAgdHJ5IHtcbiAgICAgIG4gJiYgIW4uZG9uZSAmJiAoZSA9IHIucmV0dXJuKSAmJiBlLmNhbGwocik7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmIChpKSB0aHJvdyBpLmVycm9yO1xuICAgIH1cbiAgfVxuICByZXR1cm4gdDtcbn0sIHBlID0gZnVuY3Rpb24oYSwgbywgZSkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgciA9IDAsIG4gPSBvLmxlbmd0aCwgdDsgciA8IG47IHIrKylcbiAgICAodCB8fCAhKHIgaW4gbykpICYmICh0IHx8ICh0ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwobywgMCwgcikpLCB0W3JdID0gb1tyXSk7XG4gIHJldHVybiBhLmNvbmNhdCh0IHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKG8pKTtcbn0sIFMsIHZlID0gMzAwLCBIID0gdHlwZW9mIHByb2Nlc3MgPT0gXCJvYmplY3RcIiAmJiAoKFMgPSBwcm9jZXNzLnJlbGVhc2UpID09PSBudWxsIHx8IFMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IFMubmFtZSkgPT09IFwibm9kZVwiLCBTZSA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24oYSkge1xuICAgIGRlKG8sIGEpO1xuICAgIGZ1bmN0aW9uIG8oZSkge1xuICAgICAgZSA9PT0gdm9pZCAwICYmIChlID0ge30pO1xuICAgICAgdmFyIHIgPSBhLmNhbGwodGhpcywgXCJAb3BlbnRlbGVtZXRyeS9pbnN0cnVtZW50YXRpb24tZmV0Y2hcIiwgaywgZSkgfHwgdGhpcztcbiAgICAgIHJldHVybiByLmNvbXBvbmVudCA9IFwiZmV0Y2hcIiwgci52ZXJzaW9uID0gaywgci5tb2R1bGVOYW1lID0gci5jb21wb25lbnQsIHIuX3VzZWRSZXNvdXJjZXMgPSAvKiBAX19QVVJFX18gKi8gbmV3IFdlYWtTZXQoKSwgci5fdGFza3NDb3VudCA9IDAsIHI7XG4gICAgfVxuICAgIHJldHVybiBvLnByb3RvdHlwZS5pbml0ID0gZnVuY3Rpb24oKSB7XG4gICAgfSwgby5wcm90b3R5cGUuX2FkZENoaWxkU3BhbiA9IGZ1bmN0aW9uKGUsIHIpIHtcbiAgICAgIHZhciBuID0gdGhpcy50cmFjZXIuc3RhcnRTcGFuKFwiQ09SUyBQcmVmbGlnaHRcIiwge1xuICAgICAgICBzdGFydFRpbWU6IHJbVC5GRVRDSF9TVEFSVF1cbiAgICAgIH0sIFZlLnNldFNwYW4oT2UuYWN0aXZlKCksIGUpKTtcbiAgICAgIHkkMShuLCByLCB0aGlzLmdldENvbmZpZygpLmlnbm9yZU5ldHdvcmtFdmVudHMpLCBuLmVuZChyW1QuUkVTUE9OU0VfRU5EXSk7XG4gICAgfSwgby5wcm90b3R5cGUuX2FkZEZpbmFsU3BhbkF0dHJpYnV0ZXMgPSBmdW5jdGlvbihlLCByKSB7XG4gICAgICB2YXIgbiA9IEMoci51cmwpO1xuICAgICAgZS5zZXRBdHRyaWJ1dGUoSkEsIHIuc3RhdHVzKSwgci5zdGF0dXNUZXh0ICE9IG51bGwgJiYgZS5zZXRBdHRyaWJ1dGUoeS5IVFRQX1NUQVRVU19URVhULCByLnN0YXR1c1RleHQpLCBlLnNldEF0dHJpYnV0ZShxQSwgbi5ob3N0KSwgZS5zZXRBdHRyaWJ1dGUoWkEsIG4ucHJvdG9jb2wucmVwbGFjZShcIjpcIiwgXCJcIikpLCB0eXBlb2YgbmF2aWdhdG9yIDwgXCJ1XCIgJiYgZS5zZXRBdHRyaWJ1dGUoJEEsIG5hdmlnYXRvci51c2VyQWdlbnQpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9hZGRIZWFkZXJzID0gZnVuY3Rpb24oZSwgcikge1xuICAgICAgaWYgKCFiJDEociwgdGhpcy5nZXRDb25maWcoKS5wcm9wYWdhdGVUcmFjZUhlYWRlckNvcnNVcmxzKSkge1xuICAgICAgICB2YXIgbiA9IHt9O1xuICAgICAgICB5Xy5pbmplY3QoT2UuYWN0aXZlKCksIG4pLCBPYmplY3Qua2V5cyhuKS5sZW5ndGggPiAwICYmIHRoaXMuX2RpYWcuZGVidWcoXCJoZWFkZXJzIGluamVjdCBza2lwcGVkIGR1ZSB0byBDT1JTIHBvbGljeVwiKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgaWYgKGUgaW5zdGFuY2VvZiBSZXF1ZXN0KVxuICAgICAgICB5Xy5pbmplY3QoT2UuYWN0aXZlKCksIGUuaGVhZGVycywge1xuICAgICAgICAgIHNldDogZnVuY3Rpb24odCwgaSwgcykge1xuICAgICAgICAgICAgcmV0dXJuIHQuc2V0KGksIHR5cGVvZiBzID09IFwic3RyaW5nXCIgPyBzIDogU3RyaW5nKHMpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgZWxzZSBpZiAoZS5oZWFkZXJzIGluc3RhbmNlb2YgSGVhZGVycylcbiAgICAgICAgeV8uaW5qZWN0KE9lLmFjdGl2ZSgpLCBlLmhlYWRlcnMsIHtcbiAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHQsIGksIHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0LnNldChpLCB0eXBlb2YgcyA9PSBcInN0cmluZ1wiID8gcyA6IFN0cmluZyhzKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIGVsc2UgaWYgKGUuaGVhZGVycyBpbnN0YW5jZW9mIE1hcClcbiAgICAgICAgeV8uaW5qZWN0KE9lLmFjdGl2ZSgpLCBlLmhlYWRlcnMsIHtcbiAgICAgICAgICBzZXQ6IGZ1bmN0aW9uKHQsIGksIHMpIHtcbiAgICAgICAgICAgIHJldHVybiB0LnNldChpLCB0eXBlb2YgcyA9PSBcInN0cmluZ1wiID8gcyA6IFN0cmluZyhzKSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIGVsc2Uge1xuICAgICAgICB2YXIgbiA9IHt9O1xuICAgICAgICB5Xy5pbmplY3QoT2UuYWN0aXZlKCksIG4pLCBlLmhlYWRlcnMgPSBPYmplY3QuYXNzaWduKHt9LCBuLCBlLmhlYWRlcnMgfHwge30pO1xuICAgICAgfVxuICAgIH0sIG8ucHJvdG90eXBlLl9jbGVhclJlc291cmNlcyA9IGZ1bmN0aW9uKCkge1xuICAgICAgdGhpcy5fdGFza3NDb3VudCA9PT0gMCAmJiB0aGlzLmdldENvbmZpZygpLmNsZWFyVGltaW5nUmVzb3VyY2VzICYmIChwZXJmb3JtYW5jZS5jbGVhclJlc291cmNlVGltaW5ncygpLCB0aGlzLl91c2VkUmVzb3VyY2VzID0gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrU2V0KCkpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9jcmVhdGVTcGFuID0gZnVuY3Rpb24oZSwgcikge1xuICAgICAgdmFyIG47XG4gICAgICBpZiAociA9PT0gdm9pZCAwICYmIChyID0ge30pLCBaZShlLCB0aGlzLmdldENvbmZpZygpLmlnbm9yZVVybHMpKSB7XG4gICAgICAgIHRoaXMuX2RpYWcuZGVidWcoXCJpZ25vcmluZyBzcGFuIGFzIHVybCBtYXRjaGVzIGlnbm9yZWQgdXJsXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB2YXIgdCA9IChyLm1ldGhvZCB8fCBcIkdFVFwiKS50b1VwcGVyQ2FzZSgpLCBpID0gXCJIVFRQIFwiICsgdDtcbiAgICAgIHJldHVybiB0aGlzLnRyYWNlci5zdGFydFNwYW4oaSwge1xuICAgICAgICBraW5kOiBsdC5DTElFTlQsXG4gICAgICAgIGF0dHJpYnV0ZXM6IChuID0ge30sIG5beS5DT01QT05FTlRdID0gdGhpcy5tb2R1bGVOYW1lLCBuW3hBXSA9IHQsIG5ba0FdID0gZSwgbilcbiAgICAgIH0pO1xuICAgIH0sIG8ucHJvdG90eXBlLl9maW5kUmVzb3VyY2VBbmRBZGROZXR3b3JrRXZlbnRzID0gZnVuY3Rpb24oZSwgciwgbikge1xuICAgICAgdmFyIHQgPSByLmVudHJpZXM7XG4gICAgICBpZiAoIXQubGVuZ3RoKSB7XG4gICAgICAgIGlmICghcGVyZm9ybWFuY2UuZ2V0RW50cmllc0J5VHlwZSlcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIHQgPSBwZXJmb3JtYW5jZS5nZXRFbnRyaWVzQnlUeXBlKFwicmVzb3VyY2VcIik7XG4gICAgICB9XG4gICAgICB2YXIgaSA9IFYoci5zcGFuVXJsLCByLnN0YXJ0VGltZSwgbiwgdCwgdGhpcy5fdXNlZFJlc291cmNlcywgXCJmZXRjaFwiKTtcbiAgICAgIGlmIChpLm1haW5SZXF1ZXN0KSB7XG4gICAgICAgIHZhciBzID0gaS5tYWluUmVxdWVzdDtcbiAgICAgICAgdGhpcy5fbWFya1Jlc291cmNlQXNVc2VkKHMpO1xuICAgICAgICB2YXIgZiA9IGkuY29yc1ByZUZsaWdodFJlcXVlc3Q7XG4gICAgICAgIGYgJiYgKHRoaXMuX2FkZENoaWxkU3BhbihlLCBmKSwgdGhpcy5fbWFya1Jlc291cmNlQXNVc2VkKGYpKSwgeSQxKGUsIHMsIHRoaXMuZ2V0Q29uZmlnKCkuaWdub3JlTmV0d29ya0V2ZW50cyk7XG4gICAgICB9XG4gICAgfSwgby5wcm90b3R5cGUuX21hcmtSZXNvdXJjZUFzVXNlZCA9IGZ1bmN0aW9uKGUpIHtcbiAgICAgIHRoaXMuX3VzZWRSZXNvdXJjZXMuYWRkKGUpO1xuICAgIH0sIG8ucHJvdG90eXBlLl9lbmRTcGFuID0gZnVuY3Rpb24oZSwgciwgbikge1xuICAgICAgdmFyIHQgPSB0aGlzLCBpID0gTyhEYXRlLm5vdygpKSwgcyA9IHBfKCk7XG4gICAgICB0aGlzLl9hZGRGaW5hbFNwYW5BdHRyaWJ1dGVzKGUsIG4pLCBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkge1xuICAgICAgICB2YXIgZjtcbiAgICAgICAgKGYgPSByLm9ic2VydmVyKSA9PT0gbnVsbCB8fCBmID09PSB2b2lkIDAgfHwgZi5kaXNjb25uZWN0KCksIHQuX2ZpbmRSZXNvdXJjZUFuZEFkZE5ldHdvcmtFdmVudHMoZSwgciwgcyksIHQuX3Rhc2tzQ291bnQtLSwgdC5fY2xlYXJSZXNvdXJjZXMoKSwgZS5lbmQoaSk7XG4gICAgICB9LCB2ZSk7XG4gICAgfSwgby5wcm90b3R5cGUuX3BhdGNoQ29uc3RydWN0b3IgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciBlID0gdGhpcztcbiAgICAgIHJldHVybiBmdW5jdGlvbihyKSB7XG4gICAgICAgIHZhciBuID0gZTtcbiAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKCkge1xuICAgICAgICAgIGZvciAodmFyIGkgPSBbXSwgcyA9IDA7IHMgPCBhcmd1bWVudHMubGVuZ3RoOyBzKyspXG4gICAgICAgICAgICBpW3NdID0gYXJndW1lbnRzW3NdO1xuICAgICAgICAgIHZhciBmID0gdGhpcywgdSA9IEMoaVswXSBpbnN0YW5jZW9mIFJlcXVlc3QgPyBpWzBdLnVybCA6IFN0cmluZyhpWzBdKSkuaHJlZiwgYyA9IGlbMF0gaW5zdGFuY2VvZiBSZXF1ZXN0ID8gaVswXSA6IGlbMV0gfHwge30sIGggPSBuLl9jcmVhdGVTcGFuKHUsIGMpO1xuICAgICAgICAgIGlmICghaClcbiAgICAgICAgICAgIHJldHVybiByLmFwcGx5KHRoaXMsIGkpO1xuICAgICAgICAgIHZhciBnID0gbi5fcHJlcGFyZVNwYW5EYXRhKHUpO1xuICAgICAgICAgIG4uZ2V0Q29uZmlnKCkubWVhc3VyZVJlcXVlc3RTaXplICYmIHNlLmFwcGx5KHZvaWQgMCwgcGUoW10sIGhlKGkpLCBmYWxzZSkpLnRoZW4oZnVuY3Rpb24obCkge1xuICAgICAgICAgICAgbCAmJiBoLnNldEF0dHJpYnV0ZShFciwgbCk7XG4gICAgICAgICAgfSkuY2F0Y2goZnVuY3Rpb24obCkge1xuICAgICAgICAgICAgbi5fZGlhZy53YXJuKFwiZ2V0RmV0Y2hCb2R5TGVuZ3RoXCIsIGwpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGZ1bmN0aW9uIEUobCwgZCkge1xuICAgICAgICAgICAgbi5fYXBwbHlBdHRyaWJ1dGVzQWZ0ZXJGZXRjaChsLCBjLCBkKSwgbi5fZW5kU3BhbihsLCBnLCB7XG4gICAgICAgICAgICAgIHN0YXR1czogZC5zdGF0dXMgfHwgMCxcbiAgICAgICAgICAgICAgc3RhdHVzVGV4dDogZC5tZXNzYWdlLFxuICAgICAgICAgICAgICB1cmw6IHVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmdW5jdGlvbiB3KGwsIGQpIHtcbiAgICAgICAgICAgIG4uX2FwcGx5QXR0cmlidXRlc0FmdGVyRmV0Y2gobCwgYywgZCksIGQuc3RhdHVzID49IDIwMCAmJiBkLnN0YXR1cyA8IDQwMCA/IG4uX2VuZFNwYW4obCwgZywgZCkgOiBuLl9lbmRTcGFuKGwsIGcsIHtcbiAgICAgICAgICAgICAgc3RhdHVzOiBkLnN0YXR1cyxcbiAgICAgICAgICAgICAgc3RhdHVzVGV4dDogZC5zdGF0dXNUZXh0LFxuICAgICAgICAgICAgICB1cmw6IHVcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmdW5jdGlvbiBNKGwsIGQsIHYpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHZhciBqID0gdi5jbG9uZSgpLCBEID0gdi5jbG9uZSgpLCBSID0gai5ib2R5O1xuICAgICAgICAgICAgICBpZiAoUikge1xuICAgICAgICAgICAgICAgIHZhciBCID0gUi5nZXRSZWFkZXIoKSwgQSA9IGZ1bmN0aW9uKCkge1xuICAgICAgICAgICAgICAgICAgQi5yZWFkKCkudGhlbihmdW5jdGlvbihtKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBGID0gbS5kb25lO1xuICAgICAgICAgICAgICAgICAgICBGID8gdyhsLCBEKSA6IEEoKTtcbiAgICAgICAgICAgICAgICAgIH0sIGZ1bmN0aW9uKG0pIHtcbiAgICAgICAgICAgICAgICAgICAgRShsLCBtKTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgQSgpO1xuICAgICAgICAgICAgICB9IGVsc2VcbiAgICAgICAgICAgICAgICB3KGwsIHYpO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgZCh2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgZnVuY3Rpb24gTChsLCBkLCB2KSB7XG4gICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICBFKGwsIHYpO1xuICAgICAgICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgICAgICAgZCh2KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKGwsIGQpIHtcbiAgICAgICAgICAgIHJldHVybiBPZS53aXRoKFZlLnNldFNwYW4oT2UuYWN0aXZlKCksIGgpLCBmdW5jdGlvbigpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIG4uX2FkZEhlYWRlcnMoYywgdSksIG4uX3Rhc2tzQ291bnQrKywgci5hcHBseShmLCBjIGluc3RhbmNlb2YgUmVxdWVzdCA/IFtjXSA6IFt1LCBjXSkudGhlbihNLmJpbmQoZiwgaCwgbCksIEwuYmluZChmLCBoLCBkKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gICAgfSwgby5wcm90b3R5cGUuX2FwcGx5QXR0cmlidXRlc0FmdGVyRmV0Y2ggPSBmdW5jdGlvbihlLCByLCBuKSB7XG4gICAgICB2YXIgdCA9IHRoaXMsIGkgPSB0aGlzLmdldENvbmZpZygpLmFwcGx5Q3VzdG9tQXR0cmlidXRlc09uU3BhbjtcbiAgICAgIGkgJiYgQihmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGkoZSwgciwgbik7XG4gICAgICB9LCBmdW5jdGlvbihzKSB7XG4gICAgICAgIHMgJiYgdC5fZGlhZy5lcnJvcihcImFwcGx5Q3VzdG9tQXR0cmlidXRlc09uU3BhblwiLCBzKTtcbiAgICAgIH0pO1xuICAgIH0sIG8ucHJvdG90eXBlLl9wcmVwYXJlU3BhbkRhdGEgPSBmdW5jdGlvbihlKSB7XG4gICAgICB2YXIgciA9IHBfKCksIG4gPSBbXTtcbiAgICAgIGlmICh0eXBlb2YgUGVyZm9ybWFuY2VPYnNlcnZlciAhPSBcImZ1bmN0aW9uXCIpXG4gICAgICAgIHJldHVybiB7IGVudHJpZXM6IG4sIHN0YXJ0VGltZTogciwgc3BhblVybDogZSB9O1xuICAgICAgdmFyIHQgPSBuZXcgUGVyZm9ybWFuY2VPYnNlcnZlcihmdW5jdGlvbihpKSB7XG4gICAgICAgIHZhciBzID0gaS5nZXRFbnRyaWVzKCk7XG4gICAgICAgIHMuZm9yRWFjaChmdW5jdGlvbihmKSB7XG4gICAgICAgICAgZi5pbml0aWF0b3JUeXBlID09PSBcImZldGNoXCIgJiYgZi5uYW1lID09PSBlICYmIG4ucHVzaChmKTtcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiB0Lm9ic2VydmUoe1xuICAgICAgICBlbnRyeVR5cGVzOiBbXCJyZXNvdXJjZVwiXVxuICAgICAgfSksIHsgZW50cmllczogbiwgb2JzZXJ2ZXI6IHQsIHN0YXJ0VGltZTogciwgc3BhblVybDogZSB9O1xuICAgIH0sIG8ucHJvdG90eXBlLmVuYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgaWYgKEgpIHtcbiAgICAgICAgdGhpcy5fZGlhZy53YXJuKFwidGhpcyBpbnN0cnVtZW50YXRpb24gaXMgaW50ZW5kZWQgZm9yIHdlYiB1c2FnZSBvbmx5LCBpdCBkb2VzIG5vdCBpbnN0cnVtZW50IE5vZGUuanMncyBmZXRjaCgpXCIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBVJDEoZmV0Y2gpICYmICh0aGlzLl91bndyYXAoaF8sIFwiZmV0Y2hcIiksIHRoaXMuX2RpYWcuZGVidWcoXCJyZW1vdmluZyBwcmV2aW91cyBwYXRjaCBmb3IgY29uc3RydWN0b3JcIikpLCB0aGlzLl93cmFwKGhfLCBcImZldGNoXCIsIHRoaXMuX3BhdGNoQ29uc3RydWN0b3IoKSk7XG4gICAgfSwgby5wcm90b3R5cGUuZGlzYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgSCB8fCAodGhpcy5fdW53cmFwKGhfLCBcImZldGNoXCIpLCB0aGlzLl91c2VkUmVzb3VyY2VzID0gLyogQF9fUFVSRV9fICovIG5ldyBXZWFrU2V0KCkpO1xuICAgIH0sIG87XG4gIH0pKFcpXG4pO1xuXG5leHBvcnQgeyBTZSBhcyBGZXRjaEluc3RydW1lbnRhdGlvbiB9OyJdLAogICJtYXBwaW5ncyI6ICJBQUFBLFNBQVMsS0FBQUEsU0FBUztBQUNsQixTQUFTLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsR0FBSSxLQUFLQyxHQUFJLEtBQUFDLEdBQUcsS0FBS0MsR0FBSSxLQUFLQyxTQUFVO0FBQ3JILFNBQVMsS0FBQUMsR0FBRyxLQUFLQyxHQUFLLEtBQUFDLFNBQVM7QUFDL0IsU0FBUyxLQUFBQyxHQUFHLEtBQUtDLEdBQUssS0FBQUMsR0FBRyxLQUFLQyxHQUFLLEtBQUFDLFVBQVM7QUFDNUMsU0FBUyxLQUFLQyxHQUFJLEtBQUtDLEdBQUksS0FBS0MsVUFBVTtBQUUxQyxJQUFJQztBQUFBLENBQ0gsU0FBU0MsR0FBRztBQUNYLEVBQUFBLEVBQUUsWUFBWSxhQUFhQSxFQUFFLGtCQUFrQixtQkFBbUJBLEVBQUUsbUJBQW1CO0FBQ3pGLEdBQUdELE1BQU1BLElBQUksQ0FBQyxFQUFFO0FBQ2hCLElBQUlFLEtBQUssU0FBU0QsR0FBR0UsR0FBR0MsR0FBRzVCLEdBQUc7QUFDNUIsV0FBUzZCLEVBQUVDLEdBQUc7QUFDWixXQUFPQSxhQUFhRixJQUFJRSxJQUFJLElBQUlGLEVBQUUsU0FBU0csR0FBRztBQUM1QyxNQUFBQSxFQUFFRCxDQUFDO0FBQUEsSUFDTCxDQUFDO0FBQUEsRUFDSDtBQUNBLFNBQU8sS0FBS0YsTUFBTUEsSUFBSSxVQUFVLFNBQVNFLEdBQUdDLEdBQUc7QUFDN0MsYUFBU0MsRUFBRUMsR0FBRztBQUNaLFVBQUk7QUFDRixVQUFFakMsRUFBRSxLQUFLaUMsQ0FBQyxDQUFDO0FBQUEsTUFDYixTQUFTQyxHQUFHO0FBQ1YsUUFBQUgsRUFBRUcsQ0FBQztBQUFBLE1BQ0w7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SXlCLEdBQUc7QUFDTCxhQUFLLE1BQU0sS0FBSywrRkFBK0Y7QUFDL0c7QUFBQSxNQUNGO0FBQ0EsTUFBQXRDLEVBQUksS0FBSyxNQUFNLEtBQUssUUFBUUYsR0FBSSxPQUFPLEdBQUcsS0FBSyxNQUFNLE1BQU0seUNBQXlDLElBQUksS0FBSyxNQUFNQSxHQUFJLFNBQVMsS0FBSyxrQkFBa0IsQ0FBQztBQUFBLElBQzFKLEdBQUdlLEVBQUUsVUFBVSxVQUFVLFdBQVc7QUFDbEMsTUFBQXlCLE1BQU0sS0FBSyxRQUFReEMsR0FBSSxPQUFPLEdBQUcsS0FBSyxpQkFBaUMsb0JBQUksUUFBUTtBQUFBLElBQ3JGLEdBQUdlO0FBQUEsRUFDTCxHQUFHWixDQUFDO0FBQUE7IiwKICAibmFtZXMiOiBbInIiLCAiSkEiLCAicUEiLCAiWkEiLCAiJEEiLCAieV8iLCAiWmUiLCAieEEiLCAia0EiLCAicF8iLCAiTyIsICJFciIsICJoXyIsICJCIiwgIlUkMSIsICJXIiwgIlQiLCAieSQxIiwgIkMiLCAiYiQxIiwgIlYiLCAiVmUiLCAiT2UiLCAibHQiLCAieSIsICJhIiwgIm5lIiwgIm8iLCAiZSIsICJuIiwgInQiLCAiaSIsICJzIiwgImMiLCAiaCIsICJmIiwgImFlIiwgImllIiwgIm9lIiwgIlUiLCAic2UiLCAidWUiLCAiZmUiLCAiYiIsICJsZSIsICJjZSIsICJrIiwgImRlIiwgImhlIiwgInBlIiwgIlMiLCAidmUiLCAiSCIsICJTZSIsICJ1IiwgImciLCAibCIsICJFIiwgImQiLCAiTSIsICJ2IiwgImoiLCAiRCIsICJSIiwgIkEiLCAiRiIsICJMIl0KfQo=
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { t as u } from "./SimpleSpanProcessor-
|
|
3
|
-
import { R as b, g as x, D as _, e as S, S as w, j as P, B as C, G as O, P as T, r as M, x as
|
|
4
|
-
import { T as
|
|
1
|
+
import { E as c } from "./index-CsisjU7H.js";
|
|
2
|
+
import { t as u } from "./SimpleSpanProcessor-hO22ueIJ-Cv9FGl6y.js";
|
|
3
|
+
import { R as b, g as x, D as _, e as S, S as w, j as P, B as C, G as O, P as T, r as M, x as E, W as j, z as A } from "./SimpleSpanProcessor-hO22ueIJ-Cv9FGl6y.js";
|
|
4
|
+
import { T as R, u as F, y as N, V as k, D, C as G, b as I, U } from "./utils-D366CLjx-D5uWGo_B.js";
|
|
5
5
|
var l = function(n, r) {
|
|
6
6
|
var t = typeof Symbol == "function" && n[Symbol.iterator];
|
|
7
7
|
if (!t) return n;
|
|
@@ -107,14 +107,14 @@ export {
|
|
|
107
107
|
w as ForceFlushState,
|
|
108
108
|
P as NoopSpanProcessor,
|
|
109
109
|
C as ParentBasedSampler,
|
|
110
|
-
|
|
110
|
+
R as PerformanceTimingNames,
|
|
111
111
|
O as RandomIdGenerator,
|
|
112
112
|
T as SamplingDecision,
|
|
113
113
|
M as SimpleSpanProcessor,
|
|
114
|
-
|
|
114
|
+
E as Span,
|
|
115
115
|
f as StackContextManager,
|
|
116
|
-
|
|
117
|
-
|
|
116
|
+
j as TraceIdRatioBasedSampler,
|
|
117
|
+
A as Tracer,
|
|
118
118
|
g as WebTracerProvider,
|
|
119
119
|
F as addSpanNetworkEvent,
|
|
120
120
|
N as addSpanNetworkEvents,
|
|
@@ -124,4 +124,4 @@ export {
|
|
|
124
124
|
I as shouldPropagateTraceHeaders,
|
|
125
125
|
U as sortResources
|
|
126
126
|
};
|
|
127
|
-
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtQzBYdC1WNnUtIX57MDA2fX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHkgYXMgeXMgfSBmcm9tICcuL2luZGV4LSF+ezAwN31+LmpzJztcbmltcG9ydCB7IHQgYXMgdGUgfSBmcm9tICcuL1NpbXBsZVNwYW5Qcm9jZXNzb3ItQmQtNkI0WDktIX57MDA0fX4uanMnO1xuZXhwb3J0IHsgUiBhcyBBbHdheXNPZmZTYW1wbGVyLCBnIGFzIEFsd2F5c09uU2FtcGxlciwgRCBhcyBCYXRjaFNwYW5Qcm9jZXNzb3IsIGUgYXMgQ29uc29sZVNwYW5FeHBvcnRlciwgUyBhcyBGb3JjZUZsdXNoU3RhdGUsIGogYXMgTm9vcFNwYW5Qcm9jZXNzb3IsIEIgYXMgUGFyZW50QmFzZWRTYW1wbGVyLCBHIGFzIFJhbmRvbUlkR2VuZXJhdG9yLCBQIGFzIFNhbXBsaW5nRGVjaXNpb24sIHIgYXMgU2ltcGxlU3BhblByb2Nlc3NvciwgeCBhcyBTcGFuLCBXIGFzIFRyYWNlSWRSYXRpb0Jhc2VkU2FtcGxlciwgeiBhcyBUcmFjZXIgfSBmcm9tICcuL1NpbXBsZVNwYW5Qcm9jZXNzb3ItQmQtNkI0WDktIX57MDA0fX4uanMnO1xuZXhwb3J0IHsgVCBhcyBQZXJmb3JtYW5jZVRpbWluZ05hbWVzLCB1IGFzIGFkZFNwYW5OZXR3b3JrRXZlbnQsIHkgYXMgYWRkU3Bhbk5ldHdvcmtFdmVudHMsIFYgYXMgZ2V0UmVzb3VyY2UsIEQgYXMgaGFzS2V5LCBDIGFzIHBhcnNlVXJsLCBiIGFzIHNob3VsZFByb3BhZ2F0ZVRyYWNlSGVhZGVycywgVSBhcyBzb3J0UmVzb3VyY2VzIH0gZnJvbSAnLi91dGlscy1Cc1lWNk90RC0hfnswMDh9fi5qcyc7XG5cbnZhciBsID0gZnVuY3Rpb24obiwgcikge1xuICB2YXIgZSA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIG5bU3ltYm9sLml0ZXJhdG9yXTtcbiAgaWYgKCFlKSByZXR1cm4gbjtcbiAgdmFyIHQgPSBlLmNhbGwobiksIG8sIGEgPSBbXSwgcztcbiAgdHJ5IHtcbiAgICBmb3IgKDsgKHIgPT09IHZvaWQgMCB8fCByLS0gPiAwKSAmJiAhKG8gPSB0Lm5leHQoKSkuZG9uZTsgKSBhLnB1c2goby52YWx1ZSk7XG4gIH0gY2F0Y2ggKGkpIHtcbiAgICBzID0geyBlcnJvcjogaSB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBvICYmICFvLmRvbmUgJiYgKGUgPSB0LnJldHVybikgJiYgZS5jYWxsKHQpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAocykgdGhyb3cgcy5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGE7XG59LCBwID0gZnVuY3Rpb24obiwgciwgZSkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgdCA9IDAsIG8gPSByLmxlbmd0aCwgYTsgdCA8IG87IHQrKylcbiAgICAoYSB8fCAhKHQgaW4gcikpICYmIChhIHx8IChhID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwociwgMCwgdCkpLCBhW3RdID0gclt0XSk7XG4gIHJldHVybiBuLmNvbmNhdChhIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHIpKTtcbn0sIGYgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIG4oKSB7XG4gICAgICB0aGlzLl9lbmFibGVkID0gZmFsc2UsIHRoaXMuX2N1cnJlbnRDb250ZXh0ID0geXM7XG4gICAgfVxuICAgIHJldHVybiBuLnByb3RvdHlwZS5fYmluZEZ1bmN0aW9uID0gZnVuY3Rpb24ociwgZSkge1xuICAgICAgciA9PT0gdm9pZCAwICYmIChyID0geXMpO1xuICAgICAgdmFyIHQgPSB0aGlzLCBvID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGZvciAodmFyIGEgPSB0aGlzLCBzID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgIHNbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIHJldHVybiB0LndpdGgociwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIGUuYXBwbHkoYSwgcyk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJsZW5ndGhcIiwge1xuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgIHZhbHVlOiBlLmxlbmd0aFxuICAgICAgfSksIG87XG4gICAgfSwgbi5wcm90b3R5cGUuYWN0aXZlID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY3VycmVudENvbnRleHQ7XG4gICAgfSwgbi5wcm90b3R5cGUuYmluZCA9IGZ1bmN0aW9uKHIsIGUpIHtcbiAgICAgIHJldHVybiByID09PSB2b2lkIDAgJiYgKHIgPSB0aGlzLmFjdGl2ZSgpKSwgdHlwZW9mIGUgPT0gXCJmdW5jdGlvblwiID8gdGhpcy5fYmluZEZ1bmN0aW9uKHIsIGUpIDogZTtcbiAgICB9LCBuLnByb3RvdHlwZS5kaXNhYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY3VycmVudENvbnRleHQgPSB5cywgdGhpcy5fZW5hYmxlZCA9IGZhbHNlLCB0aGlzO1xuICAgIH0sIG4ucHJvdG90eXBlLmVuYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQgPyB0aGlzIDogKHRoaXMuX2VuYWJsZWQgPSB0cnVlLCB0aGlzLl9jdXJyZW50Q29udGV4dCA9IHlzLCB0aGlzKTtcbiAgICB9LCBuLnByb3RvdHlwZS53aXRoID0gZnVuY3Rpb24ociwgZSwgdCkge1xuICAgICAgZm9yICh2YXIgbyA9IFtdLCBhID0gMzsgYSA8IGFyZ3VtZW50cy5sZW5ndGg7IGErKylcbiAgICAgICAgb1thIC0gM10gPSBhcmd1bWVudHNbYV07XG4gICAgICB2YXIgcyA9IHRoaXMuX2N1cnJlbnRDb250ZXh0O1xuICAgICAgdGhpcy5fY3VycmVudENvbnRleHQgPSByIHx8IHlzO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGUuY2FsbC5hcHBseShlLCBwKFt0XSwgbChvKSwgITEpKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRDb250ZXh0ID0gcztcbiAgICAgIH1cbiAgICB9LCBuO1xuICB9KSgpXG4pLCBkID0gLyogQF9fUFVSRV9fICovIChmdW5jdGlvbigpIHtcbiAgdmFyIG4gPSBmdW5jdGlvbihyLCBlKSB7XG4gICAgcmV0dXJuIG4gPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbih0LCBvKSB7XG4gICAgICB0Ll9fcHJvdG9fXyA9IG87XG4gICAgfSB8fCBmdW5jdGlvbih0LCBvKSB7XG4gICAgICBmb3IgKHZhciBhIGluIG8pIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBhKSAmJiAodFthXSA9IG9bYV0pO1xuICAgIH0sIG4ociwgZSk7XG4gIH07XG4gIHJldHVybiBmdW5jdGlvbihyLCBlKSB7XG4gICAgaWYgKHR5cGVvZiBlICE9IFwiZnVuY3Rpb25cIiAmJiBlICE9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoZSkgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICAgIG4ociwgZSk7XG4gICAgZnVuY3Rpb24gdCgpIHtcbiAgICAgIHRoaXMuY29uc3RydWN0b3IgPSByO1xuICAgIH1cbiAgICByLnByb3RvdHlwZSA9IGUgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGUpIDogKHQucHJvdG90eXBlID0gZS5wcm90b3R5cGUsIG5ldyB0KCkpO1xuICB9O1xufSkoKSwgdiA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24obikge1xuICAgIGQociwgbik7XG4gICAgZnVuY3Rpb24gcihlKSB7XG4gICAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSk7XG4gICAgICB2YXIgdCA9IG4uY2FsbCh0aGlzLCBlKSB8fCB0aGlzO1xuICAgICAgaWYgKGUuY29udGV4dE1hbmFnZXIpXG4gICAgICAgIHRocm93IFwiY29udGV4dE1hbmFnZXIgc2hvdWxkIGJlIGRlZmluZWQgaW4gcmVnaXN0ZXIgbWV0aG9kIG5vdCBpbiBjb25zdHJ1Y3RvclwiO1xuICAgICAgaWYgKGUucHJvcGFnYXRvcilcbiAgICAgICAgdGhyb3cgXCJwcm9wYWdhdG9yIHNob3VsZCBiZSBkZWZpbmVkIGluIHJlZ2lzdGVyIG1ldGhvZCBub3QgaW4gY29uc3RydWN0b3JcIjtcbiAgICAgIHJldHVybiB0O1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUucmVnaXN0ZXIgPSBmdW5jdGlvbihlKSB7XG4gICAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSksIGUuY29udGV4dE1hbmFnZXIgPT09IHZvaWQgMCAmJiAoZS5jb250ZXh0TWFuYWdlciA9IG5ldyBmKCkpLCBlLmNvbnRleHRNYW5hZ2VyICYmIGUuY29udGV4dE1hbmFnZXIuZW5hYmxlKCksIG4ucHJvdG90eXBlLnJlZ2lzdGVyLmNhbGwodGhpcywgZSk7XG4gICAgfSwgcjtcbiAgfSkodGUpXG4pO1xuXG5leHBvcnQgeyB0ZSBhcyBCYXNpY1RyYWNlclByb3ZpZGVyLCBmIGFzIFN0YWNrQ29udGV4dE1hbmFnZXIsIHYgYXMgV2ViVHJhY2VyUHJvdmlkZXIgfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLFNBQVU7QUFDeEIsU0FBUyxLQUFLQyxTQUFVO0FBQ3hCLFNBQWMsS0FBTEMsR0FBNEIsS0FBTEMsR0FBMkIsS0FBTEMsR0FBOEIsS0FBTEMsR0FBK0IsS0FBTEMsR0FBMkIsS0FBTEMsR0FBNkIsS0FB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S0FBS2dCLEVBQUUsWUFBWWhCLEVBQUUsV0FBVyxJQUFJZ0IsRUFBRTtBQUFBLEVBQ2xGO0FBQ0YsR0FBRyxHQUFHSTtBQUFBO0FBQUEsR0FFSCxTQUFTLEdBQUc7QUFDWCxJQUFBRCxFQUFFLEdBQUcsQ0FBQztBQUNOLGFBQVMsRUFBRW5CLEdBQUc7QUFDWixNQUFBQSxNQUFNLFdBQVdBLElBQUksQ0FBQztBQUN0QixVQUFJZ0IsSUFBSSxFQUFFLEtBQUssTUFBTWhCLENBQUMsS0FBSztBQUMzQixVQUFJQSxFQUFFO0FBQ0osY0FBTTtBQUNSLFVBQUlBLEVBQUU7QUFDSixjQUFNO0FBQ1IsYUFBT2dCO0FBQUEsSUFDVDtBQUNBLFdBQU8sRUFBRSxVQUFVLFdBQVcsU0FBU2hCLEdBQUc7QUFDeEMsTUFBQUEsTUFBTSxXQUFXQSxJQUFJLENBQUMsSUFBSUEsRUFBRSxtQkFBbUIsV0FBV0EsRUFBRSxpQkFBaUIsSUFBSSxFQUFFLElBQUlBLEVBQUUsa0JBQWtCQSxFQUFFLGVBQWUsT0FBTyxHQUFHLEVBQUUsVUFBVSxTQUFTLEtBQUssTUFBTUEsQ0FBQztBQUFBLElBQ3pLLEdBQUc7QUFBQSxFQUNMLEdBQUdKLENBQUU7QUFBQTsiLAogICJuYW1lcyI6IFsieXMiLCAidGUiLCAiUiIsICJnIiwgIkQiLCAiZSIsICJTIiwgImoiLCAiQiIsICJHIiwgIlAiLCAiciIsICJ4IiwgIlciLCAieiIsICJUIiwgInUiLCAieSIsICJWIiwgIkMiLCAiYiIsICJ0IiwgIm8iLCAiYSIsICJkIiwgInYiXQp9Cg==
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiaW5kZXgtQy16dnVERFktIX57MDA2fX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IEUgYXMgRXMgfSBmcm9tICcuL2luZGV4LSF+ezAwN31+LmpzJztcbmltcG9ydCB7IHQgYXMgdGUgfSBmcm9tICcuL1NpbXBsZVNwYW5Qcm9jZXNzb3ItaE8yMnVlSUotIX57MDA0fX4uanMnO1xuZXhwb3J0IHsgUiBhcyBBbHdheXNPZmZTYW1wbGVyLCBnIGFzIEFsd2F5c09uU2FtcGxlciwgRCBhcyBCYXRjaFNwYW5Qcm9jZXNzb3IsIGUgYXMgQ29uc29sZVNwYW5FeHBvcnRlciwgUyBhcyBGb3JjZUZsdXNoU3RhdGUsIGogYXMgTm9vcFNwYW5Qcm9jZXNzb3IsIEIgYXMgUGFyZW50QmFzZWRTYW1wbGVyLCBHIGFzIFJhbmRvbUlkR2VuZXJhdG9yLCBQIGFzIFNhbXBsaW5nRGVjaXNpb24sIHIgYXMgU2ltcGxlU3BhblByb2Nlc3NvciwgeCBhcyBTcGFuLCBXIGFzIFRyYWNlSWRSYXRpb0Jhc2VkU2FtcGxlciwgeiBhcyBUcmFjZXIgfSBmcm9tICcuL1NpbXBsZVNwYW5Qcm9jZXNzb3ItaE8yMnVlSUotIX57MDA0fX4uanMnO1xuZXhwb3J0IHsgVCBhcyBQZXJmb3JtYW5jZVRpbWluZ05hbWVzLCB1IGFzIGFkZFNwYW5OZXR3b3JrRXZlbnQsIHkgYXMgYWRkU3Bhbk5ldHdvcmtFdmVudHMsIFYgYXMgZ2V0UmVzb3VyY2UsIEQgYXMgaGFzS2V5LCBDIGFzIHBhcnNlVXJsLCBiIGFzIHNob3VsZFByb3BhZ2F0ZVRyYWNlSGVhZGVycywgVSBhcyBzb3J0UmVzb3VyY2VzIH0gZnJvbSAnLi91dGlscy1EMzY2Q0xqeC0hfnswMDh9fi5qcyc7XG5cbnZhciBsID0gZnVuY3Rpb24obiwgcikge1xuICB2YXIgZSA9IHR5cGVvZiBTeW1ib2wgPT0gXCJmdW5jdGlvblwiICYmIG5bU3ltYm9sLml0ZXJhdG9yXTtcbiAgaWYgKCFlKSByZXR1cm4gbjtcbiAgdmFyIHQgPSBlLmNhbGwobiksIG8sIGEgPSBbXSwgcztcbiAgdHJ5IHtcbiAgICBmb3IgKDsgKHIgPT09IHZvaWQgMCB8fCByLS0gPiAwKSAmJiAhKG8gPSB0Lm5leHQoKSkuZG9uZTsgKSBhLnB1c2goby52YWx1ZSk7XG4gIH0gY2F0Y2ggKGkpIHtcbiAgICBzID0geyBlcnJvcjogaSB9O1xuICB9IGZpbmFsbHkge1xuICAgIHRyeSB7XG4gICAgICBvICYmICFvLmRvbmUgJiYgKGUgPSB0LnJldHVybikgJiYgZS5jYWxsKHQpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAocykgdGhyb3cgcy5lcnJvcjtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGE7XG59LCBwID0gZnVuY3Rpb24obiwgciwgZSkge1xuICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMikgZm9yICh2YXIgdCA9IDAsIG8gPSByLmxlbmd0aCwgYTsgdCA8IG87IHQrKylcbiAgICAoYSB8fCAhKHQgaW4gcikpICYmIChhIHx8IChhID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwociwgMCwgdCkpLCBhW3RdID0gclt0XSk7XG4gIHJldHVybiBuLmNvbmNhdChhIHx8IEFycmF5LnByb3RvdHlwZS5zbGljZS5jYWxsKHIpKTtcbn0sIGYgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgKGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIG4oKSB7XG4gICAgICB0aGlzLl9lbmFibGVkID0gZmFsc2UsIHRoaXMuX2N1cnJlbnRDb250ZXh0ID0gRXM7XG4gICAgfVxuICAgIHJldHVybiBuLnByb3RvdHlwZS5fYmluZEZ1bmN0aW9uID0gZnVuY3Rpb24ociwgZSkge1xuICAgICAgciA9PT0gdm9pZCAwICYmIChyID0gRXMpO1xuICAgICAgdmFyIHQgPSB0aGlzLCBvID0gZnVuY3Rpb24oKSB7XG4gICAgICAgIGZvciAodmFyIGEgPSB0aGlzLCBzID0gW10sIGkgPSAwOyBpIDwgYXJndW1lbnRzLmxlbmd0aDsgaSsrKVxuICAgICAgICAgIHNbaV0gPSBhcmd1bWVudHNbaV07XG4gICAgICAgIHJldHVybiB0LndpdGgociwgZnVuY3Rpb24oKSB7XG4gICAgICAgICAgcmV0dXJuIGUuYXBwbHkoYSwgcyk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcbiAgICAgIHJldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydHkobywgXCJsZW5ndGhcIiwge1xuICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICAgICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgICAgIHZhbHVlOiBlLmxlbmd0aFxuICAgICAgfSksIG87XG4gICAgfSwgbi5wcm90b3R5cGUuYWN0aXZlID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY3VycmVudENvbnRleHQ7XG4gICAgfSwgbi5wcm90b3R5cGUuYmluZCA9IGZ1bmN0aW9uKHIsIGUpIHtcbiAgICAgIHJldHVybiByID09PSB2b2lkIDAgJiYgKHIgPSB0aGlzLmFjdGl2ZSgpKSwgdHlwZW9mIGUgPT0gXCJmdW5jdGlvblwiID8gdGhpcy5fYmluZEZ1bmN0aW9uKHIsIGUpIDogZTtcbiAgICB9LCBuLnByb3RvdHlwZS5kaXNhYmxlID0gZnVuY3Rpb24oKSB7XG4gICAgICByZXR1cm4gdGhpcy5fY3VycmVudENvbnRleHQgPSBFcywgdGhpcy5fZW5hYmxlZCA9IGZhbHNlLCB0aGlzO1xuICAgIH0sIG4ucHJvdG90eXBlLmVuYWJsZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2VuYWJsZWQgPyB0aGlzIDogKHRoaXMuX2VuYWJsZWQgPSB0cnVlLCB0aGlzLl9jdXJyZW50Q29udGV4dCA9IEVzLCB0aGlzKTtcbiAgICB9LCBuLnByb3RvdHlwZS53aXRoID0gZnVuY3Rpb24ociwgZSwgdCkge1xuICAgICAgZm9yICh2YXIgbyA9IFtdLCBhID0gMzsgYSA8IGFyZ3VtZW50cy5sZW5ndGg7IGErKylcbiAgICAgICAgb1thIC0gM10gPSBhcmd1bWVudHNbYV07XG4gICAgICB2YXIgcyA9IHRoaXMuX2N1cnJlbnRDb250ZXh0O1xuICAgICAgdGhpcy5fY3VycmVudENvbnRleHQgPSByIHx8IEVzO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGUuY2FsbC5hcHBseShlLCBwKFt0XSwgbChvKSwgITEpKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRDb250ZXh0ID0gcztcbiAgICAgIH1cbiAgICB9LCBuO1xuICB9KSgpXG4pLCBkID0gLyogQF9fUFVSRV9fICovIChmdW5jdGlvbigpIHtcbiAgdmFyIG4gPSBmdW5jdGlvbihyLCBlKSB7XG4gICAgcmV0dXJuIG4gPSBPYmplY3Quc2V0UHJvdG90eXBlT2YgfHwgeyBfX3Byb3RvX186IFtdIH0gaW5zdGFuY2VvZiBBcnJheSAmJiBmdW5jdGlvbih0LCBvKSB7XG4gICAgICB0Ll9fcHJvdG9fXyA9IG87XG4gICAgfSB8fCBmdW5jdGlvbih0LCBvKSB7XG4gICAgICBmb3IgKHZhciBhIGluIG8pIE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvLCBhKSAmJiAodFthXSA9IG9bYV0pO1xuICAgIH0sIG4ociwgZSk7XG4gIH07XG4gIHJldHVybiBmdW5jdGlvbihyLCBlKSB7XG4gICAgaWYgKHR5cGVvZiBlICE9IFwiZnVuY3Rpb25cIiAmJiBlICE9PSBudWxsKVxuICAgICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNsYXNzIGV4dGVuZHMgdmFsdWUgXCIgKyBTdHJpbmcoZSkgKyBcIiBpcyBub3QgYSBjb25zdHJ1Y3RvciBvciBudWxsXCIpO1xuICAgIG4ociwgZSk7XG4gICAgZnVuY3Rpb24gdCgpIHtcbiAgICAgIHRoaXMuY29uc3RydWN0b3IgPSByO1xuICAgIH1cbiAgICByLnByb3RvdHlwZSA9IGUgPT09IG51bGwgPyBPYmplY3QuY3JlYXRlKGUpIDogKHQucHJvdG90eXBlID0gZS5wcm90b3R5cGUsIG5ldyB0KCkpO1xuICB9O1xufSkoKSwgdiA9IChcbiAgLyoqIEBjbGFzcyAqL1xuICAoZnVuY3Rpb24obikge1xuICAgIGQociwgbik7XG4gICAgZnVuY3Rpb24gcihlKSB7XG4gICAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSk7XG4gICAgICB2YXIgdCA9IG4uY2FsbCh0aGlzLCBlKSB8fCB0aGlzO1xuICAgICAgaWYgKGUuY29udGV4dE1hbmFnZXIpXG4gICAgICAgIHRocm93IFwiY29udGV4dE1hbmFnZXIgc2hvdWxkIGJlIGRlZmluZWQgaW4gcmVnaXN0ZXIgbWV0aG9kIG5vdCBpbiBjb25zdHJ1Y3RvclwiO1xuICAgICAgaWYgKGUucHJvcGFnYXRvcilcbiAgICAgICAgdGhyb3cgXCJwcm9wYWdhdG9yIHNob3VsZCBiZSBkZWZpbmVkIGluIHJlZ2lzdGVyIG1ldGhvZCBub3QgaW4gY29uc3RydWN0b3JcIjtcbiAgICAgIHJldHVybiB0O1xuICAgIH1cbiAgICByZXR1cm4gci5wcm90b3R5cGUucmVnaXN0ZXIgPSBmdW5jdGlvbihlKSB7XG4gICAgICBlID09PSB2b2lkIDAgJiYgKGUgPSB7fSksIGUuY29udGV4dE1hbmFnZXIgPT09IHZvaWQgMCAmJiAoZS5jb250ZXh0TWFuYWdlciA9IG5ldyBmKCkpLCBlLmNvbnRleHRNYW5hZ2VyICYmIGUuY29udGV4dE1hbmFnZXIuZW5hYmxlKCksIG4ucHJvdG90eXBlLnJlZ2lzdGVyLmNhbGwodGhpcywgZSk7XG4gICAgfSwgcjtcbiAgfSkodGUpXG4pO1xuXG5leHBvcnQgeyB0ZSBhcyBCYXNpY1RyYWNlclByb3ZpZGVyLCBmIGFzIFN0YWNrQ29udGV4dE1hbmFnZXIsIHYgYXMgV2ViVHJhY2VyUHJvdmlkZXIgfTsiXSwKICAibWFwcGluZ3MiOiAiQUFBQSxTQUFTLEtBQUtBLFNBQVU7QUFDeEIsU0FBUyxLQUFLQyxTQUFVO0FBQ3hCLFNBQWMsS0FBTEMsR0FBNEIsS0FBTEMsR0FBMkIsS0FBTEMsR0FBOEIsS0FBTEMsR0FBK0IsS0FBTEMsR0FBMkIsS0FBTEMsR0FBNkIsS0FB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S0FBS2dCLEVBQUUsWUFBWWhCLEVBQUUsV0FBVyxJQUFJZ0IsRUFBRTtBQUFBLEVBQ2xGO0FBQ0YsR0FBRyxHQUFHSTtBQUFBO0FBQUEsR0FFSCxTQUFTLEdBQUc7QUFDWCxJQUFBRCxFQUFFLEdBQUcsQ0FBQztBQUNOLGFBQVMsRUFBRW5CLEdBQUc7QUFDWixNQUFBQSxNQUFNLFdBQVdBLElBQUksQ0FBQztBQUN0QixVQUFJZ0IsSUFBSSxFQUFFLEtBQUssTUFBTWhCLENBQUMsS0FBSztBQUMzQixVQUFJQSxFQUFFO0FBQ0osY0FBTTtBQUNSLFVBQUlBLEVBQUU7QUFDSixjQUFNO0FBQ1IsYUFBT2dCO0FBQUEsSUFDVDtBQUNBLFdBQU8sRUFBRSxVQUFVLFdBQVcsU0FBU2hCLEdBQUc7QUFDeEMsTUFBQUEsTUFBTSxXQUFXQSxJQUFJLENBQUMsSUFBSUEsRUFBRSxtQkFBbUIsV0FBV0EsRUFBRSxpQkFBaUIsSUFBSSxFQUFFLElBQUlBLEVBQUUsa0JBQWtCQSxFQUFFLGVBQWUsT0FBTyxHQUFHLEVBQUUsVUFBVSxTQUFTLEtBQUssTUFBTUEsQ0FBQztBQUFBLElBQ3pLLEdBQUc7QUFBQSxFQUNMLEdBQUdKLENBQUU7QUFBQTsiLAogICJuYW1lcyI6IFsiRXMiLCAidGUiLCAiUiIsICJnIiwgIkQiLCAiZSIsICJTIiwgImoiLCAiQiIsICJHIiwgIlAiLCAiciIsICJ4IiwgIlciLCAieiIsICJUIiwgInUiLCAieSIsICJWIiwgIkMiLCAiYiIsICJ0IiwgIm8iLCAiYSIsICJkIiwgInYiXQp9Cg==
|