@seniorsistemas/angular-components 14.10.0 → 14.10.1

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 (69) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +39 -361
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +2 -2
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/code-editor/core/facades/core-facade.d.ts +3 -1
  6. package/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.d.ts +2 -1
  7. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.d.ts +0 -1
  8. package/components/code-editor/infra/utils/index.d.ts +0 -1
  9. package/esm2015/components/code-editor/core/facades/core-facade.js +15 -10
  10. package/esm2015/components/code-editor/core/use-cases/core-linters.js +5 -8
  11. package/esm2015/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.js +7 -4
  12. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.js +6 -3
  13. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.js +2 -3
  14. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.js +1 -3
  15. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.js +1 -2
  16. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.js +6 -3
  17. package/esm2015/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.js +4 -4
  18. package/esm2015/components/code-editor/infra/utils/index.js +1 -2
  19. package/esm2015/components/code-editor/presentation/code-editor-component.js +3 -2
  20. package/esm5/components/code-editor/core/facades/core-facade.js +15 -10
  21. package/esm5/components/code-editor/core/use-cases/core-linters.js +5 -8
  22. package/esm5/components/code-editor/infra/cores/codemirror-6/codemirror-6-core.js +7 -4
  23. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/editor-languages.js +6 -3
  24. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/autocomplete/autocomplete.js +2 -3
  25. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/tax-calculation.language.js +1 -3
  26. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/index.js +1 -2
  27. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/editor-themes.js +6 -3
  28. package/esm5/components/code-editor/infra/cores/codemirror-6/themes/sds-light/sds-light-highlight-style.js +4 -4
  29. package/esm5/components/code-editor/infra/utils/index.js +1 -2
  30. package/esm5/components/code-editor/presentation/code-editor-component.js +3 -2
  31. package/fesm2015/seniorsistemas-angular-components.js +40 -283
  32. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  33. package/fesm5/seniorsistemas-angular-components.js +40 -362
  34. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  35. package/package.json +1 -1
  36. package/seniorsistemas-angular-components.metadata.json +1 -1
  37. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/index.d.ts +0 -1
  38. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/interfaces/request-extra-info.d.ts +0 -4
  39. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/on-paste-completion-items-updater.d.ts +0 -6
  40. package/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/update-core-completion-items.d.ts +0 -2
  41. package/components/code-editor/infra/linters/tax-calculation/models/index.d.ts +0 -1
  42. package/components/code-editor/infra/linters/tax-calculation/models/interfaces/validation.d.ts +0 -4
  43. package/components/code-editor/infra/linters/tax-calculation/tax-calculation-linter.d.ts +0 -11
  44. package/components/code-editor/infra/linters/tax-calculation/validation-compositors/index.d.ts +0 -2
  45. package/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-composite.d.ts +0 -6
  46. package/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-workers-compositor/validations-workers-composite.d.ts +0 -6
  47. package/components/code-editor/infra/utils/regex-index-of.d.ts +0 -8
  48. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/index.js +0 -1
  49. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/interfaces/request-extra-info.js +0 -1
  50. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/on-paste-completion-items-updater.js +0 -164
  51. package/esm2015/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/update-core-completion-items.js +0 -30
  52. package/esm2015/components/code-editor/infra/linters/tax-calculation/models/index.js +0 -1
  53. package/esm2015/components/code-editor/infra/linters/tax-calculation/models/interfaces/validation.js +0 -1
  54. package/esm2015/components/code-editor/infra/linters/tax-calculation/tax-calculation-linter.js +0 -19
  55. package/esm2015/components/code-editor/infra/linters/tax-calculation/validation-compositors/index.js +0 -3
  56. package/esm2015/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-composite.js +0 -16
  57. package/esm2015/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-workers-compositor/validations-workers-composite.js +0 -25
  58. package/esm2015/components/code-editor/infra/utils/regex-index-of.js +0 -12
  59. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/index.js +0 -1
  60. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/models/interfaces/request-extra-info.js +0 -1
  61. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/extensions/on-paste-completion-items-updater/on-paste-completion-items-updater.js +0 -191
  62. package/esm5/components/code-editor/infra/cores/codemirror-6/languages/tax-calculation/utils/update-core-completion-items.js +0 -34
  63. package/esm5/components/code-editor/infra/linters/tax-calculation/models/index.js +0 -1
  64. package/esm5/components/code-editor/infra/linters/tax-calculation/models/interfaces/validation.js +0 -1
  65. package/esm5/components/code-editor/infra/linters/tax-calculation/tax-calculation-linter.js +0 -21
  66. package/esm5/components/code-editor/infra/linters/tax-calculation/validation-compositors/index.js +0 -3
  67. package/esm5/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-composite.js +0 -49
  68. package/esm5/components/code-editor/infra/linters/tax-calculation/validation-compositors/validation-workers-compositor/validations-workers-composite.js +0 -42
  69. package/esm5/components/code-editor/infra/utils/regex-index-of.js +0 -12
@@ -8,6 +8,7 @@ var CoreFacade = /** @class */ (function () {
8
8
  this.$onCodeChange = new Subject();
9
9
  this.$onCodeValidityChange = new Subject();
10
10
  this._completionItems = [];
11
+ this._lastCodeEmitted = "";
11
12
  }
12
13
  CoreFacade.prototype.changeEditorOptions = function (options) {
13
14
  if (options) {
@@ -20,11 +21,11 @@ var CoreFacade = /** @class */ (function () {
20
21
  }
21
22
  };
22
23
  CoreFacade.prototype.changeCode = function (code) {
23
- if (code !== this._lastCodeEmitted) {
24
- this.setCode(code);
24
+ var safeCode = this.getSafeCode(code);
25
+ if (safeCode !== this._lastCodeEmitted) {
26
+ this.setCode(safeCode);
25
27
  }
26
28
  };
27
- CoreFacade.prototype.destroyObservables = function () { };
28
29
  CoreFacade.prototype.getOnCoreFinishLoadObservable = function () {
29
30
  return this.$onCoreFinishLoad.asObservable();
30
31
  };
@@ -38,14 +39,15 @@ var CoreFacade = /** @class */ (function () {
38
39
  this.$onCoreFinishLoad.next();
39
40
  };
40
41
  CoreFacade.prototype.notifyCodeChange = function (code) {
41
- if (code !== this._lastCodeEmitted) {
42
- this._lastCodeEmitted = code;
43
- this.$onCodeChange.next(code);
44
- this.validateCode(code);
42
+ var safeCode = this.getSafeCode(code);
43
+ if (safeCode !== this._lastCodeEmitted) {
44
+ this._lastCodeEmitted = safeCode;
45
+ this.$onCodeChange.next(safeCode);
46
+ this.validateCode(safeCode);
45
47
  }
46
48
  };
47
49
  CoreFacade.prototype.updateCompletionItems = function (items) {
48
- this._completionItems = items;
50
+ this._completionItems = items || [];
49
51
  this.validateCode(this._lastCodeEmitted);
50
52
  };
51
53
  CoreFacade.prototype.setLinter = function (language) {
@@ -62,7 +64,7 @@ var CoreFacade = /** @class */ (function () {
62
64
  case 1:
63
65
  markers = _a.sent();
64
66
  this.highlightCode(markers);
65
- this.notifyCodeValidityChange(!!markers.length);
67
+ this.notifyCodeValidityChange(!markers.length);
66
68
  _a.label = 2;
67
69
  case 2: return [2 /*return*/];
68
70
  }
@@ -85,7 +87,10 @@ var CoreFacade = /** @class */ (function () {
85
87
  if (theme && !themes.includes(theme))
86
88
  throw new Error("The informed theme \"" + theme + "\" is not supported");
87
89
  };
90
+ CoreFacade.prototype.getSafeCode = function (code) {
91
+ return typeof code === "string" ? code : "";
92
+ };
88
93
  return CoreFacade;
89
94
  }());
90
95
  export { CoreFacade };
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1mYWNhZGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9jb3JlL2ZhY2FkZXMvY29yZS1mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFSCxhQUFhLEVBQ2IsT0FBTyxFQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUVILFNBQVMsRUFDVCxNQUFNLEVBQ1QsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3hEO0lBQUE7UUFFWSxzQkFBaUIsR0FBd0IsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsa0JBQWEsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMvQywwQkFBcUIsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN4RCxxQkFBZ0IsR0FBYSxFQUFFLENBQUM7SUF3RjVDLENBQUM7SUFuRlUsd0NBQW1CLEdBQTFCLFVBQTJCLE9BQXNCO1FBQzdDLElBQUksT0FBTyxFQUFFO1lBQ1QsSUFBSSxPQUFPLE9BQU8sS0FBSyxRQUFRO2dCQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0RBQWtELENBQUMsQ0FBQztZQUVyRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWpDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0QztJQUNMLENBQUM7SUFFTSwrQkFBVSxHQUFqQixVQUFrQixJQUFZO1FBQzFCLElBQUksSUFBSSxLQUFLLElBQUksQ0FBQyxn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LFxuICAgIFJlcGxheVN1YmplY3QsXG4gICAgU3ViamVjdFxufSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQge1xuICAgIEVkaXRvck9wdGlvbnMsXG4gICAgTGFuZ3VhZ2VzLFxuICAgIFRoZW1lc1xufSBmcm9tIFwiLi4vLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBNYXJrZXIgfSBmcm9tIFwiLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBDb3JlTGludGVycyB9IGZyb20gXCIuLi91c2UtY2FzZXMvY29yZS1saW50ZXJzXCI7XG5pbXBvcnQgeyBMaW50ZXJGYWNhZGUgfSBmcm9tIFwiLi9saW50ZXItZmFjYWRlXCI7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb3JlRmFjYWRlIHtcblxuICAgIHByaXZhdGUgJG9uQ29yZUZpbmlzaExvYWQ6IFJlcGxheVN1YmplY3Q8dm9pZD4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgICBwcml2YXRlICRvbkNvZGVDaGFuZ2U6IFN1YmplY3Q8c3RyaW5nPiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSAkb25Db2RlVmFsaWRpdHlDaGFuZ2U6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgX2NvbXBsZXRpb25JdGVtczogc3RyaW5nW10gPSBbXTtcbiAgICBwcml2YXRlIF9sYXN0Q29kZUVtaXR0ZWQhOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfbGFzdENvZGVWYWxpZGl0eUVtaXR0ZWQhOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2xpbnRlciE6IExpbnRlckZhY2FkZTtcblxuICAgIHB1YmxpYyBjaGFuZ2VFZGl0b3JPcHRpb25zKG9wdGlvbnM6IEVkaXRvck9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gXCJvYmplY3RcIikgdGhyb3cgbmV3IEVycm9yKFwiRWRpdG9yJ3Mgb3B0aW9ucyBtdXN0IGJlIGFuIEVkaXRvck9wdGlvbnMgb2JqZWN0XCIpO1xuXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlTGFuZ3VhZ2Uob3B0aW9ucy5sYW5ndWFnZSk7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlVGhlbWUob3B0aW9ucy50aGVtZSk7XG4gICAgICAgICAgICB0aGlzLnNldExpbnRlcihvcHRpb25zLmxhbmd1YWdlKTtcblxuICAgICAgICAgICAgdGhpcy5zZXRDb3JlRWRpdG9yT3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjaGFuZ2VDb2RlKGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoY29kZSAhPT0gdGhpcy5fbGFzdENvZGVFbWl0dGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldENvZGUoY29kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveU9ic2VydmFibGVzKCk6IHZvaWQge31cblxuICAgIHB1YmxpYyBhYnN0cmFjdCBzZXRDb3JlV3JhcHBlckVsZW1lbnQoZWxlbWVudDogSFRNTERpdkVsZW1lbnQpOiB2b2lkO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBzZXRDb2RlKGNvZGU6IHN0cmluZyk6IHZvaWQ7XG5cbiAgICBwdWJsaWMgZ2V0T25Db3JlRmluaXNoTG9hZE9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLiRvbkNvcmVGaW5pc2hMb2FkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPbkNvZGVDaGFuZ2VPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgICAgIHJldHVybiB0aGlzLiRvbkNvZGVDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldE9uQ29kZVZhbGlkaXR5Q2hhbmdlT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuJG9uQ29kZVZhbGlkaXR5Q2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBzZXRDb3JlRWRpdG9yT3B0aW9ucyhvcHRpb25zOiBFZGl0b3JPcHRpb25zKTogdm9pZDtcbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgaGlnaGxpZ2h0Q29kZShtYXJrZXJzOiBNYXJrZXJbXSk6IHZvaWQ7XG5cbiAgICBwcm90ZWN0ZWQgbm90aWZ5Q29yZUZpbmlzaExvYWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuJG9uQ29yZUZpbmlzaExvYWQubmV4dCgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBub3RpZnlDb2RlQ2hhbmdlKGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoY29kZSAhPT0gdGhpcy5fbGFzdENvZGVFbWl0dGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0Q29kZUVtaXR0ZWQgPSBjb2RlO1xuICAgICAgICAgICAgdGhpcy4kb25Db2RlQ2hhbmdlLm5leHQoY29kZSk7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlQ29kZShjb2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCB1cGRhdGVDb21wbGV0aW9uSXRlbXMoaXRlbXM6IHN0cmluZ1tdKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NvbXBsZXRpb25JdGVtcyA9IGl0ZW1zO1xuICAgICAgICB0aGlzLnZhbGlkYXRlQ29kZSh0aGlzLl9sYXN0Q29kZUVtaXR0ZWQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0TGludGVyKGxhbmd1YWdlOiBMYW5ndWFnZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGludGVyID0gQ29yZUxpbnRlcnMuZ2V0TGludGVyKGxhbmd1YWdlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFzeW5jIHZhbGlkYXRlQ29kZShjb2RlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKHRoaXMuX2xpbnRlcikge1xuICAgICAgICAgICAgY29uc3QgbWFya2VyczogTWFya2VyW10gPSBhd2FpdCB0aGlzLl9saW50ZXIubGludChjb2RlLCB0aGlzLl9jb21wbGV0aW9uSXRlbXMpO1xuICAgICAgICAgICAgdGhpcy5oaWdobGlnaHRDb2RlKG1hcmtlcnMpO1xuICAgICAgICAgICAgdGhpcy5ub3RpZnlDb2RlVmFsaWRpdHlDaGFuZ2UoISFtYXJrZXJzLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG5vdGlmeUNvZGVWYWxpZGl0eUNoYW5nZSh2YWxpZGl0eTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodmFsaWRpdHkgIT09IHRoaXMuX2xhc3RDb2RlVmFsaWRpdHlFbWl0dGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0Q29kZVZhbGlkaXR5RW1pdHRlZCA9IHZhbGlkaXR5O1xuICAgICAgICAgICAgdGhpcy4kb25Db2RlVmFsaWRpdHlDaGFuZ2UubmV4dCh2YWxpZGl0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlTGFuZ3VhZ2UobGFuZ3VhZ2U6IExhbmd1YWdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYW5ndWFnZXMgPSBPYmplY3QudmFsdWVzKExhbmd1YWdlcyk7XG4gICAgICAgIGlmIChsYW5ndWFnZSAmJiAhbGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmd1YWdlKSkgdGhyb3cgbmV3IEVycm9yKGBUaGUgaW5mb3JtZWQgbGFuZ3VhZ2UgXCIke2xhbmd1YWdlfVwiIGlzIG5vdCBzdXBwb3J0ZWRgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlVGhlbWUodGhlbWU6IFRoZW1lcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB0aGVtZXMgPSBPYmplY3QudmFsdWVzKFRoZW1lcyk7XG4gICAgICAgIGlmICh0aGVtZSAmJiAhdGhlbWVzLmluY2x1ZGVzKHRoZW1lKSkgdGhyb3cgbmV3IEVycm9yKGBUaGUgaW5mb3JtZWQgdGhlbWUgXCIke3RoZW1lfVwiIGlzIG5vdCBzdXBwb3J0ZWRgKTtcbiAgICB9XG59XG4iXX0=
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1mYWNhZGUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9jb3JlL2ZhY2FkZXMvY29yZS1mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFFSCxhQUFhLEVBQ2IsT0FBTyxFQUNWLE1BQU0sTUFBTSxDQUFDO0FBRWQsT0FBTyxFQUVILFNBQVMsRUFDVCxNQUFNLEVBQ1QsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBR3hEO0lBQUE7UUFFWSxzQkFBaUIsR0FBd0IsSUFBSSxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDOUQsa0JBQWEsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUMvQywwQkFBcUIsR0FBcUIsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUN4RCxxQkFBZ0IsR0FBYSxFQUFFLENBQUM7UUFDaEMscUJBQWdCLEdBQUcsRUFBRSxDQUFDO0lBOEZsQyxDQUFDO0lBMUZVLHdDQUFtQixHQUExQixVQUEyQixPQUFzQjtRQUM3QyxJQUFJLE9BQU8sRUFBRTtZQUNULElBQUksT0FBTyxPQUFPLEtBQUssUUFBUTtnQkFBRSxNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7WUFFckcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUVqQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDdEM7SUFDTCxDQUFDO0lBRU0sK0JBQVUsR0FBakIsVUFBa0IsSUFBWTtRQUMx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QUF1QixLQUFLLHdCQUFvQixDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVPLGdDQUFXLEdBQW5CLFVBQW9CLElBQVk7UUFDNUIsT0FBTyxPQUFPLElBQUksS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFDTCxpQkFBQztBQUFELENBQUMsQUFwR0QsSUFvR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIE9ic2VydmFibGUsXG4gICAgUmVwbGF5U3ViamVjdCxcbiAgICBTdWJqZWN0XG59IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7XG4gICAgRWRpdG9yT3B0aW9ucyxcbiAgICBMYW5ndWFnZXMsXG4gICAgVGhlbWVzXG59IGZyb20gXCIuLi8uLi9tb2RlbHNcIjtcbmltcG9ydCB7IE1hcmtlciB9IGZyb20gXCIuLi9tb2RlbHNcIjtcbmltcG9ydCB7IENvcmVMaW50ZXJzIH0gZnJvbSBcIi4uL3VzZS1jYXNlcy9jb3JlLWxpbnRlcnNcIjtcbmltcG9ydCB7IExpbnRlckZhY2FkZSB9IGZyb20gXCIuL2xpbnRlci1mYWNhZGVcIjtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENvcmVGYWNhZGUge1xuXG4gICAgcHJpdmF0ZSAkb25Db3JlRmluaXNoTG9hZDogUmVwbGF5U3ViamVjdDx2b2lkPiA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuICAgIHByaXZhdGUgJG9uQ29kZUNoYW5nZTogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcml2YXRlICRvbkNvZGVWYWxpZGl0eUNoYW5nZTogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBfY29tcGxldGlvbkl0ZW1zOiBzdHJpbmdbXSA9IFtdO1xuICAgIHByaXZhdGUgX2xhc3RDb2RlRW1pdHRlZCA9IFwiXCI7XG4gICAgcHJpdmF0ZSBfbGFzdENvZGVWYWxpZGl0eUVtaXR0ZWQhOiBib29sZWFuO1xuICAgIHByaXZhdGUgX2xpbnRlciE6IExpbnRlckZhY2FkZTtcblxuICAgIHB1YmxpYyBjaGFuZ2VFZGl0b3JPcHRpb25zKG9wdGlvbnM6IEVkaXRvck9wdGlvbnMpOiB2b2lkIHtcbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9ucyAhPT0gXCJvYmplY3RcIikgdGhyb3cgbmV3IEVycm9yKFwiRWRpdG9yJ3Mgb3B0aW9ucyBtdXN0IGJlIGFuIEVkaXRvck9wdGlvbnMgb2JqZWN0XCIpO1xuXG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlTGFuZ3VhZ2Uob3B0aW9ucy5sYW5ndWFnZSk7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlVGhlbWUob3B0aW9ucy50aGVtZSk7XG4gICAgICAgICAgICB0aGlzLnNldExpbnRlcihvcHRpb25zLmxhbmd1YWdlKTtcblxuICAgICAgICAgICAgdGhpcy5zZXRDb3JlRWRpdG9yT3B0aW9ucyhvcHRpb25zKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjaGFuZ2VDb2RlKGNvZGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBzYWZlQ29kZSA9IHRoaXMuZ2V0U2FmZUNvZGUoY29kZSk7XG4gICAgICAgIGlmIChzYWZlQ29kZSAhPT0gdGhpcy5fbGFzdENvZGVFbWl0dGVkKSB7XG4gICAgICAgICAgICB0aGlzLnNldENvZGUoc2FmZUNvZGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGFic3RyYWN0IGluaXRDb3JlKCk6IHZvaWQ7XG4gICAgcHVibGljIGFic3RyYWN0IGRlc3Ryb3lDb3JlKCk6IHZvaWQ7XG5cbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0Q29yZVdyYXBwZXJFbGVtZW50KGVsZW1lbnQ6IEhUTUxEaXZFbGVtZW50KTogdm9pZDtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2V0Q29kZShjb2RlOiBzdHJpbmcpOiB2b2lkO1xuXG4gICAgcHVibGljIGdldE9uQ29yZUZpbmlzaExvYWRPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy4kb25Db3JlRmluaXNoTG9hZC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0T25Db2RlQ2hhbmdlT2JzZXJ2YWJsZSgpOiBPYnNlcnZhYmxlPHN0cmluZz4ge1xuICAgICAgICByZXR1cm4gdGhpcy4kb25Db2RlQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRPbkNvZGVWYWxpZGl0eUNoYW5nZU9ic2VydmFibGUoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLiRvbkNvZGVWYWxpZGl0eUNoYW5nZS5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc2V0Q29yZUVkaXRvck9wdGlvbnMob3B0aW9uczogRWRpdG9yT3B0aW9ucyk6IHZvaWQ7XG4gICAgcHJvdGVjdGVkIGFic3RyYWN0IGhpZ2hsaWdodENvZGUobWFya2VyczogTWFya2VyW10pOiB2b2lkO1xuXG4gICAgcHJvdGVjdGVkIG5vdGlmeUNvcmVGaW5pc2hMb2FkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLiRvbkNvcmVGaW5pc2hMb2FkLm5leHQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbm90aWZ5Q29kZUNoYW5nZShjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc2FmZUNvZGUgPSB0aGlzLmdldFNhZmVDb2RlKGNvZGUpO1xuICAgICAgICBpZiAoc2FmZUNvZGUgIT09IHRoaXMuX2xhc3RDb2RlRW1pdHRlZCkge1xuICAgICAgICAgICAgdGhpcy5fbGFzdENvZGVFbWl0dGVkID0gc2FmZUNvZGU7XG4gICAgICAgICAgICB0aGlzLiRvbkNvZGVDaGFuZ2UubmV4dChzYWZlQ29kZSk7XG4gICAgICAgICAgICB0aGlzLnZhbGlkYXRlQ29kZShzYWZlQ29kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlQ29tcGxldGlvbkl0ZW1zKGl0ZW1zOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jb21wbGV0aW9uSXRlbXMgPSBpdGVtcyB8fCBbXTtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUNvZGUodGhpcy5fbGFzdENvZGVFbWl0dGVkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldExpbnRlcihsYW5ndWFnZTogTGFuZ3VhZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2xpbnRlciA9IENvcmVMaW50ZXJzLmdldExpbnRlcihsYW5ndWFnZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyB2YWxpZGF0ZUNvZGUoY29kZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLl9saW50ZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IG1hcmtlcnM6IE1hcmtlcltdID0gYXdhaXQgdGhpcy5fbGludGVyLmxpbnQoY29kZSwgdGhpcy5fY29tcGxldGlvbkl0ZW1zKTtcbiAgICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0Q29kZShtYXJrZXJzKTtcbiAgICAgICAgICAgIHRoaXMubm90aWZ5Q29kZVZhbGlkaXR5Q2hhbmdlKCFtYXJrZXJzLmxlbmd0aCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIG5vdGlmeUNvZGVWYWxpZGl0eUNoYW5nZSh2YWxpZGl0eTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodmFsaWRpdHkgIT09IHRoaXMuX2xhc3RDb2RlVmFsaWRpdHlFbWl0dGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0Q29kZVZhbGlkaXR5RW1pdHRlZCA9IHZhbGlkaXR5O1xuICAgICAgICAgICAgdGhpcy4kb25Db2RlVmFsaWRpdHlDaGFuZ2UubmV4dCh2YWxpZGl0eSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlTGFuZ3VhZ2UobGFuZ3VhZ2U6IExhbmd1YWdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYW5ndWFnZXMgPSBPYmplY3QudmFsdWVzKExhbmd1YWdlcyk7XG4gICAgICAgIGlmIChsYW5ndWFnZSAmJiAhbGFuZ3VhZ2VzLmluY2x1ZGVzKGxhbmd1YWdlKSkgdGhyb3cgbmV3IEVycm9yKGBUaGUgaW5mb3JtZWQgbGFuZ3VhZ2UgXCIke2xhbmd1YWdlfVwiIGlzIG5vdCBzdXBwb3J0ZWRgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHZhbGlkYXRlVGhlbWUodGhlbWU6IFRoZW1lcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB0aGVtZXMgPSBPYmplY3QudmFsdWVzKFRoZW1lcyk7XG4gICAgICAgIGlmICh0aGVtZSAmJiAhdGhlbWVzLmluY2x1ZGVzKHRoZW1lKSkgdGhyb3cgbmV3IEVycm9yKGBUaGUgaW5mb3JtZWQgdGhlbWUgXCIke3RoZW1lfVwiIGlzIG5vdCBzdXBwb3J0ZWRgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNhZmVDb2RlKGNvZGU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0eXBlb2YgY29kZSA9PT0gXCJzdHJpbmdcIiA/IGNvZGUgOiBcIlwiO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,16 +1,13 @@
1
- import { Languages } from "../../models";
2
- /* Linters */
3
- import { TaxCalculationLinter } from "../../infra/linters/tax-calculation/tax-calculation-linter";
4
1
  var CoreLinters = /** @class */ (function () {
5
2
  function CoreLinters() {
6
3
  }
7
4
  CoreLinters.getLinter = function (language) {
8
- return CoreLinters._LINTERS.get(language);
5
+ var languageLinterFactory = CoreLinters._LINTERS.get(language);
6
+ if (languageLinterFactory)
7
+ return languageLinterFactory();
9
8
  };
10
- CoreLinters._LINTERS = new Map([
11
- [Languages.TaxCalculation, new TaxCalculationLinter()]
12
- ]);
9
+ CoreLinters._LINTERS = new Map([]);
13
10
  return CoreLinters;
14
11
  }());
15
12
  export { CoreLinters };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1saW50ZXJzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29kZS1lZGl0b3IvY29yZS91c2UtY2FzZXMvY29yZS1saW50ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHekMsYUFBYTtBQUNiLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBRWxHO0lBQUE7SUFTQSxDQUFDO0lBSGlCLHFCQUFTLEdBQXZCLFVBQXdCLFFBQW1CO1FBQ3ZDLE9BQU8sV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQU5jLG9CQUFRLEdBQWlDLElBQUksR0FBRyxDQUFDO1FBQzVELENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxJQUFJLG9CQUFvQixFQUFFLENBQUM7S0FDekQsQ0FBQyxDQUFDO0lBS1Asa0JBQUM7Q0FBQSxBQVRELElBU0M7U0FUWSxXQUFXIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VzIH0gZnJvbSBcIi4uLy4uL21vZGVsc1wiO1xuaW1wb3J0IHsgTGludGVyRmFjYWRlIH0gZnJvbSBcIi4uL2ZhY2FkZXMvbGludGVyLWZhY2FkZVwiO1xuXG4vKiBMaW50ZXJzICovXG5pbXBvcnQgeyBUYXhDYWxjdWxhdGlvbkxpbnRlciB9IGZyb20gXCIuLi8uLi9pbmZyYS9saW50ZXJzL3RheC1jYWxjdWxhdGlvbi90YXgtY2FsY3VsYXRpb24tbGludGVyXCI7XG5cbmV4cG9ydCBjbGFzcyBDb3JlTGludGVycyB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBfTElOVEVSUzogTWFwPExhbmd1YWdlcywgTGludGVyRmFjYWRlPiA9IG5ldyBNYXAoW1xuICAgICAgICBbTGFuZ3VhZ2VzLlRheENhbGN1bGF0aW9uLCBuZXcgVGF4Q2FsY3VsYXRpb25MaW50ZXIoKV1cbiAgICBdKTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TGludGVyKGxhbmd1YWdlOiBMYW5ndWFnZXMpOiBMaW50ZXJGYWNhZGUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gQ29yZUxpbnRlcnMuX0xJTlRFUlMuZ2V0KGxhbmd1YWdlKTtcbiAgICB9XG59XG4iXX0=
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1saW50ZXJzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29kZS1lZGl0b3IvY29yZS91c2UtY2FzZXMvY29yZS1saW50ZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUtBO0lBQUE7SUFRQSxDQUFDO0lBSmlCLHFCQUFTLEdBQXZCLFVBQXdCLFFBQW1CO1FBQ3ZDLElBQU0scUJBQXFCLEdBQUcsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsSUFBSSxxQkFBcUI7WUFBRSxPQUFPLHFCQUFxQixFQUFFLENBQUM7SUFDOUQsQ0FBQztJQUxjLG9CQUFRLEdBQXdDLElBQUksR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBTS9FLGtCQUFDO0NBQUEsQUFSRCxJQVFDO1NBUlksV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExhbmd1YWdlcyB9IGZyb20gXCIuLi8uLi9tb2RlbHNcIjtcbmltcG9ydCB7IExpbnRlckZhY2FkZSB9IGZyb20gXCIuLi9mYWNhZGVzL2xpbnRlci1mYWNhZGVcIjtcblxudHlwZSBMaW50ZXJGYWNhZGVGYWN0b3J5ID0gKCkgPT4gTGludGVyRmFjYWRlOyBcblxuZXhwb3J0IGNsYXNzIENvcmVMaW50ZXJzIHtcblxuICAgIHByaXZhdGUgc3RhdGljIF9MSU5URVJTOiBNYXA8TGFuZ3VhZ2VzLCBMaW50ZXJGYWNhZGVGYWN0b3J5PiA9IG5ldyBNYXAoW10pO1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXRMaW50ZXIobGFuZ3VhZ2U6IExhbmd1YWdlcyk6IExpbnRlckZhY2FkZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGxhbmd1YWdlTGludGVyRmFjdG9yeSA9IENvcmVMaW50ZXJzLl9MSU5URVJTLmdldChsYW5ndWFnZSk7XG4gICAgICAgIGlmIChsYW5ndWFnZUxpbnRlckZhY3RvcnkpIHJldHVybiBsYW5ndWFnZUxpbnRlckZhY3RvcnkoKTtcbiAgICB9XG59XG4iXX0=
@@ -15,7 +15,6 @@ var CodeMirror6Core = /** @class */ (function (_super) {
15
15
  /* These are necessary for the setCode and setEditorOptions can be called before view has been created */
16
16
  _this._codeReceivedBeforeViewCreation = "";
17
17
  _this._editorOptionsReceivedBeforeViewCreation = [];
18
- _this.setObservablesListeners();
19
18
  return _this;
20
19
  }
21
20
  CodeMirror6Core.getEditorView = function () {
@@ -35,8 +34,12 @@ var CodeMirror6Core = /** @class */ (function (_super) {
35
34
  CodeMirror6Core.prototype.setCode = function (code) {
36
35
  this.changeEditorContent(code);
37
36
  };
38
- // @Override
39
- CodeMirror6Core.prototype.destroyObservables = function () {
37
+ CodeMirror6Core.prototype.initCore = function () {
38
+ this.setObservablesListeners();
39
+ };
40
+ CodeMirror6Core.prototype.destroyCore = function () {
41
+ this._codeReceivedBeforeViewCreation = "";
42
+ CodeMirror6Core._editorView = null;
40
43
  CodeMirror6Core._ngUnsubscribe.next();
41
44
  CodeMirror6Core._ngUnsubscribe.complete();
42
45
  };
@@ -103,4 +106,4 @@ var CodeMirror6Core = /** @class */ (function (_super) {
103
106
  return CodeMirror6Core;
104
107
  }(CoreFacade));
105
108
  export { CodeMirror6Core };
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci02LWNvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9jb3Jlcy9jb2RlbWlycm9yLTYvY29kZW1pcnJvci02LWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQ0gsV0FBVyxFQUNYLFdBQVcsRUFHZCxNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEQ7SUFBcUMsbUNBQVU7SUFVM0M7UUFBQSxZQUNJLGlCQUFPLFNBRVY7UUFQRCx5R0FBeUc7UUFDakcscUNBQStCLEdBQUcsRUFBRSxDQUFDO1FBQ3JDLDhDQUF3QyxHQUFjLEVBQUUsQ0FBQztRQUk3RCxLQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQzs7SUFDbkMsQ0FBQztJQUVhLDZCQUFhLEdBQTNCO1FBQ0ksT0FBTyxlQUFlLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7SUFFYSxnQ0FBZ0IsR0FBOUI7O1FBQStCLDBCQUFzQzthQUF0QyxVQUFzQyxFQUF0QyxxQkFBc0MsRUFBdEMsSUFBc0M7WUFBdEMscUNBQXNDOztR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ZSxDQUFDLGdCQUFnQixDQUFDO2dCQUM3QixPQUFPLEVBQUU7b0JBQ0wsSUFBSSxFQUFFLENBQUM7b0JBQ1AsRUFBRSxFQUFFLGVBQWUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNO29CQUNoRCxNQUFNLEVBQUUsSUFBSTtpQkFDZjthQUNKLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxJQUFJLENBQUMsK0JBQStCLEdBQUcsSUFBSSxDQUFDO1NBQy9DO0lBQ0wsQ0FBQztJQTlGYSx3Q0FBd0IsR0FBc0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUMzRCw4QkFBYyxHQUFrQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzlDLDJCQUFXLEdBQWUsSUFBSSxDQUFDO0lBOEZsRCxzQkFBQztDQUFBLEFBbEdELENBQXFDLFVBQVUsR0FrRzlDO1NBbEdZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFZGl0b3JWaWV3IH0gZnJvbSBcIkBjb2RlbWlycm9yL3ZpZXdcIjtcbmltcG9ydCB7XG4gICAgRWRpdG9yU3RhdGUsXG4gICAgU3RhdGVFZmZlY3QsXG4gICAgRXh0ZW5zaW9uLFxuICAgIFRyYW5zYWN0aW9uU3BlY1xufSBmcm9tIFwiQGNvZGVtaXJyb3Ivc3RhdGVcIjtcbmltcG9ydCB7IHNldERpYWdub3N0aWNzIH0gZnJvbSBcIkBjb2RlbWlycm9yL2xpbnRcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7IENvcmVGYWNhZGUgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9mYWNhZGVzL2NvcmUtZmFjYWRlXCI7XG5pbXBvcnQgeyBNYXJrZXIgfSBmcm9tIFwiLi4vLi4vLi4vY29yZS9tb2RlbHNcIjtcbmltcG9ydCB7IEVkaXRvck9wdGlvbnMgfSBmcm9tIFwiLi4vLi4vLi4vbW9kZWxzXCI7XG5pbXBvcnQgeyBFZGl0b3JMYW5ndWFnZXMgfSBmcm9tIFwiLi9sYW5ndWFnZXMvZWRpdG9yLWxhbmd1YWdlc1wiO1xuaW1wb3J0IHsgRWRpdG9yVGhlbWVzIH0gZnJvbSBcIi4vdGhlbWVzL2VkaXRvci10aGVtZXNcIjtcbmltcG9ydCB7IGNvbnZlcnRNYXJrZXJzVG9EaWFnbm9zdGljcyB9IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBjbGFzcyBDb2RlTWlycm9yNkNvcmUgZXh0ZW5kcyBDb3JlRmFjYWRlIHtcblxuICAgIHB1YmxpYyBzdGF0aWMgJG9uQ29tcGxldGlvbkl0ZW1zVXBkYXRlOiBTdWJqZWN0PHN0cmluZ1tdPiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX25nVW5zdWJzY3JpYmU6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xuICAgIHByaXZhdGUgc3RhdGljIF9lZGl0b3JWaWV3OiBFZGl0b3JWaWV3ID0gbnVsbDtcblxuICAgIC8qIFRoZXNlIGFyZSBuZWNlc3NhcnkgZm9yIHRoZSBzZXRDb2RlIGFuZCBzZXRFZGl0b3JPcHRpb25zIGNhbiBiZSBjYWxsZWQgYmVmb3JlIHZpZXcgaGFzIGJlZW4gY3JlYXRlZCAqL1xuICAgIHByaXZhdGUgX2NvZGVSZWNlaXZlZEJlZm9yZVZpZXdDcmVhdGlvbiA9IFwiXCI7XG4gICAgcHJpdmF0ZSBfZWRpdG9yT3B0aW9uc1JlY2VpdmVkQmVmb3JlVmlld0NyZWF0aW9uOiBFeHRlbnNpb24gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgICAgICB0aGlzLnNldE9ic2VydmFibGVzTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRFZGl0b3JWaWV3KCk6IEVkaXRvclZpZXcge1xuICAgICAgICByZXR1cm4gQ29kZU1pcnJvcjZDb3JlLl9lZGl0b3JWaWV3O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgdXBkYXRlRWRpdG9yVmlldyguLi50cmFuc2FjdGlvblNwZWNzOiBUcmFuc2FjdGlvblNwZWNbXSk6IHZvaWQge1xuICAgICAgICBDb2RlTWlycm9yNkNvcmUuX2VkaXRvclZpZXcuZGlzcGF0Y2goLi4udHJhbnNhY3Rpb25TcGVjcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENvcmVXcmFwcGVyRWxlbWVudChlbGVtZW50OiBIVE1MRGl2RWxlbWVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUVkaXRvclZpZXcoZWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENvZGUoY29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRWRpdG9yQ29udGVudChjb2RlKTtcbiAgICB9XG5cbiAgICAvLyBAT3ZlcnJpZGVcbiAgICBwdWJsaWMgZGVzdHJveU9ic2VydmFibGVzKCk6IHZvaWQge1xuICAgICAgICBDb2RlTWlycm9yNkNvcmUuX25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgICAgICBDb2RlTWlycm9yNkNvcmUuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0Q29yZUVkaXRvck9wdGlvbnMob3B0aW9uczogRWRpdG9yT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYW5ndWFnZSA9IEVkaXRvckxhbmd1YWdlcy5nZXRMYW5ndWFnZShvcHRpb25zLmxhbmd1YWdlKTtcbiAgICAgICAgY29uc3QgdGhlbWUgPSBFZGl0b3JUaGVtZXMuZ2V0VGhlbWUob3B0aW9ucy50aGVtZSk7XG5cbiAgICAgICAgaWYgKENvZGVNaXJyb3I2Q29yZS5fZWRpdG9yVmlldykge1xuICAgICAgICAgICAgQ29kZU1pcnJvcjZDb3JlLnVwZGF0ZUVkaXRvclZpZXcoe1xuICAgICAgICAgICAgICAgIGVmZmVjdHM6IFN0YXRlRWZmZWN0LnJlY29uZmlndXJlLm9mKFtcbiAgICAgICAgICAgICAgICAgICAgbGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgIHRoZW1lLFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmdldENvZGVDaGFuZ2VMaXN0ZW5lckV4dGVuc2lvbigpXG4gICAgICAgICAgICAgICAgXSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fZWRpdG9yT3B0aW9uc1JlY2VpdmVkQmVmb3JlVmlld0NyZWF0aW9uID0gW2xhbmd1YWdlLCB0aGVtZV07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaGlnaGxpZ2h0Q29kZShtYXJrZXJzOiBNYXJrZXJbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCBkaWFnbm9zdGljcyA9IGNvbnZlcnRNYXJrZXJzVG9EaWFnbm9zdGljcyhtYXJrZXJzLCBDb2RlTWlycm9yNkNvcmUuX2VkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCk7XG4gICAgICAgIENvZGVNaXJyb3I2Q29yZS51cGRhdGVFZGl0b3JWaWV3KHNldERpYWdub3N0aWNzKENvZGVNaXJyb3I2Q29yZS5fZWRpdG9yVmlldy5zdGF0ZSwgZGlhZ25vc3RpY3MpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldE9ic2VydmFibGVzTGlzdGVuZXJzKCk6IHZvaWQge1xuICAgICAgICBDb2RlTWlycm9yNkNvcmUuJG9uQ29tcGxldGlvbkl0ZW1zVXBkYXRlXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwoQ29kZU1pcnJvcjZDb3JlLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoaXRlbXMgPT4gdGhpcy51cGRhdGVDb21wbGV0aW9uSXRlbXMoaXRlbXMpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUVkaXRvclZpZXcocGFyZW50RWxlbWVudDogSFRNTEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgQ29kZU1pcnJvcjZDb3JlLl9lZGl0b3JWaWV3ID0gbmV3IEVkaXRvclZpZXcoe1xuICAgICAgICAgICAgcGFyZW50OiBwYXJlbnRFbGVtZW50LFxuICAgICAgICAgICAgc3RhdGU6IEVkaXRvclN0YXRlLmNyZWF0ZSh7XG4gICAgICAgICAgICAgICAgZG9jOiB0aGlzLl9jb2RlUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb24sXG4gICAgICAgICAgICAgICAgZXh0ZW5zaW9uczogW1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9lZGl0b3JPcHRpb25zUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q29kZUNoYW5nZUxpc3RlbmVyRXh0ZW5zaW9uKClcbiAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm5vdGlmeUNvcmVGaW5pc2hMb2FkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb2RlQ2hhbmdlTGlzdGVuZXJFeHRlbnNpb24oKTogRXh0ZW5zaW9uIHtcbiAgICAgICAgcmV0dXJuIEVkaXRvclZpZXcudXBkYXRlTGlzdGVuZXIub2YodXBkYXRlID0+IHVwZGF0ZS5kb2NDaGFuZ2VkICYmIHRoaXMubm90aWZ5Q29kZUNoYW5nZSh1cGRhdGUuc3RhdGUuZG9jLnRvU3RyaW5nKCkpKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNoYW5nZUVkaXRvckNvbnRlbnQoY29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmIChDb2RlTWlycm9yNkNvcmUuX2VkaXRvclZpZXcpIHtcbiAgICAgICAgICAgIENvZGVNaXJyb3I2Q29yZS51cGRhdGVFZGl0b3JWaWV3KHtcbiAgICAgICAgICAgICAgICBjaGFuZ2VzOiB7XG4gICAgICAgICAgICAgICAgICAgIGZyb206IDAsXG4gICAgICAgICAgICAgICAgICAgIHRvOiBDb2RlTWlycm9yNkNvcmUuX2VkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgaW5zZXJ0OiBjb2RlXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9jb2RlUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb24gPSBjb2RlO1xuICAgICAgICB9XG4gICAgfVxuXG59XG4iXX0=
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci02LWNvcmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9jb3Jlcy9jb2RlbWlycm9yLTYvY29kZW1pcnJvci02LWNvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM5QyxPQUFPLEVBQ0gsV0FBVyxFQUNYLFdBQVcsRUFHZCxNQUFNLG1CQUFtQixDQUFDO0FBQzNCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFdEQ7SUFBcUMsbUNBQVU7SUFVM0M7UUFBQSxZQUNJLGlCQUFPLFNBQ1Y7UUFORCx5R0FBeUc7UUFDakcscUNBQStCLEdBQUcsRUFBRSxDQUFDO1FBQ3JDLDhDQUF3QyxHQUFjLEVBQUUsQ0FBQzs7SUFJakUsQ0FBQztJQUVhLDZCQUFhLEdBQTNCO1FBQ0ksT0FBTyxlQUFlLENBQUMsV0FBVyxDQUFDO0lBQ3ZDLENBQUM7SUFFYSxnQ0FBZ0IsR0FBOUI7O1FBQStCLDBCQUFzQzthQUF0QyxVQUFzQyxFQUF0QyxxQkFBc0MsRUFBdEMsSUFBc0M7WUFBdEMscUNBQXNDOztRQUNqRSxDQUFBLEtBQUEsZUFBZSxDQUFDLFdBQVcsQ0FB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QUFDLENBQUM7SUFDM0gsQ0FBQztJQUVPLDZDQUFtQixHQUEzQixVQUE0QixJQUFZO1FBQ3BDLElBQUksZUFBZSxDQUFDLFdBQVcsRUFBRTtZQUM3QixlQUFlLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzdCLE9BQU8sRUFBRTtvQkFDTCxJQUFJLEVBQUUsQ0FBQztvQkFDUCxFQUFFLEVBQUUsZUFBZSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE1BQU07b0JBQ2hELE1BQU0sRUFBRSxJQUFJO2lCQUNmO2FBQ0osQ0FBQyxDQUFDO1NBQ047YUFBTTtZQUNILElBQUksQ0FBQywrQkFBK0IsR0FBRyxJQUFJLENBQUM7U0FDL0M7SUFDTCxDQUFDO0lBbEdhLHdDQUF3QixHQUFzQixJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzNELDhCQUFjLEdBQWtCLElBQUksT0FBTyxFQUFFLENBQUM7SUFDOUMsMkJBQVcsR0FBZSxJQUFJLENBQUM7SUFrR2xELHNCQUFDO0NBQUEsQUF0R0QsQ0FBcUMsVUFBVSxHQXNHOUM7U0F0R1ksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVkaXRvclZpZXcgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuaW1wb3J0IHtcbiAgICBFZGl0b3JTdGF0ZSxcbiAgICBTdGF0ZUVmZmVjdCxcbiAgICBFeHRlbnNpb24sXG4gICAgVHJhbnNhY3Rpb25TcGVjXG59IGZyb20gXCJAY29kZW1pcnJvci9zdGF0ZVwiO1xuaW1wb3J0IHsgc2V0RGlhZ25vc3RpY3MgfSBmcm9tIFwiQGNvZGVtaXJyb3IvbGludFwiO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcblxuaW1wb3J0IHsgQ29yZUZhY2FkZSB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL2ZhY2FkZXMvY29yZS1mYWNhZGVcIjtcbmltcG9ydCB7IE1hcmtlciB9IGZyb20gXCIuLi8uLi8uLi9jb3JlL21vZGVsc1wiO1xuaW1wb3J0IHsgRWRpdG9yT3B0aW9ucyB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHNcIjtcbmltcG9ydCB7IEVkaXRvckxhbmd1YWdlcyB9IGZyb20gXCIuL2xhbmd1YWdlcy9lZGl0b3ItbGFuZ3VhZ2VzXCI7XG5pbXBvcnQgeyBFZGl0b3JUaGVtZXMgfSBmcm9tIFwiLi90aGVtZXMvZWRpdG9yLXRoZW1lc1wiO1xuaW1wb3J0IHsgY29udmVydE1hcmtlcnNUb0RpYWdub3N0aWNzIH0gZnJvbSBcIi4vdXRpbHNcIjtcblxuZXhwb3J0IGNsYXNzIENvZGVNaXJyb3I2Q29yZSBleHRlbmRzIENvcmVGYWNhZGUge1xuXG4gICAgcHVibGljIHN0YXRpYyAkb25Db21wbGV0aW9uSXRlbXNVcGRhdGU6IFN1YmplY3Q8c3RyaW5nW10+ID0gbmV3IFN1YmplY3QoKTtcbiAgICBwcml2YXRlIHN0YXRpYyBfbmdVbnN1YnNjcmliZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0KCk7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX2VkaXRvclZpZXc6IEVkaXRvclZpZXcgPSBudWxsO1xuXG4gICAgLyogVGhlc2UgYXJlIG5lY2Vzc2FyeSBmb3IgdGhlIHNldENvZGUgYW5kIHNldEVkaXRvck9wdGlvbnMgY2FuIGJlIGNhbGxlZCBiZWZvcmUgdmlldyBoYXMgYmVlbiBjcmVhdGVkICovXG4gICAgcHJpdmF0ZSBfY29kZVJlY2VpdmVkQmVmb3JlVmlld0NyZWF0aW9uID0gXCJcIjtcbiAgICBwcml2YXRlIF9lZGl0b3JPcHRpb25zUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb246IEV4dGVuc2lvbiA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRFZGl0b3JWaWV3KCk6IEVkaXRvclZpZXcge1xuICAgICAgICByZXR1cm4gQ29kZU1pcnJvcjZDb3JlLl9lZGl0b3JWaWV3O1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgdXBkYXRlRWRpdG9yVmlldyguLi50cmFuc2FjdGlvblNwZWNzOiBUcmFuc2FjdGlvblNwZWNbXSk6IHZvaWQge1xuICAgICAgICBDb2RlTWlycm9yNkNvcmUuX2VkaXRvclZpZXcuZGlzcGF0Y2goLi4udHJhbnNhY3Rpb25TcGVjcyk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENvcmVXcmFwcGVyRWxlbWVudChlbGVtZW50OiBIVE1MRGl2RWxlbWVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNyZWF0ZUVkaXRvclZpZXcoZWxlbWVudCk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldENvZGUoY29kZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hhbmdlRWRpdG9yQ29udGVudChjb2RlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaW5pdENvcmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0T2JzZXJ2YWJsZXNMaXN0ZW5lcnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZGVzdHJveUNvcmUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NvZGVSZWNlaXZlZEJlZm9yZVZpZXdDcmVhdGlvbiA9IFwiXCI7XG4gICAgICAgIENvZGVNaXJyb3I2Q29yZS5fZWRpdG9yVmlldyA9IG51bGw7XG4gICAgICAgIENvZGVNaXJyb3I2Q29yZS5fbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICAgIENvZGVNaXJyb3I2Q29yZS5fbmdVbnN1YnNjcmliZS5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXRDb3JlRWRpdG9yT3B0aW9ucyhvcHRpb25zOiBFZGl0b3JPcHRpb25zKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGxhbmd1YWdlID0gRWRpdG9yTGFuZ3VhZ2VzLmdldExhbmd1YWdlKG9wdGlvbnMubGFuZ3VhZ2UpO1xuICAgICAgICBjb25zdCB0aGVtZSA9IEVkaXRvclRoZW1lcy5nZXRUaGVtZShvcHRpb25zLnRoZW1lKTtcblxuICAgICAgICBpZiAoQ29kZU1pcnJvcjZDb3JlLl9lZGl0b3JWaWV3KSB7XG4gICAgICAgICAgICBDb2RlTWlycm9yNkNvcmUudXBkYXRlRWRpdG9yVmlldyh7XG4gICAgICAgICAgICAgICAgZWZmZWN0czogU3RhdGVFZmZlY3QucmVjb25maWd1cmUub2YoW1xuICAgICAgICAgICAgICAgICAgICBsYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgdGhlbWUsXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0Q29kZUNoYW5nZUxpc3RlbmVyRXh0ZW5zaW9uKClcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9lZGl0b3JPcHRpb25zUmVjZWl2ZWRCZWZvcmVWaWV3Q3JlYXRpb24gPSBbbGFuZ3VhZ2UsIHRoZW1lXTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBoaWdobGlnaHRDb2RlKG1hcmtlcnM6IE1hcmtlcltdKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRpYWdub3N0aWNzID0gY29udmVydE1hcmtlcnNUb0RpYWdub3N0aWNzKG1hcmtlcnMsIENvZGVNaXJyb3I2Q29yZS5fZWRpdG9yVmlldy5zdGF0ZS5kb2MubGVuZ3RoKTtcbiAgICAgICAgQ29kZU1pcnJvcjZDb3JlLnVwZGF0ZUVkaXRvclZpZXcoc2V0RGlhZ25vc3RpY3MoQ29kZU1pcnJvcjZDb3JlLl9lZGl0b3JWaWV3LnN0YXRlLCBkaWFnbm9zdGljcykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0T2JzZXJ2YWJsZXNMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgICAgIENvZGVNaXJyb3I2Q29yZS4kb25Db21wbGV0aW9uSXRlbXNVcGRhdGVcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbChDb2RlTWlycm9yNkNvcmUuX25nVW5zdWJzY3JpYmUpKVxuICAgICAgICAgICAgLnN1YnNjcmliZShpdGVtcyA9PiB0aGlzLnVwZGF0ZUNvbXBsZXRpb25JdGVtcyhpdGVtcykpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRWRpdG9yVmlldyhwYXJlbnRFbGVtZW50OiBIVE1MRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBDb2RlTWlycm9yNkNvcmUuX2VkaXRvclZpZXcgPSBuZXcgRWRpdG9yVmlldyh7XG4gICAgICAgICAgICBwYXJlbnQ6IHBhcmVudEVsZW1lbnQsXG4gICAgICAgICAgICBzdGF0ZTogRWRpdG9yU3RhdGUuY3JlYXRlKHtcbiAgICAgICAgICAgICAgICBkb2M6IHRoaXMuX2NvZGVSZWNlaXZlZEJlZm9yZVZpZXdDcmVhdGlvbixcbiAgICAgICAgICAgICAgICBleHRlbnNpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2VkaXRvck9wdGlvbnNSZWNlaXZlZEJlZm9yZVZpZXdDcmVhdGlvbixcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRDb2RlQ2hhbmdlTGlzdGVuZXJFeHRlbnNpb24oKVxuICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMubm90aWZ5Q29yZUZpbmlzaExvYWQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvZGVDaGFuZ2VMaXN0ZW5lckV4dGVuc2lvbigpOiBFeHRlbnNpb24ge1xuICAgICAgICByZXR1cm4gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZih1cGRhdGUgPT4gdXBkYXRlLmRvY0NoYW5nZWQgJiYgdGhpcy5ub3RpZnlDb2RlQ2hhbmdlKHVwZGF0ZS5zdGF0ZS5kb2MudG9TdHJpbmcoKSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hhbmdlRWRpdG9yQ29udGVudChjb2RlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKENvZGVNaXJyb3I2Q29yZS5fZWRpdG9yVmlldykge1xuICAgICAgICAgICAgQ29kZU1pcnJvcjZDb3JlLnVwZGF0ZUVkaXRvclZpZXcoe1xuICAgICAgICAgICAgICAgIGNoYW5nZXM6IHtcbiAgICAgICAgICAgICAgICAgICAgZnJvbTogMCxcbiAgICAgICAgICAgICAgICAgICAgdG86IENvZGVNaXJyb3I2Q29yZS5fZWRpdG9yVmlldy5zdGF0ZS5kb2MubGVuZ3RoLFxuICAgICAgICAgICAgICAgICAgICBpbnNlcnQ6IGNvZGVcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2NvZGVSZWNlaXZlZEJlZm9yZVZpZXdDcmVhdGlvbiA9IGNvZGU7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ==
@@ -5,12 +5,15 @@ var EditorLanguages = /** @class */ (function () {
5
5
  function EditorLanguages() {
6
6
  }
7
7
  EditorLanguages.getLanguage = function (language) {
8
- return EditorLanguages._LANGUAGES.get(language) || [];
8
+ var languageSupportFactory = EditorLanguages._LANGUAGES.get(language);
9
+ if (languageSupportFactory)
10
+ return languageSupportFactory();
11
+ return [];
9
12
  };
10
13
  EditorLanguages._LANGUAGES = new Map([
11
- [Languages.TaxCalculation, TaxCalculation()]
14
+ [Languages.TaxCalculation, TaxCalculation]
12
15
  ]);
13
16
  return EditorLanguages;
14
17
  }());
15
18
  export { EditorLanguages };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWxhbmd1YWdlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2NvcmVzL2NvZGVtaXJyb3ItNi9sYW5ndWFnZXMvZWRpdG9yLWxhbmd1YWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFL0MsZUFBZTtBQUNmLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUU1RTtJQUFBO0lBU0EsQ0FBQztJQUhpQiwyQkFBVyxHQUF6QixVQUEwQixRQUFtQjtRQUN6QyxPQUFPLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQWdDLENBQUM7SUFDeEYsQ0FBQztJQU5jLDBCQUFVLEdBQW9DLElBQUksR0FBRyxDQUFDO1FBQ2pFLENBQUMsU0FBUyxDQUFDLGNBQWMsRUFBRSxjQUFjLEVBQUUsQ0FBQztLQUMvQyxDQUFDLENBQUM7SUFLUCxzQkFBQztDQUFBLEFBVEQsSUFTQztTQVRZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5ndWFnZVN1cHBvcnQgfSBmcm9tIFwiQGNvZGVtaXJyb3IvbGFuZ3VhZ2VcIjtcblxuaW1wb3J0IHsgTGFuZ3VhZ2VzIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsc1wiO1xuXG4vKiBMYW5ndWFnZXMgKi9cbmltcG9ydCB7IFRheENhbGN1bGF0aW9uIH0gZnJvbSBcIi4vdGF4LWNhbGN1bGF0aW9uL3RheC1jYWxjdWxhdGlvbi5sYW5ndWFnZVwiO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yTGFuZ3VhZ2VzIHtcblxuICAgIHByaXZhdGUgc3RhdGljIF9MQU5HVUFHRVM6IE1hcDxMYW5ndWFnZXMsIExhbmd1YWdlU3VwcG9ydD4gPSBuZXcgTWFwKFtcbiAgICAgICAgW0xhbmd1YWdlcy5UYXhDYWxjdWxhdGlvbiwgVGF4Q2FsY3VsYXRpb24oKV1cbiAgICBdKTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IExhbmd1YWdlcyk6IExhbmd1YWdlU3VwcG9ydCB7XG4gICAgICAgIHJldHVybiBFZGl0b3JMYW5ndWFnZXMuX0xBTkdVQUdFUy5nZXQobGFuZ3VhZ2UpIHx8IFtdIGFzIHVua25vd24gYXMgTGFuZ3VhZ2VTdXBwb3J0O1xuICAgIH1cbn1cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWxhbmd1YWdlcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2NvcmVzL2NvZGVtaXJyb3ItNi9sYW5ndWFnZXMvZWRpdG9yLWxhbmd1YWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFL0MsZUFBZTtBQUNmLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUk1RTtJQUFBO0lBV0EsQ0FBQztJQUxpQiwyQkFBVyxHQUF6QixVQUEwQixRQUFtQjtRQUN6QyxJQUFNLHNCQUFzQixHQUFHLGVBQWUsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLElBQUksc0JBQXNCO1lBQUUsT0FBTyxzQkFBc0IsRUFBRSxDQUFDO1FBQzVELE9BQU8sRUFBZ0MsQ0FBQztJQUM1QyxDQUFDO0lBUmMsMEJBQVUsR0FBMkMsSUFBSSxHQUFHLENBQUM7UUFDeEUsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLGNBQWMsQ0FBQztLQUM3QyxDQUFDLENBQUM7SUFPUCxzQkFBQztDQUFBLEFBWEQsSUFXQztTQVhZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5ndWFnZVN1cHBvcnQgfSBmcm9tIFwiQGNvZGVtaXJyb3IvbGFuZ3VhZ2VcIjtcblxuaW1wb3J0IHsgTGFuZ3VhZ2VzIH0gZnJvbSBcIi4uLy4uLy4uLy4uL21vZGVsc1wiO1xuXG4vKiBMYW5ndWFnZXMgKi9cbmltcG9ydCB7IFRheENhbGN1bGF0aW9uIH0gZnJvbSBcIi4vdGF4LWNhbGN1bGF0aW9uL3RheC1jYWxjdWxhdGlvbi5sYW5ndWFnZVwiO1xuXG50eXBlIExhbmd1YWdlU3VwcG9ydEZhY3RvcnkgPSAoKSA9PiBMYW5ndWFnZVN1cHBvcnRcblxuZXhwb3J0IGNsYXNzIEVkaXRvckxhbmd1YWdlcyB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBfTEFOR1VBR0VTOiBNYXA8TGFuZ3VhZ2VzLCBMYW5ndWFnZVN1cHBvcnRGYWN0b3J5PiA9IG5ldyBNYXAoW1xuICAgICAgICBbTGFuZ3VhZ2VzLlRheENhbGN1bGF0aW9uLCBUYXhDYWxjdWxhdGlvbl1cbiAgICBdKTtcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IExhbmd1YWdlcyk6IExhbmd1YWdlU3VwcG9ydCB7XG4gICAgICAgIGNvbnN0IGxhbmd1YWdlU3VwcG9ydEZhY3RvcnkgPSBFZGl0b3JMYW5ndWFnZXMuX0xBTkdVQUdFUy5nZXQobGFuZ3VhZ2UpO1xuICAgICAgICBpZiAobGFuZ3VhZ2VTdXBwb3J0RmFjdG9yeSkgcmV0dXJuIGxhbmd1YWdlU3VwcG9ydEZhY3RvcnkoKTtcbiAgICAgICAgcmV0dXJuIFtdIGFzIHVua25vd24gYXMgTGFuZ3VhZ2VTdXBwb3J0O1xuICAgIH1cbn1cbiJdfQ==
@@ -6,7 +6,7 @@ import { isCurrentPositionInsideString } from "../../../../utils";
6
6
  import { AutocompleteService } from "./autocomplete.service";
7
7
  import { autocompleteLoadingState, showAutocompleteLoadingState, autocompleteEmptyState, showAutocompleteEmptyState } from "./autocomplete-states";
8
8
  import { RequestTypes, CompletionTypes, MetaType, Keywords, } from "../../models";
9
- import { getLanguageConfigs, getSafeResponse, updateCoreCompletionItems } from "../../utils";
9
+ import { getLanguageConfigs, getSafeResponse } from "../../utils";
10
10
  import { style } from "./autocomplete-style";
11
11
  /**
12
12
  * Adds an autocomplete to the editor
@@ -104,7 +104,6 @@ function searchCompletionResults(context, token) {
104
104
  filter: false,
105
105
  options: sortedCompletions
106
106
  };
107
- updateCoreCompletionItems({ path: path, filter: filter, completions: sortedCompletions });
108
107
  startCompletion(CodeMirror6Core.getEditorView());
109
108
  }
110
109
  else {
@@ -353,4 +352,4 @@ function getSortedCompletions(completions) {
353
352
  });
354
353
  }
355
354
  export { ɵ0 };
356
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29kZS1lZGl0b3IvaW5mcmEvY29yZXMvY29kZW1pcnJvci02L2xhbmd1YWdlcy90YXgtY2FsY3VsYXRpb24vZXh0ZW5zaW9ucy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQ0gsY0FBYyxFQUlkLGdCQUFnQixFQUNoQixlQUFlLEVBQ2xCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsNEJBQTRCLEVBQzVCLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDN0IsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBRUgsWUFBWSxFQUtaLGVBQWUsRUFFZixRQUFRLEVBR1IsUUFBUSxHQUNYLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLHlCQUF5QixFQUM1QixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFN0M7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDeEIsT0FBTztRQUNILGNBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztRQUNwRCx3QkFBd0IsRUFBRTtRQUMxQixzQkFBc0IsRUFBRTtRQUN4QixL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Q0FBQyxDQUFDO0FBQ1AsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4dGVuc2lvbiB9IGZyb20gXCJAY29kZW1pcnJvci9zdGF0ZVwiO1xuaW1wb3J0IHsgRWRpdG9yVmlldyB9IGZyb20gXCJAY29kZW1pcnJvci92aWV3XCI7XG5pbXBvcnQge1xuICAgIGF1dG9jb21wbGV0aW9uLFxuICAgIENvbXBsZXRpb24sXG4gICAgQ29tcGxldGlvbkNvbnRleHQsXG4gICAgQ29tcGxldGlvblJlc3VsdCxcbiAgICBwaWNrZWRDb21wbGV0aW9uLFxuICAgIHN0YXJ0Q29tcGxldGlvblxufSBmcm9tIFwiQGNvZGVtaXJyb3IvYXV0b2NvbXBsZXRlXCI7XG5cbmltcG9ydCB7IEN1c3RvbVRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vdXRpbHNcIjtcbmltcG9ydCB7IENvZGVNaXJyb3I2Q29yZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9jb2RlbWlycm9yLTYtY29yZVwiO1xuaW1wb3J0IHsgaXNDdXJyZW50UG9zaXRpb25JbnNpZGVTdHJpbmcgfSBmcm9tIFwiLi4vLi4vLi4vLi4vdXRpbHNcIjtcbmltcG9ydCB7IEF1dG9jb21wbGV0ZVNlcnZpY2UgfSBmcm9tIFwiLi9hdXRvY29tcGxldGUuc2VydmljZVwiO1xuaW1wb3J0IHtcbiAgICBhdXRvY29tcGxldGVMb2FkaW5nU3RhdGUsXG4gICAgc2hvd0F1dG9jb21wbGV0ZUxvYWRpbmdTdGF0ZSxcbiAgICBhdXRvY29tcGxldGVFbXB0eVN0YXRlLFxuICAgIHNob3dBdXRvY29tcGxldGVFbXB0eVN0YXRlXG59IGZyb20gXCIuL2F1dG9jb21wbGV0ZS1zdGF0ZXNcIjtcbmltcG9ydCB7XG4gICAgVGF4Q2FsY3VsYXRpb25Db25maWdzLFxuICAgIFJlcXVlc3RUeXBlcyxcbiAgICBSZXNwb25zZSxcbiAgICBTYWZlUmVxdWVzdCxcbiAgICBTYWZlUmVzcG9uc2UsXG4gICAgTGlzdENvbnRleHRNZXRhZGF0YUJ5SWRSZXNwb25zZSxcbiAgICBDb21wbGV0aW9uVHlwZXMsXG4gICAgTGlzdEV4cHJlc3Npb25NZXRhZGF0YVJlc3BvbnNlLFxuICAgIE1ldGFUeXBlLFxuICAgIEdldEZhY2FkZU1ldGFkYXRhQnlQYXRoUmVzcG9uc2UsXG4gICAgTGlzdEZhY2FkZU1ldGFkYXRhTmFtZXNSZXNwb25zZSxcbiAgICBLZXl3b3Jkcyxcbn0gZnJvbSBcIi4uLy4uL21vZGVsc1wiO1xuaW1wb3J0IHtcbiAgICBnZXRMYW5ndWFnZUNvbmZpZ3MsXG4gICAgZ2V0U2FmZVJlc3BvbnNlLFxuICAgIHVwZGF0ZUNvcmVDb21wbGV0aW9uSXRlbXNcbn0gZnJvbSBcIi4uLy4uL3V0aWxzXCI7XG5pbXBvcnQgeyBzdHlsZSB9IGZyb20gXCIuL2F1dG9jb21wbGV0ZS1zdHlsZVwiO1xuXG4vKipcbiAqIEFkZHMgYW4gYXV0b2NvbXBsZXRlIHRvIHRoZSBlZGl0b3JcbiAqIEByZXR1cm5zIEFuIGV4dGVuc2lvbiBjb250YWluaW5nIGV2ZXJ5dGhpbmcgbmVlZGVkIHRvIGNyZWF0ZSB0aGUgYXV0b2NvbXBsZXRlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhdXRvY29tcGxldGUgKCk6IEV4dGVuc2lvbiB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAgYXV0b2NvbXBsZXRpb24oeyBvdmVycmlkZTogW2dldENvbXBsZXRpb25SZXN1bHRzXSB9KSxcbiAgICAgICAgYXV0b2NvbXBsZXRlTG9hZGluZ1N0YXRlKCksXG4gICAgICAgIGF1dG9jb21wbGV0ZUVtcHR5U3RhdGUoKSxcbiAgICAgICAgc3R5bGUoKSxcbiAgICBdO1xufVxuXG5jb25zdCBUUkFOU0xBVElPTl9QUkVGSVggPSBcImNvcmVfbGFuZ3VhZ2VfdGF4X2NhbGN1bGF0aW9uXCI7XG5sZXQgY29tcGxldGlvblJlc3VsdHMhOiBDb21wbGV0aW9uUmVzdWx0O1xuXG4vKlxuICogQSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiBhIGtleSBpcyBwcmVzc2VkLCB0aGUgY3RybCtzcGFjZSBpcyB0cmlnZ2VyZWQgb3Igd2hlbiB0aGUgc2VhcmNoIGZvciBjb21wbGV0aW9uUmVzdWx0cyBpcyBkb25lLlxuICogSWYgdGhlcmUgaXMgYSBjb21wbGV0aW9uUmVzdWx0LCByZXR1cm5zIGl0LCBvdGhlcndpc2Ugc3RhcnRzIGEgbmV3IGFzeW5jIHNlYXJjaC5cbiAqIFdpbGwgb25seSBleGVjdXRlIHRoZSBhdXRvY29tcGxldGlvbiBpZiB0aGUgY3VycmVudCBjdXJzb3IgcG9zaXRpb24gaXMgbm90IGluc2lkZSBhIHN0cmluZ1xuICovXG5mdW5jdGlvbiBnZXRDb21wbGV0aW9uUmVzdWx0cyhjb250ZXh0OiBDb21wbGV0aW9uQ29udGV4dCk6IENvbXBsZXRpb25SZXN1bHQge1xuICAgIGNvbnN0IGlzQ3Vyc29ySW5zaWRlU3RyaW5nID0gaXNDdXJyZW50UG9zaXRpb25JbnNpZGVTdHJpbmcoY29udGV4dC5zdGF0ZS5kb2MudG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgY29udGV4dC5wb3MpKTtcbiAgICBpZiAoaXNDdXJzb3JJbnNpZGVTdHJpbmcpIHJldHVybjtcblxuICAgIGlmIChjb21wbGV0aW9uUmVzdWx0cykge1xuICAgICAgICBjb25zdCBmaW5hbENvbXBsZXRpb25SZXN1bHRzOiBDb21wbGV0aW9uUmVzdWx0ID0geyAuLi5jb21wbGV0aW9uUmVzdWx0cyB9O1xuICAgICAgICBjb25zdCBjb2RlTGVuZ3RoID0gY29udGV4dC5zdGF0ZS5kb2MudG9TdHJpbmcoKS5sZW5ndGg7XG4gICAgICAgIGZpbmFsQ29tcGxldGlvblJlc3VsdHMuZnJvbSA9IGZpbmFsQ29tcGxldGlvblJlc3VsdHMuZnJvbSA+IGNvZGVMZW5ndGhcbiAgICAgICAgICAgID8gY29kZUxlbmd0aFxuICAgICAgICAgICAgOiBmaW5hbENvbXBsZXRpb25SZXN1bHRzLmZyb207XG4gICAgICAgIGNvbXBsZXRpb25SZXN1bHRzID0gbnVsbDtcbiAgICAgICAgcmV0dXJuIGZpbmFsQ29tcGxldGlvblJlc3VsdHM7XG4gICAgfVxuICAgIHN0YXJ0Q29tcGxldGlvblJlc3VsdHNTZWFyY2goY29udGV4dCk7XG59XG5cbmxldCBjYW5jZWxMYXN0Q29tcGxldGlvblNlYXJjaDogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xubGV0IGNvZGVNaXJyb3JWaWV3RWxlbWVudCE6IEhUTUxFbGVtZW50O1xuXG4vKlxuICogU3RhcnRzIGEgbmV3IGNvbXBsZXRpb25SZXN1bHRzJ3MgYXN5bmMgc2VhcmNoLlxuICogQXZvaWRzIHRoZSBsYXN0IHNlYXJjaCB0byBiZSBmaW5pc2hlZCBieSBjYWxsaW5nIHRoZSBcImNhbmNlbExhc3RDb21wbGV0aW9uU2VhcmNoXCIgY2FsbGJhY2sgZnVuY3Rpb25cbiAqL1xuZnVuY3Rpb24gc3RhcnRDb21wbGV0aW9uUmVzdWx0c1NlYXJjaChjb250ZXh0OiBDb21wbGV0aW9uQ29udGV4dCk6IHZvaWQge1xuICAgIGNvbnN0IHRva2VuID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBpZiAoIXRva2VuLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICAgICAgICBzaG93QXV0b2NvbXBsZXRlTG9hZGluZ1N0YXRlKCk7XG4gICAgICAgICAgICBzZWFyY2hDb21wbGV0aW9uUmVzdWx0cyhjb250ZXh0LCB0b2tlbik7XG4gICAgICAgIH1cbiAgICB9LCA1MDApO1xuXG4gICAgLypcbiAgICAgKiBJTVBPUlRBTlQ6IFRoZSBmb2xsb3dpbmcgbGluZXMgTVVTVCBiZSB0aGUgd2F5IHRoZXkgYXJlIVxuICAgICAqIEhlcmUgaXMgYmVpbmcgYWRkIHRoZSBsaXN0ZW5lciB0byBhbnkga2V5ZG93bi9jbGljayBldmVudCBzbyB3aGVuIGFueSBrZXkgaXMgZG93bmVkIG9yIG1vdXNlIGNsaWNrZWQsIHdlIGNhbmNlbCB0aGUgbGFzdCByZXF1ZXN0LlxuICAgICAqIFdlIGRvIHRoaXMgdG8gbm90IHNob3cgdG8gdGhlIHVzZXIgYSBjb21wbGV0aW9uSXRlbSBpbiBhbiBpbmNvcnJlY3QgcGxhY2Ugb2YgdGV4dCwgdGhhdCBjYW4gYmUgZG9uZSBieSBlaXRoZXIgcHJlc3NpbmcgdGhlXG4gICAgICogYXJyb3dzLCBob21lLCBlbmQsIGJhY2tzcGFjZSBhbmQgZXRjLiBUaGUgZmxvdyBpczpcbiAgICAgKiAxLiBXZSBhZGQgYW4gZXZlbnRMaXN0ZW5lciB0byBrZXlkb3duL2NsaWNrIHdoZW4gdGhlIGF1dG9jb21wbGV0aW9uJ3MgcmVxdWVzdCBpcyB0cmlnZ2VyZWQ7XG4gICAgICogMi4gV2hlbiBhbnkga2V5L2NsaWNrIGlzIHByZXNzZWQsIHdlIHJlbW92ZSB0aGUgbGlzdGVuZXIgYW5kIGNhbmNlbCB0aGUgbGFzdCByZXF1ZXN0IGJ5IGNoYW5naW5nIHRoZSBpc1NlYXJjaENhbmNlbGVkIG9uIHRva2VuIG9iamVjdFxuICAgICAqICB0byB0cnVlO1xuICAgICAqIDMuIElmIGFueSBrZXkgdGhhdCByZXF1aXJlcyBhdXRvY29tcGxldGlvbiBpcyB0cmlnZ2VyZWQsIHRoZSBmbG93IHJlcGVhdHM7XG4gICAgICovXG4gICAgY29kZU1pcnJvclZpZXdFbGVtZW50ID0gQ29kZU1pcnJvcjZDb3JlLmdldEVkaXRvclZpZXcoKS5jb250ZW50RE9NO1xuXG4gICAgY2FuY2VsTGFzdENvbXBsZXRpb25TZWFyY2ggPSAoKSA9PiB7XG4gICAgICAgIGNvZGVNaXJyb3JWaWV3RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBjYW5jZWxMYXN0Q29tcGxldGlvblNlYXJjaCk7XG4gICAgICAgIGNvZGVNaXJyb3JWaWV3RWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgY2FuY2VsTGFzdENvbXBsZXRpb25TZWFyY2gpO1xuICAgICAgICB0b2tlbi5hYm9ydCgpO1xuICAgIH07XG5cbiAgICBjb2RlTWlycm9yVmlld0VsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcImtleWRvd25cIiwgY2FuY2VsTGFzdENvbXBsZXRpb25TZWFyY2gpO1xuICAgIGNvZGVNaXJyb3JWaWV3RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwiY2xpY2tcIiwgY2FuY2VsTGFzdENvbXBsZXRpb25TZWFyY2gpO1xufVxuXG4vKlxuICogUmVxdWVzdHMgdGhlIG5lY2Vzc2FyeSBpdGVtcyB0byBmaWxsIHRoZSBjb21wbGV0aW9uUmVzdWx0cywgYWx0aG91Z2ggaXQgb25seSByZWFsbHkgb3BlbnMgdGhlIGF1dG9jb21wbGV0ZVxuICogYm94IChieSBjYWxsaW5nIHRoZSBcInN0YXJ0Q29tcGxldGlvbigpXCIsIHRoYXQgY2FsbHMgdGhlIFwiZ2V0Q29tcGxldGlvblJlc3VsdHNcIikgaWYgdGhlIGN1cnJlbnQgc2VhcmNoIHdhcyBub3QgY2FuY2VsbGVkXG4gKiBieSBhIG5ldyBvbmVcbiAqL1xuYXN5bmMgZnVuY3Rpb24gc2VhcmNoQ29tcGxldGlvblJlc3VsdHMoY29udGV4dDogQ29tcGxldGlvbkNvbnRleHQsIHRva2VuOiBBYm9ydENvbnRyb2xsZXIpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBjb2RlQmVmb3JlQ3Vyc29yID0gY29udGV4dD8uc3RhdGU/LmRvYz8udG9TdHJpbmcoKS5zdWJzdHJpbmcoMCwgY29udGV4dD8ucG9zID8/IDApID8/IFwiXCI7XG4gICAgY29uc3QgZmlsdGVyID0gZ2V0RmlsdGVyKGNvZGVCZWZvcmVDdXJzb3IpO1xuICAgIGNvbnN0IHBhdGggPSBnZXRQYXRoKGNvZGVCZWZvcmVDdXJzb3IsIGZpbHRlci5sZW5ndGgpO1xuICAgIGNvbnN0IHJlcXVlc3RzOiBTYWZlUmVzcG9uc2VbXSA9IGdldFJlcXVlc3RzQmFzZWRPblBhdGgocGF0aCwgZmlsdGVyLCB0b2tlbi5zaWduYWwpO1xuXG4gICAgUHJvbWlzZVxuICAgICAgICAuYWxsKHJlcXVlc3RzKVxuICAgICAgICAudGhlbihyZXNwb25zZXMgPT4ge1xuICAgICAgICAgICAgaWYgKCF0b2tlbi5zaWduYWwuYWJvcnRlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRpb25zID0gW10uY29uY2F0KFxuICAgICAgICAgICAgICAgICAgICBnZXRLZXl3b3Jkc0NvbXBsZXRpb25zKHBhdGgpLFxuICAgICAgICAgICAgICAgICAgICBnZXRDb250ZXh0c0NvbXBsZXRpb25zKHJlc3BvbnNlcyksXG4gICAgICAgICAgICAgICAgICAgIGdldEV4cHJlc3Npb25zQ29tcGxldGlvbnMocmVzcG9uc2VzKSxcbiAgICAgICAgICAgICAgICAgICAgZ2V0RW50aXRpZXNDb21wbGV0aW9ucyhyZXNwb25zZXMpXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJlZENvbXBsZXRpb25zOiBDb21wbGV0aW9uW10gPSBnZXRGaWx0ZXJlZENvbXBsZXRpb25zKGNvbXBsZXRpb25zLCBmaWx0ZXIpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlcmVkQ29tcGxldGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZENvbXBsZXRpb25zOiBDb21wbGV0aW9uW10gPSBnZXRGb3JtYXR0ZWRDb21wbGV0aW9ucyhmaWx0ZXJlZENvbXBsZXRpb25zLCBmaWx0ZXIpO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzb3J0ZWRDb21wbGV0aW9uczogQ29tcGxldGlvbltdID0gZ2V0U29ydGVkQ29tcGxldGlvbnMoZm9ybWF0dGVkQ29tcGxldGlvbnMpO1xuXG4gICAgICAgICAgICAgICAgICAgIGNvbXBsZXRpb25SZXN1bHRzID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZnJvbTogY29udGV4dC5wb3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogc29ydGVkQ29tcGxldGlvbnNcbiAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICB1cGRhdGVDb3JlQ29tcGxldGlvbkl0ZW1zKHsgcGF0aCwgZmlsdGVyLCBjb21wbGV0aW9uczogc29ydGVkQ29tcGxldGlvbnMgfSk7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0Q29tcGxldGlvbihDb2RlTWlycm9yNkNvcmUuZ2V0RWRpdG9yVmlldygpKTtcblxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHNob3dBdXRvY29tcGxldGVFbXB0eVN0YXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xufVxuXG4vKlxuICogUmV0dXJucyB0aGUgZmlsdGVyIGluIHRoZSBjb2RlIHdyaXR0ZW4uXG4gKiBGb3IgZXhhbXBsZSBpbiB0aGUgY29kZSBcImNvbnRyb2xhZG9yaWEuZW1wcmVzYVwiLCBcImVtcHJlc2FcIiB3b3VsZCBiZSB0aGUgZmlsdGVyXG4gKiBhbmQgaW4gXCJjb250cm9sYWRvcmlhXCIsIFwiY29udHJvbGFkb3JpYVwiIHdvdWxkIGJlIHRoZSBmaWx0ZXIuXG4gKiBBbGxvd3Mgb25seSBhbHBoYW51bWVyaWNzLCB1bmRlcnNjb3JlIGFuZCBoYXNodGFnIG9uIGZpbHRlcidzIHN0YXJ0LlxuICogRG9lcyBub3QgYWxsb3cgc3BhY2VzXG4gKi9cbmZ1bmN0aW9uIGdldEZpbHRlcihzdHJpbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHN0cmluZyA9PT0gdW5kZWZpbmVkIHx8IHN0cmluZyA9PT0gbnVsbCkgcmV0dXJuIFwiXCI7XG5cbiAgICBjb25zdCBmaWx0ZXIgPSBzdHJpbmcubWF0Y2goLygjfFxcLnwpXFx3KiQvKT8uWzBdID8/IFwiXCI7XG4gICAgcmV0dXJuIGZpbHRlci5yZXBsYWNlKFwiLlwiLCBcIlwiKS50cmltKCk7XG59XG5cbi8qXG4gKiBSZXR1cm5zIHRoZSBwYXRoIGluIHRoZSBjb2RlIHdyaXR0ZW4gYmFzZWQgb24gZmlsdGVyLlxuICogRm9yIGV4YW1wbGUgaW4gdGhlIGNvZGUgXCJjb250cm9sYWRvcmlhLmVtcHJlc2FcIiwgXCJjb250cm9sYWRvcmlhXCIgd291bGQgYmUgdGhlIHBhdGhcbiAqIGFuZCBpbiBcImNvbnRyb2xhZG9yaWFcIiwgXCJcIiB3b3VsZCBiZSB0aGUgcGF0aC5cbiAqIERvZXMgbm90IGFsbG93IHNwYWNlc1xuICovXG5mdW5jdGlvbiBnZXRQYXRoKHN0cmluZzogc3RyaW5nLCBmaWx0ZXJMZW5ndGg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgaWYgKHN0cmluZyA9PT0gdW5kZWZpbmVkIHx8IHN0cmluZyA9PT0gbnVsbCkgcmV0dXJuIFwiXCI7XG5cbiAgICBjb25zdCBzdHJpbmdXaXRob3V0UGF0aCA9IHN0cmluZy5zdWJzdHJpbmcoMCwgc3RyaW5nLmxlbmd0aCAtIGZpbHRlckxlbmd0aCk7XG4gICAgY29uc3QgcGF0aCA9IHN0cmluZ1dpdGhvdXRQYXRoLm1hdGNoKC8oXFx3KlxcLikqJC8pPy5bMF0gPz8gXCJcIjtcbiAgICByZXR1cm4gcGF0aC5yZXBsYWNlKC9cXC4kLywgXCJcIik7XG59XG5cbmZ1bmN0aW9uIGdldFJlcXVlc3RzQmFzZWRPblBhdGgocGF0aDogc3RyaW5nLCBmaWx0ZXI6IHN0cmluZywgYWJvcnRTaWduYWw6IEFib3J0U2lnbmFsKTogU2FmZVJlc3BvbnNlW10ge1xuICAgIGNvbnN0IGxhbmd1YWdlQ29uZmlnczogVGF4Q2FsY3VsYXRpb25Db25maWdzID0gZ2V0TGFuZ3VhZ2VDb25maWdzKCk7XG4gICAgY29uc3QgcmVxdWVzdHM6IFNhZmVSZXF1ZXN0W10gPSBbXTtcblxuICAgIGlmIChwYXRoID09PSBcIlwiKSB7XG4gICAgICAgIHJlcXVlc3RzLnB1c2goe1xuICAgICAgICAgICAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlcy5MaXN0Q29udGV4dE1ldGFkYXRhQnlJZCxcbiAgICAgICAgICAgIHJlcXVlc3Q6IEF1dG9jb21wbGV0ZVNlcnZpY2UubGlzdENvbnRleHRNZXRhZGF0YUJ5SWQoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogbGFuZ3VhZ2VDb25maWdzLmNvbnRleHRzLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYWJvcnRTaWduYWxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSk7XG4gICAgICAgIHJlcXVlc3RzLnB1c2goe1xuICAgICAgICAgICAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlcy5MaXN0RXhwcmVzc2lvbk1ldGFkYXRhLFxuICAgICAgICAgICAgcmVxdWVzdDogQXV0b2NvbXBsZXRlU2VydmljZS5saXN0RXhwcmVzc2lvbk1ldGFkYXRhKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogbGFuZ3VhZ2VDb25maWdzLmNvbnRleHRzLFxuICAgICAgICAgICAgICAgICAgICBzdWJjb250ZXh0OiBsYW5ndWFnZUNvbmZpZ3Muc3ViQ29udGV4dHMgPz8gW10sXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgcGFnZVJlcXVlc3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDIwXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFib3J0U2lnbmFsXG4gICAgICAgICAgICApXG4gICAgICAgIH0pO1xuXG4gICAgfSBlbHNlIGlmIChwYXRoLmluY2x1ZGVzKFwiLlwiKSkge1xuICAgICAgICBjb25zdCBzcGxpdHRlZFBhdGggPSBwYXRoLnNwbGl0KFwiLlwiKTtcbiAgICAgICAgcmVxdWVzdHMucHVzaCh7XG4gICAgICAgICAgICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGVzLkdldEZhY2FkZU1ldGFkYXRhQnlQYXRoLFxuICAgICAgICAgICAgcmVxdWVzdDogQXV0b2NvbXBsZXRlU2VydmljZS5nZXRGYWNhZGVNZXRhZGF0YUJ5UGF0aChcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHNwbGl0dGVkUGF0aFswXSxcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5TmFtZTogc3BsaXR0ZWRQYXRoWzFdLFxuICAgICAgICAgICAgICAgICAgICBmaWVsZHM6IHNwbGl0dGVkUGF0aFsyXSA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogc3BsaXR0ZWRQYXRoLnNsaWNlKDIpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhYm9ydFNpZ25hbFxuICAgICAgICAgICAgKVxuICAgICAgICB9KTtcblxuICAgIH0gZWxzZSB7XG4gICAgICAgIHJlcXVlc3RzLnB1c2goe1xuICAgICAgICAgICAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlcy5MaXN0RmFjYWRlTWV0YWRhdGFOYW1lcyxcbiAgICAgICAgICAgIHJlcXVlc3Q6IEF1dG9jb21wbGV0ZVNlcnZpY2UubGlzdEZhY2FkZU1ldGFkYXRhTmFtZXMoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBbcGF0aF0sXG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgcGFnZVJlcXVlc3Q6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHNpemU6IDMwXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFib3J0U2lnbmFsXG4gICAgICAgICAgICApXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiByZXF1ZXN0cy5tYXAocmVxdWVzdCA9PiBnZXRTYWZlUmVzcG9uc2UocmVxdWVzdCkpO1xufVxuXG5mdW5jdGlvbiBnZXRLZXl3b3Jkc0NvbXBsZXRpb25zKHBhdGg6IHN0cmluZyk6IENvbXBsZXRpb25bXSB7XG4gICAgaWYgKHBhdGggIT09IFwiXCIpIHJldHVybiBbXTtcblxuICAgIGNvbnN0IGNvbXBsZXRpb25zID0gW1xuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogS2V5d29yZHMuU0UsXG4gICAgICAgICAgICBhcHBseTogXCJTRSAoKVxcbkVOVEFPXFxuXFx0YWNhb1xcbkZJTV9TRVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogS2V5d29yZHMuU0VOQU8sXG4gICAgICAgICAgICBhcHBseTogXCJTRU5BT1xcblxcdGFjYW9cIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IEtleXdvcmRzLkNPTlRFTkhBLFxuICAgICAgICAgICAgYXBwbHk6IFwiQ09OVEVOSEEoY29uZGljYW8pXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBLZXl3b3Jkcy5FTlRBTyxcbiAgICAgICAgICAgIGFwcGx5OiBcIkVOVEFPXFxuXFx0YWNhb1wiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogS2V5d29yZHMuRklNX1NFLFxuICAgICAgICAgICAgYXBwbHk6IFwiRklNX1NFIFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogS2V5d29yZHMuTkFPLFxuICAgICAgICAgICAgYXBwbHk6IFwiTkFPIFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogS2V5d29yZHMuRSxcbiAgICAgICAgICAgIGFwcGx5OiBcIkUgXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBLZXl3b3Jkcy5PVSxcbiAgICAgICAgICAgIGFwcGx5OiBcIk9VIFwiXG4gICAgICAgIH0sXG4gICAgXTtcblxuICAgIHJldHVybiBjb21wbGV0aW9ucy5tYXAoY29tcGxldGlvbkl0ZW0gPT4gKHtcbiAgICAgICAgLi4uY29tcGxldGlvbkl0ZW0sXG4gICAgICAgIGRldGFpbDogQ3VzdG9tVHJhbnNsYXRpb25zU2VydmljZS50cmFuc2xhdGUoYCR7VFJBTlNMQVRJT05fUFJFRklYfV9rZXl3b3JkYCksXG4gICAgICAgIHR5cGU6IENvbXBsZXRpb25UeXBlcy5LZXl3b3JkXG4gICAgfSkpO1xufVxuXG5mdW5jdGlvbiBnZXRDb250ZXh0c0NvbXBsZXRpb25zKHJlc3BvbnNlczogUmVzcG9uc2U8YW55PltdKTogQ29tcGxldGlvbltdIHtcbiAgICBjb25zdCBjb250ZXh0c1Jlc3BvbnNlOiBSZXNwb25zZTxMaXN0Q29udGV4dE1ldGFkYXRhQnlJZFJlc3BvbnNlPiA9IHJlc3BvbnNlcy5maW5kKHJlc3BvbnNlID0+XG4gICAgICAgIHJlc3BvbnNlPy5yZXF1ZXN0VHlwZSA9PT0gUmVxdWVzdFR5cGVzLkxpc3RDb250ZXh0TWV0YWRhdGFCeUlkXG4gICAgKTtcblxuICAgIGlmIChjb250ZXh0c1Jlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiAoY29udGV4dHNSZXNwb25zZS5yZXNwb25zZT8uY29udGV4dE1ldGFkYXRhID8/IFtdKVxuICAgICAgICAgICAgLm1hcChjb250ZXh0TWV0YWRhdGEgPT4gKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogY29udGV4dE1ldGFkYXRhLm5hbWUsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiBDdXN0b21UcmFuc2xhdGlvbnNTZXJ2aWNlLnRyYW5zbGF0ZShgJHtUUkFOU0xBVElPTl9QUkVGSVh9X2NvbnRleHRgKSxcbiAgICAgICAgICAgICAgICBhcHBseTogY29udGV4dE1ldGFkYXRhLm5hbWUsXG4gICAgICAgICAgICAgICAgdHlwZTogQ29tcGxldGlvblR5cGVzLkNvbnRleHRcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG59XG5cbmZ1bmN0aW9uIGdldEV4cHJlc3Npb25zQ29tcGxldGlvbnMocmVzcG9uc2VzOiBSZXNwb25zZTxhbnk+W10pOiBDb21wbGV0aW9uW10ge1xuICAgIGNvbnN0IGV4cHJlc3Npb25zUmVzcG9uc2U6IFJlc3BvbnNlPExpc3RFeHByZXNzaW9uTWV0YWRhdGFSZXNwb25zZT4gPSByZXNwb25zZXMuZmluZChyZXNwb25zZSA9PlxuICAgICAgICByZXNwb25zZT8ucmVxdWVzdFR5cGUgPT09IFJlcXVlc3RUeXBlcy5MaXN0RXhwcmVzc2lvbk1ldGFkYXRhXG4gICAgKTtcblxuICAgIGlmIChleHByZXNzaW9uc1Jlc3BvbnNlKSB7XG4gICAgICAgIHJldHVybiAoZXhwcmVzc2lvbnNSZXNwb25zZS5yZXNwb25zZT8uZXhwcmVzc2lvbk1ldGFkYXRhID8/IFtdKVxuICAgICAgICAgICAgLm1hcChleHByZXNzaW9uTWV0YWRhdGEgPT4gKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogZXhwcmVzc2lvbk1ldGFkYXRhLm5hbWUsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiBDdXN0b21UcmFuc2xhdGlvbnNTZXJ2aWNlLnRyYW5zbGF0ZShgJHtUUkFOU0xBVElPTl9QUkVGSVh9XyR7XG4gICAgICAgICAgICAgICAgICAgIGV4cHJlc3Npb25NZXRhZGF0YS50eXBlID09PSBNZXRhVHlwZS5QVUJMSUNfRVhQUkVTU0lPTlxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcInNlbmlvcl9leHByZXNzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJ1c2VyX2V4cHJlc3Npb25cIlxuICAgICAgICAgICAgICAgICAgICB9YCksXG4gICAgICAgICAgICAgICAgYXBwbHk6IGV4cHJlc3Npb25NZXRhZGF0YS5uYW1lLFxuICAgICAgICAgICAgICAgIGluZm86IGV4cHJlc3Npb25NZXRhZGF0YS5kZXNjcmlwdGlvbixcbiAgICAgICAgICAgICAgICB0eXBlOiBleHByZXNzaW9uTWV0YWRhdGEudHlwZSA9PT0gTWV0YVR5cGUuUFVCTElDX0VYUFJFU1NJT04gPyBDb21wbGV0aW9uVHlwZXMuRXhwcmVzc2lvbiA6IENvbXBsZXRpb25UeXBlcy5Vc2VyRXhwcmVzc2lvblxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHJldHVybiBbXTtcbn1cblxuZnVuY3Rpb24gZ2V0RW50aXRpZXNDb21wbGV0aW9ucyhyZXNwb25zZXM6IFJlc3BvbnNlPGFueT5bXSk6IENvbXBsZXRpb25bXSB7XG4gICAgY29uc3QgZmFjYWRlc1Jlc3BvbnNlRnJvbUxpc3Q6IFJlc3BvbnNlPExpc3RGYWNhZGVNZXRhZGF0YU5hbWVzUmVzcG9uc2U+ID0gcmVzcG9uc2VzLmZpbmQocmVzcG9uc2UgPT5cbiAgICAgICAgcmVzcG9uc2U/LnJlcXVlc3RUeXBlID09PSBSZXF1ZXN0VHlwZXMuTGlzdEZhY2FkZU1ldGFkYXRhTmFtZXNcbiAgICApO1xuXG4gICAgaWYgKGZhY2FkZXNSZXNwb25zZUZyb21MaXN0KSB7XG4gICAgICAgIHJldHVybiAoZmFjYWRlc1Jlc3BvbnNlRnJvbUxpc3QucmVzcG9uc2U/LmZhY2FkZU1ldGFkYXRhTmFtZXMgPz8gW10pXG4gICAgICAgICAgICAubWFwKGZhY2FkZSA9PiAoe1xuICAgICAgICAgICAgICAgIGxhYmVsOiBmYWNhZGUubmFtZSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IEN1c3RvbVRyYW5zbGF0aW9uc1NlcnZpY2UudHJhbnNsYXRlKGAke1RSQU5TTEFUSU9OX1BSRUZJWH1fZW50aXR5YCksXG4gICAgICAgICAgICAgICAgYXBwbHk6IGZhY2FkZS5uYW1lLFxuICAgICAgICAgICAgICAgIHR5cGU6IENvbXBsZXRpb25UeXBlcy5FbnRpdHlcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBjb25zdCBmYWNhZGVzUmVzcG9uc2VGcm9tR2V0OiBSZXNwb25zZTxHZXRGYWNhZGVNZXRhZGF0YUJ5UGF0aFJlc3BvbnNlPiA9IHJlc3BvbnNlcy5maW5kKHJlc3BvbnNlID0+XG4gICAgICAgIHJlc3BvbnNlPy5yZXF1ZXN0VHlwZSA9PT0gUmVxdWVzdFR5cGVzLkdldEZhY2FkZU1ldGFkYXRhQnlQYXRoXG4gICAgKTtcblxuICAgIGlmIChmYWNhZGVzUmVzcG9uc2VGcm9tR2V0KSB7XG4gICAgICAgIHJldHVybiAoZmFjYWRlc1Jlc3BvbnNlRnJvbUdldC5yZXNwb25zZT8uZmFjYWRlTWV0YWRhdGE/LmZpZWxkcyA/PyBbXSlcbiAgICAgICAgICAgIC5tYXAoZmFjYWRlID0+ICh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGZhY2FkZS5uYW1lLFxuICAgICAgICAgICAgICAgIGRldGFpbDogQ3VzdG9tVHJhbnNsYXRpb25zU2VydmljZS50cmFuc2xhdGUoYCR7VFJBTlNMQVRJT05fUFJFRklYfV8ke1xuICAgICAgICAgICAgICAgICAgICBmYWNhZGUudHlwZSA9PT0gTWV0YVR5cGUuRU5USVRZXG4gICAgICAgICAgICAgICAgICAgICAgICA/IFwiZW50aXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogXCJmaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgIH1gKSxcbiAgICAgICAgICAgICAgICBhcHBseTogZmFjYWRlLm5hbWUsXG4gICAgICAgICAgICAgICAgdHlwZTogZmFjYWRlLnR5cGUgPT09IE1ldGFUeXBlLkVOVElUWSA/IENvbXBsZXRpb25UeXBlcy5FbnRpdHkgOiBDb21wbGV0aW9uVHlwZXMuRmluYWxWYWx1ZVxuICAgICAgICAgICAgfSkpO1xuICAgIH1cblxuICAgIHJldHVybiBbXTtcbn1cblxuLypcbiAqIEZpbHRlcmluZyB0aGUgY29tcGxldGlvbnMgdG8gb25seSBkZWFsIHdpdGggdGhlIG5lY2Vzc2FyeSBpdGVtc1xuICovXG5mdW5jdGlvbiBnZXRGaWx0ZXJlZENvbXBsZXRpb25zKGNvbXBsZXRpb25zOiBDb21wbGV0aW9uW10sIGZpbHRlcjogc3RyaW5nKTogQ29tcGxldGlvbltdIHtcbiAgICByZXR1cm4gY29tcGxldGlvbnNcbiAgICAgICAgLmZpbHRlcihjb21wbGV0aW9uSXRlbSA9PlxuICAgICAgICAgICAgICAgIGNvbXBsZXRpb25JdGVtXG4gICAgICAgICAgICAgICAgICAgIC5sYWJlbFxuICAgICAgICAgICAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuICAgICAgICAgICAgICAgICAgICAuc3RhcnRzV2l0aChmaWx0ZXIudG9Mb3dlckNhc2UoKSkpO1xufVxuXG5cbi8qXG4gKiBPdmVyd3JpdGluZyB0aGUgY29tcGxldGlvbnMncyBhcHBseSB0byByZW1vdmUgdGhlIGVudGlyZSBjdXJyZW50IHdyaXR0ZW4gdmFsdWUgYW5kIGFwcGx5IHRoZSB0aGUgZW50aXJlIGNvbXBsZXRpb24ncyBhcHBseSBcbiAqL1xuZnVuY3Rpb24gZ2V0Rm9ybWF0dGVkQ29tcGxldGlvbnMoY29tcGxldGlvbnM6IENvbXBsZXRpb25bXSwgZmlsdGVyOiBzdHJpbmcpOiBDb21wbGV0aW9uW10ge1xuICAgIHJldHVybiBjb21wbGV0aW9uc1xuICAgICAgICAubWFwKGNvbXBsZXRpb25JdGVtID0+ICh7XG4gICAgICAgICAgICAuLi5jb21wbGV0aW9uSXRlbSxcbiAgICAgICAgICAgIGFwcGx5OiBnZXRDb21wbGV0aW9uQXBwbHkoZmlsdGVyLCBgJHtjb21wbGV0aW9uSXRlbS5hcHBseX1gKVxuICAgICAgICB9KSk7XG59XG5cbmZ1bmN0aW9uIGdldENvbXBsZXRpb25BcHBseShmaWx0ZXI6IHN0cmluZywgb2xkQXBwbHlUZXh0OiBzdHJpbmcpOiAoKHZpZXc6IEVkaXRvclZpZXcsIGNvbXBsZXRpb246IENvbXBsZXRpb24sIGZyb206IG51bWJlciwgdG86IG51bWJlcikgPT4gdm9pZCkgIHtcbiAgICByZXR1cm4gKHZpZXc6IEVkaXRvclZpZXcsIGNvbXBsZXRpb246IENvbXBsZXRpb24sIGZyb206IG51bWJlciwgdG86IG51bWJlcik6IHZvaWQgPT4ge1xuICAgICAgICBjb25zdCBuZXdGcm9tID0gZnJvbSAtIGZpbHRlci5sZW5ndGg7XG4gICAgXG4gICAgICAgIHZpZXcuZGlzcGF0Y2goe1xuICAgICAgICAgICAgY2hhbmdlczoge1xuICAgICAgICAgICAgICAgIGZyb206IG5ld0Zyb20sXG4gICAgICAgICAgICAgICAgdG8sXG4gICAgICAgICAgICAgICAgaW5zZXJ0OiBvbGRBcHBseVRleHRcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBzZWxlY3Rpb246IHtcbiAgICAgICAgICAgICAgICBhbmNob3I6IG5ld0Zyb20gKyBvbGRBcHBseVRleHQubGVuZ3RoXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgdXNlckV2ZW50OiBcImlucHV0LmNvbXBsZXRlXCIsXG4gICAgICAgICAgICBhbm5vdGF0aW9uczogcGlja2VkQ29tcGxldGlvbi5vZihjb21wbGV0aW9uKVxuICAgICAgICB9KTtcbiAgICB9IFxufVxuXG5jb25zdCBjb21wbGV0aW9uc1NvcnRPcmRlcjogQ29tcGxldGlvblR5cGVzW10gPSBbXG4gICAgQ29tcGxldGlvblR5cGVzLktleXdvcmQsXG4gICAgQ29tcGxldGlvblR5cGVzLkNvbnRleHQsXG4gICAgQ29tcGxldGlvblR5cGVzLlVzZXJFeHByZXNzaW9uLFxuICAgIENvbXBsZXRpb25UeXBlcy5FeHByZXNzaW9uLFxuICAgIENvbXBsZXRpb25UeXBlcy5FbnRpdHksXG4gICAgQ29tcGxldGlvblR5cGVzLkZpbmFsVmFsdWVcbl07XG5cbi8qXG4gKiBTb3J0cyB0aGUgY29tcGxldGlvbnMgZm9sbG93aW5nIHRoZSBcImNvbXBsZXRpb25zU29ydE9yZGVyXCIgcHJpb3JpdHkgb3JkZXJcbiAqL1xuZnVuY3Rpb24gZ2V0U29ydGVkQ29tcGxldGlvbnMoY29tcGxldGlvbnM6IENvbXBsZXRpb25bXSk6IENvbXBsZXRpb25bXSB7XG4gICAgcmV0dXJuIGNvbXBsZXRpb25zLnNvcnQoKHg6IENvbXBsZXRpb24sIHk6IENvbXBsZXRpb24pID0+IHtcbiAgICAgICAgY29uc3QgeFByaW9yaXR5ID0gY29tcGxldGlvbnNTb3J0T3JkZXIuaW5kZXhPZih4LnR5cGUgYXMgQ29tcGxldGlvblR5cGVzKTtcbiAgICAgICAgY29uc3QgeVByaW9yaXR5ID0gY29tcGxldGlvbnNTb3J0T3JkZXIuaW5kZXhPZih5LnR5cGUgYXMgQ29tcGxldGlvblR5cGVzKTtcblxuICAgICAgICByZXR1cm4geFByaW9yaXR5IC0geVByaW9yaXR5O1xuICAgIH0pO1xufVxuIl19
355
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29kZS1lZGl0b3IvaW5mcmEvY29yZXMvY29kZW1pcnJvci02L2xhbmd1YWdlcy90YXgtY2FsY3VsYXRpb24vZXh0ZW5zaW9ucy9hdXRvY29tcGxldGUvYXV0b2NvbXBsZXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFFQSxPQUFPLEVBQ0gsY0FBYyxFQUlkLGdCQUFnQixFQUNoQixlQUFlLEVBQ2xCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzdELE9BQU8sRUFDSCx3QkFBd0IsRUFDeEIsNEJBQTRCLEVBQzVCLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDN0IsTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBRUgsWUFBWSxFQUtaLGVBQWUsRUFFZixRQUFRLEVBR1IsUUFBUSxHQUNYLE1BQU0sY0FBYyxDQUFDO0FBQ3RCLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNsQixNQUFNLGFBQWEsQ0FBQztBQUNyQixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFN0M7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLFlBQVk7SUFDeEIsT0FBTztRQUNILGNBQWMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQztRQUNwRCx3QkFBd0IsRUFBRTtRQUMxQixzQkFBc0IsRUFBRTtRQUN4QixLQUFLLEVBQUU7S0FD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LFVBQUMsSUFBZ0IsRUFBRSxVQUFzQixFQUFFLElBQVksRUFBRSxFQUFVO1FBQ3RFLElBQU0sT0FBTyxHQUFHLElBQUksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBRXJDLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDVixPQUFPLEVBQUU7Z0JBQ0wsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsRUFBRSxJQUFBO2dCQUNGLE1BQU0sRUFBRSxZQUFZO2FBQ3ZCO1lBQ0QsU0FBUyxFQUFFO2dCQUNQLE1BQU0sRUFBRSxPQUFPLEdBQUcsWUFBWSxDQUFDLE1BQU07YUFDeEM7WUFDRCxTQUFTLEVBQUUsZ0JBQWdCO1lBQzNCLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDO1NBQy9DLENBQUMsQ0FBQztJQUNQLENBQUMsQ0FBQTtBQUNMLENBQUM7QUFFRCxJQUFNLG9CQUFvQixHQUFzQjtJQUM1QyxlQUFlLENBQUMsT0FBTztJQUN2QixlQUFlLENBQUMsT0FBTztJQUN2QixlQUFlLENBQUMsY0FBYztJQUM5QixlQUFlLENBQUMsVUFBVTtJQUMxQixlQUFlLENBQUMsTUFBTTtJQUN0QixlQUFlLENBQUMsVUFBVTtDQUM3QixDQUFDO0FBRUY7O0dBRUc7QUFDSCxTQUFTLG9CQUFvQixDQUFDLFdBQXlCO0lBQ25ELE9BQU8sV0FBVyxDQUFDLElBQUksQ0FBQyxVQUFDLENBQWEsRUFBRSxDQUFhO1FBQ2pELElBQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBdUIsQ0FBQyxDQUFDO1FBQzFFLElBQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBdUIsQ0FBQyxDQUFDO1FBRTFFLE9BQU8sU0FBUyxHQUFHLFNBQVMsQ0FBQztJQUNqQyxDQUFDLENBQUMsQ0FBQztBQUNQLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFeHRlbnNpb24gfSBmcm9tIFwiQGNvZGVtaXJyb3Ivc3RhdGVcIjtcbmltcG9ydCB7IEVkaXRvclZpZXcgfSBmcm9tIFwiQGNvZGVtaXJyb3Ivdmlld1wiO1xuaW1wb3J0IHtcbiAgICBhdXRvY29tcGxldGlvbixcbiAgICBDb21wbGV0aW9uLFxuICAgIENvbXBsZXRpb25Db250ZXh0LFxuICAgIENvbXBsZXRpb25SZXN1bHQsXG4gICAgcGlja2VkQ29tcGxldGlvbixcbiAgICBzdGFydENvbXBsZXRpb25cbn0gZnJvbSBcIkBjb2RlbWlycm9yL2F1dG9jb21wbGV0ZVwiO1xuXG5pbXBvcnQgeyBDdXN0b21UcmFuc2xhdGlvbnNTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL3V0aWxzXCI7XG5pbXBvcnQgeyBDb2RlTWlycm9yNkNvcmUgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY29kZW1pcnJvci02LWNvcmVcIjtcbmltcG9ydCB7IGlzQ3VycmVudFBvc2l0aW9uSW5zaWRlU3RyaW5nIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3V0aWxzXCI7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVTZXJ2aWNlIH0gZnJvbSBcIi4vYXV0b2NvbXBsZXRlLnNlcnZpY2VcIjtcbmltcG9ydCB7XG4gICAgYXV0b2NvbXBsZXRlTG9hZGluZ1N0YXRlLFxuICAgIHNob3dBdXRvY29tcGxldGVMb2FkaW5nU3RhdGUsXG4gICAgYXV0b2NvbXBsZXRlRW1wdHlTdGF0ZSxcbiAgICBzaG93QXV0b2NvbXBsZXRlRW1wdHlTdGF0ZVxufSBmcm9tIFwiLi9hdXRvY29tcGxldGUtc3RhdGVzXCI7XG5pbXBvcnQge1xuICAgIFRheENhbGN1bGF0aW9uQ29uZmlncyxcbiAgICBSZXF1ZXN0VHlwZXMsXG4gICAgUmVzcG9uc2UsXG4gICAgU2FmZVJlcXVlc3QsXG4gICAgU2FmZVJlc3BvbnNlLFxuICAgIExpc3RDb250ZXh0TWV0YWRhdGFCeUlkUmVzcG9uc2UsXG4gICAgQ29tcGxldGlvblR5cGVzLFxuICAgIExpc3RFeHByZXNzaW9uTWV0YWRhdGFSZXNwb25zZSxcbiAgICBNZXRhVHlwZSxcbiAgICBHZXRGYWNhZGVNZXRhZGF0YUJ5UGF0aFJlc3BvbnNlLFxuICAgIExpc3RGYWNhZGVNZXRhZGF0YU5hbWVzUmVzcG9uc2UsXG4gICAgS2V5d29yZHMsXG59IGZyb20gXCIuLi8uLi9tb2RlbHNcIjtcbmltcG9ydCB7XG4gICAgZ2V0TGFuZ3VhZ2VDb25maWdzLFxuICAgIGdldFNhZmVSZXNwb25zZVxufSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcbmltcG9ydCB7IHN0eWxlIH0gZnJvbSBcIi4vYXV0b2NvbXBsZXRlLXN0eWxlXCI7XG5cbi8qKlxuICogQWRkcyBhbiBhdXRvY29tcGxldGUgdG8gdGhlIGVkaXRvclxuICogQHJldHVybnMgQW4gZXh0ZW5zaW9uIGNvbnRhaW5pbmcgZXZlcnl0aGluZyBuZWVkZWQgdG8gY3JlYXRlIHRoZSBhdXRvY29tcGxldGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGF1dG9jb21wbGV0ZSAoKTogRXh0ZW5zaW9uIHtcbiAgICByZXR1cm4gW1xuICAgICAgICBhdXRvY29tcGxldGlvbih7IG92ZXJyaWRlOiBbZ2V0Q29tcGxldGlvblJlc3VsdHNdIH0pLFxuICAgICAgICBhdXRvY29tcGxldGVMb2FkaW5nU3RhdGUoKSxcbiAgICAgICAgYXV0b2NvbXBsZXRlRW1wdHlTdGF0ZSgpLFxuICAgICAgICBzdHlsZSgpLFxuICAgIF07XG59XG5cbmNvbnN0IFRSQU5TTEFUSU9OX1BSRUZJWCA9IFwiY29yZV9sYW5ndWFnZV90YXhfY2FsY3VsYXRpb25cIjtcbmxldCBjb21wbGV0aW9uUmVzdWx0cyE6IENvbXBsZXRpb25SZXN1bHQ7XG5cbi8qXG4gKiBBIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIGEga2V5IGlzIHByZXNzZWQsIHRoZSBjdHJsK3NwYWNlIGlzIHRyaWdnZXJlZCBvciB3aGVuIHRoZSBzZWFyY2ggZm9yIGNvbXBsZXRpb25SZXN1bHRzIGlzIGRvbmUuXG4gKiBJZiB0aGVyZSBpcyBhIGNvbXBsZXRpb25SZXN1bHQsIHJldHVybnMgaXQsIG90aGVyd2lzZSBzdGFydHMgYSBuZXcgYXN5bmMgc2VhcmNoLlxuICogV2lsbCBvbmx5IGV4ZWN1dGUgdGhlIGF1dG9jb21wbGV0aW9uIGlmIHRoZSBjdXJyZW50IGN1cnNvciBwb3NpdGlvbiBpcyBub3QgaW5zaWRlIGEgc3RyaW5nXG4gKi9cbmZ1bmN0aW9uIGdldENvbXBsZXRpb25SZXN1bHRzKGNvbnRleHQ6IENvbXBsZXRpb25Db250ZXh0KTogQ29tcGxldGlvblJlc3VsdCB7XG4gICAgY29uc3QgaXNDdXJzb3JJbnNpZGVTdHJpbmcgPSBpc0N1cnJlbnRQb3NpdGlvbkluc2lkZVN0cmluZyhjb250ZXh0LnN0YXRlLmRvYy50b1N0cmluZygpLnN1YnN0cmluZygwLCBjb250ZXh0LnBvcykpO1xuICAgIGlmIChpc0N1cnNvckluc2lkZVN0cmluZykgcmV0dXJuO1xuXG4gICAgaWYgKGNvbXBsZXRpb25SZXN1bHRzKSB7XG4gICAgICAgIGNvbnN0IGZpbmFsQ29tcGxldGlvblJlc3VsdHM6IENvbXBsZXRpb25SZXN1bHQgPSB7IC4uLmNvbXBsZXRpb25SZXN1bHRzIH07XG4gICAgICAgIGNvbnN0IGNvZGVMZW5ndGggPSBjb250ZXh0LnN0YXRlLmRvYy50b1N0cmluZygpLmxlbmd0aDtcbiAgICAgICAgZmluYWxDb21wbGV0aW9uUmVzdWx0cy5mcm9tID0gZmluYWxDb21wbGV0aW9uUmVzdWx0cy5mcm9tID4gY29kZUxlbmd0aFxuICAgICAgICAgICAgPyBjb2RlTGVuZ3RoXG4gICAgICAgICAgICA6IGZpbmFsQ29tcGxldGlvblJlc3VsdHMuZnJvbTtcbiAgICAgICAgY29tcGxldGlvblJlc3VsdHMgPSBudWxsO1xuICAgICAgICByZXR1cm4gZmluYWxDb21wbGV0aW9uUmVzdWx0cztcbiAgICB9XG4gICAgc3RhcnRDb21wbGV0aW9uUmVzdWx0c1NlYXJjaChjb250ZXh0KTtcbn1cblxubGV0IGNhbmNlbExhc3RDb21wbGV0aW9uU2VhcmNoOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5sZXQgY29kZU1pcnJvclZpZXdFbGVtZW50ITogSFRNTEVsZW1lbnQ7XG5cbi8qXG4gKiBTdGFydHMgYSBuZXcgY29tcGxldGlvblJlc3VsdHMncyBhc3luYyBzZWFyY2guXG4gKiBBdm9pZHMgdGhlIGxhc3Qgc2VhcmNoIHRvIGJlIGZpbmlzaGVkIGJ5IGNhbGxpbmcgdGhlIFwiY2FuY2VsTGFzdENvbXBsZXRpb25TZWFyY2hcIiBjYWxsYmFjayBmdW5jdGlvblxuICovXG5mdW5jdGlvbiBzdGFydENvbXBsZXRpb25SZXN1bHRzU2VhcmNoKGNvbnRleHQ6IENvbXBsZXRpb25Db250ZXh0KTogdm9pZCB7XG4gICAgY29uc3QgdG9rZW4gPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghdG9rZW4uc2lnbmFsLmFib3J0ZWQpIHtcbiAgICAgICAgICAgIHNob3dBdXRvY29tcGxldGVMb2FkaW5nU3RhdGUoKTtcbiAgICAgICAgICAgIHNlYXJjaENvbXBsZXRpb25SZXN1bHRzKGNvbnRleHQsIHRva2VuKTtcbiAgICAgICAgfVxuICAgIH0sIDUwMCk7XG5cbiAgICAvKlxuICAgICAqIElNUE9SVEFOVDogVGhlIGZvbGxvd2luZyBsaW5lcyBNVVNUIGJlIHRoZSB3YXkgdGhleSBhcmUhXG4gICAgICogSGVyZSBpcyBiZWluZyBhZGQgdGhlIGxpc3RlbmVyIHRvIGFueSBrZXlkb3duL2NsaWNrIGV2ZW50IHNvIHdoZW4gYW55IGtleSBpcyBkb3duZWQgb3IgbW91c2UgY2xpY2tlZCwgd2UgY2FuY2VsIHRoZSBsYXN0IHJlcXVlc3QuXG4gICAgICogV2UgZG8gdGhpcyB0byBub3Qgc2hvdyB0byB0aGUgdXNlciBhIGNvbXBsZXRpb25JdGVtIGluIGFuIGluY29ycmVjdCBwbGFjZSBvZiB0ZXh0LCB0aGF0IGNhbiBiZSBkb25lIGJ5IGVpdGhlciBwcmVzc2luZyB0aGVcbiAgICAgKiBhcnJvd3MsIGhvbWUsIGVuZCwgYmFja3NwYWNlIGFuZCBldGMuIFRoZSBmbG93IGlzOlxuICAgICAqIDEuIFdlIGFkZCBhbiBldmVudExpc3RlbmVyIHRvIGtleWRvd24vY2xpY2sgd2hlbiB0aGUgYXV0b2NvbXBsZXRpb24ncyByZXF1ZXN0IGlzIHRyaWdnZXJlZDtcbiAgICAgKiAyLiBXaGVuIGFueSBrZXkvY2xpY2sgaXMgcHJlc3NlZCwgd2UgcmVtb3ZlIHRoZSBsaXN0ZW5lciBhbmQgY2FuY2VsIHRoZSBsYXN0IHJlcXVlc3QgYnkgY2hhbmdpbmcgdGhlIGlzU2VhcmNoQ2FuY2VsZWQgb24gdG9rZW4gb2JqZWN0XG4gICAgICogIHRvIHRydWU7XG4gICAgICogMy4gSWYgYW55IGtleSB0aGF0IHJlcXVpcmVzIGF1dG9jb21wbGV0aW9uIGlzIHRyaWdnZXJlZCwgdGhlIGZsb3cgcmVwZWF0cztcbiAgICAgKi9cbiAgICBjb2RlTWlycm9yVmlld0VsZW1lbnQgPSBDb2RlTWlycm9yNkNvcmUuZ2V0RWRpdG9yVmlldygpLmNvbnRlbnRET007XG5cbiAgICBjYW5jZWxMYXN0Q29tcGxldGlvblNlYXJjaCA9ICgpID0+IHtcbiAgICAgICAgY29kZU1pcnJvclZpZXdFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJrZXlkb3duXCIsIGNhbmNlbExhc3RDb21wbGV0aW9uU2VhcmNoKTtcbiAgICAgICAgY29kZU1pcnJvclZpZXdFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjYW5jZWxMYXN0Q29tcGxldGlvblNlYXJjaCk7XG4gICAgICAgIHRva2VuLmFib3J0KCk7XG4gICAgfTtcblxuICAgIGNvZGVNaXJyb3JWaWV3RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFwia2V5ZG93blwiLCBjYW5jZWxMYXN0Q29tcGxldGlvblNlYXJjaCk7XG4gICAgY29kZU1pcnJvclZpZXdFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJjbGlja1wiLCBjYW5jZWxMYXN0Q29tcGxldGlvblNlYXJjaCk7XG59XG5cbi8qXG4gKiBSZXF1ZXN0cyB0aGUgbmVjZXNzYXJ5IGl0ZW1zIHRvIGZpbGwgdGhlIGNvbXBsZXRpb25SZXN1bHRzLCBhbHRob3VnaCBpdCBvbmx5IHJlYWxseSBvcGVucyB0aGUgYXV0b2NvbXBsZXRlXG4gKiBib3ggKGJ5IGNhbGxpbmcgdGhlIFwic3RhcnRDb21wbGV0aW9uKClcIiwgdGhhdCBjYWxscyB0aGUgXCJnZXRDb21wbGV0aW9uUmVzdWx0c1wiKSBpZiB0aGUgY3VycmVudCBzZWFyY2ggd2FzIG5vdCBjYW5jZWxsZWRcbiAqIGJ5IGEgbmV3IG9uZVxuICovXG5hc3luYyBmdW5jdGlvbiBzZWFyY2hDb21wbGV0aW9uUmVzdWx0cyhjb250ZXh0OiBDb21wbGV0aW9uQ29udGV4dCwgdG9rZW46IEFib3J0Q29udHJvbGxlcik6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IGNvZGVCZWZvcmVDdXJzb3IgPSBjb250ZXh0Py5zdGF0ZT8uZG9jPy50b1N0cmluZygpLnN1YnN0cmluZygwLCBjb250ZXh0Py5wb3MgPz8gMCkgPz8gXCJcIjtcbiAgICBjb25zdCBmaWx0ZXIgPSBnZXRGaWx0ZXIoY29kZUJlZm9yZUN1cnNvcik7XG4gICAgY29uc3QgcGF0aCA9IGdldFBhdGgoY29kZUJlZm9yZUN1cnNvciwgZmlsdGVyLmxlbmd0aCk7XG4gICAgY29uc3QgcmVxdWVzdHM6IFNhZmVSZXNwb25zZVtdID0gZ2V0UmVxdWVzdHNCYXNlZE9uUGF0aChwYXRoLCBmaWx0ZXIsIHRva2VuLnNpZ25hbCk7XG5cbiAgICBQcm9taXNlXG4gICAgICAgIC5hbGwocmVxdWVzdHMpXG4gICAgICAgIC50aGVuKHJlc3BvbnNlcyA9PiB7XG4gICAgICAgICAgICBpZiAoIXRva2VuLnNpZ25hbC5hYm9ydGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcGxldGlvbnMgPSBbXS5jb25jYXQoXG4gICAgICAgICAgICAgICAgICAgIGdldEtleXdvcmRzQ29tcGxldGlvbnMocGF0aCksXG4gICAgICAgICAgICAgICAgICAgIGdldENvbnRleHRzQ29tcGxldGlvbnMocmVzcG9uc2VzKSxcbiAgICAgICAgICAgICAgICAgICAgZ2V0RXhwcmVzc2lvbnNDb21wbGV0aW9ucyhyZXNwb25zZXMpLFxuICAgICAgICAgICAgICAgICAgICBnZXRFbnRpdGllc0NvbXBsZXRpb25zKHJlc3BvbnNlcylcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkQ29tcGxldGlvbnM6IENvbXBsZXRpb25bXSA9IGdldEZpbHRlcmVkQ29tcGxldGlvbnMoY29tcGxldGlvbnMsIGZpbHRlcik7XG5cbiAgICAgICAgICAgICAgICBpZiAoZmlsdGVyZWRDb21wbGV0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZm9ybWF0dGVkQ29tcGxldGlvbnM6IENvbXBsZXRpb25bXSA9IGdldEZvcm1hdHRlZENvbXBsZXRpb25zKGZpbHRlcmVkQ29tcGxldGlvbnMsIGZpbHRlcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHNvcnRlZENvbXBsZXRpb25zOiBDb21wbGV0aW9uW10gPSBnZXRTb3J0ZWRDb21wbGV0aW9ucyhmb3JtYXR0ZWRDb21wbGV0aW9ucyk7XG5cbiAgICAgICAgICAgICAgICAgICAgY29tcGxldGlvblJlc3VsdHMgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmcm9tOiBjb250ZXh0LnBvcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcjogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBzb3J0ZWRDb21wbGV0aW9uc1xuICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBzdGFydENvbXBsZXRpb24oQ29kZU1pcnJvcjZDb3JlLmdldEVkaXRvclZpZXcoKSk7XG5cbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzaG93QXV0b2NvbXBsZXRlRW1wdHlTdGF0ZSgpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbn1cblxuLypcbiAqIFJldHVybnMgdGhlIGZpbHRlciBpbiB0aGUgY29kZSB3cml0dGVuLlxuICogRm9yIGV4YW1wbGUgaW4gdGhlIGNvZGUgXCJjb250cm9sYWRvcmlhLmVtcHJlc2FcIiwgXCJlbXByZXNhXCIgd291bGQgYmUgdGhlIGZpbHRlclxuICogYW5kIGluIFwiY29udHJvbGFkb3JpYVwiLCBcImNvbnRyb2xhZG9yaWFcIiB3b3VsZCBiZSB0aGUgZmlsdGVyLlxuICogQWxsb3dzIG9ubHkgYWxwaGFudW1lcmljcywgdW5kZXJzY29yZSBhbmQgaGFzaHRhZyBvbiBmaWx0ZXIncyBzdGFydC5cbiAqIERvZXMgbm90IGFsbG93IHNwYWNlc1xuICovXG5mdW5jdGlvbiBnZXRGaWx0ZXIoc3RyaW5nOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChzdHJpbmcgPT09IHVuZGVmaW5lZCB8fCBzdHJpbmcgPT09IG51bGwpIHJldHVybiBcIlwiO1xuXG4gICAgY29uc3QgZmlsdGVyID0gc3RyaW5nLm1hdGNoKC8oI3xcXC58KVxcdyokLyk/LlswXSA/PyBcIlwiO1xuICAgIHJldHVybiBmaWx0ZXIucmVwbGFjZShcIi5cIiwgXCJcIikudHJpbSgpO1xufVxuXG4vKlxuICogUmV0dXJucyB0aGUgcGF0aCBpbiB0aGUgY29kZSB3cml0dGVuIGJhc2VkIG9uIGZpbHRlci5cbiAqIEZvciBleGFtcGxlIGluIHRoZSBjb2RlIFwiY29udHJvbGFkb3JpYS5lbXByZXNhXCIsIFwiY29udHJvbGFkb3JpYVwiIHdvdWxkIGJlIHRoZSBwYXRoXG4gKiBhbmQgaW4gXCJjb250cm9sYWRvcmlhXCIsIFwiXCIgd291bGQgYmUgdGhlIHBhdGguXG4gKiBEb2VzIG5vdCBhbGxvdyBzcGFjZXNcbiAqL1xuZnVuY3Rpb24gZ2V0UGF0aChzdHJpbmc6IHN0cmluZywgZmlsdGVyTGVuZ3RoOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGlmIChzdHJpbmcgPT09IHVuZGVmaW5lZCB8fCBzdHJpbmcgPT09IG51bGwpIHJldHVybiBcIlwiO1xuXG4gICAgY29uc3Qgc3RyaW5nV2l0aG91dFBhdGggPSBzdHJpbmcuc3Vic3RyaW5nKDAsIHN0cmluZy5sZW5ndGggLSBmaWx0ZXJMZW5ndGgpO1xuICAgIGNvbnN0IHBhdGggPSBzdHJpbmdXaXRob3V0UGF0aC5tYXRjaCgvKFxcdypcXC4pKiQvKT8uWzBdID8/IFwiXCI7XG4gICAgcmV0dXJuIHBhdGgucmVwbGFjZSgvXFwuJC8sIFwiXCIpO1xufVxuXG5mdW5jdGlvbiBnZXRSZXF1ZXN0c0Jhc2VkT25QYXRoKHBhdGg6IHN0cmluZywgZmlsdGVyOiBzdHJpbmcsIGFib3J0U2lnbmFsOiBBYm9ydFNpZ25hbCk6IFNhZmVSZXNwb25zZVtdIHtcbiAgICBjb25zdCBsYW5ndWFnZUNvbmZpZ3M6IFRheENhbGN1bGF0aW9uQ29uZmlncyA9IGdldExhbmd1YWdlQ29uZmlncygpO1xuICAgIGNvbnN0IHJlcXVlc3RzOiBTYWZlUmVxdWVzdFtdID0gW107XG5cbiAgICBpZiAocGF0aCA9PT0gXCJcIikge1xuICAgICAgICByZXF1ZXN0cy5wdXNoKHtcbiAgICAgICAgICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZXMuTGlzdENvbnRleHRNZXRhZGF0YUJ5SWQsXG4gICAgICAgICAgICByZXF1ZXN0OiBBdXRvY29tcGxldGVTZXJ2aWNlLmxpc3RDb250ZXh0TWV0YWRhdGFCeUlkKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IGxhbmd1YWdlQ29uZmlncy5jb250ZXh0cyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGFib3J0U2lnbmFsXG4gICAgICAgICAgICApXG4gICAgICAgIH0pO1xuICAgICAgICByZXF1ZXN0cy5wdXNoKHtcbiAgICAgICAgICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZXMuTGlzdEV4cHJlc3Npb25NZXRhZGF0YSxcbiAgICAgICAgICAgIHJlcXVlc3Q6IEF1dG9jb21wbGV0ZVNlcnZpY2UubGlzdEV4cHJlc3Npb25NZXRhZGF0YShcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IGxhbmd1YWdlQ29uZmlncy5jb250ZXh0cyxcbiAgICAgICAgICAgICAgICAgICAgc3ViY29udGV4dDogbGFuZ3VhZ2VDb25maWdzLnN1YkNvbnRleHRzID8/IFtdLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VSZXF1ZXN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAyMFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhYm9ydFNpZ25hbFxuICAgICAgICAgICAgKVxuICAgICAgICB9KTtcblxuICAgIH0gZWxzZSBpZiAocGF0aC5pbmNsdWRlcyhcIi5cIikpIHtcbiAgICAgICAgY29uc3Qgc3BsaXR0ZWRQYXRoID0gcGF0aC5zcGxpdChcIi5cIik7XG4gICAgICAgIHJlcXVlc3RzLnB1c2goe1xuICAgICAgICAgICAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlcy5HZXRGYWNhZGVNZXRhZGF0YUJ5UGF0aCxcbiAgICAgICAgICAgIHJlcXVlc3Q6IEF1dG9jb21wbGV0ZVNlcnZpY2UuZ2V0RmFjYWRlTWV0YWRhdGFCeVBhdGgoXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiBzcGxpdHRlZFBhdGhbMF0sXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eU5hbWU6IHNwbGl0dGVkUGF0aFsxXSxcbiAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBzcGxpdHRlZFBhdGhbMl0gPT09IHVuZGVmaW5lZCA/IHVuZGVmaW5lZCA6IHNwbGl0dGVkUGF0aC5zbGljZSgyKVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgYWJvcnRTaWduYWxcbiAgICAgICAgICAgIClcbiAgICAgICAgfSk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgICByZXF1ZXN0cy5wdXNoKHtcbiAgICAgICAgICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZXMuTGlzdEZhY2FkZU1ldGFkYXRhTmFtZXMsXG4gICAgICAgICAgICByZXF1ZXN0OiBBdXRvY29tcGxldGVTZXJ2aWNlLmxpc3RGYWNhZGVNZXRhZGF0YU5hbWVzKFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogW3BhdGhdLFxuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VSZXF1ZXN0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplOiAzMFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhYm9ydFNpZ25hbFxuICAgICAgICAgICAgKVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVxdWVzdHMubWFwKHJlcXVlc3QgPT4gZ2V0U2FmZVJlc3BvbnNlKHJlcXVlc3QpKTtcbn1cblxuZnVuY3Rpb24gZ2V0S2V5d29yZHNDb21wbGV0aW9ucyhwYXRoOiBzdHJpbmcpOiBDb21wbGV0aW9uW10ge1xuICAgIGlmIChwYXRoICE9PSBcIlwiKSByZXR1cm4gW107XG5cbiAgICBjb25zdCBjb21wbGV0aW9ucyA9IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IEtleXdvcmRzLlNFLFxuICAgICAgICAgICAgYXBwbHk6IFwiU0UgKClcXG5FTlRBT1xcblxcdGFjYW9cXG5GSU1fU0VcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IEtleXdvcmRzLlNFTkFPLFxuICAgICAgICAgICAgYXBwbHk6IFwiU0VOQU9cXG5cXHRhY2FvXCIsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiBLZXl3b3Jkcy5DT05URU5IQSxcbiAgICAgICAgICAgIGFwcGx5OiBcIkNPTlRFTkhBKGNvbmRpY2FvKVwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogS2V5d29yZHMuRU5UQU8sXG4gICAgICAgICAgICBhcHBseTogXCJFTlRBT1xcblxcdGFjYW9cIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IEtleXdvcmRzLkZJTV9TRSxcbiAgICAgICAgICAgIGFwcGx5OiBcIkZJTV9TRSBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IEtleXdvcmRzLk5BTyxcbiAgICAgICAgICAgIGFwcGx5OiBcIk5BTyBcIixcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6IEtleXdvcmRzLkUsXG4gICAgICAgICAgICBhcHBseTogXCJFIFwiLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogS2V5d29yZHMuT1UsXG4gICAgICAgICAgICBhcHBseTogXCJPVSBcIlxuICAgICAgICB9LFxuICAgIF07XG5cbiAgICByZXR1cm4gY29tcGxldGlvbnMubWFwKGNvbXBsZXRpb25JdGVtID0+ICh7XG4gICAgICAgIC4uLmNvbXBsZXRpb25JdGVtLFxuICAgICAgICBkZXRhaWw6IEN1c3RvbVRyYW5zbGF0aW9uc1NlcnZpY2UudHJhbnNsYXRlKGAke1RSQU5TTEFUSU9OX1BSRUZJWH1fa2V5d29yZGApLFxuICAgICAgICB0eXBlOiBDb21wbGV0aW9uVHlwZXMuS2V5d29yZFxuICAgIH0pKTtcbn1cblxuZnVuY3Rpb24gZ2V0Q29udGV4dHNDb21wbGV0aW9ucyhyZXNwb25zZXM6IFJlc3BvbnNlPGFueT5bXSk6IENvbXBsZXRpb25bXSB7XG4gICAgY29uc3QgY29udGV4dHNSZXNwb25zZTogUmVzcG9uc2U8TGlzdENvbnRleHRNZXRhZGF0YUJ5SWRSZXNwb25zZT4gPSByZXNwb25zZXMuZmluZChyZXNwb25zZSA9PlxuICAgICAgICByZXNwb25zZT8ucmVxdWVzdFR5cGUgPT09IFJlcXVlc3RUeXBlcy5MaXN0Q29udGV4dE1ldGFkYXRhQnlJZFxuICAgICk7XG5cbiAgICBpZiAoY29udGV4dHNSZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gKGNvbnRleHRzUmVzcG9uc2UucmVzcG9uc2U/LmNvbnRleHRNZXRhZGF0YSA/PyBbXSlcbiAgICAgICAgICAgIC5tYXAoY29udGV4dE1ldGFkYXRhID0+ICh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGNvbnRleHRNZXRhZGF0YS5uYW1lLFxuICAgICAgICAgICAgICAgIGRldGFpbDogQ3VzdG9tVHJhbnNsYXRpb25zU2VydmljZS50cmFuc2xhdGUoYCR7VFJBTlNMQVRJT05fUFJFRklYfV9jb250ZXh0YCksXG4gICAgICAgICAgICAgICAgYXBwbHk6IGNvbnRleHRNZXRhZGF0YS5uYW1lLFxuICAgICAgICAgICAgICAgIHR5cGU6IENvbXBsZXRpb25UeXBlcy5Db250ZXh0XG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIFtdO1xufVxuXG5mdW5jdGlvbiBnZXRFeHByZXNzaW9uc0NvbXBsZXRpb25zKHJlc3BvbnNlczogUmVzcG9uc2U8YW55PltdKTogQ29tcGxldGlvbltdIHtcbiAgICBjb25zdCBleHByZXNzaW9uc1Jlc3BvbnNlOiBSZXNwb25zZTxMaXN0RXhwcmVzc2lvbk1ldGFkYXRhUmVzcG9uc2U+ID0gcmVzcG9uc2VzLmZpbmQocmVzcG9uc2UgPT5cbiAgICAgICAgcmVzcG9uc2U/LnJlcXVlc3RUeXBlID09PSBSZXF1ZXN0VHlwZXMuTGlzdEV4cHJlc3Npb25NZXRhZGF0YVxuICAgICk7XG5cbiAgICBpZiAoZXhwcmVzc2lvbnNSZXNwb25zZSkge1xuICAgICAgICByZXR1cm4gKGV4cHJlc3Npb25zUmVzcG9uc2UucmVzcG9uc2U/LmV4cHJlc3Npb25NZXRhZGF0YSA/PyBbXSlcbiAgICAgICAgICAgIC5tYXAoZXhwcmVzc2lvbk1ldGFkYXRhID0+ICh7XG4gICAgICAgICAgICAgICAgbGFiZWw6IGV4cHJlc3Npb25NZXRhZGF0YS5uYW1lLFxuICAgICAgICAgICAgICAgIGRldGFpbDogQ3VzdG9tVHJhbnNsYXRpb25zU2VydmljZS50cmFuc2xhdGUoYCR7VFJBTlNMQVRJT05fUFJFRklYfV8ke1xuICAgICAgICAgICAgICAgICAgICBleHByZXNzaW9uTWV0YWRhdGEudHlwZSA9PT0gTWV0YVR5cGUuUFVCTElDX0VYUFJFU1NJT05cbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJzZW5pb3JfZXhwcmVzc2lvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwidXNlcl9leHByZXNzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgfWApLFxuICAgICAgICAgICAgICAgIGFwcGx5OiBleHByZXNzaW9uTWV0YWRhdGEubmFtZSxcbiAgICAgICAgICAgICAgICBpbmZvOiBleHByZXNzaW9uTWV0YWRhdGEuZGVzY3JpcHRpb24sXG4gICAgICAgICAgICAgICAgdHlwZTogZXhwcmVzc2lvbk1ldGFkYXRhLnR5cGUgPT09IE1ldGFUeXBlLlBVQkxJQ19FWFBSRVNTSU9OID8gQ29tcGxldGlvblR5cGVzLkV4cHJlc3Npb24gOiBDb21wbGV0aW9uVHlwZXMuVXNlckV4cHJlc3Npb25cbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG59XG5cbmZ1bmN0aW9uIGdldEVudGl0aWVzQ29tcGxldGlvbnMocmVzcG9uc2VzOiBSZXNwb25zZTxhbnk+W10pOiBDb21wbGV0aW9uW10ge1xuICAgIGNvbnN0IGZhY2FkZXNSZXNwb25zZUZyb21MaXN0OiBSZXNwb25zZTxMaXN0RmFjYWRlTWV0YWRhdGFOYW1lc1Jlc3BvbnNlPiA9IHJlc3BvbnNlcy5maW5kKHJlc3BvbnNlID0+XG4gICAgICAgIHJlc3BvbnNlPy5yZXF1ZXN0VHlwZSA9PT0gUmVxdWVzdFR5cGVzLkxpc3RGYWNhZGVNZXRhZGF0YU5hbWVzXG4gICAgKTtcblxuICAgIGlmIChmYWNhZGVzUmVzcG9uc2VGcm9tTGlzdCkge1xuICAgICAgICByZXR1cm4gKGZhY2FkZXNSZXNwb25zZUZyb21MaXN0LnJlc3BvbnNlPy5mYWNhZGVNZXRhZGF0YU5hbWVzID8/IFtdKVxuICAgICAgICAgICAgLm1hcChmYWNhZGUgPT4gKHtcbiAgICAgICAgICAgICAgICBsYWJlbDogZmFjYWRlLm5hbWUsXG4gICAgICAgICAgICAgICAgZGV0YWlsOiBDdXN0b21UcmFuc2xhdGlvbnNTZXJ2aWNlLnRyYW5zbGF0ZShgJHtUUkFOU0xBVElPTl9QUkVGSVh9X2VudGl0eWApLFxuICAgICAgICAgICAgICAgIGFwcGx5OiBmYWNhZGUubmFtZSxcbiAgICAgICAgICAgICAgICB0eXBlOiBDb21wbGV0aW9uVHlwZXMuRW50aXR5XG4gICAgICAgICAgICB9KSk7XG4gICAgfVxuXG4gICAgY29uc3QgZmFjYWRlc1Jlc3BvbnNlRnJvbUdldDogUmVzcG9uc2U8R2V0RmFjYWRlTWV0YWRhdGFCeVBhdGhSZXNwb25zZT4gPSByZXNwb25zZXMuZmluZChyZXNwb25zZSA9PlxuICAgICAgICByZXNwb25zZT8ucmVxdWVzdFR5cGUgPT09IFJlcXVlc3RUeXBlcy5HZXRGYWNhZGVNZXRhZGF0YUJ5UGF0aFxuICAgICk7XG5cbiAgICBpZiAoZmFjYWRlc1Jlc3BvbnNlRnJvbUdldCkge1xuICAgICAgICByZXR1cm4gKGZhY2FkZXNSZXNwb25zZUZyb21HZXQucmVzcG9uc2U/LmZhY2FkZU1ldGFkYXRhPy5maWVsZHMgPz8gW10pXG4gICAgICAgICAgICAubWFwKGZhY2FkZSA9PiAoe1xuICAgICAgICAgICAgICAgIGxhYmVsOiBmYWNhZGUubmFtZSxcbiAgICAgICAgICAgICAgICBkZXRhaWw6IEN1c3RvbVRyYW5zbGF0aW9uc1NlcnZpY2UudHJhbnNsYXRlKGAke1RSQU5TTEFUSU9OX1BSRUZJWH1fJHtcbiAgICAgICAgICAgICAgICAgICAgZmFjYWRlLnR5cGUgPT09IE1ldGFUeXBlLkVOVElUWVxuICAgICAgICAgICAgICAgICAgICAgICAgPyBcImVudGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IFwiZmllbGRcIlxuICAgICAgICAgICAgICAgICAgICB9YCksXG4gICAgICAgICAgICAgICAgYXBwbHk6IGZhY2FkZS5uYW1lLFxuICAgICAgICAgICAgICAgIHR5cGU6IGZhY2FkZS50eXBlID09PSBNZXRhVHlwZS5FTlRJVFkgPyBDb21wbGV0aW9uVHlwZXMuRW50aXR5IDogQ29tcGxldGlvblR5cGVzLkZpbmFsVmFsdWVcbiAgICAgICAgICAgIH0pKTtcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG59XG5cbi8qXG4gKiBGaWx0ZXJpbmcgdGhlIGNvbXBsZXRpb25zIHRvIG9ubHkgZGVhbCB3aXRoIHRoZSBuZWNlc3NhcnkgaXRlbXNcbiAqL1xuZnVuY3Rpb24gZ2V0RmlsdGVyZWRDb21wbGV0aW9ucyhjb21wbGV0aW9uczogQ29tcGxldGlvbltdLCBmaWx0ZXI6IHN0cmluZyk6IENvbXBsZXRpb25bXSB7XG4gICAgcmV0dXJuIGNvbXBsZXRpb25zXG4gICAgICAgIC5maWx0ZXIoY29tcGxldGlvbkl0ZW0gPT5cbiAgICAgICAgICAgICAgICBjb21wbGV0aW9uSXRlbVxuICAgICAgICAgICAgICAgICAgICAubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgLnRvTG93ZXJDYXNlKClcbiAgICAgICAgICAgICAgICAgICAgLnN0YXJ0c1dpdGgoZmlsdGVyLnRvTG93ZXJDYXNlKCkpKTtcbn1cblxuXG4vKlxuICogT3ZlcndyaXRpbmcgdGhlIGNvbXBsZXRpb25zJ3MgYXBwbHkgdG8gcmVtb3ZlIHRoZSBlbnRpcmUgY3VycmVudCB3cml0dGVuIHZhbHVlIGFuZCBhcHBseSB0aGUgdGhlIGVudGlyZSBjb21wbGV0aW9uJ3MgYXBwbHkgXG4gKi9cbmZ1bmN0aW9uIGdldEZvcm1hdHRlZENvbXBsZXRpb25zKGNvbXBsZXRpb25zOiBDb21wbGV0aW9uW10sIGZpbHRlcjogc3RyaW5nKTogQ29tcGxldGlvbltdIHtcbiAgICByZXR1cm4gY29tcGxldGlvbnNcbiAgICAgICAgLm1hcChjb21wbGV0aW9uSXRlbSA9PiAoe1xuICAgICAgICAgICAgLi4uY29tcGxldGlvbkl0ZW0sXG4gICAgICAgICAgICBhcHBseTogZ2V0Q29tcGxldGlvbkFwcGx5KGZpbHRlciwgYCR7Y29tcGxldGlvbkl0ZW0uYXBwbHl9YClcbiAgICAgICAgfSkpO1xufVxuXG5mdW5jdGlvbiBnZXRDb21wbGV0aW9uQXBwbHkoZmlsdGVyOiBzdHJpbmcsIG9sZEFwcGx5VGV4dDogc3RyaW5nKTogKCh2aWV3OiBFZGl0b3JWaWV3LCBjb21wbGV0aW9uOiBDb21wbGV0aW9uLCBmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpID0+IHZvaWQpICB7XG4gICAgcmV0dXJuICh2aWV3OiBFZGl0b3JWaWV3LCBjb21wbGV0aW9uOiBDb21wbGV0aW9uLCBmcm9tOiBudW1iZXIsIHRvOiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgICAgY29uc3QgbmV3RnJvbSA9IGZyb20gLSBmaWx0ZXIubGVuZ3RoO1xuICAgIFxuICAgICAgICB2aWV3LmRpc3BhdGNoKHtcbiAgICAgICAgICAgIGNoYW5nZXM6IHtcbiAgICAgICAgICAgICAgICBmcm9tOiBuZXdGcm9tLFxuICAgICAgICAgICAgICAgIHRvLFxuICAgICAgICAgICAgICAgIGluc2VydDogb2xkQXBwbHlUZXh0XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgc2VsZWN0aW9uOiB7XG4gICAgICAgICAgICAgICAgYW5jaG9yOiBuZXdGcm9tICsgb2xkQXBwbHlUZXh0Lmxlbmd0aFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHVzZXJFdmVudDogXCJpbnB1dC5jb21wbGV0ZVwiLFxuICAgICAgICAgICAgYW5ub3RhdGlvbnM6IHBpY2tlZENvbXBsZXRpb24ub2YoY29tcGxldGlvbilcbiAgICAgICAgfSk7XG4gICAgfSBcbn1cblxuY29uc3QgY29tcGxldGlvbnNTb3J0T3JkZXI6IENvbXBsZXRpb25UeXBlc1tdID0gW1xuICAgIENvbXBsZXRpb25UeXBlcy5LZXl3b3JkLFxuICAgIENvbXBsZXRpb25UeXBlcy5Db250ZXh0LFxuICAgIENvbXBsZXRpb25UeXBlcy5Vc2VyRXhwcmVzc2lvbixcbiAgICBDb21wbGV0aW9uVHlwZXMuRXhwcmVzc2lvbixcbiAgICBDb21wbGV0aW9uVHlwZXMuRW50aXR5LFxuICAgIENvbXBsZXRpb25UeXBlcy5GaW5hbFZhbHVlXG5dO1xuXG4vKlxuICogU29ydHMgdGhlIGNvbXBsZXRpb25zIGZvbGxvd2luZyB0aGUgXCJjb21wbGV0aW9uc1NvcnRPcmRlclwiIHByaW9yaXR5IG9yZGVyXG4gKi9cbmZ1bmN0aW9uIGdldFNvcnRlZENvbXBsZXRpb25zKGNvbXBsZXRpb25zOiBDb21wbGV0aW9uW10pOiBDb21wbGV0aW9uW10ge1xuICAgIHJldHVybiBjb21wbGV0aW9ucy5zb3J0KCh4OiBDb21wbGV0aW9uLCB5OiBDb21wbGV0aW9uKSA9PiB7XG4gICAgICAgIGNvbnN0IHhQcmlvcml0eSA9IGNvbXBsZXRpb25zU29ydE9yZGVyLmluZGV4T2YoeC50eXBlIGFzIENvbXBsZXRpb25UeXBlcyk7XG4gICAgICAgIGNvbnN0IHlQcmlvcml0eSA9IGNvbXBsZXRpb25zU29ydE9yZGVyLmluZGV4T2YoeS50eXBlIGFzIENvbXBsZXRpb25UeXBlcyk7XG5cbiAgICAgICAgcmV0dXJuIHhQcmlvcml0eSAtIHlQcmlvcml0eTtcbiAgICB9KTtcbn1cbiJdfQ==
@@ -1,11 +1,9 @@
1
1
  import { LanguageSupport } from "@codemirror/language";
2
2
  import { baseConfigs } from "./extensions/base-configs/base-configs";
3
3
  import { autocomplete } from "./extensions/autocomplete/autocomplete";
4
- import { onPasteCompletionItemsUpdater } from "./extensions/on-paste-completion-items-updater/on-paste-completion-items-updater";
5
4
  export function TaxCalculation() {
6
5
  return new LanguageSupport(baseConfigs, [
7
6
  autocomplete(),
8
- onPasteCompletionItemsUpdater(),
9
7
  ]);
10
8
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LWNhbGN1bGF0aW9uLmxhbmd1YWdlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29kZS1lZGl0b3IvaW5mcmEvY29yZXMvY29kZW1pcnJvci02L2xhbmd1YWdlcy90YXgtY2FsY3VsYXRpb24vdGF4LWNhbGN1bGF0aW9uLmxhbmd1YWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLGtGQUFrRixDQUFDO0FBRWpJLE1BQU0sVUFBVSxjQUFjO0lBQzFCLE9BQU8sSUFBSSxlQUFlLENBQ3RCLFdBQVcsRUFDWDtRQUNJLFlBQVksRUFBRTtRQUNkLDZCQUE2QixFQUFFO0tBQ2xDLENBQ0osQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMYW5ndWFnZVN1cHBvcnQgfSBmcm9tIFwiQGNvZGVtaXJyb3IvbGFuZ3VhZ2VcIjtcblxuaW1wb3J0IHsgYmFzZUNvbmZpZ3MgfSBmcm9tIFwiLi9leHRlbnNpb25zL2Jhc2UtY29uZmlncy9iYXNlLWNvbmZpZ3NcIjtcbmltcG9ydCB7IGF1dG9jb21wbGV0ZSB9IGZyb20gXCIuL2V4dGVuc2lvbnMvYXV0b2NvbXBsZXRlL2F1dG9jb21wbGV0ZVwiO1xuaW1wb3J0IHsgb25QYXN0ZUNvbXBsZXRpb25JdGVtc1VwZGF0ZXIgfSBmcm9tIFwiLi9leHRlbnNpb25zL29uLXBhc3RlLWNvbXBsZXRpb24taXRlbXMtdXBkYXRlci9vbi1wYXN0ZS1jb21wbGV0aW9uLWl0ZW1zLXVwZGF0ZXJcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIFRheENhbGN1bGF0aW9uKCk6IExhbmd1YWdlU3VwcG9ydCB7XG4gICAgcmV0dXJuIG5ldyBMYW5ndWFnZVN1cHBvcnQoXG4gICAgICAgIGJhc2VDb25maWdzLFxuICAgICAgICBbXG4gICAgICAgICAgICBhdXRvY29tcGxldGUoKSxcbiAgICAgICAgICAgIG9uUGFzdGVDb21wbGV0aW9uSXRlbXNVcGRhdGVyKCksXG4gICAgICAgIF1cbiAgICApO1xufVxuIl19
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGF4LWNhbGN1bGF0aW9uLmxhbmd1YWdlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29kZS1lZGl0b3IvaW5mcmEvY29yZXMvY29kZW1pcnJvci02L2xhbmd1YWdlcy90YXgtY2FsY3VsYXRpb24vdGF4LWNhbGN1bGF0aW9uLmxhbmd1YWdlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDckUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXRFLE1BQU0sVUFBVSxjQUFjO0lBQzFCLE9BQU8sSUFBSSxlQUFlLENBQ3RCLFdBQVcsRUFDWDtRQUNJLFlBQVksRUFBRTtLQUNqQixDQUNKLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTGFuZ3VhZ2VTdXBwb3J0IH0gZnJvbSBcIkBjb2RlbWlycm9yL2xhbmd1YWdlXCI7XG5cbmltcG9ydCB7IGJhc2VDb25maWdzIH0gZnJvbSBcIi4vZXh0ZW5zaW9ucy9iYXNlLWNvbmZpZ3MvYmFzZS1jb25maWdzXCI7XG5pbXBvcnQgeyBhdXRvY29tcGxldGUgfSBmcm9tIFwiLi9leHRlbnNpb25zL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGVcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIFRheENhbGN1bGF0aW9uKCk6IExhbmd1YWdlU3VwcG9ydCB7XG4gICAgcmV0dXJuIG5ldyBMYW5ndWFnZVN1cHBvcnQoXG4gICAgICAgIGJhc2VDb25maWdzLFxuICAgICAgICBbXG4gICAgICAgICAgICBhdXRvY29tcGxldGUoKSxcbiAgICAgICAgXVxuICAgICk7XG59XG4iXX0=
@@ -1,4 +1,3 @@
1
1
  export * from "./get-language-configs";
2
2
  export * from "./get-safe-response";
3
- export * from "./update-core-completion-items";
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9jb3Jlcy9jb2RlbWlycm9yLTYvbGFuZ3VhZ2VzL3RheC1jYWxjdWxhdGlvbi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxnQ0FBZ0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2dldC1sYW5ndWFnZS1jb25maWdzXCI7XG5leHBvcnQgKiBmcm9tIFwiLi9nZXQtc2FmZS1yZXNwb25zZVwiO1xuZXhwb3J0ICogZnJvbSBcIi4vdXBkYXRlLWNvcmUtY29tcGxldGlvbi1pdGVtc1wiO1xuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS9jb3Jlcy9jb2RlbWlycm9yLTYvbGFuZ3VhZ2VzL3RheC1jYWxjdWxhdGlvbi91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9nZXQtbGFuZ3VhZ2UtY29uZmlnc1wiO1xuZXhwb3J0ICogZnJvbSBcIi4vZ2V0LXNhZmUtcmVzcG9uc2VcIjtcbiJdfQ==
@@ -5,12 +5,15 @@ var EditorThemes = /** @class */ (function () {
5
5
  function EditorThemes() {
6
6
  }
7
7
  EditorThemes.getTheme = function (theme) {
8
- return EditorThemes._THEMES.get(theme) || [];
8
+ var EditorThemeFactory = EditorThemes._THEMES.get(theme);
9
+ if (EditorThemeFactory)
10
+ return EditorThemeFactory();
11
+ return [];
9
12
  };
10
13
  EditorThemes._THEMES = new Map([
11
- [Themes.SDSLight, SDSLight()]
14
+ [Themes.SDSLight, SDSLight]
12
15
  ]);
13
16
  return EditorThemes;
14
17
  }());
15
18
  export { EditorThemes };
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXRoZW1lcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2NvcmVzL2NvZGVtaXJyb3ItNi90aGVtZXMvZWRpdG9yLXRoZW1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHNUMsWUFBWTtBQUNaLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUV2RDtJQUFBO0lBU0EsQ0FBQztJQUhpQixxQkFBUSxHQUF0QixVQUF1QixLQUFhO1FBQ2hDLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLElBQUksRUFBNEIsQ0FBQztJQUMzRSxDQUFDO0lBTmMsb0JBQU8sR0FBNkIsSUFBSSxHQUFHLENBQUM7UUFDdkQsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDO0tBQ2hDLENBQUMsQ0FBQztJQUtQLG1CQUFDO0NBQUEsQUFURCxJQVNDO1NBVFksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoZW1lcyB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbHNcIjtcbmltcG9ydCB7IEVkaXRvclRoZW1lIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xuXG4vKiBUaGVtZXMgKi9cbmltcG9ydCB7IFNEU0xpZ2h0IH0gZnJvbSBcIi4vc2RzLWxpZ2h0L3Nkcy1saWdodC10aGVtZVwiO1xuXG5leHBvcnQgY2xhc3MgRWRpdG9yVGhlbWVzIHtcblxuICAgIHByaXZhdGUgc3RhdGljIF9USEVNRVM6IE1hcDxUaGVtZXMsIEVkaXRvclRoZW1lPiA9IG5ldyBNYXAoW1xuICAgICAgICBbVGhlbWVzLlNEU0xpZ2h0LCBTRFNMaWdodCgpXVxuICAgIF0pO1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXRUaGVtZSh0aGVtZTogVGhlbWVzKTogRWRpdG9yVGhlbWUge1xuICAgICAgICByZXR1cm4gRWRpdG9yVGhlbWVzLl9USEVNRVMuZ2V0KHRoZW1lKSB8fCBbXSBhcyB1bmtub3duIGFzIEVkaXRvclRoZW1lO1xuICAgIH1cbn1cbiJdfQ==
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLXRoZW1lcy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2NvcmVzL2NvZGVtaXJyb3ItNi90aGVtZXMvZWRpdG9yLXRoZW1lcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHNUMsWUFBWTtBQUNaLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUl2RDtJQUFBO0lBV0EsQ0FBQztJQUxpQixxQkFBUSxHQUF0QixVQUF1QixLQUFhO1FBQ2hDLElBQU0sa0JBQWtCLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0QsSUFBSSxrQkFBa0I7WUFBRSxPQUFPLGtCQUFrQixFQUFFLENBQUM7UUFDcEQsT0FBTyxFQUE0QixDQUFDO0lBQ3hDLENBQUM7SUFSYyxvQkFBTyxHQUFvQyxJQUFJLEdBQUcsQ0FBQztRQUM5RCxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsUUFBUSxDQUFDO0tBQzlCLENBQUMsQ0FBQztJQU9QLG1CQUFDO0NBQUEsQUFYRCxJQVdDO1NBWFksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRoZW1lcyB9IGZyb20gXCIuLi8uLi8uLi8uLi9tb2RlbHNcIjtcbmltcG9ydCB7IEVkaXRvclRoZW1lIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xuXG4vKiBUaGVtZXMgKi9cbmltcG9ydCB7IFNEU0xpZ2h0IH0gZnJvbSBcIi4vc2RzLWxpZ2h0L3Nkcy1saWdodC10aGVtZVwiO1xuXG50eXBlIEVkaXRvclRoZW1lRmFjdG9yeSA9ICgpID0+IEVkaXRvclRoZW1lOyBcblxuZXhwb3J0IGNsYXNzIEVkaXRvclRoZW1lcyB7XG5cbiAgICBwcml2YXRlIHN0YXRpYyBfVEhFTUVTOiBNYXA8VGhlbWVzLCBFZGl0b3JUaGVtZUZhY3Rvcnk+ID0gbmV3IE1hcChbXG4gICAgICAgIFtUaGVtZXMuU0RTTGlnaHQsIFNEU0xpZ2h0XVxuICAgIF0pO1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXRUaGVtZSh0aGVtZTogVGhlbWVzKTogRWRpdG9yVGhlbWUge1xuICAgICAgICBjb25zdCBFZGl0b3JUaGVtZUZhY3RvcnkgPSBFZGl0b3JUaGVtZXMuX1RIRU1FUy5nZXQodGhlbWUpO1xuICAgICAgICBpZiAoRWRpdG9yVGhlbWVGYWN0b3J5KSByZXR1cm4gRWRpdG9yVGhlbWVGYWN0b3J5KCk7XG4gICAgICAgIHJldHVybiBbXSBhcyB1bmtub3duIGFzIEVkaXRvclRoZW1lO1xuICAgIH1cbn1cbiJdfQ==
@@ -2,15 +2,15 @@ import { HighlightStyle, tags } from "@codemirror/highlight";
2
2
  export var SDSLightHighlightStyle = HighlightStyle.define([
3
3
  {
4
4
  tag: tags.keyword,
5
- color: "blue",
5
+ color: "#008080",
6
6
  },
7
7
  {
8
8
  tag: tags.string,
9
- color: "red",
9
+ color: "#9C3A3A",
10
10
  },
11
11
  {
12
12
  tag: tags.number,
13
- color: "green",
13
+ color: "#400753",
14
14
  },
15
15
  ]);
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RzLWxpZ2h0LWhpZ2hsaWdodC1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2NvcmVzL2NvZGVtaXJyb3ItNi90aGVtZXMvc2RzLWxpZ2h0L3Nkcy1saWdodC1oaWdobGlnaHQtc3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3RCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBbUIsY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUN4RTtRQUNJLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTztRQUNqQixLQUFLLEVBQUUsTUFBTTtLQUNoQjtJQUNEO1FBQ0ksR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNO1FBQ2hCLEtBQUssRUFBRSxLQUFLO0tBQ2Y7SUFDRDtRQUNJLEdBQUcsRUFBRSxJQUFJLENBQUMsTUFBTTtRQUNoQixLQUFLLEVBQUUsT0FBTztLQUNqQjtDQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEhpZ2hsaWdodFN0eWxlLCB0YWdzIH0gZnJvbSBcIkBjb2RlbWlycm9yL2hpZ2hsaWdodFwiO1xuXG5leHBvcnQgY29uc3QgU0RTTGlnaHRIaWdobGlnaHRTdHlsZTogSGlnaGxpZ2h0U3R5bGUgPSBIaWdobGlnaHRTdHlsZS5kZWZpbmUoW1xuICAgIHtcbiAgICAgICAgdGFnOiB0YWdzLmtleXdvcmQsXG4gICAgICAgIGNvbG9yOiBcImJsdWVcIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGFnOiB0YWdzLnN0cmluZyxcbiAgICAgICAgY29sb3I6IFwicmVkXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhZzogdGFncy5udW1iZXIsXG4gICAgICAgIGNvbG9yOiBcImdyZWVuXCIsXG4gICAgfSxcbl0pO1xuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2RzLWxpZ2h0LWhpZ2hsaWdodC1zdHlsZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BzZW5pb3JzaXN0ZW1hcy9hbmd1bGFyLWNvbXBvbmVudHMvIiwic291cmNlcyI6WyJjb21wb25lbnRzL2NvZGUtZWRpdG9yL2luZnJhL2NvcmVzL2NvZGVtaXJyb3ItNi90aGVtZXMvc2RzLWxpZ2h0L3Nkcy1saWdodC1oaWdobGlnaHQtc3R5bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUU3RCxNQUFNLENBQUMsSUFBTSxzQkFBc0IsR0FBbUIsY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUN4RTtRQUNJLEdBQUcsRUFBRSxJQUFJLENBQUMsT0FBTztRQUNqQixLQUFLLEVBQUUsU0FBUztLQUNuQjtJQUNEO1FBQ0ksR0FBRyxFQUFFLElBQUksQ0FBQyxNQUFNO1FBQ2hCLEtBQUssRUFBRSxTQUFTO0tBQ25CO0lBQ0Q7UUFDSSxHQUFHLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDaEIsS0FBSyxFQUFFLFNBQVM7S0FDbkI7Q0FDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIaWdobGlnaHRTdHlsZSwgdGFncyB9IGZyb20gXCJAY29kZW1pcnJvci9oaWdobGlnaHRcIjtcblxuZXhwb3J0IGNvbnN0IFNEU0xpZ2h0SGlnaGxpZ2h0U3R5bGU6IEhpZ2hsaWdodFN0eWxlID0gSGlnaGxpZ2h0U3R5bGUuZGVmaW5lKFtcbiAgICB7XG4gICAgICAgIHRhZzogdGFncy5rZXl3b3JkLFxuICAgICAgICBjb2xvcjogXCIjMDA4MDgwXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICAgIHRhZzogdGFncy5zdHJpbmcsXG4gICAgICAgIGNvbG9yOiBcIiM5QzNBM0FcIixcbiAgICB9LFxuICAgIHtcbiAgICAgICAgdGFnOiB0YWdzLm51bWJlcixcbiAgICAgICAgY29sb3I6IFwiIzQwMDc1M1wiLFxuICAgIH0sXG5dKTtcbiJdfQ==
@@ -1,4 +1,3 @@
1
1
  export * from "./custom-http-client/custom-http-client";
2
2
  export * from "./custom-translations/index";
3
- export * from "./regex-index-of";
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gXCIuL2N1c3RvbS1odHRwLWNsaWVudC9jdXN0b20taHR0cC1jbGllbnRcIjtcbmV4cG9ydCAqIGZyb20gXCIuL2N1c3RvbS10cmFuc2xhdGlvbnMvaW5kZXhcIjtcbmV4cG9ydCAqIGZyb20gXCIuL3JlZ2V4LWluZGV4LW9mXCI7XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy9jb2RlLWVkaXRvci9pbmZyYS91dGlscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkJBQTZCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tIFwiLi9jdXN0b20taHR0cC1jbGllbnQvY3VzdG9tLWh0dHAtY2xpZW50XCI7XG5leHBvcnQgKiBmcm9tIFwiLi9jdXN0b20tdHJhbnNsYXRpb25zL2luZGV4XCI7XG4iXX0=
@@ -27,13 +27,14 @@ var CodeEditorComponent = /** @class */ (function () {
27
27
  configurable: true
28
28
  });
29
29
  CodeEditorComponent.prototype.ngOnInit = function () {
30
+ this.coreFacade.initCore();
30
31
  this.setupCoreListeners();
31
32
  };
32
33
  CodeEditorComponent.prototype.ngAfterViewInit = function () {
33
34
  this.setCoreWrapperElement();
34
35
  };
35
36
  CodeEditorComponent.prototype.ngOnDestroy = function () {
36
- this.coreFacade.destroyObservables();
37
+ this.coreFacade.destroyCore();
37
38
  this._ngUnsubscribe.next();
38
39
  this._ngUnsubscribe.complete();
39
40
  };
@@ -97,4 +98,4 @@ var CodeEditorComponent = /** @class */ (function () {
97
98
  return CodeEditorComponent;
98
99
  }());
99
100
  export { CodeEditorComponent };
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3ItY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29kZS1lZGl0b3IvcHJlc2VudGF0aW9uL2NvZGUtZWRpdG9yLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFJVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEdBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQ0gsSUFBSSxFQUNKLFNBQVMsRUFDWixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVF6RDtJQXdCSSw2QkFBNkIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQXRCM0MsbUJBQWMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVlyQyxlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFJdEQsc0JBQWlCLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUQsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4RCwwQkFBcUIsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUxQixDQUFDO0lBbEI5QyxzQkFBVyw4Q0FBYTthQUF4QixVQUF5QixPQUFzQjtZQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELENBQUM7OztPQUFBO0lBRVEsc0JBQVcscUNBQUk7YUFBZixVQUFnQixJQUFZO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUM7OztPQUFBO0lBY00sc0NBQVEsR0FBZjtRQUNJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSw2Q0FBZSxHQUF0QjtRQUNJLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO0lBQ2pDLENBQUM7SUFFTSx5Q0FBVyxHQUFsQjtRQUNJLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVPLG1EQUFxQixHQUE3QjtRQUNJLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQStCLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRU8sZ0RBQWtCLEdBQTFCO1FBQUEsaUJBb0JDO1FBbkJHLElBQUksQ0FBQyxVQUFVO2FBQ1YsNkJBQTZCLEVBQUU7YUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxFQUFqQyxDQUFpQyxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLFVBQVU7YUFDVix5QkFBeUIsRUFBRTthQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsVUFBQSxJQUFJO1lBQ1gsS0FBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsS0FBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFUCxJQUFJLENBQUMsVUFBVTthQUNWLGlDQUFpQyxFQUFFO2FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3BDLFNBQVMsQ0FBQyxVQUFBLFFBQVE7WUFDZixLQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7Z0JBeEN3QyxVQUFVOztJQXBCekI7UUFBekIsU0FBUyxDQUFDLGFBQWEsQ0FBQzttRUFBd0M7SUFFeEQ7UUFBUixLQUFLLEVBQUU7NERBRVA7SUFFUTtRQUFSLEtBQUssRUFBRTttREFFUDtJQUVTO1FBQVQsTUFBTSxFQUFFOzJEQUE4RDtJQUU5RDtRQUFSLEtBQUssRUFBRTs0REFBNkI7SUFFM0I7UUFBVCxNQUFNLEVBQUU7a0VBQXNFO0lBRXJFO1FBQVQsTUFBTSxFQUFFOzZEQUFnRTtJQUUvRDtRQUFULE1BQU0sRUFBRTtzRUFBdUU7SUF0QnZFLG1CQUFtQjtRQUwvQixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZUFBZTtZQUN6QixRQUFRLEVBQUUsaURBQStDOztTQUU1RCxDQUFDO09BQ1csbUJBQW1CLENBaUUvQjtJQUFELDBCQUFDO0NBQUEsQUFqRUQsSUFpRUM7U0FqRVksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25EZXN0cm95LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgVmlld0NoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7XG4gICAgdGFrZSxcbiAgICB0YWtlVW50aWxcbn0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7IENvcmVGYWNhZGUgfSBmcm9tIFwiLi4vY29yZS9mYWNhZGVzL2NvcmUtZmFjYWRlXCI7XG5pbXBvcnQgeyBFZGl0b3JPcHRpb25zIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLWNvZGUtZWRpdG9yXCIsXG4gICAgdGVtcGxhdGU6IGA8ZGl2ICNjb3JlV3JhcHBlciBjbGFzcz1cImNvcmUtd3JhcHBlclwiPjwvZGl2PmAsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2NvZGUtZWRpdG9yLWNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIENvZGVFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwcml2YXRlIF9uZ1Vuc3Vic2NyaWJlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIEBWaWV3Q2hpbGQoXCJjb3JlV3JhcHBlclwiKSBwcml2YXRlIGNvcmVXcmFwcGVyRWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgZWRpdG9yT3B0aW9ucyhvcHRpb25zOiBFZGl0b3JPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuY29yZUZhY2FkZS5jaGFuZ2VFZGl0b3JPcHRpb25zKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgY29kZShjb2RlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jb3JlRmFjYWRlLmNoYW5nZUNvZGUoY29kZSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0NvZGVWYWxpZDogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgaXNDb2RlVmFsaWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25Db2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25Db21wb25lbnRGaW5pc2hMb2FkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvcmVGYWNhZGU6IENvcmVGYWNhZGUpIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0dXBDb3JlTGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZXRDb3JlV3JhcHBlckVsZW1lbnQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29yZUZhY2FkZS5kZXN0cm95T2JzZXJ2YWJsZXMoKTtcbiAgICAgICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENvcmVXcmFwcGVyRWxlbWVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb3JlRmFjYWRlLnNldENvcmVXcmFwcGVyRWxlbWVudCh0aGlzLmNvcmVXcmFwcGVyRWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwQ29yZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb3JlRmFjYWRlXG4gICAgICAgICAgICAuZ2V0T25Db3JlRmluaXNoTG9hZE9ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNvbXBvbmVudEZpbmlzaExvYWQuZW1pdCgpKTtcblxuICAgICAgICB0aGlzLmNvcmVGYWNhZGVcbiAgICAgICAgICAgIC5nZXRPbkNvZGVDaGFuZ2VPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoY29kZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2RlQ2hhbmdlLmVtaXQoY29kZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNvZGVDaGFuZ2UuZW1pdChjb2RlKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29yZUZhY2FkZVxuICAgICAgICAgICAgLmdldE9uQ29kZVZhbGlkaXR5Q2hhbmdlT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbGlkaXR5ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ29kZVZhbGlkQ2hhbmdlLmVtaXQodmFsaWRpdHkpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZS1lZGl0b3ItY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvY29kZS1lZGl0b3IvcHJlc2VudGF0aW9uL2NvZGUtZWRpdG9yLWNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUNILFNBQVMsRUFJVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEdBRVosTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQ0gsSUFBSSxFQUNKLFNBQVMsRUFDWixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQVF6RDtJQXdCSSw2QkFBNkIsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQXRCM0MsbUJBQWMsR0FBa0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVlyQyxlQUFVLEdBQXlCLElBQUksWUFBWSxFQUFFLENBQUM7UUFJdEQsc0JBQWlCLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFOUQsaUJBQVksR0FBeUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4RCwwQkFBcUIsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUUxQixDQUFDO0lBbEI5QyxzQkFBVyw4Q0FBYTthQUF4QixVQUF5QixPQUFzQjtZQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pELENBQUM7OztPQUFBO0lBRVEsc0JBQVcscUNBQUk7YUFBZixVQUFnQixJQUFZO1lBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3JDLENBQUM7OztPQUFBO0lBY00sc0NBQVEsR0FBZjtRQUNJLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVNLDZDQUFlLEdBQXRCO1FBQ0ksSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLHlDQUFXLEdBQWxCO1FBQ0ksSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVPLG1EQUFxQixHQUE3QjtRQUNJLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGFBQStCLENBQUMsQ0FBQztJQUNuRyxDQUFDO0lBRU8sZ0RBQWtCLEdBQTFCO1FBQUEsaUJBb0JDO1FBbkJHLElBQUksQ0FBQyxVQUFVO2FBQ1YsNkJBQTZCLEVBQUU7YUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUNiLFNBQVMsQ0FBQyxjQUFNLE9BQUEsS0FBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxFQUFqQyxDQUFpQyxDQUFDLENBQUM7UUFFeEQsSUFBSSxDQUFDLFVBQVU7YUFDVix5QkFBeUIsRUFBRTthQUMzQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQzthQUNwQyxTQUFTLENBQUMsVUFBQSxJQUFJO1lBQ1gsS0FBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDM0IsS0FBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxDQUFDLENBQUM7UUFFUCxJQUFJLENBQUMsVUFBVTthQUNWLGlDQUFpQyxFQUFFO2FBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO2FBQ3BDLFNBQVMsQ0FBQyxVQUFBLFFBQVE7WUFDZixLQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzs7Z0JBekN3QyxVQUFVOztJQXBCekI7UUFBekIsU0FBUyxDQUFDLGFBQWEsQ0FBQzttRUFBd0M7SUFFeEQ7UUFBUixLQUFLLEVBQUU7NERBRVA7SUFFUTtRQUFSLEtBQUssRUFBRTttREFFUDtJQUVTO1FBQVQsTUFBTSxFQUFFOzJEQUE4RDtJQUU5RDtRQUFSLEtBQUssRUFBRTs0REFBNkI7SUFFM0I7UUFBVCxNQUFNLEVBQUU7a0VBQXNFO0lBRXJFO1FBQVQsTUFBTSxFQUFFOzZEQUFnRTtJQUUvRDtRQUFULE1BQU0sRUFBRTtzRUFBdUU7SUF0QnZFLG1CQUFtQjtRQUwvQixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsZUFBZTtZQUN6QixRQUFRLEVBQUUsaURBQStDOztTQUU1RCxDQUFDO09BQ1csbUJBQW1CLENBa0UvQjtJQUFELDBCQUFDO0NBQUEsQUFsRUQsSUFrRUM7U0FsRVksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgT25Jbml0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25EZXN0cm95LFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgVmlld0NoaWxkLFxuICAgIEVsZW1lbnRSZWYsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7XG4gICAgdGFrZSxcbiAgICB0YWtlVW50aWxcbn0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7IENvcmVGYWNhZGUgfSBmcm9tIFwiLi4vY29yZS9mYWNhZGVzL2NvcmUtZmFjYWRlXCI7XG5pbXBvcnQgeyBFZGl0b3JPcHRpb25zIH0gZnJvbSBcIi4uL21vZGVsc1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLWNvZGUtZWRpdG9yXCIsXG4gICAgdGVtcGxhdGU6IGA8ZGl2ICNjb3JlV3JhcHBlciBjbGFzcz1cImNvcmUtd3JhcHBlclwiPjwvZGl2PmAsXG4gICAgc3R5bGVVcmxzOiBbXCIuL2NvZGUtZWRpdG9yLWNvbXBvbmVudC5zY3NzXCJdXG59KVxuZXhwb3J0IGNsYXNzIENvZGVFZGl0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG5cbiAgICBwcml2YXRlIF9uZ1Vuc3Vic2NyaWJlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3QoKTtcblxuICAgIEBWaWV3Q2hpbGQoXCJjb3JlV3JhcHBlclwiKSBwcml2YXRlIGNvcmVXcmFwcGVyRWxlbWVudDogRWxlbWVudFJlZjtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgZWRpdG9yT3B0aW9ucyhvcHRpb25zOiBFZGl0b3JPcHRpb25zKSB7XG4gICAgICAgIHRoaXMuY29yZUZhY2FkZS5jaGFuZ2VFZGl0b3JPcHRpb25zKG9wdGlvbnMpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIHB1YmxpYyBzZXQgY29kZShjb2RlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5jb3JlRmFjYWRlLmNoYW5nZUNvZGUoY29kZSk7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIHB1YmxpYyBjb2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBJbnB1dCgpIHB1YmxpYyBpc0NvZGVWYWxpZDogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgaXNDb2RlVmFsaWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25Db2RlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAgIEBPdXRwdXQoKSBwdWJsaWMgb25Db21wb25lbnRGaW5pc2hMb2FkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGNvcmVGYWNhZGU6IENvcmVGYWNhZGUpIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29yZUZhY2FkZS5pbml0Q29yZSgpO1xuICAgICAgICB0aGlzLnNldHVwQ29yZUxpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0Q29yZVdyYXBwZXJFbGVtZW50KCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvcmVGYWNhZGUuZGVzdHJveUNvcmUoKTtcbiAgICAgICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgICAgIHRoaXMuX25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldENvcmVXcmFwcGVyRWxlbWVudCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb3JlRmFjYWRlLnNldENvcmVXcmFwcGVyRWxlbWVudCh0aGlzLmNvcmVXcmFwcGVyRWxlbWVudC5uYXRpdmVFbGVtZW50IGFzIEhUTUxEaXZFbGVtZW50KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwQ29yZUxpc3RlbmVycygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb3JlRmFjYWRlXG4gICAgICAgICAgICAuZ2V0T25Db3JlRmluaXNoTG9hZE9ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vbkNvbXBvbmVudEZpbmlzaExvYWQuZW1pdCgpKTtcblxuICAgICAgICB0aGlzLmNvcmVGYWNhZGVcbiAgICAgICAgICAgIC5nZXRPbkNvZGVDaGFuZ2VPYnNlcnZhYmxlKClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoY29kZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb2RlQ2hhbmdlLmVtaXQoY29kZSk7XG4gICAgICAgICAgICAgICAgdGhpcy5vbkNvZGVDaGFuZ2UuZW1pdChjb2RlKTtcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuY29yZUZhY2FkZVxuICAgICAgICAgICAgLmdldE9uQ29kZVZhbGlkaXR5Q2hhbmdlT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fbmdVbnN1YnNjcmliZSkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHZhbGlkaXR5ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmlzQ29kZVZhbGlkQ2hhbmdlLmVtaXQodmFsaWRpdHkpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxufVxuIl19