@anglr/datetime 1.0.0-beta.20210415072550 → 1.0.0-beta.20220217103425
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/changelog.md +1 -1
- package/datetime.metadata.json +1 -1
- package/dist/es2015/src/picker/components/picker/picker.component.js +47 -4
- package/dist/es2015/src/picker/misc/datetimePicker.interface.js +6 -1
- package/dist/es2015/src/selector/components/selector/selector.component.js +9 -1
- package/dist/es5/src/picker/components/picker/picker.component.js +48 -4
- package/dist/es5/src/picker/misc/datetimePicker.interface.js +6 -1
- package/dist/es5/src/selector/components/selector/selector.component.js +9 -1
- package/package.json +7 -7
- package/readme.md +3 -0
- package/src/picker/components/picker/picker.component.d.ts.map +1 -1
- package/src/picker/misc/datetimePicker.interface.d.ts +4 -0
- package/src/picker/misc/datetimePicker.interface.d.ts.map +1 -1
- package/src/selector/components/selector/selector.component.d.ts.map +1 -1
- package/version.bak +1 -1
|
@@ -92,6 +92,10 @@ export class DateTimeSelectorComponent {
|
|
|
92
92
|
this.max = null;
|
|
93
93
|
this.format = formatProvider.date;
|
|
94
94
|
this._options = extend(true, {}, defaultConfiguration, configuration);
|
|
95
|
+
// without deep-copy for this attribute
|
|
96
|
+
if (configuration === null || configuration === void 0 ? void 0 : configuration.pickerPeriodsDefinition) {
|
|
97
|
+
this._options.pickerPeriodsDefinition = configuration.pickerPeriodsDefinition;
|
|
98
|
+
}
|
|
95
99
|
}
|
|
96
100
|
//######################### public properties #########################
|
|
97
101
|
/**
|
|
@@ -185,6 +189,10 @@ export class DateTimeSelectorComponent {
|
|
|
185
189
|
*/
|
|
186
190
|
set options(value) {
|
|
187
191
|
this._options = extend(true, this._options, value);
|
|
192
|
+
// without deep-copy for this attribute
|
|
193
|
+
if (value === null || value === void 0 ? void 0 : value.pickerPeriodsDefinition) {
|
|
194
|
+
this._options.pickerPeriodsDefinition = value.pickerPeriodsDefinition;
|
|
195
|
+
}
|
|
188
196
|
}
|
|
189
197
|
/**
|
|
190
198
|
* Gets or sets minimal possible value for picker, that can be picked
|
|
@@ -503,4 +511,4 @@ if (false) {
|
|
|
503
511
|
*/
|
|
504
512
|
DateTimeSelectorComponent.prototype._dateApi;
|
|
505
513
|
}
|
|
506
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NlbGVjdG9yL2NvbXBvbmVudHMvc2VsZWN0b3Ivc2VsZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBcUQsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBYSxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3ZELE9BQU8sRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDMUcsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFFdkcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFOUUsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDeEYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7OztNQU94RSxvQkFBb0IsR0FDMUI7SUFDSSxpQkFBaUIsRUFBRSw4QkFBOEI7SUFDakQsd0JBQXdCLEVBQUUsS0FBSztJQUMvQixjQUFjLEVBQUUsS0FBSztJQUNyQixhQUFhLEVBQUUsS0FBSztJQUNwQix1QkFBdUIsRUFDdkI7UUFDSSxL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Ozs7O0lBTS9ELGtEQUFzQzs7Ozs7SUFLdEMsd0NBQThCOzs7OztJQUs5Qix3Q0FBOEI7Ozs7O0lBTzlCLDJDQUNzQjs7Ozs7SUFpSVYsbURBQWtEOzs7OztJQUNsRCxvREFBNEM7Ozs7O0lBQzVDLDZDQUFvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIEluamVjdCwgT3B0aW9uYWwsIFR5cGUsIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIENoYW5nZURldGVjdG9yUmVmfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtleHRlbmQsIGlzQmxhbmssIGlzU3RyaW5nLCBuYW1lb2Z9IGZyb20gJ0Bqc2NycHQvY29tbW9uJztcclxuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtEYXRlVGltZVZhbHVlfSBmcm9tICcuLi8uLi8uLi9taXNjL2RhdGV0aW1lLmludGVyZmFjZSc7XHJcbmltcG9ydCB7REFURV9BUEksIEZPUk1BVF9QUk9WSURFUn0gZnJvbSAnLi4vLi4vLi4vbWlzYy90b2tlbnMnO1xyXG5pbXBvcnQge0RhdGVUaW1lRGF5UGlja2VyQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9waWNrZXIvY29tcG9uZW50cy9kYXlQaWNrZXIvZGF5UGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGF0ZVRpbWVNb250aFBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vcGlja2VyL2NvbXBvbmVudHMvbW9udGhQaWNrZXIvbW9udGhQaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtEYXRlVGltZVllYXJQaWNrZXJDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL3BpY2tlci9jb21wb25lbnRzL3llYXJQaWNrZXIveWVhclBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0RhdGVBcGksIEZvcm1hdFByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7RGF0ZVZhbHVlUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RhdGVWYWx1ZVByb3ZpZGVyLnNlcnZpY2UnO1xyXG5pbXBvcnQge0RhdGVUaW1lU2VsZWN0b3IsIERhdGVUaW1lU2VsZWN0b3JPcHRpb25zfSBmcm9tICcuLi8uLi9taXNjL2RhdGV0aW1lU2VsZWN0b3IuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtEQVRFX1RJTUVfU0VMRUNUT1JfQ09ORklHVVJBVElPTn0gZnJvbSAnLi4vLi4vbWlzYy90b2tlbnMnO1xyXG5pbXBvcnQge0lucHV0RGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudH0gZnJvbSAnLi4vaW5wdXREYXRlVGltZS9pbnB1dERhdGVUaW1lLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7ZW50ZXJMZWF2ZUFuaW1hdGVDaGlsZFRyaWdnZXJ9IGZyb20gJy4vc2VsZWN0b3IuY29tcG9uZW50LmFuaW1hdGlvbnMnO1xyXG5cclxuLy9UT0RPIC0gYWRkIHN1cHBvcnQgZm9yIGJvZHkgYWJzb2x1dGUgcGlja2VyXHJcblxyXG4vKipcclxuICogRGVmYXVsdCBjb25maWd1cmF0aW9uIGZvciBzZWxlY3RvclxyXG4gKi9cclxuY29uc3QgZGVmYXVsdENvbmZpZ3VyYXRpb246IERhdGVUaW1lU2VsZWN0b3JPcHRpb25zPERhdGVUaW1lU2VsZWN0b3I+ID1cclxue1xyXG4gICAgc2VsZWN0b3JDb21wb25lbnQ6IElucHV0RGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudCxcclxuICAgIHBpY2tlckNsb3NlT25WYWx1ZVNlbGVjdDogZmFsc2UsXHJcbiAgICBwaWNrZXJEaXNhYmxlZDogZmFsc2UsXHJcbiAgICBkZWZhdWx0UGVyaW9kOiAnZGF5JyxcclxuICAgIHBpY2tlclBlcmlvZHNEZWZpbml0aW9uOlxyXG4gICAge1xyXG4gICAgICAgIFwiZGF5XCI6IERhdGVUaW1lRGF5UGlja2VyQ29tcG9uZW50LFxyXG4gICAgICAgIFwibW9udGhcIjogRGF0ZVRpbWVNb250aFBpY2tlckNvbXBvbmVudCxcclxuICAgICAgICBcInllYXJcIjogRGF0ZVRpbWVZZWFyUGlja2VyQ29tcG9uZW50XHJcbiAgICB9LFxyXG4gICAgY3NzQ2xhc3NlczpcclxuICAgIHtcclxuICAgIH1cclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnQgdXNlZCBmb3IgZGlzcGxheWluZyBhbmQgc2VsZWN0aW5nIGRhdGUgdGltZVxyXG4gKi9cclxuQENvbXBvbmVudChcclxue1xyXG4gICAgc2VsZWN0b3I6ICdkYXRlLXRpbWUtc2VsZWN0b3InLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdzZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnc2VsZWN0b3IuY29tcG9uZW50LmNzcyddLFxyXG4gICAgYW5pbWF0aW9uczogW2VudGVyTGVhdmVBbmltYXRlQ2hpbGRUcmlnZ2VyXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50PFREYXRlID0gYW55PiBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzICxPbkRlc3Ryb3lcclxue1xyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHByb3RlY3RlZCBmaWVsZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudCB2YWx1ZSBvZiBkYXRldGltZVxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlOiBEYXRlVGltZVZhbHVlPFREYXRlPnxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHNlbGVjdG9yIGlzIHRvdWNoZWQgYnkgdXNlclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3RvdWNoZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gdmFsdWUgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3ZhbHVlQ2hhbmdlOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRpb24gd2hldGhlciBpcyBjb250cm9sIGRpc2FibGVkXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluc3RhbmNlIG9mIGFjdGl2ZSBkYXRlIHRpbWUgc2VsZWN0b3JcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9hY3RpdmVTZWxlY3Rvcj86IERhdGVUaW1lU2VsZWN0b3I8VERhdGU+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQWxsIHN1YnNjcmlwdGlvbnMgZm9yIGFjdGl2ZSBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2FjdGl2ZVNlbGVjdG9yU3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaXB0aW9uIGZvciBjaGFuZ2VzIG9mIG1pbiB2YWx1ZSBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb258bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpcHRpb24gZm9yIGNoYW5nZXMgb2YgbWF4IHZhbHVlIHNlbGVjdG9yXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfbWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbnxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgb3B0aW9ucyB1c2VkIGJ5IHNlbGVjdG9yXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfb3B0aW9uczogRGF0ZVRpbWVTZWxlY3Rvck9wdGlvbnM8RGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGxhY2Vob2xkZXIgdGhhdCBpcyBkaXNwbGF5ZWQgd2hlbiB0aGVyZSBpcyBubyB2YWx1ZSBzZWxlY3RlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX3BsYWNlaG9sZGVyPzogc3RyaW5nO1xyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgY3VycmVudCB2YWx1ZSBvZiBkYXRldGltZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlKCk6IERhdGVUaW1lVmFsdWU8VERhdGU+fG51bGxcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWU7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IHZhbHVlKHZhbHVlOiBEYXRlVGltZVZhbHVlPFREYXRlPnxudWxsKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsdWU7XHJcblxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVNlbGVjdG9yPy5zZXRWYWx1ZSh0aGlzLl92YWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIGluZGljYXRpb24gd2hldGhlciBpcyBjdXJyZW50IHZhbHVlIHZhbGlkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsaWQoKTogYm9vbGVhblxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVTZWxlY3Rvcj8udmFsaWQgPz8gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBmb3JtYXR0ZWQgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCBmb3JtYXR0ZWRWYWx1ZSgpOiBzdHJpbmd8bnVsbFxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9hY3RpdmVTZWxlY3Rvcj8uZm9ybWF0dGVkVmFsdWUgPz8gbnVsbDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgZm9ybWF0dGVkVmFsdWUodmFsdWU6IHN0cmluZ3xudWxsKVxyXG4gICAge1xyXG4gICAgICAgIGlmKHZhbHVlKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IHZhbCA9IHRoaXMuX2RhdGVBcGkuZ2V0VmFsdWUodmFsdWUsIHRoaXMuZm9ybWF0KTtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX3ZhbHVlUHJvdmlkZXIuZ2V0VmFsdWUodmFsLnZhbHVlLCB0aGlzLmZvcm1hdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHNlbGVjdG9yIGlzIHRvdWNoZWQgYnkgdXNlclxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHRvdWNoZWQoKTogT2JzZXJ2YWJsZTx2b2lkPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl90b3VjaGVkLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gdmFsdWUgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbHVlQ2hhbmdlKCk6IE9ic2VydmFibGU8dm9pZD5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmFsdWVDaGFuZ2UuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBwcm9wZXJ0aWVzIC0gdGVtcGxhdGUgYmluZGluZ3MgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudGx5IGFjdGl2ZSBkYXRlIHRpbWUgc2VsZWN0b3IgY29tcG9uZW50IHR5cGVcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWN0aXZlU2VsZWN0b3JDb21wb25lbnQ/OiBUeXBlPERhdGVUaW1lU2VsZWN0b3I8VERhdGU+PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRpb24gd2hldGhlciBpcyBwaWNrZXIgdmlzaWJsZSBvciBub3RcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcGlja2VyVmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIG1pbmltYWwgcG9zc2libGUgdmFsdWUgZm9yIHBpY2tlciwgdGhhdCBjYW4gYmUgcGlja2VkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtaW46IFREYXRlfG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIG1heGltYWwgcG9zc2libGUgdmFsdWUgZm9yIHBpY2tlciwgdGhhdCBjYW4gYmUgcGlja2VkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBtYXg6IFREYXRlfG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIGlucHV0cyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBGb3JtYXQgb2YgZGlzcGxheWVkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZm9ybWF0OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgcGxhY2Vob2xkZXIgdGhhdCBpcyBkaXNwbGF5ZWQgd2hlbiB0aGVyZSBpcyBubyB2YWx1ZSBzZWxlY3RlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBwbGFjZWhvbGRlcigpOiBzdHJpbmd8dW5kZWZpbmVkXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BsYWNlaG9sZGVyO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBwbGFjZWhvbGRlcih2YWx1ZTogc3RyaW5nfHVuZGVmaW5lZClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9wbGFjZWhvbGRlciA9IHZhbHVlO1xyXG5cclxuICAgICAgICBpZih0aGlzLl9hY3RpdmVTZWxlY3RvcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVNlbGVjdG9yLnBsYWNlaG9sZGVyID0gdGhpcy5fcGxhY2Vob2xkZXI7XHJcblxyXG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvci5pbnZhbGlkYXRlVmlzdWFscygpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgb3B0aW9ucyB1c2VkIGJ5IHNlbGVjdG9yXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IG9wdGlvbnMoKTogRGF0ZVRpbWVTZWxlY3Rvck9wdGlvbnM8RGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT4+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IG9wdGlvbnModmFsdWU6IERhdGVUaW1lU2VsZWN0b3JPcHRpb25zPERhdGVUaW1lU2VsZWN0b3I8VERhdGU+PilcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vcHRpb25zID0gZXh0ZW5kKHRydWUsIHRoaXMuX29wdGlvbnMsIHZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtaW5pbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBURGF0ZXxzdHJpbmd8bnVsbHxEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50PFREYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1pbjtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgbWluVmFsdWUodmFsdWU6IFREYXRlfHN0cmluZ3xudWxsfERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYoaXNCbGFuayh2YWx1ZSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoaXNTdHJpbmcodmFsdWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IGRhdGUgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIGlmKGRhdGUuaXNWYWxpZCgpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1pbiA9IGRhdGUudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IHZhbHVlLnZhbHVlT2YoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdmFsdWUudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWluID0gdmFsdWUudmFsdWVPZigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1pblZhbHVlKHRoaXMubWluKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1pblZhbHVlKHRoaXMubWluKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBURGF0ZXxzdHJpbmd8bnVsbHxEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50PFREYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1heDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgbWF4VmFsdWUodmFsdWU6IFREYXRlfHN0cmluZ3xudWxsfERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYoaXNCbGFuayh2YWx1ZSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoaXNTdHJpbmcodmFsdWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IGRhdGUgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIGlmKGRhdGUuaXNWYWxpZCgpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1heCA9IGRhdGUudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heCA9IHZhbHVlLnZhbHVlT2YoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdmFsdWUudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWF4ID0gdmFsdWUudmFsdWVPZigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1heFZhbHVlKHRoaXMubWF4KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heCA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1heFZhbHVlKHRoaXMubWF4KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgY29uc3RydWN0b3IgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChEQVRFX1RJTUVfU0VMRUNUT1JfQ09ORklHVVJBVElPTikgY29uZmlndXJhdGlvbjogRGF0ZVRpbWVTZWxlY3Rvck9wdGlvbnM8RGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT4+LFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF92YWx1ZVByb3ZpZGVyOiBEYXRlVmFsdWVQcm92aWRlcjxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoREFURV9BUEkpIHByb3RlY3RlZCBfZGF0ZUFwaTogRGF0ZUFwaTxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KEZPUk1BVF9QUk9WSURFUikgZm9ybWF0UHJvdmlkZXI6IEZvcm1hdFByb3ZpZGVyKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ID0gZm9ybWF0UHJvdmlkZXIuZGF0ZTtcclxuICAgICAgICB0aGlzLl9vcHRpb25zID0gZXh0ZW5kKHRydWUsIHt9LCBkZWZhdWx0Q29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25Jbml0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgY29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVTZWxlY3RvckNvbXBvbmVudCA9IHRoaXMuX29wdGlvbnMuc2VsZWN0b3JDb21wb25lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25DaGFuZ2VzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCB3aGVuIGlucHV0IHZhbHVlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgaWYobmFtZW9mPERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ+KCdmb3JtYXQnKSBpbiBjaGFuZ2VzICYmIHRoaXMuX2FjdGl2ZVNlbGVjdG9yKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IuZm9ybWF0ID0gdGhpcy5mb3JtYXQ7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVNlbGVjdG9yLmludmFsaWRhdGVWaXN1YWxzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIGltcGxlbWVudGF0aW9uIG9mIE9uRGVzdHJveSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgd2hlbiBjb21wb25lbnQgaXMgZGVzdHJveWVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fbWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fbWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgY3JlYXRlZCBvciBkZXN0cm95ZWQgZGF0ZSB0aW1lIHNlbGVjdG9yIGluc3RhbmNlXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0b3IgLSBJbnN0YW5jZSBvZiBzZWxlY3RvciBvciBudWxsXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlbGVjdG9yQ3JlYXRlZChzZWxlY3RvcjogRGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT4pXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IgPSBzZWxlY3RvcjtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3RvclN1YnNjcmlwdGlvbnMuYWRkKHNlbGVjdG9yLnRvdWNoZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3RvdWNoZWQubmV4dCgpKSk7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLmFkZChzZWxlY3Rvci5waWNrZXJSZXF1ZXN0LnN1YnNjcmliZSh2aXNpYmxlID0+IHRoaXMucGlja2VyVmlzaWJsZSA9IHZpc2libGUpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLmFkZChzZWxlY3Rvci52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gc2VsZWN0b3IudmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLm5leHQoKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHNlbGVjdG9yLmZvcm1hdCA9IHRoaXMuZm9ybWF0O1xyXG4gICAgICAgIHNlbGVjdG9yLnNldE1heFZhbHVlKHRoaXMubWF4KTtcclxuICAgICAgICBzZWxlY3Rvci5zZXRNaW5WYWx1ZSh0aGlzLm1pbik7XHJcbiAgICAgICAgc2VsZWN0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgIHNlbGVjdG9yLnNldERpc2FibGVkKHRoaXMuX2Rpc2FibGVkKTtcclxuICAgICAgICBzZWxlY3Rvci5wbGFjZWhvbGRlciA9IHRoaXMuX3BsYWNlaG9sZGVyO1xyXG5cclxuICAgICAgICBzZWxlY3Rvci5pbnZhbGlkYXRlVmlzdWFscygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBjaGFuZ2VkIHZhbHVlIGJ5IHBpY2tlclxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdGhhdCB3YXMgY2hhbmdlZFxyXG4gICAgICogQGludGVucmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwaWNrZXJDaGFuZ2VkVmFsdWUodmFsdWU6IERhdGVUaW1lVmFsdWU8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVNlbGVjdG9yPy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZS5uZXh0KCk7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX29wdGlvbnMucGlja2VyQ2xvc2VPblZhbHVlU2VsZWN0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGFzICdjb250cm9sJyBkaXNhYmxlZFxyXG4gICAgICogQHBhcmFtIGRpc2FibGVkIC0gSW5kaWNhdGlvbiB3aGV0aGVyIHNldHMgdmFsdWUgYXMgZGlzYWJsZWQsIGlmIG9taXR0ZWQgaXQgaXMgc2FtZSBhcyBkaXNhYmxlZCBzZXQgdG8gdHJ1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZFxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQ7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldERpc2FibGVkKGRpc2FibGVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgc2ltcGxlIHZhbHVlIG9mIHNlbGVjdG9yXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWx1ZU9mKCk6IFREYXRlfG51bGxcclxuICAgIHtcclxuICAgICAgICBpZighdGhpcy5fdmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZS5mcm9tO1xyXG4gICAgfVxyXG59Il19
|
|
514
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NlbGVjdG9yL2NvbXBvbmVudHMvc2VsZWN0b3Ivc2VsZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBcUQsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBYSxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3ZELE9BQU8sRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDMUcsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFFdkcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFOUUsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDeEYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7OztNQU94RSxvQkFBb0IsR0FDMUI7SUFDSSxpQkFBaUIsRUFBRSw4QkFBOEI7SUFDakQsd0JBQXdCLEVBQUUsS0FBSztJQUMvQixjQUFjLEVBQUUsS0FBSztJQUNyQixhQUFhLEVBQUUsS0FBSztJQUNwQix1QkFBdUIsRUFDdkI7UUFDSSxL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Ozs7cUJBMUlsQyxLQUFLOzBCQU1MLEtBQUs7c0JBb0JMLEtBQUs7dUJBa0JMLEtBQUs7dUJBOENMLEtBQUs7Ozs7Ozs7O0lBbE9OLDJDQUFtRDs7Ozs7O0lBS25ELDZDQUF3RDs7Ozs7O0lBS3hELGlEQUE0RDs7Ozs7O0lBSzVELDhDQUFxQzs7Ozs7O0lBS3JDLG9EQUFvRDs7Ozs7O0lBS3BELGlFQUEwRTs7Ozs7O0lBSzFFLGdFQUFnRTs7Ozs7O0lBS2hFLGdFQUFnRTs7Ozs7O0lBS2hFLDZDQUFxRTs7Ozs7O0lBS3JFLGlEQUFnQzs7Ozs7O0lBb0VoQyw0REFBK0Q7Ozs7OztJQU0vRCxrREFBc0M7Ozs7O0lBS3RDLHdDQUE4Qjs7Ozs7SUFLOUIsd0NBQThCOzs7OztJQU85QiwyQ0FDc0I7Ozs7O0lBc0lWLG1EQUFrRDs7Ozs7SUFDbEQsb0RBQTRDOzs7OztJQUM1Qyw2Q0FBb0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBJbmplY3QsIE9wdGlvbmFsLCBUeXBlLCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBDaGFuZ2VEZXRlY3RvclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7ZXh0ZW5kLCBpc0JsYW5rLCBpc1N0cmluZywgbmFtZW9mfSBmcm9tICdAanNjcnB0L2NvbW1vbic7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7RGF0ZVRpbWVWYWx1ZX0gZnJvbSAnLi4vLi4vLi4vbWlzYy9kYXRldGltZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0RBVEVfQVBJLCBGT1JNQVRfUFJPVklERVJ9IGZyb20gJy4uLy4uLy4uL21pc2MvdG9rZW5zJztcclxuaW1wb3J0IHtEYXRlVGltZURheVBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vcGlja2VyL2NvbXBvbmVudHMvZGF5UGlja2VyL2RheVBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0RhdGVUaW1lTW9udGhQaWNrZXJDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL3BpY2tlci9jb21wb25lbnRzL21vbnRoUGlja2VyL21vbnRoUGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGF0ZVRpbWVZZWFyUGlja2VyQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9waWNrZXIvY29tcG9uZW50cy95ZWFyUGlja2VyL3llYXJQaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtEYXRlQXBpLCBGb3JtYXRQcm92aWRlcn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge0RhdGVWYWx1ZVByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kYXRlVmFsdWVQcm92aWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtEYXRlVGltZVNlbGVjdG9yLCBEYXRlVGltZVNlbGVjdG9yT3B0aW9uc30gZnJvbSAnLi4vLi4vbWlzYy9kYXRldGltZVNlbGVjdG9yLmludGVyZmFjZSc7XHJcbmltcG9ydCB7REFURV9USU1FX1NFTEVDVE9SX0NPTkZJR1VSQVRJT059IGZyb20gJy4uLy4uL21pc2MvdG9rZW5zJztcclxuaW1wb3J0IHtJbnB1dERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnR9IGZyb20gJy4uL2lucHV0RGF0ZVRpbWUvaW5wdXREYXRlVGltZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge2VudGVyTGVhdmVBbmltYXRlQ2hpbGRUcmlnZ2VyfSBmcm9tICcuL3NlbGVjdG9yLmNvbXBvbmVudC5hbmltYXRpb25zJztcclxuXHJcbi8vVE9ETyAtIGFkZCBzdXBwb3J0IGZvciBib2R5IGFic29sdXRlIHBpY2tlclxyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBmb3Igc2VsZWN0b3JcclxuICovXHJcbmNvbnN0IGRlZmF1bHRDb25maWd1cmF0aW9uOiBEYXRlVGltZVNlbGVjdG9yT3B0aW9uczxEYXRlVGltZVNlbGVjdG9yPiA9XHJcbntcclxuICAgIHNlbGVjdG9yQ29tcG9uZW50OiBJbnB1dERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQsXHJcbiAgICBwaWNrZXJDbG9zZU9uVmFsdWVTZWxlY3Q6IGZhbHNlLFxyXG4gICAgcGlja2VyRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgZGVmYXVsdFBlcmlvZDogJ2RheScsXHJcbiAgICBwaWNrZXJQZXJpb2RzRGVmaW5pdGlvbjpcclxuICAgIHtcclxuICAgICAgICBcImRheVwiOiBEYXRlVGltZURheVBpY2tlckNvbXBvbmVudCxcclxuICAgICAgICBcIm1vbnRoXCI6IERhdGVUaW1lTW9udGhQaWNrZXJDb21wb25lbnQsXHJcbiAgICAgICAgXCJ5ZWFyXCI6IERhdGVUaW1lWWVhclBpY2tlckNvbXBvbmVudFxyXG4gICAgfSxcclxuICAgIGNzc0NsYXNzZXM6XHJcbiAgICB7XHJcbiAgICB9XHJcbn07XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50IHVzZWQgZm9yIGRpc3BsYXlpbmcgYW5kIHNlbGVjdGluZyBkYXRlIHRpbWVcclxuICovXHJcbkBDb21wb25lbnQoXHJcbntcclxuICAgIHNlbGVjdG9yOiAnZGF0ZS10aW1lLXNlbGVjdG9yJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJ3NlbGVjdG9yLmNvbXBvbmVudC5jc3MnXSxcclxuICAgIGFuaW1hdGlvbnM6IFtlbnRlckxlYXZlQW5pbWF0ZUNoaWxkVHJpZ2dlcl0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudDxURGF0ZSA9IGFueT4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyAsT25EZXN0cm95XHJcbntcclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwcm90ZWN0ZWQgZmllbGRzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgdmFsdWUgb2YgZGF0ZXRpbWVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogRGF0ZVRpbWVWYWx1ZTxURGF0ZT58bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiBzZWxlY3RvciBpcyB0b3VjaGVkIGJ5IHVzZXJcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF90b3VjaGVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHZhbHVlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZUNoYW5nZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0aW9uIHdoZXRoZXIgaXMgY29udHJvbCBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnN0YW5jZSBvZiBhY3RpdmUgZGF0ZSB0aW1lIHNlbGVjdG9yXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfYWN0aXZlU2VsZWN0b3I/OiBEYXRlVGltZVNlbGVjdG9yPFREYXRlPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFsbCBzdWJzY3JpcHRpb25zIGZvciBhY3RpdmUgc2VsZWN0b3JcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9hY3RpdmVTZWxlY3RvclN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3IgY2hhbmdlcyBvZiBtaW4gdmFsdWUgc2VsZWN0b3JcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9taW5WYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9ufG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaXB0aW9uIGZvciBjaGFuZ2VzIG9mIG1heCB2YWx1ZSBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb258bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IG9wdGlvbnMgdXNlZCBieSBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX29wdGlvbnM6IERhdGVUaW1lU2VsZWN0b3JPcHRpb25zPERhdGVUaW1lU2VsZWN0b3I8VERhdGU+PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBsYWNlaG9sZGVyIHRoYXQgaXMgZGlzcGxheWVkIHdoZW4gdGhlcmUgaXMgbm8gdmFsdWUgc2VsZWN0ZWRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9wbGFjZWhvbGRlcj86IHN0cmluZztcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIGN1cnJlbnQgdmFsdWUgb2YgZGF0ZXRpbWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBEYXRlVGltZVZhbHVlPFREYXRlPnxudWxsXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogRGF0ZVRpbWVWYWx1ZTxURGF0ZT58bnVsbClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvcj8uc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBpbmRpY2F0aW9uIHdoZXRoZXIgaXMgY3VycmVudCB2YWx1ZSB2YWxpZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbGlkKCk6IGJvb2xlYW5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnZhbGlkID8/IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgZm9ybWF0dGVkIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nfG51bGxcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlU2VsZWN0b3I/LmZvcm1hdHRlZFZhbHVlID8/IG51bGw7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IGZvcm1hdHRlZFZhbHVlKHZhbHVlOiBzdHJpbmd8bnVsbClcclxuICAgIHtcclxuICAgICAgICBpZih2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxldCB2YWwgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlLCB0aGlzLmZvcm1hdCk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLl92YWx1ZVByb3ZpZGVyLmdldFZhbHVlKHZhbC52YWx1ZSwgdGhpcy5mb3JtYXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiBzZWxlY3RvciBpcyB0b3VjaGVkIGJ5IHVzZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0b3VjaGVkKCk6IE9ic2VydmFibGU8dm9pZD5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdG91Y2hlZC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHZhbHVlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPHZvaWQ+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnRseSBhY3RpdmUgZGF0ZSB0aW1lIHNlbGVjdG9yIGNvbXBvbmVudCB0eXBlXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjdGl2ZVNlbGVjdG9yQ29tcG9uZW50PzogVHlwZTxEYXRlVGltZVNlbGVjdG9yPFREYXRlPj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0aW9uIHdoZXRoZXIgaXMgcGlja2VyIHZpc2libGUgb3Igbm90XHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBpY2tlclZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtaW5pbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWluOiBURGF0ZXxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWF4OiBURGF0ZXxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSBpbnB1dHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0IG9mIGRpc3BsYXllZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZvcm1hdDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHBsYWNlaG9sZGVyIHRoYXQgaXMgZGlzcGxheWVkIHdoZW4gdGhlcmUgaXMgbm8gdmFsdWUgc2VsZWN0ZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nfHVuZGVmaW5lZFxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZ3x1bmRlZmluZWQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5fYWN0aXZlU2VsZWN0b3IpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvci5wbGFjZWhvbGRlciA9IHRoaXMuX3BsYWNlaG9sZGVyO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IuaW52YWxpZGF0ZVZpc3VhbHMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IG9wdGlvbnMgdXNlZCBieSBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBvcHRpb25zKCk6IERhdGVUaW1lU2VsZWN0b3JPcHRpb25zPERhdGVUaW1lU2VsZWN0b3I8VERhdGU+PlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBvcHRpb25zKHZhbHVlOiBEYXRlVGltZVNlbGVjdG9yT3B0aW9uczxEYXRlVGltZVNlbGVjdG9yPFREYXRlPj4pXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IGV4dGVuZCh0cnVlLCB0aGlzLl9vcHRpb25zLCB2YWx1ZSk7XHJcbiAgICAgICAgLy8gd2l0aG91dCBkZWVwLWNvcHkgZm9yIHRoaXMgYXR0cmlidXRlXHJcbiAgICAgICAgaWYgKHZhbHVlPy5waWNrZXJQZXJpb2RzRGVmaW5pdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnMucGlja2VyUGVyaW9kc0RlZmluaXRpb24gPSB2YWx1ZS5waWNrZXJQZXJpb2RzRGVmaW5pdGlvblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtaW5pbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBURGF0ZXxzdHJpbmd8bnVsbHxEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50PFREYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1pbjtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgbWluVmFsdWUodmFsdWU6IFREYXRlfHN0cmluZ3xudWxsfERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYoaXNCbGFuayh2YWx1ZSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoaXNTdHJpbmcodmFsdWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IGRhdGUgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIGlmKGRhdGUuaXNWYWxpZCgpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1pbiA9IGRhdGUudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IHZhbHVlLnZhbHVlT2YoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdmFsdWUudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWluID0gdmFsdWUudmFsdWVPZigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1pblZhbHVlKHRoaXMubWluKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1pblZhbHVlKHRoaXMubWluKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBURGF0ZXxzdHJpbmd8bnVsbHxEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50PFREYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1heDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgbWF4VmFsdWUodmFsdWU6IFREYXRlfHN0cmluZ3xudWxsfERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYoaXNCbGFuayh2YWx1ZSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoaXNTdHJpbmcodmFsdWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IGRhdGUgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIGlmKGRhdGUuaXNWYWxpZCgpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1heCA9IGRhdGUudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heCA9IHZhbHVlLnZhbHVlT2YoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdmFsdWUudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWF4ID0gdmFsdWUudmFsdWVPZigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1heFZhbHVlKHRoaXMubWF4KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heCA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1heFZhbHVlKHRoaXMubWF4KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgY29uc3RydWN0b3IgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChEQVRFX1RJTUVfU0VMRUNUT1JfQ09ORklHVVJBVElPTikgY29uZmlndXJhdGlvbjogRGF0ZVRpbWVTZWxlY3Rvck9wdGlvbnM8RGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT4+LFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF92YWx1ZVByb3ZpZGVyOiBEYXRlVmFsdWVQcm92aWRlcjxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoREFURV9BUEkpIHByb3RlY3RlZCBfZGF0ZUFwaTogRGF0ZUFwaTxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KEZPUk1BVF9QUk9WSURFUikgZm9ybWF0UHJvdmlkZXI6IEZvcm1hdFByb3ZpZGVyKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ID0gZm9ybWF0UHJvdmlkZXIuZGF0ZTtcclxuICAgICAgICB0aGlzLl9vcHRpb25zID0gZXh0ZW5kKHRydWUsIHt9LCBkZWZhdWx0Q29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbik7XHJcbiAgICAgICAgLy8gd2l0aG91dCBkZWVwLWNvcHkgZm9yIHRoaXMgYXR0cmlidXRlXHJcbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24/LnBpY2tlclBlcmlvZHNEZWZpbml0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5waWNrZXJQZXJpb2RzRGVmaW5pdGlvbiA9IGNvbmZpZ3VyYXRpb24ucGlja2VyUGVyaW9kc0RlZmluaXRpb25cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25Jbml0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgY29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVTZWxlY3RvckNvbXBvbmVudCA9IHRoaXMuX29wdGlvbnMuc2VsZWN0b3JDb21wb25lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25DaGFuZ2VzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCB3aGVuIGlucHV0IHZhbHVlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgaWYobmFtZW9mPERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ+KCdmb3JtYXQnKSBpbiBjaGFuZ2VzICYmIHRoaXMuX2FjdGl2ZVNlbGVjdG9yKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IuZm9ybWF0ID0gdGhpcy5mb3JtYXQ7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVNlbGVjdG9yLmludmFsaWRhdGVWaXN1YWxzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIGltcGxlbWVudGF0aW9uIG9mIE9uRGVzdHJveSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgd2hlbiBjb21wb25lbnQgaXMgZGVzdHJveWVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fbWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fbWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgY3JlYXRlZCBvciBkZXN0cm95ZWQgZGF0ZSB0aW1lIHNlbGVjdG9yIGluc3RhbmNlXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0b3IgLSBJbnN0YW5jZSBvZiBzZWxlY3RvciBvciBudWxsXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlbGVjdG9yQ3JlYXRlZChzZWxlY3RvcjogRGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT4pXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IgPSBzZWxlY3RvcjtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3RvclN1YnNjcmlwdGlvbnMuYWRkKHNlbGVjdG9yLnRvdWNoZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3RvdWNoZWQubmV4dCgpKSk7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLmFkZChzZWxlY3Rvci5waWNrZXJSZXF1ZXN0LnN1YnNjcmliZSh2aXNpYmxlID0+IHRoaXMucGlja2VyVmlzaWJsZSA9IHZpc2libGUpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLmFkZChzZWxlY3Rvci52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gc2VsZWN0b3IudmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLm5leHQoKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHNlbGVjdG9yLmZvcm1hdCA9IHRoaXMuZm9ybWF0O1xyXG4gICAgICAgIHNlbGVjdG9yLnNldE1heFZhbHVlKHRoaXMubWF4KTtcclxuICAgICAgICBzZWxlY3Rvci5zZXRNaW5WYWx1ZSh0aGlzLm1pbik7XHJcbiAgICAgICAgc2VsZWN0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgIHNlbGVjdG9yLnNldERpc2FibGVkKHRoaXMuX2Rpc2FibGVkKTtcclxuICAgICAgICBzZWxlY3Rvci5wbGFjZWhvbGRlciA9IHRoaXMuX3BsYWNlaG9sZGVyO1xyXG5cclxuICAgICAgICBzZWxlY3Rvci5pbnZhbGlkYXRlVmlzdWFscygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBjaGFuZ2VkIHZhbHVlIGJ5IHBpY2tlclxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdGhhdCB3YXMgY2hhbmdlZFxyXG4gICAgICogQGludGVucmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwaWNrZXJDaGFuZ2VkVmFsdWUodmFsdWU6IERhdGVUaW1lVmFsdWU8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVNlbGVjdG9yPy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZS5uZXh0KCk7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX29wdGlvbnMucGlja2VyQ2xvc2VPblZhbHVlU2VsZWN0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGFzICdjb250cm9sJyBkaXNhYmxlZFxyXG4gICAgICogQHBhcmFtIGRpc2FibGVkIC0gSW5kaWNhdGlvbiB3aGV0aGVyIHNldHMgdmFsdWUgYXMgZGlzYWJsZWQsIGlmIG9taXR0ZWQgaXQgaXMgc2FtZSBhcyBkaXNhYmxlZCBzZXQgdG8gdHJ1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZFxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQ7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldERpc2FibGVkKGRpc2FibGVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgc2ltcGxlIHZhbHVlIG9mIHNlbGVjdG9yXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWx1ZU9mKCk6IFREYXRlfG51bGxcclxuICAgIHtcclxuICAgICAgICBpZighdGhpcy5fdmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZS5mcm9tO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -66,6 +66,10 @@ var DateTimePickerComponent = /** @class */ (function () {
|
|
|
66
66
|
*/
|
|
67
67
|
this.valueChange = new EventEmitter();
|
|
68
68
|
this._options = extend(true, {}, defaultConfiguration, configuration);
|
|
69
|
+
// without deep-copy for this attribute
|
|
70
|
+
if (configuration === null || configuration === void 0 ? void 0 : configuration.pickerPeriodsDefinition) {
|
|
71
|
+
this._options.pickerPeriodsDefinition = configuration.pickerPeriodsDefinition;
|
|
72
|
+
}
|
|
69
73
|
}
|
|
70
74
|
Object.defineProperty(DateTimePickerComponent.prototype, "options", {
|
|
71
75
|
//######################### public properties - inputs #########################
|
|
@@ -87,6 +91,10 @@ var DateTimePickerComponent = /** @class */ (function () {
|
|
|
87
91
|
*/
|
|
88
92
|
function (value) {
|
|
89
93
|
this._options = extend(true, this._options, value);
|
|
94
|
+
// without deep-copy for this attribute
|
|
95
|
+
if (value === null || value === void 0 ? void 0 : value.pickerPeriodsDefinition) {
|
|
96
|
+
this._options.pickerPeriodsDefinition = value.pickerPeriodsDefinition;
|
|
97
|
+
}
|
|
90
98
|
},
|
|
91
99
|
enumerable: false,
|
|
92
100
|
configurable: true
|
|
@@ -177,12 +185,48 @@ var DateTimePickerComponent = /** @class */ (function () {
|
|
|
177
185
|
* @return {?}
|
|
178
186
|
*/
|
|
179
187
|
function () {
|
|
180
|
-
|
|
188
|
+
var _this = this;
|
|
189
|
+
if (this._options.pickerPeriodsOrder) {
|
|
190
|
+
if (Array.isArray(this._options.pickerPeriodsOrder)) {
|
|
191
|
+
this._pickerNames = this._options.pickerPeriodsOrder;
|
|
192
|
+
}
|
|
193
|
+
else {
|
|
194
|
+
this._pickerNames = this._options.pickerPeriodsOrder.split(',')
|
|
195
|
+
.map((/**
|
|
196
|
+
* @param {?} x
|
|
197
|
+
* @return {?}
|
|
198
|
+
*/
|
|
199
|
+
function (x) { return x.trim(); }))
|
|
200
|
+
.filter((/**
|
|
201
|
+
* @param {?} x
|
|
202
|
+
* @return {?}
|
|
203
|
+
*/
|
|
204
|
+
function (x) { return x; }));
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
if (this._pickerNames && this._pickerNames.length > 0) {
|
|
208
|
+
this._pickerNames.forEach((/**
|
|
209
|
+
* @param {?} x
|
|
210
|
+
* @return {?}
|
|
211
|
+
*/
|
|
212
|
+
function (x) {
|
|
213
|
+
if (!(/** @type {?} */ (_this._options.pickerPeriodsDefinition))[(/** @type {?} */ (x))]) {
|
|
214
|
+
throw new Error("There is no period '" + x + "' in picker options");
|
|
215
|
+
}
|
|
216
|
+
}));
|
|
217
|
+
}
|
|
218
|
+
else {
|
|
219
|
+
this._pickerNames = Object.keys((/** @type {?} */ (this._options.pickerPeriodsDefinition)));
|
|
220
|
+
}
|
|
221
|
+
if (this._pickerNames.findIndex((/**
|
|
222
|
+
* @param {?} x
|
|
223
|
+
* @return {?}
|
|
224
|
+
*/
|
|
225
|
+
function (x) { return x == _this._options.defaultPeriod; })) < 0) {
|
|
181
226
|
throw new Error("There is no period '" + this._options.defaultPeriod + "' in picker options");
|
|
182
227
|
}
|
|
183
228
|
this.activePickerComponent = (/** @type {?} */ (this._options.pickerPeriodsDefinition))[(/** @type {?} */ (this._options.defaultPeriod))];
|
|
184
229
|
this._activePickerName = (/** @type {?} */ (this._options.defaultPeriod));
|
|
185
|
-
this._pickerNames = Object.keys((/** @type {?} */ (this._options.pickerPeriodsDefinition)));
|
|
186
230
|
this.activePickerIndex = this._pickerNames.indexOf(this._activePickerName);
|
|
187
231
|
};
|
|
188
232
|
//######################### public methods - implementation of OnDestroy #########################
|
|
@@ -299,7 +343,7 @@ var DateTimePickerComponent = /** @class */ (function () {
|
|
|
299
343
|
if (!this._activePicker) {
|
|
300
344
|
return;
|
|
301
345
|
}
|
|
302
|
-
//sets shared css
|
|
346
|
+
//sets shared css
|
|
303
347
|
this._activePicker.setCssClasses((_c = (_b = (_a = this._options) === null || _a === void 0 ? void 0 : _a.cssClasses) === null || _b === void 0 ? void 0 : _b.pickerShared) !== null && _c !== void 0 ? _c : {});
|
|
304
348
|
if (((_e = (_d = this._options) === null || _d === void 0 ? void 0 : _d.cssClasses) === null || _e === void 0 ? void 0 : _e.pickerCustom) && ((_g = (_f = this._options) === null || _f === void 0 ? void 0 : _f.cssClasses) === null || _g === void 0 ? void 0 : _g.pickerCustom[this._activePickerName])) {
|
|
305
349
|
this._activePicker.setCssClasses((_j = (_h = this._options) === null || _h === void 0 ? void 0 : _h.cssClasses) === null || _j === void 0 ? void 0 : _j.pickerCustom[this._activePickerName]);
|
|
@@ -413,4 +457,4 @@ if (false) {
|
|
|
413
457
|
*/
|
|
414
458
|
DateTimePickerComponent.prototype._changeDetector;
|
|
415
459
|
}
|
|
416
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9waWNrZXIvY29tcG9uZW50cy9waWNrZXIvcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWdCLFlBQVksRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDNUosT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHbEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzlDLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7SUFPM0Qsb0JBQW9CLEdBQzFCO0lBQ0ksYUFBYSxFQUFFLEtBQUs7SUFDcEIsdUJBQXVCLEVBQ3ZCO1FBQ0ksS0FBSyxFQUFFLDBCQUEwQjtRQUNqQyxPQUFPLEVBQUUsNEJBQTRCO1FBQ3JDLE1BQU0sRUFBRSwyQkFBMkI7S0FDdEM7SUFDRCxVQUFVLEVBQ1YsRUFDQztDQUNKOzs7OztBQUtEO0lBMElJLGlFQUFpRTtJQUNqRSxpQ0FBZ0UsYUFBMkQsRUFDbkYsUUFBd0IsRUFDMUMsZUFBa0M7UUFEaEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDMUMsb0JBQWUs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O1lBQ0ksSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLGFBQUMsSUFBSSxDQUFDLFFBQVEsMENBQUUsVUFBVSwwQ0FBRSxZQUFZLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7U0FDckc7SUFDTCxDQUFDOztnQkE5UEosU0FBUyxTQUNWO29CQUNJLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLDBNQUFvQzs7b0JBRXBDLFVBQVUsRUFBRSxDQUFDLGtCQUFrQixDQUFDO29CQUNoQyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtpQkFDbEQ7Ozs7Z0RBb0lnQixRQUFRLFlBQUksTUFBTSxTQUFDLDhCQUE4QjtnREFDakQsTUFBTSxTQUFDLFFBQVE7Z0JBaEx5RSxpQkFBaUI7OzswQkFnSHJILEtBQUs7d0JBYUwsS0FBSzsyQkFnQkwsS0FBSzsyQkFjTCxLQUFLOzhCQWdCTCxNQUFNOztJQXdIWCw4QkFBQztDQUFBLEFBL1BELElBK1BDO1NBdlBZLHVCQUF1Qjs7Ozs7OztJQU9oQyxnREFBZ0Q7Ozs7OztJQUtoRCxvREFBcUM7Ozs7OztJQUtyQywrQ0FBc0M7Ozs7OztJQUt0Qyx5Q0FBbUQ7Ozs7OztJQUtuRCw2REFBd0U7Ozs7OztJQUt4RSwyQ0FBMkI7Ozs7OztJQUszQiw0Q0FBdUM7Ozs7OztJQUt2Qyw0Q0FBdUM7Ozs7OztJQUt2QywyQ0FBaUU7Ozs7OztJQVFqRSx3REFBMkQ7Ozs7OztJQU0zRCxvREFBcUM7Ozs7O0lBa0VyQyw4Q0FDa0c7Ozs7O0lBSXRGLDJDQUFvRDs7Ozs7SUFDcEQsa0RBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPcHRpb25hbCwgSW5qZWN0LCBJbnB1dCwgVHlwZSwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7ZXh0ZW5kfSBmcm9tICdAanNjcnB0L2NvbW1vbic7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7RGF0ZVRpbWVWYWx1ZX0gZnJvbSAnLi4vLi4vLi4vbWlzYy9kYXRldGltZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0RBVEVfQVBJfSBmcm9tICcuLi8uLi8uLi9taXNjL3Rva2Vucyc7XHJcbmltcG9ydCB7RGF0ZUFwaX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge0RhdGVUaW1lUGlja2VyLCBEYXRlVGltZVBpY2tlck9wdGlvbnN9IGZyb20gJy4uLy4uL21pc2MvZGF0ZXRpbWVQaWNrZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtEQVRFX1RJTUVfUElDS0VSX0NPTkZJR1VSQVRJT059IGZyb20gJy4uLy4uL21pc2MvdG9rZW5zJztcclxuaW1wb3J0IHtEYXRlVGltZURheVBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi4vZGF5UGlja2VyL2RheVBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0RhdGVUaW1lTW9udGhQaWNrZXJDb21wb25lbnR9IGZyb20gJy4uL21vbnRoUGlja2VyL21vbnRoUGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGF0ZVRpbWVZZWFyUGlja2VyQ29tcG9uZW50fSBmcm9tICcuLi95ZWFyUGlja2VyL3llYXJQaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtzY2FsZVVwRG93blRyaWdnZXJ9IGZyb20gJy4vcGlja2VyLmNvbXBvbmVudC5hbmltYXRpb25zJztcclxuXHJcbi8vVE9ETyAtIG1lcmdlIG9wdGlvbnNcclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHBpY2tlclxyXG4gKi9cclxuY29uc3QgZGVmYXVsdENvbmZpZ3VyYXRpb246IERhdGVUaW1lUGlja2VyT3B0aW9uczxEYXRlVGltZVBpY2tlcj4gPVxyXG57XHJcbiAgICBkZWZhdWx0UGVyaW9kOiAnZGF5JyxcclxuICAgIHBpY2tlclBlcmlvZHNEZWZpbml0aW9uOlxyXG4gICAge1xyXG4gICAgICAgIFwiZGF5XCI6IERhdGVUaW1lRGF5UGlja2VyQ29tcG9uZW50LFxyXG4gICAgICAgIFwibW9udGhcIjogRGF0ZVRpbWVNb250aFBpY2tlckNvbXBvbmVudCxcclxuICAgICAgICBcInllYXJcIjogRGF0ZVRpbWVZZWFyUGlja2VyQ29tcG9uZW50XHJcbiAgICB9LFxyXG4gICAgY3NzQ2xhc3NlczpcclxuICAgIHtcclxuICAgIH1cclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnQgdXNlZCBmb3IgZGlzcGxheWluZyBkYXRlIHRpbWUgcGlja2VyXHJcbiAqL1xyXG5AQ29tcG9uZW50KFxyXG57XHJcbiAgICBzZWxlY3RvcjogJ2RhdGUtdGltZS1waWNrZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgLy8gc3R5bGVVcmxzOiBbJ3BpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgYW5pbWF0aW9uczogW3NjYWxlVXBEb3duVHJpZ2dlcl0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQ8VERhdGUgPSBhbnk+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHByb3RlY3RlZCBmaWVsZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5zdGFuY2Ugb2YgYWN0aXZlIGRhdGUgdGltZSBwaWNrZXJcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9hY3RpdmVQaWNrZXI/OiBEYXRlVGltZVBpY2tlcjxURGF0ZT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lLCBpZCBvZiBkaXNwbGF5ZWQgcGlja2VyXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfYWN0aXZlUGlja2VyTmFtZSE6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycmF5IG9mIGF2YWlsYWJsZSBwaWNrZXIgbmFtZXNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9waWNrZXJOYW1lczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgc2VsZWN0ZWQgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogRGF0ZVRpbWVWYWx1ZTxURGF0ZT58bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbGwgc3Vic2NyaXB0aW9ucyBmb3IgYWN0aXZlIHBpY2tlclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2FjdGl2ZVBpY2tlclN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdGUgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkIGluIHBpY2tlciwgdXNlZCB3aGVuIG1vdmluZyB1cCBvciBkb3duIGluIHBlcmlvZHNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9kaXNwbGF5PzogVERhdGU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNaW5pbWFsIHBvc3NpYmxlIHZhbHVlIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21pblZhbHVlOiBURGF0ZXxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1heGltYWwgcG9zc2libGUgdmFsdWUgdGhhdCBjYW4gYmUgcGlja2VkXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfbWF4VmFsdWU6IFREYXRlfG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudCBvcHRpb25zIHVzZWQgYnkgcGlja2VyXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfb3B0aW9uczogRGF0ZVRpbWVQaWNrZXJPcHRpb25zPERhdGVUaW1lUGlja2VyPFREYXRlPj47XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBwcm9wZXJ0aWVzIC0gdGVtcGxhdGUgYmluZGluZ3MgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudGx5IGFjdGl2ZSBkYXRlIHRpbWUgcGlja2VyIGNvbXBvbmVudCB0eXBlXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjdGl2ZVBpY2tlckNvbXBvbmVudD86IFR5cGU8RGF0ZVRpbWVQaWNrZXI8VERhdGU+PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFjdGl2ZSBwaWNrZXIgaW5kZXhcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWN0aXZlUGlja2VySW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBwcm9wZXJ0aWVzIC0gaW5wdXRzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgb3B0aW9ucyB1c2VkIGJ5IHBpY2tlclxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBvcHRpb25zKCk6IERhdGVUaW1lUGlja2VyT3B0aW9uczxEYXRlVGltZVBpY2tlcjxURGF0ZT4+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IG9wdGlvbnModmFsdWU6IERhdGVUaW1lUGlja2VyT3B0aW9uczxEYXRlVGltZVBpY2tlcjxURGF0ZT4+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBleHRlbmQodHJ1ZSwgdGhpcy5fb3B0aW9ucywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudCBzZWxlY3RlZCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBEYXRlVGltZVZhbHVlPFREYXRlPnxudWxsXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogRGF0ZVRpbWVWYWx1ZTxURGF0ZT58bnVsbClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXI/LnNldFZhbHVlKHZhbHVlKTtcclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXI/LmludmFsaWRhdGVWaXN1YWxzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgbWluaW1hbCBwb3NzaWJsZSB2YWx1ZSBmb3IgcGlja2VyLCB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgbWluVmFsdWUoKTogVERhdGV8bnVsbFxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9taW5WYWx1ZTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgbWluVmFsdWUodmFsdWU6IFREYXRlfG51bGwpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fbWluVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXI/LnNldE1pblZhbHVlKHRoaXMuX21pblZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBURGF0ZXxudWxsXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBtYXhWYWx1ZSh2YWx1ZTogVERhdGV8bnVsbClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9tYXhWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVBpY2tlcj8uc2V0TWF4VmFsdWUodGhpcy5fbWF4VmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIG91dHB1dHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gdmFsdWUgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGVUaW1lVmFsdWU8VERhdGU+PiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVRpbWVWYWx1ZTxURGF0ZT4+KCk7XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIGNvbnN0cnVjdG9yICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9USU1FX1BJQ0tFUl9DT05GSUdVUkFUSU9OKSBjb25maWd1cmF0aW9uOiBEYXRlVGltZVBpY2tlck9wdGlvbnM8RGF0ZVRpbWVQaWNrZXI8VERhdGU+PixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoREFURV9BUEkpIHByb3RlY3RlZCBfZGF0ZUFwaTogRGF0ZUFwaTxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZilcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vcHRpb25zID0gZXh0ZW5kKHRydWUsIHt9LCBkZWZhdWx0Q29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbik7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25Jbml0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgY29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYoIXRoaXMuX29wdGlvbnMucGlja2VyUGVyaW9kc0RlZmluaXRpb24hW3RoaXMuX29wdGlvbnMuZGVmYXVsdFBlcmlvZCFdKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGVyZSBpcyBubyBwZXJpb2QgJyR7dGhpcy5fb3B0aW9ucy5kZWZhdWx0UGVyaW9kfScgaW4gcGlja2VyIG9wdGlvbnNgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuYWN0aXZlUGlja2VyQ29tcG9uZW50ID0gdGhpcy5fb3B0aW9ucy5waWNrZXJQZXJpb2RzRGVmaW5pdGlvbiFbdGhpcy5fb3B0aW9ucy5kZWZhdWx0UGVyaW9kIV07XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlUGlja2VyTmFtZSA9IHRoaXMuX29wdGlvbnMuZGVmYXVsdFBlcmlvZCE7XHJcbiAgICAgICAgdGhpcy5fcGlja2VyTmFtZXMgPSBPYmplY3Qua2V5cyh0aGlzLl9vcHRpb25zLnBpY2tlclBlcmlvZHNEZWZpbml0aW9uISk7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVQaWNrZXJJbmRleCA9IHRoaXMuX3BpY2tlck5hbWVzLmluZGV4T2YodGhpcy5fYWN0aXZlUGlja2VyTmFtZSk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25EZXN0cm95ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCB3aGVuIGNvbXBvbmVudCBpcyBkZXN0cm95ZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25EZXN0cm95KClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9kaXNwbGF5ID0gdW5kZWZpbmVkO1xyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVBpY2tlclN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSB0ZW1wbGF0ZSBiaW5kaW5ncyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIGNyZWF0ZWQgb3IgZGVzdHJveWVkIGRhdGUgdGltZSBwaWNrZXIgaW5zdGFuY2VcclxuICAgICAqIEBwYXJhbSBwaWNrZXIgLSBJbnN0YW5jZSBvZiBwaWNrZXIgb3IgbnVsbFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwaWNrZXJDcmVhdGVkKHBpY2tlcjogRGF0ZVRpbWVQaWNrZXI8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIGlmKHBpY2tlciA9PSB0aGlzLl9hY3RpdmVQaWNrZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXIgPSBwaWNrZXI7XHJcblxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVBpY2tlclN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXJTdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICAgICAgICBpZighdGhpcy5fYWN0aXZlUGlja2VyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlUGlja2VyU3Vic2NyaXB0aW9ucy5hZGQocGlja2VyLnZhbHVlQ2hhbmdlLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBwaWNrZXIudmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZSEpO1xyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlUGlja2VyU3Vic2NyaXB0aW9ucy5hZGQocGlja2VyLnNjYWxlVXAuc3Vic2NyaWJlKGRpc3BsYXkgPT5cclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXkgPSBkaXNwbGF5O1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLl9waWNrZXJOYW1lcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVBpY2tlck5hbWUpICsgMTtcclxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlUGlja2VyTmFtZSA9IHRoaXMuX3BpY2tlck5hbWVzW2luZGV4XTtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVQaWNrZXJJbmRleCA9IHRoaXMuX3BpY2tlck5hbWVzLmluZGV4T2YodGhpcy5fYWN0aXZlUGlja2VyTmFtZSk7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlUGlja2VyQ29tcG9uZW50ID0gdGhpcy5fb3B0aW9ucy5waWNrZXJQZXJpb2RzRGVmaW5pdGlvbiFbdGhpcy5fYWN0aXZlUGlja2VyTmFtZV07XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXJTdWJzY3JpcHRpb25zLmFkZChwaWNrZXIuc2NhbGVEb3duLnN1YnNjcmliZShkaXNwbGF5ID0+XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9kaXNwbGF5ID0gZGlzcGxheTtcclxuICAgICAgICAgICAgbGV0IGluZGV4ID0gdGhpcy5fcGlja2VyTmFtZXMuaW5kZXhPZih0aGlzLl9hY3RpdmVQaWNrZXJOYW1lKSAtIDE7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVBpY2tlck5hbWUgPSB0aGlzLl9waWNrZXJOYW1lc1tpbmRleF07XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlUGlja2VySW5kZXggPSB0aGlzLl9waWNrZXJOYW1lcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVBpY2tlck5hbWUpO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVBpY2tlckNvbXBvbmVudCA9IHRoaXMuX29wdGlvbnMucGlja2VyUGVyaW9kc0RlZmluaXRpb24hW3RoaXMuX2FjdGl2ZVBpY2tlck5hbWVdO1xyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgcGlja2VyLnNldENhbkdvRG93bih0aGlzLl9waWNrZXJOYW1lcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVBpY2tlck5hbWUpID4gMCk7XHJcbiAgICAgICAgcGlja2VyLnNldENhbkdvVXAodGhpcy5fcGlja2VyTmFtZXMuaW5kZXhPZih0aGlzLl9hY3RpdmVQaWNrZXJOYW1lKSA8IHRoaXMuX3BpY2tlck5hbWVzLmxlbmd0aCAtIDEpO1xyXG5cclxuICAgICAgICB0aGlzLl9zZXRQaWNrZXJDc3NDbGFzc2VzKCk7XHJcbiAgICAgICAgcGlja2VyLnNldFZhbHVlKHRoaXMuX3ZhbHVlKTtcclxuICAgICAgICBwaWNrZXIuc2V0TWluVmFsdWUodGhpcy5fbWluVmFsdWUpO1xyXG4gICAgICAgIHBpY2tlci5zZXRNYXhWYWx1ZSh0aGlzLl9tYXhWYWx1ZSk7XHJcbiAgICAgICAgcGlja2VyLmRpc3BsYXkodGhpcy5fZGlzcGxheSA/IHRoaXMuX2RhdGVBcGkuZ2V0VmFsdWUodGhpcy5fZGlzcGxheSkgOiB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHRoaXMuX3ZhbHVlPy5mcm9tID8/IHRoaXMuX2RhdGVBcGkubm93KCkudmFsdWUpKTtcclxuXHJcbiAgICAgICAgcGlja2VyLmludmFsaWRhdGVWaXN1YWxzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHByb3RlY3RlZCBtZXRob2RzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgcGlja2VyIGNzcyBjbGFzc2VzXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfc2V0UGlja2VyQ3NzQ2xhc3NlcygpXHJcbiAgICB7XHJcbiAgICAgICAgaWYoIXRoaXMuX2FjdGl2ZVBpY2tlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vc2V0cyBzaGFyZWQgY3NzIFxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVBpY2tlci5zZXRDc3NDbGFzc2VzKHRoaXMuX29wdGlvbnM/LmNzc0NsYXNzZXM/LnBpY2tlclNoYXJlZCA/PyB7fSk7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX29wdGlvbnM/LmNzc0NsYXNzZXM/LnBpY2tlckN1c3RvbSAmJiB0aGlzLl9vcHRpb25zPy5jc3NDbGFzc2VzPy5waWNrZXJDdXN0b21bdGhpcy5fYWN0aXZlUGlja2VyTmFtZV0pXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXIuc2V0Q3NzQ2xhc3Nlcyh0aGlzLl9vcHRpb25zPy5jc3NDbGFzc2VzPy5waWNrZXJDdXN0b21bdGhpcy5fYWN0aXZlUGlja2VyTmFtZV0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufSJdfQ==
|
|
460
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9waWNrZXIvY29tcG9uZW50cy9waWNrZXIvcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWdCLFlBQVksRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQVksTUFBTSxlQUFlLENBQUM7QUFDNUosT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHbEMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRzlDLE9BQU8sRUFBQyw4QkFBOEIsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pFLE9BQU8sRUFBQywwQkFBMEIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQzVFLE9BQU8sRUFBQyw0QkFBNEIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBQ2xGLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQy9FLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLCtCQUErQixDQUFDOzs7Ozs7SUFPM0Qsb0JBQW9CLEdBQzFCO0lBQ0ksYUFBYSxFQUFFLEtBQUs7SUFDcEIsdUJBQXVCLEVBQ3ZCO1FBQ0ksS0FBSyxFQUFFLDBCQUEwQjtRQUNqQyxPQUFPLEVBQUUsNEJBQTRCO1FBQ3JDLE1BQU0sRUFBRSwyQkFBMkI7S0FDdEM7SUFDRCxVQUFVLEVBQ1YsRUFDQztDQUNKOzs7OztBQUtEO0lBZ0pJLGlFQUFpRTtJQUNqRSxpQ0FBZ0UsYUFBMkQsRUFDbkYsUUFBd0IsRUFDMUMsZUFBa0M7UUFEaEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7UUFDMUMsb0JBQWUsR0FBZixlQUFlLENBQW1COzs7O1FBMUg5QyxpQkFBWSxHQUFhLEVBQUUsQ0FBQzs7OztRQUs1QixXQUFNLEdBQThCLElBQUksQ0FBQzs7OztRQUt6QywrQkFBMEIsR0FBaUIsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7OztRQVU5RCxjQUFTLEdBQWUsSUFBSSxDQUFDOzs7O1FBSzdCLGNBQVMsR0FBZSxJQUFJLENBQUM7Ozs7O1FBbUJoQyxzQkFBaUIsR0FBVyxDQUFDLENBQUM7Ozs7O1FBeUU5QixnQkFBVyxHQUF1QyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQU85RixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLG9CQUFvQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ3RFLHVDQUF1QztRQUN2QyxJQUFJLGFBQWEsYUFBYixhQUFhLHVCQUFiLGFBQWEsQ0FBRSx1QkFBdUIsRUFDMUM7WUFDSSxJQUFJLENBQUMsUUFBUSxDQUFDLHVCQUF1QixHQUFHLGFBQWEsQ0FBQyx1QkFBdUIsQ0FBQTtTQUNoRjtJQUNMLENBQUM7SUEvRUQsc0JBQ1csNENBQU87UUFObEIsZ0ZBQWdGO1FBRWhGOztXQUVHOzs7Ozs7O1FBQ0g7WUFHSSxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDekIsQ0FBQzs7Ozs7UUFDRCxVQUFtQixLQUFtRDtZQUVsRSxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUVuRCx1Q0FBdUM7WUFDdkMsSUFBSSxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUUsdUJBQXVCLEVBQ2xDO2dCQUNJLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLEdBQUcsS0FBSyxDQUFDLHVCQUF1QixDQUFBO2FBQ3hFO1FBQ0wsQ0FBQzs7O09BVkE7SUFlRCxzQkFDVywwQ0FBSztRQUpoQjs7V0FFRzs7Ozs7UUFDSDtZQUdJLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUN2QixDQUFDOzs7OztRQUNELFVBQWlCLEtBQWdDOztZQUU3QyxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUVwQixNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLFFBQVEsQ0FBQyxLQUFLLEVBQUU7WUFDcEMsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxpQkFBaUIsR0FBRztRQUM1QyxDQUFDOzs7T0FQQTtJQVlELHNCQUNXLDZDQUFRO1FBSm5COztXQUVHOzs7OztRQUNIO1lBR0ksT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzFCLENBQUM7Ozs7O1FBQ0QsVUFBb0IsS0FBaUI7O1lBRWpDLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLE1BQUEsSUFBSSxDQUFDLGFBQWEsMENBQUUsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUU7UUFDcEQsQ0FBQzs7O09BTEE7SUFVRCxzQkFDVyw2Q0FBUTtRQUpuQjs7V0FFRzs7Ozs7UUFDSDtZQUdJLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMxQixDQUFDOzs7OztRQUNELFVBQW9CLEtBQWlCOztZQUVqQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixNQUFBLElBQUksQ0FBQyxhQUFhLDBDQUFFLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1FBQ3BELENBQUM7OztPQUxBO0lBNEJELCtGQUErRjtJQUUvRjs7T0FFRzs7Ozs7O0lBQ0ksMENBQVE7Ozs7OztJQUFmO1FBQUEsaUJBcUNDO1FBbkNHLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFDcEM7WUFDSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxFQUNuRDtnQkFDSSxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUE7YUFDdkQ7aUJBRUQ7Z0JBQ0ksSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7cUJBQzFDLEdBQUc7Ozs7Z0JBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQVIsQ0FBUSxFQUFDO3FCQUNsQixNQUFNOzs7O2dCQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxFQUFELENBQUMsRUFBQyxDQUFBO2FBQ3RDO1NBQ0o7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUNyRDtZQUNJLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTzs7OztZQUFDLFVBQUEsQ0FBQztnQkFDdkIsSUFBRyxDQUFDLG1CQUFBLEtBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLEVBQUMsQ0FBQyxtQkFBQSxDQUFDLEVBQUMsQ0FBQyxFQUM5QztvQkFDSSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF1QixDQUFDLHdCQUFxQixDQUFDLENBQUM7aUJBQ2xFO1lBQ0wsQ0FBQyxFQUFDLENBQUE7U0FDTDthQUVEO1lBQ0ksSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLG1CQUFBLElBQUksQ0FBQyxRQUFRLENBQUMsdUJBQXVCLEVBQUMsQ0FBQyxDQUFDO1NBQzNFO1FBRUQsSUFBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFNBQVM7Ozs7UUFBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsSUFBSSxLQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBaEMsQ0FBZ0MsRUFBQyxHQUFHLENBQUMsRUFDekU7WUFDSSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF1QixJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsd0JBQXFCLENBQUMsQ0FBQztTQUM1RjtRQUVELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxtQkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLHVCQUF1QixFQUFDLENBQUMsbUJBQUEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLEVBQUMsQ0FBQyxDQUFDO1FBQ2xHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxtQkFBQSxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsRUFBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBRUQsa0dBQWtHO0lBRWxHOztPQUVHOzs7Ozs7SUFDSSw2Q0FBVzs7Ozs7O0lBQWxCO1FBRUksSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDMUIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFRCx3RkFBd0Y7SUFFeEY7Ozs7T0FJRzs7Ozs7Ozs7SUFDSSwrQ0FBYTs7Ozs7Ozs7SUFBcEIsVUFBcUIsTUFBNkI7UUFBbEQsaUJBbURDOztRQWpERyxJQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsYUFBYSxFQUMvQjtZQUNJLE9BQU87U0FDVjtRQUVELElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDO1FBRTVCLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM5QyxJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUVyRCxJQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFDdEI7WUFDSSxPQUFPO1NBQ1Y7UUFFRCxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUzs7O1FBQUM7WUFFN0QsS0FBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1lBQzNCLEtBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLG1CQUFBLEtBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQyxDQUFDO1FBQ3hDLENBQUMsRUFBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUzs7OztRQUFDLFVBQUEsT0FBTztZQUVoRSxLQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQzs7Z0JBQ3BCLEtBQUssR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDO1lBQ2pFLEtBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xELEtBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMzRSxLQUFJLENBQUMscUJBQXFCLEdBQUcsbUJBQUEsS0FBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsRUFBQyxDQUFDLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hHLENBQUMsRUFBQyxDQUFDLENBQUM7UUFFSixJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsU0FBUzs7OztRQUFDLFVBQUEsT0FBTztZQUVsRSxLQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQzs7Z0JBQ3BCLEtBQUssR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDO1lBQ2pFLEtBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2xELEtBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMzRSxLQUFJLENBQUMscUJBQXFCLEdBQUcsbUJBQUEsS0FBSSxDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsRUFBQyxDQUFDLEtBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2hHLENBQUMsRUFBQyxDQUFDLENBQUM7UUFFSixNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQzNFLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFcEcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDNUIsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDN0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxhQUFDLElBQUksQ0FBQyxNQUFNLDBDQUFFLElBQUksbUNBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRS9JLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCx1RUFBdUU7SUFFdkU7O09BRUc7Ozs7Ozs7SUFDTyxzREFBb0I7Ozs7Ozs7SUFBOUI7O1FBRUksSUFBRyxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQ3RCO1lBQ0ksT0FBTztTQUNWO1FBRUQsaUJBQWlCO1FBQ2pCLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxtQkFBQyxJQUFJLENBQUMsUUFBUSwwQ0FBRSxVQUFVLDBDQUFFLFlBQVksbUNBQUksRUFBRSxDQUFDLENBQUM7UUFFaEYsSUFBRyxhQUFBLElBQUksQ0FBQyxRQUFRLDBDQUFFLFVBQVUsMENBQUUsWUFBWSxrQkFBSSxJQUFJLENBQUMsUUFBUSwwQ0FBRSxVQUFVLDBDQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUMsRUFDN0c7WUFDSSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsYUFBQyxJQUFJLENBQUMsUUFBUSwwQ0FBRSxVQUFVLDBDQUFFLFlBQVksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztTQUNyRztJQUNMLENBQUM7O2dCQW5TSixTQUFTLFNBQ1Y7b0JBQ0ksUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIsME1BQW9DOztvQkFFcEMsVUFBVSxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQ2hDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDs7OztnREEwSWdCLFFBQVEsWUFBSSxNQUFNLFNBQUMsOEJBQThCO2dEQUNqRCxNQUFNLFNBQUMsUUFBUTtnQkF0THlFLGlCQUFpQjs7OzBCQWdIckgsS0FBSzt3QkFtQkwsS0FBSzsyQkFnQkwsS0FBSzsyQkFjTCxLQUFLOzhCQWdCTCxNQUFNOztJQXVKWCw4QkFBQztDQUFBLEFBcFNELElBb1NDO1NBNVJZLHVCQUF1Qjs7Ozs7OztJQU9oQyxnREFBZ0Q7Ozs7OztJQUtoRCxvREFBcUM7Ozs7OztJQUtyQywrQ0FBc0M7Ozs7OztJQUt0Qyx5Q0FBbUQ7Ozs7OztJQUtuRCw2REFBd0U7Ozs7OztJQUt4RSwyQ0FBMkI7Ozs7OztJQUszQiw0Q0FBdUM7Ozs7OztJQUt2Qyw0Q0FBdUM7Ozs7OztJQUt2QywyQ0FBaUU7Ozs7OztJQVFqRSx3REFBMkQ7Ozs7OztJQU0zRCxvREFBcUM7Ozs7O0lBd0VyQyw4Q0FDa0c7Ozs7O0lBSXRGLDJDQUFvRDs7Ozs7SUFDcEQsa0RBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBPcHRpb25hbCwgSW5qZWN0LCBJbnB1dCwgVHlwZSwgT25Jbml0LCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uRGVzdHJveX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7ZXh0ZW5kfSBmcm9tICdAanNjcnB0L2NvbW1vbic7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7RGF0ZVRpbWVWYWx1ZX0gZnJvbSAnLi4vLi4vLi4vbWlzYy9kYXRldGltZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0RBVEVfQVBJfSBmcm9tICcuLi8uLi8uLi9taXNjL3Rva2Vucyc7XHJcbmltcG9ydCB7RGF0ZUFwaX0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge0RhdGVUaW1lUGlja2VyLCBEYXRlVGltZVBpY2tlck9wdGlvbnN9IGZyb20gJy4uLy4uL21pc2MvZGF0ZXRpbWVQaWNrZXIuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtEQVRFX1RJTUVfUElDS0VSX0NPTkZJR1VSQVRJT059IGZyb20gJy4uLy4uL21pc2MvdG9rZW5zJztcclxuaW1wb3J0IHtEYXRlVGltZURheVBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi4vZGF5UGlja2VyL2RheVBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0RhdGVUaW1lTW9udGhQaWNrZXJDb21wb25lbnR9IGZyb20gJy4uL21vbnRoUGlja2VyL21vbnRoUGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGF0ZVRpbWVZZWFyUGlja2VyQ29tcG9uZW50fSBmcm9tICcuLi95ZWFyUGlja2VyL3llYXJQaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtzY2FsZVVwRG93blRyaWdnZXJ9IGZyb20gJy4vcGlja2VyLmNvbXBvbmVudC5hbmltYXRpb25zJztcclxuXHJcbi8vVE9ETyAtIG1lcmdlIG9wdGlvbnNcclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHBpY2tlclxyXG4gKi9cclxuY29uc3QgZGVmYXVsdENvbmZpZ3VyYXRpb246IERhdGVUaW1lUGlja2VyT3B0aW9uczxEYXRlVGltZVBpY2tlcj4gPVxyXG57XHJcbiAgICBkZWZhdWx0UGVyaW9kOiAnZGF5JyxcclxuICAgIHBpY2tlclBlcmlvZHNEZWZpbml0aW9uOlxyXG4gICAge1xyXG4gICAgICAgIFwiZGF5XCI6IERhdGVUaW1lRGF5UGlja2VyQ29tcG9uZW50LFxyXG4gICAgICAgIFwibW9udGhcIjogRGF0ZVRpbWVNb250aFBpY2tlckNvbXBvbmVudCxcclxuICAgICAgICBcInllYXJcIjogRGF0ZVRpbWVZZWFyUGlja2VyQ29tcG9uZW50XHJcbiAgICB9LFxyXG4gICAgY3NzQ2xhc3NlczpcclxuICAgIHtcclxuICAgIH1cclxufTtcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnQgdXNlZCBmb3IgZGlzcGxheWluZyBkYXRlIHRpbWUgcGlja2VyXHJcbiAqL1xyXG5AQ29tcG9uZW50KFxyXG57XHJcbiAgICBzZWxlY3RvcjogJ2RhdGUtdGltZS1waWNrZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICdwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgLy8gc3R5bGVVcmxzOiBbJ3BpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gICAgYW5pbWF0aW9uczogW3NjYWxlVXBEb3duVHJpZ2dlcl0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQ8VERhdGUgPSBhbnk+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHByb3RlY3RlZCBmaWVsZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5zdGFuY2Ugb2YgYWN0aXZlIGRhdGUgdGltZSBwaWNrZXJcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9hY3RpdmVQaWNrZXI/OiBEYXRlVGltZVBpY2tlcjxURGF0ZT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBOYW1lLCBpZCBvZiBkaXNwbGF5ZWQgcGlja2VyXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfYWN0aXZlUGlja2VyTmFtZSE6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFycmF5IG9mIGF2YWlsYWJsZSBwaWNrZXIgbmFtZXNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9waWNrZXJOYW1lczogc3RyaW5nW10gPSBbXTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgc2VsZWN0ZWQgdmFsdWVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogRGF0ZVRpbWVWYWx1ZTxURGF0ZT58bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbGwgc3Vic2NyaXB0aW9ucyBmb3IgYWN0aXZlIHBpY2tlclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2FjdGl2ZVBpY2tlclN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdGUgdGhhdCBzaG91bGQgYmUgZGlzcGxheWVkIGluIHBpY2tlciwgdXNlZCB3aGVuIG1vdmluZyB1cCBvciBkb3duIGluIHBlcmlvZHNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9kaXNwbGF5PzogVERhdGU7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBNaW5pbWFsIHBvc3NpYmxlIHZhbHVlIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21pblZhbHVlOiBURGF0ZXxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1heGltYWwgcG9zc2libGUgdmFsdWUgdGhhdCBjYW4gYmUgcGlja2VkXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfbWF4VmFsdWU6IFREYXRlfG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudCBvcHRpb25zIHVzZWQgYnkgcGlja2VyXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfb3B0aW9uczogRGF0ZVRpbWVQaWNrZXJPcHRpb25zPERhdGVUaW1lUGlja2VyPFREYXRlPj47XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBwcm9wZXJ0aWVzIC0gdGVtcGxhdGUgYmluZGluZ3MgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudGx5IGFjdGl2ZSBkYXRlIHRpbWUgcGlja2VyIGNvbXBvbmVudCB0eXBlXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjdGl2ZVBpY2tlckNvbXBvbmVudD86IFR5cGU8RGF0ZVRpbWVQaWNrZXI8VERhdGU+PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFjdGl2ZSBwaWNrZXIgaW5kZXhcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWN0aXZlUGlja2VySW5kZXg6IG51bWJlciA9IDA7XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBwcm9wZXJ0aWVzIC0gaW5wdXRzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgb3B0aW9ucyB1c2VkIGJ5IHBpY2tlclxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBvcHRpb25zKCk6IERhdGVUaW1lUGlja2VyT3B0aW9uczxEYXRlVGltZVBpY2tlcjxURGF0ZT4+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IG9wdGlvbnModmFsdWU6IERhdGVUaW1lUGlja2VyT3B0aW9uczxEYXRlVGltZVBpY2tlcjxURGF0ZT4+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBleHRlbmQodHJ1ZSwgdGhpcy5fb3B0aW9ucywgdmFsdWUpO1xyXG5cclxuICAgICAgICAvLyB3aXRob3V0IGRlZXAtY29weSBmb3IgdGhpcyBhdHRyaWJ1dGVcclxuICAgICAgICBpZiAodmFsdWU/LnBpY2tlclBlcmlvZHNEZWZpbml0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5waWNrZXJQZXJpb2RzRGVmaW5pdGlvbiA9IHZhbHVlLnBpY2tlclBlcmlvZHNEZWZpbml0aW9uXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudCBzZWxlY3RlZCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBEYXRlVGltZVZhbHVlPFREYXRlPnxudWxsXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogRGF0ZVRpbWVWYWx1ZTxURGF0ZT58bnVsbClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXI/LnNldFZhbHVlKHZhbHVlKTtcclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXI/LmludmFsaWRhdGVWaXN1YWxzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgbWluaW1hbCBwb3NzaWJsZSB2YWx1ZSBmb3IgcGlja2VyLCB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgbWluVmFsdWUoKTogVERhdGV8bnVsbFxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9taW5WYWx1ZTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgbWluVmFsdWUodmFsdWU6IFREYXRlfG51bGwpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fbWluVmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXI/LnNldE1pblZhbHVlKHRoaXMuX21pblZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBURGF0ZXxudWxsXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heFZhbHVlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBtYXhWYWx1ZSh2YWx1ZTogVERhdGV8bnVsbClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9tYXhWYWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVBpY2tlcj8uc2V0TWF4VmFsdWUodGhpcy5fbWF4VmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIG91dHB1dHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gdmFsdWUgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHB1YmxpYyB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGVUaW1lVmFsdWU8VERhdGU+PiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZVRpbWVWYWx1ZTxURGF0ZT4+KCk7XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIGNvbnN0cnVjdG9yICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuICAgIGNvbnN0cnVjdG9yKEBPcHRpb25hbCgpIEBJbmplY3QoREFURV9USU1FX1BJQ0tFUl9DT05GSUdVUkFUSU9OKSBjb25maWd1cmF0aW9uOiBEYXRlVGltZVBpY2tlck9wdGlvbnM8RGF0ZVRpbWVQaWNrZXI8VERhdGU+PixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoREFURV9BUEkpIHByb3RlY3RlZCBfZGF0ZUFwaTogRGF0ZUFwaTxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZilcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9vcHRpb25zID0gZXh0ZW5kKHRydWUsIHt9LCBkZWZhdWx0Q29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbik7XHJcbiAgICAgICAgLy8gd2l0aG91dCBkZWVwLWNvcHkgZm9yIHRoaXMgYXR0cmlidXRlXHJcbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24/LnBpY2tlclBlcmlvZHNEZWZpbml0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5waWNrZXJQZXJpb2RzRGVmaW5pdGlvbiA9IGNvbmZpZ3VyYXRpb24ucGlja2VyUGVyaW9kc0RlZmluaXRpb25cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25Jbml0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgY29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpXHJcbiAgICB7XHJcbiAgICAgICAgaWYgKHRoaXMuX29wdGlvbnMucGlja2VyUGVyaW9kc09yZGVyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5fb3B0aW9ucy5waWNrZXJQZXJpb2RzT3JkZXIpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9waWNrZXJOYW1lcyA9IHRoaXMuX29wdGlvbnMucGlja2VyUGVyaW9kc09yZGVyXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9waWNrZXJOYW1lcyA9IHRoaXMuX29wdGlvbnMucGlja2VyUGVyaW9kc09yZGVyLnNwbGl0KCcsJylcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLm1hcCh4ID0+IHgudHJpbSgpKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKHggPT4geClcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAodGhpcy5fcGlja2VyTmFtZXMgJiYgdGhpcy5fcGlja2VyTmFtZXMubGVuZ3RoID4gMClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3BpY2tlck5hbWVzLmZvckVhY2goeCA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZighdGhpcy5fb3B0aW9ucy5waWNrZXJQZXJpb2RzRGVmaW5pdGlvbiFbeCFdKVxyXG4gICAgICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlcmUgaXMgbm8gcGVyaW9kICcke3h9JyBpbiBwaWNrZXIgb3B0aW9uc2ApO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9waWNrZXJOYW1lcyA9IE9iamVjdC5rZXlzKHRoaXMuX29wdGlvbnMucGlja2VyUGVyaW9kc0RlZmluaXRpb24hKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX3BpY2tlck5hbWVzLmZpbmRJbmRleCh4ID0+IHggPT0gdGhpcy5fb3B0aW9ucy5kZWZhdWx0UGVyaW9kKSA8IDApXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZXJlIGlzIG5vIHBlcmlvZCAnJHt0aGlzLl9vcHRpb25zLmRlZmF1bHRQZXJpb2R9JyBpbiBwaWNrZXIgb3B0aW9uc2ApO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5hY3RpdmVQaWNrZXJDb21wb25lbnQgPSB0aGlzLl9vcHRpb25zLnBpY2tlclBlcmlvZHNEZWZpbml0aW9uIVt0aGlzLl9vcHRpb25zLmRlZmF1bHRQZXJpb2QhXTtcclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXJOYW1lID0gdGhpcy5fb3B0aW9ucy5kZWZhdWx0UGVyaW9kITtcclxuICAgICAgICB0aGlzLmFjdGl2ZVBpY2tlckluZGV4ID0gdGhpcy5fcGlja2VyTmFtZXMuaW5kZXhPZih0aGlzLl9hY3RpdmVQaWNrZXJOYW1lKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSBpbXBsZW1lbnRhdGlvbiBvZiBPbkRlc3Ryb3kgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGVkIHdoZW4gY29tcG9uZW50IGlzIGRlc3Ryb3llZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2Rpc3BsYXkgPSB1bmRlZmluZWQ7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlUGlja2VyU3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgY3JlYXRlZCBvciBkZXN0cm95ZWQgZGF0ZSB0aW1lIHBpY2tlciBpbnN0YW5jZVxyXG4gICAgICogQHBhcmFtIHBpY2tlciAtIEluc3RhbmNlIG9mIHBpY2tlciBvciBudWxsXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBpY2tlckNyZWF0ZWQocGlja2VyOiBEYXRlVGltZVBpY2tlcjxURGF0ZT4pXHJcbiAgICB7XHJcbiAgICAgICAgaWYocGlja2VyID09IHRoaXMuX2FjdGl2ZVBpY2tlcilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVBpY2tlciA9IHBpY2tlcjtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlUGlja2VyU3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVBpY2tlclN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gICAgICAgIGlmKCF0aGlzLl9hY3RpdmVQaWNrZXIpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXJTdWJzY3JpcHRpb25zLmFkZChwaWNrZXIudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl92YWx1ZSA9IHBpY2tlci52YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlISk7XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXJTdWJzY3JpcHRpb25zLmFkZChwaWNrZXIuc2NhbGVVcC5zdWJzY3JpYmUoZGlzcGxheSA9PlxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fZGlzcGxheSA9IGRpc3BsYXk7XHJcbiAgICAgICAgICAgIGxldCBpbmRleCA9IHRoaXMuX3BpY2tlck5hbWVzLmluZGV4T2YodGhpcy5fYWN0aXZlUGlja2VyTmFtZSkgKyAxO1xyXG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXJOYW1lID0gdGhpcy5fcGlja2VyTmFtZXNbaW5kZXhdO1xyXG4gICAgICAgICAgICB0aGlzLmFjdGl2ZVBpY2tlckluZGV4ID0gdGhpcy5fcGlja2VyTmFtZXMuaW5kZXhPZih0aGlzLl9hY3RpdmVQaWNrZXJOYW1lKTtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVQaWNrZXJDb21wb25lbnQgPSB0aGlzLl9vcHRpb25zLnBpY2tlclBlcmlvZHNEZWZpbml0aW9uIVt0aGlzLl9hY3RpdmVQaWNrZXJOYW1lXTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVBpY2tlclN1YnNjcmlwdGlvbnMuYWRkKHBpY2tlci5zY2FsZURvd24uc3Vic2NyaWJlKGRpc3BsYXkgPT5cclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXkgPSBkaXNwbGF5O1xyXG4gICAgICAgICAgICBsZXQgaW5kZXggPSB0aGlzLl9waWNrZXJOYW1lcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVBpY2tlck5hbWUpIC0gMTtcclxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlUGlja2VyTmFtZSA9IHRoaXMuX3BpY2tlck5hbWVzW2luZGV4XTtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVQaWNrZXJJbmRleCA9IHRoaXMuX3BpY2tlck5hbWVzLmluZGV4T2YodGhpcy5fYWN0aXZlUGlja2VyTmFtZSk7XHJcbiAgICAgICAgICAgIHRoaXMuYWN0aXZlUGlja2VyQ29tcG9uZW50ID0gdGhpcy5fb3B0aW9ucy5waWNrZXJQZXJpb2RzRGVmaW5pdGlvbiFbdGhpcy5fYWN0aXZlUGlja2VyTmFtZV07XHJcbiAgICAgICAgfSkpO1xyXG5cclxuICAgICAgICBwaWNrZXIuc2V0Q2FuR29Eb3duKHRoaXMuX3BpY2tlck5hbWVzLmluZGV4T2YodGhpcy5fYWN0aXZlUGlja2VyTmFtZSkgPiAwKTtcclxuICAgICAgICBwaWNrZXIuc2V0Q2FuR29VcCh0aGlzLl9waWNrZXJOYW1lcy5pbmRleE9mKHRoaXMuX2FjdGl2ZVBpY2tlck5hbWUpIDwgdGhpcy5fcGlja2VyTmFtZXMubGVuZ3RoIC0gMSk7XHJcblxyXG4gICAgICAgIHRoaXMuX3NldFBpY2tlckNzc0NsYXNzZXMoKTtcclxuICAgICAgICBwaWNrZXIuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgIHBpY2tlci5zZXRNaW5WYWx1ZSh0aGlzLl9taW5WYWx1ZSk7XHJcbiAgICAgICAgcGlja2VyLnNldE1heFZhbHVlKHRoaXMuX21heFZhbHVlKTtcclxuICAgICAgICBwaWNrZXIuZGlzcGxheSh0aGlzLl9kaXNwbGF5ID8gdGhpcy5fZGF0ZUFwaS5nZXRWYWx1ZSh0aGlzLl9kaXNwbGF5KSA6IHRoaXMuX2RhdGVBcGkuZ2V0VmFsdWUodGhpcy5fdmFsdWU/LmZyb20gPz8gdGhpcy5fZGF0ZUFwaS5ub3coKS52YWx1ZSkpO1xyXG5cclxuICAgICAgICBwaWNrZXIuaW52YWxpZGF0ZVZpc3VhbHMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIG1ldGhvZHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBwaWNrZXIgY3NzIGNsYXNzZXNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9zZXRQaWNrZXJDc3NDbGFzc2VzKClcclxuICAgIHtcclxuICAgICAgICBpZighdGhpcy5fYWN0aXZlUGlja2VyKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy9zZXRzIHNoYXJlZCBjc3NcclxuICAgICAgICB0aGlzLl9hY3RpdmVQaWNrZXIuc2V0Q3NzQ2xhc3Nlcyh0aGlzLl9vcHRpb25zPy5jc3NDbGFzc2VzPy5waWNrZXJTaGFyZWQgPz8ge30pO1xyXG5cclxuICAgICAgICBpZih0aGlzLl9vcHRpb25zPy5jc3NDbGFzc2VzPy5waWNrZXJDdXN0b20gJiYgdGhpcy5fb3B0aW9ucz8uY3NzQ2xhc3Nlcz8ucGlja2VyQ3VzdG9tW3RoaXMuX2FjdGl2ZVBpY2tlck5hbWVdKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlUGlja2VyLnNldENzc0NsYXNzZXModGhpcy5fb3B0aW9ucz8uY3NzQ2xhc3Nlcz8ucGlja2VyQ3VzdG9tW3RoaXMuX2FjdGl2ZVBpY2tlck5hbWVdKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -64,6 +64,11 @@ if (false) {
|
|
|
64
64
|
*/
|
|
65
65
|
export function DateTimePickerOptions() { }
|
|
66
66
|
if (false) {
|
|
67
|
+
/**
|
|
68
|
+
* Order of pickers, it's possible use less pickers as is defined in pickerPeriodsDefinition for example 'month,year'
|
|
69
|
+
* @type {?|undefined}
|
|
70
|
+
*/
|
|
71
|
+
DateTimePickerOptions.prototype.pickerPeriodsOrder;
|
|
67
72
|
/**
|
|
68
73
|
* Definition of types for each period type for picker
|
|
69
74
|
* @type {?|undefined}
|
|
@@ -237,4 +242,4 @@ if (false) {
|
|
|
237
242
|
*/
|
|
238
243
|
YearData.prototype.value;
|
|
239
244
|
}
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
245
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWVQaWNrZXIuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3BpY2tlci9taXNjL2RhdGV0aW1lUGlja2VyLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFVQSw0Q0ErQkM7Ozs7OztJQTFCRyxpREFBeUI7Ozs7O0lBS3pCLGdEQUF3Qjs7Ozs7SUFLeEIsNENBQW9COzs7OztJQUtwQiw2Q0FBcUI7Ozs7O0lBS3JCLDRDQUFvQjs7Ozs7SUFLcEIsNkNBQXFCOzs7Ozs7QUFNekIsOENBV0M7Ozs7OztJQU5HLGdEQUFzQzs7Ozs7SUFLdEMsZ0RBQWtDOzs7Ozs7O0FBTXRDLDJDQXFCQzs7Ozs7O0lBaEJHLG1EQUFzQzs7Ozs7SUFLdEMsd0RBQW9EOzs7OztJQUtwRCw4Q0FBdUI7Ozs7O0lBS3ZCLDJDQUFzQzs7Ozs7OztBQU0xQyxvQ0FvRUM7Ozs7OztJQS9ERywrQkFBMEM7Ozs7O0lBSzFDLHFDQUF1Qzs7Ozs7SUFLdkMsaUNBQW9DOzs7OztJQUtwQyxtQ0FBc0M7Ozs7OztJQU10QyxtRUFBNkM7Ozs7OztJQU03Qyw0REFBcUM7Ozs7OztJQU1yQyw0REFBcUM7Ozs7OztJQU1yQyx5REFBaUQ7Ozs7OztJQU1qRCx3REFBMkM7Ozs7OztJQU0zQyw2REFBbUM7Ozs7OztJQU1uQywyREFBaUM7Ozs7O0lBS2pDLDZEQUEwQjs7Ozs7OztBQU05QixnQ0FnQkM7Ozs7OztJQVhHLDRCQUFnQjs7Ozs7SUFLaEIsOEJBQWtCOzs7OztJQUtsQiwwQkFBWTs7Ozs7OztBQU1oQiw2QkEwQkM7Ozs7OztJQXJCRyxnQ0FBdUI7Ozs7O0lBS3ZCLDZCQUFvQjs7Ozs7SUFLcEIsd0JBQWU7Ozs7O0lBS2YsMEJBQWlCOzs7OztJQUtqQixzQkFBWTs7Ozs7OztBQU1oQiwrQkFNQzs7Ozs7O0lBREcseUJBQWE7Ozs7Ozs7QUFNakIsOEJBTUM7Ozs7OztJQURHLHlCQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtEaWN0aW9uYXJ5fSBmcm9tICdAanNjcnB0L2NvbW1vbic7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQge0RhdGVUaW1lVmFsdWV9IGZyb20gJy4uLy4uL21pc2MvZGF0ZXRpbWUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtEYXRlQXBpT2JqZWN0fSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9kYXRlQXBpLmludGVyZmFjZSc7XHJcblxyXG4vKipcclxuICogU2hhcmVkIGNzcyBjbGFzc2VzIGZvciBhbGwgcGlja2Vyc1xyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBDb21tb25QaWNrZXJDc3NDbGFzc2VzXHJcbntcclxuICAgIC8qKlxyXG4gICAgICogUGVyaW9kIHNlbGVjdGlvbiBlbGVtZW50IHdyYXBwaW5nIGRpc3BsYXllZCBwZXJpb2QgYW5kIHByZXZpb3VzLCBuZXh0IGJ1dHRvbnNcclxuICAgICAqL1xyXG4gICAgcGVyaW9kU2VsZWN0aW9uPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRWxlbWVudCB1c2VkIGZvciBzd2l0Y2hpbmcgcGVyaW9kIHRvIHByZXZpb3VzIG9uZVxyXG4gICAgICovXHJcbiAgICBwcmV2aW91c1BlcmlvZD86IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVsZW1lbnQgdXNlZCBmb3Igc3dpdGNoaW5nIHBlcmlvZCB0byBuZXh0IG9uZVxyXG4gICAgICovXHJcbiAgICBuZXh0UGVyaW9kPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRWxlbWVudCByZXByZXNlbnRpbmcgY3VycmVudGx5IGRpc3BsYXllZCBwZXJpb2RcclxuICAgICAqL1xyXG4gICAgcGVyaW9kVmFsdWU/OiBzdHJpbmc7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbGVtZW50IHdyYXBwaW5nIGRpc3BsYXllZCBwZXJpb2QgZGF0YVxyXG4gICAgICovXHJcbiAgICBwZXJpb2REYXRhPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRWxlbWVudCByZXByZXNlbnRpbmcgc2luZ2xlIGRhdHVtIGZvciBwZXJpb2QgaXRlbVxyXG4gICAgICovXHJcbiAgICBwZXJpb2REYXR1bT86IHN0cmluZztcclxufVxyXG5cclxuLyoqXHJcbiAqIENzcyBjbGFzc2VzIGFwcGxpZWQgdG8gZGF0ZXRpbWUgcGlja2VyXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERhdGVUaW1lUGlja2VyQ3NzQ2xhc3Nlc1xyXG57XHJcbiAgICAvKipcclxuICAgICAqIFNoYXJlZCBjc3MgY2xhc3NlcyBmb3IgYWxsIHBpY2tlcnNcclxuICAgICAqL1xyXG4gICAgcGlja2VyU2hhcmVkPzogQ29tbW9uUGlja2VyQ3NzQ2xhc3NlcztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1c3RvbSBjc3MgY2xhc3NlcyBzcGVjaWZpYyBmb3IgZWFjaCBwaWNrZXIgdHlwZVxyXG4gICAgICovXHJcbiAgICBwaWNrZXJDdXN0b20/OiBEaWN0aW9uYXJ5PG9iamVjdD47XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEZWZpbnRpb24gb2YgZGF0ZXRpbWUgcGlja2VyIGNvbXBvbmVudCBvcHRpb25zXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIERhdGVUaW1lUGlja2VyT3B0aW9uczxUUGlja2VyID0gYW55PlxyXG57XHJcbiAgICAvKipcclxuICAgICAqIE9yZGVyIG9mIHBpY2tlcnMsIGl0J3MgcG9zc2libGUgdXNlIGxlc3MgcGlja2VycyBhcyBpcyBkZWZpbmVkIGluIHBpY2tlclBlcmlvZHNEZWZpbml0aW9uIGZvciBleGFtcGxlICdtb250aCx5ZWFyJ1xyXG4gICAgICovXHJcbiAgICBwaWNrZXJQZXJpb2RzT3JkZXI/OiBzdHJpbmdbXSB8IHN0cmluZ1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGVmaW5pdGlvbiBvZiB0eXBlcyBmb3IgZWFjaCBwZXJpb2QgdHlwZSBmb3IgcGlja2VyXHJcbiAgICAgKi9cclxuICAgIHBpY2tlclBlcmlvZHNEZWZpbml0aW9uPzogRGljdGlvbmFyeTxUeXBlPFRQaWNrZXI+PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgZGVmYXVsdCBwZXJpb2QgZm9yIHBpY2tlciB0aGF0IGlzIGRpc3BsYXllZFxyXG4gICAgICovXHJcbiAgICBkZWZhdWx0UGVyaW9kPzogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3NzIGNsYXNzZXMgZm9yIGRhdGUgdGltZSBwaWNrZXJcclxuICAgICAqL1xyXG4gICAgY3NzQ2xhc3Nlcz86IERhdGVUaW1lUGlja2VyQ3NzQ2xhc3NlcztcclxufVxyXG5cclxuLyoqXHJcbiAqIERlc2NyaWJlcyBkYXRldGltZSBwaWNrZXIgY29tcG9uZW50IHVzZWQgZm9yIGRpc3BsYXlpbmcgYW5kIHNlbGVjdGluZyB2YWx1ZVxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBEYXRlVGltZVBpY2tlcjxURGF0ZSA9IGFueSwgVENzc0NsYXNzZXMgPSBvYmplY3Q+XHJcbntcclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBjdXJyZW50IHZhbHVlIG9mIGRhdGV0aW1lXHJcbiAgICAgKi9cclxuICAgIHJlYWRvbmx5IHZhbHVlOiBEYXRlVGltZVZhbHVlPFREYXRlPnxudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gdmFsdWUgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZTogT2JzZXJ2YWJsZTx2b2lkPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHVzZXIgc2NhbGVzIHVwXHJcbiAgICAgKi9cclxuICAgIHJlYWRvbmx5IHNjYWxlVXA6IE9ic2VydmFibGU8VERhdGU+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gdXNlciBzY2FsZXMgZG93blxyXG4gICAgICovXHJcbiAgICByZWFkb25seSBzY2FsZURvd246IE9ic2VydmFibGU8VERhdGU+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0cyBjc3MgY2xhc3NlcyBmb3IgcGlja2VyLCBhbGxvd2luZyB0byBvdmVycmlkZSBkZWZhdWx0c1xyXG4gICAgICogQHBhcmFtIGNzc0NsYXNzZXMgLSBDc3MgY2xhc3NlcyB0byBiZSBzZXQgZm9yIHBpY2tlclxyXG4gICAgICovXHJcbiAgICBzZXRDc3NDbGFzc2VzKGNzc0NsYXNzZXM6IFRDc3NDbGFzc2VzKTogdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgbWluaW1hbCBwb3NzaWJsZSB2YWx1ZSBmb3IgcGlja2VyLCB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIE1pbmltYWwgcG9zc2libGUgdmFsdWUgdGhhdCBjYW4gYmUgcGlja2VkXHJcbiAgICAgKi9cclxuICAgIHNldE1pblZhbHVlKHZhbHVlOiBURGF0ZXxudWxsKTogdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgbWF4aW1hbCBwb3NzaWJsZSB2YWx1ZSBmb3IgcGlja2VyLCB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIE1heGltYWwgcG9zc2libGUgdmFsdWUgdGhhdCBjYW4gYmUgcGlja2VkXHJcbiAgICAgKi9cclxuICAgIHNldE1heFZhbHVlKHZhbHVlOiBURGF0ZXxudWxsKTogdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgdmFsdWUgb2YgZGF0ZXRpbWUgcGlja2VyXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBWYWx1ZSB0byBiZSBzZXQgdG8gdGhpcyBwaWNrZXJcclxuICAgICAqL1xyXG4gICAgc2V0VmFsdWUodmFsdWU6IERhdGVUaW1lVmFsdWU8VERhdGU+fG51bGwpOiB2b2lkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IGRpc3BsYXlzIGRhdGUgdG8gYmUgZGlzcGxheWVkXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBWYWx1ZSB0aGF0IGlkZW50aWZpZXMgcGVyaW9kIHRoYXQgaXMgZ29pbmcgdG8gYmUgZGlzcGxheWVkXHJcbiAgICAgKi9cclxuICAgIGRpc3BsYXkodmFsdWU6IERhdGVBcGlPYmplY3Q8VERhdGU+KTogdm9pZDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgaW5kaWNhdGlvbiB3aGV0aGVyIGNhbiBnbyBkb3duXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBJbmRpY2F0aW9uIHdoZXRoZXIgY2FuIGdvIGRvd24gaW4gcGVyaW9kXHJcbiAgICAgKi9cclxuICAgIHNldENhbkdvRG93bih2YWx1ZTogYm9vbGVhbik6IHZvaWQ7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGluZGljYXRpb24gd2hldGhlciBjYW4gZ28gdXBcclxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIEluZGljYXRpb24gd2hldGhlciBjYW4gZ28gdXAgaW4gcGVyaW9kXHJcbiAgICAgKi9cclxuICAgIHNldENhbkdvVXAodmFsdWU6IGJvb2xlYW4pOiB2b2lkO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRXhwbGljaXRseSBydW5zIGludmFsaWRhdGlvbiBvZiBjb250ZW50IChjaGFuZ2UgZGV0ZWN0aW9uKVxyXG4gICAgICovXHJcbiAgICBpbnZhbGlkYXRlVmlzdWFscygpOiB2b2lkO1xyXG59XHJcblxyXG4vKipcclxuICogRGF0YSB0aGF0IHJlcHJlc2VudHMgZGF0YSBmb3IgYW55IHBpY2tlciB0eXBlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFBlcmlvZERhdGE8VERhdGUgPSBhbnk+XHJcbntcclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGlvbiB0aGF0IHRoaXMgcGVyaW9kIGl0ZW0gaXMgYWN0aXZlIGFuZCBzZWxlY3RlZFxyXG4gICAgICovXHJcbiAgICBhY3RpdmU6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0aW9uIHRoYXQgdGhpcyBwZXJpb2QgaXRlbSBpcyBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdGUgZm9yIHRoaXMgcGVyaW9kIGl0ZW1cclxuICAgICAqL1xyXG4gICAgZGF0ZTogVERhdGU7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBEYXRhIHRoYXQgcmVwcmVzZW50cyBkYXkgaW4gZGF0ZSBwaWNrZXJcclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF5RGF0YTxURGF0ZSA9IGFueT4gZXh0ZW5kcyBQZXJpb2REYXRhPFREYXRlPlxyXG57XHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRpb24gdGhhdCByYW5nZSBpcyBzZWxlY3RlZCBhbmQgdGhpcyBkYXkgaXMgYmV0d2VlbiBzZWxlY3RlZCBkYXRlc1xyXG4gICAgICovXHJcbiAgICBiZXR3ZWVuQWN0aXZlOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGlvbiB0aGF0IHRoaXMgZGF5IGlzIG91dCBvZiBjdXJyZW50bHkgc2VsZWN0ZWQgbW9udGhcclxuICAgICAqL1xyXG4gICAgb3RoZXJNb250aDogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRpb24gdGhhdCB0aGlzIGRheSBpcyB0b2RheVxyXG4gICAgICovXHJcbiAgICB0b2RheTogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYXRpb24gdGhhdCB0aGlzIGRheSBpcyB3ZWVrZW5kIGRheVxyXG4gICAgICovXHJcbiAgICB3ZWVrZW5kOiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRGF5IG51bWJlciBvZiBtb250aFxyXG4gICAgICovXHJcbiAgICBkYXk6IG51bWJlcjtcclxufVxyXG5cclxuLyoqXHJcbiAqIERhdGEgdGhhdCByZXByZXNlbnRzIG1vbnRoIGluIGRhdGUgcGlja2VyXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIE1vbnRoRGF0YTxURGF0ZSA9IGFueT4gZXh0ZW5kcyBQZXJpb2REYXRhPFREYXRlPlxyXG57XHJcbiAgICAvKipcclxuICAgICAqIE5hbWUgb2YgbW9udGhcclxuICAgICAqL1xyXG4gICAgbmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG4vKipcclxuICogRGF0YSB0aGF0IHJlcHJlc2VudHMgeWVhciBpbiBkYXRlIHBpY2tlclxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBZZWFyRGF0YTxURGF0ZSA9IGFueT4gZXh0ZW5kcyBQZXJpb2REYXRhPFREYXRlPlxyXG57XHJcbiAgICAvKipcclxuICAgICAqIFZhbHVlIG9mIHllYXJcclxuICAgICAqL1xyXG4gICAgdmFsdWU6IG51bWJlcjtcclxufVxyXG4iXX0=
|
|
@@ -85,6 +85,10 @@ var DateTimeSelectorComponent = /** @class */ (function () {
|
|
|
85
85
|
this.max = null;
|
|
86
86
|
this.format = formatProvider.date;
|
|
87
87
|
this._options = extend(true, {}, defaultConfiguration, configuration);
|
|
88
|
+
// without deep-copy for this attribute
|
|
89
|
+
if (configuration === null || configuration === void 0 ? void 0 : configuration.pickerPeriodsDefinition) {
|
|
90
|
+
this._options.pickerPeriodsDefinition = configuration.pickerPeriodsDefinition;
|
|
91
|
+
}
|
|
88
92
|
}
|
|
89
93
|
Object.defineProperty(DateTimeSelectorComponent.prototype, "value", {
|
|
90
94
|
//######################### public properties #########################
|
|
@@ -226,6 +230,10 @@ var DateTimeSelectorComponent = /** @class */ (function () {
|
|
|
226
230
|
*/
|
|
227
231
|
function (value) {
|
|
228
232
|
this._options = extend(true, this._options, value);
|
|
233
|
+
// without deep-copy for this attribute
|
|
234
|
+
if (value === null || value === void 0 ? void 0 : value.pickerPeriodsDefinition) {
|
|
235
|
+
this._options.pickerPeriodsDefinition = value.pickerPeriodsDefinition;
|
|
236
|
+
}
|
|
229
237
|
},
|
|
230
238
|
enumerable: false,
|
|
231
239
|
configurable: true
|
|
@@ -642,4 +650,4 @@ if (false) {
|
|
|
642
650
|
*/
|
|
643
651
|
DateTimeSelectorComponent.prototype._dateApi;
|
|
644
652
|
}
|
|
645
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NlbGVjdG9yL2NvbXBvbmVudHMvc2VsZWN0b3Ivc2VsZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBcUQsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBYSxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3ZELE9BQU8sRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDMUcsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFFdkcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFOUUsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDeEYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7OztJQU94RSxvQkFBb0IsR0FDMUI7SUFDSSxpQkFBaUIsRUFBRSw4QkFBOEI7SUFDakQsd0JBQXdCLEVBQUUsS0FBSztJQUMvQixjQUFjLEVBQUUsS0FBSztJQUNyQixhQUFhLEVBQUUsS0FBSztJQUNwQix1QkFBdUIsRUFDdkI7UUFDSSxL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UyxTQUNWO29CQUNJLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLDBmQUFzQztvQkFFdEMsVUFBVSxFQUFFLENBQUMsNkJBQTZCLENBQUM7b0JBQzNDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztpQkFDbEQ7Ozs7Z0RBaVJnQixRQUFRLFlBQUksTUFBTSxTQUFDLGdDQUFnQztnQkF2VDVELGlCQUFpQjtnQkFWK0YsaUJBQWlCO2dEQW9VeEgsTUFBTSxTQUFDLFFBQVE7Z0RBQ2YsTUFBTSxTQUFDLGVBQWU7Ozt5QkFySWxDLEtBQUs7OEJBTUwsS0FBSzswQkFvQkwsS0FBSzsyQkFhTCxLQUFLOzJCQThDTCxLQUFLOztJQXdLVixnQ0FBQztDQUFBLEFBcFpELElBb1pDO1NBNVlZLHlCQUF5Qjs7Ozs7OztJQU9sQywyQ0FBbUQ7Ozs7OztJQUtuRCw2Q0FBd0Q7Ozs7OztJQUt4RCxpREFBNEQ7Ozs7OztJQUs1RCw4Q0FBcUM7Ozs7OztJQUtyQyxvREFBb0Q7Ozs7OztJQUtwRCxpRUFBMEU7Ozs7OztJQUsxRSxnRUFBZ0U7Ozs7OztJQUtoRSxnRUFBZ0U7Ozs7OztJQUtoRSw2Q0FBcUU7Ozs7OztJQUtyRSxpREFBZ0M7Ozs7OztJQW9FaEMsNERBQStEOzs7Ozs7SUFNL0Qsa0RBQXNDOzs7OztJQUt0Qyx3Q0FBOEI7Ozs7O0lBSzlCLHdDQUE4Qjs7Ozs7SUFPOUIsMkNBQ3NCOzs7OztJQWlJVixtREFBa0Q7Ozs7O0lBQ2xELG9EQUE0Qzs7Ozs7SUFDNUMsNkNBQW9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCwgSW5qZWN0LCBPcHRpb25hbCwgVHlwZSwgT25Jbml0LCBPbkRlc3Ryb3ksIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0b3JSZWZ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge2V4dGVuZCwgaXNCbGFuaywgaXNTdHJpbmcsIG5hbWVvZn0gZnJvbSAnQGpzY3JwdC9jb21tb24nO1xyXG5pbXBvcnQge09ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbn0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQge0RhdGVUaW1lVmFsdWV9IGZyb20gJy4uLy4uLy4uL21pc2MvZGF0ZXRpbWUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHtEQVRFX0FQSSwgRk9STUFUX1BST1ZJREVSfSBmcm9tICcuLi8uLi8uLi9taXNjL3Rva2Vucyc7XHJcbmltcG9ydCB7RGF0ZVRpbWVEYXlQaWNrZXJDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL3BpY2tlci9jb21wb25lbnRzL2RheVBpY2tlci9kYXlQaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtEYXRlVGltZU1vbnRoUGlja2VyQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9waWNrZXIvY29tcG9uZW50cy9tb250aFBpY2tlci9tb250aFBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0RhdGVUaW1lWWVhclBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vcGlja2VyL2NvbXBvbmVudHMveWVhclBpY2tlci95ZWFyUGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGF0ZUFwaSwgRm9ybWF0UHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzJztcclxuaW1wb3J0IHtEYXRlVmFsdWVQcm92aWRlcn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZGF0ZVZhbHVlUHJvdmlkZXIuc2VydmljZSc7XHJcbmltcG9ydCB7RGF0ZVRpbWVTZWxlY3RvciwgRGF0ZVRpbWVTZWxlY3Rvck9wdGlvbnN9IGZyb20gJy4uLy4uL21pc2MvZGF0ZXRpbWVTZWxlY3Rvci5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0RBVEVfVElNRV9TRUxFQ1RPUl9DT05GSUdVUkFUSU9OfSBmcm9tICcuLi8uLi9taXNjL3Rva2Vucyc7XHJcbmltcG9ydCB7SW5wdXREYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50fSBmcm9tICcuLi9pbnB1dERhdGVUaW1lL2lucHV0RGF0ZVRpbWUuY29tcG9uZW50JztcclxuaW1wb3J0IHtlbnRlckxlYXZlQW5pbWF0ZUNoaWxkVHJpZ2dlcn0gZnJvbSAnLi9zZWxlY3Rvci5jb21wb25lbnQuYW5pbWF0aW9ucyc7XHJcblxyXG4vL1RPRE8gLSBhZGQgc3VwcG9ydCBmb3IgYm9keSBhYnNvbHV0ZSBwaWNrZXJcclxuXHJcbi8qKlxyXG4gKiBEZWZhdWx0IGNvbmZpZ3VyYXRpb24gZm9yIHNlbGVjdG9yXHJcbiAqL1xyXG5jb25zdCBkZWZhdWx0Q29uZmlndXJhdGlvbjogRGF0ZVRpbWVTZWxlY3Rvck9wdGlvbnM8RGF0ZVRpbWVTZWxlY3Rvcj4gPVxyXG57XHJcbiAgICBzZWxlY3RvckNvbXBvbmVudDogSW5wdXREYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50LFxyXG4gICAgcGlja2VyQ2xvc2VPblZhbHVlU2VsZWN0OiBmYWxzZSxcclxuICAgIHBpY2tlckRpc2FibGVkOiBmYWxzZSxcclxuICAgIGRlZmF1bHRQZXJpb2Q6ICdkYXknLFxyXG4gICAgcGlja2VyUGVyaW9kc0RlZmluaXRpb246XHJcbiAgICB7XHJcbiAgICAgICAgXCJkYXlcIjogRGF0ZVRpbWVEYXlQaWNrZXJDb21wb25lbnQsXHJcbiAgICAgICAgXCJtb250aFwiOiBEYXRlVGltZU1vbnRoUGlja2VyQ29tcG9uZW50LFxyXG4gICAgICAgIFwieWVhclwiOiBEYXRlVGltZVllYXJQaWNrZXJDb21wb25lbnRcclxuICAgIH0sXHJcbiAgICBjc3NDbGFzc2VzOlxyXG4gICAge1xyXG4gICAgfVxyXG59O1xyXG5cclxuLyoqXHJcbiAqIENvbXBvbmVudCB1c2VkIGZvciBkaXNwbGF5aW5nIGFuZCBzZWxlY3RpbmcgZGF0ZSB0aW1lXHJcbiAqL1xyXG5AQ29tcG9uZW50KFxyXG57XHJcbiAgICBzZWxlY3RvcjogJ2RhdGUtdGltZS1zZWxlY3RvcicsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ3NlbGVjdG9yLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWydzZWxlY3Rvci5jb21wb25lbnQuY3NzJ10sXHJcbiAgICBhbmltYXRpb25zOiBbZW50ZXJMZWF2ZUFuaW1hdGVDaGlsZFRyaWdnZXJdLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGUgPSBhbnk+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMgLE9uRGVzdHJveVxyXG57XHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHJvdGVjdGVkIGZpZWxkcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IHZhbHVlIG9mIGRhdGV0aW1lXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdmFsdWU6IERhdGVUaW1lVmFsdWU8VERhdGU+fG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gc2VsZWN0b3IgaXMgdG91Y2hlZCBieSB1c2VyXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdG91Y2hlZDogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiB2YWx1ZSBjaGFuZ2VzXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfdmFsdWVDaGFuZ2U6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGlvbiB3aGV0aGVyIGlzIGNvbnRyb2wgZGlzYWJsZWRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5zdGFuY2Ugb2YgYWN0aXZlIGRhdGUgdGltZSBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2FjdGl2ZVNlbGVjdG9yPzogRGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBbGwgc3Vic2NyaXB0aW9ucyBmb3IgYWN0aXZlIHNlbGVjdG9yXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpcHRpb24gZm9yIGNoYW5nZXMgb2YgbWluIHZhbHVlIHNlbGVjdG9yXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfbWluVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbnxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3IgY2hhbmdlcyBvZiBtYXggdmFsdWUgc2VsZWN0b3JcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9tYXhWYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9ufG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudCBvcHRpb25zIHVzZWQgYnkgc2VsZWN0b3JcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9vcHRpb25zOiBEYXRlVGltZVNlbGVjdG9yT3B0aW9uczxEYXRlVGltZVNlbGVjdG9yPFREYXRlPj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQbGFjZWhvbGRlciB0aGF0IGlzIGRpc3BsYXllZCB3aGVuIHRoZXJlIGlzIG5vIHZhbHVlIHNlbGVjdGVkXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBwcm9wZXJ0aWVzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBjdXJyZW50IHZhbHVlIG9mIGRhdGV0aW1lXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWUoKTogRGF0ZVRpbWVWYWx1ZTxURGF0ZT58bnVsbFxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZTtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IERhdGVUaW1lVmFsdWU8VERhdGU+fG51bGwpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldFZhbHVlKHRoaXMuX3ZhbHVlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgaW5kaWNhdGlvbiB3aGV0aGVyIGlzIGN1cnJlbnQgdmFsdWUgdmFsaWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWxpZCgpOiBib29sZWFuXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVNlbGVjdG9yPy52YWxpZCA/PyB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIGZvcm1hdHRlZCB2YWx1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IGZvcm1hdHRlZFZhbHVlKCk6IHN0cmluZ3xudWxsXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2FjdGl2ZVNlbGVjdG9yPy5mb3JtYXR0ZWRWYWx1ZSA/PyBudWxsO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBmb3JtYXR0ZWRWYWx1ZSh2YWx1ZTogc3RyaW5nfG51bGwpXHJcbiAgICB7XHJcbiAgICAgICAgaWYodmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsZXQgdmFsID0gdGhpcy5fZGF0ZUFwaS5nZXRWYWx1ZSh2YWx1ZSwgdGhpcy5mb3JtYXQpO1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5fdmFsdWVQcm92aWRlci5nZXRWYWx1ZSh2YWwudmFsdWUsIHRoaXMuZm9ybWF0KTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT2NjdXJzIHdoZW4gc2VsZWN0b3IgaXMgdG91Y2hlZCBieSB1c2VyXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdG91Y2hlZCgpOiBPYnNlcnZhYmxlPHZvaWQ+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RvdWNoZWQuYXNPYnNlcnZhYmxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiB2YWx1ZSBjaGFuZ2VzXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgdmFsdWVDaGFuZ2UoKTogT2JzZXJ2YWJsZTx2b2lkPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZUNoYW5nZS5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSB0ZW1wbGF0ZSBiaW5kaW5ncyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50bHkgYWN0aXZlIGRhdGUgdGltZSBzZWxlY3RvciBjb21wb25lbnQgdHlwZVxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhY3RpdmVTZWxlY3RvckNvbXBvbmVudD86IFR5cGU8RGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGlvbiB3aGV0aGVyIGlzIHBpY2tlciB2aXNpYmxlIG9yIG5vdFxyXG4gICAgICogQGludGVybmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwaWNrZXJWaXNpYmxlOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgbWluaW1hbCBwb3NzaWJsZSB2YWx1ZSBmb3IgcGlja2VyLCB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG1pbjogVERhdGV8bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgbWF4aW1hbCBwb3NzaWJsZSB2YWx1ZSBmb3IgcGlja2VyLCB0aGF0IGNhbiBiZSBwaWNrZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG1heDogVERhdGV8bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBwcm9wZXJ0aWVzIC0gaW5wdXRzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEZvcm1hdCBvZiBkaXNwbGF5ZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBmb3JtYXQ6IHN0cmluZztcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBwbGFjZWhvbGRlciB0aGF0IGlzIGRpc3BsYXllZCB3aGVuIHRoZXJlIGlzIG5vIHZhbHVlIHNlbGVjdGVkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCk6IHN0cmluZ3x1bmRlZmluZWRcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IHBsYWNlaG9sZGVyKHZhbHVlOiBzdHJpbmd8dW5kZWZpbmVkKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gdmFsdWU7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX2FjdGl2ZVNlbGVjdG9yKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IucGxhY2Vob2xkZXIgPSB0aGlzLl9wbGFjZWhvbGRlcjtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVNlbGVjdG9yLmludmFsaWRhdGVWaXN1YWxzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ3VycmVudCBvcHRpb25zIHVzZWQgYnkgc2VsZWN0b3JcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgb3B0aW9ucygpOiBEYXRlVGltZVNlbGVjdG9yT3B0aW9uczxEYXRlVGltZVNlbGVjdG9yPFREYXRlPj5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgb3B0aW9ucyh2YWx1ZTogRGF0ZVRpbWVTZWxlY3Rvck9wdGlvbnM8RGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT4+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBleHRlbmQodHJ1ZSwgdGhpcy5fb3B0aW9ucywgdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIG1pbmltYWwgcG9zc2libGUgdmFsdWUgZm9yIHBpY2tlciwgdGhhdCBjYW4gYmUgcGlja2VkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IG1pblZhbHVlKCk6IFREYXRlfHN0cmluZ3xudWxsfERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWluO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBtaW5WYWx1ZSh2YWx1ZTogVERhdGV8c3RyaW5nfG51bGx8RGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudDxURGF0ZT4pXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fbWluVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fbWluVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICBpZihpc0JsYW5rKHZhbHVlKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubWluID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihpc1N0cmluZyh2YWx1ZSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsZXQgZGF0ZSA9IHRoaXMuX2RhdGVBcGkuZ2V0VmFsdWUodmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgaWYoZGF0ZS5pc1ZhbGlkKCkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWluID0gZGF0ZS52YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHZhbHVlIGluc3RhbmNlb2YgRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubWluID0gdmFsdWUudmFsdWVPZigpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fbWluVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSB2YWx1ZS52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5taW4gPSB2YWx1ZS52YWx1ZU9mKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvcj8uc2V0TWluVmFsdWUodGhpcy5taW4pO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubWluID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvcj8uc2V0TWluVmFsdWUodGhpcy5taW4pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIG1heGltYWwgcG9zc2libGUgdmFsdWUgZm9yIHBpY2tlciwgdGhhdCBjYW4gYmUgcGlja2VkXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgZ2V0IG1heFZhbHVlKCk6IFREYXRlfHN0cmluZ3xudWxsfERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGU+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubWF4O1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBtYXhWYWx1ZSh2YWx1ZTogVERhdGV8c3RyaW5nfG51bGx8RGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudDxURGF0ZT4pXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fbWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fbWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICBpZihpc0JsYW5rKHZhbHVlKSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubWF4ID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZihpc1N0cmluZyh2YWx1ZSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICBsZXQgZGF0ZSA9IHRoaXMuX2RhdGVBcGkuZ2V0VmFsdWUodmFsdWUpO1xyXG5cclxuICAgICAgICAgICAgaWYoZGF0ZS5pc1ZhbGlkKCkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWF4ID0gZGF0ZS52YWx1ZTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlIGlmKHZhbHVlIGluc3RhbmNlb2YgRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubWF4ID0gdmFsdWUudmFsdWVPZigpO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fbWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSB2YWx1ZS52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5tYXggPSB2YWx1ZS52YWx1ZU9mKCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvcj8uc2V0TWF4VmFsdWUodGhpcy5tYXgpO1xyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuX2NoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2VcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMubWF4ID0gdmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvcj8uc2V0TWF4VmFsdWUodGhpcy5tYXgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBjb25zdHJ1Y3RvciAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KERBVEVfVElNRV9TRUxFQ1RPUl9DT05GSUdVUkFUSU9OKSBjb25maWd1cmF0aW9uOiBEYXRlVGltZVNlbGVjdG9yT3B0aW9uczxEYXRlVGltZVNlbGVjdG9yPFREYXRlPj4sXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3ZhbHVlUHJvdmlkZXI6IERhdGVWYWx1ZVByb3ZpZGVyPFREYXRlPixcclxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgICAgICAgICAgICAgQEluamVjdChEQVRFX0FQSSkgcHJvdGVjdGVkIF9kYXRlQXBpOiBEYXRlQXBpPFREYXRlPixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoRk9STUFUX1BST1ZJREVSKSBmb3JtYXRQcm92aWRlcjogRm9ybWF0UHJvdmlkZXIpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5mb3JtYXQgPSBmb3JtYXRQcm92aWRlci5kYXRlO1xyXG4gICAgICAgIHRoaXMuX29wdGlvbnMgPSBleHRlbmQodHJ1ZSwge30sIGRlZmF1bHRDb25maWd1cmF0aW9uLCBjb25maWd1cmF0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSBpbXBsZW1lbnRhdGlvbiBvZiBPbkluaXQgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5pdGlhbGl6ZSBjb21wb25lbnRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25Jbml0KClcclxuICAgIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZVNlbGVjdG9yQ29tcG9uZW50ID0gdGhpcy5fb3B0aW9ucy5zZWxlY3RvckNvbXBvbmVudDtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIG1ldGhvZHMgLSBpbXBsZW1lbnRhdGlvbiBvZiBPbkNoYW5nZXMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2FsbGVkIHdoZW4gaW5wdXQgdmFsdWUgY2hhbmdlc1xyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWRcclxuICAgIHtcclxuICAgICAgICBpZihuYW1lb2Y8RGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudD4oJ2Zvcm1hdCcpIGluIGNoYW5nZXMgJiYgdGhpcy5fYWN0aXZlU2VsZWN0b3IpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvci5mb3JtYXQgPSB0aGlzLmZvcm1hdDtcclxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IuaW52YWxpZGF0ZVZpc3VhbHMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25EZXN0cm95ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCB3aGVuIGNvbXBvbmVudCBpcyBkZXN0cm95ZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25EZXN0cm95KClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3RvclN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgdGhpcy5fbWluVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fbWluVmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSBudWxsO1xyXG5cclxuICAgICAgICB0aGlzLl9tYXhWYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl9tYXhWYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbiA9IG51bGw7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gdGVtcGxhdGUgYmluZGluZ3MgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBjcmVhdGVkIG9yIGRlc3Ryb3llZCBkYXRlIHRpbWUgc2VsZWN0b3IgaW5zdGFuY2VcclxuICAgICAqIEBwYXJhbSBzZWxlY3RvciAtIEluc3RhbmNlIG9mIHNlbGVjdG9yIG9yIG51bGxcclxuICAgICAqIEBpbnRlcm5hbFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2VsZWN0b3JDcmVhdGVkKHNlbGVjdG9yOiBEYXRlVGltZVNlbGVjdG9yPFREYXRlPilcclxuICAgIHtcclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3RvciA9IHNlbGVjdG9yO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3RvclN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3RvclN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVNlbGVjdG9yU3Vic2NyaXB0aW9ucy5hZGQoc2VsZWN0b3IudG91Y2hlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fdG91Y2hlZC5uZXh0KCkpKTtcclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3RvclN1YnNjcmlwdGlvbnMuYWRkKHNlbGVjdG9yLnBpY2tlclJlcXVlc3Quc3Vic2NyaWJlKHZpc2libGUgPT4gdGhpcy5waWNrZXJWaXNpYmxlID0gdmlzaWJsZSkpO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3RvclN1YnNjcmlwdGlvbnMuYWRkKHNlbGVjdG9yLnZhbHVlQ2hhbmdlLnN1YnNjcmliZSgoKSA9PlxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWUgPSBzZWxlY3Rvci52YWx1ZTtcclxuICAgICAgICAgICAgdGhpcy5fdmFsdWVDaGFuZ2UubmV4dCgpO1xyXG4gICAgICAgIH0pKTtcclxuXHJcbiAgICAgICAgc2VsZWN0b3IuZm9ybWF0ID0gdGhpcy5mb3JtYXQ7XHJcbiAgICAgICAgc2VsZWN0b3Iuc2V0TWF4VmFsdWUodGhpcy5tYXgpO1xyXG4gICAgICAgIHNlbGVjdG9yLnNldE1pblZhbHVlKHRoaXMubWluKTtcclxuICAgICAgICBzZWxlY3Rvci5zZXRWYWx1ZSh0aGlzLl92YWx1ZSk7XHJcbiAgICAgICAgc2VsZWN0b3Iuc2V0RGlzYWJsZWQodGhpcy5fZGlzYWJsZWQpO1xyXG4gICAgICAgIHNlbGVjdG9yLnBsYWNlaG9sZGVyID0gdGhpcy5fcGxhY2Vob2xkZXI7XHJcblxyXG4gICAgICAgIHNlbGVjdG9yLmludmFsaWRhdGVWaXN1YWxzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBIYW5kbGVzIGNoYW5nZWQgdmFsdWUgYnkgcGlja2VyXHJcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBWYWx1ZSB0aGF0IHdhcyBjaGFuZ2VkXHJcbiAgICAgKiBAaW50ZW5yYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBpY2tlckNoYW5nZWRWYWx1ZSh2YWx1ZTogRGF0ZVRpbWVWYWx1ZTxURGF0ZT4pXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldFZhbHVlKHZhbHVlKTtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG4gICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLm5leHQoKTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5fb3B0aW9ucy5waWNrZXJDbG9zZU9uVmFsdWVTZWxlY3QpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnBpY2tlclZpc2libGUgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldHMgYXMgJ2NvbnRyb2wnIGRpc2FibGVkXHJcbiAgICAgKiBAcGFyYW0gZGlzYWJsZWQgLSBJbmRpY2F0aW9uIHdoZXRoZXIgc2V0cyB2YWx1ZSBhcyBkaXNhYmxlZCwgaWYgb21pdHRlZCBpdCBpcyBzYW1lIGFzIGRpc2FibGVkIHNldCB0byB0cnVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZXREaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbiA9IHRydWUpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fZGlzYWJsZWQgPSBkaXNhYmxlZDtcclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvcj8uc2V0RGlzYWJsZWQoZGlzYWJsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBzaW1wbGUgdmFsdWUgb2Ygc2VsZWN0b3JcclxuICAgICAqL1xyXG4gICAgcHVibGljIHZhbHVlT2YoKTogVERhdGV8bnVsbFxyXG4gICAge1xyXG4gICAgICAgIGlmKCF0aGlzLl92YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlLmZyb207XHJcbiAgICB9XHJcbn0iXX0=
|
|
653
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3NlbGVjdG9yL2NvbXBvbmVudHMvc2VsZWN0b3Ivc2VsZWN0b3IuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBcUQsaUJBQWlCLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEssT0FBTyxFQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBYSxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3ZELE9BQU8sRUFBQyxRQUFRLEVBQUUsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDL0QsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFDLDRCQUE0QixFQUFDLE1BQU0sOERBQThELENBQUM7QUFDMUcsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sNERBQTRELENBQUM7QUFFdkcsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sNkNBQTZDLENBQUM7QUFFOUUsT0FBTyxFQUFDLGdDQUFnQyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDbkUsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDeEYsT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0saUNBQWlDLENBQUM7Ozs7OztJQU94RSxvQkFBb0IsR0FDMUI7SUFDSSxpQkFBaUIsRUFBRSw4QkFBOEI7SUFDakQsd0JBQXdCLEVBQUUsS0FBSztJQUMvQixjQUFjLEVBQUUsS0FBSztJQUNyQixhQUFhLEVBQUUsS0FBSztJQUNwQix1QkFBdUIsRUFDdkI7UUFDSSxL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QTRDOzs7OztJQUM1Qyw2Q0FBb0QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIElucHV0LCBJbmplY3QsIE9wdGlvbmFsLCBUeXBlLCBPbkluaXQsIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBTaW1wbGVDaGFuZ2VzLCBDaGFuZ2VEZXRlY3RvclJlZn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7ZXh0ZW5kLCBpc0JsYW5rLCBpc1N0cmluZywgbmFtZW9mfSBmcm9tICdAanNjcnB0L2NvbW1vbic7XHJcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7RGF0ZVRpbWVWYWx1ZX0gZnJvbSAnLi4vLi4vLi4vbWlzYy9kYXRldGltZS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQge0RBVEVfQVBJLCBGT1JNQVRfUFJPVklERVJ9IGZyb20gJy4uLy4uLy4uL21pc2MvdG9rZW5zJztcclxuaW1wb3J0IHtEYXRlVGltZURheVBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vcGlja2VyL2NvbXBvbmVudHMvZGF5UGlja2VyL2RheVBpY2tlci5jb21wb25lbnQnO1xyXG5pbXBvcnQge0RhdGVUaW1lTW9udGhQaWNrZXJDb21wb25lbnR9IGZyb20gJy4uLy4uLy4uL3BpY2tlci9jb21wb25lbnRzL21vbnRoUGlja2VyL21vbnRoUGlja2VyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7RGF0ZVRpbWVZZWFyUGlja2VyQ29tcG9uZW50fSBmcm9tICcuLi8uLi8uLi9waWNrZXIvY29tcG9uZW50cy95ZWFyUGlja2VyL3llYXJQaWNrZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHtEYXRlQXBpLCBGb3JtYXRQcm92aWRlcn0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMnO1xyXG5pbXBvcnQge0RhdGVWYWx1ZVByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9kYXRlVmFsdWVQcm92aWRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHtEYXRlVGltZVNlbGVjdG9yLCBEYXRlVGltZVNlbGVjdG9yT3B0aW9uc30gZnJvbSAnLi4vLi4vbWlzYy9kYXRldGltZVNlbGVjdG9yLmludGVyZmFjZSc7XHJcbmltcG9ydCB7REFURV9USU1FX1NFTEVDVE9SX0NPTkZJR1VSQVRJT059IGZyb20gJy4uLy4uL21pc2MvdG9rZW5zJztcclxuaW1wb3J0IHtJbnB1dERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnR9IGZyb20gJy4uL2lucHV0RGF0ZVRpbWUvaW5wdXREYXRlVGltZS5jb21wb25lbnQnO1xyXG5pbXBvcnQge2VudGVyTGVhdmVBbmltYXRlQ2hpbGRUcmlnZ2VyfSBmcm9tICcuL3NlbGVjdG9yLmNvbXBvbmVudC5hbmltYXRpb25zJztcclxuXHJcbi8vVE9ETyAtIGFkZCBzdXBwb3J0IGZvciBib2R5IGFic29sdXRlIHBpY2tlclxyXG5cclxuLyoqXHJcbiAqIERlZmF1bHQgY29uZmlndXJhdGlvbiBmb3Igc2VsZWN0b3JcclxuICovXHJcbmNvbnN0IGRlZmF1bHRDb25maWd1cmF0aW9uOiBEYXRlVGltZVNlbGVjdG9yT3B0aW9uczxEYXRlVGltZVNlbGVjdG9yPiA9XHJcbntcclxuICAgIHNlbGVjdG9yQ29tcG9uZW50OiBJbnB1dERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQsXHJcbiAgICBwaWNrZXJDbG9zZU9uVmFsdWVTZWxlY3Q6IGZhbHNlLFxyXG4gICAgcGlja2VyRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgZGVmYXVsdFBlcmlvZDogJ2RheScsXHJcbiAgICBwaWNrZXJQZXJpb2RzRGVmaW5pdGlvbjpcclxuICAgIHtcclxuICAgICAgICBcImRheVwiOiBEYXRlVGltZURheVBpY2tlckNvbXBvbmVudCxcclxuICAgICAgICBcIm1vbnRoXCI6IERhdGVUaW1lTW9udGhQaWNrZXJDb21wb25lbnQsXHJcbiAgICAgICAgXCJ5ZWFyXCI6IERhdGVUaW1lWWVhclBpY2tlckNvbXBvbmVudFxyXG4gICAgfSxcclxuICAgIGNzc0NsYXNzZXM6XHJcbiAgICB7XHJcbiAgICB9XHJcbn07XHJcblxyXG4vKipcclxuICogQ29tcG9uZW50IHVzZWQgZm9yIGRpc3BsYXlpbmcgYW5kIHNlbGVjdGluZyBkYXRlIHRpbWVcclxuICovXHJcbkBDb21wb25lbnQoXHJcbntcclxuICAgIHNlbGVjdG9yOiAnZGF0ZS10aW1lLXNlbGVjdG9yJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnc2VsZWN0b3IuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJ3NlbGVjdG9yLmNvbXBvbmVudC5jc3MnXSxcclxuICAgIGFuaW1hdGlvbnM6IFtlbnRlckxlYXZlQW5pbWF0ZUNoaWxkVHJpZ2dlcl0sXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVTZWxlY3RvckNvbXBvbmVudDxURGF0ZSA9IGFueT4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyAsT25EZXN0cm95XHJcbntcclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwcm90ZWN0ZWQgZmllbGRzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnQgdmFsdWUgb2YgZGF0ZXRpbWVcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZTogRGF0ZVRpbWVWYWx1ZTxURGF0ZT58bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiBzZWxlY3RvciBpcyB0b3VjaGVkIGJ5IHVzZXJcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF90b3VjaGVkOiBTdWJqZWN0PHZvaWQ+ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHZhbHVlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF92YWx1ZUNoYW5nZTogU3ViamVjdDx2b2lkPiA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0aW9uIHdoZXRoZXIgaXMgY29udHJvbCBkaXNhYmxlZFxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbnN0YW5jZSBvZiBhY3RpdmUgZGF0ZSB0aW1lIHNlbGVjdG9yXHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBfYWN0aXZlU2VsZWN0b3I/OiBEYXRlVGltZVNlbGVjdG9yPFREYXRlPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEFsbCBzdWJzY3JpcHRpb25zIGZvciBhY3RpdmUgc2VsZWN0b3JcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9hY3RpdmVTZWxlY3RvclN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbiA9IG5ldyBTdWJzY3JpcHRpb24oKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFN1YnNjcmlwdGlvbiBmb3IgY2hhbmdlcyBvZiBtaW4gdmFsdWUgc2VsZWN0b3JcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9taW5WYWx1ZUNoYW5nZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9ufG51bGwgPSBudWxsO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU3Vic2NyaXB0aW9uIGZvciBjaGFuZ2VzIG9mIG1heCB2YWx1ZSBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb258bnVsbCA9IG51bGw7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IG9wdGlvbnMgdXNlZCBieSBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgX29wdGlvbnM6IERhdGVUaW1lU2VsZWN0b3JPcHRpb25zPERhdGVUaW1lU2VsZWN0b3I8VERhdGU+PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBsYWNlaG9sZGVyIHRoYXQgaXMgZGlzcGxheWVkIHdoZW4gdGhlcmUgaXMgbm8gdmFsdWUgc2VsZWN0ZWRcclxuICAgICAqL1xyXG4gICAgcHJvdGVjdGVkIF9wbGFjZWhvbGRlcj86IHN0cmluZztcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIGN1cnJlbnQgdmFsdWUgb2YgZGF0ZXRpbWVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZSgpOiBEYXRlVGltZVZhbHVlPFREYXRlPnxudWxsXHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogRGF0ZVRpbWVWYWx1ZTxURGF0ZT58bnVsbClcclxuICAgIHtcclxuICAgICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvcj8uc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBpbmRpY2F0aW9uIHdoZXRoZXIgaXMgY3VycmVudCB2YWx1ZSB2YWxpZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0IHZhbGlkKCk6IGJvb2xlYW5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnZhbGlkID8/IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIG9yIHNldHMgZm9ybWF0dGVkIHZhbHVlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXQgZm9ybWF0dGVkVmFsdWUoKTogc3RyaW5nfG51bGxcclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlU2VsZWN0b3I/LmZvcm1hdHRlZFZhbHVlID8/IG51bGw7XHJcbiAgICB9XHJcbiAgICBwdWJsaWMgc2V0IGZvcm1hdHRlZFZhbHVlKHZhbHVlOiBzdHJpbmd8bnVsbClcclxuICAgIHtcclxuICAgICAgICBpZih2YWx1ZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIGxldCB2YWwgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlLCB0aGlzLmZvcm1hdCk7XHJcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLl92YWx1ZVByb3ZpZGVyLmdldFZhbHVlKHZhbC52YWx1ZSwgdGhpcy5mb3JtYXQpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPY2N1cnMgd2hlbiBzZWxlY3RvciBpcyB0b3VjaGVkIGJ5IHVzZXJcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB0b3VjaGVkKCk6IE9ic2VydmFibGU8dm9pZD5cclxuICAgIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdG91Y2hlZC5hc09ic2VydmFibGUoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE9jY3VycyB3aGVuIHZhbHVlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCB2YWx1ZUNoYW5nZSgpOiBPYnNlcnZhYmxlPHZvaWQ+XHJcbiAgICB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlQ2hhbmdlLmFzT2JzZXJ2YWJsZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgcHJvcGVydGllcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEN1cnJlbnRseSBhY3RpdmUgZGF0ZSB0aW1lIHNlbGVjdG9yIGNvbXBvbmVudCB0eXBlXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFjdGl2ZVNlbGVjdG9yQ29tcG9uZW50PzogVHlwZTxEYXRlVGltZVNlbGVjdG9yPFREYXRlPj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2F0aW9uIHdoZXRoZXIgaXMgcGlja2VyIHZpc2libGUgb3Igbm90XHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBpY2tlclZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtaW5pbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWluOiBURGF0ZXxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbWF4OiBURGF0ZXxudWxsID0gbnVsbDtcclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgcHVibGljIHByb3BlcnRpZXMgLSBpbnB1dHMgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRm9ybWF0IG9mIGRpc3BsYXllZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGZvcm1hdDogc3RyaW5nO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogR2V0cyBvciBzZXRzIHBsYWNlaG9sZGVyIHRoYXQgaXMgZGlzcGxheWVkIHdoZW4gdGhlcmUgaXMgbm8gdmFsdWUgc2VsZWN0ZWRcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgcGxhY2Vob2xkZXIoKTogc3RyaW5nfHVuZGVmaW5lZFxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wbGFjZWhvbGRlcjtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgcGxhY2Vob2xkZXIodmFsdWU6IHN0cmluZ3x1bmRlZmluZWQpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fcGxhY2Vob2xkZXIgPSB2YWx1ZTtcclxuXHJcbiAgICAgICAgaWYodGhpcy5fYWN0aXZlU2VsZWN0b3IpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3Rvci5wbGFjZWhvbGRlciA9IHRoaXMuX3BsYWNlaG9sZGVyO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IuaW52YWxpZGF0ZVZpc3VhbHMoKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDdXJyZW50IG9wdGlvbnMgdXNlZCBieSBzZWxlY3RvclxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBvcHRpb25zKCk6IERhdGVUaW1lU2VsZWN0b3JPcHRpb25zPERhdGVUaW1lU2VsZWN0b3I8VERhdGU+PlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCBvcHRpb25zKHZhbHVlOiBEYXRlVGltZVNlbGVjdG9yT3B0aW9uczxEYXRlVGltZVNlbGVjdG9yPFREYXRlPj4pXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IGV4dGVuZCh0cnVlLCB0aGlzLl9vcHRpb25zLCB2YWx1ZSk7XHJcbiAgICAgICAgLy8gd2l0aG91dCBkZWVwLWNvcHkgZm9yIHRoaXMgYXR0cmlidXRlXHJcbiAgICAgICAgaWYgKHZhbHVlPy5waWNrZXJQZXJpb2RzRGVmaW5pdGlvbilcclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX29wdGlvbnMucGlja2VyUGVyaW9kc0RlZmluaXRpb24gPSB2YWx1ZS5waWNrZXJQZXJpb2RzRGVmaW5pdGlvblxyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtaW5pbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtaW5WYWx1ZSgpOiBURGF0ZXxzdHJpbmd8bnVsbHxEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50PFREYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1pbjtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgbWluVmFsdWUodmFsdWU6IFREYXRlfHN0cmluZ3xudWxsfERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYoaXNCbGFuayh2YWx1ZSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoaXNTdHJpbmcodmFsdWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IGRhdGUgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIGlmKGRhdGUuaXNWYWxpZCgpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1pbiA9IGRhdGUudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IHZhbHVlLnZhbHVlT2YoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdmFsdWUudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWluID0gdmFsdWUudmFsdWVPZigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1pblZhbHVlKHRoaXMubWluKTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1pbiA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1pblZhbHVlKHRoaXMubWluKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgb3Igc2V0cyBtYXhpbWFsIHBvc3NpYmxlIHZhbHVlIGZvciBwaWNrZXIsIHRoYXQgY2FuIGJlIHBpY2tlZFxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBtYXhWYWx1ZSgpOiBURGF0ZXxzdHJpbmd8bnVsbHxEYXRlVGltZVNlbGVjdG9yQ29tcG9uZW50PFREYXRlPlxyXG4gICAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm1heDtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgbWF4VmFsdWUodmFsdWU6IFREYXRlfHN0cmluZ3xudWxsfERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgaWYoaXNCbGFuayh2YWx1ZSkpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heCA9IG51bGw7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYoaXNTdHJpbmcodmFsdWUpKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgbGV0IGRhdGUgPSB0aGlzLl9kYXRlQXBpLmdldFZhbHVlKHZhbHVlKTtcclxuXHJcbiAgICAgICAgICAgIGlmKGRhdGUuaXNWYWxpZCgpKVxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm1heCA9IGRhdGUudmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSBpZih2YWx1ZSBpbnN0YW5jZW9mIERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heCA9IHZhbHVlLnZhbHVlT2YoKTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMuX21heFZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gdmFsdWUudmFsdWVDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+XHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRoaXMubWF4ID0gdmFsdWUudmFsdWVPZigpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1heFZhbHVlKHRoaXMubWF4KTtcclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICBlbHNlXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICB0aGlzLm1heCA9IHZhbHVlO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldE1heFZhbHVlKHRoaXMubWF4KTtcclxuICAgIH1cclxuXHJcbiAgICAvLyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMgY29uc3RydWN0b3IgIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjI1xyXG4gICAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChEQVRFX1RJTUVfU0VMRUNUT1JfQ09ORklHVVJBVElPTikgY29uZmlndXJhdGlvbjogRGF0ZVRpbWVTZWxlY3Rvck9wdGlvbnM8RGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT4+LFxyXG4gICAgICAgICAgICAgICAgcHJvdGVjdGVkIF92YWx1ZVByb3ZpZGVyOiBEYXRlVmFsdWVQcm92aWRlcjxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBwcm90ZWN0ZWQgX2NoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgICAgICAgICAgICAgIEBJbmplY3QoREFURV9BUEkpIHByb3RlY3RlZCBfZGF0ZUFwaTogRGF0ZUFwaTxURGF0ZT4sXHJcbiAgICAgICAgICAgICAgICBASW5qZWN0KEZPUk1BVF9QUk9WSURFUikgZm9ybWF0UHJvdmlkZXI6IEZvcm1hdFByb3ZpZGVyKVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuZm9ybWF0ID0gZm9ybWF0UHJvdmlkZXIuZGF0ZTtcclxuICAgICAgICB0aGlzLl9vcHRpb25zID0gZXh0ZW5kKHRydWUsIHt9LCBkZWZhdWx0Q29uZmlndXJhdGlvbiwgY29uZmlndXJhdGlvbik7XHJcbiAgICAgICAgLy8gd2l0aG91dCBkZWVwLWNvcHkgZm9yIHRoaXMgYXR0cmlidXRlXHJcbiAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24/LnBpY2tlclBlcmlvZHNEZWZpbml0aW9uKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fb3B0aW9ucy5waWNrZXJQZXJpb2RzRGVmaW5pdGlvbiA9IGNvbmZpZ3VyYXRpb24ucGlja2VyUGVyaW9kc0RlZmluaXRpb25cclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25Jbml0ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluaXRpYWxpemUgY29tcG9uZW50XHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5hY3RpdmVTZWxlY3RvckNvbXBvbmVudCA9IHRoaXMuX29wdGlvbnMuc2VsZWN0b3JDb21wb25lbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgLy8jIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIHB1YmxpYyBtZXRob2RzIC0gaW1wbGVtZW50YXRpb24gb2YgT25DaGFuZ2VzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhbGxlZCB3aGVuIGlucHV0IHZhbHVlIGNoYW5nZXNcclxuICAgICAqL1xyXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkXHJcbiAgICB7XHJcbiAgICAgICAgaWYobmFtZW9mPERhdGVUaW1lU2VsZWN0b3JDb21wb25lbnQ+KCdmb3JtYXQnKSBpbiBjaGFuZ2VzICYmIHRoaXMuX2FjdGl2ZVNlbGVjdG9yKVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IuZm9ybWF0ID0gdGhpcy5mb3JtYXQ7XHJcbiAgICAgICAgICAgIHRoaXMuX2FjdGl2ZVNlbGVjdG9yLmludmFsaWRhdGVWaXN1YWxzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIGltcGxlbWVudGF0aW9uIG9mIE9uRGVzdHJveSAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWxsZWQgd2hlbiBjb21wb25lbnQgaXMgZGVzdHJveWVkXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgIHRoaXMuX21pblZhbHVlQ2hhbmdlU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAgICAgdGhpcy5fbWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fbWF4VmFsdWVDaGFuZ2VTdWJzY3JpcHRpb24gPSBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAtIHRlbXBsYXRlIGJpbmRpbmdzICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyNcclxuXHJcbiAgICAvKipcclxuICAgICAqIEhhbmRsZXMgY3JlYXRlZCBvciBkZXN0cm95ZWQgZGF0ZSB0aW1lIHNlbGVjdG9yIGluc3RhbmNlXHJcbiAgICAgKiBAcGFyYW0gc2VsZWN0b3IgLSBJbnN0YW5jZSBvZiBzZWxlY3RvciBvciBudWxsXHJcbiAgICAgKiBAaW50ZXJuYWxcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNlbGVjdG9yQ3JlYXRlZChzZWxlY3RvcjogRGF0ZVRpbWVTZWxlY3RvcjxURGF0ZT4pXHJcbiAgICB7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3IgPSBzZWxlY3RvcjtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG5cclxuICAgICAgICB0aGlzLl9hY3RpdmVTZWxlY3RvclN1YnNjcmlwdGlvbnMuYWRkKHNlbGVjdG9yLnRvdWNoZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3RvdWNoZWQubmV4dCgpKSk7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLmFkZChzZWxlY3Rvci5waWNrZXJSZXF1ZXN0LnN1YnNjcmliZSh2aXNpYmxlID0+IHRoaXMucGlja2VyVmlzaWJsZSA9IHZpc2libGUpKTtcclxuXHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3JTdWJzY3JpcHRpb25zLmFkZChzZWxlY3Rvci52YWx1ZUNoYW5nZS5zdWJzY3JpYmUoKCkgPT5cclxuICAgICAgICB7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlID0gc2VsZWN0b3IudmFsdWU7XHJcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlLm5leHQoKTtcclxuICAgICAgICB9KSk7XHJcblxyXG4gICAgICAgIHNlbGVjdG9yLmZvcm1hdCA9IHRoaXMuZm9ybWF0O1xyXG4gICAgICAgIHNlbGVjdG9yLnNldE1heFZhbHVlKHRoaXMubWF4KTtcclxuICAgICAgICBzZWxlY3Rvci5zZXRNaW5WYWx1ZSh0aGlzLm1pbik7XHJcbiAgICAgICAgc2VsZWN0b3Iuc2V0VmFsdWUodGhpcy5fdmFsdWUpO1xyXG4gICAgICAgIHNlbGVjdG9yLnNldERpc2FibGVkKHRoaXMuX2Rpc2FibGVkKTtcclxuICAgICAgICBzZWxlY3Rvci5wbGFjZWhvbGRlciA9IHRoaXMuX3BsYWNlaG9sZGVyO1xyXG5cclxuICAgICAgICBzZWxlY3Rvci5pbnZhbGlkYXRlVmlzdWFscygpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSGFuZGxlcyBjaGFuZ2VkIHZhbHVlIGJ5IHBpY2tlclxyXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVmFsdWUgdGhhdCB3YXMgY2hhbmdlZFxyXG4gICAgICogQGludGVucmFsXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwaWNrZXJDaGFuZ2VkVmFsdWUodmFsdWU6IERhdGVUaW1lVmFsdWU8VERhdGU+KVxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVNlbGVjdG9yPy5zZXRWYWx1ZSh2YWx1ZSk7XHJcbiAgICAgICAgdGhpcy5fdmFsdWUgPSB2YWx1ZTtcclxuICAgICAgICB0aGlzLl92YWx1ZUNoYW5nZS5uZXh0KCk7XHJcblxyXG4gICAgICAgIGlmKHRoaXMuX29wdGlvbnMucGlja2VyQ2xvc2VPblZhbHVlU2VsZWN0KVxyXG4gICAgICAgIHtcclxuICAgICAgICAgICAgdGhpcy5waWNrZXJWaXNpYmxlID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8vIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyBwdWJsaWMgbWV0aG9kcyAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjXHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXRzIGFzICdjb250cm9sJyBkaXNhYmxlZFxyXG4gICAgICogQHBhcmFtIGRpc2FibGVkIC0gSW5kaWNhdGlvbiB3aGV0aGVyIHNldHMgdmFsdWUgYXMgZGlzYWJsZWQsIGlmIG9taXR0ZWQgaXQgaXMgc2FtZSBhcyBkaXNhYmxlZCBzZXQgdG8gdHJ1ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0RGlzYWJsZWQoZGlzYWJsZWQ6IGJvb2xlYW4gPSB0cnVlKTogdm9pZFxyXG4gICAge1xyXG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gZGlzYWJsZWQ7XHJcbiAgICAgICAgdGhpcy5fYWN0aXZlU2VsZWN0b3I/LnNldERpc2FibGVkKGRpc2FibGVkKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEdldHMgc2ltcGxlIHZhbHVlIG9mIHNlbGVjdG9yXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB2YWx1ZU9mKCk6IFREYXRlfG51bGxcclxuICAgIHtcclxuICAgICAgICBpZighdGhpcy5fdmFsdWUpXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLl92YWx1ZS5mcm9tO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
|