@pendo/agent 2.273.0 → 2.274.0

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.
@@ -3888,8 +3888,8 @@ var SERVER = '';
3888
3888
  var ASSET_HOST = '';
3889
3889
  var ASSET_PATH = '';
3890
3890
  var DESIGNER_ENV = '';
3891
- var VERSION = '2.273.0_';
3892
- var PACKAGE_VERSION = '2.273.0';
3891
+ var VERSION = '2.274.0_';
3892
+ var PACKAGE_VERSION = '2.274.0';
3893
3893
  var LOADER = 'xhr';
3894
3894
  /* eslint-enable agent-eslint-rules/no-gulp-env-references */
3895
3895
  /**
@@ -9097,20 +9097,7 @@ var ajax = (function () {
9097
9097
  else {
9098
9098
  request.send();
9099
9099
  }
9100
- return aliasFailToCatch(deferred.promise);
9101
- }
9102
- function aliasFailToCatch(promise) {
9103
- // Custom code written by pro services uses fail, so we need to support that.
9104
- var wrappedThen = promise.then;
9105
- var wrappedCatch = promise['catch'];
9106
- promise.then = function () {
9107
- return aliasFailToCatch(wrappedThen.apply(this, arguments));
9108
- };
9109
- promise['catch'] = function () {
9110
- return aliasFailToCatch(wrappedCatch.apply(this, arguments));
9111
- };
9112
- promise.fail = promise['catch'];
9113
- return promise;
9100
+ return deferred.promise;
9114
9101
  }
9115
9102
  function get(url, headers) {
9116
9103
  return ajax({
@@ -22306,7 +22293,7 @@ var DesignerV2 = (function () {
22306
22293
  if (style) {
22307
22294
  setStyle(iframe, style);
22308
22295
  }
22309
- iframe.setAttribute('sandbox', 'allow-scripts allow-same-origin allow-top-navigation allow-forms allow-pointer-lock allow-popups');
22296
+ iframe.setAttribute('sandbox', 'allow-scripts allow-same-origin allow-top-navigation allow-forms allow-pointer-lock allow-popups allow-storage-access-by-user-activation');
22310
22297
  iframe.src = src;
22311
22298
  return iframe;
22312
22299
  }
@@ -23304,16 +23291,19 @@ function createCrossFrameChannel(store) {
23304
23291
  }
23305
23292
 
23306
23293
  function onTurbolinksPageLoad(document, onPageLoad) {
23307
- if (typeof Turbolinks !== 'undefined') {
23308
- // Special case guide reloading for troublesome Rails component:
23309
- // https://github.com/rails/turbolinks
23310
- /* global Turbolinks */
23311
- var turboLinksPageLoad = Turbolinks && Turbolinks.EVENTS && Turbolinks.EVENTS.LOAD;
23312
- if (turboLinksPageLoad) {
23313
- return attachEventInternal(document, turboLinksPageLoad, onPageLoad);
23314
- }
23294
+ var Turbolinks = window.Turbolinks, Turbo = window.Turbo;
23295
+ var turboLinksPageLoad;
23296
+ // Special case guide reloading for troublesome Rails component:
23297
+ // https://github.com/rails/turbolinks
23298
+ if (Turbolinks) {
23299
+ turboLinksPageLoad = Turbolinks.EVENTS && Turbolinks.EVENTS.LOAD;
23315
23300
  }
23316
- return function () { };
23301
+ // Updated version of Turbo library
23302
+ // https://turbo.hotwired.dev/reference/events
23303
+ if (Turbo && Turbo.visit) {
23304
+ turboLinksPageLoad = 'turbo:load';
23305
+ }
23306
+ return turboLinksPageLoad ? attachEventInternal(document, turboLinksPageLoad, onPageLoad) : function () { };
23317
23307
  }
23318
23308
 
23319
23309
  var EMPTY_ARRAY_JZB = 'eJwFwIEIAAAAwDDQd3-N1QABFQC5';
@@ -35973,7 +35963,7 @@ var FrustrationEvent = (function () {
35973
35963
  */
35974
35964
  function addFrustrationType(event, type) {
35975
35965
  var _a = event.frustrationTypes, frustrationTypes = _a === void 0 ? [] : _a;
35976
- if (!frustrationTypes.includes(type)) {
35966
+ if (!_.contains(frustrationTypes, type)) {
35977
35967
  frustrationTypes.push(type);
35978
35968
  event.frustrationTypes = frustrationTypes;
35979
35969
  }
@@ -36018,7 +36008,7 @@ var FrustrationEvent = (function () {
36018
36008
  }
36019
36009
  function handleClickEvent(eventData, browserEvent) {
36020
36010
  var isHyperlinked = browserEvent.target && browserEvent.target.tagName === 'A' && browserEvent.target.hasAttribute('href');
36021
- var isDeadClickEligibleTag = browserEvent.target && !deadClickIneligibleTags.includes(browserEvent.target.tagName);
36011
+ var isDeadClickEligibleTag = browserEvent.target && !_.contains(deadClickIneligibleTags, browserEvent.target.tagName);
36022
36012
  if (canQueueDeadClicks && !hasHighlightedText && isDeadClickEligibleTag && !isHyperlinked) {
36023
36013
  queueDeadClick(eventData);
36024
36014
  }
@@ -36170,7 +36160,7 @@ var FrustrationEvent = (function () {
36170
36160
  if (eventData.type === 'submit' || eventData.type === 'change') {
36171
36161
  suspendDeadClickQueue();
36172
36162
  }
36173
- var isDeadClickIneligibleTag = _.has(browserEvent, 'target') && deadClickIneligibleTags.includes(browserEvent.target.tagName);
36163
+ var isDeadClickIneligibleTag = _.has(browserEvent, 'target') && _.contains(deadClickIneligibleTags, browserEvent.target.tagName);
36174
36164
  if (eventData.type === 'focus' && isDeadClickIneligibleTag) {
36175
36165
  suspendDeadClickQueue();
36176
36166
  }
@@ -36931,6 +36921,9 @@ var WebAnalytics = /** @class */ (function () {
36931
36921
  if (referrer && this.api.ConfigReader.get(CAPTURE_REFERRER_CONFIG_KEY)) {
36932
36922
  utm.referrer = referrer;
36933
36923
  }
36924
+ else if (referrerValue !== 'direct') {
36925
+ utm.referrer = referrerValue;
36926
+ }
36934
36927
  return utm;
36935
36928
  }
36936
36929
  }
@@ -43836,14 +43829,20 @@ const testableMethods$1 = {
43836
43829
  MutationObserver: ["constructor"]
43837
43830
  };
43838
43831
  const untaintedBasePrototype$1 = {};
43839
- const isAngularZonePresent$1 = () => {
43840
- return !!globalThis.Zone;
43841
- };
43832
+ function angularZoneUnpatchedAlternative$1(key) {
43833
+ var _a2, _b;
43834
+ const angularUnpatchedVersionSymbol = (_b = (_a2 = globalThis == null ? void 0 : globalThis.Zone) == null ? void 0 : _a2.__symbol__) == null ? void 0 : _b.call(_a2, key);
43835
+ if (angularUnpatchedVersionSymbol && globalThis[angularUnpatchedVersionSymbol]) {
43836
+ return globalThis[angularUnpatchedVersionSymbol];
43837
+ } else {
43838
+ return void 0;
43839
+ }
43840
+ }
43842
43841
  function getUntaintedPrototype$1(key) {
43843
43842
  if (untaintedBasePrototype$1[key])
43844
43843
  return untaintedBasePrototype$1[key];
43845
- const defaultObj = globalThis[key];
43846
- const defaultPrototype = defaultObj.prototype;
43844
+ const candidate = angularZoneUnpatchedAlternative$1(key) || globalThis[key];
43845
+ const defaultPrototype = candidate.prototype;
43847
43846
  const accessorNames = key in testableAccessors$1 ? testableAccessors$1[key] : void 0;
43848
43847
  const isUntaintedAccessors = Boolean(
43849
43848
  accessorNames && // @ts-expect-error 2345
@@ -43866,15 +43865,15 @@ function getUntaintedPrototype$1(key) {
43866
43865
  }
43867
43866
  )
43868
43867
  );
43869
- if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent$1()) {
43870
- untaintedBasePrototype$1[key] = defaultObj.prototype;
43871
- return defaultObj.prototype;
43868
+ if (isUntaintedAccessors && isUntaintedMethods) {
43869
+ untaintedBasePrototype$1[key] = candidate.prototype;
43870
+ return candidate.prototype;
43872
43871
  }
43873
43872
  try {
43874
43873
  const iframeEl = document.createElement("iframe");
43875
43874
  document.body.appendChild(iframeEl);
43876
43875
  const win = iframeEl.contentWindow;
43877
- if (!win) return defaultObj.prototype;
43876
+ if (!win) return candidate.prototype;
43878
43877
  const untaintedObject = win[key].prototype;
43879
43878
  document.body.removeChild(iframeEl);
43880
43879
  if (!untaintedObject) return defaultPrototype;
@@ -44040,6 +44039,7 @@ function stringifyStylesheet(s2) {
44040
44039
  }
44041
44040
  }
44042
44041
  function stringifyRule(rule, sheetHref) {
44042
+ var _a2;
44043
44043
  if (isCSSImportRule(rule)) {
44044
44044
  let importStringified;
44045
44045
  try {
@@ -44050,7 +44050,7 @@ function stringifyRule(rule, sheetHref) {
44050
44050
  } catch (error) {
44051
44051
  importStringified = rule.cssText;
44052
44052
  }
44053
- if (rule.styleSheet.href) {
44053
+ if ((_a2 = rule == null ? void 0 : rule.styleSheet) == null ? void 0 : _a2.href) {
44054
44054
  return absolutifyURLs(importStringified, rule.styleSheet.href);
44055
44055
  }
44056
44056
  return importStringified;
@@ -45256,14 +45256,20 @@ const testableMethods = {
45256
45256
  MutationObserver: ["constructor"]
45257
45257
  };
45258
45258
  const untaintedBasePrototype = {};
45259
- const isAngularZonePresent = () => {
45260
- return !!globalThis.Zone;
45261
- };
45259
+ function angularZoneUnpatchedAlternative(key) {
45260
+ var _a2, _b;
45261
+ const angularUnpatchedVersionSymbol = (_b = (_a2 = globalThis == null ? void 0 : globalThis.Zone) == null ? void 0 : _a2.__symbol__) == null ? void 0 : _b.call(_a2, key);
45262
+ if (angularUnpatchedVersionSymbol && globalThis[angularUnpatchedVersionSymbol]) {
45263
+ return globalThis[angularUnpatchedVersionSymbol];
45264
+ } else {
45265
+ return void 0;
45266
+ }
45267
+ }
45262
45268
  function getUntaintedPrototype(key) {
45263
45269
  if (untaintedBasePrototype[key])
45264
45270
  return untaintedBasePrototype[key];
45265
- const defaultObj = globalThis[key];
45266
- const defaultPrototype = defaultObj.prototype;
45271
+ const candidate = angularZoneUnpatchedAlternative(key) || globalThis[key];
45272
+ const defaultPrototype = candidate.prototype;
45267
45273
  const accessorNames = key in testableAccessors ? testableAccessors[key] : void 0;
45268
45274
  const isUntaintedAccessors = Boolean(
45269
45275
  accessorNames && // @ts-expect-error 2345
@@ -45286,15 +45292,15 @@ function getUntaintedPrototype(key) {
45286
45292
  }
45287
45293
  )
45288
45294
  );
45289
- if (isUntaintedAccessors && isUntaintedMethods && !isAngularZonePresent()) {
45290
- untaintedBasePrototype[key] = defaultObj.prototype;
45291
- return defaultObj.prototype;
45295
+ if (isUntaintedAccessors && isUntaintedMethods) {
45296
+ untaintedBasePrototype[key] = candidate.prototype;
45297
+ return candidate.prototype;
45292
45298
  }
45293
45299
  try {
45294
45300
  const iframeEl = document.createElement("iframe");
45295
45301
  document.body.appendChild(iframeEl);
45296
45302
  const win = iframeEl.contentWindow;
45297
- if (!win) return defaultObj.prototype;
45303
+ if (!win) return candidate.prototype;
45298
45304
  const untaintedObject = win[key].prototype;
45299
45305
  document.body.removeChild(iframeEl);
45300
45306
  if (!untaintedObject) return defaultPrototype;
@@ -46164,7 +46170,7 @@ class MutationBuffer {
46164
46170
  }
46165
46171
  const old = this.unattachedDoc.createElement("span");
46166
46172
  if (m.oldValue) {
46167
- old.setAttribute("style", m.oldValue);
46173
+ old.style.cssText = m.oldValue;
46168
46174
  }
46169
46175
  for (const pname of Array.from(target.style)) {
46170
46176
  const newValue = target.style.getPropertyValue(pname);
@@ -48118,8 +48124,8 @@ function initCanvasWebGLMutationObserver(cb, win, blockClass, blockSelector) {
48118
48124
  };
48119
48125
  }
48120
48126
  const encodedJs = "KGZ1bmN0aW9uKCkgewogICJ1c2Ugc3RyaWN0IjsKICB2YXIgY2hhcnMgPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVphYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODkrLyI7CiAgdmFyIGxvb2t1cCA9IHR5cGVvZiBVaW50OEFycmF5ID09PSAidW5kZWZpbmVkIiA/IFtdIDogbmV3IFVpbnQ4QXJyYXkoMjU2KTsKICBmb3IgKHZhciBpID0gMDsgaSA8IGNoYXJzLmxlbmd0aDsgaSsrKSB7CiAgICBsb29rdXBbY2hhcnMuY2hhckNvZGVBdChpKV0gPSBpOwogIH0KICB2YXIgZW5jb2RlID0gZnVuY3Rpb24oYXJyYXlidWZmZXIpIHsKICAgIHZhciBieXRlcyA9IG5ldyBVaW50OEFycmF5KGFycmF5YnVmZmVyKSwgaTIsIGxlbiA9IGJ5dGVzLmxlbmd0aCwgYmFzZTY0ID0gIiI7CiAgICBmb3IgKGkyID0gMDsgaTIgPCBsZW47IGkyICs9IDMpIHsKICAgICAgYmFzZTY0ICs9IGNoYXJzW2J5dGVzW2kyXSA+PiAyXTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMl0gJiAzKSA8PCA0IHwgYnl0ZXNbaTIgKyAxXSA+PiA0XTsKICAgICAgYmFzZTY0ICs9IGNoYXJzWyhieXRlc1tpMiArIDFdICYgMTUpIDw8IDIgfCBieXRlc1tpMiArIDJdID4+IDZdOwogICAgICBiYXNlNjQgKz0gY2hhcnNbYnl0ZXNbaTIgKyAyXSAmIDYzXTsKICAgIH0KICAgIGlmIChsZW4gJSAzID09PSAyKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDEpICsgIj0iOwogICAgfSBlbHNlIGlmIChsZW4gJSAzID09PSAxKSB7CiAgICAgIGJhc2U2NCA9IGJhc2U2NC5zdWJzdHJpbmcoMCwgYmFzZTY0Lmxlbmd0aCAtIDIpICsgIj09IjsKICAgIH0KICAgIHJldHVybiBiYXNlNjQ7CiAgfTsKICBjb25zdCBsYXN0QmxvYk1hcCA9IC8qIEBfX1BVUkVfXyAqLyBuZXcgTWFwKCk7CiAgY29uc3QgdHJhbnNwYXJlbnRCbG9iTWFwID0gLyogQF9fUFVSRV9fICovIG5ldyBNYXAoKTsKICBhc3luYyBmdW5jdGlvbiBnZXRUcmFuc3BhcmVudEJsb2JGb3Iod2lkdGgsIGhlaWdodCwgZGF0YVVSTE9wdGlvbnMpIHsKICAgIGNvbnN0IGlkID0gYCR7d2lkdGh9LSR7aGVpZ2h0fWA7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBpZiAodHJhbnNwYXJlbnRCbG9iTWFwLmhhcyhpZCkpIHJldHVybiB0cmFuc3BhcmVudEJsb2JNYXAuZ2V0KGlkKTsKICAgICAgY29uc3Qgb2Zmc2NyZWVuID0gbmV3IE9mZnNjcmVlbkNhbnZhcyh3aWR0aCwgaGVpZ2h0KTsKICAgICAgb2Zmc2NyZWVuLmdldENvbnRleHQoIjJkIik7CiAgICAgIGNvbnN0IGJsb2IgPSBhd2FpdCBvZmZzY3JlZW4uY29udmVydFRvQmxvYihkYXRhVVJMT3B0aW9ucyk7CiAgICAgIGNvbnN0IGFycmF5QnVmZmVyID0gYXdhaXQgYmxvYi5hcnJheUJ1ZmZlcigpOwogICAgICBjb25zdCBiYXNlNjQgPSBlbmNvZGUoYXJyYXlCdWZmZXIpOwogICAgICB0cmFuc3BhcmVudEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICByZXR1cm4gYmFzZTY0OwogICAgfSBlbHNlIHsKICAgICAgcmV0dXJuICIiOwogICAgfQogIH0KICBjb25zdCB3b3JrZXIgPSBzZWxmOwogIHdvcmtlci5vbm1lc3NhZ2UgPSBhc3luYyBmdW5jdGlvbihlKSB7CiAgICBpZiAoIk9mZnNjcmVlbkNhbnZhcyIgaW4gZ2xvYmFsVGhpcykgewogICAgICBjb25zdCB7IGlkLCBiaXRtYXAsIHdpZHRoLCBoZWlnaHQsIGRhdGFVUkxPcHRpb25zIH0gPSBlLmRhdGE7CiAgICAgIGNvbnN0IHRyYW5zcGFyZW50QmFzZTY0ID0gZ2V0VHJhbnNwYXJlbnRCbG9iRm9yKAogICAgICAgIHdpZHRoLAogICAgICAgIGhlaWdodCwKICAgICAgICBkYXRhVVJMT3B0aW9ucwogICAgICApOwogICAgICBjb25zdCBvZmZzY3JlZW4gPSBuZXcgT2Zmc2NyZWVuQ2FudmFzKHdpZHRoLCBoZWlnaHQpOwogICAgICBjb25zdCBjdHggPSBvZmZzY3JlZW4uZ2V0Q29udGV4dCgiMmQiKTsKICAgICAgY3R4LmRyYXdJbWFnZShiaXRtYXAsIDAsIDApOwogICAgICBiaXRtYXAuY2xvc2UoKTsKICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IG9mZnNjcmVlbi5jb252ZXJ0VG9CbG9iKGRhdGFVUkxPcHRpb25zKTsKICAgICAgY29uc3QgdHlwZSA9IGJsb2IudHlwZTsKICAgICAgY29uc3QgYXJyYXlCdWZmZXIgPSBhd2FpdCBibG9iLmFycmF5QnVmZmVyKCk7CiAgICAgIGNvbnN0IGJhc2U2NCA9IGVuY29kZShhcnJheUJ1ZmZlcik7CiAgICAgIGlmICghbGFzdEJsb2JNYXAuaGFzKGlkKSAmJiBhd2FpdCB0cmFuc3BhcmVudEJhc2U2NCA9PT0gYmFzZTY0KSB7CiAgICAgICAgbGFzdEJsb2JNYXAuc2V0KGlkLCBiYXNlNjQpOwogICAgICAgIHJldHVybiB3b3JrZXIucG9zdE1lc3NhZ2UoeyBpZCB9KTsKICAgICAgfQogICAgICBpZiAobGFzdEJsb2JNYXAuZ2V0KGlkKSA9PT0gYmFzZTY0KSByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQgfSk7CiAgICAgIHdvcmtlci5wb3N0TWVzc2FnZSh7CiAgICAgICAgaWQsCiAgICAgICAgdHlwZSwKICAgICAgICBiYXNlNjQsCiAgICAgICAgd2lkdGgsCiAgICAgICAgaGVpZ2h0CiAgICAgIH0pOwogICAgICBsYXN0QmxvYk1hcC5zZXQoaWQsIGJhc2U2NCk7CiAgICB9IGVsc2UgewogICAgICByZXR1cm4gd29ya2VyLnBvc3RNZXNzYWdlKHsgaWQ6IGUuZGF0YS5pZCB9KTsKICAgIH0KICB9Owp9KSgpOwovLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1iaXRtYXAtZGF0YS11cmwtd29ya2VyLUlKcEM3Z19iLmpzLm1hcAo=";
48121
- const decodeBase64$1 = (base64) => Uint8Array.from(atob(base64), (c2) => c2.charCodeAt(0));
48122
- const blob = typeof window !== "undefined" && window.Blob && new Blob([decodeBase64$1(encodedJs)], { type: "text/javascript;charset=utf-8" });
48127
+ const decodeBase64 = (base64) => Uint8Array.from(atob(base64), (c2) => c2.charCodeAt(0));
48128
+ const blob = typeof window !== "undefined" && window.Blob && new Blob([decodeBase64(encodedJs)], { type: "text/javascript;charset=utf-8" });
48123
48129
  function WorkerWrapper(options) {
48124
48130
  let objURL;
48125
48131
  try {
@@ -50124,38 +50130,265 @@ function errorLogger(recorder) {
50124
50130
  return recorder;
50125
50131
  }
50126
50132
 
50127
- function decodeBase64(base64, enableUnicode) {
50128
- var binaryString = atob(base64);
50129
- if (enableUnicode) {
50130
- var binaryView = new Uint8Array(binaryString.length);
50131
- for (var i = 0, n = binaryString.length; i < n; ++i) {
50132
- binaryView[i] = binaryString.charCodeAt(i);
50133
- }
50134
- const decoder = new TextDecoder("utf-16le");
50135
- return decoder.decode(new Uint16Array(binaryView.buffer));
50133
+ function funcToSource(fn, sourcemapArg) {
50134
+ var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;
50135
+ var regex = /(['"])__worker_loader_strict__(['"])/g;
50136
+ var lines = [];
50137
+
50138
+ // instead of extracting the function source code, just return the function as if it's being evaluated
50139
+ // by the caller.
50140
+ var source = fn.toString();
50141
+ source = source.replace(regex, '$1use strict$2');
50142
+ lines.push('(' + source + ')()');
50143
+ if (sourcemap) {
50144
+ lines.push('\/\/# sourceMappingURL=' + sourcemap + '\n');
50136
50145
  }
50137
- return binaryString;
50146
+ return lines;
50138
50147
  }
50139
50148
 
50140
- function createURL(base64, sourcemapArg, enableUnicodeArg) {
50141
- var sourcemap = sourcemapArg === undefined ? null : sourcemapArg;
50142
- var enableUnicode = enableUnicodeArg === undefined ? false : enableUnicodeArg;
50143
- var source = decodeBase64(base64, enableUnicode);
50144
- var start = source.indexOf('\n', 10) + 1;
50145
- var body = source.substring(start) + (sourcemap ? '\/\/# sourceMappingURL=' + sourcemap : '');
50146
- var blob = new Blob([body], { type: 'application/javascript' });
50149
+ function createURL(fn, sourcemapArg) {
50150
+ var lines = funcToSource(fn, sourcemapArg);
50151
+ var blob = new Blob(lines, { type: 'application/javascript' });
50147
50152
  return URL.createObjectURL(blob);
50148
50153
  }
50149
50154
 
50150
- function createBase64WorkerFactory(base64, sourcemapArg, enableUnicodeArg) {
50155
+ function createInlineWorkerFactory(fn, sourcemapArg) {
50151
50156
  var url;
50152
50157
  return function WorkerFactory(options) {
50153
- url = url || createURL(base64, sourcemapArg, enableUnicodeArg);
50158
+ url = url || createURL(fn, sourcemapArg);
50154
50159
  return new Worker(url, options);
50155
50160
  };
50156
50161
  }
50157
50162
 
50158
- var WorkerFactory = /*#__PURE__*/createBase64WorkerFactory('Lyogcm9sbHVwLXBsdWdpbi13ZWItd29ya2VyLWxvYWRlciAqLwp2YXIgd29ya2VyX2NvZGUgPSAoZnVuY3Rpb24gKGV4cG9ydHMpIHsKICAgICd1c2Ugc3RyaWN0JzsKCiAgICB2YXIgYjY0ID0gKGZ1bmN0aW9uKCkgewoKICAgICAgICB2YXIgbG9va3VwID0gJ0FCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlaYWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXowMTIzNDU2Nzg5LV8nLnNwbGl0KCcnKTsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgJ3VpbnQ4VG9CYXNlNjQnOiB1aW50OFRvQmFzZTY0CiAgICAgICAgfTsKCiAgICAgICAgZnVuY3Rpb24gdWludDhUb0Jhc2U2NCh1aW50OCkgewogICAgICAgICAgICB2YXIgaSwKICAgICAgICAgICAgICAgIGV4dHJhQnl0ZXMgPSB1aW50OC5sZW5ndGggJSAzLCAvLyBpZiB3ZSBoYXZlIDEgYnl0ZSBsZWZ0LCBwYWQgMiBieXRlcwogICAgICAgICAgICAgICAgb3V0cHV0ID0gJycsCiAgICAgICAgICAgICAgICB0ZW1wLCBsZW5ndGg7CgogICAgICAgICAgICBmdW5jdGlvbiB0cmlwbGV0VG9CYXNlNjQobnVtKSB7CiAgICAgICAgICAgICAgICByZXR1cm4gbG9va3VwW251bSA+PiAxOCAmIDB4M0ZdICsgbG9va3VwW251bSA+PiAxMiAmIDB4M0ZdICsgbG9va3VwW251bSA+PiA2ICYgMHgzRl0gKyBsb29rdXBbbnVtICYgMHgzRl07CiAgICAgICAgICAgIH0KCiAgICAJCS8vIGdvIHRocm91Z2ggdGhlIGFycmF5IGV2ZXJ5IHRocmVlIGJ5dGVzLCB3ZSdsbCBkZWFsIHdpdGggdHJhaWxpbmcgc3R1ZmYgbGF0ZXIKICAgICAgICAgICAgZm9yIChpID0gMCwgbGVuZ3RoID0gdWludDgubGVuZ3RoIC0gZXh0cmFCeXRlczsgaSA8IGxlbmd0aDsgaSArPSAzKSB7CiAgICAgICAgICAgICAgICB0ZW1wID0gKHVpbnQ4W2ldIDw8IDE2KSArICh1aW50OFtpICsgMV0gPDwgOCkgKyAodWludDhbaSArIDJdKTsKICAgICAgICAgICAgICAgIG91dHB1dCArPSB0cmlwbGV0VG9CYXNlNjQodGVtcCk7CiAgICAgICAgICAgIH0KCiAgICAJCS8vIHBhZCB0aGUgZW5kIHdpdGggemVyb3MsIGJ1dCBtYWtlIHN1cmUgdG8gbm90IGZvcmdldCB0aGUgZXh0cmEgYnl0ZXMKICAgICAgICAgICAgLy9lc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZGVmYXVsdC1jYXNlCiAgICAgICAgICAgIHN3aXRjaCAoZXh0cmFCeXRlcykgewogICAgICAgICAgICBjYXNlIDE6CiAgICAgICAgICAgICAgICB0ZW1wID0gdWludDhbdWludDgubGVuZ3RoIC0gMV07CiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gbG9va3VwW3RlbXAgPj4gMl07CiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gbG9va3VwWyh0ZW1wIDw8IDQpICYgMHgzRl07CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgY2FzZSAyOgogICAgICAgICAgICAgICAgdGVtcCA9ICh1aW50OFt1aW50OC5sZW5ndGggLSAyXSA8PCA4KSArICh1aW50OFt1aW50OC5sZW5ndGggLSAxXSk7CiAgICAgICAgICAgICAgICBvdXRwdXQgKz0gbG9va3VwW3RlbXAgPj4gMTBdOwogICAgICAgICAgICAgICAgb3V0cHV0ICs9IGxvb2t1cFsodGVtcCA+PiA0KSAmIDB4M0ZdOwogICAgICAgICAgICAgICAgb3V0cHV0ICs9IGxvb2t1cFsodGVtcCA8PCAyKSAmIDB4M0ZdOwogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIHJldHVybiBvdXRwdXQ7CiAgICAgICAgfQogICAgfSkoKTsKCiAgICBmdW5jdGlvbiBnZXREZWZhdWx0RXhwb3J0RnJvbUNqcyAoeCkgewogICAgCXJldHVybiB4ICYmIHguX19lc01vZHVsZSAmJiBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoeCwgJ2RlZmF1bHQnKSA/IHhbJ2RlZmF1bHQnXSA6IHg7CiAgICB9CgogICAgdmFyIGRlZmxhdGVfbWluID0ge2V4cG9ydHM6IHt9fTsKCiAgICAvKgogICAgICogQGxpY2Vuc2UgemxpYi5qcyAyMDEyIC0gaW1heWEgWyBodHRwczovL2dpdGh1Yi5jb20vaW1heWEvemxpYi5qcyBdIFRoZSBNSVQgTGljZW5zZQogICAgICovCgogICAgKGZ1bmN0aW9uIChtb2R1bGUpIHsKICAgIAkoZnVuY3Rpb24oKSB7dmFyIG49dm9pZCAwLHc9ITAsYWE9dGhpcztmdW5jdGlvbiBiYShmLGQpe3ZhciBjPWYuc3BsaXQoIi4iKSxlPWFhOyEoY1swXWluIGUpJiZlLmV4ZWNTY3JpcHQmJmUuZXhlY1NjcmlwdCgidmFyICIrY1swXSk7Zm9yKHZhciBiO2MubGVuZ3RoJiYoYj1jLnNoaWZ0KCkpOykhYy5sZW5ndGgmJmQhPT1uP2VbYl09ZDplPWVbYl0/ZVtiXTplW2JdPXt9O312YXIgQz0idW5kZWZpbmVkIiE9PXR5cGVvZiBVaW50OEFycmF5JiYidW5kZWZpbmVkIiE9PXR5cGVvZiBVaW50MTZBcnJheSYmInVuZGVmaW5lZCIhPT10eXBlb2YgVWludDMyQXJyYXk7ZnVuY3Rpb24gSyhmLGQpe3RoaXMuaW5kZXg9Im51bWJlciI9PT10eXBlb2YgZD9kOjA7dGhpcy5lPTA7dGhpcy5idWZmZXI9ZiBpbnN0YW5jZW9mKEM/VWludDhBcnJheTpBcnJheSk/ZjpuZXcgKEM/VWludDhBcnJheTpBcnJheSkoMzI3NjgpO2lmKDIqdGhpcy5idWZmZXIubGVuZ3RoPD10aGlzLmluZGV4KXRocm93IEVycm9yKCJpbnZhbGlkIGluZGV4Iik7dGhpcy5idWZmZXIubGVuZ3RoPD10aGlzLmluZGV4JiZjYSh0aGlzKTt9ZnVuY3Rpb24gY2EoZil7dmFyIGQ9Zi5idWZmZXIsYyxlPWQubGVuZ3RoLGI9bmV3IChDP1VpbnQ4QXJyYXk6QXJyYXkpKGU8PDEpO2lmKEMpYi5zZXQoZCk7ZWxzZSBmb3IoYz0wO2M8ZTsrK2MpYltjXT1kW2NdO3JldHVybiBmLmJ1ZmZlcj1ifQogICAgCUsucHJvdG90eXBlLmI9ZnVuY3Rpb24oZixkLGMpe3ZhciBlPXRoaXMuYnVmZmVyLGI9dGhpcy5pbmRleCxhPXRoaXMuZSxnPWVbYl0sbTtjJiYxPGQmJihmPTg8ZD8oTFtmJjI1NV08PDI0fExbZj4+PjgmMjU1XTw8MTZ8TFtmPj4+MTYmMjU1XTw8OHxMW2Y+Pj4yNCYyNTVdKT4+MzItZDpMW2ZdPj44LWQpO2lmKDg+ZCthKWc9Zzw8ZHxmLGErPWQ7ZWxzZSBmb3IobT0wO208ZDsrK20pZz1nPDwxfGY+PmQtbS0xJjEsOD09PSsrYSYmKGE9MCxlW2IrK109TFtnXSxnPTAsYj09PWUubGVuZ3RoJiYoZT1jYSh0aGlzKSkpO2VbYl09Zzt0aGlzLmJ1ZmZlcj1lO3RoaXMuZT1hO3RoaXMuaW5kZXg9Yjt9O0sucHJvdG90eXBlLmZpbmlzaD1mdW5jdGlvbigpe3ZhciBmPXRoaXMuYnVmZmVyLGQ9dGhpcy5pbmRleCxjOzA8dGhpcy5lJiYoZltkXTw8PTgtdGhpcy5lLGZbZF09TFtmW2RdXSxkKyspO0M/Yz1mLnN1YmFycmF5KDAsZCk6KGYubGVuZ3RoPWQsYz1mKTtyZXR1cm4gY307CiAgICAJdmFyIGRhPW5ldyAoQz9VaW50OEFycmF5OkFycmF5KSgyNTYpLE07Zm9yKE09MDsyNTY+TTsrK00pe2Zvcih2YXIgTj1NLFM9TixlYT03LE49Tj4+PjE7TjtOPj4+PTEpUzw8PTEsU3w9TiYxLC0tZWE7ZGFbTV09KFM8PGVhJjI1NSk+Pj4wO312YXIgTD1kYTtmdW5jdGlvbiBpYShmKXt0aGlzLmJ1ZmZlcj1uZXcgKEM/VWludDE2QXJyYXk6QXJyYXkpKDIqZik7dGhpcy5sZW5ndGg9MDt9aWEucHJvdG90eXBlLmdldFBhcmVudD1mdW5jdGlvbihmKXtyZXR1cm4gMiooKGYtMikvNHwwKX07aWEucHJvdG90eXBlLnB1c2g9ZnVuY3Rpb24oZixkKXt2YXIgYyxlLGI9dGhpcy5idWZmZXIsYTtjPXRoaXMubGVuZ3RoO2JbdGhpcy5sZW5ndGgrK109ZDtmb3IoYlt0aGlzLmxlbmd0aCsrXT1mOzA8YzspaWYoZT10aGlzLmdldFBhcmVudChjKSxiW2NdPmJbZV0pYT1iW2NdLGJbY109YltlXSxiW2VdPWEsYT1iW2MrMV0sYltjKzFdPWJbZSsxXSxiW2UrMV09YSxjPWU7ZWxzZSBicmVhaztyZXR1cm4gdGhpcy5sZW5ndGh9OwogICAgCWlhLnByb3RvdHlwZS5wb3A9ZnVuY3Rpb24oKXt2YXIgZixkLGM9dGhpcy5idWZmZXIsZSxiLGE7ZD1jWzBdO2Y9Y1sxXTt0aGlzLmxlbmd0aC09MjtjWzBdPWNbdGhpcy5sZW5ndGhdO2NbMV09Y1t0aGlzLmxlbmd0aCsxXTtmb3IoYT0wOzspe2I9MiphKzI7aWYoYj49dGhpcy5sZW5ndGgpYnJlYWs7YisyPHRoaXMubGVuZ3RoJiZjW2IrMl0+Y1tiXSYmKGIrPTIpO2lmKGNbYl0+Y1thXSllPWNbYV0sY1thXT1jW2JdLGNbYl09ZSxlPWNbYSsxXSxjW2ErMV09Y1tiKzFdLGNbYisxXT1lO2Vsc2UgYnJlYWs7YT1iO31yZXR1cm4ge2luZGV4OmYsdmFsdWU6ZCxsZW5ndGg6dGhpcy5sZW5ndGh9fTtmdW5jdGlvbiBrYShmLGQpe3RoaXMuZD1sYTt0aGlzLmk9MDt0aGlzLmlucHV0PUMmJmYgaW5zdGFuY2VvZiBBcnJheT9uZXcgVWludDhBcnJheShmKTpmO3RoaXMuYz0wO2QmJihkLmxhenkmJih0aGlzLmk9ZC5sYXp5KSwibnVtYmVyIj09PXR5cGVvZiBkLmNvbXByZXNzaW9uVHlwZSYmKHRoaXMuZD1kLmNvbXByZXNzaW9uVHlwZSksZC5vdXRwdXRCdWZmZXImJih0aGlzLmE9QyYmZC5vdXRwdXRCdWZmZXIgaW5zdGFuY2VvZiBBcnJheT9uZXcgVWludDhBcnJheShkLm91dHB1dEJ1ZmZlcik6ZC5vdXRwdXRCdWZmZXIpLCJudW1iZXIiPT09dHlwZW9mIGQub3V0cHV0SW5kZXgmJih0aGlzLmM9ZC5vdXRwdXRJbmRleCkpO3RoaXMuYXx8KHRoaXMuYT1uZXcgKEM/VWludDhBcnJheTpBcnJheSkoMzI3NjgpKTt9dmFyIGxhPTIsbmE9e05PTkU6MCxoOjEsZzpsYSxuOjN9LFQ9W10sVTsKICAgIAlmb3IoVT0wOzI4OD5VO1UrKylzd2l0Y2godyl7Y2FzZSAxNDM+PVU6VC5wdXNoKFtVKzQ4LDhdKTticmVhaztjYXNlIDI1NT49VTpULnB1c2goW1UtMTQ0KzQwMCw5XSk7YnJlYWs7Y2FzZSAyNzk+PVU6VC5wdXNoKFtVLTI1NiswLDddKTticmVhaztjYXNlIDI4Nz49VTpULnB1c2goW1UtMjgwKzE5Miw4XSk7YnJlYWs7ZGVmYXVsdDp0aHJvdyAiaW52YWxpZCBsaXRlcmFsOiAiK1U7fQogICAgCWthLnByb3RvdHlwZS5mPWZ1bmN0aW9uKCl7dmFyIGYsZCxjLGUsYj10aGlzLmlucHV0O3N3aXRjaCh0aGlzLmQpe2Nhc2UgMDpjPTA7Zm9yKGU9Yi5sZW5ndGg7YzxlOyl7ZD1DP2Iuc3ViYXJyYXkoYyxjKzY1NTM1KTpiLnNsaWNlKGMsYys2NTUzNSk7Yys9ZC5sZW5ndGg7dmFyIGE9ZCxnPWM9PT1lLG09bixrPW4scD1uLHQ9bix1PW4sbD10aGlzLmEsaD10aGlzLmM7aWYoQyl7Zm9yKGw9bmV3IFVpbnQ4QXJyYXkodGhpcy5hLmJ1ZmZlcik7bC5sZW5ndGg8PWgrYS5sZW5ndGgrNTspbD1uZXcgVWludDhBcnJheShsLmxlbmd0aDw8MSk7bC5zZXQodGhpcy5hKTt9bT1nPzE6MDtsW2grK109bXwwO2s9YS5sZW5ndGg7cD1+ays2NTUzNiY2NTUzNTtsW2grK109ayYyNTU7bFtoKytdPWs+Pj44JjI1NTtsW2grK109cCYyNTU7bFtoKytdPXA+Pj44JjI1NTtpZihDKWwuc2V0KGEsaCksaCs9YS5sZW5ndGgsbD1sLnN1YmFycmF5KDAsaCk7ZWxzZSB7dD0wO2Zvcih1PWEubGVuZ3RoO3Q8dTsrK3QpbFtoKytdPQogICAgCWFbdF07bC5sZW5ndGg9aDt9dGhpcy5jPWg7dGhpcy5hPWw7fWJyZWFrO2Nhc2UgMTp2YXIgcT1uZXcgSyhDP25ldyBVaW50OEFycmF5KHRoaXMuYS5idWZmZXIpOnRoaXMuYSx0aGlzLmMpO3EuYigxLDEsdyk7cS5iKDEsMix3KTt2YXIgcz1vYSh0aGlzLGIpLHgsZmEsejt4PTA7Zm9yKGZhPXMubGVuZ3RoO3g8ZmE7eCsrKWlmKHo9c1t4XSxLLnByb3RvdHlwZS5iLmFwcGx5KHEsVFt6XSksMjU2PHopcS5iKHNbKyt4XSxzWysreF0sdykscS5iKHNbKyt4XSw1KSxxLmIoc1srK3hdLHNbKyt4XSx3KTtlbHNlIGlmKDI1Nj09PXopYnJlYWs7dGhpcy5hPXEuZmluaXNoKCk7dGhpcy5jPXRoaXMuYS5sZW5ndGg7YnJlYWs7Y2FzZSBsYTp2YXIgQj1uZXcgSyhDP25ldyBVaW50OEFycmF5KHRoaXMuYS5idWZmZXIpOnRoaXMuYSx0aGlzLmMpLHRhLEosTyxQLFEsTGE9WzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdLFgsdWEsWSx2YSxnYSxqYT1BcnJheSgxOSksCiAgICAJd2EsUixoYSx5LHhhO3RhPWxhO0IuYigxLDEsdyk7Qi5iKHRhLDIsdyk7Sj1vYSh0aGlzLGIpO1g9cGEodGhpcy5tLDE1KTt1YT1xYShYKTtZPXBhKHRoaXMubCw3KTt2YT1xYShZKTtmb3IoTz0yODY7MjU3PE8mJjA9PT1YW08tMV07Ty0tKTtmb3IoUD0zMDsxPFAmJjA9PT1ZW1AtMV07UC0tKTt2YXIgeWE9Tyx6YT1QLEY9bmV3IChDP1VpbnQzMkFycmF5OkFycmF5KSh5YSt6YSkscixHLHYsWixFPW5ldyAoQz9VaW50MzJBcnJheTpBcnJheSkoMzE2KSxELEEsSD1uZXcgKEM/VWludDhBcnJheTpBcnJheSkoMTkpO2ZvcihyPUc9MDtyPHlhO3IrKylGW0crK109WFtyXTtmb3Iocj0wO3I8emE7cisrKUZbRysrXT1ZW3JdO2lmKCFDKXtyPTA7Zm9yKFo9SC5sZW5ndGg7cjxaOysrcilIW3JdPTA7fXI9RD0wO2ZvcihaPUYubGVuZ3RoO3I8WjtyKz1HKXtmb3IoRz0xO3IrRzxaJiZGW3IrR109PT1GW3JdOysrRyk7dj1HO2lmKDA9PT1GW3JdKWlmKDM+dilmb3IoOzA8di0tOylFW0QrK109MCwKICAgIAlIWzBdKys7ZWxzZSBmb3IoOzA8djspQT0xMzg+dj92OjEzOCxBPnYtMyYmQTx2JiYoQT12LTMpLDEwPj1BPyhFW0QrK109MTcsRVtEKytdPUEtMyxIWzE3XSsrKTooRVtEKytdPTE4LEVbRCsrXT1BLTExLEhbMThdKyspLHYtPUE7ZWxzZSBpZihFW0QrK109RltyXSxIW0Zbcl1dKyssdi0tLDM+dilmb3IoOzA8di0tOylFW0QrK109RltyXSxIW0Zbcl1dKys7ZWxzZSBmb3IoOzA8djspQT02PnY/djo2LEE+di0zJiZBPHYmJihBPXYtMyksRVtEKytdPTE2LEVbRCsrXT1BLTMsSFsxNl0rKyx2LT1BO31mPUM/RS5zdWJhcnJheSgwLEQpOkUuc2xpY2UoMCxEKTtnYT1wYShILDcpO2Zvcih5PTA7MTk+eTt5KyspamFbeV09Z2FbTGFbeV1dO2ZvcihRPTE5OzQ8USYmMD09PWphW1EtMV07US0tKTt3YT1xYShnYSk7Qi5iKE8tMjU3LDUsdyk7Qi5iKFAtMSw1LHcpO0IuYihRLTQsNCx3KTtmb3IoeT0wO3k8UTt5KyspQi5iKGphW3ldLDMsdyk7eT0wO2Zvcih4YT1mLmxlbmd0aDt5PHhhO3krKylpZihSPQogICAgCWZbeV0sQi5iKHdhW1JdLGdhW1JdLHcpLDE2PD1SKXt5Kys7c3dpdGNoKFIpe2Nhc2UgMTY6aGE9MjticmVhaztjYXNlIDE3OmhhPTM7YnJlYWs7Y2FzZSAxODpoYT03O2JyZWFrO2RlZmF1bHQ6dGhyb3cgImludmFsaWQgY29kZTogIitSO31CLmIoZlt5XSxoYSx3KTt9dmFyIEFhPVt1YSxYXSxCYT1bdmEsWV0sSSxDYSwkLG1hLERhLEVhLEZhLEdhO0RhPUFhWzBdO0VhPUFhWzFdO0ZhPUJhWzBdO0dhPUJhWzFdO0k9MDtmb3IoQ2E9Si5sZW5ndGg7STxDYTsrK0kpaWYoJD1KW0ldLEIuYihEYVskXSxFYVskXSx3KSwyNTY8JClCLmIoSlsrK0ldLEpbKytJXSx3KSxtYT1KWysrSV0sQi5iKEZhW21hXSxHYVttYV0sdyksQi5iKEpbKytJXSxKWysrSV0sdyk7ZWxzZSBpZigyNTY9PT0kKWJyZWFrO3RoaXMuYT1CLmZpbmlzaCgpO3RoaXMuYz10aGlzLmEubGVuZ3RoO2JyZWFrO2RlZmF1bHQ6dGhyb3cgImludmFsaWQgY29tcHJlc3Npb24gdHlwZSI7fXJldHVybiB0aGlzLmF9OwogICAgCWZ1bmN0aW9uIHJhKGYsZCl7dGhpcy5sZW5ndGg9Zjt0aGlzLms9ZDt9CiAgICAJdmFyIHNhPWZ1bmN0aW9uKCl7ZnVuY3Rpb24gZihiKXtzd2l0Y2godyl7Y2FzZSAzPT09YjpyZXR1cm4gWzI1NyxiLTMsMF07Y2FzZSA0PT09YjpyZXR1cm4gWzI1OCxiLTQsMF07Y2FzZSA1PT09YjpyZXR1cm4gWzI1OSxiLTUsMF07Y2FzZSA2PT09YjpyZXR1cm4gWzI2MCxiLTYsMF07Y2FzZSA3PT09YjpyZXR1cm4gWzI2MSxiLTcsMF07Y2FzZSA4PT09YjpyZXR1cm4gWzI2MixiLTgsMF07Y2FzZSA5PT09YjpyZXR1cm4gWzI2MyxiLTksMF07Y2FzZSAxMD09PWI6cmV0dXJuIFsyNjQsYi0xMCwwXTtjYXNlIDEyPj1iOnJldHVybiBbMjY1LGItMTEsMV07Y2FzZSAxND49YjpyZXR1cm4gWzI2NixiLTEzLDFdO2Nhc2UgMTY+PWI6cmV0dXJuIFsyNjcsYi0xNSwxXTtjYXNlIDE4Pj1iOnJldHVybiBbMjY4LGItMTcsMV07Y2FzZSAyMj49YjpyZXR1cm4gWzI2OSxiLTE5LDJdO2Nhc2UgMjY+PWI6cmV0dXJuIFsyNzAsYi0yMywyXTtjYXNlIDMwPj1iOnJldHVybiBbMjcxLGItMjcsMl07Y2FzZSAzND49YjpyZXR1cm4gWzI3MiwKICAgIAliLTMxLDJdO2Nhc2UgNDI+PWI6cmV0dXJuIFsyNzMsYi0zNSwzXTtjYXNlIDUwPj1iOnJldHVybiBbMjc0LGItNDMsM107Y2FzZSA1OD49YjpyZXR1cm4gWzI3NSxiLTUxLDNdO2Nhc2UgNjY+PWI6cmV0dXJuIFsyNzYsYi01OSwzXTtjYXNlIDgyPj1iOnJldHVybiBbMjc3LGItNjcsNF07Y2FzZSA5OD49YjpyZXR1cm4gWzI3OCxiLTgzLDRdO2Nhc2UgMTE0Pj1iOnJldHVybiBbMjc5LGItOTksNF07Y2FzZSAxMzA+PWI6cmV0dXJuIFsyODAsYi0xMTUsNF07Y2FzZSAxNjI+PWI6cmV0dXJuIFsyODEsYi0xMzEsNV07Y2FzZSAxOTQ+PWI6cmV0dXJuIFsyODIsYi0xNjMsNV07Y2FzZSAyMjY+PWI6cmV0dXJuIFsyODMsYi0xOTUsNV07Y2FzZSAyNTc+PWI6cmV0dXJuIFsyODQsYi0yMjcsNV07Y2FzZSAyNTg9PT1iOnJldHVybiBbMjg1LGItMjU4LDBdO2RlZmF1bHQ6dGhyb3cgImludmFsaWQgbGVuZ3RoOiAiK2I7fX12YXIgZD1bXSxjLGU7Zm9yKGM9MzsyNTg+PWM7YysrKWU9ZihjKSxkW2NdPWVbMl08PDI0fAogICAgCWVbMV08PDE2fGVbMF07cmV0dXJuIGR9KCksSGE9Qz9uZXcgVWludDMyQXJyYXkoc2EpOnNhOwogICAgCWZ1bmN0aW9uIG9hKGYsZCl7ZnVuY3Rpb24gYyhiLGMpe3ZhciBhPWIuayxkPVtdLGU9MCxmO2Y9SGFbYi5sZW5ndGhdO2RbZSsrXT1mJjY1NTM1O2RbZSsrXT1mPj4xNiYyNTU7ZFtlKytdPWY+PjI0O3ZhciBnO3N3aXRjaCh3KXtjYXNlIDE9PT1hOmc9WzAsYS0xLDBdO2JyZWFrO2Nhc2UgMj09PWE6Zz1bMSxhLTIsMF07YnJlYWs7Y2FzZSAzPT09YTpnPVsyLGEtMywwXTticmVhaztjYXNlIDQ9PT1hOmc9WzMsYS00LDBdO2JyZWFrO2Nhc2UgNj49YTpnPVs0LGEtNSwxXTticmVhaztjYXNlIDg+PWE6Zz1bNSxhLTcsMV07YnJlYWs7Y2FzZSAxMj49YTpnPVs2LGEtOSwyXTticmVhaztjYXNlIDE2Pj1hOmc9WzcsYS0xMywyXTticmVhaztjYXNlIDI0Pj1hOmc9WzgsYS0xNywzXTticmVhaztjYXNlIDMyPj1hOmc9WzksYS0yNSwzXTticmVhaztjYXNlIDQ4Pj1hOmc9WzEwLGEtMzMsNF07YnJlYWs7Y2FzZSA2ND49YTpnPVsxMSxhLTQ5LDRdO2JyZWFrO2Nhc2UgOTY+PWE6Zz1bMTIsYS0KICAgIAk2NSw1XTticmVhaztjYXNlIDEyOD49YTpnPVsxMyxhLTk3LDVdO2JyZWFrO2Nhc2UgMTkyPj1hOmc9WzE0LGEtMTI5LDZdO2JyZWFrO2Nhc2UgMjU2Pj1hOmc9WzE1LGEtMTkzLDZdO2JyZWFrO2Nhc2UgMzg0Pj1hOmc9WzE2LGEtMjU3LDddO2JyZWFrO2Nhc2UgNTEyPj1hOmc9WzE3LGEtMzg1LDddO2JyZWFrO2Nhc2UgNzY4Pj1hOmc9WzE4LGEtNTEzLDhdO2JyZWFrO2Nhc2UgMTAyND49YTpnPVsxOSxhLTc2OSw4XTticmVhaztjYXNlIDE1MzY+PWE6Zz1bMjAsYS0xMDI1LDldO2JyZWFrO2Nhc2UgMjA0OD49YTpnPVsyMSxhLTE1MzcsOV07YnJlYWs7Y2FzZSAzMDcyPj1hOmc9WzIyLGEtMjA0OSwxMF07YnJlYWs7Y2FzZSA0MDk2Pj1hOmc9WzIzLGEtMzA3MywxMF07YnJlYWs7Y2FzZSA2MTQ0Pj1hOmc9WzI0LGEtNDA5NywxMV07YnJlYWs7Y2FzZSA4MTkyPj1hOmc9WzI1LGEtNjE0NSwxMV07YnJlYWs7Y2FzZSAxMjI4OD49YTpnPVsyNixhLTgxOTMsMTJdO2JyZWFrO2Nhc2UgMTYzODQ+PQogICAgCWE6Zz1bMjcsYS0xMjI4OSwxMl07YnJlYWs7Y2FzZSAyNDU3Nj49YTpnPVsyOCxhLTE2Mzg1LDEzXTticmVhaztjYXNlIDMyNzY4Pj1hOmc9WzI5LGEtMjQ1NzcsMTNdO2JyZWFrO2RlZmF1bHQ6dGhyb3cgImludmFsaWQgZGlzdGFuY2UiO31mPWc7ZFtlKytdPWZbMF07ZFtlKytdPWZbMV07ZFtlKytdPWZbMl07dmFyIGssbTtrPTA7Zm9yKG09ZC5sZW5ndGg7azxtOysraylsW2grK109ZFtrXTtzW2RbMF1dKys7eFtkWzNdXSsrO3E9Yi5sZW5ndGgrYy0xO3U9bnVsbDt9dmFyIGUsYixhLGcsbSxrPXt9LHAsdCx1LGw9Qz9uZXcgVWludDE2QXJyYXkoMipkLmxlbmd0aCk6W10saD0wLHE9MCxzPW5ldyAoQz9VaW50MzJBcnJheTpBcnJheSkoMjg2KSx4PW5ldyAoQz9VaW50MzJBcnJheTpBcnJheSkoMzApLGZhPWYuaSx6O2lmKCFDKXtmb3IoYT0wOzI4NT49YTspc1thKytdPTA7Zm9yKGE9MDsyOT49YTspeFthKytdPTA7fXNbMjU2XT0xO2U9MDtmb3IoYj1kLmxlbmd0aDtlPGI7KytlKXthPQogICAgCW09MDtmb3IoZz0zO2E8ZyYmZSthIT09YjsrK2EpbT1tPDw4fGRbZSthXTtrW21dPT09biYmKGtbbV09W10pO3A9a1ttXTtpZighKDA8cS0tKSl7Zm9yKDswPHAubGVuZ3RoJiYzMjc2ODxlLXBbMF07KXAuc2hpZnQoKTtpZihlKzM+PWIpe3UmJmModSwtMSk7YT0wO2ZvcihnPWItZTthPGc7KythKXo9ZFtlK2FdLGxbaCsrXT16LCsrc1t6XTticmVha30wPHAubGVuZ3RoPyh0PUlhKGQsZSxwKSx1P3UubGVuZ3RoPHQubGVuZ3RoPyh6PWRbZS0xXSxsW2grK109eiwrK3Nbel0sYyh0LDApKTpjKHUsLTEpOnQubGVuZ3RoPGZhP3U9dDpjKHQsMCkpOnU/Yyh1LC0xKTooej1kW2VdLGxbaCsrXT16LCsrc1t6XSk7fXAucHVzaChlKTt9bFtoKytdPTI1NjtzWzI1Nl0rKztmLm09cztmLmw9eDtyZXR1cm4gQz9sLnN1YmFycmF5KDAsaCk6bH0KICAgIAlmdW5jdGlvbiBJYShmLGQsYyl7dmFyIGUsYixhPTAsZyxtLGsscCx0PWYubGVuZ3RoO209MDtwPWMubGVuZ3RoO2E6Zm9yKDttPHA7bSsrKXtlPWNbcC1tLTFdO2c9MztpZigzPGEpe2ZvcihrPWE7MzxrO2stLSlpZihmW2Uray0xXSE9PWZbZCtrLTFdKWNvbnRpbnVlIGE7Zz1hO31mb3IoOzI1OD5nJiZkK2c8dCYmZltlK2ddPT09ZltkK2ddOykrK2c7Zz5hJiYoYj1lLGE9Zyk7aWYoMjU4PT09ZylicmVha31yZXR1cm4gbmV3IHJhKGEsZC1iKX0KICAgIAlmdW5jdGlvbiBwYShmLGQpe3ZhciBjPWYubGVuZ3RoLGU9bmV3IGlhKDU3MiksYj1uZXcgKEM/VWludDhBcnJheTpBcnJheSkoYyksYSxnLG0sayxwO2lmKCFDKWZvcihrPTA7azxjO2srKyliW2tdPTA7Zm9yKGs9MDtrPGM7KytrKTA8ZltrXSYmZS5wdXNoKGssZltrXSk7YT1BcnJheShlLmxlbmd0aC8yKTtnPW5ldyAoQz9VaW50MzJBcnJheTpBcnJheSkoZS5sZW5ndGgvMik7aWYoMT09PWEubGVuZ3RoKXJldHVybiBiW2UucG9wKCkuaW5kZXhdPTEsYjtrPTA7Zm9yKHA9ZS5sZW5ndGgvMjtrPHA7KytrKWFba109ZS5wb3AoKSxnW2tdPWFba10udmFsdWU7bT1KYShnLGcubGVuZ3RoLGQpO2s9MDtmb3IocD1hLmxlbmd0aDtrPHA7KytrKWJbYVtrXS5pbmRleF09bVtrXTtyZXR1cm4gYn0KICAgIAlmdW5jdGlvbiBKYShmLGQsYyl7ZnVuY3Rpb24gZShhKXt2YXIgYj1rW2FdW3BbYV1dO2I9PT1kPyhlKGErMSksZShhKzEpKTotLWdbYl07KytwW2FdO312YXIgYj1uZXcgKEM/VWludDE2QXJyYXk6QXJyYXkpKGMpLGE9bmV3IChDP1VpbnQ4QXJyYXk6QXJyYXkpKGMpLGc9bmV3IChDP1VpbnQ4QXJyYXk6QXJyYXkpKGQpLG09QXJyYXkoYyksaz1BcnJheShjKSxwPUFycmF5KGMpLHQ9KDE8PGMpLWQsdT0xPDxjLTEsbCxoLHEscyx4O2JbYy0xXT1kO2ZvcihoPTA7aDxjOysraCl0PHU/YVtoXT0wOihhW2hdPTEsdC09dSksdDw8PTEsYltjLTItaF09KGJbYy0xLWhdLzJ8MCkrZDtiWzBdPWFbMF07bVswXT1BcnJheShiWzBdKTtrWzBdPUFycmF5KGJbMF0pO2ZvcihoPTE7aDxjOysraCliW2hdPjIqYltoLTFdK2FbaF0mJihiW2hdPTIqYltoLTFdK2FbaF0pLG1baF09QXJyYXkoYltoXSksa1toXT1BcnJheShiW2hdKTtmb3IobD0wO2w8ZDsrK2wpZ1tsXT1jO2ZvcihxPTA7cTxiW2MtMV07KytxKW1bYy0KICAgIAkxXVtxXT1mW3FdLGtbYy0xXVtxXT1xO2ZvcihsPTA7bDxjOysrbClwW2xdPTA7MT09PWFbYy0xXSYmKC0tZ1swXSwrK3BbYy0xXSk7Zm9yKGg9Yy0yOzA8PWg7LS1oKXtzPWw9MDt4PXBbaCsxXTtmb3IocT0wO3E8YltoXTtxKyspcz1tW2grMV1beF0rbVtoKzFdW3grMV0scz5mW2xdPyhtW2hdW3FdPXMsa1toXVtxXT1kLHgrPTIpOihtW2hdW3FdPWZbbF0sa1toXVtxXT1sLCsrbCk7cFtoXT0wOzE9PT1hW2hdJiZlKGgpO31yZXR1cm4gZ30KICAgIAlmdW5jdGlvbiBxYShmKXt2YXIgZD1uZXcgKEM/VWludDE2QXJyYXk6QXJyYXkpKGYubGVuZ3RoKSxjPVtdLGU9W10sYj0wLGEsZyxtLGs7YT0wO2ZvcihnPWYubGVuZ3RoO2E8ZzthKyspY1tmW2FdXT0oY1tmW2FdXXwwKSsxO2E9MTtmb3IoZz0xNjthPD1nO2ErKyllW2FdPWIsYis9Y1thXXwwLGI8PD0xO2E9MDtmb3IoZz1mLmxlbmd0aDthPGc7YSsrKXtiPWVbZlthXV07ZVtmW2FdXSs9MTttPWRbYV09MDtmb3Ioaz1mW2FdO208azttKyspZFthXT1kW2FdPDwxfGImMSxiPj4+PTE7fXJldHVybiBkfWZ1bmN0aW9uIEthKGYsZCl7dGhpcy5pbnB1dD1mO3RoaXMuYT1uZXcgKEM/VWludDhBcnJheTpBcnJheSkoMzI3NjgpO3RoaXMuZD1WLmc7dmFyIGM9e30sZTtpZigoZHx8IShkPXt9KSkmJiJudW1iZXIiPT09dHlwZW9mIGQuY29tcHJlc3Npb25UeXBlKXRoaXMuZD1kLmNvbXByZXNzaW9uVHlwZTtmb3IoZSBpbiBkKWNbZV09ZFtlXTtjLm91dHB1dEJ1ZmZlcj10aGlzLmE7dGhpcy5qPW5ldyBrYSh0aGlzLmlucHV0LGMpO312YXIgVj1uYTsKICAgIAlLYS5wcm90b3R5cGUuZj1mdW5jdGlvbigpe3ZhciBmLGQsYyxlLGIsYSxnPTA7YT10aGlzLmE7c3dpdGNoKDgpe2Nhc2UgODpmPU1hdGguTE9HMkUqTWF0aC5sb2coMzI3NjgpLTg7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiaW52YWxpZCBjb21wcmVzc2lvbiBtZXRob2QiKTt9ZD1mPDw0fDg7YVtnKytdPWQ7c3dpdGNoKDgpe2Nhc2UgODpzd2l0Y2godGhpcy5kKXtjYXNlIFYuTk9ORTplPTA7YnJlYWs7Y2FzZSBWLmg6ZT0xO2JyZWFrO2Nhc2UgVi5nOmU9MjticmVhaztkZWZhdWx0OnRocm93IEVycm9yKCJ1bnN1cHBvcnRlZCBjb21wcmVzc2lvbiB0eXBlIik7fWJyZWFrO2RlZmF1bHQ6dGhyb3cgRXJyb3IoImludmFsaWQgY29tcHJlc3Npb24gbWV0aG9kIik7fWM9ZTw8NnwwO2FbZysrXT1jfDMxLSgyNTYqZCtjKSUzMTt2YXIgbT10aGlzLmlucHV0O2lmKCJzdHJpbmciPT09dHlwZW9mIG0pe3ZhciBrPW0uc3BsaXQoIiIpLHAsdDtwPTA7Zm9yKHQ9ay5sZW5ndGg7cDx0O3ArKylrW3BdPQogICAgCShrW3BdLmNoYXJDb2RlQXQoMCkmMjU1KT4+PjA7bT1rO31mb3IodmFyIHU9MSxsPTAsaD1tLmxlbmd0aCxxLHM9MDswPGg7KXtxPTEwMjQ8aD8xMDI0Omg7aC09cTtkbyB1Kz1tW3MrK10sbCs9dTt3aGlsZSgtLXEpO3UlPTY1NTIxO2wlPTY1NTIxO31iPShsPDwxNnx1KT4+PjA7dGhpcy5qLmM9ZzthPXRoaXMuai5mKCk7Zz1hLmxlbmd0aDtDJiYoYT1uZXcgVWludDhBcnJheShhLmJ1ZmZlciksYS5sZW5ndGg8PWcrNCYmKHRoaXMuYT1uZXcgVWludDhBcnJheShhLmxlbmd0aCs0KSx0aGlzLmEuc2V0KGEpLGE9dGhpcy5hKSxhPWEuc3ViYXJyYXkoMCxnKzQpKTthW2crK109Yj4+MjQmMjU1O2FbZysrXT1iPj4xNiYyNTU7YVtnKytdPWI+PjgmMjU1O2FbZysrXT1iJjI1NTtyZXR1cm4gYX07YmEoIlpsaWIuRGVmbGF0ZSIsS2EpO2JhKCJabGliLkRlZmxhdGUuY29tcHJlc3MiLGZ1bmN0aW9uKGYsZCl7cmV0dXJuIChuZXcgS2EoZixkKSkuZigpfSk7YmEoIlpsaWIuRGVmbGF0ZS5wcm90b3R5cGUuY29tcHJlc3MiLEthLnByb3RvdHlwZS5mKTt2YXIgTWE9e05PTkU6Vi5OT05FLEZJWEVEOlYuaCxEWU5BTUlDOlYuZ30sTmEsT2EsVyxQYTtpZihPYmplY3Qua2V5cylOYT1PYmplY3Qua2V5cyhNYSk7ZWxzZSBmb3IoT2EgaW4gTmE9W10sVz0wLE1hKU5hW1crK109T2E7Vz0wO2ZvcihQYT1OYS5sZW5ndGg7VzxQYTsrK1cpT2E9TmFbV10sYmEoIlpsaWIuRGVmbGF0ZS5Db21wcmVzc2lvblR5cGUuIitPYSxNYVtPYV0pO30pLmNhbGwobW9kdWxlLmV4cG9ydHMpOyAKICAgIH0gKGRlZmxhdGVfbWluKSk7CgogICAgdmFyIGRlZmxhdGVfbWluRXhwb3J0cyA9IGRlZmxhdGVfbWluLmV4cG9ydHM7CiAgICB2YXIgWkxpYkRlZmxhdGUgPSAvKkBfX1BVUkVfXyovZ2V0RGVmYXVsdEV4cG9ydEZyb21DanMoZGVmbGF0ZV9taW5FeHBvcnRzKTsKCiAgICBmdW5jdGlvbiB0b1VURjhBcnJheShzdHIpIHsKICAgICAgICB2YXIgdXRmOCA9IFtdOwogICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc3RyLmxlbmd0aDsgaSsrKSB7CiAgICAgICAgICAgIHZhciBjaGFyY29kZSA9IHN0ci5jaGFyQ29kZUF0KGkpOwogICAgICAgICAgICBpZiAoY2hhcmNvZGUgPCAweDgwKQogICAgICAgICAgICAgICAgdXRmOC5wdXNoKGNoYXJjb2RlKTsKICAgICAgICAgICAgZWxzZSBpZiAoY2hhcmNvZGUgPCAweDgwMCkgewogICAgICAgICAgICAgICAgdXRmOC5wdXNoKDB4YzAgfCAoY2hhcmNvZGUgPj4gNiksIDB4ODAgfCAoY2hhcmNvZGUgJiAweDNmKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSBpZiAoY2hhcmNvZGUgPCAweGQ4MDAgfHwgY2hhcmNvZGUgPj0gMHhlMDAwKSB7CiAgICAgICAgICAgICAgICB1dGY4LnB1c2goMHhlMCB8IChjaGFyY29kZSA+PiAxMiksIDB4ODAgfCAoKGNoYXJjb2RlID4+IDYpICYgMHgzZiksIDB4ODAgfCAoY2hhcmNvZGUgJiAweDNmKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAvLyBzdXJyb2dhdGUgcGFpcgogICAgICAgICAgICAgICAgaSsrOwogICAgICAgICAgICAgICAgLy8gVVRGLTE2IGVuY29kZXMgMHgxMDAwMC0weDEwRkZGRiBieQogICAgICAgICAgICAgICAgLy8gc3VidHJhY3RpbmcgMHgxMDAwMCBhbmQgc3BsaXR0aW5nIHRoZQogICAgICAgICAgICAgICAgLy8gMjAgYml0cyBvZiAweDAtMHhGRkZGRiBpbnRvIHR3byBoYWx2ZXMKICAgICAgICAgICAgICAgIGNoYXJjb2RlID0gMHgxMDAwMCArICgoKGNoYXJjb2RlICYgMHgzZmYpIDw8IDEwKSB8CiAgICAgICAgICAgICAgICAgICAgKHN0ci5jaGFyQ29kZUF0KGkpICYgMHgzZmYpKTsKICAgICAgICAgICAgICAgIHV0ZjgucHVzaCgweGYwIHwgKGNoYXJjb2RlID4+IDE4KSwgMHg4MCB8ICgoY2hhcmNvZGUgPj4gMTIpICYgMHgzZiksIDB4ODAgfCAoKGNoYXJjb2RlID4+IDYpICYgMHgzZiksIDB4ODAgfCAoY2hhcmNvZGUgJiAweDNmKSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHV0Zjg7CiAgICB9CgogICAgdmFyIFpsaWIgPSB7CiAgICAgICAgJ0RlZmxhdGUnOiBaTGliRGVmbGF0ZS5abGliLkRlZmxhdGUKICAgIH07CiAgICB2YXIgRW5jb2RpbmcgPSB7CiAgICAgICAgJ2Jhc2U2NFVybCc6ICdiYXNlNjR1cmwnLAogICAgICAgICdiaW5hcnknOiAnYmluYXJ5JwogICAgfTsKICAgIGZ1bmN0aW9uIGNvbXByZXNzKGpzb25fb2JqLCBlbmNvZGluZykgewogICAgICAgIGlmICghZW5jb2RpbmcpIHsKICAgICAgICAgICAgZW5jb2RpbmcgPSBFbmNvZGluZy5iYXNlNjRVcmw7CiAgICAgICAgfQogICAgICAgIC8qIC0tIFRoaXMgaXMgWkxJQiAqLwogICAgICAgIHZhciBjb21wcmVzc0RhdGEgPSB0b1VURjhBcnJheSh0eXBlb2YganNvbl9vYmogPT09ICdzdHJpbmcnID8ganNvbl9vYmogOiBKU09OLnN0cmluZ2lmeShqc29uX29iaikpOwogICAgICAgIHZhciBkZWZsYXRlID0gbmV3IFpsaWIuRGVmbGF0ZShjb21wcmVzc0RhdGEpOwogICAgICAgIHZhciBjb21wcmVzc2VkQnl0ZXMgPSBkZWZsYXRlLmNvbXByZXNzKCk7CiAgICAgICAgaWYgKGVuY29kaW5nID09PSBFbmNvZGluZy5iYXNlNjRVcmwpIHsKICAgICAgICAgICAgcmV0dXJuIGI2NC51aW50OFRvQmFzZTY0KGNvbXByZXNzZWRCeXRlcyk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICByZXR1cm4gY29tcHJlc3NlZEJ5dGVzOwogICAgICAgIH0KICAgIH0KCiAgICB2YXIgT05FX0hVTkRSRURfTUJfSU5fQllURVMgPSAxMDAgKiAxMDI0ICogMTAyNDsKICAgIGZ1bmN0aW9uIG1hdGNoSG9zdGVkUmVzb3VyY2VzKHJlY29yZGluZ0V2ZW50LCBzdHJpbmdpZmllZFJlY29yZGluZ1BheWxvYWQpIHsKICAgICAgICB2YXIgZm9udFVSTFJlZ2V4ID0gL2h0dHBzOlwvXC9bXlxzXSs/XC4od29mZnx3b2ZmMnx0dGZ8b3RmfGVvdClcYi9nOwogICAgICAgIHZhciBob3N0ZWRSZXNvdXJjZXMgPSBzdHJpbmdpZmllZFJlY29yZGluZ1BheWxvYWQubWF0Y2goZm9udFVSTFJlZ2V4KTsKICAgICAgICByZXR1cm4gewogICAgICAgICAgICAndHlwZSc6ICdyZWNvcmRpbmcnLAogICAgICAgICAgICAndmlzaXRvcklkJzogcmVjb3JkaW5nRXZlbnQudmlzaXRvcklkLAogICAgICAgICAgICAnYWNjb3VudElkJzogcmVjb3JkaW5nRXZlbnQuYWNjb3VudElkLAogICAgICAgICAgICAna2V5RnJhbWUnOiBmYWxzZSwKICAgICAgICAgICAgJ2xhc3RLZXlGcmFtZSc6IHJlY29yZGluZ0V2ZW50Lmxhc3RLZXlGcmFtZSwKICAgICAgICAgICAgJ3JlY29yZGluZ0lkJzogcmVjb3JkaW5nRXZlbnQucmVjb3JkaW5nSWQsCiAgICAgICAgICAgICdyZWNvcmRpbmdTZXNzaW9uSWQnOiByZWNvcmRpbmdFdmVudC5yZWNvcmRpbmdTZXNzaW9uSWQsCiAgICAgICAgICAgICd1cmwnOiByZWNvcmRpbmdFdmVudC51cmwsCiAgICAgICAgICAgICdzdWJUeXBlJzogJ2hvc3RlZFJlc291cmNlcycsCiAgICAgICAgICAgICdyZWNvcmRpbmdQYXlsb2FkJzogW10sCiAgICAgICAgICAgICdyZWNvcmRpbmdQYXlsb2FkTWV0YWRhdGEnOiBbXSwKICAgICAgICAgICAgJ3NlcXVlbmNlJzogMCwKICAgICAgICAgICAgJ3JlY29yZGluZ1BheWxvYWRDb3VudCc6IDAsCiAgICAgICAgICAgICdob3N0ZWRSZXNvdXJjZXMnOiBob3N0ZWRSZXNvdXJjZXMgfHwgW10KICAgICAgICB9OwogICAgfQogICAgLy8ga2VlcCBpbiBtaW5kIGNoYW5nZXMgaGVyZSBtYXkgbmVlZCBhZGRyZXNzaW5nIGluIHRoZSBleHRlbnNpb24gd29ya2VyIHByb3h5IGFzIHdlbGwKICAgIHNlbGYub25tZXNzYWdlID0gZnVuY3Rpb24gKGUpIHsKICAgICAgICB0cnkgewogICAgICAgICAgICBpZiAoZS5kYXRhLnVybCAmJiBlLmRhdGEucGF5bG9hZCkgewogICAgICAgICAgICAgICAgdmFyIF9hID0gZS5kYXRhLCB1cmwgPSBfYS51cmwsIHBheWxvYWQgPSBfYS5wYXlsb2FkLCBzaG91bGRDYWNoZVJlc291cmNlcyA9IF9hLnNob3VsZENhY2hlUmVzb3VyY2VzOwogICAgICAgICAgICAgICAgdmFyIHNlcXVlbmNlXzEgPSBwYXlsb2FkLnNlcXVlbmNlOwogICAgICAgICAgICAgICAgdmFyIHN0cmluZ2lmaWVkUmVjb3JkaW5nUGF5bG9hZCA9IEpTT04uc3RyaW5naWZ5KHBheWxvYWQucmVjb3JkaW5nUGF5bG9hZCk7CiAgICAgICAgICAgICAgICAvLyBjYWxjdWxhdGUgYW5kIHBvc3QgYmFjayB0aGUgcmVjb3JkaW5nIHBheWxvYWQgc2l6ZSBiZWZvcmUgdGhlIHBheWxvYWQgaXMgY29tcHJlc3NlZAogICAgICAgICAgICAgICAgdmFyIHJlY29yZGluZ1BheWxvYWRTaXplID0gbmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKHN0cmluZ2lmaWVkUmVjb3JkaW5nUGF5bG9hZCkubGVuZ3RoOwogICAgICAgICAgICAgICAgdmFyIGV4Y2VlZHNQYXlsb2FkU2l6ZUxpbWl0ID0gcmVjb3JkaW5nUGF5bG9hZFNpemUgPj0gT05FX0hVTkRSRURfTUJfSU5fQllURVM7CiAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgJ3R5cGUnOiAncmVjb3JkaW5nUGF5bG9hZFNpemUnLAogICAgICAgICAgICAgICAgICAgICdyZWNvcmRpbmdQYXlsb2FkU2l6ZSc6IHJlY29yZGluZ1BheWxvYWRTaXplLAogICAgICAgICAgICAgICAgICAgICdleGNlZWRzUGF5bG9hZFNpemVMaW1pdCc6IGV4Y2VlZHNQYXlsb2FkU2l6ZUxpbWl0CiAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIC8vIGRvbid0IGF0dGVtcHQgdG8gc2VuZCB0aGUgcGF5bG9hZCBpZiBpdCBleGNlZWRzIHRoZSBhbGxvd2VkIGxpbWl0CiAgICAgICAgICAgICAgICBpZiAoZXhjZWVkc1BheWxvYWRTaXplTGltaXQpCiAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgaWYgKHNob3VsZENhY2hlUmVzb3VyY2VzKSB7CiAgICAgICAgICAgICAgICAgICAgdmFyIGhvc3RlZFJlc291cmNlc0V2ZW50ID0gbWF0Y2hIb3N0ZWRSZXNvdXJjZXMocGF5bG9hZCwgc3RyaW5naWZpZWRSZWNvcmRpbmdQYXlsb2FkKTsKICAgICAgICAgICAgICAgICAgICBpZiAoaG9zdGVkUmVzb3VyY2VzRXZlbnQuaG9zdGVkUmVzb3VyY2VzLmxlbmd0aCkgewogICAgICAgICAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAndHlwZSc6ICdob3N0ZWRSZXNvdXJjZXMnLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2hvc3RlZFJlc291cmNlc0V2ZW50JzogaG9zdGVkUmVzb3VyY2VzRXZlbnQKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgcGF5bG9hZC5yZWNvcmRpbmdTaXplID0gcmVjb3JkaW5nUGF5bG9hZFNpemU7CiAgICAgICAgICAgICAgICB2YXIgYm9keSA9IGNvbXByZXNzKHBheWxvYWQsICdiaW5hcnknKTsKICAgICAgICAgICAgICAgIC8vIHdlIHdhbnQgdG8gY2FsY3VsYXRlIGN0IChjdXJyZW50IHRpbWUpIGFzIGNsb3NlIGFzIHdlIGNhbiB0byB0aGUgYWN0dWFsIFBPU1QgcmVxdWVzdAogICAgICAgICAgICAgICAgLy8gc28gdGhhdCBpdCdzIGFzIGFjY3VyYXRlIGFzIHBvc3NpYmxlCiAgICAgICAgICAgICAgICB1cmwgPSAiIi5jb25jYXQodXJsLCAiJmN0PSIpLmNvbmNhdChuZXcgRGF0ZSgpLmdldFRpbWUoKSk7CiAgICAgICAgICAgICAgICBmZXRjaCh1cmwsIHsKICAgICAgICAgICAgICAgICAgICAnbWV0aG9kJzogJ1BPU1QnLAogICAgICAgICAgICAgICAgICAgICdib2R5JzogYm9keQogICAgICAgICAgICAgICAgfSkudGhlbihmdW5jdGlvbiAocmVzcG9uc2UpIHsKICAgICAgICAgICAgICAgICAgICBpZiAocmVzcG9uc2Uuc3RhdHVzIDwgMjAwIHx8IHJlc3BvbnNlLnN0YXR1cyA+PSAzMDApIHsKICAgICAgICAgICAgICAgICAgICAgICAgcG9zdE1lc3NhZ2UoewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2Vycm9yJzogbmV3IEVycm9yKCJyZWNlaXZlZCBzdGF0dXMgY29kZSAiLmNvbmNhdChyZXNwb25zZS5zdGF0dXMsICI6ICIpLmNvbmNhdChyZXNwb25zZS5zdGF0dXNUZXh0KSksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnc3RhdHVzJzogcmVzcG9uc2Uuc3RhdHVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VxdWVuY2U6IHNlcXVlbmNlXzEKICAgICAgICAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICAgICBwb3N0TWVzc2FnZSh7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXF1ZW5jZTogc2VxdWVuY2VfMQogICAgICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9KVsnY2F0Y2gnXShmdW5jdGlvbiAoZSkgewogICAgICAgICAgICAgICAgICAgIHBvc3RNZXNzYWdlKHsKICAgICAgICAgICAgICAgICAgICAgICAgJ2Vycm9yJzogZSwKICAgICAgICAgICAgICAgICAgICAgICAgc2VxdWVuY2U6IHNlcXVlbmNlXzEKICAgICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGNhdGNoIChlKSB7CiAgICAgICAgICAgIHBvc3RNZXNzYWdlKHsKICAgICAgICAgICAgICAgICdlcnJvcic6IGUKICAgICAgICAgICAgfSk7CiAgICAgICAgfQogICAgfTsKCiAgICBleHBvcnRzLm1hdGNoSG9zdGVkUmVzb3VyY2VzID0gbWF0Y2hIb3N0ZWRSZXNvdXJjZXM7CgogICAgcmV0dXJuIGV4cG9ydHM7Cgp9KSh7fSk7Ci8vIyBzb3VyY2VNYXBwaW5nVVJMPXdvcmtlci5qcy5tYXAKCg==', null, false);
50163
+ var WorkerFactory = /*#__PURE__*/createInlineWorkerFactory(/* rollup-plugin-web-worker-loader */function () {
50164
+ ((function (exports) {
50165
+ '__worker_loader_strict__';
50166
+
50167
+ var b64 = (function() {
50168
+
50169
+ var lookup = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'.split('');
50170
+
50171
+ return {
50172
+ 'uint8ToBase64': uint8ToBase64
50173
+ };
50174
+
50175
+ function uint8ToBase64(uint8) {
50176
+ var i,
50177
+ extraBytes = uint8.length % 3, // if we have 1 byte left, pad 2 bytes
50178
+ output = '',
50179
+ temp, length;
50180
+
50181
+ function tripletToBase64(num) {
50182
+ return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F];
50183
+ }
50184
+
50185
+ // go through the array every three bytes, we'll deal with trailing stuff later
50186
+ for (i = 0, length = uint8.length - extraBytes; i < length; i += 3) {
50187
+ temp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);
50188
+ output += tripletToBase64(temp);
50189
+ }
50190
+
50191
+ // pad the end with zeros, but make sure to not forget the extra bytes
50192
+ //eslint-disable-next-line default-case
50193
+ switch (extraBytes) {
50194
+ case 1:
50195
+ temp = uint8[uint8.length - 1];
50196
+ output += lookup[temp >> 2];
50197
+ output += lookup[(temp << 4) & 0x3F];
50198
+ break;
50199
+ case 2:
50200
+ temp = (uint8[uint8.length - 2] << 8) + (uint8[uint8.length - 1]);
50201
+ output += lookup[temp >> 10];
50202
+ output += lookup[(temp >> 4) & 0x3F];
50203
+ output += lookup[(temp << 2) & 0x3F];
50204
+ break;
50205
+ }
50206
+
50207
+ return output;
50208
+ }
50209
+ })();
50210
+
50211
+ function getDefaultExportFromCjs (x) {
50212
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
50213
+ }
50214
+
50215
+ var deflate_min = {exports: {}};
50216
+
50217
+ /*
50218
+ * @license zlib.js 2012 - imaya [ https://github.com/imaya/zlib.js ] The MIT License
50219
+ */
50220
+
50221
+ (function (module) {
50222
+ (function() {var n=void 0,w=!0,aa=this;function ba(f,d){var c=f.split("."),e=aa;!(c[0]in e)&&e.execScript&&e.execScript("var "+c[0]);for(var b;c.length&&(b=c.shift());)!c.length&&d!==n?e[b]=d:e=e[b]?e[b]:e[b]={};}var C="undefined"!==typeof Uint8Array&&"undefined"!==typeof Uint16Array&&"undefined"!==typeof Uint32Array;function K(f,d){this.index="number"===typeof d?d:0;this.e=0;this.buffer=f instanceof(C?Uint8Array:Array)?f:new (C?Uint8Array:Array)(32768);if(2*this.buffer.length<=this.index)throw Error("invalid index");this.buffer.length<=this.index&&ca(this);}function ca(f){var d=f.buffer,c,e=d.length,b=new (C?Uint8Array:Array)(e<<1);if(C)b.set(d);else for(c=0;c<e;++c)b[c]=d[c];return f.buffer=b}
50223
+ K.prototype.b=function(f,d,c){var e=this.buffer,b=this.index,a=this.e,g=e[b],m;c&&1<d&&(f=8<d?(L[f&255]<<24|L[f>>>8&255]<<16|L[f>>>16&255]<<8|L[f>>>24&255])>>32-d:L[f]>>8-d);if(8>d+a)g=g<<d|f,a+=d;else for(m=0;m<d;++m)g=g<<1|f>>d-m-1&1,8===++a&&(a=0,e[b++]=L[g],g=0,b===e.length&&(e=ca(this)));e[b]=g;this.buffer=e;this.e=a;this.index=b;};K.prototype.finish=function(){var f=this.buffer,d=this.index,c;0<this.e&&(f[d]<<=8-this.e,f[d]=L[f[d]],d++);C?c=f.subarray(0,d):(f.length=d,c=f);return c};
50224
+ var da=new (C?Uint8Array:Array)(256),M;for(M=0;256>M;++M){for(var N=M,S=N,ea=7,N=N>>>1;N;N>>>=1)S<<=1,S|=N&1,--ea;da[M]=(S<<ea&255)>>>0;}var L=da;function ia(f){this.buffer=new (C?Uint16Array:Array)(2*f);this.length=0;}ia.prototype.getParent=function(f){return 2*((f-2)/4|0)};ia.prototype.push=function(f,d){var c,e,b=this.buffer,a;c=this.length;b[this.length++]=d;for(b[this.length++]=f;0<c;)if(e=this.getParent(c),b[c]>b[e])a=b[c],b[c]=b[e],b[e]=a,a=b[c+1],b[c+1]=b[e+1],b[e+1]=a,c=e;else break;return this.length};
50225
+ ia.prototype.pop=function(){var f,d,c=this.buffer,e,b,a;d=c[0];f=c[1];this.length-=2;c[0]=c[this.length];c[1]=c[this.length+1];for(a=0;;){b=2*a+2;if(b>=this.length)break;b+2<this.length&&c[b+2]>c[b]&&(b+=2);if(c[b]>c[a])e=c[a],c[a]=c[b],c[b]=e,e=c[a+1],c[a+1]=c[b+1],c[b+1]=e;else break;a=b;}return {index:f,value:d,length:this.length}};function ka(f,d){this.d=la;this.i=0;this.input=C&&f instanceof Array?new Uint8Array(f):f;this.c=0;d&&(d.lazy&&(this.i=d.lazy),"number"===typeof d.compressionType&&(this.d=d.compressionType),d.outputBuffer&&(this.a=C&&d.outputBuffer instanceof Array?new Uint8Array(d.outputBuffer):d.outputBuffer),"number"===typeof d.outputIndex&&(this.c=d.outputIndex));this.a||(this.a=new (C?Uint8Array:Array)(32768));}var la=2,na={NONE:0,h:1,g:la,n:3},T=[],U;
50226
+ for(U=0;288>U;U++)switch(w){case 143>=U:T.push([U+48,8]);break;case 255>=U:T.push([U-144+400,9]);break;case 279>=U:T.push([U-256+0,7]);break;case 287>=U:T.push([U-280+192,8]);break;default:throw "invalid literal: "+U;}
50227
+ ka.prototype.f=function(){var f,d,c,e,b=this.input;switch(this.d){case 0:c=0;for(e=b.length;c<e;){d=C?b.subarray(c,c+65535):b.slice(c,c+65535);c+=d.length;var a=d,g=c===e,m=n,k=n,p=n,t=n,u=n,l=this.a,h=this.c;if(C){for(l=new Uint8Array(this.a.buffer);l.length<=h+a.length+5;)l=new Uint8Array(l.length<<1);l.set(this.a);}m=g?1:0;l[h++]=m|0;k=a.length;p=~k+65536&65535;l[h++]=k&255;l[h++]=k>>>8&255;l[h++]=p&255;l[h++]=p>>>8&255;if(C)l.set(a,h),h+=a.length,l=l.subarray(0,h);else {t=0;for(u=a.length;t<u;++t)l[h++]=
50228
+ a[t];l.length=h;}this.c=h;this.a=l;}break;case 1:var q=new K(C?new Uint8Array(this.a.buffer):this.a,this.c);q.b(1,1,w);q.b(1,2,w);var s=oa(this,b),x,fa,z;x=0;for(fa=s.length;x<fa;x++)if(z=s[x],K.prototype.b.apply(q,T[z]),256<z)q.b(s[++x],s[++x],w),q.b(s[++x],5),q.b(s[++x],s[++x],w);else if(256===z)break;this.a=q.finish();this.c=this.a.length;break;case la:var B=new K(C?new Uint8Array(this.a.buffer):this.a,this.c),ta,J,O,P,Q,La=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],X,ua,Y,va,ga,ja=Array(19),
50229
+ wa,R,ha,y,xa;ta=la;B.b(1,1,w);B.b(ta,2,w);J=oa(this,b);X=pa(this.m,15);ua=qa(X);Y=pa(this.l,7);va=qa(Y);for(O=286;257<O&&0===X[O-1];O--);for(P=30;1<P&&0===Y[P-1];P--);var ya=O,za=P,F=new (C?Uint32Array:Array)(ya+za),r,G,v,Z,E=new (C?Uint32Array:Array)(316),D,A,H=new (C?Uint8Array:Array)(19);for(r=G=0;r<ya;r++)F[G++]=X[r];for(r=0;r<za;r++)F[G++]=Y[r];if(!C){r=0;for(Z=H.length;r<Z;++r)H[r]=0;}r=D=0;for(Z=F.length;r<Z;r+=G){for(G=1;r+G<Z&&F[r+G]===F[r];++G);v=G;if(0===F[r])if(3>v)for(;0<v--;)E[D++]=0,
50230
+ H[0]++;else for(;0<v;)A=138>v?v:138,A>v-3&&A<v&&(A=v-3),10>=A?(E[D++]=17,E[D++]=A-3,H[17]++):(E[D++]=18,E[D++]=A-11,H[18]++),v-=A;else if(E[D++]=F[r],H[F[r]]++,v--,3>v)for(;0<v--;)E[D++]=F[r],H[F[r]]++;else for(;0<v;)A=6>v?v:6,A>v-3&&A<v&&(A=v-3),E[D++]=16,E[D++]=A-3,H[16]++,v-=A;}f=C?E.subarray(0,D):E.slice(0,D);ga=pa(H,7);for(y=0;19>y;y++)ja[y]=ga[La[y]];for(Q=19;4<Q&&0===ja[Q-1];Q--);wa=qa(ga);B.b(O-257,5,w);B.b(P-1,5,w);B.b(Q-4,4,w);for(y=0;y<Q;y++)B.b(ja[y],3,w);y=0;for(xa=f.length;y<xa;y++)if(R=
50231
+ f[y],B.b(wa[R],ga[R],w),16<=R){y++;switch(R){case 16:ha=2;break;case 17:ha=3;break;case 18:ha=7;break;default:throw "invalid code: "+R;}B.b(f[y],ha,w);}var Aa=[ua,X],Ba=[va,Y],I,Ca,$,ma,Da,Ea,Fa,Ga;Da=Aa[0];Ea=Aa[1];Fa=Ba[0];Ga=Ba[1];I=0;for(Ca=J.length;I<Ca;++I)if($=J[I],B.b(Da[$],Ea[$],w),256<$)B.b(J[++I],J[++I],w),ma=J[++I],B.b(Fa[ma],Ga[ma],w),B.b(J[++I],J[++I],w);else if(256===$)break;this.a=B.finish();this.c=this.a.length;break;default:throw "invalid compression type";}return this.a};
50232
+ function ra(f,d){this.length=f;this.k=d;}
50233
+ var sa=function(){function f(b){switch(w){case 3===b:return [257,b-3,0];case 4===b:return [258,b-4,0];case 5===b:return [259,b-5,0];case 6===b:return [260,b-6,0];case 7===b:return [261,b-7,0];case 8===b:return [262,b-8,0];case 9===b:return [263,b-9,0];case 10===b:return [264,b-10,0];case 12>=b:return [265,b-11,1];case 14>=b:return [266,b-13,1];case 16>=b:return [267,b-15,1];case 18>=b:return [268,b-17,1];case 22>=b:return [269,b-19,2];case 26>=b:return [270,b-23,2];case 30>=b:return [271,b-27,2];case 34>=b:return [272,
50234
+ b-31,2];case 42>=b:return [273,b-35,3];case 50>=b:return [274,b-43,3];case 58>=b:return [275,b-51,3];case 66>=b:return [276,b-59,3];case 82>=b:return [277,b-67,4];case 98>=b:return [278,b-83,4];case 114>=b:return [279,b-99,4];case 130>=b:return [280,b-115,4];case 162>=b:return [281,b-131,5];case 194>=b:return [282,b-163,5];case 226>=b:return [283,b-195,5];case 257>=b:return [284,b-227,5];case 258===b:return [285,b-258,0];default:throw "invalid length: "+b;}}var d=[],c,e;for(c=3;258>=c;c++)e=f(c),d[c]=e[2]<<24|
50235
+ e[1]<<16|e[0];return d}(),Ha=C?new Uint32Array(sa):sa;
50236
+ function oa(f,d){function c(b,c){var a=b.k,d=[],e=0,f;f=Ha[b.length];d[e++]=f&65535;d[e++]=f>>16&255;d[e++]=f>>24;var g;switch(w){case 1===a:g=[0,a-1,0];break;case 2===a:g=[1,a-2,0];break;case 3===a:g=[2,a-3,0];break;case 4===a:g=[3,a-4,0];break;case 6>=a:g=[4,a-5,1];break;case 8>=a:g=[5,a-7,1];break;case 12>=a:g=[6,a-9,2];break;case 16>=a:g=[7,a-13,2];break;case 24>=a:g=[8,a-17,3];break;case 32>=a:g=[9,a-25,3];break;case 48>=a:g=[10,a-33,4];break;case 64>=a:g=[11,a-49,4];break;case 96>=a:g=[12,a-
50237
+ 65,5];break;case 128>=a:g=[13,a-97,5];break;case 192>=a:g=[14,a-129,6];break;case 256>=a:g=[15,a-193,6];break;case 384>=a:g=[16,a-257,7];break;case 512>=a:g=[17,a-385,7];break;case 768>=a:g=[18,a-513,8];break;case 1024>=a:g=[19,a-769,8];break;case 1536>=a:g=[20,a-1025,9];break;case 2048>=a:g=[21,a-1537,9];break;case 3072>=a:g=[22,a-2049,10];break;case 4096>=a:g=[23,a-3073,10];break;case 6144>=a:g=[24,a-4097,11];break;case 8192>=a:g=[25,a-6145,11];break;case 12288>=a:g=[26,a-8193,12];break;case 16384>=
50238
+ a:g=[27,a-12289,12];break;case 24576>=a:g=[28,a-16385,13];break;case 32768>=a:g=[29,a-24577,13];break;default:throw "invalid distance";}f=g;d[e++]=f[0];d[e++]=f[1];d[e++]=f[2];var k,m;k=0;for(m=d.length;k<m;++k)l[h++]=d[k];s[d[0]]++;x[d[3]]++;q=b.length+c-1;u=null;}var e,b,a,g,m,k={},p,t,u,l=C?new Uint16Array(2*d.length):[],h=0,q=0,s=new (C?Uint32Array:Array)(286),x=new (C?Uint32Array:Array)(30),fa=f.i,z;if(!C){for(a=0;285>=a;)s[a++]=0;for(a=0;29>=a;)x[a++]=0;}s[256]=1;e=0;for(b=d.length;e<b;++e){a=
50239
+ m=0;for(g=3;a<g&&e+a!==b;++a)m=m<<8|d[e+a];k[m]===n&&(k[m]=[]);p=k[m];if(!(0<q--)){for(;0<p.length&&32768<e-p[0];)p.shift();if(e+3>=b){u&&c(u,-1);a=0;for(g=b-e;a<g;++a)z=d[e+a],l[h++]=z,++s[z];break}0<p.length?(t=Ia(d,e,p),u?u.length<t.length?(z=d[e-1],l[h++]=z,++s[z],c(t,0)):c(u,-1):t.length<fa?u=t:c(t,0)):u?c(u,-1):(z=d[e],l[h++]=z,++s[z]);}p.push(e);}l[h++]=256;s[256]++;f.m=s;f.l=x;return C?l.subarray(0,h):l}
50240
+ function Ia(f,d,c){var e,b,a=0,g,m,k,p,t=f.length;m=0;p=c.length;a:for(;m<p;m++){e=c[p-m-1];g=3;if(3<a){for(k=a;3<k;k--)if(f[e+k-1]!==f[d+k-1])continue a;g=a;}for(;258>g&&d+g<t&&f[e+g]===f[d+g];)++g;g>a&&(b=e,a=g);if(258===g)break}return new ra(a,d-b)}
50241
+ function pa(f,d){var c=f.length,e=new ia(572),b=new (C?Uint8Array:Array)(c),a,g,m,k,p;if(!C)for(k=0;k<c;k++)b[k]=0;for(k=0;k<c;++k)0<f[k]&&e.push(k,f[k]);a=Array(e.length/2);g=new (C?Uint32Array:Array)(e.length/2);if(1===a.length)return b[e.pop().index]=1,b;k=0;for(p=e.length/2;k<p;++k)a[k]=e.pop(),g[k]=a[k].value;m=Ja(g,g.length,d);k=0;for(p=a.length;k<p;++k)b[a[k].index]=m[k];return b}
50242
+ function Ja(f,d,c){function e(a){var b=k[a][p[a]];b===d?(e(a+1),e(a+1)):--g[b];++p[a];}var b=new (C?Uint16Array:Array)(c),a=new (C?Uint8Array:Array)(c),g=new (C?Uint8Array:Array)(d),m=Array(c),k=Array(c),p=Array(c),t=(1<<c)-d,u=1<<c-1,l,h,q,s,x;b[c-1]=d;for(h=0;h<c;++h)t<u?a[h]=0:(a[h]=1,t-=u),t<<=1,b[c-2-h]=(b[c-1-h]/2|0)+d;b[0]=a[0];m[0]=Array(b[0]);k[0]=Array(b[0]);for(h=1;h<c;++h)b[h]>2*b[h-1]+a[h]&&(b[h]=2*b[h-1]+a[h]),m[h]=Array(b[h]),k[h]=Array(b[h]);for(l=0;l<d;++l)g[l]=c;for(q=0;q<b[c-1];++q)m[c-
50243
+ 1][q]=f[q],k[c-1][q]=q;for(l=0;l<c;++l)p[l]=0;1===a[c-1]&&(--g[0],++p[c-1]);for(h=c-2;0<=h;--h){s=l=0;x=p[h+1];for(q=0;q<b[h];q++)s=m[h+1][x]+m[h+1][x+1],s>f[l]?(m[h][q]=s,k[h][q]=d,x+=2):(m[h][q]=f[l],k[h][q]=l,++l);p[h]=0;1===a[h]&&e(h);}return g}
50244
+ function qa(f){var d=new (C?Uint16Array:Array)(f.length),c=[],e=[],b=0,a,g,m,k;a=0;for(g=f.length;a<g;a++)c[f[a]]=(c[f[a]]|0)+1;a=1;for(g=16;a<=g;a++)e[a]=b,b+=c[a]|0,b<<=1;a=0;for(g=f.length;a<g;a++){b=e[f[a]];e[f[a]]+=1;m=d[a]=0;for(k=f[a];m<k;m++)d[a]=d[a]<<1|b&1,b>>>=1;}return d}function Ka(f,d){this.input=f;this.a=new (C?Uint8Array:Array)(32768);this.d=V.g;var c={},e;if((d||!(d={}))&&"number"===typeof d.compressionType)this.d=d.compressionType;for(e in d)c[e]=d[e];c.outputBuffer=this.a;this.j=new ka(this.input,c);}var V=na;
50245
+ Ka.prototype.f=function(){var f,d,c,e,b,a,g=0;a=this.a;switch(8){case 8:f=Math.LOG2E*Math.log(32768)-8;break;default:throw Error("invalid compression method");}d=f<<4|8;a[g++]=d;switch(8){case 8:switch(this.d){case V.NONE:e=0;break;case V.h:e=1;break;case V.g:e=2;break;default:throw Error("unsupported compression type");}break;default:throw Error("invalid compression method");}c=e<<6|0;a[g++]=c|31-(256*d+c)%31;var m=this.input;if("string"===typeof m){var k=m.split(""),p,t;p=0;for(t=k.length;p<t;p++)k[p]=
50246
+ (k[p].charCodeAt(0)&255)>>>0;m=k;}for(var u=1,l=0,h=m.length,q,s=0;0<h;){q=1024<h?1024:h;h-=q;do u+=m[s++],l+=u;while(--q);u%=65521;l%=65521;}b=(l<<16|u)>>>0;this.j.c=g;a=this.j.f();g=a.length;C&&(a=new Uint8Array(a.buffer),a.length<=g+4&&(this.a=new Uint8Array(a.length+4),this.a.set(a),a=this.a),a=a.subarray(0,g+4));a[g++]=b>>24&255;a[g++]=b>>16&255;a[g++]=b>>8&255;a[g++]=b&255;return a};ba("Zlib.Deflate",Ka);ba("Zlib.Deflate.compress",function(f,d){return (new Ka(f,d)).f()});ba("Zlib.Deflate.prototype.compress",Ka.prototype.f);var Ma={NONE:V.NONE,FIXED:V.h,DYNAMIC:V.g},Na,Oa,W,Pa;if(Object.keys)Na=Object.keys(Ma);else for(Oa in Na=[],W=0,Ma)Na[W++]=Oa;W=0;for(Pa=Na.length;W<Pa;++W)Oa=Na[W],ba("Zlib.Deflate.CompressionType."+Oa,Ma[Oa]);}).call(module.exports);
50247
+ } (deflate_min));
50248
+
50249
+ var deflate_minExports = deflate_min.exports;
50250
+ var ZLibDeflate = /*@__PURE__*/getDefaultExportFromCjs(deflate_minExports);
50251
+
50252
+ function toUTF8Array(str) {
50253
+ var utf8 = [];
50254
+ for (var i = 0; i < str.length; i++) {
50255
+ var charcode = str.charCodeAt(i);
50256
+ if (charcode < 0x80)
50257
+ utf8.push(charcode);
50258
+ else if (charcode < 0x800) {
50259
+ utf8.push(0xc0 | (charcode >> 6), 0x80 | (charcode & 0x3f));
50260
+ }
50261
+ else if (charcode < 0xd800 || charcode >= 0xe000) {
50262
+ utf8.push(0xe0 | (charcode >> 12), 0x80 | ((charcode >> 6) & 0x3f), 0x80 | (charcode & 0x3f));
50263
+ }
50264
+ else {
50265
+ // surrogate pair
50266
+ i++;
50267
+ // UTF-16 encodes 0x10000-0x10FFFF by
50268
+ // subtracting 0x10000 and splitting the
50269
+ // 20 bits of 0x0-0xFFFFF into two halves
50270
+ charcode = 0x10000 + (((charcode & 0x3ff) << 10) |
50271
+ (str.charCodeAt(i) & 0x3ff));
50272
+ utf8.push(0xf0 | (charcode >> 18), 0x80 | ((charcode >> 12) & 0x3f), 0x80 | ((charcode >> 6) & 0x3f), 0x80 | (charcode & 0x3f));
50273
+ }
50274
+ }
50275
+ return utf8;
50276
+ }
50277
+
50278
+ var Zlib = {
50279
+ 'Deflate': ZLibDeflate.Zlib.Deflate
50280
+ };
50281
+ var Encoding = {
50282
+ 'base64Url': 'base64url',
50283
+ 'binary': 'binary'
50284
+ };
50285
+ function compress(json_obj, encoding) {
50286
+ if (!encoding) {
50287
+ encoding = Encoding.base64Url;
50288
+ }
50289
+ /* -- This is ZLIB */
50290
+ var compressData = toUTF8Array(typeof json_obj === 'string' ? json_obj : JSON.stringify(json_obj));
50291
+ var deflate = new Zlib.Deflate(compressData);
50292
+ var compressedBytes = deflate.compress();
50293
+ if (encoding === Encoding.base64Url) {
50294
+ return b64.uint8ToBase64(compressedBytes);
50295
+ }
50296
+ else {
50297
+ return compressedBytes;
50298
+ }
50299
+ }
50300
+
50301
+ var ONE_HUNDRED_MB_IN_BYTES = 100 * 1024 * 1024;
50302
+ function matchHostedResources(recordingEvent, stringifiedRecordingPayload) {
50303
+ var fontURLRegex = /https:\/\/[^\s]+?\.(woff|woff2|ttf|otf|eot)\b/g;
50304
+ var hostedResources = stringifiedRecordingPayload.match(fontURLRegex);
50305
+ return {
50306
+ 'type': 'recording',
50307
+ 'visitorId': recordingEvent.visitorId,
50308
+ 'accountId': recordingEvent.accountId,
50309
+ 'keyFrame': false,
50310
+ 'lastKeyFrame': recordingEvent.lastKeyFrame,
50311
+ 'recordingId': recordingEvent.recordingId,
50312
+ 'recordingSessionId': recordingEvent.recordingSessionId,
50313
+ 'url': recordingEvent.url,
50314
+ 'subType': 'hostedResources',
50315
+ 'recordingPayload': [],
50316
+ 'recordingPayloadMetadata': [],
50317
+ 'sequence': 0,
50318
+ 'recordingPayloadCount': 0,
50319
+ 'hostedResources': hostedResources || []
50320
+ };
50321
+ }
50322
+ // keep in mind changes here may need addressing in the extension worker proxy as well
50323
+ self.onmessage = function (e) {
50324
+ try {
50325
+ if (e.data.url && e.data.payload) {
50326
+ var _a = e.data, url = _a.url, payload = _a.payload, shouldCacheResources = _a.shouldCacheResources;
50327
+ var sequence_1 = payload.sequence;
50328
+ var stringifiedRecordingPayload = JSON.stringify(payload.recordingPayload);
50329
+ // calculate and post back the recording payload size before the payload is compressed
50330
+ var recordingPayloadSize = new TextEncoder().encode(stringifiedRecordingPayload).length;
50331
+ var exceedsPayloadSizeLimit = recordingPayloadSize >= ONE_HUNDRED_MB_IN_BYTES;
50332
+ postMessage({
50333
+ 'type': 'recordingPayloadSize',
50334
+ 'recordingPayloadSize': recordingPayloadSize,
50335
+ 'exceedsPayloadSizeLimit': exceedsPayloadSizeLimit
50336
+ });
50337
+ // don't attempt to send the payload if it exceeds the allowed limit
50338
+ if (exceedsPayloadSizeLimit)
50339
+ return;
50340
+ if (shouldCacheResources) {
50341
+ var hostedResourcesEvent = matchHostedResources(payload, stringifiedRecordingPayload);
50342
+ if (hostedResourcesEvent.hostedResources.length) {
50343
+ postMessage({
50344
+ 'type': 'hostedResources',
50345
+ 'hostedResourcesEvent': hostedResourcesEvent
50346
+ });
50347
+ }
50348
+ }
50349
+ payload.recordingSize = recordingPayloadSize;
50350
+ var body = compress(payload, 'binary');
50351
+ // we want to calculate ct (current time) as close as we can to the actual POST request
50352
+ // so that it's as accurate as possible
50353
+ url = "".concat(url, "&ct=").concat(new Date().getTime());
50354
+ fetch(url, {
50355
+ 'method': 'POST',
50356
+ 'body': body
50357
+ }).then(function (response) {
50358
+ if (response.status < 200 || response.status >= 300) {
50359
+ postMessage({
50360
+ 'error': new Error("received status code ".concat(response.status, ": ").concat(response.statusText)),
50361
+ 'status': response.status,
50362
+ sequence: sequence_1
50363
+ });
50364
+ }
50365
+ else {
50366
+ postMessage({
50367
+ sequence: sequence_1
50368
+ });
50369
+ }
50370
+ })['catch'](function (e) {
50371
+ postMessage({
50372
+ 'error': e,
50373
+ sequence: sequence_1
50374
+ });
50375
+ });
50376
+ }
50377
+ }
50378
+ catch (e) {
50379
+ postMessage({
50380
+ 'error': e
50381
+ });
50382
+ }
50383
+ };
50384
+
50385
+ exports.matchHostedResources = matchHostedResources;
50386
+
50387
+ return exports;
50388
+
50389
+ }))({});
50390
+
50391
+ }, null);
50159
50392
  /* eslint-enable */
50160
50393
 
50161
50394
  function createReplayPlugin() {