mis-crystal-design-system 18.2.13 → 18.2.16-test
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/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +1 -0
- package/daterangepicker_v2/daterangepicker-constants.d.ts +4 -0
- package/daterangepicker_v2/daterangepicker.module.d.ts +9 -8
- package/daterangepicker_v2/models/drp-config.model.d.ts +14 -0
- package/daterangepicker_v2/public_api.d.ts +3 -1
- package/daterangepicker_v2/tz-daterangepicker.directive.d.ts +2 -1
- package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +24 -1
- package/daterangepicker_v2/tz-drp-mobile-container/tz-drp-mobile-container.component.d.ts +13 -0
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +49 -33
- package/esm2022/daterangepicker_v2/daterangepicker-constants.mjs +12 -1
- package/esm2022/daterangepicker_v2/daterangepicker.module.mjs +5 -4
- package/esm2022/daterangepicker_v2/models/drp-config.model.mjs +1 -1
- package/esm2022/daterangepicker_v2/public_api.mjs +3 -1
- package/esm2022/daterangepicker_v2/tz-daterangepicker.directive.mjs +8 -3
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +177 -50
- package/esm2022/daterangepicker_v2/tz-drp-mobile-container/tz-drp-mobile-container.component.mjs +267 -0
- package/esm2022/specificdatepicker/models/sdp-config.model.mjs +1 -1
- package/esm2022/specificdatepicker/specificdatepicker.module.mjs +4 -5
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +277 -225
- package/esm2022/specificdatepicker/tz-specificdatepicker.directive.mjs +33 -31
- package/esm2022/table/table.component.mjs +62 -63
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +48 -32
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +464 -61
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +311 -257
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +61 -62
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/package.json +7 -7
- package/specificdatepicker/models/sdp-config.model.d.ts +1 -0
- package/specificdatepicker/specificdatepicker.module.d.ts +2 -3
- package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +10 -9
- package/specificdatepicker/tz-specificdatepicker.directive.d.ts +4 -2
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { OverlayConfig } from "@angular/cdk/overlay";
|
|
1
|
+
import { ConnectionPositionPair, OverlayConfig } from "@angular/cdk/overlay";
|
|
2
2
|
import { ComponentPortal } from "@angular/cdk/portal";
|
|
3
3
|
import { Directive, HostListener, Injector, input, output, Optional, signal, effect } from "@angular/core";
|
|
4
4
|
import { take } from "rxjs/operators";
|
|
5
|
-
import { genPositionPairs } from "mis-crystal-design-system/utils";
|
|
6
5
|
import { CONTAINER_DATA, DATE_FORMAT } from "./daterangepicker-constants";
|
|
7
6
|
import { TzDrpContainerComponent } from "./tz-sdp-container/tz-sdp-container.component";
|
|
8
7
|
import * as i0 from "@angular/core";
|
|
@@ -34,6 +33,7 @@ export class TzSpecificDatepickerDirective {
|
|
|
34
33
|
this.offsetY = input(0);
|
|
35
34
|
this.isSPickerSelected = input(false);
|
|
36
35
|
this.isSingleDatePickerEnable = input(false);
|
|
36
|
+
this.isMobileView = input(false);
|
|
37
37
|
// Outputs are now defined using `output()`
|
|
38
38
|
this.dateChange = output();
|
|
39
39
|
this.dateChangeRange = output();
|
|
@@ -41,10 +41,35 @@ export class TzSpecificDatepickerDirective {
|
|
|
41
41
|
this.overlayRef = null;
|
|
42
42
|
// Effect to handle the overlay position update reactively
|
|
43
43
|
effect(() => {
|
|
44
|
-
|
|
45
|
-
this.
|
|
44
|
+
const positions = this.buildPositions();
|
|
45
|
+
if (!this.overlayRef) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this.overlayRef.updatePositionStrategy(this.buildPositionStrategy(positions));
|
|
46
49
|
});
|
|
47
50
|
}
|
|
51
|
+
buildPositions() {
|
|
52
|
+
const x = this.positionX();
|
|
53
|
+
const y = this.positionY();
|
|
54
|
+
const offsetX = this.offsetX();
|
|
55
|
+
const offsetY = this.offsetY();
|
|
56
|
+
const oppositeY = y === "top" ? "bottom" : y === "bottom" ? "top" : "center";
|
|
57
|
+
const otherX = ["start", "center", "end"].filter(pos => pos !== x);
|
|
58
|
+
const pair = (originX, originY, overlayY) => new ConnectionPositionPair({ originX, originY }, { overlayX: originX, overlayY }, offsetX, offsetY);
|
|
59
|
+
return [
|
|
60
|
+
pair(x, y, oppositeY),
|
|
61
|
+
pair(x, oppositeY, y),
|
|
62
|
+
...otherX.map(pos => pair(pos, y, oppositeY)),
|
|
63
|
+
...otherX.map(pos => pair(pos, oppositeY, y))
|
|
64
|
+
];
|
|
65
|
+
}
|
|
66
|
+
buildPositionStrategy(positions) {
|
|
67
|
+
return this.overlay
|
|
68
|
+
.position()
|
|
69
|
+
.flexibleConnectedTo(this.element)
|
|
70
|
+
.withPositions(positions)
|
|
71
|
+
.withPush(true);
|
|
72
|
+
}
|
|
48
73
|
toggleDatePicker() {
|
|
49
74
|
if (this.isOpen()) {
|
|
50
75
|
this.close();
|
|
@@ -68,16 +93,7 @@ export class TzSpecificDatepickerDirective {
|
|
|
68
93
|
}
|
|
69
94
|
open() {
|
|
70
95
|
this.isOpen.set(true);
|
|
71
|
-
const positionStrategy = this.
|
|
72
|
-
.position()
|
|
73
|
-
.flexibleConnectedTo(this.element)
|
|
74
|
-
.withPositions(genPositionPairs({
|
|
75
|
-
positionX: this.positionX(),
|
|
76
|
-
positionY: this.positionY(),
|
|
77
|
-
offsetX: this.offsetX(),
|
|
78
|
-
offsetY: this.offsetY(),
|
|
79
|
-
}, true))
|
|
80
|
-
.withPush(true);
|
|
96
|
+
const positionStrategy = this.buildPositionStrategy(this.buildPositions());
|
|
81
97
|
const config = new OverlayConfig({
|
|
82
98
|
hasBackdrop: true,
|
|
83
99
|
positionStrategy,
|
|
@@ -103,6 +119,7 @@ export class TzSpecificDatepickerDirective {
|
|
|
103
119
|
noShow: this.noShows(),
|
|
104
120
|
isSPickerSelected: this.isSPickerSelected(),
|
|
105
121
|
isSingleDatePickerEnable: this.isSingleDatePickerEnable(),
|
|
122
|
+
isMobileView: this.isMobileView(),
|
|
106
123
|
}
|
|
107
124
|
}
|
|
108
125
|
]
|
|
@@ -115,21 +132,6 @@ export class TzSpecificDatepickerDirective {
|
|
|
115
132
|
this.close();
|
|
116
133
|
});
|
|
117
134
|
}
|
|
118
|
-
updateOverlayPosition() {
|
|
119
|
-
if (this.overlayRef) {
|
|
120
|
-
const positionStrategy = this.overlay
|
|
121
|
-
.position()
|
|
122
|
-
.flexibleConnectedTo(this.element)
|
|
123
|
-
.withPositions(genPositionPairs({
|
|
124
|
-
positionX: this.positionX(),
|
|
125
|
-
positionY: this.positionY(),
|
|
126
|
-
offsetX: this.offsetX(),
|
|
127
|
-
offsetY: this.offsetY(),
|
|
128
|
-
}, true))
|
|
129
|
-
.withPush(true);
|
|
130
|
-
this.overlayRef.updatePositionStrategy(positionStrategy);
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
135
|
applyDate(dates) {
|
|
134
136
|
this.dateChange.emit(dates);
|
|
135
137
|
this.control?.control.patchValue(dates);
|
|
@@ -155,7 +157,7 @@ export class TzSpecificDatepickerDirective {
|
|
|
155
157
|
static { this.ɵfac = function TzSpecificDatepickerDirective_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || TzSpecificDatepickerDirective)(i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.Overlay), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2.NgControl, 8)); }; }
|
|
156
158
|
static { this.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: TzSpecificDatepickerDirective, selectors: [["input", "misTzSdp", ""]], hostBindings: function TzSpecificDatepickerDirective_HostBindings(rf, ctx) { if (rf & 1) {
|
|
157
159
|
i0.ɵɵlistener("click", function TzSpecificDatepickerDirective_click_HostBindingHandler() { return ctx.toggleDatePicker(); })("keydown.enter", function TzSpecificDatepickerDirective_keydown_enter_HostBindingHandler() { return ctx.toggleDatePickerOnEnter(); })("keydown.esc", function TzSpecificDatepickerDirective_keydown_esc_HostBindingHandler() { return ctx.closeOnEsc(); });
|
|
158
|
-
} }, inputs: { dpConfig: [1, "dpConfig"], selectedDates: [1, "selectedDates"], selectedDatesRange: [1, "selectedDatesRange"], datesDisabled: [1, "datesDisabled"], holidaysDates: [1, "holidaysDates"], weekOffsSelection: [1, "weekOffsSelection"], noShows: [1, "noShows"], dateMessages: [1, "dateMessages"], positionX: [1, "positionX"], positionY: [1, "positionY"], offsetX: [1, "offsetX"], offsetY: [1, "offsetY"], isSPickerSelected: [1, "isSPickerSelected"], isSingleDatePickerEnable: [1, "isSingleDatePickerEnable"] }, outputs: { dateChange: "dateChange", dateChangeRange: "dateChangeRange" } }); }
|
|
160
|
+
} }, inputs: { dpConfig: [1, "dpConfig"], selectedDates: [1, "selectedDates"], selectedDatesRange: [1, "selectedDatesRange"], datesDisabled: [1, "datesDisabled"], holidaysDates: [1, "holidaysDates"], weekOffsSelection: [1, "weekOffsSelection"], noShows: [1, "noShows"], dateMessages: [1, "dateMessages"], positionX: [1, "positionX"], positionY: [1, "positionY"], offsetX: [1, "offsetX"], offsetY: [1, "offsetY"], isSPickerSelected: [1, "isSPickerSelected"], isSingleDatePickerEnable: [1, "isSingleDatePickerEnable"], isMobileView: [1, "isMobileView"] }, outputs: { dateChange: "dateChange", dateChangeRange: "dateChangeRange" } }); }
|
|
159
161
|
}
|
|
160
162
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(TzSpecificDatepickerDirective, [{
|
|
161
163
|
type: Directive,
|
|
@@ -174,4 +176,4 @@ export class TzSpecificDatepickerDirective {
|
|
|
174
176
|
type: HostListener,
|
|
175
177
|
args: ["keydown.esc"]
|
|
176
178
|
}] }); })();
|
|
177
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHotc3BlY2lmaWNkYXRlcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3NwZWNpZmljZGF0ZXBpY2tlci90ei1zcGVjaWZpY2RhdGVwaWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFvQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpJLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNuRSxPQUFPLEVBQUUsY0FBYyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBRTFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7O0FBS3hGLE1BQU0sT0FBTyw2QkFBNkI7SUE2QnhDLFlBQ1UsT0FBbUIsRUFDbkIsT0FBZ0IsRUFDaEIsZ0JBQWtDLEVBQ3RCLE9BQWtCO1FBSDlCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ3RCLFlBQU8sR0FBUCxPQUFPLENBQVc7UUFoQ3hDLHlDQUF5QztRQUN6QixhQUFRLEdBQUcsS0FBSyxDQUFxQjtZQUNuRCxNQUFNLEVBQUUsV0FBVztZQUNuQixPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxFQUFFO1lBQ1gsUUFBUSxFQUFFLGNBQWM7U0FD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S0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFRCxLQUFLO1FBQ0gsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxhQUFhLENBQUM7UUFDOUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLENBQUM7UUFDRCxJQUFJLFNBQVMsSUFBSSxPQUFPLFNBQVMsQ0FBQyxLQUFLLEtBQUssVUFBVSxFQUFFLENBQUM7WUFDdkQsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQzs4SEE1S1UsNkJBQTZCO29FQUE3Qiw2QkFBNkI7WUFBN0Isa0dBQUEsc0JBQWtCLElBQVcscUdBQTdCLDZCQUF5QixJQUFJLGlHQUE3QixnQkFBWSxJQUFpQjs7O2lGQUE3Qiw2QkFBNkI7Y0FIekMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7YUFDNUI7O3NCQWtDSSxRQUFRO3FCQVVYLGdCQUFnQjtrQkFEZixZQUFZO21CQUFDLE9BQU87WUFVckIsdUJBQXVCO2tCQUR0QixZQUFZO21CQUFDLGVBQWU7WUFVN0IsVUFBVTtrQkFEVCxZQUFZO21CQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yLCBpbnB1dCwgb3V0cHV0LCBPcHRpb25hbCwgVmlld0NvbnRhaW5lclJlZiwgc2lnbmFsLCBlZmZlY3QgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBnZW5Qb3NpdGlvblBhaXJzIH0gZnJvbSBcIm1pcy1jcnlzdGFsLWRlc2lnbi1zeXN0ZW0vdXRpbHNcIjtcbmltcG9ydCB7IENPTlRBSU5FUl9EQVRBLCBEQVRFX0ZPUk1BVCB9IGZyb20gXCIuL2RhdGVyYW5nZXBpY2tlci1jb25zdGFudHNcIjtcbmltcG9ydCB7IElTRGF0ZVBpY2tlckNvbmZpZywgSVNEYXRlUGlja2VyVG9hc3RUZXh0LCBJU1NlbGVjdGVkRGF0ZXNDb25maWcsIElSU2VsZWN0ZWREYXRlc0NvbmZpZyB9IGZyb20gXCIuL21vZGVscy9zZHAtY29uZmlnLm1vZGVsXCI7XG5pbXBvcnQgeyBUekRycENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gXCIuL3R6LXNkcC1jb250YWluZXIvdHotc2RwLWNvbnRhaW5lci5jb21wb25lbnRcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcImlucHV0W21pc1R6U2RwXVwiXG59KVxuZXhwb3J0IGNsYXNzIFR6U3BlY2lmaWNEYXRlcGlja2VyRGlyZWN0aXZlIHtcbiAgLy8gSW5wdXRzIGFyZSBub3cgZGVmaW5lZCB1c2luZyBgaW5wdXQoKWBcbiAgcHVibGljIHJlYWRvbmx5IGRwQ29uZmlnID0gaW5wdXQ8SVNEYXRlUGlja2VyQ29uZmlnPih7XG4gICAgZm9ybWF0OiBEQVRFX0ZPUk1BVCxcbiAgICBtaW5EYXRlOiBcIlwiLFxuICAgIG1heERhdGU6IFwiXCIsXG4gICAgdGltZXpvbmU6IFwiQXNpYS9Lb2xrYXRhXCJcbiAgfSk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZERhdGVzID0gaW5wdXQ8SVNTZWxlY3RlZERhdGVzQ29uZmlnW10+KFtdKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZXNSYW5nZSA9IGlucHV0PElSU2VsZWN0ZWREYXRlc0NvbmZpZz4oe3N0YXJ0RGF0ZTogbnVsbCwgZW5kRGF0ZTogbnVsbH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0ZXNEaXNhYmxlZCA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG4gIHB1YmxpYyByZWFkb25seSBob2xpZGF5c0RhdGVzID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcbiAgcHVibGljIHJlYWRvbmx5IHdlZWtPZmZzU2VsZWN0aW9uID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcbiAgcHVibGljIHJlYWRvbmx5IG5vU2hvd3MgPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0ZU1lc3NhZ2VzID0gaW5wdXQ8SVNEYXRlUGlja2VyVG9hc3RUZXh0W10+KFtdKTtcbiAgcHVibGljIHJlYWRvbmx5IHBvc2l0aW9uWCA9IGlucHV0PFwic3RhcnRcIiB8IFwiY2VudGVyXCIgfCBcImVuZFwiPihcImNlbnRlclwiKTtcbiAgcHVibGljIHJlYWRvbmx5IHBvc2l0aW9uWSA9IGlucHV0PFwidG9wXCIgfCBcImNlbnRlclwiIHwgXCJib3R0b21cIj4oXCJib3R0b21cIik7XG4gIHB1YmxpYyByZWFkb25seSBvZmZzZXRYID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgcHVibGljIHJlYWRvbmx5IG9mZnNldFkgPSBpbnB1dDxudW1iZXI+KDApO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNTUGlja2VyU2VsZWN0ZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBpc1NpbmdsZURhdGVQaWNrZXJFbmFibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIFxuICAvLyBPdXRwdXRzIGFyZSBub3cgZGVmaW5lZCB1c2luZyBgb3V0cHV0KClgXG4gIHB1YmxpYyByZWFkb25seSBkYXRlQ2hhbmdlID0gb3V0cHV0PElTU2VsZWN0ZWREYXRlc0NvbmZpZ1tdPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0ZUNoYW5nZVJhbmdlID0gb3V0cHV0PElSU2VsZWN0ZWREYXRlc0NvbmZpZz4oKTtcbiAgXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNPcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2w6IE5nQ29udHJvbFxuICApIHtcbiAgICAvLyBFZmZlY3QgdG8gaGFuZGxlIHRoZSBvdmVybGF5IHBvc2l0aW9uIHVwZGF0ZSByZWFjdGl2ZWx5XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIC8vIFRyaWdnZXJlZCBieSBjaGFuZ2VzIGluIGFueSBwb3NpdGlvbi1yZWxhdGVkIGlucHV0IHNpZ25hbHNcbiAgICAgIHRoaXMudXBkYXRlT3ZlcmxheVBvc2l0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwiY2xpY2tcIilcbiAgdG9nZ2xlRGF0ZVBpY2tlcigpIHtcbiAgICBpZiAodGhpcy5pc09wZW4oKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwia2V5ZG93bi5lbnRlclwiKVxuICB0b2dnbGVEYXRlUGlja2VyT25FbnRlcigpIHtcbiAgICBpZiAodGhpcy5pc09wZW4oKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW4oKTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKFwia2V5ZG93bi5lc2NcIilcbiAgY2xvc2VPbkVzYygpIHtcbiAgICBpZiAodGhpcy5pc09wZW4oKSkge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlbigpIHtcbiAgICB0aGlzLmlzT3Blbi5zZXQodHJ1ZSk7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudClcbiAgICAgIC53aXRoUG9zaXRpb25zKFxuICAgICAgICBnZW5Qb3NpdGlvblBhaXJzKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBvc2l0aW9uWDogdGhpcy5wb3NpdGlvblgoKSxcbiAgICAgICAgICAgIHBvc2l0aW9uWTogdGhpcy5wb3NpdGlvblkoKSxcbiAgICAgICAgICAgIG9mZnNldFg6IHRoaXMub2Zmc2V0WCgpLFxuICAgICAgICAgICAgb2Zmc2V0WTogdGhpcy5vZmZzZXRZKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB0cnVlXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC53aXRoUHVzaCh0cnVlKTtcbiAgICAgIFxuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcbiAgICB9KTtcbiAgICBcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XG4gICAgY29uc3QgdGVtcFJlZiA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICBUekRycENvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENPTlRBSU5FUl9EQVRBLFxuICAgICAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgICAgbWVzc2FnZXM6IHRoaXMuZGF0ZU1lc3NhZ2VzKCksXG4gICAgICAgICAgICAgIGRhdGVzOiB0aGlzLmNvbnRyb2w/LmNvbnRyb2wudmFsdWUgfHwgdGhpcy5zZWxlY3RlZERhdGVzKCksXG4gICAgICAgICAgICAgIGRhdGVzUmFuZ2U6IHRoaXMuY29udHJvbD8uY29udHJvbC52YWx1ZSB8fCB0aGlzLnNlbGVjdGVkRGF0ZXNSYW5nZSgpLFxuICAgICAgICAgICAgICBkcENvbmZpZzogdGhpcy5kcENvbmZpZygpLFxuICAgICAgICAgICAgICBkYXRlc0Rpc2FibGVkOiB0aGlzLmRhdGVzRGlzYWJsZWQoKSxcbiAgICAgICAgICAgICAgZGF0ZUNoYW5nZTogdGhpcy5hcHBseURhdGUuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgZGF0ZUNoYW5nZVJhbmdlOiB0aGlzLmFwcGx5RGF0ZVJhbmdlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgIGNsb3NlOiB0aGlzLmNsb3NlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgIHdlZWtPZmZzOiB0aGlzLndlZWtPZmZzU2VsZWN0aW9uKCksXG4gICAgICAgICAgICAgIGhvbGlkYXlzOiB0aGlzLmhvbGlkYXlzRGF0ZXMoKSxcbiAgICAgICAgICAgICAgbm9TaG93OiB0aGlzLm5vU2hvd3MoKSxcbiAgICAgICAgICAgICAgaXNTUGlja2VyU2VsZWN0ZWQ6IHRoaXMuaXNTUGlja2VyU2VsZWN0ZWQoKSxcbiAgICAgICAgICAgICAgaXNTaW5nbGVEYXRlUGlja2VyRW5hYmxlOiB0aGlzLmlzU2luZ2xlRGF0ZVBpY2tlckVuYWJsZSgpLFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfSlcbiAgICApO1xuICAgIHRoaXMub3ZlcmxheVJlZi5hdHRhY2godGVtcFJlZik7XG4gICAgdGhpcy5vdmVybGF5UmVmXG4gICAgICAuYmFja2Ryb3BDbGljaygpXG4gICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH0pO1xuICB9XG4gIFxuICBwcml2YXRlIHVwZGF0ZU92ZXJsYXlQb3NpdGlvbigpIHtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICBjb25zdCBwb3NpdGlvblN0cmF0ZWd5ID0gdGhpcy5vdmVybGF5XG4gICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudClcbiAgICAgICAgLndpdGhQb3NpdGlvbnMoXG4gICAgICAgICAgZ2VuUG9zaXRpb25QYWlycyhcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgcG9zaXRpb25YOiB0aGlzLnBvc2l0aW9uWCgpLFxuICAgICAgICAgICAgICBwb3NpdGlvblk6IHRoaXMucG9zaXRpb25ZKCksXG4gICAgICAgICAgICAgIG9mZnNldFg6IHRoaXMub2Zmc2V0WCgpLFxuICAgICAgICAgICAgICBvZmZzZXRZOiB0aGlzLm9mZnNldFkoKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB0cnVlXG4gICAgICAgICAgKVxuICAgICAgICApXG4gICAgICAgIC53aXRoUHVzaCh0cnVlKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHBvc2l0aW9uU3RyYXRlZ3kpO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5RGF0ZShkYXRlczogSVNTZWxlY3RlZERhdGVzQ29uZmlnW10pIHtcbiAgICB0aGlzLmRhdGVDaGFuZ2UuZW1pdChkYXRlcyk7XG4gICAgdGhpcy5jb250cm9sPy5jb250cm9sLnBhdGNoVmFsdWUoZGF0ZXMpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuICBcbiAgYXBwbHlEYXRlUmFuZ2UoZGF0ZXM6IElSU2VsZWN0ZWREYXRlc0NvbmZpZykge1xuICAgIHRoaXMuZGF0ZUNoYW5nZVJhbmdlLmVtaXQoZGF0ZXMpO1xuICAgIHRoaXMuY29udHJvbD8uY29udHJvbC5wYXRjaFZhbHVlKGRhdGVzKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbiAgXG4gIGNsb3NlKCkge1xuICAgIGNvbnN0IHRyaWdnZXJFbCA9IHRoaXMuZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcbiAgICB0aGlzLmlzT3Blbi5zZXQoZmFsc2UpO1xuICAgIGlmICh0aGlzLm92ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMub3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMub3ZlcmxheVJlZiA9IG51bGw7XG4gICAgfVxuICAgIGlmICh0cmlnZ2VyRWwgJiYgdHlwZW9mIHRyaWdnZXJFbC5mb2N1cyA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHRyaWdnZXJFbC5mb2N1cygpLCAxMCk7XG4gICAgfVxuICB9XG59XG5cblxuIl19
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHotc3BlY2lmaWNkYXRlcGlja2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL21pcy1jb21wb25lbnRzL3NwZWNpZmljZGF0ZXBpY2tlci90ei1zcGVjaWZpY2RhdGVwaWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBb0MsYUFBYSxFQUFxQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2xKLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQW9CLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekksT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sK0NBQStDLENBQUM7Ozs7QUFLeEYsTUFBTSxPQUFPLDZCQUE2QjtJQThCeEMsWUFDVSxPQUFtQixFQUNuQixPQUFnQixFQUNoQixnQkFBa0MsRUFDdEIsT0FBa0I7UUFIOUIsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUNuQixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQ2hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDdEIsWUFBTyxHQUFQLE9BQU8sQ0FBVztRQWpDeEMseUNBQXlDO1FBQ3pCLGFBQVEsR0FBRyxLQUFLLENBQXFCO1lBQ25ELE1BQU0sRUFBRSxXQUFXO1lBQ25CLE9BQU8sRUFBRSxFQUFFO1lBQ1gsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUUsY0FBYztTQUN6QixDQUFDLENBQUM7UUFDYSxrQkFBYSxHQUFHLEtBQUssQ0FBMEIsRUFBRSxDQUFDLENBQUM7UUFDbkQsdUJBQWtCLEdBQUcsS0FBSyxDQUF3QixFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7UUFDcEYsa0JBQWEsR0FBRyxLQUFLLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDcEMsa0JBQWEsR0FBRyxLQUFLLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDcEMsc0JBQWlCLEdBQUcsS0FBSyxDQUFXLEVBQUUsQ0FBQyxDQUFDO1FBQ3hDLFlBQU8sR0FBRyxLQUFLLENBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUIsaUJBQVksR0FBRyxLQUFLLENBQTBCLEVBQUUsQ0FBQyxDQUFDO1FBQ2xELGNBQVMsR0FBRyxLQUFLLENBQTZCLFFBQVEsQ0FBQyxDQUFDO1FBQ3hELGNBQVMsR0FBRyxLQUFLLENBQThCLFFBQVEsQ0FBQyxDQUFDO1FBQ3pELFlBQU8sR0FBRyxLQUFLLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsWUFBTyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUMzQixzQkFBaUIsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDMUMsNkJBQXdCLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pELGlCQUFZLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBRXJELDJDQUEyQztRQUMzQixlQUFVLEdBQUcsTUFBTSxFQUEyQixDQUFDO1FBQy9DLG9CQUFlLEdBQUcsTUFBTSxFQUF5QixDQUFDO1FBRWpELFdBQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsZUFBVSxHQUFzQixJQUFJLENBQUM7UUFRM0MsMERBQTBEO1FBQzFELE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDckIsT0FBTztZQUNULENBQUM7WUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVPLGNBQWM7UUFDcEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzNCLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUMzQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDL0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQy9CLE1BQU0sU0FBUyxHQUEwQixDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQ3BHLE1BQU0sTUFBTSxHQUFJLENBQUMsT0FBTyxFQUFFLFFBQVEsRUFBRSxLQUFLLENBQStCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ2xHLE1BQU0sSUFBSSxHQUFHLENBQUMsT0FBZ0MsRUFBRSxPQUE4QixFQUFFLFFBQStCLEVBQUUsRUFBRSxDQUNqSCxJQUFJLHNCQUFzQixDQUFDLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFdEcsT0FBTztZQUNMLElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLFNBQVMsQ0FBQztZQUNyQixJQUFJLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDckIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDN0MsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxTQUFtQztRQUMvRCxPQUFPLElBQUksQ0FBQyxPQUFPO2FBQ2hCLFFBQVEsRUFBRTthQUNWLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDakMsYUFBYSxDQUFDLFNBQVMsQ0FBQzthQUN4QixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDcEIsQ0FBQztJQUdELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDZCxDQUFDO0lBQ0gsQ0FBQztJQUdELHVCQUF1QjtRQUNyQixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFHRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDO0lBQ0gsQ0FBQztJQUVPLElBQUk7UUFDVixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQztRQUMzRSxNQUFNLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUMvQixXQUFXLEVBQUUsSUFBSTtZQUNqQixnQkFBZ0I7WUFDaEIsY0FBYyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFO1lBQzFELGFBQWEsRUFBRSxrQ0FBa0M7U0FDbEQsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUM5QyxNQUFNLE9BQU8sR0FBRyxJQUFJLGVBQWUsQ0FDakMsdUJBQXVCLEVBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsRUFDckIsUUFBUSxDQUFDLE1BQU0sQ0FBQztZQUNkLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsY0FBYztvQkFDdkIsUUFBUSxFQUFFO3dCQUNSLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO3dCQUM3QixLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7d0JBQzFELFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFO3dCQUNwRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRTt3QkFDekIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUU7d0JBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQ3JDLGVBQWUsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQy9DLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQzVCLFFBQVEsRUFBRSxJQUFJLENBQUMsaUJBQWlCLEVBQUU7d0JBQ2xDLFFBQVEsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFO3dCQUM5QixNQUFNLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTt3QkFDdEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixFQUFFO3dCQUMzQyx3QkFBd0IsRUFBRSxJQUFJLENBQUMsd0JBQXdCLEVBQUU7d0JBQ3pELFlBQVksRUFBRSxJQUFJLENBQUMsWUFBWSxFQUFFO3FCQUNsQztpQkFDRjthQUNGO1NBQ0YsQ0FBQyxDQUNILENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsVUFBVTthQUNaLGFBQWEsRUFBRTthQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQThCO1FBQ3RDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQTRCO1FBQ3pDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDO1FBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQztRQUN6QixDQUFDO1FBQ0QsSUFBSSxTQUFTLElBQUksT0FBTyxTQUFTLENBQUMsS0FBSyxLQUFLLFVBQVUsRUFBRSxDQUFDO1lBQ3ZELFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDMUMsQ0FBQztJQUNILENBQUM7OEhBdktVLDZCQUE2QjtvRUFBN0IsNkJBQTZCO1lBQTdCLGtHQUFBLHNCQUFrQixJQUFXLHFHQUE3Qiw2QkFBeUIsSUFBSSxpR0FBN0IsZ0JBQVksSUFBaUI7OztpRkFBN0IsNkJBQTZCO2NBSHpDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsaUJBQWlCO2FBQzVCOztzQkFtQ0ksUUFBUTtxQkF1Q1gsZ0JBQWdCO2tCQURmLFlBQVk7bUJBQUMsT0FBTztZQVVyQix1QkFBdUI7a0JBRHRCLFlBQVk7bUJBQUMsZUFBZTtZQVU3QixVQUFVO2tCQURULFlBQVk7bUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbm5lY3Rpb25Qb3NpdGlvblBhaXIsIEhvcml6b250YWxDb25uZWN0aW9uUG9zLCBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmLCBWZXJ0aWNhbENvbm5lY3Rpb25Qb3MgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL292ZXJsYXlcIjtcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gXCJAYW5ndWxhci9jZGsvcG9ydGFsXCI7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0b3IsIGlucHV0LCBvdXRwdXQsIE9wdGlvbmFsLCBWaWV3Q29udGFpbmVyUmVmLCBzaWduYWwsIGVmZmVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IHRha2UgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IENPTlRBSU5FUl9EQVRBLCBEQVRFX0ZPUk1BVCB9IGZyb20gXCIuL2RhdGVyYW5nZXBpY2tlci1jb25zdGFudHNcIjtcbmltcG9ydCB7IElTRGF0ZVBpY2tlckNvbmZpZywgSVNEYXRlUGlja2VyVG9hc3RUZXh0LCBJU1NlbGVjdGVkRGF0ZXNDb25maWcsIElSU2VsZWN0ZWREYXRlc0NvbmZpZyB9IGZyb20gXCIuL21vZGVscy9zZHAtY29uZmlnLm1vZGVsXCI7XG5pbXBvcnQgeyBUekRycENvbnRhaW5lckNvbXBvbmVudCB9IGZyb20gXCIuL3R6LXNkcC1jb250YWluZXIvdHotc2RwLWNvbnRhaW5lci5jb21wb25lbnRcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcImlucHV0W21pc1R6U2RwXVwiXG59KVxuZXhwb3J0IGNsYXNzIFR6U3BlY2lmaWNEYXRlcGlja2VyRGlyZWN0aXZlIHtcbiAgLy8gSW5wdXRzIGFyZSBub3cgZGVmaW5lZCB1c2luZyBgaW5wdXQoKWBcbiAgcHVibGljIHJlYWRvbmx5IGRwQ29uZmlnID0gaW5wdXQ8SVNEYXRlUGlja2VyQ29uZmlnPih7XG4gICAgZm9ybWF0OiBEQVRFX0ZPUk1BVCxcbiAgICBtaW5EYXRlOiBcIlwiLFxuICAgIG1heERhdGU6IFwiXCIsXG4gICAgdGltZXpvbmU6IFwiQXNpYS9Lb2xrYXRhXCJcbiAgfSk7XG4gIHB1YmxpYyByZWFkb25seSBzZWxlY3RlZERhdGVzID0gaW5wdXQ8SVNTZWxlY3RlZERhdGVzQ29uZmlnW10+KFtdKTtcbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkRGF0ZXNSYW5nZSA9IGlucHV0PElSU2VsZWN0ZWREYXRlc0NvbmZpZz4oe3N0YXJ0RGF0ZTogbnVsbCwgZW5kRGF0ZTogbnVsbH0pO1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0ZXNEaXNhYmxlZCA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG4gIHB1YmxpYyByZWFkb25seSBob2xpZGF5c0RhdGVzID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcbiAgcHVibGljIHJlYWRvbmx5IHdlZWtPZmZzU2VsZWN0aW9uID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcbiAgcHVibGljIHJlYWRvbmx5IG5vU2hvd3MgPSBpbnB1dDxzdHJpbmdbXT4oW10pO1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0ZU1lc3NhZ2VzID0gaW5wdXQ8SVNEYXRlUGlja2VyVG9hc3RUZXh0W10+KFtdKTtcbiAgcHVibGljIHJlYWRvbmx5IHBvc2l0aW9uWCA9IGlucHV0PFwic3RhcnRcIiB8IFwiY2VudGVyXCIgfCBcImVuZFwiPihcImNlbnRlclwiKTtcbiAgcHVibGljIHJlYWRvbmx5IHBvc2l0aW9uWSA9IGlucHV0PFwidG9wXCIgfCBcImNlbnRlclwiIHwgXCJib3R0b21cIj4oXCJib3R0b21cIik7XG4gIHB1YmxpYyByZWFkb25seSBvZmZzZXRYID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgcHVibGljIHJlYWRvbmx5IG9mZnNldFkgPSBpbnB1dDxudW1iZXI+KDApO1xuICBwdWJsaWMgcmVhZG9ubHkgaXNTUGlja2VyU2VsZWN0ZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBpc1NpbmdsZURhdGVQaWNrZXJFbmFibGUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHB1YmxpYyByZWFkb25seSBpc01vYmlsZVZpZXcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIFxuICAvLyBPdXRwdXRzIGFyZSBub3cgZGVmaW5lZCB1c2luZyBgb3V0cHV0KClgXG4gIHB1YmxpYyByZWFkb25seSBkYXRlQ2hhbmdlID0gb3V0cHV0PElTU2VsZWN0ZWREYXRlc0NvbmZpZ1tdPigpO1xuICBwdWJsaWMgcmVhZG9ubHkgZGF0ZUNoYW5nZVJhbmdlID0gb3V0cHV0PElSU2VsZWN0ZWREYXRlc0NvbmZpZz4oKTtcbiAgXG4gIHByaXZhdGUgcmVhZG9ubHkgaXNPcGVuID0gc2lnbmFsKGZhbHNlKTtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmIHwgbnVsbCA9IG51bGw7XG4gIFxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2w6IE5nQ29udHJvbFxuICApIHtcbiAgICAvLyBFZmZlY3QgdG8gaGFuZGxlIHRoZSBvdmVybGF5IHBvc2l0aW9uIHVwZGF0ZSByZWFjdGl2ZWx5XG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHBvc2l0aW9ucyA9IHRoaXMuYnVpbGRQb3NpdGlvbnMoKTtcbiAgICAgIGlmICghdGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMuYnVpbGRQb3NpdGlvblN0cmF0ZWd5KHBvc2l0aW9ucykpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFBvc2l0aW9ucygpOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyW10ge1xuICAgIGNvbnN0IHggPSB0aGlzLnBvc2l0aW9uWCgpO1xuICAgIGNvbnN0IHkgPSB0aGlzLnBvc2l0aW9uWSgpO1xuICAgIGNvbnN0IG9mZnNldFggPSB0aGlzLm9mZnNldFgoKTtcbiAgICBjb25zdCBvZmZzZXRZID0gdGhpcy5vZmZzZXRZKCk7XG4gICAgY29uc3Qgb3Bwb3NpdGVZOiBWZXJ0aWNhbENvbm5lY3Rpb25Qb3MgPSB5ID09PSBcInRvcFwiID8gXCJib3R0b21cIiA6IHkgPT09IFwiYm90dG9tXCIgPyBcInRvcFwiIDogXCJjZW50ZXJcIjtcbiAgICBjb25zdCBvdGhlclggPSAoW1wic3RhcnRcIiwgXCJjZW50ZXJcIiwgXCJlbmRcIl0gYXMgSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3NbXSkuZmlsdGVyKHBvcyA9PiBwb3MgIT09IHgpO1xuICAgIGNvbnN0IHBhaXIgPSAob3JpZ2luWDogSG9yaXpvbnRhbENvbm5lY3Rpb25Qb3MsIG9yaWdpblk6IFZlcnRpY2FsQ29ubmVjdGlvblBvcywgb3ZlcmxheVk6IFZlcnRpY2FsQ29ubmVjdGlvblBvcykgPT5cbiAgICAgIG5ldyBDb25uZWN0aW9uUG9zaXRpb25QYWlyKHsgb3JpZ2luWCwgb3JpZ2luWSB9LCB7IG92ZXJsYXlYOiBvcmlnaW5YLCBvdmVybGF5WSB9LCBvZmZzZXRYLCBvZmZzZXRZKTtcblxuICAgIHJldHVybiBbXG4gICAgICBwYWlyKHgsIHksIG9wcG9zaXRlWSksXG4gICAgICBwYWlyKHgsIG9wcG9zaXRlWSwgeSksXG4gICAgICAuLi5vdGhlclgubWFwKHBvcyA9PiBwYWlyKHBvcywgeSwgb3Bwb3NpdGVZKSksXG4gICAgICAuLi5vdGhlclgubWFwKHBvcyA9PiBwYWlyKHBvcywgb3Bwb3NpdGVZLCB5KSlcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZFBvc2l0aW9uU3RyYXRlZ3kocG9zaXRpb25zOiBDb25uZWN0aW9uUG9zaXRpb25QYWlyW10pIHtcbiAgICByZXR1cm4gdGhpcy5vdmVybGF5XG4gICAgICAucG9zaXRpb24oKVxuICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGhpcy5lbGVtZW50KVxuICAgICAgLndpdGhQb3NpdGlvbnMocG9zaXRpb25zKVxuICAgICAgLndpdGhQdXNoKHRydWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpXG4gIHRvZ2dsZURhdGVQaWNrZXIoKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImtleWRvd24uZW50ZXJcIilcbiAgdG9nZ2xlRGF0ZVBpY2tlck9uRW50ZXIoKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImtleWRvd24uZXNjXCIpXG4gIGNsb3NlT25Fc2MoKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW4oKSB7XG4gICAgdGhpcy5pc09wZW4uc2V0KHRydWUpO1xuICAgIGNvbnN0IHBvc2l0aW9uU3RyYXRlZ3kgPSB0aGlzLmJ1aWxkUG9zaXRpb25TdHJhdGVneSh0aGlzLmJ1aWxkUG9zaXRpb25zKCkpO1xuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiB0cnVlLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcbiAgICB9KTtcbiAgICBcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XG4gICAgY29uc3QgdGVtcFJlZiA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICBUekRycENvbnRhaW5lckNvbXBvbmVudCxcbiAgICAgIHRoaXMudmlld0NvbnRhaW5lclJlZixcbiAgICAgIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IENPTlRBSU5FUl9EQVRBLFxuICAgICAgICAgICAgdXNlVmFsdWU6IHtcbiAgICAgICAgICAgICAgbWVzc2FnZXM6IHRoaXMuZGF0ZU1lc3NhZ2VzKCksXG4gICAgICAgICAgICAgIGRhdGVzOiB0aGlzLmNvbnRyb2w/LmNvbnRyb2wudmFsdWUgfHwgdGhpcy5zZWxlY3RlZERhdGVzKCksXG4gICAgICAgICAgICAgIGRhdGVzUmFuZ2U6IHRoaXMuY29udHJvbD8uY29udHJvbC52YWx1ZSB8fCB0aGlzLnNlbGVjdGVkRGF0ZXNSYW5nZSgpLFxuICAgICAgICAgICAgICBkcENvbmZpZzogdGhpcy5kcENvbmZpZygpLFxuICAgICAgICAgICAgICBkYXRlc0Rpc2FibGVkOiB0aGlzLmRhdGVzRGlzYWJsZWQoKSxcbiAgICAgICAgICAgICAgZGF0ZUNoYW5nZTogdGhpcy5hcHBseURhdGUuYmluZCh0aGlzKSxcbiAgICAgICAgICAgICAgZGF0ZUNoYW5nZVJhbmdlOiB0aGlzLmFwcGx5RGF0ZVJhbmdlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgIGNsb3NlOiB0aGlzLmNsb3NlLmJpbmQodGhpcyksXG4gICAgICAgICAgICAgIHdlZWtPZmZzOiB0aGlzLndlZWtPZmZzU2VsZWN0aW9uKCksXG4gICAgICAgICAgICAgIGhvbGlkYXlzOiB0aGlzLmhvbGlkYXlzRGF0ZXMoKSxcbiAgICAgICAgICAgICAgbm9TaG93OiB0aGlzLm5vU2hvd3MoKSxcbiAgICAgICAgICAgICAgaXNTUGlja2VyU2VsZWN0ZWQ6IHRoaXMuaXNTUGlja2VyU2VsZWN0ZWQoKSxcbiAgICAgICAgICAgICAgaXNTaW5nbGVEYXRlUGlja2VyRW5hYmxlOiB0aGlzLmlzU2luZ2xlRGF0ZVBpY2tlckVuYWJsZSgpLFxuICAgICAgICAgICAgICBpc01vYmlsZVZpZXc6IHRoaXMuaXNNb2JpbGVWaWV3KCksXG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5vdmVybGF5UmVmLmF0dGFjaCh0ZW1wUmVmKTtcbiAgICB0aGlzLm92ZXJsYXlSZWZcbiAgICAgIC5iYWNrZHJvcENsaWNrKClcbiAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZSgpO1xuICAgICAgfSk7XG4gIH1cblxuICBhcHBseURhdGUoZGF0ZXM6IElTU2VsZWN0ZWREYXRlc0NvbmZpZ1tdKSB7XG4gICAgdGhpcy5kYXRlQ2hhbmdlLmVtaXQoZGF0ZXMpO1xuICAgIHRoaXMuY29udHJvbD8uY29udHJvbC5wYXRjaFZhbHVlKGRhdGVzKTtcbiAgICB0aGlzLmNsb3NlKCk7XG4gIH1cbiAgXG4gIGFwcGx5RGF0ZVJhbmdlKGRhdGVzOiBJUlNlbGVjdGVkRGF0ZXNDb25maWcpIHtcbiAgICB0aGlzLmRhdGVDaGFuZ2VSYW5nZS5lbWl0KGRhdGVzKTtcbiAgICB0aGlzLmNvbnRyb2w/LmNvbnRyb2wucGF0Y2hWYWx1ZShkYXRlcyk7XG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG4gIFxuICBjbG9zZSgpIHtcbiAgICBjb25zdCB0cmlnZ2VyRWwgPSB0aGlzLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5pc09wZW4uc2V0KGZhbHNlKTtcbiAgICBpZiAodGhpcy5vdmVybGF5UmVmKSB7XG4gICAgICB0aGlzLm92ZXJsYXlSZWY/LmRldGFjaCgpO1xuICAgICAgdGhpcy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XG4gICAgICB0aGlzLm92ZXJsYXlSZWYgPSBudWxsO1xuICAgIH1cbiAgICBpZiAodHJpZ2dlckVsICYmIHR5cGVvZiB0cmlnZ2VyRWwuZm9jdXMgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB0cmlnZ2VyRWwuZm9jdXMoKSwgMTApO1xuICAgIH1cbiAgfVxufVxuXG5cbiJdfQ==
|