@hmcts/media-viewer 3.0.2 → 3.0.3-RC.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 (50) hide show
  1. package/esm2020/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.mjs +26 -1
  2. package/esm2020/lib/annotations/services/annotation-api/annotation-api.service.mjs +1 -1
  3. package/esm2020/lib/media-viewer.component.mjs +13 -12
  4. package/esm2020/lib/print.service.mjs +5 -1
  5. package/esm2020/lib/store/actions/annotation.actions.mjs +22 -1
  6. package/esm2020/lib/store/effects/annotation.effects.mjs +11 -4
  7. package/esm2020/lib/store/reducers/annotations.reducer.mjs +26 -1
  8. package/esm2020/lib/toolbar/highlight-toolbar/highlight-toolbar.component.mjs +44 -0
  9. package/esm2020/lib/toolbar/main-toolbar/main-toolbar.component.mjs +4 -4
  10. package/esm2020/lib/toolbar/redaction-search-bar/redaction-search-bar.component.mjs +43 -7
  11. package/esm2020/lib/toolbar/redaction-toolbar/redaction-toolbar.component.mjs +3 -2
  12. package/esm2020/lib/toolbar/search-bar/search-bar.component.mjs +2 -2
  13. package/esm2020/lib/toolbar/toolbar-event.service.mjs +13 -3
  14. package/esm2020/lib/toolbar/toolbar.module.mjs +10 -5
  15. package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.mjs +21 -5
  16. package/esm2020/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.mjs +1 -1
  17. package/esm2020/lib/viewers/pdf-viewer/pdf-viewer.component.mjs +1 -1
  18. package/esm2020/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.mjs +1 -1
  19. package/esm2020/public_api.mjs +2 -1
  20. package/fesm2015/hmcts-media-viewer.mjs +192 -32
  21. package/fesm2015/hmcts-media-viewer.mjs.map +1 -1
  22. package/fesm2020/hmcts-media-viewer.mjs +213 -28
  23. package/fesm2020/hmcts-media-viewer.mjs.map +1 -1
  24. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts +2 -0
  25. package/lib/annotations/annotation-set/annotation-create/highlight-create/highlight-create.service.d.ts.map +1 -1
  26. package/lib/print.service.d.ts.map +1 -1
  27. package/lib/store/actions/annotation.actions.d.ts +25 -1
  28. package/lib/store/actions/annotation.actions.d.ts.map +1 -1
  29. package/lib/store/effects/annotation.effects.d.ts +1 -0
  30. package/lib/store/effects/annotation.effects.d.ts.map +1 -1
  31. package/lib/store/reducers/annotations.reducer.d.ts.map +1 -1
  32. package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts +20 -0
  33. package/lib/toolbar/highlight-toolbar/highlight-toolbar.component.d.ts.map +1 -0
  34. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts +6 -0
  35. package/lib/toolbar/redaction-search-bar/redaction-search-bar.component.d.ts.map +1 -1
  36. package/lib/toolbar/redaction-toolbar/redaction-toolbar.component.d.ts.map +1 -1
  37. package/lib/toolbar/toolbar-event.service.d.ts +12 -1
  38. package/lib/toolbar/toolbar-event.service.d.ts.map +1 -1
  39. package/lib/toolbar/toolbar.module.d.ts +7 -6
  40. package/lib/toolbar/toolbar.module.d.ts.map +1 -1
  41. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts +3 -3
  42. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.d.ts.map +1 -1
  43. package/lib/viewers/pdf-viewer/pdf-js/pdf-js-wrapper.provider.d.ts.map +1 -1
  44. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts +1 -1
  45. package/lib/viewers/pdf-viewer/pdf-viewer.component.d.ts.map +1 -1
  46. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts +7 -7
  47. package/lib/viewers/pdf-viewer/side-bar/outline-item/outline.model.d.ts.map +1 -1
  48. package/package.json +1 -1
  49. package/public_api.d.ts +1 -0
  50. package/public_api.d.ts.map +1 -1
@@ -1,8 +1,10 @@
1
+ import { SearchType } from './../toolbar-event.service';
1
2
  import { Component, HostListener, ViewChild } from '@angular/core';
2
3
  import { select } from '@ngrx/store';
3
4
  import * as fromDocument from '../../store/selectors/document.selectors';
4
5
  import * as fromRedactionActions from '../../store/actions/redaction.actions';
5
6
  import uuid from 'uuid';
7
+ import { some } from 'lodash';
6
8
  import * as i0 from "@angular/core";
7
9
  import * as i1 from "@ngrx/store";
8
10
  import * as i2 from "../toolbar-button-visibility.service";
@@ -35,7 +37,13 @@ export class RedactionSearchBarComponent {
35
37
  }
36
38
  }));
37
39
  this.subscription.add(this.toolbarEvents.searchResultsCountSubject.subscribe(results => this.setSearchResultsCount(results)));
38
- this.subscription.add(this.toolbarEvents.openRedactionSearch.subscribe(isOpen => this.openSearchModal = isOpen));
40
+ this.subscription.add(this.toolbarEvents.openRedactionSearch.subscribe((searchMode) => {
41
+ if (searchMode) {
42
+ this.openSearchModal = searchMode.isOpen;
43
+ this.searchType = searchMode.modeType;
44
+ this.modeText();
45
+ }
46
+ }));
39
47
  this.subscription.add(this.toolbarEvents.redactAllInProgressSubject
40
48
  .subscribe(inProgress => this.redactAllInProgress = inProgress));
41
49
  }
@@ -66,6 +74,16 @@ export class RedactionSearchBarComponent {
66
74
  reset
67
75
  });
68
76
  }
77
+ modeText() {
78
+ if (this.searchType === SearchType.Highlight) {
79
+ this.inProgressText = 'Highlighting';
80
+ this.titleText = 'Highlight';
81
+ }
82
+ else if (this.searchType === SearchType.Redact) {
83
+ this.inProgressText = 'Redacting';
84
+ this.titleText = 'Redact';
85
+ }
86
+ }
69
87
  saveRedaction(redactRectangle) {
70
88
  const redaction = redactRectangle.map(ele => {
71
89
  return { page: ele.page, rectangles: ele.rectangles, redactionId: uuid(), documentId: this.documentId };
@@ -93,7 +111,7 @@ export class RedactionSearchBarComponent {
93
111
  return false;
94
112
  }
95
113
  onCloseSearchModal() {
96
- this.toolbarEvents.openRedactionSearch.next(false);
114
+ this.toolbarEvents.openRedactionSearch.next({ isOpen: false, modeType: this.searchType });
97
115
  }
98
116
  setSearchResultsCount(results) {
99
117
  this.resultCount = results.total;
@@ -129,10 +147,21 @@ export class RedactionSearchBarComponent {
129
147
  if (this.redactAll && this.resultCount && this.redactElements.length === this.resultCount) {
130
148
  this.redactAll = false;
131
149
  this.redactAllText = null;
132
- this.saveRedaction(this.redactElements);
150
+ if (this.searchType === SearchType.Redact) {
151
+ this.saveRedaction(this.redactElements);
152
+ }
153
+ else if (this.searchType === SearchType.Highlight) {
154
+ this.highlightService.saveAnnotationSet(this.redactElements);
155
+ this.cleanUpPostSave();
156
+ }
133
157
  }
134
158
  }
135
159
  }
160
+ cleanUpPostSave() {
161
+ this.toolbarEvents.redactAllInProgressSubject.next(false);
162
+ this.searchText = '';
163
+ this.search();
164
+ }
136
165
  CreateRedactAllText() {
137
166
  this.redactAllText = `${this.redactElements.length} of ${this.resultCount}`;
138
167
  }
@@ -153,7 +182,14 @@ export class RedactionSearchBarComponent {
153
182
  const selectedHighLightedElements = document.getElementsByClassName('highlight selected');
154
183
  if (selectedHighLightedElements && selectedHighLightedElements.length > 0) {
155
184
  const docRange = document.createRange();
156
- docRange.selectNodeContents(selectedHighLightedElements[0]);
185
+ if (some(selectedHighLightedElements, element => element.className === 'highlight begin selected' || element.className === 'highlight end selected')) {
186
+ docRange.setStart(selectedHighLightedElements[0], 0);
187
+ const endNode = selectedHighLightedElements[selectedHighLightedElements.length - 1];
188
+ docRange.setEnd(endNode, endNode.childNodes.length);
189
+ }
190
+ else {
191
+ docRange.selectNodeContents(selectedHighLightedElements[0]);
192
+ }
157
193
  const selection = window.getSelection();
158
194
  selection?.removeAllRanges();
159
195
  selection?.addRange(docRange);
@@ -186,10 +222,10 @@ export class RedactionSearchBarComponent {
186
222
  }
187
223
  }
188
224
  /** @nocollapse */ RedactionSearchBarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RedactionSearchBarComponent, deps: [{ token: i1.Store }, { token: i2.ToolbarButtonVisibilityService }, { token: i3.ToolbarEventService }, { token: i4.HighlightCreateService }], target: i0.ɵɵFactoryTarget.Component });
189
- /** @nocollapse */ RedactionSearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RedactionSearchBarComponent, selector: "mv-redaction-search-bar", host: { listeners: { "window:keydown": "onWindowKeyDown($event)" } }, viewQueries: [{ propertyName: "findInput", first: true, predicate: ["findInput"], descendants: true, static: true }], ngImport: i0, template: "<div\n *ngIf=\"openSearchModal\"\n class=\"searchbar redaction-search-bar govuk-!-padding-3\"\n>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full govuk-!-padding-right-0\">\n <div class=\"redaction-search-buttons-area\">\n <button\n id=\"mvCloseBtn\"\n #mvCloseBtn\n class=\"mv-button searchbar-button--close\"\n title=\"Close Search\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"onCloseSearchModal()\"\n ></button>\n </div>\n <input\n id=\"search_input\"\n class=\"govuk-input govuk-!-width-three-quarters govuk-!-display-inline-block govuk-!-margin-top-5\"\n type=\"text\"\n aria-label=\"Redact from search\"\n #findInput\n title=\"Redact from search\"\n placeholder=\"{{ 'Redact from search...' | rpxTranslate }}\"\n data-l10n-id=\"search_input\"\n [(ngModel)]=\"searchText\"\n (keydown.escape)=\"onEscapeKeyPress($event)\"\n (keydown.enter)=\"onEnterKeyPress($event)\"\n />\n <div class=\"redaction-search-buttons-area\">\n <button\n id=\"mvSearchAllBtn\"\n class=\"govuk-button govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\"\n (click)=\"search()\"\n [disabled]=\"redactAllInProgress\"\n >\n {{ \"Search\" | rpxTranslate }}\n </button>\n <button\n id=\"mvRedactAllBtn\"\n class=\"govuk-button govuk-!-margin-left-2 govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\"\n (click)=\"search(false)\"\n [disabled]=\"redactAllInProgress\"\n >\n {{ \"Redact all\" | rpxTranslate }}\n </button>\n </div>\n <div\n class=\"govuk-grid-column-three-quarters govuk-!-padding-left-0 govuk-!-padding-top-2 redaction-status-text\"\n >\n <span\n id=\"findRedactResultsCount\"\n class=\"govuk-grid-column-full govuk-!-margin-right-4 govuk-!-margin-left-0 govuk-!-padding-left-0\"\n ><h4\n class=\"govuk-!-display-inline-block govuk-!-margin-top-0 govuk-!-margin-bottom-1\"\n *ngIf=\"redactAllInProgress\"\n >\n {{ \"Redacting in progress\" | rpxTranslate }}\n </h4>\n {{ redactAllInProgress ? \"\" : resultsText }}</span\n >\n <span>\n <h5\n id=\"redactAllInProgressCount\"\n class=\"govuk-!-display-inline-block govuk-!-margin-top-0 govuk-!-margin-bottom-1\"\n >\n {{ redactAllInProgress ? redactAllText : \"\" }}\n </h5>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".redaction-search-buttons-area{display:flex;flex-direction:row;padding-top:.5rem}.redaction-search-bar{width:20rem;left:73%;top:2%}.redaction-status-text{height:2.6rem}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i7.RpxTranslatePipe, name: "rpxTranslate" }] });
225
+ /** @nocollapse */ RedactionSearchBarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: RedactionSearchBarComponent, selector: "mv-redaction-search-bar", host: { listeners: { "window:keydown": "onWindowKeyDown($event)" } }, viewQueries: [{ propertyName: "findInput", first: true, predicate: ["findInput"], descendants: true, static: true }], ngImport: i0, template: "<div\n *ngIf=\"openSearchModal\"\n class=\"searchbar redaction-search-bar govuk-!-padding-3\"\n>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full govuk-!-padding-right-0\">\n <div class=\"redaction-search-buttons-area\">\n <button\n id=\"mvCloseBtn\"\n #mvCloseBtn\n class=\"mv-button searchbar-button--close\"\n title=\"Close Search\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"onCloseSearchModal()\"\n ></button>\n </div>\n <input\n id=\"search_input\"\n class=\"govuk-input govuk-!-width-three-quarters govuk-!-display-inline-block govuk-!-margin-top-5\"\n type=\"text\"\n aria-label=\"Redact from search\"\n #findInput\n title=\"Redact from search\"\n placeholder=\"{{ titleText + ' from search...' | rpxTranslate }}\"\n data-l10n-id=\"search_input\"\n [(ngModel)]=\"searchText\"\n (keydown.escape)=\"onEscapeKeyPress($event)\"\n (keydown.enter)=\"onEnterKeyPress($event)\"\n />\n <div class=\"redaction-search-buttons-area\">\n <button\n id=\"mvSearchAllBtn\"\n class=\"govuk-button govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\"\n (click)=\"search()\"\n [disabled]=\"redactAllInProgress\"\n >\n {{ \"Search\" | rpxTranslate }}\n </button>\n <button\n id=\"mvRedactAllBtn\"\n class=\"govuk-button govuk-!-margin-left-2 govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\"\n (click)=\"search(false)\"\n [disabled]=\"redactAllInProgress || resultCount <= 0\"\n >\n {{ titleText + \" all\" | rpxTranslate }}\n </button>\n </div>\n <div\n class=\"govuk-grid-column-three-quarters govuk-!-padding-left-0 govuk-!-padding-top-2 redaction-status-text\"\n >\n <span\n id=\"findRedactResultsCount\"\n class=\"govuk-grid-column-full govuk-!-margin-right-4 govuk-!-margin-left-0 govuk-!-padding-left-0\"\n ><h4\n class=\"govuk-!-display-inline-block govuk-!-margin-top-0 govuk-!-margin-bottom-1\"\n *ngIf=\"redactAllInProgress\"\n >\n {{ inProgressText + \" in progress\" | rpxTranslate }}\n </h4>\n {{ redactAllInProgress ? \"\" : resultsText }}</span\n >\n <span>\n <h5\n id=\"redactAllInProgressCount\"\n class=\"govuk-!-display-inline-block govuk-!-margin-top-0 govuk-!-margin-bottom-1\"\n >\n {{ redactAllInProgress ? redactAllText : \"\" }}\n </h5>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".redaction-search-buttons-area{display:flex;flex-direction:row;padding-top:.5rem}.redaction-search-bar{width:20rem;left:73%;top:2%}.redaction-status-text{height:2.6rem}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "pipe", type: i7.RpxTranslatePipe, name: "rpxTranslate" }] });
190
226
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: RedactionSearchBarComponent, decorators: [{
191
227
  type: Component,
192
- args: [{ selector: 'mv-redaction-search-bar', template: "<div\n *ngIf=\"openSearchModal\"\n class=\"searchbar redaction-search-bar govuk-!-padding-3\"\n>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full govuk-!-padding-right-0\">\n <div class=\"redaction-search-buttons-area\">\n <button\n id=\"mvCloseBtn\"\n #mvCloseBtn\n class=\"mv-button searchbar-button--close\"\n title=\"Close Search\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"onCloseSearchModal()\"\n ></button>\n </div>\n <input\n id=\"search_input\"\n class=\"govuk-input govuk-!-width-three-quarters govuk-!-display-inline-block govuk-!-margin-top-5\"\n type=\"text\"\n aria-label=\"Redact from search\"\n #findInput\n title=\"Redact from search\"\n placeholder=\"{{ 'Redact from search...' | rpxTranslate }}\"\n data-l10n-id=\"search_input\"\n [(ngModel)]=\"searchText\"\n (keydown.escape)=\"onEscapeKeyPress($event)\"\n (keydown.enter)=\"onEnterKeyPress($event)\"\n />\n <div class=\"redaction-search-buttons-area\">\n <button\n id=\"mvSearchAllBtn\"\n class=\"govuk-button govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\"\n (click)=\"search()\"\n [disabled]=\"redactAllInProgress\"\n >\n {{ \"Search\" | rpxTranslate }}\n </button>\n <button\n id=\"mvRedactAllBtn\"\n class=\"govuk-button govuk-!-margin-left-2 govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\"\n (click)=\"search(false)\"\n [disabled]=\"redactAllInProgress\"\n >\n {{ \"Redact all\" | rpxTranslate }}\n </button>\n </div>\n <div\n class=\"govuk-grid-column-three-quarters govuk-!-padding-left-0 govuk-!-padding-top-2 redaction-status-text\"\n >\n <span\n id=\"findRedactResultsCount\"\n class=\"govuk-grid-column-full govuk-!-margin-right-4 govuk-!-margin-left-0 govuk-!-padding-left-0\"\n ><h4\n class=\"govuk-!-display-inline-block govuk-!-margin-top-0 govuk-!-margin-bottom-1\"\n *ngIf=\"redactAllInProgress\"\n >\n {{ \"Redacting in progress\" | rpxTranslate }}\n </h4>\n {{ redactAllInProgress ? \"\" : resultsText }}</span\n >\n <span>\n <h5\n id=\"redactAllInProgressCount\"\n class=\"govuk-!-display-inline-block govuk-!-margin-top-0 govuk-!-margin-bottom-1\"\n >\n {{ redactAllInProgress ? redactAllText : \"\" }}\n </h5>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".redaction-search-buttons-area{display:flex;flex-direction:row;padding-top:.5rem}.redaction-search-bar{width:20rem;left:73%;top:2%}.redaction-status-text{height:2.6rem}\n"] }]
228
+ args: [{ selector: 'mv-redaction-search-bar', template: "<div\n *ngIf=\"openSearchModal\"\n class=\"searchbar redaction-search-bar govuk-!-padding-3\"\n>\n <div class=\"govuk-grid-row\">\n <div class=\"govuk-grid-column-full govuk-!-padding-right-0\">\n <div class=\"redaction-search-buttons-area\">\n <button\n id=\"mvCloseBtn\"\n #mvCloseBtn\n class=\"mv-button searchbar-button--close\"\n title=\"Close Search\"\n data-l10n-id=\"mvRedactBtn\"\n (click)=\"onCloseSearchModal()\"\n ></button>\n </div>\n <input\n id=\"search_input\"\n class=\"govuk-input govuk-!-width-three-quarters govuk-!-display-inline-block govuk-!-margin-top-5\"\n type=\"text\"\n aria-label=\"Redact from search\"\n #findInput\n title=\"Redact from search\"\n placeholder=\"{{ titleText + ' from search...' | rpxTranslate }}\"\n data-l10n-id=\"search_input\"\n [(ngModel)]=\"searchText\"\n (keydown.escape)=\"onEscapeKeyPress($event)\"\n (keydown.enter)=\"onEnterKeyPress($event)\"\n />\n <div class=\"redaction-search-buttons-area\">\n <button\n id=\"mvSearchAllBtn\"\n class=\"govuk-button govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\"\n (click)=\"search()\"\n [disabled]=\"redactAllInProgress\"\n >\n {{ \"Search\" | rpxTranslate }}\n </button>\n <button\n id=\"mvRedactAllBtn\"\n class=\"govuk-button govuk-!-margin-left-2 govuk-!-margin-bottom-0\"\n data-module=\"govuk-button\"\n (click)=\"search(false)\"\n [disabled]=\"redactAllInProgress || resultCount <= 0\"\n >\n {{ titleText + \" all\" | rpxTranslate }}\n </button>\n </div>\n <div\n class=\"govuk-grid-column-three-quarters govuk-!-padding-left-0 govuk-!-padding-top-2 redaction-status-text\"\n >\n <span\n id=\"findRedactResultsCount\"\n class=\"govuk-grid-column-full govuk-!-margin-right-4 govuk-!-margin-left-0 govuk-!-padding-left-0\"\n ><h4\n class=\"govuk-!-display-inline-block govuk-!-margin-top-0 govuk-!-margin-bottom-1\"\n *ngIf=\"redactAllInProgress\"\n >\n {{ inProgressText + \" in progress\" | rpxTranslate }}\n </h4>\n {{ redactAllInProgress ? \"\" : resultsText }}</span\n >\n <span>\n <h5\n id=\"redactAllInProgressCount\"\n class=\"govuk-!-display-inline-block govuk-!-margin-top-0 govuk-!-margin-bottom-1\"\n >\n {{ redactAllInProgress ? redactAllText : \"\" }}\n </h5>\n </span>\n </div>\n </div>\n </div>\n</div>\n", styles: [".redaction-search-buttons-area{display:flex;flex-direction:row;padding-top:.5rem}.redaction-search-bar{width:20rem;left:73%;top:2%}.redaction-status-text{height:2.6rem}\n"] }]
193
229
  }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.ToolbarButtonVisibilityService }, { type: i3.ToolbarEventService }, { type: i4.HighlightCreateService }]; }, propDecorators: { findInput: [{
194
230
  type: ViewChild,
195
231
  args: ['findInput', { static: true }]
@@ -197,4 +233,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
197
233
  type: HostListener,
198
234
  args: ['window:keydown', ['$event']]
199
235
  }] } });
200
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9uLXNlYXJjaC1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdG9vbGJhci9yZWRhY3Rpb24tc2VhcmNoLWJhci9yZWRhY3Rpb24tc2VhcmNoLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3JlZGFjdGlvbi1zZWFyY2gtYmFyL3JlZGFjdGlvbi1zZWFyY2gtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUE2QixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJMUcsT0FBTyxFQUFTLE1BQU0sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUc1QyxPQUFPLEtBQUssWUFBWSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3pFLE9BQU8sS0FBSyxvQkFBb0IsTUFBTSx1Q0FBdUMsQ0FBQztBQUM5RSxPQUFPLElBQUksTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVF4QixNQUFNLE9BQU8sMkJBQTJCO0lBMEJ0QyxZQUNVLEtBQTZCLEVBQ3JCLGNBQThDLEVBQzlDLGFBQWtDLEVBQ2xDLGdCQUF3QztRQUhoRCxVQUFLLEdBQUwsS0FBSyxDQUF3QjtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0M7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBQ2xDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBd0I7UUExQjFELGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsQ0FB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LFNBQVMsRUFBRSxDQUFDO1FBRXpDLE9BQU8sU0FBc0IsQ0FBQztJQUNoQyxDQUFDOzs0SUFsT1UsMkJBQTJCO2dJQUEzQiwyQkFBMkIsMlBDcEJ4QyxvcUZBMkVBOzRGRHZEYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UseUJBQXlCO2dOQU1PLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFvRGpDLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCdWxrUmVkYWN0aW9uLCBSZWRhY3Rpb24gfSBmcm9tICcuLy4uLy4uL3JlZGFjdGlvbi9zZXJ2aWNlcy9yZWRhY3Rpb24ubW9kZWwnO1xuaW1wb3J0IHsgU2VhcmNoUmVzdWx0c0NvdW50IH0gZnJvbSAnLi8uLi90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVkYWN0aW9uU2VhcmNoLCBSZWRhY3RSZWN0YW5nbGUgfSBmcm9tICcuL3JlZGFjdGlvbi1zZWFyY2gubW9kZWwnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi90b29sYmFyLWJ1dHRvbi12aXNpYmlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yZSwgc2VsZWN0IH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgZnJvbVN0b3JlIGZyb20gJy4uLy4uL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCB7IFJlY3RhbmdsZSB9IGZyb20gJy4uLy4uL2Fubm90YXRpb25zL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9yZWN0YW5nbGUvcmVjdGFuZ2xlLm1vZGVsJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudCBmcm9tICcuLi8uLi9zdG9yZS9zZWxlY3RvcnMvZG9jdW1lbnQuc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21SZWRhY3Rpb25BY3Rpb25zIGZyb20gJy4uLy4uL3N0b3JlL2FjdGlvbnMvcmVkYWN0aW9uLmFjdGlvbnMnO1xuaW1wb3J0IHV1aWQgZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBIaWdobGlnaHRDcmVhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1jcmVhdGUvaGlnaGxpZ2h0LWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtdi1yZWRhY3Rpb24tc2VhcmNoLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWRhY3Rpb24tc2VhcmNoLWJhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlZGFjdGlvbi1zZWFyY2gtYmFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVkYWN0aW9uU2VhcmNoQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbmRJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGZpbmRJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuICBoaWdobGlnaHRBbGwgPSB0cnVlO1xuICBtYXRjaENhc2UgPSBmYWxzZTtcbiAgd2hvbGVXb3JkID0gZmFsc2U7XG4gIHJlc3VsdHNUZXh0ID0gJyc7XG4gIHNlYXJjaFRleHQgPSAnJztcbiAgcmVzdWx0Q291bnQgPSAwO1xuICByZWRhY3RFbGVtZW50czogUmVkYWN0UmVjdGFuZ2xlW10gPSBbXTtcbiAgcGFnZUhlaWdodDogbnVtYmVyO1xuICBwYWdlV2lkdGg6IG51bWJlcjtcbiAgem9vbTogbnVtYmVyO1xuICByb3RhdGU6IG51bWJlcjtcbiAgYWxsUGFnZXM6IG9iamVjdDtcbiAgcmVkYWN0QWxsOiBib29sZWFuO1xuICBvcGVuU2VhcmNoTW9kYWw6IGJvb2xlYW47XG4gIHJlZGFjdEFsbEluUHJvZ3Jlc3M6IGJvb2xlYW47XG4gIHJlZGFjdEFsbFRleHQ/OiBzdHJpbmc7XG5cblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRvY3VtZW50SWQ6IHN0cmluZztcbiAgcHVibGljIGFkdmFuY2VkU2VhcmNoVmlzaWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5TdGF0ZT4sXG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xiYXJCdXR0b25zOiBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xiYXJFdmVudHM6IFRvb2xiYXJFdmVudFNlcnZpY2UsXG4gICAgcHVibGljIHJlYWRvbmx5IGhpZ2hsaWdodFNlcnZpY2U6IEhpZ2hsaWdodENyZWF0ZVNlcnZpY2UsXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy50b29sYmFyRXZlbnRzLnJlZGFjdGlvblNlcmFjaFN1YmplY3Quc3Vic2NyaWJlKChyZXN1bHRzOiBSZWRhY3Rpb25TZWFyY2gpID0+IHRoaXMucmVkYWN0QWxsU2VhcmNoZWQocmVzdWx0cykpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21Eb2N1bWVudC5nZXREb2N1bWVudElkKSkuc3Vic2NyaWJlKGRvY0lkID0+IHRoaXMuZG9jdW1lbnRJZCA9IGRvY0lkKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbURvY3VtZW50LmdldFBhZ2VzKSkuc3Vic2NyaWJlKChwYWdlcykgPT4ge1xuICAgICAgaWYgKHBhZ2VzWzFdKSB7XG4gICAgICAgIHRoaXMuYWxsUGFnZXMgPSBwYWdlcztcbiAgICAgIH1cbiAgICB9KSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaFJlc3VsdHNDb3VudFN1YmplY3Quc3Vic2NyaWJlKHJlc3VsdHMgPT4gdGhpcy5zZXRTZWFyY2hSZXN1bHRzQ291bnQocmVzdWx0cykpXG4gICAgKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy50b29sYmFyRXZlbnRzLm9wZW5SZWRhY3Rpb25TZWFyY2guc3Vic2NyaWJlKGlzT3BlbiA9PiB0aGlzLm9wZW5TZWFyY2hNb2RhbCA9IGlzT3BlbikpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnRvb2xiYXJFdmVudHMucmVkYWN0QWxsSW5Qcm9ncmVzc1N1YmplY3RcbiAgICAgIC5zdWJzY3JpYmUoaW5Qcm9ncmVzcyA9PiB0aGlzLnJlZGFjdEFsbEluUHJvZ3Jlc3MgPSBpblByb2dyZXNzKSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OmtleWRvd24nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25XaW5kb3dLZXlEb3duKGU6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAoZS5jb2RlID09PSAnRjMnIHx8IChlLmN0cmxLZXkgJiYgZS5jb2RlID09PSAnS2V5RicpKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoQmFySGlkZGVuLm5leHQoZmFsc2UpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpbmRJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCksIDIwMCk7XG4gICAgfVxuICB9XG5cbiAgc2VhcmNoKHJlc2V0OiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIHRoaXMucmVkYWN0QWxsID0gIXJlc2V0O1xuICAgIGlmICh0aGlzLnJlZGFjdEFsbCkge1xuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnJlZGFjdEFsbEluUHJvZ3Jlc3NTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfVxuICAgIGlmIChyZXNldCkge1xuICAgICAgdGhpcy5yZWRhY3RFbGVtZW50cyA9IFtdO1xuICAgIH1cbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoKHtcbiAgICAgIHNlYXJjaFRlcm06IHRoaXMuc2VhcmNoVGV4dCxcbiAgICAgIGhpZ2hsaWdodEFsbDogdGhpcy5oaWdobGlnaHRBbGwsXG4gICAgICBtYXRjaENhc2U6IHRoaXMubWF0Y2hDYXNlLFxuICAgICAgd2hvbGVXb3JkOiB0aGlzLndob2xlV29yZCxcbiAgICAgIHByZXZpb3VzOiBmYWxzZSxcbiAgICAgIHJlc2V0XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNhdmVSZWRhY3Rpb24ocmVkYWN0UmVjdGFuZ2xlOiBSZWRhY3RSZWN0YW5nbGVbXSkge1xuICAgIGNvbnN0IHJlZGFjdGlvbiA9IHJlZGFjdFJlY3RhbmdsZS5tYXAoZWxlID0+IHtcbiAgICAgIHJldHVybiB7IHBhZ2U6IGVsZS5wYWdlLCByZWN0YW5nbGVzOiBlbGUucmVjdGFuZ2xlcywgcmVkYWN0aW9uSWQ6IHV1aWQoKSwgZG9jdW1lbnRJZDogdGhpcy5kb2N1bWVudElkIH0gYXMgUmVkYWN0aW9uO1xuICAgIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21SZWRhY3Rpb25BY3Rpb25zLlNhdmVCdWxrUmVkYWN0aW9uKHsgc2VhcmNoUmVkYWN0aW9uczogcmVkYWN0aW9uIH0gYXMgQnVsa1JlZGFjdGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSBleGlzdEluUmVkYWN0RWxlbWVudHMocGFnZU51bWJlcjogbnVtYmVyLCBtYXRlY2hlZEluZGV4OiBudW1iZXIsIHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMucmVkYWN0RWxlbWVudHMgJiYgdGhpcy5yZWRhY3RFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYWdlc0ZvdW5kID0gdGhpcy5yZWRhY3RFbGVtZW50cy5maW5kKHJlID0+IHJlLnBhZ2UgPT09IHBhZ2VOdW1iZXIgJiYgcmUubWF0Y2hlZEluZGV4ID09PSBtYXRlY2hlZEluZGV4KTtcbiAgICAgIGNvbnN0IHBhZ2VSZWN0YW5nbGVzID0gcGFnZXNGb3VuZD8ucmVjdGFuZ2xlcztcbiAgICAgIGlmICghcGFnZVJlY3RhbmdsZXMgfHwgcGFnZVJlY3RhbmdsZXMubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgbGV0IG1hdGNoZXNSZWN0YW5nbGVzID0gMDtcbiAgICAgIGZvciAobGV0IHJlY3RJbmR4ID0gMDsgcmVjdEluZHggPCBwYWdlUmVjdGFuZ2xlcy5sZW5ndGg7IHJlY3RJbmR4KyspIHtcbiAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gcGFnZVJlY3RhbmdsZXNbcmVjdEluZHhdO1xuICAgICAgICBjb25zdCBmb3VuZFJlY3RhbmdsZSA9IHJlY3RhbmdsZXMuZmluZChyZSA9PiByZS53aWR0aCA9PT0gcmVjdGFuZ2xlLndpZHRoICYmXG4gICAgICAgICAgcmUuaGVpZ2h0ID09PSByZWN0YW5nbGUuaGVpZ2h0ICYmIHJlLnggPT09IHJlY3RhbmdsZS54ICYmIHJlLnkgPT09IHJlY3RhbmdsZS55KTtcbiAgICAgICAgaWYgKGZvdW5kUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgbWF0Y2hlc1JlY3RhbmdsZXMrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHBhZ2VSZWN0YW5nbGVzLmxlbmd0aCA9PT0gbWF0Y2hlc1JlY3RhbmdsZXM7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG9uQ2xvc2VTZWFyY2hNb2RhbCgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMub3BlblJlZGFjdGlvblNlYXJjaC5uZXh0KGZhbHNlKTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBzZXRTZWFyY2hSZXN1bHRzQ291bnQocmVzdWx0czogU2VhcmNoUmVzdWx0c0NvdW50KTogdm9pZCB7XG4gICAgdGhpcy5yZXN1bHRDb3VudCA9IHJlc3VsdHMudG90YWw7XG4gICAgdGhpcy5yZXN1bHRzVGV4dCA9IHRoaXMucmVzdWx0Q291bnQgPiAwXG4gICAgICA/IGAke3Jlc3VsdHMudG90YWx9IHJlc3VsdHMgZm91bmRzYFxuICAgICAgOiAnTm8gcmVzdWx0cyBmb3VuZCc7XG4gIH1cblxuICBwcml2YXRlIHJlZGFjdEFsbFNlYXJjaGVkKHJlc3VsdHM6IFJlZGFjdGlvblNlYXJjaCk6IHZvaWQge1xuICAgIGNvbnN0ICR0aGlzID0gdGhpcztcbiAgICBjb25zdCBpbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgY29uc3QgaGlnaGxpZ2h0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2hpZ2hsaWdodCBzZWxlY3RlZCcpO1xuICAgICAgaWYgKGhpZ2hsaWdodEVsZW1lbnQgJiYgaGlnaGxpZ2h0RWxlbWVudC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICAgICR0aGlzLnJlZGFjdEFsbFNlYXJjaGVkVGljayhyZXN1bHRzKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cblxuICBwcml2YXRlIHJlZGFjdEFsbFNlYXJjaGVkVGljayhyZXN1bHRzOiBSZWRhY3Rpb25TZWFyY2gpOiB2b2lkIHtcbiAgICBjb25zdCBoaWdobGlnaHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGlnaGxpZ2h0IHNlbGVjdGVkJyk7XG4gICAgaWYgKGhpZ2hsaWdodEVsZW1lbnQgJiYgaGlnaGxpZ2h0RWxlbWVudC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnJlc3VsdENvdW50ID0gcmVzdWx0cy5tYXRjaGVzQ291bnQ7XG4gICAgICBjb25zdCBwYWdlTnVtYmVyID0gcmVzdWx0cy5wYWdlICsgMTtcbiAgICAgIGNvbnN0IHJlY3RhbmdsZXMgPSB0aGlzLmdldFJlY3RhbmdsZXMocGFnZU51bWJlcik7XG4gICAgICBpZiAocmVjdGFuZ2xlcyAmJiB0aGlzLnJlZGFjdEVsZW1lbnRzLmxlbmd0aCA8PSB0aGlzLnJlc3VsdENvdW50XG4gICAgICAgICYmICF0aGlzLmV4aXN0SW5SZWRhY3RFbGVtZW50cyhwYWdlTnVtYmVyLCByZXN1bHRzLm1hdGNoZWRJbmRleCwgcmVjdGFuZ2xlcykpIHtcbiAgICAgICAgdGhpcy5yZWRhY3RFbGVtZW50cy5wdXNoKHsgcGFnZTogcGFnZU51bWJlciwgbWF0Y2hlZEluZGV4OiByZXN1bHRzPy5tYXRjaGVkSW5kZXgsIHJlY3RhbmdsZXMgfSBhcyBSZWRhY3RSZWN0YW5nbGUpO1xuICAgICAgICB0aGlzLkNyZWF0ZVJlZGFjdEFsbFRleHQoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJlZGFjdEFsbCAmJiB0aGlzLnJlc3VsdENvdW50ICYmIHRoaXMucmVzdWx0Q291bnQgPiAwXG4gICAgICAgICYmIHJlY3RhbmdsZXMgJiYgdGhpcy5yZWRhY3RFbGVtZW50cy5sZW5ndGggPCB0aGlzLnJlc3VsdENvdW50KSB7XG4gICAgICAgIHRoaXMuc2VhcmNoKGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucmVkYWN0QWxsICYmIHRoaXMucmVzdWx0Q291bnQgJiYgdGhpcy5yZWRhY3RFbGVtZW50cy5sZW5ndGggPT09IHRoaXMucmVzdWx0Q291bnQpIHtcbiAgICAgICAgdGhpcy5yZWRhY3RBbGwgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZWRhY3RBbGxUZXh0ID0gbnVsbDtcbiAgICAgICAgdGhpcy5zYXZlUmVkYWN0aW9uKHRoaXMucmVkYWN0RWxlbWVudHMpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgQ3JlYXRlUmVkYWN0QWxsVGV4dCgpIHtcbiAgICB0aGlzLnJlZGFjdEFsbFRleHQgPSBgJHt0aGlzLnJlZGFjdEVsZW1lbnRzLmxlbmd0aH0gb2YgJHt0aGlzLnJlc3VsdENvdW50fWA7XG4gIH1cblxuICBwdWJsaWMgb25Fc2NhcGVLZXlQcmVzcyhlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uRW50ZXJLZXlQcmVzcyhlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2goKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVTZWFyY2hCYXIoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5uZXh0KCF0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoQmFySGlkZGVuLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRSZWN0YW5nbGVzKHBhZ2U6IG51bWJlcik6IFJlY3RhbmdsZVtdIHtcbiAgICB0aGlzLnBhZ2VIZWlnaHQgPSB0aGlzLmFsbFBhZ2VzW3BhZ2VdLnN0eWxlcy5oZWlnaHQ7XG4gICAgdGhpcy5wYWdlV2lkdGggPSB0aGlzLmFsbFBhZ2VzW3BhZ2VdLnN0eWxlcy53aWR0aDtcbiAgICB0aGlzLnpvb20gPSBwYXJzZUZsb2F0KHRoaXMuYWxsUGFnZXNbcGFnZV0uc2NhbGVSb3RhdGlvbi5zY2FsZSk7XG4gICAgdGhpcy5yb3RhdGUgPSBwYXJzZUludCh0aGlzLmFsbFBhZ2VzW3BhZ2VdLnNjYWxlUm90YXRpb24ucm90YXRpb24sIDEwKTtcbiAgICBjb25zdCBzZWxlY3RlZEhpZ2hMaWdodGVkRWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdoaWdobGlnaHQgc2VsZWN0ZWQnKTtcbiAgICBpZiAoc2VsZWN0ZWRIaWdoTGlnaHRlZEVsZW1lbnRzICYmIHNlbGVjdGVkSGlnaExpZ2h0ZWRFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBkb2NSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7XG4gICAgICBkb2NSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoc2VsZWN0ZWRIaWdoTGlnaHRlZEVsZW1lbnRzWzBdIGFzIEhUTUxFbGVtZW50KTtcbiAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHdpbmRvdy5nZXRTZWxlY3Rpb24oKTtcbiAgICAgIHNlbGVjdGlvbj8ucmVtb3ZlQWxsUmFuZ2VzKCk7XG4gICAgICBzZWxlY3Rpb24/LmFkZFJhbmdlKGRvY1JhbmdlKTtcbiAgICAgIGlmIChzZWxlY3Rpb24ucmFuZ2VDb3VudCAmJiAhc2VsZWN0aW9uLmlzQ29sbGFwc2VkKSB7XG4gICAgICAgIGNvbnN0IHJhbmdlID0gc2VsZWN0aW9uLmdldFJhbmdlQXQoMCkuY2xvbmVSYW5nZSgpO1xuICAgICAgICBjb25zdCBjbGllbnRSZWN0cyA9IHJhbmdlLmdldENsaWVudFJlY3RzKCk7XG5cbiAgICAgICAgaWYgKGNsaWVudFJlY3RzKSB7XG4gICAgICAgICAgY29uc3QgcGFyZW50UmVjdCA9IHNlbGVjdGVkSGlnaExpZ2h0ZWRFbGVtZW50c1swXS5wYXJlbnRFbGVtZW50LnBhcmVudEVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uUmVjdGFuZ2xlczogUmVjdGFuZ2xlW10gPSBbXTtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNsaWVudFJlY3RzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3Rpb25SZWN0YW5nbGUgPSB0aGlzLmNyZWF0ZVRleHRSZWN0YW5nbGUoY2xpZW50UmVjdHNbaV0sIHBhcmVudFJlY3QpO1xuICAgICAgICAgICAgY29uc3QgZmluZFNlbGVjdHRpb25SZWN0YW5nbGUgPSBzZWxlY3Rpb25SZWN0YW5nbGVzLmZpbmQoXG4gICAgICAgICAgICAgIChyZWN0KSA9PiByZWN0LndpZHRoID09PSBzZWxlY3Rpb25SZWN0YW5nbGUud2lkdGggJiYgcmVjdC54ID09PSBzZWxlY3Rpb25SZWN0YW5nbGUueFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGlmICghZmluZFNlbGVjdHRpb25SZWN0YW5nbGUpIHtcbiAgICAgICAgICAgICAgc2VsZWN0aW9uUmVjdGFuZ2xlcy5wdXNoKHNlbGVjdGlvblJlY3RhbmdsZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmV0dXJuIHNlbGVjdGlvblJlY3RhbmdsZXM7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVRleHRSZWN0YW5nbGUocmVjdDogRE9NUmVjdCwgcGFyZW50UmVjdDogYW55KTogUmVjdGFuZ2xlIHtcbiAgICBjb25zdCBoZWlnaHQgPSByZWN0LmJvdHRvbSAtIHJlY3QudG9wO1xuICAgIGNvbnN0IHdpZHRoID0gcmVjdC5yaWdodCAtIHJlY3QubGVmdDtcbiAgICBjb25zdCB0b3AgPSByZWN0LnRvcCAtIHBhcmVudFJlY3QudG9wO1xuICAgIGNvbnN0IGxlZnQgPSByZWN0LmxlZnQgLSBwYXJlbnRSZWN0LmxlZnQ7XG5cbiAgICBsZXQgcmVjdGFuZ2xlID0gdGhpcy5oaWdobGlnaHRTZXJ2aWNlLmFwcGx5Um90YXRpb24oXG4gICAgICB0aGlzLnBhZ2VIZWlnaHQsXG4gICAgICB0aGlzLnBhZ2VXaWR0aCxcbiAgICAgIGhlaWdodCxcbiAgICAgIHdpZHRoLFxuICAgICAgdG9wLFxuICAgICAgbGVmdCxcbiAgICAgIHRoaXMucm90YXRlLFxuICAgICAgdGhpcy56b29tXG4gICAgKTtcbiAgICByZWN0YW5nbGUgPSB7IGlkOiB1dWlkKCksIC4uLnJlY3RhbmdsZSB9O1xuXG4gICAgcmV0dXJuIHJlY3RhbmdsZSBhcyBSZWN0YW5nbGU7XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJvcGVuU2VhcmNoTW9kYWxcIlxuICBjbGFzcz1cInNlYXJjaGJhciByZWRhY3Rpb24tc2VhcmNoLWJhciBnb3Z1ay0hLXBhZGRpbmctM1wiXG4+XG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1mdWxsIGdvdnVrLSEtcGFkZGluZy1yaWdodC0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVkYWN0aW9uLXNlYXJjaC1idXR0b25zLWFyZWFcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGlkPVwibXZDbG9zZUJ0blwiXG4gICAgICAgICAgI212Q2xvc2VCdG5cbiAgICAgICAgICBjbGFzcz1cIm12LWJ1dHRvbiBzZWFyY2hiYXItYnV0dG9uLS1jbG9zZVwiXG4gICAgICAgICAgdGl0bGU9XCJDbG9zZSBTZWFyY2hcIlxuICAgICAgICAgIGRhdGEtbDEwbi1pZD1cIm12UmVkYWN0QnRuXCJcbiAgICAgICAgICAoY2xpY2spPVwib25DbG9zZVNlYXJjaE1vZGFsKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBpZD1cInNlYXJjaF9pbnB1dFwiXG4gICAgICAgIGNsYXNzPVwiZ292dWstaW5wdXQgZ292dWstIS13aWR0aC10aHJlZS1xdWFydGVycyBnb3Z1ay0hLWRpc3BsYXktaW5saW5lLWJsb2NrIGdvdnVrLSEtbWFyZ2luLXRvcC01XCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiUmVkYWN0IGZyb20gc2VhcmNoXCJcbiAgICAgICAgI2ZpbmRJbnB1dFxuICAgICAgICB0aXRsZT1cIlJlZGFjdCBmcm9tIHNlYXJjaFwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ1JlZGFjdCBmcm9tIHNlYXJjaC4uLicgfCBycHhUcmFuc2xhdGUgfX1cIlxuICAgICAgICBkYXRhLWwxMG4taWQ9XCJzZWFyY2hfaW5wdXRcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlYXJjaFRleHRcIlxuICAgICAgICAoa2V5ZG93bi5lc2NhcGUpPVwib25Fc2NhcGVLZXlQcmVzcygkZXZlbnQpXCJcbiAgICAgICAgKGtleWRvd24uZW50ZXIpPVwib25FbnRlcktleVByZXNzKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZWRhY3Rpb24tc2VhcmNoLWJ1dHRvbnMtYXJlYVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgaWQ9XCJtdlNlYXJjaEFsbEJ0blwiXG4gICAgICAgICAgY2xhc3M9XCJnb3Z1ay1idXR0b24gZ292dWstIS1tYXJnaW4tYm90dG9tLTBcIlxuICAgICAgICAgIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VhcmNoKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWRhY3RBbGxJblByb2dyZXNzXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IFwiU2VhcmNoXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBpZD1cIm12UmVkYWN0QWxsQnRuXCJcbiAgICAgICAgICBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay0hLW1hcmdpbi1sZWZ0LTIgZ292dWstIS1tYXJnaW4tYm90dG9tLTBcIlxuICAgICAgICAgIGRhdGEtbW9kdWxlPVwiZ292dWstYnV0dG9uXCJcbiAgICAgICAgICAoY2xpY2spPVwic2VhcmNoKGZhbHNlKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgXCJSZWRhY3QgYWxsXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi10aHJlZS1xdWFydGVycyBnb3Z1ay0hLXBhZGRpbmctbGVmdC0wIGdvdnVrLSEtcGFkZGluZy10b3AtMiByZWRhY3Rpb24tc3RhdHVzLXRleHRcIlxuICAgICAgPlxuICAgICAgICA8c3BhblxuICAgICAgICAgIGlkPVwiZmluZFJlZGFjdFJlc3VsdHNDb3VudFwiXG4gICAgICAgICAgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi1mdWxsIGdvdnVrLSEtbWFyZ2luLXJpZ2h0LTQgZ292dWstIS1tYXJnaW4tbGVmdC0wIGdvdnVrLSEtcGFkZGluZy1sZWZ0LTBcIlxuICAgICAgICAgID48aDRcbiAgICAgICAgICAgIGNsYXNzPVwiZ292dWstIS1kaXNwbGF5LWlubGluZS1ibG9jayBnb3Z1ay0hLW1hcmdpbi10b3AtMCBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tMVwiXG4gICAgICAgICAgICAqbmdJZj1cInJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7IFwiUmVkYWN0aW5nIGluIHByb2dyZXNzXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2g0PlxuICAgICAgICAgIHt7IHJlZGFjdEFsbEluUHJvZ3Jlc3MgPyBcIlwiIDogcmVzdWx0c1RleHQgfX08L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICA8aDVcbiAgICAgICAgICAgIGlkPVwicmVkYWN0QWxsSW5Qcm9ncmVzc0NvdW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZ292dWstIS1kaXNwbGF5LWlubGluZS1ibG9jayBnb3Z1ay0hLW1hcmdpbi10b3AtMCBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tMVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgcmVkYWN0QWxsSW5Qcm9ncmVzcyA/IHJlZGFjdEFsbFRleHQgOiBcIlwiIH19XG4gICAgICAgICAgPC9oNT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9uLXNlYXJjaC1iYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdG9vbGJhci9yZWRhY3Rpb24tc2VhcmNoLWJhci9yZWRhY3Rpb24tc2VhcmNoLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3JlZGFjdGlvbi1zZWFyY2gtYmFyL3JlZGFjdGlvbi1zZWFyY2gtYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBa0MsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFeEYsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQXFCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlsRyxPQUFPLEVBQVMsTUFBTSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRzVDLE9BQU8sS0FBSyxZQUFZLE1BQU0sMENBQTBDLENBQUM7QUFDekUsT0FBTyxLQUFLLG9CQUFvQixNQUFNLHVDQUF1QyxDQUFDO0FBQzlFLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7Ozs7QUFPOUIsTUFBTSxPQUFPLDJCQUEyQjtJQThCdEMsWUFDVSxLQUE2QixFQUNyQixjQUE4QyxFQUM5QyxhQUFrQyxFQUNsQyxnQkFBd0M7UUFIaEQsVUFBSyxHQUFMLEtBQUssQ0FBd0I7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQWdDO1FBQzlDLGtCQUFhLEdBQWIsYUFBYSxDQUFxQjtRQUNsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXdCO1FBOUIxRCxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGNBQVMsR0FB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Q0FBQyxJQUFJLENBQUM7UUFDckMsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsR0FBRyxVQUFVLENBQUMsR0FBRyxDQUFDO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQztRQUV6QyxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxDQUNqRCxJQUFJLENBQUMsVUFBVSxFQUNmLElBQUksQ0FBQyxTQUFTLEVBQ2QsTUFBTSxFQUNOLEtBQUssRUFDTCxHQUFHLEVBQ0gsSUFBSSxFQUNKLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLElBQUksQ0FDVixDQUFDO1FBQ0YsU0FBUyxHQUFHLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEdBQUcsU0FBUyxFQUFFLENBQUM7UUFFekMsT0FBTyxTQUFzQixDQUFDO0lBQ2hDLENBQUM7OzRJQXhRVSwyQkFBMkI7Z0lBQTNCLDJCQUEyQiwyUENyQnhDLDRzRkEyRUE7NEZEdERhLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx5QkFBeUI7Z05BTU8sU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQThEakMsZUFBZTtzQkFEckIsWUFBWTt1QkFBQyxnQkFBZ0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJ1bGtSZWRhY3Rpb24sIFJlZGFjdGlvbiB9IGZyb20gJy4vLi4vLi4vcmVkYWN0aW9uL3NlcnZpY2VzL3JlZGFjdGlvbi5tb2RlbCc7XG5pbXBvcnQgeyBTZWFyY2hNb2RlLCBTZWFyY2hSZXN1bHRzQ291bnQsIFNlYXJjaFR5cGUgfSBmcm9tICcuLy4uL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBSZWRhY3Rpb25TZWFyY2gsIFJlZGFjdFJlY3RhbmdsZSB9IGZyb20gJy4vcmVkYWN0aW9uLXNlYXJjaC5tb2RlbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi90b29sYmFyLWJ1dHRvbi12aXNpYmlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTdG9yZSwgc2VsZWN0IH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgZnJvbVN0b3JlIGZyb20gJy4uLy4uL3N0b3JlL3JlZHVjZXJzL3JlZHVjZXJzJztcbmltcG9ydCB7IFJlY3RhbmdsZSB9IGZyb20gJy4uLy4uL2Fubm90YXRpb25zL2Fubm90YXRpb24tc2V0L2Fubm90YXRpb24tdmlldy9yZWN0YW5nbGUvcmVjdGFuZ2xlLm1vZGVsJztcbmltcG9ydCAqIGFzIGZyb21Eb2N1bWVudCBmcm9tICcuLi8uLi9zdG9yZS9zZWxlY3RvcnMvZG9jdW1lbnQuc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21SZWRhY3Rpb25BY3Rpb25zIGZyb20gJy4uLy4uL3N0b3JlL2FjdGlvbnMvcmVkYWN0aW9uLmFjdGlvbnMnO1xuaW1wb3J0IHV1aWQgZnJvbSAndXVpZCc7XG5pbXBvcnQgeyBIaWdobGlnaHRDcmVhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vYW5ub3RhdGlvbnMvYW5ub3RhdGlvbi1zZXQvYW5ub3RhdGlvbi1jcmVhdGUvaGlnaGxpZ2h0LWNyZWF0ZS9oaWdobGlnaHQtY3JlYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgc29tZSB9IGZyb20gJ2xvZGFzaCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LXJlZGFjdGlvbi1zZWFyY2gtYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZGFjdGlvbi1zZWFyY2gtYmFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcmVkYWN0aW9uLXNlYXJjaC1iYXIuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBSZWRhY3Rpb25TZWFyY2hCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgQFZpZXdDaGlsZCgnZmluZElucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgZmluZElucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuXG4gIGhpZ2hsaWdodEFsbCA9IHRydWU7XG4gIG1hdGNoQ2FzZSA9IGZhbHNlO1xuICB3aG9sZVdvcmQgPSBmYWxzZTtcbiAgcmVzdWx0c1RleHQgPSAnJztcbiAgc2VhcmNoVGV4dCA9ICcnO1xuICByZXN1bHRDb3VudCA9IDA7XG4gIHJlZGFjdEVsZW1lbnRzOiBSZWRhY3RSZWN0YW5nbGVbXSA9IFtdO1xuICBwYWdlSGVpZ2h0OiBudW1iZXI7XG4gIHBhZ2VXaWR0aDogbnVtYmVyO1xuICB6b29tOiBudW1iZXI7XG4gIHJvdGF0ZTogbnVtYmVyO1xuICBhbGxQYWdlczogb2JqZWN0O1xuICByZWRhY3RBbGw6IGJvb2xlYW47XG4gIG9wZW5TZWFyY2hNb2RhbDogYm9vbGVhbjtcbiAgcmVkYWN0QWxsSW5Qcm9ncmVzczogYm9vbGVhbjtcbiAgcmVkYWN0QWxsVGV4dD86IHN0cmluZztcbiAgc2VhcmNoVHlwZTogU2VhcmNoVHlwZTtcbiAgaW5Qcm9ncmVzc1RleHQ6IHN0cmluZztcbiAgdGl0bGVUZXh0OiBzdHJpbmc7XG5cblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRvY3VtZW50SWQ6IHN0cmluZztcbiAgcHVibGljIGFkdmFuY2VkU2VhcmNoVmlzaWJsZSA9IGZhbHNlO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8ZnJvbVN0b3JlLlN0YXRlPixcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckJ1dHRvbnM6IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgaGlnaGxpZ2h0U2VydmljZTogSGlnaGxpZ2h0Q3JlYXRlU2VydmljZSxcbiAgKSB7IH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRvb2xiYXJFdmVudHMucmVkYWN0aW9uU2VyYWNoU3ViamVjdC5zdWJzY3JpYmUoKHJlc3VsdHM6IFJlZGFjdGlvblNlYXJjaCkgPT4gdGhpcy5yZWRhY3RBbGxTZWFyY2hlZChyZXN1bHRzKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMuc3RvcmUucGlwZShzZWxlY3QoZnJvbURvY3VtZW50LmdldERvY3VtZW50SWQpKS5zdWJzY3JpYmUoZG9jSWQgPT4gdGhpcy5kb2N1bWVudElkID0gZG9jSWQpKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQodGhpcy5zdG9yZS5waXBlKHNlbGVjdChmcm9tRG9jdW1lbnQuZ2V0UGFnZXMpKS5zdWJzY3JpYmUoKHBhZ2VzKSA9PiB7XG4gICAgICBpZiAocGFnZXNbMV0pIHtcbiAgICAgICAgdGhpcy5hbGxQYWdlcyA9IHBhZ2VzO1xuICAgICAgfVxuICAgIH0pKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbi5hZGQoXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoUmVzdWx0c0NvdW50U3ViamVjdC5zdWJzY3JpYmUocmVzdWx0cyA9PiB0aGlzLnNldFNlYXJjaFJlc3VsdHNDb3VudChyZXN1bHRzKSlcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZCh0aGlzLnRvb2xiYXJFdmVudHMub3BlblJlZGFjdGlvblNlYXJjaC5zdWJzY3JpYmUoKHNlYXJjaE1vZGU6IFNlYXJjaE1vZGUpID0+IHtcbiAgICAgIGlmIChzZWFyY2hNb2RlKSB7XG4gICAgICAgIHRoaXMub3BlblNlYXJjaE1vZGFsID0gc2VhcmNoTW9kZS5pc09wZW47XG4gICAgICAgIHRoaXMuc2VhcmNoVHlwZSA9IHNlYXJjaE1vZGUubW9kZVR5cGU7XG4gICAgICAgIHRoaXMubW9kZVRleHQoKTtcbiAgICAgIH1cbiAgICB9KSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKHRoaXMudG9vbGJhckV2ZW50cy5yZWRhY3RBbGxJblByb2dyZXNzU3ViamVjdFxuICAgICAgLnN1YnNjcmliZShpblByb2dyZXNzID0+IHRoaXMucmVkYWN0QWxsSW5Qcm9ncmVzcyA9IGluUHJvZ3Jlc3MpKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbldpbmRvd0tleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChlLmNvZGUgPT09ICdGMycgfHwgKGUuY3RybEtleSAmJiBlLmNvZGUgPT09ICdLZXlGJykpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4ubmV4dChmYWxzZSk7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZmluZElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSwgMjAwKTtcbiAgICB9XG4gIH1cblxuICBzZWFyY2gocmVzZXQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XG4gICAgdGhpcy5yZWRhY3RBbGwgPSAhcmVzZXQ7XG4gICAgaWYgKHRoaXMucmVkYWN0QWxsKSB7XG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMucmVkYWN0QWxsSW5Qcm9ncmVzc1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9XG4gICAgaWYgKHJlc2V0KSB7XG4gICAgICB0aGlzLnJlZGFjdEVsZW1lbnRzID0gW107XG4gICAgfVxuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2goe1xuICAgICAgc2VhcmNoVGVybTogdGhpcy5zZWFyY2hUZXh0LFxuICAgICAgaGlnaGxpZ2h0QWxsOiB0aGlzLmhpZ2hsaWdodEFsbCxcbiAgICAgIG1hdGNoQ2FzZTogdGhpcy5tYXRjaENhc2UsXG4gICAgICB3aG9sZVdvcmQ6IHRoaXMud2hvbGVXb3JkLFxuICAgICAgcHJldmlvdXM6IGZhbHNlLFxuICAgICAgcmVzZXRcbiAgICB9KTtcbiAgfVxuXG4gIG1vZGVUZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlYXJjaFR5cGUgPT09IFNlYXJjaFR5cGUuSGlnaGxpZ2h0KSB7XG4gICAgICB0aGlzLmluUHJvZ3Jlc3NUZXh0ID0gJ0hpZ2hsaWdodGluZyc7XG4gICAgICB0aGlzLnRpdGxlVGV4dCA9ICdIaWdobGlnaHQnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBTZWFyY2hUeXBlLlJlZGFjdCkge1xuICAgICAgdGhpcy5pblByb2dyZXNzVGV4dCA9ICdSZWRhY3RpbmcnO1xuICAgICAgdGhpcy50aXRsZVRleHQgPSAnUmVkYWN0JztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNhdmVSZWRhY3Rpb24ocmVkYWN0UmVjdGFuZ2xlOiBSZWRhY3RSZWN0YW5nbGVbXSkge1xuICAgIGNvbnN0IHJlZGFjdGlvbiA9IHJlZGFjdFJlY3RhbmdsZS5tYXAoZWxlID0+IHtcbiAgICAgIHJldHVybiB7IHBhZ2U6IGVsZS5wYWdlLCByZWN0YW5nbGVzOiBlbGUucmVjdGFuZ2xlcywgcmVkYWN0aW9uSWQ6IHV1aWQoKSwgZG9jdW1lbnRJZDogdGhpcy5kb2N1bWVudElkIH0gYXMgUmVkYWN0aW9uO1xuICAgIH0pO1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2gobmV3IGZyb21SZWRhY3Rpb25BY3Rpb25zLlNhdmVCdWxrUmVkYWN0aW9uKHsgc2VhcmNoUmVkYWN0aW9uczogcmVkYWN0aW9uIH0gYXMgQnVsa1JlZGFjdGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSBleGlzdEluUmVkYWN0RWxlbWVudHMocGFnZU51bWJlcjogbnVtYmVyLCBtYXRlY2hlZEluZGV4OiBudW1iZXIsIHJlY3RhbmdsZXM6IFJlY3RhbmdsZVtdKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMucmVkYWN0RWxlbWVudHMgJiYgdGhpcy5yZWRhY3RFbGVtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYWdlc0ZvdW5kID0gdGhpcy5yZWRhY3RFbGVtZW50cy5maW5kKHJlID0+IHJlLnBhZ2UgPT09IHBhZ2VOdW1iZXIgJiYgcmUubWF0Y2hlZEluZGV4ID09PSBtYXRlY2hlZEluZGV4KTtcbiAgICAgIGNvbnN0IHBhZ2VSZWN0YW5nbGVzID0gcGFnZXNGb3VuZD8ucmVjdGFuZ2xlcztcbiAgICAgIGlmICghcGFnZVJlY3RhbmdsZXMgfHwgcGFnZVJlY3RhbmdsZXMubGVuZ3RoIDw9IDApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgbGV0IG1hdGNoZXNSZWN0YW5nbGVzID0gMDtcbiAgICAgIGZvciAobGV0IHJlY3RJbmR4ID0gMDsgcmVjdEluZHggPCBwYWdlUmVjdGFuZ2xlcy5sZW5ndGg7IHJlY3RJbmR4KyspIHtcbiAgICAgICAgY29uc3QgcmVjdGFuZ2xlID0gcGFnZVJlY3RhbmdsZXNbcmVjdEluZHhdO1xuICAgICAgICBjb25zdCBmb3VuZFJlY3RhbmdsZSA9IHJlY3RhbmdsZXMuZmluZChyZSA9PiByZS53aWR0aCA9PT0gcmVjdGFuZ2xlLndpZHRoICYmXG4gICAgICAgICAgcmUuaGVpZ2h0ID09PSByZWN0YW5nbGUuaGVpZ2h0ICYmIHJlLnggPT09IHJlY3RhbmdsZS54ICYmIHJlLnkgPT09IHJlY3RhbmdsZS55KTtcbiAgICAgICAgaWYgKGZvdW5kUmVjdGFuZ2xlKSB7XG4gICAgICAgICAgbWF0Y2hlc1JlY3RhbmdsZXMrKztcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIHBhZ2VSZWN0YW5nbGVzLmxlbmd0aCA9PT0gbWF0Y2hlc1JlY3RhbmdsZXM7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIG9uQ2xvc2VTZWFyY2hNb2RhbCgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMub3BlblJlZGFjdGlvblNlYXJjaC5uZXh0KHsgaXNPcGVuOiBmYWxzZSwgbW9kZVR5cGU6IHRoaXMuc2VhcmNoVHlwZSB9KTtcbiAgfVxuXG5cbiAgcHJpdmF0ZSBzZXRTZWFyY2hSZXN1bHRzQ291bnQocmVzdWx0czogU2VhcmNoUmVzdWx0c0NvdW50KTogdm9pZCB7XG4gICAgdGhpcy5yZXN1bHRDb3VudCA9IHJlc3VsdHMudG90YWw7XG4gICAgdGhpcy5yZXN1bHRzVGV4dCA9IHRoaXMucmVzdWx0Q291bnQgPiAwXG4gICAgICA/IGAke3Jlc3VsdHMudG90YWx9IHJlc3VsdHMgZm91bmRzYFxuICAgICAgOiAnTm8gcmVzdWx0cyBmb3VuZCc7XG4gIH1cblxuICBwcml2YXRlIHJlZGFjdEFsbFNlYXJjaGVkKHJlc3VsdHM6IFJlZGFjdGlvblNlYXJjaCk6IHZvaWQge1xuICAgIGNvbnN0ICR0aGlzID0gdGhpcztcbiAgICBjb25zdCBpbnRlcnZhbElkID0gc2V0SW50ZXJ2YWwoKCkgPT4ge1xuICAgICAgY29uc3QgaGlnaGxpZ2h0RWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoJ2hpZ2hsaWdodCBzZWxlY3RlZCcpO1xuICAgICAgaWYgKGhpZ2hsaWdodEVsZW1lbnQgJiYgaGlnaGxpZ2h0RWxlbWVudC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZCk7XG4gICAgICAgICR0aGlzLnJlZGFjdEFsbFNlYXJjaGVkVGljayhyZXN1bHRzKTtcbiAgICAgIH1cbiAgICB9LCAxMDApO1xuICB9XG5cblxuICBwcml2YXRlIHJlZGFjdEFsbFNlYXJjaGVkVGljayhyZXN1bHRzOiBSZWRhY3Rpb25TZWFyY2gpOiB2b2lkIHtcbiAgICBjb25zdCBoaWdobGlnaHRFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGlnaGxpZ2h0IHNlbGVjdGVkJyk7XG4gICAgaWYgKGhpZ2hsaWdodEVsZW1lbnQgJiYgaGlnaGxpZ2h0RWxlbWVudC5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLnJlc3VsdENvdW50ID0gcmVzdWx0cy5tYXRjaGVzQ291bnQ7XG4gICAgICBjb25zdCBwYWdlTnVtYmVyID0gcmVzdWx0cy5wYWdlICsgMTtcbiAgICAgIGNvbnN0IHJlY3RhbmdsZXMgPSB0aGlzLmdldFJlY3RhbmdsZXMocGFnZU51bWJlcik7XG4gICAgICBpZiAocmVjdGFuZ2xlcyAmJiB0aGlzLnJlZGFjdEVsZW1lbnRzLmxlbmd0aCA8PSB0aGlzLnJlc3VsdENvdW50XG4gICAgICAgICYmICF0aGlzLmV4aXN0SW5SZWRhY3RFbGVtZW50cyhwYWdlTnVtYmVyLCByZXN1bHRzLm1hdGNoZWRJbmRleCwgcmVjdGFuZ2xlcykpIHtcbiAgICAgICAgdGhpcy5yZWRhY3RFbGVtZW50cy5wdXNoKHsgcGFnZTogcGFnZU51bWJlciwgbWF0Y2hlZEluZGV4OiByZXN1bHRzPy5tYXRjaGVkSW5kZXgsIHJlY3RhbmdsZXMgfSBhcyBSZWRhY3RSZWN0YW5nbGUpO1xuICAgICAgICB0aGlzLkNyZWF0ZVJlZGFjdEFsbFRleHQoKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLnJlZGFjdEFsbCAmJiB0aGlzLnJlc3VsdENvdW50ICYmIHRoaXMucmVzdWx0Q291bnQgPiAwXG4gICAgICAgICYmIHJlY3RhbmdsZXMgJiYgdGhpcy5yZWRhY3RFbGVtZW50cy5sZW5ndGggPCB0aGlzLnJlc3VsdENvdW50KSB7XG4gICAgICAgIHRoaXMuc2VhcmNoKGZhbHNlKTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMucmVkYWN0QWxsICYmIHRoaXMucmVzdWx0Q291bnQgJiYgdGhpcy5yZWRhY3RFbGVtZW50cy5sZW5ndGggPT09IHRoaXMucmVzdWx0Q291bnQpIHtcbiAgICAgICAgdGhpcy5yZWRhY3RBbGwgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5yZWRhY3RBbGxUZXh0ID0gbnVsbDtcbiAgICAgICAgaWYgKHRoaXMuc2VhcmNoVHlwZSA9PT0gU2VhcmNoVHlwZS5SZWRhY3QpIHtcbiAgICAgICAgICB0aGlzLnNhdmVSZWRhY3Rpb24odGhpcy5yZWRhY3RFbGVtZW50cyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWFyY2hUeXBlID09PSBTZWFyY2hUeXBlLkhpZ2hsaWdodCkge1xuICAgICAgICAgIHRoaXMuaGlnaGxpZ2h0U2VydmljZS5zYXZlQW5ub3RhdGlvblNldCh0aGlzLnJlZGFjdEVsZW1lbnRzKTtcbiAgICAgICAgICB0aGlzLmNsZWFuVXBQb3N0U2F2ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjbGVhblVwUG9zdFNhdmUoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnJlZGFjdEFsbEluUHJvZ3Jlc3NTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIHRoaXMuc2VhcmNoVGV4dCA9ICcnO1xuICAgIHRoaXMuc2VhcmNoKCk7XG4gIH1cblxuICBwcml2YXRlIENyZWF0ZVJlZGFjdEFsbFRleHQoKSB7XG4gICAgdGhpcy5yZWRhY3RBbGxUZXh0ID0gYCR7dGhpcy5yZWRhY3RFbGVtZW50cy5sZW5ndGh9IG9mICR7dGhpcy5yZXN1bHRDb3VudH1gO1xuICB9XG5cbiAgcHVibGljIG9uRXNjYXBlS2V5UHJlc3MoZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4ubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkVudGVyS2V5UHJlc3MoZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlU2VhcmNoQmFyKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4ubmV4dCghdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0UmVjdGFuZ2xlcyhwYWdlOiBudW1iZXIpOiBSZWN0YW5nbGVbXSB7XG4gICAgdGhpcy5wYWdlSGVpZ2h0ID0gdGhpcy5hbGxQYWdlc1twYWdlXS5zdHlsZXMuaGVpZ2h0O1xuICAgIHRoaXMucGFnZVdpZHRoID0gdGhpcy5hbGxQYWdlc1twYWdlXS5zdHlsZXMud2lkdGg7XG4gICAgdGhpcy56b29tID0gcGFyc2VGbG9hdCh0aGlzLmFsbFBhZ2VzW3BhZ2VdLnNjYWxlUm90YXRpb24uc2NhbGUpO1xuICAgIHRoaXMucm90YXRlID0gcGFyc2VJbnQodGhpcy5hbGxQYWdlc1twYWdlXS5zY2FsZVJvdGF0aW9uLnJvdGF0aW9uLCAxMCk7XG4gICAgY29uc3Qgc2VsZWN0ZWRIaWdoTGlnaHRlZEVsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnaGlnaGxpZ2h0IHNlbGVjdGVkJyk7XG4gICAgaWYgKHNlbGVjdGVkSGlnaExpZ2h0ZWRFbGVtZW50cyAmJiBzZWxlY3RlZEhpZ2hMaWdodGVkRWxlbWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgY29uc3QgZG9jUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpO1xuICAgICAgaWYgKHNvbWUoc2VsZWN0ZWRIaWdoTGlnaHRlZEVsZW1lbnRzLCBlbGVtZW50ID0+IGVsZW1lbnQuY2xhc3NOYW1lID09PSAnaGlnaGxpZ2h0IGJlZ2luIHNlbGVjdGVkJyB8fCBlbGVtZW50LmNsYXNzTmFtZSA9PT0gJ2hpZ2hsaWdodCBlbmQgc2VsZWN0ZWQnKSkge1xuICAgICAgICBkb2NSYW5nZS5zZXRTdGFydChzZWxlY3RlZEhpZ2hMaWdodGVkRWxlbWVudHNbMF0sIDApO1xuICAgICAgICBjb25zdCBlbmROb2RlID0gc2VsZWN0ZWRIaWdoTGlnaHRlZEVsZW1lbnRzW3NlbGVjdGVkSGlnaExpZ2h0ZWRFbGVtZW50cy5sZW5ndGggLSAxXTtcbiAgICAgICAgZG9jUmFuZ2Uuc2V0RW5kKGVuZE5vZGUsIGVuZE5vZGUuY2hpbGROb2Rlcy5sZW5ndGgpO1xuICAgICAgfVxuICAgICAgZWxzZSB7XG4gICAgICAgIGRvY1JhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhzZWxlY3RlZEhpZ2hMaWdodGVkRWxlbWVudHNbMF0gYXMgSFRNTEVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgY29uc3Qgc2VsZWN0aW9uID0gd2luZG93LmdldFNlbGVjdGlvbigpO1xuICAgICAgc2VsZWN0aW9uPy5yZW1vdmVBbGxSYW5nZXMoKTtcbiAgICAgIHNlbGVjdGlvbj8uYWRkUmFuZ2UoZG9jUmFuZ2UpO1xuICAgICAgaWYgKHNlbGVjdGlvbi5yYW5nZUNvdW50ICYmICFzZWxlY3Rpb24uaXNDb2xsYXBzZWQpIHtcbiAgICAgICAgY29uc3QgcmFuZ2UgPSBzZWxlY3Rpb24uZ2V0UmFuZ2VBdCgwKS5jbG9uZVJhbmdlKCk7XG4gICAgICAgIGNvbnN0IGNsaWVudFJlY3RzID0gcmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKTtcblxuICAgICAgICBpZiAoY2xpZW50UmVjdHMpIHtcbiAgICAgICAgICBjb25zdCBwYXJlbnRSZWN0ID0gc2VsZWN0ZWRIaWdoTGlnaHRlZEVsZW1lbnRzWzBdLnBhcmVudEVsZW1lbnQucGFyZW50RWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICBjb25zdCBzZWxlY3Rpb25SZWN0YW5nbGVzOiBSZWN0YW5nbGVbXSA9IFtdO1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY2xpZW50UmVjdHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvblJlY3RhbmdsZSA9IHRoaXMuY3JlYXRlVGV4dFJlY3RhbmdsZShjbGllbnRSZWN0c1tpXSwgcGFyZW50UmVjdCk7XG4gICAgICAgICAgICBjb25zdCBmaW5kU2VsZWN0dGlvblJlY3RhbmdsZSA9IHNlbGVjdGlvblJlY3RhbmdsZXMuZmluZChcbiAgICAgICAgICAgICAgKHJlY3QpID0+IHJlY3Qud2lkdGggPT09IHNlbGVjdGlvblJlY3RhbmdsZS53aWR0aCAmJiByZWN0LnggPT09IHNlbGVjdGlvblJlY3RhbmdsZS54XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKCFmaW5kU2VsZWN0dGlvblJlY3RhbmdsZSkge1xuICAgICAgICAgICAgICBzZWxlY3Rpb25SZWN0YW5nbGVzLnB1c2goc2VsZWN0aW9uUmVjdGFuZ2xlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gc2VsZWN0aW9uUmVjdGFuZ2xlcztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlVGV4dFJlY3RhbmdsZShyZWN0OiBET01SZWN0LCBwYXJlbnRSZWN0OiBhbnkpOiBSZWN0YW5nbGUge1xuICAgIGNvbnN0IGhlaWdodCA9IHJlY3QuYm90dG9tIC0gcmVjdC50b3A7XG4gICAgY29uc3Qgd2lkdGggPSByZWN0LnJpZ2h0IC0gcmVjdC5sZWZ0O1xuICAgIGNvbnN0IHRvcCA9IHJlY3QudG9wIC0gcGFyZW50UmVjdC50b3A7XG4gICAgY29uc3QgbGVmdCA9IHJlY3QubGVmdCAtIHBhcmVudFJlY3QubGVmdDtcblxuICAgIGxldCByZWN0YW5nbGUgPSB0aGlzLmhpZ2hsaWdodFNlcnZpY2UuYXBwbHlSb3RhdGlvbihcbiAgICAgIHRoaXMucGFnZUhlaWdodCxcbiAgICAgIHRoaXMucGFnZVdpZHRoLFxuICAgICAgaGVpZ2h0LFxuICAgICAgd2lkdGgsXG4gICAgICB0b3AsXG4gICAgICBsZWZ0LFxuICAgICAgdGhpcy5yb3RhdGUsXG4gICAgICB0aGlzLnpvb21cbiAgICApO1xuICAgIHJlY3RhbmdsZSA9IHsgaWQ6IHV1aWQoKSwgLi4ucmVjdGFuZ2xlIH07XG5cbiAgICByZXR1cm4gcmVjdGFuZ2xlIGFzIFJlY3RhbmdsZTtcbiAgfVxufVxuIiwiPGRpdlxuICAqbmdJZj1cIm9wZW5TZWFyY2hNb2RhbFwiXG4gIGNsYXNzPVwic2VhcmNoYmFyIHJlZGFjdGlvbi1zZWFyY2gtYmFyIGdvdnVrLSEtcGFkZGluZy0zXCJcbj5cbiAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLWZ1bGwgZ292dWstIS1wYWRkaW5nLXJpZ2h0LTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZWRhY3Rpb24tc2VhcmNoLWJ1dHRvbnMtYXJlYVwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgaWQ9XCJtdkNsb3NlQnRuXCJcbiAgICAgICAgICAjbXZDbG9zZUJ0blxuICAgICAgICAgIGNsYXNzPVwibXYtYnV0dG9uIHNlYXJjaGJhci1idXR0b24tLWNsb3NlXCJcbiAgICAgICAgICB0aXRsZT1cIkNsb3NlIFNlYXJjaFwiXG4gICAgICAgICAgZGF0YS1sMTBuLWlkPVwibXZSZWRhY3RCdG5cIlxuICAgICAgICAgIChjbGljayk9XCJvbkNsb3NlU2VhcmNoTW9kYWwoKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlucHV0XG4gICAgICAgIGlkPVwic2VhcmNoX2lucHV0XCJcbiAgICAgICAgY2xhc3M9XCJnb3Z1ay1pbnB1dCBnb3Z1ay0hLXdpZHRoLXRocmVlLXF1YXJ0ZXJzIGdvdnVrLSEtZGlzcGxheS1pbmxpbmUtYmxvY2sgZ292dWstIS1tYXJnaW4tdG9wLTVcIlxuICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJSZWRhY3QgZnJvbSBzZWFyY2hcIlxuICAgICAgICAjZmluZElucHV0XG4gICAgICAgIHRpdGxlPVwiUmVkYWN0IGZyb20gc2VhcmNoXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJ7eyB0aXRsZVRleHQgKyAnIGZyb20gc2VhcmNoLi4uJyB8IHJweFRyYW5zbGF0ZSB9fVwiXG4gICAgICAgIGRhdGEtbDEwbi1pZD1cInNlYXJjaF9pbnB1dFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVGV4dFwiXG4gICAgICAgIChrZXlkb3duLmVzY2FwZSk9XCJvbkVzY2FwZUtleVByZXNzKCRldmVudClcIlxuICAgICAgICAoa2V5ZG93bi5lbnRlcik9XCJvbkVudGVyS2V5UHJlc3MoJGV2ZW50KVwiXG4gICAgICAvPlxuICAgICAgPGRpdiBjbGFzcz1cInJlZGFjdGlvbi1zZWFyY2gtYnV0dG9ucy1hcmVhXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBpZD1cIm12U2VhcmNoQWxsQnRuXCJcbiAgICAgICAgICBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tMFwiXG4gICAgICAgICAgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJzZWFyY2goKVwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInJlZGFjdEFsbEluUHJvZ3Jlc3NcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgXCJTZWFyY2hcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIGlkPVwibXZSZWRhY3RBbGxCdG5cIlxuICAgICAgICAgIGNsYXNzPVwiZ292dWstYnV0dG9uIGdvdnVrLSEtbWFyZ2luLWxlZnQtMiBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tMFwiXG4gICAgICAgICAgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAgIChjbGljayk9XCJzZWFyY2goZmFsc2UpXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwicmVkYWN0QWxsSW5Qcm9ncmVzcyB8fCByZXN1bHRDb3VudCA8PSAwXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IHRpdGxlVGV4dCArIFwiIGFsbFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tdGhyZWUtcXVhcnRlcnMgZ292dWstIS1wYWRkaW5nLWxlZnQtMCBnb3Z1ay0hLXBhZGRpbmctdG9wLTIgcmVkYWN0aW9uLXN0YXR1cy10ZXh0XCJcbiAgICAgID5cbiAgICAgICAgPHNwYW5cbiAgICAgICAgICBpZD1cImZpbmRSZWRhY3RSZXN1bHRzQ291bnRcIlxuICAgICAgICAgIGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbCBnb3Z1ay0hLW1hcmdpbi1yaWdodC00IGdvdnVrLSEtbWFyZ2luLWxlZnQtMCBnb3Z1ay0hLXBhZGRpbmctbGVmdC0wXCJcbiAgICAgICAgICA+PGg0XG4gICAgICAgICAgICBjbGFzcz1cImdvdnVrLSEtZGlzcGxheS1pbmxpbmUtYmxvY2sgZ292dWstIS1tYXJnaW4tdG9wLTAgZ292dWstIS1tYXJnaW4tYm90dG9tLTFcIlxuICAgICAgICAgICAgKm5nSWY9XCJyZWRhY3RBbGxJblByb2dyZXNzXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICB7eyBpblByb2dyZXNzVGV4dCArIFwiIGluIHByb2dyZXNzXCIgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgICAgICA8L2g0PlxuICAgICAgICAgIHt7IHJlZGFjdEFsbEluUHJvZ3Jlc3MgPyBcIlwiIDogcmVzdWx0c1RleHQgfX08L3NwYW5cbiAgICAgICAgPlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICA8aDVcbiAgICAgICAgICAgIGlkPVwicmVkYWN0QWxsSW5Qcm9ncmVzc0NvdW50XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZ292dWstIS1kaXNwbGF5LWlubGluZS1ibG9jayBnb3Z1ay0hLW1hcmdpbi10b3AtMCBnb3Z1ay0hLW1hcmdpbi1ib3R0b20tMVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgcmVkYWN0QWxsSW5Qcm9ncmVzcyA/IHJlZGFjdEFsbFRleHQgOiBcIlwiIH19XG4gICAgICAgICAgPC9oNT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -1,4 +1,5 @@
1
1
  import { Component, Input } from '@angular/core';
2
+ import { SearchType } from '../toolbar-event.service';
2
3
  import { select } from '@ngrx/store';
3
4
  import * as fromRedactSelectors from '../../store/selectors/redaction.selectors';
4
5
  import * as i0 from "@angular/core";
@@ -25,7 +26,7 @@ export class RedactionToolbarComponent {
25
26
  }));
26
27
  }
27
28
  onRedactAllSearch() {
28
- this.toolbarEventService.openRedactionSearch.next(true);
29
+ this.toolbarEventService.openRedactionSearch.next({ modeType: SearchType.Redact, isOpen: true });
29
30
  }
30
31
  toggleTextRedactionMode() {
31
32
  this.toolbarEventService.highlightModeSubject.next(true);
@@ -64,4 +65,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
64
65
  }], ctorParameters: function () { return [{ type: i1.ToolbarEventService }, { type: i2.ToolbarButtonVisibilityService }, { type: i3.Store }]; }, propDecorators: { showRedactSearch: [{
65
66
  type: Input
66
67
  }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdG9vbGJhci9yZWRhY3Rpb24tdG9vbGJhci9yZWRhY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3JlZGFjdGlvbi10b29sYmFyL3JlZGFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUVwRSxPQUFPLEVBQUUsTUFBTSxFQUFTLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sS0FBSyxtQkFBbUIsTUFBTSwyQ0FBMkMsQ0FBQzs7Ozs7OztBQVVqRixNQUFNLE9BQU8seUJBQXlCO0lBVXBDLFlBQTRCLG1CQUF3QyxFQUNsRCxjQUE4QyxFQUN0RCxLQUEwQztRQUZ4Qix3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXFCO1FBQ2xELG1CQUFjLEdBQWQsY0FBYyxDQUFnQztRQUN0RCxVQUFLLEdBQUwsS0FBSyxDQUFxQztRQVJwRCxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBRWQsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0lBS2EsQ0FBQztJQUV6RCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDNUcsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUM7UUFDdEQsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQywwQkFBMEIsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDakcsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFVBQVUsQ0FBQztRQUMzQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ04sQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELHVCQUF1QjtRQUNyQixJQUFJLENBQUMsbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxDQUFDLG1CQUFtQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsbUJBQW1CLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxNQUFNO1FBQ0osSUFBSSxDQUFDLG1CQUFtQixDQUFDLHdCQUF3QixFQUFFLENBQUM7SUFDdEQsQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsVUFBVTtRQUNSLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRUQsV0FBVztRQUNULEtBQUssTUFBTSxZQUFZLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUM3QyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDNUI7SUFDSCxDQUFDOzswSUE3RFUseUJBQXlCOzhIQUF6Qix5QkFBeUIsOEdDYnRDLHlySEF1SEE7NEZEMUdhLHlCQUF5QjtrQkFKckMsU0FBUzsrQkFDRSxzQkFBc0I7MktBS3ZCLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUb29sYmFyRXZlbnRTZXJ2aWNlIH0gZnJvbSAnLi4vdG9vbGJhci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgKiBhcyBmcm9tUmVkYWN0U2VsZWN0b3JzIGZyb20gJy4uLy4uL3N0b3JlL3NlbGVjdG9ycy9yZWRhY3Rpb24uc2VsZWN0b3JzJztcbmltcG9ydCAqIGFzIGZyb21TdG9yZSBmcm9tICcuLi8uLi9zdG9yZS9yZWR1Y2Vycy9yZWR1Y2Vycyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZSB9IGZyb20gJy4uL3Rvb2xiYXItYnV0dG9uLXZpc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBUaGlzUmVjZWl2ZXIgfSBmcm9tICdAYW5ndWxhci9jb21waWxlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LXJlZGFjdGlvbi10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZGFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBSZWRhY3Rpb25Ub29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHNob3dSZWRhY3RTZWFyY2g6IGJvb2xlYW47XG5cbiAgcHJldmlldyA9IGZhbHNlO1xuICBoYXNSZWRhY3Rpb25zID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICByZWRhY3Rpb25BbGxJblByb2dyZXNzOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB0b29sYmFyRXZlbnRTZXJ2aWNlOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyQnV0dG9uczogVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+KSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21SZWRhY3RTZWxlY3RvcnMuZ2V0UmVkYWN0aW9uQXJyYXkpKS5zdWJzY3JpYmUocmVkYWN0aW9ucyA9PiB7XG4gICAgICB0aGlzLmhhc1JlZGFjdGlvbnMgPSAhIXJlZGFjdGlvbnMucmVkYWN0aW9ucy5sZW5ndGg7XG4gICAgfSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudG9vbGJhckV2ZW50U2VydmljZS5yZWRhY3RBbGxJblByb2dyZXNzU3ViamVjdC5zdWJzY3JpYmUoaW5wcm9ncmVzcyA9PiB7XG4gICAgICB0aGlzLnJlZGFjdGlvbkFsbEluUHJvZ3Jlc3MgPSBpbnByb2dyZXNzO1xuICAgIH0pKTtcbiAgfVxuXG4gIG9uUmVkYWN0QWxsU2VhcmNoKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50U2VydmljZS5vcGVuUmVkYWN0aW9uU2VhcmNoLm5leHQodHJ1ZSk7XG4gIH1cblxuICB0b2dnbGVUZXh0UmVkYWN0aW9uTW9kZSgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudFNlcnZpY2UuaGlnaGxpZ2h0TW9kZVN1YmplY3QubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHRvZ2dsZURyYXdNb2RlKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50U2VydmljZS5kcmF3TW9kZVN1YmplY3QubmV4dCh0cnVlKTtcbiAgfVxuXG4gIHRvZ2dsZVByZXZpZXcoKSB7XG4gICAgdGhpcy5wcmV2aWV3ID0gIXRoaXMucHJldmlldztcbiAgICB0aGlzLnRvb2xiYXJFdmVudFNlcnZpY2UudG9nZ2xlUmVkYWN0aW9uUHJldmlldyh0aGlzLnByZXZpZXcpO1xuICB9XG5cbiAgdW5tYXJrQWxsKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50U2VydmljZS51bm1hcmtBbGwoKTtcbiAgfVxuXG4gIHJlZGFjdCgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudFNlcnZpY2UuYXBwbHlSZWRhY3Rpb25Ub0RvY3VtZW50KCk7XG4gIH1cblxuICB0b2dnbGVSZWRhY3RCYXIoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRTZXJ2aWNlLnRvZ2dsZVJlZGFjdGlvbk1vZGUoKTtcbiAgfVxuXG4gIHJlZGFjdFBhZ2UoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRTZXJ2aWNlLmRyYXdNb2RlU3ViamVjdC5uZXh0KHRydWUpO1xuICAgIHRoaXMudG9vbGJhckV2ZW50U2VydmljZS5yZWRhY3RQYWdlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiB0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInJlZGFjdGlvblwiPlxuICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCByZWRhY3Rpb24tdGl0bGVcIiBkYXRhLWwxMG4taWQ9XCJyZWRhY3Rpb25fb3B0aW9uc1wiPnt7XG4gICAgXCJSZWRhY3Rpb24gb3B0aW9uc1wiIHwgcnB4VHJhbnNsYXRlXG4gIH19PC9sYWJlbD5cbiAgPGJ1dHRvblxuICAgIGlkPVwidG9nZ2xlRHJhd0J1dHRvblwiXG4gICAgY2xhc3M9XCJtdi1idXR0b24gcmVkYWN0aW9uLWJ1dHRvbi0tZHJhd1wiXG4gICAgdGl0bGU9XCJ7eyAnRHJhdyBhIGJveCcgfCBycHhUcmFuc2xhdGUgfX19XCJcbiAgICBkYXRhLWwxMG4taWQ9XCJ0b2dnbGVEcmF3QnV0dG9uXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlRHJhd01vZGUoKVwiXG4gICAgW2Rpc2FibGVkXT1cInJlZGFjdGlvbkFsbEluUHJvZ3Jlc3NcIlxuICA+XG4gICAgPHNwYW4gZGF0YS1sMTBuLWlkPVwidG9nZ2xlRHJhd0J1dHRvbl9sYWJlbFwiPnt7XG4gICAgICBcIkRyYXcgYSBib3hcIiB8IHJweFRyYW5zbGF0ZVxuICAgIH19PC9zcGFuPlxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgaWQ9XCJyZWRhY3RQYWdlQnV0dG9uXCJcbiAgICBjbGFzcz1cIm12LWJ1dHRvbiByZWRhY3Rpb24tYnV0dG9uLS1yZWRhY3QtcGFnZVwiXG4gICAgdGl0bGU9XCJ7eyAnUmVkYWN0IHBhZ2UnIHwgcnB4VHJhbnNsYXRlIH19XCJcbiAgICBkYXRhLWwxMG4taWQ9XCJyZWRhY3RQYWdlQnV0dG9uXCJcbiAgICAoY2xpY2spPVwicmVkYWN0UGFnZSgpXCJcbiAgICBbZGlzYWJsZWRdPVwicmVkYWN0aW9uQWxsSW5Qcm9ncmVzc1wiXG4gID5cbiAgICA8c3BhbiBkYXRhLWwxMG4taWQ9XCJyZWRhY3RQYWdlQnV0dG9uX2xhYmVsXCI+e3tcbiAgICAgIFwiUmVkYWN0IHBhZ2VcIiB8IHJweFRyYW5zbGF0ZVxuICAgIH19PC9zcGFuPlxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwic2hvd1JlZGFjdFNlYXJjaFwiXG4gICAgaWQ9XCJtdlJlZGFjdEZyb21TZWFyY2hCdG5cIlxuICAgIHRpdGxlPVwie3sgJ0Zyb20gc2VhcmNoJyB8IHJweFRyYW5zbGF0ZSB9fVwiXG4gICAgZGF0YS1sMTBuLWlkPVwiZnJvbVNlYXJjaEJ1dHRvblwiXG4gICAgY2xhc3M9XCJtdi1idXR0b24gcmVkYWN0aW9uLWJ1dHRvbi0tc2VhcmNoXCJcbiAgICAoY2xpY2spPVwib25SZWRhY3RBbGxTZWFyY2goKVwiXG4gICAgW2Rpc2FibGVkXT1cInJlZGFjdGlvbkFsbEluUHJvZ3Jlc3NcIlxuICA+XG4gICAgPHNwYW4gc3R5bGU9XCJ3aWR0aDogNXJlbVwiIGRhdGEtbDEwbi1pZD1cImZyb21TZWFyY2hCdXR0b25fbGFiZWxcIj57e1xuICAgICAgXCJGcm9tIHNlYXJjaFwiIHwgcnB4VHJhbnNsYXRlXG4gICAgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICAqbmdJZj1cInRvb2xiYXJCdXR0b25zLnNob3dIaWdobGlnaHRCdXR0b25cIlxuICAgIGlkPVwidG9nZ2xlSGlnaGxpZ2h0QnV0dG9uXCJcbiAgICBjbGFzcz1cIm12LWJ1dHRvbiByZWRhY3Rpb24tYnV0dG9uLS1yZWRhY3RcIlxuICAgIGFyaWEtcHJlc3NlZD1cImZhbHNlXCJcbiAgICB0aXRsZT1cInt7ICdSZWRhY3QgdGV4dCcgfCBycHhUcmFuc2xhdGUgfX1cIlxuICAgIGRhdGEtbDEwbi1pZD1cInRvZ2dsZVRleHRSZWRhY3Rpb25CdXR0b25cIlxuICAgIChjbGljayk9XCJ0b2dnbGVUZXh0UmVkYWN0aW9uTW9kZSgpXCJcbiAgICBbZGlzYWJsZWRdPVwicmVkYWN0aW9uQWxsSW5Qcm9ncmVzc1wiXG4gID5cbiAgICA8c3BhbiBkYXRhLWwxMG4taWQ9XCJ0b2dnbGVUZXh0UmVkYWN0aW9uQnV0dG9uX2xhYmVsXCI+e3tcbiAgICAgIFwiUmVkYWN0IHRleHRcIiB8IHJweFRyYW5zbGF0ZVxuICAgIH19PC9zcGFuPlxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgW2Rpc2FibGVkXT1cIiFoYXNSZWRhY3Rpb25zIHx8IHJlZGFjdGlvbkFsbEluUHJvZ3Jlc3NcIlxuICAgIGlkPVwibXZDbGVhckJ0blwiXG4gICAgI212Q2xlYXJCdG5cbiAgICBjbGFzcz1cIm12LWJ1dHRvbiByZWRhY3Rpb24tYnV0dG9uLS1jbGVhclwiXG4gICAgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIlxuICAgIHRpdGxlPVwie3sgJ0NsZWFyIGFsbCcgfCBycHhUcmFuc2xhdGUgfX1cIlxuICAgIGRhdGEtbDEwbi1pZD1cInRvZ2dsZUNsZWFyQWxsQnV0dG9uXCJcbiAgICAoY2xpY2spPVwidW5tYXJrQWxsKClcIlxuICA+XG4gICAgPHNwYW4gZGF0YS1sMTBuLWlkPVwiQ2xlYXIgYWxsXCI+e3sgXCJDbGVhciBhbGxcIiB8IHJweFRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvblxuICAgIFtkaXNhYmxlZF09XCIhaGFzUmVkYWN0aW9ucyB8fCByZWRhY3Rpb25BbGxJblByb2dyZXNzXCJcbiAgICBpZD1cIm12UHJldmlld0J0blwiXG4gICAgY2xhc3M9XCJtdi1idXR0b25cIlxuICAgIFtjbGFzcy5yZWRhY3Rpb24tYnV0dG9uLS1wcmV2aWV3XT1cIiFwcmV2aWV3XCJcbiAgICBbY2xhc3MucmVkYWN0aW9uLWJ1dHRvbi0taGlkZS1wcmV2aWV3XT1cInByZXZpZXdcIlxuICAgIHJlZGFjdGlvbi1idXR0b24tLXByZXZpZXdcbiAgICBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiXG4gICAgdGl0bGU9XCJ7eyAnUHJldmlldycgfCBycHhUcmFuc2xhdGUgfX1cIlxuICAgIGRhdGEtbDEwbi1pZD1cInRvZ2dsZVByZXZpZXdCdXR0b25cIlxuICAgIChjbGljayk9XCJ0b2dnbGVQcmV2aWV3KClcIlxuICA+XG4gICAgPHNwYW4gKm5nSWY9XCIhcHJldmlld1wiIGRhdGEtbDEwbi1pZD1cInJlZGFjdGlvbi1wcmV2aWV3X2xhYmVsXCI+e3tcbiAgICAgIFwiUHJldmlld1wiIHwgcnB4VHJhbnNsYXRlXG4gICAgfX08L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCJwcmV2aWV3XCIgZGF0YS1sMTBuLWlkPVwicmVkYWN0aW9uLWhpZGUtcHJldmlld19sYWJlbFwiPnt7XG4gICAgICBcIkhpZGUgcHJldmlld1wiIHwgcnB4VHJhbnNsYXRlXG4gICAgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICBbZGlzYWJsZWRdPVwiIWhhc1JlZGFjdGlvbnMgfHwgcmVkYWN0aW9uQWxsSW5Qcm9ncmVzc1wiXG4gICAgaWQ9XCJtdlJlZGFjdEJ0blwiXG4gICAgY2xhc3M9XCJtdi1idXR0b24gcmVkYWN0aW9uLWJ1dHRvbi0tZG93bmxvYWRcIlxuICAgIGFyaWEtcHJlc3NlZD1cImZhbHNlXCJcbiAgICB0aXRsZT1cInt7ICdTYXZlIGRvY3VtZW50JyB8IHJweFRyYW5zbGF0ZSB9fVwiXG4gICAgZGF0YS1sMTBuLWlkPVwibXZSZWRhY3RCdG5cIlxuICAgIChjbGljayk9XCJyZWRhY3QoKVwiXG4gID5cbiAgICA8c3BhbiBkYXRhLWwxMG4taWQ9XCJTYXZlIERvY3VtZW50XCI+e3tcbiAgICAgIFwiU2F2ZSBkb2N1bWVudFwiIHwgcnB4VHJhbnNsYXRlXG4gICAgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICBpZD1cIm12Q2xvc2VCdG5cIlxuICAgICNtdkNsb3NlQnRuXG4gICAgY2xhc3M9XCJtdi1idXR0b24gcmVkYWN0aW9uLWJ1dHRvbi0tY2xvc2VcIlxuICAgIHRpdGxlPVwie3sgJ0Nsb3NlIFJlZGFjdGlvbicgfCBycHhUcmFuc2xhdGUgfX1cIlxuICAgIGRhdGEtbDEwbi1pZD1cIm12UmVkYWN0QnRuXCJcbiAgICAoY2xpY2spPVwidG9nZ2xlUmVkYWN0QmFyKClcIlxuICAgIFtkaXNhYmxlZF09XCJyZWRhY3Rpb25BbGxJblByb2dyZXNzXCJcbiAgPlxuICAgIDxzcGFuIGRhdGEtbDEwbi1pZD1cIkNsb3NlIFJlZGFjdGlvblwiPnt7XG4gICAgICBcIkNsb3NlIFJlZGFjdGlvblwiIHwgcnB4VHJhbnNsYXRlXG4gICAgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVkYWN0aW9uLXRvb2xiYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdG9vbGJhci9yZWRhY3Rpb24tdG9vbGJhci9yZWRhY3Rpb24tdG9vbGJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3JlZGFjdGlvbi10b29sYmFyL3JlZGFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsVUFBVSxFQUF1QixNQUFNLDBCQUEwQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxNQUFNLEVBQVMsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxLQUFLLG1CQUFtQixNQUFNLDJDQUEyQyxDQUFDOzs7Ozs7O0FBVWpGLE1BQU0sT0FBTyx5QkFBeUI7SUFVcEMsWUFBNEIsbUJBQXdDLEVBQ2xELGNBQThDLEVBQ3RELEtBQTBDO1FBRnhCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7UUFDbEQsbUJBQWMsR0FBZCxjQUFjLENBQWdDO1FBQ3RELFVBQUssR0FBTCxLQUFLLENBQXFDO1FBUnBELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFFZCxrQkFBYSxHQUFtQixFQUFFLENBQUM7SUFLYSxDQUFDO0lBRXpELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsbUJBQW1CLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUM1RyxJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztRQUN0RCxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLDBCQUEwQixDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNqRyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsVUFBVSxDQUFDO1FBQzNDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ25HLENBQUM7SUFFRCx1QkFBdUI7UUFDckIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxhQUFhO1FBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsU0FBUztRQUNQLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2QyxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO0lBQ3RELENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixFQUFFLENBQUM7SUFDakQsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVELFdBQVc7UUFDVCxLQUFLLE1BQU0sWUFBWSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDN0MsWUFBWSxDQUFDLFdBQVcsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQzs7MElBN0RVLHlCQUF5Qjs4SEFBekIseUJBQXlCLDhHQ2J0Qyx5ckhBdUhBOzRGRDFHYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0Usc0JBQXNCOzJLQUt2QixnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VhcmNoVHlwZSwgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0ICogYXMgZnJvbVJlZGFjdFNlbGVjdG9ycyBmcm9tICcuLi8uLi9zdG9yZS9zZWxlY3RvcnMvcmVkYWN0aW9uLnNlbGVjdG9ycyc7XG5pbXBvcnQgKiBhcyBmcm9tU3RvcmUgZnJvbSAnLi4vLi4vc3RvcmUvcmVkdWNlcnMvcmVkdWNlcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBUb29sYmFyQnV0dG9uVmlzaWJpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi90b29sYmFyLWJ1dHRvbi12aXNpYmlsaXR5LnNlcnZpY2UnO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LXJlZGFjdGlvbi10b29sYmFyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3JlZGFjdGlvbi10b29sYmFyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBSZWRhY3Rpb25Ub29sYmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCgpIHNob3dSZWRhY3RTZWFyY2g6IGJvb2xlYW47XG5cbiAgcHJldmlldyA9IGZhbHNlO1xuICBoYXNSZWRhY3Rpb25zID0gZmFsc2U7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuICByZWRhY3Rpb25BbGxJblByb2dyZXNzOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSB0b29sYmFyRXZlbnRTZXJ2aWNlOiBUb29sYmFyRXZlbnRTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyQnV0dG9uczogVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgc3RvcmU6IFN0b3JlPGZyb21TdG9yZS5Bbm5vdGF0aW9uU2V0U3RhdGU+KSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaCh0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KGZyb21SZWRhY3RTZWxlY3RvcnMuZ2V0UmVkYWN0aW9uQXJyYXkpKS5zdWJzY3JpYmUocmVkYWN0aW9ucyA9PiB7XG4gICAgICB0aGlzLmhhc1JlZGFjdGlvbnMgPSAhIXJlZGFjdGlvbnMucmVkYWN0aW9ucy5sZW5ndGg7XG4gICAgfSkpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHRoaXMudG9vbGJhckV2ZW50U2VydmljZS5yZWRhY3RBbGxJblByb2dyZXNzU3ViamVjdC5zdWJzY3JpYmUoaW5wcm9ncmVzcyA9PiB7XG4gICAgICB0aGlzLnJlZGFjdGlvbkFsbEluUHJvZ3Jlc3MgPSBpbnByb2dyZXNzO1xuICAgIH0pKTtcbiAgfVxuXG4gIG9uUmVkYWN0QWxsU2VhcmNoKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50U2VydmljZS5vcGVuUmVkYWN0aW9uU2VhcmNoLm5leHQoeyBtb2RlVHlwZTogU2VhcmNoVHlwZS5SZWRhY3QsIGlzT3BlbjogdHJ1ZSB9KTtcbiAgfVxuXG4gIHRvZ2dsZVRleHRSZWRhY3Rpb25Nb2RlKCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50U2VydmljZS5oaWdobGlnaHRNb2RlU3ViamVjdC5uZXh0KHRydWUpO1xuICB9XG5cbiAgdG9nZ2xlRHJhd01vZGUoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRTZXJ2aWNlLmRyYXdNb2RlU3ViamVjdC5uZXh0KHRydWUpO1xuICB9XG5cbiAgdG9nZ2xlUHJldmlldygpIHtcbiAgICB0aGlzLnByZXZpZXcgPSAhdGhpcy5wcmV2aWV3O1xuICAgIHRoaXMudG9vbGJhckV2ZW50U2VydmljZS50b2dnbGVSZWRhY3Rpb25QcmV2aWV3KHRoaXMucHJldmlldyk7XG4gIH1cblxuICB1bm1hcmtBbGwoKSB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRTZXJ2aWNlLnVubWFya0FsbCgpO1xuICB9XG5cbiAgcmVkYWN0KCkge1xuICAgIHRoaXMudG9vbGJhckV2ZW50U2VydmljZS5hcHBseVJlZGFjdGlvblRvRG9jdW1lbnQoKTtcbiAgfVxuXG4gIHRvZ2dsZVJlZGFjdEJhcigpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudFNlcnZpY2UudG9nZ2xlUmVkYWN0aW9uTW9kZSgpO1xuICB9XG5cbiAgcmVkYWN0UGFnZSgpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudFNlcnZpY2UuZHJhd01vZGVTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgdGhpcy50b29sYmFyRXZlbnRTZXJ2aWNlLnJlZGFjdFBhZ2UoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGZvciAoY29uc3Qgc3Vic2NyaXB0aW9uIG9mIHRoaXMuc3Vic2NyaXB0aW9ucykge1xuICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwicmVkYWN0aW9uXCI+XG4gIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIHJlZGFjdGlvbi10aXRsZVwiIGRhdGEtbDEwbi1pZD1cInJlZGFjdGlvbl9vcHRpb25zXCI+e3tcbiAgICBcIlJlZGFjdGlvbiBvcHRpb25zXCIgfCBycHhUcmFuc2xhdGVcbiAgfX08L2xhYmVsPlxuICA8YnV0dG9uXG4gICAgaWQ9XCJ0b2dnbGVEcmF3QnV0dG9uXCJcbiAgICBjbGFzcz1cIm12LWJ1dHRvbiByZWRhY3Rpb24tYnV0dG9uLS1kcmF3XCJcbiAgICB0aXRsZT1cInt7ICdEcmF3IGEgYm94JyB8IHJweFRyYW5zbGF0ZSB9fX1cIlxuICAgIGRhdGEtbDEwbi1pZD1cInRvZ2dsZURyYXdCdXR0b25cIlxuICAgIChjbGljayk9XCJ0b2dnbGVEcmF3TW9kZSgpXCJcbiAgICBbZGlzYWJsZWRdPVwicmVkYWN0aW9uQWxsSW5Qcm9ncmVzc1wiXG4gID5cbiAgICA8c3BhbiBkYXRhLWwxMG4taWQ9XCJ0b2dnbGVEcmF3QnV0dG9uX2xhYmVsXCI+e3tcbiAgICAgIFwiRHJhdyBhIGJveFwiIHwgcnB4VHJhbnNsYXRlXG4gICAgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICBpZD1cInJlZGFjdFBhZ2VCdXR0b25cIlxuICAgIGNsYXNzPVwibXYtYnV0dG9uIHJlZGFjdGlvbi1idXR0b24tLXJlZGFjdC1wYWdlXCJcbiAgICB0aXRsZT1cInt7ICdSZWRhY3QgcGFnZScgfCBycHhUcmFuc2xhdGUgfX1cIlxuICAgIGRhdGEtbDEwbi1pZD1cInJlZGFjdFBhZ2VCdXR0b25cIlxuICAgIChjbGljayk9XCJyZWRhY3RQYWdlKClcIlxuICAgIFtkaXNhYmxlZF09XCJyZWRhY3Rpb25BbGxJblByb2dyZXNzXCJcbiAgPlxuICAgIDxzcGFuIGRhdGEtbDEwbi1pZD1cInJlZGFjdFBhZ2VCdXR0b25fbGFiZWxcIj57e1xuICAgICAgXCJSZWRhY3QgcGFnZVwiIHwgcnB4VHJhbnNsYXRlXG4gICAgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJzaG93UmVkYWN0U2VhcmNoXCJcbiAgICBpZD1cIm12UmVkYWN0RnJvbVNlYXJjaEJ0blwiXG4gICAgdGl0bGU9XCJ7eyAnRnJvbSBzZWFyY2gnIHwgcnB4VHJhbnNsYXRlIH19XCJcbiAgICBkYXRhLWwxMG4taWQ9XCJmcm9tU2VhcmNoQnV0dG9uXCJcbiAgICBjbGFzcz1cIm12LWJ1dHRvbiByZWRhY3Rpb24tYnV0dG9uLS1zZWFyY2hcIlxuICAgIChjbGljayk9XCJvblJlZGFjdEFsbFNlYXJjaCgpXCJcbiAgICBbZGlzYWJsZWRdPVwicmVkYWN0aW9uQWxsSW5Qcm9ncmVzc1wiXG4gID5cbiAgICA8c3BhbiBzdHlsZT1cIndpZHRoOiA1cmVtXCIgZGF0YS1sMTBuLWlkPVwiZnJvbVNlYXJjaEJ1dHRvbl9sYWJlbFwiPnt7XG4gICAgICBcIkZyb20gc2VhcmNoXCIgfCBycHhUcmFuc2xhdGVcbiAgICB9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwidG9vbGJhckJ1dHRvbnMuc2hvd0hpZ2hsaWdodEJ1dHRvblwiXG4gICAgaWQ9XCJ0b2dnbGVIaWdobGlnaHRCdXR0b25cIlxuICAgIGNsYXNzPVwibXYtYnV0dG9uIHJlZGFjdGlvbi1idXR0b24tLXJlZGFjdFwiXG4gICAgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIlxuICAgIHRpdGxlPVwie3sgJ1JlZGFjdCB0ZXh0JyB8IHJweFRyYW5zbGF0ZSB9fVwiXG4gICAgZGF0YS1sMTBuLWlkPVwidG9nZ2xlVGV4dFJlZGFjdGlvbkJ1dHRvblwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZVRleHRSZWRhY3Rpb25Nb2RlKClcIlxuICAgIFtkaXNhYmxlZF09XCJyZWRhY3Rpb25BbGxJblByb2dyZXNzXCJcbiAgPlxuICAgIDxzcGFuIGRhdGEtbDEwbi1pZD1cInRvZ2dsZVRleHRSZWRhY3Rpb25CdXR0b25fbGFiZWxcIj57e1xuICAgICAgXCJSZWRhY3QgdGV4dFwiIHwgcnB4VHJhbnNsYXRlXG4gICAgfX08L3NwYW4+XG4gIDwvYnV0dG9uPlxuXG4gIDxidXR0b25cbiAgICBbZGlzYWJsZWRdPVwiIWhhc1JlZGFjdGlvbnMgfHwgcmVkYWN0aW9uQWxsSW5Qcm9ncmVzc1wiXG4gICAgaWQ9XCJtdkNsZWFyQnRuXCJcbiAgICAjbXZDbGVhckJ0blxuICAgIGNsYXNzPVwibXYtYnV0dG9uIHJlZGFjdGlvbi1idXR0b24tLWNsZWFyXCJcbiAgICBhcmlhLXByZXNzZWQ9XCJmYWxzZVwiXG4gICAgdGl0bGU9XCJ7eyAnQ2xlYXIgYWxsJyB8IHJweFRyYW5zbGF0ZSB9fVwiXG4gICAgZGF0YS1sMTBuLWlkPVwidG9nZ2xlQ2xlYXJBbGxCdXR0b25cIlxuICAgIChjbGljayk9XCJ1bm1hcmtBbGwoKVwiXG4gID5cbiAgICA8c3BhbiBkYXRhLWwxMG4taWQ9XCJDbGVhciBhbGxcIj57eyBcIkNsZWFyIGFsbFwiIHwgcnB4VHJhbnNsYXRlIH19PC9zcGFuPlxuICA8L2J1dHRvbj5cblxuICA8YnV0dG9uXG4gICAgW2Rpc2FibGVkXT1cIiFoYXNSZWRhY3Rpb25zIHx8IHJlZGFjdGlvbkFsbEluUHJvZ3Jlc3NcIlxuICAgIGlkPVwibXZQcmV2aWV3QnRuXCJcbiAgICBjbGFzcz1cIm12LWJ1dHRvblwiXG4gICAgW2NsYXNzLnJlZGFjdGlvbi1idXR0b24tLXByZXZpZXddPVwiIXByZXZpZXdcIlxuICAgIFtjbGFzcy5yZWRhY3Rpb24tYnV0dG9uLS1oaWRlLXByZXZpZXddPVwicHJldmlld1wiXG4gICAgcmVkYWN0aW9uLWJ1dHRvbi0tcHJldmlld1xuICAgIGFyaWEtcHJlc3NlZD1cImZhbHNlXCJcbiAgICB0aXRsZT1cInt7ICdQcmV2aWV3JyB8IHJweFRyYW5zbGF0ZSB9fVwiXG4gICAgZGF0YS1sMTBuLWlkPVwidG9nZ2xlUHJldmlld0J1dHRvblwiXG4gICAgKGNsaWNrKT1cInRvZ2dsZVByZXZpZXcoKVwiXG4gID5cbiAgICA8c3BhbiAqbmdJZj1cIiFwcmV2aWV3XCIgZGF0YS1sMTBuLWlkPVwicmVkYWN0aW9uLXByZXZpZXdfbGFiZWxcIj57e1xuICAgICAgXCJQcmV2aWV3XCIgfCBycHhUcmFuc2xhdGVcbiAgICB9fTwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cInByZXZpZXdcIiBkYXRhLWwxMG4taWQ9XCJyZWRhY3Rpb24taGlkZS1wcmV2aWV3X2xhYmVsXCI+e3tcbiAgICAgIFwiSGlkZSBwcmV2aWV3XCIgfCBycHhUcmFuc2xhdGVcbiAgICB9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvblxuICAgIFtkaXNhYmxlZF09XCIhaGFzUmVkYWN0aW9ucyB8fCByZWRhY3Rpb25BbGxJblByb2dyZXNzXCJcbiAgICBpZD1cIm12UmVkYWN0QnRuXCJcbiAgICBjbGFzcz1cIm12LWJ1dHRvbiByZWRhY3Rpb24tYnV0dG9uLS1kb3dubG9hZFwiXG4gICAgYXJpYS1wcmVzc2VkPVwiZmFsc2VcIlxuICAgIHRpdGxlPVwie3sgJ1NhdmUgZG9jdW1lbnQnIHwgcnB4VHJhbnNsYXRlIH19XCJcbiAgICBkYXRhLWwxMG4taWQ9XCJtdlJlZGFjdEJ0blwiXG4gICAgKGNsaWNrKT1cInJlZGFjdCgpXCJcbiAgPlxuICAgIDxzcGFuIGRhdGEtbDEwbi1pZD1cIlNhdmUgRG9jdW1lbnRcIj57e1xuICAgICAgXCJTYXZlIGRvY3VtZW50XCIgfCBycHhUcmFuc2xhdGVcbiAgICB9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG5cbiAgPGJ1dHRvblxuICAgIGlkPVwibXZDbG9zZUJ0blwiXG4gICAgI212Q2xvc2VCdG5cbiAgICBjbGFzcz1cIm12LWJ1dHRvbiByZWRhY3Rpb24tYnV0dG9uLS1jbG9zZVwiXG4gICAgdGl0bGU9XCJ7eyAnQ2xvc2UgUmVkYWN0aW9uJyB8IHJweFRyYW5zbGF0ZSB9fVwiXG4gICAgZGF0YS1sMTBuLWlkPVwibXZSZWRhY3RCdG5cIlxuICAgIChjbGljayk9XCJ0b2dnbGVSZWRhY3RCYXIoKVwiXG4gICAgW2Rpc2FibGVkXT1cInJlZGFjdGlvbkFsbEluUHJvZ3Jlc3NcIlxuICA+XG4gICAgPHNwYW4gZGF0YS1sMTBuLWlkPVwiQ2xvc2UgUmVkYWN0aW9uXCI+e3tcbiAgICAgIFwiQ2xvc2UgUmVkYWN0aW9uXCIgfCBycHhUcmFuc2xhdGVcbiAgICB9fTwvc3Bhbj5cbiAgPC9idXR0b24+XG48L2Rpdj5cbiJdfQ==
@@ -72,7 +72,7 @@ export class SearchBarComponent {
72
72
  this.resultsText = this.resultCount > 0
73
73
  ? `Found ${results.current} of ${results.total}`
74
74
  : 'No results found';
75
- if (this.resultCount && this.resultCount > 0) {
75
+ if (this.resultCount && this.resultCount > 0 && !results.isPrevious) {
76
76
  setTimeout(() => {
77
77
  this.findNext.nativeElement.focus();
78
78
  }, 1000);
@@ -106,4 +106,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
106
106
  type: HostListener,
107
107
  args: ['window:keydown', ['$event']]
108
108
  }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBVSxTQUFTLEVBQTRCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVNqSCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0I3QixZQUNrQixjQUE4QyxFQUM5QyxhQUFrQztRQURsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0M7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBYnBELGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRVIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBRXBDLDBCQUFxQixHQUFHLEtBQUssQ0FBQztJQUtqQyxDQUFDO0lBRUUsUUFBUTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUN2RyxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxL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QUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDMUYsQ0FBQzs7bUlBM0dVLGtCQUFrQjt1SEFBbEIsa0JBQWtCLHdVQ1QvQixpdEtBNEpBOzRGRG5KYSxrQkFBa0I7a0JBSjlCLFNBQVM7K0JBQ0UsZUFBZTt1SkFLaUIsU0FBUztzQkFBbEQsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUNFLFFBQVE7c0JBQWpELFNBQVM7dUJBQUMsVUFBVSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtnQkFtQ2pDLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25Jbml0LCBWaWV3Q2hpbGQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vdG9vbGJhci1idXR0b24tdmlzaWJpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IFNlYXJjaFJlc3VsdHNDb3VudCwgVG9vbGJhckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3Rvb2xiYXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbXYtc2VhcmNoLWJhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtYmFyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hCYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XG5cbiAgQFZpZXdDaGlsZCgnZmluZElucHV0JywgeyBzdGF0aWM6IHRydWUgfSkgZmluZElucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBAVmlld0NoaWxkKCdmaW5kTmV4dCcsIHsgc3RhdGljOiBmYWxzZSB9KSBmaW5kTmV4dDogRWxlbWVudFJlZjxIVE1MQW5jaG9yRWxlbWVudD47XG5cbiAgaGlnaGxpZ2h0QWxsID0gdHJ1ZTtcbiAgbWF0Y2hDYXNlID0gZmFsc2U7XG4gIHdob2xlV29yZCA9IGZhbHNlO1xuICByZXN1bHRzVGV4dCA9ICcnO1xuICBzZWFyY2hUZXh0ID0gJyc7XG4gIHJlc3VsdENvdW50ID0gMDtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgcHVibGljIGFkdmFuY2VkU2VhcmNoVmlzaWJsZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyQnV0dG9uczogVG9vbGJhckJ1dHRvblZpc2liaWxpdHlTZXJ2aWNlLFxuICAgIHB1YmxpYyByZWFkb25seSB0b29sYmFyRXZlbnRzOiBUb29sYmFyRXZlbnRTZXJ2aWNlXG4gICkgeyB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaFJlc3VsdHNDb3VudFN1YmplY3Quc3Vic2NyaWJlKHJlc3VsdHMgPT4gdGhpcy5zZXRTZWFyY2hSZXN1bHRzQ291bnQocmVzdWx0cykpXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbmRJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHN1YnNjcmlwdGlvbiBvZiB0aGlzLnN1YnNjcmlwdGlvbnMpIHtcbiAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzprZXlkb3duJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uV2luZG93S2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgaWYgKGUuY29kZSA9PT0gJ0YzJyB8fCAoZS5jdHJsS2V5ICYmIGUuY29kZSA9PT0gJ0tleUYnKSkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuXG4gICAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoQmFySGlkZGVuLm5leHQoZmFsc2UpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmZpbmRJbnB1dC5uYXRpdmVFbGVtZW50LmZvY3VzKCksIDIwMCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlYXJjaE5leHQoKTogdm9pZCB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaCh7XG4gICAgICBzZWFyY2hUZXJtOiB0aGlzLnNlYXJjaFRleHQsXG4gICAgICBoaWdobGlnaHRBbGw6IHRoaXMuaGlnaGxpZ2h0QWxsLFxuICAgICAgbWF0Y2hDYXNlOiB0aGlzLm1hdGNoQ2FzZSxcbiAgICAgIHdob2xlV29yZDogdGhpcy53aG9sZVdvcmQsXG4gICAgICBwcmV2aW91czogZmFsc2UsXG4gICAgICByZXNldDogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hQcmV2KCk6IHZvaWQge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2goe1xuICAgICAgc2VhcmNoVGVybTogdGhpcy5zZWFyY2hUZXh0LFxuICAgICAgaGlnaGxpZ2h0QWxsOiB0aGlzLmhpZ2hsaWdodEFsbCxcbiAgICAgIG1hdGNoQ2FzZTogdGhpcy5tYXRjaENhc2UsXG4gICAgICB3aG9sZVdvcmQ6IHRoaXMud2hvbGVXb3JkLFxuICAgICAgcHJldmlvdXM6IHRydWUsXG4gICAgICByZXNldDogZmFsc2VcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2goKTogdm9pZCB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaCh7XG4gICAgICBzZWFyY2hUZXJtOiB0aGlzLnNlYXJjaFRleHQsXG4gICAgICBoaWdobGlnaHRBbGw6IHRoaXMuaGlnaGxpZ2h0QWxsLFxuICAgICAgbWF0Y2hDYXNlOiB0aGlzLm1hdGNoQ2FzZSxcbiAgICAgIHdob2xlV29yZDogdGhpcy53aG9sZVdvcmQsXG4gICAgICBwcmV2aW91czogZmFsc2UsXG4gICAgICByZXNldDogdHJ1ZVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRTZWFyY2hSZXN1bHRzQ291bnQocmVzdWx0czogU2VhcmNoUmVzdWx0c0NvdW50KTogdm9pZCB7XG4gICAgdGhpcy5yZXN1bHRDb3VudCA9IHJlc3VsdHMudG90YWw7XG4gICAgdGhpcy5yZXN1bHRzVGV4dCA9IHRoaXMucmVzdWx0Q291bnQgPiAwXG4gICAgICA/IGBGb3VuZCAke3Jlc3VsdHMuY3VycmVudH0gb2YgJHtyZXN1bHRzLnRvdGFsfWBcbiAgICAgIDogJ05vIHJlc3VsdHMgZm91bmQnO1xuICAgIGlmICh0aGlzLnJlc3VsdENvdW50ICYmIHRoaXMucmVzdWx0Q291bnQgPiAwKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5maW5kTmV4dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9LCAxMDAwKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Fc2NhcGVLZXlQcmVzcyhlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uRW50ZXJLZXlQcmVzcyhlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2goKTtcbiAgfVxuXG5cbiAgcHVibGljIHRvZ2dsZUFkdmFuY2VkU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuYWR2YW5jZWRTZWFyY2hWaXNpYmxlID0gIXRoaXMuYWR2YW5jZWRTZWFyY2hWaXNpYmxlO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVNlYXJjaEJhcigpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoQmFySGlkZGVuLm5leHQoIXRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4uZ2V0VmFsdWUoKSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZWFyY2hiYXIgZ292dWstIS1wYWRkaW5nLTNcIlxuICBbaGlkZGVuXT1cInRvb2xiYXJFdmVudHMuc2VhcmNoQmFySGlkZGVuIHwgYXN5bmNcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbFwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwiZ292dWstaW5wdXQgZ292dWstIS1kaXNwbGF5LWlubGluZS1ibG9jayBnb3Z1ay0hLXdpZHRoLXRocmVlLXF1YXJ0ZXJzIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS01IGdvdnVrLSEtbWFyZ2luLXRvcC01XCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiRmluZCBpbiBkb2N1bWVudFwiXG4gICAgICAgICNmaW5kSW5wdXRcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcbiAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cIm9uRXNjYXBlS2V5UHJlc3MoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlQcmVzcygkZXZlbnQpXCJcbiAgICAgICAgdGl0bGU9XCJGaW5kIGluIGRvY3VtZW50XCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJGaW5kIGluIGRvY3VtZW504oCmXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgZGF0YS1sMTBuLWlkPVwiZmluZF9pbnB1dFwiXG4gICAgICAvPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay0hLWRpc3BsYXktaW5saW5lLWJsb2NrIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS00XCJcbiAgICAgICAgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAoY2xpY2spPVwic2VhcmNoKClcIlxuICAgICAgICBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA0MHB4OyByaWdodDogMTBweFwiXG4gICAgICA+XG4gICAgICAgIFNlYXJjaFxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi10aHJlZS1xdWFydGVyc1wiPlxuICAgICAgPHNwYW5cbiAgICAgICAgaWQ9XCJmaW5kUmVzdWx0c0NvdW50XCJcbiAgICAgICAgY2xhc3M9XCJnb3Z1ay0hLWRpc3BsYXktaW5saW5lLWJsb2NrIGdvdnVrLSEtbWFyZ2luLXJpZ2h0LTRcIlxuICAgICAgICByb2xlPVwic3RhdHVzXCJcbiAgICAgICAgPnt7IHJlc3VsdHNUZXh0IH19PC9zcGFuXG4gICAgICA+XG4gICAgICA8YVxuICAgICAgICAqbmdJZj1cInJlc3VsdENvdW50ID4gMFwiXG4gICAgICAgIGlkPVwiZmluZFByZXZpb3VzXCJcbiAgICAgICAgW3JvdXRlckxpbmtdPVwiW11cIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJnb3Z1ay1saW5rIGdvdnVrLWxpbmstLW5vLXZpc2l0ZWQtc3RhdGUgZ292dWstIS1tYXJnaW4tcmlnaHQtMlwiXG4gICAgICAgIChjbGljayk9XCJzZWFyY2hQcmV2KClcIlxuICAgICAgICB0aXRsZT1cIkZpbmQgdGhlIHByZXZpb3VzIG9jY3VycmVuY2Ugb2YgdGhlIHBocmFzZVwiXG4gICAgICAgIGRhdGEtbDEwbi1pZD1cImZpbmRfcHJldmlvdXNcIlxuICAgICAgICA+e3sgXCJQcmV2XCIgfCBycHhUcmFuc2xhdGUgfX08L2FcbiAgICAgID5cbiAgICAgIDxhXG4gICAgICAgICpuZ0lmPVwicmVzdWx0Q291bnQgPiAwXCJcbiAgICAgICAgaWQ9XCJmaW5kTmV4dFwiXG4gICAgICAgICNmaW5kTmV4dFxuICAgICAgICBbcm91dGVyTGlua109XCJbXVwiXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImdvdnVrLWxpbmsgZ292dWstbGluay0tbm8tdmlzaXRlZC1zdGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJzZWFyY2hOZXh0KClcIlxuICAgICAgICB0aXRsZT1cIkZpbmQgdGhlIG5leHQgb2NjdXJyZW5jZSBvZiB0aGUgcGhyYXNlXCJcbiAgICAgICAgZGF0YS1sMTBuLWlkPVwiZmluZF9uZXh0XCJcbiAgICAgICAgPnt7IFwiTmV4dFwiIHwgcnB4VHJhbnNsYXRlIH19PC9hXG4gICAgICA+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLW9uZS1xdWFydGVyXCI+XG4gICAgICA8YVxuICAgICAgICBbcm91dGVyTGlua109XCJbXVwiXG4gICAgICAgIGNsYXNzPVwiZ292dWstbGluayBnb3Z1ay1saW5rLS1uby12aXNpdGVkLXN0YXRlXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVBZHZhbmNlZFNlYXJjaCgpXCJcbiAgICAgICAgdGl0bGU9XCJBZHZhbmNlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiYWR2YW5jZWRTZWFyY2hWaXNpYmxlXCJcbiAgICAgICAgYXJpYS1jb250cm9scz1cImFkdmFuY2VkU2VhcmNoVmlzaWJsZVwiXG4gICAgICAgIGRhdGEtbDEwbi1pZD1cImZpbmRfYWR2YW5jZWRcIlxuICAgICAgICBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA5NXB4OyByaWdodDogMTVweFwiXG4gICAgICAgID57eyBcIkFkdmFuY2VkXCIgfCBycHhUcmFuc2xhdGUgfX08L2FcbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgIGlkPVwiYWR2YW5jZWRTZWFyY2hWaXNpYmxlXCJcbiAgICBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCJcbiAgICAqbmdJZj1cImFkdmFuY2VkU2VhcmNoVmlzaWJsZVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbFwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXAgZ292dWstIS1tYXJnaW4tdG9wLTMgZ292dWstIS1tYXJnaW4tYm90dG9tLTFcIlxuICAgICAgPlxuICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJhZHZhbmNlZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCJcbiAgICAgICAgICAgICAgICBpZD1cImZpbmRIaWdobGlnaHRBbGxcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJmaW5kSGlnaGxpZ2h0QWxsXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGlnaGxpZ2h0QWxsID0gIWhpZ2hsaWdodEFsbDsgc2VhcmNoKClcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImhpZ2hsaWdodEFsbFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIlxuICAgICAgICAgICAgICAgIGZvcj1cImZpbmRIaWdobGlnaHRBbGxcIlxuICAgICAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cImZpbmRfaGlnaGxpZ2h0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IFwiSGlnaGxpZ2h0IGFsbFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIlxuICAgICAgICAgICAgICAgIGlkPVwiZmluZE1hdGNoQ2FzZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImZpbmRNYXRjaENhc2VcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJtYXRjaENhc2UgPSAhbWF0Y2hDYXNlOyBzZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibWF0Y2hDYXNlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiXG4gICAgICAgICAgICAgICAgZm9yPVwiZmluZE1hdGNoQ2FzZVwiXG4gICAgICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwiZmluZF9tYXRjaF9jYXNlX2xhYmVsXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IFwiTWF0Y2ggdGV4dCAoZXhhY3QgY2FzZSlcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCJcbiAgICAgICAgICAgICAgICBpZD1cImZpbmRFbnRpcmVXb3JkXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZmluZE1hdGNoQ2FzZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIndob2xlV29yZCA9ICF3aG9sZVdvcmQ7IHNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJ3aG9sZVdvcmRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCJcbiAgICAgICAgICAgICAgICBmb3I9XCJmaW5kRW50aXJlV29yZFwiXG4gICAgICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwiZmluZF9lbnRpcmVfd29yZF9sYWJlbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBcIk1hdGNoIHdob2xlIHdvcmRzIG9yIHNlbnRlbmNlc1wiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9maWVsZHNldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cIm12Q2xvc2VCdG5cIlxuICAgICAgI212Q2xvc2VCdG5cbiAgICAgIGNsYXNzPVwibXYtYnV0dG9uIHNlYXJjaGJhci1idXR0b24tLWNsb3NlXCJcbiAgICAgIHRpdGxlPVwiQ2xvc2UgU2VhcmNoXCJcbiAgICAgIGRhdGEtbDEwbi1pZD1cIm12UmVkYWN0QnRuXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVTZWFyY2hCYXIoKVwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi90b29sYmFyL3NlYXJjaC1iYXIvc2VhcmNoLWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBVSxTQUFTLEVBQTRCLE1BQU0sZUFBZSxDQUFDOzs7Ozs7OztBQVNqSCxNQUFNLE9BQU8sa0JBQWtCO0lBZ0I3QixZQUNrQixjQUE4QyxFQUM5QyxhQUFrQztRQURsQyxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0M7UUFDOUMsa0JBQWEsR0FBYixhQUFhLENBQXFCO1FBYnBELGlCQUFZLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFDbEIsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUNqQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGdCQUFXLEdBQUcsQ0FBQyxDQUFDO1FBRVIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBRXBDLDBCQUFxQixHQUFHLEtBQUssQ0FBQztJQUtqQyxDQUFDO0lBRUUsUUFBUTtRQUNiLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUNyQixJQUFJLENBQUMsYUFBYSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUN2RyxDQUFDO0lBQ0osQ0FBQztJQUVELGVBQWU7UUFDYixJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxL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RCxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzFGLENBQUM7O21JQTNHVSxrQkFBa0I7dUhBQWxCLGtCQUFrQix3VUNUL0IsaXRLQTRKQTs0RkRuSmEsa0JBQWtCO2tCQUo5QixTQUFTOytCQUNFLGVBQWU7dUpBS2lCLFNBQVM7c0JBQWxELFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFDRSxRQUFRO3NCQUFqRCxTQUFTO3VCQUFDLFVBQVUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBbUNqQyxlQUFlO3NCQURyQixZQUFZO3VCQUFDLGdCQUFnQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uSW5pdCwgVmlld0NoaWxkLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZSB9IGZyb20gJy4uL3Rvb2xiYXItYnV0dG9uLXZpc2liaWxpdHkuc2VydmljZSc7XG5pbXBvcnQgeyBTZWFyY2hSZXN1bHRzQ291bnQsIFRvb2xiYXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi90b29sYmFyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ212LXNlYXJjaC1iYXInLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWJhci5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoQmFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbmRJbnB1dCcsIHsgc3RhdGljOiB0cnVlIH0pIGZpbmRJbnB1dDogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcbiAgQFZpZXdDaGlsZCgnZmluZE5leHQnLCB7IHN0YXRpYzogZmFsc2UgfSkgZmluZE5leHQ6IEVsZW1lbnRSZWY8SFRNTEFuY2hvckVsZW1lbnQ+O1xuXG4gIGhpZ2hsaWdodEFsbCA9IHRydWU7XG4gIG1hdGNoQ2FzZSA9IGZhbHNlO1xuICB3aG9sZVdvcmQgPSBmYWxzZTtcbiAgcmVzdWx0c1RleHQgPSAnJztcbiAgc2VhcmNoVGV4dCA9ICcnO1xuICByZXN1bHRDb3VudCA9IDA7XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gIHB1YmxpYyBhZHZhbmNlZFNlYXJjaFZpc2libGUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckJ1dHRvbnM6IFRvb2xiYXJCdXR0b25WaXNpYmlsaXR5U2VydmljZSxcbiAgICBwdWJsaWMgcmVhZG9ubHkgdG9vbGJhckV2ZW50czogVG9vbGJhckV2ZW50U2VydmljZVxuICApIHsgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hSZXN1bHRzQ291bnRTdWJqZWN0LnN1YnNjcmliZShyZXN1bHRzID0+IHRoaXMuc2V0U2VhcmNoUmVzdWx0c0NvdW50KHJlc3VsdHMpKVxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5maW5kSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBzdWJzY3JpcHRpb24gb2YgdGhpcy5zdWJzY3JpcHRpb25zKSB7XG4gICAgICBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbldpbmRvd0tleURvd24oZTogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChlLmNvZGUgPT09ICdGMycgfHwgKGUuY3RybEtleSAmJiBlLmNvZGUgPT09ICdLZXlGJykpIHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5uZXh0KGZhbHNlKTtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5maW5kSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpLCAyMDApO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2hOZXh0KCk6IHZvaWQge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2goe1xuICAgICAgc2VhcmNoVGVybTogdGhpcy5zZWFyY2hUZXh0LFxuICAgICAgaGlnaGxpZ2h0QWxsOiB0aGlzLmhpZ2hsaWdodEFsbCxcbiAgICAgIG1hdGNoQ2FzZTogdGhpcy5tYXRjaENhc2UsXG4gICAgICB3aG9sZVdvcmQ6IHRoaXMud2hvbGVXb3JkLFxuICAgICAgcHJldmlvdXM6IGZhbHNlLFxuICAgICAgcmVzZXQ6IGZhbHNlXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoUHJldigpOiB2b2lkIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoKHtcbiAgICAgIHNlYXJjaFRlcm06IHRoaXMuc2VhcmNoVGV4dCxcbiAgICAgIGhpZ2hsaWdodEFsbDogdGhpcy5oaWdobGlnaHRBbGwsXG4gICAgICBtYXRjaENhc2U6IHRoaXMubWF0Y2hDYXNlLFxuICAgICAgd2hvbGVXb3JkOiB0aGlzLndob2xlV29yZCxcbiAgICAgIHByZXZpb3VzOiB0cnVlLFxuICAgICAgcmVzZXQ6IGZhbHNlXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgc2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2goe1xuICAgICAgc2VhcmNoVGVybTogdGhpcy5zZWFyY2hUZXh0LFxuICAgICAgaGlnaGxpZ2h0QWxsOiB0aGlzLmhpZ2hsaWdodEFsbCxcbiAgICAgIG1hdGNoQ2FzZTogdGhpcy5tYXRjaENhc2UsXG4gICAgICB3aG9sZVdvcmQ6IHRoaXMud2hvbGVXb3JkLFxuICAgICAgcHJldmlvdXM6IGZhbHNlLFxuICAgICAgcmVzZXQ6IHRydWVcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0U2VhcmNoUmVzdWx0c0NvdW50KHJlc3VsdHM6IFNlYXJjaFJlc3VsdHNDb3VudCk6IHZvaWQge1xuICAgIHRoaXMucmVzdWx0Q291bnQgPSByZXN1bHRzLnRvdGFsO1xuICAgIHRoaXMucmVzdWx0c1RleHQgPSB0aGlzLnJlc3VsdENvdW50ID4gMFxuICAgICAgPyBgRm91bmQgJHtyZXN1bHRzLmN1cnJlbnR9IG9mICR7cmVzdWx0cy50b3RhbH1gXG4gICAgICA6ICdObyByZXN1bHRzIGZvdW5kJztcbiAgICBpZiAodGhpcy5yZXN1bHRDb3VudCAmJiB0aGlzLnJlc3VsdENvdW50ID4gMCAmJiAhcmVzdWx0cy5pc1ByZXZpb3VzKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5maW5kTmV4dC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9LCAxMDAwKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25Fc2NhcGVLZXlQcmVzcyhlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy50b29sYmFyRXZlbnRzLnNlYXJjaEJhckhpZGRlbi5uZXh0KHRydWUpO1xuICB9XG5cbiAgcHVibGljIG9uRW50ZXJLZXlQcmVzcyhlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2goKTtcbiAgfVxuXG5cbiAgcHVibGljIHRvZ2dsZUFkdmFuY2VkU2VhcmNoKCk6IHZvaWQge1xuICAgIHRoaXMuYWR2YW5jZWRTZWFyY2hWaXNpYmxlID0gIXRoaXMuYWR2YW5jZWRTZWFyY2hWaXNpYmxlO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVNlYXJjaEJhcigpIHtcbiAgICB0aGlzLnRvb2xiYXJFdmVudHMuc2VhcmNoQmFySGlkZGVuLm5leHQoIXRoaXMudG9vbGJhckV2ZW50cy5zZWFyY2hCYXJIaWRkZW4uZ2V0VmFsdWUoKSk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZWFyY2hiYXIgZ292dWstIS1wYWRkaW5nLTNcIlxuICBbaGlkZGVuXT1cInRvb2xiYXJFdmVudHMuc2VhcmNoQmFySGlkZGVuIHwgYXN5bmNcIlxuPlxuICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1yb3dcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbFwiPlxuICAgICAgPGlucHV0XG4gICAgICAgIGNsYXNzPVwiZ292dWstaW5wdXQgZ292dWstIS1kaXNwbGF5LWlubGluZS1ibG9jayBnb3Z1ay0hLXdpZHRoLXRocmVlLXF1YXJ0ZXJzIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS01IGdvdnVrLSEtbWFyZ2luLXRvcC01XCJcbiAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiRmluZCBpbiBkb2N1bWVudFwiXG4gICAgICAgICNmaW5kSW5wdXRcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hUZXh0XCJcbiAgICAgICAgKGtleWRvd24uZXNjYXBlKT1cIm9uRXNjYXBlS2V5UHJlc3MoJGV2ZW50KVwiXG4gICAgICAgIChrZXlkb3duLmVudGVyKT1cIm9uRW50ZXJLZXlQcmVzcygkZXZlbnQpXCJcbiAgICAgICAgdGl0bGU9XCJGaW5kIGluIGRvY3VtZW50XCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJGaW5kIGluIGRvY3VtZW504oCmXCJcbiAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgZGF0YS1sMTBuLWlkPVwiZmluZF9pbnB1dFwiXG4gICAgICAvPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBjbGFzcz1cImdvdnVrLWJ1dHRvbiBnb3Z1ay0hLWRpc3BsYXktaW5saW5lLWJsb2NrIGdvdnVrLSEtbWFyZ2luLWJvdHRvbS00XCJcbiAgICAgICAgZGF0YS1tb2R1bGU9XCJnb3Z1ay1idXR0b25cIlxuICAgICAgICAoY2xpY2spPVwic2VhcmNoKClcIlxuICAgICAgICBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA0MHB4OyByaWdodDogMTBweFwiXG4gICAgICA+XG4gICAgICAgIFNlYXJjaFxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLXJvd1wiPlxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1ncmlkLWNvbHVtbi10aHJlZS1xdWFydGVyc1wiPlxuICAgICAgPHNwYW5cbiAgICAgICAgaWQ9XCJmaW5kUmVzdWx0c0NvdW50XCJcbiAgICAgICAgY2xhc3M9XCJnb3Z1ay0hLWRpc3BsYXktaW5saW5lLWJsb2NrIGdvdnVrLSEtbWFyZ2luLXJpZ2h0LTRcIlxuICAgICAgICByb2xlPVwic3RhdHVzXCJcbiAgICAgICAgPnt7IHJlc3VsdHNUZXh0IH19PC9zcGFuXG4gICAgICA+XG4gICAgICA8YVxuICAgICAgICAqbmdJZj1cInJlc3VsdENvdW50ID4gMFwiXG4gICAgICAgIGlkPVwiZmluZFByZXZpb3VzXCJcbiAgICAgICAgW3JvdXRlckxpbmtdPVwiW11cIlxuICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3M9XCJnb3Z1ay1saW5rIGdvdnVrLWxpbmstLW5vLXZpc2l0ZWQtc3RhdGUgZ292dWstIS1tYXJnaW4tcmlnaHQtMlwiXG4gICAgICAgIChjbGljayk9XCJzZWFyY2hQcmV2KClcIlxuICAgICAgICB0aXRsZT1cIkZpbmQgdGhlIHByZXZpb3VzIG9jY3VycmVuY2Ugb2YgdGhlIHBocmFzZVwiXG4gICAgICAgIGRhdGEtbDEwbi1pZD1cImZpbmRfcHJldmlvdXNcIlxuICAgICAgICA+e3sgXCJQcmV2XCIgfCBycHhUcmFuc2xhdGUgfX08L2FcbiAgICAgID5cbiAgICAgIDxhXG4gICAgICAgICpuZ0lmPVwicmVzdWx0Q291bnQgPiAwXCJcbiAgICAgICAgaWQ9XCJmaW5kTmV4dFwiXG4gICAgICAgICNmaW5kTmV4dFxuICAgICAgICBbcm91dGVyTGlua109XCJbXVwiXG4gICAgICAgIHJvbGU9XCJidXR0b25cIlxuICAgICAgICBjbGFzcz1cImdvdnVrLWxpbmsgZ292dWstbGluay0tbm8tdmlzaXRlZC1zdGF0ZVwiXG4gICAgICAgIChjbGljayk9XCJzZWFyY2hOZXh0KClcIlxuICAgICAgICB0aXRsZT1cIkZpbmQgdGhlIG5leHQgb2NjdXJyZW5jZSBvZiB0aGUgcGhyYXNlXCJcbiAgICAgICAgZGF0YS1sMTBuLWlkPVwiZmluZF9uZXh0XCJcbiAgICAgICAgPnt7IFwiTmV4dFwiIHwgcnB4VHJhbnNsYXRlIH19PC9hXG4gICAgICA+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImdvdnVrLWdyaWQtY29sdW1uLW9uZS1xdWFydGVyXCI+XG4gICAgICA8YVxuICAgICAgICBbcm91dGVyTGlua109XCJbXVwiXG4gICAgICAgIGNsYXNzPVwiZ292dWstbGluayBnb3Z1ay1saW5rLS1uby12aXNpdGVkLXN0YXRlXCJcbiAgICAgICAgcm9sZT1cImJ1dHRvblwiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVBZHZhbmNlZFNlYXJjaCgpXCJcbiAgICAgICAgdGl0bGU9XCJBZHZhbmNlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtZXhwYW5kZWRdPVwiYWR2YW5jZWRTZWFyY2hWaXNpYmxlXCJcbiAgICAgICAgYXJpYS1jb250cm9scz1cImFkdmFuY2VkU2VhcmNoVmlzaWJsZVwiXG4gICAgICAgIGRhdGEtbDEwbi1pZD1cImZpbmRfYWR2YW5jZWRcIlxuICAgICAgICBzdHlsZT1cInBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiA5NXB4OyByaWdodDogMTVweFwiXG4gICAgICAgID57eyBcIkFkdmFuY2VkXCIgfCBycHhUcmFuc2xhdGUgfX08L2FcbiAgICAgID5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdlxuICAgIGlkPVwiYWR2YW5jZWRTZWFyY2hWaXNpYmxlXCJcbiAgICBjbGFzcz1cImdvdnVrLWdyaWQtcm93XCJcbiAgICAqbmdJZj1cImFkdmFuY2VkU2VhcmNoVmlzaWJsZVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstZ3JpZC1jb2x1bW4tZnVsbFwiPlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImdvdnVrLWZvcm0tZ3JvdXAgZ292dWstIS1tYXJnaW4tdG9wLTMgZ292dWstIS1tYXJnaW4tYm90dG9tLTFcIlxuICAgICAgPlxuICAgICAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJhZHZhbmNlZFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCJcbiAgICAgICAgICAgICAgICBpZD1cImZpbmRIaWdobGlnaHRBbGxcIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJmaW5kSGlnaGxpZ2h0QWxsXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGlnaGxpZ2h0QWxsID0gIWhpZ2hsaWdodEFsbDsgc2VhcmNoKClcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkXT1cImhpZ2hsaWdodEFsbFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIlxuICAgICAgICAgICAgICAgIGZvcj1cImZpbmRIaWdobGlnaHRBbGxcIlxuICAgICAgICAgICAgICAgIGRhdGEtbDEwbi1pZD1cImZpbmRfaGlnaGxpZ2h0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IFwiSGlnaGxpZ2h0IGFsbFwiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIlxuICAgICAgICAgICAgICAgIGlkPVwiZmluZE1hdGNoQ2FzZVwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImZpbmRNYXRjaENhc2VcIlxuICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJtYXRjaENhc2UgPSAhbWF0Y2hDYXNlOyBzZWFyY2goKVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwibWF0Y2hDYXNlXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPGxhYmVsXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiXG4gICAgICAgICAgICAgICAgZm9yPVwiZmluZE1hdGNoQ2FzZVwiXG4gICAgICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwiZmluZF9tYXRjaF9jYXNlX2xhYmVsXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IFwiTWF0Y2ggdGV4dCAoZXhhY3QgY2FzZSlcIiB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCJcbiAgICAgICAgICAgICAgICBpZD1cImZpbmRFbnRpcmVXb3JkXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZmluZE1hdGNoQ2FzZVwiXG4gICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIndob2xlV29yZCA9ICF3aG9sZVdvcmQ7IHNlYXJjaCgpXCJcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJ3aG9sZVdvcmRcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8bGFiZWxcbiAgICAgICAgICAgICAgICBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCJcbiAgICAgICAgICAgICAgICBmb3I9XCJmaW5kRW50aXJlV29yZFwiXG4gICAgICAgICAgICAgICAgZGF0YS1sMTBuLWlkPVwiZmluZF9lbnRpcmVfd29yZF9sYWJlbFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyBcIk1hdGNoIHdob2xlIHdvcmRzIG9yIHNlbnRlbmNlc1wiIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9maWVsZHNldD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8YnV0dG9uXG4gICAgICBpZD1cIm12Q2xvc2VCdG5cIlxuICAgICAgI212Q2xvc2VCdG5cbiAgICAgIGNsYXNzPVwibXYtYnV0dG9uIHNlYXJjaGJhci1idXR0b24tLWNsb3NlXCJcbiAgICAgIHRpdGxlPVwiQ2xvc2UgU2VhcmNoXCJcbiAgICAgIGRhdGEtbDEwbi1pZD1cIm12UmVkYWN0QnRuXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVTZWFyY2hCYXIoKVwiXG4gICAgPjwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -2,9 +2,15 @@ import { Injectable } from '@angular/core';
2
2
  import { BehaviorSubject, Subject } from 'rxjs';
3
3
  import * as icpEvents from './icp-event.service';
4
4
  import * as i0 from "@angular/core";
5
+ export var SearchType;
6
+ (function (SearchType) {
7
+ SearchType["Redact"] = "Redact";
8
+ SearchType["Highlight"] = "Highlight";
9
+ })(SearchType || (SearchType = {}));
5
10
  export class ToolbarEventService {
6
11
  constructor() {
7
12
  this.highlightModeSubject = new BehaviorSubject(false);
13
+ this.highlightToolbarSubject = new BehaviorSubject(false);
8
14
  this.drawModeSubject = new BehaviorSubject(false);
9
15
  this.rotateSubject = new Subject();
10
16
  this.searchSubject = new Subject();
@@ -28,7 +34,7 @@ export class ToolbarEventService {
28
34
  this.redactWholePage = new Subject();
29
35
  this.redactionSerachSubject = new Subject();
30
36
  this.redactAllInProgressSubject = new BehaviorSubject(false);
31
- this.openRedactionSearch = new Subject();
37
+ this.openRedactionSearch = new BehaviorSubject(null);
32
38
  this.sidebarOpen = new BehaviorSubject(false);
33
39
  this.sidebarOutlineView = new BehaviorSubject(true);
34
40
  this.searchBarHidden = new BehaviorSubject(true);
@@ -42,6 +48,7 @@ export class ToolbarEventService {
42
48
  this.setCurrentPageSubject.next(1);
43
49
  this.zoomValueSubject.next(1);
44
50
  this.highlightModeSubject.next(false);
51
+ this.highlightToolbarSubject.next(false);
45
52
  this.drawModeSubject.next(false);
46
53
  this.showCommentSummary.next(false);
47
54
  this.grabNDrag.next(false);
@@ -69,6 +76,9 @@ export class ToolbarEventService {
69
76
  this.drawModeSubject.next(false);
70
77
  }
71
78
  }
79
+ toggleHighlightToolbar() {
80
+ this.highlightToolbarSubject.next(!this.highlightToolbarSubject.getValue());
81
+ }
72
82
  rotate(angle) {
73
83
  this.rotateSubject.next(angle);
74
84
  }
@@ -132,7 +142,7 @@ export class ToolbarEventService {
132
142
  else {
133
143
  this.redactionMode.next(false);
134
144
  }
135
- this.openRedactionSearch.next(false);
145
+ this.openRedactionSearch.next({ modeType: SearchType.Redact, isOpen: false });
136
146
  }
137
147
  toggleRedactionPreview(viewMode) {
138
148
  this.redactionPreview.next(viewMode);
@@ -165,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
165
175
  type: Injectable,
166
176
  args: [{ providedIn: 'root' }]
167
177
  }] });
168
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1ldmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEtBQUssU0FBUyxNQUFNLHFCQUFxQixDQUFDOztBQXFCakQsTUFBTSxPQUFPLG1CQUFtQjtJQURoQztRQUdrQix5QkFBb0IsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsS0FBSyxDQUFDLENBQUM7UUFDakUsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBVyxLQUFLLENBQUMsQ0FBQztRQUN2RCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUMvQyw4QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztRQUM5RCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDcEMsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3hDLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2xELHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDekMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNoQywwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQzlDLG9DQUErQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDeEQsNkJBQXdCLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNq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RSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU0sbUJBQW1CLENBQUMsU0FBa0I7UUFDM0MsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLHNCQUFzQixDQUFDLFNBQWtCO1FBQzlDLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDOztvSUF4TFUsbUJBQW1CO3dJQUFuQixtQkFBbUIsY0FETixNQUFNOzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBpY3BFdmVudHMgZnJvbSAnLi9pY3AtZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBwYXJ0aWNpcGFudHNMaXN0VmlzaWJsZSB9IGZyb20gJy4vaWNwLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVkYWN0aW9uU2VhcmNoIH0gZnJvbSAnLi9yZWRhY3Rpb24tc2VhcmNoLWJhci9yZWRhY3Rpb24tc2VhcmNoLm1vZGVsJztcblxuLy8gVG9vbGJhciBDdXN0b20tRXZlbnQgVHlwZXNcbmV4cG9ydCB0eXBlIEhpZ2hsaWdodE1vZGUgPSBib29sZWFuO1xuZXhwb3J0IHR5cGUgRHJhd01vZGUgPSBib29sZWFuO1xuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hPcGVyYXRpb24ge1xuICBzZWFyY2hUZXJtOiBzdHJpbmc7XG4gIGhpZ2hsaWdodEFsbDogYm9vbGVhbjtcbiAgbWF0Y2hDYXNlOiBib29sZWFuO1xuICB3aG9sZVdvcmQ6IGJvb2xlYW47XG4gIHByZXZpb3VzOiBib29sZWFuO1xuICByZXNldDogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVzdWx0c0NvdW50IHtcbiAgY3VycmVudDogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRvb2xiYXJFdmVudFNlcnZpY2Uge1xuXG4gIHB1YmxpYyByZWFkb25seSBoaWdobGlnaHRNb2RlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SGlnaGxpZ2h0TW9kZT4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZHJhd01vZGVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxEcmF3TW9kZT4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgcm90YXRlU3ViamVjdCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlYXJjaFN1YmplY3QgPSBuZXcgU3ViamVjdDxTZWFyY2hPcGVyYXRpb24+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzZWFyY2hSZXN1bHRzQ291bnRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8U2VhcmNoUmVzdWx0c0NvdW50PigpO1xuICBwdWJsaWMgcmVhZG9ubHkgem9vbVN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzdGVwWm9vbVN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSB6b29tVmFsdWVTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDEpO1xuICBwdWJsaWMgcmVhZG9ubHkgcGFnZUNvdW50U3ViamVjdCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHByaW50U3ViamVjdCA9IG5ldyBTdWJqZWN0KCk7XG4gIHB1YmxpYyByZWFkb25seSBkb3dubG9hZFN1YmplY3QgPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2V0Q3VycmVudFBhZ2VTdWJqZWN0ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2V0Q3VycmVudFBhZ2VJbnB1dFZhbHVlU3ViamVjdCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IGNoYW5nZVBhZ2VCeURlbHRhU3ViamVjdCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNob3dDb21tZW50U3VtbWFyeSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgZ3JhYk5EcmFnID0gbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBzYXZlUm90YXRpb25TdWJqZWN0ID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgcmVkYWN0aW9uTW9kZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVkYWN0aW9uUHJldmlldyA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG4gIHB1YmxpYyByZWFkb25seSBhcHBseVJlZGFjdFRvRG9jdW1lbnQgPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgY2xlYXJBbGxSZWRhY3RNYXJrZXJzID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHJlYWRvbmx5IHJlZGFjdFdob2xlUGFnZSA9IG5ldyBTdWJqZWN0KCk7XG4gIHB1YmxpYyByZWFkb25seSByZWRhY3Rpb25TZXJhY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8UmVkYWN0aW9uU2VhcmNoPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVkYWN0QWxsSW5Qcm9ncmVzc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IG9wZW5SZWRhY3Rpb25TZWFyY2ggPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIHB1YmxpYyByZWFkb25seSBzaWRlYmFyT3BlbiA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2lkZWJhck91dGxpbmVWaWV3ID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoQmFySGlkZGVuID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0cnVlKTtcbiAgcHVibGljIHJlYWRvbmx5IGNvbW1lbnRzUGFuZWxWaXNpYmxlID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IGljcCA9IGljcEV2ZW50cztcblxuXG4gIC8qKlxuICAgKiBSZXNldCB0aGUgc3RhdGVmdWwgYmVoYXZpb3VyIHN1YmplY3RzXG4gICAqL1xuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRDdXJyZW50UGFnZVN1YmplY3QubmV4dCgxKTtcbiAgICB0aGlzLnpvb21WYWx1ZVN1YmplY3QubmV4dCgxKTtcbiAgICB0aGlzLmhpZ2hsaWdodE1vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIHRoaXMuZHJhd01vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0NvbW1lbnRTdW1tYXJ5Lm5leHQoZmFsc2UpO1xuICAgIHRoaXMuZ3JhYk5EcmFnLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gaW5mb3JtIE9ic2VydmVycyB0aGF0IGhpZ2hsaWdodE1vZGUgaGFzIGJlZW4gZW5hYmxlZFxuICBwdWJsaWMgdG9nZ2xlSGlnaGxpZ2h0TW9kZSgpOiB2b2lkIHtcbiAgICAvLyBIaWdobGlnaHQgYW5kIERyYXcgc3RhdGVzIGFyZSBtdXR1YWxseSBleGNsdXNpdmVcbiAgICBpZiAodGhpcy5oaWdobGlnaHRNb2RlU3ViamVjdC5nZXRWYWx1ZSgpID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5kcmF3TW9kZVN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICB0aGlzLmdyYWJORHJhZy5uZXh0KGZhbHNlKTtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0TW9kZVN1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWdobGlnaHRNb2RlU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvLyBGdW5jdGlvbiB0byBpbmZvcm0gT2JzZXJ2ZXJzIHRoYXQgVG9nZ2xlTW9kZSBoYXMgYmVlbiBlbmFibGVkXG4gIHB1YmxpYyB0b2dnbGVEcmF3TW9kZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcmF3TW9kZVN1YmplY3QuZ2V0VmFsdWUoKSA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0TW9kZVN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICB0aGlzLmdyYWJORHJhZy5uZXh0KGZhbHNlKTtcbiAgICAgIHRoaXMuZHJhd01vZGVTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJhd01vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByb3RhdGUoYW5nbGU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucm90YXRlU3ViamVjdC5uZXh0KGFuZ2xlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2gocGhyYXNlOiBTZWFyY2hPcGVyYXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFN1YmplY3QubmV4dChwaHJhc2UpO1xuICB9XG5cbiAgcHVibGljIGdldFNlYXJjaFJlc3VsdHNDb3VudCgpOiBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdHNDb3VudD4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFJlc3VsdHNDb3VudFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgem9vbSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy56b29tU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGVwWm9vbSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwWm9vbVN1YmplY3QubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Wm9vbVZhbHVlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuem9vbVZhbHVlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQYWdlQ291bnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5wYWdlQ291bnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHByaW50KCk6IHZvaWQge1xuICAgIHRoaXMucHJpbnRTdWJqZWN0Lm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBkb3dubG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRvd25sb2FkU3ViamVjdC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgc2V0UGFnZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zZXRDdXJyZW50UGFnZVN1YmplY3QubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgaW5jcmVtZW50UGFnZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VQYWdlQnlEZWx0YVN1YmplY3QubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5zZXRDdXJyZW50UGFnZUlucHV0VmFsdWVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldFNob3dDb21tZW50U3VtbWFyeSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93Q29tbWVudFN1bW1hcnkuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlQ29tbWVudHNTdW1tYXJ5KHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zaG93Q29tbWVudFN1bW1hcnkubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZVJvdGF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZVJvdGF0aW9uU3ViamVjdC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlR3JhYk5EcmFnKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JhYk5EcmFnLm5leHQoIXRoaXMuZ3JhYk5EcmFnLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgdG9nZ2xlU2lkZUJhcih0b2dnbGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNpZGViYXJPcGVuLm5leHQodG9nZ2xlKTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGVCYXJWaWV3KHRvZ2dsZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2lkZWJhck91dGxpbmVWaWV3Lm5leHQodG9nZ2xlKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVSZWRhY3Rpb25Nb2RlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlZGFjdGlvbk1vZGUuZ2V0VmFsdWUoKSA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuZHJhd01vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgdGhpcy5ncmFiTkRyYWcubmV4dChmYWxzZSk7XG4gICAgICB0aGlzLnJlZGFjdGlvbk1vZGUubmV4dCh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWRhY3Rpb25Nb2RlLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLm9wZW5SZWRhY3Rpb25TZWFyY2gubmV4dChmYWxzZSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUmVkYWN0aW9uUHJldmlldyh2aWV3TW9kZTogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMucmVkYWN0aW9uUHJldmlldy5uZXh0KHZpZXdNb2RlKTtcbiAgfVxuXG4gIHB1YmxpYyB1bm1hcmtBbGwoKTogdm9pZCB7XG4gICAgdGhpcy5jbGVhckFsbFJlZGFjdE1hcmtlcnMubmV4dCgpO1xuICB9XG5cbiAgcHVibGljIGFwcGx5UmVkYWN0aW9uVG9Eb2N1bWVudCgpOiB2b2lkIHtcbiAgICB0aGlzLmFwcGx5UmVkYWN0VG9Eb2N1bWVudC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgcmVkYWN0UGFnZSgpOiB2b2lkIHtcbiAgICB0aGlzLnJlZGFjdFdob2xlUGFnZS5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlQ29tbWVudHNQYW5lbChpc1Zpc2libGU6IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICB0aGlzLnRvZ2dsZVBhcnRpY2lwYW50c0xpc3QoIWlzVmlzaWJsZSk7XG4gICAgfVxuICAgIHRoaXMuY29tbWVudHNQYW5lbFZpc2libGUubmV4dChpc1Zpc2libGUpO1xuICB9XG5cbiAgcHVibGljIHRvZ2dsZVBhcnRpY2lwYW50c0xpc3QoaXNWaXNpYmxlOiBib29sZWFuKSB7XG4gICAgaWYgKGlzVmlzaWJsZSkge1xuICAgICAgdGhpcy50b2dnbGVDb21tZW50c1BhbmVsKCFpc1Zpc2libGUpO1xuICAgIH1cbiAgICB0aGlzLmljcC5wYXJ0aWNpcGFudHNMaXN0VmlzaWJsZS5uZXh0KGlzVmlzaWJsZSk7XG4gIH1cbn1cbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGJhci1ldmVudC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWVkaWEtdmlld2VyL3NyYy9saWIvdG9vbGJhci90b29sYmFyLWV2ZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM1RCxPQUFPLEtBQUssU0FBUyxNQUFNLHFCQUFxQixDQUFDOztBQXFCakQsTUFBTSxDQUFOLElBQVksVUFHWDtBQUhELFdBQVksVUFBVTtJQUNwQiwrQkFBaUIsQ0FBQTtJQUNqQixxQ0FBdUIsQ0FBQTtBQUN6QixDQUFDLEVBSFcsVUFBVSxLQUFWLFVBQVUsUUFHckI7QUFRRCxNQUFNLE9BQU8sbUJBQW1CO0lBRGhDO1FBR2tCLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFnQixLQUFLLENBQUMsQ0FBQztRQUNqRSw0QkFBdUIsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsS0FBSyxDQUFDLENBQUM7UUFDcEUsb0JBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBVyxLQUFLLENBQUMsQ0FBQztRQUN2RCxrQkFBYSxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDdEMsa0JBQWEsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUMvQyw4QkFBeUIsR0FBRyxJQUFJLE9BQU8sRUFBc0IsQ0FBQztRQUM5RCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDcEMsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQ3hDLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2xELHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDekMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQzdCLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNoQywwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBVSxDQUFDO1FBQzlDLG9DQUErQixHQUFHLElBQUksT0FBTyxFQUFVLENBQUM7UUFDeEQsNkJBQXdCLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztRQUNqRCx1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUN6RCxjQUFTLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDaEQsd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUVwQyxrQkFBYSxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNDLHFCQUFnQixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFDMUMsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV0QywwQkFBcUIsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNoQywyQkFBc0IsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztRQUN4RCwrQkFBMEIsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4RCx3QkFBbUIsR0FBRyxJQUFJLGVBQWUsQ0FBb0IsSUFBSSxDQUFDLENBQUM7UUFFbkUsZ0JBQVcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6Qyx1QkFBa0IsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQyxvQkFBZSxHQUFHLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLHlCQUFvQixHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRWxELFFBQUcsR0FBRyxTQUFTLENBQUM7S0EySmpDO0lBeEpDOztPQUVHO0lBQ0ksS0FBSztRQUNWLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsbUVBQW1FO0lBQzVELG1CQUFtQjtRQUN4QixtREFBbUQ7UUFDbkQsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsUUFBUSxFQUFFLEtBQUssS0FBSyxFQUFFO1lBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDdEM7YUFBTTtZQUNMLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDdkM7SUFDSCxDQUFDO0lBRUQsZ0VBQWdFO0lBQ3pELGNBQWM7UUFDbkIsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUssRUFBRTtZQUM3QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pDO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsQztJQUNILENBQUM7SUFFTSxzQkFBc0I7UUFDM0IsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQzlFLENBQUM7SUFFTSxNQUFNLENBQUMsS0FBYTtRQUN6QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU0sTUFBTSxDQUFDLE1BQXVCO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFTSxxQkFBcUI7UUFDMUIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdkQsQ0FBQztJQUVNLElBQUksQ0FBQyxLQUFhO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFTSxRQUFRLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRU0sWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRU0sWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUM5QyxDQUFDO0lBRU0sS0FBSztRQUNWLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTSxPQUFPLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFTSxhQUFhLENBQUMsS0FBYTtRQUNoQyxJQUFJLENBQUMsd0JBQXdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxvQkFBb0I7UUFDekIsT0FBTyxJQUFJLENBQUMsK0JBQStCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVNLHFCQUFxQjtRQUMxQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoRCxDQUFDO0lBRU0scUJBQXFCLENBQUMsS0FBYztRQUN6QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxZQUFZO1FBQ2pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sZUFBZTtRQUNwQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWU7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELGlCQUFpQixDQUFDLE1BQWU7UUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRU0sbUJBQW1CO1FBQ3hCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDL0I7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2hDO1FBQ0QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFTSxzQkFBc0IsQ0FBQyxRQUFpQjtRQUM3QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSx3QkFBd0I7UUFDN0IsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFTSxVQUFVO1FBQ2YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU0sbUJBQW1CLENBQUMsU0FBa0I7UUFDM0MsSUFBSSxTQUFTLEVBQUU7WUFDYixJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUN6QztRQUNELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVNLHNCQUFzQixDQUFDLFNBQWtCO1FBQzlDLElBQUksU0FBUyxFQUFFO1lBQ2IsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDdEM7UUFDRCxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuRCxDQUFDOztvSUEvTFUsbUJBQW1CO3dJQUFuQixtQkFBbUIsY0FETixNQUFNOzRGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgKiBhcyBpY3BFdmVudHMgZnJvbSAnLi9pY3AtZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBwYXJ0aWNpcGFudHNMaXN0VmlzaWJsZSB9IGZyb20gJy4vaWNwLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVkYWN0aW9uU2VhcmNoIH0gZnJvbSAnLi9yZWRhY3Rpb24tc2VhcmNoLWJhci9yZWRhY3Rpb24tc2VhcmNoLm1vZGVsJztcblxuLy8gVG9vbGJhciBDdXN0b20tRXZlbnQgVHlwZXNcbmV4cG9ydCB0eXBlIEhpZ2hsaWdodE1vZGUgPSBib29sZWFuO1xuZXhwb3J0IHR5cGUgRHJhd01vZGUgPSBib29sZWFuO1xuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hPcGVyYXRpb24ge1xuICBzZWFyY2hUZXJtOiBzdHJpbmc7XG4gIGhpZ2hsaWdodEFsbDogYm9vbGVhbjtcbiAgbWF0Y2hDYXNlOiBib29sZWFuO1xuICB3aG9sZVdvcmQ6IGJvb2xlYW47XG4gIHByZXZpb3VzOiBib29sZWFuO1xuICByZXNldDogYm9vbGVhbjtcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVzdWx0c0NvdW50IHtcbiAgY3VycmVudDogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xuICBpc1ByZXZpb3VzOiBib29sZWFuO1xufVxuXG5leHBvcnQgZW51bSBTZWFyY2hUeXBlIHtcbiAgUmVkYWN0ID0gJ1JlZGFjdCcsXG4gIEhpZ2hsaWdodCA9ICdIaWdobGlnaHQnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaE1vZGUge1xuICBtb2RlVHlwZTogU2VhcmNoVHlwZTtcbiAgaXNPcGVuOiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRvb2xiYXJFdmVudFNlcnZpY2Uge1xuXG4gIHB1YmxpYyByZWFkb25seSBoaWdobGlnaHRNb2RlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8SGlnaGxpZ2h0TW9kZT4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgaGlnaGxpZ2h0VG9vbGJhclN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEhpZ2hsaWdodE1vZGU+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGRyYXdNb2RlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8RHJhd01vZGU+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHJvdGF0ZVN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzZWFyY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8U2VhcmNoT3BlcmF0aW9uPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2VhcmNoUmVzdWx0c0NvdW50U3ViamVjdCA9IG5ldyBTdWJqZWN0PFNlYXJjaFJlc3VsdHNDb3VudD4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHpvb21TdWJqZWN0ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgc3RlcFpvb21TdWJqZWN0ID0gbmV3IFN1YmplY3Q8bnVtYmVyPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgem9vbVZhbHVlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPigxKTtcbiAgcHVibGljIHJlYWRvbmx5IHBhZ2VDb3VudFN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSBwcmludFN1YmplY3QgPSBuZXcgU3ViamVjdCgpO1xuICBwdWJsaWMgcmVhZG9ubHkgZG93bmxvYWRTdWJqZWN0ID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHJlYWRvbmx5IHNldEN1cnJlbnRQYWdlU3ViamVjdCA9IG5ldyBTdWJqZWN0PG51bWJlcj4oKTtcbiAgcHVibGljIHJlYWRvbmx5IHNldEN1cnJlbnRQYWdlSW5wdXRWYWx1ZVN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSBjaGFuZ2VQYWdlQnlEZWx0YVN1YmplY3QgPSBuZXcgU3ViamVjdDxudW1iZXI+KCk7XG4gIHB1YmxpYyByZWFkb25seSBzaG93Q29tbWVudFN1bW1hcnkgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IGdyYWJORHJhZyA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuICBwdWJsaWMgcmVhZG9ubHkgc2F2ZVJvdGF0aW9uU3ViamVjdCA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHJlZGFjdGlvbk1vZGUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHJlZGFjdGlvblByZXZpZXcgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgYXBwbHlSZWRhY3RUb0RvY3VtZW50ID0gbmV3IFN1YmplY3QoKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgY2xlYXJBbGxSZWRhY3RNYXJrZXJzID0gbmV3IFN1YmplY3QoKTtcbiAgcHVibGljIHJlYWRvbmx5IHJlZGFjdFdob2xlUGFnZSA9IG5ldyBTdWJqZWN0KCk7XG4gIHB1YmxpYyByZWFkb25seSByZWRhY3Rpb25TZXJhY2hTdWJqZWN0ID0gbmV3IFN1YmplY3Q8UmVkYWN0aW9uU2VhcmNoPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgcmVkYWN0QWxsSW5Qcm9ncmVzc1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IG9wZW5SZWRhY3Rpb25TZWFyY2ggPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNlYXJjaE1vZGUgfCBudWxsPihudWxsKTtcblxuICBwdWJsaWMgcmVhZG9ubHkgc2lkZWJhck9wZW4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgcHVibGljIHJlYWRvbmx5IHNpZGViYXJPdXRsaW5lVmlldyA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG5cbiAgcHVibGljIHJlYWRvbmx5IHNlYXJjaEJhckhpZGRlbiA9IG5ldyBCZWhhdmlvclN1YmplY3QodHJ1ZSk7XG4gIHB1YmxpYyByZWFkb25seSBjb21tZW50c1BhbmVsVmlzaWJsZSA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIHB1YmxpYyByZWFkb25seSBpY3AgPSBpY3BFdmVudHM7XG5cblxuICAvKipcbiAgICogUmVzZXQgdGhlIHN0YXRlZnVsIGJlaGF2aW91ciBzdWJqZWN0c1xuICAgKi9cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0Q3VycmVudFBhZ2VTdWJqZWN0Lm5leHQoMSk7XG4gICAgdGhpcy56b29tVmFsdWVTdWJqZWN0Lm5leHQoMSk7XG4gICAgdGhpcy5oaWdobGlnaHRNb2RlU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB0aGlzLmhpZ2hsaWdodFRvb2xiYXJTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIHRoaXMuZHJhd01vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIHRoaXMuc2hvd0NvbW1lbnRTdW1tYXJ5Lm5leHQoZmFsc2UpO1xuICAgIHRoaXMuZ3JhYk5EcmFnLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgLy8gRnVuY3Rpb24gdG8gaW5mb3JtIE9ic2VydmVycyB0aGF0IGhpZ2hsaWdodE1vZGUgaGFzIGJlZW4gZW5hYmxlZFxuICBwdWJsaWMgdG9nZ2xlSGlnaGxpZ2h0TW9kZSgpOiB2b2lkIHtcbiAgICAvLyBIaWdobGlnaHQgYW5kIERyYXcgc3RhdGVzIGFyZSBtdXR1YWxseSBleGNsdXNpdmVcbiAgICBpZiAodGhpcy5oaWdobGlnaHRNb2RlU3ViamVjdC5nZXRWYWx1ZSgpID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5kcmF3TW9kZVN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICB0aGlzLmdyYWJORHJhZy5uZXh0KGZhbHNlKTtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0TW9kZVN1YmplY3QubmV4dCh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWdobGlnaHRNb2RlU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG4gIH1cblxuICAvLyBGdW5jdGlvbiB0byBpbmZvcm0gT2JzZXJ2ZXJzIHRoYXQgVG9nZ2xlTW9kZSBoYXMgYmVlbiBlbmFibGVkXG4gIHB1YmxpYyB0b2dnbGVEcmF3TW9kZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcmF3TW9kZVN1YmplY3QuZ2V0VmFsdWUoKSA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuaGlnaGxpZ2h0TW9kZVN1YmplY3QubmV4dChmYWxzZSk7XG4gICAgICB0aGlzLmdyYWJORHJhZy5uZXh0KGZhbHNlKTtcbiAgICAgIHRoaXMuZHJhd01vZGVTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJhd01vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVIaWdobGlnaHRUb29sYmFyKCk6IHZvaWQge1xuICAgIHRoaXMuaGlnaGxpZ2h0VG9vbGJhclN1YmplY3QubmV4dCghdGhpcy5oaWdobGlnaHRUb29sYmFyU3ViamVjdC5nZXRWYWx1ZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyByb3RhdGUoYW5nbGU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMucm90YXRlU3ViamVjdC5uZXh0KGFuZ2xlKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWFyY2gocGhyYXNlOiBTZWFyY2hPcGVyYXRpb24pOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFN1YmplY3QubmV4dChwaHJhc2UpO1xuICB9XG5cbiAgcHVibGljIGdldFNlYXJjaFJlc3VsdHNDb3VudCgpOiBPYnNlcnZhYmxlPFNlYXJjaFJlc3VsdHNDb3VudD4ge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFJlc3VsdHNDb3VudFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgem9vbSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy56b29tU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGVwWm9vbSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwWm9vbVN1YmplY3QubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Wm9vbVZhbHVlKCk6IE9ic2VydmFibGU8bnVtYmVyPiB7XG4gICAgcmV0dXJuIHRoaXMuem9vbVZhbHVlU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRQYWdlQ291bnQoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5wYWdlQ291bnRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHByaW50KCk6IHZvaWQge1xuICAgIHRoaXMucHJpbnRTdWJqZWN0Lm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyBkb3dubG9hZCgpOiB2b2lkIHtcbiAgICB0aGlzLmRvd25sb2FkU3ViamVjdC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgc2V0UGFnZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5zZXRDdXJyZW50UGFnZVN1YmplY3QubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgaW5jcmVtZW50UGFnZSh2YWx1ZTogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jaGFuZ2VQYWdlQnlEZWx0YVN1YmplY3QubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q3VycmVudFBhZ2VOdW1iZXIoKTogT2JzZXJ2YWJsZTxudW1iZXI+IHtcbiAgICByZXR1cm4gdGhpcy5zZXRDdXJyZW50UGFnZUlucHV0VmFsdWVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIGdldFNob3dDb21tZW50U3VtbWFyeSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5zaG93Q29tbWVudFN1bW1hcnkuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlQ29tbWVudHNTdW1tYXJ5KHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5zaG93Q29tbWVudFN1bW1hcnkubmV4dCh2YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgc2F2ZVJvdGF0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2F2ZVJvdGF0aW9uU3ViamVjdC5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlR3JhYk5EcmFnKCk6IHZvaWQge1xuICAgIHRoaXMuZ3JhYk5EcmFnLm5leHQoIXRoaXMuZ3JhYk5EcmFnLmdldFZhbHVlKCkpO1xuICB9XG5cbiAgdG9nZ2xlU2lkZUJhcih0b2dnbGU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnNpZGViYXJPcGVuLm5leHQodG9nZ2xlKTtcbiAgfVxuXG4gIHRvZ2dsZVNpZGVCYXJWaWV3KHRvZ2dsZTogYm9vbGVhbikge1xuICAgIHRoaXMuc2lkZWJhck91dGxpbmVWaWV3Lm5leHQodG9nZ2xlKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVSZWRhY3Rpb25Nb2RlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJlZGFjdGlvbk1vZGUuZ2V0VmFsdWUoKSA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuZHJhd01vZGVTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgdGhpcy5ncmFiTkRyYWcubmV4dChmYWxzZSk7XG4gICAgICB0aGlzLnJlZGFjdGlvbk1vZGUubmV4dCh0cnVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZWRhY3Rpb25Nb2RlLm5leHQoZmFsc2UpO1xuICAgIH1cbiAgICB0aGlzLm9wZW5SZWRhY3Rpb25TZWFyY2gubmV4dCh7IG1vZGVUeXBlOiBTZWFyY2hUeXBlLlJlZGFjdCwgaXNPcGVuOiBmYWxzZSB9KTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVSZWRhY3Rpb25QcmV2aWV3KHZpZXdNb2RlOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yZWRhY3Rpb25QcmV2aWV3Lm5leHQodmlld01vZGUpO1xuICB9XG5cbiAgcHVibGljIHVubWFya0FsbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyQWxsUmVkYWN0TWFya2Vycy5uZXh0KCk7XG4gIH1cblxuICBwdWJsaWMgYXBwbHlSZWRhY3Rpb25Ub0RvY3VtZW50KCk6IHZvaWQge1xuICAgIHRoaXMuYXBwbHlSZWRhY3RUb0RvY3VtZW50Lm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyByZWRhY3RQYWdlKCk6IHZvaWQge1xuICAgIHRoaXMucmVkYWN0V2hvbGVQYWdlLm5leHQoKTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVDb21tZW50c1BhbmVsKGlzVmlzaWJsZTogYm9vbGVhbikge1xuICAgIGlmIChpc1Zpc2libGUpIHtcbiAgICAgIHRoaXMudG9nZ2xlUGFydGljaXBhbnRzTGlzdCghaXNWaXNpYmxlKTtcbiAgICB9XG4gICAgdGhpcy5jb21tZW50c1BhbmVsVmlzaWJsZS5uZXh0KGlzVmlzaWJsZSk7XG4gIH1cblxuICBwdWJsaWMgdG9nZ2xlUGFydGljaXBhbnRzTGlzdChpc1Zpc2libGU6IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNWaXNpYmxlKSB7XG4gICAgICB0aGlzLnRvZ2dsZUNvbW1lbnRzUGFuZWwoIWlzVmlzaWJsZSk7XG4gICAgfVxuICAgIHRoaXMuaWNwLnBhcnRpY2lwYW50c0xpc3RWaXNpYmxlLm5leHQoaXNWaXNpYmxlKTtcbiAgfVxufVxuIl19