@getopenpay/openpay-js-react 0.5.15 → 0.5.17

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 (36) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/Resource-Ci2cMsNJ-r_pjpkns.js +176 -0
  3. package/dist/SimpleSpanProcessor-B0eU7C8A-CjPgIH6s.js +910 -0
  4. package/dist/detect-resources-ChhXDAxq-Btymf6C7.js +862 -0
  5. package/dist/{diag-api-DbLQG6Cy-7Q64bfX9.js → diag-api-DC4dxlqZ-DOFCnxry.js} +2 -2
  6. package/dist/index-1sGeF-S8-Cf5_9V8Q.js +1613 -0
  7. package/dist/{index-BJ3-FtuX-DlTusXVc.js → index-925BJ6Jo-FMJz60P8.js} +5 -5
  8. package/dist/{index-B2hBQXxN-CgWoAORq.js → index-BE9m_H38-DZJya01O.js} +2 -2
  9. package/dist/index-BRlq-xUA.js +9354 -0
  10. package/dist/index-BXyoTbrS-DGGjVY6j.js +430 -0
  11. package/dist/{index-CDEhufnp-CDtO0j1l.js → index-C3N5jtkQ-BnMnAIzy.js} +2 -2
  12. package/dist/index-CD5ZzJ0E-BNo61tUq.js +127 -0
  13. package/dist/index-CfmI3mSs-kdYEhELt.js +6718 -0
  14. package/dist/index-DHKyZPe5-DB9begqh.js +147 -0
  15. package/dist/index-v1SRbPSI-Ck3VxOS9.js +1012 -0
  16. package/dist/index.d.ts +7 -2
  17. package/dist/index.js +5 -5
  18. package/dist/metrics-api-B-98-wmH-CgGZj7qs.js +160 -0
  19. package/dist/{suppress-tracing-i166ZvAf-D2QqEK4Q.js → suppress-tracing-BuitcWA2-BFsdq8P_.js} +2 -2
  20. package/dist/url-CTAMV9Fr-n8hDYbJZ.js +798 -0
  21. package/dist/{utils-BFjwGsZE-dHVj8huE.js → utils-CKW-Vl9c-CCUGWG5V.js} +2 -2
  22. package/dist/utils-DCVGrgLr-DxhyWIXT.js +270 -0
  23. package/package.json +1 -1
  24. package/dist/Resource-C_JyOUi0-DCzIGxs8.js +0 -176
  25. package/dist/SimpleSpanProcessor-DsaymkqA-CtD-GEtk.js +0 -910
  26. package/dist/detect-resources-WIF4Hgfd-BW23wWaP.js +0 -862
  27. package/dist/index-0_SuCli2-B5_tBBpx.js +0 -430
  28. package/dist/index-3-QFb-PY-DJRVxNSq.js +0 -127
  29. package/dist/index-CV8wT6Y2-Bh-lYVds.js +0 -6718
  30. package/dist/index-DIoaqP4_-Cs74t_lP.js +0 -1012
  31. package/dist/index-DJhVQsLX-BiIZL-r4.js +0 -147
  32. package/dist/index-Din5I5pT-Be1fPmsi.js +0 -1613
  33. package/dist/index-nPWqtn7T.js +0 -9357
  34. package/dist/metrics-api-B_K2nQRV-Be59r2AI.js +0 -160
  35. package/dist/url-D2-xNTDs-BLiqCwPG.js +0 -798
  36. package/dist/utils-Blz-BInC-461m4Gx4.js +0 -270
@@ -1,270 +0,0 @@
1
- import { r as P } from "./diag-api-DbLQG6Cy-7Q64bfX9.js";
2
- import { k as j } from "./metrics-api-B_K2nQRV-Be59r2AI.js";
3
- import { M as A } from "./index-nPWqtn7T.js";
4
- var w = (
5
- /** @class */
6
- function() {
7
- function e() {
8
- }
9
- return e.prototype.emit = function(t) {
10
- }, e;
11
- }()
12
- ), E = new w(), O = (
13
- /** @class */
14
- function() {
15
- function e() {
16
- }
17
- return e.prototype.getLogger = function(t, r, n) {
18
- return new w();
19
- }, e;
20
- }()
21
- ), b = new O(), M = (
22
- /** @class */
23
- function() {
24
- function e(t, r, n, i) {
25
- this._provider = t, this.name = r, this.version = n, this.options = i;
26
- }
27
- return e.prototype.emit = function(t) {
28
- this._getLogger().emit(t);
29
- }, e.prototype._getLogger = function() {
30
- if (this._delegate)
31
- return this._delegate;
32
- var t = this._provider.getDelegateLogger(this.name, this.version, this.options);
33
- return t ? (this._delegate = t, this._delegate) : E;
34
- }, e;
35
- }()
36
- ), m = (
37
- /** @class */
38
- function() {
39
- function e() {
40
- }
41
- return e.prototype.getLogger = function(t, r, n) {
42
- var i;
43
- return (i = this.getDelegateLogger(t, r, n)) !== null && i !== void 0 ? i : new M(this, t, r, n);
44
- }, e.prototype.getDelegate = function() {
45
- var t;
46
- return (t = this._delegate) !== null && t !== void 0 ? t : b;
47
- }, e.prototype.setDelegate = function(t) {
48
- this._delegate = t;
49
- }, e.prototype.getDelegateLogger = function(t, r, n) {
50
- var i;
51
- return (i = this._delegate) === null || i === void 0 ? void 0 : i.getLogger(t, r, n);
52
- }, e;
53
- }()
54
- ), k = typeof globalThis == "object" ? globalThis : typeof self == "object" ? self : typeof window == "object" ? window : typeof global == "object" ? global : {}, f = Symbol.for("io.opentelemetry.js.api.logs"), g = k;
55
- function D(e, t, r) {
56
- return function(n) {
57
- return n === e ? t : r;
58
- };
59
- }
60
- var d = 1, x = (
61
- /** @class */
62
- function() {
63
- function e() {
64
- this._proxyLoggerProvider = new m();
65
- }
66
- return e.getInstance = function() {
67
- return this._instance || (this._instance = new e()), this._instance;
68
- }, e.prototype.setGlobalLoggerProvider = function(t) {
69
- return g[f] ? this.getLoggerProvider() : (g[f] = D(d, t, b), this._proxyLoggerProvider.setDelegate(t), t);
70
- }, e.prototype.getLoggerProvider = function() {
71
- var t, r;
72
- return (r = (t = g[f]) === null || t === void 0 ? void 0 : t.call(g, d)) !== null && r !== void 0 ? r : this._proxyLoggerProvider;
73
- }, e.prototype.getLogger = function(t, r, n) {
74
- return this.getLoggerProvider().getLogger(t, r, n);
75
- }, e.prototype.disable = function() {
76
- delete g[f], this._proxyLoggerProvider = new m();
77
- }, e;
78
- }()
79
- ), I = x.getInstance(), h, v;
80
- function T() {
81
- if (v) return h;
82
- v = 1;
83
- function e(o) {
84
- return typeof o == "function";
85
- }
86
- var t = console.error.bind(console);
87
- function r(o, u, a) {
88
- var c = !!o[u] && o.propertyIsEnumerable(u);
89
- Object.defineProperty(o, u, {
90
- configurable: !0,
91
- enumerable: c,
92
- writable: !0,
93
- value: a
94
- });
95
- }
96
- function n(o) {
97
- o && o.logger && (e(o.logger) ? t = o.logger : t("new logger isn't a function, not replacing"));
98
- }
99
- function i(o, u, a) {
100
- if (!o || !o[u]) {
101
- t("no original function " + u + " to wrap");
102
- return;
103
- }
104
- if (!a) {
105
- t("no wrapper function"), t(new Error().stack);
106
- return;
107
- }
108
- if (!e(o[u]) || !e(a)) {
109
- t("original object and wrapper must be functions");
110
- return;
111
- }
112
- var c = o[u], p = a(c, u);
113
- return r(p, "__original", c), r(p, "__unwrap", function() {
114
- o[u] === p && r(o, u, c);
115
- }), r(p, "__wrapped", !0), r(o, u, p), p;
116
- }
117
- function s(o, u, a) {
118
- if (o)
119
- Array.isArray(o) || (o = [o]);
120
- else {
121
- t("must provide one or more modules to patch"), t(new Error().stack);
122
- return;
123
- }
124
- if (!(u && Array.isArray(u))) {
125
- t("must provide one or more functions to wrap on modules");
126
- return;
127
- }
128
- o.forEach(function(c) {
129
- u.forEach(function(p) {
130
- i(c, p, a);
131
- });
132
- });
133
- }
134
- function _(o, u) {
135
- if (!o || !o[u]) {
136
- t("no function to unwrap."), t(new Error().stack);
137
- return;
138
- }
139
- if (!o[u].__unwrap)
140
- t("no original to unwrap to -- has " + u + " already been unwrapped?");
141
- else
142
- return o[u].__unwrap();
143
- }
144
- function L(o, u) {
145
- if (o)
146
- Array.isArray(o) || (o = [o]);
147
- else {
148
- t("must provide one or more modules to patch"), t(new Error().stack);
149
- return;
150
- }
151
- if (!(u && Array.isArray(u))) {
152
- t("must provide one or more functions to unwrap on modules");
153
- return;
154
- }
155
- o.forEach(function(a) {
156
- u.forEach(function(c) {
157
- _(a, c);
158
- });
159
- });
160
- }
161
- return n.wrap = i, n.massWrap = s, n.unwrap = _, n.massUnwrap = L, h = n, h;
162
- }
163
- var l = T(), y = function() {
164
- return y = Object.assign || function(e) {
165
- for (var t, r = 1, n = arguments.length; r < n; r++) {
166
- t = arguments[r];
167
- for (var i in t) Object.prototype.hasOwnProperty.call(t, i) && (e[i] = t[i]);
168
- }
169
- return e;
170
- }, y.apply(this, arguments);
171
- }, C = (
172
- /** @class */
173
- function() {
174
- function e(t, r, n) {
175
- this.instrumentationName = t, this.instrumentationVersion = r, this._config = {}, this._wrap = l.wrap, this._unwrap = l.unwrap, this._massWrap = l.massWrap, this._massUnwrap = l.massUnwrap, this.setConfig(n), this._diag = P.createComponentLogger({
176
- namespace: t
177
- }), this._tracer = A.getTracer(t, r), this._meter = j.getMeter(t, r), this._logger = I.getLogger(t, r), this._updateMetricInstruments();
178
- }
179
- return Object.defineProperty(e.prototype, "meter", {
180
- /* Returns meter */
181
- get: function() {
182
- return this._meter;
183
- },
184
- enumerable: !1,
185
- configurable: !0
186
- }), e.prototype.setMeterProvider = function(t) {
187
- this._meter = t.getMeter(this.instrumentationName, this.instrumentationVersion), this._updateMetricInstruments();
188
- }, Object.defineProperty(e.prototype, "logger", {
189
- /* Returns logger */
190
- get: function() {
191
- return this._logger;
192
- },
193
- enumerable: !1,
194
- configurable: !0
195
- }), e.prototype.setLoggerProvider = function(t) {
196
- this._logger = t.getLogger(this.instrumentationName, this.instrumentationVersion);
197
- }, e.prototype.getModuleDefinitions = function() {
198
- var t, r = (t = this.init()) !== null && t !== void 0 ? t : [];
199
- return Array.isArray(r) ? r : [r];
200
- }, e.prototype._updateMetricInstruments = function() {
201
- }, e.prototype.getConfig = function() {
202
- return this._config;
203
- }, e.prototype.setConfig = function(t) {
204
- this._config = y({ enabled: !0 }, t);
205
- }, e.prototype.setTracerProvider = function(t) {
206
- this._tracer = t.getTracer(this.instrumentationName, this.instrumentationVersion);
207
- }, Object.defineProperty(e.prototype, "tracer", {
208
- /* Returns tracer */
209
- get: function() {
210
- return this._tracer;
211
- },
212
- enumerable: !1,
213
- configurable: !0
214
- }), e.prototype._runSpanCustomizationHook = function(t, r, n, i) {
215
- if (t)
216
- try {
217
- t(n, i);
218
- } catch (s) {
219
- this._diag.error("Error running span customization hook due to exception in handler", { triggerName: r }, s);
220
- }
221
- }, e;
222
- }()
223
- ), N = /* @__PURE__ */ function() {
224
- var e = function(t, r) {
225
- return e = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(n, i) {
226
- n.__proto__ = i;
227
- } || function(n, i) {
228
- for (var s in i) Object.prototype.hasOwnProperty.call(i, s) && (n[s] = i[s]);
229
- }, e(t, r);
230
- };
231
- return function(t, r) {
232
- if (typeof r != "function" && r !== null)
233
- throw new TypeError("Class extends value " + String(r) + " is not a constructor or null");
234
- e(t, r);
235
- function n() {
236
- this.constructor = t;
237
- }
238
- t.prototype = r === null ? Object.create(r) : (n.prototype = r.prototype, new n());
239
- };
240
- }(), W = (
241
- /** @class */
242
- function(e) {
243
- N(t, e);
244
- function t(r, n, i) {
245
- var s = e.call(this, r, n, i) || this;
246
- return s._config.enabled && s.enable(), s;
247
- }
248
- return t;
249
- }(C)
250
- );
251
- function z(e, t, r) {
252
- var n, i;
253
- try {
254
- i = e();
255
- } catch (s) {
256
- n = s;
257
- } finally {
258
- return t(n, i), i;
259
- }
260
- }
261
- function G(e) {
262
- return typeof e == "function" && typeof e.__original == "function" && typeof e.__unwrap == "function" && e.__wrapped === !0;
263
- }
264
- export {
265
- z as B,
266
- G as U,
267
- W,
268
- I as k
269
- };
270
- //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsidXRpbHMtQmx6LUJJbkMtIX57MDBjfX4uanMiXSwKICAic291cmNlc0NvbnRlbnQiOiBbImltcG9ydCB7IHIgfSBmcm9tICcuL2RpYWctYXBpLURiTFFHNkN5LSF+ezAwYX1+LmpzJztcbmltcG9ydCB7IGsgYXMgayQxIH0gZnJvbSAnLi9tZXRyaWNzLWFwaS1CX0syblFSVi0hfnswMGZ9fi5qcyc7XG5pbXBvcnQgeyBNIGFzIE1lIH0gZnJvbSAnLi9pbmRleC0hfnswMDd9fi5qcyc7XG5cbnZhciB3ID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24odCkge1xuICAgIH0sIHI7XG4gIH0oKVxuKSwgQSA9IG5ldyB3KCksIEkgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcigpIHtcbiAgICB9XG4gICAgcmV0dXJuIHIucHJvdG90eXBlLmdldExvZ2dlciA9IGZ1bmN0aW9uKHQsIGUsIG4pIHtcbiAgICAgIHJldHVybiBuZXcgdygpO1xuICAgIH0sIHI7XG4gIH0oKVxuKSwgYiA9IG5ldyBJKCksIEUgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24oKSB7XG4gICAgZnVuY3Rpb24gcih0LCBlLCBuLCBpKSB7XG4gICAgICB0aGlzLl9wcm92aWRlciA9IHQsIHRoaXMubmFtZSA9IGUsIHRoaXMudmVyc2lvbiA9IG4sIHRoaXMub3B0aW9ucyA9IGk7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5lbWl0ID0gZnVuY3Rpb24odCkge1xuICAgICAgdGhpcy5fZ2V0TG9nZ2VyKCkuZW1pdCh0KTtcbiAgICB9LCByLnByb3RvdHlwZS5fZ2V0TG9nZ2VyID0gZnVuY3Rpb24oKSB7XG4gICAgICBpZiAodGhpcy5fZGVsZWdhdGUpXG4gICAgICAgIHJldHVybiB0aGlzLl9kZWxlZ2F0ZTtcbiAgICAgIHZhciB0ID0gdGhpcy5fcHJvdmlkZXIuZ2V0RGVsZWdhdGVMb2dnZXIodGhpcy5uYW1lLCB0aGlzLnZlcnNpb24sIHRoaXMub3B0aW9ucyk7XG4gICAgICByZXR1cm4gdCA/ICh0aGlzLl9kZWxlZ2F0ZSA9IHQsIHRoaXMuX2RlbGVnYXRlKSA6IEE7XG4gICAgfSwgcjtcbiAgfSgpXG4pLCBkID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgfVxuICAgIHJldHVybiByLnByb3RvdHlwZS5nZXRMb2dnZXIgPSBmdW5jdGlvbih0LCBlLCBuKSB7XG4gICAgICB2YXIgaTtcbiAgICAgIHJldHVybiAoaSA9IHRoaXMuZ2V0RGVsZWdhdGVMb2dnZXIodCwgZSwgbikpICE9PSBudWxsICYmIGkgIT09IHZvaWQgMCA/IGkgOiBuZXcgRSh0aGlzLCB0LCBlLCBuKTtcbiAgICB9LCByLnByb3RvdHlwZS5nZXREZWxlZ2F0ZSA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQ7XG4gICAgICByZXR1cm4gKHQgPSB0aGlzLl9kZWxlZ2F0ZSkgIT09IG51bGwgJiYgdCAhPT0gdm9pZCAwID8gdCA6IGI7XG4gICAgfSwgci5wcm90b3R5cGUuc2V0RGVsZWdhdGUgPSBmdW5jdGlvbih0KSB7XG4gICAgICB0aGlzLl9kZWxlZ2F0ZSA9IHQ7XG4gICAgfSwgci5wcm90b3R5cGUuZ2V0RGVsZWdhdGVMb2dnZXIgPSBmdW5jdGlvbih0LCBlLCBuKSB7XG4gICAgICB2YXIgaTtcbiAgICAgIHJldHVybiAoaSA9IHRoaXMuX2RlbGVnYXRlKSA9PT0gbnVsbCB8fCBpID09PSB2b2lkIDAgPyB2b2lkIDAgOiBpLmdldExvZ2dlcih0LCBlLCBuKTtcbiAgICB9LCByO1xuICB9KClcbiksIGogPSB0eXBlb2YgZ2xvYmFsVGhpcyA9PSBcIm9iamVjdFwiID8gZ2xvYmFsVGhpcyA6IHR5cGVvZiBzZWxmID09IFwib2JqZWN0XCIgPyBzZWxmIDogdHlwZW9mIHdpbmRvdyA9PSBcIm9iamVjdFwiID8gd2luZG93IDogdHlwZW9mIGdsb2JhbCA9PSBcIm9iamVjdFwiID8gZ2xvYmFsIDoge30sIGwgPSBTeW1ib2wuZm9yKFwiaW8ub3BlbnRlbGVtZXRyeS5qcy5hcGkubG9nc1wiKSwgZyA9IGo7XG5mdW5jdGlvbiBUKHIsIHQsIGUpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uKG4pIHtcbiAgICByZXR1cm4gbiA9PT0gciA/IHQgOiBlO1xuICB9O1xufVxudmFyIHYgPSAxLCBTID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIoKSB7XG4gICAgICB0aGlzLl9wcm94eUxvZ2dlclByb3ZpZGVyID0gbmV3IGQoKTtcbiAgICB9XG4gICAgcmV0dXJuIHIuZ2V0SW5zdGFuY2UgPSBmdW5jdGlvbigpIHtcbiAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgcigpKSwgdGhpcy5faW5zdGFuY2U7XG4gICAgfSwgci5wcm90b3R5cGUuc2V0R2xvYmFsTG9nZ2VyUHJvdmlkZXIgPSBmdW5jdGlvbih0KSB7XG4gICAgICByZXR1cm4gZ1tsXSA/IHRoaXMuZ2V0TG9nZ2VyUHJvdmlkZXIoKSA6IChnW2xdID0gVCh2LCB0LCBiKSwgdGhpcy5fcHJveHlMb2dnZXJQcm92aWRlci5zZXREZWxlZ2F0ZSh0KSwgdCk7XG4gICAgfSwgci5wcm90b3R5cGUuZ2V0TG9nZ2VyUHJvdmlkZXIgPSBmdW5jdGlvbigpIHtcbiAgICAgIHZhciB0LCBlO1xuICAgICAgcmV0dXJuIChlID0gKHQgPSBnW2xdKSA9PT0gbnVsbCB8fCB0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiB0LmNhbGwoZywgdikpICE9PSBudWxsICYmIGUgIT09IHZvaWQgMCA/IGUgOiB0aGlzLl9wcm94eUxvZ2dlclByb3ZpZGVyO1xuICAgIH0sIHIucHJvdG90eXBlLmdldExvZ2dlciA9IGZ1bmN0aW9uKHQsIGUsIG4pIHtcbiAgICAgIHJldHVybiB0aGlzLmdldExvZ2dlclByb3ZpZGVyKCkuZ2V0TG9nZ2VyKHQsIGUsIG4pO1xuICAgIH0sIHIucHJvdG90eXBlLmRpc2FibGUgPSBmdW5jdGlvbigpIHtcbiAgICAgIGRlbGV0ZSBnW2xdLCB0aGlzLl9wcm94eUxvZ2dlclByb3ZpZGVyID0gbmV3IGQoKTtcbiAgICB9LCByO1xuICB9KClcbiksIGsgPSBTLmdldEluc3RhbmNlKCksIGgsIG07XG5mdW5jdGlvbiBEKCkge1xuICBpZiAobSkgcmV0dXJuIGg7XG4gIG0gPSAxO1xuICBmdW5jdGlvbiByKG8pIHtcbiAgICByZXR1cm4gdHlwZW9mIG8gPT0gXCJmdW5jdGlvblwiO1xuICB9XG4gIHZhciB0ID0gY29uc29sZS5lcnJvci5iaW5kKGNvbnNvbGUpO1xuICBmdW5jdGlvbiBlKG8sIGEsIHMpIHtcbiAgICB2YXIgYyA9ICEhb1thXSAmJiBvLnByb3BlcnR5SXNFbnVtZXJhYmxlKGEpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShvLCBhLCB7XG4gICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICBlbnVtZXJhYmxlOiBjLFxuICAgICAgd3JpdGFibGU6IHRydWUsXG4gICAgICB2YWx1ZTogc1xuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIG4obykge1xuICAgIG8gJiYgby5sb2dnZXIgJiYgKHIoby5sb2dnZXIpID8gdCA9IG8ubG9nZ2VyIDogdChcIm5ldyBsb2dnZXIgaXNuJ3QgYSBmdW5jdGlvbiwgbm90IHJlcGxhY2luZ1wiKSk7XG4gIH1cbiAgZnVuY3Rpb24gaShvLCBhLCBzKSB7XG4gICAgaWYgKCFvIHx8ICFvW2FdKSB7XG4gICAgICB0KFwibm8gb3JpZ2luYWwgZnVuY3Rpb24gXCIgKyBhICsgXCIgdG8gd3JhcFwiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFzKSB7XG4gICAgICB0KFwibm8gd3JhcHBlciBmdW5jdGlvblwiKSwgdChuZXcgRXJyb3IoKS5zdGFjayk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICghcihvW2FdKSB8fCAhcihzKSkge1xuICAgICAgdChcIm9yaWdpbmFsIG9iamVjdCBhbmQgd3JhcHBlciBtdXN0IGJlIGZ1bmN0aW9uc1wiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdmFyIGMgPSBvW2FdLCBmID0gcyhjLCBhKTtcbiAgICByZXR1cm4gZShmLCBcIl9fb3JpZ2luYWxcIiwgYyksIGUoZiwgXCJfX3Vud3JhcFwiLCBmdW5jdGlvbigpIHtcbiAgICAgIG9bYV0gPT09IGYgJiYgZShvLCBhLCBjKTtcbiAgICB9KSwgZShmLCBcIl9fd3JhcHBlZFwiLCB0cnVlKSwgZShvLCBhLCBmKSwgZjtcbiAgfVxuICBmdW5jdGlvbiB1KG8sIGEsIHMpIHtcbiAgICBpZiAobylcbiAgICAgIEFycmF5LmlzQXJyYXkobykgfHwgKG8gPSBbb10pO1xuICAgIGVsc2Uge1xuICAgICAgdChcIm11c3QgcHJvdmlkZSBvbmUgb3IgbW9yZSBtb2R1bGVzIHRvIHBhdGNoXCIpLCB0KG5ldyBFcnJvcigpLnN0YWNrKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCEoYSAmJiBBcnJheS5pc0FycmF5KGEpKSkge1xuICAgICAgdChcIm11c3QgcHJvdmlkZSBvbmUgb3IgbW9yZSBmdW5jdGlvbnMgdG8gd3JhcCBvbiBtb2R1bGVzXCIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBvLmZvckVhY2goZnVuY3Rpb24oYykge1xuICAgICAgYS5mb3JFYWNoKGZ1bmN0aW9uKGYpIHtcbiAgICAgICAgaShjLCBmLCBzKTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG4gIGZ1bmN0aW9uIHkobywgYSkge1xuICAgIGlmICghbyB8fCAhb1thXSkge1xuICAgICAgdChcIm5vIGZ1bmN0aW9uIHRvIHVud3JhcC5cIiksIHQobmV3IEVycm9yKCkuc3RhY2spO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIW9bYV0uX191bndyYXApXG4gICAgICB0KFwibm8gb3JpZ2luYWwgdG8gdW53cmFwIHRvIC0tIGhhcyBcIiArIGEgKyBcIiBhbHJlYWR5IGJlZW4gdW53cmFwcGVkP1wiKTtcbiAgICBlbHNlXG4gICAgICByZXR1cm4gb1thXS5fX3Vud3JhcCgpO1xuICB9XG4gIGZ1bmN0aW9uIEwobywgYSkge1xuICAgIGlmIChvKVxuICAgICAgQXJyYXkuaXNBcnJheShvKSB8fCAobyA9IFtvXSk7XG4gICAgZWxzZSB7XG4gICAgICB0KFwibXVzdCBwcm92aWRlIG9uZSBvciBtb3JlIG1vZHVsZXMgdG8gcGF0Y2hcIiksIHQobmV3IEVycm9yKCkuc3RhY2spO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAoIShhICYmIEFycmF5LmlzQXJyYXkoYSkpKSB7XG4gICAgICB0KFwibXVzdCBwcm92aWRlIG9uZSBvciBtb3JlIGZ1bmN0aW9ucyB0byB1bndyYXAgb24gbW9kdWxlc1wiKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgby5mb3JFYWNoKGZ1bmN0aW9uKHMpIHtcbiAgICAgIGEuZm9yRWFjaChmdW5jdGlvbihjKSB7XG4gICAgICAgIHkocywgYyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gbi53cmFwID0gaSwgbi5tYXNzV3JhcCA9IHUsIG4udW53cmFwID0geSwgbi5tYXNzVW53cmFwID0gTCwgaCA9IG4sIGg7XG59XG52YXIgcCA9IEQoKSwgXyA9IGZ1bmN0aW9uKCkge1xuICByZXR1cm4gXyA9IE9iamVjdC5hc3NpZ24gfHwgZnVuY3Rpb24ocikge1xuICAgIGZvciAodmFyIHQsIGUgPSAxLCBuID0gYXJndW1lbnRzLmxlbmd0aDsgZSA8IG47IGUrKykge1xuICAgICAgdCA9IGFyZ3VtZW50c1tlXTtcbiAgICAgIGZvciAodmFyIGkgaW4gdCkgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsIGkpICYmIChyW2ldID0gdFtpXSk7XG4gICAgfVxuICAgIHJldHVybiByO1xuICB9LCBfLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59LCBHID0gKFxuICAvKiogQGNsYXNzICovXG4gIGZ1bmN0aW9uKCkge1xuICAgIGZ1bmN0aW9uIHIkMSh0LCBlLCBuKSB7XG4gICAgICB0aGlzLmluc3RydW1lbnRhdGlvbk5hbWUgPSB0LCB0aGlzLmluc3RydW1lbnRhdGlvblZlcnNpb24gPSBlLCB0aGlzLl9jb25maWcgPSB7fSwgdGhpcy5fd3JhcCA9IHAud3JhcCwgdGhpcy5fdW53cmFwID0gcC51bndyYXAsIHRoaXMuX21hc3NXcmFwID0gcC5tYXNzV3JhcCwgdGhpcy5fbWFzc1Vud3JhcCA9IHAubWFzc1Vud3JhcCwgdGhpcy5zZXRDb25maWcobiksIHRoaXMuX2RpYWcgPSByLmNyZWF0ZUNvbXBvbmVudExvZ2dlcih7XG4gICAgICAgIG5hbWVzcGFjZTogdFxuICAgICAgfSksIHRoaXMuX3RyYWNlciA9IE1lLmdldFRyYWNlcih0LCBlKSwgdGhpcy5fbWV0ZXIgPSBrJDEuZ2V0TWV0ZXIodCwgZSksIHRoaXMuX2xvZ2dlciA9IGsuZ2V0TG9nZ2VyKHQsIGUpLCB0aGlzLl91cGRhdGVNZXRyaWNJbnN0cnVtZW50cygpO1xuICAgIH1cbiAgICByZXR1cm4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHIkMS5wcm90b3R5cGUsIFwibWV0ZXJcIiwge1xuICAgICAgLyogUmV0dXJucyBtZXRlciAqL1xuICAgICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21ldGVyO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIHIkMS5wcm90b3R5cGUuc2V0TWV0ZXJQcm92aWRlciA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIHRoaXMuX21ldGVyID0gdC5nZXRNZXRlcih0aGlzLmluc3RydW1lbnRhdGlvbk5hbWUsIHRoaXMuaW5zdHJ1bWVudGF0aW9uVmVyc2lvbiksIHRoaXMuX3VwZGF0ZU1ldHJpY0luc3RydW1lbnRzKCk7XG4gICAgfSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KHIkMS5wcm90b3R5cGUsIFwibG9nZ2VyXCIsIHtcbiAgICAgIC8qIFJldHVybnMgbG9nZ2VyICovXG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9nZ2VyO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIHIkMS5wcm90b3R5cGUuc2V0TG9nZ2VyUHJvdmlkZXIgPSBmdW5jdGlvbih0KSB7XG4gICAgICB0aGlzLl9sb2dnZXIgPSB0LmdldExvZ2dlcih0aGlzLmluc3RydW1lbnRhdGlvbk5hbWUsIHRoaXMuaW5zdHJ1bWVudGF0aW9uVmVyc2lvbik7XG4gICAgfSwgciQxLnByb3RvdHlwZS5nZXRNb2R1bGVEZWZpbml0aW9ucyA9IGZ1bmN0aW9uKCkge1xuICAgICAgdmFyIHQsIGUgPSAodCA9IHRoaXMuaW5pdCgpKSAhPT0gbnVsbCAmJiB0ICE9PSB2b2lkIDAgPyB0IDogW107XG4gICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShlKSA/IGUgOiBbZV07XG4gICAgfSwgciQxLnByb3RvdHlwZS5fdXBkYXRlTWV0cmljSW5zdHJ1bWVudHMgPSBmdW5jdGlvbigpIHtcbiAgICB9LCByJDEucHJvdG90eXBlLmdldENvbmZpZyA9IGZ1bmN0aW9uKCkge1xuICAgICAgcmV0dXJuIHRoaXMuX2NvbmZpZztcbiAgICB9LCByJDEucHJvdG90eXBlLnNldENvbmZpZyA9IGZ1bmN0aW9uKHQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZyA9IF8oeyBlbmFibGVkOiB0cnVlIH0sIHQpO1xuICAgIH0sIHIkMS5wcm90b3R5cGUuc2V0VHJhY2VyUHJvdmlkZXIgPSBmdW5jdGlvbih0KSB7XG4gICAgICB0aGlzLl90cmFjZXIgPSB0LmdldFRyYWNlcih0aGlzLmluc3RydW1lbnRhdGlvbk5hbWUsIHRoaXMuaW5zdHJ1bWVudGF0aW9uVmVyc2lvbik7XG4gICAgfSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KHIkMS5wcm90b3R5cGUsIFwidHJhY2VyXCIsIHtcbiAgICAgIC8qIFJldHVybnMgdHJhY2VyICovXG4gICAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHJhY2VyO1xuICAgICAgfSxcbiAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSksIHIkMS5wcm90b3R5cGUuX3J1blNwYW5DdXN0b21pemF0aW9uSG9vayA9IGZ1bmN0aW9uKHQsIGUsIG4sIGkpIHtcbiAgICAgIGlmICh0KVxuICAgICAgICB0cnkge1xuICAgICAgICAgIHQobiwgaSk7XG4gICAgICAgIH0gY2F0Y2ggKHUpIHtcbiAgICAgICAgICB0aGlzLl9kaWFnLmVycm9yKFwiRXJyb3IgcnVubmluZyBzcGFuIGN1c3RvbWl6YXRpb24gaG9vayBkdWUgdG8gZXhjZXB0aW9uIGluIGhhbmRsZXJcIiwgeyB0cmlnZ2VyTmFtZTogZSB9LCB1KTtcbiAgICAgICAgfVxuICAgIH0sIHIkMTtcbiAgfSgpXG4pLCBNID0gLyogQF9fUFVSRV9fICovIGZ1bmN0aW9uKCkge1xuICB2YXIgciA9IGZ1bmN0aW9uKHQsIGUpIHtcbiAgICByZXR1cm4gciA9IE9iamVjdC5zZXRQcm90b3R5cGVPZiB8fCB7IF9fcHJvdG9fXzogW10gfSBpbnN0YW5jZW9mIEFycmF5ICYmIGZ1bmN0aW9uKG4sIGkpIHtcbiAgICAgIG4uX19wcm90b19fID0gaTtcbiAgICB9IHx8IGZ1bmN0aW9uKG4sIGkpIHtcbiAgICAgIGZvciAodmFyIHUgaW4gaSkgT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGksIHUpICYmIChuW3VdID0gaVt1XSk7XG4gICAgfSwgcih0LCBlKTtcbiAgfTtcbiAgcmV0dXJuIGZ1bmN0aW9uKHQsIGUpIHtcbiAgICBpZiAodHlwZW9mIGUgIT0gXCJmdW5jdGlvblwiICYmIGUgIT09IG51bGwpXG4gICAgICB0aHJvdyBuZXcgVHlwZUVycm9yKFwiQ2xhc3MgZXh0ZW5kcyB2YWx1ZSBcIiArIFN0cmluZyhlKSArIFwiIGlzIG5vdCBhIGNvbnN0cnVjdG9yIG9yIG51bGxcIik7XG4gICAgcih0LCBlKTtcbiAgICBmdW5jdGlvbiBuKCkge1xuICAgICAgdGhpcy5jb25zdHJ1Y3RvciA9IHQ7XG4gICAgfVxuICAgIHQucHJvdG90eXBlID0gZSA9PT0gbnVsbCA/IE9iamVjdC5jcmVhdGUoZSkgOiAobi5wcm90b3R5cGUgPSBlLnByb3RvdHlwZSwgbmV3IG4oKSk7XG4gIH07XG59KCksIFcgPSAoXG4gIC8qKiBAY2xhc3MgKi9cbiAgZnVuY3Rpb24ocikge1xuICAgIE0odCwgcik7XG4gICAgZnVuY3Rpb24gdChlLCBuLCBpKSB7XG4gICAgICB2YXIgdSA9IHIuY2FsbCh0aGlzLCBlLCBuLCBpKSB8fCB0aGlzO1xuICAgICAgcmV0dXJuIHUuX2NvbmZpZy5lbmFibGVkICYmIHUuZW5hYmxlKCksIHU7XG4gICAgfVxuICAgIHJldHVybiB0O1xuICB9KEcpXG4pO1xuZnVuY3Rpb24gQihyLCB0LCBlKSB7XG4gIHZhciBuLCBpO1xuICB0cnkge1xuICAgIGkgPSByKCk7XG4gIH0gY2F0Y2ggKHUpIHtcbiAgICBuID0gdTtcbiAgfSBmaW5hbGx5IHtcbiAgICByZXR1cm4gdChuLCBpKSwgaTtcbiAgfVxufVxuZnVuY3Rpb24gVShyKSB7XG4gIHJldHVybiB0eXBlb2YgciA9PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIHIuX19vcmlnaW5hbCA9PSBcImZ1bmN0aW9uXCIgJiYgdHlwZW9mIHIuX191bndyYXAgPT0gXCJmdW5jdGlvblwiICYmIHIuX193cmFwcGVkID09PSB0cnVlO1xufVxuXG5leHBvcnQgeyBCLCBVLCBXLCBrIH07Il0sCiAgIm1hcHBpbmdzIjogIkFBQUEsU0FBUyxLQUFBQSxTQUFTO0FBQ2xCLFNBQVMsS0FBS0MsU0FBVztBQUN6QixTQUFTLEtBQUtDLFNB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QyxNQUFJekIsSUFBSSxTQUFTLEdBQUdLLEdBQUc7QUFDckIsV0FBT0wsSUFBSSxPQUFPLGtCQUFrQixFQUFFLFdBQVcsQ0FBQyxFQUFFLGFBQWEsU0FBUyxTQUFTLEdBQUcsR0FBRztBQUN2RixRQUFFLFlBQVk7QUFBQSxJQUNoQixLQUFLLFNBQVMsR0FBRyxHQUFHO0FBQ2xCLGVBQVNtQixLQUFLLEVBQUcsUUFBTyxVQUFVLGVBQWUsS0FBSyxHQUFHQSxDQUFDLE1BQU0sRUFBRUEsQ0FBQyxJQUFJLEVBQUVBLENBQUM7QUFBQSxJQUM1RSxHQUFHbkIsRUFBRSxHQUFHSyxDQUFDO0FBQUEsRUFDWDtBQUNBLFNBQU8sU0FBUyxHQUFHQSxHQUFHO0FBQ3BCLFFBQUksT0FBT0EsS0FBSyxjQUFjQSxNQUFNO0FBQ2xDLFlBQU0sSUFBSSxVQUFVLHlCQUF5QixPQUFPQSxDQUFDLElBQUksK0JBQStCO0FBQzFGLElBQUFMLEVBQUUsR0FBR0ssQ0FBQztBQUNOLGFBQVMsSUFBSTtBQUNYLFdBQUssY0FBYztBQUFBLElBQ3JCO0FBQ0EsTUFBRSxZQUFZQSxNQUFNLE9BQU8sT0FBTyxPQUFPQSxDQUFDLEtBQUssRUFBRSxZQUFZQSxFQUFFLFdBQVcsSUFBSSxFQUFFO0FBQUEsRUFDbEY7QUFDRixFQUFFLEdBQUc7QUFBQTtBQUFBLEVBRUgsU0FBU0wsR0FBRztBQUNWLElBQUF5QixFQUFFLEdBQUd6QixDQUFDO0FBQ04sYUFBUyxFQUFFSyxHQUFHLEdBQUcsR0FBRztBQUNsQixVQUFJYyxJQUFJbkIsRUFBRSxLQUFLLE1BQU1LLEdBQUcsR0FBRyxDQUFDLEtBQUs7QUFDakMsYUFBT2MsRUFBRSxRQUFRLFdBQVdBLEVBQUUsT0FBTyxHQUFHQTtBQUFBLElBQzFDO0FBQ0EsV0FBTztBQUFBLEVBQ1QsRUFBRUksQ0FBQztBQUFBO0FBRUwsU0FBU0csRUFBRTFCLEdBQUcsR0FBR0ssR0FBRztBQUNsQixNQUFJLEdBQUc7QUFDUCxNQUFJO0FBQ0YsUUFBSUwsRUFBRTtBQUFBLEVBQ1IsU0FBU21CLEdBQUc7QUFDVixRQUFJQTtBQUFBLEVBQ04sVUFBRTtBQUNBLFdBQU8sRUFBRSxHQUFHLENBQUMsR0FBRztBQUFBLEVBQ2xCO0FBQ0Y7QUFDQSxTQUFTUSxFQUFFM0IsR0FBRztBQUNaLFNBQU8sT0FBT0EsS0FBSyxjQUFjLE9BQU9BLEVBQUUsY0FBYyxjQUFjLE9BQU9BLEVBQUUsWUFBWSxjQUFjQSxFQUFFLGNBQWM7QUFDM0g7IiwKICAibmFtZXMiOiBbInIiLCAiayQxIiwgIk1lIiwgIkEiLCAiSSIsICJlIiwgIkUiLCAiZCIsICJqIiwgImwiLCAiVCIsICJ2IiwgIlMiLCAiayIsICJtIiwgIkQiLCAiYSIsICJzIiwgImYiLCAidSIsICJ5IiwgInAiLCAiXyIsICJHIiwgInIkMSIsICJNIiwgIkIiLCAiVSJdCn0K