myrta-ui 17.2.4 → 17.2.5
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.
|
@@ -177,6 +177,28 @@ export class InputDateTimeComponent {
|
|
|
177
177
|
}
|
|
178
178
|
ngOnChanges(changes) {
|
|
179
179
|
if (this.dt) {
|
|
180
|
+
if (changes['dateFormat'] && !changes['dateFormat'].isFirstChange()) {
|
|
181
|
+
// 1. Конвертируем формат для AirDatepicker (DD.MM.YYYY -> dd.mm.yyyy)
|
|
182
|
+
const libFormat = this.dateFormat.replace(/Y/g, 'y').replace(/D/g, 'd');
|
|
183
|
+
// 2. Определяем новую глубину отображения
|
|
184
|
+
const startView = this.dateFormat.includes('D')
|
|
185
|
+
? 'days'
|
|
186
|
+
: (this.dateFormat.includes('M') ? 'months' : 'years');
|
|
187
|
+
// 3. Обновляем настройки календаря
|
|
188
|
+
this.dt.update({
|
|
189
|
+
locale: {
|
|
190
|
+
...this.dt.opts.locale, // Сохраняем остальные настройки локали
|
|
191
|
+
dateFormat: libFormat
|
|
192
|
+
},
|
|
193
|
+
view: startView,
|
|
194
|
+
minView: startView
|
|
195
|
+
});
|
|
196
|
+
// 4. После смены формата желательно перевыбрать текущую дату,
|
|
197
|
+
// чтобы она отобразилась в новом формате в инпуте
|
|
198
|
+
if (this.value) {
|
|
199
|
+
this.dt.selectDate(this.dt.selectedDates, { silent: true });
|
|
200
|
+
}
|
|
201
|
+
}
|
|
180
202
|
if (changes['maxDate']) {
|
|
181
203
|
this.dt.update({ maxDate: this.maxDate });
|
|
182
204
|
if (this.value) {
|
|
@@ -514,4 +536,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
514
536
|
}], blurred: [{
|
|
515
537
|
type: Output
|
|
516
538
|
}] } });
|
|
517
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LWRhdGUtdGltZS9pbnB1dC1kYXRlLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZGF0ZS10aW1lL2lucHV0LWRhdGUtdGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsdUJBQXVCLEVBQ3RDLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLGFBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQWEsc0JBQXNCLEVBQTJCLE1BQU0sd0JBQXdCLENBQUM7QUFDcEcsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR2xGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWhILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1B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QUFVO3NCQUF6QixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUVVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBQ1UsZUFBZTtzQkFBOUIsS0FBSztnQkFFVSxTQUFTO3NCQUF4QixLQUFLO2dCQUVVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUVrQixTQUFTO3NCQUFoQyxTQUFTO3VCQUFDLFdBQVc7Z0JBRUwsT0FBTztzQkFBdkIsTUFBTTtnQkFDVSxXQUFXO3NCQUEzQixNQUFNO2dCQUNVLE9BQU87c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBmb3J3YXJkUmVmLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPdXRwdXQsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBWaWV3Q2hpbGRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgQWlyRGF0ZXBpY2tlciBmcm9tICdhaXItZGF0ZXBpY2tlcic7XHJcbmltcG9ydCB7IEV4dHJhVGltZSwgSW5wdXREYXRlVGltZVNpemVzRW51bSwgSW5wdXREYXRlVGltZVNpemVzVHlwZXMgfSBmcm9tICcuL2lucHV0LWRhdGUtdGltZS5lbnVtJztcclxuaW1wb3J0IHsgRGF0ZU1vZGVsLCBUaW1lTW9kZWwsIHZhbGlkYXRlRGF0ZU1vZGVsLCB2YWxpZGF0ZVRpbWVNb2RlbCB9IGZyb20gJy4vaGVscGVycy92YWxpZGF0ZS12YWx1ZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBkYXRlTW9kZWxDb25zdGFudCwgdGltZU1vZGVsQ29uc3RhbnQgfSBmcm9tICcuL2NvbnN0YW50cy92YWx1ZS1tb2RlbHMnO1xyXG5pbXBvcnQgeyBkYXRlTW9kZWxWYWx1ZVBhcnNlLCB0aW1lTW9kZWxWYWx1ZVBhcnNlIH0gZnJvbSAnLi9oZWxwZXJzL3ZhbHVlLXBhcnNlcic7XHJcbmltcG9ydCB7IG1hcmtQb3NpdGlvbiB9IGZyb20gJy4vaGVscGVycy9jdXJzb3ItcG9zaXRpb24nO1xyXG5pbXBvcnQgeyBjbGVhbkRhdGUgfSBmcm9tICcuL2hlbHBlcnMvY2xlYW4tZGF0ZSc7XHJcbmltcG9ydCB7IGZvcm1hdHRpbmdGcm9tTW9zY293VGltZXpvbmUsIGZvcm1hdHRpbmdUb01vc2Nvd1RpbWV6b25lIH0gZnJvbSAnLi9oZWxwZXJzL2Zvcm1hdHRpbmctbW9zY293LXRpbWV6b25lJztcclxuaW1wb3J0IHsgVGltZXpvbmVUeXBlIH0gZnJvbSAnLi9lbnVtL3RpbWV6b25lJztcclxuaW1wb3J0IHsgZm9ybWF0dGluZ0Zyb21Nb2RlbHMgfSBmcm9tICcuL2hlbHBlcnMvZm9ybWF0dGluZy1mcm9tLW1vZGVscyc7XHJcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XHJcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgeyBjcmVhdGVQb3BwZXIgfSBmcm9tICdAcG9wcGVyanMvY29yZSc7XHJcbmltcG9ydCB7IEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBJbnB1dERhdGVUaW1lVmFsdWVUeXBlcywgSW5wdXREYXRlVGltZVZhbHVlV2l0aElkIH0gZnJvbSAnLi9tb2RlbHMvaW5wdXQtZGF0ZS10aW1lLm1vZGVsJztcclxuXHJcbmltcG9ydCB0aW1lem9uZSBmcm9tICdkYXlqcy9wbHVnaW4vdGltZXpvbmUnO1xyXG5pbXBvcnQgdXRjIGZyb20gJ2RheWpzL3BsdWdpbi91dGMnO1xyXG5pbXBvcnQgdHlwZSB7IFBsYWNlbWVudCB9IGZyb20gJ0Bwb3BwZXJqcy9jb3JlL2xpYi9lbnVtcyc7XHJcblxyXG5kYXlqcy5leHRlbmQodXRjKVxyXG5kYXlqcy5leHRlbmQodGltZXpvbmUpXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ21yeC1pbnB1dC1kYXRlLXRpbWUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnaW5wdXQtZGF0ZS10aW1lLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnaW5wdXQtZGF0ZS10aW1lLmNvbXBvbmVudHMubGVzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge3Byb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLCB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBJbnB1dERhdGVUaW1lQ29tcG9uZW50KSwgbXVsdGk6IHRydWV9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXREYXRlVGltZUNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xyXG4gIHB1YmxpYyBkdDogYW55O1xyXG4gIHB1YmxpYyB2YWx1ZTogYW55ID0gJyc7XHJcbiAgcHVibGljIGRhdGVNb2RlbDogRGF0ZU1vZGVsID0gZGF0ZU1vZGVsQ29uc3RhbnQ7XHJcbiAgcHVibGljIHRpbWVNb2RlbDogVGltZU1vZGVsID0gdGltZU1vZGVsQ29uc3RhbnQ7XHJcblxyXG4gIHB1YmxpYyBpbm5lckludmFsaWQgPSBmYWxzZTtcclxuICBwdWJsaWMgaW5uZXJJbnZhbGlkTWVzc2FnZSA9ICcnO1xyXG5cclxuICBwcml2YXRlIF9pbnB1dE1hc2s6IHN0cmluZyA9ICcnO1xyXG5cclxuICBASW5wdXQoKSBzZXQgaW5wdXRNYXNrKHZhbHVlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2lucHV0TWFzayA9IHZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZGF0ZUZvcm1hdDogc3RyaW5nID0gJ0RELk1NLllZWVknO1xyXG5cclxuICBASW5wdXQoKSBzZXQgZGF0ZUZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICAvLyDQnNCw0L/Qv9C40Lwg0YDRg9GB0YHQutC40LUg0YTQvtGA0LzQsNGC0Ysg0LIg0YHQuNGB0YLQtdC80L3Ri9C1XHJcbiAgICB0aGlzLl9kYXRlRm9ybWF0ID0gdGhpcy5tYXBTdHJpbmdUb0Zvcm1hdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgZGF0ZUZvcm1hdCgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX2RhdGVGb3JtYXQ7XHJcbiAgfVxyXG5cclxuICAvLyDQlNC40L3QsNC80LjRh9C10YHQutCw0Y8g0LzQsNGB0LrQsCDQvdCwINC+0YHQvdC+0LLQtSDQstGL0LHRgNCw0L3QvdC+0LPQviDRhNC+0YDQvNCw0YLQsFxyXG4gIGdldCBjdXJyZW50TWFzaygpOiBzdHJpbmcge1xyXG4gICAgLy8g0JXRgdC70Lgg0LLRi9Cx0YDQsNC9INC00LjQsNC/0LDQt9C+0L0sINC+0YLQutC70Y7Rh9Cw0LXQvCDQvNCw0YHQutGDLCDRgtCw0Log0LrQsNC6IG5neC1tYXNrINC/0LvQvtGF0L4g0YDQsNCx0L7RgtCw0LXRgiDRgSDQtNC40L3QsNC80LjRh9C10YHQutC+0Lkg0LTQu9C40L3QvtC5INGH0LXRgNC10Lcg0LfQsNC/0Y/RgtGD0Y5cclxuICAgIGlmICh0aGlzLnJhbmdlKSByZXR1cm4gJyc7IFxyXG4gICAgXHJcbiAgICBpZiAodGhpcy5pbnB1dE1hc2spIHJldHVybiB0aGlzLmlucHV0TWFzaztcclxuICAgIFxyXG4gICAgbGV0IG1hc2sgPSB0aGlzLmRhdGVGb3JtYXQucmVwbGFjZSgvRC9nLCAnMCcpLnJlcGxhY2UoL00vZywgJzAnKS5yZXBsYWNlKC9ZL2csICcwJyk7XHJcbiAgICBpZiAodGhpcy50aW1lcGlja2VyKSBtYXNrICs9ICcgMDA6MDAnO1xyXG4gICAgcmV0dXJuIG1hc2s7XHJcbiAgfVxyXG5cclxuICBnZXQgY3VycmVudFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XHJcbiAgICBpZiAodGhpcy5kYXRlUGxhY2Vob2xkZXIgIT09ICfQtNC0LtC80Lwu0LPQs9Cz0LMnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRhdGVQbGFjZWhvbGRlcjtcclxuICAgIH1cclxuICAgIFxyXG4gICAgLy8g0JDQstGC0L4t0LfQsNC80LXQvdCwINC90LAg0L7RgdC90L7QstC1INGE0L7RgNC80LDRgtCwXHJcbiAgICByZXR1cm4gdGhpcy5kYXRlRm9ybWF0XHJcbiAgICAgIC50b0xvd2VyQ2FzZSgpXHJcbiAgICAgIC5yZXBsYWNlKC9kL2csICfQtCcpXHJcbiAgICAgIC5yZXBsYWNlKC9tL2csICfQvCcpXHJcbiAgICAgIC5yZXBsYWNlKC95L2csICfQsycpO1xyXG4gIH1cclxuXHJcbiAgLy8gU0FWRSBTVEFURVxyXG4gIHB1YmxpYyB1dWlkOiBzdHJpbmcgPSB1dWlkdjQoKTtcclxuICBASW5wdXQoKSBwdWJsaWMgZmllbGRzOiBGaWVsZFtdID0gW107XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBzaXplOiBJbnB1dERhdGVUaW1lU2l6ZXNUeXBlcyA9ICdsYXJnZSc7XHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzZXMgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgZGF0ZUxhYmVsID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIHRpbWVMYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkYXRlUGxhY2Vob2xkZXIgPSAn0LTQtC7QvNC8LtCz0LPQs9CzJztcclxuICBASW5wdXQoKSBwdWJsaWMgdGltZVBsYWNlaG9sZGVyID0gJzAwOjAwJztcclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgcmVhZG9ubHkgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgcmVxdWlyZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgdGltZXBpY2tlciA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByYW5nZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0aW1lem9uZTogVGltZXpvbmVUeXBlID0gJ2RlZmF1bHQnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbmxpbmUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaXNNYW51YWxJbnB1dCA9IHRydWU7XHJcbiAgQElucHV0KCkgcHVibGljIGFkZE1pblRpbWUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYWRkTWF4VGltZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRNaW5UaW1lT2JqITogRXh0cmFUaW1lO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRNYXhUaW1lT2JqITogRXh0cmFUaW1lO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgZGlzYWJsZVZhbGlkYXRlID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVJbmNsdWRlcyA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgY29udGFpbmVyID0gJ2Rpdi5wYWdlLXdyYXBwZXInO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgbWluRGF0ZTogc3RyaW5nID0gJydcclxuICBASW5wdXQoKSBtYXhEYXRlOiBzdHJpbmcgPSAnJ1xyXG5cclxuICBASW5wdXQoKSBjYWxlbmRhclBvc2l0aW9uOiBQbGFjZW1lbnQgPSAnYm90dG9tLXN0YXJ0J1xyXG5cclxuICBAVmlld0NoaWxkKCdkYXRlSW5wdXQnKSBkYXRlSW5wdXQhOiBFbGVtZW50UmVmO1xyXG5cclxuICBAT3V0cHV0KCkgcHVibGljIGNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbnB1dERhdGVUaW1lVmFsdWVUeXBlcz4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBtb2RlbENoYW5nZTogRXZlbnRFbWl0dGVyPElucHV0RGF0ZVRpbWVWYWx1ZVdpdGhJZD4gPSBuZXcgRXZlbnRFbWl0dGVyPElucHV0RGF0ZVRpbWVWYWx1ZVdpdGhJZD4oKTtcclxuICBAT3V0cHV0KCkgcHVibGljIGJsdXJyZWQ6IEV2ZW50RW1pdHRlcjxJbnB1dERhdGVUaW1lVmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJbnB1dERhdGVUaW1lVmFsdWVXaXRoSWQ+KCk7XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8vINCa0L7QvdCy0LXRgNGC0LjRgNGD0LXQvCDRhNC+0YDQvNCw0YIg0LTQu9GPINCx0LjQsdC70LjQvtGC0LXQutC4IChZWVlZIC0+IHl5eXkpXHJcbiAgICBjb25zdCBsaWJGb3JtYXQgPSB0aGlzLmRhdGVGb3JtYXQucmVwbGFjZSgvWS9nLCAneScpLnJlcGxhY2UoL0QvZywgJ2QnKTtcclxuXHJcbiAgICAvLyDQntC/0YDQtdC00LXQu9GP0LXQvCDRgdGC0LDRgNGC0L7QstGD0Y4g0LPQu9GD0LHQuNC90YMg0LrQsNC70LXQvdC00LDRgNGPXHJcbiAgICBjb25zdCBzdGFydFZpZXcgPSB0aGlzLmRhdGVGb3JtYXQuaW5jbHVkZXMoJ0QnKSA/ICdkYXlzJyA6ICh0aGlzLmRhdGVGb3JtYXQuaW5jbHVkZXMoJ00nKSA/ICdtb250aHMnIDogJ3llYXJzJyk7XHJcbiAgICBcclxuICAgIHRoaXMuZHQgPSBuZXcgQWlyRGF0ZXBpY2tlcih0aGlzLmRhdGVJbnB1dC5uYXRpdmVFbGVtZW50LCB7XHJcbiAgICAgIGNvbnRhaW5lcjogdGhpcy5jb250YWluZXIsXHJcbiAgICAgIGxvY2FsZToge1xyXG4gICAgICAgIGRhdGVGb3JtYXQ6IGxpYkZvcm1hdCxcclxuICAgICAgICB0aW1lRm9ybWF0OiAnSEg6bW0nLFxyXG4gICAgICB9LFxyXG4gICAgICBtdWx0aXBsZURhdGVzU2VwYXJhdG9yOiAnIC0gJyxcclxuICAgICAgdmlldzogc3RhcnRWaWV3LFxyXG4gICAgICBtaW5WaWV3OiBzdGFydFZpZXcsXHJcbiAgICAgIGF1dG9DbG9zZTogdHJ1ZSxcclxuICAgICAgcmFuZ2U6IHRoaXMucmFuZ2UsXHJcbiAgICAgIHRpbWVwaWNrZXI6IHRoaXMudGltZXBpY2tlcixcclxuICAgICAgbWluRGF0ZTogdGhpcy5taW5EYXRlID8gZm9ybWF0dGluZ0Zyb21Nb3Njb3dUaW1lem9uZSh0aGlzLm1pbkRhdGUsIHRoaXMudGltZXpvbmUpIDogJycsXHJcbiAgICAgIG1heERhdGU6IHRoaXMubWF4RGF0ZSA/IGZvcm1hdHRpbmdGcm9tTW9zY293VGltZXpvbmUodGhpcy5tYXhEYXRlLCB0aGlzLnRpbWV6b25lKSA6ICcnLFxyXG4gICAgICBpbmxpbmU6IHRoaXMuaW5saW5lLFxyXG4gICAgICBwb3NpdGlvbjogKHskZGF0ZXBpY2tlciwgJHRhcmdldCwgJHBvaW50ZXIsIGRvbmV9KSA9PiB7XHJcbiAgICAgICAgbGV0IHBvcHBlciA9IGNyZWF0ZVBvcHBlcigkdGFyZ2V0LCAkZGF0ZXBpY2tlciwge1xyXG4gICAgICAgICAgcGxhY2VtZW50OiB0aGlzLmNhbGVuZGFyUG9zaXRpb24sXHJcbiAgICAgICAgICBtb2RpZmllcnM6IFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIG5hbWU6ICdmbGlwJyxcclxuICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICBwYWRkaW5nOiB7XHJcbiAgICAgICAgICAgICAgICAgIHRvcDogNjRcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBuYW1lOiAnb2Zmc2V0JyxcclxuICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IFswLCAxMF1cclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBuYW1lOiAnYXJyb3cnLFxyXG4gICAgICAgICAgICAgIG9wdGlvbnM6IHtcclxuICAgICAgICAgICAgICAgIGVsZW1lbnQ6ICRwb2ludGVyXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICBdXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmdW5jdGlvbiBjb21wbGV0ZUhpZGUoKSB7XHJcbiAgICAgICAgICBwb3BwZXIuZGVzdHJveSgpO1xyXG4gICAgICAgICAgZG9uZSgpO1xyXG4gICAgICAgIH07XHJcbiAgICAgIH0sXHJcbiAgICAgIG9uU2VsZWN0OiAoeyBkYXRlIH0pID0+IHtcclxuICAgICAgICBpZiAoIWRhdGUpIHtcclxuICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XHJcbiAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShkYXRlKSkge1xyXG4gICAgICAgICAgLy8g0J7QsdGA0LDQsdC+0YLQutCwINC00LjQsNC/0LDQt9C+0L3QsFxyXG4gICAgICAgICAgY29uc3QgaXNvQXJyYXkgPSBkYXRlLm1hcChkID0+IGQudG9JU09TdHJpbmcoKSk7XHJcbiAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRBcnJheSA9IGlzb0FycmF5Lm1hcChpc28gPT4gZm9ybWF0dGluZ1RvTW9zY293VGltZXpvbmUoaXNvLCB0aGlzLnRpbWV6b25lKSk7XHJcbiAgICAgICAgICBcclxuICAgICAgICAgIC8vINCe0LHQvdC+0LLQu9GP0LXQvCDQstC90YPRgtGA0LXQvdC90LXQtSDQt9C90LDRh9C10L3QuNC1INC60LDQuiDQvNCw0YHRgdC40LJcclxuICAgICAgICAgIHRoaXMudmFsdWUgPSBmb3JtYXR0ZWRBcnJheTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoZm9ybWF0dGVkQXJyYXkpO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyDQn9GA0LjQvdGD0LTQuNGC0LXQu9GM0L3QviDQvtCx0L3QvtCy0LvRj9C10Lwg0YLQtdC60YHRgiDQsiDQuNC90L/Rg9GC0LVcclxuICAgICAgICAgIGlmICh0aGlzLmRhdGVJbnB1dCkge1xyXG4gICAgICAgICAgICB0aGlzLmRhdGVJbnB1dC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5nZXREYXRlVmFsdWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIC8vINCe0LTQuNC90L7Rh9C90YvQuSDQstGL0LHQvtGAICjRgdGD0YnQtdGB0YLQstGD0Y7RidCw0Y8g0LvQvtCz0LjQutCwKVxyXG4gICAgICAgICAgY29uc3QgaXNvU3RyaW5nID0gZGF0ZS50b0lTT1N0cmluZygpO1xyXG4gICAgICAgICAgdGhpcy5kYXRlTW9kZWwgPSBkYXRlTW9kZWxWYWx1ZVBhcnNlKGlzb1N0cmluZywgdGhpcy50aW1lem9uZSwgdGhpcy5kYXRlRm9ybWF0KTtcclxuICAgICAgICAgIHRoaXMudGltZU1vZGVsID0gdGltZU1vZGVsVmFsdWVQYXJzZShpc29TdHJpbmcsIHRoaXMudGltZXpvbmUpO1xyXG4gICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShmb3JtYXR0aW5nVG9Nb3Njb3dUaW1lem9uZShpc29TdHJpbmcsIHRoaXMudGltZXpvbmUpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZHQpIHtcclxuICAgICAgaWYgKGNoYW5nZXNbJ21heERhdGUnXSkge1xyXG4gICAgICAgIHRoaXMuZHQudXBkYXRlKHttYXhEYXRlOiB0aGlzLm1heERhdGV9KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgICAgIHRoaXMuZHQuc2VsZWN0RGF0ZShmb3JtYXR0aW5nRnJvbU1vZGVscyh0aGlzLmRhdGVNb2RlbCwgdGhpcy50aW1lTW9kZWwsIHRoaXMudGltZXBpY2tlcikudG9JU09TdHJpbmcoKSwge1xyXG4gICAgICAgICAgICB1cGRhdGVUaW1lOiB0aGlzLnRpbWVwaWNrZXIsXHJcbiAgICAgICAgICAgIHNpbGVudDogdHJ1ZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZVZhbGlkYXRlKSB7XHJcbiAgICAgICAgICBjb25zdCBpbnZhbGlkID0gdGhpcy5pbm5lckludmFsaWQ7XHJcbiAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gdGhpcy5jaGVja2luZ0ludmFsaWQodGhpcy52YWx1ZSwgdGhpcy5tYXhEYXRlLCB0aGlzLm1pbkRhdGUpO1xyXG5cclxuICAgICAgICAgIGlmIChpbnZhbGlkICYmIGlzVmFsaWQpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZU1vZGVsKHRoaXMuZGF0ZU1vZGVsLCB0aGlzLnRpbWVNb2RlbCk7XHJcbiAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKGNoYW5nZXNbJ21pbkRhdGUnXSkge1xyXG4gICAgICAgIHRoaXMuZHQudXBkYXRlKHttaW5EYXRlOiB0aGlzLm1pbkRhdGV9KTtcclxuXHJcbiAgICAgICAgaWYgKHRoaXMudmFsdWUpIHtcclxuICAgICAgICAgIHRoaXMuZHQuc2VsZWN0RGF0ZShmb3JtYXR0aW5nRnJvbU1vZGVscyh0aGlzLmRhdGVNb2RlbCwgdGhpcy50aW1lTW9kZWwsIHRoaXMudGltZXBpY2tlcikudG9JU09TdHJpbmcoKSwge1xyXG4gICAgICAgICAgICB1cGRhdGVUaW1lOiB0aGlzLnRpbWVwaWNrZXIsXHJcbiAgICAgICAgICAgIHNpbGVudDogdHJ1ZVxyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZVZhbGlkYXRlKSB7XHJcbiAgICAgICAgICBjb25zdCBpbnZhbGlkID0gdGhpcy5pbm5lckludmFsaWQ7XHJcbiAgICAgICAgICBjb25zdCBpc1ZhbGlkID0gdGhpcy5jaGVja2luZ0ludmFsaWQodGhpcy52YWx1ZSwgdGhpcy5tYXhEYXRlLCB0aGlzLm1pbkRhdGUpO1xyXG5cclxuICAgICAgICAgIGlmIChpbnZhbGlkICYmIGlzVmFsaWQpIHtcclxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgdGhpcy51cGRhdGVWYWx1ZU1vZGVsKHRoaXMuZGF0ZU1vZGVsLCB0aGlzLnRpbWVNb2RlbCk7XHJcbiAgICAgICAgICAgIH0sIDApO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBnZXREYXRlVmFsdWUoKTogc3RyaW5nIHtcclxuICAgIC8vINCV0YHQu9C4INGN0YLQviDQvNCw0YHRgdC40LIgKHJhbmdlINGA0LXQttC40LwpXHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy52YWx1ZVxyXG4gICAgICAgIC5tYXAodmFsID0+IHtcclxuICAgICAgICAgIGNvbnN0IG1vZGVsID0gZGF0ZU1vZGVsVmFsdWVQYXJzZSh2YWwsIHRoaXMudGltZXpvbmUsIHRoaXMuZGF0ZUZvcm1hdCk7XHJcbiAgICAgICAgICByZXR1cm4gbW9kZWwudmlldztcclxuICAgICAgICB9KVxyXG4gICAgICAgIC5qb2luKCcgLSAnKTsgLy8g0LjQu9C4ICcgLSAnINC/0L4g0LLQsNGI0LXQvNGDINC20LXQu9Cw0L3QuNGOXHJcbiAgICB9XHJcblxyXG4gICAgLy8g0J7QtNC40L3QvtGH0L3Ri9C5INCy0YvQsdC+0YAgKNGB0YLQsNGA0LDRjyDQu9C+0LPQuNC60LApXHJcbiAgICBpZiAoIXRoaXMuZGF0ZU1vZGVsLnZpZXcpIHJldHVybiAnJztcclxuICAgIGNvbnN0IHRpbWVQYXJ0ID0gKHRoaXMudGltZXBpY2tlciAmJiB0aGlzLnRpbWVNb2RlbC52aWV3KSA/ICcgJyArIHRoaXMudGltZU1vZGVsLnZpZXcgOiAnJztcclxuICAgIHJldHVybiBgJHt0aGlzLmRhdGVNb2RlbC52aWV3fSR7dGltZVBhcnR9YDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke0lucHV0RGF0ZVRpbWVTaXplc0VudW1bdGhpcy5zaXplXX0gJHt0aGlzLmN1c3RvbUNsYXNzZXN9ICR7dGhpcy5jaGVja1ZhbGlkQ2xhc3Nlc31gO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXQgaXNWYWxpZE1vZGVscygpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhdGhpcy5kYXRlTW9kZWwuaW52YWxpZCAmJiAodGhpcy50aW1lcGlja2VyID8gIXRoaXMudGltZU1vZGVsLmludmFsaWQgOiB0cnVlKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNWaWV3Q2xlYW5JY29uKCkge1xyXG4gICAgcmV0dXJuICEhdGhpcy5kYXRlSW5wdXQ/Lm5hdGl2ZUVsZW1lbnQudmFsdWU7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNoZWNrVmFsaWRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXRoaXMucmVxdWlyZWQpIHtcclxuICAgICAgcmV0dXJuICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuY2hlY2tJbnZhbGlkID09PSBmYWxzZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1zdWNjZXNzJyA6IHRoaXMuY2hlY2tJbnZhbGlkID09PSB0cnVlID8gJ21yeC1pbnB1dC1jaGVja2VkLWVycm9yJyA6ICcnO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfY2hlY2tFeHRyYVRpbWUoKSB7XHJcbiAgICBpZiAodGhpcy5hZGRNYXhUaW1lICYmICF0aGlzLnRpbWVwaWNrZXIpIHtcclxuICAgICAgdGhpcy50aW1lTW9kZWwuaG91ciA9ICcyMyc7XHJcbiAgICAgIHRoaXMudGltZU1vZGVsLm1pbnV0ZSA9ICc1OSc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5hZGRNaW5UaW1lICYmICF0aGlzLnRpbWVwaWNrZXIpIHtcclxuICAgICAgdGhpcy50aW1lTW9kZWwuaG91ciA9ICcwMCc7XHJcbiAgICAgIHRoaXMudGltZU1vZGVsLm1pbnV0ZSA9ICcwMCc7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5hZGRNYXhUaW1lT2JqICYmICF0aGlzLnRpbWVwaWNrZXIpIHtcclxuICAgICAgdGhpcy50aW1lTW9kZWwuaG91ciA9IHRoaXMuYWRkTWF4VGltZU9iai5ob3VyO1xyXG4gICAgICB0aGlzLnRpbWVNb2RlbC5taW51dGUgPSB0aGlzLmFkZE1heFRpbWVPYmoubWludXRlO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYWRkTWluVGltZU9iaiAmJiAhdGhpcy50aW1lcGlja2VyKSB7XHJcbiAgICAgIHRoaXMudGltZU1vZGVsLmhvdXIgPSB0aGlzLmFkZE1pblRpbWVPYmouaG91cjtcclxuICAgICAgdGhpcy50aW1lTW9kZWwubWludXRlID0gdGhpcy5hZGRNaW5UaW1lT2JqLm1pbnV0ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGlja1RvSWNvbkNhbGVuZGFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRlSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsaWNrVG9JY29uQ2xlYXIoKTogdm9pZCB7XHJcbiAgICB0aGlzLmR0LnNldFZpZXdEYXRlKG5ldyBEYXRlKCkpO1xyXG4gICAgdGhpcy5kdCAmJiB0aGlzLmR0LmNsZWFyKCk7XHJcbiAgICB0aGlzLmRhdGVNb2RlbCA9IGRhdGVNb2RlbENvbnN0YW50O1xyXG4gICAgdGhpcy50aW1lTW9kZWwgPSB0aW1lTW9kZWxDb25zdGFudDtcclxuXHJcbiAgICBpZiAoIXRoaXMucmFuZ2UpIHtcclxuICAgICAgdGhpcy51cGRhdGVWYWx1ZSgnJyk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbm5lckludmFsaWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaW5uZXJJbnZhbGlkTWVzc2FnZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZU1vZGVsKGRhdGVNb2RlbDogRGF0ZU1vZGVsLCB0aW1lTW9kZWw6IFRpbWVNb2RlbCwgYm9sOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIGlmIChkYXRlTW9kZWwudmlldyA9PT0gJycpIHtcclxuICAgICAgdGhpcy5jbGlja1RvSWNvbkNsZWFyKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBkYXRlID0gZm9ybWF0dGluZ0Zyb21Nb2RlbHMoZGF0ZU1vZGVsLCB0aW1lTW9kZWwsIHRoaXMudGltZXBpY2tlciB8fCB0aGlzLmFkZE1heFRpbWUgfHwgdGhpcy5hZGRNaW5UaW1lKTtcclxuXHJcbiAgICAgIGNvbnN0IGZvcm1hdHRpbmdEYXRlID0gZm9ybWF0dGluZ1RvTW9zY293VGltZXpvbmUoZGF0ZS50b0lTT1N0cmluZygpLCB0aGlzLnRpbWV6b25lKTtcclxuXHJcbiAgICAgIGNvbnN0IGlzVmFsaWQgPSB0aGlzLmNoZWNraW5nSW52YWxpZChmb3JtYXR0aW5nRGF0ZSwgdGhpcy5tYXhEYXRlLCB0aGlzLm1pbkRhdGUpO1xyXG5cclxuICAgICAgaWYgKGRhdGUuaXNWYWxpZCgpICYmIGlzVmFsaWQpIHtcclxuICAgICAgICB0aGlzLmR0LnNlbGVjdERhdGUoZm9ybWF0dGluZ0Zyb21Nb2RlbHMoZGF0ZU1vZGVsLCB0aW1lTW9kZWwsIHRoaXMudGltZXBpY2tlcikudG9JU09TdHJpbmcoKSwge1xyXG4gICAgICAgICAgdXBkYXRlVGltZTogdGhpcy50aW1lcGlja2VyLFxyXG4gICAgICAgICAgc2lsZW50OiB0cnVlXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5kdC5zZXRWaWV3RGF0ZShmb3JtYXR0aW5nRnJvbU1vZGVscyhkYXRlTW9kZWwsIHRpbWVNb2RlbCwgdGhpcy50aW1lcGlja2VyKS50b0lTT1N0cmluZygpKTtcclxuICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGZvcm1hdHRpbmdEYXRlKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZXNBcnJheSA9ICh2YWx1ZXM6IGFueVtdKSA9PiB7XHJcbiAgICBjb25zdCBkYXRlcyA9IHZhbHVlcy5tYXAoZGF0ZSA9PiB7XHJcbiAgICAgIHJldHVybiBmb3JtYXR0aW5nVG9Nb3Njb3dUaW1lem9uZShkYXRlLnRvSVNPU3RyaW5nKCksIHRoaXMudGltZXpvbmUpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgdGhpcy51cGRhdGVWYWx1ZShkYXRlcyk7XHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBpbnZhbGlkTWVzc2FnZU9uKG1lc3NhZ2U6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5pbm5lckludmFsaWQgPSB0cnVlO1xyXG4gICAgdGhpcy5pbm5lckludmFsaWRNZXNzYWdlID0gbWVzc2FnZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW52YWxpZE1lc3NhZ2VPZmYoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlubmVySW52YWxpZCA9IGZhbHNlO1xyXG4gICAgdGhpcy5pbm5lckludmFsaWRNZXNzYWdlID0gJyc7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlRGF0ZVZhbHVlKGRhdGVJbnB1dDogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc2VsZWN0aW9uU3RhcnQgPSBkYXRlSW5wdXQuc2VsZWN0aW9uU3RhcnQ7XHJcblxyXG4gICAgLy8g0J/QldCg0JXQlNCQ0JXQnCDQpNCe0KDQnNCQ0KIg0JIg0KXQldCb0J/QldCgXHJcbiAgICB0aGlzLmRhdGVNb2RlbCA9IHZhbGlkYXRlRGF0ZU1vZGVsKGRhdGVJbnB1dC52YWx1ZSwgdGhpcy5kYXRlRm9ybWF0KTtcclxuICAgIHRoaXMudGltZU1vZGVsID0gdmFsaWRhdGVUaW1lTW9kZWwoZGF0ZUlucHV0LnZhbHVlKTtcclxuXHJcbiAgICBkYXRlSW5wdXQudmFsdWUgPSB0aGlzLmdldERhdGVWYWx1ZTtcclxuICAgIGRhdGVJbnB1dC5zZWxlY3Rpb25TdGFydCA9IHNlbGVjdGlvblN0YXJ0O1xyXG4gICAgZGF0ZUlucHV0LnNlbGVjdGlvbkVuZCA9IGRhdGVJbnB1dC5zZWxlY3Rpb25TdGFydDtcclxuXHJcbiAgICB0aGlzLl9jaGVja0V4dHJhVGltZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzVmFsaWRNb2RlbHMgfHwgdGhpcy5kYXRlTW9kZWwudmlldyA9PT0gJycpIHtcclxuICAgICAgdGhpcy51cGRhdGVWYWx1ZU1vZGVsKHRoaXMuZGF0ZU1vZGVsLCB0aGlzLnRpbWVNb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xpY2tUb0lucHV0KGlucHV0OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XHJcbiAgICAvLyBpZiAoaW5wdXQuc2VsZWN0aW9uU3RhcnQgPT09IGlucHV0LnNlbGVjdGlvbkVuZCAmJiBpbnB1dC5zZWxlY3Rpb25TdGFydCAhPT0gbnVsbCkge1xyXG4gICAgLy8gICBjb25zdCB7IHN0YXJ0LCBlbmQgfSA9IG1hcmtQb3NpdGlvbihpbnB1dC5zZWxlY3Rpb25TdGFydCwgaW5wdXQuc2VsZWN0aW9uRW5kLCB0aGlzLmRhdGVGb3JtYXQpO1xyXG4gICAgICBcclxuICAgIC8vICAgaW5wdXQuc2VsZWN0aW9uU3RhcnQgPSBzdGFydDtcclxuICAgIC8vICAgaW5wdXQuc2VsZWN0aW9uRW5kID0gZW5kO1xyXG4gICAgLy8gfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja2luZ0ludmFsaWQodmFsdWU6IHN0cmluZywgbWF4RGF0ZTogc3RyaW5nLCBtaW5EYXRlOiBzdHJpbmcpIHtcclxuICAgIGxldCB2YWxpZE1heERhdGUgPSAnJ1xyXG4gICAgbGV0IHZhbGlkTWluRGF0ZSA9ICcnXHJcblxyXG4gICAgaWYgKHRoaXMudGltZXBpY2tlcikge1xyXG4gICAgICB2YWxpZE1heERhdGUgPSB0aGlzLm1heERhdGVcclxuICAgICAgdmFsaWRNaW5EYXRlID0gdGhpcy5taW5EYXRlXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAodGhpcy5tYXhEYXRlKSB7XHJcbiAgICAgICAgdmFsaWRNYXhEYXRlID0gZGF5anModGhpcy5tYXhEYXRlKS50eih0aGlzLnRpbWV6b25lKS5ob3VyKDIzKS5taW51dGUoNTkpLnNlY29uZCg1OSkubWlsbGlzZWNvbmQoMCkudG9JU09TdHJpbmcoKVxyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy5taW5EYXRlKSB7XHJcbiAgICAgICAgdmFsaWRNaW5EYXRlID0gZGF5anModGhpcy5taW5EYXRlKS50eih0aGlzLnRpbWV6b25lKS5ob3VyKDApLm1pbnV0ZSgwKS5zZWNvbmQoMCAtIDEpLm1pbGxpc2Vjb25kKDApLnRvSVNPU3RyaW5nKClcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmRpc2FibGVWYWxpZGF0ZSkge1xyXG4gICAgICB0aGlzLmludmFsaWRNZXNzYWdlT2ZmKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh2YWxpZE1heERhdGUgJiYgKGRheWpzKHZhbHVlKS5kaWZmKGRheWpzKHZhbGlkTWF4RGF0ZSkpID09PSAwKSAmJiAhdGhpcy5kaXNhYmxlSW5jbHVkZXMpIHtcclxuICAgICAgdGhpcy5pbnZhbGlkTWVzc2FnZU9uKCfQlNCw0YLQsCDQuCDQstGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyDQvdC1INC80L7QttC10YIg0LHRi9GC0Ywg0YDQsNCy0L3QsCDQtNCw0YLQtSDQuCDQstGA0LXQvNC10L3QuCDQvdCw0YfQsNC70LAnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmICh2YWxpZE1heERhdGUgJiYgKGRheWpzKHZhbHVlKS5kaWZmKGRheWpzKHZhbGlkTWF4RGF0ZSkpID4gMCkpIHtcclxuICAgICAgdGhpcy5pbnZhbGlkTWVzc2FnZU9uKCfQlNCw0YLQsCDQvtC60L7QvdGH0LDQvdC40Y8g0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINGA0LDQvdGM0YjQtSDQtNCw0YLRiyDQvdCw0YfQsNC70LAnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmICh2YWxpZE1pbkRhdGUgJiYgKGRheWpzKHZhbHVlKS5kaWZmKGRheWpzKHZhbGlkTWluRGF0ZSkpID09PSAwKSAmJiAhdGhpcy5kaXNhYmxlSW5jbHVkZXMpIHtcclxuICAgICAgdGhpcy5pbnZhbGlkTWVzc2FnZU9uKCfQlNCw0YLQsCDQuCDQstGA0LXQvNGPINC+0LrQvtC90YfQsNC90LjRjyDQvdC1INC80L7QttC10YIg0LHRi9GC0Ywg0YDQsNCy0L3QsCDQtNCw0YLQtSDQuCDQstGA0LXQvNC10L3QuCDQvdCw0YfQsNC70LAnKTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmICh2YWxpZE1pbkRhdGUgJiYgZGF5anModmFsdWUpLmRpZmYoZGF5anModmFsaWRNaW5EYXRlKSkgPCAwKSB7XHJcbiAgICAgIHRoaXMuaW52YWxpZE1lc3NhZ2VPbign0JTQsNGC0LAg0L7QutC+0L3Rh9Cw0L3QuNGPINC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDRgNCw0L3RjNGI0LUg0LTQsNGC0Ysg0L3QsNGH0LDQu9CwJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuaW52YWxpZE1lc3NhZ2VPZmYoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZShvdXRzaWRlVmFsdWU6IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKG91dHNpZGVWYWx1ZSkge1xyXG4gICAgICBpZiAoQXJyYXkuaXNBcnJheShvdXRzaWRlVmFsdWUpKSB7XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IG91dHNpZGVWYWx1ZTtcclxuICAgICAgICBpZiAodGhpcy5kdCkge1xyXG4gICAgICAgICAgLy8g0J/QtdGA0LXQtNCw0LXQvCDQvNCw0YHRgdC40LIg0LTQsNGCINCyINC60LDQu9C10L3QtNCw0YDRjFxyXG4gICAgICAgICAgY29uc3QgZGF0ZXMgPSBvdXRzaWRlVmFsdWUubWFwKHZhbCA9PiBkYXlqcyh2YWwpLnRvRGF0ZSgpKTtcclxuICAgICAgICAgIHRoaXMuZHQuc2VsZWN0RGF0ZShkYXRlcywgeyBzaWxlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vINCe0LTQuNC90L7Rh9C90L7QtSDQt9C90LDRh9C10L3QuNC1XHJcbiAgICAgICAgdGhpcy5kYXRlTW9kZWwgPSBkYXRlTW9kZWxWYWx1ZVBhcnNlKG91dHNpZGVWYWx1ZSwgdGhpcy50aW1lem9uZSwgdGhpcy5kYXRlRm9ybWF0KTtcclxuICAgICAgICB0aGlzLnRpbWVNb2RlbCA9IHRpbWVNb2RlbFZhbHVlUGFyc2Uob3V0c2lkZVZhbHVlLCB0aGlzLnRpbWV6b25lKTtcclxuICAgICAgICBpZiAodGhpcy5kdCkge1xyXG4gICAgICAgICAgY29uc3QgZGF0ZSA9IGZvcm1hdHRpbmdGcm9tTW9kZWxzKHRoaXMuZGF0ZU1vZGVsLCB0aGlzLnRpbWVNb2RlbCwgdGhpcy50aW1lcGlja2VyKTtcclxuICAgICAgICAgIHRoaXMuZHQuc2VsZWN0RGF0ZShkYXRlLnRvRGF0ZSgpLCB7IHNpbGVudDogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnJhbmdlID8gW10gOiAnJztcclxuICAgICAgaWYgKHRoaXMuZHQpIHRoaXMuZHQuY2xlYXIoeyBzaWxlbnQ6IHRydWUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlID0gKHZhbHVlOiBhbnkpID0+IHtcclxuICB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB1cGRhdGVWYWx1ZShpbnNpZGVWYWx1ZTogSW5wdXREYXRlVGltZVZhbHVlVHlwZXMpIHtcclxuICAgIHRoaXMudmFsdWUgPSBpbnNpZGVWYWx1ZTtcclxuICAgIHRoaXMuY2hhbmdlZC5lbWl0KGluc2lkZVZhbHVlKTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UuZW1pdCh7dmFsdWU6IGluc2lkZVZhbHVlLCBpZDogdGhpcy51dWlkfSk7XHJcbiAgICB0aGlzLm9uQ2hhbmdlKGluc2lkZVZhbHVlKTtcclxuICAgIHRoaXMub25Ub3VjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25CbHVyKGV2ZW50OiBFdmVudCkge1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYmx1cnJlZC5lbWl0KHt2YWx1ZTogdGhpcy52YWx1ZSwgaWQ6IHRoaXMudXVpZH0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG1hcFN0cmluZ1RvRm9ybWF0KGZvcm1hdFN0cjogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghZm9ybWF0U3RyKSByZXR1cm4gJ0RELk1NLllZWVknO1xyXG5cclxuICAgIGNvbnN0IG1hcDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHtcclxuICAgICAgJ9Cz0LPQs9CzJzogJ1lZWVknLFxyXG4gICAgICAn0LzQvC7Qs9Cz0LPQsyc6ICdNTS5ZWVlZJyxcclxuICAgICAgJ9C00LQu0LzQvC7Qs9Cz0LPQsyc6ICdERC5NTS5ZWVlZJyxcclxuICAgICAgJ9Cz0LPQs9CzLdC80Lwt0LTQtCc6ICdZWVlZLU1NLUREJyAvLyDQvdCwINGB0LvRg9GH0LDQuSDRgdC10YDQstC10YDQvdGL0YUg0YTQvtGA0LzQsNGC0L7QslxyXG4gICAgfTtcclxuXHJcbiAgICByZXR1cm4gbWFwW2Zvcm1hdFN0ci50b0xvd2VyQ2FzZSgpXSB8fCAnREQuTU0uWVlZWSc7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAgIGNsYXNzPVwibXJ4LWlucHV0LWRhdGVcIlxyXG4gICAgW2NsYXNzLm1yeC1pbnB1dC1lcnJvcl09XCJpbnZhbGlkIHx8IGlubmVySW52YWxpZFwiXHJcbiAgICBbY2xhc3MubXJ4LWlucHV0LXJlYWRvbmx5XT1cInJlYWRvbmx5XCJcclxuICAgIFtjbGFzc109XCJnZXRDbGFzc2VzXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJcIj5cclxuICAgIDxtcngtbGFiZWwgKm5nSWY9XCJ0aW1lTGFiZWwgfHwgZGF0ZUxhYmVsXCI+e3sgZGF0ZUxhYmVsIH19PC9tcngtbGFiZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwibXJ4LWlucHV0LWRhdGVfX3dyYXBwZXJcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgICAjZGF0ZUlucHV0XHJcbiAgICAgICAgICB0eXBlPVwidGV4dFwiXHJcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJub3BlXCJcclxuICAgICAgICAgIGNsYXNzPVwibXJ4LWlucHV0LWRhdGVfX2lucHV0IG1yeC1pbnB1dC1kYXRlX19kYXRlXCJcclxuICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJjdXJyZW50UGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgW25nTW9kZWxdPVwiZ2V0RGF0ZVZhbHVlXCJcclxuICAgICAgICAgIFttYXNrXT1cImN1cnJlbnRNYXNrXCJcclxuICAgICAgICAgIFtsZWFkWmVyb0RhdGVUaW1lXT1cInRydWVcIlxyXG4gICAgICAgICAgW3ZhbGlkYXRpb25dPVwiZmFsc2VcIlxyXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgICAgIFtyZWFkT25seV09XCIhaXNNYW51YWxJbnB1dFwiXHJcbiAgICAgICAgICAoaW5wdXQpPVwiIXJhbmdlID8gdXBkYXRlRGF0ZVZhbHVlKGRhdGVJbnB1dCkgOiBudWxsXCJcclxuICAgICAgICAgIChjbGljayk9XCJjbGlja1RvSW5wdXQoZGF0ZUlucHV0KVwiXHJcbiAgICAgICAgICAoYmx1cik9XCJvbkJsdXIoJGV2ZW50KVwiXHJcbiAgICAgIC8+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0lmPVwiIWRpc2FibGVkXCIgY2xhc3M9XCJtcngtaW5wdXQtZGF0ZV9faWNvbnNcIj5cclxuICAgICAgICAgIDxzcGFuXHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlXCJcclxuICAgICAgICAgICAgICAqbmdJZj1cImlzVmlld0NsZWFuSWNvblwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrVG9JY29uQ2xlYXIoKVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0xNl09XCJzaXplID09PSAnc21hbGwnXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuaWNvbi1mb250LTI0XT1cInNpemUgPT09ICdtZWRpdW0nIHx8IHNpemUgPT09ICdsYXJnZSdcIlxyXG4gICAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICBjbGFzcz1cIm1yeC1pY29uIGljb24tY2FsZW5kYXJcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xpY2tUb0ljb25DYWxlbmRhcigpXCJcclxuICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0xNl09XCJzaXplID09PSAnc21hbGwnXCJcclxuICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0yNF09XCJzaXplID09PSAnbWVkaXVtJyB8fCBzaXplID09PSAnbGFyZ2UnXCJcclxuICAgICAgICA+PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICAgIDxtcngtZXJyb3ItbWVzc2FnZVxyXG4gICAgICAgICpuZ0lmPVwiaW52YWxpZDsgZWxzZSBpbm5lckludmFsaWRUZW1wbGF0ZVwiXHJcbiAgICAgICAgW2ludmFsaWRNZXNzYWdlXT1cImludmFsaWRNZXNzYWdlXCJcclxuICAgID48L21yeC1lcnJvci1tZXNzYWdlPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2lubmVySW52YWxpZFRlbXBsYXRlPlxyXG4gICAgPG1yeC1lcnJvci1tZXNzYWdlXHJcbiAgICAgICAgKm5nSWY9XCJpbm5lckludmFsaWRcIlxyXG4gICAgICAgIFtpbnZhbGlkTWVzc2FnZV09XCJpbm5lckludmFsaWRNZXNzYWdlXCJcclxuICAgID48L21yeC1lcnJvci1tZXNzYWdlPlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcblxyXG4gIDxtcngtc2F2ZS1zdGF0ZSBbaWRdPVwidXVpZFwiIFtmaWVsZHNdPVwiZmllbGRzXCI+PC9tcngtc2F2ZS1zdGF0ZT5cclxuPC9kaXY+XHJcblxyXG5cclxuXHJcbiJdfQ==
|
|
539
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LWRhdGUtdGltZS9pbnB1dC1kYXRlLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZGF0ZS10aW1lL2lucHV0LWRhdGUtdGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ1UsdUJBQXVCLEVBQ3RDLFNBQVMsRUFFVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFFTCxNQUFNLEVBRU4sU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLGFBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQWEsc0JBQXNCLEVBQTJCLE1BQU0sd0JBQXdCLENBQUM7QUFDcEcsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzdHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR2xGLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWhILE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hFLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1B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S0FBSztnQkFFVSxlQUFlO3NCQUE5QixLQUFLO2dCQUNVLGVBQWU7c0JBQTlCLEtBQUs7Z0JBRVUsU0FBUztzQkFBeEIsS0FBSztnQkFFVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFFRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFFa0IsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUVMLE9BQU87c0JBQXZCLE1BQU07Z0JBQ1UsV0FBVztzQkFBM0IsTUFBTTtnQkFDVSxPQUFPO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgZm9yd2FyZFJlZixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT3V0cHV0LFxyXG4gIFNpbXBsZUNoYW5nZXMsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IEFpckRhdGVwaWNrZXIgZnJvbSAnYWlyLWRhdGVwaWNrZXInO1xyXG5pbXBvcnQgeyBFeHRyYVRpbWUsIElucHV0RGF0ZVRpbWVTaXplc0VudW0sIElucHV0RGF0ZVRpbWVTaXplc1R5cGVzIH0gZnJvbSAnLi9pbnB1dC1kYXRlLXRpbWUuZW51bSc7XHJcbmltcG9ydCB7IERhdGVNb2RlbCwgVGltZU1vZGVsLCB2YWxpZGF0ZURhdGVNb2RlbCwgdmFsaWRhdGVUaW1lTW9kZWwgfSBmcm9tICcuL2hlbHBlcnMvdmFsaWRhdGUtdmFsdWUtbW9kZWxzJztcclxuaW1wb3J0IHsgZGF0ZU1vZGVsQ29uc3RhbnQsIHRpbWVNb2RlbENvbnN0YW50IH0gZnJvbSAnLi9jb25zdGFudHMvdmFsdWUtbW9kZWxzJztcclxuaW1wb3J0IHsgZGF0ZU1vZGVsVmFsdWVQYXJzZSwgdGltZU1vZGVsVmFsdWVQYXJzZSB9IGZyb20gJy4vaGVscGVycy92YWx1ZS1wYXJzZXInO1xyXG5pbXBvcnQgeyBtYXJrUG9zaXRpb24gfSBmcm9tICcuL2hlbHBlcnMvY3Vyc29yLXBvc2l0aW9uJztcclxuaW1wb3J0IHsgY2xlYW5EYXRlIH0gZnJvbSAnLi9oZWxwZXJzL2NsZWFuLWRhdGUnO1xyXG5pbXBvcnQgeyBmb3JtYXR0aW5nRnJvbU1vc2Nvd1RpbWV6b25lLCBmb3JtYXR0aW5nVG9Nb3Njb3dUaW1lem9uZSB9IGZyb20gJy4vaGVscGVycy9mb3JtYXR0aW5nLW1vc2Nvdy10aW1lem9uZSc7XHJcbmltcG9ydCB7IFRpbWV6b25lVHlwZSB9IGZyb20gJy4vZW51bS90aW1lem9uZSc7XHJcbmltcG9ydCB7IGZvcm1hdHRpbmdGcm9tTW9kZWxzIH0gZnJvbSAnLi9oZWxwZXJzL2Zvcm1hdHRpbmctZnJvbS1tb2RlbHMnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5pbXBvcnQgeyB2NCBhcyB1dWlkdjQgfSBmcm9tICd1dWlkJztcclxuaW1wb3J0IHsgY3JlYXRlUG9wcGVyIH0gZnJvbSAnQHBvcHBlcmpzL2NvcmUnO1xyXG5pbXBvcnQgeyBGaWVsZCB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgSW5wdXREYXRlVGltZVZhbHVlVHlwZXMsIElucHV0RGF0ZVRpbWVWYWx1ZVdpdGhJZCB9IGZyb20gJy4vbW9kZWxzL2lucHV0LWRhdGUtdGltZS5tb2RlbCc7XHJcblxyXG5pbXBvcnQgdGltZXpvbmUgZnJvbSAnZGF5anMvcGx1Z2luL3RpbWV6b25lJztcclxuaW1wb3J0IHV0YyBmcm9tICdkYXlqcy9wbHVnaW4vdXRjJztcclxuaW1wb3J0IHR5cGUgeyBQbGFjZW1lbnQgfSBmcm9tICdAcG9wcGVyanMvY29yZS9saWIvZW51bXMnO1xyXG5cclxuZGF5anMuZXh0ZW5kKHV0YylcclxuZGF5anMuZXh0ZW5kKHRpbWV6b25lKVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtaW5wdXQtZGF0ZS10aW1lJyxcclxuICB0ZW1wbGF0ZVVybDogJ2lucHV0LWRhdGUtdGltZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJ2lucHV0LWRhdGUtdGltZS5jb21wb25lbnRzLmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUiwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSW5wdXREYXRlVGltZUNvbXBvbmVudCksIG11bHRpOiB0cnVlfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIElucHV0RGF0ZVRpbWVDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciwgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcclxuICBwdWJsaWMgZHQ6IGFueTtcclxuICBwdWJsaWMgdmFsdWU6IGFueSA9ICcnO1xyXG4gIHB1YmxpYyBkYXRlTW9kZWw6IERhdGVNb2RlbCA9IGRhdGVNb2RlbENvbnN0YW50O1xyXG4gIHB1YmxpYyB0aW1lTW9kZWw6IFRpbWVNb2RlbCA9IHRpbWVNb2RlbENvbnN0YW50O1xyXG5cclxuICBwdWJsaWMgaW5uZXJJbnZhbGlkID0gZmFsc2U7XHJcbiAgcHVibGljIGlubmVySW52YWxpZE1lc3NhZ2UgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBfaW5wdXRNYXNrOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQElucHV0KCkgc2V0IGlucHV0TWFzayh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9pbnB1dE1hc2sgPSB2YWx1ZTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2RhdGVGb3JtYXQ6IHN0cmluZyA9ICdERC5NTS5ZWVlZJztcclxuXHJcbiAgQElucHV0KCkgc2V0IGRhdGVGb3JtYXQodmFsdWU6IHN0cmluZykge1xyXG4gICAgLy8g0JzQsNC/0L/QuNC8INGA0YPRgdGB0LrQuNC1INGE0L7RgNC80LDRgtGLINCyINGB0LjRgdGC0LXQvNC90YvQtVxyXG4gICAgdGhpcy5fZGF0ZUZvcm1hdCA9IHRoaXMubWFwU3RyaW5nVG9Gb3JtYXQodmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRhdGVGb3JtYXQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLl9kYXRlRm9ybWF0O1xyXG4gIH1cclxuXHJcbiAgLy8g0JTQuNC90LDQvNC40YfQtdGB0LrQsNGPINC80LDRgdC60LAg0L3QsCDQvtGB0L3QvtCy0LUg0LLRi9Cx0YDQsNC90L3QvtCz0L4g0YTQvtGA0LzQsNGC0LBcclxuICBnZXQgY3VycmVudE1hc2soKTogc3RyaW5nIHtcclxuICAgIC8vINCV0YHQu9C4INCy0YvQsdGA0LDQvSDQtNC40LDQv9Cw0LfQvtC9LCDQvtGC0LrQu9GO0YfQsNC10Lwg0LzQsNGB0LrRgywg0YLQsNC6INC60LDQuiBuZ3gtbWFzayDQv9C70L7RhdC+INGA0LDQsdC+0YLQsNC10YIg0YEg0LTQuNC90LDQvNC40YfQtdGB0LrQvtC5INC00LvQuNC90L7QuSDRh9C10YDQtdC3INC30LDQv9GP0YLRg9GOXHJcbiAgICBpZiAodGhpcy5yYW5nZSkgcmV0dXJuICcnOyBcclxuICAgIFxyXG4gICAgaWYgKHRoaXMuaW5wdXRNYXNrKSByZXR1cm4gdGhpcy5pbnB1dE1hc2s7XHJcbiAgICBcclxuICAgIGxldCBtYXNrID0gdGhpcy5kYXRlRm9ybWF0LnJlcGxhY2UoL0QvZywgJzAnKS5yZXBsYWNlKC9NL2csICcwJykucmVwbGFjZSgvWS9nLCAnMCcpO1xyXG4gICAgaWYgKHRoaXMudGltZXBpY2tlcikgbWFzayArPSAnIDAwOjAwJztcclxuICAgIHJldHVybiBtYXNrO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGN1cnJlbnRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xyXG4gICAgaWYgKHRoaXMuZGF0ZVBsYWNlaG9sZGVyICE9PSAn0LTQtC7QvNC8LtCz0LPQs9CzJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRlUGxhY2Vob2xkZXI7XHJcbiAgICB9XHJcbiAgICBcclxuICAgIC8vINCQ0LLRgtC+LdC30LDQvNC10L3QsCDQvdCwINC+0YHQvdC+0LLQtSDRhNC+0YDQvNCw0YLQsFxyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZUZvcm1hdFxyXG4gICAgICAudG9Mb3dlckNhc2UoKVxyXG4gICAgICAucmVwbGFjZSgvZC9nLCAn0LQnKVxyXG4gICAgICAucmVwbGFjZSgvbS9nLCAn0LwnKVxyXG4gICAgICAucmVwbGFjZSgveS9nLCAn0LMnKTtcclxuICB9XHJcblxyXG4gIC8vIFNBVkUgU1RBVEVcclxuICBwdWJsaWMgdXVpZDogc3RyaW5nID0gdXVpZHY0KCk7XHJcbiAgQElucHV0KCkgcHVibGljIGZpZWxkczogRmllbGRbXSA9IFtdO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogSW5wdXREYXRlVGltZVNpemVzVHlwZXMgPSAnbGFyZ2UnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzc2VzID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGRhdGVMYWJlbCA9ICcnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0aW1lTGFiZWwgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgZGF0ZVBsYWNlaG9sZGVyID0gJ9C00LQu0LzQvC7Qs9Cz0LPQsyc7XHJcbiAgQElucHV0KCkgcHVibGljIHRpbWVQbGFjZWhvbGRlciA9ICcwMDowMCc7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJlYWRvbmx5ID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHJlcXVpcmVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIHRpbWVwaWNrZXIgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgcmFuZ2UgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgdGltZXpvbmU6IFRpbWV6b25lVHlwZSA9ICdkZWZhdWx0JztcclxuICBASW5wdXQoKSBwdWJsaWMgaW5saW5lID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGlzTWFudWFsSW5wdXQgPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhZGRNaW5UaW1lID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGFkZE1heFRpbWUgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYWRkTWluVGltZU9iaiE6IEV4dHJhVGltZTtcclxuICBASW5wdXQoKSBwdWJsaWMgYWRkTWF4VGltZU9iaiE6IEV4dHJhVGltZTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGRpc2FibGVWYWxpZGF0ZSA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlSW5jbHVkZXMgPSBmYWxzZTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGNvbnRhaW5lciA9ICdkaXYucGFnZS13cmFwcGVyJztcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZE1lc3NhZ2U6IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGNoZWNrSW52YWxpZDogdHJ1ZSB8IGZhbHNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpIG1pbkRhdGU6IHN0cmluZyA9ICcnXHJcbiAgQElucHV0KCkgbWF4RGF0ZTogc3RyaW5nID0gJydcclxuXHJcbiAgQElucHV0KCkgY2FsZW5kYXJQb3NpdGlvbjogUGxhY2VtZW50ID0gJ2JvdHRvbS1zdGFydCdcclxuXHJcbiAgQFZpZXdDaGlsZCgnZGF0ZUlucHV0JykgZGF0ZUlucHV0ITogRWxlbWVudFJlZjtcclxuXHJcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGFuZ2VkOiBFdmVudEVtaXR0ZXI8SW5wdXREYXRlVGltZVZhbHVlVHlwZXM+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBwdWJsaWMgbW9kZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJbnB1dERhdGVUaW1lVmFsdWVXaXRoSWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJbnB1dERhdGVUaW1lVmFsdWVXaXRoSWQ+KCk7XHJcbiAgQE91dHB1dCgpIHB1YmxpYyBibHVycmVkOiBFdmVudEVtaXR0ZXI8SW5wdXREYXRlVGltZVZhbHVlV2l0aElkPiA9IG5ldyBFdmVudEVtaXR0ZXI8SW5wdXREYXRlVGltZVZhbHVlV2l0aElkPigpO1xyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICAvLyDQmtC+0L3QstC10YDRgtC40YDRg9C10Lwg0YTQvtGA0LzQsNGCINC00LvRjyDQsdC40LHQu9C40L7RgtC10LrQuCAoWVlZWSAtPiB5eXl5KVxyXG4gICAgY29uc3QgbGliRm9ybWF0ID0gdGhpcy5kYXRlRm9ybWF0LnJlcGxhY2UoL1kvZywgJ3knKS5yZXBsYWNlKC9EL2csICdkJyk7XHJcblxyXG4gICAgLy8g0J7Qv9GA0LXQtNC10LvRj9C10Lwg0YHRgtCw0YDRgtC+0LLRg9GOINCz0LvRg9Cx0LjQvdGDINC60LDQu9C10L3QtNCw0YDRj1xyXG4gICAgY29uc3Qgc3RhcnRWaWV3ID0gdGhpcy5kYXRlRm9ybWF0LmluY2x1ZGVzKCdEJykgPyAnZGF5cycgOiAodGhpcy5kYXRlRm9ybWF0LmluY2x1ZGVzKCdNJykgPyAnbW9udGhzJyA6ICd5ZWFycycpO1xyXG4gICAgXHJcbiAgICB0aGlzLmR0ID0gbmV3IEFpckRhdGVwaWNrZXIodGhpcy5kYXRlSW5wdXQubmF0aXZlRWxlbWVudCwge1xyXG4gICAgICBjb250YWluZXI6IHRoaXMuY29udGFpbmVyLFxyXG4gICAgICBsb2NhbGU6IHtcclxuICAgICAgICBkYXRlRm9ybWF0OiBsaWJGb3JtYXQsXHJcbiAgICAgICAgdGltZUZvcm1hdDogJ0hIOm1tJyxcclxuICAgICAgfSxcclxuICAgICAgbXVsdGlwbGVEYXRlc1NlcGFyYXRvcjogJyAtICcsXHJcbiAgICAgIHZpZXc6IHN0YXJ0VmlldyxcclxuICAgICAgbWluVmlldzogc3RhcnRWaWV3LFxyXG4gICAgICBhdXRvQ2xvc2U6IHRydWUsXHJcbiAgICAgIHJhbmdlOiB0aGlzLnJhbmdlLFxyXG4gICAgICB0aW1lcGlja2VyOiB0aGlzLnRpbWVwaWNrZXIsXHJcbiAgICAgIG1pbkRhdGU6IHRoaXMubWluRGF0ZSA/IGZvcm1hdHRpbmdGcm9tTW9zY293VGltZXpvbmUodGhpcy5taW5EYXRlLCB0aGlzLnRpbWV6b25lKSA6ICcnLFxyXG4gICAgICBtYXhEYXRlOiB0aGlzLm1heERhdGUgPyBmb3JtYXR0aW5nRnJvbU1vc2Nvd1RpbWV6b25lKHRoaXMubWF4RGF0ZSwgdGhpcy50aW1lem9uZSkgOiAnJyxcclxuICAgICAgaW5saW5lOiB0aGlzLmlubGluZSxcclxuICAgICAgcG9zaXRpb246ICh7JGRhdGVwaWNrZXIsICR0YXJnZXQsICRwb2ludGVyLCBkb25lfSkgPT4ge1xyXG4gICAgICAgIGxldCBwb3BwZXIgPSBjcmVhdGVQb3BwZXIoJHRhcmdldCwgJGRhdGVwaWNrZXIsIHtcclxuICAgICAgICAgIHBsYWNlbWVudDogdGhpcy5jYWxlbmRhclBvc2l0aW9uLFxyXG4gICAgICAgICAgbW9kaWZpZXJzOiBbXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICBuYW1lOiAnZmxpcCcsXHJcbiAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgcGFkZGluZzoge1xyXG4gICAgICAgICAgICAgICAgICB0b3A6IDY0XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgbmFtZTogJ29mZnNldCcsXHJcbiAgICAgICAgICAgICAgb3B0aW9uczoge1xyXG4gICAgICAgICAgICAgICAgb2Zmc2V0OiBbMCwgMTBdXHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgbmFtZTogJ2Fycm93JyxcclxuICAgICAgICAgICAgICBvcHRpb25zOiB7XHJcbiAgICAgICAgICAgICAgICBlbGVtZW50OiAkcG9pbnRlclxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgXVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gZnVuY3Rpb24gY29tcGxldGVIaWRlKCkge1xyXG4gICAgICAgICAgcG9wcGVyLmRlc3Ryb3koKTtcclxuICAgICAgICAgIGRvbmUoKTtcclxuICAgICAgICB9O1xyXG4gICAgICB9LFxyXG4gICAgICBvblNlbGVjdDogKHsgZGF0ZSB9KSA9PiB7XHJcbiAgICAgICAgaWYgKCFkYXRlKSB7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0ZSkpIHtcclxuICAgICAgICAgIC8vINCe0LHRgNCw0LHQvtGC0LrQsCDQtNC40LDQv9Cw0LfQvtC90LBcclxuICAgICAgICAgIGNvbnN0IGlzb0FycmF5ID0gZGF0ZS5tYXAoZCA9PiBkLnRvSVNPU3RyaW5nKCkpO1xyXG4gICAgICAgICAgY29uc3QgZm9ybWF0dGVkQXJyYXkgPSBpc29BcnJheS5tYXAoaXNvID0+IGZvcm1hdHRpbmdUb01vc2Nvd1RpbWV6b25lKGlzbywgdGhpcy50aW1lem9uZSkpO1xyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAvLyDQntCx0L3QvtCy0LvRj9C10Lwg0LLQvdGD0YLRgNC10L3QvdC10LUg0LfQvdCw0YfQtdC90LjQtSDQutCw0Log0LzQsNGB0YHQuNCyXHJcbiAgICAgICAgICB0aGlzLnZhbHVlID0gZm9ybWF0dGVkQXJyYXk7XHJcbiAgICAgICAgICB0aGlzLnVwZGF0ZVZhbHVlKGZvcm1hdHRlZEFycmF5KTtcclxuICAgICAgICAgIFxyXG4gICAgICAgICAgLy8g0J/RgNC40L3Rg9C00LjRgtC10LvRjNC90L4g0L7QsdC90L7QstC70Y/QtdC8INGC0LXQutGB0YIg0LIg0LjQvdC/0YPRgtC1XHJcbiAgICAgICAgICBpZiAodGhpcy5kYXRlSW5wdXQpIHtcclxuICAgICAgICAgICAgdGhpcy5kYXRlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZ2V0RGF0ZVZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAvLyDQntC00LjQvdC+0YfQvdGL0Lkg0LLRi9Cx0L7RgCAo0YHRg9GJ0LXRgdGC0LLRg9GO0YnQsNGPINC70L7Qs9C40LrQsClcclxuICAgICAgICAgIGNvbnN0IGlzb1N0cmluZyA9IGRhdGUudG9JU09TdHJpbmcoKTtcclxuICAgICAgICAgIHRoaXMuZGF0ZU1vZGVsID0gZGF0ZU1vZGVsVmFsdWVQYXJzZShpc29TdHJpbmcsIHRoaXMudGltZXpvbmUsIHRoaXMuZGF0ZUZvcm1hdCk7XHJcbiAgICAgICAgICB0aGlzLnRpbWVNb2RlbCA9IHRpbWVNb2RlbFZhbHVlUGFyc2UoaXNvU3RyaW5nLCB0aGlzLnRpbWV6b25lKTtcclxuICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWUoZm9ybWF0dGluZ1RvTW9zY293VGltZXpvbmUoaXNvU3RyaW5nLCB0aGlzLnRpbWV6b25lKSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmR0KSB7XHJcbiAgICAgIGlmIChjaGFuZ2VzWydkYXRlRm9ybWF0J10gJiYgIWNoYW5nZXNbJ2RhdGVGb3JtYXQnXS5pc0ZpcnN0Q2hhbmdlKCkpIHtcclxuICAgICAgICAvLyAxLiDQmtC+0L3QstC10YDRgtC40YDRg9C10Lwg0YTQvtGA0LzQsNGCINC00LvRjyBBaXJEYXRlcGlja2VyIChERC5NTS5ZWVlZIC0+IGRkLm1tLnl5eXkpXHJcbiAgICAgICAgY29uc3QgbGliRm9ybWF0ID0gdGhpcy5kYXRlRm9ybWF0LnJlcGxhY2UoL1kvZywgJ3knKS5yZXBsYWNlKC9EL2csICdkJyk7XHJcblxyXG4gICAgICAgIC8vIDIuINCe0L/RgNC10LTQtdC70Y/QtdC8INC90L7QstGD0Y4g0LPQu9GD0LHQuNC90YMg0L7RgtC+0LHRgNCw0LbQtdC90LjRj1xyXG4gICAgICAgIGNvbnN0IHN0YXJ0VmlldyA9IHRoaXMuZGF0ZUZvcm1hdC5pbmNsdWRlcygnRCcpIFxyXG4gICAgICAgICAgPyAnZGF5cycgXHJcbiAgICAgICAgICA6ICh0aGlzLmRhdGVGb3JtYXQuaW5jbHVkZXMoJ00nKSA/ICdtb250aHMnIDogJ3llYXJzJyk7XHJcblxyXG4gICAgICAgIC8vIDMuINCe0LHQvdC+0LLQu9GP0LXQvCDQvdCw0YHRgtGA0L7QudC60Lgg0LrQsNC70LXQvdC00LDRgNGPXHJcbiAgICAgICAgdGhpcy5kdC51cGRhdGUoe1xyXG4gICAgICAgICAgbG9jYWxlOiB7XHJcbiAgICAgICAgICAgIC4uLnRoaXMuZHQub3B0cy5sb2NhbGUsIC8vINCh0L7RhdGA0LDQvdGP0LXQvCDQvtGB0YLQsNC70YzQvdGL0LUg0L3QsNGB0YLRgNC+0LnQutC4INC70L7QutCw0LvQuFxyXG4gICAgICAgICAgICBkYXRlRm9ybWF0OiBsaWJGb3JtYXRcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICB2aWV3OiBzdGFydFZpZXcsXHJcbiAgICAgICAgICBtaW5WaWV3OiBzdGFydFZpZXdcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgLy8gNC4g0J/QvtGB0LvQtSDRgdC80LXQvdGLINGE0L7RgNC80LDRgtCwINC20LXQu9Cw0YLQtdC70YzQvdC+INC/0LXRgNC10LLRi9Cx0YDQsNGC0Ywg0YLQtdC60YPRidGD0Y4g0LTQsNGC0YMsIFxyXG4gICAgICAgIC8vINGH0YLQvtCx0Ysg0L7QvdCwINC+0YLQvtCx0YDQsNC30LjQu9Cw0YHRjCDQsiDQvdC+0LLQvtC8INGE0L7RgNC80LDRgtC1INCyINC40L3Qv9GD0YLQtVxyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLmR0LnNlbGVjdERhdGUodGhpcy5kdC5zZWxlY3RlZERhdGVzLCB7IHNpbGVudDogdHJ1ZSB9KTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgXHJcbiAgICAgIGlmIChjaGFuZ2VzWydtYXhEYXRlJ10pIHtcclxuICAgICAgICB0aGlzLmR0LnVwZGF0ZSh7bWF4RGF0ZTogdGhpcy5tYXhEYXRlfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLmR0LnNlbGVjdERhdGUoZm9ybWF0dGluZ0Zyb21Nb2RlbHModGhpcy5kYXRlTW9kZWwsIHRoaXMudGltZU1vZGVsLCB0aGlzLnRpbWVwaWNrZXIpLnRvSVNPU3RyaW5nKCksIHtcclxuICAgICAgICAgICAgdXBkYXRlVGltZTogdGhpcy50aW1lcGlja2VyLFxyXG4gICAgICAgICAgICBzaWxlbnQ6IHRydWVcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVWYWxpZGF0ZSkge1xyXG4gICAgICAgICAgY29uc3QgaW52YWxpZCA9IHRoaXMuaW5uZXJJbnZhbGlkO1xyXG4gICAgICAgICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuY2hlY2tpbmdJbnZhbGlkKHRoaXMudmFsdWUsIHRoaXMubWF4RGF0ZSwgdGhpcy5taW5EYXRlKTtcclxuXHJcbiAgICAgICAgICBpZiAoaW52YWxpZCAmJiBpc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWVNb2RlbCh0aGlzLmRhdGVNb2RlbCwgdGhpcy50aW1lTW9kZWwpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChjaGFuZ2VzWydtaW5EYXRlJ10pIHtcclxuICAgICAgICB0aGlzLmR0LnVwZGF0ZSh7bWluRGF0ZTogdGhpcy5taW5EYXRlfSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XHJcbiAgICAgICAgICB0aGlzLmR0LnNlbGVjdERhdGUoZm9ybWF0dGluZ0Zyb21Nb2RlbHModGhpcy5kYXRlTW9kZWwsIHRoaXMudGltZU1vZGVsLCB0aGlzLnRpbWVwaWNrZXIpLnRvSVNPU3RyaW5nKCksIHtcclxuICAgICAgICAgICAgdXBkYXRlVGltZTogdGhpcy50aW1lcGlja2VyLFxyXG4gICAgICAgICAgICBzaWxlbnQ6IHRydWVcclxuICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVWYWxpZGF0ZSkge1xyXG4gICAgICAgICAgY29uc3QgaW52YWxpZCA9IHRoaXMuaW5uZXJJbnZhbGlkO1xyXG4gICAgICAgICAgY29uc3QgaXNWYWxpZCA9IHRoaXMuY2hlY2tpbmdJbnZhbGlkKHRoaXMudmFsdWUsIHRoaXMubWF4RGF0ZSwgdGhpcy5taW5EYXRlKTtcclxuXHJcbiAgICAgICAgICBpZiAoaW52YWxpZCAmJiBpc1ZhbGlkKSB7XHJcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIHRoaXMudXBkYXRlVmFsdWVNb2RlbCh0aGlzLmRhdGVNb2RlbCwgdGhpcy50aW1lTW9kZWwpO1xyXG4gICAgICAgICAgICB9LCAwKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgZ2V0RGF0ZVZhbHVlKCk6IHN0cmluZyB7XHJcbiAgICAvLyDQldGB0LvQuCDRjdGC0L4g0LzQsNGB0YHQuNCyIChyYW5nZSDRgNC10LbQuNC8KVxyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMudmFsdWVcclxuICAgICAgICAubWFwKHZhbCA9PiB7XHJcbiAgICAgICAgICBjb25zdCBtb2RlbCA9IGRhdGVNb2RlbFZhbHVlUGFyc2UodmFsLCB0aGlzLnRpbWV6b25lLCB0aGlzLmRhdGVGb3JtYXQpO1xyXG4gICAgICAgICAgcmV0dXJuIG1vZGVsLnZpZXc7XHJcbiAgICAgICAgfSlcclxuICAgICAgICAuam9pbignIC0gJyk7IC8vINC40LvQuCAnIC0gJyDQv9C+INCy0LDRiNC10LzRgyDQttC10LvQsNC90LjRjlxyXG4gICAgfVxyXG5cclxuICAgIC8vINCe0LTQuNC90L7Rh9C90YvQuSDQstGL0LHQvtGAICjRgdGC0LDRgNCw0Y8g0LvQvtCz0LjQutCwKVxyXG4gICAgaWYgKCF0aGlzLmRhdGVNb2RlbC52aWV3KSByZXR1cm4gJyc7XHJcbiAgICBjb25zdCB0aW1lUGFydCA9ICh0aGlzLnRpbWVwaWNrZXIgJiYgdGhpcy50aW1lTW9kZWwudmlldykgPyAnICcgKyB0aGlzLnRpbWVNb2RlbC52aWV3IDogJyc7XHJcbiAgICByZXR1cm4gYCR7dGhpcy5kYXRlTW9kZWwudmlld30ke3RpbWVQYXJ0fWA7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGdldENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtJbnB1dERhdGVUaW1lU2l6ZXNFbnVtW3RoaXMuc2l6ZV19ICR7dGhpcy5jdXN0b21DbGFzc2VzfSAke3RoaXMuY2hlY2tWYWxpZENsYXNzZXN9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGlzVmFsaWRNb2RlbHMoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuZGF0ZU1vZGVsLmludmFsaWQgJiYgKHRoaXMudGltZXBpY2tlciA/ICF0aGlzLnRpbWVNb2RlbC5pbnZhbGlkIDogdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzVmlld0NsZWFuSWNvbigpIHtcclxuICAgIHJldHVybiAhIXRoaXMuZGF0ZUlucHV0Py5uYXRpdmVFbGVtZW50LnZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIGdldCBjaGVja1ZhbGlkQ2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgaWYgKCF0aGlzLnJlcXVpcmVkKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gZmFsc2UgPyAnbXJ4LWlucHV0LWNoZWNrZWQtc3VjY2VzcycgOiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gdHJ1ZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1lcnJvcicgOiAnJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2NoZWNrRXh0cmFUaW1lKCkge1xyXG4gICAgaWYgKHRoaXMuYWRkTWF4VGltZSAmJiAhdGhpcy50aW1lcGlja2VyKSB7XHJcbiAgICAgIHRoaXMudGltZU1vZGVsLmhvdXIgPSAnMjMnO1xyXG4gICAgICB0aGlzLnRpbWVNb2RlbC5taW51dGUgPSAnNTknO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYWRkTWluVGltZSAmJiAhdGhpcy50aW1lcGlja2VyKSB7XHJcbiAgICAgIHRoaXMudGltZU1vZGVsLmhvdXIgPSAnMDAnO1xyXG4gICAgICB0aGlzLnRpbWVNb2RlbC5taW51dGUgPSAnMDAnO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMuYWRkTWF4VGltZU9iaiAmJiAhdGhpcy50aW1lcGlja2VyKSB7XHJcbiAgICAgIHRoaXMudGltZU1vZGVsLmhvdXIgPSB0aGlzLmFkZE1heFRpbWVPYmouaG91cjtcclxuICAgICAgdGhpcy50aW1lTW9kZWwubWludXRlID0gdGhpcy5hZGRNYXhUaW1lT2JqLm1pbnV0ZTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLmFkZE1pblRpbWVPYmogJiYgIXRoaXMudGltZXBpY2tlcikge1xyXG4gICAgICB0aGlzLnRpbWVNb2RlbC5ob3VyID0gdGhpcy5hZGRNaW5UaW1lT2JqLmhvdXI7XHJcbiAgICAgIHRoaXMudGltZU1vZGVsLm1pbnV0ZSA9IHRoaXMuYWRkTWluVGltZU9iai5taW51dGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xpY2tUb0ljb25DYWxlbmRhcigpOiB2b2lkIHtcclxuICAgIHRoaXMuZGF0ZUlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBjbGlja1RvSWNvbkNsZWFyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5kdC5zZXRWaWV3RGF0ZShuZXcgRGF0ZSgpKTtcclxuICAgIHRoaXMuZHQgJiYgdGhpcy5kdC5jbGVhcigpO1xyXG4gICAgdGhpcy5kYXRlTW9kZWwgPSBkYXRlTW9kZWxDb25zdGFudDtcclxuICAgIHRoaXMudGltZU1vZGVsID0gdGltZU1vZGVsQ29uc3RhbnQ7XHJcblxyXG4gICAgaWYgKCF0aGlzLnJhbmdlKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlVmFsdWUoJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5uZXJJbnZhbGlkID0gZmFsc2U7XHJcbiAgICB0aGlzLmlubmVySW52YWxpZE1lc3NhZ2UgPSAnJztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVmFsdWVNb2RlbChkYXRlTW9kZWw6IERhdGVNb2RlbCwgdGltZU1vZGVsOiBUaW1lTW9kZWwsIGJvbDogYm9vbGVhbiA9IGZhbHNlKSB7XHJcbiAgICBpZiAoZGF0ZU1vZGVsLnZpZXcgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMuY2xpY2tUb0ljb25DbGVhcigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgZGF0ZSA9IGZvcm1hdHRpbmdGcm9tTW9kZWxzKGRhdGVNb2RlbCwgdGltZU1vZGVsLCB0aGlzLnRpbWVwaWNrZXIgfHwgdGhpcy5hZGRNYXhUaW1lIHx8IHRoaXMuYWRkTWluVGltZSk7XHJcblxyXG4gICAgICBjb25zdCBmb3JtYXR0aW5nRGF0ZSA9IGZvcm1hdHRpbmdUb01vc2Nvd1RpbWV6b25lKGRhdGUudG9JU09TdHJpbmcoKSwgdGhpcy50aW1lem9uZSk7XHJcblxyXG4gICAgICBjb25zdCBpc1ZhbGlkID0gdGhpcy5jaGVja2luZ0ludmFsaWQoZm9ybWF0dGluZ0RhdGUsIHRoaXMubWF4RGF0ZSwgdGhpcy5taW5EYXRlKTtcclxuXHJcbiAgICAgIGlmIChkYXRlLmlzVmFsaWQoKSAmJiBpc1ZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5kdC5zZWxlY3REYXRlKGZvcm1hdHRpbmdGcm9tTW9kZWxzKGRhdGVNb2RlbCwgdGltZU1vZGVsLCB0aGlzLnRpbWVwaWNrZXIpLnRvSVNPU3RyaW5nKCksIHtcclxuICAgICAgICAgIHVwZGF0ZVRpbWU6IHRoaXMudGltZXBpY2tlcixcclxuICAgICAgICAgIHNpbGVudDogdHJ1ZVxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuZHQuc2V0Vmlld0RhdGUoZm9ybWF0dGluZ0Zyb21Nb2RlbHMoZGF0ZU1vZGVsLCB0aW1lTW9kZWwsIHRoaXMudGltZXBpY2tlcikudG9JU09TdHJpbmcoKSk7XHJcbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZShmb3JtYXR0aW5nRGF0ZSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdXBkYXRlVmFsdWVzQXJyYXkgPSAodmFsdWVzOiBhbnlbXSkgPT4ge1xyXG4gICAgY29uc3QgZGF0ZXMgPSB2YWx1ZXMubWFwKGRhdGUgPT4ge1xyXG4gICAgICByZXR1cm4gZm9ybWF0dGluZ1RvTW9zY293VGltZXpvbmUoZGF0ZS50b0lTT1N0cmluZygpLCB0aGlzLnRpbWV6b25lKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHRoaXMudXBkYXRlVmFsdWUoZGF0ZXMpO1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgaW52YWxpZE1lc3NhZ2VPbihtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5uZXJJbnZhbGlkID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5uZXJJbnZhbGlkTWVzc2FnZSA9IG1lc3NhZ2U7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGludmFsaWRNZXNzYWdlT2ZmKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbm5lckludmFsaWQgPSBmYWxzZTtcclxuICAgIHRoaXMuaW5uZXJJbnZhbGlkTWVzc2FnZSA9ICcnO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZURhdGVWYWx1ZShkYXRlSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcclxuICAgIGNvbnN0IHNlbGVjdGlvblN0YXJ0ID0gZGF0ZUlucHV0LnNlbGVjdGlvblN0YXJ0O1xyXG5cclxuICAgIC8vINCf0JXQoNCV0JTQkNCV0Jwg0KTQntCg0JzQkNCiINCSINCl0JXQm9Cf0JXQoFxyXG4gICAgdGhpcy5kYXRlTW9kZWwgPSB2YWxpZGF0ZURhdGVNb2RlbChkYXRlSW5wdXQudmFsdWUsIHRoaXMuZGF0ZUZvcm1hdCk7XHJcbiAgICB0aGlzLnRpbWVNb2RlbCA9IHZhbGlkYXRlVGltZU1vZGVsKGRhdGVJbnB1dC52YWx1ZSk7XHJcblxyXG4gICAgZGF0ZUlucHV0LnZhbHVlID0gdGhpcy5nZXREYXRlVmFsdWU7XHJcbiAgICBkYXRlSW5wdXQuc2VsZWN0aW9uU3RhcnQgPSBzZWxlY3Rpb25TdGFydDtcclxuICAgIGRhdGVJbnB1dC5zZWxlY3Rpb25FbmQgPSBkYXRlSW5wdXQuc2VsZWN0aW9uU3RhcnQ7XHJcblxyXG4gICAgdGhpcy5fY2hlY2tFeHRyYVRpbWUoKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1ZhbGlkTW9kZWxzIHx8IHRoaXMuZGF0ZU1vZGVsLnZpZXcgPT09ICcnKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlVmFsdWVNb2RlbCh0aGlzLmRhdGVNb2RlbCwgdGhpcy50aW1lTW9kZWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsaWNrVG9JbnB1dChpbnB1dDogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xyXG4gICAgLy8gaWYgKGlucHV0LnNlbGVjdGlvblN0YXJ0ID09PSBpbnB1dC5zZWxlY3Rpb25FbmQgJiYgaW5wdXQuc2VsZWN0aW9uU3RhcnQgIT09IG51bGwpIHtcclxuICAgIC8vICAgY29uc3QgeyBzdGFydCwgZW5kIH0gPSBtYXJrUG9zaXRpb24oaW5wdXQuc2VsZWN0aW9uU3RhcnQsIGlucHV0LnNlbGVjdGlvbkVuZCwgdGhpcy5kYXRlRm9ybWF0KTtcclxuICAgICAgXHJcbiAgICAvLyAgIGlucHV0LnNlbGVjdGlvblN0YXJ0ID0gc3RhcnQ7XHJcbiAgICAvLyAgIGlucHV0LnNlbGVjdGlvbkVuZCA9IGVuZDtcclxuICAgIC8vIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tpbmdJbnZhbGlkKHZhbHVlOiBzdHJpbmcsIG1heERhdGU6IHN0cmluZywgbWluRGF0ZTogc3RyaW5nKSB7XHJcbiAgICBsZXQgdmFsaWRNYXhEYXRlID0gJydcclxuICAgIGxldCB2YWxpZE1pbkRhdGUgPSAnJ1xyXG5cclxuICAgIGlmICh0aGlzLnRpbWVwaWNrZXIpIHtcclxuICAgICAgdmFsaWRNYXhEYXRlID0gdGhpcy5tYXhEYXRlXHJcbiAgICAgIHZhbGlkTWluRGF0ZSA9IHRoaXMubWluRGF0ZVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMubWF4RGF0ZSkge1xyXG4gICAgICAgIHZhbGlkTWF4RGF0ZSA9IGRheWpzKHRoaXMubWF4RGF0ZSkudHoodGhpcy50aW1lem9uZSkuaG91cigyMykubWludXRlKDU5KS5zZWNvbmQoNTkpLm1pbGxpc2Vjb25kKDApLnRvSVNPU3RyaW5nKClcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKHRoaXMubWluRGF0ZSkge1xyXG4gICAgICAgIHZhbGlkTWluRGF0ZSA9IGRheWpzKHRoaXMubWluRGF0ZSkudHoodGhpcy50aW1lem9uZSkuaG91cigwKS5taW51dGUoMCkuc2Vjb25kKDAgLSAxKS5taWxsaXNlY29uZCgwKS50b0lTT1N0cmluZygpXHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kaXNhYmxlVmFsaWRhdGUpIHtcclxuICAgICAgdGhpcy5pbnZhbGlkTWVzc2FnZU9mZigpO1xyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodmFsaWRNYXhEYXRlICYmIChkYXlqcyh2YWx1ZSkuZGlmZihkYXlqcyh2YWxpZE1heERhdGUpKSA9PT0gMCkgJiYgIXRoaXMuZGlzYWJsZUluY2x1ZGVzKSB7XHJcbiAgICAgIHRoaXMuaW52YWxpZE1lc3NhZ2VPbign0JTQsNGC0LAg0Lgg0LLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINGA0LDQstC90LAg0LTQsNGC0LUg0Lgg0LLRgNC10LzQtdC90Lgg0L3QsNGH0LDQu9CwJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAodmFsaWRNYXhEYXRlICYmIChkYXlqcyh2YWx1ZSkuZGlmZihkYXlqcyh2YWxpZE1heERhdGUpKSA+IDApKSB7XHJcbiAgICAgIHRoaXMuaW52YWxpZE1lc3NhZ2VPbign0JTQsNGC0LAg0L7QutC+0L3Rh9Cw0L3QuNGPINC90LUg0LzQvtC20LXRgiDQsdGL0YLRjCDRgNCw0L3RjNGI0LUg0LTQsNGC0Ysg0L3QsNGH0LDQu9CwJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAodmFsaWRNaW5EYXRlICYmIChkYXlqcyh2YWx1ZSkuZGlmZihkYXlqcyh2YWxpZE1pbkRhdGUpKSA9PT0gMCkgJiYgIXRoaXMuZGlzYWJsZUluY2x1ZGVzKSB7XHJcbiAgICAgIHRoaXMuaW52YWxpZE1lc3NhZ2VPbign0JTQsNGC0LAg0Lgg0LLRgNC10LzRjyDQvtC60L7QvdGH0LDQvdC40Y8g0L3QtSDQvNC+0LbQtdGCINCx0YvRgtGMINGA0LDQstC90LAg0LTQsNGC0LUg0Lgg0LLRgNC10LzQtdC90Lgg0L3QsNGH0LDQu9CwJyk7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSBpZiAodmFsaWRNaW5EYXRlICYmIGRheWpzKHZhbHVlKS5kaWZmKGRheWpzKHZhbGlkTWluRGF0ZSkpIDwgMCkge1xyXG4gICAgICB0aGlzLmludmFsaWRNZXNzYWdlT24oJ9CU0LDRgtCwINC+0LrQvtC90YfQsNC90LjRjyDQvdC1INC80L7QttC10YIg0LHRi9GC0Ywg0YDQsNC90YzRiNC1INC00LDRgtGLINC90LDRh9Cw0LvQsCcpO1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmludmFsaWRNZXNzYWdlT2ZmKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHdyaXRlVmFsdWUob3V0c2lkZVZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmIChvdXRzaWRlVmFsdWUpIHtcclxuICAgICAgaWYgKEFycmF5LmlzQXJyYXkob3V0c2lkZVZhbHVlKSkge1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSBvdXRzaWRlVmFsdWU7XHJcbiAgICAgICAgaWYgKHRoaXMuZHQpIHtcclxuICAgICAgICAgIC8vINCf0LXRgNC10LTQsNC10Lwg0LzQsNGB0YHQuNCyINC00LDRgiDQsiDQutCw0LvQtdC90LTQsNGA0YxcclxuICAgICAgICAgIGNvbnN0IGRhdGVzID0gb3V0c2lkZVZhbHVlLm1hcCh2YWwgPT4gZGF5anModmFsKS50b0RhdGUoKSk7XHJcbiAgICAgICAgICB0aGlzLmR0LnNlbGVjdERhdGUoZGF0ZXMsIHsgc2lsZW50OiB0cnVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyDQntC00LjQvdC+0YfQvdC+0LUg0LfQvdCw0YfQtdC90LjQtVxyXG4gICAgICAgIHRoaXMuZGF0ZU1vZGVsID0gZGF0ZU1vZGVsVmFsdWVQYXJzZShvdXRzaWRlVmFsdWUsIHRoaXMudGltZXpvbmUsIHRoaXMuZGF0ZUZvcm1hdCk7XHJcbiAgICAgICAgdGhpcy50aW1lTW9kZWwgPSB0aW1lTW9kZWxWYWx1ZVBhcnNlKG91dHNpZGVWYWx1ZSwgdGhpcy50aW1lem9uZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuZHQpIHtcclxuICAgICAgICAgIGNvbnN0IGRhdGUgPSBmb3JtYXR0aW5nRnJvbU1vZGVscyh0aGlzLmRhdGVNb2RlbCwgdGhpcy50aW1lTW9kZWwsIHRoaXMudGltZXBpY2tlcik7XHJcbiAgICAgICAgICB0aGlzLmR0LnNlbGVjdERhdGUoZGF0ZS50b0RhdGUoKSwgeyBzaWxlbnQ6IHRydWUgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5yYW5nZSA/IFtdIDogJyc7XHJcbiAgICAgIGlmICh0aGlzLmR0KSB0aGlzLmR0LmNsZWFyKHsgc2lsZW50OiB0cnVlIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogYW55KSA9PiB7XHJcbiAgfTtcclxuICBwcml2YXRlIG9uVG91Y2hlZCA9ICgpID0+IHtcclxuICB9O1xyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHt9KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlVmFsdWUoaW5zaWRlVmFsdWU6IElucHV0RGF0ZVRpbWVWYWx1ZVR5cGVzKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gaW5zaWRlVmFsdWU7XHJcbiAgICB0aGlzLmNoYW5nZWQuZW1pdChpbnNpZGVWYWx1ZSk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoe3ZhbHVlOiBpbnNpZGVWYWx1ZSwgaWQ6IHRoaXMudXVpZH0pO1xyXG4gICAgdGhpcy5vbkNoYW5nZShpbnNpZGVWYWx1ZSk7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uQmx1cihldmVudDogRXZlbnQpIHtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmJsdXJyZWQuZW1pdCh7dmFsdWU6IHRoaXMudmFsdWUsIGlkOiB0aGlzLnV1aWR9KTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBtYXBTdHJpbmdUb0Zvcm1hdChmb3JtYXRTdHI6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICBpZiAoIWZvcm1hdFN0cikgcmV0dXJuICdERC5NTS5ZWVlZJztcclxuXHJcbiAgICBjb25zdCBtYXA6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7XHJcbiAgICAgICfQs9Cz0LPQsyc6ICdZWVlZJyxcclxuICAgICAgJ9C80Lwu0LPQs9Cz0LMnOiAnTU0uWVlZWScsXHJcbiAgICAgICfQtNC0LtC80Lwu0LPQs9Cz0LMnOiAnREQuTU0uWVlZWScsXHJcbiAgICAgICfQs9Cz0LPQsy3QvNC8LdC00LQnOiAnWVlZWS1NTS1ERCcgLy8g0L3QsCDRgdC70YPRh9Cw0Lkg0YHQtdGA0LLQtdGA0L3Ri9GFINGE0L7RgNC80LDRgtC+0LJcclxuICAgIH07XHJcblxyXG4gICAgcmV0dXJuIG1hcFtmb3JtYXRTdHIudG9Mb3dlckNhc2UoKV0gfHwgJ0RELk1NLllZWVknO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgICBjbGFzcz1cIm1yeC1pbnB1dC1kYXRlXCJcclxuICAgIFtjbGFzcy5tcngtaW5wdXQtZXJyb3JdPVwiaW52YWxpZCB8fCBpbm5lckludmFsaWRcIlxyXG4gICAgW2NsYXNzLm1yeC1pbnB1dC1yZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICA8bXJ4LWxhYmVsICpuZ0lmPVwidGltZUxhYmVsIHx8IGRhdGVMYWJlbFwiPnt7IGRhdGVMYWJlbCB9fTwvbXJ4LWxhYmVsPlxyXG4gICAgPGRpdiBjbGFzcz1cIm1yeC1pbnB1dC1kYXRlX193cmFwcGVyXCI+XHJcbiAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgI2RhdGVJbnB1dFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgYXV0b2NvbXBsZXRlPVwibm9wZVwiXHJcbiAgICAgICAgICBjbGFzcz1cIm1yeC1pbnB1dC1kYXRlX19pbnB1dCBtcngtaW5wdXQtZGF0ZV9fZGF0ZVwiXHJcbiAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiY3VycmVudFBsYWNlaG9sZGVyXCJcclxuICAgICAgICAgIFtuZ01vZGVsXT1cImdldERhdGVWYWx1ZVwiXHJcbiAgICAgICAgICBbbWFza109XCJjdXJyZW50TWFza1wiXHJcbiAgICAgICAgICBbbGVhZFplcm9EYXRlVGltZV09XCJ0cnVlXCJcclxuICAgICAgICAgIFt2YWxpZGF0aW9uXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgICAgICBbcmVhZE9ubHldPVwiIWlzTWFudWFsSW5wdXRcIlxyXG4gICAgICAgICAgKGlucHV0KT1cIiFyYW5nZSA/IHVwZGF0ZURhdGVWYWx1ZShkYXRlSW5wdXQpIDogbnVsbFwiXHJcbiAgICAgICAgICAoY2xpY2spPVwiY2xpY2tUb0lucHV0KGRhdGVJbnB1dClcIlxyXG4gICAgICAgICAgKGJsdXIpPVwib25CbHVyKCRldmVudClcIlxyXG4gICAgICAvPlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cIiFkaXNhYmxlZFwiIGNsYXNzPVwibXJ4LWlucHV0LWRhdGVfX2ljb25zXCI+XHJcbiAgICAgICAgICA8c3BhblxyXG4gICAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZVwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpc1ZpZXdDbGVhbkljb25cIlxyXG4gICAgICAgICAgICAgIChjbGljayk9XCJjbGlja1RvSWNvbkNsZWFyKClcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMTZdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmljb24tZm9udC0yNF09XCJzaXplID09PSAnbWVkaXVtJyB8fCBzaXplID09PSAnbGFyZ2UnXCJcclxuICAgICAgICAgID48L3NwYW4+XHJcbiAgICAgICAgPHNwYW5cclxuICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNhbGVuZGFyXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsaWNrVG9JY29uQ2FsZW5kYXIoKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMTZdPVwic2l6ZSA9PT0gJ3NtYWxsJ1wiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pY29uLWZvbnQtMjRdPVwic2l6ZSA9PT0gJ21lZGl1bScgfHwgc2l6ZSA9PT0gJ2xhcmdlJ1wiXHJcbiAgICAgICAgPjwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgICA8bXJ4LWVycm9yLW1lc3NhZ2VcclxuICAgICAgICAqbmdJZj1cImludmFsaWQ7IGVsc2UgaW5uZXJJbnZhbGlkVGVtcGxhdGVcIlxyXG4gICAgICAgIFtpbnZhbGlkTWVzc2FnZV09XCJpbnZhbGlkTWVzc2FnZVwiXHJcbiAgICA+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuXHJcbiAgPG5nLXRlbXBsYXRlICNpbm5lckludmFsaWRUZW1wbGF0ZT5cclxuICAgIDxtcngtZXJyb3ItbWVzc2FnZVxyXG4gICAgICAgICpuZ0lmPVwiaW5uZXJJbnZhbGlkXCJcclxuICAgICAgICBbaW52YWxpZE1lc3NhZ2VdPVwiaW5uZXJJbnZhbGlkTWVzc2FnZVwiXHJcbiAgICA+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuICA8L25nLXRlbXBsYXRlPlxyXG5cclxuICA8bXJ4LXNhdmUtc3RhdGUgW2lkXT1cInV1aWRcIiBbZmllbGRzXT1cImZpZWxkc1wiPjwvbXJ4LXNhdmUtc3RhdGU+XHJcbjwvZGl2PlxyXG5cclxuXHJcblxyXG4iXX0=
|
package/fesm2022/myrta-ui.mjs
CHANGED
|
@@ -10578,6 +10578,28 @@ class InputDateTimeComponent {
|
|
|
10578
10578
|
}
|
|
10579
10579
|
ngOnChanges(changes) {
|
|
10580
10580
|
if (this.dt) {
|
|
10581
|
+
if (changes['dateFormat'] && !changes['dateFormat'].isFirstChange()) {
|
|
10582
|
+
// 1. Конвертируем формат для AirDatepicker (DD.MM.YYYY -> dd.mm.yyyy)
|
|
10583
|
+
const libFormat = this.dateFormat.replace(/Y/g, 'y').replace(/D/g, 'd');
|
|
10584
|
+
// 2. Определяем новую глубину отображения
|
|
10585
|
+
const startView = this.dateFormat.includes('D')
|
|
10586
|
+
? 'days'
|
|
10587
|
+
: (this.dateFormat.includes('M') ? 'months' : 'years');
|
|
10588
|
+
// 3. Обновляем настройки календаря
|
|
10589
|
+
this.dt.update({
|
|
10590
|
+
locale: {
|
|
10591
|
+
...this.dt.opts.locale, // Сохраняем остальные настройки локали
|
|
10592
|
+
dateFormat: libFormat
|
|
10593
|
+
},
|
|
10594
|
+
view: startView,
|
|
10595
|
+
minView: startView
|
|
10596
|
+
});
|
|
10597
|
+
// 4. После смены формата желательно перевыбрать текущую дату,
|
|
10598
|
+
// чтобы она отобразилась в новом формате в инпуте
|
|
10599
|
+
if (this.value) {
|
|
10600
|
+
this.dt.selectDate(this.dt.selectedDates, { silent: true });
|
|
10601
|
+
}
|
|
10602
|
+
}
|
|
10581
10603
|
if (changes['maxDate']) {
|
|
10582
10604
|
this.dt.update({ maxDate: this.maxDate });
|
|
10583
10605
|
if (this.value) {
|