@hmcts/ccd-case-ui-toolkit 7.2.2-no-task-error → 7.2.2-restricted-case-removal-2

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 (39) hide show
  1. package/esm2022/lib/app.config.mjs +1 -2
  2. package/esm2022/lib/shared/components/case-viewer/services/case.resolver.mjs +6 -10
  3. package/esm2022/lib/shared/components/palette/case-file-view/case-file-view-field.component.mjs +2 -2
  4. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component.mjs +2 -2
  5. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-toggle/case-file-view-folder-toggle.component.mjs +48 -0
  6. package/esm2022/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.mjs +44 -32
  7. package/esm2022/lib/shared/components/palette/case-file-view/components/index.mjs +2 -1
  8. package/esm2022/lib/shared/components/palette/collection/write-collection-field.component.mjs +17 -16
  9. package/esm2022/lib/shared/components/palette/palette.module.mjs +6 -2
  10. package/esm2022/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.mjs +126 -154
  11. package/esm2022/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.mjs +31 -33
  12. package/esm2022/lib/shared/components/palette/query-management/components/query-details/query-details.component.mjs +5 -5
  13. package/esm2022/lib/shared/components/palette/query-management/components/query-list/query-list.component.mjs +4 -4
  14. package/esm2022/lib/shared/components/palette/query-management/components/query-write/query-write-respond-to-query/query-write-respond-to-query.component.mjs +2 -2
  15. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.mjs +4 -8
  16. package/esm2022/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.mjs +5 -33
  17. package/esm2022/lib/shared/components/palette/query-management/read-query-management-field.component.mjs +3 -3
  18. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs +294 -300
  19. package/fesm2022/hmcts-ccd-case-ui-toolkit.mjs.map +1 -1
  20. package/lib/app.config.d.ts +0 -2
  21. package/lib/app.config.d.ts.map +1 -1
  22. package/lib/shared/components/case-viewer/services/case.resolver.d.ts +1 -3
  23. package/lib/shared/components/case-viewer/services/case.resolver.d.ts.map +1 -1
  24. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-toggle/case-file-view-folder-toggle.component.d.ts +15 -0
  25. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder-toggle/case-file-view-folder-toggle.component.d.ts.map +1 -0
  26. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts +2 -0
  27. package/lib/shared/components/palette/case-file-view/components/case-file-view-folder/case-file-view-folder.component.d.ts.map +1 -1
  28. package/lib/shared/components/palette/case-file-view/components/index.d.ts +1 -0
  29. package/lib/shared/components/palette/case-file-view/components/index.d.ts.map +1 -1
  30. package/lib/shared/components/palette/palette.module.d.ts +69 -68
  31. package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
  32. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts +1 -5
  33. package/lib/shared/components/palette/query-management/components/query-check-your-answers/query-check-your-answers.component.d.ts.map +1 -1
  34. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts +1 -4
  35. package/lib/shared/components/palette/query-management/components/query-confirmation/query-confirmation.component.d.ts.map +1 -1
  36. package/lib/shared/components/palette/query-management/models/query-list/query-list-data/query-list-data.model.d.ts.map +1 -1
  37. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts +0 -1
  38. package/lib/shared/components/palette/query-management/models/query-list/query-list-item/query-list-item.model.d.ts.map +1 -1
  39. package/package.json +1 -1
@@ -17,16 +17,17 @@ import * as i2 from "@nicky-lenaers/ngx-scroll-to";
17
17
  import * as i3 from "../../../services/profile/profile.notifier";
18
18
  const _c0 = ["collectionItem"];
19
19
  function WriteCollectionFieldComponent_h2_8_span_1_Template(rf, ctx) { if (rf & 1) {
20
- i0.ɵɵelementStart(0, "span", 10);
21
- i0.ɵɵelement(1, "ccd-markdown", 11);
22
- i0.ɵɵelementEnd();
20
+ i0.ɵɵelementStart(0, "span", 10)(1, "markdown");
21
+ i0.ɵɵtext(2);
22
+ i0.ɵɵpipe(3, "rpxTranslate");
23
+ i0.ɵɵelementEnd()();
23
24
  } if (rf & 2) {
24
25
  const ctx_r0 = i0.ɵɵnextContext(2);
25
- i0.ɵɵadvance();
26
- i0.ɵɵproperty("content", ctx_r0.caseField.hint_text);
26
+ i0.ɵɵadvance(2);
27
+ i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(3, 1, ctx_r0.caseField.hint_text));
27
28
  } }
28
29
  function WriteCollectionFieldComponent_h2_8_span_2_Template(rf, ctx) { if (rf & 1) {
29
- i0.ɵɵelementStart(0, "span", 12);
30
+ i0.ɵɵelementStart(0, "span", 11);
30
31
  i0.ɵɵtext(1);
31
32
  i0.ɵɵpipe(2, "ccdFirstError");
32
33
  i0.ɵɵelementEnd();
@@ -37,7 +38,7 @@ function WriteCollectionFieldComponent_h2_8_span_2_Template(rf, ctx) { if (rf &
37
38
  } }
38
39
  function WriteCollectionFieldComponent_h2_8_Template(rf, ctx) { if (rf & 1) {
39
40
  i0.ɵɵelementStart(0, "h2", 3);
40
- i0.ɵɵtemplate(1, WriteCollectionFieldComponent_h2_8_span_1_Template, 2, 1, "span", 8)(2, WriteCollectionFieldComponent_h2_8_span_2_Template, 3, 4, "span", 9);
41
+ i0.ɵɵtemplate(1, WriteCollectionFieldComponent_h2_8_span_1_Template, 4, 3, "span", 8)(2, WriteCollectionFieldComponent_h2_8_span_2_Template, 3, 4, "span", 9);
41
42
  i0.ɵɵelementEnd();
42
43
  } if (rf & 2) {
43
44
  const ctx_r0 = i0.ɵɵnextContext();
@@ -48,16 +49,16 @@ function WriteCollectionFieldComponent_h2_8_Template(rf, ctx) { if (rf & 1) {
48
49
  } }
49
50
  function WriteCollectionFieldComponent_div_9_div_2_Template(rf, ctx) { if (rf & 1) {
50
51
  const _r2 = i0.ɵɵgetCurrentView();
51
- i0.ɵɵelementStart(0, "div", 1, 0)(2, "div", 16)(3, "div", 17)(4, "legend", 18)(5, "label", 19)(6, "h3", 20);
52
+ i0.ɵɵelementStart(0, "div", 1, 0)(2, "div", 15)(3, "div", 16)(4, "legend", 17)(5, "label", 18)(6, "h3", 19);
52
53
  i0.ɵɵtext(7);
53
54
  i0.ɵɵpipe(8, "rpxTranslate");
54
55
  i0.ɵɵelementEnd()()()();
55
- i0.ɵɵelementStart(9, "div", 21)(10, "button", 22);
56
+ i0.ɵɵelementStart(9, "div", 20)(10, "button", 21);
56
57
  i0.ɵɵlistener("click", function WriteCollectionFieldComponent_div_9_div_2_Template_button_click_10_listener() { const i_r3 = i0.ɵɵrestoreView(_r2).index; const ctx_r0 = i0.ɵɵnextContext(2); return i0.ɵɵresetView(ctx_r0.openModal(i_r3)); });
57
58
  i0.ɵɵtext(11);
58
59
  i0.ɵɵpipe(12, "rpxTranslate");
59
60
  i0.ɵɵelementEnd()()();
60
- i0.ɵɵelement(13, "ccd-field-write", 23);
61
+ i0.ɵɵelement(13, "ccd-field-write", 22);
61
62
  i0.ɵɵelementEnd();
62
63
  } if (rf & 2) {
63
64
  const item_r4 = ctx.$implicit;
@@ -77,8 +78,8 @@ function WriteCollectionFieldComponent_div_9_div_2_Template(rf, ctx) { if (rf &
77
78
  i0.ɵɵproperty("caseField", item_r4.caseField)("caseFields", ctx_r0.caseFields)("formGroup", ctx_r0.formGroup)("parent", item_r4.container)("idPrefix", item_r4.prefix)("hidden", item_r4.caseField.hidden)("isExpanded", ctx_r0.isExpanded)("isInSearchBlock", ctx_r0.isInSearchBlock);
78
79
  } }
79
80
  function WriteCollectionFieldComponent_div_9_Template(rf, ctx) { if (rf & 1) {
80
- i0.ɵɵelementStart(0, "div", 13)(1, "fieldset", 14);
81
- i0.ɵɵtemplate(2, WriteCollectionFieldComponent_div_9_div_2_Template, 14, 19, "div", 15);
81
+ i0.ɵɵelementStart(0, "div", 12)(1, "fieldset", 13);
82
+ i0.ɵɵtemplate(2, WriteCollectionFieldComponent_div_9_div_2_Template, 14, 19, "div", 14);
82
83
  i0.ɵɵelementEnd()();
83
84
  } if (rf & 2) {
84
85
  const ctx_r0 = i0.ɵɵnextContext();
@@ -88,7 +89,7 @@ function WriteCollectionFieldComponent_div_9_Template(rf, ctx) { if (rf & 1) {
88
89
  } }
89
90
  function WriteCollectionFieldComponent_button_10_Template(rf, ctx) { if (rf & 1) {
90
91
  const _r5 = i0.ɵɵgetCurrentView();
91
- i0.ɵɵelementStart(0, "button", 24);
92
+ i0.ɵɵelementStart(0, "button", 23);
92
93
  i0.ɵɵlistener("click", function WriteCollectionFieldComponent_button_10_Template_button_click_0_listener() { i0.ɵɵrestoreView(_r5); const ctx_r0 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r0.addItem(false)); });
93
94
  i0.ɵɵtext(1);
94
95
  i0.ɵɵpipe(2, "rpxTranslate");
@@ -406,7 +407,7 @@ export class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
406
407
  } if (rf & 2) {
407
408
  let _t;
408
409
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.items = _t);
409
- } }, inputs: { caseFields: "caseFields" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 11, consts: [["collectionItem", ""], [1, "form-group", 3, "id"], [1, "panel", "collection-indicator"], [1, "heading-h2", "error-spacing"], ["type", "button", 1, "button", "write-collection-add-item__top", 3, "click", "disabled"], ["class", "heading-h2 error-spacing", 4, "ngIf"], ["class", "form-group", 3, "hidden", 4, "ngIf"], ["class", "button write-collection-add-item__bottom", "type", "button", 3, "disabled", "click", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [1, "form-hint"], [3, "content"], [1, "error-message"], [1, "form-group", 3, "hidden"], [1, "govuk-fieldset"], ["class", "form-group", 3, "id", 4, "ngFor", "ngForOf"], [1, "collection-title"], [1, "float-left"], [1, "govuk-fieldset__legend"], [3, "for"], [1, "heading-h3"], [1, "float-right"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], [3, "caseField", "caseFields", "formGroup", "parent", "idPrefix", "hidden", "isExpanded", "isInSearchBlock"], ["type", "button", 1, "button", "write-collection-add-item__bottom", 3, "click", "disabled"]], template: function WriteCollectionFieldComponent_Template(rf, ctx) { if (rf & 1) {
410
+ } }, inputs: { caseFields: "caseFields" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 11, vars: 11, consts: [["collectionItem", ""], [1, "form-group", 3, "id"], [1, "panel", "collection-indicator"], [1, "heading-h2", "error-spacing"], ["type", "button", 1, "button", "write-collection-add-item__top", 3, "click", "disabled"], ["class", "heading-h2 error-spacing", 4, "ngIf"], ["class", "form-group", 3, "hidden", 4, "ngIf"], ["class", "button write-collection-add-item__bottom", "type", "button", 3, "disabled", "click", 4, "ngIf"], ["class", "form-hint", 4, "ngIf"], ["class", "error-message", 4, "ngIf"], [1, "form-hint"], [1, "error-message"], [1, "form-group", 3, "hidden"], [1, "govuk-fieldset"], ["class", "form-group", 3, "id", 4, "ngFor", "ngForOf"], [1, "collection-title"], [1, "float-left"], [1, "govuk-fieldset__legend"], [3, "for"], [1, "heading-h3"], [1, "float-right"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], [3, "caseField", "caseFields", "formGroup", "parent", "idPrefix", "hidden", "isExpanded", "isInSearchBlock"], ["type", "button", 1, "button", "write-collection-add-item__bottom", 3, "click", "disabled"]], template: function WriteCollectionFieldComponent_Template(rf, ctx) { if (rf & 1) {
410
411
  i0.ɵɵelementStart(0, "div", 1)(1, "div", 2)(2, "h2", 3);
411
412
  i0.ɵɵtext(3);
412
413
  i0.ɵɵpipe(4, "ccdFieldLabel");
@@ -436,7 +437,7 @@ export class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
436
437
  }
437
438
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WriteCollectionFieldComponent, [{
438
439
  type: Component,
439
- args: [{ selector: 'ccd-write-collection-field', template: "<div class=\"form-group\" [id]=\"id()\">\n\n <div class=\"panel collection-indicator\">\n\n <h2 class=\"heading-h2 error-spacing\">\n {{(caseField | ccdFieldLabel)}}\n </h2>\n <button class=\"button write-collection-add-item__top\" type=\"button\" (click)=\"addItem(true)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\">{{'Add new' | rpxTranslate}}</button>\n <h2 class=\"heading-h2 error-spacing\" *ngIf=\"caseField.hint_text || formArray.errors\">\n <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">\n <ccd-markdown [content]=\"caseField.hint_text\"></ccd-markdown>\n </span>\n <span *ngIf=\"formArray.errors\" class=\"error-message\">\n {{(formArray.errors | ccdFirstError:caseField.label)}}\n </span>\n </h2>\n\n <div class=\"form-group\" [hidden]=\"caseField.hidden\" *ngIf=\"caseField.value && caseField.value.length\">\n <fieldset class=\"govuk-fieldset\">\n <div *ngFor=\"let item of collItems; let i = index\" #collectionItem\n [id]=\"this.buildIdPrefix(i) + i\" class=\"form-group\">\n <div class=\"collection-title\">\n <div class=\"float-left\">\n <legend class=\"govuk-fieldset__legend\">\n <label [for]=\"item.prefix + i\"><h3 class=\"heading-h3\">{{itemLabel(i) | rpxTranslate}}</h3></label>\n </legend>\n </div>\n <div class=\"float-right\">\n <button class=\"button button-secondary\" type=\"button\" (click)=\"openModal(i)\"\n [disabled]=\"isNotAuthorisedToDelete(i)\"\n attr.aria-label=\"Remove {{ itemLabel(i) }}\">{{'Remove' | rpxTranslate}}</button>\n </div>\n </div>\n <ccd-field-write [caseField]=\"item.caseField\"\n [caseFields]=\"caseFields\"\n [formGroup]=\"formGroup\"\n [parent]=\"item.container\"\n [idPrefix]=\"item.prefix\"\n [hidden]=\"item.caseField.hidden\"\n [isExpanded]=\"isExpanded\"\n [isInSearchBlock]=\"isInSearchBlock\">\n </ccd-field-write>\n </div>\n </fieldset>\n </div>\n\n <button class=\"button write-collection-add-item__bottom\" type=\"button\" (click)=\"addItem(false)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\" *ngIf=\"caseField.value && caseField.value.length\">{{'Add new' | rpxTranslate }}</button>\n\n </div>\n\n</div>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media (min-width: 641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
440
+ args: [{ selector: 'ccd-write-collection-field', template: "<div class=\"form-group\" [id]=\"id()\">\n\n <div class=\"panel collection-indicator\">\n\n <h2 class=\"heading-h2 error-spacing\">\n {{(caseField | ccdFieldLabel)}}\n </h2>\n <button class=\"button write-collection-add-item__top\" type=\"button\" (click)=\"addItem(true)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\">{{'Add new' | rpxTranslate}}</button>\n <h2 class=\"heading-h2 error-spacing\" *ngIf=\"caseField.hint_text || formArray.errors\">\n <span *ngIf=\"caseField.hint_text\" class=\"form-hint\">\n <markdown>{{caseField.hint_text | rpxTranslate }}</markdown>\n </span>\n <span *ngIf=\"formArray.errors\" class=\"error-message\">\n {{(formArray.errors | ccdFirstError:caseField.label)}}\n </span>\n </h2>\n\n <div class=\"form-group\" [hidden]=\"caseField.hidden\" *ngIf=\"caseField.value && caseField.value.length\">\n <fieldset class=\"govuk-fieldset\">\n <div *ngFor=\"let item of collItems; let i = index\" #collectionItem\n [id]=\"this.buildIdPrefix(i) + i\" class=\"form-group\">\n <div class=\"collection-title\">\n <div class=\"float-left\">\n <legend class=\"govuk-fieldset__legend\">\n <label [for]=\"item.prefix + i\"><h3 class=\"heading-h3\">{{itemLabel(i) | rpxTranslate}}</h3></label>\n </legend>\n </div>\n <div class=\"float-right\">\n <button class=\"button button-secondary\" type=\"button\" (click)=\"openModal(i)\"\n [disabled]=\"isNotAuthorisedToDelete(i)\"\n attr.aria-label=\"Remove {{ itemLabel(i) }}\">{{'Remove' | rpxTranslate}}</button>\n </div>\n </div>\n <ccd-field-write [caseField]=\"item.caseField\"\n [caseFields]=\"caseFields\"\n [formGroup]=\"formGroup\"\n [parent]=\"item.container\"\n [idPrefix]=\"item.prefix\"\n [hidden]=\"item.caseField.hidden\"\n [isExpanded]=\"isExpanded\"\n [isInSearchBlock]=\"isInSearchBlock\">\n </ccd-field-write>\n </div>\n </fieldset>\n </div>\n\n <button class=\"button write-collection-add-item__bottom\" type=\"button\" (click)=\"addItem(false)\" [disabled]=\"isNotAuthorisedToCreate() || isSearchFilter()\" *ngIf=\"caseField.value && caseField.value.length\">{{'Add new' | rpxTranslate }}</button>\n\n </div>\n\n</div>\n", styles: [".collection-field-table tr:first-child>td{padding-top:0}.collection-field-table tr:last-child>td{border-bottom:none}.collection-field-table td.collection-actions{width:1px;white-space:nowrap}.error-spacing{margin-top:10px}.collection-title{height:51px}.float-left{float:left;padding-top:8px}.float-right{float:right}.complex-panel{margin:13px 0;border:1px solid #bfc1c3}.complex-panel .complex-panel-title{background-color:#dee0e2;padding:5px 5px 2px;border-bottom:1px solid #bfc1c3;display:block;color:#0b0c0c;font-family:nta,Arial,sans-serif;font-weight:700;text-transform:none;font-size:16px;line-height:1.25}@media (min-width: 641px){.complex-panel .complex-panel-title{font-size:19px;line-height:1.3157894737}}.complex-panel .complex-panel-table>tbody>tr>th{vertical-align:top}.complex-panel .complex-panel-table>tbody>tr:last-child>th,.complex-panel .complex-panel-table>tbody>tr:last-child>td{border-bottom:none}.complex-panel .complex-panel-simple-field th{padding-left:5px;width:295px}.complex-panel .complex-panel-compound-field td{padding:5px}.collection-indicator{border-left:solid 5px #b1b4b6}\n"] }]
440
441
  }], () => [{ type: i1.MatLegacyDialog }, { type: i2.ScrollToService }, { type: i3.ProfileNotifier }, { type: i0.ChangeDetectorRef }], { caseFields: [{
441
442
  type: Input
442
443
  }], items: [{
@@ -444,4 +445,4 @@ export class WriteCollectionFieldComponent extends AbstractFieldWriteComponent {
444
445
  args: ['collectionItem']
445
446
  }] }); })();
446
447
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WriteCollectionFieldComponent, { className: "WriteCollectionFieldComponent", filePath: "lib/shared/components/palette/collection/write-collection-field.component.ts", lineNumber: 31 }); })();
447
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY29sbGVjdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jb2xsZWN0aW9uL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY29sbGVjdGlvbi93cml0ZS1jb2xsZWN0aW9uLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsSUFBSSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM3RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUM1RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7OztJQ05yRixnQ0FBb0Q7SUFDcEQsbUNBQTZEO0lBQzdELGlCQUFPOzs7SUFETyxjQUErQjtJQUEvQixvREFBK0I7OztJQUU3QyxnQ0FBcUQ7SUFDbkQsWUFDRjs7SUFBQSxpQkFBTzs7O0lBREwsY0FDRjtJQURFLHNHQUNGOzs7SUFORiw2QkFBcUY7SUFJbkYsQUFIQSxxRkFBb0Qsd0VBR0M7SUFHdkQsaUJBQUs7OztJQU5JLGNBQXlCO0lBQXpCLGlEQUF5QjtJQUd6QixjQUFzQjtJQUF0Qiw4Q0FBc0I7Ozs7SUFZWSxBQUEvQixBQURGLEFBREYsQUFERixBQUZGLGlDQUN3RCxjQUN4QixjQUNKLGlCQUNpQixnQkFDTixhQUF1QjtJQUFBLFlBQStCOztJQUV6RixBQURFLEFBRDRGLEFBQUwsaUJBQUssRUFBUSxFQUMzRixFQUNMO0lBRUosQUFERiwrQkFBeUIsa0JBRzZCO0lBRkUsb05BQVMsc0JBQVksS0FBQztJQUV4QixhQUEyQjs7SUFFbkYsQUFERSxBQURpRixpQkFBUyxFQUNwRixFQUNGO0lBQ04sdUNBUWtCO0lBQ3BCLGlCQUFNOzs7OztJQXRCRixzREFBZ0M7SUFJckIsZUFBdUI7SUFBdkIsMkNBQXVCO0lBQXdCLGVBQStCO0lBQS9CLG1FQUErQjtJQU0vRSxlQUEyQztJQUEzQywrRUFBMkM7SUFEM0MsK0RBQXVDO0lBQ0ssY0FBMkI7SUFBM0Isc0RBQTJCO0lBR2xFLGVBQTRCO0lBTzdCLEFBREEsQUFEQSxBQURBLEFBREEsQUFEQSxBQURBLEFBREMsNkNBQTRCLGlDQUNKLCtCQUNGLDZCQUNFLDRCQUNELG9DQUNRLGlDQUNQLDJDQUNVOzs7SUF0QnZELEFBREYsK0JBQXNHLG1CQUNuRTtJQUMvQix1RkFDd0Q7SUF3QjVELEFBREUsaUJBQVcsRUFDUDs7O0lBM0JrQixnREFBMkI7SUFFekIsZUFBYztJQUFkLDBDQUFjOzs7O0lBMkJ4QyxrQ0FBNk07SUFBdEksNkxBQVMsZUFBUSxLQUFLLENBQUMsS0FBQztJQUE4RyxZQUE2Qjs7SUFBQSxpQkFBUzs7O0lBQW5KLHNGQUEwRDtJQUFtRCxjQUE2QjtJQUE3QixxREFBNkI7O0FEaEI5TyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsMkJBQTJCO0lBYS9DO0lBQ1Y7SUFDQTtJQUNBO0lBZFosVUFBVSxHQUFnQixFQUFFLENBQUM7SUFFN0IsU0FBUyxDQUFZO0lBRXJCLE9BQU8sQ0FBVTtJQUNqQixtQkFBbUIsQ0FBZTtJQUd4QixLQUFLLENBQXdCO0lBQzlCLFNBQVMsR0FBcUIsRUFBRSxDQUFDO0lBRWpELFlBQTZCLE1BQWlCLEVBQzNCLGVBQWdDLEVBQ2hDLGVBQWdDLEVBQ2hDLEtBQXdCO1FBRXpDLEtBQUssRUFBRSxDQUFDO1FBTG1CLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDM0Isb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxVQUFLLEdBQUwsS0FBSyxDQUFtQjtJQUczQyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxrRUFBa0U7WUFDeEYsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0YsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFjLENBQUM7UUFDNUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQVMsRUFBRSxLQUFhLEVBQUUsRUFBRTtZQUN4RCxNQUFNLE1BQU0sR0FBVyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ25ELFNBQVMsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQTtZQUNqQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNDLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksS0FBSyxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDcEMsQ0FBQztZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUM7UUFDeEUsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVNLGNBQWMsQ0FBQyxJQUFJLEVBQUUsS0FBYSxFQUFFLEtBQUssR0FBRyxLQUFLO1FBQ3REOzs7Ozs7Ozs7Ozs7V0FZRztRQUNILElBQUksS0FBZ0IsQ0FBQztRQUNyQixJQUFJLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ3RELEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQWMsQ0FBQztRQUNoRCxDQUFDO2FBQU0sQ0FBQztZQUNOLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsSUFBSSxLQUFLLENBQUM7UUFDVixJQUFJLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztZQUNsRCxLQUFLLEdBQUcsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQWdCLENBQUM7WUFDMUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLEtBQUssR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BDLG9EQUFvRDtnQkFDcEQsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDbkMsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFjLENBQUM7WUFDeEMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLEtBQUssR0FBRyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFDMUIsS0FBSyxNQUFNLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO29CQUM5QyxLQUFLLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ3RDLG1FQUFtRTtvQkFDbkUsZ0RBQWdEO29CQUNoRCw0QkFBNEI7Z0JBQzlCLENBQUM7Z0JBQ0Qsa0RBQWtEO2dCQUNsRCxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNuQyxDQUFDO1FBQ0gsQ0FBQztRQUNELElBQUksRUFBRSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFnQixDQUFDO1FBQ3hDLHVFQUF1RTtRQUN2RSx3Q0FBd0M7UUFDeEMscURBQXFEO1FBQ3JELElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNSLEVBQUUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVEOzs7V0FHRztRQUVILHlEQUF5RDtRQUN6RCxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztRQUMxQyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCwyQ0FBMkM7UUFDM0MsSUFBSSxJQUFZLENBQUM7UUFDakIsSUFBSSxLQUFLLFlBQVksV0FBVyxFQUFFLENBQUM7WUFDakMsSUFBSSxHQUFHLE9BQU8sQ0FBQztRQUNqQixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUVELFNBQVM7UUFDVCxNQUFNLEVBQUUsR0FBYyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2xFLHFCQUFxQixDQUFDLGFBQWEsQ0FBQyxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDL0MsV0FBVyxDQUFDLGtDQUFrQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDaEUsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWE7UUFDaEMsTUFBTSxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxHQUFHLENBQUM7UUFDdkQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEUsT0FBTyxHQUFHLE1BQU0sR0FBRyxLQUFLLEdBQUcsQ0FBQztRQUM5QixDQUFDO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVNLGNBQWM7UUFDbkIsT0FBTyxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sT0FBTyxDQUFDLFFBQWlCO1FBQzlCLGlHQUFpRztRQUNqRyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLElBQUksR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUUzQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLENBQUM7WUFDL0IsSUFBSSxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNwRSxNQUFNLEdBQUcsR0FBVyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDakUsSUFBWSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDOUMsTUFBTSxTQUFTLEdBQWMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRW5FLGtHQUFrRztRQUNsRyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRTNCLElBQUksUUFBUSxFQUFFLENBQUM7WUFDYixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQztnQkFDNUIsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLEVBQUU7Z0JBQzlDLFFBQVEsRUFBRSxJQUFJO2dCQUNkLE1BQU0sRUFBRSxDQUFDLEdBQUc7YUFDYixDQUFDO2lCQUNDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLENBQUM7UUFFRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVPLG1CQUFtQjtRQUN6QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1lBQ25GLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMscUJBQXFCLENBQUMsRUFBRSxLQUFLLGtCQUFrQixDQUFDO0lBQ25GLENBQUM7SUFFTyxZQUFZLENBQUMsRUFBVSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxHQUFHLEtBQUs7UUFDekQsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFOUUsTUFBTSxTQUFTLEdBQUcscUJBQXFCLENBQUMsSUFBSSxTQUFTLEVBQUUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQzFHLElBQUksU0FBUyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzdCLFNBQVMsQ0FBQyxjQUFjO2lCQUNyQixNQUFNLENBQUMsQ0FBQyxFQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUM5QyxHQUFHLENBQUMsQ0FBQyxFQUFhLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDOUMsQ0FBQztRQUVELCtFQUErRTtRQUMvRSw4RUFBOEU7UUFDOUUsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLFNBQVMsRUFBRSxFQUFFO1lBQzVDLEVBQUU7WUFDRixVQUFVLEVBQUUsU0FBUztZQUNyQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxlQUFlO1lBQ3RGLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixLQUFLLEVBQUUsSUFBSTtZQUNYLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUk7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLFlBQVksQ0FBQyxLQUFhO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxJQUFJLEtBQUssWUFBWSxTQUFTLEVBQUUsQ0FBQztZQUMvQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQWMsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUVPLGFBQWE7UUFDbkIsTUFBTSxJQUFJLEdBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvRSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ1QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFTyxVQUFVLENBQUMsS0FBYTtRQUM5QixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTyxRQUFRLENBQUMsS0FBYTtRQUM1QixLQUFLLElBQUksQ0FBQyxHQUFHLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUNuRCxNQUFNLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssT0FBTyxFQUFFLENBQUM7Z0JBQ25FLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUM5QixDQUFDO1lBRUQsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFO21CQUM1RCxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLEtBQUssT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7Z0JBQzNELElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEQsQ0FBQztZQUVELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNqSSxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFekYsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxnQkFBZ0IsRUFBRSxDQUFDO2dCQUM5RSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7WUFDdkMsQ0FBQztZQUVELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUMsV0FBVyxDQUFDLEVBQUUsUUFBUSxDQUFDO1lBRWpGLE1BQU0sU0FBUyxHQUFHLGlCQUFpQixDQUFDLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvRyxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsRUFBRSxJQUFJLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFFekYsSUFBSSxpQkFBaUIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLEtBQUssZ0JBQWdCLEVBQUUsQ0FBQztnQkFDaEcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLENBQUMsUUFBUSxHQUFHLFNBQVMsQ0FBQztZQUNoRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxTQUFTLENBQUMsS0FBYTtRQUM1QixJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ1YsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNoRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztJQUM5QixDQUFDO0lBRU0sdUJBQXVCO1FBQzVCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELE9BQU8sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUN0RSxDQUFDO0lBRU0sdUJBQXVCLENBQUMsS0FBZ0IsRUFBRSxJQUFZO1FBQzNELE9BQU8sS0FBSyxDQUFDLHlCQUF5QjtZQUNwQyxLQUFLLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztpQkFDdkMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDakQsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTSx1QkFBdUIsQ0FBQyxLQUFLO1FBQ2xDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUNELGtIQUFrSDtRQUNsSCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RDLElBQUksRUFBRSxFQUFFLENBQUM7WUFDUCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ3BELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUN6RixPQUFPLENBQUMsVUFBVSxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRU0sZUFBZSxDQUFDLElBQVM7UUFDOUIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksS0FBSyxJQUFJLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQztJQUNyRixDQUFDO0lBRU0sdUJBQXVCLENBQUMsS0FBYTtRQUMxQyxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7UUFDRCw0RUFBNEU7UUFDNUUsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN0QyxPQUFPLENBQUMsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxhQUFhLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRU0sU0FBUyxDQUFDLENBQVM7UUFDeEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxlQUFlLEVBQUUsQ0FBQztRQUMzQyxZQUFZLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUNqQyxZQUFZLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUM5QixZQUFZLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUNqQyxZQUFZLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztRQUM5QixZQUFZLENBQUMsS0FBSyxHQUFHLE9BQU8sQ0FBQztRQUM3QixZQUFZLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQztRQUVuQyxZQUFZLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLFlBQVksQ0FBQyxRQUFRLEdBQUc7WUFDdEIsR0FBRyxFQUFFLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsR0FBRyxJQUFJO1NBQ25GLENBQUM7UUFFRixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUV4RSxTQUFTLENBQUMsV0FBVyxFQUFFLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3pDLElBQUksTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN4QixJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNLLGNBQWMsQ0FBQyxLQUFhO1FBRWxDLG1GQUFtRjtRQUNuRix3REFBd0Q7UUFDeEQsTUFBTSxLQUFLLEdBQWMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFjLENBQUM7UUFDL0QsTUFBTSxPQUFPLEdBQWdCLEtBQUssQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFnQixDQUFDO1FBQzVELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDN0MsQ0FBQztJQUVPLHdCQUF3QixDQUFDLFNBQW9CO1FBQ25ELE1BQU0sU0FBUyxHQUFHLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRixDQUFDO3VIQXBWVSw2QkFBNkI7NkRBQTdCLDZCQUE2Qjs7Ozs7O1lDMUJ0QyxBQUZGLEFBRkYsOEJBQW9DLGFBRU0sWUFFRDtZQUNuQyxZQUNGOztZQUFBLGlCQUFLO1lBQ0wsaUNBQXVKO1lBQW5GLDBHQUFTLFlBQVEsSUFBSSxDQUFDLElBQUM7WUFBNEQsWUFBNEI7O1lBQUEsaUJBQVM7WUF1QzVMLEFBN0JBLEFBVEEsNEVBQXFGLGlFQVNpQix5RUE2QnVHO1lBSWpOLEFBRkUsaUJBQU0sRUFFRjs7WUFsRGtCLDZCQUFXO1lBSzdCLGVBQ0Y7WUFERSxvRUFDRjtZQUM0RixlQUEwRDtZQUExRCxnRkFBMEQ7WUFBQyxjQUE0QjtZQUE1QixxREFBNEI7WUFDN0ksZUFBNkM7WUFBN0Msc0VBQTZDO1lBUzlCLGNBQStDO1lBQS9DLHdFQUErQztZQTZCd0QsY0FBK0M7WUFBL0Msd0VBQStDOzs7aUZEaEJsTSw2QkFBNkI7Y0FMekMsU0FBUzsyQkFDRSw0QkFBNEI7NElBTS9CLFVBQVU7a0JBRGhCLEtBQUs7WUFTVyxLQUFLO2tCQURyQixZQUFZO21CQUFDLGdCQUFnQjs7a0ZBVG5CLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRyZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1BcnJheSwgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZyBhcyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcbmltcG9ydCB7IE1hdERpYWxvZ0NvbmZpZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTY3JvbGxUb1NlcnZpY2UgfSBmcm9tICdAbmlja3ktbGVuYWVycy9uZ3gtc2Nyb2xsLXRvJztcbmltcG9ydCB7IHBsYWluVG9DbGFzc0Zyb21FeGlzdCB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vZmllbGQtdHlwZS5tb2RlbCc7XG5cbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgUHJvZmlsZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9wcm9maWxlL3Byb2ZpbGUubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UnO1xuaW1wb3J0IHsgUHJvZmlsZU5vdGlmaWVyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvcHJvZmlsZS9wcm9maWxlLm5vdGlmaWVyJztcbmltcG9ydCB7IFJlbW92ZURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4uLy4uL2RpYWxvZ3MvcmVtb3ZlLWRpYWxvZy9yZW1vdmUtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXdyaXRlLmNvbXBvbmVudCc7XG5cbnR5cGUgQ29sbGVjdGlvbkl0ZW0gPSB7XG4gIGNhc2VGaWVsZDogQ2FzZUZpZWxkO1xuICBpdGVtOiBhbnk7XG4gIHByZWZpeDogc3RyaW5nO1xuICBpbmRleDogbnVtYmVyO1xuICBjb250YWluZXI6IEZvcm1Hcm91cDtcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1jb2xsZWN0aW9uLWZpZWxkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbGxlY3Rpb24tZmllbGQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFdyaXRlQ29sbGVjdGlvbkZpZWxkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10gPSBbXTtcblxuICBwdWJsaWMgZm9ybUFycmF5OiBGb3JtQXJyYXk7XG5cbiAgcHVibGljIHByb2ZpbGU6IFByb2ZpbGU7XG4gIHB1YmxpYyBwcm9maWxlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZHJlbignY29sbGVjdGlvbkl0ZW0nKVxuICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIHB1YmxpYyByZWFkb25seSBjb2xsSXRlbXM6IENvbGxlY3Rpb25JdGVtW10gPSBbXTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRpYWxvZzogTWF0RGlhbG9nLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Nyb2xsVG9TZXJ2aWNlOiBTY3JvbGxUb1NlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcm9maWxlTm90aWZpZXI6IFByb2ZpbGVOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5pc0V4cGFuZGVkKSB7IC8vIG1lYW5pbmcgSSBhbSBub3QgcmVuZGVyZWQgb24gdGhlIHNlYXJjaC93b3JrYmFza2V0IGlucHV0IGZpbHRlclxuICAgICAgdGhpcy5wcm9maWxlU3Vic2NyaXB0aW9uID0gdGhpcy5wcm9maWxlTm90aWZpZXIucHJvZmlsZS5zdWJzY3JpYmUoXyA9PiB0aGlzLnByb2ZpbGUgPSBfKTtcbiAgICB9XG4gICAgdGhpcy5jYXNlRmllbGQudmFsdWUgPSB0aGlzLmNhc2VGaWVsZC52YWx1ZSB8fCBbXTtcbiAgICB0aGlzLmZvcm1BcnJheSA9IHRoaXMucmVnaXN0ZXJDb250cm9sKG5ldyBGb3JtQXJyYXkoW10pLCB0cnVlKSBhcyBGb3JtQXJyYXk7XG4gICAgdGhpcy5mb3JtQXJyYXlbJ2Nhc2VGaWVsZCddID0gdGhpcy5jYXNlRmllbGQ7XG4gICAgdGhpcy5jYXNlRmllbGQudmFsdWUuZm9yRWFjaCgoaXRlbTogYW55LCBpbmRleDogbnVtYmVyKSA9PiB7XG4gICAgICBjb25zdCBwcmVmaXg6IHN0cmluZyA9IHRoaXMuYnVpbGRJZFByZWZpeChpbmRleCk7XG4gICAgICBjb25zdCBjYXNlRmllbGQgPSB0aGlzLmJ1aWxkQ2FzZUZpZWxkKGl0ZW0sIGluZGV4KTtcbiAgICAgIGNhc2VGaWVsZC5wYXJlbnQgPSB0aGlzLmNhc2VGaWVsZFxuICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5nZXRDb250YWluZXIoaW5kZXgpO1xuICAgICAgaWYgKHRoaXMuY29sbEl0ZW1zLmxlbmd0aCA8PSBpbmRleCkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtcy5sZW5ndGggPSBpbmRleCArIDE7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbGxJdGVtc1tpbmRleF0gPSB7IGNhc2VGaWVsZCwgaXRlbSwgcHJlZml4LCBpbmRleCwgY29udGFpbmVyIH07XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5wcm9maWxlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJ1aWxkQ2FzZUZpZWxkKGl0ZW0sIGluZGV4OiBudW1iZXIsIGlzTmV3ID0gZmFsc2UpOiBDYXNlRmllbGQge1xuICAgIC8qKlxuICAgICAqIFdoYXQgZm9sbG93IGlzIGNvZGUgdGhhdCBtYWtlcyBtZSB3YW50IHRvIGdvIGp1bXAgaW4gdGhlIHNob3dlciFcbiAgICAgKiBCYXNpY2FsbHksIHdlIGxhbmQgaW4gaGVyZSByZXBlYXRlZGx5IGJlY2F1c2Ugb2YgdGhlIGJpbmRpbmcsIGFuZFxuICAgICAqIHRoaXMgaXMgd2hhdCBhcHBlYXJzIHRvIGJlIGhhcHBlbmluZzpcbiAgICAgKiAgIDEuIHRoaXMuZm9ybUFycmF5IGNvbnRhaW5zIG5vIGNvbnRyb2xzIGF0IGFsbC5cbiAgICAgKiAgICAgIHRoaXMuZm9ybUFycmF5LnZhbHVlID0gW107XG4gICAgICogICAyLiB0aGlzLmZvcm1BcnJheSBjb250YWlucyBhIEZvcm1Hcm91cCwgd2hpY2ggY29udGFpbnMgYSBzaW5nbGVcbiAgICAgKiAgICAgIEZvcm1Db250cm9sIHdpdGggdGhlIGlkICdjb2RlJy5cbiAgICAgKiAgICAgIHRoaXMuZm9ybUFycmF5LnZhbHVlID0gW3sgY29kZTogbnVsbCB9XVxuICAgICAqICAgMy4gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgd2hhdCBpcyBiZWluZyBzZXQgdXAgYmVsb3cuXG4gICAgICogICAgICB0aGlzLmZvcm1BcnJheS52YWx1ZSA9IFt7IGNvZGU6IG51bGwsIGlkOiBudWxsLCB2YWx1ZTogeyBjb2RlOiBudWxsIH0gfV1cbiAgICAgKiAgIDQsIDUsIDYsIGV0YyAtIHRoZSBzYW1lIGFzIDMuXG4gICAgICovXG4gICAgbGV0IGdyb3VwOiBGb3JtR3JvdXA7XG4gICAgaWYgKHRoaXMuZm9ybUFycmF5ICYmIChpbmRleCA8IHRoaXMuZm9ybUFycmF5Lmxlbmd0aCkpIHtcbiAgICAgIGdyb3VwID0gdGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcbiAgICB9IGVsc2Uge1xuICAgICAgZ3JvdXAgPSBuZXcgRm9ybUdyb3VwKHt9KTtcbiAgICB9XG5cbiAgICBsZXQgdmFsdWU7XG4gICAgaWYgKHRoaXMuaXNDb2xsZWN0aW9uT2ZTaW1wbGVUeXBlKHRoaXMuY2FzZUZpZWxkKSkge1xuICAgICAgdmFsdWUgPSBncm91cC5nZXQoJ3ZhbHVlJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHZhbHVlID0gbmV3IEZvcm1Db250cm9sKGl0ZW0udmFsdWUpO1xuICAgICAgICAvLyBOb3cgYWRkIHRoZSB2YWx1ZSBGb3JtQ29udHJvbCB0byB0aGUgb3V0ZXIgZ3JvdXAuXG4gICAgICAgIGdyb3VwLmFkZENvbnRyb2woJ3ZhbHVlJywgdmFsdWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IGdyb3VwLmdldCgndmFsdWUnKSBhcyBGb3JtR3JvdXA7XG4gICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHZhbHVlID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGdyb3VwLmNvbnRyb2xzKSkge1xuICAgICAgICAgIHZhbHVlLmFkZENvbnRyb2woa2V5LCBncm91cC5nZXQoa2V5KSk7XG4gICAgICAgICAgLy8gRE9OJ1QgcmVtb3ZlIHRoZSBjb250cm9sIGZvciB0aGlzIGtleSBmcm9tIHRoZSBvdXRlciBncm91cCBvciBpdFxuICAgICAgICAgIC8vIGdvZXMgYXdyeS4gU28gRE9OJ1QgdW5jb21tZW50IHRoZSBiZWxvdyBsaW5lIVxuICAgICAgICAgIC8vIGdyb3VwLnJlbW92ZUNvbnRyb2woa2V5KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBOb3cgYWRkIHRoZSB2YWx1ZSBGb3JtR3JvdXAgdG8gdGhlIG91dGVyIGdyb3VwLlxuICAgICAgICBncm91cC5hZGRDb250cm9sKCd2YWx1ZScsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gICAgbGV0IGlkID0gZ3JvdXAuZ2V0KCdpZCcpIGFzIEZvcm1Db250cm9sO1xuICAgIC8vIElmIHdlJ3JlIG5vdCBpbiBzY2VuYXJpbyAzLCBhYm92ZSwgd2UgbmVlZCB0byBkbyBzb21lIGppZ2dlcnkgcG9rZXJ5XG4gICAgLy8gYW5kIHNldCB1cCB0aGUgaWQgYW5kIHZhbHVlIGNvbnRyb2xzLlxuICAgIC8vIEFsc28gc2V0IHVwIGFuIGlkIGNvbnRyb2wgaWYgaXQgZG9lc24ndCB5ZXQgZXhpc3QuXG4gICAgaWYgKCFpZCkge1xuICAgICAgaWQgPSBuZXcgRm9ybUNvbnRyb2woaXRlbS5pZCk7XG4gICAgICBncm91cC5hZGRDb250cm9sKCdpZCcsIGlkKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZ2FpbiwgdmVyeSBzb3JyeS4gSSd2ZSBub3QgZm91bmQgYSBiZXR0ZXIgd2F5IHRvIHByb2R1Y2UgdGhlXG4gICAgICogb3V0cHV0IG5lZWRlZCBmb3Igd2hhdCBuZWVkcyB0byBiZSBzZW50IHRvIHRoZSBzZXJ2ZXIgeWV0LlxuICAgICAqL1xuXG4gICAgLy8gTm93LCBhZGQgdGhlIG91dGVyIGdyb3VwIHRvIHRoZSBhcnJheSAob3IgcmVwbGFjZSBpdCkuXG4gICAgaWYgKGluZGV4IDwgdGhpcy5mb3JtQXJyYXkubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZvcm1BcnJheS5zZXRDb250cm9sKGluZGV4LCBncm91cCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZm9ybUFycmF5LnB1c2goZ3JvdXApO1xuICAgIH1cblxuICAgIC8vIE5vdyBzZXQgdXAgdGhlIENhc2VGaWVsZCBhbmQgdmFsaWRhdGlvbi5cbiAgICBsZXQgY2ZpZDogc3RyaW5nO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1Db250cm9sKSB7XG4gICAgICBjZmlkID0gJ3ZhbHVlJztcbiAgICB9IGVsc2Uge1xuICAgICAgY2ZpZCA9IGluZGV4LnRvU3RyaW5nKCk7XG4gICAgfVxuXG4gICAgLy8gaXNOZXc6XG4gICAgY29uc3QgY2Y6IENhc2VGaWVsZCA9IHRoaXMubmV3Q2FzZUZpZWxkKGNmaWQsIGl0ZW0sIGluZGV4LCBpc05ldyk7XG4gICAgRm9ybVZhbGlkYXRvcnNTZXJ2aWNlLmFkZFZhbGlkYXRvcnMoY2YsIHZhbHVlKTtcbiAgICBGaWVsZHNVdGlscy5hZGRDYXNlRmllbGRBbmRDb21wb25lbnRSZWZlcmVuY2VzKHZhbHVlLCBjZiwgdGhpcyk7XG4gICAgcmV0dXJuIGNmO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkSWRQcmVmaXgoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgcHJlZml4ID0gYCR7dGhpcy5pZFByZWZpeH0ke3RoaXMuY2FzZUZpZWxkLmlkfV9gO1xuICAgIGlmICh0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZT8udHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICByZXR1cm4gYCR7cHJlZml4fSR7aW5kZXh9X2A7XG4gICAgfVxuXG4gICAgcmV0dXJuIHByZWZpeDtcbiAgfVxuXG4gIHB1YmxpYyBpc1NlYXJjaEZpbHRlcigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5pc0luU2VhcmNoQmxvY2sgJiYgdGhpcy5jb2xsSXRlbXMubGVuZ3RoID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBhZGRJdGVtKGRvU2Nyb2xsOiBib29sZWFuKTogdm9pZCB7XG4gICAgLy8gTWFudWFsbHkgcmVzZXR0aW5nIGVycm9ycyBpcyByZXF1aXJlZCB0byBwcmV2ZW50IGBFeHByZXNzaW9uQ2hhbmdlZEFmdGVySXRIYXNCZWVuQ2hlY2tlZEVycm9yYFxuICAgIHRoaXMuZm9ybUFycmF5LnNldEVycm9ycyhudWxsKTtcbiAgICBsZXQgaXRlbSA9IHsgdmFsdWU6IG51bGwgfTtcblxuICAgIGlmICh0aGlzLmlzQ29sbGVjdGlvbkR5bmFtaWMoKSkge1xuICAgICAgaXRlbSA9IHsgLi4udGhpcy5jYXNlRmllbGQudmFsdWVbdGhpcy5jYXNlRmllbGQudmFsdWUubGVuZ3RoIC0gMV0gfTtcbiAgICAgIGNvbnN0IGtleTogbnVtYmVyID0gTnVtYmVyKGl0ZW1bJ2lkJ11baXRlbVsnaWQnXS5sZW5ndGggLSAxXSkgKyAxO1xuICAgICAgKGl0ZW0gYXMgYW55KS5pZCA9IGl0ZW1bJ2lkJ10ucmVwbGFjZSgvLiQvLCBrZXkudG9TdHJpbmcoKSk7XG4gICAgfVxuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLnB1c2goaXRlbSk7XG4gICAgY29uc3QgaW5kZXggPSB0aGlzLmNhc2VGaWVsZC52YWx1ZS5sZW5ndGggLSAxO1xuICAgIGNvbnN0IGNhc2VGaWVsZDogQ2FzZUZpZWxkID0gdGhpcy5idWlsZENhc2VGaWVsZChpdGVtLCBpbmRleCwgdHJ1ZSk7XG4gICAgY29uc3QgcHJlZml4ID0gdGhpcy5idWlsZElkUHJlZml4KGluZGV4KTtcbiAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldENvbnRhaW5lcihpbmRleCk7XG4gICAgdGhpcy5jb2xsSXRlbXMucHVzaCh7IGNhc2VGaWVsZCwgaXRlbSwgaW5kZXgsIHByZWZpeCwgY29udGFpbmVyIH0pO1xuXG4gICAgLy8gVXBkYXRlIERPTSByZXF1aXJlZCBhZnRlciBwdXNoaW5nIGEgbmV3IGl0ZW0gdG8gZG8gdGhlIG5leHQgc3RlcHMgKGkuZS4gc2Nyb2xsaW5nIGFuZCBmb2N1c2luZylcbiAgICB0aGlzLmNkUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIGlmIChkb1Njcm9sbCkge1xuICAgICAgdGhpcy5zY3JvbGxUb1NlcnZpY2Uuc2Nyb2xsVG8oe1xuICAgICAgICB0YXJnZXQ6IGAke3RoaXMuYnVpbGRJZFByZWZpeChpbmRleCl9JHtpbmRleH1gLFxuICAgICAgICBkdXJhdGlvbjogMTAwMCxcbiAgICAgICAgb2Zmc2V0OiAtMTUwLFxuICAgICAgfSlcbiAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7IH0sIGNvbnNvbGUuZXJyb3IpO1xuICAgIH1cblxuICAgIHRoaXMuZm9jdXNMYXN0SXRlbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbGxlY3Rpb25EeW5hbWljKCk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZSB8fCAhdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmlkID09PSAnRHluYW1pY1JhZGlvTGlzdCc7XG4gIH1cblxuICBwcml2YXRlIG5ld0Nhc2VGaWVsZChpZDogc3RyaW5nLCBpdGVtLCBpbmRleCwgaXNOZXcgPSBmYWxzZSkge1xuICAgIGNvbnN0IGlzTm90QXV0aG9yaXNlZFRvVXBkYXRlID0gIWlzTmV3ICYmIHRoaXMuaXNOb3RBdXRob3Jpc2VkVG9VcGRhdGUoaW5kZXgpO1xuXG4gICAgY29uc3QgZmllbGRUeXBlID0gcGxhaW5Ub0NsYXNzRnJvbUV4aXN0KG5ldyBGaWVsZFR5cGUoKSwgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUpO1xuICAgIGlmIChmaWVsZFR5cGUuY29tcGxleF9maWVsZHMpIHtcbiAgICAgIGZpZWxkVHlwZS5jb21wbGV4X2ZpZWxkc1xuICAgICAgICAuZmlsdGVyKChjZjogQ2FzZUZpZWxkKSA9PiAhIWNmLnNob3dfY29uZGl0aW9uKVxuICAgICAgICAubWFwKChjZjogQ2FzZUZpZWxkKSA9PiBjZi5oaWRkZW4gPSB0cnVlKTtcbiAgICB9XG5cbiAgICAvLyBSZW1vdmUgdGhlIGJpdCBzZXR0aW5nIHRoZSBoaWRkZW4gZmxhZyBoZXJlIGFzIGl0J3MgYW4gaXRlbSBpbiB0aGUgYXJyYXkgYW5kXG4gICAgLy8gaXRzIGhpZGRlbiBzdGF0ZSBpc24ndCBpbmRlcGVuZGVudGx5IHJlLWV2YWx1YXRlZCB3aGVuIHRoZSBmb3JtIGlzIGNoYW5nZWQuXG4gICAgcmV0dXJuIHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgQ2FzZUZpZWxkKCksIHtcbiAgICAgIGlkLFxuICAgICAgZmllbGRfdHlwZTogZmllbGRUeXBlLFxuICAgICAgZGlzcGxheV9jb250ZXh0OiBpc05vdEF1dGhvcmlzZWRUb1VwZGF0ZSA/ICdSRUFET05MWScgOiB0aGlzLmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHQsXG4gICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgYWNsczogdGhpcy5jYXNlRmllbGQuYWNsc1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDb250YWluZXIoaW5kZXg6IG51bWJlcik6IEZvcm1Hcm91cCB7XG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkuZ2V0KCd2YWx1ZScpO1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpIGFzIEZvcm1Hcm91cDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzTGFzdEl0ZW0oKSB7XG4gICAgY29uc3QgaXRlbTogYW55ID0gdGhpcy5pdGVtcy5sYXN0Lm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmZvcm0tY29udHJvbCcpO1xuICAgIGlmIChpdGVtKSB7XG4gICAgICBpdGVtLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVJdGVtKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNvbGxJdGVtcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMucmVzZXRJZHMoaW5kZXgpO1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLnNwbGljZShpbmRleCwgMSk7XG4gICAgdGhpcy5mb3JtQXJyYXkucmVtb3ZlQXQoaW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNldElkcyhpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgZm9yIChsZXQgaSA9IGluZGV4OyBpIDwgdGhpcy5jb2xsSXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvdW50ZXIgPSBpICsgMTtcbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCAmJiB0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCA9PT0gY291bnRlcikge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5pbmRleCA9IGk7XG4gICAgICB9XG5cbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtc1tpXS5jYXNlRmllbGQgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY2FzZUZpZWxkLmlkXG4gICAgICAgICYmIHRoaXMuY29sbEl0ZW1zW2ldLmNhc2VGaWVsZC5pZCA9PT0gY291bnRlci50b1N0cmluZygpKSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zW2ldLmNhc2VGaWVsZC5pZCA9IGkudG9TdHJpbmcoKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgaWRQcmVmaXgxID0gdGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4ID8gdGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4LnJlcGxhY2UoYF8ke2NvdW50ZXIudG9TdHJpbmcoKX1gLCBgXyR7aS50b1N0cmluZygpfWApIDogJyc7XG4gICAgICBjb25zdCBpZFByZWZpeDFDdXJyZW50ID0gaWRQcmVmaXgxLnJlcGxhY2UoYF8ke2kudG9TdHJpbmcoKX1gLCBgXyR7Y291bnRlci50b1N0cmluZygpfWApO1xuXG4gICAgICBpZiAodGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4ICYmIHRoaXMuY29sbEl0ZW1zW2ldLnByZWZpeCA9PT0gaWRQcmVmaXgxQ3VycmVudCkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5wcmVmaXggPSBpZFByZWZpeDE7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlkUHJlZml4QXZhaWxhYmxlID0gISF0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXI/LlsnY29tcG9uZW50J10/LmlkUHJlZml4O1xuXG4gICAgICBjb25zdCBpZFByZWZpeDIgPSBpZFByZWZpeEF2YWlsYWJsZSA/XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zW2ldLmNvbnRhaW5lclsnY29tcG9uZW50J10uaWRQcmVmaXgucmVwbGFjZShgXyR7Y291bnRlci50b1N0cmluZygpfWAsIGBfJHtpLnRvU3RyaW5nKCl9YCkgOiAnJztcbiAgICAgIGNvbnN0IGlkUHJlZml4MmN1cnJlbnQgPSBpZFByZWZpeDIucmVwbGFjZShgXyR7aS50b1N0cmluZygpfWAsIGBfJHtjb3VudGVyLnRvU3RyaW5nKCl9YCk7XG5cbiAgICAgIGlmIChpZFByZWZpeEF2YWlsYWJsZSAmJiB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4ID09PSBpZFByZWZpeDJjdXJyZW50KSB7XG4gICAgICAgIHRoaXMuY29sbEl0ZW1zW2ldLmNvbnRhaW5lclsnY29tcG9uZW50J10uaWRQcmVmaXggPSBpZFByZWZpeDI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGl0ZW1MYWJlbChpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKGluZGV4KSB7XG4gICAgICByZXR1cm4gYCR7dGhpcy5jYXNlRmllbGQubGFiZWx9ICR7aW5kZXggKyAxfWA7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhc2VGaWVsZC5sYWJlbDtcbiAgfVxuXG4gIHB1YmxpYyBpc05vdEF1dGhvcmlzZWRUb0NyZWF0ZSgpIHtcbiAgICBpZiAodGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiAhdGhpcy5nZXRDb2xsZWN0aW9uUGVybWlzc2lvbih0aGlzLmNhc2VGaWVsZCwgJ2FsbG93SW5zZXJ0Jyk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29sbGVjdGlvblBlcm1pc3Npb24oZmllbGQ6IENhc2VGaWVsZCwgdHlwZTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgJiZcbiAgICAgIGZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIuc3BsaXQoJyMnKVxuICAgICAgICAuZmlsdGVyKGl0ZW0gPT4gaXRlbS5zdGFydHNXaXRoKCdDT0xMRUNUSU9OKCcpKVswXVxuICAgICAgICAuaW5jbHVkZXModHlwZSk7XG4gIH1cblxuICBwdWJsaWMgaXNOb3RBdXRob3Jpc2VkVG9VcGRhdGUoaW5kZXgpIHtcbiAgICBpZiAodGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFdhcyByZWFzc2VzZWQgYXMgcGFydCBvZiBFVUktMzUwNS4gVGhlcmUgaXMgc3RpbGwgYSBjYXZlYXQgYXJvdW5kIENSRCwgYnV0IHRoYXQgd2FzIGRlZW1lZCBhbiB1bmxpa2VseSBzY2VuYXJpb1xuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRDb250cm9sSWRBdChpbmRleCk7XG4gICAgaWYgKGlkKSB7XG4gICAgICBpZiAoISF0aGlzLnByb2ZpbGUudXNlciAmJiAhIXRoaXMucHJvZmlsZS51c2VyLmlkYW0pIHtcbiAgICAgICAgY29uc3QgdXBkYXRlUm9sZSA9IHRoaXMucHJvZmlsZS51c2VyLmlkYW0ucm9sZXMuZmluZChyb2xlID0+IHRoaXMuaGFzVXBkYXRlQWNjZXNzKHJvbGUpKTtcbiAgICAgICAgcmV0dXJuICF1cGRhdGVSb2xlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgaGFzVXBkYXRlQWNjZXNzKHJvbGU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuY2FzZUZpZWxkLmFjbHMuZmluZChhY2wgPT4gYWNsLnJvbGUgPT09IHJvbGUgJiYgYWNsLnVwZGF0ZSA9PT0gdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgaXNOb3RBdXRob3Jpc2VkVG9EZWxldGUoaW5kZXg6IG51bWJlcikge1xuICAgIGlmICh0aGlzLmlzRXhwYW5kZWQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgLy8gU2hvdWxkIGJlIGFibGUgdG8gZGVsZXRlIGlmIGNyZWF0aW5nIGEgY2FzZSBldmVuIGlmIFwiRFwiIGlzIGFic2VudCwgaGVuY2U6XG4gICAgY29uc3QgaWQgPSB0aGlzLmdldENvbnRyb2xJZEF0KGluZGV4KTtcbiAgICByZXR1cm4gISFpZCAmJiAhdGhpcy5nZXRDb2xsZWN0aW9uUGVybWlzc2lvbih0aGlzLmNhc2VGaWVsZCwgJ2FsbG93RGVsZXRlJyk7XG4gIH1cblxuICBwdWJsaWMgb3Blbk1vZGFsKGk6IG51bWJlcikge1xuICAgIGNvbnN0IGRpYWxvZ0NvbmZpZyA9IG5ldyBNYXREaWFsb2dDb25maWcoKTtcbiAgICBkaWFsb2dDb25maWcuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcbiAgICBkaWFsb2dDb25maWcuYXV0b0ZvY3VzID0gdHJ1ZTtcbiAgICBkaWFsb2dDb25maWcuYXJpYUxhYmVsID0gJ0xhYmVsJztcbiAgICBkaWFsb2dDb25maWcuaGVpZ2h0ID0gJzIyMHB4JztcbiAgICBkaWFsb2dDb25maWcud2lkdGggPSAnNTUwcHgnO1xuICAgIGRpYWxvZ0NvbmZpZy5wYW5lbENsYXNzID0gJ2RpYWxvZyc7XG5cbiAgICBkaWFsb2dDb25maWcuY2xvc2VPbk5hdmlnYXRpb24gPSBmYWxzZTtcbiAgICBkaWFsb2dDb25maWcucG9zaXRpb24gPSB7XG4gICAgICB0b3A6IGAke3dpbmRvdy5pbm5lckhlaWdodCAvIDIgLSAxMTB9cHhgLCBsZWZ0OiBgJHt3aW5kb3cuaW5uZXJXaWR0aCAvIDIgLSAyNzV9cHhgXG4gICAgfTtcblxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oUmVtb3ZlRGlhbG9nQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xuXG4gICAgZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICBpZiAocmVzdWx0ID09PSAnUmVtb3ZlJykge1xuICAgICAgICB0aGlzLnJlbW92ZUl0ZW0oaSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllZCBmdWxsIHNvbHV0aW9uIGFzIHBhcnQgb2YgRVVJLTM1MDVcbiAgICovXG4gIHByaXZhdGUgZ2V0Q29udHJvbElkQXQoaW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG5cbiAgICAvLyB0aGlzLmZvcm1BcnJheSBjb250YWlucyBbIEZvcm1Hcm91cCggaWQ6IEZvcm1Db250cm9sLCB2YWx1ZTogRm9ybUdyb3VwICksIC4uLiBdLlxuICAgIC8vIEhlcmUsIHdlIG5lZWQgdG8gZ2V0IHRoZSB2YWx1ZSBvZiB0aGUgaWQgRm9ybUNvbnRyb2wuXG4gICAgY29uc3QgZ3JvdXA6IEZvcm1Hcm91cCA9IHRoaXMuZm9ybUFycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XG4gICAgY29uc3QgY29udHJvbDogRm9ybUNvbnRyb2wgPSBncm91cC5nZXQoJ2lkJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgcmV0dXJuIGNvbnRyb2wgPyBjb250cm9sLnZhbHVlIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0NvbGxlY3Rpb25PZlNpbXBsZVR5cGUoY2FzZUZpZWxkOiBDYXNlRmllbGQpIHtcbiAgICBjb25zdCBub3RTaW1wbGUgPSBbJ0NvbGxlY3Rpb24nLCAnQ29tcGxleCddO1xuICAgIHJldHVybiBub3RTaW1wbGUuaW5kZXhPZihjYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUudHlwZSkgPCAwO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtpZF09XCJpZCgpXCI+XG5cbiAgPGRpdiBjbGFzcz1cInBhbmVsIGNvbGxlY3Rpb24taW5kaWNhdG9yXCI+XG5cbiAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLWgyIGVycm9yLXNwYWNpbmdcIj5cbiAgICAgIHt7KGNhc2VGaWVsZCB8IGNjZEZpZWxkTGFiZWwpfX1cbiAgICA8L2gyPlxuICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gd3JpdGUtY29sbGVjdGlvbi1hZGQtaXRlbV9fdG9wXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJhZGRJdGVtKHRydWUpXCIgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvQ3JlYXRlKCkgfHwgaXNTZWFyY2hGaWx0ZXIoKVwiPnt7J0FkZCBuZXcnIHwgcnB4VHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLWgyIGVycm9yLXNwYWNpbmdcIiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHQgfHwgZm9ybUFycmF5LmVycm9yc1wiPlxuICAgICAgPHNwYW4gKm5nSWY9XCJjYXNlRmllbGQuaGludF90ZXh0XCIgY2xhc3M9XCJmb3JtLWhpbnRcIj5cbiAgICAgIDxjY2QtbWFya2Rvd24gW2NvbnRlbnRdPVwiY2FzZUZpZWxkLmhpbnRfdGV4dFwiPjwvY2NkLW1hcmtkb3duPlxuICAgICAgPC9zcGFuPlxuICAgICAgPHNwYW4gKm5nSWY9XCJmb3JtQXJyYXkuZXJyb3JzXCIgY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+XG4gICAgICAgIHt7KGZvcm1BcnJheS5lcnJvcnMgfCBjY2RGaXJzdEVycm9yOmNhc2VGaWVsZC5sYWJlbCl9fVxuICAgICAgPC9zcGFuPlxuICAgIDwvaDI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZm9ybS1ncm91cFwiIFtoaWRkZW5dPVwiY2FzZUZpZWxkLmhpZGRlblwiICpuZ0lmPVwiY2FzZUZpZWxkLnZhbHVlICYmIGNhc2VGaWVsZC52YWx1ZS5sZW5ndGhcIj5cbiAgICAgIDxmaWVsZHNldCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0XCI+XG4gICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgY29sbEl0ZW1zOyBsZXQgaSA9IGluZGV4XCIgI2NvbGxlY3Rpb25JdGVtXG4gICAgICAgICAgICBbaWRdPVwidGhpcy5idWlsZElkUHJlZml4KGkpICsgaVwiIGNsYXNzPVwiZm9ybS1ncm91cFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xsZWN0aW9uLXRpdGxlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxvYXQtbGVmdFwiPlxuICAgICAgICAgICAgICA8bGVnZW5kIGNsYXNzPVwiZ292dWstZmllbGRzZXRfX2xlZ2VuZFwiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIml0ZW0ucHJlZml4ICsgaVwiPjxoMyBjbGFzcz1cImhlYWRpbmctaDNcIj57e2l0ZW1MYWJlbChpKSB8IHJweFRyYW5zbGF0ZX19PC9oMz48L2xhYmVsPlxuICAgICAgICAgICAgICA8L2xlZ2VuZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsb2F0LXJpZ2h0XCI+XG4gICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidXR0b24gYnV0dG9uLXNlY29uZGFyeVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwib3Blbk1vZGFsKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNOb3RBdXRob3Jpc2VkVG9EZWxldGUoaSlcIlxuICAgICAgICAgICAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cIlJlbW92ZSB7eyBpdGVtTGFiZWwoaSkgfX1cIj57eydSZW1vdmUnIHwgcnB4VHJhbnNsYXRlfX08L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxjY2QtZmllbGQtd3JpdGUgW2Nhc2VGaWVsZF09XCJpdGVtLmNhc2VGaWVsZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtjYXNlRmllbGRzXT1cImNhc2VGaWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXJlbnRdPVwiaXRlbS5jb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRQcmVmaXhdPVwiaXRlbS5wcmVmaXhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZGVuXT1cIml0ZW0uY2FzZUZpZWxkLmhpZGRlblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtpc0V4cGFuZGVkXT1cImlzRXhwYW5kZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNJblNlYXJjaEJsb2NrXT1cImlzSW5TZWFyY2hCbG9ja1wiPlxuICAgICAgICAgIDwvY2NkLWZpZWxkLXdyaXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZmllbGRzZXQ+XG4gICAgPC9kaXY+XG5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIHdyaXRlLWNvbGxlY3Rpb24tYWRkLWl0ZW1fX2JvdHRvbVwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiYWRkSXRlbShmYWxzZSlcIiBbZGlzYWJsZWRdPVwiaXNOb3RBdXRob3Jpc2VkVG9DcmVhdGUoKSB8fCBpc1NlYXJjaEZpbHRlcigpXCIgKm5nSWY9XCJjYXNlRmllbGQudmFsdWUgJiYgY2FzZUZpZWxkLnZhbHVlLmxlbmd0aFwiPnt7J0FkZCBuZXcnIHwgcnB4VHJhbnNsYXRlIH19PC9idXR0b24+XG5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
448
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtY29sbGVjdGlvbi1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9jb2xsZWN0aW9uL3dyaXRlLWNvbGxlY3Rpb24tZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY29sbGVjdGlvbi93cml0ZS1jb2xsZWN0aW9uLWZpZWxkLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQXFCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDNUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGVBQWUsSUFBSSxTQUFTLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUV4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxlQUFlLEVB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NEI7WUFBNUIscURBQTRCO1lBQzdJLGVBQTZDO1lBQTdDLHNFQUE2QztZQVM5QixjQUErQztZQUEvQyx3RUFBK0M7WUE2QndELGNBQStDO1lBQS9DLHdFQUErQzs7O2lGRGhCbE0sNkJBQTZCO2NBTHpDLFNBQVM7MkJBQ0UsNEJBQTRCOzRJQU0vQixVQUFVO2tCQURoQixLQUFLO1lBU1csS0FBSztrQkFEckIsWUFBWTttQkFBQyxnQkFBZ0I7O2tGQVRuQiw2QkFBNkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFF1ZXJ5TGlzdCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5pbXBvcnQgeyBNYXREaWFsb2dDb25maWcgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU2Nyb2xsVG9TZXJ2aWNlIH0gZnJvbSAnQG5pY2t5LWxlbmFlcnMvbmd4LXNjcm9sbC10byc7XG5pbXBvcnQgeyBwbGFpblRvQ2xhc3NGcm9tRXhpc3QgfSBmcm9tICdjbGFzcy10cmFuc2Zvcm1lcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEZpZWxkVHlwZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2ZpZWxkLXR5cGUubW9kZWwnO1xuXG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IFByb2ZpbGUgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vcHJvZmlsZS9wcm9maWxlLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmllbGRzL2ZpZWxkcy51dGlscyc7XG5pbXBvcnQgeyBGb3JtVmFsaWRhdG9yc1NlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9mb3JtL2Zvcm0tdmFsaWRhdG9ycy5zZXJ2aWNlJztcbmltcG9ydCB7IFByb2ZpbGVOb3RpZmllciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL3Byb2ZpbGUvcHJvZmlsZS5ub3RpZmllcic7XG5pbXBvcnQgeyBSZW1vdmVEaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9kaWFsb2dzL3JlbW92ZS1kaWFsb2cvcmVtb3ZlLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC13cml0ZS5jb21wb25lbnQnO1xuXG50eXBlIENvbGxlY3Rpb25JdGVtID0ge1xuICBjYXNlRmllbGQ6IENhc2VGaWVsZDtcbiAgaXRlbTogYW55O1xuICBwcmVmaXg6IHN0cmluZztcbiAgaW5kZXg6IG51bWJlcjtcbiAgY29udGFpbmVyOiBGb3JtR3JvdXA7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtd3JpdGUtY29sbGVjdGlvbi1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1jb2xsZWN0aW9uLWZpZWxkLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jb2xsZWN0aW9uLWZpZWxkLnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBXcml0ZUNvbGxlY3Rpb25GaWVsZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmllbGRXcml0ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdID0gW107XG5cbiAgcHVibGljIGZvcm1BcnJheTogRm9ybUFycmF5O1xuXG4gIHB1YmxpYyBwcm9maWxlOiBQcm9maWxlO1xuICBwdWJsaWMgcHJvZmlsZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIEBWaWV3Q2hpbGRyZW4oJ2NvbGxlY3Rpb25JdGVtJylcbiAgcHJpdmF0ZSByZWFkb25seSBpdGVtczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xuICBwdWJsaWMgcmVhZG9ubHkgY29sbEl0ZW1zOiBDb2xsZWN0aW9uSXRlbVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFRvU2VydmljZTogU2Nyb2xsVG9TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvZmlsZU5vdGlmaWVyOiBQcm9maWxlTm90aWZpZXIsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjZFJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXNFeHBhbmRlZCkgeyAvLyBtZWFuaW5nIEkgYW0gbm90IHJlbmRlcmVkIG9uIHRoZSBzZWFyY2gvd29ya2Jhc2tldCBpbnB1dCBmaWx0ZXJcbiAgICAgIHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbiA9IHRoaXMucHJvZmlsZU5vdGlmaWVyLnByb2ZpbGUuc3Vic2NyaWJlKF8gPT4gdGhpcy5wcm9maWxlID0gXyk7XG4gICAgfVxuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlID0gdGhpcy5jYXNlRmllbGQudmFsdWUgfHwgW107XG4gICAgdGhpcy5mb3JtQXJyYXkgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUFycmF5KFtdKSwgdHJ1ZSkgYXMgRm9ybUFycmF5O1xuICAgIHRoaXMuZm9ybUFycmF5WydjYXNlRmllbGQnXSA9IHRoaXMuY2FzZUZpZWxkO1xuICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLmZvckVhY2goKGl0ZW06IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgY29uc3QgcHJlZml4OiBzdHJpbmcgPSB0aGlzLmJ1aWxkSWRQcmVmaXgoaW5kZXgpO1xuICAgICAgY29uc3QgY2FzZUZpZWxkID0gdGhpcy5idWlsZENhc2VGaWVsZChpdGVtLCBpbmRleCk7XG4gICAgICBjYXNlRmllbGQucGFyZW50ID0gdGhpcy5jYXNlRmllbGRcbiAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0Q29udGFpbmVyKGluZGV4KTtcbiAgICAgIGlmICh0aGlzLmNvbGxJdGVtcy5sZW5ndGggPD0gaW5kZXgpIHtcbiAgICAgICAgdGhpcy5jb2xsSXRlbXMubGVuZ3RoID0gaW5kZXggKyAxO1xuICAgICAgfVxuICAgICAgdGhpcy5jb2xsSXRlbXNbaW5kZXhdID0geyBjYXNlRmllbGQsIGl0ZW0sIHByZWZpeCwgaW5kZXgsIGNvbnRhaW5lciB9O1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnByb2ZpbGVTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMucHJvZmlsZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBidWlsZENhc2VGaWVsZChpdGVtLCBpbmRleDogbnVtYmVyLCBpc05ldyA9IGZhbHNlKTogQ2FzZUZpZWxkIHtcbiAgICAvKipcbiAgICAgKiBXaGF0IGZvbGxvdyBpcyBjb2RlIHRoYXQgbWFrZXMgbWUgd2FudCB0byBnbyBqdW1wIGluIHRoZSBzaG93ZXIhXG4gICAgICogQmFzaWNhbGx5LCB3ZSBsYW5kIGluIGhlcmUgcmVwZWF0ZWRseSBiZWNhdXNlIG9mIHRoZSBiaW5kaW5nLCBhbmRcbiAgICAgKiB0aGlzIGlzIHdoYXQgYXBwZWFycyB0byBiZSBoYXBwZW5pbmc6XG4gICAgICogICAxLiB0aGlzLmZvcm1BcnJheSBjb250YWlucyBubyBjb250cm9scyBhdCBhbGwuXG4gICAgICogICAgICB0aGlzLmZvcm1BcnJheS52YWx1ZSA9IFtdO1xuICAgICAqICAgMi4gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgYSBGb3JtR3JvdXAsIHdoaWNoIGNvbnRhaW5zIGEgc2luZ2xlXG4gICAgICogICAgICBGb3JtQ29udHJvbCB3aXRoIHRoZSBpZCAnY29kZScuXG4gICAgICogICAgICB0aGlzLmZvcm1BcnJheS52YWx1ZSA9IFt7IGNvZGU6IG51bGwgfV1cbiAgICAgKiAgIDMuIHRoaXMuZm9ybUFycmF5IGNvbnRhaW5zIHdoYXQgaXMgYmVpbmcgc2V0IHVwIGJlbG93LlxuICAgICAqICAgICAgdGhpcy5mb3JtQXJyYXkudmFsdWUgPSBbeyBjb2RlOiBudWxsLCBpZDogbnVsbCwgdmFsdWU6IHsgY29kZTogbnVsbCB9IH1dXG4gICAgICogICA0LCA1LCA2LCBldGMgLSB0aGUgc2FtZSBhcyAzLlxuICAgICAqL1xuICAgIGxldCBncm91cDogRm9ybUdyb3VwO1xuICAgIGlmICh0aGlzLmZvcm1BcnJheSAmJiAoaW5kZXggPCB0aGlzLmZvcm1BcnJheS5sZW5ndGgpKSB7XG4gICAgICBncm91cCA9IHRoaXMuZm9ybUFycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XG4gICAgfSBlbHNlIHtcbiAgICAgIGdyb3VwID0gbmV3IEZvcm1Hcm91cCh7fSk7XG4gICAgfVxuXG4gICAgbGV0IHZhbHVlO1xuICAgIGlmICh0aGlzLmlzQ29sbGVjdGlvbk9mU2ltcGxlVHlwZSh0aGlzLmNhc2VGaWVsZCkpIHtcbiAgICAgIHZhbHVlID0gZ3JvdXAuZ2V0KCd2YWx1ZScpIGFzIEZvcm1Db250cm9sO1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IG5ldyBGb3JtQ29udHJvbChpdGVtLnZhbHVlKTtcbiAgICAgICAgLy8gTm93IGFkZCB0aGUgdmFsdWUgRm9ybUNvbnRyb2wgdG8gdGhlIG91dGVyIGdyb3VwLlxuICAgICAgICBncm91cC5hZGRDb250cm9sKCd2YWx1ZScsIHZhbHVlKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSBncm91cC5nZXQoJ3ZhbHVlJykgYXMgRm9ybUdyb3VwO1xuICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICB2YWx1ZSA9IG5ldyBGb3JtR3JvdXAoe30pO1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhncm91cC5jb250cm9scykpIHtcbiAgICAgICAgICB2YWx1ZS5hZGRDb250cm9sKGtleSwgZ3JvdXAuZ2V0KGtleSkpO1xuICAgICAgICAgIC8vIERPTidUIHJlbW92ZSB0aGUgY29udHJvbCBmb3IgdGhpcyBrZXkgZnJvbSB0aGUgb3V0ZXIgZ3JvdXAgb3IgaXRcbiAgICAgICAgICAvLyBnb2VzIGF3cnkuIFNvIERPTidUIHVuY29tbWVudCB0aGUgYmVsb3cgbGluZSFcbiAgICAgICAgICAvLyBncm91cC5yZW1vdmVDb250cm9sKGtleSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gTm93IGFkZCB0aGUgdmFsdWUgRm9ybUdyb3VwIHRvIHRoZSBvdXRlciBncm91cC5cbiAgICAgICAgZ3JvdXAuYWRkQ29udHJvbCgndmFsdWUnLCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICAgIGxldCBpZCA9IGdyb3VwLmdldCgnaWQnKSBhcyBGb3JtQ29udHJvbDtcbiAgICAvLyBJZiB3ZSdyZSBub3QgaW4gc2NlbmFyaW8gMywgYWJvdmUsIHdlIG5lZWQgdG8gZG8gc29tZSBqaWdnZXJ5IHBva2VyeVxuICAgIC8vIGFuZCBzZXQgdXAgdGhlIGlkIGFuZCB2YWx1ZSBjb250cm9scy5cbiAgICAvLyBBbHNvIHNldCB1cCBhbiBpZCBjb250cm9sIGlmIGl0IGRvZXNuJ3QgeWV0IGV4aXN0LlxuICAgIGlmICghaWQpIHtcbiAgICAgIGlkID0gbmV3IEZvcm1Db250cm9sKGl0ZW0uaWQpO1xuICAgICAgZ3JvdXAuYWRkQ29udHJvbCgnaWQnLCBpZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQWdhaW4sIHZlcnkgc29ycnkuIEkndmUgbm90IGZvdW5kIGEgYmV0dGVyIHdheSB0byBwcm9kdWNlIHRoZVxuICAgICAqIG91dHB1dCBuZWVkZWQgZm9yIHdoYXQgbmVlZHMgdG8gYmUgc2VudCB0byB0aGUgc2VydmVyIHlldC5cbiAgICAgKi9cblxuICAgIC8vIE5vdywgYWRkIHRoZSBvdXRlciBncm91cCB0byB0aGUgYXJyYXkgKG9yIHJlcGxhY2UgaXQpLlxuICAgIGlmIChpbmRleCA8IHRoaXMuZm9ybUFycmF5Lmxlbmd0aCkge1xuICAgICAgdGhpcy5mb3JtQXJyYXkuc2V0Q29udHJvbChpbmRleCwgZ3JvdXApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZvcm1BcnJheS5wdXNoKGdyb3VwKTtcbiAgICB9XG5cbiAgICAvLyBOb3cgc2V0IHVwIHRoZSBDYXNlRmllbGQgYW5kIHZhbGlkYXRpb24uXG4gICAgbGV0IGNmaWQ6IHN0cmluZztcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtQ29udHJvbCkge1xuICAgICAgY2ZpZCA9ICd2YWx1ZSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNmaWQgPSBpbmRleC50b1N0cmluZygpO1xuICAgIH1cblxuICAgIC8vIGlzTmV3OlxuICAgIGNvbnN0IGNmOiBDYXNlRmllbGQgPSB0aGlzLm5ld0Nhc2VGaWVsZChjZmlkLCBpdGVtLCBpbmRleCwgaXNOZXcpO1xuICAgIEZvcm1WYWxpZGF0b3JzU2VydmljZS5hZGRWYWxpZGF0b3JzKGNmLCB2YWx1ZSk7XG4gICAgRmllbGRzVXRpbHMuYWRkQ2FzZUZpZWxkQW5kQ29tcG9uZW50UmVmZXJlbmNlcyh2YWx1ZSwgY2YsIHRoaXMpO1xuICAgIHJldHVybiBjZjtcbiAgfVxuXG4gIHB1YmxpYyBidWlsZElkUHJlZml4KGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IHByZWZpeCA9IGAke3RoaXMuaWRQcmVmaXh9JHt0aGlzLmNhc2VGaWVsZC5pZH1fYDtcbiAgICBpZiAodGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGU/LnR5cGUgPT09ICdDb21wbGV4Jykge1xuICAgICAgcmV0dXJuIGAke3ByZWZpeH0ke2luZGV4fV9gO1xuICAgIH1cblxuICAgIHJldHVybiBwcmVmaXg7XG4gIH1cblxuICBwdWJsaWMgaXNTZWFyY2hGaWx0ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNJblNlYXJjaEJsb2NrICYmIHRoaXMuY29sbEl0ZW1zLmxlbmd0aCA+IDA7XG4gIH1cblxuICBwdWJsaWMgYWRkSXRlbShkb1Njcm9sbDogYm9vbGVhbik6IHZvaWQge1xuICAgIC8vIE1hbnVhbGx5IHJlc2V0dGluZyBlcnJvcnMgaXMgcmVxdWlyZWQgdG8gcHJldmVudCBgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvcmBcbiAgICB0aGlzLmZvcm1BcnJheS5zZXRFcnJvcnMobnVsbCk7XG4gICAgbGV0IGl0ZW0gPSB7IHZhbHVlOiBudWxsIH07XG5cbiAgICBpZiAodGhpcy5pc0NvbGxlY3Rpb25EeW5hbWljKCkpIHtcbiAgICAgIGl0ZW0gPSB7IC4uLnRoaXMuY2FzZUZpZWxkLnZhbHVlW3RoaXMuY2FzZUZpZWxkLnZhbHVlLmxlbmd0aCAtIDFdIH07XG4gICAgICBjb25zdCBrZXk6IG51bWJlciA9IE51bWJlcihpdGVtWydpZCddW2l0ZW1bJ2lkJ10ubGVuZ3RoIC0gMV0pICsgMTtcbiAgICAgIChpdGVtIGFzIGFueSkuaWQgPSBpdGVtWydpZCddLnJlcGxhY2UoLy4kLywga2V5LnRvU3RyaW5nKCkpO1xuICAgIH1cbiAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZS5wdXNoKGl0ZW0pO1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5jYXNlRmllbGQudmFsdWUubGVuZ3RoIC0gMTtcbiAgICBjb25zdCBjYXNlRmllbGQ6IENhc2VGaWVsZCA9IHRoaXMuYnVpbGRDYXNlRmllbGQoaXRlbSwgaW5kZXgsIHRydWUpO1xuICAgIGNvbnN0IHByZWZpeCA9IHRoaXMuYnVpbGRJZFByZWZpeChpbmRleCk7XG4gICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5nZXRDb250YWluZXIoaW5kZXgpO1xuICAgIHRoaXMuY29sbEl0ZW1zLnB1c2goeyBjYXNlRmllbGQsIGl0ZW0sIGluZGV4LCBwcmVmaXgsIGNvbnRhaW5lciB9KTtcblxuICAgIC8vIFVwZGF0ZSBET00gcmVxdWlyZWQgYWZ0ZXIgcHVzaGluZyBhIG5ldyBpdGVtIHRvIGRvIHRoZSBuZXh0IHN0ZXBzIChpLmUuIHNjcm9sbGluZyBhbmQgZm9jdXNpbmcpXG4gICAgdGhpcy5jZFJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBpZiAoZG9TY3JvbGwpIHtcbiAgICAgIHRoaXMuc2Nyb2xsVG9TZXJ2aWNlLnNjcm9sbFRvKHtcbiAgICAgICAgdGFyZ2V0OiBgJHt0aGlzLmJ1aWxkSWRQcmVmaXgoaW5kZXgpfSR7aW5kZXh9YCxcbiAgICAgICAgZHVyYXRpb246IDEwMDAsXG4gICAgICAgIG9mZnNldDogLTE1MCxcbiAgICAgIH0pXG4gICAgICAgIC5zdWJzY3JpYmUoKCkgPT4geyB9LCBjb25zb2xlLmVycm9yKTtcbiAgICB9XG5cbiAgICB0aGlzLmZvY3VzTGFzdEl0ZW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb2xsZWN0aW9uRHluYW1pYygpOiBib29sZWFuIHtcbiAgICBpZiAoIXRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUgfHwgIXRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5pZCA9PT0gJ0R5bmFtaWNSYWRpb0xpc3QnO1xuICB9XG5cbiAgcHJpdmF0ZSBuZXdDYXNlRmllbGQoaWQ6IHN0cmluZywgaXRlbSwgaW5kZXgsIGlzTmV3ID0gZmFsc2UpIHtcbiAgICBjb25zdCBpc05vdEF1dGhvcmlzZWRUb1VwZGF0ZSA9ICFpc05ldyAmJiB0aGlzLmlzTm90QXV0aG9yaXNlZFRvVXBkYXRlKGluZGV4KTtcblxuICAgIGNvbnN0IGZpZWxkVHlwZSA9IHBsYWluVG9DbGFzc0Zyb21FeGlzdChuZXcgRmllbGRUeXBlKCksIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlKTtcbiAgICBpZiAoZmllbGRUeXBlLmNvbXBsZXhfZmllbGRzKSB7XG4gICAgICBmaWVsZFR5cGUuY29tcGxleF9maWVsZHNcbiAgICAgICAgLmZpbHRlcigoY2Y6IENhc2VGaWVsZCkgPT4gISFjZi5zaG93X2NvbmRpdGlvbilcbiAgICAgICAgLm1hcCgoY2Y6IENhc2VGaWVsZCkgPT4gY2YuaGlkZGVuID0gdHJ1ZSk7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIHRoZSBiaXQgc2V0dGluZyB0aGUgaGlkZGVuIGZsYWcgaGVyZSBhcyBpdCdzIGFuIGl0ZW0gaW4gdGhlIGFycmF5IGFuZFxuICAgIC8vIGl0cyBoaWRkZW4gc3RhdGUgaXNuJ3QgaW5kZXBlbmRlbnRseSByZS1ldmFsdWF0ZWQgd2hlbiB0aGUgZm9ybSBpcyBjaGFuZ2VkLlxuICAgIHJldHVybiBwbGFpblRvQ2xhc3NGcm9tRXhpc3QobmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICBpZCxcbiAgICAgIGZpZWxkX3R5cGU6IGZpZWxkVHlwZSxcbiAgICAgIGRpc3BsYXlfY29udGV4dDogaXNOb3RBdXRob3Jpc2VkVG9VcGRhdGUgPyAnUkVBRE9OTFknIDogdGhpcy5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0LFxuICAgICAgdmFsdWU6IGl0ZW0udmFsdWUsXG4gICAgICBsYWJlbDogbnVsbCxcbiAgICAgIGFjbHM6IHRoaXMuY2FzZUZpZWxkLmFjbHNcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q29udGFpbmVyKGluZGV4OiBudW1iZXIpOiBGb3JtR3JvdXAge1xuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5mb3JtQXJyYXkuYXQoaW5kZXgpLmdldCgndmFsdWUnKTtcbiAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBGb3JtR3JvdXApIHtcbiAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZm9ybUFycmF5LmF0KGluZGV4KSBhcyBGb3JtR3JvdXA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0xhc3RJdGVtKCkge1xuICAgIGNvbnN0IGl0ZW06IGFueSA9IHRoaXMuaXRlbXMubGFzdC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5mb3JtLWNvbnRyb2wnKTtcbiAgICBpZiAoaXRlbSkge1xuICAgICAgaXRlbS5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlSXRlbShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5jb2xsSXRlbXMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLnJlc2V0SWRzKGluZGV4KTtcbiAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuZm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRJZHMoaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgIGZvciAobGV0IGkgPSBpbmRleDsgaSA8IHRoaXMuY29sbEl0ZW1zLmxlbmd0aDsgaSsrKSB7XG4gICAgICBjb25zdCBjb3VudGVyID0gaSArIDE7XG4gICAgICBpZiAodGhpcy5jb2xsSXRlbXNbaV0uaW5kZXggJiYgdGhpcy5jb2xsSXRlbXNbaV0uaW5kZXggPT09IGNvdW50ZXIpIHtcbiAgICAgICAgdGhpcy5jb2xsSXRlbXNbaV0uaW5kZXggPSBpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5jb2xsSXRlbXNbaV0uY2FzZUZpZWxkICYmIHRoaXMuY29sbEl0ZW1zW2ldLmNhc2VGaWVsZC5pZFxuICAgICAgICAmJiB0aGlzLmNvbGxJdGVtc1tpXS5jYXNlRmllbGQuaWQgPT09IGNvdW50ZXIudG9TdHJpbmcoKSkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5jYXNlRmllbGQuaWQgPSBpLnRvU3RyaW5nKCk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlkUHJlZml4MSA9IHRoaXMuY29sbEl0ZW1zW2ldLnByZWZpeCA/IHRoaXMuY29sbEl0ZW1zW2ldLnByZWZpeC5yZXBsYWNlKGBfJHtjb3VudGVyLnRvU3RyaW5nKCl9YCwgYF8ke2kudG9TdHJpbmcoKX1gKSA6ICcnO1xuICAgICAgY29uc3QgaWRQcmVmaXgxQ3VycmVudCA9IGlkUHJlZml4MS5yZXBsYWNlKGBfJHtpLnRvU3RyaW5nKCl9YCwgYF8ke2NvdW50ZXIudG9TdHJpbmcoKX1gKTtcblxuICAgICAgaWYgKHRoaXMuY29sbEl0ZW1zW2ldLnByZWZpeCAmJiB0aGlzLmNvbGxJdGVtc1tpXS5wcmVmaXggPT09IGlkUHJlZml4MUN1cnJlbnQpIHtcbiAgICAgICAgdGhpcy5jb2xsSXRlbXNbaV0ucHJlZml4ID0gaWRQcmVmaXgxO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBpZFByZWZpeEF2YWlsYWJsZSA9ICEhdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyPy5bJ2NvbXBvbmVudCddPy5pZFByZWZpeDtcblxuICAgICAgY29uc3QgaWRQcmVmaXgyID0gaWRQcmVmaXhBdmFpbGFibGUgP1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4LnJlcGxhY2UoYF8ke2NvdW50ZXIudG9TdHJpbmcoKX1gLCBgXyR7aS50b1N0cmluZygpfWApIDogJyc7XG4gICAgICBjb25zdCBpZFByZWZpeDJjdXJyZW50ID0gaWRQcmVmaXgyLnJlcGxhY2UoYF8ke2kudG9TdHJpbmcoKX1gLCBgXyR7Y291bnRlci50b1N0cmluZygpfWApO1xuXG4gICAgICBpZiAoaWRQcmVmaXhBdmFpbGFibGUgJiYgdGhpcy5jb2xsSXRlbXNbaV0uY29udGFpbmVyWydjb21wb25lbnQnXS5pZFByZWZpeCA9PT0gaWRQcmVmaXgyY3VycmVudCkge1xuICAgICAgICB0aGlzLmNvbGxJdGVtc1tpXS5jb250YWluZXJbJ2NvbXBvbmVudCddLmlkUHJlZml4ID0gaWRQcmVmaXgyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBpdGVtTGFiZWwoaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChpbmRleCkge1xuICAgICAgcmV0dXJuIGAke3RoaXMuY2FzZUZpZWxkLmxhYmVsfSAke2luZGV4ICsgMX1gO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5jYXNlRmllbGQubGFiZWw7XG4gIH1cblxuICBwdWJsaWMgaXNOb3RBdXRob3Jpc2VkVG9DcmVhdGUoKSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gIXRoaXMuZ2V0Q29sbGVjdGlvblBlcm1pc3Npb24odGhpcy5jYXNlRmllbGQsICdhbGxvd0luc2VydCcpO1xuICB9XG5cbiAgcHVibGljIGdldENvbGxlY3Rpb25QZXJtaXNzaW9uKGZpZWxkOiBDYXNlRmllbGQsIHR5cGU6IHN0cmluZykge1xuICAgIHJldHVybiBmaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyICYmXG4gICAgICBmaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyLnNwbGl0KCcjJylcbiAgICAgICAgLmZpbHRlcihpdGVtID0+IGl0ZW0uc3RhcnRzV2l0aCgnQ09MTEVDVElPTignKSlbMF1cbiAgICAgICAgLmluY2x1ZGVzKHR5cGUpO1xuICB9XG5cbiAgcHVibGljIGlzTm90QXV0aG9yaXNlZFRvVXBkYXRlKGluZGV4KSB7XG4gICAgaWYgKHRoaXMuaXNFeHBhbmRlZCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBXYXMgcmVhc3Nlc2VkIGFzIHBhcnQgb2YgRVVJLTM1MDUuIFRoZXJlIGlzIHN0aWxsIGEgY2F2ZWF0IGFyb3VuZCBDUkQsIGJ1dCB0aGF0IHdhcyBkZWVtZWQgYW4gdW5saWtlbHkgc2NlbmFyaW9cbiAgICBjb25zdCBpZCA9IHRoaXMuZ2V0Q29udHJvbElkQXQoaW5kZXgpO1xuICAgIGlmIChpZCkge1xuICAgICAgaWYgKCEhdGhpcy5wcm9maWxlLnVzZXIgJiYgISF0aGlzLnByb2ZpbGUudXNlci5pZGFtKSB7XG4gICAgICAgIGNvbnN0IHVwZGF0ZVJvbGUgPSB0aGlzLnByb2ZpbGUudXNlci5pZGFtLnJvbGVzLmZpbmQocm9sZSA9PiB0aGlzLmhhc1VwZGF0ZUFjY2Vzcyhyb2xlKSk7XG4gICAgICAgIHJldHVybiAhdXBkYXRlUm9sZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIGhhc1VwZGF0ZUFjY2Vzcyhyb2xlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLmNhc2VGaWVsZC5hY2xzLmZpbmQoYWNsID0+IGFjbC5yb2xlID09PSByb2xlICYmIGFjbC51cGRhdGUgPT09IHRydWUpO1xuICB9XG5cbiAgcHVibGljIGlzTm90QXV0aG9yaXNlZFRvRGVsZXRlKGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5pc0V4cGFuZGVkKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFNob3VsZCBiZSBhYmxlIHRvIGRlbGV0ZSBpZiBjcmVhdGluZyBhIGNhc2UgZXZlbiBpZiBcIkRcIiBpcyBhYnNlbnQsIGhlbmNlOlxuICAgIGNvbnN0IGlkID0gdGhpcy5nZXRDb250cm9sSWRBdChpbmRleCk7XG4gICAgcmV0dXJuICEhaWQgJiYgIXRoaXMuZ2V0Q29sbGVjdGlvblBlcm1pc3Npb24odGhpcy5jYXNlRmllbGQsICdhbGxvd0RlbGV0ZScpO1xuICB9XG5cbiAgcHVibGljIG9wZW5Nb2RhbChpOiBudW1iZXIpIHtcbiAgICBjb25zdCBkaWFsb2dDb25maWcgPSBuZXcgTWF0RGlhbG9nQ29uZmlnKCk7XG4gICAgZGlhbG9nQ29uZmlnLmRpc2FibGVDbG9zZSA9IHRydWU7XG4gICAgZGlhbG9nQ29uZmlnLmF1dG9Gb2N1cyA9IHRydWU7XG4gICAgZGlhbG9nQ29uZmlnLmFyaWFMYWJlbCA9ICdMYWJlbCc7XG4gICAgZGlhbG9nQ29uZmlnLmhlaWdodCA9ICcyMjBweCc7XG4gICAgZGlhbG9nQ29uZmlnLndpZHRoID0gJzU1MHB4JztcbiAgICBkaWFsb2dDb25maWcucGFuZWxDbGFzcyA9ICdkaWFsb2cnO1xuXG4gICAgZGlhbG9nQ29uZmlnLmNsb3NlT25OYXZpZ2F0aW9uID0gZmFsc2U7XG4gICAgZGlhbG9nQ29uZmlnLnBvc2l0aW9uID0ge1xuICAgICAgdG9wOiBgJHt3aW5kb3cuaW5uZXJIZWlnaHQgLyAyIC0gMTEwfXB4YCwgbGVmdDogYCR7d2luZG93LmlubmVyV2lkdGggLyAyIC0gMjc1fXB4YFxuICAgIH07XG5cbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFJlbW92ZURpYWxvZ0NvbXBvbmVudCwgZGlhbG9nQ29uZmlnKTtcblxuICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgaWYgKHJlc3VsdCA9PT0gJ1JlbW92ZScpIHtcbiAgICAgICAgdGhpcy5yZW1vdmVJdGVtKGkpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEFwcGxpZWQgZnVsbCBzb2x1dGlvbiBhcyBwYXJ0IG9mIEVVSS0zNTA1XG4gICAqL1xuICBwcml2YXRlIGdldENvbnRyb2xJZEF0KGluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuXG4gICAgLy8gdGhpcy5mb3JtQXJyYXkgY29udGFpbnMgWyBGb3JtR3JvdXAoIGlkOiBGb3JtQ29udHJvbCwgdmFsdWU6IEZvcm1Hcm91cCApLCAuLi4gXS5cbiAgICAvLyBIZXJlLCB3ZSBuZWVkIHRvIGdldCB0aGUgdmFsdWUgb2YgdGhlIGlkIEZvcm1Db250cm9sLlxuICAgIGNvbnN0IGdyb3VwOiBGb3JtR3JvdXAgPSB0aGlzLmZvcm1BcnJheS5hdChpbmRleCkgYXMgRm9ybUdyb3VwO1xuICAgIGNvbnN0IGNvbnRyb2w6IEZvcm1Db250cm9sID0gZ3JvdXAuZ2V0KCdpZCcpIGFzIEZvcm1Db250cm9sO1xuICAgIHJldHVybiBjb250cm9sID8gY29udHJvbC52YWx1ZSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgaXNDb2xsZWN0aW9uT2ZTaW1wbGVUeXBlKGNhc2VGaWVsZDogQ2FzZUZpZWxkKSB7XG4gICAgY29uc3Qgbm90U2ltcGxlID0gWydDb2xsZWN0aW9uJywgJ0NvbXBsZXgnXTtcbiAgICByZXR1cm4gbm90U2ltcGxlLmluZGV4T2YoY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUpIDwgMDtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaWRdPVwiaWQoKVwiPlxuXG4gIDxkaXYgY2xhc3M9XCJwYW5lbCBjb2xsZWN0aW9uLWluZGljYXRvclwiPlxuXG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMiBlcnJvci1zcGFjaW5nXCI+XG4gICAgICB7eyhjYXNlRmllbGQgfCBjY2RGaWVsZExhYmVsKX19XG4gICAgPC9oMj5cbiAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIHdyaXRlLWNvbGxlY3Rpb24tYWRkLWl0ZW1fX3RvcFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiYWRkSXRlbSh0cnVlKVwiIFtkaXNhYmxlZF09XCJpc05vdEF1dGhvcmlzZWRUb0NyZWF0ZSgpIHx8IGlzU2VhcmNoRmlsdGVyKClcIj57eydBZGQgbmV3JyB8IHJweFRyYW5zbGF0ZX19PC9idXR0b24+XG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMiBlcnJvci1zcGFjaW5nXCIgKm5nSWY9XCJjYXNlRmllbGQuaGludF90ZXh0IHx8IGZvcm1BcnJheS5lcnJvcnNcIj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiY2FzZUZpZWxkLmhpbnRfdGV4dFwiIGNsYXNzPVwiZm9ybS1oaW50XCI+XG4gICAgICA8bWFya2Rvd24+e3tjYXNlRmllbGQuaGludF90ZXh0IHwgcnB4VHJhbnNsYXRlIH19PC9tYXJrZG93bj5cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxzcGFuICpuZ0lmPVwiZm9ybUFycmF5LmVycm9yc1wiIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlxuICAgICAgICB7eyhmb3JtQXJyYXkuZXJyb3JzIHwgY2NkRmlyc3RFcnJvcjpjYXNlRmllbGQubGFiZWwpfX1cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2gyPlxuXG4gICAgPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbaGlkZGVuXT1cImNhc2VGaWVsZC5oaWRkZW5cIiAqbmdJZj1cImNhc2VGaWVsZC52YWx1ZSAmJiBjYXNlRmllbGQudmFsdWUubGVuZ3RoXCI+XG4gICAgICA8ZmllbGRzZXQgY2xhc3M9XCJnb3Z1ay1maWVsZHNldFwiPlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIGNvbGxJdGVtczsgbGV0IGkgPSBpbmRleFwiICNjb2xsZWN0aW9uSXRlbVxuICAgICAgICAgICAgW2lkXT1cInRoaXMuYnVpbGRJZFByZWZpeChpKSArIGlcIiBjbGFzcz1cImZvcm0tZ3JvdXBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGVjdGlvbi10aXRsZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsb2F0LWxlZnRcIj5cbiAgICAgICAgICAgICAgPGxlZ2VuZCBjbGFzcz1cImdvdnVrLWZpZWxkc2V0X19sZWdlbmRcIj5cbiAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJpdGVtLnByZWZpeCArIGlcIj48aDMgY2xhc3M9XCJoZWFkaW5nLWgzXCI+e3tpdGVtTGFiZWwoaSkgfCBycHhUcmFuc2xhdGV9fTwvaDM+PC9sYWJlbD5cbiAgICAgICAgICAgICAgPC9sZWdlbmQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbG9hdC1yaWdodFwiPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9wZW5Nb2RhbChpKVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvRGVsZXRlKGkpXCJcbiAgICAgICAgICAgICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJSZW1vdmUge3sgaXRlbUxhYmVsKGkpIH19XCI+e3snUmVtb3ZlJyB8IHJweFRyYW5zbGF0ZX19PC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8Y2NkLWZpZWxkLXdyaXRlIFtjYXNlRmllbGRdPVwiaXRlbS5jYXNlRmllbGRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkc109XCJjYXNlRmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbcGFyZW50XT1cIml0ZW0uY29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkUHJlZml4XT1cIml0ZW0ucHJlZml4XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGRlbl09XCJpdGVtLmNhc2VGaWVsZC5oaWRkZW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbaXNFeHBhbmRlZF09XCJpc0V4cGFuZGVkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzSW5TZWFyY2hCbG9ja109XCJpc0luU2VhcmNoQmxvY2tcIj5cbiAgICAgICAgICA8L2NjZC1maWVsZC13cml0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2ZpZWxkc2V0PlxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiB3cml0ZS1jb2xsZWN0aW9uLWFkZC1pdGVtX19ib3R0b21cIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cImFkZEl0ZW0oZmFsc2UpXCIgW2Rpc2FibGVkXT1cImlzTm90QXV0aG9yaXNlZFRvQ3JlYXRlKCkgfHwgaXNTZWFyY2hGaWx0ZXIoKVwiICpuZ0lmPVwiY2FzZUZpZWxkLnZhbHVlICYmIGNhc2VGaWVsZC52YWx1ZS5sZW5ndGhcIj57eydBZGQgbmV3JyB8IHJweFRyYW5zbGF0ZSB9fTwvYnV0dG9uPlxuXG4gIDwvZGl2PlxuXG48L2Rpdj5cbiJdfQ==
@@ -38,6 +38,7 @@ import { CaseFileViewFieldComponent } from './case-file-view/case-file-view-fiel
38
38
  import { CaseFileViewFolderSelectorComponent } from './case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component';
39
39
  import { CaseFileViewFolderDocumentActionsComponent } from './case-file-view/components/case-file-view-folder/case-file-view-folder-document-actions/case-file-view-folder-document-actions.component';
40
40
  import { CaseFileViewFolderSortComponent } from './case-file-view/components/case-file-view-folder/case-file-view-folder-sort/case-file-view-folder-sort.component';
41
+ import { CaseFileViewFolderToggleComponent } from './case-file-view/components/case-file-view-folder/case-file-view-folder-toggle/case-file-view-folder-toggle.component';
41
42
  import { CaseFileViewFolderComponent } from './case-file-view/components/case-file-view-folder/case-file-view-folder.component';
42
43
  import { AddCommentsComponent, CaseFlagSummaryListComponent, CaseFlagTableComponent, ConfirmFlagStatusComponent, FlagFieldDisplayPipe, LanguageInterpreterDisplayPipe, ManageCaseFlagsComponent, ManageCaseFlagsLabelDisplayPipe, ReadCaseFlagFieldComponent, SearchLanguageInterpreterComponent, SelectFlagLocationComponent, SelectFlagTypeComponent, UpdateFlagAddTranslationFormComponent, UpdateFlagComponent, UpdateFlagTitleDisplayPipe, WriteCaseFlagFieldComponent } from './case-flag';
43
44
  import { ReadCaseLinkFieldComponent } from './case-link/read-case-link-field.component';
@@ -183,6 +184,7 @@ const PALETTE_COMPONENTS = [
183
184
  CaseFileViewFieldComponent,
184
185
  CaseFileViewFolderComponent,
185
186
  CaseFileViewFolderSortComponent,
187
+ CaseFileViewFolderToggleComponent,
186
188
  CaseFileViewOverlayMenuComponent,
187
189
  CaseFileViewFolderDocumentActionsComponent,
188
190
  CaseFileViewFolderSelectorComponent,
@@ -453,6 +455,7 @@ export class PaletteModule {
453
455
  CaseFileViewFieldComponent,
454
456
  CaseFileViewFolderComponent,
455
457
  CaseFileViewFolderSortComponent,
458
+ CaseFileViewFolderToggleComponent,
456
459
  CaseFileViewOverlayMenuComponent,
457
460
  CaseFileViewFolderDocumentActionsComponent,
458
461
  CaseFileViewFolderSelectorComponent,
@@ -609,6 +612,7 @@ export class PaletteModule {
609
612
  CaseFileViewFieldComponent,
610
613
  CaseFileViewFolderComponent,
611
614
  CaseFileViewFolderSortComponent,
615
+ CaseFileViewFolderToggleComponent,
612
616
  CaseFileViewOverlayMenuComponent,
613
617
  CaseFileViewFolderDocumentActionsComponent,
614
618
  CaseFileViewFolderSelectorComponent,
@@ -706,7 +710,7 @@ i0.ɵɵsetComponentScope(WriteOrganisationFieldComponent, function () { return [
706
710
  i0.ɵɵsetComponentScope(WriteOrderSummaryFieldComponent, function () { return [ReadOrderSummaryFieldComponent]; }, []);
707
711
  i0.ɵɵsetComponentScope(WriteDateContainerFieldComponent, function () { return [i5.NgIf, i4.NgControlStatusGroup, i4.FormGroupDirective, DatetimePickerComponent,
708
712
  WriteDateFieldComponent]; }, []);
709
- i0.ɵɵsetComponentScope(WriteCollectionFieldComponent, function () { return [i5.NgForOf, i5.NgIf, i4.NgControlStatusGroup, i4.FormGroupDirective, i7.MarkdownComponent, FieldWriteComponent]; }, function () { return [i11.FieldLabelPipe, i13.FirstErrorPipe, i3.RpxTranslatePipe]; });
713
+ i0.ɵɵsetComponentScope(WriteCollectionFieldComponent, function () { return [i5.NgForOf, i5.NgIf, i4.NgControlStatusGroup, i4.FormGroupDirective, i1.MarkdownComponent, FieldWriteComponent]; }, function () { return [i11.FieldLabelPipe, i13.FirstErrorPipe, i3.RpxTranslatePipe]; });
710
714
  i0.ɵɵsetComponentScope(
711
715
  // ComponentLauncher web components
712
716
  CaseFileViewFieldComponent, function () { return [i5.NgForOf, i5.NgIf, i14.MediaViewerComponent, CaseFileViewFolderComponent]; }, []);
@@ -745,4 +749,4 @@ i0.ɵɵsetComponentScope(
745
749
  // Case event completion
746
750
  CaseEventCompletionComponent, function () { return [i5.NgIf, CaseEventCompletionTaskCancelledComponent,
747
751
  CaseEventCompletionTaskReassignedComponent]; }, []);
748
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFsZXR0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9wYWxldHRlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMxSSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFZLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMkJBQTJCLElBQUkscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RyxPQUFPLEVBQUUsc0JBQXNCLElBQUksZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSx3QkFBd0IsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFn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RTdCLGtCQUFrQjt1QkFDbEIseUJBQXlCOztBQUl6QixrQ0FBa0M7QUFDbEMsaUNBQWlDLDZEQUNqQyxxQkFBcUI7SUFDckIsa0JBQWtCO3VCQURsQixxQkFBcUIsaUVBVXJCLDZCQUE2Qjt1QkFSN0IsaUNBQWlDLGtKQUZqQyxxQkFBcUI7SUFJckIsK0JBQStCO3VCQUQvQiw2QkFBNkIseU9BQzdCLCtCQUErQjtJQUcvQiw0QkFBNEI7dUJBRjVCLDhCQUE4Qiw2Q0FEOUIsK0JBQStCO0lBTS9CLDZCQUE2QjtJQUM3Qiw2QkFBNkI7dUJBTDdCLCtCQUErQix3RUE1Qy9CLDZCQUE2Qjt1QkFnRDdCLDZCQUE2QixpQ0F0RzdCLDRCQUE0Qjt1QkF1RzVCLDZCQUE2QjtJQUc3Qix3QkFBd0I7SUFDeEIsNEJBQTRCOztBQUQ1Qix3QkFBd0I7QUFDeEIsNEJBQTRCLGlDQUM1Qix5Q0FBeUM7SUFDekMsMENBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmd4TWF0RGF0ZXRpbWVQaWNrZXJNb2R1bGUsIE5neE1hdE5hdGl2ZURhdGVNb2R1bGUsIE5neE1hdFRpbWVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci1tYXRlcmlhbC1jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlcic7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ2RrVHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgTmdNb2R1bGUsIFByb3ZpZGVyLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdExlZ2FjeUF1dG9jb21wbGV0ZU1vZHVsZSBhcyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1BVF9MRUdBQ1lfREFURV9MT0NBTEUgYXMgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWNvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nTW9kdWxlIGFzIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgTWF0TGVnYWN5Rm9ybUZpZWxkTW9kdWxlIGFzIE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdExlZ2FjeUlucHV0TW9kdWxlIGFzIE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWlucHV0JztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQYXltZW50TGliTW9kdWxlIH0gZnJvbSAnQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVkaWFWaWV3ZXJNb2R1bGUgfSBmcm9tICdAaG1jdHMvbWVkaWEtdmlld2VyJztcbmltcG9ydCB7IFNjcm9sbFRvTW9kdWxlIH0gZnJvbSAnQG5pY2t5LWxlbmFlcnMvbmd4LXNjcm9sbC10byc7XG5pbXBvcnQgeyBNYXJrZG93bk1vZHVsZSB9IGZyb20gJ25neC1tYXJrZG93bic7XG5pbXBvcnQgeyBScHhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ3JweC14dWktdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgSGVhZGVyc01vZHVsZSwgVGFic01vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQmFubmVyc01vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvYmFubmVycy9iYW5uZXJzLm1vZHVsZSc7XG5pbXBvcnQgeyBCb2R5TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9ib2R5L2JvZHkubW9kdWxlJztcbmltcG9ydCB7IEZvb3RlcnNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXJzLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3JtTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9mb3JtL2Zvcm0ubW9kdWxlJztcbmltcG9ydCB7IENhc2VFZGl0RGF0YU1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbW1vbnMvY2FzZS1lZGl0LWRhdGEnO1xuaW1wb3J0IHsgTGFiZWxTdWJzdGl0dXRvck1vZHVsZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc3Vic3RpdHV0b3InO1xuaW1wb3J0IHsgUGlwZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHsgQ2FzZUZsYWdSZWZkYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2UtZmxhZy9jYXNlLWZsYWctcmVmZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbkRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29tbW9uLWRhdGEtc2VydmljZS9jb21tb24tZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2p1cmlzZGljdGlvbi9qdXJpc2RpY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBMb2FkaW5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9hZGluZy9sb2FkaW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2luZG93JztcbmltcG9ydCB7IENhc2VFdmVudENvbXBsZXRpb25Db21wb25lbnQsIENhc2VFdmVudENvbXBsZXRpb25UYXNrQ2FuY2VsbGVkQ29tcG9uZW50LCBDYXNlRXZlbnRDb21wbGV0aW9uVGFza1JlYXNzaWduZWRDb21wb25lbnQgfSBmcm9tICcuLi9jYXNlLWVkaXRvci9jYXNlLWV2ZW50LWNvbXBsZXRpb24nO1xuaW1wb3J0IHsgV3JpdGVBZGRyZXNzRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2FkZHJlc3Mvd3JpdGUtYWRkcmVzcy1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRSZWFkQ29tcG9uZW50LCBGaWVsZFJlYWRMYWJlbENvbXBvbmVudCwgRmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1maWVsZCc7XG5pbXBvcnQgeyBDYXNlRmlsZVZpZXdPdmVybGF5TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY2FzZS1maWxlLXZpZXcnO1xuaW1wb3J0IHsgQ2FzZUZpbGVWaWV3RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2Nhc2UtZmlsZS12aWV3L2Nhc2UtZmlsZS12aWV3LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDYXNlRmlsZVZpZXdGb2xkZXJTZWxlY3RvckNvbXBvbmVudFxufSBmcm9tICcuL2Nhc2UtZmlsZS12aWV3L2NvbXBvbmVudHMvY2FzZS1maWxlLXZpZXctZm9sZGVyLXNlbGVjdG9yL2Nhc2UtZmlsZS12aWV3LWZvbGRlci1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ2FzZUZpbGVWaWV3Rm9sZGVyRG9jdW1lbnRBY3Rpb25zQ29tcG9uZW50XG59IGZyb20gJy4vY2FzZS1maWxlLXZpZXcvY29tcG9uZW50cy9jYXNlLWZpbGUtdmlldy1mb2xkZXIvY2FzZS1maWxlLXZpZXctZm9sZGVyLWRvY3VtZW50LWFjdGlvbnMvY2FzZS1maWxlLXZpZXctZm9sZGVyLWRvY3VtZW50LWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENhc2VGaWxlVmlld0ZvbGRlclNvcnRDb21wb25lbnRcbn0gZnJvbSAnLi9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydC9jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FzZUZpbGVWaWV3Rm9sZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXIuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIEFkZENvbW1lbnRzQ29tcG9uZW50LFxuICBDYXNlRmxhZ1N1bW1hcnlMaXN0Q29tcG9uZW50LFxuICBDYXNlRmxhZ1RhYmxlQ29tcG9uZW50LFxuICBDb25maXJtRmxhZ1N0YXR1c0NvbXBvbmVudCxcbiAgRmxhZ0ZpZWxkRGlzcGxheVBpcGUsXG4gIExhbmd1YWdlSW50ZXJwcmV0ZXJEaXNwbGF5UGlwZSxcbiAgTWFuYWdlQ2FzZUZsYWdzQ29tcG9uZW50LFxuICBNYW5hZ2VDYXNlRmxhZ3NMYWJlbERpc3BsYXlQaXBlLFxuICBSZWFkQ2FzZUZsYWdGaWVsZENvbXBvbmVudCxcbiAgU2VhcmNoTGFuZ3VhZ2VJbnRlcnByZXRlckNvbXBvbmVudCxcbiAgU2VsZWN0RmxhZ0xvY2F0aW9uQ29tcG9uZW50LFxuICBTZWxlY3RGbGFnVHlwZUNvbXBvbmVudCxcbiAgVXBkYXRlRmxhZ0FkZFRyYW5zbGF0aW9uRm9ybUNvbXBvbmVudCxcbiAgVXBkYXRlRmxhZ0NvbXBvbmVudCxcbiAgVXBkYXRlRmxhZ1RpdGxlRGlzcGxheVBpcGUsXG4gIFdyaXRlQ2FzZUZsYWdGaWVsZENvbXBvbmVudFxufSBmcm9tICcuL2Nhc2UtZmxhZyc7XG5pbXBvcnQgeyBSZWFkQ2FzZUxpbmtGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY2FzZS1saW5rL3JlYWQtY2FzZS1saW5rLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBXcml0ZUNhc2VMaW5rRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2Nhc2UtbGluay93cml0ZS1jYXNlLWxpbmstZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFJlYWRDb2xsZWN0aW9uRmllbGRDb21wb25lbnQsIFdyaXRlQ29sbGVjdGlvbkZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jb2xsZWN0aW9uJztcbmltcG9ydCB7IENvbGxlY3Rpb25DcmVhdGVDaGVja2VyU2VydmljZSB9IGZyb20gJy4vY29sbGVjdGlvbi9jb2xsZWN0aW9uLWNyZWF0ZS1jaGVja2VyLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgUmVhZENvbXBsZXhGaWVsZENvbGxlY3Rpb25UYWJsZUNvbXBvbmVudCxcbiAgUmVhZENvbXBsZXhGaWVsZENvbXBvbmVudCxcbiAgUmVhZENvbXBsZXhGaWVsZFJhd0NvbXBvbmVudCxcbiAgUmVhZENvbXBsZXhGaWVsZFRhYmxlQ29tcG9uZW50LFxuICBXcml0ZUNvbXBsZXhGaWVsZENvbXBvbmVudFxufSBmcm9tICcuL2NvbXBsZXgnO1xuaW1wb3J0IHsgUmVhZERhdGVGaWVsZENvbXBvbmVudCwgV3JpdGVEYXRlQ29udGFpbmVyRmllbGRDb21wb25lbnQsIFdyaXRlRGF0ZUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlJztcbmltcG9ydCB7IERhdGV0aW1lUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRldGltZS1waWNrZXInO1xuaW1wb3J0IHsgRG9jdW1lbnRVcmxQaXBlIH0gZnJvbSAnLi9kb2N1bWVudCc7XG5pbXBvcnQgeyBGaWxlVXBsb2FkUHJvZ3Jlc3NHdWFyZCB9IGZyb20gJy4vZG9jdW1lbnQvZmlsZS11cGxvYWQtcHJvZ3Jlc3MuZ3VhcmQnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZFN0YXRlU2VydmljZSB9IGZyb20gJy4vZG9jdW1lbnQvZmlsZS11cGxvYWQtc3RhdGUuc2VydmljZSc7XG5pbXBvcnQgeyBSZWFkRG9jdW1lbnRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZG9jdW1lbnQvcmVhZC1kb2N1bWVudC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9kb2N1bWVudC93cml0ZS1kb2N1bWVudC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRHluYW1pY0xpc3RQaXBlLCBSZWFkRHluYW1pY0xpc3RGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1saXN0JztcbmltcG9ydCB7IFdyaXRlRHluYW1pY0xpc3RGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1saXN0L3dyaXRlLWR5bmFtaWMtbGlzdC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVhZER5bmFtaWNNdWx0aVNlbGVjdExpc3RGaWVsZENvbXBvbmVudCwgV3JpdGVEeW5hbWljTXVsdGlTZWxlY3RMaXN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtbXVsdGktc2VsZWN0LWxpc3QnO1xuaW1wb3J0IHsgRHluYW1pY1JhZGlvTGlzdFBpcGUsIFJlYWREeW5hbWljUmFkaW9MaXN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtcmFkaW8tbGlzdCc7XG5pbXBvcnQgeyBXcml0ZUR5bmFtaWNSYWRpb0xpc3RGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZHluYW1pYy1yYWRpby1saXN0L3dyaXRlLWR5bmFtaWMtcmFkaW8tbGlzdC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmVhZEVtYWlsRmllbGRDb21wb25lbnQsIFdyaXRlRW1haWxGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZW1haWwnO1xuaW1wb3J0IHsgRml4ZWRMaXN0UGlwZSwgUmVhZEZpeGVkTGlzdEZpZWxkQ29tcG9uZW50LCBXcml0ZUZpeGVkTGlzdEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9maXhlZC1saXN0JztcbmltcG9ydCB7IEZpeGVkUmFkaW9MaXN0UGlwZSwgUmVhZEZpeGVkUmFkaW9MaXN0RmllbGRDb21wb25lbnQsIFdyaXRlRml4ZWRSYWRpb0xpc3RGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZml4ZWQtcmFkaW8tbGlzdCc7XG5pbXBvcnQgeyBDYXNlSGlzdG9yeVZpZXdlckZpZWxkQ29tcG9uZW50LCBFdmVudExvZ0NvbXBvbmVudCwgRXZlbnRMb2dEZXRhaWxzQ29tcG9uZW50LCBFdmVudExvZ1RhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi9oaXN0b3J5JztcbmltcG9ydCB7IFJlYWRKdWRpY2lhbFVzZXJGaWVsZENvbXBvbmVudCwgV3JpdGVKdWRpY2lhbFVzZXJGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vanVkaWNpYWwtdXNlcic7XG5pbXBvcnQgeyBMYWJlbEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9sYWJlbCc7XG5pbXBvcnQge1xuICBCZWZvcmVZb3VTdGFydENvbXBvbmVudCxcbiAgQ2hlY2tZb3VyQW5zd2Vyc0NvbXBvbmVudCxcbiAgTGlua0Nhc2VzQ29tcG9uZW50LFxuICBMaW5rZWRDYXNlc0Zyb21UYWJsZUNvbXBvbmVudCxcbiAgTGlua2VkQ2FzZXNUb1RhYmxlQ29tcG9uZW50LFxuICBOb0xpbmtlZENhc2VzQ29tcG9uZW50LFxuICBSZWFkTGlua2VkQ2FzZXNGaWVsZENvbXBvbmVudCxcbiAgVW5MaW5rQ2FzZXNDb21wb25lbnQsXG4gIFdyaXRlTGlua2VkQ2FzZXNGaWVsZENvbXBvbmVudFxufSBmcm9tICcuL2xpbmtlZC1jYXNlcyc7XG5pbXBvcnQgeyBMaW5rZWRDYXNlc1NlcnZpY2UgfSBmcm9tICcuL2xpbmtlZC1jYXNlcy9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBNYXJrZG93bkNvbXBvbmVudE1vZHVsZSB9IGZyb20gJy4vbWFya2Rvd24nO1xuaW1wb3J0IHsgTW9uZXlHYnBJbnB1dENvbXBvbmVudCwgUmVhZE1vbmV5R2JwRmllbGRDb21wb25lbnQsIFdyaXRlTW9uZXlHYnBGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vbW9uZXktZ2JwJztcbmltcG9ydCB7IFJlYWRNdWx0aVNlbGVjdExpc3RGaWVsZENvbXBvbmVudCwgV3JpdGVNdWx0aVNlbGVjdExpc3RGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vbXVsdGktc2VsZWN0LWxpc3QnO1xuaW1wb3J0IHsgUmVhZE51bWJlckZpZWxkQ29tcG9uZW50LCBXcml0ZU51bWJlckZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9udW1iZXInO1xuaW1wb3J0IHsgUmVhZE9yZGVyU3VtbWFyeUZpZWxkQ29tcG9uZW50LCBSZWFkT3JkZXJTdW1tYXJ5Um93Q29tcG9uZW50LCBXcml0ZU9yZGVyU3VtbWFyeUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9vcmRlci1zdW1tYXJ5JztcbmltcG9ydCB7XG4gIFJlYWRPcmdhbmlzYXRpb25GaWVsZENvbXBvbmVudCxcbiAgUmVhZE9yZ2FuaXNhdGlvbkZpZWxkUmF3Q29tcG9uZW50LFxuICBSZWFkT3JnYW5pc2F0aW9uRmllbGRUYWJsZUNvbXBvbmVudCxcbiAgV3JpdGVPcmdhbmlzYXRpb25Db21wbGV4RmllbGRDb21wb25lbnQsXG4gIFdyaXRlT3JnYW5pc2F0aW9uRmllbGRDb21wb25lbnRcbn0gZnJvbSAnLi9vcmdhbmlzYXRpb24nO1xuaW1wb3J0IHsgUGFsZXR0ZVNlcnZpY2UgfSBmcm9tICcuL3BhbGV0dGUuc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlUGF5bWVudEhpc3RvcnlWaWV3ZXJGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vcGF5bWVudCc7XG5pbXBvcnQgeyBSZWFkUGhvbmVVS0ZpZWxkQ29tcG9uZW50LCBXcml0ZVBob25lVUtGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vcGhvbmUtdWsnO1xuaW1wb3J0IHtcbiAgUXVhbGlmeWluZ1F1ZXN0aW9uRGV0YWlsQ29tcG9uZW50LFxuICBRdWFsaWZ5aW5nUXVlc3Rpb25PcHRpb25zQ29tcG9uZW50LFxuICBRdWVyeUF0dGFjaG1lbnRzUmVhZENvbXBvbmVudCxcbiAgUXVlcnlDYXNlRGV0YWlsc0hlYWRlckNvbXBvbmVudCxcbiAgUXVlcnlDaGVja1lvdXJBbnN3ZXJzQ29tcG9uZW50LFxuICBRdWVyeURldGFpbHNDb21wb25lbnQsXG4gIFF1ZXJ5RXZlbnRDb21wbGV0aW9uQ29tcG9uZW50LFxuICBRdWVyeUxpc3RDb21wb25lbnQsXG4gIFF1ZXJ5V3JpdGVBZGREb2N1bWVudHNDb21wb25lbnQsXG4gIFF1ZXJ5V3JpdGVEYXRlSW5wdXRDb21wb25lbnQsXG4gIFF1ZXJ5V3JpdGVSYWlzZVF1ZXJ5Q29tcG9uZW50LFxuICBRdWVyeVdyaXRlUmVzcG9uZFRvUXVlcnlDb21wb25lbnQsXG4gIFJlYWRRdWVyeU1hbmFnZW1lbnRGaWVsZENvbXBvbmVudFxufSBmcm9tICcuL3F1ZXJ5LW1hbmFnZW1lbnQnO1xuaW1wb3J0IHsgUXVhbGlmeWluZ1F1ZXN0aW9uU2VydmljZSB9IGZyb20gJy4vcXVlcnktbWFuYWdlbWVudC9zZXJ2aWNlcyc7XG5pbXBvcnQgeyBSZWFkVGV4dEZpZWxkQ29tcG9uZW50LCBXcml0ZVRleHRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vdGV4dCc7XG5pbXBvcnQgeyBSZWFkVGV4dEFyZWFGaWVsZENvbXBvbmVudCwgV3JpdGVUZXh0QXJlYUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi90ZXh0LWFyZWEnO1xuaW1wb3J0IHsgVW5zdXBwb3J0ZWRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vdW5zdXBwb3J0ZWQtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFBhbGV0dGVVdGlsc01vZHVsZSB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgV2F5c1RvUGF5RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3dheXN0b3BheSc7XG5pbXBvcnQgeyBSZWFkWWVzTm9GaWVsZENvbXBvbmVudCwgV3JpdGVZZXNOb0ZpZWxkQ29tcG9uZW50LCBZZXNOb1NlcnZpY2UgfSBmcm9tICcuL3llcy1ubyc7XG5pbXBvcnQgeyBRdWVyeUNvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vcXVlcnktbWFuYWdlbWVudC9jb21wb25lbnRzL3F1ZXJ5LWNvbmZpcm1hdGlvbi9xdWVyeS1jb25maXJtYXRpb24uY29tcG9uZW50JztcblxuY29uc3QgUEFMRVRURV9DT01QT05FTlRTID0gW1xuICBVbnN1cHBvcnRlZEZpZWxkQ29tcG9uZW50LFxuICBEYXRldGltZVBpY2tlckNvbXBvbmVudCxcbiAgV2F5c1RvUGF5RmllbGRDb21wb25lbnQsXG4gIEZpZWxkUmVhZENvbXBvbmVudCxcbiAgRmllbGRXcml0ZUNvbXBvbmVudCxcbiAgRmllbGRSZWFkTGFiZWxDb21wb25lbnQsXG4gIExhYmVsRmllbGRDb21wb25lbnQsXG4gIENhc2VQYXltZW50SGlzdG9yeVZpZXdlckZpZWxkQ29tcG9uZW50LFxuICBNb25leUdicElucHV0Q29tcG9uZW50LFxuICBDYXNlSGlzdG9yeVZpZXdlckZpZWxkQ29tcG9uZW50LFxuICBFdmVudExvZ0NvbXBvbmVudCxcbiAgRXZlbnRMb2dEZXRhaWxzQ29tcG9uZW50LFxuICBFdmVudExvZ1RhYmxlQ29tcG9uZW50LFxuXG4gIC8vIFJlYWRcbiAgUmVhZFRleHRGaWVsZENvbXBvbmVudCxcbiAgUmVhZFRleHRBcmVhRmllbGRDb21wb25lbnQsXG4gIFJlYWROdW1iZXJGaWVsZENvbXBvbmVudCxcbiAgUmVhZEVtYWlsRmllbGRDb21wb25lbnQsXG4gIFJlYWRQaG9uZVVLRmllbGRDb21wb25lbnQsXG4gIFJlYWREYXRlRmllbGRDb21wb25lbnQsXG4gIFJlYWRDb2xsZWN0aW9uRmllbGRDb21wb25lbnQsXG4gIFJlYWREb2N1bWVudEZpZWxkQ29tcG9uZW50LFxuXG4gIC8vIG5ld1xuICBSZWFkSnVkaWNpYWxVc2VyRmllbGRDb21wb25lbnQsXG4gIFJlYWRZZXNOb0ZpZWxkQ29tcG9uZW50LFxuICBSZWFkT3JnYW5pc2F0aW9uRmllbGRDb21wb25lbnQsXG4gIFJlYWRPcmdhbmlzYXRpb25GaWVsZFRhYmxlQ29tcG9uZW50LFxuICBSZWFkT3JnYW5pc2F0aW9uRmllbGRSYXdDb21wb25lbnQsXG4gIFJlYWRPcmRlclN1bW1hcnlGaWVsZENvbXBvbmVudCxcbiAgUmVhZE9yZGVyU3VtbWFyeVJvd0NvbXBvbmVudCxcbiAgUmVhZE1vbmV5R2JwRmllbGRDb21wb25lbnQsXG4gIFJlYWRNdWx0aVNlbGVjdExpc3RGaWVsZENvbXBvbmVudCxcbiAgUmVhZER5bmFtaWNMaXN0RmllbGRDb21wb25lbnQsXG4gIFJlYWRGaXhlZExpc3RGaWVsZENvbXBvbmVudCxcbiAgUmVhZEZpeGVkUmFkaW9MaXN0RmllbGRDb21wb25lbnQsXG4gIFJlYWREeW5hbWljUmFkaW9MaXN0RmllbGRDb21wb25lbnQsXG4gIFJlYWRDYXNlTGlua0ZpZWxkQ29tcG9uZW50LFxuICBSZWFkQ29tcGxleEZpZWxkQ29tcG9uZW50LFxuICBSZWFkQ29tcGxleEZpZWxkUmF3Q29tcG9uZW50LFxuICBSZWFkQ29tcGxleEZpZWxkVGFibGVDb21wb25lbnQsXG4gIFJlYWRDb21wbGV4RmllbGRDb2xsZWN0aW9uVGFibGVDb21wb25lbnQsXG4gIFJlYWRDYXNlRmxhZ0ZpZWxkQ29tcG9uZW50LFxuICBSZWFkTGlua2VkQ2FzZXNGaWVsZENvbXBvbmVudCxcblxuICAvLyBXcml0ZVxuICBXcml0ZUp1ZGljaWFsVXNlckZpZWxkQ29tcG9uZW50LFxuICBXcml0ZUFkZHJlc3NGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVDb21wbGV4RmllbGRDb21wb25lbnQsXG4gIFdyaXRlT3JnYW5pc2F0aW9uQ29tcGxleEZpZWxkQ29tcG9uZW50LFxuICBXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQsXG4gIFdyaXRlRHluYW1pY0xpc3RGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVEeW5hbWljUmFkaW9MaXN0RmllbGRDb21wb25lbnQsXG4gIFdyaXRlVGV4dEZpZWxkQ29tcG9uZW50LFxuICBXcml0ZURhdGVDb250YWluZXJGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVUZXh0QXJlYUZpZWxkQ29tcG9uZW50LFxuICBXcml0ZVBob25lVUtGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVOdW1iZXJGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVFbWFpbEZpZWxkQ29tcG9uZW50LFxuICBXcml0ZURhdGVGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVDYXNlRmxhZ0ZpZWxkQ29tcG9uZW50LFxuICBXcml0ZUxpbmtlZENhc2VzRmllbGRDb21wb25lbnQsXG5cbiAgLy8gbmV3XG4gIFdyaXRlWWVzTm9GaWVsZENvbXBvbmVudCxcbiAgV3JpdGVPcmdhbmlzYXRpb25GaWVsZENvbXBvbmVudCxcbiAgV3JpdGVPcmdhbmlzYXRpb25Db21wbGV4RmllbGRDb21wb25lbnQsXG4gIFdyaXRlT3JkZXJTdW1tYXJ5RmllbGRDb21wb25lbnQsXG4gIFdyaXRlTW9uZXlHYnBGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVEYXRlQ29udGFpbmVyRmllbGRDb21wb25lbnQsXG4gIFdyaXRlTXVsdGlTZWxlY3RMaXN0RmllbGRDb21wb25lbnQsXG4gIFdyaXRlRml4ZWRMaXN0RmllbGRDb21wb25lbnQsXG4gIFdyaXRlRml4ZWRSYWRpb0xpc3RGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVDYXNlTGlua0ZpZWxkQ29tcG9uZW50LFxuICBXcml0ZUNvbGxlY3Rpb25GaWVsZENvbXBvbmVudCxcblxuICAvLyBDb21wb25lbnRMYXVuY2hlciB3ZWIgY29tcG9uZW50c1xuICBDYXNlRmlsZVZpZXdGaWVsZENvbXBvbmVudCxcbiAgQ2FzZUZpbGVWaWV3Rm9sZGVyQ29tcG9uZW50LFxuICBDYXNlRmlsZVZpZXdGb2xkZXJTb3J0Q29tcG9uZW50LFxuICBDYXNlRmlsZVZpZXdPdmVybGF5TWVudUNvbXBvbmVudCxcbiAgQ2FzZUZpbGVWaWV3Rm9sZGVyRG9jdW1lbnRBY3Rpb25zQ29tcG9uZW50LFxuICBDYXNlRmlsZVZpZXdGb2xkZXJTZWxlY3RvckNvbXBvbmVudCxcbiAgLy8gY29tcG9uZW50IGZvciBkeW5hbWljIGxpc3RcbiAgV3JpdGVEeW5hbWljTXVsdGlTZWxlY3RMaXN0RmllbGRDb21wb25lbnQsXG4gIFdyaXRlRHluYW1pY1JhZGlvTGlzdEZpZWxkQ29tcG9uZW50LFxuICBXcml0ZUR5bmFtaWNMaXN0RmllbGRDb21wb25lbnQsXG4gIFJlYWREeW5hbWljTXVsdGlTZWxlY3RMaXN0RmllbGRDb21wb25lbnQsXG4gIFJlYWREeW5hbWljTGlzdEZpZWxkQ29tcG9uZW50LFxuICBSZWFkRHluYW1pY1JhZGlvTGlzdEZpZWxkQ29tcG9uZW50LFxuICAvLyBDb21wb25lbnRzIGZvciBjYXNlIGZsYWdzXG4gIENhc2VGbGFnVGFibGVDb21wb25lbnQsXG4gIFNlbGVjdEZsYWdUeXBlQ29tcG9uZW50LFxuICBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29tcG9uZW50LFxuICBTZWxlY3RGbGFnTG9jYXRpb25Db21wb25lbnQsXG4gIE1hbmFnZUNhc2VGbGFnc0NvbXBvbmVudCxcbiAgQWRkQ29tbWVudHNDb21wb25lbnQsXG4gIFVwZGF0ZUZsYWdDb21wb25lbnQsXG4gIENhc2VGbGFnU3VtbWFyeUxpc3RDb21wb25lbnQsXG4gIENvbmZpcm1GbGFnU3RhdHVzQ29tcG9uZW50LFxuICBVcGRhdGVGbGFnQWRkVHJhbnNsYXRpb25Gb3JtQ29tcG9uZW50LFxuICAvLyBDb21wb25lbnRzIGZvciBsaW5rZWQgY2FzZXNcbiAgTGlua2VkQ2FzZXNUb1RhYmxlQ29tcG9uZW50LFxuICBMaW5rZWRDYXNlc0Zyb21UYWJsZUNvbXBvbmVudCxcbiAgQmVmb3JlWW91U3RhcnRDb21wb25lbnQsXG4gIExpbmtDYXNlc0NvbXBvbmVudCxcbiAgQ2hlY2tZb3VyQW5zd2Vyc0NvbXBvbmVudCxcbiAgVW5MaW5rQ2FzZXNDb21wb25lbnQsXG4gIE5vTGlua2VkQ2FzZXNDb21wb25lbnQsXG5cbiAgLy8gQ29tcG9uZW50cyBmb3IgUXVlcnkgTWFuYWdlbWVudFxuICBSZWFkUXVlcnlNYW5hZ2VtZW50RmllbGRDb21wb25lbnQsXG4gIFF1ZXJ5RGV0YWlsc0NvbXBvbmVudCxcbiAgUXVlcnlMaXN0Q29tcG9uZW50LFxuICBRdWVyeVdyaXRlUmVzcG9uZFRvUXVlcnlDb21wb25lbnQsXG4gIFF1ZXJ5V3JpdGVSYWlzZVF1ZXJ5Q29tcG9uZW50LFxuICBRdWVyeUNhc2VEZXRhaWxzSGVhZGVyQ29tcG9uZW50LFxuICBRdWVyeUNoZWNrWW91ckFuc3dlcnNDb21wb25lbnQsXG4gIFF1ZXJ5V3JpdGVBZGREb2N1bWVudHNDb21wb25lbnQsXG4gIFF1ZXJ5V3JpdGVEYXRlSW5wdXRDb21wb25lbnQsXG4gIFF1YWxpZnlpbmdRdWVzdGlvbk9wdGlvbnNDb21wb25lbnQsXG4gIFF1YWxpZnlpbmdRdWVzdGlvbkRldGFpbENvbXBvbmVudCxcbiAgUXVlcnlBdHRhY2htZW50c1JlYWRDb21wb25lbnQsXG4gIFF1ZXJ5RXZlbnRDb21wbGV0aW9uQ29tcG9uZW50LFxuICBRdWVyeUNvbmZpcm1hdGlvbkNvbXBvbmVudCxcblxuICAvLyBDYXNlIGV2ZW50IGNvbXBsZXRpb25cbiAgQ2FzZUV2ZW50Q29tcGxldGlvbkNvbXBvbmVudCxcbiAgQ2FzZUV2ZW50Q29tcGxldGlvblRhc2tDYW5jZWxsZWRDb21wb25lbnQsXG4gIENhc2VFdmVudENvbXBsZXRpb25UYXNrUmVhc3NpZ25lZENvbXBvbmVudFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBDYXNlRWRpdERhdGFNb2R1bGUsXG4gICAgUGFsZXR0ZVV0aWxzTW9kdWxlLFxuICAgIFBpcGVzTW9kdWxlLFxuICAgIEJhbm5lcnNNb2R1bGUsXG4gICAgSGVhZGVyc01vZHVsZSxcbiAgICBGb290ZXJzTW9kdWxlLFxuICAgIEJvZHlNb2R1bGUsXG4gICAgRm9ybU1vZHVsZSxcbiAgICBUYWJzTW9kdWxlLFxuICAgIExhYmVsU3Vic3RpdHV0b3JNb2R1bGUsXG4gICAgTWFya2Rvd25Nb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBOZ3hNYXREYXRldGltZVBpY2tlck1vZHVsZSxcbiAgICBOZ3hNYXRUaW1lcGlja2VyTW9kdWxlLFxuICAgIE5neE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIENka1RyZWVNb2R1bGUsXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBQYXltZW50TGliTW9kdWxlLFxuICAgIFNjcm9sbFRvTW9kdWxlLmZvclJvb3QoKSxcbiAgICBScHhUcmFuc2xhdGlvbk1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIENka1RyZWVNb2R1bGUsXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgTWVkaWFWaWV3ZXJNb2R1bGUsXG4gICAgTG9hZGluZ01vZHVsZSxcbiAgICBNYXJrZG93bkNvbXBvbmVudE1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGaXhlZExpc3RQaXBlLFxuICAgIEZpeGVkUmFkaW9MaXN0UGlwZSxcbiAgICBEeW5hbWljTGlzdFBpcGUsXG4gICAgRHluYW1pY1JhZGlvTGlzdFBpcGUsXG4gICAgRG9jdW1lbnRVcmxQaXBlLFxuICAgIEZsYWdGaWVsZERpc3BsYXlQaXBlLFxuICAgIExhbmd1YWdlSW50ZXJwcmV0ZXJEaXNwbGF5UGlwZSxcbiAgICBNYW5hZ2VDYXNlRmxhZ3NMYWJlbERpc3BsYXlQaXBlLFxuICAgIFVwZGF0ZUZsYWdUaXRsZURpc3BsYXlQaXBlLFxuICAgIC4uLlBBTEVUVEVfQ09NUE9ORU5UU1xuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTmd4TWF0RGF0ZXRpbWVQaWNrZXJNb2R1bGUsXG4gICAgTmd4TWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgICBOZ3hNYXRUaW1lcGlja2VyTW9kdWxlLFxuICAgIFRhYnNNb2R1bGUsXG4gICAgUGFsZXR0ZVV0aWxzTW9kdWxlLFxuICAgIFBpcGVzTW9kdWxlLFxuICAgIE1hcmtkb3duQ29tcG9uZW50TW9kdWxlLFxuICAgIC4uLlBBTEVUVEVfQ09NUE9ORU5UU1xuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZiBhcyBQcm92aWRlcixcbiAgICBDYXNlRmxhZ1JlZmRhdGFTZXJ2aWNlLFxuICAgIFllc05vU2VydmljZSxcbiAgICBDb2xsZWN0aW9uQ3JlYXRlQ2hlY2tlclNlcnZpY2UsXG4gICAgSnVyaXNkaWN0aW9uU2VydmljZSxcbiAgICBQYWxldHRlU2VydmljZSxcbiAgICBGb3JtVmFsaWRhdG9yc1NlcnZpY2UsXG4gICAgRmlsZVVwbG9hZFN0YXRlU2VydmljZSxcbiAgICBGaWxlVXBsb2FkUHJvZ3Jlc3NHdWFyZCxcbiAgICBXaW5kb3dTZXJ2aWNlLFxuICAgIENvbW1vbkRhdGFTZXJ2aWNlLFxuICAgIExpbmtlZENhc2VzU2VydmljZSxcbiAgICBRdWFsaWZ5aW5nUXVlc3Rpb25TZXJ2aWNlLFxuICAgIHtwcm92aWRlOiBNQVRfREFURV9MT0NBTEUsIHVzZVZhbHVlOiAnZW4tR0InfVxuICBdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cbn0pXG5leHBvcnQgY2xhc3MgUGFsZXR0ZU1vZHVsZSB7XG59XG4iXX0=
752
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFsZXR0ZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9wYWxldHRlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsc0JBQXNCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUMxSSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsUUFBUSxFQUFZLHNCQUFzQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsMkJBQTJCLElBQUkscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RyxPQUFPLEVBQUUsc0JBQXNCLElBQUksZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHFCQUFxQixJQUFJLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzNGLE9BQU8sRUFBRSx3QkFBd0IsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxvQkFBb0IsSUFBSSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN4RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDOUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDM0UsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQzNGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLHlDQUF5QyxFQUFFLDBDQUEwQyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0ssT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDckYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQzdGLE9BQU8sRUFDTCxtQ0FBbUMsRUFDcEMsTUFBTSxxR0FBcUcsQ0FBQztBQUM3RyxPQUFPLEVBQ0wsMENBQTBDLEVBQzNDLE1BQU0sMklBQTJJLENBQUM7QUFDbkosT0FBTyxFQUNMLCtCQUErQixFQUNoQyxNQUFNLG1IQUFtSCxDQUFDO0FBQzNILE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLHVIQUF1SCxDQUFDO0FBQzFLLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLG1GQUFtRixDQUFDO0FBQ2hJLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsNEJBQTRCLEVBQzVCLHNCQUFzQixFQUN0QiwwQkFBMEIsRUFDMUIsb0JBQW9CLEVBQ3BCLDhCQUE4QixFQUM5Qix3QkFBd0IsRUFDeEIsK0JBQStCLEVBQy9CLDBCQUEwQixFQUMxQixrQ0FBa0MsRUFDbEMsMkJBQTJCLEVBQzNCLHVCQUF1QixFQUN2QixxQ0FBcUMsRUFDckMsbUJBQW1CLEVBQ25CLDBCQUEwQixFQUMxQiwyQkFBMkIsRUFDNUIsTUFBTSxhQUFhLENBQUM7QUFDckIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDeEYsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDMUYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDZCQUE2QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBQ2hHLE9BQU8sRUFDTCx3Q0FBd0MsRUFDeEMseUJBQXlCLEVBQ3pCLDRCQUE0QixFQUM1Qiw4QkFBOEIsRUFDOUIsMEJBQTBCLEVBQzNCLE1BQU0sV0FBVyxDQUFDO0FBQ25CLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxnQ0FBZ0MsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUMzRyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxlQUFlLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRixPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsd0NBQXdDLEVBQUUseUNBQXlDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUNsSSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSwrREFBK0QsQ0FBQztBQUNwSCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSwyQkFBMkIsRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUN4RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0NBQWdDLEVBQUUsaUNBQWlDLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3SCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsaUJBQWlCLEVBQUUsd0JBQXdCLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDakksT0FBTyxFQUFFLDhCQUE4QixFQUFFLCtCQUErQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQiw2QkFBNkIsRUFDN0IsMkJBQTJCLEVBQzNCLHNCQUFzQixFQUN0Qiw2QkFBNkIsRUFDN0Isb0JBQW9CLEVBQ3BCLDhCQUE4QixFQUMvQixNQUFNLGdCQUFnQixDQUFDO0FBQ3hCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNyRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsMEJBQTBCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDOUcsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUcsT0FBTyxFQUFFLHdCQUF3QixFQUFFLHlCQUF5QixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQy9FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSw0QkFBNEIsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hJLE9BQU8sRUFDTCw4QkFBOEIsRUFDOUIsaUNBQWlDLEVBQ2pDLG1DQUFtQyxFQUNuQyxzQ0FBc0MsRUFDdEMsK0JBQStCLEVBQ2hDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEIsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNuRSxPQUFPLEVBQUUseUJBQXlCLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDbkYsT0FBTyxFQUNMLGlDQUFpQyxFQUNqQyxrQ0FBa0MsRUFDbEMsNkJBQTZCLEVBQzdCLCtCQUErQixFQUMvQiw4QkFBOEIsRUFDOUIscUJBQXFCLEVBQ3JCLDZCQUE2QixFQUM3QixrQkFBa0IsRUFDbEIsK0JBQStCLEVBQy9CLDRCQUE0QixFQUM1Qiw2QkFBNkIsRUFDN0IsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNsQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN6RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDdEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQzdDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsd0JBQXdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzNGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLCtFQUErRSxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFM0gsTUFBTSxrQkFBa0IsR0FBRztJQUN6Qix5QkFBeUI7SUFDekIsdUJBQXVCO0lBQ3ZCLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLHVCQUF1QjtJQUN2QixtQkFBbUI7SUFDbkIsc0NBQXNDO0lBQ3RDLHNCQUFzQjtJQUN0QiwrQkFBK0I7SUFDL0IsaUJBQWlCO0lBQ2pCLHdCQUF3QjtJQUN4QixzQkFBc0I7SUFFdEIsT0FBTztJQUNQLHNCQUFzQjtJQUN0QiwwQkFBMEI7SUFDMUIsd0JBQXdCO0lBQ3hCLHVCQUF1QjtJQUN2Qix5QkFBeUI7SUFDekIsc0JBQXNCO0lBQ3RCLDRCQUE0QjtJQUM1QiwwQkFBMEI7SUFFMUIsTUFBTTtJQUNOLDhCQUE4QjtJQUM5Qix1QkFBdUI7SUFDdkIsOEJBQThCO0lBQzlCLG1DQUFtQztJQUNuQyxpQ0FBaUM7SUFDakMsOEJBQThCO0lBQzlCLDRCQUE0QjtJQUM1QiwwQkFBMEI7SUFDMUIsaUNBQWlDO0lBQ2pDLDZCQUE2QjtJQUM3QiwyQkFBMkI7SUFDM0IsZ0NBQWdDO0lBQ2hDLGtDQUFrQztJQUNsQywwQkFBMEI7SUFDMUIseUJBQXlCO0lBQ3pCLDRCQUE0QjtJQUM1Qiw4QkFBOEI7SUFDOUIsd0NBQXdDO0lBQ3hDLDBCQUEwQjtJQUMxQiw2QkFBNkI7SUFFN0IsUUFBUTtJQUNSLCtCQUErQjtJQUMvQiwwQkFBMEI7SUFDMUIsMEJBQTBCO0lBQzFCLHNDQUFzQztJQUN0QywyQkFBMkI7SUFDM0IsOEJBQThCO0lBQzlCLG1DQUFtQztJQUNuQyx1QkFBdUI7SUFDdkIsZ0NBQWdDO0lBQ2hDLDJCQUEyQjtJQUMzQiwwQkFBMEI7SUFDMUIseUJBQXlCO0lBQ3pCLHdCQUF3QjtJQUN4Qix1QkFBdUI7SUFDdkIsMkJBQTJCO0lBQzNCLDhCQUE4QjtJQUU5QixNQUFNO0lBQ04sd0JBQXdCO0lBQ3hCLCtCQUErQjtJQUMvQixzQ0FBc0M7SUFDdEMsK0JBQStCO0lBQy9CLDJCQUEyQjtJQUMzQixnQ0FBZ0M7SUFDaEMsa0NBQWtDO0lBQ2xDLDRCQUE0QjtJQUM1QixpQ0FBaUM7SUFDakMsMkJBQTJCO0lBQzNCLDZCQUE2QjtJQUU3QixtQ0FBbUM7SUFDbkMsMEJBQTBCO0lBQzFCLDJCQUEyQjtJQUMzQiwrQkFBK0I7SUFDL0IsaUNBQWlDO0lBQ2pDLGdDQUFnQztJQUNoQywwQ0FBMEM7SUFDMUMsbUNBQW1DO0lBQ25DLDZCQUE2QjtJQUM3Qix5Q0FBeUM7SUFDekMsbUNBQW1DO0lBQ25DLDhCQUE4QjtJQUM5Qix3Q0FBd0M7SUFDeEMsNkJBQTZCO0lBQzdCLGtDQUFrQztJQUNsQyw0QkFBNEI7SUFDNUIsc0JBQXNCO0lBQ3RCLHVCQUF1QjtJQUN2QixrQ0FBa0M7SUFDbEMsMkJBQTJCO0lBQzNCLHdCQUF3QjtJQUN4QixvQkFBb0I7SUFDcEIsbUJBQW1CO0lBQ25CLDRCQUE0QjtJQUM1QiwwQkFBMEI7SUFDMUIscUNBQXFDO0lBQ3JDLDhCQUE4QjtJQUM5QiwyQkFBMkI7SUFDM0IsNkJBQTZCO0lBQzdCLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIseUJBQXlCO0lBQ3pCLG9CQUFvQjtJQUNwQixzQkFBc0I7SUFFdEIsa0NBQWtDO0lBQ2xDLGlDQUFpQztJQUNqQyxxQkFBcUI7SUFDckIsa0JBQWtCO0lBQ2xCLGlDQUFpQztJQUNqQyw2QkFBNkI7SUFDN0IsK0JBQStCO0lBQy9CLDhCQUE4QjtJQUM5QiwrQkFBK0I7SUFDL0IsNEJBQTRCO0lBQzVCLGtDQUFrQztJQUNsQyxpQ0FBaUM7SUFDakMsNkJBQTZCO0lBQzdCLDZCQUE2QjtJQUM3QiwwQkFBMEI7SUFFMUIsd0JBQXdCO0lBQ3hCLDRCQUE0QjtJQUM1Qix5Q0FBeUM7SUFDekMsMENBQTBDO0NBQzNDLENBQUM7QUE4RUYsTUFBTSxPQUFPLGFBQWE7dUdBQWIsYUFBYTs0REFBYixhQUFhO2lFQWxCYjtZQUNULGlCQUE2QjtZQUM3QixzQkFBc0I7WUFDdEIsWUFBWTtZQUNaLDhCQUE4QjtZQUM5QixtQkFBbUI7WUFDbkIsY0FBYztZQUNkLHFCQUFxQjtZQUNyQixzQkFBc0I7WUFDdEIsdUJBQXVCO1lBQ3ZCLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsa0JBQWtCO1lBQ2xCLHlCQUF5QjtZQUN6QixFQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBQztTQUM5QyxZQXZFQyxZQUFZO1lBQ1osWUFBWTtZQUNaLFdBQVc7WUFDWCxtQkFBbUI7WUFDbkIsa0JBQWtCO1lBQ2xCLGtCQUFrQjtZQUNsQixXQUFXO1lBQ1gsYUFBYTtZQUNiLGFBQWE7WUFDYixhQUFhO1lBQ2IsVUFBVTtZQUNWLFVBQVU7WUFDVixVQUFVO1lBQ1Ysc0JBQXNCO1lBQ3RCLGNBQWMsQ0FBQyxRQUFRLEVBQUU7WUFDekIsMEJBQTBCO1lBQzFCLHNCQUFzQjtZQUN0QixzQkFBc0I7WUFDdEIsa0JBQWtCO1lBQ2xCLGNBQWM7WUFDZCxtQkFBbUI7WUFDbkIscUJBQXFCO1lBQ3JCLGFBQWE7WUFDYixhQUFhO1lBQ2IsZ0JBQWdCO1lBQ2hCLGNBQWMsQ0FBQyxPQUFPLEVBQUU7WUFDeEIsb0JBQW9CLENBQUMsUUFBUSxFQUFFO1lBQy9CLGFBQWE7WUFDYixhQUFhO1lBQ2IsZUFBZTtZQUNmLGlCQUFpQjtZQUNqQixhQUFhO1lBQ2IsdUJBQXVCLEVBZXZCLDBCQUEwQjtZQUMxQixzQkFBc0I7WUFDdEIsc0JBQXNCO1lBQ3RCLFVBQVU7WUFDVixrQkFBa0I7WUFDbEIsV0FBVztZQUNYLHVCQUF1Qjs7aUZBcUJkLGFBQWE7Y0E1RXpCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUU7b0JBQ1AsWUFBWTtvQkFDWixZQUFZO29CQUNaLFdBQVc7b0JBQ1gsbUJBQW1CO29CQUNuQixrQkFBa0I7b0JBQ2xCLGtCQUFrQjtvQkFDbEIsV0FBVztvQkFDWCxhQUFhO29CQUNiLGFBQWE7b0JBQ2IsYUFBYTtvQkFDYixVQUFVO29CQUNWLFVBQVU7b0JBQ1YsVUFBVTtvQkFDVixzQkFBc0I7b0JBQ3RCLGNBQWMsQ0FBQyxRQUFRLEVBQUU7b0JBQ3pCLDBCQUEwQjtvQkFDMUIsc0JBQXNCO29CQUN0QixzQkFBc0I7b0JBQ3RCLGtCQUFrQjtvQkFDbEIsY0FBYztvQkFDZCxtQkFBbUI7b0JBQ25CLHFCQUFxQjtvQkFDckIsYUFBYTtvQkFDYixhQUFhO29CQUNiLGdCQUFnQjtvQkFDaEIsY0FBYyxDQUFDLE9BQU8sRUFBRTtvQkFDeEIsb0JBQW9CLENBQUMsUUFBUSxFQUFFO29CQUMvQixhQUFhO29CQUNiLGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixpQkFBaUI7b0JBQ2pCLGFBQWE7b0JBQ2IsdUJBQXVCO2lCQUN4QjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1osYUFBYTtvQkFDYixrQkFBa0I7b0JBQ2xCLGVBQWU7b0JBQ2Ysb0JBQW9CO29CQUNwQixlQUFlO29CQUNmLG9CQUFvQjtvQkFDcEIsOEJBQThCO29CQUM5QiwrQkFBK0I7b0JBQy9CLDBCQUEwQjtvQkFDMUIsR0FBRyxrQkFBa0I7aUJBQ3RCO2dCQUNELE9BQU8sRUFBRTtvQkFDUCwwQkFBMEI7b0JBQzFCLHNCQUFzQjtvQkFDdEIsc0JBQXNCO29CQUN0QixVQUFVO29CQUNWLGtCQUFrQjtvQkFDbEIsV0FBVztvQkFDWCx1QkFBdUI7b0JBQ3ZCLEdBQUcsa0JBQWtCO2lCQUN0QjtnQkFDRCxTQUFTLEVBQUU7b0JBQ1QsaUJBQTZCO29CQUM3QixzQkFBc0I7b0JBQ3RCLFlBQVk7b0JBQ1osOEJBQThCO29CQUM5QixtQkFBbUI7b0JBQ25CLGNBQWM7b0JBQ2QscUJBQXFCO29CQUNyQixzQkFBc0I7b0JBQ3RCLHVCQUF1QjtvQkFDdkIsYUFBYTtvQkFDYixpQkFBaUI7b0JBQ2pCLGtCQUFrQjtvQkFDbEIseUJBQXlCO29CQUN6QixFQUFDLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBQztpQkFDOUM7Z0JBQ0QsT0FBTyxFQUFFLENBQUMsc0JBQXNCLENBQUM7YUFDbEM7O3dGQUNZLGFBQWEsbUJBdkN0QixhQUFhO1FBQ2Isa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixvQkFBb0I7UUFDcEIsZUFBZTtRQUNmLG9CQUFvQjtRQUNwQiw4QkFBOEI7UUFDOUIsK0JBQStCO1FBQy9CLDBCQUEwQixFQW5MNUIseUJBQXlCO1FBQ3pCLHVCQUF1QjtRQUN2Qix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLHNDQUFzQztRQUN0QyxzQkFBc0I7UUFDdEIsK0JBQStCO1FBQy9CLGlCQUFpQjtRQUNqQix3QkFBd0I7UUFDeEIsc0JBQXNCO1FBRXRCLE9BQU87UUFDUCxzQkFBc0I7UUFDdEIsMEJBQTBCO1FBQzFCLHdCQUF3QjtRQUN4Qix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLHNCQUFzQjtRQUN0Qiw0QkFBNEI7UUFDNUIsMEJBQTBCO1FBRTFCLE1BQU07UUFDTiw4QkFBOEI7UUFDOUIsdUJBQXVCO1FBQ3ZCLDhCQUE4QjtRQUM5QixtQ0FBbUM7UUFDbkMsaUNBQWlDO1FBQ2pDLDhCQUE4QjtRQUM5Qiw0QkFBNEI7UUFDNUIsMEJBQTBCO1FBQzFCLGlDQUFpQztRQUNqQyw2QkFBNkI7UUFDN0IsMkJBQTJCO1FBQzNCLGdDQUFnQztRQUNoQyxrQ0FBa0M7UUFDbEMsMEJBQTBCO1FBQzFCLHlCQUF5QjtRQUN6Qiw0QkFBNEI7UUFDNUIsOEJBQThCO1FBQzlCLHdDQUF3QztRQUN4QywwQkFBMEI7UUFDMUIsNkJBQTZCO1FBRTdCLFFBQVE7UUFDUiwrQkFBK0I7UUFDL0IsMEJBQTBCO1FBQzFCLDBCQUEwQjtRQUMxQixzQ0FBc0M7UUFDdEMsMkJBQTJCO1FBQzNCLDhCQUE4QjtRQUM5QixtQ0FBbUM7UUFDbkMsdUJBQXVCO1FBQ3ZCLGdDQUFnQztRQUNoQywyQkFBMkI7UUFDM0IsMEJBQTBCO1FBQzFCLHlCQUF5QjtRQUN6Qix3QkFBd0I7UUFDeEIsdUJBQXVCO1FBQ3ZCLDJCQUEyQjtRQUMzQiw4QkFBOEI7UUFFOUIsTUFBTTtRQUNOLHdCQUF3QjtRQUN4QiwrQkFBK0I7UUFDL0Isc0NBQXNDO1FBQ3RDLCtCQUErQjtRQUMvQiwyQkFBMkI7UUFDM0IsZ0NBQWdDO1FBQ2hDLGtDQUFrQztRQUNsQyw0QkFBNEI7UUFDNUIsaUNBQWlDO1FBQ2pDLDJCQUEyQjtRQUMzQiw2QkFBNkI7UUFFN0IsbUNBQW1DO1FBQ25DLDBCQUEwQjtRQUMxQiwyQkFBMkI7UUFDM0IsK0JBQStCO1FBQy9CLGlDQUFpQztRQUNqQyxnQ0FBZ0M7UUFDaEMsMENBQTBDO1FBQzFDLG1DQUFtQztRQUNuQyw2QkFBNkI7UUFDN0IseUNBQXlDO1FBQ3pDLG1DQUFtQztRQUNuQyw4QkFBOEI7UUFDOUIsd0NBQXdDO1FBQ3hDLDZCQUE2QjtRQUM3QixrQ0FBa0M7UUFDbEMsNEJBQTRCO1FBQzVCLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsa0NBQWtDO1FBQ2xDLDJCQUEyQjtRQUMzQix3QkFBd0I7UUFDeEIsb0JBQW9CO1FBQ3BCLG1CQUFtQjtRQUNuQiw0QkFBNEI7UUFDNUIsMEJBQTBCO1FBQzFCLHFDQUFxQztRQUNyQyw4QkFBOEI7UUFDOUIsMkJBQTJCO1FBQzNCLDZCQUE2QjtRQUM3Qix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6QixvQkFBb0I7UUFDcEIsc0JBQXNCO1FBRXRCLGtDQUFrQztRQUNsQyxpQ0FBaUM7UUFDakMscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQixpQ0FBaUM7UUFDakMsNkJBQTZCO1FBQzdCLCtCQUErQjtRQUMvQiw4QkFBOEI7UUFDOUIsK0JBQStCO1FBQy9CLDRCQUE0QjtRQUM1QixrQ0FBa0M7UUFDbEMsaUNBQWlDO1FBQ2pDLDZCQUE2QjtRQUM3Qiw2QkFBNkI7UUFDN0IsMEJBQTBCO1FBRTFCLHdCQUF3QjtRQUN4Qiw0QkFBNEI7UUFDNUIseUNBQXlDO1FBQ3pDLDBDQUEwQyxhQUt4QyxZQUFZO1FBQ1osWUFBWTtRQUNaLFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsa0JBQWtCO1FBQ2xCLGtCQUFrQjtRQUNsQixXQUFXO1FBQ1gsYUFBYTtRQUNiLGFBQWE7UUFDYixhQUFhO1FBQ2IsVUFBVTtRQUNWLFVBQVU7UUFDVixVQUFVO1FBQ1Ysc0JBQXNCLHFCQUV0QiwwQkFBMEI7UUFDMUIsc0JBQXNCO1FBQ3RCLHNCQUFzQjtRQUN0QixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLG1CQUFtQjtRQUNuQixxQkFBcUI7UUFDckIsYUFBYTtRQUNiLGFBQWE7UUFDYixnQkFBZ0IsOENBR2hCLGFBQWE7UUFDYixhQUFhO1FBQ2IsZUFBZTtRQUNmLGlCQUFpQjtRQUNqQixhQUFhO1FBQ2IsdUJBQXVCLGFBZXZCLDBCQUEwQjtRQUMxQixzQkFBc0I7UUFDdEIsc0JBQXNCO1FBQ3RCLFVBQVU7UUFDVixrQkFBa0I7UUFDbEIsV0FBVztRQUNYLHVCQUF1QixFQTdMekIseUJBQXlCO1FBQ3pCLHVCQUF1QjtRQUN2Qix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLG1CQUFtQjtRQUNuQix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLHNDQUFzQztRQUN0QyxzQkFBc0I7UUFDdEIsK0JBQStCO1FBQy9CLGlCQUFpQjtRQUNqQix3QkFBd0I7UUFDeEIsc0JBQXNCO1FBRXRCLE9BQU87UUFDUCxzQkFBc0I7UUFDdEIsMEJBQTBCO1FBQzFCLHdCQUF3QjtRQUN4Qix1QkFBdUI7UUFDdkIseUJBQXlCO1FBQ3pCLHNCQUFzQjtRQUN0Qiw0QkFBNEI7UUFDNUIsMEJBQTBCO1FBRTFCLE1BQU07UUFDTiw4QkFBOEI7UUFDOUIsdUJBQXVCO1FBQ3ZCLDhCQUE4QjtRQUM5QixtQ0FBbUM7UUFDbkMsaUNBQWlDO1FBQ2pDLDhCQUE4QjtRQUM5Qiw0QkFBNEI7UUFDNUIsMEJBQTBCO1FBQzFCLGlDQUFpQztRQUNqQyw2QkFBNkI7UUFDN0IsMkJBQTJCO1FBQzNCLGdDQUFnQztRQUNoQyxrQ0FBa0M7UUFDbEMsMEJBQTBCO1FBQzFCLHlCQUF5QjtRQUN6Qiw0QkFBNEI7UUFDNUIsOEJBQThCO1FBQzlCLHdDQUF3QztRQUN4QywwQkFBMEI7UUFDMUIsNkJBQTZCO1FBRTdCLFFBQVE7UUFDUiwrQkFBK0I7UUFDL0IsMEJBQTBCO1FBQzFCLDBCQUEwQjtRQUMxQixzQ0FBc0M7UUFDdEMsMkJBQTJCO1FBQzNCLDhCQUE4QjtRQUM5QixtQ0FBbUM7UUFDbkMsdUJBQXVCO1FBQ3ZCLGdDQUFnQztRQUNoQywyQkFBMkI7UUFDM0IsMEJBQTBCO1FBQzFCLHlCQUF5QjtRQUN6Qix3QkFBd0I7UUFDeEIsdUJBQXVCO1FBQ3ZCLDJCQUEyQjtRQUMzQiw4QkFBOEI7UUFFOUIsTUFBTTtRQUNOLHdCQUF3QjtRQUN4QiwrQkFBK0I7UUFDL0Isc0NBQXNDO1FBQ3RDLCtCQUErQjtRQUMvQiwyQkFBMkI7UUFDM0IsZ0NBQWdDO1FBQ2hDLGtDQUFrQztRQUNsQyw0QkFBNEI7UUFDNUIsaUNBQWlDO1FBQ2pDLDJCQUEyQjtRQUMzQiw2QkFBNkI7UUFFN0IsbUNBQW1DO1FBQ25DLDBCQUEwQjtRQUMxQiwyQkFBMkI7UUFDM0IsK0JBQStCO1FBQy9CLGlDQUFpQztRQUNqQyxnQ0FBZ0M7UUFDaEMsMENBQTBDO1FBQzFDLG1DQUFtQztRQUNuQyw2QkFBNkI7UUFDN0IseUNBQXlDO1FBQ3pDLG1DQUFtQztRQUNuQyw4QkFBOEI7UUFDOUIsd0NBQXdDO1FBQ3hDLDZCQUE2QjtRQUM3QixrQ0FBa0M7UUFDbEMsNEJBQTRCO1FBQzVCLHNCQUFzQjtRQUN0Qix1QkFBdUI7UUFDdkIsa0NBQWtDO1FBQ2xDLDJCQUEyQjtRQUMzQix3QkFBd0I7UUFDeEIsb0JBQW9CO1FBQ3BCLG1CQUFtQjtRQUNuQiw0QkFBNEI7UUFDNUIsMEJBQTBCO1FBQzFCLHFDQUFxQztRQUNyQyw4QkFBOEI7UUFDOUIsMkJBQTJCO1FBQzNCLDZCQUE2QjtRQUM3Qix1QkFBdUI7UUFDdkIsa0JBQWtCO1FBQ2xCLHlCQUF5QjtRQUN6QixvQkFBb0I7UUFDcEIsc0JBQXNCO1FBRXRCLGtDQUFrQztRQUNsQyxpQ0FBaUM7UUFDakMscUJBQXFCO1FBQ3JCLGtCQUFrQjtRQUNsQixpQ0FBaUM7UUFDakMsNkJBQTZCO1FBQzdCLCtCQUErQjtRQUMvQiw4QkFBOEI7UUFDOUIsK0JBQStCO1FBQy9CLDRCQUE0QjtRQUM1QixrQ0FBa0M7UUFDbEMsaUNBQWlDO1FBQ2pDLDZCQUE2QjtRQUM3Qiw2QkFBNkI7UUFDN0IsMEJBQTBCO1FBRTFCLHdCQUF3QjtRQUN4Qiw0QkFBNEI7UUFDNUIseUNBQXlDO1FBQ3pDLDBDQUEwQzt1QkFoSTFDLGtCQUFrQix3RUFFbEIsdUJBQXVCO3VCQUN2QixtQkFBbUI7dUJBR25CLCtCQUErQix3QkFDL0IsaUJBQWlCO3VCQUFqQixpQkFBaUIsK0RBQ2pCLHdCQUF3QjtJQUN4QixzQkFBc0I7dUJBU3RCLDRCQUE0QiwyRUFsQjVCLGtCQUFrQjt1QkF3QmxCLDhCQUE4QiwwRUFDOUIsbUNBQW1DO0lBQ25DLGlDQUFpQzt1QkFDakMsOEJBQThCLG9DQUM5Qiw0QkFBNEI7SUFDNUIsMEJBQTBCO3VCQUQxQiw0QkFBNEIsd0JBQzVCLDBCQUEwQjt1QkFPMUIseUJBQXlCLDBFQUN6Qiw0QkFBNEI7SUFDNUIsOEJBQThCO0lBQzlCLHdDQUF3Qzt1QkFGeEMsNEJBQTRCLG9DQXJDNUIsa0JBQWtCO3VCQXNDbEIsOEJBQThCLDZDQXRDOUIsa0JBQWtCO3VCQXVDbEIsd0NBQXdDLDZDQXZDeEMsa0JBQWtCO0lBbUNsQiwwQkFBMEI7dUJBSzFCLDBCQUEwQjtJQWlEMUIsNEJBQTRCO0lBQzVCLHNCQUFzQjtJQU90Qiw0QkFBNEI7dUJBeEQ1Qiw2QkFBNkI7SUEyRDdCLDhCQUE4QjtJQUM5QiwyQkFBMkI7SUFDM0IsNkJBQTZCO3VCQXpEN0IsMEJBQTBCLDZQQUMxQiwwQkFBMEI7dUJBQTFCLDBCQUEwQix5SkE5QzFCLGtCQUFrQjtJQUNsQixtQkFBbUI7dUJBK0NuQiwyQkFBMkIsbUVBN0IzQiwwQkFBMEI7dUJBaUMxQixnQ0FBZ0MsaUZBdERoQyx1QkFBdUI7SUEyRHZCLHVCQUF1Qjt1QkFDdkIsMkJBQTJCLDJIQWlDM0IsdUJBQXVCO0lBQ3ZCLGtDQUFrQztJQUNsQywyQkFBMkI7SUFDM0Isd0JBQXdCO0lBQ3hCLG9CQUFvQjtJQUNwQixtQkFBbUI7SUFFbkIsMEJBQTBCO0lBQzFCLHFDQUFxQzt1QkF4Q3JDLDhCQUE4QixzR0E0QzlCLHVCQUF1QjtJQUN2QixrQkFBa0I7SUFDbEIseUJBQXlCO0lBQ3pCLG9CQUFvQjtJQUNwQixzQkFBc0I7dUJBNUN0QiwrQkFBK0IscU1BQy9CLHNDQUFzQzt1QkFDdEMsK0JBQStCLHdCQXRDL0IsOEJBQThCO3VCQXdDOUIsZ0NBQWdDLGlGQXJFaEMsdUJBQXVCO0lBMkR2Qix1QkFBdUI7dUJBZXZCLDZCQUE2QixtSEF2RTdCLG1CQUFtQjs7QUF5RW5CLG1DQUFtQztBQUNuQywwQkFBMEIsdUVBQzFCLDJCQUEyQjs7QUFhM0IsNEJBQTRCO0FBQzVCLHNCQUFzQix5R0FtRnBCLG9CQUFvQjt1QkFsRnRCLHVCQUF1Qix3UkFrRnJCLG9CQUFvQjt1QkFqRnRCLGtDQUFrQyw2VUFpRmhDLG9CQUFvQjtJQUNwQiw4QkFBOEI7dUJBaEZoQyx3QkFBd0Isd0pBaUZ0QiwrQkFBK0I7dUJBL0VqQyxtQkFBbUIsNlNBZ0ZqQiwwQkFBMEI7O0FBNUU1Qiw4QkFBOEI7QUFDOUIsMkJBQTJCO3VCQUMzQiw2QkFBNkI7dUJBRTdCLGtCQUFrQjt1QkFDbEIseUJBQXlCOztBQUl6QixrQ0FBa0M7QUFDbEMsaUNBQWlDLDZEQUNqQyxxQkFBcUI7SUFDckIsa0JBQWtCO3VCQURsQixxQkFBcUIsaUVBVXJCLDZCQUE2Qjt1QkFSN0IsaUNBQWlDLGtKQUZqQyxxQkFBcUI7SUFJckIsK0JBQStCO3VCQUQvQiw2QkFBNkIseU9BQzdCLCtCQUErQjtJQUcvQiw0QkFBNEI7dUJBRjVCLDhCQUE4Qiw2Q0FEOUIsK0JBQStCO0lBTS9CLDZCQUE2QjtJQUM3Qiw2QkFBNkI7dUJBTDdCLCtCQUErQix3RUE3Qy9CLDZCQUE2Qjt1QkFpRDdCLDZCQUE2QixpQ0F2RzdCLDRCQUE0Qjt1QkF3RzVCLDZCQUE2QjtJQUc3Qix3QkFBd0I7SUFDeEIsNEJBQTRCOztBQUQ1Qix3QkFBd0I7QUFDeEIsNEJBQTRCLGlDQUM1Qix5Q0FBeUM7SUFDekMsMENBQTBDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmd4TWF0RGF0ZXRpbWVQaWNrZXJNb2R1bGUsIE5neE1hdE5hdGl2ZURhdGVNb2R1bGUsIE5neE1hdFRpbWVwaWNrZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci1tYXRlcmlhbC1jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlcic7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ2RrVHJlZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90cmVlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgTmdNb2R1bGUsIFByb3ZpZGVyLCBDVVNUT01fRUxFTUVOVFNfU0NIRU1BIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdExlZ2FjeUF1dG9jb21wbGV0ZU1vZHVsZSBhcyBNYXRBdXRvY29tcGxldGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1BVF9MRUdBQ1lfREFURV9MT0NBTEUgYXMgTUFUX0RBVEVfTE9DQUxFIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWNvcmUnO1xuaW1wb3J0IHsgTWF0RGF0ZXBpY2tlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RhdGVwaWNrZXInO1xuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nTW9kdWxlIGFzIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgTWF0TGVnYWN5Rm9ybUZpZWxkTW9kdWxlIGFzIE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdExlZ2FjeUlucHV0TW9kdWxlIGFzIE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWlucHV0JztcbmltcG9ydCB7IFJvdXRlck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBQYXltZW50TGliTW9kdWxlIH0gZnJvbSAnQGhtY3RzL2NjcGF5LXdlYi1jb21wb25lbnQnO1xuaW1wb3J0IHsgTWVkaWFWaWV3ZXJNb2R1bGUgfSBmcm9tICdAaG1jdHMvbWVkaWEtdmlld2VyJztcbmltcG9ydCB7IFNjcm9sbFRvTW9kdWxlIH0gZnJvbSAnQG5pY2t5LWxlbmFlcnMvbmd4LXNjcm9sbC10byc7XG5pbXBvcnQgeyBNYXJrZG93bk1vZHVsZSB9IGZyb20gJ25neC1tYXJrZG93bic7XG5pbXBvcnQgeyBScHhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ3JweC14dWktdHJhbnNsYXRpb24nO1xuaW1wb3J0IHsgSGVhZGVyc01vZHVsZSwgVGFic01vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQmFubmVyc01vZHVsZSB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMvYmFubmVycy9iYW5uZXJzLm1vZHVsZSc7XG5pbXBvcnQgeyBCb2R5TW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9ib2R5L2JvZHkubW9kdWxlJztcbmltcG9ydCB7IEZvb3RlcnNNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnRzL2Zvb3Rlci9mb290ZXJzLm1vZHVsZSc7XG5pbXBvcnQgeyBGb3JtTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50cy9mb3JtL2Zvcm0ubW9kdWxlJztcbmltcG9ydCB7IENhc2VFZGl0RGF0YU1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbW1vbnMvY2FzZS1lZGl0LWRhdGEnO1xuaW1wb3J0IHsgTGFiZWxTdWJzdGl0dXRvck1vZHVsZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc3Vic3RpdHV0b3InO1xuaW1wb3J0IHsgUGlwZXNNb2R1bGUgfSBmcm9tICcuLi8uLi9waXBlcy9waXBlcy5tb2R1bGUnO1xuaW1wb3J0IHsgQ2FzZUZsYWdSZWZkYXRhU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Nhc2UtZmxhZy9jYXNlLWZsYWctcmVmZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB7IENvbW1vbkRhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY29tbW9uLWRhdGEtc2VydmljZS9jb21tb24tZGF0YS1zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1WYWxpZGF0b3JzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWxpZGF0b3JzLnNlcnZpY2UnO1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2p1cmlzZGljdGlvbi9qdXJpc2RpY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBMb2FkaW5nTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9hZGluZy9sb2FkaW5nLm1vZHVsZSc7XG5pbXBvcnQgeyBXaW5kb3dTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2luZG93JztcbmltcG9ydCB7IENhc2VFdmVudENvbXBsZXRpb25Db21wb25lbnQsIENhc2VFdmVudENvbXBsZXRpb25UYXNrQ2FuY2VsbGVkQ29tcG9uZW50LCBDYXNlRXZlbnRDb21wbGV0aW9uVGFza1JlYXNzaWduZWRDb21wb25lbnQgfSBmcm9tICcuLi9jYXNlLWVkaXRvci9jYXNlLWV2ZW50LWNvbXBsZXRpb24nO1xuaW1wb3J0IHsgV3JpdGVBZGRyZXNzRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2FkZHJlc3Mvd3JpdGUtYWRkcmVzcy1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRSZWFkQ29tcG9uZW50LCBGaWVsZFJlYWRMYWJlbENvbXBvbmVudCwgRmllbGRXcml0ZUNvbXBvbmVudCB9IGZyb20gJy4vYmFzZS1maWVsZCc7XG5pbXBvcnQgeyBDYXNlRmlsZVZpZXdPdmVybGF5TWVudUNvbXBvbmVudCB9IGZyb20gJy4vY2FzZS1maWxlLXZpZXcnO1xuaW1wb3J0IHsgQ2FzZUZpbGVWaWV3RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2Nhc2UtZmlsZS12aWV3L2Nhc2UtZmlsZS12aWV3LWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBDYXNlRmlsZVZpZXdGb2xkZXJTZWxlY3RvckNvbXBvbmVudFxufSBmcm9tICcuL2Nhc2UtZmlsZS12aWV3L2NvbXBvbmVudHMvY2FzZS1maWxlLXZpZXctZm9sZGVyLXNlbGVjdG9yL2Nhc2UtZmlsZS12aWV3LWZvbGRlci1zZWxlY3Rvci5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgQ2FzZUZpbGVWaWV3Rm9sZGVyRG9jdW1lbnRBY3Rpb25zQ29tcG9uZW50XG59IGZyb20gJy4vY2FzZS1maWxlLXZpZXcvY29tcG9uZW50cy9jYXNlLWZpbGUtdmlldy1mb2xkZXIvY2FzZS1maWxlLXZpZXctZm9sZGVyLWRvY3VtZW50LWFjdGlvbnMvY2FzZS1maWxlLXZpZXctZm9sZGVyLWRvY3VtZW50LWFjdGlvbnMuY29tcG9uZW50JztcbmltcG9ydCB7XG4gIENhc2VGaWxlVmlld0ZvbGRlclNvcnRDb21wb25lbnRcbn0gZnJvbSAnLi9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydC9jYXNlLWZpbGUtdmlldy1mb2xkZXItc29ydC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ2FzZUZpbGVWaWV3Rm9sZGVyVG9nZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9jYXNlLWZpbGUtdmlldy9jb21wb25lbnRzL2Nhc2UtZmlsZS12aWV3LWZvbGRlci9jYXNlLWZpbGUtdmlldy1mb2xkZXItdG9nZ2xlL2Nhc2UtZmlsZS12aWV3LWZvbGRlci10b2dnbGUuY29tcG9uZW50JztcbmltcG9ydCB7IENhc2VGaWxlVmlld0ZvbGRlckNvbXBvbmVudCB9IGZyb20gJy4vY2FzZS1maWxlLXZpZXcvY29tcG9uZW50cy9jYXNlLWZpbGUtdmlldy1mb2xkZXIvY2FzZS1maWxlLXZpZXctZm9sZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQge1xuICBBZGRDb21tZW50c0NvbXBvbmVudCxcbiAgQ2FzZUZsYWdTdW1tYXJ5TGlzdENvbXBvbmVudCxcbiAgQ2FzZUZsYWdUYWJsZUNvbXBvbmVudCxcbiAgQ29uZmlybUZsYWdTdGF0dXNDb21wb25lbnQsXG4gIEZsYWdGaWVsZERpc3BsYXlQaXBlLFxuICBMYW5ndWFnZUludGVycHJldGVyRGlzcGxheVBpcGUsXG4gIE1hbmFnZUNhc2VGbGFnc0NvbXBvbmVudCxcbiAgTWFuYWdlQ2FzZUZsYWdzTGFiZWxEaXNwbGF5UGlwZSxcbiAgUmVhZENhc2VGbGFnRmllbGRDb21wb25lbnQsXG4gIFNlYXJjaExhbmd1YWdlSW50ZXJwcmV0ZXJDb21wb25lbnQsXG4gIFNlbGVjdEZsYWdMb2NhdGlvbkNvbXBvbmVudCxcbiAgU2VsZWN0RmxhZ1R5cGVDb21wb25lbnQsXG4gIFVwZGF0ZUZsYWdBZGRUcmFuc2xhdGlvbkZvcm1Db21wb25lbnQsXG4gIFVwZGF0ZUZsYWdDb21wb25lbnQsXG4gIFVwZGF0ZUZsYWdUaXRsZURpc3BsYXlQaXBlLFxuICBXcml0ZUNhc2VGbGFnRmllbGRDb21wb25lbnRcbn0gZnJvbSAnLi9jYXNlLWZsYWcnO1xuaW1wb3J0IHsgUmVhZENhc2VMaW5rRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2Nhc2UtbGluay9yZWFkLWNhc2UtbGluay1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgV3JpdGVDYXNlTGlua0ZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jYXNlLWxpbmsvd3JpdGUtY2FzZS1saW5rLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSZWFkQ29sbGVjdGlvbkZpZWxkQ29tcG9uZW50LCBXcml0ZUNvbGxlY3Rpb25GaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY29sbGVjdGlvbic7XG5pbXBvcnQgeyBDb2xsZWN0aW9uQ3JlYXRlQ2hlY2tlclNlcnZpY2UgfSBmcm9tICcuL2NvbGxlY3Rpb24vY29sbGVjdGlvbi1jcmVhdGUtY2hlY2tlci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gIFJlYWRDb21wbGV4RmllbGRDb2xsZWN0aW9uVGFibGVDb21wb25lbnQsXG4gIFJlYWRDb21wbGV4RmllbGRDb21wb25lbnQsXG4gIFJlYWRDb21wbGV4RmllbGRSYXdDb21wb25lbnQsXG4gIFJlYWRDb21wbGV4RmllbGRUYWJsZUNvbXBvbmVudCxcbiAgV3JpdGVDb21wbGV4RmllbGRDb21wb25lbnRcbn0gZnJvbSAnLi9jb21wbGV4JztcbmltcG9ydCB7IFJlYWREYXRlRmllbGRDb21wb25lbnQsIFdyaXRlRGF0ZUNvbnRhaW5lckZpZWxkQ29tcG9uZW50LCBXcml0ZURhdGVGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZGF0ZSc7XG5pbXBvcnQgeyBEYXRldGltZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZXRpbWUtcGlja2VyJztcbmltcG9ydCB7IERvY3VtZW50VXJsUGlwZSB9IGZyb20gJy4vZG9jdW1lbnQnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZFByb2dyZXNzR3VhcmQgfSBmcm9tICcuL2RvY3VtZW50L2ZpbGUtdXBsb2FkLXByb2dyZXNzLmd1YXJkJztcbmltcG9ydCB7IEZpbGVVcGxvYWRTdGF0ZVNlcnZpY2UgfSBmcm9tICcuL2RvY3VtZW50L2ZpbGUtdXBsb2FkLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmVhZERvY3VtZW50RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2RvY3VtZW50L3JlYWQtZG9jdW1lbnQtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZG9jdW1lbnQvd3JpdGUtZG9jdW1lbnQtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IER5bmFtaWNMaXN0UGlwZSwgUmVhZER5bmFtaWNMaXN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtbGlzdCc7XG5pbXBvcnQgeyBXcml0ZUR5bmFtaWNMaXN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtbGlzdC93cml0ZS1keW5hbWljLWxpc3QtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFJlYWREeW5hbWljTXVsdGlTZWxlY3RMaXN0RmllbGRDb21wb25lbnQsIFdyaXRlRHluYW1pY011bHRpU2VsZWN0TGlzdEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLW11bHRpLXNlbGVjdC1saXN0JztcbmltcG9ydCB7IER5bmFtaWNSYWRpb0xpc3RQaXBlLCBSZWFkRHluYW1pY1JhZGlvTGlzdEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9keW5hbWljLXJhZGlvLWxpc3QnO1xuaW1wb3J0IHsgV3JpdGVEeW5hbWljUmFkaW9MaXN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2R5bmFtaWMtcmFkaW8tbGlzdC93cml0ZS1keW5hbWljLXJhZGlvLWxpc3QtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IFJlYWRFbWFpbEZpZWxkQ29tcG9uZW50LCBXcml0ZUVtYWlsRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2VtYWlsJztcbmltcG9ydCB7IEZpeGVkTGlzdFBpcGUsIFJlYWRGaXhlZExpc3RGaWVsZENvbXBvbmVudCwgV3JpdGVGaXhlZExpc3RGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vZml4ZWQtbGlzdCc7XG5pbXBvcnQgeyBGaXhlZFJhZGlvTGlzdFBpcGUsIFJlYWRGaXhlZFJhZGlvTGlzdEZpZWxkQ29tcG9uZW50LCBXcml0ZUZpeGVkUmFkaW9MaXN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL2ZpeGVkLXJhZGlvLWxpc3QnO1xuaW1wb3J0IHsgQ2FzZUhpc3RvcnlWaWV3ZXJGaWVsZENvbXBvbmVudCwgRXZlbnRMb2dDb21wb25lbnQsIEV2ZW50TG9nRGV0YWlsc0NvbXBvbmVudCwgRXZlbnRMb2dUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4vaGlzdG9yeSc7XG5pbXBvcnQgeyBSZWFkSnVkaWNpYWxVc2VyRmllbGRDb21wb25lbnQsIFdyaXRlSnVkaWNpYWxVc2VyRmllbGRDb21wb25lbnQgfSBmcm9tICcuL2p1ZGljaWFsLXVzZXInO1xuaW1wb3J0IHsgTGFiZWxGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vbGFiZWwnO1xuaW1wb3J0IHtcbiAgQmVmb3JlWW91U3RhcnRDb21wb25lbnQsXG4gIENoZWNrWW91ckFuc3dlcnNDb21wb25lbnQsXG4gIExpbmtDYXNlc0NvbXBvbmVudCxcbiAgTGlua2VkQ2FzZXNGcm9tVGFibGVDb21wb25lbnQsXG4gIExpbmtlZENhc2VzVG9UYWJsZUNvbXBvbmVudCxcbiAgTm9MaW5rZWRDYXNlc0NvbXBvbmVudCxcbiAgUmVhZExpbmtlZENhc2VzRmllbGRDb21wb25lbnQsXG4gIFVuTGlua0Nhc2VzQ29tcG9uZW50LFxuICBXcml0ZUxpbmtlZENhc2VzRmllbGRDb21wb25lbnRcbn0gZnJvbSAnLi9saW5rZWQtY2FzZXMnO1xuaW1wb3J0IHsgTGlua2VkQ2FzZXNTZXJ2aWNlIH0gZnJvbSAnLi9saW5rZWQtY2FzZXMvc2VydmljZXMnO1xuaW1wb3J0IHsgTWFya2Rvd25Db21wb25lbnRNb2R1bGUgfSBmcm9tICcuL21hcmtkb3duJztcbmltcG9ydCB7IE1vbmV5R2JwSW5wdXRDb21wb25lbnQsIFJlYWRNb25leUdicEZpZWxkQ29tcG9uZW50LCBXcml0ZU1vbmV5R2JwRmllbGRDb21wb25lbnQgfSBmcm9tICcuL21vbmV5LWdicCc7XG5pbXBvcnQgeyBSZWFkTXVsdGlTZWxlY3RMaXN0RmllbGRDb21wb25lbnQsIFdyaXRlTXVsdGlTZWxlY3RMaXN0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL211bHRpLXNlbGVjdC1saXN0JztcbmltcG9ydCB7IFJlYWROdW1iZXJGaWVsZENvbXBvbmVudCwgV3JpdGVOdW1iZXJGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vbnVtYmVyJztcbmltcG9ydCB7IFJlYWRPcmRlclN1bW1hcnlGaWVsZENvbXBvbmVudCwgUmVhZE9yZGVyU3VtbWFyeVJvd0NvbXBvbmVudCwgV3JpdGVPcmRlclN1bW1hcnlGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vb3JkZXItc3VtbWFyeSc7XG5pbXBvcnQge1xuICBSZWFkT3JnYW5pc2F0aW9uRmllbGRDb21wb25lbnQsXG4gIFJlYWRPcmdhbmlzYXRpb25GaWVsZFJhd0NvbXBvbmVudCxcbiAgUmVhZE9yZ2FuaXNhdGlvbkZpZWxkVGFibGVDb21wb25lbnQsXG4gIFdyaXRlT3JnYW5pc2F0aW9uQ29tcGxleEZpZWxkQ29tcG9uZW50LFxuICBXcml0ZU9yZ2FuaXNhdGlvbkZpZWxkQ29tcG9uZW50XG59IGZyb20gJy4vb3JnYW5pc2F0aW9uJztcbmltcG9ydCB7IFBhbGV0dGVTZXJ2aWNlIH0gZnJvbSAnLi9wYWxldHRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FzZVBheW1lbnRIaXN0b3J5Vmlld2VyRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3BheW1lbnQnO1xuaW1wb3J0IHsgUmVhZFBob25lVUtGaWVsZENvbXBvbmVudCwgV3JpdGVQaG9uZVVLRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3Bob25lLXVrJztcbmltcG9ydCB7XG4gIFF1YWxpZnlpbmdRdWVzdGlvbkRldGFpbENvbXBvbmVudCxcbiAgUXVhbGlmeWluZ1F1ZXN0aW9uT3B0aW9uc0NvbXBvbmVudCxcbiAgUXVlcnlBdHRhY2htZW50c1JlYWRDb21wb25lbnQsXG4gIFF1ZXJ5Q2FzZURldGFpbHNIZWFkZXJDb21wb25lbnQsXG4gIFF1ZXJ5Q2hlY2tZb3VyQW5zd2Vyc0NvbXBvbmVudCxcbiAgUXVlcnlEZXRhaWxzQ29tcG9uZW50LFxuICBRdWVyeUV2ZW50Q29tcGxldGlvbkNvbXBvbmVudCxcbiAgUXVlcnlMaXN0Q29tcG9uZW50LFxuICBRdWVyeVdyaXRlQWRkRG9jdW1lbnRzQ29tcG9uZW50LFxuICBRdWVyeVdyaXRlRGF0ZUlucHV0Q29tcG9uZW50LFxuICBRdWVyeVdyaXRlUmFpc2VRdWVyeUNvbXBvbmVudCxcbiAgUXVlcnlXcml0ZVJlc3BvbmRUb1F1ZXJ5Q29tcG9uZW50LFxuICBSZWFkUXVlcnlNYW5hZ2VtZW50RmllbGRDb21wb25lbnRcbn0gZnJvbSAnLi9xdWVyeS1tYW5hZ2VtZW50JztcbmltcG9ydCB7IFF1YWxpZnlpbmdRdWVzdGlvblNlcnZpY2UgfSBmcm9tICcuL3F1ZXJ5LW1hbmFnZW1lbnQvc2VydmljZXMnO1xuaW1wb3J0IHsgUmVhZFRleHRGaWVsZENvbXBvbmVudCwgV3JpdGVUZXh0RmllbGRDb21wb25lbnQgfSBmcm9tICcuL3RleHQnO1xuaW1wb3J0IHsgUmVhZFRleHRBcmVhRmllbGRDb21wb25lbnQsIFdyaXRlVGV4dEFyZWFGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vdGV4dC1hcmVhJztcbmltcG9ydCB7IFVuc3VwcG9ydGVkRmllbGRDb21wb25lbnQgfSBmcm9tICcuL3Vuc3VwcG9ydGVkLWZpZWxkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWxldHRlVXRpbHNNb2R1bGUgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IFdheXNUb1BheUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi93YXlzdG9wYXknO1xuaW1wb3J0IHsgUmVhZFllc05vRmllbGRDb21wb25lbnQsIFdyaXRlWWVzTm9GaWVsZENvbXBvbmVudCwgWWVzTm9TZXJ2aWNlIH0gZnJvbSAnLi95ZXMtbm8nO1xuaW1wb3J0IHsgUXVlcnlDb25maXJtYXRpb25Db21wb25lbnQgfSBmcm9tICcuL3F1ZXJ5LW1hbmFnZW1lbnQvY29tcG9uZW50cy9xdWVyeS1jb25maXJtYXRpb24vcXVlcnktY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XG5cbmNvbnN0IFBBTEVUVEVfQ09NUE9ORU5UUyA9IFtcbiAgVW5zdXBwb3J0ZWRGaWVsZENvbXBvbmVudCxcbiAgRGF0ZXRpbWVQaWNrZXJDb21wb25lbnQsXG4gIFdheXNUb1BheUZpZWxkQ29tcG9uZW50LFxuICBGaWVsZFJlYWRDb21wb25lbnQsXG4gIEZpZWxkV3JpdGVDb21wb25lbnQsXG4gIEZpZWxkUmVhZExhYmVsQ29tcG9uZW50LFxuICBMYWJlbEZpZWxkQ29tcG9uZW50LFxuICBDYXNlUGF5bWVudEhpc3RvcnlWaWV3ZXJGaWVsZENvbXBvbmVudCxcbiAgTW9uZXlHYnBJbnB1dENvbXBvbmVudCxcbiAgQ2FzZUhpc3RvcnlWaWV3ZXJGaWVsZENvbXBvbmVudCxcbiAgRXZlbnRMb2dDb21wb25lbnQsXG4gIEV2ZW50TG9nRGV0YWlsc0NvbXBvbmVudCxcbiAgRXZlbnRMb2dUYWJsZUNvbXBvbmVudCxcblxuICAvLyBSZWFkXG4gIFJlYWRUZXh0RmllbGRDb21wb25lbnQsXG4gIFJlYWRUZXh0QXJlYUZpZWxkQ29tcG9uZW50LFxuICBSZWFkTnVtYmVyRmllbGRDb21wb25lbnQsXG4gIFJlYWRFbWFpbEZpZWxkQ29tcG9uZW50LFxuICBSZWFkUGhvbmVVS0ZpZWxkQ29tcG9uZW50LFxuICBSZWFkRGF0ZUZpZWxkQ29tcG9uZW50LFxuICBSZWFkQ29sbGVjdGlvbkZpZWxkQ29tcG9uZW50LFxuICBSZWFkRG9jdW1lbnRGaWVsZENvbXBvbmVudCxcblxuICAvLyBuZXdcbiAgUmVhZEp1ZGljaWFsVXNlckZpZWxkQ29tcG9uZW50LFxuICBSZWFkWWVzTm9GaWVsZENvbXBvbmVudCxcbiAgUmVhZE9yZ2FuaXNhdGlvbkZpZWxkQ29tcG9uZW50LFxuICBSZWFkT3JnYW5pc2F0aW9uRmllbGRUYWJsZUNvbXBvbmVudCxcbiAgUmVhZE9yZ2FuaXNhdGlvbkZpZWxkUmF3Q29tcG9uZW50LFxuICBSZWFkT3JkZXJTdW1tYXJ5RmllbGRDb21wb25lbnQsXG4gIFJlYWRPcmRlclN1bW1hcnlSb3dDb21wb25lbnQsXG4gIFJlYWRNb25leUdicEZpZWxkQ29tcG9uZW50LFxuICBSZWFkTXVsdGlTZWxlY3RMaXN0RmllbGRDb21wb25lbnQsXG4gIFJlYWREeW5hbWljTGlzdEZpZWxkQ29tcG9uZW50LFxuICBSZWFkRml4ZWRMaXN0RmllbGRDb21wb25lbnQsXG4gIFJlYWRGaXhlZFJhZGlvTGlzdEZpZWxkQ29tcG9uZW50LFxuICBSZWFkRHluYW1pY1JhZGlvTGlzdEZpZWxkQ29tcG9uZW50LFxuICBSZWFkQ2FzZUxpbmtGaWVsZENvbXBvbmVudCxcbiAgUmVhZENvbXBsZXhGaWVsZENvbXBvbmVudCxcbiAgUmVhZENvbXBsZXhGaWVsZFJhd0NvbXBvbmVudCxcbiAgUmVhZENvbXBsZXhGaWVsZFRhYmxlQ29tcG9uZW50LFxuICBSZWFkQ29tcGxleEZpZWxkQ29sbGVjdGlvblRhYmxlQ29tcG9uZW50LFxuICBSZWFkQ2FzZUZsYWdGaWVsZENvbXBvbmVudCxcbiAgUmVhZExpbmtlZENhc2VzRmllbGRDb21wb25lbnQsXG5cbiAgLy8gV3JpdGVcbiAgV3JpdGVKdWRpY2lhbFVzZXJGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVBZGRyZXNzRmllbGRDb21wb25lbnQsXG4gIFdyaXRlQ29tcGxleEZpZWxkQ29tcG9uZW50LFxuICBXcml0ZU9yZ2FuaXNhdGlvbkNvbXBsZXhGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LFxuICBXcml0ZUR5bmFtaWNMaXN0RmllbGRDb21wb25lbnQsXG4gIFdyaXRlRHluYW1pY1JhZGlvTGlzdEZpZWxkQ29tcG9uZW50LFxuICBXcml0ZVRleHRGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVEYXRlQ29udGFpbmVyRmllbGRDb21wb25lbnQsXG4gIFdyaXRlVGV4dEFyZWFGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVQaG9uZVVLRmllbGRDb21wb25lbnQsXG4gIFdyaXRlTnVtYmVyRmllbGRDb21wb25lbnQsXG4gIFdyaXRlRW1haWxGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVEYXRlRmllbGRDb21wb25lbnQsXG4gIFdyaXRlQ2FzZUZsYWdGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVMaW5rZWRDYXNlc0ZpZWxkQ29tcG9uZW50LFxuXG4gIC8vIG5ld1xuICBXcml0ZVllc05vRmllbGRDb21wb25lbnQsXG4gIFdyaXRlT3JnYW5pc2F0aW9uRmllbGRDb21wb25lbnQsXG4gIFdyaXRlT3JnYW5pc2F0aW9uQ29tcGxleEZpZWxkQ29tcG9uZW50LFxuICBXcml0ZU9yZGVyU3VtbWFyeUZpZWxkQ29tcG9uZW50LFxuICBXcml0ZU1vbmV5R2JwRmllbGRDb21wb25lbnQsXG4gIFdyaXRlRGF0ZUNvbnRhaW5lckZpZWxkQ29tcG9uZW50LFxuICBXcml0ZU11bHRpU2VsZWN0TGlzdEZpZWxkQ29tcG9uZW50LFxuICBXcml0ZUZpeGVkTGlzdEZpZWxkQ29tcG9uZW50LFxuICBXcml0ZUZpeGVkUmFkaW9MaXN0RmllbGRDb21wb25lbnQsXG4gIFdyaXRlQ2FzZUxpbmtGaWVsZENvbXBvbmVudCxcbiAgV3JpdGVDb2xsZWN0aW9uRmllbGRDb21wb25lbnQsXG5cbiAgLy8gQ29tcG9uZW50TGF1bmNoZXIgd2ViIGNvbXBvbmVudHNcbiAgQ2FzZUZpbGVWaWV3RmllbGRDb21wb25lbnQsXG4gIENhc2VGaWxlVmlld0ZvbGRlckNvbXBvbmVudCxcbiAgQ2FzZUZpbGVWaWV3Rm9sZGVyU29ydENvbXBvbmVudCxcbiAgQ2FzZUZpbGVWaWV3Rm9sZGVyVG9nZ2xlQ29tcG9uZW50LFxuICBDYXNlRmlsZVZpZXdPdmVybGF5TWVudUNvbXBvbmVudCxcbiAgQ2FzZUZpbGVWaWV3Rm9sZGVyRG9jdW1lbnRBY3Rpb25zQ29tcG9uZW50LFxuICBDYXNlRmlsZVZpZXdGb2xkZXJTZWxlY3RvckNvbXBvbmVudCxcbiAgLy8gY29tcG9uZW50IGZvciBkeW5hbWljIGxpc3RcbiAgV3JpdGVEeW5hbWljTXVsdGlTZWxlY3RMaXN0RmllbGRDb21wb25lbnQsXG4gIFdyaXRlRHluYW1pY1JhZGlvTGlzdEZpZWxkQ29tcG9uZW50LFxuICBXcml0ZUR5bmFtaWNMaXN0RmllbGRDb21wb25lbnQsXG4gIFJlYWREeW5hbWljTXVsdGlTZWxlY3RMaXN0RmllbGRDb21wb25lbnQsXG4gIFJlYWREeW5hbWljTGlzdEZpZWxkQ29tcG9uZW50LFxuICBSZWFkRHluYW1pY1JhZGlvTGlzdEZpZWxkQ29tcG9uZW50LFxuICAvLyBDb21wb25lbnRzIGZvciBjYXNlIGZsYWdzXG4gIENhc2VGbGFnVGFibGVDb21wb25lbnQsXG4gIFNlbGVjdEZsYWdUeXBlQ29tcG9uZW50LFxuICBTZWFyY2hMYW5ndWFnZUludGVycHJldGVyQ29tcG9uZW50LFxuICBTZWxlY3RGbGFnTG9jYXRpb25Db21wb25lbnQsXG4gIE1hbmFnZUNhc2VGbGFnc0NvbXBvbmVudCxcbiAgQWRkQ29tbWVudHNDb21wb25lbnQsXG4gIFVwZGF0ZUZsYWdDb21wb25lbnQsXG4gIENhc2VGbGFnU3VtbWFyeUxpc3RDb21wb25lbnQsXG4gIENvbmZpcm1GbGFnU3RhdHVzQ29tcG9uZW50LFxuICBVcGRhdGVGbGFnQWRkVHJhbnNsYXRpb25Gb3JtQ29tcG9uZW50LFxuICAvLyBDb21wb25lbnRzIGZvciBsaW5rZWQgY2FzZXNcbiAgTGlua2VkQ2FzZXNUb1RhYmxlQ29tcG9uZW50LFxuICBMaW5rZWRDYXNlc0Zyb21UYWJsZUNvbXBvbmVudCxcbiAgQmVmb3JlWW91U3RhcnRDb21wb25lbnQsXG4gIExpbmtDYXNlc0NvbXBvbmVudCxcbiAgQ2hlY2tZb3VyQW5zd2Vyc0NvbXBvbmVudCxcbiAgVW5MaW5rQ2FzZXNDb21wb25lbnQsXG4gIE5vTGlua2VkQ2FzZXNDb21wb25lbnQsXG5cbiAgLy8gQ29tcG9uZW50cyBmb3IgUXVlcnkgTWFuYWdlbWVudFxuICBSZWFkUXVlcnlNYW5hZ2VtZW50RmllbGRDb21wb25lbnQsXG4gIFF1ZXJ5RGV0YWlsc0NvbXBvbmVudCxcbiAgUXVlcnlMaXN0Q29tcG9uZW50LFxuICBRdWVyeVdyaXRlUmVzcG9uZFRvUXVlcnlDb21wb25lbnQsXG4gIFF1ZXJ5V3JpdGVSYWlzZVF1ZXJ5Q29tcG9uZW50LFxuICBRdWVyeUNhc2VEZXRhaWxzSGVhZGVyQ29tcG9uZW50LFxuICBRdWVyeUNoZWNrWW91ckFuc3dlcnNDb21wb25lbnQsXG4gIFF1ZXJ5V3JpdGVBZGREb2N1bWVudHNDb21wb25lbnQsXG4gIFF1ZXJ5V3JpdGVEYXRlSW5wdXRDb21wb25lbnQsXG4gIFF1YWxpZnlpbmdRdWVzdGlvbk9wdGlvbnNDb21wb25lbnQsXG4gIFF1YWxpZnlpbmdRdWVzdGlvbkRldGFpbENvbXBvbmVudCxcbiAgUXVlcnlBdHRhY2htZW50c1JlYWRDb21wb25lbnQsXG4gIFF1ZXJ5RXZlbnRDb21wbGV0aW9uQ29tcG9uZW50LFxuICBRdWVyeUNvbmZpcm1hdGlvbkNvbXBvbmVudCxcblxuICAvLyBDYXNlIGV2ZW50IGNvbXBsZXRpb25cbiAgQ2FzZUV2ZW50Q29tcGxldGlvbkNvbXBvbmVudCxcbiAgQ2FzZUV2ZW50Q29tcGxldGlvblRhc2tDYW5jZWxsZWRDb21wb25lbnQsXG4gIENhc2VFdmVudENvbXBsZXRpb25UYXNrUmVhc3NpZ25lZENvbXBvbmVudFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSb3V0ZXJNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBDYXNlRWRpdERhdGFNb2R1bGUsXG4gICAgUGFsZXR0ZVV0aWxzTW9kdWxlLFxuICAgIFBpcGVzTW9kdWxlLFxuICAgIEJhbm5lcnNNb2R1bGUsXG4gICAgSGVhZGVyc01vZHVsZSxcbiAgICBGb290ZXJzTW9kdWxlLFxuICAgIEJvZHlNb2R1bGUsXG4gICAgRm9ybU1vZHVsZSxcbiAgICBUYWJzTW9kdWxlLFxuICAgIExhYmVsU3Vic3RpdHV0b3JNb2R1bGUsXG4gICAgTWFya2Rvd25Nb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBOZ3hNYXREYXRldGltZVBpY2tlck1vZHVsZSxcbiAgICBOZ3hNYXRUaW1lcGlja2VyTW9kdWxlLFxuICAgIE5neE1hdE5hdGl2ZURhdGVNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgTWF0QXV0b2NvbXBsZXRlTW9kdWxlLFxuICAgIENka1RyZWVNb2R1bGUsXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBQYXltZW50TGliTW9kdWxlLFxuICAgIFNjcm9sbFRvTW9kdWxlLmZvclJvb3QoKSxcbiAgICBScHhUcmFuc2xhdGlvbk1vZHVsZS5mb3JDaGlsZCgpLFxuICAgIENka1RyZWVNb2R1bGUsXG4gICAgT3ZlcmxheU1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgTWVkaWFWaWV3ZXJNb2R1bGUsXG4gICAgTG9hZGluZ01vZHVsZSxcbiAgICBNYXJrZG93bkNvbXBvbmVudE1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBGaXhlZExpc3RQaXBlLFxuICAgIEZpeGVkUmFkaW9MaXN0UGlwZSxcbiAgICBEeW5hbWljTGlzdFBpcGUsXG4gICAgRHluYW1pY1JhZGlvTGlzdFBpcGUsXG4gICAgRG9jdW1lbnRVcmxQaXBlLFxuICAgIEZsYWdGaWVsZERpc3BsYXlQaXBlLFxuICAgIExhbmd1YWdlSW50ZXJwcmV0ZXJEaXNwbGF5UGlwZSxcbiAgICBNYW5hZ2VDYXNlRmxhZ3NMYWJlbERpc3BsYXlQaXBlLFxuICAgIFVwZGF0ZUZsYWdUaXRsZURpc3BsYXlQaXBlLFxuICAgIC4uLlBBTEVUVEVfQ09NUE9ORU5UU1xuICBdLFxuICBleHBvcnRzOiBbXG4gICAgTmd4TWF0RGF0ZXRpbWVQaWNrZXJNb2R1bGUsXG4gICAgTmd4TWF0TmF0aXZlRGF0ZU1vZHVsZSxcbiAgICBOZ3hNYXRUaW1lcGlja2VyTW9kdWxlLFxuICAgIFRhYnNNb2R1bGUsXG4gICAgUGFsZXR0ZVV0aWxzTW9kdWxlLFxuICAgIFBpcGVzTW9kdWxlLFxuICAgIE1hcmtkb3duQ29tcG9uZW50TW9kdWxlLFxuICAgIC4uLlBBTEVUVEVfQ09NUE9ORU5UU1xuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICBDaGFuZ2VEZXRlY3RvclJlZiBhcyBQcm92aWRlcixcbiAgICBDYXNlRmxhZ1JlZmRhdGFTZXJ2aWNlLFxuICAgIFllc05vU2VydmljZSxcbiAgICBDb2xsZWN0aW9uQ3JlYXRlQ2hlY2tlclNlcnZpY2UsXG4gICAgSnVyaXNkaWN0aW9uU2VydmljZSxcbiAgICBQYWxldHRlU2VydmljZSxcbiAgICBGb3JtVmFsaWRhdG9yc1NlcnZpY2UsXG4gICAgRmlsZVVwbG9hZFN0YXRlU2VydmljZSxcbiAgICBGaWxlVXBsb2FkUHJvZ3Jlc3NHdWFyZCxcbiAgICBXaW5kb3dTZXJ2aWNlLFxuICAgIENvbW1vbkRhdGFTZXJ2aWNlLFxuICAgIExpbmtlZENhc2VzU2VydmljZSxcbiAgICBRdWFsaWZ5aW5nUXVlc3Rpb25TZXJ2aWNlLFxuICAgIHtwcm92aWRlOiBNQVRfREFURV9MT0NBTEUsIHVzZVZhbHVlOiAnZW4tR0InfVxuICBdLFxuICBzY2hlbWFzOiBbQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQV1cbn0pXG5leHBvcnQgY2xhc3MgUGFsZXR0ZU1vZHVsZSB7XG59XG4iXX0=