@hmcts/ccd-case-ui-toolkit 6.0.2-migration-dynamic-list → 6.0.10-eui-7534-table-headers-fix
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.
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.js +77 -368
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.js.map +1 -1
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js +1 -1
- package/bundles/hmcts-ccd-case-ui-toolkit.umd.min.js.map +1 -1
- package/esm2015/lib/shared/components/palette/base-field/field-read.component.js +2 -2
- package/esm2015/lib/shared/components/palette/base-field/field-write.component.js +2 -2
- package/esm2015/lib/shared/components/palette/case-file-view/components/case-file-view-folder-selector/case-file-view-folder-selector.component.js +1 -1
- package/esm2015/lib/shared/components/palette/collection/write-collection-field.component.js +2 -13
- package/esm2015/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.js +6 -5
- package/esm2015/lib/shared/components/palette/index.js +1 -2
- package/esm2015/lib/shared/components/palette/palette.module.js +4 -35
- package/esm2015/lib/shared/components/palette/palette.service.js +1 -4
- package/esm2015/lib/shared/components/search-result/search-result.component.js +10 -14
- package/esm2015/lib/shared/domain/definition/case-field.model.js +3 -6
- package/esm2015/lib/shared/domain/definition/field-type-enum.model.js +1 -1
- package/esm2015/lib/shared/services/form/field-type-sanitiser.js +1 -16
- package/fesm2015/hmcts-ccd-case-ui-toolkit.js +79 -331
- package/fesm2015/hmcts-ccd-case-ui-toolkit.js.map +1 -1
- package/lib/shared/components/palette/collection/write-collection-field.component.d.ts +0 -1
- package/lib/shared/components/palette/collection/write-collection-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.d.ts +1 -1
- package/lib/shared/components/palette/dynamic-radio-list/write-dynamic-radio-list-field.component.d.ts.map +1 -1
- package/lib/shared/components/palette/index.d.ts +0 -1
- package/lib/shared/components/palette/index.d.ts.map +1 -1
- package/lib/shared/components/palette/palette.module.d.ts +59 -61
- package/lib/shared/components/palette/palette.module.d.ts.map +1 -1
- package/lib/shared/components/palette/palette.service.d.ts.map +1 -1
- package/lib/shared/domain/definition/case-field.model.d.ts.map +1 -1
- package/lib/shared/domain/definition/field-type-enum.model.d.ts +1 -1
- package/lib/shared/domain/definition/field-type-enum.model.d.ts.map +1 -1
- package/lib/shared/services/form/field-type-sanitiser.d.ts +0 -2
- package/lib/shared/services/form/field-type-sanitiser.d.ts.map +1 -1
- package/package.json +1 -1
- package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/index.js +0 -3
- package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.js +0 -47
- package/esm2015/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.js +0 -153
- package/lib/shared/components/palette/dynamic-multi-select-list/index.d.ts +0 -3
- package/lib/shared/components/palette/dynamic-multi-select-list/index.d.ts.map +0 -1
- package/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.d.ts +0 -9
- package/lib/shared/components/palette/dynamic-multi-select-list/read-dynamic-multi-select-list-field.component.d.ts.map +0 -1
- package/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.d.ts +0 -17
- package/lib/shared/components/palette/dynamic-multi-select-list/write-dynamic-multi-select-list-field.component.d.ts.map +0 -1
|
@@ -82,11 +82,11 @@ function SearchResultComponent_table_0_th_9_Template(rf, ctx) { if (rf & 1) {
|
|
|
82
82
|
i0.ɵɵadvance(2);
|
|
83
83
|
i0.ɵɵproperty("checked", ctx_r6.allOnPageSelected())("disabled", !ctx_r6.canAnyBeShared());
|
|
84
84
|
} }
|
|
85
|
-
function
|
|
85
|
+
function SearchResultComponent_table_0_th_10_div_4_Template(rf, ctx) { if (rf & 1) {
|
|
86
86
|
const _r19 = i0.ɵɵgetCurrentView();
|
|
87
87
|
i0.ɵɵelementStart(0, "div", 27);
|
|
88
88
|
i0.ɵɵelementStart(1, "a", 28);
|
|
89
|
-
i0.ɵɵlistener("click", function
|
|
89
|
+
i0.ɵɵlistener("click", function SearchResultComponent_table_0_th_10_div_4_Template_a_click_1_listener() { i0.ɵɵrestoreView(_r19); const col_r15 = i0.ɵɵnextContext().$implicit; const ctx_r17 = i0.ɵɵnextContext(2); return ctx_r17.sort(col_r15); });
|
|
90
90
|
i0.ɵɵelementEnd();
|
|
91
91
|
i0.ɵɵelementEnd();
|
|
92
92
|
} if (rf & 2) {
|
|
@@ -98,16 +98,12 @@ function SearchResultComponent_table_0_th_10_div_6_Template(rf, ctx) { if (rf &
|
|
|
98
98
|
function SearchResultComponent_table_0_th_10_Template(rf, ctx) { if (rf & 1) {
|
|
99
99
|
const _r22 = i0.ɵɵgetCurrentView();
|
|
100
100
|
i0.ɵɵelementStart(0, "th");
|
|
101
|
-
i0.ɵɵelementStart(1, "
|
|
102
|
-
i0.ɵɵelementStart(2, "
|
|
103
|
-
i0.ɵɵ
|
|
104
|
-
i0.ɵɵ
|
|
105
|
-
i0.ɵɵlistener("click", function SearchResultComponent_table_0_th_10_Template_div_click_4_listener() { i0.ɵɵrestoreView(_r22); const col_r15 = ctx.$implicit; const ctx_r21 = i0.ɵɵnextContext(2); return ctx_r21.sort(col_r15); });
|
|
106
|
-
i0.ɵɵtext(5);
|
|
107
|
-
i0.ɵɵelementEnd();
|
|
108
|
-
i0.ɵɵtemplate(6, SearchResultComponent_table_0_th_10_div_6_Template, 2, 1, "div", 26);
|
|
109
|
-
i0.ɵɵelementEnd();
|
|
101
|
+
i0.ɵɵelementStart(1, "div", 24);
|
|
102
|
+
i0.ɵɵelementStart(2, "div", 25);
|
|
103
|
+
i0.ɵɵlistener("click", function SearchResultComponent_table_0_th_10_Template_div_click_2_listener() { i0.ɵɵrestoreView(_r22); const col_r15 = ctx.$implicit; const ctx_r21 = i0.ɵɵnextContext(2); return ctx_r21.sort(col_r15); });
|
|
104
|
+
i0.ɵɵtext(3);
|
|
110
105
|
i0.ɵɵelementEnd();
|
|
106
|
+
i0.ɵɵtemplate(4, SearchResultComponent_table_0_th_10_div_4_Template, 2, 1, "div", 26);
|
|
111
107
|
i0.ɵɵelementEnd();
|
|
112
108
|
i0.ɵɵelementEnd();
|
|
113
109
|
} if (rf & 2) {
|
|
@@ -115,7 +111,7 @@ function SearchResultComponent_table_0_th_10_Template(rf, ctx) { if (rf & 1) {
|
|
|
115
111
|
const ctx_r7 = i0.ɵɵnextContext(2);
|
|
116
112
|
i0.ɵɵadvance(1);
|
|
117
113
|
i0.ɵɵattribute("aria-label", "Sort by " + col_r15.label + " " + ctx_r7.isSortAscending(col_r15) ? "ascending" : "descending");
|
|
118
|
-
i0.ɵɵadvance(
|
|
114
|
+
i0.ɵɵadvance(2);
|
|
119
115
|
i0.ɵɵtextInterpolate(col_r15.label);
|
|
120
116
|
i0.ɵɵadvance(1);
|
|
121
117
|
i0.ɵɵproperty("ngIf", ctx_r7.comparator(col_r15));
|
|
@@ -387,7 +383,7 @@ function SearchResultComponent_table_0_Template(rf, ctx) { if (rf & 1) {
|
|
|
387
383
|
i0.ɵɵelementStart(7, "thead");
|
|
388
384
|
i0.ɵɵelementStart(8, "tr", 7);
|
|
389
385
|
i0.ɵɵtemplate(9, SearchResultComponent_table_0_th_9_Template, 4, 2, "th", 8);
|
|
390
|
-
i0.ɵɵtemplate(10, SearchResultComponent_table_0_th_10_Template,
|
|
386
|
+
i0.ɵɵtemplate(10, SearchResultComponent_table_0_th_10_Template, 5, 3, "th", 9);
|
|
391
387
|
i0.ɵɵtemplate(11, SearchResultComponent_table_0_th_11_Template, 1, 0, "th", 10);
|
|
392
388
|
i0.ɵɵelementEnd();
|
|
393
389
|
i0.ɵɵelementEnd();
|
|
@@ -818,4 +814,4 @@ SearchResultComponent.ɵcmp = i0.ɵɵdefineComponent({ type: SearchResultCompone
|
|
|
818
814
|
}], sortHandler: [{
|
|
819
815
|
type: Output
|
|
820
816
|
}] }); })();
|
|
821
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtcmVzdWx0L3NlYXJjaC1yZXN1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUNsRCxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUNWLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLHFDQUFxQyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7SUNKM0gsK0JBQXlGO0lBQ3ZGLGdDQUEwRDtJQUFBLGlCQUFDO0lBQUEsaUJBQU87SUFDbEUsa0NBQXlDO0lBQ3ZDLGdDQUE0QztJQUFBLHVCQUFPO0lBQUEsaUJBQU87SUFDMUQsWUFDRjs7SUFBQSxpQkFBUztJQUNYLGlCQUFNOzs7SUFGRixlQUNGO0lBREUsa01BQ0Y7OztJQUdGLCtCQUNrRjtJQUNoRixnQ0FBdUQ7SUFBQSx3QkFDckQ7SUFBQSxnQ0FBdUM7SUFBQSxZQUFzQjtJQUFBLGlCQUFPO0lBQ3BFLG9CQUNBO0lBQUEsZ0NBQXVDO0lBQUEsWUFBcUI7SUFBQSxpQkFBTztJQUNuRSxvQkFDQTtJQUFBLGdDQUF1QztJQUFBLGFBQXVCO0lBQUEsaUJBQU87SUFBQyx5QkFBTztJQUFBLGlCQUFPO0lBQ3hGLGlCQUFNOzs7SUFQSixrR0FBaUU7SUFFeEIsZUFBc0I7SUFBdEIsNkNBQXNCO0lBRXRCLGVBQXFCO0lBQXJCLDRDQUFxQjtJQUVyQixlQUF1QjtJQUF2Qiw4Q0FBdUI7Ozs7SUFFbEUsK0JBQ29DO0lBQ2xDLDRCQUFNO0lBQUEsNkJBQXlGO0lBQTNCLG9NQUEwQjtJQUFDLG9DQUFvQjtJQUFBLGlCQUFJO0lBQUEsaUJBQU87SUFDaEksaUJBQU07Ozs7SUFJSiw4QkFBdUU7SUFDckUsK0JBQW9DO0lBQ2xDLGlDQUFpTDtJQUF4RixvTUFBc0I7SUFBL0csaUJBQWlMO0lBQ2pMLDRCQUNRO0lBQ1YsaUJBQU07SUFDUixpQkFBSzs7O0lBSitHLGVBQStCO0lBQS9CLG9EQUErQixzQ0FBQTs7OztJQVczSSwrQkFBK0Q7SUFDN0QsNkJBQW1HO0lBQWhHLHFQQUFtQjtJQUE2RSxpQkFBSTtJQUN6RyxpQkFBTTs7OztJQUR1QyxlQUE2QjtJQUE3QiwwRUFBNkI7Ozs7SUFQbEYsMEJBQTJDO0lBQ3pDLGlDQUNzRztJQUNwRywwQkFBSTtJQUNGLDBCQUFJO0lBQ0YsK0JBQTREO0lBQXBCLGtPQUFtQjtJQUFDLFlBQWE7SUFBQSxpQkFBTTtJQUMvRSxxRkFFTTtJQUNSLGlCQUFLO0lBQ1AsaUJBQUs7SUFDUCxpQkFBUTtJQUNWLGlCQUFLOzs7O0lBVkQsZUFBbUc7SUFBbkcsNkhBQW1HO0lBR25DLGVBQWE7SUFBYixtQ0FBYTtJQUNuRSxlQUFxQjtJQUFyQixpREFBcUI7OztJQU9uQyx5QkFBeUQ7Ozs7SUFRdkQsOEJBQXVFO0lBQ3JFLCtCQUFvQztJQUNsQyxpQ0FDd0g7SUFBdEcsMFJBQWtDO0lBRHBELGlCQUN3SDtJQUN4SCw0QkFDUTtJQUNWLGlCQUFNO0lBQ1IsaUJBQUs7Ozs7SUFMc0MsZUFBZ0M7SUFBaEMsa0VBQWdDO0lBQUMsb0VBQWtDO0lBQ3JELHdEQUE4Qiw4Q0FBQTtJQUNoQyxlQUFpQztJQUFqQyxtRUFBaUM7Ozs7SUFRbEYscUNBR29FOzs7OztJQUZoQywrR0FBNkUsa0RBQUEsb0RBQUE7OztJQUdwRixZQUFxQzs7OztJQUFyQyw4REFBcUM7OztJQUxwRSxpQ0FBZ0Q7SUFDOUMsa0pBR29FO0lBQ3BFLDZLQUFnRjtJQUNsRiwwQkFBZTs7Ozs7O0lBTEksZUFBcUM7SUFBckMsb0VBQXFDLGtCQUFBOzs7SUFIMUQsNkJBQzhHOztJQUM1RywrSEFNZTtJQUNqQixpQkFBSTs7OztJQVJGLHlIQUF3RjtJQURqRSwyRUFBaUQ7SUFFekMsZUFBZTtJQUFmLHdDQUFlOzs7SUFRaEQsK0JBQWdHO0lBQzlGLHFDQUdvRTtJQUN0RSxpQkFBTTs7Ozs7SUFMcUMscUVBQW9EO0lBRTdFLGVBQStDO0lBQS9DLHFFQUErQyxrREFBQSxvREFBQTs7O0lBYm5FLDhCQUErRztJQUM3RyxxR0FTSTtJQUNKLHlHQUtNO0lBQ1IsaUJBQUs7OztJQWhCQyxlQUFtQjtJQUFuQix3Q0FBbUI7SUFVakIsZUFBbUI7SUFBbkIsd0NBQW1COzs7SUFPM0IsMEJBQThCO0lBQzVCLDJCQUEwRDtJQUN4RCxtQ0FBNEU7SUFDOUUsaUJBQU07SUFDUixpQkFBSzs7OztJQUhFLGVBQW9EO0lBQXBELHFFQUFvRDtJQUN6QyxlQUF5QjtJQUF6QiwyQ0FBeUIsNkJBQUE7OztJQTdCN0MsMEJBQW9KO0lBQ2xKLGlHQU9LO0lBQ0wsa0dBaUJLO0lBQ0wsaUdBSUs7SUFDUCxpQkFBSzs7O0lBL0JFLGVBQXNCO0lBQXRCLCtDQUFzQjtJQVEyQixlQUF1QjtJQUF2QixvREFBdUI7SUFrQnhFLGVBQXVCO0lBQXZCLGdEQUF1Qjs7OztJQTVCaEMsNkJBQTZDO0lBQzNDLDRGQWdDSzs7SUFDUCwwQkFBZTs7O0lBakNVLGVBQTJIO0lBQTNILDBLQUEySDs7OztJQXFDaEosOEJBQXVFO0lBQ3JFLCtCQUFvQztJQUNsQyxpQ0FDMEo7SUFBeEksMFJBQWtDLGlSQUFBO0lBRHBELGlCQUMwSjtJQUMxSiw0QkFDUTtJQUNWLGlCQUFNO0lBQ1IsaUJBQUs7Ozs7SUFMc0MsZUFBZ0M7SUFBaEMsa0VBQWdDO0lBQUMsb0VBQWtDO0lBQ3JELHdEQUE4Qiw4Q0FBQTtJQUNoQyxlQUFpQztJQUFqQyxtRUFBaUM7OztJQVNsRixxQ0FHb0U7Ozs7O0lBRmhDLCtHQUE2RSxrREFBQSxvREFBQTs7O0lBR3BGLFlBQXFDOzs7O0lBQXJDLDhEQUFxQzs7O0lBTHBFLGlDQUFnRDtJQUM5QyxrSkFHb0U7SUFDcEUsNktBQWdGO0lBQ2xGLDBCQUFlOzs7Ozs7SUFMSSxlQUFxQztJQUFyQyxvRUFBcUMsa0JBQUE7OztJQUgxRCw2QkFDOEc7O0lBQzVHLCtIQU1lO0lBQ2pCLGlCQUFJOzs7O0lBUkYseUhBQXdGO0lBRGpFLDJFQUFpRDtJQUV6QyxlQUFlO0lBQWYsd0NBQWU7OztJQVFoRCwrQkFBZ0c7SUFDOUYscUNBR29FO0lBQ3RFLGlCQUFNOzs7OztJQUxxQyxxRUFBb0Q7SUFFN0UsZUFBK0M7SUFBL0MscUVBQStDLGtEQUFBLG9EQUFBOzs7SUFkbkUsOEJBQStHO0lBRTdHLHFHQVNJO0lBQ0oseUdBS007SUFDUixpQkFBSzs7O0lBaEJDLGVBQW1CO0lBQW5CLHdDQUFtQjtJQVVqQixlQUFtQjtJQUFuQix3Q0FBbUI7OztJQU8zQiwwQkFBOEI7SUFDNUIsMkJBQTBEO0lBQ3hELG1DQUE0RTtJQUM5RSxpQkFBTTtJQUNSLGlCQUFLOzs7O0lBSEUsZUFBb0Q7SUFBcEQscUVBQW9EO0lBQ3pDLGVBQXlCO0lBQXpCLDJDQUF5Qiw2QkFBQTs7O0lBOUI3QywwQkFBMkw7SUFDekwsaUdBT0s7SUFDTCxrR0FrQks7SUFDTCxpR0FJSztJQUNQLGlCQUFLOzs7SUFoQ0UsZUFBc0I7SUFBdEIsK0NBQXNCO0lBUTJCLGVBQXVCO0lBQXZCLG9EQUF1QjtJQW1CeEUsZUFBdUI7SUFBdkIsZ0RBQXVCOzs7SUE3QmhDLDZCQUE4QztJQUM1Qyw0RkFpQ0s7OztJQUNQLDBCQUFlOzs7SUFsQ1UsZUFBa0s7SUFBbEssNE5BQWtLOzs7SUEzRi9MLDZCQUEyQztJQUN6QywrQkFBUztJQUNQLDZCQUFzRTtJQUFBLFlBQWdEO0lBQUEsaUJBQUs7SUFFM0gsOEVBTU07SUFFTiwrRUFRTTtJQUNOLDhFQUdNO0lBQ1IsaUJBQVU7SUFDViw2QkFBTztJQUNMLDZCQUFnQjtJQUNkLDRFQU1LO0lBQ0wsOEVBWUs7SUFDTCwrRUFBeUQ7SUFDM0QsaUJBQUs7SUFDUCxpQkFBUTtJQUNSLDhCQUFPO0lBR0wsa0dBa0NlO0lBRWYsbUdBbUNlO0lBRWpCLGlCQUFRO0lBQ1YsaUJBQVE7OztJQTlIa0UsZUFBZ0Q7SUFBaEQsdUVBQWdEO0lBRTVELGVBQTZCO0lBQTdCLHFEQUE2QjtJQVFqRixlQUFtQztJQUFuQyxnRUFBbUM7SUFTbkMsZUFBdUQ7SUFBdkQsNkZBQXVEO0lBT3RELGVBQXNCO0lBQXRCLDhDQUFzQjtJQU9QLGVBQXFCO0lBQXJCLG1EQUFxQjtJQWFwQyxlQUF1QjtJQUF2QiwrQ0FBdUI7SUFNZixlQUE0QjtJQUE1QixvREFBNEI7SUFvQzVCLGVBQTZCO0lBQTdCLHFEQUE2Qjs7OztJQXdDaEQsMENBUWlEO0lBTi9DLG1PQUErQjtJQU1nQixpQkFBaUI7OztJQUxoRSx3RUFBbUQsa0JBQUEsY0FBQSw2Q0FBQSxzQ0FBQSw4Q0FBQTs7O0lBT3JELCtCQUM0RDtJQUMxRCwrREFDRjtJQUFBLGlCQUFNOztBRGhJTixNQUFNLE9BQU8scUJBQXFCO0lBcUZoQyxZQUNFLHFDQUE0RSxFQUM1RSxTQUE0QixFQUNYLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxrQkFBc0MsRUFDdEMsY0FBOEIsRUFDOUIscUJBQTRDO1FBSjVDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBdUI7UUF0RjlDLCtCQUEwQixHQUFHLEtBQUssQ0FBQztRQUU3QyxTQUFJLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQztRQThCeEIscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBR3pCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUd6QixxQkFBZ0IsR0FBMkIsRUFBRSxDQUFDO1FBRzlDLDJCQUFzQixHQUFHLEtBQUssQ0FBQztRQUcvQixjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQTBCLENBQUM7UUFHdkQsZUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBR25ELGNBQVMsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUdsRCxnQkFBVyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBRXBELDRCQUF1QixHQUFHLEtBQUssQ0FBQztRQU1oQyxhQUFRLEdBUVgsRUFBRSxDQUFDO1FBTUEsMkJBQXNCLEdBQXVELEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUV2SCxrQkFBYSxHQUEyQixFQUFFLENBQUM7UUFXaEQsSUFBSSxDQUFDLHFDQUFxQyxHQUFHLHFDQUFxQyxDQUFDO1FBQ25GLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxTQUFTLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM1RCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLEtBQUssTUFBTSxlQUFlLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO2dCQUNuRCxJQUFJLElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxPQUFPLEtBQUssZUFBZSxDQUFDLE9BQU8sQ0FBQyxFQUFFO29CQUN0RyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztpQkFDMUM7YUFDRjtTQUNGO1FBQ0QsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUFzQjtRQUV2QyxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRTtZQUN6QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztZQUV0QixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztZQUNoQyw4REFBOEQ7WUFDOUQsSUFBSSxDQUFDLFVBQVUsR0FBRztnQkFDaEIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ3pDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO2dCQUN6QyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTO2FBQ3JDLENBQUM7WUFFRixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUF5QixFQUFFLENBQXlCLEVBQUUsRUFBRTtnQkFDOUcsT0FBTyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztTQUNoRjtRQUNELElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ25CLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1NBQ3JEO0lBQ0gsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUM7UUFDMUQsTUFBTSxvQkFBb0IsR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLDBCQUEwQixDQUFDO1FBQ3RFLElBQUksQ0FBQyx1QkFBdUIsR0FBRyxvQkFBb0IsQ0FBQztRQUVwRCxPQUFPLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUN4RSxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxRQUE4QjtRQUMvQyxPQUFPLFFBQVEsQ0FBQyxrQkFBa0IsSUFBSSxRQUFRLENBQUMsa0JBQWtCLENBQUMsY0FBYyxDQUFDLHFCQUFxQixDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVNLGNBQWM7UUFDbkIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlELElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNoRCxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxTQUFTO1FBQ2QsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsRUFBRTtZQUM1QiwyREFBMkQ7WUFDM0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDbEMsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxPQUFPLEVBQUU7d0JBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDakM7Z0JBQ0gsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7b0JBQzlDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUM1QjtZQUNILENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVNLGVBQWUsQ0FBQyxDQUF1QjtRQUM1QyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDLENBQUMsT0FBTyxFQUFFO29CQUMzQixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7aUJBQ2pDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN2QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUM1QjtTQUNGO1FBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFTSxVQUFVLENBQUMsQ0FBdUI7UUFDdkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDekQsSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFO2dCQUMvQyxPQUFPLElBQUksQ0FBQzthQUNiO1NBQ0Y7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFFTSxpQkFBaUI7UUFDdEIsSUFBSSxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDekIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlELE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDdkIsZ0JBQWdCLEVBQUcsQ0FBQzthQUNyQjtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUU7Z0JBQzlDLE9BQU8sS0FBSyxDQUFDO2FBQ2Q7U0FDRjtRQUNELElBQUksZ0JBQWdCLEtBQUssQ0FBQyxFQUFFO1lBQzFCLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNILHlFQUF5RTtJQUNsRSxpQkFBaUI7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sVUFBVSxHQUFHLEVBQUUsQ0FBQztZQUV0QixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBRWhELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBRTFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxFQUFFO29CQUM3QyxFQUFFLEVBQUUsT0FBTztvQkFDWCxLQUFLLEVBQUUsSUFBSTtvQkFDWCxVQUFVLEVBQUUsRUFBRTtvQkFDZCxLQUFLLEVBQUUsS0FBSztvQkFDWixlQUFlLEVBQUUsSUFBSTtpQkFDdEIsQ0FBQyxDQUFDLENBQUM7WUFDTixDQUFDLENBQUMsQ0FBQztZQUVILE1BQU0sQ0FBQyxvQkFBb0IsR0FBRyxVQUFVLENBQUM7WUFDekMsTUFBTSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFFcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUNwQyxNQUFNLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN2RSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFJO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUMzQixJQUFJLENBQUMsUUFBUSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQy9DLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzVDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQzFCLGdCQUFnQjtRQUNoQixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsV0FBVyxDQUFDLHFCQUFxQixDQUFDLGtCQUFrQixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQzFILFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDL0csV0FBVyxDQUFDLHFCQUFxQixDQUFDLGdCQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ2xILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixXQUFXO1NBQ1osQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLFlBQVksRUFBRTtZQUNoQixJQUFJLFFBQVEsQ0FBQyxhQUFhLFlBQVksV0FBVyxFQUFFO2dCQUNqRCxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO2FBQy9CO1lBQ0QsWUFBWSxDQUFDLEtBQUssRUFBRSxDQUFDO1NBQ3RCO0lBQ0gsQ0FBQztJQUVNLGNBQWMsQ0FBQyxHQUEyQixFQUFFLE1BQTRCO1FBQzdFLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLFNBQVMsRUFBRSxFQUFFO1lBQ3BDLEVBQUUsRUFBRSxHQUFHLENBQUMsYUFBYTtZQUNyQixLQUFLLEVBQUUsR0FBRyxDQUFDLEtBQUs7WUFDaEIsVUFBVSxFQUFFLEdBQUcsQ0FBQyxlQUFlO1lBQy9CLEtBQUssRUFBRSxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUM7WUFDNUMseUJBQXlCLEVBQUUsR0FBRyxDQUFDLHlCQUF5QjtZQUN4RCxlQUFlLEVBQUUsR0FBRyxDQUFDLGVBQWU7U0FDckMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLG9CQUFvQixDQUFDLEdBQWMsRUFBRSxNQUE0QjtRQUN0RSxHQUFHLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDL0MsR0FBRyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkYsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQztJQUNyRixDQUFDO0lBRU0sU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRU0sVUFBVSxDQUFDLE1BQThCO1FBQzlDLE9BQU8sSUFBSSxDQUFDLHFDQUFxQyxDQUFDLG9DQUFvQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQ2pHLENBQUM7SUFFTSxJQUFJLENBQUMsTUFBOEI7UUFDeEMsSUFBSSxJQUFJLENBQUMsc0JBQXNCLEVBQUU7WUFDL0IsSUFBSSxNQUFNLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLEVBQUU7Z0JBQy9ELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQzthQUMxRDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsc0JBQXNCLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxLQUFLLEtBQUssU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUM1RCxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUM7b0JBQ3JCLFNBQVMsQ0FBQyxVQUFVLENBQUM7YUFDMUQ7WUFDRCxJQUFJLENBQUMsc0JBQXNCLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxhQUFhLENBQUM7WUFDMUQsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQztZQUMvRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQztTQUNwRDthQUFNO1lBQ0wsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFNBQVMsRUFBRTtnQkFDekMsT0FBTzthQUNSO2lCQUFNLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRTtnQkFDdkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN4RjtpQkFBTTtnQkFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksY0FBYyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEVBQUUsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pGO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sVUFBVSxDQUFDLE1BQThCO1FBQzlDLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUMvQixNQUFNLFFBQVEsR0FBRyxNQUFNLENBQUMsYUFBYSxLQUFLLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUM7WUFDN0UsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsU0FBUyxDQUFDO1lBQzlFLFNBQVMsR0FBRyxDQUFDLFFBQVEsSUFBSSxDQUFDLFFBQVEsSUFBSSxXQUFXLENBQUMsQ0FBQztTQUNwRDthQUFNO1lBQ0wsU0FBUyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDMUM7UUFFRCxPQUFPLFNBQVMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDM0MsQ0FBQztJQUVNLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQztJQUN4QyxDQUFDO0lBRU0sNkJBQTZCLENBQUMsR0FBRyxFQUFFLE1BQU07UUFDOUMsSUFBSSxHQUFHLENBQUMsYUFBYSxLQUFLLGtCQUFrQixFQUFFO1lBQzVDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1NBQ2hGO2FBQU07WUFDTCxJQUFJLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1YsSUFBSSxHQUFHLENBQUMsRUFBRSxLQUFLLGtCQUFrQixFQUFFO29CQUNqQyxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztpQkFDckU7cUJBQU07b0JBQ0wsT0FBTyxNQUFNLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDbkM7YUFDRjtpQkFBTTtnQkFDTCxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2FBQzlDO1NBQ0Y7SUFDSCxDQUFDO0lBRU0sZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE1BQU07UUFDakMsT0FBTyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFFTSxlQUFlLENBQUMsTUFBOEI7UUFDbkQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdkQsT0FBTyxnQkFBZ0IsS0FBSyxTQUFTLENBQUMsUUFBUSxJQUFJLGdCQUFnQixLQUFLLFNBQVMsQ0FBQyxVQUFVLENBQUM7SUFDOUYsQ0FBQztJQUVPLGdCQUFnQixDQUFDLE1BQThCO1FBRXJELElBQUksV0FBVyxHQUFHLElBQUksQ0FBQztRQUN2QixJQUFJLFlBQVksR0FBRyxJQUFJLENBQUM7UUFFeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxLQUFLLFNBQVMsRUFBRTtZQUN6QyxPQUFPLFNBQVMsQ0FBQyxRQUFRLENBQUM7U0FDM0I7UUFDRCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUMzRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvRyxZQUFZLEdBQUcsWUFBWSxJQUFJLFVBQVUsSUFBSSxDQUFDLENBQUM7WUFDL0MsV0FBVyxHQUFHLFdBQVcsSUFBSSxVQUFVLElBQUksQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxZQUFZLEVBQUU7Z0JBQ2pDLE1BQU07YUFDUDtTQUNGO1FBQ0QsT0FBTyxXQUFXLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQztJQUN0RyxDQUFDO0lBRU0sY0FBYztRQUNuQixNQUFNLFdBQVcsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEUsT0FBTyxDQUFDLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUcsQ0FBQztJQUVNLGFBQWE7UUFDbEIsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLE9BQU8sQ0FBQyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3ZJLENBQUM7SUFFTSxlQUFlO1FBQ3BCLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRTdFLE9BQU8sS0FBSyxJQUFJLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7SUFDNUYsQ0FBQztJQUVNLGtCQUFrQixDQUFDLE1BQWM7UUFDdEMsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ25DLEdBQUcsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0QsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkQsR0FBRyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXJDLE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVPLDBCQUEwQixDQUFDLFdBQVc7UUFDNUMsT0FBTyxXQUFXLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLGNBQWM7UUFDcEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztJQUN4RixDQUFDO0lBRU0sUUFBUSxDQUFDLE1BQWM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDbEIsTUFBTTtTQUNQLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxPQUFPLENBQUMsTUFBcUIsRUFBRSxDQUF1QjtRQUMzRCxJQUFJLE1BQU0sQ0FBQyxHQUFHLEtBQUssT0FBTyxFQUFFO1lBQzFCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUU7Z0JBQ25HLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDekI7U0FDRjtJQUNILENBQUM7O0FBdmJzQix3Q0FBa0IsR0FBRyxjQUFjLENBQUM7QUFDcEMscUNBQWUsR0FBRyxXQUFXLENBQUM7QUFDOUIsc0NBQWdCLEdBQUcsWUFBWSxDQUFDOzBGQUo1QyxxQkFBcUI7MERBQXJCLHFCQUFxQjtRQ2ZsQywyRUFnSVE7UUFFUiw0RkFRa0U7UUFFbEUsc0VBR007O1FBL0lFLDBEQUFpQztRQW1JdEMsZUFBa0I7UUFBbEIsdUNBQWtCO1FBU2YsZUFBb0M7UUFBcEMsNkRBQW9DOzt1RkQ3SDdCLHFCQUFxQjtjQUxqQyxTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLG1CQUFtQjtnQkFDN0IsV0FBVyxFQUFFLGdDQUFnQztnQkFDN0MsU0FBUyxFQUFFLENBQUMsZ0NBQWdDLENBQUM7YUFDOUM7d1JBWVEsbUJBQW1CO2tCQUR6QixLQUFLO1lBSUMsWUFBWTtrQkFEbEIsS0FBSztZQUlDLFFBQVE7a0JBRGQsS0FBSztZQUlDLFNBQVM7a0JBRGYsS0FBSztZQUlDLFlBQVk7a0JBRGxCLEtBQUs7WUFJQyxVQUFVO2tCQURoQixLQUFLO1lBSUMsSUFBSTtrQkFEVixLQUFLO1lBSUMsa0JBQWtCO2tCQUR4QixLQUFLO1lBSUMsY0FBYztrQkFEcEIsS0FBSztZQUlDLGdCQUFnQjtrQkFEdEIsS0FBSztZQUlDLGdCQUFnQjtrQkFEdEIsS0FBSztZQUlDLGdCQUFnQjtrQkFEdEIsS0FBSztZQUlDLHNCQUFzQjtrQkFENUIsS0FBSztZQUlDLFNBQVM7a0JBRGYsTUFBTTtZQUlBLFVBQVU7a0JBRGhCLE1BQU07WUFJQSxTQUFTO2tCQURmLE1BQU07WUFJQSxXQUFXO2tCQURqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBYnN0cmFjdEFwcENvbmZpZyB9IGZyb20gJy4uLy4uLy4uL2FwcC5jb25maWcnO1xuaW1wb3J0IHsgUGxhY2Vob2xkZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBDYXNlRmllbGQsIENhc2VTdGF0ZSwgQ2FzZVR5cGUsIERpc3BsYXlNb2RlLFxuICBEUkFGVF9QUkVGSVgsIEp1cmlzZGljdGlvbiwgUGFnaW5hdGlvbk1ldGFkYXRhLCBTZWFyY2hSZXN1bHRWaWV3LCBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uLFxuICBTZWFyY2hSZXN1bHRWaWV3SXRlbSwgU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yLCBTb3J0T3JkZXIsIFNvcnRQYXJhbWV0ZXJzIH0gZnJvbSAnLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IENhc2VSZWZlcmVuY2VQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgQWN0aXZpdHlTZXJ2aWNlLCBCcm93c2VyU2VydmljZSwgU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeSwgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjY2Qtc2VhcmNoLXJlc3VsdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaFJlc3VsdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0pVUklTRElDVElPTiA9ICdqdXJpc2RpY3Rpb24nO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0NBU0VfVFlQRSA9ICdjYXNlLXR5cGUnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFBBUkFNX0NBU0VfU1RBVEUgPSAnY2FzZS1zdGF0ZSc7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBQQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVCA9IDEwMDAwO1xuXG4gIHB1YmxpYyBJQ09OID0gRGlzcGxheU1vZGUuSUNPTjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUxpbmtVcmxUZW1wbGF0ZTogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBqdXJpc2RpY3Rpb246IEp1cmlzZGljdGlvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZVR5cGU6IENhc2VUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBjYXNlU3RhdGU6IENhc2VTdGF0ZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpbHRlckZHOiBGb3JtR3JvdXA7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHJlc3VsdFZpZXc6IFNlYXJjaFJlc3VsdFZpZXc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2U6IG51bWJlcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGFnaW5hdGlvbk1ldGFkYXRhOiBQYWdpbmF0aW9uTWV0YWRhdGE7XG5cbiAgQElucHV0KClcbiAgcHVibGljIG1ldGFkYXRhRmllbGRzOiBzdHJpbmdbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0aW9uRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzaG93T25seVNlbGVjdGVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHByZVNlbGVjdGVkQ2FzZXM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY29uc3VtZXJTb3J0aW5nRW5hYmxlZCA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxTZWFyY2hSZXN1bHRWaWV3SXRlbVtdPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2hhbmdlUGFnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjbGlja0Nhc2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc29ydEhhbmRsZXI6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHB1YmxpYyBwYWdpbmF0aW9uTGltaXRFbmZvcmNlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBwYWdpbmF0aW9uUGFnZVNpemU6IG51bWJlcjtcblxuICBwdWJsaWMgaGlkZVJvd3M6IGJvb2xlYW47XG5cbiAgcHVibGljIHNlbGVjdGVkOiB7XG4gICAgaW5pdD86IGJvb2xlYW4sXG4gICAganVyaXNkaWN0aW9uPzogSnVyaXNkaWN0aW9uLFxuICAgIGNhc2VUeXBlPzogQ2FzZVR5cGUsXG4gICAgY2FzZVN0YXRlPzogQ2FzZVN0YXRlLFxuICAgIGZvcm1Hcm91cD86IEZvcm1Hcm91cCxcbiAgICBtZXRhZGF0YUZpZWxkcz86IHN0cmluZ1tdLFxuICAgIHBhZ2U/OiBudW1iZXJcbiAgfSA9IHt9O1xuXG4gIHB1YmxpYyBzb3J0UGFyYW1ldGVyczogU29ydFBhcmFtZXRlcnM7XG4gIHB1YmxpYyBzZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5OiBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5O1xuICBwdWJsaWMgZHJhZnRzQ291bnQ6IG51bWJlcjtcblxuICBwdWJsaWMgY29uc3VtZXJTb3J0UGFyYW1ldGVyczogeyBjb2x1bW46IHN0cmluZywgb3JkZXI6IFNvcnRPcmRlciwgdHlwZTogc3RyaW5nIH0gPSB7IGNvbHVtbjogbnVsbCwgb3JkZXI6IG51bGwsIHR5cGU6IG51bGwgfTtcblxuICBwdWJsaWMgc2VsZWN0ZWRDYXNlczogU2VhcmNoUmVzdWx0Vmlld0l0ZW1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3Rvcnk6IFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnksXG4gICAgYXBwQ29uZmlnOiBBYnN0cmFjdEFwcENvbmZpZyxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFjdGl2aXR5U2VydmljZTogQWN0aXZpdHlTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZVJlZmVyZW5jZVBpcGU6IENhc2VSZWZlcmVuY2VQaXBlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcGxhY2Vob2xkZXJTZXJ2aWNlOiBQbGFjZWhvbGRlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBicm93c2VyU2VydmljZTogQnJvd3NlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uU3RvcmFnZVNlcnZpY2U6IFNlc3Npb25TdG9yYWdlU2VydmljZVxuICApIHtcbiAgICB0aGlzLnNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnkgPSBzZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5O1xuICAgIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplID0gYXBwQ29uZmlnLmdldFBhZ2luYXRpb25QYWdlU2l6ZSgpO1xuICAgIHRoaXMuaGlkZVJvd3MgPSBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wcmVTZWxlY3RlZENhc2VzKSB7XG4gICAgICBmb3IgKGNvbnN0IHByZVNlbGVjdGVkQ2FzZSBvZiB0aGlzLnByZVNlbGVjdGVkQ2FzZXMpIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0ZWRDYXNlcyAmJiAhdGhpcy5zZWxlY3RlZENhc2VzLnNvbWUoYUNhc2UgPT4gYUNhc2UuY2FzZV9pZCA9PT0gcHJlU2VsZWN0ZWRDYXNlLmNhc2VfaWQpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2gocHJlU2VsZWN0ZWRDYXNlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlc3Npb25TdG9yYWdlU2VydmljZS5yZW1vdmVJdGVtKCdldmVudFVybCcpO1xuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG5cbiAgICBpZiAoY2hhbmdlc1sncmVzdWx0VmlldyddKSB7XG4gICAgICB0aGlzLmhpZGVSb3dzID0gZmFsc2U7XG5cbiAgICAgIHRoaXMuc29ydFBhcmFtZXRlcnMgPSB1bmRlZmluZWQ7XG4gICAgICAvLyBDbG9uZSBgcmVzdWx0Vmlld2AgdG8gcHJldmVudCBzb3J0aW5nIHRoZSBleHRlcm5hbCB2YXJpYWJsZVxuICAgICAgdGhpcy5yZXN1bHRWaWV3ID0ge1xuICAgICAgICBjb2x1bW5zOiB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucy5zbGljZSgwKSxcbiAgICAgICAgcmVzdWx0czogdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuc2xpY2UoMCksXG4gICAgICAgIGhhc0RyYWZ0czogdGhpcy5yZXN1bHRWaWV3Lmhhc0RyYWZ0c1xuICAgICAgfTtcblxuICAgICAgdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMgPSB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucy5zb3J0KChhOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uLCBiOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSA9PiB7XG4gICAgICAgIHJldHVybiBhLm9yZGVyIC0gYi5vcmRlcjtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmh5ZHJhdGVSZXN1bHRWaWV3KCk7XG4gICAgICB0aGlzLmRyYWZ0c0NvdW50ID0gdGhpcy5kcmFmdHNDb3VudCA/IHRoaXMuZHJhZnRzQ291bnQgOiB0aGlzLm51bWJlck9mRHJhZnRzKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydwYWdlJ10pIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQucGFnZSA9IChjaGFuZ2VzWydwYWdlJ10pLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IHJlc3VsdFRvdGFsKCk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLnBhZ2luYXRpb25NZXRhZGF0YS50b3RhbF9yZXN1bHRzX2NvdW50O1xuICAgIGNvbnN0IG1heGltdW1SZXN1bHRSZWFjaGVkID0gdG90YWwgPj0gdGhpcy5QQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVDtcbiAgICB0aGlzLnBhZ2luYXRpb25MaW1pdEVuZm9yY2VkID0gbWF4aW11bVJlc3VsdFJlYWNoZWQ7XG5cbiAgICByZXR1cm4gbWF4aW11bVJlc3VsdFJlYWNoZWQgPyB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUIDogdG90YWw7XG4gIH1cblxuICBwdWJsaWMgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZENhc2VzID0gW107XG4gICAgdGhpcy5zZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIGNhbkJlU2hhcmVkKGNhc2VWaWV3OiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBjYXNlVmlldy5zdXBwbGVtZW50YXJ5X2RhdGEgJiYgY2FzZVZpZXcuc3VwcGxlbWVudGFyeV9kYXRhLmhhc093blByb3BlcnR5KCdvcmdzX2Fzc2lnbmVkX3VzZXJzJyk7XG4gIH1cblxuICBwdWJsaWMgY2FuQW55QmVTaGFyZWQoKTogYm9vbGVhbiB7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzW2ldKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdEFsbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbGxPblBhZ2VTZWxlY3RlZCgpKSB7XG4gICAgICAvLyBhbGwgY2FzZXMgYWxyZWFkeSBzZWxlY3RlZCwgc28gdW5zZWxlY3QgYWxsIG9uIHRoaXMgcGFnZVxuICAgICAgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLmZvckVhY2goKHMsIGkpID0+IHtcbiAgICAgICAgICBpZiAoYy5jYXNlX2lkID09PSBzLmNhc2VfaWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5mb3JFYWNoKGMgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZChjKSAmJiB0aGlzLmNhbkJlU2hhcmVkKGMpKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnB1c2goYyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgY2hhbmdlU2VsZWN0aW9uKGM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNTZWxlY3RlZChjKSkge1xuICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLmZvckVhY2goKHMsIGkpID0+IHtcbiAgICAgICAgaWYgKGMuY2FzZV9pZCA9PT0gcy5jYXNlX2lkKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZENhc2VzLnNwbGljZShpLCAxKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKGMpKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5wdXNoKGMpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgaXNTZWxlY3RlZChjOiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSAwLCBsID0gdGhpcy5zZWxlY3RlZENhc2VzLmxlbmd0aDsgaSA8IGw7IGkrKykge1xuICAgICAgaWYgKGMuY2FzZV9pZCA9PT0gdGhpcy5zZWxlY3RlZENhc2VzW2ldLmNhc2VfaWQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBhbGxPblBhZ2VTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICBsZXQgY2FuQmVTaGFyZWRDb3VudCA9IDA7XG4gICAgZm9yIChsZXQgaSA9IDAsIGwgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGNvbnN0IHIgPSB0aGlzLnJlc3VsdFZpZXcucmVzdWx0c1tpXTtcbiAgICAgIGlmICh0aGlzLmNhbkJlU2hhcmVkKHIpKSB7XG4gICAgICAgIGNhbkJlU2hhcmVkQ291bnQgKys7XG4gICAgICB9XG4gICAgICBpZiAoIXRoaXMuaXNTZWxlY3RlZChyKSAmJiB0aGlzLmNhbkJlU2hhcmVkKHIpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNhbkJlU2hhcmVkQ291bnQgPT09IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHRydWU7XG4gIH1cblxuICAvKipcbiAgICogSHlkcmF0ZXMgcmVzdWx0IHZpZXcgd2l0aCBjYXNlIGZpZWxkIGRlZmluaXRpb25zLlxuICAgKi9cbiAgLy8gQSBsb25nZXIgdGVybSByZXNvbHV0aW9uIGlzIHRvIG1vdmUgdGhpcyBwaWVjZSBvZiBsb2dpYyB0byB0aGUgYmFja2VuZFxuICBwdWJsaWMgaHlkcmF0ZVJlc3VsdFZpZXcoKTogdm9pZCB7XG4gICAgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZm9yRWFjaChyZXN1bHQgPT4ge1xuICAgICAgY29uc3QgY2FzZUZpZWxkcyA9IFtdO1xuXG4gICAgICBPYmplY3Qua2V5cyhyZXN1bHQuY2FzZV9maWVsZHMpLmZvckVhY2goZmllbGRJZCA9PiB7XG5cbiAgICAgICAgY29uc3QgZmllbGQgPSByZXN1bHQuY2FzZV9maWVsZHNbZmllbGRJZF07XG5cbiAgICAgICAgY2FzZUZpZWxkcy5wdXNoKE9iamVjdC5hc3NpZ24obmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICAgICAgaWQ6IGZpZWxkSWQsXG4gICAgICAgICAgbGFiZWw6IG51bGwsXG4gICAgICAgICAgZmllbGRfdHlwZToge30sXG4gICAgICAgICAgdmFsdWU6IGZpZWxkLFxuICAgICAgICAgIGRpc3BsYXlfY29udGV4dDogbnVsbCxcbiAgICAgICAgfSkpO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkcyA9IGNhc2VGaWVsZHM7XG4gICAgICByZXN1bHQuY29sdW1ucyA9IHt9O1xuXG4gICAgICB0aGlzLnJlc3VsdFZpZXcuY29sdW1ucy5mb3JFYWNoKGNvbCA9PiB7XG4gICAgICAgIHJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXSA9IHRoaXMuYnVpbGRDYXNlRmllbGQoY29sLCByZXN1bHQpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyBnb1RvUGFnZShwYWdlKTogdm9pZCB7XG4gICAgdGhpcy5oaWRlUm93cyA9IHRydWU7XG4gICAgdGhpcy5zZWxlY3RlZC5pbml0ID0gZmFsc2U7XG4gICAgdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24gPSB0aGlzLmp1cmlzZGljdGlvbjtcbiAgICB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlID0gdGhpcy5jYXNlVHlwZTtcbiAgICB0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZSA9IHRoaXMuY2FzZVN0YXRlO1xuICAgIHRoaXMuc2VsZWN0ZWQuZm9ybUdyb3VwID0gdGhpcy5jYXNlRmlsdGVyRkc7XG4gICAgdGhpcy5zZWxlY3RlZC5tZXRhZGF0YUZpZWxkcyA9IHRoaXMubWV0YWRhdGFGaWVsZHM7XG4gICAgdGhpcy5zZWxlY3RlZC5wYWdlID0gcGFnZTtcbiAgICAvLyBBcHBseSBmaWx0ZXJzXG4gICAgY29uc3QgcXVlcnlQYXJhbXMgPSB7fTtcbiAgICBxdWVyeVBhcmFtc1tTZWFyY2hSZXN1bHRDb21wb25lbnQuUEFSQU1fSlVSSVNESUNUSU9OXSA9IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID8gdGhpcy5zZWxlY3RlZC5qdXJpc2RpY3Rpb24uaWQgOiBudWxsO1xuICAgIHF1ZXJ5UGFyYW1zW1NlYXJjaFJlc3VsdENvbXBvbmVudC5QQVJBTV9DQVNFX1RZUEVdID0gdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSA/IHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUuaWQgOiBudWxsO1xuICAgIHF1ZXJ5UGFyYW1zW1NlYXJjaFJlc3VsdENvbXBvbmVudC5QQVJBTV9DQVNFX1NUQVRFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlID8gdGhpcy5zZWxlY3RlZC5jYXNlU3RhdGUuaWQgOiBudWxsO1xuICAgIHRoaXMuY2hhbmdlUGFnZS5lbWl0KHtcbiAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkLFxuICAgICAgcXVlcnlQYXJhbXNcbiAgICB9KTtcblxuICAgIGNvbnN0IHRvcENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0b3AnKTtcbiAgICBpZiAodG9wQ29udGFpbmVyKSB7XG4gICAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgICAgfVxuICAgICAgdG9wQ29udGFpbmVyLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGJ1aWxkQ2FzZUZpZWxkKGNvbDogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbiwgcmVzdWx0OiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IENhc2VGaWVsZCB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24obmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICBpZDogY29sLmNhc2VfZmllbGRfaWQsXG4gICAgICBsYWJlbDogY29sLmxhYmVsLFxuICAgICAgZmllbGRfdHlwZTogY29sLmNhc2VfZmllbGRfdHlwZSxcbiAgICAgIHZhbHVlOiByZXN1bHQuY2FzZV9maWVsZHNbY29sLmNhc2VfZmllbGRfaWRdLFxuICAgICAgZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcjogY29sLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIsXG4gICAgICBkaXNwbGF5X2NvbnRleHQ6IGNvbC5kaXNwbGF5X2NvbnRleHQsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0Q29sdW1uc1dpdGhQcmVmaXgoY29sOiBDYXNlRmllbGQsIHJlc3VsdDogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiBDYXNlRmllbGQge1xuICAgIGNvbC52YWx1ZSA9IHRoaXMuZHJhZnRQcmVmaXhPckdldChjb2wsIHJlc3VsdCk7XG4gICAgY29sLnZhbHVlID0gdGhpcy5wbGFjZWhvbGRlclNlcnZpY2UucmVzb2x2ZVBsYWNlaG9sZGVycyhyZXN1bHQuY2FzZV9maWVsZHMsIGNvbC52YWx1ZSk7XG4gICAgcmV0dXJuIGNvbDtcbiAgfVxuXG4gIHB1YmxpYyBoYXNSZXN1bHRzKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aCAmJiB0aGlzLnBhZ2luYXRpb25NZXRhZGF0YS50b3RhbF9wYWdlc19jb3VudDtcbiAgfVxuXG4gIHB1YmxpYyBoYXNEcmFmdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0Vmlldy5oYXNEcmFmdHMoKTtcbiAgfVxuXG4gIHB1YmxpYyBjb21wYXJhdG9yKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvciB7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeS5jcmVhdGVTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3IoY29sdW1uKTtcbiAgfVxuXG4gIHB1YmxpYyBzb3J0KGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbikge1xuICAgIGlmICh0aGlzLmNvbnN1bWVyU29ydGluZ0VuYWJsZWQpIHtcbiAgICAgIGlmIChjb2x1bW4uY2FzZV9maWVsZF9pZCAhPT0gdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLmNvbHVtbikge1xuICAgICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPSBTb3J0T3JkZXIuREVTQ0VORElORztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9PT0gU29ydE9yZGVyLkRFU0NFTkRJTkcgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBTb3J0T3JkZXIuQVNDRU5ESU5HIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gICAgICB9XG4gICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uID0gY29sdW1uLmNhc2VfZmllbGRfaWQ7XG4gICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMudHlwZSA9IGNvbHVtbi5jYXNlX2ZpZWxkX3R5cGUudHlwZTtcbiAgICAgIHRoaXMuc29ydEhhbmRsZXIuZW1pdCh0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jb21wYXJhdG9yKGNvbHVtbikgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNTb3J0QXNjZW5kaW5nKGNvbHVtbikpIHtcbiAgICAgICAgdGhpcy5zb3J0UGFyYW1ldGVycyA9IG5ldyBTb3J0UGFyYW1ldGVycyh0aGlzLmNvbXBhcmF0b3IoY29sdW1uKSwgU29ydE9yZGVyLkFTQ0VORElORyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNvcnRQYXJhbWV0ZXJzID0gbmV3IFNvcnRQYXJhbWV0ZXJzKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pLCBTb3J0T3JkZXIuREVTQ0VORElORyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNvcnRXaWRnZXQoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKSB7XG4gICAgbGV0IGNvbmRpdGlvbiA9IGZhbHNlO1xuICAgIGlmICh0aGlzLmNvbnN1bWVyU29ydGluZ0VuYWJsZWQpIHtcbiAgICAgIGNvbnN0IGlzQ29sdW1uID0gY29sdW1uLmNhc2VfZmllbGRfaWQgPT09IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5jb2x1bW47XG4gICAgICBjb25zdCBpc0FzY2VuZGluZyA9IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5vcmRlciA9PT0gU29ydE9yZGVyLkFTQ0VORElORztcbiAgICAgIGNvbmRpdGlvbiA9ICFpc0NvbHVtbiB8fCAoaXNDb2x1bW4gJiYgaXNBc2NlbmRpbmcpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25kaXRpb24gPSB0aGlzLmlzU29ydEFzY2VuZGluZyhjb2x1bW4pO1xuICAgIH1cblxuICAgIHJldHVybiBjb25kaXRpb24gPyAnJiM5NjYwOycgOiAnJiM5NjUwOyc7XG4gIH1cblxuICBwdWJsaWMgYWN0aXZpdHlFbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmFjdGl2aXR5U2VydmljZS5pc0VuYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgaHlwaGVuYXRlSWZDYXNlUmVmZXJlbmNlT3JHZXQoY29sLCByZXN1bHQpOiBhbnkge1xuICAgIGlmIChjb2wuY2FzZV9maWVsZF9pZCA9PT0gJ1tDQVNFX1JFRkVSRU5DRV0nKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYXNlUmVmZXJlbmNlUGlwZS50cmFuc2Zvcm0ocmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChjb2wuaWQpIHtcbiAgICAgICAgaWYgKGNvbC5pZCA9PT0gJ1tDQVNFX1JFRkVSRU5DRV0nKSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuY2FzZVJlZmVyZW5jZVBpcGUudHJhbnNmb3JtKHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuaWRdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5pZF07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByZXN1bHQuY2FzZV9maWVsZHNbY29sLmNhc2VfZmllbGRfaWRdO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBkcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTogYW55IHtcbiAgICByZXR1cm4gcmVzdWx0LmNhc2VfaWQuc3RhcnRzV2l0aChEUkFGVF9QUkVGSVgpID8gRFJBRlRfUFJFRklYIDogdGhpcy5oeXBoZW5hdGVJZkNhc2VSZWZlcmVuY2VPckdldChjb2wsIHJlc3VsdCk7XG4gIH1cblxuICBwdWJsaWMgaXNTb3J0QXNjZW5kaW5nKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGN1cnJlbnRTb3J0T3JkZXIgPSB0aGlzLmN1cnJlbnRTb3J0T3JkZXIoY29sdW1uKTtcblxuICAgIHJldHVybiBjdXJyZW50U29ydE9yZGVyID09PSBTb3J0T3JkZXIuVU5TT1JURUQgfHwgY3VycmVudFNvcnRPcmRlciA9PT0gU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gIH1cblxuICBwcml2YXRlIGN1cnJlbnRTb3J0T3JkZXIoY29sdW1uOiBTZWFyY2hSZXN1bHRWaWV3Q29sdW1uKTogU29ydE9yZGVyIHtcblxuICAgIGxldCBpc0FzY2VuZGluZyA9IHRydWU7XG4gICAgbGV0IGlzRGVzY2VuZGluZyA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5jb21wYXJhdG9yKGNvbHVtbikgPT09IHVuZGVmaW5lZCkge1xuICAgICAgcmV0dXJuIFNvcnRPcmRlci5VTlNPUlRFRDtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgIGNvbnN0IGNvbXBhcmlzb24gPSB0aGlzLmNvbXBhcmF0b3IoY29sdW1uKS5jb21wYXJlKHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzW2ldLCB0aGlzLnJlc3VsdFZpZXcucmVzdWx0c1tpICsgMV0pO1xuICAgICAgaXNEZXNjZW5kaW5nID0gaXNEZXNjZW5kaW5nICYmIGNvbXBhcmlzb24gPD0gMDtcbiAgICAgIGlzQXNjZW5kaW5nID0gaXNBc2NlbmRpbmcgJiYgY29tcGFyaXNvbiA+PSAwO1xuICAgICAgaWYgKCFpc0FzY2VuZGluZyAmJiAhaXNEZXNjZW5kaW5nKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gaXNBc2NlbmRpbmcgPyBTb3J0T3JkZXIuQVNDRU5ESU5HIDogaXNEZXNjZW5kaW5nID8gU29ydE9yZGVyLkRFU0NFTkRJTkcgOiBTb3J0T3JkZXIuVU5TT1JURUQ7XG4gIH1cblxuICBwdWJsaWMgZ2V0Rmlyc3RSZXN1bHQoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZSA9ICh0aGlzLnNlbGVjdGVkLnBhZ2UgPyB0aGlzLnNlbGVjdGVkLnBhZ2UgOiAxKTtcbiAgICByZXR1cm4gKChjdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdpbmF0aW9uUGFnZVNpemUpICsgMSArIHRoaXMuZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldExhc3RSZXN1bHQoKTogbnVtYmVyIHtcbiAgICBjb25zdCBjdXJyZW50UGFnZSA9ICh0aGlzLnNlbGVjdGVkLnBhZ2UgPyB0aGlzLnNlbGVjdGVkLnBhZ2UgOiAxKTtcbiAgICByZXR1cm4gKChjdXJyZW50UGFnZSAtIDEpICogdGhpcy5wYWdpbmF0aW9uUGFnZVNpemUpICsgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMubGVuZ3RoICsgdGhpcy5nZXREcmFmdHNDb3VudElmTm90UGFnZU9uZShjdXJyZW50UGFnZSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VG90YWxSZXN1bHRzKCk6IG51bWJlciB7XG4gICAgY29uc3QgdG90YWwgPSB0aGlzLnBhZ2luYXRpb25NZXRhZGF0YS50b3RhbF9yZXN1bHRzX2NvdW50ICsgdGhpcy5kcmFmdHNDb3VudDtcblxuICAgIHJldHVybiB0b3RhbCA+PSB0aGlzLlBBR0lOQVRJT05fTUFYX0lURU1fUkVTVUxUID8gdGhpcy5QQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVCA6IHRvdGFsO1xuICB9XG5cbiAgcHVibGljIHByZXBhcmVDYXNlTGlua1VybChjYXNlSWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgbGV0IHVybCA9IHRoaXMuY2FzZUxpbmtVcmxUZW1wbGF0ZTtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgnanVyaXNkaWN0aW9uX2lkJywgdGhpcy5qdXJpc2RpY3Rpb24uaWQpO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKCdjYXNlVHlwZV9pZCcsIHRoaXMuY2FzZVR5cGUuaWQpO1xuICAgIHVybCA9IHVybC5yZXBsYWNlKCdjYXNlX2lkJywgY2FzZUlkKTtcblxuICAgIHJldHVybiB1cmw7XG4gIH1cblxuICBwcml2YXRlIGdldERyYWZ0c0NvdW50SWZOb3RQYWdlT25lKGN1cnJlbnRQYWdlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gY3VycmVudFBhZ2UgPiAxID8gdGhpcy5kcmFmdHNDb3VudCA6IDA7XG4gIH1cblxuICBwcml2YXRlIG51bWJlck9mRHJhZnRzKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmZpbHRlcihfID0+IF8uY2FzZV9pZC5zdGFydHNXaXRoKERSQUZUX1BSRUZJWCkpLmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBnb1RvQ2FzZShjYXNlSWQ6IHN0cmluZykge1xuICAgIHRoaXMuY2xpY2tDYXNlLmVtaXQoe1xuICAgICAgY2FzZUlkXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25LZXlVcCgkZXZlbnQ6IEtleWJvYXJkRXZlbnQsIGM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogdm9pZCB7XG4gICAgaWYgKCRldmVudC5rZXkgPT09ICdTcGFjZScpIHtcbiAgICAgIGlmICh0aGlzLmJyb3dzZXJTZXJ2aWNlLmlzRmlyZWZveCB8fCB0aGlzLmJyb3dzZXJTZXJ2aWNlLmlzU2FmYXJpIHx8IHRoaXMuYnJvd3NlclNlcnZpY2UuaXNJRU9yRWRnZSkge1xuICAgICAgICB0aGlzLmNoYW5nZVNlbGVjdGlvbihjKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjx0YWJsZSAqbmdJZj1cImhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKVwiPlxuICA8Y2FwdGlvbj5cbiAgICA8aDIgY2xhc3M9XCJoZWFkaW5nLWgyXCIgaWQ9XCJzZWFyY2gtcmVzdWx0LWhlYWRpbmdfX3RleHRcIiB0YWJpbmRleD1cIi0xXCI+e3sgY2FzZVN0YXRlID8gJ1lvdXIgY2FzZXMnIDogJ1NlYXJjaCByZXN1bHQnIH19PC9oMj5cblxuICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHQgcGFnaW5hdGlvbi1saW1pdC13YXJuaW5nXCIgKm5nSWY9XCJwYWdpbmF0aW9uTGltaXRFbmZvcmNlZFwiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2ljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj4hPC9zcGFuPlxuICAgICAgPHN0cm9uZyBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fdGV4dFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLXdhcm5pbmctdGV4dF9fYXNzaXN0aXZlXCI+V2FybmluZzwvc3Bhbj5cbiAgICAgICAgVGhlIHRvdGFsIHNpemUgb2YgdGhlIHJlc3VsdCBzZXQgaXMge3twYWdpbmF0aW9uTWV0YWRhdGEudG90YWxfcmVzdWx0c19jb3VudCB8IG51bWJlcn19LiBPbmx5IHRoZSBmaXJzdCAxMCwwMDAgcmVjb3JkcyBhcmUgYXZhaWxhYmxlIGZvciBkaXNwbGF5LlxuICAgICAgPC9zdHJvbmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwiKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSlcIiBjbGFzcz1cInBhZ2luYXRpb24tdG9wXCJcbiAgICAgIGF0dHIuYXJpYS1sYWJlbD1cInt7IGdldFRvdGFsUmVzdWx0cygpIH19IHJlc3VsdHMgaGF2ZSBiZWVuIGZvdW5kXCIgcm9sZT1cInN0YXR1c1wiPlxuICAgICAgPHNwYW4gY2xhc3M9XCJ0ZXh0LTE2XCIgaWQ9XCJzZWFyY2gtcmVzdWx0LXN1bW1hcnlfX3RleHRcIj5TaG93aW5nIFxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IGdldEZpcnN0UmVzdWx0KCkgfX08L3NwYW4+XG4gICAgICAgIHRvXG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstIS1mb250LXdlaWdodC1ib2xkXCI+e3sgZ2V0TGFzdFJlc3VsdCgpIH19PC9zcGFuPlxuICAgICAgICBvZlxuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IGdldFRvdGFsUmVzdWx0cygpIH19PC9zcGFuPiByZXN1bHRzPC9zcGFuPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCIoaGFzUmVzdWx0cygpIHx8IGhhc0RyYWZ0cygpKSAmJiBzZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJyZXNldC1zZWxlY3Rpb25cIlxuICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiUmVzZXQgc2VsZWN0aW9uXCI+XG4gICAgICA8c3Bhbj48YSBjbGFzcz1cInNlYXJjaC1yZXN1bHQtcmVzZXQtbGlua1wiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiAoY2xpY2spPVwiY2xlYXJTZWxlY3Rpb24oKVwiPlJlc2V0IGNhc2Ugc2VsZWN0aW9uPC9hPjwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9jYXB0aW9uPlxuICA8dGhlYWQ+XG4gICAgPHRyIHNjb3BlPVwicm93XCI+XG4gICAgICA8dGggKm5nSWY9XCJzZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2hlY2tib3hcIiBzY29wZT1cImNvbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJzZWxlY3QtYWxsXCIgbmFtZT1cInNlbGVjdC1hbGxcIiB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cInNlbGVjdEFsbCgpXCIgW2NoZWNrZWRdPVwiYWxsT25QYWdlU2VsZWN0ZWQoKVwiIFtkaXNhYmxlZF09XCIhY2FuQW55QmVTaGFyZWQoKVwiIC8+XG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIiBmb3I9XCJzZWxlY3QtYWxsXCI+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L3RoPlxuICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgcmVzdWx0Vmlldy5jb2x1bW5zXCI+XG4gICAgICAgIDx0YWJsZSBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29sdW1uLWhlYWRlclwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInU29ydCBieSAnICsgY29sLmxhYmVsICsgJyAnICsgaXNTb3J0QXNjZW5kaW5nKGNvbCk/ICdhc2NlbmRpbmcnIDogJ2Rlc2NlbmRpbmcnXCI+XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgPHRoPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4tbGFiZWxcIiAoY2xpY2spPVwic29ydChjb2wpXCI+e3tjb2wubGFiZWx9fTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29tcGFyYXRvcihjb2wpXCIgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1zb3J0XCI+XG4gICAgICAgICAgICAgICAgPGEgKGNsaWNrKT1cInNvcnQoY29sKVwiIGNsYXNzPVwic29ydC13aWRnZXRcIiBbaW5uZXJIVE1MXT1cInNvcnRXaWRnZXQoY29sKVwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIj48L2E+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICA8L3RyPlxuICAgICAgICA8L3RhYmxlPlxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdJZj1cImFjdGl2aXR5RW5hYmxlZCgpXCIgc3R5bGU9XCJ3aWR0aDogMTEwcHg7XCI+PC90aD5cbiAgICA8L3RyPlxuICA8L3RoZWFkPlxuICA8dGJvZHk+XG5cbiAgICA8IS0tIHNvcnRlZCBieSBjb25zdW1lciAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29uc3VtZXJTb3J0aW5nRW5hYmxlZFwiPlxuICAgICAgPHRyICpuZ0Zvcj1cImxldCByZXN1bHQgb2YgcmVzdWx0Vmlldy5yZXN1bHRzIHwgcGFnaW5hdGU6IHsgaXRlbXNQZXJQYWdlOiBwYWdpbmF0aW9uUGFnZVNpemUsIGN1cnJlbnRQYWdlOiBzZWxlY3RlZC5wYWdlLCB0b3RhbEl0ZW1zOiByZXN1bHRUb3RhbCB9XCI+XG4gICAgICAgIDx0ZCAqbmdJZj1cInNlbGVjdGlvbkVuYWJsZWRcIiBjbGFzcz1cImdvdnVrLXRhYmxlX19jaGVja2JveFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2lucHV0XCIgaWQ9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIiBuYW1lPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCJcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgKGNoYW5nZSk9XCJjaGFuZ2VTZWxlY3Rpb24ocmVzdWx0KVwiIFtjaGVja2VkXT1cImlzU2VsZWN0ZWQocmVzdWx0KVwiIFtkaXNhYmxlZF09XCIhY2FuQmVTaGFyZWQocmVzdWx0KVwiIC8+XG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJnb3Z1ay1sYWJlbCBnb3Z1ay1jaGVja2JveGVzX19sYWJlbFwiIGZvcj1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiPlxuICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkIGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4tY2VsbFwiICpuZ0Zvcj1cImxldCBjb2wgb2YgcmVzdWx0Vmlldy5jb2x1bW5zOyBsZXQgY29sSW5kZXggPSBpbmRleFwiIHNjb3BlPVwicm93XCI+XG4gICAgICAgICAgPGEgKm5nSWY9XCJjb2xJbmRleCA9PSAwXCIgW3JvdXRlckxpbmtdPVwicHJlcGFyZUNhc2VMaW5rVXJsKHJlc3VsdC5jYXNlX2lkKVwiXG4gICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJnbyB0byBjYXNlIHdpdGggQ2FzZSByZWZlcmVuY2U6e3sgcmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlIH19XCIgY2xhc3M9XCJnb3Z1ay1saW5rXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwidGV4dC0xNlwiICpuZ0lmPVwiIWhpZGVSb3dzXCI+XG4gICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCAqbmdJZj1cImRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpOyBlbHNlIGNhc2VfcmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJnZXRDb2x1bW5zV2l0aFByZWZpeChyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0sIHJlc3VsdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nhc2VfcmVmZXJlbmNlPnt7cmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2xJbmRleCAhPSAwXCIgY2xhc3M9XCJ0ZXh0LTE2XCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIGNjZExhYmVsU3Vic3RpdHV0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cInJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIj5cbiAgICAgICAgICA8ZGl2IFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtYWN0aXZpdHkgW2Nhc2VJZF09XCJyZXN1bHQuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJJQ09OXCI+PC9jY2QtYWN0aXZpdHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwhLS0gc29ydGVkIGJ5IHRvb2xraXQgLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb25zdW1lclNvcnRpbmdFbmFibGVkXCI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiByZXN1bHRWaWV3LnJlc3VsdHMgfCBjY2RTb3J0U2VhcmNoUmVzdWx0IDogc29ydFBhcmFtZXRlcnMgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2luYXRpb25QYWdlU2l6ZSwgY3VycmVudFBhZ2U6IHNlbGVjdGVkLnBhZ2UsIHRvdGFsSXRlbXM6IHJlc3VsdFRvdGFsIH1cIj5cbiAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIG5hbWU9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cImNoYW5nZVNlbGVjdGlvbihyZXN1bHQpXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChyZXN1bHQpXCIgW2Rpc2FibGVkXT1cIiFjYW5CZVNoYXJlZChyZXN1bHQpXCIgKGtleXVwKT1cIm9uS2V5VXAoJGV2ZW50LCByZXN1bHQpXCIgLz5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1jZWxsXCIgKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnM7IGxldCBjb2xJbmRleCA9IGluZGV4XCIgc2NvcGU9XCJyb3dcIj5cblxuICAgICAgICAgIDxhICpuZ0lmPVwiY29sSW5kZXggPT0gMFwiIFtyb3V0ZXJMaW5rXT1cInByZXBhcmVDYXNlTGlua1VybChyZXN1bHQuY2FzZV9pZClcIlxuICAgICAgICAgICAgYXR0ci5hcmlhLWxhYmVsPVwiZ28gdG8gY2FzZSB3aXRoIENhc2UgcmVmZXJlbmNlOnt7IHJlc3VsdC5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZSB9fVwiIGNsYXNzPVwiZ292dWstbGlua1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBjbGFzcz1cInRleHQtMTZcIiAqbmdJZj1cIiFoaWRlUm93c1wiPlxuICAgICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgKm5nSWY9XCJkcmFmdFByZWZpeE9yR2V0KGNvbCwgcmVzdWx0KTsgZWxzZSBjYXNlX3JlZmVyZW5jZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjY2RMYWJlbFN1YnN0aXR1dG9yIFtjYXNlRmllbGRdPVwiZ2V0Q29sdW1uc1dpdGhQcmVmaXgocmVzdWx0LmNvbHVtbnNbY29sLmNhc2VfZmllbGRfaWRdLCByZXN1bHQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RmllbGRzXT1cInJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNjYXNlX3JlZmVyZW5jZT57e3Jlc3VsdC5jYXNlX2lkIHwgY2NkQ2FzZVJlZmVyZW5jZX19PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvYT5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29sSW5kZXggIT0gMFwiIGNsYXNzPVwidGV4dC0xNlwiIFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCBjY2RMYWJlbFN1YnN0aXR1dG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Nhc2VGaWVsZF09XCJyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjb250ZXh0RmllbGRzXT1cInJlc3VsdC5oeWRyYXRlZF9jYXNlX2ZpZWxkc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRzVG9TdWJzdGl0dXRlXT1cIlsndmFsdWUnXVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCAqbmdJZj1cImFjdGl2aXR5RW5hYmxlZCgpXCI+XG4gICAgICAgICAgPGRpdiBbc3R5bGUudmlzaWJpbGl0eV09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+XG4gICAgICAgICAgICA8Y2NkLWFjdGl2aXR5IFtjYXNlSWRdPVwicmVzdWx0LmNhc2VfaWRcIiBbZGlzcGxheU1vZGVdPVwiSUNPTlwiPjwvY2NkLWFjdGl2aXR5PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgPC90cj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICA8L3Rib2R5PlxuPC90YWJsZT5cblxuPGNjZC1wYWdpbmF0aW9uXG4gICpuZ0lmPVwiaGFzUmVzdWx0cygpXCJcbiAgKHBhZ2VDaGFuZ2UpPVwiZ29Ub1BhZ2UoJGV2ZW50KVwiXG4gIFt2aXNpYmlsaXR5TGFiZWxdPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiXG4gIFthdXRvSGlkZV09XCJ0cnVlXCJcbiAgW21heFNpemVdPVwiOFwiXG4gIFtzY3JlZW5SZWFkZXJQYWdpbmF0aW9uTGFiZWxdPVwiJ1BhZ2luYXRpb24nXCJcbiAgW3NjcmVlblJlYWRlclBhZ2VMYWJlbF09XCJwYWdlXCJcbiAgW3NjcmVlblJlYWRlckN1cnJlbnRMYWJlbF09XCInWW91XFwncmUgb24gcGFnZSdcIj48L2NjZC1wYWdpbmF0aW9uPlxuXG48ZGl2ICpuZ0lmPVwiIShoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKCkpXCIgY2xhc3M9XCJub3RpZmljYXRpb25cIlxuICBhcmlhLWxhYmVsPVwiTm8gY2FzZXMgZm91bmQuIFRyeSB1c2luZyBkaWZmZXJlbnQgZmlsdGVycy5cIj5cbiAgTm8gY2FzZXMgZm91bmQuIFRyeSB1c2luZyBkaWZmZXJlbnQgZmlsdGVycy5cbjwvZGl2PlxuIl19
|
|
817
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLXJlc3VsdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvc2VhcmNoLXJlc3VsdC9zZWFyY2gtcmVzdWx0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9zZWFyY2gtcmVzdWx0L3NlYXJjaC1yZXN1bHQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUNsRCxZQUFZLEVBQUUsWUFBWSxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUNWLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLHFDQUFxQyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7SUNKM0gsK0JBQXlGO0lBQ3ZGLGdDQUEwRDtJQUFBLGlCQUFDO0lBQUEsaUJBQU87SUFDbEUsa0NBQXlDO0lBQ3ZDLGdDQUE0QztJQUFBLHVCQUFPO0lBQUEsaUJB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QUs7WUFJQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFJQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFJQyxnQkFBZ0I7a0JBRHRCLEtBQUs7WUFJQyxzQkFBc0I7a0JBRDVCLEtBQUs7WUFJQyxTQUFTO2tCQURmLE1BQU07WUFJQSxVQUFVO2tCQURoQixNQUFNO1lBSUEsU0FBUztrQkFEZixNQUFNO1lBSUEsV0FBVztrQkFEakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IFBsYWNlaG9sZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkLCBDYXNlU3RhdGUsIENhc2VUeXBlLCBEaXNwbGF5TW9kZSxcbiAgRFJBRlRfUFJFRklYLCBKdXJpc2RpY3Rpb24sIFBhZ2luYXRpb25NZXRhZGF0YSwgU2VhcmNoUmVzdWx0VmlldywgU2VhcmNoUmVzdWx0Vmlld0NvbHVtbixcbiAgU2VhcmNoUmVzdWx0Vmlld0l0ZW0sIFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvciwgU29ydE9yZGVyLCBTb3J0UGFyYW1ldGVycyB9IGZyb20gJy4uLy4uL2RvbWFpbic7XG5pbXBvcnQgeyBDYXNlUmVmZXJlbmNlUGlwZSB9IGZyb20gJy4uLy4uL3BpcGVzJztcbmltcG9ydCB7IEFjdGl2aXR5U2VydmljZSwgQnJvd3NlclNlcnZpY2UsIFNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnksIFNlc3Npb25TdG9yYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2NkLXNlYXJjaC1yZXN1bHQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLXJlc3VsdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3NlYXJjaC1yZXN1bHQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hSZXN1bHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCB7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9KVVJJU0RJQ1RJT04gPSAnanVyaXNkaWN0aW9uJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9DQVNFX1RZUEUgPSAnY2FzZS10eXBlJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBQQVJBTV9DQVNFX1NUQVRFID0gJ2Nhc2Utc3RhdGUnO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgPSAxMDAwMDtcblxuICBwdWJsaWMgSUNPTiA9IERpc3BsYXlNb2RlLklDT047XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VMaW5rVXJsVGVtcGxhdGU6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBwdWJsaWMganVyaXNkaWN0aW9uOiBKdXJpc2RpY3Rpb247XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VUeXBlOiBDYXNlVHlwZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZVN0YXRlOiBDYXNlU3RhdGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWx0ZXJGRzogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyByZXN1bHRWaWV3OiBTZWFyY2hSZXN1bHRWaWV3O1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYWdlOiBudW1iZXI7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHBhZ2luYXRpb25NZXRhZGF0YTogUGFnaW5hdGlvbk1ldGFkYXRhO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtZXRhZGF0YUZpZWxkczogc3RyaW5nW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGlvbkVuYWJsZWQgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2hvd09ubHlTZWxlY3RlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwcmVTZWxlY3RlZENhc2VzOiBTZWFyY2hSZXN1bHRWaWV3SXRlbVtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGNvbnN1bWVyU29ydGluZ0VuYWJsZWQgPSBmYWxzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8U2VhcmNoUmVzdWx0Vmlld0l0ZW1bXT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNoYW5nZVBhZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgY2xpY2tDYXNlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNvcnRIYW5kbGVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwdWJsaWMgcGFnaW5hdGlvbkxpbWl0RW5mb3JjZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgcGFnaW5hdGlvblBhZ2VTaXplOiBudW1iZXI7XG5cbiAgcHVibGljIGhpZGVSb3dzOiBib29sZWFuO1xuXG4gIHB1YmxpYyBzZWxlY3RlZDoge1xuICAgIGluaXQ/OiBib29sZWFuLFxuICAgIGp1cmlzZGljdGlvbj86IEp1cmlzZGljdGlvbixcbiAgICBjYXNlVHlwZT86IENhc2VUeXBlLFxuICAgIGNhc2VTdGF0ZT86IENhc2VTdGF0ZSxcbiAgICBmb3JtR3JvdXA/OiBGb3JtR3JvdXAsXG4gICAgbWV0YWRhdGFGaWVsZHM/OiBzdHJpbmdbXSxcbiAgICBwYWdlPzogbnVtYmVyXG4gIH0gPSB7fTtcblxuICBwdWJsaWMgc29ydFBhcmFtZXRlcnM6IFNvcnRQYXJhbWV0ZXJzO1xuICBwdWJsaWMgc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTogU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTtcbiAgcHVibGljIGRyYWZ0c0NvdW50OiBudW1iZXI7XG5cbiAgcHVibGljIGNvbnN1bWVyU29ydFBhcmFtZXRlcnM6IHsgY29sdW1uOiBzdHJpbmcsIG9yZGVyOiBTb3J0T3JkZXIsIHR5cGU6IHN0cmluZyB9ID0geyBjb2x1bW46IG51bGwsIG9yZGVyOiBudWxsLCB0eXBlOiBudWxsIH07XG5cbiAgcHVibGljIHNlbGVjdGVkQ2FzZXM6IFNlYXJjaFJlc3VsdFZpZXdJdGVtW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5OiBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5LFxuICAgIGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBhY3Rpdml0eVNlcnZpY2U6IEFjdGl2aXR5U2VydmljZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhc2VSZWZlcmVuY2VQaXBlOiBDYXNlUmVmZXJlbmNlUGlwZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsYWNlaG9sZGVyU2VydmljZTogUGxhY2Vob2xkZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYnJvd3NlclNlcnZpY2U6IEJyb3dzZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgc2Vzc2lvblN0b3JhZ2VTZXJ2aWNlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5zZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3JGYWN0b3J5ID0gc2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yRmFjdG9yeTtcbiAgICB0aGlzLnBhZ2luYXRpb25QYWdlU2l6ZSA9IGFwcENvbmZpZy5nZXRQYWdpbmF0aW9uUGFnZVNpemUoKTtcbiAgICB0aGlzLmhpZGVSb3dzID0gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucHJlU2VsZWN0ZWRDYXNlcykge1xuICAgICAgZm9yIChjb25zdCBwcmVTZWxlY3RlZENhc2Ugb2YgdGhpcy5wcmVTZWxlY3RlZENhc2VzKSB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkQ2FzZXMgJiYgIXRoaXMuc2VsZWN0ZWRDYXNlcy5zb21lKGFDYXNlID0+IGFDYXNlLmNhc2VfaWQgPT09IHByZVNlbGVjdGVkQ2FzZS5jYXNlX2lkKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5wdXNoKHByZVNlbGVjdGVkQ2FzZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZXNzaW9uU3RvcmFnZVNlcnZpY2UucmVtb3ZlSXRlbSgnZXZlbnRVcmwnKTtcbiAgICB0aGlzLnNlbGVjdGlvbi5lbWl0KHRoaXMuc2VsZWN0ZWRDYXNlcyk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXG4gICAgaWYgKGNoYW5nZXNbJ3Jlc3VsdFZpZXcnXSkge1xuICAgICAgdGhpcy5oaWRlUm93cyA9IGZhbHNlO1xuXG4gICAgICB0aGlzLnNvcnRQYXJhbWV0ZXJzID0gdW5kZWZpbmVkO1xuICAgICAgLy8gQ2xvbmUgYHJlc3VsdFZpZXdgIHRvIHByZXZlbnQgc29ydGluZyB0aGUgZXh0ZXJuYWwgdmFyaWFibGVcbiAgICAgIHRoaXMucmVzdWx0VmlldyA9IHtcbiAgICAgICAgY29sdW1uczogdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMuc2xpY2UoMCksXG4gICAgICAgIHJlc3VsdHM6IHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLnNsaWNlKDApLFxuICAgICAgICBoYXNEcmFmdHM6IHRoaXMucmVzdWx0Vmlldy5oYXNEcmFmdHNcbiAgICAgIH07XG5cbiAgICAgIHRoaXMucmVzdWx0Vmlldy5jb2x1bW5zID0gdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMuc29ydCgoYTogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbiwgYjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbikgPT4ge1xuICAgICAgICByZXR1cm4gYS5vcmRlciAtIGIub3JkZXI7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5oeWRyYXRlUmVzdWx0VmlldygpO1xuICAgICAgdGhpcy5kcmFmdHNDb3VudCA9IHRoaXMuZHJhZnRzQ291bnQgPyB0aGlzLmRyYWZ0c0NvdW50IDogdGhpcy5udW1iZXJPZkRyYWZ0cygpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlc1sncGFnZSddKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkLnBhZ2UgPSAoY2hhbmdlc1sncGFnZSddKS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCByZXN1bHRUb3RhbCgpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxfcmVzdWx0c19jb3VudDtcbiAgICBjb25zdCBtYXhpbXVtUmVzdWx0UmVhY2hlZCA9IHRvdGFsID49IHRoaXMuUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQ7XG4gICAgdGhpcy5wYWdpbmF0aW9uTGltaXRFbmZvcmNlZCA9IG1heGltdW1SZXN1bHRSZWFjaGVkO1xuXG4gICAgcmV0dXJuIG1heGltdW1SZXN1bHRSZWFjaGVkID8gdGhpcy5QQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVCA6IHRvdGFsO1xuICB9XG5cbiAgcHVibGljIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRDYXNlcyA9IFtdO1xuICAgIHRoaXMuc2VsZWN0aW9uLmVtaXQodGhpcy5zZWxlY3RlZENhc2VzKTtcbiAgfVxuXG4gIHB1YmxpYyBjYW5CZVNoYXJlZChjYXNlVmlldzogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gY2FzZVZpZXcuc3VwcGxlbWVudGFyeV9kYXRhICYmIGNhc2VWaWV3LnN1cHBsZW1lbnRhcnlfZGF0YS5oYXNPd25Qcm9wZXJ0eSgnb3Jnc19hc3NpZ25lZF91c2VycycpO1xuICB9XG5cbiAgcHVibGljIGNhbkFueUJlU2hhcmVkKCk6IGJvb2xlYW4ge1xuICAgIGZvciAobGV0IGkgPSAwLCBsID0gdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBpZiAodGhpcy5jYW5CZVNoYXJlZCh0aGlzLnJlc3VsdFZpZXcucmVzdWx0c1tpXSkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RBbGwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWxsT25QYWdlU2VsZWN0ZWQoKSkge1xuICAgICAgLy8gYWxsIGNhc2VzIGFscmVhZHkgc2VsZWN0ZWQsIHNvIHVuc2VsZWN0IGFsbCBvbiB0aGlzIHBhZ2VcbiAgICAgIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmZvckVhY2goYyA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5mb3JFYWNoKChzLCBpKSA9PiB7XG4gICAgICAgICAgaWYgKGMuY2FzZV9pZCA9PT0gcy5jYXNlX2lkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMuc3BsaWNlKGksIDEpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMuZm9yRWFjaChjID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLmlzU2VsZWN0ZWQoYykgJiYgdGhpcy5jYW5CZVNoYXJlZChjKSkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5wdXNoKGMpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIGNoYW5nZVNlbGVjdGlvbihjOiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlzU2VsZWN0ZWQoYykpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5mb3JFYWNoKChzLCBpKSA9PiB7XG4gICAgICAgIGlmIChjLmNhc2VfaWQgPT09IHMuY2FzZV9pZCkge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXNlcy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jYW5CZVNoYXJlZChjKSkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkQ2FzZXMucHVzaChjKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5zZWxlY3Rpb24uZW1pdCh0aGlzLnNlbGVjdGVkQ2FzZXMpO1xuICB9XG5cbiAgcHVibGljIGlzU2VsZWN0ZWQoYzogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiBib29sZWFuIHtcbiAgICBmb3IgKGxldCBpID0gMCwgbCA9IHRoaXMuc2VsZWN0ZWRDYXNlcy5sZW5ndGg7IGkgPCBsOyBpKyspIHtcbiAgICAgIGlmIChjLmNhc2VfaWQgPT09IHRoaXMuc2VsZWN0ZWRDYXNlc1tpXS5jYXNlX2lkKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBwdWJsaWMgYWxsT25QYWdlU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgbGV0IGNhbkJlU2hhcmVkQ291bnQgPSAwO1xuICAgIGZvciAobGV0IGkgPSAwLCBsID0gdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMubGVuZ3RoOyBpIDwgbDsgaSsrKSB7XG4gICAgICBjb25zdCByID0gdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHNbaV07XG4gICAgICBpZiAodGhpcy5jYW5CZVNoYXJlZChyKSkge1xuICAgICAgICBjYW5CZVNoYXJlZENvdW50ICsrO1xuICAgICAgfVxuICAgICAgaWYgKCF0aGlzLmlzU2VsZWN0ZWQocikgJiYgdGhpcy5jYW5CZVNoYXJlZChyKSkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjYW5CZVNoYXJlZENvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEh5ZHJhdGVzIHJlc3VsdCB2aWV3IHdpdGggY2FzZSBmaWVsZCBkZWZpbml0aW9ucy5cbiAgICovXG4gIC8vIEEgbG9uZ2VyIHRlcm0gcmVzb2x1dGlvbiBpcyB0byBtb3ZlIHRoaXMgcGllY2Ugb2YgbG9naWMgdG8gdGhlIGJhY2tlbmRcbiAgcHVibGljIGh5ZHJhdGVSZXN1bHRWaWV3KCk6IHZvaWQge1xuICAgIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmZvckVhY2gocmVzdWx0ID0+IHtcbiAgICAgIGNvbnN0IGNhc2VGaWVsZHMgPSBbXTtcblxuICAgICAgT2JqZWN0LmtleXMocmVzdWx0LmNhc2VfZmllbGRzKS5mb3JFYWNoKGZpZWxkSWQgPT4ge1xuXG4gICAgICAgIGNvbnN0IGZpZWxkID0gcmVzdWx0LmNhc2VfZmllbGRzW2ZpZWxkSWRdO1xuXG4gICAgICAgIGNhc2VGaWVsZHMucHVzaChPYmplY3QuYXNzaWduKG5ldyBDYXNlRmllbGQoKSwge1xuICAgICAgICAgIGlkOiBmaWVsZElkLFxuICAgICAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgICAgIGZpZWxkX3R5cGU6IHt9LFxuICAgICAgICAgIHZhbHVlOiBmaWVsZCxcbiAgICAgICAgICBkaXNwbGF5X2NvbnRleHQ6IG51bGwsXG4gICAgICAgIH0pKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXN1bHQuaHlkcmF0ZWRfY2FzZV9maWVsZHMgPSBjYXNlRmllbGRzO1xuICAgICAgcmVzdWx0LmNvbHVtbnMgPSB7fTtcblxuICAgICAgdGhpcy5yZXN1bHRWaWV3LmNvbHVtbnMuZm9yRWFjaChjb2wgPT4ge1xuICAgICAgICByZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0gPSB0aGlzLmJ1aWxkQ2FzZUZpZWxkKGNvbCwgcmVzdWx0KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gIH1cblxuICBwdWJsaWMgZ29Ub1BhZ2UocGFnZSk6IHZvaWQge1xuICAgIHRoaXMuaGlkZVJvd3MgPSB0cnVlO1xuICAgIHRoaXMuc2VsZWN0ZWQuaW5pdCA9IGZhbHNlO1xuICAgIHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uID0gdGhpcy5qdXJpc2RpY3Rpb247XG4gICAgdGhpcy5zZWxlY3RlZC5jYXNlVHlwZSA9IHRoaXMuY2FzZVR5cGU7XG4gICAgdGhpcy5zZWxlY3RlZC5jYXNlU3RhdGUgPSB0aGlzLmNhc2VTdGF0ZTtcbiAgICB0aGlzLnNlbGVjdGVkLmZvcm1Hcm91cCA9IHRoaXMuY2FzZUZpbHRlckZHO1xuICAgIHRoaXMuc2VsZWN0ZWQubWV0YWRhdGFGaWVsZHMgPSB0aGlzLm1ldGFkYXRhRmllbGRzO1xuICAgIHRoaXMuc2VsZWN0ZWQucGFnZSA9IHBhZ2U7XG4gICAgLy8gQXBwbHkgZmlsdGVyc1xuICAgIGNvbnN0IHF1ZXJ5UGFyYW1zID0ge307XG4gICAgcXVlcnlQYXJhbXNbU2VhcmNoUmVzdWx0Q29tcG9uZW50LlBBUkFNX0pVUklTRElDVElPTl0gPSB0aGlzLnNlbGVjdGVkLmp1cmlzZGljdGlvbiA/IHRoaXMuc2VsZWN0ZWQuanVyaXNkaWN0aW9uLmlkIDogbnVsbDtcbiAgICBxdWVyeVBhcmFtc1tTZWFyY2hSZXN1bHRDb21wb25lbnQuUEFSQU1fQ0FTRV9UWVBFXSA9IHRoaXMuc2VsZWN0ZWQuY2FzZVR5cGUgPyB0aGlzLnNlbGVjdGVkLmNhc2VUeXBlLmlkIDogbnVsbDtcbiAgICBxdWVyeVBhcmFtc1tTZWFyY2hSZXN1bHRDb21wb25lbnQuUEFSQU1fQ0FTRV9TVEFURV0gPSB0aGlzLnNlbGVjdGVkLmNhc2VTdGF0ZSA/IHRoaXMuc2VsZWN0ZWQuY2FzZVN0YXRlLmlkIDogbnVsbDtcbiAgICB0aGlzLmNoYW5nZVBhZ2UuZW1pdCh7XG4gICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZCxcbiAgICAgIHF1ZXJ5UGFyYW1zXG4gICAgfSk7XG5cbiAgICBjb25zdCB0b3BDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG9wJyk7XG4gICAgaWYgKHRvcENvbnRhaW5lcikge1xuICAgICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgICBkb2N1bWVudC5hY3RpdmVFbGVtZW50LmJsdXIoKTtcbiAgICAgIH1cbiAgICAgIHRvcENvbnRhaW5lci5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBidWlsZENhc2VGaWVsZChjb2w6IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4sIHJlc3VsdDogU2VhcmNoUmVzdWx0Vmlld0l0ZW0pOiBDYXNlRmllbGQge1xuICAgIHJldHVybiBPYmplY3QuYXNzaWduKG5ldyBDYXNlRmllbGQoKSwge1xuICAgICAgaWQ6IGNvbC5jYXNlX2ZpZWxkX2lkLFxuICAgICAgbGFiZWw6IGNvbC5sYWJlbCxcbiAgICAgIGZpZWxkX3R5cGU6IGNvbC5jYXNlX2ZpZWxkX3R5cGUsXG4gICAgICB2YWx1ZTogcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXSxcbiAgICAgIGRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXI6IGNvbC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyLFxuICAgICAgZGlzcGxheV9jb250ZXh0OiBjb2wuZGlzcGxheV9jb250ZXh0LFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGdldENvbHVtbnNXaXRoUHJlZml4KGNvbDogQ2FzZUZpZWxkLCByZXN1bHQ6IFNlYXJjaFJlc3VsdFZpZXdJdGVtKTogQ2FzZUZpZWxkIHtcbiAgICBjb2wudmFsdWUgPSB0aGlzLmRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpO1xuICAgIGNvbC52YWx1ZSA9IHRoaXMucGxhY2Vob2xkZXJTZXJ2aWNlLnJlc29sdmVQbGFjZWhvbGRlcnMocmVzdWx0LmNhc2VfZmllbGRzLCBjb2wudmFsdWUpO1xuICAgIHJldHVybiBjb2w7XG4gIH1cblxuICBwdWJsaWMgaGFzUmVzdWx0cygpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5sZW5ndGggJiYgdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxfcGFnZXNfY291bnQ7XG4gIH1cblxuICBwdWJsaWMgaGFzRHJhZnRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnJlc3VsdFZpZXcuaGFzRHJhZnRzKCk7XG4gIH1cblxuICBwdWJsaWMgY29tcGFyYXRvcihjb2x1bW46IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4pOiBTZWFyY2hSZXN1bHRWaWV3SXRlbUNvbXBhcmF0b3Ige1xuICAgIHJldHVybiB0aGlzLnNlYXJjaFJlc3VsdFZpZXdJdGVtQ29tcGFyYXRvckZhY3RvcnkuY3JlYXRlU2VhcmNoUmVzdWx0Vmlld0l0ZW1Db21wYXJhdG9yKGNvbHVtbik7XG4gIH1cblxuICBwdWJsaWMgc29ydChjb2x1bW46IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4pIHtcbiAgICBpZiAodGhpcy5jb25zdW1lclNvcnRpbmdFbmFibGVkKSB7XG4gICAgICBpZiAoY29sdW1uLmNhc2VfZmllbGRfaWQgIT09IHRoaXMuY29uc3VtZXJTb3J0UGFyYW1ldGVycy5jb2x1bW4pIHtcbiAgICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLm9yZGVyID0gU29ydE9yZGVyLkRFU0NFTkRJTkc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPT09IFNvcnRPcmRlci5ERVNDRU5ESU5HID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgU29ydE9yZGVyLkFTQ0VORElORyA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNvcnRPcmRlci5ERVNDRU5ESU5HO1xuICAgICAgfVxuICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLmNvbHVtbiA9IGNvbHVtbi5jYXNlX2ZpZWxkX2lkO1xuICAgICAgdGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzLnR5cGUgPSBjb2x1bW4uY2FzZV9maWVsZF90eXBlLnR5cGU7XG4gICAgICB0aGlzLnNvcnRIYW5kbGVyLmVtaXQodGhpcy5jb25zdW1lclNvcnRQYXJhbWV0ZXJzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzU29ydEFzY2VuZGluZyhjb2x1bW4pKSB7XG4gICAgICAgIHRoaXMuc29ydFBhcmFtZXRlcnMgPSBuZXcgU29ydFBhcmFtZXRlcnModGhpcy5jb21wYXJhdG9yKGNvbHVtbiksIFNvcnRPcmRlci5BU0NFTkRJTkcpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zb3J0UGFyYW1ldGVycyA9IG5ldyBTb3J0UGFyYW1ldGVycyh0aGlzLmNvbXBhcmF0b3IoY29sdW1uKSwgU29ydE9yZGVyLkRFU0NFTkRJTkcpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzb3J0V2lkZ2V0KGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbikge1xuICAgIGxldCBjb25kaXRpb24gPSBmYWxzZTtcbiAgICBpZiAodGhpcy5jb25zdW1lclNvcnRpbmdFbmFibGVkKSB7XG4gICAgICBjb25zdCBpc0NvbHVtbiA9IGNvbHVtbi5jYXNlX2ZpZWxkX2lkID09PSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMuY29sdW1uO1xuICAgICAgY29uc3QgaXNBc2NlbmRpbmcgPSB0aGlzLmNvbnN1bWVyU29ydFBhcmFtZXRlcnMub3JkZXIgPT09IFNvcnRPcmRlci5BU0NFTkRJTkc7XG4gICAgICBjb25kaXRpb24gPSAhaXNDb2x1bW4gfHwgKGlzQ29sdW1uICYmIGlzQXNjZW5kaW5nKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uZGl0aW9uID0gdGhpcy5pc1NvcnRBc2NlbmRpbmcoY29sdW1uKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29uZGl0aW9uID8gJyYjOTY2MDsnIDogJyYjOTY1MDsnO1xuICB9XG5cbiAgcHVibGljIGFjdGl2aXR5RW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5hY3Rpdml0eVNlcnZpY2UuaXNFbmFibGVkO1xuICB9XG5cbiAgcHVibGljIGh5cGhlbmF0ZUlmQ2FzZVJlZmVyZW5jZU9yR2V0KGNvbCwgcmVzdWx0KTogYW55IHtcbiAgICBpZiAoY29sLmNhc2VfZmllbGRfaWQgPT09ICdbQ0FTRV9SRUZFUkVOQ0VdJykge1xuICAgICAgcmV0dXJuIHRoaXMuY2FzZVJlZmVyZW5jZVBpcGUudHJhbnNmb3JtKHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuY2FzZV9maWVsZF9pZF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoY29sLmlkKSB7XG4gICAgICAgIGlmIChjb2wuaWQgPT09ICdbQ0FTRV9SRUZFUkVOQ0VdJykge1xuICAgICAgICAgIHJldHVybiB0aGlzLmNhc2VSZWZlcmVuY2VQaXBlLnRyYW5zZm9ybShyZXN1bHQuY2FzZV9maWVsZHNbY29sLmlkXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHJlc3VsdC5jYXNlX2ZpZWxkc1tjb2wuaWRdO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmVzdWx0LmNhc2VfZmllbGRzW2NvbC5jYXNlX2ZpZWxkX2lkXTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZHJhZnRQcmVmaXhPckdldChjb2wsIHJlc3VsdCk6IGFueSB7XG4gICAgcmV0dXJuIHJlc3VsdC5jYXNlX2lkLnN0YXJ0c1dpdGgoRFJBRlRfUFJFRklYKSA/IERSQUZUX1BSRUZJWCA6IHRoaXMuaHlwaGVuYXRlSWZDYXNlUmVmZXJlbmNlT3JHZXQoY29sLCByZXN1bHQpO1xuICB9XG5cbiAgcHVibGljIGlzU29ydEFzY2VuZGluZyhjb2x1bW46IFNlYXJjaFJlc3VsdFZpZXdDb2x1bW4pOiBib29sZWFuIHtcbiAgICBjb25zdCBjdXJyZW50U29ydE9yZGVyID0gdGhpcy5jdXJyZW50U29ydE9yZGVyKGNvbHVtbik7XG5cbiAgICByZXR1cm4gY3VycmVudFNvcnRPcmRlciA9PT0gU29ydE9yZGVyLlVOU09SVEVEIHx8IGN1cnJlbnRTb3J0T3JkZXIgPT09IFNvcnRPcmRlci5ERVNDRU5ESU5HO1xuICB9XG5cbiAgcHJpdmF0ZSBjdXJyZW50U29ydE9yZGVyKGNvbHVtbjogU2VhcmNoUmVzdWx0Vmlld0NvbHVtbik6IFNvcnRPcmRlciB7XG5cbiAgICBsZXQgaXNBc2NlbmRpbmcgPSB0cnVlO1xuICAgIGxldCBpc0Rlc2NlbmRpbmcgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuY29tcGFyYXRvcihjb2x1bW4pID09PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiBTb3J0T3JkZXIuVU5TT1JURUQ7XG4gICAgfVxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHMubGVuZ3RoIC0gMTsgaSsrKSB7XG4gICAgICBjb25zdCBjb21wYXJpc29uID0gdGhpcy5jb21wYXJhdG9yKGNvbHVtbikuY29tcGFyZSh0aGlzLnJlc3VsdFZpZXcucmVzdWx0c1tpXSwgdGhpcy5yZXN1bHRWaWV3LnJlc3VsdHNbaSArIDFdKTtcbiAgICAgIGlzRGVzY2VuZGluZyA9IGlzRGVzY2VuZGluZyAmJiBjb21wYXJpc29uIDw9IDA7XG4gICAgICBpc0FzY2VuZGluZyA9IGlzQXNjZW5kaW5nICYmIGNvbXBhcmlzb24gPj0gMDtcbiAgICAgIGlmICghaXNBc2NlbmRpbmcgJiYgIWlzRGVzY2VuZGluZykge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGlzQXNjZW5kaW5nID8gU29ydE9yZGVyLkFTQ0VORElORyA6IGlzRGVzY2VuZGluZyA/IFNvcnRPcmRlci5ERVNDRU5ESU5HIDogU29ydE9yZGVyLlVOU09SVEVEO1xuICB9XG5cbiAgcHVibGljIGdldEZpcnN0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSAodGhpcy5zZWxlY3RlZC5wYWdlID8gdGhpcy5zZWxlY3RlZC5wYWdlIDogMSk7XG4gICAgcmV0dXJuICgoY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSArIDEgKyB0aGlzLmdldERyYWZ0c0NvdW50SWZOb3RQYWdlT25lKGN1cnJlbnRQYWdlKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMYXN0UmVzdWx0KCk6IG51bWJlciB7XG4gICAgY29uc3QgY3VycmVudFBhZ2UgPSAodGhpcy5zZWxlY3RlZC5wYWdlID8gdGhpcy5zZWxlY3RlZC5wYWdlIDogMSk7XG4gICAgcmV0dXJuICgoY3VycmVudFBhZ2UgLSAxKSAqIHRoaXMucGFnaW5hdGlvblBhZ2VTaXplKSArIHRoaXMucmVzdWx0Vmlldy5yZXN1bHRzLmxlbmd0aCArIHRoaXMuZ2V0RHJhZnRzQ291bnRJZk5vdFBhZ2VPbmUoY3VycmVudFBhZ2UpO1xuICB9XG5cbiAgcHVibGljIGdldFRvdGFsUmVzdWx0cygpOiBudW1iZXIge1xuICAgIGNvbnN0IHRvdGFsID0gdGhpcy5wYWdpbmF0aW9uTWV0YWRhdGEudG90YWxfcmVzdWx0c19jb3VudCArIHRoaXMuZHJhZnRzQ291bnQ7XG5cbiAgICByZXR1cm4gdG90YWwgPj0gdGhpcy5QQUdJTkFUSU9OX01BWF9JVEVNX1JFU1VMVCA/IHRoaXMuUEFHSU5BVElPTl9NQVhfSVRFTV9SRVNVTFQgOiB0b3RhbDtcbiAgfVxuXG4gIHB1YmxpYyBwcmVwYXJlQ2FzZUxpbmtVcmwoY2FzZUlkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGxldCB1cmwgPSB0aGlzLmNhc2VMaW5rVXJsVGVtcGxhdGU7XG4gICAgdXJsID0gdXJsLnJlcGxhY2UoJ2p1cmlzZGljdGlvbl9pZCcsIHRoaXMuanVyaXNkaWN0aW9uLmlkKTtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgnY2FzZVR5cGVfaWQnLCB0aGlzLmNhc2VUeXBlLmlkKTtcbiAgICB1cmwgPSB1cmwucmVwbGFjZSgnY2FzZV9pZCcsIGNhc2VJZCk7XG5cbiAgICByZXR1cm4gdXJsO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXREcmFmdHNDb3VudElmTm90UGFnZU9uZShjdXJyZW50UGFnZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIGN1cnJlbnRQYWdlID4gMSA/IHRoaXMuZHJhZnRzQ291bnQgOiAwO1xuICB9XG5cbiAgcHJpdmF0ZSBudW1iZXJPZkRyYWZ0cygpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLnJlc3VsdFZpZXcucmVzdWx0cy5maWx0ZXIoXyA9PiBfLmNhc2VfaWQuc3RhcnRzV2l0aChEUkFGVF9QUkVGSVgpKS5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgZ29Ub0Nhc2UoY2FzZUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmNsaWNrQ2FzZS5lbWl0KHtcbiAgICAgIGNhc2VJZFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uS2V5VXAoJGV2ZW50OiBLZXlib2FyZEV2ZW50LCBjOiBTZWFyY2hSZXN1bHRWaWV3SXRlbSk6IHZvaWQge1xuICAgIGlmICgkZXZlbnQua2V5ID09PSAnU3BhY2UnKSB7XG4gICAgICBpZiAodGhpcy5icm93c2VyU2VydmljZS5pc0ZpcmVmb3ggfHwgdGhpcy5icm93c2VyU2VydmljZS5pc1NhZmFyaSB8fCB0aGlzLmJyb3dzZXJTZXJ2aWNlLmlzSUVPckVkZ2UpIHtcbiAgICAgICAgdGhpcy5jaGFuZ2VTZWxlY3Rpb24oYyk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8dGFibGUgKm5nSWY9XCJoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKClcIj5cbiAgPGNhcHRpb24+XG4gICAgPGgyIGNsYXNzPVwiaGVhZGluZy1oMlwiIGlkPVwic2VhcmNoLXJlc3VsdC1oZWFkaW5nX190ZXh0XCIgdGFiaW5kZXg9XCItMVwiPnt7IGNhc2VTdGF0ZSA/ICdZb3VyIGNhc2VzJyA6ICdTZWFyY2ggcmVzdWx0JyB9fTwvaDI+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0IHBhZ2luYXRpb24tbGltaXQtd2FybmluZ1wiICpuZ0lmPVwicGFnaW5hdGlvbkxpbWl0RW5mb3JjZWRcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZ292dWstd2FybmluZy10ZXh0X19pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+ITwvc3Bhbj5cbiAgICAgIDxzdHJvbmcgY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX3RleHRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay13YXJuaW5nLXRleHRfX2Fzc2lzdGl2ZVwiPldhcm5pbmc8L3NwYW4+XG4gICAgICAgIFRoZSB0b3RhbCBzaXplIG9mIHRoZSByZXN1bHQgc2V0IGlzIHt7cGFnaW5hdGlvbk1ldGFkYXRhLnRvdGFsX3Jlc3VsdHNfY291bnQgfCBudW1iZXJ9fS4gT25seSB0aGUgZmlyc3QgMTAsMDAwIHJlY29yZHMgYXJlIGF2YWlsYWJsZSBmb3IgZGlzcGxheS5cbiAgICAgIDwvc3Ryb25nPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIihoYXNSZXN1bHRzKCkgfHwgaGFzRHJhZnRzKCkpXCIgY2xhc3M9XCJwYWdpbmF0aW9uLXRvcFwiXG4gICAgICBhdHRyLmFyaWEtbGFiZWw9XCJ7eyBnZXRUb3RhbFJlc3VsdHMoKSB9fSByZXN1bHRzIGhhdmUgYmVlbiBmb3VuZFwiIHJvbGU9XCJzdGF0dXNcIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwidGV4dC0xNlwiIGlkPVwic2VhcmNoLXJlc3VsdC1zdW1tYXJ5X190ZXh0XCI+U2hvd2luZyBcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBnZXRGaXJzdFJlc3VsdCgpIH19PC9zcGFuPlxuICAgICAgICB0b1xuICAgICAgICA8c3BhbiBjbGFzcz1cImdvdnVrLSEtZm9udC13ZWlnaHQtYm9sZFwiPnt7IGdldExhc3RSZXN1bHQoKSB9fTwvc3Bhbj5cbiAgICAgICAgb2ZcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJnb3Z1ay0hLWZvbnQtd2VpZ2h0LWJvbGRcIj57eyBnZXRUb3RhbFJlc3VsdHMoKSB9fTwvc3Bhbj4gcmVzdWx0czwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2ICpuZ0lmPVwiKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSkgJiYgc2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwicmVzZXQtc2VsZWN0aW9uXCJcbiAgICAgIGF0dHIuYXJpYS1sYWJlbD1cIlJlc2V0IHNlbGVjdGlvblwiPlxuICAgICAgPHNwYW4+PGEgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LXJlc2V0LWxpbmtcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCIgKGNsaWNrKT1cImNsZWFyU2VsZWN0aW9uKClcIj5SZXNldCBjYXNlIHNlbGVjdGlvbjwvYT48L3NwYW4+XG4gICAgPC9kaXY+XG4gIDwvY2FwdGlvbj5cbiAgPHRoZWFkPlxuICAgIDx0ciBzY29wZT1cInJvd1wiPlxuICAgICAgPHRoICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImdvdnVrLWNoZWNrYm94ZXNfX2l0ZW1cIj5cbiAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwic2VsZWN0LWFsbFwiIG5hbWU9XCJzZWxlY3QtYWxsXCIgdHlwZT1cImNoZWNrYm94XCIgKGNoYW5nZSk9XCJzZWxlY3RBbGwoKVwiIFtjaGVja2VkXT1cImFsbE9uUGFnZVNlbGVjdGVkKClcIiBbZGlzYWJsZWRdPVwiIWNhbkFueUJlU2hhcmVkKClcIiAvPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LWFsbFwiPlxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC90aD5cbiAgICAgIDx0aCAqbmdGb3I9XCJsZXQgY29sIG9mIHJlc3VsdFZpZXcuY29sdW1uc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic2VhcmNoLXJlc3VsdC1jb2x1bW4taGVhZGVyXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidTb3J0IGJ5ICcgKyBjb2wubGFiZWwgKyAnICcgKyBpc1NvcnRBc2NlbmRpbmcoY29sKT8gJ2FzY2VuZGluZycgOiAnZGVzY2VuZGluZydcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1sYWJlbFwiIChjbGljayk9XCJzb3J0KGNvbClcIj57e2NvbC5sYWJlbH19PC9kaXY+XG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiY29tcGFyYXRvcihjb2wpXCIgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1zb3J0XCI+XG4gICAgICAgICAgICAgIDxhIChjbGljayk9XCJzb3J0KGNvbClcIiBjbGFzcz1cInNvcnQtd2lkZ2V0XCIgW2lubmVySFRNTF09XCJzb3J0V2lkZ2V0KGNvbClcIiBocmVmPVwiamF2YXNjcmlwdDp2b2lkKDApXCI+PC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICA8L3RoPlxuICAgICAgPHRoICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIiBzdHlsZT1cIndpZHRoOiAxMTBweDtcIj48L3RoPlxuICAgIDwvdHI+XG4gIDwvdGhlYWQ+XG4gIDx0Ym9keT5cblxuICAgIDwhLS0gc29ydGVkIGJ5IGNvbnN1bWVyIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb25zdW1lclNvcnRpbmdFbmFibGVkXCI+XG4gICAgICA8dHIgKm5nRm9yPVwibGV0IHJlc3VsdCBvZiByZXN1bHRWaWV3LnJlc3VsdHMgfCBwYWdpbmF0ZTogeyBpdGVtc1BlclBhZ2U6IHBhZ2luYXRpb25QYWdlU2l6ZSwgY3VycmVudFBhZ2U6IHNlbGVjdGVkLnBhZ2UsIHRvdGFsSXRlbXM6IHJlc3VsdFRvdGFsIH1cIj5cbiAgICAgICAgPHRkICpuZ0lmPVwic2VsZWN0aW9uRW5hYmxlZFwiIGNsYXNzPVwiZ292dWstdGFibGVfX2NoZWNrYm94XCIgc2NvcGU9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faXRlbVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZ292dWstY2hlY2tib3hlc19faW5wdXRcIiBpZD1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiIG5hbWU9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIlxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiAoY2hhbmdlKT1cImNoYW5nZVNlbGVjdGlvbihyZXN1bHQpXCIgW2NoZWNrZWRdPVwiaXNTZWxlY3RlZChyZXN1bHQpXCIgW2Rpc2FibGVkXT1cIiFjYW5CZVNoYXJlZChyZXN1bHQpXCIgLz5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImdvdnVrLWxhYmVsIGdvdnVrLWNoZWNrYm94ZXNfX2xhYmVsXCIgZm9yPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCI+XG4gICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJzZWFyY2gtcmVzdWx0LWNvbHVtbi1jZWxsXCIgKm5nRm9yPVwibGV0IGNvbCBvZiByZXN1bHRWaWV3LmNvbHVtbnM7IGxldCBjb2xJbmRleCA9IGluZGV4XCIgc2NvcGU9XCJyb3dcIj5cbiAgICAgICAgICA8YSAqbmdJZj1cImNvbEluZGV4ID09IDBcIiBbcm91dGVyTGlua109XCJwcmVwYXJlQ2FzZUxpbmtVcmwocmVzdWx0LmNhc2VfaWQpXCJcbiAgICAgICAgICAgIGF0dHIuYXJpYS1sYWJlbD1cImdvIHRvIGNhc2Ugd2l0aCBDYXNlIHJlZmVyZW5jZTp7eyByZXN1bHQuY2FzZV9pZCB8IGNjZENhc2VSZWZlcmVuY2UgfX1cIiBjbGFzcz1cImdvdnVrLWxpbmtcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgY2xhc3M9XCJ0ZXh0LTE2XCIgKm5nSWY9XCIhaGlkZVJvd3NcIj5cbiAgICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkICpuZ0lmPVwiZHJhZnRQcmVmaXhPckdldChjb2wsIHJlc3VsdCk7IGVsc2UgY2FzZV9yZWZlcmVuY2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2NkTGFiZWxTdWJzdGl0dXRvciBbY2FzZUZpZWxkXT1cImdldENvbHVtbnNXaXRoUHJlZml4KHJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXSwgcmVzdWx0KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dEZpZWxkc109XCJyZXN1bHQuaHlkcmF0ZWRfY2FzZV9maWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2VsZW1lbnRzVG9TdWJzdGl0dXRlXT1cIlsndmFsdWUnXVwiPjwvY2NkLWZpZWxkLXJlYWQ+XG4gICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjY2FzZV9yZWZlcmVuY2U+e3tyZXN1bHQuY2FzZV9pZCB8IGNjZENhc2VSZWZlcmVuY2V9fTwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L2E+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cImNvbEluZGV4ICE9IDBcIiBjbGFzcz1cInRleHQtMTZcIiBbc3R5bGUudmlzaWJpbGl0eV09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCI+XG4gICAgICAgICAgICA8Y2NkLWZpZWxkLXJlYWQgY2NkTGFiZWxTdWJzdGl0dXRvclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYXNlRmllbGRdPVwicmVzdWx0LmNvbHVtbnNbY29sLmNhc2VfZmllbGRfaWRdXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY29udGV4dEZpZWxkc109XCJyZXN1bHQuaHlkcmF0ZWRfY2FzZV9maWVsZHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgKm5nSWY9XCJhY3Rpdml0eUVuYWJsZWQoKVwiPlxuICAgICAgICAgIDxkaXYgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1hY3Rpdml0eSBbY2FzZUlkXT1cInJlc3VsdC5jYXNlX2lkXCIgW2Rpc3BsYXlNb2RlXT1cIklDT05cIj48L2NjZC1hY3Rpdml0eT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgIDwvdHI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPCEtLSBzb3J0ZWQgYnkgdG9vbGtpdCAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWNvbnN1bWVyU29ydGluZ0VuYWJsZWRcIj5cbiAgICAgIDx0ciAqbmdGb3I9XCJsZXQgcmVzdWx0IG9mIHJlc3VsdFZpZXcucmVzdWx0cyB8IGNjZFNvcnRTZWFyY2hSZXN1bHQgOiBzb3J0UGFyYW1ldGVycyB8IHBhZ2luYXRlOiB7IGl0ZW1zUGVyUGFnZTogcGFnaW5hdGlvblBhZ2VTaXplLCBjdXJyZW50UGFnZTogc2VsZWN0ZWQucGFnZSwgdG90YWxJdGVtczogcmVzdWx0VG90YWwgfVwiPlxuICAgICAgICA8dGQgKm5nSWY9XCJzZWxlY3Rpb25FbmFibGVkXCIgY2xhc3M9XCJnb3Z1ay10YWJsZV9fY2hlY2tib3hcIiBzY29wZT1cImNvbFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pdGVtXCI+XG4gICAgICAgICAgICA8aW5wdXQgY2xhc3M9XCJnb3Z1ay1jaGVja2JveGVzX19pbnB1dFwiIGlkPVwic2VsZWN0LXt7IHJlc3VsdC5jYXNlX2lkIH19XCIgbmFtZT1cInNlbGVjdC17eyByZXN1bHQuY2FzZV9pZCB9fVwiXG4gICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiIChjaGFuZ2UpPVwiY2hhbmdlU2VsZWN0aW9uKHJlc3VsdClcIiBbY2hlY2tlZF09XCJpc1NlbGVjdGVkKHJlc3VsdClcIiBbZGlzYWJsZWRdPVwiIWNhbkJlU2hhcmVkKHJlc3VsdClcIiAoa2V5dXApPVwib25LZXlVcCgkZXZlbnQsIHJlc3VsdClcIiAvPlxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZ292dWstbGFiZWwgZ292dWstY2hlY2tib3hlc19fbGFiZWxcIiBmb3I9XCJzZWxlY3Qte3sgcmVzdWx0LmNhc2VfaWQgfX1cIj5cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cInNlYXJjaC1yZXN1bHQtY29sdW1uLWNlbGxcIiAqbmdGb3I9XCJsZXQgY29sIG9mIHJlc3VsdFZpZXcuY29sdW1uczsgbGV0IGNvbEluZGV4ID0gaW5kZXhcIiBzY29wZT1cInJvd1wiPlxuXG4gICAgICAgICAgPGEgKm5nSWY9XCJjb2xJbmRleCA9PSAwXCIgW3JvdXRlckxpbmtdPVwicHJlcGFyZUNhc2VMaW5rVXJsKHJlc3VsdC5jYXNlX2lkKVwiXG4gICAgICAgICAgICBhdHRyLmFyaWEtbGFiZWw9XCJnbyB0byBjYXNlIHdpdGggQ2FzZSByZWZlcmVuY2U6e3sgcmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlIH19XCIgY2xhc3M9XCJnb3Z1ay1saW5rXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIGNsYXNzPVwidGV4dC0xNlwiICpuZ0lmPVwiIWhpZGVSb3dzXCI+XG4gICAgICAgICAgICAgIDxjY2QtZmllbGQtcmVhZCAqbmdJZj1cImRyYWZ0UHJlZml4T3JHZXQoY29sLCByZXN1bHQpOyBlbHNlIGNhc2VfcmVmZXJlbmNlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNjZExhYmVsU3Vic3RpdHV0b3IgW2Nhc2VGaWVsZF09XCJnZXRDb2x1bW5zV2l0aFByZWZpeChyZXN1bHQuY29sdW1uc1tjb2wuY2FzZV9maWVsZF9pZF0sIHJlc3VsdClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbGVtZW50c1RvU3Vic3RpdHV0ZV09XCJbJ3ZhbHVlJ11cIj48L2NjZC1maWVsZC1yZWFkPlxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Nhc2VfcmVmZXJlbmNlPnt7cmVzdWx0LmNhc2VfaWQgfCBjY2RDYXNlUmVmZXJlbmNlfX08L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9hPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJjb2xJbmRleCAhPSAwXCIgY2xhc3M9XCJ0ZXh0LTE2XCIgW3N0eWxlLnZpc2liaWxpdHldPVwiaGlkZVJvd3MgPyAnaGlkZGVuJyA6ICd2aXNpYmxlJ1wiPlxuICAgICAgICAgICAgPGNjZC1maWVsZC1yZWFkIGNjZExhYmVsU3Vic3RpdHV0b3JcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZpZWxkXT1cInJlc3VsdC5jb2x1bW5zW2NvbC5jYXNlX2ZpZWxkX2lkXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NvbnRleHRGaWVsZHNdPVwicmVzdWx0Lmh5ZHJhdGVkX2Nhc2VfZmllbGRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZWxlbWVudHNUb1N1YnN0aXR1dGVdPVwiWyd2YWx1ZSddXCI+PC9jY2QtZmllbGQtcmVhZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC90ZD5cbiAgICAgICAgPHRkICpuZ0lmPVwiYWN0aXZpdHlFbmFibGVkKClcIj5cbiAgICAgICAgICA8ZGl2IFtzdHlsZS52aXNpYmlsaXR5XT1cImhpZGVSb3dzID8gJ2hpZGRlbicgOiAndmlzaWJsZSdcIj5cbiAgICAgICAgICAgIDxjY2QtYWN0aXZpdHkgW2Nhc2VJZF09XCJyZXN1bHQuY2FzZV9pZFwiIFtkaXNwbGF5TW9kZV09XCJJQ09OXCI+PC9jY2QtYWN0aXZpdHk+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gIDwvdGJvZHk+XG48L3RhYmxlPlxuXG48Y2NkLXBhZ2luYXRpb25cbiAgKm5nSWY9XCJoYXNSZXN1bHRzKClcIlxuICAocGFnZUNoYW5nZSk9XCJnb1RvUGFnZSgkZXZlbnQpXCJcbiAgW3Zpc2liaWxpdHlMYWJlbF09XCJoaWRlUm93cyA/ICdoaWRkZW4nIDogJ3Zpc2libGUnXCJcbiAgW2F1dG9IaWRlXT1cInRydWVcIlxuICBbbWF4U2l6ZV09XCI4XCJcbiAgW3NjcmVlblJlYWRlclBhZ2luYXRpb25MYWJlbF09XCInUGFnaW5hdGlvbidcIlxuICBbc2NyZWVuUmVhZGVyUGFnZUxhYmVsXT1cInBhZ2VcIlxuICBbc2NyZWVuUmVhZGVyQ3VycmVudExhYmVsXT1cIidZb3VcXCdyZSBvbiBwYWdlJ1wiPjwvY2NkLXBhZ2luYXRpb24+XG5cbjxkaXYgKm5nSWY9XCIhKGhhc1Jlc3VsdHMoKSB8fCBoYXNEcmFmdHMoKSlcIiBjbGFzcz1cIm5vdGlmaWNhdGlvblwiXG4gIGFyaWEtbGFiZWw9XCJObyBjYXNlcyBmb3VuZC4gVHJ5IHVzaW5nIGRpZmZlcmVudCBmaWx0ZXJzLlwiPlxuICBObyBjYXNlcyBmb3VuZC4gVHJ5IHVzaW5nIGRpZmZlcmVudCBmaWx0ZXJzLlxuPC9kaXY+XG4iXX0=
|
|
@@ -9,12 +9,9 @@ export class CaseField {
|
|
|
9
9
|
this._list_items = [];
|
|
10
10
|
}
|
|
11
11
|
get value() {
|
|
12
|
-
if (this.
|
|
12
|
+
if (this.isDynamic()) {
|
|
13
13
|
return this._value && this._value.value ? this._value.value.code : this._value;
|
|
14
14
|
}
|
|
15
|
-
else if (this.field_type && this.field_type.type === 'DynamicMultiSelectList') {
|
|
16
|
-
return this._value && this._value.value ? this._value.value : this._value;
|
|
17
|
-
}
|
|
18
15
|
else {
|
|
19
16
|
return this._value;
|
|
20
17
|
}
|
|
@@ -88,7 +85,7 @@ export class CaseField {
|
|
|
88
85
|
return this.field_type && this.field_type.type === 'Complex';
|
|
89
86
|
}
|
|
90
87
|
isDynamic() {
|
|
91
|
-
const dynamicFieldTypes = ['DynamicList', 'DynamicRadioList'
|
|
88
|
+
const dynamicFieldTypes = ['DynamicList', 'DynamicRadioList'];
|
|
92
89
|
if (!this.field_type) {
|
|
93
90
|
return false;
|
|
94
91
|
}
|
|
@@ -194,4 +191,4 @@ __decorate([
|
|
|
194
191
|
__metadata("design:paramtypes", []),
|
|
195
192
|
__metadata("design:returntype", Boolean)
|
|
196
193
|
], CaseField.prototype, "isCaseLink", null);
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWVsZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFJOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRS9DLFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQTJCUyxnQkFBVyxHQUFRLEVBQUUsQ0FBQztJQWtJL0IsQ0FBQztJQS9IQyxJQUFXLEtBQUs7UUFDZCxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxhQUFhLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssa0JBQWtCLENBQUMsRUFBRTtZQUM5RyxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNoRjthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyx3QkFBd0IsRUFBRTtZQUMvRSxPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FB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O0lBREMsTUFBTSxFQUFFOzs7OzJDQUtSIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXhwb3NlLCBUeXBlIH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0ICogYXMgXyBmcm9tICd1bmRlcnNjb3JlJztcbmltcG9ydCB7IFdpemFyZFBhZ2VGaWVsZCB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMvY2FzZS1lZGl0b3IvZG9tYWluL3dpemFyZC1wYWdlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IE9yZGVyYWJsZSB9IGZyb20gJy4uL29yZGVyJztcbmltcG9ydCB7IEFjY2Vzc0NvbnRyb2xMaXN0IH0gZnJvbSAnLi9hY2Nlc3MtY29udHJvbC1saXN0Lm1vZGVsJztcbmltcG9ydCB7IEZpZWxkVHlwZUVudW0gfSBmcm9tICcuL2ZpZWxkLXR5cGUtZW51bS5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGUgfSBmcm9tICcuL2ZpZWxkLXR5cGUubW9kZWwnO1xuXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIENhc2VGaWVsZCBpbXBsZW1lbnRzIE9yZGVyYWJsZSB7XG4gIHB1YmxpYyBpZDogc3RyaW5nO1xuICBwdWJsaWMgaGlkZGVuOiBib29sZWFuO1xuICBwdWJsaWMgaGlkZGVuQ2Fubm90Q2hhbmdlOiBib29sZWFuO1xuICBwdWJsaWMgbGFiZWw6IHN0cmluZztcbiAgcHVibGljIG9yZGVyPzogbnVtYmVyO1xuXG4gIEBUeXBlKCgpID0+IEZpZWxkVHlwZSlcbiAgcHVibGljIGZpZWxkX3R5cGU6IEZpZWxkVHlwZTtcblxuICBwdWJsaWMgaGludF90ZXh0Pzogc3RyaW5nO1xuICBwdWJsaWMgc2VjdXJpdHlfbGFiZWw/OiBzdHJpbmc7XG4gIHB1YmxpYyBkaXNwbGF5X2NvbnRleHQ6IHN0cmluZztcbiAgcHVibGljIGRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXI/OiBzdHJpbmc7XG4gIHB1YmxpYyBtb250aF9mb3JtYXQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBzaG93X2NvbmRpdGlvbj86IHN0cmluZztcbiAgcHVibGljIHNob3dfc3VtbWFyeV9jaGFuZ2Vfb3B0aW9uPzogYm9vbGVhbjtcbiAgcHVibGljIHNob3dfc3VtbWFyeV9jb250ZW50X29wdGlvbj86IG51bWJlcjtcbiAgcHVibGljIGFjbHM/OiBBY2Nlc3NDb250cm9sTGlzdFtdO1xuICBwdWJsaWMgbWV0YWRhdGE/OiBib29sZWFuO1xuICBwdWJsaWMgZm9ybWF0dGVkX3ZhbHVlPzogYW55O1xuICBwdWJsaWMgcmV0YWluX2hpZGRlbl92YWx1ZTogYm9vbGVhbjtcblxuICBAVHlwZSgoKSA9PiBXaXphcmRQYWdlRmllbGQpXG4gIHB1YmxpYyB3aXphcmRQcm9wcz86IFdpemFyZFBhZ2VGaWVsZDtcblxuICBwdWJsaWMgX3ZhbHVlOiBhbnk7XG4gIHB1YmxpYyBfbGlzdF9pdGVtczogYW55ID0gW107XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogYW55IHtcbiAgICBpZiAodGhpcy5maWVsZF90eXBlICYmICh0aGlzLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0R5bmFtaWNMaXN0JyB8fCB0aGlzLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0R5bmFtaWNSYWRpb0xpc3QnKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlICYmIHRoaXMuX3ZhbHVlLnZhbHVlID8gdGhpcy5fdmFsdWUudmFsdWUuY29kZSA6IHRoaXMuX3ZhbHVlO1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWVsZF90eXBlICYmIHRoaXMuZmllbGRfdHlwZS50eXBlID09PSAnRHluYW1pY011bHRpU2VsZWN0TGlzdCcpIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSAmJiB0aGlzLl92YWx1ZS52YWx1ZSA/IHRoaXMuX3ZhbHVlLnZhbHVlIDogdGhpcy5fdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBpZiAodGhpcy5pc0R5bmFtaWMoKSkge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlIGluc3RhbmNlb2YgT2JqZWN0ICYmIHZhbHVlLmxpc3RfaXRlbXMpIHtcbiAgICAgICAgdGhpcy5fbGlzdF9pdGVtcyA9IHZhbHVlLmxpc3RfaXRlbXM7XG4gICAgICB9IGVsc2UgaWYgKCF0aGlzLl9saXN0X2l0ZW1zIHx8IHRoaXMuX2xpc3RfaXRlbXMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIC8vIEV4dHJhY3QgdGhlIGxpc3QgaXRlbXMgZnJvbSB0aGUgY3VycmVudCB2YWx1ZSBpZiB0aGF0J3MgdGhlIG9ubHkgcGxhY2UgdGhleSBleGlzdC5cbiAgICAgICAgdGhpcy5fbGlzdF9pdGVtcyA9IHRoaXMubGlzdF9pdGVtcztcbiAgICAgICAgaWYgKCF2YWx1ZSB8fCAhdmFsdWUudmFsdWUpIHtcbiAgICAgICAgICB2YWx1ZSA9IG51bGw7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgZ2V0IGxpc3RfaXRlbXMoKTogYW55IHtcbiAgICBpZiAodGhpcy5pc0R5bmFtaWMoKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlICYmIHRoaXMuX3ZhbHVlLmxpc3RfaXRlbXMgPyB0aGlzLl92YWx1ZS5saXN0X2l0ZW1zIDogdGhpcy5fbGlzdF9pdGVtcztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuZmllbGRfdHlwZS5maXhlZF9saXN0X2l0ZW1zO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgbGlzdF9pdGVtcyhpdGVtczogYW55KSB7XG4gICAgdGhpcy5fbGlzdF9pdGVtcyA9IGl0ZW1zO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBnZXQgZGF0ZVRpbWVFbnRyeUZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzQ29tcGxleERpc3BsYXkoKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGlmICh0aGlzLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIpIHtcbiAgICAgIHJldHVybiB0aGlzLmV4dHJhY3RCcmFja2V0VmFsdWUodGhpcy5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyLCAnI0RBVEVUSU1FRU5UUlknKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGdldCBkYXRlVGltZURpc3BsYXlGb3JtYXQoKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5pc0NvbXBsZXhFbnRyeSgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdEJyYWNrZXRWYWx1ZSh0aGlzLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIsICcjREFURVRJTUVESVNQTEFZJyk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc0NvbXBsZXhEaXNwbGF5KCkge1xuICAgIHJldHVybiAodGhpcy5pc0NvbXBsZXgoKSB8fCB0aGlzLmlzQ29sbGVjdGlvbigpKSAmJiB0aGlzLmlzUmVhZG9ubHkoKTtcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNDb21wbGV4RW50cnkoKSB7XG4gICAgcmV0dXJuICh0aGlzLmlzQ29tcGxleCgpIHx8IHRoaXMuaXNDb2xsZWN0aW9uKCkpICYmICh0aGlzLmlzT3B0aW9uYWwoKSB8fCB0aGlzLmlzTWFuZGF0b3J5KCkpO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc1JlYWRvbmx5KCkge1xuICAgIHJldHVybiAhXy5pc0VtcHR5KHRoaXMuZGlzcGxheV9jb250ZXh0KVxuICAgICAgJiYgdGhpcy5kaXNwbGF5X2NvbnRleHQudG9VcHBlckNhc2UoKSA9PT0gJ1JFQURPTkxZJztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNPcHRpb25hbCgpIHtcbiAgICByZXR1cm4gIV8uaXNFbXB0eSh0aGlzLmRpc3BsYXlfY29udGV4dClcbiAgICAgICYmIHRoaXMuZGlzcGxheV9jb250ZXh0LnRvVXBwZXJDYXNlKCkgPT09ICdPUFRJT05BTCc7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzTWFuZGF0b3J5KCkge1xuICAgIHJldHVybiAhXy5pc0VtcHR5KHRoaXMuZGlzcGxheV9jb250ZXh0KVxuICAgICAgJiYgdGhpcy5kaXNwbGF5X2NvbnRleHQudG9VcHBlckNhc2UoKSA9PT0gJ01BTkRBVE9SWSc7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzQ29sbGVjdGlvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZF90eXBlICYmIHRoaXMuZmllbGRfdHlwZS50eXBlID09PSAnQ29sbGVjdGlvbic7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzQ29tcGxleCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZF90eXBlICYmIHRoaXMuZmllbGRfdHlwZS50eXBlID09PSAnQ29tcGxleCc7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzRHluYW1pYygpOiBib29sZWFuIHtcbiAgICBjb25zdCBkeW5hbWljRmllbGRUeXBlczogRmllbGRUeXBlRW51bVtdID0gWydEeW5hbWljTGlzdCcsICdEeW5hbWljUmFkaW9MaXN0JywgJ0R5bmFtaWNNdWx0aVNlbGVjdExpc3QnXTtcblxuICAgIGlmICghdGhpcy5maWVsZF90eXBlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGR5bmFtaWNGaWVsZFR5cGVzLnNvbWUodCA9PiB0ID09PSB0aGlzLmZpZWxkX3R5cGUudHlwZSk7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzQ2FzZUxpbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNDb21wbGV4KClcbiAgICAgICYmIHRoaXMuZmllbGRfdHlwZS5pZCA9PT0gJ0Nhc2VMaW5rJ1xuICAgICAgJiYgdGhpcy5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLnNvbWUoY2YgPT4gY2YuaWQgPT09ICdDYXNlUmVmZXJlbmNlJyk7XG4gIH1cbiAgcHVibGljIGV4dHJhY3RCcmFja2V0VmFsdWUoZm10OiBzdHJpbmcsIHBhcmFtTmFtZTogc3RyaW5nLCBsZWZ0QnJhY2tldD0gJygnLCByaWdodEJyYWNrZXQ9ICcpJyApOiBzdHJpbmcge1xuICAgICAgZm10ID0gZm10LnNwbGl0KCcsJylcbiAgICAgICAgLmZpbmQoYSA9PiBhLnRyaW0oKS5zdGFydHNXaXRoKHBhcmFtTmFtZSkpO1xuICAgICAgaWYgKGZtdCkge1xuICAgICAgICBjb25zdCBzID0gZm10LmluZGV4T2YobGVmdEJyYWNrZXQpICsgMTtcbiAgICAgICAgY29uc3QgZSA9IGZtdC5pbmRleE9mKHJpZ2h0QnJhY2tldCwgcyk7XG4gICAgICAgIGlmIChlID4gcyAmJiBzID49IDApIHtcbiAgICAgICAgICByZXR1cm4gZm10LnN1YnN0cihzLCAoZSAtIHMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
194
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FzZS1maWVsZC5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFlBQVksQ0FBQztBQUNoQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkRBQTZELENBQUM7QUFJOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRS9DLFdBQVc7QUFDWCxNQUFNLE9BQU8sU0FBUztJQUF0QjtRQTJCUyxnQkFBVyxHQUFRLEVBQUUsQ0FBQztJQWdJL0IsQ0FBQztJQTdIQyxJQUFXLEtBQUs7UUFDZCxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztTQUNoRjthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELElBQVcsS0FBSyxDQUFDLEtBQVU7UUFDekIsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDcEIsSUFBSSxLQUFLLElBQUksS0FBSyxZQUFZLE1BQU0sSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFO2dCQUN4RCxJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUM7YUFDckM7aUJBQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxX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QU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUMvQjtTQUNGO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNGO0FBbkpDO0lBREMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQzs4QkFDSCxTQUFTOzZDQUFDO0FBZ0I3QjtJQURDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxlQUFlLENBQUM7OEJBQ1AsZUFBZTs4Q0FBQztBQU1yQztJQURDLE1BQU0sRUFBRTs7O3NDQU9SO0FBa0JEO0lBREMsTUFBTSxFQUFFOzs7MkNBT1I7QUFPRDtJQURDLE1BQU0sRUFBRTs7O29EQVNSO0FBR0Q7SUFEQyxNQUFNLEVBQUU7OztzREFTUjtBQUdEO0lBREMsTUFBTSxFQUFFOzs7O2lEQUdSO0FBR0Q7SUFEQyxNQUFNLEVBQUU7Ozs7K0NBR1I7QUFHRDtJQURDLE1BQU0sRUFBRTs7OzsyQ0FJUjtBQUdEO0lBREMsTUFBTSxFQUFFOzs7OzJDQUlSO0FBR0Q7SUFEQyxNQUFNLEVBQUU7Ozs7NENBSVI7QUFHRDtJQURDLE1BQU0sRUFBRTs7Ozs2Q0FHUjtBQUdEO0lBREMsTUFBTSxFQUFFOzs7OzBDQUdSO0FBR0Q7SUFEQyxNQUFNLEVBQUU7Ozs7MENBU1I7QUFHRDtJQURDLE1BQU0sRUFBRTs7OzsyQ0FLUiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEV4cG9zZSwgVHlwZSB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCAqIGFzIF8gZnJvbSAndW5kZXJzY29yZSc7XG5pbXBvcnQgeyBXaXphcmRQYWdlRmllbGQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzL2Nhc2UtZWRpdG9yL2RvbWFpbi93aXphcmQtcGFnZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBPcmRlcmFibGUgfSBmcm9tICcuLi9vcmRlcic7XG5pbXBvcnQgeyBBY2Nlc3NDb250cm9sTGlzdCB9IGZyb20gJy4vYWNjZXNzLWNvbnRyb2wtbGlzdC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi9maWVsZC10eXBlLWVudW0ubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRUeXBlIH0gZnJvbSAnLi9maWVsZC10eXBlLm1vZGVsJztcblxuLy8gQGR5bmFtaWNcbmV4cG9ydCBjbGFzcyBDYXNlRmllbGQgaW1wbGVtZW50cyBPcmRlcmFibGUge1xuICBwdWJsaWMgaWQ6IHN0cmluZztcbiAgcHVibGljIGhpZGRlbjogYm9vbGVhbjtcbiAgcHVibGljIGhpZGRlbkNhbm5vdENoYW5nZTogYm9vbGVhbjtcbiAgcHVibGljIGxhYmVsOiBzdHJpbmc7XG4gIHB1YmxpYyBvcmRlcj86IG51bWJlcjtcblxuICBAVHlwZSgoKSA9PiBGaWVsZFR5cGUpXG4gIHB1YmxpYyBmaWVsZF90eXBlOiBGaWVsZFR5cGU7XG5cbiAgcHVibGljIGhpbnRfdGV4dD86IHN0cmluZztcbiAgcHVibGljIHNlY3VyaXR5X2xhYmVsPzogc3RyaW5nO1xuICBwdWJsaWMgZGlzcGxheV9jb250ZXh0OiBzdHJpbmc7XG4gIHB1YmxpYyBkaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyPzogc3RyaW5nO1xuICBwdWJsaWMgbW9udGhfZm9ybWF0Pzogc3RyaW5nO1xuICBwdWJsaWMgc2hvd19jb25kaXRpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyBzaG93X3N1bW1hcnlfY2hhbmdlX29wdGlvbj86IGJvb2xlYW47XG4gIHB1YmxpYyBzaG93X3N1bW1hcnlfY29udGVudF9vcHRpb24/OiBudW1iZXI7XG4gIHB1YmxpYyBhY2xzPzogQWNjZXNzQ29udHJvbExpc3RbXTtcbiAgcHVibGljIG1ldGFkYXRhPzogYm9vbGVhbjtcbiAgcHVibGljIGZvcm1hdHRlZF92YWx1ZT86IGFueTtcbiAgcHVibGljIHJldGFpbl9oaWRkZW5fdmFsdWU6IGJvb2xlYW47XG5cbiAgQFR5cGUoKCkgPT4gV2l6YXJkUGFnZUZpZWxkKVxuICBwdWJsaWMgd2l6YXJkUHJvcHM/OiBXaXphcmRQYWdlRmllbGQ7XG5cbiAgcHVibGljIF92YWx1ZTogYW55O1xuICBwdWJsaWMgX2xpc3RfaXRlbXM6IGFueSA9IFtdO1xuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgaWYgKHRoaXMuaXNEeW5hbWljKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLl92YWx1ZSAmJiB0aGlzLl92YWx1ZS52YWx1ZSA/IHRoaXMuX3ZhbHVlLnZhbHVlLmNvZGUgOiB0aGlzLl92YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IGFueSkge1xuICAgIGlmICh0aGlzLmlzRHluYW1pYygpKSB7XG4gICAgICBpZiAodmFsdWUgJiYgdmFsdWUgaW5zdGFuY2VvZiBPYmplY3QgJiYgdmFsdWUubGlzdF9pdGVtcykge1xuICAgICAgICB0aGlzLl9saXN0X2l0ZW1zID0gdmFsdWUubGlzdF9pdGVtcztcbiAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2xpc3RfaXRlbXMgfHwgdGhpcy5fbGlzdF9pdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgLy8gRXh0cmFjdCB0aGUgbGlzdCBpdGVtcyBmcm9tIHRoZSBjdXJyZW50IHZhbHVlIGlmIHRoYXQncyB0aGUgb25seSBwbGFjZSB0aGV5IGV4aXN0LlxuICAgICAgICB0aGlzLl9saXN0X2l0ZW1zID0gdGhpcy5saXN0X2l0ZW1zO1xuICAgICAgICBpZiAoIXZhbHVlIHx8ICF2YWx1ZS52YWx1ZSkge1xuICAgICAgICAgIHZhbHVlID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBnZXQgbGlzdF9pdGVtcygpOiBhbnkge1xuICAgIGlmICh0aGlzLmlzRHluYW1pYygpKSB7XG4gICAgICByZXR1cm4gdGhpcy5fdmFsdWUgJiYgdGhpcy5fdmFsdWUubGlzdF9pdGVtcyA/IHRoaXMuX3ZhbHVlLmxpc3RfaXRlbXMgOiB0aGlzLl9saXN0X2l0ZW1zO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGhpcy5maWVsZF90eXBlLmZpeGVkX2xpc3RfaXRlbXM7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNldCBsaXN0X2l0ZW1zKGl0ZW1zOiBhbnkpIHtcbiAgICB0aGlzLl9saXN0X2l0ZW1zID0gaXRlbXM7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGdldCBkYXRlVGltZUVudHJ5Rm9ybWF0KCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuaXNDb21wbGV4RGlzcGxheSgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKHRoaXMuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlcikge1xuICAgICAgcmV0dXJuIHRoaXMuZXh0cmFjdEJyYWNrZXRWYWx1ZSh0aGlzLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIsICcjREFURVRJTUVFTlRSWScpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgZ2V0IGRhdGVUaW1lRGlzcGxheUZvcm1hdCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmlzQ29tcGxleEVudHJ5KCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyKSB7XG4gICAgICByZXR1cm4gdGhpcy5leHRyYWN0QnJhY2tldFZhbHVlKHRoaXMuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciwgJyNEQVRFVElNRURJU1BMQVknKTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzQ29tcGxleERpc3BsYXkoKSB7XG4gICAgcmV0dXJuICh0aGlzLmlzQ29tcGxleCgpIHx8IHRoaXMuaXNDb2xsZWN0aW9uKCkpICYmIHRoaXMuaXNSZWFkb25seSgpO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc0NvbXBsZXhFbnRyeSgpIHtcbiAgICByZXR1cm4gKHRoaXMuaXNDb21wbGV4KCkgfHwgdGhpcy5pc0NvbGxlY3Rpb24oKSkgJiYgKHRoaXMuaXNPcHRpb25hbCgpIHx8IHRoaXMuaXNNYW5kYXRvcnkoKSk7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzUmVhZG9ubHkoKSB7XG4gICAgcmV0dXJuICFfLmlzRW1wdHkodGhpcy5kaXNwbGF5X2NvbnRleHQpXG4gICAgICAmJiB0aGlzLmRpc3BsYXlfY29udGV4dC50b1VwcGVyQ2FzZSgpID09PSAnUkVBRE9OTFknO1xuICB9XG5cbiAgQEV4cG9zZSgpXG4gIHB1YmxpYyBpc09wdGlvbmFsKCkge1xuICAgIHJldHVybiAhXy5pc0VtcHR5KHRoaXMuZGlzcGxheV9jb250ZXh0KVxuICAgICAgJiYgdGhpcy5kaXNwbGF5X2NvbnRleHQudG9VcHBlckNhc2UoKSA9PT0gJ09QVElPTkFMJztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNNYW5kYXRvcnkoKSB7XG4gICAgcmV0dXJuICFfLmlzRW1wdHkodGhpcy5kaXNwbGF5X2NvbnRleHQpXG4gICAgICAmJiB0aGlzLmRpc3BsYXlfY29udGV4dC50b1VwcGVyQ2FzZSgpID09PSAnTUFOREFUT1JZJztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNDb2xsZWN0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkX3R5cGUgJiYgdGhpcy5maWVsZF90eXBlLnR5cGUgPT09ICdDb2xsZWN0aW9uJztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNDb21wbGV4KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkX3R5cGUgJiYgdGhpcy5maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4JztcbiAgfVxuXG4gIEBFeHBvc2UoKVxuICBwdWJsaWMgaXNEeW5hbWljKCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGR5bmFtaWNGaWVsZFR5cGVzOiBGaWVsZFR5cGVFbnVtW10gPSBbJ0R5bmFtaWNMaXN0JywgJ0R5bmFtaWNSYWRpb0xpc3QnXTtcblxuICAgIGlmICghdGhpcy5maWVsZF90eXBlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIGR5bmFtaWNGaWVsZFR5cGVzLnNvbWUodCA9PiB0ID09PSB0aGlzLmZpZWxkX3R5cGUudHlwZSk7XG4gIH1cblxuICBARXhwb3NlKClcbiAgcHVibGljIGlzQ2FzZUxpbmsoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXNDb21wbGV4KClcbiAgICAgICYmIHRoaXMuZmllbGRfdHlwZS5pZCA9PT0gJ0Nhc2VMaW5rJ1xuICAgICAgJiYgdGhpcy5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLnNvbWUoY2YgPT4gY2YuaWQgPT09ICdDYXNlUmVmZXJlbmNlJyk7XG4gIH1cbiAgcHVibGljIGV4dHJhY3RCcmFja2V0VmFsdWUoZm10OiBzdHJpbmcsIHBhcmFtTmFtZTogc3RyaW5nLCBsZWZ0QnJhY2tldD0gJygnLCByaWdodEJyYWNrZXQ9ICcpJyApOiBzdHJpbmcge1xuICAgICAgZm10ID0gZm10LnNwbGl0KCcsJylcbiAgICAgICAgLmZpbmQoYSA9PiBhLnRyaW0oKS5zdGFydHNXaXRoKHBhcmFtTmFtZSkpO1xuICAgICAgaWYgKGZtdCkge1xuICAgICAgICBjb25zdCBzID0gZm10LmluZGV4T2YobGVmdEJyYWNrZXQpICsgMTtcbiAgICAgICAgY29uc3QgZSA9IGZtdC5pbmRleE9mKHJpZ2h0QnJhY2tldCwgcyk7XG4gICAgICAgIGlmIChlID4gcyAmJiBzID49IDApIHtcbiAgICAgICAgICByZXR1cm4gZm10LnN1YnN0cihzLCAoZSAtIHMpKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdHlwZS1lbnVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9kb21haW4vZGVmaW5pdGlvbi9maWVsZC10eXBlLWVudW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIEZpZWxkVHlwZUVudW0gPVxuICAnVGV4dCdcbiAgfCAnVGV4dEFyZWEnXG4gIHwgJ1Bvc3Rjb2RlJ1xuICB8ICdOdW1iZXInXG4gIHwgJ1llc09yTm8nXG4gIHwgJ0RhdGUnXG4gIHwgJ0RhdGVUaW1lJ1xuICB8ICdFbWFpbCdcbiAgfCAnUGhvbmVVSydcbiAgfCAnTW9uZXlHQlAnXG4gIHwgJ0ZpeGVkTGlzdCdcbiAgfCAnRHluYW1pY0xpc3QnXG4gIHwgJ0ZpeGVkUmFkaW9MaXN0J1xuICB8ICdEeW5hbWljUmFkaW9MaXN0J1xuICB8ICdDb21wbGV4J1xuICB8ICdDb2xsZWN0aW9uJ1xuICB8ICdNdWx0aVNlbGVjdExpc3QnXG4gIHwgJ0RvY3VtZW50J1xuICB8ICdMYWJlbCdcbiAgfCAnQWRkcmVzc0dsb2JhbCdcbiAgfCAnQWRkcmVzc0dsb2JhbFVLJ1xuICB8ICdBZGRyZXNzVUsnXG4gIHwgJ0Nhc2VQYXltZW50SGlzdG9yeVZpZXdlcidcbiAgfCAnQ2FzZUhpc3RvcnlWaWV3ZXInXG4gIHwgJ09yZ2FuaXNhdGlvbidcbiAgfCAnV2F5c1RvUGF5J1xuICB8ICdDb21wb25lbnRMYXVuY2hlcidcbiAgfCAnRmxhZ3MnXG4gIHwgJ0ZsYWdEZXRhaWwnXG4gIHwgJ0ZsYWdMYXVuY2hlcidcbiAgfCAnQ2FzZUZsYWcnIC8vIFRlbXBvcmFyeSBmaWVsZCB0eXBlIGZvciBmYWtpbmcgRmxhZ3MgZmllbGQgdHlwZTsgdG8gYmUgcmVtb3ZlZFxuICB8ICdDYXNlTGluaydcbiAgfCAnSnVkaWNpYWxVc2VyRmllbGQnO1xuIl19
|
|
@@ -21,9 +21,6 @@ export class FieldTypeSanitiser {
|
|
|
21
21
|
}
|
|
22
22
|
caseFields.forEach(caseField => {
|
|
23
23
|
switch (caseField.field_type.type) {
|
|
24
|
-
case FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_MULTISELECT_LIST:
|
|
25
|
-
this.convertArrayToDynamicListOutput(caseField, data);
|
|
26
|
-
break;
|
|
27
24
|
case FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_RADIO_LIST:
|
|
28
25
|
case FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_LIST:
|
|
29
26
|
this.convertStringToDynamicListOutput(caseField, data);
|
|
@@ -41,17 +38,6 @@ export class FieldTypeSanitiser {
|
|
|
41
38
|
}
|
|
42
39
|
});
|
|
43
40
|
}
|
|
44
|
-
convertArrayToDynamicListOutput(field, data) {
|
|
45
|
-
const values = data[field.id];
|
|
46
|
-
if (Array.isArray(values)) {
|
|
47
|
-
const listItems = this.getListItems(field);
|
|
48
|
-
const matches = listItems.filter(item => values.map(v => v.code).indexOf(item.code) !== -1);
|
|
49
|
-
data[field.id] = {
|
|
50
|
-
value: matches,
|
|
51
|
-
list_items: listItems
|
|
52
|
-
};
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
41
|
convertStringToDynamicListOutput(field, data) {
|
|
56
42
|
const stringValue = data[field.id];
|
|
57
43
|
if (typeof stringValue === 'string') {
|
|
@@ -81,10 +67,9 @@ FieldTypeSanitiser.FIELD_TYPE_COMPLEX = 'Complex';
|
|
|
81
67
|
FieldTypeSanitiser.FIELD_TYPE_COLLECTION = 'Collection';
|
|
82
68
|
FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_LIST = 'DynamicList';
|
|
83
69
|
FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_RADIO_LIST = 'DynamicRadioList';
|
|
84
|
-
FieldTypeSanitiser.FIELD_TYPE_DYNAMIC_MULTISELECT_LIST = 'DynamicMultiSelectList';
|
|
85
70
|
FieldTypeSanitiser.ɵfac = function FieldTypeSanitiser_Factory(t) { return new (t || FieldTypeSanitiser)(); };
|
|
86
71
|
FieldTypeSanitiser.ɵprov = i0.ɵɵdefineInjectable({ token: FieldTypeSanitiser, factory: FieldTypeSanitiser.ɵfac });
|
|
87
72
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(FieldTypeSanitiser, [{
|
|
88
73
|
type: Injectable
|
|
89
74
|
}], null, null); })();
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtdHlwZS1zYW5pdGlzZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL3NlcnZpY2VzL2Zvcm0vZmllbGQtdHlwZS1zYW5pdGlzZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGtCQUFrQjtJQU03Qjs7Ozs7Ozs7Ozs7OztPQWFHO0lBQ0ssYUFBYSxDQUFDLFVBQXVCLEVBQUUsSUFBUztRQUN0RCxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3hCLE9BQU87U0FDUjtRQUNELFVBQVUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFFN0IsUUFBUSxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRTtnQkFDakMsS0FBSyxrQkFBa0IsQ0FBQyw2QkFBNkIsQ0FBQztnQkFDdEQsS0FBSyxrQkFBa0IsQ0FBQyx1QkFBdUI7b0JBQzdDLElBQUksQ0FBQyxnQ0FBZ0MsQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3ZELE1BQU07Z0JBRVIsS0FBSyxrQkFBa0IsQ0FBQyxrQkFBa0I7b0JBQ3hDLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO29CQUM1RSxNQUFNO2dCQUVSLEtBQUssa0JBQWtCLENBQUMscUJBQXFCO29CQUMzQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFO3dCQUNyQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFdBQWdCLEVBQUUsRUFBRTs0QkFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLGNBQWMsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7d0JBQ25HLENBQUMsQ0FBQyxDQUFDO3FCQUNKO29CQUNELE1BQU07YUFDVDtRQUVILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGdDQUFnQyxDQUFDLEtBQWdCLEVBQUUsSUFBUztRQUNsRSxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ25DLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFO1lBQ25DLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0MsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDLENBQUM7WUFDdEUsSUFBSSxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEdBQUc7b0JBQ2YsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7b0JBQ2pCLFVBQVUsRUFBRSxTQUFTO2lCQUN0QixDQUFDO2FBQ0g7U0FDRjtJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsS0FBZ0I7UUFDbkMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLEtBQUssQ0FBQyxVQUFVLEVBQUU7Z0JBQ3BCLE9BQU8sS0FBSyxDQUFDLFVBQVUsQ0FBQzthQUN6QjtZQUNELElBQUksS0FBSyxDQUFDLGVBQWUsSUFBSSxLQUFLLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRTtnQkFDN0QsT0FBTyxLQUFLLENBQUMsZUFBZSxDQUFDLFVBQVUsQ0FBQzthQUN6QztTQUNGO1FBQ0QsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDOztBQXZFc0IscUNBQWtCLEdBQWtCLFNBQVMsQ0FBQztBQUM5Qyx3Q0FBcUIsR0FBa0IsWUFBWSxDQUFDO0FBQ3BELDBDQUF1QixHQUFrQixhQUFhLENBQUM7QUFDdkQsZ0RBQTZCLEdBQWtCLGtCQUFrQixDQUFDO29GQUo5RSxrQkFBa0I7MERBQWxCLGtCQUFrQixXQUFsQixrQkFBa0I7dUZBQWxCLGtCQUFrQjtjQUQ5QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vZmllbGQtdHlwZS1lbnVtLm1vZGVsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEZpZWxkVHlwZVNhbml0aXNlciB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRklFTERfVFlQRV9DT01QTEVYOiBGaWVsZFR5cGVFbnVtID0gJ0NvbXBsZXgnO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEZJRUxEX1RZUEVfQ09MTEVDVElPTjogRmllbGRUeXBlRW51bSA9ICdDb2xsZWN0aW9uJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBGSUVMRF9UWVBFX0RZTkFNSUNfTElTVDogRmllbGRUeXBlRW51bSA9ICdEeW5hbWljTGlzdCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRklFTERfVFlQRV9EWU5BTUlDX1JBRElPX0xJU1Q6IEZpZWxkVHlwZUVudW0gPSAnRHluYW1pY1JhZGlvTGlzdCc7XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGZpbmRzIGR5bmFtaWNsaXN0cyBpbiBhIGZvcm0gYW5kIHJlcGxhY2VzIHRoZWlyIHN0cmluZ1xuICAgKiB2YWx1ZXMsIHdpdGggYSBKU09OIG9iamVjdCwgYXMgYmVsb3c6XG4gICAqIEZyb206ICd4eXonXG4gICAqIFRvICA6IHtcbiAgICogICB2YWx1ZTogeyBjb2RlOid4eXonLCBsYWJlbDonWFlaJyB9LFxuICAgKiAgIGxpc3RfaXRlbXM6IFtcbiAgICogICAgIHsgY29kZToneHl6JywgbGFiZWw6J1hZWid9LFxuICAgKiAgICAgeyBjb2RlOidhYmMnLCBsYWJlbDonQUJDJ31cbiAgICogICBdXG4gICAqIH1cbiAgICogQHBhcmFtIGNhc2VGaWVsZHMgVGhlIENhc2VGaWVsZHMgdG8gYXNzZXNzLlxuICAgKiBAcGFyYW0gZGF0YSBUaGUgZGF0YSBpbiB0aGUgZm9ybS5cbiAgICovXG4gICBwdWJsaWMgc2FuaXRpc2VMaXN0cyhjYXNlRmllbGRzOiBDYXNlRmllbGRbXSwgZGF0YTogYW55KSB7XG4gICAgaWYgKCFkYXRhIHx8ICFjYXNlRmllbGRzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNhc2VGaWVsZHMuZm9yRWFjaChjYXNlRmllbGQgPT4ge1xuXG4gICAgICBzd2l0Y2ggKGNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUpIHtcbiAgICAgICAgY2FzZSBGaWVsZFR5cGVTYW5pdGlzZXIuRklFTERfVFlQRV9EWU5BTUlDX1JBRElPX0xJU1Q6XG4gICAgICAgIGNhc2UgRmllbGRUeXBlU2FuaXRpc2VyLkZJRUxEX1RZUEVfRFlOQU1JQ19MSVNUOlxuICAgICAgICAgIHRoaXMuY29udmVydFN0cmluZ1RvRHluYW1pY0xpc3RPdXRwdXQoY2FzZUZpZWxkLCBkYXRhKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIEZpZWxkVHlwZVNhbml0aXNlci5GSUVMRF9UWVBFX0NPTVBMRVg6XG4gICAgICAgICAgdGhpcy5zYW5pdGlzZUxpc3RzKGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLCBkYXRhW2Nhc2VGaWVsZC5pZF0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgRmllbGRUeXBlU2FuaXRpc2VyLkZJRUxEX1RZUEVfQ09MTEVDVElPTjpcbiAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRhW2Nhc2VGaWVsZC5pZF0pKSB7XG4gICAgICAgICAgICBkYXRhW2Nhc2VGaWVsZC5pZF0uZm9yRWFjaCgoZm9ybUVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnNhbml0aXNlTGlzdHMoY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzLCBmb3JtRWxlbWVudC52YWx1ZSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG5cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFN0cmluZ1RvRHluYW1pY0xpc3RPdXRwdXQoZmllbGQ6IENhc2VGaWVsZCwgZGF0YTogYW55KTogdm9pZCB7XG4gICAgY29uc3Qgc3RyaW5nVmFsdWUgPSBkYXRhW2ZpZWxkLmlkXTtcbiAgICBpZiAodHlwZW9mIHN0cmluZ1ZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgY29uc3QgbGlzdEl0ZW1zID0gdGhpcy5nZXRMaXN0SXRlbXMoZmllbGQpO1xuICAgICAgY29uc3QgbWF0Y2hlcyA9IGxpc3RJdGVtcy5maWx0ZXIodmFsdWUgPT4gdmFsdWUuY29kZSA9PT0gc3RyaW5nVmFsdWUpO1xuICAgICAgaWYgKG1hdGNoZXMgJiYgbWF0Y2hlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGRhdGFbZmllbGQuaWRdID0ge1xuICAgICAgICAgIHZhbHVlOiBtYXRjaGVzWzBdLFxuICAgICAgICAgIGxpc3RfaXRlbXM6IGxpc3RJdGVtc1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0TGlzdEl0ZW1zKGZpZWxkOiBDYXNlRmllbGQpOiBhbnlbXSB7XG4gICAgaWYgKGZpZWxkKSB7XG4gICAgICBpZiAoZmllbGQubGlzdF9pdGVtcykge1xuICAgICAgICByZXR1cm4gZmllbGQubGlzdF9pdGVtcztcbiAgICAgIH1cbiAgICAgIGlmIChmaWVsZC5mb3JtYXR0ZWRfdmFsdWUgJiYgZmllbGQuZm9ybWF0dGVkX3ZhbHVlLmxpc3RfaXRlbXMpIHtcbiAgICAgICAgcmV0dXJuIGZpZWxkLmZvcm1hdHRlZF92YWx1ZS5saXN0X2l0ZW1zO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxufVxuIl19
|