barsa-calendar 2.0.120 → 2.0.121

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.
@@ -203,7 +203,7 @@ export class DateTimePickerComponent extends BaseComponent {
203
203
  }
204
204
  const tdate = new Date();
205
205
  const date = moment.toDate();
206
- if (date.getFullYear() < tdate.getFullYear()) {
206
+ if (date.getFullYear() < tdate.getFullYear() && !this.showDate) {
207
207
  date.setFullYear(tdate.getFullYear());
208
208
  date.setMonth(tdate.getMonth());
209
209
  date.setDate(tdate.getDate());
@@ -454,4 +454,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.5", ngImpor
454
454
  type: ViewChild,
455
455
  args: [InputGroupComponent, { static: true }]
456
456
  }] } });
457
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1jYWxlbmRhci9zcmMvbGliL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1jYWxlbmRhci9zcmMvbGliL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRCxPQUFPLEVBQ0gsYUFBYSxFQUViLFdBQVcsRUFDWCxjQUFjLEVBR2QsUUFBUSxFQUdYLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFDSCxlQUFlLEVBRWYsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsYUFBYSxFQUNoQixNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHL0IsTUFBTSxPQUFPLGNBQWM7SUFvQ3ZCLFlBQW9CLGFBQStCO1FBQS9CLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQW5DbkQsaURBQWlEO1FBQ2pELHVCQUFrQixHQUFHLGdCQUFnQixDQUFDO1FBRXRDLG1DQUFtQztRQUNuQyxlQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkQsaURBQWlEO1FBQ2pELHVCQUFrQixHQUFHLGdCQUFn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LFNBQVM7dUJBQUMsbUJBQW1CLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdGFibGUsXG4gICAgSW5wdXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIE9uSW5pdCxcbiAgICBPdXRwdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge1xuICAgIEJhc2VDb21wb25lbnQsXG4gICAgQmJiVHJhbnNsYXRlUGlwZSxcbiAgICBEYXRlU2VydmljZSxcbiAgICBnZXREYXRlU2VydmljZSxcbiAgICBMb2dTZXJ2aWNlLFxuICAgIFBvcnRhbFNlcnZpY2UsXG4gICAgQmFyc2FBcGksXG4gICAgRGF0ZVRpbWVUb0NhcHRpb25QaXBlLFxuICAgIEFiYnJldmF0aW9uRGV2aWNlU2l6ZVxufSBmcm9tICdiYXJzYS1ub3Zpbi1yYXktY29yZSc7XG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoSW5mbywgRGF5IH0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7IENhbGVuZGFyU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NhbGVuZGFyLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBEYXRldGltZUFkYXB0ZXIsXG4gICAgRGlhbG9nU2VydmljZSxcbiAgICBGZERhdGUsXG4gICAgRmREYXRldGltZUFkYXB0ZXIsXG4gICAgSW5wdXRHcm91cENvbXBvbmVudCxcbiAgICBUaW1lQ29tcG9uZW50XG59IGZyb20gJ0BmdW5kYW1lbnRhbC1uZ3gvY29yZSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBUaW1lQ29uZmlnSTE4biB7XG4gICAgLyoqIEFyaWEgbGFiZWwgZm9yIHRoZSAnaW5jcmVhc2UgaG91cnMnIGJ1dHRvbiAqL1xuICAgIGluY3JlYXNlSG91cnNMYWJlbCA9ICdJbmNyZWFzZSBob3Vycyc7XG5cbiAgICAvKiogbGFiZWwgZm9yIHRoZSAnaG91cnMnIGNvbHVtbiAqL1xuICAgIGhvdXJzTGFiZWwgPSB0aGlzLl9iYmJUcmFuc2xhdGUudHJhbnNmb3JtKCdIb3VycycpO1xuXG4gICAgLyoqIEFyaWEgbGFiZWwgZm9yIHRoZSAnZGVjcmVhc2UgaG91cnMnIGJ1dHRvbiAqL1xuICAgIGRlY3JlYXNlSG91cnNMYWJlbCA9ICdEZWNyZWFzZSBob3Vycyc7XG5cbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlICdpbmNyZWFzZSBtaW51dGVzJyBidXR0b24gKi9cbiAgICBpbmNyZWFzZU1pbnV0ZXNMYWJlbCA9ICdJbmNyZWFzZSBtaW51dGVzJztcblxuICAgIC8qKiBsYWJlbCBmb3IgdGhlICdtaW51dGVzJyBjb2x1bW4gKi9cbiAgICBtaW51dGVzTGFiZWwgPSB0aGlzLl9iYmJUcmFuc2xhdGUudHJhbnNmb3JtKCdNaW51dGVzJyk7XG5cbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlICdkZWNyZWFzZSBtaW51dGVzJyBidXR0b24gKi9cbiAgICBkZWNyZWFzZU1pbnV0ZXNMYWJlbCA9ICdEZWNyZWFzZSBtaW51dGVzJztcblxuICAgIC8qKiBBcmlhIGxhYmVsIGZvciB0aGUgJ2luY3JlYXNlIHNlY29uZHMnIGJ1dHRvbiAqL1xuICAgIGluY3JlYXNlU2Vjb25kc0xhYmVsID0gJ0luY3JlYXNlIHNlY29uZHMnO1xuXG4gICAgLyoqIGxhYmVsIGZvciB0aGUgJ3NlY29uZHMnIGNvbHVtbiAqL1xuICAgIHNlY29uZHNMYWJlbCA9IHRoaXMuX2JiYlRyYW5zbGF0ZS50cmFuc2Zvcm0oJ1NlYycpO1xuXG4gICAgLyoqIEFyaWEgbGFiZWwgZm9yIHRoZSAnZGVjcmVhc2Ugc2Vjb25kcycgYnV0dG9uICovXG4gICAgZGVjcmVhc2VTZWNvbmRzTGFiZWwgPSAnRGVjcmVhc2Ugc2Vjb25kcyc7XG5cbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlICdpbmNyZWFzZSBwZXJpb2QnIGJ1dHRvbiAqL1xuICAgIGluY3JlYXNlUGVyaW9kTGFiZWwgPSAnSW5jcmVhc2UgcGVyaW9kJztcblxuICAgIC8qKiBsYWJlbCBmb3IgdGhlICdwZXJpb2QnIGNvbHVtbiAqL1xuICAgIHBlcmlvZExhYmVsID0gJ1BlcmlvZCc7XG5cbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlICdkZWNyZWFzZSBwZXJpb2QnIGJ1dHRvbiAqL1xuICAgIGRlY3JlYXNlUGVyaW9kTGFiZWwgPSAnRGVjcmVhc2UgcGVyaW9kJztcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9iYmJUcmFuc2xhdGU6IEJiYlRyYW5zbGF0ZVBpcGUpIHt9XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYmMtZGF0ZS10aW1lLXBpY2tlcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtdGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGUtdGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogRGF0ZXRpbWVBZGFwdGVyLFxuICAgICAgICAgICAgdXNlQ2xhc3M6IEZkRGF0ZXRpbWVBZGFwdGVyXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IERhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgdXNlRmFjdG9yeTogZ2V0RGF0ZVNlcnZpY2VcbiAgICAgICAgfSxcbiAgICAgICAgQ2FsZW5kYXJTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlVGltZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQElucHV0KCkgcGxhY2Vob2xkZXI6IHN0cmluZztcbiAgICBASW5wdXQoKSBwcmltYXJ5Q2FsZW5kYXJUeXBlOiAnR3JlZ29yaWFuJyB8ICdQZXJzaWFuJyB8IHN0cmluZztcbiAgICBASW5wdXQoKSBmb3JtYXRQYXR0ZXJuOiBzdHJpbmc7XG4gICAgQElucHV0KCkgdmFsdWU6IERhdGUgfCB1bmRlZmluZWQ7XG4gICAgQElucHV0KCkgdGltZVZhbHVlOiBGZERhdGU7XG4gICAgQElucHV0KCkgc3RhcnRSYW5nZURhdGU6IERhdGU7XG4gICAgQElucHV0KCkgZW5kUmFuZ2VEYXRlOiBEYXRlO1xuICAgIEBJbnB1dCgpIGlzUmFuZ2VQaWNrZXI6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2hvd1RpbWU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgc2hvd0RhdGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcnRsID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBkZXZpY2VTaXplOiBBYmJyZXZhdGlvbkRldmljZVNpemU7XG4gICAgQElucHV0KCkgaXNNb2JpbGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcmVhZG9ubHk6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgYnV0dG9uTWVudU1vZGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgaW5saW5lTW9kZTogYm9vbGVhbjtcbiAgICBASW5wdXQoKSBkYXRlcmFuZ2VNb2RlOiBib29sZWFuO1xuICAgIEBPdXRwdXQoKSByYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8eyBzdGFydERheTogRGF0ZTsgZW5kRGF5OiBEYXRlIH0+KCk7XG4gICAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuICAgIEBWaWV3Q2hpbGQoVGltZUNvbXBvbmVudCkgdGltZUNvbXBvbmVudDogVGltZUNvbXBvbmVudDxGZERhdGU+O1xuICAgIEBWaWV3Q2hpbGQoSW5wdXRHcm91cENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRHcm91cENvbXBvbmVudDogSW5wdXRHcm91cENvbXBvbmVudDtcbiAgICB2YWx1ZUNhcHRpb24gPSAnJztcbiAgICBlbmRTZWxlY3RlZERheTogRGF5IHwgbnVsbDtcbiAgICBzdGFydFNlbGVjdGVkRGF5OiBEYXkgfCBudWxsO1xuICAgIHZhbHVlRGF5OiBEYXkgfCBudWxsO1xuXG4gICAgc2VsZWN0aW9uTW9kZTogJ2RheScgfCAnbW9udGgnIHwgJ3llYXInID0gJ2RheSc7XG4gICAgdG9kYXlJbmRleCA9IC0xO1xuICAgIHdpZHRoJDogT2JzZXJ2YWJsZTxudW1iZXI+O1xuICAgIGhlaWdodDogbnVtYmVyO1xuICAgIHNlbGVjdGVkTW9udGgkOiBPYnNlcnZhYmxlPENhbGVuZGFyTW9udGhJbmZvPjtcbiAgICBydGwkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHRvZGF5OiBEYXRlO1xuICAgIHdlZWtEYXlzTWluOiBzdHJpbmdbXTtcbiAgICB3ZWVrRGF5czogc3RyaW5nW107XG5cbiAgICBpc1ZhbGlkID0gdHJ1ZTtcbiAgICBjdWx0dXJlOiBzdHJpbmc7XG4gICAgbW9udGhzOiBzdHJpbmdbXSA9IFtdO1xuICAgIHllYXJzOiBzdHJpbmdbXTtcbiAgICB0ZW1wRm9ybW1hdGVkRGF0ZSA9ICcnO1xuICAgIHByaXZhdGUgX2NhbGVuZGFyU2VydmljZTogQ2FsZW5kYXJTZXJ2aWNlO1xuICAgIHByaXZhdGUgX2xhc3RWYWx1ZTogRGF0ZSB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9kYXRldGltZUFkYXB0ZXI6IERhdGV0aW1lQWRhcHRlcjxGZERhdGU+LFxuICAgICAgICBwcml2YXRlIF9kYXRlVGltZVRvQ2FwdGlvbjogRGF0ZVRpbWVUb0NhcHRpb25QaXBlLFxuICAgICAgICBwcml2YXRlIF9sb2dTZXJ2aWNlOiBMb2dTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIF9kaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICBfcG9ydGFsU2VydmljZTogUG9ydGFsU2VydmljZVxuICAgICkge1xuICAgICAgICBzdXBlcigpO1xuXG4gICAgICAgIHRoaXMucnRsJCA9IF9wb3J0YWxTZXJ2aWNlLnJ0bCQ7XG4gICAgICAgIHRoaXMud2lkdGgkID0gX3BvcnRhbFNlcnZpY2UuZGV2aWNlU2l6ZSQucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICBtYXAoKGRldmljZVNpemUpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuc2hvd0RhdGUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI2MDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgc3dpdGNoIChkZXZpY2VTaXplKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2wnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICd4bCc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNTYwO1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdzJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAzMjA7XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNTIwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5oZWlnaHQgPSA0MjA7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGxldCBjdWx0dXJlID0gJ2VuLVVTJztcbiAgICAgICAgc3dpdGNoICh0aGlzLnByaW1hcnlDYWxlbmRhclR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ0hpanJpU2hhbXNpJzpcbiAgICAgICAgICAgICAgICBjdWx0dXJlID0gJ2ZhLUlSJztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmN1bHR1cmUgPSBjdWx0dXJlO1xuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2UgPSBuZXcgQ2FsZW5kYXJTZXJ2aWNlKHRoaXMuX2xvZ1NlcnZpY2UsIGN1bHR1cmUpO1xuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2Uuc2V0TW9kZSgnbW9udGgnKTtcbiAgICAgICAgdGhpcy53ZWVrRGF5c01pbiA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS53ZWVrRGF5c01pbigpO1xuICAgICAgICB0aGlzLndlZWtEYXlzID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLndlZWtEYXlzKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRNb250aCQgPSB0aGlzLl9jYWxlbmRhclNlcnZpY2Uuc2VsZWN0ZWQkO1xuICAgICAgICB0aGlzLnRvZGF5ID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnRvZGF5O1xuXG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZSA9IEZkRGF0ZS5nZXRGZERhdGVCeURhdGUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9zZXRDYXB0aW9uKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmxvYWRNb250aEJ5RGF0ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudGltZVZhbHVlID0gRmREYXRlLmdldEZkRGF0ZUJ5RGF0ZShuZXcgRGF0ZSgpKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBpZiAodGhpcy5pc1JhbmdlUGlja2VyKSB7XG4gICAgICAgIC8vICAgaWYgKHRoaXMuc3RhcnRSYW5nZURhdGUpIHtcbiAgICAgICAgLy8gICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5sb2FkTW9udGhCeURhdGUodGhpcy5zdGFydFJhbmdlRGF0ZSk7XG4gICAgICAgIC8vICAgfVxuICAgICAgICAvLyAgIGlmICh0aGlzLmVuZFJhbmdlRGF0ZSkge1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gfSBlbHNlIHtcbiAgICAgICAgLy8gICB0aGlzLl9jYWxlbmRhclNlcnZpY2UubG9hZE1vbnRoQnlEYXRlKHRoaXMudmFsdWUpO1xuICAgICAgICAvLyB9XG4gICAgICAgIHRoaXMubW9udGhzID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLk1vbnRocztcbiAgICAgICAgdGhpcy5fcHJlcGFyZVllYXIodGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnNlbGVjdGVkTW9udGguZGF0ZUluZm8ueWVhcik7XG4gICAgICAgIHRoaXMuX3NldEZvcm1hdHRlZERhdGVUb0lucHV0KHRoaXMudmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5pbnB1dEdyb3VwQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAodGhpcy5pbnB1dEdyb3VwQ29tcG9uZW50IGFzIGFueSkuX2N2YS5vbkNoYW5nZSA9IHRoaXMub25DYXB0aW9uQ2hhbmdlZC5iaW5kKHRoaXMpO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uSG91clRleHRDaGFuZ2UoZSk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICBpZiAoaXNOYU4odmFsKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGltZVZhbHVlID0gbmV3IEZkRGF0ZShcbiAgICAgICAgICAgIHRoaXMudGltZVZhbHVlLnllYXIsXG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZS5tb250aCxcbiAgICAgICAgICAgIHRoaXMudGltZVZhbHVlLmRheSxcbiAgICAgICAgICAgIHZhbCxcbiAgICAgICAgICAgIHRoaXMudGltZVZhbHVlLm1pbnV0ZSxcbiAgICAgICAgICAgIHRoaXMudGltZVZhbHVlLnNlY29uZFxuICAgICAgICApO1xuICAgIH1cbiAgICBvbk1pbnV0ZVRleHRDaGFuZ2UoZSk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWwgPSBOdW1iZXIoZS50YXJnZXQudmFsdWUpO1xuICAgICAgICBpZiAoaXNOYU4odmFsKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudGltZVZhbHVlID0gbmV3IEZkRGF0ZShcbiAgICAgICAgICAgIHRoaXMudGltZVZhbHVlLnllYXIsXG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZS5tb250aCxcbiAgICAgICAgICAgIHRoaXMudGltZVZhbHVlLmRheSxcbiAgICAgICAgICAgIHRoaXMudGltZVZhbHVlLmhvdXIsXG4gICAgICAgICAgICB2YWwsXG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZS5zZWNvbmRcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHsgdmFsdWUgfSA9IGNoYW5nZXM7XG4gICAgICAgIGlmICh2YWx1ZSAmJiAhdmFsdWUuZmlyc3RDaGFuZ2UpIHtcbiAgICAgICAgICAgIGNvbnN0IGNhcHRpb24gPSB0aGlzLl9nZXRGb3JtYXR0ZWREYXRlKHZhbHVlLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgICAgICBpZiAoY2FwdGlvbiAhPT0gdGhpcy5pbnB1dEdyb3VwQ29tcG9uZW50Py5pbnB1dFRleHQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXRGb3JtYXR0ZWREYXRlVG9JbnB1dCh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICBvblJhbmdlQ2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yYW5nZUNoYW5nZS5lbWl0KHtcbiAgICAgICAgICAgIHN0YXJ0RGF5OiBlLnN0YXJ0RGF5LFxuICAgICAgICAgICAgZW5kRGF5OiBlLmVuZERheVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgb25PcGVuUG9wb3Zlcihwb3BvdmVyLCBkaWFsb2dUZW1wbGF0ZSk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy50aW1lQ29tcG9uZW50KSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMudGltZUNvbXBvbmVudC5yZWZyZXNoQ29sdW1ucygpLCAwKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZXZpY2VTaXplID09PSAncycgfHwgdGhpcy5pc01vYmlsZSkge1xuICAgICAgICAgICAgdGhpcy5fZGlhbG9nU2VydmljZS5vcGVuKGRpYWxvZ1RlbXBsYXRlLCB7XG4gICAgICAgICAgICAgICAgbW9iaWxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBwb3BvdmVyLm9wZW4oKTtcbiAgICB9XG4gICAgb25Nb250aFNlbGVjdGVkKG1vbnRoTmFtZTogc3RyaW5nLCBpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5nb3RvTW9udGgobW9udGhOYW1lLCBpbmRleCk7XG4gICAgfVxuICAgIG9uWWVhclNlbGVjdGVkKHllYXI6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2UuZ290b1llYXIoK3llYXIpO1xuICAgIH1cblxuICAgIG9uQ2FwdGlvbkNoYW5nZWQoZSk6IHZvaWQge1xuICAgICAgICBpZiAoZS5sZW5ndGggPCAxMCAmJiB0aGlzLnNob3dEYXRlKSB7XG4gICAgICAgICAgICBpZiAoZS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9yYWlzVmFsdWVDaGFuZ2VkKHVuZGVmaW5lZCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5pc1ZhbGlkID0gZmFsc2U7XG5cbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBlbmdsaXNoRGF0ZVN0ciA9IEJhcnNhQXBpLkNvbW1vbi5VdGlsLlJlcGxhY2VGYVRvQXJDaGFyY2h0ZXIoZSk7XG4gICAgICAgIGxldCBmb3JtYXQgPSAnallZWVkvak0vakQnO1xuICAgICAgICBpZiAodGhpcy5zaG93VGltZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuc2hvd0RhdGUpIHtcbiAgICAgICAgICAgICAgICBmb3JtYXQgKz0gJyBISDptbSc7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvcm1hdCA9ICdISDptbSc7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbW9tZW50ID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLl9kYXRlU2VydmljZS5zdHJpbmdUb01vbWVudChlbmdsaXNoRGF0ZVN0ciwgZm9ybWF0KTtcbiAgICAgICAgLy8gY29uc3QgaXNWYWxpZCA9IG1vbWVudC5pc1ZhbGlkKCk7Ly8g2KjYsdin24wg2LTZhdiz24wg2YfZhduM2LTZhyBmYWxzZSDZhti02YjZhiDZhduM2K/Zh1xuICAgICAgICBpZiAodGhpcy5zaG93RGF0ZSAmJiBpc05hTihEYXRlLnBhcnNlKGVuZ2xpc2hEYXRlU3RyKSkpIHtcbiAgICAgICAgICAgIHRoaXMuaXNWYWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHRkYXRlID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG1vbWVudC50b0RhdGUoKTtcbiAgICAgICAgaWYgKGRhdGUuZ2V0RnVsbFllYXIoKSA8IHRkYXRlLmdldEZ1bGxZZWFyKCkpIHtcbiAgICAgICAgICAgIGRhdGUuc2V0RnVsbFllYXIodGRhdGUuZ2V0RnVsbFllYXIoKSk7XG4gICAgICAgICAgICBkYXRlLnNldE1vbnRoKHRkYXRlLmdldE1vbnRoKCkpO1xuICAgICAgICAgICAgZGF0ZS5zZXREYXRlKHRkYXRlLmdldERhdGUoKSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGlzTmFOKGRhdGUpKSB7XG4gICAgICAgICAgICB0aGlzLmlzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmlzVmFsaWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnRpbWVWYWx1ZSA9IHRoaXMuX2RhdGV0aW1lQWRhcHRlci5zZXRUaW1lKFxuICAgICAgICAgICAgdGhpcy50aW1lVmFsdWUsXG4gICAgICAgICAgICBkYXRlLmdldEhvdXJzKCksXG4gICAgICAgICAgICBkYXRlLmdldE1pbnV0ZXMoKSxcbiAgICAgICAgICAgIGRhdGUuZ2V0U2Vjb25kcygpXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuc3RhcnRTZWxlY3RlZERheSA9IHRoaXMuZW5kU2VsZWN0ZWREYXkgPSBudWxsO1xuICAgICAgICB0aGlzLl9yYWlzVmFsdWVDaGFuZ2VkKGRhdGUsIGZhbHNlKTtcbiAgICB9XG4gICAgb25QcmV2VGFwKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnZGF5Jykge1xuICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmxvYWRQcmV2aW91cygpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ21vbnRoJykge1xuICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmxvYWRQcmV2WWVhcigpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ3llYXInKSB7XG4gICAgICAgICAgICB0aGlzLl9wcmVwYXJlWWVhcihOdW1iZXIodGhpcy55ZWFyc1swXSkgLSAyMCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbk5leHRUYXAoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdkYXknKSB7XG4gICAgICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2UubG9hZE5leHQoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdtb250aCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5sb2FkTmV4dFllYXIoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICd5ZWFyJykge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZVllYXIoTnVtYmVyKHRoaXMueWVhcnNbdGhpcy55ZWFycy5sZW5ndGggLSAxXSkgKyAxKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uVG9kYXkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcbiAgICAgICAgdGhpcy50aW1lVmFsdWUgPSB0aGlzLl9kYXRldGltZUFkYXB0ZXIuc2V0VGltZShcbiAgICAgICAgICAgIHRoaXMudGltZVZhbHVlLFxuICAgICAgICAgICAgdG9kYXkuZ2V0SG91cnMoKSxcbiAgICAgICAgICAgIHRvZGF5LmdldE1pbnV0ZXMoKSxcbiAgICAgICAgICAgIHRvZGF5LmdldFNlY29uZHMoKVxuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnRvZGF5RGF5KSB7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0U2VsZWN0ZWREYXkgPSB0aGlzLl9jYWxlbmRhclNlcnZpY2UudG9kYXlEYXk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmdvdG9Ub2RheSgpO1xuICAgIH1cblxuICAgIG9uRGF5Q2xpY2soZGF5OiBEYXksIHBvcG92ZXIsIGRpYWxvZyk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzVmFsaWQgPSB0cnVlO1xuICAgICAgICB0aGlzLnN0YXJ0U2VsZWN0ZWREYXkgPSB0aGlzLmVuZFNlbGVjdGVkRGF5ID0gZGF5O1xuICAgICAgICBpZiAodGhpcy5zaG93VGltZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3NldEZpcnN0QW5kRW5kRGF5KGRheSwgcG9wb3ZlciwgZGlhbG9nKTtcbiAgICB9XG5cbiAgICBvblBvcG92ZXJPcGVuQ2hhbmdlKGlzT3Blbik6IHZvaWQge1xuICAgICAgICBpZiAoaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0VmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fbGFzdFZhbHVlID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuICAgIG9uQ2xlYXIocG9wb3ZlciwgZGlhbG9nKTogdm9pZCB7XG4gICAgICAgIGlmIChkaWFsb2cpIHtcbiAgICAgICAgICAgIGRpYWxvZy5kaXNtaXNzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb3BvdmVyLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5fc2V0Rm9ybWF0dGVkRGF0ZVRvSW5wdXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuX3JhaXNWYWx1ZUNoYW5nZWQodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIG9uT2socG9wb3ZlciwgZGlhbG9nKTogdm9pZCB7XG4gICAgICAgIGlmIChkaWFsb2cpIHtcbiAgICAgICAgICAgIGRpYWxvZy5kaXNtaXNzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb3BvdmVyLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9oYW5kbGVWYWx1ZUNoYW5nZSgpO1xuICAgIH1cbiAgICBvbkNhbmNlbChwb3BvdmVyLCBkaWFsb2cpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2xhc3RWYWx1ZSAhPT0gdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuX2xhc3RWYWx1ZTtcbiAgICAgICAgICAgIHRoaXMuX3NldENhcHRpb24odGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGRpYWxvZykge1xuICAgICAgICAgICAgZGlhbG9nLmRpc21pc3MoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEZvcm1hdHRlZERhdGVUb0lucHV0KGRhdGU6IERhdGUgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1hdHRlZERhdGUgPSB0aGlzLl9nZXRGb3JtYXR0ZWREYXRlKGRhdGUpO1xuICAgICAgICAgICAgdGhpcy50ZW1wRm9ybW1hdGVkRGF0ZSA9IGZvcm1hdHRlZERhdGU7XG4gICAgICAgICAgICB0aGlzLl9zZXRJbnB1dEdyb3VwVGV4dChmb3JtYXR0ZWREYXRlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRlbXBGb3JtbWF0ZWREYXRlID0gJyc7XG4gICAgICAgIHRoaXMuX3NldElucHV0R3JvdXBUZXh0KCcnKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0SW5wdXRHcm91cFRleHQodmFsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRHcm91cENvbXBvbmVudCkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dEdyb3VwQ29tcG9uZW50LmlucHV0VGV4dCA9IHZhbDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBwcml2YXRlIF9nZXRGb3JtYXR0ZWREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZVRpbWVUb0NhcHRpb24udHJhbnNmb3JtKGRhdGUsIHRoaXMuZm9ybWF0UGF0dGVybiwgdGhpcy5jdWx0dXJlLCB0aGlzLnNob3dEYXRlLCB0aGlzLnNob3dUaW1lKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oYW5kbGVWYWx1ZUNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuc2hvd0RhdGUgPyB0aGlzLnN0YXJ0U2VsZWN0ZWREYXk/LmRhdGUgPz8gdGhpcy52YWx1ZSA6IG5ldyBEYXRlKCk7XG4gICAgICAgIGlmICh0aGlzLnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlID0gbmV3IERhdGUodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlLnNldEhvdXJzKHRoaXMudGltZVZhbHVlLmhvdXIpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZS5zZXRNaW51dGVzKHRoaXMudGltZVZhbHVlLm1pbnV0ZSk7XG4gICAgICAgICAgICB0aGlzLnZhbHVlLnNldFNlY29uZHModGhpcy50aW1lVmFsdWUuc2Vjb25kKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXRGb3JtYXR0ZWREYXRlVG9JbnB1dCh0aGlzLnZhbHVlKTtcbiAgICAgICAgdGhpcy5fcmFpc1ZhbHVlQ2hhbmdlZCh0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcHJlcGFyZVllYXIoZnJvbTogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHllYXJzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IDIwOyBpKyspIHtcbiAgICAgICAgICAgIHllYXJzLnB1c2goYCR7ZnJvbSArIGl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy55ZWFycyA9IHllYXJzO1xuICAgIH1cbiAgICBwcml2YXRlIF9zZXRDYXB0aW9uKHZhbHVlKTogdm9pZCB7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWVDYXB0aW9uID0gJyc7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGZvcm1hdFBhdHRlcm4gPSB0aGlzLmZvcm1hdFBhdHRlcm4ucmVwbGFjZSgnWVlZWScsICdqWVlZWScpO1xuICAgICAgICBmb3JtYXRQYXR0ZXJuID0gZm9ybWF0UGF0dGVybi5yZXBsYWNlKCdNTScsICdqTU0nKTtcbiAgICAgICAgZm9ybWF0UGF0dGVybiA9IGZvcm1hdFBhdHRlcm4ucmVwbGFjZSgnREQnLCAnakREJyk7XG4gICAgICAgIHRoaXMudmFsdWVDYXB0aW9uID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLl9kYXRlU2VydmljZS5nZXRNb21lbnQodmFsdWUpLmZvcm1hdChmb3JtYXRQYXR0ZXJuKTtcbiAgICB9XG4gICAgcHJpdmF0ZSBfcmFpc1ZhbHVlQ2hhbmdlZChkYXRlLCBzZXRDYXB0aW9uID0gdHJ1ZSk6IHZvaWQge1xuICAgICAgICAvLyB0aGlzLnZhbHVlID0gZGF0ZTtcbiAgICAgICAgaWYgKHNldENhcHRpb24pIHtcbiAgICAgICAgICAgIHRoaXMuX3NldENhcHRpb24oZGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGRhdGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3NldEZpcnN0QW5kRW5kRGF5KGRheTogRGF5LCBwb3BvdmVyLCBkaWFsb2cpOiB2b2lkIHtcbiAgICAgICAgaWYgKGRpYWxvZykge1xuICAgICAgICAgICAgZGlhbG9nLmRpc21pc3MoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAocG9wb3Zlcikge1xuICAgICAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5pc1JhbmdlUGlja2VyKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRGb3JtYXR0ZWREYXRlVG9JbnB1dChkYXkuZGF0ZSk7XG4gICAgICAgICAgICB0aGlzLl9yYWlzVmFsdWVDaGFuZ2VkKGRheS5kYXRlKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFydFNlbGVjdGVkRGF5KSB7XG4gICAgICAgICAgICB0aGlzLmVuZFNlbGVjdGVkRGF5ID0gZGF5O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zdGFydFNlbGVjdGVkRGF5ID0gZGF5O1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLnN0YXJ0U2VsZWN0ZWREYXkgJiYgdGhpcy5lbmRTZWxlY3RlZERheSAmJiB0aGlzLnN0YXJ0U2VsZWN0ZWREYXkuZGF0ZSA+IHRoaXMuZW5kU2VsZWN0ZWREYXkuZGF0ZSkge1xuICAgICAgICAgICAgY29uc3QgdGVtcCA9IHRoaXMuc3RhcnRTZWxlY3RlZERheTtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRTZWxlY3RlZERheSA9IHRoaXMuZW5kU2VsZWN0ZWREYXk7XG4gICAgICAgICAgICB0aGlzLmVuZFNlbGVjdGVkRGF5ID0gdGVtcDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFydFNlbGVjdGVkRGF5ICYmIHRoaXMuZW5kU2VsZWN0ZWREYXkpIHtcbiAgICAgICAgICAgIHRoaXMucmFuZ2VDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICAgICAgc3RhcnREYXk6IHRoaXMuc3RhcnRTZWxlY3RlZERheS5kYXRlLFxuICAgICAgICAgICAgICAgIGVuZERheTogdGhpcy5lbmRTZWxlY3RlZERheS5kYXRlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAoaW5saW5lTW9kZSkge1xuPG5nLWNvbnRhaW5lclxuICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIGRhdGVyYW5nZU1vZGUgPyBkYXRlUmFuZ2VUcGwgOiBtb250aDtcbiAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgJGltcGxpY2l0OiBzZWxlY3RlZE1vbnRoJCB8IGFzeW5jLFxuICAgICAgICAgICAgd2lkdGg6IHdpZHRoJCB8IGFzeW5jLFxuICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgICAgICBydGw6IHJ0bCQgfCBhc3luYyxcbiAgICAgICAgICAgIHdlZWtEYXlzOiB3ZWVrRGF5cyxcbiAgICAgICAgICAgIHdlZWtEYXlzTWluOiB3ZWVrRGF5c01pbixcbiAgICAgICAgICAgIHRvZGF5OiB0b2RheSxcbiAgICAgICAgICAgIGRldmljZVNpemU6IGRldmljZVNpemUsXG4gICAgICAgICAgICBwb3BvdmVyOiBwb3BvdmVyXG4gICAgICAgIH1cbiAgICBcIlxuPlxuPC9uZy1jb250YWluZXI+XG59XG48bmctdGVtcGxhdGUgI2RhdGVSYW5nZVRwbD5cbiAgICA8YmMtY2FsZW5kYXItc2VsZWN0aW9uLWRheXNcbiAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgIFtpbmxpbmVdPVwidHJ1ZVwiXG4gICAgICAgIFttb250aEluZm9dPVwiKHNlbGVjdGVkTW9udGgkIHwgYXN5bmMpISFcIlxuICAgICAgICAocmFuZ2VDaGFuZ2UpPVwib25SYW5nZUNoYW5nZSgkZXZlbnQpXCJcbiAgICA+PC9iYy1jYWxlbmRhci1zZWxlY3Rpb24tZGF5cz5cbjwvbmctdGVtcGxhdGU+XG48ZmQtaW5wdXQtZ3JvdXBcbiAgICBwbGFjZW1lbnQ9XCJhZnRlclwiXG4gICAgZ2x5cGg9XCJjYWxlbmRhclwiXG4gICAgZ2x5cGhBcmlhTGFiZWw9XCJzZWxlY3QgZGF5XCJcbiAgICBhcmlhTGFiZWxsZWRCeT1cImZkLWlucHV0LWdyb3VwLWljb24tbGFiZWwtMlwiXG4gICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIFtidXR0b25dPVwidHJ1ZVwiXG4gICAgW3N0YXRlXT1cImlzVmFsaWQgPyAnc3VjY2VzcycgOiAnZXJyb3InXCJcbiAgICBbc2hvd0ZvY3VzXT1cInRydWVcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICBbc3R5bGUuZGlzcGxheV09XCIhYnV0dG9uTWVudU1vZGUgfHwgaW5saW5lTW9kZSA/ICdpbmhlcml0JyA6ICdub25lJ1wiXG4gICAgKGFkZE9uQnV0dG9uQ2xpY2tlZCk9XCJvbk9wZW5Qb3BvdmVyKHBvcG92ZXIsIGRpYWxvZ1RlbXBsYXRlKVwiXG4+XG48L2ZkLWlucHV0LWdyb3VwPlxuQGlmIChidXR0b25NZW51TW9kZSkge1xuPGJ1dHRvblxuICAgIGZkLWJ1dHRvblxuICAgIFtsYWJlbF09XCJ0ZW1wRm9ybW1hdGVkRGF0ZSB8fCBwbGFjZWhvbGRlclwiXG4gICAgW3RpdGxlXT1cInBsYWNlaG9sZGVyXCJcbiAgICBbZmRUeXBlXT1cInZhbHVlID8gJ3N0YW5kYXJkJyA6ICd0cmFuc3BhcmVudCdcIlxuICAgIFtmZE1lbnVdPVwidHJ1ZVwiXG4gICAgKGNsaWNrKT1cIm9uT3BlblBvcG92ZXIocG9wb3ZlciwgZGlhbG9nVGVtcGxhdGUpXCJcbiAgICBbY2xhc3MucGxhY2Vob2xkZXItY3VzdG9tXT1cIiF2YWx1ZVwiXG4gICAgY2xhc3M9XCJtZW51LWJ1dHRvbi1kYXRlcGlja2VyXCJcbj48L2J1dHRvbj5cbn1cblxuPGZkLXBvcG92ZXIgI3BvcG92ZXIgKGlzT3BlbkNoYW5nZSk9XCJvblBvcG92ZXJPcGVuQ2hhbmdlKCRldmVudClcIiBbZm9jdXNUcmFwcGVkXT1cInRydWVcIiBbZm9jdXNBdXRvQ2FwdHVyZV09XCJ0cnVlXCI+XG4gICAgPGZkLXBvcG92ZXItYm9keSBbc3R5bGUud2lkdGgucHhdPVwid2lkdGgkIHwgYXN5bmNcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICBtb250aDtcbiAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2VsZWN0ZWRNb250aCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoJCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgcnRsOiBydGwkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgIHdlZWtEYXlzOiB3ZWVrRGF5cyxcbiAgICAgICAgICAgICAgICAgICAgd2Vla0RheXNNaW46IHdlZWtEYXlzTWluLFxuICAgICAgICAgICAgICAgICAgICB0b2RheTogdG9kYXksXG4gICAgICAgICAgICAgICAgICAgIGRldmljZVNpemU6IGRldmljZVNpemUsXG4gICAgICAgICAgICAgICAgICAgIHBvcG92ZXI6IHBvcG92ZXJcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBcIlxuICAgICAgICA+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8ZGl2IGZkLXBvcG92ZXItYm9keS1mb290ZXI+XG4gICAgICAgICAgICA8ZGl2IGZkLWJhciBbYmFyRGVzaWduXT1cIidmb290ZXInXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBmZC1iYXItcmlnaHQ+XG4gICAgICAgICAgICAgICAgICAgIDxjb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJCdXR0b25zXCI+PC9jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9mZC1wb3BvdmVyLWJvZHk+XG48L2ZkLXBvcG92ZXI+XG48bmctdGVtcGxhdGUgbGV0LWRpYWxvZyBsZXQtZGlhbG9nQ29uZmlnPVwiZGlhbG9nQ29uZmlnXCIgI2RpYWxvZ1RlbXBsYXRlPlxuICAgIDxmZC1kaWFsb2cgW2RpYWxvZ0NvbmZpZ109XCJkaWFsb2dDb25maWdcIiBbZGlhbG9nUmVmXT1cImRpYWxvZ1wiPlxuICAgICAgICA8ZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICAgICAgbW9udGg7XG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogc2VsZWN0ZWRNb250aCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgcnRsOiBydGwkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICB3ZWVrRGF5czogd2Vla0RheXMsXG4gICAgICAgICAgICAgICAgICAgICAgICB3ZWVrRGF5c01pbjogd2Vla0RheXNNaW4sXG4gICAgICAgICAgICAgICAgICAgICAgICB0b2RheTogdG9kYXksXG4gICAgICAgICAgICAgICAgICAgICAgICBkZXZpY2VTaXplOiBkZXZpY2VTaXplLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG9wb3ZlcjogcG9wb3ZlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZzogZGlhbG9nXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZmQtZGlhbG9nLWJvZHk+XG4gICAgICAgIDxmZC1kaWFsb2ctZm9vdGVyPlxuICAgICAgICAgICAgPGNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZvb3RlckJ1dHRvbnM7IGNvbnRleHQ6IHsgZGlhbG9nOiBkaWFsb2cgfVwiPjwvY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWRpYWxvZy1mb290ZXI+XG4gICAgPC9mZC1kaWFsb2c+XG48L25nLXRlbXBsYXRlPlxuPG5nLXRlbXBsYXRlICNmb290ZXJCdXR0b25zIGxldC1kaWFsb2c9XCJkaWFsb2dcIj5cbiAgICA8ZmQtYnV0dG9uLWJhciBbbGFiZWxdPVwiJ09rJyB8IGJiYlRyYW5zbGF0ZVwiIGZkVHlwZT1cImVtcGhhc2l6ZWRcIiAoY2xpY2spPVwib25Payhwb3BvdmVyLCBkaWFsb2cpXCI+PC9mZC1idXR0b24tYmFyPlxuICAgIDxmZC1idXR0b24tYmFyXG4gICAgICAgIFtsYWJlbF09XCInQ2xlYXInIHwgYmJiVHJhbnNsYXRlXCJcbiAgICAgICAgZmRUeXBlPVwic3RhbmRhcmRcIlxuICAgICAgICAoY2xpY2spPVwib25DbGVhcihwb3BvdmVyLCBkaWFsb2cpXCJcbiAgICA+PC9mZC1idXR0b24tYmFyPlxuICAgIDxmZC1idXR0b24tYmFyIFtsYWJlbF09XCInQ2FuY2VsJyB8IGJiYlRyYW5zbGF0ZVwiIChjbGljayk9XCJvbkNhbmNlbChwb3BvdmVyLCBkaWFsb2cpXCI+PC9mZC1idXR0b24tYmFyPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZVxuICAgICNtb250aFxuICAgIGxldC1zZWxlY3RlZE1vbnRoXG4gICAgbGV0LXdpZHRoPVwid2lkdGhcIlxuICAgIGxldC1oZWlnaHQ9XCJoZWlnaHRcIlxuICAgIGxldC1ydGw9XCJydGxcIlxuICAgIGxldC10b2RheT1cInRvZGF5XCJcbiAgICBsZXQtc2hvd0V2ZW50cz1cInNob3dFdmVudHNcIlxuICAgIGxldC1kZXZpY2VTaXplPVwiZGV2aWNlU2l6ZVwiXG4gICAgbGV0LXBvcG92ZXI9XCJwb3BvdmVyXCJcbiAgICBsZXQtZGlhbG9nPVwiZGlhbG9nXCJcbj5cbiAgICBAaWYgKHNob3dEYXRlKSB7XG4gICAgPGZkLXRvb2xiYXIgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBbbGFiZWxdPVwiKHNob3dEYXRlID8gJ0RhdGVSX1RvZGF5JyA6ICdOb3cnKSB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Ub2RheSgpXCJcbiAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICBAaWYgKHNob3dEYXRlKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgW2dseXBoXT1cInJ0bCA/ICduYXZpZ2F0aW9uLXJpZ2h0LWFycm93JyA6ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvblByZXZUYXAoKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgfSBAaWYgKHNob3dEYXRlKSB7XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgZmQtdG9vbGJhci1pdGVtXG4gICAgICAgICAgICBbZmRUeXBlXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgW2dseXBoXT1cInJ0bCA/ICduYXZpZ2F0aW9uLWxlZnQtYXJyb3cnIDogJ25hdmlnYXRpb24tcmlnaHQtYXJyb3cnXCJcbiAgICAgICAgICAgIChjbGljayk9XCJvbk5leHRUYXAoKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgfSBAaWYgKHNob3dEYXRlKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC15ZWFycy13cmFwcGVyXCIgZmQtdGl0bGUgZmQtdG9vbGJhci1pdGVtPlxuICAgICAgICAgICAgQGlmIChzZWxlY3Rpb25Nb2RlID09PSAnZGF5JyB8fCBzZWxlY3Rpb25Nb2RlID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2VsZWN0ZWRNb250aC5kYXRlSW5mby5tb250aE5hbWVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3Rpb25Nb2RlID0gJ21vbnRoJ1wiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2VsZWN0ZWRNb250aC5kYXRlSW5mby55ZWFyXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0aW9uTW9kZSA9ICd5ZWFyJ1wiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9mZC10b29sYmFyPlxuICAgIH1cbiAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleFwiPlxuICAgICAgICBAc3dpdGNoIChzZWxlY3Rpb25Nb2RlKSB7IEBjYXNlICgnbW9udGgnKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC15ZWFyLXNlbGVjdGlvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICBAZm9yIChtb250aCBvZiBtb250aHM7IHRyYWNrIG1vbnRoOyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHN0eWxlPVwiZmxleC1ncm93OiAxOyB3aWR0aDogMzMlXCJcbiAgICAgICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZmRUeXBlXT1cInNlbGVjdGVkTW9udGguZGF0ZUluZm8ubW9udGhOYW1lID09PSBtb250aCA/ICdlbXBoYXNpemVkJyA6ICd0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJtb250aFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGlvbk1vZGUgPSAnZGF5Jzsgb25Nb250aFNlbGVjdGVkKG1vbnRoLCBpKVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBjYXNlICgneWVhcicpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vbnRoLXllYXItc2VsZWN0aW9uLXdyYXBwZXJcIj5cbiAgICAgICAgICAgIEBmb3IgKHllYXIgb2YgeWVhcnM7IHRyYWNrIHllYXIpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBzdHlsZT1cImZsZXgtZ3JvdzogMTsgd2lkdGg6IDI1JVwiXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJzZWxlY3RlZE1vbnRoLmRhdGVJbmZvLnllYXIgPT09ICt5ZWFyID8gJ2VtcGhhc2l6ZWQnIDogJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInllYXJcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3Rpb25Nb2RlID0gJ2RheSc7IG9uWWVhclNlbGVjdGVkKHllYXIpXCJcbiAgICAgICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGRlZmF1bHQge1xuICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleFwiPlxuICAgICAgICAgICAgQGlmIChzaG93RGF0ZSkge1xuICAgICAgICAgICAgPGJjLWNhbGVuZGFyLW1vbnRoXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoXT1cIndpZHRoXCJcbiAgICAgICAgICAgICAgICBbY29udGFpbmVySGVpZ2h0XT1cImhlaWdodFwiXG4gICAgICAgICAgICAgICAgW2NvbnRhaW5lcldpZHRoXT1cIndpZHRoXCJcbiAgICAgICAgICAgICAgICBbcnRsXT1cInJ0bFwiXG4gICAgICAgICAgICAgICAgW21vbnRoV2Vla3NDb3VudF09XCJzZWxlY3RlZE1vbnRoLndlZWtzQ291bnRcIlxuICAgICAgICAgICAgICAgIFt3ZWVrRGF5c109XCJ3ZWVrRGF5c1wiXG4gICAgICAgICAgICAgICAgW3dlZWtEYXlzTWluXT1cIndlZWtEYXlzTWluXCJcbiAgICAgICAgICAgICAgICBbdG9kYXldPVwidG9kYXlcIlxuICAgICAgICAgICAgICAgIFtkYXRlUGlja2VyXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtkYXRlUmFuZ2VdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3NlbGVjdGVkRGF0ZV09XCJzdGFydFNlbGVjdGVkRGF5ID8gc3RhcnRTZWxlY3RlZERheS5kYXRlIDogdmFsdWVcIlxuICAgICAgICAgICAgICAgIFtkYXlzXT1cInNlbGVjdGVkTW9udGguZGF5c1wiXG4gICAgICAgICAgICAgICAgW2RldmljZVNpemVdPVwiZGV2aWNlU2l6ZVwiXG4gICAgICAgICAgICAgICAgKGRheUNsaWNrKT1cIm9uRGF5Q2xpY2soJGV2ZW50LCBwb3BvdmVyLCBkaWFsb2cpXCJcbiAgICAgICAgICAgID48L2JjLWNhbGVuZGFyLW1vbnRoPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNlcGVyYXRvclwiPjwvZGl2PlxuICAgICAgICAgICAgQGlmIChzaG93VGltZSkge1xuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8ZmQtdGltZVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImRpcmVjdGlvbjogbHRyXCJcbiAgICAgICAgICAgICAgICAgICAgZmRDb21wYWN0XG4gICAgICAgICAgICAgICAgICAgIFtrZWVwVHdvRGlnaXRzXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInRpbWVWYWx1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNwbGF5U2Vjb25kc109XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgPjwvZmQtdGltZT5cbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiZGlzcGxheTogZmxleDsgZ2FwOiAwLjJyZW07IHBhZGRpbmc6IDAuNXJlbVwiPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWZvcm0tY29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJyZW1vdmUtYXJyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogM3JlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidGltZVZhbHVlPy5taW51dGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhWYWx1ZT1cIjIzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvbk1pbnV0ZVRleHRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgZmQtZm9ybS1jb250cm9sXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cIndpZHRoOiAzcmVtXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVtb3ZlLWFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJ0aW1lVmFsdWU/LmhvdXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXhWYWx1ZT1cIjU5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dCk9XCJvbkhvdXJUZXh0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9IH1cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
457
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1jYWxlbmRhci9zcmMvbGliL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYXJzYS1jYWxlbmRhci9zcmMvbGliL2RhdGUtdGltZS1waWNrZXIvZGF0ZS10aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzRCxPQUFPLEVBQ0gsYUFBYSxFQUViLFdBQVcsRUFDWCxjQUFjLEVBR2QsUUFBUSxFQUdYLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQy9ELE9BQU8sRUFDSCxlQUFlLEVBRWYsTUFBTSxFQUNOLGlCQUFpQixFQUNqQixtQkFBbUIsRUFDbkIsYUFBYSxFQUNoQixNQUFNLHVCQUF1QixDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHL0IsTUFBTSxPQUFPLGNBQWM7SUFvQ3ZCLFlBQW9CLGFBQStCO1FBQS9CLGtCQUFhLEdBQWIsYUFBYSxDQUFrQjtRQW5DbkQsaURBQWlEO1FBQ2pELHVCQUFrQixHQUFHLGdCQUFnQixDQUFDO1FBRXRDLG1DQUFtQztRQUNuQyxlQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkQsaURBQWlEO1FBQ2pELHVCQUFrQixHQUFHLGdCQUFn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YUFBYTtnQkFDMEIsbUJBQW1CO3NCQUFwRSxTQUFTO3VCQUFDLG1CQUFtQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3RhYmxlLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXMsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtcbiAgICBCYXNlQ29tcG9uZW50LFxuICAgIEJiYlRyYW5zbGF0ZVBpcGUsXG4gICAgRGF0ZVNlcnZpY2UsXG4gICAgZ2V0RGF0ZVNlcnZpY2UsXG4gICAgTG9nU2VydmljZSxcbiAgICBQb3J0YWxTZXJ2aWNlLFxuICAgIEJhcnNhQXBpLFxuICAgIERhdGVUaW1lVG9DYXB0aW9uUGlwZSxcbiAgICBBYmJyZXZhdGlvbkRldmljZVNpemVcbn0gZnJvbSAnYmFyc2Etbm92aW4tcmF5LWNvcmUnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb250aEluZm8sIERheSB9IGZyb20gJy4uL21vZGVscyc7XG5pbXBvcnQgeyBDYWxlbmRhclNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jYWxlbmRhci5zZXJ2aWNlJztcbmltcG9ydCB7XG4gICAgRGF0ZXRpbWVBZGFwdGVyLFxuICAgIERpYWxvZ1NlcnZpY2UsXG4gICAgRmREYXRlLFxuICAgIEZkRGF0ZXRpbWVBZGFwdGVyLFxuICAgIElucHV0R3JvdXBDb21wb25lbnQsXG4gICAgVGltZUNvbXBvbmVudFxufSBmcm9tICdAZnVuZGFtZW50YWwtbmd4L2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGltZUNvbmZpZ0kxOG4ge1xuICAgIC8qKiBBcmlhIGxhYmVsIGZvciB0aGUgJ2luY3JlYXNlIGhvdXJzJyBidXR0b24gKi9cbiAgICBpbmNyZWFzZUhvdXJzTGFiZWwgPSAnSW5jcmVhc2UgaG91cnMnO1xuXG4gICAgLyoqIGxhYmVsIGZvciB0aGUgJ2hvdXJzJyBjb2x1bW4gKi9cbiAgICBob3Vyc0xhYmVsID0gdGhpcy5fYmJiVHJhbnNsYXRlLnRyYW5zZm9ybSgnSG91cnMnKTtcblxuICAgIC8qKiBBcmlhIGxhYmVsIGZvciB0aGUgJ2RlY3JlYXNlIGhvdXJzJyBidXR0b24gKi9cbiAgICBkZWNyZWFzZUhvdXJzTGFiZWwgPSAnRGVjcmVhc2UgaG91cnMnO1xuXG4gICAgLyoqIEFyaWEgbGFiZWwgZm9yIHRoZSAnaW5jcmVhc2UgbWludXRlcycgYnV0dG9uICovXG4gICAgaW5jcmVhc2VNaW51dGVzTGFiZWwgPSAnSW5jcmVhc2UgbWludXRlcyc7XG5cbiAgICAvKiogbGFiZWwgZm9yIHRoZSAnbWludXRlcycgY29sdW1uICovXG4gICAgbWludXRlc0xhYmVsID0gdGhpcy5fYmJiVHJhbnNsYXRlLnRyYW5zZm9ybSgnTWludXRlcycpO1xuXG4gICAgLyoqIEFyaWEgbGFiZWwgZm9yIHRoZSAnZGVjcmVhc2UgbWludXRlcycgYnV0dG9uICovXG4gICAgZGVjcmVhc2VNaW51dGVzTGFiZWwgPSAnRGVjcmVhc2UgbWludXRlcyc7XG5cbiAgICAvKiogQXJpYSBsYWJlbCBmb3IgdGhlICdpbmNyZWFzZSBzZWNvbmRzJyBidXR0b24gKi9cbiAgICBpbmNyZWFzZVNlY29uZHNMYWJlbCA9ICdJbmNyZWFzZSBzZWNvbmRzJztcblxuICAgIC8qKiBsYWJlbCBmb3IgdGhlICdzZWNvbmRzJyBjb2x1bW4gKi9cbiAgICBzZWNvbmRzTGFiZWwgPSB0aGlzLl9iYmJUcmFuc2xhdGUudHJhbnNmb3JtKCdTZWMnKTtcblxuICAgIC8qKiBBcmlhIGxhYmVsIGZvciB0aGUgJ2RlY3JlYXNlIHNlY29uZHMnIGJ1dHRvbiAqL1xuICAgIGRlY3JlYXNlU2Vjb25kc0xhYmVsID0gJ0RlY3JlYXNlIHNlY29uZHMnO1xuXG4gICAgLyoqIEFyaWEgbGFiZWwgZm9yIHRoZSAnaW5jcmVhc2UgcGVyaW9kJyBidXR0b24gKi9cbiAgICBpbmNyZWFzZVBlcmlvZExhYmVsID0gJ0luY3JlYXNlIHBlcmlvZCc7XG5cbiAgICAvKiogbGFiZWwgZm9yIHRoZSAncGVyaW9kJyBjb2x1bW4gKi9cbiAgICBwZXJpb2RMYWJlbCA9ICdQZXJpb2QnO1xuXG4gICAgLyoqIEFyaWEgbGFiZWwgZm9yIHRoZSAnZGVjcmVhc2UgcGVyaW9kJyBidXR0b24gKi9cbiAgICBkZWNyZWFzZVBlcmlvZExhYmVsID0gJ0RlY3JlYXNlIHBlcmlvZCc7XG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfYmJiVHJhbnNsYXRlOiBCYmJUcmFuc2xhdGVQaXBlKSB7fVxufVxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2JjLWRhdGUtdGltZS1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRlLXRpbWUtcGlja2VyLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IERhdGV0aW1lQWRhcHRlcixcbiAgICAgICAgICAgIHVzZUNsYXNzOiBGZERhdGV0aW1lQWRhcHRlclxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBEYXRlU2VydmljZSxcbiAgICAgICAgICAgIHVzZUZhY3Rvcnk6IGdldERhdGVTZXJ2aWNlXG4gICAgICAgIH0sXG4gICAgICAgIENhbGVuZGFyU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVRpbWVQaWNrZXJDb21wb25lbnQgZXh0ZW5kcyBCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBJbnB1dCgpIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG4gICAgQElucHV0KCkgcHJpbWFyeUNhbGVuZGFyVHlwZTogJ0dyZWdvcmlhbicgfCAnUGVyc2lhbicgfCBzdHJpbmc7XG4gICAgQElucHV0KCkgZm9ybWF0UGF0dGVybjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHZhbHVlOiBEYXRlIHwgdW5kZWZpbmVkO1xuICAgIEBJbnB1dCgpIHRpbWVWYWx1ZTogRmREYXRlO1xuICAgIEBJbnB1dCgpIHN0YXJ0UmFuZ2VEYXRlOiBEYXRlO1xuICAgIEBJbnB1dCgpIGVuZFJhbmdlRGF0ZTogRGF0ZTtcbiAgICBASW5wdXQoKSBpc1JhbmdlUGlja2VyOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dUaW1lOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHNob3dEYXRlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJ0bCA9IHRydWU7XG4gICAgQElucHV0KCkgZGV2aWNlU2l6ZTogQWJicmV2YXRpb25EZXZpY2VTaXplO1xuICAgIEBJbnB1dCgpIGlzTW9iaWxlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIHJlYWRvbmx5OiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGJ1dHRvbk1lbnVNb2RlOiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGlubGluZU1vZGU6IGJvb2xlYW47XG4gICAgQElucHV0KCkgZGF0ZXJhbmdlTW9kZTogYm9vbGVhbjtcbiAgICBAT3V0cHV0KCkgcmFuZ2VDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgc3RhcnREYXk6IERhdGU7IGVuZERheTogRGF0ZSB9PigpO1xuICAgIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZT4oKTtcbiAgICBAVmlld0NoaWxkKFRpbWVDb21wb25lbnQpIHRpbWVDb21wb25lbnQ6IFRpbWVDb21wb25lbnQ8RmREYXRlPjtcbiAgICBAVmlld0NoaWxkKElucHV0R3JvdXBDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pIGlucHV0R3JvdXBDb21wb25lbnQ6IElucHV0R3JvdXBDb21wb25lbnQ7XG4gICAgdmFsdWVDYXB0aW9uID0gJyc7XG4gICAgZW5kU2VsZWN0ZWREYXk6IERheSB8IG51bGw7XG4gICAgc3RhcnRTZWxlY3RlZERheTogRGF5IHwgbnVsbDtcbiAgICB2YWx1ZURheTogRGF5IHwgbnVsbDtcblxuICAgIHNlbGVjdGlvbk1vZGU6ICdkYXknIHwgJ21vbnRoJyB8ICd5ZWFyJyA9ICdkYXknO1xuICAgIHRvZGF5SW5kZXggPSAtMTtcbiAgICB3aWR0aCQ6IE9ic2VydmFibGU8bnVtYmVyPjtcbiAgICBoZWlnaHQ6IG51bWJlcjtcbiAgICBzZWxlY3RlZE1vbnRoJDogT2JzZXJ2YWJsZTxDYWxlbmRhck1vbnRoSW5mbz47XG4gICAgcnRsJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgICB0b2RheTogRGF0ZTtcbiAgICB3ZWVrRGF5c01pbjogc3RyaW5nW107XG4gICAgd2Vla0RheXM6IHN0cmluZ1tdO1xuXG4gICAgaXNWYWxpZCA9IHRydWU7XG4gICAgY3VsdHVyZTogc3RyaW5nO1xuICAgIG1vbnRoczogc3RyaW5nW10gPSBbXTtcbiAgICB5ZWFyczogc3RyaW5nW107XG4gICAgdGVtcEZvcm1tYXRlZERhdGUgPSAnJztcbiAgICBwcml2YXRlIF9jYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZTtcbiAgICBwcml2YXRlIF9sYXN0VmFsdWU6IERhdGUgfCB1bmRlZmluZWQ7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZGF0ZXRpbWVBZGFwdGVyOiBEYXRldGltZUFkYXB0ZXI8RmREYXRlPixcbiAgICAgICAgcHJpdmF0ZSBfZGF0ZVRpbWVUb0NhcHRpb246IERhdGVUaW1lVG9DYXB0aW9uUGlwZSxcbiAgICAgICAgcHJpdmF0ZSBfbG9nU2VydmljZTogTG9nU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBfZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgX3BvcnRhbFNlcnZpY2U6IFBvcnRhbFNlcnZpY2VcbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICB0aGlzLnJ0bCQgPSBfcG9ydGFsU2VydmljZS5ydGwkO1xuICAgICAgICB0aGlzLndpZHRoJCA9IF9wb3J0YWxTZXJ2aWNlLmRldmljZVNpemUkLnBpcGUoXG4gICAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgICAgbWFwKChkZXZpY2VTaXplKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnNob3dEYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAyNjA7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHN3aXRjaCAoZGV2aWNlU2l6ZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdsJzpcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAneGwnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDU2MDtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAncyc6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMzIwO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDUyMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuaGVpZ2h0ID0gNDIwO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBsZXQgY3VsdHVyZSA9ICdlbi1VUyc7XG4gICAgICAgIHN3aXRjaCAodGhpcy5wcmltYXJ5Q2FsZW5kYXJUeXBlKSB7XG4gICAgICAgICAgICBjYXNlICdIaWpyaVNoYW1zaSc6XG4gICAgICAgICAgICAgICAgY3VsdHVyZSA9ICdmYS1JUic7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jdWx0dXJlID0gY3VsdHVyZTtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlID0gbmV3IENhbGVuZGFyU2VydmljZSh0aGlzLl9sb2dTZXJ2aWNlLCBjdWx0dXJlKTtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnNldE1vZGUoJ21vbnRoJyk7XG4gICAgICAgIHRoaXMud2Vla0RheXNNaW4gPSB0aGlzLl9jYWxlbmRhclNlcnZpY2Uud2Vla0RheXNNaW4oKTtcbiAgICAgICAgdGhpcy53ZWVrRGF5cyA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS53ZWVrRGF5cygpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGgkID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnNlbGVjdGVkJDtcbiAgICAgICAgdGhpcy50b2RheSA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS50b2RheTtcblxuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy50aW1lVmFsdWUgPSBGZERhdGUuZ2V0RmREYXRlQnlEYXRlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fc2V0Q2FwdGlvbih0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5sb2FkTW9udGhCeURhdGUodGhpcy52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZSA9IEZkRGF0ZS5nZXRGZERhdGVCeURhdGUobmV3IERhdGUoKSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gaWYgKHRoaXMuaXNSYW5nZVBpY2tlcikge1xuICAgICAgICAvLyAgIGlmICh0aGlzLnN0YXJ0UmFuZ2VEYXRlKSB7XG4gICAgICAgIC8vICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2UubG9hZE1vbnRoQnlEYXRlKHRoaXMuc3RhcnRSYW5nZURhdGUpO1xuICAgICAgICAvLyAgIH1cbiAgICAgICAgLy8gICBpZiAodGhpcy5lbmRSYW5nZURhdGUpIHtcbiAgICAgICAgLy8gICB9XG4gICAgICAgIC8vIH0gZWxzZSB7XG4gICAgICAgIC8vICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmxvYWRNb250aEJ5RGF0ZSh0aGlzLnZhbHVlKTtcbiAgICAgICAgLy8gfVxuICAgICAgICB0aGlzLm1vbnRocyA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5Nb250aHM7XG4gICAgICAgIHRoaXMuX3ByZXBhcmVZZWFyKHRoaXMuX2NhbGVuZGFyU2VydmljZS5zZWxlY3RlZE1vbnRoLmRhdGVJbmZvLnllYXIpO1xuICAgICAgICB0aGlzLl9zZXRGb3JtYXR0ZWREYXRlVG9JbnB1dCh0aGlzLnZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXRHcm91cENvbXBvbmVudCkge1xuICAgICAgICAgICAgKHRoaXMuaW5wdXRHcm91cENvbXBvbmVudCBhcyBhbnkpLl9jdmEub25DaGFuZ2UgPSB0aGlzLm9uQ2FwdGlvbkNoYW5nZWQuYmluZCh0aGlzKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkhvdXJUZXh0Q2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsID0gTnVtYmVyKGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgaWYgKGlzTmFOKHZhbCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRpbWVWYWx1ZSA9IG5ldyBGZERhdGUoXG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZS55ZWFyLFxuICAgICAgICAgICAgdGhpcy50aW1lVmFsdWUubW9udGgsXG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZS5kYXksXG4gICAgICAgICAgICB2YWwsXG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZS5taW51dGUsXG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZS5zZWNvbmRcbiAgICAgICAgKTtcbiAgICB9XG4gICAgb25NaW51dGVUZXh0Q2hhbmdlKGUpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsID0gTnVtYmVyKGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgaWYgKGlzTmFOKHZhbCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnRpbWVWYWx1ZSA9IG5ldyBGZERhdGUoXG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZS55ZWFyLFxuICAgICAgICAgICAgdGhpcy50aW1lVmFsdWUubW9udGgsXG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZS5kYXksXG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZS5ob3VyLFxuICAgICAgICAgICAgdmFsLFxuICAgICAgICAgICAgdGhpcy50aW1lVmFsdWUuc2Vjb25kXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IHZhbHVlIH0gPSBjaGFuZ2VzO1xuICAgICAgICBpZiAodmFsdWUgJiYgIXZhbHVlLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICBjb25zdCBjYXB0aW9uID0gdGhpcy5fZ2V0Rm9ybWF0dGVkRGF0ZSh2YWx1ZS5jdXJyZW50VmFsdWUpO1xuICAgICAgICAgICAgaWYgKGNhcHRpb24gIT09IHRoaXMuaW5wdXRHcm91cENvbXBvbmVudD8uaW5wdXRUZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0Rm9ybWF0dGVkRGF0ZVRvSW5wdXQodGhpcy52YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG4gICAgb25SYW5nZUNoYW5nZShlKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmFuZ2VDaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICBzdGFydERheTogZS5zdGFydERheSxcbiAgICAgICAgICAgIGVuZERheTogZS5lbmREYXlcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIG9uT3BlblBvcG92ZXIocG9wb3ZlciwgZGlhbG9nVGVtcGxhdGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGltZUNvbXBvbmVudCkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLnRpbWVDb21wb25lbnQucmVmcmVzaENvbHVtbnMoKSwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGV2aWNlU2l6ZSA9PT0gJ3MnIHx8IHRoaXMuaXNNb2JpbGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2RpYWxvZ1NlcnZpY2Uub3BlbihkaWFsb2dUZW1wbGF0ZSwge1xuICAgICAgICAgICAgICAgIG1vYmlsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgcG9wb3Zlci5vcGVuKCk7XG4gICAgfVxuICAgIG9uTW9udGhTZWxlY3RlZChtb250aE5hbWU6IHN0cmluZywgaW5kZXg6IG51bWJlcik6IHZvaWQge1xuICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2UuZ290b01vbnRoKG1vbnRoTmFtZSwgaW5kZXgpO1xuICAgIH1cbiAgICBvblllYXJTZWxlY3RlZCh5ZWFyOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmdvdG9ZZWFyKCt5ZWFyKTtcbiAgICB9XG5cbiAgICBvbkNhcHRpb25DaGFuZ2VkKGUpOiB2b2lkIHtcbiAgICAgICAgaWYgKGUubGVuZ3RoIDwgMTAgJiYgdGhpcy5zaG93RGF0ZSkge1xuICAgICAgICAgICAgaWYgKGUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fcmFpc1ZhbHVlQ2hhbmdlZCh1bmRlZmluZWQpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuaXNWYWxpZCA9IGZhbHNlO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZW5nbGlzaERhdGVTdHIgPSBCYXJzYUFwaS5Db21tb24uVXRpbC5SZXBsYWNlRmFUb0FyQ2hhcmNodGVyKGUpO1xuICAgICAgICBsZXQgZm9ybWF0ID0gJ2pZWVlZL2pNL2pEJztcbiAgICAgICAgaWYgKHRoaXMuc2hvd1RpbWUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLnNob3dEYXRlKSB7XG4gICAgICAgICAgICAgICAgZm9ybWF0ICs9ICcgSEg6bW0nO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmb3JtYXQgPSAnSEg6bW0nO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1vbWVudCA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5fZGF0ZVNlcnZpY2Uuc3RyaW5nVG9Nb21lbnQoZW5nbGlzaERhdGVTdHIsIGZvcm1hdCk7XG4gICAgICAgIC8vIGNvbnN0IGlzVmFsaWQgPSBtb21lbnQuaXNWYWxpZCgpOy8vINio2LHYp9uMINi02YXYs9uMINmH2YXbjNi02YcgZmFsc2Ug2YbYtNmI2YYg2YXbjNiv2YdcbiAgICAgICAgaWYgKHRoaXMuc2hvd0RhdGUgJiYgaXNOYU4oRGF0ZS5wYXJzZShlbmdsaXNoRGF0ZVN0cikpKSB7XG4gICAgICAgICAgICB0aGlzLmlzVmFsaWQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB0ZGF0ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBtb21lbnQudG9EYXRlKCk7XG4gICAgICAgIGlmIChkYXRlLmdldEZ1bGxZZWFyKCkgPCB0ZGF0ZS5nZXRGdWxsWWVhcigpICYmICF0aGlzLnNob3dEYXRlKSB7XG4gICAgICAgICAgICBkYXRlLnNldEZ1bGxZZWFyKHRkYXRlLmdldEZ1bGxZZWFyKCkpO1xuICAgICAgICAgICAgZGF0ZS5zZXRNb250aCh0ZGF0ZS5nZXRNb250aCgpKTtcbiAgICAgICAgICAgIGRhdGUuc2V0RGF0ZSh0ZGF0ZS5nZXREYXRlKCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpc05hTihkYXRlKSkge1xuICAgICAgICAgICAgdGhpcy5pc1ZhbGlkID0gZmFsc2U7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy50aW1lVmFsdWUgPSB0aGlzLl9kYXRldGltZUFkYXB0ZXIuc2V0VGltZShcbiAgICAgICAgICAgIHRoaXMudGltZVZhbHVlLFxuICAgICAgICAgICAgZGF0ZS5nZXRIb3VycygpLFxuICAgICAgICAgICAgZGF0ZS5nZXRNaW51dGVzKCksXG4gICAgICAgICAgICBkYXRlLmdldFNlY29uZHMoKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLnN0YXJ0U2VsZWN0ZWREYXkgPSB0aGlzLmVuZFNlbGVjdGVkRGF5ID0gbnVsbDtcbiAgICAgICAgdGhpcy5fcmFpc1ZhbHVlQ2hhbmdlZChkYXRlLCBmYWxzZSk7XG4gICAgfVxuICAgIG9uUHJldlRhcCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuc2VsZWN0aW9uTW9kZSA9PT0gJ2RheScpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5sb2FkUHJldmlvdXMoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICdtb250aCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5sb2FkUHJldlllYXIoKTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNlbGVjdGlvbk1vZGUgPT09ICd5ZWFyJykge1xuICAgICAgICAgICAgdGhpcy5fcHJlcGFyZVllYXIoTnVtYmVyKHRoaXMueWVhcnNbMF0pIC0gMjApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25OZXh0VGFwKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnZGF5Jykge1xuICAgICAgICAgICAgdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLmxvYWROZXh0KCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAnbW9udGgnKSB7XG4gICAgICAgICAgICB0aGlzLl9jYWxlbmRhclNlcnZpY2UubG9hZE5leHRZZWFyKCk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zZWxlY3Rpb25Nb2RlID09PSAneWVhcicpIHtcbiAgICAgICAgICAgIHRoaXMuX3ByZXBhcmVZZWFyKE51bWJlcih0aGlzLnllYXJzW3RoaXMueWVhcnMubGVuZ3RoIC0gMV0pICsgMSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvblRvZGF5KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIHRoaXMudGltZVZhbHVlID0gdGhpcy5fZGF0ZXRpbWVBZGFwdGVyLnNldFRpbWUoXG4gICAgICAgICAgICB0aGlzLnRpbWVWYWx1ZSxcbiAgICAgICAgICAgIHRvZGF5LmdldEhvdXJzKCksXG4gICAgICAgICAgICB0b2RheS5nZXRNaW51dGVzKCksXG4gICAgICAgICAgICB0b2RheS5nZXRTZWNvbmRzKClcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMuX2NhbGVuZGFyU2VydmljZS50b2RheURheSkge1xuICAgICAgICAgICAgdGhpcy5zdGFydFNlbGVjdGVkRGF5ID0gdGhpcy5fY2FsZW5kYXJTZXJ2aWNlLnRvZGF5RGF5O1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2NhbGVuZGFyU2VydmljZS5nb3RvVG9kYXkoKTtcbiAgICB9XG5cbiAgICBvbkRheUNsaWNrKGRheTogRGF5LCBwb3BvdmVyLCBkaWFsb2cpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1ZhbGlkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zdGFydFNlbGVjdGVkRGF5ID0gdGhpcy5lbmRTZWxlY3RlZERheSA9IGRheTtcbiAgICAgICAgaWYgKHRoaXMuc2hvd1RpbWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZXRGaXJzdEFuZEVuZERheShkYXksIHBvcG92ZXIsIGRpYWxvZyk7XG4gICAgfVxuXG4gICAgb25Qb3BvdmVyT3BlbkNoYW5nZShpc09wZW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICAgICAgdGhpcy5fbGFzdFZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2xhc3RWYWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkNsZWFyKHBvcG92ZXIsIGRpYWxvZyk6IHZvaWQge1xuICAgICAgICBpZiAoZGlhbG9nKSB7XG4gICAgICAgICAgICBkaWFsb2cuZGlzbWlzcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX3NldEZvcm1hdHRlZERhdGVUb0lucHV0KHRoaXMudmFsdWUpO1xuICAgICAgICB0aGlzLl9yYWlzVmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICBvbk9rKHBvcG92ZXIsIGRpYWxvZyk6IHZvaWQge1xuICAgICAgICBpZiAoZGlhbG9nKSB7XG4gICAgICAgICAgICBkaWFsb2cuZGlzbWlzcygpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcG9wb3Zlci5jbG9zZSgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5faGFuZGxlVmFsdWVDaGFuZ2UoKTtcbiAgICB9XG4gICAgb25DYW5jZWwocG9wb3ZlciwgZGlhbG9nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9sYXN0VmFsdWUgIT09IHRoaXMudmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLl9sYXN0VmFsdWU7XG4gICAgICAgICAgICB0aGlzLl9zZXRDYXB0aW9uKHRoaXMudmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChkaWFsb2cpIHtcbiAgICAgICAgICAgIGRpYWxvZy5kaXNtaXNzKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb3BvdmVyLmNsb3NlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRGb3JtYXR0ZWREYXRlVG9JbnB1dChkYXRlOiBEYXRlIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBmb3JtYXR0ZWREYXRlID0gdGhpcy5fZ2V0Rm9ybWF0dGVkRGF0ZShkYXRlKTtcbiAgICAgICAgICAgIHRoaXMudGVtcEZvcm1tYXRlZERhdGUgPSBmb3JtYXR0ZWREYXRlO1xuICAgICAgICAgICAgdGhpcy5fc2V0SW5wdXRHcm91cFRleHQoZm9ybWF0dGVkRGF0ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy50ZW1wRm9ybW1hdGVkRGF0ZSA9ICcnO1xuICAgICAgICB0aGlzLl9zZXRJbnB1dEdyb3VwVGV4dCgnJyk7XG4gICAgfVxuICAgIHByaXZhdGUgX3NldElucHV0R3JvdXBUZXh0KHZhbDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0R3JvdXBDb21wb25lbnQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRHcm91cENvbXBvbmVudC5pbnB1dFRleHQgPSB2YWw7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcHJpdmF0ZSBfZ2V0Rm9ybWF0dGVkRGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGVUaW1lVG9DYXB0aW9uLnRyYW5zZm9ybShkYXRlLCB0aGlzLmZvcm1hdFBhdHRlcm4sIHRoaXMuY3VsdHVyZSwgdGhpcy5zaG93RGF0ZSwgdGhpcy5zaG93VGltZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFuZGxlVmFsdWVDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnNob3dEYXRlID8gdGhpcy5zdGFydFNlbGVjdGVkRGF5Py5kYXRlID8/IHRoaXMudmFsdWUgOiBuZXcgRGF0ZSgpO1xuICAgICAgICBpZiAodGhpcy52YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IG5ldyBEYXRlKHRoaXMudmFsdWUpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZS5zZXRIb3Vycyh0aGlzLnRpbWVWYWx1ZS5ob3VyKTtcbiAgICAgICAgICAgIHRoaXMudmFsdWUuc2V0TWludXRlcyh0aGlzLnRpbWVWYWx1ZS5taW51dGUpO1xuICAgICAgICAgICAgdGhpcy52YWx1ZS5zZXRTZWNvbmRzKHRoaXMudGltZVZhbHVlLnNlY29uZCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fc2V0Rm9ybWF0dGVkRGF0ZVRvSW5wdXQodGhpcy52YWx1ZSk7XG4gICAgICAgIHRoaXMuX3JhaXNWYWx1ZUNoYW5nZWQodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIHByaXZhdGUgX3ByZXBhcmVZZWFyKGZyb206IG51bWJlcik6IHZvaWQge1xuICAgICAgICBjb25zdCB5ZWFyczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCAyMDsgaSsrKSB7XG4gICAgICAgICAgICB5ZWFycy5wdXNoKGAke2Zyb20gKyBpfWApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMueWVhcnMgPSB5ZWFycztcbiAgICB9XG4gICAgcHJpdmF0ZSBfc2V0Q2FwdGlvbih2YWx1ZSk6IHZvaWQge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2FwdGlvbiA9ICcnO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGxldCBmb3JtYXRQYXR0ZXJuID0gdGhpcy5mb3JtYXRQYXR0ZXJuLnJlcGxhY2UoJ1lZWVknLCAnallZWVknKTtcbiAgICAgICAgZm9ybWF0UGF0dGVybiA9IGZvcm1hdFBhdHRlcm4ucmVwbGFjZSgnTU0nLCAnak1NJyk7XG4gICAgICAgIGZvcm1hdFBhdHRlcm4gPSBmb3JtYXRQYXR0ZXJuLnJlcGxhY2UoJ0REJywgJ2pERCcpO1xuICAgICAgICB0aGlzLnZhbHVlQ2FwdGlvbiA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5fZGF0ZVNlcnZpY2UuZ2V0TW9tZW50KHZhbHVlKS5mb3JtYXQoZm9ybWF0UGF0dGVybik7XG4gICAgfVxuICAgIHByaXZhdGUgX3JhaXNWYWx1ZUNoYW5nZWQoZGF0ZSwgc2V0Q2FwdGlvbiA9IHRydWUpOiB2b2lkIHtcbiAgICAgICAgLy8gdGhpcy52YWx1ZSA9IGRhdGU7XG4gICAgICAgIGlmIChzZXRDYXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9zZXRDYXB0aW9uKGRhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChkYXRlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9zZXRGaXJzdEFuZEVuZERheShkYXk6IERheSwgcG9wb3ZlciwgZGlhbG9nKTogdm9pZCB7XG4gICAgICAgIGlmIChkaWFsb2cpIHtcbiAgICAgICAgICAgIGRpYWxvZy5kaXNtaXNzKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBvcG92ZXIpIHtcbiAgICAgICAgICAgIHBvcG92ZXIuY2xvc2UoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuaXNSYW5nZVBpY2tlcikge1xuICAgICAgICAgICAgdGhpcy5fc2V0Rm9ybWF0dGVkRGF0ZVRvSW5wdXQoZGF5LmRhdGUpO1xuICAgICAgICAgICAgdGhpcy5fcmFpc1ZhbHVlQ2hhbmdlZChkYXkuZGF0ZSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhcnRTZWxlY3RlZERheSkge1xuICAgICAgICAgICAgdGhpcy5lbmRTZWxlY3RlZERheSA9IGRheTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc3RhcnRTZWxlY3RlZERheSA9IGRheTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zdGFydFNlbGVjdGVkRGF5ICYmIHRoaXMuZW5kU2VsZWN0ZWREYXkgJiYgdGhpcy5zdGFydFNlbGVjdGVkRGF5LmRhdGUgPiB0aGlzLmVuZFNlbGVjdGVkRGF5LmRhdGUpIHtcbiAgICAgICAgICAgIGNvbnN0IHRlbXAgPSB0aGlzLnN0YXJ0U2VsZWN0ZWREYXk7XG4gICAgICAgICAgICB0aGlzLnN0YXJ0U2VsZWN0ZWREYXkgPSB0aGlzLmVuZFNlbGVjdGVkRGF5O1xuICAgICAgICAgICAgdGhpcy5lbmRTZWxlY3RlZERheSA9IHRlbXA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuc3RhcnRTZWxlY3RlZERheSAmJiB0aGlzLmVuZFNlbGVjdGVkRGF5KSB7XG4gICAgICAgICAgICB0aGlzLnJhbmdlQ2hhbmdlLmVtaXQoe1xuICAgICAgICAgICAgICAgIHN0YXJ0RGF5OiB0aGlzLnN0YXJ0U2VsZWN0ZWREYXkuZGF0ZSxcbiAgICAgICAgICAgICAgICBlbmREYXk6IHRoaXMuZW5kU2VsZWN0ZWREYXkuZGF0ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCJAaWYgKGlubGluZU1vZGUpIHtcbjxuZy1jb250YWluZXJcbiAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICBkYXRlcmFuZ2VNb2RlID8gZGF0ZVJhbmdlVHBsIDogbW9udGg7XG4gICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICRpbXBsaWNpdDogc2VsZWN0ZWRNb250aCQgfCBhc3luYyxcbiAgICAgICAgICAgIHdpZHRoOiB3aWR0aCQgfCBhc3luYyxcbiAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgcnRsOiBydGwkIHwgYXN5bmMsXG4gICAgICAgICAgICB3ZWVrRGF5czogd2Vla0RheXMsXG4gICAgICAgICAgICB3ZWVrRGF5c01pbjogd2Vla0RheXNNaW4sXG4gICAgICAgICAgICB0b2RheTogdG9kYXksXG4gICAgICAgICAgICBkZXZpY2VTaXplOiBkZXZpY2VTaXplLFxuICAgICAgICAgICAgcG9wb3ZlcjogcG9wb3ZlclxuICAgICAgICB9XG4gICAgXCJcbj5cbjwvbmctY29udGFpbmVyPlxufVxuPG5nLXRlbXBsYXRlICNkYXRlUmFuZ2VUcGw+XG4gICAgPGJjLWNhbGVuZGFyLXNlbGVjdGlvbi1kYXlzXG4gICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICBbaW5saW5lXT1cInRydWVcIlxuICAgICAgICBbbW9udGhJbmZvXT1cIihzZWxlY3RlZE1vbnRoJCB8IGFzeW5jKSEhXCJcbiAgICAgICAgKHJhbmdlQ2hhbmdlKT1cIm9uUmFuZ2VDaGFuZ2UoJGV2ZW50KVwiXG4gICAgPjwvYmMtY2FsZW5kYXItc2VsZWN0aW9uLWRheXM+XG48L25nLXRlbXBsYXRlPlxuPGZkLWlucHV0LWdyb3VwXG4gICAgcGxhY2VtZW50PVwiYWZ0ZXJcIlxuICAgIGdseXBoPVwiY2FsZW5kYXJcIlxuICAgIGdseXBoQXJpYUxhYmVsPVwic2VsZWN0IGRheVwiXG4gICAgYXJpYUxhYmVsbGVkQnk9XCJmZC1pbnB1dC1ncm91cC1pY29uLWxhYmVsLTJcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclwiXG4gICAgW3ZhbHVlXT1cInZhbHVlXCJcbiAgICBbYnV0dG9uXT1cInRydWVcIlxuICAgIFtzdGF0ZV09XCJpc1ZhbGlkID8gJ3N1Y2Nlc3MnIDogJ2Vycm9yJ1wiXG4gICAgW3Nob3dGb2N1c109XCJ0cnVlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgW3N0eWxlLmRpc3BsYXldPVwiIWJ1dHRvbk1lbnVNb2RlIHx8IGlubGluZU1vZGUgPyAnaW5oZXJpdCcgOiAnbm9uZSdcIlxuICAgIChhZGRPbkJ1dHRvbkNsaWNrZWQpPVwib25PcGVuUG9wb3Zlcihwb3BvdmVyLCBkaWFsb2dUZW1wbGF0ZSlcIlxuPlxuPC9mZC1pbnB1dC1ncm91cD5cbkBpZiAoYnV0dG9uTWVudU1vZGUpIHtcbjxidXR0b25cbiAgICBmZC1idXR0b25cbiAgICBbbGFiZWxdPVwidGVtcEZvcm1tYXRlZERhdGUgfHwgcGxhY2Vob2xkZXJcIlxuICAgIFt0aXRsZV09XCJwbGFjZWhvbGRlclwiXG4gICAgW2ZkVHlwZV09XCJ2YWx1ZSA/ICdzdGFuZGFyZCcgOiAndHJhbnNwYXJlbnQnXCJcbiAgICBbZmRNZW51XT1cInRydWVcIlxuICAgIChjbGljayk9XCJvbk9wZW5Qb3BvdmVyKHBvcG92ZXIsIGRpYWxvZ1RlbXBsYXRlKVwiXG4gICAgW2NsYXNzLnBsYWNlaG9sZGVyLWN1c3RvbV09XCIhdmFsdWVcIlxuICAgIGNsYXNzPVwibWVudS1idXR0b24tZGF0ZXBpY2tlclwiXG4+PC9idXR0b24+XG59XG5cbjxmZC1wb3BvdmVyICNwb3BvdmVyIChpc09wZW5DaGFuZ2UpPVwib25Qb3BvdmVyT3BlbkNoYW5nZSgkZXZlbnQpXCIgW2ZvY3VzVHJhcHBlZF09XCJ0cnVlXCIgW2ZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiPlxuICAgIDxmZC1wb3BvdmVyLWJvZHkgW3N0eWxlLndpZHRoLnB4XT1cIndpZHRoJCB8IGFzeW5jXCI+XG4gICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgbW9udGg7XG4gICAgICAgICAgICAgICAgY29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNlbGVjdGVkTW9udGgkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCQgfCBhc3luYyxcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgIHJ0bDogcnRsJCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICB3ZWVrRGF5czogd2Vla0RheXMsXG4gICAgICAgICAgICAgICAgICAgIHdlZWtEYXlzTWluOiB3ZWVrRGF5c01pbixcbiAgICAgICAgICAgICAgICAgICAgdG9kYXk6IHRvZGF5LFxuICAgICAgICAgICAgICAgICAgICBkZXZpY2VTaXplOiBkZXZpY2VTaXplLFxuICAgICAgICAgICAgICAgICAgICBwb3BvdmVyOiBwb3BvdmVyXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXCJcbiAgICAgICAgPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiBmZC1wb3BvdmVyLWJvZHktZm9vdGVyPlxuICAgICAgICAgICAgPGRpdiBmZC1iYXIgW2JhckRlc2lnbl09XCInZm9vdGVyJ1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgZmQtYmFyLXJpZ2h0PlxuICAgICAgICAgICAgICAgICAgICA8Y29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZm9vdGVyQnV0dG9uc1wiPjwvY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZmQtcG9wb3Zlci1ib2R5PlxuPC9mZC1wb3BvdmVyPlxuPG5nLXRlbXBsYXRlIGxldC1kaWFsb2cgbGV0LWRpYWxvZ0NvbmZpZz1cImRpYWxvZ0NvbmZpZ1wiICNkaWFsb2dUZW1wbGF0ZT5cbiAgICA8ZmQtZGlhbG9nIFtkaWFsb2dDb25maWddPVwiZGlhbG9nQ29uZmlnXCIgW2RpYWxvZ1JlZl09XCJkaWFsb2dcIj5cbiAgICAgICAgPGZkLWRpYWxvZy1ib2R5PlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICAgICAgICAgIG1vbnRoO1xuICAgICAgICAgICAgICAgICAgICBjb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAkaW1wbGljaXQ6IHNlbGVjdGVkTW9udGgkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2lkdGgkIHwgYXN5bmMsXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJ0bDogcnRsJCB8IGFzeW5jLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2Vla0RheXM6IHdlZWtEYXlzLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2Vla0RheXNNaW46IHdlZWtEYXlzTWluLFxuICAgICAgICAgICAgICAgICAgICAgICAgdG9kYXk6IHRvZGF5LFxuICAgICAgICAgICAgICAgICAgICAgICAgZGV2aWNlU2l6ZTogZGV2aWNlU2l6ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvcG92ZXI6IHBvcG92ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2c6IGRpYWxvZ1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2ZkLWRpYWxvZy1ib2R5PlxuICAgICAgICA8ZmQtZGlhbG9nLWZvb3Rlcj5cbiAgICAgICAgICAgIDxjb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJmb290ZXJCdXR0b25zOyBjb250ZXh0OiB7IGRpYWxvZzogZGlhbG9nIH1cIj48L2NvbnRhaW5lcj5cbiAgICAgICAgPC9mZC1kaWFsb2ctZm9vdGVyPlxuICAgIDwvZmQtZGlhbG9nPlxuPC9uZy10ZW1wbGF0ZT5cbjxuZy10ZW1wbGF0ZSAjZm9vdGVyQnV0dG9ucyBsZXQtZGlhbG9nPVwiZGlhbG9nXCI+XG4gICAgPGZkLWJ1dHRvbi1iYXIgW2xhYmVsXT1cIidPaycgfCBiYmJUcmFuc2xhdGVcIiBmZFR5cGU9XCJlbXBoYXNpemVkXCIgKGNsaWNrKT1cIm9uT2socG9wb3ZlciwgZGlhbG9nKVwiPjwvZmQtYnV0dG9uLWJhcj5cbiAgICA8ZmQtYnV0dG9uLWJhclxuICAgICAgICBbbGFiZWxdPVwiJ0NsZWFyJyB8IGJiYlRyYW5zbGF0ZVwiXG4gICAgICAgIGZkVHlwZT1cInN0YW5kYXJkXCJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2xlYXIocG9wb3ZlciwgZGlhbG9nKVwiXG4gICAgPjwvZmQtYnV0dG9uLWJhcj5cbiAgICA8ZmQtYnV0dG9uLWJhciBbbGFiZWxdPVwiJ0NhbmNlbCcgfCBiYmJUcmFuc2xhdGVcIiAoY2xpY2spPVwib25DYW5jZWwocG9wb3ZlciwgZGlhbG9nKVwiPjwvZmQtYnV0dG9uLWJhcj5cbjwvbmctdGVtcGxhdGU+XG48bmctdGVtcGxhdGVcbiAgICAjbW9udGhcbiAgICBsZXQtc2VsZWN0ZWRNb250aFxuICAgIGxldC13aWR0aD1cIndpZHRoXCJcbiAgICBsZXQtaGVpZ2h0PVwiaGVpZ2h0XCJcbiAgICBsZXQtcnRsPVwicnRsXCJcbiAgICBsZXQtdG9kYXk9XCJ0b2RheVwiXG4gICAgbGV0LXNob3dFdmVudHM9XCJzaG93RXZlbnRzXCJcbiAgICBsZXQtZGV2aWNlU2l6ZT1cImRldmljZVNpemVcIlxuICAgIGxldC1wb3BvdmVyPVwicG9wb3ZlclwiXG4gICAgbGV0LWRpYWxvZz1cImRpYWxvZ1wiXG4+XG4gICAgQGlmIChzaG93RGF0ZSkge1xuICAgIDxmZC10b29sYmFyIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgW2xhYmVsXT1cIihzaG93RGF0ZSA/ICdEYXRlUl9Ub2RheScgOiAnTm93JykgfCBiYmJUcmFuc2xhdGVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uVG9kYXkoKVwiXG4gICAgICAgID48L2J1dHRvbj5cbiAgICAgICAgQGlmIChzaG93RGF0ZSkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCJydGwgPyAnbmF2aWdhdGlvbi1yaWdodC1hcnJvdycgOiAnbmF2aWdhdGlvbi1sZWZ0LWFycm93J1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25QcmV2VGFwKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIH0gQGlmIChzaG93RGF0ZSkge1xuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBmZC1idXR0b25cbiAgICAgICAgICAgIGZkLXRvb2xiYXItaXRlbVxuICAgICAgICAgICAgW2ZkVHlwZV09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgIFtnbHlwaF09XCJydGwgPyAnbmF2aWdhdGlvbi1sZWZ0LWFycm93JyA6ICduYXZpZ2F0aW9uLXJpZ2h0LWFycm93J1wiXG4gICAgICAgICAgICAoY2xpY2spPVwib25OZXh0VGFwKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIH0gQGlmIChzaG93RGF0ZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgteWVhcnMtd3JhcHBlclwiIGZkLXRpdGxlIGZkLXRvb2xiYXItaXRlbT5cbiAgICAgICAgICAgIEBpZiAoc2VsZWN0aW9uTW9kZSA9PT0gJ2RheScgfHwgc2VsZWN0aW9uTW9kZSA9PT0gJ21vbnRoJykge1xuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNlbGVjdGVkTW9udGguZGF0ZUluZm8ubW9udGhOYW1lXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0aW9uTW9kZSA9ICdtb250aCdcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwiJ3RyYW5zcGFyZW50J1wiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNlbGVjdGVkTW9udGguZGF0ZUluZm8ueWVhclwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGlvbk1vZGUgPSAneWVhcidcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZmQtdG9vbGJhcj5cbiAgICB9XG4gICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cbiAgICAgICAgQHN3aXRjaCAoc2VsZWN0aW9uTW9kZSkgeyBAY2FzZSAoJ21vbnRoJykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibW9udGgteWVhci1zZWxlY3Rpb24td3JhcHBlclwiPlxuICAgICAgICAgICAgQGZvciAobW9udGggb2YgbW9udGhzOyB0cmFjayBtb250aDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBzdHlsZT1cImZsZXgtZ3JvdzogMTsgd2lkdGg6IDMzJVwiXG4gICAgICAgICAgICAgICAgZmQtYnV0dG9uXG4gICAgICAgICAgICAgICAgW2ZkVHlwZV09XCJzZWxlY3RlZE1vbnRoLmRhdGVJbmZvLm1vbnRoTmFtZSA9PT0gbW9udGggPyAnZW1waGFzaXplZCcgOiAndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwibW9udGhcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3Rpb25Nb2RlID0gJ2RheSc7IG9uTW9udGhTZWxlY3RlZChtb250aCwgaSlcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAY2FzZSAoJ3llYXInKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb250aC15ZWFyLXNlbGVjdGlvbi13cmFwcGVyXCI+XG4gICAgICAgICAgICBAZm9yICh5ZWFyIG9mIHllYXJzOyB0cmFjayB5ZWFyKSB7XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgc3R5bGU9XCJmbGV4LWdyb3c6IDE7IHdpZHRoOiAyNSVcIlxuICAgICAgICAgICAgICAgIGZkLWJ1dHRvblxuICAgICAgICAgICAgICAgIFtmZFR5cGVdPVwic2VsZWN0ZWRNb250aC5kYXRlSW5mby55ZWFyID09PSAreWVhciA/ICdlbXBoYXNpemVkJyA6ICd0cmFuc3BhcmVudCdcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJ5ZWFyXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0aW9uTW9kZSA9ICdkYXknOyBvblllYXJTZWxlY3RlZCh5ZWFyKVwiXG4gICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICB9IEBkZWZhdWx0IHtcbiAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXhcIj5cbiAgICAgICAgICAgIEBpZiAoc2hvd0RhdGUpIHtcbiAgICAgICAgICAgIDxiYy1jYWxlbmRhci1tb250aFxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aF09XCJ3aWR0aFwiXG4gICAgICAgICAgICAgICAgW2NvbnRhaW5lckhlaWdodF09XCJoZWlnaHRcIlxuICAgICAgICAgICAgICAgIFtjb250YWluZXJXaWR0aF09XCJ3aWR0aFwiXG4gICAgICAgICAgICAgICAgW3J0bF09XCJydGxcIlxuICAgICAgICAgICAgICAgIFttb250aFdlZWtzQ291bnRdPVwic2VsZWN0ZWRNb250aC53ZWVrc0NvdW50XCJcbiAgICAgICAgICAgICAgICBbd2Vla0RheXNdPVwid2Vla0RheXNcIlxuICAgICAgICAgICAgICAgIFt3ZWVrRGF5c01pbl09XCJ3ZWVrRGF5c01pblwiXG4gICAgICAgICAgICAgICAgW3RvZGF5XT1cInRvZGF5XCJcbiAgICAgICAgICAgICAgICBbZGF0ZVBpY2tlcl09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICBbZGF0ZVJhbmdlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtzZWxlY3RlZERhdGVdPVwic3RhcnRTZWxlY3RlZERheSA/IHN0YXJ0U2VsZWN0ZWREYXkuZGF0ZSA6IHZhbHVlXCJcbiAgICAgICAgICAgICAgICBbZGF5c109XCJzZWxlY3RlZE1vbnRoLmRheXNcIlxuICAgICAgICAgICAgICAgIFtkZXZpY2VTaXplXT1cImRldmljZVNpemVcIlxuICAgICAgICAgICAgICAgIChkYXlDbGljayk9XCJvbkRheUNsaWNrKCRldmVudCwgcG9wb3ZlciwgZGlhbG9nKVwiXG4gICAgICAgICAgICA+PC9iYy1jYWxlbmRhci1tb250aD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXBlcmF0b3JcIj48L2Rpdj5cbiAgICAgICAgICAgIEBpZiAoc2hvd1RpbWUpIHtcbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGZkLXRpbWVcbiAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJkaXJlY3Rpb246IGx0clwiXG4gICAgICAgICAgICAgICAgICAgIGZkQ29tcGFjdFxuICAgICAgICAgICAgICAgICAgICBba2VlcFR3b0RpZ2l0c109XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0aW1lVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzcGxheVNlY29uZHNdPVwiZmFsc2VcIlxuICAgICAgICAgICAgICAgID48L2ZkLXRpbWU+XG4gICAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGdhcDogMC4ycmVtOyBwYWRkaW5nOiAwLjVyZW1cIj5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBmZC1mb3JtLWNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwicmVtb3ZlLWFycm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwid2lkdGg6IDNyZW1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInRpbWVWYWx1ZT8ubWludXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4VmFsdWU9XCIyM1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25NaW51dGVUZXh0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGZkLWZvcm0tY29udHJvbFxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9XCJ3aWR0aDogM3JlbVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlbW92ZS1hcnJvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwidGltZVZhbHVlPy5ob3VyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4VmFsdWU9XCI1OVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAoaW5wdXQpPVwib25Ib3VyVGV4dENoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSB9XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1719,7 +1719,7 @@ class DateTimePickerComponent extends BaseComponent {
1719
1719
  }
1720
1720
  const tdate = new Date();
1721
1721
  const date = moment.toDate();
1722
- if (date.getFullYear() < tdate.getFullYear()) {
1722
+ if (date.getFullYear() < tdate.getFullYear() && !this.showDate) {
1723
1723
  date.setFullYear(tdate.getFullYear());
1724
1724
  date.setMonth(tdate.getMonth());
1725
1725
  date.setDate(tdate.getDate());